diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 000000000..161f9287e --- /dev/null +++ b/ChangeLog @@ -0,0 +1,1951 @@ +21-MAY-2012: 1.10.0.5 + +- Adds mxText.getTableSize hook for measuring HTML markup [JavaScript] +- Fixes handling of data URIs in mxUrlConverter [JavaScript] +- Adds mxPrintPreview.getDoctype hook [JavaScript] +- Fixes SVG shadow stroke for non-stroked shapes [JavaScript] +- Fixes translated pageSize in mxGraph.sizeDidChange [JavaScript] +- Adds separate dashStyle style for dashpattern in VML [JavaScript] +- Adds useAsDefaultEdge action in grapheditor.html example [JavaScript] + +14-MAY-2012: 1.10.0.4 + +- Fixes possible offset between connect preview and result [JavaScript] +- Fixes dashed shadows, connector shadow in image export [JavaScript] +- Fixes linebreaks for HTML labels with backgrounds in IE9 standards mode [JavaScript] +- Fixes dashed connector shadows [JavaScript] +- Adds mxCellEditor.getMinimumSize hook [JavaScript] +- Fixes ignored strokeWidth for graphBounds in mxGraphView.validatePoints [JavaScript] +- Fixes possible NPE in mxOutline.update [JavaScript] +- Removes graph model listener in mxGraph.destroy [JavaScript] +- Fixes handling of negative coordinates in mxGraph.moveCells [Java,JavaScript] +- Adds optional head argument in mxUtils.createHtmlDocument [Java] +- Adds mxHtmlTextShape.createHtmlDocument hook [Java] +- Adds word wrapping for HTML labels [Java] +- Adds mxConstants.PX_PER_PIXEL [Java] +- Corrects case when compact tree is moved within parent [Java,JavaScript] + +03-MAY-2012: 1.10.0.3 + +- Adds status messages in grapheditor example, moves saveFile to ui [JavaScript] +- Adds mxShape.roundedCrispSvg switch [JavaScript] +- Adds caching for fields in mxObjectCodec [Java] +- Adds mxShape.updateSvgBounds, -Path and -Scale hooks [JavaScript] +- Fixes use of DOMParser in mxUtils.parseXml for IE7 [JavaScript] +- Adds mxPath.addPath for merging multiple paths [JavaScript] +- Adds custom message shape in markers.html example [JavaScript] + +27-APR-2012: 1.10.0.2 + +- Adds missing var in mxDictionary.getKeys, getValues, visit [JavaScript] +- Fixes mxEdgeHandler.marker.isValidState, uses getTerminalPort [JavaScript] +- Adds link type custom bpmn edge shape in markers.html example [JavaScript] +- Adds addPipe, enableFill switches, redrawPath method in mxArrow [JavaScript] +- Enables shadow for non-filled shapes in mxShape [JavaScript] +- Adds filled option in mxICanvas2D.shadow and implementations [Java,JavaScript,Dotnet] +- Fixes mxConnectionHandler.createTargetVertex for relative sources [JavaScript] +- Adds mxShape.createVmlShadow, fixes shadow, fill in mxConnector [JavaScript] +- Adds mxPanningHandler.border, handleMouseOut switch [JavaScript] + +23-APR-2012: 1.10.0.1 + +- Disables folding icons in mxOutline [JavaScript] +- Adds experimental support for IE10 standards mode in mxClient [JavaScript] +- Fixes in-place changes of geometry in mxGraph.getVertexBounds [Java,JavaScript] +- Fixes handling of swimlanes in mxGraphLayout.arrangeGroups [Java,JavaScript] +- Fixes shadow of mxArrow shape in SVG [JavaScript] + +18-APR-2012: 1.10.0.0 + +- Adds cross-group support for the compact tree layout [Java,JavaScript] +- mxCellRenderer.redrawCellOverlays no longer recreates shapes for existing overlays [JavaScript] +- Adds saveAs, editFile actions, Editor.getOrCreateFileName in grapheditor example [JavaScript] +- Fixes submenu image alignment in mxPopupMenu for quirks mode [JavaScript] +- Fixes possible NaN in mxUtils.getScrollOrigin return value [JavaScript] +- Fixes mxGraph.getEdges, mxGraphModel.getEdges for loops [Java,JavaScript,Dotnet] +- Adds mxOutline.destroy method, suspended, updateOnPan switches [JavaScript] +- Adds mxRubberband.repaint, PAN listener in mxGraphHandler, mxOutline, mxRubberband +- Adds panDx/panDy in mxMouseEvent, mxOutline, mxGuide, mxRubberband, mxVertex-/Edge-/Connection-/GraphHandler [JavaScript] +- Adds mxGraph.allowAutoPanning for panning manager in mxGraph.scrollPointToVisible [JavaScript] +- Refactors mxGraph.panGraph, fires mxEvent.PAN, adds mxGraph.panDx, panDy [JavaScript] +- Adds mxGraph.createPanningManager hook [JavaScript] +- Adds new class mxPanningManager for automatic panning in mxGraph [JavaScript] +- Adds support for toggle attribute in mxDefaultToolbarCodec config items [JavaScript] +- Adds toggle argument in mxToolbar.addMode, mxDefaultToolbar.addPrototype [JavaScript] +- Adds mxUtils.extend for subclassing [JavaScript] +- Adds mxGraphHandler.updatePreviewShape hook [JavaScript] +- Fixes occasional wrong scale in mxOutline [JavaScript] + +05-APR-2012: 1.9.2.5 + +- Adds mxGraph.ignoreScrollbars switch [JavaScript] +- Fixes parsing of default shape width and height in mxStencil [Java] +- Fixes dashed line style for SVG in all built-in shapes [JavaScript] +- Fixes tape shape, multiple modal dialogs in grapheditor example [JavaScript] +- Fixes scaled HTML labels with no FO in mxText, height in IE9 standards mode [JavaScript] +- Adds HTML labels with no foreign objects in mxPrintPreview for SVG [JavaScript] +- Adds transparent markers support in mxGraphics2DCanvas [Java] +- Adds mxConstants.STYLE_STARTFILL/_ENDFILL for transparent markers [Java] +- Adds boolean source argument in mxIMarker.paintMarker [Java] + +30-MAR-2012: 1.9.2.4 + +- Adds thin diamond marker [JavaScript] +- Adds mxPanningHandling.getCellForPopupEvent hook [JavaScript] +- Adds mxKeyHandler.isControlDown hook [JavaScript] +- Fixes alignment of submenu icon in mxPopupMenu [JavaScript] +- Adds mxShape.getRotation hook [JavaScript] +- Adds support for dashed line style in mxLine for SVG [JavaScript] +- Fixes image export for rotated line shapes [JavaScript] +- Fixes mxUtils.findNodeByAttribute for IE9 standards mode [JavaScript] +- Adds UML library, UML shapes in grapheditor example [JavaScript] +- Removes nudge in hierarchical crossing reduction [JavaScript, Java] +- Fixes word wrapping ignoring multiple newlines, http://bit.ly/GWL8fs [Java] + +28-MAR-2012: 1.9.2.3 + +- Fixes calls to mxEdgeHandler.validateConnection in createMarker [Java,JavaScript] +- Fixes error in mxParallelEdgeLayout.getEdgeId [JavaScript] +- Adds multiple background pages in grapheditor example [JavaScript] +- Renames xml parameter in grapheditor image export to plain [Java,JavaScript] +- Adds support for short hex color notation in mxUtils.parseColor [Java] +- Adds UI state to XML file, restores on load in grapheditor example [JavaScript] +- Renames pageLayout action, resource to pageView in grapheditor example [JavaScript] +- Adds mxStencil.createCanvas, handles relative images in Stencils.java example [Java,Dotnet] +- Changes Sidebar.createThumb to take parent node in grapheditor [JavaScript] +- Fixes printing for negative coordinates in grapheditor example [JavaScript] +- Makes background color persistent, makes ColorDialog more generic [JavaScript] +- Removes pageBreaks, add pageBackgroundColor action in grapheditor.html example [JavaScript] +- Adds diagram background color in grapheditor.html example [JavaScript] +- Adds Editor.updateGraphComponents, changes signature of get-/setGraphXml [JavaScript] +- Moves Editor.openFile to EditorUi.open in grapheditor.html example [JavaScript] +- Adds mxGraphView.getBackgroundPageBounds hook [JavaScript] +- Fixes check for recursive drop target uses moving cells instead of this.cell [JavaScript] +- Adds mxGraphHandler.getInitialCellForEvent, isDelayedSelection, selectDelayed hooks [JavaScript] +- Fixes width instead of height used in print preview pages [JavaScript] +- Fixes scaled HTML labels, dash patterns in mxSvgCanvas2D [JavaScript] +- Adds experimental support for dashPattern in mxImageExport [JavaScript] +- Fixes scaled HTML rendering in mxGraphicsCanvas2D [Java] +- Makes all dash patterns proportional to strokewidths in image export [Java,Dotnet] +- Fixes scaled text rendering in mxGraphicsCanvas2D, mxGdiCanvas [Java,Dotnet] +- Adds support for XML custom stencils in mxGdiCanvas [Dotnet] +- Fixes handling of miterlimits in mxStencil [Java,JavaScript] + +23-MAR-2012: 1.9.2.2 + +- Fixes handling of newlines, improves word wrapping in mxGdiCanvas [Dotnet] +- Adds support for XML custom stencils in mxGraphics2DCanvas [Java] +- Fixes print preview in Firefox 11 [JavaScript] +- Fixes group translate for foreignObject position on iOS [JavaScript] + +20-MAR-2012: 1.9.2.1 + +- Adds mxCellRenderer.prototype.getTextScale hook [JavaScript] +- Improves arrow marker display for line strokewidth > 1 [JavaScript] +- Improves marker display for image export [JavaScript] +- Adds experimental support for dashPattern style in mxConnector for SVG [JavaScript] +- Dashed style for SVG takes strokewidth into account in mxShape [JavaScript] +- Adds caching for accessors in mxObjectCodec [Java] +- Adds group to first child parent only if group has not parent in mxGraph.groupCells [Java,JavaScript] +- Adds mxShape.setCursor, uses in mxCellState.setCursor, fixes cursor in mxCellHighlight [JavaScript] +- Handles shapes with width/height 0 in mxShape.updateHtmlShape [JavaScript] +- mxSelectionCellsHandler does no longer refresh if graph disabled [Java,JavaScript] +- Adds PDF and GIF export formats to grapheditor example [Java,JavaScript] +- Avoids unnecessary calls to Image.getScaledInstance in mxGraphics(2D)Canvas(2D) [Java] +- Replaces group translate with x- and y-attributes in foreignObjects [JavaScript] +- Fixes possible NPE in mxSaxOutputHandler for missing wrap attribute in text node [JavaScript] +- Adds mxText.replaceLinefeeds switch for HTML labels, used in mxImageExport [JavaScript] +- mxDragSource.mouseDown prevents default but not propagation for event [JavaScript] +- Add optional stopPropagation argument in mxEvent.consume [JavaScript] + +15-MAR-2012: 1.9.2.0 + +- Adds mxCellEditor.focusLost hook for handling lost focus while in-place editing [JavaScript] +- Fixes order of reconfigure and redraw for shapes in mxCellRenderer.redraw [JavaScript] +- Fixes CSS rules for td.mxWindowPane select, textarea and radio in common.css [JavaScript] +- Fixes inverse coordinates for moveCircle switch in mxCircleLayout [Java,JavaScript] +- Adds limited support for HTML format in mxGraphicsCanvas2D, wrapping in mxGdiCanvas2D [Java,Dotnet] +- Uses foreignObject in mxSvgCanvas2D for rendering HTML markup [JavaScript] +- Adds wrap, format arguments in mxICanvas2D.text, image-, xml- and svg export [Java,Dotnet,JavaScript] +- Adds old actor shape, other HTML shapes in grapheditor sidebar [JavaScript] +- Adds mxGraphHandler.getMovePreview [Java] +- Fixes missing HTML boundingBox with foreignObjects and overflow=fill [JavaScript] +- Adds mxText.prototype.forceIgnoreStringSize for performance tuning in IE [JavaScript] +- Removes EditorUi.checkBackend in grapheditor, moves check to index.html [JavaScript] +- Caches visible terminal in mxCellState, adds set/getVisibleTerminal(State) [Java,JavaScript] +- Changes type of terminal argument in mxEdgeHandler.updatePreviewState [JavaScript] +- Fixes mxEdgeSegmentHandler.refresh to only update the bends [JavaScript] +- Sets crisp rendering attribute to false in mxImageShape [JavaScript] +- Fixes cropped HTML connector image in mxConnectionHandler [JavaScript] +- Uses custom graph for tooltips and thumbnails in grapheditor sidebar [JavaScript] +- Removes uml parameter in grapheditor example, adds shapes with HTML labels [JavaScript] +- Fixes scaled HTML label bounds for overflow=fill in IE9 standards [JavaScript] +- Adds mxKeyHandler.bindShiftKey, bindControlShiftKey [JavaScript] +- Adds new mxText.prototype.redrawSvgTextNodes hook [JavaScript] +- Fixes event handling in mxGraph.fit for unchanged scales [JavaScript] +- Fixes mxEdgeHandler.isHandleVisible for indices != 1 [Java] +- Adds checkFoldable argument in mxGraph.foldCells/cellsFolded [Java,JavaScript] +- Deprecates old grapheditor example in examples/editors [JavaScript] +- Fixes possible NPE in mxObjectCodec.set/getFieldValue [Java] +- Fixes normal flow no longer uses exceptions in mxObjectCodec [Java] +- Adds mxObjectCodec.get/setFieldValueWithAccessor methods [Java] +- Fixes possible NPE in mxVertexHandler when entering groups [Java] +- Fixes offset for invisible page shadow in mxGraphComponent.zoom [Java] +- Fixes rotation of bounds, image export of rotated mxTriangle [JavaScript] +- Fixes possible array index exception in mxGraph.cellsAdded [Java,JavaScript] +- Fixes handling of dangling edges in mxGraph.getEdgeValidationError [Java,JavaScript] + +02-MAR-2012: 1.9.1.3 + +- Moves outline to editor in grapheditor example [JavaScript] +- Adds mxOutline.init for delayed setting of outline container [JavaScript] +- Removes Google image picker API from grapheditor example [JavaScript] +- Fixes mxEvent.isLeftMouseButton in IE9 standards mode [JavaScript] +- Fixes repaint of selection marker after mxGraph.scrollRectToVisible [JavaScript] +- Moves label menu to menubar, adds gradient submenu in grapheditor [JavaScript] +- Adds MyDataCodec example to demonstrate adding support for enums [Java] +- Fixes ignored scalePreview argument in mxUtils.makeDraggable [JavaScript] + +22-FEB-2012: 1.9.1.2 + +- Fixes name of mxConstants.CURSOR_LABEL_HANDLE variable [JavaScript] +- Fixes gradient fill after state restore in mxStencil [JavaScript] +- Fixes inconsistencies and clipping bugs for Chrome in mxText [JavaScript] +- Fixes performance for certain labels in quirks-/IE 8 standards mode [JavaScript] +- Restores word wrapping in IE for overflow=fill mode [JavaScript] +- Adds mxGraph.minFitScale, maxFitScale to control mxGraph.fit [JavaScript] +- Adds selected state for actions in GraphEditor, checked menu items [JavaScript] +- Fixes mxGraph.panGraph for label panning in IE9 standards mode [JavaScript] +- Fixes possible NPE in mxUtils.getOuterHtml [JavaScript] +- mxGraphComponent.createCanvas no longer passes image observer [Java] +- Sets default edges via sidebar in GraphEditor example [JavaScript] + +15-FEB-2012: 1.9.1.1 + +- Fixes possible NPE in mxVertexHandler.reset [JavaScript] +- Fixes incorrect disabling of edge styling in tree layout [JavaScript, Java] +- Restores mxConnectionHandler behaviour, adds active state flag [Java] +- Adds EditorUi.checkBackend, changes Sidebar.addStencilPalette [JavaScript] +- Removes rounding in mxShape for rounded SVG shapes except in IE [JavaScript] +- Uses Math.ceil for size of container in mxGraph.sizeDidChange [JavaScript] +- Moves CSS images to styles folder, adds path constants in grapheditor [JavaScript] +- Sets initial image bounds in mxImageShape for delayed aspect in IE [JavaScript] +- Adds rendered previews in sidebar for grapheditor example [JavaScript] +- Removes transparency in sidebar for grapheditor example [JavaScript] +- mxDragSource.mouseDown no longer consumes mouse event [JavaScript] + +08-FEB-2012: 1.9.1.0 + +- Fixes handling of default aspect variable in mxStencil [JavaScript] +- Adds new grapheditor example with Java backend [JavaScript,Java] +- Adds disabled CSS style for mxPopupMenu items [JavaScript] +- mxResources loads default bundle if language not supported [JavaScript] +- Fixes assignment of default language in mxClient [JavaScript] +- Adds shadow to graph bounds in mxGraphView.validatePoints [JavaScript] +- Adds new mxConstants.STYLE_IMAGE_ASPECT style [JavaScript] +- Fixes rounding errors in stencils for SVG [JavaScript] +- Removes unused mxConstants.SVG_SHADOWTRANSFORM [JavaScript,Dotnet,Php] +- Fixes scaled shadow offset for all shapes [JavaScript] +- Adds tolerance check in mxConnectionHandler, initial event [Java] +- Fixes HTML label border width for Opera/IE9 in mxText [JavaScript] +- Fixes mxUtils.setOpacity for IE9 standards mode [JavaScript] +- Adds mxPopupMenu.smartSeparators switch [JavaScript] +- Adds enabled parameter in mxPopupMenu.addItem [JavaScript] +- Adds mxGraphView.createBackgroundPageShape hook [JavaScript] +- Uses CSS3 shadow for mxPopupMenu in IE9 standards mode [JavaScript] +- Adds mxGraph.getOffsetSize, used in mxGraph.sizeDidChange [JavaScript] +- Adds mxPopupMenu.labels switch to disable menu items with labels [JavaScript] +- Adds handling for string border widths in mxGraph.sizeDidChange [JavaScript] +- Fixes hit-detection for image mouse events in VML [JavaScript] +- Fixes event transparency for mxGuide in SVG [JavaScript] +- Calls init in mxPopupMenu if factoryMethod given [JavaScript] +- Sets cursor for div.mxPopupMenu to pointer in common.css [JavaScript] + +18-JAN-2012: 1.9.0.2 + +- Fixes tolerance for vertical/horizontal path detection in SVG [JavaScript] +- Moves various awt dependent constants and utility methods to improve + GAE compatibility [http://bit.ly/AESxjR] [Java] +- Adds mxUtils.rectangleIntersectsSegment utility function [JavaScript] +- Fixes label moving in mxVertexHandler to use preview position [JavaScript] +- Adds optional bounds argument in mxCellState.getPerimeterBounds [JavaScript] +- Uses CSS padding and border in mxGraph.sizeDidChange [JavaScript] +- Adds new menustyle.html, perimeter.html, grid.html examples [JavaScript] +- Adds mxPopupMenu.autoExpand switch [JavaScript] +- Fixes scaled label backgrounds in quirks and IE8 standards mode [JavaScript] +- Fixes minor problem in mxPerimeter.EllipsePerimeter [JavaScript] +- Fixes appearance of scrollbars in mxGuide [JavaScript] + +09-JAN-2012: 1.9.0.1 + +- Fixes straightening algorithm for long edges in hierarchical layout [Java,JavaScript] +- Adds new mxConstants.STYLE_LABEL_PADDING in mxText, mxImageExport [JavaScript] +- Adds labelPadding argument in mxText constructor [JavaScript] +- Fixes black artifacts and linewidth for edges in Opera 11.60 [JavaScript] +- Adds optional relative argument in mxGraph.insert-/createVertex [JavaScript,Java,Dotnet,Php] +- Supports null for mxGraphComponent.pageShadow-, pageBorder-, and pageBackgroundColor [Java] + +06-JAN-2012: 1.9.0.0 + +- Moves update of mouse event from fireMouseEvent to mxGraph.updateMouseEvent [JavaScript] +- Adds optional tolerance in mxEdgeHandler, mxVertexHandler [JavaScript] +- Adds mxOutline.sizerImage option for image-based sizer [JavaScript] +- Fixes sizerSize in mxOutline, changes default value to 8 [JavaScript] +- Uses mxEdgeHandler.createHandleShape in mxElbowEdgeHandler.createVirtualShape [JavaScript] +- Adds mxVertex-, mxEdgeHandler.handleImage option for image-based handles [JavaScript] +- Adds support for custom handle sizes in mxVertex-, mx(Elbow)EdgeHandler [JavaScript] +- Adds support for iconCls attribute in mxDefaultPopupMenu XML format [JavaScript] +- Adds iconCls argument in mxPopupMenu.addItem for CSS sprites [JavaScript] +- Adds mxClient.languages, mxLanguages, mxResources.isLanguageSupported [JavaScript] +- Adds mxCylinder.strokedBackground for backgrounds with no strokes [JavaScript] +- Replaces constructor with instanceof in all type checks [JavaScript] +- Adds mxConstants.STYLE_ARCSIZE for rounded rectangles [JavaScript] +- Makes VML images visible inside DIV in mxImageShape [JavaScript] +- Fixes return value in mxGraph.getCellBounds [JavaScript] +- Fixes mxGraph.fit to not require scrollbars [JavaScript] +- Uses container.scrollWidth/Height for extend in mxGraph.scrollPointToVisible [JavaScript] +- Removes unneeded scrollbars for graph container in mxGraph.sizeDidChange [JavaScript] +- Uses mxUrlConverter in mxXml/SvgCanvas2D for absolute image URLs [JavaScript] +- Adds mxUrlConverter for converting relative to absolute URLs [JavaScript] +- Fixes edge drawing offset when marker is used in mxConnector for IE [JavaScript] +- Fixes marker opacity in mxConnector, adds updateVmlMarkerOpacity [JavaScript] +- Fixes handling of null cursor in mxCellState.setCursor [JavaScript] +- Fixes crisp rendering for edges in IE9 with SVG [JavaScript] + +22-DEC-2011: 1.8.0.6 + +- Fixes logic of optional parameters in mxGraph.getCellAt [JavaScript] +- Improves compact tree layout edge routing [JavaScript,Java] +- Fixes bug in mxGraph.getEdgesBetween [JavaScript,Java] +- Fixes edge preview bug in IE 6-8 [JavaScript] + +05-DEC-2011: 1.8.0.5 + +- Adds support for underlined text in mxGraphicsCanvas2D.text [JavaScript] +- Adds crisp rendering for edges in IE9 standards mode with SVG [JavaScript] +- Fixes mxConnectionHandler to finish active gesture when disabled [JavaScript] +- Adds mxConnectionHandler.selectCells hook [JavaScript] +- Adds absolute image URLs and switch in mxXmlCanvas2D [JavaScript] + +02-DEC-2011: 1.8.0.4 + +- Fixes rotated stencils and shapes for mxPrintPreview in IE quirks mode [JavaScript] +- Adds mxStackLayout.resizeLast option [JavaScript] +- Fixes possible drop of parent into child cell in mxGraphHandler [Java] +- Fixes export of large rounded rectangles, swimlanes in mxImageExport [JavaScript] +- Removes temporary nodes after mxPrintPreview in IE [JavaScript] +- Fixes HTML label background for mxPrintPreview in FF [JavaScript] +- Fixes HTML label wrapping for mxPrintPreview in IE [JavaScript] +- Adds caching of cell path in mxUtils.sortCells [JavaScript] +- Adds mxLabel.opaqueVmlImages switch [JavaScript] +- Fixes handling of empty segments in mxGraphView.getPoint [JavaScript,Java,Dotnet,Php] +- Fixes missing scrollbars for mxUtils.show in Firefox 7.0 [JavaScript] +- Fixes VML border bug for transparent label images in IE7/8 [JavaScript] +- Fixes ignored opacity for indicator images in mxLabel [JavaScript] +- Adds support for dashed rectangles in mxGdCanvas [Php] +- Uses workaround in mxXmlRequest.getXml only for IE9 [JavaScript] +- Fixes mxGraphHandler for moving unselected cells [JavaScript] + +08-NOV-2011: 1.8.0.3 + +- Fixes scaled and/or translated resizing in mxVertexHandler [JavaScript] +- Adds mxUtils.findNodeByAttribute for finding nodes in DOM hierarchies [JavaScript] +- Removes mxUtils.selectSingleNode due to missing XPath support in IE9 [JavaScript] +- Fixes vertical HTML labels in IE9 standards mode [JavaScript] +- Adds experimental support for IE8 standards mode [JavaScript] +- Uses mxGraphComponent.isAutoScroll in mxGraphHandler.mouseDragged [Java] +- Changes mxCellRenderer.defaultEdgeShape to mxConnector [JavaScript] +- Adds mxCellState.invalidOrder switch to avoid initial reconfigure [JavaScript] + +31-OCT-2011: 1.8.0.2 + +- Fixes organic layout in Java [Java] +- Fixes URL of client library in HTML resources for Java examples [Java] +- Removes HTTP requests for default language resource bundles [JavaScript] +- Adds mxClient.defaultLanguage for default resource language [JavaScript] +- Creates graph instance with stylesheet argument in mxOutline [JavaScript] +- Adds optional stylsheet argument in mxGraph constructor [JavaScript] +- Fixes choice in InstructionListType and PathType for stencils.xsd [JavaScript] +- Adds mxConnectionHandler.isMoveIconToFrontForState for connect image zIndex [JavaScript] +- Fixes hovericons.html example for IE9 standards mode [JavaScript] +- Fixes support for underlined font styles in IE9 standards mode [JavaScript] +- Uses transforms in Opera and Webkit for HTML scaling in mxText [JavaScript] +- Fixes scaled text rendering in mxText for IE9 standards mode [JavaScript] +- Fixes image artifacts in mxImageShape for IE7 standards mode [JavaScript] +- Fixes inherited whitespace CSS for HTML labels in mxText for IE9 standards mode [JavaScript] +- Fixes autoscroll in mxGraph for IE9 in IE9 standards mode with SVG [JavaScript] +- Creates only one DIV and reuses it in each mxRubberband instance [JavaScript] +- Adds workaround for crisp shape rendering in SVG for IE9 [JavaScript] +- Fixes type error when using nodes from XHR in IE9 standards mode [JavaScript] + +24-OCT-2011: 1.8.0.1 + +- Improves edge terminations in hierarchical layout [JavaScript, Java] +- Fixes use of undefined variable n in mxGdCanvas.drawPolygon [Php] +- Fixes minor zoom and word wrapping issues in mxText for IE [JavaScript] +- Fixes mxPanningHandler to show popupmenu after mouseUp in Safari for Mac [JavaScript] +- Fixes horizontal image alignment for label export in mxGdiCanvas [Dotnet] +- Fixes target terminal points in mxGraphView.updateFixedTerminalPoint [Php] +- Fixes label container fill color in mxLine shape for VML [JavaScript] +- Fixes scaled font rendering in mxGraphicsCanvas2D, mxGdiCanvas2D [Java,Dotnet] +- Adds new image export in diagrameditor.html for Dotnet and Java [JavaScript,Java,Dotnet] +- Fixes default font color in mxImageExport.drawLabel [JavaScript] +- Fixes wrong array access for multiple clips in mxText.getSvgClip [JavaScript] +- Adds crisp switch in mxGuide, mxVertex-, mxGraph- and mxEdgeHandler [JavaScript] +- Uses crisp rendering in SVG for handles and vertex selection border [JavaScript] + +07-OCT-2011: 1.8.0.0 + +- Adds accessors for mxCellOverlay.align and verticalAlign [Java] +- Uses rounding for SVG strokewidths, rendering coordinates [JavaScript] +- Fixes text position in mxText for SVG to match HTML, VML output [JavaScript] +- Fixes crisp rendering in SVG, strokeweight in VML for mxLine [JavaScript] +- Fixes miterlimit, linejoin in VML to match SVG output [JavaScript] +- Fixes font scaling for overflow = fill in IE [JavaScript] +- Fixes background box rendering precision for overflow=fill [JavaScript] +- Uses Math.round instead of Math.floor for rendering shapes [JavaScript] +- Fixes handling of absolute URLs in mxBasicCanvas.getImageForStyle [Java] +- Makes style section in output for mxSvgCanvas2D optional [JavaScript] +- Adds wires.html example for digital and electrical circuits [JavaScript] +- Fixes move cursor on unselected swimlane border in IE [JavaScript] +- Adds hooks to change vertical text orientation in mxText [JavaScript] + +30-SEP-2011: 1.7.1.11 + +- Adds mxSvgCanvas2D for client-side SVG export in all browsers [JavaScript] +- Improves drawing of quadratic curves as beziers in stencils for VML [JavaScript] +- Fixes oval marker display and export [JavaScript] +- Adds mxCellMarker.highlight for forcing highlight of cells [Java] +- Fixes ignored mxGraphOutline.zoomHandleVisible switch [Java] +- Converts arcs in mxStencil to curves in image export, VML [JavaScript] +- Removes arc in XML for image export, arcTo in mxICanvas2D [JavaScript,Java] +- Adds mxWindow.getMinimumSize hook [JavaScript] +- Adds mxSaxOutputHandler, mxICanvas2D, mxGdiCanvas2D [Dotnet] +- Fixes rounded corner size for roundrect in mxImageExport [JavaScript] +- Adds mxImageExport.includeOverlays switch for exporting overlays [JavaScript] +- Adds mxUtils.arcToCurves for converting arcs to bezier curves [JavaScript] +- Changes return type of mxGraphicsCanvas2D.getImageBounds to Rectangle [Java] +- mxInteractiveCanvas adds observer in drawImageImpl, getImageSize [Java] +- Adds mxInteractiveCanvas.imageObserver property [Java] +- Adds mxGraphics2DCanvas.drawImageImpl, getImageSize hooks [Java] +- Adds gradient fill for foreground shapes in mxStencil [JavaScript] +- Fixes ignored flip arguments for image export in mxStencil [JavaScript] +- Fixes appended image transform in mxStencil for SVG [JavaScript] + +21-SEP-2011: 1.7.1.10 + +- Removes end tag in internal image export XML format [JavaScript,Java] +- Removes end method in mxICanvas2D, mxXmlCanvas2D [JavaScript,Java] +- Adds automatic antialias switch in mxGraphicsCanvas2D [Java] +- Fixes shadow for empty fillColor in mxImageExport [JavaScript] +- Fixes offset for oval marker, connector endpoints in mxImageExport [JavaScript] +- Adds additional save/restore for export of labels in mxImageExport [JavaScript] +- Fixes default text alignment for image export and stencils [JavaScript,Java] +- Fixes clipping in mxText for IE9 in IE9 standards mode [JavaScript] +- Fixes mxImageShape HTML rendering for IE9 in SVG mode, size for non-preserved image aspect [JavaScript] +- Renames com.mxgraph.io.gml to com.mxgraph.io.graphml, mxGml prefix to mxGraphMl [Java] +- Fixes font color in in-place editor, allows white font colors [JavaScript] + +11-SEP-2011: 1.7.1.9 + +- Fixes substring for return value of mxGraph.validateCell [JavaScript] +- Fixes numeric typecast of fontfamily attribute in stencils [JavaScript] +- Fixes mxGraph.translateCell for relative cells with offsets [JavaScript] +- Does no longer use ExtJs tooltips in GraphEditor.js example [JavaScript] + +08-SEP-2011: 1.7.1.8 + +- Adds support for port constraints in entity relation edge style [Java,JavaScript] +- Disables foreignObject for Webkit in labels.html to fix clipping [JavaScript] +- Adds new control.html example for adding controls to shapes [JavaScript] +- Adds mxCellRenderer.initControl for initializing controls [JavaScript] +- Adds SELECT element to Process cell in ports.html example [JavaScript] +- Adds workaround for SELECT elements in mxGraphHandler, mxEdgeHandler for Webkit [JavaScript] +- Fixes handling of ports for validation in mxEdgeHandler [Java] +- Removes pageSelector anchors in mxPrintPreview for Firefox [JavaScript] +- Fixes SVG multipage output in mxPrintPreview for IE9 [JavaScript] +- Replaces mxPrintPreview.addPageClickListener with anchor [JavaScript] +- Fixes event handling for page selector in mxPrintPreview [JavaScript] +- Updates listeners in mxSelectionCellsHandler, mxConnectionHandler [Java] +- Adds mxSelectionCellsHandler, mxConnectionHandler.add/removeGraphListeners [Java] +- Fixes possible NPE in orgchart.html example [JavaScript] +- Fixes stroke and gradient fill colors in mxPrintPreview for IE [JavaScript] +- Fixes tooltips in stylesheet.html example [JavaScript] +- Fixes possible NPE in mxCellState.getPerimeterBounds [JavaScript] +- Removes dojostorage.html, gears.html and grapheditor-gears.html examples [JavaScript] +- Fixes duplicate rotation for mxTriangle and mxHexagon shape [JavaScript] +- Adds mxGraphHandler.snap, scaleGrid, fixes grid alignment [JavaScript] +- Adds accessors for marker in mxGraphHandler [Java] +- Fixes clear selection logic in mxPanningHandler [JavaScript] +- Fixes moving of vertex labels for unresizable vertices [JavaScript] +- Fixes scaling of mxCellOverlay.offset [JavaScript] +- Adds optional arcsize attribute for roundrect in stencils [JavaScript] +- Fixes preserved image aspect for collapse and connect icon [JavaScript] +- Fixes duplicate cell overlays after mxUtils.getViewXml [JavaScript] +- Fixes removing of first listener in mxEventSource.removeListener [Java] + +24-AUG-2011: 1.7.1.7 + +- Fixes bug in mxGraphModel.getNearestCommonAncestor [JavaScript] +- Updates style of table cells in schema.html example [JavaScript] +- Fixes border of image in mxSwimlane for VML [JavaScript] +- Uses mxConstants.SHADOW_OFFSET_X/Y for VML shadows in mxShape [JavaScript] +- Uses mxConstants.SHADOW_OPACITY in mxShape [JavaScript] +- Fixes use of DOCTYPE in standardsmode.html example for non-IE browsers [JavaScript] +- Adds mxResources.get/loadDefault/SpecialBundle switches and hooks [JavaScript] + +04-AUG-2011: 1.7.1.6 + +- Adds rotation for custom shapes in mxImageExport [JavaScript] +- Fixes ignored linecap in mxStencil for VML [JavaScript] +- Bypasses style to directly assign rotation attribute to VML nodes [JavaScript] +- Fixes rotation in mxStencilShape for mixed and preferHtml modes [JavaScript] +- Adds support for rotation and direction in custom shapes [JavaScript] +- Fixes use of undeclared graph variable in mxImageExport [JavaScript] +- Changes element to include shapes to include-shape in stencil XSD [JavaScript] +- Changes flat path structure to hierarchy in stencil XSD [JavaScript] +- Adds support for Android devices in mxClient.IS_TOUCH [JavaScript] +- Fixes shadow in image export for programmatic custom shapes [JavaScript] +- Fixes translation of rotation center in translated image exports [Java] +- Fixes collapse icon image distortion in VML [JavaScript] + +01-AUG-2011: 1.7.1.5 + +- Add direction argument for mxStencil.computeAspect [JavaScript] +- Fixes mxEdgeHandle.snapToTerminals for fixed points [JavaScript] +- Adds mxStencil.parseDescription, parseConstraints hooks [JavaScript] +- Adds font scaling in mxStencil and stencil image export [JavaScript] +- Fixes syntax error in mxStencil.parseConstraint [JavaScript] +- Fixes ignored stencil font family in stencil image export [JavaScript] +- Fixes name of fontstyle attribute to style in the stencil XSD [JavaScript] + +29-JUL-2011: 1.7.1.4 + +- Replaces mxLog.consoleResource with static mxLog.consoleName [JavaScript] +- Adds mxStencil.parseConstraint hook [JavaScript] +- Fixes possible root parent in mxConnectionHandler.connect [JavaScript] +- Fixes occasional offset for VML images in mxImageShape [JavaScript] +- Adds mxLoadResources, mxLoadStylesheets config options [JavaScript] +- Removes automatic loading of contentAreaUtils.js for Mozilla in mxClient [JavaScript] +- Adds new portrefs.html example for referencing connection points [JavaScript] + +26-JUL-2011: 1.7.1.3 + +- Allows rotation and direction in mxStencil, mxImageExport [JavaScript] +- Uses rotation/direction in mxGraph.getConnectionPoint [JavaScript] +- Fixes possible missing image aspect in mxPrintPreview for VML [JavaScript] +- Adds mxGraph.portsEnabled switch with accessors [JavaScript] +- Uses stencil aspects in perimeters and connection points [JavaScript] +- Uses mxGraphView.getPerimeterBounds in mxGraph.getConnectionPoint [JavaScript] +- Makes signature of mxUtils.getPortConstraints more generic [JavaScript,Java] +- Adds mxImageShape.scheduleUpdateAspect, updateAspect hooks [JavaScript] +- Fixes font styles for image export in mxStencil [JavaScript] + +23-JUL-2011: 1.7.1.2 + +- Fixes images for IE in mxImageShape, mxPrintPreview [JavaScript] +- Handles removal of view.currentRoot in mxGraph.processChange [JavaScript] +- Fixes flipH/V, adds 90-degree rotation in stencils.html example [JavaScript] + +22-JUL-2011: 1.7.1.1 + +- mxImageShape uses IMG for all non-embedded images in IE [JavaScript] +- Fixes long edge straightening in hierarchical layout [Java] +- Fixes vertical VML label backgrounds in image export [JavaScript] +- Fixes conversion of HTML entities in IE for mxImageExport [JavaScript] +- Fixes HTML entities in labels for IE9 in SVG mode [JavaScript] +- Removes default image caching in mxGraphicsCanvas2D [Java] +- Fixes mxGraphicsCanvas2D for scaled image export [Java] +- Fixes mxPrintPreview for VML output [JavaScript] +- Changes mxConstants.EMPTY_IMAGE to BufferedImage, checked initialization [Java] +- Adds example for cross-document DnD in dragsource.html [JavaScript] +- Fixes possible NPE in mxDragSource.mouseMove [JavaScript] +- Adds hexagonPerimeter in mxStyleRegistry [Java] +- Adds mxCellMarker.markCell [JavaScript] +- Adds support for old custom shapes in mxImageExport [JavaScript] + +13-JUL-2011: 1.7.1.0 + +- Fixes black background when using imageBorder style in mxImageShape [JavaScript] +- Adds mxConstants.STYLE_END-/STARTFILL for mxMarker and mxImageExport [JavaScript] +- Adds source, style argument in mxMarkers.paintMarker [JavaScript] +- Renames mxConstants.STYLE_FLIPH/V to STYLE_STENCIL_FLIPV/H [JavaScript] +- Adds new mxImageExport, mxXmlExportCanvas classes [JavaScript] +- Adds new com.mxgraph.reader.mxDomOutputParser, SaxOutputHandler classes [Java] +- Adds new com.mxgraph.canvas.mxICanvas2D, mxGraphicsCanvas2D classes [Java] +- Fixes dashed background border rendering in mxStencil [JavaScript] +- Fixes use of wrong variable in mxUtils.getRotatedPoint [JavaScript] +- Uses capability checks in mxUtils.getXml [JavaScript] +- Fixes handling of aliases in mxCellCodec.beforeDecode [JavaScript] +- Fixes handling of native XML nodes as fields in mxCodec.encode [JavaScript] +- Fixes possible NPE in mxGdiCanvas.DrawLabel [Dotnet] +- Fixes handling of no line color in mxLine, mxPolyline and mxConnector [JavaScript] +- Fixes linejoin for custom shapes (mxActor and subclasses) in SVG [JavaScript] +- Fixes stencil shape rendering in IE without shadow and gradient [JavaScript] +- Fixes possible NPE mxGraph.getAllConnectionConstraints [JavaScript] + +23-JUN-2011: 1.7.0.7 + +- Fixes aspect attribute for shapes, adds strokewidth attribute [JavaScript] +- Fixes ignored label bounds in mxGdiCanvas [JavaScript] +- Adds new hovericons.html example for showing icons on mouseover [JavaScript] + +14-JUN-2011: 1.7.0.6 + +- Adds dashed, dashpattern nodes in stencil XML format [JavaScript] +- Uses mxMouseEvent for hiding popup menu in mxGraphView.installListeners [JavaScript] +- Adds mxStylesheetCodec.getStringValue hook [JavaScript,Java,Dotnet,Php] +- mxPanningHandler fires new mxEvent.PAN_START, PAN, PAN_END [JavaScript] +- mxPopupMenu inherits from mxEventSource, fires mxEvent.SHOW [JavaScript] +- Fixes HTML label background with word wrap in mxText [JavaScript] +- Registers mxStylesheetCodec and fixes minor parsing bug [Dotnet] +- Fixes possible item exists exception in mxStylesheet.GetCellStyle [Dotnet] +- Fixes possible file not found exception in mxUtils.LoadImage [Dotnet] +- Adds support for additional text labels in stencils [JavaScript] +- Fixes ignored scale in mxUtils.getSizeForHtml [Java] + +07-JUN-2011: 1.7.0.5 + +- Adds includeEdges argument in mxGraph.getBoundingBoxFromGeometry [JavaScript] +- Fixes event handling for touch devices in mxEdgeHandler [JavaScript] +- Changes mxConnectionHandler.tapAndHoldDelay default to 500 ms [JavaScript] +- Adds mxOutline.createSizer, fixes sizer for touch events [JavaScript] + +02-JUN-2011: 1.7.0.4 + +- Adds support for SVG in IE9, handling of DOCTYPES in IE [JavaScript] +- Updates known-issues.html for DOCTYPES and SVG in IE [JavaScript] +- Fixes scroll origin for drag preview in mxDragSource [JavaScript] +- Fixes mxUtils.createImage to use VML images only in IE6 quirks mode [JavaScript] +- Adds workaround for ignored tolerance for double clicks in IE9 standards mode [JavaScript] +- Adds new ie9svg.html example for enabling SVG in IE9 [JavaScript] +- Moves declaration of VML namespaces and CSS for VML into mxClient.js [JavaScript] +- Fixes for standards mode in mxEvent, mxLog, mxWindow, mxUtils, mxShape, CSS files [JavaScript] +- Fixes handling of double clicks in edgetolerance.html example [JavaScript] +- mxEdge/VertexHandler.getHandleForEvent ignores hidden handles [JavaScript] + +27-MAY-2011: 1.7.0.3 + +- Adds docs/stencils.xsd XML schema for stencils format [JavaScript] +- Adds mxConstants.STYLE_FLIPH/V for mxStencilShape [JavaScript] +- Adds new stencils.html example [JavaScript] +- Adds mxConstants.SHADOW_OFFSET_X/Y, SHADOW_OPACITY [JavaScript] +- mxGraph.getAllConnectionConstraints uses stencil shapes [JavaScript] +- mxCellRenderer.createShape creates stencil shape instances [JavaScript] +- Adds new mxStencil, mxStencilShape, mxStencilRegistry classes [JavaScript] + +24-MAY-2011: 1.7.0.2 + +- Moves creation of mxGuide to mxGraphHandler.start [JavaScript] +- Fixes snap to grid in mxVertexHandler single sizer mode [JavaScript] +- Fixes zIndex for submenus in mxPopupMenu [JavaScript] +- Fixes possible NPE in mxPopupMenu.addSeparator [JavaScript] +- Fixes tapAndHold timer for iPad in mxConnectionHandler [JavaScript] +- Adds mxConnectionHandler.tapAndHold hook [JavaScript] +- Adds new edgetolerance.html example [JavaScript] +- No longer removes cells from selection when moving between groups [JavaScript] +- Caller of mxConnectPreview.update no longer snaps arguments to grid [Java] +- mxConnectPreview.update uses scale when snapping to grid [Java] +- Returns true in mxGraph.isTerminalPointMovable [Java] +- Stops checking non-connected terminals on orthogonal edge style + for boundary positioning. [JavaScript] +- Defers implementation of edge style from orthogonal edge style to + segment style if either terminal is edge. [JavaScript] +- Adds mxShape.updateVmlFill hook [JavaScript] +- Fixes initial fill color rendering in mxImageShape for SVG [JavaScript] +- Fixes curve label glyph width calculation for right-to-left languages [Java] + +16-MAY-2011: 1.7.0.1 + +- Fixes possible NPE in mxEdgeHandler.isHandleVisible [JavaScript] +- mxEdgeSegmentHandler no longer ignores mxGraph.isCellBendable [JavaScript] +- mxElbowEdgeHandler, mxEdgeSegmentHandler use createHandleShape for terminal handles [JavaScript] +- mxDragSource uses mxGraph.isGridEnabledEvent, mxGuide.isEnabledForEvent [JavaScript] +- Changes mxGraphHandler.useGuidesForEvent to use mxGuide.isEnabledForEvent [JavaScript] +- Adds mxGuide.isEnabledForEvent, mxGuide.hide [JavaScript] +- Fixes rendering of multi-character single glyphs on curve labels [Java] +- Removes conflicting fix for highlight offset in IE [JavaScript] + +11-MAY-2011: 1.7.0.0 + +- Fixes 1px rendering offset for HTML rectangles in IE [JavaScript] +- Adds mxUtils.getNumber for numeric values, getColor for colors [JavaScript] +- Adds dragsource.html, orthogonal.html examples [JavaScript] +- Adds x, y arguments to function parameter in makeDraggable [JavaScript] +- Adds new mxDragSource used in mxUtils.makeDraggable [JavaScript] +- Fixes clearSelection for toggle events in mxGraphHandler [Java] +- Adds optional addOffset argument in mxGraph.getPointForEvent [Java,JavaScript] +- Fixes minor offset for mxCellHighlight in IE [JavaScript] +- Moves mxGraphHandler.createGuideShape, getGuideTolerance to mxGuide [JavaScript] +- Factors-out guides from mxGraphHandler into new mxGuide class [JavaScript] +- Improves drawing of oval marker for >1 size and stroke width [Java,JavaScript] +- Fixes repaint of hidden VML connectors after panning into viewport [JavaScript] +- Fixes handling of none for fill, stroke and gradient in mxShape [JavaScript] + +29-APR-2011: 1.6.1.3 + +- Fixes use of preview style for overridden mxConnectionHandler.createEdge [JavaScript] +- Adds style argument in mxConnectionHandler.createEdge and factoryMethod [JavaScript] +- Rounds result in mx(Elbow)EdgeHandler.convertPoint [JavaScript] +- Adds maximum repulsion distance to organic layout [Java, JavaScript] +- Fixes syntax error in mxCellRenderer for foreground edges [JavaScript] +- Adds SegmentConnector for new EDGESTYLE_SEGMENT constant in mxStyleRegistry [JavaScript] +- Adds new mxEdgeSegmentHandler, mxEdgeStyle.SegmentConnector [JavaScript] +- Fixes translate of waypoints in mxConnectionHandler [JavaScript] +- Fixes preview for connection constraints in mxConnectionHandler [JavaScript] +- Fixes update of absolute terminal point in mxEdgeHandler.updatePreviewState [JavaScript] +- Adds mxConnectionHandler.addWaypointForEvent hook [JavaScript] + +21-APR-2011: 1.6.1.2 + +- Fixes various bugs in orthogonal edge style [JavaScript, Java] +- mxConnectionHandler uses style of preview edge for new edge [JavaScript] +- Adds style argument in mxConnectionHandler.insertEdge [JavaScript] +- Changes signature of mxEdgeHandler.clonePreviewState [JavaScript] +- Adds mxEdgeHandler.getPointForEvent, getPreviewTerminal, getPreviewPoints, updatePreviewState [JavaScript] +- Fixes possible division by zero in ellipse perimeter [JavaScript,Java,Dotnet,Php] +- Fixes possible NPE in mxImageShape [JavaScript] +- Fixes HTML rendering of mxImageShape in SVG browsers [JavaScript] + +08-APR-2011: 1.6.1.1 + +- Adds new markers.html example for custom markers [JavaScript] +- Fixes minor hit detection issues in mxConnectionHandler for IE [JavaScript] +- mxGraph(Component).getFoldingImage/Icon returns null for edges [JavaScript,Java] +- mxGraph.isConstrainChild returns false for edge children [JavaScript,Java] +- Fixes issues with connection handler in IE [JavaScript] + +05-Apr-2011: 1.6.1.0 + +- Adds new orthogonal routing option [JavaScript,Java] + +01-Apr-2011: 1.6.0.0 beta + +- Uses CSS3 shadows for mxWindow, mxPopupMenum, tooltips in common.css [JavaScript] +- Replaces mxTooltipShadow in common.css with CSS3 shadows [JavaScript] +- Removes mxClient.TOOLTIP_SHADOWS, mxTooltipHandler.shadow [JavaScript] +- Removes mxClient.MENU_SHADOWS, mxPopupMenu.showShadow [JavaScript] +- Replaces mxPopupMenuShadow in common.css with CSS3 shadows [JavaScript] +- Removes mxClient.WINDOW_SHADOWS, mxWindow.updateShadow, mxWindow.shadow [JavaScript] +- Uses explicit mxPopupMenuItemHover style in mxPopupMenu for highlight [JavaScript] +- Replaces mxPopupMenuItem:hover with mxPopupMenuItemHover in common.css [JavaScript] +- Fixes permissions.html example for unconnected terminal points [JavaScript] +- Adds mxGraph.isTerminalPointMovable hook [JavaScript,Java] +- Disables in-place editing if graph component is disabled [Java] +- Adds new fixedicon.html example for icon positions in mxLabel [JavaScript] +- Removes duplicate call to updateSvgGlassPane in mxLabel.redraw [JavaScript] +- Uses crisp SVG rendering for controls in mxOutline [JavaScript] +- Fixes use of child cells in mxConstraintHandler.update [JavaScript] +- Checks connectable state in mxConstraintHandler.update [JavaScript] +- Fixes scrollbars in mxGraphComponet.extendComponent [Java] +- Adds handling for none fill colors in mxGdCanvas [Php] +- Changes wrapping.html example to use whiteSpace style [JavaScript] +- Uses cached label in mxDefaultTextShape [Java] +- Removes mxGraphControl.getDisplayLabelForCell [Java] +- Changes signature of mxGraph.drawState [Java] +- Adds mxGraphView.getWordWrapWidth hook for word wrapping [Java] +- Adds mxGraphView.updateLabel for word wrapping and update of the cached label [Java] +- Adds mxCellState.label with accessors for caching the label [Java] +- Moves word wrapping into mxGraphView, caches label in mxCellState [Java] +- Uses unscaled font, removes word wrap in mxUtils.getSizeForString [Java] +- Adds mxClient.IS_IE9 [JavaScript] +- Adds mxConstants.STYLE_FOLDABLE to control folding icons [Java,JavaScript] +- Adds mxConstants.STYLE_AUTOSIZE to control automatic sizing [Java,JavaScript] +- Fixes mxGraphModel.updateEdgeParent for edge-to-edge connections [JavaScript,Java,Dotnet,Php] +- Adds missing mxConstants.OUTLINE_COLOR constant [JavaScript] +- mxCellRenderer.installListeners removes workaround for DOM events in IE [JavaScript] +- mxImageShape uses VML for all non-embedded images in IE [JavaScript] +- Fixes contexticons.html example for IE6, connecting in IE [JavaScript] +- Changes mxUtils.createImage to return VML image for IE [JavaScript] +- mxImageShape improves support for flipped images in IE [JavaScript] + +17-Mar-2011: 1.5.1.11 + +- Fixes possible NPE in mxMovePreview.repaint [Java] +- Uses px units for strokeweights in VML [JavaScript] +- Fixes font measuring in mxUtils, adds scale parameters [Java] +- Adds mxCellHighlight.spacing [JavaScript] +- Fixes strict standards message for mxHtmlCanvas.drawImage [Php] +- Adds handling for none stroke colors in mxGdCanvas [Php] +- Fixes first waypoint in mxConnectionHandler for single click triggers [JavaScript] +- Adds mxConnectionHandler.mouseDownCounter [JavaScript] +- Fixes scaled waypoints in mxConnectionHandler, adds convertWaypoint [JavaScript] +- Adds mxConstants.GUIDE_COLOR, GUIDE_STROKEWIDTH [JavaScript] + +14-Mar-2011: 1.5.1.10 + +- Fixes mxPath.quadTo for VML [JavaScript] +- Adds mxEdgeHandler.getSnapToTerminalTolerance, snapToTerminals [JavaScript] +- Adds mxGraphHandler.getGuideTolerance for snapping to guides [JavaScript] +- Adds new guides.html example for new mxGraphHandler switch [JavaScript] +- Adds new mxGraphHandler.guidesEnabled, useGuidesForEvent, createGuideShape (RFC) [JavaScript] +- Adds mxGraphHandler.currentDx, currentDy [JavaScript] +- Adds deprecated mxOutline.refresh to invoke update [JavaScript] +- Removes mxgraph cookie, isFirstTime argument in mxEditor.onInit hook [JavaScript] +- Adds image export in deployment.php example [Php] +- Fixes encoding of XML for image export in mxEditor, decoding in backends [JavaScript,Dotnet,Java] +- Fixes mxGraphModel.updateEdgeParent for relative terminals [JavaScript,Java,Dotnet,Php] +- Fixes edge adoption in mxConnectionHandler for relative sources and targets [JavaScript] +- Adds support for terminal-less connections in mxConnectionHandler [JavaScript] +- Adds mxConnectionHandler.isStart/StopEvent hooks [JavaScript] +- Adds preview for connections in grapheditor.html example [JavaScript] +- mxGraphComponent.setGraph fires property change event [Java] +- Uses STYLE_DASH_PATTERN in mxSvgCanvas [Java] +- Adds gridEnabled argument in mxVertexHandler.union, resizeCell [JavaScript] +- Fixes mxVertexHandler for off-grid bounds [JavaScript] +- Adds crisp SVG-rendering in diagrameditor.html example [JavaScript] + +07-MAR-2011: 1.5.1.9 + +- Fixes connect highlight if mouse over vertex or edge handle [JavaScript] +- Uses crisp rendering for mxGraphHandler shape in SVG [JavaScript] +- mxGraph(Component) returns null if foldingEnabled is false [JavaScript,Java] +- Adds support for serialization in mxGraphModel [Java] +- Fixes black background for flipped images with transparency [Php] +- Adds mxMouseEvent.getGraphX()/getGraphY() graph mouse coordinates [JavaScript] +- Fixes spacing offset in mxText for VML [JavaScript] +- Uses crisp rendering in shape.html example [JavaScript] +- Adds crisp option for mx(Double)Ellipse, mxCylinder, mxActor and subclasses [JavaScript] + +28-FEB-2011: 1.5.1.8 + +- Fixes rubberband handling in windows.html example for IE [JavaScript] +- Adds mxEdgeHandler/mxVertexHandler.allowHandleBoundsCheck switch [JavaScript] +- Fixes connect preview, collapsed title for IE in scrollbars.html example [JavaScript] +- Adds mxConnector.allowCrispMarkers switch [JavaScript] +- Adds crisp rounded rendering in mxRectangleShape, mxLabel and mxSwimlane [JavaScript] +- Fixes connect preview with active constraint handler [JavaScript] +- Uses bounds in mxVertexHandler.getHandleForEvent for IE [JavaScript] +- Uses bounds in mxEdgeHandler.getHandleForEvent for IE [JavaScript] +- Adds mxEdgeHandler.isConnectableCell hook [JavaScript] +- Adds mxConnectionHandler.isConnectableCell hook [JavaScript] +- Adds mxConnectionHandler.updateCurrentState hook [JavaScript] +- Adds event argument for state in mxEvent.redirectMouseEvents [JavaScript] +- Adds mxConnectionHandler.movePreviewAway, true only in IE [JavaScript] +- Adds event redirection on connection preview in IE [JavaScript] +- Fixes mouseUp on states if waypoints enabled in mxConnectionHandler [JavaScript] +- Adds new mxEdgeHandler.clonePreviewState hook [JavaScript] +- Fixes passing result by value in mxEdgeStyle.apply [Php] +- Fixes use of local font in examples for PHP 5.3 [Php] +- Fixes use of direction constants in mxGdCanvas [Php] + +22-FEB-2011: 1.5.1.7 + +- Changes default value for mxGdCanvas.antiAlias to false [Php] +- Fixes update of relations when scrolling in scrollbars.html example [JavaScript] +- Uses fixed terminal points, geometry of preview in mxConnectionHandler [JavaScript] +- Fixes repaint after mxGraph.zoomActual if scale is 100% [JavaScript] +- Adds mxConstants.STYLE_EDITABLE to control in-place editing [Java,JavaScript] +- Adds mxConstants.STYLE_BENDABLE to control changing bends of edges [Java,JavaScript] +- Adds mxConstants.STYLE_MOVABLE to control moving of cells [Java,JavaScript] +- Adds mxConstants.STYLE_RESIZABLE to control resizing of cells [Java,JavaScript] +- Adds mxConstants.STYLE_CLONEABLE to control cloning of cells [Java,JavaScript] +- Adds mxConstants.STYLE_DELETABLE to control deleting of cells [Java,JavaScript] +- Uses crisp switch in mxShape.createPoints for crisper edges [JavaScript] +- Adds mxCellHighlight.drawHighlight which uses createShape [JavaScript] +- Uses opaque viewport background color for background painting [Java] +- Updates origin after scale and translate events in mxGraph [Java] +- Fixes cloned shapes while panning in IE [JavaScript] + +11-FEB-2011: 1.5.1.6 beta + +- Removes mxOutline.refresh, calls update from ctor [JavaScript] +- Removes redraw-call in mxShape.init for performance [JavaScript] +- Fixes grid alignment for useGrid in mxPanningHandler [JavaScript] +- Fixes toggle selection trigger for right-clicks on Macs [Java] +- Fixes combined image rotation and flipping in mxImageShape [JavaScript] + +02-FEB-2011: 1.5.1.5 + +- Fixes container resize for IE/Chrome in diagrameditor.html example [JavaScript] +- Fixes image ID counter starts at 2 in mxSvgCanvas [Java] +- Fires mxEvent.CONNECT in mxConnectionHandler.connect/mouseReleased [JavaScript,Java] +- Adds cell argument for STOP event in mxConnectPreview [Java] +- Adds optional document argument in mxUtils.button [JavaScript] +- Fixes mxUtils.write, writeln, br to use owner document of parent [JavaScript] +- Updates initialImportCount in mxGraphTransferHandler.exportDone [Java] +- Updates importCount, lastImported in mxGraphTransferHandler.importData [Java] +- Refactors mxGraphTransferable for subclassing and custom data [Java] +- Clones cells in last mxGraphTransferHandler.createGraphTransferable [Java] +- Adds mxSvgCanvas.isImageResource [Java] +- Renames mxSvgCanvas.getResourceAsStream to getResource [Java] + +24-JAN-2011: 1.5.1.4 + +- Fixes mxCellRenderer.redrawLabel for DOM node label values [JavaScript] +- Fixes editing.html example for multiple labels with editing [JavaScript] +- Fixes gradient painting for swimlane titles in mSwimlaneShape [Java] +- Adds mxBasicShape.getGradientBounds, overrides in mxSwimlaneShape [Java] +- Fixes parsing of PNG text chunks in mxPngTextDecoder [Java] +- Adds label borders, transparent swimlanes, font styles in mxSvgCanvas [Java] +- Uses embedded images in exported SVG files in GraphEditor example [Java] +- Adds label images, rounded edges, gradients, glass effects in mxSvgCanvas [Java] +- Uses edgeState for routing in mxConnectionHandler preview [JavaScript] +- Improves performance in mxGraphics2DCanvas.drawImage [Java] +- Fixes mxGraph.cellsResized for relative children [Java] +- Fixes mxCellStatePreview for relative edge children [JavaScript,Java] +- Fixes possible NPE in mxImageBundle.getImage [JavaScript,Java,Dotnet,Php] +- Uses command key in mxGraphComponent.isToggleEvent on Mac [Java] +- Adds mxUtils.IS_MAC constant [Java] +- Changes getSelectionColor/Stroke to public in all handlers [Java] +- Adds public getSelectionColor/Stroke in mxCellHandler [Java] +- Checks valid image width and height in mxGraphics2DCanvas [Java] +- Fixes selection border artifacts in mxSelectionCellsHandler [Java] + +14-JAN-2011: 1.5.1.3 + +- Refactors mxSwimlaneManager and adds recursion [JavaScript,Java] +- Improves alignment for zoomed glass effects [JavaScript,Java,Dotnet] +- Aligns border of HTML shapes with borders in VML, SVG [JavaScript] +- Fixes recursive reordering of cell states after change [JavaScript] +- Fixes update of font style in mxLeightweightLabel [Java] +- Fixes reuse of mouseListeners in subclasses of mxGraph [JavaScript] + +12-JAN-2011: 1.5.1.2 + +- Fixes possible NPE in mxSvgCanvas [Java] +- Fixes offset for transparent foreignObject labels in Chrome [JavaScript] +- Adds mxConnectionHandler.waypointsEnabled switch [JavaScript] +- Adds target argument in mxUtils.submit [JavaScript] +- Fixes possible NPE in mxConnectPreview [Java] + +05-JAN-2011: 1.5.1.1 + +- Adds mxUtils.flipImage helper method for flipping images [Php] +- Moves loadImage, imageCache, PRESERVE_IMAGE_ASPECT to mxBasicCanvas [Java] +- Adds embedded images output option using DataURLs in mxSvgCanvas [Java] +- Fixes opacity in SVG output of mxImageShape, images in mxLabel [JavaScript] +- Supports image flipping in all image shapes and canvases [JavaScript,Java,Dotnet,Php] +- Adds mxConstants.STYLE_IMAGE_FLIPH/FLIPV for image [JavaScript,Java,Dotnet,Php] +- Fixes preserved image aspects in mxImageShape for HTML [JavaScript] +- Adds mxConstants.PAGE_FORMAT_LETTER_PORTRAIT/LANDSCAPE [JavaScript] +- Fixes selection reset for context menu in grapheditor.html for Safari on Mac [JavaScript] +- Fixes parsePoints in mxGraphViewImageReader.php [Php] +- Adds pluggable markers in mxMarker, used in mxConnector [JavaScript] +- Fixes minor bug in VML gradient fill for cylinder shape [JavaScript] +- Hides VML/HTML shapes during repaint for improved performance [JavaScript] +- Cleanup VML shape redrawing and configuration for all shapes [JavaScript] +- Moves reference to fillNode from vml shape to mxShape instance [JavaScript] +- Replaces built-in VML markers with custom code in mxConnector [JavaScript] + +20-DEC-2010: 1.5.1.0 + +- Fixes possible NPE in mxGraph.getCell-/EdgeValidationError [JavaScript,Java] +- Fixes moving of vertices after mxGraphComponent.setTransferHandler [Java] +- Uses smooth image scaling by default in mxGraphics2DCanvas.drawImage [Java] +- Adds mxGraphics2DCanvas.IMAGE_SCALING switch [Java] +- Adds support for non-uniform image scaling in SVG [JavaScript] +- Preserves image aspects, adds mxImageShape.preserveImageAspect [JavaScript] +- Limits use of vml images in mxImageShape to DIALECT_VML [JavaScript] +- Adds mxGd-, mxGdi-, mxGraphics2DCanvas.PRESERVE_IMAGE_ASPECT switch [Java,Dotnet,Php] +- Fixes mxGd-, mxGdi-, mxGraphics2DCanvas.drawImage to preserve image aspects [Java,Dotnet,Php] +- Removes mxEditor for swimlane layout in swimlanes.html example [JavaScript] +- Fixes mxSwimlaneManager to use parent swimlane orientation [JavaScript,Java] +- Adds mxSwimlaneManager.isCellHorizontal, hasSiblings [JavaScript,Java] +- Fixes minor offset edge label bounding boxes [JavaScript] + +08-DEC-2010: 1.5.0.2 + +- Adds mxRectangle.setRect [JavaScript,Java,Dotnet,Php] +- Adds mxPanningHandler.isActive [Java] +- Fixes ignored initial angle in mxRotationHandler [Java] +- Adds mxXmlRequest.binary switch with accessors for binary requests [JavaScript] +- Removes cells with no cell states from output of mxGraphViewCodec [JavaScript] +- Uses fill-opacity in SVG shapes for opacity in shared gradients [JavaScript] +- Removes opacity argument in mxShape.getGradientId, createSvgGradient [JavaScript] +- Removes illegal characters, leading dashes in dynamic SVG gradient IDs [JavaScript] +- Fixes drop location offset mxUtils.makeDraggable for scrolled windows in IE [JavaScript] +- Changes mxGraph.findTreeRoots to return List instead of Object[] [Java] +- Adds data:-prefix for embedded image short format [Javascript,Java,Dotnet,Php] +- Adds mxObjectCodec.getFieldTemplate, addObjectValue [Javascript,Java,Dotnet,Php] +- Moves mxModelCodec.encode to mxModelCodec.encodeObject [JavaScript,Java,Dotnet,Php] +- Fixes gradients in mxLabelShape [Java] + +22-NOV-2010: 1.5.0.0 + +- Adds workaround for HTML image event routing in IE [JavaScript] +- Fixes invalidation of edges connected to edges in mxGraphView [JavaScript] +- Adds styling, alternative solutions in secondlabel.html example [JavaScript] +- Adds mxGraph.postProcessCellStyle for resolving image keys [JavaScript,Java,Dotnet,Php] +- Adds mxGraph.add/removeImageBundle, getImageFromBundles [JavaScript,Java,Dotnet,Php] +- Adds mxGraph.imageBundles with accessors [JavaScript,Java,Dotnet,Php] +- Adds mxImageBundle class for embedded images [JavaScript,Java,Dotnet,Php] +- Adds support for data URIs in mxUtils.loadImage [Java,Dotnet,Php] +- Renames mxUtils.is to isNode [Php] +- Adds mxUtils.loadImage, uses in mxGdCanvas.loadImage [Php] +- Adds mxUtils.LoadImage, uses in mxGdiCanvas.LoadImage [Dotnet] +- Removes unused constants in com.mxgraph.util.svg.CSSConstants [Java] +- Renames mxPngTextDecoder.decodezTXt to decodeCompressedText [Java] +- Renames mxPNGzTXtDecoder to mxPngTextDecoder [Java] +- Fixes beforeUnload handlers in HTML pages for Webkit [JavaScript] +- Changes return type of mxGraphics2DCanvas.loadImage to BufferedImage [Java] +- Changes return type of mxUtils.loadImage to BufferedImage [Java] +- Fixes font sizes in printed output via mxGraphComponent.print [Java] +- Fixes mxGraphControl.extendComponent for negative coordinates [Java] + +03-NOV-2010: 1.4.2.3 + +- Fixes scrolling and connect preview in scrollbars.html example [JavaScript] +- Adds mxConnectionHandler.getSource/TargetPerimeterPoint [JavaScript] +- Adds mxConnectionHandler.connectIconOffset field [JavaScript] + +02-NOV-2010: 1.4.2.2 + +- Fixes HTML rendering inside foreignobjects in Chrome [JavaScript] +- Reduces number of gradients in SVG DOM [JavaScript] +- Fixes handling of linefeeds in HTML labels with long text [Java] +- mxCellEditor replaces installKeyHandler with configureActionMaps [Java] +- mxCellEditor replaces key handler with input maps for key handling [Java] +- Adds mxCellEditor.extractHtmlBody, replaceLinefeeds, shiftEnterSubmitsText [Java] +- Moves mxGraphics2DCanvas.replaceHtmlLinefeeds to mxHtmlTextShape [Java] +- Fixes background rendering in image shapes [Java,JavaScript] +- Fixes rendering of gradients, adds glass effect [Dotnet] +- Reduces unnecessary mxCurve re-calculations [Java] +- Fixes curve label character bounds [Java] +- Changes default colors, adds shapes in GraphEditor example [Java] +- Fixes default alignment for images in label shape [Java,Dotnet] +- Fixes size of images in mxLabelShape [Java] +- Removes mxConstants.STYLE_GLASS_SIZE [JavaScript] + +22-OCT-2010: 1.4.2.1 + +- Adds mxConnectionHandler.isImmediateConnectSource hook [JavaScript] +- Removes implicit style extensions in stylesheet configurations [JavaScript] +- Fixes clicks on touch devices for overlays and toolbar items [JavaScript] +- Adds mxCellOverlay.offset and cursor for custom overlays [JavaScript] +- Fixes timer in mxTooltipHandler, adds hideTooltip function [JavaScript] +- Changes default colors, adds shapes in grapheditor.html example [JavaScript] +- Adds support for glass effect in mxShape, uses effect in mxLabel [JavaScript] +- Adds mxConstants.STYLE_GLASS for glass effect in mxLabel [JavaScript] +- Uses improved styles, shapes and overlays in orgchart.html example [JavaScript] +- Fixes possible number format exception in mxGraph.getPreferredSizeForCell [JavaScript] + +19-OCT-2010: 1.4.2.0 + +- Improves edge routing in hierarchical layout [Java,JavaScript] +- Fixes double click handling in ports.html example [JavaScript] +- Adds mxWindow.setTitle for updating the window title [JavaScript] +- mxShape.updateHtmlShape allows negative X and Y values [JavaScript] +- Fixes in-place change of translate in mxBasicCanvas.setTranslate [Java] +- Temporarily disables SVG in IE9 beta CSS1Compat mode [JavaScript] +- Adds mxMultiplicity.checkTerminal, checkNeighbors hooks [Java,JavaScript] +- mxWindow.setSize calls updateShadow [JavaScript] +- Resets current timer in mxTooltipHandler.hide [JavaScript] +- Adds mxTooltipHandler.resetTimer helper function [JavaScript] + +12-OCT-2010: 1.4.1.4 + +- Fixes style of text in diagrameditor.html example [JavaScript] +- Fixes SVG use for IE6-8 in CSS1Compat mode [JavaScript] + +08-OCT-2010: 1.4.1.3 + +- Moves creation of textarea to mxCellEditor.init [JavaScript] +- Removes mxClient.unload, adds mxClient.dispose [JavaScript] +- Adds mxEvent.objects to hold all objects with listeners [JavaScript] +- Uses SVG for IE9 beta in CSS1Compat mode [JavaScript] +- Fixes possible memory leak in mxXmlRequest.send for IE [JavaScript] +- Changes signature of mxConnectorShape.paintMarker [Java] +- Adds mxMarkerRegistry and pluggable markers [Java] +- Fixes continued drag event source for iPad [JavaScript] + +01-OCT-2010: 1.4.1.2 + +- Fixes contexticons.html example for iPad [JavaScript] +- Fixes clearSelection after popup menu is shown in Safari on Mac [JavaScript] + +30-SEP-2010: 1.4.1.1 + +- Removes transitions for shared diagrams in mxEditor [JavaScript] +- Adds optional ID for mxDefaultToolbar config items [JavaScript] +- Adds mxConnectionHandler.getAlignmentTolerance hook [JavaScript] +- Adds mxConnectionHandler.start for starting connections [JavaScript] +- Replaces mxConnectionHandler.start with first [JavaScript] +- mxDefaultToolbarCodec allows entries with function only [JavaScript] +- Reconfigures unordered edges in mxCellRenderer [JavaScript] +- Adds contexticons.html example [JavaScript] +- Adds mxCodec.setDocument [Java,Dotnet,Php] +- Removes mxChildChange.isAdded [JavaScript] +- Changes various methods in the sharing package [Java] +- Deprecates changes parameter for change and notify events in mxGraphModel [Java,JavaScript] +- Adds edit parameter for change and notify event in mxGraphModel [Java,JavaScript] +- Changes parameter of fired event to edit in mxSession [JavaScript] +- Fixes in-place modification of nodes in change codecs [JavaScript] +- Changes conditions for history reset in mxEditor [JavaScript] +- Moves initial state processing to mxSession.processState [JavaScript] +- Renames mxTerminalChange.isSource to source [JavaScript] +- Wraps sequence of changes in node in mxSession [Java,JavaScript] +- Adds accessors for fields in atomic changes for mxGraphModel [Java] +- Fixes handling of references to removed cells in mxSession [JavaScript] +- Fixes references in mxGenericChangeCodec, mxChildChangeCodec [JavaScript] +- Adds mxCodec.insertIntoGraph hook [Java,Dotnet,Php,JavaScript] +- Ensures correct ordering of cells decoded in mxCodec [Java,Dotnet,Php,JavaScript] +- Fixes possible NPE in valueForCellChanged for examples [JavaScript] +- mxUtils.getXml omits XML declaration [Java] + +08-SEP-2010: mxGraph 1.4.1.0 + +- Significant improvement in Visio .vdx format importer [Java] +- Adds basic GraphML codec for encoding and decoding GraphML format [Java] +- Adds stencil shape for adding SVG defined shapes [Java] +- Adds serverview.html example [JavaScript] +- Fixes possible empty rubberband selection in IE [JavaScript] +- Fixes possible index out of bounds in mxCell.insert [Java,Dotnet,Php,JavaScript] +- Uses wrapper caching for type conversion in mxObjectCodec.convertValueFromXml [Java] +- Passes start cell to createEdge in mxConnectPreview.createCell [Java] +- Allows function argument for graph in mxUtils.makeDraggable [JavaScript] +- Adds mxConnectionHandler.setConnectPreview [Java] +- Adds parser for Graph Drawing contest simple text format: + http://www.graphdrawing.de/contest2010/gdcategories2010.html#Format [Java] +- Creates new mxRectangle from state in mxGraphComponent.mxGraphControl.hitClip + to avoid problems cloning unused null variable [Java] + +23-JUL-2010: mxGraph 1.4.0.9 + +- mxGraphViewReader ignores cells without coordinates/points [Java,Dotnet,Php] +- Fixes handling of primitive type wrappes in mxObjectCodec [Java] +- Adds setter/getter for mxCellMarker.currentColor [Java] +- Makes mxCellmarker.mark, unmark public, adds setMarkedState [Java] +- Adds mxGraph.autoOrigin switch, updateOrigin method [Java] +- Fixes bounding box for vertical HTML labels in IE [JavaScript] +- mxGraphControl adds scrollRectToVisible, extendComponent [Java] + +20-JUL-2010: mxGraph 1.4.0.8 + +- Fixes opaque drop target handling in mxGraphHandler [JavaScript] +- Adds tap and hold in mxConnectionHandler (experimental) [JavaScript] +- Adds mxGraph.doubleTapEnabled switch [JavaScript] +- Fixes state in mxMouseEvents for touch-based devices [JavaScript] + +19-JUL-2010: mxGraph 1.4.0.7 + +- Corrects passing layoutFromSinks parameter onto hierarchical layout model {JavaScript] +- Change mxITextShape.paintShape to take cell state rather than bounds [Java] +- Adds mxGraphTransferHandler.createGraphTransferable, importCells hooks [Java] +- mxGraphComponent.doubleClickHandler stops editing only if event not consumed [Java] +- Adds double tap detection for touch-based devices [JavaScript] +- Replaces evt.clientX/Y with mxEvent.getClientX/Y [JavaScript] +- Adds mxGraph.gestureEnabled, handleGesture (experimental) [JavaScript] +- Adds touch event support for IPhones and IPods [JavaScript] +- Fixes touch event handling in mxWindow [JavaScript] +- Uses configureTransparentBackground in mxShape.configureHtmlShape [JavaScript] +- Renames mxShape.configureTransparentVmlBackground to configureTransparentBackground [JavaScript] +- Uses spacing and inset in mxUtils.getLabelPaintBounds [Java] +- Disables drag start events on HTML images in IE [JavaScript] +- Fixes event property access in mxLayoutManager.moveHandler [Java] +- Fixes rubberband events outside container in Firefox [JavaScript] + +09-JUL-2010: mxGraph 1.4.0.6 + +- Fixes gradients in Safari 5/Chrome 6-dev [JavaScript] +- Fixes escape handling in mxCellEditor [Java] +- Fixes dragging cells into graph on iPad [JavaScript] +- Adds mxEvent.getMainEvent, getClientX, getClientY [JavaScript] +- Changes createStroke signature to (Map style) [Java] +- Adds mxGraphComponent.drawFromRootCell hook [Java] + +06-JUL-2010: mxGraph 1.4.0.5 + +- Adds mxMovePreview.repaint hook [Java] +- Adds BasicGraphEditor.createUndoManager hook [Java] +- Renames mxLighweightLabel to mxLightweightLabel [Java] +- Fixes alignment issues with HTML labels [Java] +- Removes unused image variables in mxGraph [Java] +- Adds mxGraphComponent.mxGraphControl.hitClip [Java] +- Adds callback argument in mxEffects.animateChanges [JavaScript] +- Fixes index for existing children in mxCell.insert [Java,Dotnet,Php,JavaScript] +- Removes explicit call and return by reference [Php] +- Fixes various strict standards warnings [Php] +- Adds new mxUtils.clearSelection [JavaScript] +- Removes unused mxUtils.createXmlElement [JavaScript] +- Fixes possible NPE in mxCellHandler.refresh [Java] + +22-JUN-2010: mxGraph 1.4.0.4 + +- Fixes zoomed marker (arrow) size [Java] +- Adds mxGraphComponent.installDragGestureHandler, installDropTargetHandler [Java] +- Fixes reading of attribute names in mxGraphViewReader [Java] +- Fixes possible null pointer exception in mxCellState [JavaScript] +- Adds mxGraphView.installListeners hook [JavaScript] +- Fixes vertical text alignment when wrapping [Java] +- Adds mxPanningHandler.previewEnabled switch [JavaScript] +- Adds simple example for graph layout and image creation [Java] +- Adds menu items to save/open PNG+XML files in grapheditor [Java] +- Adds com.mxgraph.util.png for PNG+XML combined file format [Java] +- mxUtils.makeDraggable checks graph.isDropEnabled [JavaScript] +- mxUtils.getBoundingBox no longer returns null for 0 rotation [Java] +- Replaces mxLighweightTextPane, mxWrapTextShape with mxUtils.wordWrap [Java] +- Fixes possible index out of bounds in mxCell [Java,Dotnet,Php,JavaScript] +- Adds simple diagram editing roundtrip example [Java] +- Renames mxUtils.parse to parseXml [Java] +- Adds mxInsertHandler, mxRotationHandler [Java] +- Loop style uses STYLE_SEGMENT and STYLE_DIRECTION [Java,Dotnet,Php,JavaScript] +- Adds mxConstants.STYLE_SEGMENT for entity relations [Java,Dotnet,Php,JavaScript] +- mxRubberband.mouseDown allows default mouse event [JavaScript] +- Removes workaround for focus tracking in mxGraph [JavaScript] +- Adds cloning of labelBounds in mxCellState.clone [Java,Dotnet,Php] +- Adds experimental support for touch events [JavaScript] +- Adds experimental support for iPad (mxClient.IS_TOUCH) [JavaScript] +- Fixes painting of gradients if shadow is used [Java] +- Adds mxGraphHandler.livePreview switch [Java] +- Adds mxGraphHandler.markerEnabled/highlightEnabled switch [Java,JavaScript] +- Adds mxMovePreview for live preview with updated edges [Java] +- Changes default of mxGraphComponent.previewAlpha to 0.5f [Java] +- Adds mxShape.configureTransparentVmlBackground [JavaScript] +- Fixes scaled and translated morphing [JavaScript] +- Adds mxCellStatePreview, mxAnimation, mxMorphing [Java] +- Adds mxConnectPreview.paintPreview hook [Java] + +01-JUN-2010: mxGraph 1.4.0.3 + +- Refactors mxConnectionHander, removes connect, insertEdge [Java] +- Uses AFTER_PAINT event for painting mxConnectionHandler [Java] +- Adds mxConnectPreview for mxConnectionHandler [Java] +- Removes mxMouseControl, adds mxMouseAdapter [Java] +- Adds mxVdxCodec for parsing VDX XML drawing files [Java] +- Adds mxConstraintHandler.getImageForConstraint [JavaScript] +- Moves mxGraphComponent.drawGraph to mxGraphControl [Java] +- Renames mxGraph(Component).draw to drawGraph [Java,Dotnet,Php] +- Renames mxGraph.drawStateWithLabel to drawState [Java,Dotnet,Php] +- Uses AFTER_PAINT event for painting mxGraphHandler [Java] +- Adds mxRectangle.intersectLine [Java] +- Refreshes handlers if keepSelectionVisibleOnZoom is true [JavaScript] +- Adds source argument in mxGraph.getAllConnectionConstraints [Java,JavaScript] +- Adds mxOutline.setZoomEnabled [JavaScript] +- Fixes unsupported operation in mxGraphComponent.removeCellOverlay [Java] +- Replaces mxICanvas.drawVertex/Edge with drawCell [Java,Dotnet,Php] +- Replaces mxIVertex/EdgeShape with mxIShape [Java] +- Refactors main canvas class, mxGraphViewReader [Java,Dotnet,Php] +- Adds mxConstants.STYLE_IMAGE_BACKGROUND and BORDER for image shapes [Java,Dotnet,Php,JavaScript] +- Fixes possible division by zero in EditorPalette [Java] +- Fixes class cast exception in mxUtils.getStylenames [Java] +- Fixes rounding errors in mxGraphics2DCanvas.paintPolyline [Java] +- Renames mxGraph(Component).subHandler to selectionCellsHandler [Java,JavaScript] +- Renames mxSubHandler to mxSelectionCellsHandler [Java,JavaScript] +- Uses mxEvent.PAINT event for painting mxSubHandler [Java] +- Fires mxEvent.PAINT in mxGraphComponent.paintComponent [Java] +- Corrects colour of ARROW_OPEN to edge stroke colour [Java] +- Fixes possible negative width/height in mxOutline [JavaScript] +- Fixes possible invalid argument in mxShape.updateVmlShape [JavaScript] + +10-MAY-2010: mxGraph 1.4.0.2 + +- Fixes use of STYLE_TEXT_OPACITY in mxGraphics2DCanvas [Java] +- Fixes setting spacing in mxStackLayout constructor [Java] +- Uses lazy instantiation for JTextArea in mxUtils [Java] +- Fixes upate of zoom after new/open in GraphEditor [Java] +- Adds various hooks for mxGraphComponent constructor [Java] +- Fixes use of graph bounds in mxGraphComponent [Java] +- Adds support for STYLE_DASHED in mxVmlCanvas and mxSvgCanvas [Java] +- Changes mxConstraintHandler for edges with no constraints [JavaScript] +- Fixes possible NPE in mxGraphView.validatePoints [Java,Dotnet,Php,JavaScript] +- Fixes possible NPE in mxCodecRegistry.getInstanceForName [Java] +- Adds mxConstraintHandler.getTolerance hook [JavaScript] +- Changes type of mxConstraintHandler.pointImage to mxImage [JavaScript] + +03-MAY-2010: mxGraph 1.4.0.1 + +- Fixes scaling in mxOutline for scaled scollable container [JavaScript] +- Fixes use of undefined variable in mxCellStatePreview [JavaScript] +- Fixes replacing values in mxUtils.setStyle [Java,Dotnet,Php,JavaScript] +- Adds mxConstraintHandler.pointImage, highlightColor fields [JavaScript] +- Fixes moving of large selections in SVG-based browsers [JavaScript] +- Changes mxGraph.click to take mxMouseEvent as argument [JavaScript] +- mxMouseEvent.consume enables native event propagation [JavaScript] +- Uses mxMouseEvent.consumed state instead of native event [JavaScript] +- Fixes access to vertical center in mxRectanglePerimeter [Dotnet] +- Supports connection constraints in mxGraph, mxGraphView [Php] +- Adds mxObjectCodec.getName, mxCodecRegistry.addAlias [Java,Dotnet,Php,JavaScript] +- Removes mxIShape, mxBasicShape and shared shapes [Java] + +29-APR-2010: mxGraph 1.4.0.0 + +- Adds mxConnectionHandler.moveIconFront switch [JavaScript] +- Replaces custom perimeter with constraint in scrollbars.html example [JavaScript] +- Changes mxConstants.SVG_SHADOWCOLOR to SHADOWCOLOR and uses in VML [JavaScript] +- Adds support for connection constraints in mxGraph, mxGraphView [Java,Dotnet,JavaScript] +- Adds new STYLE_ORTHOGONAL for mxGraph.isOrthogonal result [Java,Dotnet,Php,JavaScript] +- Removes edge, adds orthogonal argument in mxPerimeter [Java,Dotnet,Php,JavaScript] +- Fixes cycle remover sync problem in hierarchical layout [JavaScript] +- Adds mxConnectionConstraint for fixed connection points [Java,Dotnet,Php,JavaScript] +- Adds keys for fixed points, orthogonal edges in mxConstants [Java,Dotnet,Php,JavaScript] +- Removes ; after removal of entry in mxUtils.setStyle [Java,Dotnet,Php,JavaScript] +- Fixes duplicate context menu items in graph editor [JavaScript] +- Fixes ignored label bounds in mxUtils.getViewXml [JavaScript] +- Fixes mxUtils.intersects [JavaScript] +- Handles missing resource exceptions in mxGraph, BasicGraphEditor [Java] +- Fixes unknown variable in mxGraphModel.getNearestCommonAncestor [Php] +- Fixes handling of forward references in mxObjectCodec [Php] +- Changes canvas draw methods to take cell state parameter [Java] +- Fixes undeclared namespace in SVG document [Java] +- Fixes possible NPE in mxCellCodec.beforeDecode [Php] +- Fixes defintion of mxEdgeHandler.preferHtml [JavaScript] +- Adds mxCellHandler.getIndex [Java] +- Fixes mxPrintPreview for non-automatic origin [JavaScript] +- Fixes mxEdgeHandler.reset, mxGraphComponent.reset [Java] +- Adds mxCellHandler.getGraphComponent [Java] + +07-APR-2010: mxGraph 1.3.1.6 + +- Fixes colors for cylinders as indicators [JavaScript] +- Uses fill color as stroke for indicators [JavaScript] +- Fixes mxShape.configureSvgShape for color none [JavaScript] +- Adds pagebreaks.html example [JavaScript] +- Adds mxGraph.pageBreakColor, pageBreakDashed, preferPageSize [JavaScript] +- Adds mxGraph.updatePageBreaks, pageBreaksVisible [JavaScript] +- Fixes mxOutline for scrolled source graph [JavaScript] +- Fixes mxGraphView.isContainerEvent for nodes in backgroundPane [JavaScript] +- Adds mxUtils.mod to find the remainder of a division [JavaScript] +- Fixes panning preview for poyline, swimlane, line in VML [JavaScript] +- Uses v:shape in mxPolyline, mxSwimlane, mxLine [JavaScript] +- Fixes possible NPE in mxUtils.getValue [JavaScript] +- Adds mxPrintPreview.printOverlays switch [JavaScript] +- Adds mxCellRenderer.initializeOverlay hook [JavaScript] +- Fixes mxGraph.scrollRectToVisible for oversized rectangles [JavaScript] +- Adds mxShape.crisp switch for mxRectangleShape, mxLabel, mxSwimlane [JavaScript] +- Changes default scale in mxPrintPreview to 1 / graph.pageScale [JavaScript] +- Adds mxPrintPreview.autoOrigin switch [JavaScript] +- Renames mxGraphComponent.pageBreakVisible to pageBreaksVisible [Java] +- Removes mxChildChange.added field and getter [Java] +- Hides label in mxText if font smaller than 0.5px [JavaScript] + +29-MAR-2010: mxGraph 1.3.1.5 + +- Corrects label/vertex union calculation in mxGraphLayout.getVertexBounds [JavaScript] +- Adds support for o-transform CSS style in Opera (Presto/2.5) [JavaScript] +- Ignores previous selection state for removing cell from parent [Java] +- Adds mxGraphComponent.previewAlpha and accessors [Java] +- mxToolbar.addMode returns button if no icon specified [JavaScript] +- Fixes handling of leading semicolon in cell styles [Java,Dotnet,Php,JavaScript] +- Adds fallback for text to center, middle alignment [JavaScript] +- Adds shape package, pluggable shapes in mxGraphics2DCanvas [Java] +- Fixes paste keystroke in mxKeyboardHandler [Java] +- Invokes mxGraphView.reload in mxGraph.refresh [Java] +- Invokes mxGraphView.validate in mxGraphView.reload [Java] +- Removes one child limitation in mxGraph.groupCells, getCellsForGroup [Java,JavaScript] +- Fixes non-internationalized font selection in mxConstants [Java] + +22-MAR-2010: mxGraph 1.3.1.4 + +- Uses mxMorphing in grapheditor.html, graphlayout.html examples [JavaScript] +- Adds mxCellStatePreview, mxAnimation, mxMorphing [JavaScript] +- Adds mxGraphHandler.DEFAULT_CURSOR, FOLD_CURSOR [Java] +- Fixes underline for SVG text in Webkit [JavaScript] +- Unifies mxClient.include for all browsers [JavaScript] +- Adds accessors for mxCellMarker.(in)validColor [Java] +- Adds mxConnectionHandler.createPreview hook [Java] + +15-MAR-2010: mxGraph 1.3.1.3 + +- Uses height not width for word-wrap in vertical labels [Java,Dotnet] +- Fixes missing update in mxLog.textarea for Opera 10.5 [JavaScript] +- Fixes possible hang in mxWindow.setScrollable for Opera 10.5 [JavaScript] +- Uses visibility style in mxWindow to avoid hang in Opera 10.5 [JavaScript] +- Fixes mxObjectCodec for Enums [Java] +- Fixes problems with foreignObjects in Chrome 5.0 [JavaScript] + +08-MAR-2010: mxGraph 1.3.1.2 + +- Renames mxCellHighlight.KEEP_ON_TOP to keepOnTop [JavaScript] +- Adds mxOutline.border, mxConnectionHandler.moveIconBack [JavaScript] +- Fixes cursor in mxSwimlane in IE [JavaScript] +- Adds mxGraphHandler.updateCursor switch [JavaScript] +- Fixes event handling in mxCellHighlight [JavaScript] +- Fixes typo in mxGraph.prototype.orderCells [JavaScript] +- Adds mxOutline.sizerSize default value [JavaScript] +- Fixes viewport in mxOutline for zoom out [JavaScript] +- Fixes mouse events in mxOutline for IE [JavaScript] +- Fixes mouse events on transparent VML vertices [JavaScript] + +02-MAR-2010: mxGraph 1.3.1.1 + +- Adds fallback to mxCellCodec in mxCodec.decodeCell [Java,Dotnet,Php,JavaScript] +- Ignores pointer events on selection border for vertices in SVG [JavaScript] +- Adds word-wrap in HTML and VML export [Java] + +26-FEB-2010: mxGraph 1.3.1.0 + +- Word wrapping for vertex labels has been added in the Java codebase +- Changes signature of mxUtils.getSizeForString, getLabelSize. A parameter has + been added to specify the width, beyond which text wraps [Java] +- Adds word-wrapping support using mxConstants.STYLE_WHITE_SPACE. Setting it + to "wrap" caused vertex labels to wrap [Java] +- Add mxLightweightTextPane for word-wrapped text rendering [Java] +- Renames mxLightweightTextPane to mxLightweightLabel [Java] +- Fixes possible NPE for triangle, hexagon indicators + http://www.jgraphsupport.co.uk/bugzilla/show_bug.cgi?id=23 [JavaScript] +- Passes indicatorDirection to indicator in mxLabel. Labels may have an inner + shape and the styles generally are applied to the label. Some styles need + to be passed onto the shape (called the indicator). The indicatorDirection + is the direction of that inner shape[JavaScript] +- Uses this.direction in shapes for access to STYLE_DIRECTION [JavaScript] +- Sets direction in mxShape.apply from STYLE_DIRECTION [JavaScript] +- Adds mxConstants.STYLE_INDICATOR_DIRECTION [JavaScript] +- Fixes mxClient.include for local file:// URI in Chrome 5.x + See http://blog.chromium.org/2008/12/security-in-depth-local-web-pages.html [JavaScript] +- The XML codec has been extended to make it easier to de/encode new cell types. + Details at http://www.jgraph.com/forum/viewtopic.php?f=12&t=4738, including + how to revert the change if you don't want it in a production version +- Removes hardcoded class name for cells in mxCodec [Java,Dotnet,Php,JavaScript] +- Adds mxCellCodec.isCellCodec for cell codec checks [JavaScript] +- Removes mxMouseEvent.setState, handle and tooltip. Removal of the + functionality was the 1.3 API change, this change simply removes the + functions. [JavaScript] +- Adds optional event argument in mxEditor.execute to support functionality + such as popup menus [JavaScript] +- Adds argument in funct for mxDefaultPopupMenu.addAction, see above [JavaScript] +- Uses first constant as default for enums in mxCodecRegistry + http://www.jgraphsupport.co.uk/bugzilla/show_bug.cgi?id=22 [Java] + +22-FEB-2010: mxGraph 1.3.0.4 + +- Fixes textAlign value for edges in mxCellEditor for IE [JavaScript] + +22-FEB-2010: mxGraph 1.3.0.3 + +- Fixes target position alignment inside groups for mxConnectionHandler [JavaScript] +- Fixes print for mxArrow in IE by replacing VML polyline with shape [JavaScript] +- Fixes possible NPE in mxVertexHandler.getHandleForEvent [JavaScript] +- Removes DIV container border for HTML-based edges in IE [JavaScript] + +19-FEB-2010: mxGraph 1.3.0.2 + +- Changes arguments in mxUtils.GetSizeForString, GetLabelSize [Dotnet] +- Fixes horizontal image alignment for labels in image export [Java,Dotnet,Php] +- Adds support for "fill" in mxConstants.STYLE_OVERFLOW [Java,Dotnet,Php] +- Adds word-wrapping support using mxConstants.STYLE_WHITE_SPACE [Dotnet] +- Removes mxGraph.IsLabelClipped and accessors for LabelsClipped, + use "hidden" in mxConstants.STYLE_OVERFLOW instead [Dotnet] + +18-FEB-2010: mxGraph 1.3.0.1 beta 2 + +- ForeignObjects are being used to render HTML labels in SVG browsers. The + reason for is to have a consistent rendering order. Previously, HTML labels + were always drawn above the SVG, now the ordering is correct. IE (VML) + already worked correctly in this regrard. [JavaScript] +- Uses style from mxCellState in mxCellEditor. Previously, the style from the + DOM node of the label was used. [JavaScript] +- Fixes inverted vertical labels in IE print. Only filters are now used for + rotating labels, before an IE specific CSS style was used and produced + incorrect output. [JavaScript] +- Removes mxConstants.SVG_CRISP_EDGES, this flag was never implemented. [JavaScript] +- Updates scrollbars.html example to allow for Webkit bug, + http://code.google.com/p/chromium/issues/detail?id=35545, caused by change + to using Foreign objects in SVG. [JavaScript] +- Adds mxGraphHandler.htmlPreview switch. This draws the preview rectangles + using html. When using HTML labels this should be switched to true, since + otherwise the preview is drawn in VML/SVG and this would appear behind the + HTML label [JavaScript] +- Fixes call to resetMode in mxDefaultToolbar. Previously, anything that used + the toolbar to click and insert a cell caused an exception. [JavaScript] +- Adds overflow argument to mxText constructor. If this flag is hidden then + clipped is applied, if it is fill then no clipping is applied. [JavaScript] +- Adds mxGraphics2DCanvas.replaceHtmlLinefeeds and accessors, + http://www.jgraphsupport.co.uk/bugzilla/show_bug.cgi?id=19 [Java] +- Adds clipping for SVG labels, and add label clipping support in .NET [JavaScript,Dotnet] +- Uses optimize-speed shape-rendering for all rectangles in SVG, if not + rounded and if their stroke width is not 1 [JavaScript] +- Focus graph container before calling drop function in mxUtils.makeDraggable [JavaScript] +- Adds mxConstants.STYLE_OVERFLOW, STYLE_WHITE_SPACE to enable label wrapping + without the need to override isWrapping [Java,JavaScript,Dotnet,Php] +- mxLog.debug, warn, write and writeln take multiple, comma seperated, arguments [JavaScript] +- The ability to specify a "port" that edges incoming to a vertex terminate + on has been added. Previously, child "ports" were added to vertices and + edges connected to those ports to obtain the correct appearance. The meant + that the graph structure was then incorrect and this could adversely affect + functionality that relies on that structure, like layouts. +- Adds mxGraphView.getTerminalPort for port-handling. The port returned is the + visual terminal of that vertex, assuming the vertex is visible. This shouldn't + be confused with the terminal of an edge in the graph structure. The purpose + of this is to calculate the perimeter point where edges meet vertices. [Java,JavaScript,Dotnet,Php] +- Uses cached style in mxGraph.getLabel, mxGraph.getStartSize, instead of + always processing style on the fly. [Java,JavaScript,Dotnet,Php] +- Adds helloport.html example, updates Ports.java example. Both make use of the + terminal port concept explained above. [Java,JavaScript] +- Adds mxConstants.STYLE_SOURCE_PORT/-TARGET_PORT. These styles apply to edges, + the values of which are the cell IDs of the source/target ports. [Java,JavaScript,Dotnet,Php] +- Adds mxGraph.isPort, getTerminalForPort hooks (experimental) [Java,JavaScript] +- Adds mxGraph.changesRepaintThreshold for quicker repaints. This is the number + of changes that are to be processed after an endUpdate, above which, no + attempt to calculate the dirty region is made and the full area is repainted. [Java] +- mxGraph.cellsAdded uses cellConnected for setting terminals, previously + this was not called. cellConnected will generate an additional event [Java,JavaScript] +- mxEdgeHandler uses mxGraph.connectCell for terminal changes [Java,JavaScript] +- Adds previous terminal to CONNECT_CELL and CELL_CONNECTED [Java,JavaScript] +- Adds mxMouseEvent argument in mxEdgeHandler.connect [JavaScript] +- Renames mxText.isClipping to clipped, isWrapping to wrap [JavaScript] +- Changes mxText.isRotate to mxText.horizontal [JavaScript] +- Removes mxText.isAbsolute, useTableBounds [JavaScript] +- mxGraphComponent.createCellEditor returns mxICellEditor [Java] +- Adds mxClient.IS_MT for moz-transform CSS styles [JavaScript] +- Adds support for Seamonkey and Iceape [JavaScript] +- Refactors HTML rendering in mxText [JavaScript] +- mxText.create no longer changes overflow of container. Previously it would + change the overflow of the parent node. [JavaScript] +- Changes mxEditor.escapePostData to true. This is so HTML markup in labels + is handled correctly. [JavaScript] +- Changes mxSession.linefeed to '
' [JavaScript] +- Fixes update of handlers after mxGraphView.scale [JavaScript] +- Adds mxClient.NO_FO to disable foreignObject in SVG [JavaScript] +- Adds mxGraph.allowNegativeCoordinates switch. This true by default, switching + it to false causes any changed vertices positions to be forced to be a + minimum of 0 in each dimension. [Java,JavaScript] +- Adds page number argument in mxPrintPreview.renderPage [JavaScript] +- Fixes possible NPE in mxEdgeStyle.Loop [JavaScript,Java,Dotnet,Php] + +03-FEB-2010: mxGraph 1.3.0.0 beta + +- Fixes mxCell.removeEdge for loops [Java,Dotnet] +- Fixes mxGraph.getEdgesBetween, getEdges [JavaScript,Java,Dotnet] +- mxUtils.makeDraggable updates mxGraph.isMouseDown [JavaScript] +- Removes mxConnectionHandler.iconZIndex [JavaScript] +- Adds mxCellState.setCursor [JavaScript] +- Adds constants for cursors in mxConstants [JavaScript] +- Updates cursors in mxGraph-, mxVertex- and mxEdgeHandler [JavaScript] +- Adds cell argument in mxGraphHandler.start [JavaScript] +- mxGraphHandler.mouseMove checks isMouseDown [JavaScript] +- Fixes mxGraph.isMouseDown state for double clicks [JavaScript] +- Renames mxRubberband.redraw to update [JavaScript] +- Adds lazy shape creation mxGraphHandler, mxRubberband [JavaScript] +- Removes mxKeyHandler.enter hook [JavaScript] +- Fixes mxGraph.isEnterStopsCellEditing getter [JavaScript] +- Moves handling of enter/F2/escape keystroke to mxCellEditor [JavaScript] +- Fixes in-place editor location for label with only spaces [JavaScript] +- Adds support for label background and border in Opera [JavaScript] +- Fixes possible negative rx, ry in mxDoubleEllipse [JavaScript] +- Removes mxRhombus.redrawCanvas [JavaScript] +- Removes mxClient.IS_FADE_RUBBERBAND [JavaScript] +- Removes version checks in mxClient except for IE 6 [JavaScript] +- Simplifies mxClient.include, removes onload, addOnloadCallback [JavaScript] +- Unifies order of panning-, sub-, connection- and graphhandler [Java,JavaScript] +- Fixes border for images in mxLabel for IE [JavaScript] +- Removes mxClient.IS_IE7, IS_FF2, IS_FF, IS_CANVAS, adds IS_IE6 [JavaScript] +- Unifies cursors in all handlers and mxCellRenderer [JavaScript] +- Creates DOM nodes for empty labels in mxCellRenderer.redrawLabel [JavaScript] +- Adds value argument in mxCellRenderer.createLabel [JavaScript] +- Uses mxElbowEdgeHandler.getTooltipForNode in mxGraph.getTooltip [JavaScript] +- Aligns target with source in mxConnectionHandler.createTargetVertex [JavaScript] +- Adds accessors for gridSize, tolerance, edge- & vertexLabelsMovable in mxGraph [JavaScript] +- Renames mxGraph.getTooltipForEvent to getTooltip, changes args [JavaScript] +- Moves collapseExpandResource from mxCellRenderer to mxGraph [JavaScript] +- Fixes icon stays visible after escape in mxConnectionHandler [JavaScript] +- Adds lazy shape creation in mxConnectionHandler.createShape [JavaScript] +- mxGraph ctor no longer calls mxPanning-, mxConnectionHandler.init [JavaScript] +- mxConnectionHandler.init no longer depends on graph container [JavaScript] +- Adds lazy shape creation in mxCellHighlight.createShape [JavaScript] +- Removes mxMouseEvent.handle, tooltip and accessors [JavaScript] +- Replaces array with object for storage in mxDictionary [JavaScript] +- Renames mxMouseEvent.getTarget to getSource [JavaScript] +- Simplifies mxEvent.redirectMouseEvents [JavaScript] +- Does no longer store cell handler in mxCellState.handler [JavaScript] +- Removes mxGraph.redrawHandler, hasHandler, destroyHandler [JavaScript] +- Adds mxDictionary.visit for visitor pattern [JavaScript] +- Uses mxSubHandler for mouse events in all cell handlers [JavaScript] +- Adds new mxSubHandler class for managing cell handlers [JavaScript] +- mxConnectionHandler adds preview to DOM only when used [JavaScript] +- mxCellHighlight adds highlight to DOM only when used [JavaScript] +- Adds call to mxCellHighlight.destroy in mxCellMarker.destroy [JavaScript] +- Adds mxShape.WEBKIT_CRISP_EDGES switch for crisper edges [JavaScript] +- Uses setStroke hook in mxGraphics2DCanvas.drawConnector [Java] + +29-JAN-2010: mxGraph 1.2.0.10 + +- Fixes offsets for rounded edge corners in mxGdiCanvas [Dotnet] +- Fixes possible key not found in mxStyleRegistry [Dotnet] +- Adds mxConstants.HANDLE_SIZE, LABEL_HANDLE_SIZE [Java,JavaScript] +- mxTooltipHandler automatically calls init when used [JavaScript] +- Uses SVG and VML for handles, highlights and previews [JavaScript] +- Removes workarounds in mxCellHighlight, mxVertexHandler [JavaScript] +- Adds mxCellHighlight.KEEP_ON_TOP switch [JavaScript] +- Adds mxCellMarker.KEEP_ON_TOP global switch [Java] +- Fixes alignment for vertical labels [Dotnet] + +26-JAN-2010: mxGraph 1.2.0.9 + +- Shows no drag icon if no cells can be imported [Java] +- Adds xlink prefix to href attribute in mxSvgCanvas [Java] +- Adds mxPath.quadTo for quadratic curves [JavaScript] +- Moves animation code to new mxEffects class [JavaScript] +- Removes unused mxUtils.morph, mxUtils.fadeIn [JavaScript] +- Immediate selection toggle for unselected cells in mxGraphHandler [Java] +- Adds mxGraph2DCanvas.setStroke hook [Java] +- Fixes use of previous dragImage in mxGraphHandler [Java] +- Removes workaround for artifacts in mxGraphHandler [JavaScript] + +19-JAN-2010: mxGraph 1.2.0.8 + +- Fixes rotation in mxGdiCanvas for non-horizontal labels [Dotnet] +- Fixes possible NPE in mxResources.parse [JavaScript] +- Checks optional attribute value in mxMultiplicity.checkType [Java] +- Adds mxGraphComponent.createTransferHandler hook [Java] +- Adds accessors for mxGraph.defaultOverlap, collapseToPreferredSize [Java] +- Removes exportScreen action in mxEditor [JavaScript] + +14-JAN-2010: mxGraph 1.2.0.7 + +- Disables resize of textarea in Google Chrome [JavaScript] +- Escapes user values in label markup in schema.html example [JavaScript] +- mxGraphView.getEdgeStyle/PerimeterFunction no longer require a dot for eval [JavaScript] +- mxGraphView.getPerimeterFunction uses eval only if allowEval is true [JavaScript] +- mxGraphView.getEdgeStyle uses eval only if allowEval is true [JavaScript] +- Adds mxGraphView.allowEval switch with default value false [JavaScript] +- mxGraph.fit returns current scale [JavaScript] +- Replaces Hashtable with Map in type declarations [Java] +- Fixes zoom for HTML labels in Webkit-based browsers [JavaScript] +- Fixes URL in mxConstants.NS_SVG and NS_XLINK [Java,Dotnet,Php] +- Fixes use of xlink-namespace for images in mxSvgCanvas [Java] +- Adds OSGi headers (Bundle-SymbolicName, -Version) in manifest [Java] +- Fixes sharing of added/removed cells in mxChildChangeCodec [JavaScript] +- Fixes dynamic loading of JavaScript in Firefox 3 with IIS [JavaScript] + +06-JAN-2010: mxGraph 1.2.0.6 + +- mxGraph.getDropTarget no longer returns cell in cells [Java,JavaScript] +- Adds mxUtils.indexOf, mxUtils.contains [Java] +- Adds mxGraphHandler.createMarker hook [Java] +- Honors mxGraph.isCellBendable in mxEdgeHandler [Java] +- Adds getGroupBorder hook in UpdateGroupBoundsAction and GroupAction [Java] +- Fixes mxPerimeter.EllipsePerimeter [Java] + +28-DEC-2009: mxGraph 1.2.0.5 + +- Disables selection of ports in ports.html example [JavaScript] +- Adds error handling for closed windows in mxPrintPreview [JavaScript] +- Removes debug output in mxGraph.getBoundsForGroup [JavaScript] + +22-DEC-2009: mxGraph 1.2.0.4 + +- Fixes minor syntax errors, removes linefeeds, extra blocks [JavaScript] +- Adds border, keepOrigin arguments in mxGraph.fit [JavaScript] +- Uses background image size, fixes possible NPE in mxGraph.fit [JavaScript] +- Fixes mxEdgeHandler.convertPoint for parent groups [JavaScript] +- Adds mxEdgeHandler.isAdd/RemovePointEvent hooks [JavaScript] +- Uses pointer cursor in IE for connect icons in mxConnectionHandler [JavaScript] + +17-DEC-2009: mxGraph 1.2.0.3 + +- Implements mxGraph.isSwimlane [Dotnet] +- Uses STYLE_SHAPE to identify swimlanes +- Adds mxConstants.DEFAULT_STARTSIZE for swimlanes +- Removes mxSwimlane.prototype.defaultStartSize [JavaScript] +- Adds update group bounds action in shape menu for graph editor examples [Java,JavaScript] +- Adds mxGraphActions.UpdateGroupBoundsAction [Java] +- Adds mxEdgeHandler.addEnabled, removeEnabled switches (experimental) [JavaScript] +- Adds resizeParent, parentBorder, moveParent flags in mxHierarchicalLayout [Java,JavaScript] +- Fixes default start size in mxCellRenderer.getLabelBounds [JavaScript] +- Fixes access to event property in grapheditor.html example [JavaScript] +- Corrects horizontal parameter usage in mxCompactTreeLayout c'tor [Java] +- Adds mxGraph.updateGroupBounds [Java, JavaScript] + +14-DEC-2009: mxGraph 1.2.0.2 + +- Removes STYLE_FONTSIZE from all default styles +- mxUtils.loadImage silently ignores all exceptions and returns null [Java] +- Uses local mxBasePath for resources, images and CSS files in evaluation +- Removes trailing slash in mxImageBasePath, mxClient.imageBasePath [JavaScript] +- Changes default value for mxClient.basePath to '.' [JavaScript] +- Removes trailing slash in mxBasePath, mxClient.basePath [JavaScript] +- Moves javascript/src/js/resources to javascript/src [JavaScript] +- Checks for virtual directory in Default.htm for ASP.NET [Dotnet] +- Adds border property and argument in mxStackLayout [Java,JavaScript] +- Changes defaults for mxStackLayout.x0, y0, spacing [Java,JavaScript] +- Fixes scrollbars in mxGraph.sizeDidChange for Webkit [JavaScript] +- Fixes container size in mxStack-, mxPartitionLayout [JavaScript] +- Fixes property name in mxLayoutManager.undoHandler [Java] +- Adds mxGraphViewImageReader.createGraphicsCanvas [Java] +- Moves title argument in mxPrintPreview ctor [JavaScript] +- Disables cell moving in orgchart.html example [JavaScript] +- Uses mxGraph.getStartSize for swimlanes only [JavaScript] +- Fixes array index in mxCellOverlay.getBounds [JavaScript] +- Fixes deleteSubtree in orgchart.html example [JavaScript] + +08-DEC-2009: mxGraph 1.2.0.1 + +- Fixes NPE in EditorActions.SaveAction [Java] +- Creates group before getting bounds in mxGraph.groupCells [Java,JavaScript] +- Fixes mxGraph.getStartSize to return default start size [JavaScript] +- Uses getBoundingBoxFromGeometry in mxGraph.getBoundsForGroup [Java,JavaScript] +- Adds mxGraph.getBoundingBoxFromGeometry [Java,JavaScript] +- Changes class arg to object in mxCodecRegistry.getName [Java,Dotnet] + +03-DEC-2009: mxGraph 1.2.0.0 + +- Displays error messages in EditorActions [Java] +- mxUtils.createBufferedImage throws out of memory error [Java] +- Changes argument order in mxPrintPreview c'tor [JavaScript] +- Renames mxEvent.RESET to mxEvent.CLEAR [Java,JavaScript] +- Renames mxUndoManager.reset to clear [Java,JavaScript] +- Renames source to sender argument in mxEventListener [Java] +- Fixes old scale value in mxGraphView.scaleAndTranslate event [Java] +- mxDefaultKeyHandler fires escape mxEventObject via editor [JavaScript] +- Sets significant flag on undoable selection changes to false [Java] +- Removes mxEventObject.getArgCount [Java,Php,JavaScript] +- Replaces mxEventObject.getArgAt with getProperty [Java,Php,JavaScript] +- Replaces mxEventObject.getArgs with getProperties [Java,Php,JavaScript] +- Changes ctor of mxEventObject to use varargs [Java,Php,JavaScript] +- Replaces argument sequence with properties in mxEventObject [Java,Php,JavaScript] +- Adds event name with getter in mxEventObject [Java,Php,JavaScript] +- Uses mxEventObject for mxEvent::$GRAPH_MODEL_CHANGED [Php] +- Fixes possible NPE in mxPrintPreview, mxUtils.getScaleForPageCount [JavaScript] +- Removes BEFORE_/AFTER_EXECUTE events in mxGraphModel [Java] + +26-NOV-2009: mxGraph 1.1.0.2 + +- Fixes repaint, orientation of shadow in swimlanes for SVG [JavaScript] +- Fixes handling of consumed events in mxGraph.dblDlick [JavaScript] +- Focus graph container after drop in mxUtils.makeDraggable [JavaScript] +- Fixes mxGraph.useScrollbarsForPanning in mxPanningHandler, mxOutline [JavaScript] +- Fixes rendering of swimlanes in preferred HTML mode [JavaScript] +- Fixes wrong scale in outline window for IE [JavaScript] +- Adds x0, y0 args in mxUtils.show, fixes for IE [JavaScript] +- Corrects print preview border [JavaScript] +- Uses generics, adds serialVersionUIDs [Java] + +24-NOV-2009: mxGraph 1.1.0.1 + +- Adds Port.java example [Java] +- Fixes mxPrintPreview, mxUtils.getScaleForPageCount [JavaScript] +- Fixes drawing of rounded edges in mxGdiCanvas [Dotnet] +- Fixes handling of text content in mxCellCodec [Java,Dotnet,Php] +- Adds mxUtils.ltrim, rtrim, trim for strings [JavaScript] +- Fixes handling of antiAliasing in mxImageCanvas [Dotnet] +- Checks isCellLocked in mxGraph.isCellResizeable, -Editable [Java] +- Fixes divide by zero in ellipse perimeter calculation +- Adds mxUtils.findNode helper method +- Adds DEFAULT_TIMEOUT in mxSession [Java,Dotnet] +- Changes mxGraphAlgebra class to mxGraphAnalysis [Java] +- Fixes shortest path with parallel edges [Java] +- Fixes handling of string literals in mxCellPath [Java] + +17-NOV-2009: mxGraph 1.1.0.0 + +- Renames mxOutline.graph to mxOutline.outline [JavaScript] +- Replaces explicit execution scopes with mxUtils.bind [JavaScript] +- Adds mxUtils.bind for locking execution scope in functions [JavaScript] +- Removes event object for mxEvent.RESET in mxSession [JavaScript] +- Fixes mxEventObject argument in mxGraphModel.execute [JavaScript] +- Uses event listener in mxEditor.installDblClickHandler [JavaScript] +- Automatically adds missing trailing slashes in mxBasePath [JavaScript] +- Adds trailing slash for mxBasePath in aspx files for evaluation [Dotnet] +- Removes unused code for gradient handling in mxShape [JavaScript] +- Fixes update of gradient colors for indicators in mxLabel [JavaScript] +- Disables removing cells from parents in processeditor.html example [JavaScript] +- Fixes withdrawal example diagram in processeditor.html example [JavaScript] +- Fixes possible NPE in mxShape for gradients in indicator shapes [JavaScript] +- Adds mxPrintPreview.writeHead hook [JavaScript] +- Adds mxGraph.createHandlers hook [JavaScript] +- mxGeometry.translate no longer returns clone, changes in-place + +11-NOV-2009: mxGraph 1.0.2.8 + +- Adds mxConstants.STYLE_SMOOTH for edges in VML [JavaScript] +- Adds tree.html example [JavaScript] +- Fixes possible invalid values for "d" in mxActor, mxCylinder [JavaScript] +- Resolves forward references in mxGenericChangeCodec [JavaScript] +- Fixes ctor arguments in mxPrintPreview [JavaScript] +- Refactors examples for servers [Java,Dotnet] +- Adds mxGraph.useScrollbarsForPanning switch [JavaScript] +- Removes initial X offset in hierarchical layout +- Fixes STYLE_GRADIENT_DIRECTION constant [Dotnet] +- Moves swing examples to com.mxgraph.examples.swing [Java] +- Ships with solution and project files [Dotnet] +- Rethrows exception in error handling code [Php] +- Fixes various bugs for mxGraphModel, mxGeometry [Php] + +20-OCT-2009: mxGraph 1.0.2.7 + +- Fixes ignored orientation for hierarchical layout in Java +- mxGraphView.getVisibleTerminal does no longer return layers +- Renames com.mxgraph.algebra to com.mxgraph.analysis in Java +- Fixes error for mxUtils.eval in Chrome 4.0.222.12 +- Fixes number of pages for mxGraphComponent.print in Java +- Adds mxLog.info + +13-OCT-2009: mxGraph 1.0.2.6 + +- Fixes NPE in mxCellEditor constructor + +13-OCT-2009: mxGraph 1.0.2.5 + +- Adds mxGraphLayout.getConstraint in JavaScript and Java +- Adds mxCellPath.compare in JavaScript and Java +- Adds mxCellEditor.installKeyHandler hook in Java +- Adds css argument to mxPrintPreview.open +- Ignores possible member not found error in mxShape for IE +- Fixes numeric comparison in mxEllipsePerimeter +- Fixes local fields in mxGraphViewImageReader ctor for Dotnet +- Fixes boolean conversion in mxUtils.isTrue for Java and Dotnet + +25-SEP-2009: mxGraph 1.0.2.4 + +- Adds new grapheditor-gears.html example in JavaScript +- Fixes HTML entities in mxUtils.getPrettyXml for Java + +18-SEP-2009: mxGraph 1.0.2.3 + +- Fixes toFront/toBack and display order in JavaScript +- Fixes rendering of images in HTML labels for Java + +17-SEP-2009: mxGraph 1.0.2.2 + +- Maintenance release + +16-SEP-2009: mxGraph 1.0.2.1 + +- Fixes mxGraph.groupCells +- Adds reset of absolute offset in mxGraphView.validateBounds + +15-SEP-2009: mxGraph 1.0.2.0 + +- mxGraphModel does no longer update parents for edges passed to add function +- Checks if source and target in model in mxGraphModel.updateEdgeParent +- Adds root argument in mxGraphModel.updateEdgeParent +- mxGraph.ungroupCells only filters cells with no children for empty argument +- Fixes sorting order for cell paths in mxUtils.sortCells +- Fixes mxGraph.cloneCells to return empty array for non-null argument +- Adds mxCellHandler.isActive method in Java + +25-AUG-2009: mxGraph 1.0.1.3 + +- Makes mxCellHandler.getIndexAt public in Java +- Adds mxEdgeHandler.getSelectionColor, getSelectionStrokeWidth, isSelectionDashed +- Adds mxVertexHandler.getSelectionColor, getSelectionStrokeWidth, isSelectionDashed +- Replaces mxConstants.SELECTION_DASHED with VERTEX_/EDGE_SELECTION_DASHED +- Replaces mxConstants.SELECTION_STROKEWIDTH with VERTEX_/EDGE_SELECTION_STROKEWIDTH +- Adds mxConstants.LINE_ARCSIZE for rounded edges in Java, Dotnet and JavaScript +- Adds support for rounded rectangles in mxVmlCanvas and mxSvgCanvas +- Adds mxConstants.RECTANGLE_ROUNDING_FACTOR for rounded rectangles in Java and JavaScript +- Removes mxVertexHandler.selectionColor, mxEdgeHandler.selectionColor +- Replaces mxConstants.SELECTION_STROKE with VERTEX_/EDGE_SELECTION_STROKE in Java +- Replaces mxConstants.SELECTION_COLOR with VERTEX_/EDGE_SELECTION_COLOR +- Fixes tolerance menu item in graph editor example for Java + +18-AUG-2009: mxGraph 1.0.1.2 + +- Fires mxEvent.RESET in mxUndoManager.reset +- Adds mxGraphComponent.isEditing +- Fixes mxGraphComponent.scrollCellToVisible in Java +- Adds optional center flag in mxGraph.scrollCellToVisible +- Fixes possible key not found exception in mxStylesheet for Dotnet +- Removes target argument in mxConnectionHandler.updateIcons +- Adds mxMouseEvent.getTarget helper method +- Fixes text offset in mxSvgCanvas for Java + +03-AUG-2009: mxGraph 1.0.1.1 + +- Adds scrollbars.html example to demonstrate scrollable labels +- Fixes handling of non-empty arrays in mxObjectCodec +- Fixes handling of typed arrays in mxObjectCodec for Java and Dotnet +- Makes mxGeometry.TRANSLATE_CONTROL_POINTS transient in Java +- Changes signature of mxConnectionHandler.createEdge in JavaScript +- Adds mxConnectionHandler.createEdgeState hook in JavaScript +- Adds mxConnectionHandler.updateIcons hook in JavaScript +- Hides inner bends in mxEdgeHandler for entity relations +- Fixes possible NPE in mxGeometry.translate +- Adds mxConnectionHandler.ignoreMouseDown switch +- mxConnectionHandler only highlight source if no button pressed +- Fixes copy of absolute points to shape in mxCellRenderer +- Adds mxCellRenderer.isShapeEvent, isLabelEvent hooks +- Adds useLabelBounds hook in mxCellEditor for Java +- Adds childMoved hook in mxGraphView +- Adds support for vertical HTML labels in Firefox and Webkit +- Fixes bug in mxGdCanvas.getImageForStyle +- Adds mxUndoManager.isEmpty + +22-JUL-2009: mxGraph 1.0.1.0 + +- Moves mxCellRenderer.checkStyleChanged to mxGraphView.updateStyle +- Fixes mxCodecRegistry.GetTypeForName for Dotnet +- Adds mxGraphModel.clear for clearing the model +- Adds support for unlimited history size in mxUndoManager +- Adds mxGraph.pageVisible, pageScale, pageFormat (experimental) +- Renames mxGraphView.redrawBackground to redrawBackgroundImage +- Adds mxCellRenderer.getControlBounds hook in JavaScript +- Fixes page order in mxGraphComponent.print for Java +- Fixes return in mxGraphComponent.getVerticalPageCount for Java +- Adds mxDefaultPopupMenu.imageBasePath parameter for JavaScript +- Adds support for custom cell I/O in mxCellCodec and mxCodec +- Fixes mxEvent.MOVE_CELLS to fire during the transaction +- Fixes client URL in php/examples/template.html evaluation +- Replaces default with auto for shape-rendering in SVG + +13-JUL-2009: mxGraph 1.0.0.6 + +- Fixes handling of collapsed heavyweight children in Java +- Fixes client reference in php/examples/template.html +- Adds resetViewOnRootChange switch in mxGraph for Java +- Adds root event in mxGraph for Java +- Uses better fix for image problem in Firefox 3.5 +- Removes global mxClient.IS_FFIS constant + +07-JUL-2009: mxGraph 1.0.0.5 + +- Fixes mouse events in label HTML markup for Webkit +- Fixes mxImageShape for Firefox 3.5 in JavaScript +- Adds mxClient.IS_FFIS browser constant + +29-JUN-2009: mxGraph 1.0.0.4 + +- Fixes minor bugs in dbeditor.html, permissions.html examples +- Fixes mxMultiplicity.checkType for string user objects +- Fixes flip of elbow-shape edges in mxEdgeHandler for Java +- mxCellHandler.reset does no longer reset index in Java +- Fixes possible NPE in mxGraphHandler.moveCells for Java + +16-JUN-2009: mxGraph 1.0.0.3 + +- Removes activeHandler, invokes all handlers in mxSubHandler for Java +- Fixes autoextend for mxGraph.scrollPointToVisible in IE +- Fixes mxGraph.minimumGraphSize ignored in IE +- Fixes cross-VM datatransfer in Java + +10-JUN-2009: mxGraph 1.0.0.2 + +- Adds checkType hook in mxMultiplicity +- Fixes position for children of relative edge children +- Fixes origin for relative edge children in mxGraphView.validatePoints +- Replaces double with single quotation marks in mxUtils for JavaScript +- Uses javaSerializedObjectMimeType in mxGraphTransferable for Java +- Checks editor size in mxCellEditor.getEditorBounds for Java +- Adds scale argument in mxCellEditor.getEditorBounds for Java +- Fixes preview if drag disabled in mxGraphComponent for Java +- Adds mxGraph.zoom in JavaScript, mxGraphComponent.zoom in Java +- Fixes minor bug in mxGraphView.setScale for PHP +- Resets index in mxCellHandler.reset for Java + +27-MAY-2009: mxGraph 1.0.0.1 + +- Fixes mxGraph.cellSizeUpdated for non-groups in Java +- mxUtils.getSizeForString takes font argument in Java +- Fixes drag and drop for unmovable cells in Java +- Adds getDropTarget argument in mxUtils.makeDraggable +- Adds mxUtils.findNearestSegment in JavaScript and Java +- Adds mxCellRenderer.getShapeConstructor in JavaScript +- Fixes possible NPE in mxUtils.makeDraggable +- Fixes possible NPE in mxShape.insertGradient for mxArrow + +22-MAY-2009: mxGraph 1.0.0.0 + +- Uses new mxGraph.translateCell hook in mxGraph.cellsMoved +- Fixes default font size in mxGraph.getPreferredSizeForCell +- Adds accessors for mxGraph.htmlLabels in JavaScript +- Adds global switch mxGeometry.TRANSLATE_CONTROL_POINTS +- Adds control points argument in mxGraphView.getEdgeStyle +- Uses mxGraphView.transformControlPoint in edge styles +- Adds accessors for mxGraphModel.createIds in JavaScript +- Adds moveEnabled, selectEnabled switches in mxGraphHandler +- Moves mxGraphHandler.MouseRedirector to mxGraphComponent.mxMouseRedirector +- Adds mxGraphHandler.getCells hook in Java +- Adds cell argument in mxGraphHandler.getCells for JavaScript +- Removes call to dispatchMousePressed in mxConnectionHandler in Java +- Removes call to getHandleTooltipText in mxGraphComponent for Java +- Removes mxGraphHandler.getHandleTooltipText, getTooltipText +- Removes mxGraphHandler.dispatchMousePressed +- Adds mxSubHandler for event handling in mxGraphComponent for Java +- Moves handling of mxCellHandlers into mxSubHandler for Java +- Adds mxCellHandle.isHandleEnabled hook in Java +- Adds mxEdgeHandler.isHandleEnabled hook in JavaScript +- Enables antiAlias in FreeGraphEditor by default +- Fixes bounds in mxCellEditor for non-relative cells with offsets in Java +- Fixes possible undefined function in mxUtils.getSizeForString for PHP +- Adds dirty rectangle argument in mxGraph.repaint for Java diff --git a/docs/css/html.css b/docs/css/html.css new file mode 100644 index 000000000..e3b0f1675 --- /dev/null +++ b/docs/css/html.css @@ -0,0 +1,27 @@ +body { + font-family: Arial, Helvetica, sans-serif; + margin: 10px; +} + +h1 { + border-width: 0 0 1px 0; + border-style: solid; + border-color: #000000; +} + +pre { + background-color: #E0E0E0; + padding: 6px; +} + +#note { + background-color: #ff9966; + border: 1px solid #000000; + padding: 0.05cm; +} + +#coreapi { + background: #ff8080; + border: 1px solid #000000; + padding: 0.05cm; +} diff --git a/docs/images/MX_MANUAL_html_1cc55dd3.png b/docs/images/MX_MANUAL_html_1cc55dd3.png new file mode 100644 index 000000000..85bc3c9cb Binary files /dev/null and b/docs/images/MX_MANUAL_html_1cc55dd3.png differ diff --git a/docs/images/MX_MANUAL_html_ba4bf13.png b/docs/images/MX_MANUAL_html_ba4bf13.png new file mode 100644 index 000000000..eb1251436 Binary files /dev/null and b/docs/images/MX_MANUAL_html_ba4bf13.png differ diff --git a/docs/images/MX_MANUAL_html_m75de608.png b/docs/images/MX_MANUAL_html_m75de608.png new file mode 100644 index 000000000..2ce12a273 Binary files /dev/null and b/docs/images/MX_MANUAL_html_m75de608.png differ diff --git a/docs/images/architecture.png b/docs/images/architecture.png new file mode 100644 index 000000000..cf0199414 Binary files /dev/null and b/docs/images/architecture.png differ diff --git a/docs/images/callgraph.png b/docs/images/callgraph.png new file mode 100644 index 000000000..43c9895c7 Binary files /dev/null and b/docs/images/callgraph.png differ diff --git a/docs/images/editor.png b/docs/images/editor.png new file mode 100644 index 000000000..08657bf5f Binary files /dev/null and b/docs/images/editor.png differ diff --git a/docs/images/graph.png b/docs/images/graph.png new file mode 100644 index 000000000..518e334d9 Binary files /dev/null and b/docs/images/graph.png differ diff --git a/docs/images/logo.jpg b/docs/images/logo.jpg new file mode 100644 index 000000000..f9b9fa429 Binary files /dev/null and b/docs/images/logo.jpg differ diff --git a/docs/images/model.png b/docs/images/model.png new file mode 100644 index 000000000..45fb9b1ae Binary files /dev/null and b/docs/images/model.png differ diff --git a/docs/images/mx_man_architecture.png b/docs/images/mx_man_architecture.png new file mode 100644 index 000000000..cf0199414 Binary files /dev/null and b/docs/images/mx_man_architecture.png differ diff --git a/docs/images/mx_man_collapse_swim.png b/docs/images/mx_man_collapse_swim.png new file mode 100644 index 000000000..e35df7ab1 Binary files /dev/null and b/docs/images/mx_man_collapse_swim.png differ diff --git a/docs/images/mx_man_drill_down.png b/docs/images/mx_man_drill_down.png new file mode 100644 index 000000000..ab5cbe151 Binary files /dev/null and b/docs/images/mx_man_drill_down.png differ diff --git a/docs/images/mx_man_drilling.png b/docs/images/mx_man_drilling.png new file mode 100644 index 000000000..95b7694ed Binary files /dev/null and b/docs/images/mx_man_drilling.png differ diff --git a/docs/images/mx_man_edge_routing.png b/docs/images/mx_man_edge_routing.png new file mode 100644 index 000000000..b00f91d31 Binary files /dev/null and b/docs/images/mx_man_edge_routing.png differ diff --git a/docs/images/mx_man_expand_swim.png b/docs/images/mx_man_expand_swim.png new file mode 100644 index 000000000..3e0d6a6a5 Binary files /dev/null and b/docs/images/mx_man_expand_swim.png differ diff --git a/docs/images/mx_man_graph_analysis.jpg b/docs/images/mx_man_graph_analysis.jpg new file mode 100644 index 000000000..c3582f79b Binary files /dev/null and b/docs/images/mx_man_graph_analysis.jpg differ diff --git a/docs/images/mx_man_graph_interaction.png b/docs/images/mx_man_graph_interaction.png new file mode 100644 index 000000000..bd0574307 Binary files /dev/null and b/docs/images/mx_man_graph_interaction.png differ diff --git a/docs/images/mx_man_graph_layout.png b/docs/images/mx_man_graph_layout.png new file mode 100644 index 000000000..3406e269c Binary files /dev/null and b/docs/images/mx_man_graph_layout.png differ diff --git a/docs/images/mx_man_graph_vis.png b/docs/images/mx_man_graph_vis.png new file mode 100644 index 000000000..cc8eee3f0 Binary files /dev/null and b/docs/images/mx_man_graph_vis.png differ diff --git a/docs/images/mx_man_hello_struct.png b/docs/images/mx_man_hello_struct.png new file mode 100644 index 000000000..65b3d8b70 Binary files /dev/null and b/docs/images/mx_man_hello_struct.png differ diff --git a/docs/images/mx_man_hello_world.png b/docs/images/mx_man_hello_world.png new file mode 100644 index 000000000..1cd26cfee Binary files /dev/null and b/docs/images/mx_man_hello_world.png differ diff --git a/docs/images/mx_man_log_group_struct.png b/docs/images/mx_man_log_group_struct.png new file mode 100644 index 000000000..9d288638b Binary files /dev/null and b/docs/images/mx_man_log_group_struct.png differ diff --git a/docs/images/mx_man_non_realtive_edge_pos.png b/docs/images/mx_man_non_realtive_edge_pos.png new file mode 100644 index 000000000..b117255b1 Binary files /dev/null and b/docs/images/mx_man_non_realtive_edge_pos.png differ diff --git a/docs/images/mx_man_non_relative_pos.png b/docs/images/mx_man_non_relative_pos.png new file mode 100644 index 000000000..e8993b67d Binary files /dev/null and b/docs/images/mx_man_non_relative_pos.png differ diff --git a/docs/images/mx_man_overlap.png b/docs/images/mx_man_overlap.png new file mode 100644 index 000000000..1d63e75b7 Binary files /dev/null and b/docs/images/mx_man_overlap.png differ diff --git a/docs/images/mx_man_rel_vert_pos.png b/docs/images/mx_man_rel_vert_pos.png new file mode 100644 index 000000000..8ea06bab3 Binary files /dev/null and b/docs/images/mx_man_rel_vert_pos.png differ diff --git a/docs/images/mx_man_simple_graph.png b/docs/images/mx_man_simple_graph.png new file mode 100644 index 000000000..8773007a4 Binary files /dev/null and b/docs/images/mx_man_simple_graph.png differ diff --git a/docs/images/mx_man_simple_workflow.png b/docs/images/mx_man_simple_workflow.png new file mode 100644 index 000000000..310efac36 Binary files /dev/null and b/docs/images/mx_man_simple_workflow.png differ diff --git a/docs/images/mx_man_stencil_loaded.png b/docs/images/mx_man_stencil_loaded.png new file mode 100644 index 000000000..bdd18c819 Binary files /dev/null and b/docs/images/mx_man_stencil_loaded.png differ diff --git a/docs/images/mx_man_styles.png b/docs/images/mx_man_styles.png new file mode 100644 index 000000000..decb6a893 Binary files /dev/null and b/docs/images/mx_man_styles.png differ diff --git a/docs/images/mx_man_top_level.png b/docs/images/mx_man_top_level.png new file mode 100644 index 000000000..14cf859ec Binary files /dev/null and b/docs/images/mx_man_top_level.png differ diff --git a/docs/images/mx_man_vertex_props.png b/docs/images/mx_man_vertex_props.png new file mode 100644 index 000000000..d7c798721 Binary files /dev/null and b/docs/images/mx_man_vertex_props.png differ diff --git a/docs/images/mxgraph_logo.gif b/docs/images/mxgraph_logo.gif new file mode 100644 index 000000000..0ef5e7f8d Binary files /dev/null and b/docs/images/mxgraph_logo.gif differ diff --git a/docs/js-api/files/editor/mxDefaultKeyHandler-js.html b/docs/js-api/files/editor/mxDefaultKeyHandler-js.html new file mode 100644 index 000000000..2754ac570 --- /dev/null +++ b/docs/js-api/files/editor/mxDefaultKeyHandler-js.html @@ -0,0 +1,56 @@ + + +mxDefaultKeyHandler + + + + + + + + + +

mxDefaultKeyHandler

Binds keycodes to actionnames in an editor.  This aggregates an internal handler and extends the implementation of mxKeyHandler.escape to not only cancel the editing, but also hide the properties dialog and fire an <mxEditor.escape> event via editor.  An instance of this class is created by mxEditor and stored in mxEditor.keyHandler.

Example

Bind the delete key to the delete action in an existing editor.

var keyHandler = new mxDefaultKeyHandler(editor);
+keyHandler.bindAction(46, 'delete');

Codec

This class uses the mxDefaultKeyHandlerCodec to read configuration data into an existing instance.  See mxDefaultKeyHandlerCodec for a description of the configuration format.

Keycodes

See mxKeyHandler.

An mxEvent.ESCAPE event is fired via the editor if the escape key is pressed.

Summary
mxDefaultKeyHandlerBinds keycodes to actionnames in an editor.
Functions
mxDefaultKeyHandlerConstructs a new default key handler for the mxEditor.graph in the given mxEditor.
Variables
editorReference to the enclosing mxEditor.
handlerHolds the mxKeyHandler for key event handling.
Functions
bindActionBinds the specified keycode to the given action in editor.
destroyDestroys the handler associated with this object.
+ +

Functions

+ +

mxDefaultKeyHandler

function mxDefaultKeyHandler(editor)

Constructs a new default key handler for the mxEditor.graph in the given mxEditor.  (The editor may be null if a prototypical instance for a mxDefaultKeyHandlerCodec is created.)

Parameters

editorReference to the enclosing mxEditor.
+ +

Variables

+ +

editor

mxDefaultKeyHandler.prototype.editor

Reference to the enclosing mxEditor.

+ +

handler

mxDefaultKeyHandler.prototype.handler

Holds the mxKeyHandler for key event handling.

+ +

Functions

+ +

bindAction

mxDefaultKeyHandler.prototype.bindAction = function (code,
action,
control)

Binds the specified keycode to the given action in editor.  The optional control flag specifies if the control key must be pressed to trigger the action.

Parameters

codeInteger that specifies the keycode.
actionName of the action to execute in editor.
controlOptional boolean that specifies if control must be pressed.  Default is false.
+ +

destroy

mxDefaultKeyHandler.prototype.destroy = function ()

Destroys the handler associated with this object.  This does normally not need to be called, the handler is destroyed automatically when the window unloads (in IE) by mxEditor.

+ +
+ + + + + + + + + + +
function mxDefaultKeyHandler(editor)
Constructs a new default key handler for the mxEditor.graph in the given mxEditor.
mxEditor.prototype.graph
Holds a mxGraph for displaying the diagram.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
mxDefaultKeyHandler.prototype.editor
Reference to the enclosing mxEditor.
mxDefaultKeyHandler.prototype.handler
Holds the mxKeyHandler for key event handling.
Event handler that listens to keystroke events.
mxDefaultKeyHandler.prototype.bindAction = function (code,
action,
control)
Binds the specified keycode to the given action in editor.
mxDefaultKeyHandler.prototype.destroy = function ()
Destroys the handler associated with this object.
mxKeyHandler.prototype.escape = function(evt)
Hook to process ESCAPE keystrokes.
mxEditor.prototype.keyHandler
Holds a mxDefaultKeyHandler for handling keyboard events.
Custom codec for configuring mxDefaultKeyHandlers.
Specifies the event name for escape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/editor/mxDefaultPopupMenu-js.html b/docs/js-api/files/editor/mxDefaultPopupMenu-js.html new file mode 100644 index 000000000..c31b298a8 --- /dev/null +++ b/docs/js-api/files/editor/mxDefaultPopupMenu-js.html @@ -0,0 +1,73 @@ + + +mxDefaultPopupMenu + + + + + + + + + +

mxDefaultPopupMenu

Creates popupmenus for mouse events.  This object holds an XML node which is a description of the popup menu to be created.  In createMenu, the configuration is applied to the context and the resulting menu items are added to the menu dynamically.  See createMenu for a description of the configuration format.

This class does not create the DOM nodes required for the popup menu, it only parses an XML description to invoke the respective methods on an mxPopupMenu each time the menu is displayed.

Codec

This class uses the mxDefaultPopupMenuCodec to read configuration data into an existing instance, however, the actual parsing is done by this class during program execution, so the format is described below.

Summary
mxDefaultPopupMenuCreates popupmenus for mouse events.
Functions
mxDefaultPopupMenuConstructs a new popupmenu-factory based on given configuration.
Variables
imageBasePathBase path for all icon attributes in the config.
configXML node used as the description of new menu items.
Functions
createMenuThis function is called from mxEditor to add items to the given menu based on config.
addItemsRecursively adds the given items and all of its children into the given menu.
addActionHelper method to bind an action to a new menu item.
createConditionsEvaluates the default conditions for the given context.
+ +

Functions

+ +

mxDefaultPopupMenu

function mxDefaultPopupMenu(config)

Constructs a new popupmenu-factory based on given configuration.

Paramaters

configXML node that contains the configuration data.
+ +

Variables

+ +

imageBasePath

mxDefaultPopupMenu.prototype.imageBasePath

Base path for all icon attributes in the config.  Default is null.

+ +

config

mxDefaultPopupMenu.prototype.config

XML node used as the description of new menu items.  This node is used in createMenu to dynamically create the menu items if their respective conditions evaluate to true for the given arguments.

+ +

Functions

+ +

createMenu

mxDefaultPopupMenu.prototype.createMenu = function(editor,
menu,
cell,
evt)

This function is called from mxEditor to add items to the given menu based on config.  The config is a sequence of the following nodes and attributes.

Child Nodes

addAdds a new menu item.  See below for attributes.
separatorAdds a separator.  No attributes.
conditionAdds a custom condition.  Name attribute.

The add-node may have a child node that defines a function to be invoked before the action is executed (or instead of an action to be executed).

Attributes

asResource key for the label (needs entry in property file).
actionName of the action to execute in enclosing editor.
iconOptional icon (relative/absolute URL).
iconClsOptional CSS class for the icon.
ifOptional name of condition that must be true(see below).
nameName of custom condition.  Only for condition nodes.

Conditions

nocellNo cell under the mouse.
ncellsMore than one cell selected.
notRootDrilling position is other than home.
cellCell under the mouse.
notEmptyExactly one cell with children under mouse.
expandableExactly one expandable cell under mouse.
collapsableExactly one collapsable cell under mouse.
validRootExactly one cell which is a possible root under mouse.
swimlaneExactly one cell which is a swimlane under mouse.

Example

To add a new item for a given action to the popupmenu

<mxDefaultPopupMenu as="popupHandler">
+  <add as="delete" action="delete" icon="images/delete.gif" if="cell"/>
+</mxDefaultPopupMenu>

To add a new item for a custom function

<mxDefaultPopupMenu as="popupHandler">
+  <add as="action1"><![CDATA[
+     function (editor, cell)
+     {
+         editor.execute('action1', cell, 'myArg');
+     }
+  ]]></add>
+</mxDefaultPopupMenu>

The above example invokes action1 with an additional third argument via the editor instance.  The third argument is passed to the function that defines action1.  If the add-node has no action-attribute, then only the function defined in the text content is executed, otherwise first the function and then the action defined in the action-attribute is executed.

Custom Conditions

To add a new condition for popupmenu items

<condition name="condition1"><![CDATA[
+  function (editor, cell, evt)
+  {
+    return cell != null;
+  }
+]]></condition>

The new condition can then be used in any item as follows

<add as="action1" action="action1" icon="action1.gif" if="condition1"/>

The order in which the items and conditions appear is not significant as all connditions are evaluated before any items are created.

Parameters

editorEnclosing mxEditor instance.
menumxPopupMenu that is used for adding items and separators.
cellOptional mxCell which is under the mousepointer.
evtOptional mouse event which triggered the menu.
+ +

addItems

mxDefaultPopupMenu.prototype.addItems = function(editor,
menu,
cell,
evt,
conditions,
item,
parent)

Recursively adds the given items and all of its children into the given menu.

Parameters

editorEnclosing mxEditor instance.
menumxPopupMenu that is used for adding items and separators.
cellOptional mxCell which is under the mousepointer.
evtOptional mouse event which triggered the menu.
conditionsArray of names boolean conditions.
itemXML node that represents the current menu item.
parentDOM node that represents the parent menu item.
+ +

addAction

mxDefaultPopupMenu.prototype.addAction = function(menu,
editor,
lab,
icon,
funct,
action,
cell,
parent,
iconCls)

Helper method to bind an action to a new menu item.

Parameters

menumxPopupMenu that is used for adding items and separators.
editorEnclosing mxEditor instance.
labString that represents the label of the menu item.
iconOptional URL that represents the icon of the menu item.
actionOptional name of the action to execute in the given editor.
functOptional function to execute before the optional action.  The function takes an mxEditor, the mxCell under the mouse and the mouse event that triggered the call.
cellOptional mxCell to use as an argument for the action.
parentDOM node that represents the parent menu item.
iconClsOptional CSS class for the menu icon.
+ +

createConditions

mxDefaultPopupMenu.prototype.createConditions = function(editor,
cell,
evt)

Evaluates the default conditions for the given context.

+ +
+ + + + + + + + + + +
function mxDefaultPopupMenu(config)
Constructs a new popupmenu-factory based on given configuration.
mxDefaultPopupMenu.prototype.imageBasePath
Base path for all icon attributes in the config.
mxDefaultPopupMenu.prototype.config
XML node used as the description of new menu items.
mxDefaultPopupMenu.prototype.createMenu = function(editor,
menu,
cell,
evt)
This function is called from mxEditor to add items to the given menu based on config.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
mxDefaultPopupMenu.prototype.addItems = function(editor,
menu,
cell,
evt,
conditions,
item,
parent)
Recursively adds the given items and all of its children into the given menu.
mxDefaultPopupMenu.prototype.addAction = function(menu,
editor,
lab,
icon,
funct,
action,
cell,
parent,
iconCls)
Helper method to bind an action to a new menu item.
mxDefaultPopupMenu.prototype.createConditions = function(editor,
cell,
evt)
Evaluates the default conditions for the given context.
Event handler that pans and creates popupmenus.
Custom codec for configuring mxDefaultPopupMenus.
Cells are the elements of the graph model.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/editor/mxDefaultToolbar-js.html b/docs/js-api/files/editor/mxDefaultToolbar-js.html new file mode 100644 index 000000000..184c857e7 --- /dev/null +++ b/docs/js-api/files/editor/mxDefaultToolbar-js.html @@ -0,0 +1,89 @@ + + +mxDefaultToolbar + + + + + + + + + +

mxDefaultToolbar

Toolbar for the editor.  This modifies the state of the graph or inserts new cells upon mouse clicks.

Example

Create a toolbar with a button to copy the selection into the clipboard, and a combo box with one action to paste the selection from the clipboard into the graph.

var toolbar = new mxDefaultToolbar(container, editor);
+toolbar.addItem('Copy', null, 'copy');
+
+var combo = toolbar.addActionCombo('More actions...');
+toolbar.addActionOption(combo, 'Paste', 'paste');

Codec

This class uses the mxDefaultToolbarCodec to read configuration data into an existing instance.  See mxDefaultToolbarCodec for a description of the configuration format.

Summary
mxDefaultToolbarToolbar for the editor.
Functions
mxDefaultToolbarConstructs a new toolbar for the given container and editor.
Variables
editorReference to the enclosing mxEditor.
toolbarHolds the internal mxToolbar.
resetHandlerReference to the function used to reset the toolbar.
spacingDefines the spacing between existing and new vertices in gridSize units when a new vertex is dropped on an existing cell.
connectOnDropSpecifies if elements should be connected if new cells are dropped onto connectable elements.
initConstructs the toolbar for the given container and installs a listener that updates the mxEditor.insertFunction on editor if an item is selected in the toolbar.
Functions
addItemAdds a new item that executes the given action in editor.
addSeparatorAdds a vertical separator using the optional icon.
addComboHelper method to invoke mxToolbar.addCombo on toolbar and return the resulting DOM node.
addActionComboHelper method to invoke <mxToolbar.addActionCombo> on toolbar using the given title and return the resulting DOM node.
addActionOptionBinds the given action to a option with the specified label in the given combo.
addOptionHelper method to invoke mxToolbar.addOption on toolbar and return the resulting DOM node that represents the option.
addModeCreates an item for selecting the given mode in the editor’s graph.
addPrototypeCreates an item for inserting a clone of the specified prototype cell into the editor’s graph.
dropHandles a drop from a toolbar item to the graph.
insertHandles a drop by inserting the given vertex into the given parent cell or the default parent if no parent is specified.
connectHandles a drop by connecting the given vertex to the given source cell.
installDropHandlerMakes the given img draggable using the given function for handling a drop event.
destroyDestroys the toolbar associated with this object and removes all installed listeners.
+ +

Functions

+ +

mxDefaultToolbar

function mxDefaultToolbar(container,
editor)

Constructs a new toolbar for the given container and editor.  The container and editor may be null if a prototypical instance for a mxDefaultKeyHandlerCodec is created.

Parameters

containerDOM node that contains the toolbar.
editorReference to the enclosing mxEditor.
+ +

Variables

+ +

editor

mxDefaultToolbar.prototype.editor

Reference to the enclosing mxEditor.

+ +

toolbar

mxDefaultToolbar.prototype.toolbar

Holds the internal mxToolbar.

+ +

resetHandler

mxDefaultToolbar.prototype.resetHandler

Reference to the function used to reset the toolbar.

+ +

spacing

mxDefaultToolbar.prototype.spacing

Defines the spacing between existing and new vertices in gridSize units when a new vertex is dropped on an existing cell.  Default is 4 (40 pixels).

+ +

connectOnDrop

mxDefaultToolbar.prototype.connectOnDrop

Specifies if elements should be connected if new cells are dropped onto connectable elements.  Default is false.

+ +

init

mxDefaultToolbar.prototype.init

Constructs the toolbar for the given container and installs a listener that updates the mxEditor.insertFunction on editor if an item is selected in the toolbar.  This assumes that editor is not null.

Parameters

containerDOM node that contains the toolbar.
+ +

Functions

+ +

addItem

mxDefaultToolbar.prototype.addItem = function(title,
icon,
action,
pressed)

Adds a new item that executes the given action in editor.  The title, icon and pressedIcon are used to display the toolbar item.

Parameters

titleString that represents the title (tooltip) for the item.
iconURL of the icon to be used for displaying the item.
actionName of the action to execute when the item is clicked.
pressedOptional URL of the icon for the pressed state.
+ +

addSeparator

mxDefaultToolbar.prototype.addSeparator = function(icon)

Adds a vertical separator using the optional icon.

Parameters

iconOptional URL of the icon that represents the vertical separator.  Default is mxClient.imageBasePath + ‘/separator.gif’.
+ +

addCombo

mxDefaultToolbar.prototype.addCombo = function()

Helper method to invoke mxToolbar.addCombo on toolbar and return the resulting DOM node.

+ +

addActionCombo

mxDefaultToolbar.prototype.addActionCombo = function(title)

Helper method to invoke <mxToolbar.addActionCombo> on toolbar using the given title and return the resulting DOM node.

Parameters

titleString that represents the title of the combo.
+ +

addActionOption

mxDefaultToolbar.prototype.addActionOption = function(combo,
title,
action)

Binds the given action to a option with the specified label in the given combo.  Combo is an object returned from an earlier call to addCombo or addActionCombo.

Parameters

comboDOM node that represents the combo box.
titleString that represents the title of the combo.
actionName of the action to execute in editor.
+ +

addOption

mxDefaultToolbar.prototype.addOption = function(combo,
title,
value)

Helper method to invoke mxToolbar.addOption on toolbar and return the resulting DOM node that represents the option.

Parameters

comboDOM node that represents the combo box.
titleString that represents the title of the combo.
valueObject that represents the value of the option.
+ +

addMode

mxDefaultToolbar.prototype.addMode = function(title,
icon,
mode,
pressed,
funct)

Creates an item for selecting the given mode in the editor’s graph.  Supported modenames are select, connect and pan.

Parameters

titleString that represents the title of the item.
iconURL of the icon that represents the item.
modeString that represents the mode name to be used in mxEditor.setMode.
pressedOptional URL of the icon that represents the pressed state.
functOptional JavaScript function that takes the mxEditor as the first and only argument that is executed after the mode has been selected.
+ +

addPrototype

mxDefaultToolbar.prototype.addPrototype = function(title,
icon,
ptype,
pressed,
insert,
toggle)

Creates an item for inserting a clone of the specified prototype cell into the editor’s graph.  The ptype may either be a cell or a function that returns a cell.

Parameters

titleString that represents the title of the item.
iconURL of the icon that represents the item.
ptypeFunction or object that represents the prototype cell.  If ptype is a function then it is invoked with no arguments to create new instances.
pressedOptional URL of the icon that represents the pressed state.
insertOptional JavaScript function that handles an insert of the new cell.  This function takes the mxEditor, new cell to be inserted, mouse event and optional mxCell under the mouse pointer as arguments.
toggleOptional boolean that specifies if the item can be toggled.  Default is true.
+ +

drop

mxDefaultToolbar.prototype.drop = function(vertex,
evt,
target)

Handles a drop from a toolbar item to the graph.  The given vertex represents the new cell to be inserted.  This invokes insert or connect depending on the given target cell.

Parameters

vertexmxCell to be inserted.
evtMouse event that represents the drop.
targetOptional mxCell that represents the drop target.
+ +

insert

mxDefaultToolbar.prototype.insert = function(vertex,
evt,
target)

Handles a drop by inserting the given vertex into the given parent cell or the default parent if no parent is specified.

Parameters

vertexmxCell to be inserted.
evtMouse event that represents the drop.
parentOptional mxCell that represents the parent.
+ +

connect

mxDefaultToolbar.prototype.connect = function(vertex,
evt,
source)

Handles a drop by connecting the given vertex to the given source cell.

vertexmxCell to be inserted.
evtMouse event that represents the drop.
sourceOptional mxCell that represents the source terminal.
+ +

installDropHandler

mxDefaultToolbar.prototype.installDropHandler = function (img,
dropHandler)

Makes the given img draggable using the given function for handling a drop event.

Parameters

imgDOM node that represents the image.
dropHandlerFunction that handles a drop of the image.
+ +

destroy

mxDefaultToolbar.prototype.destroy = function ()

Destroys the toolbar associated with this object and removes all installed listeners.  This does normally not need to be called, the toolbar is destroyed automatically when the window unloads (in IE) by mxEditor.

+ +
+ + + + + + + + + + +
function mxDefaultToolbar(container,
editor)
Constructs a new toolbar for the given container and editor.
mxDefaultToolbar.prototype.editor
Reference to the enclosing mxEditor.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
mxDefaultToolbar.prototype.toolbar
Holds the internal mxToolbar.
Creates a toolbar inside a given DOM node.
mxDefaultToolbar.prototype.resetHandler
Reference to the function used to reset the toolbar.
mxDefaultToolbar.prototype.spacing
Defines the spacing between existing and new vertices in gridSize units when a new vertex is dropped on an existing cell.
mxDefaultToolbar.prototype.connectOnDrop
Specifies if elements should be connected if new cells are dropped onto connectable elements.
mxDefaultToolbar.prototype.init
Constructs the toolbar for the given container and installs a listener that updates the mxEditor.insertFunction on editor if an item is selected in the toolbar.
mxEditor.prototype.insertFunction
Specifies the function to be used for inserting new cells into the graph.
mxDefaultToolbar.prototype.addItem = function(title,
icon,
action,
pressed)
Adds a new item that executes the given action in editor.
mxDefaultToolbar.prototype.addSeparator = function(icon)
Adds a vertical separator using the optional icon.
mxDefaultToolbar.prototype.addCombo = function()
Helper method to invoke mxToolbar.addCombo on toolbar and return the resulting DOM node.
mxToolbar.prototype.addCombo = function(style)
Adds and returns a new SELECT element using the given style.
mxDefaultToolbar.prototype.addActionCombo = function(title)
Helper method to invoke mxToolbar.addActionCombo on toolbar using the given title and return the resulting DOM node.
mxDefaultToolbar.prototype.addActionOption = function(combo,
title,
action)
Binds the given action to a option with the specified label in the given combo.
mxDefaultToolbar.prototype.addOption = function(combo,
title,
value)
Helper method to invoke mxToolbar.addOption on toolbar and return the resulting DOM node that represents the option.
mxToolbar.prototype.addOption = function(combo,
title,
value)
Adds and returns a new OPTION element inside the given SELECT element.
mxDefaultToolbar.prototype.addMode = function(title,
icon,
mode,
pressed,
funct)
Creates an item for selecting the given mode in the editor’s graph.
mxDefaultToolbar.prototype.addPrototype = function(title,
icon,
ptype,
pressed,
insert,
toggle)
Creates an item for inserting a clone of the specified prototype cell into the editor’s graph.
mxDefaultToolbar.prototype.drop = function(vertex,
evt,
target)
Handles a drop from a toolbar item to the graph.
mxDefaultToolbar.prototype.insert = function(vertex,
evt,
target)
Handles a drop by inserting the given vertex into the given parent cell or the default parent if no parent is specified.
mxDefaultToolbar.prototype.connect = function(vertex,
evt,
source)
Handles a drop by connecting the given vertex to the given source cell.
mxDefaultToolbar.prototype.installDropHandler = function (img,
dropHandler)
Makes the given img draggable using the given function for handling a drop event.
mxDefaultToolbar.prototype.destroy = function ()
Destroys the toolbar associated with this object and removes all installed listeners.
Custom codec for configuring mxDefaultToolbars.
Custom codec for configuring mxDefaultKeyHandlers.
Basepath for all images URLs in the core without trailing slash.
mxEditor.prototype.setMode = function(modename)
Puts the graph into the specified mode.
Cells are the elements of the graph model.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/editor/mxEditor-js.html b/docs/js-api/files/editor/mxEditor-js.html new file mode 100644 index 000000000..ffe594b4c --- /dev/null +++ b/docs/js-api/files/editor/mxEditor-js.html @@ -0,0 +1,404 @@ + + +mxEditor + + + + + + + + + +

mxEditor

Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg. properties, help, outline, toolbar, and popupmenu.  It also adds templates to be used as cells in toolbars, auto-validation using the <validation> flag, attribute cycling using cycleAttributeValues, higher-level events such as <root>, and backend integration using urlPost, urlImage, urlInit, urlNotify and urlPoll.

Actions

Actions are functions stored in the actions array under their names.  The functions take the mxEditor as the first, and an optional mxCell as the second argument and are invoked using execute.  Any additional arguments passed to execute are passed on to the action as-is.

A list of built-in actions is available in the addActions description.

Read/write Diagrams

To read a diagram from an XML string, for example from a textfield within the page, the following code is used:

var doc = mxUtils.parseXML(xmlString);
+var node = doc.documentElement;
+editor.readGraphModel(node);

For reading a diagram from a remote location, use the open method.

To save diagrams in XML on a server, you can set the urlPost variable.  This variable will be used in getUrlPost to construct a URL for the post request that is issued in the save method.  The post request contains the XML representation of the diagram as returned by writeGraphModel in the xml parameter.

On the server side, the post request is processed using standard technologies such as Java Servlets, CGI, .NET or ASP.

Here are some examples of processing a post request in various languages.

  • Java: URLDecoder.decode(request.getParameter(“xml”), “UTF-8”).replace(“\n”, “&#xa;”)

Note that the linefeeds should only be replaced if the XML is processed in Java, for example when creating an image, but not if the XML is passed back to the client-side.

  • .NET: HttpUtility.UrlDecode(context.Request.Params[“xml”])
  • PHP: urldecode($_POST[“xml”])

Creating images

A backend (Java, PHP or C#) is required for creating images.  The distribution contains an example for each backend (ImageHandler.java, ImageHandler.cs and graph.php).  More information about using a backend to create images can be found in the readme.html files.  Note that the preview is implemented using VML/SVG in the browser and does not require a backend.  The backend is only required to creates images (bitmaps).

Special characters

Note There are five characters that should always appear in XML content as escapes, so that they do not interact with the syntax of the markup.  These are part of the language for all documents based on XML and for HTML.

  • &lt; (<)
  • &gt; (>)
  • &amp; (&)
  • &quot; (“)
  • &apos; (‘)

Although it is part of the XML language, &apos; is not defined in HTML.  For this reason the XHTML specification recommends instead the use of &#39; if text may be passed to a HTML user agent.

If you are having problems with special characters on the server-side then you may want to try the escapePostData flag.

For converting decimal escape sequences inside strings, a user has provided us with the following function:

function html2js(text)
+{
+  var entitySearch = /&#[0-9]+;/;
+  var entity;
+
+  while (entity = entitySearch.exec(text))
+  {
+    var charCode = entity[0].substring(2, entity[0].length -1);
+    text = text.substring(0, entity.index)
+           + String.fromCharCode(charCode)
+           + text.substring(entity.index + entity[0].length);
+  }
+
+  return text;
+}

Otherwise try using hex escape sequences and the built-in unescape function for converting such strings.

Local Files

For saving and opening local files, no standardized method exists that works across all browsers.  The recommended way of dealing with local files is to create a backend that streams the XML data back to the browser (echo) as an attachment so that a Save-dialog is displayed on the client-side and the file can be saved to the local disk.

For example, in PHP the code that does this looks as follows.

$xml = stripslashes($_POST["xml"]);
+header("Content-Disposition: attachment; filename=\"diagram.xml\"");
+echo($xml);

To open a local file, the file should be uploaded via a form in the browser and then opened from the server in the editor.

Cell Properties

The properties displayed in the properties dialog are the attributes and values of the cell’s user object, which is an XML node.  The XML node is defined in the templates section of the config file.

The templates are stored in mxEditor.templates and contain cells which are cloned at insertion time to create new vertices by use of drag and drop from the toolbar.  Each entry in the toolbar for adding a new vertex must refer to an existing template.

In the following example, the task node is a business object and only the mxCell node and its mxGeometry child contain graph information:

<Task label="Task" description="">
+  <mxCell vertex="true">
+    <mxGeometry as="geometry" width="72" height="32"/>
+  </mxCell>
+</Task>

The idea is that the XML representation is inverse from the in-memory representation: The outer XML node is the user object and the inner node is the cell.  This means the user object of the cell is the Task node with no children for the above example:

<Task label="Task" description=""/>

The Task node can have any tag name, attributes and child nodes.  The mxCodec will use the XML hierarchy as the user object, while removing the “known annotations”, such as the mxCell node.  At save-time the cell data will be “merged” back into the user object.  The user object is only modified via the properties dialog during the lifecycle of the cell.

In the default implementation of createProperties, the user object’s attributes are put into a form for editing.  Attributes are changed using the mxCellAttributeChange action in the model.  The dialog can be replaced by overriding the createProperties hook or by replacing the showProperties action in actions.  Alternatively, the entry in the config file’s popupmenu section can be modified to invoke a different action.

If you want to displey the properties dialog on a doubleclick, you can set mxEditor.dblClickAction to showProperties as follows:

editor.dblClickAction = 'showProperties';

Popupmenu and Toolbar

The toolbar and popupmenu are typically configured using the respective sections in the config file, that is, the popupmenu is defined as follows:

<mxEditor>
+  <mxDefaultPopupMenu as="popupHandler">
+     <add as="cut" action="cut" icon="images/cut.gif"/>
+     ...

New entries can be added to the toolbar by inserting an add-node into the above configuration.  Existing entries may be removed and changed by modifying or removing the respective entries in the configuration.  The configuration is read by the mxDefaultPopupMenuCodec, the format of the configuration is explained in <mxDefaultPopupMenu.decode>.

The toolbar is defined in the mxDefaultToolbar section.  Items can be added and removed in this section.

<mxEditor>
+  <mxDefaultToolbar>
+    <add as="save" action="save" icon="images/save.gif"/>
+    <add as="Swimlane" template="swimlane" icon="images/swimlane.gif"/>
+    ...

The format of the configuration is described in mxDefaultToolbarCodec.decode.

Ids

For the IDs, there is an implicit behaviour in mxCodec: It moves the Id from the cell to the user object at encoding time and vice versa at decoding time.  For example, if the Task node from above has an id attribute, then the mxCell.id of the corresponding cell will have this value.  If there is no Id collision in the model, then the cell may be retrieved using this Id with the mxGraphModel.getCell function.  If there is a collision, a new Id will be created for the cell using mxGraphModel.createId.  At encoding time, this new Id will replace the value previously stored under the id attribute in the Task node.

See mxEditorCodec, mxDefaultToolbarCodec and mxDefaultPopupMenuCodec for information about configuring the editor and user interface.

Programmatically inserting cells

For inserting a new cell, say, by clicking a button in the document, the following code can be used.  This requires an reference to the editor.

var userObject = new Object();
+var parent = editor.graph.getDefaultParent();
+var model = editor.graph.model;
+model.beginUpdate();
+try
+{
+  editor.graph.insertVertex(parent, null, userObject, 20, 20, 80, 30);
+}
+finally
+{
+  model.endUpdate();
+}

If a template cell from the config file should be inserted, then a clone of the template can be created as follows.  The clone is then inserted using the add function instead of addVertex.

var template = editor.templates['task'];
+var clone = editor.graph.model.cloneCell(template);

Resources

resources/editorLanguage resources for mxEditor
Summary
mxEditorExtends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
onInitCalled from within the constructor.
mxgraph=seenSet when the editor is started.
mxEvent.OPENFires after a file was opened in open.
mxEvent.SAVEFires after the current file was saved in save.
mxEvent.POSTFires if a successful response was received in postDiagram.
mxEvent.ROOTFires when the current root has changed, or when the title of the current root has changed.
mxEvent.SESSIONFires when anything in the session has changed.
mxEvent.BEFORE_ADD_VERTEXFires before a vertex is added in addVertex.
mxEvent.ADD_VERTEXFires between begin- and endUpdate in addVertex.
mxEvent.AFTER_ADD_VERTEXFires after a vertex was inserted and selected in addVertex.
mxEvent.ESCAPEFires when the escape key is pressed.
mxEditorConstructs a new editor.
Controls and Handlers
askZoomResourceSpecifies the resource key for the zoom dialog.
lastSavedResourceSpecifies the resource key for the last saved info.
currentFileResourceSpecifies the resource key for the current file info.
propertiesResourceSpecifies the resource key for the properties window title.
tasksResourceSpecifies the resource key for the tasks window title.
helpResourceSpecifies the resource key for the help window title.
outlineResourceSpecifies the resource key for the outline window title.
outlineReference to the mxWindow that contains the outline.
graphHolds a mxGraph for displaying the diagram.
graphRenderHintHolds the render hint used for creating the graph in setGraphContainer.
toolbarHolds a mxDefaultToolbar for displaying the toolbar.
statusDOM container that holds the statusbar.
popupHandlerHolds a mxDefaultPopupMenu for displaying popupmenus.
undoManagerHolds an mxUndoManager for the command history.
keyHandlerHolds a mxDefaultKeyHandler for handling keyboard events.
Actions and Options
actionsMaps from actionnames to actions, which are functions taking the editor and the cell as arguments.
dblClickActionSpecifies the name of the action to be executed when a cell is double clicked.
swimlaneRequiredSpecifies if new cells must be inserted into an existing swimlane.
disableContextMenuSpecifies if the context menu should be disabled in the graph container.
Templates
insertFunctionSpecifies the function to be used for inserting new cells into the graph.
forcedInsertingSpecifies if a new cell should be inserted on a single click even using insertFunction if there is a cell under the mousepointer, otherwise the cell under the mousepointer is selected.
templatesMaps from names to protoype cells to be used in the toolbar for inserting new cells into the diagram.
defaultEdgePrototype edge cell that is used for creating new edges.
defaultEdgeStyleSpecifies the edge style to be returned in getEdgeStyle.
defaultGroupPrototype group cell that is used for creating new groups.
graphRenderHintDefault size for the border of new groups.
Backend Integration
filenameContains the URL of the last opened file as a string.
lineFeedCharacter to be used for encoding linefeeds in save.
postParameterNameSpecifies if the name of the post parameter that contains the diagram data in a post request to the server.
escapePostDataSpecifies if the data in the post request for saving a diagram should be converted using encodeURIComponent.
urlPostSpecifies the URL to be used for posting the diagram to a backend in save.
urlImageSpecifies the URL to be used for creating a bitmap of the graph in the image action.
urlInitSpecifies the URL to be used for initializing the session.
urlNotifySpecifies the URL to be used for notifying the backend in the session.
urlPollSpecifies the URL to be used for polling in the session.
Autolayout
horizontalFlowSpecifies the direction of the flow in the diagram.
layoutDiagramSpecifies if the top-level elements in the diagram should be layed out using a vertical or horizontal stack depending on the setting of horizontalFlow.
swimlaneSpacingSpecifies the spacing between swimlanes if automatic layout is turned on in layoutDiagram.
maintainSwimlanesSpecifies if the swimlanes should be kept at the same width or height depending on the setting of horizontalFlow.
layoutSwimlanesSpecifies if the children of swimlanes should be layed out, either vertically or horizontally depending on horizontalFlow.
Attribute Cycling
cycleAttributeValuesSpecifies the attribute values to be cycled when inserting new swimlanes.
cycleAttributeIndexIndex of the last consumed attribute index.
cycleAttributeNameName of the attribute to be assigned a cycleAttributeValues when inserting new swimlanes.
Windows
tasksHolds the mxWindow created in showTasks.
tasksWindowImageIcon for the tasks window.
tasksTopSpecifies the top coordinate of the tasks window in pixels.
helpHolds the mxWindow created in showHelp.
helpWindowImageIcon for the help window.
urlHelpSpecifies the URL to be used for the contents of the Online Help window.
helpWidthSpecifies the width of the help window in pixels.
helpWidthSpecifies the width of the help window in pixels.
propertiesWidthSpecifies the width of the properties window in pixels.
propertiesHeightSpecifies the height of the properties window in pixels.
movePropertiesDialogSpecifies if the properties dialog should be automatically moved near the cell it is displayed for, otherwise the dialog is not moved.
validatingSpecifies if mxGraph.validateGraph should automatically be invoked after each change.
modifiedTrue if the graph has been modified since it was last saved.
isModifiedReturns modified.
setModifiedSets modified to the specified boolean value.
addActionsAdds the built-in actions to the editor instance.
createSessionCreates the built-in session using urlInit, urlPoll and urlNotify.
configureConfigures the editor using the specified node.
resetFirstTimeResets the cookie that is used to remember if the editor has already been used.
resetHistoryResets the command history, modified state and counters.
addActionBinds the specified actionname to the specified function.
executeExecutes the function with the given name in actions passing the editor instance and given cell as the first and second argument.
addTemplateAdds the specified template under the given name in templates.
getTemplateReturns the template for the given name.
createGraphCreates the graph for the editor.
createSwimlaneManagerSets the graph’s container using mxGraph.init.
createLayoutManagerCreates a layout manager for the swimlane and diagram layouts, that is, the locally defined inter- and intraswimlane layouts.
setGraphContainerSets the graph’s container using mxGraph.init.
installDblClickHandlerOverrides mxGraph.dblClick to invoke dblClickAction on a cell and reset the selection tool in the toolbar.
installUndoHandlerAdds the undoManager to the graph model and the view.
installDrillHandlerInstalls listeners for dispatching the <root> event.
installChangeHandlerInstalls the listeners required to automatically validate the graph.
installInsertHandlerInstalls the handler for invoking insertFunction if one is defined.
createDiagramLayoutCreates the layout instance used to layout the swimlanes in the diagram.
createSwimlaneLayoutCreates the layout instance used to layout the children of each swimlane.
createToolbarCreates the toolbar with no container.
setToolbarContainerInitializes the toolbar for the given container.
setStatusContainerCreates the status using the specified container.
setStatusDisplay the specified message in the status bar.
setTitleContainerCreates a listener to update the inner HTML of the specified DOM node with the value of getTitle.
treeLayoutExecutes a vertical or horizontal compact tree layout using the specified cell as an argument.
getTitleReturns the string value for the current root of the diagram.
getRootTitleReturns the string value of the root cell in mxGraph.model.
undoUndo the last change in graph.
redoRedo the last change in graph.
groupCellsInvokes createGroup to create a new group cell and the invokes mxGraph.groupCells, using the grid size of the graph as the spacing in the group’s content area.
createGroupCreates and returns a clone of defaultGroup to be used as a new group cell in <group>.
openOpens the specified file synchronously and parses it using readGraphModel.
readGraphModelReads the specified XML node into the existing graph model and resets the command history and modified state.
savePosts the string returned by writeGraphModel to the given URL or the URL returned by getUrlPost.
postDiagramHook for subclassers to override the posting of a diagram represented by the given node to the given URL.
writeGraphModelHook to create the string representation of the diagram.
getUrlPostReturns the URL to post the diagram to.
getUrlImageReturns the URL to create the image with.
connectCreates and returns a session for the specified parameters, installing the onChange function as a change listener for the session.
swapStylesSwaps the styles for the given names in the graph’s stylesheet and refreshes the graph.
showPropertiesCreates and shows the properties dialog for the given cell.
isPropertiesVisibleReturns true if the properties dialog is currently visible.
createPropertiesCreates and returns the DOM node that represents the contents of the properties dialog for the given cell.
hidePropertiesHides the properties dialog.
showTasksShows the tasks window.
refreshTasksUpdates the contents of the tasks window using createTasks.
createTasksUpdates the contents of the given DOM node to display the tasks associated with the current editor state.
showHelpShows the help window.
showOutlineShows the outline window.
setModePuts the graph into the specified mode.
createPopupMenuUses popupHandler to create the menu in the graph’s panning handler.
createEdgeUses defaultEdge as the prototype for creating new edges in the connection handler of the graph.
getEdgeStyleReturns a string identifying the style of new edges.
consumeCycleAttributeReturns the next attribute in cycleAttributeValues or null, if not attribute should be used in the specified cell.
cycleAttributeUses the returned value from consumeCycleAttribute as the value for the cycleAttributeName key in the given cell’s style.
addVertexAdds the given vertex as a child of parent at the specified x and y coordinate and fires an addVertex event.
destroyRemoves the editor and all its associated resources.
+ +

onInit

Called from within the constructor.  In the callback, “this” refers to the editor instance.

+ +

mxgraph=seen

Set when the editor is started.  Never expires.  Use resetFirstTime to reset this cookie.  This cookie only exists if onInit is implemented.

+ +

mxEvent.OPEN

Fires after a file was opened in open.  The <code>filename</code> property contains the filename that was used.  The same value is also available in filename.

+ +

mxEvent.SAVE

Fires after the current file was saved in save.  The <code>url</code> property contains the URL that was used for saving.

+ +

mxEvent.POST

Fires if a successful response was received in postDiagram.  The <code>request</code> property contains the mxXmlRequest, the <code>url</code> and <code>data</code> properties contain the URL and the data that were used in the post request.

+ +

mxEvent.ROOT

Fires when the current root has changed, or when the title of the current root has changed.  This event has no properties.

+ +

mxEvent.SESSION

Fires when anything in the session has changed.  The <code>session</code> property contains the respective mxSession.

+ +

mxEvent.BEFORE_ADD_VERTEX

Fires before a vertex is added in addVertex.  The <code>vertex</code> property contains the new vertex and the <code>parent</code> property contains its parent.

+ +

mxEvent.ADD_VERTEX

Fires between begin- and endUpdate in addVertex.  The <code>vertex</code> property contains the vertex that is being inserted.

+ +

mxEvent.AFTER_ADD_VERTEX

Fires after a vertex was inserted and selected in addVertex.  The <code>vertex</code> property contains the new vertex.

Example

For starting an in-place edit after a new vertex has been added to the graph, the following code can be used.

editor.addListener(mxEvent.AFTER_ADD_VERTEX, function(sender, evt)
+{
+  var vertex = evt.getProperty('vertex');
+
+  if (editor.graph.isCellEditable(vertex))
+  {
+     editor.graph.startEditingAtCell(vertex);
+  }
+});
+ +

mxEvent.ESCAPE

Fires when the escape key is pressed.  The <code>event</code> property contains the key event.

+ +

mxEditor

function mxEditor(config)

Constructs a new editor.  This function invokes the onInit callback upon completion.

Example

var config = mxUtils.load('config/diagrameditor.xml').getDocumentElement();
+var editor = new mxEditor(config);

Parameters

configOptional XML node that contains the configuration.
+ +

Controls and Handlers

+ +

askZoomResource

mxEditor.prototype.askZoomResource

Specifies the resource key for the zoom dialog.  If the resource for this key does not exist then the value is used as the error message.  Default is ‘askZoom’.

+ +

lastSavedResource

mxEditor.prototype.lastSavedResource

Specifies the resource key for the last saved info.  If the resource for this key does not exist then the value is used as the error message.  Default is ‘lastSaved’.

+ +

currentFileResource

mxEditor.prototype.currentFileResource

Specifies the resource key for the current file info.  If the resource for this key does not exist then the value is used as the error message.  Default is ‘lastSaved’.

+ +

propertiesResource

mxEditor.prototype.propertiesResource

Specifies the resource key for the properties window title.  If the resource for this key does not exist then the value is used as the error message.  Default is ‘properties’.

+ +

tasksResource

mxEditor.prototype.tasksResource

Specifies the resource key for the tasks window title.  If the resource for this key does not exist then the value is used as the error message.  Default is ‘tasks’.

+ +

helpResource

mxEditor.prototype.helpResource

Specifies the resource key for the help window title.  If the resource for this key does not exist then the value is used as the error message.  Default is ‘help’.

+ +

outlineResource

mxEditor.prototype.outlineResource

Specifies the resource key for the outline window title.  If the resource for this key does not exist then the value is used as the error message.  Default is ‘outline’.

+ +

outline

mxEditor.prototype.outline

Reference to the mxWindow that contains the outline.  The mxOutline is stored in outline.outline.

+ +

graph

mxEditor.prototype.graph

Holds a mxGraph for displaying the diagram.  The graph is created in setGraphContainer.

+ +

graphRenderHint

mxEditor.prototype.graphRenderHint

Holds the render hint used for creating the graph in setGraphContainer.  See mxGraph.  Default is null.

+ +

toolbar

mxEditor.prototype.toolbar

Holds a mxDefaultToolbar for displaying the toolbar.  The toolbar is created in setToolbarContainer.

+ +

status

mxEditor.prototype.status

DOM container that holds the statusbar.  Default is null.  Use setStatusContainer to set this value.

+ +

popupHandler

mxEditor.prototype.popupHandler

Holds a mxDefaultPopupMenu for displaying popupmenus.

+ +

undoManager

mxEditor.prototype.undoManager

Holds an mxUndoManager for the command history.

+ +

keyHandler

mxEditor.prototype.keyHandler

Holds a mxDefaultKeyHandler for handling keyboard events.  The handler is created in setGraphContainer.

+ +

Actions and Options

+ +

actions

mxEditor.prototype.actions

Maps from actionnames to actions, which are functions taking the editor and the cell as arguments.  Use addAction to add or replace an action and execute to execute an action by name, passing the cell to be operated upon as the second argument.

+ +

dblClickAction

mxEditor.prototype.dblClickAction

Specifies the name of the action to be executed when a cell is double clicked.  Default is edit.

To handle a singleclick, use the following code.

editor.graph.addListener(mxEvent.CLICK, function(sender, evt)
+{
+  var e = evt.getProperty('event');
+  var cell = evt.getProperty('cell');
+
+  if (cell != null && !e.isConsumed())
+  {
+    // Do something useful with cell...
+    e.consume();
+  }
+});
+ +

swimlaneRequired

mxEditor.prototype.swimlaneRequired

Specifies if new cells must be inserted into an existing swimlane.  Otherwise, cells that are not swimlanes can be inserted as top-level cells.  Default is false.

+ +

disableContextMenu

mxEditor.prototype.disableContextMenu

Specifies if the context menu should be disabled in the graph container.  Default is true.

+ +

Templates

+ +

insertFunction

mxEditor.prototype.insertFunction

Specifies the function to be used for inserting new cells into the graph.  This is assigned from the mxDefaultToolbar if a vertex-tool is clicked.

+ +

forcedInserting

mxEditor.prototype.forcedInserting

Specifies if a new cell should be inserted on a single click even using insertFunction if there is a cell under the mousepointer, otherwise the cell under the mousepointer is selected.  Default is false.

+ +

templates

mxEditor.prototype.templates

Maps from names to protoype cells to be used in the toolbar for inserting new cells into the diagram.

+ +

defaultEdge

mxEditor.prototype.defaultEdge

Prototype edge cell that is used for creating new edges.

+ +

defaultEdgeStyle

mxEditor.prototype.defaultEdgeStyle

Specifies the edge style to be returned in getEdgeStyle.  Default is null.

+ +

defaultGroup

mxEditor.prototype.defaultGroup

Prototype group cell that is used for creating new groups.

+ +

graphRenderHint

Default size for the border of new groups.  If null, then then mxGraph.gridSize is used.  Default is null.

+ +

Backend Integration

+ +

filename

mxEditor.prototype.filename

Contains the URL of the last opened file as a string.  Default is null.

+ +

lineFeed

Character to be used for encoding linefeeds in save.  Default is ‘&#xa;’.

+ +

postParameterName

mxEditor.prototype.postParameterName

Specifies if the name of the post parameter that contains the diagram data in a post request to the server.  Default is xml.

+ +

escapePostData

mxEditor.prototype.escapePostData

Specifies if the data in the post request for saving a diagram should be converted using encodeURIComponent.  Default is true.

+ +

urlPost

mxEditor.prototype.urlPost

Specifies the URL to be used for posting the diagram to a backend in save.

+ +

urlImage

mxEditor.prototype.urlImage

Specifies the URL to be used for creating a bitmap of the graph in the image action.

+ +

urlInit

mxEditor.prototype.urlInit

Specifies the URL to be used for initializing the session.

+ +

urlNotify

mxEditor.prototype.urlNotify

Specifies the URL to be used for notifying the backend in the session.

+ +

urlPoll

mxEditor.prototype.urlPoll

Specifies the URL to be used for polling in the session.

+ +

Autolayout

+ +

horizontalFlow

mxEditor.prototype.horizontalFlow

Specifies the direction of the flow in the diagram.  This is used in the layout algorithms.  Default is false, ie. vertical flow.

+ +

layoutDiagram

mxEditor.prototype.layoutDiagram

Specifies if the top-level elements in the diagram should be layed out using a vertical or horizontal stack depending on the setting of horizontalFlow.  The spacing between the swimlanes is specified by swimlaneSpacing.  Default is false.

If the top-level elements are swimlanes, then the intra-swimlane layout is activated by the layoutSwimlanes switch.

+ +

swimlaneSpacing

mxEditor.prototype.swimlaneSpacing

Specifies the spacing between swimlanes if automatic layout is turned on in layoutDiagram.  Default is 0.

+ +

maintainSwimlanes

mxEditor.prototype.maintainSwimlanes

Specifies if the swimlanes should be kept at the same width or height depending on the setting of horizontalFlow.  Default is false.

For horizontal flows, all swimlanes have the same height and for vertical flows, all swimlanes have the same width.  Furthermore, the swimlanes are automatically “stacked” if layoutDiagram is true.

+ +

layoutSwimlanes

mxEditor.prototype.layoutSwimlanes

Specifies if the children of swimlanes should be layed out, either vertically or horizontally depending on horizontalFlow.  Default is false.

+ +

Attribute Cycling

+ +

cycleAttributeValues

mxEditor.prototype.cycleAttributeValues

Specifies the attribute values to be cycled when inserting new swimlanes.  Default is an empty array.

+ +

cycleAttributeIndex

mxEditor.prototype.cycleAttributeIndex

Index of the last consumed attribute index.  If a new swimlane is inserted, then the cycleAttributeValues at this index will be used as the value for cycleAttributeName.  Default is 0.

+ +

cycleAttributeName

mxEditor.prototype.cycleAttributeName

Name of the attribute to be assigned a cycleAttributeValues when inserting new swimlanes.  Default is fillColor.

+ +

Windows

+ +

tasks

mxEditor.prototype.tasks

Holds the mxWindow created in showTasks.

+ +

tasksWindowImage

mxEditor.prototype.tasksWindowImage

Icon for the tasks window.

+ +

tasksTop

mxEditor.prototype.tasksTop

Specifies the top coordinate of the tasks window in pixels.  Default is 20.

+ +

help

mxEditor.prototype.help

Holds the mxWindow created in showHelp.

+ +

helpWindowImage

mxEditor.prototype.helpWindowImage

Icon for the help window.

+ +

urlHelp

mxEditor.prototype.urlHelp

Specifies the URL to be used for the contents of the Online Help window.  This is usually specified in the resources file under urlHelp for language-specific online help support.

+ +

helpWidth

mxEditor.prototype.helpWidth

Specifies the width of the help window in pixels.  Default is 300.

+ +

helpWidth

Specifies the width of the help window in pixels.  Default is 260.

+ +

propertiesWidth

mxEditor.prototype.propertiesWidth

Specifies the width of the properties window in pixels.  Default is 240.

+ +

propertiesHeight

mxEditor.prototype.propertiesHeight

Specifies the height of the properties window in pixels.  If no height is specified then the window will be automatically sized to fit its contents.  Default is null.

+ +

movePropertiesDialog

mxEditor.prototype.movePropertiesDialog

Specifies if the properties dialog should be automatically moved near the cell it is displayed for, otherwise the dialog is not moved.  This value is only taken into account if the dialog is already visible.  Default is false.

+ +

validating

mxEditor.prototype.validating

Specifies if mxGraph.validateGraph should automatically be invoked after each change.  Default is false.

+ +

modified

mxEditor.prototype.modified

True if the graph has been modified since it was last saved.

+ +

isModified

mxEditor.prototype.isModified = function ()

Returns modified.

+ +

setModified

mxEditor.prototype.setModified = function (value)

Sets modified to the specified boolean value.

+ +

addActions

mxEditor.prototype.addActions = function ()

Adds the built-in actions to the editor instance.

saveSaves the graph using urlPost.
printShows the graph in a new print preview window.
showShows the graph in a new window.
exportImageShows the graph as a bitmap image using getUrlImage.
refreshRefreshes the graph’s display.
cutCopies the current selection into the clipboard and removes it from the graph.
copyCopies the current selection into the clipboard.
pastePastes the clipboard into the graph.
deleteRemoves the current selection from the graph.
groupPuts the current selection into a new group.
ungroupRemoves the selected groups and selects the children.
undoUndoes the last change on the graph model.
redoRedoes the last change on the graph model.
zoomSets the zoom via a dialog.
zoomInZooms into the graph.
zoomOutZooms out of the graph
actualSizeResets the scale and translation on the graph.
fitChanges the scale so that the graph fits into the window.
showPropertiesShows the properties dialog.
selectAllSelects all cells.
selectNoneClears the selection.
selectVerticesSelects all vertices. selectEdges = Selects all edges.
editStarts editing the current selection cell.
enterGroupDrills down into the current selection cell.
exitGroupMoves up in the drilling hierachy
homeMoves to the topmost parent in the drilling hierarchy
selectPreviousSelects the previous cell.
selectNextSelects the next cell.
selectParentSelects the parent of the selection cell.
selectChildSelects the first child of the selection cell.
collapseCollapses the currently selected cells.
expandExpands the currently selected cells.
boldToggle bold text style.
italicToggle italic text style.
underlineToggle underline text style.
shadowToggle shadow text style.
alignCellsLeftAligns the selection cells at the left.
alignCellsCenterAligns the selection cells in the center.
alignCellsRightAligns the selection cells at the right.
alignCellsTopAligns the selection cells at the top.
alignCellsMiddleAligns the selection cells in the middle.
alignCellsBottomAligns the selection cells at the bottom.
alignFontLeftSets the horizontal text alignment to left.
alignFontCenterSets the horizontal text alignment to center.
alignFontRightSets the horizontal text alignment to right.
alignFontTopSets the vertical text alignment to top.
alignFontMiddleSets the vertical text alignment to middle.
alignFontBottomSets the vertical text alignment to bottom.
toggleTasksShows or hides the tasks window.
toggleHelpShows or hides the help window.
toggleOutlineShows or hides the outline window.
toggleConsoleShows or hides the console window.
+ +

createSession

mxEditor.prototype.createSession = function ()

Creates the built-in session using urlInit, urlPoll and urlNotify.

+ +

configure

mxEditor.prototype.configure = function (node)

Configures the editor using the specified node.  To load the configuration from a given URL the following code can be used to obtain the XML node.

var node = mxUtils.load(url).getDocumentElement();

Parameters

nodeXML node that contains the configuration.
+ +

resetFirstTime

mxEditor.prototype.resetFirstTime = function ()

Resets the cookie that is used to remember if the editor has already been used.

+ +

resetHistory

mxEditor.prototype.resetHistory = function ()

Resets the command history, modified state and counters.

+ +

addAction

mxEditor.prototype.addAction = function (actionname,
funct)

Binds the specified actionname to the specified function.

Parameters

actionnameString that specifies the name of the action to be added.
functFunction that implements the new action.  The first argument of the function is the editor it is used with, the second argument is the cell it operates upon.

Example

editor.addAction('test', function(editor, cell)
+{
+     mxUtils.alert("test "+cell);
+});
+ +

execute

mxEditor.prototype.execute = function (actionname,
cell,
evt)

Executes the function with the given name in actions passing the editor instance and given cell as the first and second argument.  All additional arguments are passed to the action as well.  This method contains a try-catch block and displays an error message if an action causes an exception.  The exception is re-thrown after the error message was displayed.

Example

editor.execute("showProperties", cell);
+ +

addTemplate

mxEditor.prototype.addTemplate = function (name,
template)

Adds the specified template under the given name in templates.

+ +

getTemplate

mxEditor.prototype.getTemplate = function (name)

Returns the template for the given name.

+ +

createGraph

mxEditor.prototype.createGraph = function ()

Creates the graph for the editor.  The graph is created with no container and is initialized from setGraphContainer.

+ +

createSwimlaneManager

mxEditor.prototype.createSwimlaneManager = function (graph)

Sets the graph’s container using mxGraph.init.

+ +

createLayoutManager

mxEditor.prototype.createLayoutManager = function (graph)

Creates a layout manager for the swimlane and diagram layouts, that is, the locally defined inter- and intraswimlane layouts.

+ +

setGraphContainer

mxEditor.prototype.setGraphContainer = function (container)

Sets the graph’s container using mxGraph.init.

+ +

installDblClickHandler

mxEditor.prototype.installDblClickHandler = function (graph)

Overrides mxGraph.dblClick to invoke dblClickAction on a cell and reset the selection tool in the toolbar.

+ +

installUndoHandler

mxEditor.prototype.installUndoHandler = function (graph)

Adds the undoManager to the graph model and the view.

+ +

installDrillHandler

mxEditor.prototype.installDrillHandler = function (graph)

Installs listeners for dispatching the <root> event.

+ +

installChangeHandler

mxEditor.prototype.installChangeHandler = function (graph)

Installs the listeners required to automatically validate the graph.  On each change of the root, this implementation fires a <root> event.

+ +

installInsertHandler

mxEditor.prototype.installInsertHandler = function (graph)

Installs the handler for invoking insertFunction if one is defined.

+ +

createDiagramLayout

mxEditor.prototype.createDiagramLayout = function ()

Creates the layout instance used to layout the swimlanes in the diagram.

+ +

createSwimlaneLayout

mxEditor.prototype.createSwimlaneLayout = function ()

Creates the layout instance used to layout the children of each swimlane.

+ +

createToolbar

mxEditor.prototype.createToolbar = function ()

Creates the toolbar with no container.

+ +

setToolbarContainer

mxEditor.prototype.setToolbarContainer = function (container)

Initializes the toolbar for the given container.

+ +

setStatusContainer

mxEditor.prototype.setStatusContainer = function (container)

Creates the status using the specified container.

This implementation adds listeners in the editor to display the last saved time and the current filename in the status bar.

Parameters

containerDOM node that will contain the statusbar.
+ +

setStatus

mxEditor.prototype.setStatus = function (message)

Display the specified message in the status bar.

Parameters

messageString the specified the message to be displayed.
+ +

setTitleContainer

mxEditor.prototype.setTitleContainer = function (container)

Creates a listener to update the inner HTML of the specified DOM node with the value of getTitle.

Parameters

containerDOM node that will contain the title.
+ +

treeLayout

mxEditor.prototype.treeLayout = function (cell,
horizontal)

Executes a vertical or horizontal compact tree layout using the specified cell as an argument.  The cell may either be a group or the root of a tree.

Parameters

cellmxCell to use in the compact tree layout.
horizontalOptional boolean to specify the tree’s orientation.  Default is true.
+ +

getTitle

mxEditor.prototype.getTitle = function ()

Returns the string value for the current root of the diagram.

+ +

getRootTitle

mxEditor.prototype.getRootTitle = function ()

Returns the string value of the root cell in mxGraph.model.

+ +

undo

mxEditor.prototype.undo = function ()

Undo the last change in graph.

+ +

redo

mxEditor.prototype.redo = function ()

Redo the last change in graph.

+ +

groupCells

mxEditor.prototype.groupCells = function ()

Invokes createGroup to create a new group cell and the invokes mxGraph.groupCells, using the grid size of the graph as the spacing in the group’s content area.

+ +

createGroup

mxEditor.prototype.createGroup = function ()

Creates and returns a clone of defaultGroup to be used as a new group cell in <group>.

+ +

open

mxEditor.prototype.open = function (filename)

Opens the specified file synchronously and parses it using readGraphModel.  It updates filename and fires an open-event after the file has been opened.  Exceptions should be handled as follows:

try
+{
+  editor.open(filename);
+}
+catch (e)
+{
+  mxUtils.error('Cannot open ' + filename +
+    ': ' + e.message, 280, true);
+}

Parameters

filenameURL of the file to be opened.
+ +

readGraphModel

mxEditor.prototype.readGraphModel = function (node)

Reads the specified XML node into the existing graph model and resets the command history and modified state.

+ +

save

mxEditor.prototype.save = function (url,
linefeed)

Posts the string returned by writeGraphModel to the given URL or the URL returned by getUrlPost.  The actual posting is carried out by postDiagram.  If the URL is null then the resulting XML will be displayed using mxUtils.popup.  Exceptions should be handled as follows:

try
+{
+  editor.save();
+}
+catch (e)
+{
+  mxUtils.error('Cannot save : ' + e.message, 280, true);
+}
+ +

postDiagram

mxEditor.prototype.postDiagram = function (url,
data)

Hook for subclassers to override the posting of a diagram represented by the given node to the given URL.  This fires an asynchronous <post> event if the diagram has been posted.

Example

To replace the diagram with the diagram in the response, use the following code.

editor.addListener(mxEvent.POST, function(sender, evt)
+{
+  // Process response (replace diagram)
+  var req = evt.getProperty('request');
+  var root = req.getDocumentElement();
+  editor.graph.readGraphModel(root)
+});
+ +

writeGraphModel

mxEditor.prototype.writeGraphModel = function (linefeed)

Hook to create the string representation of the diagram.  The default implementation uses an mxCodec to encode the graph model as follows:

var enc = new mxCodec();
+var node = enc.encode(this.graph.getModel());
+return mxUtils.getXml(node, this.linefeed);

Parameters

linefeedOptional character to be used as the linefeed.  Default is <linefeed>.
+ +

getUrlPost

mxEditor.prototype.getUrlPost = function ()

Returns the URL to post the diagram to.  This is used in save.  The default implementation returns urlPost, adding <code>?draft=true</code>.

+ +

getUrlImage

mxEditor.prototype.getUrlImage = function ()

Returns the URL to create the image with.  This is typically the URL of a backend which accepts an XML representation of a graph view to create an image.  The function is used in the image action to create an image.  This implementation returns urlImage.

+ +

connect

mxEditor.prototype.connect = function (urlInit,
urlPoll,
urlNotify,
onChange)

Creates and returns a session for the specified parameters, installing the onChange function as a change listener for the session.

+ +

swapStyles

mxEditor.prototype.swapStyles = function (first,
second)

Swaps the styles for the given names in the graph’s stylesheet and refreshes the graph.

+ +

showProperties

mxEditor.prototype.showProperties = function (cell)

Creates and shows the properties dialog for the given cell.  The content area of the dialog is created using createProperties.

+ +

isPropertiesVisible

mxEditor.prototype.isPropertiesVisible = function ()

Returns true if the properties dialog is currently visible.

+ +

createProperties

mxEditor.prototype.createProperties = function (cell)

Creates and returns the DOM node that represents the contents of the properties dialog for the given cell.  This implementation works for user objects that are XML nodes and display all the node attributes in a form.

+ +

hideProperties

mxEditor.prototype.hideProperties = function ()

Hides the properties dialog.

+ +

showTasks

mxEditor.prototype.showTasks = function ()

Shows the tasks window.  The tasks window is created using createTasks.  The default width of the window is 200 pixels, the y-coordinate of the location can be specifies in tasksTop and the x-coordinate is right aligned with a 20 pixel offset from the right border.  To change the location of the tasks window, the following code can be used:

var oldShowTasks = mxEditor.prototype.showTasks;
+mxEditor.prototype.showTasks = function()
+{
+  oldShowTasks.apply(this, arguments); // "supercall"
+
+  if (this.tasks != null)
+  {
+    this.tasks.setLocation(10, 10);
+  }
+};
+ +

refreshTasks

mxEditor.prototype.refreshTasks = function (div)

Updates the contents of the tasks window using createTasks.

+ +

createTasks

mxEditor.prototype.createTasks = function (div)

Updates the contents of the given DOM node to display the tasks associated with the current editor state.  This is invoked whenever there is a possible change of state in the editor.  Default implementation is empty.

+ +

showHelp

mxEditor.prototype.showHelp = function (tasks)

Shows the help window.  If the help window does not exist then it is created using an iframe pointing to the resource for the <code>urlHelp</code> key or urlHelp if the resource is undefined.

+ +

showOutline

mxEditor.prototype.showOutline = function ()

Shows the outline window.  If the window does not exist, then it is created using an mxOutline.

+ +

setMode

mxEditor.prototype.setMode = function(modename)

Puts the graph into the specified mode.  The following modenames are supported:

selectSelects using the left mouse button, new connections are disabled.
connectSelects using the left mouse button or creates new connections if mouse over cell hotspot.  See mxConnectionHandler.
panPans using the left mouse button, new connections are disabled.
+ +

createPopupMenu

mxEditor.prototype.createPopupMenu = function (menu,
cell,
evt)

Uses popupHandler to create the menu in the graph’s panning handler.  The redirection is setup in setToolbarContainer.

+ +

createEdge

mxEditor.prototype.createEdge = function (source,
target)

Uses defaultEdge as the prototype for creating new edges in the connection handler of the graph.  The style of the edge will be overridden with the value returned by getEdgeStyle.

+ +

getEdgeStyle

mxEditor.prototype.getEdgeStyle = function ()

Returns a string identifying the style of new edges.  The function is used in createEdge when new edges are created in the graph.

+ +

consumeCycleAttribute

mxEditor.prototype.consumeCycleAttribute = function (cell)

Returns the next attribute in cycleAttributeValues or null, if not attribute should be used in the specified cell.

+ +

cycleAttribute

mxEditor.prototype.cycleAttribute = function (cell)

Uses the returned value from consumeCycleAttribute as the value for the cycleAttributeName key in the given cell’s style.

+ +

addVertex

mxEditor.prototype.addVertex = function (parent,
vertex,
x,
y)

Adds the given vertex as a child of parent at the specified x and y coordinate and fires an addVertex event.

+ +

destroy

mxEditor.prototype.destroy = function ()

Removes the editor and all its associated resources.  This does not normally need to be called, it is called automatically when the window unloads.

+ +
+ + + + + + + + + + +
Base class for objects that dispatch named events.
mxEditor.prototype.actions
Maps from actionnames to actions, which are functions taking the editor and the cell as arguments.
XML codec for JavaScript object graphs.
Implements a layout manager that updates the layout for a given transaction.
mxEditor.prototype.undoManager
Holds an mxUndoManager for the command history.
mxEditor.prototype.open = function (filename)
Opens the specified file synchronously and parses it using readGraphModel.
mxEditor.prototype.save = function (url,
linefeed)
Posts the string returned by writeGraphModel to the given URL or the URL returned by getUrlPost.
mxEditor.prototype.postDiagram = function (url,
data)
Hook for subclassers to override the posting of a diagram represented by the given node to the given URL.
mxEditor.prototype.addVertex = function (parent,
vertex,
x,
y)
Adds the given vertex as a child of parent at the specified x and y coordinate and fires an addVertex event.
function mxEditor(config)
Constructs a new editor.
mxEditor.prototype.askZoomResource
Specifies the resource key for the zoom dialog.
mxEditor.prototype.lastSavedResource
Specifies the resource key for the last saved info.
mxEditor.prototype.currentFileResource
Specifies the resource key for the current file info.
mxEditor.prototype.propertiesResource
Specifies the resource key for the properties window title.
mxEditor.prototype.tasksResource
Specifies the resource key for the tasks window title.
mxEditor.prototype.helpResource
Specifies the resource key for the help window title.
mxEditor.prototype.outlineResource
Specifies the resource key for the outline window title.
mxEditor.prototype.outline
Reference to the mxWindow that contains the outline.
Basic window inside a document.
mxEditor.prototype.graph
Holds a mxGraph for displaying the diagram.
Extends mxEventSource to implement a graph component for the browser.
mxEditor.prototype.graphRenderHint
Holds the render hint used for creating the graph in setGraphContainer.
mxEditor.prototype.setGraphContainer = function (container)
Sets the graph’s container using mxGraph.init.
mxEditor.prototype.toolbar
Holds a mxDefaultToolbar for displaying the toolbar.
Toolbar for the editor.
mxEditor.prototype.status
DOM container that holds the statusbar.
mxEditor.prototype.popupHandler
Holds a mxDefaultPopupMenu for displaying popupmenus.
Creates popupmenus for mouse events.
Implements a command history.
mxEditor.prototype.keyHandler
Holds a mxDefaultKeyHandler for handling keyboard events.
Binds keycodes to actionnames in an editor.
mxEditor.prototype.dblClickAction
Specifies the name of the action to be executed when a cell is double clicked.
mxEditor.prototype.swimlaneRequired
Specifies if new cells must be inserted into an existing swimlane.
mxEditor.prototype.disableContextMenu
Specifies if the context menu should be disabled in the graph container.
mxEditor.prototype.insertFunction
Specifies the function to be used for inserting new cells into the graph.
mxEditor.prototype.forcedInserting
Specifies if a new cell should be inserted on a single click even using insertFunction if there is a cell under the mousepointer, otherwise the cell under the mousepointer is selected.
mxEditor.prototype.templates
Maps from names to protoype cells to be used in the toolbar for inserting new cells into the diagram.
mxEditor.prototype.defaultEdge
Prototype edge cell that is used for creating new edges.
mxEditor.prototype.defaultEdgeStyle
Specifies the edge style to be returned in getEdgeStyle.
mxEditor.prototype.getEdgeStyle = function ()
Returns a string identifying the style of new edges.
mxEditor.prototype.defaultGroup
Prototype group cell that is used for creating new groups.
mxEditor.prototype.filename
Contains the URL of the last opened file as a string.
mxEditor.prototype.postParameterName
Specifies if the name of the post parameter that contains the diagram data in a post request to the server.
mxEditor.prototype.escapePostData
Specifies if the data in the post request for saving a diagram should be converted using encodeURIComponent.
mxEditor.prototype.urlPost
Specifies the URL to be used for posting the diagram to a backend in save.
mxEditor.prototype.urlImage
Specifies the URL to be used for creating a bitmap of the graph in the image action.
mxEditor.prototype.urlInit
Specifies the URL to be used for initializing the session.
mxEditor.prototype.urlNotify
Specifies the URL to be used for notifying the backend in the session.
mxEditor.prototype.urlPoll
Specifies the URL to be used for polling in the session.
mxEditor.prototype.horizontalFlow
Specifies the direction of the flow in the diagram.
mxEditor.prototype.layoutDiagram
Specifies if the top-level elements in the diagram should be layed out using a vertical or horizontal stack depending on the setting of horizontalFlow.
mxEditor.prototype.swimlaneSpacing
Specifies the spacing between swimlanes if automatic layout is turned on in layoutDiagram.
mxEditor.prototype.maintainSwimlanes
Specifies if the swimlanes should be kept at the same width or height depending on the setting of horizontalFlow.
mxEditor.prototype.layoutSwimlanes
Specifies if the children of swimlanes should be layed out, either vertically or horizontally depending on horizontalFlow.
mxEditor.prototype.cycleAttributeValues
Specifies the attribute values to be cycled when inserting new swimlanes.
mxEditor.prototype.cycleAttributeIndex
Index of the last consumed attribute index.
mxEditor.prototype.cycleAttributeName
Name of the attribute to be assigned a cycleAttributeValues when inserting new swimlanes.
mxEditor.prototype.tasks
Holds the mxWindow created in showTasks.
mxEditor.prototype.showTasks = function ()
Shows the tasks window.
mxEditor.prototype.tasksWindowImage
Icon for the tasks window.
mxEditor.prototype.tasksTop
Specifies the top coordinate of the tasks window in pixels.
mxEditor.prototype.help
Holds the mxWindow created in showHelp.
mxEditor.prototype.showHelp = function (tasks)
Shows the help window.
mxEditor.prototype.helpWindowImage
Icon for the help window.
mxEditor.prototype.urlHelp
Specifies the URL to be used for the contents of the Online Help window.
mxEditor.prototype.helpWidth
Specifies the width of the help window in pixels.
mxEditor.prototype.propertiesWidth
Specifies the width of the properties window in pixels.
mxEditor.prototype.propertiesHeight
Specifies the height of the properties window in pixels.
mxEditor.prototype.movePropertiesDialog
Specifies if the properties dialog should be automatically moved near the cell it is displayed for, otherwise the dialog is not moved.
mxEditor.prototype.validating
Specifies if mxGraph.validateGraph should automatically be invoked after each change.
mxGraph.prototype.validateGraph = function(cell,
context)
Validates the graph by validating each descendant of the given cell or the root of the model.
mxEditor.prototype.modified
True if the graph has been modified since it was last saved.
mxEditor.prototype.isModified = function ()
Returns modified.
mxEditor.prototype.setModified = function (value)
Sets modified to the specified boolean value.
mxEditor.prototype.addActions = function ()
Adds the built-in actions to the editor instance.
mxEditor.prototype.createSession = function ()
Creates the built-in session using urlInit, urlPoll and urlNotify.
mxEditor.prototype.configure = function (node)
Configures the editor using the specified node.
mxEditor.prototype.resetFirstTime = function ()
Resets the cookie that is used to remember if the editor has already been used.
mxEditor.prototype.resetHistory = function ()
Resets the command history, modified state and counters.
mxEditor.prototype.addAction = function (actionname,
funct)
Binds the specified actionname to the specified function.
mxEditor.prototype.execute = function (actionname,
cell,
evt)
Executes the function with the given name in actions passing the editor instance and given cell as the first and second argument.
mxEditor.prototype.addTemplate = function (name,
template)
Adds the specified template under the given name in templates.
mxEditor.prototype.getTemplate = function (name)
Returns the template for the given name.
mxEditor.prototype.createGraph = function ()
Creates the graph for the editor.
mxEditor.prototype.createSwimlaneManager = function (graph)
Sets the graph’s container using mxGraph.init.
mxGraph.prototype.init = function(container)
Initializes the container and creates the respective datastructures.
mxEditor.prototype.createLayoutManager = function (graph)
Creates a layout manager for the swimlane and diagram layouts, that is, the locally defined inter- and intraswimlane layouts.
mxEditor.prototype.installDblClickHandler = function (graph)
Overrides mxGraph.dblClick to invoke dblClickAction on a cell and reset the selection tool in the toolbar.
mxGraph.prototype.dblClick = function(evt,
cell)
Processes a doubleclick on an optional cell and fires a dblclick event.
mxEditor.prototype.installUndoHandler = function (graph)
Adds the undoManager to the graph model and the view.
mxEditor.prototype.installDrillHandler = function (graph)
Installs listeners for dispatching the root event.
mxEditor.prototype.installChangeHandler = function (graph)
Installs the listeners required to automatically validate the graph.
mxEditor.prototype.installInsertHandler = function (graph)
Installs the handler for invoking insertFunction if one is defined.
mxEditor.prototype.createDiagramLayout = function ()
Creates the layout instance used to layout the swimlanes in the diagram.
mxEditor.prototype.createSwimlaneLayout = function ()
Creates the layout instance used to layout the children of each swimlane.
mxEditor.prototype.createToolbar = function ()
Creates the toolbar with no container.
mxEditor.prototype.setToolbarContainer = function (container)
Initializes the toolbar for the given container.
mxEditor.prototype.setStatusContainer = function (container)
Creates the status using the specified container.
mxEditor.prototype.setStatus = function (message)
Display the specified message in the status bar.
mxEditor.prototype.setTitleContainer = function (container)
Creates a listener to update the inner HTML of the specified DOM node with the value of getTitle.
mxEditor.prototype.getTitle = function ()
Returns the string value for the current root of the diagram.
mxEditor.prototype.treeLayout = function (cell,
horizontal)
Executes a vertical or horizontal compact tree layout using the specified cell as an argument.
mxEditor.prototype.getRootTitle = function ()
Returns the string value of the root cell in mxGraph.model.
mxGraph.prototype.model
Holds the mxGraphModel that contains the cells to be displayed.
mxEditor.prototype.undo = function ()
Undo the last change in graph.
mxEditor.prototype.redo = function ()
Redo the last change in graph.
mxEditor.prototype.groupCells = function ()
Invokes createGroup to create a new group cell and the invokes mxGraph.groupCells, using the grid size of the graph as the spacing in the group’s content area.
mxEditor.prototype.createGroup = function ()
Creates and returns a clone of defaultGroup to be used as a new group cell in group.
mxGraph.prototype.groupCells = function(group,
border,
cells)
Adds the cells into the given group.
mxEditor.prototype.readGraphModel = function (node)
Reads the specified XML node into the existing graph model and resets the command history and modified state.
mxEditor.prototype.writeGraphModel = function (linefeed)
Hook to create the string representation of the diagram.
mxEditor.prototype.getUrlPost = function ()
Returns the URL to post the diagram to.
mxEditor.prototype.getUrlImage = function ()
Returns the URL to create the image with.
mxEditor.prototype.connect = function (urlInit,
urlPoll,
urlNotify,
onChange)
Creates and returns a session for the specified parameters, installing the onChange function as a change listener for the session.
mxEditor.prototype.swapStyles = function (first,
second)
Swaps the styles for the given names in the graph’s stylesheet and refreshes the graph.
mxEditor.prototype.showProperties = function (cell)
Creates and shows the properties dialog for the given cell.
mxEditor.prototype.isPropertiesVisible = function ()
Returns true if the properties dialog is currently visible.
mxEditor.prototype.createProperties = function (cell)
Creates and returns the DOM node that represents the contents of the properties dialog for the given cell.
mxEditor.prototype.hideProperties = function ()
Hides the properties dialog.
mxEditor.prototype.refreshTasks = function (div)
Updates the contents of the tasks window using createTasks.
mxEditor.prototype.createTasks = function (div)
Updates the contents of the given DOM node to display the tasks associated with the current editor state.
mxEditor.prototype.showOutline = function ()
Shows the outline window.
mxEditor.prototype.setMode = function(modename)
Puts the graph into the specified mode.
mxEditor.prototype.createPopupMenu = function (menu,
cell,
evt)
Uses popupHandler to create the menu in the graph’s panning handler.
mxEditor.prototype.createEdge = function (source,
target)
Uses defaultEdge as the prototype for creating new edges in the connection handler of the graph.
mxEditor.prototype.consumeCycleAttribute = function (cell)
Returns the next attribute in cycleAttributeValues or null, if not attribute should be used in the specified cell.
mxEditor.prototype.cycleAttribute = function (cell)
Uses the returned value from consumeCycleAttribute as the value for the cycleAttributeName key in the given cell’s style.
mxEditor.prototype.destroy = function ()
Removes the editor and all its associated resources.
Cells are the elements of the graph model.
Action to change the attribute of a cell’s user object.
Custom codec for configuring mxDefaultPopupMenus.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
mxCell.prototype.id
Holds the Id.
mxGraphModel.prototype.getCell = function(id)
Returns the mxCell for the specified Id or null if no cell can be found for the given Id.
mxGraphModel.prototype.createId = function(cell)
Hook method to create an Id for the specified cell.
Codec for mxEditors.
Custom codec for configuring mxDefaultToolbars.
Called from within the constructor.
XML HTTP request wrapper.
Session for sharing an mxGraphModel with other parties via a backend that acts as a multicaster for all changes.
Implements an outline (aka overview) for a graph.
mxGraph.prototype.gridSize
Specifies the grid size.
popup: function(content,
isInternalWindow)
Shows the specified text content in a new mxWindow or a new browser window if isInternalWindow is false.
Graph event handler that creates new connections.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxCellHighlight-js.html b/docs/js-api/files/handler/mxCellHighlight-js.html new file mode 100644 index 000000000..f054b56fb --- /dev/null +++ b/docs/js-api/files/handler/mxCellHighlight-js.html @@ -0,0 +1,70 @@ + + +mxCellHighlight + + + + + + + + + +

mxCellHighlight

A helper class to highlight cells.  Here is an example for a given cell.

var highlight = new mxCellHighlight(graph, '#ff0000', 2);
+highlight.highlight(graph.view.getState(cell)));
Summary
mxCellHighlightA helper class to highlight cells.
Functions
mxCellHighlightConstructs a cell highlight.
Variables
keepOnTopSpecifies if the highlights should appear on top of everything else in the overlay pane.
graphReference to the enclosing mxGraph.
stateReference to the mxCellState.
spacingSpecifies the spacing between the highlight for vertices and the vertex.
resetHandlerHolds the handler that automatically invokes reset if the highlight should be hidden.
Functions
setHighlightColorSets the color of the rectangle used to highlight drop targets.
drawHighlightCreates and returns the highlight shape for the given state.
createShapeCreates and returns the highlight shape for the given state.
hideResets the state of the cell marker.
markMarks the <markedState> and fires a mark event.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Functions

+ +

mxCellHighlight

function mxCellHighlight(graph,
highlightColor,
strokeWidth)

Constructs a cell highlight.

+ +

Variables

+ +

keepOnTop

mxCellHighlight.prototype.keepOnTop

Specifies if the highlights should appear on top of everything else in the overlay pane.  Default is false.

+ +

graph

mxCellHighlight.prototype.graph

Reference to the enclosing mxGraph.

+ +

state

mxCellHighlight.prototype.state

Reference to the mxCellState.

+ +

spacing

mxCellHighlight.prototype.spacing

Specifies the spacing between the highlight for vertices and the vertex.  Default is 2.

+ +

resetHandler

mxCellHighlight.prototype.resetHandler

Holds the handler that automatically invokes reset if the highlight should be hidden.

+ +

Functions

+ +

setHighlightColor

mxCellHighlight.prototype.setHighlightColor = function(color)

Sets the color of the rectangle used to highlight drop targets.

Parameters

colorString that represents the new highlight color.
+ +

drawHighlight

mxCellHighlight.prototype.drawHighlight = function(state)

Creates and returns the highlight shape for the given state.

+ +

createShape

mxCellHighlight.prototype.createShape = function(state)

Creates and returns the highlight shape for the given state.

+ +

hide

mxCellHighlight.prototype.hide = function()

Resets the state of the cell marker.

+ +

mark

Marks the <markedState> and fires a mark event.

+ +

destroy

mxCellHighlight.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.

+ +
+ + + + + + + + + + +
function mxCellHighlight(graph,
highlightColor,
strokeWidth)
Constructs a cell highlight.
mxCellHighlight.prototype.keepOnTop
Specifies if the highlights should appear on top of everything else in the overlay pane.
mxCellHighlight.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxCellHighlight.prototype.state
Reference to the mxCellState.
Represents the current state of a cell in a given mxGraphView.
mxCellHighlight.prototype.spacing
Specifies the spacing between the highlight for vertices and the vertex.
mxCellHighlight.prototype.resetHandler
Holds the handler that automatically invokes reset if the highlight should be hidden.
mxCellHighlight.prototype.setHighlightColor = function(color)
Sets the color of the rectangle used to highlight drop targets.
mxCellHighlight.prototype.drawHighlight = function(state)
Creates and returns the highlight shape for the given state.
mxCellHighlight.prototype.createShape = function(state)
Creates and returns the highlight shape for the given state.
mxCellHighlight.prototype.hide = function()
Resets the state of the cell marker.
Marks the markedState and fires a mark event.
mxCellHighlight.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxCellMarker-js.html b/docs/js-api/files/handler/mxCellMarker-js.html new file mode 100644 index 000000000..89e191526 --- /dev/null +++ b/docs/js-api/files/handler/mxCellMarker-js.html @@ -0,0 +1,119 @@ + + +mxCellMarker + + + + + + + + + +

mxCellMarker

A helper class to process mouse locations and highlight cells.

Helper class to highlight cells.  To add a cell marker to an existing graph for highlighting all cells, the following code is used:

var marker = new mxCellMarker(graph);
+graph.addMouseListener({
+  mouseDown: function() {},
+  mouseMove: function(sender, me)
+  {
+    marker.process(me);
+  },
+  mouseUp: function() {}
+});
Summary
mxCellMarkerA helper class to process mouse locations and highlight cells.
Events
mxEvent.MARKFires after a cell has been marked or unmarked.
Functions
mxCellMarkerConstructs a new cell marker.
Variables
graphReference to the enclosing mxGraph.
enabledSpecifies if the marker is enabled.
hotspotSpecifies the portion of the width and height that should trigger a highlight.
hotspotEnabledSpecifies if the hotspot is enabled.
validColorHolds the valid marker color.
invalidColorHolds the invalid marker color.
currentColorHolds the current marker color.
validStateHolds the marked mxCellState if it is valid.
markedStateHolds the marked mxCellState.
Functions
setEnabledEnables or disables event handling.
isEnabledReturns true if events are handled.
setHotspotSets the hotspot.
getHotspotReturns the hotspot.
setHotspotEnabledSpecifies whether the hotspot should be used in intersects.
isHotspotEnabledReturns true if hotspot is used in intersects.
hasValidStateReturns true if validState is not null.
getValidStateReturns the validState.
getMarkedStateReturns the markedState.
resetResets the state of the cell marker.
processProcesses the given event and cell and marks the state returned by getState with the color returned by getMarkerColor.
markCellMarks the given cell using the given color, or validColor if no color is specified.
markMarks the markedState and fires a mark event.
unmarkHides the marker and fires a mark event.
isValidStateReturns true if the given mxCellState is a valid state.
getMarkerColorReturns the valid- or invalidColor depending on the value of isValid.
getStateUses getCell, getStateToMark and intersects to return the mxCellState for the given mxMouseEvent.
getCellReturns the mxCell for the given event and cell.
getStateToMarkReturns the mxCellState to be marked for the given mxCellState under the mouse.
intersectsReturns true if the given coordinate pair intersects the given state.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Events

+ +

mxEvent.MARK

Fires after a cell has been marked or unmarked.  The <code>state</code> property contains the marked mxCellState or null if no state is marked.

+ +

Functions

+ +

mxCellMarker

function mxCellMarker(graph,
validColor,
invalidColor,
hotspot)

Constructs a new cell marker.

Parameters

graphReference to the enclosing mxGraph.
validColorOptional marker color for valid states.  Default is mxConstants.DEFAULT_VALID_COLOR.
invalidColorOptional marker color for invalid states.  Default is mxConstants.DEFAULT_INVALID_COLOR.
hotspotPortion of the width and hight where a state intersects a given coordinate pair.  A value of 0 means always highlight.  Default is mxConstants.DEFAULT_HOTSPOT.
+ +

Variables

+ +

graph

mxCellMarker.prototype.graph

Reference to the enclosing mxGraph.

+ +

enabled

mxCellMarker.prototype.enabled

Specifies if the marker is enabled.  Default is true.

+ +

hotspot

mxCellMarker.prototype.hotspot

Specifies the portion of the width and height that should trigger a highlight.  The area around the center of the cell to be marked is used as the hotspot.  Possible values are between 0 and 1.  Default is mxConstants.DEFAULT_HOTSPOT.

+ +

hotspotEnabled

mxCellMarker.prototype.hotspotEnabled

Specifies if the hotspot is enabled.  Default is false.

+ +

validColor

mxCellMarker.prototype.validColor

Holds the valid marker color.

+ +

invalidColor

mxCellMarker.prototype.invalidColor

Holds the invalid marker color.

+ +

currentColor

mxCellMarker.prototype.currentColor

Holds the current marker color.

+ +

validState

mxCellMarker.prototype.validState

Holds the marked mxCellState if it is valid.

+ +

markedState

mxCellMarker.prototype.markedState

Holds the marked mxCellState.

+ +

Functions

+ +

setEnabled

mxCellMarker.prototype.setEnabled = function(enabled)

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

isEnabled

mxCellMarker.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setHotspot

mxCellMarker.prototype.setHotspot = function(hotspot)

Sets the hotspot.

+ +

getHotspot

mxCellMarker.prototype.getHotspot = function()

Returns the hotspot.

+ +

setHotspotEnabled

mxCellMarker.prototype.setHotspotEnabled = function(enabled)

Specifies whether the hotspot should be used in intersects.

+ +

isHotspotEnabled

mxCellMarker.prototype.isHotspotEnabled = function()

Returns true if hotspot is used in intersects.

+ +

hasValidState

mxCellMarker.prototype.hasValidState = function()

Returns true if validState is not null.

+ +

getValidState

mxCellMarker.prototype.getValidState = function()

Returns the validState.

+ +

getMarkedState

mxCellMarker.prototype.getMarkedState = function()

Returns the markedState.

+ +

reset

mxCellMarker.prototype.reset = function()

Resets the state of the cell marker.

+ +

process

mxCellMarker.prototype.process = function(me)

Processes the given event and cell and marks the state returned by getState with the color returned by getMarkerColor.  If the markerColor is not null, then the state is stored in markedState.  If isValidState returns true, then the state is stored in validState regardless of the marker color.  The state is returned regardless of the marker color and valid state.

+ +

markCell

mxCellMarker.prototype.markCell = function(cell,
color)

Marks the given cell using the given color, or validColor if no color is specified.

+ +

mark

mxCellMarker.prototype.mark = function()

Marks the markedState and fires a mark event.

+ +

unmark

mxCellMarker.prototype.unmark = function()

Hides the marker and fires a mark event.

+ +

isValidState

mxCellMarker.prototype.isValidState = function(state)

Returns true if the given mxCellState is a valid state.  If this returns true, then the state is stored in validState.  The return value of this method is used as the argument for getMarkerColor.

+ +

getMarkerColor

mxCellMarker.prototype.getMarkerColor = function(evt,
state,
isValid)

Returns the valid- or invalidColor depending on the value of isValid.  The given mxCellState is ignored by this implementation.

+ +

getState

mxCellMarker.prototype.getState = function(me)

Uses getCell, getStateToMark and intersects to return the mxCellState for the given mxMouseEvent.

+ +

getCell

mxCellMarker.prototype.getCell = function(me)

Returns the mxCell for the given event and cell.  This returns the given cell.

+ +

getStateToMark

mxCellMarker.prototype.getStateToMark = function(state)

Returns the mxCellState to be marked for the given mxCellState under the mouse.  This returns the given state.

+ +

intersects

mxCellMarker.prototype.intersects = function(state,
me)

Returns true if the given coordinate pair intersects the given state.  This returns true if the hotspot is 0 or the coordinates are inside the hotspot for the given cell state.

+ +

destroy

mxCellMarker.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.

+ +
+ + + + + + + + + + +
function mxCellMarker(graph,
validColor,
invalidColor,
hotspot)
Constructs a new cell marker.
mxCellMarker.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxCellMarker.prototype.enabled
Specifies if the marker is enabled.
mxCellMarker.prototype.hotspot
Specifies the portion of the width and height that should trigger a highlight.
mxCellMarker.prototype.hotspotEnabled
Specifies if the hotspot is enabled.
mxCellMarker.prototype.validColor
Holds the valid marker color.
mxCellMarker.prototype.invalidColor
Holds the invalid marker color.
mxCellMarker.prototype.currentColor
Holds the current marker color.
mxCellMarker.prototype.validState
Holds the marked mxCellState if it is valid.
Represents the current state of a cell in a given mxGraphView.
mxCellMarker.prototype.markedState
Holds the marked mxCellState.
mxCellMarker.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxCellMarker.prototype.isEnabled = function()
Returns true if events are handled.
mxCellMarker.prototype.setHotspot = function(hotspot)
Sets the hotspot.
mxCellMarker.prototype.getHotspot = function()
Returns the hotspot.
mxCellMarker.prototype.setHotspotEnabled = function(enabled)
Specifies whether the hotspot should be used in intersects.
mxCellMarker.prototype.intersects = function(state,
me)
Returns true if the given coordinate pair intersects the given state.
mxCellMarker.prototype.isHotspotEnabled = function()
Returns true if hotspot is used in intersects.
mxCellMarker.prototype.hasValidState = function()
Returns true if validState is not null.
mxCellMarker.prototype.getValidState = function()
Returns the validState.
mxCellMarker.prototype.getMarkedState = function()
Returns the markedState.
mxCellMarker.prototype.reset = function()
Resets the state of the cell marker.
mxCellMarker.prototype.process = function(me)
Processes the given event and cell and marks the state returned by getState with the color returned by getMarkerColor.
mxCellMarker.prototype.getState = function(me)
Uses getCell, getStateToMark and intersects to return the mxCellState for the given mxMouseEvent.
mxCellMarker.prototype.getMarkerColor = function(evt,
state,
isValid)
Returns the valid- or invalidColor depending on the value of isValid.
mxCellMarker.prototype.markCell = function(cell,
color)
Marks the given cell using the given color, or validColor if no color is specified.
mxCellMarker.prototype.mark = function()
Marks the markedState and fires a mark event.
mxCellMarker.prototype.unmark = function()
Hides the marker and fires a mark event.
mxCellMarker.prototype.isValidState = function(state)
Returns true if the given mxCellState is a valid state.
mxCellMarker.prototype.getCell = function(me)
Returns the mxCell for the given event and cell.
mxCellMarker.prototype.getStateToMark = function(state)
Returns the mxCellState to be marked for the given mxCellState under the mouse.
Base class for all mouse events in mxGraph.
Cells are the elements of the graph model.
mxCellMarker.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
Specifies the default valid colorr.
Specifies the default invalid color.
Defines the portion of the cell which is to be used as a connectable region.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxCellTracker-js.html b/docs/js-api/files/handler/mxCellTracker-js.html new file mode 100644 index 000000000..1c6e67de8 --- /dev/null +++ b/docs/js-api/files/handler/mxCellTracker-js.html @@ -0,0 +1,92 @@ + + +mxCellTracker + + + + + + + + + +

mxCellTracker

Event handler that highlights cells.  Inherits from mxCellMarker.

Example

new mxCellTracker(graph, '#00FF00');

For detecting dragEnter, dragOver and dragLeave on cells, the following code can be used:

graph.addMouseListener(
+{
+  cell: null,
+  mouseDown: function(sender, me) { },
+  mouseMove: function(sender, me)
+  {
+    var tmp = me.getCell();
+
+    if (tmp != this.cell)
+    {
+      if (this.cell != null)
+      {
+        this.dragLeave(me.getEvent(), this.cell);
+      }
+
+      this.cell = tmp;
+
+      if (this.cell != null)
+      {
+        this.dragEnter(me.getEvent(), this.cell);
+      }
+    }
+
+    if (this.cell != null)
+    {
+      this.dragOver(me.getEvent(), this.cell);
+    }
+  },
+  mouseUp: function(sender, me) { },
+  dragEnter: function(evt, cell)
+  {
+    mxLog.debug('dragEnter', cell.value);
+  },
+  dragOver: function(evt, cell)
+  {
+    mxLog.debug('dragOver', cell.value);
+  },
+  dragLeave: function(evt, cell)
+  {
+    mxLog.debug('dragLeave', cell.value);
+  }
+});
Summary
mxCellTrackerEvent handler that highlights cells.
Functions
mxCellTrackerConstructs an event handler that highlights cells.
mouseDownIgnores the event.
mouseMoveHandles the event by highlighting the cell under the mousepointer if it is over the hotspot region of the cell.
mouseUpHandles the event by reseting the highlight.
destroyDestroys the object and all its resources and DOM nodes.
+ +

Functions

+ +

mxCellTracker

function mxCellTracker(graph,
color,
funct)

Constructs an event handler that highlights cells.

Parameters

graphReference to the enclosing mxGraph.
colorColor of the highlight.  Default is blue.
functOptional JavaScript function that is used to override mxCellMarker.getCell.
+ +

mouseDown

mxCellTracker.prototype.mouseDown = function(sender,
me)

Ignores the event.  The event is not consumed.

+ +

mouseMove

mxCellTracker.prototype.mouseMove = function(sender,
me)

Handles the event by highlighting the cell under the mousepointer if it is over the hotspot region of the cell.

+ +

mouseUp

mxCellTracker.prototype.mouseUp = function(sender,
me)

Handles the event by reseting the highlight.

+ +

destroy

mxCellTracker.prototype.destroy = function()

Destroys the object and all its resources and DOM nodes.  This doesn’t normally need to be called.  It is called automatically when the window unloads.

+ +
+ + + + + + + + + + +
function mxCellTracker(graph,
color,
funct)
Constructs an event handler that highlights cells.
mxCellTracker.prototype.mouseDown = function(sender,
me)
Ignores the event.
mxCellTracker.prototype.mouseMove = function(sender,
me)
Handles the event by highlighting the cell under the mousepointer if it is over the hotspot region of the cell.
mxCellTracker.prototype.mouseUp = function(sender,
me)
Handles the event by reseting the highlight.
mxCellTracker.prototype.destroy = function()
Destroys the object and all its resources and DOM nodes.
A helper class to process mouse locations and highlight cells.
Extends mxEventSource to implement a graph component for the browser.
mxCellMarker.prototype.getCell = function(me)
Returns the mxCell for the given event and cell.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxConnectionHandler-js.html b/docs/js-api/files/handler/mxConnectionHandler-js.html new file mode 100644 index 000000000..6db79cef5 --- /dev/null +++ b/docs/js-api/files/handler/mxConnectionHandler-js.html @@ -0,0 +1,202 @@ + + +mxConnectionHandler + + + + + + + + + +

mxConnectionHandler

Graph event handler that creates new connections.  Uses <mxTerminalMarker> for finding and highlighting the source and target vertices and factoryMethod to create the edge instance.  This handler is built-into <mxGraph.connectionHandler> and enabled using mxGraph.setConnectable.

Example

new mxConnectionHandler(graph, function(source, target, style)
+{
+  edge = new mxCell('', new mxGeometry());
+  edge.setEdge(true);
+  edge.setStyle(style);
+  edge.geometry.relative = true;
+  return edge;
+});

Here is an alternative solution that just sets a specific user object for new edges by overriding insertEdge.

mxConnectionHandlerInsertEdge = mxConnectionHandler.prototype.insertEdge;
+mxConnectionHandler.prototype.insertEdge = function(parent, id, value, source, target, style)
+{
+  value = 'Test';
+
+  return mxConnectionHandlerInsertEdge.apply(this, arguments);
+};

Using images to trigger connections

This handler uses mxTerminalMarker to find the source and target cell for the new connection and creates a new edge using connect.  The new edge is created using createEdge which in turn uses factoryMethod or creates a new default edge.

The handler uses a “highlight-paradigm” for indicating if a cell is being used as a source or target terminal, as seen in MS Visio and other products.  In order to allow both, moving and connecting cells at the same time, mxConstants.DEFAULT_HOTSPOT is used in the handler to determine the hotspot of a cell, that is, the region of the cell which is used to trigger a new connection.  The constant is a value between 0 and 1 that specifies the amount of the width and height around the center to be used for the hotspot of a cell and its default value is 0.5.  In addition, mxConstants.MIN_HOTSPOT_SIZE defines the minimum number of pixels for the width and height of the hotspot.

This solution, while standards compliant, may be somewhat confusing because there is no visual indicator for the hotspot and the highlight is seen to switch on and off while the mouse is being moved in and out.  Furthermore, this paradigm does not allow to create different connections depending on the highlighted hotspot as there is only one hotspot per cell and it normally does not allow cells to be moved and connected at the same time as there is no clear indication of the connectable area of the cell.

To come across these issues, the handle has an additional createIcons hook with a default implementation that allows to create one icon to be used to trigger new connections.  If this icon is specified, then new connections can only be created if the image is clicked while the cell is being highlighted.  The createIcons hook may be overridden to create more than one mxImageShape for creating new connections, but the default implementation supports one image and is used as follows:

In order to display the “connect image” whenever the mouse is over the cell, an DEFAULT_HOTSPOT of 1 should be used:

mxConstants.DEFAULT_HOTSPOT = 1;

In order to avoid confusion with the highlighting, the highlight color should not be used with a connect image:

mxConstants.HIGHLIGHT_COLOR = null;

To install the image, the connectImage field of the mxConnectionHandler must be assigned a new mxImage instance:

mxConnectionHandler.prototype.connectImage = new mxImage('images/green-dot.gif', 14, 14);

This will use the green-dot.gif with a width and height of 14 pixels as the image to trigger new connections.  In createIcons the icon field of the handler will be set in order to remember the icon that has been clicked for creating the new connection.  This field will be available under selectedIcon in the connect method, which may be overridden to take the icon that triggered the new connection into account.  This is useful if more than one icon may be used to create a connection.

Summary
mxConnectionHandlerGraph event handler that creates new connections.
Events
mxEvent.CONNECTFires between begin- and endUpdate in connect.
mxConnectionHandlerConstructs an event handler that connects vertices using the specified factory method to create the new edges.
graphReference to the enclosing mxGraph.
factoryMethodFunction that is used for creating new edges.
moveIconFrontSpecifies if icons should be displayed inside the graph container instead of the overlay pane.
moveIconBackSpecifies if icons should be moved to the back of the overlay pane.
connectImagemxImage that is used to trigger the creation of a new connection.
targetConnectImageSpecifies if the connect icon should be centered on the target state while connections are being previewed.
enabledSpecifies if events are handled.
selectSpecifies if new edges should be selected.
createTargetSpecifies if createTargetVertex should be called if no target was under the mouse for the new connection.
markerHolds the <mxTerminalMarker> used for finding source and target cells.
constraintHandlerHolds the mxConstraintHandler used for drawing and highlighting constraints.
errorHolds the current validation error while connections are being created.
waypointsEnabledSpecifies if single clicks should add waypoints on the new edge.
tapAndHoldEnabledSpecifies if tap and hold should be used for starting connections on touch-based devices.
tapAndHoldDelaySpecifies the time for a tap and hold.
tapAndHoldInProgressTrue if the timer for tap and hold events is running.
tapAndHoldValidTrue as long as the timer is running and the touch events stay within the given tapAndHoldTolerance.
tapAndHoldToleranceSpecifies the tolerance for a tap and hold.
initialTouchYHolds the x-coordinate of the intial touch event for tap and hold.
initialTouchYHolds the y-coordinate of the intial touch event for tap and hold.
ignoreMouseDownSpecifies if the connection handler should ignore the state of the mouse button when highlighting the source.
firstHolds the mxPoint where the mouseDown took place while the handler is active.
connectIconOffsetHolds the offset for connect icons during connection preview.
edgeStateOptional mxCellState that represents the preview edge while the handler is active.
changeHandlerHolds the change event listener for later removal.
drillHandlerHolds the drill event listener for later removal.
mouseDownCounterCounts the number of mouseDown events since the start.
movePreviewAwaySwitch to enable moving the preview away from the mousepointer.
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
isCreateTargetReturns createTarget.
setCreateTargetSets createTarget.
createShapeCreates the preview shape for new connections.
initInitializes the shapes required for this connection handler.
isConnectableCellReturns true if the given cell is connectable.
createMarkerCreates and returns the mxCellMarker used in marker.
startStarts a new connection for the given state and coordinates.
isConnectingReturns true if the source terminal has been clicked and a new connection is currently being previewed.
isValidSourceReturns mxGraph.isValidSource for the given source terminal.
isValidTargetReturns true.
validateConnectionReturns the error message or an empty string if the connection for the given source target pair is not valid.
getConnectImageHook to return the mxImage used for the connection icon of the given mxCellState.
isMoveIconToFrontForStateReturns true if the state has a HTML label in the graph’s container, otherwise it returns moveIconFront.
createIconsCreates the array mxImageShapes that represent the connect icons for the given mxCellState.
redrawIconsRedraws the given array of mxImageShapes.
redrawIconsRedraws the given array of mxImageShapes.
destroyIconsDestroys the given array of mxImageShapes.
isStartEventReturns true if the given mouse down event should start this handler.
mouseDownHandles the event by initiating a new connection.
tapAndHoldHandles the mxMouseEvent by highlighting the mxCellState.
isImmediateConnectSourceReturns true if a tap on the given source state should immediately start connecting.
createEdgeStateHook to return an mxCellState which may be used during the preview.
updateCurrentStateUpdates the current state for a given mouse move event by using the marker.
convertWaypointConverts the given point from screen coordinates to model coordinates.
mouseMoveHandles the event by updating the preview edge or by highlighting a possible source or target terminal.
getTargetPerimeterPointReturns the perimeter point for the given target state.
getSourcePerimeterPointHook to update the icon position(s) based on a mouseOver event.
updateIconsHook to update the icon position(s) based on a mouseOver event.
isStopEventReturns true if the given mouse up event should stop this handler.
addWaypointAdds the waypoint for the given event to <waypoints>.
mouseUpHandles the event by inserting the new connection.
resetResets the state of this handler.
drawPreviewRedraws the preview edge using the color and width returned by getEdgeColor and getEdgeWidth.
getEdgeColorReturns the color used to draw the preview edge.
getEdgeWidthReturns the width used to draw the preview edge.
connectConnects the given source and target using a new edge.
selectCellsSelects the given edge after adding a new connection.
insertEdgeCreates, inserts and returns the new edge for the given parameters.
createTargetVertexHook method for creating new vertices on the fly if no target was under the mouse.
getAlignmentToleranceReturns the tolerance for aligning new targets to sources.
createEdgeCreates and returns a new edge using factoryMethod if one exists.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Events

+ +

mxEvent.CONNECT

Fires between begin- and endUpdate in connect.  The <code>cell</code> property contains the inserted edge, the <code>event</code> and <code>target</code> properties contain the respective arguments that were passed to connect.

+ +

mxConnectionHandler

function mxConnectionHandler(graph,
factoryMethod)

Constructs an event handler that connects vertices using the specified factory method to create the new edges.  Modify <mxConstants.ACTIVE_REGION> to setup the region on a cell which triggers the creation of a new connection or use connect icons as explained above.

Parameters

graphReference to the enclosing mxGraph.
factoryMethodOptional function to create the edge.  The function takes the source and target mxCell as the first and second argument and an optional cell style from the preview as the third argument.  It returns the mxCell that represents the new edge.
+ +

graph

mxConnectionHandler.prototype.graph

Reference to the enclosing mxGraph.

+ +

factoryMethod

mxConnectionHandler.prototype.factoryMethod

Function that is used for creating new edges.  The function takes the source and target mxCell as the first and second argument and returns a new mxCell that represents the edge.  This is used in createEdge.

+ +

moveIconFront

mxConnectionHandler.prototype.moveIconFront

Specifies if icons should be displayed inside the graph container instead of the overlay pane.  This is used for HTML labels on vertices which hide the connect icon.  This has precendence over moveIconBack when set to true.  Default is false.

+ +

moveIconBack

mxConnectionHandler.prototype.moveIconBack

Specifies if icons should be moved to the back of the overlay pane.  This can be set to true if the icons of the connection handler conflict with other handles, such as the vertex label move handle.  Default is false.

+ +

connectImage

mxConnectionHandler.prototype.connectImage

mxImage that is used to trigger the creation of a new connection.  This is used in createIcons.  Default is null.

+ +

targetConnectImage

mxConnectionHandler.prototype.targetConnectImage

Specifies if the connect icon should be centered on the target state while connections are being previewed.  Default is false.

+ +

enabled

mxConnectionHandler.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

select

mxConnectionHandler.prototype.select

Specifies if new edges should be selected.  Default is true.

+ +

createTarget

mxConnectionHandler.prototype.createTarget

Specifies if createTargetVertex should be called if no target was under the mouse for the new connection.  Setting this to true means the connection will be drawn as valid if no target is under the mouse, and createTargetVertex will be called before the connection is created between the source cell and the newly created vertex in createTargetVertex, which can be overridden to create a new target.  Default is false.

+ +

marker

mxConnectionHandler.prototype.marker

Holds the <mxTerminalMarker> used for finding source and target cells.

+ +

constraintHandler

mxConnectionHandler.prototype.constraintHandler

Holds the mxConstraintHandler used for drawing and highlighting constraints.

+ +

error

mxConnectionHandler.prototype.error

Holds the current validation error while connections are being created.

+ +

waypointsEnabled

mxConnectionHandler.prototype.waypointsEnabled

Specifies if single clicks should add waypoints on the new edge.  Default is false.

+ +

tapAndHoldEnabled

mxConnectionHandler.prototype.tapAndHoldEnabled

Specifies if tap and hold should be used for starting connections on touch-based devices.  Default is true.

+ +

tapAndHoldDelay

mxConnectionHandler.prototype.tapAndHoldDelay

Specifies the time for a tap and hold.  Default is 500 ms.

+ +

tapAndHoldInProgress

mxConnectionHandler.prototype.tapAndHoldInProgress

True if the timer for tap and hold events is running.

+ +

tapAndHoldValid

mxConnectionHandler.prototype.tapAndHoldValid

True as long as the timer is running and the touch events stay within the given tapAndHoldTolerance.

+ +

tapAndHoldTolerance

mxConnectionHandler.prototype.tapAndHoldTolerance

Specifies the tolerance for a tap and hold.  Default is 4 pixels.

+ +

initialTouchY

mxConnectionHandler.prototype.initialTouchY

Holds the x-coordinate of the intial touch event for tap and hold.

+ +

initialTouchY

mxConnectionHandler.prototype.initialTouchY

Holds the y-coordinate of the intial touch event for tap and hold.

+ +

ignoreMouseDown

mxConnectionHandler.prototype.ignoreMouseDown

Specifies if the connection handler should ignore the state of the mouse button when highlighting the source.  Default is false, that is, the handler only highlights the source if no button is being pressed.

+ +

first

mxConnectionHandler.prototype.first

Holds the mxPoint where the mouseDown took place while the handler is active.

+ +

connectIconOffset

mxConnectionHandler.prototype.connectIconOffset

Holds the offset for connect icons during connection preview.  Default is mxPoint(0, mxConstants.TOOLTIP_VERTICAL_OFFSET).  Note that placing the icon under the mouse pointer with an offset of (0,0) will affect hit detection.

+ +

edgeState

mxConnectionHandler.prototype.edgeState

Optional mxCellState that represents the preview edge while the handler is active.  This is created in createEdgeState.

+ +

changeHandler

mxConnectionHandler.prototype.changeHandler

Holds the change event listener for later removal.

+ +

drillHandler

mxConnectionHandler.prototype.drillHandler

Holds the drill event listener for later removal.

+ +

mouseDownCounter

mxConnectionHandler.prototype.mouseDownCounter

Counts the number of mouseDown events since the start.  The initial mouse down event counts as 1.

+ +

movePreviewAway

mxConnectionHandler.prototype.movePreviewAway

Switch to enable moving the preview away from the mousepointer.  This is required in browsers where the preview cannot be made transparent to events and if the built-in hit detection on the HTML elements in the page should be used.  Default is the value of mxClient.IS_IE.

+ +

isEnabled

mxConnectionHandler.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxConnectionHandler.prototype.setEnabled = function(enabled)

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

isCreateTarget

mxConnectionHandler.prototype.isCreateTarget = function()

Returns createTarget.

+ +

setCreateTarget

mxConnectionHandler.prototype.setCreateTarget = function(value)

Sets createTarget.

+ +

createShape

mxConnectionHandler.prototype.createShape = function()

Creates the preview shape for new connections.

+ +

init

mxConnectionHandler.prototype.init = function()

Initializes the shapes required for this connection handler.  This should be invoked if <mxGraph.container> is assigned after the connection handler has been created.

+ +

isConnectableCell

mxConnectionHandler.prototype.isConnectableCell = function(cell)

Returns true if the given cell is connectable.  This is a hook to disable floating connections.  This implementation returns true.

+ +

createMarker

mxConnectionHandler.prototype.createMarker = function()

Creates and returns the mxCellMarker used in marker.

+ +

start

mxConnectionHandler.prototype.start = function(state,
x,
y,
edgeState)

Starts a new connection for the given state and coordinates.

+ +

isConnecting

mxConnectionHandler.prototype.isConnecting = function()

Returns true if the source terminal has been clicked and a new connection is currently being previewed.

+ +

isValidSource

mxConnectionHandler.prototype.isValidSource = function(cell)

Returns mxGraph.isValidSource for the given source terminal.

Parameters

cellmxCell that represents the source terminal.
+ +

isValidTarget

mxConnectionHandler.prototype.isValidTarget = function(cell)

Returns true.  The call to mxGraph.isValidTarget is implicit by calling mxGraph.getEdgeValidationError in validateConnection.  This is an additional hook for disabling certain targets in this specific handler.

Parameters

cellmxCell that represents the target terminal.
+ +

validateConnection

mxConnectionHandler.prototype.validateConnection = function(source,
target)

Returns the error message or an empty string if the connection for the given source target pair is not valid.  Otherwise it returns null.  This implementation uses mxGraph.getEdgeValidationError.

Parameters

sourcemxCell that represents the source terminal.
targetmxCell that represents the target terminal.
+ +

getConnectImage

mxConnectionHandler.prototype.getConnectImage = function(state)

Hook to return the mxImage used for the connection icon of the given mxCellState.  This implementation returns connectImage.

Parameters

statemxCellState whose connect image should be returned.
+ +

isMoveIconToFrontForState

mxConnectionHandler.prototype.isMoveIconToFrontForState = function(state)

Returns true if the state has a HTML label in the graph’s container, otherwise it returns moveIconFront.

Parameters

statemxCellState whose connect icons should be returned.
+ +

createIcons

mxConnectionHandler.prototype.createIcons = function(state)

Creates the array mxImageShapes that represent the connect icons for the given mxCellState.

Parameters

statemxCellState whose connect icons should be returned.
+ +

redrawIcons

mxConnectionHandler.prototype.redrawIcons = function(icons,
state)

Redraws the given array of mxImageShapes.

Parameters

iconsOptional array of mxImageShapes to be redrawn.
+ +

redrawIcons

Redraws the given array of mxImageShapes.

Parameters

iconsOptional array of mxImageShapes to be redrawn.
+ +

destroyIcons

mxConnectionHandler.prototype.destroyIcons = function(icons)

Destroys the given array of mxImageShapes.

Parameters

iconsOptional array of mxImageShapes to be destroyed.
+ +

isStartEvent

mxConnectionHandler.prototype.isStartEvent = function(me)

Returns true if the given mouse down event should start this handler.  The This implementation returns true if the event does not force marquee selection, and the currentConstraint and currentFocus of the constraintHandler are not null, or <previous> and error are not null and <icons> is null or <icons> and <icon> are not null.

+ +

mouseDown

mxConnectionHandler.prototype.mouseDown = function(sender,
me)

Handles the event by initiating a new connection.

+ +

tapAndHold

mxConnectionHandler.prototype.tapAndHold = function(me,
state)

Handles the mxMouseEvent by highlighting the mxCellState.

Parameters

memxMouseEvent that represents the touch event.
stateOptional mxCellState that is associated with the event.
+ +

isImmediateConnectSource

mxConnectionHandler.prototype.isImmediateConnectSource = function(state)

Returns true if a tap on the given source state should immediately start connecting.  This implementation returns true if the state is not movable in the graph.

+ +

createEdgeState

mxConnectionHandler.prototype.createEdgeState = function(me)

Hook to return an mxCellState which may be used during the preview.  This implementation returns null.

Use the following code to create a preview for an existing edge style

[code] graph.connectionHandler.createEdgeState = function(me) { var edge = graph.createEdge(null, null, null, null, null, ‘edgeStyle=elbowEdgeStyle’);

return new mxCellState(this.graph.view, edge, this.graph.getCellStyle(edge)); }; [/code]

+ +

updateCurrentState

mxConnectionHandler.prototype.updateCurrentState = function(me)

Updates the current state for a given mouse move event by using the marker.

+ +

convertWaypoint

mxConnectionHandler.prototype.convertWaypoint = function(point)

Converts the given point from screen coordinates to model coordinates.

+ +

mouseMove

mxConnectionHandler.prototype.mouseMove = function(sender,
me)

Handles the event by updating the preview edge or by highlighting a possible source or target terminal.

+ +

getTargetPerimeterPoint

mxConnectionHandler.prototype.getTargetPerimeterPoint = function(state,
me)

Returns the perimeter point for the given target state.

Parameters

statemxCellState that represents the target cell state.
memxMouseEvent that represents the mouse move.
+ +

getSourcePerimeterPoint

mxConnectionHandler.prototype.getSourcePerimeterPoint = function(state,
next,
me)

Hook to update the icon position(s) based on a mouseOver event.  This is an empty implementation.

Parameters

statemxCellState that represents the target cell state.
nextmxPoint that represents the next point along the previewed edge.
memxMouseEvent that represents the mouse move.
+ +

updateIcons

mxConnectionHandler.prototype.updateIcons = function(state,
icons,
me)

Hook to update the icon position(s) based on a mouseOver event.  This is an empty implementation.

Parameters

statemxCellState under the mouse.
iconsArray of currently displayed icons.
memxMouseEvent that contains the mouse event.
+ +

isStopEvent

mxConnectionHandler.prototype.isStopEvent = function(me)

Returns true if the given mouse up event should stop this handler.  The connection will be created if error is null.  Note that this is only called if waypointsEnabled is true.  This implemtation returns true if there is a cell state in the given event.

+ +

addWaypoint

mxConnectionHandler.prototype.addWaypointForEvent = function(me)

Adds the waypoint for the given event to <waypoints>.

+ +

mouseUp

mxConnectionHandler.prototype.mouseUp = function(sender,
me)

Handles the event by inserting the new connection.

+ +

reset

mxConnectionHandler.prototype.reset = function()

Resets the state of this handler.

+ +

drawPreview

mxConnectionHandler.prototype.drawPreview = function()

Redraws the preview edge using the color and width returned by getEdgeColor and getEdgeWidth.

+ +

getEdgeColor

mxConnectionHandler.prototype.getEdgeColor = function(valid)

Returns the color used to draw the preview edge.  This returns green if there is no edge validation error and red otherwise.

Parameters

validBoolean indicating if the color for a valid edge should be returned.
+ +

getEdgeWidth

mxConnectionHandler.prototype.getEdgeWidth = function(valid)

Returns the width used to draw the preview edge.  This returns 3 if there is no edge validation error and 1 otherwise.

Parameters

validBoolean indicating if the width for a valid edge should be returned.
+ +

connect

mxConnectionHandler.prototype.connect = function(source,
target,
evt,
dropTarget)

Connects the given source and target using a new edge.  This implementation uses createEdge to create the edge.

Parameters

sourcemxCell that represents the source terminal.
targetmxCell that represents the target terminal.
evtMousedown event of the connect gesture.
dropTargetmxCell that represents the cell under the mouse when it was released.
+ +

selectCells

mxConnectionHandler.prototype.selectCells = function(edge,
target)

Selects the given edge after adding a new connection.  The target argument contains the target vertex if one has been inserted.

+ +

insertEdge

mxConnectionHandler.prototype.insertEdge = function(parent,
id,
value,
source,
target,
style)

Creates, inserts and returns the new edge for the given parameters.  This implementation does only use createEdge if factoryMethod is defined, otherwise mxGraph.insertEdge will be used.

+ +

createTargetVertex

mxConnectionHandler.prototype.createTargetVertex = function(evt,
source)

Hook method for creating new vertices on the fly if no target was under the mouse.  This is only called if createTarget is true and returns null.

Parameters

evtMousedown event of the connect gesture.
sourcemxCell that represents the source terminal.
+ +

getAlignmentTolerance

mxConnectionHandler.prototype.getAlignmentTolerance = function()

Returns the tolerance for aligning new targets to sources.

+ +

createEdge

mxConnectionHandler.prototype.createEdge = function(value,
source,
target,
style)

Creates and returns a new edge using factoryMethod if one exists.  If no factory method is defined, then a new default edge is returned.  The source and target arguments are informal, the actual connection is setup later by the caller of this function.

Parameters

valueValue to be used for creating the edge.
sourcemxCell that represents the source terminal.
targetmxCell that represents the target terminal.
styleOptional style from the preview edge.
+ +

destroy

mxConnectionHandler.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.  This should be called on all instances.  It is called automatically for the built-in instance created for each mxGraph.

+ +
+ + + + + + + + + + +
mxConnectionHandler.prototype.connect = function(source,
target,
evt,
dropTarget)
Connects the given source and target using a new edge.
function mxConnectionHandler(graph,
factoryMethod)
Constructs an event handler that connects vertices using the specified factory method to create the new edges.
mxConnectionHandler.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxConnectionHandler.prototype.factoryMethod
Function that is used for creating new edges.
mxConnectionHandler.prototype.moveIconFront
Specifies if icons should be displayed inside the graph container instead of the overlay pane.
mxConnectionHandler.prototype.moveIconBack
Specifies if icons should be moved to the back of the overlay pane.
mxConnectionHandler.prototype.connectImage
mxImage that is used to trigger the creation of a new connection.
Encapsulates the URL, width and height of an image.
mxConnectionHandler.prototype.targetConnectImage
Specifies if the connect icon should be centered on the target state while connections are being previewed.
mxConnectionHandler.prototype.enabled
Specifies if events are handled.
mxConnectionHandler.prototype.select
Specifies if new edges should be selected.
mxConnectionHandler.prototype.createTarget
Specifies if createTargetVertex should be called if no target was under the mouse for the new connection.
mxConnectionHandler.prototype.createTargetVertex = function(evt,
source)
Hook method for creating new vertices on the fly if no target was under the mouse.
mxConnectionHandler.prototype.marker
Holds the mxTerminalMarker used for finding source and target cells.
mxConnectionHandler.prototype.constraintHandler
Holds the mxConstraintHandler used for drawing and highlighting constraints.
Handles constraints on connection targets.
mxConnectionHandler.prototype.error
Holds the current validation error while connections are being created.
mxConnectionHandler.prototype.waypointsEnabled
Specifies if single clicks should add waypoints on the new edge.
mxConnectionHandler.prototype.tapAndHoldEnabled
Specifies if tap and hold should be used for starting connections on touch-based devices.
mxConnectionHandler.prototype.tapAndHoldDelay
Specifies the time for a tap and hold.
mxConnectionHandler.prototype.tapAndHoldInProgress
True if the timer for tap and hold events is running.
mxConnectionHandler.prototype.tapAndHoldValid
True as long as the timer is running and the touch events stay within the given tapAndHoldTolerance.
mxConnectionHandler.prototype.tapAndHoldTolerance
Specifies the tolerance for a tap and hold.
mxConnectionHandler.prototype.initialTouchY
Holds the x-coordinate of the intial touch event for tap and hold.
mxConnectionHandler.prototype.ignoreMouseDown
Specifies if the connection handler should ignore the state of the mouse button when highlighting the source.
mxConnectionHandler.prototype.first
Holds the mxPoint where the mouseDown took place while the handler is active.
Implements a 2-dimensional vector with double precision coordinates.
mxConnectionHandler.prototype.connectIconOffset
Holds the offset for connect icons during connection preview.
mxConnectionHandler.prototype.edgeState
Optional mxCellState that represents the preview edge while the handler is active.
Represents the current state of a cell in a given mxGraphView.
mxConnectionHandler.prototype.changeHandler
Holds the change event listener for later removal.
mxConnectionHandler.prototype.drillHandler
Holds the drill event listener for later removal.
mxConnectionHandler.prototype.mouseDownCounter
Counts the number of mouseDown events since the start.
mxConnectionHandler.prototype.movePreviewAway
Switch to enable moving the preview away from the mousepointer.
mxConnectionHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxConnectionHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxConnectionHandler.prototype.isCreateTarget = function()
Returns createTarget.
mxConnectionHandler.prototype.setCreateTarget = function(value)
Sets createTarget.
mxConnectionHandler.prototype.createShape = function()
Creates the preview shape for new connections.
mxConnectionHandler.prototype.init = function()
Initializes the shapes required for this connection handler.
mxConnectionHandler.prototype.isConnectableCell = function(cell)
Returns true if the given cell is connectable.
mxConnectionHandler.prototype.createMarker = function()
Creates and returns the mxCellMarker used in marker.
A helper class to process mouse locations and highlight cells.
mxConnectionHandler.prototype.start = function(state,
x,
y,
edgeState)
Starts a new connection for the given state and coordinates.
mxConnectionHandler.prototype.isConnecting = function()
Returns true if the source terminal has been clicked and a new connection is currently being previewed.
mxConnectionHandler.prototype.isValidSource = function(cell)
Returns mxGraph.isValidSource for the given source terminal.
mxGraph.prototype.isValidSource = function(cell)
Returns true if the given cell is a valid source for new connections.
mxConnectionHandler.prototype.isValidTarget = function(cell)
Returns true.
mxConnectionHandler.prototype.validateConnection = function(source,
target)
Returns the error message or an empty string if the connection for the given source target pair is not valid.
mxConnectionHandler.prototype.getConnectImage = function(state)
Hook to return the mxImage used for the connection icon of the given mxCellState.
mxConnectionHandler.prototype.isMoveIconToFrontForState = function(state)
Returns true if the state has a HTML label in the graph’s container, otherwise it returns moveIconFront.
mxConnectionHandler.prototype.createIcons = function(state)
Creates the array mxImageShapes that represent the connect icons for the given mxCellState.
Extends mxShape to implement an image shape.
mxConnectionHandler.prototype.redrawIcons = function(icons,
state)
Redraws the given array of mxImageShapes.
mxConnectionHandler.prototype.destroyIcons = function(icons)
Destroys the given array of mxImageShapes.
mxConnectionHandler.prototype.isStartEvent = function(me)
Returns true if the given mouse down event should start this handler.
mxConnectionHandler.prototype.mouseDown = function(sender,
me)
Handles the event by initiating a new connection.
mxConnectionHandler.prototype.tapAndHold = function(me,
state)
Handles the mxMouseEvent by highlighting the mxCellState.
Base class for all mouse events in mxGraph.
mxConnectionHandler.prototype.isImmediateConnectSource = function(state)
Returns true if a tap on the given source state should immediately start connecting.
mxConnectionHandler.prototype.createEdgeState = function(me)
Hook to return an mxCellState which may be used during the preview.
mxConnectionHandler.prototype.updateCurrentState = function(me)
Updates the current state for a given mouse move event by using the marker.
mxConnectionHandler.prototype.convertWaypoint = function(point)
Converts the given point from screen coordinates to model coordinates.
mxConnectionHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the preview edge or by highlighting a possible source or target terminal.
mxConnectionHandler.prototype.getTargetPerimeterPoint = function(state,
me)
Returns the perimeter point for the given target state.
mxConnectionHandler.prototype.getSourcePerimeterPoint = function(state,
next,
me)
Hook to update the icon position(s) based on a mouseOver event.
mxConnectionHandler.prototype.updateIcons = function(state,
icons,
me)
Hook to update the icon position(s) based on a mouseOver event.
mxConnectionHandler.prototype.isStopEvent = function(me)
Returns true if the given mouse up event should stop this handler.
mxConnectionHandler.prototype.addWaypointForEvent = function(me)
Adds the waypoint for the given event to waypoints.
mxConnectionHandler.prototype.mouseUp = function(sender,
me)
Handles the event by inserting the new connection.
mxConnectionHandler.prototype.reset = function()
Resets the state of this handler.
mxConnectionHandler.prototype.drawPreview = function()
Redraws the preview edge using the color and width returned by getEdgeColor and getEdgeWidth.
mxConnectionHandler.prototype.getEdgeColor = function(valid)
Returns the color used to draw the preview edge.
mxConnectionHandler.prototype.getEdgeWidth = function(valid)
Returns the width used to draw the preview edge.
mxConnectionHandler.prototype.selectCells = function(edge,
target)
Selects the given edge after adding a new connection.
mxConnectionHandler.prototype.insertEdge = function(parent,
id,
value,
source,
target,
style)
Creates, inserts and returns the new edge for the given parameters.
mxConnectionHandler.prototype.getAlignmentTolerance = function()
Returns the tolerance for aligning new targets to sources.
mxConnectionHandler.prototype.createEdge = function(value,
source,
target,
style)
Creates and returns a new edge using factoryMethod if one exists.
mxConnectionHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxGraph.prototype.setConnectable = function(connectable)
Specifies if the graph should allow new connections.
Defines the portion of the cell which is to be used as a connectable region.
Defines the minimum size in pixels of the portion of the cell which is to be used as a connectable region.
Cells are the elements of the graph model.
Defines the vertical offset for the tooltip.
IS_IE: navigator.userAgent.indexOf('MSIE') >
True if the current browser is Internet Explorer.
mxGraph.prototype.isValidTarget = function(cell)
Returns isValidSource for the given cell.
mxGraph.prototype.getEdgeValidationError = function(edge,
source,
target)
Returns the validation error message to be displayed when inserting or changing an edges’ connectivity.
mxGraph.prototype.insertEdge = function(parent,
id,
value,
source,
target,
style)
Adds a new edge into the given parent mxCell using value as the user object and the given source and target as the terminals of the new edge.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxConstraintHandler-js.html b/docs/js-api/files/handler/mxConstraintHandler-js.html new file mode 100644 index 000000000..acbafa6dd --- /dev/null +++ b/docs/js-api/files/handler/mxConstraintHandler-js.html @@ -0,0 +1,69 @@ + + +mxConstraintHandler + + + + + + + + + +

mxConstraintHandler

Handles constraints on connection targets.  This class is in charge of showing fixed points when the mouse is over a vertex and handles constraints to establish new connections.

Summary
mxConstraintHandlerHandles constraints on connection targets.
Functions
mxConstraintHandlerConstructs an new constraint handler.
Variables
pointImagemxImage to be used as the image for fixed connection points.
graphReference to the enclosing mxGraph.
enabledSpecifies if events are handled.
highlightColorSpecifies the color for the highlight.
Functions
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
resetResets the state of this handler.
getToleranceReturns the tolerance to be used for intersecting connection points.
getImageForConstraintReturns the tolerance to be used for intersecting connection points.
updateUpdates the state of this handler based on the given mxMouseEvent.
destroyDestroy this handler.
+ +

Functions

+ +

mxConstraintHandler

function mxConstraintHandler(graph)

Constructs an new constraint handler.

Parameters

graphReference to the enclosing mxGraph.
factoryMethodOptional function to create the edge.  The function takes the source and target mxCell as the first and second argument and returns the mxCell that represents the new edge.
+ +

Variables

+ +

pointImage

mxConstraintHandler.prototype.pointImage

mxImage to be used as the image for fixed connection points.

+ +

graph

mxConstraintHandler.prototype.graph

Reference to the enclosing mxGraph.

+ +

enabled

mxConstraintHandler.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

highlightColor

mxConstraintHandler.prototype.highlightColor

Specifies the color for the highlight.  Default is mxConstants.DEFAULT_VALID_COLOR.

+ +

Functions

+ +

isEnabled

mxConstraintHandler.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxConstraintHandler.prototype.setEnabled = function(enabled)

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

reset

mxConstraintHandler.prototype.reset = function()

Resets the state of this handler.

+ +

getTolerance

mxConstraintHandler.prototype.getTolerance = function()

Returns the tolerance to be used for intersecting connection points.

+ +

getImageForConstraint

mxConstraintHandler.prototype.getImageForConstraint = function(state,
constraint,
point)

Returns the tolerance to be used for intersecting connection points.

+ +

update

mxConstraintHandler.prototype.update = function(me,
source)

Updates the state of this handler based on the given mxMouseEvent.

+ +

destroy

mxConstraintHandler.prototype.destroy = function()

Destroy this handler.

+ +
+ + + + + + + + + + +
function mxConstraintHandler(graph)
Constructs an new constraint handler.
mxConstraintHandler.prototype.pointImage
mxImage to be used as the image for fixed connection points.
Encapsulates the URL, width and height of an image.
mxConstraintHandler.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxConstraintHandler.prototype.enabled
Specifies if events are handled.
mxConstraintHandler.prototype.highlightColor
Specifies the color for the highlight.
mxConstraintHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxConstraintHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxConstraintHandler.prototype.reset = function()
Resets the state of this handler.
mxConstraintHandler.prototype.getTolerance = function()
Returns the tolerance to be used for intersecting connection points.
mxConstraintHandler.prototype.getImageForConstraint = function(state,
constraint,
point)
Returns the tolerance to be used for intersecting connection points.
mxConstraintHandler.prototype.update = function(me,
source)
Updates the state of this handler based on the given mxMouseEvent.
Base class for all mouse events in mxGraph.
mxConstraintHandler.prototype.destroy = function()
Destroy this handler.
Cells are the elements of the graph model.
Specifies the default valid colorr.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxEdgeHandler-js.html b/docs/js-api/files/handler/mxEdgeHandler-js.html new file mode 100644 index 000000000..7d8aca9e0 --- /dev/null +++ b/docs/js-api/files/handler/mxEdgeHandler-js.html @@ -0,0 +1,164 @@ + + +mxEdgeHandler + + + + + + + + + +

mxEdgeHandler

Graph event handler that reconnects edges and modifies control points and the edge label location.  Uses <mxTerminalMarker> for finding and highlighting new source and target vertices.  This handler is automatically created in mxGraph.createHandler for each selected edge.

To enable adding/removing control points, the following code can be used

mxEdgeHandler.prototype.addEnabled = true;
+mxEdgeHandler.prototype.removeEnabled = true;

Note: This experimental feature is not recommended for production use.

Summary
mxEdgeHandlerGraph event handler that reconnects edges and modifies control points and the edge label location.
Functions
mxEdgeHandlerConstructs an edge handler for the specified mxCellState.
Variables
graphReference to the enclosing mxGraph.
stateReference to the mxCellState being modified.
markerHolds the <mxTerminalMarker> which is used for highlighting terminals.
constraintHandlerHolds the mxConstraintHandler used for drawing and highlighting constraints.
errorHolds the current validation error while a connection is being changed.
shapeHolds the mxShape that represents the preview edge.
bendsHolds the mxShapes that represent the points.
labelShapeHolds the mxShape that represents the label position.
cloneEnabledSpecifies if cloning by control-drag is enabled.
addEnabledSpecifies if adding bends by shift-click is enabled.
removeEnabledSpecifies if removing bends by shift-click is enabled.
preferHtmlSpecifies if bends should be added to the graph container.
allowHandleBoundsCheckSpecifies if the bounds of handles should be used for hit-detection in IE Default is true.
snapToTerminalsSpecifies if waypoints should snap to the routing centers of terminals.
crispSpecifies if the edge handles should be rendered in crisp mode.
handleImageOptional mxImage to be used as handles.
toleranceOptional tolerance for hit-detection in getHandleForEvent.
Functions
initInitializes the shapes required for this edge handler.
isAddPointEventReturns true if the given event is a trigger to add a new point.
isRemovePointEventReturns true if the given event is a trigger to remove a point.
getSelectionPointsReturns the list of points that defines the selection stroke.
createSelectionShapeCreates the shape used to draw the selection border.
getSelectionColorReturns mxConstants.EDGE_SELECTION_COLOR.
getSelectionStrokeWidthReturns mxConstants.EDGE_SELECTION_STROKEWIDTH.
isSelectionDashedReturns <mxConstants.EDGE_SELECTION_DASHED>.
isConnectableCellReturns true if the given cell is connectable.
createMarkerCreates and returns the mxCellMarker used in marker.
validateConnectionReturns the error message or an empty string if the connection for the given source, target pair is not valid.
createBendsCreates and returns the bends used for modifying the edge.
isHandleEnabledCreates the shape used to display the given bend.
isHandleVisibleReturns true if the handle at the given index is visible.
createHandleShapeCreates the shape used to display the given bend.
initBendHelper method to initialize the given bend.
getHandleForEventReturns the index of the handle for the given event.
mouseDownHandles the event by checking if a special element of the handler was clicked, in which case the index parameter is non-null.
startStarts the handling of the mouse gesture.
clonePreviewStateReturns a clone of the current preview state for the given point and terminal.
getSnapToTerminalToleranceReturns the tolerance for the guides.
getPointForEventReturns the point for the given event.
getPreviewTerminalStateUpdates the given preview state taking into account the state of the constraint handler.
getPreviewPointsUpdates the given preview state taking into account the state of the constraint handler.
updatePreviewStateUpdates the given preview state taking into account the state of the constraint handler.
mouseMoveHandles the event by updating the preview.
mouseUpHandles the event to applying the previewed changes on the edge by using moveLabel, connect or changePoints.
resetResets the state of this handler.
setPreviewColorSets the color of the preview to the given value.
convertPointConverts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.
moveLabelChanges the coordinates for the label of the given edge.
connectChanges the terminal or terminal point of the given edge in the graph model.
changeTerminalPointChanges the terminal point of the given edge.
changePointsChanges the control points of the given edge in the graph model.
addPointAdds a control point for the given state and event.
removePointRemoves the control point at the given index from the given state.
getHandleFillColorReturns the fillcolor for the handle at the given index.
redrawRedraws the preview, and the bends- and label control points.
redrawInnerBendsUpdates and redraws the inner bends.
drawPreviewRedraws the preview.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Functions

+ +

mxEdgeHandler

function mxEdgeHandler(state)

Constructs an edge handler for the specified mxCellState.

Parameters

statemxCellState of the cell to be handled.
+ +

Variables

+ +

graph

mxEdgeHandler.prototype.graph

Reference to the enclosing mxGraph.

+ +

state

mxEdgeHandler.prototype.state

Reference to the mxCellState being modified.

+ +

marker

mxEdgeHandler.prototype.marker

Holds the <mxTerminalMarker> which is used for highlighting terminals.

+ +

constraintHandler

mxEdgeHandler.prototype.constraintHandler

Holds the mxConstraintHandler used for drawing and highlighting constraints.

+ +

error

mxEdgeHandler.prototype.error

Holds the current validation error while a connection is being changed.

+ +

shape

mxEdgeHandler.prototype.shape

Holds the mxShape that represents the preview edge.

+ +

bends

mxEdgeHandler.prototype.bends

Holds the mxShapes that represent the points.

+ +

labelShape

mxEdgeHandler.prototype.labelShape

Holds the mxShape that represents the label position.

+ +

cloneEnabled

mxEdgeHandler.prototype.cloneEnabled

Specifies if cloning by control-drag is enabled.  Default is true.

+ +

addEnabled

mxEdgeHandler.prototype.addEnabled

Specifies if adding bends by shift-click is enabled.  Default is false.  Note: This experimental feature is not recommended for production use.

+ +

removeEnabled

mxEdgeHandler.prototype.removeEnabled

Specifies if removing bends by shift-click is enabled.  Default is false.  Note: This experimental feature is not recommended for production use.

+ +

preferHtml

mxEdgeHandler.prototype.preferHtml

Specifies if bends should be added to the graph container.  This is updated in init based on whether the edge or one of its terminals has an HTML label in the container.

+ +

allowHandleBoundsCheck

mxEdgeHandler.prototype.allowHandleBoundsCheck

Specifies if the bounds of handles should be used for hit-detection in IE Default is true.

+ +

snapToTerminals

mxEdgeHandler.prototype.snapToTerminals

Specifies if waypoints should snap to the routing centers of terminals.  Default is false.

+ +

crisp

mxEdgeHandler.prototype.crisp

Specifies if the edge handles should be rendered in crisp mode.  Default is true.

+ +

handleImage

mxEdgeHandler.prototype.handleImage

Optional mxImage to be used as handles.  Default is null.

+ +

tolerance

mxEdgeHandler.prototype.tolerance

Optional tolerance for hit-detection in getHandleForEvent.  Default is 0.

+ +

Functions

+ +

init

mxEdgeHandler.prototype.init = function()

Initializes the shapes required for this edge handler.

+ +

isAddPointEvent

mxEdgeHandler.prototype.isAddPointEvent = function(evt)

Returns true if the given event is a trigger to add a new point.  This implementation returns true if shift is pressed.

+ +

isRemovePointEvent

mxEdgeHandler.prototype.isRemovePointEvent = function(evt)

Returns true if the given event is a trigger to remove a point.  This implementation returns true if shift is pressed.

+ +

getSelectionPoints

mxEdgeHandler.prototype.getSelectionPoints = function(state)

Returns the list of points that defines the selection stroke.

+ +

createSelectionShape

mxEdgeHandler.prototype.createSelectionShape = function(points)

Creates the shape used to draw the selection border.

+ +

getSelectionColor

mxEdgeHandler.prototype.getSelectionColor = function()

Returns mxConstants.EDGE_SELECTION_COLOR.

+ +

getSelectionStrokeWidth

mxEdgeHandler.prototype.getSelectionStrokeWidth = function()

Returns mxConstants.EDGE_SELECTION_STROKEWIDTH.

+ +

isSelectionDashed

mxEdgeHandler.prototype.isSelectionDashed = function()

Returns <mxConstants.EDGE_SELECTION_DASHED>.

+ +

isConnectableCell

mxEdgeHandler.prototype.isConnectableCell = function(cell)

Returns true if the given cell is connectable.  This is a hook to disable floating connections.  This implementation returns true.

+ +

createMarker

mxEdgeHandler.prototype.createMarker = function()

Creates and returns the mxCellMarker used in marker.

+ +

validateConnection

mxEdgeHandler.prototype.validateConnection = function(source,
target)

Returns the error message or an empty string if the connection for the given source, target pair is not valid.  Otherwise it returns null.  This implementation uses mxGraph.getEdgeValidationError.

Parameters

sourcemxCell that represents the source terminal.
targetmxCell that represents the target terminal.
+ +

createBends

mxEdgeHandler.prototype.createBends = function()

Creates and returns the bends used for modifying the edge.  This is typically an array of mxRectangleShapes.

+ +

isHandleEnabled

mxEdgeHandler.prototype.isHandleEnabled = function(index)

Creates the shape used to display the given bend.

+ +

isHandleVisible

mxEdgeHandler.prototype.isHandleVisible = function(index)

Returns true if the handle at the given index is visible.

+ +

createHandleShape

mxEdgeHandler.prototype.createHandleShape = function(index)

Creates the shape used to display the given bend.  Note that the index may be null for special cases, such as when called from mxElbowEdgeHandler.createVirtualBend.

+ +

initBend

mxEdgeHandler.prototype.initBend = function(bend)

Helper method to initialize the given bend.

Parameters

bendmxShape that represents the bend to be initialized.
+ +

getHandleForEvent

mxEdgeHandler.prototype.getHandleForEvent = function(me)

Returns the index of the handle for the given event.

+ +

mouseDown

mxEdgeHandler.prototype.mouseDown = function(sender,
me)

Handles the event by checking if a special element of the handler was clicked, in which case the index parameter is non-null.  The indices may be one of <LABEL_HANDLE> or the number of the respective control point.  The source and target points are used for reconnecting the edge.

+ +

start

mxEdgeHandler.prototype.start = function(x,
y,
index)

Starts the handling of the mouse gesture.

+ +

clonePreviewState

mxEdgeHandler.prototype.clonePreviewState = function(point,
terminal)

Returns a clone of the current preview state for the given point and terminal.

+ +

getSnapToTerminalTolerance

mxEdgeHandler.prototype.getSnapToTerminalTolerance = function()

Returns the tolerance for the guides.  Default value is gridSize * scale / 2.

+ +

getPointForEvent

mxEdgeHandler.prototype.getPointForEvent = function(me)

Returns the point for the given event.

+ +

getPreviewTerminalState

mxEdgeHandler.prototype.getPreviewTerminalState = function(me)

Updates the given preview state taking into account the state of the constraint handler.

+ +

getPreviewPoints

mxEdgeHandler.prototype.getPreviewPoints = function(point)

Updates the given preview state taking into account the state of the constraint handler.

+ +

updatePreviewState

mxEdgeHandler.prototype.updatePreviewState = function(edge,
point,
terminalState)

Updates the given preview state taking into account the state of the constraint handler.

+ +

mouseMove

mxEdgeHandler.prototype.mouseMove = function(sender,
me)

Handles the event by updating the preview.

+ +

mouseUp

mxEdgeHandler.prototype.mouseUp = function(sender,
me)

Handles the event to applying the previewed changes on the edge by using moveLabel, connect or changePoints.

+ +

reset

mxEdgeHandler.prototype.reset = function()

Resets the state of this handler.

+ +

setPreviewColor

mxEdgeHandler.prototype.setPreviewColor = function(color)

Sets the color of the preview to the given value.

+ +

convertPoint

mxEdgeHandler.prototype.convertPoint = function(point,
gridEnabled)

Converts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.  Returns the given, modified point instance.

Parameters

pointmxPoint to be converted.
gridEnabledBoolean that specifies if the grid should be applied.
+ +

moveLabel

mxEdgeHandler.prototype.moveLabel = function(edgeState,
x,
y)

Changes the coordinates for the label of the given edge.

Parameters

edgemxCell that represents the edge.
xInteger that specifies the x-coordinate of the new location.
yInteger that specifies the y-coordinate of the new location.
+ +

connect

mxEdgeHandler.prototype.connect = function(edge,
terminal,
isSource,
isClone,
me)

Changes the terminal or terminal point of the given edge in the graph model.

Parameters

edgemxCell that represents the edge to be reconnected.
terminalmxCell that represents the new terminal.
isSourceBoolean indicating if the new terminal is the source or target terminal.
isCloneBoolean indicating if the new connection should be a clone of the old edge.
memxMouseEvent that contains the mouse up event.
+ +

changeTerminalPoint

mxEdgeHandler.prototype.changeTerminalPoint = function(edge,
point,
isSource)

Changes the terminal point of the given edge.

+ +

changePoints

mxEdgeHandler.prototype.changePoints = function(edge,
points)

Changes the control points of the given edge in the graph model.

+ +

addPoint

mxEdgeHandler.prototype.addPoint = function(state,
evt)

Adds a control point for the given state and event.

+ +

removePoint

mxEdgeHandler.prototype.removePoint = function(state,
index)

Removes the control point at the given index from the given state.

+ +

getHandleFillColor

mxEdgeHandler.prototype.getHandleFillColor = function(index)

Returns the fillcolor for the handle at the given index.

+ +

redraw

mxEdgeHandler.prototype.redraw = function()

Redraws the preview, and the bends- and label control points.

+ +

redrawInnerBends

mxEdgeHandler.prototype.redrawInnerBends = function(p0,
pe)

Updates and redraws the inner bends.

Parameters

p0mxPoint that represents the location of the first point.
pemxPoint that represents the location of the last point.
+ +

drawPreview

mxEdgeHandler.prototype.drawPreview = function()

Redraws the preview.

+ +

destroy

mxEdgeHandler.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.  This does normally not need to be called as handlers are destroyed automatically when the corresponding cell is deselected.

+ +
+ + + + + + + + + + +
function mxEdgeHandler(state)
Constructs an edge handler for the specified mxCellState.
Represents the current state of a cell in a given mxGraphView.
mxEdgeHandler.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxEdgeHandler.prototype.state
Reference to the mxCellState being modified.
mxEdgeHandler.prototype.marker
Holds the mxTerminalMarker which is used for highlighting terminals.
mxEdgeHandler.prototype.constraintHandler
Holds the mxConstraintHandler used for drawing and highlighting constraints.
Handles constraints on connection targets.
mxEdgeHandler.prototype.error
Holds the current validation error while a connection is being changed.
mxEdgeHandler.prototype.shape
Holds the mxShape that represents the preview edge.
Base class for all shapes.
mxEdgeHandler.prototype.bends
Holds the mxShapes that represent the points.
mxEdgeHandler.prototype.labelShape
Holds the mxShape that represents the label position.
mxEdgeHandler.prototype.cloneEnabled
Specifies if cloning by control-drag is enabled.
mxEdgeHandler.prototype.addEnabled
Specifies if adding bends by shift-click is enabled.
mxEdgeHandler.prototype.removeEnabled
Specifies if removing bends by shift-click is enabled.
mxEdgeHandler.prototype.preferHtml
Specifies if bends should be added to the graph container.
mxEdgeHandler.prototype.allowHandleBoundsCheck
Specifies if the bounds of handles should be used for hit-detection in IE Default is true.
mxEdgeHandler.prototype.snapToTerminals
Specifies if waypoints should snap to the routing centers of terminals.
mxEdgeHandler.prototype.crisp
Specifies if the edge handles should be rendered in crisp mode.
mxEdgeHandler.prototype.handleImage
Optional mxImage to be used as handles.
Encapsulates the URL, width and height of an image.
mxEdgeHandler.prototype.tolerance
Optional tolerance for hit-detection in getHandleForEvent.
mxEdgeHandler.prototype.getHandleForEvent = function(me)
Returns the index of the handle for the given event.
mxEdgeHandler.prototype.init = function()
Initializes the shapes required for this edge handler.
mxEdgeHandler.prototype.isAddPointEvent = function(evt)
Returns true if the given event is a trigger to add a new point.
mxEdgeHandler.prototype.isRemovePointEvent = function(evt)
Returns true if the given event is a trigger to remove a point.
mxEdgeHandler.prototype.getSelectionPoints = function(state)
Returns the list of points that defines the selection stroke.
mxEdgeHandler.prototype.createSelectionShape = function(points)
Creates the shape used to draw the selection border.
mxEdgeHandler.prototype.getSelectionColor = function()
Returns mxConstants.EDGE_SELECTION_COLOR.
Defines the color to be used for the selection border of edges.
mxEdgeHandler.prototype.getSelectionStrokeWidth = function()
Returns mxConstants.EDGE_SELECTION_STROKEWIDTH.
Defines the strokewidth to be used for edge selections.
mxEdgeHandler.prototype.isSelectionDashed = function()
Returns mxConstants.EDGE_SELECTION_DASHED.
mxEdgeHandler.prototype.isConnectableCell = function(cell)
Returns true if the given cell is connectable.
mxEdgeHandler.prototype.createMarker = function()
Creates and returns the mxCellMarker used in marker.
A helper class to process mouse locations and highlight cells.
mxEdgeHandler.prototype.validateConnection = function(source,
target)
Returns the error message or an empty string if the connection for the given source, target pair is not valid.
mxEdgeHandler.prototype.createBends = function()
Creates and returns the bends used for modifying the edge.
mxEdgeHandler.prototype.isHandleEnabled = function(index)
Creates the shape used to display the given bend.
mxEdgeHandler.prototype.isHandleVisible = function(index)
Returns true if the handle at the given index is visible.
mxEdgeHandler.prototype.createHandleShape = function(index)
Creates the shape used to display the given bend.
mxEdgeHandler.prototype.initBend = function(bend)
Helper method to initialize the given bend.
mxEdgeHandler.prototype.mouseDown = function(sender,
me)
Handles the event by checking if a special element of the handler was clicked, in which case the index parameter is non-null.
mxEdgeHandler.prototype.start = function(x,
y,
index)
Starts the handling of the mouse gesture.
mxEdgeHandler.prototype.clonePreviewState = function(point,
terminal)
Returns a clone of the current preview state for the given point and terminal.
mxEdgeHandler.prototype.getSnapToTerminalTolerance = function()
Returns the tolerance for the guides.
mxEdgeHandler.prototype.getPointForEvent = function(me)
Returns the point for the given event.
mxEdgeHandler.prototype.getPreviewTerminalState = function(me)
Updates the given preview state taking into account the state of the constraint handler.
mxEdgeHandler.prototype.getPreviewPoints = function(point)
Updates the given preview state taking into account the state of the constraint handler.
mxEdgeHandler.prototype.updatePreviewState = function(edge,
point,
terminalState)
Updates the given preview state taking into account the state of the constraint handler.
mxEdgeHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the preview.
mxEdgeHandler.prototype.mouseUp = function(sender,
me)
Handles the event to applying the previewed changes on the edge by using moveLabel, connect or changePoints.
mxEdgeHandler.prototype.moveLabel = function(edgeState,
x,
y)
Changes the coordinates for the label of the given edge.
mxEdgeHandler.prototype.connect = function(edge,
terminal,
isSource,
isClone,
me)
Changes the terminal or terminal point of the given edge in the graph model.
mxEdgeHandler.prototype.changePoints = function(edge,
points)
Changes the control points of the given edge in the graph model.
mxEdgeHandler.prototype.reset = function()
Resets the state of this handler.
mxEdgeHandler.prototype.setPreviewColor = function(color)
Sets the color of the preview to the given value.
mxEdgeHandler.prototype.convertPoint = function(point,
gridEnabled)
Converts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.
mxEdgeHandler.prototype.changeTerminalPoint = function(edge,
point,
isSource)
Changes the terminal point of the given edge.
mxEdgeHandler.prototype.addPoint = function(state,
evt)
Adds a control point for the given state and event.
mxEdgeHandler.prototype.removePoint = function(state,
index)
Removes the control point at the given index from the given state.
mxEdgeHandler.prototype.getHandleFillColor = function(index)
Returns the fillcolor for the handle at the given index.
mxEdgeHandler.prototype.redraw = function()
Redraws the preview, and the bends- and label control points.
mxEdgeHandler.prototype.redrawInnerBends = function(p0,
pe)
Updates and redraws the inner bends.
mxEdgeHandler.prototype.drawPreview = function()
Redraws the preview.
mxEdgeHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxGraph.prototype.createHandler = function(state)
Creates a new handler for the given cell state.
mxGraph.prototype.getEdgeValidationError = function(edge,
source,
target)
Returns the validation error message to be displayed when inserting or changing an edges’ connectivity.
Cells are the elements of the graph model.
Extends mxShape to implement a rectangle shape.
mxElbowEdgeHandler.prototype.createVirtualBend = function()
Creates a virtual bend that supports double clicking and calls mxGraph.flipEdge.
Implements a 2-dimensional vector with double precision coordinates.
Base class for all mouse events in mxGraph.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxEdgeSegmentHandler-js.html b/docs/js-api/files/handler/mxEdgeSegmentHandler-js.html new file mode 100644 index 000000000..14f1d9521 --- /dev/null +++ b/docs/js-api/files/handler/mxEdgeSegmentHandler-js.html @@ -0,0 +1,55 @@ + + +/home/gaudenz/project/mxgraph/build/mxgraph/javascript/src/src/js/handler/mxEdgeSegmentHandler.js + + + + + + + + + +

mxEdgeSegmentHandler.js

Summary
mxEdgeSegmentHandler.js
Functions
getPreviewPointsUpdates the given preview state taking into account the state of the constraint handler.
createBendsAdds custom bends for the center of each segment.
redrawInnerBendsUpdates the position of the custom bends.
connectCalls refresh after mxEdgeHandler.connect.
changeTerminalPointCalls refresh after mxEdgeHandler.changeTerminalPoint.
changePointsChanges the points of the given edge to reflect the current state of the handler.
refreshRefreshes the bends of this handler.
+ +

Functions

+ +

getPreviewPoints

mxEdgeSegmentHandler.prototype.getPreviewPoints = function(point)

Updates the given preview state taking into account the state of the constraint handler.

+ +

createBends

mxEdgeSegmentHandler.prototype.createBends = function()

Adds custom bends for the center of each segment.

+ +

redrawInnerBends

mxEdgeSegmentHandler.prototype.redrawInnerBends = function(p0,
pe)

Updates the position of the custom bends.

+ +

connect

mxEdgeSegmentHandler.prototype.connect = function(edge,
terminal,
isSource,
isClone,
me)

Calls refresh after mxEdgeHandler.connect.

+ +

changeTerminalPoint

mxEdgeSegmentHandler.prototype.changeTerminalPoint = function(edge,
point,
isSource)

Calls refresh after mxEdgeHandler.changeTerminalPoint.

+ +

changePoints

mxEdgeSegmentHandler.prototype.changePoints = function(edge,
points)

Changes the points of the given edge to reflect the current state of the handler.

+ +

refresh

mxEdgeSegmentHandler.prototype.refresh = function()

Refreshes the bends of this handler.

+ +
+ + + + + + + + + + +
mxEdgeSegmentHandler.prototype.getPreviewPoints = function(point)
Updates the given preview state taking into account the state of the constraint handler.
mxEdgeSegmentHandler.prototype.createBends = function()
Adds custom bends for the center of each segment.
mxEdgeSegmentHandler.prototype.redrawInnerBends = function(p0,
pe)
Updates the position of the custom bends.
mxEdgeSegmentHandler.prototype.connect = function(edge,
terminal,
isSource,
isClone,
me)
Calls refresh after mxEdgeHandler.connect.
mxEdgeSegmentHandler.prototype.refresh = function()
Refreshes the bends of this handler.
mxEdgeHandler.prototype.connect = function(edge,
terminal,
isSource,
isClone,
me)
Changes the terminal or terminal point of the given edge in the graph model.
mxEdgeSegmentHandler.prototype.changeTerminalPoint = function(edge,
point,
isSource)
Calls refresh after mxEdgeHandler.changeTerminalPoint.
mxEdgeHandler.prototype.changeTerminalPoint = function(edge,
point,
isSource)
Changes the terminal point of the given edge.
mxEdgeSegmentHandler.prototype.changePoints = function(edge,
points)
Changes the points of the given edge to reflect the current state of the handler.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxElbowEdgeHandler-js.html b/docs/js-api/files/handler/mxElbowEdgeHandler-js.html new file mode 100644 index 000000000..9e6d93cc1 --- /dev/null +++ b/docs/js-api/files/handler/mxElbowEdgeHandler-js.html @@ -0,0 +1,61 @@ + + +mxElbowEdgeHandler + + + + + + + + + +

mxElbowEdgeHandler

Graph event handler that reconnects edges and modifies control points and the edge label location.  Uses <mxTerminalMarker> for finding and highlighting new source and target vertices.  This handler is automatically created in mxGraph.createHandler.  It extends mxEdgeHandler.

Summary
mxElbowEdgeHandlerGraph event handler that reconnects edges and modifies control points and the edge label location.
Functions
mxEdgeHandlerConstructs an edge handler for the specified mxCellState.
Variables
doubleClickOrientationResourceSpecifies the resource key for the tooltip to be displayed on the single control point for routed edges.
Functions
createBendsOverrides mxEdgeHandler.createBends to create custom bends.
createVirtualBendCreates a virtual bend that supports double clicking and calls mxGraph.flipEdge.
getCursorForBendReturns the cursor to be used for the bend.
getTooltipForNodeReturns the tooltip for the given node.
convertPointConverts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.
redrawInnerBendsUpdates and redraws the inner bends.
+ +

Functions

+ +

mxEdgeHandler

Constructs an edge handler for the specified mxCellState.

Parameters

statemxCellState of the cell to be modified.
+ +

Variables

+ +

doubleClickOrientationResource

mxElbowEdgeHandler.prototype.doubleClickOrientationResource

Specifies the resource key for the tooltip to be displayed on the single control point for routed edges.  If the resource for this key does not exist then the value is used as the error message.  Default is ‘doubleClickOrientation’.

+ +

Functions

+ +

createBends

mxElbowEdgeHandler.prototype.createBends = function()

Overrides mxEdgeHandler.createBends to create custom bends.

+ +

createVirtualBend

mxElbowEdgeHandler.prototype.createVirtualBend = function()

Creates a virtual bend that supports double clicking and calls mxGraph.flipEdge.

+ +

getCursorForBend

mxElbowEdgeHandler.prototype.getCursorForBend = function()

Returns the cursor to be used for the bend.

+ +

getTooltipForNode

mxElbowEdgeHandler.prototype.getTooltipForNode = function(node)

Returns the tooltip for the given node.

+ +

convertPoint

mxElbowEdgeHandler.prototype.convertPoint = function(point,
gridEnabled)

Converts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.

Parameters

pointmxPoint to be converted.
gridEnabledBoolean that specifies if the grid should be applied.
+ +

redrawInnerBends

mxElbowEdgeHandler.prototype.redrawInnerBends = function(p0,
pe)

Updates and redraws the inner bends.

Parameters

p0mxPoint that represents the location of the first point.
pemxPoint that represents the location of the last point.
+ +
+ + + + + + + + + + +
Represents the current state of a cell in a given mxGraphView.
mxElbowEdgeHandler.prototype.doubleClickOrientationResource
Specifies the resource key for the tooltip to be displayed on the single control point for routed edges.
mxElbowEdgeHandler.prototype.createBends = function()
Overrides mxEdgeHandler.createBends to create custom bends.
mxEdgeHandler.prototype.createBends = function()
Creates and returns the bends used for modifying the edge.
mxElbowEdgeHandler.prototype.createVirtualBend = function()
Creates a virtual bend that supports double clicking and calls mxGraph.flipEdge.
mxGraph.prototype.flipEdge = function(edge)
Toggles the style of the given edge between null (or empty) and alternateEdgeStyle.
mxElbowEdgeHandler.prototype.getCursorForBend = function()
Returns the cursor to be used for the bend.
mxElbowEdgeHandler.prototype.getTooltipForNode = function(node)
Returns the tooltip for the given node.
mxElbowEdgeHandler.prototype.convertPoint = function(point,
gridEnabled)
Converts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.
mxElbowEdgeHandler.prototype.redrawInnerBends = function(p0,
pe)
Updates and redraws the inner bends.
mxGraph.prototype.createHandler = function(state)
Creates a new handler for the given cell state.
Constructs an edge handler for the specified mxCellState.
Implements a 2-dimensional vector with double precision coordinates.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxGraphHandler-js.html b/docs/js-api/files/handler/mxGraphHandler-js.html new file mode 100644 index 000000000..2f32cedf9 --- /dev/null +++ b/docs/js-api/files/handler/mxGraphHandler-js.html @@ -0,0 +1,149 @@ + + +mxGraphHandler + + + + + + + + + +

mxGraphHandler

Graph event handler that handles selection.  Individual cells are handled separately using mxVertexHandler or one of the edge handlers.  These handlers are created using mxGraph.createHandler in mxGraphSelectionModel.cellAdded.

To avoid the container to scroll a moved cell into view, set <scrollAfterMove> to false.

Summary
mxGraphHandlerGraph event handler that handles selection.
Functions
mxGraphHandlerConstructs an event handler that creates handles for the selection cells.
Variables
graphReference to the enclosing mxGraph.
maxCellsDefines the maximum number of cells to paint subhandles for.
enabledSpecifies if events are handled.
highlightEnabledSpecifies if drop targets under the mouse should be enabled.
cloneEnabledSpecifies if cloning by control-drag is enabled.
moveEnabledSpecifies if moving is enabled.
guidesEnabledSpecifies if other cells should be used for snapping the right, center or left side of the current selection.
guideHolds the mxGuide instance that is used for alignment.
currentDxStores the x-coordinate of the current mouse move.
currentDyStores the y-coordinate of the current mouse move.
updateCursorSpecifies if a move cursor should be shown if the mouse is ove a movable cell.
selectEnabledSpecifies if selecting is enabled.
removeCellsFromParentSpecifies if cells may be moved out of their parents.
connectOnDropSpecifies if drop events are interpreted as new connections if no other drop action is defined.
scrollOnMoveSpecifies if the view should be scrolled so that a moved cell is visible.
minimumSizeSpecifies the minimum number of pixels for the width and height of a selection border.
previewColorSpecifies the color of the preview shape.
htmlPreviewSpecifies if the graph container should be used for preview.
shapeReference to the mxShape that represents the preview.
scaleGridSpecifies if the grid should be scaled.
crispSpecifies if the move preview should be rendered in crisp mode if applicable.
Functions
isEnabledReturns enabled.
setEnabledSets enabled.
isCloneEnabledReturns cloneEnabled.
setCloneEnabledSets cloneEnabled.
isMoveEnabledReturns moveEnabled.
setMoveEnabledSets moveEnabled.
isSelectEnabledReturns selectEnabled.
setSelectEnabledSets selectEnabled.
isRemoveCellsFromParentReturns removeCellsFromParent.
setRemoveCellsFromParentSets removeCellsFromParent.
getInitialCellForEventHook to return initial cell for the given event.
isDelayedSelectionHook to return true for delayed selections.
mouseDownHandles the event by selecing the given cell and creating a handle for it.
getGuideStatesCreates an array of cell states which should be used as guides.
getCellsReturns the cells to be modified by this handler.
getPreviewBoundsReturns the mxRectangle used as the preview bounds for moving the given cells.
createPreviewShapeCreates the shape used to draw the preview for the given bounds.
startStarts the handling of the mouse gesture.
useGuidesForEventReturns true if the guides should be used for the given mxMouseEvent.
snapSnaps the given vector to the grid and returns the given mxPoint instance.
mouseMoveHandles the event by highlighting possible drop targets and updating the preview.
updatePreviewShapeUpdates the bounds of the preview shape.
setHighlightColorSets the color of the rectangle used to highlight drop targets.
mouseUpHandles the event by applying the changes to the selection cells.
selectDelayedImplements the delayed selection for the given mouse event.
resetResets the state of this handler.
shouldRemoveCellsFromParentReturns true if the given cells should be removed from the parent for the specified mousereleased event.
moveCellsMoves the given cells by the specified amount.
destroyShapesDestroy the preview and highlight shapes.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Functions

+ +

mxGraphHandler

function mxGraphHandler(graph)

Constructs an event handler that creates handles for the selection cells.

Parameters

graphReference to the enclosing mxGraph.
+ +

Variables

+ +

graph

mxGraphHandler.prototype.graph

Reference to the enclosing mxGraph.

+ +

maxCells

mxGraphHandler.prototype.maxCells

Defines the maximum number of cells to paint subhandles for.  Default is 50 for Firefox and 20 for IE.  Set this to 0 if you want an unlimited number of handles to be displayed.  This is only recommended if the number of cells in the graph is limited to a small number, eg.  500.

+ +

enabled

mxGraphHandler.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

highlightEnabled

mxGraphHandler.prototype.highlightEnabled

Specifies if drop targets under the mouse should be enabled.  Default is true.

+ +

cloneEnabled

mxGraphHandler.prototype.cloneEnabled

Specifies if cloning by control-drag is enabled.  Default is true.

+ +

moveEnabled

mxGraphHandler.prototype.moveEnabled

Specifies if moving is enabled.  Default is true.

+ +

guidesEnabled

mxGraphHandler.prototype.guidesEnabled

Specifies if other cells should be used for snapping the right, center or left side of the current selection.  Default is false.

+ +

guide

mxGraphHandler.prototype.guide

Holds the mxGuide instance that is used for alignment.

+ +

currentDx

mxGraphHandler.prototype.currentDx

Stores the x-coordinate of the current mouse move.

+ +

currentDy

mxGraphHandler.prototype.currentDy

Stores the y-coordinate of the current mouse move.

+ +

updateCursor

mxGraphHandler.prototype.updateCursor

Specifies if a move cursor should be shown if the mouse is ove a movable cell.  Default is true.

+ +

selectEnabled

mxGraphHandler.prototype.selectEnabled

Specifies if selecting is enabled.  Default is true.

+ +

removeCellsFromParent

mxGraphHandler.prototype.removeCellsFromParent

Specifies if cells may be moved out of their parents.  Default is true.

+ +

connectOnDrop

mxGraphHandler.prototype.connectOnDrop

Specifies if drop events are interpreted as new connections if no other drop action is defined.  Default is false.

+ +

scrollOnMove

mxGraphHandler.prototype.scrollOnMove

Specifies if the view should be scrolled so that a moved cell is visible.  Default is true.

+ +

minimumSize

mxGraphHandler.prototype.minimumSize

Specifies the minimum number of pixels for the width and height of a selection border.  Default is 6.

+ +

previewColor

mxGraphHandler.prototype.previewColor

Specifies the color of the preview shape.  Default is black.

+ +

htmlPreview

mxGraphHandler.prototype.htmlPreview

Specifies if the graph container should be used for preview.  If this is used then drop target detection relies entirely on mxGraph.getCellAt because the HTML preview does not “let events through”.  Default is false.

+ +

shape

mxGraphHandler.prototype.shape

Reference to the mxShape that represents the preview.

+ +

scaleGrid

mxGraphHandler.prototype.scaleGrid

Specifies if the grid should be scaled.  Default is false.

+ +

crisp

mxGraphHandler.prototype.crisp

Specifies if the move preview should be rendered in crisp mode if applicable.  Default is true.

+ +

Functions

+ +

isEnabled

mxGraphHandler.prototype.isEnabled = function()

Returns enabled.

+ +

setEnabled

mxGraphHandler.prototype.setEnabled = function(value)

Sets enabled.

+ +

isCloneEnabled

mxGraphHandler.prototype.isCloneEnabled = function()

Returns cloneEnabled.

+ +

setCloneEnabled

mxGraphHandler.prototype.setCloneEnabled = function(value)

Sets cloneEnabled.

Parameters

valueBoolean that specifies the new clone enabled state.
+ +

isMoveEnabled

mxGraphHandler.prototype.isMoveEnabled = function()

Returns moveEnabled.

+ +

setMoveEnabled

mxGraphHandler.prototype.setMoveEnabled = function(value)

Sets moveEnabled.

+ +

isSelectEnabled

mxGraphHandler.prototype.isSelectEnabled = function()

Returns selectEnabled.

+ +

setSelectEnabled

mxGraphHandler.prototype.setSelectEnabled = function(value)

Sets selectEnabled.

+ +

isRemoveCellsFromParent

mxGraphHandler.prototype.isRemoveCellsFromParent = function()

Returns removeCellsFromParent.

+ +

setRemoveCellsFromParent

mxGraphHandler.prototype.setRemoveCellsFromParent = function(value)

Sets removeCellsFromParent.

+ +

getInitialCellForEvent

mxGraphHandler.prototype.getInitialCellForEvent = function(me)

Hook to return initial cell for the given event.

+ +

isDelayedSelection

mxGraphHandler.prototype.isDelayedSelection = function(cell)

Hook to return true for delayed selections.

+ +

mouseDown

mxGraphHandler.prototype.mouseDown = function(sender,
me)

Handles the event by selecing the given cell and creating a handle for it.  By consuming the event all subsequent events of the gesture are redirected to this handler.

+ +

getGuideStates

mxGraphHandler.prototype.getGuideStates = function()

Creates an array of cell states which should be used as guides.

+ +

getCells

mxGraphHandler.prototype.getCells = function(initialCell)

Returns the cells to be modified by this handler.  This implementation returns all selection cells that are movable, or the given initial cell if the given cell is not selected and movable.  This handles the case of moving unselectable or unselected cells.

Parameters

initialCellmxCell that triggered this handler.
+ +

getPreviewBounds

mxGraphHandler.prototype.getPreviewBounds = function(cells)

Returns the mxRectangle used as the preview bounds for moving the given cells.

+ +

createPreviewShape

mxGraphHandler.prototype.createPreviewShape = function(bounds)

Creates the shape used to draw the preview for the given bounds.

+ +

start

mxGraphHandler.prototype.start = function(cell,
x,
y)

Starts the handling of the mouse gesture.

+ +

useGuidesForEvent

mxGraphHandler.prototype.useGuidesForEvent = function(me)

Returns true if the guides should be used for the given mxMouseEvent.  This implementation returns mxGuide.isEnabledForEvent.

+ +

snap

mxGraphHandler.prototype.snap = function(vector)

Snaps the given vector to the grid and returns the given mxPoint instance.

+ +

mouseMove

mxGraphHandler.prototype.mouseMove = function(sender,
me)

Handles the event by highlighting possible drop targets and updating the preview.

+ +

updatePreviewShape

mxGraphHandler.prototype.updatePreviewShape = function()

Updates the bounds of the preview shape.

+ +

setHighlightColor

mxGraphHandler.prototype.setHighlightColor = function(color)

Sets the color of the rectangle used to highlight drop targets.

Parameters

colorString that represents the new highlight color.
+ +

mouseUp

mxGraphHandler.prototype.mouseUp = function(sender,
me)

Handles the event by applying the changes to the selection cells.

+ +

selectDelayed

mxGraphHandler.prototype.selectDelayed = function(me)

Implements the delayed selection for the given mouse event.

+ +

reset

mxGraphHandler.prototype.reset = function()

Resets the state of this handler.

+ +

shouldRemoveCellsFromParent

mxGraphHandler.prototype.shouldRemoveCellsFromParent = function(parent,
cells,
evt)

Returns true if the given cells should be removed from the parent for the specified mousereleased event.

+ +

moveCells

mxGraphHandler.prototype.moveCells = function(cells,
dx,
dy,
clone,
target,
evt)

Moves the given cells by the specified amount.

+ +

destroyShapes

mxGraphHandler.prototype.destroyShapes = function()

Destroy the preview and highlight shapes.

+ +

destroy

mxGraphHandler.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.

+ +
+ + + + + + + + + + +
function mxGraphHandler(graph)
Constructs an event handler that creates handles for the selection cells.
mxGraphHandler.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxGraphHandler.prototype.maxCells
Defines the maximum number of cells to paint subhandles for.
mxGraphHandler.prototype.enabled
Specifies if events are handled.
mxGraphHandler.prototype.highlightEnabled
Specifies if drop targets under the mouse should be enabled.
mxGraphHandler.prototype.cloneEnabled
Specifies if cloning by control-drag is enabled.
mxGraphHandler.prototype.moveEnabled
Specifies if moving is enabled.
mxGraphHandler.prototype.guidesEnabled
Specifies if other cells should be used for snapping the right, center or left side of the current selection.
mxGraphHandler.prototype.guide
Holds the mxGuide instance that is used for alignment.
Implements the alignment of selection cells to other cells in the graph.
mxGraphHandler.prototype.currentDx
Stores the x-coordinate of the current mouse move.
mxGraphHandler.prototype.currentDy
Stores the y-coordinate of the current mouse move.
mxGraphHandler.prototype.updateCursor
Specifies if a move cursor should be shown if the mouse is ove a movable cell.
mxGraphHandler.prototype.selectEnabled
Specifies if selecting is enabled.
mxGraphHandler.prototype.removeCellsFromParent
Specifies if cells may be moved out of their parents.
mxGraphHandler.prototype.connectOnDrop
Specifies if drop events are interpreted as new connections if no other drop action is defined.
mxGraphHandler.prototype.scrollOnMove
Specifies if the view should be scrolled so that a moved cell is visible.
mxGraphHandler.prototype.minimumSize
Specifies the minimum number of pixels for the width and height of a selection border.
mxGraphHandler.prototype.previewColor
Specifies the color of the preview shape.
mxGraphHandler.prototype.htmlPreview
Specifies if the graph container should be used for preview.
mxGraphHandler.prototype.shape
Reference to the mxShape that represents the preview.
Base class for all shapes.
mxGraphHandler.prototype.scaleGrid
Specifies if the grid should be scaled.
mxGraphHandler.prototype.crisp
Specifies if the move preview should be rendered in crisp mode if applicable.
mxGraphHandler.prototype.isEnabled = function()
Returns enabled.
mxGraphHandler.prototype.setEnabled = function(value)
Sets enabled.
mxGraphHandler.prototype.isCloneEnabled = function()
Returns cloneEnabled.
mxGraphHandler.prototype.setCloneEnabled = function(value)
Sets cloneEnabled.
mxGraphHandler.prototype.isMoveEnabled = function()
Returns moveEnabled.
mxGraphHandler.prototype.setMoveEnabled = function(value)
Sets moveEnabled.
mxGraphHandler.prototype.isSelectEnabled = function()
Returns selectEnabled.
mxGraphHandler.prototype.setSelectEnabled = function(value)
Sets selectEnabled.
mxGraphHandler.prototype.isRemoveCellsFromParent = function()
Returns removeCellsFromParent.
mxGraphHandler.prototype.setRemoveCellsFromParent = function(value)
Sets removeCellsFromParent.
mxGraphHandler.prototype.getInitialCellForEvent = function(me)
Hook to return initial cell for the given event.
mxGraphHandler.prototype.isDelayedSelection = function(cell)
Hook to return true for delayed selections.
mxGraphHandler.prototype.mouseDown = function(sender,
me)
Handles the event by selecing the given cell and creating a handle for it.
mxGraphHandler.prototype.getGuideStates = function()
Creates an array of cell states which should be used as guides.
mxGraphHandler.prototype.getCells = function(initialCell)
Returns the cells to be modified by this handler.
mxGraphHandler.prototype.getPreviewBounds = function(cells)
Returns the mxRectangle used as the preview bounds for moving the given cells.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxGraphHandler.prototype.createPreviewShape = function(bounds)
Creates the shape used to draw the preview for the given bounds.
mxGraphHandler.prototype.start = function(cell,
x,
y)
Starts the handling of the mouse gesture.
mxGraphHandler.prototype.useGuidesForEvent = function(me)
Returns true if the guides should be used for the given mxMouseEvent.
Base class for all mouse events in mxGraph.
mxGraphHandler.prototype.snap = function(vector)
Snaps the given vector to the grid and returns the given mxPoint instance.
mxGraphHandler.prototype.mouseMove = function(sender,
me)
Handles the event by highlighting possible drop targets and updating the preview.
mxGraphHandler.prototype.updatePreviewShape = function()
Updates the bounds of the preview shape.
mxGraphHandler.prototype.setHighlightColor = function(color)
Sets the color of the rectangle used to highlight drop targets.
mxGraphHandler.prototype.mouseUp = function(sender,
me)
Handles the event by applying the changes to the selection cells.
mxGraphHandler.prototype.selectDelayed = function(me)
Implements the delayed selection for the given mouse event.
mxGraphHandler.prototype.reset = function()
Resets the state of this handler.
mxGraphHandler.prototype.shouldRemoveCellsFromParent = function(parent,
cells,
evt)
Returns true if the given cells should be removed from the parent for the specified mousereleased event.
mxGraphHandler.prototype.moveCells = function(cells,
dx,
dy,
clone,
target,
evt)
Moves the given cells by the specified amount.
mxGraphHandler.prototype.destroyShapes = function()
Destroy the preview and highlight shapes.
mxGraphHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
Event handler for resizing cells.
mxGraph.prototype.createHandler = function(state)
Creates a new handler for the given cell state.
mxGraphSelectionModel.prototype.cellAdded = function(cell)
Inner callback to add the specified mxCell to the selection.
mxGraph.prototype.getCellAt = function(x,
y,
parent,
vertices,
edges)
Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.
Cells are the elements of the graph model.
mxGuide.prototype.isEnabledForEvent = function(evt)
Returns true if the guide should be enabled for the given native event.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxKeyHandler-js.html b/docs/js-api/files/handler/mxKeyHandler-js.html new file mode 100644 index 000000000..aaded83cb --- /dev/null +++ b/docs/js-api/files/handler/mxKeyHandler-js.html @@ -0,0 +1,100 @@ + + +mxKeyHandler + + + + + + + + + +

mxKeyHandler

Event handler that listens to keystroke events.  This is not a singleton, however, it is normally only required once if the target is the document element (default).

This handler installs a key event listener in the topmost DOM node and processes all events that originate from descandants of <mxGraph.container> or from the topmost DOM node.  The latter means that all unhandled keystrokes are handled by this object regardless of the focused state of the graph.

Example

The following example creates a key handler that listens to the delete key (46) and deletes the selection cells if the graph is enabled.

var keyHandler = new mxKeyHandler(graph);
+keyHandler.bindKey(46, function(evt)
+{
+  if (graph.isEnabled())
+  {
+    graph.removeCells();
+  }
+});

Keycodes

See http://tinyurl.com/yp8jgl or http://tinyurl.com/229yqw for a list of keycodes or install a key event listener into the document element and print the key codes of the respective events to the console.

To support the Command key and the Control key on the Mac, the following code can be used.

keyHandler.getFunction = function(evt)
+{
+  if (evt != null)
+  {
+    return (mxEvent.isControlDown(evt) || (mxClient.IS_MAC && evt.metaKey)) ? this.controlKeys[evt.keyCode] : this.normalKeys[evt.keyCode];
+  }
+
+  return null;
+};
Summary
mxKeyHandlerEvent handler that listens to keystroke events.
Functions
mxKeyHandlerConstructs an event handler that executes functions bound to specific keystrokes.
Variables
graphReference to the mxGraph associated with this handler.
targetReference to the target DOM, that is, the DOM node where the key event listeners are installed.
normalKeysMaps from keycodes to functions for non-pressed control keys.
shiftKeysMaps from keycodes to functions for pressed shift keys.
controlKeysMaps from keycodes to functions for pressed control keys.
controlShiftKeysMaps from keycodes to functions for pressed control and shift keys.
enabledSpecifies if events are handled.
Functions
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling by updating enabled.
bindKeyBinds the specified keycode to the given function.
bindShiftKeyBinds the specified keycode to the given function.
bindControlKeyBinds the specified keycode to the given function.
bindControlShiftKeyBinds the specified keycode to the given function.
isControlDownReturns true if the control key is pressed.
getFunctionReturns the function associated with the given key event or null if no function is associated with the given event.
isGraphEventReturns true if the event should be processed by this handler, that is, if the event source is either the target, one of its direct children, a descendant of the <mxGraph.container>, or the mxGraph.cellEditor of the graph.
keyDownHandles the event by invoking the function bound to the respective keystroke if mxGraph.isEnabled, isEnabled and isGraphEvent all return true for the given event and mxGraph.isEditing returns false.
escapeHook to process ESCAPE keystrokes.
destroyDestroys the handler and all its references into the DOM.
+ +

Functions

+ +

mxKeyHandler

function mxKeyHandler(graph,
target)

Constructs an event handler that executes functions bound to specific keystrokes.

Parameters

graphReference to the associated mxGraph.
targetOptional reference to the event target.  If null, the document element is used as the event target, that is, the object where the key event listener is installed.
+ +

Variables

+ +

graph

mxKeyHandler.prototype.graph

Reference to the mxGraph associated with this handler.

+ +

target

mxKeyHandler.prototype.target

Reference to the target DOM, that is, the DOM node where the key event listeners are installed.

+ +

normalKeys

mxKeyHandler.prototype.normalKeys

Maps from keycodes to functions for non-pressed control keys.

+ +

shiftKeys

mxKeyHandler.prototype.shiftKeys

Maps from keycodes to functions for pressed shift keys.

+ +

controlKeys

mxKeyHandler.prototype.controlKeys

Maps from keycodes to functions for pressed control keys.

+ +

controlShiftKeys

mxKeyHandler.prototype.controlShiftKeys

Maps from keycodes to functions for pressed control and shift keys.

+ +

enabled

mxKeyHandler.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

Functions

+ +

isEnabled

mxKeyHandler.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxKeyHandler.prototype.setEnabled = function(enabled)

Enables or disables event handling by updating enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

bindKey

mxKeyHandler.prototype.bindKey = function(code,
funct)

Binds the specified keycode to the given function.  This binding is used if the control key is not pressed.

Parameters

codeInteger that specifies the keycode.
functJavaScript function that takes the key event as an argument.
+ +

bindShiftKey

mxKeyHandler.prototype.bindShiftKey = function(code,
funct)

Binds the specified keycode to the given function.  This binding is used if the shift key is pressed.

Parameters

codeInteger that specifies the keycode.
functJavaScript function that takes the key event as an argument.
+ +

bindControlKey

mxKeyHandler.prototype.bindControlKey = function(code,
funct)

Binds the specified keycode to the given function.  This binding is used if the control key is pressed.

Parameters

codeInteger that specifies the keycode.
functJavaScript function that takes the key event as an argument.
+ +

bindControlShiftKey

mxKeyHandler.prototype.bindControlShiftKey = function(code,
funct)

Binds the specified keycode to the given function.  This binding is used if the control and shift key are pressed.

Parameters

codeInteger that specifies the keycode.
functJavaScript function that takes the key event as an argument.
+ +

isControlDown

mxKeyHandler.prototype.isControlDown = function(evt)

Returns true if the control key is pressed.  This uses mxEvent.isControlDown.

Parameters

evtKey event whose control key pressed state should be returned.
+ +

getFunction

mxKeyHandler.prototype.getFunction = function(evt)

Returns the function associated with the given key event or null if no function is associated with the given event.

Parameters

evtKey event whose associated function should be returned.
+ +

isGraphEvent

mxKeyHandler.prototype.isGraphEvent = function(evt)

Returns true if the event should be processed by this handler, that is, if the event source is either the target, one of its direct children, a descendant of the <mxGraph.container>, or the mxGraph.cellEditor of the graph.

Parameters

evtKey event that represents the keystroke.
+ +

keyDown

mxKeyHandler.prototype.keyDown = function(evt)

Handles the event by invoking the function bound to the respective keystroke if mxGraph.isEnabled, isEnabled and isGraphEvent all return true for the given event and mxGraph.isEditing returns false.  If the graph is editing only the <enter> and escape cases are handled by calling the respective hooks.

Parameters

evtKey event that represents the keystroke.
+ +

escape

mxKeyHandler.prototype.escape = function(evt)

Hook to process ESCAPE keystrokes.  This implementation invokes mxGraph.stopEditing to cancel the current editing, connecting and/or other ongoing modifications.

Parameters

evtKey event that represents the keystroke.  Possible keycode in this case is 27 (ESCAPE).
+ +

destroy

mxKeyHandler.prototype.destroy = function()

Destroys the handler and all its references into the DOM.  This does normally not need to be called, it is called automatically when the window unloads (in IE).

+ +
+ + + + + + + + + + +
function mxKeyHandler(graph,
target)
Constructs an event handler that executes functions bound to specific keystrokes.
mxKeyHandler.prototype.graph
Reference to the mxGraph associated with this handler.
Extends mxEventSource to implement a graph component for the browser.
mxKeyHandler.prototype.target
Reference to the target DOM, that is, the DOM node where the key event listeners are installed.
mxKeyHandler.prototype.normalKeys
Maps from keycodes to functions for non-pressed control keys.
mxKeyHandler.prototype.shiftKeys
Maps from keycodes to functions for pressed shift keys.
mxKeyHandler.prototype.controlKeys
Maps from keycodes to functions for pressed control keys.
mxKeyHandler.prototype.controlShiftKeys
Maps from keycodes to functions for pressed control and shift keys.
mxKeyHandler.prototype.enabled
Specifies if events are handled.
mxKeyHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxKeyHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling by updating enabled.
mxKeyHandler.prototype.bindKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.bindShiftKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.bindControlKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.bindControlShiftKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.isControlDown = function(evt)
Returns true if the control key is pressed.
mxKeyHandler.prototype.getFunction = function(evt)
Returns the function associated with the given key event or null if no function is associated with the given event.
mxKeyHandler.prototype.isGraphEvent = function(evt)
Returns true if the event should be processed by this handler, that is, if the event source is either the target, one of its direct children, a descendant of the mxGraph.container, or the mxGraph.cellEditor of the graph.
mxGraph.prototype.cellEditor
Holds the mxCellEditor that is used as the in-place editing.
mxKeyHandler.prototype.keyDown = function(evt)
Handles the event by invoking the function bound to the respective keystroke if mxGraph.isEnabled, isEnabled and isGraphEvent all return true for the given event and mxGraph.isEditing returns false.
mxGraph.prototype.isEnabled = function()
Returns true if the graph is enabled.
mxGraph.prototype.isEditing = function(cell)
Returns true if the given cell is currently being edited.
mxKeyHandler.prototype.escape = function(evt)
Hook to process ESCAPE keystrokes.
mxKeyHandler.prototype.destroy = function()
Destroys the handler and all its references into the DOM.
isControlDown: function(evt)
Returns true if the control key is pressed for the given event.
mxGraph.prototype.stopEditing = function(cancel)
Stops the current editing.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxPanningHandler-js.html b/docs/js-api/files/handler/mxPanningHandler-js.html new file mode 100644 index 000000000..90710785b --- /dev/null +++ b/docs/js-api/files/handler/mxPanningHandler-js.html @@ -0,0 +1,93 @@ + + +mxPanningHandler + + + + + + + + + +

mxPanningHandler

Event handler that pans and creates popupmenus.  To use the left mousebutton for panning without interfering with cell moving and resizing, use <isUseLeftButton> and <isIgnoreCell>.  For grid size steps while panning, use useGrid.  This handler is built-into <mxGraph.panningHandler> and enabled using mxGraph.setPanning.

Summary
mxPanningHandlerEvent handler that pans and creates popupmenus.
Functions
mxPanningHandlerConstructs an event handler that creates a mxPopupMenu and pans the graph.
Events
mxEvent.PAN_STARTFires when the panning handler changes its <active> state to true.
mxEvent.PANFires while handle is processing events.
mxEvent.PAN_ENDFires when the panning handler changes its <active> state to false.
Variables
graphReference to the enclosing mxGraph.
usePopupTriggerSpecifies if the <isPopupTrigger> should also be used for panning.
useLeftButtonForPanningSpecifies if panning should be active for the left mouse button.
selectOnPopupSpecifies if cells should be selected if a popupmenu is displayed for them.
clearSelectionOnBackgroundSpecifies if cells should be deselected if a popupmenu is displayed for the diagram background.
ignoreCellSpecifies if panning should be active even if there is a cell under the mousepointer.
previewEnabledSpecifies if the panning should be previewed.
useGridSpecifies if the panning steps should be aligned to the grid size.
panningEnabledSpecifies if panning should be enabled.
Functions
isPanningEnabledReturns panningEnabled.
setPanningEnabledSets panningEnabled.
initInitializes the shapes required for this vertex handler.
isPanningTriggerReturns true if the given event is a panning trigger for the optional given cell.
mouseDownHandles the event by initiating the panning.
mouseMoveHandles the event by updating the panning on the graph.
mouseUpHandles the event by setting the translation on the view or showing the popupmenu.
getCellForPopupEventHook to return the cell for the mouse up popup trigger handling.
panGraphPans graph by the given amount.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Functions

+ +

mxPanningHandler

Constructs an event handler that creates a mxPopupMenu and pans the graph.

+ +

Events

+ +

mxEvent.PAN_START

Fires when the panning handler changes its <active> state to true.  The <code>event</code> property contains the corresponding mxMouseEvent.

+ +

mxEvent.PAN

Fires while handle is processing events.  The <code>event</code> property contains the corresponding mxMouseEvent.

+ +

mxEvent.PAN_END

Fires when the panning handler changes its <active> state to false.  The <code>event</code> property contains the corresponding mxMouseEvent.

+ +

Variables

+ +

graph

mxPanningHandler.prototype.graph

Reference to the enclosing mxGraph.

+ +

usePopupTrigger

mxPanningHandler.prototype.usePopupTrigger

Specifies if the <isPopupTrigger> should also be used for panning.  To avoid conflicts, the panning is only activated if the mouse was moved more than mxGraph.tolerance, otherwise, a single click is assumed and the popupmenu is displayed.  Default is true.

+ +

useLeftButtonForPanning

mxPanningHandler.prototype.useLeftButtonForPanning

Specifies if panning should be active for the left mouse button.  Setting this to true may conflict with mxRubberband.  Default is false.

+ +

selectOnPopup

mxPanningHandler.prototype.selectOnPopup

Specifies if cells should be selected if a popupmenu is displayed for them.  Default is true.

+ +

clearSelectionOnBackground

mxPanningHandler.prototype.clearSelectionOnBackground

Specifies if cells should be deselected if a popupmenu is displayed for the diagram background.  Default is true.

+ +

ignoreCell

mxPanningHandler.prototype.ignoreCell

Specifies if panning should be active even if there is a cell under the mousepointer.  Default is false.

+ +

previewEnabled

mxPanningHandler.prototype.previewEnabled

Specifies if the panning should be previewed.  Default is true.

+ +

useGrid

mxPanningHandler.prototype.useGrid

Specifies if the panning steps should be aligned to the grid size.  Default is false.

+ +

panningEnabled

mxPanningHandler.prototype.panningEnabled

Specifies if panning should be enabled.  Default is true.

+ +

Functions

+ +

isPanningEnabled

mxPanningHandler.prototype.isPanningEnabled = function()

Returns panningEnabled.

+ +

setPanningEnabled

mxPanningHandler.prototype.setPanningEnabled = function(value)

Sets panningEnabled.

+ +

init

mxPanningHandler.prototype.init = function()

Initializes the shapes required for this vertex handler.

+ +

isPanningTrigger

mxPanningHandler.prototype.isPanningTrigger = function(me)

Returns true if the given event is a panning trigger for the optional given cell.  This returns true if control-shift is pressed or if usePopupTrigger is true and the event is a popup trigger.

+ +

mouseDown

mxPanningHandler.prototype.mouseDown = function(sender,
me)

Handles the event by initiating the panning.  By consuming the event all subsequent events of the gesture are redirected to this handler.

+ +

mouseMove

mxPanningHandler.prototype.mouseMove = function(sender,
me)

Handles the event by updating the panning on the graph.

+ +

mouseUp

mxPanningHandler.prototype.mouseUp = function(sender,
me)

Handles the event by setting the translation on the view or showing the popupmenu.

+ +

getCellForPopupEvent

mxPanningHandler.prototype.getCellForPopupEvent = function(me)

Hook to return the cell for the mouse up popup trigger handling.

+ +

panGraph

mxPanningHandler.prototype.panGraph = function(dx,
dy)

Pans graph by the given amount.

+ +

destroy

mxPanningHandler.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.

+ +
+ + + + + + + + + + +
Event handler that pans and creates popupmenus.
mxPanningHandler.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxPanningHandler.prototype.usePopupTrigger
Specifies if the isPopupTrigger should also be used for panning.
mxPanningHandler.prototype.useLeftButtonForPanning
Specifies if panning should be active for the left mouse button.
mxPanningHandler.prototype.selectOnPopup
Specifies if cells should be selected if a popupmenu is displayed for them.
mxPanningHandler.prototype.clearSelectionOnBackground
Specifies if cells should be deselected if a popupmenu is displayed for the diagram background.
mxPanningHandler.prototype.ignoreCell
Specifies if panning should be active even if there is a cell under the mousepointer.
mxPanningHandler.prototype.previewEnabled
Specifies if the panning should be previewed.
mxPanningHandler.prototype.useGrid
Specifies if the panning steps should be aligned to the grid size.
mxPanningHandler.prototype.panningEnabled
Specifies if panning should be enabled.
mxPanningHandler.prototype.isPanningEnabled = function()
Returns panningEnabled.
mxPanningHandler.prototype.setPanningEnabled = function(value)
Sets panningEnabled.
mxPanningHandler.prototype.init = function()
Initializes the shapes required for this vertex handler.
mxPanningHandler.prototype.isPanningTrigger = function(me)
Returns true if the given event is a panning trigger for the optional given cell.
mxPanningHandler.prototype.mouseDown = function(sender,
me)
Handles the event by initiating the panning.
mxPanningHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the panning on the graph.
mxPanningHandler.prototype.mouseUp = function(sender,
me)
Handles the event by setting the translation on the view or showing the popupmenu.
mxPanningHandler.prototype.getCellForPopupEvent = function(me)
Hook to return the cell for the mouse up popup trigger handling.
mxPanningHandler.prototype.panGraph = function(dx,
dy)
Pans graph by the given amount.
mxPanningHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxGraph.prototype.setPanning = function(enabled)
Specifies if panning should be enabled.
Base class for all mouse events in mxGraph.
mxGraph.prototype.tolerance
Tolerance for a move to be handled as a single click.
Event handler that selects rectangular regions.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxRubberband-js.html b/docs/js-api/files/handler/mxRubberband-js.html new file mode 100644 index 000000000..4c020cef4 --- /dev/null +++ b/docs/js-api/files/handler/mxRubberband-js.html @@ -0,0 +1,81 @@ + + +mxRubberband + + + + + + + + + +

mxRubberband

Event handler that selects rectangular regions.  This is not built-into mxGraph.  To enable rubberband selection in a graph, use the following code.

Example

var rubberband = new mxRubberband(graph);
Summary
mxRubberbandEvent handler that selects rectangular regions.
Functions
mxRubberbandConstructs an event handler that selects rectangular regions in the graph using rubberband selection.
Variables
defaultOpacitySpecifies the default opacity to be used for the rubberband div.
enabledSpecifies if events are handled.
divHolds the DIV element which is currently visible.
sharedDivHolds the DIV element which is used to display the rubberband.
currentXHolds the value of the x argument in the last call to update.
currentYHolds the value of the y argument in the last call to update.
Functions
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
mouseDownHandles the event by initiating a rubberband selection.
startSets the start point for the rubberband selection.
mouseMoveHandles the event by updating therubberband selection.
createShapeCreates the rubberband selection shape.
mouseUpHandles the event by selecting the region of the rubberband using mxGraph.selectRegion.
resetResets the state of the rubberband selection.
updateSets currentX and currentY and calls repaint.
repaintComputes the bounding box and updates the style of the div.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Functions

+ +

mxRubberband

function mxRubberband(graph)

Constructs an event handler that selects rectangular regions in the graph using rubberband selection.

+ +

Variables

+ +

defaultOpacity

mxRubberband.prototype.defaultOpacity

Specifies the default opacity to be used for the rubberband div.  Default is 20.

+ +

enabled

mxRubberband.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

div

mxRubberband.prototype.div

Holds the DIV element which is currently visible.

+ +

sharedDiv

mxRubberband.prototype.sharedDiv

Holds the DIV element which is used to display the rubberband.

+ +

currentX

mxRubberband.prototype.currentX

Holds the value of the x argument in the last call to update.

+ +

currentY

mxRubberband.prototype.currentY

Holds the value of the y argument in the last call to update.

+ +

Functions

+ +

isEnabled

mxRubberband.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxRubberband.prototype.setEnabled = function(enabled)

Enables or disables event handling.  This implementation updates enabled.

+ +

mouseDown

mxRubberband.prototype.mouseDown = function(sender,
me)

Handles the event by initiating a rubberband selection.  By consuming the event all subsequent events of the gesture are redirected to this handler.

+ +

start

mxRubberband.prototype.start = function(x,
y)

Sets the start point for the rubberband selection.

+ +

mouseMove

mxRubberband.prototype.mouseMove = function(sender,
me)

Handles the event by updating therubberband selection.

+ +

createShape

mxRubberband.prototype.createShape = function()

Creates the rubberband selection shape.

+ +

mouseUp

mxRubberband.prototype.mouseUp = function(sender,
me)

Handles the event by selecting the region of the rubberband using mxGraph.selectRegion.

+ +

reset

mxRubberband.prototype.reset = function()

Resets the state of the rubberband selection.

+ +

update

mxRubberband.prototype.update = function(x,
y)

Sets currentX and currentY and calls repaint.

+ +

repaint

mxRubberband.prototype.repaint = function()

Computes the bounding box and updates the style of the div.

+ +

destroy

mxRubberband.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.  This does normally not need to be called, it is called automatically when the window unloads.

+ +
+ + + + + + + + + + +
function mxRubberband(graph)
Constructs an event handler that selects rectangular regions in the graph using rubberband selection.
mxRubberband.prototype.defaultOpacity
Specifies the default opacity to be used for the rubberband div.
mxRubberband.prototype.enabled
Specifies if events are handled.
mxRubberband.prototype.div
Holds the DIV element which is currently visible.
mxRubberband.prototype.sharedDiv
Holds the DIV element which is used to display the rubberband.
mxRubberband.prototype.currentX
Holds the value of the x argument in the last call to update.
mxRubberband.prototype.update = function(x,
y)
Sets currentX and currentY and calls repaint.
mxRubberband.prototype.currentY
Holds the value of the y argument in the last call to update.
mxRubberband.prototype.isEnabled = function()
Returns true if events are handled.
mxRubberband.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxRubberband.prototype.mouseDown = function(sender,
me)
Handles the event by initiating a rubberband selection.
mxRubberband.prototype.start = function(x,
y)
Sets the start point for the rubberband selection.
mxRubberband.prototype.mouseMove = function(sender,
me)
Handles the event by updating therubberband selection.
mxRubberband.prototype.createShape = function()
Creates the rubberband selection shape.
mxRubberband.prototype.mouseUp = function(sender,
me)
Handles the event by selecting the region of the rubberband using mxGraph.selectRegion.
mxGraph.prototype.selectRegion = function(rect,
evt)
Selects and returns the cells inside the given rectangle for the specified event.
mxRubberband.prototype.reset = function()
Resets the state of the rubberband selection.
mxRubberband.prototype.repaint = function()
Computes the bounding box and updates the style of the div.
mxRubberband.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
Extends mxEventSource to implement a graph component for the browser.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxSelectionCellsHandler-js.html b/docs/js-api/files/handler/mxSelectionCellsHandler-js.html new file mode 100644 index 000000000..7d370b260 --- /dev/null +++ b/docs/js-api/files/handler/mxSelectionCellsHandler-js.html @@ -0,0 +1,71 @@ + + +mxSelectionCellsHandler + + + + + + + + + +

mxSelectionCellsHandler

An event handler that manages cell handlers and invokes their mouse event processing functions.

Parameters

graphReference to the enclosing mxGraph.
Summary
mxSelectionCellsHandlerAn event handler that manages cell handlers and invokes their mouse event processing functions.
Variables
graphReference to the enclosing mxGraph.
enabledSpecifies if events are handled.
refreshHandlerKeeps a reference to an event listener for later removal.
maxHandlersDefines the maximum number of handlers to paint individually.
handlersmxDictionary that maps from cells to handlers.
Functions
isEnabledReturns enabled.
setEnabledSets enabled.
getHandlerReturns the handler for the given cell.
resetResets all handlers.
refreshReloads or updates all handlers.
mouseDownRedirects the given event to the handlers.
mouseMoveRedirects the given event to the handlers.
mouseUpRedirects the given event to the handlers.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Variables

+ +

graph

mxSelectionCellsHandler.prototype.graph

Reference to the enclosing mxGraph.

+ +

enabled

mxSelectionCellsHandler.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

refreshHandler

mxSelectionCellsHandler.prototype.refreshHandler

Keeps a reference to an event listener for later removal.

+ +

maxHandlers

mxSelectionCellsHandler.prototype.maxHandlers

Defines the maximum number of handlers to paint individually.  Default is 100.

+ +

handlers

mxSelectionCellsHandler.prototype.handlers

mxDictionary that maps from cells to handlers.

+ +

Functions

+ +

isEnabled

mxSelectionCellsHandler.prototype.isEnabled = function()

Returns enabled.

+ +

setEnabled

mxSelectionCellsHandler.prototype.setEnabled = function(value)

Sets enabled.

+ +

getHandler

mxSelectionCellsHandler.prototype.getHandler = function(cell)

Returns the handler for the given cell.

+ +

reset

mxSelectionCellsHandler.prototype.reset = function()

Resets all handlers.

+ +

refresh

mxSelectionCellsHandler.prototype.refresh = function()

Reloads or updates all handlers.

+ +

mouseDown

mxSelectionCellsHandler.prototype.mouseDown = function(sender,
me)

Redirects the given event to the handlers.

+ +

mouseMove

mxSelectionCellsHandler.prototype.mouseMove = function(sender,
me)

Redirects the given event to the handlers.

+ +

mouseUp

mxSelectionCellsHandler.prototype.mouseUp = function(sender,
me)

Redirects the given event to the handlers.

+ +

destroy

mxSelectionCellsHandler.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.

+ +
+ + + + + + + + + + +
mxSelectionCellsHandler.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxSelectionCellsHandler.prototype.enabled
Specifies if events are handled.
mxSelectionCellsHandler.prototype.refreshHandler
Keeps a reference to an event listener for later removal.
mxSelectionCellsHandler.prototype.maxHandlers
Defines the maximum number of handlers to paint individually.
mxSelectionCellsHandler.prototype.handlers
mxDictionary that maps from cells to handlers.
A wrapper class for an associative array with object keys.
mxSelectionCellsHandler.prototype.isEnabled = function()
Returns enabled.
mxSelectionCellsHandler.prototype.setEnabled = function(value)
Sets enabled.
mxSelectionCellsHandler.prototype.getHandler = function(cell)
Returns the handler for the given cell.
mxSelectionCellsHandler.prototype.reset = function()
Resets all handlers.
mxSelectionCellsHandler.prototype.refresh = function()
Reloads or updates all handlers.
mxSelectionCellsHandler.prototype.mouseDown = function(sender,
me)
Redirects the given event to the handlers.
mxSelectionCellsHandler.prototype.mouseMove = function(sender,
me)
Redirects the given event to the handlers.
mxSelectionCellsHandler.prototype.mouseUp = function(sender,
me)
Redirects the given event to the handlers.
mxSelectionCellsHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxTooltipHandler-js.html b/docs/js-api/files/handler/mxTooltipHandler-js.html new file mode 100644 index 000000000..8621110fe --- /dev/null +++ b/docs/js-api/files/handler/mxTooltipHandler-js.html @@ -0,0 +1,85 @@ + + +mxTooltipHandler + + + + + + + + + +

mxTooltipHandler

Graph event handler that displays tooltips.  mxGraph.getTooltip is used to get the tooltip for a cell or handle.  This handler is built-into <mxGraph.tooltipHandler> and enabled using mxGraph.setTooltips.

Example

(code> new mxTooltipHandler(graph); (end)

Summary
mxTooltipHandlerGraph event handler that displays tooltips.
Functions
mxTooltipHandlerConstructs an event handler that displays tooltips with the specified delay (in milliseconds).
Variables
zIndexSpecifies the zIndex for the tooltip and its shadow.
graphReference to the enclosing mxGraph.
delayDelay to show the tooltip in milliseconds.
hideOnHoverSpecifies if the tooltip should be hidden if the mouse is moved over the current cell.
enabledSpecifies if events are handled.
Functions
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
isHideOnHoverReturns hideOnHover.
setHideOnHoverSets hideOnHover.
initInitializes the DOM nodes required for this tooltip handler.
mouseDownHandles the event by initiating a rubberband selection.
mouseMoveHandles the event by updating the rubberband selection.
mouseUpHandles the event by resetting the tooltip timer or hiding the existing tooltip.
resetTimerResets the timer.
resetResets and/or restarts the timer to trigger the display of the tooltip.
hideHides the tooltip and resets the timer.
hideTooltipHides the tooltip.
showShows the tooltip for the specified cell and optional index at the specified location (with a vertical offset of 10 pixels).
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Functions

+ +

mxTooltipHandler

function mxTooltipHandler(graph,
delay)

Constructs an event handler that displays tooltips with the specified delay (in milliseconds).  If no delay is specified then a default delay of 500 ms (0.5 sec) is used.

Parameters

graphReference to the enclosing mxGraph.
delayOptional delay in milliseconds.
+ +

Variables

+ +

zIndex

mxTooltipHandler.prototype.zIndex

Specifies the zIndex for the tooltip and its shadow.  Default is 10005.

+ +

graph

mxTooltipHandler.prototype.graph

Reference to the enclosing mxGraph.

+ +

delay

mxTooltipHandler.prototype.delay

Delay to show the tooltip in milliseconds.  Default is 500.

+ +

hideOnHover

mxTooltipHandler.prototype.hideOnHover

Specifies if the tooltip should be hidden if the mouse is moved over the current cell.  Default is false.

+ +

enabled

mxTooltipHandler.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

Functions

+ +

isEnabled

mxTooltipHandler.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxTooltipHandler.prototype.setEnabled = function(enabled)

Enables or disables event handling.  This implementation updates enabled.

+ +

isHideOnHover

mxTooltipHandler.prototype.isHideOnHover = function()

Returns hideOnHover.

+ +

setHideOnHover

mxTooltipHandler.prototype.setHideOnHover = function(value)

Sets hideOnHover.

+ +

init

mxTooltipHandler.prototype.init = function()

Initializes the DOM nodes required for this tooltip handler.

+ +

mouseDown

mxTooltipHandler.prototype.mouseDown = function(sender,
me)

Handles the event by initiating a rubberband selection.  By consuming the event all subsequent events of the gesture are redirected to this handler.

+ +

mouseMove

mxTooltipHandler.prototype.mouseMove = function(sender,
me)

Handles the event by updating the rubberband selection.

+ +

mouseUp

mxTooltipHandler.prototype.mouseUp = function(sender,
me)

Handles the event by resetting the tooltip timer or hiding the existing tooltip.

+ +

resetTimer

mxTooltipHandler.prototype.resetTimer = function()

Resets the timer.

+ +

reset

mxTooltipHandler.prototype.reset = function(me,
restart)

Resets and/or restarts the timer to trigger the display of the tooltip.

+ +

hide

mxTooltipHandler.prototype.hide = function()

Hides the tooltip and resets the timer.

+ +

hideTooltip

mxTooltipHandler.prototype.hideTooltip = function()

Hides the tooltip.

+ +

show

mxTooltipHandler.prototype.show = function(tip,
x,
y)

Shows the tooltip for the specified cell and optional index at the specified location (with a vertical offset of 10 pixels).

+ +

destroy

mxTooltipHandler.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.

+ +
+ + + + + + + + + + +
function mxTooltipHandler(graph,
delay)
Constructs an event handler that displays tooltips with the specified delay (in milliseconds).
mxTooltipHandler.prototype.zIndex
Specifies the zIndex for the tooltip and its shadow.
mxTooltipHandler.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxTooltipHandler.prototype.delay
Delay to show the tooltip in milliseconds.
mxTooltipHandler.prototype.hideOnHover
Specifies if the tooltip should be hidden if the mouse is moved over the current cell.
mxTooltipHandler.prototype.enabled
Specifies if events are handled.
mxTooltipHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxTooltipHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxTooltipHandler.prototype.isHideOnHover = function()
Returns hideOnHover.
mxTooltipHandler.prototype.setHideOnHover = function(value)
Sets hideOnHover.
mxTooltipHandler.prototype.init = function()
Initializes the DOM nodes required for this tooltip handler.
mxTooltipHandler.prototype.mouseDown = function(sender,
me)
Handles the event by initiating a rubberband selection.
mxTooltipHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the rubberband selection.
mxTooltipHandler.prototype.mouseUp = function(sender,
me)
Handles the event by resetting the tooltip timer or hiding the existing tooltip.
mxTooltipHandler.prototype.resetTimer = function()
Resets the timer.
mxTooltipHandler.prototype.reset = function(me,
restart)
Resets and/or restarts the timer to trigger the display of the tooltip.
mxTooltipHandler.prototype.hide = function()
Hides the tooltip and resets the timer.
mxTooltipHandler.prototype.hideTooltip = function()
Hides the tooltip.
mxTooltipHandler.prototype.show = function(tip,
x,
y)
Shows the tooltip for the specified cell and optional index at the specified location (with a vertical offset of 10 pixels).
mxTooltipHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxGraph.prototype.getTooltip = function(state,
node,
x,
y)
Returns the string or DOM node that represents the tooltip for the given state, node and coordinate pair.
mxGraph.prototype.setTooltips = function (enabled)
Specifies if tooltips should be enabled.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/handler/mxVertexHandler-js.html b/docs/js-api/files/handler/mxVertexHandler-js.html new file mode 100644 index 000000000..7a80b376e --- /dev/null +++ b/docs/js-api/files/handler/mxVertexHandler-js.html @@ -0,0 +1,105 @@ + + +mxVertexHandler + + + + + + + + + +

mxVertexHandler

Event handler for resizing cells.  This handler is automatically created in mxGraph.createHandler.

Summary
mxVertexHandlerEvent handler for resizing cells.
Functions
mxVertexHandlerConstructs an event handler that allows to resize vertices and groups.
Variables
graphReference to the enclosing mxGraph.
stateReference to the mxCellState being modified.
singleSizerSpecifies if only one sizer handle at the bottom, right corner should be used.
indexHolds the index of the current handle.
allowHandleBoundsCheckSpecifies if the bounds of handles should be used for hit-detection in IE Default is true.
crispSpecifies if the selection bounds and handles should be rendered in crisp mode.
handleImageOptional mxImage to be used as handles.
toleranceOptional tolerance for hit-detection in getHandleForEvent.
Functions
initInitializes the shapes required for this vertex handler.
getSelectionBoundsReturns the mxRectangle that defines the bounds of the selection border.
createSelectionShapeCreates the shape used to draw the selection border.
getSelectionColorReturns mxConstants.VERTEX_SELECTION_COLOR.
getSelectionStrokeWidthReturns mxConstants.VERTEX_SELECTION_STROKEWIDTH.
isSelectionDashedReturns <mxConstants.VERTEX_SELECTION_DASHED>.
createSizerCreates a sizer handle for the specified cursor and index and returns the new mxRectangleShape that represents the handle.
isSizerVisibleReturns true if the sizer for the given index is visible.
createSizerShapeCreates the shape used for the sizer handle for the specified bounds and index.
createBoundsHelper method to create an mxRectangle around the given centerpoint with a width and height of 2*s or 6, if no s is given.
getHandleForEventReturns the index of the handle for the given event.
mouseDownHandles the event if a handle has been clicked.
startStarts the handling of the mouse gesture.
mouseMoveHandles the event by updating the preview.
mouseUpHandles the event by applying the changes to the geometry.
resetResets the state of this handler.
resizeCellUses the given vector to change the bounds of the given cell in the graph using mxGraph.resizeCell.
unionReturns the union of the given bounds and location for the specified handle index.
redrawRedraws the handles and the preview.
drawPreviewRedraws the preview.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Functions

+ +

mxVertexHandler

function mxVertexHandler(state)

Constructs an event handler that allows to resize vertices and groups.

Parameters

statemxCellState of the cell to be resized.
+ +

Variables

+ +

graph

mxVertexHandler.prototype.graph

Reference to the enclosing mxGraph.

+ +

state

mxVertexHandler.prototype.state

Reference to the mxCellState being modified.

+ +

singleSizer

mxVertexHandler.prototype.singleSizer

Specifies if only one sizer handle at the bottom, right corner should be used.  Default is false.

+ +

index

mxVertexHandler.prototype.index

Holds the index of the current handle.

+ +

allowHandleBoundsCheck

mxVertexHandler.prototype.allowHandleBoundsCheck

Specifies if the bounds of handles should be used for hit-detection in IE Default is true.

+ +

crisp

mxVertexHandler.prototype.crisp

Specifies if the selection bounds and handles should be rendered in crisp mode.  Default is true.

+ +

handleImage

mxVertexHandler.prototype.handleImage

Optional mxImage to be used as handles.  Default is null.

+ +

tolerance

mxVertexHandler.prototype.tolerance

Optional tolerance for hit-detection in getHandleForEvent.  Default is 0.

+ +

Functions

+ +

init

mxVertexHandler.prototype.init = function()

Initializes the shapes required for this vertex handler.

+ +

getSelectionBounds

mxVertexHandler.prototype.getSelectionBounds = function(state)

Returns the mxRectangle that defines the bounds of the selection border.

+ +

createSelectionShape

mxVertexHandler.prototype.createSelectionShape = function(bounds)

Creates the shape used to draw the selection border.

+ +

getSelectionColor

mxVertexHandler.prototype.getSelectionColor = function()

Returns mxConstants.VERTEX_SELECTION_COLOR.

+ +

getSelectionStrokeWidth

mxVertexHandler.prototype.getSelectionStrokeWidth = function()

Returns mxConstants.VERTEX_SELECTION_STROKEWIDTH.

+ +

isSelectionDashed

mxVertexHandler.prototype.isSelectionDashed = function()

Returns <mxConstants.VERTEX_SELECTION_DASHED>.

+ +

createSizer

mxVertexHandler.prototype.createSizer = function(cursor,
index,
size,
fillColor)

Creates a sizer handle for the specified cursor and index and returns the new mxRectangleShape that represents the handle.

+ +

isSizerVisible

mxVertexHandler.prototype.isSizerVisible = function(index)

Returns true if the sizer for the given index is visible.  This returns true for all given indices.

+ +

createSizerShape

mxVertexHandler.prototype.createSizerShape = function(bounds,
index,
fillColor)

Creates the shape used for the sizer handle for the specified bounds and index.

+ +

createBounds

Helper method to create an mxRectangle around the given centerpoint with a width and height of 2*s or 6, if no s is given.

+ +

getHandleForEvent

mxVertexHandler.prototype.getHandleForEvent = function(me)

Returns the index of the handle for the given event.  This returns the index of the sizer from where the event originated or <mxEvent.LABEL_INDEX>.

+ +

mouseDown

mxVertexHandler.prototype.mouseDown = function(sender,
me)

Handles the event if a handle has been clicked.  By consuming the event all subsequent events of the gesture are redirected to this handler.

+ +

start

mxVertexHandler.prototype.start = function(x,
y,
index)

Starts the handling of the mouse gesture.

+ +

mouseMove

mxVertexHandler.prototype.mouseMove = function(sender,
me)

Handles the event by updating the preview.

+ +

mouseUp

mxVertexHandler.prototype.mouseUp = function(sender,
me)

Handles the event by applying the changes to the geometry.

+ +

reset

mxVertexHandler.prototype.reset = function()

Resets the state of this handler.

+ +

resizeCell

mxVertexHandler.prototype.resizeCell = function(cell,
dx,
dy,
index,
gridEnabled)

Uses the given vector to change the bounds of the given cell in the graph using mxGraph.resizeCell.

+ +

union

mxVertexHandler.prototype.union = function(bounds,
dx,
dy,
index,
gridEnabled,
scale,
tr)

Returns the union of the given bounds and location for the specified handle index.

+ +

redraw

mxVertexHandler.prototype.redraw = function()

Redraws the handles and the preview.

+ +

drawPreview

mxVertexHandler.prototype.drawPreview = function()

Redraws the preview.

+ +

destroy

mxVertexHandler.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.

+ +
+ + + + + + + + + + +
function mxVertexHandler(state)
Constructs an event handler that allows to resize vertices and groups.
mxVertexHandler.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxVertexHandler.prototype.state
Reference to the mxCellState being modified.
Represents the current state of a cell in a given mxGraphView.
mxVertexHandler.prototype.singleSizer
Specifies if only one sizer handle at the bottom, right corner should be used.
mxVertexHandler.prototype.index
Holds the index of the current handle.
mxVertexHandler.prototype.allowHandleBoundsCheck
Specifies if the bounds of handles should be used for hit-detection in IE Default is true.
mxVertexHandler.prototype.crisp
Specifies if the selection bounds and handles should be rendered in crisp mode.
mxVertexHandler.prototype.handleImage
Optional mxImage to be used as handles.
Encapsulates the URL, width and height of an image.
mxVertexHandler.prototype.tolerance
Optional tolerance for hit-detection in getHandleForEvent.
mxVertexHandler.prototype.getHandleForEvent = function(me)
Returns the index of the handle for the given event.
mxVertexHandler.prototype.init = function()
Initializes the shapes required for this vertex handler.
mxVertexHandler.prototype.getSelectionBounds = function(state)
Returns the mxRectangle that defines the bounds of the selection border.
mxVertexHandler.prototype.createSelectionShape = function(bounds)
Creates the shape used to draw the selection border.
mxVertexHandler.prototype.getSelectionColor = function()
Returns mxConstants.VERTEX_SELECTION_COLOR.
Defines the color to be used for the selection border of vertices.
mxVertexHandler.prototype.getSelectionStrokeWidth = function()
Returns mxConstants.VERTEX_SELECTION_STROKEWIDTH.
Defines the strokewidth to be used for vertex selections.
mxVertexHandler.prototype.isSelectionDashed = function()
Returns mxConstants.VERTEX_SELECTION_DASHED.
mxVertexHandler.prototype.createSizer = function(cursor,
index,
size,
fillColor)
Creates a sizer handle for the specified cursor and index and returns the new mxRectangleShape that represents the handle.
Extends mxShape to implement a rectangle shape.
mxVertexHandler.prototype.isSizerVisible = function(index)
Returns true if the sizer for the given index is visible.
mxVertexHandler.prototype.createSizerShape = function(bounds,
index,
fillColor)
Creates the shape used for the sizer handle for the specified bounds and index.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxVertexHandler.prototype.mouseDown = function(sender,
me)
Handles the event if a handle has been clicked.
mxVertexHandler.prototype.start = function(x,
y,
index)
Starts the handling of the mouse gesture.
mxVertexHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the preview.
mxVertexHandler.prototype.mouseUp = function(sender,
me)
Handles the event by applying the changes to the geometry.
mxVertexHandler.prototype.reset = function()
Resets the state of this handler.
mxVertexHandler.prototype.resizeCell = function(cell,
dx,
dy,
index,
gridEnabled)
Uses the given vector to change the bounds of the given cell in the graph using mxGraph.resizeCell.
mxGraph.prototype.resizeCell = function(cell,
bounds)
Sets the bounds of the given cell using resizeCells.
mxVertexHandler.prototype.union = function(bounds,
dx,
dy,
index,
gridEnabled,
scale,
tr)
Returns the union of the given bounds and location for the specified handle index.
mxVertexHandler.prototype.redraw = function()
Redraws the handles and the preview.
mxVertexHandler.prototype.drawPreview = function()
Redraws the preview.
mxVertexHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxGraph.prototype.createHandler = function(state)
Creates a new handler for the given cell state.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/index-txt.html b/docs/js-api/files/index-txt.html new file mode 100644 index 000000000..9961c2a18 --- /dev/null +++ b/docs/js-api/files/index-txt.html @@ -0,0 +1,67 @@ + + +API Specification + + + + + + + + + +

API Specification

Overview

This JavaScript library is divided into 8 packages.  The top-level mxClient class includes (or dynamically imports) everything else.  The current version is stored in mxClient.VERSION.

The editor package provides the classes required to implement a diagram editor.  The main class in this package is mxEditor.

The view and model packages implement the graph component, represented by mxGraph.  It refers to a mxGraphModel which contains mxCells and caches the state of the cells in a mxGraphView.  The cells are painted using a mxCellRenderer based on the appearance defined in mxStylesheet.  Undo history is implemented in mxUndoManager.  To display an icon on the graph, mxCellOverlay may be used.  Validation rules are defined with mxMultiplicity.

The handler, layout and shape packages contain event listeners, layout algorithms and shapes, respectively.  The graph event listeners include mxRubberband for rubberband selection, mxTooltipHandler for tooltips and mxGraphHandler for basic cell modifications.  mxCompactTreeLayout implements a tree layout algorithm, and the shape package provides various shapes, which are subclasses of mxShape.

The util package provides utility classes including mxClipboard for copy-paste, <mxDatatransfer> for drag-and-drop, mxConstants for keys and values of stylesheets, mxEvent and mxUtils for cross-browser event-handling and general purpose functions, mxResources for internationalization and mxLog for console output.

The io package implements a generic mxObjectCodec for turning JavaScript objects into XML.  The main class is mxCodecmxCodecRegistry is the global registry for custom codecs.

Events

There are three different types of events, namely native DOM events, mxEventObjects which are fired in an mxEventSource, and mxMouseEvents which are fired in mxGraph.

Some helper methods for handling native events are provided in mxEvent.  It also takes care of resolving cycles between DOM nodes and JavaScript event handlers, which can lead to memory leaks in IE6.

Most custom events in mxGraph are implemented using mxEventSource.  Its listeners are functions that take a sender and mxEventObject.  Additionally, the mxGraph class fires special mxMouseEvents which are handled using mouse listeners, which are objects that provide a mousedown, mousemove and mouseup method.

Events in mxEventSource are fired using mxEventSource.fireEvent.  Listeners are added and removed using mxEventSource.addListener and mxEventSource.removeListenermxMouseEvents in mxGraph are fired using mxGraph.fireMouseEvent.  Listeners are added and removed using mxGraph.addMouseListener and mxGraph.removeMouseListener, respectively.

Key bindings

The following key bindings are defined for mouse events in the client across all browsers and platforms:

  • Control-Drag: Duplicates (clones) selected cells
  • Shift-Rightlick: Shows the context menu
  • Alt-Click: Forces rubberband (aka. marquee)
  • Control-Select: Toggles the selection state
  • Shift-Drag: Constrains the offset to one direction
  • Shift-Control-Drag: Panning (also Shift-Rightdrag)

Configuration

The following global variables may be defined before the client is loaded to specify its language or base path, respectively.

  • mxBasePath: Specifies the path in mxClient.basePath.
  • mxImageBasePath: Specifies the path in mxClient.imageBasePath.
  • mxLanguage: Specifies the language for resources in mxClient.language.
  • mxDefaultLanguage: Specifies the default language in mxClient.defaultLanguage.
  • mxLoadResources: Specifies if any resources should be loaded.  Default is true.
  • mxLoadStylesheets: Specifies if any stylesheets should be loaded.  Default is true.

Reserved Words

The mx prefix is used for all classes and objects in mxGraph.  The mx prefix can be seen as the global namespace for all JavaScript code in mxGraph.  The following fieldnames should not be used in objects.

  • mxObjectId: If the object is used with mxObjectIdentity
  • as: If the object is a field of another object
  • id: If the object is an idref in a codec
  • mxListenerList: Added to DOM nodes when used with mxEvent
  • window._mxDynamicCode: Temporarily used to load code in Safari and Chrome (see mxClient.include).
  • _mxJavaScriptExpression: Global variable that is temporarily used to evaluate code in Safari, Opera, Firefox 3 and IE (see mxUtils.eval).

Files

The library contains these relative filenames.  All filenames are relative to mxClient.basePath.

Built-in Images

All images are loaded from the mxClient.imageBasePath, which you can change to reflect your environment.  The image variables can also be changed individually.

  • mxGraph.prototype.collapsedImage
  • mxGraph.prototype.expandedImage
  • mxGraph.prototype.warningImage
  • mxWindow.prototype.closeImage
  • mxWindow.prototype.minimizeImage
  • mxWindow.prototype.normalizeImage
  • mxWindow.prototype.maximizeImage
  • mxWindow.prototype.resizeImage
  • mxPopupMenu.prototype.submenuImage
  • mxUtils.errorImage
  • mxConstraintHandler.prototype.pointImage

The basename of the warning image (images/warning without extension) used in mxGraph.setCellWarning is defined in mxGraph.warningImage.

Resources

The mxEditor and mxGraph classes add the following resources to mxResources at class loading time:

  • resources/editor*.properties
  • resources/graph*.properties

By default, the library ships with English and German resource files.

Images

Recommendations for using images.  Use GIF images (256 color palette) in HTML elements (such as the toolbar and context menu), and PNG images (24 bit) for all images which appear inside the graph component.

  • For PNG images inside HTML elements, Internet Explorer will ignore any transparency information.
  • For GIF images inside the graph, Firefox on the Mac will display strange colors.  Furthermore, only the first image for animated GIFs is displayed on the Mac.

For faster image rendering during application runtime, images can be prefetched using the following code:

var image = new Image();
+image.src = url_to_image;

Deployment

The client is added to the page using the following script tag inside the head of a document:

<script type="text/javascript" src="js/mxClient.js"></script>

The deployment version of the mxClient.js file contains all required code in a single file.  For deployment, the complete javascript/src directory is required.

Source Code

If you are a source code customer and you wish to develop using the full source code, the commented source code is shipped in the javascript/devel/source.zip file.  It contains one file for each class in mxGraph.  To use the source code the source.zip file must be uncompressed and the mxClient.js URL in the HTML page must be changed to reference the uncompressed mxClient.js from the source.zip file.

Compression

When using Apache2 with mod_deflate, you can use the following directive in src/js/.htaccess to speedup the loading of the JavaScript sources:

SetOutputFilter DEFLATE

Classes

There are two types of “classes” in mxGraph: classes and singletons (where only one instance exists).  Singletons are mapped to global objects where the variable name equals the classname.  For example mxConstants is an object with all the constants defined as object fields.  Normal classes are mapped to a constructor function and a prototype which defines the instance fields and methods.  For example, mxEditor is a function and mxEditor.prototype is the prototype for the object that the mxEditor function creates.  The mx prefix is a convention that is used for all classes in the mxGraph package to avoid conflicts with other objects in the global namespace.

Subclassing

For subclassing, the superclass must provide a constructor that is either parameterless or handles an invocation with no arguments.  Furthermore, the special constructor field must be redefined after extending the prototype.  For example, the superclass of mxEditor is mxEventSource.  This is represented in JavaScript by first “inheriting” all fields and methods from the superclass by assigning the prototype to an instance of the superclass, eg. mxEditor.prototype = new mxEventSource() and redefining the constructor field using mxEditor.prototype.constructor = mxEditor.  The latter rule is applied so that the type of an object can be retrieved via the name of it’s constructor using mxUtils.getFunctionName(obj.constructor).

Constructor

For subclassing in mxGraph, the same scheme should be applied.  For example, for subclassing the mxGraph class, first a constructor must be defined for the new class.  The constructor calls the super constructor with any arguments that it may have using the call function on the mxGraph function object, passing along explitely each argument:

function MyGraph(container)
+{
+  mxGraph.call(this, container);
+}

The prototype of MyGraph inherits from mxGraph as follows.  As usual, the constructor is redefined after extending the superclass:

MyGraph.prototype = new mxGraph();
+MyGraph.prototype.constructor = MyGraph;

You may want to define the codec associated for the class after the above code.  This code will be executed at class loading time and makes sure the same codec is used to encode instances of mxGraph and MyGraph.

var codec = mxCodecRegistry.getCodec(mxGraph);
+codec.template = new MyGraph();
+mxCodecRegistry.register(codec);

Functions

In the prototype for MyGraph, functions of mxGraph can then be extended as follows.

MyGraph.prototype.isCellSelectable = function(cell)
+{
+  var selectable = mxGraph.prototype.isSelectable.apply(this, arguments);
+
+  var geo = this.model.getGeometry(cell);
+  return selectable && (geo == null || !geo.relative);
+}

The supercall in the first line is optional.  It is done using the apply function on the isSelectable function object of the mxGraph prototype, using the special this and arguments variables as parameters.  Calls to the superclass function are only possible if the function is not replaced in the superclass as follows, which is another way of “subclassing” in JavaScript.

mxGraph.prototype.isCellSelectable = function(cell)
+{
+  var geo = this.model.getGeometry(cell);
+  return selectable &&
+      (geo == null ||
+      !geo.relative);
+}

The above scheme is useful if a function definition needs to be replaced completely.

In order to add new functions and fields to the subclass, the following code is used.  The example below adds a new function to return the XML representation of the graph model:

MyGraph.prototype.getXml = function()
+{
+  var enc = new mxCodec();
+  return enc.encode(this.getModel());
+}

Variables

Likewise, a new field is declared and defined as follows.

MyGraph.prototype.myField = 'Hello, World!';

Note that the value assigned to myField is created only once, that is, all instances of MyGraph share the same value.  If you require instance-specific values, then the field must be defined in the constructor instead.

function MyGraph(container)
+{
+  mxGraph.call(this, container);
+
+  this.myField = new Array();
+}

Finally, a new instance of MyGraph is created using the following code, where container is a DOM node that acts as a container for the graph view:

var graph = new MyGraph(container);
+ +
+ + + + + + + + + + +
Bootstrapping mechanism for the mxGraph thin client.
Contains the current version of the mxGraph library.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
Extends mxEventSource to implement a graph component for the browser.
Extends mxEventSource to implement a graph model.
Cells are the elements of the graph model.
Extends mxEventSource to implement a view for a graph.
Renders cells into a document object model.
Defines the appearance of the cells in a graph.
Implements a command history.
Extends mxEventSource to implement a graph overlay, represented by an icon and a tooltip.
Defines invalid connections along with the error messages that they produce.
Event handler that selects rectangular regions.
Graph event handler that displays tooltips.
Graph event handler that handles selection.
Extends mxGraphLayout to implement a compact tree (Moen) algorithm.
Base class for all shapes.
Singleton that implements a clipboard for graph cells.
Defines various global constants.
Cross-browser DOM event support.
A singleton class that provides cross-browser helper methods.
Implements internationalization.
A singleton class that implements a simple console.
Generic codec for JavaScript objects that implements a mapping between JavaScript objects and XML nodes that maps each field or element to an attribute or child node, and vice versa.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
The mxEventObject is a wrapper for all properties of a single event.
Base class for objects that dispatch named events.
Base class for all mouse events in mxGraph.
mxEventSource.prototype.fireEvent = function(evt,
sender)
Dispatches the given event to the listeners which are registered for the event.
mxEventSource.prototype.addListener = function(name,
funct)
Binds the specified function to the given event name.
mxEventSource.prototype.removeListener = function(funct)
Removes all occurrences of the given listener from eventListeners.
mxGraph.prototype.fireMouseEvent = function(evtName,
me,
sender)
Dispatches the given event in the graph event dispatch loop.
mxGraph.prototype.addMouseListener = function(listener)
Adds a listener to the graph event dispatch loop.
mxGraph.prototype.removeMouseListener = function(listener)
Removes the specified graph listener.
Basepath for all URLs in the core without trailing slash.
Basepath for all images URLs in the core without trailing slash.
Defines the language of the client, eg.
Defines the default language which is used in the common resource files.
include: function(src)
Dynamically adds a script node to the document header.
eval: function(expr)
Evaluates the given expression using eval and returns the JavaScript object that represents the expression result.
mxGraph.prototype.setCellWarning = function(cell,
warning,
img,
isSelect)
Creates an overlay for the given cell using the warning and image or warningImage and returns the new mxCellOverlay.
mxGraph.prototype.warningImage
Specifies the mxImage for the image to be used to display a warning overlay.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxCellCodec-js.html b/docs/js-api/files/io/mxCellCodec-js.html new file mode 100644 index 000000000..7f60990da --- /dev/null +++ b/docs/js-api/files/io/mxCellCodec-js.html @@ -0,0 +1,49 @@ + + +mxCellCodec + + + + + + + + + +

mxCellCodec

Codec for mxCells.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.

Transient Fields

  • children
  • edges
  • overlays
  • mxTransient

Reference Fields

  • parent
  • source
  • target

Transient fields can be added using the following code

mxCodecRegistry.getCodec(mxCell).exclude.push(‘name_of_field’);

Summary
mxCellCodecCodec for mxCells.
Functions
isCellCodecReturns true since this is a cell codec.
isExcludedExcludes user objects that are XML nodes.
afterEncodeEncodes an mxCell and wraps the XML up inside the XML of the user object (inversion).
beforeDecodeDecodes an mxCell and uses the enclosing XML node as the user object for the cell (inversion).
+ +

Functions

+ +

isCellCodec

codec.isCellCodec = function()

Returns true since this is a cell codec.

+ +

isExcluded

codec.isExcluded = function(obj,
attr,
value,
isWrite)

Excludes user objects that are XML nodes.

+ +

afterEncode

codec.afterEncode = function(enc,
obj,
node)

Encodes an mxCell and wraps the XML up inside the XML of the user object (inversion).

+ +

beforeDecode

codec.beforeDecode = function(dec,
node,
obj)

Decodes an mxCell and uses the enclosing XML node as the user object for the cell (inversion).

+ +
+ + + + + + + + + + +
Cells are the elements of the graph model.
codec.isCellCodec = function()
Returns true since this is a cell codec.
codec.isExcluded = function(obj,
attr,
value,
isWrite)
Excludes user objects that are XML nodes.
codec.afterEncode = function(enc,
obj,
node)
Encodes an mxCell and wraps the XML up inside the XML of the user object (inversion).
codec.beforeDecode = function(dec,
node,
obj)
Decodes an mxCell and uses the enclosing XML node as the user object for the cell (inversion).
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxChildChangeCodec-js.html b/docs/js-api/files/io/mxChildChangeCodec-js.html new file mode 100644 index 000000000..fc4b01c2d --- /dev/null +++ b/docs/js-api/files/io/mxChildChangeCodec-js.html @@ -0,0 +1,49 @@ + + +mxChildChangeCodec + + + + + + + + + +

mxChildChangeCodec

Codec for mxChildChanges.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.

Transient Fields

  • model
  • previous
  • previousIndex
  • child

Reference Fields

  • parent
Summary
mxChildChangeCodecCodec for mxChildChanges.
Functions
isReferenceReturns true for the child attribute if the child cell had a previous parent or if we’re reading the child as an attribute rather than a child node, in which case it’s always a reference.
afterEncodeEncodes the child recusively and adds the result to the given node.
beforeDecodeDecodes the any child nodes as using the respective codec from the registry.
afterDecodeRestores object state in the child change.
+ +

Functions

+ +

isReference

codec.isReference = function(obj,
attr,
value,
isWrite)

Returns true for the child attribute if the child cell had a previous parent or if we’re reading the child as an attribute rather than a child node, in which case it’s always a reference.

+ +

afterEncode

codec.afterEncode = function(enc,
obj,
node)

Encodes the child recusively and adds the result to the given node.

+ +

beforeDecode

codec.beforeDecode = function(dec,
node,
obj)

Decodes the any child nodes as using the respective codec from the registry.

+ +

afterDecode

codec.afterDecode = function(dec,
node,
obj)

Restores object state in the child change.

+ +
+ + + + + + + + + + +
Action to add or remove a child in a model.
codec.isReference = function(obj,
attr,
value,
isWrite)
Returns true for the child attribute if the child cell had a previous parent or if we’re reading the child as an attribute rather than a child node, in which case it’s always a reference.
codec.afterEncode = function(enc,
obj,
node)
Encodes the child recusively and adds the result to the given node.
codec.beforeDecode = function(dec,
node,
obj)
Decodes the any child nodes as using the respective codec from the registry.
codec.afterDecode = function(dec,
node,
obj)
Restores object state in the child change.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxCodec-js.html b/docs/js-api/files/io/mxCodec-js.html new file mode 100644 index 000000000..8e0b6bbf8 --- /dev/null +++ b/docs/js-api/files/io/mxCodec-js.html @@ -0,0 +1,99 @@ + + +mxCodec + + + + + + + + + +

mxCodec

XML codec for JavaScript object graphs.  See mxObjectCodec for a description of the general encoding/decoding scheme.  This class uses the codecs registered in mxCodecRegistry for encoding/decoding each object.

References

In order to resolve references, especially forward references, the mxCodec constructor must be given the document that contains the referenced elements.

Examples

The following code is used to encode a graph model.

var encoder = new mxCodec();
+var result = encoder.encode(graph.getModel());
+var xml = mxUtils.getXml(result);

Example

Using the following code, the selection cells of a graph are encoded and the output is displayed in a dialog box.

var enc = new mxCodec();
+var cells = graph.getSelectionCells();
+mxUtils.alert(mxUtils.getPrettyXml(enc.encode(cells)));

Newlines in the XML can be coverted to <br>, in which case a ‘<br>’ argument must be passed to mxUtils.getXml as the second argument.

Example

Using the code below, an XML document is decodec into an existing model.  The document may be obtained using one of the functions in mxUtils for loading an XML file, eg.  mxUtils.get, or using mxUtils.parseXml for parsing an XML string.

var decoder = new mxCodec(doc)
+decoder.decode(doc.documentElement, graph.getModel());

Debugging

For debugging i/o you can use the following code to get the sequence of encoded objects:

var oldEncode = mxCodec.prototype.encode;
+mxCodec.prototype.encode = function(obj)
+{
+  mxLog.show();
+  mxLog.debug('mxCodec.encode: obj='+mxUtils.getFunctionName(obj.constructor));
+
+  return oldEncode.apply(this, arguments);
+};
Summary
mxCodecXML codec for JavaScript object graphs.
Functions
mxCodecConstructs an XML encoder/decoder for the specified owner document.
Variables
documentThe owner document of the codec.
objectsMaps from IDs to objects.
encodeDefaultsSpecifies if default values should be encoded.
Functions
putObjectAssoiates the given object with the given ID and returns the given object.
getObjectReturns the decoded object for the element with the specified ID in document.
lookupHook for subclassers to implement a custom lookup mechanism for cell IDs.
getElementByIdReturns the element with the given ID from document.
getIdReturns the ID of the specified object.
referenceHook for subclassers to implement a custom method for retrieving IDs from objects.
encodeEncodes the specified object and returns the resulting XML node.
decodeDecodes the given XML node.
encodeCellEncoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg.
isCellCodecReturns true if the given codec is a cell codec.
decodeCellDecodes cells that have been encoded using inversion, ie.
insertIntoGraphInserts the given cell into its parent and terminal cells.
setAttributeSets the attribute on the specified node to value.
+ +

Functions

+ +

mxCodec

function mxCodec(document)

Constructs an XML encoder/decoder for the specified owner document.

Parameters

documentOptional XML document that contains the data.  If no document is specified then a new document is created using mxUtils.createXmlDocument.
+ +

Variables

+ +

document

mxCodec.prototype.document

The owner document of the codec.

+ +

objects

mxCodec.prototype.objects

Maps from IDs to objects.

+ +

encodeDefaults

mxCodec.prototype.encodeDefaults

Specifies if default values should be encoded.  Default is false.

+ +

Functions

+ +

putObject

mxCodec.prototype.putObject = function(id,
obj)

Assoiates the given object with the given ID and returns the given object.

Parameters

idID for the object to be associated with.
objObject to be associated with the ID.
+ +

getObject

mxCodec.prototype.getObject = function(id)

Returns the decoded object for the element with the specified ID in document.  If the object is not known then lookup is used to find an object.  If no object is found, then the element with the respective ID from the document is parsed using decode.

+ +

lookup

mxCodec.prototype.lookup = function(id)

Hook for subclassers to implement a custom lookup mechanism for cell IDs.  This implementation always returns null.

Example

var codec = new mxCodec();
+codec.lookup = function(id)
+{
+  return model.getCell(id);
+};

Parameters

idID of the object to be returned.
+ +

getElementById

mxCodec.prototype.getElementById = function(id,
attr)

Returns the element with the given ID from document.  The optional attr argument specifies the name of the ID attribute.  Default is “id”.  The XPath expression used to find the element is //*[@attr=’arg’] where attr is the name of the ID attribute and arg is the given id.

Parameters

idString that contains the ID.
attrOptional string for the attributename.  Default is “id”.
+ +

getId

mxCodec.prototype.getId = function(obj)

Returns the ID of the specified object.  This implementation calls reference first and if that returns null handles the object as an mxCell by returning their IDs using mxCell.getId.  If no ID exists for the given cell, then an on-the-fly ID is generated using mxCellPath.create.

Parameters

objObject to return the ID for.
+ +

reference

mxCodec.prototype.reference = function(obj)

Hook for subclassers to implement a custom method for retrieving IDs from objects.  This implementation always returns null.

Example

var codec = new mxCodec();
+codec.reference = function(obj)
+{
+  return obj.getCustomId();
+};

Parameters

objObject whose ID should be returned.
+ +

encode

mxCodec.prototype.encode = function(obj)

Encodes the specified object and returns the resulting XML node.

Parameters

objObject to be encoded.
+ +

decode

mxCodec.prototype.decode = function(node,
into)

Decodes the given XML node.  The optional “into” argument specifies an existing object to be used.  If no object is given, then a new instance is created using the constructor from the codec.

The function returns the passed in object or the new instance if no object was given.

Parameters

nodeXML node to be decoded.
intoOptional object to be decodec into.
+ +

encodeCell

mxCodec.prototype.encodeCell = function(cell,
node,
includeChildren)

Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg.  mxModelCodec, mxChildChangeCodec and mxRootChangeCodec).  This implementation writes the given cell and its children as a (flat) sequence into the given node.  The children are not encoded if the optional includeChildren is false.  The function is in charge of adding the result into the given node and has no return value.

Parameters

cellmxCell to be encoded.
nodeParent XML node to add the encoded cell into.
includeChildrenOptional boolean indicating if the function should include all descendents.  Default is true.
+ +

isCellCodec

mxCodec.prototype.isCellCodec = function(codec)

Returns true if the given codec is a cell codec.  This uses mxCellCodec.isCellCodec to check if the codec is of the given type.

+ +

decodeCell

mxCodec.prototype.decodeCell = function(node,
restoreStructures)

Decodes cells that have been encoded using inversion, ie. where the user object is the enclosing node in the XML, and restores the group and graph structure in the cells.  Returns a new mxCell instance that represents the given node.

Parameters

nodeXML node that contains the cell data.
restoreStructuresOptional boolean indicating whether the graph structure should be restored by calling insert and insertEdge on the parent and terminals, respectively.  Default is true.
+ +

insertIntoGraph

mxCodec.prototype.insertIntoGraph = function(cell)

Inserts the given cell into its parent and terminal cells.

+ +

setAttribute

mxCodec.prototype.setAttribute = function(node,
attribute,
value)

Sets the attribute on the specified node to value.  This is a helper method that makes sure the attribute and value arguments are not null.

Parameters

nodeXML node to set the attribute for.
attributesAttributename to be set.
valueNew value of the attribute.
+ +
+ + + + + + + + + + +
function mxCodec(document)
Constructs an XML encoder/decoder for the specified owner document.
mxCodec.prototype.document
The owner document of the codec.
mxCodec.prototype.objects
Maps from IDs to objects.
mxCodec.prototype.encodeDefaults
Specifies if default values should be encoded.
mxCodec.prototype.putObject = function(id,
obj)
Assoiates the given object with the given ID and returns the given object.
mxCodec.prototype.getObject = function(id)
Returns the decoded object for the element with the specified ID in document.
mxCodec.prototype.lookup = function(id)
Hook for subclassers to implement a custom lookup mechanism for cell IDs.
mxCodec.prototype.getElementById = function(id,
attr)
Returns the element with the given ID from document.
mxCodec.prototype.getId = function(obj)
Returns the ID of the specified object.
mxCodec.prototype.reference = function(obj)
Hook for subclassers to implement a custom method for retrieving IDs from objects.
mxCodec.prototype.encode = function(obj)
Encodes the specified object and returns the resulting XML node.
mxCodec.prototype.decode = function(node,
into)
Decodes the given XML node.
mxCodec.prototype.encodeCell = function(cell,
node,
includeChildren)
Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg.
mxCodec.prototype.isCellCodec = function(codec)
Returns true if the given codec is a cell codec.
mxCodec.prototype.decodeCell = function(node,
restoreStructures)
Decodes cells that have been encoded using inversion, ie.
mxCodec.prototype.insertIntoGraph = function(cell)
Inserts the given cell into its parent and terminal cells.
mxCodec.prototype.setAttribute = function(node,
attribute,
value)
Sets the attribute on the specified node to value.
Generic codec for JavaScript objects that implements a mapping between JavaScript objects and XML nodes that maps each field or element to an attribute or child node, and vice versa.
Singleton class that acts as a global registry for codecs.
getXml: function(node,
linefeed)
Returns the XML content of the specified node.
get: function(url,
onload,
onerror)
Loads the specified URL asynchronously and invokes the given functions depending on the request status.
parseXml: function()
Parses the specified XML string into a new XML document and returns the new document.
createXmlDocument: function()
Returns a new, empty XML document.
Cells are the elements of the graph model.
mxCell.prototype.getId = function()
Returns the Id of the cell as a string.
create: function(cell)
Creates the cell path for the given cell.
Codec for mxGraphModels.
Codec for mxChildChanges.
Codec for mxRootChanges.
codec.isCellCodec = function()
Returns true since this is a cell codec.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxCodecRegistry-js.html b/docs/js-api/files/io/mxCodecRegistry-js.html new file mode 100644 index 000000000..f4c155bd2 --- /dev/null +++ b/docs/js-api/files/io/mxCodecRegistry-js.html @@ -0,0 +1,54 @@ + + +mxCodecRegistry + + + + + + + + + +

mxCodecRegistry

Singleton class that acts as a global registry for codecs.

Adding an mxCodec

1.  Define a default codec with a new instance of the object to be handled.

var codec = new mxObjectCodec(new mxGraphModel());

2.  Define the functions required for encoding and decoding objects.

codec.encode = function(enc, obj) { ... }
+codec.decode = function(dec, node, into) { ... }

3.  Register the codec in the mxCodecRegistry.

mxCodecRegistry.register(codec);

mxObjectCodec.decode may be used to either create a new instance of an object or to configure an existing instance, in which case the into argument points to the existing object.  In this case, we say the codec “configures” the object.

Summary
mxCodecRegistrySingleton class that acts as a global registry for codecs.
Variables
codecsMaps from constructor names to codecs.
aliasesMaps from classnames to codecnames.
Functions
registerRegisters a new codec and associates the name of the template constructor in the codec with the codec object.
addAliasAdds an alias for mapping a classname to a codecname.
getCodecReturns a codec that handles objects that are constructed using the given constructor.
+ +

Variables

+ +

codecs

Maps from constructor names to codecs.

+ +

aliases

Maps from classnames to codecnames.

+ +

Functions

+ +

register

register: function(codec)

Registers a new codec and associates the name of the template constructor in the codec with the codec object.

Parameters

codecmxObjectCodec to be registered.
+ +

addAlias

addAlias: function(classname,
codecname)

Adds an alias for mapping a classname to a codecname.

+ +

getCodec

getCodec: function(ctor)

Returns a codec that handles objects that are constructed using the given constructor.

Parameters

ctorJavaScript constructor function.
+ +
+ + + + + + + + + + +
register: function(codec)
Registers a new codec and associates the name of the template constructor in the codec with the codec object.
addAlias: function(classname,
codecname)
Adds an alias for mapping a classname to a codecname.
getCodec: function(ctor)
Returns a codec that handles objects that are constructed using the given constructor.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
mxObjectCodec.prototype.decode = function(dec,
node,
into)
Parses the given node into the object or returns a new object representing the given node.
Generic codec for JavaScript objects that implements a mapping between JavaScript objects and XML nodes that maps each field or element to an attribute or child node, and vice versa.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxDefaultKeyHandlerCodec-js.html b/docs/js-api/files/io/mxDefaultKeyHandlerCodec-js.html new file mode 100644 index 000000000..47740fa5a --- /dev/null +++ b/docs/js-api/files/io/mxDefaultKeyHandlerCodec-js.html @@ -0,0 +1,49 @@ + + +mxDefaultKeyHandlerCodec + + + + + + + + + +

mxDefaultKeyHandlerCodec

Custom codec for configuring mxDefaultKeyHandlers.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.  This codec only reads configuration data for existing key handlers, it does not encode or create key handlers.

Summary
mxDefaultKeyHandlerCodecCustom codec for configuring mxDefaultKeyHandlers.
Functions
encodeReturns null.
decodeReads a sequence of the following child nodes and attributes:
+ +

Functions

+ +

encode

codec.encode = function(enc,
obj)

Returns null.

+ +

decode

codec.decode = function(dec,
node,
into)

Reads a sequence of the following child nodes and attributes:

Child Nodes

addBinds a keystroke to an actionname.

Attributes

asKeycode.
actionActionname to execute in editor.
controlOptional boolean indicating if the control key must be pressed.

Example

<mxDefaultKeyHandler as="keyHandler">
+  <add as="88" control="true" action="cut"/>
+  <add as="67" control="true" action="copy"/>
+  <add as="86" control="true" action="paste"/>
+</mxDefaultKeyHandler>

The keycodes are for the x, c and v keys.

See also: mxDefaultKeyHandler.bindAction, http://www.js-examples.com/page/tutorials__key_codes.html

+ +
+ + + + + + + + + + +
Binds keycodes to actionnames in an editor.
codec.encode = function(enc,
obj)
Returns null.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
mxDefaultKeyHandler.prototype.bindAction = function (code,
action,
control)
Binds the specified keycode to the given action in editor.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxDefaultPopupMenuCodec-js.html b/docs/js-api/files/io/mxDefaultPopupMenuCodec-js.html new file mode 100644 index 000000000..62b867196 --- /dev/null +++ b/docs/js-api/files/io/mxDefaultPopupMenuCodec-js.html @@ -0,0 +1,45 @@ + + +mxDefaultPopupMenuCodec + + + + + + + + + +

mxDefaultPopupMenuCodec

Custom codec for configuring mxDefaultPopupMenus.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.  This codec only reads configuration data for existing popup menus, it does not encode or create menus.  Note that this codec only passes the configuration node to the popup menu, which uses the config to dynamically create menus.  See mxDefaultPopupMenu.createMenu.

Summary
mxDefaultPopupMenuCodecCustom codec for configuring mxDefaultPopupMenus.
Functions
encodeReturns null.
decodeUses the given node as the config for mxDefaultPopupMenu.
+ +

Functions

+ +

encode

codec.encode = function(enc,
obj)

Returns null.

+ +

decode

codec.decode = function(dec,
node,
into)

Uses the given node as the config for mxDefaultPopupMenu.

+ +
+ + + + + + + + + + +
Creates popupmenus for mouse events.
codec.encode = function(enc,
obj)
Returns null.
codec.decode = function(dec,
node,
into)
Uses the given node as the config for mxDefaultPopupMenu.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
mxDefaultPopupMenu.prototype.createMenu = function(editor,
menu,
cell,
evt)
This function is called from mxEditor to add items to the given menu based on config.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxDefaultToolbarCodec-js.html b/docs/js-api/files/io/mxDefaultToolbarCodec-js.html new file mode 100644 index 000000000..9dbbb3d6e --- /dev/null +++ b/docs/js-api/files/io/mxDefaultToolbarCodec-js.html @@ -0,0 +1,66 @@ + + +mxDefaultToolbarCodec + + + + + + + + + +

mxDefaultToolbarCodec

Custom codec for configuring mxDefaultToolbars.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.  This codec only reads configuration data for existing toolbars handlers, it does not encode or create toolbars.

Summary
mxDefaultToolbarCodecCustom codec for configuring mxDefaultToolbars.
Functions
encodeReturns null.
decodeReads a sequence of the following child nodes and attributes:
+ +

Functions

+ +

encode

codec.encode = function(enc,
obj)

Returns null.

+ +

decode

codec.decode = function(dec,
node,
into)

Reads a sequence of the following child nodes and attributes:

Child Nodes

addAdds a new item to the toolbar.  See below for attributes.
separatorAdds a vertical separator.  No attributes.
hrAdds a horizontal separator.  No attributes.
brAdds a linefeed.  No attributes.

Attributes

asResource key for the label.
actionName of the action to execute in enclosing editor.
modeModename (see below).
templateTemplate name for cell insertion.
styleOptional style to override the template style.
iconIcon (relative/absolute URL).
pressedIconOptional icon for pressed state (relative/absolute URL).
idOptional ID to be used for the created DOM element.
toggleOptional 0 or 1 to disable toggling of the element.  Default is 1 (true).

The action, mode and template attributes are mutually exclusive.  The style can only be used with the template attribute.  The add node may contain another sequence of add nodes with as and action attributes to create a combo box in the toolbar.  If the icon is specified then a list of the child node is expected to have its template attribute set and the action is ignored instead.

Nodes with a specified template may define a function to be used for inserting the cloned template into the graph.  Here is an example of such a node:

<add as="Swimlane" template="swimlane" icon="images/swimlane.gif"><![CDATA[
+  function (editor, cell, evt, targetCell)
+  {
+    var pt = mxUtils.convertPoint(
+      editor.graph.container, mxEvent.getClientX(evt),
+        mxEvent.getClientY(evt));
+    return editor.addVertex(targetCell, cell, pt.x, pt.y);
+  }
+]]></add>

In the above function, editor is the enclosing mxEditor instance, cell is the clone of the template, evt is the mouse event that represents the drop and targetCell is the cell under the mousepointer where the drop occurred.  The targetCell is retrieved using mxGraph.getCellAt.

Futhermore, nodes with the mode attribute may define a function to be executed upon selection of the respective toolbar icon.  In the example below, the default edge style is set when this specific connect-mode is activated:

<add as="connect" mode="connect"><![CDATA[
+  function (editor)
+  {
+    if (editor.defaultEdge != null)
+    {
+      editor.defaultEdge.style = 'straightEdge';
+    }
+  }
+]]></add>

Modes

selectLeft mouse button used for rubberband- & cell-selection.
connectAllows connecting vertices by inserting new edges.
panDisables selection and switches to panning on the left button.

Example

To add items to the toolbar

<mxDefaultToolbar as="toolbar">
+  <add as="save" action="save" icon="images/save.gif"/>
+  <br/><hr/>
+  <add as="select" mode="select" icon="images/select.gif"/>
+  <add as="connect" mode="connect" icon="images/connect.gif"/>
+</mxDefaultToolbar>
+ +
+ + + + + + + + + + +
Toolbar for the editor.
codec.encode = function(enc,
obj)
Returns null.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
mxGraph.prototype.getCellAt = function(x,
y,
parent,
vertices,
edges)
Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxEditorCodec-js.html b/docs/js-api/files/io/mxEditorCodec-js.html new file mode 100644 index 000000000..72c202389 --- /dev/null +++ b/docs/js-api/files/io/mxEditorCodec-js.html @@ -0,0 +1,56 @@ + + +mxEditorCodec + + + + + + + + + +

mxEditorCodec

Codec for mxEditors.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.

Transient Fields

  • modified
  • lastSnapshot
  • ignoredChanges
  • undoManager
  • graphContainer
  • toolbarContainer
Summary
mxEditorCodecCodec for mxEditors.
Functions
beforeDecodeDecodes the ui-part of the configuration node by reading a sequence of the following child nodes and attributes and passes the control to the default decoding mechanism:
decodeChildOverrides decode child to handle special child nodes.
decodeTemplatesDecodes the cells from the given node as templates.
decodeTemplatesDecodes the cells from the given node as templates.
+ +

Functions

+ +

beforeDecode

Decodes the ui-part of the configuration node by reading a sequence of the following child nodes and attributes and passes the control to the default decoding mechanism:

Child Nodes

stylesheetAdds a CSS stylesheet to the document.
resourceAdds the basename of a resource bundle.
addCreates or configures a known UI element.

These elements may appear in any order given that the graph UI element is added before the toolbar element (see Known Keys).

Attributes

asKey for the UI element (see below).
elementID for the element in the document.
styleCSS style to be used for the element or window.
xX coordinate for the new window.
yY coordinate for the new window.
widthWidth for the new window.
heightOptional height for the new window.
nameName of the stylesheet (absolute/relative URL).
basenameBasename of the resource bundle (see mxResources).

The x, y, width and height attributes are used to create a new mxWindow if the element attribute is not specified in an add node.  The name and basename are only used in the stylesheet and resource nodes, respectively.

Known Keys

graphMain graph element (see mxEditor.setGraphContainer).
titleTitle element (see mxEditor.setTitleContainer).
toolbarToolbar element (see mxEditor.setToolbarContainer).
statusStatus bar element (see mxEditor.setStatusContainer).

Example

<ui>
+  <stylesheet name="css/process.css"/>
+  <resource basename="resources/mxApplication"/>
+  <add as="graph" element="graph"
+    style="left:70px;right:20px;top:20px;bottom:40px"/>
+  <add as="status" element="status"/>
+  <add as="toolbar" x="10" y="20" width="54"/>
+</ui>
+ +

decodeChild

codec.decodeChild = function(dec,
child,
obj)

Overrides decode child to handle special child nodes.

+ +

decodeTemplates

Decodes the cells from the given node as templates.

+ +

decodeTemplates

codec.decodeTemplates = function(dec,
node,
editor)

Decodes the cells from the given node as templates.

+ +
+ + + + + + + + + + +
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
codec.decodeChild = function(dec,
child,
obj)
Overrides decode child to handle special child nodes.
codec.decodeTemplates = function(dec,
node,
editor)
Decodes the cells from the given node as templates.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
Implements internationalization.
Basic window inside a document.
mxEditor.prototype.setGraphContainer = function (container)
Sets the graph’s container using mxGraph.init.
mxEditor.prototype.setTitleContainer = function (container)
Creates a listener to update the inner HTML of the specified DOM node with the value of getTitle.
mxEditor.prototype.setToolbarContainer = function (container)
Initializes the toolbar for the given container.
mxEditor.prototype.setStatusContainer = function (container)
Creates the status using the specified container.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxGenericChangeCodec-js.html b/docs/js-api/files/io/mxGenericChangeCodec-js.html new file mode 100644 index 000000000..0627ae6e0 --- /dev/null +++ b/docs/js-api/files/io/mxGenericChangeCodec-js.html @@ -0,0 +1,45 @@ + + +mxGenericChangeCodec + + + + + + + + + +

mxGenericChangeCodec

Codec for mxValueChanges, mxStyleChanges, mxGeometryChanges, mxCollapseChanges and mxVisibleChanges.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.

Transient Fields

  • model
  • previous

Reference Fields

  • cell
Summary
mxGenericChangeCodecCodec for mxValueChanges, mxStyleChanges, mxGeometryChanges, mxCollapseChanges and mxVisibleChanges.
Functions
mxGenericChangeCodecFactory function that creates a mxObjectCodec for the specified change and fieldname.
afterDecodeRestores the state by assigning the previous value.
+ +

Functions

+ +

mxGenericChangeCodec

var mxGenericChangeCodec = function(obj,
variable)

Factory function that creates a mxObjectCodec for the specified change and fieldname.

Parameters

objAn instance of the change object.
variableThe fieldname for the change data.
+ +

afterDecode

codec.afterDecode = function(dec,
node,
obj)

Restores the state by assigning the previous value.

+ +
+ + + + + + + + + + +
Action to change a user object in a model.
Action to change a cell’s style in a model.
Action to change a cell’s geometry in a model.
Action to change a cell’s collapsed state in a model.
Action to change a cell’s visible state in a model.
var mxGenericChangeCodec = function(obj,
variable)
Factory function that creates a mxObjectCodec for the specified change and fieldname.
Generic codec for JavaScript objects that implements a mapping between JavaScript objects and XML nodes that maps each field or element to an attribute or child node, and vice versa.
codec.afterDecode = function(dec,
node,
obj)
Restores the state by assigning the previous value.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxGraphCodec-js.html b/docs/js-api/files/io/mxGraphCodec-js.html new file mode 100644 index 000000000..e314ca52e --- /dev/null +++ b/docs/js-api/files/io/mxGraphCodec-js.html @@ -0,0 +1,39 @@ + + +mxGraphCodec + + + + + + + + + +

mxGraphCodec

Codec for mxGraphs.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.

Transient Fields

  • graphListeners
  • eventListeners
  • view
  • container
  • cellRenderer
  • editor
  • selection
+ +
+ + + + + + + + + + +
Extends mxEventSource to implement a graph component for the browser.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxGraphViewCodec-js.html b/docs/js-api/files/io/mxGraphViewCodec-js.html new file mode 100644 index 000000000..4a690dddf --- /dev/null +++ b/docs/js-api/files/io/mxGraphViewCodec-js.html @@ -0,0 +1,45 @@ + + +mxGraphViewCodec + + + + + + + + + +

mxGraphViewCodec

Custom encoder for mxGraphViews.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.  This codec only writes views into a XML format that can be used to create an image for the graph, that is, it contains absolute coordinates with computed perimeters, edge styles and cell styles.

Summary
mxGraphViewCodecCustom encoder for mxGraphViews.
Functions
encodeEncodes the given mxGraphView using encodeCell starting at the model’s root.
encodeCellRecursively encodes the specifed cell.
+ +

Functions

+ +

encode

codec.encode = function(enc,
view)

Encodes the given mxGraphView using encodeCell starting at the model’s root.  This returns the top-level graph node of the recursive encoding.

+ +

encodeCell

codec.encodeCell = function(enc,
view,
cell)

Recursively encodes the specifed cell.  Uses layer as the default nodename.  If the cell’s parent is null, then graph is used for the nodename.  If mxGraphModel.isEdge returns true for the cell, then edge is used for the nodename, else if mxGraphModel.isVertex returns true for the cell, then vertex is used for the nodename.

mxGraph.getLabel is used to create the label attribute for the cell.  For graph nodes and vertices the bounds are encoded into x, y, width and height.  For edges the points are encoded into a points attribute as a space-separated list of comma-separated coordinate pairs (eg. x0,y0 x1,y1 ... xn,yn).  All values from the cell style are added as attribute values to the node.

+ +
+ + + + + + + + + + +
Extends mxEventSource to implement a view for a graph.
codec.encode = function(enc,
view)
Encodes the given mxGraphView using encodeCell starting at the model’s root.
codec.encodeCell = function(enc,
view,
cell)
Recursively encodes the specifed cell.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
mxGraphModel.prototype.isEdge = function(cell)
Returns true if the given cell is an edge.
mxGraphModel.prototype.isVertex = function(cell)
Returns true if the given cell is a vertex.
mxGraph.prototype.getLabel = function(cell)
Returns a string or DOM node that represents the label for the given cell.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxModelCodec-js.html b/docs/js-api/files/io/mxModelCodec-js.html new file mode 100644 index 000000000..8ad71f3ae --- /dev/null +++ b/docs/js-api/files/io/mxModelCodec-js.html @@ -0,0 +1,47 @@ + + +mxModelCodec + + + + + + + + + +

mxModelCodec

Codec for mxGraphModels.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.

Summary
mxModelCodecCodec for mxGraphModels.
Functions
encodeObjectEncodes the given mxGraphModel by writing a (flat) XML sequence of cell nodes as produced by the mxCellCodec.
decodeChildOverrides decode child to handle special child nodes.
decodeRootReads the cells into the graph model.
+ +

Functions

+ +

encodeObject

codec.encodeObject = function(enc,
obj,
node)

Encodes the given mxGraphModel by writing a (flat) XML sequence of cell nodes as produced by the mxCellCodec.  The sequence is wrapped-up in a node with the name root.

+ +

decodeChild

codec.decodeChild = function(dec,
child,
obj)

Overrides decode child to handle special child nodes.

+ +

decodeRoot

codec.decodeRoot = function(dec,
root,
model)

Reads the cells into the graph model.  All cells are children of the root element in the node.

+ +
+ + + + + + + + + + +
Extends mxEventSource to implement a graph model.
codec.encodeObject = function(enc,
obj,
node)
Encodes the given mxGraphModel by writing a (flat) XML sequence of cell nodes as produced by the mxCellCodec.
Codec for mxCells.
codec.decodeChild = function(dec,
child,
obj)
Overrides decode child to handle special child nodes.
codec.decodeRoot = function(dec,
root,
model)
Reads the cells into the graph model.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxObjectCodec-js.html b/docs/js-api/files/io/mxObjectCodec-js.html new file mode 100644 index 000000000..7d50f3fdb --- /dev/null +++ b/docs/js-api/files/io/mxObjectCodec-js.html @@ -0,0 +1,132 @@ + + +mxObjectCodec + + + + + + + + + +

mxObjectCodec

Generic codec for JavaScript objects that implements a mapping between JavaScript objects and XML nodes that maps each field or element to an attribute or child node, and vice versa.

Atomic Values

Consider the following example.

var obj = new Object();
+obj.foo = "Foo";
+obj.bar = "Bar";

This object is encoded into an XML node using the following.

var enc = new mxCodec();
+var node = enc.encode(obj);

The output of the encoding may be viewed using mxLog as follows.

mxLog.show();
+mxLog.debug(mxUtils.getPrettyXml(node));

Finally, the result of the encoding looks as follows.

<Object foo="Foo" bar="Bar"/>

In the above output, the foo and bar fields have been mapped to attributes with the same names, and the name of the constructor was used for the nodename.

Booleans

Since booleans are numbers in JavaScript, all boolean values are encoded into 1 for true and 0 for false.  The decoder also accepts the string true and false for boolean values.

Objects

The above scheme is applied to all atomic fields, that is, to all non-object fields of an object.  For object fields, a child node is created with a special attribute that contains the fieldname.  This special attribute is called “as” and hence, as is a reserved word that should not be used for a fieldname.

Consider the following example where foo is an object and bar is an atomic property of foo.

var obj = {foo: {bar: "Bar"}};

This will be mapped to the following XML structure by mxObjectCodec.

<Object>
+  <Object bar="Bar" as="foo"/>
+</Object>

In the above output, the inner Object node contains the as-attribute that specifies the fieldname in the enclosing object.  That is, the field foo was mapped to a child node with an as-attribute that has the value foo.

Arrays

Arrays are special objects that are either associative, in which case each key, value pair is treated like a field where the key is the fieldname, or they are a sequence of atomic values and objects, which is mapped to a sequence of child nodes.  For object elements, the above scheme is applied without the use of the special as-attribute for creating each child.  For atomic elements, a special add-node is created with the value stored in the value-attribute.

For example, the following array contains one atomic value and one object with a field called bar.  Furthermore it contains two associative entries called bar with an atomic value, and foo with an object value.

var obj = ["Bar", {bar: "Bar"}];
+obj["bar"] = "Bar";
+obj["foo"] = {bar: "Bar"};

This array is represented by the following XML nodes.

<Array bar="Bar">
+  <add value="Bar"/>
+  <Object bar="Bar"/>
+  <Object bar="Bar" as="foo"/>
+</Array>

The Array node name is the name of the constructor.  The additional as-attribute in the last child contains the key of the associative entry, whereas the second last child is part of the array sequence and does not have an as-attribute.

References

Objects may be represented as child nodes or attributes with ID values, which are used to lookup the object in a table within mxCodec.  The isReference function is in charge of deciding if a specific field should be encoded as a reference or not.  Its default implementation returns true if the fieldname is in idrefs, an array of strings that is used to configure the mxObjectCodec.

Using this approach, the mapping does not guarantee that the referenced object itself exists in the document.  The fields that are encoded as references must be carefully chosen to make sure all referenced objects exist in the document, or may be resolved by some other means if necessary.

For example, in the case of the graph model all cells are stored in a tree whose root is referenced by the model’s root field.  A tree is a structure that is well suited for an XML representation, however, the additional edges in the graph model have a reference to a source and target cell, which are also contained in the tree.  To handle this case, the source and target cell of an edge are treated as references, whereas the children are treated as objects.  Since all cells are contained in the tree and no edge references a source or target outside the tree, this setup makes sure all referenced objects are contained in the document.

In the case of a tree structure we must further avoid infinite recursion by ignoring the parent reference of each child.  This is done by returning true in isExcluded, whose default implementation uses the array of excluded fieldnames passed to the mxObjectCodec constructor.

References are only used for cells in mxGraph.  For defining other referencable object types, the codec must be able to work out the ID of an object.  This is done by implementing mxCodec.reference.  For decoding a reference, the XML node with the respective id-attribute is fetched from the document, decoded, and stored in a lookup table for later reference.  For looking up external objects, mxCodec.lookup may be implemented.

Expressions

For decoding JavaScript expressions, the add-node may be used with a text content that contains the JavaScript expression.  For example, the following creates a field called foo in the enclosing object and assigns it the value of mxConstants.ALIGN_LEFT.

<Object>
+  <add as="foo">mxConstants.ALIGN_LEFT</add>
+</Object>

The resulting object has a field called foo with the value “left”.  Its XML representation looks as follows.

<Object foo="left"/>

This means the expression is evaluated at decoding time and the result of the evaluation is stored in the respective field.  Valid expressions are all JavaScript expressions, including function definitions, which are mapped to functions on the resulting object.

Summary
mxObjectCodecGeneric codec for JavaScript objects that implements a mapping between JavaScript objects and XML nodes that maps each field or element to an attribute or child node, and vice versa.
Functions
mxObjectCodecConstructs a new codec for the specified template object.
Variables
templateHolds the template object associated with this codec.
excludeArray containing the variable names that should be ignored by the codec.
idrefsArray containing the variable names that should be turned into or converted from references.
mappingMaps from from fieldnames to XML attribute names.
reverseMaps from from XML attribute names to fieldnames.
Functions
getNameReturns the name used for the nodenames and lookup of the codec when classes are encoded and nodes are decoded.
cloneTemplateReturns a new instance of the template for this codec.
getFieldNameReturns the fieldname for the given attributename.
getAttributeNameReturns the attributename for the given fieldname.
isExcludedReturns true if the given attribute is to be ignored by the codec.
isReferenceReturns true if the given fieldname is to be treated as a textual reference (ID).
encodeEncodes the specified object and returns a node representing then given object.
encodeObjectEncodes the value of each member in then given obj into the given node using encodeValue.
encodeValueConverts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node.
writeAttributeWrites the given value into node using writePrimitiveAttribute or writeComplexAttribute depending on the type of the value.
writePrimitiveAttributeWrites the given value as an attribute of the given node.
writeComplexAttributeWrites the given value as a child node of the given node.
convertValueToXmlConverts true to “1” and false to “0”.
convertValueFromXmlConverts booleans and numeric values to the respective types.
beforeEncodeHook for subclassers to pre-process the object before encoding.
afterEncodeHook for subclassers to post-process the node for the given object after encoding and return the post-processed node.
decodeParses the given node into the object or returns a new object representing the given node.
decodeNodeCalls decodeAttributes and decodeChildren for the given node.
decodeAttributesDecodes all attributes of the given node using decodeAttribute.
decodeAttributeReads the given attribute into the specified object.
decodeChildrenDecodec all children of the given node using decodeChild.
decodeChildReads the specified child into the given object.
getFieldTemplateReturns the template instance for the given field.
addObjectValueSets the decoded child node as a value of the given object.
processIncludeReturns true if the given node is an include directive and executes the include by decoding the XML document.
beforeDecodeHook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode.
afterDecodeHook for subclassers to post-process the object after decoding.
+ +

Functions

+ +

mxObjectCodec

function mxObjectCodec(template,
exclude,
idrefs,
mapping)

Constructs a new codec for the specified template object.  The variables in the optional exclude array are ignored by the codec.  Variables in the optional idrefs array are turned into references in the XML.  The optional mapping may be used to map from variable names to XML attributes.  The argument is created as follows:

var mapping = new Object();
+mapping['variableName'] = 'attribute-name';

Parameters

templatePrototypical instance of the object to be encoded/decoded.
excludeOptional array of fieldnames to be ignored.
idrefsOptional array of fieldnames to be converted to/from references.
mappingOptional mapping from field- to attributenames.
+ +

Variables

+ +

template

mxObjectCodec.prototype.template

Holds the template object associated with this codec.

+ +

exclude

mxObjectCodec.prototype.exclude

Array containing the variable names that should be ignored by the codec.

+ +

idrefs

mxObjectCodec.prototype.idrefs

Array containing the variable names that should be turned into or converted from references.  See mxCodec.getId and mxCodec.getObject.

+ +

mapping

mxObjectCodec.prototype.mapping

Maps from from fieldnames to XML attribute names.

+ +

reverse

mxObjectCodec.prototype.reverse

Maps from from XML attribute names to fieldnames.

+ +

Functions

+ +

getName

mxObjectCodec.prototype.getName = function()

Returns the name used for the nodenames and lookup of the codec when classes are encoded and nodes are decoded.  For classes to work with this the codec registry automatically adds an alias for the classname if that is different than what this returns.  The default implementation returns the classname of the template class.

+ +

cloneTemplate

mxObjectCodec.prototype.cloneTemplate = function()

Returns a new instance of the template for this codec.

+ +

getFieldName

mxObjectCodec.prototype.getFieldName = function(attributename)

Returns the fieldname for the given attributename.  Looks up the value in the reverse mapping or returns the input if there is no reverse mapping for the given name.

+ +

getAttributeName

mxObjectCodec.prototype.getAttributeName = function(fieldname)

Returns the attributename for the given fieldname.  Looks up the value in the mapping or returns the input if there is no mapping for the given name.

+ +

isExcluded

mxObjectCodec.prototype.isExcluded = function(obj,
attr,
value,
write)

Returns true if the given attribute is to be ignored by the codec.  This implementation returns true if the given fieldname is in exclude or if the fieldname equals mxObjectIdentity.FIELD_NAME.

Parameters

objObject instance that contains the field.
attrFieldname of the field.
valueValue of the field.
writeBoolean indicating if the field is being encoded or decoded.  Write is true if the field is being encoded, else it is being decoded.
+ +

isReference

mxObjectCodec.prototype.isReference = function(obj,
attr,
value,
write)

Returns true if the given fieldname is to be treated as a textual reference (ID).  This implementation returns true if the given fieldname is in idrefs.

Parameters

objObject instance that contains the field.
attrFieldname of the field.
valueValue of the field.
writeBoolean indicating if the field is being encoded or decoded.  Write is true if the field is being encoded, else it is being decoded.
+ +

encode

mxObjectCodec.prototype.encode = function(enc,
obj)

Encodes the specified object and returns a node representing then given object.  Calls beforeEncode after creating the node and afterEncode with the resulting node after processing.

Enc is a reference to the calling encoder.  It is used to encode complex objects and create references.

This implementation encodes all variables of an object according to the following rules:

  • If the variable name is in exclude then it is ignored.
  • If the variable name is in idrefs then mxCodec.getId is used to replace the object with its ID.
  • The variable name is mapped using mapping.
  • If obj is an array and the variable name is numeric (ie. an index) then it is not encoded.
  • If the value is an object, then the codec is used to create a child node with the variable name encoded into the “as” attribute.
  • Else, if <encodeDefaults> is true or the value differs from the template value, then ...
  • ... if obj is not an array, then the value is mapped to an attribute.
  • ... else if obj is an array, the value is mapped to an add child with a value attribute or a text child node, if the value is a function.

If no ID exists for a variable in idrefs or if an object cannot be encoded, a warning is issued using mxLog.warn.

Returns the resulting XML node that represents the given object.

Parameters

encmxCodec that controls the encoding process.
objObject to be encoded.
+ +

encodeObject

mxObjectCodec.prototype.encodeObject = function(enc,
obj,
node)

Encodes the value of each member in then given obj into the given node using encodeValue.

Parameters

encmxCodec that controls the encoding process.
objObject to be encoded.
nodeXML node that contains the encoded object.
+ +

encodeValue

mxObjectCodec.prototype.encodeValue = function(enc,
obj,
name,
value,
node)

Converts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node.

Parameters

encmxCodec that controls the encoding process.
objObject whose property is going to be encoded.
nameXML node that contains the encoded object.
valueValue of the property to be encoded.
nodeXML node that contains the encoded object.
+ +

writeAttribute

mxObjectCodec.prototype.writeAttribute = function(enc,
obj,
attr,
value,
node)

Writes the given value into node using writePrimitiveAttribute or writeComplexAttribute depending on the type of the value.

+ +

writePrimitiveAttribute

mxObjectCodec.prototype.writePrimitiveAttribute = function(enc,
obj,
attr,
value,
node)

Writes the given value as an attribute of the given node.

+ +

writeComplexAttribute

mxObjectCodec.prototype.writeComplexAttribute = function(enc,
obj,
attr,
value,
node)

Writes the given value as a child node of the given node.

+ +

convertValueToXml

mxObjectCodec.prototype.convertValueToXml = function(value)

Converts true to “1” and false to “0”.  All other values are ignored.

+ +

convertValueFromXml

mxObjectCodec.prototype.convertValueFromXml = function(value)

Converts booleans and numeric values to the respective types.

+ +

beforeEncode

mxObjectCodec.prototype.beforeEncode = function(enc,
obj,
node)

Hook for subclassers to pre-process the object before encoding.  This returns the input object.  The return value of this function is used in encode to perform the default encoding into the given node.

Parameters

encmxCodec that controls the encoding process.
objObject to be encoded.
nodeXML node to encode the object into.
+ +

afterEncode

mxObjectCodec.prototype.afterEncode = function(enc,
obj,
node)

Hook for subclassers to post-process the node for the given object after encoding and return the post-processed node.  This implementation returns the input node.  The return value of this method is returned to the encoder from encode.

Parameters

encmxCodec that controls the encoding process.
objObject to be encoded.
nodeXML node that represents the default encoding.
+ +

decode

mxObjectCodec.prototype.decode = function(dec,
node,
into)

Parses the given node into the object or returns a new object representing the given node.

Dec is a reference to the calling decoder.  It is used to decode complex objects and resolve references.

If a node has an id attribute then the object cache is checked for the object.  If the object is not yet in the cache then it is constructed using the constructor of template and cached in mxCodec.objects.

This implementation decodes all attributes and childs of a node according to the following rules:

  • If the variable name is in exclude or if the attribute name is “id” or “as” then it is ignored.
  • If the variable name is in idrefs then mxCodec.getObject is used to replace the reference with an object.
  • The variable name is mapped using a reverse mapping.
  • If the value has a child node, then the codec is used to create a child object with the variable name taken from the “as” attribute.
  • If the object is an array and the variable name is empty then the value or child object is appended to the array.
  • If an add child has no value or the object is not an array then the child text content is evaluated using mxUtils.eval.

For add nodes where the object is not an array and the variable name is defined, the default mechanism is used, allowing to override/add methods as follows:

<Object>
+  <add as="hello"><![CDATA[
+    function(arg1) {
+      mxUtils.alert('Hello '+arg1);
+    }
+  ]]></add>
+</Object>

If no object exists for an ID in idrefs a warning is issued using mxLog.warn.

Returns the resulting object that represents the given XML node or the object given to the method as the into parameter.

Parameters

decmxCodec that controls the decoding process.
nodeXML node to be decoded.
intoOptional objec to encode the node into.
+ +

decodeNode

mxObjectCodec.prototype.decodeNode = function(dec,
node,
obj)

Calls decodeAttributes and decodeChildren for the given node.

+ +

decodeAttributes

mxObjectCodec.prototype.decodeAttributes = function(dec,
node,
obj)

Decodes all attributes of the given node using decodeAttribute.

+ +

decodeAttribute

mxObjectCodec.prototype.decodeAttribute = function(dec,
attr,
obj)

Reads the given attribute into the specified object.

+ +

decodeChildren

mxObjectCodec.prototype.decodeChildren = function(dec,
node,
obj)

Decodec all children of the given node using decodeChild.

+ +

decodeChild

mxObjectCodec.prototype.decodeChild = function(dec,
child,
obj)

Reads the specified child into the given object.

+ +

getFieldTemplate

mxObjectCodec.prototype.getFieldTemplate = function(obj,
fieldname,
child)

Returns the template instance for the given field.  This returns the value of the field, null if the value is an array or an empty collection if the value is a collection.  The value is then used to populate the field for a new instance.  For strongly typed languages it may be required to override this to return the correct collection instance based on the encoded child.

+ +

addObjectValue

mxObjectCodec.prototype.addObjectValue = function(obj,
fieldname,
value,
template)

Sets the decoded child node as a value of the given object.  If the object is a map, then the value is added with the given fieldname as a key.  If the fieldname is not empty, then setFieldValue is called or else, if the object is a collection, the value is added to the collection.  For strongly typed languages it may be required to override this with the correct code to add an entry to an object.

+ +

processInclude

mxObjectCodec.prototype.processInclude = function(dec,
node,
into)

Returns true if the given node is an include directive and executes the include by decoding the XML document.  Returns false if the given node is not an include directive.

Parameters

decmxCodec that controls the encoding/decoding process.
nodeXML node to be checked.
intoOptional object to pass-thru to the codec.
+ +

beforeDecode

mxObjectCodec.prototype.beforeDecode = function(dec,
node,
obj)

Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode.  The object is created based on the template in the calling method and is never null.  This implementation returns the input node.  The return value of this function is used in decode to perform the default decoding into the given object.

Parameters

decmxCodec that controls the decoding process.
nodeXML node to be decoded.
objObject to encode the node into.
+ +

afterDecode

mxObjectCodec.prototype.afterDecode = function(dec,
node,
obj)

Hook for subclassers to post-process the object after decoding.  This implementation returns the given object without any changes.  The return value of this method is returned to the decoder from decode.

Parameters

encmxCodec that controls the encoding process.
nodeXML node to be decoded.
objObject that represents the default decoding.
+ +
+ + + + + + + + + + +
function mxObjectCodec(template,
exclude,
idrefs,
mapping)
Constructs a new codec for the specified template object.
mxObjectCodec.prototype.template
Holds the template object associated with this codec.
mxObjectCodec.prototype.exclude
Array containing the variable names that should be ignored by the codec.
mxObjectCodec.prototype.idrefs
Array containing the variable names that should be turned into or converted from references.
mxObjectCodec.prototype.mapping
Maps from from fieldnames to XML attribute names.
mxObjectCodec.prototype.reverse
Maps from from XML attribute names to fieldnames.
mxObjectCodec.prototype.getName = function()
Returns the name used for the nodenames and lookup of the codec when classes are encoded and nodes are decoded.
mxObjectCodec.prototype.cloneTemplate = function()
Returns a new instance of the template for this codec.
mxObjectCodec.prototype.getFieldName = function(attributename)
Returns the fieldname for the given attributename.
mxObjectCodec.prototype.getAttributeName = function(fieldname)
Returns the attributename for the given fieldname.
mxObjectCodec.prototype.isExcluded = function(obj,
attr,
value,
write)
Returns true if the given attribute is to be ignored by the codec.
mxObjectCodec.prototype.isReference = function(obj,
attr,
value,
write)
Returns true if the given fieldname is to be treated as a textual reference (ID).
mxObjectCodec.prototype.encode = function(enc,
obj)
Encodes the specified object and returns a node representing then given object.
mxObjectCodec.prototype.encodeObject = function(enc,
obj,
node)
Encodes the value of each member in then given obj into the given node using encodeValue.
mxObjectCodec.prototype.encodeValue = function(enc,
obj,
name,
value,
node)
Converts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node.
mxObjectCodec.prototype.writeAttribute = function(enc,
obj,
attr,
value,
node)
Writes the given value into node using writePrimitiveAttribute or writeComplexAttribute depending on the type of the value.
mxObjectCodec.prototype.writePrimitiveAttribute = function(enc,
obj,
attr,
value,
node)
Writes the given value as an attribute of the given node.
mxObjectCodec.prototype.writeComplexAttribute = function(enc,
obj,
attr,
value,
node)
Writes the given value as a child node of the given node.
mxObjectCodec.prototype.convertValueToXml = function(value)
Converts true to “1” and false to “0”.
mxObjectCodec.prototype.convertValueFromXml = function(value)
Converts booleans and numeric values to the respective types.
mxObjectCodec.prototype.beforeEncode = function(enc,
obj,
node)
Hook for subclassers to pre-process the object before encoding.
mxObjectCodec.prototype.afterEncode = function(enc,
obj,
node)
Hook for subclassers to post-process the node for the given object after encoding and return the post-processed node.
mxObjectCodec.prototype.decode = function(dec,
node,
into)
Parses the given node into the object or returns a new object representing the given node.
mxObjectCodec.prototype.decodeNode = function(dec,
node,
obj)
Calls decodeAttributes and decodeChildren for the given node.
mxObjectCodec.prototype.decodeAttributes = function(dec,
node,
obj)
Decodes all attributes of the given node using decodeAttribute.
mxObjectCodec.prototype.decodeChildren = function(dec,
node,
obj)
Decodec all children of the given node using decodeChild.
mxObjectCodec.prototype.decodeAttribute = function(dec,
attr,
obj)
Reads the given attribute into the specified object.
mxObjectCodec.prototype.decodeChild = function(dec,
child,
obj)
Reads the specified child into the given object.
mxObjectCodec.prototype.getFieldTemplate = function(obj,
fieldname,
child)
Returns the template instance for the given field.
mxObjectCodec.prototype.addObjectValue = function(obj,
fieldname,
value,
template)
Sets the decoded child node as a value of the given object.
mxObjectCodec.prototype.processInclude = function(dec,
node,
into)
Returns true if the given node is an include directive and executes the include by decoding the XML document.
mxObjectCodec.prototype.beforeDecode = function(dec,
node,
obj)
Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode.
mxObjectCodec.prototype.afterDecode = function(dec,
node,
obj)
Hook for subclassers to post-process the object after decoding.
A singleton class that implements a simple console.
XML codec for JavaScript object graphs.
mxCodec.prototype.reference = function(obj)
Hook for subclassers to implement a custom method for retrieving IDs from objects.
mxCodec.prototype.lookup = function(id)
Hook for subclassers to implement a custom lookup mechanism for cell IDs.
Constant for left horizontal alignment.
mxCodec.prototype.getId = function(obj)
Returns the ID of the specified object.
mxCodec.prototype.getObject = function(id)
Returns the decoded object for the element with the specified ID in document.
Name of the field to be used to store the object ID.
warn: function()
Adds all arguments to the console if WARN is enabled.
mxCodec.prototype.objects
Maps from IDs to objects.
eval: function(expr)
Evaluates the given expression using eval and returns the JavaScript object that represents the expression result.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxRootChangeCodec-js.html b/docs/js-api/files/io/mxRootChangeCodec-js.html new file mode 100644 index 000000000..5cb3e3a81 --- /dev/null +++ b/docs/js-api/files/io/mxRootChangeCodec-js.html @@ -0,0 +1,47 @@ + + +mxRootChangeCodec + + + + + + + + + +

mxRootChangeCodec

Codec for mxRootChanges.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.

Transient Fields

  • model
  • previous
  • root
Summary
mxRootChangeCodecCodec for mxRootChanges.
Functions
onEncodeEncodes the child recursively.
beforeDecodeDecodes the optional children as cells using the respective decoder.
afterDecodeRestores the state by assigning the previous value.
+ +

Functions

+ +

onEncode

Encodes the child recursively.

+ +

beforeDecode

codec.beforeDecode = function(dec,
node,
obj)

Decodes the optional children as cells using the respective decoder.

+ +

afterDecode

codec.afterDecode = function(dec,
node,
obj)

Restores the state by assigning the previous value.

+ +
+ + + + + + + + + + +
Action to change the root in a model.
codec.beforeDecode = function(dec,
node,
obj)
Decodes the optional children as cells using the respective decoder.
codec.afterDecode = function(dec,
node,
obj)
Restores the state by assigning the previous value.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxStylesheetCodec-js.html b/docs/js-api/files/io/mxStylesheetCodec-js.html new file mode 100644 index 000000000..2f0c2408f --- /dev/null +++ b/docs/js-api/files/io/mxStylesheetCodec-js.html @@ -0,0 +1,54 @@ + + +mxStylesheetCodec + + + + + + + + + +

mxStylesheetCodec

Codec for mxStylesheets.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.

Summary
mxStylesheetCodecCodec for mxStylesheets.
Functions
encodeEncodes a stylesheet.
getStringValueReturns the string for encoding the given value.
decodeReads a sequence of the following child nodes and attributes:
+ +

Functions

+ +

encode

codec.encode = function(enc,
obj)

Encodes a stylesheet.  See decode for a description of the format.

+ +

getStringValue

codec.getStringValue = function(key,
value)

Returns the string for encoding the given value.

+ +

decode

codec.decode = function(dec,
node,
into)

Reads a sequence of the following child nodes and attributes:

Child Nodes

addAdds a new style.

Attributes

asName of the style.
extendName of the style to inherit from.

Each node contains another sequence of add and remove nodes with the following attributes:

asName of the style (see mxConstants).
valueValue for the style.

Instead of the value-attribute, one can put Javascript expressions into the node as follows: <add as=”perimeter”>mxPerimeter.RectanglePerimeter</add>

A remove node will remove the entry with the name given in the as-attribute from the style.

Example

<mxStylesheet as="stylesheet">
+  <add as="text">
+    <add as="fontSize" value="12"/>
+  </add>
+  <add as="defaultVertex" extend="text">
+    <add as="shape" value="rectangle"/>
+  </add>
+</mxStylesheet>
+ +
+ + + + + + + + + + +
Defines the appearance of the cells in a graph.
codec.encode = function(enc,
obj)
Encodes a stylesheet.
codec.getStringValue = function(key,
value)
Returns the string for encoding the given value.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
Defines various global constants.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/io/mxTerminalChangeCodec-js.html b/docs/js-api/files/io/mxTerminalChangeCodec-js.html new file mode 100644 index 000000000..e8e9f9918 --- /dev/null +++ b/docs/js-api/files/io/mxTerminalChangeCodec-js.html @@ -0,0 +1,43 @@ + + +mxTerminalChangeCodec + + + + + + + + + +

mxTerminalChangeCodec

Codec for mxTerminalChanges.  This class is created and registered dynamically at load time and used implicitely via mxCodec and the mxCodecRegistry.

Transient Fields

  • model
  • previous

Reference Fields

  • cell
  • terminal
Summary
mxTerminalChangeCodecCodec for mxTerminalChanges.
Functions
afterDecodeRestores the state by assigning the previous value.
+ +

Functions

+ +

afterDecode

codec.afterDecode = function(dec,
node,
obj)

Restores the state by assigning the previous value.

+ +
+ + + + + + + + + + +
Action to change a terminal in a model.
codec.afterDecode = function(dec,
node,
obj)
Restores the state by assigning the previous value.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html b/docs/js-api/files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html new file mode 100644 index 000000000..de203328a --- /dev/null +++ b/docs/js-api/files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html @@ -0,0 +1,83 @@ + + +mxGraphAbstractHierarchyCell + + + + + + + + + +

mxGraphAbstractHierarchyCell

An abstraction of an internal hierarchy node or edge

Summary
mxGraphAbstractHierarchyCellAn abstraction of an internal hierarchy node or edge
Functions
mxGraphAbstractHierarchyCellConstructs a new hierarchical layout algorithm.
Variables
maxRankThe maximum rank this cell occupies.
minRankThe minimum rank this cell occupies.
xThe x position of this cell for each layer it occupies
yThe y position of this cell for each layer it occupies
widthThe width of this cell
heightThe height of this cell
nextLayerConnectedCellsA cached version of the cells this cell connects to on the next layer up
previousLayerConnectedCellsA cached version of the cells this cell connects to on the next layer down
tempTemporary variable for general use.
Functions
getNextLayerConnectedCellsReturns the cells this cell connects to on the next layer up
getPreviousLayerConnectedCellsReturns the cells this cell connects to on the next layer down
isEdgeReturns whether or not this cell is an edge
isVertexReturns whether or not this cell is a node
getGeneralPurposeVariableGets the value of temp for the specified layer
setGeneralPurposeVariableSet the value of temp for the specified layer
setXSet the value of x for the specified layer
getXGets the value of x on the specified layer
setYSet the value of y for the specified layer
+ +

Functions

+ +

mxGraphAbstractHierarchyCell

function mxGraphAbstractHierarchyCell()

Constructs a new hierarchical layout algorithm.

Arguments

graphReference to the enclosing mxGraph.
deterministicOptional boolean that specifies if this layout should be deterministic.  Default is true.
+ +

Variables

+ +

maxRank

mxGraphAbstractHierarchyCell.prototype.maxRank

The maximum rank this cell occupies.  Default is -1.

+ +

minRank

mxGraphAbstractHierarchyCell.prototype.minRank

The minimum rank this cell occupies.  Default is -1.

+ +

x

mxGraphAbstractHierarchyCell.prototype.x

The x position of this cell for each layer it occupies

+ +

y

mxGraphAbstractHierarchyCell.prototype.y

The y position of this cell for each layer it occupies

+ +

width

mxGraphAbstractHierarchyCell.prototype.width

The width of this cell

+ +

height

mxGraphAbstractHierarchyCell.prototype.height

The height of this cell

+ +

nextLayerConnectedCells

mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells

A cached version of the cells this cell connects to on the next layer up

+ +

previousLayerConnectedCells

mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells

A cached version of the cells this cell connects to on the next layer down

+ +

temp

mxGraphAbstractHierarchyCell.prototype.temp

Temporary variable for general use.  Generally, try to avoid carrying information between stages.  Currently, the longest path layering sets temp to the rank position in fixRanks() and the crossing reduction uses this.  This meant temp couldn’t be used for hashing the nodes in the model dfs and so hashCode was created

+ +

Functions

+ +

getNextLayerConnectedCells

mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells = function(
   layer
)

Returns the cells this cell connects to on the next layer up

+ +

getPreviousLayerConnectedCells

mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells = function(
   layer
)

Returns the cells this cell connects to on the next layer down

+ +

isEdge

mxGraphAbstractHierarchyCell.prototype.isEdge = function()

Returns whether or not this cell is an edge

+ +

isVertex

mxGraphAbstractHierarchyCell.prototype.isVertex = function()

Returns whether or not this cell is a node

+ +

getGeneralPurposeVariable

mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable = function(
   layer
)

Gets the value of temp for the specified layer

+ +

setGeneralPurposeVariable

mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable = function(
   layer,
   value
)

Set the value of temp for the specified layer

+ +

setX

mxGraphAbstractHierarchyCell.prototype.setX = function(layer,
value)

Set the value of x for the specified layer

+ +

getX

mxGraphAbstractHierarchyCell.prototype.getX = function(layer)

Gets the value of x on the specified layer

+ +

setY

mxGraphAbstractHierarchyCell.prototype.setY = function(layer,
value)

Set the value of y for the specified layer

+ +
+ + + + + + + + + + +
function mxGraphAbstractHierarchyCell()
Constructs a new hierarchical layout algorithm.
mxGraphAbstractHierarchyCell.prototype.maxRank
The maximum rank this cell occupies.
mxGraphAbstractHierarchyCell.prototype.minRank
The minimum rank this cell occupies.
mxGraphAbstractHierarchyCell.prototype.x
The x position of this cell for each layer it occupies
mxGraphAbstractHierarchyCell.prototype.y
The y position of this cell for each layer it occupies
mxGraphAbstractHierarchyCell.prototype.width
The width of this cell
mxGraphAbstractHierarchyCell.prototype.height
The height of this cell
mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells
A cached version of the cells this cell connects to on the next layer up
mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells
A cached version of the cells this cell connects to on the next layer down
mxGraphAbstractHierarchyCell.prototype.temp
Temporary variable for general use.
mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells = function(
   layer
)
Returns the cells this cell connects to on the next layer up
mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells = function(
   layer
)
Returns the cells this cell connects to on the next layer down
mxGraphAbstractHierarchyCell.prototype.isEdge = function()
Returns whether or not this cell is an edge
mxGraphAbstractHierarchyCell.prototype.isVertex = function()
Returns whether or not this cell is a node
mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable = function(
   layer
)
Gets the value of temp for the specified layer
mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable = function(
   layer,
   value
)
Set the value of temp for the specified layer
mxGraphAbstractHierarchyCell.prototype.setX = function(layer,
value)
Set the value of x for the specified layer
mxGraphAbstractHierarchyCell.prototype.getX = function(layer)
Gets the value of x on the specified layer
mxGraphAbstractHierarchyCell.prototype.setY = function(layer,
value)
Set the value of y for the specified layer
Extends mxEventSource to implement a graph component for the browser.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html b/docs/js-api/files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html new file mode 100644 index 000000000..17d7028fe --- /dev/null +++ b/docs/js-api/files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html @@ -0,0 +1,67 @@ + + +mxGraphHierarchyEdge + + + + + + + + + +

mxGraphHierarchyEdge

An abstraction of a hierarchical edge for the hierarchy layout

Summary
mxGraphHierarchyEdgeAn abstraction of a hierarchical edge for the hierarchy layout
Functions
mxGraphHierarchyEdgeConstructs a hierarchy edge
Variables
edgesThe graph edge(s) this object represents.
sourceThe node this edge is sourced at
targetThe node this edge targets
isReversedWhether or not the direction of this edge has been reversed internally to create a DAG for the hierarchical layout
Functions
invertInverts the direction of this internal edge(s)
getNextLayerConnectedCellsReturns the cells this cell connects to on the next layer up
getPreviousLayerConnectedCellsReturns the cells this cell connects to on the next layer down
isEdgeReturns true.
getGeneralPurposeVariableGets the value of temp for the specified layer
setGeneralPurposeVariableSet the value of temp for the specified layer
+ +

Functions

+ +

mxGraphHierarchyEdge

function mxGraphHierarchyEdge(edges)

Constructs a hierarchy edge

Arguments

edgesa list of real graph edges this abstraction represents
+ +

Variables

+ +

edges

mxGraphHierarchyEdge.prototype.edges

The graph edge(s) this object represents.  Parallel edges are all grouped together within one hierarchy edge.

+ +

source

mxGraphHierarchyEdge.prototype.source

The node this edge is sourced at

+ +

target

mxGraphHierarchyEdge.prototype.target

The node this edge targets

+ +

isReversed

mxGraphHierarchyEdge.prototype.isReversed

Whether or not the direction of this edge has been reversed internally to create a DAG for the hierarchical layout

+ +

Functions

+ +

invert

mxGraphHierarchyEdge.prototype.invert = function(layer)

Inverts the direction of this internal edge(s)

+ +

getNextLayerConnectedCells

mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells = function(layer)

Returns the cells this cell connects to on the next layer up

+ +

getPreviousLayerConnectedCells

mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells = function(layer)

Returns the cells this cell connects to on the next layer down

+ +

isEdge

mxGraphHierarchyEdge.prototype.isEdge = function()

Returns true.

+ +

getGeneralPurposeVariable

mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable = function(layer)

Gets the value of temp for the specified layer

+ +

setGeneralPurposeVariable

mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable = function(layer,
value)

Set the value of temp for the specified layer

+ +
+ + + + + + + + + + +
function mxGraphHierarchyEdge(edges)
Constructs a hierarchy edge
mxGraphHierarchyEdge.prototype.edges
The graph edge(s) this object represents.
mxGraphHierarchyEdge.prototype.source
The node this edge is sourced at
mxGraphHierarchyEdge.prototype.target
The node this edge targets
mxGraphHierarchyEdge.prototype.isReversed
Whether or not the direction of this edge has been reversed internally to create a DAG for the hierarchical layout
mxGraphHierarchyEdge.prototype.invert = function(layer)
Inverts the direction of this internal edge(s)
mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer up
mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer down
mxGraphHierarchyEdge.prototype.isEdge = function()
Returns true.
mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable = function(layer)
Gets the value of temp for the specified layer
mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable = function(layer,
value)
Set the value of temp for the specified layer
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/hierarchical/model/mxGraphHierarchyModel-js.html b/docs/js-api/files/layout/hierarchical/model/mxGraphHierarchyModel-js.html new file mode 100644 index 000000000..a31613e94 --- /dev/null +++ b/docs/js-api/files/layout/hierarchical/model/mxGraphHierarchyModel-js.html @@ -0,0 +1,83 @@ + + +mxGraphHierarchyModel + + + + + + + + + +

mxGraphHierarchyModel

Internal model of a hierarchical graph.  This model stores nodes and edges equivalent to the real graph nodes and edges, but also stores the rank of the cells, the order within the ranks and the new candidate locations of cells.  The internal model also reverses edge direction were appropriate , ignores self-loop and groups parallels together under one edge object.

Summary
mxGraphHierarchyModelInternal model of a hierarchical graph.
Functions
mxGraphHierarchyModelCreates an internal ordered graph model using the vertices passed in.
Variables
scanRanksFromSinksWhether the rank assignment is done from the sinks or sources.
maxRankStores the largest rank number allocated
vertexMapperMap from graph vertices to internal model nodes.
edgeMapperMap from graph edges to internal model edges
ranksMapping from rank number to actual rank
rootsStore of roots of this hierarchy model, these are real graph cells, not internal cells
parentThe parent cell whose children are being laid out
dfsCountCount of the number of times the ancestor dfs has been used.
SOURCESCANSTARTRANKHigh value to start source layering scan rank value from.
deterministicWhether or not cells are ordered according to the order in the graph model.
tightenToSourceWhether or not to tighten the assigned ranks of vertices up towards the source cells.
Functions
formOrderedHierarchyCreates an internal ordered graph model using the vertices passed in.
createInternalCellsCreates all edges in the internal model
initialRankBasic determination of minimum layer ranking by working from from sources or sinks and working through each node in the relevant edge direction.
fixRanksFixes the layer assignments to the values stored in the nodes.
visitA depth first search through the internal heirarchy model.
dfsPerforms a depth first search on the internal hierarchy model
extendedDfsPerforms a depth first search on the internal hierarchy model.
+ +

Functions

+ +

mxGraphHierarchyModel

function mxGraphHierarchyModel(layout,
vertices,
roots,
parent,
ordered,
deterministic,
tightenToSource,
scanRanksFromSinks)

Creates an internal ordered graph model using the vertices passed in.  If there are any, leftward edge need to be inverted in the internal model

Arguments

graphthe facade describing the graph to be operated on
verticesthe vertices for this hierarchy
orderedwhether or not the vertices are already ordered
deterministicwhether or not this layout should be deterministic on each
tightenToSourcewhether or not to tighten vertices towards the sources
scanRanksFromSinksWhether rank assignment is from the sinks or sources. usage
+ +

Variables

+ +

scanRanksFromSinks

mxGraphHierarchyModel.prototype.scanRanksFromSinks

Whether the rank assignment is done from the sinks or sources.

+ +

maxRank

mxGraphHierarchyModel.prototype.maxRank

Stores the largest rank number allocated

+ +

vertexMapper

mxGraphHierarchyModel.prototype.vertexMapper

Map from graph vertices to internal model nodes.

+ +

edgeMapper

mxGraphHierarchyModel.prototype.edgeMapper

Map from graph edges to internal model edges

+ +

ranks

mxGraphHierarchyModel.prototype.ranks

Mapping from rank number to actual rank

+ +

roots

mxGraphHierarchyModel.prototype.roots

Store of roots of this hierarchy model, these are real graph cells, not internal cells

+ +

parent

mxGraphHierarchyModel.prototype.parent

The parent cell whose children are being laid out

+ +

dfsCount

mxGraphHierarchyModel.prototype.dfsCount

Count of the number of times the ancestor dfs has been used.

+ +

SOURCESCANSTARTRANK

mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK

High value to start source layering scan rank value from.

+ +

deterministic

mxGraphHierarchyModel.prototype.deterministic

Whether or not cells are ordered according to the order in the graph model.  Defaults to false since sorting usually produces quadratic performance.  Note that since mxGraph returns edges in a deterministic order, it might be that this layout is always deterministic using that JGraph regardless of this flag setting (i.e. leave it false in that case).  Default is true.

+ +

tightenToSource

mxGraphHierarchyModel.prototype.tightenToSource

Whether or not to tighten the assigned ranks of vertices up towards the source cells.

+ +

Functions

+ +

formOrderedHierarchy

mxGraphHierarchyModel.prototype.formOrderedHierarchy = function(layout,
vertices,
parent)

Creates an internal ordered graph model using the vertices passed in.  If there are any, leftward edge need to be inverted in the internal model

Parameters

layoutReference to the mxHierarchicalLayout algorithm.
verticesArray of mxCells that represent the vertices to be laid out.
+ +

createInternalCells

mxGraphHierarchyModel.prototype.createInternalCells = function(layout,
vertices,
internalVertices)

Creates all edges in the internal model

Parameters

layoutReference to the mxHierarchicalLayout algorithm.
verticesArray of mxCells that represent the vertices whom are to have an internal representation created.
internalVerticesThe array of mxGraphHierarchyNodes to have their information filled in using the real vertices.
+ +

initialRank

mxGraphHierarchyModel.prototype.initialRank = function()

Basic determination of minimum layer ranking by working from from sources or sinks and working through each node in the relevant edge direction.  Starting at the sinks is basically a longest path layering algorithm.

+ +

fixRanks

mxGraphHierarchyModel.prototype.fixRanks = function()

Fixes the layer assignments to the values stored in the nodes.  Also needs to create dummy nodes for edges that cross layers.

+ +

visit

mxGraphHierarchyModel.prototype.visit = function(visitor,
dfsRoots,
trackAncestors,
seenNodes)

A depth first search through the internal heirarchy model.

Parameters

visitorThe visitor function pattern to be called for each node.
trackAncestorsWhether or not the search is to keep track all nodes directly above this one in the search path.
+ +

dfs

mxGraphHierarchyModel.prototype.dfs = function(parent,
root,
connectingEdge,
visitor,
seen,
layer)

Performs a depth first search on the internal hierarchy model

Parameters

parentthe parent internal node of the current internal node
rootthe current internal node
connectingEdgethe internal edge connecting the internal node and the parent internal node, if any
visitorthe visitor pattern to be called for each node
seena set of all nodes seen by this dfs a set of all of the ancestor node of the current node
layerthe layer on the dfs tree ( not the same as the model ranks )
+ +

extendedDfs

mxGraphHierarchyModel.prototype.extendedDfs = function(parent,
root,
connectingEdge,
visitor,
seen,
ancestors,
childHash,
layer)

Performs a depth first search on the internal hierarchy model.  This dfs extends the default version by keeping track of cells ancestors, but it should be only used when necessary because of it can be computationally intensive for deep searches.

Parameters

parentthe parent internal node of the current internal node
rootthe current internal node
connectingEdgethe internal edge connecting the internal node and the parent internal node, if any
visitorthe visitor pattern to be called for each node
seena set of all nodes seen by this dfs
ancestorsthe parent hash code
childHashthe new hash code for this node
layerthe layer on the dfs tree ( not the same as the model ranks )
+ +
+ + + + + + + + + + +
function mxGraphHierarchyModel(layout,
vertices,
roots,
parent,
ordered,
deterministic,
tightenToSource,
scanRanksFromSinks)
Creates an internal ordered graph model using the vertices passed in.
mxGraphHierarchyModel.prototype.scanRanksFromSinks
Whether the rank assignment is done from the sinks or sources.
mxGraphHierarchyModel.prototype.maxRank
Stores the largest rank number allocated
mxGraphHierarchyModel.prototype.vertexMapper
Map from graph vertices to internal model nodes.
mxGraphHierarchyModel.prototype.edgeMapper
Map from graph edges to internal model edges
mxGraphHierarchyModel.prototype.ranks
Mapping from rank number to actual rank
mxGraphHierarchyModel.prototype.roots
Store of roots of this hierarchy model, these are real graph cells, not internal cells
mxGraphHierarchyModel.prototype.parent
The parent cell whose children are being laid out
mxGraphHierarchyModel.prototype.dfsCount
Count of the number of times the ancestor dfs has been used.
mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK
High value to start source layering scan rank value from.
mxGraphHierarchyModel.prototype.deterministic
Whether or not cells are ordered according to the order in the graph model.
mxGraphHierarchyModel.prototype.tightenToSource
Whether or not to tighten the assigned ranks of vertices up towards the source cells.
mxGraphHierarchyModel.prototype.formOrderedHierarchy = function(layout,
vertices,
parent)
Creates an internal ordered graph model using the vertices passed in.
mxGraphHierarchyModel.prototype.createInternalCells = function(layout,
vertices,
internalVertices)
Creates all edges in the internal model
mxGraphHierarchyModel.prototype.initialRank = function()
Basic determination of minimum layer ranking by working from from sources or sinks and working through each node in the relevant edge direction.
mxGraphHierarchyModel.prototype.fixRanks = function()
Fixes the layer assignments to the values stored in the nodes.
mxGraphHierarchyModel.prototype.visit = function(visitor,
dfsRoots,
trackAncestors,
seenNodes)
A depth first search through the internal heirarchy model.
mxGraphHierarchyModel.prototype.dfs = function(parent,
root,
connectingEdge,
visitor,
seen,
layer)
Performs a depth first search on the internal hierarchy model
mxGraphHierarchyModel.prototype.extendedDfs = function(parent,
root,
connectingEdge,
visitor,
seen,
ancestors,
childHash,
layer)
Performs a depth first search on the internal hierarchy model.
A hierarchical layout algorithm.
Cells are the elements of the graph model.
An abstraction of a hierarchical edge for the hierarchy layout
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/hierarchical/model/mxGraphHierarchyNode-js.html b/docs/js-api/files/layout/hierarchical/model/mxGraphHierarchyNode-js.html new file mode 100644 index 000000000..189622285 --- /dev/null +++ b/docs/js-api/files/layout/hierarchical/model/mxGraphHierarchyNode-js.html @@ -0,0 +1,69 @@ + + +mxGraphHierarchyNode + + + + + + + + + +

mxGraphHierarchyNode

An abstraction of a hierarchical edge for the hierarchy layout

Summary
mxGraphHierarchyNodeAn abstraction of a hierarchical edge for the hierarchy layout
Functions
mxGraphHierarchyNodeConstructs an internal node to represent the specified real graph cell
Variables
cellThe graph cell this object represents.
connectsAsTargetCollection of hierarchy edges that have this node as a target
connectsAsSourceCollection of hierarchy edges that have this node as a source
hashCodeAssigns a unique hashcode for each node.
Functions
getRankValueReturns the integer value of the layer that this node resides in
getNextLayerConnectedCellsReturns the cells this cell connects to on the next layer up
getPreviousLayerConnectedCellsReturns the cells this cell connects to on the next layer down
isVertexReturns true.
getGeneralPurposeVariableGets the value of temp for the specified layer
setGeneralPurposeVariableSet the value of temp for the specified layer
isAncestor
+ +

Functions

+ +

mxGraphHierarchyNode

function mxGraphHierarchyNode(cell)

Constructs an internal node to represent the specified real graph cell

Arguments

cellthe real graph cell this node represents
+ +

Variables

+ +

cell

mxGraphHierarchyNode.prototype.cell

The graph cell this object represents.

+ +

connectsAsTarget

mxGraphHierarchyNode.prototype.connectsAsTarget

Collection of hierarchy edges that have this node as a target

+ +

connectsAsSource

mxGraphHierarchyNode.prototype.connectsAsSource

Collection of hierarchy edges that have this node as a source

+ +

hashCode

mxGraphHierarchyNode.prototype.hashCode

Assigns a unique hashcode for each node.  Used by the model dfs instead of copying HashSets

+ +

Functions

+ +

getRankValue

mxGraphHierarchyNode.prototype.getRankValue = function(layer)

Returns the integer value of the layer that this node resides in

+ +

getNextLayerConnectedCells

mxGraphHierarchyNode.prototype.getNextLayerConnectedCells = function(layer)

Returns the cells this cell connects to on the next layer up

+ +

getPreviousLayerConnectedCells

mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells = function(layer)

Returns the cells this cell connects to on the next layer down

+ +

isVertex

mxGraphHierarchyNode.prototype.isVertex = function()

Returns true.

+ +

getGeneralPurposeVariable

mxGraphHierarchyNode.prototype.getGeneralPurposeVariable = function(layer)

Gets the value of temp for the specified layer

+ +

setGeneralPurposeVariable

mxGraphHierarchyNode.prototype.setGeneralPurposeVariable = function(layer,
value)

Set the value of temp for the specified layer

+ +

isAncestor

mxGraphHierarchyNode.prototype.isAncestor = function(otherNode)
+ +
+ + + + + + + + + + +
function mxGraphHierarchyNode(cell)
Constructs an internal node to represent the specified real graph cell
mxGraphHierarchyNode.prototype.cell
The graph cell this object represents.
mxGraphHierarchyNode.prototype.connectsAsTarget
Collection of hierarchy edges that have this node as a target
mxGraphHierarchyNode.prototype.connectsAsSource
Collection of hierarchy edges that have this node as a source
mxGraphHierarchyNode.prototype.hashCode
Assigns a unique hashcode for each node.
mxGraphHierarchyNode.prototype.getRankValue = function(layer)
Returns the integer value of the layer that this node resides in
mxGraphHierarchyNode.prototype.getNextLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer up
mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer down
mxGraphHierarchyNode.prototype.isVertex = function()
Returns true.
mxGraphHierarchyNode.prototype.getGeneralPurposeVariable = function(layer)
Gets the value of temp for the specified layer
mxGraphHierarchyNode.prototype.setGeneralPurposeVariable = function(layer,
value)
Set the value of temp for the specified layer
mxGraphHierarchyNode.prototype.isAncestor = function(otherNode)
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/hierarchical/mxHierarchicalLayout-js.html b/docs/js-api/files/layout/hierarchical/mxHierarchicalLayout-js.html new file mode 100644 index 000000000..3ba517ff3 --- /dev/null +++ b/docs/js-api/files/layout/hierarchical/mxHierarchicalLayout-js.html @@ -0,0 +1,93 @@ + + +mxHierarchicalLayout + + + + + + + + + +

mxHierarchicalLayout

A hierarchical layout algorithm.

Summary
mxHierarchicalLayoutA hierarchical layout algorithm.
Functions
mxHierarchicalLayoutConstructs a new hierarchical layout algorithm.
Variables
rootsHolds the array of mxGraphLayouts that this layout contains.
resizeParentSpecifies if the parent should be resized after the layout so that it contains all the child cells.
moveParentSpecifies if the parent should be moved if resizeParent is enabled.
parentBorderThe border to be added around the children if the parent is to be resized using resizeParent.
intraCellSpacingThe spacing buffer added between cells on the same layer.
interRankCellSpacingThe spacing buffer added between cell on adjacent layers.
interHierarchySpacingThe spacing buffer between unconnected hierarchies.
parallelEdgeSpacingThe distance between each parallel edge on each ranks for long edges
orientationThe position of the root node(s) relative to the laid out graph in.
fineTuningWhether or not to perform local optimisations and iterate multiple times through the algorithm.
deterministicWhether or not cells are ordered according to the order in the graph model.
fixRootsWhether or not to fix the position of the root cells.
layoutFromSinksWhether or not the initial scan of the graph to determine the layer assigned to each vertex starts from the sinks or source (the sinks being vertices with the fewest, preferable zero, outgoing edges and sources same with incoming edges).
tightenToSourceWhether or not to tighten the assigned ranks of vertices up towards the source cells.
disableEdgeStyleSpecifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
modelThe internal mxGraphHierarchyModel formed of the layout.
Functions
getModelReturns the internal mxGraphHierarchyModel for this layout algorithm.
executeExecutes the layout for the children of the specified parent.
runThe API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made.
cycleStageExecutes the cycle stage using mxMinimumCycleRemover.
layeringStageImplements first stage of a Sugiyama layout.
crossingStageExecutes the crossing stage using mxMedianHybridCrossingReduction.
placementStageExecutes the placement stage using mxCoordinateAssignment.
+ +

Functions

+ +

mxHierarchicalLayout

function mxHierarchicalLayout(graph,
orientation,
deterministic)

Constructs a new hierarchical layout algorithm.

Arguments

graphReference to the enclosing mxGraph.
orientationOptional constant that defines the orientation of this layout.
deterministicOptional boolean that specifies if this layout should be deterministic.  Default is true.
+ +

Variables

+ +

roots

mxHierarchicalLayout.prototype.roots

Holds the array of mxGraphLayouts that this layout contains.

+ +

resizeParent

mxHierarchicalLayout.prototype.resizeParent

Specifies if the parent should be resized after the layout so that it contains all the child cells.  Default is false.  See also parentBorder.

+ +

moveParent

mxHierarchicalLayout.prototype.moveParent

Specifies if the parent should be moved if resizeParent is enabled.  Default is false.

+ +

parentBorder

mxHierarchicalLayout.prototype.parentBorder

The border to be added around the children if the parent is to be resized using resizeParent.  Default is 0.

+ +

intraCellSpacing

mxHierarchicalLayout.prototype.intraCellSpacing

The spacing buffer added between cells on the same layer.  Default is 30.

+ +

interRankCellSpacing

mxHierarchicalLayout.prototype.interRankCellSpacing

The spacing buffer added between cell on adjacent layers.  Default is 50.

+ +

interHierarchySpacing

mxHierarchicalLayout.prototype.interHierarchySpacing

The spacing buffer between unconnected hierarchies.  Default is 60.

+ +

parallelEdgeSpacing

mxHierarchicalLayout.prototype.parallelEdgeSpacing

The distance between each parallel edge on each ranks for long edges

+ +

orientation

mxHierarchicalLayout.prototype.orientation

The position of the root node(s) relative to the laid out graph in.  Default is mxConstants.DIRECTION_NORTH.

+ +

fineTuning

mxHierarchicalLayout.prototype.fineTuning

Whether or not to perform local optimisations and iterate multiple times through the algorithm.  Default is true.

+ +

deterministic

mxHierarchicalLayout.prototype.deterministic

Whether or not cells are ordered according to the order in the graph model.  Defaults to false since sorting usually produces quadratic performance.  Note that since mxGraph returns edges in a deterministic order, it might be that this layout is always deterministic using that JGraph regardless of this flag setting (i.e. leave it false in that case).  Default is true.

+ +

fixRoots

mxHierarchicalLayout.prototype.fixRoots

Whether or not to fix the position of the root cells.  Keep in mind to turn off features such as move to origin when fixing the roots, move to origin usually overrides this flag (in JGraph it does).  Default is false.

+ +

layoutFromSinks

mxHierarchicalLayout.prototype.layoutFromSinks

Whether or not the initial scan of the graph to determine the layer assigned to each vertex starts from the sinks or source (the sinks being vertices with the fewest, preferable zero, outgoing edges and sources same with incoming edges).  Starting from either direction can tight the layout up and also produce better results for certain types of graphs.  If the result for the default is not good enough try a few sample layouts with the value false to see if they improve

+ +

tightenToSource

mxHierarchicalLayout.prototype.tightenToSource

Whether or not to tighten the assigned ranks of vertices up towards the source cells.

+ +

disableEdgeStyle

mxHierarchicalLayout.prototype.disableEdgeStyle

Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.  Default is true.

+ +

model

mxHierarchicalLayout.prototype.model

The internal mxGraphHierarchyModel formed of the layout.

+ +

Functions

+ +

getModel

mxHierarchicalLayout.prototype.getModel = function()

Returns the internal mxGraphHierarchyModel for this layout algorithm.

+ +

execute

mxHierarchicalLayout.prototype.execute = function(parent,
roots)

Executes the layout for the children of the specified parent.

Parameters

parentParent mxCell that contains the children to be laid out.
rootsOptional starting roots of the layout.
+ +

run

mxHierarchicalLayout.prototype.run = function(parent)

The API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made.  It runs each stage of the layout that has been created.

+ +

cycleStage

mxHierarchicalLayout.prototype.cycleStage = function(parent)

Executes the cycle stage using mxMinimumCycleRemover.

+ +

layeringStage

mxHierarchicalLayout.prototype.layeringStage = function()

Implements first stage of a Sugiyama layout.

+ +

crossingStage

mxHierarchicalLayout.prototype.crossingStage = function(parent)

Executes the crossing stage using mxMedianHybridCrossingReduction.

+ +

placementStage

mxHierarchicalLayout.prototype.placementStage = function(initialX,
parent)

Executes the placement stage using mxCoordinateAssignment.

+ +
+ + + + + + + + + + +
function mxHierarchicalLayout(graph,
orientation,
deterministic)
Constructs a new hierarchical layout algorithm.
mxHierarchicalLayout.prototype.roots
Holds the array of mxGraphLayouts that this layout contains.
Base class for all layout algorithms in mxGraph.
mxHierarchicalLayout.prototype.resizeParent
Specifies if the parent should be resized after the layout so that it contains all the child cells.
mxHierarchicalLayout.prototype.moveParent
Specifies if the parent should be moved if resizeParent is enabled.
mxHierarchicalLayout.prototype.parentBorder
The border to be added around the children if the parent is to be resized using resizeParent.
mxHierarchicalLayout.prototype.intraCellSpacing
The spacing buffer added between cells on the same layer.
mxHierarchicalLayout.prototype.interRankCellSpacing
The spacing buffer added between cell on adjacent layers.
mxHierarchicalLayout.prototype.interHierarchySpacing
The spacing buffer between unconnected hierarchies.
mxHierarchicalLayout.prototype.parallelEdgeSpacing
The distance between each parallel edge on each ranks for long edges
mxHierarchicalLayout.prototype.orientation
The position of the root node(s) relative to the laid out graph in.
mxHierarchicalLayout.prototype.fineTuning
Whether or not to perform local optimisations and iterate multiple times through the algorithm.
mxHierarchicalLayout.prototype.deterministic
Whether or not cells are ordered according to the order in the graph model.
mxHierarchicalLayout.prototype.fixRoots
Whether or not to fix the position of the root cells.
mxHierarchicalLayout.prototype.layoutFromSinks
Whether or not the initial scan of the graph to determine the layer assigned to each vertex starts from the sinks or source (the sinks being vertices with the fewest, preferable zero, outgoing edges and sources same with incoming edges).
mxHierarchicalLayout.prototype.tightenToSource
Whether or not to tighten the assigned ranks of vertices up towards the source cells.
mxHierarchicalLayout.prototype.disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
mxHierarchicalLayout.prototype.model
The internal mxGraphHierarchyModel formed of the layout.
Internal model of a hierarchical graph.
mxHierarchicalLayout.prototype.getModel = function()
Returns the internal mxGraphHierarchyModel for this layout algorithm.
mxHierarchicalLayout.prototype.execute = function(parent,
roots)
Executes the layout for the children of the specified parent.
mxHierarchicalLayout.prototype.run = function(parent)
The API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made.
mxHierarchicalLayout.prototype.cycleStage = function(parent)
Executes the cycle stage using mxMinimumCycleRemover.
mxHierarchicalLayout.prototype.layeringStage = function()
Implements first stage of a Sugiyama layout.
mxHierarchicalLayout.prototype.crossingStage = function(parent)
Executes the crossing stage using mxMedianHybridCrossingReduction.
mxHierarchicalLayout.prototype.placementStage = function(initialX,
parent)
Executes the placement stage using mxCoordinateAssignment.
Extends mxEventSource to implement a graph component for the browser.
Constant for direction north.
Cells are the elements of the graph model.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/hierarchical/stage/mxCoordinateAssignment-js.html b/docs/js-api/files/layout/hierarchical/stage/mxCoordinateAssignment-js.html new file mode 100644 index 000000000..d34815df3 --- /dev/null +++ b/docs/js-api/files/layout/hierarchical/stage/mxCoordinateAssignment-js.html @@ -0,0 +1,149 @@ + + +mxCoordinateAssignment + + + + + + + + + +

mxCoordinateAssignment

Sets the horizontal locations of node and edge dummy nodes on each layer.  Uses median down and up weighings as well as heuristics to straighten edges as far as possible.

Summary
mxCoordinateAssignmentSets the horizontal locations of node and edge dummy nodes on each layer.
Functions
mxCoordinateAssignmentCreates a coordinate assignment.
Variables
layoutReference to the enclosing mxHierarchicalLayout.
intraCellSpacingThe minimum buffer between cells on the same rank.
interRankCellSpacingThe minimum distance between cells on adjacent ranks.
parallelEdgeSpacingThe distance between each parallel edge on each ranks for long edges.
maxIterationsThe number of heuristic iterations to run.
prefHozEdgeSepThe preferred horizontal distance between edges exiting a vertex
prefVertEdgeOffThe preferred vertical offset between edges exiting a vertex
minEdgeJettyThe minimum distance for an edge jetty from a vertex
channelBufferThe size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed
jettyPositionsMap of internal edges and (x,y) pair of positions of the start and end jetty for that edge where it connects to the source and target vertices.
orientationThe position of the root ( start ) node(s) relative to the rest of the laid out graph.
initialXThe minimum x position node placement starts at
limitXThe maximum x value this positioning lays up to
currentXDeltaThe sum of x-displacements for the current iteration
widestRankThe rank that has the widest x position
rankTopYInternal cache of top-most values of Y for each rank
rankBottomYInternal cache of bottom-most value of Y for each rank
widestRankValueThe X-coordinate of the edge of the widest rank
rankWidthsThe width of all the ranks
rankYThe Y-coordinate of all the ranks
fineTuningWhether or not to perform local optimisations and iterate multiple times through the algorithm.
edgeStyleThe style to apply between cell layers to edge segments
nextLayerConnectedCacheA store of connections to the layer above for speed
previousLayerConnectedCacheA store of connections to the layer below for speed
Functions
executeA basic horizontal coordinate assignment algorithm
minNodePerforms one median positioning sweep in both directions
medianPosPerforms one median positioning sweep in one direction
rankMedianPositionPerforms median minimisation over one rank.
calculatedWeightedValueCalculates the priority the specified cell has based on the type of its cell and the cells it is connected to on the next layer
medianXValueCalculates the median position of the connected cell on the specified rank
initialCoordsSets up the layout in an initial positioning.
rankCoordinatesSets up the layout in an initial positioning.
calculateWidestRankCalculates the width rank in the hierarchy.
minPathStraightens out chains of virtual nodes where possibleacade to those stored after this layout processing step has completed.
repositionValidDetermines whether or not a node may be moved to the specified x position on the specified rank
setCellLocationsSets the cell locations in the facade to those stored after this layout processing step has completed.
localEdgeProcessingSeparates the x position of edges as they connect to vertices
setEdgePositionFixes the control points
setVertexLocationFixes the position of the specified vertex.
processReversedEdgeHook to add additional processing
WeightedCellSorterA utility class used to track cells whilst sorting occurs on the weighted sum of their connected edges.
Functions
WeightedCellSorterConstructs a new weighted cell sorted for the given cell and weight.
Variables
weightedValueThe weighted value of the cell stored.
nudgeWhether or not to flip equal weight values.
visitedWhether or not this cell has been visited in the current assignment.
rankIndexThe index this cell is in the model rank.
cellThe cell whose median value is being calculated.
Functions
compareCompares two WeightedCellSorters.
+ +

Functions

+ +

mxCoordinateAssignment

function mxCoordinateAssignment(layout,
intraCellSpacing,
interRankCellSpacing,
orientation,
initialX,
parallelEdgeSpacing)

Creates a coordinate assignment.

Arguments

intraCellSpacingthe minimum buffer between cells on the same rank
interRankCellSpacingthe minimum distance between cells on adjacent ranks
orientationthe position of the root node(s) relative to the graph
initialXthe leftmost coordinate node placement starts at
+ +

Variables

+ +

layout

mxCoordinateAssignment.prototype.layout

Reference to the enclosing mxHierarchicalLayout.

+ +

intraCellSpacing

mxCoordinateAssignment.prototype.intraCellSpacing

The minimum buffer between cells on the same rank.  Default is 30.

+ +

interRankCellSpacing

mxCoordinateAssignment.prototype.interRankCellSpacing

The minimum distance between cells on adjacent ranks.  Default is 10.

+ +

parallelEdgeSpacing

mxCoordinateAssignment.prototype.parallelEdgeSpacing

The distance between each parallel edge on each ranks for long edges.  Default is 10.

+ +

maxIterations

mxCoordinateAssignment.prototype.maxIterations

The number of heuristic iterations to run.  Default is 8.

+ +

prefHozEdgeSep

mxCoordinateAssignment.prototype.prefHozEdgeSep

The preferred horizontal distance between edges exiting a vertex

+ +

prefVertEdgeOff

mxCoordinateAssignment.prototype.prefVertEdgeOff

The preferred vertical offset between edges exiting a vertex

+ +

minEdgeJetty

mxCoordinateAssignment.prototype.minEdgeJetty

The minimum distance for an edge jetty from a vertex

+ +

channelBuffer

mxCoordinateAssignment.prototype.channelBuffer

The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed

+ +

jettyPositions

mxCoordinateAssignment.prototype.jettyPositions

Map of internal edges and (x,y) pair of positions of the start and end jetty for that edge where it connects to the source and target vertices.  Note this should technically be a WeakHashMap, but since JS does not have an equivalent, housekeeping must be performed before using. i.e. check all edges are still in the model and clear the values.  Note that the y co-ord is the offset of the jetty, not the absolute point

+ +

orientation

mxCoordinateAssignment.prototype.orientation

The position of the root ( start ) node(s) relative to the rest of the laid out graph.  Default is mxConstants.DIRECTION_NORTH.

+ +

initialX

mxCoordinateAssignment.prototype.initialX

The minimum x position node placement starts at

+ +

limitX

mxCoordinateAssignment.prototype.limitX

The maximum x value this positioning lays up to

+ +

currentXDelta

mxCoordinateAssignment.prototype.currentXDelta

The sum of x-displacements for the current iteration

+ +

widestRank

mxCoordinateAssignment.prototype.widestRank

The rank that has the widest x position

+ +

rankTopY

mxCoordinateAssignment.prototype.rankTopY

Internal cache of top-most values of Y for each rank

+ +

rankBottomY

mxCoordinateAssignment.prototype.rankBottomY

Internal cache of bottom-most value of Y for each rank

+ +

widestRankValue

mxCoordinateAssignment.prototype.widestRankValue

The X-coordinate of the edge of the widest rank

+ +

rankWidths

mxCoordinateAssignment.prototype.rankWidths

The width of all the ranks

+ +

rankY

mxCoordinateAssignment.prototype.rankY

The Y-coordinate of all the ranks

+ +

fineTuning

mxCoordinateAssignment.prototype.fineTuning

Whether or not to perform local optimisations and iterate multiple times through the algorithm.  Default is true.

+ +

edgeStyle

mxCoordinateAssignment.prototype.edgeStyle

The style to apply between cell layers to edge segments

+ +

nextLayerConnectedCache

mxCoordinateAssignment.prototype.nextLayerConnectedCache

A store of connections to the layer above for speed

+ +

previousLayerConnectedCache

mxCoordinateAssignment.prototype.previousLayerConnectedCache

A store of connections to the layer below for speed

+ +

Functions

+ +

execute

mxCoordinateAssignment.prototype.execute = function(parent)

A basic horizontal coordinate assignment algorithm

+ +

minNode

mxCoordinateAssignment.prototype.minNode = function(model)

Performs one median positioning sweep in both directions

+ +

medianPos

mxCoordinateAssignment.prototype.medianPos = function(i,
model)

Performs one median positioning sweep in one direction

Parameters

ithe iteration of the whole process
modelan internal model of the hierarchical layout
+ +

rankMedianPosition

mxCoordinateAssignment.prototype.rankMedianPosition = function(rankValue,
model,
nextRankValue)

Performs median minimisation over one rank.

Parameters

rankValuethe layer number of this rank
modelan internal model of the hierarchical layout
nextRankValuethe layer number whose connected cels are to be laid out relative to
+ +

calculatedWeightedValue

mxCoordinateAssignment.prototype.calculatedWeightedValue = function(
   currentCell,
   collection
)

Calculates the priority the specified cell has based on the type of its cell and the cells it is connected to on the next layer

Parameters

currentCellthe cell whose weight is to be calculated
collectionthe cells the specified cell is connected to
+ +

medianXValue

mxCoordinateAssignment.prototype.medianXValue = function(connectedCells,
rankValue)

Calculates the median position of the connected cell on the specified rank

Parameters

connectedCellsthe cells the candidate connects to on this level
rankValuethe layer number of this rank
+ +

initialCoords

mxCoordinateAssignment.prototype.initialCoords = function(facade,
model)

Sets up the layout in an initial positioning.  The ranks are all centered as much as possible along the middle vertex in each rank.  The other cells are then placed as close as possible on either side.

Parameters

facadethe facade describing the input graph
modelan internal model of the hierarchical layout
+ +

rankCoordinates

mxCoordinateAssignment.prototype.rankCoordinates = function(rankValue,
graph,
model)

Sets up the layout in an initial positioning.  All the first cells in each rank are moved to the left and the rest of the rank inserted as close together as their size and buffering permits.  This method works on just the specified rank.

Parameters

rankValuethe current rank being processed
graphthe facade describing the input graph
modelan internal model of the hierarchical layout
+ +

calculateWidestRank

mxCoordinateAssignment.prototype.calculateWidestRank = function(graph,
model)

Calculates the width rank in the hierarchy.  Also set the y value of each rank whilst performing the calculation

Parameters

graphthe facade describing the input graph
modelan internal model of the hierarchical layout
+ +

minPath

mxCoordinateAssignment.prototype.minPath = function(graph,
model)

Straightens out chains of virtual nodes where possibleacade to those stored after this layout processing step has completed.

Parameters

graphthe facade describing the input graph
modelan internal model of the hierarchical layout
+ +

repositionValid

mxCoordinateAssignment.prototype.repositionValid = function(model,
cell,
rank,
position)

Determines whether or not a node may be moved to the specified x position on the specified rank

Parameters

modelthe layout model
cellthe cell being analysed
rankthe layer of the cell
positionthe x position being sought
+ +

setCellLocations

mxCoordinateAssignment.prototype.setCellLocations = function(graph,
model)

Sets the cell locations in the facade to those stored after this layout processing step has completed.

Parameters

graphthe input graph
modelthe layout model
+ +

localEdgeProcessing

mxCoordinateAssignment.prototype.localEdgeProcessing = function(model)

Separates the x position of edges as they connect to vertices

Parameters

modelthe layout model
+ +

setEdgePosition

mxCoordinateAssignment.prototype.setEdgePosition = function(cell)

Fixes the control points

+ +

setVertexLocation

mxCoordinateAssignment.prototype.setVertexLocation = function(cell)

Fixes the position of the specified vertex.

Parameters

cellthe vertex to position
+ +

processReversedEdge

mxCoordinateAssignment.prototype.processReversedEdge = function(graph,
model)

Hook to add additional processing

Parameters

edgethe hierarchical model edge
realEdgethe real edge in the graph
+ +

WeightedCellSorter

A utility class used to track cells whilst sorting occurs on the weighted sum of their connected edges.  Does not violate (x.compareTo(y)==0) == (x.equals(y))

Summary
Functions
WeightedCellSorterConstructs a new weighted cell sorted for the given cell and weight.
Variables
weightedValueThe weighted value of the cell stored.
nudgeWhether or not to flip equal weight values.
visitedWhether or not this cell has been visited in the current assignment.
rankIndexThe index this cell is in the model rank.
cellThe cell whose median value is being calculated.
Functions
compareCompares two WeightedCellSorters.
+ +

Functions

+ +

WeightedCellSorter

function WeightedCellSorter(cell,
weightedValue)

Constructs a new weighted cell sorted for the given cell and weight.

+ +

Variables

+ +

weightedValue

WeightedCellSorter.prototype.weightedValue

The weighted value of the cell stored.

+ +

nudge

WeightedCellSorter.prototype.nudge

Whether or not to flip equal weight values.

+ +

visited

WeightedCellSorter.prototype.visited

Whether or not this cell has been visited in the current assignment.

+ +

rankIndex

WeightedCellSorter.prototype.rankIndex

The index this cell is in the model rank.

+ +

cell

WeightedCellSorter.prototype.cell

The cell whose median value is being calculated.

+ +

Functions

+ +

compare

WeightedCellSorter.prototype.compare = function(a,
b)

Compares two WeightedCellSorters.

+ +
+ + + + + + + + + + +
function mxCoordinateAssignment(layout,
intraCellSpacing,
interRankCellSpacing,
orientation,
initialX,
parallelEdgeSpacing)
Creates a coordinate assignment.
mxCoordinateAssignment.prototype.layout
Reference to the enclosing mxHierarchicalLayout.
A hierarchical layout algorithm.
mxCoordinateAssignment.prototype.intraCellSpacing
The minimum buffer between cells on the same rank.
mxCoordinateAssignment.prototype.interRankCellSpacing
The minimum distance between cells on adjacent ranks.
mxCoordinateAssignment.prototype.parallelEdgeSpacing
The distance between each parallel edge on each ranks for long edges.
mxCoordinateAssignment.prototype.maxIterations
The number of heuristic iterations to run.
mxCoordinateAssignment.prototype.prefHozEdgeSep
The preferred horizontal distance between edges exiting a vertex
mxCoordinateAssignment.prototype.prefVertEdgeOff
The preferred vertical offset between edges exiting a vertex
mxCoordinateAssignment.prototype.minEdgeJetty
The minimum distance for an edge jetty from a vertex
mxCoordinateAssignment.prototype.channelBuffer
The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed
mxCoordinateAssignment.prototype.jettyPositions
Map of internal edges and (x,y) pair of positions of the start and end jetty for that edge where it connects to the source and target vertices.
mxCoordinateAssignment.prototype.orientation
The position of the root ( start ) node(s) relative to the rest of the laid out graph.
mxCoordinateAssignment.prototype.initialX
The minimum x position node placement starts at
mxCoordinateAssignment.prototype.limitX
The maximum x value this positioning lays up to
mxCoordinateAssignment.prototype.currentXDelta
The sum of x-displacements for the current iteration
mxCoordinateAssignment.prototype.widestRank
The rank that has the widest x position
mxCoordinateAssignment.prototype.rankTopY
Internal cache of top-most values of Y for each rank
mxCoordinateAssignment.prototype.rankBottomY
Internal cache of bottom-most value of Y for each rank
mxCoordinateAssignment.prototype.widestRankValue
The X-coordinate of the edge of the widest rank
mxCoordinateAssignment.prototype.rankWidths
The width of all the ranks
mxCoordinateAssignment.prototype.rankY
The Y-coordinate of all the ranks
mxCoordinateAssignment.prototype.fineTuning
Whether or not to perform local optimisations and iterate multiple times through the algorithm.
mxCoordinateAssignment.prototype.edgeStyle
The style to apply between cell layers to edge segments
mxCoordinateAssignment.prototype.nextLayerConnectedCache
A store of connections to the layer above for speed
mxCoordinateAssignment.prototype.previousLayerConnectedCache
A store of connections to the layer below for speed
mxCoordinateAssignment.prototype.execute = function(parent)
A basic horizontal coordinate assignment algorithm
mxCoordinateAssignment.prototype.minNode = function(model)
Performs one median positioning sweep in both directions
mxCoordinateAssignment.prototype.medianPos = function(i,
model)
Performs one median positioning sweep in one direction
mxCoordinateAssignment.prototype.rankMedianPosition = function(rankValue,
model,
nextRankValue)
Performs median minimisation over one rank.
mxCoordinateAssignment.prototype.calculatedWeightedValue = function(
   currentCell,
   collection
)
Calculates the priority the specified cell has based on the type of its cell and the cells it is connected to on the next layer
mxCoordinateAssignment.prototype.medianXValue = function(connectedCells,
rankValue)
Calculates the median position of the connected cell on the specified rank
mxCoordinateAssignment.prototype.initialCoords = function(facade,
model)
Sets up the layout in an initial positioning.
mxCoordinateAssignment.prototype.rankCoordinates = function(rankValue,
graph,
model)
Sets up the layout in an initial positioning.
mxCoordinateAssignment.prototype.calculateWidestRank = function(graph,
model)
Calculates the width rank in the hierarchy.
mxCoordinateAssignment.prototype.minPath = function(graph,
model)
Straightens out chains of virtual nodes where possibleacade to those stored after this layout processing step has completed.
mxCoordinateAssignment.prototype.repositionValid = function(model,
cell,
rank,
position)
Determines whether or not a node may be moved to the specified x position on the specified rank
mxCoordinateAssignment.prototype.setCellLocations = function(graph,
model)
Sets the cell locations in the facade to those stored after this layout processing step has completed.
mxCoordinateAssignment.prototype.localEdgeProcessing = function(model)
Separates the x position of edges as they connect to vertices
mxCoordinateAssignment.prototype.setEdgePosition = function(cell)
Fixes the control points
mxCoordinateAssignment.prototype.setVertexLocation = function(cell)
Fixes the position of the specified vertex.
mxCoordinateAssignment.prototype.processReversedEdge = function(graph,
model)
Hook to add additional processing
function WeightedCellSorter(cell,
weightedValue)
Constructs a new weighted cell sorted for the given cell and weight.
WeightedCellSorter.prototype.weightedValue
The weighted value of the cell stored.
WeightedCellSorter.prototype.nudge
Whether or not to flip equal weight values.
WeightedCellSorter.prototype.visited
Whether or not this cell has been visited in the current assignment.
WeightedCellSorter.prototype.rankIndex
The index this cell is in the model rank.
WeightedCellSorter.prototype.cell
The cell whose median value is being calculated.
WeightedCellSorter.prototype.compare = function(a,
b)
Compares two WeightedCellSorters.
Constant for direction north.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html b/docs/js-api/files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html new file mode 100644 index 000000000..b2b9c68ef --- /dev/null +++ b/docs/js-api/files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html @@ -0,0 +1,45 @@ + + +mxHierarchicalLayoutStage + + + + + + + + + +

mxHierarchicalLayoutStage

The specific layout interface for hierarchical layouts.  It adds a <code>run</code> method with a parameter for the hierarchical layout model that is shared between the layout stages.

Summary
mxHierarchicalLayoutStageThe specific layout interface for hierarchical layouts.
Functions
mxHierarchicalLayoutStageConstructs a new hierarchical layout stage.
executeTakes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.
+ +

Functions

+ +

mxHierarchicalLayoutStage

function mxHierarchicalLayoutStage()

Constructs a new hierarchical layout stage.

+ +

execute

mxHierarchicalLayoutStage.prototype.execute = function(parent)

Takes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.

+ +
+ + + + + + + + + + +
function mxHierarchicalLayoutStage()
Constructs a new hierarchical layout stage.
mxHierarchicalLayoutStage.prototype.execute = function(parent)
Takes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html b/docs/js-api/files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html new file mode 100644 index 000000000..e064c73ed --- /dev/null +++ b/docs/js-api/files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html @@ -0,0 +1,89 @@ + + +mxMedianHybridCrossingReduction + + + + + + + + + +

mxMedianHybridCrossingReduction

Sets the horizontal locations of node and edge dummy nodes on each layer.  Uses median down and up weighings as well heuristic to straighten edges as far as possible.

Summary
mxMedianHybridCrossingReductionSets the horizontal locations of node and edge dummy nodes on each layer.
Functions
mxMedianHybridCrossingReductionCreates a coordinate assignment.
Variables
layoutReference to the enclosing mxHierarchicalLayout.
maxIterationsThe maximum number of iterations to perform whilst reducing edge crossings.
nestedBestRanksStores each rank as a collection of cells in the best order found for each layer so far
currentBestCrossingsThe total number of crossings found in the best configuration so far
iterationsWithoutImprovementThe total number of crossings found in the best configuration so far
maxNoImprovementIterationsThe total number of crossings found in the best configuration so far
Functions
executePerforms a vertex ordering within ranks as described by Gansner et al 1993
calculateCrossingsCalculates the total number of edge crossing in the current graph.
calculateRankCrossingCalculates the number of edges crossings between the specified rank and the rank below it.
transposeTakes each possible adjacent cell pair on each rank and checks if swapping them around reduces the number of crossing
weightedMedianSweeps up or down the layout attempting to minimise the median placement of connected cells on adjacent ranks
medianRankAttempts to minimise the median placement of connected cells on this rank and one of the adjacent ranks
medianValueCalculates the median rank order positioning for the specified cell using the connected cells on the specified rank.
MedianCellSorterA utility class used to track cells whilst sorting occurs on the median values.
Functions
MedianCellSorterConstructs a new median cell sorter.
Variables
medianValueThe weighted value of the cell stored.
cellThe cell whose median value is being calculated
Functions
compareCompares two MedianCellSorters.
+ +

Functions

+ +

mxMedianHybridCrossingReduction

function mxMedianHybridCrossingReduction(layout)

Creates a coordinate assignment.

Arguments

intraCellSpacingthe minimum buffer between cells on the same rank
interRankCellSpacingthe minimum distance between cells on adjacent ranks
orientationthe position of the root node(s) relative to the graph
initialXthe leftmost coordinate node placement starts at
+ +

Variables

+ +

layout

mxMedianHybridCrossingReduction.prototype.layout

Reference to the enclosing mxHierarchicalLayout.

+ +

maxIterations

mxMedianHybridCrossingReduction.prototype.maxIterations

The maximum number of iterations to perform whilst reducing edge crossings.  Default is 24.

+ +

nestedBestRanks

mxMedianHybridCrossingReduction.prototype.nestedBestRanks

Stores each rank as a collection of cells in the best order found for each layer so far

+ +

currentBestCrossings

mxMedianHybridCrossingReduction.prototype.currentBestCrossings

The total number of crossings found in the best configuration so far

+ +

iterationsWithoutImprovement

mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement

The total number of crossings found in the best configuration so far

+ +

maxNoImprovementIterations

mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations

The total number of crossings found in the best configuration so far

+ +

Functions

+ +

execute

mxMedianHybridCrossingReduction.prototype.execute = function(parent)

Performs a vertex ordering within ranks as described by Gansner et al 1993

+ +

calculateCrossings

mxMedianHybridCrossingReduction.prototype.calculateCrossings = function(model)

Calculates the total number of edge crossing in the current graph.  Returns the current number of edge crossings in the hierarchy graph model in the current candidate layout

Parameters

modelthe internal model describing the hierarchy
+ +

calculateRankCrossing

mxMedianHybridCrossingReduction.prototype.calculateRankCrossing = function(
   i,
   model
)

Calculates the number of edges crossings between the specified rank and the rank below it.  Returns the number of edges crossings with the rank beneath

Parameters

ithe topmost rank of the pair ( higher rank value )
modelthe internal model describing the hierarchy
+ +

transpose

mxMedianHybridCrossingReduction.prototype.transpose = function(
   mainLoopIteration,
   model
)

Takes each possible adjacent cell pair on each rank and checks if swapping them around reduces the number of crossing

Parameters

mainLoopIterationthe iteration number of the main loop
modelthe internal model describing the hierarchy
+ +

weightedMedian

mxMedianHybridCrossingReduction.prototype.weightedMedian = function(iteration,
model)

Sweeps up or down the layout attempting to minimise the median placement of connected cells on adjacent ranks

Parameters

iterationthe iteration number of the main loop
modelthe internal model describing the hierarchy
+ +

medianRank

mxMedianHybridCrossingReduction.prototype.medianRank = function(rankValue,
downwardSweep)

Attempts to minimise the median placement of connected cells on this rank and one of the adjacent ranks

Parameters

rankValuethe layer number of this rank
downwardSweepwhether or not this is a downward sweep through the graph
+ +

medianValue

mxMedianHybridCrossingReduction.prototype.medianValue = function(
   connectedCells,
   rankValue
)

Calculates the median rank order positioning for the specified cell using the connected cells on the specified rank.  Returns the median rank ordering value of the connected cells

Parameters

connectedCellsthe cells on the specified rank connected to the specified cell
rankValuethe rank that the connected cell lie upon
+ +

MedianCellSorter

A utility class used to track cells whilst sorting occurs on the median values.  Does not violate (x.compareTo(y)==0) == (x.equals(y))

Summary
Functions
MedianCellSorterConstructs a new median cell sorter.
Variables
medianValueThe weighted value of the cell stored.
cellThe cell whose median value is being calculated
Functions
compareCompares two MedianCellSorters.
+ +

Functions

+ +

MedianCellSorter

function MedianCellSorter()

Constructs a new median cell sorter.

+ +

Variables

+ +

medianValue

MedianCellSorter.prototype.medianValue

The weighted value of the cell stored.

+ +

cell

MedianCellSorter.prototype.cell

The cell whose median value is being calculated

+ +

Functions

+ +

compare

MedianCellSorter.prototype.compare = function(a,
b)

Compares two MedianCellSorters.

+ +
+ + + + + + + + + + +
function mxMedianHybridCrossingReduction(layout)
Creates a coordinate assignment.
mxMedianHybridCrossingReduction.prototype.layout
Reference to the enclosing mxHierarchicalLayout.
A hierarchical layout algorithm.
mxMedianHybridCrossingReduction.prototype.maxIterations
The maximum number of iterations to perform whilst reducing edge crossings.
mxMedianHybridCrossingReduction.prototype.nestedBestRanks
Stores each rank as a collection of cells in the best order found for each layer so far
mxMedianHybridCrossingReduction.prototype.currentBestCrossings
The total number of crossings found in the best configuration so far
mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement
The total number of crossings found in the best configuration so far
mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations
The total number of crossings found in the best configuration so far
mxMedianHybridCrossingReduction.prototype.execute = function(parent)
Performs a vertex ordering within ranks as described by Gansner et al 1993
mxMedianHybridCrossingReduction.prototype.calculateCrossings = function(model)
Calculates the total number of edge crossing in the current graph.
mxMedianHybridCrossingReduction.prototype.calculateRankCrossing = function(
   i,
   model
)
Calculates the number of edges crossings between the specified rank and the rank below it.
mxMedianHybridCrossingReduction.prototype.transpose = function(
   mainLoopIteration,
   model
)
Takes each possible adjacent cell pair on each rank and checks if swapping them around reduces the number of crossing
mxMedianHybridCrossingReduction.prototype.weightedMedian = function(iteration,
model)
Sweeps up or down the layout attempting to minimise the median placement of connected cells on adjacent ranks
mxMedianHybridCrossingReduction.prototype.medianRank = function(rankValue,
downwardSweep)
Attempts to minimise the median placement of connected cells on this rank and one of the adjacent ranks
mxMedianHybridCrossingReduction.prototype.medianValue = function(
   connectedCells,
   rankValue
)
Calculates the median rank order positioning for the specified cell using the connected cells on the specified rank.
function MedianCellSorter()
Constructs a new median cell sorter.
MedianCellSorter.prototype.medianValue
The weighted value of the cell stored.
MedianCellSorter.prototype.cell
The cell whose median value is being calculated
MedianCellSorter.prototype.compare = function(a,
b)
Compares two MedianCellSorters.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html b/docs/js-api/files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html new file mode 100644 index 000000000..9ff5a45b3 --- /dev/null +++ b/docs/js-api/files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html @@ -0,0 +1,51 @@ + + +mxMinimumCycleRemover + + + + + + + + + +

mxMinimumCycleRemover

An implementation of the first stage of the Sugiyama layout.  Straightforward longest path calculation of layer assignment

Summary
mxMinimumCycleRemoverAn implementation of the first stage of the Sugiyama layout.
Functions
mxMinimumCycleRemoverCreates a cycle remover for the given internal model.
Variables
layoutReference to the enclosing mxHierarchicalLayout.
Functions
executeTakes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.
+ +

Functions

+ +

mxMinimumCycleRemover

function mxMinimumCycleRemover(layout)

Creates a cycle remover for the given internal model.

+ +

Variables

+ +

layout

mxMinimumCycleRemover.prototype.layout

Reference to the enclosing mxHierarchicalLayout.

+ +

Functions

+ +

execute

mxMinimumCycleRemover.prototype.execute = function(parent)

Takes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.

+ +
+ + + + + + + + + + +
function mxMinimumCycleRemover(layout)
Creates a cycle remover for the given internal model.
mxMinimumCycleRemover.prototype.layout
Reference to the enclosing mxHierarchicalLayout.
A hierarchical layout algorithm.
mxMinimumCycleRemover.prototype.execute = function(parent)
Takes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/mxCircleLayout-js.html b/docs/js-api/files/layout/mxCircleLayout-js.html new file mode 100644 index 000000000..57834bc7d --- /dev/null +++ b/docs/js-api/files/layout/mxCircleLayout-js.html @@ -0,0 +1,64 @@ + + +mxCircleLayout + + + + + + + + + +

mxCircleLayout

Extends mxGraphLayout to implement a circluar layout for a given radius.  The vertices do not need to be connected for this layout to work and all connections between vertices are not taken into account.

Example

var layout = new mxCircleLayout(graph);
+layout.execute(graph.getDefaultParent());
Summary
mxCircleLayoutExtends mxGraphLayout to implement a circluar layout for a given radius.
Functions
mxCircleLayoutConstructs a new circular layout for the specified radius.
Variables
radiusInteger specifying the size of the radius.
moveCircleBoolean specifying if the circle should be moved to the top, left corner specified by x0 and y0.
x0Integer specifying the left coordinate of the circle.
y0Integer specifying the top coordinate of the circle.
resetEdgesSpecifies if all edge points of traversed edges should be removed.
disableEdgeStyleSpecifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
Functions
executeImplements mxGraphLayout.execute.
circleExecutes the circular layout for the specified array of vertices and the given radius.
+ +

Functions

+ +

mxCircleLayout

function mxCircleLayout(graph,
radius)

Constructs a new circular layout for the specified radius.

Arguments

graphmxGraph that contains the cells.
radiusOptional radius as an int.  Default is 100.
+ +

Variables

+ +

radius

mxCircleLayout.prototype.radius

Integer specifying the size of the radius.  Default is 100.

+ +

moveCircle

mxCircleLayout.prototype.moveCircle

Boolean specifying if the circle should be moved to the top, left corner specified by x0 and y0.  Default is false.

+ +

x0

mxCircleLayout.prototype.x0

Integer specifying the left coordinate of the circle.  Default is 0.

+ +

y0

mxCircleLayout.prototype.y0

Integer specifying the top coordinate of the circle.  Default is 0.

+ +

resetEdges

mxCircleLayout.prototype.resetEdges

Specifies if all edge points of traversed edges should be removed.  Default is true.

+ +

disableEdgeStyle

mxCircleLayout.prototype.disableEdgeStyle

Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.  Default is true.

+ +

Functions

+ +

execute

mxCircleLayout.prototype.execute = function(parent)

Implements mxGraphLayout.execute.

+ +

circle

mxCircleLayout.prototype.circle = function(vertices,
r,
left,
top)

Executes the circular layout for the specified array of vertices and the given radius.  This is called from execute.

+ +
+ + + + + + + + + + +
Base class for all layout algorithms in mxGraph.
function mxCircleLayout(graph,
radius)
Constructs a new circular layout for the specified radius.
mxCircleLayout.prototype.radius
Integer specifying the size of the radius.
mxCircleLayout.prototype.moveCircle
Boolean specifying if the circle should be moved to the top, left corner specified by x0 and y0.
mxCircleLayout.prototype.x0
Integer specifying the left coordinate of the circle.
mxCircleLayout.prototype.y0
Integer specifying the top coordinate of the circle.
mxCircleLayout.prototype.resetEdges
Specifies if all edge points of traversed edges should be removed.
mxCircleLayout.prototype.disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
mxCircleLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxCircleLayout.prototype.circle = function(vertices,
r,
left,
top)
Executes the circular layout for the specified array of vertices and the given radius.
Extends mxEventSource to implement a graph component for the browser.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/mxCompactTreeLayout-js.html b/docs/js-api/files/layout/mxCompactTreeLayout-js.html new file mode 100644 index 000000000..a63b4909e --- /dev/null +++ b/docs/js-api/files/layout/mxCompactTreeLayout-js.html @@ -0,0 +1,138 @@ + + +mxCompactTreeLayout + + + + + + + + + +

mxCompactTreeLayout

Extends mxGraphLayout to implement a compact tree (Moen) algorithm.  This layout is suitable for graphs that have no cycles (trees).  Vertices that are not connected to the tree will be ignored by this layout.

Example

var layout = new mxCompactTreeLayout(graph);
+layout.execute(graph.getDefaultParent());
Summary
mxCompactTreeLayoutExtends mxGraphLayout to implement a compact tree (Moen) algorithm.
Functions
mxCompactTreeLayoutConstructs a new compact tree layout for the specified graph and orientation.
Variables
horizontalSpecifies the orientation of the layout.
invertSpecifies if edge directions should be inverted.
resizeParentIf the parents should be resized to match the width/height of the children.
groupPaddingPadding added to resized parents
parentsChangedA set of the parents that need updating based on children process as part of the layout
moveTreeSpecifies if the tree should be moved to the top, left corner if it is inside a top-level layer.
levelDistanceHolds the levelDistance.
nodeDistanceHolds the nodeDistance.
resetEdgesSpecifies if all edge points of traversed edges should be removed.
prefHozEdgeSepThe preferred horizontal distance between edges exiting a vertex
prefVertEdgeOffThe preferred vertical offset between edges exiting a vertex
minEdgeJettyThe minimum distance for an edge jetty from a vertex
channelBufferThe size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed
edgeRoutingWhether or not to apply the internal tree edge routing
Functions
isVertexIgnoredReturns a boolean indicating if the given mxCell should be ignored as a vertex.
isHorizontalReturns horizontal.
executeImplements mxGraphLayout.execute.
moveNodeMoves the specified node and all of its children by the given amount.
dfsDoes a depth first search starting at the specified cell.
layoutStarts the actual compact tree layout algorithm at the given node.
horizontalLayout
verticalLayout
attachParent
layoutLeaf
join
merge
offset
bridge
createNode
apply
createLine
adjustParents
localEdgeProcessingMoves the specified node and all of its children by the given amount.
localEdgeProcessingSeparates the x position of edges as they connect to vertices
WeightedCellSorterA utility class used to track cells whilst sorting occurs on the weighted sum of their connected edges.
Functions
WeightedCellSorterConstructs a new weighted cell sorted for the given cell and weight.
Variables
weightedValueThe weighted value of the cell stored.
nudgeWhether or not to flip equal weight values.
visitedWhether or not this cell has been visited in the current assignment.
rankIndexThe index this cell is in the model rank.
cellThe cell whose median value is being calculated.
Functions
compareCompares two WeightedCellSorters.
+ +

Functions

+ +

mxCompactTreeLayout

function mxCompactTreeLayout(graph,
horizontal,
invert)

Constructs a new compact tree layout for the specified graph and orientation.

+ +

Variables

+ +

horizontal

mxCompactTreeLayout.prototype.horizontal

Specifies the orientation of the layout.  Default is true.

+ +

invert

mxCompactTreeLayout.prototype.invert

Specifies if edge directions should be inverted.  Default is false.

+ +

resizeParent

mxCompactTreeLayout.prototype.resizeParent

If the parents should be resized to match the width/height of the children.  Default is true.

+ +

groupPadding

mxCompactTreeLayout.prototype.groupPadding

Padding added to resized parents

+ +

parentsChanged

mxCompactTreeLayout.prototype.parentsChanged

A set of the parents that need updating based on children process as part of the layout

+ +

moveTree

mxCompactTreeLayout.prototype.moveTree

Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer.  Default is false.

+ +

levelDistance

mxCompactTreeLayout.prototype.levelDistance

Holds the levelDistance.  Default is 10.

+ +

nodeDistance

mxCompactTreeLayout.prototype.nodeDistance

Holds the nodeDistance.  Default is 20.

+ +

resetEdges

mxCompactTreeLayout.prototype.resetEdges

Specifies if all edge points of traversed edges should be removed.  Default is true.

+ +

prefHozEdgeSep

mxCompactTreeLayout.prototype.prefHozEdgeSep

The preferred horizontal distance between edges exiting a vertex

+ +

prefVertEdgeOff

mxCompactTreeLayout.prototype.prefVertEdgeOff

The preferred vertical offset between edges exiting a vertex

+ +

minEdgeJetty

mxCompactTreeLayout.prototype.minEdgeJetty

The minimum distance for an edge jetty from a vertex

+ +

channelBuffer

mxCompactTreeLayout.prototype.channelBuffer

The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed

+ +

edgeRouting

mxCompactTreeLayout.prototype.edgeRouting

Whether or not to apply the internal tree edge routing

+ +

Functions

+ +

isVertexIgnored

mxCompactTreeLayout.prototype.isVertexIgnored = function(vertex)

Returns a boolean indicating if the given mxCell should be ignored as a vertex.  This returns true if the cell has no connections.

Parameters

vertexmxCell whose ignored state should be returned.
+ +

isHorizontal

mxCompactTreeLayout.prototype.isHorizontal = function()

Returns horizontal.

+ +

execute

mxCompactTreeLayout.prototype.execute = function(parent,
root)

Implements mxGraphLayout.execute.

If the parent has any connected edges, then it is used as the root of the tree.  Else, mxGraph.findTreeRoots will be used to find a suitable root node within the set of children of the given parent.

Parameters

parentmxCell whose children should be laid out.
rootOptional mxCell that will be used as the root of the tree.
+ +

moveNode

mxCompactTreeLayout.prototype.moveNode = function(node,
dx,
dy)

Moves the specified node and all of its children by the given amount.

+ +

dfs

mxCompactTreeLayout.prototype.dfs = function(cell,
parent,
visited)

Does a depth first search starting at the specified cell.  Makes sure the specified parent is never left by the algorithm.

+ +

layout

mxCompactTreeLayout.prototype.layout = function(node)

Starts the actual compact tree layout algorithm at the given node.

+ +

horizontalLayout

mxCompactTreeLayout.prototype.horizontalLayout = function(node,
x0,
y0,
bounds)
+ +

verticalLayout

mxCompactTreeLayout.prototype.verticalLayout = function(node,
parent,
x0,
y0,
bounds)
+ +

attachParent

mxCompactTreeLayout.prototype.attachParent = function(node,
height)
+ +

layoutLeaf

mxCompactTreeLayout.prototype.layoutLeaf = function(node)
+ +

join

mxCompactTreeLayout.prototype.join = function(node)
+ +

merge

mxCompactTreeLayout.prototype.merge = function(p1,
p2)
+ +

offset

mxCompactTreeLayout.prototype.offset = function(p1,
p2,
a1,
a2,
b1,
b2)
+ +

bridge

mxCompactTreeLayout.prototype.bridge = function(line1,
x1,
y1,
line2,
x2,
y2)
+ +

createNode

mxCompactTreeLayout.prototype.createNode = function(cell)
+ +

apply

mxCompactTreeLayout.prototype.apply = function(node,
bounds)
+ +

createLine

mxCompactTreeLayout.prototype.createLine = function(dx,
dy,
next)
+ +

adjustParents

mxCompactTreeLayout.prototype.adjustParents = function()
+ +

localEdgeProcessing

mxCompactTreeLayout.prototype.localEdgeProcessing = function(node)

Moves the specified node and all of its children by the given amount.

+ +

localEdgeProcessing

Separates the x position of edges as they connect to vertices

+ +

WeightedCellSorter

A utility class used to track cells whilst sorting occurs on the weighted sum of their connected edges.  Does not violate (x.compareTo(y)==0) == (x.equals(y))

Summary
Functions
WeightedCellSorterConstructs a new weighted cell sorted for the given cell and weight.
Variables
weightedValueThe weighted value of the cell stored.
nudgeWhether or not to flip equal weight values.
visitedWhether or not this cell has been visited in the current assignment.
rankIndexThe index this cell is in the model rank.
cellThe cell whose median value is being calculated.
Functions
compareCompares two WeightedCellSorters.
+ +

Functions

+ +

WeightedCellSorter

function WeightedCellSorter(cell,
weightedValue)

Constructs a new weighted cell sorted for the given cell and weight.

+ +

Variables

+ +

weightedValue

WeightedCellSorter.prototype.weightedValue

The weighted value of the cell stored.

+ +

nudge

WeightedCellSorter.prototype.nudge

Whether or not to flip equal weight values.

+ +

visited

WeightedCellSorter.prototype.visited

Whether or not this cell has been visited in the current assignment.

+ +

rankIndex

WeightedCellSorter.prototype.rankIndex

The index this cell is in the model rank.

+ +

cell

WeightedCellSorter.prototype.cell

The cell whose median value is being calculated.

+ +

Functions

+ +

compare

WeightedCellSorter.prototype.compare = function(a,
b)

Compares two WeightedCellSorters.

+ +
+ + + + + + + + + + +
Base class for all layout algorithms in mxGraph.
function mxCompactTreeLayout(graph,
horizontal,
invert)
Constructs a new compact tree layout for the specified graph and orientation.
mxCompactTreeLayout.prototype.horizontal
Specifies the orientation of the layout.
mxCompactTreeLayout.prototype.invert
Specifies if edge directions should be inverted.
mxCompactTreeLayout.prototype.resizeParent
If the parents should be resized to match the width/height of the children.
mxCompactTreeLayout.prototype.groupPadding
Padding added to resized parents
mxCompactTreeLayout.prototype.parentsChanged
A set of the parents that need updating based on children process as part of the layout
mxCompactTreeLayout.prototype.moveTree
Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer.
mxCompactTreeLayout.prototype.levelDistance
Holds the levelDistance.
mxCompactTreeLayout.prototype.nodeDistance
Holds the nodeDistance.
mxCompactTreeLayout.prototype.resetEdges
Specifies if all edge points of traversed edges should be removed.
mxCompactTreeLayout.prototype.prefHozEdgeSep
The preferred horizontal distance between edges exiting a vertex
mxCompactTreeLayout.prototype.prefVertEdgeOff
The preferred vertical offset between edges exiting a vertex
mxCompactTreeLayout.prototype.minEdgeJetty
The minimum distance for an edge jetty from a vertex
mxCompactTreeLayout.prototype.channelBuffer
The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed
mxCompactTreeLayout.prototype.edgeRouting
Whether or not to apply the internal tree edge routing
mxCompactTreeLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored as a vertex.
Cells are the elements of the graph model.
mxCompactTreeLayout.prototype.isHorizontal = function()
Returns horizontal.
mxCompactTreeLayout.prototype.execute = function(parent,
root)
Implements mxGraphLayout.execute.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxCompactTreeLayout.prototype.moveNode = function(node,
dx,
dy)
Moves the specified node and all of its children by the given amount.
mxCompactTreeLayout.prototype.dfs = function(cell,
parent,
visited)
Does a depth first search starting at the specified cell.
mxCompactTreeLayout.prototype.layout = function(node)
Starts the actual compact tree layout algorithm at the given node.
mxCompactTreeLayout.prototype.horizontalLayout = function(node,
x0,
y0,
bounds)
mxCompactTreeLayout.prototype.verticalLayout = function(node,
parent,
x0,
y0,
bounds)
mxCompactTreeLayout.prototype.attachParent = function(node,
height)
mxCompactTreeLayout.prototype.layoutLeaf = function(node)
mxCompactTreeLayout.prototype.join = function(node)
mxCompactTreeLayout.prototype.merge = function(p1,
p2)
mxCompactTreeLayout.prototype.offset = function(p1,
p2,
a1,
a2,
b1,
b2)
mxCompactTreeLayout.prototype.bridge = function(line1,
x1,
y1,
line2,
x2,
y2)
mxCompactTreeLayout.prototype.createNode = function(cell)
mxCompactTreeLayout.prototype.apply = function(node,
bounds)
mxCompactTreeLayout.prototype.createLine = function(dx,
dy,
next)
mxCompactTreeLayout.prototype.adjustParents = function()
mxCompactTreeLayout.prototype.localEdgeProcessing = function(node)
Moves the specified node and all of its children by the given amount.
function WeightedCellSorter(cell,
weightedValue)
Constructs a new weighted cell sorted for the given cell and weight.
WeightedCellSorter.prototype.weightedValue
The weighted value of the cell stored.
WeightedCellSorter.prototype.nudge
Whether or not to flip equal weight values.
WeightedCellSorter.prototype.visited
Whether or not this cell has been visited in the current assignment.
WeightedCellSorter.prototype.rankIndex
The index this cell is in the model rank.
WeightedCellSorter.prototype.cell
The cell whose median value is being calculated.
WeightedCellSorter.prototype.compare = function(a,
b)
Compares two WeightedCellSorters.
mxGraph.prototype.findTreeRoots = function(parent,
isolate,
invert)
Returns all children in the given parent which do not have incoming edges.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/mxCompositeLayout-js.html b/docs/js-api/files/layout/mxCompositeLayout-js.html new file mode 100644 index 000000000..38a0f55dd --- /dev/null +++ b/docs/js-api/files/layout/mxCompositeLayout-js.html @@ -0,0 +1,58 @@ + + +mxCompositeLayout + + + + + + + + + +

mxCompositeLayout

Allows to compose multiple layouts into a single layout.  The master layout is the layout that handles move operations if another layout than the first element in layouts should be used.  The <master> layout is not executed as the code assumes that it is part of layouts.

Example

var first = new mxFastOrganicLayout(graph);
+var second = new mxParallelEdgeLayout(graph);
+var layout = new mxCompositeLayout(graph, [first, second], first);
+layout.execute(graph.getDefaultParent());
Summary
mxCompositeLayoutAllows to compose multiple layouts into a single layout.
Functions
mxCompositeLayoutConstructs a new layout using the given layouts.
Variables
layoutsHolds the array of mxGraphLayouts that this layout contains.
layoutsReference to the mxGraphLayouts that handles moves.
Functions
moveCellImplements mxGraphLayout.moveCell by calling move on <master> or the first layout in layouts.
executeImplements mxGraphLayout.execute by executing all layouts in a single transaction.
+ +

Functions

+ +

mxCompositeLayout

function mxCompositeLayout(graph,
layouts,
master)

Constructs a new layout using the given layouts.  The graph instance is required for creating the transaction that contains all layouts.

Arguments

graphReference to the enclosing mxGraph.
layoutsArray of mxGraphLayouts.
masterOptional layout that handles moves.  If no layout is given then the first layout of the above array is used to handle moves.
+ +

Variables

+ +

layouts

mxCompositeLayout.prototype.layouts

Holds the array of mxGraphLayouts that this layout contains.

+ +

layouts

Reference to the mxGraphLayouts that handles moves.  If this is null then the first layout in layouts is used.

+ +

Functions

+ +

moveCell

mxCompositeLayout.prototype.moveCell = function(cell,
x,
y)

Implements mxGraphLayout.moveCell by calling move on <master> or the first layout in layouts.

+ +

execute

mxCompositeLayout.prototype.execute = function(parent)

Implements mxGraphLayout.execute by executing all layouts in a single transaction.

+ +
+ + + + + + + + + + +
function mxCompositeLayout(graph,
layouts,
master)
Constructs a new layout using the given layouts.
mxCompositeLayout.prototype.layouts
Holds the array of mxGraphLayouts that this layout contains.
Base class for all layout algorithms in mxGraph.
mxCompositeLayout.prototype.moveCell = function(cell,
x,
y)
Implements mxGraphLayout.moveCell by calling move on master or the first layout in layouts.
mxGraphLayout.prototype.moveCell = function(cell,
x,
y)
Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg.
mxCompositeLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute by executing all layouts in a single transaction.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
Extends mxEventSource to implement a graph component for the browser.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/mxEdgeLabelLayout-js.html b/docs/js-api/files/layout/mxEdgeLabelLayout-js.html new file mode 100644 index 000000000..b2c711bdb --- /dev/null +++ b/docs/js-api/files/layout/mxEdgeLabelLayout-js.html @@ -0,0 +1,50 @@ + + +mxEdgeLabelLayout + + + + + + + + + +

mxEdgeLabelLayout

Extends mxGraphLayout to implement an edge label layout.  This layout makes use of cell states, which means the graph must be validated in a graph view (so that the label bounds are available) before this layout can be executed.

Example

var layout = new mxEdgeLabelLayout(graph);
+layout.execute(graph.getDefaultParent());
Summary
mxEdgeLabelLayoutExtends mxGraphLayout to implement an edge label layout.
Functions
mxEdgeLabelLayoutConstructs a new edge label layout.
executeImplements mxGraphLayout.execute.
placeLabelsPlaces the labels of the given edges.
avoidPlaces the labels of the given edges.
+ +

Functions

+ +

mxEdgeLabelLayout

function mxEdgeLabelLayout(graph,
radius)

Constructs a new edge label layout.

Arguments

graphmxGraph that contains the cells.
+ +

execute

mxEdgeLabelLayout.prototype.execute = function(parent)

Implements mxGraphLayout.execute.

+ +

placeLabels

mxEdgeLabelLayout.prototype.placeLabels = function(v,
e)

Places the labels of the given edges.

+ +

avoid

mxEdgeLabelLayout.prototype.avoid = function(edge,
vertex)

Places the labels of the given edges.

+ +
+ + + + + + + + + + +
Base class for all layout algorithms in mxGraph.
function mxEdgeLabelLayout(graph,
radius)
Constructs a new edge label layout.
mxEdgeLabelLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxEdgeLabelLayout.prototype.placeLabels = function(v,
e)
Places the labels of the given edges.
mxEdgeLabelLayout.prototype.avoid = function(edge,
vertex)
Places the labels of the given edges.
Extends mxEventSource to implement a graph component for the browser.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/mxFastOrganicLayout-js.html b/docs/js-api/files/layout/mxFastOrganicLayout-js.html new file mode 100644 index 000000000..66ecd994d --- /dev/null +++ b/docs/js-api/files/layout/mxFastOrganicLayout-js.html @@ -0,0 +1,104 @@ + + +mxFastOrganicLayout + + + + + + + + + +

mxFastOrganicLayout

Extends mxGraphLayout to implement a fast organic layout algorithm.  The vertices need to be connected for this layout to work, vertices with no connections are ignored.

Example

var layout = new mxFastOrganicLayout(graph);
+layout.execute(graph.getDefaultParent());
Summary
mxFastOrganicLayoutExtends mxGraphLayout to implement a fast organic layout algorithm.
Functions
mxCompactTreeLayoutConstructs a new fast organic layout for the specified graph.
Variables
useInputOriginSpecifies if the top left corner of the input cells should be the origin of the layout result.
resetEdgesSpecifies if all edge points of traversed edges should be removed.
disableEdgeStyleSpecifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
forceConstantThe force constant by which the attractive forces are divided and the replusive forces are multiple by the square of.
forceConstantSquaredCache of <forceConstant>^2 for performance.
minDistanceLimitMinimal distance limit.
minDistanceLimitMinimal distance limit.
minDistanceLimitSquaredCached version of minDistanceLimit squared.
initialTempStart value of temperature.
temperatureTemperature to limit displacement at later stages of layout.
maxIterationsTotal number of iterations to run the layout though.
iterationCurrent iteration count.
vertexArrayAn array of all vertices to be laid out.
dispXAn array of locally stored X co-ordinate displacements for the vertices.
dispYAn array of locally stored Y co-ordinate displacements for the vertices.
cellLocationAn array of locally stored co-ordinate positions for the vertices.
radiusThe approximate radius of each cell, nodes only.
radiusSquaredThe approximate radius squared of each cell, nodes only.
isMoveableArray of booleans representing the movable states of the vertices.
neighboursLocal copy of cell neighbours.
indicesHashtable from cells to local indices.
allowedToRunBoolean flag that specifies if the layout is allowed to run.
Functions
isVertexIgnoredReturns a boolean indicating if the given mxCell should be ignored as a vertex.
executeImplements mxGraphLayout.execute.
calcPositionsTakes the displacements calculated for each cell and applies them to the local cache of cell positions.
calcAttractionCalculates the attractive forces between all laid out nodes linked by edges
calcRepulsionCalculates the repulsive forces between all laid out nodes
reduceTemperatureReduces the temperature of the layout from an initial setting in a linear fashion to zero.
+ +

Functions

+ +

mxCompactTreeLayout

Constructs a new fast organic layout for the specified graph.

+ +

Variables

+ +

useInputOrigin

mxFastOrganicLayout.prototype.useInputOrigin

Specifies if the top left corner of the input cells should be the origin of the layout result.  Default is true.

+ +

resetEdges

mxFastOrganicLayout.prototype.resetEdges

Specifies if all edge points of traversed edges should be removed.  Default is true.

+ +

disableEdgeStyle

mxFastOrganicLayout.prototype.disableEdgeStyle

Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.  Default is true.

+ +

forceConstant

mxFastOrganicLayout.prototype.forceConstant

The force constant by which the attractive forces are divided and the replusive forces are multiple by the square of.  The value equates to the average radius there is of free space around each node.  Default is 50.

+ +

forceConstantSquared

mxFastOrganicLayout.prototype.forceConstantSquared

Cache of <forceConstant>^2 for performance.

+ +

minDistanceLimit

mxFastOrganicLayout.prototype.minDistanceLimit

Minimal distance limit.  Default is 2.  Prevents of dividing by zero.

+ +

minDistanceLimit

Minimal distance limit.  Default is 2.  Prevents of dividing by zero.

+ +

minDistanceLimitSquared

mxFastOrganicLayout.prototype.minDistanceLimitSquared

Cached version of minDistanceLimit squared.

+ +

initialTemp

mxFastOrganicLayout.prototype.initialTemp

Start value of temperature.  Default is 200.

+ +

temperature

mxFastOrganicLayout.prototype.temperature

Temperature to limit displacement at later stages of layout.

+ +

maxIterations

mxFastOrganicLayout.prototype.maxIterations

Total number of iterations to run the layout though.

+ +

iteration

mxFastOrganicLayout.prototype.iteration

Current iteration count.

+ +

vertexArray

mxFastOrganicLayout.prototype.vertexArray

An array of all vertices to be laid out.

+ +

dispX

mxFastOrganicLayout.prototype.dispX

An array of locally stored X co-ordinate displacements for the vertices.

+ +

dispY

mxFastOrganicLayout.prototype.dispY

An array of locally stored Y co-ordinate displacements for the vertices.

+ +

cellLocation

mxFastOrganicLayout.prototype.cellLocation

An array of locally stored co-ordinate positions for the vertices.

+ +

radius

mxFastOrganicLayout.prototype.radius

The approximate radius of each cell, nodes only.

+ +

radiusSquared

mxFastOrganicLayout.prototype.radiusSquared

The approximate radius squared of each cell, nodes only.

+ +

isMoveable

mxFastOrganicLayout.prototype.isMoveable

Array of booleans representing the movable states of the vertices.

+ +

neighbours

mxFastOrganicLayout.prototype.neighbours

Local copy of cell neighbours.

+ +

indices

mxFastOrganicLayout.prototype.indices

Hashtable from cells to local indices.

+ +

allowedToRun

mxFastOrganicLayout.prototype.allowedToRun

Boolean flag that specifies if the layout is allowed to run.  If this is set to false, then the layout exits in the following iteration.

+ +

Functions

+ +

isVertexIgnored

mxFastOrganicLayout.prototype.isVertexIgnored = function(vertex)

Returns a boolean indicating if the given mxCell should be ignored as a vertex.  This returns true if the cell has no connections.

Parameters

vertexmxCell whose ignored state should be returned.
+ +

execute

mxFastOrganicLayout.prototype.execute = function(parent)

Implements mxGraphLayout.execute.  This operates on all children of the given parent where isVertexIgnored returns false.

+ +

calcPositions

mxFastOrganicLayout.prototype.calcPositions = function()

Takes the displacements calculated for each cell and applies them to the local cache of cell positions.  Limits the displacement to the current temperature.

+ +

calcAttraction

mxFastOrganicLayout.prototype.calcAttraction = function()

Calculates the attractive forces between all laid out nodes linked by edges

+ +

calcRepulsion

mxFastOrganicLayout.prototype.calcRepulsion = function()

Calculates the repulsive forces between all laid out nodes

+ +

reduceTemperature

mxFastOrganicLayout.prototype.reduceTemperature = function()

Reduces the temperature of the layout from an initial setting in a linear fashion to zero.

+ +
+ + + + + + + + + + +
Base class for all layout algorithms in mxGraph.
mxFastOrganicLayout.prototype.useInputOrigin
Specifies if the top left corner of the input cells should be the origin of the layout result.
mxFastOrganicLayout.prototype.resetEdges
Specifies if all edge points of traversed edges should be removed.
mxFastOrganicLayout.prototype.disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
mxFastOrganicLayout.prototype.forceConstant
The force constant by which the attractive forces are divided and the replusive forces are multiple by the square of.
mxFastOrganicLayout.prototype.forceConstantSquared
Cache of <forceConstant>^2 for performance.
mxFastOrganicLayout.prototype.minDistanceLimit
Minimal distance limit.
mxFastOrganicLayout.prototype.minDistanceLimitSquared
Cached version of minDistanceLimit squared.
mxFastOrganicLayout.prototype.initialTemp
Start value of temperature.
mxFastOrganicLayout.prototype.temperature
Temperature to limit displacement at later stages of layout.
mxFastOrganicLayout.prototype.maxIterations
Total number of iterations to run the layout though.
mxFastOrganicLayout.prototype.iteration
Current iteration count.
mxFastOrganicLayout.prototype.vertexArray
An array of all vertices to be laid out.
mxFastOrganicLayout.prototype.dispX
An array of locally stored X co-ordinate displacements for the vertices.
mxFastOrganicLayout.prototype.dispY
An array of locally stored Y co-ordinate displacements for the vertices.
mxFastOrganicLayout.prototype.cellLocation
An array of locally stored co-ordinate positions for the vertices.
mxFastOrganicLayout.prototype.radius
The approximate radius of each cell, nodes only.
mxFastOrganicLayout.prototype.radiusSquared
The approximate radius squared of each cell, nodes only.
mxFastOrganicLayout.prototype.isMoveable
Array of booleans representing the movable states of the vertices.
mxFastOrganicLayout.prototype.neighbours
Local copy of cell neighbours.
mxFastOrganicLayout.prototype.indices
Hashtable from cells to local indices.
mxFastOrganicLayout.prototype.allowedToRun
Boolean flag that specifies if the layout is allowed to run.
mxFastOrganicLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored as a vertex.
Cells are the elements of the graph model.
mxFastOrganicLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxFastOrganicLayout.prototype.calcPositions = function()
Takes the displacements calculated for each cell and applies them to the local cache of cell positions.
mxFastOrganicLayout.prototype.calcAttraction = function()
Calculates the attractive forces between all laid out nodes linked by edges
mxFastOrganicLayout.prototype.calcRepulsion = function()
Calculates the repulsive forces between all laid out nodes
mxFastOrganicLayout.prototype.reduceTemperature = function()
Reduces the temperature of the layout from an initial setting in a linear fashion to zero.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/mxGraphLayout-js.html b/docs/js-api/files/layout/mxGraphLayout-js.html new file mode 100644 index 000000000..19fba78ab --- /dev/null +++ b/docs/js-api/files/layout/mxGraphLayout-js.html @@ -0,0 +1,81 @@ + + +mxGraphLayout + + + + + + + + + +

mxGraphLayout

Base class for all layout algorithms in mxGraph.  Main public functions are <move> for handling a moved cell within a layouted parent, and execute for running the layout on a given parent cell.

Known Subclasses

mxCircleLayout, mxCompactTreeLayout, mxCompositeLayout, mxFastOrganicLayout, mxParallelEdgeLayout, mxPartitionLayout, mxStackLayout

Summary
mxGraphLayoutBase class for all layout algorithms in mxGraph.
Functions
mxGraphLayoutConstructs a new layout using the given layouts.
Variables
graphReference to the enclosing mxGraph.
useBoundingBoxBoolean indicating if the bounding box of the label should be used if its available.
parentThe parent cell of the layout, if any
Functions
moveCellNotified when a cell is being moved in a parent that has automatic layout to update the cell state (eg.
executeExecutes the layout algorithm for the children of the given parent.
getGraphReturns the graph that this layout operates on.
getConstraintReturns the constraint for the given key and cell.
isVertexMovableReturns a boolean indicating if the given mxCell is movable or bendable by the algorithm.
isVertexIgnoredReturns a boolean indicating if the given mxCell should be ignored by the algorithm.
isEdgeIgnoredReturns a boolean indicating if the given mxCell should be ignored by the algorithm.
setEdgeStyleEnabledDisables or enables the edge style of the given edge.
setOrthogonalEdgeDisables or enables orthogonal end segments of the given edge.
getParentOffsetDetermines the offset of the given parent to the parent of the layout
setEdgePointsReplaces the array of mxPoints in the geometry of the given edge with the given array of mxPoints.
setVertexLocationSets the new position of the given cell taking into account the size of the bounding box if useBoundingBox is true.
getCellBoundsReturns an mxRectangle that defines the bounds of the given cell or the bounding box if useBoundingBox is true.
getCellBoundsUpdates the bounds of the given groups to include all children.
+ +

Functions

+ +

mxGraphLayout

function mxGraphLayout(graph)

Constructs a new layout using the given layouts.

Arguments

graphEnclosing
+ +

Variables

+ +

graph

mxGraphLayout.prototype.graph

Reference to the enclosing mxGraph.

+ +

useBoundingBox

mxGraphLayout.prototype.useBoundingBox

Boolean indicating if the bounding box of the label should be used if its available.  Default is true.

+ +

parent

mxGraphLayout.prototype.parent

The parent cell of the layout, if any

+ +

Functions

+ +

moveCell

mxGraphLayout.prototype.moveCell = function(cell,
x,
y)

Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg. index) so that the outcome of the layout will position the vertex as close to the point (x, y) as possible.

Empty implementation.

Parameters

cellmxCell which has been moved.
xX-coordinate of the new cell location.
yY-coordinate of the new cell location.
+ +

execute

mxGraphLayout.prototype.execute = function(parent)

Executes the layout algorithm for the children of the given parent.

Parameters

parentmxCell whose children should be layed out.
+ +

getGraph

mxGraphLayout.prototype.getGraph = function()

Returns the graph that this layout operates on.

+ +

getConstraint

mxGraphLayout.prototype.getConstraint = function(key,
cell,
edge,
source)

Returns the constraint for the given key and cell.  The optional edge and source arguments are used to return inbound and outgoing routing- constraints for the given edge and vertex.  This implementation always returns the value for the given key in the style of the given cell.

Parameters

keyKey of the constraint to be returned.
cellmxCell whose constraint should be returned.
edgeOptional mxCell that represents the connection whose constraint should be returned.  Default is null.
sourceOptional boolean that specifies if the connection is incoming or outgoing.  Default is null.
+ +

isVertexMovable

mxGraphLayout.prototype.isVertexMovable = function(cell)

Returns a boolean indicating if the given mxCell is movable or bendable by the algorithm.  This implementation returns true if the given cell is movable in the graph.

Parameters

cellmxCell whose movable state should be returned.
+ +

isVertexIgnored

mxGraphLayout.prototype.isVertexIgnored = function(vertex)

Returns a boolean indicating if the given mxCell should be ignored by the algorithm.  This implementation returns false for all vertices.

Parameters

vertexmxCell whose ignored state should be returned.
+ +

isEdgeIgnored

mxGraphLayout.prototype.isEdgeIgnored = function(edge)

Returns a boolean indicating if the given mxCell should be ignored by the algorithm.  This implementation returns false for all vertices.

Parameters

cellmxCell whose ignored state should be returned.
+ +

setEdgeStyleEnabled

mxGraphLayout.prototype.setEdgeStyleEnabled = function(edge,
value)

Disables or enables the edge style of the given edge.

+ +

setOrthogonalEdge

mxGraphLayout.prototype.setOrthogonalEdge = function(edge,
value)

Disables or enables orthogonal end segments of the given edge.

+ +

getParentOffset

mxGraphLayout.prototype.getParentOffset = function(parent)

Determines the offset of the given parent to the parent of the layout

+ +

setEdgePoints

mxGraphLayout.prototype.setEdgePoints = function(edge,
points)

Replaces the array of mxPoints in the geometry of the given edge with the given array of mxPoints.

+ +

setVertexLocation

mxGraphLayout.prototype.setVertexLocation = function(cell,
x,
y)

Sets the new position of the given cell taking into account the size of the bounding box if useBoundingBox is true.  The change is only carried out if the new location is not equal to the existing location, otherwise the geometry is not replaced with an updated instance.  The new or old bounds are returned (including overlapping labels).

Parameters

cellmxCell whose geometry is to be set.
xInteger that defines the x-coordinate of the new location.
yInteger that defines the y-coordinate of the new location.
+ +

getCellBounds

Returns an mxRectangle that defines the bounds of the given cell or the bounding box if useBoundingBox is true.

+ +

getCellBounds

Updates the bounds of the given groups to include all children.  Call this with the groups in parent to child order, top-most group first, eg.

arrangeGroups(graph, mxUtils.sortCells(Arrays.asList( new Object[] { v1, v3 }), true).toArray(), 10);

+ +
+ + + + + + + + + + +
function mxGraphLayout(graph)
Constructs a new layout using the given layouts.
mxGraphLayout.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxGraphLayout.prototype.useBoundingBox
Boolean indicating if the bounding box of the label should be used if its available.
mxGraphLayout.prototype.parent
The parent cell of the layout, if any
mxGraphLayout.prototype.moveCell = function(cell,
x,
y)
Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxGraphLayout.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxGraphLayout.prototype.getConstraint = function(key,
cell,
edge,
source)
Returns the constraint for the given key and cell.
mxGraphLayout.prototype.isVertexMovable = function(cell)
Returns a boolean indicating if the given mxCell is movable or bendable by the algorithm.
Cells are the elements of the graph model.
mxGraphLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored by the algorithm.
mxGraphLayout.prototype.isEdgeIgnored = function(edge)
Returns a boolean indicating if the given mxCell should be ignored by the algorithm.
mxGraphLayout.prototype.setEdgeStyleEnabled = function(edge,
value)
Disables or enables the edge style of the given edge.
mxGraphLayout.prototype.setOrthogonalEdge = function(edge,
value)
Disables or enables orthogonal end segments of the given edge.
mxGraphLayout.prototype.getParentOffset = function(parent)
Determines the offset of the given parent to the parent of the layout
mxGraphLayout.prototype.setEdgePoints = function(edge,
points)
Replaces the array of mxPoints in the geometry of the given edge with the given array of mxPoints.
mxGraphLayout.prototype.setVertexLocation = function(cell,
x,
y)
Sets the new position of the given cell taking into account the size of the bounding box if useBoundingBox is true.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
Extends mxGraphLayout to implement a circluar layout for a given radius.
Extends mxGraphLayout to implement a compact tree (Moen) algorithm.
Allows to compose multiple layouts into a single layout.
Extends mxGraphLayout to implement a fast organic layout algorithm.
Extends mxGraphLayout for arranging parallel edges.
Extends mxGraphLayout for partitioning the parent cell vertically or horizontally by filling the complete area with the child cells.
Extends mxGraphLayout to create a horizontal or vertical stack of the child vertices.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/mxParallelEdgeLayout-js.html b/docs/js-api/files/layout/mxParallelEdgeLayout-js.html new file mode 100644 index 000000000..113706378 --- /dev/null +++ b/docs/js-api/files/layout/mxParallelEdgeLayout-js.html @@ -0,0 +1,60 @@ + + +mxParallelEdgeLayout + + + + + + + + + +

mxParallelEdgeLayout

Extends mxGraphLayout for arranging parallel edges.  This layout works on edges for all pairs of vertices where there is more than one edge connecting the latter.

Example

var layout = new mxParallelEdgeLayout(graph);
+layout.execute(graph.getDefaultParent());
Summary
mxParallelEdgeLayoutExtends mxGraphLayout for arranging parallel edges.
Functions
mxCompactTreeLayoutConstructs a new fast organic layout for the specified graph.
Variables
spacingDefines the spacing between the parallels.
Functions
executeImplements mxGraphLayout.execute.
findParallelsFinds the parallel edges in the given parent.
getEdgeIdReturns a unique ID for the given edge.
layoutLays out the parallel edges in the given array.
routeRoutes the given edge via the given point.
+ +

Functions

+ +

mxCompactTreeLayout

Constructs a new fast organic layout for the specified graph.

+ +

Variables

+ +

spacing

mxParallelEdgeLayout.prototype.spacing

Defines the spacing between the parallels.  Default is 20.

+ +

Functions

+ +

execute

mxParallelEdgeLayout.prototype.execute = function(parent)

Implements mxGraphLayout.execute.

+ +

findParallels

mxParallelEdgeLayout.prototype.findParallels = function(parent)

Finds the parallel edges in the given parent.

+ +

getEdgeId

mxParallelEdgeLayout.prototype.getEdgeId = function(edge)

Returns a unique ID for the given edge.  The id is independent of the edge direction and is built using the visible terminal of the given edge.

+ +

layout

mxParallelEdgeLayout.prototype.layout = function(parallels)

Lays out the parallel edges in the given array.

+ +

route

mxParallelEdgeLayout.prototype.route = function(edge,
x,
y)

Routes the given edge via the given point.

+ +
+ + + + + + + + + + +
Base class for all layout algorithms in mxGraph.
mxParallelEdgeLayout.prototype.spacing
Defines the spacing between the parallels.
mxParallelEdgeLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxParallelEdgeLayout.prototype.findParallels = function(parent)
Finds the parallel edges in the given parent.
mxParallelEdgeLayout.prototype.getEdgeId = function(edge)
Returns a unique ID for the given edge.
mxParallelEdgeLayout.prototype.layout = function(parallels)
Lays out the parallel edges in the given array.
mxParallelEdgeLayout.prototype.route = function(edge,
x,
y)
Routes the given edge via the given point.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/mxPartitionLayout-js.html b/docs/js-api/files/layout/mxPartitionLayout-js.html new file mode 100644 index 000000000..85a2622cd --- /dev/null +++ b/docs/js-api/files/layout/mxPartitionLayout-js.html @@ -0,0 +1,62 @@ + + +mxPartitionLayout + + + + + + + + + +

mxPartitionLayout

Extends mxGraphLayout for partitioning the parent cell vertically or horizontally by filling the complete area with the child cells.  A horizontal layout partitions the height of the given parent whereas a a non-horizontal layout partitions the width.  If the parent is a layer (that is, a child of the root node), then the current graph size is partitioned.  The children do not need to be connected for this layout to work.

Example

var layout = new mxPartitionLayout(graph, true, 10, 20);
+layout.execute(graph.getDefaultParent());
Summary
mxPartitionLayoutExtends mxGraphLayout for partitioning the parent cell vertically or horizontally by filling the complete area with the child cells.
Functions
mxPartitionLayoutConstructs a new stack layout layout for the specified graph, spacing, orientation and offset.
Variables
horizontalBoolean indicating the direction in which the space is partitioned.
spacingInteger that specifies the absolute spacing in pixels between the children.
borderInteger that specifies the absolute inset in pixels for the parent that contains the children.
resizeVerticesBoolean that specifies if vertices should be resized.
Functions
isHorizontalReturns horizontal.
moveCellImplements mxGraphLayout.moveCell.
executeImplements mxGraphLayout.execute.
+ +

Functions

+ +

mxPartitionLayout

function mxPartitionLayout(graph,
horizontal,
spacing,
border)

Constructs a new stack layout layout for the specified graph, spacing, orientation and offset.

+ +

Variables

+ +

horizontal

mxPartitionLayout.prototype.horizontal

Boolean indicating the direction in which the space is partitioned.  Default is true.

+ +

spacing

mxPartitionLayout.prototype.spacing

Integer that specifies the absolute spacing in pixels between the children.  Default is 0.

+ +

border

mxPartitionLayout.prototype.border

Integer that specifies the absolute inset in pixels for the parent that contains the children.  Default is 0.

+ +

resizeVertices

mxPartitionLayout.prototype.resizeVertices

Boolean that specifies if vertices should be resized.  Default is true.

+ +

Functions

+ +

isHorizontal

mxPartitionLayout.prototype.isHorizontal = function()

Returns horizontal.

+ +

moveCell

mxPartitionLayout.prototype.moveCell = function(cell,
x,
y)

Implements mxGraphLayout.moveCell.

+ +

execute

mxPartitionLayout.prototype.execute = function(parent)

Implements mxGraphLayout.execute.  All children where <isVertexIgnored> returns false and <isVertexMovable> returns true are modified.

+ +
+ + + + + + + + + + +
Base class for all layout algorithms in mxGraph.
function mxPartitionLayout(graph,
horizontal,
spacing,
border)
Constructs a new stack layout layout for the specified graph, spacing, orientation and offset.
mxPartitionLayout.prototype.horizontal
Boolean indicating the direction in which the space is partitioned.
mxPartitionLayout.prototype.spacing
Integer that specifies the absolute spacing in pixels between the children.
mxPartitionLayout.prototype.border
Integer that specifies the absolute inset in pixels for the parent that contains the children.
mxPartitionLayout.prototype.resizeVertices
Boolean that specifies if vertices should be resized.
mxPartitionLayout.prototype.isHorizontal = function()
Returns horizontal.
mxPartitionLayout.prototype.moveCell = function(cell,
x,
y)
Implements mxGraphLayout.moveCell.
mxGraphLayout.prototype.moveCell = function(cell,
x,
y)
Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg.
mxPartitionLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/layout/mxStackLayout-js.html b/docs/js-api/files/layout/mxStackLayout-js.html new file mode 100644 index 000000000..e7b1f25ce --- /dev/null +++ b/docs/js-api/files/layout/mxStackLayout-js.html @@ -0,0 +1,76 @@ + + +mxStackLayout + + + + + + + + + +

mxStackLayout

Extends mxGraphLayout to create a horizontal or vertical stack of the child vertices.  The children do not need to be connected for this layout to work.

Example

var layout = new mxStackLayout(graph, true);
+layout.execute(graph.getDefaultParent());
Summary
mxStackLayoutExtends mxGraphLayout to create a horizontal or vertical stack of the child vertices.
Functions
mxStackLayoutConstructs a new stack layout layout for the specified graph, spacing, orientation and offset.
Variables
horizontalSpecifies the orientation of the layout.
spacingSpecifies the spacing between the cells.
x0Specifies the horizontal origin of the layout.
y0Specifies the vertical origin of the layout.
borderBorder to be added if fill is true.
keepFirstLocationBoolean indicating if the location of the first cell should be kept, that is, it will not be moved to x0 or y0.
fillBoolean indicating if dimension should be changed to fill out the parent cell.
resizeParentIf the parent should be resized to match the width/height of the stack.
resizeLastIf the last element should be resized to fill out the parent.
wrapValue at which a new column or row should be created.
Functions
isHorizontalReturns horizontal.
moveCellImplements mxGraphLayout.moveCell.
getParentSizeReturns the size for the parent container or the size of the graph container if the parent is a layer or the root of the model.
executeImplements mxGraphLayout.execute.
+ +

Functions

+ +

mxStackLayout

function mxStackLayout(graph,
horizontal,
spacing,
x0,
y0,
border)

Constructs a new stack layout layout for the specified graph, spacing, orientation and offset.

+ +

Variables

+ +

horizontal

mxStackLayout.prototype.horizontal

Specifies the orientation of the layout.  Default is true.

+ +

spacing

mxStackLayout.prototype.spacing

Specifies the spacing between the cells.  Default is 0.

+ +

x0

mxStackLayout.prototype.x0

Specifies the horizontal origin of the layout.  Default is 0.

+ +

y0

mxStackLayout.prototype.y0

Specifies the vertical origin of the layout.  Default is 0.

+ +

border

mxStackLayout.prototype.border

Border to be added if fill is true.  Default is 0.

+ +

keepFirstLocation

mxStackLayout.prototype.keepFirstLocation

Boolean indicating if the location of the first cell should be kept, that is, it will not be moved to x0 or y0.

+ +

fill

mxStackLayout.prototype.fill

Boolean indicating if dimension should be changed to fill out the parent cell.  Default is false.

+ +

resizeParent

mxStackLayout.prototype.resizeParent

If the parent should be resized to match the width/height of the stack.  Default is false.

+ +

resizeLast

mxStackLayout.prototype.resizeLast

If the last element should be resized to fill out the parent.  Default is false.  If resizeParent is true then this is ignored.

+ +

wrap

mxStackLayout.prototype.wrap

Value at which a new column or row should be created.  Default is null.

+ +

Functions

+ +

isHorizontal

mxStackLayout.prototype.isHorizontal = function()

Returns horizontal.

+ +

moveCell

mxStackLayout.prototype.moveCell = function(cell,
x,
y)

Implements mxGraphLayout.moveCell.

+ +

getParentSize

mxStackLayout.prototype.getParentSize = function(parent)

Returns the size for the parent container or the size of the graph container if the parent is a layer or the root of the model.

+ +

execute

mxStackLayout.prototype.execute = function(parent)

Implements mxGraphLayout.execute.

Only children where <isVertexIgnored> returns false are taken into account.

+ +
+ + + + + + + + + + +
Base class for all layout algorithms in mxGraph.
function mxStackLayout(graph,
horizontal,
spacing,
x0,
y0,
border)
Constructs a new stack layout layout for the specified graph, spacing, orientation and offset.
mxStackLayout.prototype.horizontal
Specifies the orientation of the layout.
mxStackLayout.prototype.spacing
Specifies the spacing between the cells.
mxStackLayout.prototype.x0
Specifies the horizontal origin of the layout.
mxStackLayout.prototype.y0
Specifies the vertical origin of the layout.
mxStackLayout.prototype.border
Border to be added if fill is true.
mxStackLayout.prototype.keepFirstLocation
Boolean indicating if the location of the first cell should be kept, that is, it will not be moved to x0 or y0.
mxStackLayout.prototype.fill
Boolean indicating if dimension should be changed to fill out the parent cell.
mxStackLayout.prototype.resizeParent
If the parent should be resized to match the width/height of the stack.
mxStackLayout.prototype.resizeLast
If the last element should be resized to fill out the parent.
mxStackLayout.prototype.wrap
Value at which a new column or row should be created.
mxStackLayout.prototype.isHorizontal = function()
Returns horizontal.
mxStackLayout.prototype.moveCell = function(cell,
x,
y)
Implements mxGraphLayout.moveCell.
mxGraphLayout.prototype.moveCell = function(cell,
x,
y)
Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg.
mxStackLayout.prototype.getParentSize = function(parent)
Returns the size for the parent container or the size of the graph container if the parent is a layer or the root of the model.
mxStackLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/model/mxCell-js.html b/docs/js-api/files/model/mxCell-js.html new file mode 100644 index 000000000..211b4e0ae --- /dev/null +++ b/docs/js-api/files/model/mxCell-js.html @@ -0,0 +1,181 @@ + + +mxCell + + + + + + + + + +

mxCell

Cells are the elements of the graph model.  They represent the state of the groups, vertices and edges in a graph.

Custom attributes

For custom attributes we recommend using an XML node as the value of a cell.  The following code can be used to create a cell with an XML node as the value:

var doc = mxUtils.createXmlDocument();
+var node = doc.createElement('MyNode')
+node.setAttribute('label', 'MyLabel');
+node.setAttribute('attribute1', 'value1');
+graph.insertVertex(graph.getDefaultParent(), null, node, 40, 40, 80, 30);

For the label to work, mxGraph.convertValueToString and mxGraph.cellLabelChanged should be overridden as follows:

graph.convertValueToString = function(cell)
+{
+  if (mxUtils.isNode(cell.value))
+  {
+    return cell.getAttribute('label', '')
+  }
+};
+
+var cellLabelChanged = graph.cellLabelChanged;
+graph.cellLabelChanged = function(cell, newValue, autoSize)
+{
+  if (mxUtils.isNode(cell.value))
+  {
+    // Clones the value for correct undo/redo
+    var elt = cell.value.cloneNode(true);
+    elt.setAttribute('label', newValue);
+    newValue = elt;
+  }
+
+  cellLabelChanged.apply(this, arguments);
+};
Summary
mxCellCells are the elements of the graph model.
Functions
onInitCalled from within the constructor.
mxCellConstructs a new cell to be used in a graph model.
Variables
idHolds the Id.
valueHolds the user object.
geometryHolds the mxGeometry.
styleHolds the style as a string of the form [(stylename|key=value);].
vertexSpecifies whether the cell is a vertex.
edgeSpecifies whether the cell is an edge.
connectableSpecifies whether the cell is connectable.
visibleSpecifies whether the cell is visible.
collapsedSpecifies whether the cell is collapsed.
parentReference to the parent cell.
sourceReference to the source terminal.
targetReference to the target terminal.
childrenHolds the child cells.
edgesHolds the edges.
mxTransientList of members that should not be cloned inside clone.
Functions
getIdReturns the Id of the cell as a string.
setIdSets the Id of the cell to the given string.
getValueReturns the user object of the cell.
setValueSets the user object of the cell.
valueChangedChanges the user object after an in-place edit and returns the previous value.
getGeometryReturns the mxGeometry that describes the geometry.
setGeometrySets the mxGeometry to be used as the geometry.
getStyleReturns a string that describes the style.
setStyleSets the string to be used as the style.
isVertexReturns true if the cell is a vertex.
setVertexSpecifies if the cell is a vertex.
isEdgeReturns true if the cell is an edge.
setEdgeSpecifies if the cell is an edge.
isConnectableReturns true if the cell is connectable.
setConnectableSets the connectable state.
isVisibleReturns true if the cell is visibile.
setVisibleSpecifies if the cell is visible.
isCollapsedReturns true if the cell is collapsed.
setCollapsedSets the collapsed state.
getParentReturns the cell’s parent.
setParentSets the parent cell.
getTerminalReturns the source or target terminal.
setTerminalSets the source or target terminal and returns the new terminal.
getChildCountReturns the number of child cells.
getIndexReturns the index of the specified child in the child array.
getChildAtReturns the child at the specified index.
insertInserts the specified child into the child array at the specified index and updates the parent reference of the child.
removeRemoves the child at the specified index from the child array and returns the child that was removed.
removeFromParentRemoves the cell from its parent.
getEdgeCountReturns the number of edges in the edge array.
getEdgeIndexReturns the index of the specified edge in edges.
getEdgeAtReturns the edge at the specified index in edges.
insertEdgeInserts the specified edge into the edge array and returns the edge.
removeEdgeRemoves the specified edge from the edge array and returns the edge.
removeFromTerminalRemoves the edge from its source or target terminal.
getAttributeReturns the specified attribute from the user object if it is an XML node.
setAttributeSets the specified attribute on the user object if it is an XML node.
cloneReturns a clone of the cell.
cloneValueReturns a clone of the cell’s user object.
+ +

Functions

+ +

onInit

Called from within the constructor.

+ +

mxCell

function mxCell(value,
geometry,
style)

Constructs a new cell to be used in a graph model.  This method invokes onInit upon completion.

Parameters

valueOptional object that represents the cell value.
geometryOptional mxGeometry that specifies the geometry.
styleOptional formatted string that defines the style.
+ +

Variables

+ +

id

mxCell.prototype.id

Holds the Id.  Default is null.

+ +

value

mxCell.prototype.value

Holds the user object.  Default is null.

+ +

geometry

mxCell.prototype.geometry

Holds the mxGeometry.  Default is null.

+ +

style

mxCell.prototype.style

Holds the style as a string of the form [(stylename|key=value);].  Default is null.

+ +

vertex

mxCell.prototype.vertex

Specifies whether the cell is a vertex.  Default is false.

+ +

edge

mxCell.prototype.edge

Specifies whether the cell is an edge.  Default is false.

+ +

connectable

mxCell.prototype.connectable

Specifies whether the cell is connectable.  Default is true.

+ +

visible

mxCell.prototype.visible

Specifies whether the cell is visible.  Default is true.

+ +

collapsed

mxCell.prototype.collapsed

Specifies whether the cell is collapsed.  Default is false.

+ +

parent

mxCell.prototype.parent

Reference to the parent cell.

+ +

source

mxCell.prototype.source

Reference to the source terminal.

+ +

target

mxCell.prototype.target

Reference to the target terminal.

+ +

children

mxCell.prototype.children

Holds the child cells.

+ +

edges

mxCell.prototype.edges

Holds the edges.

+ +

mxTransient

mxCell.prototype.mxTransient

List of members that should not be cloned inside clone.  This field is passed to mxUtils.clone and is not made persistent in mxCellCodec.  This is not a convention for all classes, it is only used in this class to mark transient fields since transient modifiers are not supported by the language.

+ +

Functions

+ +

getId

mxCell.prototype.getId = function()

Returns the Id of the cell as a string.

+ +

setId

mxCell.prototype.setId = function(id)

Sets the Id of the cell to the given string.

+ +

getValue

mxCell.prototype.getValue = function()

Returns the user object of the cell.  The user object is stored in value.

+ +

setValue

mxCell.prototype.setValue = function(value)

Sets the user object of the cell.  The user object is stored in value.

+ +

valueChanged

mxCell.prototype.valueChanged = function(newValue)

Changes the user object after an in-place edit and returns the previous value.  This implementation replaces the user object with the given value and returns the old user object.

+ +

getGeometry

mxCell.prototype.getGeometry = function()

Returns the mxGeometry that describes the geometry.

+ +

setGeometry

mxCell.prototype.setGeometry = function(geometry)

Sets the mxGeometry to be used as the geometry.

+ +

getStyle

mxCell.prototype.getStyle = function()

Returns a string that describes the style.

+ +

setStyle

mxCell.prototype.setStyle = function(style)

Sets the string to be used as the style.

+ +

isVertex

mxCell.prototype.isVertex = function()

Returns true if the cell is a vertex.

+ +

setVertex

mxCell.prototype.setVertex = function(vertex)

Specifies if the cell is a vertex.  This should only be assigned at construction of the cell and not be changed during its lifecycle.

Parameters

vertexBoolean that specifies if the cell is a vertex.
+ +

isEdge

mxCell.prototype.isEdge = function()

Returns true if the cell is an edge.

+ +

setEdge

mxCell.prototype.setEdge = function(edge)

Specifies if the cell is an edge.  This should only be assigned at construction of the cell and not be changed during its lifecycle.

Parameters

edgeBoolean that specifies if the cell is an edge.
+ +

isConnectable

mxCell.prototype.isConnectable = function()

Returns true if the cell is connectable.

+ +

setConnectable

mxCell.prototype.setConnectable = function(connectable)

Sets the connectable state.

Parameters

connectableBoolean that specifies the new connectable state.
+ +

isVisible

mxCell.prototype.isVisible = function()

Returns true if the cell is visibile.

+ +

setVisible

mxCell.prototype.setVisible = function(visible)

Specifies if the cell is visible.

Parameters

visibleBoolean that specifies the new visible state.
+ +

isCollapsed

mxCell.prototype.isCollapsed = function()

Returns true if the cell is collapsed.

+ +

setCollapsed

mxCell.prototype.setCollapsed = function(collapsed)

Sets the collapsed state.

Parameters

collapsedBoolean that specifies the new collapsed state.
+ +

getParent

mxCell.prototype.getParent = function()

Returns the cell’s parent.

+ +

setParent

mxCell.prototype.setParent = function(parent)

Sets the parent cell.

Parameters

parentmxCell that represents the new parent.
+ +

getTerminal

mxCell.prototype.getTerminal = function(source)

Returns the source or target terminal.

Parameters

sourceBoolean that specifies if the source terminal should be returned.
+ +

setTerminal

mxCell.prototype.setTerminal = function(terminal,
isSource)

Sets the source or target terminal and returns the new terminal.

Parameters

terminalmxCell that represents the new source or target terminal.
isSourceBoolean that specifies if the source or target terminal should be set.
+ +

getChildCount

mxCell.prototype.getChildCount = function()

Returns the number of child cells.

+ +

getIndex

mxCell.prototype.getIndex = function(child)

Returns the index of the specified child in the child array.

Parameters

childChild whose index should be returned.
+ +

getChildAt

mxCell.prototype.getChildAt = function(index)

Returns the child at the specified index.

Parameters

indexInteger that specifies the child to be returned.
+ +

insert

mxCell.prototype.insert = function(child,
index)

Inserts the specified child into the child array at the specified index and updates the parent reference of the child.  If not childIndex is specified then the child is appended to the child array.  Returns the inserted child.

Parameters

childmxCell to be inserted or appended to the child array.
indexOptional integer that specifies the index at which the child should be inserted into the child array.
+ +

remove

mxCell.prototype.remove = function(index)

Removes the child at the specified index from the child array and returns the child that was removed.  Will remove the parent reference of the child.

Parameters

indexInteger that specifies the index of the child to be removed.
+ +

removeFromParent

mxCell.prototype.removeFromParent = function()

Removes the cell from its parent.

+ +

getEdgeCount

mxCell.prototype.getEdgeCount = function()

Returns the number of edges in the edge array.

+ +

getEdgeIndex

mxCell.prototype.getEdgeIndex = function(edge)

Returns the index of the specified edge in edges.

Parameters

edgemxCell whose index in edges should be returned.
+ +

getEdgeAt

mxCell.prototype.getEdgeAt = function(index)

Returns the edge at the specified index in edges.

Parameters

indexInteger that specifies the index of the edge to be returned.
+ +

insertEdge

mxCell.prototype.insertEdge = function(edge,
isOutgoing)

Inserts the specified edge into the edge array and returns the edge.  Will update the respective terminal reference of the edge.

Parameters

edgemxCell to be inserted into the edge array.
isOutgoingBoolean that specifies if the edge is outgoing.
+ +

removeEdge

mxCell.prototype.removeEdge = function(edge,
isOutgoing)

Removes the specified edge from the edge array and returns the edge.  Will remove the respective terminal reference from the edge.

Parameters

edgemxCell to be removed from the edge array.
isOutgoingBoolean that specifies if the edge is outgoing.
+ +

removeFromTerminal

mxCell.prototype.removeFromTerminal = function(isSource)

Removes the edge from its source or target terminal.

Parameters

isSourceBoolean that specifies if the edge should be removed from its source or target terminal.
+ +

getAttribute

mxCell.prototype.getAttribute = function(name,
defaultValue)

Returns the specified attribute from the user object if it is an XML node.

Parameters

nameName of the attribute whose value should be returned.
defaultValueOptional default value to use if the attribute has no value.
+ +

setAttribute

mxCell.prototype.setAttribute = function(name,
value)

Sets the specified attribute on the user object if it is an XML node.

Parameters

nameName of the attribute whose value should be set.
valueNew value of the attribute.
+ +

clone

mxCell.prototype.clone = function()

Returns a clone of the cell.  Uses cloneValue to clone the user object.  All fields in mxTransient are ignored during the cloning.

+ +

cloneValue

mxCell.prototype.cloneValue = function()

Returns a clone of the cell’s user object.

+ +
+ + + + + + + + + + +
function mxCell(value,
geometry,
style)
Constructs a new cell to be used in a graph model.
mxCell.prototype.id
Holds the Id.
mxCell.prototype.value
Holds the user object.
mxCell.prototype.geometry
Holds the mxGeometry.
Extends mxRectangle to represent the geometry of a cell.
mxCell.prototype.style
Holds the style as a string of the form [(stylename|key=value);].
mxCell.prototype.vertex
Specifies whether the cell is a vertex.
mxCell.prototype.edge
Specifies whether the cell is an edge.
mxCell.prototype.connectable
Specifies whether the cell is connectable.
mxCell.prototype.visible
Specifies whether the cell is visible.
mxCell.prototype.collapsed
Specifies whether the cell is collapsed.
mxCell.prototype.parent
Reference to the parent cell.
mxCell.prototype.source
Reference to the source terminal.
mxCell.prototype.target
Reference to the target terminal.
mxCell.prototype.children
Holds the child cells.
mxCell.prototype.edges
Holds the edges.
mxCell.prototype.mxTransient
List of members that should not be cloned inside clone.
mxCell.prototype.clone = function()
Returns a clone of the cell.
mxCell.prototype.getId = function()
Returns the Id of the cell as a string.
mxCell.prototype.setId = function(id)
Sets the Id of the cell to the given string.
mxCell.prototype.getValue = function()
Returns the user object of the cell.
mxCell.prototype.setValue = function(value)
Sets the user object of the cell.
mxCell.prototype.valueChanged = function(newValue)
Changes the user object after an in-place edit and returns the previous value.
mxCell.prototype.getGeometry = function()
Returns the mxGeometry that describes the geometry.
mxCell.prototype.setGeometry = function(geometry)
Sets the mxGeometry to be used as the geometry.
mxCell.prototype.getStyle = function()
Returns a string that describes the style.
mxCell.prototype.setStyle = function(style)
Sets the string to be used as the style.
mxCell.prototype.isVertex = function()
Returns true if the cell is a vertex.
mxCell.prototype.setVertex = function(vertex)
Specifies if the cell is a vertex.
mxCell.prototype.isEdge = function()
Returns true if the cell is an edge.
mxCell.prototype.setEdge = function(edge)
Specifies if the cell is an edge.
mxCell.prototype.isConnectable = function()
Returns true if the cell is connectable.
mxCell.prototype.setConnectable = function(connectable)
Sets the connectable state.
mxCell.prototype.isVisible = function()
Returns true if the cell is visibile.
mxCell.prototype.setVisible = function(visible)
Specifies if the cell is visible.
mxCell.prototype.isCollapsed = function()
Returns true if the cell is collapsed.
mxCell.prototype.setCollapsed = function(collapsed)
Sets the collapsed state.
mxCell.prototype.getParent = function()
Returns the cell’s parent.
mxCell.prototype.setParent = function(parent)
Sets the parent cell.
mxCell.prototype.getTerminal = function(source)
Returns the source or target terminal.
mxCell.prototype.setTerminal = function(terminal,
isSource)
Sets the source or target terminal and returns the new terminal.
mxCell.prototype.getChildCount = function()
Returns the number of child cells.
mxCell.prototype.getIndex = function(child)
Returns the index of the specified child in the child array.
mxCell.prototype.getChildAt = function(index)
Returns the child at the specified index.
mxCell.prototype.insert = function(child,
index)
Inserts the specified child into the child array at the specified index and updates the parent reference of the child.
mxCell.prototype.remove = function(index)
Removes the child at the specified index from the child array and returns the child that was removed.
mxCell.prototype.removeFromParent = function()
Removes the cell from its parent.
mxCell.prototype.getEdgeCount = function()
Returns the number of edges in the edge array.
mxCell.prototype.getEdgeIndex = function(edge)
Returns the index of the specified edge in edges.
mxCell.prototype.getEdgeAt = function(index)
Returns the edge at the specified index in edges.
mxCell.prototype.insertEdge = function(edge,
isOutgoing)
Inserts the specified edge into the edge array and returns the edge.
mxCell.prototype.removeEdge = function(edge,
isOutgoing)
Removes the specified edge from the edge array and returns the edge.
mxCell.prototype.removeFromTerminal = function(isSource)
Removes the edge from its source or target terminal.
mxCell.prototype.getAttribute = function(name,
defaultValue)
Returns the specified attribute from the user object if it is an XML node.
mxCell.prototype.setAttribute = function(name,
value)
Sets the specified attribute on the user object if it is an XML node.
mxCell.prototype.cloneValue = function()
Returns a clone of the cell’s user object.
mxGraph.prototype.convertValueToString = function(cell)
Returns the textual representation for the given cell.
mxGraph.prototype.cellLabelChanged = function(cell,
value,
autoSize)
Sets the new label for a cell.
Called from within the constructor.
clone: function(obj,
transients,
shallow)
Recursively clones the specified object ignoring all fieldnames in the given array of transient fields.
Codec for mxCells.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/model/mxCellPath-js.html b/docs/js-api/files/model/mxCellPath-js.html new file mode 100644 index 000000000..bb3243adc --- /dev/null +++ b/docs/js-api/files/model/mxCellPath-js.html @@ -0,0 +1,53 @@ + + +mxCellPath + + + + + + + + + +

mxCellPath

Implements a mechanism for temporary cell Ids.

Summary
mxCellPathImplements a mechanism for temporary cell Ids.
Variables
PATH_SEPARATORDefines the separator between the path components.
Functions
createCreates the cell path for the given cell.
getParentPathReturns the path for the parent of the cell represented by the given path.
resolveReturns the cell for the specified cell path using the given root as the root of the path.
compareCompares the given cell paths and returns -1 if p1 is smaller, 0 if p1 is equal and 1 if p1 is greater than p2.
+ +

Variables

+ +

PATH_SEPARATOR

Defines the separator between the path components.  Default is “.”.

+ +

Functions

+ +

create

create: function(cell)

Creates the cell path for the given cell.  The cell path is a concatenation of the indices of all ancestors on the (finite) path to the root, eg.  “0.0.0.1”.

Parameters

cellCell whose path should be returned.
+ +

getParentPath

getParentPath: function(path)

Returns the path for the parent of the cell represented by the given path.  Returns null if the given path has no parent.

Parameters

pathPath whose parent path should be returned.
+ +

resolve

resolve: function(root,
path)

Returns the cell for the specified cell path using the given root as the root of the path.

Parameters

rootRoot cell of the path to be resolved.
pathString that defines the path.
+ +

compare

compare: function(p1,
p2)

Compares the given cell paths and returns -1 if p1 is smaller, 0 if p1 is equal and 1 if p1 is greater than p2.

+ +
+ + + + + + + + + + +
create: function(cell)
Creates the cell path for the given cell.
getParentPath: function(path)
Returns the path for the parent of the cell represented by the given path.
resolve: function(root,
path)
Returns the cell for the specified cell path using the given root as the root of the path.
compare: function(p1,
p2)
Compares the given cell paths and returns -1 if p1 is smaller, 0 if p1 is equal and 1 if p1 is greater than p2.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/model/mxGeometry-js.html b/docs/js-api/files/model/mxGeometry-js.html new file mode 100644 index 000000000..ae62c695b --- /dev/null +++ b/docs/js-api/files/model/mxGeometry-js.html @@ -0,0 +1,71 @@ + + +mxGeometry + + + + + + + + + +

mxGeometry

Extends mxRectangle to represent the geometry of a cell.

For vertices, the geometry consists of the x- and y-location, and the width and height.  For edges, the geometry consists of the optional terminal- and control points.  The terminal points are only required if an edge is unconnected, and are stored in the sourcePoint> and targetPoint variables, respectively.

Example

If an edge is unconnected, that is, it has no source or target terminal, then a geometry with terminal points for a new edge can be defined as follows.

geometry.setTerminalPoint(new mxPoint(x1, y1), true);
+geometry.points = [new mxPoint(x2, y2)];
+geometry.setTerminalPoint(new mxPoint(x3, y3), false);

Control points are used regardless of the connected state of an edge and may be ignored or interpreted differently depending on the edge’s mxEdgeStyle.

To disable automatic reset of control points after a cell has been moved or resized, the the <mxGraph.resizeEdgesOnMove> and mxGraph.resetEdgesOnResize may be used.

Edge Labels

Using the x- and y-coordinates of a cell’s geometry, it is possible to position the label on edges on a specific location on the actual edge shape as it appears on the screen.  The x-coordinate of an edge’s geometry is used to describe the distance from the center of the edge from -1 to 1 with 0 being the center of the edge and the default value.  The y-coordinate of an edge’s geometry is used to describe the absolute, orthogonal distance in pixels from that point.  In addition, the mxGeometry.offset is used as an absolute offset vector from the resulting point.

This coordinate system is applied if relative is true, otherwise the offset defines the absolute vector from the edge’s center point to the label.

Ports

The term “port” refers to a relatively positioned, connectable child cell, which is used to specify the connection between the parent and another cell in the graph.  Ports are typically modeled as vertices with relative geometries.

Offsets

The offset field is interpreted in 3 different ways, depending on the cell and the geometry.  For edges, the offset defines the absolute offset for the edge label.  For relative geometries, the offset defines the absolute offset for the origin (top, left corner) of the vertex, otherwise the offset defines the absolute offset for the label inside the vertex or group.

Summary
mxGeometryExtends mxRectangle to represent the geometry of a cell.
Functions
mxGeometryConstructs a new object to describe the size and location of a vertex or the control points of an edge.
Variables
TRANSLATE_CONTROL_POINTSGlobal switch to translate the points in translate.
alternateBoundsStores alternate values for x, y, width and height in a rectangle.
sourcePointDefines the source mxPoint of the edge.
targetPointDefines the target mxPoint of the edge.
pointsArray of mxPoints which specifies the control points along the edge.
offsetFor edges, this holds the offset (in pixels) from the position defined by <x> and <y> on the edge.
relativeSpecifies if the coordinates in the geometry are to be interpreted as relative coordinates.
Functions
swapSwaps the x, y, width and height with the values stored in alternateBounds and puts the previous values into alternateBounds as a rectangle.
getTerminalPointReturns the mxPoint representing the source or target point of this edge.
setTerminalPointSets the sourcePoint or targetPoint to the given mxPoint and returns the new point.
translateTranslates the geometry by the specified amount.
+ +

Functions

+ +

mxGeometry

function mxGeometry(x,
y,
width,
height)

Constructs a new object to describe the size and location of a vertex or the control points of an edge.

+ +

Variables

+ +

TRANSLATE_CONTROL_POINTS

mxGeometry.prototype.TRANSLATE_CONTROL_POINTS

Global switch to translate the points in translate.  Default is true.

+ +

alternateBounds

mxGeometry.prototype.alternateBounds

Stores alternate values for x, y, width and height in a rectangle.  See swap to exchange the values.  Default is null.

+ +

sourcePoint

mxGeometry.prototype.sourcePoint

Defines the source mxPoint of the edge.  This is used if the corresponding edge does not have a source vertex.  Otherwise it is ignored.  Default is null.

+ +

targetPoint

mxGeometry.prototype.targetPoint

Defines the target mxPoint of the edge.  This is used if the corresponding edge does not have a target vertex.  Otherwise it is ignored.  Default is null.

+ +

points

mxGeometry.prototype.points

Array of mxPoints which specifies the control points along the edge.  These points are the intermediate points on the edge, for the endpoints use targetPoint and sourcePoint or set the terminals of the edge to a non-null value.  Default is null.

+ +

offset

mxGeometry.prototype.offset

For edges, this holds the offset (in pixels) from the position defined by <x> and <y> on the edge.  For relative geometries (for vertices), this defines the absolute offset from the point defined by the relative coordinates.  For absolute geometries (for vertices), this defines the offset for the label.  Default is null.

+ +

relative

mxGeometry.prototype.relative

Specifies if the coordinates in the geometry are to be interpreted as relative coordinates.  For edges, this is used to define the location of the edge label relative to the edge as rendered on the display.  For vertices, this specifies the relative location inside the bounds of the parent cell.

If this is false, then the coordinates are relative to the origin of the parent cell or, for edges, the edge label position is relative to the center of the edge as rendered on screen.

Default is false.

+ +

Functions

+ +

swap

mxGeometry.prototype.swap = function()

Swaps the x, y, width and height with the values stored in alternateBounds and puts the previous values into alternateBounds as a rectangle.  This operation is carried-out in-place, that is, using the existing geometry instance.  If this operation is called during a graph model transactional change, then the geometry should be cloned before calling this method and setting the geometry of the cell using mxGraphModel.setGeometry.

+ +

getTerminalPoint

mxGeometry.prototype.getTerminalPoint = function(isSource)

Returns the mxPoint representing the source or target point of this edge.  This is only used if the edge has no source or target vertex.

Parameters

isSourceBoolean that specifies if the source or target point should be returned.
+ +

setTerminalPoint

mxGeometry.prototype.setTerminalPoint = function(point,
isSource)

Sets the sourcePoint or targetPoint to the given mxPoint and returns the new point.

Parameters

pointPoint to be used as the new source or target point.
isSourceBoolean that specifies if the source or target point should be set.
+ +

translate

mxGeometry.prototype.translate = function(dx,
dy)

Translates the geometry by the specified amount.  That is, <x> and <y> of the geometry, the sourcePoint, targetPoint and all elements of points are translated by the given amount.  <x> and <y> are only translated if relative is false.  If TRANSLATE_CONTROL_POINTS is false, then points are not modified by this function.

Parameters

dxInteger that specifies the x-coordinate of the translation.
dyInteger that specifies the y-coordinate of the translation.
+ +
+ + + + + + + + + + +
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
function mxGeometry(x,
y,
width,
height)
Constructs a new object to describe the size and location of a vertex or the control points of an edge.
mxGeometry.prototype.TRANSLATE_CONTROL_POINTS
Global switch to translate the points in translate.
mxGeometry.prototype.alternateBounds
Stores alternate values for x, y, width and height in a rectangle.
mxGeometry.prototype.sourcePoint
Defines the source mxPoint of the edge.
Implements a 2-dimensional vector with double precision coordinates.
mxGeometry.prototype.targetPoint
Defines the target mxPoint of the edge.
mxGeometry.prototype.points
Array of mxPoints which specifies the control points along the edge.
mxGeometry.prototype.offset
For edges, this holds the offset (in pixels) from the position defined by x and y on the edge.
mxGeometry.prototype.relative
Specifies if the coordinates in the geometry are to be interpreted as relative coordinates.
mxGeometry.prototype.swap = function()
Swaps the x, y, width and height with the values stored in alternateBounds and puts the previous values into alternateBounds as a rectangle.
mxGeometry.prototype.getTerminalPoint = function(isSource)
Returns the mxPoint representing the source or target point of this edge.
mxGeometry.prototype.setTerminalPoint = function(point,
isSource)
Sets the sourcePoint or targetPoint to the given mxPoint and returns the new point.
mxGeometry.prototype.translate = function(dx,
dy)
Translates the geometry by the specified amount.
Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.
mxGraph.prototype.resetEdgesOnResize
Specifies if edge control points should be reset after the resize of a connected cell.
mxGraphModel.prototype.setGeometry = function(cell,
geometry)
Sets the mxGeometry of the given mxCell.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/model/mxGraphModel-js.html b/docs/js-api/files/model/mxGraphModel-js.html new file mode 100644 index 000000000..2fd583ce1 --- /dev/null +++ b/docs/js-api/files/model/mxGraphModel-js.html @@ -0,0 +1,398 @@ + + +mxGraphModel + + + + + + + + + +

mxGraphModel

Extends mxEventSource to implement a graph model.  The graph model acts as a wrapper around the cells which are in charge of storing the actual graph datastructure.  The model acts as a transactional wrapper with event notification for all changes, whereas the cells contain the atomic operations for updating the actual datastructure.

Layers

The cell hierarchy in the model must have a top-level root cell which contains the layers (typically one default layer), which in turn contain the top-level cells of the layers.  This means each cell is contained in a layer.  If no layers are required, then all new cells should be added to the default layer.

Layers are useful for hiding and showing groups of cells, or for placing groups of cells on top of other cells in the display.  To identify a layer, the isLayer function is used.  It returns true if the parent of the given cell is the root of the model.

Encoding the model

To encode a graph model, use the following code

var enc = new mxCodec();
+var node = enc.encode(graph.getModel());

This will create an XML node that contains all the model information.

Encoding and decoding changes

For the encoding of changes, a graph model listener is required that encodes each change from the given array of changes.

model.addListener(mxEvent.CHANGE, function(sender, evt)
+{
+  var changes = evt.getProperty('edit').changes;
+  var nodes = [];
+  var codec = new mxCodec();
+
+  for (var i = 0; i < changes.length; i++)
+  {
+    nodes.push(codec.encode(changes[i]));
+  }
+  // do something with the nodes
+});

For the decoding and execution of changes, the codec needs a lookup function that allows it to resolve cell IDs as follows:

var codec = new mxCodec();
+codec.lookup = function(id)
+{
+  return model.getCell(id);
+}

For each encoded change (represented by a node), the following code can be used to carry out the decoding and create a change object.

var changes = [];
+var change = codec.decode(node);
+change.model = model;
+change.execute();
+changes.push(change);

The changes can then be dispatched using the model as follows.

var edit = new mxUndoableEdit(model, false);
+edit.changes = changes;
+
+edit.notify = function()
+{
+  edit.source.fireEvent(new mxEventObject(mxEvent.CHANGE,
+     'edit', edit, 'changes', edit.changes));
+  edit.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,
+     'edit', edit, 'changes', edit.changes));
+}
+
+model.fireEvent(new mxEventObject(mxEvent.UNDO, 'edit', edit));
+model.fireEvent(new mxEventObject(mxEvent.CHANGE,
+     'edit', edit, 'changes', changes));
Summary
mxGraphModelExtends mxEventSource to implement a graph model.
Events
mxEvent.CHANGEFires when an undoable edit is dispatched.
mxEvent.NOTIFYSame as mxEvent.CHANGE, this event can be used for classes that need to implement a sync mechanism between this model and, say, a remote model.
mxEvent.EXECUTEFires between begin- and endUpdate and after an atomic change was executed in the model.
mxEvent.BEGIN_UPDATEFires after the updateLevel was incremented in beginUpdate.
mxEvent.END_UPDATEFires after the updateLevel was decreased in endUpdate but before any notification or change dispatching.
mxEvent.BEFORE_UNDOFires before the change is dispatched after the update level has reached 0 in endUpdate.
mxEvent.UNDOFires after the change was dispatched in endUpdate.
Functions
mxGraphModelConstructs a new graph model.
Variables
rootHolds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells.
cellsMaps from Ids to cells.
maintainEdgeParentSpecifies if edges should automatically be moved into the nearest common ancestor of their terminals.
createIdsSpecifies if the model should automatically create Ids for new cells.
prefixDefines the prefix of new Ids.
postfixDefines the postfix of new Ids.
nextIdSpecifies the next Id to be created.
currentEditHolds the changes for the current transaction.
updateLevelCounter for the depth of nested transactions.
endingUpdateTrue if the program flow is currently inside endUpdate.
Functions
clearSets a new root using createRoot.
isCreateIdsReturns createIds.
setCreateIdsSets createIds.
createRootCreates a new root cell with a default layer (child 0).
getCellReturns the mxCell for the specified Id or null if no cell can be found for the given Id.
filterCellsReturns the cells from the given array where the fiven filter function returns true.
getDescendantsReturns all descendants of the given cell and the cell itself in an array.
filterDescendantsVisits all cells recursively and applies the specified filter function to each cell.
getRootReturns the root of the model or the topmost parent of the given cell.
setRootSets the root of the model using mxRootChange and adds the change to the current transaction.
rootChangedInner callback to change the root of the model and update the internal datastructures, such as cells and nextId.
isRootReturns true if the given cell is the root of the model and a non-null value.
isLayerReturns true if isRoot returns true for the parent of the given cell.
isAncestorReturns true if the given parent is an ancestor of the given child.
containsReturns true if the model contains the given mxCell.
getParentReturns the parent of the given cell.
addAdds the specified child to the parent at the given index using mxChildChange and adds the change to the current transaction.
cellAddedInner callback to update cells when a cell has been added.
createIdHook method to create an Id for the specified cell.
updateEdgeParentsUpdates the parent for all edges that are connected to cell or one of its descendants using updateEdgeParent.
updateEdgeParentInner callback to update the parent of the specified mxCell to the nearest-common-ancestor of its two terminals.
getOriginReturns the absolute, accumulated origin for the children inside the given parent as an mxPoint.
getNearestCommonAncestorReturns the nearest common ancestor for the specified cells.
removeRemoves the specified cell from the model using mxChildChange and adds the change to the current transaction.
cellRemovedInner callback to update cells when a cell has been removed.
parentForCellChangedInner callback to update the parent of a cell using mxCell.insert on the parent and return the previous parent.
getChildCountReturns the number of children in the given cell.
getChildAtReturns the child of the given mxCell at the given index.
getChildrenReturns all children of the given mxCell as an array of mxCells.
getChildVerticesReturns the child vertices of the given parent.
getChildEdgesReturns the child edges of the given parent.
getChildCellsReturns the children of the given cell that are vertices and/or edges depending on the arguments.
getTerminalReturns the source or target mxCell of the given edge depending on the value of the boolean parameter.
setTerminalSets the source or target terminal of the given mxCell using mxTerminalChange and adds the change to the current transaction.
setTerminalsSets the source and target mxCell of the given mxCell in a single transaction using setTerminal for each end of the edge.
terminalForCellChangedInner helper function to update the terminal of the edge using mxCell.insertEdge and return the previous terminal.
getEdgeCountReturns the number of distinct edges connected to the given cell.
getEdgeAtReturns the edge of cell at the given index.
getDirectedEdgeCountReturns the number of incoming or outgoing edges, ignoring the given edge.
getConnectionsReturns all edges of the given cell without loops.
getIncomingEdgesReturns the incoming edges of the given cell without loops.
getOutgoingEdgesReturns the outgoing edges of the given cell without loops.
getEdgesReturns all distinct edges connected to this cell as a new array of mxCells.
getEdgesBetweenReturns all edges between the given source and target pair.
getOppositesReturns all opposite vertices wrt terminal for the given edges, only returning sources and/or targets as specified.
getTopmostCellsReturns the topmost cells of the hierarchy in an array that contains no descendants for each mxCell that it contains.
isVertexReturns true if the given cell is a vertex.
isEdgeReturns true if the given cell is an edge.
isConnectableReturns true if the given mxCell is connectable.
getValueReturns the user object of the given mxCell using mxCell.getValue.
setValueSets the user object of then given mxCell using mxValueChange and adds the change to the current transaction.
valueForCellChangedInner callback to update the user object of the given mxCell using mxCell.valueChanged and return the previous value, that is, the return value of mxCell.valueChanged.
getGeometryReturns the mxGeometry of the given mxCell.
setGeometrySets the mxGeometry of the given mxCell.
geometryForCellChangedInner callback to update the mxGeometry of the given mxCell using mxCell.setGeometry and return the previous mxGeometry.
getStyleReturns the style of the given mxCell.
setStyleSets the style of the given mxCell using mxStyleChange and adds the change to the current transaction.
styleForCellChangedInner callback to update the style of the given mxCell using mxCell.setStyle and return the previous style.
isCollapsedReturns true if the given mxCell is collapsed.
setCollapsedSets the collapsed state of the given mxCell using mxCollapseChange and adds the change to the current transaction.
collapsedStateForCellChangedInner callback to update the collapsed state of the given mxCell using mxCell.setCollapsed and return the previous collapsed state.
isVisibleReturns true if the given mxCell is visible.
setVisibleSets the visible state of the given mxCell using mxVisibleChange and adds the change to the current transaction.
visibleStateForCellChangedInner callback to update the visible state of the given mxCell using mxCell.setCollapsed and return the previous visible state.
executeExecutes the given edit and fires events if required.
beginUpdateIncrements the updateLevel by one.
endUpdateDecrements the updateLevel by one and fires an <undo> event if the updateLevel reaches 0.
createUndoableEditCreates a new mxUndoableEdit that implements the notify function to fire a <change> and <notify> event through the mxUndoableEdit’s source.
mergeChildrenMerges the children of the given cell into the given target cell inside this model.
mergeChildrenClones the children of the source cell into the given target cell in this model and adds an entry to the mapping that maps from the source cell to the target cell with the same id or the clone of the source cell that was inserted into this model.
getParentsReturns an array that represents the set (no duplicates) of all parents for the given array of cells.
cloneCellReturns a deep clone of the given mxCell (including the children) which is created using cloneCells.
cloneCellsReturns an array of clones for the given array of mxCells.
cloneCellImplInner helper method for cloning cells recursively.
cellClonedHook for cloning the cell.
restoreCloneInner helper method for restoring the connections in a network of cloned cells.
mxRootChangeAction to change the root in a model.
Functions
mxRootChangeConstructs a change of the root in the specified model.
executeCarries out a change of the root using mxGraphModel.rootChanged.
mxChildChangeAction to add or remove a child in a model.
Functions
mxChildChangeConstructs a change of a child in the specified model.
executeChanges the parent of <child> using mxGraphModel.parentForCellChanged and removes or restores the cell’s connections.
disconnectDisconnects the given cell recursively from its terminals and stores the previous terminal in the cell’s terminals.
mxTerminalChangeAction to change a terminal in a model.
Functions
mxTerminalChangeConstructs a change of a terminal in the specified model.
executeChanges the terminal of <cell> to <previous> using mxGraphModel.terminalForCellChanged.
mxValueChangeAction to change a user object in a model.
Functions
mxValueChangeConstructs a change of a user object in the specified model.
executeChanges the value of <cell> to <previous> using mxGraphModel.valueForCellChanged.
mxStyleChangeAction to change a cell’s style in a model.
Functions
mxStyleChangeConstructs a change of a style in the specified model.
executeChanges the style of <cell> to <previous> using mxGraphModel.styleForCellChanged.
mxGeometryChangeAction to change a cell’s geometry in a model.
Functions
mxGeometryChangeConstructs a change of a geometry in the specified model.
executeChanges the geometry of <cell> ro <previous> using mxGraphModel.geometryForCellChanged.
mxCollapseChangeAction to change a cell’s collapsed state in a model.
Functions
mxCollapseChangeConstructs a change of a collapsed state in the specified model.
executeChanges the collapsed state of <cell> to <previous> using mxGraphModel.collapsedStateForCellChanged.
mxVisibleChangeAction to change a cell’s visible state in a model.
Functions
mxVisibleChangeConstructs a change of a visible state in the specified model.
executeChanges the visible state of <cell> to <previous> using mxGraphModel.visibleStateForCellChanged.
mxCellAttributeChangeAction to change the attribute of a cell’s user object.
Functions
mxCellAttributeChangeConstructs a change of a attribute of the DOM node stored as the value of the given mxCell.
executeChanges the attribute of the cell’s user object by using mxCell.setAttribute.
+ +

Events

+ +

mxEvent.CHANGE

Fires when an undoable edit is dispatched.  The <code>edit</code> property contains the mxUndoableEdit.  The <code>changes</code> property contains the array of atomic changes inside the undoable edit.  The changes property is <strong>deprecated</strong>, please use edit.changes instead.

Example

For finding newly inserted cells, the following code can be used

graph.model.addListener(mxEvent.CHANGE, function(sender, evt)
+{
+  var changes = evt.getProperty('edit').changes;
+
+  for (var i = 0; i < changes.length; i++)
+  {
+    var change = changes[i];
+
+    if (change instanceof mxChildChange &&
+      change.change.previous == null)
+    {
+      graph.startEditingAtCell(change.child);
+      break;
+    }
+  }
+});
+ +

mxEvent.NOTIFY

Same as mxEvent.CHANGE, this event can be used for classes that need to implement a sync mechanism between this model and, say, a remote model.  In such a setup, only local changes should trigger a notify event and all changes should trigger a change event.

+ +

mxEvent.EXECUTE

Fires between begin- and endUpdate and after an atomic change was executed in the model.  The <code>change</code> property contains the atomic change that was executed.

+ +

mxEvent.BEGIN_UPDATE

Fires after the updateLevel was incremented in beginUpdate.  This event contains no properties.

+ +

mxEvent.END_UPDATE

Fires after the updateLevel was decreased in endUpdate but before any notification or change dispatching.  The <code>edit</code> property contains the currentEdit.

+ +

mxEvent.BEFORE_UNDO

Fires before the change is dispatched after the update level has reached 0 in endUpdate.  The <code>edit</code> property contains the <curreneEdit>.

+ +

mxEvent.UNDO

Fires after the change was dispatched in endUpdate.  The <code>edit</code> property contains the currentEdit.

+ +

Functions

+ +

mxGraphModel

function mxGraphModel(root)

Constructs a new graph model.  If no root is specified then a new root mxCell with a default layer is created.

Parameters

rootmxCell that represents the root cell.
+ +

Variables

+ +

root

mxGraphModel.prototype.root

Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells.  That is, the actual elements of the diagram are supposed to live in the third generation of cells and below.

+ +

cells

mxGraphModel.prototype.cells

Maps from Ids to cells.

+ +

maintainEdgeParent

mxGraphModel.prototype.maintainEdgeParent

Specifies if edges should automatically be moved into the nearest common ancestor of their terminals.  Default is true.

+ +

createIds

mxGraphModel.prototype.createIds

Specifies if the model should automatically create Ids for new cells.  Default is true.

+ +

prefix

mxGraphModel.prototype.prefix

Defines the prefix of new Ids.  Default is an empty string.

+ +

postfix

mxGraphModel.prototype.postfix

Defines the postfix of new Ids.  Default is an empty string.

+ +

nextId

mxGraphModel.prototype.nextId

Specifies the next Id to be created.  Initial value is 0.

+ +

currentEdit

mxGraphModel.prototype.currentEdit

Holds the changes for the current transaction.  If the transaction is closed then a new object is created for this variable using createUndoableEdit.

+ +

updateLevel

mxGraphModel.prototype.updateLevel

Counter for the depth of nested transactions.  Each call to beginUpdate will increment this number and each call to endUpdate will decrement it.  When the counter reaches 0, the transaction is closed and the respective events are fired.  Initial value is 0.

+ +

endingUpdate

mxGraphModel.prototype.endingUpdate

True if the program flow is currently inside endUpdate.

+ +

Functions

+ +

clear

mxGraphModel.prototype.clear = function()

Sets a new root using createRoot.

+ +

isCreateIds

mxGraphModel.prototype.isCreateIds = function()

Returns createIds.

+ +

setCreateIds

mxGraphModel.prototype.setCreateIds = function(value)

Sets createIds.

+ +

createRoot

mxGraphModel.prototype.createRoot = function()

Creates a new root cell with a default layer (child 0).

+ +

getCell

mxGraphModel.prototype.getCell = function(id)

Returns the mxCell for the specified Id or null if no cell can be found for the given Id.

Parameters

idA string representing the Id of the cell.
+ +

filterCells

mxGraphModel.prototype.filterCells = function(cells,
filter)

Returns the cells from the given array where the fiven filter function returns true.

+ +

getDescendants

mxGraphModel.prototype.getDescendants = function(parent)

Returns all descendants of the given cell and the cell itself in an array.

Parameters

parentmxCell whose descendants should be returned.
+ +

filterDescendants

mxGraphModel.prototype.filterDescendants = function(filter,
parent)

Visits all cells recursively and applies the specified filter function to each cell.  If the function returns true then the cell is added to the resulting array.  The parent and result paramters are optional.  If parent is not specified then the recursion starts at root.

Example

The following example extracts all vertices from a given model:

var filter = function(cell)
+{
+ return model.isVertex(cell);
+}
+var vertices = model.filterDescendants(filter);
+(code)
+
+Parameters:
+
+filter - JavaScript function that takes an <mxCell> as an argument
+and returns a boolean.
+parent - Optional <mxCell> that is used as the root of the recursion.
+ +

getRoot

mxGraphModel.prototype.getRoot = function(cell)

Returns the root of the model or the topmost parent of the given cell.

Parameters

cellOptional mxCell that specifies the child.
+ +

setRoot

mxGraphModel.prototype.setRoot = function(root)

Sets the root of the model using mxRootChange and adds the change to the current transaction.  This resets all datastructures in the model and is the preferred way of clearing an existing model.  Returns the new root.

Example

var root = new mxCell();
+root.insert(new mxCell());
+model.setRoot(root);

Parameters

rootmxCell that specifies the new root.
+ +

rootChanged

mxGraphModel.prototype.rootChanged = function(root)

Inner callback to change the root of the model and update the internal datastructures, such as cells and nextId.  Returns the previous root.

Parameters

rootmxCell that specifies the new root.
+ +

isRoot

mxGraphModel.prototype.isRoot = function(cell)

Returns true if the given cell is the root of the model and a non-null value.

Parameters

cellmxCell that represents the possible root.
+ +

isLayer

mxGraphModel.prototype.isLayer = function(cell)

Returns true if isRoot returns true for the parent of the given cell.

Parameters

cellmxCell that represents the possible layer.
+ +

isAncestor

mxGraphModel.prototype.isAncestor = function(parent,
child)

Returns true if the given parent is an ancestor of the given child.

Parameters

parentmxCell that specifies the parent.
childmxCell that specifies the child.
+ +

contains

mxGraphModel.prototype.contains = function(cell)

Returns true if the model contains the given mxCell.

Parameters

cellmxCell that specifies the cell.
+ +

getParent

mxGraphModel.prototype.getParent = function(cell)

Returns the parent of the given cell.

Parameters

cellmxCell whose parent should be returned.
+ +

add

mxGraphModel.prototype.add = function(parent,
child,
index)

Adds the specified child to the parent at the given index using mxChildChange and adds the change to the current transaction.  If no index is specified then the child is appended to the parent’s array of children.  Returns the inserted child.

Parameters

parentmxCell that specifies the parent to contain the child.
childmxCell that specifies the child to be inserted.
indexOptional integer that specifies the index of the child.
+ +

cellAdded

mxGraphModel.prototype.cellAdded = function(cell)

Inner callback to update cells when a cell has been added.  This implementation resolves collisions by creating new Ids.  To change the ID of a cell after it was inserted into the model, use the following code:

(code delete model.cells[cell.getId()]; cell.setId(newId); model.cells[cell.getId()] = cell; (end)

If the change of the ID should be part of the command history, then the cell should be removed from the model and a clone with the new ID should be reinserted into the model instead.

Parameters

cellmxCell that specifies the cell that has been added.
+ +

createId

mxGraphModel.prototype.createId = function(cell)

Hook method to create an Id for the specified cell.  This implementation concatenates prefix, id and postfix to create the Id and increments nextId.  The cell is ignored by this implementation, but can be used in overridden methods to prefix the Ids with eg. the cell type.

Parameters

cellmxCell to create the Id for.
+ +

updateEdgeParents

mxGraphModel.prototype.updateEdgeParents = function(cell,
root)

Updates the parent for all edges that are connected to cell or one of its descendants using updateEdgeParent.

+ +

updateEdgeParent

mxGraphModel.prototype.updateEdgeParent = function(edge,
root)

Inner callback to update the parent of the specified mxCell to the nearest-common-ancestor of its two terminals.

Parameters

edgemxCell that specifies the edge.
rootmxCell that represents the current root of the model.
+ +

getOrigin

mxGraphModel.prototype.getOrigin = function(cell)

Returns the absolute, accumulated origin for the children inside the given parent as an mxPoint.

+ +

getNearestCommonAncestor

mxGraphModel.prototype.getNearestCommonAncestor = function(cell1,
cell2)

Returns the nearest common ancestor for the specified cells.

Parameters

cell1mxCell that specifies the first cell in the tree.
cell2mxCell that specifies the second cell in the tree.
+ +

remove

mxGraphModel.prototype.remove = function(cell)

Removes the specified cell from the model using mxChildChange and adds the change to the current transaction.  This operation will remove the cell and all of its children from the model.  Returns the removed cell.

Parameters

cellmxCell that should be removed.
+ +

cellRemoved

mxGraphModel.prototype.cellRemoved = function(cell)

Inner callback to update cells when a cell has been removed.

Parameters

cellmxCell that specifies the cell that has been removed.
+ +

parentForCellChanged

mxGraphModel.prototype.parentForCellChanged = function(cell,
parent,
index)

Inner callback to update the parent of a cell using mxCell.insert on the parent and return the previous parent.

Parameters

cellmxCell to update the parent for.
parentmxCell that specifies the new parent of the cell.
indexOptional integer that defines the index of the child in the parent’s child array.
+ +

getChildCount

mxGraphModel.prototype.getChildCount = function(cell)

Returns the number of children in the given cell.

Parameters

cellmxCell whose number of children should be returned.
+ +

getChildAt

mxGraphModel.prototype.getChildAt = function(cell,
index)

Returns the child of the given mxCell at the given index.

Parameters

cellmxCell that represents the parent.
indexInteger that specifies the index of the child to be returned.
+ +

getChildren

mxGraphModel.prototype.getChildren = function(cell)

Returns all children of the given mxCell as an array of mxCells.  The return value should be only be read.

Parameters

cellmxCell the represents the parent.
+ +

getChildVertices

mxGraphModel.prototype.getChildVertices = function(parent)

Returns the child vertices of the given parent.

Parameters

cellmxCell whose child vertices should be returned.
+ +

getChildEdges

mxGraphModel.prototype.getChildEdges = function(parent)

Returns the child edges of the given parent.

Parameters

cellmxCell whose child edges should be returned.
+ +

getChildCells

mxGraphModel.prototype.getChildCells = function(parent,
vertices,
edges)

Returns the children of the given cell that are vertices and/or edges depending on the arguments.

Parameters

cellmxCell the represents the parent.
verticesBoolean indicating if child vertices should be returned.  Default is false.
edgesBoolean indicating if child edges should be returned.  Default is false.
+ +

getTerminal

mxGraphModel.prototype.getTerminal = function(edge,
isSource)

Returns the source or target mxCell of the given edge depending on the value of the boolean parameter.

Parameters

edgemxCell that specifies the edge.
isSourceBoolean indicating which end of the edge should be returned.
+ +

setTerminal

mxGraphModel.prototype.setTerminal = function(edge,
terminal,
isSource)

Sets the source or target terminal of the given mxCell using mxTerminalChange and adds the change to the current transaction.  This implementation updates the parent of the edge using updateEdgeParent if required.

Parameters

edgemxCell that specifies the edge.
terminalmxCell that specifies the new terminal.
isSourceBoolean indicating if the terminal is the new source or target terminal of the edge.
+ +

setTerminals

mxGraphModel.prototype.setTerminals = function(edge,
source,
target)

Sets the source and target mxCell of the given mxCell in a single transaction using setTerminal for each end of the edge.

Parameters

edgemxCell that specifies the edge.
sourcemxCell that specifies the new source terminal.
targetmxCell that specifies the new target terminal.
+ +

terminalForCellChanged

mxGraphModel.prototype.terminalForCellChanged = function(edge,
terminal,
isSource)

Inner helper function to update the terminal of the edge using mxCell.insertEdge and return the previous terminal.

Parameters

edgemxCell that specifies the edge to be updated.
terminalmxCell that specifies the new terminal.
isSourceBoolean indicating if the terminal is the new source or target terminal of the edge.
+ +

getEdgeCount

mxGraphModel.prototype.getEdgeCount = function(cell)

Returns the number of distinct edges connected to the given cell.

Parameters

cellmxCell that represents the vertex.
+ +

getEdgeAt

mxGraphModel.prototype.getEdgeAt = function(cell,
index)

Returns the edge of cell at the given index.

Parameters

cellmxCell that specifies the vertex.
indexInteger that specifies the index of the edge to return.
+ +

getDirectedEdgeCount

mxGraphModel.prototype.getDirectedEdgeCount = function(cell,
outgoing,
ignoredEdge)

Returns the number of incoming or outgoing edges, ignoring the given edge.

Parameters

cellmxCell whose edge count should be returned.
outgoingBoolean that specifies if the number of outgoing or incoming edges should be returned.
ignoredEdgemxCell that represents an edge to be ignored.
+ +

getConnections

mxGraphModel.prototype.getConnections = function(cell)

Returns all edges of the given cell without loops.

Parameters

cellmxCell whose edges should be returned.
+ +

getIncomingEdges

mxGraphModel.prototype.getIncomingEdges = function(cell)

Returns the incoming edges of the given cell without loops.

Parameters

cellmxCell whose incoming edges should be returned.
+ +

getOutgoingEdges

mxGraphModel.prototype.getOutgoingEdges = function(cell)

Returns the outgoing edges of the given cell without loops.

Parameters

cellmxCell whose outgoing edges should be returned.
+ +

getEdges

mxGraphModel.prototype.getEdges = function(cell,
incoming,
outgoing,
includeLoops)

Returns all distinct edges connected to this cell as a new array of mxCells.  If at least one of incoming or outgoing is true, then loops are ignored, otherwise if both are false, then all edges connected to the given cell are returned including loops.

Parameters

cellmxCell that specifies the cell.
incomingOptional boolean that specifies if incoming edges should be returned.  Default is true.
outgoingOptional boolean that specifies if outgoing edges should be returned.  Default is true.
includeLoopsOptional boolean that specifies if loops should be returned.  Default is true.
+ +

getEdgesBetween

mxGraphModel.prototype.getEdgesBetween = function(source,
target,
directed)

Returns all edges between the given source and target pair.  If directed is true, then only edges from the source to the target are returned, otherwise, all edges between the two cells are returned.

Parameters

sourcemxCell that defines the source terminal of the edge to be returned.
targetmxCell that defines the target terminal of the edge to be returned.
directedOptional boolean that specifies if the direction of the edge should be taken into account.  Default is false.
+ +

getOpposites

mxGraphModel.prototype.getOpposites = function(edges,
terminal,
sources,
targets)

Returns all opposite vertices wrt terminal for the given edges, only returning sources and/or targets as specified.  The result is returned as an array of mxCells.

Parameters

edgesArray of mxCells that contain the edges to be examined.
terminalmxCell that specifies the known end of the edges.
sourcesBoolean that specifies if source terminals should be contained in the result.  Default is true.
targetsBoolean that specifies if target terminals should be contained in the result.  Default is true.
+ +

getTopmostCells

mxGraphModel.prototype.getTopmostCells = function(cells)

Returns the topmost cells of the hierarchy in an array that contains no descendants for each mxCell that it contains.  Duplicates should be removed in the cells array to improve performance.

Parameters

cellsArray of mxCells whose topmost ancestors should be returned.
+ +

isVertex

mxGraphModel.prototype.isVertex = function(cell)

Returns true if the given cell is a vertex.

Parameters

cellmxCell that represents the possible vertex.
+ +

isEdge

mxGraphModel.prototype.isEdge = function(cell)

Returns true if the given cell is an edge.

Parameters

cellmxCell that represents the possible edge.
+ +

isConnectable

mxGraphModel.prototype.isConnectable = function(cell)

Returns true if the given mxCell is connectable.  If <edgesConnectable> is false, then this function returns false for all edges else it returns the return value of mxCell.isConnectable.

Parameters

cellmxCell whose connectable state should be returned.
+ +

getValue

mxGraphModel.prototype.getValue = function(cell)

Returns the user object of the given mxCell using mxCell.getValue.

Parameters

cellmxCell whose user object should be returned.
+ +

setValue

mxGraphModel.prototype.setValue = function(cell,
value)

Sets the user object of then given mxCell using mxValueChange and adds the change to the current transaction.

Parameters

cellmxCell whose user object should be changed.
valueObject that defines the new user object.
+ +

valueForCellChanged

mxGraphModel.prototype.valueForCellChanged = function(cell,
value)

Inner callback to update the user object of the given mxCell using mxCell.valueChanged and return the previous value, that is, the return value of mxCell.valueChanged.

To change a specific attribute in an XML node, the following code can be used.

graph.getModel().valueForCellChanged = function(cell, value)
+{
+  var previous = cell.value.getAttribute('label');
+  cell.value.setAttribute('label', value);
+
+  return previous;
+};
+ +

getGeometry

mxGraphModel.prototype.getGeometry = function(cell,
geometry)

Returns the mxGeometry of the given mxCell.

Parameters

cellmxCell whose geometry should be returned.
+ +

setGeometry

mxGraphModel.prototype.setGeometry = function(cell,
geometry)

Sets the mxGeometry of the given mxCell.  The actual update of the cell is carried out in geometryForCellChanged.  The mxGeometryChange action is used to encapsulate the change.

Parameters

cellmxCell whose geometry should be changed.
geometrymxGeometry that defines the new geometry.
+ +

geometryForCellChanged

mxGraphModel.prototype.geometryForCellChanged = function(cell,
geometry)

Inner callback to update the mxGeometry of the given mxCell using mxCell.setGeometry and return the previous mxGeometry.

+ +

getStyle

mxGraphModel.prototype.getStyle = function(cell)

Returns the style of the given mxCell.

Parameters

cellmxCell whose style should be returned.
+ +

setStyle

mxGraphModel.prototype.setStyle = function(cell,
style)

Sets the style of the given mxCell using mxStyleChange and adds the change to the current transaction.

Parameters

cellmxCell whose style should be changed.
styleString of the form [stylename;|key=value;] to specify the new cell style.
+ +

styleForCellChanged

mxGraphModel.prototype.styleForCellChanged = function(cell,
style)

Inner callback to update the style of the given mxCell using mxCell.setStyle and return the previous style.

Parameters

cellmxCell that specifies the cell to be updated.
styleString of the form [stylename;|key=value;] to specify the new cell style.
+ +

isCollapsed

mxGraphModel.prototype.isCollapsed = function(cell)

Returns true if the given mxCell is collapsed.

Parameters

cellmxCell whose collapsed state should be returned.
+ +

setCollapsed

mxGraphModel.prototype.setCollapsed = function(cell,
collapsed)

Sets the collapsed state of the given mxCell using mxCollapseChange and adds the change to the current transaction.

Parameters

cellmxCell whose collapsed state should be changed.
collapsedBoolean that specifies the new collpased state.
+ +

collapsedStateForCellChanged

mxGraphModel.prototype.collapsedStateForCellChanged = function(cell,
collapsed)

Inner callback to update the collapsed state of the given mxCell using mxCell.setCollapsed and return the previous collapsed state.

Parameters

cellmxCell that specifies the cell to be updated.
collapsedBoolean that specifies the new collpased state.
+ +

isVisible

mxGraphModel.prototype.isVisible = function(cell)

Returns true if the given mxCell is visible.

Parameters

cellmxCell whose visible state should be returned.
+ +

setVisible

mxGraphModel.prototype.setVisible = function(cell,
visible)

Sets the visible state of the given mxCell using mxVisibleChange and adds the change to the current transaction.

Parameters

cellmxCell whose visible state should be changed.
visibleBoolean that specifies the new visible state.
+ +

visibleStateForCellChanged

mxGraphModel.prototype.visibleStateForCellChanged = function(cell,
visible)

Inner callback to update the visible state of the given mxCell using mxCell.setCollapsed and return the previous visible state.

Parameters

cellmxCell that specifies the cell to be updated.
visibleBoolean that specifies the new visible state.
+ +

execute

mxGraphModel.prototype.execute = function(change)

Executes the given edit and fires events if required.  The edit object requires an execute function which is invoked.  The edit is added to the currentEdit between beginUpdate and endUpdate calls, so that events will be fired if this execute is an individual transaction, that is, if no previous beginUpdate calls have been made without calling endUpdate.  This implementation fires an execute event before executing the given change.

Parameters

changeObject that described the change.
+ +

beginUpdate

mxGraphModel.prototype.beginUpdate = function()

Increments the updateLevel by one.  The event notification is queued until updateLevel reaches 0 by use of endUpdate.

All changes on mxGraphModel are transactional, that is, they are executed in a single undoable change on the model (without transaction isolation).  Therefore, if you want to combine any number of changes into a single undoable change, you should group any two or more API calls that modify the graph model between beginUpdate and endUpdate calls as shown here:

var model = graph.getModel();
+var parent = graph.getDefaultParent();
+var index = model.getChildCount(parent);
+model.beginUpdate();
+try
+{
+  model.add(parent, v1, index);
+  model.add(parent, v2, index+1);
+}
+finally
+{
+  model.endUpdate();
+}

Of course there is a shortcut for appending a sequence of cells into the default parent:

graph.addCells([v1, v2]).
+ +

endUpdate

mxGraphModel.prototype.endUpdate = function()

Decrements the updateLevel by one and fires an <undo> event if the updateLevel reaches 0.  This function indirectly fires a <change> event by invoking the notify function on the currentEdit und then creates a new currentEdit using createUndoableEdit.

The <undo> event is fired only once per edit, whereas the <change> event is fired whenever the notify function is invoked, that is, on undo and redo of the edit.

+ +

createUndoableEdit

mxGraphModel.prototype.createUndoableEdit = function()

Creates a new mxUndoableEdit that implements the notify function to fire a <change> and <notify> event through the mxUndoableEdit’s source.

+ +

mergeChildren

mxGraphModel.prototype.mergeChildren = function(from,
to,
cloneAllEdges)

Merges the children of the given cell into the given target cell inside this model.  All cells are cloned unless there is a corresponding cell in the model with the same id, in which case the source cell is ignored and all edges are connected to the corresponding cell in this model.  Edges are considered to have no identity and are always cloned unless the cloneAllEdges flag is set to false, in which case edges with the same id in the target model are reconnected to reflect the terminals of the source edges.

+ +

mergeChildren

mxGraphModel.prototype.mergeChildrenImpl = function(from,
to,
cloneAllEdges,
mapping)

Clones the children of the source cell into the given target cell in this model and adds an entry to the mapping that maps from the source cell to the target cell with the same id or the clone of the source cell that was inserted into this model.

+ +

getParents

mxGraphModel.prototype.getParents = function(cells)

Returns an array that represents the set (no duplicates) of all parents for the given array of cells.

Parameters

cellsArray of cells whose parents should be returned.
+ +

cloneCell

mxGraphModel.prototype.cloneCell = function(cell)

Returns a deep clone of the given mxCell (including the children) which is created using cloneCells.

Parameters

cellmxCell to be cloned.
+ +

cloneCells

mxGraphModel.prototype.cloneCells = function(cells,
includeChildren)

Returns an array of clones for the given array of mxCells.  Depending on the value of includeChildren, a deep clone is created for each cell.  Connections are restored based if the corresponding cell is contained in the passed in array.

Parameters

cellsArray of mxCell to be cloned.
includeChildrenBoolean indicating if the cells should be cloned with all descendants.
+ +

cloneCellImpl

mxGraphModel.prototype.cloneCellImpl = function(cell,
mapping,
includeChildren)

Inner helper method for cloning cells recursively.

+ +

cellCloned

mxGraphModel.prototype.cellCloned = function(cell)

Hook for cloning the cell.  This returns cell.clone() or any possible exceptions.

+ +

restoreClone

mxGraphModel.prototype.restoreClone = function(clone,
cell,
mapping)

Inner helper method for restoring the connections in a network of cloned cells.

+ +

mxRootChange

Action to change the root in a model.

Summary
Functions
mxRootChangeConstructs a change of the root in the specified model.
executeCarries out a change of the root using mxGraphModel.rootChanged.
+ +

Functions

+ +

mxRootChange

function mxRootChange(model,
root)

Constructs a change of the root in the specified model.

+ +

execute

mxRootChange.prototype.execute = function()

Carries out a change of the root using mxGraphModel.rootChanged.

+ +

mxChildChange

Action to add or remove a child in a model.

Summary
Functions
mxChildChangeConstructs a change of a child in the specified model.
executeChanges the parent of <child> using mxGraphModel.parentForCellChanged and removes or restores the cell’s connections.
disconnectDisconnects the given cell recursively from its terminals and stores the previous terminal in the cell’s terminals.
+ +

Functions

+ +

mxChildChange

function mxChildChange(model,
parent,
child,
index)

Constructs a change of a child in the specified model.

+ +

execute

mxChildChange.prototype.execute = function()

Changes the parent of <child> using mxGraphModel.parentForCellChanged and removes or restores the cell’s connections.

+ +

disconnect

Disconnects the given cell recursively from its terminals and stores the previous terminal in the cell’s terminals.

+ +

mxTerminalChange

Action to change a terminal in a model.

Summary
Functions
mxTerminalChangeConstructs a change of a terminal in the specified model.
executeChanges the terminal of <cell> to <previous> using mxGraphModel.terminalForCellChanged.
+ +

Functions

+ +

mxTerminalChange

function mxTerminalChange(model,
cell,
terminal,
source)

Constructs a change of a terminal in the specified model.

+ +

execute

mxTerminalChange.prototype.execute = function()

Changes the terminal of <cell> to <previous> using mxGraphModel.terminalForCellChanged.

+ +

mxValueChange

Action to change a user object in a model.

Summary
Functions
mxValueChangeConstructs a change of a user object in the specified model.
executeChanges the value of <cell> to <previous> using mxGraphModel.valueForCellChanged.
+ +

Functions

+ +

mxValueChange

function mxValueChange(model,
cell,
value)

Constructs a change of a user object in the specified model.

+ +

execute

mxValueChange.prototype.execute = function()

Changes the value of <cell> to <previous> using mxGraphModel.valueForCellChanged.

+ +

mxStyleChange

Action to change a cell’s style in a model.

Summary
Functions
mxStyleChangeConstructs a change of a style in the specified model.
executeChanges the style of <cell> to <previous> using mxGraphModel.styleForCellChanged.
+ +

Functions

+ +

mxStyleChange

function mxStyleChange(model,
cell,
style)

Constructs a change of a style in the specified model.

+ +

execute

mxStyleChange.prototype.execute = function()

Changes the style of <cell> to <previous> using mxGraphModel.styleForCellChanged.

+ +

mxGeometryChange

Action to change a cell’s geometry in a model.

Summary
Functions
mxGeometryChangeConstructs a change of a geometry in the specified model.
executeChanges the geometry of <cell> ro <previous> using mxGraphModel.geometryForCellChanged.
+ +

Functions

+ +

mxGeometryChange

function mxGeometryChange(model,
cell,
geometry)

Constructs a change of a geometry in the specified model.

+ +

execute

mxGeometryChange.prototype.execute = function()

Changes the geometry of <cell> ro <previous> using mxGraphModel.geometryForCellChanged.

+ +

mxCollapseChange

Action to change a cell’s collapsed state in a model.

Summary
Functions
mxCollapseChangeConstructs a change of a collapsed state in the specified model.
executeChanges the collapsed state of <cell> to <previous> using mxGraphModel.collapsedStateForCellChanged.
+ +

Functions

+ +

mxCollapseChange

function mxCollapseChange(model,
cell,
collapsed)

Constructs a change of a collapsed state in the specified model.

+ +

execute

mxCollapseChange.prototype.execute = function()

Changes the collapsed state of <cell> to <previous> using mxGraphModel.collapsedStateForCellChanged.

+ +

mxVisibleChange

Action to change a cell’s visible state in a model.

Summary
Functions
mxVisibleChangeConstructs a change of a visible state in the specified model.
executeChanges the visible state of <cell> to <previous> using mxGraphModel.visibleStateForCellChanged.
+ +

Functions

+ +

mxVisibleChange

function mxVisibleChange(model,
cell,
visible)

Constructs a change of a visible state in the specified model.

+ +

execute

mxVisibleChange.prototype.execute = function()

Changes the visible state of <cell> to <previous> using mxGraphModel.visibleStateForCellChanged.

+ +

mxCellAttributeChange

Action to change the attribute of a cell’s user object.  There is no method on the graph model that uses this action.  To use the action, you can use the code shown in the example below.

Example

To change the attributeName in the cell’s user object to attributeValue, use the following code:

model.beginUpdate();
+try
+{
+  var edit = new mxCellAttributeChange(
+    cell, attributeName, attributeValue);
+  model.execute(edit);
+}
+finally
+{
+  model.endUpdate();
+}
Summary
Functions
mxCellAttributeChangeConstructs a change of a attribute of the DOM node stored as the value of the given mxCell.
executeChanges the attribute of the cell’s user object by using mxCell.setAttribute.
+ +

Functions

+ +

mxCellAttributeChange

function mxCellAttributeChange(cell,
attribute,
value)

Constructs a change of a attribute of the DOM node stored as the value of the given mxCell.

+ +

execute

mxCellAttributeChange.prototype.execute = function()

Changes the attribute of the cell’s user object by using mxCell.setAttribute.

+ +
+ + + + + + + + + + +
Base class for objects that dispatch named events.
Fires when an undoable edit is dispatched.
mxGraphModel.prototype.updateLevel
Counter for the depth of nested transactions.
mxGraphModel.prototype.beginUpdate = function()
Increments the updateLevel by one.
mxGraphModel.prototype.endUpdate = function()
Decrements the updateLevel by one and fires an undo event if the updateLevel reaches 0.
function mxGraphModel(root)
Constructs a new graph model.
mxGraphModel.prototype.root
Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells.
mxGraphModel.prototype.cells
Maps from Ids to cells.
mxGraphModel.prototype.maintainEdgeParent
Specifies if edges should automatically be moved into the nearest common ancestor of their terminals.
mxGraphModel.prototype.createIds
Specifies if the model should automatically create Ids for new cells.
mxGraphModel.prototype.prefix
Defines the prefix of new Ids.
mxGraphModel.prototype.postfix
Defines the postfix of new Ids.
mxGraphModel.prototype.nextId
Specifies the next Id to be created.
mxGraphModel.prototype.currentEdit
Holds the changes for the current transaction.
mxGraphModel.prototype.endingUpdate
True if the program flow is currently inside endUpdate.
mxGraphModel.prototype.clear = function()
Sets a new root using createRoot.
mxGraphModel.prototype.createRoot = function()
Creates a new root cell with a default layer (child 0).
mxGraphModel.prototype.isCreateIds = function()
Returns createIds.
mxGraphModel.prototype.setCreateIds = function(value)
Sets createIds.
mxGraphModel.prototype.getCell = function(id)
Returns the mxCell for the specified Id or null if no cell can be found for the given Id.
Cells are the elements of the graph model.
mxGraphModel.prototype.filterCells = function(cells,
filter)
Returns the cells from the given array where the fiven filter function returns true.
mxGraphModel.prototype.getDescendants = function(parent)
Returns all descendants of the given cell and the cell itself in an array.
mxGraphModel.prototype.filterDescendants = function(filter,
parent)
Visits all cells recursively and applies the specified filter function to each cell.
mxGraphModel.prototype.getRoot = function(cell)
Returns the root of the model or the topmost parent of the given cell.
mxGraphModel.prototype.setRoot = function(root)
Sets the root of the model using mxRootChange and adds the change to the current transaction.
Action to change the root in a model.
mxGraphModel.prototype.rootChanged = function(root)
Inner callback to change the root of the model and update the internal datastructures, such as cells and nextId.
mxGraphModel.prototype.isRoot = function(cell)
Returns true if the given cell is the root of the model and a non-null value.
mxGraphModel.prototype.isLayer = function(cell)
Returns true if isRoot returns true for the parent of the given cell.
mxGraphModel.prototype.isAncestor = function(parent,
child)
Returns true if the given parent is an ancestor of the given child.
mxGraphModel.prototype.contains = function(cell)
Returns true if the model contains the given mxCell.
mxGraphModel.prototype.getParent = function(cell)
Returns the parent of the given cell.
mxGraphModel.prototype.add = function(parent,
child,
index)
Adds the specified child to the parent at the given index using mxChildChange and adds the change to the current transaction.
Action to add or remove a child in a model.
mxGraphModel.prototype.cellAdded = function(cell)
Inner callback to update cells when a cell has been added.
mxGraphModel.prototype.createId = function(cell)
Hook method to create an Id for the specified cell.
mxGraphModel.prototype.updateEdgeParents = function(cell,
root)
Updates the parent for all edges that are connected to cell or one of its descendants using updateEdgeParent.
mxGraphModel.prototype.updateEdgeParent = function(edge,
root)
Inner callback to update the parent of the specified mxCell to the nearest-common-ancestor of its two terminals.
mxGraphModel.prototype.getOrigin = function(cell)
Returns the absolute, accumulated origin for the children inside the given parent as an mxPoint.
Implements a 2-dimensional vector with double precision coordinates.
mxGraphModel.prototype.getNearestCommonAncestor = function(cell1,
cell2)
Returns the nearest common ancestor for the specified cells.
mxGraphModel.prototype.remove = function(cell)
Removes the specified cell from the model using mxChildChange and adds the change to the current transaction.
mxGraphModel.prototype.cellRemoved = function(cell)
Inner callback to update cells when a cell has been removed.
mxGraphModel.prototype.parentForCellChanged = function(cell,
parent,
index)
Inner callback to update the parent of a cell using mxCell.insert on the parent and return the previous parent.
mxCell.prototype.insert = function(child,
index)
Inserts the specified child into the child array at the specified index and updates the parent reference of the child.
mxGraphModel.prototype.getChildCount = function(cell)
Returns the number of children in the given cell.
mxGraphModel.prototype.getChildAt = function(cell,
index)
Returns the child of the given mxCell at the given index.
mxGraphModel.prototype.getChildren = function(cell)
Returns all children of the given mxCell as an array of mxCells.
mxGraphModel.prototype.getChildVertices = function(parent)
Returns the child vertices of the given parent.
mxGraphModel.prototype.getChildEdges = function(parent)
Returns the child edges of the given parent.
mxGraphModel.prototype.getChildCells = function(parent,
vertices,
edges)
Returns the children of the given cell that are vertices and/or edges depending on the arguments.
mxGraphModel.prototype.getTerminal = function(edge,
isSource)
Returns the source or target mxCell of the given edge depending on the value of the boolean parameter.
mxGraphModel.prototype.setTerminal = function(edge,
terminal,
isSource)
Sets the source or target terminal of the given mxCell using mxTerminalChange and adds the change to the current transaction.
Action to change a terminal in a model.
mxGraphModel.prototype.setTerminals = function(edge,
source,
target)
Sets the source and target mxCell of the given mxCell in a single transaction using setTerminal for each end of the edge.
mxGraphModel.prototype.terminalForCellChanged = function(edge,
terminal,
isSource)
Inner helper function to update the terminal of the edge using mxCell.insertEdge and return the previous terminal.
mxCell.prototype.insertEdge = function(edge,
isOutgoing)
Inserts the specified edge into the edge array and returns the edge.
mxGraphModel.prototype.getEdgeCount = function(cell)
Returns the number of distinct edges connected to the given cell.
mxGraphModel.prototype.getEdgeAt = function(cell,
index)
Returns the edge of cell at the given index.
mxGraphModel.prototype.getDirectedEdgeCount = function(cell,
outgoing,
ignoredEdge)
Returns the number of incoming or outgoing edges, ignoring the given edge.
mxGraphModel.prototype.getConnections = function(cell)
Returns all edges of the given cell without loops.
mxGraphModel.prototype.getIncomingEdges = function(cell)
Returns the incoming edges of the given cell without loops.
mxGraphModel.prototype.getOutgoingEdges = function(cell)
Returns the outgoing edges of the given cell without loops.
mxGraphModel.prototype.getEdges = function(cell,
incoming,
outgoing,
includeLoops)
Returns all distinct edges connected to this cell as a new array of mxCells.
mxGraphModel.prototype.getEdgesBetween = function(source,
target,
directed)
Returns all edges between the given source and target pair.
mxGraphModel.prototype.getOpposites = function(edges,
terminal,
sources,
targets)
Returns all opposite vertices wrt terminal for the given edges, only returning sources and/or targets as specified.
mxGraphModel.prototype.getTopmostCells = function(cells)
Returns the topmost cells of the hierarchy in an array that contains no descendants for each mxCell that it contains.
mxGraphModel.prototype.isVertex = function(cell)
Returns true if the given cell is a vertex.
mxGraphModel.prototype.isEdge = function(cell)
Returns true if the given cell is an edge.
mxGraphModel.prototype.isConnectable = function(cell)
Returns true if the given mxCell is connectable.
mxGraphModel.prototype.getValue = function(cell)
Returns the user object of the given mxCell using mxCell.getValue.
mxCell.prototype.getValue = function()
Returns the user object of the cell.
mxGraphModel.prototype.setValue = function(cell,
value)
Sets the user object of then given mxCell using mxValueChange and adds the change to the current transaction.
Action to change a user object in a model.
mxGraphModel.prototype.valueForCellChanged = function(cell,
value)
Inner callback to update the user object of the given mxCell using mxCell.valueChanged and return the previous value, that is, the return value of mxCell.valueChanged.
mxCell.prototype.valueChanged = function(newValue)
Changes the user object after an in-place edit and returns the previous value.
mxGraphModel.prototype.getGeometry = function(cell,
geometry)
Returns the mxGeometry of the given mxCell.
Extends mxRectangle to represent the geometry of a cell.
mxGraphModel.prototype.setGeometry = function(cell,
geometry)
Sets the mxGeometry of the given mxCell.
mxGraphModel.prototype.geometryForCellChanged = function(cell,
geometry)
Inner callback to update the mxGeometry of the given mxCell using mxCell.setGeometry and return the previous mxGeometry.
mxCell.prototype.setGeometry = function(geometry)
Sets the mxGeometry to be used as the geometry.
mxGraphModel.prototype.getStyle = function(cell)
Returns the style of the given mxCell.
mxGraphModel.prototype.setStyle = function(cell,
style)
Sets the style of the given mxCell using mxStyleChange and adds the change to the current transaction.
Action to change a cell’s style in a model.
mxGraphModel.prototype.styleForCellChanged = function(cell,
style)
Inner callback to update the style of the given mxCell using mxCell.setStyle and return the previous style.
mxCell.prototype.setStyle = function(style)
Sets the string to be used as the style.
mxGraphModel.prototype.isCollapsed = function(cell)
Returns true if the given mxCell is collapsed.
mxGraphModel.prototype.setCollapsed = function(cell,
collapsed)
Sets the collapsed state of the given mxCell using mxCollapseChange and adds the change to the current transaction.
Action to change a cell’s collapsed state in a model.
mxGraphModel.prototype.collapsedStateForCellChanged = function(cell,
collapsed)
Inner callback to update the collapsed state of the given mxCell using mxCell.setCollapsed and return the previous collapsed state.
mxCell.prototype.setCollapsed = function(collapsed)
Sets the collapsed state.
mxGraphModel.prototype.isVisible = function(cell)
Returns true if the given mxCell is visible.
mxGraphModel.prototype.setVisible = function(cell,
visible)
Sets the visible state of the given mxCell using mxVisibleChange and adds the change to the current transaction.
Action to change a cell’s visible state in a model.
mxGraphModel.prototype.visibleStateForCellChanged = function(cell,
visible)
Inner callback to update the visible state of the given mxCell using mxCell.setCollapsed and return the previous visible state.
mxGraphModel.prototype.execute = function(change)
Executes the given edit and fires events if required.
mxGraphModel.prototype.createUndoableEdit = function()
Creates a new mxUndoableEdit that implements the notify function to fire a change and notify event through the mxUndoableEdit’s source.
Implements a composite undoable edit.
mxGraphModel.prototype.mergeChildren = function(from,
to,
cloneAllEdges)
Merges the children of the given cell into the given target cell inside this model.
mxGraphModel.prototype.getParents = function(cells)
Returns an array that represents the set (no duplicates) of all parents for the given array of cells.
mxGraphModel.prototype.cloneCell = function(cell)
Returns a deep clone of the given mxCell (including the children) which is created using cloneCells.
mxGraphModel.prototype.cloneCells = function(cells,
includeChildren)
Returns an array of clones for the given array of mxCells.
mxGraphModel.prototype.cloneCellImpl = function(cell,
mapping,
includeChildren)
Inner helper method for cloning cells recursively.
mxGraphModel.prototype.cellCloned = function(cell)
Hook for cloning the cell.
mxGraphModel.prototype.restoreClone = function(clone,
cell,
mapping)
Inner helper method for restoring the connections in a network of cloned cells.
function mxRootChange(model,
root)
Constructs a change of the root in the specified model.
mxRootChange.prototype.execute = function()
Carries out a change of the root using mxGraphModel.rootChanged.
function mxChildChange(model,
parent,
child,
index)
Constructs a change of a child in the specified model.
mxChildChange.prototype.execute = function()
Changes the parent of child using mxGraphModel.parentForCellChanged and removes or restores the cell’s connections.
function mxTerminalChange(model,
cell,
terminal,
source)
Constructs a change of a terminal in the specified model.
mxTerminalChange.prototype.execute = function()
Changes the terminal of cell to previous using mxGraphModel.terminalForCellChanged.
function mxValueChange(model,
cell,
value)
Constructs a change of a user object in the specified model.
mxValueChange.prototype.execute = function()
Changes the value of cell to previous using mxGraphModel.valueForCellChanged.
function mxStyleChange(model,
cell,
style)
Constructs a change of a style in the specified model.
mxStyleChange.prototype.execute = function()
Changes the style of cell to previous using mxGraphModel.styleForCellChanged.
function mxGeometryChange(model,
cell,
geometry)
Constructs a change of a geometry in the specified model.
mxGeometryChange.prototype.execute = function()
Changes the geometry of cell ro previous using mxGraphModel.geometryForCellChanged.
function mxCollapseChange(model,
cell,
collapsed)
Constructs a change of a collapsed state in the specified model.
mxCollapseChange.prototype.execute = function()
Changes the collapsed state of cell to previous using mxGraphModel.collapsedStateForCellChanged.
function mxVisibleChange(model,
cell,
visible)
Constructs a change of a visible state in the specified model.
mxVisibleChange.prototype.execute = function()
Changes the visible state of cell to previous using mxGraphModel.visibleStateForCellChanged.
function mxCellAttributeChange(cell,
attribute,
value)
Constructs a change of a attribute of the DOM node stored as the value of the given mxCell.
mxCellAttributeChange.prototype.execute = function()
Changes the attribute of the cell’s user object by using mxCell.setAttribute.
mxCell.prototype.setAttribute = function(name,
value)
Sets the specified attribute on the user object if it is an XML node.
mxCell.prototype.isConnectable = function()
Returns true if the cell is connectable.
Action to change a cell’s geometry in a model.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/mxClient-js.html b/docs/js-api/files/mxClient-js.html new file mode 100644 index 000000000..4dcd0df63 --- /dev/null +++ b/docs/js-api/files/mxClient-js.html @@ -0,0 +1,121 @@ + + +mxClient + + + + + + + + + +

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.

Summary
mxClientBootstrapping mechanism for the mxGraph thin client.
Variables
VERSIONContains the current version of the mxGraph library.
IS_IETrue if the current browser is Internet Explorer.
IS_IE6True if the current browser is Internet Explorer 6.x.
IS_NSTrue if the current browser is Netscape (including Firefox).
IS_OPTrue if the current browser is Opera.
IS_OTTrue if -o-transform is available as a CSS style.
IS_SFTrue if the current browser is Safari.
IS_GCTrue if the current browser is Google Chrome.
IS_MTTrue if -moz-transform is available as a CSS style.
IS_SVGTrue if the browser supports SVG.
NO_FOTrue if foreignObject support is not available.
IS_VMLTrue if the browser supports VML.
IS_MACTrue if the client is a Mac.
IS_TOUCHTrue if this client uses a touch interface (no mouse).
IS_LOCALTrue if the documents location does not start with http:// or https://.
Functions
isBrowserSupportedReturns true if the current browser is supported, that is, if mxClient.IS_VML or mxClient.IS_SVG is true.
linkAdds a link node to the head of the document.
includeDynamically adds a script node to the document header.
disposeFrees up memory in IE by resolving cyclic dependencies between the DOM and the JavaScript objects.
Variables
mxLoadResourcesOptional global config variable to toggle loading of the two resource files in mxGraph and mxEditor.
mxLoadStylesheetsOptional global config variable to toggle loading of the CSS files when the library is initialized.
basePathBasepath for all URLs in the core without trailing slash.
imageBasePathBasepath for all images URLs in the core without trailing slash.
languageDefines the language of the client, eg.
defaultLanguageDefines the default language which is used in the common resource files.
languagesDefines the optional array of all supported language extensions.
+ +

Variables

+ +

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.0.5.

+ +

IS_IE

IS_IE: navigator.userAgent.indexOf('MSIE') >

True if the current browser is Internet Explorer.

+ +

IS_IE6

IS_IE6: navigator.userAgent.indexOf('MSIE 6') >

True if the current browser is Internet Explorer 6.x.

+ +

IS_NS

IS_NS: navigator.userAgent.indexOf('Mozilla/') >

True if the current browser is Netscape (including Firefox).

+ +

IS_OP

IS_OP: navigator.userAgent.indexOf('Opera/') >

True if the current browser is Opera.

+ +

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_SF

IS_SF: navigator.userAgent.indexOf('AppleWebKit/') >

True if the current browser is Safari.

+ +

IS_GC

IS_GC: navigator.userAgent.indexOf('Chrome/') >

True if the current browser is Google Chrome.

+ +

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_SVG

IS_SVG: navigator.userAgent.indexOf('Firefox/') >

True if the browser supports SVG.

+ +

NO_FO

NO_FO: navigator.userAgent.indexOf('Firefox/1.') >

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.

+ +

IS_VML

IS_VML: navigator.appName.toUpperCase()

True if the browser supports VML.

+ +

IS_MAC

True if the client is a Mac.

+ +

IS_TOUCH

True if this client uses a touch interface (no mouse).  Currently this detects IPads, IPods, IPhones and Android devices.

+ +

IS_LOCAL

True if the documents location does not start with http:// or https://.

+ +

Functions

+ +

isBrowserSupported

isBrowserSupported: function()

Returns true if the current browser is supported, that is, if mxClient.IS_VML or mxClient.IS_SVG is true.

Example

if (!mxClient.isBrowserSupported())
+{
+  mxUtils.error('Browser is not supported!', 200, false);
+}
+ +

link

link: function(rel,
href,
doc)

Adds a link node to the head of the document.  Use this to add a stylesheet to the page as follows:

mxClient.link('stylesheet', filename);

where filename is the (relative) URL of the stylesheet.  The charset is hardcoded to ISO-8859-1 and the type is text/css.

Parameters

relString that represents the rel attribute of the link node.
hrefString that represents the href attribute of the link node.
docOptional parent document of the link node.
+ +

include

include: function(src)

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.

+ +

dispose

dispose: function()

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.

+ +

Variables

+ +

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.

<script type="text/javascript">
+     mxLoadResources = false;
+</script>
+<script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>
+ +

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.

<script type="text/javascript">
+     mxLoadStylesheets = false;
+</script>
+<script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>
+ +

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:

<script type="text/javascript">
+     mxBasePath = '/path/to/core/directory';
+</script>
+<script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>

When using a relative path, the path is relative to the URL of the page that contains the assignment.  Trailing slashes are automatically removed.

+ +

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:

<script type="text/javascript">
+     mxImageBasePath = '/path/to/image/directory';
+</script>
+<script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>

When using a relative path, the path is relative to the URL of the page that contains the assignment.  Trailing slashes are automatically removed.

+ +

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.

Set mxLanguage prior to loading the mxClient library as follows to override this setting:

<script type="text/javascript">
+     mxLanguage = 'en';
+</script>
+<script type="text/javascript" src="js/mxClient.js"></script>

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.

+ +

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:

<script type="text/javascript">
+     mxDefaultLanguage = 'de';
+</script>
+<script type="text/javascript" src="js/mxClient.js"></script>
+ +

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>.

<script type="text/javascript">
+     mxLanguages = ['de', 'it', 'fr'];
+</script>
+<script type="text/javascript" src="js/mxClient.js"></script>

This is used to avoid unnecessary requests to language files, ie. if a 404 will be returned.

+ +
+ + + + + + + + + + +
IS_IE: navigator.userAgent.indexOf('MSIE') >
True if the current browser is Internet Explorer.
IS_IE6: navigator.userAgent.indexOf('MSIE 6') >
True if the current browser is Internet Explorer 6.x.
IS_NS: navigator.userAgent.indexOf('Mozilla/') >
True if the current browser is Netscape (including Firefox).
IS_OP: navigator.userAgent.indexOf('Opera/') >
True if the current browser is Opera.
IS_SF: navigator.userAgent.indexOf('AppleWebKit/') >
True if the current browser is Safari.
IS_GC: navigator.userAgent.indexOf('Chrome/') >
True if the current browser is Google Chrome.
IS_SVG: navigator.userAgent.indexOf('Firefox/') >
True if the browser supports SVG.
NO_FO: navigator.userAgent.indexOf('Firefox/1.') >
True if foreignObject support is not available.
IS_VML: navigator.appName.toUpperCase()
True if the browser supports VML.
isBrowserSupported: function()
Returns true if the current browser is supported, that is, if mxClient.IS_VML or mxClient.IS_SVG is true.
link: function(rel,
href,
doc)
Adds a link node to the head of the document.
include: function(src)
Dynamically adds a script node to the document header.
dispose: function()
Frees up memory in IE by resolving cyclic dependencies between the DOM and the JavaScript objects.
Extends mxEventSource to implement a graph component for the browser.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
Basepath for all URLs in the core without trailing slash.
mxEditor.prototype.askZoomResource
Specifies the resource key for the zoom dialog.
mxEditor.prototype.lastSavedResource
Specifies the resource key for the last saved info.
mxEditor.prototype.currentFileResource
Specifies the resource key for the current file info.
mxEditor.prototype.propertiesResource
Specifies the resource key for the properties window title.
mxEditor.prototype.tasksResource
Specifies the resource key for the tasks window title.
mxEditor.prototype.helpResource
Specifies the resource key for the help window title.
mxEditor.prototype.outlineResource
Specifies the resource key for the outline window title.
mxElbowEdgeHandler.prototype.doubleClickOrientationResource
Specifies the resource key for the tooltip to be displayed on the single control point for routed edges.
Specifies the resource key for the title of the error window.
Specifies the resource key for the label of the close button.
mxGraphSelectionModel.prototype.doneResource
Specifies the resource key for the status message after a long operation.
mxGraphSelectionModel.prototype.updatingSelectionResource
Specifies the resource key for the status message while the selection is being updated.
mxGraphView.prototype.doneResource
Specifies the resource key for the status message after a long operation.
Specifies the resource key for the status message while the document is being updated.
mxGraph.prototype.containsValidationErrorsResource
Specifies the resource key for the warning message to be displayed when a collapsed cell contains validation errors.
mxGraph.prototype.alreadyConnectedResource
Specifies the resource key for the error message to be displayed in non-multigraphs when two vertices are already connected.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxActor-js.html b/docs/js-api/files/shape/mxActor-js.html new file mode 100644 index 000000000..19cf7c71e --- /dev/null +++ b/docs/js-api/files/shape/mxActor-js.html @@ -0,0 +1,73 @@ + + +mxActor + + + + + + + + + +

mxActor

Extends mxShape to implement an actor shape.  If a custom shape with one filled area is needed, then this shape’s redrawPath should be overridden.

Example

function SampleShape() { }
+
+SampleShape.prototype = new mxActor();
+SampleShape.prototype.constructor = vsAseShape;
+
+mxCellRenderer.prototype.defaultShapes['sample'] = SampleShape;
+SampleShape.prototype.redrawPath = function(path, x, y, w, h)
+{
+  path.moveTo(0, 0);
+  path.lineTo(w, h);
+  // ...
+  path.close();
+}

This shape is registered under mxConstants.SHAPE_ACTOR in mxCellRenderer.

Summary
mxActorExtends mxShape to implement an actor shape.
Functions
mxActorConstructs a new actor shape.
Variables
mixedModeHtmlOverrides the parent value with false, meaning it will draw in VML in mixed Html mode.
preferModeHtmlOverrides the parent value with false, meaning it will draw as VML in prefer Html mode.
Functions
createVmlCreates and returns the VML node(s) to represent this shape.
redrawVmlUpdates the VML node(s) to reflect the latest bounds and scale.
createSvgCreates and returns the SVG node(s) to represent this shape.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
redrawPathDraws the path for this shape.
+ +

Functions

+ +

mxActor

function mxActor(bounds,
fill,
stroke,
strokewidth)

Constructs a new actor shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

Variables

+ +

mixedModeHtml

mxActor.prototype.mixedModeHtml

Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.

+ +

preferModeHtml

mxActor.prototype.preferModeHtml

Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.

+ +

Functions

+ +

createVml

mxActor.prototype.createVml = function()

Creates and returns the VML node(s) to represent this shape.

+ +

redrawVml

mxActor.prototype.redrawVml = function()

Updates the VML node(s) to reflect the latest bounds and scale.

+ +

createSvg

mxActor.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawSvg

mxActor.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +

redrawPath

mxActor.prototype.redrawPath = function(path,
x,
y,
w,
h)

Draws the path for this shape.  This method uses the mxPath abstraction to paint the shape for VML and SVG.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxActor(bounds,
fill,
stroke,
strokewidth)
Constructs a new actor shape.
mxActor.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxActor.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxActor.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxActor.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxActor.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxActor.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxActor.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
Name under which mxActor is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
An abstraction for creating VML and SVG paths.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxArrow-js.html b/docs/js-api/files/shape/mxArrow-js.html new file mode 100644 index 000000000..575e70e08 --- /dev/null +++ b/docs/js-api/files/shape/mxArrow-js.html @@ -0,0 +1,63 @@ + + +mxArrow + + + + + + + + + +

mxArrow

Extends mxShape to implement an arrow shape.  (The shape is used to represent edges, not vertices.)  This shape is registered under mxConstants.SHAPE_ARROW in mxCellRenderer.

Summary
mxArrowExtends mxShape to implement an arrow shape.
Functions
mxArrowConstructs a new arrow shape.
Variables
addPipeSpecifies if a SVG path should be created around any path to increase the tolerance for mouse events.
enableFillSpecifies if fill colors should be ignored.
Functions
configureTransparentBackgroundOveridden to remove transparent background.
createVmlExtends <mxShape.createVml> to ignore fill if enableFill is false.
createSvgExtends mxActor.createSvg to ignore fill if enableFill is false and create an event handling shape if <this.addPipe> is true.
reconfigureExtends <mxActor.reconfigure> to ignore fill if enableFill is false.
redrawSvgExtends mxActor.redrawSvg to update the event handling shape if one exists.
redrawPathDraws the path for this shape.
+ +

Functions

+ +

mxArrow

function mxArrow(points,
fill,
stroke,
strokewidth,
arrowWidth,
spacing,
endSize)

Constructs a new arrow shape.

Parameters

pointsArray of mxPoints that define the points.  This is stored in mxShape.points.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
arrowWidthOptional integer that defines the arrow width.  Default is mxConstants.ARROW_WIDTH.  This is stored in <arrowWidth>.
spacingOptional integer that defines the spacing between the arrow shape and its endpoints.  Default is mxConstants.ARROW_SPACING.  This is stored in <spacing>.
endSizeOptional integer that defines the size of the arrowhead.  Default is mxConstants.ARROW_SIZE.  This is stored in <endSize>.
+ +

Variables

+ +

addPipe

mxArrow.prototype.addPipe

Specifies if a SVG path should be created around any path to increase the tolerance for mouse events.  Default is false since this shape is filled.

+ +

enableFill

mxArrow.prototype.enableFill

Specifies if fill colors should be ignored.  This must be set to true for shapes that are stroked only.  Default is true since this shape is filled.

+ +

Functions

+ +

configureTransparentBackground

mxArrow.prototype.configureTransparentBackground = function(node)

Overidden to remove transparent background.

+ +

createVml

mxArrow.prototype.createVml = function()

Extends <mxShape.createVml> to ignore fill if enableFill is false.

+ +

createSvg

mxArrow.prototype.createSvg = function()

Extends mxActor.createSvg to ignore fill if enableFill is false and create an event handling shape if <this.addPipe> is true.

+ +

reconfigure

mxArrow.prototype.reconfigure = function()

Extends <mxActor.reconfigure> to ignore fill if enableFill is false.

+ +

redrawSvg

mxArrow.prototype.redrawSvg = function()

Extends mxActor.redrawSvg to update the event handling shape if one exists.

+ +

redrawPath

mxArrow.prototype.redrawPath = function(path,
x,
y,
w,
h)

Draws the path for this shape.  This method uses the mxPath abstraction to paint the shape for VML and SVG.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxArrow(points,
fill,
stroke,
strokewidth,
arrowWidth,
spacing,
endSize)
Constructs a new arrow shape.
mxArrow.prototype.addPipe
Specifies if a SVG path should be created around any path to increase the tolerance for mouse events.
mxArrow.prototype.enableFill
Specifies if fill colors should be ignored.
mxArrow.prototype.configureTransparentBackground = function(node)
Overidden to remove transparent background.
mxArrow.prototype.createVml = function()
Extends mxShape.createVml to ignore fill if enableFill is false.
mxArrow.prototype.createSvg = function()
Extends mxActor.createSvg to ignore fill if enableFill is false and create an event handling shape if this.addPipe is true.
mxActor.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxArrow.prototype.reconfigure = function()
Extends mxActor.reconfigure to ignore fill if enableFill is false.
mxArrow.prototype.redrawSvg = function()
Extends mxActor.redrawSvg to update the event handling shape if one exists.
mxActor.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxArrow.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
Name under which mxArrow is registered in mxCellRenderer.
Renders cells into a document object model.
Implements a 2-dimensional vector with double precision coordinates.
mxShape.prototype.points
Holds the array of mxPoints that specify the points of this shape.
Defines the width of the arrow shape.
Defines the spacing between the arrow shape and its terminals.
Defines the size of the arrowhead in the arrow shape.
An abstraction for creating VML and SVG paths.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxCloud-js.html b/docs/js-api/files/shape/mxCloud-js.html new file mode 100644 index 000000000..a39ca6757 --- /dev/null +++ b/docs/js-api/files/shape/mxCloud-js.html @@ -0,0 +1,45 @@ + + +mxCloud + + + + + + + + + +

mxCloud

Extends mxActor to implement a cloud shape.

This shape is registered under mxConstants.SHAPE_CLOUD in mxCellRenderer.

Summary
mxCloudExtends mxActor to implement a cloud shape.
Functions
mxCloudConstructs a new cloud shape.
redrawPathDraws the path for this shape.
+ +

Functions

+ +

mxCloud

function mxCloud(bounds,
fill,
stroke,
strokewidth)

Constructs a new cloud shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

redrawPath

mxCloud.prototype.redrawPath = function(path,
x,
y,
w,
h)

Draws the path for this shape.  This method uses the mxPath abstraction to paint the shape for VML and SVG.

+ +
+ + + + + + + + + + +
Extends mxShape to implement an actor shape.
function mxCloud(bounds,
fill,
stroke,
strokewidth)
Constructs a new cloud shape.
mxCloud.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
Name under which mxCloud is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
An abstraction for creating VML and SVG paths.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxConnector-js.html b/docs/js-api/files/shape/mxConnector-js.html new file mode 100644 index 000000000..4700d5da4 --- /dev/null +++ b/docs/js-api/files/shape/mxConnector-js.html @@ -0,0 +1,73 @@ + + +mxConnector + + + + + + + + + +

mxConnector

Extends mxShape to implement a connector shape.  The connector shape allows for arrow heads on either side.

This shape is registered under mxConstants.SHAPE_CONNECTOR in mxCellRenderer.

Summary
mxConnectorExtends mxShape to implement a connector shape.
Functions
mxConnectorConstructs a new connector shape.
Variables
vmlNodesAdds local references to mxShape.vmlNodes.
mixedModeHtmlOverrides the parent value with false, meaning it will draw in VML in mixed Html mode.
preferModeHtmlOverrides the parent value with false, meaning it will draw as VML in prefer Html mode.
allowCrispMarkersSpecifies if mxShape.crisp should be allowed for markers.
Functions
configureHtmlShapeOverrides mxShape.configureHtmlShape to clear the border and background.
createVmlCreates and returns the VML node to represent this shape.
updateVmlMarkerOpacityUpdates the opacity for the markers in VML.
redrawVmlRedraws this VML shape by invoking <updateVmlShape> on this.node.
redrawVmlRedraws this VML shape by invoking <updateVmlShape> on this.node.
createSvgCreates and returns the SVG node to represent this shape.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
createDashPatternCreates a dash pattern for the given factor.
redrawMarkerUpdates the given SVG or VML marker.
+ +

Functions

+ +

mxConnector

function mxConnector(points,
stroke,
strokewidth)

Constructs a new connector shape.

Parameters

pointsArray of mxPoints that define the points.  This is stored in mxShape.points.
strokeString that defines the stroke color.  This is stored in <stroke>.  Default is ‘black’.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

Variables

+ +

vmlNodes

mxConnector.prototype.vmlNodes

Adds local references to mxShape.vmlNodes.

+ +

mixedModeHtml

mxConnector.prototype.mixedModeHtml

Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.

+ +

preferModeHtml

mxConnector.prototype.preferModeHtml

Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.

+ +

allowCrispMarkers

mxConnector.prototype.allowCrispMarkers

Specifies if mxShape.crisp should be allowed for markers.  Default is false.

+ +

Functions

+ +

configureHtmlShape

mxConnector.prototype.configureHtmlShape = function(node)

Overrides mxShape.configureHtmlShape to clear the border and background.

+ +

createVml

mxConnector.prototype.createVml = function()

Creates and returns the VML node to represent this shape.

+ +

updateVmlMarkerOpacity

mxConnector.prototype.updateVmlMarkerOpacity = function()

Updates the opacity for the markers in VML.

+ +

redrawVml

Redraws this VML shape by invoking <updateVmlShape> on this.node.

+ +

redrawVml

mxConnector.prototype.redrawVml = function()

Redraws this VML shape by invoking <updateVmlShape> on this.node.

+ +

createSvg

mxConnector.prototype.createSvg = function()

Creates and returns the SVG node to represent this shape.

+ +

redrawSvg

mxConnector.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +

createDashPattern

mxConnector.prototype.createDashPattern = function(factor)

Creates a dash pattern for the given factor.

+ +

redrawMarker

mxConnector.prototype.redrawMarker = function(node,
type,
p0,
pe,
color,
size)

Updates the given SVG or VML marker.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxConnector(points,
stroke,
strokewidth)
Constructs a new connector shape.
mxConnector.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxShape.prototype.vmlNodes
Array if VML node names to fix in IE8 standards mode.
mxConnector.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxConnector.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxConnector.prototype.allowCrispMarkers
Specifies if mxShape.crisp should be allowed for markers.
mxShape.prototype.crisp
Special attribute for SVG rendering to set the shape-rendering attribute to crispEdges in the output.
mxConnector.prototype.configureHtmlShape = function(node)
Overrides mxShape.configureHtmlShape to clear the border and background.
mxShape.prototype.configureHtmlShape = function(node)
Configures the specified HTML node by applying the current color, bounds, shadow, opacity etc.
mxConnector.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxConnector.prototype.updateVmlMarkerOpacity = function()
Updates the opacity for the markers in VML.
mxConnector.prototype.redrawVml = function()
Redraws this VML shape by invoking updateVmlShape on this.node.
mxConnector.prototype.createSvg = function()
Creates and returns the SVG node to represent this shape.
mxConnector.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxConnector.prototype.createDashPattern = function(factor)
Creates a dash pattern for the given factor.
mxConnector.prototype.redrawMarker = function(node,
type,
p0,
pe,
color,
size)
Updates the given SVG or VML marker.
Name under which mxConnector is registered in mxCellRenderer.
Renders cells into a document object model.
Implements a 2-dimensional vector with double precision coordinates.
mxShape.prototype.points
Holds the array of mxPoints that specify the points of this shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxCylinder-js.html b/docs/js-api/files/shape/mxCylinder-js.html new file mode 100644 index 000000000..d78cb8c52 --- /dev/null +++ b/docs/js-api/files/shape/mxCylinder-js.html @@ -0,0 +1,71 @@ + + +mxCylinder + + + + + + + + + +

mxCylinder

Extends mxShape to implement an cylinder shape.  If a custom shape with one filled area and an overlay path is needed, then this shape’s redrawPath should be overridden.  This shape is registered under mxConstants.SHAPE_CYLINDER in mxCellRenderer.

Summary
mxCylinderExtends mxShape to implement an cylinder shape.
Functions
mxCylinderConstructs a new cylinder shape.
Variables
vmlNodesAdds local references to mxShape.vmlNodes.
mixedModeHtmlOverrides the parent value with false, meaning it will draw in VML in mixed Html mode.
preferModeHtmlOverrides the parent value with false, meaning it will draw as VML in prefer Html mode.
strokedBackgroundSpecifies if the background should be stroked.
maxHeightDefines the maximum height of the top and bottom part of the cylinder shape.
Functions
createOverrides the method to make sure the <stroke> is never null.
reconfigureOverrides the method to make sure the <stroke> is applied to the foreground.
createVmlCreates and returns the VML node to represent this shape.
redrawVmlUpdates the VML node(s) to reflect the latest bounds and scale.
createSvgCreates and returns the SVG node(s) to represent this shape.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
redrawPathDraws the path for this shape.
+ +

Functions

+ +

mxCylinder

function mxCylinder(bounds,
fill,
stroke,
strokewidth)

Constructs a new cylinder shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

Variables

+ +

vmlNodes

mxCylinder.prototype.vmlNodes

Adds local references to mxShape.vmlNodes.

+ +

mixedModeHtml

mxCylinder.prototype.mixedModeHtml

Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.

+ +

preferModeHtml

mxCylinder.prototype.preferModeHtml

Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.

+ +

strokedBackground

mxCylinder.prototype.strokedBackground

Specifies if the background should be stroked.  Default is true.

+ +

maxHeight

mxCylinder.prototype.maxHeight

Defines the maximum height of the top and bottom part of the cylinder shape.

+ +

Functions

+ +

create

mxCylinder.prototype.create = function(container)

Overrides the method to make sure the <stroke> is never null.  If it is null is will be assigned the <fill> color.

+ +

reconfigure

mxCylinder.prototype.reconfigure = function()

Overrides the method to make sure the <stroke> is applied to the foreground.

+ +

createVml

mxCylinder.prototype.createVml = function()

Creates and returns the VML node to represent this shape.

+ +

redrawVml

mxCylinder.prototype.redrawVml = function()

Updates the VML node(s) to reflect the latest bounds and scale.

+ +

createSvg

mxCylinder.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawSvg

mxCylinder.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +

redrawPath

mxCylinder.prototype.redrawPath = function(path,
x,
y,
w,
h,
isForeground)

Draws the path for this shape.  This method uses the mxPath abstraction to paint the shape for VML and SVG.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxCylinder(bounds,
fill,
stroke,
strokewidth)
Constructs a new cylinder shape.
mxCylinder.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxShape.prototype.vmlNodes
Array if VML node names to fix in IE8 standards mode.
mxCylinder.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxCylinder.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxCylinder.prototype.strokedBackground
Specifies if the background should be stroked.
mxCylinder.prototype.maxHeight
Defines the maximum height of the top and bottom part of the cylinder shape.
mxCylinder.prototype.create = function(container)
Overrides the method to make sure the stroke is never null.
mxCylinder.prototype.reconfigure = function()
Overrides the method to make sure the stroke is applied to the foreground.
mxCylinder.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxCylinder.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxCylinder.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxCylinder.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxCylinder.prototype.redrawPath = function(path,
x,
y,
w,
h,
isForeground)
Draws the path for this shape.
Name under which mxCylinder is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
An abstraction for creating VML and SVG paths.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxDoubleEllipse-js.html b/docs/js-api/files/shape/mxDoubleEllipse-js.html new file mode 100644 index 000000000..6904080e6 --- /dev/null +++ b/docs/js-api/files/shape/mxDoubleEllipse-js.html @@ -0,0 +1,63 @@ + + +mxDoubleEllipse + + + + + + + + + +

mxDoubleEllipse

Extends mxShape to implement a double ellipse shape.  This shape is registered under mxConstants.SHAPE_DOUBLE_ELLIPSE in mxCellRenderer.

Summary
mxDoubleEllipseExtends mxShape to implement a double ellipse shape.
Functions
mxDoubleEllipseConstructs a new ellipse shape.
Variables
vmlNodesAdds local references to mxShape.vmlNodes.
mixedModeHtmlOverrides the parent value with false, meaning it will draw in VML in mixed Html mode.
preferModeHtmlOverrides the parent value with false, meaning it will draw as VML in prefer Html mode.
Functions
createVmlCreates and returns the VML node to represent this shape.
redrawVmlUpdates the VML node(s) to reflect the latest bounds and scale.
createSvgCreates and returns the SVG node(s) to represent this shape.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
updateSvgNodeUpdates the given node to reflect the new <bounds> and <scale>.
+ +

Functions

+ +

mxDoubleEllipse

function mxDoubleEllipse(bounds,
fill,
stroke,
strokewidth)

Constructs a new ellipse shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

Variables

+ +

vmlNodes

mxDoubleEllipse.prototype.vmlNodes

Adds local references to mxShape.vmlNodes.

+ +

mixedModeHtml

mxDoubleEllipse.prototype.mixedModeHtml

Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.

+ +

preferModeHtml

mxDoubleEllipse.prototype.preferModeHtml

Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.

+ +

Functions

+ +

createVml

mxDoubleEllipse.prototype.createVml = function()

Creates and returns the VML node to represent this shape.

+ +

redrawVml

mxDoubleEllipse.prototype.redrawVml = function()

Updates the VML node(s) to reflect the latest bounds and scale.

+ +

createSvg

mxDoubleEllipse.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawSvg

mxDoubleEllipse.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +

updateSvgNode

mxDoubleEllipse.prototype.updateSvgNode = function(node,
inset)

Updates the given node to reflect the new <bounds> and <scale>.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxDoubleEllipse(bounds,
fill,
stroke,
strokewidth)
Constructs a new ellipse shape.
mxDoubleEllipse.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxShape.prototype.vmlNodes
Array if VML node names to fix in IE8 standards mode.
mxDoubleEllipse.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxDoubleEllipse.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxDoubleEllipse.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxDoubleEllipse.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxDoubleEllipse.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxDoubleEllipse.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxDoubleEllipse.prototype.updateSvgNode = function(node,
inset)
Updates the given node to reflect the new bounds and scale.
Name under which mxDoubleEllipse is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxEllipse-js.html b/docs/js-api/files/shape/mxEllipse-js.html new file mode 100644 index 000000000..afe42de81 --- /dev/null +++ b/docs/js-api/files/shape/mxEllipse-js.html @@ -0,0 +1,59 @@ + + +mxEllipse + + + + + + + + + +

mxEllipse

Extends mxShape to implement an ellipse shape.  This shape is registered under mxConstants.SHAPE_ELLIPSE in mxCellRenderer.

Summary
mxEllipseExtends mxShape to implement an ellipse shape.
Functions
mxEllipseConstructs a new ellipse shape.
Variables
mixedModeHtmlOverrides the parent value with false, meaning it will draw in VML in mixed Html mode.
preferModeHtmlOverrides the parent value with false, meaning it will draw as VML in prefer Html mode.
Functions
createVmlCreates and returns the VML node to represent this shape.
createSvgCreates and returns the SVG node(s) to represent this shape.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
updateSvgNodeUpdates the given node to reflect the new <bounds> and <scale>.
+ +

Functions

+ +

mxEllipse

function mxEllipse(bounds,
fill,
stroke,
strokewidth)

Constructs a new ellipse shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

Variables

+ +

mixedModeHtml

mxEllipse.prototype.mixedModeHtml

Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.

+ +

preferModeHtml

mxEllipse.prototype.preferModeHtml

Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.

+ +

Functions

+ +

createVml

mxEllipse.prototype.createVml = function()

Creates and returns the VML node to represent this shape.

+ +

createSvg

mxEllipse.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawSvg

mxEllipse.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +

updateSvgNode

mxEllipse.prototype.updateSvgNode = function(node)

Updates the given node to reflect the new <bounds> and <scale>.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxEllipse(bounds,
fill,
stroke,
strokewidth)
Constructs a new ellipse shape.
mxEllipse.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxEllipse.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxEllipse.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxEllipse.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxEllipse.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxEllipse.prototype.updateSvgNode = function(node)
Updates the given node to reflect the new bounds and scale.
Name under which mxEllipse is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxHexagon-js.html b/docs/js-api/files/shape/mxHexagon-js.html new file mode 100644 index 000000000..92d5c1b0c --- /dev/null +++ b/docs/js-api/files/shape/mxHexagon-js.html @@ -0,0 +1,45 @@ + + +mxHexagon + + + + + + + + + +

mxHexagon

Implementation of the hexagon shape.

Summary
mxHexagonImplementation of the hexagon shape.
Functions
mxHexagonConstructs a new hexagon shape.
redrawPathDraws the path for this shape.
+ +

Functions

+ +

mxHexagon

function mxHexagon()

Constructs a new hexagon shape.

+ +

redrawPath

mxHexagon.prototype.redrawPath = function(path,
x,
y,
w,
h)

Draws the path for this shape.  This method uses the mxPath abstraction to paint the shape for VML and SVG.

+ +
+ + + + + + + + + + +
function mxHexagon()
Constructs a new hexagon shape.
mxHexagon.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
An abstraction for creating VML and SVG paths.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxImageShape-js.html b/docs/js-api/files/shape/mxImageShape-js.html new file mode 100644 index 000000000..42b124de8 --- /dev/null +++ b/docs/js-api/files/shape/mxImageShape-js.html @@ -0,0 +1,67 @@ + + +mxImageShape + + + + + + + + + +

mxImageShape

Extends mxShape to implement an image shape.  This shape is registered under mxConstants.SHAPE_IMAGE in mxCellRenderer.

Summary
mxImageShapeExtends mxShape to implement an image shape.
Functions
mxImageShapeConstructs a new image shape.
Variables
crispDisables crisp rendering via attributes.
preserveImageAspectSwitch to preserve image aspect.
Functions
applyOverrides mxShape.apply to replace the fill and stroke colors with the respective values from mxConstants.STYLE_IMAGE_BACKGROUND and mxConstants.STYLE_IMAGE_BORDER.
createOverride to create HTML regardless of gradient and rounded property.
updateAspectUpdates the aspect of the image for the given image width and height.
scheduleUpdateAspectSchedules an asynchronous updateAspect using the current <image>.
redrawOverrides mxShape.redraw to preserve the aspect ratio of images.
configureTransparentBackgroundWorkaround for security warning in IE if this is used in the overlay pane of a diagram.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
configureSvgShapeExtends method to set opacity on images.
+ +

Functions

+ +

mxImageShape

function mxImageShape(bounds,
image,
fill,
stroke,
strokewidth)

Constructs a new image shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
imageString that specifies the URL of the image.  This is stored in <image>.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 0.  This is stored in <strokewidth>.
+ +

Variables

+ +

crisp

mxImageShape.prototype.crisp

Disables crisp rendering via attributes.  Image quality defines the rendering quality.  Default is false.

+ +

preserveImageAspect

mxImageShape.prototype.preserveImageAspect

Switch to preserve image aspect.  Default is true.

+ +

Functions

+ +

apply

mxImageShape.prototype.apply = function(state)

Overrides mxShape.apply to replace the fill and stroke colors with the respective values from mxConstants.STYLE_IMAGE_BACKGROUND and mxConstants.STYLE_IMAGE_BORDER.

Applies the style of the given mxCellState to the shape.  This implementation assigns the following styles to local fields:

Parameters

statemxCellState of the corresponding cell.
+ +

create

mxImageShape.prototype.create = function()

Override to create HTML regardless of gradient and rounded property.

+ +

updateAspect

mxImageShape.prototype.updateAspect = function(w,
h)

Updates the aspect of the image for the given image width and height.

+ +

scheduleUpdateAspect

mxImageShape.prototype.scheduleUpdateAspect = function()

Schedules an asynchronous updateAspect using the current <image>.

+ +

redraw

mxImageShape.prototype.redraw = function()

Overrides mxShape.redraw to preserve the aspect ratio of images.

+ +

configureTransparentBackground

mxImageShape.prototype.configureTransparentBackground = function(node)

Workaround for security warning in IE if this is used in the overlay pane of a diagram.

+ +

redrawSvg

mxImageShape.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +

configureSvgShape

mxImageShape.prototype.configureSvgShape = function(node)

Extends method to set opacity on images.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxImageShape(bounds,
image,
fill,
stroke,
strokewidth)
Constructs a new image shape.
mxImageShape.prototype.crisp
Disables crisp rendering via attributes.
mxImageShape.prototype.preserveImageAspect
Switch to preserve image aspect.
mxImageShape.prototype.apply = function(state)
Overrides mxShape.apply to replace the fill and stroke colors with the respective values from mxConstants.STYLE_IMAGE_BACKGROUND and mxConstants.STYLE_IMAGE_BORDER.
mxShape.prototype.apply = function(state)
Applies the style of the given mxCellState to the shape.
Defines the key for the image background color.
Defines the key for the image border color.
mxImageShape.prototype.create = function()
Override to create HTML regardless of gradient and rounded property.
mxImageShape.prototype.updateAspect = function(w,
h)
Updates the aspect of the image for the given image width and height.
mxImageShape.prototype.scheduleUpdateAspect = function()
Schedules an asynchronous updateAspect using the current image.
mxImageShape.prototype.redraw = function()
Overrides mxShape.redraw to preserve the aspect ratio of images.
mxShape.prototype.redraw = function()
Invokes redrawSvg, redrawVml or redrawHtml depending on the dialect of the shape.
mxImageShape.prototype.configureTransparentBackground = function(node)
Workaround for security warning in IE if this is used in the overlay pane of a diagram.
mxImageShape.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxImageShape.prototype.configureSvgShape = function(node)
Extends method to set opacity on images.
Name under which mxImageShape is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
Represents the current state of a cell in a given mxGraphView.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxLabel-js.html b/docs/js-api/files/shape/mxLabel-js.html new file mode 100644 index 000000000..988d62c65 --- /dev/null +++ b/docs/js-api/files/shape/mxLabel-js.html @@ -0,0 +1,73 @@ + + +mxLabel + + + + + + + + + +

mxLabel

Extends mxShape to implement an image shape with a label.  This shape is registered under mxConstants.SHAPE_LABEL in mxCellRenderer.

Summary
mxLabelExtends mxShape to implement an image shape with a label.
Functions
mxLabelConstructs a new label shape.
Variables
vmlNodesAdds local references to mxShape.vmlNodes.
imageSizeDefault width and height for the image.
spacingDefault value for spacing.
indicatorSizeDefault width and height for the indicicator.
indicatorSpacingDefault spacing between image and indicator.
opaqueVmlImagesSpecifies if all VML images should be rendered without transparency, that is, if the current opacity should be ignored for images.
Functions
initInitializes the shape and adds it to the container.
reconfigureReconfigures this shape.
createHtmlCreates and returns the HTML node to represent this shape.
createVmlCreates and returns the VML node to represent this shape.
createVmlImageCreates an image node for the given image src and opacity to be used in VML.
createSvgCreates and returns the SVG node to represent this shape.
redrawOverrides redraw to define a unified implementation for redrawing all supported dialects.
+ +

Functions

+ +

mxLabel

function mxLabel(bounds,
fill,
stroke,
strokewidth)

Constructs a new label shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

Variables

+ +

vmlNodes

mxLabel.prototype.vmlNodes

Adds local references to mxShape.vmlNodes.

+ +

imageSize

mxLabel.prototype.imageSize

Default width and height for the image.  Default is mxConstants.DEFAULT_IMAGESIZE.

+ +

spacing

mxLabel.prototype.spacing

Default value for spacing.  Default is 2.

+ +

indicatorSize

mxLabel.prototype.indicatorSize

Default width and height for the indicicator.  Default is 10.

+ +

indicatorSpacing

mxLabel.prototype.indicatorSpacing

Default spacing between image and indicator.  Default is 2.

+ +

opaqueVmlImages

mxLabel.prototype.opaqueVmlImages

Specifies if all VML images should be rendered without transparency, that is, if the current opacity should be ignored for images.  Default is false.

+ +

Functions

+ +

init

mxLabel.prototype.init = function(container)

Initializes the shape and adds it to the container.  This function is overridden so that the node is already in the DOM when the indicator is added.  This is required to access the ownerSVGelement of the container in the init function of the indicator.

+ +

reconfigure

mxLabel.prototype.reconfigure = function()

Reconfigures this shape.  This will update the colors of the indicator and reconfigure it if required.

+ +

createHtml

mxLabel.prototype.createHtml = function()

Creates and returns the HTML node to represent this shape.

+ +

createVml

mxLabel.prototype.createVml = function()

Creates and returns the VML node to represent this shape.

+ +

createVmlImage

mxLabel.prototype.createVmlImage = function(src,
opacity)

Creates an image node for the given image src and opacity to be used in VML.

+ +

createSvg

mxLabel.prototype.createSvg = function()

Creates and returns the SVG node to represent this shape.

+ +

redraw

mxLabel.prototype.redraw = function()

Overrides redraw to define a unified implementation for redrawing all supported dialects.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxLabel(bounds,
fill,
stroke,
strokewidth)
Constructs a new label shape.
mxLabel.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxShape.prototype.vmlNodes
Array if VML node names to fix in IE8 standards mode.
mxLabel.prototype.imageSize
Default width and height for the image.
mxLabel.prototype.spacing
Default value for spacing.
mxLabel.prototype.indicatorSize
Default width and height for the indicicator.
mxLabel.prototype.indicatorSpacing
Default spacing between image and indicator.
mxLabel.prototype.opaqueVmlImages
Specifies if all VML images should be rendered without transparency, that is, if the current opacity should be ignored for images.
mxLabel.prototype.init = function(container)
Initializes the shape and adds it to the container.
mxLabel.prototype.reconfigure = function()
Reconfigures this shape.
mxLabel.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxLabel.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxLabel.prototype.createVmlImage = function(src,
opacity)
Creates an image node for the given image src and opacity to be used in VML.
mxLabel.prototype.createSvg = function()
Creates and returns the SVG node to represent this shape.
mxLabel.prototype.redraw = function()
Overrides redraw to define a unified implementation for redrawing all supported dialects.
Name under which mxLabel is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
Defines the default width and height for images used in the label shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxLine-js.html b/docs/js-api/files/shape/mxLine-js.html new file mode 100644 index 000000000..939598922 --- /dev/null +++ b/docs/js-api/files/shape/mxLine-js.html @@ -0,0 +1,65 @@ + + +mxLine + + + + + + + + + +

mxLine

Extends mxShape to implement a horizontal line shape.  This shape is registered under mxConstants.SHAPE_LINE in mxCellRenderer.

Summary
mxLineExtends mxShape to implement a horizontal line shape.
Functions
mxLineConstructs a new line shape.
Variables
vmlNodesAdds local references to mxShape.vmlNodes.
mixedModeHtmlOverrides the parent value with false, meaning it will draw in VML in mixed Html mode.
preferModeHtmlOverrides the parent value with false, meaning it will draw as VML in prefer Html mode.
Functions
cloneOverrides the clone method to add special fields.
createVmlCreates and returns the VML node to represent this shape.
redrawVmlRedraws this VML shape by invoking <updateVmlShape> on this.node.
redrawVmlUpdates the VML node(s) to reflect the latest bounds and scale.
createSvgCreates and returns the SVG node(s) to represent this shape.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
+ +

Functions

+ +

mxLine

function mxLine(bounds,
stroke,
strokewidth)

Constructs a new line shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
strokeString that defines the stroke color.  Default is ‘black’.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

Variables

+ +

vmlNodes

mxLine.prototype.vmlNodes

Adds local references to mxShape.vmlNodes.

+ +

mixedModeHtml

mxLine.prototype.mixedModeHtml

Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.

+ +

preferModeHtml

mxLine.prototype.preferModeHtml

Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.

+ +

Functions

+ +

clone

mxLine.prototype.clone = function()

Overrides the clone method to add special fields.

+ +

createVml

mxLine.prototype.createVml = function()

Creates and returns the VML node to represent this shape.

+ +

redrawVml

Redraws this VML shape by invoking <updateVmlShape> on this.node.

+ +

redrawVml

mxLine.prototype.redrawVml = function()

Updates the VML node(s) to reflect the latest bounds and scale.

+ +

createSvg

mxLine.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawSvg

mxLine.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxLine(bounds,
stroke,
strokewidth)
Constructs a new line shape.
mxLine.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxShape.prototype.vmlNodes
Array if VML node names to fix in IE8 standards mode.
mxLine.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxLine.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxLine.prototype.clone = function()
Overrides the clone method to add special fields.
mxLine.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxLine.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxLine.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxLine.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
Name under which mxLine is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxMarker-js.html b/docs/js-api/files/shape/mxMarker-js.html new file mode 100644 index 000000000..7c7446b4b --- /dev/null +++ b/docs/js-api/files/shape/mxMarker-js.html @@ -0,0 +1,47 @@ + + +mxMarker + + + + + + + + + +

mxMarker

A static class that implements all markers for VML and SVG using a registry.  NOTE: The signatures in this class will change.

Summary
mxMarkerA static class that implements all markers for VML and SVG using a registry.
Variables
markersMaps from markers names to functions to paint the markers.
Functions
paintMarkerPaints the given marker.
+ +

Variables

+ +

markers

Maps from markers names to functions to paint the markers.

+ +

Functions

+ +

paintMarker

paintMarker: function(node,
type,
p0,
pe,
color,
strokewidth,
size,
scale,
x0,
y0,
source,
style)

Paints the given marker.

+ +
+ + + + + + + + + + +
paintMarker: function(node,
type,
p0,
pe,
color,
strokewidth,
size,
scale,
x0,
y0,
source,
style)
Paints the given marker.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxPolyline-js.html b/docs/js-api/files/shape/mxPolyline-js.html new file mode 100644 index 000000000..897d75ae8 --- /dev/null +++ b/docs/js-api/files/shape/mxPolyline-js.html @@ -0,0 +1,51 @@ + + +mxPolyline + + + + + + + + + +

mxPolyline

Extends mxShape to implement a polyline (a line with multiple points).  This shape is registered under <mxConstants.SHAPE_POLYLINE> in mxCellRenderer.

Summary
mxPolylineExtends mxShape to implement a polyline (a line with multiple points).
Functions
mxPolylineConstructs a new polyline shape.
createOverride to create HTML regardless of gradient and rounded property.
redrawVmlOverrides the method to update the bounds if they have not been assigned.
createSvgCreates and returns the SVG node(s) to represent this shape.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
+ +

Functions

+ +

mxPolyline

function mxPolyline(points,
stroke,
strokewidth)

Constructs a new polyline shape.

Parameters

pointsArray of mxPoints that define the points.  This is stored in mxShape.points.
strokeString that defines the stroke color.  Default is ‘black’.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

create

mxPolyline.prototype.create = function()

Override to create HTML regardless of gradient and rounded property.

+ +

redrawVml

mxPolyline.prototype.redrawVml = function()

Overrides the method to update the bounds if they have not been assigned.

+ +

createSvg

mxPolyline.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawSvg

mxPolyline.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxPolyline(points,
stroke,
strokewidth)
Constructs a new polyline shape.
mxPolyline.prototype.create = function()
Override to create HTML regardless of gradient and rounded property.
mxPolyline.prototype.redrawVml = function()
Overrides the method to update the bounds if they have not been assigned.
mxPolyline.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxPolyline.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
Renders cells into a document object model.
Implements a 2-dimensional vector with double precision coordinates.
mxShape.prototype.points
Holds the array of mxPoints that specify the points of this shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxRectangleShape-js.html b/docs/js-api/files/shape/mxRectangleShape-js.html new file mode 100644 index 000000000..4e025267a --- /dev/null +++ b/docs/js-api/files/shape/mxRectangleShape-js.html @@ -0,0 +1,49 @@ + + +mxRectangleShape + + + + + + + + + +

mxRectangleShape

Extends mxShape to implement a rectangle shape.  This shape is registered under mxConstants.SHAPE_RECTANGLE in mxCellRenderer.

Summary
mxRectangleShapeExtends mxShape to implement a rectangle shape.
Functions
mxRectangleShapeConstructs a new rectangle shape.
createHtmlCreates and returns the HTML node to represent this shape.
createVmlCreates and returns the VML node to represent this shape.
createSvgCreates and returns the SVG node to represent this shape.
+ +

Functions

+ +

mxRectangleShape

function mxRectangleShape(bounds,
fill,
stroke,
strokewidth)

Constructs a new rectangle shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

createHtml

mxRectangleShape.prototype.createHtml = function()

Creates and returns the HTML node to represent this shape.

+ +

createVml

mxRectangleShape.prototype.createVml = function()

Creates and returns the VML node to represent this shape.

+ +

createSvg

mxRectangleShape.prototype.createSvg = function()

Creates and returns the SVG node to represent this shape.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxRectangleShape(bounds,
fill,
stroke,
strokewidth)
Constructs a new rectangle shape.
mxRectangleShape.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxRectangleShape.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxRectangleShape.prototype.createSvg = function()
Creates and returns the SVG node to represent this shape.
Name under which mxRectangleShape is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxRhombus-js.html b/docs/js-api/files/shape/mxRhombus-js.html new file mode 100644 index 000000000..ec985062d --- /dev/null +++ b/docs/js-api/files/shape/mxRhombus-js.html @@ -0,0 +1,65 @@ + + +mxRhombus + + + + + + + + + +

mxRhombus

Extends mxShape to implement a rhombus (aka diamond) shape.  This shape is registered under mxConstants.SHAPE_RHOMBUS in mxCellRenderer.

Summary
mxRhombusExtends mxShape to implement a rhombus (aka diamond) shape.
Functions
mxRhombusConstructs a new rhombus shape.
Variables
mixedModeHtmlOverrides the parent value with false, meaning it will draw in VML in mixed Html mode.
preferModeHtmlOverrides the parent value with false, meaning it will draw as VML in prefer Html mode.
Functions
createHtmlCreates and returns the HTML node to represent this shape.
createVmlCreates and returns the VML node(s) to represent this shape.
createSvgCreates and returns the SVG node(s) to represent this shape.
redrawVmlUpdates the VML node(s) to reflect the latest bounds and scale.
redrawHtmlUpdates the HTML node(s) to reflect the latest bounds and scale.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
createSvgSpanUpdates the path for the given SVG node.
+ +

Functions

+ +

mxRhombus

function mxRhombus(bounds,
fill,
stroke,
strokewidth)

Constructs a new rhombus shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

Variables

+ +

mixedModeHtml

mxRhombus.prototype.mixedModeHtml

Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.

+ +

preferModeHtml

mxRhombus.prototype.preferModeHtml

Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.

+ +

Functions

+ +

createHtml

mxRhombus.prototype.createHtml = function()

Creates and returns the HTML node to represent this shape.

+ +

createVml

mxRhombus.prototype.createVml = function()

Creates and returns the VML node(s) to represent this shape.

+ +

createSvg

mxRhombus.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawVml

mxRhombus.prototype.redrawVml = function()

Updates the VML node(s) to reflect the latest bounds and scale.

+ +

redrawHtml

mxRhombus.prototype.redrawHtml = function()

Updates the HTML node(s) to reflect the latest bounds and scale.

+ +

redrawSvg

mxRhombus.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +

createSvgSpan

Updates the path for the given SVG node.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxRhombus(bounds,
fill,
stroke,
strokewidth)
Constructs a new rhombus shape.
mxRhombus.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxRhombus.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxRhombus.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxRhombus.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxRhombus.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxRhombus.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxRhombus.prototype.redrawHtml = function()
Updates the HTML node(s) to reflect the latest bounds and scale.
mxRhombus.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
Name under which mxRhombus is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxShape-js.html b/docs/js-api/files/shape/mxShape-js.html new file mode 100644 index 000000000..029bd1c29 --- /dev/null +++ b/docs/js-api/files/shape/mxShape-js.html @@ -0,0 +1,167 @@ + + +mxShape + + + + + + + + + +

mxShape

Base class for all shapes.  A shape in mxGraph is a separate implementation for SVG, VML and HTML.  Which implementation to use is controlled by the dialect property which is assigned from within the mxCellRenderer when the shape is created.  The dialect must be assigned for a shape, and it does normally depend on the browser and the confiuration of the graph (see mxGraph rendering hint).

For each supported shape in SVG and VML, a corresponding shape exists in mxGraph, namely for text, image, rectangle, rhombus, ellipse and polyline.  The other shapes are a combination of these shapes (eg. label and swimlane) or they consist of one or more (filled) path objects (eg. actor and cylinder).  The HTML implementation is optional but may be required for a HTML-only view of the graph.

Custom Shapes

To extend from this class, the basic code looks as follows.  In the special case where the custom shape consists only of one filled region or one filled region and an additional stroke the mxActor and mxCylinder should be subclassed, respectively.  These implement redrawPath in order to create the path expression for VML and SVG via a unified API (see mxPath).  mxCylinder.redrawPath has an additional boolean argument to draw the foreground and background separately.

function CustomShape() { }
+
+CustomShape.prototype = new mxShape();
+CustomShape.prototype.constructor = CustomShape;

To register a custom shape in an existing graph instance, one must register the shape under a new name in the graph’s cell renderer as follows:

graph.cellRenderer.registerShape('customShape', CustomShape);

The second argument is the name of the constructor.

In order to use the shape you can refer to the given name above in a stylesheet.  For example, to change the shape for the default vertex style, the following code is used:

var style = graph.getStylesheet().getDefaultVertexStyle();
+style[mxConstants.STYLE_SHAPE] = 'customShape';
Summary
mxShapeBase class for all shapes.
Functions
mxShapeConstructs a new shape.
Variables
SVG_STROKE_TOLERANCEEvent-tolerance for SVG strokes (in px).
scaleHolds the scale in which the shape is being painted.
dialectHolds the dialect in which the shape is to be painted.
crispSpecial attribute for SVG rendering to set the shape-rendering attribute to crispEdges in the output.
roundedCrispSvgSpecifies if crisp rendering should be enabled for rounded shapes.
mixedModeHtmlSpecifies if createHtml should be used in mixed Html mode.
preferModeHtmlSpecifies if createHtml should be used in prefer Html mode.
boundsHolds the mxRectangle that specifies the bounds of this shape.
pointsHolds the array of mxPoints that specify the points of this shape.
nodeHolds the outermost DOM node that represents this shape.
labelReference to the DOM node that should contain the label.
innerNodeHolds the DOM node that graphically represents this shape.
styleHolds the style of the cell state that corresponds to this shape.
startOffsetSpecifies the offset in pixels from the first point in points and the actual start of the shape.
endOffsetSpecifies the offset in pixels from the last point in points and the actual start of the shape.
vmlNodesArray if VML node names to fix in IE8 standards mode.
Functions
setCursorSets the cursor on the given shape.
getCursorReturns the current cursor.
initInitializes the shape by creaing the DOM node using create and adding it into the given container.
insertGradientInserts the given gradient node.
isMixedModeHtmlUsed to determine if a shape can be rendered using createHtml in mixed mode Html without compromising the display accuracy.
createCreates and returns the DOM node(s) for the shape in the given container.
createHtmlCreates and returns the HTML DOM node(s) to represent this shape.
destroyDestroys the shape by removing it from the DOM and releasing the DOM node associated with the shape using mxEvent.release.
applyApplies the style of the given mxCellState to the shape.
createSvgGroupCreates a SVG group element and adds the given shape as a child of the element.
createSvgShadowCreates a clone of the given node and configures the node’s color to use mxConstants.SHADOWCOLOR.
configureHtmlShapeConfigures the specified HTML node by applying the current color, bounds, shadow, opacity etc.
updateVmlFillUpdates the given VML fill node.
updateVmlStrokeNodeCreates the stroke node for VML.
updateVmlStrokeColorUpdates the VML stroke color for the given node.
configureVmlShapeConfigures the specified VML node by applying the current color, bounds, shadow, opacity etc.
createVmlShadowCreates the VML shadow node.
configureTransparentBackgroundHook to make the background of a shape transparent.
configureSvgShapeConfigures the specified SVG node by applying the current color, bounds, shadow, opacity etc.
getGradientIdCreates a unique ID for the gradient of this shape.
createSvgPipeCreates an invisible path which is used to increase the hit detection for edges in SVG.
createSvgGradientCreates a gradient object for SVG using the specified startcolor, endcolor and opacity.
createPointsCreates a path expression using the specified commands for this.points.
updateHtmlShapeUpdates the bounds or points of the specified HTML node and updates the inner children to reflect the changes.
updateVmlDashStyleUpdates the dashstyle in the stroke node.
updateVmlShapeUpdates the bounds or points of the specified VML node and updates the inner children to reflect the changes.
updateSvgBoundsUpdates the bounds of the given node using bounds.
updateSvgPathUpdates the path of the given node using points.
updateSvgScaleUpdates the properties of the given node that depend on the scale and checks the crisp rendering attribute.
updateSvgShapeUpdates the bounds or points of the specified SVG node and updates the inner children to reflect the changes.
getSvgShadowTransformReturns the current transformation for SVG shadows.
updateSvgTransformUpdates the tranform of the given node.
reconfigureReconfigures this shape.
redrawInvokes redrawSvg, redrawVml or redrawHtml depending on the dialect of the shape.
redrawSvgRedraws this SVG shape by invoking updateSvgShape on this.node, this.innerNode and this.shadowNode.
updateVmlGlassPaneDraws the glass overlay if mxConstants.STYLE_GLASS is 1.
updateSvgGlassPaneDraws the glass overlay if mxConstants.STYLE_GLASS is 1.
redrawVmlRedraws this VML shape by invoking updateVmlShape on this.node.
redrawHtmlRedraws this HTML shape by invoking updateHtmlShape on this.node.
getRotationReturns the current rotation including direction.
createPathCreates an mxPath for the specified format and origin.
redrawPathDraws the path for this shape.
+ +

Functions

+ +

mxShape

function mxShape()

Constructs a new shape.

+ +

Variables

+ +

SVG_STROKE_TOLERANCE

mxShape.prototype.SVG_STROKE_TOLERANCE

Event-tolerance for SVG strokes (in px).  Default is 8.

+ +

scale

mxShape.prototype.scale

Holds the scale in which the shape is being painted.

+ +

dialect

mxShape.prototype.dialect

Holds the dialect in which the shape is to be painted.  This can be one of the DIALECT constants in mxConstants.

+ +

crisp

mxShape.prototype.crisp

Special attribute for SVG rendering to set the shape-rendering attribute to crispEdges in the output.  This is ignored in IE.  Default is false.  To disable antialias in IE, the explorer.css file can be changed as follows:

[code] v\:* { behavior: url(#default#VML); antialias: false; } [/code]

+ +

roundedCrispSvg

mxShape.prototype.roundedCrispSvg

Specifies if crisp rendering should be enabled for rounded shapes.  Default is true.

+ +

mixedModeHtml

mxShape.prototype.mixedModeHtml

Specifies if createHtml should be used in mixed Html mode.  Default is true.

+ +

preferModeHtml

mxShape.prototype.preferModeHtml

Specifies if createHtml should be used in prefer Html mode.  Default is true.

+ +

bounds

mxShape.prototype.bounds

Holds the mxRectangle that specifies the bounds of this shape.

+ +

points

mxShape.prototype.points

Holds the array of mxPoints that specify the points of this shape.

+ +

node

mxShape.prototype.node

Holds the outermost DOM node that represents this shape.

+ +

label

mxShape.prototype.label

Reference to the DOM node that should contain the label.  This is null if the label should be placed inside node or innerNode.

+ +

innerNode

mxShape.prototype.innerNode

Holds the DOM node that graphically represents this shape.  This may be null if the outermost DOM node represents this shape.

+ +

style

mxShape.prototype.style

Holds the style of the cell state that corresponds to this shape.  This may be null if the shape is used directly, without a cell state.

+ +

startOffset

mxShape.prototype.startOffset

Specifies the offset in pixels from the first point in points and the actual start of the shape.

+ +

endOffset

mxShape.prototype.endOffset

Specifies the offset in pixels from the last point in points and the actual start of the shape.

+ +

vmlNodes

mxShape.prototype.vmlNodes

Array if VML node names to fix in IE8 standards mode.

+ +

Functions

+ +

setCursor

mxShape.prototype.setCursor = function(cursor)

Sets the cursor on the given shape.

Parameters

cursorThe cursor to be used.
+ +

getCursor

mxShape.prototype.getCursor = function()

Returns the current cursor.

+ +

init

mxShape.prototype.init = function(container)

Initializes the shape by creaing the DOM node using create and adding it into the given container.

Parameters

containerDOM node that will contain the shape.
+ +

insertGradient

mxShape.prototype.insertGradient = function(node)

Inserts the given gradient node.

+ +

isMixedModeHtml

mxShape.prototype.isMixedModeHtml = function()

Used to determine if a shape can be rendered using createHtml in mixed mode Html without compromising the display accuracy.  The default implementation will check if the shape is not rounded and has no gradient, and will use a DIV if that is the case.  It will also check if mxShape.mixedModeHtml is true, which is the default settings.  Subclassers can either override mixedModeHtml or this function if the result depends on dynamic values.  The graph’s dialect is available via dialect.

+ +

create

mxShape.prototype.create = function(container)

Creates and returns the DOM node(s) for the shape in the given container.  This implementation invokes <createSvg>, createHtml or <createVml> depending on the dialect and style settings.

Parameters

containerDOM node that will contain the shape.
+ +

createHtml

mxShape.prototype.createHtml = function()

Creates and returns the HTML DOM node(s) to represent this shape.  This implementation falls back to <createVml> so that the HTML creation is optional.

+ +

destroy

mxShape.prototype.destroy = function()

Destroys the shape by removing it from the DOM and releasing the DOM node associated with the shape using mxEvent.release.

+ +

apply

mxShape.prototype.apply = function(state)

Applies the style of the given mxCellState to the shape.  This implementation assigns the following styles to local fields:

This keeps a reference to the style.  If you need to keep a reference to the cell, you can override this method and store a local reference to state.cell or the mxCellState itself.

Parameters

statemxCellState of the corresponding cell.
+ +

createSvgGroup

mxShape.prototype.createSvgGroup = function(shape)

Creates a SVG group element and adds the given shape as a child of the element.  The child is stored in innerNode for later access.

+ +

createSvgShadow

mxShape.prototype.createSvgShadow = function(node)

Creates a clone of the given node and configures the node’s color to use mxConstants.SHADOWCOLOR.

+ +

configureHtmlShape

mxShape.prototype.configureHtmlShape = function(node)

Configures the specified HTML node by applying the current color, bounds, shadow, opacity etc.

+ +

updateVmlFill

mxShape.prototype.updateVmlFill = function(node,
c1,
c2,
dir,
alpha)

Updates the given VML fill node.

+ +

updateVmlStrokeNode

mxShape.prototype.updateVmlStrokeNode = function(parent)

Creates the stroke node for VML.

+ +

updateVmlStrokeColor

mxShape.prototype.updateVmlStrokeColor = function(node)

Updates the VML stroke color for the given node.

+ +

configureVmlShape

mxShape.prototype.configureVmlShape = function(node)

Configures the specified VML node by applying the current color, bounds, shadow, opacity etc.

+ +

createVmlShadow

mxShape.prototype.createVmlShadow = function(node)

Creates the VML shadow node.

+ +

configureTransparentBackground

mxShape.prototype.configureTransparentBackground = function(node)

Hook to make the background of a shape transparent.  This hook was added as a workaround for the “display non secure items” warning dialog in IE which appears if the background:url(transparent.gif) is used in the overlay pane of a diagram.  Since only mxImageShapes currently exist in the overlay pane this function is only overridden in mxImageShape.

+ +

configureSvgShape

mxShape.prototype.configureSvgShape = function(node)

Configures the specified SVG node by applying the current color, bounds, shadow, opacity etc.

+ +

getGradientId

mxShape.prototype.getGradientId = function(start,
end)

Creates a unique ID for the gradient of this shape.

+ +

createSvgPipe

mxShape.prototype.createSvgPipe = function(id,
start,
end,
node)

Creates an invisible path which is used to increase the hit detection for edges in SVG.

+ +

createSvgGradient

mxShape.prototype.createSvgGradient = function(id,
start,
end,
node)

Creates a gradient object for SVG using the specified startcolor, endcolor and opacity.

+ +

createPoints

mxShape.prototype.createPoints = function(moveCmd,
lineCmd,
curveCmd,
isRelative)

Creates a path expression using the specified commands for this.points.  If <isRounded> is true, then the path contains curves for the corners.

+ +

updateHtmlShape

mxShape.prototype.updateHtmlShape = function(node)

Updates the bounds or points of the specified HTML node and updates the inner children to reflect the changes.

+ +

updateVmlDashStyle

mxShape.prototype.updateVmlDashStyle = function()

Updates the dashstyle in the stroke node.

+ +

updateVmlShape

mxShape.prototype.updateVmlShape = function(node)

Updates the bounds or points of the specified VML node and updates the inner children to reflect the changes.

+ +

updateSvgBounds

mxShape.prototype.updateSvgBounds = function(node)

Updates the bounds of the given node using bounds.

+ +

updateSvgPath

mxShape.prototype.updateSvgPath = function(node)

Updates the path of the given node using points.

+ +

updateSvgScale

mxShape.prototype.updateSvgScale = function(node)

Updates the properties of the given node that depend on the scale and checks the crisp rendering attribute.

+ +

updateSvgShape

mxShape.prototype.updateSvgShape = function(node)

Updates the bounds or points of the specified SVG node and updates the inner children to reflect the changes.

+ +

getSvgShadowTransform

mxShape.prototype.getSvgShadowTransform = function(node,
shadow)

Returns the current transformation for SVG shadows.

+ +

updateSvgTransform

mxShape.prototype.updateSvgTransform = function(node,
shadow)

Updates the tranform of the given node.

+ +

reconfigure

mxShape.prototype.reconfigure = function()

Reconfigures this shape.  This will update the colors etc in addition to the bounds or points.

+ +

redraw

mxShape.prototype.redraw = function()

Invokes redrawSvg, redrawVml or redrawHtml depending on the dialect of the shape.

+ +

redrawSvg

mxShape.prototype.redrawSvg = function()

Redraws this SVG shape by invoking updateSvgShape on this.node, this.innerNode and this.shadowNode.

+ +

updateVmlGlassPane

mxShape.prototype.updateVmlGlassPane = function()

Draws the glass overlay if mxConstants.STYLE_GLASS is 1.

+ +

updateSvgGlassPane

mxShape.prototype.updateSvgGlassPane = function()

Draws the glass overlay if mxConstants.STYLE_GLASS is 1.

+ +

redrawVml

mxShape.prototype.redrawVml = function()

Redraws this VML shape by invoking updateVmlShape on this.node.

+ +

redrawHtml

mxShape.prototype.redrawHtml = function()

Redraws this HTML shape by invoking updateHtmlShape on this.node.

+ +

getRotation

mxShape.prototype.getRotation = function()

Returns the current rotation including direction.

+ +

createPath

mxShape.prototype.createPath = function(arg)

Creates an mxPath for the specified format and origin.  The path object is then passed to redrawPath and mxPath.getPath is returned.

+ +

redrawPath

mxShape.prototype.redrawPath = function(path,
x,
y,
w,
h)

Draws the path for this shape.  This implementation is empty.  See mxActor and mxCylinder for implementations.

+ +
+ + + + + + + + + + +
function mxShape()
Constructs a new shape.
mxShape.prototype.SVG_STROKE_TOLERANCE
Event-tolerance for SVG strokes (in px).
mxShape.prototype.scale
Holds the scale in which the shape is being painted.
mxShape.prototype.dialect
Holds the dialect in which the shape is to be painted.
mxShape.prototype.crisp
Special attribute for SVG rendering to set the shape-rendering attribute to crispEdges in the output.
mxShape.prototype.roundedCrispSvg
Specifies if crisp rendering should be enabled for rounded shapes.
mxShape.prototype.mixedModeHtml
Specifies if createHtml should be used in mixed Html mode.
mxShape.prototype.createHtml = function()
Creates and returns the HTML DOM node(s) to represent this shape.
mxShape.prototype.preferModeHtml
Specifies if createHtml should be used in prefer Html mode.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.points
Holds the array of mxPoints that specify the points of this shape.
Implements a 2-dimensional vector with double precision coordinates.
mxShape.prototype.node
Holds the outermost DOM node that represents this shape.
mxShape.prototype.label
Reference to the DOM node that should contain the label.
mxShape.prototype.innerNode
Holds the DOM node that graphically represents this shape.
mxShape.prototype.style
Holds the style of the cell state that corresponds to this shape.
mxShape.prototype.startOffset
Specifies the offset in pixels from the first point in points and the actual start of the shape.
mxShape.prototype.endOffset
Specifies the offset in pixels from the last point in points and the actual start of the shape.
mxShape.prototype.vmlNodes
Array if VML node names to fix in IE8 standards mode.
mxShape.prototype.setCursor = function(cursor)
Sets the cursor on the given shape.
mxShape.prototype.getCursor = function()
Returns the current cursor.
mxShape.prototype.init = function(container)
Initializes the shape by creaing the DOM node using create and adding it into the given container.
mxShape.prototype.create = function(container)
Creates and returns the DOM node(s) for the shape in the given container.
mxShape.prototype.insertGradient = function(node)
Inserts the given gradient node.
mxShape.prototype.isMixedModeHtml = function()
Used to determine if a shape can be rendered using createHtml in mixed mode Html without compromising the display accuracy.
mxShape.prototype.destroy = function()
Destroys the shape by removing it from the DOM and releasing the DOM node associated with the shape using mxEvent.release.
release: function(element)
Removes the known listeners from the given DOM node and its descendants.
mxShape.prototype.apply = function(state)
Applies the style of the given mxCellState to the shape.
Represents the current state of a cell in a given mxGraphView.
mxShape.prototype.createSvgGroup = function(shape)
Creates a SVG group element and adds the given shape as a child of the element.
mxShape.prototype.createSvgShadow = function(node)
Creates a clone of the given node and configures the node’s color to use mxConstants.SHADOWCOLOR.
Defines the color to be used to draw shadows in shapes and windows.
mxShape.prototype.configureHtmlShape = function(node)
Configures the specified HTML node by applying the current color, bounds, shadow, opacity etc.
mxShape.prototype.updateVmlFill = function(node,
c1,
c2,
dir,
alpha)
Updates the given VML fill node.
mxShape.prototype.updateVmlStrokeNode = function(parent)
Creates the stroke node for VML.
mxShape.prototype.updateVmlStrokeColor = function(node)
Updates the VML stroke color for the given node.
mxShape.prototype.configureVmlShape = function(node)
Configures the specified VML node by applying the current color, bounds, shadow, opacity etc.
mxShape.prototype.createVmlShadow = function(node)
Creates the VML shadow node.
mxShape.prototype.configureTransparentBackground = function(node)
Hook to make the background of a shape transparent.
mxShape.prototype.configureSvgShape = function(node)
Configures the specified SVG node by applying the current color, bounds, shadow, opacity etc.
mxShape.prototype.getGradientId = function(start,
end)
Creates a unique ID for the gradient of this shape.
mxShape.prototype.createSvgPipe = function(id,
start,
end,
node)
Creates an invisible path which is used to increase the hit detection for edges in SVG.
mxShape.prototype.createSvgGradient = function(id,
start,
end,
node)
Creates a gradient object for SVG using the specified startcolor, endcolor and opacity.
mxShape.prototype.createPoints = function(moveCmd,
lineCmd,
curveCmd,
isRelative)
Creates a path expression using the specified commands for this.points.
mxShape.prototype.updateHtmlShape = function(node)
Updates the bounds or points of the specified HTML node and updates the inner children to reflect the changes.
mxShape.prototype.updateVmlDashStyle = function()
Updates the dashstyle in the stroke node.
mxShape.prototype.updateVmlShape = function(node)
Updates the bounds or points of the specified VML node and updates the inner children to reflect the changes.
mxShape.prototype.updateSvgBounds = function(node)
Updates the bounds of the given node using bounds.
mxShape.prototype.updateSvgPath = function(node)
Updates the path of the given node using points.
mxShape.prototype.updateSvgScale = function(node)
Updates the properties of the given node that depend on the scale and checks the crisp rendering attribute.
mxShape.prototype.updateSvgShape = function(node)
Updates the bounds or points of the specified SVG node and updates the inner children to reflect the changes.
mxShape.prototype.getSvgShadowTransform = function(node,
shadow)
Returns the current transformation for SVG shadows.
mxShape.prototype.updateSvgTransform = function(node,
shadow)
Updates the tranform of the given node.
mxShape.prototype.reconfigure = function()
Reconfigures this shape.
mxShape.prototype.redraw = function()
Invokes redrawSvg, redrawVml or redrawHtml depending on the dialect of the shape.
mxShape.prototype.redrawSvg = function()
Redraws this SVG shape by invoking updateSvgShape on this.node, this.innerNode and this.shadowNode.
mxShape.prototype.redrawVml = function()
Redraws this VML shape by invoking updateVmlShape on this.node.
mxShape.prototype.redrawHtml = function()
Redraws this HTML shape by invoking updateHtmlShape on this.node.
mxShape.prototype.updateVmlGlassPane = function()
Draws the glass overlay if mxConstants.STYLE_GLASS is 1.
mxShape.prototype.updateSvgGlassPane = function()
Draws the glass overlay if mxConstants.STYLE_GLASS is 1.
mxShape.prototype.getRotation = function()
Returns the current rotation including direction.
mxShape.prototype.createPath = function(arg)
Creates an mxPath for the specified format and origin.
An abstraction for creating VML and SVG paths.
mxShape.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
Renders cells into a document object model.
Extends mxEventSource to implement a graph component for the browser.
Extends mxShape to implement an actor shape.
Extends mxShape to implement an cylinder shape.
mxCylinder.prototype.redrawPath = function(path,
x,
y,
w,
h,
isForeground)
Draws the path for this shape.
Defines various global constants.
Defines the key for the fill color.
Defines the key for the gradient color.
Defines the key for the gradient direction.
Defines the key for the opacity style.
Defines the key for the strokeColor style.
Defines the key for the strokeWidth style.
Defines the key for the shadow style.
Defines the key for the endSize style.
Defines the key for the spacing.
Defines the key for the startSize style.
Defines the key for the endSize style.
Defines the key for the rounded style.
Defines the key for the start arrow marker.
Defines the key for the end arrow marker.
Defines the key for the rotation style.
Defines the key for the direction style.
mxPath.prototype.getPath = function()
Returns string that represents the path in format.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxStencil-js.html b/docs/js-api/files/shape/mxStencil-js.html new file mode 100644 index 000000000..1215bbbd0 --- /dev/null +++ b/docs/js-api/files/shape/mxStencil-js.html @@ -0,0 +1,79 @@ + + +mxStencil + + + + + + + + + +

mxStencil

Implements a generic shape which is based on a XML node as a description.  The node contains a background and a foreground node, which contain the definition to render the respective part of the shape.  Note that the fill, stroke or fillstroke of the background is be the first statement of the foreground.  This is because the content of the background node maybe used to not only render the shape itself, but also its shadow and other elements which do not require a fill, stroke or fillstroke.

The shape uses a coordinate system with a width of 100 and a height of 100 by default.  This can be changed by setting the w and h attribute of the shape element.  The aspect attribute can be set to “variable” (default) or “fixed”.  If fixed is used, then the aspect which is defined via the w and h attribute is kept constant while the shape is scaled.

The possible contents of the background and foreground elements are rect, ellipse, roundrect, text, image, include-shape or paths.  A path element contains move, line, curve, quad, arc and close elements.  The rect, ellipse and roundrect elements may be thought of as special path elements.  All these path elements must be followed by either fill, stroke or fillstroke (note that text, image and include-shape or not path elements).

The background element can be empty or contain at most one path element.  It should not contain a text, image or include-shape element.  If the background element is empty, then no shadow or glass effect will be rendered.  If the background element is non-empty, then the corresponding fill, stroke or fillstroke should be the first element in the subsequent foreground element.

The format of the XML is “a simplified HTML 5 Canvas”.  Each command changes the “current” state, so eg. a linecap, linejoin will be used for all subsequent line drawing, unless a save/restore appears, which saves/restores a state in a stack.

The connections section contains the fixed connection points for a stencil.  The perimeter attribute of the constraint element should have a value of 0 or 1 (default), where 1 (true) specifies that the given point should be projected into the perimeter of the given shape.

The x- and y-coordinates are typically between 0 and 1 and define the location of the connection point relative to the width and height of the shape.

The dashpattern directive sets the current dashpattern.  The format for the pattern attribute is a space-separated sequence of numbers, eg.  5 5 5 5, that specifies the lengths of alternating dashes and spaces in dashed lines.  The dashpattern should be used together with the dashed directive to enabled/disable the dashpattern.  The default dashpattern is 3 3.

The strokewidth attribute defines a fixed strokewidth for the shape.  It can contain a numeric value or the keyword “inherit”, which means that the strokeWidth from the cell’s style will be used and muliplied with the shape’s scale.  If numeric values are used, those are multiplied with the minimum scale used to render the stencil inside the shape’s bounds.

Summary
mxStencilImplements a generic shape which is based on a XML node as a description.
Functions
mxStencilShapeConstructs a new generic shape by setting desc to the given XML node and invoking parseDescription and parseConstraints.
Variables
descHolds the XML node with the stencil description.
constraintsHolds an array of mxConnectionConstraints as defined in the shape.
aspectHolds the aspect of the shape.
w0Holds the width of the shape.
h0Holds the height of the shape.
bgNodesHolds the XML node with the stencil description.
fgNodesHolds the XML node with the stencil description.
strokewidthHolds the strokewidth direction from the description.
Functions
parseDescriptionReads w0, h0, aspect, bgNodes and fgNodes from desc.
parseConstraintsReads the constraints from desc into constraints using parseConstraint.
parseConstraintParses the given XML node and returns its mxConnectionConstraint.
evaluateAttributeGets the attribute for the given name from the given node.
renderDomUpdates the SVG or VML shape.
drawShapeDraws this stencil inside the given bounds.
computeAspectReturns a rectangle that contains the offset in x and y and the horizontal and vertical scale in width and height used to draw this shape inside the given mxRectangle.
drawNodeDraws this stencil inside the given bounds.
+ +

Functions

+ +

mxStencilShape

Constructs a new generic shape by setting desc to the given XML node and invoking parseDescription and parseConstraints.

Parameters

descXML node that contains the stencil description.
+ +

Variables

+ +

desc

mxStencil.prototype.desc

Holds the XML node with the stencil description.

+ +

constraints

mxStencil.prototype.constraints

Holds an array of mxConnectionConstraints as defined in the shape.

+ +

aspect

mxStencil.prototype.aspect

Holds the aspect of the shape.  Default is ‘auto’.

+ +

w0

mxStencil.prototype.w0

Holds the width of the shape.  Default is 100.

+ +

h0

mxStencil.prototype.h0

Holds the height of the shape.  Default is 100.

+ +

bgNodes

Holds the XML node with the stencil description.

+ +

fgNodes

Holds the XML node with the stencil description.

+ +

strokewidth

mxStencil.prototype.strokewidth

Holds the strokewidth direction from the description.

+ +

Functions

+ +

parseDescription

mxStencil.prototype.parseDescription = function()

Reads w0, h0, aspect, bgNodes and fgNodes from desc.

+ +

parseConstraints

mxStencil.prototype.parseConstraints = function()

Reads the constraints from desc into constraints using parseConstraint.

+ +

parseConstraint

mxStencil.prototype.parseConstraint = function(node)

Parses the given XML node and returns its mxConnectionConstraint.

+ +

evaluateAttribute

mxStencil.prototype.evaluateAttribute = function(node,
attribute,
state)

Gets the attribute for the given name from the given node.  If the attribute does not exist then the text content of the node is evaluated and if it is a function it is invoked with <state> as the only argument and the return value is used as the attribute value to be returned.

+ +

renderDom

mxStencil.prototype.renderDom = function(shape,
bounds,
parentNode,
state)

Updates the SVG or VML shape.

+ +

drawShape

mxStencil.prototype.drawShape = function(canvas,
state,
bounds,
background)

Draws this stencil inside the given bounds.

+ +

computeAspect

mxStencil.prototype.computeAspect = function(state,
bounds,
direction)

Returns a rectangle that contains the offset in x and y and the horizontal and vertical scale in width and height used to draw this shape inside the given mxRectangle.

Parameters

statemxCellState for which the shape should be drawn.
boundsmxRectangle that should contain the stencil.
directionOptional direction of the shape to be darwn.
+ +

drawNode

mxStencil.prototype.drawNode = function(canvas,
state,
node,
aspect)

Draws this stencil inside the given bounds.

+ +
+ + + + + + + + + + +
mxStencil.prototype.desc
Holds the XML node with the stencil description.
mxStencil.prototype.parseDescription = function()
Reads w0, h0, aspect, bgNodes and fgNodes from desc.
mxStencil.prototype.parseConstraints = function()
Reads the constraints from desc into constraints using parseConstraint.
mxStencil.prototype.constraints
Holds an array of mxConnectionConstraints as defined in the shape.
Defines an object that contains the constraints about how to connect one side of an edge to its terminal.
mxStencil.prototype.aspect
Holds the aspect of the shape.
mxStencil.prototype.w0
Holds the width of the shape.
mxStencil.prototype.h0
Holds the height of the shape.
mxStencil.prototype.strokewidth
Holds the strokewidth direction from the description.
Holds the XML node with the stencil description.
Holds the XML node with the stencil description.
mxStencil.prototype.parseConstraint = function(node)
Parses the given XML node and returns its mxConnectionConstraint.
mxStencil.prototype.evaluateAttribute = function(node,
attribute,
state)
Gets the attribute for the given name from the given node.
mxStencil.prototype.renderDom = function(shape,
bounds,
parentNode,
state)
Updates the SVG or VML shape.
mxStencil.prototype.drawShape = function(canvas,
state,
bounds,
background)
Draws this stencil inside the given bounds.
mxStencil.prototype.computeAspect = function(state,
bounds,
direction)
Returns a rectangle that contains the offset in x and y and the horizontal and vertical scale in width and height used to draw this shape inside the given mxRectangle.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxStencil.prototype.drawNode = function(canvas,
state,
node,
aspect)
Draws this stencil inside the given bounds.
Represents the current state of a cell in a given mxGraphView.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxStencilRegistry-js.html b/docs/js-api/files/shape/mxStencilRegistry-js.html new file mode 100644 index 000000000..349c5f26a --- /dev/null +++ b/docs/js-api/files/shape/mxStencilRegistry-js.html @@ -0,0 +1,45 @@ + + +mxStencilRegistry + + + + + + + + + +

mxStencilRegistry

A singleton class that provides a registry for stencils and the methods for painting those stencils onto a canvas or into a DOM.

Summary
mxStencilRegistryA singleton class that provides a registry for stencils and the methods for painting those stencils onto a canvas or into a DOM.
Functions
addStencilAdds the given mxStencil.
getStencilReturns the mxStencil for the given name.
+ +

Functions

+ +

addStencil

addStencil: function(name,
stencil)

Adds the given mxStencil.

+ +

getStencil

getStencil: function(name)

Returns the mxStencil for the given name.

+ +
+ + + + + + + + + + +
addStencil: function(name,
stencil)
Adds the given mxStencil.
Implements a generic shape which is based on a XML node as a description.
getStencil: function(name)
Returns the mxStencil for the given name.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxStencilShape-js.html b/docs/js-api/files/shape/mxStencilShape-js.html new file mode 100644 index 000000000..5cae0160e --- /dev/null +++ b/docs/js-api/files/shape/mxStencilShape-js.html @@ -0,0 +1,69 @@ + + +mxStencilShape + + + + + + + + + +

mxStencilShape

Implements a shape based on a mxStencil.

Summary
mxStencilShapeImplements a shape based on a mxStencil.
Functions
mxStencilShapeConstructs a new generic shape.
Variables
mixedModeHtmlAlways prefers VML in mixed mode for stencil shapes.
preferModeHtmlAlways prefers VML in prefer HTML mode for stencil shapes.
stencilHolds the mxStencil that defines the shape.
stateHolds the mxCellState associated with this shape.
Functions
applyExtends mxShape apply to keep a reference to the mxCellState.
createSvgCreates and returns the SVG node(s) to represent this shape.
configureHtmlShapeOverrides method to set the overflow style to visible.
createSvgCreates and returns the SVG node(s) to represent this shape.
configureVmlShapeConfigures the specified VML node by applying the current color, bounds, shadow, opacity etc.
redrawCreates and returns the SVG node(s) to represent this shape.
redrawShapeUpdates the SVG or VML shape.
+ +

Functions

+ +

mxStencilShape

function mxStencilShape(stencil)

Constructs a new generic shape.

+ +

Variables

+ +

mixedModeHtml

mxStencilShape.prototype.mixedModeHtml

Always prefers VML in mixed mode for stencil shapes.  Default is false.

+ +

preferModeHtml

mxStencilShape.prototype.preferModeHtml

Always prefers VML in prefer HTML mode for stencil shapes.  Default is false.

+ +

stencil

mxStencilShape.prototype.stencil

Holds the mxStencil that defines the shape.

+ +

state

mxStencilShape.prototype.state

Holds the mxCellState associated with this shape.

+ +

Functions

+ +

apply

mxStencilShape.prototype.apply = function(state)

Extends mxShape apply to keep a reference to the mxCellState.

Parameters

statemxCellState of the corresponding cell.
+ +

createSvg

mxStencilShape.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

configureHtmlShape

mxStencilShape.prototype.configureHtmlShape = function(node)

Overrides method to set the overflow style to visible.

+ +

createSvg

Creates and returns the SVG node(s) to represent this shape.

+ +

configureVmlShape

mxStencilShape.prototype.configureVmlShape = function(node)

Configures the specified VML node by applying the current color, bounds, shadow, opacity etc.

+ +

redraw

mxStencilShape.prototype.redraw = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawShape

mxStencilShape.prototype.redrawShape = function()

Updates the SVG or VML shape.

+ +
+ + + + + + + + + + +
Implements a generic shape which is based on a XML node as a description.
function mxStencilShape(stencil)
Constructs a new generic shape.
mxStencilShape.prototype.mixedModeHtml
Always prefers VML in mixed mode for stencil shapes.
mxStencilShape.prototype.preferModeHtml
Always prefers VML in prefer HTML mode for stencil shapes.
mxStencilShape.prototype.stencil
Holds the mxStencil that defines the shape.
mxStencilShape.prototype.state
Holds the mxCellState associated with this shape.
Represents the current state of a cell in a given mxGraphView.
mxStencilShape.prototype.apply = function(state)
Extends mxShape apply to keep a reference to the mxCellState.
Base class for all shapes.
mxStencilShape.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxStencilShape.prototype.configureHtmlShape = function(node)
Overrides method to set the overflow style to visible.
mxStencilShape.prototype.configureVmlShape = function(node)
Configures the specified VML node by applying the current color, bounds, shadow, opacity etc.
mxStencilShape.prototype.redraw = function()
Creates and returns the SVG node(s) to represent this shape.
mxStencilShape.prototype.redrawShape = function()
Updates the SVG or VML shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxSwimlane-js.html b/docs/js-api/files/shape/mxSwimlane-js.html new file mode 100644 index 000000000..b197cebe8 --- /dev/null +++ b/docs/js-api/files/shape/mxSwimlane-js.html @@ -0,0 +1,69 @@ + + +mxSwimlane + + + + + + + + + +

mxSwimlane

Extends mxShape to implement a swimlane shape.  This shape is registered under mxConstants.SHAPE_SWIMLANE in mxCellRenderer.

Summary
mxSwimlaneExtends mxShape to implement a swimlane shape.
Functions
mxSwimlaneConstructs a new swimlane shape.
Variables
vmlNodesAdds local references to mxShape.vmlNodes.
imageSizeDefault imagewidth and imageheight if an image but no imagewidth and imageheight are defined in the style.
mixedModeHtmlOverrides the parent value with false, meaning it will draw in VML in mixed Html mode.
preferModeHtmlOverrides the parent value with false, meaning it will draw as VML in prefer Html mode.
Functions
createHtmlCreates and returns the HTML node to represent this shape.
reconfigureOverrides to avoid filled content area in HTML and updates the shadow in SVG.
redrawHtmlUpdates the HTML node(s) to reflect the latest bounds and scale.
createVmlCreates and returns the VML node(s) to represent this shape.
redrawVmlUpdates the VML node(s) to reflect the latest bounds and scale.
createSvgCreates and returns the SVG node(s) to represent this shape.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
+ +

Functions

+ +

mxSwimlane

function mxSwimlane(bounds,
fill,
stroke,
strokewidth)

Constructs a new swimlane shape.

Parameters

boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
fillString that defines the fill color.  This is stored in <fill>.
strokeString that defines the stroke color.  This is stored in <stroke>.
strokewidthOptional integer that defines the stroke width.  Default is 1.  This is stored in <strokewidth>.
+ +

Variables

+ +

vmlNodes

mxSwimlane.prototype.vmlNodes

Adds local references to mxShape.vmlNodes.

+ +

imageSize

mxSwimlane.prototype.imageSize

Default imagewidth and imageheight if an image but no imagewidth and imageheight are defined in the style.  Value is 16.

+ +

mixedModeHtml

mxSwimlane.prototype.mixedModeHtml

Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.  This is for better handling of event-transparency of the content area.

+ +

preferModeHtml

mxRhombus.prototype.preferModeHtml

Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.  This is for better handling of event-transparency of the content area.

+ +

Functions

+ +

createHtml

mxSwimlane.prototype.createHtml = function()

Creates and returns the HTML node to represent this shape.

+ +

reconfigure

mxSwimlane.prototype.reconfigure = function(node)

Overrides to avoid filled content area in HTML and updates the shadow in SVG.

+ +

redrawHtml

mxSwimlane.prototype.redrawHtml = function()

Updates the HTML node(s) to reflect the latest bounds and scale.

+ +

createVml

mxSwimlane.prototype.createVml = function()

Creates and returns the VML node(s) to represent this shape.

+ +

redrawVml

mxSwimlane.prototype.redrawVml = function()

Updates the VML node(s) to reflect the latest bounds and scale.

+ +

createSvg

mxSwimlane.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawSvg

mxSwimlane.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxSwimlane(bounds,
fill,
stroke,
strokewidth)
Constructs a new swimlane shape.
mxSwimlane.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxShape.prototype.vmlNodes
Array if VML node names to fix in IE8 standards mode.
mxSwimlane.prototype.imageSize
Default imagewidth and imageheight if an image but no imagewidth and imageheight are defined in the style.
mxSwimlane.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxRhombus.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxSwimlane.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxSwimlane.prototype.reconfigure = function(node)
Overrides to avoid filled content area in HTML and updates the shadow in SVG.
mxSwimlane.prototype.redrawHtml = function()
Updates the HTML node(s) to reflect the latest bounds and scale.
mxSwimlane.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxSwimlane.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxSwimlane.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxSwimlane.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
Name under which mxSwimlane is registered in mxCellRenderer.
Renders cells into a document object model.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxText-js.html b/docs/js-api/files/shape/mxText-js.html new file mode 100644 index 000000000..e29d78ca9 --- /dev/null +++ b/docs/js-api/files/shape/mxText-js.html @@ -0,0 +1,111 @@ + + +mxText + + + + + + + + + +

mxText

Extends mxShape to implement a text shape.  To change vertical text from bottom to top to top to bottom, the following code can be used:

mxText.prototype.ieVerticalFilter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)';
+mxText.prototype.verticalTextDegree = 90;
+
+mxText.prototype.getVerticalOffset = function(offset)
+{
+  return new mxPoint(-offset.y, offset.x);
+};
Summary
mxTextExtends mxShape to implement a text shape.
Functions
mxTextConstructs a new text shape.
Variables
replaceLinefeedsSpecifies if linefeeds in HTML labels should be replaced with BR tags.
ieVerticalFilterHolds the filter definition for vertical text in IE.
verticalTextDegreeSpecifies the degree to be used for vertical text.
forceIgnoreStringSizeSpecifies if the string size should always be ignored.
Functions
isStyleSetReturns true if the given font style (bold, italic etc) is true in this shape’s fontStyle.
createOverride to create HTML regardless of gradient and rounded property.
createForeignObjectCreates and returns the foreignObject node to represent this shape.
createHtmlCreates and returns the HTML node to represent this shape.
createVmlCreates and returns the VML node(s) to represent this shape.
redrawHtmlUpdates the HTML node(s) to reflect the latest bounds and scale.
getOffsetReturns the description of the space between the <bounds> size and the label size as an mxPoint.
getSpacingReturns the spacing as an mxPoint.
createHtmlTableCreates and returns a HTML table with a table body and a single row with a single cell.
updateTableStyleUpdates the style of the given HTML table and the value within the table.
getTableSizeReturns the actual size of the table.
updateTableWidthUpdates the width of the given HTML table.
redrawVmlUpdates the VML node(s) to reflect the latest bounds and scale.
redrawTextboxRedraws the textbox for this text.
redrawHtmlTableRedraws the HTML table.
getVerticalOffsetReturns the factors for the offset to be added to the text vertical text rotation.
redrawForeignObjectRedraws the foreign object for this text.
createSvgCreates and returns the SVG node(s) to represent this shape.
redrawSvgUpdates the SVG node(s) to reflect the latest bounds and scale.
redrawSvgTextNodesHook to update the position of the SVG text nodes.
releaseSvgClipReleases the given SVG clip removing it from the DOM if required.
getSvgClipReturns a new or existing SVG clip path which is a descendant of the given SVG node with a unique ID.
isEmptyStringReturns true if the given string is empty or contains only whitespace.
createSvgSpanCreats an SVG tspan node for the given text.
destroyExtends destroy to remove any allocated SVG clips.
+ +

Functions

+ +

mxText

function mxText(value,
bounds,
align,
valign,
color,
family,
size,
fontStyle,
spacing,
spacingTop,
spacingRight,
spacingBottom,
spacingLeft,
horizontal,
background,
border,
wrap,
clipped,
overflow,
labelPadding)

Constructs a new text shape.

Parameters

valueString that represents the text to be displayed.  This is stored in <value>.
boundsmxRectangle that defines the bounds.  This is stored in mxShape.bounds.
alignSpecifies the horizontal alignment.  Default is ‘’.  This is stored in <align>.
valignSpecifies the vertical alignment.  Default is ‘’.  This is stored in <valign>.
colorString that specifies the text color.  Default is ‘black’.  This is stored in <color>.
familyString that specifies the font family.  Default is mxConstants.DEFAULT_FONTFAMILY.  This is stored in <family>.
sizeInteger that specifies the font size.  Default is mxConstants.DEFAULT_FONTSIZE.  This is stored in <size>.
fontStyleSpecifies the font style.  Default is 0.  This is stored in <fontStyle>.
spacingInteger that specifies the global spacing.  Default is 2.  This is stored in <spacing>.
spacingTopInteger that specifies the top spacing.  Default is 0.  The sum of the spacing and this is stored in <spacingTop>.
spacingRightInteger that specifies the right spacing.  Default is 0.  The sum of the spacing and this is stored in <spacingRight>.
spacingBottomInteger that specifies the bottom spacing.  Default is 0.The sum of the spacing and this is stored in <spacingBottom>.
spacingLeftInteger that specifies the left spacing.  Default is 0.  The sum of the spacing and this is stored in <spacingLeft>.
horizontalBoolean that specifies if the label is horizontal.  Default is true.  This is stored in <horizontal>.
backgroundString that specifies the background color.  Default is null.  This is stored in <background>.
borderString that specifies the label border color.  Default is null.  This is stored in <border>.
wrapSpecifies if word-wrapping should be enabled.  Default is false.  This is stored in <wrap>.
clippedSpecifies if the label should be clipped.  Default is false.  This is stored in <clipped>.
overflowValue of the overflow style.  Default is ‘visible’.
+ +

Variables

+ +

replaceLinefeeds

mxText.prototype.replaceLinefeeds

Specifies if linefeeds in HTML labels should be replaced with BR tags.  Default is true.  This is also used in mxImageExport to export the label.

+ +

ieVerticalFilter

mxText.prototype.ieVerticalFilter

Holds the filter definition for vertical text in IE.  Default is progid:DXImageTransform.Microsoft.BasicImage(rotation=3).

+ +

verticalTextDegree

mxText.prototype.verticalTextDegree

Specifies the degree to be used for vertical text.  Default is -90.

+ +

forceIgnoreStringSize

mxText.prototype.forceIgnoreStringSize

Specifies if the string size should always be ignored.  Default is false.  This can be used to improve rendering speed in slow browsers.  This can be used if all labels are smaller than the vertex width.  String sizes are ignored by default for labels which are left aligned with no background and border or if the overflow is set to fill.

+ +

Functions

+ +

isStyleSet

mxText.prototype.isStyleSet = function(style)

Returns true if the given font style (bold, italic etc) is true in this shape’s fontStyle.

Parameters

styleFontstyle constant from mxConstants.
+ +

create

mxText.prototype.create = function(container)

Override to create HTML regardless of gradient and rounded property.

+ +

createForeignObject

mxText.prototype.createForeignObject = function()

Creates and returns the foreignObject node to represent this shape.

+ +

createHtml

mxText.prototype.createHtml = function()

Creates and returns the HTML node to represent this shape.

+ +

createVml

mxText.prototype.createVml = function()

Creates and returns the VML node(s) to represent this shape.

+ +

redrawHtml

mxText.prototype.redrawHtml = function()

Updates the HTML node(s) to reflect the latest bounds and scale.

+ +

getOffset

mxText.prototype.getOffset = function(outerWidth,
outerHeight,
actualWidth,
actualHeight,
horizontal)

Returns the description of the space between the <bounds> size and the label size as an mxPoint.

+ +

getSpacing

mxText.prototype.getSpacing = function(horizontal)

Returns the spacing as an mxPoint.

+ +

createHtmlTable

mxText.prototype.createHtmlTable = function()

Creates and returns a HTML table with a table body and a single row with a single cell.

+ +

updateTableStyle

Updates the style of the given HTML table and the value within the table.

+ +

getTableSize

mxText.prototype.getTableSize = function(table)

Returns the actual size of the table.

+ +

updateTableWidth

mxText.prototype.updateTableWidth = function(table)

Updates the width of the given HTML table.

+ +

redrawVml

mxText.prototype.redrawVml = function()

Updates the VML node(s) to reflect the latest bounds and scale.

+ +

redrawTextbox

mxText.prototype.redrawTextbox = function()

Redraws the textbox for this text.  This is only used in IE in exact rendering mode.

+ +

redrawHtmlTable

mxText.prototype.redrawHtmlTable = function()

Redraws the HTML table.  This is used for HTML labels in all modes except exact in IE and if NO_FO is false for the browser.

+ +

getVerticalOffset

mxText.prototype.getVerticalOffset = function(offset)

Returns the factors for the offset to be added to the text vertical text rotation.  This implementation returns (offset.y, -offset.x).

+ +

redrawForeignObject

mxText.prototype.redrawForeignObject = function()

Redraws the foreign object for this text.

+ +

createSvg

mxText.prototype.createSvg = function()

Creates and returns the SVG node(s) to represent this shape.

+ +

redrawSvg

mxText.prototype.redrawSvg = function()

Updates the SVG node(s) to reflect the latest bounds and scale.

+ +

redrawSvgTextNodes

mxText.prototype.redrawSvgTextNodes = function(x,
y,
dy)

Hook to update the position of the SVG text nodes.

+ +

releaseSvgClip

mxText.prototype.releaseSvgClip = function()

Releases the given SVG clip removing it from the DOM if required.

+ +

getSvgClip

mxText.prototype.getSvgClip = function(svg,
x,
y,
w,
h)

Returns a new or existing SVG clip path which is a descendant of the given SVG node with a unique ID.

+ +

isEmptyString

mxText.prototype.isEmptyString = function(text)

Returns true if the given string is empty or contains only whitespace.

+ +

createSvgSpan

mxText.prototype.createSvgSpan = function(text)

Creats an SVG tspan node for the given text.

+ +

destroy

mxText.prototype.destroy = function()

Extends destroy to remove any allocated SVG clips.

+ +
+ + + + + + + + + + +
Base class for all shapes.
function mxText(value,
bounds,
align,
valign,
color,
family,
size,
fontStyle,
spacing,
spacingTop,
spacingRight,
spacingBottom,
spacingLeft,
horizontal,
background,
border,
wrap,
clipped,
overflow,
labelPadding)
Constructs a new text shape.
mxText.prototype.replaceLinefeeds
Specifies if linefeeds in HTML labels should be replaced with BR tags.
mxText.prototype.ieVerticalFilter
Holds the filter definition for vertical text in IE.
mxText.prototype.verticalTextDegree
Specifies the degree to be used for vertical text.
mxText.prototype.forceIgnoreStringSize
Specifies if the string size should always be ignored.
mxText.prototype.isStyleSet = function(style)
Returns true if the given font style (bold, italic etc) is true in this shape’s fontStyle.
mxText.prototype.create = function(container)
Override to create HTML regardless of gradient and rounded property.
mxText.prototype.createForeignObject = function()
Creates and returns the foreignObject node to represent this shape.
mxText.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxText.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxText.prototype.redrawHtml = function()
Updates the HTML node(s) to reflect the latest bounds and scale.
mxText.prototype.getOffset = function(outerWidth,
outerHeight,
actualWidth,
actualHeight,
horizontal)
Returns the description of the space between the bounds size and the label size as an mxPoint.
Implements a 2-dimensional vector with double precision coordinates.
mxText.prototype.getSpacing = function(horizontal)
Returns the spacing as an mxPoint.
mxText.prototype.createHtmlTable = function()
Creates and returns a HTML table with a table body and a single row with a single cell.
mxText.prototype.getTableSize = function(table)
Returns the actual size of the table.
mxText.prototype.updateTableWidth = function(table)
Updates the width of the given HTML table.
mxText.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawTextbox = function()
Redraws the textbox for this text.
mxText.prototype.redrawHtmlTable = function()
Redraws the HTML table.
mxText.prototype.getVerticalOffset = function(offset)
Returns the factors for the offset to be added to the text vertical text rotation.
mxText.prototype.redrawForeignObject = function()
Redraws the foreign object for this text.
mxText.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxText.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawSvgTextNodes = function(x,
y,
dy)
Hook to update the position of the SVG text nodes.
mxText.prototype.releaseSvgClip = function()
Releases the given SVG clip removing it from the DOM if required.
mxText.prototype.getSvgClip = function(svg,
x,
y,
w,
h)
Returns a new or existing SVG clip path which is a descendant of the given SVG node with a unique ID.
mxText.prototype.isEmptyString = function(text)
Returns true if the given string is empty or contains only whitespace.
mxText.prototype.createSvgSpan = function(text)
Creats an SVG tspan node for the given text.
mxText.prototype.destroy = function()
Extends destroy to remove any allocated SVG clips.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
Defines the default family for all fonts in points.
Defines the default size for all fonts in points.
Creates a new image export instance to be used with an export canvas.
Defines various global constants.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/shape/mxTriangle-js.html b/docs/js-api/files/shape/mxTriangle-js.html new file mode 100644 index 000000000..5e8ea1cdd --- /dev/null +++ b/docs/js-api/files/shape/mxTriangle-js.html @@ -0,0 +1,45 @@ + + +mxTriangle + + + + + + + + + +

mxTriangle

Implementation of the triangle shape.

Summary
mxTriangleImplementation of the triangle shape.
Functions
mxTriangleConstructs a new triangle shape.
redrawPathDraws the path for this shape.
+ +

Functions

+ +

mxTriangle

function mxTriangle()

Constructs a new triangle shape.

+ +

redrawPath

mxTriangle.prototype.redrawPath = function(path,
x,
y,
w,
h)

Draws the path for this shape.  This method uses the mxPath abstraction to paint the shape for VML and SVG.

+ +
+ + + + + + + + + + +
function mxTriangle()
Constructs a new triangle shape.
mxTriangle.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
An abstraction for creating VML and SVG paths.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxAnimation-js.html b/docs/js-api/files/util/mxAnimation-js.html new file mode 100644 index 000000000..eb453540e --- /dev/null +++ b/docs/js-api/files/util/mxAnimation-js.html @@ -0,0 +1,57 @@ + + +mxAnimation + + + + + + + + + +

mxAnimation

Implements a basic animation in JavaScript.

Summary
mxAnimationImplements a basic animation in JavaScript.
Functions
mxAnimationConstructs an animation.
Variables
delaySpecifies the delay between the animation steps.
threadReference to the thread while the animation is running.
Functions
startAnimationStarts the animation by repeatedly invoking updateAnimation.
updateAnimationHook for subclassers to implement the animation.
stopAnimationStops the animation by deleting the timer and fires an mxEvent.DONE.
+ +

Functions

+ +

mxAnimation

function mxAnimation(delay)

Constructs an animation.

Parameters

graphReference to the enclosing mxGraph.
+ +

Variables

+ +

delay

mxAnimation.prototype.delay

Specifies the delay between the animation steps.  Defaul is 30ms.

+ +

thread

mxAnimation.prototype.thread

Reference to the thread while the animation is running.

+ +

Functions

+ +

startAnimation

mxAnimation.prototype.startAnimation = function()

Starts the animation by repeatedly invoking updateAnimation.

+ +

updateAnimation

mxAnimation.prototype.updateAnimation = function()

Hook for subclassers to implement the animation.  Invoke stopAnimation when finished, startAnimation to resume.  This is called whenever the timer fires and fires an mxEvent.EXECUTE event with no properties.

+ +

stopAnimation

mxAnimation.prototype.stopAnimation = function()

Stops the animation by deleting the timer and fires an mxEvent.DONE.

+ +
+ + + + + + + + + + +
function mxAnimation(delay)
Constructs an animation.
mxAnimation.prototype.delay
Specifies the delay between the animation steps.
mxAnimation.prototype.thread
Reference to the thread while the animation is running.
mxAnimation.prototype.startAnimation = function()
Starts the animation by repeatedly invoking updateAnimation.
mxAnimation.prototype.updateAnimation = function()
Hook for subclassers to implement the animation.
mxAnimation.prototype.stopAnimation = function()
Stops the animation by deleting the timer and fires an mxEvent.DONE.
Specifies the event name for done.
Extends mxEventSource to implement a graph component for the browser.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxAutoSaveManager-js.html b/docs/js-api/files/util/mxAutoSaveManager-js.html new file mode 100644 index 000000000..0a9ab7267 --- /dev/null +++ b/docs/js-api/files/util/mxAutoSaveManager-js.html @@ -0,0 +1,82 @@ + + +mxAutoSaveManager + + + + + + + + + +

mxAutoSaveManager

Manager for automatically saving diagrams.  The save hook must be implemented.

Example

var mgr = new mxAutoSaveManager(editor.graph);
+mgr.save = function()
+{
+  mxLog.show();
+  mxLog.debug('save');
+};
Summary
mxAutoSaveManagerManager for automatically saving diagrams.
Functions
mxAutoSaveManagerConstructs a new automatic layout for the given graph.
Variables
graphReference to the enclosing mxGraph.
autoSaveDelayMinimum amount of seconds between two consecutive autosaves.
autoSaveThrottleMinimum amount of seconds between two consecutive autosaves triggered by more than <autoSaveThreshhold> changes within a timespan of less than autoSaveDelay seconds.
autoSaveThresholdMinimum amount of ignored changes before an autosave.
ignoredChangesCounter for ignored changes in autosave.
lastSnapshotUsed for autosaving.
enabledSpecifies if event handling is enabled.
changeHandlerHolds the function that handles graph model changes.
Functions
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
setGraphSets the graph that the layouts operate on.
saveEmpty hook that is called if the graph should be saved.
graphModelChangedInvoked when the graph model has changed.
resetResets all counters.
destroyRemoves all handlers from the graph and deletes the reference to it.
+ +

Functions

+ +

mxAutoSaveManager

function mxAutoSaveManager(graph)

Constructs a new automatic layout for the given graph.

Arguments

graphReference to the enclosing graph.
+ +

Variables

+ +

graph

mxAutoSaveManager.prototype.graph

Reference to the enclosing mxGraph.

+ +

autoSaveDelay

mxAutoSaveManager.prototype.autoSaveDelay

Minimum amount of seconds between two consecutive autosaves.  Eg. a value of 1 (s) means the graph is not stored more than once per second.  Default is 10.

+ +

autoSaveThrottle

mxAutoSaveManager.prototype.autoSaveThrottle

Minimum amount of seconds between two consecutive autosaves triggered by more than <autoSaveThreshhold> changes within a timespan of less than autoSaveDelay seconds.  Eg. a value of 1 (s) means the graph is not stored more than once per second even if there are more than autoSaveThreshold changes within that timespan.  Default is 2.

+ +

autoSaveThreshold

mxAutoSaveManager.prototype.autoSaveThreshold

Minimum amount of ignored changes before an autosave.  Eg. a value of 2 means after 2 change of the graph model the autosave will trigger if the condition below is true.  Default is 5.

+ +

ignoredChanges

mxAutoSaveManager.prototype.ignoredChanges

Counter for ignored changes in autosave.

+ +

lastSnapshot

mxAutoSaveManager.prototype.lastSnapshot

Used for autosaving.  See <autosave>.

+ +

enabled

mxAutoSaveManager.prototype.enabled

Specifies if event handling is enabled.  Default is true.

+ +

changeHandler

mxAutoSaveManager.prototype.changeHandler

Holds the function that handles graph model changes.

+ +

Functions

+ +

isEnabled

mxAutoSaveManager.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxAutoSaveManager.prototype.setEnabled = function(value)

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

setGraph

mxAutoSaveManager.prototype.setGraph = function(graph)

Sets the graph that the layouts operate on.

+ +

save

mxAutoSaveManager.prototype.save = function()

Empty hook that is called if the graph should be saved.

+ +

graphModelChanged

mxAutoSaveManager.prototype.graphModelChanged = function(changes)

Invoked when the graph model has changed.

+ +

reset

mxAutoSaveManager.prototype.reset = function()

Resets all counters.

+ +

destroy

mxAutoSaveManager.prototype.destroy = function()

Removes all handlers from the graph and deletes the reference to it.

+ +
+ + + + + + + + + + +
function mxAutoSaveManager(graph)
Constructs a new automatic layout for the given graph.
mxAutoSaveManager.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxAutoSaveManager.prototype.autoSaveDelay
Minimum amount of seconds between two consecutive autosaves.
mxAutoSaveManager.prototype.autoSaveThrottle
Minimum amount of seconds between two consecutive autosaves triggered by more than autoSaveThreshhold changes within a timespan of less than autoSaveDelay seconds.
mxAutoSaveManager.prototype.autoSaveThreshold
Minimum amount of ignored changes before an autosave.
mxAutoSaveManager.prototype.ignoredChanges
Counter for ignored changes in autosave.
mxAutoSaveManager.prototype.lastSnapshot
Used for autosaving.
mxAutoSaveManager.prototype.enabled
Specifies if event handling is enabled.
mxAutoSaveManager.prototype.changeHandler
Holds the function that handles graph model changes.
mxAutoSaveManager.prototype.isEnabled = function()
Returns true if events are handled.
mxAutoSaveManager.prototype.setEnabled = function(value)
Enables or disables event handling.
mxAutoSaveManager.prototype.setGraph = function(graph)
Sets the graph that the layouts operate on.
mxAutoSaveManager.prototype.save = function()
Empty hook that is called if the graph should be saved.
mxAutoSaveManager.prototype.graphModelChanged = function(changes)
Invoked when the graph model has changed.
mxAutoSaveManager.prototype.reset = function()
Resets all counters.
mxAutoSaveManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxClipboard-js.html b/docs/js-api/files/util/mxClipboard-js.html new file mode 100644 index 000000000..3a8166cdf --- /dev/null +++ b/docs/js-api/files/util/mxClipboard-js.html @@ -0,0 +1,60 @@ + + +mxClipboard + + + + + + + + + +

mxClipboard

Singleton that implements a clipboard for graph cells.

Example

mxClipboard.copy(graph);
+mxClipboard.paste(graph2);

This copies the selection cells from the graph to the clipboard and pastes them into graph2.

For fine-grained control of the clipboard data the mxGraph.canExportCell and mxGraph.canImportCell functions can be overridden.

Summary
mxClipboardSingleton that implements a clipboard for graph cells.
Variables
STEPSIZEDefines the step size to offset the cells after each paste operation.
insertCountCounts the number of times the clipboard data has been inserted.
cellsHolds the array of mxCells currently in the clipboard.
Functions
isEmptyReturns true if the clipboard currently has not data stored.
cutCuts the given array of mxCells from the specified graph.
removeCellsHook to remove the given cells from the given graph after a cut operation.
copyCopies the given array of mxCells from the specified graph to cells.Returns the original array of cells that has been cloned.
pastePastes the cells into the specified graph restoring the relation to <parents>, if possible.
+ +

Variables

+ +

STEPSIZE

Defines the step size to offset the cells after each paste operation.  Default is 10.

+ +

insertCount

Counts the number of times the clipboard data has been inserted.

+ +

cells

Holds the array of mxCells currently in the clipboard.

+ +

Functions

+ +

isEmpty

isEmpty: function()

Returns true if the clipboard currently has not data stored.

+ +

cut

cut: function(graph,
cells)

Cuts the given array of mxCells from the specified graph.  If cells is null then the selection cells of the graph will be used.  Returns the cells that have been cut from the graph.

Parameters

graphmxGraph that contains the cells to be cut.
cellsOptional array of mxCells to be cut.
+ +

removeCells

removeCells: function(graph,
cells)

Hook to remove the given cells from the given graph after a cut operation.

Parameters

graphmxGraph that contains the cells to be cut.
cellsArray of mxCells to be cut.
+ +

copy

copy: function(graph,
cells)

Copies the given array of mxCells from the specified graph to cells.Returns the original array of cells that has been cloned.

Parameters

graphmxGraph that contains the cells to be copied.
cellsOptional array of mxCells to be copied.
+ +

paste

paste: function(graph)

Pastes the cells into the specified graph restoring the relation to <parents>, if possible.  If the parents are no longer in the graph or invisible then the cells are added to the graph’s default or into the swimlane under the cell’s new location if one exists.  The cells are added to the graph using mxGraph.importCells.

Parameters

graphmxGraph to paste the cells into.
+ +
+ + + + + + + + + + +
Cells are the elements of the graph model.
isEmpty: function()
Returns true if the clipboard currently has not data stored.
cut: function(graph,
cells)
Cuts the given array of mxCells from the specified graph.
removeCells: function(graph,
cells)
Hook to remove the given cells from the given graph after a cut operation.
copy: function(graph,
cells)
Copies the given array of mxCells from the specified graph to cells.Returns the original array of cells that has been cloned.
Holds the array of mxCells currently in the clipboard.
paste: function(graph)
Pastes the cells into the specified graph restoring the relation to parents, if possible.
mxGraph.prototype.canExportCell = function(cell)
Returns true if the given cell may be exported to the clipboard.
mxGraph.prototype.canImportCell = function(cell)
Returns true if the given cell may be imported from the clipboard.
Extends mxEventSource to implement a graph component for the browser.
mxGraph.prototype.importCells = function(cells,
dx,
dy,
target,
evt)
Clones and inserts the given cells into the graph using the move method and returns the inserted cells.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxConstants-js.html b/docs/js-api/files/util/mxConstants-js.html new file mode 100644 index 000000000..43f256a47 --- /dev/null +++ b/docs/js-api/files/util/mxConstants-js.html @@ -0,0 +1,495 @@ + + +mxConstants + + + + + + + + + +

mxConstants

Defines various global constants.

Summary
mxConstantsDefines various global constants.
Variables
DEFAULT_HOTSPOTDefines the portion of the cell which is to be used as a connectable region.
MIN_HOTSPOT_SIZEDefines the minimum size in pixels of the portion of the cell which is to be used as a connectable region.
MAX_HOTSPOT_SIZEDefines the maximum size in pixels of the portion of the cell which is to be used as a connectable region.
RENDERING_HINT_EXACTDefines the exact rendering hint.
RENDERING_HINT_FASTERDefines the faster rendering hint.
RENDERING_HINT_FASTESTDefines the fastest rendering hint.
DIALECT_SVGDefines the SVG display dialect name.
DIALECT_VMLDefines the VML display dialect name.
DIALECT_MIXEDHTMLDefines the mixed HTML display dialect name.
DIALECT_PREFERHTMLDefines the preferred HTML display dialect name.
DIALECT_STRICTHTMLDefines the strict HTML display dialect.
NS_SVGDefines the SVG namespace.
NS_XHTMLDefines the XHTML namespace.
NS_XLINKDefines the XLink namespace.
SHADOWCOLORDefines the color to be used to draw shadows in shapes and windows.
SHADOW_OFFSET_XSpecifies the x-offset of the shadow.
SHADOW_OFFSET_YSpecifies the y-offset of the shadow.
SHADOW_OPACITYDefines the opacity for shadows.
NODETYPE_ELEMENTDOM node of type ELEMENT.
NODETYPE_ATTRIBUTEDOM node of type ATTRIBUTE.
NODETYPE_TEXTDOM node of type TEXT.
NODETYPE_CDATADOM node of type CDATA.
NODETYPE_ENTITY_REFERENCEDOM node of type ENTITY_REFERENCE.
NODETYPE_ENTITYDOM node of type ENTITY.
NODETYPE_PROCESSING_INSTRUCTIONDOM node of type PROCESSING_INSTRUCTION.
NODETYPE_COMMENTDOM node of type COMMENT.
NODETYPE_DOCUMENTDOM node of type DOCUMENT.
NODETYPE_DOCUMENTTYPEDOM node of type DOCUMENTTYPE.
NODETYPE_DOCUMENT_FRAGMENTDOM node of type DOCUMENT_FRAGMENT.
NODETYPE_NOTATIONDOM node of type NOTATION.
TOOLTIP_VERTICAL_OFFSETDefines the vertical offset for the tooltip.
DEFAULT_VALID_COLORSpecifies the default valid colorr.
DEFAULT_INVALID_COLORSpecifies the default invalid color.
HIGHLIGHT_STROKEWIDTHDefines the strokewidth to be used for the highlights.
CURSOR_MOVABLE_VERTEXDefines the cursor for a movable vertex.
CURSOR_MOVABLE_EDGEDefines the cursor for a movable edge.
CURSOR_LABEL_HANDLEDefines the cursor for a movable label.
CURSOR_BEND_HANDLEDefines the cursor for a movable bend.
CURSOR_CONNECTDefines the cursor for a connectable state.
HIGHLIGHT_COLORDefines the color to be used for the cell highlighting.
TARGET_HIGHLIGHT_COLORDefines the color to be used for highlighting a target cell for a new or changed connection.
INVALID_CONNECT_TARGET_COLORDefines the color to be used for highlighting a invalid target cells for a new or changed connections.
DROP_TARGET_COLORDefines the color to be used for the highlighting target parent cells (for drag and drop).
VALID_COLORDefines the color to be used for the coloring valid connection previews.
INVALID_COLORDefines the color to be used for the coloring invalid connection previews.
EDGE_SELECTION_COLORDefines the color to be used for the selection border of edges.
VERTEX_SELECTION_COLORDefines the color to be used for the selection border of vertices.
VERTEX_SELECTION_STROKEWIDTHDefines the strokewidth to be used for vertex selections.
EDGE_SELECTION_STROKEWIDTHDefines the strokewidth to be used for edge selections.
SELECTION_DASHEDDefines the dashed state to be used for the vertex selection border.
SELECTION_DASHEDDefines the dashed state to be used for the edge selection border.
GUIDE_COLORDefines the color to be used for the guidelines in mxGraphHandler.
GUIDE_STROKEWIDTHDefines the strokewidth to be used for the guidelines in mxGraphHandler.
OUTLINE_COLORDefines the color to be used for the outline rectangle border.
OUTLINE_STROKEWIDTHDefines the strokewidth to be used for the outline rectangle stroke width.
HANDLE_SIZEDefines the default size for handles.
LABEL_HANDLE_SIZEDefines the default size for label handles.
HANDLE_FILLCOLORDefines the color to be used for the handle fill color.
HANDLE_STROKECOLORDefines the color to be used for the handle stroke color.
LABEL_HANDLE_FILLCOLORDefines the color to be used for the label handle fill color.
CONNECT_HANDLE_FILLCOLORDefines the color to be used for the connect handle fill color.
LOCKED_HANDLE_FILLCOLORDefines the color to be used for the locked handle fill color.
OUTLINE_HANDLE_FILLCOLORDefines the color to be used for the outline sizer fill color.
OUTLINE_HANDLE_STROKECOLORDefines the color to be used for the outline sizer stroke color.
DEFAULT_FONTFAMILYDefines the default family for all fonts in points.
DEFAULT_FONTSIZEDefines the default size for all fonts in points.
DEFAULT_STARTSIZEDefines the default start size for swimlanes.
DEFAULT_MARKERSIZEDefines the default size for all markers.
DEFAULT_IMAGESIZEDefines the default width and height for images used in the label shape.
ENTITY_SEGMENTDefines the length of the horizontal segment of an Entity Relation.
RECTANGLE_ROUNDING_FACTORDefines the rounding factor for rounded rectangles in percent between 0 and 1.
LINE_ARCSIZEDefines the size of the arcs for rounded edges.
ARROW_SPACINGDefines the spacing between the arrow shape and its terminals.
ARROW_WIDTHDefines the width of the arrow shape.
ARROW_SIZEDefines the size of the arrowhead in the arrow shape.
PAGE_FORMAT_A4_PORTRAITDefines the rectangle for the A4 portrait page format.
PAGE_FORMAT_A4_PORTRAITDefines the rectangle for the A4 portrait page format.
PAGE_FORMAT_LETTER_PORTRAITDefines the rectangle for the Letter portrait page format.
PAGE_FORMAT_LETTER_PORTRAITDefines the rectangle for the Letter portrait page format.
NONEDefines the value for none.
STYLE_PERIMETERDefines the key for the perimeter style.
STYLE_SOURCE_PORTDefines the ID of the cell that should be used for computing the perimeter point of the source for an edge.
STYLE_TARGET_PORTDefines the ID of the cell that should be used for computing the perimeter point of the target for an edge.
STYLE_PORT_CONSTRAINTDefines the direction(s) that edges are allowed to connect to cells in.
STYLE_OPACITYDefines the key for the opacity style.
STYLE_TEXT_OPACITYDefines the key for the text opacity style.
STYLE_OVERFLOWDefines the key for the overflow style.
STYLE_ORTHOGONALDefines if the connection points on either end of the edge should be computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location.
STYLE_EXIT_XDefines the key for the horizontal relative coordinate connection point of an edge with its source terminal.
STYLE_EXIT_YDefines the key for the vertical relative coordinate connection point of an edge with its source terminal.
STYLE_EXIT_PERIMETERDefines if the perimeter should be used to find the exact entry point along the perimeter of the source.
STYLE_ENTRY_XDefines the key for the horizontal relative coordinate connection point of an edge with its target terminal.
STYLE_ENTRY_YDefines the key for the vertical relative coordinate connection point of an edge with its target terminal.
STYLE_ENTRY_PERIMETERDefines if the perimeter should be used to find the exact entry point along the perimeter of the target.
STYLE_WHITE_SPACEDefines the key for the white-space style.
STYLE_ROTATIONDefines the key for the rotation style.
STYLE_FILLCOLORDefines the key for the fill color.
STYLE_GRADIENTCOLORDefines the key for the gradient color.
STYLE_GRADIENT_DIRECTIONDefines the key for the gradient direction.
STYLE_STROKECOLORDefines the key for the strokeColor style.
STYLE_SEPARATORCOLORDefines the key for the separatorColor style.
STYLE_STROKEWIDTHDefines the key for the strokeWidth style.
STYLE_ALIGNDefines the key for the align style.
STYLE_VERTICAL_ALIGNDefines the key for the verticalAlign style.
STYLE_LABEL_POSITIONDefines the key for the horizontal label position of vertices.
STYLE_VERTICAL_LABEL_POSITIONDefines the key for the vertical label position of vertices.
STYLE_IMAGE_ASPECTDefines the key for the image aspect style.
STYLE_IMAGE_ALIGNDefines the key for the align style.
STYLE_IMAGE_VERTICAL_ALIGNDefines the key for the verticalAlign style.
STYLE_GLASSDefines the key for the glass style.
STYLE_IMAGEDefines the key for the image style.
STYLE_IMAGE_WIDTHDefines the key for the imageWidth style.
STYLE_IMAGE_HEIGHTDefines the key for the imageHeight style.
STYLE_IMAGE_BACKGROUNDDefines the key for the image background color.
STYLE_IMAGE_BORDERDefines the key for the image border color.
STYLE_IMAGE_FLIPHDefines the key for the horizontal image flip.
STYLE_IMAGE_FLIPVDefines the key for the vertical image flip.
STYLE_STENCIL_FLIPHDefines the key for the horizontal stencil flip.
STYLE_STENCIL_FLIPVDefines the key for the vertical stencil flip.
STYLE_NOLABELDefines the key for the noLabel style.
STYLE_NOEDGESTYLEDefines the key for the noEdgeStyle style.
STYLE_LABEL_BACKGROUNDCOLORDefines the key for the label background color.
STYLE_LABEL_BORDERCOLORDefines the key for the label border color.
STYLE_LABEL_PADDINGDefines the key for the label padding, ie.
STYLE_INDICATOR_SHAPEDefines the key for the indicator shape used within an mxLabel.
STYLE_INDICATOR_IMAGEDefines the key for the indicator image used within an mxLabel.
STYLE_INDICATOR_COLORDefines the key for the indicatorColor style.
STYLE_INDICATOR_STROKECOLORDefines the key for the indicator stroke color in mxLabel.
STYLE_INDICATOR_GRADIENTCOLORDefines the key for the indicatorGradientColor style.
STYLE_INDICATOR_SPACINGThe defines the key for the spacing between the label and the indicator in mxLabel.
STYLE_INDICATOR_WIDTHDefines the key for the indicator width.
STYLE_INDICATOR_HEIGHTDefines the key for the indicator height.
STYLE_INDICATOR_DIRECTIONDefines the key for the indicatorDirection style.
STYLE_SHADOWDefines the key for the shadow style.
STYLE_SEGMENTDefines the key for the segment style.
STYLE_ENDARROWDefines the key for the end arrow marker.
STYLE_STARTARROWDefines the key for the start arrow marker.
STYLE_ENDSIZEDefines the key for the endSize style.
STYLE_STARTSIZEDefines the key for the startSize style.
STYLE_ENDFILLDefines the key for the endFill style.
STYLE_STARTFILLDefines the key for the startFill style.
STYLE_DASHEDDefines the key for the endSize style.
STYLE_ROUNDEDDefines the key for the rounded style.
STYLE_ARCSIZEDefines the rounding factor for a rounded rectangle in percent (without the percent sign).
STYLE_SMOOTHAn experimental style for edges.
STYLE_SOURCE_PERIMETER_SPACINGDefines the key for the source perimeter spacing.
STYLE_TARGET_PERIMETER_SPACINGDefines the key for the target perimeter spacing.
STYLE_PERIMETER_SPACINGDefines the key for the perimeter spacing.
STYLE_SPACINGDefines the key for the spacing.
STYLE_SPACING_TOPDefines the key for the spacingTop style.
STYLE_SPACING_LEFTDefines the key for the spacingLeft style.
STYLE_SPACING_BOTTOMDefines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).
STYLE_SPACING_RIGHTDefines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).
STYLE_HORIZONTALDefines the key for the horizontal style.
STYLE_DIRECTIONDefines the key for the direction style.
STYLE_ELBOWDefines the key for the elbow style.
STYLE_FONTCOLORDefines the key for the fontColor style.
STYLE_FONTFAMILYDefines the key for the fontFamily style.
STYLE_FONTSIZEDefines the key for the fontSize style (in points).
STYLE_FONTSTYLEDefines the key for the fontStyle style.
STYLE_AUTOSIZEDefines the key for the autosize style.
STYLE_FOLDABLEDefines the key for the foldable style.
STYLE_EDITABLEDefines the key for the editable style.
STYLE_BENDABLEDefines the key for the bendable style.
STYLE_MOVABLEDefines the key for the movable style.
STYLE_RESIZABLEDefines the key for the resizable style.
STYLE_CLONEABLEDefines the key for the cloneable style.
STYLE_DELETABLEDefines the key for the deletable style.
STYLE_SHAPEDefines the key for the shape.
STYLE_EDGEDefines the key for the edge style.
STYLE_LOOPDefines the key for the loop style.
STYLE_ROUTING_CENTER_XDefines the key for the horizontal routing center.
STYLE_ROUTING_CENTER_YDefines the key for the vertical routing center.
FONT_BOLDConstant for bold fonts.
FONT_ITALICConstant for italic fonts.
FONT_UNDERLINEConstant for underlined fonts.
FONT_SHADOWConstant for fonts with a shadow.
SHAPE_RECTANGLEName under which mxRectangleShape is registered in mxCellRenderer.
SHAPE_ELLIPSEName under which mxEllipse is registered in mxCellRenderer.
SHAPE_DOUBLE_ELLIPSEName under which mxDoubleEllipse is registered in mxCellRenderer.
SHAPE_RHOMBUSName under which mxRhombus is registered in mxCellRenderer.
SHAPE_LINEName under which mxLine is registered in mxCellRenderer.
SHAPE_IMAGEName under which mxImageShape is registered in mxCellRenderer.
SHAPE_ARROWName under which mxArrow is registered in mxCellRenderer.
SHAPE_LABELName under which mxLabel is registered in mxCellRenderer.
SHAPE_CYLINDERName under which mxCylinder is registered in mxCellRenderer.
SHAPE_SWIMLANEName under which mxSwimlane is registered in mxCellRenderer.
SHAPE_CONNECTORName under which mxConnector is registered in mxCellRenderer.
SHAPE_ACTORName under which mxActor is registered in mxCellRenderer.
SHAPE_CLOUDName under which mxCloud is registered in mxCellRenderer.
SHAPE_TRIANGLEName under which mxTriangle is registered in mxCellRenderer.
SHAPE_HEXAGONName under which mxHexagon is registered in mxCellRenderer.
ARROW_CLASSICConstant for classic arrow markers.
ARROW_BLOCKConstant for block arrow markers.
ARROW_OPENConstant for open arrow markers.
ARROW_OVALConstant for oval arrow markers.
ARROW_DIAMONDConstant for diamond arrow markers.
ARROW_DIAMONDConstant for diamond arrow markers.
ALIGN_LEFTConstant for left horizontal alignment.
ALIGN_CENTERConstant for center horizontal alignment.
ALIGN_RIGHTConstant for right horizontal alignment.
ALIGN_TOPConstant for top vertical alignment.
ALIGN_MIDDLEConstant for middle vertical alignment.
ALIGN_BOTTOMConstant for bottom vertical alignment.
DIRECTION_NORTHConstant for direction north.
DIRECTION_SOUTHConstant for direction south.
DIRECTION_EASTConstant for direction east.
DIRECTION_WESTConstant for direction west.
DIRECTION_MASK_NONEConstant for no direction.
DIRECTION_MASK_WESTBitwise mask for west direction.
DIRECTION_MASK_NORTHBitwise mask for north direction.
DIRECTION_MASK_SOUTHBitwise mask for south direction.
DIRECTION_MASK_EASTBitwise mask for east direction.
DIRECTION_MASK_ALLBitwise mask for all directions.
ELBOW_VERTICALConstant for elbow vertical.
ELBOW_HORIZONTALConstant for elbow horizontal.
EDGESTYLE_ELBOWName of the elbow edge style.
EDGESTYLE_ENTITY_RELATIONName of the entity relation edge style.
EDGESTYLE_LOOPName of the loop edge style.
EDGESTYLE_SIDETOSIDEName of the side to side edge style.
EDGESTYLE_TOPTOBOTTOMName of the top to bottom edge style.
EDGESTYLE_ORTHOGONALName of the generic orthogonal edge style.
EDGESTYLE_SEGMENTName of the generic segment edge style.
PERIMETER_ELLIPSEName of the ellipse perimeter.
PERIMETER_RECTANGLEName of the rectangle perimeter.
PERIMETER_RHOMBUSName of the rhombus perimeter.
PERIMETER_TRIANGLEName of the triangle perimeter.
+ +

Variables

+ +

DEFAULT_HOTSPOT

Defines the portion of the cell which is to be used as a connectable region.  Default is 0.3.  Possible values are 0 < x <= 1.

+ +

MIN_HOTSPOT_SIZE

Defines the minimum size in pixels of the portion of the cell which is to be used as a connectable region.  Default is 8.

+ +

MAX_HOTSPOT_SIZE

Defines the maximum size in pixels of the portion of the cell which is to be used as a connectable region.  Use 0 for no maximum.  Default is 0.

+ +

RENDERING_HINT_EXACT

Defines the exact rendering hint.

+ +

RENDERING_HINT_FASTER

Defines the faster rendering hint.

+ +

RENDERING_HINT_FASTEST

Defines the fastest rendering hint.

+ +

DIALECT_SVG

Defines the SVG display dialect name.

+ +

DIALECT_VML

Defines the VML display dialect name.

+ +

DIALECT_MIXEDHTML

Defines the mixed HTML display dialect name.

+ +

DIALECT_PREFERHTML

Defines the preferred HTML display dialect name.

+ +

DIALECT_STRICTHTML

Defines the strict HTML display dialect.

+ +

NS_SVG

Defines the SVG namespace.

+ +

NS_XHTML

Defines the XHTML namespace.

+ +

NS_XLINK

Defines the XLink namespace.

+ +

SHADOWCOLOR

Defines the color to be used to draw shadows in shapes and windows.  Default is gray.

+ +

SHADOW_OFFSET_X

Specifies the x-offset of the shadow.  Default is 2.

+ +

SHADOW_OFFSET_Y

Specifies the y-offset of the shadow.  Default is 3.

+ +

SHADOW_OPACITY

Defines the opacity for shadows.  Default is 1.

+ +

NODETYPE_ELEMENT

DOM node of type ELEMENT.

+ +

NODETYPE_ATTRIBUTE

DOM node of type ATTRIBUTE.

+ +

NODETYPE_TEXT

DOM node of type TEXT.

+ +

NODETYPE_CDATA

DOM node of type CDATA.

+ +

NODETYPE_ENTITY_REFERENCE

DOM node of type ENTITY_REFERENCE.

+ +

NODETYPE_ENTITY

DOM node of type ENTITY.

+ +

NODETYPE_PROCESSING_INSTRUCTION

DOM node of type PROCESSING_INSTRUCTION.

+ +

NODETYPE_COMMENT

DOM node of type COMMENT.

+ +

NODETYPE_DOCUMENT

DOM node of type DOCUMENT.

+ +

NODETYPE_DOCUMENTTYPE

DOM node of type DOCUMENTTYPE.

+ +

NODETYPE_DOCUMENT_FRAGMENT

DOM node of type DOCUMENT_FRAGMENT.

+ +

NODETYPE_NOTATION

DOM node of type NOTATION.

+ +

TOOLTIP_VERTICAL_OFFSET

Defines the vertical offset for the tooltip.  Default is 16.

+ +

DEFAULT_VALID_COLOR

Specifies the default valid colorr.  Default is #0000FF.

+ +

DEFAULT_INVALID_COLOR

Specifies the default invalid color.  Default is #FF0000.

+ +

HIGHLIGHT_STROKEWIDTH

Defines the strokewidth to be used for the highlights.  Default is 3.

+ +

CURSOR_MOVABLE_VERTEX

Defines the cursor for a movable vertex.  Default is ‘move’.

+ +

CURSOR_MOVABLE_EDGE

Defines the cursor for a movable edge.  Default is ‘move’.

+ +

CURSOR_LABEL_HANDLE

Defines the cursor for a movable label.  Default is ‘default’.

+ +

CURSOR_BEND_HANDLE

Defines the cursor for a movable bend.  Default is ‘pointer’.

+ +

CURSOR_CONNECT

Defines the cursor for a connectable state.  Default is ‘pointer’.

+ +

HIGHLIGHT_COLOR

Defines the color to be used for the cell highlighting.  Use ‘none’ for no color.  Default is #00FF00.

+ +

TARGET_HIGHLIGHT_COLOR

Defines the color to be used for highlighting a target cell for a new or changed connection.  Note that this may be either a source or target terminal in the graph.  Use ‘none’ for no color.  Default is #0000FF.

+ +

INVALID_CONNECT_TARGET_COLOR

Defines the color to be used for highlighting a invalid target cells for a new or changed connections.  Note that this may be either a source or target terminal in the graph.  Use ‘none’ for no color.  Default is #FF0000.

+ +

DROP_TARGET_COLOR

Defines the color to be used for the highlighting target parent cells (for drag and drop).  Use ‘none’ for no color.  Default is #0000FF.

+ +

VALID_COLOR

Defines the color to be used for the coloring valid connection previews.  Use ‘none’ for no color.  Default is #FF0000.

+ +

INVALID_COLOR

Defines the color to be used for the coloring invalid connection previews.  Use ‘none’ for no color.  Default is #FF0000.

+ +

EDGE_SELECTION_COLOR

Defines the color to be used for the selection border of edges.  Use ‘none’ for no color.  Default is #00FF00.

+ +

VERTEX_SELECTION_COLOR

Defines the color to be used for the selection border of vertices.  Use ‘none’ for no color.  Default is #00FF00.

+ +

VERTEX_SELECTION_STROKEWIDTH

Defines the strokewidth to be used for vertex selections.  Default is 1.

+ +

EDGE_SELECTION_STROKEWIDTH

Defines the strokewidth to be used for edge selections.  Default is 1.

+ +

SELECTION_DASHED

Defines the dashed state to be used for the vertex selection border.  Default is true.

+ +

SELECTION_DASHED

Defines the dashed state to be used for the edge selection border.  Default is true.

+ +

GUIDE_COLOR

Defines the color to be used for the guidelines in mxGraphHandler.  Default is #FF0000.

+ +

GUIDE_STROKEWIDTH

Defines the strokewidth to be used for the guidelines in mxGraphHandler.  Default is 1.

+ +

OUTLINE_COLOR

Defines the color to be used for the outline rectangle border.  Use ‘none’ for no color.  Default is #0099FF.

+ +

OUTLINE_STROKEWIDTH

Defines the strokewidth to be used for the outline rectangle stroke width.  Default is 3.

+ +

HANDLE_SIZE

Defines the default size for handles.  Default is 7.

+ +

LABEL_HANDLE_SIZE

Defines the default size for label handles.  Default is 4.

+ +

HANDLE_FILLCOLOR

Defines the color to be used for the handle fill color.  Use ‘none’ for no color.  Default is #00FF00 (green).

+ +

HANDLE_STROKECOLOR

Defines the color to be used for the handle stroke color.  Use ‘none’ for no color.  Default is black.

+ +

LABEL_HANDLE_FILLCOLOR

Defines the color to be used for the label handle fill color.  Use ‘none’ for no color.  Default is yellow.

+ +

CONNECT_HANDLE_FILLCOLOR

Defines the color to be used for the connect handle fill color.  Use ‘none’ for no color.  Default is #0000FF (blue).

+ +

LOCKED_HANDLE_FILLCOLOR

Defines the color to be used for the locked handle fill color.  Use ‘none’ for no color.  Default is #FF0000 (red).

+ +

OUTLINE_HANDLE_FILLCOLOR

Defines the color to be used for the outline sizer fill color.  Use ‘none’ for no color.  Default is #00FFFF.

+ +

OUTLINE_HANDLE_STROKECOLOR

Defines the color to be used for the outline sizer stroke color.  Use ‘none’ for no color.  Default is #0033FF.

+ +

DEFAULT_FONTFAMILY

Defines the default family for all fonts in points.  Default is Arial,Helvetica.

+ +

DEFAULT_FONTSIZE

Defines the default size for all fonts in points.  Default is 11.

+ +

DEFAULT_STARTSIZE

Defines the default start size for swimlanes.  Default is 40.

+ +

DEFAULT_MARKERSIZE

Defines the default size for all markers.  Default is 6.

+ +

DEFAULT_IMAGESIZE

Defines the default width and height for images used in the label shape.  Default is 24.

+ +

ENTITY_SEGMENT

Defines the length of the horizontal segment of an Entity Relation.  This can be overridden using mxConstants.STYLE_SEGMENT style.  Default is 30.

+ +

RECTANGLE_ROUNDING_FACTOR

Defines the rounding factor for rounded rectangles in percent between 0 and 1.  Values should be smaller than 0.5.  Default is 0.15.

+ +

LINE_ARCSIZE

Defines the size of the arcs for rounded edges.  Default is 20.

+ +

ARROW_SPACING

Defines the spacing between the arrow shape and its terminals.  Default is 10.

+ +

ARROW_WIDTH

Defines the width of the arrow shape.  Default is 30.

+ +

ARROW_SIZE

Defines the size of the arrowhead in the arrow shape.  Default is 30.

+ +

PAGE_FORMAT_A4_PORTRAIT

Defines the rectangle for the A4 portrait page format.  The dimensions of this page format are 826x1169 pixels.

+ +

PAGE_FORMAT_A4_PORTRAIT

Defines the rectangle for the A4 portrait page format.  The dimensions of this page format are 826x1169 pixels.

+ +

PAGE_FORMAT_LETTER_PORTRAIT

Defines the rectangle for the Letter portrait page format.  The dimensions of this page format are 850x1100 pixels.

+ +

PAGE_FORMAT_LETTER_PORTRAIT

Defines the rectangle for the Letter portrait page format.  The dimensions of this page format are 850x1100 pixels.

+ +

NONE

Defines the value for none.  Default is “none”.

+ +

STYLE_PERIMETER

Defines the key for the perimeter style.  This is a function that defines the perimeter around a particular shape.  Possible values are the functions defined in mxPerimeter.  Alternatively, the constants in this class that start with <code>PERIMETER_</code> may be used to access perimeter styles in mxStyleRegistry.

+ +

STYLE_SOURCE_PORT

Defines the ID of the cell that should be used for computing the perimeter point of the source for an edge.  This allows for graphically connecting to a cell while keeping the actual terminal of the edge.

+ +

STYLE_TARGET_PORT

Defines the ID of the cell that should be used for computing the perimeter point of the target for an edge.  This allows for graphically connecting to a cell while keeping the actual terminal of the edge.

+ +

STYLE_PORT_CONSTRAINT

Defines the direction(s) that edges are allowed to connect to cells in.  Possible values are <code>DIRECTION_NORTH, DIRECTION_SOUTH, DIRECTION_EAST</code> and <code>DIRECTION_WEST</code>.

+ +

STYLE_OPACITY

Defines the key for the opacity style.  The type of the value is numeric and the possible range is 0-100.

+ +

STYLE_TEXT_OPACITY

Defines the key for the text opacity style.  The type of the value is numeric and the possible range is 0-100.

+ +

STYLE_OVERFLOW

Defines the key for the overflow style.  Possible values are ‘visible’, ‘hidden’ and ‘fill’.  The default value is ‘visible’.  This value specifies how overlapping vertex labels are handled.  A value of ‘visible’ will show the complete label.  A value of ‘hidden’ will clip the label so that it does not overlap the vertex bounds.  A value of ‘fill’ will use the vertex bounds for the label.  See mxGraph.isLabelClipped.

+ +

STYLE_ORTHOGONAL

Defines if the connection points on either end of the edge should be computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location.  Default is false.  This is used in mxGraph.isOrthogonal, which also returns true if the edgeStyle of the edge is an elbow or entity.

+ +

STYLE_EXIT_X

Defines the key for the horizontal relative coordinate connection point of an edge with its source terminal.

+ +

STYLE_EXIT_Y

Defines the key for the vertical relative coordinate connection point of an edge with its source terminal.

+ +

STYLE_EXIT_PERIMETER

Defines if the perimeter should be used to find the exact entry point along the perimeter of the source.  Possible values are 0 (false) and 1 (true).  Default is 1 (true).

+ +

STYLE_ENTRY_X

Defines the key for the horizontal relative coordinate connection point of an edge with its target terminal.

+ +

STYLE_ENTRY_Y

Defines the key for the vertical relative coordinate connection point of an edge with its target terminal.

+ +

STYLE_ENTRY_PERIMETER

Defines if the perimeter should be used to find the exact entry point along the perimeter of the target.  Possible values are 0 (false) and 1 (true).  Default is 1 (true).

+ +

STYLE_WHITE_SPACE

Defines the key for the white-space style.  Possible values are ‘nowrap’ and ‘wrap’.  The default value is ‘nowrap’.  This value specifies how white-space inside a HTML vertex label should be handled.  A value of ‘nowrap’ means the text will never wrap to the next line until a linefeed is encountered.  A value of ‘wrap’ means text will wrap when necessary.  This style is only used for HTML labels.  See mxGraph.isWrapping.

+ +

STYLE_ROTATION

Defines the key for the rotation style.  The type of the value is numeric and the possible range is 0-360.

+ +

STYLE_FILLCOLOR

Defines the key for the fill color.  Possible values are all HTML color names or HEX codes, as well as special keywords such as ‘swimlane, ‘inherit’ or ‘indicated’ to use the color code of a related cell or the indicator shape.

+ +

STYLE_GRADIENTCOLOR

Defines the key for the gradient color.  Possible values are all HTML color names or HEX codes, as well as special keywords such as ‘swimlane, ‘inherit’ or ‘indicated’ to use the color code of a related cell or the indicator shape.  This is ignored if no fill color is defined.

+ +

STYLE_GRADIENT_DIRECTION

Defines the key for the gradient direction.  Possible values are DIRECTION_EAST, DIRECTION_WEST, DIRECTION_NORTH and DIRECTION_SOUTH.  Default is DIRECTION_SOUTH.  Generally, and by default in mxGraph, gradient painting is done from the value of STYLE_FILLCOLOR to the value of STYLE_GRADIENTCOLOR.  Taking the example of DIRECTION_NORTH, this means STYLE_FILLCOLOR color at the bottom of paint pattern and STYLE_GRADIENTCOLOR at top, with a gradient in-between.

+ +

STYLE_STROKECOLOR

Defines the key for the strokeColor style.  Possible values are all HTML color names or HEX codes, as well as special keywords such as ‘swimlane, ‘inherit’, ‘indicated’ to use the color code of a related cell or the indicator shape or ‘none’ for no color.

+ +

STYLE_SEPARATORCOLOR

Defines the key for the separatorColor style.  Possible values are all HTML color names or HEX codes.  This style is only used for SHAPE_SWIMLANE shapes.

+ +

STYLE_STROKEWIDTH

Defines the key for the strokeWidth style.  The type of the value is numeric and the possible range is any non-negative value larger or equal to 1.  The value defines the stroke width in pixels.  Note: To hide a stroke use strokeColor none.

+ +

STYLE_ALIGN

Defines the key for the align style.  Possible values are ALIGN_LEFT, ALIGN_CENTER and ALIGN_RIGHT.  This value defines how the lines of the label are horizontally aligned.  ALIGN_LEFT mean label text lines are aligned to left of the label bounds, ALIGN_RIGHT to the right of the label bounds and ALIGN_CENTER means the center of the text lines are aligned in the center of the label bounds.  Note this value doesn’t affect the positioning of the overall label bounds relative to the vertex, to move the label bounds horizontally, use STYLE_LABEL_POSITION.

+ +

STYLE_VERTICAL_ALIGN

Defines the key for the verticalAlign style.  Possible values are ALIGN_TOP, ALIGN_MIDDLE and ALIGN_BOTTOM.  This value defines how the lines of the label are vertically aligned.  ALIGN_TOP means the topmost label text line is aligned against the top of the label bounds, ALIGN_BOTTOM means the bottom-most label text line is aligned against the bottom of the label bounds and ALIGN_MIDDLE means there is equal spacing between the topmost text label line and the top of the label bounds and the bottom-most text label line and the bottom of the label bounds.  Note this value doesn’t affect the positioning of the overall label bounds relative to the vertex, to move the label bounds vertically, use STYLE_VERTICAL_LABEL_POSITION.

+ +

STYLE_LABEL_POSITION

Defines the key for the horizontal label position of vertices.  Possible values are ALIGN_LEFT, ALIGN_CENTER and ALIGN_RIGHT.  Default is ALIGN_CENTER.  The label align defines the position of the label relative to the cell.  ALIGN_LEFT means the entire label bounds is placed completely just to the left of the vertex, ALIGN_RIGHT means adjust to the right and ALIGN_CENTER means the label bounds are vertically aligned with the bounds of the vertex.  Note this value doesn’t affect the positioning of label within the label bounds, to move the label horizontally within the label bounds, use STYLE_ALIGN.

+ +

STYLE_VERTICAL_LABEL_POSITION

Defines the key for the vertical label position of vertices.  Possible values are ALIGN_TOP, ALIGN_BOTTOM and ALIGN_MIDDLE.  Default is ALIGN_MIDDLE.  The label align defines the position of the label relative to the cell.  ALIGN_TOP means the entire label bounds is placed completely just on the top of the vertex, ALIGN_BOTTOM means adjust on the bottom and ALIGN_MIDDLE means the label bounds are horizontally aligned with the bounds of the vertex.  Note this value doesn’t affect the positioning of label within the label bounds, to move the label vertically within the label bounds, use STYLE_VERTICAL_ALIGN.

+ +

STYLE_IMAGE_ASPECT

Defines the key for the image aspect style.  Possible values are 0 (do not preserve aspect) or 1 (keep aspect).  This is only used in mxImageShape.  Default is 1.

+ +

STYLE_IMAGE_ALIGN

Defines the key for the align style.  Possible values are ALIGN_LEFT, ALIGN_CENTER and ALIGN_RIGHT.  The value defines how any image in the vertex label is aligned horizontally within the label bounds of a SHAPE_LABEL shape.

+ +

STYLE_IMAGE_VERTICAL_ALIGN

Defines the key for the verticalAlign style.  Possible values are ALIGN_TOP, ALIGN_MIDDLE and ALIGN_BOTTOM.  The value defines how any image in the vertex label is aligned vertically within the label bounds of a SHAPE_LABEL shape.

+ +

STYLE_GLASS

Defines the key for the glass style.  Possible values are 0 (disabled) and 1(enabled).  The default value is 0.  This is used in mxLabel.

+ +

STYLE_IMAGE

Defines the key for the image style.  Possible values are any image URL, the type of the value is String.  This is the path to the image to image that is to be displayed within the label of a vertex.

+ +

STYLE_IMAGE_WIDTH

Defines the key for the imageWidth style.  The type of this value is int, the value is the image width in pixels and must be greater than 0.

+ +

STYLE_IMAGE_HEIGHT

Defines the key for the imageHeight style.  The type of this value is int, the value is the image height in pixels and must be greater than 0.

+ +

STYLE_IMAGE_BACKGROUND

Defines the key for the image background color.  This style is only used in mxImageShape.  Possible values are all HTML color names or HEX codes.

+ +

STYLE_IMAGE_BORDER

Defines the key for the image border color.  This style is only used in mxImageShape.  Possible values are all HTML color names or HEX codes.

+ +

STYLE_IMAGE_FLIPH

Defines the key for the horizontal image flip.  This style is only used in mxImageShape.  Possible values are 0 and 1.  Default is 0.

+ +

STYLE_IMAGE_FLIPV

Defines the key for the vertical image flip.  This style is only used in mxImageShape.  Possible values are 0 and 1.  Default is 0.

+ +

STYLE_STENCIL_FLIPH

Defines the key for the horizontal stencil flip.  This style is only used for mxStencilShape.  Possible values are 0 and 1.  Default is 0.

+ +

STYLE_STENCIL_FLIPV

Defines the key for the vertical stencil flip.  This style is only used for mxStencilShape.  Possible values are 0 and 1.  Default is 0.

+ +

STYLE_NOLABEL

Defines the key for the noLabel style.  If this is true then no label is visible for a given cell.  Possible values are true or false (1 or 0).  Default is false.

+ +

STYLE_NOEDGESTYLE

Defines the key for the noEdgeStyle style.  If this is true then no edge style is applied for a given edge.  Possible values are true or false (1 or 0).  Default is false.

+ +

STYLE_LABEL_BACKGROUNDCOLOR

Defines the key for the label background color.  Possible values are all HTML color names or HEX codes.

+ +

STYLE_LABEL_BORDERCOLOR

Defines the key for the label border color.  Possible values are all HTML color names or HEX codes.

+ +

STYLE_LABEL_PADDING

Defines the key for the label padding, ie. the space between the label border and the label.

+ +

STYLE_INDICATOR_SHAPE

Defines the key for the indicator shape used within an mxLabel.  Possible values are all SHAPE_* constants or the names of any new shapes.

+ +

STYLE_INDICATOR_IMAGE

Defines the key for the indicator image used within an mxLabel.  Possible values are all image URLs.

+ +

STYLE_INDICATOR_COLOR

Defines the key for the indicatorColor style.  Possible values are all HTML color names or HEX codes, as well as the special ‘swimlane’ keyword to refer to the color of the parent swimlane if one exists.

+ +

STYLE_INDICATOR_STROKECOLOR

Defines the key for the indicator stroke color in mxLabel.  Possible values are all color codes.

+ +

STYLE_INDICATOR_GRADIENTCOLOR

Defines the key for the indicatorGradientColor style.  Possible values are all HTML color names or HEX codes.  This style is only supported in SHAPE_LABEL shapes.

+ +

STYLE_INDICATOR_SPACING

The defines the key for the spacing between the label and the indicator in mxLabel.  Possible values are in pixels.

+ +

STYLE_INDICATOR_WIDTH

Defines the key for the indicator width.  Possible values start at 0 (in pixels).

+ +

STYLE_INDICATOR_HEIGHT

Defines the key for the indicator height.  Possible values start at 0 (in pixels).

+ +

STYLE_INDICATOR_DIRECTION

Defines the key for the indicatorDirection style.  The direction style is used to specify the direction of certain shapes (eg.  mxTriangle).  Possible values are DIRECTION_EAST (default), DIRECTION_WEST, DIRECTION_NORTH and DIRECTION_SOUTH.

+ +

STYLE_SHADOW

Defines the key for the shadow style.  The type of the value is Boolean.

+ +

STYLE_SEGMENT

Defines the key for the segment style.  The type of this value is float and the value represents the size of the horizontal segment of the entity relation style.  Default is ENTITY_SEGMENT.

+ +

STYLE_ENDARROW

Defines the key for the end arrow marker.  Possible values are all constants with an ARROW-prefix.  This is only used in mxConnector.

Example

style[mxConstants.STYLE_ENDARROW] = mxConstants.ARROW_CLASSIC;
+ +

STYLE_STARTARROW

Defines the key for the start arrow marker.  Possible values are all constants with an ARROW-prefix.  This is only used in mxConnector.  See STYLE_ENDARROW.

+ +

STYLE_ENDSIZE

Defines the key for the endSize style.  The type of this value is numeric and the value represents the size of the end marker in pixels.

+ +

STYLE_STARTSIZE

Defines the key for the startSize style.  The type of this value is numeric and the value represents the size of the start marker or the size of the swimlane title region depending on the shape it is used for.

+ +

STYLE_ENDFILL

Defines the key for the endFill style.  Use 0 for no fill or 1 (default) for fill.  (This style is only exported via mxImageExport.)

+ +

STYLE_STARTFILL

Defines the key for the startFill style.  Use 0 for no fill or 1 (default) for fill.  (This style is only exported via mxImageExport.)

+ +

STYLE_DASHED

Defines the key for the endSize style.  The type of this value is numeric and the value represents the size of the end marker in pixels.

+ +

STYLE_ROUNDED

Defines the key for the rounded style.  The type of this value is Boolean.  For edges this determines whether or not joins between edges segments are smoothed to a rounded finish.  For vertices that have the rectangle shape, this determines whether or not the rectangle is rounded.

+ +

STYLE_ARCSIZE

Defines the rounding factor for a rounded rectangle in percent (without the percent sign).  Possible values are between 0 and 100.  If this value is not specified then RECTANGLE_ROUNDING_FACTOR * 100 is used.  (This style is only exported via mxImageExport.)

+ +

STYLE_SMOOTH

An experimental style for edges.  This style is currently not available in the backends and is implemented differently for VML and SVG.  The use of this style is currently only recommended for VML.

+ +

STYLE_SOURCE_PERIMETER_SPACING

Defines the key for the source perimeter spacing.  The type of this value is numeric.  This is the distance between the source connection point of an edge and the perimeter of the source vertex in pixels.  This style only applies to edges.

+ +

STYLE_TARGET_PERIMETER_SPACING

Defines the key for the target perimeter spacing.  The type of this value is numeric.  This is the distance between the target connection point of an edge and the perimeter of the target vertex in pixels.  This style only applies to edges.

+ +

STYLE_PERIMETER_SPACING

Defines the key for the perimeter spacing.  This is the distance between the connection point and the perimeter in pixels.  When used in a vertex style, this applies to all incoming edges to floating ports (edges that terminate on the perimeter of the vertex).  When used in an edge style, this spacing applies to the source and target separately, if they terminate in floating ports (on the perimeter of the vertex).

+ +

STYLE_SPACING

Defines the key for the spacing.  The value represents the spacing, in pixels, added to each side of a label in a vertex (style applies to vertices only).

+ +

STYLE_SPACING_TOP

Defines the key for the spacingTop style.  The value represents the spacing, in pixels, added to the top side of a label in a vertex (style applies to vertices only).

+ +

STYLE_SPACING_LEFT

Defines the key for the spacingLeft style.  The value represents the spacing, in pixels, added to the left side of a label in a vertex (style applies to vertices only).

+ +

STYLE_SPACING_BOTTOM

Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).

+ +

STYLE_SPACING_RIGHT

Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).

+ +

STYLE_HORIZONTAL

Defines the key for the horizontal style.  Possible values are true or false.  This value only applies to vertices.  If the STYLE_SHAPE is <code>SHAPE_SWIMLANE</code> a value of false indicates that the swimlane should be drawn vertically, true indicates to draw it horizontally.  If the shape style does not indicate that this vertex is a swimlane, this value affects only whether the label is drawn horizontally or vertically.

+ +

STYLE_DIRECTION

Defines the key for the direction style.  The direction style is used to specify the direction of certain shapes (eg.  mxTriangle).  Possible values are DIRECTION_EAST (default), DIRECTION_WEST, DIRECTION_NORTH and DIRECTION_SOUTH.

+ +

STYLE_ELBOW

Defines the key for the elbow style.  Possible values are ELBOW_HORIZONTAL and ELBOW_VERTICAL.  Default is ELBOW_HORIZONTAL.  This defines how the three segment orthogonal edge style leaves its terminal vertices.  The vertical style leaves the terminal vertices at the top and bottom sides.

+ +

STYLE_FONTCOLOR

Defines the key for the fontColor style.  Possible values are all HTML color names or HEX codes.

+ +

STYLE_FONTFAMILY

Defines the key for the fontFamily style.  Possible values are names such as Arial; Dialog; Verdana; Times New Roman.  The value is of type String.

+ +

STYLE_FONTSIZE

Defines the key for the fontSize style (in points).  The type of the value is int.

+ +

STYLE_FONTSTYLE

Defines the key for the fontStyle style.  Values may be any logical AND (sum) of FONT_BOLD, FONT_ITALIC, FONT_UNDERLINE and FONT_SHADOW.  The type of the value is int.

+ +

STYLE_AUTOSIZE

Defines the key for the autosize style.  This specifies if a cell should be resized automatically if the value has changed.  Possible values are 0 or 1.  Default is 0.  See mxGraph.isAutoSizeCell.  This is normally combined with STYLE_RESIZABLE to disable manual sizing.

+ +

STYLE_FOLDABLE

Defines the key for the foldable style.  This specifies if a cell is foldable using a folding icon.  Possible values are 0 or 1.  Default is 1.  See mxGraph.isCellFoldable.

+ +

STYLE_EDITABLE

Defines the key for the editable style.  This specifies if the value of a cell can be edited using the in-place editor.  Possible values are 0 or 1.  Default is 1.  See mxGraph.isCellEditable.

+ +

STYLE_BENDABLE

Defines the key for the bendable style.  This specifies if the control points of an edge can be moved.  Possible values are 0 or 1.  Default is 1.  See mxGraph.isCellBendable.

+ +

STYLE_MOVABLE

Defines the key for the movable style.  This specifies if a cell can be moved.  Possible values are 0 or 1.  Default is 1.  See mxGraph.isCellMovable.

+ +

STYLE_RESIZABLE

Defines the key for the resizable style.  This specifies if a cell can be resized.  Possible values are 0 or 1.  Default is 1.  See mxGraph.isCellResizable.

+ +

STYLE_CLONEABLE

Defines the key for the cloneable style.  This specifies if a cell can be cloned.  Possible values are 0 or 1.  Default is 1.  See mxGraph.isCellCloneable.

+ +

STYLE_DELETABLE

Defines the key for the deletable style.  This specifies if a cell can be deleted.  Possible values are 0 or 1.  Default is 1.  See mxGraph.isCellDeletable.

+ +

STYLE_SHAPE

Defines the key for the shape.  Possible values are all constants with a SHAPE-prefix or any newly defined shape names.

+ +

STYLE_EDGE

Defines the key for the edge style.  Possible values are the functions defined in mxEdgeStyle.

+ +

STYLE_LOOP

Defines the key for the loop style.  Possible values are the functions defined in mxEdgeStyle.

+ +

STYLE_ROUTING_CENTER_X

Defines the key for the horizontal routing center.  Possible values are between -0.5 and 0.5.  This is the relative offset from the center used for connecting edges.  The type of this value is numeric.

+ +

STYLE_ROUTING_CENTER_Y

Defines the key for the vertical routing center.  Possible values are between -0.5 and 0.5.  This is the relative offset from the center used for connecting edges.  The type of this value is numeric.

+ +

FONT_BOLD

Constant for bold fonts.  Default is 1.

+ +

FONT_ITALIC

Constant for italic fonts.  Default is 2.

+ +

FONT_UNDERLINE

Constant for underlined fonts.  Default is 4.

+ +

FONT_SHADOW

Constant for fonts with a shadow.  Default is 8.

+ +

SHAPE_RECTANGLE

Name under which mxRectangleShape is registered in mxCellRenderer.  Default is rectangle.

+ +

SHAPE_ELLIPSE

Name under which mxEllipse is registered in mxCellRenderer.  Default is ellipse.

+ +

SHAPE_DOUBLE_ELLIPSE

Name under which mxDoubleEllipse is registered in mxCellRenderer.  Default is doubleEllipse.

+ +

SHAPE_RHOMBUS

Name under which mxRhombus is registered in mxCellRenderer.  Default is rhombus.

+ +

SHAPE_LINE

Name under which mxLine is registered in mxCellRenderer.  Default is line.

+ +

SHAPE_IMAGE

Name under which mxImageShape is registered in mxCellRenderer.  Default is image.

+ +

SHAPE_ARROW

Name under which mxArrow is registered in mxCellRenderer.  Default is arrow.

+ +

SHAPE_LABEL

Name under which mxLabel is registered in mxCellRenderer.  Default is label.

+ +

SHAPE_CYLINDER

Name under which mxCylinder is registered in mxCellRenderer.  Default is cylinder.

+ +

SHAPE_SWIMLANE

Name under which mxSwimlane is registered in mxCellRenderer.  Default is swimlane.

+ +

SHAPE_CONNECTOR

Name under which mxConnector is registered in mxCellRenderer.  Default is connector.

+ +

SHAPE_ACTOR

Name under which mxActor is registered in mxCellRenderer.  Default is actor.

+ +

SHAPE_CLOUD

Name under which mxCloud is registered in mxCellRenderer.  Default is cloud.

+ +

SHAPE_TRIANGLE

Name under which mxTriangle is registered in mxCellRenderer.  Default is triangle.

+ +

SHAPE_HEXAGON

Name under which mxHexagon is registered in mxCellRenderer.  Default is hexagon.

+ +

ARROW_CLASSIC

Constant for classic arrow markers.

+ +

ARROW_BLOCK

Constant for block arrow markers.

+ +

ARROW_OPEN

Constant for open arrow markers.

+ +

ARROW_OVAL

Constant for oval arrow markers.

+ +

ARROW_DIAMOND

Constant for diamond arrow markers.

+ +

ARROW_DIAMOND

Constant for diamond arrow markers.

+ +

ALIGN_LEFT

Constant for left horizontal alignment.  Default is left.

+ +

ALIGN_CENTER

Constant for center horizontal alignment.  Default is center.

+ +

ALIGN_RIGHT

Constant for right horizontal alignment.  Default is right.

+ +

ALIGN_TOP

Constant for top vertical alignment.  Default is top.

+ +

ALIGN_MIDDLE

Constant for middle vertical alignment.  Default is middle.

+ +

ALIGN_BOTTOM

Constant for bottom vertical alignment.  Default is bottom.

+ +

DIRECTION_NORTH

Constant for direction north.  Default is north.

+ +

DIRECTION_SOUTH

Constant for direction south.  Default is south.

+ +

DIRECTION_EAST

Constant for direction east.  Default is east.

+ +

DIRECTION_WEST

Constant for direction west.  Default is west.

+ +

DIRECTION_MASK_NONE

Constant for no direction.

+ +

DIRECTION_MASK_WEST

Bitwise mask for west direction.

+ +

DIRECTION_MASK_NORTH

Bitwise mask for north direction.

+ +

DIRECTION_MASK_SOUTH

Bitwise mask for south direction.

+ +

DIRECTION_MASK_EAST

Bitwise mask for east direction.

+ +

DIRECTION_MASK_ALL

Bitwise mask for all directions.

+ +

ELBOW_VERTICAL

Constant for elbow vertical.  Default is horizontal.

+ +

ELBOW_HORIZONTAL

Constant for elbow horizontal.  Default is horizontal.

+ +

EDGESTYLE_ELBOW

Name of the elbow edge style.  Can be used as a string value for the STYLE_EDGE style.

+ +

EDGESTYLE_ENTITY_RELATION

Name of the entity relation edge style.  Can be used as a string value for the STYLE_EDGE style.

+ +

EDGESTYLE_LOOP

Name of the loop edge style.  Can be used as a string value for the STYLE_EDGE style.

+ +

EDGESTYLE_SIDETOSIDE

Name of the side to side edge style.  Can be used as a string value for the STYLE_EDGE style.

+ +

EDGESTYLE_TOPTOBOTTOM

Name of the top to bottom edge style.  Can be used as a string value for the STYLE_EDGE style.

+ +

EDGESTYLE_ORTHOGONAL

Name of the generic orthogonal edge style.  Can be used as a string value for the STYLE_EDGE style.

+ +

EDGESTYLE_SEGMENT

Name of the generic segment edge style.  Can be used as a string value for the STYLE_EDGE style.

+ +

PERIMETER_ELLIPSE

Name of the ellipse perimeter.  Can be used as a string value for the STYLE_PERIMETER style.

+ +

PERIMETER_RECTANGLE

Name of the rectangle perimeter.  Can be used as a string value for the STYLE_PERIMETER style.

+ +

PERIMETER_RHOMBUS

Name of the rhombus perimeter.  Can be used as a string value for the STYLE_PERIMETER style.

+ +

PERIMETER_TRIANGLE

PERIMETER_TRIANGLE: 'trianglePerimeter' }

Name of the triangle perimeter.  Can be used as a string value for the STYLE_PERIMETER style.

+ +
+ + + + + + + + + + +
Extends mxShape to implement an image shape with a label.
Extends mxShape to implement a rectangle shape.
Renders cells into a document object model.
Extends mxShape to implement an ellipse shape.
Extends mxShape to implement a double ellipse shape.
Extends mxShape to implement a rhombus (aka diamond) shape.
Extends mxShape to implement a horizontal line shape.
Extends mxShape to implement an image shape.
Extends mxShape to implement an arrow shape.
Extends mxShape to implement an cylinder shape.
Extends mxShape to implement a swimlane shape.
Extends mxShape to implement a connector shape.
Extends mxShape to implement an actor shape.
Extends mxActor to implement a cloud shape.
Implementation of the triangle shape.
Implementation of the hexagon shape.
PERIMETER_TRIANGLE: 'trianglePerimeter' }
Name of the triangle perimeter.
Defines the key for the segment style.
Provides various perimeter functions to be used in a style as the value of mxConstants.STYLE_PERIMETER.
Singleton class that acts as a global converter from string to object values in a style.
mxGraph.prototype.isLabelClipped = function(cell)
Returns true if the overflow portion of labels should be hidden.
mxGraph.prototype.isOrthogonal = function(edge)
Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.
mxGraph.prototype.isWrapping = function(cell)
This enables wrapping for HTML labels.
Constant for direction east.
Constant for direction west.
Constant for direction north.
Constant for direction south.
Defines the key for the fill color.
Defines the key for the gradient color.
Name under which mxSwimlane is registered in mxCellRenderer.
Constant for left horizontal alignment.
Constant for center horizontal alignment.
Constant for right horizontal alignment.
Defines the key for the horizontal label position of vertices.
Constant for top vertical alignment.
Constant for middle vertical alignment.
Constant for bottom vertical alignment.
Defines the key for the vertical label position of vertices.
Defines the key for the align style.
Defines the key for the verticalAlign style.
Name under which mxLabel is registered in mxCellRenderer.
Implements a shape based on a mxStencil.
Defines the key for the end arrow marker.
Creates a new image export instance to be used with an export canvas.
Defines the key for the shape.
Constant for elbow horizontal.
Constant for elbow vertical.
Constant for bold fonts.
Constant for italic fonts.
Constant for underlined fonts.
Constant for fonts with a shadow.
mxGraph.prototype.isAutoSizeCell = function(cell)
Returns true if the size of the given cell should automatically be updated after a change of the label.
Defines the key for the resizable style.
mxGraph.prototype.isCellFoldable = function(cell,
collapse)
Returns true if the given cell is foldable.
mxGraph.prototype.isCellEditable = function(cell)
Returns true if the given cell is editable.
mxGraph.prototype.isCellBendable = function(cell)
Returns true if the given cell is bendable.
mxGraph.prototype.isCellMovable = function(cell)
Returns true if the given cell is moveable.
mxGraph.prototype.isCellResizable = function(cell)
Returns true if the given cell is resizable.
mxGraph.prototype.isCellCloneable = function(cell)
Returns true if the given cell is cloneable.
mxGraph.prototype.isCellDeletable = function(cell)
Returns true if the given cell is moveable.
Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxDictionary-js.html b/docs/js-api/files/util/mxDictionary-js.html new file mode 100644 index 000000000..8f6494af9 --- /dev/null +++ b/docs/js-api/files/util/mxDictionary-js.html @@ -0,0 +1,59 @@ + + +mxDictionary + + + + + + + + + +

mxDictionary

A wrapper class for an associative array with object keys.  Note: This implementation uses <mxObjectIdentitiy> to turn object keys into strings.

Summary
mxDictionaryA wrapper class for an associative array with object keys.
Functions
mxEventSourceConstructs a new dictionary which allows object to be used as keys.
mapStores the (key, value) pairs in this dictionary.
clearClears the dictionary.
getReturns the value for the given key.
putStores the value under the given key and returns the previous value for that key.
removeRemoves the value for the given key and returns the value that has been removed.
getKeysReturns all keys as an array.
getValuesReturns all values as an array.
visitVisits all entries in the dictionary using the given function with the following signature: function(key, value) where key is a string and value is an object.
+ +

Functions

+ +

mxEventSource

Constructs a new dictionary which allows object to be used as keys.

+ +

map

Stores the (key, value) pairs in this dictionary.

+ +

clear

mxDictionary.prototype.clear = function()

Clears the dictionary.

+ +

get

mxDictionary.prototype.get = function(key)

Returns the value for the given key.

+ +

put

mxDictionary.prototype.put = function(key,
value)

Stores the value under the given key and returns the previous value for that key.

+ +

remove

mxDictionary.prototype.remove = function(key)

Removes the value for the given key and returns the value that has been removed.

+ +

getKeys

mxDictionary.prototype.getKeys = function()

Returns all keys as an array.

+ +

getValues

mxDictionary.prototype.getValues = function()

Returns all values as an array.

+ +

visit

mxDictionary.prototype.visit = function(visitor)

Visits all entries in the dictionary using the given function with the following signature: function(key, value) where key is a string and value is an object.

Parameters

visitorA function that takes the key and value as arguments.
+ +
+ + + + + + + + + + +
mxDictionary.prototype.clear = function()
Clears the dictionary.
mxDictionary.prototype.get = function(key)
Returns the value for the given key.
mxDictionary.prototype.put = function(key,
value)
Stores the value under the given key and returns the previous value for that key.
mxDictionary.prototype.remove = function(key)
Removes the value for the given key and returns the value that has been removed.
mxDictionary.prototype.getKeys = function()
Returns all keys as an array.
mxDictionary.prototype.getValues = function()
Returns all values as an array.
mxDictionary.prototype.visit = function(visitor)
Visits all entries in the dictionary using the given function with the following signature: function(key, value) where key is a string and value is an object.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxDivResizer-js.html b/docs/js-api/files/util/mxDivResizer-js.html new file mode 100644 index 000000000..ffb7e4c01 --- /dev/null +++ b/docs/js-api/files/util/mxDivResizer-js.html @@ -0,0 +1,64 @@ + + +mxDivResizer + + + + + + + + + +

mxDivResizer

Maintains the size of a div element in Internet Explorer.  This is a workaround for the right and bottom style being ignored in IE.

If you need a div to cover the scrollwidth and -height of a document, then you can use this class as follows:

var resizer = new mxDivResizer(background);
+resizer.getDocumentHeight = function()
+{
+  return document.body.scrollHeight;
+}
+resizer.getDocumentWidth = function()
+{
+  return document.body.scrollWidth;
+}
+resizer.resize();
Summary
mxDivResizerMaintains the size of a div element in Internet Explorer.
Functions
mxDivResizerConstructs an object that maintains the size of a div element when the window is being resized.
resizeWidthBoolean specifying if the width should be updated.
resizeHeightBoolean specifying if the height should be updated.
handlingResizeBoolean specifying if the width should be updated.
resizeUpdates the style of the DIV after the window has been resized.
getDocumentWidthHook for subclassers to return the width of the document (without scrollbars).
getDocumentHeightHook for subclassers to return the height of the document (without scrollbars).
+ +

Functions

+ +

mxDivResizer

function mxDivResizer(div,
container)

Constructs an object that maintains the size of a div element when the window is being resized.  This is only required for Internet Explorer as it ignores the respective stylesheet information for DIV elements.

Parameters

divReference to the DOM node whose size should be maintained.
containerOptional Container that contains the div.  Default is the window.
+ +

resizeWidth

Boolean specifying if the width should be updated.

+ +

resizeHeight

Boolean specifying if the height should be updated.

+ +

handlingResize

Boolean specifying if the width should be updated.

+ +

resize

mxDivResizer.prototype.resize = function()

Updates the style of the DIV after the window has been resized.

+ +

getDocumentWidth

mxDivResizer.prototype.getDocumentWidth = function()

Hook for subclassers to return the width of the document (without scrollbars).

+ +

getDocumentHeight

mxDivResizer.prototype.getDocumentHeight = function()

Hook for subclassers to return the height of the document (without scrollbars).

+ +
+ + + + + + + + + + +
function mxDivResizer(div,
container)
Constructs an object that maintains the size of a div element when the window is being resized.
mxDivResizer.prototype.resize = function()
Updates the style of the DIV after the window has been resized.
mxDivResizer.prototype.getDocumentWidth = function()
Hook for subclassers to return the width of the document (without scrollbars).
mxDivResizer.prototype.getDocumentHeight = function()
Hook for subclassers to return the height of the document (without scrollbars).
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxDragSource-js.html b/docs/js-api/files/util/mxDragSource-js.html new file mode 100644 index 000000000..d7333689c --- /dev/null +++ b/docs/js-api/files/util/mxDragSource-js.html @@ -0,0 +1,117 @@ + + +mxDragSource + + + + + + + + + +

mxDragSource

Wrapper to create a drag source from a DOM element so that the element can be dragged over a graph and dropped into the graph as a new cell.

TODO: Problem is that in the dropHandler the current preview location is not available, so the preview and the dropHandler must match.

Summary
mxDragSourceWrapper to create a drag source from a DOM element so that the element can be dragged over a graph and dropped into the graph as a new cell.
Functions
mxDragSourceConstructs a new drag source for the given element.
Variables
elementReference to the DOM node which was made draggable.
dropHandlerHolds the DOM node that is used to represent the drag preview.
dragOffsetmxPoint that specifies the offset of the dragElement.
dragElementHolds the DOM node that is used to represent the drag preview.
previewElementOptional mxRectangle that specifies the unscaled size of the preview.
enabledSpecifies if this drag source is enabled.
currentGraphReference to the mxGraph that is the current drop target.
currentDropTargetHolds the current drop target under the mouse.
currentPointHolds the current drop location.
currentGuideHolds an mxGuide for the currentGraph if <dragPreview> is not null.
currentGuideHolds an mxGuide for the currentGraph if <dragPreview> is not null.
autoscrollSpecifies if the graph should scroll automatically.
guidesEnabledSpecifies if mxGuide should be enabled.
gridEnabledSpecifies if the grid should be allowed.
highlightDropTargetsSpecifies if drop targets should be highlighted.
Functions
isEnabledReturns enabled.
setEnabledSets enabled.
isGuidesEnabledReturns guidesEnabled.
setGuidesEnabledSets guidesEnabled.
isGridEnabledReturns gridEnabled.
setGridEnabledSets gridEnabled.
getGraphForEventReturns the graph for the given mouse event.
getDropTargetReturns the drop target for the given graph and coordinates.
createDragElementCreates and returns a clone of the <dragElementPrototype> or the element if the former is not defined.
createPreviewElementCreates and returns an element which can be used as a preview in the given graph.
mouseDownReturns the drop target for the given graph and coordinates.
startDragCreates the dragElement using createDragElement.
stopDragRemoves and destroys the dragElement.
graphContainsEventReturns true if the given graph contains the given event.
mouseMoveGets the graph for the given event using getGraphForEvent, updates the currentGraph, calling dragEnter and dragExit on the new and old graph, respectively, and invokes dragOver if currentGraph is not null.
mouseUpProcesses the mouse up event and invokes drop, dragExit and stopDrag as required.
dragEnterActives the given graph as a drop target.
dragExitDeactivates the given graph as a drop target.
dragOverImplements autoscroll, updates the currentPoint, highlights any drop targets and updates the preview.
dropReturns the drop target for the given graph and coordinates.
+ +

Functions

+ +

mxDragSource

function mxDragSource(element,
dropHandler)

Constructs a new drag source for the given element.

+ +

Variables

+ +

element

mxDragSource.prototype.element

Reference to the DOM node which was made draggable.

+ +

dropHandler

mxDragSource.prototype.dropHandler

Holds the DOM node that is used to represent the drag preview.  If this is null then the source element will be cloned and used for the drag preview.

+ +

dragOffset

mxDragSource.prototype.dragOffset

mxPoint that specifies the offset of the dragElement.  Default is null.

+ +

dragElement

mxDragSource.prototype.dragElement

Holds the DOM node that is used to represent the drag preview.  If this is null then the source element will be cloned and used for the drag preview.

+ +

previewElement

mxDragSource.prototype.previewElement

Optional mxRectangle that specifies the unscaled size of the preview.

+ +

enabled

mxDragSource.prototype.enabled

Specifies if this drag source is enabled.  Default is true.

+ +

currentGraph

mxDragSource.prototype.currentGraph

Reference to the mxGraph that is the current drop target.

+ +

currentDropTarget

mxDragSource.prototype.currentDropTarget

Holds the current drop target under the mouse.

+ +

currentPoint

mxDragSource.prototype.currentPoint

Holds the current drop location.

+ +

currentGuide

mxDragSource.prototype.currentGuide

Holds an mxGuide for the currentGraph if <dragPreview> is not null.

+ +

currentGuide

Holds an mxGuide for the currentGraph if <dragPreview> is not null.

+ +

autoscroll

mxDragSource.prototype.autoscroll

Specifies if the graph should scroll automatically.  Default is true.

+ +

guidesEnabled

mxDragSource.prototype.guidesEnabled

Specifies if mxGuide should be enabled.  Default is true.

+ +

gridEnabled

mxDragSource.prototype.gridEnabled

Specifies if the grid should be allowed.  Default is true.

+ +

highlightDropTargets

mxDragSource.prototype.highlightDropTargets

Specifies if drop targets should be highlighted.  Default is true.

+ +

Functions

+ +

isEnabled

mxDragSource.prototype.isEnabled = function()

Returns enabled.

+ +

setEnabled

mxDragSource.prototype.setEnabled = function(value)

Sets enabled.

+ +

isGuidesEnabled

mxDragSource.prototype.isGuidesEnabled = function()

Returns guidesEnabled.

+ +

setGuidesEnabled

mxDragSource.prototype.setGuidesEnabled = function(value)

Sets guidesEnabled.

+ +

isGridEnabled

mxDragSource.prototype.isGridEnabled = function()

Returns gridEnabled.

+ +

setGridEnabled

mxDragSource.prototype.setGridEnabled = function(value)

Sets gridEnabled.

+ +

getGraphForEvent

mxDragSource.prototype.getGraphForEvent = function(evt)

Returns the graph for the given mouse event.  This implementation returns null.

+ +

getDropTarget

mxDragSource.prototype.getDropTarget = function(graph,
x,
y)

Returns the drop target for the given graph and coordinates.  This implementation uses mxGraph.getCellAt.

+ +

createDragElement

mxDragSource.prototype.createDragElement = function(evt)

Creates and returns a clone of the <dragElementPrototype> or the element if the former is not defined.

+ +

createPreviewElement

mxDragSource.prototype.createPreviewElement = function(graph)

Creates and returns an element which can be used as a preview in the given graph.

+ +

mouseDown

mxDragSource.prototype.mouseDown = function(evt)

Returns the drop target for the given graph and coordinates.  This implementation uses mxGraph.getCellAt.

+ +

startDrag

mxDragSource.prototype.startDrag = function(evt)

Creates the dragElement using createDragElement.

+ +

stopDrag

mxDragSource.prototype.stopDrag = function(evt)

Removes and destroys the dragElement.

+ +

graphContainsEvent

mxDragSource.prototype.graphContainsEvent = function(graph,
evt)

Returns true if the given graph contains the given event.

+ +

mouseMove

mxDragSource.prototype.mouseMove = function(evt)

Gets the graph for the given event using getGraphForEvent, updates the currentGraph, calling dragEnter and dragExit on the new and old graph, respectively, and invokes dragOver if currentGraph is not null.

+ +

mouseUp

mxDragSource.prototype.mouseUp = function(evt)

Processes the mouse up event and invokes drop, dragExit and stopDrag as required.

+ +

dragEnter

mxDragSource.prototype.dragEnter = function(graph)

Actives the given graph as a drop target.

+ +

dragExit

mxDragSource.prototype.dragExit = function(graph)

Deactivates the given graph as a drop target.

+ +

dragOver

mxDragSource.prototype.dragOver = function(graph,
evt)

Implements autoscroll, updates the currentPoint, highlights any drop targets and updates the preview.

+ +

drop

mxDragSource.prototype.drop = function(graph,
evt,
dropTarget,
x,
y)

Returns the drop target for the given graph and coordinates.  This implementation uses mxGraph.getCellAt.

+ +
+ + + + + + + + + + +
function mxDragSource(element,
dropHandler)
Constructs a new drag source for the given element.
mxDragSource.prototype.element
Reference to the DOM node which was made draggable.
mxDragSource.prototype.dropHandler
Holds the DOM node that is used to represent the drag preview.
mxDragSource.prototype.dragOffset
mxPoint that specifies the offset of the dragElement.
Implements a 2-dimensional vector with double precision coordinates.
mxDragSource.prototype.dragElement
Holds the DOM node that is used to represent the drag preview.
mxDragSource.prototype.previewElement
Optional mxRectangle that specifies the unscaled size of the preview.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxDragSource.prototype.enabled
Specifies if this drag source is enabled.
mxDragSource.prototype.currentGraph
Reference to the mxGraph that is the current drop target.
Extends mxEventSource to implement a graph component for the browser.
mxDragSource.prototype.currentDropTarget
Holds the current drop target under the mouse.
mxDragSource.prototype.currentPoint
Holds the current drop location.
mxDragSource.prototype.currentGuide
Holds an mxGuide for the currentGraph if dragPreview is not null.
Implements the alignment of selection cells to other cells in the graph.
mxDragSource.prototype.autoscroll
Specifies if the graph should scroll automatically.
mxDragSource.prototype.guidesEnabled
Specifies if mxGuide should be enabled.
mxDragSource.prototype.gridEnabled
Specifies if the grid should be allowed.
mxDragSource.prototype.highlightDropTargets
Specifies if drop targets should be highlighted.
mxDragSource.prototype.isEnabled = function()
Returns enabled.
mxDragSource.prototype.setEnabled = function(value)
Sets enabled.
mxDragSource.prototype.isGuidesEnabled = function()
Returns guidesEnabled.
mxDragSource.prototype.setGuidesEnabled = function(value)
Sets guidesEnabled.
mxDragSource.prototype.isGridEnabled = function()
Returns gridEnabled.
mxDragSource.prototype.setGridEnabled = function(value)
Sets gridEnabled.
mxDragSource.prototype.getGraphForEvent = function(evt)
Returns the graph for the given mouse event.
mxDragSource.prototype.getDropTarget = function(graph,
x,
y)
Returns the drop target for the given graph and coordinates.
mxDragSource.prototype.createDragElement = function(evt)
Creates and returns a clone of the dragElementPrototype or the element if the former is not defined.
mxDragSource.prototype.createPreviewElement = function(graph)
Creates and returns an element which can be used as a preview in the given graph.
mxDragSource.prototype.mouseDown = function(evt)
Returns the drop target for the given graph and coordinates.
mxDragSource.prototype.startDrag = function(evt)
Creates the dragElement using createDragElement.
mxDragSource.prototype.stopDrag = function(evt)
Removes and destroys the dragElement.
mxDragSource.prototype.graphContainsEvent = function(graph,
evt)
Returns true if the given graph contains the given event.
mxDragSource.prototype.mouseMove = function(evt)
Gets the graph for the given event using getGraphForEvent, updates the currentGraph, calling dragEnter and dragExit on the new and old graph, respectively, and invokes dragOver if currentGraph is not null.
mxDragSource.prototype.dragEnter = function(graph)
Actives the given graph as a drop target.
mxDragSource.prototype.dragExit = function(graph)
Deactivates the given graph as a drop target.
mxDragSource.prototype.dragOver = function(graph,
evt)
Implements autoscroll, updates the currentPoint, highlights any drop targets and updates the preview.
mxDragSource.prototype.mouseUp = function(evt)
Processes the mouse up event and invokes drop, dragExit and stopDrag as required.
mxDragSource.prototype.drop = function(graph,
evt,
dropTarget,
x,
y)
Returns the drop target for the given graph and coordinates.
mxGraph.prototype.getCellAt = function(x,
y,
parent,
vertices,
edges)
Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxEffects-js.html b/docs/js-api/files/util/mxEffects-js.html new file mode 100644 index 000000000..29bf9d221 --- /dev/null +++ b/docs/js-api/files/util/mxEffects-js.html @@ -0,0 +1,55 @@ + + +mxEffects + + + + + + + + + +

mxEffects

Provides animation effects.

Summary
mxEffectsProvides animation effects.
Functions
animateChangesAsynchronous animated move operation.
cascadeOpacitySets the opacity on the given cell and its descendants.
fadeOutAsynchronous fade-out operation.
+ +

Functions

+ +

animateChanges

animateChanges: function(graph,
changes,
done)

Asynchronous animated move operation.  See also: mxMorphing.

Example

graph.model.addListener(mxEvent.CHANGE, function(sender, evt)
+{
+  var changes = evt.getProperty('edit').changes;
+
+  if (changes.length < 10)
+  {
+    mxEffects.animateChanges(graph, changes);
+  }
+});

Parameters

graphmxGraph that received the changes.
changesArray of changes to be animated.
doneOptional function argument that is invoked after the last step of the animation.
+ +

cascadeOpacity

cascadeOpacity: function(graph,
cell,
opacity)

Sets the opacity on the given cell and its descendants.

Parameters

graphmxGraph that contains the cells.
cellmxCell to set the opacity for.
opacityNew value for the opacity in %.
+ +

fadeOut

fadeOut: function(node,
from,
remove,
step,
delay,
isEnabled)

Asynchronous fade-out operation.

+ +
+ + + + + + + + + + +
animateChanges: function(graph,
changes,
done)
Asynchronous animated move operation.
cascadeOpacity: function(graph,
cell,
opacity)
Sets the opacity on the given cell and its descendants.
fadeOut: function(node,
from,
remove,
step,
delay,
isEnabled)
Asynchronous fade-out operation.
Implements animation for morphing cells.
Extends mxEventSource to implement a graph component for the browser.
Cells are the elements of the graph model.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxEvent-js.html b/docs/js-api/files/util/mxEvent-js.html new file mode 100644 index 000000000..610b4ab3e --- /dev/null +++ b/docs/js-api/files/util/mxEvent-js.html @@ -0,0 +1,261 @@ + + +mxEvent + + + + + + + + + +

mxEvent

Cross-browser DOM event support.  For internal event handling, mxEventSource and the graph event dispatch loop in mxGraph are used.

Memory Leaks

Use this class for adding and removing listeners to/from DOM nodes.  The removeAllListeners function is provided to remove all listeners that have been added using addListener.  The function should be invoked when the last reference is removed in the JavaScript code, typically when the referenced DOM node is removed from the DOM, and helps to reduce memory leaks in IE6.

Summary
mxEventCross-browser DOM event support.
Variables
objectsContains all objects where any listener was added using addListener.
Functions
addListenerBinds the function to the specified event on the given element.
removeListenerRemoves the specified listener from the given element.
removeAllListenersRemoves all listeners from the given element.
redirectMouseEventsRedirects the mouse events from the given DOM node to the graph dispatch loop using the event and given state as event arguments.
releaseRemoves the known listeners from the given DOM node and its descendants.
disableContextMenuDisables the context menu for the given element.
getSourceReturns the event’s target or srcElement depending on the browser.
isConsumedReturns true if the event has been consumed using consume.
isLeftMouseButtonReturns true if the left mouse button is pressed for the given event.
isRightMouseButtonReturns true if the right mouse button was pressed.
isPopupTriggerReturns true if the event is a popup trigger.
isShiftDownReturns true if the shift key is pressed for the given event.
isAltDownReturns true if the alt key is pressed for the given event.
isControlDownReturns true if the control key is pressed for the given event.
isMetaDownReturns true if the meta key is pressed for the given event.
getMainEventReturns the touch or mouse event that contains the mouse coordinates.
getClientXReturns true if the meta key is pressed for the given event.
getClientYReturns true if the meta key is pressed for the given event.
consumeConsumes the given event.
Variables
LABEL_HANDLEIndex for the label handle in an mxMouseEvent.
MOUSE_DOWNSpecifies the event name for mouseDown.
MOUSE_MOVESpecifies the event name for mouseMove.
MOUSE_UPSpecifies the event name for mouseUp.
ACTIVATESpecifies the event name for activate.
RESIZE_STARTSpecifies the event name for resizeStart.
RESIZESpecifies the event name for resize.
RESIZE_ENDSpecifies the event name for resizeEnd.
MOVE_STARTSpecifies the event name for moveStart.
MOVESpecifies the event name for move.
MOVE_ENDSpecifies the event name for moveEnd.
PAN_STARTSpecifies the event name for panStart.
PANSpecifies the event name for pan.
PAN_ENDSpecifies the event name for panEnd.
MINIMIZESpecifies the event name for minimize.
NORMALIZESpecifies the event name for normalize.
MAXIMIZESpecifies the event name for maximize.
HIDESpecifies the event name for hide.
SHOWSpecifies the event name for show.
CLOSESpecifies the event name for close.
DESTROYSpecifies the event name for destroy.
REFRESHSpecifies the event name for refresh.
SIZESpecifies the event name for size.
SELECTSpecifies the event name for select.
FIREDSpecifies the event name for fired.
GETSpecifies the event name for get.
RECEIVESpecifies the event name for receive.
CONNECTSpecifies the event name for connect.
DISCONNECTSpecifies the event name for disconnect.
SUSPENDSpecifies the event name for suspend.
RESUMESpecifies the event name for suspend.
MARKSpecifies the event name for mark.
SESSIONSpecifies the event name for session.
ROOTSpecifies the event name for root.
POSTSpecifies the event name for post.
OPENSpecifies the event name for open.
SAVESpecifies the event name for open.
BEFORE_ADD_VERTEXSpecifies the event name for beforeAddVertex.
ADD_VERTEXSpecifies the event name for addVertex.
AFTER_ADD_VERTEXSpecifies the event name for afterAddVertex.
DONESpecifies the event name for done.
EXECUTESpecifies the event name for execute.
BEGIN_UPDATESpecifies the event name for beginUpdate.
END_UPDATESpecifies the event name for endUpdate.
BEFORE_UNDOSpecifies the event name for beforeUndo.
UNDOSpecifies the event name for undo.
REDOSpecifies the event name for redo.
CHANGESpecifies the event name for change.
NOTIFYSpecifies the event name for notify.
LAYOUT_CELLSSpecifies the event name for layoutCells.
CLICKSpecifies the event name for click.
SCALESpecifies the event name for scale.
TRANSLATESpecifies the event name for translate.
SCALE_AND_TRANSLATESpecifies the event name for scaleAndTranslate.
UPSpecifies the event name for up.
DOWNSpecifies the event name for down.
ADDSpecifies the event name for add.
CLEARSpecifies the event name for clear.
ADD_CELLSSpecifies the event name for addCells.
CELLS_ADDEDSpecifies the event name for cellsAdded.
MOVE_CELLSSpecifies the event name for moveCells.
CELLS_MOVEDSpecifies the event name for cellsMoved.
RESIZE_CELLSSpecifies the event name for resizeCells.
CELLS_RESIZEDSpecifies the event name for cellsResized.
TOGGLE_CELLSSpecifies the event name for toggleCells.
CELLS_TOGGLEDSpecifies the event name for cellsToggled.
ORDER_CELLSSpecifies the event name for orderCells.
CELLS_ORDEREDSpecifies the event name for cellsOrdered.
REMOVE_CELLSSpecifies the event name for removeCells.
CELLS_REMOVEDSpecifies the event name for cellsRemoved.
GROUP_CELLSSpecifies the event name for groupCells.
UNGROUP_CELLSSpecifies the event name for ungroupCells.
REMOVE_CELLS_FROM_PARENTSpecifies the event name for removeCellsFromParent.
FOLD_CELLSSpecifies the event name for foldCells.
CELLS_FOLDEDSpecifies the event name for cellsFolded.
ALIGN_CELLSSpecifies the event name for alignCells.
LABEL_CHANGEDSpecifies the event name for labelChanged.
CONNECT_CELLSpecifies the event name for connectCell.
CELL_CONNECTEDSpecifies the event name for cellConnected.
SPLIT_EDGESpecifies the event name for splitEdge.
FLIP_EDGESpecifies the event name for flipEdge.
START_EDITINGSpecifies the event name for startEditing.
ADD_OVERLAYSpecifies the event name for addOverlay.
REMOVE_OVERLAYSpecifies the event name for removeOverlay.
UPDATE_CELL_SIZESpecifies the event name for updateCellSize.
ESCAPESpecifies the event name for escape.
CLICKSpecifies the event name for click.
DOUBLE_CLICKSpecifies the event name for doubleClick.
+ +

Variables

+ +

objects

Contains all objects where any listener was added using addListener.  This is used to reduce memory leaks in IE, see mxClient.dispose.

+ +

Functions

+ +

addListener

addListener: function()

Binds the function to the specified event on the given element.  Use mxUtils.bind in order to bind the “this” keyword inside the function to a given execution scope.

+ +

removeListener

removeListener: function()

Removes the specified listener from the given element.

+ +

removeAllListeners

removeAllListeners: function(element)

Removes all listeners from the given element.

+ +

redirectMouseEvents

redirectMouseEvents: function(node,
graph,
state,
down,
move,
up,
dblClick)

Redirects the mouse events from the given DOM node to the graph dispatch loop using the event and given state as event arguments.  State can either be an instance of mxCellState or a function that returns an mxCellState.  The down, move, up and dblClick arguments are optional functions that take the trigger event as arguments and replace the default behaviour.

+ +

release

release: function(element)

Removes the known listeners from the given DOM node and its descendants.

Parameters

elementDOM node to remove the listeners from.
+ +

disableContextMenu

disableContextMenu: function()

Disables the context menu for the given element.

+ +

getSource

getSource: function(evt)

Returns the event’s target or srcElement depending on the browser.

+ +

isConsumed

isConsumed: function(evt)

Returns true if the event has been consumed using consume.

+ +

isLeftMouseButton

isLeftMouseButton: function(evt)

Returns true if the left mouse button is pressed for the given event.  To check if a button is pressed during a mouseMove you should use the mxGraph.isMouseDown property.

+ +

isRightMouseButton

isRightMouseButton: function(evt)

Returns true if the right mouse button was pressed.  Note that this button might not be available on some systems.  For handling a popup trigger isPopupTrigger should be used.

+ +

isPopupTrigger

isPopupTrigger: function(evt)

Returns true if the event is a popup trigger.  This implementation returns true if the right mouse button or shift was pressed.

+ +

isShiftDown

isShiftDown: function(evt)

Returns true if the shift key is pressed for the given event.

+ +

isAltDown

isAltDown: function(evt)

Returns true if the alt key is pressed for the given event.

+ +

isControlDown

isControlDown: function(evt)

Returns true if the control key is pressed for the given event.

+ +

isMetaDown

isMetaDown: function(evt)

Returns true if the meta key is pressed for the given event.

+ +

getMainEvent

getMainEvent: function(e)

Returns the touch or mouse event that contains the mouse coordinates.

+ +

getClientX

getClientX: function(e)

Returns true if the meta key is pressed for the given event.

+ +

getClientY

getClientY: function(e)

Returns true if the meta key is pressed for the given event.

+ +

consume

consume: function(evt,
preventDefault,
stopPropagation)

Consumes the given event.

Parameters

evtNative event to be consumed.
preventDefaultOptional boolean to prevent the default for the event.  Default is true.
stopPropagationOption boolean to stop event propagation.  Default is true.
+ +

Variables

+ +

LABEL_HANDLE

Index for the label handle in an mxMouseEvent.  This should be a negative value that does not interfere with any possible handle indices.  Default is -1.

+ +

MOUSE_DOWN

Specifies the event name for mouseDown.

+ +

MOUSE_MOVE

Specifies the event name for mouseMove.

+ +

MOUSE_UP

Specifies the event name for mouseUp.

+ +

ACTIVATE

Specifies the event name for activate.

+ +

RESIZE_START

Specifies the event name for resizeStart.

+ +

RESIZE

Specifies the event name for resize.

+ +

RESIZE_END

Specifies the event name for resizeEnd.

+ +

MOVE_START

Specifies the event name for moveStart.

+ +

MOVE

Specifies the event name for move.

+ +

MOVE_END

Specifies the event name for moveEnd.

+ +

PAN_START

Specifies the event name for panStart.

+ +

PAN

Specifies the event name for pan.

+ +

PAN_END

Specifies the event name for panEnd.

+ +

MINIMIZE

Specifies the event name for minimize.

+ +

NORMALIZE

Specifies the event name for normalize.

+ +

MAXIMIZE

Specifies the event name for maximize.

+ +

HIDE

Specifies the event name for hide.

+ +

SHOW

Specifies the event name for show.

+ +

CLOSE

Specifies the event name for close.

+ +

DESTROY

Specifies the event name for destroy.

+ +

REFRESH

Specifies the event name for refresh.

+ +

SIZE

Specifies the event name for size.

+ +

SELECT

Specifies the event name for select.

+ +

FIRED

Specifies the event name for fired.

+ +

GET

Specifies the event name for get.

+ +

RECEIVE

Specifies the event name for receive.

+ +

CONNECT

Specifies the event name for connect.

+ +

DISCONNECT

Specifies the event name for disconnect.

+ +

SUSPEND

Specifies the event name for suspend.

+ +

RESUME

Specifies the event name for suspend.

+ +

MARK

Specifies the event name for mark.

+ +

SESSION

Specifies the event name for session.

+ +

ROOT

Specifies the event name for root.

+ +

POST

Specifies the event name for post.

+ +

OPEN

Specifies the event name for open.

+ +

SAVE

Specifies the event name for open.

+ +

BEFORE_ADD_VERTEX

Specifies the event name for beforeAddVertex.

+ +

ADD_VERTEX

Specifies the event name for addVertex.

+ +

AFTER_ADD_VERTEX

Specifies the event name for afterAddVertex.

+ +

DONE

Specifies the event name for done.

+ +

EXECUTE

Specifies the event name for execute.

+ +

BEGIN_UPDATE

Specifies the event name for beginUpdate.

+ +

END_UPDATE

Specifies the event name for endUpdate.

+ +

BEFORE_UNDO

Specifies the event name for beforeUndo.

+ +

UNDO

Specifies the event name for undo.

+ +

REDO

Specifies the event name for redo.

+ +

CHANGE

Specifies the event name for change.

+ +

NOTIFY

Specifies the event name for notify.

+ +

LAYOUT_CELLS

Specifies the event name for layoutCells.

+ +

CLICK

Specifies the event name for click.

+ +

SCALE

Specifies the event name for scale.

+ +

TRANSLATE

Specifies the event name for translate.

+ +

SCALE_AND_TRANSLATE

Specifies the event name for scaleAndTranslate.

+ +

UP

Specifies the event name for up.

+ +

DOWN

Specifies the event name for down.

+ +

ADD

Specifies the event name for add.

+ +

CLEAR

Specifies the event name for clear.

+ +

ADD_CELLS

Specifies the event name for addCells.

+ +

CELLS_ADDED

Specifies the event name for cellsAdded.

+ +

MOVE_CELLS

Specifies the event name for moveCells.

+ +

CELLS_MOVED

Specifies the event name for cellsMoved.

+ +

RESIZE_CELLS

Specifies the event name for resizeCells.

+ +

CELLS_RESIZED

Specifies the event name for cellsResized.

+ +

TOGGLE_CELLS

Specifies the event name for toggleCells.

+ +

CELLS_TOGGLED

Specifies the event name for cellsToggled.

+ +

ORDER_CELLS

Specifies the event name for orderCells.

+ +

CELLS_ORDERED

Specifies the event name for cellsOrdered.

+ +

REMOVE_CELLS

Specifies the event name for removeCells.

+ +

CELLS_REMOVED

Specifies the event name for cellsRemoved.

+ +

GROUP_CELLS

Specifies the event name for groupCells.

+ +

UNGROUP_CELLS

Specifies the event name for ungroupCells.

+ +

REMOVE_CELLS_FROM_PARENT

Specifies the event name for removeCellsFromParent.

+ +

FOLD_CELLS

Specifies the event name for foldCells.

+ +

CELLS_FOLDED

Specifies the event name for cellsFolded.

+ +

ALIGN_CELLS

Specifies the event name for alignCells.

+ +

LABEL_CHANGED

Specifies the event name for labelChanged.

+ +

CONNECT_CELL

Specifies the event name for connectCell.

+ +

CELL_CONNECTED

Specifies the event name for cellConnected.

+ +

SPLIT_EDGE

Specifies the event name for splitEdge.

+ +

FLIP_EDGE

Specifies the event name for flipEdge.

+ +

START_EDITING

Specifies the event name for startEditing.

+ +

ADD_OVERLAY

Specifies the event name for addOverlay.

+ +

REMOVE_OVERLAY

Specifies the event name for removeOverlay.

+ +

UPDATE_CELL_SIZE

Specifies the event name for updateCellSize.

+ +

ESCAPE

Specifies the event name for escape.

+ +

CLICK

Specifies the event name for click.

+ +

DOUBLE_CLICK

DOUBLE_CLICK: 'doubleClick' }

Specifies the event name for doubleClick.

+ +
+ + + + + + + + + + +
addListener: function()
Binds the function to the specified event on the given element.
removeListener: function()
Removes the specified listener from the given element.
removeAllListeners: function(element)
Removes all listeners from the given element.
redirectMouseEvents: function(node,
graph,
state,
down,
move,
up,
dblClick)
Redirects the mouse events from the given DOM node to the graph dispatch loop using the event and given state as event arguments.
release: function(element)
Removes the known listeners from the given DOM node and its descendants.
disableContextMenu: function()
Disables the context menu for the given element.
getSource: function(evt)
Returns the event’s target or srcElement depending on the browser.
isConsumed: function(evt)
Returns true if the event has been consumed using consume.
consume: function(evt,
preventDefault,
stopPropagation)
Consumes the given event.
isLeftMouseButton: function(evt)
Returns true if the left mouse button is pressed for the given event.
isRightMouseButton: function(evt)
Returns true if the right mouse button was pressed.
isPopupTrigger: function(evt)
Returns true if the event is a popup trigger.
isShiftDown: function(evt)
Returns true if the shift key is pressed for the given event.
isAltDown: function(evt)
Returns true if the alt key is pressed for the given event.
isControlDown: function(evt)
Returns true if the control key is pressed for the given event.
isMetaDown: function(evt)
Returns true if the meta key is pressed for the given event.
getMainEvent: function(e)
Returns the touch or mouse event that contains the mouse coordinates.
getClientX: function(e)
Returns true if the meta key is pressed for the given event.
getClientY: function(e)
Returns true if the meta key is pressed for the given event.
DOUBLE_CLICK: 'doubleClick' }
Specifies the event name for doubleClick.
Base class for objects that dispatch named events.
Extends mxEventSource to implement a graph component for the browser.
dispose: function()
Frees up memory in IE by resolving cyclic dependencies between the DOM and the JavaScript objects.
bind: function(scope,
funct)
Returns a wrapper function that locks the execution scope of the given function to the specified scope.
Represents the current state of a cell in a given mxGraphView.
mxGraph.prototype.isMouseDown
Holds the state of the mouse button.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxEventObject-js.html b/docs/js-api/files/util/mxEventObject-js.html new file mode 100644 index 000000000..68bb554a4 --- /dev/null +++ b/docs/js-api/files/util/mxEventObject-js.html @@ -0,0 +1,64 @@ + + +mxEventObject + + + + + + + + + +

mxEventObject

The mxEventObject is a wrapper for all properties of a single event.  Additionally, it also offers functions to consume the event and check if it was consumed as follows:

evt.consume();
+INV: evt.isConsumed() == true
Summary
mxEventObjectThe mxEventObject is a wrapper for all properties of a single event.
Functions
mxEventObjectConstructs a new event object with the specified name.
Variables
nameHolds the name.
propertiesHolds the properties as an associative array.
consumedHolds the consumed state.
Functions
getNameReturns name.
getPropertiesReturns properties.
getPropertyReturns the property for the given key.
isConsumedReturns true if the event has been consumed.
consumeConsumes the event.
+ +

Functions

+ +

mxEventObject

function mxEventObject(name)

Constructs a new event object with the specified name.  An optional sequence of key, value pairs can be appended to define properties.

Example

new mxEventObject("eventName", key1, val1, .., keyN, valN)
+ +

Variables

+ +

name

mxEventObject.prototype.name

Holds the name.

+ +

properties

mxEventObject.prototype.properties

Holds the properties as an associative array.

+ +

consumed

mxEventObject.prototype.consumed

Holds the consumed state.  Default is false.

+ +

Functions

+ +

getName

mxEventObject.prototype.getName = function()

Returns name.

+ +

getProperties

mxEventObject.prototype.getProperties = function()

Returns properties.

+ +

getProperty

mxEventObject.prototype.getProperty = function(key)

Returns the property for the given key.

+ +

isConsumed

mxEventObject.prototype.isConsumed = function()

Returns true if the event has been consumed.

+ +

consume

mxEventObject.prototype.consume = function()

Consumes the event.

+ +
+ + + + + + + + + + +
function mxEventObject(name)
Constructs a new event object with the specified name.
mxEventObject.prototype.name
Holds the name.
mxEventObject.prototype.properties
Holds the properties as an associative array.
mxEventObject.prototype.consumed
Holds the consumed state.
mxEventObject.prototype.getName = function()
Returns name.
mxEventObject.prototype.getProperties = function()
Returns properties.
mxEventObject.prototype.getProperty = function(key)
Returns the property for the given key.
mxEventObject.prototype.isConsumed = function()
Returns true if the event has been consumed.
mxEventObject.prototype.consume = function()
Consumes the event.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxEventSource-js.html b/docs/js-api/files/util/mxEventSource-js.html new file mode 100644 index 000000000..eb505b4ab --- /dev/null +++ b/docs/js-api/files/util/mxEventSource-js.html @@ -0,0 +1,70 @@ + + +mxEventSource + + + + + + + + + +

mxEventSource

Base class for objects that dispatch named events.  To create a subclass that inherits from mxEventSource, the following code is used.

function MyClass() { };
+
+MyClass.prototype = new mxEventSource();
+MyClass.prototype.constructor = MyClass;

Known Subclasses

mxGraphModel, mxGraph, mxGraphView, mxEditor, mxCellOverlay, mxToolbar, mxWindow

Summary
mxEventSourceBase class for objects that dispatch named events.
Functions
mxEventSourceConstructs a new event source.
Variables
eventListenersHolds the event names and associated listeners in an array.
eventsEnabledSpecifies if events can be fired.
eventSourceOptional source for events.
Functions
isEventsEnabledReturns eventsEnabled.
setEventsEnabledSets eventsEnabled.
getEventSourceReturns eventSource.
setEventSourceSets eventSource.
addListenerBinds the specified function to the given event name.
removeListenerRemoves all occurrences of the given listener from eventListeners.
fireEventDispatches the given event to the listeners which are registered for the event.
+ +

Functions

+ +

mxEventSource

function mxEventSource(eventSource)

Constructs a new event source.

+ +

Variables

+ +

eventListeners

mxEventSource.prototype.eventListeners

Holds the event names and associated listeners in an array.  The array contains the event name followed by the respective listener for each registered listener.

+ +

eventsEnabled

mxEventSource.prototype.eventsEnabled

Specifies if events can be fired.  Default is true.

+ +

eventSource

mxEventSource.prototype.eventSource

Optional source for events.  Default is null.

+ +

Functions

+ +

isEventsEnabled

mxEventSource.prototype.isEventsEnabled = function()

Returns eventsEnabled.

+ +

setEventsEnabled

mxEventSource.prototype.setEventsEnabled = function(value)

Sets eventsEnabled.

+ +

getEventSource

mxEventSource.prototype.getEventSource = function()

Returns eventSource.

+ +

setEventSource

mxEventSource.prototype.setEventSource = function(value)

Sets eventSource.

+ +

addListener

mxEventSource.prototype.addListener = function(name,
funct)

Binds the specified function to the given event name.  If no event name is given, then the listener is registered for all events.

The parameters of the listener are the sender and an mxEventObject.

+ +

removeListener

mxEventSource.prototype.removeListener = function(funct)

Removes all occurrences of the given listener from eventListeners.

+ +

fireEvent

mxEventSource.prototype.fireEvent = function(evt,
sender)

Dispatches the given event to the listeners which are registered for the event.  The sender argument is optional.  The current execution scope (“this”) is used for the listener invocation (see mxUtils.bind).

Example

fireEvent(new mxEventObject("eventName", key1, val1, .., keyN, valN))

Parameters

evtmxEventObject that represents the event.
senderOptional sender to be passed to the listener.  Default value is the return value of getEventSource.
+ +
+ + + + + + + + + + +
function mxEventSource(eventSource)
Constructs a new event source.
mxEventSource.prototype.eventListeners
Holds the event names and associated listeners in an array.
mxEventSource.prototype.eventsEnabled
Specifies if events can be fired.
mxEventSource.prototype.eventSource
Optional source for events.
mxEventSource.prototype.isEventsEnabled = function()
Returns eventsEnabled.
mxEventSource.prototype.setEventsEnabled = function(value)
Sets eventsEnabled.
mxEventSource.prototype.getEventSource = function()
Returns eventSource.
mxEventSource.prototype.setEventSource = function(value)
Sets eventSource.
mxEventSource.prototype.addListener = function(name,
funct)
Binds the specified function to the given event name.
mxEventSource.prototype.removeListener = function(funct)
Removes all occurrences of the given listener from eventListeners.
mxEventSource.prototype.fireEvent = function(evt,
sender)
Dispatches the given event to the listeners which are registered for the event.
Extends mxEventSource to implement a graph model.
Extends mxEventSource to implement a graph component for the browser.
Extends mxEventSource to implement a view for a graph.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
Extends mxEventSource to implement a graph overlay, represented by an icon and a tooltip.
Creates a toolbar inside a given DOM node.
Basic window inside a document.
The mxEventObject is a wrapper for all properties of a single event.
bind: function(scope,
funct)
Returns a wrapper function that locks the execution scope of the given function to the specified scope.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxForm-js.html b/docs/js-api/files/util/mxForm-js.html new file mode 100644 index 000000000..bc4c25b6f --- /dev/null +++ b/docs/js-api/files/util/mxForm-js.html @@ -0,0 +1,67 @@ + + +mxForm + + + + + + + + + +

mxForm

A simple class for creating HTML forms.

Summary
mxFormA simple class for creating HTML forms.
Functions
mxFormCreates a HTML table using the specified classname.
Variables
tableHolds the DOM node that represents the table.
bodyHolds the DOM node that represents the tbody (table body).
Functions
getTableReturns the table that contains this form.
addButtonsHelper method to add an OK and Cancel button using the respective functions.
addTextAdds a textfield for the given name and value and returns the textfield.
addCheckboxAdds a checkbox for the given name and value and returns the textfield.
addTextareaAdds a textarea for the given name and value and returns the textarea.
addComboAdds a combo for the given name and returns the combo.
addOptionAdds an option for the given label to the specified combo.
addFieldAdds a new row with the name and the input field in two columns and returns the given input.
+ +

Functions

+ +

mxForm

function mxForm(className)

Creates a HTML table using the specified classname.

+ +

Variables

+ +

table

mxForm.prototype.table

Holds the DOM node that represents the table.

+ +

body

mxForm.prototype.body

Holds the DOM node that represents the tbody (table body).  New rows can be added to this object using DOM API.

+ +

Functions

+ +

getTable

mxForm.prototype.getTable = function()

Returns the table that contains this form.

+ +

addButtons

mxForm.prototype.addButtons = function(okFunct,
cancelFunct)

Helper method to add an OK and Cancel button using the respective functions.

+ +

addText

mxForm.prototype.addText = function(name,
value)

Adds a textfield for the given name and value and returns the textfield.

+ +

addCheckbox

mxForm.prototype.addCheckbox = function(name,
value)

Adds a checkbox for the given name and value and returns the textfield.

+ +

addTextarea

mxForm.prototype.addTextarea = function(name,
value,
rows)

Adds a textarea for the given name and value and returns the textarea.

+ +

addCombo

mxForm.prototype.addCombo = function(name,
isMultiSelect,
size)

Adds a combo for the given name and returns the combo.

+ +

addOption

mxForm.prototype.addOption = function(combo,
label,
value,
isSelected)

Adds an option for the given label to the specified combo.

+ +

addField

mxForm.prototype.addField = function(name,
input)

Adds a new row with the name and the input field in two columns and returns the given input.

+ +
+ + + + + + + + + + +
function mxForm(className)
Creates a HTML table using the specified classname.
mxForm.prototype.table
Holds the DOM node that represents the table.
mxForm.prototype.body
Holds the DOM node that represents the tbody (table body).
mxForm.prototype.getTable = function()
Returns the table that contains this form.
mxForm.prototype.addButtons = function(okFunct,
cancelFunct)
Helper method to add an OK and Cancel button using the respective functions.
mxForm.prototype.addText = function(name,
value)
Adds a textfield for the given name and value and returns the textfield.
mxForm.prototype.addCheckbox = function(name,
value)
Adds a checkbox for the given name and value and returns the textfield.
mxForm.prototype.addTextarea = function(name,
value,
rows)
Adds a textarea for the given name and value and returns the textarea.
mxForm.prototype.addCombo = function(name,
isMultiSelect,
size)
Adds a combo for the given name and returns the combo.
mxForm.prototype.addOption = function(combo,
label,
value,
isSelected)
Adds an option for the given label to the specified combo.
mxForm.prototype.addField = function(name,
input)
Adds a new row with the name and the input field in two columns and returns the given input.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxGuide-js.html b/docs/js-api/files/util/mxGuide-js.html new file mode 100644 index 000000000..fbef48d72 --- /dev/null +++ b/docs/js-api/files/util/mxGuide-js.html @@ -0,0 +1,75 @@ + + +mxGuide + + + + + + + + + +

mxGuide

Implements the alignment of selection cells to other cells in the graph.

Summary
mxGuideImplements the alignment of selection cells to other cells in the graph.
Functions
mxGuideConstructs a new guide object.
Variables
graphReference to the enclosing mxGraph instance.
statesContains the mxCellStates that are used for alignment.
horizontalSpecifies if horizontal guides are enabled.
verticalSpecifies if vertical guides are enabled.
verticalHolds the mxShape for the horizontal guide.
verticalHolds the mxShape for the vertical guide.
crispSpecifies if theguide should be rendered in crisp mode if applicable.
Functions
setStatesSets the mxCellStates that should be used for alignment.
isEnabledForEventReturns true if the guide should be enabled for the given native event.
getGuideToleranceReturns the tolerance for the guides.
createGuideShapeReturns the mxShape to be used for painting the respective guide.
moveMoves the <bounds> by the given mxPoint and returnt the snapped point.
hideHides all current guides.
destroyDestroys all resources that this object uses.
+ +

Functions

+ +

mxGuide

function mxGuide(graph,
states)

Constructs a new guide object.

+ +

Variables

+ +

graph

mxGuide.prototype.graph

Reference to the enclosing mxGraph instance.

+ +

states

mxGuide.prototype.states

Contains the mxCellStates that are used for alignment.

+ +

horizontal

mxGuide.prototype.horizontal

Specifies if horizontal guides are enabled.  Default is true.

+ +

vertical

mxGuide.prototype.vertical

Specifies if vertical guides are enabled.  Default is true.

+ +

vertical

Holds the mxShape for the horizontal guide.

+ +

vertical

Holds the mxShape for the vertical guide.

+ +

crisp

mxGuide.prototype.crisp

Specifies if theguide should be rendered in crisp mode if applicable.  Default is true.

+ +

Functions

+ +

setStates

mxGuide.prototype.setStates = function(states)

Sets the mxCellStates that should be used for alignment.

+ +

isEnabledForEvent

mxGuide.prototype.isEnabledForEvent = function(evt)

Returns true if the guide should be enabled for the given native event.  This implementation always returns true.

+ +

getGuideTolerance

mxGuide.prototype.getGuideTolerance = function()

Returns the tolerance for the guides.  Default value is gridSize * scale / 2.

+ +

createGuideShape

mxGuide.prototype.createGuideShape = function(horizontal)

Returns the mxShape to be used for painting the respective guide.  This implementation returns a new, dashed and crisp mxPolyline using mxConstants.GUIDE_COLOR and mxConstants.GUIDE_STROKEWIDTH as the format.

Parameters

horizontalBoolean that specifies which guide should be created.
+ +

move

mxGuide.prototype.move = function(bounds,
delta,
gridEnabled)

Moves the <bounds> by the given mxPoint and returnt the snapped point.

+ +

hide

mxGuide.prototype.hide = function()

Hides all current guides.

+ +

destroy

mxGuide.prototype.destroy = function()

Destroys all resources that this object uses.

+ +
+ + + + + + + + + + +
function mxGuide(graph,
states)
Constructs a new guide object.
mxGuide.prototype.graph
Reference to the enclosing mxGraph instance.
Extends mxEventSource to implement a graph component for the browser.
mxGuide.prototype.states
Contains the mxCellStates that are used for alignment.
Represents the current state of a cell in a given mxGraphView.
mxGuide.prototype.horizontal
Specifies if horizontal guides are enabled.
mxGuide.prototype.vertical
Specifies if vertical guides are enabled.
Base class for all shapes.
mxGuide.prototype.crisp
Specifies if theguide should be rendered in crisp mode if applicable.
mxGuide.prototype.setStates = function(states)
Sets the mxCellStates that should be used for alignment.
mxGuide.prototype.isEnabledForEvent = function(evt)
Returns true if the guide should be enabled for the given native event.
mxGuide.prototype.getGuideTolerance = function()
Returns the tolerance for the guides.
mxGuide.prototype.createGuideShape = function(horizontal)
Returns the mxShape to be used for painting the respective guide.
mxGuide.prototype.move = function(bounds,
delta,
gridEnabled)
Moves the bounds by the given mxPoint and returnt the snapped point.
Implements a 2-dimensional vector with double precision coordinates.
mxGuide.prototype.hide = function()
Hides all current guides.
mxGuide.prototype.destroy = function()
Destroys all resources that this object uses.
Extends mxShape to implement a polyline (a line with multiple points).
Defines the color to be used for the guidelines in mxGraphHandler.
Defines the strokewidth to be used for the guidelines in mxGraphHandler.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxImage-js.html b/docs/js-api/files/util/mxImage-js.html new file mode 100644 index 000000000..423935923 --- /dev/null +++ b/docs/js-api/files/util/mxImage-js.html @@ -0,0 +1,51 @@ + + +mxImage + + + + + + + + + +

mxImage

Encapsulates the URL, width and height of an image.

Summary
mxImageEncapsulates the URL, width and height of an image.
Functions
mxImageConstructs a new image.
Variables
srcString that specifies the URL of the image.
widthInteger that specifies the width of the image.
heightInteger that specifies the height of the image.
+ +

Functions

+ +

mxImage

function mxImage(src,
width,
height)

Constructs a new image.

+ +

Variables

+ +

src

mxImage.prototype.src

String that specifies the URL of the image.

+ +

width

mxImage.prototype.width

Integer that specifies the width of the image.

+ +

height

mxImage.prototype.height

Integer that specifies the height of the image.

+ +
+ + + + + + + + + + +
function mxImage(src,
width,
height)
Constructs a new image.
mxImage.prototype.src
String that specifies the URL of the image.
mxImage.prototype.width
Integer that specifies the width of the image.
mxImage.prototype.height
Integer that specifies the height of the image.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxImageBundle-js.html b/docs/js-api/files/util/mxImageBundle-js.html new file mode 100644 index 000000000..d9e4babcf --- /dev/null +++ b/docs/js-api/files/util/mxImageBundle-js.html @@ -0,0 +1,78 @@ + + +mxImageBundle + + + + + + + + + +

mxImageBundle

Maps from keys to base64 encoded images or file locations.  All values must be URLs or use the format data:image/format followed by a comma and the base64 encoded image data, eg.  “data:image/gif,XYZ”, where XYZ is the base64 encoded image data.

To add a new image bundle to an existing graph, the following code is used

var bundle = new mxImageBundle(alt);
+bundle.putImage('myImage', 'data:image/gif,R0lGODlhEAAQAMIGAAAAAICAAICAgP' +
+  '//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAA' +
+  'EAAQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hi' +
+  'laSSASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs=', fallback);
+graph.addImageBundle(bundle);
+(end);
+
+Alt is an optional boolean (default is false) that specifies if the value
+or the fallback should be returned in <getImage>.
+
+The image can then be referenced in any cell style using image=myImage.
+If you are using mxOutline, you should use the same image bundles in the
+graph that renders the outline.
+
+The keys for images are resolved in <mxGraph.postProcessCellStyle> and
+turned into a data URI if the returned value has a short data URI format
+as specified above.
+
+A typical value for the fallback is a MTHML link as defined in RFC 2557.
+Note that this format requires a file to be dynamically created on the
+server-side, or the page that contains the graph to be modified to contain
+the resources, this can be done by adding a comment that contains the
+resource in the HEAD section of the page after the title tag.
+
+This type of fallback mechanism should be used in IE6 and IE7. IE8 does
+support data URIs, but the maximum size is limited to 32 KB, which means
+all data URIs should be limited to 32 KB.
Summary
mxImageBundleMaps from keys to base64 encoded images or file locations.
Variables
imagesMaps from keys to images.
altSpecifies if the fallback representation should be returned.
Functions
putImageAdds the specified entry to the map.
getImageReturns the value for the given key.
+ +

Variables

+ +

images

mxImageBundle.prototype.images

Maps from keys to images.

+ +

alt

Specifies if the fallback representation should be returned.

+ +

Functions

+ +

putImage

mxImageBundle.prototype.putImage = function(key,
value,
fallback)

Adds the specified entry to the map.  The entry is an object with a value and fallback property as specified in the arguments.

+ +

getImage

mxImageBundle.prototype.getImage = function(key)

Returns the value for the given key.  This returns the value or fallback, depending on alt.  The fallback is returned if alt is true, the value is returned otherwise.

+ +
+ + + + + + + + + + +
mxImageBundle.prototype.images
Maps from keys to images.
mxImageBundle.prototype.putImage = function(key,
value,
fallback)
Adds the specified entry to the map.
mxImageBundle.prototype.getImage = function(key)
Returns the value for the given key.
Specifies if the fallback representation should be returned.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxImageExport-js.html b/docs/js-api/files/util/mxImageExport-js.html new file mode 100644 index 000000000..76171bedd --- /dev/null +++ b/docs/js-api/files/util/mxImageExport-js.html @@ -0,0 +1,98 @@ + + +mxImageExport + + + + + + + + + +

mxImageExport

Creates a new image export instance to be used with an export canvas.  Here is an example that uses this class to create an image via a backend using <mxXmlExportCanvas>.

var xmlDoc = mxUtils.createXmlDocument();
+var root = xmlDoc.createElement('output');
+xmlDoc.appendChild(root);
+
+var xmlCanvas = new mxXmlCanvas2D(root);
+var imgExport = new mxImageExport();
+imgExport.drawState(graph.getView().getState(graph.model.root), xmlCanvas);
+
+var bounds = graph.getGraphBounds();
+var w = Math.ceil(bounds.x + bounds.width);
+var h = Math.ceil(bounds.y + bounds.height);
+
+var xml = mxUtils.getXml(root);
+new mxXmlRequest('export', 'format=png&w=' + w +
+     '&h=' + h + '&bg=#F9F7ED&xml=' + encodeURIComponent(xml))
+     .simulate(document, '_blank');
Summary
mxImageExportCreates a new image export instance to be used with an export canvas.
Functions
mxImageExportConstructs a new image export.
Variables
includeOverlaysSpecifies if overlays should be included in the export.
glassSizeReference to the thread while the animation is running.
shapesHolds implementations for the built-in shapes.
markersHolds implementations for the built-in markers.
Functions
drawStateDraws the given state and all its descendants to the given canvas.
createShapeCreates a shape wrapper for the custom shape in the given cell state and links its output to the given canvas.
drawOverlaysDraws the overlays for the given state.
drawShapeDraws the given state to the given canvas.
drawGlassDraws the given state to the given canvas.
drawGlassDraws the given state to the given canvas.
drawImageDraws the given state to the given canvas.
drawLabelBackgroundDraws background for the label of the given state to the given canvas.
drawLabelDraws the given state to the given canvas.
getBackgroundBoundsDraws the given state to the given canvas.
getImageBoundsDraws the given state to the given canvas.
drawMarkerInitializes the built-in shapes.
initShapesInitializes the built-in shapes.
initMarkersInitializes the built-in markers.
+ +

Functions

+ +

mxImageExport

function mxImageExport()

Constructs a new image export.

+ +

Variables

+ +

includeOverlays

mxImageExport.prototype.includeOverlays

Specifies if overlays should be included in the export.  Default is false.

+ +

glassSize

mxImageExport.prototype.glassSize

Reference to the thread while the animation is running.

+ +

shapes

mxImageExport.prototype.shapes

Holds implementations for the built-in shapes.

+ +

markers

mxImageExport.prototype.markers

Holds implementations for the built-in markers.

+ +

Functions

+ +

drawState

mxImageExport.prototype.drawState = function(state,
canvas)

Draws the given state and all its descendants to the given canvas.

+ +

createShape

mxImageExport.prototype.createShape = function(state,
canvas)

Creates a shape wrapper for the custom shape in the given cell state and links its output to the given canvas.

+ +

drawOverlays

mxImageExport.prototype.drawOverlays = function(state,
canvas)

Draws the overlays for the given state.

+ +

drawShape

mxImageExport.prototype.drawShape = function(state,
canvas,
shape)

Draws the given state to the given canvas.

+ +

drawGlass

Draws the given state to the given canvas.

+ +

drawGlass

mxImageExport.prototype.drawGlass = function(state,
canvas,
bounds,
shape,
size)

Draws the given state to the given canvas.

+ +

drawImage

mxImageExport.prototype.drawImage = function(state,
canvas,
bounds,
image)

Draws the given state to the given canvas.

+ +

drawLabelBackground

mxImageExport.prototype.drawLabelBackground = function(state,
canvas,
bounds,
vert)

Draws background for the label of the given state to the given canvas.

+ +

drawLabel

mxImageExport.prototype.drawLabel = function(state,
canvas,
bounds,
vert,
str)

Draws the given state to the given canvas.

+ +

getBackgroundBounds

mxImageExport.prototype.getBackgroundBounds = function(state)

Draws the given state to the given canvas.

+ +

getImageBounds

mxImageExport.prototype.getImageBounds = function(state)

Draws the given state to the given canvas.

+ +

drawMarker

mxImageExport.prototype.drawMarker = function(canvas,
state,
source)

Initializes the built-in shapes.

+ +

initShapes

mxImageExport.prototype.initShapes = function()

Initializes the built-in shapes.

+ +

initMarkers

mxImageExport.prototype.initMarkers = function()

Initializes the built-in markers.

+ +
+ + + + + + + + + + +
function mxImageExport()
Constructs a new image export.
mxImageExport.prototype.includeOverlays
Specifies if overlays should be included in the export.
mxImageExport.prototype.glassSize
Reference to the thread while the animation is running.
mxImageExport.prototype.shapes
Holds implementations for the built-in shapes.
mxImageExport.prototype.markers
Holds implementations for the built-in markers.
mxImageExport.prototype.drawState = function(state,
canvas)
Draws the given state and all its descendants to the given canvas.
mxImageExport.prototype.createShape = function(state,
canvas)
Creates a shape wrapper for the custom shape in the given cell state and links its output to the given canvas.
mxImageExport.prototype.drawOverlays = function(state,
canvas)
Draws the overlays for the given state.
mxImageExport.prototype.drawShape = function(state,
canvas,
shape)
Draws the given state to the given canvas.
mxImageExport.prototype.drawGlass = function(state,
canvas,
bounds,
shape,
size)
Draws the given state to the given canvas.
mxImageExport.prototype.drawImage = function(state,
canvas,
bounds,
image)
Draws the given state to the given canvas.
mxImageExport.prototype.drawLabelBackground = function(state,
canvas,
bounds,
vert)
Draws background for the label of the given state to the given canvas.
mxImageExport.prototype.drawLabel = function(state,
canvas,
bounds,
vert,
str)
Draws the given state to the given canvas.
mxImageExport.prototype.getBackgroundBounds = function(state)
Draws the given state to the given canvas.
mxImageExport.prototype.getImageBounds = function(state)
Draws the given state to the given canvas.
mxImageExport.prototype.drawMarker = function(canvas,
state,
source)
Initializes the built-in shapes.
mxImageExport.prototype.initShapes = function()
Initializes the built-in shapes.
mxImageExport.prototype.initMarkers = function()
Initializes the built-in markers.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxLog-js.html b/docs/js-api/files/util/mxLog-js.html new file mode 100644 index 000000000..156466a2a --- /dev/null +++ b/docs/js-api/files/util/mxLog-js.html @@ -0,0 +1,82 @@ + + +mxLog + + + + + + + + + +

mxLog

A singleton class that implements a simple console.

Summary
mxLogA singleton class that implements a simple console.
Variables
consoleNameSpecifies the name of the console window.
TRACESpecified if the output for enter and leave should be visible in the console.
DEBUGSpecifies if the output for debug should be visible in the console.
WARNSpecifies if the output for warn should be visible in the console.
bufferBuffer for pre-initialized content.
Functions
initInitializes the DOM node for the console.
infoWrites the current navigator information to the console.
addButtonAdds a button to the console using the given label and function.
isVisibleReturns true if the console is visible.
showShows the console.
setVisibleShows or hides the console.
enterWrites the specified string to the console if TRACE is true and returns the current time in milliseconds.
leaveWrites the specified string to the console if TRACE is true and computes the difference between the current time and t0 in milliseconds.
debugAdds all arguments to the console if DEBUG is enabled.
warnAdds all arguments to the console if WARN is enabled.
writeAdds the specified strings to the console.
writelnAdds the specified strings to the console, appending a linefeed at the end of each string.
+ +

Variables

+ +

consoleName

Specifies the name of the console window.  Default is ‘Console’.

+ +

TRACE

Specified if the output for enter and leave should be visible in the console.  Default is false.

+ +

DEBUG

Specifies if the output for debug should be visible in the console.  Default is true.

+ +

WARN

Specifies if the output for warn should be visible in the console.  Default is true.

+ +

buffer

Buffer for pre-initialized content.

+ +

Functions

+ +

init

init: function()

Initializes the DOM node for the console.  This requires document.body to point to a non-null value.  This is called from within setVisible if the log has not yet been initialized.

+ +

info

info: function()

Writes the current navigator information to the console.

+ +

addButton

addButton: function(lab,
funct)

Adds a button to the console using the given label and function.

+ +

isVisible

isVisible: function()

Returns true if the console is visible.

+ +

show

show: function()

Shows the console.

+ +

setVisible

setVisible: function(visible)

Shows or hides the console.

+ +

enter

enter: function(string)

Writes the specified string to the console if TRACE is true and returns the current time in milliseconds.

Example

mxLog.show();
+var t0 = mxLog.enter('Hello');
+// Do something
+mxLog.leave('World!', t0);
+ +

leave

leave: function(string,
t0)

Writes the specified string to the console if TRACE is true and computes the difference between the current time and t0 in milliseconds.  See enter for an example.

+ +

debug

debug: function()

Adds all arguments to the console if DEBUG is enabled.

Example

mxLog.show();
+mxLog.debug('Hello, World!');
+ +

warn

warn: function()

Adds all arguments to the console if WARN is enabled.

Example

mxLog.show();
+mxLog.warn('Hello, World!');
+ +

write

write: function()

Adds the specified strings to the console.

+ +

writeln

writeln: function()

Adds the specified strings to the console, appending a linefeed at the end of each string.

+ +
+ + + + + + + + + + +
enter: function(string)
Writes the specified string to the console if TRACE is true and returns the current time in milliseconds.
leave: function(string,
t0)
Writes the specified string to the console if TRACE is true and computes the difference between the current time and t0 in milliseconds.
debug: function()
Adds all arguments to the console if DEBUG is enabled.
warn: function()
Adds all arguments to the console if WARN is enabled.
init: function()
Initializes the DOM node for the console.
info: function()
Writes the current navigator information to the console.
addButton: function(lab,
funct)
Adds a button to the console using the given label and function.
isVisible: function()
Returns true if the console is visible.
show: function()
Shows the console.
setVisible: function(visible)
Shows or hides the console.
Specified if the output for enter and leave should be visible in the console.
Specifies if the output for debug should be visible in the console.
Specifies if the output for warn should be visible in the console.
write: function()
Adds the specified strings to the console.
writeln: function()
Adds the specified strings to the console, appending a linefeed at the end of each string.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxMorphing-js.html b/docs/js-api/files/util/mxMorphing-js.html new file mode 100644 index 000000000..50580b682 --- /dev/null +++ b/docs/js-api/files/util/mxMorphing-js.html @@ -0,0 +1,84 @@ + + +mxMorphing + + + + + + + + + +

mxMorphing

Implements animation for morphing cells.  Here is an example of using this class for animating the result of a layout algorithm:

graph.getModel().beginUpdate();
+try
+{
+  var circleLayout = new mxCircleLayout(graph);
+  circleLayout.execute(graph.getDefaultParent());
+}
+finally
+{
+  var morph = new mxMorphing(graph);
+  morph.addListener(mxEvent.DONE, function()
+  {
+    graph.getModel().endUpdate();
+  });
+
+  morph.startAnimation();
+}
Summary
mxMorphingImplements animation for morphing cells.
Functions
mxMorphingConstructs an animation.
Variables
graphSpecifies the delay between the animation steps.
stepsSpecifies the maximum number of steps for the morphing.
stepContains the current step.
easeEase-off for movement towards the given vector.
cellsOptional array of cells to be animated.
Functions
updateAnimationAnimation step.
showShows the changes in the given mxCellStatePreview.
animateCellAnimates the given cell state using mxCellStatePreview.moveState.
stopRecursionReturns true if the animation should not recursively find more deltas for children if the given parent state has been animated.
getDeltaReturns the vector between the current rendered state and the future location of the state after the display will be updated.
getOriginForCellReturns the top, left corner of the given cell.
+ +

Functions

+ +

mxMorphing

function mxMorphing(graph,
steps,
ease,
delay)

Constructs an animation.

Parameters

graphReference to the enclosing mxGraph.
stepsOptional number of steps in the morphing animation.  Default is 6.
easeOptional easing constant for the animation.  Default is 1.5.
delayOptional delay between the animation steps.  Passed to mxAnimation.
+ +

Variables

+ +

graph

mxMorphing.prototype.graph

Specifies the delay between the animation steps.  Defaul is 30ms.

+ +

steps

mxMorphing.prototype.steps

Specifies the maximum number of steps for the morphing.

+ +

step

mxMorphing.prototype.step

Contains the current step.

+ +

ease

mxMorphing.prototype.ease

Ease-off for movement towards the given vector.  Larger values are slower and smoother.  Default is 4.

+ +

cells

mxMorphing.prototype.cells

Optional array of cells to be animated.  If this is not specified then all cells are checked and animated if they have been moved in the current transaction.

+ +

Functions

+ +

updateAnimation

mxMorphing.prototype.updateAnimation = function()

Animation step.

+ +

show

mxMorphing.prototype.show = function(move)

Shows the changes in the given mxCellStatePreview.

+ +

animateCell

mxMorphing.prototype.animateCell = function(cell,
move,
recurse)

Animates the given cell state using mxCellStatePreview.moveState.

+ +

stopRecursion

mxMorphing.prototype.stopRecursion = function(state,
delta)

Returns true if the animation should not recursively find more deltas for children if the given parent state has been animated.

+ +

getDelta

mxMorphing.prototype.getDelta = function(state)

Returns the vector between the current rendered state and the future location of the state after the display will be updated.

+ +

getOriginForCell

mxMorphing.prototype.getOriginForCell = function(cell)

Returns the top, left corner of the given cell.  TODO: Improve performance by using caching inside this method as the result per cell never changes during the lifecycle of this object.

+ +
+ + + + + + + + + + +
function mxMorphing(graph,
steps,
ease,
delay)
Constructs an animation.
mxMorphing.prototype.graph
Specifies the delay between the animation steps.
mxMorphing.prototype.steps
Specifies the maximum number of steps for the morphing.
mxMorphing.prototype.step
Contains the current step.
mxMorphing.prototype.ease
Ease-off for movement towards the given vector.
mxMorphing.prototype.cells
Optional array of cells to be animated.
mxMorphing.prototype.updateAnimation = function()
Animation step.
mxMorphing.prototype.show = function(move)
Shows the changes in the given mxCellStatePreview.
Implements a live preview for moving cells.
mxMorphing.prototype.animateCell = function(cell,
move,
recurse)
Animates the given cell state using mxCellStatePreview.moveState.
mxCellStatePreview.prototype.moveState = function(state,
dx,
dy,
add,
includeEdges)
mxMorphing.prototype.stopRecursion = function(state,
delta)
Returns true if the animation should not recursively find more deltas for children if the given parent state has been animated.
mxMorphing.prototype.getDelta = function(state)
Returns the vector between the current rendered state and the future location of the state after the display will be updated.
mxMorphing.prototype.getOriginForCell = function(cell)
Returns the top, left corner of the given cell.
Extends mxEventSource to implement a graph component for the browser.
Implements a basic animation in JavaScript.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxMouseEvent-js.html b/docs/js-api/files/util/mxMouseEvent-js.html new file mode 100644 index 000000000..2dc55b682 --- /dev/null +++ b/docs/js-api/files/util/mxMouseEvent-js.html @@ -0,0 +1,95 @@ + + +mxMouseEvent + + + + + + + + + +

mxMouseEvent

Base class for all mouse events in mxGraph.  A listener for this event should implement the following methods:

graph.addMouseListener(
+{
+  mouseDown: function(sender, evt)
+  {
+    mxLog.debug('mouseDown');
+  },
+  mouseMove: function(sender, evt)
+  {
+    mxLog.debug('mouseMove');
+  },
+  mouseUp: function(sender, evt)
+  {
+    mxLog.debug('mouseUp');
+  }
+});
Summary
mxMouseEventBase class for all mouse events in mxGraph.
Functions
mxMouseEventConstructs a new event object for the given arguments.
Variables
consumedHolds the consumed state of this event.
evtHolds the inner event object.
graphXHolds the x-coordinate of the event in the graph.
graphYHolds the y-coordinate of the event in the graph.
stateHolds the optional mxCellState associated with this event.
Functions
getEventReturns evt.
getSourceReturns the target DOM element using mxEvent.getSource for evt.
isSourceReturns true if the given mxShape is the source of evt.
getXReturns <evt.clientX>.
getYReturns <evt.clientY>.
getGraphXReturns graphX.
getGraphYReturns graphY.
getStateReturns state.
getCellReturns the mxCell in state is not null.
isPopupTriggerReturns true if the event is a popup trigger.
isConsumedReturns consumed.
consumeSets consumed to true and invokes preventDefault on the native event if such a method is defined.
+ +

Functions

+ +

mxMouseEvent

function mxMouseEvent(evt,
state)

Constructs a new event object for the given arguments.

Parameters

evtNative mouse event.
stateOptional mxCellState under the mouse.
+ +

Variables

+ +

consumed

mxMouseEvent.prototype.consumed

Holds the consumed state of this event.

+ +

evt

mxMouseEvent.prototype.evt

Holds the inner event object.

+ +

graphX

mxMouseEvent.prototype.graphX

Holds the x-coordinate of the event in the graph.  This value is set in mxGraph.fireMouseEvent.

+ +

graphY

mxMouseEvent.prototype.graphY

Holds the y-coordinate of the event in the graph.  This value is set in mxGraph.fireMouseEvent.

+ +

state

mxMouseEvent.prototype.state

Holds the optional mxCellState associated with this event.

+ +

Functions

+ +

getEvent

mxMouseEvent.prototype.getEvent = function()

Returns evt.

+ +

getSource

mxMouseEvent.prototype.getSource = function()

Returns the target DOM element using mxEvent.getSource for evt.

+ +

isSource

mxMouseEvent.prototype.isSource = function(shape)

Returns true if the given mxShape is the source of evt.

+ +

getX

mxMouseEvent.prototype.getX = function()

Returns <evt.clientX>.

+ +

getY

mxMouseEvent.prototype.getY = function()

Returns <evt.clientY>.

+ +

getGraphX

mxMouseEvent.prototype.getGraphX = function()

Returns graphX.

+ +

getGraphY

mxMouseEvent.prototype.getGraphY = function()

Returns graphY.

+ +

getState

mxMouseEvent.prototype.getState = function()

Returns state.

+ +

getCell

mxMouseEvent.prototype.getCell = function()

Returns the mxCell in state is not null.

+ +

isPopupTrigger

mxMouseEvent.prototype.isPopupTrigger = function()

Returns true if the event is a popup trigger.

+ +

isConsumed

mxMouseEvent.prototype.isConsumed = function()

Returns consumed.

+ +

consume

mxMouseEvent.prototype.consume = function(preventDefault)

Sets consumed to true and invokes preventDefault on the native event if such a method is defined.  This is used mainly to avoid the cursor from being changed to a text cursor in Webkit.  You can use the preventDefault flag to disable this functionality.

Parameters

preventDefaultSpecifies if the native event should be canceled.  Default is true.
+ +
+ + + + + + + + + + +
function mxMouseEvent(evt,
state)
Constructs a new event object for the given arguments.
mxMouseEvent.prototype.consumed
Holds the consumed state of this event.
mxMouseEvent.prototype.evt
Holds the inner event object.
mxMouseEvent.prototype.graphX
Holds the x-coordinate of the event in the graph.
mxMouseEvent.prototype.graphY
Holds the y-coordinate of the event in the graph.
mxMouseEvent.prototype.state
Holds the optional mxCellState associated with this event.
Represents the current state of a cell in a given mxGraphView.
mxMouseEvent.prototype.getEvent = function()
Returns evt.
mxMouseEvent.prototype.getSource = function()
Returns the target DOM element using mxEvent.getSource for evt.
getSource: function(evt)
Returns the event’s target or srcElement depending on the browser.
mxMouseEvent.prototype.isSource = function(shape)
Returns true if the given mxShape is the source of evt.
Base class for all shapes.
mxMouseEvent.prototype.getX = function()
Returns evt.clientX.
mxMouseEvent.prototype.getY = function()
Returns evt.clientY.
mxMouseEvent.prototype.getGraphX = function()
Returns graphX.
mxMouseEvent.prototype.getGraphY = function()
Returns graphY.
mxMouseEvent.prototype.getState = function()
Returns state.
mxMouseEvent.prototype.getCell = function()
Returns the mxCell in state is not null.
Cells are the elements of the graph model.
mxMouseEvent.prototype.isPopupTrigger = function()
Returns true if the event is a popup trigger.
mxMouseEvent.prototype.isConsumed = function()
Returns consumed.
mxMouseEvent.prototype.consume = function(preventDefault)
Sets consumed to true and invokes preventDefault on the native event if such a method is defined.
mxGraph.prototype.fireMouseEvent = function(evtName,
me,
sender)
Dispatches the given event in the graph event dispatch loop.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxObjectIdentity-js.html b/docs/js-api/files/util/mxObjectIdentity-js.html new file mode 100644 index 000000000..54bfd6092 --- /dev/null +++ b/docs/js-api/files/util/mxObjectIdentity-js.html @@ -0,0 +1,51 @@ + + +mxObjectIdentity + + + + + + + + + +

mxObjectIdentity

Identity for JavaScript objects.  This is implemented using a simple incremeting counter which is stored in each object under <ID_NAME>.

The identity for an object does not change during its lifecycle.

Summary
mxObjectIdentityIdentity for JavaScript objects.
Variables
FIELD_NAMEName of the field to be used to store the object ID.
counterCurrent counter for objects.
Functions
getReturns the object id for the given object.
clearRemoves the object id from the given object.
+ +

Variables

+ +

FIELD_NAME

Name of the field to be used to store the object ID.  Default is ‘_mxObjectId’.

+ +

counter

Current counter for objects.

+ +

Functions

+ +

get

get: function(obj)

Returns the object id for the given object.

+ +

clear

clear: function(obj)

Removes the object id from the given object.

+ +
+ + + + + + + + + + +
get: function(obj)
Returns the object id for the given object.
clear: function(obj)
Removes the object id from the given object.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxPanningManager-js.html b/docs/js-api/files/util/mxPanningManager-js.html new file mode 100644 index 000000000..61c1a4af7 --- /dev/null +++ b/docs/js-api/files/util/mxPanningManager-js.html @@ -0,0 +1,49 @@ + + +mxPanningManager + + + + + + + + + +

mxPanningManager

Implements a handler for panning.

Summary
mxPanningManagerImplements a handler for panning.
Variables
damperDamper value for the panning.
delayDelay in milliseconds for the panning.
handleMouseOutSpecifies if mouse events outside of the component should be handled.
borderBorder to handle automatic panning inside the component.
+ +

Variables

+ +

damper

mxPanningManager.prototype.damper

Damper value for the panning.  Default is 1/6.

+ +

delay

mxPanningManager.prototype.delay

Delay in milliseconds for the panning.  Default is 10.

+ +

handleMouseOut

mxPanningManager.prototype.handleMouseOut

Specifies if mouse events outside of the component should be handled.  Default is true.

+ +

border

mxPanningManager.prototype.border

Border to handle automatic panning inside the component.  Default is 0 (disabled).

+ +
+ + + + + + + + + + +
mxPanningManager.prototype.damper
Damper value for the panning.
mxPanningManager.prototype.delay
Delay in milliseconds for the panning.
mxPanningManager.prototype.handleMouseOut
Specifies if mouse events outside of the component should be handled.
mxPanningManager.prototype.border
Border to handle automatic panning inside the component.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxPath-js.html b/docs/js-api/files/util/mxPath-js.html new file mode 100644 index 000000000..d711dcf9c --- /dev/null +++ b/docs/js-api/files/util/mxPath-js.html @@ -0,0 +1,75 @@ + + +mxPath + + + + + + + + + +

mxPath

An abstraction for creating VML and SVG paths.  See mxActor for using this object inside an mxShape for painting cells.

Summary
mxPathAn abstraction for creating VML and SVG paths.
Functions
mxPathConstructs a path for the given format, which is one of svg or vml.
Variables
formatDefines the format for the output of this path.
translatemxPoint that specifies the translation of the complete path.
pathContains the textual representation of the path as an array.
Functions
isVmlReturns true if format is vml.
getPathReturns string that represents the path in format.
setTranslateSet the global translation of this path, that is, the origin of the coordinate system.
moveToMoves the cursor to (x, y).
lineToDraws a straight line from the current poin to (x, y).
quadToDraws a quadratic Bézier curve from the current point to (x, y) using (x1, y1) as the control point.
curveToDraws a cubic Bézier curve from the current point to (x, y) using (x1, y1) as the control point at the beginning of the curve and (x2, y2) as the control point at the end of the curve.
addPathAdds the given path.
writeWrites directly into the path.
endEnds the path.
closeCloses the path.
+ +

Functions

+ +

mxPath

function mxPath(format)

Constructs a path for the given format, which is one of svg or vml.

Parameters

formatString specifying the format.  May be one of vml or svg (default).
+ +

Variables

+ +

format

mxPath.prototype.format

Defines the format for the output of this path.  Possible values are svg and vml.

+ +

translate

mxPath.prototype.translate

mxPoint that specifies the translation of the complete path.

+ +

path

mxPath.prototype.path

Contains the textual representation of the path as an array.

+ +

Functions

+ +

isVml

mxPath.prototype.isVml = function()

Returns true if format is vml.

+ +

getPath

mxPath.prototype.getPath = function()

Returns string that represents the path in format.

+ +

setTranslate

mxPath.prototype.setTranslate = function(x,
y)

Set the global translation of this path, that is, the origin of the coordinate system.

Parameters

xX-coordinate of the new origin.
yY-coordinate of the new origin.
+ +

moveTo

mxPath.prototype.moveTo = function(x,
y)

Moves the cursor to (x, y).

Parameters

xX-coordinate of the new cursor location.
yY-coordinate of the new cursor location.
+ +

lineTo

mxPath.prototype.lineTo = function(x,
y)

Draws a straight line from the current poin to (x, y).

Parameters

xX-coordinate of the endpoint.
yY-coordinate of the endpoint.
+ +

quadTo

mxPath.prototype.quadTo = function(x1,
y1,
x,
y)

Draws a quadratic Bézier curve from the current point to (x, y) using (x1, y1) as the control point.

Parameters

x1X-coordinate of the control point.
y1Y-coordinate of the control point.
xX-coordinate of the endpoint.
yY-coordinate of the endpoint.
+ +

curveTo

mxPath.prototype.curveTo = function(x1,
y1,
x2,
y2,
x,
y)

Draws a cubic Bézier curve from the current point to (x, y) using (x1, y1) as the control point at the beginning of the curve and (x2, y2) as the control point at the end of the curve.

Parameters

x1X-coordinate of the first control point.
y1Y-coordinate of the first control point.
x2X-coordinate of the second control point.
y2Y-coordinate of the second control point.
xX-coordinate of the endpoint.
yY-coordinate of the endpoint.
+ +

addPath

mxPath.prototype.addPath = function(path)

Adds the given path.

+ +

write

mxPath.prototype.write = function(string)

Writes directly into the path.  This bypasses all conversions.

+ +

end

mxPath.prototype.end = function()

Ends the path.

+ +

close

mxPath.prototype.close = function()

Closes the path.

+ +
+ + + + + + + + + + +
function mxPath(format)
Constructs a path for the given format, which is one of svg or vml.
mxPath.prototype.format
Defines the format for the output of this path.
mxPath.prototype.translate
mxPoint that specifies the translation of the complete path.
Implements a 2-dimensional vector with double precision coordinates.
mxPath.prototype.path
Contains the textual representation of the path as an array.
mxPath.prototype.isVml = function()
Returns true if format is vml.
mxPath.prototype.getPath = function()
Returns string that represents the path in format.
mxPath.prototype.setTranslate = function(x,
y)
Set the global translation of this path, that is, the origin of the coordinate system.
mxPath.prototype.moveTo = function(x,
y)
Moves the cursor to (x, y).
mxPath.prototype.lineTo = function(x,
y)
Draws a straight line from the current poin to (x, y).
mxPath.prototype.quadTo = function(x1,
y1,
x,
y)
Draws a quadratic Bézier curve from the current point to (x, y) using (x1, y1) as the control point.
mxPath.prototype.curveTo = function(x1,
y1,
x2,
y2,
x,
y)
Draws a cubic Bézier curve from the current point to (x, y) using (x1, y1) as the control point at the beginning of the curve and (x2, y2) as the control point at the end of the curve.
mxPath.prototype.addPath = function(path)
Adds the given path.
mxPath.prototype.write = function(string)
Writes directly into the path.
mxPath.prototype.end = function()
Ends the path.
mxPath.prototype.close = function()
Closes the path.
Extends mxShape to implement an actor shape.
Base class for all shapes.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxPoint-js.html b/docs/js-api/files/util/mxPoint-js.html new file mode 100644 index 000000000..cc76ea3aa --- /dev/null +++ b/docs/js-api/files/util/mxPoint-js.html @@ -0,0 +1,55 @@ + + +mxPoint + + + + + + + + + +

mxPoint

Implements a 2-dimensional vector with double precision coordinates.

Summary
mxPointImplements a 2-dimensional vector with double precision coordinates.
Functions
mxPointConstructs a new point for the optional x and y coordinates.
Variables
xHolds the x-coordinate of the point.
yHolds the y-coordinate of the point.
Functions
equalsReturns true if the given object equals this rectangle.
cloneReturns a clone of this mxPoint.
+ +

Functions

+ +

mxPoint

function mxPoint(x,
y)

Constructs a new point for the optional x and y coordinates.  If no coordinates are given, then the default values for x and y are used.

+ +

Variables

+ +

x

mxPoint.prototype.x

Holds the x-coordinate of the point.  Default is 0.

+ +

y

mxPoint.prototype.y

Holds the y-coordinate of the point.  Default is 0.

+ +

Functions

+ +

equals

mxPoint.prototype.equals = function(obj)

Returns true if the given object equals this rectangle.

+ +

clone

mxPoint.prototype.clone = function()

Returns a clone of this mxPoint.

+ +
+ + + + + + + + + + +
function mxPoint(x,
y)
Constructs a new point for the optional x and y coordinates.
mxPoint.prototype.x
Holds the x-coordinate of the point.
mxPoint.prototype.y
Holds the y-coordinate of the point.
mxPoint.prototype.equals = function(obj)
Returns true if the given object equals this rectangle.
mxPoint.prototype.clone = function()
Returns a clone of this mxPoint.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxPopupMenu-js.html b/docs/js-api/files/util/mxPopupMenu-js.html new file mode 100644 index 000000000..155a69ee7 --- /dev/null +++ b/docs/js-api/files/util/mxPopupMenu-js.html @@ -0,0 +1,100 @@ + + +mxPopupMenu + + + + + + + + + +

mxPopupMenu

Event handler that pans and creates popupmenus.  To use the left mousebutton for panning without interfering with cell moving and resizing, use <isUseLeftButton> and <isIgnoreCell>.  For grid size steps while panning, use <useGrid>.  This handler is built-into <mxGraph.panningHandler> and enabled using mxGraph.setPanning.

Summary
mxPopupMenuEvent handler that pans and creates popupmenus.
Functions
mxPopupMenuConstructs an event handler that creates a popupmenu.
Events
mxEvent.SHOWFires after the menu has been shown in popup.
Variables
submenuImageURL of the image to be used for the submenu icon.
zIndexSpecifies the zIndex for the popupmenu and its shadow.
factoryMethodFunction that is used to create the popup menu.
useLeftButtonForPopupSpecifies if popupmenus should be activated by clicking the left mouse button.
enabledSpecifies if events are handled.
itemCountContains the number of times addItem has been called for a new menu.
autoExpandSpecifies if submenus should be expanded on mouseover.
smartSeparatorsSpecifies if separators should only be added if a menu item follows them.
labelsSpecifies if any labels should be visible.
Functions
initInitializes the shapes required for this vertex handler.
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
isPopupTriggerReturns true if the given event is a popupmenu trigger for the optional given cell.
addItemAdds the given item to the given parent item.
createSubmenuCreates the nodes required to add submenu items inside the given parent item.
showSubmenuShows the submenu inside the given parent row.
addSeparatorAdds a horizontal separator in the given parent item or the top-level menu if no parent is specified.
popupShows the popup menu for the given event and cell.
isMenuShowingReturns true if the menu is showing.
showMenuShows the menu.
hideMenuRemoves the menu and all submenus.
hideSubmenuRemoves all submenus inside the given parent.
destroyDestroys the handler and all its resources and DOM nodes.
+ +

Functions

+ +

mxPopupMenu

Constructs an event handler that creates a popupmenu.  The event handler is not installed anywhere in this ctor.

+ +

Events

+ +

mxEvent.SHOW

Fires after the menu has been shown in popup.

+ +

Variables

+ +

submenuImage

mxPopupMenu.prototype.submenuImage

URL of the image to be used for the submenu icon.

+ +

zIndex

mxPopupMenu.prototype.zIndex

Specifies the zIndex for the popupmenu and its shadow.  Default is 1006.

+ +

factoryMethod

mxPopupMenu.prototype.factoryMethod

Function that is used to create the popup menu.  The function takes the current panning handler, the mxCell under the mouse and the mouse event that triggered the call as arguments.

+ +

useLeftButtonForPopup

mxPopupMenu.prototype.useLeftButtonForPopup

Specifies if popupmenus should be activated by clicking the left mouse button.  Default is false.

+ +

enabled

mxPopupMenu.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

itemCount

mxPopupMenu.prototype.itemCount

Contains the number of times addItem has been called for a new menu.

+ +

autoExpand

mxPopupMenu.prototype.autoExpand

Specifies if submenus should be expanded on mouseover.  Default is false.

+ +

smartSeparators

mxPopupMenu.prototype.smartSeparators

Specifies if separators should only be added if a menu item follows them.  Default is false.

+ +

labels

mxPopupMenu.prototype.labels

Specifies if any labels should be visible.  Default is true.

+ +

Functions

+ +

init

mxPopupMenu.prototype.init = function()

Initializes the shapes required for this vertex handler.

+ +

isEnabled

mxPopupMenu.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxPopupMenu.prototype.setEnabled = function(enabled)

Enables or disables event handling.  This implementation updates enabled.

+ +

isPopupTrigger

mxPopupMenu.prototype.isPopupTrigger = function(me)

Returns true if the given event is a popupmenu trigger for the optional given cell.

Parameters

memxMouseEvent that represents the mouse event.
+ +

addItem

mxPopupMenu.prototype.addItem = function(title,
image,
funct,
parent,
iconCls,
enabled)

Adds the given item to the given parent item.  If no parent item is specified then the item is added to the top-level menu.  The return value may be used as the parent argument, ie. as a submenu item.  The return value is the table row that represents the item.

Paramters

titleString that represents the title of the menu item.
imageOptional URL for the image icon.
functFunction associated that takes a mouseup or touchend event.
parentOptional item returned by addItem.
iconClsOptional string that represents the CSS class for the image icon.  IconsCls is ignored if image is given.
enabledOptional boolean indicating if the item is enabled.  Default is true.
+ +

createSubmenu

mxPopupMenu.prototype.createSubmenu = function(parent)

Creates the nodes required to add submenu items inside the given parent item.  This is called in addItem if a parent item is used for the first time.  This adds various DOM nodes and a submenuImage to the parent.

Parameters

parentAn item returned by addItem.
+ +

showSubmenu

mxPopupMenu.prototype.showSubmenu = function(parent,
row)

Shows the submenu inside the given parent row.

+ +

addSeparator

mxPopupMenu.prototype.addSeparator = function(parent,
force)

Adds a horizontal separator in the given parent item or the top-level menu if no parent is specified.

Parameters

parentOptional item returned by addItem.
forceOptional boolean to ignore smartSeparators.  Default is false.
+ +

popup

mxPopupMenu.prototype.popup = function(x,
y,
cell,
evt)

Shows the popup menu for the given event and cell.

Example

graph.panningHandler.popup = function(x, y, cell, evt)
+{
+  mxUtils.alert('Hello, World!');
+}
+ +

isMenuShowing

mxPopupMenu.prototype.isMenuShowing = function()

Returns true if the menu is showing.

+ +

showMenu

mxPopupMenu.prototype.showMenu = function()

Shows the menu.

+ +

hideMenu

mxPopupMenu.prototype.hideMenu = function()

Removes the menu and all submenus.

+ +

hideSubmenu

mxPopupMenu.prototype.hideSubmenu = function(parent)

Removes all submenus inside the given parent.

Parameters

parentAn item returned by addItem.
+ +

destroy

mxPopupMenu.prototype.destroy = function()

Destroys the handler and all its resources and DOM nodes.

+ +
+ + + + + + + + + + +
mxPopupMenu.prototype.popup = function(x,
y,
cell,
evt)
Shows the popup menu for the given event and cell.
mxPopupMenu.prototype.submenuImage
URL of the image to be used for the submenu icon.
mxPopupMenu.prototype.zIndex
Specifies the zIndex for the popupmenu and its shadow.
mxPopupMenu.prototype.factoryMethod
Function that is used to create the popup menu.
mxPopupMenu.prototype.useLeftButtonForPopup
Specifies if popupmenus should be activated by clicking the left mouse button.
mxPopupMenu.prototype.enabled
Specifies if events are handled.
mxPopupMenu.prototype.itemCount
Contains the number of times addItem has been called for a new menu.
mxPopupMenu.prototype.addItem = function(title,
image,
funct,
parent,
iconCls,
enabled)
Adds the given item to the given parent item.
mxPopupMenu.prototype.autoExpand
Specifies if submenus should be expanded on mouseover.
mxPopupMenu.prototype.smartSeparators
Specifies if separators should only be added if a menu item follows them.
mxPopupMenu.prototype.labels
Specifies if any labels should be visible.
mxPopupMenu.prototype.init = function()
Initializes the shapes required for this vertex handler.
mxPopupMenu.prototype.isEnabled = function()
Returns true if events are handled.
mxPopupMenu.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxPopupMenu.prototype.isPopupTrigger = function(me)
Returns true if the given event is a popupmenu trigger for the optional given cell.
mxPopupMenu.prototype.createSubmenu = function(parent)
Creates the nodes required to add submenu items inside the given parent item.
mxPopupMenu.prototype.showSubmenu = function(parent,
row)
Shows the submenu inside the given parent row.
mxPopupMenu.prototype.addSeparator = function(parent,
force)
Adds a horizontal separator in the given parent item or the top-level menu if no parent is specified.
mxPopupMenu.prototype.isMenuShowing = function()
Returns true if the menu is showing.
mxPopupMenu.prototype.showMenu = function()
Shows the menu.
mxPopupMenu.prototype.hideMenu = function()
Removes the menu and all submenus.
mxPopupMenu.prototype.hideSubmenu = function(parent)
Removes all submenus inside the given parent.
mxPopupMenu.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxGraph.prototype.setPanning = function(enabled)
Specifies if panning should be enabled.
Cells are the elements of the graph model.
Base class for all mouse events in mxGraph.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxRectangle-js.html b/docs/js-api/files/util/mxRectangle-js.html new file mode 100644 index 000000000..eb50b2dd9 --- /dev/null +++ b/docs/js-api/files/util/mxRectangle-js.html @@ -0,0 +1,65 @@ + + +mxRectangle + + + + + + + + + +

mxRectangle

Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.

Summary
mxRectangleExtends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
Functions
mxRectangleConstructs a new rectangle for the optional parameters.
Variables
widthHolds the width of the rectangle.
heightHolds the height of the rectangle.
Functions
setRectSets this rectangle to the specified values
getCenterXReturns the x-coordinate of the center point.
getCenterYReturns the y-coordinate of the center point.
addAdds the given rectangle to this rectangle.
growGrows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.
getPointReturns the top, left corner as a new mxPoint.
equalsReturns true if the given object equals this rectangle.
+ +

Functions

+ +

mxRectangle

function mxRectangle(x,
y,
width,
height)

Constructs a new rectangle for the optional parameters.  If no parameters are given then the respective default values are used.

+ +

Variables

+ +

width

mxRectangle.prototype.width

Holds the width of the rectangle.  Default is 0.

+ +

height

mxRectangle.prototype.height

Holds the height of the rectangle.  Default is 0.

+ +

Functions

+ +

setRect

mxRectangle.prototype.setRect = function(x,
y,
w,
h)

Sets this rectangle to the specified values

+ +

getCenterX

mxRectangle.prototype.getCenterX = function ()

Returns the x-coordinate of the center point.

+ +

getCenterY

mxRectangle.prototype.getCenterY = function ()

Returns the y-coordinate of the center point.

+ +

add

mxRectangle.prototype.add = function(rect)

Adds the given rectangle to this rectangle.

+ +

grow

mxRectangle.prototype.grow = function(amount)

Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.

+ +

getPoint

mxRectangle.prototype.getPoint = function()

Returns the top, left corner as a new mxPoint.

+ +

equals

mxRectangle.prototype.equals = function(obj)

Returns true if the given object equals this rectangle.

+ +
+ + + + + + + + + + +
Implements a 2-dimensional vector with double precision coordinates.
function mxRectangle(x,
y,
width,
height)
Constructs a new rectangle for the optional parameters.
mxRectangle.prototype.width
Holds the width of the rectangle.
mxRectangle.prototype.height
Holds the height of the rectangle.
mxRectangle.prototype.setRect = function(x,
y,
w,
h)
Sets this rectangle to the specified values
mxRectangle.prototype.getCenterX = function ()
Returns the x-coordinate of the center point.
mxRectangle.prototype.getCenterY = function ()
Returns the y-coordinate of the center point.
mxRectangle.prototype.add = function(rect)
Adds the given rectangle to this rectangle.
mxRectangle.prototype.grow = function(amount)
Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.
mxRectangle.prototype.getPoint = function()
Returns the top, left corner as a new mxPoint.
mxRectangle.prototype.equals = function(obj)
Returns true if the given object equals this rectangle.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxResources-js.html b/docs/js-api/files/util/mxResources-js.html new file mode 100644 index 000000000..65def447b --- /dev/null +++ b/docs/js-api/files/util/mxResources-js.html @@ -0,0 +1,63 @@ + + +mxResources + + + + + + + + + +

mxResources

Implements internationalization.  You can provide any number of resource files on the server using the following format for the filename: name[-en].properties.  The en stands for any lowercase 2-character language shortcut (eg. de for german, fr for french).

If the optional language extension is omitted, then the file is used as a default resource which is loaded in all cases.  If a properties file for a specific language exists, then it is used to override the settings in the default resource.  All entries in the file are of the form key=value.  The values may then be accessed in code via get.  Lines without equal signs in the properties files are ignored.

Resource files may either be added programmatically using add or via a resource tag in the UI section of the editor configuration file, eg:

<mxEditor>
+  <ui>
+    <resource basename="examples/resources/mxWorkflow"/>

The above element will load examples/resources/mxWorkflow.properties as well as the language specific file for the current language, if it exists.

Values may contain placeholders of the form {1}...{n} where each placeholder is replaced with the value of the corresponding array element in the params argument passed to mxResources.get.  The placeholder {1} maps to the first element in the array (at index 0).

See mxClient.language for more information on specifying the default language or disabling all loading of resources.

Special characters

To use unicode characters use %u as a prefix, eg.  %u20AC will display a Euro sign.  For normal hex encoded strings, use % as a prefix, eg.  %F6 will display a ö (&ouml;).

Summary
mxResourcesImplements internationalization.
Variables
resourcesAssociative array that maps from keys to values.
loadDefaultBundleSpecifies if the default file for a given basename should be loaded.
loadDefaultBundleSpecifies if the specific language file file for a given basename should be loaded.
Functions
isBundleSupportedHook for subclassers to disable support for a given language.
getDefaultBundleHook for subclassers to return the URL for the special bundle.
getSpecialBundleHook for subclassers to return the URL for the special bundle.
addAdds the default and current language properties file for the specified basename.
parseParses the key, value pairs in the specified text and stores them as local resources.
getReturns the value for the specified resource key.
+ +

Variables

+ +

resources

Associative array that maps from keys to values.

+ +

loadDefaultBundle

Specifies if the default file for a given basename should be loaded.  Default is true.

+ +

loadDefaultBundle

Specifies if the specific language file file for a given basename should be loaded.  Default is true.

+ +

Functions

+ +

isBundleSupported

Hook for subclassers to disable support for a given language.  This implementation always returns true.

Parameters

basenameThe basename for which the file should be loaded.
lanThe current language.
+ +

getDefaultBundle

getDefaultBundle: function(basename,
lan)

Hook for subclassers to return the URL for the special bundle.  This implementation returns basename + ‘.properties’ or null if loadDefaultBundle is false.

Parameters

basenameThe basename for which the file should be loaded.
lanThe current language.
+ +

getSpecialBundle

getSpecialBundle: function(basename,
lan)

Hook for subclassers to return the URL for the special bundle.  This implementation returns basename + ‘_’ + lan + ‘.properties’ or null if <loadSpecialBundle> is false or lan equals mxClient.defaultLanguage.

Parameters

basenameThe basename for which the file should be loaded.
lanThe language for which the file should be loaded.
+ +

add

add: function(basename,
lan)

Adds the default and current language properties file for the specified basename.  Existing keys are overridden as new files are added.

Example

At application startup, additional resources may be added using the following code:

mxResources.add('resources/editor');
+ +

parse

parse: function(text)

Parses the key, value pairs in the specified text and stores them as local resources.

+ +

get

get: function(key,
params,
defaultValue)

Returns the value for the specified resource key.

Example

To read the value for ‘welomeMessage’, use the following:

var result = mxResources.get('welcomeMessage') || '';

This would require an entry of the following form in one of the English language resource files:

welcomeMessage=Welcome to mxGraph!

The part behind the || is the string value to be used if the given resource is not available.

Parameters

keyString that represents the key of the resource to be returned.
paramsArray of the values for the placeholders of the form {1}...{n} to be replaced with in the resulting string.
defaultValueOptional string that specifies the default return value.
+ +
+ + + + + + + + + + +
getDefaultBundle: function(basename,
lan)
Hook for subclassers to return the URL for the special bundle.
getSpecialBundle: function(basename,
lan)
Hook for subclassers to return the URL for the special bundle.
add: function(basename,
lan)
Adds the default and current language properties file for the specified basename.
parse: function(text)
Parses the key, value pairs in the specified text and stores them as local resources.
get: function(key,
params,
defaultValue)
Returns the value for the specified resource key.
Defines the language of the client, eg.
Specifies if the default file for a given basename should be loaded.
Defines the default language which is used in the common resource files.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxSession-js.html b/docs/js-api/files/util/mxSession-js.html new file mode 100644 index 000000000..9905309a1 --- /dev/null +++ b/docs/js-api/files/util/mxSession-js.html @@ -0,0 +1,125 @@ + + +mxSession + + + + + + + + + +

mxSession

Session for sharing an mxGraphModel with other parties via a backend that acts as a multicaster for all changes.

Diagram Sharing

The diagram sharing is a mechanism where each atomic change of the model is encoded into XML using mxCodec and then transmitted to the server by the mxSession object.  On the server, the XML data is dispatched to each listener on the same diagram (except the sender), and the XML is decoded back into atomic changes on the client side, which are then executed on the model and stored in the command history.

The mxSession.significantRemoteChanges specifies how these changes are treated with respect to undo: The default value (true) will undo the last change regardless of whether it was a remote or a local change.  If the switch is false, then an undo will go back until the last local change, silently undoing all remote changes up to that point.  Note that these changes will be added as new remote changes to the history of the other clients.

Summary
mxSessionSession for sharing an mxGraphModel with other parties via a backend that acts as a multicaster for all changes.
Events
mxEvent.CONNECTFires after the session has been started, that is, after the response to the initial request was received and the session goes into polling mode.
mxEvent.SUSPENDFires after suspend was called an the session was not already in suspended state.
mxEvent.RESUMEFires after the session was resumed in resume.
mxEvent.DISCONNECTFires after the session was stopped in stop.
mxEvent.NOTIFYFires after a notification was sent in notify.
mxEvent.GETFires after a response was received in get.
mxEvent.FIREDFires after an array of edits has been executed on the model.
mxEvent.RECEIVEFires after an XML node was received in receive.
Functions
mxSessionConstructs a new session using the given mxGraphModel and URLs to communicate with the backend.
Variables
modelReference to the enclosing mxGraphModel.
urlInitURL to initialize the session.
urlPollURL for polling the backend.
urlNotifyURL to send changes to the backend.
codecReference to the mxCodec used to encoding and decoding changes.
linefeedUsed for encoding linefeeds.
escapePostDataSpecifies if the data in the post request sent in notify should be converted using encodeURIComponent.
significantRemoteChangesWhether remote changes should be significant in the local command history.
sentTotal number of sent bytes.
receivedTotal number of received bytes.
debugSpecifies if the session should run in debug mode.
connected
send
polling
Functions
start
suspendSuspends the polling.
resumeResumes the session if it has been suspended.
stopStops the session and fires a disconnect event.
pollSends an asynchronous GET request to urlPoll.
notifySends out the specified XML to urlNotify and fires a notify event.
getSends an asynchronous get request to the given URL, fires a get event and invokes the given onLoad function when a response is received.
isValidResponseReturns true if the response data in the given mxXmlRequest is valid.
encodeChangesReturns the XML representation for the given array of changes.
receiveProcesses the given node by applying the changes to the model.
processStateProcesses the given state node which contains the current state of the remote model.
processDeltaProcesses the given delta node which contains a sequence of edits which in turn map to one transaction on the remote model each.
processEditProcesses the given edit by executing its changes and firing the required events via the model.
createUndoableEditCreates a new mxUndoableEdit that implements the notify function to fire a <change> and notify event via the model.
decodeChangesDecodes and executes the changes represented by the children in the given node.
cellRemovedAdds removed cells to the codec object lookup for references to the removed cells after this point in time.
+ +

Events

+ +

mxEvent.CONNECT

Fires after the session has been started, that is, after the response to the initial request was received and the session goes into polling mode.  This event has no properties.

+ +

mxEvent.SUSPEND

Fires after suspend was called an the session was not already in suspended state.  This event has no properties.

+ +

mxEvent.RESUME

Fires after the session was resumed in resume.  This event has no properties.

+ +

mxEvent.DISCONNECT

Fires after the session was stopped in stop.  The <code>reason</code> property contains the optional exception that was passed to the stop method.

+ +

mxEvent.NOTIFY

Fires after a notification was sent in notify.  The <code>url</code> property contains the URL and the <code>xml</code> property contains the XML data of the request.

+ +

mxEvent.GET

Fires after a response was received in get.  The <code>url</code> property contains the URL and the <code>request</code> is the mxXmlRequest that contains the response.

+ +

mxEvent.FIRED

Fires after an array of edits has been executed on the model.  The <code>changes</code> property contains the array of changes.

+ +

mxEvent.RECEIVE

Fires after an XML node was received in receive.  The <code>node</code> property contains the node that was received.

+ +

Functions

+ +

mxSession

function mxSession(model,
urlInit,
urlPoll,
urlNotify)

Constructs a new session using the given mxGraphModel and URLs to communicate with the backend.

Parameters

modelmxGraphModel that contains the data.
urlInitURL to be used for initializing the session.
urlPollURL to be used for polling the backend.
urlNotifyURL to be used for sending changes to the backend.
+ +

Variables

+ +

model

mxSession.prototype.model

Reference to the enclosing mxGraphModel.

+ +

urlInit

mxSession.prototype.urlInit

URL to initialize the session.

+ +

urlPoll

mxSession.prototype.urlPoll

URL for polling the backend.

+ +

urlNotify

mxSession.prototype.urlNotify

URL to send changes to the backend.

+ +

codec

mxSession.prototype.codec

Reference to the mxCodec used to encoding and decoding changes.

+ +

linefeed

mxSession.prototype.linefeed

Used for encoding linefeeds.  Default is ‘&#xa;’.

+ +

escapePostData

mxSession.prototype.escapePostData

Specifies if the data in the post request sent in notify should be converted using encodeURIComponent.  Default is true.

+ +

significantRemoteChanges

mxSession.prototype.significantRemoteChanges

Whether remote changes should be significant in the local command history.  Default is true.

+ +

sent

mxSession.prototype.sent

Total number of sent bytes.

+ +

received

mxSession.prototype.received

Total number of received bytes.

+ +

debug

mxSession.prototype.debug

Specifies if the session should run in debug mode.  In this mode, no connection is established.  The data is written to the console instead.  Default is false.

+ +

connected

mxSession.prototype.connected
+ +

send

+ +

polling

mxSession.prototype.polling
+ +

Functions

+ +

start

mxSession.prototype.start = function()
+ +

suspend

mxSession.prototype.suspend = function()

Suspends the polling.  Use resume to reactive the session.  Fires a suspend event.

+ +

resume

mxSession.prototype.resume = function(type,
attr,
value)

Resumes the session if it has been suspended.  Fires a resume-event before starting the polling.

+ +

stop

mxSession.prototype.stop = function(reason)

Stops the session and fires a disconnect event.  The given reason is passed to the disconnect event listener as the second argument.

+ +

poll

mxSession.prototype.poll = function()

Sends an asynchronous GET request to urlPoll.

+ +

notify

mxSession.prototype.notify = function(xml,
onLoad,
onError)

Sends out the specified XML to urlNotify and fires a notify event.

+ +

get

mxSession.prototype.get = function(url,
onLoad,
onError)

Sends an asynchronous get request to the given URL, fires a get event and invokes the given onLoad function when a response is received.

+ +

isValidResponse

mxSession.prototype.isValidResponse = function(req)

Returns true if the response data in the given mxXmlRequest is valid.

+ +

encodeChanges

mxSession.prototype.encodeChanges = function(changes,
invert)

Returns the XML representation for the given array of changes.

+ +

receive

mxSession.prototype.receive = function(node)

Processes the given node by applying the changes to the model.  If the nodename is state, then the namespace is used as a prefix for creating Ids in the model, and the child nodes are visited recursively.  If the nodename is delta, then the changes encoded in the child nodes are applied to the model.  Each call to the receive function fires a receive event with the given node as the second argument after processing.  If changes are processed, then the function additionally fires a mxEvent.FIRED event before the mxEvent.RECEIVE event.

+ +

processState

mxSession.prototype.processState = function(node)

Processes the given state node which contains the current state of the remote model.

+ +

processDelta

mxSession.prototype.processDelta = function(node)

Processes the given delta node which contains a sequence of edits which in turn map to one transaction on the remote model each.

+ +

processEdit

mxSession.prototype.processEdit = function(node)

Processes the given edit by executing its changes and firing the required events via the model.

+ +

createUndoableEdit

mxSession.prototype.createUndoableEdit = function(changes)

Creates a new mxUndoableEdit that implements the notify function to fire a <change> and notify event via the model.

+ +

decodeChanges

mxSession.prototype.decodeChanges = function(node)

Decodes and executes the changes represented by the children in the given node.  Returns an array that contains all changes.

+ +

cellRemoved

mxSession.prototype.cellRemoved = function(cell,
codec)

Adds removed cells to the codec object lookup for references to the removed cells after this point in time.

+ +
+ + + + + + + + + + +
Extends mxEventSource to implement a graph model.
mxSession.prototype.suspend = function()
Suspends the polling.
mxSession.prototype.resume = function(type,
attr,
value)
Resumes the session if it has been suspended.
mxSession.prototype.stop = function(reason)
Stops the session and fires a disconnect event.
mxSession.prototype.notify = function(xml,
onLoad,
onError)
Sends out the specified XML to urlNotify and fires a notify event.
mxSession.prototype.get = function(url,
onLoad,
onError)
Sends an asynchronous get request to the given URL, fires a get event and invokes the given onLoad function when a response is received.
mxSession.prototype.receive = function(node)
Processes the given node by applying the changes to the model.
function mxSession(model,
urlInit,
urlPoll,
urlNotify)
Constructs a new session using the given mxGraphModel and URLs to communicate with the backend.
mxSession.prototype.model
Reference to the enclosing mxGraphModel.
mxSession.prototype.urlInit
URL to initialize the session.
mxSession.prototype.urlPoll
URL for polling the backend.
mxSession.prototype.urlNotify
URL to send changes to the backend.
mxSession.prototype.codec
Reference to the mxCodec used to encoding and decoding changes.
XML codec for JavaScript object graphs.
mxSession.prototype.linefeed
Used for encoding linefeeds.
mxSession.prototype.escapePostData
Specifies if the data in the post request sent in notify should be converted using encodeURIComponent.
mxSession.prototype.significantRemoteChanges
Whether remote changes should be significant in the local command history.
mxSession.prototype.sent
Total number of sent bytes.
mxSession.prototype.received
Total number of received bytes.
mxSession.prototype.debug
Specifies if the session should run in debug mode.
mxSession.prototype.connected
mxSession.prototype.polling
mxSession.prototype.start = function()
mxSession.prototype.poll = function()
Sends an asynchronous GET request to urlPoll.
mxSession.prototype.isValidResponse = function(req)
Returns true if the response data in the given mxXmlRequest is valid.
XML HTTP request wrapper.
mxSession.prototype.encodeChanges = function(changes,
invert)
Returns the XML representation for the given array of changes.
mxSession.prototype.processState = function(node)
Processes the given state node which contains the current state of the remote model.
mxSession.prototype.processDelta = function(node)
Processes the given delta node which contains a sequence of edits which in turn map to one transaction on the remote model each.
mxSession.prototype.processEdit = function(node)
Processes the given edit by executing its changes and firing the required events via the model.
mxSession.prototype.createUndoableEdit = function(changes)
Creates a new mxUndoableEdit that implements the notify function to fire a change and notify event via the model.
Implements a composite undoable edit.
mxSession.prototype.decodeChanges = function(node)
Decodes and executes the changes represented by the children in the given node.
mxSession.prototype.cellRemoved = function(cell,
codec)
Adds removed cells to the codec object lookup for references to the removed cells after this point in time.
Fires after an array of edits has been executed on the model.
Fires after an XML node was received in receive.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxSvgCanvas2D-js.html b/docs/js-api/files/util/mxSvgCanvas2D-js.html new file mode 100644 index 000000000..d46cc0309 --- /dev/null +++ b/docs/js-api/files/util/mxSvgCanvas2D-js.html @@ -0,0 +1,157 @@ + + +mxSvgCanvas2D + + + + + + + + + +

mxSvgCanvas2D

Implements a canvas to be used with mxImageExport.  This canvas writes all calls as SVG output to the given SVG root node.

var svgDoc = mxUtils.createXmlDocument();
+var root = (svgDoc.createElementNS != null) ?
+     svgDoc.createElementNS(mxConstants.NS_SVG, 'svg') : svgDoc.createElement('svg');
+
+if (svgDoc.createElementNS == null)
+{
+  root.setAttribute('xmlns', mxConstants.NS_SVG);
+}
+
+var bounds = graph.getGraphBounds();
+root.setAttribute('width', (bounds.x + bounds.width + 4) + 'px');
+root.setAttribute('height', (bounds.y + bounds.height + 4) + 'px');
+root.setAttribute('version', '1.1');
+
+svgDoc.appendChild(root);
+
+var svgCanvas = new mxSvgCanvas2D(root);
Summary
mxSvgCanvas2DImplements a canvas to be used with mxImageExport.
Functions
mxSvgCanvas2DConstructs an SVG canvas.
Variables
converterHolds the mxUrlConverter to convert image URLs.
autoAntiAliasSpecifies if anti aliasing should be disabled for rectangles and orthogonal paths.
textEnabledSpecifies if text output should be enabled.
foEnabledSpecifies if use of foreignObject for HTML markup is allowed.
Functions
getConverterReturns converter.
isAutoAntiAliasReturns autoAntiAlias.
setAutoAntiAliasSets autoAntiAlias.
isTextEnabledReturns textEnabled.
setTextEnabledSets textEnabled.
isFoEnabledReturns foEnabled.
setFoEnabledSets foEnabled.
saveSaves the state of the graphics object.
restoreRestores the state of the graphics object.
scaleScales the current graphics object.
translateTranslates the current graphics object.
rotateRotates and/or flips the current graphics object.
setStrokeWidthSets the stroke width.
setStrokeColorSets the stroke color.
setDashedSets the dashed state to true or false.
setDashPatternSets the dashed pattern to the given space separated list of numbers.
setLineCapSets the linecap.
setLineJoinSets the linejoin.
setMiterLimitSets the miterlimit.
setFontSizeSets the fontsize.
setFontColorSets the fontcolor.
setFontFamilySets the fontfamily.
setFontStyleSets the fontstyle.
setAlphaSets the current alpha.
setFillColorSets the fillcolor.
setGradientSets the gradient color.
setGlassGradientSets the glass gradient.
rectSets the current path to a rectangle.
roundrectSets the current path to a rounded rectangle.
ellipseSets the current path to an ellipse.
imagePaints an image.
textPaints the given text.
beginStarts a new path.
moveToMoves the current path the given coordinates.
lineToAdds a line to the current path.
quadToAdds a quadratic curve to the current path.
curveToAdds a bezier curve to the current path.
closeCloses the current path.
strokePaints the outline of the current path.
fillFills the current path.
fillstrokeFills and paints the outline of the current path.
shadowPaints the current path as a shadow of the given color.
clipUses the current path for clipping.
+ +

Functions

+ +

mxSvgCanvas2D

var mxSvgCanvas2D = function(root,
styleEnabled)

Constructs an SVG canvas.

Parameters

rootSVG container for the output.
styleEnabledOptional boolean that specifies if a style section should be added.  The style section sets the default font-size, font-family and stroke-miterlimit globally.  Default is false.
+ +

Variables

+ +

converter

var converter

Holds the mxUrlConverter to convert image URLs.

+ +

autoAntiAlias

var autoAntiAlias

Specifies if anti aliasing should be disabled for rectangles and orthogonal paths.  Default is true.

+ +

textEnabled

var textEnabled

Specifies if text output should be enabled.  Default is true.

+ +

foEnabled

var foEnabled

Specifies if use of foreignObject for HTML markup is allowed.  Default is true.

+ +

Functions

+ +

getConverter

getConverter: function()

Returns converter.

+ +

isAutoAntiAlias

isAutoAntiAlias: function()

Returns autoAntiAlias.

+ +

setAutoAntiAlias

setAutoAntiAlias: function(value)

Sets autoAntiAlias.

+ +

isTextEnabled

isTextEnabled: function()

Returns textEnabled.

+ +

setTextEnabled

setTextEnabled: function(value)

Sets textEnabled.

+ +

isFoEnabled

isFoEnabled: function()

Returns foEnabled.

+ +

setFoEnabled

setFoEnabled: function(value)

Sets foEnabled.

+ +

save

save: function()

Saves the state of the graphics object.

+ +

restore

restore: function()

Restores the state of the graphics object.

+ +

scale

scale: function(value)

Scales the current graphics object.

+ +

translate

translate: function(dx,
dy)

Translates the current graphics object.

+ +

rotate

rotate: function(theta,
flipH,
flipV,
cx,
cy)

Rotates and/or flips the current graphics object.

+ +

setStrokeWidth

setStrokeWidth: function(value)

Sets the stroke width.

+ +

setStrokeColor

setStrokeColor: function(value)

Sets the stroke color.

+ +

setDashed

setDashed: function(value)

Sets the dashed state to true or false.

+ +

setDashPattern

setDashPattern: function(value)

Sets the dashed pattern to the given space separated list of numbers.

+ +

setLineCap

setLineCap: function(value)

Sets the linecap.

+ +

setLineJoin

setLineJoin: function(value)

Sets the linejoin.

+ +

setMiterLimit

setMiterLimit: function(value)

Sets the miterlimit.

+ +

setFontSize

setFontSize: function(value)

Sets the fontsize.

+ +

setFontColor

setFontColor: function(value)

Sets the fontcolor.

+ +

setFontFamily

setFontFamily: function(value)

Sets the fontfamily.

+ +

setFontStyle

setFontStyle: function(value)

Sets the fontstyle.

+ +

setAlpha

setAlpha: function(alpha)

Sets the current alpha.

+ +

setFillColor

setFillColor: function(value)

Sets the fillcolor.

+ +

setGradient

setGradient: function(color1,
color2,
x,
y,
w,
h,
direction)

Sets the gradient color.

+ +

setGlassGradient

setGlassGradient: function(x,
y,
w,
h)

Sets the glass gradient.

+ +

rect

rect: function(x,
y,
w,
h)

Sets the current path to a rectangle.

+ +

roundrect

roundrect: function(x,
y,
w,
h,
dx,
dy)

Sets the current path to a rounded rectangle.

+ +

ellipse

ellipse: function(x,
y,
w,
h)

Sets the current path to an ellipse.

+ +

image

image: function(x,
y,
w,
h,
src,
aspect,
flipH,
flipV)

Paints an image.

+ +

text

text: function(x,
y,
w,
h,
str,
align,
valign,
vertical,
wrap,
format)

Paints the given text.  Possible values for format are empty string for plain text and html for HTML markup.

+ +

begin

begin: function()

Starts a new path.

+ +

moveTo

moveTo: function(x,
y)

Moves the current path the given coordinates.

+ +

lineTo

lineTo: function(x,
y)

Adds a line to the current path.

+ +

quadTo

quadTo: function(x1,
y1,
x2,
y2)

Adds a quadratic curve to the current path.

+ +

curveTo

curveTo: function(x1,
y1,
x2,
y2,
x3,
y3)

Adds a bezier curve to the current path.

+ +

close

close: function()

Closes the current path.

+ +

stroke

stroke: function()

Paints the outline of the current path.

+ +

fill

fill: function()

Fills the current path.

+ +

fillstroke

Fills and paints the outline of the current path.

+ +

shadow

shadow: function(value,
filled)

Paints the current path as a shadow of the given color.

+ +

clip

clip: function()

Uses the current path for clipping.

+ +
+ + + + + + + + + + +
Creates a new image export instance to be used with an export canvas.
var mxSvgCanvas2D = function(root,
styleEnabled)
Constructs an SVG canvas.
var converter
Holds the mxUrlConverter to convert image URLs.
Converts relative to absolute URLs.
var autoAntiAlias
Specifies if anti aliasing should be disabled for rectangles and orthogonal paths.
var textEnabled
Specifies if text output should be enabled.
var foEnabled
Specifies if use of foreignObject for HTML markup is allowed.
getConverter: function()
Returns converter.
isAutoAntiAlias: function()
Returns autoAntiAlias.
setAutoAntiAlias: function(value)
Sets autoAntiAlias.
isTextEnabled: function()
Returns textEnabled.
setTextEnabled: function(value)
Sets textEnabled.
isFoEnabled: function()
Returns foEnabled.
setFoEnabled: function(value)
Sets foEnabled.
save: function()
Saves the state of the graphics object.
restore: function()
Restores the state of the graphics object.
scale: function(value)
Scales the current graphics object.
translate: function(dx,
dy)
Translates the current graphics object.
rotate: function(theta,
flipH,
flipV,
cx,
cy)
Rotates and/or flips the current graphics object.
setStrokeWidth: function(value)
Sets the stroke width.
setStrokeColor: function(value)
Sets the stroke color.
setDashed: function(value)
Sets the dashed state to true or false.
setDashPattern: function(value)
Sets the dashed pattern to the given space separated list of numbers.
setLineCap: function(value)
Sets the linecap.
setLineJoin: function(value)
Sets the linejoin.
setMiterLimit: function(value)
Sets the miterlimit.
setFontSize: function(value)
Sets the fontsize.
setFontColor: function(value)
Sets the fontcolor.
setFontFamily: function(value)
Sets the fontfamily.
setFontStyle: function(value)
Sets the fontstyle.
setAlpha: function(alpha)
Sets the current alpha.
setFillColor: function(value)
Sets the fillcolor.
setGradient: function(color1,
color2,
x,
y,
w,
h,
direction)
Sets the gradient color.
setGlassGradient: function(x,
y,
w,
h)
Sets the glass gradient.
rect: function(x,
y,
w,
h)
Sets the current path to a rectangle.
roundrect: function(x,
y,
w,
h,
dx,
dy)
Sets the current path to a rounded rectangle.
ellipse: function(x,
y,
w,
h)
Sets the current path to an ellipse.
image: function(x,
y,
w,
h,
src,
aspect,
flipH,
flipV)
Paints an image.
text: function(x,
y,
w,
h,
str,
align,
valign,
vertical,
wrap,
format)
Paints the given text.
begin: function()
Starts a new path.
moveTo: function(x,
y)
Moves the current path the given coordinates.
lineTo: function(x,
y)
Adds a line to the current path.
quadTo: function(x1,
y1,
x2,
y2)
Adds a quadratic curve to the current path.
curveTo: function(x1,
y1,
x2,
y2,
x3,
y3)
Adds a bezier curve to the current path.
close: function()
Closes the current path.
stroke: function()
Paints the outline of the current path.
fill: function()
Fills the current path.
shadow: function(value,
filled)
Paints the current path as a shadow of the given color.
clip: function()
Uses the current path for clipping.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxToolbar-js.html b/docs/js-api/files/util/mxToolbar-js.html new file mode 100644 index 000000000..b0b9c721e --- /dev/null +++ b/docs/js-api/files/util/mxToolbar-js.html @@ -0,0 +1,83 @@ + + +mxToolbar + + + + + + + + + +

mxToolbar

Creates a toolbar inside a given DOM node.  The toolbar may contain icons, buttons and combo boxes.

Summary
mxToolbarCreates a toolbar inside a given DOM node.
Events
mxEvent.SELECTFires when an item was selected in the toolbar.
Functions
mxToolbarConstructs a toolbar in the specified container.
Variables
containerReference to the DOM nodes that contains the toolbar.
enabledSpecifies if events are handled.
noResetSpecifies if resetMode requires a forced flag of true for resetting the current mode in the toolbar.
updateDefaultModeBoolean indicating if the default mode should be the last selected switch mode or the first inserted switch mode.
Functions
addItemAdds the given function as an image with the specified title and icon and returns the new image node.
addComboAdds and returns a new SELECT element using the given style.
addComboAdds and returns a new SELECT element using the given title as the default element.
addOptionAdds and returns a new OPTION element inside the given SELECT element.
addSwitchModeAdds a new selectable item to the toolbar.
addModeAdds a new item to the toolbar.
selectModeResets the state of the previously selected mode and displays the given DOM node as selected.
resetModeSelects the default mode and resets the state of the previously selected mode.
addSeparatorAdds the specifies image as a separator.
addBreakAdds a break to the container.
addLineAdds a horizontal line to the container.
destroyRemoves the toolbar and all its associated resources.
+ +

Events

+ +

mxEvent.SELECT

Fires when an item was selected in the toolbar.  The <code>function</code> property contains the function that was selected in selectMode.

+ +

Functions

+ +

mxToolbar

function mxToolbar(container)

Constructs a toolbar in the specified container.

Parameters

containerDOM node that contains the toolbar.
+ +

Variables

+ +

container

mxToolbar.prototype.container

Reference to the DOM nodes that contains the toolbar.

+ +

enabled

mxToolbar.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

noReset

mxToolbar.prototype.noReset

Specifies if resetMode requires a forced flag of true for resetting the current mode in the toolbar.  Default is false.  This is set to true if the toolbar item is double clicked to avoid a reset after a single use of the item.

+ +

updateDefaultMode

mxToolbar.prototype.updateDefaultMode

Boolean indicating if the default mode should be the last selected switch mode or the first inserted switch mode.  Default is true, that is the last selected switch mode is the default mode.  The default mode is the mode to be selected after a reset of the toolbar.  If this is false, then the default mode is the first inserted mode item regardless of what was last selected.  Otherwise, the selected item after a reset is the previously selected item.

+ +

Functions

+ +

addItem

mxToolbar.prototype.addItem = function(title,
icon,
funct,
pressedIcon,
style,
factoryMethod)

Adds the given function as an image with the specified title and icon and returns the new image node.

Parameters

titleOptional string that is used as the tooltip.
iconOptional URL of the image to be used.  If no URL is given, then a button is created.
functFunction to execute on a mouse click.
pressedIconOptional URL of the pressed image.  Default is a gray background.
styleOptional style classname.  Default is mxToolbarItem.
factoryMethodOptional factory method for popup menu, eg. function(menu, evt, cell) { menu.addItem(‘Hello, World!’); }
+ +

addCombo

mxToolbar.prototype.addCombo = function(style)

Adds and returns a new SELECT element using the given style.  The element is placed inside a DIV with the mxToolbarComboContainer style classname.

Parameters

styleOptional style classname.  Default is mxToolbarCombo.
+ +

addCombo

Adds and returns a new SELECT element using the given title as the default element.  The selection is reset to this element after each change.

Parameters

titleString that specifies the title of the default element.
styleOptional style classname.  Default is mxToolbarCombo.
+ +

addOption

mxToolbar.prototype.addOption = function(combo,
title,
value)

Adds and returns a new OPTION element inside the given SELECT element.  If the given value is a function then it is stored in the option’s funct field.

Parameters

comboSELECT element that will contain the new entry.
titleString that specifies the title of the option.
valueSpecifies the value associated with this option.
+ +

addSwitchMode

mxToolbar.prototype.addSwitchMode = function(title,
icon,
funct,
pressedIcon,
style)

Adds a new selectable item to the toolbar.  Only one switch mode item may be selected at a time.  The currently selected item is the default item after a reset of the toolbar.

+ +

addMode

mxToolbar.prototype.addMode = function(title,
icon,
funct,
pressedIcon,
style,
toggle)

Adds a new item to the toolbar.  The selection is typically reset after the item has been consumed, for example by adding a new vertex to the graph.  The reset is not carried out if the item is double clicked.

The function argument uses the following signature: funct(evt, cell) where evt is the native mouse event and cell is the cell under the mouse.

+ +

selectMode

mxToolbar.prototype.selectMode = function(domNode,
funct)

Resets the state of the previously selected mode and displays the given DOM node as selected.  This function fires a select event with the given function as a parameter.

+ +

resetMode

mxToolbar.prototype.resetMode = function(forced)

Selects the default mode and resets the state of the previously selected mode.

+ +

addSeparator

mxToolbar.prototype.addSeparator = function(icon)

Adds the specifies image as a separator.

Parameters

iconURL of the separator icon.
+ +

addBreak

mxToolbar.prototype.addBreak = function()

Adds a break to the container.

+ +

addLine

mxToolbar.prototype.addLine = function()

Adds a horizontal line to the container.

+ +

destroy

mxToolbar.prototype.destroy = function ()

Removes the toolbar and all its associated resources.

+ +
+ + + + + + + + + + +
function mxToolbar(container)
Constructs a toolbar in the specified container.
mxToolbar.prototype.container
Reference to the DOM nodes that contains the toolbar.
mxToolbar.prototype.enabled
Specifies if events are handled.
mxToolbar.prototype.noReset
Specifies if resetMode requires a forced flag of true for resetting the current mode in the toolbar.
mxToolbar.prototype.resetMode = function(forced)
Selects the default mode and resets the state of the previously selected mode.
mxToolbar.prototype.updateDefaultMode
Boolean indicating if the default mode should be the last selected switch mode or the first inserted switch mode.
mxToolbar.prototype.addItem = function(title,
icon,
funct,
pressedIcon,
style,
factoryMethod)
Adds the given function as an image with the specified title and icon and returns the new image node.
mxToolbar.prototype.addCombo = function(style)
Adds and returns a new SELECT element using the given style.
mxToolbar.prototype.addOption = function(combo,
title,
value)
Adds and returns a new OPTION element inside the given SELECT element.
mxToolbar.prototype.addSwitchMode = function(title,
icon,
funct,
pressedIcon,
style)
Adds a new selectable item to the toolbar.
mxToolbar.prototype.addMode = function(title,
icon,
funct,
pressedIcon,
style,
toggle)
Adds a new item to the toolbar.
mxToolbar.prototype.selectMode = function(domNode,
funct)
Resets the state of the previously selected mode and displays the given DOM node as selected.
mxToolbar.prototype.addSeparator = function(icon)
Adds the specifies image as a separator.
mxToolbar.prototype.addBreak = function()
Adds a break to the container.
mxToolbar.prototype.addLine = function()
Adds a horizontal line to the container.
mxToolbar.prototype.destroy = function ()
Removes the toolbar and all its associated resources.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxUndoManager-js.html b/docs/js-api/files/util/mxUndoManager-js.html new file mode 100644 index 000000000..1030d162c --- /dev/null +++ b/docs/js-api/files/util/mxUndoManager-js.html @@ -0,0 +1,85 @@ + + +mxUndoManager + + + + + + + + + +

mxUndoManager

Implements a command history.  When changing the graph model, an <mxUndoableChange> object is created at the start of the transaction (when model.beginUpdate is called).  All atomic changes are then added to this object until the last model.endUpdate call, at which point the mxUndoableEdit is dispatched in an event, and added to the history inside mxUndoManager.  This is done by an event listener in mxEditor.installUndoHandler.

Each atomic change of the model is represented by an object (eg.  mxRootChange, mxChildChange, mxTerminalChange etc) which contains the complete undo information.  The mxUndoManager also listens to the mxGraphView and stores it’s changes to the current root as insignificant undoable changes, so that drilling (step into, step up) is undone.

This means when you execute an atomic change on the model, then change the current root on the view and click undo, the change of the root will be undone together with the change of the model so that the display represents the state at which the model was changed.  However, these changes are not transmitted for sharing as they do not represent a state change.

Example

When adding an undo manager to a graph, make sure to add it to the model and the view as well to maintain a consistent display across multiple undo/redo steps.

var undoManager = new mxUndoManager();
+var listener = function(sender, evt)
+{
+  undoManager.undoableEditHappened(evt.getProperty('edit'));
+};
+graph.getModel().addListener(mxEvent.UNDO, listener);
+graph.getView().addListener(mxEvent.UNDO, listener);

The code creates a function that informs the undoManager of an undoable edit and binds it to the undo event of mxGraphModel and mxGraphView using mxEventSource.addListener.

Summary
mxUndoManagerImplements a command history.
Events
mxEvent.CLEARFires after clear was invoked.
mxEvent.UNDOFires afer a significant edit was undone in undo.
mxEvent.REDOFires afer a significant edit was redone in redo.
mxEvent.ADDFires after an undoable edit was added to the history.
Functions
mxUndoManagerConstructs a new undo manager with the given history size.
Variables
sizeMaximum command history size.
historyArray that contains the steps of the command history.
indexOfNextAddIndex of the element to be added next.
Functions
isEmptyReturns true if the history is empty.
clearClears the command history.
canUndoReturns true if an undo is possible.
undoUndoes the last change.
canRedoReturns true if a redo is possible.
redoRedoes the last change.
undoableEditHappenedMethod to be called to add new undoable edits to the history.
trimRemoves all pending steps after indexOfNextAdd from the history, invoking die on each edit.
+ +

Events

+ +

mxEvent.CLEAR

Fires after clear was invoked.  This event has no properties.

+ +

mxEvent.UNDO

Fires afer a significant edit was undone in undo.  The <code>edit</code> property contains the mxUndoableEdit that was undone.

+ +

mxEvent.REDO

Fires afer a significant edit was redone in redo.  The <code>edit</code> property contains the mxUndoableEdit that was redone.

+ +

mxEvent.ADD

Fires after an undoable edit was added to the history.  The <code>edit</code> property contains the mxUndoableEdit that was added.

+ +

Functions

+ +

mxUndoManager

function mxUndoManager(size)

Constructs a new undo manager with the given history size.  If no history size is given, then a default size of 100 steps is used.

+ +

Variables

+ +

size

mxUndoManager.prototype.size

Maximum command history size.  0 means unlimited history.  Default is 100.

+ +

history

mxUndoManager.prototype.history

Array that contains the steps of the command history.

+ +

indexOfNextAdd

mxUndoManager.prototype.indexOfNextAdd

Index of the element to be added next.

+ +

Functions

+ +

isEmpty

mxUndoManager.prototype.isEmpty = function()

Returns true if the history is empty.

+ +

clear

mxUndoManager.prototype.clear = function()

Clears the command history.

+ +

canUndo

mxUndoManager.prototype.canUndo = function()

Returns true if an undo is possible.

+ +

undo

mxUndoManager.prototype.undo = function()

Undoes the last change.

+ +

canRedo

mxUndoManager.prototype.canRedo = function()

Returns true if a redo is possible.

+ +

redo

mxUndoManager.prototype.redo = function()

Redoes the last change.

+ +

undoableEditHappened

mxUndoManager.prototype.undoableEditHappened = function(undoableEdit)

Method to be called to add new undoable edits to the history.

+ +

trim

mxUndoManager.prototype.trim = function()

Removes all pending steps after indexOfNextAdd from the history, invoking die on each edit.  This is called from undoableEditHappened.

+ +
+ + + + + + + + + + +
mxUndoManager.prototype.clear = function()
Clears the command history.
mxUndoManager.prototype.undo = function()
Undoes the last change.
mxUndoManager.prototype.redo = function()
Redoes the last change.
function mxUndoManager(size)
Constructs a new undo manager with the given history size.
mxUndoManager.prototype.size
Maximum command history size.
mxUndoManager.prototype.history
Array that contains the steps of the command history.
mxUndoManager.prototype.indexOfNextAdd
Index of the element to be added next.
mxUndoManager.prototype.isEmpty = function()
Returns true if the history is empty.
mxUndoManager.prototype.canUndo = function()
Returns true if an undo is possible.
mxUndoManager.prototype.canRedo = function()
Returns true if a redo is possible.
mxUndoManager.prototype.undoableEditHappened = function(undoableEdit)
Method to be called to add new undoable edits to the history.
mxUndoManager.prototype.trim = function()
Removes all pending steps after indexOfNextAdd from the history, invoking die on each edit.
Implements a composite undoable edit.
mxEditor.prototype.installUndoHandler = function (graph)
Adds the undoManager to the graph model and the view.
Action to change the root in a model.
Action to add or remove a child in a model.
Action to change a terminal in a model.
Extends mxEventSource to implement a view for a graph.
Extends mxEventSource to implement a graph model.
mxEventSource.prototype.addListener = function(name,
funct)
Binds the specified function to the given event name.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxUndoableEdit-js.html b/docs/js-api/files/util/mxUndoableEdit-js.html new file mode 100644 index 000000000..0c62c8077 --- /dev/null +++ b/docs/js-api/files/util/mxUndoableEdit-js.html @@ -0,0 +1,71 @@ + + +mxUndoableEdit + + + + + + + + + +

mxUndoableEdit

Implements a composite undoable edit.

Summary
mxUndoableEditImplements a composite undoable edit.
Functions
mxUndoableEditConstructs a new undoable edit for the given source.
Variables
sourceSpecifies the source of the edit.
changesArray that contains the changes that make up this edit.
significantSpecifies if the undoable change is significant.
undoneSpecifies if this edit has been undone.
redoneSpecifies if this edit has been redone.
Functions
isEmptyReturns true if the this edit contains no changes.
isSignificantReturns significant.
addAdds the specified change to this edit.
notifyHook to notify any listeners of the changes after an undo or redo has been carried out.
dieHook to free resources after the edit has been removed from the command history.
undoUndoes all changes in this edit.
redoRedoes all changes in this edit.
+ +

Functions

+ +

mxUndoableEdit

function mxUndoableEdit(source,
significant)

Constructs a new undoable edit for the given source.

+ +

Variables

+ +

source

mxUndoableEdit.prototype.source

Specifies the source of the edit.

+ +

changes

mxUndoableEdit.prototype.changes

Array that contains the changes that make up this edit.  The changes are expected to either have an undo and redo function, or an execute function.  Default is an empty array.

+ +

significant

mxUndoableEdit.prototype.significant

Specifies if the undoable change is significant.  Default is true.

+ +

undone

mxUndoableEdit.prototype.undone

Specifies if this edit has been undone.  Default is false.

+ +

redone

mxUndoableEdit.prototype.redone

Specifies if this edit has been redone.  Default is false.

+ +

Functions

+ +

isEmpty

mxUndoableEdit.prototype.isEmpty = function()

Returns true if the this edit contains no changes.

+ +

isSignificant

mxUndoableEdit.prototype.isSignificant = function()

Returns significant.

+ +

add

mxUndoableEdit.prototype.add = function(change)

Adds the specified change to this edit.  The change is an object that is expected to either have an undo and redo, or an execute function.

+ +

notify

mxUndoableEdit.prototype.notify = function()

Hook to notify any listeners of the changes after an undo or redo has been carried out.  This implementation is empty.

+ +

die

mxUndoableEdit.prototype.die = function()

Hook to free resources after the edit has been removed from the command history.  This implementation is empty.

+ +

undo

mxUndoableEdit.prototype.undo = function()

Undoes all changes in this edit.

+ +

redo

mxUndoableEdit.prototype.redo = function()

Redoes all changes in this edit.

+ +
+ + + + + + + + + + +
function mxUndoableEdit(source,
significant)
Constructs a new undoable edit for the given source.
mxUndoableEdit.prototype.source
Specifies the source of the edit.
mxUndoableEdit.prototype.changes
Array that contains the changes that make up this edit.
mxUndoableEdit.prototype.significant
Specifies if the undoable change is significant.
mxUndoableEdit.prototype.undone
Specifies if this edit has been undone.
mxUndoableEdit.prototype.redone
Specifies if this edit has been redone.
mxUndoableEdit.prototype.isEmpty = function()
Returns true if the this edit contains no changes.
mxUndoableEdit.prototype.isSignificant = function()
Returns significant.
mxUndoableEdit.prototype.add = function(change)
Adds the specified change to this edit.
mxUndoableEdit.prototype.notify = function()
Hook to notify any listeners of the changes after an undo or redo has been carried out.
mxUndoableEdit.prototype.undo = function()
Undoes all changes in this edit.
mxUndoableEdit.prototype.redo = function()
Redoes all changes in this edit.
mxUndoableEdit.prototype.die = function()
Hook to free resources after the edit has been removed from the command history.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxUrlConverter-js.html b/docs/js-api/files/util/mxUrlConverter-js.html new file mode 100644 index 000000000..a4c276349 --- /dev/null +++ b/docs/js-api/files/util/mxUrlConverter-js.html @@ -0,0 +1,57 @@ + + +mxUrlConverter + + + + + + + + + +

mxUrlConverter

Converts relative to absolute URLs.

Summary
mxUrlConverterConverts relative to absolute URLs.
Variables
enabledSpecifies if the converter is enabled.
baseUrlSpecifies the base URL to be used as a prefix for relative URLs.
Functions
isEnabledReturns enabled.
setEnabledSets enabled.
getBaseUrlReturns baseUrl.
setBaseUrlSets baseUrl.
convertConverts the given URL to an absolute URL.
+ +

Variables

+ +

enabled

var enabled

Specifies if the converter is enabled.  Default is true.

+ +

baseUrl

var baseUrl

Specifies the base URL to be used as a prefix for relative URLs.

+ +

Functions

+ +

isEnabled

isEnabled: function()

Returns enabled.

+ +

setEnabled

setEnabled: function(value)

Sets enabled.

+ +

getBaseUrl

getBaseUrl: function()

Returns baseUrl.

+ +

setBaseUrl

setBaseUrl: function(value)

Sets baseUrl.

+ +

convert

convert: function(url)

Converts the given URL to an absolute URL.

+ +
+ + + + + + + + + + +
var enabled
Specifies if the converter is enabled.
var baseUrl
Specifies the base URL to be used as a prefix for relative URLs.
isEnabled: function()
Returns enabled.
setEnabled: function(value)
Sets enabled.
getBaseUrl: function()
Returns baseUrl.
setBaseUrl: function(value)
Sets baseUrl.
convert: function(url)
Converts the given URL to an absolute URL.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxUtils-js.html b/docs/js-api/files/util/mxUtils-js.html new file mode 100644 index 000000000..83bf1aa2a --- /dev/null +++ b/docs/js-api/files/util/mxUtils-js.html @@ -0,0 +1,320 @@ + + +mxUtils + + + + + + + + + +

mxUtils

A singleton class that provides cross-browser helper methods.  This is a global functionality.  To access the functions in this class, use the global classname appended by the functionname.  You may have to load chrome://global/content/contentAreaUtils.js to disable certain security restrictions in Mozilla for the open, save, saveAs and copy function.

For example, the following code displays an error message

mxUtils.error('Browser is not supported!', 200, false);
Summary
mxUtilsA singleton class that provides cross-browser helper methods.
Variables
errorResourceSpecifies the resource key for the title of the error window.
closeResourceSpecifies the resource key for the label of the close button.
errorImageDefines the image used for error dialogs.
Functions
removeCursorsRemoves the cursors from the style of the given DOM node and its descendants.
repaintGraphNormally not required, this contains the code to workaround a repaint issue and force a repaint of the graph container in AppleWebKit.
getCurrentStyleReturns the current style of the specified element.
hasScrollbarsReturns true if the overflow CSS property of the given node is either scroll or auto.
bindReturns a wrapper function that locks the execution scope of the given function to the specified scope.
evalEvaluates the given expression using eval and returns the JavaScript object that represents the expression result.
findNodeReturns the first node where attr equals value.
findNodeByAttributeReturns the first node where the given attribute matches the given value.
getFunctionNameReturns the name for the given function.
indexOfReturns the index of obj in array or -1 if the array does not contains the given object.
removeRemoves all occurrences of the given object in the given array or object.
isNodeReturns true if the given value is an XML node with the node name and if the optional attribute has the specified value.
getChildNodesReturns an array of child nodes that are of the given node type.
createXmlDocumentReturns a new, empty XML document.
parseXmlParses the specified XML string into a new XML document and returns the new document.
clearSelectionClears the current selection in the page.
getPrettyXMLReturns a pretty printed string that represents the XML tree for the given node.
removeWhitespaceRemoves the sibling text nodes for the given node that only consists of tabs, newlines and spaces.
htmlEntitiesReplaces characters (less than, greater than, newlines and quotes) with their HTML entities in the given string and returns the result.
isVmlReturns true if the given node is in the VML namespace.
getXmlReturns the XML content of the specified node.
getTextContentReturns the text content of the specified node.
getInnerHtmlReturns the inner HTML for the given node as a string or an empty string if no node was specified.
getOuterHtmlReturns the outer HTML for the given node as a string or an empty string if no node was specified.
writeCreates a text node for the given string and appends it to the given parent.
writelnCreates a text node for the given string and appends it to the given parent with an additional linefeed.
brAppends a linebreak to the given parent and returns the linebreak.
buttonReturns a new button with the given level and function as an onclick event handler.
paraAppends a new paragraph with the given text to the specified parent and returns the paragraph.
linkActionAdds a hyperlink to the specified parent that invokes action on the specified editor.
linkInvokeAdds a hyperlink to the specified parent that invokes the specified function on the editor passing along the specified argument.
linkAdds a hyperlink to the specified parent and invokes the given function when the link is clicked.
fitMakes sure the given node is inside the visible area of the window.
openOpens the specified file from the local filesystem and returns the contents of the file as a string.
saveSaves the specified content in the given file on the local file system.
saveAsSaves the specified content by displaying a dialog to save the content as a file on the local filesystem.
copyCopies the specified content to the local clipboard.
loadLoads the specified URL synchronously and returns the mxXmlRequest.
getLoads the specified URL asynchronously and invokes the given functions depending on the request status.
postPosts the specified params to the given URL asynchronously and invokes the given functions depending on the request status.
submitSubmits the given parameters to the specified URL using mxXmlRequest.simulate and returns the mxXmlRequest.
loadIntoLoads the specified URL asynchronously into the specified document, invoking onload after the document has been loaded.
getValueReturns the value for the given key in the given associative array or the given default value if the value is null.
getNumberReturns the numeric value for the given key in the given associative array or the given default value (or 0) if the value is null.
getColorReturns the color value for the given key in the given associative array or the given default value if the value is null.
cloneRecursively clones the specified object ignoring all fieldnames in the given array of transient fields.
equalPointsCompares all mxPoints in the given lists.
equalEntriesCompares all entries in the given dictionaries.
extendAssigns a copy of the superclass prototype to the subclass prototype.
toStringReturns a textual representation of the specified object.
toRadiansConverts the given degree to radians.
arcToCurvesConverts the given arc to a series of curves.
getBoundingBoxReturns the bounding box for the rotated rectangle.
getRotatedPointRotates the given point by the given cos and sin.
reversePortConstraintsReverse the port constraint bitmask.
findNearestSegmentFinds the index of the nearest segment on the given cell state for the specified coordinate pair.
rectangleIntersectsSegmentReturns true if the given rectangle intersects the given segment.
containsReturns true if the specified point (x, y) is contained in the given rectangle.
intersectsReturns true if the two rectangles intersect.
intersectsReturns true if the two rectangles intersect.
getOffsetReturns the offset for the specified container as an mxPoint.
getScrollOriginReturns the top, left corner of the viewrect as an mxPoint.
convertPointConverts the specified point (x, y) using the offset of the specified container and returns a new mxPoint with the result.
ltrimStrips all whitespaces from the beginning of the string.
rtrimStrips all whitespaces from the end of the string.
trimStrips all whitespaces from both end of the string.
isNumericReturns true if the specified value is numeric, that is, if it is not null, not an empty string, not a HEX number and isNaN returns false.
modReturns the remainder of division of n by m.
intersectionReturns the intersection of two lines as an mxPoint.
ptSeqDistSqReturns the square distance between a segment and a point.
relativeCcwReturns 1 if the given point on the right side of the segment, 0 if its on the segment, and -1 if the point is on the left side of the segment.
animateChangesSee mxEffects.animateChanges.
cascadeOpacitySee mxEffects.cascadeOpacity.
fadeOutSee mxEffects.fadeOut.
setOpacitySets the opacity of the specified DOM node to the given value in %.
createImageCreates and returns an image (IMG node) or VML image (v:image) in IE6 in quirs mode.
sortCellsSorts the given cells according to the order in the cell hierarchy.
getStylenameReturns the stylename in a style of the form [(stylename|key=value);] or an empty string if the given style does not contain a stylename.
getStylenamesReturns the stylenames in a style of the form [(stylename|key=value);] or an empty array if the given style does not contain any stylenames.
indexOfStylenameReturns the index of the given stylename in the given style.
addStylenameAdds the specified stylename to the given style if it does not already contain the stylename.
removeStylenameRemoves all occurrences of the specified stylename in the given style and returns the updated style.
removeAllStylenamesRemoves all stylenames from the given style and returns the updated style.
setCellStylesAssigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.
setStyleAdds or removes the given key, value pair to the style and returns the new style.
setCellStyleFlagsSets or toggles the flag bit for the given key in the cell’s styles.
setStyleFlagSets or removes the given key from the specified style and returns the new style.
getSizeForStringReturns an mxRectangle with the size (width and height in pixels) of the given string.
getViewXml
getScaleForPageCountReturns the scale to be used for printing the graph with the given bounds across the specifies number of pages with the given format.
showCopies the styles and the markup from the graph’s container into the given document and removes all cursor styles.
printScreenPrints the specified graph using a new window and the built-in print dialog.
popupShows the specified text content in a new mxWindow or a new browser window if isInternalWindow is false.
alertDisplayss the given alert in a new dialog.
promptDisplays the given message in a prompt dialog.
confirmDisplays the given message in a confirm dialog.
errorDisplays the given error message in a new mxWindow of the given width.
makeDraggableConfigures the given DOM element to act as a drag source for the specified graph.
+ +

Variables

+ +

errorResource

Specifies the resource key for the title of the error window.  If the resource for this key does not exist then the value is used as the title.  Default is ‘error’.

+ +

closeResource

Specifies the resource key for the label of the close button.  If the resource for this key does not exist then the value is used as the label.  Default is ‘close’.

+ +

errorImage

Defines the image used for error dialogs.

+ +

Functions

+ +

removeCursors

removeCursors: function(element)

Removes the cursors from the style of the given DOM node and its descendants.

Parameters

elementDOM node to remove the cursor style from.
+ +

repaintGraph

repaintGraph: function(graph,
pt)

Normally not required, this contains the code to workaround a repaint issue and force a repaint of the graph container in AppleWebKit.

Parameters

graphmxGraph to be repainted.
ptmxPoint where the dummy element should be placed.
+ +

getCurrentStyle

getCurrentStyle: function()

Returns the current style of the specified element.

Parameters

elementDOM node whose current style should be returned.
+ +

hasScrollbars

hasScrollbars: function(node)

Returns true if the overflow CSS property of the given node is either scroll or auto.

Parameters

nodeDOM node whose style should be checked for scrollbars.
+ +

bind

bind: function(scope,
funct)

Returns a wrapper function that locks the execution scope of the given function to the specified scope.  Inside funct, the “this” keyword becomes a reference to that scope.

+ +

eval

eval: function(expr)

Evaluates the given expression using eval and returns the JavaScript object that represents the expression result.  Supports evaluation of expressions that define functions and returns the function object for these expressions.

Parameters

exprA string that represents a JavaScript expression.
+ +

findNode

findNode: function(node,
attr,
value)

Returns the first node where attr equals value.  This implementation does not use XPath.

+ +

findNodeByAttribute

findNodeByAttribute: function()

Returns the first node where the given attribute matches the given value.

Parameters

nodeRoot node where the search should start.
attrName of the attribute to be checked.
valueValue of the attribute to match.
+ +

getFunctionName

getFunctionName: function(f)

Returns the name for the given function.

Parameters

fJavaScript object that represents a function.
+ +

indexOf

indexOf: function(array,
obj)

Returns the index of obj in array or -1 if the array does not contains the given object.

Parameters

arrayArray to check for the given obj.
objObject to find in the given array.
+ +

remove

remove: function(obj,
array)

Removes all occurrences of the given object in the given array or object.  If there are multiple occurrences of the object, be they associative or as an array entry, all occurrences are removed from the array or deleted from the object.  By removing the object from the array, all elements following the removed element are shifted by one step towards the beginning of the array.

The length of arrays is not modified inside this function.

Parameters

objObject to find in the given array.
arrayArray to check for the given obj.
+ +

isNode

isNode: function(value,
nodeName,
attributeName,
attributeValue)

Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.

This implementation assumes that the given value is a DOM node if the nodeType property is numeric, that is, if isNaN returns false for value.nodeType.

Parameters

valueObject that should be examined as a node.
nodeNameString that specifies the node name.
attributeNameOptional attribute name to check.
attributeValueOptional attribute value to check.
+ +

getChildNodes

getChildNodes: function(node,
nodeType)

Returns an array of child nodes that are of the given node type.

Parameters

nodeParent DOM node to return the children from.
nodeTypeOptional node type to return.  Default is mxConstants.NODETYPE_ELEMENT.
+ +

createXmlDocument

createXmlDocument: function()

Returns a new, empty XML document.

+ +

parseXml

parseXml: function()

Parses the specified XML string into a new XML document and returns the new document.

Example

var doc = mxUtils.parseXml(
+  '<mxGraphModel><root><MyDiagram id="0"><mxCell/></MyDiagram>'+
+  '<MyLayer id="1"><mxCell parent="0" /></MyLayer><MyObject id="2">'+
+  '<mxCell style="strokeColor=blue;fillColor=red" parent="1" vertex="1">'+
+  '<mxGeometry x="10" y="10" width="80" height="30" as="geometry"/>'+
+  '</mxCell></MyObject></root></mxGraphModel>');

Parameters

xmlString that contains the XML data.
+ +

clearSelection

clearSelection: function()

Clears the current selection in the page.

+ +

getPrettyXML

Returns a pretty printed string that represents the XML tree for the given node.  This method should only be used to print XML for reading, use getXml instead to obtain a string for processing.

Parameters

nodeDOM node to return the XML for.
tabOptional string that specifies the indentation for one level.  Default is two spaces.
indentOptional string that represents the current indentation.  Default is an empty string.
+ +

removeWhitespace

removeWhitespace: function(node,
before)

Removes the sibling text nodes for the given node that only consists of tabs, newlines and spaces.

Parameters

nodeDOM node whose siblings should be removed.
beforeOptional boolean that specifies the direction of the traversal.
+ +

htmlEntities

htmlEntities: function(s,
newline)

Replaces characters (less than, greater than, newlines and quotes) with their HTML entities in the given string and returns the result.

Parameters

sString that contains the characters to be converted.
newlineIf newlines should be replaced.  Default is true.
+ +

isVml

isVml: function(node)

Returns true if the given node is in the VML namespace.

Parameters

nodeDOM node whose tag urn should be checked.
+ +

getXml

getXml: function(node,
linefeed)

Returns the XML content of the specified node.  For Internet Explorer, all \r\n\t[\t]* are removed from the XML string and the remaining \r\n are replaced by \n.  All \n are then replaced with linefeed, or &#xa; if no linefeed is defined.

Parameters

nodeDOM node to return the XML for.
linefeedOptional string that linefeeds are converted into.  Default is &#xa;
+ +

getTextContent

getTextContent: function(node)

Returns the text content of the specified node.

Parameters

nodeDOM node to return the text content for.
+ +

getInnerHtml

getInnerHtml: function()

Returns the inner HTML for the given node as a string or an empty string if no node was specified.  The inner HTML is the text representing all children of the node, but not the node itself.

Parameters

nodeDOM node to return the inner HTML for.
+ +

getOuterHtml

getOuterHtml: function()

Returns the outer HTML for the given node as a string or an empty string if no node was specified.  The outer HTML is the text representing all children of the node including the node itself.

Parameters

nodeDOM node to return the outer HTML for.
+ +

write

write: function(parent,
text)

Creates a text node for the given string and appends it to the given parent.  Returns the text node.

Parameters

parentDOM node to append the text node to.
textString representing the text to be added.
+ +

writeln

writeln: function(parent,
text)

Creates a text node for the given string and appends it to the given parent with an additional linefeed.  Returns the text node.

Parameters

parentDOM node to append the text node to.
textString representing the text to be added.
+ +

br

br: function(parent,
count)

Appends a linebreak to the given parent and returns the linebreak.

Parameters

parentDOM node to append the linebreak to.
+ +

button

button: function(label,
funct,
doc)

Returns a new button with the given level and function as an onclick event handler.

document.body.appendChild(mxUtils.button('Test', function(evt)
+{
+  alert('Hello, World!');
+}));

Parameters

labelString that represents the label of the button.
functFunction to be called if the button is pressed.
docOptional document to be used for creating the button.  Default is the current document.
+ +

para

para: function(parent,
text)

Appends a new paragraph with the given text to the specified parent and returns the paragraph.

Parameters

parentDOM node to append the text node to.
textString representing the text for the new paragraph.
+ +

linkAction

linkAction: function(parent,
text,
editor,
action,
pad)

Adds a hyperlink to the specified parent that invokes action on the specified editor.

Parameters

parentDOM node to contain the new link.
textString that is used as the link label.
editormxEditor that will execute the action.
actionString that defines the name of the action to be executed.
padOptional left-padding for the link.  Default is 0.
+ +

linkInvoke

linkInvoke: function(parent,
text,
editor,
functName,
arg,
pad)

Adds a hyperlink to the specified parent that invokes the specified function on the editor passing along the specified argument.  The function name is the name of a function of the editor instance, not an action name.

Parameters

parentDOM node to contain the new link.
textString that is used as the link label.
editormxEditor instance to execute the function on.
functNameString that represents the name of the function.
argObject that represents the argument to the function.
padOptional left-padding for the link.  Default is 0.
+ +

link

link: function(parent,
text,
funct,
pad)

Adds a hyperlink to the specified parent and invokes the given function when the link is clicked.

Parameters

parentDOM node to contain the new link.
textString that is used as the link label.
functFunction to execute when the link is clicked.
padOptional left-padding for the link.  Default is 0.
+ +

fit

fit: function(node)

Makes sure the given node is inside the visible area of the window.  This is done by setting the left and top in the style.

+ +

open

open: function(filename)

Opens the specified file from the local filesystem and returns the contents of the file as a string.  This implementation requires an ActiveX object in IE and special privileges in Firefox.  Relative filenames are only supported in IE and will go onto the users’ Desktop.  You may have to load chrome://global/content/contentAreaUtils.js to disable certain security restrictions in Mozilla for this to work.

See known-issues before using this function.

Example

var data = mxUtils.open('C:\\temp\\test.txt');
+mxUtils.alert('Data: '+data);

Parameters

filenameString representing the local file name.
+ +

save

save: function(filename,
content)

Saves the specified content in the given file on the local file system.  This implementation requires an ActiveX object in IE and special privileges in Firefox.  Relative filenames are only supported in IE and will be loaded from the users’ Desktop.  You may have to load chrome://global/content/contentAreaUtils.js to disable certain security restrictions in Mozilla for this to work.

See known-issues before using this function.

Example

var data = 'Hello, World!';
+mxUtils.save('C:\\test.txt', data);

Parameters

filenameString representing the local file name.
+ +

saveAs

saveAs: function(content)

Saves the specified content by displaying a dialog to save the content as a file on the local filesystem.  This implementation does not use an ActiveX object in IE, however, it does require special privileges in Firefox.  You may have to load chrome://global/content/contentAreaUtils.js to disable certain security restrictions in Mozilla for this to work.

See known-issues before using this function.  It is not recommended using this function in production environment as access to the filesystem cannot be guaranteed in Firefox.  The following code is used in Firefox to try and enable saving to the filesystem.

netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

Example

mxUtils.saveAs('Hello, World!');

Parameters

contentString representing the file’s content.
+ +

copy

copy: function(content)

Copies the specified content to the local clipboard.  This implementation requires special privileges in Firefox.  You may have to load chrome://global/content/contentAreaUtils.js to disable certain security restrictions in Mozilla for this to work.

Parameters

contentString to be copied to the clipboard.
+ +

load

load: function(url)

Loads the specified URL synchronously and returns the mxXmlRequest.  Throws an exception if the file cannot be loaded.  See mxUtils.get for an asynchronous implementation.

Example

try
+{
+  var req = mxUtils.load(filename);
+  var root = req.getDocumentElement();
+  // Process XML DOM...
+}
+catch (ex)
+{
+  mxUtils.alert('Cannot load '+filename+': '+ex);
+}

Parameters

urlURL to get the data from.
+ +

get

get: function(url,
onload,
onerror)

Loads the specified URL asynchronously and invokes the given functions depending on the request status.  Returns the mxXmlRequest in use.  Both functions take the mxXmlRequest as the only parameter.  See mxUtils.load for a synchronous implementation.

Example

mxUtils.get(url, function(req)
+{
+   var node = req.getDocumentElement();
+   // Process XML DOM...
+});

So for example, to load a diagram into an existing graph model, the following code is used.

mxUtils.get(url, function(req)
+{
+  var node = req.getDocumentElement();
+  var dec = new mxCodec(node.ownerDocument);
+  dec.decode(node, graph.getModel());
+});

Parameters

urlURL to get the data from.
onloadOptional function to execute for a successful response.
onerrorOptional function to execute on error.
+ +

post

post: function(url,
params,
onload,
onerror)

Posts the specified params to the given URL asynchronously and invokes the given functions depending on the request status.  Returns the mxXmlRequest in use.  Both functions take the mxXmlRequest as the only parameter.  Make sure to use encodeURIComponent for the parameter values.

Example

mxUtils.post(url, 'key=value', function(req)
+{
+ mxUtils.alert('Ready: '+req.isReady()+' Status: '+req.getStatus());
+ // Process req.getDocumentElement() using DOM API if OK...
+});

Parameters

urlURL to get the data from.
paramsParameters for the post request.
onloadOptional function to execute for a successful response.
onerrorOptional function to execute on error.
+ +

submit

submit: function(url,
params,
doc,
target)

Submits the given parameters to the specified URL using mxXmlRequest.simulate and returns the mxXmlRequest.  Make sure to use encodeURIComponent for the parameter values.

Parameters

urlURL to get the data from.
paramsParameters for the form.
docDocument to create the form in.
targetTarget to send the form result to.
+ +

loadInto

loadInto: function(url,
doc,
onload)

Loads the specified URL asynchronously into the specified document, invoking onload after the document has been loaded.  This implementation does not use mxXmlRequest, but the document.load method.

Parameters

urlURL to get the data from.
docThe document to load the URL into.
onloadFunction to execute when the URL has been loaded.
+ +

getValue

getValue: function(array,
key,
defaultValue)

Returns the value for the given key in the given associative array or the given default value if the value is null.

Parameters

arrayAssociative array that contains the value for the key.
keyKey whose value should be returned.
defaultValueValue to be returned if the value for the given key is null.
+ +

getNumber

getNumber: function(array,
key,
defaultValue)

Returns the numeric value for the given key in the given associative array or the given default value (or 0) if the value is null.  The value is converted to a numeric value using the Number function.

Parameters

arrayAssociative array that contains the value for the key.
keyKey whose value should be returned.
defaultValueValue to be returned if the value for the given key is null.  Default is 0.
+ +

getColor

getColor: function(array,
key,
defaultValue)

Returns the color value for the given key in the given associative array or the given default value if the value is null.  If the value is mxConstants.NONE then null is returned.

Parameters

arrayAssociative array that contains the value for the key.
keyKey whose value should be returned.
defaultValueValue to be returned if the value for the given key is null.  Default is null.
+ +

clone

clone: function(obj,
transients,
shallow)

Recursively clones the specified object ignoring all fieldnames in the given array of transient fields.  mxObjectIdentity.FIELD_NAME is always ignored by this function.

Parameters

objObject to be cloned.
transientsOptional array of strings representing the fieldname to be ignored.
shallowOptional boolean argument to specify if a shallow clone should be created, that is, one where all object references are not cloned or, in other words, one where only atomic (strings, numbers) values are cloned.  Default is false.
+ +

equalPoints

equalPoints: function(a,
b)

Compares all mxPoints in the given lists.

Parameters

aArray of mxPoints to be compared.
bArray of mxPoints to be compared.
+ +

equalEntries

equalEntries: function(a,
b)

Compares all entries in the given dictionaries.

Parameters

amxRectangle to be compared.
bmxRectangle to be compared.
+ +

extend

extend: function(ctor,
superCtor)

Assigns a copy of the superclass prototype to the subclass prototype.  Note that this does not call the constructor of the superclass at this point, the superclass constructor should be called explicitely in the subclass constructor.  Below is an example.

MyGraph = function(container, model, renderHint, stylesheet)
+{
+  mxGraph.call(this, container, model, renderHint, stylesheet);
+}
+
+mxUtils.extend(MyGraph, mxGraph);

Parameters

ctorConstructor of the subclass.
superCtorConstructor of the superclass.
+ +

toString

toString: function(obj)

Returns a textual representation of the specified object.

Parameters

objObject to return the string representation for.
+ +

toRadians

toRadians: function(deg)

Converts the given degree to radians.

+ +

arcToCurves

arcToCurves: function(x0,
y0,
r1,
r2,
angle,
largeArcFlag,
sweepFlag,
x,
y)

Converts the given arc to a series of curves.

+ +

getBoundingBox

getBoundingBox: function(rect,
rotation)

Returns the bounding box for the rotated rectangle.

+ +

getRotatedPoint

getRotatedPoint: function(pt,
cos,
sin,
c)

Rotates the given point by the given cos and sin.

+ +

reversePortConstraints

reversePortConstraints: function(constraint)

Reverse the port constraint bitmask.  For example, north | east becomes south | west

+ +

findNearestSegment

findNearestSegment: function(state,
x,
y)

Finds the index of the nearest segment on the given cell state for the specified coordinate pair.

+ +

rectangleIntersectsSegment

rectangleIntersectsSegment: function(bounds,
p1,
p2)

Returns true if the given rectangle intersects the given segment.

Parameters

boundsmxRectangle that represents the rectangle.
p1mxPoint that represents the first point of the segment.
p2mxPoint that represents the second point of the segment.
+ +

contains

contains: function(bounds,
x,
y)

Returns true if the specified point (x, y) is contained in the given rectangle.

Parameters

boundsmxRectangle that represents the area.
xX-coordinate of the point.
yY-coordinate of the point.
+ +

intersects

intersects: function(a,
b)

Returns true if the two rectangles intersect.

Parameters

amxRectangle to be checked for intersection.
bmxRectangle to be checked for intersection.
+ +

intersects

intersectsHotspot: function(state,
x,
y,
hotspot,
min,
max)

Returns true if the two rectangles intersect.

Parameters

amxRectangle to be checked for intersection.
bmxRectangle to be checked for intersection.
+ +

getOffset

getOffset: function(container)

Returns the offset for the specified container as an mxPoint.  The offset is the distance from the top left corner of the container to the top left corner of the document.

Parameters

containerDOM node to return the offset for.
+ +

getScrollOrigin

getScrollOrigin: function(node)

Returns the top, left corner of the viewrect as an mxPoint.

+ +

convertPoint

convertPoint: function(container,
x,
y)

Converts the specified point (x, y) using the offset of the specified container and returns a new mxPoint with the result.

Parameters

containerDOM node to use for the offset.
xX-coordinate of the point to be converted.
yY-coordinate of the point to be converted.
+ +

ltrim

ltrim: function(str,
chars)

Strips all whitespaces from the beginning of the string.  Without the second parameter, Javascript function will trim these characters:

  • ” “ (ASCII 32 (0x20)), an ordinary space
  • ”\t” (ASCII 9 (0x09)), a tab
  • ”\n” (ASCII 10 (0x0A)), a new line (line feed)
  • ”\r” (ASCII 13 (0x0D)), a carriage return
  • ”\0” (ASCII 0 (0x00)), the NUL-byte
  • ”\x0B” (ASCII 11 (0x0B)), a vertical tab
+ +

rtrim

rtrim: function(str,
chars)

Strips all whitespaces from the end of the string.  Without the second parameter, Javascript function will trim these characters:

  • ” “ (ASCII 32 (0x20)), an ordinary space
  • ”\t” (ASCII 9 (0x09)), a tab
  • ”\n” (ASCII 10 (0x0A)), a new line (line feed)
  • ”\r” (ASCII 13 (0x0D)), a carriage return
  • ”\0” (ASCII 0 (0x00)), the NUL-byte
  • ”\x0B” (ASCII 11 (0x0B)), a vertical tab
+ +

trim

trim: function(str,
chars)

Strips all whitespaces from both end of the string.  Without the second parameter, Javascript function will trim these characters:

  • ” “ (ASCII 32 (0x20)), an ordinary space
  • ”\t” (ASCII 9 (0x09)), a tab
  • ”\n” (ASCII 10 (0x0A)), a new line (line feed)
  • ”\r” (ASCII 13 (0x0D)), a carriage return
  • ”\0” (ASCII 0 (0x00)), the NUL-byte
  • ”\x0B” (ASCII 11 (0x0B)), a vertical tab
+ +

isNumeric

isNumeric: function(str)

Returns true if the specified value is numeric, that is, if it is not null, not an empty string, not a HEX number and isNaN returns false.

Parameters

strString representing the possibly numeric value.
+ +

mod

mod: function(n,
m)

Returns the remainder of division of n by m.  You should use this instead of the built-in operation as the built-in operation does not properly handle negative numbers.

+ +

intersection

intersection: function (x0,
y0,
x1,
y1,
x2,
y2,
x3,
y3)

Returns the intersection of two lines as an mxPoint.

Parameters

x0X-coordinate of the first line’s startpoint.
y0X-coordinate of the first line’s startpoint.
x1X-coordinate of the first line’s endpoint.
y1Y-coordinate of the first line’s endpoint.
x2X-coordinate of the second line’s startpoint.
y2Y-coordinate of the second line’s startpoint.
x3X-coordinate of the second line’s endpoint.
y3Y-coordinate of the second line’s endpoint.
+ +

ptSeqDistSq

Returns the square distance between a segment and a point.

Parameters

x1X-coordinate of the startpoint of the segment.
y1Y-coordinate of the startpoint of the segment.
x2X-coordinate of the endpoint of the segment.
y2Y-coordinate of the endpoint of the segment.
pxX-coordinate of the point.
pyY-coordinate of the point.
+ +

relativeCcw

relativeCcw: function(x1,
y1,
x2,
y2,
px,
py)

Returns 1 if the given point on the right side of the segment, 0 if its on the segment, and -1 if the point is on the left side of the segment.

Parameters

x1X-coordinate of the startpoint of the segment.
y1Y-coordinate of the startpoint of the segment.
x2X-coordinate of the endpoint of the segment.
y2Y-coordinate of the endpoint of the segment.
pxX-coordinate of the point.
pyY-coordinate of the point.
+ +

animateChanges

animateChanges: function(graph,
changes)

See mxEffects.animateChanges.  This is for backwards compatibility and will be removed later.

+ +

cascadeOpacity

cascadeOpacity: function(graph,
cell,
opacity)

See mxEffects.cascadeOpacity.  This is for backwards compatibility and will be removed later.

+ +

fadeOut

fadeOut: function(node,
from,
remove,
step,
delay,
isEnabled)

See mxEffects.fadeOut.  This is for backwards compatibility and will be removed later.

+ +

setOpacity

setOpacity: function(node,
value)

Sets the opacity of the specified DOM node to the given value in %.

Parameters

nodeDOM node to set the opacity for.
valueOpacity in %.  Possible values are between 0 and 100.
+ +

createImage

createImage: function(src)

Creates and returns an image (IMG node) or VML image (v:image) in IE6 in quirs mode.

Parameters

srcURL that points to the image to be displayed.
+ +

sortCells

sortCells: function(cells,
ascending)

Sorts the given cells according to the order in the cell hierarchy.  Ascending is optional and defaults to true.

+ +

getStylename

getStylename: function(style)

Returns the stylename in a style of the form [(stylename|key=value);] or an empty string if the given style does not contain a stylename.

Parameters

styleString of the form [(stylename|key=value);].
+ +

getStylenames

getStylenames: function(style)

Returns the stylenames in a style of the form [(stylename|key=value);] or an empty array if the given style does not contain any stylenames.

Parameters

styleString of the form [(stylename|key=value);].
+ +

indexOfStylename

indexOfStylename: function(style,
stylename)

Returns the index of the given stylename in the given style.  This returns -1 if the given stylename does not occur (as a stylename) in the given style, otherwise it returns the index of the first character.

+ +

addStylename

addStylename: function(style,
stylename)

Adds the specified stylename to the given style if it does not already contain the stylename.

+ +

removeStylename

removeStylename: function(style,
stylename)

Removes all occurrences of the specified stylename in the given style and returns the updated style.  Trailing semicolons are not preserved.

+ +

removeAllStylenames

removeAllStylenames: function(style)

Removes all stylenames from the given style and returns the updated style.

+ +

setCellStyles

setCellStyles: function(model,
cells,
key,
value)

Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.

Parameters

modelmxGraphModel to execute the transaction in.
cellsArray of mxCells to be updated.
keyKey of the style to be changed.
valueNew value for the given key.
+ +

setStyle

setStyle: function(style,
key,
value)

Adds or removes the given key, value pair to the style and returns the new style.  If value is null or zero length then the key is removed from the style.  This is for cell styles, not for CSS styles.

Parameters

styleString of the form [(stylename|key=value);].
keyKey of the style to be changed.
valueNew value for the given key.
+ +

setCellStyleFlags

setCellStyleFlags: function(model,
cells,
key,
flag,
value)

Sets or toggles the flag bit for the given key in the cell’s styles.  If value is null then the flag is toggled.

Example

var cells = graph.getSelectionCells();
+mxUtils.setCellStyleFlags(graph.model,
+         cells,
+         mxConstants.STYLE_FONTSTYLE,
+         mxConstants.FONT_BOLD);

Toggles the bold font style.

Parameters

modelmxGraphModel that contains the cells.
cellsArray of mxCells to change the style for.
keyKey of the style to be changed.
flagInteger for the bit to be changed.
valueOptional boolean value for the flag.
+ +

setStyleFlag

setStyleFlag: function(style,
key,
flag,
value)

Sets or removes the given key from the specified style and returns the new style.  If value is null then the flag is toggled.

Parameters

styleString of the form [(stylename|key=value);].
keyKey of the style to be changed.
flagInteger for the bit to be changed.
valueOptional boolean value for the given flag.
+ +

getSizeForString

getSizeForString: function(text,
fontSize,
fontFamily)

Returns an mxRectangle with the size (width and height in pixels) of the given string.  The string may contain HTML markup.  Newlines should be converted to br before calling this method.

Example

var label = graph.getLabel(cell).replace(/\n/g, "<br>");
+var size = graph.getSizeForString(label);

Parameters

textString whose size should be returned.
fontSizeInteger that specifies the font size in pixels.  Default is mxConstants.DEFAULT_FONTSIZE.
fontFamilyString that specifies the name of the font family.  Default is mxConstants.DEFAULT_FONTFAMILY.
+ +

getViewXml

getViewXml: function(graph,
scale,
cells,
x0,
y0)
+ +

getScaleForPageCount

getScaleForPageCount: function(pageCount,
graph,
pageFormat,
border)

Returns the scale to be used for printing the graph with the given bounds across the specifies number of pages with the given format.  The scale is always computed such that it given the given amount or fewer pages in the print output.  See mxPrintPreview for an example.

Parameters

pageCountSpecifies the number of pages in the print output.
graphmxGraph that should be printed.
pageFormatOptional mxRectangle that specifies the page format.  Default is mxConstants.PAGE_FORMAT_A4_PORTRAIT.
borderThe border along each side of every page.
+ +

show

show: function(graph,
doc,
x0,
y0)

Copies the styles and the markup from the graph’s container into the given document and removes all cursor styles.  The document is returned.

This function should be called from within the document with the graph.  If you experience problems with missing stylesheets in IE then try adding the domain to the trusted sites.

Parameters

graphmxGraph to be copied.
docDocument where the new graph is created.
x0X-coordinate of the graph view origin.  Default is 0.
y0Y-coordinate of the graph view origin.  Default is 0.
+ +

printScreen

printScreen: function(graph)

Prints the specified graph using a new window and the built-in print dialog.

This function should be called from within the document with the graph.

Parameters

graphmxGraph to be printed.
+ +

popup

popup: function(content,
isInternalWindow)

Shows the specified text content in a new mxWindow or a new browser window if isInternalWindow is false.

Parameters

contentString that specifies the text to be displayed.
isInternalWindowOptional boolean indicating if an mxWindow should be used instead of a new browser window.  Default is false.
+ +

alert

alert: function(message)

Displayss the given alert in a new dialog.  This implementation uses the built-in alert function.  This is used to display validation errors when connections cannot be changed or created.

Parameters

messageString specifying the message to be displayed.
+ +

prompt

prompt: function(message,
defaultValue)

Displays the given message in a prompt dialog.  This implementation uses the built-in prompt function.

Parameters

messageString specifying the message to be displayed.
defaultValueOptional string specifying the default value.
+ +

confirm

confirm: function(message)

Displays the given message in a confirm dialog.  This implementation uses the built-in confirm function.

Parameters

messageString specifying the message to be displayed.
+ +

error

error: function(message,
width,
close,
icon)

Displays the given error message in a new mxWindow of the given width.  If close is true then an additional close button is added to the window.  The optional icon specifies the icon to be used for the window.  Default is mxUtils.errorImage.

Parameters

messageString specifying the message to be displayed.
widthInteger specifying the width of the window.
closeOptional boolean indicating whether to add a close button.
iconOptional icon for the window decoration.
+ +

makeDraggable

makeDraggable: function(element,
graphF,
funct,
dragElement,
dx,
dy,
autoscroll,
scalePreview,
highlightDropTargets,
getDropTarget)

Configures the given DOM element to act as a drag source for the specified graph.  Returns a a new mxDragSource.  If <mxDragSource.guideEnabled> is enabled then the x and y arguments must be used in funct to match the preview location.

Example

var funct = function(graph, evt, cell, x, y)
+{
+  if (graph.canImportCell(cell))
+  {
+    var parent = graph.getDefaultParent();
+    var vertex = null;
+
+    graph.getModel().beginUpdate();
+    try
+    {
+      vertex = graph.insertVertex(parent, null, 'Hello', x, y, 80, 30);
+    }
+    finally
+    {
+      graph.getModel().endUpdate();
+    }
+
+    graph.setSelectionCell(vertex);
+  }
+}
+
+var img = document.createElement('img');
+img.setAttribute('src', 'editors/images/rectangle.gif');
+img.style.position = 'absolute';
+img.style.left = '0px';
+img.style.top = '0px';
+img.style.width = '16px';
+img.style.height = '16px';
+
+var dragImage = img.cloneNode(true);
+dragImage.style.width = '32px';
+dragImage.style.height = '32px';
+mxUtils.makeDraggable(img, graph, funct, dragImage);
+document.body.appendChild(img);

Parameters

elementDOM element to make draggable.
graphFmxGraph that acts as the drop target or a function that takes a mouse event and returns the current mxGraph.
functFunction to execute on a successful drop.
dragElementOptional DOM node to be used for the drag preview.
dxOptional horizontal offset between the cursor and the drag preview.
dyOptional vertical offset between the cursor and the drag preview.
autoscrollOptional boolean that specifies if autoscroll should be used.  Default is mxGraph.autoscroll.
scalePreviewOptional boolean that specifies if the preview element should be scaled according to the graph scale.  If this is true, then the offsets will also be scaled.  Default is false.
highlightDropTargetsOptional boolean that specifies if dropTargets should be highlighted.  Default is true.
getDropTargetOptional function to return the drop target for a given location (x, y).  Default is mxGraph.getCellAt.
+ +
+ + + + + + + + + + +
removeCursors: function(element)
Removes the cursors from the style of the given DOM node and its descendants.
repaintGraph: function(graph,
pt)
Normally not required, this contains the code to workaround a repaint issue and force a repaint of the graph container in AppleWebKit.
getCurrentStyle: function()
Returns the current style of the specified element.
hasScrollbars: function(node)
Returns true if the overflow CSS property of the given node is either scroll or auto.
bind: function(scope,
funct)
Returns a wrapper function that locks the execution scope of the given function to the specified scope.
eval: function(expr)
Evaluates the given expression using eval and returns the JavaScript object that represents the expression result.
findNode: function(node,
attr,
value)
Returns the first node where attr equals value.
findNodeByAttribute: function()
Returns the first node where the given attribute matches the given value.
getFunctionName: function(f)
Returns the name for the given function.
indexOf: function(array,
obj)
Returns the index of obj in array or -1 if the array does not contains the given object.
remove: function(obj,
array)
Removes all occurrences of the given object in the given array or object.
isNode: function(value,
nodeName,
attributeName,
attributeValue)
Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.
getChildNodes: function(node,
nodeType)
Returns an array of child nodes that are of the given node type.
createXmlDocument: function()
Returns a new, empty XML document.
parseXml: function()
Parses the specified XML string into a new XML document and returns the new document.
clearSelection: function()
Clears the current selection in the page.
removeWhitespace: function(node,
before)
Removes the sibling text nodes for the given node that only consists of tabs, newlines and spaces.
htmlEntities: function(s,
newline)
Replaces characters (less than, greater than, newlines and quotes) with their HTML entities in the given string and returns the result.
isVml: function(node)
Returns true if the given node is in the VML namespace.
getXml: function(node,
linefeed)
Returns the XML content of the specified node.
getTextContent: function(node)
Returns the text content of the specified node.
getInnerHtml: function()
Returns the inner HTML for the given node as a string or an empty string if no node was specified.
getOuterHtml: function()
Returns the outer HTML for the given node as a string or an empty string if no node was specified.
write: function(parent,
text)
Creates a text node for the given string and appends it to the given parent.
writeln: function(parent,
text)
Creates a text node for the given string and appends it to the given parent with an additional linefeed.
br: function(parent,
count)
Appends a linebreak to the given parent and returns the linebreak.
button: function(label,
funct,
doc)
Returns a new button with the given level and function as an onclick event handler.
para: function(parent,
text)
Appends a new paragraph with the given text to the specified parent and returns the paragraph.
linkAction: function(parent,
text,
editor,
action,
pad)
Adds a hyperlink to the specified parent that invokes action on the specified editor.
linkInvoke: function(parent,
text,
editor,
functName,
arg,
pad)
Adds a hyperlink to the specified parent that invokes the specified function on the editor passing along the specified argument.
link: function(parent,
text,
funct,
pad)
Adds a hyperlink to the specified parent and invokes the given function when the link is clicked.
fit: function(node)
Makes sure the given node is inside the visible area of the window.
open: function(filename)
Opens the specified file from the local filesystem and returns the contents of the file as a string.
save: function(filename,
content)
Saves the specified content in the given file on the local file system.
saveAs: function(content)
Saves the specified content by displaying a dialog to save the content as a file on the local filesystem.
copy: function(content)
Copies the specified content to the local clipboard.
load: function(url)
Loads the specified URL synchronously and returns the mxXmlRequest.
XML HTTP request wrapper.
get: function(url,
onload,
onerror)
Loads the specified URL asynchronously and invokes the given functions depending on the request status.
post: function(url,
params,
onload,
onerror)
Posts the specified params to the given URL asynchronously and invokes the given functions depending on the request status.
submit: function(url,
params,
doc,
target)
Submits the given parameters to the specified URL using mxXmlRequest.simulate and returns the mxXmlRequest.
mxXmlRequest.prototype.simulate = function(doc,
target)
Creates and posts a request to the given target URL using a dynamically created form inside the given document.
loadInto: function(url,
doc,
onload)
Loads the specified URL asynchronously into the specified document, invoking onload after the document has been loaded.
getValue: function(array,
key,
defaultValue)
Returns the value for the given key in the given associative array or the given default value if the value is null.
getNumber: function(array,
key,
defaultValue)
Returns the numeric value for the given key in the given associative array or the given default value (or 0) if the value is null.
getColor: function(array,
key,
defaultValue)
Returns the color value for the given key in the given associative array or the given default value if the value is null.
clone: function(obj,
transients,
shallow)
Recursively clones the specified object ignoring all fieldnames in the given array of transient fields.
equalPoints: function(a,
b)
Compares all mxPoints in the given lists.
equalEntries: function(a,
b)
Compares all entries in the given dictionaries.
extend: function(ctor,
superCtor)
Assigns a copy of the superclass prototype to the subclass prototype.
toString: function(obj)
Returns a textual representation of the specified object.
toRadians: function(deg)
Converts the given degree to radians.
arcToCurves: function(x0,
y0,
r1,
r2,
angle,
largeArcFlag,
sweepFlag,
x,
y)
Converts the given arc to a series of curves.
getBoundingBox: function(rect,
rotation)
Returns the bounding box for the rotated rectangle.
getRotatedPoint: function(pt,
cos,
sin,
c)
Rotates the given point by the given cos and sin.
reversePortConstraints: function(constraint)
Reverse the port constraint bitmask.
findNearestSegment: function(state,
x,
y)
Finds the index of the nearest segment on the given cell state for the specified coordinate pair.
rectangleIntersectsSegment: function(bounds,
p1,
p2)
Returns true if the given rectangle intersects the given segment.
contains: function(bounds,
x,
y)
Returns true if the specified point (x, y) is contained in the given rectangle.
intersects: function(a,
b)
Returns true if the two rectangles intersect.
getOffset: function(container)
Returns the offset for the specified container as an mxPoint.
Implements a 2-dimensional vector with double precision coordinates.
getScrollOrigin: function(node)
Returns the top, left corner of the viewrect as an mxPoint.
convertPoint: function(container,
x,
y)
Converts the specified point (x, y) using the offset of the specified container and returns a new mxPoint with the result.
ltrim: function(str,
chars)
Strips all whitespaces from the beginning of the string.
rtrim: function(str,
chars)
Strips all whitespaces from the end of the string.
trim: function(str,
chars)
Strips all whitespaces from both end of the string.
isNumeric: function(str)
Returns true if the specified value is numeric, that is, if it is not null, not an empty string, not a HEX number and isNaN returns false.
mod: function(n,
m)
Returns the remainder of division of n by m.
intersection: function (x0,
y0,
x1,
y1,
x2,
y2,
x3,
y3)
Returns the intersection of two lines as an mxPoint.
relativeCcw: function(x1,
y1,
x2,
y2,
px,
py)
Returns 1 if the given point on the right side of the segment, 0 if its on the segment, and -1 if the point is on the left side of the segment.
animateChanges: function(graph,
changes)
See mxEffects.animateChanges.
animateChanges: function(graph,
changes,
done)
Asynchronous animated move operation.
cascadeOpacity: function(graph,
cell,
opacity)
See mxEffects.cascadeOpacity.
cascadeOpacity: function(graph,
cell,
opacity)
Sets the opacity on the given cell and its descendants.
fadeOut: function(node,
from,
remove,
step,
delay,
isEnabled)
See mxEffects.fadeOut.
fadeOut: function(node,
from,
remove,
step,
delay,
isEnabled)
Asynchronous fade-out operation.
setOpacity: function(node,
value)
Sets the opacity of the specified DOM node to the given value in %.
createImage: function(src)
Creates and returns an image (IMG node) or VML image (v:image) in IE6 in quirs mode.
sortCells: function(cells,
ascending)
Sorts the given cells according to the order in the cell hierarchy.
getStylename: function(style)
Returns the stylename in a style of the form [(stylename|key=value);] or an empty string if the given style does not contain a stylename.
getStylenames: function(style)
Returns the stylenames in a style of the form [(stylename|key=value);] or an empty array if the given style does not contain any stylenames.
indexOfStylename: function(style,
stylename)
Returns the index of the given stylename in the given style.
addStylename: function(style,
stylename)
Adds the specified stylename to the given style if it does not already contain the stylename.
removeStylename: function(style,
stylename)
Removes all occurrences of the specified stylename in the given style and returns the updated style.
removeAllStylenames: function(style)
Removes all stylenames from the given style and returns the updated style.
setCellStyles: function(model,
cells,
key,
value)
Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.
setStyle: function(style,
key,
value)
Adds or removes the given key, value pair to the style and returns the new style.
setCellStyleFlags: function(model,
cells,
key,
flag,
value)
Sets or toggles the flag bit for the given key in the cell’s styles.
setStyleFlag: function(style,
key,
flag,
value)
Sets or removes the given key from the specified style and returns the new style.
getSizeForString: function(text,
fontSize,
fontFamily)
Returns an mxRectangle with the size (width and height in pixels) of the given string.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
getViewXml: function(graph,
scale,
cells,
x0,
y0)
getScaleForPageCount: function(pageCount,
graph,
pageFormat,
border)
Returns the scale to be used for printing the graph with the given bounds across the specifies number of pages with the given format.
show: function(graph,
doc,
x0,
y0)
Copies the styles and the markup from the graph’s container into the given document and removes all cursor styles.
printScreen: function(graph)
Prints the specified graph using a new window and the built-in print dialog.
popup: function(content,
isInternalWindow)
Shows the specified text content in a new mxWindow or a new browser window if isInternalWindow is false.
Basic window inside a document.
alert: function(message)
Displayss the given alert in a new dialog.
prompt: function(message,
defaultValue)
Displays the given message in a prompt dialog.
confirm: function(message)
Displays the given message in a confirm dialog.
error: function(message,
width,
close,
icon)
Displays the given error message in a new mxWindow of the given width.
makeDraggable: function(element,
graphF,
funct,
dragElement,
dx,
dy,
autoscroll,
scalePreview,
highlightDropTargets,
getDropTarget)
Configures the given DOM element to act as a drag source for the specified graph.
Extends mxEventSource to implement a graph component for the browser.
DOM node of type ELEMENT.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
Defines the value for none.
Name of the field to be used to store the object ID.
Extends mxEventSource to implement a graph model.
Cells are the elements of the graph model.
Defines the default size for all fonts in points.
Defines the default family for all fonts in points.
Implements printing of a diagram across multiple pages.
Defines the rectangle for the A4 portrait page format.
Defines the image used for error dialogs.
Wrapper to create a drag source from a DOM element so that the element can be dragged over a graph and dropped into the graph as a new cell.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxWindow-js.html b/docs/js-api/files/util/mxWindow-js.html new file mode 100644 index 000000000..f42db142f --- /dev/null +++ b/docs/js-api/files/util/mxWindow-js.html @@ -0,0 +1,233 @@ + + +mxWindow + + + + + + + + + +

mxWindow

Basic window inside a document.

Examples

Creating a simple window.

var tb = document.createElement('div');
+var wnd = new mxWindow('Title', tb, 100, 100, 200, 200, true, true);
+wnd.setVisible(true);

Creating a window that contains an iframe.

var frame = document.createElement('iframe');
+frame.setAttribute('width', '192px');
+frame.setAttribute('height', '172px');
+frame.setAttribute('src', 'http://www.example.com/');
+frame.style.backgroundColor = 'white';
+
+var w = document.body.clientWidth;
+var h = (document.body.clientHeight || document.documentElement.clientHeight);
+var wnd = new mxWindow('Title', frame, (w-200)/2, (h-200)/3, 200, 200);
+wnd.setVisible(true);
+(end);
+
+Event: mxEvent.MOVE_START
+
+Fires before the window is moved. The <code>event</code> property contains
+the corresponding mouse event.
+
+Event: mxEvent.MOVE
+
+Fires while the window is being moved. The <code>event</code> property
+contains the corresponding mouse event.
+
+Event: mxEvent.MOVE_END
+
+Fires after the window is moved. The <code>event</code> property contains
+the corresponding mouse event.
+
+Event: mxEvent.RESIZE_START
+
+Fires before the window is resized. The <code>event</code> property contains
+the corresponding mouse event.
+
+Event: mxEvent.RESIZE
+
+Fires while the window is being resized. The <code>event</code> property
+contains the corresponding mouse event.
+
+Event: mxEvent.RESIZE_END
+
+Fires after the window is resized. The <code>event</code> property contains
+the corresponding mouse event.
+
+Event: mxEvent.MAXIMIZE
+
+Fires after the window is maximized. The <code>event</code> property
+contains the corresponding mouse event.
+
+Event: mxEvent.MINIMIZE
+
+Fires after the window is minimized. The <code>event</code> property
+contains the corresponding mouse event.
+
+Event: mxEvent.NORMALIZE
+
+Fires after the window is normalized, that is, it returned from
+maximized or minimized state. The <code>event</code> property contains the
+corresponding mouse event.
+
+Event: mxEvent.ACTIVATE
+
+Fires after a window is activated. The <code>previousWindow</code> property
+contains the previous window. The event sender is the active window.
+
+Event: mxEvent.SHOW
+
+Fires after the window is shown. This event has no properties.
+
+Event: mxEvent.HIDE
+
+Fires after the window is hidden. This event has no properties.
+
+Event: mxEvent.CLOSE
+
+Fires before the window is closed. The <code>event</code> property contains
+the corresponding mouse event.
+
+Event: mxEvent.DESTROY
+
+Fires before the window is destroyed. This event has no properties.
+
+Constructor: mxWindow
+
+Constructs a new window with the given dimension and title to display
+the specified content. The window elements use the given style as a
+prefix for the classnames of the respective window elements, namely,
+the window title and window pane. The respective postfixes are appended
+to the given stylename as follows:
+
+  style - Base style for the window.
+  style+Title - Style for the window title.
+  style+Pane - Style for the window pane.
+
+The default value for style is mxWindow, resulting in the following
+classnames for the window elements: mxWindow, mxWindowTitle and
+mxWindowPane.
+
+If replaceNode is given then the window replaces the given DOM node in
+the document.
+
+Parameters:
+
+title - String that represents the title of the new window.
+content - DOM node that is used as the window content.
+x - X-coordinate of the window location.
+y - Y-coordinate of the window location.
+width - Width of the window.
+height - Optional height of the window. Default is to match the height
+of the content at the specified width.
+minimizable - Optional boolean indicating if the window is minimizable.
+Default is true.
+movable - Optional boolean indicating if the window is movable. Default
+is true.
+replaceNode - Optional DOM node that the window should replace.
+style - Optional base classname for the window elements. Default is
+mxWindow.
Summary
mxWindowBasic window inside a document.
Variables
closeImageURL of the image to be used for the close icon in the titlebar.
minimizeImageURL of the image to be used for the minimize icon in the titlebar.
normalizeImageURL of the image to be used for the normalize icon in the titlebar.
maximizeImageURL of the image to be used for the maximize icon in the titlebar.
normalizeImageURL of the image to be used for the resize icon.
visibleBoolean flag that represents the visible state of the window.
contentReference to the DOM node that represents the window content.
minimumSizemxRectangle that specifies the minimum width and height of the window.
titleReference to the DOM node (TD) that contains the title.
contentReference to the DOM node that represents the window content.
destroyOnCloseSpecifies if the window should be destroyed when it is closed.
Functions
initInitializes the DOM tree that represents the window.
setTitleSets the window title to the given string.
setScrollableSets if the window contents should be scrollable.
activatePuts the window on top of all other windows.
getElementReturuns the outermost DOM node that makes up the window.
fitMakes sure the window is inside the client area of the window.
isResizableReturns true if the window is resizable.
setResizableSets if the window should be resizable.
setSizeSets the size of the window.
setMinimizableSets if the window is minimizable.
getMinimumSizeReturns an mxRectangle that specifies the size for the minimized window.
installMinimizeHandlerInstalls the event listeners required for minimizing the window.
setMaximizableSets if the window is maximizable.
installMaximizeHandlerInstalls the event listeners required for maximizing the window.
installMoveHandlerInstalls the event listeners required for moving the window.
setLocationSets the upper, left corner of the window.
getXReturns the current position on the x-axis.
getYReturns the current position on the y-axis.
installCloseHandlerAdds the closeImage as a new image node in <closeImg> and installs the <close> event.
setImageSets the image associated with the window.
setClosableSets the image associated with the window.
isVisibleReturns true if the window is visible.
setVisibleShows or hides the window depending on the given flag.
showShows the window.
hideHides the window.
destroyDestroys the window and removes all associated resources.
+ +

Variables

+ +

closeImage

mxWindow.prototype.closeImage

URL of the image to be used for the close icon in the titlebar.

+ +

minimizeImage

mxWindow.prototype.minimizeImage

URL of the image to be used for the minimize icon in the titlebar.

+ +

normalizeImage

mxWindow.prototype.normalizeImage

URL of the image to be used for the normalize icon in the titlebar.

+ +

maximizeImage

mxWindow.prototype.maximizeImage

URL of the image to be used for the maximize icon in the titlebar.

+ +

normalizeImage

URL of the image to be used for the resize icon.

+ +

visible

mxWindow.prototype.visible

Boolean flag that represents the visible state of the window.

+ +

content

mxWindow.prototype.content

Reference to the DOM node that represents the window content.

+ +

minimumSize

mxWindow.prototype.minimumSize

mxRectangle that specifies the minimum width and height of the window.  Default is (50, 40).

+ +

title

mxWindow.prototype.title

Reference to the DOM node (TD) that contains the title.

+ +

content

mxWindow.prototype.content

Reference to the DOM node that represents the window content.

+ +

destroyOnClose

mxWindow.prototype.destroyOnClose

Specifies if the window should be destroyed when it is closed.  If this is false then the window is hidden using setVisible.  Default is true.

+ +

Functions

+ +

init

mxWindow.prototype.init = function(x,
y,
width,
height,
style)

Initializes the DOM tree that represents the window.

+ +

setTitle

mxWindow.prototype.setTitle = function(title)

Sets the window title to the given string.  HTML markup inside the title will be escaped.

+ +

setScrollable

mxWindow.prototype.setScrollable = function(scrollable)

Sets if the window contents should be scrollable.

+ +

activate

mxWindow.prototype.activate = function()

Puts the window on top of all other windows.

+ +

getElement

mxWindow.prototype.getElement = function()

Returuns the outermost DOM node that makes up the window.

+ +

fit

mxWindow.prototype.fit = function()

Makes sure the window is inside the client area of the window.

+ +

isResizable

mxWindow.prototype.isResizable = function()

Returns true if the window is resizable.

+ +

setResizable

mxWindow.prototype.setResizable = function(resizable)

Sets if the window should be resizable.

+ +

setSize

mxWindow.prototype.setSize = function(width,
height)

Sets the size of the window.

+ +

setMinimizable

mxWindow.prototype.setMinimizable = function(minimizable)

Sets if the window is minimizable.

+ +

getMinimumSize

mxWindow.prototype.getMinimumSize = function()

Returns an mxRectangle that specifies the size for the minimized window.  A width or height of 0 means keep the existing width or height.  This implementation returns the height of the window title and keeps the width.

+ +

installMinimizeHandler

mxWindow.prototype.installMinimizeHandler = function()

Installs the event listeners required for minimizing the window.

+ +

setMaximizable

mxWindow.prototype.setMaximizable = function(maximizable)

Sets if the window is maximizable.

+ +

installMaximizeHandler

mxWindow.prototype.installMaximizeHandler = function()

Installs the event listeners required for maximizing the window.

+ +

installMoveHandler

mxWindow.prototype.installMoveHandler = function()

Installs the event listeners required for moving the window.

+ +

setLocation

mxWindow.prototype.setLocation = function(x,
y)

Sets the upper, left corner of the window.

+ +

getX

mxWindow.prototype.getX = function()

Returns the current position on the x-axis.

+ +

getY

mxWindow.prototype.getY = function()

Returns the current position on the y-axis.

+ +

installCloseHandler

mxWindow.prototype.installCloseHandler = function()

Adds the closeImage as a new image node in <closeImg> and installs the <close> event.

+ +

setImage

mxWindow.prototype.setImage = function(image)

Sets the image associated with the window.

Parameters

imageURL of the image to be used.
+ +

setClosable

mxWindow.prototype.setClosable = function(closable)

Sets the image associated with the window.

Parameters

closableBoolean specifying if the window should be closable.
+ +

isVisible

mxWindow.prototype.isVisible = function()

Returns true if the window is visible.

+ +

setVisible

mxWindow.prototype.setVisible = function(visible)

Shows or hides the window depending on the given flag.

Parameters

visibleBoolean indicating if the window should be made visible.
+ +

show

mxWindow.prototype.show = function()

Shows the window.

+ +

hide

mxWindow.prototype.hide = function()

Hides the window.

+ +

destroy

mxWindow.prototype.destroy = function()

Destroys the window and removes all associated resources.  Fires a destroy event prior to destroying the window.

+ +
+ + + + + + + + + + +
mxWindow.prototype.closeImage
URL of the image to be used for the close icon in the titlebar.
mxWindow.prototype.minimizeImage
URL of the image to be used for the minimize icon in the titlebar.
mxWindow.prototype.normalizeImage
URL of the image to be used for the normalize icon in the titlebar.
mxWindow.prototype.maximizeImage
URL of the image to be used for the maximize icon in the titlebar.
mxWindow.prototype.visible
Boolean flag that represents the visible state of the window.
mxWindow.prototype.content
Reference to the DOM node that represents the window content.
mxWindow.prototype.minimumSize
mxRectangle that specifies the minimum width and height of the window.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxWindow.prototype.title
Reference to the DOM node (TD) that contains the title.
mxWindow.prototype.destroyOnClose
Specifies if the window should be destroyed when it is closed.
mxWindow.prototype.init = function(x,
y,
width,
height,
style)
Initializes the DOM tree that represents the window.
mxWindow.prototype.setTitle = function(title)
Sets the window title to the given string.
mxWindow.prototype.setScrollable = function(scrollable)
Sets if the window contents should be scrollable.
mxWindow.prototype.activate = function()
Puts the window on top of all other windows.
mxWindow.prototype.getElement = function()
Returuns the outermost DOM node that makes up the window.
mxWindow.prototype.fit = function()
Makes sure the window is inside the client area of the window.
mxWindow.prototype.isResizable = function()
Returns true if the window is resizable.
mxWindow.prototype.setResizable = function(resizable)
Sets if the window should be resizable.
mxWindow.prototype.setSize = function(width,
height)
Sets the size of the window.
mxWindow.prototype.setMinimizable = function(minimizable)
Sets if the window is minimizable.
mxWindow.prototype.getMinimumSize = function()
Returns an mxRectangle that specifies the size for the minimized window.
mxWindow.prototype.installMinimizeHandler = function()
Installs the event listeners required for minimizing the window.
mxWindow.prototype.setMaximizable = function(maximizable)
Sets if the window is maximizable.
mxWindow.prototype.installMaximizeHandler = function()
Installs the event listeners required for maximizing the window.
mxWindow.prototype.installMoveHandler = function()
Installs the event listeners required for moving the window.
mxWindow.prototype.setLocation = function(x,
y)
Sets the upper, left corner of the window.
mxWindow.prototype.getX = function()
Returns the current position on the x-axis.
mxWindow.prototype.getY = function()
Returns the current position on the y-axis.
mxWindow.prototype.installCloseHandler = function()
Adds the closeImage as a new image node in closeImg and installs the close event.
mxWindow.prototype.setImage = function(image)
Sets the image associated with the window.
mxWindow.prototype.setClosable = function(closable)
Sets the image associated with the window.
mxWindow.prototype.isVisible = function()
Returns true if the window is visible.
mxWindow.prototype.setVisible = function(visible)
Shows or hides the window depending on the given flag.
mxWindow.prototype.show = function()
Shows the window.
mxWindow.prototype.hide = function()
Hides the window.
mxWindow.prototype.destroy = function()
Destroys the window and removes all associated resources.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxXmlCanvas2D-js.html b/docs/js-api/files/util/mxXmlCanvas2D-js.html new file mode 100644 index 000000000..ffe022270 --- /dev/null +++ b/docs/js-api/files/util/mxXmlCanvas2D-js.html @@ -0,0 +1,140 @@ + + +mxXmlCanvas2D + + + + + + + + + +

mxXmlCanvas2D

Implements a canvas to be used with mxImageExport.  This canvas writes all calls as child nodes to the given root XML node.

var xmlDoc = mxUtils.createXmlDocument();
+var root = xmlDoc.createElement('output');
+xmlDoc.appendChild(root);
+var xmlCanvas = new mxXmlCanvas2D(root);
Summary
mxXmlCanvas2DImplements a canvas to be used with mxImageExport.
Functions
mxXmlCanvas2DConstructs a XML canvas.
Variables
converterHolds the mxUrlConverter to convert image URLs.
compressedSpecifies if the output should be compressed by removing redundant calls.
textEnabledSpecifies if text output should be enabled.
Functions
getConverterReturns converter.
isCompressedReturns compressed.
setCompressedSets compressed.
isTextEnabledReturns textEnabled.
setTextEnabledSets textEnabled.
getDocumentReturns the owner document of the root element.
saveSaves the state of the graphics object.
restoreRestores the state of the graphics object.
scaleScales the current graphics object.
translateTranslates the current graphics object.
rotateRotates and/or flips the current graphics object.
setStrokeWidthSets the stroke width.
setStrokeColorSets the stroke color.
setDashedSets the dashed state to true or false.
setDashPatternSets the dashed pattern to the given space separated list of numbers.
setLineCapSets the linecap.
setLineJoinSets the linejoin.
setMiterLimitSets the miterlimit.
setFontSizeSets the fontsize.
setFontColorSets the fontcolor.
setFontFamilySets the fontfamily.
setFontStyleSets the fontstyle.
setAlphaSets the current alpha.
setFillColorSets the fillcolor.
setGradientSets the gradient color.
setGlassGradientSets the glass gradient.
rectSets the current path to a rectangle.
roundrectSets the current path to a rounded rectangle.
ellipseSets the current path to an ellipse.
imagePaints an image.
textPaints the given text.
beginStarts a new path.
moveToMoves the current path the given coordinates.
lineToAdds a line to the current path.
quadToAdds a quadratic curve to the current path.
curveToAdds a bezier curve to the current path.
closeCloses the current path.
strokePaints the outline of the current path.
fillFills the current path.
fillstrokeFills and paints the outline of the current path.
shadowPaints the current path as a shadow of the given color.
clipUses the current path for clipping.
+ +

Functions

+ +

mxXmlCanvas2D

var mxXmlCanvas2D = function(root)

Constructs a XML canvas.

Parameters

rootXML node for adding child nodes.
+ +

Variables

+ +

converter

var converter

Holds the mxUrlConverter to convert image URLs.

+ +

compressed

var compressed

Specifies if the output should be compressed by removing redundant calls.  Default is true.

+ +

textEnabled

var textEnabled

Specifies if text output should be enabled.  Default is true.

+ +

Functions

+ +

getConverter

getConverter: function()

Returns converter.

+ +

isCompressed

isCompressed: function()

Returns compressed.

+ +

setCompressed

setCompressed: function(value)

Sets compressed.

+ +

isTextEnabled

isTextEnabled: function()

Returns textEnabled.

+ +

setTextEnabled

setTextEnabled: function(value)

Sets textEnabled.

+ +

getDocument

getDocument: function()

Returns the owner document of the root element.

+ +

save

save: function()

Saves the state of the graphics object.

+ +

restore

restore: function()

Restores the state of the graphics object.

+ +

scale

scale: function(value)

Scales the current graphics object.

+ +

translate

translate: function(dx,
dy)

Translates the current graphics object.

+ +

rotate

rotate: function(theta,
flipH,
flipV,
cx,
cy)

Rotates and/or flips the current graphics object.

+ +

setStrokeWidth

setStrokeWidth: function(value)

Sets the stroke width.

+ +

setStrokeColor

setStrokeColor: function(value)

Sets the stroke color.

+ +

setDashed

setDashed: function(value)

Sets the dashed state to true or false.

+ +

setDashPattern

setDashPattern: function(value)

Sets the dashed pattern to the given space separated list of numbers.

+ +

setLineCap

setLineCap: function(value)

Sets the linecap.

+ +

setLineJoin

setLineJoin: function(value)

Sets the linejoin.

+ +

setMiterLimit

setMiterLimit: function(value)

Sets the miterlimit.

+ +

setFontSize

setFontSize: function(value)

Sets the fontsize.

+ +

setFontColor

setFontColor: function(value)

Sets the fontcolor.

+ +

setFontFamily

setFontFamily: function(value)

Sets the fontfamily.

+ +

setFontStyle

setFontStyle: function(value)

Sets the fontstyle.

+ +

setAlpha

setAlpha: function(alpha)

Sets the current alpha.

+ +

setFillColor

setFillColor: function(value)

Sets the fillcolor.

+ +

setGradient

setGradient: function(color1,
color2,
x,
y,
w,
h,
direction)

Sets the gradient color.

+ +

setGlassGradient

setGlassGradient: function(x,
y,
w,
h)

Sets the glass gradient.

+ +

rect

rect: function(x,
y,
w,
h)

Sets the current path to a rectangle.

+ +

roundrect

roundrect: function(x,
y,
w,
h,
dx,
dy)

Sets the current path to a rounded rectangle.

+ +

ellipse

ellipse: function(x,
y,
w,
h)

Sets the current path to an ellipse.

+ +

image

image: function(x,
y,
w,
h,
src,
aspect,
flipH,
flipV)

Paints an image.

+ +

text

text: function(x,
y,
w,
h,
str,
align,
valign,
vertical,
wrap,
format)

Paints the given text.

+ +

begin

begin: function()

Starts a new path.

+ +

moveTo

moveTo: function(x,
y)

Moves the current path the given coordinates.

+ +

lineTo

lineTo: function(x,
y)

Adds a line to the current path.

+ +

quadTo

quadTo: function(x1,
y1,
x2,
y2)

Adds a quadratic curve to the current path.

+ +

curveTo

curveTo: function(x1,
y1,
x2,
y2,
x3,
y3)

Adds a bezier curve to the current path.

+ +

close

close: function()

Closes the current path.

+ +

stroke

stroke: function()

Paints the outline of the current path.

+ +

fill

fill: function()

Fills the current path.

+ +

fillstroke

Fills and paints the outline of the current path.

+ +

shadow

shadow: function(value,
filled)

Paints the current path as a shadow of the given color.

+ +

clip

clip: function()

Uses the current path for clipping.

+ +
+ + + + + + + + + + +
Creates a new image export instance to be used with an export canvas.
var mxXmlCanvas2D = function(root)
Constructs a XML canvas.
var converter
Holds the mxUrlConverter to convert image URLs.
Converts relative to absolute URLs.
var compressed
Specifies if the output should be compressed by removing redundant calls.
var textEnabled
Specifies if text output should be enabled.
getConverter: function()
Returns converter.
isCompressed: function()
Returns compressed.
setCompressed: function(value)
Sets compressed.
isTextEnabled: function()
Returns textEnabled.
setTextEnabled: function(value)
Sets textEnabled.
getDocument: function()
Returns the owner document of the root element.
save: function()
Saves the state of the graphics object.
restore: function()
Restores the state of the graphics object.
scale: function(value)
Scales the current graphics object.
translate: function(dx,
dy)
Translates the current graphics object.
rotate: function(theta,
flipH,
flipV,
cx,
cy)
Rotates and/or flips the current graphics object.
setStrokeWidth: function(value)
Sets the stroke width.
setStrokeColor: function(value)
Sets the stroke color.
setDashed: function(value)
Sets the dashed state to true or false.
setDashPattern: function(value)
Sets the dashed pattern to the given space separated list of numbers.
setLineCap: function(value)
Sets the linecap.
setLineJoin: function(value)
Sets the linejoin.
setMiterLimit: function(value)
Sets the miterlimit.
setFontSize: function(value)
Sets the fontsize.
setFontColor: function(value)
Sets the fontcolor.
setFontFamily: function(value)
Sets the fontfamily.
setFontStyle: function(value)
Sets the fontstyle.
setAlpha: function(alpha)
Sets the current alpha.
setFillColor: function(value)
Sets the fillcolor.
setGradient: function(color1,
color2,
x,
y,
w,
h,
direction)
Sets the gradient color.
setGlassGradient: function(x,
y,
w,
h)
Sets the glass gradient.
rect: function(x,
y,
w,
h)
Sets the current path to a rectangle.
roundrect: function(x,
y,
w,
h,
dx,
dy)
Sets the current path to a rounded rectangle.
ellipse: function(x,
y,
w,
h)
Sets the current path to an ellipse.
image: function(x,
y,
w,
h,
src,
aspect,
flipH,
flipV)
Paints an image.
text: function(x,
y,
w,
h,
str,
align,
valign,
vertical,
wrap,
format)
Paints the given text.
begin: function()
Starts a new path.
moveTo: function(x,
y)
Moves the current path the given coordinates.
lineTo: function(x,
y)
Adds a line to the current path.
quadTo: function(x1,
y1,
x2,
y2)
Adds a quadratic curve to the current path.
curveTo: function(x1,
y1,
x2,
y2,
x3,
y3)
Adds a bezier curve to the current path.
close: function()
Closes the current path.
stroke: function()
Paints the outline of the current path.
fill: function()
Fills the current path.
shadow: function(value,
filled)
Paints the current path as a shadow of the given color.
clip: function()
Uses the current path for clipping.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/util/mxXmlRequest-js.html b/docs/js-api/files/util/mxXmlRequest-js.html new file mode 100644 index 000000000..13989013b --- /dev/null +++ b/docs/js-api/files/util/mxXmlRequest-js.html @@ -0,0 +1,110 @@ + + +mxXmlRequest + + + + + + + + + +

mxXmlRequest

XML HTTP request wrapper.  See also: mxUtils.get, mxUtils.post and mxUtils.load.  This class provides a cross-browser abstraction for Ajax requests.

Encoding

For encoding parameter values, the built-in encodeURIComponent JavaScript method must be used.  For automatic encoding of post data in mxEditor the mxEditor.escapePostData switch can be set to true (default).  The encoding will be carried out using the conte type of the page.  That is, the page containting the editor should contain a meta tag in the header, eg.  <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”>

Example

var onload = function(req)
+{
+  mxUtils.alert(req.getDocumentElement());
+}
+
+var onerror = function(req)
+{
+  mxUtils.alert(req.getStatus());
+}
+new mxXmlRequest(url, 'key=value').send(onload, onerror);

Sends an asynchronous POST request to the specified URL.

Example

var req = new mxXmlRequest(url, 'key=value', 'POST', false);
+req.send();
+mxUtils.alert(req.getDocumentElement());

Sends a synchronous POST request to the specified URL.

Example

var encoder = new mxCodec();
+var result = encoder.encode(graph.getModel());
+var xml = encodeURIComponent(mxUtils.getXml(result));
+new mxXmlRequest(url, 'xml='+xml).send();

Sends an encoded graph model to the specified URL using xml as the parameter name.  The parameter can then be retrieved in C# as follows:

string xml = HttpUtility.UrlDecode(context.Request.Params["xml"]);

Or in Java as follows

String xml = URLDecoder.decode(request.getParameter("xml"), "UTF-8").replace("\n", "&#xa;");

Note that the linefeeds should only be replaced if the XML is processed in Java, for example when creating an image.

Summary
mxXmlRequestXML HTTP request wrapper.
Functions
mxXmlRequestConstructs an XML HTTP request.
Variables
urlHolds the target URL of the request.
paramsHolds the form encoded data for the POST request.
methodSpecifies the request method.
asyncBoolean indicating if the request is asynchronous.
binaryBoolean indicating if the request is binary.
usernameSpecifies the username to be used for authentication.
passwordSpecifies the password to be used for authentication.
requestHolds the inner, browser-specific request object.
Functions
isBinaryReturns binary.
setBinarySets binary.
getTextReturns the response as a string.
isReadyReturns true if the response is ready.
getDocumentElementReturns the document element of the response XML document.
getXmlReturns the response as an XML document.
getTextReturns the response as a string.
getStatusReturns the status as a number, eg.
createCreates and returns the inner request object.
sendSend the request to the target URL using the specified functions to process the response asychronously.
setRequestHeadersSets the headers for the given request and parameters.
simulateCreates and posts a request to the given target URL using a dynamically created form inside the given document.
+ +

Functions

+ +

mxXmlRequest

function mxXmlRequest(url,
params,
method,
async,
username,
password)

Constructs an XML HTTP request.

Parameters

urlTarget URL of the request.
paramsForm encoded parameters to send with a POST request.
methodString that specifies the request method.  Possible values are POST and GET.  Default is POST.
asyncBoolean specifying if an asynchronous request should be used.  Default is true.
usernameString specifying the username to be used for the request.
passwordString specifying the password to be used for the request.
+ +

Variables

+ +

url

mxXmlRequest.prototype.url

Holds the target URL of the request.

+ +

params

mxXmlRequest.prototype.params

Holds the form encoded data for the POST request.

+ +

method

mxXmlRequest.prototype.method

Specifies the request method.  Possible values are POST and GET.  Default is POST.

+ +

async

mxXmlRequest.prototype.async

Boolean indicating if the request is asynchronous.

+ +

binary

mxXmlRequest.prototype.binary

Boolean indicating if the request is binary.  This option is ignored in IE.  In all other browsers the requested mime type is set to text/plain; charset=x-user-defined.  Default is false.

+ +

username

mxXmlRequest.prototype.username

Specifies the username to be used for authentication.

+ +

password

mxXmlRequest.prototype.password

Specifies the password to be used for authentication.

+ +

request

mxXmlRequest.prototype.request

Holds the inner, browser-specific request object.

+ +

Functions

+ +

isBinary

mxXmlRequest.prototype.isBinary = function()

Returns binary.

+ +

setBinary

mxXmlRequest.prototype.setBinary = function(value)

Sets binary.

+ +

getText

mxXmlRequest.prototype.getText = function()

Returns the response as a string.

+ +

isReady

mxXmlRequest.prototype.isReady = function()

Returns true if the response is ready.

+ +

getDocumentElement

mxXmlRequest.prototype.getDocumentElement = function()

Returns the document element of the response XML document.

+ +

getXml

mxXmlRequest.prototype.getXml = function()

Returns the response as an XML document.  Use getDocumentElement to get the document element of the XML document.

+ +

getText

mxXmlRequest.prototype.getText = function()

Returns the response as a string.

+ +

getStatus

mxXmlRequest.prototype.getStatus = function()

Returns the status as a number, eg.  404 for “Not found” or 200 for “OK”.  Note: The NS_ERROR_NOT_AVAILABLE for invalid responses cannot be cought.

+ +

create

mxXmlRequest.prototype.create = function()

Creates and returns the inner request object.

+ +

send

mxXmlRequest.prototype.send = function(onload,
onerror)

Send the request to the target URL using the specified functions to process the response asychronously.

Parameters

onloadFunction to be invoked if a successful response was received.
onerrorFunction to be called on any error.
+ +

setRequestHeaders

mxXmlRequest.prototype.setRequestHeaders = function(request,
params)

Sets the headers for the given request and parameters.  This sets the content-type to application/x-www-form-urlencoded if any params exist.

Example

request.setRequestHeaders = function(request, params)
+{
+  if (params != null)
+  {
+    request.setRequestHeader('Content-Type',
+            'multipart/form-data');
+    request.setRequestHeader('Content-Length',
+            params.length);
+  }
+};

Use the code above before calling send if you require a multipart/form-data request.

+ +

simulate

mxXmlRequest.prototype.simulate = function(doc,
target)

Creates and posts a request to the given target URL using a dynamically created form inside the given document.

Parameters

docsDocument that contains the form element.
targetTarget to send the form result to.
+ +
+ + + + + + + + + + +
function mxXmlRequest(url,
params,
method,
async,
username,
password)
Constructs an XML HTTP request.
mxXmlRequest.prototype.url
Holds the target URL of the request.
mxXmlRequest.prototype.params
Holds the form encoded data for the POST request.
mxXmlRequest.prototype.method
Specifies the request method.
mxXmlRequest.prototype.async
Boolean indicating if the request is asynchronous.
mxXmlRequest.prototype.binary
Boolean indicating if the request is binary.
mxXmlRequest.prototype.username
Specifies the username to be used for authentication.
mxXmlRequest.prototype.password
Specifies the password to be used for authentication.
mxXmlRequest.prototype.request
Holds the inner, browser-specific request object.
mxXmlRequest.prototype.isBinary = function()
Returns binary.
mxXmlRequest.prototype.setBinary = function(value)
Sets binary.
mxXmlRequest.prototype.getText = function()
Returns the response as a string.
mxXmlRequest.prototype.isReady = function()
Returns true if the response is ready.
mxXmlRequest.prototype.getDocumentElement = function()
Returns the document element of the response XML document.
mxXmlRequest.prototype.getXml = function()
Returns the response as an XML document.
mxXmlRequest.prototype.getStatus = function()
Returns the status as a number, eg.
mxXmlRequest.prototype.create = function()
Creates and returns the inner request object.
mxXmlRequest.prototype.send = function(onload,
onerror)
Send the request to the target URL using the specified functions to process the response asychronously.
mxXmlRequest.prototype.setRequestHeaders = function(request,
params)
Sets the headers for the given request and parameters.
mxXmlRequest.prototype.simulate = function(doc,
target)
Creates and posts a request to the given target URL using a dynamically created form inside the given document.
get: function(url,
onload,
onerror)
Loads the specified URL asynchronously and invokes the given functions depending on the request status.
post: function(url,
params,
onload,
onerror)
Posts the specified params to the given URL asynchronously and invokes the given functions depending on the request status.
load: function(url)
Loads the specified URL synchronously and returns the mxXmlRequest.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
mxEditor.prototype.escapePostData
Specifies if the data in the post request for saving a diagram should be converted using encodeURIComponent.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxCellEditor-js.html b/docs/js-api/files/view/mxCellEditor-js.html new file mode 100644 index 000000000..ea54887aa --- /dev/null +++ b/docs/js-api/files/view/mxCellEditor-js.html @@ -0,0 +1,109 @@ + + +mxCellEditor + + + + + + + + + +

mxCellEditor

In-place editor for the graph.  To control this editor, use mxGraph.invokesStopCellEditing, mxGraph.enterStopsCellEditing and mxGraph.escapeEnabled.  If mxGraph.enterStopsCellEditing is true then ctrl-enter or shift-enter can be used to create a linefeed.  The F2 and escape keys can always be used to stop editing.  To customize the location of the textbox in the graph, override getEditorBounds as follows:

graph.cellEditor.getEditorBounds = function(state)
+{
+  var result = mxCellEditor.prototype.getEditorBounds.apply(this, arguments);
+
+  if (this.graph.getModel().isEdge(state.cell))
+  {
+    result.x = state.getCenterX() - result.width / 2;
+    result.y = state.getCenterY() - result.height / 2;
+  }
+
+  return result;
+};

The textarea uses the mxCellEditor CSS class.  You can modify this class in your custom CSS.  Note: You should modify the CSS after loading the client in the page.

Example

To only allow numeric input in the in-place editor, use the following code.

var text = graph.cellEditor.textarea;
+
+mxEvent.addListener(text, 'keydown', function (evt)
+{
+  if (!(evt.keyCode >= 48 && evt.keyCode <= 57) &&
+      !(evt.keyCode >= 96 && evt.keyCode <= 105))
+  {
+    mxEvent.consume(evt);
+  }
+});

Initial values

To implement an initial value for cells without a label, use the emptyLabelText variable.

Resize in Chrome

Resize of the textarea is disabled by default.  If you want to enable this feature extend init and set this.textarea.style.resize = ‘’.

Summary
mxCellEditorIn-place editor for the graph.
Functions
mxCellEditorConstructs a new in-place editor for the specified graph.
Variables
graphReference to the enclosing mxGraph.
textareaHolds the input textarea.
editingCellReference to the mxCell that is currently being edited.
triggerReference to the event that was used to start editing.
modifiedSpecifies if the label has been modified.
emptyLabelTextText to be displayed for empty labels.
textNodeReference to the label DOM node that has been hidden.
Functions
initCreates the textarea and installs the event listeners.
isModifiedReturns modified.
setModifiedSets modified to the specified boolean value.
focusLostCalled if the textarea has lost focus.
startEditingStarts the editor for the given cell.
stopEditingStops the editor and applies the value if cancel is false.
getInitialValueGets the initial editing value for the given cell.
getCurrentValueReturns the current editing value.
isHideLabelReturns true if the label should be hidden while the cell is being edited.
getMinimumSizeReturns the minimum width and height for editing the given state.
getEditorBoundsReturns the mxRectangle that defines the bounds of the editor.
getEmptyLabelTextReturns the initial label value to be used of the label of the given cell is empty.
getEditingCellReturns the cell that is currently being edited or null if no cell is being edited.
destroyDestroys the editor and removes all associated resources.
+ +

Functions

+ +

mxCellEditor

function mxCellEditor(graph)

Constructs a new in-place editor for the specified graph.

Parameters

graphReference to the enclosing mxGraph.
+ +

Variables

+ +

graph

mxCellEditor.prototype.graph

Reference to the enclosing mxGraph.

+ +

textarea

mxCellEditor.prototype.textarea

Holds the input textarea.  Note that this may be null before the first edit.  Instantiated in init.

+ +

editingCell

mxCellEditor.prototype.editingCell

Reference to the mxCell that is currently being edited.

+ +

trigger

mxCellEditor.prototype.trigger

Reference to the event that was used to start editing.

+ +

modified

mxCellEditor.prototype.modified

Specifies if the label has been modified.

+ +

emptyLabelText

mxCellEditor.prototype.emptyLabelText

Text to be displayed for empty labels.  Default is ‘’.  This can be set to eg.  “[Type Here]” to easier visualize editing of empty labels.  The value is only displayed before the first keystroke and is never used as the actual editin value.

+ +

textNode

mxCellEditor.prototype.textNode

Reference to the label DOM node that has been hidden.

+ +

Functions

+ +

init

mxCellEditor.prototype.init = function ()

Creates the textarea and installs the event listeners.  The key handler updates the modified state.

+ +

isModified

mxCellEditor.prototype.isModified = function()

Returns modified.

+ +

setModified

mxCellEditor.prototype.setModified = function(value)

Sets modified to the specified boolean value.

+ +

focusLost

mxCellEditor.prototype.focusLost = function()

Called if the textarea has lost focus.

+ +

startEditing

mxCellEditor.prototype.startEditing = function(cell,
trigger)

Starts the editor for the given cell.

Parameters

cellmxCell to start editing.
triggerOptional mouse event that triggered the editor.
+ +

stopEditing

mxCellEditor.prototype.stopEditing = function(cancel)

Stops the editor and applies the value if cancel is false.

+ +

getInitialValue

mxCellEditor.prototype.getInitialValue = function(state,
trigger)

Gets the initial editing value for the given cell.

+ +

getCurrentValue

mxCellEditor.prototype.getCurrentValue = function()

Returns the current editing value.

+ +

isHideLabel

mxCellEditor.prototype.isHideLabel = function(state)

Returns true if the label should be hidden while the cell is being edited.

+ +

getMinimumSize

mxCellEditor.prototype.getMinimumSize = function(state)

Returns the minimum width and height for editing the given state.

+ +

getEditorBounds

mxCellEditor.prototype.getEditorBounds = function(state)

Returns the mxRectangle that defines the bounds of the editor.

+ +

getEmptyLabelText

mxCellEditor.prototype.getEmptyLabelText = function (cell)

Returns the initial label value to be used of the label of the given cell is empty.  This label is displayed and cleared on the first keystroke.  This implementation returns emptyLabelText.

Parameters

cellmxCell for which a text for an empty editing box should be returned.
+ +

getEditingCell

mxCellEditor.prototype.getEditingCell = function ()

Returns the cell that is currently being edited or null if no cell is being edited.

+ +

destroy

mxCellEditor.prototype.destroy = function ()

Destroys the editor and removes all associated resources.

+ +
+ + + + + + + + + + +
function mxCellEditor(graph)
Constructs a new in-place editor for the specified graph.
mxCellEditor.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxCellEditor.prototype.textarea
Holds the input textarea.
mxCellEditor.prototype.editingCell
Reference to the mxCell that is currently being edited.
Cells are the elements of the graph model.
mxCellEditor.prototype.trigger
Reference to the event that was used to start editing.
mxCellEditor.prototype.modified
Specifies if the label has been modified.
mxCellEditor.prototype.emptyLabelText
Text to be displayed for empty labels.
mxCellEditor.prototype.textNode
Reference to the label DOM node that has been hidden.
mxCellEditor.prototype.init = function ()
Creates the textarea and installs the event listeners.
mxCellEditor.prototype.isModified = function()
Returns modified.
mxCellEditor.prototype.setModified = function(value)
Sets modified to the specified boolean value.
mxCellEditor.prototype.focusLost = function()
Called if the textarea has lost focus.
mxCellEditor.prototype.startEditing = function(cell,
trigger)
Starts the editor for the given cell.
mxCellEditor.prototype.stopEditing = function(cancel)
Stops the editor and applies the value if cancel is false.
mxCellEditor.prototype.getInitialValue = function(state,
trigger)
Gets the initial editing value for the given cell.
mxCellEditor.prototype.getCurrentValue = function()
Returns the current editing value.
mxCellEditor.prototype.isHideLabel = function(state)
Returns true if the label should be hidden while the cell is being edited.
mxCellEditor.prototype.getMinimumSize = function(state)
Returns the minimum width and height for editing the given state.
mxCellEditor.prototype.getEditorBounds = function(state)
Returns the mxRectangle that defines the bounds of the editor.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxCellEditor.prototype.getEmptyLabelText = function (cell)
Returns the initial label value to be used of the label of the given cell is empty.
mxCellEditor.prototype.getEditingCell = function ()
Returns the cell that is currently being edited or null if no cell is being edited.
mxCellEditor.prototype.destroy = function ()
Destroys the editor and removes all associated resources.
mxGraph.prototype.invokesStopCellEditing
If true, when editing is to be stopped by way of selection changing, data in diagram changing or other means stopCellEditing is invoked, and changes are saved.
mxGraph.prototype.enterStopsCellEditing
If true, pressing the enter key without pressing control or shift will stop editing and accept the new value.
mxGraph.prototype.escapeEnabled
Specifies if mxKeyHandler should invoke escape when the escape key is pressed.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxCellOverlay-js.html b/docs/js-api/files/view/mxCellOverlay-js.html new file mode 100644 index 000000000..6557be47a --- /dev/null +++ b/docs/js-api/files/view/mxCellOverlay-js.html @@ -0,0 +1,75 @@ + + +mxCellOverlay + + + + + + + + + +

mxCellOverlay

Extends mxEventSource to implement a graph overlay, represented by an icon and a tooltip.  Overlays can handle and fire <click> events and are added to the graph using mxGraph.addCellOverlay, and removed using mxGraph.removeCellOverlay, or mxGraph.removeCellOverlays to remove all overlays.  The mxGraph.getCellOverlays function returns the array of overlays for a given cell in a graph.  If multiple overlays exist for the same cell, then getBounds should be overridden in at least one of the overlays.

Overlays appear on top of all cells in a special layer.  If this is not desirable, then the image must be rendered as part of the shape or label of the cell instead.

Example

The following adds a new overlays for a given vertex and selects the cell if the overlay is clicked.

var overlay = new mxCellOverlay(img, html);
+graph.addCellOverlay(vertex, overlay);
+overlay.addListener(mxEvent.CLICK, function(sender, evt)
+{
+  var cell = evt.getProperty('cell');
+  graph.setSelectionCell(cell);
+});

For cell overlays to be printed use mxPrintPreview.printOverlays.

Summary
mxCellOverlayExtends mxEventSource to implement a graph overlay, represented by an icon and a tooltip.
Events
mxEvent.CLICKFires when the user clicks on the overlay.
Functions
mxCellOverlayConstructs a new overlay using the given image and tooltip.
Variables
imageHolds the mxImage to be used as the icon.
tooltipHolds the optional string to be used as the tooltip.
alignHolds the horizontal alignment for the overlay.
verticalAlignHolds the vertical alignment for the overlay.
offsetHolds the offset as an mxPoint.
cursorHolds the cursor for the overlay.
defaultOverlapDefines the overlapping for the overlay, that is, the proportional distance from the origin to the point defined by the alignment.
Functions
getBoundsReturns the bounds of the overlay for the given mxCellState as an mxRectangle.
toStringReturns the textual representation of the overlay to be used as the tooltip.
+ +

Events

+ +

mxEvent.CLICK

Fires when the user clicks on the overlay.  The <code>event</code> property contains the corresponding mouse event and the <code>cell</code> property contains the cell.  For touch devices this is fired if the element receives a touchend event.

+ +

Functions

+ +

mxCellOverlay

function mxCellOverlay(image,
tooltip,
align,
verticalAlign,
offset,
cursor)

Constructs a new overlay using the given image and tooltip.

Parameters

imagemxImage that represents the icon to be displayed.
tooltipOptional string that specifies the tooltip.
alignOptional horizontal alignment for the overlay.  Possible values are <ALIGN_LEFT>, <ALIGN_CENTER> and <ALIGN_RIGHT> (default).
verticalAlignVertical alignment for the overlay.  Possible values are <ALIGN_TOP>, <ALIGN_MIDDLE> and <ALIGN_BOTTOM> (default).
+ +

Variables

+ +

image

mxCellOverlay.prototype.image

Holds the mxImage to be used as the icon.

+ +

tooltip

mxCellOverlay.prototype.tooltip

Holds the optional string to be used as the tooltip.

+ +

align

mxCellOverlay.prototype.align

Holds the horizontal alignment for the overlay.  Default is mxConstants.ALIGN_RIGHT.  For edges, the overlay always appears in the center of the edge.

+ +

verticalAlign

mxCellOverlay.prototype.verticalAlign

Holds the vertical alignment for the overlay.  Default is mxConstants.ALIGN_BOTTOM.  For edges, the overlay always appears in the center of the edge.

+ +

offset

mxCellOverlay.prototype.offset

Holds the offset as an mxPoint.  The offset will be scaled according to the current scale.

+ +

cursor

mxCellOverlay.prototype.cursor

Holds the cursor for the overlay.  Default is ‘help’.

+ +

defaultOverlap

mxCellOverlay.prototype.defaultOverlap

Defines the overlapping for the overlay, that is, the proportional distance from the origin to the point defined by the alignment.  Default is 0.5.

+ +

Functions

+ +

getBounds

mxCellOverlay.prototype.getBounds = function(state)

Returns the bounds of the overlay for the given mxCellState as an mxRectangle.  This should be overridden when using multiple overlays per cell so that the overlays do not overlap.

Parameters

statemxCellState that represents the current state of the associated cell.
+ +

toString

mxCellOverlay.prototype.toString = function()

Returns the textual representation of the overlay to be used as the tooltip.  This implementation returns tooltip.

+ +
+ + + + + + + + + + +
Base class for objects that dispatch named events.
function mxCellOverlay(image,
tooltip,
align,
verticalAlign,
offset,
cursor)
Constructs a new overlay using the given image and tooltip.
mxCellOverlay.prototype.image
Holds the mxImage to be used as the icon.
Encapsulates the URL, width and height of an image.
mxCellOverlay.prototype.tooltip
Holds the optional string to be used as the tooltip.
mxCellOverlay.prototype.align
Holds the horizontal alignment for the overlay.
mxCellOverlay.prototype.verticalAlign
Holds the vertical alignment for the overlay.
mxCellOverlay.prototype.offset
Holds the offset as an mxPoint.
Implements a 2-dimensional vector with double precision coordinates.
mxCellOverlay.prototype.cursor
Holds the cursor for the overlay.
mxCellOverlay.prototype.defaultOverlap
Defines the overlapping for the overlay, that is, the proportional distance from the origin to the point defined by the alignment.
mxCellOverlay.prototype.getBounds = function(state)
Returns the bounds of the overlay for the given mxCellState as an mxRectangle.
Represents the current state of a cell in a given mxGraphView.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxCellOverlay.prototype.toString = function()
Returns the textual representation of the overlay to be used as the tooltip.
mxGraph.prototype.addCellOverlay = function(cell,
overlay)
Adds an mxCellOverlay for the specified cell.
mxGraph.prototype.removeCellOverlay = function(cell,
overlay)
Removes and returns the given mxCellOverlay from the given cell.
mxGraph.prototype.removeCellOverlays = function(cell)
Removes all mxCellOverlays from the given cell.
mxGraph.prototype.getCellOverlays = function(cell)
Returns the array of mxCellOverlays for the given cell or null, if no overlays are defined.
mxPrintPreview.prototype.printOverlays
Specifies if overlays should be printed.
Constant for right horizontal alignment.
Constant for bottom vertical alignment.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxCellRenderer-js.html b/docs/js-api/files/view/mxCellRenderer-js.html new file mode 100644 index 000000000..667bfb57d --- /dev/null +++ b/docs/js-api/files/view/mxCellRenderer-js.html @@ -0,0 +1,119 @@ + + +mxCellRenderer + + + + + + + + + +

mxCellRenderer

Renders cells into a document object model.  The defaultShapes is a global map of shapename, constructor pairs that is used in all instances.  You can get a list of all available shape names using the following code.

In general the cell renderer is in charge of creating, redrawing and destroying the shape and label associated with a cell state, as well as some other graphical objects, namely controls and overlays.  The shape hieararchy in the display (ie. the hierarchy in which the DOM nodes appear in the document) does not reflect the cell hierarchy.  The shapes are a (flat) sequence of shapes and labels inside the draw pane of the graph view, with some exceptions, namely the HTML labels being placed directly inside the graph container for certain browsers.

mxLog.show();
+for (var i in mxCellRenderer.prototype.defaultShapes)
+{
+  mxLog.debug(i);
+}
Summary
mxCellRendererRenders cells into a document object model.
Functions
mxCellRendererarrow, rectangle, ellipse, rhombus, image, line, label, cylinder, swimlane, connector, actor and cloud.
Variables
shapesArray that maps from shape names to shape constructors.
defaultEdgeShapeDefines the default shape for edges.
defaultVertexShapeDefines the default shape for vertices.
defaultShapesStatic array that contains the globally registered shapes which are known to all instances of this class.
Functions
registerShapeRegisters the given constructor under the specified key in this instance of the renderer.
initializeInitializes the display for the given cell state.
initializeShapeInitializes the shape in the given state by calling its init method with the correct container.
orderOrders the DOM node of the shape for the given state according to the position of the corresponding cell in the graph model.
orderEdgeOrders the DOM node of the shape for the given edge’s state according to the mxGraph.keepEdgesInBackground and mxGraph.keepEdgesInBackground rules.
insertStateInserts the given state before the given node into its parent.
createShapeCreates the shape for the given cell state.
getShapeConstructorReturns the constructor to be used for creating the shape.
configureShapeConfigures the shape for the given cell state.
postConfigureShapeReplaces any reserved words used for attributes, eg.
resolveColorResolves special keywords ‘inherit’, ‘indicated’ and ‘swimlane’ and sets the respective color on the shape.
getLabelValueReturns the value to be used for the label.
createLabelCreates the label for the given cell state.
initializeLabelInitiailzes the label with a suitable container.
createCellOverlaysCreates the actual shape for showing the overlay for the given cell state.
initializeOverlayInitializes the given overlay.
installOverlayListenersInstalls the listeners for the given mxCellState, mxCellOverlay and mxShape that represents the overlay.
createControlCreates the control for the given cell state.
initControlInitializes the given control and returns the corresponding DOM node.
isShapeEventReturns true if the event is for the shape of the given state.
isLabelEventReturns true if the event is for the label of the given state.
installListenersInstalls the event listeners for the given cell state.
redrawLabelRedraws the label for the given cell state.
getTextScaleReturns the scaling used for the label of the given state
getLabelBoundsReturns the bounds to be used to draw the label of the given state.
redrawCellOverlaysRedraws the overlays for the given cell state.
redrawControlRedraws the control for the given cell state.
getControlBoundsReturns the bounds to be used to draw the control (folding icon) of the given state.
redrawUpdates the bounds or points and scale of the shapes for the given cell state.
destroyDestroys the shapes associated with the given cell state.
+ +

Functions

+ +

mxCellRenderer

function mxCellRenderer()

Constructs a new cell renderer with the following built-in shapes

arrow, rectangle, ellipse, rhombus, image, line, label, cylinder, swimlane, connector, actor and cloud.

+ +

Variables

+ +

shapes

mxCellRenderer.prototype.shapes

Array that maps from shape names to shape constructors.  All entries in defaultShapes are added to this array.

+ +

defaultEdgeShape

mxCellRenderer.prototype.defaultEdgeShape

Defines the default shape for edges.  Default is mxConnector.

+ +

defaultVertexShape

mxCellRenderer.prototype.defaultVertexShape

Defines the default shape for vertices.  Default is mxRectangleShape.

+ +

defaultShapes

mxCellRenderer.prototype.defaultShapes

Static array that contains the globally registered shapes which are known to all instances of this class.  For adding instance-specific shapes you should use registerShape on the instance.  For adding a shape to this array you can use the following code:

mxCellRenderer.prototype.defaultShapes['myshape'] = myShape;

Where ‘myshape’ is the key under which the shape is to be registered and myShape is the name of the constructor function.

+ +

Functions

+ +

registerShape

mxCellRenderer.prototype.registerShape = function(key,
shape)

Registers the given constructor under the specified key in this instance of the renderer.

Example

this.registerShape(mxConstants.SHAPE_RECTANGLE, mxRectangleShape);

Parameters

keyString representing the shape name.
shapeConstructor of the mxShape subclass.
+ +

initialize

mxCellRenderer.prototype.initialize = function(state)

Initializes the display for the given cell state.  This is required once after the cell state has been created.  This is invoked in mxGraphView.createState.

Parameters

statemxCellState for which the display should be initialized.
+ +

initializeShape

mxCellRenderer.prototype.initializeShape = function(state)

Initializes the shape in the given state by calling its init method with the correct container.

Parameters

statemxCellState for which the shape should be initialized.
+ +

order

mxCellRenderer.prototype.order = function(state)

Orders the DOM node of the shape for the given state according to the position of the corresponding cell in the graph model.

Parameters

statemxCellState whose shape’s DOM node should be ordered.
+ +

orderEdge

mxCellRenderer.prototype.orderEdge = function(state)

Orders the DOM node of the shape for the given edge’s state according to the mxGraph.keepEdgesInBackground and mxGraph.keepEdgesInBackground rules.

Parameters

statemxCellState whose shape’s DOM node should be ordered.
+ +

insertState

mxCellRenderer.prototype.insertState = function(state,
nextNode)

Inserts the given state before the given node into its parent.

Parameters

statemxCellState for which the shape should be created.
+ +

createShape

mxCellRenderer.prototype.createShape = function(state)

Creates the shape for the given cell state.  The shape is configured using configureShape.

Parameters

statemxCellState for which the shape should be created.
+ +

getShapeConstructor

mxCellRenderer.prototype.getShapeConstructor = function(state)

Returns the constructor to be used for creating the shape.

+ +

configureShape

mxCellRenderer.prototype.configureShape = function(state)

Configures the shape for the given cell state.

Parameters

statemxCellState for which the shape should be configured.
+ +

postConfigureShape

mxCellRenderer.prototype.postConfigureShape = function(state)

Replaces any reserved words used for attributes, eg. inherit, indicated or swimlane for colors in the shape for the given state.  This implementation resolves these keywords on the fill, stroke and gradient color keys.

+ +

resolveColor

mxCellRenderer.prototype.resolveColor = function(state,
field,
key)

Resolves special keywords ‘inherit’, ‘indicated’ and ‘swimlane’ and sets the respective color on the shape.

+ +

getLabelValue

mxCellRenderer.prototype.getLabelValue = function(state)

Returns the value to be used for the label.

Parameters

statemxCellState for which the label should be created.
+ +

createLabel

mxCellRenderer.prototype.createLabel = function(state,
value)

Creates the label for the given cell state.

Parameters

statemxCellState for which the label should be created.
+ +

initializeLabel

mxCellRenderer.prototype.initializeLabel = function(state)

Initiailzes the label with a suitable container.

Parameters

statemxCellState whose label should be initialized.
+ +

createCellOverlays

mxCellRenderer.prototype.createCellOverlays = function(state)

Creates the actual shape for showing the overlay for the given cell state.

Parameters

statemxCellState for which the overlay should be created.
+ +

initializeOverlay

mxCellRenderer.prototype.initializeOverlay = function(state,
overlay)

Initializes the given overlay.

Parameters

statemxCellState for which the overlay should be created.
overlaymxImageShape that represents the overlay.
+ +

installOverlayListeners

Installs the listeners for the given mxCellState, mxCellOverlay and mxShape that represents the overlay.

+ +

createControl

mxCellRenderer.prototype.createControl = function(state)

Creates the control for the given cell state.

Parameters

statemxCellState for which the control should be created.
+ +

initControl

mxCellRenderer.prototype.initControl = function(state,
control,
handleEvents,
clickHandler)

Initializes the given control and returns the corresponding DOM node.

Parameters

statemxCellState for which the control should be initialized.
controlmxShape to be initialized.
handleEventsBoolean indicating if mousedown and mousemove should fire events via the graph.
clickHandlerOptional function to implement clicks on the control.
+ +

isShapeEvent

mxCellRenderer.prototype.isShapeEvent = function(state,
evt)

Returns true if the event is for the shape of the given state.  This implementation always returns true.

Parameters

statemxCellState whose shape fired the event.
evtMouse event which was fired.
+ +

isLabelEvent

mxCellRenderer.prototype.isLabelEvent = function(state,
evt)

Returns true if the event is for the label of the given state.  This implementation always returns true.

Parameters

statemxCellState whose label fired the event.
evtMouse event which was fired.
+ +

installListeners

mxCellRenderer.prototype.installListeners = function(state)

Installs the event listeners for the given cell state.

Parameters

statemxCellState for which the event listeners should be isntalled.
+ +

redrawLabel

mxCellRenderer.prototype.redrawLabel = function(state)

Redraws the label for the given cell state.

Parameters

statemxCellState whose label should be redrawn.
+ +

getTextScale

mxCellRenderer.prototype.getTextScale = function(state)

Returns the scaling used for the label of the given state

Parameters

statemxCellState whose label scale should be returned.
+ +

getLabelBounds

mxCellRenderer.prototype.getLabelBounds = function(state)

Returns the bounds to be used to draw the label of the given state.

Parameters

statemxCellState whose label bounds should be returned.
+ +

redrawCellOverlays

mxCellRenderer.prototype.redrawCellOverlays = function(state)

Redraws the overlays for the given cell state.

Parameters

statemxCellState whose overlays should be redrawn.
+ +

redrawControl

mxCellRenderer.prototype.redrawControl = function(state)

Redraws the control for the given cell state.

Parameters

statemxCellState whose control should be redrawn.
+ +

getControlBounds

mxCellRenderer.prototype.getControlBounds = function(state)

Returns the bounds to be used to draw the control (folding icon) of the given state.

+ +

redraw

mxCellRenderer.prototype.redraw = function(state)

Updates the bounds or points and scale of the shapes for the given cell state.  This is called in mxGraphView.validatePoints as the last step of updating all cells.

Parameters

statemxCellState for which the shapes should be updated.
+ +

destroy

mxCellRenderer.prototype.destroy = function(state)

Destroys the shapes associated with the given cell state.

Parameters

statemxCellState for which the shapes should be destroyed.
+ +
+ + + + + + + + + + +
function mxCellRenderer()
arrow, rectangle, ellipse, rhombus, image, line, label, cylinder, swimlane, connector, actor and cloud.
mxCellRenderer.prototype.shapes
Array that maps from shape names to shape constructors.
mxCellRenderer.prototype.defaultEdgeShape
Defines the default shape for edges.
mxCellRenderer.prototype.defaultVertexShape
Defines the default shape for vertices.
mxCellRenderer.prototype.defaultShapes
Static array that contains the globally registered shapes which are known to all instances of this class.
mxCellRenderer.prototype.registerShape = function(key,
shape)
Registers the given constructor under the specified key in this instance of the renderer.
mxCellRenderer.prototype.initialize = function(state)
Initializes the display for the given cell state.
mxCellRenderer.prototype.initializeShape = function(state)
Initializes the shape in the given state by calling its init method with the correct container.
mxCellRenderer.prototype.order = function(state)
Orders the DOM node of the shape for the given state according to the position of the corresponding cell in the graph model.
mxCellRenderer.prototype.orderEdge = function(state)
Orders the DOM node of the shape for the given edge’s state according to the mxGraph.keepEdgesInBackground and mxGraph.keepEdgesInBackground rules.
mxGraph.prototype.keepEdgesInBackground
Specifies if edges should appear in the background regardless of their order in the model.
mxCellRenderer.prototype.insertState = function(state,
nextNode)
Inserts the given state before the given node into its parent.
mxCellRenderer.prototype.createShape = function(state)
Creates the shape for the given cell state.
mxCellRenderer.prototype.getShapeConstructor = function(state)
Returns the constructor to be used for creating the shape.
mxCellRenderer.prototype.configureShape = function(state)
Configures the shape for the given cell state.
mxCellRenderer.prototype.postConfigureShape = function(state)
Replaces any reserved words used for attributes, eg.
mxCellRenderer.prototype.resolveColor = function(state,
field,
key)
Resolves special keywords ‘inherit’, ‘indicated’ and ‘swimlane’ and sets the respective color on the shape.
mxCellRenderer.prototype.getLabelValue = function(state)
Returns the value to be used for the label.
mxCellRenderer.prototype.createLabel = function(state,
value)
Creates the label for the given cell state.
mxCellRenderer.prototype.initializeLabel = function(state)
Initiailzes the label with a suitable container.
mxCellRenderer.prototype.createCellOverlays = function(state)
Creates the actual shape for showing the overlay for the given cell state.
mxCellRenderer.prototype.initializeOverlay = function(state,
overlay)
Initializes the given overlay.
Represents the current state of a cell in a given mxGraphView.
Extends mxEventSource to implement a graph overlay, represented by an icon and a tooltip.
Base class for all shapes.
mxCellRenderer.prototype.createControl = function(state)
Creates the control for the given cell state.
mxCellRenderer.prototype.initControl = function(state,
control,
handleEvents,
clickHandler)
Initializes the given control and returns the corresponding DOM node.
mxCellRenderer.prototype.isShapeEvent = function(state,
evt)
Returns true if the event is for the shape of the given state.
mxCellRenderer.prototype.isLabelEvent = function(state,
evt)
Returns true if the event is for the label of the given state.
mxCellRenderer.prototype.installListeners = function(state)
Installs the event listeners for the given cell state.
mxCellRenderer.prototype.redrawLabel = function(state)
Redraws the label for the given cell state.
mxCellRenderer.prototype.getTextScale = function(state)
Returns the scaling used for the label of the given state
mxCellRenderer.prototype.getLabelBounds = function(state)
Returns the bounds to be used to draw the label of the given state.
mxCellRenderer.prototype.redrawCellOverlays = function(state)
Redraws the overlays for the given cell state.
mxCellRenderer.prototype.redrawControl = function(state)
Redraws the control for the given cell state.
mxCellRenderer.prototype.getControlBounds = function(state)
Returns the bounds to be used to draw the control (folding icon) of the given state.
mxCellRenderer.prototype.redraw = function(state)
Updates the bounds or points and scale of the shapes for the given cell state.
mxCellRenderer.prototype.destroy = function(state)
Destroys the shapes associated with the given cell state.
Extends mxShape to implement a connector shape.
Extends mxShape to implement a rectangle shape.
Extends mxShape to implement an image shape.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxCellState-js.html b/docs/js-api/files/view/mxCellState-js.html new file mode 100644 index 000000000..12ca6f94e --- /dev/null +++ b/docs/js-api/files/view/mxCellState-js.html @@ -0,0 +1,95 @@ + + +mxCellState + + + + + + + + + +

mxCellState

Represents the current state of a cell in a given mxGraphView.

For edges, the edge label position is stored in absoluteOffset.

The size for oversize labels can be retrieved using the boundingBox property of the text field as shown below.

var bbox = (state.text != null) ? state.text.boundingBox : null;
Summary
mxCellStateRepresents the current state of a cell in a given mxGraphView.
Functions
mxCellStateConstructs a new object that represents the current state of the given cell in the specified view.
Variables
viewReference to the enclosing mxGraphView.
cellReference to the mxCell that is represented by this state.
styleContains an array of key, value pairs that represent the style of the cell.
invalidSpecifies if the state is invalid.
invalidOrderSpecifies if the cell has an invalid order.
orderChangedSpecifies if the cell has changed order and the display needs to be updated.
originmxPoint that holds the origin for all child cells.
absolutePointsHolds an array of mxPoints that represent the absolute points of an edge.
absoluteOffsetmxPoint that holds the absolute offset.
visibleSourceStateCaches the visible source terminal state.
visibleTargetStateCaches the visible target terminal state.
terminalDistanceCaches the distance between the end points for an edge.
lengthCaches the length of an edge.
segmentsArray of numbers that represent the cached length of each segment of the edge.
shapeHolds the mxShape that represents the cell graphically.
textHolds the mxText that represents the label of the cell.
Functions
getPerimeterBoundsReturns the mxRectangle that should be used as the perimeter of the cell.
setAbsoluteTerminalPointSets the first or last point in absolutePoints depending on isSource.
setCursorSets the given cursor on the shape and text shape.
getVisibleTerminalReturns the visible source or target terminal cell.
getVisibleTerminalStateReturns the visible source or target terminal state.
setVisibleTerminalStateSets the visible source or target terminal state.
destroyDestroys the state and all associated resources.
cloneReturns a clone of this mxPoint.
+ +

Functions

+ +

mxCellState

function mxCellState(view,
cell,
style)

Constructs a new object that represents the current state of the given cell in the specified view.

Parameters

viewmxGraphView that contains the state.
cellmxCell that this state represents.
styleArray of key, value pairs that constitute the style.
+ +

Variables

+ +

view

mxCellState.prototype.view

Reference to the enclosing mxGraphView.

+ +

cell

mxCellState.prototype.cell

Reference to the mxCell that is represented by this state.

+ +

style

mxCellState.prototype.style

Contains an array of key, value pairs that represent the style of the cell.

+ +

invalid

mxCellState.prototype.invalid

Specifies if the state is invalid.  Default is true.

+ +

invalidOrder

mxCellState.prototype.invalidOrder

Specifies if the cell has an invalid order.  For internal use.  Default is false.

+ +

orderChanged

mxCellState.prototype.orderChanged

Specifies if the cell has changed order and the display needs to be updated.

+ +

origin

mxCellState.prototype.origin

mxPoint that holds the origin for all child cells.  Default is a new empty mxPoint.

+ +

absolutePoints

mxCellState.prototype.absolutePoints

Holds an array of mxPoints that represent the absolute points of an edge.

+ +

absoluteOffset

mxCellState.prototype.absoluteOffset

mxPoint that holds the absolute offset.  For edges, this is the absolute coordinates of the label position.  For vertices, this is the offset of the label relative to the top, left corner of the vertex.

+ +

visibleSourceState

mxCellState.prototype.visibleSourceState

Caches the visible source terminal state.

+ +

visibleTargetState

mxCellState.prototype.visibleTargetState

Caches the visible target terminal state.

+ +

terminalDistance

mxCellState.prototype.terminalDistance

Caches the distance between the end points for an edge.

+ +

length

mxCellState.prototype.length

Caches the length of an edge.

+ +

segments

mxCellState.prototype.segments

Array of numbers that represent the cached length of each segment of the edge.

+ +

shape

mxCellState.prototype.shape

Holds the mxShape that represents the cell graphically.

+ +

text

mxCellState.prototype.text

Holds the mxText that represents the label of the cell.  Thi smay be null if the cell has no label.

+ +

Functions

+ +

getPerimeterBounds

mxCellState.prototype.getPerimeterBounds = function (border,
bounds)

Returns the mxRectangle that should be used as the perimeter of the cell.

Parameters

borderOptional border to be added around the perimeter bounds.
boundsOptional mxRectangle to be used as the initial bounds.
+ +

setAbsoluteTerminalPoint

mxCellState.prototype.setAbsoluteTerminalPoint = function (point,
isSource)

Sets the first or last point in absolutePoints depending on isSource.

Parameters

pointmxPoint that represents the terminal point.
isSourceBoolean that specifies if the first or last point should be assigned.
+ +

setCursor

mxCellState.prototype.setCursor = function (cursor)

Sets the given cursor on the shape and text shape.

+ +

getVisibleTerminal

mxCellState.prototype.getVisibleTerminal = function (source)

Returns the visible source or target terminal cell.

Parameters

sourceBoolean that specifies if the source or target cell should be returned.
+ +

getVisibleTerminalState

mxCellState.prototype.getVisibleTerminalState = function (source)

Returns the visible source or target terminal state.

Parameters

sourceBoolean that specifies if the source or target state should be returned.
+ +

setVisibleTerminalState

mxCellState.prototype.setVisibleTerminalState = function (terminalState,
source)

Sets the visible source or target terminal state.

Parameters

terminalStatemxCellState that represents the terminal.
sourceBoolean that specifies if the source or target state should be set.
+ +

destroy

mxCellState.prototype.destroy = function ()

Destroys the state and all associated resources.

+ +

clone

mxCellState.prototype.clone = function()

Returns a clone of this mxPoint.

+ +
+ + + + + + + + + + +
Extends mxEventSource to implement a view for a graph.
function mxCellState(view,
cell,
style)
Constructs a new object that represents the current state of the given cell in the specified view.
mxCellState.prototype.view
Reference to the enclosing mxGraphView.
mxCellState.prototype.cell
Reference to the mxCell that is represented by this state.
Cells are the elements of the graph model.
mxCellState.prototype.style
Contains an array of key, value pairs that represent the style of the cell.
mxCellState.prototype.invalid
Specifies if the state is invalid.
mxCellState.prototype.invalidOrder
Specifies if the cell has an invalid order.
mxCellState.prototype.orderChanged
Specifies if the cell has changed order and the display needs to be updated.
mxCellState.prototype.origin
mxPoint that holds the origin for all child cells.
Implements a 2-dimensional vector with double precision coordinates.
mxCellState.prototype.absolutePoints
Holds an array of mxPoints that represent the absolute points of an edge.
mxCellState.prototype.absoluteOffset
mxPoint that holds the absolute offset.
mxCellState.prototype.visibleSourceState
Caches the visible source terminal state.
mxCellState.prototype.visibleTargetState
Caches the visible target terminal state.
mxCellState.prototype.terminalDistance
Caches the distance between the end points for an edge.
mxCellState.prototype.length
Caches the length of an edge.
mxCellState.prototype.segments
Array of numbers that represent the cached length of each segment of the edge.
mxCellState.prototype.shape
Holds the mxShape that represents the cell graphically.
Base class for all shapes.
mxCellState.prototype.text
Holds the mxText that represents the label of the cell.
Extends mxShape to implement a text shape.
mxCellState.prototype.getPerimeterBounds = function (border,
bounds)
Returns the mxRectangle that should be used as the perimeter of the cell.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxCellState.prototype.setAbsoluteTerminalPoint = function (point,
isSource)
Sets the first or last point in absolutePoints depending on isSource.
mxCellState.prototype.setCursor = function (cursor)
Sets the given cursor on the shape and text shape.
mxCellState.prototype.getVisibleTerminal = function (source)
Returns the visible source or target terminal cell.
mxCellState.prototype.getVisibleTerminalState = function (source)
Returns the visible source or target terminal state.
mxCellState.prototype.setVisibleTerminalState = function (terminalState,
source)
Sets the visible source or target terminal state.
mxCellState.prototype.destroy = function ()
Destroys the state and all associated resources.
mxCellState.prototype.clone = function()
Returns a clone of this mxPoint.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxCellStatePreview-js.html b/docs/js-api/files/view/mxCellStatePreview-js.html new file mode 100644 index 000000000..1c37fd574 --- /dev/null +++ b/docs/js-api/files/view/mxCellStatePreview-js.html @@ -0,0 +1,65 @@ + + +mxCellStatePreview + + + + + + + + + +

mxCellStatePreview

Implements a live preview for moving cells.

Summary
mxCellStatePreviewImplements a live preview for moving cells.
Functions
mxCellStatePreviewConstructs a move preview for the given graph.
Variables
graphReference to the enclosing mxGraph.
deltasReference to the enclosing mxGraph.
countContains the number of entries in the map.
Functions
isEmptyReturns true if this contains no entries.
moveState
show
translateState
revalidateState
addEdges
+ +

Functions

+ +

mxCellStatePreview

function mxCellStatePreview(graph)

Constructs a move preview for the given graph.

Parameters

graphReference to the enclosing mxGraph.
+ +

Variables

+ +

graph

mxCellStatePreview.prototype.graph

Reference to the enclosing mxGraph.

+ +

deltas

mxCellStatePreview.prototype.deltas

Reference to the enclosing mxGraph.

+ +

count

mxCellStatePreview.prototype.count

Contains the number of entries in the map.

+ +

Functions

+ +

isEmpty

mxCellStatePreview.prototype.isEmpty = function()

Returns true if this contains no entries.

+ +

moveState

mxCellStatePreview.prototype.moveState = function(state,
dx,
dy,
add,
includeEdges)
+ +

show

mxCellStatePreview.prototype.show = function(visitor)
+ +

translateState

mxCellStatePreview.prototype.translateState = function(parentState,
state,
dx,
dy)
+ +

revalidateState

mxCellStatePreview.prototype.revalidateState = function(parentState,
state,
dx,
dy,
visitor)
+ +

addEdges

mxCellStatePreview.prototype.addEdges = function(state)
+ +
+ + + + + + + + + + +
function mxCellStatePreview(graph)
Constructs a move preview for the given graph.
mxCellStatePreview.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxCellStatePreview.prototype.deltas
Reference to the enclosing mxGraph.
mxCellStatePreview.prototype.count
Contains the number of entries in the map.
mxCellStatePreview.prototype.isEmpty = function()
Returns true if this contains no entries.
mxCellStatePreview.prototype.moveState = function(state,
dx,
dy,
add,
includeEdges)
mxCellStatePreview.prototype.show = function(visitor)
mxCellStatePreview.prototype.translateState = function(parentState,
state,
dx,
dy)
mxCellStatePreview.prototype.revalidateState = function(parentState,
state,
dx,
dy,
visitor)
mxCellStatePreview.prototype.addEdges = function(state)
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxConnectionConstraint-js.html b/docs/js-api/files/view/mxConnectionConstraint-js.html new file mode 100644 index 000000000..c4904b38b --- /dev/null +++ b/docs/js-api/files/view/mxConnectionConstraint-js.html @@ -0,0 +1,49 @@ + + +mxConnectionConstraint + + + + + + + + + +

mxConnectionConstraint

Defines an object that contains the constraints about how to connect one side of an edge to its terminal.

Summary
mxConnectionConstraintDefines an object that contains the constraints about how to connect one side of an edge to its terminal.
Functions
mxConnectionConstraintConstructs a new connection constraint for the given point and boolean arguments.
Variables
pointmxPoint that specifies the fixed location of the connection point.
perimeterBoolean that specifies if the point should be projected onto the perimeter of the terminal.
+ +

Functions

+ +

mxConnectionConstraint

function mxConnectionConstraint(point,
perimeter)

Constructs a new connection constraint for the given point and boolean arguments.

Parameters

pointOptional mxPoint that specifies the fixed location of the point in relative coordinates.  Default is null.
perimeterOptional boolean that specifies if the fixed point should be projected onto the perimeter of the terminal.  Default is true.
+ +

Variables

+ +

point

mxConnectionConstraint.prototype.point

mxPoint that specifies the fixed location of the connection point.

+ +

perimeter

mxConnectionConstraint.prototype.perimeter

Boolean that specifies if the point should be projected onto the perimeter of the terminal.

+ +
+ + + + + + + + + + +
function mxConnectionConstraint(point,
perimeter)
Constructs a new connection constraint for the given point and boolean arguments.
mxConnectionConstraint.prototype.point
mxPoint that specifies the fixed location of the connection point.
Implements a 2-dimensional vector with double precision coordinates.
mxConnectionConstraint.prototype.perimeter
Boolean that specifies if the point should be projected onto the perimeter of the terminal.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxEdgeStyle-js.html b/docs/js-api/files/view/mxEdgeStyle-js.html new file mode 100644 index 000000000..921b08902 --- /dev/null +++ b/docs/js-api/files/view/mxEdgeStyle-js.html @@ -0,0 +1,70 @@ + + +mxEdgeStyle + + + + + + + + + +

mxEdgeStyle

Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.

Example

var style = stylesheet.getDefaultEdgeStyle();
+style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;

Sets the default edge style to ElbowConnector.

Custom edge style

To write a custom edge style, a function must be added to the mxEdgeStyle object as follows:

mxEdgeStyle.MyStyle = function(state, source, target, points, result)
+{
+  if (source != null && target != null)
+  {
+    var pt = new mxPoint(target.getCenterX(), source.getCenterY());
+
+    if (mxUtils.contains(source, pt.x, pt.y))
+    {
+      pt.y = source.y + source.height;
+    }
+
+    result.push(pt);
+  }
+};

In the above example, a right angle is created using a point on the horizontal center of the target vertex and the vertical center of the source vertex.  The code checks if that point intersects the source vertex and makes the edge straight if it does.  The point is then added into the result array, which acts as the return value of the function.

The new edge style should then be registered in the mxStyleRegistry as follows

mxStyleRegistry.putValue('myEdgeStyle', mxEdgeStyle.MyStyle);

The custom edge style above can now be used in a specific edge as follows

model.setStyle(edge, 'edgeStyle=myEdgeStyle');

Note that the key of the mxStyleRegistry entry for the function should be used in string values, unless mxGraphView.allowEval is true, in which case you can also use mxEdgeStyle.MyStyle for the value in the cell style above.

Or it can be used for all edges in the graph as follows

var style = graph.getStylesheet().getDefaultEdgeStyle();
+style[mxConstants.STYLE_EDGE] = mxEdgeStyle.MyStyle;

Note that the object can be used directly when programmatically setting the value, but the key in the mxStyleRegistry should be used when setting the value via a key, value pair in a cell style.

Summary
mxEdgeStyleProvides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.
Functions
EntityRelationImplements an entity relation style for edges (as used in database schema diagrams).
LoopImplements a self-reference, aka.
ElbowConnectorUses either SideToSide or TopToBottom depending on the horizontal flag in the cell style.
SideToSideImplements a vertical elbow edge.
TopToBottomImplements a horizontal elbow edge.
SegmentConnectorImplements an orthogonal edge style.
OrthConnectorImplements a local orthogonal router between the given cells.
+ +

Functions

+ +

EntityRelation

EntityRelation: function (state,
source,
target,
points,
result)

Implements an entity relation style for edges (as used in database schema diagrams).  At the time the function is called, the result array contains a placeholder (null) for the first absolute point, that is, the point where the edge and source terminal are connected.  The implementation of the style then adds all intermediate waypoints except for the last point, that is, the connection point between the edge and the target terminal.  The first ant the last point in the result array are then replaced with mxPoints that take into account the terminal’s perimeter and next point on the edge.

Parameters

statemxCellState that represents the edge to be updated.
sourcemxCellState that represents the source terminal.
targetmxCellState that represents the target terminal.
pointsList of relative control points.
resultArray of mxPoints that represent the actual points of the edge.
+ +

Loop

Loop: function (state,
source,
target,
points,
result)

Implements a self-reference, aka. loop.

+ +

ElbowConnector

ElbowConnector: function (state,
source,
target,
points,
result)

Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell style.  SideToSide is used if horizontal is true or unspecified.  See EntityRelation for a description of the parameters.

+ +

SideToSide

SideToSide: function (state,
source,
target,
points,
result)

Implements a vertical elbow edge.  See EntityRelation for a description of the parameters.

+ +

TopToBottom

TopToBottom: function(state,
source,
target,
points,
result)

Implements a horizontal elbow edge.  See EntityRelation for a description of the parameters.

+ +

SegmentConnector

SegmentConnector: function(state,
source,
target,
hints,
result)

Implements an orthogonal edge style.  Use <mxEdgeSegmentHandler> as an interactive handler for this style.

+ +

OrthConnector

OrthConnector: function(state,
source,
target,
points,
result)

Implements a local orthogonal router between the given cells.

+ +
+ + + + + + + + + + +
Defines the key for the edge style.
EntityRelation: function (state,
source,
target,
points,
result)
Implements an entity relation style for edges (as used in database schema diagrams).
Loop: function (state,
source,
target,
points,
result)
Implements a self-reference, aka.
ElbowConnector: function (state,
source,
target,
points,
result)
Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell style.
SideToSide: function (state,
source,
target,
points,
result)
Implements a vertical elbow edge.
TopToBottom: function(state,
source,
target,
points,
result)
Implements a horizontal elbow edge.
SegmentConnector: function(state,
source,
target,
hints,
result)
Implements an orthogonal edge style.
OrthConnector: function(state,
source,
target,
points,
result)
Implements a local orthogonal router between the given cells.
Singleton class that acts as a global converter from string to object values in a style.
mxGraphView.prototype.allowEval
Specifies if string values in cell styles should be evaluated using mxUtils.eval.
Represents the current state of a cell in a given mxGraphView.
Implements a 2-dimensional vector with double precision coordinates.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxGraph-js.html b/docs/js-api/files/view/mxGraph-js.html new file mode 100644 index 000000000..f72b161b4 --- /dev/null +++ b/docs/js-api/files/view/mxGraph-js.html @@ -0,0 +1,1208 @@ + + +mxGraph + + + + + + + + + +

mxGraph

Extends mxEventSource to implement a graph component for the browser.  This is the main class of the package.  To activate panning and connections use setPanning and setConnectable.  For rubberband selection you must create a new instance of mxRubberband.  The following listeners are added to mouseListeners by default:

These listeners will be called in the above order if they are enabled.

Background Images

To display a background image, set the image, image width and image height using setBackgroundImage.  If one of the above values has changed then the view’s mxGraphView.validate should be invoked.

Cell Images

To use images in cells, a shape must be specified in the default vertex style (or any named style).  Possible shapes are mxConstants.SHAPE_IMAGE and mxConstants.SHAPE_LABEL.  The code to change the shape used in the default vertex style, the following code is used:

var style = graph.getStylesheet().getDefaultVertexStyle();
+style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_IMAGE;

For the default vertex style, the image to be displayed can be specified in a cell’s style using the mxConstants.STYLE_IMAGE key and the image URL as a value, for example:

image=http://www.example.com/image.gif

For a named style, the the stylename must be the first element of the cell style:

stylename;image=http://www.example.com/image.gif

A cell style can have any number of key=value pairs added, divided by a semicolon as follows:

[stylename;|key=value;]

Labels

The cell labels are defined by getLabel which uses convertValueToString if labelsVisible is true.  If a label must be rendered as HTML markup, then isHtmlLabel should return true for the respective cell.  If all labels contain HTML markup, htmlLabels can be set to true.  NOTE: Enabling HTML labels carries a possible security risk (see the section on security in the manual).

If wrapping is needed for a label, then isHtmlLabel and isWrapping must return true for the cell whose label should be wrapped.  See isWrapping for an example.

If clipping is needed to keep the rendering of a HTML label inside the bounds of its vertex, then <isClipping> should return true for the respective cell.

By default, edge labels are movable and vertex labels are fixed.  This can be changed by setting edgeLabelsMovable and vertexLabelsMovable, or by overriding isLabelMovable.

In-place Editing

In-place editing is started with a doubleclick or by typing F2.  Programmatically, <edit> is used to check if the cell is editable (isCellEditable) and call startEditingAtCell, which invokes mxCellEditor.startEditing.  The editor uses the value returned by getEditingValue as the editing value.

After in-place editing, labelChanged is called, which invokes mxGraphModel.setValue, which in turn calls mxGraphModel.valueForCellChanged via mxValueChange.

The event that triggers in-place editing is passed through to the cellEditor, which may take special actions depending on the type of the event or mouse location, and is also passed to getEditingValue.  The event is then passed back to the event processing functions which can perform specific actions based on the trigger event.

Tooltips

Tooltips are implemented by getTooltip, which calls getTooltipForCell if a cell is under the mousepointer.  The default implementation checks if the cell has a getTooltip function and calls it if it exists.  Hence, in order to provide custom tooltips, the cell must provide a getTooltip function, or one of the two above functions must be overridden.

Typically, for custom cell tooltips, the latter function is overridden as follows:

graph.getTooltipForCell = function(cell)
+{
+  var label = this.convertValueToString(cell);
+  return 'Tooltip for '+label;
+}

When using a config file, the function is overridden in the mxGraph section using the following entry:

<add as="getTooltipForCell"><![CDATA[
+  function(cell)
+  {
+    var label = this.convertValueToString(cell);
+    return 'Tooltip for '+label;
+  }
+]]></add>

”this” refers to the graph in the implementation, so for example to check if a cell is an edge, you use this.getModel().isEdge(cell)

For replacing the default implementation of getTooltipForCell (rather than replacing the function on a specific instance), the following code should be used after loading the JavaScript files, but before creating a new mxGraph instance using mxGraph:

mxGraph.prototype.getTooltipForCell = function(cell)
+{
+  var label = this.convertValueToString(cell);
+  return 'Tooltip for '+label;
+}

Shapes & Styles

The implementation of new shapes is demonstrated in the examples.  We’ll assume that we have implemented a custom shape with the name BoxShape which we want to use for drawing vertices.  To use this shape, it must first be registered in the cell renderer as follows:

graph.cellRenderer.registerShape('box', BoxShape);

The code registers the BoxShape constructor under the name box in the cell renderer of the graph.  The shape can now be referenced using the shape-key in a style definition.  (The cell renderer contains a set of additional shapes, namely one for each constant with a SHAPE-prefix in mxConstants.)

Styles are a collection of key, value pairs and a stylesheet is a collection of named styles.  The names are referenced by the cellstyle, which is stored in mxCell.style with the following format: [stylename;|key=value;].  The string is resolved to a collection of key, value pairs, where the keys are overridden with the values in the string.

When introducing a new shape, the name under which the shape is registered must be used in the stylesheet.  There are three ways of doing this:

  • By changing the default style, so that all vertices will use the new shape
  • By defining a new style, so that only vertices with the respective cellstyle will use the new shape
  • By using shape=box in the cellstyle’s optional list of key, value pairs to be overridden

In the first case, the code to fetch and modify the default style for vertices is as follows:

var style = graph.getStylesheet().getDefaultVertexStyle();
+style[mxConstants.STYLE_SHAPE] = 'box';

The code takes the default vertex style, which is used for all vertices that do not have a specific cellstyle, and modifies the value for the shape-key in-place to use the new BoxShape for drawing vertices.  This is done by assigning the box value in the second line, which refers to the name of the BoxShape in the cell renderer.

In the second case, a collection of key, value pairs is created and then added to the stylesheet under a new name.  In order to distinguish the shapename and the stylename we’ll use boxstyle for the stylename:

var style = new Object();
+style[mxConstants.STYLE_SHAPE] = 'box';
+style[mxConstants.STYLE_STROKECOLOR] = '#000000';
+style[mxConstants.STYLE_FONTCOLOR] = '#000000';
+graph.getStylesheet().putCellStyle('boxstyle', style);

The code adds a new style with the name boxstyle to the stylesheet.  To use this style with a cell, it must be referenced from the cellstyle as follows:

var vertex = graph.insertVertex(parent, null, 'Hello, World!', 20, 20, 80, 20,
+             'boxstyle');

To summarize, each new shape must be registered in the mxCellRenderer with a unique name.  That name is then used as the value of the shape-key in a default or custom style.  If there are multiple custom shapes, then there should be a separate style for each shape.

Inheriting Styles

For fill-, stroke-, gradient- and indicatorColors special keywords can be used.  The inherit keyword for one of these colors will inherit the color for the same key from the parent cell.  The swimlane keyword does the same, but inherits from the nearest swimlane in the ancestor hierarchy.  Finally, the indicated keyword will use the color of the indicator as the color for the given key.

Scrollbars

The <containers> overflow CSS property defines if scrollbars are used to display the graph.  For values of ‘auto’ or ‘scroll’, the scrollbars will be shown.  Note that the resizeContainer flag is normally not used together with scrollbars, as it will resize the container to match the size of the graph after each change.

Multiplicities and Validation

To control the possible connections in mxGraph, getEdgeValidationError is used.  The default implementation of the function uses multiplicities, which is an array of mxMultiplicity.  Using this class allows to establish simple multiplicities, which are enforced by the graph.

The mxMultiplicity uses <mxCell.is> to determine for which terminals it applies.  The default implementation of <mxCell.is> works with DOM nodes (XML nodes) and checks if the given type parameter matches the nodeName of the node (case insensitive).  Optionally, an attributename and value can be specified which are also checked.

getEdgeValidationError is called whenever the connectivity of an edge changes.  It returns an empty string or an error message if the edge is invalid or null if the edge is valid.  If the returned string is not empty then it is displayed as an error message.

mxMultiplicity allows to specify the multiplicity between a terminal and its possible neighbors.  For example, if any rectangle may only be connected to, say, a maximum of two circles you can add the following rule to multiplicities:

graph.multiplicities.push(new mxMultiplicity(
+  true, 'rectangle', null, null, 0, 2, ['circle'],
+  'Only 2 targets allowed',
+  'Only shape targets allowed'));

This will display the first error message whenever a rectangle is connected to more than two circles and the second error message if a rectangle is connected to anything but a circle.

For certain multiplicities, such as a minimum of 1 connection, which cannot be enforced at cell creation time (unless the cell is created together with the connection), mxGraph offers <validate> which checks all multiplicities for all cells and displays the respective error messages in an overlay icon on the cells.

If a cell is collapsed and contains validation errors, a respective warning icon is attached to the collapsed cell.

Auto-Layout

For automatic layout, the <getLayout> hook is provided in mxLayoutManager.  It can be overridden to return a layout algorithm for the children of a given cell.

Unconnected edges

The default values for all switches are designed to meet the requirements of general diagram drawing applications.  A very typical set of settings to avoid edges that are not connected is the following:

graph.setAllowDanglingEdges(false);
+graph.setDisconnectOnMove(false);

Setting the cloneInvalidEdges switch to true is optional.  This switch controls if edges are inserted after a copy, paste or clone-drag if they are invalid.  For example, edges are invalid if copied or control-dragged without having selected the corresponding terminals and allowDanglingEdges is false, in which case the edges will not be cloned if the switch is false.

Output

To produce an XML representation for a diagram, the following code can be used.

var enc = new mxCodec(mxUtils.createXmlDocument());
+var node = enc.encode(graph.getModel());

This will produce an XML node than can be handled using the DOM API or turned into a string representation using the following code:

var xml = mxUtils.getXml(node);

To obtain a formatted string, mxUtils.getPrettyXml can be used instead.

This string can now be stored in a local persistent storage (for example using Google Gears) or it can be passed to a backend using mxUtils.post as follows.  The url variable is the URL of the Java servlet, PHP page or HTTP handler, depending on the server.

var xmlString = encodeURIComponent(mxUtils.getXml(node));
+mxUtils.post(url, 'xml='+xmlString, function(req)
+{
+  // Process server response using req of type mxXmlRequest
+});

Input

To load an XML representation of a diagram into an existing graph object mxUtils.load can be used as follows.  The url variable is the URL of the Java servlet, PHP page or HTTP handler that produces the XML string.

var xmlDoc = mxUtils.load(url).getXml();
+var node = xmlDoc.documentElement;
+var dec = new mxCodec(node.ownerDocument);
+dec.decode(node, graph.getModel());

For creating a page that loads the client and a diagram using a single request please refer to the deployment examples in the backends.

Functional dependencies

Resources

resources/graphLanguage resources for mxGraph
Summary
mxGraphExtends mxEventSource to implement a graph component for the browser.
Events
mxEvent.ROOTFires if the root in the model has changed.
mxEvent.ALIGN_CELLSFires between begin- and endUpdate in alignCells.
mxEvent.FLIP_EDGEFires between begin- and endUpdate in flipEdge.
mxEvent.ORDER_CELLSFires between begin- and endUpdate in orderCells.
mxEvent.CELLS_ORDEREDFires between begin- and endUpdate in cellsOrdered.
mxEvent.GROUP_CELLSFires between begin- and endUpdate in groupCells.
mxEvent.UNGROUP_CELLSFires between begin- and endUpdate in ungroupCells.
mxEvent.REMOVE_CELLS_FROM_PARENTFires between begin- and endUpdate in removeCellsFromParent.
mxEvent.ADD_CELLSFires between begin- and endUpdate in addCells.
mxEvent.CELLS_ADDEDFires between begin- and endUpdate in cellsAdded.
mxEvent.REMOVE_CELLSFires between begin- and endUpdate in removeCells.
mxEvent.CELLS_REMOVEDFires between begin- and endUpdate in cellsRemoved.
mxEvent.SPLIT_EDGEFires between begin- and endUpdate in splitEdge.
mxEvent.TOGGLE_CELLSFires between begin- and endUpdate in toggleCells.
mxEvent.FOLD_CELLSFires between begin- and endUpdate in foldCells.
mxEvent.CELLS_FOLDEDFires between begin- and endUpdate in cellsFolded.
mxEvent.UPDATE_CELL_SIZEFires between begin- and endUpdate in updateCellSize.
mxEvent.RESIZE_CELLSFires between begin- and endUpdate in resizeCells.
mxEvent.CELLS_RESIZEDFires between begin- and endUpdate in cellsResized.
mxEvent.MOVE_CELLSFires between begin- and endUpdate in moveCells.
mxEvent.CELLS_MOVEDFires between begin- and endUpdate in cellsMoved.
mxEvent.CONNECT_CELLFires between begin- and endUpdate in connectCell.
mxEvent.CELL_CONNECTEDFires between begin- and endUpdate in cellConnected.
mxEvent.REFRESHFires after refresh was executed.
mxEvent.CLICKFires in click after a click event.
mxEvent.DOUBLE_CLICKFires in dblClick after a double click.
mxEvent.SIZEFires after sizeDidChange was executed.
mxEvent.START_EDITINGFires before the in-place editor starts in startEditingAtCell.
mxEvent.LABEL_CHANGEDFires between begin- and endUpdate in cellLabelChanged.
mxEvent.ADD_OVERLAYFires after an overlay is added in addCellOverlay.
mxEvent.REMOVE_OVERLAYFires after an overlay is removed in removeCellOverlay and removeCellOverlays.
mxGraphConstructs a new mxGraph in the specified container.
EMPTY_ARRAYImmutable empty array instance.
Variables
mouseListenersHolds the mouse event listeners.
isMouseDownHolds the state of the mouse button.
modelHolds the mxGraphModel that contains the cells to be displayed.
viewHolds the mxGraphView that caches the mxCellStates for the cells.
stylesheetHolds the mxStylesheet that defines the appearance of the cells.
selectionModelHolds the mxGraphSelectionModel that models the current selection.
cellEditorHolds the mxCellEditor that is used as the in-place editing.
cellRendererHolds the mxCellRenderer for rendering the cells in the graph.
multiplicitiesAn array of mxMultiplicities describing the allowed connections in a graph.
renderHintRenderHint as it was passed to the constructor.
dialectDialect to be used for drawing the graph.
gridSizeSpecifies the grid size.
gridEnabledSpecifies if the grid is enabled.
portsEnabledSpecifies if ports are enabled.
doubleTapEnabledSpecifies if double taps on touch-based devices should be handled.
doubleTapTimeoutSpecifies the timeout for double taps.
doubleTapToleranceSpecifies the tolerance for double taps.
lastTouchXHolds the x-coordinate of the last touch event for double tap detection.
lastTouchXHolds the y-coordinate of the last touch event for double tap detection.
lastTouchTimeHolds the time of the last touch event for double click detection.
gestureEnabledSpecifies if the handleGesture method should be invoked.
toleranceTolerance for a move to be handled as a single click.
defaultOverlapValue returned by getOverlap if isAllowOverlapParent returns true for the given cell.
defaultParentSpecifies the default parent to be used to insert new cells.
alternateEdgeStyleSpecifies the alternate edge style to be used if the main control point on an edge is being doubleclicked.
backgroundImageSpecifies the mxImage to be returned by getBackgroundImage.
pageVisibleSpecifies if the background page should be visible.
pageBreaksVisibleSpecifies if a dashed line should be drawn between multiple pages.
pageBreakColorSpecifies the color for page breaks.
pageBreakDashedSpecifies the page breaks should be dashed.
minPageBreakDistSpecifies the minimum distance for page breaks to be visible.
preferPageSizeSpecifies if the graph size should be rounded to the next page number in sizeDidChange.
pageFormatSpecifies the page format for the background page.
pageScaleSpecifies the scale of the background page.
enabledSpecifies the return value for isEnabled.
escapeEnabledSpecifies if mxKeyHandler should invoke escape when the escape key is pressed.
invokesStopCellEditingIf true, when editing is to be stopped by way of selection changing, data in diagram changing or other means stopCellEditing is invoked, and changes are saved.
enterStopsCellEditingIf true, pressing the enter key without pressing control or shift will stop editing and accept the new value.
useScrollbarsForPanningSpecifies if scrollbars should be used for panning in panGraph if any scrollbars are available.
exportEnabledSpecifies the return value for canExportCell.
importEnabledSpecifies the return value for canImportCell.
cellsLockedSpecifies the return value for isCellLocked.
cellsCloneableSpecifies the return value for isCellCloneable.
foldingEnabledSpecifies if folding (collapse and expand via an image icon in the graph should be enabled).
cellsEditableSpecifies the return value for isCellEditable.
cellsDeletableSpecifies the return value for isCellDeletable.
cellsMovableSpecifies the return value for isCellMovable.
edgeLabelsMovableSpecifies the return value for edges in isLabelMovable.
vertexLabelsMovableSpecifies the return value for vertices in isLabelMovable.
dropEnabledSpecifies the return value for isDropEnabled.
splitEnabledSpecifies if dropping onto edges should be enabled.
cellsResizableSpecifies the return value for isCellResizable.
cellsBendableSpecifies the return value for isCellsBendable.
cellsSelectableSpecifies the return value for isCellSelectable.
cellsDisconnectableSpecifies the return value for <isCellDisconntable>.
autoSizeCellsSpecifies if the graph should automatically update the cell size after an edit.
autoScrollSpecifies if the graph should automatically scroll if the mouse goes near the container edge while dragging.
allowAutoPanningSpecifies if panning via panGraph should be allowed to implement autoscroll if no scrollbars are available in scrollPointToVisible.
ignoreScrollbarsSpecifies if the graph should automatically scroll regardless of the scrollbars.
autoExtendSpecifies if the size of the graph should be automatically extended if the mouse goes near the container edge while dragging.
maximumGraphBoundsmxRectangle that specifies the area in which all cells in the diagram should be placed.
minimumGraphSizemxRectangle that specifies the minimum size of the graph.
minimumContainerSizemxRectangle that specifies the minimum size of the <container> if resizeContainer is true.
maximumContainerSizemxRectangle that specifies the maximum size of the container if resizeContainer is true.
resizeContainerSpecifies if the container should be resized to the graph size when the graph size has changed.
borderBorder to be added to the bottom and right side when the container is being resized after the graph has been changed.
orderedSpecifies if the display should reflect the order of the cells in the model.
keepEdgesInForegroundSpecifies if edges should appear in the foreground regardless of their order in the model.
keepEdgesInBackgroundSpecifies if edges should appear in the background regardless of their order in the model.
allowNegativeCoordinatesSpecifies if negative coordinates for vertices are allowed.
constrainChildrenSpecifies the return value for isConstrainChildren.
extendParentsSpecifies if a parent should contain the child bounds after a resize of the child.
extendParentsOnAddSpecifies if parents should be extended according to the extendParents switch if cells are added.
collapseToPreferredSizeSpecifies if the cell size should be changed to the preferred size when a cell is first collapsed.
zoomFactorSpecifies the factor used for zoomIn and zoomOut.
keepSelectionVisibleOnZoomSpecifies if the viewport should automatically contain the selection cells after a zoom operation.
centerZoomSpecifies if the zoom operations should go into the center of the actual diagram rather than going from top, left.
resetViewOnRootChangeSpecifies if the scale and translate should be reset if the root changes in the model.
resetEdgesOnResizeSpecifies if edge control points should be reset after the resize of a connected cell.
resetEdgesOnMoveSpecifies if edge control points should be reset after the move of a connected cell.
resetEdgesOnConnectSpecifies if edge control points should be reset after the the edge has been reconnected.
allowLoopsSpecifies if loops (aka self-references) are allowed.
defaultLoopStylemxEdgeStyle to be used for loops.
multigraphSpecifies if multiple edges in the same direction between the same pair of vertices are allowed.
connectableEdgesSpecifies if edges are connectable.
allowDanglingEdgesSpecifies if edges with disconnected terminals are allowed in the graph.
cloneInvalidEdgesSpecifies if edges that are cloned should be validated and only inserted if they are valid.
disconnectOnMoveSpecifies if edges should be disconnected from their terminals when they are moved.
labelsVisibleSpecifies if labels should be visible.
htmlLabelsSpecifies the return value for isHtmlLabel.
swimlaneSelectionEnabledSpecifies if swimlanes should be selectable via the content if the mouse is released.
swimlaneNestingSpecifies if nesting of swimlanes is allowed.
swimlaneIndicatorColorAttributeThe attribute used to find the color for the indicator if the indicator color is set to ‘swimlane’.
imageBundlesHolds the list of image bundles.
minFitScaleSpecifies the minimum scale to be applied in fit.
maxFitScaleSpecifies the maximum scale to be applied in fit.
panDxCurrent horizontal panning value.
panDyCurrent vertical panning value.
collapsedImageSpecifies the mxImage to indicate a collapsed state.
expandedImageSpecifies the mxImage to indicate a expanded state.
warningImageSpecifies the mxImage for the image to be used to display a warning overlay.
alreadyConnectedResourceSpecifies the resource key for the error message to be displayed in non-multigraphs when two vertices are already connected.
containsValidationErrorsResourceSpecifies the resource key for the warning message to be displayed when a collapsed cell contains validation errors.
collapseExpandResourceSpecifies the resource key for the tooltip on the collapse/expand icon.
initInitializes the <container> and creates the respective datastructures.
createHandlersCreates the tooltip-, panning-, connection- and graph-handler (in this order).
createSelectionModelCreates a new mxGraphSelectionModel to be used in this graph.
createStylesheetCreates a new mxGraphSelectionModel to be used in this graph.
createGraphViewCreates a new mxGraphView to be used in this graph.
createCellRendererCreates a new mxCellRenderer to be used in this graph.
createCellEditorCreates a new mxCellEditor to be used in this graph.
getModelReturns the mxGraphModel that contains the cells.
getViewReturns the mxGraphView that contains the mxCellStates.
getStylesheetReturns the mxStylesheet that defines the style.
setStylesheetSets the mxStylesheet that defines the style.
getSelectionModelReturns the mxGraphSelectionModel that contains the selection.
setSelectionModelSets the <mxSelectionModel> that contains the selection.
getSelectionCellsForChangesReturns the cells to be selected for the given array of changes.
graphModelChangedCalled when the graph model changes.
getRemovedCellsForChangesReturns the cells that have been removed from the model.
processChangeProcesses the given change and invalidates the respective cached data in view.
removeStateForCellRemoves all cached information for the given cell and its descendants.
Overlays
addCellOverlayAdds an mxCellOverlay for the specified cell.
getCellOverlaysReturns the array of mxCellOverlays for the given cell or null, if no overlays are defined.
removeCellOverlayRemoves and returns the given mxCellOverlay from the given cell.
removeCellOverlaysRemoves all mxCellOverlays from the given cell.
clearCellOverlaysRemoves all mxCellOverlays in the graph for the given cell and all its descendants.
setCellWarningCreates an overlay for the given cell using the warning and image or warningImage and returns the new mxCellOverlay.
In-place editing
startEditingCalls startEditingAtCell using the given cell or the first selection cell.
startEditingAtCellFires a startEditing event and invokes mxCellEditor.startEditing on <editor>.
getEditingValueReturns the initial value for in-place editing.
stopEditingStops the current editing.
labelChangedSets the label of the specified cell to the given value using cellLabelChanged and fires mxEvent.LABEL_CHANGED while the transaction is in progress.
cellLabelChangedSets the new label for a cell.
Event processing
escapeProcesses an escape keystroke.
clickProcesses a singleclick on an optional cell and fires a click event.
dblClickProcesses a doubleclick on an optional cell and fires a <dblclick> event.
scrollPointToVisibleScrolls the graph to the given point, extending the graph container if specified.
createPanningManagerCreates and returns an mxPanningManager.
getOffsetSizeReturns the actual size of the the viewport minus padding and border sizes.
sizeDidChangeCalled when the size of the graph has changed.
redrawPageBreaksInvokes from sizeDidChange to redraw the page breaks.
Cell styles
getCellStyleReturns an array of key, value pairs representing the cell style for the given cell.
postProcessCellStyleTries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.
setCellStyleSets the style of the specified cells.
toggleCellStyleToggles the boolean value for the given key in the style of the given cell.
toggleCellStylesToggles the boolean value for the given key in the style of the given cells.
setCellStylesSets the key to value in the styles of the given cells.
toggleCellStyleFlagsToggles the given bit for the given key in the styles of the specified cells.
setCellStyleFlagsSets or toggles the given bit for the given key in the styles of the specified cells.
Cell alignment and orientation
alignCellsAligns the given cells vertically or horizontally according to the given alignment using the optional parameter as the coordinate.
flipEdgeToggles the style of the given edge between null (or empty) and alternateEdgeStyle.
addImageBundleAdds the specified mxImageBundle.
removeImageBundleRemoves the specified mxImageBundle.
getImageFromBundlesSearches all imageBundles for the specified key and returns the value for the first match or null if the key is not found.
Order
orderCellsMoves the given cells to the front or back.
cellsOrderedMoves the given cells to the front or back.
Grouping
groupCellsAdds the cells into the given group.
getCellsForGroupReturns the cells with the same parent as the first cell in the given array.
getBoundsForGroupReturns the bounds to be used for the given group and children.
createGroupCellHook for creating the group cell to hold the given array of mxCells if no group cell was given to the <group> function.
ungroupCellsUngroups the given cells by moving the children the children to their parents parent and removing the empty groups.
removeCellsFromParentRemoves the specified cells from their parents and adds them to the default parent.
updateGroupBoundsUpdates the bounds of the given array of groups so that it includes all child vertices.
Cell cloning, insertion and removal
cloneCellsReturns the clones for the given cells.
insertVertexAdds a new vertex into the given parent mxCell using value as the user object and the given coordinates as the mxGeometry of the new vertex.
createVertexHook method that creates the new vertex for insertVertex.
insertEdgeAdds a new edge into the given parent mxCell using value as the user object and the given source and target as the terminals of the new edge.
createEdgeHook method that creates the new edge for insertEdge.
addEdgeAdds the edge to the parent and connects it to the given source and target terminals.
addCellAdds the cell to the parent and connects it to the given source and target terminals.
addCellsAdds the cells to the parent at the given index, connecting each cell to the optional source and target terminal.
cellsAddedAdds the specified cells to the given parent.
removeCellsRemoves the given cells from the graph including all connected edges if includeEdges is true.
cellsRemovedRemoves the given cells from the model.
splitEdgeSplits the given edge by adding the newEdge between the previous source and the given cell and reconnecting the source of the given edge to the given cell.
Cell visibility
toggleCellsSets the visible state of the specified cells and all connected edges if includeEdges is true.
cellsToggledSets the visible state of the specified cells.
Folding
foldCellsSets the collapsed state of the specified cells and all descendants if recurse is true.
cellsFoldedSets the collapsed state of the specified cells.
swapBoundsSwaps the alternate and the actual bounds in the geometry of the given cell invoking updateAlternateBounds before carrying out the swap.
updateAlternateBoundsUpdates or sets the alternate bounds in the given geometry for the given cell depending on whether the cell is going to be collapsed.
addAllEdgesReturns an array with the given cells and all edges that are connected to a cell or one of its descendants.
getAllEdgesReturns all edges connected to the given cells or its descendants.
Cell sizing
updateCellSizeUpdates the size of the given cell in the model using cellSizeUpdated.
cellSizeUpdatedUpdates the size of the given cell in the model using getPreferredSizeForCell to get the new size.
getPreferredSizeForCellReturns the preferred width and height of the given mxCell as an mxRectangle.
handleGestureInvokes if a gesture event has been detected on a cell state.
resizeCellSets the bounds of the given cell using resizeCells.
resizeCellsSets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS event while the transaction is in progress.
cellsResizedSets the bounds of the given cells and fires a mxEvent.CELLS_RESIZED event.
extendParentResizes the parents recursively so that they contain the complete area of the resized child cell.
Cell moving
importCellsClones and inserts the given cells into the graph using the move method and returns the inserted cells.
moveCellsMoves or clones the specified cells and moves the cells or clones by the given amount, adding them to the optional target cell.
cellsMovedMoves the specified cells by the given vector, disconnecting the cells using disconnectGraph is disconnect is true.
translateCellTranslates the geometry of the given cell and stores the new, translated geometry in the model as an atomic change.
getCellContainmentAreaReturns the mxRectangle inside which a cell is to be kept.
getMaximumGraphBoundsReturns the bounds inside which the diagram should be kept as an mxRectangle.
constrainChildKeeps the given cell inside the bounds returned by getCellContainmentArea for its parent, according to the rules defined by getOverlap and isConstrainChild.
resetEdgesResets the control points of the edges that are connected to the given cells if not both ends of the edge are in the given cells array.
resetEdgeResets the control points of the given edge.
Cell connecting and connection constraints
getAllConnectionConstraintsReturns an array of all mxConnectionConstraints for the given terminal.
getConnectionConstraintReturns an mxConnectionConstraint that describes the given connection point.
setConnectionConstraintSets the mxConnectionConstraint that describes the given connection point.
getConnectionPointReturns the nearest point in the list of absolute points or the center of the opposite terminal.
connectCellConnects the specified end of the given edge to the given terminal using cellConnected and fires mxEvent.CONNECT_CELL while the transaction is in progress.
cellConnectedSets the new terminal for the given edge and resets the edge points if resetEdgesOnConnect is true.
disconnectGraphDisconnects the given edges from the terminals which are not in the given array.
Drilldown
getCurrentRootReturns the current root of the displayed cell hierarchy.
getTranslateForRootReturns the translation to be used if the given cell is the root cell as an mxPoint.
isPortReturns true if the given cell is a “port”, that is, when connecting to it, the cell returned by getTerminalForPort should be used as the terminal and the port should be referenced by the ID in either the mxConstants.STYLE_SOURCE_PORT or the or the mxConstants.STYLE_TARGET_PORT.
getTerminalForPortReturns the terminal to be used for a given port.
getChildOffsetForCellReturns the offset to be used for the cells inside the given cell.
enterGroupUses the given cell as the root of the displayed cell hierarchy.
exitGroupChanges the current root to the next valid root in the displayed cell hierarchy.
homeUses the root of the model as the root of the displayed cell hierarchy and selects the previous root.
isValidRootReturns true if the given cell is a valid root for the cell display hierarchy.
Graph display
getGraphBoundsReturns the bounds of the visible graph.
getCellBoundsReturns the scaled, translated bounds for the given cell.
getBoundingBoxFromGeometryReturns the bounding box for the geometries of the vertices in the given array of cells.
refreshClears all cell states or the states for the hierarchy starting at the given cell and validates the graph.
snapSnaps the given numeric value to the grid if gridEnabled is true.
panGraphShifts the graph display by the given amount.
zoomInZooms into the graph by zoomFactor.
zoomOutZooms out of the graph by zoomFactor.
zoomActualResets the zoom and panning in the view.
zoomZooms the graph using the given factor.
fitScales the graph such that the complete diagram fits into <container> and returns the current scale in the view.
scrollCellToVisiblePans the graph so that it shows the given cell.
scrollRectToVisiblePans the graph so that it shows the given rectangle.
getCellGeometryReturns the mxGeometry for the given cell.
isCellVisibleReturns true if the given cell is visible in this graph.
isCellCollapsedReturns true if the given cell is collapsed in this graph.
isCellConnectableReturns true if the given cell is connectable in this graph.
isOrthogonalReturns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.
isLoopReturns true if the given cell state is a loop.
isCloneEventReturns true if the given event is a clone event.
isToggleEventReturns true if the given event is a toggle event.
isGridEnabledEventReturns true if the given mouse event should be aligned to the grid.
isConstrainedEventReturns true if the given mouse event should be aligned to the grid.
isForceMarqueeEventReturns true if the given event forces marquee selection.
Validation
validationAlertDisplays the given validation error in a dialog.
isEdgeValidChecks if the return value of getEdgeValidationError for the given arguments is null.
getEdgeValidationErrorReturns the validation error message to be displayed when inserting or changing an edges’ connectivity.
validateEdgeHook method for subclassers to return an error message for the given edge and terminals.
validateGraphValidates the graph by validating each descendant of the given cell or the root of the model.
getCellValidationErrorChecks all multiplicities that cannot be enforced while the graph is being modified, namely, all multiplicities that require a minimum of 1 edge.
validateCellHook method for subclassers to return an error message for the given cell and validation context.
Graph appearance
getBackgroundImageReturns the backgroundImage as an mxImage.
setBackgroundImageSets the new backgroundImage.
getFoldingImageReturns the mxImage used to display the collapsed state of the specified cell state.
convertValueToStringReturns the textual representation for the given cell.
getLabelReturns a string or DOM node that represents the label for the given cell.
isHtmlLabelReturns true if the label must be rendered as HTML markup.
isHtmlLabelsReturns htmlLabels.
setHtmlLabelsSets htmlLabels.
isWrappingThis enables wrapping for HTML labels.
isLabelClippedReturns true if the overflow portion of labels should be hidden.
getTooltipReturns the string or DOM node that represents the tooltip for the given state, node and coordinate pair.
getTooltipForCellReturns the string or DOM node to be used as the tooltip for the given cell.
getCursorForCellReturns the cursor value to be used for the CSS of the shape for the given cell.
getStartSizeReturns the start size of the given swimlane, that is, the width or height of the part that contains the title, depending on the horizontal style.
getImageReturns the image URL for the given cell state.
getVerticalAlignReturns the vertical alignment for the given cell state.
getIndicatorColorReturns the indicator color for the given cell state.
getIndicatorGradientColorReturns the indicator gradient color for the given cell state.
getIndicatorShapeReturns the indicator shape for the given cell state.
getIndicatorImageReturns the indicator image for the given cell state.
getBorderReturns the value of border.
setBorderSets the value of border.
isSwimlaneReturns true if the given cell is a swimlane in the graph.
Graph behaviour
isResizeContainerReturns resizeContainer.
setResizeContainerSets resizeContainer.
isEnabledReturns true if the graph is enabled.
setEnabledSpecifies if the graph should allow any interactions.
isEscapeEnabledReturns escapeEnabled.
setEscapeEnabledSets escapeEnabled.
isInvokesStopCellEditingReturns invokesStopCellEditing.
setInvokesStopCellEditingSets invokesStopCellEditing.
isEnterStopsCellEditingReturns enterStopsCellEditing.
setEnterStopsCellEditingSets enterStopsCellEditing.
isCellLockedReturns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.
isCellsLockedReturns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.
setLockedSets if any cell may be moved, sized, bended, disconnected, edited or selected.
getCloneableCellsReturns the cells which may be exported in the given array of cells.
isCellCloneableReturns true if the given cell is cloneable.
isCellsCloneableReturns cellsCloneable, that is, if the graph allows cloning of cells by using control-drag.
setCellsCloneableSpecifies if the graph should allow cloning of cells by holding down the control key while cells are being moved.
getExportableCellsReturns the cells which may be exported in the given array of cells.
canExportCellReturns true if the given cell may be exported to the clipboard.
getImportableCellsReturns the cells which may be imported in the given array of cells.
canImportCellReturns true if the given cell may be imported from the clipboard.
isCellSelectableReturns true if the given cell is selectable.
isCellsSelectableReturns cellsSelectable.
setCellsSelectableSets cellsSelectable.
getDeletableCellsReturns the cells which may be exported in the given array of cells.
isCellDeletableReturns true if the given cell is moveable.
isCellsDeletableReturns cellsDeletable.
setCellsDeletableSets cellsDeletable.
isLabelMovableReturns true if the given edges’s label is moveable.
getMovableCellsReturns the cells which are movable in the given array of cells.
isCellMovableReturns true if the given cell is moveable.
isCellsMovableReturns cellsMovable.
setCellsMovableSpecifies if the graph should allow moving of cells.
isGridEnabledReturns gridEnabled as a boolean.
setGridEnabledSpecifies if the grid should be enabled.
isPortsEnabledReturns portsEnabled as a boolean.
setPortsEnabledSpecifies if the ports should be enabled.
getGridSizeReturns gridSize.
setGridSizeSets gridSize.
getToleranceReturns tolerance.
setToleranceSets tolerance.
isVertexLabelsMovableReturns vertexLabelsMovable.
setVertexLabelsMovableSets vertexLabelsMovable.
isEdgeLabelsMovableReturns edgeLabelsMovable.
isEdgeLabelsMovableSets edgeLabelsMovable.
isSwimlaneNestingReturns swimlaneNesting as a boolean.
setSwimlaneNestingSpecifies if swimlanes can be nested by drag and drop.
isSwimlaneSelectionEnabledReturns swimlaneSelectionEnabled as a boolean.
setSwimlaneSelectionEnabledSpecifies if swimlanes should be selected if the mouse is released over their content area.
isMultigraphReturns multigraph as a boolean.
setMultigraphSpecifies if the graph should allow multiple connections between the same pair of vertices.
isAllowLoopsReturns allowLoops as a boolean.
setAllowDanglingEdgesSpecifies if dangling edges are allowed, that is, if edges are allowed that do not have a source and/or target terminal defined.
isAllowDanglingEdgesReturns allowDanglingEdges as a boolean.
setConnectableEdgesSpecifies if edges should be connectable.
isConnectableEdgesReturns connectableEdges as a boolean.
setCloneInvalidEdgesSpecifies if edges should be inserted when cloned but not valid wrt.
isCloneInvalidEdgesReturns cloneInvalidEdges as a boolean.
setAllowLoopsSpecifies if loops are allowed.
isDisconnectOnMoveReturns disconnectOnMove as a boolean.
setDisconnectOnMoveSpecifies if edges should be disconnected when moved.
isDropEnabledReturns dropEnabled as a boolean.
setDropEnabledSpecifies if the graph should allow dropping of cells onto or into other cells.
isSplitEnabledReturns splitEnabled as a boolean.
setSplitEnabledSpecifies if the graph should allow dropping of cells onto or into other cells.
isCellResizableReturns true if the given cell is resizable.
isCellsResizableReturns cellsResizable.
setCellsResizableSpecifies if the graph should allow resizing of cells.
isTerminalPointMovableReturns true if the given terminal point is movable.
isCellBendableReturns true if the given cell is bendable.
isCellsBendableReturns <cellsBenadable>.
setCellsBendableSpecifies if the graph should allow bending of edges.
isCellEditableReturns true if the given cell is editable.
isCellsEditableReturns cellsEditable.
setCellsEditableSpecifies if the graph should allow in-place editing for cell labels.
isCellDisconnectableReturns true if the given cell is disconnectable from the source or target terminal.
isCellsDisconnectableReturns cellsDisconnectable.
setCellsDisconnectableSets cellsDisconnectable.
isValidSourceReturns true if the given cell is a valid source for new connections.
isValidTargetReturns isValidSource for the given cell.
isValidConnectionReturns true if the given target cell is a valid target for source.
setConnectableSpecifies if the graph should allow new connections.
isConnectableReturns true if the <connectionHandler> is enabled.
setTooltipsSpecifies if tooltips should be enabled.
setPanningSpecifies if panning should be enabled.
isEditingReturns true if the given cell is currently being edited.
isAutoSizeCellReturns true if the size of the given cell should automatically be updated after a change of the label.
isAutoSizeCellsReturns autoSizeCells.
setAutoSizeCellsSpecifies if cell sizes should be automatically updated after a label change.
isExtendParentReturns true if the parent of the given cell should be extended if the child has been resized so that it overlaps the parent.
isExtendParentsReturns extendParents.
setExtendParentsSets extendParents.
isExtendParentsOnAddReturns extendParentsOnAdd.
setExtendParentsOnAddSets extendParentsOnAdd.
isConstrainChildReturns true if the given cell should be kept inside the bounds of its parent according to the rules defined by getOverlap and isAllowOverlapParent.
isConstrainChildrenReturns constrainChildren.
setConstrainChildrenSets constrainChildren.
isConstrainChildrenReturns allowNegativeCoordinates.
setConstrainChildrenSets allowNegativeCoordinates.
getOverlapReturns a decimal number representing the amount of the width and height of the given cell that is allowed to overlap its parent.
isAllowOverlapParentReturns true if the given cell is allowed to be placed outside of the parents area.
getFoldableCellsReturns the cells which are movable in the given array of cells.
isCellFoldableReturns true if the given cell is foldable.
isValidDropTargetReturns true if the given cell is a valid drop target for the specified cells.
isSplitTargetReturns true if the given edge may be splitted into two edges with the given cell as a new terminal between the two.
getDropTargetReturns the given cell if it is a drop target for the given cells or the nearest ancestor that may be used as a drop target for the given cells.
Cell retrieval
getDefaultParentReturns defaultParent or mxGraphView.currentRoot or the first child child of mxGraphModel.root if both are null.
setDefaultParentSets the defaultParent to the given cell.
getSwimlaneReturns the nearest ancestor of the given cell which is a swimlane, or the given cell, if it is itself a swimlane.
getSwimlaneAtReturns the bottom-most swimlane that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.
getCellAtReturns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.
intersectsReturns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.
hitsSwimlaneContentReturns true if the given coordinate pair is inside the content are of the given swimlane.
getChildVerticesReturns the visible child vertices of the given parent.
getChildEdgesReturns the visible child edges of the given parent.
getChildCellsReturns the visible child vertices or edges in the given parent.
getConnectionsReturns all visible edges connected to the given cell without loops.
getIncomingEdgesReturns the visible incoming edges for the given cell.
getOutgoingEdgesReturns the visible outgoing edges for the given cell.
getEdgesReturns the incoming and/or outgoing edges for the given cell.
isValidAncestorReturns whether or not the specified parent is a valid ancestor of the specified cell, either direct or indirectly based on whether ancestor recursion is enabled.
getOppositesReturns all distinct visible opposite cells for the specified terminal on the given edges.
getEdgesBetweenReturns the edges between the given source and target.
getPointForEventReturns an mxPoint representing the given event in the unscaled, non-translated coordinate space of <container> and applies the grid.
getCellsReturns the children of the given parent that are contained in the given rectangle (x, y, width, height).
getCellsBeyondReturns the children of the given parent that are contained in the halfpane from the given point (x0, y0) rightwards and/or downwards depending on rightHalfpane and bottomHalfpane.
findTreeRootsReturns all children in the given parent which do not have incoming edges.
traverseTraverses the (directed) graph invoking the given function for each visited vertex and edge.
Selection
isCellSelectedReturns true if the given cell is selected.
isSelectionEmptyReturns true if the selection is empty.
clearSelectionClears the selection using mxGraphSelectionModel.clear.
getSelectionCountReturns the number of selected cells.
getSelectionCellReturns the first cell from the array of selected mxCells.
getSelectionCellsReturns the array of selected mxCells.
setSelectionCellSets the selection cell.
setSelectionCellsSets the selection cell.
addSelectionCellAdds the given cell to the selection.
addSelectionCellsAdds the given cells to the selection.
removeSelectionCellRemoves the given cell from the selection.
removeSelectionCellsRemoves the given cells from the selection.
selectRegionSelects and returns the cells inside the given rectangle for the specified event.
selectNextCellSelects the next cell.
selectPreviousCellSelects the previous cell.
selectParentCellSelects the parent cell.
selectChildCellSelects the first child cell.
selectCellSelects the next, parent, first child or previous cell, if all arguments are false.
selectAllSelects all children of the given parent cell or the children of the default parent if no parent is specified.
selectVerticesSelect all vertices inside the given parent or the default parent.
selectVerticesSelect all vertices inside the given parent or the default parent.
selectCellsSelects all vertices and/or edges depending on the given boolean arguments recursively, starting at the given parent or the default parent if no parent is specified.
selectCellForEventSelects the given cell by either adding it to the selection or replacing the selection depending on whether the given mouse event is a toggle event.
selectCellsForEventSelects the given cells by either adding them to the selection or replacing the selection depending on whether the given mouse event is a toggle event.
Selection state
createHandlerCreates a new handler for the given cell state.
Graph events
addMouseListenerAdds a listener to the graph event dispatch loop.
removeMouseListenerRemoves the specified graph listener.
updateMouseEventSets the graphX and graphY properties if the given mxMouseEvent if required.
fireMouseEventDispatches the given event in the graph event dispatch loop.
destroyDestroys the graph and all its resources.
+ +

Events

+ +

mxEvent.ROOT

Fires if the root in the model has changed.  This event has no properties.

+ +

mxEvent.ALIGN_CELLS

Fires between begin- and endUpdate in alignCells.  The <code>cells</code> and <code>align</code> properties contain the respective arguments that were passed to alignCells.

+ +

mxEvent.FLIP_EDGE

Fires between begin- and endUpdate in flipEdge.  The <code>edge</code> property contains the edge passed to flipEdge.

+ +

mxEvent.ORDER_CELLS

Fires between begin- and endUpdate in orderCells.  The <code>cells</code> and <code>back</code> properties contain the respective arguments that were passed to orderCells.

+ +

mxEvent.CELLS_ORDERED

Fires between begin- and endUpdate in cellsOrdered.  The <code>cells</code> and <code>back</code> arguments contain the respective arguments that were passed to cellsOrdered.

+ +

mxEvent.GROUP_CELLS

Fires between begin- and endUpdate in groupCells.  The <code>group</code>, <code>cells</code> and <code>border</code> arguments contain the respective arguments that were passed to groupCells.

+ +

mxEvent.UNGROUP_CELLS

Fires between begin- and endUpdate in ungroupCells.  The <code>cells</code> property contains the array of cells that was passed to ungroupCells.

+ +

mxEvent.REMOVE_CELLS_FROM_PARENT

Fires between begin- and endUpdate in removeCellsFromParent.  The <code>cells</code> property contains the array of cells that was passed to removeCellsFromParent.

+ +

mxEvent.ADD_CELLS

Fires between begin- and endUpdate in addCells.  The <code>cells</code>, <code>parent</code>, <code>index</code>, <code>source</code> and <code>target</code> properties contain the respective arguments that were passed to addCells.

+ +

mxEvent.CELLS_ADDED

Fires between begin- and endUpdate in cellsAdded.  The <code>cells</code>, <code>parent</code>, <code>index</code>, <code>source</code>, <code>target</code> and <code>absolute</code> properties contain the respective arguments that were passed to cellsAdded.

+ +

mxEvent.REMOVE_CELLS

Fires between begin- and endUpdate in removeCells.  The <code>cells</code> and <code>includeEdges</code> arguments contain the respective arguments that were passed to removeCells.

+ +

mxEvent.CELLS_REMOVED

Fires between begin- and endUpdate in cellsRemoved.  The <code>cells</code> argument contains the array of cells that was removed.

+ +

mxEvent.SPLIT_EDGE

Fires between begin- and endUpdate in splitEdge.  The <code>edge</code> property contains the edge to be splitted, the <code>cells</code>, <code>newEdge</code>, <code>dx</code> and <code>dy</code> properties contain the respective arguments that were passed to splitEdge.

+ +

mxEvent.TOGGLE_CELLS

Fires between begin- and endUpdate in toggleCells.  The <code>show</code>, <code>cells</code> and <code>includeEdges</code> properties contain the respective arguments that were passed to toggleCells.

+ +

mxEvent.FOLD_CELLS

Fires between begin- and endUpdate in foldCells.  The <code>collapse</code>, <code>cells</code> and <code>recurse</code> properties contain the respective arguments that were passed to foldCells.

+ +

mxEvent.CELLS_FOLDED

Fires between begin- and endUpdate in cellsFolded.  The <code>collapse</code>, <code>cells</code> and <code>recurse</code> properties contain the respective arguments that were passed to cellsFolded.

+ +

mxEvent.UPDATE_CELL_SIZE

Fires between begin- and endUpdate in updateCellSize.  The <code>cell</code> and <code>ignoreChildren</code> properties contain the respective arguments that were passed to updateCellSize.

+ +

mxEvent.RESIZE_CELLS

Fires between begin- and endUpdate in resizeCells.  The <code>cells</code> and <code>bounds</code> properties contain the respective arguments that were passed to resizeCells.

+ +

mxEvent.CELLS_RESIZED

Fires between begin- and endUpdate in cellsResized.  The <code>cells</code> and <code>bounds</code> properties contain the respective arguments that were passed to cellsResized.

+ +

mxEvent.MOVE_CELLS

Fires between begin- and endUpdate in moveCells.  The <code>cells</code>, <code>dx</code>, <code>dy</code>, <code>clone</code>, <code>target</code> and <code>event</code> properties contain the respective arguments that were passed to moveCells.

+ +

mxEvent.CELLS_MOVED

Fires between begin- and endUpdate in cellsMoved.  The <code>cells</code>, <code>dx</code>, <code>dy</code> and <code>disconnect</code> properties contain the respective arguments that were passed to cellsMoved.

+ +

mxEvent.CONNECT_CELL

Fires between begin- and endUpdate in connectCell.  The <code>edge</code>, <code>terminal</code> and <code>source</code> properties contain the respective arguments that were passed to connectCell.

+ +

mxEvent.CELL_CONNECTED

Fires between begin- and endUpdate in cellConnected.  The <code>edge</code>, <code>terminal</code> and <code>source</code> properties contain the respective arguments that were passed to cellConnected.

+ +

mxEvent.REFRESH

Fires after refresh was executed.  This event has no properties.

+ +

mxEvent.CLICK

Fires in click after a click event.  The <code>event</code> property contains the original mouse event and <code>cell</code> property contains the cell under the mouse or null if the background was clicked.

To handle a click event, use the following code

graph.addListener(mxEvent.CLICK, function(sender, evt)
+{
+  var e = evt.getProperty('event'); // mouse event
+  var cell = evt.getProperty('cell'); // cell may be null
+
+  if (!evt.isConsumed())
+  {
+    if (cell != null)
+    {
+      // Do something useful with cell and consume the event
+      evt.consume();
+    }
+  }
+});
+ +

mxEvent.DOUBLE_CLICK

Fires in dblClick after a double click.  The <code>event</code> property contains the original mouse event and the <code>cell</code> property contains the cell under the mouse or null if the background was clicked.

+ +

mxEvent.SIZE

Fires after sizeDidChange was executed.  The <code>bounds</code> property contains the new graph bounds.

+ +

mxEvent.START_EDITING

Fires before the in-place editor starts in startEditingAtCell.  The <code>cell</code> property contains the cell that is being edited and the <code>event</code> property contains the optional event argument that was passed to startEditingAtCell.

+ +

mxEvent.LABEL_CHANGED

Fires between begin- and endUpdate in cellLabelChanged.  The <code>cell</code> property contains the cell, the <code>value</code> property contains the new value for the cell and the optional <code>event</code> property contains the mouse event that started the edit.

+ +

mxEvent.ADD_OVERLAY

Fires after an overlay is added in addCellOverlay.  The <code>cell</code> property contains the cell and the <code>overlay</code> property contains the mxCellOverlay that was added.

+ +

mxEvent.REMOVE_OVERLAY

Fires after an overlay is removed in removeCellOverlay and removeCellOverlays.  The <code>cell</code> property contains the cell and the <code>overlay</code> property contains the mxCellOverlay that was removed.

+ +

mxGraph

function mxGraph(container,
model,
renderHint,
stylesheet)

Constructs a new mxGraph in the specified container.  Model is an optional mxGraphModel.  If no model is provided, a new mxGraphModel instance is used as the model.  The container must have a valid owner document prior to calling this function in Internet Explorer.  RenderHint is a string to affect the display performance and rendering in IE, but not in SVG-based browsers.  The parameter is mapped to dialect, which may be one of mxConstants.DIALECT_SVG for SVG-based browsers, mxConstants.DIALECT_STRICTHTML for fastest display mode, mxConstants.DIALECT_PREFERHTML for faster display mode, mxConstants.DIALECT_MIXEDHTML for fast and mxConstants.DIALECT_VML for exact display mode (slowest).  The dialects are defined in mxConstants.  The default values are DIALECT_SVG for SVG-based browsers and DIALECT_MIXED for IE.

The possible values for the renderingHint parameter are explained below

fastThe parameter is based on the fact that the display performance is highly improved in IE if the VML is not contained within a VML group element.  The lack of a group element only slightly affects the display while panning, but improves the performance by almost a factor of 2, while keeping the display sufficiently accurate.  This also allows to render certain shapes as HTML if the display accuracy is not affected, which is implemented by mxShape.isMixedModeHtml.  This is the default setting and is mapped to DIALECT_MIXEDHTML.
fasterSame as fast, but more expensive shapes are avoided.  This is controlled by mxShape.preferModeHtml.  The default implementation will avoid gradients and rounded rectangles, but more significant shapes, such as rhombus, ellipse, actor and cylinder will be rendered accurately.  This setting is mapped to DIALECT_PREFERHTML.
fastestAlmost anything will be rendered in Html.  This allows for rectangles, labels and images.  This setting is mapped to DIALECT_STRICTHTML.
exactIf accurate panning is required and if the diagram is small (up to 100 cells), then this value should be used.  In this mode, a group is created that contains the VML.  This allows for accurate panning and is mapped to DIALECT_VML.

Example

To create a graph inside a DOM node with an id of graph

var container = document.getElementById('graph');
+var graph = new mxGraph(container);

Parameters

containerOptional DOM node that acts as a container for the graph.  If this is null then the container can be initialized later using init.
modelOptional mxGraphModel that constitutes the graph data.
renderHintOptional string that specifies the display accuracy and performance.  Default is mxConstants.DIALECT_MIXEDHTML (for IE).
stylesheetOptional mxStylesheet to be used in the graph.
+ +

EMPTY_ARRAY

mxGraph.prototype.EMPTY_ARRAY

Immutable empty array instance.

+ +

Variables

+ +

mouseListeners

mxGraph.prototype.mouseListeners

Holds the mouse event listeners.  See fireMouseEvent.

+ +

isMouseDown

mxGraph.prototype.isMouseDown

Holds the state of the mouse button.

+ +

model

mxGraph.prototype.model

Holds the mxGraphModel that contains the cells to be displayed.

+ +

view

mxGraph.prototype.view

Holds the mxGraphView that caches the mxCellStates for the cells.

+ +

stylesheet

mxGraph.prototype.stylesheet

Holds the mxStylesheet that defines the appearance of the cells.

Example

Use the following code to read a stylesheet into an existing graph.

var req = mxUtils.load('stylesheet.xml');
+var root = req.getDocumentElement();
+var dec = new mxCodec(root.ownerDocument);
+dec.decode(root, graph.stylesheet);
+ +

selectionModel

mxGraph.prototype.selectionModel

Holds the mxGraphSelectionModel that models the current selection.

+ +

cellEditor

mxGraph.prototype.cellEditor

Holds the mxCellEditor that is used as the in-place editing.

+ +

cellRenderer

mxGraph.prototype.cellRenderer

Holds the mxCellRenderer for rendering the cells in the graph.

+ +

multiplicities

mxGraph.prototype.multiplicities

An array of mxMultiplicities describing the allowed connections in a graph.

+ +

renderHint

mxGraph.prototype.renderHint

RenderHint as it was passed to the constructor.

+ +

dialect

mxGraph.prototype.dialect

Dialect to be used for drawing the graph.  Possible values are all constants in mxConstants with a DIALECT-prefix.

+ +

gridSize

mxGraph.prototype.gridSize

Specifies the grid size.  Default is 10.

+ +

gridEnabled

mxGraph.prototype.gridEnabled

Specifies if the grid is enabled.  This is used in snap.  Default is true.

+ +

portsEnabled

mxGraph.prototype.portsEnabled

Specifies if ports are enabled.  This is used in cellConnected to update the respective style.  Default is true.

+ +

doubleTapEnabled

mxGraph.prototype.doubleTapEnabled

Specifies if double taps on touch-based devices should be handled.  Default is true.

+ +

doubleTapTimeout

mxGraph.prototype.doubleTapTimeout

Specifies the timeout for double taps.  Default is 700 ms.

+ +

doubleTapTolerance

mxGraph.prototype.doubleTapTolerance

Specifies the tolerance for double taps.  Default is 25 pixels.

+ +

lastTouchX

Holds the x-coordinate of the last touch event for double tap detection.

+ +

lastTouchX

Holds the y-coordinate of the last touch event for double tap detection.

+ +

lastTouchTime

mxGraph.prototype.lastTouchTime

Holds the time of the last touch event for double click detection.

+ +

gestureEnabled

mxGraph.prototype.gestureEnabled

Specifies if the handleGesture method should be invoked.  Default is true.  This is an experimental feature for touch-based devices.

+ +

tolerance

mxGraph.prototype.tolerance

Tolerance for a move to be handled as a single click.  Default is 4 pixels.

+ +

defaultOverlap

mxGraph.prototype.defaultOverlap

Value returned by getOverlap if isAllowOverlapParent returns true for the given cell.  getOverlap is used in constrainChild if isConstrainChild returns true.  The value specifies the portion of the child which is allowed to overlap the parent.

+ +

defaultParent

mxGraph.prototype.defaultParent

Specifies the default parent to be used to insert new cells.  This is used in getDefaultParent.  Default is null.

+ +

alternateEdgeStyle

mxGraph.prototype.alternateEdgeStyle

Specifies the alternate edge style to be used if the main control point on an edge is being doubleclicked.  Default is null.

+ +

backgroundImage

mxGraph.prototype.backgroundImage

Specifies the mxImage to be returned by getBackgroundImage.  Default is null.

Example

var img = new mxImage('http://www.example.com/maps/examplemap.jpg', 1024, 768);
+graph.setBackgroundImage(img);
+graph.view.validate();
+ +

pageVisible

mxGraph.prototype.pageVisible

Specifies if the background page should be visible.  Default is false.  Not yet implemented.

+ +

pageBreaksVisible

mxGraph.prototype.pageBreaksVisible

Specifies if a dashed line should be drawn between multiple pages.  Default is false.  If you change this value while a graph is being displayed then you should call sizeDidChange to force an update of the display.

+ +

pageBreakColor

mxGraph.prototype.pageBreakColor

Specifies the color for page breaks.  Default is ‘gray’.

+ +

pageBreakDashed

mxGraph.prototype.pageBreakDashed

Specifies the page breaks should be dashed.  Default is true.

+ +

minPageBreakDist

mxGraph.prototype.minPageBreakDist

Specifies the minimum distance for page breaks to be visible.  Default is 20 (in pixels).

+ +

preferPageSize

mxGraph.prototype.preferPageSize

Specifies if the graph size should be rounded to the next page number in sizeDidChange.  This is only used if the graph container has scrollbars.  Default is false.

+ +

pageFormat

mxGraph.prototype.pageFormat

Specifies the page format for the background page.  Default is mxConstants.PAGE_FORMAT_A4_PORTRAIT.  This is used as the default in mxPrintPreview and for painting the background page if pageVisible is true and the pagebreaks if pageBreaksVisible is true.

+ +

pageScale

mxGraph.prototype.pageScale

Specifies the scale of the background page.  Default is 1.5.  Not yet implemented.

+ +

enabled

mxGraph.prototype.enabled

Specifies the return value for isEnabled.  Default is true.

+ +

escapeEnabled

mxGraph.prototype.escapeEnabled

Specifies if mxKeyHandler should invoke escape when the escape key is pressed.  Default is true.

+ +

invokesStopCellEditing

mxGraph.prototype.invokesStopCellEditing

If true, when editing is to be stopped by way of selection changing, data in diagram changing or other means stopCellEditing is invoked, and changes are saved.  This is implemented in a focus handler in mxCellEditor.  Default is true.

+ +

enterStopsCellEditing

mxGraph.prototype.enterStopsCellEditing

If true, pressing the enter key without pressing control or shift will stop editing and accept the new value.  This is used in mxCellEditor to stop cell editing.  Note: You can always use F2 and escape to stop editing.  Default is false.

+ +

useScrollbarsForPanning

mxGraph.prototype.useScrollbarsForPanning

Specifies if scrollbars should be used for panning in panGraph if any scrollbars are available.  If scrollbars are enabled in CSS, but no scrollbars appear because the graph is smaller than the container size, then no panning occurs if this is true.  Default is true.

+ +

exportEnabled

mxGraph.prototype.exportEnabled

Specifies the return value for canExportCell.  Default is true.

+ +

importEnabled

mxGraph.prototype.importEnabled

Specifies the return value for canImportCell.  Default is true.

+ +

cellsLocked

mxGraph.prototype.cellsLocked

Specifies the return value for isCellLocked.  Default is false.

+ +

cellsCloneable

mxGraph.prototype.cellsCloneable

Specifies the return value for isCellCloneable.  Default is true.

+ +

foldingEnabled

mxGraph.prototype.foldingEnabled

Specifies if folding (collapse and expand via an image icon in the graph should be enabled).  Default is true.

+ +

cellsEditable

mxGraph.prototype.cellsEditable

Specifies the return value for isCellEditable.  Default is true.

+ +

cellsDeletable

mxGraph.prototype.cellsDeletable

Specifies the return value for isCellDeletable.  Default is true.

+ +

cellsMovable

mxGraph.prototype.cellsMovable

Specifies the return value for isCellMovable.  Default is true.

+ +

edgeLabelsMovable

mxGraph.prototype.edgeLabelsMovable

Specifies the return value for edges in isLabelMovable.  Default is true.

+ +

vertexLabelsMovable

mxGraph.prototype.vertexLabelsMovable

Specifies the return value for vertices in isLabelMovable.  Default is false.

+ +

dropEnabled

mxGraph.prototype.dropEnabled

Specifies the return value for isDropEnabled.  Default is false.

+ +

splitEnabled

mxGraph.prototype.splitEnabled

Specifies if dropping onto edges should be enabled.  Default is true.

+ +

cellsResizable

mxGraph.prototype.cellsResizable

Specifies the return value for isCellResizable.  Default is true.

+ +

cellsBendable

mxGraph.prototype.cellsBendable

Specifies the return value for isCellsBendable.  Default is true.

+ +

cellsSelectable

mxGraph.prototype.cellsSelectable

Specifies the return value for isCellSelectable.  Default is true.

+ +

cellsDisconnectable

mxGraph.prototype.cellsDisconnectable

Specifies the return value for <isCellDisconntable>.  Default is true.

+ +

autoSizeCells

mxGraph.prototype.autoSizeCells

Specifies if the graph should automatically update the cell size after an edit.  This is used in isAutoSizeCell.  Default is false.

+ +

autoScroll

mxGraph.prototype.autoScroll

Specifies if the graph should automatically scroll if the mouse goes near the container edge while dragging.  This is only taken into account if the container has scrollbars.  Default is true.

If you need this to work without scrollbars then set ignoreScrollbars to true.

+ +

allowAutoPanning

mxGraph.prototype.allowAutoPanning

Specifies if panning via panGraph should be allowed to implement autoscroll if no scrollbars are available in scrollPointToVisible.  Default is false.

+ +

ignoreScrollbars

mxGraph.prototype.ignoreScrollbars

Specifies if the graph should automatically scroll regardless of the scrollbars.

+ +

autoExtend

mxGraph.prototype.autoExtend

Specifies if the size of the graph should be automatically extended if the mouse goes near the container edge while dragging.  This is only taken into account if the container has scrollbars.  Default is true.  See autoScroll for a trick to enable this without using scrollbars in the container.

+ +

maximumGraphBounds

mxGraph.prototype.maximumGraphBounds

mxRectangle that specifies the area in which all cells in the diagram should be placed.  Uses in getMaximumGraphBounds.  Use a width or height of 0 if you only want to give a upper, left corner.

+ +

minimumGraphSize

mxGraph.prototype.minimumGraphSize

mxRectangle that specifies the minimum size of the graph.  This is ignored if the graph container has no scrollbars.  Default is null.

+ +

minimumContainerSize

mxGraph.prototype.minimumContainerSize

mxRectangle that specifies the minimum size of the <container> if resizeContainer is true.

+ +

maximumContainerSize

mxGraph.prototype.maximumContainerSize

mxRectangle that specifies the maximum size of the container if resizeContainer is true.

+ +

resizeContainer

mxGraph.prototype.resizeContainer

Specifies if the container should be resized to the graph size when the graph size has changed.  Default is false.

+ +

border

mxGraph.prototype.border

Border to be added to the bottom and right side when the container is being resized after the graph has been changed.  Default is 0.

+ +

ordered

mxGraph.prototype.ordered

Specifies if the display should reflect the order of the cells in the model.  Default is true.  This has precendence over keepEdgesInBackground and keepEdgesInForeground.

+ +

keepEdgesInForeground

mxGraph.prototype.keepEdgesInForeground

Specifies if edges should appear in the foreground regardless of their order in the model.  This has precendence over <keepEdgeInBackground>, but not over ordered.  Default is false.

+ +

keepEdgesInBackground

mxGraph.prototype.keepEdgesInBackground

Specifies if edges should appear in the background regardless of their order in the model.  ordered and keepEdgesInForeground have precedence over this setting.  Default is true.

+ +

allowNegativeCoordinates

mxGraph.prototype.allowNegativeCoordinates

Specifies if negative coordinates for vertices are allowed.  Default is true.

+ +

constrainChildren

mxGraph.prototype.constrainChildren

Specifies the return value for isConstrainChildren.  Default is true.

+ +

extendParents

mxGraph.prototype.extendParents

Specifies if a parent should contain the child bounds after a resize of the child.  Default is true.

+ +

extendParentsOnAdd

mxGraph.prototype.extendParentsOnAdd

Specifies if parents should be extended according to the extendParents switch if cells are added.  Default is true.

+ +

collapseToPreferredSize

mxGraph.prototype.collapseToPreferredSize

Specifies if the cell size should be changed to the preferred size when a cell is first collapsed.  Default is true.

+ +

zoomFactor

mxGraph.prototype.zoomFactor

Specifies the factor used for zoomIn and zoomOut.  Default is 1.2 (120%).

+ +

keepSelectionVisibleOnZoom

mxGraph.prototype.keepSelectionVisibleOnZoom

Specifies if the viewport should automatically contain the selection cells after a zoom operation.  Default is false.

+ +

centerZoom

mxGraph.prototype.centerZoom

Specifies if the zoom operations should go into the center of the actual diagram rather than going from top, left.  Default is true.

+ +

resetViewOnRootChange

mxGraph.prototype.resetViewOnRootChange

Specifies if the scale and translate should be reset if the root changes in the model.  Default is true.

+ +

resetEdgesOnResize

mxGraph.prototype.resetEdgesOnResize

Specifies if edge control points should be reset after the resize of a connected cell.  Default is false.

+ +

resetEdgesOnMove

mxGraph.prototype.resetEdgesOnMove

Specifies if edge control points should be reset after the move of a connected cell.  Default is false.

+ +

resetEdgesOnConnect

mxGraph.prototype.resetEdgesOnConnect

Specifies if edge control points should be reset after the the edge has been reconnected.  Default is true.

+ +

allowLoops

mxGraph.prototype.allowLoops

Specifies if loops (aka self-references) are allowed.  Default is false.

+ +

defaultLoopStyle

mxGraph.prototype.defaultLoopStyle

mxEdgeStyle to be used for loops.  This is a fallback for loops if the mxConstants.STYLE_LOOP is undefined.  Default is mxEdgeStyle.Loop.

+ +

multigraph

mxGraph.prototype.multigraph

Specifies if multiple edges in the same direction between the same pair of vertices are allowed.  Default is true.

+ +

connectableEdges

mxGraph.prototype.connectableEdges

Specifies if edges are connectable.  Default is false.  This overrides the connectable field in edges.

+ +

allowDanglingEdges

mxGraph.prototype.allowDanglingEdges

Specifies if edges with disconnected terminals are allowed in the graph.  Default is true.

+ +

cloneInvalidEdges

mxGraph.prototype.cloneInvalidEdges

Specifies if edges that are cloned should be validated and only inserted if they are valid.  Default is true.

+ +

disconnectOnMove

mxGraph.prototype.disconnectOnMove

Specifies if edges should be disconnected from their terminals when they are moved.  Default is true.

+ +

labelsVisible

mxGraph.prototype.labelsVisible

Specifies if labels should be visible.  This is used in getLabel.  Default is true.

+ +

htmlLabels

mxGraph.prototype.htmlLabels

Specifies the return value for isHtmlLabel.  Default is false.

+ +

swimlaneSelectionEnabled

mxGraph.prototype.swimlaneSelectionEnabled

Specifies if swimlanes should be selectable via the content if the mouse is released.  Default is true.

+ +

swimlaneNesting

mxGraph.prototype.swimlaneNesting

Specifies if nesting of swimlanes is allowed.  Default is true.

+ +

swimlaneIndicatorColorAttribute

mxGraph.prototype.swimlaneIndicatorColorAttribute

The attribute used to find the color for the indicator if the indicator color is set to ‘swimlane’.  Default is mxConstants.STYLE_FILLCOLOR.

+ +

imageBundles

mxGraph.prototype.imageBundles

Holds the list of image bundles.

+ +

minFitScale

mxGraph.prototype.minFitScale

Specifies the minimum scale to be applied in fit.  Default is 0.1.

+ +

maxFitScale

mxGraph.prototype.maxFitScale

Specifies the maximum scale to be applied in fit.  Default is 8.

+ +

panDx

mxGraph.prototype.panDx

Current horizontal panning value.  Default is 0.

+ +

panDy

mxGraph.prototype.panDy

Current vertical panning value.  Default is 0.

+ +

collapsedImage

mxGraph.prototype.collapsedImage

Specifies the mxImage to indicate a collapsed state.  Default value is mxClient.imageBasePath + ‘/collapsed.gif’

+ +

expandedImage

mxGraph.prototype.expandedImage

Specifies the mxImage to indicate a expanded state.  Default value is mxClient.imageBasePath + ‘/expanded.gif’

+ +

warningImage

mxGraph.prototype.warningImage

Specifies the mxImage for the image to be used to display a warning overlay.  See setCellWarning.  Default value is mxClient.imageBasePath + ‘/warning’.  The extension for the image depends on the platform.  It is ‘.png’ on the Mac and ‘.gif’ on all other platforms.

+ +

alreadyConnectedResource

mxGraph.prototype.alreadyConnectedResource

Specifies the resource key for the error message to be displayed in non-multigraphs when two vertices are already connected.  If the resource for this key does not exist then the value is used as the error message.  Default is ‘alreadyConnected’.

+ +

containsValidationErrorsResource

mxGraph.prototype.containsValidationErrorsResource

Specifies the resource key for the warning message to be displayed when a collapsed cell contains validation errors.  If the resource for this key does not exist then the value is used as the warning message.  Default is ‘containsValidationErrors’.

+ +

collapseExpandResource

mxGraph.prototype.collapseExpandResource

Specifies the resource key for the tooltip on the collapse/expand icon.  If the resource for this key does not exist then the value is used as the tooltip.  Default is ‘collapse-expand’.

+ +

init

mxGraph.prototype.init = function(container)

Initializes the <container> and creates the respective datastructures.

Parameters

containerDOM node that will contain the graph display.
+ +

createHandlers

mxGraph.prototype.createHandlers = function(container)

Creates the tooltip-, panning-, connection- and graph-handler (in this order).  This is called in the constructor before init is called.

+ +

createSelectionModel

mxGraph.prototype.createSelectionModel = function()

Creates a new mxGraphSelectionModel to be used in this graph.

+ +

createStylesheet

mxGraph.prototype.createStylesheet = function()

Creates a new mxGraphSelectionModel to be used in this graph.

+ +

createGraphView

mxGraph.prototype.createGraphView = function()

Creates a new mxGraphView to be used in this graph.

+ +

createCellRenderer

mxGraph.prototype.createCellRenderer = function()

Creates a new mxCellRenderer to be used in this graph.

+ +

createCellEditor

mxGraph.prototype.createCellEditor = function()

Creates a new mxCellEditor to be used in this graph.

+ +

getModel

mxGraph.prototype.getModel = function()

Returns the mxGraphModel that contains the cells.

+ +

getView

mxGraph.prototype.getView = function()

Returns the mxGraphView that contains the mxCellStates.

+ +

getStylesheet

mxGraph.prototype.getStylesheet = function()

Returns the mxStylesheet that defines the style.

+ +

setStylesheet

mxGraph.prototype.setStylesheet = function(stylesheet)

Sets the mxStylesheet that defines the style.

+ +

getSelectionModel

mxGraph.prototype.getSelectionModel = function()

Returns the mxGraphSelectionModel that contains the selection.

+ +

setSelectionModel

mxGraph.prototype.setSelectionModel = function(selectionModel)

Sets the <mxSelectionModel> that contains the selection.

+ +

getSelectionCellsForChanges

mxGraph.prototype.getSelectionCellsForChanges = function(changes)

Returns the cells to be selected for the given array of changes.

+ +

graphModelChanged

mxGraph.prototype.graphModelChanged = function(changes)

Called when the graph model changes.  Invokes processChange on each item of the given array to update the view accordingly.

Parameters

changesArray that contains the individual changes.
+ +

getRemovedCellsForChanges

mxGraph.prototype.getRemovedCellsForChanges = function(changes)

Returns the cells that have been removed from the model.

+ +

processChange

mxGraph.prototype.processChange = function(change)

Processes the given change and invalidates the respective cached data in view.  This fires a <root> event if the root has changed in the model.

Parameters

changeObject that represents the change on the model.
+ +

removeStateForCell

mxGraph.prototype.removeStateForCell = function(cell)

Removes all cached information for the given cell and its descendants.  This is called when a cell was removed from the model.

Paramters

cellmxCell that was removed from the model.
+ +

Overlays

+ +

addCellOverlay

mxGraph.prototype.addCellOverlay = function(cell,
overlay)

Adds an mxCellOverlay for the specified cell.  This method fires an <addoverlay> event and returns the new mxCellOverlay.

Parameters

cellmxCell to add the overlay for.
overlaymxCellOverlay to be added for the cell.
+ +

getCellOverlays

mxGraph.prototype.getCellOverlays = function(cell)

Returns the array of mxCellOverlays for the given cell or null, if no overlays are defined.

Parameters

cellmxCell whose overlays should be returned.
+ +

removeCellOverlay

mxGraph.prototype.removeCellOverlay = function(cell,
overlay)

Removes and returns the given mxCellOverlay from the given cell.  This method fires a <removeoverlay> event.  If no overlay is given, then all overlays are removed using <removeOverlays>.

Parameters

cellmxCell whose overlay should be removed.
overlayOptional mxCellOverlay to be removed.
+ +

removeCellOverlays

mxGraph.prototype.removeCellOverlays = function(cell)

Removes all mxCellOverlays from the given cell.  This method fires a <removeoverlay> event for each mxCellOverlay and returns the array of mxCellOverlays that was removed from the cell.

Parameters

cellmxCell whose overlays should be removed
+ +

clearCellOverlays

mxGraph.prototype.clearCellOverlays = function(cell)

Removes all mxCellOverlays in the graph for the given cell and all its descendants.  If no cell is specified then all overlays are removed from the graph.  This implementation uses removeCellOverlays to remove the overlays from the individual cells.

Parameters

cellOptional mxCell that represents the root of the subtree to remove the overlays from.  Default is the root in the model.
+ +

setCellWarning

mxGraph.prototype.setCellWarning = function(cell,
warning,
img,
isSelect)

Creates an overlay for the given cell using the warning and image or warningImage and returns the new mxCellOverlay.  The warning is displayed as a tooltip in a red font and may contain HTML markup.  If the warning is null or a zero length string, then all overlays are removed from the cell.

Example

graph.setCellWarning(cell, '<b>Warning:</b>: Hello, World!');

Parameters

cellmxCell whose warning should be set.
warningString that represents the warning to be displayed.
imgOptional mxImage to be used for the overlay.  Default is <warningImageBasename>.
isSelectOptional boolean indicating if a click on the overlay should select the corresponding cell.  Default is false.
+ +

In-place editing

+ +

startEditing

mxGraph.prototype.startEditing = function(evt)

Calls startEditingAtCell using the given cell or the first selection cell.

Parameters

evtOptional mouse event that triggered the editing.
+ +

startEditingAtCell

mxGraph.prototype.startEditingAtCell = function(cell,
evt)

Fires a startEditing event and invokes mxCellEditor.startEditing on <editor>.

Parameters

cellmxCell to start the in-place editor for.
evtOptional mouse event that triggered the editing.
+ +

getEditingValue

mxGraph.prototype.getEditingValue = function(cell,
evt)

Returns the initial value for in-place editing.  This implementation returns convertValueToString for the given cell.  If this function is overridden, then mxGraphModel.valueForCellChanged should take care of correctly storing the actual new value inside the user object.

Parameters

cellmxCell for which the initial editing value should be returned.
evtOptional mouse event that triggered the editor.
+ +

stopEditing

mxGraph.prototype.stopEditing = function(cancel)

Stops the current editing.

Parameters

cancelBoolean that specifies if the current editing value should be stored.
+ +

labelChanged

mxGraph.prototype.labelChanged = function(cell,
value,
evt)

Sets the label of the specified cell to the given value using cellLabelChanged and fires mxEvent.LABEL_CHANGED while the transaction is in progress.  Returns the cell whose label was changed.

Parameters

cellmxCell whose label should be changed.
valueNew label to be assigned.
evtOptional event that triggered the change.
+ +

cellLabelChanged

mxGraph.prototype.cellLabelChanged = function(cell,
value,
autoSize)

Sets the new label for a cell.  If autoSize is true then cellSizeUpdated will be called.

In the following example, the function is extended to map changes to attributes in an XML node, as shown in convertValueToString.  Alternatively, the handling of this can be implemented as shown in mxGraphModel.valueForCellChanged without the need to clone the user object.

var graphCellLabelChanged = graph.cellLabelChanged;
+graph.cellLabelChanged = function(cell, newValue, autoSize)
+{
+ // Cloned for correct undo/redo
+ var elt = cell.value.cloneNode(true);
+ elt.setAttribute('label', newValue);
+
+ newValue = elt;
+ graphCellLabelChanged.apply(this, arguments);
+};

Parameters

cellmxCell whose label should be changed.
valueNew label to be assigned.
autoSizeBoolean that specifies if cellSizeUpdated should be called.
+ +

Event processing

+ +

escape

mxGraph.prototype.escape = function(evt)

Processes an escape keystroke.

Parameters

evtMouseevent that represents the keystroke.
+ +

click

mxGraph.prototype.click = function(me)

Processes a singleclick on an optional cell and fires a click event.  The click event is fired initially.  If the graph is enabled and the event has not been consumed, then the cell is selected using selectCellForEvent or the selection is cleared using clearSelection.  The events consumed state is set to true if the corresponding mxMouseEvent has been consumed.

Parameters

memxMouseEvent that represents the single click.
+ +

dblClick

mxGraph.prototype.dblClick = function(evt,
cell)

Processes a doubleclick on an optional cell and fires a <dblclick> event.  The event is fired initially.  If the graph is enabled and the event has not been consumed, then <edit> is called with the given cell.  The event is ignored if no cell was specified.

Example

graph.dblClick = function(evt, cell)
+{
+  var mxe = new mxEventObject(mxEvent.DOUBLE_CLICK, 'event', evt, 'cell', cell);
+  this.fireEvent(mxe);
+
+  if (this.isEnabled() && !mxEvent.isConsumed(evt) && !mxe.isConsumed())
+  {
+    mxUtils.alert('Hello, World!');
+    mxe.consume();
+  }
+}

Parameters

evtMouseevent that represents the doubleclick.
cellOptional mxCell under the mousepointer.
+ +

scrollPointToVisible

mxGraph.prototype.scrollPointToVisible = function(x,
y,
extend,
border)

Scrolls the graph to the given point, extending the graph container if specified.

+ +

createPanningManager

mxGraph.prototype.createPanningManager = function()

Creates and returns an mxPanningManager.

+ +

getOffsetSize

mxGraph.prototype.getOffsetSize = function()

Returns the actual size of the the viewport minus padding and border sizes.  The value is returned in the width and height of an mxRectangle.

+ +

sizeDidChange

mxGraph.prototype.sizeDidChange = function()

Called when the size of the graph has changed.  This implementation fires a <size> event after updating the clipping region of the SVG element in SVG-bases browsers.

+ +

redrawPageBreaks

Invokes from sizeDidChange to redraw the page breaks.

Parameters

visibleBoolean that specifies if page breaks should be shown.
widthSpecifies the width of the container in pixels.
heightSpecifies the height of the container in pixels.
+ +

Cell styles

+ +

getCellStyle

mxGraph.prototype.getCellStyle = function(cell)

Returns an array of key, value pairs representing the cell style for the given cell.  If no string is defined in the model that specifies the style, then the default style for the cell is returned or EMPTY_ARRAY, if not style can be found.  Note: You should try and get the cell state for the given cell and use the cached style in the state before using this method.

Parameters

cellmxCell whose style should be returned as an array.
+ +

postProcessCellStyle

mxGraph.prototype.postProcessCellStyle = function(style)

Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.

+ +

setCellStyle

mxGraph.prototype.setCellStyle = function(style,
cells)

Sets the style of the specified cells.  If no cells are given, then the selection cells are changed.

Parameters

styleString representing the new style of the cells.
cellsOptional array of mxCells to set the style for.  Default is the selection cells.
+ +

toggleCellStyle

mxGraph.prototype.toggleCellStyle = function(key,
defaultValue,
cell)

Toggles the boolean value for the given key in the style of the given cell.  If no cell is specified then the selection cell is used.

Parameter

keyString representing the key for the boolean value to be toggled.
defaultValueOptional boolean default value if no value is defined.  Default is false.
cellOptional mxCell whose style should be modified.  Default is the selection cell.
+ +

toggleCellStyles

mxGraph.prototype.toggleCellStyles = function(key,
defaultValue,
cells)

Toggles the boolean value for the given key in the style of the given cells.  If no cells are specified, then the selection cells are used.  For example, this can be used to toggle mxConstants.STYLE_ROUNDED or any other style with a boolean value.

Parameter

keyString representing the key for the boolean value to be toggled.
defaultValueOptional boolean default value if no value is defined.  Default is false.
cellsOptional array of mxCells whose styles should be modified.  Default is the selection cells.
+ +

setCellStyles

mxGraph.prototype.setCellStyles = function(key,
value,
cells)

Sets the key to value in the styles of the given cells.  This will modify the existing cell styles in-place and override any existing assignment for the given key.  If no cells are specified, then the selection cells are changed.  If no value is specified, then the respective key is removed from the styles.

Parameters

keyString representing the key to be assigned.
valueString representing the new value for the key.
cellsOptional array of mxCells to change the style for.  Default is the selection cells.
+ +

toggleCellStyleFlags

mxGraph.prototype.toggleCellStyleFlags = function(key,
flag,
cells)

Toggles the given bit for the given key in the styles of the specified cells.

Parameters

keyString representing the key to toggle the flag in.
flagInteger that represents the bit to be toggled.
cellsOptional array of mxCells to change the style for.  Default is the selection cells.
+ +

setCellStyleFlags

mxGraph.prototype.setCellStyleFlags = function(key,
flag,
value,
cells)

Sets or toggles the given bit for the given key in the styles of the specified cells.

Parameters

keyString representing the key to toggle the flag in.
flagInteger that represents the bit to be toggled.
valueBoolean value to be used or null if the value should be toggled.
cellsOptional array of mxCells to change the style for.  Default is the selection cells.
+ +

Cell alignment and orientation

+ +

alignCells

mxGraph.prototype.alignCells = function(align,
cells,
param)

Aligns the given cells vertically or horizontally according to the given alignment using the optional parameter as the coordinate.

Parameters

alignSpecifies the alignment.  Possible values are all constants in mxConstants with an ALIGN prefix.
cellsArray of mxCells to be aligned.
paramOptional coordinate for the alignment.
+ +

flipEdge

mxGraph.prototype.flipEdge = function(edge)

Toggles the style of the given edge between null (or empty) and alternateEdgeStyle.  This method fires mxEvent.FLIP_EDGE while the transaction is in progress.  Returns the edge that was flipped.

Here is an example that overrides this implementation to invert the value of mxConstants.STYLE_ELBOW without removing any existing styles.

graph.flipEdge = function(edge)
+{
+  if (edge != null)
+  {
+    var state = this.view.getState(edge);
+    var style = (state != null) ? state.style : this.getCellStyle(edge);
+
+    if (style != null)
+    {
+      var elbow = mxUtils.getValue(style, mxConstants.STYLE_ELBOW,
+          mxConstants.ELBOW_HORIZONTAL);
+      var value = (elbow == mxConstants.ELBOW_HORIZONTAL) ?
+          mxConstants.ELBOW_VERTICAL : mxConstants.ELBOW_HORIZONTAL;
+      this.setCellStyles(mxConstants.STYLE_ELBOW, value, [edge]);
+    }
+  }
+};

Parameters

edgemxCell whose style should be changed.
+ +

addImageBundle

mxGraph.prototype.addImageBundle = function(bundle)

Adds the specified mxImageBundle.

+ +

removeImageBundle

mxGraph.prototype.removeImageBundle = function(bundle)

Removes the specified mxImageBundle.

+ +

getImageFromBundles

mxGraph.prototype.getImageFromBundles = function(key)

Searches all imageBundles for the specified key and returns the value for the first match or null if the key is not found.

+ +

Order

+ +

orderCells

mxGraph.prototype.orderCells = function(back,
cells)

Moves the given cells to the front or back.  The change is carried out using cellsOrdered.  This method fires mxEvent.ORDER_CELLS while the transaction is in progress.

Parameters

backBoolean that specifies if the cells should be moved to back.
cellsArray of mxCells to move to the background.  If null is specified then the selection cells are used.
+ +

cellsOrdered

mxGraph.prototype.cellsOrdered = function(cells,
back)

Moves the given cells to the front or back.  This method fires mxEvent.CELLS_ORDERED while the transaction is in progress.

Parameters

cellsArray of mxCells whose order should be changed.
backBoolean that specifies if the cells should be moved to back.
+ +

Grouping

+ +

groupCells

mxGraph.prototype.groupCells = function(group,
border,
cells)

Adds the cells into the given group.  The change is carried out using cellsAdded, cellsMoved and cellsResized.  This method fires mxEvent.GROUP_CELLS while the transaction is in progress.  Returns the new group.  A group is only created if there is at least one entry in the given array of cells.

Parameters

groupmxCell that represents the target group.  If null is specified then a new group is created using createGroupCell.
borderOptional integer that specifies the border between the child area and the group bounds.  Default is 0.
cellsOptional array of mxCells to be grouped.  If null is specified then the selection cells are used.
+ +

getCellsForGroup

mxGraph.prototype.getCellsForGroup = function(cells)

Returns the cells with the same parent as the first cell in the given array.

+ +

getBoundsForGroup

mxGraph.prototype.getBoundsForGroup = function(group,
children,
border)

Returns the bounds to be used for the given group and children.

+ +

createGroupCell

mxGraph.prototype.createGroupCell = function(cells)

Hook for creating the group cell to hold the given array of mxCells if no group cell was given to the <group> function.

The following code can be used to set the style of new group cells.

var graphCreateGroupCell = graph.createGroupCell;
+graph.createGroupCell = function(cells)
+{
+  var group = graphCreateGroupCell.apply(this, arguments);
+  group.setStyle('group');
+
+  return group;
+};
+ +

ungroupCells

mxGraph.prototype.ungroupCells = function(cells)

Ungroups the given cells by moving the children the children to their parents parent and removing the empty groups.  Returns the children that have been removed from the groups.

Parameters

cellsArray of cells to be ungrouped.  If null is specified then the selection cells are used.
+ +

removeCellsFromParent

mxGraph.prototype.removeCellsFromParent = function(cells)

Removes the specified cells from their parents and adds them to the default parent.  Returns the cells that were removed from their parents.

Parameters

cellsArray of mxCells to be removed from their parents.
+ +

updateGroupBounds

mxGraph.prototype.updateGroupBounds = function(cells,
border,
moveGroup)

Updates the bounds of the given array of groups so that it includes all child vertices.

Parameters

cellsThe groups whose bounds should be updated.
borderOptional border to be added in the group.  Default is 0.
moveGroupOptional boolean that allows the group to be moved.  Default is false.
+ +

Cell cloning, insertion and removal

+ +

cloneCells

mxGraph.prototype.cloneCells = function(cells,
allowInvalidEdges)

Returns the clones for the given cells.  If the terminal of an edge is not in the given array, then the respective end is assigned a terminal point and the terminal is removed.

Parameters

cellsArray of mxCells to be cloned.
allowInvalidEdgesOptional boolean that specifies if invalid edges should be cloned.  Default is true.
+ +

insertVertex

mxGraph.prototype.insertVertex = function(parent,
id,
value,
x,
y,
width,
height,
style,
relative)

Adds a new vertex into the given parent mxCell using value as the user object and the given coordinates as the mxGeometry of the new vertex.  The id and style are used for the respective properties of the new mxCell, which is returned.

When adding new vertices from a mouse event, one should take into account the offset of the graph container and the scale and translation of the view in order to find the correct unscaled, untranslated coordinates using mxGraph.getPointForEvent as follows:

var pt = graph.getPointForEvent(evt);
+var parent = graph.getDefaultParent();
+graph.insertVertex(parent, null,
+         'Hello, World!', x, y, 220, 30);

For adding image cells, the style parameter can be assigned as

stylename;image=imageUrl

See mxGraph for more information on using images.

Parameters

parentmxCell that specifies the parent of the new vertex.
idOptional string that defines the Id of the new vertex.
valueObject to be used as the user object.
xInteger that defines the x coordinate of the vertex.
yInteger that defines the y coordinate of the vertex.
widthInteger that defines the width of the vertex.
heightInteger that defines the height of the vertex.
styleOptional string that defines the cell style.
relativeOptional boolean that specifies if the geometry is relative.  Default is false.
+ +

createVertex

mxGraph.prototype.createVertex = function(parent,
id,
value,
x,
y,
width,
height,
style,
relative)

Hook method that creates the new vertex for insertVertex.

+ +

insertEdge

mxGraph.prototype.insertEdge = function(parent,
id,
value,
source,
target,
style)

Adds a new edge into the given parent mxCell using value as the user object and the given source and target as the terminals of the new edge.  The id and style are used for the respective properties of the new mxCell, which is returned.

Parameters

parentmxCell that specifies the parent of the new edge.
idOptional string that defines the Id of the new edge.
valueJavaScript object to be used as the user object.
sourcemxCell that defines the source of the edge.
targetmxCell that defines the target of the edge.
styleOptional string that defines the cell style.
+ +

createEdge

mxGraph.prototype.createEdge = function(parent,
id,
value,
source,
target,
style)

Hook method that creates the new edge for insertEdge.  This implementation does not set the source and target of the edge, these are set when the edge is added to the model.

+ +

addEdge

mxGraph.prototype.addEdge = function(edge,
parent,
source,
target,
index)

Adds the edge to the parent and connects it to the given source and target terminals.  This is a shortcut method.  Returns the edge that was added.

Parameters

edgemxCell to be inserted into the given parent.
parentmxCell that represents the new parent.  If no parent is given then the default parent is used.
sourceOptional mxCell that represents the source terminal.
targetOptional mxCell that represents the target terminal.
indexOptional index to insert the cells at.  Default is to append.
+ +

addCell

mxGraph.prototype.addCell = function(cell,
parent,
index,
source,
target)

Adds the cell to the parent and connects it to the given source and target terminals.  This is a shortcut method.  Returns the cell that was added.

Parameters

cellmxCell to be inserted into the given parent.
parentmxCell that represents the new parent.  If no parent is given then the default parent is used.
indexOptional index to insert the cells at.  Default is to append.
sourceOptional mxCell that represents the source terminal.
targetOptional mxCell that represents the target terminal.
+ +

addCells

mxGraph.prototype.addCells = function(cells,
parent,
index,
source,
target)

Adds the cells to the parent at the given index, connecting each cell to the optional source and target terminal.  The change is carried out using cellsAdded.  This method fires mxEvent.ADD_CELLS while the transaction is in progress.  Returns the cells that were added.

Parameters

cellsArray of mxCells to be inserted.
parentmxCell that represents the new parent.  If no parent is given then the default parent is used.
indexOptional index to insert the cells at.  Default is to append.
sourceOptional source mxCell for all inserted cells.
targetOptional target mxCell for all inserted cells.
+ +

cellsAdded

mxGraph.prototype.cellsAdded = function(cells,
parent,
index,
source,
target,
absolute)

Adds the specified cells to the given parent.  This method fires mxEvent.CELLS_ADDED while the transaction is in progress.

+ +

removeCells

mxGraph.prototype.removeCells = function(cells,
includeEdges)

Removes the given cells from the graph including all connected edges if includeEdges is true.  The change is carried out using cellsRemoved.  This method fires mxEvent.REMOVE_CELLS while the transaction is in progress.  The removed cells are returned as an array.

Parameters

cellsArray of mxCells to remove.  If null is specified then the selection cells which are deletable are used.
includeEdgesOptional boolean which specifies if all connected edges should be removed as well.  Default is true.
+ +

cellsRemoved

mxGraph.prototype.cellsRemoved = function(cells)

Removes the given cells from the model.  This method fires mxEvent.CELLS_REMOVED while the transaction is in progress.

Parameters

cellsArray of mxCells to remove.
+ +

splitEdge

mxGraph.prototype.splitEdge = function(edge,
cells,
newEdge,
dx,
dy)

Splits the given edge by adding the newEdge between the previous source and the given cell and reconnecting the source of the given edge to the given cell.  This method fires mxEvent.SPLIT_EDGE while the transaction is in progress.  Returns the new edge that was inserted.

Parameters

edgemxCell that represents the edge to be splitted.
cellsmxCells that represents the cells to insert into the edge.
newEdgemxCell that represents the edge to be inserted.
dxOptional integer that specifies the vector to move the cells.
dyOptional integer that specifies the vector to move the cells.
+ +

Cell visibility

+ +

toggleCells

mxGraph.prototype.toggleCells = function(show,
cells,
includeEdges)

Sets the visible state of the specified cells and all connected edges if includeEdges is true.  The change is carried out using cellsToggled.  This method fires mxEvent.TOGGLE_CELLS while the transaction is in progress.  Returns the cells whose visible state was changed.

Parameters

showBoolean that specifies the visible state to be assigned.
cellsArray of mxCells whose visible state should be changed.  If null is specified then the selection cells are used.
includeEdgesOptional boolean indicating if the visible state of all connected edges should be changed as well.  Default is true.
+ +

cellsToggled

mxGraph.prototype.cellsToggled = function(cells,
show)

Sets the visible state of the specified cells.

Parameters

cellsArray of mxCells whose visible state should be changed.
showBoolean that specifies the visible state to be assigned.
+ +

Folding

+ +

foldCells

mxGraph.prototype.foldCells = function(collapse,
recurse,
cells,
checkFoldable)

Sets the collapsed state of the specified cells and all descendants if recurse is true.  The change is carried out using cellsFolded.  This method fires mxEvent.FOLD_CELLS while the transaction is in progress.  Returns the cells whose collapsed state was changed.

Parameters

collapsedBoolean indicating the collapsed state to be assigned.
recurseOptional boolean indicating if the collapsed state of all descendants should be set.  Default is false.
cellsArray of mxCells whose collapsed state should be set.  If null is specified then the foldable selection cells are used.
checkFoldableOptional boolean indicating of isCellFoldable should be checked.  Default is false.
+ +

cellsFolded

mxGraph.prototype.cellsFolded = function(cells,
collapse,
recurse,
checkFoldable)

Sets the collapsed state of the specified cells.  This method fires mxEvent.CELLS_FOLDED while the transaction is in progress.  Returns the cells whose collapsed state was changed.

Parameters

cellsArray of mxCells whose collapsed state should be set.
collapsedBoolean indicating the collapsed state to be assigned.
recurseBoolean indicating if the collapsed state of all descendants should be set.
checkFoldableOptional boolean indicating of isCellFoldable should be checked.  Default is false.
+ +

swapBounds

mxGraph.prototype.swapBounds = function(cell,
willCollapse)

Swaps the alternate and the actual bounds in the geometry of the given cell invoking updateAlternateBounds before carrying out the swap.

Parameters

cellmxCell for which the bounds should be swapped.
willCollapseBoolean indicating if the cell is going to be collapsed.
+ +

updateAlternateBounds

mxGraph.prototype.updateAlternateBounds = function(cell,
geo,
willCollapse)

Updates or sets the alternate bounds in the given geometry for the given cell depending on whether the cell is going to be collapsed.  If no alternate bounds are defined in the geometry and collapseToPreferredSize is true, then the preferred size is used for the alternate bounds.  The top, left corner is always kept at the same location.

Parameters

cellmxCell for which the geometry is being udpated.
gmxGeometry for which the alternate bounds should be updated.
willCollapseBoolean indicating if the cell is going to be collapsed.
+ +

addAllEdges

mxGraph.prototype.addAllEdges = function(cells)

Returns an array with the given cells and all edges that are connected to a cell or one of its descendants.

+ +

getAllEdges

mxGraph.prototype.getAllEdges = function(cells)

Returns all edges connected to the given cells or its descendants.

+ +

Cell sizing

+ +

updateCellSize

mxGraph.prototype.updateCellSize = function(cell,
ignoreChildren)

Updates the size of the given cell in the model using cellSizeUpdated.  This method fires mxEvent.UPDATE_CELL_SIZE while the transaction is in progress.  Returns the cell whose size was updated.

Parameters

cellmxCell whose size should be updated.
+ +

cellSizeUpdated

mxGraph.prototype.cellSizeUpdated = function(cell,
ignoreChildren)

Updates the size of the given cell in the model using getPreferredSizeForCell to get the new size.

Parameters

cellmxCell for which the size should be changed.
+ +

getPreferredSizeForCell

mxGraph.prototype.getPreferredSizeForCell = function(cell)

Returns the preferred width and height of the given mxCell as an mxRectangle.

Parameters

cellmxCell for which the preferred size should be returned.
+ +

handleGesture

mxGraph.prototype.handleGesture = function(state,
evt)

Invokes if a gesture event has been detected on a cell state.

Parameters

statemxCellState which was pinched.
evtObject that represents the gesture event.
+ +

resizeCell

mxGraph.prototype.resizeCell = function(cell,
bounds)

Sets the bounds of the given cell using resizeCells.  Returns the cell which was passed to the function.

Parameters

cellmxCell whose bounds should be changed.
boundsmxRectangle that represents the new bounds.
+ +

resizeCells

mxGraph.prototype.resizeCells = function(cells,
bounds)

Sets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS event while the transaction is in progress.  Returns the cells which have been passed to the function.

Parameters

cellsArray of mxCells whose bounds should be changed.
boundsArray of mxRectangles that represent the new bounds.
+ +

cellsResized

mxGraph.prototype.cellsResized = function(cells,
bounds)

Sets the bounds of the given cells and fires a mxEvent.CELLS_RESIZED event.  If extendParents is true, then the parent is extended if a child size is changed so that it overlaps with the parent.

Parameters

cellsArray of mxCells whose bounds should be changed.
boundsArray of mxRectangles that represent the new bounds.
+ +

extendParent

mxGraph.prototype.extendParent = function(cell)

Resizes the parents recursively so that they contain the complete area of the resized child cell.

Parameters

cellmxCell that has been resized.
+ +

Cell moving

+ +

importCells

mxGraph.prototype.importCells = function(cells,
dx,
dy,
target,
evt)

Clones and inserts the given cells into the graph using the move method and returns the inserted cells.  This shortcut is used if cells are inserted via datatransfer.

+ +

moveCells

mxGraph.prototype.moveCells = function(cells,
dx,
dy,
clone,
target,
evt)

Moves or clones the specified cells and moves the cells or clones by the given amount, adding them to the optional target cell.  The evt is the mouse event as the mouse was released.  The change is carried out using cellsMoved.  This method fires mxEvent.MOVE_CELLS while the transaction is in progress.  Returns the cells that were moved.

Use the following code to move all cells in the graph.

graph.moveCells(graph.getChildCells(null, true, true), 10, 10);

Parameters

cellsArray of mxCells to be moved, cloned or added to the target.
dxInteger that specifies the x-coordinate of the vector.  Default is 0.
dyInteger that specifies the y-coordinate of the vector.  Default is 0.
cloneBoolean indicating if the cells should be cloned.  Default is false.
targetmxCell that represents the new parent of the cells.
evtMouseevent that triggered the invocation.
+ +

cellsMoved

mxGraph.prototype.cellsMoved = function(cells,
dx,
dy,
disconnect,
constrain)

Moves the specified cells by the given vector, disconnecting the cells using disconnectGraph is disconnect is true.  This method fires mxEvent.CELLS_MOVED while the transaction is in progress.

+ +

translateCell

mxGraph.prototype.translateCell = function(cell,
dx,
dy)

Translates the geometry of the given cell and stores the new, translated geometry in the model as an atomic change.

+ +

getCellContainmentArea

mxGraph.prototype.getCellContainmentArea = function(cell)

Returns the mxRectangle inside which a cell is to be kept.

Parameters

cellmxCell for which the area should be returned.
+ +

getMaximumGraphBounds

mxGraph.prototype.getMaximumGraphBounds = function()

Returns the bounds inside which the diagram should be kept as an mxRectangle.

+ +

constrainChild

mxGraph.prototype.constrainChild = function(cell)

Keeps the given cell inside the bounds returned by getCellContainmentArea for its parent, according to the rules defined by getOverlap and isConstrainChild.  This modifies the cell’s geometry in-place and does not clone it.

Parameters

cellsmxCell which should be constrained.
+ +

resetEdges

mxGraph.prototype.resetEdges = function(cells)

Resets the control points of the edges that are connected to the given cells if not both ends of the edge are in the given cells array.

Parameters

cellsArray of mxCells for which the connected edges should be reset.
+ +

resetEdge

mxGraph.prototype.resetEdge = function(edge)

Resets the control points of the given edge.

Parameters

edgemxCell whose points should be reset.
+ +

Cell connecting and connection constraints

+ +

getAllConnectionConstraints

mxGraph.prototype.getAllConnectionConstraints = function(terminal,
source)

Returns an array of all mxConnectionConstraints for the given terminal.  If the shape of the given terminal is a mxStencilShape then the constraints of the corresponding mxStencil are returned.

Parameters

terminalmxCellState that represents the terminal.
sourceBoolean that specifies if the terminal is the source or target.
+ +

getConnectionConstraint

mxGraph.prototype.getConnectionConstraint = function(edge,
terminal,
source)

Returns an mxConnectionConstraint that describes the given connection point.  This result can then be passed to getConnectionPoint.

Parameters

edgemxCellState that represents the edge.
terminalmxCellState that represents the terminal.
sourceBoolean indicating if the terminal is the source or target.
+ +

setConnectionConstraint

mxGraph.prototype.setConnectionConstraint = function(edge,
terminal,
source,
constraint)

Sets the mxConnectionConstraint that describes the given connection point.  If no constraint is given then nothing is changed.  To remove an existing constraint from the given edge, use an empty constraint instead.

Parameters

edgemxCell that represents the edge.
terminalmxCell that represents the terminal.
sourceBoolean indicating if the terminal is the source or target.
constraintOptional mxConnectionConstraint to be used for this connection.
+ +

getConnectionPoint

mxGraph.prototype.getConnectionPoint = function(vertex,
constraint)

Returns the nearest point in the list of absolute points or the center of the opposite terminal.

Parameters

vertexmxCellState that represents the vertex.
constraintmxConnectionConstraint that represents the connection point constraint as returned by getConnectionConstraint.
+ +

connectCell

mxGraph.prototype.connectCell = function(edge,
terminal,
source,
constraint)

Connects the specified end of the given edge to the given terminal using cellConnected and fires mxEvent.CONNECT_CELL while the transaction is in progress.  Returns the updated edge.

Parameters

edgemxCell whose terminal should be updated.
terminalmxCell that represents the new terminal to be used.
sourceBoolean indicating if the new terminal is the source or target.
constraintOptional mxConnectionConstraint to be used for this connection.
+ +

cellConnected

mxGraph.prototype.cellConnected = function(edge,
terminal,
source,
constraint)

Sets the new terminal for the given edge and resets the edge points if resetEdgesOnConnect is true.  This method fires mxEvent.CELL_CONNECTED while the transaction is in progress.

Parameters

edgemxCell whose terminal should be updated.
terminalmxCell that represents the new terminal to be used.
sourceBoolean indicating if the new terminal is the source or target.
constraintmxConnectionConstraint to be used for this connection.
+ +

disconnectGraph

mxGraph.prototype.disconnectGraph = function(cells)

Disconnects the given edges from the terminals which are not in the given array.

Parameters

cellsArray of mxCells to be disconnected.
+ +

Drilldown

+ +

getCurrentRoot

mxGraph.prototype.getCurrentRoot = function()

Returns the current root of the displayed cell hierarchy.  This is a shortcut to mxGraphView.currentRoot in view.

+ +

getTranslateForRoot

mxGraph.prototype.getTranslateForRoot = function(cell)

Returns the translation to be used if the given cell is the root cell as an mxPoint.  This implementation returns null.

Example

To keep the children at their absolute position while drilling, this function can be overridden as follows.

var offset = new mxPoint(0, 0);
+
+while (cell != null)
+{
+  var geo = this.model.getGeometry(cell);
+
+  if (geo != null)
+  {
+    offset.x -= geo.x;
+    offset.y -= geo.y;
+  }
+
+  cell = this.model.getParent(cell);
+}
+
+return offset;

Parameters

cellmxCell that represents the root.
+ +

isPort

mxGraph.prototype.isPort = function(cell)

Returns true if the given cell is a “port”, that is, when connecting to it, the cell returned by getTerminalForPort should be used as the terminal and the port should be referenced by the ID in either the mxConstants.STYLE_SOURCE_PORT or the or the mxConstants.STYLE_TARGET_PORT.  Note that a port should not be movable.  This implementation always returns false.

A typical implementation is the following

graph.isPort = function(cell)
+{
+  var geo = this.getCellGeometry(cell);
+
+  return (geo != null) ? geo.relative : false;
+};

Parameters

cellmxCell that represents the port.
+ +

getTerminalForPort

mxGraph.prototype.getTerminalForPort = function(cell,
source)

Returns the terminal to be used for a given port.  This implementation always returns the parent cell.

Parameters

cellmxCell that represents the port.
sourceIf the cell is the source or target port.
+ +

getChildOffsetForCell

mxGraph.prototype.getChildOffsetForCell = function(cell)

Returns the offset to be used for the cells inside the given cell.  The root and layer cells may be identified using mxGraphModel.isRoot and mxGraphModel.isLayer.  For all other current roots, the mxGraphView.currentRoot field points to the respective cell, so that the following holds: cell == this.view.currentRoot.  This implementation returns null.

Parameters

cellmxCell whose offset should be returned.
+ +

enterGroup

mxGraph.prototype.enterGroup = function(cell)

Uses the given cell as the root of the displayed cell hierarchy.  If no cell is specified then the selection cell is used.  The cell is only used if isValidRoot returns true.

Parameters

cellOptional mxCell to be used as the new root.  Default is the selection cell.
+ +

exitGroup

mxGraph.prototype.exitGroup = function()

Changes the current root to the next valid root in the displayed cell hierarchy.

+ +

home

mxGraph.prototype.home = function()

Uses the root of the model as the root of the displayed cell hierarchy and selects the previous root.

+ +

isValidRoot

mxGraph.prototype.isValidRoot = function(cell)

Returns true if the given cell is a valid root for the cell display hierarchy.  This implementation returns true for all non-null values.

Parameters

cellmxCell which should be checked as a possible root.
+ +

Graph display

+ +

getGraphBounds

mxGraph.prototype.getGraphBounds = function()

Returns the bounds of the visible graph.  Shortcut to mxGraphView.getGraphBounds.  See also: getBoundingBoxFromGeometry.

+ +

getCellBounds

mxGraph.prototype.getCellBounds = function(cell,
includeEdges,
includeDescendants)

Returns the scaled, translated bounds for the given cell.  See mxGraphView.getBounds for arrays.

Parameters

cellmxCell whose bounds should be returned.
includeEdgeOptional boolean that specifies if the bounds of the connected edges should be included.  Default is false.
includeDescendantsOptional boolean that specifies if the bounds of all descendants should be included.  Default is false.
+ +

getBoundingBoxFromGeometry

mxGraph.prototype.getBoundingBoxFromGeometry = function(cells,
includeEdges)

Returns the bounding box for the geometries of the vertices in the given array of cells.  This can be used to find the graph bounds during a layout operation (ie. before the last endUpdate) as follows:

var cells = graph.getChildCells(graph.getDefaultParent(), true, true);
+var bounds = graph.getBoundingBoxFromGeometry(cells, true);

This can then be used to move cells to the origin

if (bounds.x < 0 || bounds.y < 0)
+{
+  graph.moveCells(cells, -Math.min(bounds.x, 0), -Math.min(bounds.y, 0))
+}

Or to translate the graph view

if (bounds.x < 0 || bounds.y < 0)
+{
+  graph.view.setTranslate(-Math.min(bounds.x, 0), -Math.min(bounds.y, 0));
+}

Parameters

cellsArray of mxCells whose bounds should be returned.
includeEdgesSpecifies if edge bounds should be included by computing the bounding box for all points its geometry.  Default is false.
+ +

refresh

mxGraph.prototype.refresh = function(cell)

Clears all cell states or the states for the hierarchy starting at the given cell and validates the graph.  This fires a refresh event as the last step.

Parameters

cellOptional mxCell for which the cell states should be cleared.
+ +

snap

mxGraph.prototype.snap = function(value)

Snaps the given numeric value to the grid if gridEnabled is true.

Parameters

valueNumeric value to be snapped to the grid.
+ +

panGraph

mxGraph.prototype.panGraph = function(dx,
dy)

Shifts the graph display by the given amount.  This is used to preview panning operations, use mxGraphView.setTranslate to set a persistent translation of the view.  Fires mxEvent.PAN.

Parameters

dxAmount to shift the graph along the x-axis.
dyAmount to shift the graph along the y-axis.
+ +

zoomIn

mxGraph.prototype.zoomIn = function()

Zooms into the graph by zoomFactor.

+ +

zoomOut

mxGraph.prototype.zoomOut = function()

Zooms out of the graph by zoomFactor.

+ +

zoomActual

mxGraph.prototype.zoomActual = function()

Resets the zoom and panning in the view.

+ +

zoom

mxGraph.prototype.zoom = function(factor)

Zooms the graph using the given factor.

+ +

fit

mxGraph.prototype.fit = function(border,
keepOrigin)

Scales the graph such that the complete diagram fits into <container> and returns the current scale in the view.

Parameters

borderOptional number that specifies the border.  Default is 0.
keepOriginOptional boolean that specifies if the translate should be changed.  Default is false.
+ +

scrollCellToVisible

mxGraph.prototype.scrollCellToVisible = function(cell,
center)

Pans the graph so that it shows the given cell.  Optionally the cell may be centered in the container.

To center a given graph if the <container> has no scrollbars, use the following code.

[code] var bounds = graph.getGraphBounds(); graph.view.setTranslate(-bounds.x - (bounds.width - container.clientWidth) / 2, -bounds.y - (bounds.height - container.clientHeight) / 2); [/code]

Parameters

cellmxCell to be made visible.
centerOptional boolean flag.  Default is false.
+ +

scrollRectToVisible

mxGraph.prototype.scrollRectToVisible = function(rect)

Pans the graph so that it shows the given rectangle.

Parameters

rectmxRectangle to be made visible.
scrollXOptional boolean that specifies if horizontal scrolling is allowed.  Default is true.
scrollYOptional boolean that specifies if vertical scrolling is allowed.  Default is true.
+ +

getCellGeometry

mxGraph.prototype.getCellGeometry = function(cell)

Returns the mxGeometry for the given cell.  This implementation uses mxGraphModel.getGeometry.  Subclasses can override this to implement specific geometries for cells in only one graph, that is, it can return geometries that depend on the current state of the view.

Parameters

cellmxCell whose geometry should be returned.
+ +

isCellVisible

mxGraph.prototype.isCellVisible = function(cell)

Returns true if the given cell is visible in this graph.  This implementation uses mxGraphModel.isVisible.  Subclassers can override this to implement specific visibility for cells in only one graph, that is, without affecting the visible state of the cell.

When using dynamic filter expressions for cell visibility, then the graph should be revalidated after the filter expression has changed.

Parameters

cellmxCell whose visible state should be returned.
+ +

isCellCollapsed

mxGraph.prototype.isCellCollapsed = function(cell)

Returns true if the given cell is collapsed in this graph.  This implementation uses mxGraphModel.isCollapsed.  Subclassers can override this to implement specific collapsed states for cells in only one graph, that is, without affecting the collapsed state of the cell.

When using dynamic filter expressions for the collapsed state, then the graph should be revalidated after the filter expression has changed.

Parameters

cellmxCell whose collapsed state should be returned.
+ +

isCellConnectable

mxGraph.prototype.isCellConnectable = function(cell)

Returns true if the given cell is connectable in this graph.  This implementation uses mxGraphModel.isConnectable.  Subclassers can override this to implement specific connectable states for cells in only one graph, that is, without affecting the connectable state of the cell in the model.

Parameters

cellmxCell whose connectable state should be returned.
+ +

isOrthogonal

mxGraph.prototype.isOrthogonal = function(edge)

Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.

Parameters

edgemxCellState that represents the edge.
+ +

isLoop

mxGraph.prototype.isLoop = function(state)

Returns true if the given cell state is a loop.

Parameters

statemxCellState that represents a potential loop.
+ +

isCloneEvent

mxGraph.prototype.isCloneEvent = function(evt)

Returns true if the given event is a clone event.  This implementation returns true if control is pressed.

+ +

isToggleEvent

mxGraph.prototype.isToggleEvent = function(evt)

Returns true if the given event is a toggle event.  This implementation returns true if control is pressed.

+ +

isGridEnabledEvent

mxGraph.prototype.isGridEnabledEvent = function(evt)

Returns true if the given mouse event should be aligned to the grid.

+ +

isConstrainedEvent

mxGraph.prototype.isConstrainedEvent = function(evt)

Returns true if the given mouse event should be aligned to the grid.

+ +

isForceMarqueeEvent

mxGraph.prototype.isForceMarqueeEvent = function(evt)

Returns true if the given event forces marquee selection.  This implementation returns true if alt or meta is pressed.

+ +

Validation

+ +

validationAlert

mxGraph.prototype.validationAlert = function(message)

Displays the given validation error in a dialog.  This implementation uses mxUtils.alert.

+ +

isEdgeValid

mxGraph.prototype.isEdgeValid = function(edge,
source,
target)

Checks if the return value of getEdgeValidationError for the given arguments is null.

Parameters

edgemxCell that represents the edge to validate.
sourcemxCell that represents the source terminal.
targetmxCell that represents the target terminal.
+ +

getEdgeValidationError

mxGraph.prototype.getEdgeValidationError = function(edge,
source,
target)

Returns the validation error message to be displayed when inserting or changing an edges’ connectivity.  A return value of null means the edge is valid, a return value of ‘’ means it’s not valid, but do not display an error message.  Any other (non-empty) string returned from this method is displayed as an error message when trying to connect an edge to a source and target.  This implementation uses the multiplicities, as well as multigraph and allowDanglingEdges to generate validation errors.

For extending this method with specific checks for source/target cells, the method can be extended as follows.  Returning an empty string means the edge is invalid with no error message, a non-null string specifies the error message, and null means the edge is valid.

graph.getEdgeValidationError = function(edge, source, target)
+{
+  if (source != null && target != null &&
+    this.model.getValue(source) != null &&
+    this.model.getValue(target) != null)
+  {
+    if (target is not valid for source)
+    {
+      return 'Invalid Target';
+    }
+  }
+
+  // "Supercall"
+  return mxGraph.prototype.getEdgeValidationError.apply(this, arguments);
+}

Parameters

edgemxCell that represents the edge to validate.
sourcemxCell that represents the source terminal.
targetmxCell that represents the target terminal.
+ +

validateEdge

mxGraph.prototype.validateEdge = function(edge,
source,
target)

Hook method for subclassers to return an error message for the given edge and terminals.  This implementation returns null.

Parameters

edgemxCell that represents the edge to validate.
sourcemxCell that represents the source terminal.
targetmxCell that represents the target terminal.
+ +

validateGraph

mxGraph.prototype.validateGraph = function(cell,
context)

Validates the graph by validating each descendant of the given cell or the root of the model.  Context is an object that contains the validation state for the complete validation run.  The validation errors are attached to their cells using setCellWarning.  This function returns true if no validation errors exist in the graph.

Paramters

cellOptional mxCell to start the validation recursion.  Default is the graph root.
contextObject that represents the global validation state.
+ +

getCellValidationError

mxGraph.prototype.getCellValidationError = function(cell)

Checks all multiplicities that cannot be enforced while the graph is being modified, namely, all multiplicities that require a minimum of 1 edge.

Parameters

cellmxCell for which the multiplicities should be checked.
+ +

validateCell

mxGraph.prototype.validateCell = function(cell,
context)

Hook method for subclassers to return an error message for the given cell and validation context.  This implementation returns null.  Any HTML breaks will be converted to linefeeds in the calling method.

Parameters

cellmxCell that represents the cell to validate.
contextObject that represents the global validation state.
+ +

Graph appearance

+ +

getBackgroundImage

mxGraph.prototype.getBackgroundImage = function()

Returns the backgroundImage as an mxImage.

+ +

setBackgroundImage

mxGraph.prototype.setBackgroundImage = function(image)

Sets the new backgroundImage.

Parameters

imageNew mxImage to be used for the background.
+ +

getFoldingImage

mxGraph.prototype.getFoldingImage = function(state)

Returns the mxImage used to display the collapsed state of the specified cell state.  This returns null for all edges.

+ +

convertValueToString

mxGraph.prototype.convertValueToString = function(cell)

Returns the textual representation for the given cell.  This implementation returns the nodename or string-representation of the user object.

Example

The following returns the label attribute from the cells user object if it is an XML node.

graph.convertValueToString = function(cell)
+{
+ return cell.getAttribute('label');
+}

See also: cellLabelChanged.

Parameters

cellmxCell whose textual representation should be returned.
+ +

getLabel

mxGraph.prototype.getLabel = function(cell)

Returns a string or DOM node that represents the label for the given cell.  This implementation uses convertValueToString if labelsVisible is true.  Otherwise it returns an empty string.

To truncate label to match the size of the cell, the following code can be used.

graph.getLabel = function(cell)
+{
+  var label = mxGraph.prototype.getLabel.apply(this, arguments);
+
+  if (label != null && this.model.isVertex(cell))
+  {
+    var geo = this.getCellGeometry(cell);
+
+    if (geo != null)
+    {
+      var max = parseInt(geo.width / 8);
+
+      if (label.length > max)
+      {
+        label = label.substring(0, max)+'...';
+      }
+    }
+  }
+  return mxUtils.htmlEntities(label);
+}

A resize listener is needed in the graph to force a repaint of the label after a resize.

graph.addListener(mxEvent.RESIZE_CELLS, function(sender, evt)
+{
+  var cells = evt.getProperty('cells');
+
+  for (var i = 0; i < cells.length; i++)
+  {
+    this.view.removeState(cells[i]);
+  }
+});

Parameters

cellmxCell whose label should be returned.
+ +

isHtmlLabel

mxGraph.prototype.isHtmlLabel = function(cell)

Returns true if the label must be rendered as HTML markup.  The default implementation returns htmlLabels.

Parameters

cellmxCell whose label should be displayed as HTML markup.
+ +

isHtmlLabels

mxGraph.prototype.isHtmlLabels = function()

Returns htmlLabels.

+ +

setHtmlLabels

mxGraph.prototype.setHtmlLabels = function(value)

Sets htmlLabels.

+ +

isWrapping

mxGraph.prototype.isWrapping = function(cell)

This enables wrapping for HTML labels.

Returns true if no white-space CSS style directive should be used for displaying the given cells label.  This implementation returns true if mxConstants.STYLE_WHITE_SPACE in the style of the given cell is ‘wrap’.

This is used as a workaround for IE ignoring the white-space directive of child elements if the directive appears in a parent element.  It should be overridden to return true if a white-space directive is used in the HTML markup that represents the given cells label.  In order for HTML markup to work in labels, isHtmlLabel must also return true for the given cell.

Example

graph.getLabel = function(cell)
+{
+  var tmp = mxGraph.prototype.getLabel.apply(this, arguments); // "supercall"
+
+  if (this.model.isEdge(cell))
+  {
+    tmp = '<div style="width: 150px; white-space:normal;">'+tmp+'</div>';
+  }
+
+  return tmp;
+}
+
+graph.isWrapping = function(state)
+{
+  return this.model.isEdge(state.cell);
+}

Makes sure no edge label is wider than 150 pixels, otherwise the content is wrapped.  Note: No width must be specified for wrapped vertex labels as the vertex defines the width in its geometry.

Parameters

statemxCell whose label should be wrapped.
+ +

isLabelClipped

mxGraph.prototype.isLabelClipped = function(cell)

Returns true if the overflow portion of labels should be hidden.  If this returns true then vertex labels will be clipped to the size of the vertices.  This implementation returns true if mxConstants.STYLE_OVERFLOW in the style of the given cell is ‘hidden’.

Parameters

statemxCell whose label should be clipped.
+ +

getTooltip

mxGraph.prototype.getTooltip = function(state,
node,
x,
y)

Returns the string or DOM node that represents the tooltip for the given state, node and coordinate pair.  This implementation checks if the given node is a folding icon or overlay and returns the respective tooltip.  If this does not result in a tooltip, the handler for the cell is retrieved from <selectionCellsHandler> and the optional getTooltipForNode method is called.  If no special tooltip exists here then getTooltipForCell is used with the cell in the given state as the argument to return a tooltip for the given state.

Parameters

statemxCellState whose tooltip should be returned.
nodeDOM node that is currently under the mouse.
xX-coordinate of the mouse.
yY-coordinate of the mouse.
+ +

getTooltipForCell

mxGraph.prototype.getTooltipForCell = function(cell)

Returns the string or DOM node to be used as the tooltip for the given cell.  This implementation uses the cells getTooltip function if it exists, or else it returns convertValueToString for the cell.

Example

graph.getTooltipForCell = function(cell)
+{
+  return 'Hello, World!';
+}

Replaces all tooltips with the string Hello, World!

Parameters

cellmxCell whose tooltip should be returned.
+ +

getCursorForCell

mxGraph.prototype.getCursorForCell = function(cell)

Returns the cursor value to be used for the CSS of the shape for the given cell.  This implementation returns null.

Parameters

cellmxCell whose cursor should be returned.
+ +

getStartSize

mxGraph.prototype.getStartSize = function(swimlane)

Returns the start size of the given swimlane, that is, the width or height of the part that contains the title, depending on the horizontal style.  The return value is an mxRectangle with either width or height set as appropriate.

Parameters

swimlanemxCell whose start size should be returned.
+ +

getImage

mxGraph.prototype.getImage = function(state)

Returns the image URL for the given cell state.  This implementation returns the value stored under mxConstants.STYLE_IMAGE in the cell style.

Parameters

statemxCellState whose image URL should be returned.
+ +

getVerticalAlign

mxGraph.prototype.getVerticalAlign = function(state)

Returns the vertical alignment for the given cell state.  This implementation returns the value stored under mxConstants.STYLE_VERTICAL_ALIGN in the cell style.

Parameters

statemxCellState whose vertical alignment should be returned.
+ +

getIndicatorColor

mxGraph.prototype.getIndicatorColor = function(state)

Returns the indicator color for the given cell state.  This implementation returns the value stored under mxConstants.STYLE_INDICATOR_COLOR in the cell style.

Parameters

statemxCellState whose indicator color should be returned.
+ +

getIndicatorGradientColor

mxGraph.prototype.getIndicatorGradientColor = function(state)

Returns the indicator gradient color for the given cell state.  This implementation returns the value stored under mxConstants.STYLE_INDICATOR_GRADIENTCOLOR in the cell style.

Parameters

statemxCellState whose indicator gradient color should be returned.
+ +

getIndicatorShape

mxGraph.prototype.getIndicatorShape = function(state)

Returns the indicator shape for the given cell state.  This implementation returns the value stored under mxConstants.STYLE_INDICATOR_SHAPE in the cell style.

Parameters

statemxCellState whose indicator shape should be returned.
+ +

getIndicatorImage

mxGraph.prototype.getIndicatorImage = function(state)

Returns the indicator image for the given cell state.  This implementation returns the value stored under mxConstants.STYLE_INDICATOR_IMAGE in the cell style.

Parameters

statemxCellState whose indicator image should be returned.
+ +

getBorder

mxGraph.prototype.getBorder = function()

Returns the value of border.

+ +

setBorder

mxGraph.prototype.setBorder = function(value)

Sets the value of border.

Parameters

valuePositive integer that represents the border to be used.
+ +

isSwimlane

mxGraph.prototype.isSwimlane = function (cell)

Returns true if the given cell is a swimlane in the graph.  A swimlane is a container cell with some specific behaviour.  This implementation checks if the shape associated with the given cell is a mxSwimlane.

Parameters

cellmxCell to be checked.
+ +

Graph behaviour

+ +

isResizeContainer

mxGraph.prototype.isResizeContainer = function()

Returns resizeContainer.

+ +

setResizeContainer

mxGraph.prototype.setResizeContainer = function(value)

Sets resizeContainer.

Parameters

valueBoolean indicating if the container should be resized.
+ +

isEnabled

mxGraph.prototype.isEnabled = function()

Returns true if the graph is enabled.

+ +

setEnabled

mxGraph.prototype.setEnabled = function(value)

Specifies if the graph should allow any interactions.  This implementation updates enabled.

Parameters

valueBoolean indicating if the graph should be enabled.
+ +

isEscapeEnabled

mxGraph.prototype.isEscapeEnabled = function()

Returns escapeEnabled.

+ +

setEscapeEnabled

mxGraph.prototype.setEscapeEnabled = function(value)

Sets escapeEnabled.

Parameters

enabledBoolean indicating if escape should be enabled.
+ +

isInvokesStopCellEditing

mxGraph.prototype.isInvokesStopCellEditing = function()

Returns invokesStopCellEditing.

+ +

setInvokesStopCellEditing

mxGraph.prototype.setInvokesStopCellEditing = function(value)

Sets invokesStopCellEditing.

+ +

isEnterStopsCellEditing

mxGraph.prototype.isEnterStopsCellEditing = function()

Returns enterStopsCellEditing.

+ +

setEnterStopsCellEditing

mxGraph.prototype.setEnterStopsCellEditing = function(value)

Sets enterStopsCellEditing.

+ +

isCellLocked

mxGraph.prototype.isCellLocked = function(cell)

Returns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.  This implementation returns true for all vertices with a relative geometry if <locked> is false.

Parameters

cellmxCell whose locked state should be returned.
+ +

isCellsLocked

mxGraph.prototype.isCellsLocked = function()

Returns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.  This implementation returns true for all vertices with a relative geometry if <locked> is false.

Parameters

cellmxCell whose locked state should be returned.
+ +

setLocked

Sets if any cell may be moved, sized, bended, disconnected, edited or selected.

Parameters

valueBoolean that defines the new value for cellsLocked.
+ +

getCloneableCells

mxGraph.prototype.getCloneableCells = function(cells)

Returns the cells which may be exported in the given array of cells.

+ +

isCellCloneable

mxGraph.prototype.isCellCloneable = function(cell)

Returns true if the given cell is cloneable.  This implementation returns isCellsCloneable for all cells unless a cell style specifies mxConstants.STYLE_CLONEABLE to be 0.

Parameters

cellOptional mxCell whose cloneable state should be returned.
+ +

isCellsCloneable

mxGraph.prototype.isCellsCloneable = function()

Returns cellsCloneable, that is, if the graph allows cloning of cells by using control-drag.

+ +

setCellsCloneable

mxGraph.prototype.setCellsCloneable = function(value)

Specifies if the graph should allow cloning of cells by holding down the control key while cells are being moved.  This implementation updates cellsCloneable.

Parameters

valueBoolean indicating if the graph should be cloneable.
+ +

getExportableCells

mxGraph.prototype.getExportableCells = function(cells)

Returns the cells which may be exported in the given array of cells.

+ +

canExportCell

mxGraph.prototype.canExportCell = function(cell)

Returns true if the given cell may be exported to the clipboard.  This implementation returns exportEnabled for all cells.

Parameters

cellmxCell that represents the cell to be exported.
+ +

getImportableCells

mxGraph.prototype.getImportableCells = function(cells)

Returns the cells which may be imported in the given array of cells.

+ +

canImportCell

mxGraph.prototype.canImportCell = function(cell)

Returns true if the given cell may be imported from the clipboard.  This implementation returns importEnabled for all cells.

Parameters

cellmxCell that represents the cell to be imported.
+ +

isCellSelectable

mxGraph.prototype.isCellSelectable = function(cell)

Returns true if the given cell is selectable.  This implementation returns cellsSelectable.

To add a new style for making cells (un)selectable, use the following code.

mxGraph.prototype.isCellSelectable = function(cell)
+{
+  var state = this.view.getState(cell);
+  var style = (state != null) ? state.style : this.getCellStyle(cell);
+
+  return this.isCellsSelectable() && !this.isCellLocked(cell) && style['selectable'] != 0;
+};

You can then use the new style as shown in this example.

graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30, 'selectable=0');

Parameters

cellmxCell whose selectable state should be returned.
+ +

isCellsSelectable

mxGraph.prototype.isCellsSelectable = function()

Returns cellsSelectable.

+ +

setCellsSelectable

mxGraph.prototype.setCellsSelectable = function(value)

Sets cellsSelectable.

+ +

getDeletableCells

mxGraph.prototype.getDeletableCells = function(cells)

Returns the cells which may be exported in the given array of cells.

+ +

isCellDeletable

mxGraph.prototype.isCellDeletable = function(cell)

Returns true if the given cell is moveable.  This returns cellsDeletable for all given cells if a cells style does not specify mxConstants.STYLE_DELETABLE to be 0.

Parameters

cellmxCell whose deletable state should be returned.
+ +

isCellsDeletable

mxGraph.prototype.isCellsDeletable = function()

Returns cellsDeletable.

+ +

setCellsDeletable

mxGraph.prototype.setCellsDeletable = function(value)

Sets cellsDeletable.

Parameters

valueBoolean indicating if the graph should allow deletion of cells.
+ +

isLabelMovable

mxGraph.prototype.isLabelMovable = function(cell)

Returns true if the given edges’s label is moveable.  This returns <movable> for all given cells if <isLocked> does not return true for the given cell.

Parameters

cellmxCell whose label should be moved.
+ +

getMovableCells

mxGraph.prototype.getMovableCells = function(cells)

Returns the cells which are movable in the given array of cells.

+ +

isCellMovable

mxGraph.prototype.isCellMovable = function(cell)

Returns true if the given cell is moveable.  This returns cellsMovable for all given cells if isCellLocked does not return true for the given cell and its style does not specify mxConstants.STYLE_MOVABLE to be 0.

Parameters

cellmxCell whose movable state should be returned.
+ +

isCellsMovable

mxGraph.prototype.isCellsMovable = function()

Returns cellsMovable.

+ +

setCellsMovable

mxGraph.prototype.setCellsMovable = function(value)

Specifies if the graph should allow moving of cells.  This implementation updates <cellsMsovable>.

Parameters

valueBoolean indicating if the graph should allow moving of cells.
+ +

isGridEnabled

mxGraph.prototype.isGridEnabled = function()

Returns gridEnabled as a boolean.

+ +

setGridEnabled

mxGraph.prototype.setGridEnabled = function(value)

Specifies if the grid should be enabled.

Parameters

valueBoolean indicating if the grid should be enabled.
+ +

isPortsEnabled

mxGraph.prototype.isPortsEnabled = function()

Returns portsEnabled as a boolean.

+ +

setPortsEnabled

mxGraph.prototype.setPortsEnabled = function(value)

Specifies if the ports should be enabled.

Parameters

valueBoolean indicating if the ports should be enabled.
+ +

getGridSize

mxGraph.prototype.getGridSize = function()

Returns gridSize.

+ +

setGridSize

mxGraph.prototype.setGridSize = function(value)

Sets gridSize.

+ +

getTolerance

mxGraph.prototype.getTolerance = function()

Returns tolerance.

+ +

setTolerance

mxGraph.prototype.setTolerance = function(value)

Sets tolerance.

+ +

isVertexLabelsMovable

mxGraph.prototype.isVertexLabelsMovable = function()

Returns vertexLabelsMovable.

+ +

setVertexLabelsMovable

mxGraph.prototype.setVertexLabelsMovable = function(value)

Sets vertexLabelsMovable.

+ +

isEdgeLabelsMovable

mxGraph.prototype.isEdgeLabelsMovable = function()

Returns edgeLabelsMovable.

+ +

isEdgeLabelsMovable

+ +

isSwimlaneNesting

mxGraph.prototype.isSwimlaneNesting = function()

Returns swimlaneNesting as a boolean.

+ +

setSwimlaneNesting

mxGraph.prototype.setSwimlaneNesting = function(value)

Specifies if swimlanes can be nested by drag and drop.  This is only taken into account if dropEnabled is true.

Parameters

valueBoolean indicating if swimlanes can be nested.
+ +

isSwimlaneSelectionEnabled

mxGraph.prototype.isSwimlaneSelectionEnabled = function()

Returns swimlaneSelectionEnabled as a boolean.

+ +

setSwimlaneSelectionEnabled

mxGraph.prototype.setSwimlaneSelectionEnabled = function(value)

Specifies if swimlanes should be selected if the mouse is released over their content area.

Parameters

valueBoolean indicating if swimlanes content areas should be selected when the mouse is released over them.
+ +

isMultigraph

mxGraph.prototype.isMultigraph = function()

Returns multigraph as a boolean.

+ +

setMultigraph

mxGraph.prototype.setMultigraph = function(value)

Specifies if the graph should allow multiple connections between the same pair of vertices.

Parameters

valueBoolean indicating if the graph allows multiple connections between the same pair of vertices.
+ +

isAllowLoops

mxGraph.prototype.isAllowLoops = function()

Returns allowLoops as a boolean.

+ +

setAllowDanglingEdges

mxGraph.prototype.setAllowDanglingEdges = function(value)

Specifies if dangling edges are allowed, that is, if edges are allowed that do not have a source and/or target terminal defined.

Parameters

valueBoolean indicating if dangling edges are allowed.
+ +

isAllowDanglingEdges

mxGraph.prototype.isAllowDanglingEdges = function()

Returns allowDanglingEdges as a boolean.

+ +

setConnectableEdges

mxGraph.prototype.setConnectableEdges = function(value)

Specifies if edges should be connectable.

Parameters

valueBoolean indicating if edges should be connectable.
+ +

isConnectableEdges

mxGraph.prototype.isConnectableEdges = function()

Returns connectableEdges as a boolean.

+ +

setCloneInvalidEdges

mxGraph.prototype.setCloneInvalidEdges = function(value)

Specifies if edges should be inserted when cloned but not valid wrt.  getEdgeValidationError.  If false such edges will be silently ignored.

Parameters

valueBoolean indicating if cloned invalid edges should be inserted into the graph or ignored.
+ +

isCloneInvalidEdges

mxGraph.prototype.isCloneInvalidEdges = function()

Returns cloneInvalidEdges as a boolean.

+ +

setAllowLoops

mxGraph.prototype.setAllowLoops = function(value)

Specifies if loops are allowed.

Parameters

valueBoolean indicating if loops are allowed.
+ +

isDisconnectOnMove

mxGraph.prototype.isDisconnectOnMove = function()

Returns disconnectOnMove as a boolean.

+ +

setDisconnectOnMove

mxGraph.prototype.setDisconnectOnMove = function(value)

Specifies if edges should be disconnected when moved.  (Note: Cloned edges are always disconnected.)

Parameters

valueBoolean indicating if edges should be disconnected when moved.
+ +

isDropEnabled

mxGraph.prototype.isDropEnabled = function()

Returns dropEnabled as a boolean.

+ +

setDropEnabled

mxGraph.prototype.setDropEnabled = function(value)

Specifies if the graph should allow dropping of cells onto or into other cells.

Parameters

dropEnabledBoolean indicating if the graph should allow dropping of cells into other cells.
+ +

isSplitEnabled

mxGraph.prototype.isSplitEnabled = function()

Returns splitEnabled as a boolean.

+ +

setSplitEnabled

mxGraph.prototype.setSplitEnabled = function(value)

Specifies if the graph should allow dropping of cells onto or into other cells.

Parameters

dropEnabledBoolean indicating if the graph should allow dropping of cells into other cells.
+ +

isCellResizable

mxGraph.prototype.isCellResizable = function(cell)

Returns true if the given cell is resizable.  This returns cellsResizable for all given cells if isCellLocked does not return true for the given cell and its style does not specify mxConstants.STYLE_RESIZABLE to be 0.

Parameters

cellmxCell whose resizable state should be returned.
+ +

isCellsResizable

mxGraph.prototype.isCellsResizable = function()

Returns cellsResizable.

+ +

setCellsResizable

mxGraph.prototype.setCellsResizable = function(value)

Specifies if the graph should allow resizing of cells.  This implementation updates cellsResizable.

Parameters

valueBoolean indicating if the graph should allow resizing of cells.
+ +

isTerminalPointMovable

mxGraph.prototype.isTerminalPointMovable = function(cell,
source)

Returns true if the given terminal point is movable.  This is independent from isCellConnectable and isCellDisconnectable and controls if terminal points can be moved in the graph if the edge is not connected.  Note that it is required for this to return true to connect unconnected edges.  This implementation returns true.

Parameters

cellmxCell whose terminal point should be moved.
sourceBoolean indicating if the source or target terminal should be moved.
+ +

isCellBendable

mxGraph.prototype.isCellBendable = function(cell)

Returns true if the given cell is bendable.  This returns cellsBendable for all given cells if <isLocked> does not return true for the given cell and its style does not specify mxConstants.STYLE_BENDABLE to be 0.

Parameters

cellmxCell whose bendable state should be returned.
+ +

isCellsBendable

mxGraph.prototype.isCellsBendable = function()

Returns <cellsBenadable>.

+ +

setCellsBendable

mxGraph.prototype.setCellsBendable = function(value)

Specifies if the graph should allow bending of edges.  This implementation updates <bendable>.

Parameters

valueBoolean indicating if the graph should allow bending of edges.
+ +

isCellEditable

mxGraph.prototype.isCellEditable = function(cell)

Returns true if the given cell is editable.  This returns cellsEditable for all given cells if isCellLocked does not return true for the given cell and its style does not specify mxConstants.STYLE_EDITABLE to be 0.

Parameters

cellmxCell whose editable state should be returned.
+ +

isCellsEditable

mxGraph.prototype.isCellsEditable = function()

Returns cellsEditable.

+ +

setCellsEditable

mxGraph.prototype.setCellsEditable = function(value)

Specifies if the graph should allow in-place editing for cell labels.  This implementation updates cellsEditable.

Parameters

valueBoolean indicating if the graph should allow in-place editing.
+ +

isCellDisconnectable

mxGraph.prototype.isCellDisconnectable = function(cell,
terminal,
source)

Returns true if the given cell is disconnectable from the source or target terminal.  This returns isCellsDisconnectable for all given cells if isCellLocked does not return true for the given cell.

Parameters

cellmxCell whose disconnectable state should be returned.
terminalmxCell that represents the source or target terminal.
sourceBoolean indicating if the source or target terminal is to be disconnected.
+ +

isCellsDisconnectable

mxGraph.prototype.isCellsDisconnectable = function()

Returns cellsDisconnectable.

+ +

setCellsDisconnectable

mxGraph.prototype.setCellsDisconnectable = function(value)

Sets cellsDisconnectable.

+ +

isValidSource

mxGraph.prototype.isValidSource = function(cell)

Returns true if the given cell is a valid source for new connections.  This implementation returns true for all non-null values and is called by is called by isValidConnection.

Parameters

cellmxCell that represents a possible source or null.
+ +

isValidTarget

mxGraph.prototype.isValidTarget = function(cell)

Returns isValidSource for the given cell.  This is called by isValidConnection.

Parameters

cellmxCell that represents a possible target or null.
+ +

isValidConnection

mxGraph.prototype.isValidConnection = function(source,
target)

Returns true if the given target cell is a valid target for source.  This is a boolean implementation for not allowing connections between certain pairs of vertices and is called by getEdgeValidationError.  This implementation returns true if isValidSource returns true for the source and isValidTarget returns true for the target.

Parameters

sourcemxCell that represents the source cell.
targetmxCell that represents the target cell.
+ +

setConnectable

mxGraph.prototype.setConnectable = function(connectable)

Specifies if the graph should allow new connections.  This implementation updates mxConnectionHandler.enabled in <connectionHandler>.

Parameters

connectableBoolean indicating if new connections should be allowed.
+ +

isConnectable

mxGraph.prototype.isConnectable = function(connectable)

Returns true if the <connectionHandler> is enabled.

+ +

setTooltips

mxGraph.prototype.setTooltips = function (enabled)

Specifies if tooltips should be enabled.  This implementation updates mxTooltipHandler.enabled in <tooltipHandler>.

Parameters

enabledBoolean indicating if tooltips should be enabled.
+ +

setPanning

mxGraph.prototype.setPanning = function(enabled)

Specifies if panning should be enabled.  This implementation updates mxPanningHandler.panningEnabled in <panningHandler>.

Parameters

enabledBoolean indicating if panning should be enabled.
+ +

isEditing

mxGraph.prototype.isEditing = function(cell)

Returns true if the given cell is currently being edited.  If no cell is specified then this returns true if any cell is currently being edited.

Parameters

cellmxCell that should be checked.
+ +

isAutoSizeCell

mxGraph.prototype.isAutoSizeCell = function(cell)

Returns true if the size of the given cell should automatically be updated after a change of the label.  This implementation returns autoSizeCells or checks if the cell style does specify mxConstants.STYLE_AUTOSIZE to be 1.

Parameters

cellmxCell that should be resized.
+ +

isAutoSizeCells

mxGraph.prototype.isAutoSizeCells = function()

Returns autoSizeCells.

+ +

setAutoSizeCells

mxGraph.prototype.setAutoSizeCells = function(value)

Specifies if cell sizes should be automatically updated after a label change.  This implementation sets autoSizeCells to the given parameter.

Parameters

valueBoolean indicating if cells should be resized automatically.
+ +

isExtendParent

mxGraph.prototype.isExtendParent = function(cell)

Returns true if the parent of the given cell should be extended if the child has been resized so that it overlaps the parent.  This implementation returns isExtendParents if the cell is not an edge.

Parameters

cellmxCell that has been resized.
+ +

isExtendParents

mxGraph.prototype.isExtendParents = function()

Returns extendParents.

+ +

setExtendParents

mxGraph.prototype.setExtendParents = function(value)

Sets extendParents.

Parameters

valueNew boolean value for extendParents.
+ +

isExtendParentsOnAdd

mxGraph.prototype.isExtendParentsOnAdd = function()

Returns extendParentsOnAdd.

+ +

setExtendParentsOnAdd

mxGraph.prototype.setExtendParentsOnAdd = function(value)

Sets extendParentsOnAdd.

Parameters

valueNew boolean value for extendParentsOnAdd.
+ +

isConstrainChild

mxGraph.prototype.isConstrainChild = function(cell)

Returns true if the given cell should be kept inside the bounds of its parent according to the rules defined by getOverlap and isAllowOverlapParent.  This implementation returns false for all children of edges and isConstrainChildren otherwise.

Parameters

cellmxCell that should be constrained.
+ +

isConstrainChildren

mxGraph.prototype.isConstrainChildren = function()

Returns constrainChildren.

+ +

setConstrainChildren

mxGraph.prototype.setConstrainChildren = function(value)

Sets constrainChildren.

+ +

isConstrainChildren

+ +

setConstrainChildren

+ +

getOverlap

mxGraph.prototype.getOverlap = function(cell)

Returns a decimal number representing the amount of the width and height of the given cell that is allowed to overlap its parent.  A value of 0 means all children must stay inside the parent, 1 means the child is allowed to be placed outside of the parent such that it touches one of the parents sides.  If isAllowOverlapParent returns false for the given cell, then this method returns 0.

Parameters

cellmxCell for which the overlap ratio should be returned.
+ +

isAllowOverlapParent

mxGraph.prototype.isAllowOverlapParent = function(cell)

Returns true if the given cell is allowed to be placed outside of the parents area.

Parameters

cellmxCell that represents the child to be checked.
+ +

getFoldableCells

mxGraph.prototype.getFoldableCells = function(cells,
collapse)

Returns the cells which are movable in the given array of cells.

+ +

isCellFoldable

mxGraph.prototype.isCellFoldable = function(cell,
collapse)

Returns true if the given cell is foldable.  This implementation returns true if the cell has at least one child and its style does not specify mxConstants.STYLE_FOLDABLE to be 0.

Parameters

cellmxCell whose foldable state should be returned.
+ +

isValidDropTarget

mxGraph.prototype.isValidDropTarget = function(cell,
cells,
evt)

Returns true if the given cell is a valid drop target for the specified cells.  If the given cell is an edge, then <isSplitDropTarget> is used, else <isParentDropTarget> is used to compute the return value.

Parameters

cellmxCell that represents the possible drop target.
cellsmxCells that should be dropped into the target.
evtMouseevent that triggered the invocation.
+ +

isSplitTarget

mxGraph.prototype.isSplitTarget = function(target,
cells,
evt)

Returns true if the given edge may be splitted into two edges with the given cell as a new terminal between the two.

Parameters

targetmxCell that represents the edge to be splitted.
cellsmxCells that should split the edge.
evtMouseevent that triggered the invocation.
+ +

getDropTarget

mxGraph.prototype.getDropTarget = function(cells,
evt,
cell)

Returns the given cell if it is a drop target for the given cells or the nearest ancestor that may be used as a drop target for the given cells.  If the given array contains a swimlane and swimlaneNesting is false then this always returns null.  If no cell is given, then the bottommost swimlane at the location of the given event is returned.

This function should only be used if isDropEnabled returns true.

Parameters

cellsArray of mxCells which are to be dropped onto the target.
evtMouseevent for the drag and drop.
cellmxCell that is under the mousepointer.
+ +

Cell retrieval

+ +

getDefaultParent

mxGraph.prototype.getDefaultParent = function()

Returns defaultParent or mxGraphView.currentRoot or the first child child of mxGraphModel.root if both are null.  The value returned by this function should be used as the parent for new cells (aka default layer).

+ +

setDefaultParent

mxGraph.prototype.setDefaultParent = function(cell)

Sets the defaultParent to the given cell.  Set this to null to return the first child of the root in getDefaultParent.

+ +

getSwimlane

mxGraph.prototype.getSwimlane = function(cell)

Returns the nearest ancestor of the given cell which is a swimlane, or the given cell, if it is itself a swimlane.

Parameters

cellmxCell for which the ancestor swimlane should be returned.
+ +

getSwimlaneAt

mxGraph.prototype.getSwimlaneAt = function (x,
y,
parent)

Returns the bottom-most swimlane that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.

Parameters

xX-coordinate of the location to be checked.
yY-coordinate of the location to be checked.
parentmxCell that should be used as the root of the recursion.  Default is defaultParent.
+ +

getCellAt

mxGraph.prototype.getCellAt = function(x,
y,
parent,
vertices,
edges)

Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.  This will also return swimlanes if the given location intersects the content area of the swimlane.  If this is not desired, then the hitsSwimlaneContent may be used if the returned cell is a swimlane to determine if the location is inside the content area or on the actual title of the swimlane.

Parameters

xX-coordinate of the location to be checked.
yY-coordinate of the location to be checked.
parentmxCell that should be used as the root of the recursion.  Default is defaultParent.
verticesOptional boolean indicating if vertices should be returned.  Default is true.
edgesOptional boolean indicating if edges should be returned.  Default is true.
+ +

intersects

mxGraph.prototype.intersects = function(state,
x,
y)

Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.

Parameters

statemxCellState that represents the cell state.
xX-coordinate of the location to be checked.
yY-coordinate of the location to be checked.
+ +

hitsSwimlaneContent

mxGraph.prototype.hitsSwimlaneContent = function(swimlane,
x,
y)

Returns true if the given coordinate pair is inside the content are of the given swimlane.

Parameters

swimlanemxCell that specifies the swimlane.
xX-coordinate of the mouse event.
yY-coordinate of the mouse event.
+ +

getChildVertices

mxGraph.prototype.getChildVertices = function(parent)

Returns the visible child vertices of the given parent.

Parameters

parentmxCell whose children should be returned.
+ +

getChildEdges

mxGraph.prototype.getChildEdges = function(parent)

Returns the visible child edges of the given parent.

Parameters

parentmxCell whose child vertices should be returned.
+ +

getChildCells

mxGraph.prototype.getChildCells = function(parent,
vertices,
edges)

Returns the visible child vertices or edges in the given parent.  If vertices and edges is false, then all children are returned.

Parameters

parentmxCell whose children should be returned.
verticesOptional boolean that specifies if child vertices should be returned.  Default is false.
edgesOptional boolean that specifies if child edges should be returned.  Default is false.
+ +

getConnections

mxGraph.prototype.getConnections = function(cell,
parent)

Returns all visible edges connected to the given cell without loops.

Parameters

cellmxCell whose connections should be returned.
parentOptional parent of the opposite end for a connection to be returned.
+ +

getIncomingEdges

mxGraph.prototype.getIncomingEdges = function(cell,
parent)

Returns the visible incoming edges for the given cell.  If the optional parent argument is specified, then only child edges of the given parent are returned.

Parameters

cellmxCell whose incoming edges should be returned.
parentOptional parent of the opposite end for an edge to be returned.
+ +

getOutgoingEdges

mxGraph.prototype.getOutgoingEdges = function(cell,
parent)

Returns the visible outgoing edges for the given cell.  If the optional parent argument is specified, then only child edges of the given parent are returned.

Parameters

cellmxCell whose outgoing edges should be returned.
parentOptional parent of the opposite end for an edge to be returned.
+ +

getEdges

mxGraph.prototype.getEdges = function(cell,
parent,
incoming,
outgoing,
includeLoops,
recurse)

Returns the incoming and/or outgoing edges for the given cell.  If the optional parent argument is specified, then only edges are returned where the opposite is in the given parent cell.  If at least one of incoming or outgoing is true, then loops are ignored, if both are false, then all edges connected to the given cell are returned including loops.

Parameters

cellmxCell whose edges should be returned.
parentOptional parent of the opposite end for an edge to be returned.
incomingOptional boolean that specifies if incoming edges should be included in the result.  Default is true.
outgoingOptional boolean that specifies if outgoing edges should be included in the result.  Default is true.
includeLoopsOptional boolean that specifies if loops should be included in the result.  Default is true.
recurseOptional boolean the specifies if the parent specified only need be an ancestral parent, true, or the direct parent, false.  Default is false
+ +

isValidAncestor

mxGraph.prototype.isValidAncestor = function(cell,
parent,
recurse)

Returns whether or not the specified parent is a valid ancestor of the specified cell, either direct or indirectly based on whether ancestor recursion is enabled.

Parameters

cellmxCell the possible child cell
parentmxCell the possible parent cell
recurseboolean whether or not to recurse the child ancestors
+ +

getOpposites

mxGraph.prototype.getOpposites = function(edges,
terminal,
sources,
targets)

Returns all distinct visible opposite cells for the specified terminal on the given edges.

Parameters

edgesArray of mxCells that contains the edges whose opposite terminals should be returned.
terminalTerminal that specifies the end whose opposite should be returned.
sourceOptional boolean that specifies if source terminals should be included in the result.  Default is true.
targetsOptional boolean that specifies if targer terminals should be included in the result.  Default is true.
+ +

getEdgesBetween

mxGraph.prototype.getEdgesBetween = function(source,
target,
directed)

Returns the edges between the given source and target.  This takes into account collapsed and invisible cells and returns the connected edges as displayed on the screen.

Parameters

source - target - directed -

+ +

getPointForEvent

mxGraph.prototype.getPointForEvent = function(evt,
addOffset)

Returns an mxPoint representing the given event in the unscaled, non-translated coordinate space of <container> and applies the grid.

Parameters

evtMousevent that contains the mouse pointer location.
addOffsetOptional boolean that specifies if the position should be offset by half of the gridSize.  Default is true.
+ +

getCells

mxGraph.prototype.getCells = function(x,
y,
width,
height,
parent,
result)

Returns the children of the given parent that are contained in the given rectangle (x, y, width, height).  The result is added to the optional result array, which is returned from the function.  If no result array is specified then a new array is created and returned.

Parameters

xX-coordinate of the rectangle.
yY-coordinate of the rectangle.
widthWidth of the rectangle.
heightHeight of the rectangle.
parentmxCell whose children should be checked.  Default is defaultParent.
resultOptional array to store the result in.
+ +

getCellsBeyond

mxGraph.prototype.getCellsBeyond = function(x0,
y0,
parent,
rightHalfpane,
bottomHalfpane)

Returns the children of the given parent that are contained in the halfpane from the given point (x0, y0) rightwards and/or downwards depending on rightHalfpane and bottomHalfpane.

Parameters

x0X-coordinate of the origin.
y0Y-coordinate of the origin.
parentOptional mxCell whose children should be checked.  Default is defaultParent.
rightHalfpaneBoolean indicating if the cells in the right halfpane from the origin should be returned.
bottomHalfpaneBoolean indicating if the cells in the bottom halfpane from the origin should be returned.
+ +

findTreeRoots

mxGraph.prototype.findTreeRoots = function(parent,
isolate,
invert)

Returns all children in the given parent which do not have incoming edges.  If the result is empty then the with the greatest difference between incoming and outgoing edges is returned.

Parameters

parentmxCell whose children should be checked.
isolateOptional boolean that specifies if edges should be ignored if the opposite end is not a child of the given parent cell.  Default is false.
invertOptional boolean that specifies if outgoing or incoming edges should be counted for a tree root.  If false then outgoing edges will be counted.  Default is false.
+ +

traverse

mxGraph.prototype.traverse = function(vertex,
directed,
func,
edge,
visited)

Traverses the (directed) graph invoking the given function for each visited vertex and edge.  The function is invoked with the current vertex and the incoming edge as a parameter.  This implementation makes sure each vertex is only visited once.  The function may return false if the traversal should stop at the given vertex.

Example

mxLog.show();
+var cell = graph.getSelectionCell();
+graph.traverse(cell, false, function(vertex, edge)
+{
+  mxLog.debug(graph.getLabel(vertex));
+});

Parameters

vertexmxCell that represents the vertex where the traversal starts.
directedOptional boolean indicating if edges should only be traversed from source to target.  Default is true.
funcVisitor function that takes the current vertex and the incoming edge as arguments.  The traversal stops if the function returns false.
edgeOptional mxCell that represents the incoming edge.  This is null for the first step of the traversal.
visitedOptional array of cell paths for the visited cells.
+ +

Selection

+ +

isCellSelected

mxGraph.prototype.isCellSelected = function(cell)

Returns true if the given cell is selected.

Parameters

cellmxCell for which the selection state should be returned.
+ +

isSelectionEmpty

mxGraph.prototype.isSelectionEmpty = function()

Returns true if the selection is empty.

+ +

clearSelection

mxGraph.prototype.clearSelection = function()

Clears the selection using mxGraphSelectionModel.clear.

+ +

getSelectionCount

mxGraph.prototype.getSelectionCount = function()

Returns the number of selected cells.

+ +

getSelectionCell

mxGraph.prototype.getSelectionCell = function()

Returns the first cell from the array of selected mxCells.

+ +

getSelectionCells

mxGraph.prototype.getSelectionCells = function()

Returns the array of selected mxCells.

+ +

setSelectionCell

mxGraph.prototype.setSelectionCell = function(cell)

Sets the selection cell.

Parameters

cellmxCell to be selected.
+ +

setSelectionCells

mxGraph.prototype.setSelectionCells = function(cells)

Sets the selection cell.

Parameters

cellsArray of mxCells to be selected.
+ +

addSelectionCell

mxGraph.prototype.addSelectionCell = function(cell)

Adds the given cell to the selection.

Parameters

cellmxCell to be add to the selection.
+ +

addSelectionCells

mxGraph.prototype.addSelectionCells = function(cells)

Adds the given cells to the selection.

Parameters

cellsArray of mxCells to be added to the selection.
+ +

removeSelectionCell

mxGraph.prototype.removeSelectionCell = function(cell)

Removes the given cell from the selection.

Parameters

cellmxCell to be removed from the selection.
+ +

removeSelectionCells

mxGraph.prototype.removeSelectionCells = function(cells)

Removes the given cells from the selection.

Parameters

cellsArray of mxCells to be removed from the selection.
+ +

selectRegion

mxGraph.prototype.selectRegion = function(rect,
evt)

Selects and returns the cells inside the given rectangle for the specified event.

Parameters

rectmxRectangle that represents the region to be selected.
evtMouseevent that triggered the selection.
+ +

selectNextCell

mxGraph.prototype.selectNextCell = function()

Selects the next cell.

+ +

selectPreviousCell

mxGraph.prototype.selectPreviousCell = function()

Selects the previous cell.

+ +

selectParentCell

mxGraph.prototype.selectParentCell = function()

Selects the parent cell.

+ +

selectChildCell

mxGraph.prototype.selectChildCell = function()

Selects the first child cell.

+ +

selectCell

mxGraph.prototype.selectCell = function(isNext,
isParent,
isChild)

Selects the next, parent, first child or previous cell, if all arguments are false.

Parameters

isNextBoolean indicating if the next cell should be selected.
isParentBoolean indicating if the parent cell should be selected.
isChildBoolean indicating if the first child cell should be selected.
+ +

selectAll

mxGraph.prototype.selectAll = function(parent)

Selects all children of the given parent cell or the children of the default parent if no parent is specified.  To select leaf vertices and/or edges use selectCells.

Parameters

parentOptional mxCell whose children should be selected.  Default is defaultParent.
+ +

selectVertices

mxGraph.prototype.selectVertices = function(parent)

Select all vertices inside the given parent or the default parent.

+ +

selectVertices

Select all vertices inside the given parent or the default parent.

+ +

selectCells

mxGraph.prototype.selectCells = function(vertices,
edges,
parent)

Selects all vertices and/or edges depending on the given boolean arguments recursively, starting at the given parent or the default parent if no parent is specified.  Use selectAll to select all cells.

Parameters

verticesBoolean indicating if vertices should be selected.
edgesBoolean indicating if edges should be selected.
parentOptional mxCell that acts as the root of the recursion.  Default is defaultParent.
+ +

selectCellForEvent

mxGraph.prototype.selectCellForEvent = function(cell,
evt)

Selects the given cell by either adding it to the selection or replacing the selection depending on whether the given mouse event is a toggle event.

Parameters

cellmxCell to be selected.
evtOptional mouseevent that triggered the selection.
+ +

selectCellsForEvent

mxGraph.prototype.selectCellsForEvent = function(cells,
evt)

Selects the given cells by either adding them to the selection or replacing the selection depending on whether the given mouse event is a toggle event.

Parameters

cellsArray of mxCells to be selected.
evtOptional mouseevent that triggered the selection.
+ +

Selection state

+ +

createHandler

mxGraph.prototype.createHandler = function(state)

Creates a new handler for the given cell state.  This implementation returns a new mxEdgeHandler of the corresponding cell is an edge, otherwise it returns an mxVertexHandler.

Parameters

statemxCellState whose handler should be created.
+ +

Graph events

+ +

addMouseListener

mxGraph.prototype.addMouseListener = function(listener)

Adds a listener to the graph event dispatch loop.  The listener must implement the mouseDown, mouseMove and mouseUp methods as shown in the mxMouseEvent class.

Parameters

listenerListener to be added to the graph event listeners.
+ +

removeMouseListener

mxGraph.prototype.removeMouseListener = function(listener)

Removes the specified graph listener.

Parameters

listenerListener to be removed from the graph event listeners.
+ +

updateMouseEvent

mxGraph.prototype.updateMouseEvent = function(me)

Sets the graphX and graphY properties if the given mxMouseEvent if required.

+ +

fireMouseEvent

mxGraph.prototype.fireMouseEvent = function(evtName,
me,
sender)

Dispatches the given event in the graph event dispatch loop.  Possible event names are mxEvent.MOUSE_DOWN, mxEvent.MOUSE_MOVE and mxEvent.MOUSE_UP.  All listeners are invoked for all events regardless of the consumed state of the event.

Parameters

evtNameString that specifies the type of event to be dispatched.
memxMouseEvent to be fired.
senderOptional sender argument.  Default is this.
+ +

destroy

mxGraph.prototype.destroy = function()

Destroys the graph and all its resources.

+ +
+ + + + + + + + + + +
Base class for objects that dispatch named events.
mxGraph.prototype.alignCells = function(align,
cells,
param)
Aligns the given cells vertically or horizontally according to the given alignment using the optional parameter as the coordinate.
mxGraph.prototype.flipEdge = function(edge)
Toggles the style of the given edge between null (or empty) and alternateEdgeStyle.
mxGraph.prototype.orderCells = function(back,
cells)
Moves the given cells to the front or back.
mxGraph.prototype.cellsOrdered = function(cells,
back)
Moves the given cells to the front or back.
mxGraph.prototype.groupCells = function(group,
border,
cells)
Adds the cells into the given group.
mxGraph.prototype.ungroupCells = function(cells)
Ungroups the given cells by moving the children the children to their parents parent and removing the empty groups.
mxGraph.prototype.removeCellsFromParent = function(cells)
Removes the specified cells from their parents and adds them to the default parent.
mxGraph.prototype.addCells = function(cells,
parent,
index,
source,
target)
Adds the cells to the parent at the given index, connecting each cell to the optional source and target terminal.
mxGraph.prototype.cellsAdded = function(cells,
parent,
index,
source,
target,
absolute)
Adds the specified cells to the given parent.
mxGraph.prototype.removeCells = function(cells,
includeEdges)
Removes the given cells from the graph including all connected edges if includeEdges is true.
mxGraph.prototype.cellsRemoved = function(cells)
Removes the given cells from the model.
mxGraph.prototype.splitEdge = function(edge,
cells,
newEdge,
dx,
dy)
Splits the given edge by adding the newEdge between the previous source and the given cell and reconnecting the source of the given edge to the given cell.
mxGraph.prototype.toggleCells = function(show,
cells,
includeEdges)
Sets the visible state of the specified cells and all connected edges if includeEdges is true.
mxGraph.prototype.foldCells = function(collapse,
recurse,
cells,
checkFoldable)
Sets the collapsed state of the specified cells and all descendants if recurse is true.
mxGraph.prototype.updateCellSize = function(cell,
ignoreChildren)
Updates the size of the given cell in the model using cellSizeUpdated.
mxGraph.prototype.resizeCells = function(cells,
bounds)
Sets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS event while the transaction is in progress.
mxGraph.prototype.cellsResized = function(cells,
bounds)
Sets the bounds of the given cells and fires a mxEvent.CELLS_RESIZED event.
mxGraph.prototype.moveCells = function(cells,
dx,
dy,
clone,
target,
evt)
Moves or clones the specified cells and moves the cells or clones by the given amount, adding them to the optional target cell.
mxGraph.prototype.cellsMoved = function(cells,
dx,
dy,
disconnect,
constrain)
Moves the specified cells by the given vector, disconnecting the cells using disconnectGraph is disconnect is true.
mxGraph.prototype.connectCell = function(edge,
terminal,
source,
constraint)
Connects the specified end of the given edge to the given terminal using cellConnected and fires mxEvent.CONNECT_CELL while the transaction is in progress.
mxGraph.prototype.cellConnected = function(edge,
terminal,
source,
constraint)
Sets the new terminal for the given edge and resets the edge points if resetEdgesOnConnect is true.
mxGraph.prototype.refresh = function(cell)
Clears all cell states or the states for the hierarchy starting at the given cell and validates the graph.
mxGraph.prototype.click = function(me)
Processes a singleclick on an optional cell and fires a click event.
mxGraph.prototype.dblClick = function(evt,
cell)
Processes a doubleclick on an optional cell and fires a dblclick event.
mxGraph.prototype.sizeDidChange = function()
Called when the size of the graph has changed.
mxGraph.prototype.startEditingAtCell = function(cell,
evt)
Fires a startEditing event and invokes mxCellEditor.startEditing on editor.
mxGraph.prototype.cellLabelChanged = function(cell,
value,
autoSize)
Sets the new label for a cell.
mxGraph.prototype.addCellOverlay = function(cell,
overlay)
Adds an mxCellOverlay for the specified cell.
mxGraph.prototype.removeCellOverlay = function(cell,
overlay)
Removes and returns the given mxCellOverlay from the given cell.
mxGraph.prototype.removeCellOverlays = function(cell)
Removes all mxCellOverlays from the given cell.
function mxGraph(container,
model,
renderHint,
stylesheet)
Constructs a new mxGraph in the specified container.
mxGraph.prototype.EMPTY_ARRAY
Immutable empty array instance.
mxGraph.prototype.mouseListeners
Holds the mouse event listeners.
mxGraph.prototype.isMouseDown
Holds the state of the mouse button.
mxGraph.prototype.model
Holds the mxGraphModel that contains the cells to be displayed.
Extends mxEventSource to implement a graph model.
mxGraph.prototype.view
Holds the mxGraphView that caches the mxCellStates for the cells.
Extends mxEventSource to implement a view for a graph.
Represents the current state of a cell in a given mxGraphView.
mxGraph.prototype.stylesheet
Holds the mxStylesheet that defines the appearance of the cells.
Defines the appearance of the cells in a graph.
mxGraph.prototype.selectionModel
Holds the mxGraphSelectionModel that models the current selection.
Implements the selection model for a graph.
mxGraph.prototype.cellEditor
Holds the mxCellEditor that is used as the in-place editing.
In-place editor for the graph.
mxGraph.prototype.cellRenderer
Holds the mxCellRenderer for rendering the cells in the graph.
Renders cells into a document object model.
mxGraph.prototype.multiplicities
An array of mxMultiplicities describing the allowed connections in a graph.
Defines invalid connections along with the error messages that they produce.
mxGraph.prototype.renderHint
RenderHint as it was passed to the constructor.
mxGraph.prototype.dialect
Dialect to be used for drawing the graph.
mxGraph.prototype.gridSize
Specifies the grid size.
mxGraph.prototype.gridEnabled
Specifies if the grid is enabled.
mxGraph.prototype.portsEnabled
Specifies if ports are enabled.
mxGraph.prototype.doubleTapEnabled
Specifies if double taps on touch-based devices should be handled.
mxGraph.prototype.doubleTapTimeout
Specifies the timeout for double taps.
mxGraph.prototype.doubleTapTolerance
Specifies the tolerance for double taps.
mxGraph.prototype.lastTouchTime
Holds the time of the last touch event for double click detection.
mxGraph.prototype.gestureEnabled
Specifies if the handleGesture method should be invoked.
mxGraph.prototype.tolerance
Tolerance for a move to be handled as a single click.
mxGraph.prototype.defaultOverlap
Value returned by getOverlap if isAllowOverlapParent returns true for the given cell.
mxGraph.prototype.getOverlap = function(cell)
Returns a decimal number representing the amount of the width and height of the given cell that is allowed to overlap its parent.
mxGraph.prototype.isAllowOverlapParent = function(cell)
Returns true if the given cell is allowed to be placed outside of the parents area.
mxGraph.prototype.defaultParent
Specifies the default parent to be used to insert new cells.
mxGraph.prototype.alternateEdgeStyle
Specifies the alternate edge style to be used if the main control point on an edge is being doubleclicked.
mxGraph.prototype.backgroundImage
Specifies the mxImage to be returned by getBackgroundImage.
Encapsulates the URL, width and height of an image.
mxGraph.prototype.getBackgroundImage = function()
Returns the backgroundImage as an mxImage.
mxGraph.prototype.pageVisible
Specifies if the background page should be visible.
mxGraph.prototype.pageBreaksVisible
Specifies if a dashed line should be drawn between multiple pages.
mxGraph.prototype.pageBreakColor
Specifies the color for page breaks.
mxGraph.prototype.pageBreakDashed
Specifies the page breaks should be dashed.
mxGraph.prototype.minPageBreakDist
Specifies the minimum distance for page breaks to be visible.
mxGraph.prototype.preferPageSize
Specifies if the graph size should be rounded to the next page number in sizeDidChange.
mxGraph.prototype.pageFormat
Specifies the page format for the background page.
mxGraph.prototype.pageScale
Specifies the scale of the background page.
mxGraph.prototype.enabled
Specifies the return value for isEnabled.
mxGraph.prototype.isEnabled = function()
Returns true if the graph is enabled.
mxGraph.prototype.escapeEnabled
Specifies if mxKeyHandler should invoke escape when the escape key is pressed.
Event handler that listens to keystroke events.
mxGraph.prototype.escape = function(evt)
Processes an escape keystroke.
mxGraph.prototype.invokesStopCellEditing
If true, when editing is to be stopped by way of selection changing, data in diagram changing or other means stopCellEditing is invoked, and changes are saved.
mxGraph.prototype.enterStopsCellEditing
If true, pressing the enter key without pressing control or shift will stop editing and accept the new value.
mxGraph.prototype.useScrollbarsForPanning
Specifies if scrollbars should be used for panning in panGraph if any scrollbars are available.
mxGraph.prototype.panGraph = function(dx,
dy)
Shifts the graph display by the given amount.
mxGraph.prototype.exportEnabled
Specifies the return value for canExportCell.
mxGraph.prototype.canExportCell = function(cell)
Returns true if the given cell may be exported to the clipboard.
mxGraph.prototype.importEnabled
Specifies the return value for canImportCell.
mxGraph.prototype.canImportCell = function(cell)
Returns true if the given cell may be imported from the clipboard.
mxGraph.prototype.cellsLocked
Specifies the return value for isCellLocked.
mxGraph.prototype.isCellLocked = function(cell)
Returns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.
mxGraph.prototype.cellsCloneable
Specifies the return value for isCellCloneable.
mxGraph.prototype.isCellCloneable = function(cell)
Returns true if the given cell is cloneable.
mxGraph.prototype.foldingEnabled
Specifies if folding (collapse and expand via an image icon in the graph should be enabled).
mxGraph.prototype.cellsEditable
Specifies the return value for isCellEditable.
mxGraph.prototype.isCellEditable = function(cell)
Returns true if the given cell is editable.
mxGraph.prototype.cellsDeletable
Specifies the return value for isCellDeletable.
mxGraph.prototype.isCellDeletable = function(cell)
Returns true if the given cell is moveable.
mxGraph.prototype.cellsMovable
Specifies the return value for isCellMovable.
mxGraph.prototype.isCellMovable = function(cell)
Returns true if the given cell is moveable.
mxGraph.prototype.edgeLabelsMovable
Specifies the return value for edges in isLabelMovable.
mxGraph.prototype.isLabelMovable = function(cell)
Returns true if the given edges’s label is moveable.
mxGraph.prototype.vertexLabelsMovable
Specifies the return value for vertices in isLabelMovable.
mxGraph.prototype.dropEnabled
Specifies the return value for isDropEnabled.
mxGraph.prototype.isDropEnabled = function()
Returns dropEnabled as a boolean.
mxGraph.prototype.splitEnabled
Specifies if dropping onto edges should be enabled.
mxGraph.prototype.cellsResizable
Specifies the return value for isCellResizable.
mxGraph.prototype.isCellResizable = function(cell)
Returns true if the given cell is resizable.
mxGraph.prototype.cellsBendable
Specifies the return value for isCellsBendable.
mxGraph.prototype.isCellsBendable = function()
Returns cellsBenadable.
mxGraph.prototype.cellsSelectable
Specifies the return value for isCellSelectable.
mxGraph.prototype.isCellSelectable = function(cell)
Returns true if the given cell is selectable.
mxGraph.prototype.cellsDisconnectable
Specifies the return value for isCellDisconntable.
mxGraph.prototype.autoSizeCells
Specifies if the graph should automatically update the cell size after an edit.
mxGraph.prototype.autoScroll
Specifies if the graph should automatically scroll if the mouse goes near the container edge while dragging.
mxGraph.prototype.allowAutoPanning
Specifies if panning via panGraph should be allowed to implement autoscroll if no scrollbars are available in scrollPointToVisible.
mxGraph.prototype.scrollPointToVisible = function(x,
y,
extend,
border)
Scrolls the graph to the given point, extending the graph container if specified.
mxGraph.prototype.ignoreScrollbars
Specifies if the graph should automatically scroll regardless of the scrollbars.
mxGraph.prototype.autoExtend
Specifies if the size of the graph should be automatically extended if the mouse goes near the container edge while dragging.
mxGraph.prototype.maximumGraphBounds
mxRectangle that specifies the area in which all cells in the diagram should be placed.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxGraph.prototype.minimumGraphSize
mxRectangle that specifies the minimum size of the graph.
mxGraph.prototype.minimumContainerSize
mxRectangle that specifies the minimum size of the container if resizeContainer is true.
mxGraph.prototype.resizeContainer
Specifies if the container should be resized to the graph size when the graph size has changed.
mxGraph.prototype.maximumContainerSize
mxRectangle that specifies the maximum size of the container if resizeContainer is true.
mxGraph.prototype.border
Border to be added to the bottom and right side when the container is being resized after the graph has been changed.
mxGraph.prototype.ordered
Specifies if the display should reflect the order of the cells in the model.
mxGraph.prototype.keepEdgesInForeground
Specifies if edges should appear in the foreground regardless of their order in the model.
mxGraph.prototype.keepEdgesInBackground
Specifies if edges should appear in the background regardless of their order in the model.
mxGraph.prototype.allowNegativeCoordinates
Specifies if negative coordinates for vertices are allowed.
mxGraph.prototype.constrainChildren
Specifies the return value for isConstrainChildren.
mxGraph.prototype.isConstrainChildren = function()
Returns constrainChildren.
mxGraph.prototype.extendParents
Specifies if a parent should contain the child bounds after a resize of the child.
mxGraph.prototype.extendParentsOnAdd
Specifies if parents should be extended according to the extendParents switch if cells are added.
mxGraph.prototype.collapseToPreferredSize
Specifies if the cell size should be changed to the preferred size when a cell is first collapsed.
mxGraph.prototype.zoomFactor
Specifies the factor used for zoomIn and zoomOut.
mxGraph.prototype.zoomIn = function()
Zooms into the graph by zoomFactor.
mxGraph.prototype.zoomOut = function()
Zooms out of the graph by zoomFactor.
mxGraph.prototype.keepSelectionVisibleOnZoom
Specifies if the viewport should automatically contain the selection cells after a zoom operation.
mxGraph.prototype.centerZoom
Specifies if the zoom operations should go into the center of the actual diagram rather than going from top, left.
mxGraph.prototype.resetViewOnRootChange
Specifies if the scale and translate should be reset if the root changes in the model.
mxGraph.prototype.resetEdgesOnResize
Specifies if edge control points should be reset after the resize of a connected cell.
mxGraph.prototype.resetEdgesOnMove
Specifies if edge control points should be reset after the move of a connected cell.
mxGraph.prototype.resetEdgesOnConnect
Specifies if edge control points should be reset after the the edge has been reconnected.
mxGraph.prototype.allowLoops
Specifies if loops (aka self-references) are allowed.
mxGraph.prototype.defaultLoopStyle
mxEdgeStyle to be used for loops.
Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.
mxGraph.prototype.multigraph
Specifies if multiple edges in the same direction between the same pair of vertices are allowed.
mxGraph.prototype.connectableEdges
Specifies if edges are connectable.
mxGraph.prototype.allowDanglingEdges
Specifies if edges with disconnected terminals are allowed in the graph.
mxGraph.prototype.cloneInvalidEdges
Specifies if edges that are cloned should be validated and only inserted if they are valid.
mxGraph.prototype.disconnectOnMove
Specifies if edges should be disconnected from their terminals when they are moved.
mxGraph.prototype.labelsVisible
Specifies if labels should be visible.
mxGraph.prototype.htmlLabels
Specifies the return value for isHtmlLabel.
mxGraph.prototype.isHtmlLabel = function(cell)
Returns true if the label must be rendered as HTML markup.
mxGraph.prototype.swimlaneSelectionEnabled
Specifies if swimlanes should be selectable via the content if the mouse is released.
mxGraph.prototype.swimlaneNesting
Specifies if nesting of swimlanes is allowed.
mxGraph.prototype.swimlaneIndicatorColorAttribute
The attribute used to find the color for the indicator if the indicator color is set to ‘swimlane’.
mxGraph.prototype.imageBundles
Holds the list of image bundles.
mxGraph.prototype.minFitScale
Specifies the minimum scale to be applied in fit.
mxGraph.prototype.fit = function(border,
keepOrigin)
Scales the graph such that the complete diagram fits into container and returns the current scale in the view.
mxGraph.prototype.maxFitScale
Specifies the maximum scale to be applied in fit.
mxGraph.prototype.panDx
Current horizontal panning value.
mxGraph.prototype.panDy
Current vertical panning value.
mxGraph.prototype.collapsedImage
Specifies the mxImage to indicate a collapsed state.
mxGraph.prototype.expandedImage
Specifies the mxImage to indicate a expanded state.
mxGraph.prototype.warningImage
Specifies the mxImage for the image to be used to display a warning overlay.
mxGraph.prototype.alreadyConnectedResource
Specifies the resource key for the error message to be displayed in non-multigraphs when two vertices are already connected.
mxGraph.prototype.containsValidationErrorsResource
Specifies the resource key for the warning message to be displayed when a collapsed cell contains validation errors.
mxGraph.prototype.collapseExpandResource
Specifies the resource key for the tooltip on the collapse/expand icon.
mxGraph.prototype.init = function(container)
Initializes the container and creates the respective datastructures.
mxGraph.prototype.createHandlers = function(container)
Creates the tooltip-, panning-, connection- and graph-handler (in this order).
mxGraph.prototype.createSelectionModel = function()
Creates a new mxGraphSelectionModel to be used in this graph.
mxGraph.prototype.createStylesheet = function()
Creates a new mxGraphSelectionModel to be used in this graph.
mxGraph.prototype.createGraphView = function()
Creates a new mxGraphView to be used in this graph.
mxGraph.prototype.createCellRenderer = function()
Creates a new mxCellRenderer to be used in this graph.
mxGraph.prototype.createCellEditor = function()
Creates a new mxCellEditor to be used in this graph.
mxGraph.prototype.getModel = function()
Returns the mxGraphModel that contains the cells.
mxGraph.prototype.getView = function()
Returns the mxGraphView that contains the mxCellStates.
mxGraph.prototype.getStylesheet = function()
Returns the mxStylesheet that defines the style.
mxGraph.prototype.setStylesheet = function(stylesheet)
Sets the mxStylesheet that defines the style.
mxGraph.prototype.getSelectionModel = function()
Returns the mxGraphSelectionModel that contains the selection.
mxGraph.prototype.setSelectionModel = function(selectionModel)
Sets the mxSelectionModel that contains the selection.
mxGraph.prototype.getSelectionCellsForChanges = function(changes)
Returns the cells to be selected for the given array of changes.
mxGraph.prototype.graphModelChanged = function(changes)
Called when the graph model changes.
mxGraph.prototype.getRemovedCellsForChanges = function(changes)
Returns the cells that have been removed from the model.
mxGraph.prototype.processChange = function(change)
Processes the given change and invalidates the respective cached data in view.
mxGraph.prototype.removeStateForCell = function(cell)
Removes all cached information for the given cell and its descendants.
Extends mxEventSource to implement a graph overlay, represented by an icon and a tooltip.
mxGraph.prototype.getCellOverlays = function(cell)
Returns the array of mxCellOverlays for the given cell or null, if no overlays are defined.
mxGraph.prototype.clearCellOverlays = function(cell)
Removes all mxCellOverlays in the graph for the given cell and all its descendants.
mxGraph.prototype.setCellWarning = function(cell,
warning,
img,
isSelect)
Creates an overlay for the given cell using the warning and image or warningImage and returns the new mxCellOverlay.
mxGraph.prototype.startEditing = function(evt)
Calls startEditingAtCell using the given cell or the first selection cell.
mxCellEditor.prototype.startEditing = function(cell,
trigger)
Starts the editor for the given cell.
mxGraph.prototype.getEditingValue = function(cell,
evt)
Returns the initial value for in-place editing.
mxGraph.prototype.stopEditing = function(cancel)
Stops the current editing.
mxGraph.prototype.labelChanged = function(cell,
value,
evt)
Sets the label of the specified cell to the given value using cellLabelChanged and fires mxEvent.LABEL_CHANGED while the transaction is in progress.
Fires between begin- and endUpdate in cellLabelChanged.
mxGraph.prototype.createPanningManager = function()
Creates and returns an mxPanningManager.
Implements a handler for panning.
mxGraph.prototype.getOffsetSize = function()
Returns the actual size of the the viewport minus padding and border sizes.
mxGraph.prototype.getCellStyle = function(cell)
Returns an array of key, value pairs representing the cell style for the given cell.
mxGraph.prototype.postProcessCellStyle = function(style)
Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.
mxGraph.prototype.setCellStyle = function(style,
cells)
Sets the style of the specified cells.
mxGraph.prototype.toggleCellStyle = function(key,
defaultValue,
cell)
Toggles the boolean value for the given key in the style of the given cell.
mxGraph.prototype.toggleCellStyles = function(key,
defaultValue,
cells)
Toggles the boolean value for the given key in the style of the given cells.
mxGraph.prototype.setCellStyles = function(key,
value,
cells)
Sets the key to value in the styles of the given cells.
mxGraph.prototype.toggleCellStyleFlags = function(key,
flag,
cells)
Toggles the given bit for the given key in the styles of the specified cells.
mxGraph.prototype.setCellStyleFlags = function(key,
flag,
value,
cells)
Sets or toggles the given bit for the given key in the styles of the specified cells.
mxGraph.prototype.addImageBundle = function(bundle)
Adds the specified mxImageBundle.
Maps from keys to base64 encoded images or file locations.
mxGraph.prototype.removeImageBundle = function(bundle)
Removes the specified mxImageBundle.
mxGraph.prototype.getImageFromBundles = function(key)
Searches all imageBundles for the specified key and returns the value for the first match or null if the key is not found.
mxGraph.prototype.getCellsForGroup = function(cells)
Returns the cells with the same parent as the first cell in the given array.
mxGraph.prototype.getBoundsForGroup = function(group,
children,
border)
Returns the bounds to be used for the given group and children.
mxGraph.prototype.createGroupCell = function(cells)
Hook for creating the group cell to hold the given array of mxCells if no group cell was given to the group function.
Cells are the elements of the graph model.
mxGraph.prototype.updateGroupBounds = function(cells,
border,
moveGroup)
Updates the bounds of the given array of groups so that it includes all child vertices.
mxGraph.prototype.cloneCells = function(cells,
allowInvalidEdges)
Returns the clones for the given cells.
mxGraph.prototype.insertVertex = function(parent,
id,
value,
x,
y,
width,
height,
style,
relative)
Adds a new vertex into the given parent mxCell using value as the user object and the given coordinates as the mxGeometry of the new vertex.
Extends mxRectangle to represent the geometry of a cell.
mxGraph.prototype.createVertex = function(parent,
id,
value,
x,
y,
width,
height,
style,
relative)
Hook method that creates the new vertex for insertVertex.
mxGraph.prototype.insertEdge = function(parent,
id,
value,
source,
target,
style)
Adds a new edge into the given parent mxCell using value as the user object and the given source and target as the terminals of the new edge.
mxGraph.prototype.createEdge = function(parent,
id,
value,
source,
target,
style)
Hook method that creates the new edge for insertEdge.
mxGraph.prototype.addEdge = function(edge,
parent,
source,
target,
index)
Adds the edge to the parent and connects it to the given source and target terminals.
mxGraph.prototype.addCell = function(cell,
parent,
index,
source,
target)
Adds the cell to the parent and connects it to the given source and target terminals.
mxGraph.prototype.cellsToggled = function(cells,
show)
Sets the visible state of the specified cells.
mxGraph.prototype.cellsFolded = function(cells,
collapse,
recurse,
checkFoldable)
Sets the collapsed state of the specified cells.
mxGraph.prototype.swapBounds = function(cell,
willCollapse)
Swaps the alternate and the actual bounds in the geometry of the given cell invoking updateAlternateBounds before carrying out the swap.
mxGraph.prototype.updateAlternateBounds = function(cell,
geo,
willCollapse)
Updates or sets the alternate bounds in the given geometry for the given cell depending on whether the cell is going to be collapsed.
mxGraph.prototype.addAllEdges = function(cells)
Returns an array with the given cells and all edges that are connected to a cell or one of its descendants.
mxGraph.prototype.getAllEdges = function(cells)
Returns all edges connected to the given cells or its descendants.
mxGraph.prototype.cellSizeUpdated = function(cell,
ignoreChildren)
Updates the size of the given cell in the model using getPreferredSizeForCell to get the new size.
mxGraph.prototype.getPreferredSizeForCell = function(cell)
Returns the preferred width and height of the given mxCell as an mxRectangle.
mxGraph.prototype.handleGesture = function(state,
evt)
Invokes if a gesture event has been detected on a cell state.
mxGraph.prototype.resizeCell = function(cell,
bounds)
Sets the bounds of the given cell using resizeCells.
Fires between begin- and endUpdate in resizeCells.
Fires between begin- and endUpdate in cellsResized.
mxGraph.prototype.extendParent = function(cell)
Resizes the parents recursively so that they contain the complete area of the resized child cell.
mxGraph.prototype.importCells = function(cells,
dx,
dy,
target,
evt)
Clones and inserts the given cells into the graph using the move method and returns the inserted cells.
mxGraph.prototype.translateCell = function(cell,
dx,
dy)
Translates the geometry of the given cell and stores the new, translated geometry in the model as an atomic change.
mxGraph.prototype.getCellContainmentArea = function(cell)
Returns the mxRectangle inside which a cell is to be kept.
mxGraph.prototype.getMaximumGraphBounds = function()
Returns the bounds inside which the diagram should be kept as an mxRectangle.
mxGraph.prototype.constrainChild = function(cell)
Keeps the given cell inside the bounds returned by getCellContainmentArea for its parent, according to the rules defined by getOverlap and isConstrainChild.
mxGraph.prototype.isConstrainChild = function(cell)
Returns true if the given cell should be kept inside the bounds of its parent according to the rules defined by getOverlap and isAllowOverlapParent.
mxGraph.prototype.resetEdges = function(cells)
Resets the control points of the edges that are connected to the given cells if not both ends of the edge are in the given cells array.
mxGraph.prototype.resetEdge = function(edge)
Resets the control points of the given edge.
mxGraph.prototype.getAllConnectionConstraints = function(terminal,
source)
Returns an array of all mxConnectionConstraints for the given terminal.
Defines an object that contains the constraints about how to connect one side of an edge to its terminal.
mxGraph.prototype.getConnectionConstraint = function(edge,
terminal,
source)
Returns an mxConnectionConstraint that describes the given connection point.
mxGraph.prototype.setConnectionConstraint = function(edge,
terminal,
source,
constraint)
Sets the mxConnectionConstraint that describes the given connection point.
mxGraph.prototype.getConnectionPoint = function(vertex,
constraint)
Returns the nearest point in the list of absolute points or the center of the opposite terminal.
Fires between begin- and endUpdate in connectCell.
mxGraph.prototype.disconnectGraph = function(cells)
Disconnects the given edges from the terminals which are not in the given array.
mxGraph.prototype.getCurrentRoot = function()
Returns the current root of the displayed cell hierarchy.
mxGraph.prototype.getTranslateForRoot = function(cell)
Returns the translation to be used if the given cell is the root cell as an mxPoint.
Implements a 2-dimensional vector with double precision coordinates.
mxGraph.prototype.isPort = function(cell)
Returns true if the given cell is a “port”, that is, when connecting to it, the cell returned by getTerminalForPort should be used as the terminal and the port should be referenced by the ID in either the mxConstants.STYLE_SOURCE_PORT or the or the mxConstants.STYLE_TARGET_PORT.
mxGraph.prototype.getTerminalForPort = function(cell,
source)
Returns the terminal to be used for a given port.
mxGraph.prototype.getChildOffsetForCell = function(cell)
Returns the offset to be used for the cells inside the given cell.
mxGraph.prototype.enterGroup = function(cell)
Uses the given cell as the root of the displayed cell hierarchy.
mxGraph.prototype.exitGroup = function()
Changes the current root to the next valid root in the displayed cell hierarchy.
mxGraph.prototype.home = function()
Uses the root of the model as the root of the displayed cell hierarchy and selects the previous root.
mxGraph.prototype.isValidRoot = function(cell)
Returns true if the given cell is a valid root for the cell display hierarchy.
mxGraph.prototype.getGraphBounds = function()
Returns the bounds of the visible graph.
mxGraph.prototype.getCellBounds = function(cell,
includeEdges,
includeDescendants)
Returns the scaled, translated bounds for the given cell.
mxGraph.prototype.getBoundingBoxFromGeometry = function(cells,
includeEdges)
Returns the bounding box for the geometries of the vertices in the given array of cells.
mxGraph.prototype.snap = function(value)
Snaps the given numeric value to the grid if gridEnabled is true.
mxGraph.prototype.zoomActual = function()
Resets the zoom and panning in the view.
mxGraph.prototype.zoom = function(factor)
Zooms the graph using the given factor.
mxGraph.prototype.scrollCellToVisible = function(cell,
center)
Pans the graph so that it shows the given cell.
mxGraph.prototype.scrollRectToVisible = function(rect)
Pans the graph so that it shows the given rectangle.
mxGraph.prototype.getCellGeometry = function(cell)
Returns the mxGeometry for the given cell.
mxGraph.prototype.isCellVisible = function(cell)
Returns true if the given cell is visible in this graph.
mxGraph.prototype.isCellCollapsed = function(cell)
Returns true if the given cell is collapsed in this graph.
mxGraph.prototype.isCellConnectable = function(cell)
Returns true if the given cell is connectable in this graph.
mxGraph.prototype.isOrthogonal = function(edge)
Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.
mxGraph.prototype.isLoop = function(state)
Returns true if the given cell state is a loop.
mxGraph.prototype.isCloneEvent = function(evt)
Returns true if the given event is a clone event.
mxGraph.prototype.isToggleEvent = function(evt)
Returns true if the given event is a toggle event.
mxGraph.prototype.isGridEnabledEvent = function(evt)
Returns true if the given mouse event should be aligned to the grid.
mxGraph.prototype.isConstrainedEvent = function(evt)
Returns true if the given mouse event should be aligned to the grid.
mxGraph.prototype.isForceMarqueeEvent = function(evt)
Returns true if the given event forces marquee selection.
mxGraph.prototype.validationAlert = function(message)
Displays the given validation error in a dialog.
mxGraph.prototype.isEdgeValid = function(edge,
source,
target)
Checks if the return value of getEdgeValidationError for the given arguments is null.
mxGraph.prototype.getEdgeValidationError = function(edge,
source,
target)
Returns the validation error message to be displayed when inserting or changing an edges’ connectivity.
mxGraph.prototype.validateEdge = function(edge,
source,
target)
Hook method for subclassers to return an error message for the given edge and terminals.
mxGraph.prototype.validateGraph = function(cell,
context)
Validates the graph by validating each descendant of the given cell or the root of the model.
mxGraph.prototype.getCellValidationError = function(cell)
Checks all multiplicities that cannot be enforced while the graph is being modified, namely, all multiplicities that require a minimum of 1 edge.
mxGraph.prototype.validateCell = function(cell,
context)
Hook method for subclassers to return an error message for the given cell and validation context.
mxGraph.prototype.setBackgroundImage = function(image)
Sets the new backgroundImage.
mxGraph.prototype.getFoldingImage = function(state)
Returns the mxImage used to display the collapsed state of the specified cell state.
mxGraph.prototype.convertValueToString = function(cell)
Returns the textual representation for the given cell.
mxGraph.prototype.getLabel = function(cell)
Returns a string or DOM node that represents the label for the given cell.
mxGraph.prototype.isHtmlLabels = function()
Returns htmlLabels.
mxGraph.prototype.setHtmlLabels = function(value)
Sets htmlLabels.
mxGraph.prototype.isWrapping = function(cell)
This enables wrapping for HTML labels.
mxGraph.prototype.isLabelClipped = function(cell)
Returns true if the overflow portion of labels should be hidden.
mxGraph.prototype.getTooltip = function(state,
node,
x,
y)
Returns the string or DOM node that represents the tooltip for the given state, node and coordinate pair.
mxGraph.prototype.getTooltipForCell = function(cell)
Returns the string or DOM node to be used as the tooltip for the given cell.
mxGraph.prototype.getCursorForCell = function(cell)
Returns the cursor value to be used for the CSS of the shape for the given cell.
mxGraph.prototype.getStartSize = function(swimlane)
Returns the start size of the given swimlane, that is, the width or height of the part that contains the title, depending on the horizontal style.
mxGraph.prototype.getImage = function(state)
Returns the image URL for the given cell state.
mxGraph.prototype.getVerticalAlign = function(state)
Returns the vertical alignment for the given cell state.
mxGraph.prototype.getIndicatorColor = function(state)
Returns the indicator color for the given cell state.
mxGraph.prototype.getIndicatorGradientColor = function(state)
Returns the indicator gradient color for the given cell state.
mxGraph.prototype.getIndicatorShape = function(state)
Returns the indicator shape for the given cell state.
mxGraph.prototype.getIndicatorImage = function(state)
Returns the indicator image for the given cell state.
mxGraph.prototype.getBorder = function()
Returns the value of border.
mxGraph.prototype.setBorder = function(value)
Sets the value of border.
mxGraph.prototype.isSwimlane = function (cell)
Returns true if the given cell is a swimlane in the graph.
mxGraph.prototype.isResizeContainer = function()
Returns resizeContainer.
mxGraph.prototype.setResizeContainer = function(value)
Sets resizeContainer.
mxGraph.prototype.setEnabled = function(value)
Specifies if the graph should allow any interactions.
mxGraph.prototype.isEscapeEnabled = function()
Returns escapeEnabled.
mxGraph.prototype.setEscapeEnabled = function(value)
Sets escapeEnabled.
mxGraph.prototype.isInvokesStopCellEditing = function()
Returns invokesStopCellEditing.
mxGraph.prototype.setInvokesStopCellEditing = function(value)
Sets invokesStopCellEditing.
mxGraph.prototype.isEnterStopsCellEditing = function()
Returns enterStopsCellEditing.
mxGraph.prototype.setEnterStopsCellEditing = function(value)
Sets enterStopsCellEditing.
mxGraph.prototype.isCellsLocked = function()
Returns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.
mxGraph.prototype.getCloneableCells = function(cells)
Returns the cells which may be exported in the given array of cells.
mxGraph.prototype.isCellsCloneable = function()
Returns cellsCloneable, that is, if the graph allows cloning of cells by using control-drag.
mxGraph.prototype.setCellsCloneable = function(value)
Specifies if the graph should allow cloning of cells by holding down the control key while cells are being moved.
mxGraph.prototype.getExportableCells = function(cells)
Returns the cells which may be exported in the given array of cells.
mxGraph.prototype.getImportableCells = function(cells)
Returns the cells which may be imported in the given array of cells.
mxGraph.prototype.isCellsSelectable = function()
Returns cellsSelectable.
mxGraph.prototype.setCellsSelectable = function(value)
Sets cellsSelectable.
mxGraph.prototype.getDeletableCells = function(cells)
Returns the cells which may be exported in the given array of cells.
mxGraph.prototype.isCellsDeletable = function()
Returns cellsDeletable.
mxGraph.prototype.setCellsDeletable = function(value)
Sets cellsDeletable.
mxGraph.prototype.getMovableCells = function(cells)
Returns the cells which are movable in the given array of cells.
mxGraph.prototype.isCellsMovable = function()
Returns cellsMovable.
mxGraph.prototype.setCellsMovable = function(value)
Specifies if the graph should allow moving of cells.
mxGraph.prototype.isGridEnabled = function()
Returns gridEnabled as a boolean.
mxGraph.prototype.setGridEnabled = function(value)
Specifies if the grid should be enabled.
mxGraph.prototype.isPortsEnabled = function()
Returns portsEnabled as a boolean.
mxGraph.prototype.setPortsEnabled = function(value)
Specifies if the ports should be enabled.
mxGraph.prototype.getGridSize = function()
Returns gridSize.
mxGraph.prototype.setGridSize = function(value)
Sets gridSize.
mxGraph.prototype.getTolerance = function()
Returns tolerance.
mxGraph.prototype.setTolerance = function(value)
Sets tolerance.
mxGraph.prototype.isVertexLabelsMovable = function()
Returns vertexLabelsMovable.
mxGraph.prototype.setVertexLabelsMovable = function(value)
Sets vertexLabelsMovable.
mxGraph.prototype.isEdgeLabelsMovable = function()
Returns edgeLabelsMovable.
mxGraph.prototype.isSwimlaneNesting = function()
Returns swimlaneNesting as a boolean.
mxGraph.prototype.setSwimlaneNesting = function(value)
Specifies if swimlanes can be nested by drag and drop.
mxGraph.prototype.isSwimlaneSelectionEnabled = function()
Returns swimlaneSelectionEnabled as a boolean.
mxGraph.prototype.setSwimlaneSelectionEnabled = function(value)
Specifies if swimlanes should be selected if the mouse is released over their content area.
mxGraph.prototype.isMultigraph = function()
Returns multigraph as a boolean.
mxGraph.prototype.setMultigraph = function(value)
Specifies if the graph should allow multiple connections between the same pair of vertices.
mxGraph.prototype.isAllowLoops = function()
Returns allowLoops as a boolean.
mxGraph.prototype.setAllowDanglingEdges = function(value)
Specifies if dangling edges are allowed, that is, if edges are allowed that do not have a source and/or target terminal defined.
mxGraph.prototype.isAllowDanglingEdges = function()
Returns allowDanglingEdges as a boolean.
mxGraph.prototype.setConnectableEdges = function(value)
Specifies if edges should be connectable.
mxGraph.prototype.isConnectableEdges = function()
Returns connectableEdges as a boolean.
mxGraph.prototype.setCloneInvalidEdges = function(value)
Specifies if edges should be inserted when cloned but not valid wrt.
mxGraph.prototype.isCloneInvalidEdges = function()
Returns cloneInvalidEdges as a boolean.
mxGraph.prototype.setAllowLoops = function(value)
Specifies if loops are allowed.
mxGraph.prototype.isDisconnectOnMove = function()
Returns disconnectOnMove as a boolean.
mxGraph.prototype.setDisconnectOnMove = function(value)
Specifies if edges should be disconnected when moved.
mxGraph.prototype.setDropEnabled = function(value)
Specifies if the graph should allow dropping of cells onto or into other cells.
mxGraph.prototype.isSplitEnabled = function()
Returns splitEnabled as a boolean.
mxGraph.prototype.setSplitEnabled = function(value)
Specifies if the graph should allow dropping of cells onto or into other cells.
mxGraph.prototype.isCellsResizable = function()
Returns cellsResizable.
mxGraph.prototype.setCellsResizable = function(value)
Specifies if the graph should allow resizing of cells.
mxGraph.prototype.isTerminalPointMovable = function(cell,
source)
Returns true if the given terminal point is movable.
mxGraph.prototype.isCellBendable = function(cell)
Returns true if the given cell is bendable.
mxGraph.prototype.setCellsBendable = function(value)
Specifies if the graph should allow bending of edges.
mxGraph.prototype.isCellsEditable = function()
Returns cellsEditable.
mxGraph.prototype.setCellsEditable = function(value)
Specifies if the graph should allow in-place editing for cell labels.
mxGraph.prototype.isCellDisconnectable = function(cell,
terminal,
source)
Returns true if the given cell is disconnectable from the source or target terminal.
mxGraph.prototype.isCellsDisconnectable = function()
Returns cellsDisconnectable.
mxGraph.prototype.setCellsDisconnectable = function(value)
Sets cellsDisconnectable.
mxGraph.prototype.isValidSource = function(cell)
Returns true if the given cell is a valid source for new connections.
mxGraph.prototype.isValidTarget = function(cell)
Returns isValidSource for the given cell.
mxGraph.prototype.isValidConnection = function(source,
target)
Returns true if the given target cell is a valid target for source.
mxGraph.prototype.setConnectable = function(connectable)
Specifies if the graph should allow new connections.
mxGraph.prototype.isConnectable = function(connectable)
Returns true if the connectionHandler is enabled.
mxGraph.prototype.setTooltips = function (enabled)
Specifies if tooltips should be enabled.
mxGraph.prototype.setPanning = function(enabled)
Specifies if panning should be enabled.
mxGraph.prototype.isEditing = function(cell)
Returns true if the given cell is currently being edited.
mxGraph.prototype.isAutoSizeCell = function(cell)
Returns true if the size of the given cell should automatically be updated after a change of the label.
mxGraph.prototype.isAutoSizeCells = function()
Returns autoSizeCells.
mxGraph.prototype.setAutoSizeCells = function(value)
Specifies if cell sizes should be automatically updated after a label change.
mxGraph.prototype.isExtendParent = function(cell)
Returns true if the parent of the given cell should be extended if the child has been resized so that it overlaps the parent.
mxGraph.prototype.isExtendParents = function()
Returns extendParents.
mxGraph.prototype.setExtendParents = function(value)
Sets extendParents.
mxGraph.prototype.isExtendParentsOnAdd = function()
Returns extendParentsOnAdd.
mxGraph.prototype.setExtendParentsOnAdd = function(value)
Sets extendParentsOnAdd.
mxGraph.prototype.setConstrainChildren = function(value)
Sets constrainChildren.
mxGraph.prototype.getFoldableCells = function(cells,
collapse)
Returns the cells which are movable in the given array of cells.
mxGraph.prototype.isCellFoldable = function(cell,
collapse)
Returns true if the given cell is foldable.
mxGraph.prototype.isValidDropTarget = function(cell,
cells,
evt)
Returns true if the given cell is a valid drop target for the specified cells.
mxGraph.prototype.isSplitTarget = function(target,
cells,
evt)
Returns true if the given edge may be splitted into two edges with the given cell as a new terminal between the two.
mxGraph.prototype.getDropTarget = function(cells,
evt,
cell)
Returns the given cell if it is a drop target for the given cells or the nearest ancestor that may be used as a drop target for the given cells.
mxGraph.prototype.getDefaultParent = function()
Returns defaultParent or mxGraphView.currentRoot or the first child child of mxGraphModel.root if both are null.
mxGraphView.prototype.currentRoot
mxCell that acts as the root of the displayed cell hierarchy.
mxGraphModel.prototype.root
Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells.
mxGraph.prototype.setDefaultParent = function(cell)
Sets the defaultParent to the given cell.
mxGraph.prototype.getSwimlane = function(cell)
Returns the nearest ancestor of the given cell which is a swimlane, or the given cell, if it is itself a swimlane.
mxGraph.prototype.getSwimlaneAt = function (x,
y,
parent)
Returns the bottom-most swimlane that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.
mxGraph.prototype.getCellAt = function(x,
y,
parent,
vertices,
edges)
Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.
mxGraph.prototype.intersects = function(state,
x,
y)
Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.
mxGraph.prototype.hitsSwimlaneContent = function(swimlane,
x,
y)
Returns true if the given coordinate pair is inside the content are of the given swimlane.
mxGraph.prototype.getChildVertices = function(parent)
Returns the visible child vertices of the given parent.
mxGraph.prototype.getChildEdges = function(parent)
Returns the visible child edges of the given parent.
mxGraph.prototype.getChildCells = function(parent,
vertices,
edges)
Returns the visible child vertices or edges in the given parent.
mxGraph.prototype.getConnections = function(cell,
parent)
Returns all visible edges connected to the given cell without loops.
mxGraph.prototype.getIncomingEdges = function(cell,
parent)
Returns the visible incoming edges for the given cell.
mxGraph.prototype.getOutgoingEdges = function(cell,
parent)
Returns the visible outgoing edges for the given cell.
mxGraph.prototype.getEdges = function(cell,
parent,
incoming,
outgoing,
includeLoops,
recurse)
Returns the incoming and/or outgoing edges for the given cell.
mxGraph.prototype.isValidAncestor = function(cell,
parent,
recurse)
Returns whether or not the specified parent is a valid ancestor of the specified cell, either direct or indirectly based on whether ancestor recursion is enabled.
mxGraph.prototype.getOpposites = function(edges,
terminal,
sources,
targets)
Returns all distinct visible opposite cells for the specified terminal on the given edges.
mxGraph.prototype.getEdgesBetween = function(source,
target,
directed)
Returns the edges between the given source and target.
mxGraph.prototype.getPointForEvent = function(evt,
addOffset)
Returns an mxPoint representing the given event in the unscaled, non-translated coordinate space of container and applies the grid.
mxGraph.prototype.getCells = function(x,
y,
width,
height,
parent,
result)
Returns the children of the given parent that are contained in the given rectangle (x, y, width, height).
mxGraph.prototype.getCellsBeyond = function(x0,
y0,
parent,
rightHalfpane,
bottomHalfpane)
Returns the children of the given parent that are contained in the halfpane from the given point (x0, y0) rightwards and/or downwards depending on rightHalfpane and bottomHalfpane.
mxGraph.prototype.findTreeRoots = function(parent,
isolate,
invert)
Returns all children in the given parent which do not have incoming edges.
mxGraph.prototype.traverse = function(vertex,
directed,
func,
edge,
visited)
Traverses the (directed) graph invoking the given function for each visited vertex and edge.
mxGraph.prototype.isCellSelected = function(cell)
Returns true if the given cell is selected.
mxGraph.prototype.isSelectionEmpty = function()
Returns true if the selection is empty.
mxGraph.prototype.clearSelection = function()
Clears the selection using mxGraphSelectionModel.clear.
mxGraphSelectionModel.prototype.clear = function()
Clears the selection and fires a change event if the selection was not empty.
mxGraph.prototype.getSelectionCount = function()
Returns the number of selected cells.
mxGraph.prototype.getSelectionCell = function()
Returns the first cell from the array of selected mxCells.
mxGraph.prototype.getSelectionCells = function()
Returns the array of selected mxCells.
mxGraph.prototype.setSelectionCell = function(cell)
Sets the selection cell.
mxGraph.prototype.setSelectionCells = function(cells)
Sets the selection cell.
mxGraph.prototype.addSelectionCell = function(cell)
Adds the given cell to the selection.
mxGraph.prototype.addSelectionCells = function(cells)
Adds the given cells to the selection.
mxGraph.prototype.removeSelectionCell = function(cell)
Removes the given cell from the selection.
mxGraph.prototype.removeSelectionCells = function(cells)
Removes the given cells from the selection.
mxGraph.prototype.selectRegion = function(rect,
evt)
Selects and returns the cells inside the given rectangle for the specified event.
mxGraph.prototype.selectNextCell = function()
Selects the next cell.
mxGraph.prototype.selectPreviousCell = function()
Selects the previous cell.
mxGraph.prototype.selectParentCell = function()
Selects the parent cell.
mxGraph.prototype.selectChildCell = function()
Selects the first child cell.
mxGraph.prototype.selectCell = function(isNext,
isParent,
isChild)
Selects the next, parent, first child or previous cell, if all arguments are false.
mxGraph.prototype.selectAll = function(parent)
Selects all children of the given parent cell or the children of the default parent if no parent is specified.
mxGraph.prototype.selectVertices = function(parent)
Select all vertices inside the given parent or the default parent.
mxGraph.prototype.selectCells = function(vertices,
edges,
parent)
Selects all vertices and/or edges depending on the given boolean arguments recursively, starting at the given parent or the default parent if no parent is specified.
mxGraph.prototype.selectCellForEvent = function(cell,
evt)
Selects the given cell by either adding it to the selection or replacing the selection depending on whether the given mouse event is a toggle event.
mxGraph.prototype.selectCellsForEvent = function(cells,
evt)
Selects the given cells by either adding them to the selection or replacing the selection depending on whether the given mouse event is a toggle event.
mxGraph.prototype.createHandler = function(state)
Creates a new handler for the given cell state.
mxGraph.prototype.addMouseListener = function(listener)
Adds a listener to the graph event dispatch loop.
mxGraph.prototype.removeMouseListener = function(listener)
Removes the specified graph listener.
mxGraph.prototype.updateMouseEvent = function(me)
Sets the graphX and graphY properties if the given mxMouseEvent if required.
Base class for all mouse events in mxGraph.
mxGraph.prototype.fireMouseEvent = function(evtName,
me,
sender)
Dispatches the given event in the graph event dispatch loop.
mxGraph.prototype.destroy = function()
Destroys the graph and all its resources.
Event handler that selects rectangular regions.
Graph event handler that displays tooltips.
Event handler that pans and creates popupmenus.
Graph event handler that creates new connections.
Graph event handler that handles selection.
mxGraphView.prototype.validate = function(cell)
First validates all bounds and then validates all points recursively on all visible cells starting at the given cell.
Name under which mxImageShape is registered in mxCellRenderer.
Name under which mxLabel is registered in mxCellRenderer.
Defines the key for the image style.
mxGraphModel.prototype.setValue = function(cell,
value)
Sets the user object of then given mxCell using mxValueChange and adds the change to the current transaction.
mxGraphModel.prototype.valueForCellChanged = function(cell,
value)
Inner callback to update the user object of the given mxCell using mxCell.valueChanged and return the previous value, that is, the return value of mxCell.valueChanged.
Action to change a user object in a model.
Defines various global constants.
mxCell.prototype.style
Holds the style as a string of the form [(stylename|key=value);].
Implements a layout manager that updates the layout for a given transaction.
Defines the SVG display dialect name.
Defines the strict HTML display dialect.
Defines the preferred HTML display dialect name.
Defines the mixed HTML display dialect name.
Defines the VML display dialect name.
mxShape.prototype.isMixedModeHtml = function()
Used to determine if a shape can be rendered using createHtml in mixed mode Html without compromising the display accuracy.
mxShape.prototype.preferModeHtml
Specifies if createHtml should be used in prefer Html mode.
Defines the rectangle for the A4 portrait page format.
Implements printing of a diagram across multiple pages.
Defines the key for the loop style.
Loop: function (state,
source,
target,
points,
result)
Implements a self-reference, aka.
Defines the key for the fill color.
Defines the key for the rounded style.
Fires between begin- and endUpdate in flipEdge.
Defines the key for the elbow style.
Fires between begin- and endUpdate in orderCells.
Fires between begin- and endUpdate in cellsOrdered.
Fires between begin- and endUpdate in groupCells.
Fires between begin- and endUpdate in addCells.
Fires between begin- and endUpdate in cellsAdded.
Fires between begin- and endUpdate in removeCells.
Fires between begin- and endUpdate in cellsRemoved.
Fires between begin- and endUpdate in splitEdge.
Fires between begin- and endUpdate in toggleCells.
Fires between begin- and endUpdate in foldCells.
Fires between begin- and endUpdate in cellsFolded.
Fires between begin- and endUpdate in updateCellSize.
Fires between begin- and endUpdate in moveCells.
Fires between begin- and endUpdate in cellsMoved.
Implements a shape based on a mxStencil.
Implements a generic shape which is based on a XML node as a description.
Fires between begin- and endUpdate in cellConnected.
mxGraphModel.prototype.isRoot = function(cell)
Returns true if the given cell is the root of the model and a non-null value.
mxGraphModel.prototype.isLayer = function(cell)
Returns true if isRoot returns true for the parent of the given cell.
mxGraphView.prototype.getGraphBounds = function()
Returns graphBounds.
mxGraphView.prototype.getBounds = function(cells)
Returns the bounds (on the screen) for the given array of mxCells.
mxGraphView.prototype.setTranslate = function(dx,
dy)
Sets the translation and fires a translate event before calling revalidate followed by mxGraph.sizeDidChange.
Specifies the event name for pan.
mxGraphModel.prototype.getGeometry = function(cell,
geometry)
Returns the mxGeometry of the given mxCell.
mxGraphModel.prototype.isVisible = function(cell)
Returns true if the given mxCell is visible.
mxGraphModel.prototype.isCollapsed = function(cell)
Returns true if the given mxCell is collapsed.
mxGraphModel.prototype.isConnectable = function(cell)
Returns true if the given mxCell is connectable.
Defines the key for the white-space style.
Defines the key for the overflow style.
Defines the key for the verticalAlign style.
Defines the key for the indicatorColor style.
Defines the key for the indicatorGradientColor style.
Defines the key for the indicator shape used within an mxLabel.
Defines the key for the indicator image used within an mxLabel.
Extends mxShape to implement a swimlane shape.
Defines the key for the cloneable style.
Defines the key for the deletable style.
Defines the key for the movable style.
Defines the key for the resizable style.
Defines the key for the bendable style.
Defines the key for the editable style.
mxConnectionHandler.prototype.enabled
Specifies if events are handled.
mxTooltipHandler.prototype.enabled
Specifies if events are handled.
mxPanningHandler.prototype.panningEnabled
Specifies if panning should be enabled.
Defines the key for the autosize style.
Defines the key for the foldable style.
Graph event handler that reconnects edges and modifies control points and the edge label location.
Event handler for resizing cells.
Specifies the event name for mouseDown.
Specifies the event name for mouseMove.
Specifies the event name for mouseUp.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxGraphSelectionModel-js.html b/docs/js-api/files/view/mxGraphSelectionModel-js.html new file mode 100644 index 000000000..a581874a8 --- /dev/null +++ b/docs/js-api/files/view/mxGraphSelectionModel-js.html @@ -0,0 +1,107 @@ + + +mxGraphSelectionModel + + + + + + + + + +

mxGraphSelectionModel

Implements the selection model for a graph.  Here is a listener that handles all removed selection cells.

graph.getSelectionModel().addListener(mxEvent.CHANGE, function(sender, evt)
+{
+  var cells = evt.getProperty('added');
+
+  for (var i = 0; i < cells.length; i++)
+  {
+    // Handle cells[i]...
+  }
+});
Summary
mxGraphSelectionModelImplements the selection model for a graph.
Events
mxEvent.UNDOFires after the selection was changed in changeSelection.
mxEvent.CHANGEFires after the selection changes by executing an mxSelectionChange.
Functions
mxGraphSelectionModelConstructs a new graph selection model for the given mxGraph.
Variables
doneResourceSpecifies the resource key for the status message after a long operation.
updatingSelectionResourceSpecifies the resource key for the status message while the selection is being updated.
graphReference to the enclosing mxGraph.
singleSelectionSpecifies if only one selected item at a time is allowed.
Functions
isSingleSelectionReturns singleSelection as a boolean.
setSingleSelectionSets the singleSelection flag.
isSelectedReturns true if the given mxCell is selected.
isEmptyReturns true if no cells are currently selected.
clearClears the selection and fires a <change> event if the selection was not empty.
setCellSelects the specified mxCell using setCells.
setCellsSelects the given array of mxCells and fires a <change> event.
getFirstSelectableCellReturns the first selectable cell in the given array of cells.
addCellAdds the given mxCell to the selection and fires a <select> event.
addCellsAdds the given array of mxCells to the selection and fires a <select> event.
removeCellRemoves the specified mxCell from the selection and fires a <select> event for the remaining cells.
removeCells
changeSelectionInner callback to add the specified mxCell to the selection.
cellAddedInner callback to add the specified mxCell to the selection.
cellRemovedInner callback to remove the specified mxCell from the selection.
mxSelectionChangeAction to change the current root in a view.
Functions
mxCurrentRootChangeConstructs a change of the current root in the given view.
executeChanges the current root of the view.
+ +

Events

+ +

mxEvent.UNDO

Fires after the selection was changed in changeSelection.  The <code>edit</code> property contains the mxUndoableEdit which contains the mxSelectionChange.

+ +

mxEvent.CHANGE

Fires after the selection changes by executing an mxSelectionChange.  The <code>added</code> and <code>removed</code> properties contain arrays of cells that have been added to or removed from the selection, respectively.

+ +

Functions

+ +

mxGraphSelectionModel

function mxGraphSelectionModel(graph)

Constructs a new graph selection model for the given mxGraph.

Parameters

graphReference to the enclosing mxGraph.
+ +

Variables

+ +

doneResource

mxGraphSelectionModel.prototype.doneResource

Specifies the resource key for the status message after a long operation.  If the resource for this key does not exist then the value is used as the status message.  Default is ‘done’.

+ +

updatingSelectionResource

mxGraphSelectionModel.prototype.updatingSelectionResource

Specifies the resource key for the status message while the selection is being updated.  If the resource for this key does not exist then the value is used as the status message.  Default is ‘updatingSelection’.

+ +

graph

mxGraphSelectionModel.prototype.graph

Reference to the enclosing mxGraph.

+ +

singleSelection

mxGraphSelectionModel.prototype.singleSelection

Specifies if only one selected item at a time is allowed.  Default is false.

+ +

Functions

+ +

isSingleSelection

mxGraphSelectionModel.prototype.isSingleSelection = function()

Returns singleSelection as a boolean.

+ +

setSingleSelection

mxGraphSelectionModel.prototype.setSingleSelection = function(singleSelection)

Sets the singleSelection flag.

Parameters

singleSelectionBoolean that specifies the new value for singleSelection.
+ +

isSelected

mxGraphSelectionModel.prototype.isSelected = function(cell)

Returns true if the given mxCell is selected.

+ +

isEmpty

mxGraphSelectionModel.prototype.isEmpty = function()

Returns true if no cells are currently selected.

+ +

clear

mxGraphSelectionModel.prototype.clear = function()

Clears the selection and fires a <change> event if the selection was not empty.

+ +

setCell

mxGraphSelectionModel.prototype.setCell = function(cell)

Selects the specified mxCell using setCells.

Parameters

cellmxCell to be selected.
+ +

setCells

mxGraphSelectionModel.prototype.setCells = function(cells)

Selects the given array of mxCells and fires a <change> event.

Parameters

cellsArray of mxCells to be selected.
+ +

getFirstSelectableCell

mxGraphSelectionModel.prototype.getFirstSelectableCell = function(cells)

Returns the first selectable cell in the given array of cells.

+ +

addCell

mxGraphSelectionModel.prototype.addCell = function(cell)

Adds the given mxCell to the selection and fires a <select> event.

Parameters

cellmxCell to add to the selection.
+ +

addCells

mxGraphSelectionModel.prototype.addCells = function(cells)

Adds the given array of mxCells to the selection and fires a <select> event.

Parameters

cellsArray of mxCells to add to the selection.
+ +

removeCell

mxGraphSelectionModel.prototype.removeCell = function(cell)

Removes the specified mxCell from the selection and fires a <select> event for the remaining cells.

Parameters

cellmxCell to remove from the selection.
+ +

removeCells

mxGraphSelectionModel.prototype.removeCells = function(cells)
+ +

changeSelection

mxGraphSelectionModel.prototype.changeSelection = function(added,
removed)

Inner callback to add the specified mxCell to the selection.  No event is fired in this implementation.

Paramters

cellmxCell to add to the selection.
+ +

cellAdded

mxGraphSelectionModel.prototype.cellAdded = function(cell)

Inner callback to add the specified mxCell to the selection.  No event is fired in this implementation.

Paramters

cellmxCell to add to the selection.
+ +

cellRemoved

mxGraphSelectionModel.prototype.cellRemoved = function(cell)

Inner callback to remove the specified mxCell from the selection.  No event is fired in this implementation.

Parameters

cellmxCell to remove from the selection.
+ +

mxSelectionChange

Action to change the current root in a view.

Summary
Functions
mxCurrentRootChangeConstructs a change of the current root in the given view.
executeChanges the current root of the view.
+ +

Functions

+ +

mxCurrentRootChange

Constructs a change of the current root in the given view.

+ +

execute

mxSelectionChange.prototype.execute = function()

Changes the current root of the view.

+ +
+ + + + + + + + + + +
mxGraphSelectionModel.prototype.changeSelection = function(added,
removed)
Inner callback to add the specified mxCell to the selection.
Action to change the current root in a view.
function mxGraphSelectionModel(graph)
Constructs a new graph selection model for the given mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxGraphSelectionModel.prototype.doneResource
Specifies the resource key for the status message after a long operation.
mxGraphSelectionModel.prototype.updatingSelectionResource
Specifies the resource key for the status message while the selection is being updated.
mxGraphSelectionModel.prototype.graph
Reference to the enclosing mxGraph.
mxGraphSelectionModel.prototype.singleSelection
Specifies if only one selected item at a time is allowed.
mxGraphSelectionModel.prototype.isSingleSelection = function()
Returns singleSelection as a boolean.
mxGraphSelectionModel.prototype.setSingleSelection = function(singleSelection)
Sets the singleSelection flag.
mxGraphSelectionModel.prototype.isSelected = function(cell)
Returns true if the given mxCell is selected.
Cells are the elements of the graph model.
mxGraphSelectionModel.prototype.isEmpty = function()
Returns true if no cells are currently selected.
mxGraphSelectionModel.prototype.clear = function()
Clears the selection and fires a change event if the selection was not empty.
mxGraphSelectionModel.prototype.setCell = function(cell)
Selects the specified mxCell using setCells.
mxGraphSelectionModel.prototype.setCells = function(cells)
Selects the given array of mxCells and fires a change event.
mxGraphSelectionModel.prototype.getFirstSelectableCell = function(cells)
Returns the first selectable cell in the given array of cells.
mxGraphSelectionModel.prototype.addCell = function(cell)
Adds the given mxCell to the selection and fires a select event.
mxGraphSelectionModel.prototype.addCells = function(cells)
Adds the given array of mxCells to the selection and fires a select event.
mxGraphSelectionModel.prototype.removeCell = function(cell)
Removes the specified mxCell from the selection and fires a select event for the remaining cells.
mxGraphSelectionModel.prototype.removeCells = function(cells)
mxGraphSelectionModel.prototype.cellAdded = function(cell)
Inner callback to add the specified mxCell to the selection.
mxGraphSelectionModel.prototype.cellRemoved = function(cell)
Inner callback to remove the specified mxCell from the selection.
mxSelectionChange.prototype.execute = function()
Changes the current root of the view.
Implements a composite undoable edit.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxGraphView-js.html b/docs/js-api/files/view/mxGraphView-js.html new file mode 100644 index 000000000..2e49c447d --- /dev/null +++ b/docs/js-api/files/view/mxGraphView-js.html @@ -0,0 +1,255 @@ + + +mxGraphView + + + + + + + + + +

mxGraphView

Extends mxEventSource to implement a view for a graph.  This class is in charge of computing the absolute coordinates for the relative child geometries, the points for perimeters and edge styles and keeping them cached in mxCellStates for faster retrieval.  The states are updated whenever the model or the view state (translate, scale) changes.  The scale and translate are honoured in the bounds.

Summary
mxGraphViewExtends mxEventSource to implement a view for a graph.
Events
mxEvent.UNDOFires after the root was changed in setCurrentRoot.
mxEvent.SCALE_AND_TRANSLATEFires after the scale and translate have been changed in scaleAndTranslate.
mxEvent.SCALEFires after the scale was changed in setScale.
mxEvent.TRANSLATEFires after the translate was changed in setTranslate.
mxEvent.DOWN and mxEvent.UPFire if the current root is changed by executing an mxCurrentRootChange.
Functions
mxGraphViewConstructs a new view for the given mxGraph.
Variables
doneResourceSpecifies the resource key for the status message after a long operation.
Functions
updatingDocumentResourceSpecifies the resource key for the status message while the document is being updated.
Variables
allowEvalSpecifies if string values in cell styles should be evaluated using mxUtils.eval.
captureDocumentGestureSpecifies if a gesture should be captured when it goes outside of the graph container.
renderingSpecifies if shapes should be created, updated and destroyed using the methods of mxCellRenderer in graph.
graphReference to the enclosing mxGraph.
currentRootmxCell that acts as the root of the displayed cell hierarchy.
graphBoundsmxRectangle that caches the scales, translated bounds of the current view.
scaleSpecifies the scale.
translatemxPoint that specifies the current translation.
updateStyleSpecifies if the style should be updated in each validation step.
Functions
getGraphBoundsReturns graphBounds.
setGraphBoundsSets graphBounds.
getBoundsReturns the bounds (on the screen) for the given array of mxCells.
setCurrentRootSets and returns the current root and fires an <undo> event before calling mxGraph.sizeDidChange.
scaleAndTranslateSets the scale and translation and fires a scale and translate event before calling revalidate followed by mxGraph.sizeDidChange.
getScaleReturns the scale.
setScaleSets the scale and fires a scale event before calling revalidate followed by mxGraph.sizeDidChange.
getTranslateReturns the translate.
setTranslateSets the translation and fires a translate event before calling revalidate followed by mxGraph.sizeDidChange.
refreshClears the view if currentRoot is not null and revalidates.
revalidateRevalidates the complete view with all cell states.
clearRemoves the state of the given cell and all descendants if the given cell is not the current root.
invalidateInvalidates the state of the given cell, all its descendants and connected edges.
validateFirst validates all bounds and then validates all points recursively on all visible cells starting at the given cell.
createBackgroundPageShapeCreates and returns the shape used as the background page.
validateBackgroundValidates the background image.
getBackgroundPageBoundsReturns the bounds for the background page.
redrawBackgroundImageUpdates the bounds and redraws the background image.
validateBoundsValidates the bounds of the given parent’s child using the given parent state as the origin for the child.
updateVertexLabelOffsetUpdates the absoluteOffset of the given vertex cell state.
validatePointsValidates the points for the state of the given cell recursively if the cell is not collapsed and returns the bounding box of all visited states as an mxRectangle.
childMovedInvoked when a child state was moved as a result of late evaluation of its position.
updateFixedTerminalPointsSets the initial absolute terminal points in the given state before the edge style is computed.
updateFixedTerminalPointSets the fixed source or target terminal point on the given edge.
updatePointsUpdates the absolute points in the given state using the specified array of mxPoints as the relative points.
transformControlPointTransforms the given control point to an absolute point.
getEdgeStyleReturns the edge style function to be used to render the given edge state.
updateFloatingTerminalPointsUpdates the terminal points in the given state after the edge style was computed for the edge.
updateFloatingTerminalPointUpdates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.
getTerminalPortReturns an mxCellState that represents the source or target terminal or port for the given edge.
getPerimeterPointReturns an mxPoint that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.
getRoutingCenterXReturns the x-coordinate of the center point for automatic routing.
getRoutingCenterYReturns the y-coordinate of the center point for automatic routing.
getPerimeterBoundsReturns the perimeter bounds for the given terminal, edge pair as an mxRectangle.
getPerimeterFunctionReturns the perimeter function for the given state.
getNextPointReturns the nearest point in the list of absolute points or the center of the opposite terminal.
getVisibleTerminalReturns the nearest ancestor terminal that is visible.
updateEdgeBoundsUpdates the given state using the bounding box of the absolute points.
getPointReturns the absolute point on the edge for the given relative mxGeometry as an mxPoint.
getRelativePointGets the relative point that describes the given, absolute label position for the given edge state.
updateEdgeLabelOffsetUpdates mxCellState.absoluteOffset for the given state.
getStateReturns the mxCellState for the given cell.
isRenderingReturns rendering.
setRenderingSets rendering.
isAllowEvalReturns allowEval.
setAllowEvalSets allowEval.
getStatesReturns <states>.
setStatesSets <states>.
getCellStatesReturns the mxCellStates for the given array of mxCells.
removeStateRemoves and returns the mxCellState for the given cell.
createStateCreates and returns an mxCellState for the given cell and initializes it using mxCellRenderer.initialize.
getCanvasReturns the DOM node that contains the background-, draw- and overlaypane.
getBackgroundPaneReturns the DOM node that represents the background layer.
getDrawPaneReturns the DOM node that represents the main drawing layer.
getOverlayPaneReturns the DOM node that represents the topmost drawing layer.
isContainerEventReturns true if the event origin is one of the drawing panes or containers of the view.
isScrollEventReturns true if the event origin is one of the scrollbars of the container in IE.
initInitializes the graph event dispatch loop for the specified container and invokes create to create the required DOM nodes for the display.
installListenersInstalls the required listeners in the container.
createCreates the DOM nodes for the HTML display.
createHtmlPaneCreates and returns a drawing pane in HTML (DIV).
createCreates the DOM nodes for the VML display.
createVmlPaneCreates a drawing pane in VML (group).
createCreates and returns the DOM nodes for the SVG display.
destroyDestroys the view and all its resources.
mxCurrentRootChangeAction to change the current root in a view.
Functions
mxCurrentRootChangeConstructs a change of the current root in the given view.
executeChanges the current root of the view.
+ +

Events

+ +

mxEvent.UNDO

Fires after the root was changed in setCurrentRoot.  The <code>edit</code> property contains the mxUndoableEdit which contains the mxCurrentRootChange.

+ +

mxEvent.SCALE_AND_TRANSLATE

Fires after the scale and translate have been changed in scaleAndTranslate.  The <code>scale</code>, <code>previousScale</code>, <code>translate</code> and <code>previousTranslate</code> properties contain the new and previous scale and translate, respectively.

+ +

mxEvent.SCALE

Fires after the scale was changed in setScale.  The <code>scale</code> and <code>previousScale</code> properties contain the new and previous scale.

+ +

mxEvent.TRANSLATE

Fires after the translate was changed in setTranslate.  The <code>translate</code> and <code>previousTranslate</code> properties contain the new and previous value for translate.

+ +

mxEvent.DOWN and mxEvent.UP

Fire if the current root is changed by executing an mxCurrentRootChange.  The event name depends on the location of the root in the cell hierarchy with respect to the current root.  The <code>root</code> and <code>previous</code> properties contain the new and previous root, respectively.

+ +

Functions

+ +

mxGraphView

function mxGraphView(graph)

Constructs a new view for the given mxGraph.

Parameters

graphReference to the enclosing mxGraph.
+ +

Variables

+ +

doneResource

mxGraphView.prototype.doneResource

Specifies the resource key for the status message after a long operation.  If the resource for this key does not exist then the value is used as the status message.  Default is ‘done’.

+ +

Functions

+ +

updatingDocumentResource

Specifies the resource key for the status message while the document is being updated.  If the resource for this key does not exist then the value is used as the status message.  Default is ‘updatingDocument’.

+ +

Variables

+ +

allowEval

mxGraphView.prototype.allowEval

Specifies if string values in cell styles should be evaluated using mxUtils.eval.  This will only be used if the string values can’t be mapped to objects using mxStyleRegistry.  Default is false.  NOTE: Enabling this switch carries a possible security risk (see the section on security in the manual).

+ +

captureDocumentGesture

mxGraphView.prototype.captureDocumentGesture

Specifies if a gesture should be captured when it goes outside of the graph container.  Default is true.

+ +

rendering

mxGraphView.prototype.rendering

Specifies if shapes should be created, updated and destroyed using the methods of mxCellRenderer in graph.  Default is true.

+ +

graph

mxGraphView.prototype.graph

Reference to the enclosing mxGraph.

+ +

currentRoot

mxGraphView.prototype.currentRoot

mxCell that acts as the root of the displayed cell hierarchy.

+ +

graphBounds

mxGraphView.prototype.graphBounds

mxRectangle that caches the scales, translated bounds of the current view.

+ +

scale

mxGraphView.prototype.scale

Specifies the scale.  Default is 1 (100%).

+ +

translate

mxGraphView.prototype.translate

mxPoint that specifies the current translation.  Default is a new empty mxPoint.

+ +

updateStyle

mxGraphView.prototype.updateStyle

Specifies if the style should be updated in each validation step.  If this is false then the style is only updated if the state is created.  Default is false.

+ +

Functions

+ +

getGraphBounds

mxGraphView.prototype.getGraphBounds = function()

Returns graphBounds.

+ +

setGraphBounds

mxGraphView.prototype.setGraphBounds = function(value)

Sets graphBounds.

+ +

getBounds

mxGraphView.prototype.getBounds = function(cells)

Returns the bounds (on the screen) for the given array of mxCells.

Parameters

cellsArray of mxCells to return the bounds for.
+ +

setCurrentRoot

mxGraphView.prototype.setCurrentRoot = function(root)

Sets and returns the current root and fires an <undo> event before calling mxGraph.sizeDidChange.

Parameters

rootmxCell that specifies the root of the displayed cell hierarchy.
+ +

scaleAndTranslate

mxGraphView.prototype.scaleAndTranslate = function(scale,
dx,
dy)

Sets the scale and translation and fires a scale and translate event before calling revalidate followed by mxGraph.sizeDidChange.

Parameters

scaleDecimal value that specifies the new scale (1 is 100%).
dxX-coordinate of the translation.
dyY-coordinate of the translation.
+ +

getScale

mxGraphView.prototype.getScale = function()

Returns the scale.

+ +

setScale

mxGraphView.prototype.setScale = function(value)

Sets the scale and fires a scale event before calling revalidate followed by mxGraph.sizeDidChange.

Parameters

valueDecimal value that specifies the new scale (1 is 100%).
+ +

getTranslate

mxGraphView.prototype.getTranslate = function()

Returns the translate.

+ +

setTranslate

mxGraphView.prototype.setTranslate = function(dx,
dy)

Sets the translation and fires a translate event before calling revalidate followed by mxGraph.sizeDidChange.  The translation is the negative of the origin.

Parameters

dxX-coordinate of the translation.
dyY-coordinate of the translation.
+ +

refresh

mxGraphView.prototype.refresh = function()

Clears the view if currentRoot is not null and revalidates.

+ +

revalidate

mxGraphView.prototype.revalidate = function()

Revalidates the complete view with all cell states.

+ +

clear

mxGraphView.prototype.clear = function(cell,
force,
recurse)

Removes the state of the given cell and all descendants if the given cell is not the current root.

Parameters

cellOptional mxCell for which the state should be removed.  Default is the root of the model.
forceBoolean indicating if the current root should be ignored for recursion.
+ +

invalidate

mxGraphView.prototype.invalidate = function(cell,
recurse,
includeEdges,
orderChanged)

Invalidates the state of the given cell, all its descendants and connected edges.

Parameters

cellOptional mxCell to be invalidated.  Default is the root of the model.
+ +

validate

mxGraphView.prototype.validate = function(cell)

First validates all bounds and then validates all points recursively on all visible cells starting at the given cell.  Finally the background is validated using validateBackground.

Parameters

cellOptional mxCell to be used as the root of the validation.  Default is currentRoot or the root of the model.
+ +

createBackgroundPageShape

mxGraphView.prototype.createBackgroundPageShape = function(bounds)

Creates and returns the shape used as the background page.

Parameters

boundsmxRectangle that represents the bounds of the shape.
+ +

validateBackground

mxGraphView.prototype.validateBackground = function()

Validates the background image.

+ +

getBackgroundPageBounds

mxGraphView.prototype.getBackgroundPageBounds = function()

Returns the bounds for the background page.

+ +

redrawBackgroundImage

mxGraphView.prototype.redrawBackgroundImage = function(backgroundImage,
bg)

Updates the bounds and redraws the background image.

Example

If the background image should not be scaled, this can be replaced with the following.

mxGraphView.prototype.redrawBackground = function(backgroundImage, bg)
+{
+  backgroundImage.bounds.x = this.translate.x;
+  backgroundImage.bounds.y = this.translate.y;
+  backgroundImage.bounds.width = bg.width;
+  backgroundImage.bounds.height = bg.height;
+
+  backgroundImage.redraw();
+};

Parameters

backgroundImagemxImageShape that represents the background image.
bgmxImage that specifies the image and its dimensions.
+ +

validateBounds

mxGraphView.prototype.validateBounds = function(parentState,
cell)

Validates the bounds of the given parent’s child using the given parent state as the origin for the child.  The validation is carried out recursively for all non-collapsed descendants.

Parameters

parentStatemxCellState for the given parent.
cellmxCell for which the bounds in the state should be updated.
+ +

updateVertexLabelOffset

mxGraphView.prototype.updateVertexLabelOffset = function(state)

Updates the absoluteOffset of the given vertex cell state.  This takes into account the label position styles.

Parameters

statemxCellState whose absolute offset should be updated.
+ +

validatePoints

mxGraphView.prototype.validatePoints = function(parentState,
cell)

Validates the points for the state of the given cell recursively if the cell is not collapsed and returns the bounding box of all visited states as an mxRectangle.

Parameters

parentStatemxCellState for the parent cell.
cellmxCell whose points in the state should be updated.
+ +

childMoved

mxGraphView.prototype.childMoved = function(parent,
child)

Invoked when a child state was moved as a result of late evaluation of its position.  This is invoked for relative edge children whose position can only be determined after the points of the parent edge are updated in validatePoints, and validates the bounds of all descendants of the child using validateBounds.

Parameters

parentmxCellState that represents the parent state.
childmxCellState that represents the child state.
+ +

updateFixedTerminalPoints

mxGraphView.prototype.updateFixedTerminalPoints = function(edge,
source,
target)

Sets the initial absolute terminal points in the given state before the edge style is computed.

Parameters

edgemxCellState whose initial terminal points should be updated.
sourcemxCellState which represents the source terminal.
targetmxCellState which represents the target terminal.
+ +

updateFixedTerminalPoint

mxGraphView.prototype.updateFixedTerminalPoint = function(edge,
terminal,
source,
constraint)

Sets the fixed source or target terminal point on the given edge.

Parameters

edgemxCellState whose terminal point should be updated.
terminalmxCellState which represents the actual terminal.
sourceBoolean that specifies if the terminal is the source.
constraintmxConnectionConstraint that specifies the connection.
+ +

updatePoints

mxGraphView.prototype.updatePoints = function(edge,
points,
source,
target)

Updates the absolute points in the given state using the specified array of mxPoints as the relative points.

Parameters

edgemxCellState whose absolute points should be updated.
pointsArray of mxPoints that constitute the relative points.
sourcemxCellState that represents the source terminal.
targetmxCellState that represents the target terminal.
+ +

transformControlPoint

mxGraphView.prototype.transformControlPoint = function(state,
pt)

Transforms the given control point to an absolute point.

+ +

getEdgeStyle

mxGraphView.prototype.getEdgeStyle = function(edge,
points,
source,
target)

Returns the edge style function to be used to render the given edge state.

+ +

updateFloatingTerminalPoints

mxGraphView.prototype.updateFloatingTerminalPoints = function(state,
source,
target)

Updates the terminal points in the given state after the edge style was computed for the edge.

Parameters

statemxCellState whose terminal points should be updated.
sourcemxCellState that represents the source terminal.
targetmxCellState that represents the target terminal.
+ +

updateFloatingTerminalPoint

mxGraphView.prototype.updateFloatingTerminalPoint = function(edge,
start,
end,
source)

Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.

Parameters

edgemxCellState whose terminal point should be updated.
startmxCellState for the terminal on “this” side of the edge.
endmxCellState for the terminal on the other side of the edge.
sourceBoolean indicating if start is the source terminal state.
+ +

getTerminalPort

mxGraphView.prototype.getTerminalPort = function(state,
terminal,
source)

Returns an mxCellState that represents the source or target terminal or port for the given edge.

Parameters

statemxCellState that represents the state of the edge.
terminalmxCellState that represents the terminal.
sourceBoolean indicating if the given terminal is the source terminal.
+ +

getPerimeterPoint

mxGraphView.prototype.getPerimeterPoint = function(terminal,
next,
orthogonal,
border)

Returns an mxPoint that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.

Parameters

terminalmxCellState for the source or target terminal.
nextmxPoint that lies outside of the given terminal.
orthogonalBoolean that specifies if the orthogonal projection onto the perimeter should be returned.  If this is false then the intersection of the perimeter and the line between the next and the center point is returned.
borderOptional border between the perimeter and the shape.
+ +

getRoutingCenterX

mxGraphView.prototype.getRoutingCenterX = function (state)

Returns the x-coordinate of the center point for automatic routing.

+ +

getRoutingCenterY

mxGraphView.prototype.getRoutingCenterY = function (state)

Returns the y-coordinate of the center point for automatic routing.

+ +

getPerimeterBounds

mxGraphView.prototype.getPerimeterBounds = function(terminal,
border)

Returns the perimeter bounds for the given terminal, edge pair as an mxRectangle.

If you have a model where each terminal has a relative child that should act as the graphical endpoint for a connection from/to the terminal, then this method can be replaced as follows:

var oldGetPerimeterBounds = mxGraphView.prototype.getPerimeterBounds;
+mxGraphView.prototype.getPerimeterBounds = function(terminal, edge, isSource)
+{
+  var model = this.graph.getModel();
+  var childCount = model.getChildCount(terminal.cell);
+
+  if (childCount > 0)
+  {
+    var child = model.getChildAt(terminal.cell, 0);
+    var geo = model.getGeometry(child);
+
+    if (geo != null &&
+        geo.relative)
+    {
+      var state = this.getState(child);
+
+      if (state != null)
+      {
+        terminal = state;
+      }
+    }
+  }
+
+  return oldGetPerimeterBounds.apply(this, arguments);
+};

Parameters

terminalmxCellState that represents the terminal.
borderNumber that adds a border between the shape and the perimeter.
+ +

getPerimeterFunction

mxGraphView.prototype.getPerimeterFunction = function(state)

Returns the perimeter function for the given state.

+ +

getNextPoint

mxGraphView.prototype.getNextPoint = function(edge,
opposite,
source)

Returns the nearest point in the list of absolute points or the center of the opposite terminal.

Parameters

edgemxCellState that represents the edge.
oppositemxCellState that represents the opposite terminal.
sourceBoolean indicating if the next point for the source or target should be returned.
+ +

getVisibleTerminal

mxGraphView.prototype.getVisibleTerminal = function(edge,
source)

Returns the nearest ancestor terminal that is visible.  The edge appears to be connected to this terminal on the display.  The result of this method is cached in mxCellState.getVisibleTerminalState.

Parameters

edgemxCell whose visible terminal should be returned.
sourceBoolean that specifies if the source or target terminal should be returned.
+ +

updateEdgeBounds

mxGraphView.prototype.updateEdgeBounds = function(state)

Updates the given state using the bounding box of the absolute points.  Also updates mxCellState.terminalDistance, mxCellState.length and mxCellState.segments.

Parameters

statemxCellState whose bounds should be updated.
+ +

getPoint

mxGraphView.prototype.getPoint = function(state,
geometry)

Returns the absolute point on the edge for the given relative mxGeometry as an mxPoint.  The edge is represented by the given mxCellState.

Parameters

statemxCellState that represents the state of the parent edge.
geometrymxGeometry that represents the relative location.
+ +

getRelativePoint

mxGraphView.prototype.getRelativePoint = function(edgeState,
x,
y)

Gets the relative point that describes the given, absolute label position for the given edge state.

Parameters

statemxCellState that represents the state of the parent edge.
xSpecifies the x-coordinate of the absolute label location.
ySpecifies the y-coordinate of the absolute label location.
+ +

updateEdgeLabelOffset

mxGraphView.prototype.updateEdgeLabelOffset = function(state)

Updates mxCellState.absoluteOffset for the given state.  The absolute offset is normally used for the position of the edge label.  Is is calculated from the geometry as an absolute offset from the center between the two endpoints if the geometry is absolute, or as the relative distance between the center along the line and the absolute orthogonal distance if the geometry is relative.

Parameters

statemxCellState whose absolute offset should be updated.
+ +

getState

mxGraphView.prototype.getState = function(cell,
create)

Returns the mxCellState for the given cell.  If create is true, then the state is created if it does not yet exist.

Parameters

cellmxCell for which the mxCellState should be returned.
createOptional boolean indicating if a new state should be created if it does not yet exist.  Default is false.
+ +

isRendering

mxGraphView.prototype.isRendering = function()

Returns rendering.

+ +

setRendering

mxGraphView.prototype.setRendering = function(value)

Sets rendering.

+ +

isAllowEval

mxGraphView.prototype.isAllowEval = function()

Returns allowEval.

+ +

setAllowEval

mxGraphView.prototype.setAllowEval = function(value)

Sets allowEval.

+ +

getStates

mxGraphView.prototype.getStates = function()

Returns <states>.

+ +

setStates

mxGraphView.prototype.setStates = function(value)

Sets <states>.

+ +

getCellStates

mxGraphView.prototype.getCellStates = function(cells)

Returns the mxCellStates for the given array of mxCells.  The array contains all states that are not null, that is, the returned array may have less elements than the given array.  If no argument is given, then this returns <states>.

+ +

removeState

mxGraphView.prototype.removeState = function(cell)

Removes and returns the mxCellState for the given cell.

Parameters

cellmxCell for which the mxCellState should be removed.
+ +

createState

mxGraphView.prototype.createState = function(cell)

Creates and returns an mxCellState for the given cell and initializes it using mxCellRenderer.initialize.

Parameters

cellmxCell for which a new mxCellState should be created.
+ +

getCanvas

mxGraphView.prototype.getCanvas = function()

Returns the DOM node that contains the background-, draw- and overlaypane.

+ +

getBackgroundPane

mxGraphView.prototype.getBackgroundPane = function()

Returns the DOM node that represents the background layer.

+ +

getDrawPane

mxGraphView.prototype.getDrawPane = function()

Returns the DOM node that represents the main drawing layer.

+ +

getOverlayPane

mxGraphView.prototype.getOverlayPane = function()

Returns the DOM node that represents the topmost drawing layer.

+ +

isContainerEvent

mxGraphView.prototype.isContainerEvent = function(evt)

Returns true if the event origin is one of the drawing panes or containers of the view.

+ +

isScrollEvent

mxGraphView.prototype.isScrollEvent = function(evt)

Returns true if the event origin is one of the scrollbars of the container in IE.  Such events are ignored.

+ +

init

mxGraphView.prototype.init = function()

Initializes the graph event dispatch loop for the specified container and invokes create to create the required DOM nodes for the display.

+ +

installListeners

mxGraphView.prototype.installListeners = function()

Installs the required listeners in the container.

+ +

create

mxGraphView.prototype.createHtml = function()

Creates the DOM nodes for the HTML display.

+ +

createHtmlPane

mxGraphView.prototype.createHtmlPane = function(width,
height)

Creates and returns a drawing pane in HTML (DIV).

+ +

create

mxGraphView.prototype.createVml = function()

Creates the DOM nodes for the VML display.

+ +

createVmlPane

mxGraphView.prototype.createVmlPane = function(width,
height)

Creates a drawing pane in VML (group).

+ +

create

mxGraphView.prototype.createSvg = function()

Creates and returns the DOM nodes for the SVG display.

+ +

destroy

mxGraphView.prototype.destroy = function()

Destroys the view and all its resources.

+ +

mxCurrentRootChange

Action to change the current root in a view.

Summary
Functions
mxCurrentRootChangeConstructs a change of the current root in the given view.
executeChanges the current root of the view.
+ +

Functions

+ +

mxCurrentRootChange

function mxCurrentRootChange(view,
root)

Constructs a change of the current root in the given view.

+ +

execute

mxCurrentRootChange.prototype.execute = function()

Changes the current root of the view.

+ +
+ + + + + + + + + + +
Base class for objects that dispatch named events.
mxGraphView.prototype.setCurrentRoot = function(root)
Sets and returns the current root and fires an undo event before calling mxGraph.sizeDidChange.
mxGraphView.prototype.scaleAndTranslate = function(scale,
dx,
dy)
Sets the scale and translation and fires a scale and translate event before calling revalidate followed by mxGraph.sizeDidChange.
mxGraphView.prototype.setScale = function(value)
Sets the scale and fires a scale event before calling revalidate followed by mxGraph.sizeDidChange.
mxGraphView.prototype.setTranslate = function(dx,
dy)
Sets the translation and fires a translate event before calling revalidate followed by mxGraph.sizeDidChange.
Action to change the current root in a view.
function mxGraphView(graph)
Constructs a new view for the given mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxGraphView.prototype.doneResource
Specifies the resource key for the status message after a long operation.
mxGraphView.prototype.allowEval
Specifies if string values in cell styles should be evaluated using mxUtils.eval.
eval: function(expr)
Evaluates the given expression using eval and returns the JavaScript object that represents the expression result.
mxGraphView.prototype.captureDocumentGesture
Specifies if a gesture should be captured when it goes outside of the graph container.
mxGraphView.prototype.rendering
Specifies if shapes should be created, updated and destroyed using the methods of mxCellRenderer in graph.
Renders cells into a document object model.
mxGraphView.prototype.graph
Reference to the enclosing mxGraph.
mxGraphView.prototype.currentRoot
mxCell that acts as the root of the displayed cell hierarchy.
Cells are the elements of the graph model.
mxGraphView.prototype.graphBounds
mxRectangle that caches the scales, translated bounds of the current view.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxGraphView.prototype.scale
Specifies the scale.
mxGraphView.prototype.translate
mxPoint that specifies the current translation.
Implements a 2-dimensional vector with double precision coordinates.
mxGraphView.prototype.updateStyle
Specifies if the style should be updated in each validation step.
mxGraphView.prototype.getGraphBounds = function()
Returns graphBounds.
mxGraphView.prototype.setGraphBounds = function(value)
Sets graphBounds.
mxGraphView.prototype.getBounds = function(cells)
Returns the bounds (on the screen) for the given array of mxCells.
mxGraph.prototype.sizeDidChange = function()
Called when the size of the graph has changed.
mxGraphView.prototype.revalidate = function()
Revalidates the complete view with all cell states.
mxGraphView.prototype.getScale = function()
Returns the scale.
mxGraphView.prototype.getTranslate = function()
Returns the translate.
mxGraphView.prototype.refresh = function()
Clears the view if currentRoot is not null and revalidates.
mxGraphView.prototype.clear = function(cell,
force,
recurse)
Removes the state of the given cell and all descendants if the given cell is not the current root.
mxGraphView.prototype.invalidate = function(cell,
recurse,
includeEdges,
orderChanged)
Invalidates the state of the given cell, all its descendants and connected edges.
mxGraphView.prototype.validate = function(cell)
First validates all bounds and then validates all points recursively on all visible cells starting at the given cell.
mxGraphView.prototype.createBackgroundPageShape = function(bounds)
Creates and returns the shape used as the background page.
mxGraphView.prototype.validateBackground = function()
Validates the background image.
mxGraphView.prototype.getBackgroundPageBounds = function()
Returns the bounds for the background page.
mxGraphView.prototype.redrawBackgroundImage = function(backgroundImage,
bg)
Updates the bounds and redraws the background image.
mxGraphView.prototype.validateBounds = function(parentState,
cell)
Validates the bounds of the given parent’s child using the given parent state as the origin for the child.
mxGraphView.prototype.updateVertexLabelOffset = function(state)
Updates the absoluteOffset of the given vertex cell state.
mxGraphView.prototype.validatePoints = function(parentState,
cell)
Validates the points for the state of the given cell recursively if the cell is not collapsed and returns the bounding box of all visited states as an mxRectangle.
mxGraphView.prototype.childMoved = function(parent,
child)
Invoked when a child state was moved as a result of late evaluation of its position.
mxGraphView.prototype.updateFixedTerminalPoints = function(edge,
source,
target)
Sets the initial absolute terminal points in the given state before the edge style is computed.
mxGraphView.prototype.updateFixedTerminalPoint = function(edge,
terminal,
source,
constraint)
Sets the fixed source or target terminal point on the given edge.
mxGraphView.prototype.updatePoints = function(edge,
points,
source,
target)
Updates the absolute points in the given state using the specified array of mxPoints as the relative points.
mxGraphView.prototype.transformControlPoint = function(state,
pt)
Transforms the given control point to an absolute point.
mxGraphView.prototype.getEdgeStyle = function(edge,
points,
source,
target)
Returns the edge style function to be used to render the given edge state.
mxGraphView.prototype.updateFloatingTerminalPoints = function(state,
source,
target)
Updates the terminal points in the given state after the edge style was computed for the edge.
mxGraphView.prototype.updateFloatingTerminalPoint = function(edge,
start,
end,
source)
Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.
mxGraphView.prototype.getTerminalPort = function(state,
terminal,
source)
Returns an mxCellState that represents the source or target terminal or port for the given edge.
Represents the current state of a cell in a given mxGraphView.
mxGraphView.prototype.getPerimeterPoint = function(terminal,
next,
orthogonal,
border)
Returns an mxPoint that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.
mxGraphView.prototype.getRoutingCenterX = function (state)
Returns the x-coordinate of the center point for automatic routing.
mxGraphView.prototype.getRoutingCenterY = function (state)
Returns the y-coordinate of the center point for automatic routing.
mxGraphView.prototype.getPerimeterBounds = function(terminal,
border)
Returns the perimeter bounds for the given terminal, edge pair as an mxRectangle.
mxGraphView.prototype.getPerimeterFunction = function(state)
Returns the perimeter function for the given state.
mxGraphView.prototype.getNextPoint = function(edge,
opposite,
source)
Returns the nearest point in the list of absolute points or the center of the opposite terminal.
mxGraphView.prototype.getVisibleTerminal = function(edge,
source)
Returns the nearest ancestor terminal that is visible.
mxGraphView.prototype.updateEdgeBounds = function(state)
Updates the given state using the bounding box of the absolute points.
mxGraphView.prototype.getPoint = function(state,
geometry)
Returns the absolute point on the edge for the given relative mxGeometry as an mxPoint.
Extends mxRectangle to represent the geometry of a cell.
mxGraphView.prototype.getRelativePoint = function(edgeState,
x,
y)
Gets the relative point that describes the given, absolute label position for the given edge state.
mxGraphView.prototype.updateEdgeLabelOffset = function(state)
Updates mxCellState.absoluteOffset for the given state.
mxCellState.prototype.absoluteOffset
mxPoint that holds the absolute offset.
mxGraphView.prototype.getState = function(cell,
create)
Returns the mxCellState for the given cell.
mxGraphView.prototype.isRendering = function()
Returns rendering.
mxGraphView.prototype.setRendering = function(value)
Sets rendering.
mxGraphView.prototype.isAllowEval = function()
Returns allowEval.
mxGraphView.prototype.setAllowEval = function(value)
Sets allowEval.
mxGraphView.prototype.getStates = function()
Returns states.
mxGraphView.prototype.setStates = function(value)
Sets states.
mxGraphView.prototype.getCellStates = function(cells)
Returns the mxCellStates for the given array of mxCells.
mxGraphView.prototype.removeState = function(cell)
Removes and returns the mxCellState for the given cell.
mxGraphView.prototype.createState = function(cell)
Creates and returns an mxCellState for the given cell and initializes it using mxCellRenderer.initialize.
mxCellRenderer.prototype.initialize = function(state)
Initializes the display for the given cell state.
mxGraphView.prototype.getCanvas = function()
Returns the DOM node that contains the background-, draw- and overlaypane.
mxGraphView.prototype.getBackgroundPane = function()
Returns the DOM node that represents the background layer.
mxGraphView.prototype.getDrawPane = function()
Returns the DOM node that represents the main drawing layer.
mxGraphView.prototype.getOverlayPane = function()
Returns the DOM node that represents the topmost drawing layer.
mxGraphView.prototype.isContainerEvent = function(evt)
Returns true if the event origin is one of the drawing panes or containers of the view.
mxGraphView.prototype.isScrollEvent = function(evt)
Returns true if the event origin is one of the scrollbars of the container in IE.
mxGraphView.prototype.init = function()
Initializes the graph event dispatch loop for the specified container and invokes create to create the required DOM nodes for the display.
mxGraphView.prototype.createHtml = function()
Creates the DOM nodes for the HTML display.
mxGraphView.prototype.installListeners = function()
Installs the required listeners in the container.
mxGraphView.prototype.createHtmlPane = function(width,
height)
Creates and returns a drawing pane in HTML (DIV).
mxGraphView.prototype.createVmlPane = function(width,
height)
Creates a drawing pane in VML (group).
mxGraphView.prototype.destroy = function()
Destroys the view and all its resources.
function mxCurrentRootChange(view,
root)
Constructs a change of the current root in the given view.
mxCurrentRootChange.prototype.execute = function()
Changes the current root of the view.
Implements a composite undoable edit.
Singleton class that acts as a global converter from string to object values in a style.
Extends mxShape to implement an image shape.
Encapsulates the URL, width and height of an image.
Defines an object that contains the constraints about how to connect one side of an edge to its terminal.
mxCellState.prototype.getVisibleTerminalState = function (source)
Returns the visible source or target terminal state.
mxCellState.prototype.terminalDistance
Caches the distance between the end points for an edge.
mxCellState.prototype.length
Caches the length of an edge.
mxCellState.prototype.segments
Array of numbers that represent the cached length of each segment of the edge.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxLayoutManager-js.html b/docs/js-api/files/view/mxLayoutManager-js.html new file mode 100644 index 000000000..4bf84ec69 --- /dev/null +++ b/docs/js-api/files/view/mxLayoutManager-js.html @@ -0,0 +1,93 @@ + + +mxLayoutManager + + + + + + + + + +

mxLayoutManager

Implements a layout manager that updates the layout for a given transaction.

Example

var layoutMgr = new mxLayoutManager(graph);
+layoutMgr.getLayout = function(cell)
+{
+  return layout;
+};
Summary
mxLayoutManagerImplements a layout manager that updates the layout for a given transaction.
Events
mxEvent.LAYOUT_CELLSFires between begin- and endUpdate after all cells have been layouted in layoutCells.
Functions
mxLayoutManagerConstructs a new automatic layout for the given graph.
Variables
graphReference to the enclosing mxGraph.
bubblingSpecifies if the layout should bubble along the cell hierarchy.
enabledSpecifies if event handling is enabled.
updateHandlerHolds the function that handles the endUpdate event.
moveHandlerHolds the function that handles the move event.
Functions
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
isBubblingReturns true if a layout should bubble, that is, if the parent layout should be executed whenever a cell layout (layout of the children of a cell) has been executed.
setBubblingSets bubbling.
getGraphReturns the graph that this layout operates on.
setGraphSets the graph that the layouts operate on.
getLayoutReturns the layout to be executed for the given graph and parent.
beforeUndoCalled from the undoHandler.
cellsMovedCalled from the moveHandler.
getCellsForEditReturns the cells to be layouted for the given sequence of changes.
getCellsForChangeExecutes all layouts which have been scheduled during the changes.
layoutCellsExecutes all layouts which have been scheduled during the changes.
executeLayoutExecutes the given layout on the given parent.
destroyRemoves all handlers from the graph and deletes the reference to it.
+ +

Events

+ +

mxEvent.LAYOUT_CELLS

Fires between begin- and endUpdate after all cells have been layouted in layoutCells.  The <code>cells</code> property contains all cells that have been passed to layoutCells.

+ +

Functions

+ +

mxLayoutManager

function mxLayoutManager(graph)

Constructs a new automatic layout for the given graph.

Arguments

graphReference to the enclosing graph.
+ +

Variables

+ +

graph

mxLayoutManager.prototype.graph

Reference to the enclosing mxGraph.

+ +

bubbling

mxLayoutManager.prototype.bubbling

Specifies if the layout should bubble along the cell hierarchy.  Default is true.

+ +

enabled

mxLayoutManager.prototype.enabled

Specifies if event handling is enabled.  Default is true.

+ +

updateHandler

mxLayoutManager.prototype.updateHandler

Holds the function that handles the endUpdate event.

+ +

moveHandler

mxLayoutManager.prototype.moveHandler

Holds the function that handles the move event.

+ +

Functions

+ +

isEnabled

mxLayoutManager.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxLayoutManager.prototype.setEnabled = function(enabled)

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

isBubbling

mxLayoutManager.prototype.isBubbling = function()

Returns true if a layout should bubble, that is, if the parent layout should be executed whenever a cell layout (layout of the children of a cell) has been executed.  This implementation returns bubbling.

+ +

setBubbling

mxLayoutManager.prototype.setBubbling = function(value)

Sets bubbling.

+ +

getGraph

mxLayoutManager.prototype.getGraph = function()

Returns the graph that this layout operates on.

+ +

setGraph

mxLayoutManager.prototype.setGraph = function(graph)

Sets the graph that the layouts operate on.

+ +

getLayout

mxLayoutManager.prototype.getLayout = function(parent)

Returns the layout to be executed for the given graph and parent.

+ +

beforeUndo

mxLayoutManager.prototype.beforeUndo = function(undoableEdit)

Called from the undoHandler.

Parameters

cellArray of mxCells that have been moved.
evtMouse event that represents the mousedown.
+ +

cellsMoved

mxLayoutManager.prototype.cellsMoved = function(cells,
evt)

Called from the moveHandler.

Parameters

cellArray of mxCells that have been moved.
evtMouse event that represents the mousedown.
+ +

getCellsForEdit

Returns the cells to be layouted for the given sequence of changes.

+ +

getCellsForChange

mxLayoutManager.prototype.getCellsForChange = function(change)

Executes all layouts which have been scheduled during the changes.

+ +

layoutCells

mxLayoutManager.prototype.layoutCells = function(cells)

Executes all layouts which have been scheduled during the changes.

+ +

executeLayout

mxLayoutManager.prototype.executeLayout = function(layout,
parent)

Executes the given layout on the given parent.

+ +

destroy

mxLayoutManager.prototype.destroy = function()

Removes all handlers from the graph and deletes the reference to it.

+ +
+ + + + + + + + + + +
mxLayoutManager.prototype.layoutCells = function(cells)
Executes all layouts which have been scheduled during the changes.
function mxLayoutManager(graph)
Constructs a new automatic layout for the given graph.
mxLayoutManager.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxLayoutManager.prototype.bubbling
Specifies if the layout should bubble along the cell hierarchy.
mxLayoutManager.prototype.enabled
Specifies if event handling is enabled.
mxLayoutManager.prototype.updateHandler
Holds the function that handles the endUpdate event.
mxLayoutManager.prototype.moveHandler
Holds the function that handles the move event.
mxLayoutManager.prototype.isEnabled = function()
Returns true if events are handled.
mxLayoutManager.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxLayoutManager.prototype.isBubbling = function()
Returns true if a layout should bubble, that is, if the parent layout should be executed whenever a cell layout (layout of the children of a cell) has been executed.
mxLayoutManager.prototype.setBubbling = function(value)
Sets bubbling.
mxLayoutManager.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxLayoutManager.prototype.setGraph = function(graph)
Sets the graph that the layouts operate on.
mxLayoutManager.prototype.getLayout = function(parent)
Returns the layout to be executed for the given graph and parent.
mxLayoutManager.prototype.beforeUndo = function(undoableEdit)
Called from the undoHandler.
mxLayoutManager.prototype.cellsMoved = function(cells,
evt)
Called from the moveHandler.
mxLayoutManager.prototype.getCellsForChange = function(change)
Executes all layouts which have been scheduled during the changes.
mxLayoutManager.prototype.executeLayout = function(layout,
parent)
Executes the given layout on the given parent.
mxLayoutManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
Cells are the elements of the graph model.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxMultiplicity-js.html b/docs/js-api/files/view/mxMultiplicity-js.html new file mode 100644 index 000000000..b2049fcdd --- /dev/null +++ b/docs/js-api/files/view/mxMultiplicity-js.html @@ -0,0 +1,78 @@ + + +mxMultiplicity + + + + + + + + + +

mxMultiplicity

Defines invalid connections along with the error messages that they produce.  To add or remove rules on a graph, you must add/remove instances of this class to mxGraph.multiplicities.

Example

graph.multiplicities.push(new mxMultiplicity(
+  true, 'rectangle', null, null, 0, 2, ['circle'],
+  'Only 2 targets allowed',
+  'Only circle targets allowed'));

Defines a rule where each rectangle must be connected to no more than 2 circles and no other types of targets are allowed.

Summary
mxMultiplicityDefines invalid connections along with the error messages that they produce.
Functions
mxMultiplicityInstantiate class mxMultiplicity in order to describe allowed connections in a graph.
Variables
typeDefines the type of the source or target terminal.
attrOptional string that specifies the attributename to be passed to mxUtils.isNode to check if the rule applies to a cell.
valueOptional string that specifies the value of the attribute to be passed to mxUtils.isNode to check if the rule applies to a cell.
sourceBoolean that specifies if the rule is applied to the source or target terminal of an edge.
minDefines the minimum number of connections for which this rule applies.
maxDefines the maximum number of connections for which this rule applies.
validNeighborsHolds an array of strings that specify the type of neighbor for which this rule applies.
validNeighborsAllowedBoolean indicating if the list of validNeighbors are those that are allowed for this rule or those that are not allowed for this rule.
countErrorHolds the localized error message to be displayed if the number of connections for which the rule applies is smaller than min or greater than max.
typeErrorHolds the localized error message to be displayed if the type of the neighbor for a connection does not match the rule.
Functions
checkChecks the multiplicity for the given arguments and returns the error for the given connection or null if the multiplicity does not apply.
checkNeighborsChecks if there are any valid neighbours in validNeighbors.
checkTerminalChecks the given terminal cell and returns true if this rule applies.
checkTypeChecks the type of the given value.
+ +

Functions

+ +

mxMultiplicity

function mxMultiplicity(source,
type,
attr,
value,
min,
max,
validNeighbors,
countError,
typeError,
validNeighborsAllowed)

Instantiate class mxMultiplicity in order to describe allowed connections in a graph.  Not all constraints can be enforced while editing, some must be checked at validation time.  The countError and typeError are treated as resource keys in mxResources.

Parameters

sourceBoolean indicating if this rule applies to the source or target terminal.
typeType of the source or target terminal that this rule applies to.  See type for more information.
attrOptional attribute name to match the source or target terminal.
valueOptional attribute value to match the source or target terminal.
minMinimum number of edges for this rule.  Default is 1.
maxMaximum number of edges for this rule. n means infinite.  Default is n.
validNeighborsArray of types of the opposite terminal for which this rule applies.
countErrorError to be displayed for invalid number of edges.
typeErrorError to be displayed for invalid opposite terminals.
validNeighborsAllowedOptional boolean indicating if the array of opposite types should be valid or invalid.
+ +

Variables

+ +

type

mxMultiplicity.prototype.type

Defines the type of the source or target terminal.  The type is a string passed to mxUtils.isNode together with the source or target vertex value as the first argument.

+ +

attr

mxMultiplicity.prototype.attr

Optional string that specifies the attributename to be passed to mxUtils.isNode to check if the rule applies to a cell.

+ +

value

mxMultiplicity.prototype.value

Optional string that specifies the value of the attribute to be passed to mxUtils.isNode to check if the rule applies to a cell.

+ +

source

mxMultiplicity.prototype.source

Boolean that specifies if the rule is applied to the source or target terminal of an edge.

+ +

min

mxMultiplicity.prototype.min

Defines the minimum number of connections for which this rule applies.  Default is 0.

+ +

max

mxMultiplicity.prototype.max

Defines the maximum number of connections for which this rule applies.  A value of ‘n’ means unlimited times.  Default is ‘n’.

+ +

validNeighbors

mxMultiplicity.prototype.validNeighbors

Holds an array of strings that specify the type of neighbor for which this rule applies.  The strings are used in <mxCell.is> on the opposite terminal to check if the rule applies to the connection.

+ +

validNeighborsAllowed

mxMultiplicity.prototype.validNeighborsAllowed

Boolean indicating if the list of validNeighbors are those that are allowed for this rule or those that are not allowed for this rule.

+ +

countError

mxMultiplicity.prototype.countError

Holds the localized error message to be displayed if the number of connections for which the rule applies is smaller than min or greater than max.

+ +

typeError

mxMultiplicity.prototype.typeError

Holds the localized error message to be displayed if the type of the neighbor for a connection does not match the rule.

+ +

Functions

+ +

check

mxMultiplicity.prototype.check = function(graph,
edge,
source,
target,
sourceOut,
targetIn)

Checks the multiplicity for the given arguments and returns the error for the given connection or null if the multiplicity does not apply.

Parameters

graphReference to the enclosing mxGraph instance.
edgemxCell that represents the edge to validate.
sourcemxCell that represents the source terminal.
targetmxCell that represents the target terminal.
sourceOutNumber of outgoing edges from the source terminal.
targetInNumber of incoming edges for the target terminal.
+ +

checkNeighbors

mxMultiplicity.prototype.checkNeighbors = function(graph,
edge,
source,
target)

Checks if there are any valid neighbours in validNeighbors.  This is only called if validNeighbors is a non-empty array.

+ +

checkTerminal

mxMultiplicity.prototype.checkTerminal = function(graph,
terminal,
edge)

Checks the given terminal cell and returns true if this rule applies.  The given cell is the source or target of the given edge, depending on source.  This implementation uses checkType on the terminal’s value.

+ +

checkType

mxMultiplicity.prototype.checkType = function(graph,
value,
type,
attr,
attrValue)

Checks the type of the given value.

+ +
+ + + + + + + + + + +
function mxMultiplicity(source,
type,
attr,
value,
min,
max,
validNeighbors,
countError,
typeError,
validNeighborsAllowed)
Instantiate class mxMultiplicity in order to describe allowed connections in a graph.
mxMultiplicity.prototype.type
Defines the type of the source or target terminal.
mxMultiplicity.prototype.attr
Optional string that specifies the attributename to be passed to mxUtils.isNode to check if the rule applies to a cell.
isNode: function(value,
nodeName,
attributeName,
attributeValue)
Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.
mxMultiplicity.prototype.value
Optional string that specifies the value of the attribute to be passed to mxUtils.isNode to check if the rule applies to a cell.
mxMultiplicity.prototype.source
Boolean that specifies if the rule is applied to the source or target terminal of an edge.
mxMultiplicity.prototype.min
Defines the minimum number of connections for which this rule applies.
mxMultiplicity.prototype.max
Defines the maximum number of connections for which this rule applies.
mxMultiplicity.prototype.validNeighbors
Holds an array of strings that specify the type of neighbor for which this rule applies.
mxMultiplicity.prototype.validNeighborsAllowed
Boolean indicating if the list of validNeighbors are those that are allowed for this rule or those that are not allowed for this rule.
mxMultiplicity.prototype.countError
Holds the localized error message to be displayed if the number of connections for which the rule applies is smaller than min or greater than max.
mxMultiplicity.prototype.typeError
Holds the localized error message to be displayed if the type of the neighbor for a connection does not match the rule.
mxMultiplicity.prototype.check = function(graph,
edge,
source,
target,
sourceOut,
targetIn)
Checks the multiplicity for the given arguments and returns the error for the given connection or null if the multiplicity does not apply.
mxMultiplicity.prototype.checkNeighbors = function(graph,
edge,
source,
target)
Checks if there are any valid neighbours in validNeighbors.
mxMultiplicity.prototype.checkTerminal = function(graph,
terminal,
edge)
Checks the given terminal cell and returns true if this rule applies.
mxMultiplicity.prototype.checkType = function(graph,
value,
type,
attr,
attrValue)
Checks the type of the given value.
mxGraph.prototype.multiplicities
An array of mxMultiplicities describing the allowed connections in a graph.
Implements internationalization.
Extends mxEventSource to implement a graph component for the browser.
Cells are the elements of the graph model.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxOutline-js.html b/docs/js-api/files/view/mxOutline-js.html new file mode 100644 index 000000000..98426716f --- /dev/null +++ b/docs/js-api/files/view/mxOutline-js.html @@ -0,0 +1,100 @@ + + +mxOutline + + + + + + + + + +

mxOutline

Implements an outline (aka overview) for a graph.  Set updateOnPan to true to enable updates while the source graph is panning.

Example

var outline = new mxOutline(graph, div);

If the selection border in the outline appears behind the contents of the graph, then you can use the following code.  (This may happen when using a transparent container for the outline in IE.)

mxOutline.prototype.graphRenderHint = mxConstants.RENDERING_HINT_EXACT;

To move the graph to the top, left corner the following code can be used.

var scale = graph.view.scale;
+var bounds = graph.getGraphBounds();
+graph.view.setTranslate(-bounds.x / scale, -bounds.y / scale);

To toggle the suspended mode, the following can be used.

outline.suspended = !outln.suspended;
+if (!outline.suspended)
+{
+  outline.update(true);
+}
Summary
mxOutlineImplements an outline (aka overview) for a graph.
Functions
mxOutlineConstructs a new outline for the specified graph inside the given container.
sourceReference to the source mxGraph.
outlineReference to the outline mxGraph.
graphRenderHintRenderhint to be used for the outline graph.
Variables
enabledSpecifies if events are handled.
showViewportSpecifies a viewport rectangle should be shown.
borderBorder to be added at the bottom and right.
enabledSpecifies the size of the sizer handler.
updateOnPanSpecifies if update should be called for mxEvent.PAN in the source graph.
sizerImageOptional mxImage to be used for the sizer.
suspendedOptional boolean flag to suspend updates.
Functions
initInitializes the outline inside the given container.
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
setZoomEnabledEnables or disables the zoom handling by showing or hiding the respective handle.
refreshInvokes update and revalidate the outline.
createSizerCreates the shape used as the sizer.
updateUpdates the outline.
mouseDownHandles the event by starting a translation or zoom.
mouseMoveHandles the event by previewing the viewrect in <graph> and updating the rectangle that represents the viewrect in the outline.
mouseUpHandles the event by applying the translation or zoom to <graph>.
destroyDestroy this outline and removes all listeners from source.
+ +

Functions

+ +

mxOutline

function mxOutline(source,
container)

Constructs a new outline for the specified graph inside the given container.

Parameters

sourcemxGraph to create the outline for.
containerDOM node that will contain the outline.
+ +

source

Reference to the source mxGraph.

+ +

outline

Reference to the outline mxGraph.

+ +

graphRenderHint

Renderhint to be used for the outline graph.  Default is faster.

+ +

Variables

+ +

enabled

mxOutline.prototype.enabled

Specifies if events are handled.  Default is true.

+ +

showViewport

mxOutline.prototype.showViewport

Specifies a viewport rectangle should be shown.  Default is true.

+ +

border

mxOutline.prototype.border

Border to be added at the bottom and right.  Default is 10.

+ +

enabled

Specifies the size of the sizer handler.  Default is 8.

+ +

updateOnPan

mxOutline.prototype.updateOnPan

Specifies if update should be called for mxEvent.PAN in the source graph.  Default is false.

+ +

sizerImage

mxOutline.prototype.sizerImage

Optional mxImage to be used for the sizer.  Default is null.

+ +

suspended

mxOutline.prototype.suspended

Optional boolean flag to suspend updates.  Default is false.  This flag will also suspend repaints of the outline.  To toggle this switch, use the following code.

nav.suspended = !nav.suspended;
+
+if (!nav.suspended)
+{
+  nav.update(true);
+}
+ +

Functions

+ +

init

mxOutline.prototype.init = function(container)

Initializes the outline inside the given container.

+ +

isEnabled

mxOutline.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxOutline.prototype.setEnabled = function(value)

Enables or disables event handling.  This implementation updates enabled.

Parameters

valueBoolean that specifies the new enabled state.
+ +

setZoomEnabled

mxOutline.prototype.setZoomEnabled = function(value)

Enables or disables the zoom handling by showing or hiding the respective handle.

Parameters

valueBoolean that specifies the new enabled state.
+ +

refresh

mxOutline.prototype.refresh = function()

Invokes update and revalidate the outline.  This method is deprecated.

+ +

createSizer

mxOutline.prototype.createSizer = function()

Creates the shape used as the sizer.

+ +

update

mxOutline.prototype.update = function(revalidate)

Updates the outline.

+ +

mouseDown

mxOutline.prototype.mouseDown = function(sender,
me)

Handles the event by starting a translation or zoom.

+ +

mouseMove

mxOutline.prototype.mouseMove = function(sender,
me)

Handles the event by previewing the viewrect in <graph> and updating the rectangle that represents the viewrect in the outline.

+ +

mouseUp

mxOutline.prototype.mouseUp = function(sender,
me)

Handles the event by applying the translation or zoom to <graph>.

+ +

destroy

mxOutline.prototype.destroy = function()

Destroy this outline and removes all listeners from source.

+ +
+ + + + + + + + + + +
function mxOutline(source,
container)
Constructs a new outline for the specified graph inside the given container.
Extends mxEventSource to implement a graph component for the browser.
mxOutline.prototype.enabled
Specifies if events are handled.
mxOutline.prototype.showViewport
Specifies a viewport rectangle should be shown.
mxOutline.prototype.border
Border to be added at the bottom and right.
mxOutline.prototype.updateOnPan
Specifies if update should be called for mxEvent.PAN in the source graph.
mxOutline.prototype.update = function(revalidate)
Updates the outline.
Specifies the event name for pan.
mxOutline.prototype.sizerImage
Optional mxImage to be used for the sizer.
Encapsulates the URL, width and height of an image.
mxOutline.prototype.suspended
Optional boolean flag to suspend updates.
mxOutline.prototype.init = function(container)
Initializes the outline inside the given container.
mxOutline.prototype.isEnabled = function()
Returns true if events are handled.
mxOutline.prototype.setEnabled = function(value)
Enables or disables event handling.
mxOutline.prototype.setZoomEnabled = function(value)
Enables or disables the zoom handling by showing or hiding the respective handle.
mxOutline.prototype.refresh = function()
Invokes update and revalidate the outline.
mxOutline.prototype.createSizer = function()
Creates the shape used as the sizer.
mxOutline.prototype.mouseDown = function(sender,
me)
Handles the event by starting a translation or zoom.
mxOutline.prototype.mouseMove = function(sender,
me)
Handles the event by previewing the viewrect in graph and updating the rectangle that represents the viewrect in the outline.
mxOutline.prototype.mouseUp = function(sender,
me)
Handles the event by applying the translation or zoom to graph.
mxOutline.prototype.destroy = function()
Destroy this outline and removes all listeners from source.
Reference to the source mxGraph.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxPerimeter-js.html b/docs/js-api/files/view/mxPerimeter-js.html new file mode 100644 index 000000000..bcc07a20f --- /dev/null +++ b/docs/js-api/files/view/mxPerimeter-js.html @@ -0,0 +1,56 @@ + + +mxPerimeter + + + + + + + + + +

mxPerimeter

Provides various perimeter functions to be used in a style as the value of mxConstants.STYLE_PERIMETER.  Perimeters for rectangle, circle, rhombus and triangle are available.

Example

<add as="perimeter">mxPerimeter.RightAngleRectanglePerimeter</add>

Or programmatically

style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;

When adding new perimeter functions, it is recommended to use the mxPerimeter-namespace as follows:

mxPerimeter.CustomPerimeter = function (bounds, vertex, next, orthogonal)
+{
+  var x = 0; // Calculate x-coordinate
+  var y = 0; // Calculate y-coordainte
+
+  return new mxPoint(x, y);
+}

The new perimeter should then be registered in the mxStyleRegistry as follows

mxStyleRegistry.putValue('customPerimeter', mxPerimeter.CustomPerimeter);

The custom perimeter above can now be used in a specific vertex as follows

model.setStyle(vertex, 'perimeter=customPerimeter');

Note that the key of the mxStyleRegistry entry for the function should be used in string values, unless mxGraphView.allowEval is true, in which case you can also use mxPerimeter.CustomPerimeter for the value in the cell style above.

Or it can be used for all vertices in the graph as follows

var style = graph.getStylesheet().getDefaultVertexStyle();
+style[mxConstants.STYLE_PERIMETER] = mxPerimeter.CustomPerimeter;

Note that the object can be used directly when programmatically setting the value, but the key in the mxStyleRegistry should be used when setting the value via a key, value pair in a cell style.

The parameters are explained in RectanglePerimeter.

Summary
mxPerimeterProvides various perimeter functions to be used in a style as the value of mxConstants.STYLE_PERIMETER.
Functions
RectanglePerimeterDescribes a rectangular perimeter for the given bounds.
EllipsePerimeterDescribes an elliptic perimeter.
RhombusPerimeterDescribes a rhombus (aka diamond) perimeter.
TrianglePerimeterDescribes a triangle perimeter.
+ +

Functions

+ +

RectanglePerimeter

RectanglePerimeter: function (bounds,
vertex,
next,
orthogonal)

Describes a rectangular perimeter for the given bounds.

Parameters

boundsmxRectangle that represents the absolute bounds of the vertex.
vertexmxCellState that represents the vertex.
nextmxPoint that represents the nearest neighbour point on the given edge.
orthogonalBoolean that specifies if the orthogonal projection onto the perimeter should be returned.  If this is false then the intersection of the perimeter and the line between the next and the center point is returned.
+ +

EllipsePerimeter

EllipsePerimeter: function (bounds,
vertex,
next,
orthogonal)

Describes an elliptic perimeter.  See RectanglePerimeter for a description of the parameters.

+ +

RhombusPerimeter

RhombusPerimeter: function (bounds,
vertex,
next,
orthogonal)

Describes a rhombus (aka diamond) perimeter.  See RectanglePerimeter for a description of the parameters.

+ +

TrianglePerimeter

TrianglePerimeter: function (bounds,
vertex,
next,
orthogonal)

Describes a triangle perimeter.  See RectanglePerimeter for a description of the parameters.

+ +
+ + + + + + + + + + +
Defines the key for the perimeter style.
RectanglePerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes a rectangular perimeter for the given bounds.
EllipsePerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes an elliptic perimeter.
RhombusPerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes a rhombus (aka diamond) perimeter.
TrianglePerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes a triangle perimeter.
Singleton class that acts as a global converter from string to object values in a style.
mxGraphView.prototype.allowEval
Specifies if string values in cell styles should be evaluated using mxUtils.eval.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
Represents the current state of a cell in a given mxGraphView.
Implements a 2-dimensional vector with double precision coordinates.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxPrintPreview-js.html b/docs/js-api/files/view/mxPrintPreview-js.html new file mode 100644 index 000000000..b292b2713 --- /dev/null +++ b/docs/js-api/files/view/mxPrintPreview-js.html @@ -0,0 +1,116 @@ + + +mxPrintPreview + + + + + + + + + +

mxPrintPreview

Implements printing of a diagram across multiple pages.  The following opens a print preview for an existing graph:

var preview = new mxPrintPreview(graph);
+preview.open();

Use mxUtils.getScaleForPageCount as follows in order to print the graph across a given number of pages:

var pageCount = mxUtils.prompt('Enter page count', '1');
+
+if (pageCount != null)
+{
+  var scale = mxUtils.getScaleForPageCount(pageCount, graph);
+  var preview = new mxPrintPreview(graph, scale);
+  preview.open();
+}

Headers

Apart from setting the title argument in the mxPrintPreview constructor you can override renderPage as follows to add a header to any page:

var oldRenderPage = mxPrintPreview.prototype.renderPage;
+mxPrintPreview.prototype.renderPage = function(w, h, dx, dy, scale, pageNumber)
+{
+  var div = oldRenderPage.apply(this, arguments);
+
+  var header = document.createElement('div');
+  header.style.position = 'absolute';
+  header.style.top = '0px';
+  header.style.width = '100%';
+  header.style.textAlign = 'right';
+  mxUtils.write(header, 'Your header here - Page ' + pageNumber + ' / ' + this.pageCount);
+  div.firstChild.appendChild(header);
+
+  return div;
+};

Page Format

For landscape printing, use <mxConstants.PAGE_FORMAT_A4_LANDSCAPE> as the pageFormat in mxUtils.getScaleForPageCount and mxPrintPreview.  Keep in mind that one can not set the defaults for the print dialog of the operating system from JavaScript so the user must manually choose a page format that matches this setting.

You can try passing the following CSS directive to open to set the page format in the print dialog to landscape.  However, this CSS directive seems to be ignored in most major browsers, including IE.

@page {
+  size: landscape;
+}

Note that the print preview behaves differently in IE when used from the filesystem or via HTTP so printing should always be tested via HTTP.

If you are using a DOCTYPE in the source page you can override <getDoctype> and provide the same DOCTYPE for the print preview if required.  Here is an example for IE8 standards mode.

var preview = new mxPrintPreview(graph);
+preview.getDoctype = function()
+{
+  return '<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=8" ><![endif]-->';
+};
+preview.open();
Summary
mxPrintPreviewImplements printing of a diagram across multiple pages.
Functions
mxPrintPreviewConstructs a new print preview for the given parameters.
Variables
graphReference to the mxGraph that should be previewed.
pageFormatHolds the mxRectangle that defines the page format.
scaleHolds the scale of the print preview.
borderThe border inset around each side of every page in the preview.
y0Holds the vertical offset of the output.
autoOriginSpecifies if the origin should be automatically computed based on the top, left corner of the actual diagram contents.
printOverlaysSpecifies if overlays should be printed.
borderColorHolds the color value for the page border.
titleHolds the title of the preview window.
pageSelectorBoolean that specifies if the page selector should be displayed.
wndReference to the preview window.
pageCountHolds the actual number of pages in the preview.
Functions
getWindowReturns wnd.
getDocTypeReturns the string that should go before the HTML tag in the print preview page.
openShows the print preview window.
writeHeadWrites the HEAD section into the given document, without the opening and closing HEAD tags.
createPageSelectorCreates the page selector table.
renderPageCreates a DIV that prints a single page of the given graph using the given scale and returns the DIV that represents the page.
printOpens the print preview and shows the print dialog.
closeCloses the print preview window.
+ +

Functions

+ +

mxPrintPreview

function mxPrintPreview(graph,
scale,
pageFormat,
border,
x0,
y0,
borderColor,
title,
pageSelector)

Constructs a new print preview for the given parameters.

Parameters

graphmxGraph to be previewed.
scaleOptional scale of the output.  Default is 1 / mxGraph.pageScale.
borderBorder in pixels along each side of every page.  Note that the actual print function in the browser will add another border for printing.
pageFormatmxRectangle that specifies the page format (in pixels).  This should match the page format of the printer.  Default uses the mxGraph.pageFormat of the given graph.
x0Optional left offset of the output.  Default is 0.
y0Optional top offset of the output.  Default is 0.
borderColorOptional color of the page border.  Default is no border.  Note that a border is sometimes useful to highlight the printed page border in the print preview of the browser.
titleOptional string that is used for the window title.  Default is ‘Printer-friendly version’.
pageSelectorOptional boolean that specifies if the page selector should appear in the window with the print preview.  Default is true.
+ +

Variables

+ +

graph

mxPrintPreview.prototype.graph

Reference to the mxGraph that should be previewed.

+ +

pageFormat

mxPrintPreview.prototype.pageFormat

Holds the mxRectangle that defines the page format.

+ +

scale

mxPrintPreview.prototype.scale

Holds the scale of the print preview.

+ +

border

mxPrintPreview.prototype.border

The border inset around each side of every page in the preview.  This is set to 0 if autoOrigin is false.

+ +

y0

mxPrintPreview.prototype.y0

Holds the vertical offset of the output.

+ +

autoOrigin

mxPrintPreview.prototype.autoOrigin

Specifies if the origin should be automatically computed based on the top, left corner of the actual diagram contents.  If this is set to false then the values for <x0> and y0 will be overridden in open.  Default is true.

+ +

printOverlays

mxPrintPreview.prototype.printOverlays

Specifies if overlays should be printed.  Default is false.

+ +

borderColor

mxPrintPreview.prototype.borderColor

Holds the color value for the page border.

+ +

title

mxPrintPreview.prototype.title

Holds the title of the preview window.

+ +

pageSelector

mxPrintPreview.prototype.pageSelector

Boolean that specifies if the page selector should be displayed.  Default is true.

+ +

wnd

mxPrintPreview.prototype.wnd

Reference to the preview window.

+ +

pageCount

mxPrintPreview.prototype.pageCount

Holds the actual number of pages in the preview.

+ +

Functions

+ +

getWindow

mxPrintPreview.prototype.getWindow = function()

Returns wnd.

+ +

getDocType

Returns the string that should go before the HTML tag in the print preview page.  This implementation returns an empty string.

+ +

open

mxPrintPreview.prototype.open = function(css)

Shows the print preview window.  The window is created here if it does not exist.

Parameters

cssOptional CSS string to be used in the new page’s head section.
+ +

writeHead

mxPrintPreview.prototype.writeHead = function(doc,
css)

Writes the HEAD section into the given document, without the opening and closing HEAD tags.

+ +

createPageSelector

mxPrintPreview.prototype.createPageSelector = function(vpages,
hpages)

Creates the page selector table.

+ +

renderPage

mxPrintPreview.prototype.renderPage = function(w,
h,
dx,
dy,
scale,
pageNumber)

Creates a DIV that prints a single page of the given graph using the given scale and returns the DIV that represents the page.

Parameters

wWidth of the page in pixels.
hHeight of the page in pixels.
dxHorizontal translation for the diagram.
dyVertical translation for the diagram.
scaleScale for the diagram.
pageNumberNumber of the page to be rendered.
+ +

print

mxPrintPreview.prototype.print = function()

Opens the print preview and shows the print dialog.

+ +

close

mxPrintPreview.prototype.close = function()

Closes the print preview window.

+ +
+ + + + + + + + + + +
function mxPrintPreview(graph,
scale,
pageFormat,
border,
x0,
y0,
borderColor,
title,
pageSelector)
Constructs a new print preview for the given parameters.
mxPrintPreview.prototype.graph
Reference to the mxGraph that should be previewed.
Extends mxEventSource to implement a graph component for the browser.
mxPrintPreview.prototype.pageFormat
Holds the mxRectangle that defines the page format.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxPrintPreview.prototype.scale
Holds the scale of the print preview.
mxPrintPreview.prototype.border
The border inset around each side of every page in the preview.
mxPrintPreview.prototype.y0
Holds the vertical offset of the output.
mxPrintPreview.prototype.autoOrigin
Specifies if the origin should be automatically computed based on the top, left corner of the actual diagram contents.
mxPrintPreview.prototype.printOverlays
Specifies if overlays should be printed.
mxPrintPreview.prototype.borderColor
Holds the color value for the page border.
mxPrintPreview.prototype.title
Holds the title of the preview window.
mxPrintPreview.prototype.pageSelector
Boolean that specifies if the page selector should be displayed.
mxPrintPreview.prototype.wnd
Reference to the preview window.
mxPrintPreview.prototype.pageCount
Holds the actual number of pages in the preview.
mxPrintPreview.prototype.getWindow = function()
Returns wnd.
mxPrintPreview.prototype.open = function(css)
Shows the print preview window.
mxPrintPreview.prototype.writeHead = function(doc,
css)
Writes the HEAD section into the given document, without the opening and closing HEAD tags.
mxPrintPreview.prototype.createPageSelector = function(vpages,
hpages)
Creates the page selector table.
mxPrintPreview.prototype.renderPage = function(w,
h,
dx,
dy,
scale,
pageNumber)
Creates a DIV that prints a single page of the given graph using the given scale and returns the DIV that represents the page.
mxPrintPreview.prototype.print = function()
Opens the print preview and shows the print dialog.
mxPrintPreview.prototype.close = function()
Closes the print preview window.
getScaleForPageCount: function(pageCount,
graph,
pageFormat,
border)
Returns the scale to be used for printing the graph with the given bounds across the specifies number of pages with the given format.
mxGraph.prototype.pageScale
Specifies the scale of the background page.
mxGraph.prototype.pageFormat
Specifies the page format for the background page.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxSpaceManager-js.html b/docs/js-api/files/view/mxSpaceManager-js.html new file mode 100644 index 000000000..0c5310000 --- /dev/null +++ b/docs/js-api/files/view/mxSpaceManager-js.html @@ -0,0 +1,95 @@ + + +mxSpaceManager + + + + + + + + + +

mxSpaceManager

In charge of moving cells after a resize.

Summary
mxSpaceManagerIn charge of moving cells after a resize.
Functions
mxSpaceManagerConstructs a new automatic layout for the given graph.
Variables
graphReference to the enclosing mxGraph.
enabledSpecifies if event handling is enabled.
shiftRightwardsSpecifies if event handling is enabled.
shiftDownwardsSpecifies if event handling is enabled.
extendParentsSpecifies if event handling is enabled.
resizeHandlerHolds the function that handles the move event.
foldHandlerHolds the function that handles the fold event.
Functions
isCellIgnoredSets the graph that the layouts operate on.
isCellShiftableSets the graph that the layouts operate on.
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
isShiftRightwardsReturns true if events are handled.
setShiftRightwardsEnables or disables event handling.
isShiftDownwardsReturns true if events are handled.
setShiftDownwardsEnables or disables event handling.
isExtendParentsReturns true if events are handled.
setShiftDownwardsEnables or disables event handling.
getGraphReturns the graph that this layout operates on.
setGraphSets the graph that the layouts operate on.
cellsResizedCalled from <moveCellsIntoParent> to invoke the <move> hook in the automatic layout of each modified cell’s parent.
cellResizedCalled from <moveCellsIntoParent> to invoke the <move> hook in the automatic layout of each modified cell’s parent.
shiftCellCalled from <moveCellsIntoParent> to invoke the <move> hook in the automatic layout of each modified cell’s parent.
getCellsToShiftReturns the cells to shift after a resize of the specified mxCellState.
destroyRemoves all handlers from the graph and deletes the reference to it.
+ +

Functions

+ +

mxSpaceManager

function mxSpaceManager(graph,
shiftRightwards,
shiftDownwards,
extendParents)

Constructs a new automatic layout for the given graph.

Arguments

graphReference to the enclosing graph.
+ +

Variables

+ +

graph

mxSpaceManager.prototype.graph

Reference to the enclosing mxGraph.

+ +

enabled

mxSpaceManager.prototype.enabled

Specifies if event handling is enabled.  Default is true.

+ +

shiftRightwards

mxSpaceManager.prototype.shiftRightwards

Specifies if event handling is enabled.  Default is true.

+ +

shiftDownwards

mxSpaceManager.prototype.shiftDownwards

Specifies if event handling is enabled.  Default is true.

+ +

extendParents

mxSpaceManager.prototype.extendParents

Specifies if event handling is enabled.  Default is true.

+ +

resizeHandler

mxSpaceManager.prototype.resizeHandler

Holds the function that handles the move event.

+ +

foldHandler

mxSpaceManager.prototype.foldHandler

Holds the function that handles the fold event.

+ +

Functions

+ +

isCellIgnored

mxSpaceManager.prototype.isCellIgnored = function(cell)

Sets the graph that the layouts operate on.

+ +

isCellShiftable

mxSpaceManager.prototype.isCellShiftable = function(cell)

Sets the graph that the layouts operate on.

+ +

isEnabled

mxSpaceManager.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxSpaceManager.prototype.setEnabled = function(value)

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

isShiftRightwards

mxSpaceManager.prototype.isShiftRightwards = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setShiftRightwards

mxSpaceManager.prototype.setShiftRightwards = function(value)

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

isShiftDownwards

mxSpaceManager.prototype.isShiftDownwards = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setShiftDownwards

mxSpaceManager.prototype.setShiftDownwards = function(value)

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

isExtendParents

mxSpaceManager.prototype.isExtendParents = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setShiftDownwards

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

getGraph

mxSpaceManager.prototype.getGraph = function()

Returns the graph that this layout operates on.

+ +

setGraph

mxSpaceManager.prototype.setGraph = function(graph)

Sets the graph that the layouts operate on.

+ +

cellsResized

mxSpaceManager.prototype.cellsResized = function(cells)

Called from <moveCellsIntoParent> to invoke the <move> hook in the automatic layout of each modified cell’s parent.  The event is used to define the x- and y-coordinates passed to the move function.

Parameters

cellArray of mxCells that have been resized.
+ +

cellResized

mxSpaceManager.prototype.cellResized = function(cell)

Called from <moveCellsIntoParent> to invoke the <move> hook in the automatic layout of each modified cell’s parent.  The event is used to define the x- and y-coordinates passed to the move function.

Parameters

cellmxCell that has been resized.
+ +

shiftCell

mxSpaceManager.prototype.shiftCell = function(cell,
dx,
dy,
Ox0,
y0,
right,
bottom,
fx,
fy,
extendParent)

Called from <moveCellsIntoParent> to invoke the <move> hook in the automatic layout of each modified cell’s parent.  The event is used to define the x- and y-coordinates passed to the move function.

Parameters

cellArray of mxCells that have been moved.
evtMouse event that represents the mousedown.
+ +

getCellsToShift

mxSpaceManager.prototype.getCellsToShift = function(state)

Returns the cells to shift after a resize of the specified mxCellState.

+ +

destroy

mxSpaceManager.prototype.destroy = function()

Removes all handlers from the graph and deletes the reference to it.

+ +
+ + + + + + + + + + +
function mxSpaceManager(graph,
shiftRightwards,
shiftDownwards,
extendParents)
Constructs a new automatic layout for the given graph.
mxSpaceManager.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxSpaceManager.prototype.enabled
Specifies if event handling is enabled.
mxSpaceManager.prototype.shiftRightwards
Specifies if event handling is enabled.
mxSpaceManager.prototype.shiftDownwards
Specifies if event handling is enabled.
mxSpaceManager.prototype.extendParents
Specifies if event handling is enabled.
mxSpaceManager.prototype.resizeHandler
Holds the function that handles the move event.
mxSpaceManager.prototype.foldHandler
Holds the function that handles the fold event.
mxSpaceManager.prototype.isCellIgnored = function(cell)
Sets the graph that the layouts operate on.
mxSpaceManager.prototype.isCellShiftable = function(cell)
Sets the graph that the layouts operate on.
mxSpaceManager.prototype.isEnabled = function()
Returns true if events are handled.
mxSpaceManager.prototype.setEnabled = function(value)
Enables or disables event handling.
mxSpaceManager.prototype.isShiftRightwards = function()
Returns true if events are handled.
mxSpaceManager.prototype.setShiftRightwards = function(value)
Enables or disables event handling.
mxSpaceManager.prototype.isShiftDownwards = function()
Returns true if events are handled.
mxSpaceManager.prototype.setShiftDownwards = function(value)
Enables or disables event handling.
mxSpaceManager.prototype.isExtendParents = function()
Returns true if events are handled.
mxSpaceManager.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxSpaceManager.prototype.setGraph = function(graph)
Sets the graph that the layouts operate on.
mxSpaceManager.prototype.cellsResized = function(cells)
Called from moveCellsIntoParent to invoke the move hook in the automatic layout of each modified cell’s parent.
mxSpaceManager.prototype.cellResized = function(cell)
Called from moveCellsIntoParent to invoke the move hook in the automatic layout of each modified cell’s parent.
mxSpaceManager.prototype.shiftCell = function(cell,
dx,
dy,
Ox0,
y0,
right,
bottom,
fx,
fy,
extendParent)
Called from moveCellsIntoParent to invoke the move hook in the automatic layout of each modified cell’s parent.
mxSpaceManager.prototype.getCellsToShift = function(state)
Returns the cells to shift after a resize of the specified mxCellState.
Represents the current state of a cell in a given mxGraphView.
mxSpaceManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
Cells are the elements of the graph model.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxStyleRegistry-js.html b/docs/js-api/files/view/mxStyleRegistry-js.html new file mode 100644 index 000000000..7b1d52867 --- /dev/null +++ b/docs/js-api/files/view/mxStyleRegistry-js.html @@ -0,0 +1,51 @@ + + +mxStyleRegistry + + + + + + + + + +

mxStyleRegistry

Singleton class that acts as a global converter from string to object values in a style.  This is currently only used to perimeters and edge styles.

Summary
mxStyleRegistrySingleton class that acts as a global converter from string to object values in a style.
Variables
valuesMaps from strings to objects.
Functions
putValuePuts the given object into the registry under the given name.
getValueReturns the value associated with the given name.
getNameReturns the name for the given value.
+ +

Variables

+ +

values

Maps from strings to objects.

+ +

Functions

+ +

putValue

putValue: function(name,
obj)

Puts the given object into the registry under the given name.

+ +

getValue

getValue: function(name)

Returns the value associated with the given name.

+ +

getName

getName: function(value)

Returns the name for the given value.

+ +
+ + + + + + + + + + +
putValue: function(name,
obj)
Puts the given object into the registry under the given name.
getValue: function(name)
Returns the value associated with the given name.
getName: function(value)
Returns the name for the given value.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxStylesheet-js.html b/docs/js-api/files/view/mxStylesheet-js.html new file mode 100644 index 000000000..f9b0c7e79 --- /dev/null +++ b/docs/js-api/files/view/mxStylesheet-js.html @@ -0,0 +1,68 @@ + + +mxStylesheet + + + + + + + + + +

mxStylesheet

Defines the appearance of the cells in a graph.  See putCellStyle for an example of creating a new cell style.  It is recommended to use objects, not arrays for holding cell styles.  Existing styles can be cloned using mxUtils.clone and turned into a string for debugging using mxUtils.toString.

Default Styles

The stylesheet contains two built-in styles, which are used if no style is defined for a cell:

defaultVertexDefault style for vertices
defaultEdgeDefault style for edges

Example

var vertexStyle = stylesheet.getDefaultVertexStyle();
+vertexStyle[mxConstants.ROUNDED] = true;
+var edgeStyle = stylesheet.getDefaultEdgeStyle();
+edgeStyle[mxConstants.STYLE_EDGE] = mxEdgeStyle.EntityRelation;

Modifies the built-in default styles.

To avoid the default style for a cell, add a leading semicolon to the style definition, eg.

;shadow=1

Removing keys

For removing a key in a cell style of the form [stylename;|key=value;] the special value none can be used, eg. highlight;fillColor=none

See also the helper methods in mxUtils to modify strings of this format, namely mxUtils.setStyle, mxUtils.indexOfStylename, mxUtils.addStylename, mxUtils.removeStylename, mxUtils.removeAllStylenames and mxUtils.setStyleFlag.

Summary
mxStylesheetDefines the appearance of the cells in a graph.
Functions
mxStylesheetConstructs a new stylesheet and assigns default styles.
stylesMaps from names to cell styles.
createDefaultVertexStyleCreates and returns the default vertex style.
createDefaultEdgeStyleCreates and returns the default edge style.
putDefaultVertexStyleSets the default style for vertices using defaultVertex as the stylename.
putDefaultEdgeStyleSets the default style for edges using defaultEdge as the stylename.
getDefaultVertexStyleReturns the default style for vertices.
getDefaultEdgeStyleSets the default style for edges.
putCellStyleStores the given map of key, value pairs under the given name in styles.
getCellStyleReturns the cell style for the specified stylename or the given defaultStyle if no style can be found for the given stylename.
+ +

Functions

+ +

mxStylesheet

function mxStylesheet()

Constructs a new stylesheet and assigns default styles.

+ +

styles

Maps from names to cell styles.  Each cell style is a map of key, value pairs.

+ +

createDefaultVertexStyle

mxStylesheet.prototype.createDefaultVertexStyle = function()

Creates and returns the default vertex style.

+ +

createDefaultEdgeStyle

mxStylesheet.prototype.createDefaultEdgeStyle = function()

Creates and returns the default edge style.

+ +

putDefaultVertexStyle

mxStylesheet.prototype.putDefaultVertexStyle = function(style)

Sets the default style for vertices using defaultVertex as the stylename.

Parameters

styleKey, value pairs that define the style.
+ +

putDefaultEdgeStyle

mxStylesheet.prototype.putDefaultEdgeStyle = function(style)

Sets the default style for edges using defaultEdge as the stylename.

+ +

getDefaultVertexStyle

mxStylesheet.prototype.getDefaultVertexStyle = function()

Returns the default style for vertices.

+ +

getDefaultEdgeStyle

mxStylesheet.prototype.getDefaultEdgeStyle = function()

Sets the default style for edges.

+ +

putCellStyle

mxStylesheet.prototype.putCellStyle = function(name,
style)

Stores the given map of key, value pairs under the given name in styles.

Example

The following example adds a new style called ‘rounded’ into an existing stylesheet:

var style = new Object();
+style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
+style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
+style[mxConstants.STYLE_ROUNDED] = true;
+graph.getStylesheet().putCellStyle('rounded', style);

In the above example, the new style is an object.  The possible keys of the object are all the constants in mxConstants that start with STYLE and the values are either JavaScript objects, such as <mxPerimeter.RightAngleRectanglePerimeter> (which is in fact a function) or expressions, such as true.  Note that not all keys will be interpreted by all shapes (eg. the line shape ignores the fill color).  The final call to this method associates the style with a name in the stylesheet.  The style is used in a cell with the following code:

model.setStyle(cell, 'rounded');

Parameters

nameName for the style to be stored.
styleKey, value pairs that define the style.
+ +

getCellStyle

mxStylesheet.prototype.getCellStyle = function(name,
defaultStyle)

Returns the cell style for the specified stylename or the given defaultStyle if no style can be found for the given stylename.

Parameters

nameString of the form [(stylename|key=value);] that represents the style.
defaultStyleDefault style to be returned if no style can be found.
+ +
+ + + + + + + + + + +
function mxStylesheet()
Constructs a new stylesheet and assigns default styles.
mxStylesheet.prototype.createDefaultVertexStyle = function()
Creates and returns the default vertex style.
mxStylesheet.prototype.createDefaultEdgeStyle = function()
Creates and returns the default edge style.
mxStylesheet.prototype.putDefaultVertexStyle = function(style)
Sets the default style for vertices using defaultVertex as the stylename.
mxStylesheet.prototype.putDefaultEdgeStyle = function(style)
Sets the default style for edges using defaultEdge as the stylename.
mxStylesheet.prototype.getDefaultVertexStyle = function()
Returns the default style for vertices.
mxStylesheet.prototype.getDefaultEdgeStyle = function()
Sets the default style for edges.
mxStylesheet.prototype.putCellStyle = function(name,
style)
Stores the given map of key, value pairs under the given name in styles.
Maps from names to cell styles.
mxStylesheet.prototype.getCellStyle = function(name,
defaultStyle)
Returns the cell style for the specified stylename or the given defaultStyle if no style can be found for the given stylename.
clone: function(obj,
transients,
shallow)
Recursively clones the specified object ignoring all fieldnames in the given array of transient fields.
toString: function(obj)
Returns a textual representation of the specified object.
setStyle: function(style,
key,
value)
Adds or removes the given key, value pair to the style and returns the new style.
indexOfStylename: function(style,
stylename)
Returns the index of the given stylename in the given style.
addStylename: function(style,
stylename)
Adds the specified stylename to the given style if it does not already contain the stylename.
removeStylename: function(style,
stylename)
Removes all occurrences of the specified stylename in the given style and returns the updated style.
removeAllStylenames: function(style)
Removes all stylenames from the given style and returns the updated style.
setStyleFlag: function(style,
key,
flag,
value)
Sets or removes the given key from the specified style and returns the new style.
Defines various global constants.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxSwimlaneManager-js.html b/docs/js-api/files/view/mxSwimlaneManager-js.html new file mode 100644 index 000000000..e7ff07d3f --- /dev/null +++ b/docs/js-api/files/view/mxSwimlaneManager-js.html @@ -0,0 +1,95 @@ + + +mxSwimlaneManager + + + + + + + + + +

mxSwimlaneManager

Manager for swimlanes and nested swimlanes that sets the size of newly added swimlanes to that of their siblings, and propagates changes to the size of a swimlane to its siblings, if <siblings> is true, and its ancestors, if <bubbling> is true.

Summary
mxSwimlaneManagerManager for swimlanes and nested swimlanes that sets the size of newly added swimlanes to that of their siblings, and propagates changes to the size of a swimlane to its siblings, if <siblings> is true, and its ancestors, if <bubbling> is true.
Functions
mxSwimlaneManagerConstructs a new swimlane manager for the given graph.
Variables
graphReference to the enclosing mxGraph.
enabledSpecifies if event handling is enabled.
horizontalSpecifies the orientation of the swimlanes.
addEnabledSpecifies if newly added cells should be resized to match the size of their existing siblings.
resizeEnabledSpecifies if resizing of swimlanes should be handled.
moveHandlerHolds the function that handles the move event.
moveHandlerHolds the function that handles the move event.
Functions
isEnabledReturns true if events are handled.
setEnabledEnables or disables event handling.
isHorizontalReturns horizontal.
setHorizontalSets horizontal.
isAddEnabledReturns addEnabled.
setAddEnabledSets addEnabled.
isResizeEnabledReturns resizeEnabled.
setResizeEnabledSets resizeEnabled.
getGraphReturns the graph that this manager operates on.
setGraphSets the graph that the manager operates on.
isSwimlaneIgnoredReturns true if the given swimlane should be ignored.
isCellHorizontalReturns true if the given cell is horizontal.
cellsAddedCalled if any cells have been added.
swimlaneAddedUpdates the size of the given swimlane to match that of any existing siblings swimlanes.
cellsResizedCalled if any cells have been resizes.
resizeSwimlaneCalled from cellsResized for all swimlanes that are not ignored to update the size of the siblings and the size of the parent swimlanes, recursively, if <bubbling> is true.
destroyRemoves all handlers from the graph and deletes the reference to it.
+ +

Functions

+ +

mxSwimlaneManager

function mxSwimlaneManager(graph,
horizontal,
addEnabled,
resizeEnabled)

Constructs a new swimlane manager for the given graph.

Arguments

graphReference to the enclosing graph.
+ +

Variables

+ +

graph

mxSwimlaneManager.prototype.graph

Reference to the enclosing mxGraph.

+ +

enabled

mxSwimlaneManager.prototype.enabled

Specifies if event handling is enabled.  Default is true.

+ +

horizontal

mxSwimlaneManager.prototype.horizontal

Specifies the orientation of the swimlanes.  Default is true.

+ +

addEnabled

mxSwimlaneManager.prototype.addEnabled

Specifies if newly added cells should be resized to match the size of their existing siblings.  Default is true.

+ +

resizeEnabled

mxSwimlaneManager.prototype.resizeEnabled

Specifies if resizing of swimlanes should be handled.  Default is true.

+ +

moveHandler

Holds the function that handles the move event.

+ +

moveHandler

Holds the function that handles the move event.

+ +

Functions

+ +

isEnabled

mxSwimlaneManager.prototype.isEnabled = function()

Returns true if events are handled.  This implementation returns enabled.

+ +

setEnabled

mxSwimlaneManager.prototype.setEnabled = function(value)

Enables or disables event handling.  This implementation updates enabled.

Parameters

enabledBoolean that specifies the new enabled state.
+ +

isHorizontal

mxSwimlaneManager.prototype.isHorizontal = function()

Returns horizontal.

+ +

setHorizontal

mxSwimlaneManager.prototype.setHorizontal = function(value)

Sets horizontal.

+ +

isAddEnabled

mxSwimlaneManager.prototype.isAddEnabled = function()

Returns addEnabled.

+ +

setAddEnabled

mxSwimlaneManager.prototype.setAddEnabled = function(value)

Sets addEnabled.

+ +

isResizeEnabled

mxSwimlaneManager.prototype.isResizeEnabled = function()

Returns resizeEnabled.

+ +

setResizeEnabled

mxSwimlaneManager.prototype.setResizeEnabled = function(value)

Sets resizeEnabled.

+ +

getGraph

mxSwimlaneManager.prototype.getGraph = function()

Returns the graph that this manager operates on.

+ +

setGraph

mxSwimlaneManager.prototype.setGraph = function(graph)

Sets the graph that the manager operates on.

+ +

isSwimlaneIgnored

mxSwimlaneManager.prototype.isSwimlaneIgnored = function(swimlane)

Returns true if the given swimlane should be ignored.

+ +

isCellHorizontal

mxSwimlaneManager.prototype.isCellHorizontal = function(cell)

Returns true if the given cell is horizontal.  If the given cell is not a swimlane, then the global orientation is returned.

+ +

cellsAdded

mxSwimlaneManager.prototype.cellsAdded = function(cells)

Called if any cells have been added.

Parameters

cellArray of mxCells that have been added.
+ +

swimlaneAdded

mxSwimlaneManager.prototype.swimlaneAdded = function(swimlane)

Updates the size of the given swimlane to match that of any existing siblings swimlanes.

Parameters

swimlanemxCell that represents the new swimlane.
+ +

cellsResized

mxSwimlaneManager.prototype.cellsResized = function(cells)

Called if any cells have been resizes.  Calls <swimlaneResized> for all swimlanes where isSwimlaneIgnored returns false.

Parameters

cellsArray of mxCells whose size was changed.
+ +

resizeSwimlane

mxSwimlaneManager.prototype.resizeSwimlane = function(swimlane,
w,
h)

Called from cellsResized for all swimlanes that are not ignored to update the size of the siblings and the size of the parent swimlanes, recursively, if <bubbling> is true.

Parameters

swimlanemxCell whose size has changed.
+ +

destroy

mxSwimlaneManager.prototype.destroy = function()

Removes all handlers from the graph and deletes the reference to it.

+ +
+ + + + + + + + + + +
function mxSwimlaneManager(graph,
horizontal,
addEnabled,
resizeEnabled)
Constructs a new swimlane manager for the given graph.
mxSwimlaneManager.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxSwimlaneManager.prototype.enabled
Specifies if event handling is enabled.
mxSwimlaneManager.prototype.horizontal
Specifies the orientation of the swimlanes.
mxSwimlaneManager.prototype.addEnabled
Specifies if newly added cells should be resized to match the size of their existing siblings.
mxSwimlaneManager.prototype.resizeEnabled
Specifies if resizing of swimlanes should be handled.
mxSwimlaneManager.prototype.isEnabled = function()
Returns true if events are handled.
mxSwimlaneManager.prototype.setEnabled = function(value)
Enables or disables event handling.
mxSwimlaneManager.prototype.isHorizontal = function()
Returns horizontal.
mxSwimlaneManager.prototype.setHorizontal = function(value)
Sets horizontal.
mxSwimlaneManager.prototype.isAddEnabled = function()
Returns addEnabled.
mxSwimlaneManager.prototype.setAddEnabled = function(value)
Sets addEnabled.
mxSwimlaneManager.prototype.isResizeEnabled = function()
Returns resizeEnabled.
mxSwimlaneManager.prototype.setResizeEnabled = function(value)
Sets resizeEnabled.
mxSwimlaneManager.prototype.getGraph = function()
Returns the graph that this manager operates on.
mxSwimlaneManager.prototype.setGraph = function(graph)
Sets the graph that the manager operates on.
mxSwimlaneManager.prototype.isSwimlaneIgnored = function(swimlane)
Returns true if the given swimlane should be ignored.
mxSwimlaneManager.prototype.isCellHorizontal = function(cell)
Returns true if the given cell is horizontal.
mxSwimlaneManager.prototype.cellsAdded = function(cells)
Called if any cells have been added.
mxSwimlaneManager.prototype.swimlaneAdded = function(swimlane)
Updates the size of the given swimlane to match that of any existing siblings swimlanes.
mxSwimlaneManager.prototype.cellsResized = function(cells)
Called if any cells have been resizes.
mxSwimlaneManager.prototype.resizeSwimlane = function(swimlane,
w,
h)
Called from cellsResized for all swimlanes that are not ignored to update the size of the siblings and the size of the parent swimlanes, recursively, if bubbling is true.
mxSwimlaneManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
Cells are the elements of the graph model.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/files/view/mxTemporaryCellStates-js.html b/docs/js-api/files/view/mxTemporaryCellStates-js.html new file mode 100644 index 000000000..aef0cd142 --- /dev/null +++ b/docs/js-api/files/view/mxTemporaryCellStates-js.html @@ -0,0 +1,57 @@ + + +mxTemporaryCellStates + + + + + + + + + +

mxTemporaryCellStates

Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.

Summary
mxTemporaryCellStatesExtends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
Functions
mxRectangleConstructs a new rectangle for the optional parameters.
Variables
viewHolds the width of the rectangle.
oldStatesHolds the height of the rectangle.
oldBoundsHolds the height of the rectangle.
oldScaleHolds the height of the rectangle.
Functions
destroyReturns the top, left corner as a new mxPoint.
+ +

Functions

+ +

mxRectangle

Constructs a new rectangle for the optional parameters.  If no parameters are given then the respective default values are used.

+ +

Variables

+ +

view

mxTemporaryCellStates.prototype.view

Holds the width of the rectangle.  Default is 0.

+ +

oldStates

mxTemporaryCellStates.prototype.oldStates

Holds the height of the rectangle.  Default is 0.

+ +

oldBounds

mxTemporaryCellStates.prototype.oldBounds

Holds the height of the rectangle.  Default is 0.

+ +

oldScale

mxTemporaryCellStates.prototype.oldScale

Holds the height of the rectangle.  Default is 0.

+ +

Functions

+ +

destroy

mxTemporaryCellStates.prototype.destroy = function()

Returns the top, left corner as a new mxPoint.

+ +
+ + + + + + + + + + +
Implements a 2-dimensional vector with double precision coordinates.
mxTemporaryCellStates.prototype.view
Holds the width of the rectangle.
mxTemporaryCellStates.prototype.oldStates
Holds the height of the rectangle.
mxTemporaryCellStates.prototype.oldBounds
Holds the height of the rectangle.
mxTemporaryCellStates.prototype.oldScale
Holds the height of the rectangle.
mxTemporaryCellStates.prototype.destroy = function()
Returns the top, left corner as a new mxPoint.
+ + + + + + + + \ No newline at end of file diff --git a/docs/js-api/images/images/callgraph.png b/docs/js-api/images/images/callgraph.png new file mode 100644 index 000000000..43c9895c7 Binary files /dev/null and b/docs/js-api/images/images/callgraph.png differ diff --git a/docs/js-api/index.html b/docs/js-api/index.html new file mode 100644 index 000000000..c10acce66 --- /dev/null +++ b/docs/js-api/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/js-api/index/Classes.html b/docs/js-api/index/Classes.html new file mode 100644 index 000000000..17bbdace5 --- /dev/null +++ b/docs/js-api/index/Classes.html @@ -0,0 +1,34 @@ + + +Class Index + + + + + + + + + +
Class Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
M
 MedianCellSorter
 mxActor
 mxAnimation
 mxArrow
 mxAutoSaveManager
 mxCell
 mxCellAttributeChange
 mxCellCodec
 mxCellEditor
 mxCellHighlight
 mxCellMarker
 mxCellOverlay
 mxCellPath
 mxCellRenderer
 mxCellState
 mxCellStatePreview
 mxCellTracker
 mxChildChange
 mxChildChangeCodec
 mxCircleLayout
 mxClient
 mxClipboard
 mxCloud
 mxCodec
 mxCodecRegistry
 mxCollapseChange
 mxCompactTreeLayout
 mxCompositeLayout
 mxConnectionConstraint
 mxConnectionHandler
 mxConnector
 mxConstants
 mxConstraintHandler
 mxCoordinateAssignment
 mxCurrentRootChange
 mxCylinder
 mxDefaultKeyHandler
 mxDefaultKeyHandlerCodec
 mxDefaultPopupMenu
 mxDefaultPopupMenuCodec
 mxDefaultToolbar
 mxDefaultToolbarCodec
 mxDictionary
 mxDivResizer
 mxDoubleEllipse
 mxDragSource
 mxEdgeHandler
 mxEdgeLabelLayout
 mxEdgeStyle
 mxEditor
 mxEditorCodec
 mxEffects
 mxElbowEdgeHandler
 mxEllipse
 mxEvent
 mxEventObject
 mxEventSource
 mxFastOrganicLayout
 mxForm
 mxGenericChangeCodec
 mxGeometry
 mxGeometryChange
 mxGraph
 mxGraphAbstractHierarchyCell
 mxGraphCodec
 mxGraphHandler
 mxGraphHierarchyEdge
 mxGraphHierarchyModel
 mxGraphHierarchyNode
 mxGraphLayout
 mxGraphModel
 mxGraphSelectionModel
 mxGraphView
 mxGraphViewCodec
 mxGuide
 mxHexagon
 mxHierarchicalLayout
 mxHierarchicalLayoutStage
 mxImage
 mxImageBundle
 mxImageExport
 mxImageShape
 mxKeyHandler
 mxLabel
 mxLayoutManager
 mxLine
 mxLog
 mxMarker
 mxMedianHybridCrossingReduction
 mxMinimumCycleRemover
 mxModelCodec
 mxMorphing
 mxMouseEvent
 mxMultiplicity
 mxObjectCodec
 mxObjectIdentity
 mxOutline
 mxPanningHandler
 mxPanningManager
 mxParallelEdgeLayout
 mxPartitionLayout
 mxPath
 mxPerimeter
 mxPoint
 mxPolyline
 mxPopupMenu
 mxPrintPreview
 mxRectangle
 mxRectangleShape
 mxResources
 mxRhombus
 mxRootChange
 mxRootChangeCodec
 mxRubberband
 mxSelectionCellsHandler
 mxSelectionChange
 mxSession
 mxShape
 mxSpaceManager
 mxStackLayout
 mxStencil
 mxStencilRegistry
 mxStencilShape
 mxStyleChange
 mxStyleRegistry
 mxStylesheet
 mxStylesheetCodec
 mxSvgCanvas2D
 mxSwimlane
 mxSwimlaneManager
 mxTemporaryCellStates
 mxTerminalChange
 mxTerminalChangeCodec
 mxText
 mxToolbar
 mxTooltipHandler
 mxTriangle
 mxUndoableEdit
 mxUndoManager
 mxUrlConverter
 mxUtils
 mxValueChange
 mxVertexHandler
 mxVisibleChange
 mxWindow
 mxXmlCanvas2D
 mxXmlRequest
+ +
A utility class used to track cells whilst sorting occurs on the median values.
Extends mxShape to implement an actor shape.
Implements a basic animation in JavaScript.
Extends mxShape to implement an arrow shape.
Manager for automatically saving diagrams.
Cells are the elements of the graph model.
Action to change the attribute of a cell’s user object.
Codec for mxCells.
In-place editor for the graph.
A helper class to highlight cells.
A helper class to process mouse locations and highlight cells.
Extends mxEventSource to implement a graph overlay, represented by an icon and a tooltip.
Implements a mechanism for temporary cell Ids.
Renders cells into a document object model.
Represents the current state of a cell in a given mxGraphView.
Implements a live preview for moving cells.
Event handler that highlights cells.
Action to add or remove a child in a model.
Codec for mxChildChanges.
Extends mxGraphLayout to implement a circluar layout for a given radius.
Bootstrapping mechanism for the mxGraph thin client.
Singleton that implements a clipboard for graph cells.
Extends mxActor to implement a cloud shape.
XML codec for JavaScript object graphs.
Singleton class that acts as a global registry for codecs.
Action to change a cell’s collapsed state in a model.
Extends mxGraphLayout to implement a compact tree (Moen) algorithm.
Allows to compose multiple layouts into a single layout.
Defines an object that contains the constraints about how to connect one side of an edge to its terminal.
Graph event handler that creates new connections.
Extends mxShape to implement a connector shape.
Defines various global constants.
Handles constraints on connection targets.
Sets the horizontal locations of node and edge dummy nodes on each layer.
Action to change the current root in a view.
Extends mxShape to implement an cylinder shape.
Binds keycodes to actionnames in an editor.
Custom codec for configuring mxDefaultKeyHandlers.
Creates popupmenus for mouse events.
Custom codec for configuring mxDefaultPopupMenus.
Toolbar for the editor.
Custom codec for configuring mxDefaultToolbars.
A wrapper class for an associative array with object keys.
Maintains the size of a div element in Internet Explorer.
Extends mxShape to implement a double ellipse shape.
Wrapper to create a drag source from a DOM element so that the element can be dragged over a graph and dropped into the graph as a new cell.
Graph event handler that reconnects edges and modifies control points and the edge label location.
Extends mxGraphLayout to implement an edge label layout.
Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
Codec for mxEditors.
Provides animation effects.
Graph event handler that reconnects edges and modifies control points and the edge label location.
Extends mxShape to implement an ellipse shape.
Cross-browser DOM event support.
The mxEventObject is a wrapper for all properties of a single event.
Base class for objects that dispatch named events.
Extends mxGraphLayout to implement a fast organic layout algorithm.
A simple class for creating HTML forms.
Codec for mxValueChanges, mxStyleChanges, mxGeometryChanges, mxCollapseChanges and mxVisibleChanges.
Extends mxRectangle to represent the geometry of a cell.
Action to change a cell’s geometry in a model.
Extends mxEventSource to implement a graph component for the browser.
An abstraction of an internal hierarchy node or edge
Codec for mxGraphs.
Graph event handler that handles selection.
An abstraction of a hierarchical edge for the hierarchy layout
Internal model of a hierarchical graph.
An abstraction of a hierarchical edge for the hierarchy layout
Base class for all layout algorithms in mxGraph.
Extends mxEventSource to implement a graph model.
Implements the selection model for a graph.
Extends mxEventSource to implement a view for a graph.
Custom encoder for mxGraphViews.
Implements the alignment of selection cells to other cells in the graph.
Implementation of the hexagon shape.
A hierarchical layout algorithm.
The specific layout interface for hierarchical layouts.
Encapsulates the URL, width and height of an image.
Maps from keys to base64 encoded images or file locations.
Creates a new image export instance to be used with an export canvas.
Extends mxShape to implement an image shape.
Event handler that listens to keystroke events.
Extends mxShape to implement an image shape with a label.
Implements a layout manager that updates the layout for a given transaction.
Extends mxShape to implement a horizontal line shape.
A singleton class that implements a simple console.
A static class that implements all markers for VML and SVG using a registry.
Sets the horizontal locations of node and edge dummy nodes on each layer.
An implementation of the first stage of the Sugiyama layout.
Codec for mxGraphModels.
Implements animation for morphing cells.
Base class for all mouse events in mxGraph.
Defines invalid connections along with the error messages that they produce.
Generic codec for JavaScript objects that implements a mapping between JavaScript objects and XML nodes that maps each field or element to an attribute or child node, and vice versa.
Identity for JavaScript objects.
Implements an outline (aka overview) for a graph.
Event handler that pans and creates popupmenus.
Implements a handler for panning.
Extends mxGraphLayout for arranging parallel edges.
Extends mxGraphLayout for partitioning the parent cell vertically or horizontally by filling the complete area with the child cells.
An abstraction for creating VML and SVG paths.
Provides various perimeter functions to be used in a style as the value of mxConstants.STYLE_PERIMETER.
Implements a 2-dimensional vector with double precision coordinates.
Extends mxShape to implement a polyline (a line with multiple points).
Event handler that pans and creates popupmenus.
Implements printing of a diagram across multiple pages.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
Extends mxShape to implement a rectangle shape.
Implements internationalization.
Extends mxShape to implement a rhombus (aka diamond) shape.
Action to change the root in a model.
Codec for mxRootChanges.
Event handler that selects rectangular regions.
An event handler that manages cell handlers and invokes their mouse event processing functions.
Action to change the current root in a view.
Session for sharing an mxGraphModel with other parties via a backend that acts as a multicaster for all changes.
Base class for all shapes.
In charge of moving cells after a resize.
Extends mxGraphLayout to create a horizontal or vertical stack of the child vertices.
Implements a generic shape which is based on a XML node as a description.
A singleton class that provides a registry for stencils and the methods for painting those stencils onto a canvas or into a DOM.
Implements a shape based on a mxStencil.
Action to change a cell’s style in a model.
Singleton class that acts as a global converter from string to object values in a style.
Defines the appearance of the cells in a graph.
Codec for mxStylesheets.
Implements a canvas to be used with mxImageExport.
Extends mxShape to implement a swimlane shape.
Manager for swimlanes and nested swimlanes that sets the size of newly added swimlanes to that of their siblings, and propagates changes to the size of a swimlane to its siblings, if siblings is true, and its ancestors, if bubbling is true.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
Action to change a terminal in a model.
Codec for mxTerminalChanges.
Extends mxShape to implement a text shape.
Creates a toolbar inside a given DOM node.
Graph event handler that displays tooltips.
Implementation of the triangle shape.
Implements a composite undoable edit.
Implements a command history.
Converts relative to absolute URLs.
A singleton class that provides cross-browser helper methods.
Action to change a user object in a model.
Event handler for resizing cells.
Action to change a cell’s visible state in a model.
Basic window inside a document.
Implements a canvas to be used with mxImageExport.
XML HTTP request wrapper.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Classes2.html b/docs/js-api/index/Classes2.html new file mode 100644 index 000000000..5dde1d06c --- /dev/null +++ b/docs/js-api/index/Classes2.html @@ -0,0 +1,34 @@ + + +Class Index + + + + + + + + + +
Class Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
W
 WeightedCellSorter
+ +
A utility class used to track cells whilst sorting occurs on the weighted sum of their connected edges.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Cookies.html b/docs/js-api/index/Cookies.html new file mode 100644 index 000000000..9d304ace3 --- /dev/null +++ b/docs/js-api/index/Cookies.html @@ -0,0 +1,34 @@ + + +Cookie Index + + + + + + + + + +
Cookie Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
M
 mxgraph=seen
+ +
Set when the editor is started.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Events.html b/docs/js-api/index/Events.html new file mode 100644 index 000000000..ac1a8ee40 --- /dev/null +++ b/docs/js-api/index/Events.html @@ -0,0 +1,94 @@ + + +Event Index + + + + + + + + + +
Event Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
A
 ADD, mxUndoManager.mxEvent
 ADD_CELLS, mxGraph.mxEvent
 ADD_OVERLAY, mxGraph.mxEvent
 ADD_VERTEX, mxEditor.mxEvent
 AFTER_ADD_VERTEX, mxEditor.mxEvent
 ALIGN_CELLS, mxGraph.mxEvent
B
 BEFORE_ADD_VERTEX, mxEditor.mxEvent
 BEFORE_UNDO, mxGraphModel.mxEvent
 BEGIN_UPDATE, mxGraphModel.mxEvent
C
 CELL_CONNECTED, mxGraph.mxEvent
 CELLS_ADDED, mxGraph.mxEvent
 CELLS_FOLDED, mxGraph.mxEvent
 CELLS_MOVED, mxGraph.mxEvent
 CELLS_ORDERED, mxGraph.mxEvent
 CELLS_REMOVED, mxGraph.mxEvent
 CELLS_RESIZED, mxGraph.mxEvent
 CHANGE
 CLEAR, mxUndoManager.mxEvent
 CLICK
 CONNECT
 CONNECT_CELL, mxGraph.mxEvent
D
 DISCONNECT, mxSession.mxEvent
 DOUBLE_CLICK, mxGraph.mxEvent
E
 END_UPDATE, mxGraphModel.mxEvent
 ESCAPE, mxEditor.mxEvent
 EXECUTE, mxGraphModel.mxEvent
F
 FIRED, mxSession.mxEvent
 FLIP_EDGE, mxGraph.mxEvent
 FOLD_CELLS, mxGraph.mxEvent
G
 GET, mxSession.mxEvent
 GROUP_CELLS, mxGraph.mxEvent
L
 LABEL_CHANGED, mxGraph.mxEvent
 LAYOUT_CELLS, mxLayoutManager.mxEvent
M
 MARK, mxCellMarker.mxEvent
 MOVE_CELLS, mxGraph.mxEvent
N
 NOTIFY
O
 OPEN, mxEditor.mxEvent
 ORDER_CELLS, mxGraph.mxEvent
P
 PAN, mxPanningHandler.mxEvent
 PAN_END, mxPanningHandler.mxEvent
 PAN_START, mxPanningHandler.mxEvent
 POST, mxEditor.mxEvent
R
 RECEIVE, mxSession.mxEvent
 REDO, mxUndoManager.mxEvent
 REFRESH, mxGraph.mxEvent
 REMOVE_CELLS, mxGraph.mxEvent
 REMOVE_CELLS_FROM_PARENT, mxGraph.mxEvent
 REMOVE_OVERLAY, mxGraph.mxEvent
 RESIZE_CELLS, mxGraph.mxEvent
 RESUME, mxSession.mxEvent
 ROOT
S
 SAVE, mxEditor.mxEvent
 SCALE, mxGraphView.mxEvent
 SCALE_AND_TRANSLATE, mxGraphView.mxEvent
 SELECT, mxToolbar.mxEvent
 SESSION, mxEditor.mxEvent
 SHOW, mxPopupMenu.mxEvent
 SIZE, mxGraph.mxEvent
 SPLIT_EDGE, mxGraph.mxEvent
 START_EDITING, mxGraph.mxEvent
 SUSPEND, mxSession.mxEvent
T
 TOGGLE_CELLS, mxGraph.mxEvent
 TRANSLATE, mxGraphView.mxEvent
U
 UNDO
 UNGROUP_CELLS, mxGraph.mxEvent
 UP, mxGraphView.mxEvent.DOWN and mxEvent
 UPDATE_CELL_SIZE, mxGraph.mxEvent
+ +
Fires after an undoable edit was added to the history.
Fires between begin- and endUpdate in addCells.
Fires after an overlay is added in addCellOverlay.
Fires between begin- and endUpdate in addVertex.
Fires after a vertex was inserted and selected in addVertex.
Fires between begin- and endUpdate in alignCells.
+ + + +
Fires before a vertex is added in addVertex.
Fires before the change is dispatched after the update level has reached 0 in endUpdate.
Fires after the updateLevel was incremented in beginUpdate.
+ + + +
Fires between begin- and endUpdate in cellConnected.
Fires between begin- and endUpdate in cellsAdded.
Fires between begin- and endUpdate in cellsFolded.
Fires between begin- and endUpdate in cellsMoved.
Fires between begin- and endUpdate in cellsOrdered.
Fires between begin- and endUpdate in cellsRemoved.
Fires between begin- and endUpdate in cellsResized.
Fires when an undoable edit is dispatched.
Fires after the selection changes by executing an mxSelectionChange.
Fires after clear was invoked.
Fires when the user clicks on the overlay.
Fires in click after a click event.
Fires between begin- and endUpdate in connect.
Fires after the session has been started, that is, after the response to the initial request was received and the session goes into polling mode.
Fires between begin- and endUpdate in connectCell.
+ + + +
Fires after the session was stopped in stop.
Fires in dblClick after a double click.
+ + + +
Fires after the updateLevel was decreased in endUpdate but before any notification or change dispatching.
Fires when the escape key is pressed.
Fires between begin- and endUpdate and after an atomic change was executed in the model.
+ + + +
Fires after an array of edits has been executed on the model.
Fires between begin- and endUpdate in flipEdge.
Fires between begin- and endUpdate in foldCells.
+ + + +
Fires after a response was received in get.
Fires between begin- and endUpdate in groupCells.
+ + + +
Fires between begin- and endUpdate in cellLabelChanged.
Fires between begin- and endUpdate after all cells have been layouted in layoutCells.
+ + + +
Fires after a cell has been marked or unmarked.
Fires between begin- and endUpdate in moveCells.
+ + + +
Same as mxEvent.CHANGE, this event can be used for classes that need to implement a sync mechanism between this model and, say, a remote model.
Fires after a notification was sent in notify.
+ + + +
Fires after a file was opened in open.
Fires between begin- and endUpdate in orderCells.
+ + + +
Fires while handle is processing events.
Fires when the panning handler changes its active state to false.
Fires when the panning handler changes its active state to true.
Fires if a successful response was received in postDiagram.
+ + + +
Fires after an XML node was received in receive.
Fires afer a significant edit was redone in redo.
Fires after refresh was executed.
Fires between begin- and endUpdate in removeCells.
Fires between begin- and endUpdate in removeCellsFromParent.
Fires after an overlay is removed in removeCellOverlay and removeCellOverlays.
Fires between begin- and endUpdate in resizeCells.
Fires after the session was resumed in resume.
Fires when the current root has changed, or when the title of the current root has changed.
Fires if the root in the model has changed.
+ + + +
Fires after the current file was saved in save.
Fires after the scale was changed in setScale.
Fires after the scale and translate have been changed in scaleAndTranslate.
Fires when an item was selected in the toolbar.
Fires when anything in the session has changed.
Fires after the menu has been shown in popup.
Fires after sizeDidChange was executed.
Fires between begin- and endUpdate in splitEdge.
Fires before the in-place editor starts in startEditingAtCell.
Fires after suspend was called an the session was not already in suspended state.
+ + + +
Fires between begin- and endUpdate in toggleCells.
Fires after the translate was changed in setTranslate.
+ + + +
Fires after the change was dispatched in endUpdate.
Fires after the selection was changed in changeSelection.
Fires after the root was changed in setCurrentRoot.
Fires afer a significant edit was undone in undo.
Fires between begin- and endUpdate in ungroupCells.
Fire if the current root is changed by executing an mxCurrentRootChange.
Fires between begin- and endUpdate in updateCellSize.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Files.html b/docs/js-api/index/Files.html new file mode 100644 index 000000000..9bb583a87 --- /dev/null +++ b/docs/js-api/index/Files.html @@ -0,0 +1,38 @@ + + +File Index + + + + + + + + + +
File Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
A
 API Specification
M
 mxEdgeSegmentHandler.js
+ +
This JavaScript library is divided into 8 packages.
+ + + + + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions.html b/docs/js-api/index/Functions.html new file mode 100644 index 000000000..a70feb734 --- /dev/null +++ b/docs/js-api/index/Functions.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
A
 activate, mxWindow
 add
 addAction
 addActionCombo, mxDefaultToolbar
 addActionOption, mxDefaultToolbar
 addActions, mxEditor
 addAlias, mxCodecRegistry
 addAllEdges, mxGraph
 addBreak, mxToolbar
 addButton, mxLog
 addButtons, mxForm
 addCell
 addCellOverlay, mxGraph
 addCells
 addCheckbox, mxForm
 addCombo
 addEdge, mxGraph
 addEdges, mxCellStatePreview
 addField, mxForm
 addImageBundle, mxGraph
 addItem
 addItems, mxDefaultPopupMenu
 addLine, mxToolbar
 addListener
 addMode
 addMouseListener, mxGraph
 addObjectValue, mxObjectCodec
 addOption
 addPath, mxPath
 addPoint, mxEdgeHandler
 addPrototype, mxDefaultToolbar
 addSelectionCell, mxGraph
 addSelectionCells, mxGraph
 addSeparator
 addStencil, mxStencilRegistry
 addStylename, mxUtils
 addSwitchMode, mxToolbar
 addTemplate, mxEditor
 addText, mxForm
 addTextarea, mxForm
 addVertex, mxEditor
 addWaypoint, mxConnectionHandler
 adjustParents, mxCompactTreeLayout
 afterDecode
 afterEncode
 alert, mxUtils
 alignCells, mxGraph
 animateCell, mxMorphing
 animateChanges
 apply
 arcToCurves, mxUtils
 attachParent, mxCompactTreeLayout
 avoid, mxEdgeLabelLayout
+ +
mxWindow.prototype.activate = function()
Puts the window on top of all other windows.
mxGraphModel.prototype.add = function(parent,
child,
index)
Adds the specified child to the parent at the given index using mxChildChange and adds the change to the current transaction.
mxRectangle.prototype.add = function(rect)
Adds the given rectangle to this rectangle.
add: function(basename,
lan)
Adds the default and current language properties file for the specified basename.
mxUndoableEdit.prototype.add = function(change)
Adds the specified change to this edit.
mxDefaultPopupMenu.prototype.addAction = function(menu,
editor,
lab,
icon,
funct,
action,
cell,
parent,
iconCls)
Helper method to bind an action to a new menu item.
mxEditor.prototype.addAction = function (actionname,
funct)
Binds the specified actionname to the specified function.
mxDefaultToolbar.prototype.addActionCombo = function(title)
Helper method to invoke mxToolbar.addActionCombo on toolbar using the given title and return the resulting DOM node.
mxDefaultToolbar.prototype.addActionOption = function(combo,
title,
action)
Binds the given action to a option with the specified label in the given combo.
mxEditor.prototype.addActions = function ()
Adds the built-in actions to the editor instance.
addAlias: function(classname,
codecname)
Adds an alias for mapping a classname to a codecname.
mxGraph.prototype.addAllEdges = function(cells)
Returns an array with the given cells and all edges that are connected to a cell or one of its descendants.
mxToolbar.prototype.addBreak = function()
Adds a break to the container.
addButton: function(lab,
funct)
Adds a button to the console using the given label and function.
mxForm.prototype.addButtons = function(okFunct,
cancelFunct)
Helper method to add an OK and Cancel button using the respective functions.
mxGraph.prototype.addCell = function(cell,
parent,
index,
source,
target)
Adds the cell to the parent and connects it to the given source and target terminals.
mxGraphSelectionModel.prototype.addCell = function(cell)
Adds the given mxCell to the selection and fires a select event.
mxGraph.prototype.addCellOverlay = function(cell,
overlay)
Adds an mxCellOverlay for the specified cell.
mxGraph.prototype.addCells = function(cells,
parent,
index,
source,
target)
Adds the cells to the parent at the given index, connecting each cell to the optional source and target terminal.
mxGraphSelectionModel.prototype.addCells = function(cells)
Adds the given array of mxCells to the selection and fires a select event.
mxForm.prototype.addCheckbox = function(name,
value)
Adds a checkbox for the given name and value and returns the textfield.
mxDefaultToolbar.prototype.addCombo = function()
Helper method to invoke mxToolbar.addCombo on toolbar and return the resulting DOM node.
mxForm.prototype.addCombo = function(name,
isMultiSelect,
size)
Adds a combo for the given name and returns the combo.
mxToolbar.prototype.addCombo = function(style)
Adds and returns a new SELECT element using the given style.
mxGraph.prototype.addEdge = function(edge,
parent,
source,
target,
index)
Adds the edge to the parent and connects it to the given source and target terminals.
mxCellStatePreview.prototype.addEdges = function(state)
mxForm.prototype.addField = function(name,
input)
Adds a new row with the name and the input field in two columns and returns the given input.
mxGraph.prototype.addImageBundle = function(bundle)
Adds the specified mxImageBundle.
mxDefaultToolbar.prototype.addItem = function(title,
icon,
action,
pressed)
Adds a new item that executes the given action in editor.
mxPopupMenu.prototype.addItem = function(title,
image,
funct,
parent,
iconCls,
enabled)
Adds the given item to the given parent item.
mxToolbar.prototype.addItem = function(title,
icon,
funct,
pressedIcon,
style,
factoryMethod)
Adds the given function as an image with the specified title and icon and returns the new image node.
mxDefaultPopupMenu.prototype.addItems = function(editor,
menu,
cell,
evt,
conditions,
item,
parent)
Recursively adds the given items and all of its children into the given menu.
mxToolbar.prototype.addLine = function()
Adds a horizontal line to the container.
addListener: function()
Binds the function to the specified event on the given element.
mxEventSource.prototype.addListener = function(name,
funct)
Binds the specified function to the given event name.
mxDefaultToolbar.prototype.addMode = function(title,
icon,
mode,
pressed,
funct)
Creates an item for selecting the given mode in the editor’s graph.
mxToolbar.prototype.addMode = function(title,
icon,
funct,
pressedIcon,
style,
toggle)
Adds a new item to the toolbar.
mxGraph.prototype.addMouseListener = function(listener)
Adds a listener to the graph event dispatch loop.
mxObjectCodec.prototype.addObjectValue = function(obj,
fieldname,
value,
template)
Sets the decoded child node as a value of the given object.
mxDefaultToolbar.prototype.addOption = function(combo,
title,
value)
Helper method to invoke mxToolbar.addOption on toolbar and return the resulting DOM node that represents the option.
mxForm.prototype.addOption = function(combo,
label,
value,
isSelected)
Adds an option for the given label to the specified combo.
mxToolbar.prototype.addOption = function(combo,
title,
value)
Adds and returns a new OPTION element inside the given SELECT element.
mxPath.prototype.addPath = function(path)
Adds the given path.
mxEdgeHandler.prototype.addPoint = function(state,
evt)
Adds a control point for the given state and event.
mxDefaultToolbar.prototype.addPrototype = function(title,
icon,
ptype,
pressed,
insert,
toggle)
Creates an item for inserting a clone of the specified prototype cell into the editor’s graph.
mxGraph.prototype.addSelectionCell = function(cell)
Adds the given cell to the selection.
mxGraph.prototype.addSelectionCells = function(cells)
Adds the given cells to the selection.
mxDefaultToolbar.prototype.addSeparator = function(icon)
Adds a vertical separator using the optional icon.
mxPopupMenu.prototype.addSeparator = function(parent,
force)
Adds a horizontal separator in the given parent item or the top-level menu if no parent is specified.
mxToolbar.prototype.addSeparator = function(icon)
Adds the specifies image as a separator.
addStencil: function(name,
stencil)
Adds the given mxStencil.
addStylename: function(style,
stylename)
Adds the specified stylename to the given style if it does not already contain the stylename.
mxToolbar.prototype.addSwitchMode = function(title,
icon,
funct,
pressedIcon,
style)
Adds a new selectable item to the toolbar.
mxEditor.prototype.addTemplate = function (name,
template)
Adds the specified template under the given name in templates.
mxForm.prototype.addText = function(name,
value)
Adds a textfield for the given name and value and returns the textfield.
mxForm.prototype.addTextarea = function(name,
value,
rows)
Adds a textarea for the given name and value and returns the textarea.
mxEditor.prototype.addVertex = function (parent,
vertex,
x,
y)
Adds the given vertex as a child of parent at the specified x and y coordinate and fires an addVertex event.
mxConnectionHandler.prototype.addWaypointForEvent = function(me)
Adds the waypoint for the given event to waypoints.
mxCompactTreeLayout.prototype.adjustParents = function()
codec.afterDecode = function(dec,
node,
obj)
Restores object state in the child change.
codec.afterDecode = function(dec,
node,
obj)
Restores the state by assigning the previous value.
mxObjectCodec.prototype.afterDecode = function(dec,
node,
obj)
Hook for subclassers to post-process the object after decoding.
codec.afterDecode = function(dec,
node,
obj)
Restores the state by assigning the previous value.
codec.afterDecode = function(dec,
node,
obj)
Restores the state by assigning the previous value.
codec.afterEncode = function(enc,
obj,
node)
Encodes an mxCell and wraps the XML up inside the XML of the user object (inversion).
codec.afterEncode = function(enc,
obj,
node)
Encodes the child recusively and adds the result to the given node.
mxObjectCodec.prototype.afterEncode = function(enc,
obj,
node)
Hook for subclassers to post-process the node for the given object after encoding and return the post-processed node.
alert: function(message)
Displayss the given alert in a new dialog.
mxGraph.prototype.alignCells = function(align,
cells,
param)
Aligns the given cells vertically or horizontally according to the given alignment using the optional parameter as the coordinate.
mxMorphing.prototype.animateCell = function(cell,
move,
recurse)
Animates the given cell state using mxCellStatePreview.moveState.
animateChanges: function(graph,
changes,
done)
Asynchronous animated move operation.
animateChanges: function(graph,
changes)
See mxEffects.animateChanges.
mxCompactTreeLayout.prototype.apply = function(node,
bounds)
mxImageShape.prototype.apply = function(state)
Overrides mxShape.apply to replace the fill and stroke colors with the respective values from mxConstants.STYLE_IMAGE_BACKGROUND and mxConstants.STYLE_IMAGE_BORDER.
mxShape.prototype.apply = function(state)
Applies the style of the given mxCellState to the shape.
mxStencilShape.prototype.apply = function(state)
Extends mxShape apply to keep a reference to the mxCellState.
arcToCurves: function(x0,
y0,
r1,
r2,
angle,
largeArcFlag,
sweepFlag,
x,
y)
Converts the given arc to a series of curves.
mxCompactTreeLayout.prototype.attachParent = function(node,
height)
mxEdgeLabelLayout.prototype.avoid = function(edge,
vertex)
Places the labels of the given edges.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions10.html b/docs/js-api/index/Functions10.html new file mode 100644 index 000000000..85c096e70 --- /dev/null +++ b/docs/js-api/index/Functions10.html @@ -0,0 +1,42 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
J
 join, mxCompactTreeLayout
K
 keyDown, mxKeyHandler
L
 labelChanged, mxGraph
 layeringStage, mxHierarchicalLayout
 layout
 layoutCells, mxLayoutManager
 layoutLeaf, mxCompactTreeLayout
 leave, mxLog
 lineTo
 link
 linkAction, mxUtils
 linkInvoke, mxUtils
 load, mxUtils
 loadInto, mxUtils
 localEdgeProcessing
 lookup, mxCodec
 Loop, mxEdgeStyle
 ltrim, mxUtils
+ +
mxCompactTreeLayout.prototype.join = function(node)
+ + + +
mxKeyHandler.prototype.keyDown = function(evt)
Handles the event by invoking the function bound to the respective keystroke if mxGraph.isEnabled, isEnabled and isGraphEvent all return true for the given event and mxGraph.isEditing returns false.
+ + + +
mxGraph.prototype.labelChanged = function(cell,
value,
evt)
Sets the label of the specified cell to the given value using cellLabelChanged and fires mxEvent.LABEL_CHANGED while the transaction is in progress.
mxHierarchicalLayout.prototype.layeringStage = function()
Implements first stage of a Sugiyama layout.
mxCompactTreeLayout.prototype.layout = function(node)
Starts the actual compact tree layout algorithm at the given node.
mxParallelEdgeLayout.prototype.layout = function(parallels)
Lays out the parallel edges in the given array.
mxLayoutManager.prototype.layoutCells = function(cells)
Executes all layouts which have been scheduled during the changes.
mxCompactTreeLayout.prototype.layoutLeaf = function(node)
leave: function(string,
t0)
Writes the specified string to the console if TRACE is true and computes the difference between the current time and t0 in milliseconds.
mxPath.prototype.lineTo = function(x,
y)
Draws a straight line from the current poin to (x, y).
lineTo: function(x,
y)
Adds a line to the current path.
lineTo: function(x,
y)
Adds a line to the current path.
link: function(rel,
href,
doc)
Adds a link node to the head of the document.
link: function(parent,
text,
funct,
pad)
Adds a hyperlink to the specified parent and invokes the given function when the link is clicked.
linkAction: function(parent,
text,
editor,
action,
pad)
Adds a hyperlink to the specified parent that invokes action on the specified editor.
linkInvoke: function(parent,
text,
editor,
functName,
arg,
pad)
Adds a hyperlink to the specified parent that invokes the specified function on the editor passing along the specified argument.
load: function(url)
Loads the specified URL synchronously and returns the mxXmlRequest.
loadInto: function(url,
doc,
onload)
Loads the specified URL asynchronously into the specified document, invoking onload after the document has been loaded.
mxCompactTreeLayout.prototype.localEdgeProcessing = function(node)
Moves the specified node and all of its children by the given amount.
mxCoordinateAssignment.prototype.localEdgeProcessing = function(model)
Separates the x position of edges as they connect to vertices
mxCodec.prototype.lookup = function(id)
Hook for subclassers to implement a custom lookup mechanism for cell IDs.
Loop: function (state,
source,
target,
points,
result)
Implements a self-reference, aka.
ltrim: function(str,
chars)
Strips all whitespaces from the beginning of the string.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions11.html b/docs/js-api/index/Functions11.html new file mode 100644 index 000000000..4d791aa2a --- /dev/null +++ b/docs/js-api/index/Functions11.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
M
 makeDraggable, mxUtils
 map, mxDictionary
 mark
 markCell, mxCellMarker
 MedianCellSorter, MedianCellSorter
 medianPos, mxCoordinateAssignment
 medianRank, mxMedianHybridCrossingReduction
 medianValue, mxMedianHybridCrossingReduction
 medianXValue, mxCoordinateAssignment
 merge, mxCompactTreeLayout
 mergeChildren, mxGraphModel
 minNode, mxCoordinateAssignment
 minPath, mxCoordinateAssignment
 mod, mxUtils
 mouseDown
 mouseMove
 mouseUp
 move, mxGuide
 moveCell
 moveCells
 moveLabel, mxEdgeHandler
 moveNode, mxCompactTreeLayout
 moveState, mxCellStatePreview
 moveTo
 mxActor, mxActor
 mxAnimation, mxAnimation
 mxArrow, mxArrow
 mxAutoSaveManager, mxAutoSaveManager
 mxCell, mxCell
 mxCellAttributeChange, mxCellAttributeChange
 mxCellEditor, mxCellEditor
 mxCellHighlight, mxCellHighlight
 mxCellMarker, mxCellMarker
 mxCellOverlay, mxCellOverlay
 mxCellRenderer, mxCellRenderer
 mxCellState, mxCellState
 mxCellStatePreview, mxCellStatePreview
 mxCellTracker, mxCellTracker
 mxChildChange, mxChildChange
 mxCircleLayout, mxCircleLayout
 mxCloud, mxCloud
 mxCodec, mxCodec
 mxCollapseChange, mxCollapseChange
 mxCompactTreeLayout
 mxCompositeLayout, mxCompositeLayout
 mxConnectionConstraint, mxConnectionConstraint
 mxConnectionHandler, mxConnectionHandler
 mxConnector, mxConnector
 mxConstraintHandler, mxConstraintHandler
 mxCoordinateAssignment, mxCoordinateAssignment
 mxCurrentRootChange
 mxCylinder, mxCylinder
 mxDefaultKeyHandler, mxDefaultKeyHandler
 mxDefaultPopupMenu, mxDefaultPopupMenu
 mxDefaultToolbar, mxDefaultToolbar
 mxDivResizer, mxDivResizer
 mxDoubleEllipse, mxDoubleEllipse
 mxDragSource, mxDragSource
 mxEdgeHandler
 mxEdgeLabelLayout, mxEdgeLabelLayout
 mxEditor, mxEditor
 mxEllipse, mxEllipse
 mxEventObject, mxEventObject
 mxEventSource
 mxForm, mxForm
 mxGenericChangeCodec, mxGenericChangeCodec
 mxGeometry, mxGeometry
 mxGeometryChange, mxGeometryChange
 mxGraph, mxGraph
 mxGraphAbstractHierarchyCell, mxGraphAbstractHierarchyCell
 mxGraphHandler, mxGraphHandler
 mxGraphHierarchyEdge, mxGraphHierarchyEdge
 mxGraphHierarchyModel, mxGraphHierarchyModel
 mxGraphHierarchyNode, mxGraphHierarchyNode
 mxGraphLayout, mxGraphLayout
 mxGraphModel, mxGraphModel
 mxGraphSelectionModel, mxGraphSelectionModel
 mxGraphView, mxGraphView
 mxGuide, mxGuide
 mxHexagon, mxHexagon
 mxHierarchicalLayout, mxHierarchicalLayout
 mxHierarchicalLayoutStage, mxHierarchicalLayoutStage
 mxImage, mxImage
 mxImageExport, mxImageExport
 mxImageShape, mxImageShape
 mxKeyHandler, mxKeyHandler
 mxLabel, mxLabel
 mxLayoutManager, mxLayoutManager
 mxLine, mxLine
 mxMedianHybridCrossingReduction, mxMedianHybridCrossingReduction
 mxMinimumCycleRemover, mxMinimumCycleRemover
 mxMorphing, mxMorphing
 mxMouseEvent, mxMouseEvent
 mxMultiplicity, mxMultiplicity
 mxObjectCodec, mxObjectCodec
 mxOutline, mxOutline
 mxPanningHandler, mxPanningHandler
 mxPartitionLayout, mxPartitionLayout
 mxPath, mxPath
 mxPoint, mxPoint
 mxPolyline, mxPolyline
 mxPopupMenu, mxPopupMenu
 mxPrintPreview, mxPrintPreview
 mxRectangle
 mxRectangleShape, mxRectangleShape
 mxRhombus, mxRhombus
 mxRootChange, mxRootChange
 mxRubberband, mxRubberband
 mxSession, mxSession
 mxShape, mxShape
 mxSpaceManager, mxSpaceManager
 mxStackLayout, mxStackLayout
 mxStencilShape
 mxStyleChange, mxStyleChange
 mxStylesheet, mxStylesheet
 mxSvgCanvas2D, mxSvgCanvas2D
 mxSwimlane, mxSwimlane
 mxSwimlaneManager, mxSwimlaneManager
 mxTerminalChange, mxTerminalChange
 mxText, mxText
 mxToolbar, mxToolbar
 mxTooltipHandler, mxTooltipHandler
 mxTriangle, mxTriangle
 mxUndoableEdit, mxUndoableEdit
 mxUndoManager, mxUndoManager
 mxValueChange, mxValueChange
 mxVertexHandler, mxVertexHandler
 mxVisibleChange, mxVisibleChange
 mxXmlCanvas2D, mxXmlCanvas2D
 mxXmlRequest, mxXmlRequest
+ +
makeDraggable: function(element,
graphF,
funct,
dragElement,
dx,
dy,
autoscroll,
scalePreview,
highlightDropTargets,
getDropTarget)
Configures the given DOM element to act as a drag source for the specified graph.
Stores the (key, value) pairs in this dictionary.
Marks the markedState and fires a mark event.
mxCellMarker.prototype.mark = function()
Marks the markedState and fires a mark event.
mxCellMarker.prototype.markCell = function(cell,
color)
Marks the given cell using the given color, or validColor if no color is specified.
function MedianCellSorter()
Constructs a new median cell sorter.
mxCoordinateAssignment.prototype.medianPos = function(i,
model)
Performs one median positioning sweep in one direction
mxMedianHybridCrossingReduction.prototype.medianRank = function(rankValue,
downwardSweep)
Attempts to minimise the median placement of connected cells on this rank and one of the adjacent ranks
mxMedianHybridCrossingReduction.prototype.medianValue = function(
   connectedCells,
   rankValue
)
Calculates the median rank order positioning for the specified cell using the connected cells on the specified rank.
mxCoordinateAssignment.prototype.medianXValue = function(connectedCells,
rankValue)
Calculates the median position of the connected cell on the specified rank
mxCompactTreeLayout.prototype.merge = function(p1,
p2)
mxGraphModel.prototype.mergeChildren = function(from,
to,
cloneAllEdges)
Merges the children of the given cell into the given target cell inside this model.
mxCoordinateAssignment.prototype.minNode = function(model)
Performs one median positioning sweep in both directions
mxCoordinateAssignment.prototype.minPath = function(graph,
model)
Straightens out chains of virtual nodes where possibleacade to those stored after this layout processing step has completed.
mod: function(n,
m)
Returns the remainder of division of n by m.
mxCellTracker.prototype.mouseDown = function(sender,
me)
Ignores the event.
mxConnectionHandler.prototype.mouseDown = function(sender,
me)
Handles the event by initiating a new connection.
mxDragSource.prototype.mouseDown = function(evt)
Returns the drop target for the given graph and coordinates.
mxEdgeHandler.prototype.mouseDown = function(sender,
me)
Handles the event by checking if a special element of the handler was clicked, in which case the index parameter is non-null.
mxGraphHandler.prototype.mouseDown = function(sender,
me)
Handles the event by selecing the given cell and creating a handle for it.
mxOutline.prototype.mouseDown = function(sender,
me)
Handles the event by starting a translation or zoom.
mxPanningHandler.prototype.mouseDown = function(sender,
me)
Handles the event by initiating the panning.
mxRubberband.prototype.mouseDown = function(sender,
me)
Handles the event by initiating a rubberband selection.
mxSelectionCellsHandler.prototype.mouseDown = function(sender,
me)
Redirects the given event to the handlers.
mxTooltipHandler.prototype.mouseDown = function(sender,
me)
Handles the event by initiating a rubberband selection.
mxVertexHandler.prototype.mouseDown = function(sender,
me)
Handles the event if a handle has been clicked.
mxCellTracker.prototype.mouseMove = function(sender,
me)
Handles the event by highlighting the cell under the mousepointer if it is over the hotspot region of the cell.
mxConnectionHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the preview edge or by highlighting a possible source or target terminal.
mxDragSource.prototype.mouseMove = function(evt)
Gets the graph for the given event using getGraphForEvent, updates the currentGraph, calling dragEnter and dragExit on the new and old graph, respectively, and invokes dragOver if currentGraph is not null.
mxEdgeHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the preview.
mxGraphHandler.prototype.mouseMove = function(sender,
me)
Handles the event by highlighting possible drop targets and updating the preview.
mxOutline.prototype.mouseMove = function(sender,
me)
Handles the event by previewing the viewrect in graph and updating the rectangle that represents the viewrect in the outline.
mxPanningHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the panning on the graph.
mxRubberband.prototype.mouseMove = function(sender,
me)
Handles the event by updating therubberband selection.
mxSelectionCellsHandler.prototype.mouseMove = function(sender,
me)
Redirects the given event to the handlers.
mxTooltipHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the rubberband selection.
mxVertexHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the preview.
mxCellTracker.prototype.mouseUp = function(sender,
me)
Handles the event by reseting the highlight.
mxConnectionHandler.prototype.mouseUp = function(sender,
me)
Handles the event by inserting the new connection.
mxDragSource.prototype.mouseUp = function(evt)
Processes the mouse up event and invokes drop, dragExit and stopDrag as required.
mxEdgeHandler.prototype.mouseUp = function(sender,
me)
Handles the event to applying the previewed changes on the edge by using moveLabel, connect or changePoints.
mxGraphHandler.prototype.mouseUp = function(sender,
me)
Handles the event by applying the changes to the selection cells.
mxOutline.prototype.mouseUp = function(sender,
me)
Handles the event by applying the translation or zoom to graph.
mxPanningHandler.prototype.mouseUp = function(sender,
me)
Handles the event by setting the translation on the view or showing the popupmenu.
mxRubberband.prototype.mouseUp = function(sender,
me)
Handles the event by selecting the region of the rubberband using mxGraph.selectRegion.
mxSelectionCellsHandler.prototype.mouseUp = function(sender,
me)
Redirects the given event to the handlers.
mxTooltipHandler.prototype.mouseUp = function(sender,
me)
Handles the event by resetting the tooltip timer or hiding the existing tooltip.
mxVertexHandler.prototype.mouseUp = function(sender,
me)
Handles the event by applying the changes to the geometry.
mxGuide.prototype.move = function(bounds,
delta,
gridEnabled)
Moves the bounds by the given mxPoint and returnt the snapped point.
mxCompositeLayout.prototype.moveCell = function(cell,
x,
y)
Implements mxGraphLayout.moveCell by calling move on master or the first layout in layouts.
mxGraphLayout.prototype.moveCell = function(cell,
x,
y)
Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg.
mxPartitionLayout.prototype.moveCell = function(cell,
x,
y)
Implements mxGraphLayout.moveCell.
mxStackLayout.prototype.moveCell = function(cell,
x,
y)
Implements mxGraphLayout.moveCell.
mxGraph.prototype.moveCells = function(cells,
dx,
dy,
clone,
target,
evt)
Moves or clones the specified cells and moves the cells or clones by the given amount, adding them to the optional target cell.
mxGraphHandler.prototype.moveCells = function(cells,
dx,
dy,
clone,
target,
evt)
Moves the given cells by the specified amount.
mxEdgeHandler.prototype.moveLabel = function(edgeState,
x,
y)
Changes the coordinates for the label of the given edge.
mxCompactTreeLayout.prototype.moveNode = function(node,
dx,
dy)
Moves the specified node and all of its children by the given amount.
mxCellStatePreview.prototype.moveState = function(state,
dx,
dy,
add,
includeEdges)
mxPath.prototype.moveTo = function(x,
y)
Moves the cursor to (x, y).
moveTo: function(x,
y)
Moves the current path the given coordinates.
moveTo: function(x,
y)
Moves the current path the given coordinates.
function mxActor(bounds,
fill,
stroke,
strokewidth)
Constructs a new actor shape.
function mxAnimation(delay)
Constructs an animation.
function mxArrow(points,
fill,
stroke,
strokewidth,
arrowWidth,
spacing,
endSize)
Constructs a new arrow shape.
function mxAutoSaveManager(graph)
Constructs a new automatic layout for the given graph.
function mxCell(value,
geometry,
style)
Constructs a new cell to be used in a graph model.
function mxCellAttributeChange(cell,
attribute,
value)
Constructs a change of a attribute of the DOM node stored as the value of the given mxCell.
function mxCellEditor(graph)
Constructs a new in-place editor for the specified graph.
function mxCellHighlight(graph,
highlightColor,
strokeWidth)
Constructs a cell highlight.
function mxCellMarker(graph,
validColor,
invalidColor,
hotspot)
Constructs a new cell marker.
function mxCellOverlay(image,
tooltip,
align,
verticalAlign,
offset,
cursor)
Constructs a new overlay using the given image and tooltip.
function mxCellRenderer()
arrow, rectangle, ellipse, rhombus, image, line, label, cylinder, swimlane, connector, actor and cloud.
function mxCellState(view,
cell,
style)
Constructs a new object that represents the current state of the given cell in the specified view.
function mxCellStatePreview(graph)
Constructs a move preview for the given graph.
function mxCellTracker(graph,
color,
funct)
Constructs an event handler that highlights cells.
function mxChildChange(model,
parent,
child,
index)
Constructs a change of a child in the specified model.
function mxCircleLayout(graph,
radius)
Constructs a new circular layout for the specified radius.
function mxCloud(bounds,
fill,
stroke,
strokewidth)
Constructs a new cloud shape.
function mxCodec(document)
Constructs an XML encoder/decoder for the specified owner document.
function mxCollapseChange(model,
cell,
collapsed)
Constructs a change of a collapsed state in the specified model.
function mxCompactTreeLayout(graph,
horizontal,
invert)
Constructs a new compact tree layout for the specified graph and orientation.
Constructs a new fast organic layout for the specified graph.
Constructs a new fast organic layout for the specified graph.
function mxCompositeLayout(graph,
layouts,
master)
Constructs a new layout using the given layouts.
function mxConnectionConstraint(point,
perimeter)
Constructs a new connection constraint for the given point and boolean arguments.
function mxConnectionHandler(graph,
factoryMethod)
Constructs an event handler that connects vertices using the specified factory method to create the new edges.
function mxConnector(points,
stroke,
strokewidth)
Constructs a new connector shape.
function mxConstraintHandler(graph)
Constructs an new constraint handler.
function mxCoordinateAssignment(layout,
intraCellSpacing,
interRankCellSpacing,
orientation,
initialX,
parallelEdgeSpacing)
Creates a coordinate assignment.
function mxCurrentRootChange(view,
root)
Constructs a change of the current root in the given view.
Constructs a change of the current root in the given view.
function mxCylinder(bounds,
fill,
stroke,
strokewidth)
Constructs a new cylinder shape.
function mxDefaultKeyHandler(editor)
Constructs a new default key handler for the mxEditor.graph in the given mxEditor.
function mxDefaultPopupMenu(config)
Constructs a new popupmenu-factory based on given configuration.
function mxDefaultToolbar(container,
editor)
Constructs a new toolbar for the given container and editor.
function mxDivResizer(div,
container)
Constructs an object that maintains the size of a div element when the window is being resized.
function mxDoubleEllipse(bounds,
fill,
stroke,
strokewidth)
Constructs a new ellipse shape.
function mxDragSource(element,
dropHandler)
Constructs a new drag source for the given element.
function mxEdgeHandler(state)
Constructs an edge handler for the specified mxCellState.
Constructs an edge handler for the specified mxCellState.
function mxEdgeLabelLayout(graph,
radius)
Constructs a new edge label layout.
function mxEditor(config)
Constructs a new editor.
function mxEllipse(bounds,
fill,
stroke,
strokewidth)
Constructs a new ellipse shape.
function mxEventObject(name)
Constructs a new event object with the specified name.
Constructs a new dictionary which allows object to be used as keys.
function mxEventSource(eventSource)
Constructs a new event source.
function mxForm(className)
Creates a HTML table using the specified classname.
var mxGenericChangeCodec = function(obj,
variable)
Factory function that creates a mxObjectCodec for the specified change and fieldname.
function mxGeometry(x,
y,
width,
height)
Constructs a new object to describe the size and location of a vertex or the control points of an edge.
function mxGeometryChange(model,
cell,
geometry)
Constructs a change of a geometry in the specified model.
function mxGraph(container,
model,
renderHint,
stylesheet)
Constructs a new mxGraph in the specified container.
function mxGraphAbstractHierarchyCell()
Constructs a new hierarchical layout algorithm.
function mxGraphHandler(graph)
Constructs an event handler that creates handles for the selection cells.
function mxGraphHierarchyEdge(edges)
Constructs a hierarchy edge
function mxGraphHierarchyModel(layout,
vertices,
roots,
parent,
ordered,
deterministic,
tightenToSource,
scanRanksFromSinks)
Creates an internal ordered graph model using the vertices passed in.
function mxGraphHierarchyNode(cell)
Constructs an internal node to represent the specified real graph cell
function mxGraphLayout(graph)
Constructs a new layout using the given layouts.
function mxGraphModel(root)
Constructs a new graph model.
function mxGraphSelectionModel(graph)
Constructs a new graph selection model for the given mxGraph.
function mxGraphView(graph)
Constructs a new view for the given mxGraph.
function mxGuide(graph,
states)
Constructs a new guide object.
function mxHexagon()
Constructs a new hexagon shape.
function mxHierarchicalLayout(graph,
orientation,
deterministic)
Constructs a new hierarchical layout algorithm.
function mxHierarchicalLayoutStage()
Constructs a new hierarchical layout stage.
function mxImage(src,
width,
height)
Constructs a new image.
function mxImageExport()
Constructs a new image export.
function mxImageShape(bounds,
image,
fill,
stroke,
strokewidth)
Constructs a new image shape.
function mxKeyHandler(graph,
target)
Constructs an event handler that executes functions bound to specific keystrokes.
function mxLabel(bounds,
fill,
stroke,
strokewidth)
Constructs a new label shape.
function mxLayoutManager(graph)
Constructs a new automatic layout for the given graph.
function mxLine(bounds,
stroke,
strokewidth)
Constructs a new line shape.
function mxMedianHybridCrossingReduction(layout)
Creates a coordinate assignment.
function mxMinimumCycleRemover(layout)
Creates a cycle remover for the given internal model.
function mxMorphing(graph,
steps,
ease,
delay)
Constructs an animation.
function mxMouseEvent(evt,
state)
Constructs a new event object for the given arguments.
function mxMultiplicity(source,
type,
attr,
value,
min,
max,
validNeighbors,
countError,
typeError,
validNeighborsAllowed)
Instantiate class mxMultiplicity in order to describe allowed connections in a graph.
function mxObjectCodec(template,
exclude,
idrefs,
mapping)
Constructs a new codec for the specified template object.
function mxOutline(source,
container)
Constructs a new outline for the specified graph inside the given container.
Constructs an event handler that creates a mxPopupMenu and pans the graph.
function mxPartitionLayout(graph,
horizontal,
spacing,
border)
Constructs a new stack layout layout for the specified graph, spacing, orientation and offset.
function mxPath(format)
Constructs a path for the given format, which is one of svg or vml.
function mxPoint(x,
y)
Constructs a new point for the optional x and y coordinates.
function mxPolyline(points,
stroke,
strokewidth)
Constructs a new polyline shape.
Constructs an event handler that creates a popupmenu.
function mxPrintPreview(graph,
scale,
pageFormat,
border,
x0,
y0,
borderColor,
title,
pageSelector)
Constructs a new print preview for the given parameters.
function mxRectangle(x,
y,
width,
height)
Constructs a new rectangle for the optional parameters.
Constructs a new rectangle for the optional parameters.
function mxRectangleShape(bounds,
fill,
stroke,
strokewidth)
Constructs a new rectangle shape.
function mxRhombus(bounds,
fill,
stroke,
strokewidth)
Constructs a new rhombus shape.
function mxRootChange(model,
root)
Constructs a change of the root in the specified model.
function mxRubberband(graph)
Constructs an event handler that selects rectangular regions in the graph using rubberband selection.
function mxSession(model,
urlInit,
urlPoll,
urlNotify)
Constructs a new session using the given mxGraphModel and URLs to communicate with the backend.
function mxShape()
Constructs a new shape.
function mxSpaceManager(graph,
shiftRightwards,
shiftDownwards,
extendParents)
Constructs a new automatic layout for the given graph.
function mxStackLayout(graph,
horizontal,
spacing,
x0,
y0,
border)
Constructs a new stack layout layout for the specified graph, spacing, orientation and offset.
Constructs a new generic shape by setting desc to the given XML node and invoking parseDescription and parseConstraints.
function mxStencilShape(stencil)
Constructs a new generic shape.
function mxStyleChange(model,
cell,
style)
Constructs a change of a style in the specified model.
function mxStylesheet()
Constructs a new stylesheet and assigns default styles.
var mxSvgCanvas2D = function(root,
styleEnabled)
Constructs an SVG canvas.
function mxSwimlane(bounds,
fill,
stroke,
strokewidth)
Constructs a new swimlane shape.
function mxSwimlaneManager(graph,
horizontal,
addEnabled,
resizeEnabled)
Constructs a new swimlane manager for the given graph.
function mxTerminalChange(model,
cell,
terminal,
source)
Constructs a change of a terminal in the specified model.
function mxText(value,
bounds,
align,
valign,
color,
family,
size,
fontStyle,
spacing,
spacingTop,
spacingRight,
spacingBottom,
spacingLeft,
horizontal,
background,
border,
wrap,
clipped,
overflow,
labelPadding)
Constructs a new text shape.
function mxToolbar(container)
Constructs a toolbar in the specified container.
function mxTooltipHandler(graph,
delay)
Constructs an event handler that displays tooltips with the specified delay (in milliseconds).
function mxTriangle()
Constructs a new triangle shape.
function mxUndoableEdit(source,
significant)
Constructs a new undoable edit for the given source.
function mxUndoManager(size)
Constructs a new undo manager with the given history size.
function mxValueChange(model,
cell,
value)
Constructs a change of a user object in the specified model.
function mxVertexHandler(state)
Constructs an event handler that allows to resize vertices and groups.
function mxVisibleChange(model,
cell,
visible)
Constructs a change of a visible state in the specified model.
var mxXmlCanvas2D = function(root)
Constructs a XML canvas.
function mxXmlRequest(url,
params,
method,
async,
username,
password)
Constructs an XML HTTP request.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions12.html b/docs/js-api/index/Functions12.html new file mode 100644 index 000000000..dd7663833 --- /dev/null +++ b/docs/js-api/index/Functions12.html @@ -0,0 +1,46 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
N
 notify
O
 offset, mxCompactTreeLayout
 onEncode, mxRootChangeCodec
 onInit
 open
 order, mxCellRenderer
 orderCells, mxGraph
 orderEdge, mxCellRenderer
 OrthConnector, mxEdgeStyle
 outline, mxOutline
P
 paintMarker, mxMarker
 panGraph
 para, mxUtils
 parentForCellChanged, mxGraphModel
 parse, mxResources
 parseConstraint, mxStencil
 parseConstraints, mxStencil
 parseDescription, mxStencil
 parseXml, mxUtils
 paste, mxClipboard
 placeLabels, mxEdgeLabelLayout
 placementStage, mxHierarchicalLayout
 poll, mxSession
 popup
 post, mxUtils
 postConfigureShape, mxCellRenderer
 postDiagram, mxEditor
 postProcessCellStyle, mxGraph
 print, mxPrintPreview
 printScreen, mxUtils
 process, mxCellMarker
 processChange, mxGraph
 processDelta, mxSession
 processEdit, mxSession
 processInclude, mxObjectCodec
 processReversedEdge, mxCoordinateAssignment
 processState, mxSession
 prompt, mxUtils
 ptSeqDistSq, mxUtils
 put, mxDictionary
 putCellStyle, mxStylesheet
 putDefaultEdgeStyle, mxStylesheet
 putDefaultVertexStyle, mxStylesheet
 putImage, mxImageBundle
 putObject, mxCodec
 putValue, mxStyleRegistry
Q
 quadTo
+ +
mxSession.prototype.notify = function(xml,
onLoad,
onError)
Sends out the specified XML to urlNotify and fires a notify event.
mxUndoableEdit.prototype.notify = function()
Hook to notify any listeners of the changes after an undo or redo has been carried out.
+ + + +
mxCompactTreeLayout.prototype.offset = function(p1,
p2,
a1,
a2,
b1,
b2)
Encodes the child recursively.
Called from within the constructor.
Called from within the constructor.
mxEditor.prototype.open = function (filename)
Opens the specified file synchronously and parses it using readGraphModel.
mxPrintPreview.prototype.open = function(css)
Shows the print preview window.
open: function(filename)
Opens the specified file from the local filesystem and returns the contents of the file as a string.
mxCellRenderer.prototype.order = function(state)
Orders the DOM node of the shape for the given state according to the position of the corresponding cell in the graph model.
mxGraph.prototype.orderCells = function(back,
cells)
Moves the given cells to the front or back.
mxCellRenderer.prototype.orderEdge = function(state)
Orders the DOM node of the shape for the given edge’s state according to the mxGraph.keepEdgesInBackground and mxGraph.keepEdgesInBackground rules.
OrthConnector: function(state,
source,
target,
points,
result)
Implements a local orthogonal router between the given cells.
Reference to the outline mxGraph.
+ + + +
paintMarker: function(node,
type,
p0,
pe,
color,
strokewidth,
size,
scale,
x0,
y0,
source,
style)
Paints the given marker.
mxGraph.prototype.panGraph = function(dx,
dy)
Shifts the graph display by the given amount.
mxPanningHandler.prototype.panGraph = function(dx,
dy)
Pans graph by the given amount.
para: function(parent,
text)
Appends a new paragraph with the given text to the specified parent and returns the paragraph.
mxGraphModel.prototype.parentForCellChanged = function(cell,
parent,
index)
Inner callback to update the parent of a cell using mxCell.insert on the parent and return the previous parent.
parse: function(text)
Parses the key, value pairs in the specified text and stores them as local resources.
mxStencil.prototype.parseConstraint = function(node)
Parses the given XML node and returns its mxConnectionConstraint.
mxStencil.prototype.parseConstraints = function()
Reads the constraints from desc into constraints using parseConstraint.
mxStencil.prototype.parseDescription = function()
Reads w0, h0, aspect, bgNodes and fgNodes from desc.
parseXml: function()
Parses the specified XML string into a new XML document and returns the new document.
paste: function(graph)
Pastes the cells into the specified graph restoring the relation to parents, if possible.
mxEdgeLabelLayout.prototype.placeLabels = function(v,
e)
Places the labels of the given edges.
mxHierarchicalLayout.prototype.placementStage = function(initialX,
parent)
Executes the placement stage using mxCoordinateAssignment.
mxSession.prototype.poll = function()
Sends an asynchronous GET request to urlPoll.
mxPopupMenu.prototype.popup = function(x,
y,
cell,
evt)
Shows the popup menu for the given event and cell.
popup: function(content,
isInternalWindow)
Shows the specified text content in a new mxWindow or a new browser window if isInternalWindow is false.
post: function(url,
params,
onload,
onerror)
Posts the specified params to the given URL asynchronously and invokes the given functions depending on the request status.
mxCellRenderer.prototype.postConfigureShape = function(state)
Replaces any reserved words used for attributes, eg.
mxEditor.prototype.postDiagram = function (url,
data)
Hook for subclassers to override the posting of a diagram represented by the given node to the given URL.
mxGraph.prototype.postProcessCellStyle = function(style)
Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.
mxPrintPreview.prototype.print = function()
Opens the print preview and shows the print dialog.
printScreen: function(graph)
Prints the specified graph using a new window and the built-in print dialog.
mxCellMarker.prototype.process = function(me)
Processes the given event and cell and marks the state returned by getState with the color returned by getMarkerColor.
mxGraph.prototype.processChange = function(change)
Processes the given change and invalidates the respective cached data in view.
mxSession.prototype.processDelta = function(node)
Processes the given delta node which contains a sequence of edits which in turn map to one transaction on the remote model each.
mxSession.prototype.processEdit = function(node)
Processes the given edit by executing its changes and firing the required events via the model.
mxObjectCodec.prototype.processInclude = function(dec,
node,
into)
Returns true if the given node is an include directive and executes the include by decoding the XML document.
mxCoordinateAssignment.prototype.processReversedEdge = function(graph,
model)
Hook to add additional processing
mxSession.prototype.processState = function(node)
Processes the given state node which contains the current state of the remote model.
prompt: function(message,
defaultValue)
Displays the given message in a prompt dialog.
Returns the square distance between a segment and a point.
mxDictionary.prototype.put = function(key,
value)
Stores the value under the given key and returns the previous value for that key.
mxStylesheet.prototype.putCellStyle = function(name,
style)
Stores the given map of key, value pairs under the given name in styles.
mxStylesheet.prototype.putDefaultEdgeStyle = function(style)
Sets the default style for edges using defaultEdge as the stylename.
mxStylesheet.prototype.putDefaultVertexStyle = function(style)
Sets the default style for vertices using defaultVertex as the stylename.
mxImageBundle.prototype.putImage = function(key,
value,
fallback)
Adds the specified entry to the map.
mxCodec.prototype.putObject = function(id,
obj)
Assoiates the given object with the given ID and returns the given object.
putValue: function(name,
obj)
Puts the given object into the registry under the given name.
+ + + +
mxPath.prototype.quadTo = function(x1,
y1,
x,
y)
Draws a quadratic Bézier curve from the current point to (x, y) using (x1, y1) as the control point.
quadTo: function(x1,
y1,
x2,
y2)
Adds a quadratic curve to the current path.
quadTo: function(x1,
y1,
x2,
y2)
Adds a quadratic curve to the current path.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions13.html b/docs/js-api/index/Functions13.html new file mode 100644 index 000000000..c6fef03ca --- /dev/null +++ b/docs/js-api/index/Functions13.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
R
 rankCoordinates, mxCoordinateAssignment
 rankMedianPosition, mxCoordinateAssignment
 readGraphModel, mxEditor
 receive, mxSession
 reconfigure
 rect
 rectangleIntersectsSegment, mxUtils
 RectanglePerimeter, mxPerimeter
 redirectMouseEvents, mxEvent
 redo
 redraw
 redrawBackgroundImage, mxGraphView
 redrawCellOverlays, mxCellRenderer
 redrawControl, mxCellRenderer
 redrawForeignObject, mxText
 redrawHtml
 redrawHtmlTable, mxText
 redrawIcons, mxConnectionHandler
 redrawInnerBends
 redrawLabel, mxCellRenderer
 redrawMarker, mxConnector
 redrawPageBreaks, mxGraph
 redrawPath
 redrawShape, mxStencilShape
 redrawSvg
 redrawSvgTextNodes, mxText
 redrawTextbox, mxText
 redrawVml
 reduceTemperature, mxFastOrganicLayout
 reference, mxCodec
 refresh
 refreshTasks, mxEditor
 register, mxCodecRegistry
 registerShape, mxCellRenderer
 relativeCcw, mxUtils
 release, mxEvent
 releaseSvgClip, mxText
 remove
 removeAllListeners, mxEvent
 removeAllStylenames, mxUtils
 removeCell, mxGraphSelectionModel
 removeCellOverlay, mxGraph
 removeCellOverlays, mxGraph
 removeCells
 removeCellsFromParent, mxGraph
 removeCursors, mxUtils
 removeEdge, mxCell
 removeFromParent, mxCell
 removeFromTerminal, mxCell
 removeImageBundle, mxGraph
 removeListener
 removeMouseListener, mxGraph
 removePoint, mxEdgeHandler
 removeSelectionCell, mxGraph
 removeSelectionCells, mxGraph
 removeState, mxGraphView
 removeStateForCell, mxGraph
 removeStylename, mxUtils
 removeWhitespace, mxUtils
 renderDom, mxStencil
 renderPage, mxPrintPreview
 repaint, mxRubberband
 repaintGraph, mxUtils
 repositionValid, mxCoordinateAssignment
 reset
 resetEdge, mxGraph
 resetEdges, mxGraph
 resetFirstTime, mxEditor
 resetHistory, mxEditor
 resetMode, mxToolbar
 resetTimer, mxTooltipHandler
 resize, mxDivResizer
 resizeCell
 resizeCells, mxGraph
 resizeHeight, mxDivResizer
 resizeSwimlane, mxSwimlaneManager
 resizeWidth, mxDivResizer
 resolve, mxCellPath
 resolveColor, mxCellRenderer
 restore
 restoreClone, mxGraphModel
 resume, mxSession
 revalidate, mxGraphView
 revalidateState, mxCellStatePreview
 reversePortConstraints, mxUtils
 RhombusPerimeter, mxPerimeter
 rootChanged, mxGraphModel
 rotate
 roundrect
 route, mxParallelEdgeLayout
 rtrim, mxUtils
 run, mxHierarchicalLayout
+ +
mxCoordinateAssignment.prototype.rankCoordinates = function(rankValue,
graph,
model)
Sets up the layout in an initial positioning.
mxCoordinateAssignment.prototype.rankMedianPosition = function(rankValue,
model,
nextRankValue)
Performs median minimisation over one rank.
mxEditor.prototype.readGraphModel = function (node)
Reads the specified XML node into the existing graph model and resets the command history and modified state.
mxSession.prototype.receive = function(node)
Processes the given node by applying the changes to the model.
mxArrow.prototype.reconfigure = function()
Extends mxActor.reconfigure to ignore fill if enableFill is false.
mxCylinder.prototype.reconfigure = function()
Overrides the method to make sure the stroke is applied to the foreground.
mxLabel.prototype.reconfigure = function()
Reconfigures this shape.
mxShape.prototype.reconfigure = function()
Reconfigures this shape.
mxSwimlane.prototype.reconfigure = function(node)
Overrides to avoid filled content area in HTML and updates the shadow in SVG.
rect: function(x,
y,
w,
h)
Sets the current path to a rectangle.
rect: function(x,
y,
w,
h)
Sets the current path to a rectangle.
rectangleIntersectsSegment: function(bounds,
p1,
p2)
Returns true if the given rectangle intersects the given segment.
RectanglePerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes a rectangular perimeter for the given bounds.
redirectMouseEvents: function(node,
graph,
state,
down,
move,
up,
dblClick)
Redirects the mouse events from the given DOM node to the graph dispatch loop using the event and given state as event arguments.
mxEditor.prototype.redo = function ()
Redo the last change in graph.
mxUndoableEdit.prototype.redo = function()
Redoes all changes in this edit.
mxUndoManager.prototype.redo = function()
Redoes the last change.
mxCellRenderer.prototype.redraw = function(state)
Updates the bounds or points and scale of the shapes for the given cell state.
mxEdgeHandler.prototype.redraw = function()
Redraws the preview, and the bends- and label control points.
mxImageShape.prototype.redraw = function()
Overrides mxShape.redraw to preserve the aspect ratio of images.
mxLabel.prototype.redraw = function()
Overrides redraw to define a unified implementation for redrawing all supported dialects.
mxShape.prototype.redraw = function()
Invokes redrawSvg, redrawVml or redrawHtml depending on the dialect of the shape.
mxStencilShape.prototype.redraw = function()
Creates and returns the SVG node(s) to represent this shape.
mxVertexHandler.prototype.redraw = function()
Redraws the handles and the preview.
mxGraphView.prototype.redrawBackgroundImage = function(backgroundImage,
bg)
Updates the bounds and redraws the background image.
mxCellRenderer.prototype.redrawCellOverlays = function(state)
Redraws the overlays for the given cell state.
mxCellRenderer.prototype.redrawControl = function(state)
Redraws the control for the given cell state.
mxText.prototype.redrawForeignObject = function()
Redraws the foreign object for this text.
mxRhombus.prototype.redrawHtml = function()
Updates the HTML node(s) to reflect the latest bounds and scale.
mxShape.prototype.redrawHtml = function()
Redraws this HTML shape by invoking updateHtmlShape on this.node.
mxSwimlane.prototype.redrawHtml = function()
Updates the HTML node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawHtml = function()
Updates the HTML node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawHtmlTable = function()
Redraws the HTML table.
mxConnectionHandler.prototype.redrawIcons = function(icons,
state)
Redraws the given array of mxImageShapes.
mxEdgeSegmentHandler.prototype.redrawInnerBends = function(p0,
pe)
Updates the position of the custom bends.
mxEdgeHandler.prototype.redrawInnerBends = function(p0,
pe)
Updates and redraws the inner bends.
mxElbowEdgeHandler.prototype.redrawInnerBends = function(p0,
pe)
Updates and redraws the inner bends.
mxCellRenderer.prototype.redrawLabel = function(state)
Redraws the label for the given cell state.
mxConnector.prototype.redrawMarker = function(node,
type,
p0,
pe,
color,
size)
Updates the given SVG or VML marker.
Invokes from sizeDidChange to redraw the page breaks.
mxActor.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxArrow.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxCloud.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxCylinder.prototype.redrawPath = function(path,
x,
y,
w,
h,
isForeground)
Draws the path for this shape.
mxHexagon.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxShape.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxTriangle.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxStencilShape.prototype.redrawShape = function()
Updates the SVG or VML shape.
mxActor.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxArrow.prototype.redrawSvg = function()
Extends mxActor.redrawSvg to update the event handling shape if one exists.
mxConnector.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxCylinder.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxDoubleEllipse.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxEllipse.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxImageShape.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxLine.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxPolyline.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxRhombus.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxShape.prototype.redrawSvg = function()
Redraws this SVG shape by invoking updateSvgShape on this.node, this.innerNode and this.shadowNode.
mxSwimlane.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawSvgTextNodes = function(x,
y,
dy)
Hook to update the position of the SVG text nodes.
mxText.prototype.redrawTextbox = function()
Redraws the textbox for this text.
mxActor.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
Redraws this VML shape by invoking updateVmlShape on this.node.
mxCylinder.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxDoubleEllipse.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
Redraws this VML shape by invoking updateVmlShape on this.node.
mxPolyline.prototype.redrawVml = function()
Overrides the method to update the bounds if they have not been assigned.
mxRhombus.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxShape.prototype.redrawVml = function()
Redraws this VML shape by invoking updateVmlShape on this.node.
mxSwimlane.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxFastOrganicLayout.prototype.reduceTemperature = function()
Reduces the temperature of the layout from an initial setting in a linear fashion to zero.
mxCodec.prototype.reference = function(obj)
Hook for subclassers to implement a custom method for retrieving IDs from objects.
mxEdgeSegmentHandler.prototype.refresh = function()
Refreshes the bends of this handler.
mxGraph.prototype.refresh = function(cell)
Clears all cell states or the states for the hierarchy starting at the given cell and validates the graph.
mxGraphView.prototype.refresh = function()
Clears the view if currentRoot is not null and revalidates.
mxOutline.prototype.refresh = function()
Invokes update and revalidate the outline.
mxSelectionCellsHandler.prototype.refresh = function()
Reloads or updates all handlers.
mxEditor.prototype.refreshTasks = function (div)
Updates the contents of the tasks window using createTasks.
register: function(codec)
Registers a new codec and associates the name of the template constructor in the codec with the codec object.
mxCellRenderer.prototype.registerShape = function(key,
shape)
Registers the given constructor under the specified key in this instance of the renderer.
relativeCcw: function(x1,
y1,
x2,
y2,
px,
py)
Returns 1 if the given point on the right side of the segment, 0 if its on the segment, and -1 if the point is on the left side of the segment.
release: function(element)
Removes the known listeners from the given DOM node and its descendants.
mxText.prototype.releaseSvgClip = function()
Releases the given SVG clip removing it from the DOM if required.
mxCell.prototype.remove = function(index)
Removes the child at the specified index from the child array and returns the child that was removed.
mxDictionary.prototype.remove = function(key)
Removes the value for the given key and returns the value that has been removed.
mxGraphModel.prototype.remove = function(cell)
Removes the specified cell from the model using mxChildChange and adds the change to the current transaction.
remove: function(obj,
array)
Removes all occurrences of the given object in the given array or object.
removeAllListeners: function(element)
Removes all listeners from the given element.
removeAllStylenames: function(style)
Removes all stylenames from the given style and returns the updated style.
mxGraphSelectionModel.prototype.removeCell = function(cell)
Removes the specified mxCell from the selection and fires a select event for the remaining cells.
mxGraph.prototype.removeCellOverlay = function(cell,
overlay)
Removes and returns the given mxCellOverlay from the given cell.
mxGraph.prototype.removeCellOverlays = function(cell)
Removes all mxCellOverlays from the given cell.
removeCells: function(graph,
cells)
Hook to remove the given cells from the given graph after a cut operation.
mxGraph.prototype.removeCells = function(cells,
includeEdges)
Removes the given cells from the graph including all connected edges if includeEdges is true.
mxGraphSelectionModel.prototype.removeCells = function(cells)
mxGraph.prototype.removeCellsFromParent = function(cells)
Removes the specified cells from their parents and adds them to the default parent.
removeCursors: function(element)
Removes the cursors from the style of the given DOM node and its descendants.
mxCell.prototype.removeEdge = function(edge,
isOutgoing)
Removes the specified edge from the edge array and returns the edge.
mxCell.prototype.removeFromParent = function()
Removes the cell from its parent.
mxCell.prototype.removeFromTerminal = function(isSource)
Removes the edge from its source or target terminal.
mxGraph.prototype.removeImageBundle = function(bundle)
Removes the specified mxImageBundle.
removeListener: function()
Removes the specified listener from the given element.
mxEventSource.prototype.removeListener = function(funct)
Removes all occurrences of the given listener from eventListeners.
mxGraph.prototype.removeMouseListener = function(listener)
Removes the specified graph listener.
mxEdgeHandler.prototype.removePoint = function(state,
index)
Removes the control point at the given index from the given state.
mxGraph.prototype.removeSelectionCell = function(cell)
Removes the given cell from the selection.
mxGraph.prototype.removeSelectionCells = function(cells)
Removes the given cells from the selection.
mxGraphView.prototype.removeState = function(cell)
Removes and returns the mxCellState for the given cell.
mxGraph.prototype.removeStateForCell = function(cell)
Removes all cached information for the given cell and its descendants.
removeStylename: function(style,
stylename)
Removes all occurrences of the specified stylename in the given style and returns the updated style.
removeWhitespace: function(node,
before)
Removes the sibling text nodes for the given node that only consists of tabs, newlines and spaces.
mxStencil.prototype.renderDom = function(shape,
bounds,
parentNode,
state)
Updates the SVG or VML shape.
mxPrintPreview.prototype.renderPage = function(w,
h,
dx,
dy,
scale,
pageNumber)
Creates a DIV that prints a single page of the given graph using the given scale and returns the DIV that represents the page.
mxRubberband.prototype.repaint = function()
Computes the bounding box and updates the style of the div.
repaintGraph: function(graph,
pt)
Normally not required, this contains the code to workaround a repaint issue and force a repaint of the graph container in AppleWebKit.
mxCoordinateAssignment.prototype.repositionValid = function(model,
cell,
rank,
position)
Determines whether or not a node may be moved to the specified x position on the specified rank
mxAutoSaveManager.prototype.reset = function()
Resets all counters.
mxCellMarker.prototype.reset = function()
Resets the state of the cell marker.
mxConnectionHandler.prototype.reset = function()
Resets the state of this handler.
mxConstraintHandler.prototype.reset = function()
Resets the state of this handler.
mxEdgeHandler.prototype.reset = function()
Resets the state of this handler.
mxGraphHandler.prototype.reset = function()
Resets the state of this handler.
mxRubberband.prototype.reset = function()
Resets the state of the rubberband selection.
mxSelectionCellsHandler.prototype.reset = function()
Resets all handlers.
mxTooltipHandler.prototype.reset = function(me,
restart)
Resets and/or restarts the timer to trigger the display of the tooltip.
mxVertexHandler.prototype.reset = function()
Resets the state of this handler.
mxGraph.prototype.resetEdge = function(edge)
Resets the control points of the given edge.
mxGraph.prototype.resetEdges = function(cells)
Resets the control points of the edges that are connected to the given cells if not both ends of the edge are in the given cells array.
mxEditor.prototype.resetFirstTime = function ()
Resets the cookie that is used to remember if the editor has already been used.
mxEditor.prototype.resetHistory = function ()
Resets the command history, modified state and counters.
mxToolbar.prototype.resetMode = function(forced)
Selects the default mode and resets the state of the previously selected mode.
mxTooltipHandler.prototype.resetTimer = function()
Resets the timer.
mxDivResizer.prototype.resize = function()
Updates the style of the DIV after the window has been resized.
mxGraph.prototype.resizeCell = function(cell,
bounds)
Sets the bounds of the given cell using resizeCells.
mxVertexHandler.prototype.resizeCell = function(cell,
dx,
dy,
index,
gridEnabled)
Uses the given vector to change the bounds of the given cell in the graph using mxGraph.resizeCell.
mxGraph.prototype.resizeCells = function(cells,
bounds)
Sets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS event while the transaction is in progress.
Boolean specifying if the height should be updated.
mxSwimlaneManager.prototype.resizeSwimlane = function(swimlane,
w,
h)
Called from cellsResized for all swimlanes that are not ignored to update the size of the siblings and the size of the parent swimlanes, recursively, if bubbling is true.
Boolean specifying if the width should be updated.
resolve: function(root,
path)
Returns the cell for the specified cell path using the given root as the root of the path.
mxCellRenderer.prototype.resolveColor = function(state,
field,
key)
Resolves special keywords ‘inherit’, ‘indicated’ and ‘swimlane’ and sets the respective color on the shape.
restore: function()
Restores the state of the graphics object.
restore: function()
Restores the state of the graphics object.
mxGraphModel.prototype.restoreClone = function(clone,
cell,
mapping)
Inner helper method for restoring the connections in a network of cloned cells.
mxSession.prototype.resume = function(type,
attr,
value)
Resumes the session if it has been suspended.
mxGraphView.prototype.revalidate = function()
Revalidates the complete view with all cell states.
mxCellStatePreview.prototype.revalidateState = function(parentState,
state,
dx,
dy,
visitor)
reversePortConstraints: function(constraint)
Reverse the port constraint bitmask.
RhombusPerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes a rhombus (aka diamond) perimeter.
mxGraphModel.prototype.rootChanged = function(root)
Inner callback to change the root of the model and update the internal datastructures, such as cells and nextId.
rotate: function(theta,
flipH,
flipV,
cx,
cy)
Rotates and/or flips the current graphics object.
rotate: function(theta,
flipH,
flipV,
cx,
cy)
Rotates and/or flips the current graphics object.
roundrect: function(x,
y,
w,
h,
dx,
dy)
Sets the current path to a rounded rectangle.
roundrect: function(x,
y,
w,
h,
dx,
dy)
Sets the current path to a rounded rectangle.
mxParallelEdgeLayout.prototype.route = function(edge,
x,
y)
Routes the given edge via the given point.
rtrim: function(str,
chars)
Strips all whitespaces from the end of the string.
mxHierarchicalLayout.prototype.run = function(parent)
The API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions14.html b/docs/js-api/index/Functions14.html new file mode 100644 index 000000000..10bebb548 --- /dev/null +++ b/docs/js-api/index/Functions14.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
S
 save
 saveAs, mxUtils
 scale
 scaleAndTranslate, mxGraphView
 scheduleUpdateAspect, mxImageShape
 scrollCellToVisible, mxGraph
 scrollPointToVisible, mxGraph
 scrollRectToVisible, mxGraph
 SegmentConnector, mxEdgeStyle
 selectAll, mxGraph
 selectCell, mxGraph
 selectCellForEvent, mxGraph
 selectCells
 selectCellsForEvent, mxGraph
 selectChildCell, mxGraph
 selectDelayed, mxGraphHandler
 selectMode, mxToolbar
 selectNextCell, mxGraph
 selectParentCell, mxGraph
 selectPreviousCell, mxGraph
 selectRegion, mxGraph
 selectVertices, mxGraph
 send, mxXmlRequest
 setAbsoluteTerminalPoint, mxCellState
 setAddEnabled, mxSwimlaneManager
 setAllowDanglingEdges, mxGraph
 setAllowEval, mxGraphView
 setAllowLoops, mxGraph
 setAlpha
 setAttribute
 setAutoAntiAlias, mxSvgCanvas2D
 setAutoSizeCells, mxGraph
 setBackgroundImage, mxGraph
 setBaseUrl, mxUrlConverter
 setBinary, mxXmlRequest
 setBorder, mxGraph
 setBubbling, mxLayoutManager
 setCell, mxGraphSelectionModel
 setCellLocations, mxCoordinateAssignment
 setCells, mxGraphSelectionModel
 setCellsBendable, mxGraph
 setCellsCloneable, mxGraph
 setCellsDeletable, mxGraph
 setCellsDisconnectable, mxGraph
 setCellsEditable, mxGraph
 setCellsMovable, mxGraph
 setCellsResizable, mxGraph
 setCellsSelectable, mxGraph
 setCellStyle, mxGraph
 setCellStyleFlags
 setCellStyles
 setCellWarning, mxGraph
 setCloneEnabled, mxGraphHandler
 setCloneInvalidEdges, mxGraph
 setClosable, mxWindow
 setCollapsed
 setCompressed, mxXmlCanvas2D
 setConnectable
 setConnectableEdges, mxGraph
 setConnectionConstraint, mxGraph
 setConstrainChildren, mxGraph
 setCreateIds, mxGraphModel
 setCreateTarget, mxConnectionHandler
 setCurrentRoot, mxGraphView
 setCursor
 setDashed
 setDashPattern
 setDefaultParent, mxGraph
 setDisconnectOnMove, mxGraph
 setDropEnabled, mxGraph
 setEdge, mxCell
 setEdgePoints, mxGraphLayout
 setEdgePosition, mxCoordinateAssignment
 setEdgeStyleEnabled, mxGraphLayout
 setEnabled
 setEnterStopsCellEditing, mxGraph
 setEscapeEnabled, mxGraph
 setEventsEnabled, mxEventSource
 setEventSource, mxEventSource
 setExtendParents, mxGraph
 setExtendParentsOnAdd, mxGraph
 setFillColor
 setFoEnabled, mxSvgCanvas2D
 setFontColor
 setFontFamily
 setFontSize
 setFontStyle
 setGeneralPurposeVariable
 setGeometry
 setGlassGradient
 setGradient
 setGraph
 setGraphBounds, mxGraphView
 setGraphContainer, mxEditor
 setGridEnabled
 setGridSize, mxGraph
 setGuidesEnabled, mxDragSource
 setHideOnHover, mxTooltipHandler
 setHighlightColor
 setHorizontal, mxSwimlaneManager
 setHotspot, mxCellMarker
 setHotspotEnabled, mxCellMarker
 setHtmlLabels, mxGraph
 setId, mxCell
 setImage, mxWindow
 setInvokesStopCellEditing, mxGraph
 setLineCap
 setLineJoin
 setLocation, mxWindow
 setLocked, mxGraph
 setMaximizable, mxWindow
 setMinimizable, mxWindow
 setMiterLimit
 setMode, mxEditor
 setModified
 setMoveEnabled, mxGraphHandler
 setMultigraph, mxGraph
 setOpacity, mxUtils
 setOrthogonalEdge, mxGraphLayout
 setPanning, mxGraph
 setPanningEnabled, mxPanningHandler
 setParent, mxCell
 setPortsEnabled, mxGraph
 setPreviewColor, mxEdgeHandler
 setRect, mxRectangle
 setRemoveCellsFromParent, mxGraphHandler
 setRendering, mxGraphView
 setRequestHeaders, mxXmlRequest
 setResizable, mxWindow
 setResizeContainer, mxGraph
 setResizeEnabled, mxSwimlaneManager
 setRoot, mxGraphModel
 setScale, mxGraphView
 setScrollable, mxWindow
 setSelectEnabled, mxGraphHandler
 setSelectionCell, mxGraph
 setSelectionCells, mxGraph
 setSelectionModel, mxGraph
 setShiftDownwards, mxSpaceManager
 setShiftRightwards, mxSpaceManager
 setSingleSelection, mxGraphSelectionModel
 setSize, mxWindow
 setSplitEnabled, mxGraph
 setStates
 setStatus, mxEditor
 setStatusContainer, mxEditor
 setStrokeColor
 setStrokeWidth
 setStyle
 setStyleFlag, mxUtils
 setStylesheet, mxGraph
 setSwimlaneNesting, mxGraph
 setSwimlaneSelectionEnabled, mxGraph
 setTerminal
 setTerminalPoint, mxGeometry
 setTerminals, mxGraphModel
 setTextEnabled
 setTitle, mxWindow
 setTitleContainer, mxEditor
 setTolerance, mxGraph
 setToolbarContainer, mxEditor
 setTooltips, mxGraph
 setTranslate
 setValue
 setVertex, mxCell
 setVertexLabelsMovable, mxGraph
 setVertexLocation
 setVisible
 setVisibleTerminalState, mxCellState
 setX, mxGraphAbstractHierarchyCell
 setY, mxGraphAbstractHierarchyCell
 setZoomEnabled, mxOutline
 shadow
 shiftCell, mxSpaceManager
 shouldRemoveCellsFromParent, mxGraphHandler
 show
 showHelp, mxEditor
 showMenu, mxPopupMenu
 showOutline, mxEditor
 showProperties, mxEditor
 showSubmenu, mxPopupMenu
 showTasks, mxEditor
 SideToSide, mxEdgeStyle
 simulate, mxXmlRequest
 sizeDidChange, mxGraph
 snap
 sortCells, mxUtils
 source, mxOutline
 splitEdge, mxGraph
 start
 startAnimation, mxAnimation
 startDrag, mxDragSource
 startEditing
 startEditingAtCell, mxGraph
 stop, mxSession
 stopAnimation, mxAnimation
 stopDrag, mxDragSource
 stopEditing
 stopRecursion, mxMorphing
 stroke
 styleForCellChanged, mxGraphModel
 styles, mxStylesheet
 submit, mxUtils
 suspend, mxSession
 swap, mxGeometry
 swapBounds, mxGraph
 swapStyles, mxEditor
 swimlaneAdded, mxSwimlaneManager
+ +
mxAutoSaveManager.prototype.save = function()
Empty hook that is called if the graph should be saved.
mxEditor.prototype.save = function (url,
linefeed)
Posts the string returned by writeGraphModel to the given URL or the URL returned by getUrlPost.
save: function()
Saves the state of the graphics object.
save: function(filename,
content)
Saves the specified content in the given file on the local file system.
save: function()
Saves the state of the graphics object.
saveAs: function(content)
Saves the specified content by displaying a dialog to save the content as a file on the local filesystem.
scale: function(value)
Scales the current graphics object.
scale: function(value)
Scales the current graphics object.
mxGraphView.prototype.scaleAndTranslate = function(scale,
dx,
dy)
Sets the scale and translation and fires a scale and translate event before calling revalidate followed by mxGraph.sizeDidChange.
mxImageShape.prototype.scheduleUpdateAspect = function()
Schedules an asynchronous updateAspect using the current image.
mxGraph.prototype.scrollCellToVisible = function(cell,
center)
Pans the graph so that it shows the given cell.
mxGraph.prototype.scrollPointToVisible = function(x,
y,
extend,
border)
Scrolls the graph to the given point, extending the graph container if specified.
mxGraph.prototype.scrollRectToVisible = function(rect)
Pans the graph so that it shows the given rectangle.
SegmentConnector: function(state,
source,
target,
hints,
result)
Implements an orthogonal edge style.
mxGraph.prototype.selectAll = function(parent)
Selects all children of the given parent cell or the children of the default parent if no parent is specified.
mxGraph.prototype.selectCell = function(isNext,
isParent,
isChild)
Selects the next, parent, first child or previous cell, if all arguments are false.
mxGraph.prototype.selectCellForEvent = function(cell,
evt)
Selects the given cell by either adding it to the selection or replacing the selection depending on whether the given mouse event is a toggle event.
mxConnectionHandler.prototype.selectCells = function(edge,
target)
Selects the given edge after adding a new connection.
mxGraph.prototype.selectCells = function(vertices,
edges,
parent)
Selects all vertices and/or edges depending on the given boolean arguments recursively, starting at the given parent or the default parent if no parent is specified.
mxGraph.prototype.selectCellsForEvent = function(cells,
evt)
Selects the given cells by either adding them to the selection or replacing the selection depending on whether the given mouse event is a toggle event.
mxGraph.prototype.selectChildCell = function()
Selects the first child cell.
mxGraphHandler.prototype.selectDelayed = function(me)
Implements the delayed selection for the given mouse event.
mxToolbar.prototype.selectMode = function(domNode,
funct)
Resets the state of the previously selected mode and displays the given DOM node as selected.
mxGraph.prototype.selectNextCell = function()
Selects the next cell.
mxGraph.prototype.selectParentCell = function()
Selects the parent cell.
mxGraph.prototype.selectPreviousCell = function()
Selects the previous cell.
mxGraph.prototype.selectRegion = function(rect,
evt)
Selects and returns the cells inside the given rectangle for the specified event.
mxGraph.prototype.selectVertices = function(parent)
Select all vertices inside the given parent or the default parent.
mxXmlRequest.prototype.send = function(onload,
onerror)
Send the request to the target URL using the specified functions to process the response asychronously.
mxCellState.prototype.setAbsoluteTerminalPoint = function (point,
isSource)
Sets the first or last point in absolutePoints depending on isSource.
mxSwimlaneManager.prototype.setAddEnabled = function(value)
Sets addEnabled.
mxGraph.prototype.setAllowDanglingEdges = function(value)
Specifies if dangling edges are allowed, that is, if edges are allowed that do not have a source and/or target terminal defined.
mxGraphView.prototype.setAllowEval = function(value)
Sets allowEval.
mxGraph.prototype.setAllowLoops = function(value)
Specifies if loops are allowed.
setAlpha: function(alpha)
Sets the current alpha.
setAlpha: function(alpha)
Sets the current alpha.
mxCell.prototype.setAttribute = function(name,
value)
Sets the specified attribute on the user object if it is an XML node.
mxCodec.prototype.setAttribute = function(node,
attribute,
value)
Sets the attribute on the specified node to value.
setAutoAntiAlias: function(value)
Sets autoAntiAlias.
mxGraph.prototype.setAutoSizeCells = function(value)
Specifies if cell sizes should be automatically updated after a label change.
mxGraph.prototype.setBackgroundImage = function(image)
Sets the new backgroundImage.
setBaseUrl: function(value)
Sets baseUrl.
mxXmlRequest.prototype.setBinary = function(value)
Sets binary.
mxGraph.prototype.setBorder = function(value)
Sets the value of border.
mxLayoutManager.prototype.setBubbling = function(value)
Sets bubbling.
mxGraphSelectionModel.prototype.setCell = function(cell)
Selects the specified mxCell using setCells.
mxCoordinateAssignment.prototype.setCellLocations = function(graph,
model)
Sets the cell locations in the facade to those stored after this layout processing step has completed.
mxGraphSelectionModel.prototype.setCells = function(cells)
Selects the given array of mxCells and fires a change event.
mxGraph.prototype.setCellsBendable = function(value)
Specifies if the graph should allow bending of edges.
mxGraph.prototype.setCellsCloneable = function(value)
Specifies if the graph should allow cloning of cells by holding down the control key while cells are being moved.
mxGraph.prototype.setCellsDeletable = function(value)
Sets cellsDeletable.
mxGraph.prototype.setCellsDisconnectable = function(value)
Sets cellsDisconnectable.
mxGraph.prototype.setCellsEditable = function(value)
Specifies if the graph should allow in-place editing for cell labels.
mxGraph.prototype.setCellsMovable = function(value)
Specifies if the graph should allow moving of cells.
mxGraph.prototype.setCellsResizable = function(value)
Specifies if the graph should allow resizing of cells.
mxGraph.prototype.setCellsSelectable = function(value)
Sets cellsSelectable.
mxGraph.prototype.setCellStyle = function(style,
cells)
Sets the style of the specified cells.
mxGraph.prototype.setCellStyleFlags = function(key,
flag,
value,
cells)
Sets or toggles the given bit for the given key in the styles of the specified cells.
setCellStyleFlags: function(model,
cells,
key,
flag,
value)
Sets or toggles the flag bit for the given key in the cell’s styles.
mxGraph.prototype.setCellStyles = function(key,
value,
cells)
Sets the key to value in the styles of the given cells.
setCellStyles: function(model,
cells,
key,
value)
Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.
mxGraph.prototype.setCellWarning = function(cell,
warning,
img,
isSelect)
Creates an overlay for the given cell using the warning and image or warningImage and returns the new mxCellOverlay.
mxGraphHandler.prototype.setCloneEnabled = function(value)
Sets cloneEnabled.
mxGraph.prototype.setCloneInvalidEdges = function(value)
Specifies if edges should be inserted when cloned but not valid wrt.
mxWindow.prototype.setClosable = function(closable)
Sets the image associated with the window.
mxCell.prototype.setCollapsed = function(collapsed)
Sets the collapsed state.
mxGraphModel.prototype.setCollapsed = function(cell,
collapsed)
Sets the collapsed state of the given mxCell using mxCollapseChange and adds the change to the current transaction.
setCompressed: function(value)
Sets compressed.
mxCell.prototype.setConnectable = function(connectable)
Sets the connectable state.
mxGraph.prototype.setConnectable = function(connectable)
Specifies if the graph should allow new connections.
mxGraph.prototype.setConnectableEdges = function(value)
Specifies if edges should be connectable.
mxGraph.prototype.setConnectionConstraint = function(edge,
terminal,
source,
constraint)
Sets the mxConnectionConstraint that describes the given connection point.
mxGraph.prototype.setConstrainChildren = function(value)
Sets constrainChildren.
mxGraphModel.prototype.setCreateIds = function(value)
Sets createIds.
mxConnectionHandler.prototype.setCreateTarget = function(value)
Sets createTarget.
mxGraphView.prototype.setCurrentRoot = function(root)
Sets and returns the current root and fires an undo event before calling mxGraph.sizeDidChange.
mxCellState.prototype.setCursor = function (cursor)
Sets the given cursor on the shape and text shape.
mxShape.prototype.setCursor = function(cursor)
Sets the cursor on the given shape.
setDashed: function(value)
Sets the dashed state to true or false.
setDashed: function(value)
Sets the dashed state to true or false.
setDashPattern: function(value)
Sets the dashed pattern to the given space separated list of numbers.
setDashPattern: function(value)
Sets the dashed pattern to the given space separated list of numbers.
mxGraph.prototype.setDefaultParent = function(cell)
Sets the defaultParent to the given cell.
mxGraph.prototype.setDisconnectOnMove = function(value)
Specifies if edges should be disconnected when moved.
mxGraph.prototype.setDropEnabled = function(value)
Specifies if the graph should allow dropping of cells onto or into other cells.
mxCell.prototype.setEdge = function(edge)
Specifies if the cell is an edge.
mxGraphLayout.prototype.setEdgePoints = function(edge,
points)
Replaces the array of mxPoints in the geometry of the given edge with the given array of mxPoints.
mxCoordinateAssignment.prototype.setEdgePosition = function(cell)
Fixes the control points
mxGraphLayout.prototype.setEdgeStyleEnabled = function(edge,
value)
Disables or enables the edge style of the given edge.
mxAutoSaveManager.prototype.setEnabled = function(value)
Enables or disables event handling.
mxCellMarker.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxConnectionHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxConstraintHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxDragSource.prototype.setEnabled = function(value)
Sets enabled.
mxGraph.prototype.setEnabled = function(value)
Specifies if the graph should allow any interactions.
mxGraphHandler.prototype.setEnabled = function(value)
Sets enabled.
mxKeyHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling by updating enabled.
mxLayoutManager.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxOutline.prototype.setEnabled = function(value)
Enables or disables event handling.
mxPopupMenu.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxRubberband.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxSelectionCellsHandler.prototype.setEnabled = function(value)
Sets enabled.
mxSpaceManager.prototype.setEnabled = function(value)
Enables or disables event handling.
mxSwimlaneManager.prototype.setEnabled = function(value)
Enables or disables event handling.
mxTooltipHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling.
setEnabled: function(value)
Sets enabled.
mxGraph.prototype.setEnterStopsCellEditing = function(value)
Sets enterStopsCellEditing.
mxGraph.prototype.setEscapeEnabled = function(value)
Sets escapeEnabled.
mxEventSource.prototype.setEventsEnabled = function(value)
Sets eventsEnabled.
mxEventSource.prototype.setEventSource = function(value)
Sets eventSource.
mxGraph.prototype.setExtendParents = function(value)
Sets extendParents.
mxGraph.prototype.setExtendParentsOnAdd = function(value)
Sets extendParentsOnAdd.
setFillColor: function(value)
Sets the fillcolor.
setFillColor: function(value)
Sets the fillcolor.
setFoEnabled: function(value)
Sets foEnabled.
setFontColor: function(value)
Sets the fontcolor.
setFontColor: function(value)
Sets the fontcolor.
setFontFamily: function(value)
Sets the fontfamily.
setFontFamily: function(value)
Sets the fontfamily.
setFontSize: function(value)
Sets the fontsize.
setFontSize: function(value)
Sets the fontsize.
setFontStyle: function(value)
Sets the fontstyle.
setFontStyle: function(value)
Sets the fontstyle.
mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable = function(
   layer,
   value
)
Set the value of temp for the specified layer
mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable = function(layer,
value)
Set the value of temp for the specified layer
mxGraphHierarchyNode.prototype.setGeneralPurposeVariable = function(layer,
value)
Set the value of temp for the specified layer
mxCell.prototype.setGeometry = function(geometry)
Sets the mxGeometry to be used as the geometry.
mxGraphModel.prototype.setGeometry = function(cell,
geometry)
Sets the mxGeometry of the given mxCell.
setGlassGradient: function(x,
y,
w,
h)
Sets the glass gradient.
setGlassGradient: function(x,
y,
w,
h)
Sets the glass gradient.
setGradient: function(color1,
color2,
x,
y,
w,
h,
direction)
Sets the gradient color.
setGradient: function(color1,
color2,
x,
y,
w,
h,
direction)
Sets the gradient color.
mxAutoSaveManager.prototype.setGraph = function(graph)
Sets the graph that the layouts operate on.
mxLayoutManager.prototype.setGraph = function(graph)
Sets the graph that the layouts operate on.
mxSpaceManager.prototype.setGraph = function(graph)
Sets the graph that the layouts operate on.
mxSwimlaneManager.prototype.setGraph = function(graph)
Sets the graph that the manager operates on.
mxGraphView.prototype.setGraphBounds = function(value)
Sets graphBounds.
mxEditor.prototype.setGraphContainer = function (container)
Sets the graph’s container using mxGraph.init.
mxDragSource.prototype.setGridEnabled = function(value)
Sets gridEnabled.
mxGraph.prototype.setGridEnabled = function(value)
Specifies if the grid should be enabled.
mxGraph.prototype.setGridSize = function(value)
Sets gridSize.
mxDragSource.prototype.setGuidesEnabled = function(value)
Sets guidesEnabled.
mxTooltipHandler.prototype.setHideOnHover = function(value)
Sets hideOnHover.
mxCellHighlight.prototype.setHighlightColor = function(color)
Sets the color of the rectangle used to highlight drop targets.
mxGraphHandler.prototype.setHighlightColor = function(color)
Sets the color of the rectangle used to highlight drop targets.
mxSwimlaneManager.prototype.setHorizontal = function(value)
Sets horizontal.
mxCellMarker.prototype.setHotspot = function(hotspot)
Sets the hotspot.
mxCellMarker.prototype.setHotspotEnabled = function(enabled)
Specifies whether the hotspot should be used in intersects.
mxGraph.prototype.setHtmlLabels = function(value)
Sets htmlLabels.
mxCell.prototype.setId = function(id)
Sets the Id of the cell to the given string.
mxWindow.prototype.setImage = function(image)
Sets the image associated with the window.
mxGraph.prototype.setInvokesStopCellEditing = function(value)
Sets invokesStopCellEditing.
setLineCap: function(value)
Sets the linecap.
setLineCap: function(value)
Sets the linecap.
setLineJoin: function(value)
Sets the linejoin.
setLineJoin: function(value)
Sets the linejoin.
mxWindow.prototype.setLocation = function(x,
y)
Sets the upper, left corner of the window.
Sets if any cell may be moved, sized, bended, disconnected, edited or selected.
mxWindow.prototype.setMaximizable = function(maximizable)
Sets if the window is maximizable.
mxWindow.prototype.setMinimizable = function(minimizable)
Sets if the window is minimizable.
setMiterLimit: function(value)
Sets the miterlimit.
setMiterLimit: function(value)
Sets the miterlimit.
mxEditor.prototype.setMode = function(modename)
Puts the graph into the specified mode.
mxCellEditor.prototype.setModified = function(value)
Sets modified to the specified boolean value.
mxEditor.prototype.setModified = function (value)
Sets modified to the specified boolean value.
mxGraphHandler.prototype.setMoveEnabled = function(value)
Sets moveEnabled.
mxGraph.prototype.setMultigraph = function(value)
Specifies if the graph should allow multiple connections between the same pair of vertices.
setOpacity: function(node,
value)
Sets the opacity of the specified DOM node to the given value in %.
mxGraphLayout.prototype.setOrthogonalEdge = function(edge,
value)
Disables or enables orthogonal end segments of the given edge.
mxGraph.prototype.setPanning = function(enabled)
Specifies if panning should be enabled.
mxPanningHandler.prototype.setPanningEnabled = function(value)
Sets panningEnabled.
mxCell.prototype.setParent = function(parent)
Sets the parent cell.
mxGraph.prototype.setPortsEnabled = function(value)
Specifies if the ports should be enabled.
mxEdgeHandler.prototype.setPreviewColor = function(color)
Sets the color of the preview to the given value.
mxRectangle.prototype.setRect = function(x,
y,
w,
h)
Sets this rectangle to the specified values
mxGraphHandler.prototype.setRemoveCellsFromParent = function(value)
Sets removeCellsFromParent.
mxGraphView.prototype.setRendering = function(value)
Sets rendering.
mxXmlRequest.prototype.setRequestHeaders = function(request,
params)
Sets the headers for the given request and parameters.
mxWindow.prototype.setResizable = function(resizable)
Sets if the window should be resizable.
mxGraph.prototype.setResizeContainer = function(value)
Sets resizeContainer.
mxSwimlaneManager.prototype.setResizeEnabled = function(value)
Sets resizeEnabled.
mxGraphModel.prototype.setRoot = function(root)
Sets the root of the model using mxRootChange and adds the change to the current transaction.
mxGraphView.prototype.setScale = function(value)
Sets the scale and fires a scale event before calling revalidate followed by mxGraph.sizeDidChange.
mxWindow.prototype.setScrollable = function(scrollable)
Sets if the window contents should be scrollable.
mxGraphHandler.prototype.setSelectEnabled = function(value)
Sets selectEnabled.
mxGraph.prototype.setSelectionCell = function(cell)
Sets the selection cell.
mxGraph.prototype.setSelectionCells = function(cells)
Sets the selection cell.
mxGraph.prototype.setSelectionModel = function(selectionModel)
Sets the mxSelectionModel that contains the selection.
mxSpaceManager.prototype.setShiftDownwards = function(value)
Enables or disables event handling.
mxSpaceManager.prototype.setShiftRightwards = function(value)
Enables or disables event handling.
mxGraphSelectionModel.prototype.setSingleSelection = function(singleSelection)
Sets the singleSelection flag.
mxWindow.prototype.setSize = function(width,
height)
Sets the size of the window.
mxGraph.prototype.setSplitEnabled = function(value)
Specifies if the graph should allow dropping of cells onto or into other cells.
mxGraphView.prototype.setStates = function(value)
Sets states.
mxGuide.prototype.setStates = function(states)
Sets the mxCellStates that should be used for alignment.
mxEditor.prototype.setStatus = function (message)
Display the specified message in the status bar.
mxEditor.prototype.setStatusContainer = function (container)
Creates the status using the specified container.
setStrokeColor: function(value)
Sets the stroke color.
setStrokeColor: function(value)
Sets the stroke color.
setStrokeWidth: function(value)
Sets the stroke width.
setStrokeWidth: function(value)
Sets the stroke width.
mxCell.prototype.setStyle = function(style)
Sets the string to be used as the style.
mxGraphModel.prototype.setStyle = function(cell,
style)
Sets the style of the given mxCell using mxStyleChange and adds the change to the current transaction.
setStyle: function(style,
key,
value)
Adds or removes the given key, value pair to the style and returns the new style.
setStyleFlag: function(style,
key,
flag,
value)
Sets or removes the given key from the specified style and returns the new style.
mxGraph.prototype.setStylesheet = function(stylesheet)
Sets the mxStylesheet that defines the style.
mxGraph.prototype.setSwimlaneNesting = function(value)
Specifies if swimlanes can be nested by drag and drop.
mxGraph.prototype.setSwimlaneSelectionEnabled = function(value)
Specifies if swimlanes should be selected if the mouse is released over their content area.
mxCell.prototype.setTerminal = function(terminal,
isSource)
Sets the source or target terminal and returns the new terminal.
mxGraphModel.prototype.setTerminal = function(edge,
terminal,
isSource)
Sets the source or target terminal of the given mxCell using mxTerminalChange and adds the change to the current transaction.
mxGeometry.prototype.setTerminalPoint = function(point,
isSource)
Sets the sourcePoint or targetPoint to the given mxPoint and returns the new point.
mxGraphModel.prototype.setTerminals = function(edge,
source,
target)
Sets the source and target mxCell of the given mxCell in a single transaction using setTerminal for each end of the edge.
setTextEnabled: function(value)
Sets textEnabled.
setTextEnabled: function(value)
Sets textEnabled.
mxWindow.prototype.setTitle = function(title)
Sets the window title to the given string.
mxEditor.prototype.setTitleContainer = function (container)
Creates a listener to update the inner HTML of the specified DOM node with the value of getTitle.
mxGraph.prototype.setTolerance = function(value)
Sets tolerance.
mxEditor.prototype.setToolbarContainer = function (container)
Initializes the toolbar for the given container.
mxGraph.prototype.setTooltips = function (enabled)
Specifies if tooltips should be enabled.
mxGraphView.prototype.setTranslate = function(dx,
dy)
Sets the translation and fires a translate event before calling revalidate followed by mxGraph.sizeDidChange.
mxPath.prototype.setTranslate = function(x,
y)
Set the global translation of this path, that is, the origin of the coordinate system.
mxCell.prototype.setValue = function(value)
Sets the user object of the cell.
mxGraphModel.prototype.setValue = function(cell,
value)
Sets the user object of then given mxCell using mxValueChange and adds the change to the current transaction.
mxCell.prototype.setVertex = function(vertex)
Specifies if the cell is a vertex.
mxGraph.prototype.setVertexLabelsMovable = function(value)
Sets vertexLabelsMovable.
mxCoordinateAssignment.prototype.setVertexLocation = function(cell)
Fixes the position of the specified vertex.
mxGraphLayout.prototype.setVertexLocation = function(cell,
x,
y)
Sets the new position of the given cell taking into account the size of the bounding box if useBoundingBox is true.
mxCell.prototype.setVisible = function(visible)
Specifies if the cell is visible.
mxGraphModel.prototype.setVisible = function(cell,
visible)
Sets the visible state of the given mxCell using mxVisibleChange and adds the change to the current transaction.
setVisible: function(visible)
Shows or hides the console.
mxWindow.prototype.setVisible = function(visible)
Shows or hides the window depending on the given flag.
mxCellState.prototype.setVisibleTerminalState = function (terminalState,
source)
Sets the visible source or target terminal state.
mxGraphAbstractHierarchyCell.prototype.setX = function(layer,
value)
Set the value of x for the specified layer
mxGraphAbstractHierarchyCell.prototype.setY = function(layer,
value)
Set the value of y for the specified layer
mxOutline.prototype.setZoomEnabled = function(value)
Enables or disables the zoom handling by showing or hiding the respective handle.
shadow: function(value,
filled)
Paints the current path as a shadow of the given color.
shadow: function(value,
filled)
Paints the current path as a shadow of the given color.
mxSpaceManager.prototype.shiftCell = function(cell,
dx,
dy,
Ox0,
y0,
right,
bottom,
fx,
fy,
extendParent)
Called from moveCellsIntoParent to invoke the move hook in the automatic layout of each modified cell’s parent.
mxGraphHandler.prototype.shouldRemoveCellsFromParent = function(parent,
cells,
evt)
Returns true if the given cells should be removed from the parent for the specified mousereleased event.
mxCellStatePreview.prototype.show = function(visitor)
show: function()
Shows the console.
mxMorphing.prototype.show = function(move)
Shows the changes in the given mxCellStatePreview.
mxTooltipHandler.prototype.show = function(tip,
x,
y)
Shows the tooltip for the specified cell and optional index at the specified location (with a vertical offset of 10 pixels).
show: function(graph,
doc,
x0,
y0)
Copies the styles and the markup from the graph’s container into the given document and removes all cursor styles.
mxWindow.prototype.show = function()
Shows the window.
mxEditor.prototype.showHelp = function (tasks)
Shows the help window.
mxPopupMenu.prototype.showMenu = function()
Shows the menu.
mxEditor.prototype.showOutline = function ()
Shows the outline window.
mxEditor.prototype.showProperties = function (cell)
Creates and shows the properties dialog for the given cell.
mxPopupMenu.prototype.showSubmenu = function(parent,
row)
Shows the submenu inside the given parent row.
mxEditor.prototype.showTasks = function ()
Shows the tasks window.
SideToSide: function (state,
source,
target,
points,
result)
Implements a vertical elbow edge.
mxXmlRequest.prototype.simulate = function(doc,
target)
Creates and posts a request to the given target URL using a dynamically created form inside the given document.
mxGraph.prototype.sizeDidChange = function()
Called when the size of the graph has changed.
mxGraph.prototype.snap = function(value)
Snaps the given numeric value to the grid if gridEnabled is true.
mxGraphHandler.prototype.snap = function(vector)
Snaps the given vector to the grid and returns the given mxPoint instance.
sortCells: function(cells,
ascending)
Sorts the given cells according to the order in the cell hierarchy.
Reference to the source mxGraph.
mxGraph.prototype.splitEdge = function(edge,
cells,
newEdge,
dx,
dy)
Splits the given edge by adding the newEdge between the previous source and the given cell and reconnecting the source of the given edge to the given cell.
mxConnectionHandler.prototype.start = function(state,
x,
y,
edgeState)
Starts a new connection for the given state and coordinates.
mxEdgeHandler.prototype.start = function(x,
y,
index)
Starts the handling of the mouse gesture.
mxGraphHandler.prototype.start = function(cell,
x,
y)
Starts the handling of the mouse gesture.
mxRubberband.prototype.start = function(x,
y)
Sets the start point for the rubberband selection.
mxSession.prototype.start = function()
mxVertexHandler.prototype.start = function(x,
y,
index)
Starts the handling of the mouse gesture.
mxAnimation.prototype.startAnimation = function()
Starts the animation by repeatedly invoking updateAnimation.
mxDragSource.prototype.startDrag = function(evt)
Creates the dragElement using createDragElement.
mxCellEditor.prototype.startEditing = function(cell,
trigger)
Starts the editor for the given cell.
mxGraph.prototype.startEditing = function(evt)
Calls startEditingAtCell using the given cell or the first selection cell.
mxGraph.prototype.startEditingAtCell = function(cell,
evt)
Fires a startEditing event and invokes mxCellEditor.startEditing on editor.
mxSession.prototype.stop = function(reason)
Stops the session and fires a disconnect event.
mxAnimation.prototype.stopAnimation = function()
Stops the animation by deleting the timer and fires an mxEvent.DONE.
mxDragSource.prototype.stopDrag = function(evt)
Removes and destroys the dragElement.
mxCellEditor.prototype.stopEditing = function(cancel)
Stops the editor and applies the value if cancel is false.
mxGraph.prototype.stopEditing = function(cancel)
Stops the current editing.
mxMorphing.prototype.stopRecursion = function(state,
delta)
Returns true if the animation should not recursively find more deltas for children if the given parent state has been animated.
stroke: function()
Paints the outline of the current path.
stroke: function()
Paints the outline of the current path.
mxGraphModel.prototype.styleForCellChanged = function(cell,
style)
Inner callback to update the style of the given mxCell using mxCell.setStyle and return the previous style.
Maps from names to cell styles.
submit: function(url,
params,
doc,
target)
Submits the given parameters to the specified URL using mxXmlRequest.simulate and returns the mxXmlRequest.
mxSession.prototype.suspend = function()
Suspends the polling.
mxGeometry.prototype.swap = function()
Swaps the x, y, width and height with the values stored in alternateBounds and puts the previous values into alternateBounds as a rectangle.
mxGraph.prototype.swapBounds = function(cell,
willCollapse)
Swaps the alternate and the actual bounds in the geometry of the given cell invoking updateAlternateBounds before carrying out the swap.
mxEditor.prototype.swapStyles = function (first,
second)
Swaps the styles for the given names in the graph’s stylesheet and refreshes the graph.
mxSwimlaneManager.prototype.swimlaneAdded = function(swimlane)
Updates the size of the given swimlane to match that of any existing siblings swimlanes.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions15.html b/docs/js-api/index/Functions15.html new file mode 100644 index 000000000..59b889df2 --- /dev/null +++ b/docs/js-api/index/Functions15.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
T
 tapAndHold, mxConnectionHandler
 terminalForCellChanged, mxGraphModel
 text
 toggleCells, mxGraph
 toggleCellStyle, mxGraph
 toggleCellStyleFlags, mxGraph
 toggleCellStyles, mxGraph
 TopToBottom, mxEdgeStyle
 toRadians, mxUtils
 toString
 transformControlPoint, mxGraphView
 translate
 translateCell, mxGraph
 translateState, mxCellStatePreview
 transpose, mxMedianHybridCrossingReduction
 traverse, mxGraph
 treeLayout, mxEditor
 TrianglePerimeter, mxPerimeter
 trim
+ +
mxConnectionHandler.prototype.tapAndHold = function(me,
state)
Handles the mxMouseEvent by highlighting the mxCellState.
mxGraphModel.prototype.terminalForCellChanged = function(edge,
terminal,
isSource)
Inner helper function to update the terminal of the edge using mxCell.insertEdge and return the previous terminal.
text: function(x,
y,
w,
h,
str,
align,
valign,
vertical,
wrap,
format)
Paints the given text.
text: function(x,
y,
w,
h,
str,
align,
valign,
vertical,
wrap,
format)
Paints the given text.
mxGraph.prototype.toggleCells = function(show,
cells,
includeEdges)
Sets the visible state of the specified cells and all connected edges if includeEdges is true.
mxGraph.prototype.toggleCellStyle = function(key,
defaultValue,
cell)
Toggles the boolean value for the given key in the style of the given cell.
mxGraph.prototype.toggleCellStyleFlags = function(key,
flag,
cells)
Toggles the given bit for the given key in the styles of the specified cells.
mxGraph.prototype.toggleCellStyles = function(key,
defaultValue,
cells)
Toggles the boolean value for the given key in the style of the given cells.
TopToBottom: function(state,
source,
target,
points,
result)
Implements a horizontal elbow edge.
toRadians: function(deg)
Converts the given degree to radians.
mxCellOverlay.prototype.toString = function()
Returns the textual representation of the overlay to be used as the tooltip.
toString: function(obj)
Returns a textual representation of the specified object.
mxGraphView.prototype.transformControlPoint = function(state,
pt)
Transforms the given control point to an absolute point.
mxGeometry.prototype.translate = function(dx,
dy)
Translates the geometry by the specified amount.
translate: function(dx,
dy)
Translates the current graphics object.
translate: function(dx,
dy)
Translates the current graphics object.
mxGraph.prototype.translateCell = function(cell,
dx,
dy)
Translates the geometry of the given cell and stores the new, translated geometry in the model as an atomic change.
mxCellStatePreview.prototype.translateState = function(parentState,
state,
dx,
dy)
mxMedianHybridCrossingReduction.prototype.transpose = function(
   mainLoopIteration,
   model
)
Takes each possible adjacent cell pair on each rank and checks if swapping them around reduces the number of crossing
mxGraph.prototype.traverse = function(vertex,
directed,
func,
edge,
visited)
Traverses the (directed) graph invoking the given function for each visited vertex and edge.
mxEditor.prototype.treeLayout = function (cell,
horizontal)
Executes a vertical or horizontal compact tree layout using the specified cell as an argument.
TrianglePerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes a triangle perimeter.
mxUndoManager.prototype.trim = function()
Removes all pending steps after indexOfNextAdd from the history, invoking die on each edit.
trim: function(str,
chars)
Strips all whitespaces from both end of the string.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions16.html b/docs/js-api/index/Functions16.html new file mode 100644 index 000000000..3f7932fb6 --- /dev/null +++ b/docs/js-api/index/Functions16.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
U
 undo
 undoableEditHappened, mxUndoManager
 ungroupCells, mxGraph
 union, mxVertexHandler
 unmark, mxCellMarker
 update
 updateAlternateBounds, mxGraph
 updateAnimation
 updateAspect, mxImageShape
 updateCellSize, mxGraph
 updateCurrentState, mxConnectionHandler
 updateEdgeBounds, mxGraphView
 updateEdgeLabelOffset, mxGraphView
 updateEdgeParent, mxGraphModel
 updateEdgeParents, mxGraphModel
 updateFixedTerminalPoint, mxGraphView
 updateFixedTerminalPoints, mxGraphView
 updateFloatingTerminalPoint, mxGraphView
 updateFloatingTerminalPoints, mxGraphView
 updateGroupBounds, mxGraph
 updateHtmlShape, mxShape
 updateIcons, mxConnectionHandler
 updateMouseEvent, mxGraph
 updatePoints, mxGraphView
 updatePreviewShape, mxGraphHandler
 updatePreviewState, mxEdgeHandler
 updateSvgBounds, mxShape
 updateSvgGlassPane, mxShape
 updateSvgNode
 updateSvgPath, mxShape
 updateSvgScale, mxShape
 updateSvgShape, mxShape
 updateSvgTransform, mxShape
 updateTableStyle, mxText
 updateTableWidth, mxText
 updateVertexLabelOffset, mxGraphView
 updateVmlDashStyle, mxShape
 updateVmlFill, mxShape
 updateVmlGlassPane, mxShape
 updateVmlMarkerOpacity, mxConnector
 updateVmlShape, mxShape
 updateVmlStrokeColor, mxShape
 updateVmlStrokeNode, mxShape
 updatingDocumentResource, mxGraphView
 useGuidesForEvent, mxGraphHandler
+ +
mxEditor.prototype.undo = function ()
Undo the last change in graph.
mxUndoableEdit.prototype.undo = function()
Undoes all changes in this edit.
mxUndoManager.prototype.undo = function()
Undoes the last change.
mxUndoManager.prototype.undoableEditHappened = function(undoableEdit)
Method to be called to add new undoable edits to the history.
mxGraph.prototype.ungroupCells = function(cells)
Ungroups the given cells by moving the children the children to their parents parent and removing the empty groups.
mxVertexHandler.prototype.union = function(bounds,
dx,
dy,
index,
gridEnabled,
scale,
tr)
Returns the union of the given bounds and location for the specified handle index.
mxCellMarker.prototype.unmark = function()
Hides the marker and fires a mark event.
mxConstraintHandler.prototype.update = function(me,
source)
Updates the state of this handler based on the given mxMouseEvent.
mxOutline.prototype.update = function(revalidate)
Updates the outline.
mxRubberband.prototype.update = function(x,
y)
Sets currentX and currentY and calls repaint.
mxGraph.prototype.updateAlternateBounds = function(cell,
geo,
willCollapse)
Updates or sets the alternate bounds in the given geometry for the given cell depending on whether the cell is going to be collapsed.
mxAnimation.prototype.updateAnimation = function()
Hook for subclassers to implement the animation.
mxMorphing.prototype.updateAnimation = function()
Animation step.
mxImageShape.prototype.updateAspect = function(w,
h)
Updates the aspect of the image for the given image width and height.
mxGraph.prototype.updateCellSize = function(cell,
ignoreChildren)
Updates the size of the given cell in the model using cellSizeUpdated.
mxConnectionHandler.prototype.updateCurrentState = function(me)
Updates the current state for a given mouse move event by using the marker.
mxGraphView.prototype.updateEdgeBounds = function(state)
Updates the given state using the bounding box of the absolute points.
mxGraphView.prototype.updateEdgeLabelOffset = function(state)
Updates mxCellState.absoluteOffset for the given state.
mxGraphModel.prototype.updateEdgeParent = function(edge,
root)
Inner callback to update the parent of the specified mxCell to the nearest-common-ancestor of its two terminals.
mxGraphModel.prototype.updateEdgeParents = function(cell,
root)
Updates the parent for all edges that are connected to cell or one of its descendants using updateEdgeParent.
mxGraphView.prototype.updateFixedTerminalPoint = function(edge,
terminal,
source,
constraint)
Sets the fixed source or target terminal point on the given edge.
mxGraphView.prototype.updateFixedTerminalPoints = function(edge,
source,
target)
Sets the initial absolute terminal points in the given state before the edge style is computed.
mxGraphView.prototype.updateFloatingTerminalPoint = function(edge,
start,
end,
source)
Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.
mxGraphView.prototype.updateFloatingTerminalPoints = function(state,
source,
target)
Updates the terminal points in the given state after the edge style was computed for the edge.
mxGraph.prototype.updateGroupBounds = function(cells,
border,
moveGroup)
Updates the bounds of the given array of groups so that it includes all child vertices.
mxShape.prototype.updateHtmlShape = function(node)
Updates the bounds or points of the specified HTML node and updates the inner children to reflect the changes.
mxConnectionHandler.prototype.updateIcons = function(state,
icons,
me)
Hook to update the icon position(s) based on a mouseOver event.
mxGraph.prototype.updateMouseEvent = function(me)
Sets the graphX and graphY properties if the given mxMouseEvent if required.
mxGraphView.prototype.updatePoints = function(edge,
points,
source,
target)
Updates the absolute points in the given state using the specified array of mxPoints as the relative points.
mxGraphHandler.prototype.updatePreviewShape = function()
Updates the bounds of the preview shape.
mxEdgeHandler.prototype.updatePreviewState = function(edge,
point,
terminalState)
Updates the given preview state taking into account the state of the constraint handler.
mxShape.prototype.updateSvgBounds = function(node)
Updates the bounds of the given node using bounds.
mxShape.prototype.updateSvgGlassPane = function()
Draws the glass overlay if mxConstants.STYLE_GLASS is 1.
mxDoubleEllipse.prototype.updateSvgNode = function(node,
inset)
Updates the given node to reflect the new bounds and scale.
mxEllipse.prototype.updateSvgNode = function(node)
Updates the given node to reflect the new bounds and scale.
mxShape.prototype.updateSvgPath = function(node)
Updates the path of the given node using points.
mxShape.prototype.updateSvgScale = function(node)
Updates the properties of the given node that depend on the scale and checks the crisp rendering attribute.
mxShape.prototype.updateSvgShape = function(node)
Updates the bounds or points of the specified SVG node and updates the inner children to reflect the changes.
mxShape.prototype.updateSvgTransform = function(node,
shadow)
Updates the tranform of the given node.
Updates the style of the given HTML table and the value within the table.
mxText.prototype.updateTableWidth = function(table)
Updates the width of the given HTML table.
mxGraphView.prototype.updateVertexLabelOffset = function(state)
Updates the absoluteOffset of the given vertex cell state.
mxShape.prototype.updateVmlDashStyle = function()
Updates the dashstyle in the stroke node.
mxShape.prototype.updateVmlFill = function(node,
c1,
c2,
dir,
alpha)
Updates the given VML fill node.
mxShape.prototype.updateVmlGlassPane = function()
Draws the glass overlay if mxConstants.STYLE_GLASS is 1.
mxConnector.prototype.updateVmlMarkerOpacity = function()
Updates the opacity for the markers in VML.
mxShape.prototype.updateVmlShape = function(node)
Updates the bounds or points of the specified VML node and updates the inner children to reflect the changes.
mxShape.prototype.updateVmlStrokeColor = function(node)
Updates the VML stroke color for the given node.
mxShape.prototype.updateVmlStrokeNode = function(parent)
Creates the stroke node for VML.
Specifies the resource key for the status message while the document is being updated.
mxGraphHandler.prototype.useGuidesForEvent = function(me)
Returns true if the guides should be used for the given mxMouseEvent.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions17.html b/docs/js-api/index/Functions17.html new file mode 100644 index 000000000..294ff94ee --- /dev/null +++ b/docs/js-api/index/Functions17.html @@ -0,0 +1,42 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
V
 validate, mxGraphView
 validateBackground, mxGraphView
 validateBounds, mxGraphView
 validateCell, mxGraph
 validateConnection
 validateEdge, mxGraph
 validateGraph, mxGraph
 validatePoints, mxGraphView
 validationAlert, mxGraph
 valueChanged, mxCell
 valueForCellChanged, mxGraphModel
 verticalLayout, mxCompactTreeLayout
 visibleStateForCellChanged, mxGraphModel
 visit
W
 warn, mxLog
 WeightedCellSorter, WeightedCellSorter
 weightedMedian, mxMedianHybridCrossingReduction
 write
 writeAttribute, mxObjectCodec
 writeComplexAttribute, mxObjectCodec
 writeGraphModel, mxEditor
 writeHead, mxPrintPreview
 writeln
 writePrimitiveAttribute, mxObjectCodec
Z
 zoom, mxGraph
 zoomActual, mxGraph
 zoomIn, mxGraph
 zoomOut, mxGraph
+ +
mxGraphView.prototype.validate = function(cell)
First validates all bounds and then validates all points recursively on all visible cells starting at the given cell.
mxGraphView.prototype.validateBackground = function()
Validates the background image.
mxGraphView.prototype.validateBounds = function(parentState,
cell)
Validates the bounds of the given parent’s child using the given parent state as the origin for the child.
mxGraph.prototype.validateCell = function(cell,
context)
Hook method for subclassers to return an error message for the given cell and validation context.
mxConnectionHandler.prototype.validateConnection = function(source,
target)
Returns the error message or an empty string if the connection for the given source target pair is not valid.
mxEdgeHandler.prototype.validateConnection = function(source,
target)
Returns the error message or an empty string if the connection for the given source, target pair is not valid.
mxGraph.prototype.validateEdge = function(edge,
source,
target)
Hook method for subclassers to return an error message for the given edge and terminals.
mxGraph.prototype.validateGraph = function(cell,
context)
Validates the graph by validating each descendant of the given cell or the root of the model.
mxGraphView.prototype.validatePoints = function(parentState,
cell)
Validates the points for the state of the given cell recursively if the cell is not collapsed and returns the bounding box of all visited states as an mxRectangle.
mxGraph.prototype.validationAlert = function(message)
Displays the given validation error in a dialog.
mxCell.prototype.valueChanged = function(newValue)
Changes the user object after an in-place edit and returns the previous value.
mxGraphModel.prototype.valueForCellChanged = function(cell,
value)
Inner callback to update the user object of the given mxCell using mxCell.valueChanged and return the previous value, that is, the return value of mxCell.valueChanged.
mxCompactTreeLayout.prototype.verticalLayout = function(node,
parent,
x0,
y0,
bounds)
mxGraphModel.prototype.visibleStateForCellChanged = function(cell,
visible)
Inner callback to update the visible state of the given mxCell using mxCell.setCollapsed and return the previous visible state.
mxDictionary.prototype.visit = function(visitor)
Visits all entries in the dictionary using the given function with the following signature: function(key, value) where key is a string and value is an object.
mxGraphHierarchyModel.prototype.visit = function(visitor,
dfsRoots,
trackAncestors,
seenNodes)
A depth first search through the internal heirarchy model.
+ + + +
warn: function()
Adds all arguments to the console if WARN is enabled.
function WeightedCellSorter(cell,
weightedValue)
Constructs a new weighted cell sorted for the given cell and weight.
mxMedianHybridCrossingReduction.prototype.weightedMedian = function(iteration,
model)
Sweeps up or down the layout attempting to minimise the median placement of connected cells on adjacent ranks
write: function()
Adds the specified strings to the console.
mxPath.prototype.write = function(string)
Writes directly into the path.
write: function(parent,
text)
Creates a text node for the given string and appends it to the given parent.
mxObjectCodec.prototype.writeAttribute = function(enc,
obj,
attr,
value,
node)
Writes the given value into node using writePrimitiveAttribute or writeComplexAttribute depending on the type of the value.
mxObjectCodec.prototype.writeComplexAttribute = function(enc,
obj,
attr,
value,
node)
Writes the given value as a child node of the given node.
mxEditor.prototype.writeGraphModel = function (linefeed)
Hook to create the string representation of the diagram.
mxPrintPreview.prototype.writeHead = function(doc,
css)
Writes the HEAD section into the given document, without the opening and closing HEAD tags.
writeln: function()
Adds the specified strings to the console, appending a linefeed at the end of each string.
writeln: function(parent,
text)
Creates a text node for the given string and appends it to the given parent with an additional linefeed.
mxObjectCodec.prototype.writePrimitiveAttribute = function(enc,
obj,
attr,
value,
node)
Writes the given value as an attribute of the given node.
+ + + +
mxGraph.prototype.zoom = function(factor)
Zooms the graph using the given factor.
mxGraph.prototype.zoomActual = function()
Resets the zoom and panning in the view.
mxGraph.prototype.zoomIn = function()
Zooms into the graph by zoomFactor.
mxGraph.prototype.zoomOut = function()
Zooms out of the graph by zoomFactor.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions2.html b/docs/js-api/index/Functions2.html new file mode 100644 index 000000000..b1071b380 --- /dev/null +++ b/docs/js-api/index/Functions2.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
B
 beforeDecode
 beforeEncode, mxObjectCodec
 beforeUndo, mxLayoutManager
 begin
 beginUpdate, mxGraphModel
 bind, mxUtils
 bindAction, mxDefaultKeyHandler
 bindControlKey, mxKeyHandler
 bindControlShiftKey, mxKeyHandler
 bindKey, mxKeyHandler
 bindShiftKey, mxKeyHandler
 br, mxUtils
 bridge, mxCompactTreeLayout
 button, mxUtils
+ +
codec.beforeDecode = function(dec,
node,
obj)
Decodes an mxCell and uses the enclosing XML node as the user object for the cell (inversion).
codec.beforeDecode = function(dec,
node,
obj)
Decodes the any child nodes as using the respective codec from the registry.
Decodes the ui-part of the configuration node by reading a sequence of the following child nodes and attributes and passes the control to the default decoding mechanism:
mxObjectCodec.prototype.beforeDecode = function(dec,
node,
obj)
Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode.
codec.beforeDecode = function(dec,
node,
obj)
Decodes the optional children as cells using the respective decoder.
mxObjectCodec.prototype.beforeEncode = function(enc,
obj,
node)
Hook for subclassers to pre-process the object before encoding.
mxLayoutManager.prototype.beforeUndo = function(undoableEdit)
Called from the undoHandler.
begin: function()
Starts a new path.
begin: function()
Starts a new path.
mxGraphModel.prototype.beginUpdate = function()
Increments the updateLevel by one.
bind: function(scope,
funct)
Returns a wrapper function that locks the execution scope of the given function to the specified scope.
mxDefaultKeyHandler.prototype.bindAction = function (code,
action,
control)
Binds the specified keycode to the given action in editor.
mxKeyHandler.prototype.bindControlKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.bindControlShiftKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.bindKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.bindShiftKey = function(code,
funct)
Binds the specified keycode to the given function.
br: function(parent,
count)
Appends a linebreak to the given parent and returns the linebreak.
mxCompactTreeLayout.prototype.bridge = function(line1,
x1,
y1,
line2,
x2,
y2)
button: function(label,
funct,
doc)
Returns a new button with the given level and function as an onclick event handler.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions3.html b/docs/js-api/index/Functions3.html new file mode 100644 index 000000000..f5f274177 --- /dev/null +++ b/docs/js-api/index/Functions3.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
C
 calcAttraction, mxFastOrganicLayout
 calcPositions, mxFastOrganicLayout
 calcRepulsion, mxFastOrganicLayout
 calculateCrossings, mxMedianHybridCrossingReduction
 calculatedWeightedValue, mxCoordinateAssignment
 calculateRankCrossing, mxMedianHybridCrossingReduction
 calculateWidestRank, mxCoordinateAssignment
 canExportCell, mxGraph
 canImportCell, mxGraph
 canRedo, mxUndoManager
 canUndo, mxUndoManager
 cascadeOpacity
 cellAdded
 cellCloned, mxGraphModel
 cellConnected, mxGraph
 cellLabelChanged, mxGraph
 cellRemoved
 cellResized, mxSpaceManager
 cellsAdded
 cellsFolded, mxGraph
 cellSizeUpdated, mxGraph
 cellsMoved
 cellsOrdered, mxGraph
 cellsRemoved, mxGraph
 cellsResized
 cellsToggled, mxGraph
 changePoints
 changeSelection, mxGraphSelectionModel
 changeTerminalPoint
 check, mxMultiplicity
 checkNeighbors, mxMultiplicity
 checkTerminal, mxMultiplicity
 checkType, mxMultiplicity
 childMoved, mxGraphView
 circle, mxCircleLayout
 clear
 clearCellOverlays, mxGraph
 clearSelection
 click, mxGraph
 clip
 clone
 cloneCell, mxGraphModel
 cloneCellImpl, mxGraphModel
 cloneCells
 clonePreviewState, mxEdgeHandler
 cloneTemplate, mxObjectCodec
 cloneValue, mxCell
 close
 collapsedStateForCellChanged, mxGraphModel
 compare
 computeAspect, mxStencil
 configure, mxEditor
 configureHtmlShape
 configureShape, mxCellRenderer
 configureSvgShape
 configureTransparentBackground
 configureVmlShape
 confirm, mxUtils
 connect
 connectCell, mxGraph
 constrainChild, mxGraph
 consume
 consumeCycleAttribute, mxEditor
 contains
 convert, mxUrlConverter
 convertPoint
 convertValueFromXml, mxObjectCodec
 convertValueToString, mxGraph
 convertValueToXml, mxObjectCodec
 convertWaypoint, mxConnectionHandler
 copy
 create
 createBackgroundPageShape, mxGraphView
 createBends
 createBounds, mxVertexHandler
 createCellEditor, mxGraph
 createCellOverlays, mxCellRenderer
 createCellRenderer, mxGraph
 createConditions, mxDefaultPopupMenu
 createControl, mxCellRenderer
 createDashPattern, mxConnector
 createDefaultEdgeStyle, mxStylesheet
 createDefaultVertexStyle, mxStylesheet
 createDiagramLayout, mxEditor
 createDragElement, mxDragSource
 createEdge
 createEdgeState, mxConnectionHandler
 createForeignObject, mxText
 createGraph, mxEditor
 createGraphView, mxGraph
 createGroup, mxEditor
 createGroupCell, mxGraph
 createGuideShape, mxGuide
 createHandler, mxGraph
 createHandlers, mxGraph
 createHandleShape, mxEdgeHandler
 createHtml
 createHtmlPane, mxGraphView
 createHtmlTable, mxText
 createIcons, mxConnectionHandler
 createId, mxGraphModel
 createImage, mxUtils
 createInternalCells, mxGraphHierarchyModel
 createLabel, mxCellRenderer
 createLayoutManager, mxEditor
 createLine, mxCompactTreeLayout
 createMarker
 createMenu, mxDefaultPopupMenu
 createNode, mxCompactTreeLayout
 createPageSelector, mxPrintPreview
 createPanningManager, mxGraph
 createPath, mxShape
 createPoints, mxShape
 createPopupMenu, mxEditor
 createPreviewElement, mxDragSource
 createPreviewShape, mxGraphHandler
 createProperties, mxEditor
 createRoot, mxGraphModel
 createSelectionModel, mxGraph
 createSelectionShape
 createSession, mxEditor
 createShape
 createSizer
 createSizerShape, mxVertexHandler
 createState, mxGraphView
 createStylesheet, mxGraph
 createSubmenu, mxPopupMenu
 createSvg
 createSvgGradient, mxShape
 createSvgGroup, mxShape
 createSvgPipe, mxShape
 createSvgShadow, mxShape
 createSvgSpan
 createSwimlaneLayout, mxEditor
 createSwimlaneManager, mxEditor
 createTargetVertex, mxConnectionHandler
 createTasks, mxEditor
 createToolbar, mxEditor
 createUndoableEdit
 createVertex, mxGraph
 createVirtualBend, mxElbowEdgeHandler
 createVml
 createVmlImage, mxLabel
 createVmlPane, mxGraphView
 createVmlShadow, mxShape
 createXmlDocument, mxUtils
 crossingStage, mxHierarchicalLayout
 curveTo
 cut, mxClipboard
 cycleAttribute, mxEditor
 cycleStage, mxHierarchicalLayout
+ +
mxFastOrganicLayout.prototype.calcAttraction = function()
Calculates the attractive forces between all laid out nodes linked by edges
mxFastOrganicLayout.prototype.calcPositions = function()
Takes the displacements calculated for each cell and applies them to the local cache of cell positions.
mxFastOrganicLayout.prototype.calcRepulsion = function()
Calculates the repulsive forces between all laid out nodes
mxMedianHybridCrossingReduction.prototype.calculateCrossings = function(model)
Calculates the total number of edge crossing in the current graph.
mxCoordinateAssignment.prototype.calculatedWeightedValue = function(
   currentCell,
   collection
)
Calculates the priority the specified cell has based on the type of its cell and the cells it is connected to on the next layer
mxMedianHybridCrossingReduction.prototype.calculateRankCrossing = function(
   i,
   model
)
Calculates the number of edges crossings between the specified rank and the rank below it.
mxCoordinateAssignment.prototype.calculateWidestRank = function(graph,
model)
Calculates the width rank in the hierarchy.
mxGraph.prototype.canExportCell = function(cell)
Returns true if the given cell may be exported to the clipboard.
mxGraph.prototype.canImportCell = function(cell)
Returns true if the given cell may be imported from the clipboard.
mxUndoManager.prototype.canRedo = function()
Returns true if a redo is possible.
mxUndoManager.prototype.canUndo = function()
Returns true if an undo is possible.
cascadeOpacity: function(graph,
cell,
opacity)
Sets the opacity on the given cell and its descendants.
cascadeOpacity: function(graph,
cell,
opacity)
See mxEffects.cascadeOpacity.
mxGraphModel.prototype.cellAdded = function(cell)
Inner callback to update cells when a cell has been added.
mxGraphSelectionModel.prototype.cellAdded = function(cell)
Inner callback to add the specified mxCell to the selection.
mxGraphModel.prototype.cellCloned = function(cell)
Hook for cloning the cell.
mxGraph.prototype.cellConnected = function(edge,
terminal,
source,
constraint)
Sets the new terminal for the given edge and resets the edge points if resetEdgesOnConnect is true.
mxGraph.prototype.cellLabelChanged = function(cell,
value,
autoSize)
Sets the new label for a cell.
mxGraphModel.prototype.cellRemoved = function(cell)
Inner callback to update cells when a cell has been removed.
mxGraphSelectionModel.prototype.cellRemoved = function(cell)
Inner callback to remove the specified mxCell from the selection.
mxSession.prototype.cellRemoved = function(cell,
codec)
Adds removed cells to the codec object lookup for references to the removed cells after this point in time.
mxSpaceManager.prototype.cellResized = function(cell)
Called from moveCellsIntoParent to invoke the move hook in the automatic layout of each modified cell’s parent.
mxGraph.prototype.cellsAdded = function(cells,
parent,
index,
source,
target,
absolute)
Adds the specified cells to the given parent.
mxSwimlaneManager.prototype.cellsAdded = function(cells)
Called if any cells have been added.
mxGraph.prototype.cellsFolded = function(cells,
collapse,
recurse,
checkFoldable)
Sets the collapsed state of the specified cells.
mxGraph.prototype.cellSizeUpdated = function(cell,
ignoreChildren)
Updates the size of the given cell in the model using getPreferredSizeForCell to get the new size.
mxGraph.prototype.cellsMoved = function(cells,
dx,
dy,
disconnect,
constrain)
Moves the specified cells by the given vector, disconnecting the cells using disconnectGraph is disconnect is true.
mxLayoutManager.prototype.cellsMoved = function(cells,
evt)
Called from the moveHandler.
mxGraph.prototype.cellsOrdered = function(cells,
back)
Moves the given cells to the front or back.
mxGraph.prototype.cellsRemoved = function(cells)
Removes the given cells from the model.
mxGraph.prototype.cellsResized = function(cells,
bounds)
Sets the bounds of the given cells and fires a mxEvent.CELLS_RESIZED event.
mxSpaceManager.prototype.cellsResized = function(cells)
Called from moveCellsIntoParent to invoke the move hook in the automatic layout of each modified cell’s parent.
mxSwimlaneManager.prototype.cellsResized = function(cells)
Called if any cells have been resizes.
mxGraph.prototype.cellsToggled = function(cells,
show)
Sets the visible state of the specified cells.
mxEdgeSegmentHandler.prototype.changePoints = function(edge,
points)
Changes the points of the given edge to reflect the current state of the handler.
mxEdgeHandler.prototype.changePoints = function(edge,
points)
Changes the control points of the given edge in the graph model.
mxGraphSelectionModel.prototype.changeSelection = function(added,
removed)
Inner callback to add the specified mxCell to the selection.
mxEdgeSegmentHandler.prototype.changeTerminalPoint = function(edge,
point,
isSource)
Calls refresh after mxEdgeHandler.changeTerminalPoint.
mxEdgeHandler.prototype.changeTerminalPoint = function(edge,
point,
isSource)
Changes the terminal point of the given edge.
mxMultiplicity.prototype.check = function(graph,
edge,
source,
target,
sourceOut,
targetIn)
Checks the multiplicity for the given arguments and returns the error for the given connection or null if the multiplicity does not apply.
mxMultiplicity.prototype.checkNeighbors = function(graph,
edge,
source,
target)
Checks if there are any valid neighbours in validNeighbors.
mxMultiplicity.prototype.checkTerminal = function(graph,
terminal,
edge)
Checks the given terminal cell and returns true if this rule applies.
mxMultiplicity.prototype.checkType = function(graph,
value,
type,
attr,
attrValue)
Checks the type of the given value.
mxGraphView.prototype.childMoved = function(parent,
child)
Invoked when a child state was moved as a result of late evaluation of its position.
mxCircleLayout.prototype.circle = function(vertices,
r,
left,
top)
Executes the circular layout for the specified array of vertices and the given radius.
mxDictionary.prototype.clear = function()
Clears the dictionary.
mxGraphModel.prototype.clear = function()
Sets a new root using createRoot.
mxGraphSelectionModel.prototype.clear = function()
Clears the selection and fires a change event if the selection was not empty.
mxGraphView.prototype.clear = function(cell,
force,
recurse)
Removes the state of the given cell and all descendants if the given cell is not the current root.
clear: function(obj)
Removes the object id from the given object.
mxUndoManager.prototype.clear = function()
Clears the command history.
mxGraph.prototype.clearCellOverlays = function(cell)
Removes all mxCellOverlays in the graph for the given cell and all its descendants.
mxGraph.prototype.clearSelection = function()
Clears the selection using mxGraphSelectionModel.clear.
clearSelection: function()
Clears the current selection in the page.
mxGraph.prototype.click = function(me)
Processes a singleclick on an optional cell and fires a click event.
clip: function()
Uses the current path for clipping.
clip: function()
Uses the current path for clipping.
mxCell.prototype.clone = function()
Returns a clone of the cell.
mxCellState.prototype.clone = function()
Returns a clone of this mxPoint.
mxLine.prototype.clone = function()
Overrides the clone method to add special fields.
mxPoint.prototype.clone = function()
Returns a clone of this mxPoint.
clone: function(obj,
transients,
shallow)
Recursively clones the specified object ignoring all fieldnames in the given array of transient fields.
mxGraphModel.prototype.cloneCell = function(cell)
Returns a deep clone of the given mxCell (including the children) which is created using cloneCells.
mxGraphModel.prototype.cloneCellImpl = function(cell,
mapping,
includeChildren)
Inner helper method for cloning cells recursively.
mxGraph.prototype.cloneCells = function(cells,
allowInvalidEdges)
Returns the clones for the given cells.
mxGraphModel.prototype.cloneCells = function(cells,
includeChildren)
Returns an array of clones for the given array of mxCells.
mxEdgeHandler.prototype.clonePreviewState = function(point,
terminal)
Returns a clone of the current preview state for the given point and terminal.
mxObjectCodec.prototype.cloneTemplate = function()
Returns a new instance of the template for this codec.
mxCell.prototype.cloneValue = function()
Returns a clone of the cell’s user object.
mxPath.prototype.close = function()
Closes the path.
mxPrintPreview.prototype.close = function()
Closes the print preview window.
close: function()
Closes the current path.
close: function()
Closes the current path.
mxGraphModel.prototype.collapsedStateForCellChanged = function(cell,
collapsed)
Inner callback to update the collapsed state of the given mxCell using mxCell.setCollapsed and return the previous collapsed state.
MedianCellSorter.prototype.compare = function(a,
b)
Compares two MedianCellSorters.
compare: function(p1,
p2)
Compares the given cell paths and returns -1 if p1 is smaller, 0 if p1 is equal and 1 if p1 is greater than p2.
WeightedCellSorter.prototype.compare = function(a,
b)
Compares two WeightedCellSorters.
mxStencil.prototype.computeAspect = function(state,
bounds,
direction)
Returns a rectangle that contains the offset in x and y and the horizontal and vertical scale in width and height used to draw this shape inside the given mxRectangle.
mxEditor.prototype.configure = function (node)
Configures the editor using the specified node.
mxConnector.prototype.configureHtmlShape = function(node)
Overrides mxShape.configureHtmlShape to clear the border and background.
mxShape.prototype.configureHtmlShape = function(node)
Configures the specified HTML node by applying the current color, bounds, shadow, opacity etc.
mxStencilShape.prototype.configureHtmlShape = function(node)
Overrides method to set the overflow style to visible.
mxCellRenderer.prototype.configureShape = function(state)
Configures the shape for the given cell state.
mxImageShape.prototype.configureSvgShape = function(node)
Extends method to set opacity on images.
mxShape.prototype.configureSvgShape = function(node)
Configures the specified SVG node by applying the current color, bounds, shadow, opacity etc.
mxArrow.prototype.configureTransparentBackground = function(node)
Overidden to remove transparent background.
mxImageShape.prototype.configureTransparentBackground = function(node)
Workaround for security warning in IE if this is used in the overlay pane of a diagram.
mxShape.prototype.configureTransparentBackground = function(node)
Hook to make the background of a shape transparent.
mxShape.prototype.configureVmlShape = function(node)
Configures the specified VML node by applying the current color, bounds, shadow, opacity etc.
mxStencilShape.prototype.configureVmlShape = function(node)
Configures the specified VML node by applying the current color, bounds, shadow, opacity etc.
confirm: function(message)
Displays the given message in a confirm dialog.
mxEdgeSegmentHandler.prototype.connect = function(edge,
terminal,
isSource,
isClone,
me)
Calls refresh after mxEdgeHandler.connect.
mxConnectionHandler.prototype.connect = function(source,
target,
evt,
dropTarget)
Connects the given source and target using a new edge.
mxDefaultToolbar.prototype.connect = function(vertex,
evt,
source)
Handles a drop by connecting the given vertex to the given source cell.
mxEdgeHandler.prototype.connect = function(edge,
terminal,
isSource,
isClone,
me)
Changes the terminal or terminal point of the given edge in the graph model.
mxEditor.prototype.connect = function (urlInit,
urlPoll,
urlNotify,
onChange)
Creates and returns a session for the specified parameters, installing the onChange function as a change listener for the session.
mxGraph.prototype.connectCell = function(edge,
terminal,
source,
constraint)
Connects the specified end of the given edge to the given terminal using cellConnected and fires mxEvent.CONNECT_CELL while the transaction is in progress.
mxGraph.prototype.constrainChild = function(cell)
Keeps the given cell inside the bounds returned by getCellContainmentArea for its parent, according to the rules defined by getOverlap and isConstrainChild.
consume: function(evt,
preventDefault,
stopPropagation)
Consumes the given event.
mxEventObject.prototype.consume = function()
Consumes the event.
mxMouseEvent.prototype.consume = function(preventDefault)
Sets consumed to true and invokes preventDefault on the native event if such a method is defined.
mxEditor.prototype.consumeCycleAttribute = function (cell)
Returns the next attribute in cycleAttributeValues or null, if not attribute should be used in the specified cell.
mxGraphModel.prototype.contains = function(cell)
Returns true if the model contains the given mxCell.
contains: function(bounds,
x,
y)
Returns true if the specified point (x, y) is contained in the given rectangle.
convert: function(url)
Converts the given URL to an absolute URL.
mxEdgeHandler.prototype.convertPoint = function(point,
gridEnabled)
Converts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.
mxElbowEdgeHandler.prototype.convertPoint = function(point,
gridEnabled)
Converts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.
convertPoint: function(container,
x,
y)
Converts the specified point (x, y) using the offset of the specified container and returns a new mxPoint with the result.
mxObjectCodec.prototype.convertValueFromXml = function(value)
Converts booleans and numeric values to the respective types.
mxGraph.prototype.convertValueToString = function(cell)
Returns the textual representation for the given cell.
mxObjectCodec.prototype.convertValueToXml = function(value)
Converts true to “1” and false to “0”.
mxConnectionHandler.prototype.convertWaypoint = function(point)
Converts the given point from screen coordinates to model coordinates.
copy: function(graph,
cells)
Copies the given array of mxCells from the specified graph to cells.Returns the original array of cells that has been cloned.
copy: function(content)
Copies the specified content to the local clipboard.
create: function(cell)
Creates the cell path for the given cell.
mxCylinder.prototype.create = function(container)
Overrides the method to make sure the stroke is never null.
mxGraphView.prototype.createHtml = function()
Creates the DOM nodes for the HTML display.
mxImageShape.prototype.create = function()
Override to create HTML regardless of gradient and rounded property.
mxPolyline.prototype.create = function()
Override to create HTML regardless of gradient and rounded property.
mxShape.prototype.create = function(container)
Creates and returns the DOM node(s) for the shape in the given container.
mxText.prototype.create = function(container)
Override to create HTML regardless of gradient and rounded property.
mxXmlRequest.prototype.create = function()
Creates and returns the inner request object.
mxGraphView.prototype.createBackgroundPageShape = function(bounds)
Creates and returns the shape used as the background page.
mxEdgeSegmentHandler.prototype.createBends = function()
Adds custom bends for the center of each segment.
mxEdgeHandler.prototype.createBends = function()
Creates and returns the bends used for modifying the edge.
mxElbowEdgeHandler.prototype.createBends = function()
Overrides mxEdgeHandler.createBends to create custom bends.
Helper method to create an mxRectangle around the given centerpoint with a width and height of 2*s or 6, if no s is given.
mxGraph.prototype.createCellEditor = function()
Creates a new mxCellEditor to be used in this graph.
mxCellRenderer.prototype.createCellOverlays = function(state)
Creates the actual shape for showing the overlay for the given cell state.
mxGraph.prototype.createCellRenderer = function()
Creates a new mxCellRenderer to be used in this graph.
mxDefaultPopupMenu.prototype.createConditions = function(editor,
cell,
evt)
Evaluates the default conditions for the given context.
mxCellRenderer.prototype.createControl = function(state)
Creates the control for the given cell state.
mxConnector.prototype.createDashPattern = function(factor)
Creates a dash pattern for the given factor.
mxStylesheet.prototype.createDefaultEdgeStyle = function()
Creates and returns the default edge style.
mxStylesheet.prototype.createDefaultVertexStyle = function()
Creates and returns the default vertex style.
mxEditor.prototype.createDiagramLayout = function ()
Creates the layout instance used to layout the swimlanes in the diagram.
mxDragSource.prototype.createDragElement = function(evt)
Creates and returns a clone of the dragElementPrototype or the element if the former is not defined.
mxConnectionHandler.prototype.createEdge = function(value,
source,
target,
style)
Creates and returns a new edge using factoryMethod if one exists.
mxEditor.prototype.createEdge = function (source,
target)
Uses defaultEdge as the prototype for creating new edges in the connection handler of the graph.
mxGraph.prototype.createEdge = function(parent,
id,
value,
source,
target,
style)
Hook method that creates the new edge for insertEdge.
mxConnectionHandler.prototype.createEdgeState = function(me)
Hook to return an mxCellState which may be used during the preview.
mxText.prototype.createForeignObject = function()
Creates and returns the foreignObject node to represent this shape.
mxEditor.prototype.createGraph = function ()
Creates the graph for the editor.
mxGraph.prototype.createGraphView = function()
Creates a new mxGraphView to be used in this graph.
mxEditor.prototype.createGroup = function ()
Creates and returns a clone of defaultGroup to be used as a new group cell in group.
mxGraph.prototype.createGroupCell = function(cells)
Hook for creating the group cell to hold the given array of mxCells if no group cell was given to the group function.
mxGuide.prototype.createGuideShape = function(horizontal)
Returns the mxShape to be used for painting the respective guide.
mxGraph.prototype.createHandler = function(state)
Creates a new handler for the given cell state.
mxGraph.prototype.createHandlers = function(container)
Creates the tooltip-, panning-, connection- and graph-handler (in this order).
mxEdgeHandler.prototype.createHandleShape = function(index)
Creates the shape used to display the given bend.
mxLabel.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxRectangleShape.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxRhombus.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxShape.prototype.createHtml = function()
Creates and returns the HTML DOM node(s) to represent this shape.
mxSwimlane.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxText.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxGraphView.prototype.createHtmlPane = function(width,
height)
Creates and returns a drawing pane in HTML (DIV).
mxText.prototype.createHtmlTable = function()
Creates and returns a HTML table with a table body and a single row with a single cell.
mxConnectionHandler.prototype.createIcons = function(state)
Creates the array mxImageShapes that represent the connect icons for the given mxCellState.
mxGraphModel.prototype.createId = function(cell)
Hook method to create an Id for the specified cell.
createImage: function(src)
Creates and returns an image (IMG node) or VML image (v:image) in IE6 in quirs mode.
mxGraphHierarchyModel.prototype.createInternalCells = function(layout,
vertices,
internalVertices)
Creates all edges in the internal model
mxCellRenderer.prototype.createLabel = function(state,
value)
Creates the label for the given cell state.
mxEditor.prototype.createLayoutManager = function (graph)
Creates a layout manager for the swimlane and diagram layouts, that is, the locally defined inter- and intraswimlane layouts.
mxCompactTreeLayout.prototype.createLine = function(dx,
dy,
next)
mxConnectionHandler.prototype.createMarker = function()
Creates and returns the mxCellMarker used in marker.
mxEdgeHandler.prototype.createMarker = function()
Creates and returns the mxCellMarker used in marker.
mxDefaultPopupMenu.prototype.createMenu = function(editor,
menu,
cell,
evt)
This function is called from mxEditor to add items to the given menu based on config.
mxCompactTreeLayout.prototype.createNode = function(cell)
mxPrintPreview.prototype.createPageSelector = function(vpages,
hpages)
Creates the page selector table.
mxGraph.prototype.createPanningManager = function()
Creates and returns an mxPanningManager.
mxShape.prototype.createPath = function(arg)
Creates an mxPath for the specified format and origin.
mxShape.prototype.createPoints = function(moveCmd,
lineCmd,
curveCmd,
isRelative)
Creates a path expression using the specified commands for this.points.
mxEditor.prototype.createPopupMenu = function (menu,
cell,
evt)
Uses popupHandler to create the menu in the graph’s panning handler.
mxDragSource.prototype.createPreviewElement = function(graph)
Creates and returns an element which can be used as a preview in the given graph.
mxGraphHandler.prototype.createPreviewShape = function(bounds)
Creates the shape used to draw the preview for the given bounds.
mxEditor.prototype.createProperties = function (cell)
Creates and returns the DOM node that represents the contents of the properties dialog for the given cell.
mxGraphModel.prototype.createRoot = function()
Creates a new root cell with a default layer (child 0).
mxGraph.prototype.createSelectionModel = function()
Creates a new mxGraphSelectionModel to be used in this graph.
mxEdgeHandler.prototype.createSelectionShape = function(points)
Creates the shape used to draw the selection border.
mxVertexHandler.prototype.createSelectionShape = function(bounds)
Creates the shape used to draw the selection border.
mxEditor.prototype.createSession = function ()
Creates the built-in session using urlInit, urlPoll and urlNotify.
mxCellHighlight.prototype.createShape = function(state)
Creates and returns the highlight shape for the given state.
mxCellRenderer.prototype.createShape = function(state)
Creates the shape for the given cell state.
mxConnectionHandler.prototype.createShape = function()
Creates the preview shape for new connections.
mxImageExport.prototype.createShape = function(state,
canvas)
Creates a shape wrapper for the custom shape in the given cell state and links its output to the given canvas.
mxRubberband.prototype.createShape = function()
Creates the rubberband selection shape.
mxOutline.prototype.createSizer = function()
Creates the shape used as the sizer.
mxVertexHandler.prototype.createSizer = function(cursor,
index,
size,
fillColor)
Creates a sizer handle for the specified cursor and index and returns the new mxRectangleShape that represents the handle.
mxVertexHandler.prototype.createSizerShape = function(bounds,
index,
fillColor)
Creates the shape used for the sizer handle for the specified bounds and index.
mxGraphView.prototype.createState = function(cell)
Creates and returns an mxCellState for the given cell and initializes it using mxCellRenderer.initialize.
mxGraph.prototype.createStylesheet = function()
Creates a new mxGraphSelectionModel to be used in this graph.
mxPopupMenu.prototype.createSubmenu = function(parent)
Creates the nodes required to add submenu items inside the given parent item.
mxActor.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxArrow.prototype.createSvg = function()
Extends mxActor.createSvg to ignore fill if enableFill is false and create an event handling shape if this.addPipe is true.
mxConnector.prototype.createSvg = function()
Creates and returns the SVG node to represent this shape.
mxCylinder.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxDoubleEllipse.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxEllipse.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxLabel.prototype.createSvg = function()
Creates and returns the SVG node to represent this shape.
mxLine.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxPolyline.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxRectangleShape.prototype.createSvg = function()
Creates and returns the SVG node to represent this shape.
mxRhombus.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxStencilShape.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxSwimlane.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxText.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxShape.prototype.createSvgGradient = function(id,
start,
end,
node)
Creates a gradient object for SVG using the specified startcolor, endcolor and opacity.
mxShape.prototype.createSvgGroup = function(shape)
Creates a SVG group element and adds the given shape as a child of the element.
mxShape.prototype.createSvgPipe = function(id,
start,
end,
node)
Creates an invisible path which is used to increase the hit detection for edges in SVG.
mxShape.prototype.createSvgShadow = function(node)
Creates a clone of the given node and configures the node’s color to use mxConstants.SHADOWCOLOR.
Updates the path for the given SVG node.
mxText.prototype.createSvgSpan = function(text)
Creats an SVG tspan node for the given text.
mxEditor.prototype.createSwimlaneLayout = function ()
Creates the layout instance used to layout the children of each swimlane.
mxEditor.prototype.createSwimlaneManager = function (graph)
Sets the graph’s container using mxGraph.init.
mxConnectionHandler.prototype.createTargetVertex = function(evt,
source)
Hook method for creating new vertices on the fly if no target was under the mouse.
mxEditor.prototype.createTasks = function (div)
Updates the contents of the given DOM node to display the tasks associated with the current editor state.
mxEditor.prototype.createToolbar = function ()
Creates the toolbar with no container.
mxGraphModel.prototype.createUndoableEdit = function()
Creates a new mxUndoableEdit that implements the notify function to fire a change and notify event through the mxUndoableEdit’s source.
mxSession.prototype.createUndoableEdit = function(changes)
Creates a new mxUndoableEdit that implements the notify function to fire a change and notify event via the model.
mxGraph.prototype.createVertex = function(parent,
id,
value,
x,
y,
width,
height,
style,
relative)
Hook method that creates the new vertex for insertVertex.
mxElbowEdgeHandler.prototype.createVirtualBend = function()
Creates a virtual bend that supports double clicking and calls mxGraph.flipEdge.
mxActor.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxArrow.prototype.createVml = function()
Extends mxShape.createVml to ignore fill if enableFill is false.
mxConnector.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxCylinder.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxDoubleEllipse.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxEllipse.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxLabel.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxLine.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxRectangleShape.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxRhombus.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxSwimlane.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxText.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxLabel.prototype.createVmlImage = function(src,
opacity)
Creates an image node for the given image src and opacity to be used in VML.
mxGraphView.prototype.createVmlPane = function(width,
height)
Creates a drawing pane in VML (group).
mxShape.prototype.createVmlShadow = function(node)
Creates the VML shadow node.
createXmlDocument: function()
Returns a new, empty XML document.
mxHierarchicalLayout.prototype.crossingStage = function(parent)
Executes the crossing stage using mxMedianHybridCrossingReduction.
mxPath.prototype.curveTo = function(x1,
y1,
x2,
y2,
x,
y)
Draws a cubic Bézier curve from the current point to (x, y) using (x1, y1) as the control point at the beginning of the curve and (x2, y2) as the control point at the end of the curve.
curveTo: function(x1,
y1,
x2,
y2,
x3,
y3)
Adds a bezier curve to the current path.
curveTo: function(x1,
y1,
x2,
y2,
x3,
y3)
Adds a bezier curve to the current path.
cut: function(graph,
cells)
Cuts the given array of mxCells from the specified graph.
mxEditor.prototype.cycleAttribute = function (cell)
Uses the returned value from consumeCycleAttribute as the value for the cycleAttributeName key in the given cell’s style.
mxHierarchicalLayout.prototype.cycleStage = function(parent)
Executes the cycle stage using mxMinimumCycleRemover.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions4.html b/docs/js-api/index/Functions4.html new file mode 100644 index 000000000..3d70c3212 --- /dev/null +++ b/docs/js-api/index/Functions4.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
D
 dblClick, mxGraph
 debug, mxLog
 decode
 decodeAttribute, mxObjectCodec
 decodeAttributes, mxObjectCodec
 decodeCell, mxCodec
 decodeChanges, mxSession
 decodeChild
 decodeChildren, mxObjectCodec
 decodeNode, mxObjectCodec
 decodeRoot, mxModelCodec
 decodeTemplates, mxEditorCodec
 destroy
 destroyIcons, mxConnectionHandler
 destroyShapes, mxGraphHandler
 dfs
 die, mxUndoableEdit
 disableContextMenu, mxEvent
 disconnect, mxChildChange
 disconnectGraph, mxGraph
 dispose, mxClient
 dragEnter, mxDragSource
 dragExit, mxDragSource
 dragOver, mxDragSource
 drawGlass, mxImageExport
 drawHighlight, mxCellHighlight
 drawImage, mxImageExport
 drawLabel, mxImageExport
 drawLabelBackground, mxImageExport
 drawMarker, mxImageExport
 drawNode, mxStencil
 drawOverlays, mxImageExport
 drawPreview
 drawShape
 drawState, mxImageExport
 drop
+ +
mxGraph.prototype.dblClick = function(evt,
cell)
Processes a doubleclick on an optional cell and fires a dblclick event.
debug: function()
Adds all arguments to the console if DEBUG is enabled.
mxCodec.prototype.decode = function(node,
into)
Decodes the given XML node.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
codec.decode = function(dec,
node,
into)
Uses the given node as the config for mxDefaultPopupMenu.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
mxObjectCodec.prototype.decode = function(dec,
node,
into)
Parses the given node into the object or returns a new object representing the given node.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
mxObjectCodec.prototype.decodeAttribute = function(dec,
attr,
obj)
Reads the given attribute into the specified object.
mxObjectCodec.prototype.decodeAttributes = function(dec,
node,
obj)
Decodes all attributes of the given node using decodeAttribute.
mxCodec.prototype.decodeCell = function(node,
restoreStructures)
Decodes cells that have been encoded using inversion, ie.
mxSession.prototype.decodeChanges = function(node)
Decodes and executes the changes represented by the children in the given node.
codec.decodeChild = function(dec,
child,
obj)
Overrides decode child to handle special child nodes.
codec.decodeChild = function(dec,
child,
obj)
Overrides decode child to handle special child nodes.
mxObjectCodec.prototype.decodeChild = function(dec,
child,
obj)
Reads the specified child into the given object.
mxObjectCodec.prototype.decodeChildren = function(dec,
node,
obj)
Decodec all children of the given node using decodeChild.
mxObjectCodec.prototype.decodeNode = function(dec,
node,
obj)
Calls decodeAttributes and decodeChildren for the given node.
codec.decodeRoot = function(dec,
root,
model)
Reads the cells into the graph model.
Decodes the cells from the given node as templates.
mxAutoSaveManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
mxCellEditor.prototype.destroy = function ()
Destroys the editor and removes all associated resources.
mxCellHighlight.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxCellMarker.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxCellRenderer.prototype.destroy = function(state)
Destroys the shapes associated with the given cell state.
mxCellState.prototype.destroy = function ()
Destroys the state and all associated resources.
mxCellTracker.prototype.destroy = function()
Destroys the object and all its resources and DOM nodes.
mxConnectionHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxConstraintHandler.prototype.destroy = function()
Destroy this handler.
mxDefaultKeyHandler.prototype.destroy = function ()
Destroys the handler associated with this object.
mxDefaultToolbar.prototype.destroy = function ()
Destroys the toolbar associated with this object and removes all installed listeners.
mxEdgeHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxEditor.prototype.destroy = function ()
Removes the editor and all its associated resources.
mxGraph.prototype.destroy = function()
Destroys the graph and all its resources.
mxGraphHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxGraphView.prototype.destroy = function()
Destroys the view and all its resources.
mxGuide.prototype.destroy = function()
Destroys all resources that this object uses.
mxKeyHandler.prototype.destroy = function()
Destroys the handler and all its references into the DOM.
mxLayoutManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
mxOutline.prototype.destroy = function()
Destroy this outline and removes all listeners from source.
mxPanningHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxPopupMenu.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxRubberband.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxSelectionCellsHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxShape.prototype.destroy = function()
Destroys the shape by removing it from the DOM and releasing the DOM node associated with the shape using mxEvent.release.
mxSpaceManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
mxSwimlaneManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
mxTemporaryCellStates.prototype.destroy = function()
Returns the top, left corner as a new mxPoint.
mxText.prototype.destroy = function()
Extends destroy to remove any allocated SVG clips.
mxToolbar.prototype.destroy = function ()
Removes the toolbar and all its associated resources.
mxTooltipHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxVertexHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxWindow.prototype.destroy = function()
Destroys the window and removes all associated resources.
mxConnectionHandler.prototype.destroyIcons = function(icons)
Destroys the given array of mxImageShapes.
mxGraphHandler.prototype.destroyShapes = function()
Destroy the preview and highlight shapes.
mxCompactTreeLayout.prototype.dfs = function(cell,
parent,
visited)
Does a depth first search starting at the specified cell.
mxGraphHierarchyModel.prototype.dfs = function(parent,
root,
connectingEdge,
visitor,
seen,
layer)
Performs a depth first search on the internal hierarchy model
mxUndoableEdit.prototype.die = function()
Hook to free resources after the edit has been removed from the command history.
disableContextMenu: function()
Disables the context menu for the given element.
Disconnects the given cell recursively from its terminals and stores the previous terminal in the cell’s terminals.
mxGraph.prototype.disconnectGraph = function(cells)
Disconnects the given edges from the terminals which are not in the given array.
dispose: function()
Frees up memory in IE by resolving cyclic dependencies between the DOM and the JavaScript objects.
mxDragSource.prototype.dragEnter = function(graph)
Actives the given graph as a drop target.
mxDragSource.prototype.dragExit = function(graph)
Deactivates the given graph as a drop target.
mxDragSource.prototype.dragOver = function(graph,
evt)
Implements autoscroll, updates the currentPoint, highlights any drop targets and updates the preview.
Draws the given state to the given canvas.
mxCellHighlight.prototype.drawHighlight = function(state)
Creates and returns the highlight shape for the given state.
mxImageExport.prototype.drawImage = function(state,
canvas,
bounds,
image)
Draws the given state to the given canvas.
mxImageExport.prototype.drawLabel = function(state,
canvas,
bounds,
vert,
str)
Draws the given state to the given canvas.
mxImageExport.prototype.drawLabelBackground = function(state,
canvas,
bounds,
vert)
Draws background for the label of the given state to the given canvas.
mxImageExport.prototype.drawMarker = function(canvas,
state,
source)
Initializes the built-in shapes.
mxStencil.prototype.drawNode = function(canvas,
state,
node,
aspect)
Draws this stencil inside the given bounds.
mxImageExport.prototype.drawOverlays = function(state,
canvas)
Draws the overlays for the given state.
mxConnectionHandler.prototype.drawPreview = function()
Redraws the preview edge using the color and width returned by getEdgeColor and getEdgeWidth.
mxEdgeHandler.prototype.drawPreview = function()
Redraws the preview.
mxVertexHandler.prototype.drawPreview = function()
Redraws the preview.
mxImageExport.prototype.drawShape = function(state,
canvas,
shape)
Draws the given state to the given canvas.
mxStencil.prototype.drawShape = function(canvas,
state,
bounds,
background)
Draws this stencil inside the given bounds.
mxImageExport.prototype.drawState = function(state,
canvas)
Draws the given state and all its descendants to the given canvas.
mxDefaultToolbar.prototype.drop = function(vertex,
evt,
target)
Handles a drop from a toolbar item to the graph.
mxDragSource.prototype.drop = function(graph,
evt,
dropTarget,
x,
y)
Returns the drop target for the given graph and coordinates.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions5.html b/docs/js-api/index/Functions5.html new file mode 100644 index 000000000..6ad0e68f0 --- /dev/null +++ b/docs/js-api/index/Functions5.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
E
 ElbowConnector, mxEdgeStyle
 ellipse
 EllipsePerimeter, mxPerimeter
 encode
 encodeCell
 encodeChanges, mxSession
 encodeObject
 encodeValue, mxObjectCodec
 end, mxPath
 endUpdate, mxGraphModel
 enter, mxLog
 enterGroup, mxGraph
 EntityRelation, mxEdgeStyle
 equalEntries, mxUtils
 equalPoints, mxUtils
 equals
 error, mxUtils
 escape
 eval, mxUtils
 evaluateAttribute, mxStencil
 execute
 executeLayout, mxLayoutManager
 exitGroup, mxGraph
 extend, mxUtils
 extendedDfs, mxGraphHierarchyModel
 extendParent, mxGraph
+ +
ElbowConnector: function (state,
source,
target,
points,
result)
Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell style.
ellipse: function(x,
y,
w,
h)
Sets the current path to an ellipse.
ellipse: function(x,
y,
w,
h)
Sets the current path to an ellipse.
EllipsePerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes an elliptic perimeter.
mxCodec.prototype.encode = function(obj)
Encodes the specified object and returns the resulting XML node.
codec.encode = function(enc,
obj)
Returns null.
codec.encode = function(enc,
obj)
Returns null.
codec.encode = function(enc,
obj)
Returns null.
codec.encode = function(enc,
view)
Encodes the given mxGraphView using encodeCell starting at the model’s root.
mxObjectCodec.prototype.encode = function(enc,
obj)
Encodes the specified object and returns a node representing then given object.
codec.encode = function(enc,
obj)
Encodes a stylesheet.
mxCodec.prototype.encodeCell = function(cell,
node,
includeChildren)
Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg.
codec.encodeCell = function(enc,
view,
cell)
Recursively encodes the specifed cell.
mxSession.prototype.encodeChanges = function(changes,
invert)
Returns the XML representation for the given array of changes.
codec.encodeObject = function(enc,
obj,
node)
Encodes the given mxGraphModel by writing a (flat) XML sequence of cell nodes as produced by the mxCellCodec.
mxObjectCodec.prototype.encodeObject = function(enc,
obj,
node)
Encodes the value of each member in then given obj into the given node using encodeValue.
mxObjectCodec.prototype.encodeValue = function(enc,
obj,
name,
value,
node)
Converts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node.
mxPath.prototype.end = function()
Ends the path.
mxGraphModel.prototype.endUpdate = function()
Decrements the updateLevel by one and fires an undo event if the updateLevel reaches 0.
enter: function(string)
Writes the specified string to the console if TRACE is true and returns the current time in milliseconds.
mxGraph.prototype.enterGroup = function(cell)
Uses the given cell as the root of the displayed cell hierarchy.
EntityRelation: function (state,
source,
target,
points,
result)
Implements an entity relation style for edges (as used in database schema diagrams).
equalEntries: function(a,
b)
Compares all entries in the given dictionaries.
equalPoints: function(a,
b)
Compares all mxPoints in the given lists.
mxPoint.prototype.equals = function(obj)
Returns true if the given object equals this rectangle.
mxRectangle.prototype.equals = function(obj)
Returns true if the given object equals this rectangle.
error: function(message,
width,
close,
icon)
Displays the given error message in a new mxWindow of the given width.
mxGraph.prototype.escape = function(evt)
Processes an escape keystroke.
mxKeyHandler.prototype.escape = function(evt)
Hook to process ESCAPE keystrokes.
eval: function(expr)
Evaluates the given expression using eval and returns the JavaScript object that represents the expression result.
mxStencil.prototype.evaluateAttribute = function(node,
attribute,
state)
Gets the attribute for the given name from the given node.
mxCellAttributeChange.prototype.execute = function()
Changes the attribute of the cell’s user object by using mxCell.setAttribute.
mxChildChange.prototype.execute = function()
Changes the parent of child using mxGraphModel.parentForCellChanged and removes or restores the cell’s connections.
mxCircleLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxCollapseChange.prototype.execute = function()
Changes the collapsed state of cell to previous using mxGraphModel.collapsedStateForCellChanged.
mxCompactTreeLayout.prototype.execute = function(parent,
root)
Implements mxGraphLayout.execute.
mxCompositeLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute by executing all layouts in a single transaction.
mxCoordinateAssignment.prototype.execute = function(parent)
A basic horizontal coordinate assignment algorithm
mxCurrentRootChange.prototype.execute = function()
Changes the current root of the view.
mxEdgeLabelLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxEditor.prototype.execute = function (actionname,
cell,
evt)
Executes the function with the given name in actions passing the editor instance and given cell as the first and second argument.
mxFastOrganicLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxGeometryChange.prototype.execute = function()
Changes the geometry of cell ro previous using mxGraphModel.geometryForCellChanged.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxGraphModel.prototype.execute = function(change)
Executes the given edit and fires events if required.
mxHierarchicalLayout.prototype.execute = function(parent,
roots)
Executes the layout for the children of the specified parent.
mxHierarchicalLayoutStage.prototype.execute = function(parent)
Takes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.
mxMedianHybridCrossingReduction.prototype.execute = function(parent)
Performs a vertex ordering within ranks as described by Gansner et al 1993
mxMinimumCycleRemover.prototype.execute = function(parent)
Takes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.
mxParallelEdgeLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxPartitionLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxRootChange.prototype.execute = function()
Carries out a change of the root using mxGraphModel.rootChanged.
mxSelectionChange.prototype.execute = function()
Changes the current root of the view.
mxStackLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxStyleChange.prototype.execute = function()
Changes the style of cell to previous using mxGraphModel.styleForCellChanged.
mxTerminalChange.prototype.execute = function()
Changes the terminal of cell to previous using mxGraphModel.terminalForCellChanged.
mxValueChange.prototype.execute = function()
Changes the value of cell to previous using mxGraphModel.valueForCellChanged.
mxVisibleChange.prototype.execute = function()
Changes the visible state of cell to previous using mxGraphModel.visibleStateForCellChanged.
mxLayoutManager.prototype.executeLayout = function(layout,
parent)
Executes the given layout on the given parent.
mxGraph.prototype.exitGroup = function()
Changes the current root to the next valid root in the displayed cell hierarchy.
extend: function(ctor,
superCtor)
Assigns a copy of the superclass prototype to the subclass prototype.
mxGraphHierarchyModel.prototype.extendedDfs = function(parent,
root,
connectingEdge,
visitor,
seen,
ancestors,
childHash,
layer)
Performs a depth first search on the internal hierarchy model.
mxGraph.prototype.extendParent = function(cell)
Resizes the parents recursively so that they contain the complete area of the resized child cell.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions6.html b/docs/js-api/index/Functions6.html new file mode 100644 index 000000000..dff96c39b --- /dev/null +++ b/docs/js-api/index/Functions6.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
F
 fadeOut
 fill
 fillstroke
 filterCells, mxGraphModel
 filterDescendants, mxGraphModel
 findNearestSegment, mxUtils
 findNode, mxUtils
 findNodeByAttribute, mxUtils
 findParallels, mxParallelEdgeLayout
 findTreeRoots, mxGraph
 fireEvent, mxEventSource
 fireMouseEvent, mxGraph
 fit
 fixRanks, mxGraphHierarchyModel
 flipEdge, mxGraph
 focusLost, mxCellEditor
 foldCells, mxGraph
 formOrderedHierarchy, mxGraphHierarchyModel
+ +
fadeOut: function(node,
from,
remove,
step,
delay,
isEnabled)
Asynchronous fade-out operation.
fadeOut: function(node,
from,
remove,
step,
delay,
isEnabled)
See mxEffects.fadeOut.
fill: function()
Fills the current path.
fill: function()
Fills the current path.
Fills and paints the outline of the current path.
Fills and paints the outline of the current path.
mxGraphModel.prototype.filterCells = function(cells,
filter)
Returns the cells from the given array where the fiven filter function returns true.
mxGraphModel.prototype.filterDescendants = function(filter,
parent)
Visits all cells recursively and applies the specified filter function to each cell.
findNearestSegment: function(state,
x,
y)
Finds the index of the nearest segment on the given cell state for the specified coordinate pair.
findNode: function(node,
attr,
value)
Returns the first node where attr equals value.
findNodeByAttribute: function()
Returns the first node where the given attribute matches the given value.
mxParallelEdgeLayout.prototype.findParallels = function(parent)
Finds the parallel edges in the given parent.
mxGraph.prototype.findTreeRoots = function(parent,
isolate,
invert)
Returns all children in the given parent which do not have incoming edges.
mxEventSource.prototype.fireEvent = function(evt,
sender)
Dispatches the given event to the listeners which are registered for the event.
mxGraph.prototype.fireMouseEvent = function(evtName,
me,
sender)
Dispatches the given event in the graph event dispatch loop.
mxGraph.prototype.fit = function(border,
keepOrigin)
Scales the graph such that the complete diagram fits into container and returns the current scale in the view.
fit: function(node)
Makes sure the given node is inside the visible area of the window.
mxWindow.prototype.fit = function()
Makes sure the window is inside the client area of the window.
mxGraphHierarchyModel.prototype.fixRanks = function()
Fixes the layer assignments to the values stored in the nodes.
mxGraph.prototype.flipEdge = function(edge)
Toggles the style of the given edge between null (or empty) and alternateEdgeStyle.
mxCellEditor.prototype.focusLost = function()
Called if the textarea has lost focus.
mxGraph.prototype.foldCells = function(collapse,
recurse,
cells,
checkFoldable)
Sets the collapsed state of the specified cells and all descendants if recurse is true.
mxGraphHierarchyModel.prototype.formOrderedHierarchy = function(layout,
vertices,
parent)
Creates an internal ordered graph model using the vertices passed in.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions7.html b/docs/js-api/index/Functions7.html new file mode 100644 index 000000000..98373f68b --- /dev/null +++ b/docs/js-api/index/Functions7.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
G
 geometryForCellChanged, mxGraphModel
 get
 getAlignmentTolerance, mxConnectionHandler
 getAllConnectionConstraints, mxGraph
 getAllEdges, mxGraph
 getAttribute, mxCell
 getAttributeName, mxObjectCodec
 getBackgroundBounds, mxImageExport
 getBackgroundImage, mxGraph
 getBackgroundPageBounds, mxGraphView
 getBackgroundPane, mxGraphView
 getBaseUrl, mxUrlConverter
 getBorder, mxGraph
 getBoundingBox, mxUtils
 getBoundingBoxFromGeometry, mxGraph
 getBounds
 getBoundsForGroup, mxGraph
 getCanvas, mxGraphView
 getCell
 getCellAt, mxGraph
 getCellBounds
 getCellContainmentArea, mxGraph
 getCellForPopupEvent, mxPanningHandler
 getCellGeometry, mxGraph
 getCellOverlays, mxGraph
 getCells
 getCellsBeyond, mxGraph
 getCellsForChange, mxLayoutManager
 getCellsForEdit, mxLayoutManager
 getCellsForGroup, mxGraph
 getCellStates, mxGraphView
 getCellsToShift, mxSpaceManager
 getCellStyle
 getCellValidationError, mxGraph
 getCenterX, mxRectangle
 getCenterY, mxRectangle
 getChildAt
 getChildCells
 getChildCount
 getChildEdges
 getChildNodes, mxUtils
 getChildOffsetForCell, mxGraph
 getChildren, mxGraphModel
 getChildVertices
 getClientX, mxEvent
 getClientY, mxEvent
 getCloneableCells, mxGraph
 getCodec, mxCodecRegistry
 getColor, mxUtils
 getConnectImage, mxConnectionHandler
 getConnectionConstraint, mxGraph
 getConnectionPoint, mxGraph
 getConnections
 getConstraint, mxGraphLayout
 getControlBounds, mxCellRenderer
 getConverter
 getCurrentRoot, mxGraph
 getCurrentStyle, mxUtils
 getCurrentValue, mxCellEditor
 getCursor, mxShape
 getCursorForBend, mxElbowEdgeHandler
 getCursorForCell, mxGraph
 getDefaultBundle, mxResources
 getDefaultEdgeStyle, mxStylesheet
 getDefaultParent, mxGraph
 getDefaultVertexStyle, mxStylesheet
 getDeletableCells, mxGraph
 getDelta, mxMorphing
 getDescendants, mxGraphModel
 getDirectedEdgeCount, mxGraphModel
 getDocType, mxPrintPreview
 getDocument, mxXmlCanvas2D
 getDocumentElement, mxXmlRequest
 getDocumentHeight, mxDivResizer
 getDocumentWidth, mxDivResizer
 getDrawPane, mxGraphView
 getDropTarget
 getEdgeAt
 getEdgeColor, mxConnectionHandler
 getEdgeCount
 getEdgeId, mxParallelEdgeLayout
 getEdgeIndex, mxCell
 getEdges
 getEdgesBetween
 getEdgeStyle
 getEdgeValidationError, mxGraph
 getEdgeWidth, mxConnectionHandler
 getEditingCell, mxCellEditor
 getEditingValue, mxGraph
 getEditorBounds, mxCellEditor
 getElement, mxWindow
 getElementById, mxCodec
 getEmptyLabelText, mxCellEditor
 getEvent, mxMouseEvent
 getEventSource, mxEventSource
 getExportableCells, mxGraph
 getFieldName, mxObjectCodec
 getFieldTemplate, mxObjectCodec
 getFirstSelectableCell, mxGraphSelectionModel
 getFoldableCells, mxGraph
 getFoldingImage, mxGraph
 getFunction, mxKeyHandler
 getFunctionName, mxUtils
 getGeneralPurposeVariable
 getGeometry
 getGradientId, mxShape
 getGraph
 getGraphBounds
 getGraphForEvent, mxDragSource
 getGraphX, mxMouseEvent
 getGraphY, mxMouseEvent
 getGridSize, mxGraph
 getGuideStates, mxGraphHandler
 getGuideTolerance, mxGuide
 getHandleFillColor, mxEdgeHandler
 getHandleForEvent
 getHandler, mxSelectionCellsHandler
 getHotspot, mxCellMarker
 getId
 getImage
 getImageBounds, mxImageExport
 getImageForConstraint, mxConstraintHandler
 getImageFromBundles, mxGraph
 getImportableCells, mxGraph
 getIncomingEdges
 getIndex, mxCell
 getIndicatorColor, mxGraph
 getIndicatorGradientColor, mxGraph
 getIndicatorImage, mxGraph
 getIndicatorShape, mxGraph
 getInitialCellForEvent, mxGraphHandler
 getInitialValue, mxCellEditor
 getInnerHtml, mxUtils
 getKeys, mxDictionary
 getLabel, mxGraph
 getLabelBounds, mxCellRenderer
 getLabelValue, mxCellRenderer
 getLayout, mxLayoutManager
 getMainEvent, mxEvent
 getMarkedState, mxCellMarker
 getMarkerColor, mxCellMarker
 getMaximumGraphBounds, mxGraph
 getMinimumSize
 getModel
 getMovableCells, mxGraph
 getName
 getNearestCommonAncestor, mxGraphModel
 getNextLayerConnectedCells
 getNextPoint, mxGraphView
 getNumber, mxUtils
 getObject, mxCodec
 getOffset
 getOffsetSize, mxGraph
 getOpposites
 getOrigin, mxGraphModel
 getOriginForCell, mxMorphing
 getOuterHtml, mxUtils
 getOutgoingEdges
 getOverlap, mxGraph
 getOverlayPane, mxGraphView
 getParent
 getParentOffset, mxGraphLayout
 getParentPath, mxCellPath
 getParents, mxGraphModel
 getParentSize, mxStackLayout
 getPath, mxPath
 getPerimeterBounds
 getPerimeterFunction, mxGraphView
 getPerimeterPoint, mxGraphView
 getPoint
 getPointForEvent
 getPreferredSizeForCell, mxGraph
 getPrettyXML, mxUtils
 getPreviewBounds, mxGraphHandler
 getPreviewPoints
 getPreviewTerminalState, mxEdgeHandler
 getPreviousLayerConnectedCells
 getProperties, mxEventObject
 getProperty, mxEventObject
 getRankValue, mxGraphHierarchyNode
 getRelativePoint, mxGraphView
 getRemovedCellsForChanges, mxGraph
 getRoot, mxGraphModel
 getRootTitle, mxEditor
 getRotatedPoint, mxUtils
 getRotation, mxShape
 getRoutingCenterX, mxGraphView
 getRoutingCenterY, mxGraphView
 getScale, mxGraphView
 getScaleForPageCount, mxUtils
 getScrollOrigin, mxUtils
 getSelectionBounds, mxVertexHandler
 getSelectionCell, mxGraph
 getSelectionCells, mxGraph
 getSelectionCellsForChanges, mxGraph
 getSelectionColor
 getSelectionCount, mxGraph
 getSelectionModel, mxGraph
 getSelectionPoints, mxEdgeHandler
 getSelectionStrokeWidth
 getShapeConstructor, mxCellRenderer
 getSizeForString, mxUtils
 getSnapToTerminalTolerance, mxEdgeHandler
 getSource
 getSourcePerimeterPoint, mxConnectionHandler
 getSpacing, mxText
 getSpecialBundle, mxResources
 getStartSize, mxGraph
 getState
 getStates, mxGraphView
 getStateToMark, mxCellMarker
 getStatus, mxXmlRequest
 getStencil, mxStencilRegistry
 getStringValue, mxStylesheetCodec
 getStyle
 getStylename, mxUtils
 getStylenames, mxUtils
 getStylesheet, mxGraph
 getSvgClip, mxText
 getSvgShadowTransform, mxShape
 getSwimlane, mxGraph
 getSwimlaneAt, mxGraph
 getTable, mxForm
 getTableSize, mxText
 getTargetPerimeterPoint, mxConnectionHandler
 getTemplate, mxEditor
 getTerminal
 getTerminalForPort, mxGraph
 getTerminalPoint, mxGeometry
 getTerminalPort, mxGraphView
 getText, mxXmlRequest
 getTextContent, mxUtils
 getTextScale, mxCellRenderer
 getTitle, mxEditor
 getTolerance
 getTooltip, mxGraph
 getTooltipForCell, mxGraph
 getTooltipForNode, mxElbowEdgeHandler
 getTopmostCells, mxGraphModel
 getTranslate, mxGraphView
 getTranslateForRoot, mxGraph
 getUrlImage, mxEditor
 getUrlPost, mxEditor
 getValidState, mxCellMarker
 getValue
 getValues, mxDictionary
 getVerticalAlign, mxGraph
 getVerticalOffset, mxText
 getView, mxGraph
 getViewXml, mxUtils
 getVisibleTerminal
 getVisibleTerminalState, mxCellState
 getWindow, mxPrintPreview
 getX
 getXml
 getY
 graphContainsEvent, mxDragSource
 graphModelChanged
 graphRenderHint, mxOutline
 groupCells
 grow, mxRectangle
+ +
mxGraphModel.prototype.geometryForCellChanged = function(cell,
geometry)
Inner callback to update the mxGeometry of the given mxCell using mxCell.setGeometry and return the previous mxGeometry.
mxDictionary.prototype.get = function(key)
Returns the value for the given key.
get: function(obj)
Returns the object id for the given object.
get: function(key,
params,
defaultValue)
Returns the value for the specified resource key.
mxSession.prototype.get = function(url,
onLoad,
onError)
Sends an asynchronous get request to the given URL, fires a get event and invokes the given onLoad function when a response is received.
get: function(url,
onload,
onerror)
Loads the specified URL asynchronously and invokes the given functions depending on the request status.
mxConnectionHandler.prototype.getAlignmentTolerance = function()
Returns the tolerance for aligning new targets to sources.
mxGraph.prototype.getAllConnectionConstraints = function(terminal,
source)
Returns an array of all mxConnectionConstraints for the given terminal.
mxGraph.prototype.getAllEdges = function(cells)
Returns all edges connected to the given cells or its descendants.
mxCell.prototype.getAttribute = function(name,
defaultValue)
Returns the specified attribute from the user object if it is an XML node.
mxObjectCodec.prototype.getAttributeName = function(fieldname)
Returns the attributename for the given fieldname.
mxImageExport.prototype.getBackgroundBounds = function(state)
Draws the given state to the given canvas.
mxGraph.prototype.getBackgroundImage = function()
Returns the backgroundImage as an mxImage.
mxGraphView.prototype.getBackgroundPageBounds = function()
Returns the bounds for the background page.
mxGraphView.prototype.getBackgroundPane = function()
Returns the DOM node that represents the background layer.
getBaseUrl: function()
Returns baseUrl.
mxGraph.prototype.getBorder = function()
Returns the value of border.
getBoundingBox: function(rect,
rotation)
Returns the bounding box for the rotated rectangle.
mxGraph.prototype.getBoundingBoxFromGeometry = function(cells,
includeEdges)
Returns the bounding box for the geometries of the vertices in the given array of cells.
mxCellOverlay.prototype.getBounds = function(state)
Returns the bounds of the overlay for the given mxCellState as an mxRectangle.
mxGraphView.prototype.getBounds = function(cells)
Returns the bounds (on the screen) for the given array of mxCells.
mxGraph.prototype.getBoundsForGroup = function(group,
children,
border)
Returns the bounds to be used for the given group and children.
mxGraphView.prototype.getCanvas = function()
Returns the DOM node that contains the background-, draw- and overlaypane.
mxCellMarker.prototype.getCell = function(me)
Returns the mxCell for the given event and cell.
mxGraphModel.prototype.getCell = function(id)
Returns the mxCell for the specified Id or null if no cell can be found for the given Id.
mxMouseEvent.prototype.getCell = function()
Returns the mxCell in state is not null.
mxGraph.prototype.getCellAt = function(x,
y,
parent,
vertices,
edges)
Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.
mxGraph.prototype.getCellBounds = function(cell,
includeEdges,
includeDescendants)
Returns the scaled, translated bounds for the given cell.
Returns an mxRectangle that defines the bounds of the given cell or the bounding box if useBoundingBox is true.
mxGraph.prototype.getCellContainmentArea = function(cell)
Returns the mxRectangle inside which a cell is to be kept.
mxPanningHandler.prototype.getCellForPopupEvent = function(me)
Hook to return the cell for the mouse up popup trigger handling.
mxGraph.prototype.getCellGeometry = function(cell)
Returns the mxGeometry for the given cell.
mxGraph.prototype.getCellOverlays = function(cell)
Returns the array of mxCellOverlays for the given cell or null, if no overlays are defined.
mxGraph.prototype.getCells = function(x,
y,
width,
height,
parent,
result)
Returns the children of the given parent that are contained in the given rectangle (x, y, width, height).
mxGraphHandler.prototype.getCells = function(initialCell)
Returns the cells to be modified by this handler.
mxGraph.prototype.getCellsBeyond = function(x0,
y0,
parent,
rightHalfpane,
bottomHalfpane)
Returns the children of the given parent that are contained in the halfpane from the given point (x0, y0) rightwards and/or downwards depending on rightHalfpane and bottomHalfpane.
mxLayoutManager.prototype.getCellsForChange = function(change)
Executes all layouts which have been scheduled during the changes.
Returns the cells to be layouted for the given sequence of changes.
mxGraph.prototype.getCellsForGroup = function(cells)
Returns the cells with the same parent as the first cell in the given array.
mxGraphView.prototype.getCellStates = function(cells)
Returns the mxCellStates for the given array of mxCells.
mxSpaceManager.prototype.getCellsToShift = function(state)
Returns the cells to shift after a resize of the specified mxCellState.
mxGraph.prototype.getCellStyle = function(cell)
Returns an array of key, value pairs representing the cell style for the given cell.
mxStylesheet.prototype.getCellStyle = function(name,
defaultStyle)
Returns the cell style for the specified stylename or the given defaultStyle if no style can be found for the given stylename.
mxGraph.prototype.getCellValidationError = function(cell)
Checks all multiplicities that cannot be enforced while the graph is being modified, namely, all multiplicities that require a minimum of 1 edge.
mxRectangle.prototype.getCenterX = function ()
Returns the x-coordinate of the center point.
mxRectangle.prototype.getCenterY = function ()
Returns the y-coordinate of the center point.
mxCell.prototype.getChildAt = function(index)
Returns the child at the specified index.
mxGraphModel.prototype.getChildAt = function(cell,
index)
Returns the child of the given mxCell at the given index.
mxGraph.prototype.getChildCells = function(parent,
vertices,
edges)
Returns the visible child vertices or edges in the given parent.
mxGraphModel.prototype.getChildCells = function(parent,
vertices,
edges)
Returns the children of the given cell that are vertices and/or edges depending on the arguments.
mxCell.prototype.getChildCount = function()
Returns the number of child cells.
mxGraphModel.prototype.getChildCount = function(cell)
Returns the number of children in the given cell.
mxGraph.prototype.getChildEdges = function(parent)
Returns the visible child edges of the given parent.
mxGraphModel.prototype.getChildEdges = function(parent)
Returns the child edges of the given parent.
getChildNodes: function(node,
nodeType)
Returns an array of child nodes that are of the given node type.
mxGraph.prototype.getChildOffsetForCell = function(cell)
Returns the offset to be used for the cells inside the given cell.
mxGraphModel.prototype.getChildren = function(cell)
Returns all children of the given mxCell as an array of mxCells.
mxGraph.prototype.getChildVertices = function(parent)
Returns the visible child vertices of the given parent.
mxGraphModel.prototype.getChildVertices = function(parent)
Returns the child vertices of the given parent.
getClientX: function(e)
Returns true if the meta key is pressed for the given event.
getClientY: function(e)
Returns true if the meta key is pressed for the given event.
mxGraph.prototype.getCloneableCells = function(cells)
Returns the cells which may be exported in the given array of cells.
getCodec: function(ctor)
Returns a codec that handles objects that are constructed using the given constructor.
getColor: function(array,
key,
defaultValue)
Returns the color value for the given key in the given associative array or the given default value if the value is null.
mxConnectionHandler.prototype.getConnectImage = function(state)
Hook to return the mxImage used for the connection icon of the given mxCellState.
mxGraph.prototype.getConnectionConstraint = function(edge,
terminal,
source)
Returns an mxConnectionConstraint that describes the given connection point.
mxGraph.prototype.getConnectionPoint = function(vertex,
constraint)
Returns the nearest point in the list of absolute points or the center of the opposite terminal.
mxGraph.prototype.getConnections = function(cell,
parent)
Returns all visible edges connected to the given cell without loops.
mxGraphModel.prototype.getConnections = function(cell)
Returns all edges of the given cell without loops.
mxGraphLayout.prototype.getConstraint = function(key,
cell,
edge,
source)
Returns the constraint for the given key and cell.
mxCellRenderer.prototype.getControlBounds = function(state)
Returns the bounds to be used to draw the control (folding icon) of the given state.
getConverter: function()
Returns converter.
getConverter: function()
Returns converter.
mxGraph.prototype.getCurrentRoot = function()
Returns the current root of the displayed cell hierarchy.
getCurrentStyle: function()
Returns the current style of the specified element.
mxCellEditor.prototype.getCurrentValue = function()
Returns the current editing value.
mxShape.prototype.getCursor = function()
Returns the current cursor.
mxElbowEdgeHandler.prototype.getCursorForBend = function()
Returns the cursor to be used for the bend.
mxGraph.prototype.getCursorForCell = function(cell)
Returns the cursor value to be used for the CSS of the shape for the given cell.
getDefaultBundle: function(basename,
lan)
Hook for subclassers to return the URL for the special bundle.
mxStylesheet.prototype.getDefaultEdgeStyle = function()
Sets the default style for edges.
mxGraph.prototype.getDefaultParent = function()
Returns defaultParent or mxGraphView.currentRoot or the first child child of mxGraphModel.root if both are null.
mxStylesheet.prototype.getDefaultVertexStyle = function()
Returns the default style for vertices.
mxGraph.prototype.getDeletableCells = function(cells)
Returns the cells which may be exported in the given array of cells.
mxMorphing.prototype.getDelta = function(state)
Returns the vector between the current rendered state and the future location of the state after the display will be updated.
mxGraphModel.prototype.getDescendants = function(parent)
Returns all descendants of the given cell and the cell itself in an array.
mxGraphModel.prototype.getDirectedEdgeCount = function(cell,
outgoing,
ignoredEdge)
Returns the number of incoming or outgoing edges, ignoring the given edge.
Returns the string that should go before the HTML tag in the print preview page.
getDocument: function()
Returns the owner document of the root element.
mxXmlRequest.prototype.getDocumentElement = function()
Returns the document element of the response XML document.
mxDivResizer.prototype.getDocumentHeight = function()
Hook for subclassers to return the height of the document (without scrollbars).
mxDivResizer.prototype.getDocumentWidth = function()
Hook for subclassers to return the width of the document (without scrollbars).
mxGraphView.prototype.getDrawPane = function()
Returns the DOM node that represents the main drawing layer.
mxDragSource.prototype.getDropTarget = function(graph,
x,
y)
Returns the drop target for the given graph and coordinates.
mxGraph.prototype.getDropTarget = function(cells,
evt,
cell)
Returns the given cell if it is a drop target for the given cells or the nearest ancestor that may be used as a drop target for the given cells.
mxCell.prototype.getEdgeAt = function(index)
Returns the edge at the specified index in edges.
mxGraphModel.prototype.getEdgeAt = function(cell,
index)
Returns the edge of cell at the given index.
mxConnectionHandler.prototype.getEdgeColor = function(valid)
Returns the color used to draw the preview edge.
mxCell.prototype.getEdgeCount = function()
Returns the number of edges in the edge array.
mxGraphModel.prototype.getEdgeCount = function(cell)
Returns the number of distinct edges connected to the given cell.
mxParallelEdgeLayout.prototype.getEdgeId = function(edge)
Returns a unique ID for the given edge.
mxCell.prototype.getEdgeIndex = function(edge)
Returns the index of the specified edge in edges.
mxGraph.prototype.getEdges = function(cell,
parent,
incoming,
outgoing,
includeLoops,
recurse)
Returns the incoming and/or outgoing edges for the given cell.
mxGraphModel.prototype.getEdges = function(cell,
incoming,
outgoing,
includeLoops)
Returns all distinct edges connected to this cell as a new array of mxCells.
mxGraph.prototype.getEdgesBetween = function(source,
target,
directed)
Returns the edges between the given source and target.
mxGraphModel.prototype.getEdgesBetween = function(source,
target,
directed)
Returns all edges between the given source and target pair.
mxEditor.prototype.getEdgeStyle = function ()
Returns a string identifying the style of new edges.
mxGraphView.prototype.getEdgeStyle = function(edge,
points,
source,
target)
Returns the edge style function to be used to render the given edge state.
mxGraph.prototype.getEdgeValidationError = function(edge,
source,
target)
Returns the validation error message to be displayed when inserting or changing an edges’ connectivity.
mxConnectionHandler.prototype.getEdgeWidth = function(valid)
Returns the width used to draw the preview edge.
mxCellEditor.prototype.getEditingCell = function ()
Returns the cell that is currently being edited or null if no cell is being edited.
mxGraph.prototype.getEditingValue = function(cell,
evt)
Returns the initial value for in-place editing.
mxCellEditor.prototype.getEditorBounds = function(state)
Returns the mxRectangle that defines the bounds of the editor.
mxWindow.prototype.getElement = function()
Returuns the outermost DOM node that makes up the window.
mxCodec.prototype.getElementById = function(id,
attr)
Returns the element with the given ID from document.
mxCellEditor.prototype.getEmptyLabelText = function (cell)
Returns the initial label value to be used of the label of the given cell is empty.
mxMouseEvent.prototype.getEvent = function()
Returns evt.
mxEventSource.prototype.getEventSource = function()
Returns eventSource.
mxGraph.prototype.getExportableCells = function(cells)
Returns the cells which may be exported in the given array of cells.
mxObjectCodec.prototype.getFieldName = function(attributename)
Returns the fieldname for the given attributename.
mxObjectCodec.prototype.getFieldTemplate = function(obj,
fieldname,
child)
Returns the template instance for the given field.
mxGraphSelectionModel.prototype.getFirstSelectableCell = function(cells)
Returns the first selectable cell in the given array of cells.
mxGraph.prototype.getFoldableCells = function(cells,
collapse)
Returns the cells which are movable in the given array of cells.
mxGraph.prototype.getFoldingImage = function(state)
Returns the mxImage used to display the collapsed state of the specified cell state.
mxKeyHandler.prototype.getFunction = function(evt)
Returns the function associated with the given key event or null if no function is associated with the given event.
getFunctionName: function(f)
Returns the name for the given function.
mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable = function(
   layer
)
Gets the value of temp for the specified layer
mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable = function(layer)
Gets the value of temp for the specified layer
mxGraphHierarchyNode.prototype.getGeneralPurposeVariable = function(layer)
Gets the value of temp for the specified layer
mxCell.prototype.getGeometry = function()
Returns the mxGeometry that describes the geometry.
mxGraphModel.prototype.getGeometry = function(cell,
geometry)
Returns the mxGeometry of the given mxCell.
mxShape.prototype.getGradientId = function(start,
end)
Creates a unique ID for the gradient of this shape.
mxGraphLayout.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxLayoutManager.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxSpaceManager.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxSwimlaneManager.prototype.getGraph = function()
Returns the graph that this manager operates on.
mxGraph.prototype.getGraphBounds = function()
Returns the bounds of the visible graph.
mxGraphView.prototype.getGraphBounds = function()
Returns graphBounds.
mxDragSource.prototype.getGraphForEvent = function(evt)
Returns the graph for the given mouse event.
mxMouseEvent.prototype.getGraphX = function()
Returns graphX.
mxMouseEvent.prototype.getGraphY = function()
Returns graphY.
mxGraph.prototype.getGridSize = function()
Returns gridSize.
mxGraphHandler.prototype.getGuideStates = function()
Creates an array of cell states which should be used as guides.
mxGuide.prototype.getGuideTolerance = function()
Returns the tolerance for the guides.
mxEdgeHandler.prototype.getHandleFillColor = function(index)
Returns the fillcolor for the handle at the given index.
mxEdgeHandler.prototype.getHandleForEvent = function(me)
Returns the index of the handle for the given event.
mxVertexHandler.prototype.getHandleForEvent = function(me)
Returns the index of the handle for the given event.
mxSelectionCellsHandler.prototype.getHandler = function(cell)
Returns the handler for the given cell.
mxCellMarker.prototype.getHotspot = function()
Returns the hotspot.
mxCell.prototype.getId = function()
Returns the Id of the cell as a string.
mxCodec.prototype.getId = function(obj)
Returns the ID of the specified object.
mxGraph.prototype.getImage = function(state)
Returns the image URL for the given cell state.
mxImageBundle.prototype.getImage = function(key)
Returns the value for the given key.
mxImageExport.prototype.getImageBounds = function(state)
Draws the given state to the given canvas.
mxConstraintHandler.prototype.getImageForConstraint = function(state,
constraint,
point)
Returns the tolerance to be used for intersecting connection points.
mxGraph.prototype.getImageFromBundles = function(key)
Searches all imageBundles for the specified key and returns the value for the first match or null if the key is not found.
mxGraph.prototype.getImportableCells = function(cells)
Returns the cells which may be imported in the given array of cells.
mxGraph.prototype.getIncomingEdges = function(cell,
parent)
Returns the visible incoming edges for the given cell.
mxGraphModel.prototype.getIncomingEdges = function(cell)
Returns the incoming edges of the given cell without loops.
mxCell.prototype.getIndex = function(child)
Returns the index of the specified child in the child array.
mxGraph.prototype.getIndicatorColor = function(state)
Returns the indicator color for the given cell state.
mxGraph.prototype.getIndicatorGradientColor = function(state)
Returns the indicator gradient color for the given cell state.
mxGraph.prototype.getIndicatorImage = function(state)
Returns the indicator image for the given cell state.
mxGraph.prototype.getIndicatorShape = function(state)
Returns the indicator shape for the given cell state.
mxGraphHandler.prototype.getInitialCellForEvent = function(me)
Hook to return initial cell for the given event.
mxCellEditor.prototype.getInitialValue = function(state,
trigger)
Gets the initial editing value for the given cell.
getInnerHtml: function()
Returns the inner HTML for the given node as a string or an empty string if no node was specified.
mxDictionary.prototype.getKeys = function()
Returns all keys as an array.
mxGraph.prototype.getLabel = function(cell)
Returns a string or DOM node that represents the label for the given cell.
mxCellRenderer.prototype.getLabelBounds = function(state)
Returns the bounds to be used to draw the label of the given state.
mxCellRenderer.prototype.getLabelValue = function(state)
Returns the value to be used for the label.
mxLayoutManager.prototype.getLayout = function(parent)
Returns the layout to be executed for the given graph and parent.
getMainEvent: function(e)
Returns the touch or mouse event that contains the mouse coordinates.
mxCellMarker.prototype.getMarkedState = function()
Returns the markedState.
mxCellMarker.prototype.getMarkerColor = function(evt,
state,
isValid)
Returns the valid- or invalidColor depending on the value of isValid.
mxGraph.prototype.getMaximumGraphBounds = function()
Returns the bounds inside which the diagram should be kept as an mxRectangle.
mxCellEditor.prototype.getMinimumSize = function(state)
Returns the minimum width and height for editing the given state.
mxWindow.prototype.getMinimumSize = function()
Returns an mxRectangle that specifies the size for the minimized window.
mxGraph.prototype.getModel = function()
Returns the mxGraphModel that contains the cells.
mxHierarchicalLayout.prototype.getModel = function()
Returns the internal mxGraphHierarchyModel for this layout algorithm.
mxGraph.prototype.getMovableCells = function(cells)
Returns the cells which are movable in the given array of cells.
mxEventObject.prototype.getName = function()
Returns name.
mxObjectCodec.prototype.getName = function()
Returns the name used for the nodenames and lookup of the codec when classes are encoded and nodes are decoded.
getName: function(value)
Returns the name for the given value.
mxGraphModel.prototype.getNearestCommonAncestor = function(cell1,
cell2)
Returns the nearest common ancestor for the specified cells.
mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells = function(
   layer
)
Returns the cells this cell connects to on the next layer up
mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer up
mxGraphHierarchyNode.prototype.getNextLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer up
mxGraphView.prototype.getNextPoint = function(edge,
opposite,
source)
Returns the nearest point in the list of absolute points or the center of the opposite terminal.
getNumber: function(array,
key,
defaultValue)
Returns the numeric value for the given key in the given associative array or the given default value (or 0) if the value is null.
mxCodec.prototype.getObject = function(id)
Returns the decoded object for the element with the specified ID in document.
mxText.prototype.getOffset = function(outerWidth,
outerHeight,
actualWidth,
actualHeight,
horizontal)
Returns the description of the space between the bounds size and the label size as an mxPoint.
getOffset: function(container)
Returns the offset for the specified container as an mxPoint.
mxGraph.prototype.getOffsetSize = function()
Returns the actual size of the the viewport minus padding and border sizes.
mxGraph.prototype.getOpposites = function(edges,
terminal,
sources,
targets)
Returns all distinct visible opposite cells for the specified terminal on the given edges.
mxGraphModel.prototype.getOpposites = function(edges,
terminal,
sources,
targets)
Returns all opposite vertices wrt terminal for the given edges, only returning sources and/or targets as specified.
mxGraphModel.prototype.getOrigin = function(cell)
Returns the absolute, accumulated origin for the children inside the given parent as an mxPoint.
mxMorphing.prototype.getOriginForCell = function(cell)
Returns the top, left corner of the given cell.
getOuterHtml: function()
Returns the outer HTML for the given node as a string or an empty string if no node was specified.
mxGraph.prototype.getOutgoingEdges = function(cell,
parent)
Returns the visible outgoing edges for the given cell.
mxGraphModel.prototype.getOutgoingEdges = function(cell)
Returns the outgoing edges of the given cell without loops.
mxGraph.prototype.getOverlap = function(cell)
Returns a decimal number representing the amount of the width and height of the given cell that is allowed to overlap its parent.
mxGraphView.prototype.getOverlayPane = function()
Returns the DOM node that represents the topmost drawing layer.
mxCell.prototype.getParent = function()
Returns the cell’s parent.
mxGraphModel.prototype.getParent = function(cell)
Returns the parent of the given cell.
mxGraphLayout.prototype.getParentOffset = function(parent)
Determines the offset of the given parent to the parent of the layout
getParentPath: function(path)
Returns the path for the parent of the cell represented by the given path.
mxGraphModel.prototype.getParents = function(cells)
Returns an array that represents the set (no duplicates) of all parents for the given array of cells.
mxStackLayout.prototype.getParentSize = function(parent)
Returns the size for the parent container or the size of the graph container if the parent is a layer or the root of the model.
mxPath.prototype.getPath = function()
Returns string that represents the path in format.
mxCellState.prototype.getPerimeterBounds = function (border,
bounds)
Returns the mxRectangle that should be used as the perimeter of the cell.
mxGraphView.prototype.getPerimeterBounds = function(terminal,
border)
Returns the perimeter bounds for the given terminal, edge pair as an mxRectangle.
mxGraphView.prototype.getPerimeterFunction = function(state)
Returns the perimeter function for the given state.
mxGraphView.prototype.getPerimeterPoint = function(terminal,
next,
orthogonal,
border)
Returns an mxPoint that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.
mxGraphView.prototype.getPoint = function(state,
geometry)
Returns the absolute point on the edge for the given relative mxGeometry as an mxPoint.
mxRectangle.prototype.getPoint = function()
Returns the top, left corner as a new mxPoint.
mxEdgeHandler.prototype.getPointForEvent = function(me)
Returns the point for the given event.
mxGraph.prototype.getPointForEvent = function(evt,
addOffset)
Returns an mxPoint representing the given event in the unscaled, non-translated coordinate space of container and applies the grid.
mxGraph.prototype.getPreferredSizeForCell = function(cell)
Returns the preferred width and height of the given mxCell as an mxRectangle.
Returns a pretty printed string that represents the XML tree for the given node.
mxGraphHandler.prototype.getPreviewBounds = function(cells)
Returns the mxRectangle used as the preview bounds for moving the given cells.
mxEdgeSegmentHandler.prototype.getPreviewPoints = function(point)
Updates the given preview state taking into account the state of the constraint handler.
mxEdgeHandler.prototype.getPreviewPoints = function(point)
Updates the given preview state taking into account the state of the constraint handler.
mxEdgeHandler.prototype.getPreviewTerminalState = function(me)
Updates the given preview state taking into account the state of the constraint handler.
mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells = function(
   layer
)
Returns the cells this cell connects to on the next layer down
mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer down
mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer down
mxEventObject.prototype.getProperties = function()
Returns properties.
mxEventObject.prototype.getProperty = function(key)
Returns the property for the given key.
mxGraphHierarchyNode.prototype.getRankValue = function(layer)
Returns the integer value of the layer that this node resides in
mxGraphView.prototype.getRelativePoint = function(edgeState,
x,
y)
Gets the relative point that describes the given, absolute label position for the given edge state.
mxGraph.prototype.getRemovedCellsForChanges = function(changes)
Returns the cells that have been removed from the model.
mxGraphModel.prototype.getRoot = function(cell)
Returns the root of the model or the topmost parent of the given cell.
mxEditor.prototype.getRootTitle = function ()
Returns the string value of the root cell in mxGraph.model.
getRotatedPoint: function(pt,
cos,
sin,
c)
Rotates the given point by the given cos and sin.
mxShape.prototype.getRotation = function()
Returns the current rotation including direction.
mxGraphView.prototype.getRoutingCenterX = function (state)
Returns the x-coordinate of the center point for automatic routing.
mxGraphView.prototype.getRoutingCenterY = function (state)
Returns the y-coordinate of the center point for automatic routing.
mxGraphView.prototype.getScale = function()
Returns the scale.
getScaleForPageCount: function(pageCount,
graph,
pageFormat,
border)
Returns the scale to be used for printing the graph with the given bounds across the specifies number of pages with the given format.
getScrollOrigin: function(node)
Returns the top, left corner of the viewrect as an mxPoint.
mxVertexHandler.prototype.getSelectionBounds = function(state)
Returns the mxRectangle that defines the bounds of the selection border.
mxGraph.prototype.getSelectionCell = function()
Returns the first cell from the array of selected mxCells.
mxGraph.prototype.getSelectionCells = function()
Returns the array of selected mxCells.
mxGraph.prototype.getSelectionCellsForChanges = function(changes)
Returns the cells to be selected for the given array of changes.
mxEdgeHandler.prototype.getSelectionColor = function()
Returns mxConstants.EDGE_SELECTION_COLOR.
mxVertexHandler.prototype.getSelectionColor = function()
Returns mxConstants.VERTEX_SELECTION_COLOR.
mxGraph.prototype.getSelectionCount = function()
Returns the number of selected cells.
mxGraph.prototype.getSelectionModel = function()
Returns the mxGraphSelectionModel that contains the selection.
mxEdgeHandler.prototype.getSelectionPoints = function(state)
Returns the list of points that defines the selection stroke.
mxEdgeHandler.prototype.getSelectionStrokeWidth = function()
Returns mxConstants.EDGE_SELECTION_STROKEWIDTH.
mxVertexHandler.prototype.getSelectionStrokeWidth = function()
Returns mxConstants.VERTEX_SELECTION_STROKEWIDTH.
mxCellRenderer.prototype.getShapeConstructor = function(state)
Returns the constructor to be used for creating the shape.
getSizeForString: function(text,
fontSize,
fontFamily)
Returns an mxRectangle with the size (width and height in pixels) of the given string.
mxEdgeHandler.prototype.getSnapToTerminalTolerance = function()
Returns the tolerance for the guides.
getSource: function(evt)
Returns the event’s target or srcElement depending on the browser.
mxMouseEvent.prototype.getSource = function()
Returns the target DOM element using mxEvent.getSource for evt.
mxConnectionHandler.prototype.getSourcePerimeterPoint = function(state,
next,
me)
Hook to update the icon position(s) based on a mouseOver event.
mxText.prototype.getSpacing = function(horizontal)
Returns the spacing as an mxPoint.
getSpecialBundle: function(basename,
lan)
Hook for subclassers to return the URL for the special bundle.
mxGraph.prototype.getStartSize = function(swimlane)
Returns the start size of the given swimlane, that is, the width or height of the part that contains the title, depending on the horizontal style.
mxCellMarker.prototype.getState = function(me)
Uses getCell, getStateToMark and intersects to return the mxCellState for the given mxMouseEvent.
mxGraphView.prototype.getState = function(cell,
create)
Returns the mxCellState for the given cell.
mxMouseEvent.prototype.getState = function()
Returns state.
mxGraphView.prototype.getStates = function()
Returns states.
mxCellMarker.prototype.getStateToMark = function(state)
Returns the mxCellState to be marked for the given mxCellState under the mouse.
mxXmlRequest.prototype.getStatus = function()
Returns the status as a number, eg.
getStencil: function(name)
Returns the mxStencil for the given name.
codec.getStringValue = function(key,
value)
Returns the string for encoding the given value.
mxCell.prototype.getStyle = function()
Returns a string that describes the style.
mxGraphModel.prototype.getStyle = function(cell)
Returns the style of the given mxCell.
getStylename: function(style)
Returns the stylename in a style of the form [(stylename|key=value);] or an empty string if the given style does not contain a stylename.
getStylenames: function(style)
Returns the stylenames in a style of the form [(stylename|key=value);] or an empty array if the given style does not contain any stylenames.
mxGraph.prototype.getStylesheet = function()
Returns the mxStylesheet that defines the style.
mxText.prototype.getSvgClip = function(svg,
x,
y,
w,
h)
Returns a new or existing SVG clip path which is a descendant of the given SVG node with a unique ID.
mxShape.prototype.getSvgShadowTransform = function(node,
shadow)
Returns the current transformation for SVG shadows.
mxGraph.prototype.getSwimlane = function(cell)
Returns the nearest ancestor of the given cell which is a swimlane, or the given cell, if it is itself a swimlane.
mxGraph.prototype.getSwimlaneAt = function (x,
y,
parent)
Returns the bottom-most swimlane that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.
mxForm.prototype.getTable = function()
Returns the table that contains this form.
mxText.prototype.getTableSize = function(table)
Returns the actual size of the table.
mxConnectionHandler.prototype.getTargetPerimeterPoint = function(state,
me)
Returns the perimeter point for the given target state.
mxEditor.prototype.getTemplate = function (name)
Returns the template for the given name.
mxCell.prototype.getTerminal = function(source)
Returns the source or target terminal.
mxGraphModel.prototype.getTerminal = function(edge,
isSource)
Returns the source or target mxCell of the given edge depending on the value of the boolean parameter.
mxGraph.prototype.getTerminalForPort = function(cell,
source)
Returns the terminal to be used for a given port.
mxGeometry.prototype.getTerminalPoint = function(isSource)
Returns the mxPoint representing the source or target point of this edge.
mxGraphView.prototype.getTerminalPort = function(state,
terminal,
source)
Returns an mxCellState that represents the source or target terminal or port for the given edge.
mxXmlRequest.prototype.getText = function()
Returns the response as a string.
getTextContent: function(node)
Returns the text content of the specified node.
mxCellRenderer.prototype.getTextScale = function(state)
Returns the scaling used for the label of the given state
mxEditor.prototype.getTitle = function ()
Returns the string value for the current root of the diagram.
mxConstraintHandler.prototype.getTolerance = function()
Returns the tolerance to be used for intersecting connection points.
mxGraph.prototype.getTolerance = function()
Returns tolerance.
mxGraph.prototype.getTooltip = function(state,
node,
x,
y)
Returns the string or DOM node that represents the tooltip for the given state, node and coordinate pair.
mxGraph.prototype.getTooltipForCell = function(cell)
Returns the string or DOM node to be used as the tooltip for the given cell.
mxElbowEdgeHandler.prototype.getTooltipForNode = function(node)
Returns the tooltip for the given node.
mxGraphModel.prototype.getTopmostCells = function(cells)
Returns the topmost cells of the hierarchy in an array that contains no descendants for each mxCell that it contains.
mxGraphView.prototype.getTranslate = function()
Returns the translate.
mxGraph.prototype.getTranslateForRoot = function(cell)
Returns the translation to be used if the given cell is the root cell as an mxPoint.
mxEditor.prototype.getUrlImage = function ()
Returns the URL to create the image with.
mxEditor.prototype.getUrlPost = function ()
Returns the URL to post the diagram to.
mxCellMarker.prototype.getValidState = function()
Returns the validState.
mxCell.prototype.getValue = function()
Returns the user object of the cell.
mxGraphModel.prototype.getValue = function(cell)
Returns the user object of the given mxCell using mxCell.getValue.
getValue: function(name)
Returns the value associated with the given name.
getValue: function(array,
key,
defaultValue)
Returns the value for the given key in the given associative array or the given default value if the value is null.
mxDictionary.prototype.getValues = function()
Returns all values as an array.
mxGraph.prototype.getVerticalAlign = function(state)
Returns the vertical alignment for the given cell state.
mxText.prototype.getVerticalOffset = function(offset)
Returns the factors for the offset to be added to the text vertical text rotation.
mxGraph.prototype.getView = function()
Returns the mxGraphView that contains the mxCellStates.
getViewXml: function(graph,
scale,
cells,
x0,
y0)
mxCellState.prototype.getVisibleTerminal = function (source)
Returns the visible source or target terminal cell.
mxGraphView.prototype.getVisibleTerminal = function(edge,
source)
Returns the nearest ancestor terminal that is visible.
mxCellState.prototype.getVisibleTerminalState = function (source)
Returns the visible source or target terminal state.
mxPrintPreview.prototype.getWindow = function()
Returns wnd.
mxGraphAbstractHierarchyCell.prototype.getX = function(layer)
Gets the value of x on the specified layer
mxMouseEvent.prototype.getX = function()
Returns evt.clientX.
mxWindow.prototype.getX = function()
Returns the current position on the x-axis.
getXml: function(node,
linefeed)
Returns the XML content of the specified node.
mxXmlRequest.prototype.getXml = function()
Returns the response as an XML document.
mxMouseEvent.prototype.getY = function()
Returns evt.clientY.
mxWindow.prototype.getY = function()
Returns the current position on the y-axis.
mxDragSource.prototype.graphContainsEvent = function(graph,
evt)
Returns true if the given graph contains the given event.
mxAutoSaveManager.prototype.graphModelChanged = function(changes)
Invoked when the graph model has changed.
mxGraph.prototype.graphModelChanged = function(changes)
Called when the graph model changes.
Renderhint to be used for the outline graph.
mxEditor.prototype.groupCells = function ()
Invokes createGroup to create a new group cell and the invokes mxGraph.groupCells, using the grid size of the graph as the spacing in the group’s content area.
mxGraph.prototype.groupCells = function(group,
border,
cells)
Adds the cells into the given group.
mxRectangle.prototype.grow = function(amount)
Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions8.html b/docs/js-api/index/Functions8.html new file mode 100644 index 000000000..4d1f3122c --- /dev/null +++ b/docs/js-api/index/Functions8.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
H
 handleGesture, mxGraph
 handlingResize, mxDivResizer
 hasScrollbars, mxUtils
 hasValidState, mxCellMarker
 hide
 hideMenu, mxPopupMenu
 hideProperties, mxEditor
 hideSubmenu, mxPopupMenu
 hideTooltip, mxTooltipHandler
 hitsSwimlaneContent, mxGraph
 home, mxGraph
 horizontalLayout, mxCompactTreeLayout
 htmlEntities, mxUtils
+ +
mxGraph.prototype.handleGesture = function(state,
evt)
Invokes if a gesture event has been detected on a cell state.
Boolean specifying if the width should be updated.
hasScrollbars: function(node)
Returns true if the overflow CSS property of the given node is either scroll or auto.
mxCellMarker.prototype.hasValidState = function()
Returns true if validState is not null.
mxCellHighlight.prototype.hide = function()
Resets the state of the cell marker.
mxGuide.prototype.hide = function()
Hides all current guides.
mxTooltipHandler.prototype.hide = function()
Hides the tooltip and resets the timer.
mxWindow.prototype.hide = function()
Hides the window.
mxPopupMenu.prototype.hideMenu = function()
Removes the menu and all submenus.
mxEditor.prototype.hideProperties = function ()
Hides the properties dialog.
mxPopupMenu.prototype.hideSubmenu = function(parent)
Removes all submenus inside the given parent.
mxTooltipHandler.prototype.hideTooltip = function()
Hides the tooltip.
mxGraph.prototype.hitsSwimlaneContent = function(swimlane,
x,
y)
Returns true if the given coordinate pair is inside the content are of the given swimlane.
mxGraph.prototype.home = function()
Uses the root of the model as the root of the displayed cell hierarchy and selects the previous root.
mxCompactTreeLayout.prototype.horizontalLayout = function(node,
x0,
y0,
bounds)
htmlEntities: function(s,
newline)
Replaces characters (less than, greater than, newlines and quotes) with their HTML entities in the given string and returns the result.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Functions9.html b/docs/js-api/index/Functions9.html new file mode 100644 index 000000000..57858a261 --- /dev/null +++ b/docs/js-api/index/Functions9.html @@ -0,0 +1,34 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
I
 image
 importCells, mxGraph
 include, mxClient
 indexOf, mxUtils
 indexOfStylename, mxUtils
 info, mxLog
 init
 initBend, mxEdgeHandler
 initControl, mxCellRenderer
 initialCoords, mxCoordinateAssignment
 initialize, mxCellRenderer
 initializeLabel, mxCellRenderer
 initializeOverlay, mxCellRenderer
 initializeShape, mxCellRenderer
 initialRank, mxGraphHierarchyModel
 initMarkers, mxImageExport
 initShapes, mxImageExport
 insert
 insertEdge
 insertGradient, mxShape
 insertIntoGraph, mxCodec
 insertState, mxCellRenderer
 insertVertex, mxGraph
 installChangeHandler, mxEditor
 installCloseHandler, mxWindow
 installDblClickHandler, mxEditor
 installDrillHandler, mxEditor
 installDropHandler, mxDefaultToolbar
 installInsertHandler, mxEditor
 installListeners
 installMaximizeHandler, mxWindow
 installMinimizeHandler, mxWindow
 installMoveHandler, mxWindow
 installOverlayListeners, mxCellRenderer
 installUndoHandler, mxEditor
 intersection, mxUtils
 intersects
 invalidate, mxGraphView
 invert, mxGraphHierarchyEdge
 isAddEnabled, mxSwimlaneManager
 isAddPointEvent, mxEdgeHandler
 isAllowDanglingEdges, mxGraph
 isAllowEval, mxGraphView
 isAllowLoops, mxGraph
 isAllowOverlapParent, mxGraph
 isAltDown, mxEvent
 isAncestor
 isAutoAntiAlias, mxSvgCanvas2D
 isAutoSizeCell, mxGraph
 isAutoSizeCells, mxGraph
 isBinary, mxXmlRequest
 isBrowserSupported, mxClient
 isBubbling, mxLayoutManager
 isBundleSupported, mxResources
 isCellBendable, mxGraph
 isCellCloneable, mxGraph
 isCellCodec
 isCellCollapsed, mxGraph
 isCellConnectable, mxGraph
 isCellDeletable, mxGraph
 isCellDisconnectable, mxGraph
 isCellEditable, mxGraph
 isCellFoldable, mxGraph
 isCellHorizontal, mxSwimlaneManager
 isCellIgnored, mxSpaceManager
 isCellLocked, mxGraph
 isCellMovable, mxGraph
 isCellResizable, mxGraph
 isCellsBendable, mxGraph
 isCellsCloneable, mxGraph
 isCellsDeletable, mxGraph
 isCellsDisconnectable, mxGraph
 isCellsEditable, mxGraph
 isCellSelectable, mxGraph
 isCellSelected, mxGraph
 isCellShiftable, mxSpaceManager
 isCellsLocked, mxGraph
 isCellsMovable, mxGraph
 isCellsResizable, mxGraph
 isCellsSelectable, mxGraph
 isCellVisible, mxGraph
 isCloneEnabled, mxGraphHandler
 isCloneEvent, mxGraph
 isCloneInvalidEdges, mxGraph
 isCollapsed
 isCompressed, mxXmlCanvas2D
 isConnectable
 isConnectableCell
 isConnectableEdges, mxGraph
 isConnecting, mxConnectionHandler
 isConstrainChild, mxGraph
 isConstrainChildren, mxGraph
 isConstrainedEvent, mxGraph
 isConsumed
 isContainerEvent, mxGraphView
 isControlDown
 isCreateIds, mxGraphModel
 isCreateTarget, mxConnectionHandler
 isDelayedSelection, mxGraphHandler
 isDisconnectOnMove, mxGraph
 isDropEnabled, mxGraph
 isEdge
 isEdgeIgnored, mxGraphLayout
 isEdgeLabelsMovable, mxGraph
 isEdgeValid, mxGraph
 isEditing, mxGraph
 isEmpty
 isEmptyString, mxText
 isEnabled
 isEnabledForEvent, mxGuide
 isEnterStopsCellEditing, mxGraph
 isEscapeEnabled, mxGraph
 isEventsEnabled, mxEventSource
 isExcluded
 isExtendParent, mxGraph
 isExtendParents
 isExtendParentsOnAdd, mxGraph
 isFoEnabled, mxSvgCanvas2D
 isForceMarqueeEvent, mxGraph
 isGraphEvent, mxKeyHandler
 isGridEnabled
 isGridEnabledEvent, mxGraph
 isGuidesEnabled, mxDragSource
 isHandleEnabled, mxEdgeHandler
 isHandleVisible, mxEdgeHandler
 isHideLabel, mxCellEditor
 isHideOnHover, mxTooltipHandler
 isHorizontal
 isHotspotEnabled, mxCellMarker
 isHtmlLabel, mxGraph
 isHtmlLabels, mxGraph
 isImmediateConnectSource, mxConnectionHandler
 isInvokesStopCellEditing, mxGraph
 isLabelClipped, mxGraph
 isLabelEvent, mxCellRenderer
 isLabelMovable, mxGraph
 isLayer, mxGraphModel
 isLeftMouseButton, mxEvent
 isLoop, mxGraph
 isMenuShowing, mxPopupMenu
 isMetaDown, mxEvent
 isMixedModeHtml, mxShape
 isModified
 isMoveEnabled, mxGraphHandler
 isMoveIconToFrontForState, mxConnectionHandler
 isMultigraph, mxGraph
 isNode, mxUtils
 isNumeric, mxUtils
 isOrthogonal, mxGraph
 isPanningEnabled, mxPanningHandler
 isPanningTrigger, mxPanningHandler
 isPopupTrigger
 isPort, mxGraph
 isPortsEnabled, mxGraph
 isPropertiesVisible, mxEditor
 isReady, mxXmlRequest
 isReference
 isRemoveCellsFromParent, mxGraphHandler
 isRemovePointEvent, mxEdgeHandler
 isRendering, mxGraphView
 isResizable, mxWindow
 isResizeContainer, mxGraph
 isResizeEnabled, mxSwimlaneManager
 isRightMouseButton, mxEvent
 isRoot, mxGraphModel
 isScrollEvent, mxGraphView
 isSelected, mxGraphSelectionModel
 isSelectEnabled, mxGraphHandler
 isSelectionDashed
 isSelectionEmpty, mxGraph
 isShapeEvent, mxCellRenderer
 isShiftDown, mxEvent
 isShiftDownwards, mxSpaceManager
 isShiftRightwards, mxSpaceManager
 isSignificant, mxUndoableEdit
 isSingleSelection, mxGraphSelectionModel
 isSizerVisible, mxVertexHandler
 isSource, mxMouseEvent
 isSplitEnabled, mxGraph
 isSplitTarget, mxGraph
 isStartEvent, mxConnectionHandler
 isStopEvent, mxConnectionHandler
 isStyleSet, mxText
 isSwimlane, mxGraph
 isSwimlaneIgnored, mxSwimlaneManager
 isSwimlaneNesting, mxGraph
 isSwimlaneSelectionEnabled, mxGraph
 isTerminalPointMovable, mxGraph
 isTextEnabled
 isToggleEvent, mxGraph
 isValidAncestor, mxGraph
 isValidConnection, mxGraph
 isValidDropTarget, mxGraph
 isValidResponse, mxSession
 isValidRoot, mxGraph
 isValidSource
 isValidState, mxCellMarker
 isValidTarget
 isVertex
 isVertexIgnored
 isVertexLabelsMovable, mxGraph
 isVertexMovable, mxGraphLayout
 isVisible
 isVml
 isWrapping, mxGraph
+ +
image: function(x,
y,
w,
h,
src,
aspect,
flipH,
flipV)
Paints an image.
image: function(x,
y,
w,
h,
src,
aspect,
flipH,
flipV)
Paints an image.
mxGraph.prototype.importCells = function(cells,
dx,
dy,
target,
evt)
Clones and inserts the given cells into the graph using the move method and returns the inserted cells.
include: function(src)
Dynamically adds a script node to the document header.
indexOf: function(array,
obj)
Returns the index of obj in array or -1 if the array does not contains the given object.
indexOfStylename: function(style,
stylename)
Returns the index of the given stylename in the given style.
info: function()
Writes the current navigator information to the console.
mxCellEditor.prototype.init = function ()
Creates the textarea and installs the event listeners.
mxConnectionHandler.prototype.init = function()
Initializes the shapes required for this connection handler.
mxEdgeHandler.prototype.init = function()
Initializes the shapes required for this edge handler.
mxGraph.prototype.init = function(container)
Initializes the container and creates the respective datastructures.
mxGraphView.prototype.init = function()
Initializes the graph event dispatch loop for the specified container and invokes create to create the required DOM nodes for the display.
mxLabel.prototype.init = function(container)
Initializes the shape and adds it to the container.
init: function()
Initializes the DOM node for the console.
mxOutline.prototype.init = function(container)
Initializes the outline inside the given container.
mxPanningHandler.prototype.init = function()
Initializes the shapes required for this vertex handler.
mxPopupMenu.prototype.init = function()
Initializes the shapes required for this vertex handler.
mxShape.prototype.init = function(container)
Initializes the shape by creaing the DOM node using create and adding it into the given container.
mxTooltipHandler.prototype.init = function()
Initializes the DOM nodes required for this tooltip handler.
mxVertexHandler.prototype.init = function()
Initializes the shapes required for this vertex handler.
mxWindow.prototype.init = function(x,
y,
width,
height,
style)
Initializes the DOM tree that represents the window.
mxEdgeHandler.prototype.initBend = function(bend)
Helper method to initialize the given bend.
mxCellRenderer.prototype.initControl = function(state,
control,
handleEvents,
clickHandler)
Initializes the given control and returns the corresponding DOM node.
mxCoordinateAssignment.prototype.initialCoords = function(facade,
model)
Sets up the layout in an initial positioning.
mxCellRenderer.prototype.initialize = function(state)
Initializes the display for the given cell state.
mxCellRenderer.prototype.initializeLabel = function(state)
Initiailzes the label with a suitable container.
mxCellRenderer.prototype.initializeOverlay = function(state,
overlay)
Initializes the given overlay.
mxCellRenderer.prototype.initializeShape = function(state)
Initializes the shape in the given state by calling its init method with the correct container.
mxGraphHierarchyModel.prototype.initialRank = function()
Basic determination of minimum layer ranking by working from from sources or sinks and working through each node in the relevant edge direction.
mxImageExport.prototype.initMarkers = function()
Initializes the built-in markers.
mxImageExport.prototype.initShapes = function()
Initializes the built-in shapes.
mxCell.prototype.insert = function(child,
index)
Inserts the specified child into the child array at the specified index and updates the parent reference of the child.
mxDefaultToolbar.prototype.insert = function(vertex,
evt,
target)
Handles a drop by inserting the given vertex into the given parent cell or the default parent if no parent is specified.
mxCell.prototype.insertEdge = function(edge,
isOutgoing)
Inserts the specified edge into the edge array and returns the edge.
mxConnectionHandler.prototype.insertEdge = function(parent,
id,
value,
source,
target,
style)
Creates, inserts and returns the new edge for the given parameters.
mxGraph.prototype.insertEdge = function(parent,
id,
value,
source,
target,
style)
Adds a new edge into the given parent mxCell using value as the user object and the given source and target as the terminals of the new edge.
mxShape.prototype.insertGradient = function(node)
Inserts the given gradient node.
mxCodec.prototype.insertIntoGraph = function(cell)
Inserts the given cell into its parent and terminal cells.
mxCellRenderer.prototype.insertState = function(state,
nextNode)
Inserts the given state before the given node into its parent.
mxGraph.prototype.insertVertex = function(parent,
id,
value,
x,
y,
width,
height,
style,
relative)
Adds a new vertex into the given parent mxCell using value as the user object and the given coordinates as the mxGeometry of the new vertex.
mxEditor.prototype.installChangeHandler = function (graph)
Installs the listeners required to automatically validate the graph.
mxWindow.prototype.installCloseHandler = function()
Adds the closeImage as a new image node in closeImg and installs the close event.
mxEditor.prototype.installDblClickHandler = function (graph)
Overrides mxGraph.dblClick to invoke dblClickAction on a cell and reset the selection tool in the toolbar.
mxEditor.prototype.installDrillHandler = function (graph)
Installs listeners for dispatching the root event.
mxDefaultToolbar.prototype.installDropHandler = function (img,
dropHandler)
Makes the given img draggable using the given function for handling a drop event.
mxEditor.prototype.installInsertHandler = function (graph)
Installs the handler for invoking insertFunction if one is defined.
mxCellRenderer.prototype.installListeners = function(state)
Installs the event listeners for the given cell state.
mxGraphView.prototype.installListeners = function()
Installs the required listeners in the container.
mxWindow.prototype.installMaximizeHandler = function()
Installs the event listeners required for maximizing the window.
mxWindow.prototype.installMinimizeHandler = function()
Installs the event listeners required for minimizing the window.
mxWindow.prototype.installMoveHandler = function()
Installs the event listeners required for moving the window.
Installs the listeners for the given mxCellState, mxCellOverlay and mxShape that represents the overlay.
mxEditor.prototype.installUndoHandler = function (graph)
Adds the undoManager to the graph model and the view.
intersection: function (x0,
y0,
x1,
y1,
x2,
y2,
x3,
y3)
Returns the intersection of two lines as an mxPoint.
mxCellMarker.prototype.intersects = function(state,
me)
Returns true if the given coordinate pair intersects the given state.
mxGraph.prototype.intersects = function(state,
x,
y)
Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.
intersects: function(a,
b)
Returns true if the two rectangles intersect.
mxGraphView.prototype.invalidate = function(cell,
recurse,
includeEdges,
orderChanged)
Invalidates the state of the given cell, all its descendants and connected edges.
mxGraphHierarchyEdge.prototype.invert = function(layer)
Inverts the direction of this internal edge(s)
mxSwimlaneManager.prototype.isAddEnabled = function()
Returns addEnabled.
mxEdgeHandler.prototype.isAddPointEvent = function(evt)
Returns true if the given event is a trigger to add a new point.
mxGraph.prototype.isAllowDanglingEdges = function()
Returns allowDanglingEdges as a boolean.
mxGraphView.prototype.isAllowEval = function()
Returns allowEval.
mxGraph.prototype.isAllowLoops = function()
Returns allowLoops as a boolean.
mxGraph.prototype.isAllowOverlapParent = function(cell)
Returns true if the given cell is allowed to be placed outside of the parents area.
isAltDown: function(evt)
Returns true if the alt key is pressed for the given event.
mxGraphHierarchyNode.prototype.isAncestor = function(otherNode)
mxGraphModel.prototype.isAncestor = function(parent,
child)
Returns true if the given parent is an ancestor of the given child.
isAutoAntiAlias: function()
Returns autoAntiAlias.
mxGraph.prototype.isAutoSizeCell = function(cell)
Returns true if the size of the given cell should automatically be updated after a change of the label.
mxGraph.prototype.isAutoSizeCells = function()
Returns autoSizeCells.
mxXmlRequest.prototype.isBinary = function()
Returns binary.
isBrowserSupported: function()
Returns true if the current browser is supported, that is, if mxClient.IS_VML or mxClient.IS_SVG is true.
mxLayoutManager.prototype.isBubbling = function()
Returns true if a layout should bubble, that is, if the parent layout should be executed whenever a cell layout (layout of the children of a cell) has been executed.
Hook for subclassers to disable support for a given language.
mxGraph.prototype.isCellBendable = function(cell)
Returns true if the given cell is bendable.
mxGraph.prototype.isCellCloneable = function(cell)
Returns true if the given cell is cloneable.
codec.isCellCodec = function()
Returns true since this is a cell codec.
mxCodec.prototype.isCellCodec = function(codec)
Returns true if the given codec is a cell codec.
mxGraph.prototype.isCellCollapsed = function(cell)
Returns true if the given cell is collapsed in this graph.
mxGraph.prototype.isCellConnectable = function(cell)
Returns true if the given cell is connectable in this graph.
mxGraph.prototype.isCellDeletable = function(cell)
Returns true if the given cell is moveable.
mxGraph.prototype.isCellDisconnectable = function(cell,
terminal,
source)
Returns true if the given cell is disconnectable from the source or target terminal.
mxGraph.prototype.isCellEditable = function(cell)
Returns true if the given cell is editable.
mxGraph.prototype.isCellFoldable = function(cell,
collapse)
Returns true if the given cell is foldable.
mxSwimlaneManager.prototype.isCellHorizontal = function(cell)
Returns true if the given cell is horizontal.
mxSpaceManager.prototype.isCellIgnored = function(cell)
Sets the graph that the layouts operate on.
mxGraph.prototype.isCellLocked = function(cell)
Returns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.
mxGraph.prototype.isCellMovable = function(cell)
Returns true if the given cell is moveable.
mxGraph.prototype.isCellResizable = function(cell)
Returns true if the given cell is resizable.
mxGraph.prototype.isCellsBendable = function()
Returns cellsBenadable.
mxGraph.prototype.isCellsCloneable = function()
Returns cellsCloneable, that is, if the graph allows cloning of cells by using control-drag.
mxGraph.prototype.isCellsDeletable = function()
Returns cellsDeletable.
mxGraph.prototype.isCellsDisconnectable = function()
Returns cellsDisconnectable.
mxGraph.prototype.isCellsEditable = function()
Returns cellsEditable.
mxGraph.prototype.isCellSelectable = function(cell)
Returns true if the given cell is selectable.
mxGraph.prototype.isCellSelected = function(cell)
Returns true if the given cell is selected.
mxSpaceManager.prototype.isCellShiftable = function(cell)
Sets the graph that the layouts operate on.
mxGraph.prototype.isCellsLocked = function()
Returns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.
mxGraph.prototype.isCellsMovable = function()
Returns cellsMovable.
mxGraph.prototype.isCellsResizable = function()
Returns cellsResizable.
mxGraph.prototype.isCellsSelectable = function()
Returns cellsSelectable.
mxGraph.prototype.isCellVisible = function(cell)
Returns true if the given cell is visible in this graph.
mxGraphHandler.prototype.isCloneEnabled = function()
Returns cloneEnabled.
mxGraph.prototype.isCloneEvent = function(evt)
Returns true if the given event is a clone event.
mxGraph.prototype.isCloneInvalidEdges = function()
Returns cloneInvalidEdges as a boolean.
mxCell.prototype.isCollapsed = function()
Returns true if the cell is collapsed.
mxGraphModel.prototype.isCollapsed = function(cell)
Returns true if the given mxCell is collapsed.
isCompressed: function()
Returns compressed.
mxCell.prototype.isConnectable = function()
Returns true if the cell is connectable.
mxGraph.prototype.isConnectable = function(connectable)
Returns true if the connectionHandler is enabled.
mxGraphModel.prototype.isConnectable = function(cell)
Returns true if the given mxCell is connectable.
mxConnectionHandler.prototype.isConnectableCell = function(cell)
Returns true if the given cell is connectable.
mxEdgeHandler.prototype.isConnectableCell = function(cell)
Returns true if the given cell is connectable.
mxGraph.prototype.isConnectableEdges = function()
Returns connectableEdges as a boolean.
mxConnectionHandler.prototype.isConnecting = function()
Returns true if the source terminal has been clicked and a new connection is currently being previewed.
mxGraph.prototype.isConstrainChild = function(cell)
Returns true if the given cell should be kept inside the bounds of its parent according to the rules defined by getOverlap and isAllowOverlapParent.
mxGraph.prototype.isConstrainChildren = function()
Returns constrainChildren.
mxGraph.prototype.isConstrainedEvent = function(evt)
Returns true if the given mouse event should be aligned to the grid.
isConsumed: function(evt)
Returns true if the event has been consumed using consume.
mxEventObject.prototype.isConsumed = function()
Returns true if the event has been consumed.
mxMouseEvent.prototype.isConsumed = function()
Returns consumed.
mxGraphView.prototype.isContainerEvent = function(evt)
Returns true if the event origin is one of the drawing panes or containers of the view.
isControlDown: function(evt)
Returns true if the control key is pressed for the given event.
mxKeyHandler.prototype.isControlDown = function(evt)
Returns true if the control key is pressed.
mxGraphModel.prototype.isCreateIds = function()
Returns createIds.
mxConnectionHandler.prototype.isCreateTarget = function()
Returns createTarget.
mxGraphHandler.prototype.isDelayedSelection = function(cell)
Hook to return true for delayed selections.
mxGraph.prototype.isDisconnectOnMove = function()
Returns disconnectOnMove as a boolean.
mxGraph.prototype.isDropEnabled = function()
Returns dropEnabled as a boolean.
mxCell.prototype.isEdge = function()
Returns true if the cell is an edge.
mxGraphAbstractHierarchyCell.prototype.isEdge = function()
Returns whether or not this cell is an edge
mxGraphHierarchyEdge.prototype.isEdge = function()
Returns true.
mxGraphModel.prototype.isEdge = function(cell)
Returns true if the given cell is an edge.
mxGraphLayout.prototype.isEdgeIgnored = function(edge)
Returns a boolean indicating if the given mxCell should be ignored by the algorithm.
mxGraph.prototype.isEdgeLabelsMovable = function()
Returns edgeLabelsMovable.
mxGraph.prototype.isEdgeValid = function(edge,
source,
target)
Checks if the return value of getEdgeValidationError for the given arguments is null.
mxGraph.prototype.isEditing = function(cell)
Returns true if the given cell is currently being edited.
mxCellStatePreview.prototype.isEmpty = function()
Returns true if this contains no entries.
isEmpty: function()
Returns true if the clipboard currently has not data stored.
mxGraphSelectionModel.prototype.isEmpty = function()
Returns true if no cells are currently selected.
mxUndoableEdit.prototype.isEmpty = function()
Returns true if the this edit contains no changes.
mxUndoManager.prototype.isEmpty = function()
Returns true if the history is empty.
mxText.prototype.isEmptyString = function(text)
Returns true if the given string is empty or contains only whitespace.
mxAutoSaveManager.prototype.isEnabled = function()
Returns true if events are handled.
mxCellMarker.prototype.isEnabled = function()
Returns true if events are handled.
mxConnectionHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxConstraintHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxDragSource.prototype.isEnabled = function()
Returns enabled.
mxGraph.prototype.isEnabled = function()
Returns true if the graph is enabled.
mxGraphHandler.prototype.isEnabled = function()
Returns enabled.
mxKeyHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxLayoutManager.prototype.isEnabled = function()
Returns true if events are handled.
mxOutline.prototype.isEnabled = function()
Returns true if events are handled.
mxPopupMenu.prototype.isEnabled = function()
Returns true if events are handled.
mxRubberband.prototype.isEnabled = function()
Returns true if events are handled.
mxSelectionCellsHandler.prototype.isEnabled = function()
Returns enabled.
mxSpaceManager.prototype.isEnabled = function()
Returns true if events are handled.
mxSwimlaneManager.prototype.isEnabled = function()
Returns true if events are handled.
mxTooltipHandler.prototype.isEnabled = function()
Returns true if events are handled.
isEnabled: function()
Returns enabled.
mxGuide.prototype.isEnabledForEvent = function(evt)
Returns true if the guide should be enabled for the given native event.
mxGraph.prototype.isEnterStopsCellEditing = function()
Returns enterStopsCellEditing.
mxGraph.prototype.isEscapeEnabled = function()
Returns escapeEnabled.
mxEventSource.prototype.isEventsEnabled = function()
Returns eventsEnabled.
codec.isExcluded = function(obj,
attr,
value,
isWrite)
Excludes user objects that are XML nodes.
mxObjectCodec.prototype.isExcluded = function(obj,
attr,
value,
write)
Returns true if the given attribute is to be ignored by the codec.
mxGraph.prototype.isExtendParent = function(cell)
Returns true if the parent of the given cell should be extended if the child has been resized so that it overlaps the parent.
mxGraph.prototype.isExtendParents = function()
Returns extendParents.
mxSpaceManager.prototype.isExtendParents = function()
Returns true if events are handled.
mxGraph.prototype.isExtendParentsOnAdd = function()
Returns extendParentsOnAdd.
isFoEnabled: function()
Returns foEnabled.
mxGraph.prototype.isForceMarqueeEvent = function(evt)
Returns true if the given event forces marquee selection.
mxKeyHandler.prototype.isGraphEvent = function(evt)
Returns true if the event should be processed by this handler, that is, if the event source is either the target, one of its direct children, a descendant of the mxGraph.container, or the mxGraph.cellEditor of the graph.
mxDragSource.prototype.isGridEnabled = function()
Returns gridEnabled.
mxGraph.prototype.isGridEnabled = function()
Returns gridEnabled as a boolean.
mxGraph.prototype.isGridEnabledEvent = function(evt)
Returns true if the given mouse event should be aligned to the grid.
mxDragSource.prototype.isGuidesEnabled = function()
Returns guidesEnabled.
mxEdgeHandler.prototype.isHandleEnabled = function(index)
Creates the shape used to display the given bend.
mxEdgeHandler.prototype.isHandleVisible = function(index)
Returns true if the handle at the given index is visible.
mxCellEditor.prototype.isHideLabel = function(state)
Returns true if the label should be hidden while the cell is being edited.
mxTooltipHandler.prototype.isHideOnHover = function()
Returns hideOnHover.
mxCompactTreeLayout.prototype.isHorizontal = function()
Returns horizontal.
mxPartitionLayout.prototype.isHorizontal = function()
Returns horizontal.
mxStackLayout.prototype.isHorizontal = function()
Returns horizontal.
mxSwimlaneManager.prototype.isHorizontal = function()
Returns horizontal.
mxCellMarker.prototype.isHotspotEnabled = function()
Returns true if hotspot is used in intersects.
mxGraph.prototype.isHtmlLabel = function(cell)
Returns true if the label must be rendered as HTML markup.
mxGraph.prototype.isHtmlLabels = function()
Returns htmlLabels.
mxConnectionHandler.prototype.isImmediateConnectSource = function(state)
Returns true if a tap on the given source state should immediately start connecting.
mxGraph.prototype.isInvokesStopCellEditing = function()
Returns invokesStopCellEditing.
mxGraph.prototype.isLabelClipped = function(cell)
Returns true if the overflow portion of labels should be hidden.
mxCellRenderer.prototype.isLabelEvent = function(state,
evt)
Returns true if the event is for the label of the given state.
mxGraph.prototype.isLabelMovable = function(cell)
Returns true if the given edges’s label is moveable.
mxGraphModel.prototype.isLayer = function(cell)
Returns true if isRoot returns true for the parent of the given cell.
isLeftMouseButton: function(evt)
Returns true if the left mouse button is pressed for the given event.
mxGraph.prototype.isLoop = function(state)
Returns true if the given cell state is a loop.
mxPopupMenu.prototype.isMenuShowing = function()
Returns true if the menu is showing.
isMetaDown: function(evt)
Returns true if the meta key is pressed for the given event.
mxShape.prototype.isMixedModeHtml = function()
Used to determine if a shape can be rendered using createHtml in mixed mode Html without compromising the display accuracy.
mxCellEditor.prototype.isModified = function()
Returns modified.
mxEditor.prototype.isModified = function ()
Returns modified.
mxGraphHandler.prototype.isMoveEnabled = function()
Returns moveEnabled.
mxConnectionHandler.prototype.isMoveIconToFrontForState = function(state)
Returns true if the state has a HTML label in the graph’s container, otherwise it returns moveIconFront.
mxGraph.prototype.isMultigraph = function()
Returns multigraph as a boolean.
isNode: function(value,
nodeName,
attributeName,
attributeValue)
Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.
isNumeric: function(str)
Returns true if the specified value is numeric, that is, if it is not null, not an empty string, not a HEX number and isNaN returns false.
mxGraph.prototype.isOrthogonal = function(edge)
Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.
mxPanningHandler.prototype.isPanningEnabled = function()
Returns panningEnabled.
mxPanningHandler.prototype.isPanningTrigger = function(me)
Returns true if the given event is a panning trigger for the optional given cell.
isPopupTrigger: function(evt)
Returns true if the event is a popup trigger.
mxMouseEvent.prototype.isPopupTrigger = function()
Returns true if the event is a popup trigger.
mxPopupMenu.prototype.isPopupTrigger = function(me)
Returns true if the given event is a popupmenu trigger for the optional given cell.
mxGraph.prototype.isPort = function(cell)
Returns true if the given cell is a “port”, that is, when connecting to it, the cell returned by getTerminalForPort should be used as the terminal and the port should be referenced by the ID in either the mxConstants.STYLE_SOURCE_PORT or the or the mxConstants.STYLE_TARGET_PORT.
mxGraph.prototype.isPortsEnabled = function()
Returns portsEnabled as a boolean.
mxEditor.prototype.isPropertiesVisible = function ()
Returns true if the properties dialog is currently visible.
mxXmlRequest.prototype.isReady = function()
Returns true if the response is ready.
codec.isReference = function(obj,
attr,
value,
isWrite)
Returns true for the child attribute if the child cell had a previous parent or if we’re reading the child as an attribute rather than a child node, in which case it’s always a reference.
mxObjectCodec.prototype.isReference = function(obj,
attr,
value,
write)
Returns true if the given fieldname is to be treated as a textual reference (ID).
mxGraphHandler.prototype.isRemoveCellsFromParent = function()
Returns removeCellsFromParent.
mxEdgeHandler.prototype.isRemovePointEvent = function(evt)
Returns true if the given event is a trigger to remove a point.
mxGraphView.prototype.isRendering = function()
Returns rendering.
mxWindow.prototype.isResizable = function()
Returns true if the window is resizable.
mxGraph.prototype.isResizeContainer = function()
Returns resizeContainer.
mxSwimlaneManager.prototype.isResizeEnabled = function()
Returns resizeEnabled.
isRightMouseButton: function(evt)
Returns true if the right mouse button was pressed.
mxGraphModel.prototype.isRoot = function(cell)
Returns true if the given cell is the root of the model and a non-null value.
mxGraphView.prototype.isScrollEvent = function(evt)
Returns true if the event origin is one of the scrollbars of the container in IE.
mxGraphSelectionModel.prototype.isSelected = function(cell)
Returns true if the given mxCell is selected.
mxGraphHandler.prototype.isSelectEnabled = function()
Returns selectEnabled.
mxEdgeHandler.prototype.isSelectionDashed = function()
Returns mxConstants.EDGE_SELECTION_DASHED.
mxVertexHandler.prototype.isSelectionDashed = function()
Returns mxConstants.VERTEX_SELECTION_DASHED.
mxGraph.prototype.isSelectionEmpty = function()
Returns true if the selection is empty.
mxCellRenderer.prototype.isShapeEvent = function(state,
evt)
Returns true if the event is for the shape of the given state.
isShiftDown: function(evt)
Returns true if the shift key is pressed for the given event.
mxSpaceManager.prototype.isShiftDownwards = function()
Returns true if events are handled.
mxSpaceManager.prototype.isShiftRightwards = function()
Returns true if events are handled.
mxUndoableEdit.prototype.isSignificant = function()
Returns significant.
mxGraphSelectionModel.prototype.isSingleSelection = function()
Returns singleSelection as a boolean.
mxVertexHandler.prototype.isSizerVisible = function(index)
Returns true if the sizer for the given index is visible.
mxMouseEvent.prototype.isSource = function(shape)
Returns true if the given mxShape is the source of evt.
mxGraph.prototype.isSplitEnabled = function()
Returns splitEnabled as a boolean.
mxGraph.prototype.isSplitTarget = function(target,
cells,
evt)
Returns true if the given edge may be splitted into two edges with the given cell as a new terminal between the two.
mxConnectionHandler.prototype.isStartEvent = function(me)
Returns true if the given mouse down event should start this handler.
mxConnectionHandler.prototype.isStopEvent = function(me)
Returns true if the given mouse up event should stop this handler.
mxText.prototype.isStyleSet = function(style)
Returns true if the given font style (bold, italic etc) is true in this shape’s fontStyle.
mxGraph.prototype.isSwimlane = function (cell)
Returns true if the given cell is a swimlane in the graph.
mxSwimlaneManager.prototype.isSwimlaneIgnored = function(swimlane)
Returns true if the given swimlane should be ignored.
mxGraph.prototype.isSwimlaneNesting = function()
Returns swimlaneNesting as a boolean.
mxGraph.prototype.isSwimlaneSelectionEnabled = function()
Returns swimlaneSelectionEnabled as a boolean.
mxGraph.prototype.isTerminalPointMovable = function(cell,
source)
Returns true if the given terminal point is movable.
isTextEnabled: function()
Returns textEnabled.
isTextEnabled: function()
Returns textEnabled.
mxGraph.prototype.isToggleEvent = function(evt)
Returns true if the given event is a toggle event.
mxGraph.prototype.isValidAncestor = function(cell,
parent,
recurse)
Returns whether or not the specified parent is a valid ancestor of the specified cell, either direct or indirectly based on whether ancestor recursion is enabled.
mxGraph.prototype.isValidConnection = function(source,
target)
Returns true if the given target cell is a valid target for source.
mxGraph.prototype.isValidDropTarget = function(cell,
cells,
evt)
Returns true if the given cell is a valid drop target for the specified cells.
mxSession.prototype.isValidResponse = function(req)
Returns true if the response data in the given mxXmlRequest is valid.
mxGraph.prototype.isValidRoot = function(cell)
Returns true if the given cell is a valid root for the cell display hierarchy.
mxConnectionHandler.prototype.isValidSource = function(cell)
Returns mxGraph.isValidSource for the given source terminal.
mxGraph.prototype.isValidSource = function(cell)
Returns true if the given cell is a valid source for new connections.
mxCellMarker.prototype.isValidState = function(state)
Returns true if the given mxCellState is a valid state.
mxConnectionHandler.prototype.isValidTarget = function(cell)
Returns true.
mxGraph.prototype.isValidTarget = function(cell)
Returns isValidSource for the given cell.
mxCell.prototype.isVertex = function()
Returns true if the cell is a vertex.
mxGraphAbstractHierarchyCell.prototype.isVertex = function()
Returns whether or not this cell is a node
mxGraphHierarchyNode.prototype.isVertex = function()
Returns true.
mxGraphModel.prototype.isVertex = function(cell)
Returns true if the given cell is a vertex.
mxCompactTreeLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored as a vertex.
mxFastOrganicLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored as a vertex.
mxGraphLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored by the algorithm.
mxGraph.prototype.isVertexLabelsMovable = function()
Returns vertexLabelsMovable.
mxGraphLayout.prototype.isVertexMovable = function(cell)
Returns a boolean indicating if the given mxCell is movable or bendable by the algorithm.
mxCell.prototype.isVisible = function()
Returns true if the cell is visibile.
mxGraphModel.prototype.isVisible = function(cell)
Returns true if the given mxCell is visible.
isVisible: function()
Returns true if the console is visible.
mxWindow.prototype.isVisible = function()
Returns true if the window is visible.
mxPath.prototype.isVml = function()
Returns true if format is vml.
isVml: function(node)
Returns true if the given node is in the VML namespace.
mxGraph.prototype.isWrapping = function(cell)
This enables wrapping for HTML labels.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General.html b/docs/js-api/index/General.html new file mode 100644 index 000000000..6f1de19dc --- /dev/null +++ b/docs/js-api/index/General.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
A
 absoluteOffset, mxCellState
 absolutePoints, mxCellState
 actions, mxEditor
 Actions and Options, mxEditor
 activate, mxWindow
 ACTIVATE, mxEvent
 add
 ADD
 ADD_CELLS
 ADD_OVERLAY
 ADD_VERTEX
 addAction
 addActionCombo, mxDefaultToolbar
 addActionOption, mxDefaultToolbar
 addActions, mxEditor
 addAlias, mxCodecRegistry
 addAllEdges, mxGraph
 addBreak, mxToolbar
 addButton, mxLog
 addButtons, mxForm
 addCell
 addCellOverlay, mxGraph
 addCells
 addCheckbox, mxForm
 addCombo
 addEdge, mxGraph
 addEdges, mxCellStatePreview
 addEnabled
 addField, mxForm
 addImageBundle, mxGraph
 addItem
 addItems, mxDefaultPopupMenu
 addLine, mxToolbar
 addListener
 addMode
 addMouseListener, mxGraph
 addObjectValue, mxObjectCodec
 addOption
 addPath, mxPath
 addPipe, mxArrow
 addPoint, mxEdgeHandler
 addPrototype, mxDefaultToolbar
 addSelectionCell, mxGraph
 addSelectionCells, mxGraph
 addSeparator
 addStencil, mxStencilRegistry
 addStylename, mxUtils
 addSwitchMode, mxToolbar
 addTemplate, mxEditor
 addText, mxForm
 addTextarea, mxForm
 addVertex, mxEditor
 addWaypoint, mxConnectionHandler
 adjustParents, mxCompactTreeLayout
 AFTER_ADD_VERTEX
 afterDecode
 afterEncode
 alert, mxUtils
 aliases, mxCodecRegistry
 align, mxCellOverlay
 ALIGN_BOTTOM, mxConstants
 ALIGN_CELLS
 ALIGN_CENTER, mxConstants
 ALIGN_LEFT, mxConstants
 ALIGN_MIDDLE, mxConstants
 ALIGN_RIGHT, mxConstants
 ALIGN_TOP, mxConstants
 alignCells, mxGraph
 allowAutoPanning, mxGraph
 allowCrispMarkers, mxConnector
 allowDanglingEdges, mxGraph
 allowedToRun, mxFastOrganicLayout
 allowEval, mxGraphView
 allowHandleBoundsCheck
 allowLoops, mxGraph
 allowNegativeCoordinates, mxGraph
 alreadyConnectedResource, mxGraph
 alt, mxImageBundle
 alternateBounds, mxGeometry
 alternateEdgeStyle, mxGraph
 animateCell, mxMorphing
 animateChanges
 API Specification
 apply
 arcToCurves, mxUtils
 ARROW_BLOCK, mxConstants
 ARROW_CLASSIC, mxConstants
 ARROW_DIAMOND, mxConstants
 ARROW_OPEN, mxConstants
 ARROW_OVAL, mxConstants
 ARROW_SIZE, mxConstants
 ARROW_SPACING, mxConstants
 ARROW_WIDTH, mxConstants
 askZoomResource, mxEditor
 aspect, mxStencil
 async, mxXmlRequest
 attachParent, mxCompactTreeLayout
 attr, mxMultiplicity
 Attribute Cycling, mxEditor
 autoAntiAlias, mxSvgCanvas2D
 autoExpand, mxPopupMenu
 autoExtend, mxGraph
 Autolayout, mxEditor
 autoOrigin, mxPrintPreview
 autoSaveDelay, mxAutoSaveManager
 autoSaveThreshold, mxAutoSaveManager
 autoSaveThrottle, mxAutoSaveManager
 autoscroll, mxDragSource
 autoScroll, mxGraph
 autoSizeCells, mxGraph
 avoid, mxEdgeLabelLayout
+ +
mxCellState.prototype.absoluteOffset
mxPoint that holds the absolute offset.
mxCellState.prototype.absolutePoints
Holds an array of mxPoints that represent the absolute points of an edge.
mxEditor.prototype.actions
Maps from actionnames to actions, which are functions taking the editor and the cell as arguments.
mxWindow.prototype.activate = function()
Puts the window on top of all other windows.
Specifies the event name for activate.
mxGraphModel.prototype.add = function(parent,
child,
index)
Adds the specified child to the parent at the given index using mxChildChange and adds the change to the current transaction.
mxRectangle.prototype.add = function(rect)
Adds the given rectangle to this rectangle.
add: function(basename,
lan)
Adds the default and current language properties file for the specified basename.
mxUndoableEdit.prototype.add = function(change)
Adds the specified change to this edit.
Specifies the event name for add.
Fires after an undoable edit was added to the history.
Specifies the event name for addCells.
Fires between begin- and endUpdate in addCells.
Specifies the event name for addOverlay.
Fires after an overlay is added in addCellOverlay.
Fires between begin- and endUpdate in addVertex.
Specifies the event name for addVertex.
mxDefaultPopupMenu.prototype.addAction = function(menu,
editor,
lab,
icon,
funct,
action,
cell,
parent,
iconCls)
Helper method to bind an action to a new menu item.
mxEditor.prototype.addAction = function (actionname,
funct)
Binds the specified actionname to the specified function.
mxDefaultToolbar.prototype.addActionCombo = function(title)
Helper method to invoke mxToolbar.addActionCombo on toolbar using the given title and return the resulting DOM node.
mxDefaultToolbar.prototype.addActionOption = function(combo,
title,
action)
Binds the given action to a option with the specified label in the given combo.
mxEditor.prototype.addActions = function ()
Adds the built-in actions to the editor instance.
addAlias: function(classname,
codecname)
Adds an alias for mapping a classname to a codecname.
mxGraph.prototype.addAllEdges = function(cells)
Returns an array with the given cells and all edges that are connected to a cell or one of its descendants.
mxToolbar.prototype.addBreak = function()
Adds a break to the container.
addButton: function(lab,
funct)
Adds a button to the console using the given label and function.
mxForm.prototype.addButtons = function(okFunct,
cancelFunct)
Helper method to add an OK and Cancel button using the respective functions.
mxGraph.prototype.addCell = function(cell,
parent,
index,
source,
target)
Adds the cell to the parent and connects it to the given source and target terminals.
mxGraphSelectionModel.prototype.addCell = function(cell)
Adds the given mxCell to the selection and fires a select event.
mxGraph.prototype.addCellOverlay = function(cell,
overlay)
Adds an mxCellOverlay for the specified cell.
mxGraph.prototype.addCells = function(cells,
parent,
index,
source,
target)
Adds the cells to the parent at the given index, connecting each cell to the optional source and target terminal.
mxGraphSelectionModel.prototype.addCells = function(cells)
Adds the given array of mxCells to the selection and fires a select event.
mxForm.prototype.addCheckbox = function(name,
value)
Adds a checkbox for the given name and value and returns the textfield.
mxDefaultToolbar.prototype.addCombo = function()
Helper method to invoke mxToolbar.addCombo on toolbar and return the resulting DOM node.
mxForm.prototype.addCombo = function(name,
isMultiSelect,
size)
Adds a combo for the given name and returns the combo.
mxToolbar.prototype.addCombo = function(style)
Adds and returns a new SELECT element using the given style.
mxGraph.prototype.addEdge = function(edge,
parent,
source,
target,
index)
Adds the edge to the parent and connects it to the given source and target terminals.
mxCellStatePreview.prototype.addEdges = function(state)
mxEdgeHandler.prototype.addEnabled
Specifies if adding bends by shift-click is enabled.
mxSwimlaneManager.prototype.addEnabled
Specifies if newly added cells should be resized to match the size of their existing siblings.
mxForm.prototype.addField = function(name,
input)
Adds a new row with the name and the input field in two columns and returns the given input.
mxGraph.prototype.addImageBundle = function(bundle)
Adds the specified mxImageBundle.
mxDefaultToolbar.prototype.addItem = function(title,
icon,
action,
pressed)
Adds a new item that executes the given action in editor.
mxPopupMenu.prototype.addItem = function(title,
image,
funct,
parent,
iconCls,
enabled)
Adds the given item to the given parent item.
mxToolbar.prototype.addItem = function(title,
icon,
funct,
pressedIcon,
style,
factoryMethod)
Adds the given function as an image with the specified title and icon and returns the new image node.
mxDefaultPopupMenu.prototype.addItems = function(editor,
menu,
cell,
evt,
conditions,
item,
parent)
Recursively adds the given items and all of its children into the given menu.
mxToolbar.prototype.addLine = function()
Adds a horizontal line to the container.
addListener: function()
Binds the function to the specified event on the given element.
mxEventSource.prototype.addListener = function(name,
funct)
Binds the specified function to the given event name.
mxDefaultToolbar.prototype.addMode = function(title,
icon,
mode,
pressed,
funct)
Creates an item for selecting the given mode in the editor’s graph.
mxToolbar.prototype.addMode = function(title,
icon,
funct,
pressedIcon,
style,
toggle)
Adds a new item to the toolbar.
mxGraph.prototype.addMouseListener = function(listener)
Adds a listener to the graph event dispatch loop.
mxObjectCodec.prototype.addObjectValue = function(obj,
fieldname,
value,
template)
Sets the decoded child node as a value of the given object.
mxDefaultToolbar.prototype.addOption = function(combo,
title,
value)
Helper method to invoke mxToolbar.addOption on toolbar and return the resulting DOM node that represents the option.
mxForm.prototype.addOption = function(combo,
label,
value,
isSelected)
Adds an option for the given label to the specified combo.
mxToolbar.prototype.addOption = function(combo,
title,
value)
Adds and returns a new OPTION element inside the given SELECT element.
mxPath.prototype.addPath = function(path)
Adds the given path.
mxArrow.prototype.addPipe
Specifies if a SVG path should be created around any path to increase the tolerance for mouse events.
mxEdgeHandler.prototype.addPoint = function(state,
evt)
Adds a control point for the given state and event.
mxDefaultToolbar.prototype.addPrototype = function(title,
icon,
ptype,
pressed,
insert,
toggle)
Creates an item for inserting a clone of the specified prototype cell into the editor’s graph.
mxGraph.prototype.addSelectionCell = function(cell)
Adds the given cell to the selection.
mxGraph.prototype.addSelectionCells = function(cells)
Adds the given cells to the selection.
mxDefaultToolbar.prototype.addSeparator = function(icon)
Adds a vertical separator using the optional icon.
mxPopupMenu.prototype.addSeparator = function(parent,
force)
Adds a horizontal separator in the given parent item or the top-level menu if no parent is specified.
mxToolbar.prototype.addSeparator = function(icon)
Adds the specifies image as a separator.
addStencil: function(name,
stencil)
Adds the given mxStencil.
addStylename: function(style,
stylename)
Adds the specified stylename to the given style if it does not already contain the stylename.
mxToolbar.prototype.addSwitchMode = function(title,
icon,
funct,
pressedIcon,
style)
Adds a new selectable item to the toolbar.
mxEditor.prototype.addTemplate = function (name,
template)
Adds the specified template under the given name in templates.
mxForm.prototype.addText = function(name,
value)
Adds a textfield for the given name and value and returns the textfield.
mxForm.prototype.addTextarea = function(name,
value,
rows)
Adds a textarea for the given name and value and returns the textarea.
mxEditor.prototype.addVertex = function (parent,
vertex,
x,
y)
Adds the given vertex as a child of parent at the specified x and y coordinate and fires an addVertex event.
mxConnectionHandler.prototype.addWaypointForEvent = function(me)
Adds the waypoint for the given event to waypoints.
mxCompactTreeLayout.prototype.adjustParents = function()
Fires after a vertex was inserted and selected in addVertex.
Specifies the event name for afterAddVertex.
codec.afterDecode = function(dec,
node,
obj)
Restores object state in the child change.
codec.afterDecode = function(dec,
node,
obj)
Restores the state by assigning the previous value.
mxObjectCodec.prototype.afterDecode = function(dec,
node,
obj)
Hook for subclassers to post-process the object after decoding.
codec.afterDecode = function(dec,
node,
obj)
Restores the state by assigning the previous value.
codec.afterDecode = function(dec,
node,
obj)
Restores the state by assigning the previous value.
codec.afterEncode = function(enc,
obj,
node)
Encodes an mxCell and wraps the XML up inside the XML of the user object (inversion).
codec.afterEncode = function(enc,
obj,
node)
Encodes the child recusively and adds the result to the given node.
mxObjectCodec.prototype.afterEncode = function(enc,
obj,
node)
Hook for subclassers to post-process the node for the given object after encoding and return the post-processed node.
alert: function(message)
Displayss the given alert in a new dialog.
Maps from classnames to codecnames.
mxCellOverlay.prototype.align
Holds the horizontal alignment for the overlay.
Constant for bottom vertical alignment.
Specifies the event name for alignCells.
Fires between begin- and endUpdate in alignCells.
Constant for center horizontal alignment.
Constant for left horizontal alignment.
Constant for middle vertical alignment.
Constant for right horizontal alignment.
Constant for top vertical alignment.
mxGraph.prototype.alignCells = function(align,
cells,
param)
Aligns the given cells vertically or horizontally according to the given alignment using the optional parameter as the coordinate.
mxGraph.prototype.allowAutoPanning
Specifies if panning via panGraph should be allowed to implement autoscroll if no scrollbars are available in scrollPointToVisible.
mxConnector.prototype.allowCrispMarkers
Specifies if mxShape.crisp should be allowed for markers.
mxGraph.prototype.allowDanglingEdges
Specifies if edges with disconnected terminals are allowed in the graph.
mxFastOrganicLayout.prototype.allowedToRun
Boolean flag that specifies if the layout is allowed to run.
mxGraphView.prototype.allowEval
Specifies if string values in cell styles should be evaluated using mxUtils.eval.
mxEdgeHandler.prototype.allowHandleBoundsCheck
Specifies if the bounds of handles should be used for hit-detection in IE Default is true.
mxVertexHandler.prototype.allowHandleBoundsCheck
Specifies if the bounds of handles should be used for hit-detection in IE Default is true.
mxGraph.prototype.allowLoops
Specifies if loops (aka self-references) are allowed.
mxGraph.prototype.allowNegativeCoordinates
Specifies if negative coordinates for vertices are allowed.
mxGraph.prototype.alreadyConnectedResource
Specifies the resource key for the error message to be displayed in non-multigraphs when two vertices are already connected.
Specifies if the fallback representation should be returned.
mxGeometry.prototype.alternateBounds
Stores alternate values for x, y, width and height in a rectangle.
mxGraph.prototype.alternateEdgeStyle
Specifies the alternate edge style to be used if the main control point on an edge is being doubleclicked.
mxMorphing.prototype.animateCell = function(cell,
move,
recurse)
Animates the given cell state using mxCellStatePreview.moveState.
animateChanges: function(graph,
changes,
done)
Asynchronous animated move operation.
animateChanges: function(graph,
changes)
See mxEffects.animateChanges.
This JavaScript library is divided into 8 packages.
mxCompactTreeLayout.prototype.apply = function(node,
bounds)
mxImageShape.prototype.apply = function(state)
Overrides mxShape.apply to replace the fill and stroke colors with the respective values from mxConstants.STYLE_IMAGE_BACKGROUND and mxConstants.STYLE_IMAGE_BORDER.
mxShape.prototype.apply = function(state)
Applies the style of the given mxCellState to the shape.
mxStencilShape.prototype.apply = function(state)
Extends mxShape apply to keep a reference to the mxCellState.
arcToCurves: function(x0,
y0,
r1,
r2,
angle,
largeArcFlag,
sweepFlag,
x,
y)
Converts the given arc to a series of curves.
Constant for block arrow markers.
Constant for classic arrow markers.
Constant for diamond arrow markers.
Constant for open arrow markers.
Constant for oval arrow markers.
Defines the size of the arrowhead in the arrow shape.
Defines the spacing between the arrow shape and its terminals.
Defines the width of the arrow shape.
mxEditor.prototype.askZoomResource
Specifies the resource key for the zoom dialog.
mxStencil.prototype.aspect
Holds the aspect of the shape.
mxXmlRequest.prototype.async
Boolean indicating if the request is asynchronous.
mxCompactTreeLayout.prototype.attachParent = function(node,
height)
mxMultiplicity.prototype.attr
Optional string that specifies the attributename to be passed to mxUtils.isNode to check if the rule applies to a cell.
var autoAntiAlias
Specifies if anti aliasing should be disabled for rectangles and orthogonal paths.
mxPopupMenu.prototype.autoExpand
Specifies if submenus should be expanded on mouseover.
mxGraph.prototype.autoExtend
Specifies if the size of the graph should be automatically extended if the mouse goes near the container edge while dragging.
mxPrintPreview.prototype.autoOrigin
Specifies if the origin should be automatically computed based on the top, left corner of the actual diagram contents.
mxAutoSaveManager.prototype.autoSaveDelay
Minimum amount of seconds between two consecutive autosaves.
mxAutoSaveManager.prototype.autoSaveThreshold
Minimum amount of ignored changes before an autosave.
mxAutoSaveManager.prototype.autoSaveThrottle
Minimum amount of seconds between two consecutive autosaves triggered by more than autoSaveThreshhold changes within a timespan of less than autoSaveDelay seconds.
mxDragSource.prototype.autoscroll
Specifies if the graph should scroll automatically.
mxGraph.prototype.autoScroll
Specifies if the graph should automatically scroll if the mouse goes near the container edge while dragging.
mxGraph.prototype.autoSizeCells
Specifies if the graph should automatically update the cell size after an edit.
mxEdgeLabelLayout.prototype.avoid = function(edge,
vertex)
Places the labels of the given edges.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General10.html b/docs/js-api/index/General10.html new file mode 100644 index 000000000..12a41d6ae --- /dev/null +++ b/docs/js-api/index/General10.html @@ -0,0 +1,42 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
J
 jettyPositions, mxCoordinateAssignment
 join, mxCompactTreeLayout
K
 keepEdgesInBackground, mxGraph
 keepEdgesInForeground, mxGraph
 keepFirstLocation, mxStackLayout
 keepOnTop, mxCellHighlight
 keepSelectionVisibleOnZoom, mxGraph
 keyDown, mxKeyHandler
 keyHandler, mxEditor
L
 label, mxShape
 LABEL_CHANGED
 LABEL_HANDLE, mxEvent
 LABEL_HANDLE_FILLCOLOR, mxConstants
 LABEL_HANDLE_SIZE, mxConstants
 labelChanged, mxGraph
 labels, mxPopupMenu
 labelShape, mxEdgeHandler
 labelsVisible, mxGraph
 language, mxClient
 languages, mxClient
 lastSavedResource, mxEditor
 lastSnapshot, mxAutoSaveManager
 lastTouchTime, mxGraph
 lastTouchX, mxGraph
 layeringStage, mxHierarchicalLayout
 layout
 LAYOUT_CELLS
 layoutCells, mxLayoutManager
 layoutDiagram, mxEditor
 layoutFromSinks, mxHierarchicalLayout
 layoutLeaf, mxCompactTreeLayout
 layouts, mxCompositeLayout
 layoutSwimlanes, mxEditor
 leave, mxLog
 length, mxCellState
 levelDistance, mxCompactTreeLayout
 limitX, mxCoordinateAssignment
 LINE_ARCSIZE, mxConstants
 linefeed, mxSession
 lineFeed, mxEditor
 lineTo
 link
 linkAction, mxUtils
 linkInvoke, mxUtils
 load, mxUtils
 loadDefaultBundle, mxResources
 loadInto, mxUtils
 localEdgeProcessing
 LOCKED_HANDLE_FILLCOLOR, mxConstants
 lookup, mxCodec
 Loop, mxEdgeStyle
 ltrim, mxUtils
+ +
mxCoordinateAssignment.prototype.jettyPositions
Map of internal edges and (x,y) pair of positions of the start and end jetty for that edge where it connects to the source and target vertices.
mxCompactTreeLayout.prototype.join = function(node)
+ + + +
mxGraph.prototype.keepEdgesInBackground
Specifies if edges should appear in the background regardless of their order in the model.
mxGraph.prototype.keepEdgesInForeground
Specifies if edges should appear in the foreground regardless of their order in the model.
mxStackLayout.prototype.keepFirstLocation
Boolean indicating if the location of the first cell should be kept, that is, it will not be moved to x0 or y0.
mxCellHighlight.prototype.keepOnTop
Specifies if the highlights should appear on top of everything else in the overlay pane.
mxGraph.prototype.keepSelectionVisibleOnZoom
Specifies if the viewport should automatically contain the selection cells after a zoom operation.
mxKeyHandler.prototype.keyDown = function(evt)
Handles the event by invoking the function bound to the respective keystroke if mxGraph.isEnabled, isEnabled and isGraphEvent all return true for the given event and mxGraph.isEditing returns false.
mxEditor.prototype.keyHandler
Holds a mxDefaultKeyHandler for handling keyboard events.
+ + + +
mxShape.prototype.label
Reference to the DOM node that should contain the label.
Specifies the event name for labelChanged.
Fires between begin- and endUpdate in cellLabelChanged.
Index for the label handle in an mxMouseEvent.
Defines the color to be used for the label handle fill color.
Defines the default size for label handles.
mxGraph.prototype.labelChanged = function(cell,
value,
evt)
Sets the label of the specified cell to the given value using cellLabelChanged and fires mxEvent.LABEL_CHANGED while the transaction is in progress.
mxPopupMenu.prototype.labels
Specifies if any labels should be visible.
mxEdgeHandler.prototype.labelShape
Holds the mxShape that represents the label position.
mxGraph.prototype.labelsVisible
Specifies if labels should be visible.
Defines the language of the client, eg.
Defines the optional array of all supported language extensions.
mxEditor.prototype.lastSavedResource
Specifies the resource key for the last saved info.
mxAutoSaveManager.prototype.lastSnapshot
Used for autosaving.
mxGraph.prototype.lastTouchTime
Holds the time of the last touch event for double click detection.
Holds the x-coordinate of the last touch event for double tap detection.
mxHierarchicalLayout.prototype.layeringStage = function()
Implements first stage of a Sugiyama layout.
mxCompactTreeLayout.prototype.layout = function(node)
Starts the actual compact tree layout algorithm at the given node.
mxCoordinateAssignment.prototype.layout
Reference to the enclosing mxHierarchicalLayout.
mxMedianHybridCrossingReduction.prototype.layout
Reference to the enclosing mxHierarchicalLayout.
mxMinimumCycleRemover.prototype.layout
Reference to the enclosing mxHierarchicalLayout.
mxParallelEdgeLayout.prototype.layout = function(parallels)
Lays out the parallel edges in the given array.
Specifies the event name for layoutCells.
Fires between begin- and endUpdate after all cells have been layouted in layoutCells.
mxLayoutManager.prototype.layoutCells = function(cells)
Executes all layouts which have been scheduled during the changes.
mxEditor.prototype.layoutDiagram
Specifies if the top-level elements in the diagram should be layed out using a vertical or horizontal stack depending on the setting of horizontalFlow.
mxHierarchicalLayout.prototype.layoutFromSinks
Whether or not the initial scan of the graph to determine the layer assigned to each vertex starts from the sinks or source (the sinks being vertices with the fewest, preferable zero, outgoing edges and sources same with incoming edges).
mxCompactTreeLayout.prototype.layoutLeaf = function(node)
mxCompositeLayout.prototype.layouts
Holds the array of mxGraphLayouts that this layout contains.
mxEditor.prototype.layoutSwimlanes
Specifies if the children of swimlanes should be layed out, either vertically or horizontally depending on horizontalFlow.
leave: function(string,
t0)
Writes the specified string to the console if TRACE is true and computes the difference between the current time and t0 in milliseconds.
mxCellState.prototype.length
Caches the length of an edge.
mxCompactTreeLayout.prototype.levelDistance
Holds the levelDistance.
mxCoordinateAssignment.prototype.limitX
The maximum x value this positioning lays up to
Defines the size of the arcs for rounded edges.
mxSession.prototype.linefeed
Used for encoding linefeeds.
Character to be used for encoding linefeeds in save.
mxPath.prototype.lineTo = function(x,
y)
Draws a straight line from the current poin to (x, y).
lineTo: function(x,
y)
Adds a line to the current path.
lineTo: function(x,
y)
Adds a line to the current path.
link: function(rel,
href,
doc)
Adds a link node to the head of the document.
link: function(parent,
text,
funct,
pad)
Adds a hyperlink to the specified parent and invokes the given function when the link is clicked.
linkAction: function(parent,
text,
editor,
action,
pad)
Adds a hyperlink to the specified parent that invokes action on the specified editor.
linkInvoke: function(parent,
text,
editor,
functName,
arg,
pad)
Adds a hyperlink to the specified parent that invokes the specified function on the editor passing along the specified argument.
load: function(url)
Loads the specified URL synchronously and returns the mxXmlRequest.
Specifies if the default file for a given basename should be loaded.
loadInto: function(url,
doc,
onload)
Loads the specified URL asynchronously into the specified document, invoking onload after the document has been loaded.
mxCompactTreeLayout.prototype.localEdgeProcessing = function(node)
Moves the specified node and all of its children by the given amount.
mxCoordinateAssignment.prototype.localEdgeProcessing = function(model)
Separates the x position of edges as they connect to vertices
Defines the color to be used for the locked handle fill color.
mxCodec.prototype.lookup = function(id)
Hook for subclassers to implement a custom lookup mechanism for cell IDs.
Loop: function (state,
source,
target,
points,
result)
Implements a self-reference, aka.
ltrim: function(str,
chars)
Strips all whitespaces from the beginning of the string.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General11.html b/docs/js-api/index/General11.html new file mode 100644 index 000000000..d845b2e14 --- /dev/null +++ b/docs/js-api/index/General11.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
M
 maintainEdgeParent, mxGraphModel
 maintainSwimlanes, mxEditor
 makeDraggable, mxUtils
 map, mxDictionary
 mapping, mxObjectCodec
 mark
 MARK
 markCell, mxCellMarker
 markedState, mxCellMarker
 marker
 markers
 max, mxMultiplicity
 MAX_HOTSPOT_SIZE, mxConstants
 maxCells, mxGraphHandler
 maxFitScale, mxGraph
 maxHandlers, mxSelectionCellsHandler
 maxHeight, mxCylinder
 MAXIMIZE, mxEvent
 maximizeImage, mxWindow
 maximumContainerSize, mxGraph
 maximumGraphBounds, mxGraph
 maxIterations
 maxNoImprovementIterations, mxMedianHybridCrossingReduction
 maxRank
 MedianCellSorter
 medianPos, mxCoordinateAssignment
 medianRank, mxMedianHybridCrossingReduction
 medianValue
 medianXValue, mxCoordinateAssignment
 merge, mxCompactTreeLayout
 mergeChildren, mxGraphModel
 method, mxXmlRequest
 min, mxMultiplicity
 MIN_HOTSPOT_SIZE, mxConstants
 minDistanceLimit, mxFastOrganicLayout
 minDistanceLimitSquared, mxFastOrganicLayout
 minEdgeJetty
 minFitScale, mxGraph
 MINIMIZE, mxEvent
 minimizeImage, mxWindow
 minimumContainerSize, mxGraph
 minimumGraphSize, mxGraph
 minimumSize
 minNode, mxCoordinateAssignment
 minPageBreakDist, mxGraph
 minPath, mxCoordinateAssignment
 minRank, mxGraphAbstractHierarchyCell
 mixedModeHtml
 mod, mxUtils
 model
 modified
 MOUSE_DOWN, mxEvent
 MOUSE_MOVE, mxEvent
 MOUSE_UP, mxEvent
 mouseDown
 mouseDownCounter, mxConnectionHandler
 mouseListeners, mxGraph
 mouseMove
 mouseUp
 move, mxGuide
 MOVE, mxEvent
 MOVE_CELLS
 MOVE_END, mxEvent
 MOVE_START, mxEvent
 moveCell
 moveCells
 moveCircle, mxCircleLayout
 moveEnabled, mxGraphHandler
 moveHandler
 moveIconBack, mxConnectionHandler
 moveIconFront, mxConnectionHandler
 moveLabel, mxEdgeHandler
 moveNode, mxCompactTreeLayout
 moveParent, mxHierarchicalLayout
 movePreviewAway, mxConnectionHandler
 movePropertiesDialog, mxEditor
 moveState, mxCellStatePreview
 moveTo
 moveTree, mxCompactTreeLayout
 multigraph, mxGraph
 multiplicities, mxGraph
 mxActor
 mxAnimation
 mxArrow
 mxAutoSaveManager
 mxCell
 mxCellAttributeChange
 mxCellCodec
 mxCellEditor
 mxCellHighlight
 mxCellMarker
 mxCellOverlay
 mxCellPath
 mxCellRenderer
 mxCellState
 mxCellStatePreview
 mxCellTracker
 mxChildChange
 mxChildChangeCodec
 mxCircleLayout
 mxClient
 mxClipboard
 mxCloud
 mxCodec
 mxCodecRegistry
 mxCollapseChange
 mxCompactTreeLayout
 mxCompositeLayout
 mxConnectionConstraint
 mxConnectionHandler
 mxConnector
 mxConstants
 mxConstraintHandler
 mxCoordinateAssignment
 mxCurrentRootChange
 mxCylinder
 mxDefaultKeyHandler
 mxDefaultKeyHandlerCodec
 mxDefaultPopupMenu
 mxDefaultPopupMenuCodec
 mxDefaultToolbar
 mxDefaultToolbarCodec
 mxDictionary
 mxDivResizer
 mxDoubleEllipse
 mxDragSource
 mxEdgeHandler
 mxEdgeLabelLayout
 mxEdgeSegmentHandler.js
 mxEdgeStyle
 mxEditor
 mxEditorCodec
 mxEffects
 mxElbowEdgeHandler
 mxEllipse
 mxEvent
 mxEventObject
 mxEventSource
 mxFastOrganicLayout
 mxForm
 mxGenericChangeCodec
 mxGeometry
 mxGeometryChange
 mxGraph
 mxgraph=seen
 mxGraphAbstractHierarchyCell
 mxGraphCodec
 mxGraphHandler
 mxGraphHierarchyEdge
 mxGraphHierarchyModel
 mxGraphHierarchyNode
 mxGraphLayout
 mxGraphModel
 mxGraphSelectionModel
 mxGraphView
 mxGraphViewCodec
 mxGuide
 mxHexagon
 mxHierarchicalLayout
 mxHierarchicalLayoutStage
 mxImage
 mxImageBundle
 mxImageExport
 mxImageShape
 mxKeyHandler
 mxLabel
 mxLayoutManager
 mxLine
 mxLoadResources, mxClient
 mxLoadStylesheets, mxClient
 mxLog
 mxMarker
 mxMedianHybridCrossingReduction
 mxMinimumCycleRemover
 mxModelCodec
 mxMorphing
 mxMouseEvent
 mxMultiplicity
 mxObjectCodec
 mxObjectIdentity
 mxOutline
 mxPanningHandler
 mxPanningManager
 mxParallelEdgeLayout
 mxPartitionLayout
 mxPath
 mxPerimeter
 mxPoint
 mxPolyline
 mxPopupMenu
 mxPrintPreview
 mxRectangle
 mxRectangleShape
 mxResources
 mxRhombus
 mxRootChange
 mxRootChangeCodec
 mxRubberband
 mxSelectionCellsHandler
 mxSelectionChange
 mxSession
 mxShape
 mxSpaceManager
 mxStackLayout
 mxStencil
 mxStencilRegistry
 mxStencilShape
 mxStyleChange
 mxStyleRegistry
 mxStylesheet
 mxStylesheetCodec
 mxSvgCanvas2D
 mxSwimlane
 mxSwimlaneManager
 mxTemporaryCellStates
 mxTerminalChange
 mxTerminalChangeCodec
 mxText
 mxToolbar
 mxTooltipHandler
 mxTransient, mxCell
 mxTriangle
 mxUndoableEdit
 mxUndoManager
 mxUrlConverter
 mxUtils
 mxValueChange
 mxVertexHandler
 mxVisibleChange
 mxWindow
 mxXmlCanvas2D
 mxXmlRequest
+ +
mxGraphModel.prototype.maintainEdgeParent
Specifies if edges should automatically be moved into the nearest common ancestor of their terminals.
mxEditor.prototype.maintainSwimlanes
Specifies if the swimlanes should be kept at the same width or height depending on the setting of horizontalFlow.
makeDraggable: function(element,
graphF,
funct,
dragElement,
dx,
dy,
autoscroll,
scalePreview,
highlightDropTargets,
getDropTarget)
Configures the given DOM element to act as a drag source for the specified graph.
Stores the (key, value) pairs in this dictionary.
mxObjectCodec.prototype.mapping
Maps from from fieldnames to XML attribute names.
Marks the markedState and fires a mark event.
mxCellMarker.prototype.mark = function()
Marks the markedState and fires a mark event.
Fires after a cell has been marked or unmarked.
Specifies the event name for mark.
mxCellMarker.prototype.markCell = function(cell,
color)
Marks the given cell using the given color, or validColor if no color is specified.
mxCellMarker.prototype.markedState
Holds the marked mxCellState.
mxConnectionHandler.prototype.marker
Holds the mxTerminalMarker used for finding source and target cells.
mxEdgeHandler.prototype.marker
Holds the mxTerminalMarker which is used for highlighting terminals.
mxImageExport.prototype.markers
Holds implementations for the built-in markers.
Maps from markers names to functions to paint the markers.
mxMultiplicity.prototype.max
Defines the maximum number of connections for which this rule applies.
Defines the maximum size in pixels of the portion of the cell which is to be used as a connectable region.
mxGraphHandler.prototype.maxCells
Defines the maximum number of cells to paint subhandles for.
mxGraph.prototype.maxFitScale
Specifies the maximum scale to be applied in fit.
mxSelectionCellsHandler.prototype.maxHandlers
Defines the maximum number of handlers to paint individually.
mxCylinder.prototype.maxHeight
Defines the maximum height of the top and bottom part of the cylinder shape.
Specifies the event name for maximize.
mxWindow.prototype.maximizeImage
URL of the image to be used for the maximize icon in the titlebar.
mxGraph.prototype.maximumContainerSize
mxRectangle that specifies the maximum size of the container if resizeContainer is true.
mxGraph.prototype.maximumGraphBounds
mxRectangle that specifies the area in which all cells in the diagram should be placed.
mxCoordinateAssignment.prototype.maxIterations
The number of heuristic iterations to run.
mxFastOrganicLayout.prototype.maxIterations
Total number of iterations to run the layout though.
mxMedianHybridCrossingReduction.prototype.maxIterations
The maximum number of iterations to perform whilst reducing edge crossings.
mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations
The total number of crossings found in the best configuration so far
mxGraphAbstractHierarchyCell.prototype.maxRank
The maximum rank this cell occupies.
mxGraphHierarchyModel.prototype.maxRank
Stores the largest rank number allocated
A utility class used to track cells whilst sorting occurs on the median values.
function MedianCellSorter()
Constructs a new median cell sorter.
mxCoordinateAssignment.prototype.medianPos = function(i,
model)
Performs one median positioning sweep in one direction
mxMedianHybridCrossingReduction.prototype.medianRank = function(rankValue,
downwardSweep)
Attempts to minimise the median placement of connected cells on this rank and one of the adjacent ranks
MedianCellSorter.prototype.medianValue
The weighted value of the cell stored.
mxMedianHybridCrossingReduction.prototype.medianValue = function(
   connectedCells,
   rankValue
)
Calculates the median rank order positioning for the specified cell using the connected cells on the specified rank.
mxCoordinateAssignment.prototype.medianXValue = function(connectedCells,
rankValue)
Calculates the median position of the connected cell on the specified rank
mxCompactTreeLayout.prototype.merge = function(p1,
p2)
mxGraphModel.prototype.mergeChildren = function(from,
to,
cloneAllEdges)
Merges the children of the given cell into the given target cell inside this model.
mxXmlRequest.prototype.method
Specifies the request method.
mxMultiplicity.prototype.min
Defines the minimum number of connections for which this rule applies.
Defines the minimum size in pixels of the portion of the cell which is to be used as a connectable region.
mxFastOrganicLayout.prototype.minDistanceLimit
Minimal distance limit.
mxFastOrganicLayout.prototype.minDistanceLimitSquared
Cached version of minDistanceLimit squared.
mxCompactTreeLayout.prototype.minEdgeJetty
The minimum distance for an edge jetty from a vertex
mxCoordinateAssignment.prototype.minEdgeJetty
The minimum distance for an edge jetty from a vertex
mxGraph.prototype.minFitScale
Specifies the minimum scale to be applied in fit.
Specifies the event name for minimize.
mxWindow.prototype.minimizeImage
URL of the image to be used for the minimize icon in the titlebar.
mxGraph.prototype.minimumContainerSize
mxRectangle that specifies the minimum size of the container if resizeContainer is true.
mxGraph.prototype.minimumGraphSize
mxRectangle that specifies the minimum size of the graph.
mxGraphHandler.prototype.minimumSize
Specifies the minimum number of pixels for the width and height of a selection border.
mxWindow.prototype.minimumSize
mxRectangle that specifies the minimum width and height of the window.
mxCoordinateAssignment.prototype.minNode = function(model)
Performs one median positioning sweep in both directions
mxGraph.prototype.minPageBreakDist
Specifies the minimum distance for page breaks to be visible.
mxCoordinateAssignment.prototype.minPath = function(graph,
model)
Straightens out chains of virtual nodes where possibleacade to those stored after this layout processing step has completed.
mxGraphAbstractHierarchyCell.prototype.minRank
The minimum rank this cell occupies.
mxActor.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxConnector.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxCylinder.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxDoubleEllipse.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxEllipse.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxLine.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxRhombus.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxShape.prototype.mixedModeHtml
Specifies if createHtml should be used in mixed Html mode.
mxStencilShape.prototype.mixedModeHtml
Always prefers VML in mixed mode for stencil shapes.
mxSwimlane.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mod: function(n,
m)
Returns the remainder of division of n by m.
mxGraph.prototype.model
Holds the mxGraphModel that contains the cells to be displayed.
mxHierarchicalLayout.prototype.model
The internal mxGraphHierarchyModel formed of the layout.
mxSession.prototype.model
Reference to the enclosing mxGraphModel.
mxCellEditor.prototype.modified
Specifies if the label has been modified.
mxEditor.prototype.modified
True if the graph has been modified since it was last saved.
Specifies the event name for mouseDown.
Specifies the event name for mouseMove.
Specifies the event name for mouseUp.
mxCellTracker.prototype.mouseDown = function(sender,
me)
Ignores the event.
mxConnectionHandler.prototype.mouseDown = function(sender,
me)
Handles the event by initiating a new connection.
mxDragSource.prototype.mouseDown = function(evt)
Returns the drop target for the given graph and coordinates.
mxEdgeHandler.prototype.mouseDown = function(sender,
me)
Handles the event by checking if a special element of the handler was clicked, in which case the index parameter is non-null.
mxGraphHandler.prototype.mouseDown = function(sender,
me)
Handles the event by selecing the given cell and creating a handle for it.
mxOutline.prototype.mouseDown = function(sender,
me)
Handles the event by starting a translation or zoom.
mxPanningHandler.prototype.mouseDown = function(sender,
me)
Handles the event by initiating the panning.
mxRubberband.prototype.mouseDown = function(sender,
me)
Handles the event by initiating a rubberband selection.
mxSelectionCellsHandler.prototype.mouseDown = function(sender,
me)
Redirects the given event to the handlers.
mxTooltipHandler.prototype.mouseDown = function(sender,
me)
Handles the event by initiating a rubberband selection.
mxVertexHandler.prototype.mouseDown = function(sender,
me)
Handles the event if a handle has been clicked.
mxConnectionHandler.prototype.mouseDownCounter
Counts the number of mouseDown events since the start.
mxGraph.prototype.mouseListeners
Holds the mouse event listeners.
mxCellTracker.prototype.mouseMove = function(sender,
me)
Handles the event by highlighting the cell under the mousepointer if it is over the hotspot region of the cell.
mxConnectionHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the preview edge or by highlighting a possible source or target terminal.
mxDragSource.prototype.mouseMove = function(evt)
Gets the graph for the given event using getGraphForEvent, updates the currentGraph, calling dragEnter and dragExit on the new and old graph, respectively, and invokes dragOver if currentGraph is not null.
mxEdgeHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the preview.
mxGraphHandler.prototype.mouseMove = function(sender,
me)
Handles the event by highlighting possible drop targets and updating the preview.
mxOutline.prototype.mouseMove = function(sender,
me)
Handles the event by previewing the viewrect in graph and updating the rectangle that represents the viewrect in the outline.
mxPanningHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the panning on the graph.
mxRubberband.prototype.mouseMove = function(sender,
me)
Handles the event by updating therubberband selection.
mxSelectionCellsHandler.prototype.mouseMove = function(sender,
me)
Redirects the given event to the handlers.
mxTooltipHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the rubberband selection.
mxVertexHandler.prototype.mouseMove = function(sender,
me)
Handles the event by updating the preview.
mxCellTracker.prototype.mouseUp = function(sender,
me)
Handles the event by reseting the highlight.
mxConnectionHandler.prototype.mouseUp = function(sender,
me)
Handles the event by inserting the new connection.
mxDragSource.prototype.mouseUp = function(evt)
Processes the mouse up event and invokes drop, dragExit and stopDrag as required.
mxEdgeHandler.prototype.mouseUp = function(sender,
me)
Handles the event to applying the previewed changes on the edge by using moveLabel, connect or changePoints.
mxGraphHandler.prototype.mouseUp = function(sender,
me)
Handles the event by applying the changes to the selection cells.
mxOutline.prototype.mouseUp = function(sender,
me)
Handles the event by applying the translation or zoom to graph.
mxPanningHandler.prototype.mouseUp = function(sender,
me)
Handles the event by setting the translation on the view or showing the popupmenu.
mxRubberband.prototype.mouseUp = function(sender,
me)
Handles the event by selecting the region of the rubberband using mxGraph.selectRegion.
mxSelectionCellsHandler.prototype.mouseUp = function(sender,
me)
Redirects the given event to the handlers.
mxTooltipHandler.prototype.mouseUp = function(sender,
me)
Handles the event by resetting the tooltip timer or hiding the existing tooltip.
mxVertexHandler.prototype.mouseUp = function(sender,
me)
Handles the event by applying the changes to the geometry.
mxGuide.prototype.move = function(bounds,
delta,
gridEnabled)
Moves the bounds by the given mxPoint and returnt the snapped point.
Specifies the event name for move.
Specifies the event name for moveCells.
Fires between begin- and endUpdate in moveCells.
Specifies the event name for moveEnd.
Specifies the event name for moveStart.
mxCompositeLayout.prototype.moveCell = function(cell,
x,
y)
Implements mxGraphLayout.moveCell by calling move on master or the first layout in layouts.
mxGraphLayout.prototype.moveCell = function(cell,
x,
y)
Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg.
mxPartitionLayout.prototype.moveCell = function(cell,
x,
y)
Implements mxGraphLayout.moveCell.
mxStackLayout.prototype.moveCell = function(cell,
x,
y)
Implements mxGraphLayout.moveCell.
mxGraph.prototype.moveCells = function(cells,
dx,
dy,
clone,
target,
evt)
Moves or clones the specified cells and moves the cells or clones by the given amount, adding them to the optional target cell.
mxGraphHandler.prototype.moveCells = function(cells,
dx,
dy,
clone,
target,
evt)
Moves the given cells by the specified amount.
mxCircleLayout.prototype.moveCircle
Boolean specifying if the circle should be moved to the top, left corner specified by x0 and y0.
mxGraphHandler.prototype.moveEnabled
Specifies if moving is enabled.
mxLayoutManager.prototype.moveHandler
Holds the function that handles the move event.
Holds the function that handles the move event.
mxConnectionHandler.prototype.moveIconBack
Specifies if icons should be moved to the back of the overlay pane.
mxConnectionHandler.prototype.moveIconFront
Specifies if icons should be displayed inside the graph container instead of the overlay pane.
mxEdgeHandler.prototype.moveLabel = function(edgeState,
x,
y)
Changes the coordinates for the label of the given edge.
mxCompactTreeLayout.prototype.moveNode = function(node,
dx,
dy)
Moves the specified node and all of its children by the given amount.
mxHierarchicalLayout.prototype.moveParent
Specifies if the parent should be moved if resizeParent is enabled.
mxConnectionHandler.prototype.movePreviewAway
Switch to enable moving the preview away from the mousepointer.
mxEditor.prototype.movePropertiesDialog
Specifies if the properties dialog should be automatically moved near the cell it is displayed for, otherwise the dialog is not moved.
mxCellStatePreview.prototype.moveState = function(state,
dx,
dy,
add,
includeEdges)
mxPath.prototype.moveTo = function(x,
y)
Moves the cursor to (x, y).
moveTo: function(x,
y)
Moves the current path the given coordinates.
moveTo: function(x,
y)
Moves the current path the given coordinates.
mxCompactTreeLayout.prototype.moveTree
Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer.
mxGraph.prototype.multigraph
Specifies if multiple edges in the same direction between the same pair of vertices are allowed.
mxGraph.prototype.multiplicities
An array of mxMultiplicities describing the allowed connections in a graph.
Extends mxShape to implement an actor shape.
function mxActor(bounds,
fill,
stroke,
strokewidth)
Constructs a new actor shape.
Implements a basic animation in JavaScript.
function mxAnimation(delay)
Constructs an animation.
Extends mxShape to implement an arrow shape.
function mxArrow(points,
fill,
stroke,
strokewidth,
arrowWidth,
spacing,
endSize)
Constructs a new arrow shape.
Manager for automatically saving diagrams.
function mxAutoSaveManager(graph)
Constructs a new automatic layout for the given graph.
Cells are the elements of the graph model.
function mxCell(value,
geometry,
style)
Constructs a new cell to be used in a graph model.
Action to change the attribute of a cell’s user object.
function mxCellAttributeChange(cell,
attribute,
value)
Constructs a change of a attribute of the DOM node stored as the value of the given mxCell.
Codec for mxCells.
In-place editor for the graph.
function mxCellEditor(graph)
Constructs a new in-place editor for the specified graph.
A helper class to highlight cells.
function mxCellHighlight(graph,
highlightColor,
strokeWidth)
Constructs a cell highlight.
A helper class to process mouse locations and highlight cells.
function mxCellMarker(graph,
validColor,
invalidColor,
hotspot)
Constructs a new cell marker.
Extends mxEventSource to implement a graph overlay, represented by an icon and a tooltip.
function mxCellOverlay(image,
tooltip,
align,
verticalAlign,
offset,
cursor)
Constructs a new overlay using the given image and tooltip.
Implements a mechanism for temporary cell Ids.
Renders cells into a document object model.
function mxCellRenderer()
arrow, rectangle, ellipse, rhombus, image, line, label, cylinder, swimlane, connector, actor and cloud.
Represents the current state of a cell in a given mxGraphView.
function mxCellState(view,
cell,
style)
Constructs a new object that represents the current state of the given cell in the specified view.
Implements a live preview for moving cells.
function mxCellStatePreview(graph)
Constructs a move preview for the given graph.
Event handler that highlights cells.
function mxCellTracker(graph,
color,
funct)
Constructs an event handler that highlights cells.
Action to add or remove a child in a model.
function mxChildChange(model,
parent,
child,
index)
Constructs a change of a child in the specified model.
Codec for mxChildChanges.
Extends mxGraphLayout to implement a circluar layout for a given radius.
function mxCircleLayout(graph,
radius)
Constructs a new circular layout for the specified radius.
Bootstrapping mechanism for the mxGraph thin client.
Singleton that implements a clipboard for graph cells.
Extends mxActor to implement a cloud shape.
function mxCloud(bounds,
fill,
stroke,
strokewidth)
Constructs a new cloud shape.
XML codec for JavaScript object graphs.
function mxCodec(document)
Constructs an XML encoder/decoder for the specified owner document.
Singleton class that acts as a global registry for codecs.
Action to change a cell’s collapsed state in a model.
function mxCollapseChange(model,
cell,
collapsed)
Constructs a change of a collapsed state in the specified model.
Extends mxGraphLayout to implement a compact tree (Moen) algorithm.
function mxCompactTreeLayout(graph,
horizontal,
invert)
Constructs a new compact tree layout for the specified graph and orientation.
Constructs a new fast organic layout for the specified graph.
Constructs a new fast organic layout for the specified graph.
Allows to compose multiple layouts into a single layout.
function mxCompositeLayout(graph,
layouts,
master)
Constructs a new layout using the given layouts.
Defines an object that contains the constraints about how to connect one side of an edge to its terminal.
function mxConnectionConstraint(point,
perimeter)
Constructs a new connection constraint for the given point and boolean arguments.
Graph event handler that creates new connections.
function mxConnectionHandler(graph,
factoryMethod)
Constructs an event handler that connects vertices using the specified factory method to create the new edges.
Extends mxShape to implement a connector shape.
function mxConnector(points,
stroke,
strokewidth)
Constructs a new connector shape.
Defines various global constants.
Handles constraints on connection targets.
function mxConstraintHandler(graph)
Constructs an new constraint handler.
Sets the horizontal locations of node and edge dummy nodes on each layer.
function mxCoordinateAssignment(layout,
intraCellSpacing,
interRankCellSpacing,
orientation,
initialX,
parallelEdgeSpacing)
Creates a coordinate assignment.
Action to change the current root in a view.
function mxCurrentRootChange(view,
root)
Constructs a change of the current root in the given view.
Constructs a change of the current root in the given view.
Extends mxShape to implement an cylinder shape.
function mxCylinder(bounds,
fill,
stroke,
strokewidth)
Constructs a new cylinder shape.
Binds keycodes to actionnames in an editor.
function mxDefaultKeyHandler(editor)
Constructs a new default key handler for the mxEditor.graph in the given mxEditor.
Custom codec for configuring mxDefaultKeyHandlers.
Creates popupmenus for mouse events.
function mxDefaultPopupMenu(config)
Constructs a new popupmenu-factory based on given configuration.
Custom codec for configuring mxDefaultPopupMenus.
Toolbar for the editor.
function mxDefaultToolbar(container,
editor)
Constructs a new toolbar for the given container and editor.
Custom codec for configuring mxDefaultToolbars.
A wrapper class for an associative array with object keys.
Maintains the size of a div element in Internet Explorer.
function mxDivResizer(div,
container)
Constructs an object that maintains the size of a div element when the window is being resized.
Extends mxShape to implement a double ellipse shape.
function mxDoubleEllipse(bounds,
fill,
stroke,
strokewidth)
Constructs a new ellipse shape.
Wrapper to create a drag source from a DOM element so that the element can be dragged over a graph and dropped into the graph as a new cell.
function mxDragSource(element,
dropHandler)
Constructs a new drag source for the given element.
Graph event handler that reconnects edges and modifies control points and the edge label location.
function mxEdgeHandler(state)
Constructs an edge handler for the specified mxCellState.
Constructs an edge handler for the specified mxCellState.
Extends mxGraphLayout to implement an edge label layout.
function mxEdgeLabelLayout(graph,
radius)
Constructs a new edge label layout.
Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.
Extends mxEventSource to implement a application wrapper for a graph that adds actions, I/O using mxCodec, auto-layout using mxLayoutManager, command history using undoManager, and standard dialogs and widgets, eg.
function mxEditor(config)
Constructs a new editor.
Codec for mxEditors.
Provides animation effects.
Graph event handler that reconnects edges and modifies control points and the edge label location.
Extends mxShape to implement an ellipse shape.
function mxEllipse(bounds,
fill,
stroke,
strokewidth)
Constructs a new ellipse shape.
Cross-browser DOM event support.
The mxEventObject is a wrapper for all properties of a single event.
function mxEventObject(name)
Constructs a new event object with the specified name.
Base class for objects that dispatch named events.
Constructs a new dictionary which allows object to be used as keys.
function mxEventSource(eventSource)
Constructs a new event source.
Extends mxGraphLayout to implement a fast organic layout algorithm.
A simple class for creating HTML forms.
function mxForm(className)
Creates a HTML table using the specified classname.
Codec for mxValueChanges, mxStyleChanges, mxGeometryChanges, mxCollapseChanges and mxVisibleChanges.
var mxGenericChangeCodec = function(obj,
variable)
Factory function that creates a mxObjectCodec for the specified change and fieldname.
Extends mxRectangle to represent the geometry of a cell.
function mxGeometry(x,
y,
width,
height)
Constructs a new object to describe the size and location of a vertex or the control points of an edge.
Action to change a cell’s geometry in a model.
function mxGeometryChange(model,
cell,
geometry)
Constructs a change of a geometry in the specified model.
Extends mxEventSource to implement a graph component for the browser.
function mxGraph(container,
model,
renderHint,
stylesheet)
Constructs a new mxGraph in the specified container.
Set when the editor is started.
An abstraction of an internal hierarchy node or edge
function mxGraphAbstractHierarchyCell()
Constructs a new hierarchical layout algorithm.
Codec for mxGraphs.
Graph event handler that handles selection.
function mxGraphHandler(graph)
Constructs an event handler that creates handles for the selection cells.
An abstraction of a hierarchical edge for the hierarchy layout
function mxGraphHierarchyEdge(edges)
Constructs a hierarchy edge
Internal model of a hierarchical graph.
function mxGraphHierarchyModel(layout,
vertices,
roots,
parent,
ordered,
deterministic,
tightenToSource,
scanRanksFromSinks)
Creates an internal ordered graph model using the vertices passed in.
An abstraction of a hierarchical edge for the hierarchy layout
function mxGraphHierarchyNode(cell)
Constructs an internal node to represent the specified real graph cell
Base class for all layout algorithms in mxGraph.
function mxGraphLayout(graph)
Constructs a new layout using the given layouts.
Extends mxEventSource to implement a graph model.
function mxGraphModel(root)
Constructs a new graph model.
Implements the selection model for a graph.
function mxGraphSelectionModel(graph)
Constructs a new graph selection model for the given mxGraph.
Extends mxEventSource to implement a view for a graph.
function mxGraphView(graph)
Constructs a new view for the given mxGraph.
Custom encoder for mxGraphViews.
Implements the alignment of selection cells to other cells in the graph.
function mxGuide(graph,
states)
Constructs a new guide object.
Implementation of the hexagon shape.
function mxHexagon()
Constructs a new hexagon shape.
A hierarchical layout algorithm.
function mxHierarchicalLayout(graph,
orientation,
deterministic)
Constructs a new hierarchical layout algorithm.
The specific layout interface for hierarchical layouts.
function mxHierarchicalLayoutStage()
Constructs a new hierarchical layout stage.
Encapsulates the URL, width and height of an image.
function mxImage(src,
width,
height)
Constructs a new image.
Maps from keys to base64 encoded images or file locations.
Creates a new image export instance to be used with an export canvas.
function mxImageExport()
Constructs a new image export.
Extends mxShape to implement an image shape.
function mxImageShape(bounds,
image,
fill,
stroke,
strokewidth)
Constructs a new image shape.
Event handler that listens to keystroke events.
function mxKeyHandler(graph,
target)
Constructs an event handler that executes functions bound to specific keystrokes.
Extends mxShape to implement an image shape with a label.
function mxLabel(bounds,
fill,
stroke,
strokewidth)
Constructs a new label shape.
Implements a layout manager that updates the layout for a given transaction.
function mxLayoutManager(graph)
Constructs a new automatic layout for the given graph.
Extends mxShape to implement a horizontal line shape.
function mxLine(bounds,
stroke,
strokewidth)
Constructs a new line shape.
Optional global config variable to toggle loading of the two resource files in mxGraph and mxEditor.
Optional global config variable to toggle loading of the CSS files when the library is initialized.
A singleton class that implements a simple console.
A static class that implements all markers for VML and SVG using a registry.
Sets the horizontal locations of node and edge dummy nodes on each layer.
function mxMedianHybridCrossingReduction(layout)
Creates a coordinate assignment.
An implementation of the first stage of the Sugiyama layout.
function mxMinimumCycleRemover(layout)
Creates a cycle remover for the given internal model.
Codec for mxGraphModels.
Implements animation for morphing cells.
function mxMorphing(graph,
steps,
ease,
delay)
Constructs an animation.
Base class for all mouse events in mxGraph.
function mxMouseEvent(evt,
state)
Constructs a new event object for the given arguments.
Defines invalid connections along with the error messages that they produce.
function mxMultiplicity(source,
type,
attr,
value,
min,
max,
validNeighbors,
countError,
typeError,
validNeighborsAllowed)
Instantiate class mxMultiplicity in order to describe allowed connections in a graph.
Generic codec for JavaScript objects that implements a mapping between JavaScript objects and XML nodes that maps each field or element to an attribute or child node, and vice versa.
function mxObjectCodec(template,
exclude,
idrefs,
mapping)
Constructs a new codec for the specified template object.
Identity for JavaScript objects.
Implements an outline (aka overview) for a graph.
function mxOutline(source,
container)
Constructs a new outline for the specified graph inside the given container.
Event handler that pans and creates popupmenus.
Constructs an event handler that creates a mxPopupMenu and pans the graph.
Implements a handler for panning.
Extends mxGraphLayout for arranging parallel edges.
Extends mxGraphLayout for partitioning the parent cell vertically or horizontally by filling the complete area with the child cells.
function mxPartitionLayout(graph,
horizontal,
spacing,
border)
Constructs a new stack layout layout for the specified graph, spacing, orientation and offset.
An abstraction for creating VML and SVG paths.
function mxPath(format)
Constructs a path for the given format, which is one of svg or vml.
Provides various perimeter functions to be used in a style as the value of mxConstants.STYLE_PERIMETER.
Implements a 2-dimensional vector with double precision coordinates.
function mxPoint(x,
y)
Constructs a new point for the optional x and y coordinates.
Extends mxShape to implement a polyline (a line with multiple points).
function mxPolyline(points,
stroke,
strokewidth)
Constructs a new polyline shape.
Event handler that pans and creates popupmenus.
Constructs an event handler that creates a popupmenu.
Implements printing of a diagram across multiple pages.
function mxPrintPreview(graph,
scale,
pageFormat,
border,
x0,
y0,
borderColor,
title,
pageSelector)
Constructs a new print preview for the given parameters.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
function mxRectangle(x,
y,
width,
height)
Constructs a new rectangle for the optional parameters.
Constructs a new rectangle for the optional parameters.
Extends mxShape to implement a rectangle shape.
function mxRectangleShape(bounds,
fill,
stroke,
strokewidth)
Constructs a new rectangle shape.
Implements internationalization.
Extends mxShape to implement a rhombus (aka diamond) shape.
function mxRhombus(bounds,
fill,
stroke,
strokewidth)
Constructs a new rhombus shape.
Action to change the root in a model.
function mxRootChange(model,
root)
Constructs a change of the root in the specified model.
Codec for mxRootChanges.
Event handler that selects rectangular regions.
function mxRubberband(graph)
Constructs an event handler that selects rectangular regions in the graph using rubberband selection.
An event handler that manages cell handlers and invokes their mouse event processing functions.
Action to change the current root in a view.
Session for sharing an mxGraphModel with other parties via a backend that acts as a multicaster for all changes.
function mxSession(model,
urlInit,
urlPoll,
urlNotify)
Constructs a new session using the given mxGraphModel and URLs to communicate with the backend.
Base class for all shapes.
function mxShape()
Constructs a new shape.
In charge of moving cells after a resize.
function mxSpaceManager(graph,
shiftRightwards,
shiftDownwards,
extendParents)
Constructs a new automatic layout for the given graph.
Extends mxGraphLayout to create a horizontal or vertical stack of the child vertices.
function mxStackLayout(graph,
horizontal,
spacing,
x0,
y0,
border)
Constructs a new stack layout layout for the specified graph, spacing, orientation and offset.
Implements a generic shape which is based on a XML node as a description.
A singleton class that provides a registry for stencils and the methods for painting those stencils onto a canvas or into a DOM.
Implements a shape based on a mxStencil.
Constructs a new generic shape by setting desc to the given XML node and invoking parseDescription and parseConstraints.
function mxStencilShape(stencil)
Constructs a new generic shape.
Action to change a cell’s style in a model.
function mxStyleChange(model,
cell,
style)
Constructs a change of a style in the specified model.
Singleton class that acts as a global converter from string to object values in a style.
Defines the appearance of the cells in a graph.
function mxStylesheet()
Constructs a new stylesheet and assigns default styles.
Codec for mxStylesheets.
Implements a canvas to be used with mxImageExport.
var mxSvgCanvas2D = function(root,
styleEnabled)
Constructs an SVG canvas.
Extends mxShape to implement a swimlane shape.
function mxSwimlane(bounds,
fill,
stroke,
strokewidth)
Constructs a new swimlane shape.
Manager for swimlanes and nested swimlanes that sets the size of newly added swimlanes to that of their siblings, and propagates changes to the size of a swimlane to its siblings, if siblings is true, and its ancestors, if bubbling is true.
function mxSwimlaneManager(graph,
horizontal,
addEnabled,
resizeEnabled)
Constructs a new swimlane manager for the given graph.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
Action to change a terminal in a model.
function mxTerminalChange(model,
cell,
terminal,
source)
Constructs a change of a terminal in the specified model.
Codec for mxTerminalChanges.
Extends mxShape to implement a text shape.
function mxText(value,
bounds,
align,
valign,
color,
family,
size,
fontStyle,
spacing,
spacingTop,
spacingRight,
spacingBottom,
spacingLeft,
horizontal,
background,
border,
wrap,
clipped,
overflow,
labelPadding)
Constructs a new text shape.
Creates a toolbar inside a given DOM node.
function mxToolbar(container)
Constructs a toolbar in the specified container.
Graph event handler that displays tooltips.
function mxTooltipHandler(graph,
delay)
Constructs an event handler that displays tooltips with the specified delay (in milliseconds).
mxCell.prototype.mxTransient
List of members that should not be cloned inside clone.
Implementation of the triangle shape.
function mxTriangle()
Constructs a new triangle shape.
Implements a composite undoable edit.
function mxUndoableEdit(source,
significant)
Constructs a new undoable edit for the given source.
Implements a command history.
function mxUndoManager(size)
Constructs a new undo manager with the given history size.
Converts relative to absolute URLs.
A singleton class that provides cross-browser helper methods.
Action to change a user object in a model.
function mxValueChange(model,
cell,
value)
Constructs a change of a user object in the specified model.
Event handler for resizing cells.
function mxVertexHandler(state)
Constructs an event handler that allows to resize vertices and groups.
Action to change a cell’s visible state in a model.
function mxVisibleChange(model,
cell,
visible)
Constructs a change of a visible state in the specified model.
Basic window inside a document.
Implements a canvas to be used with mxImageExport.
var mxXmlCanvas2D = function(root)
Constructs a XML canvas.
XML HTTP request wrapper.
function mxXmlRequest(url,
params,
method,
async,
username,
password)
Constructs an XML HTTP request.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General12.html b/docs/js-api/index/General12.html new file mode 100644 index 000000000..167c82e9f --- /dev/null +++ b/docs/js-api/index/General12.html @@ -0,0 +1,38 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
N
 name, mxEventObject
 neighbours, mxFastOrganicLayout
 nestedBestRanks, mxMedianHybridCrossingReduction
 nextId, mxGraphModel
 nextLayerConnectedCache, mxCoordinateAssignment
 nextLayerConnectedCells, mxGraphAbstractHierarchyCell
 NO_FO, mxClient
 node, mxShape
 nodeDistance, mxCompactTreeLayout
 NODETYPE_ATTRIBUTE, mxConstants
 NODETYPE_CDATA, mxConstants
 NODETYPE_COMMENT, mxConstants
 NODETYPE_DOCUMENT, mxConstants
 NODETYPE_DOCUMENT_FRAGMENT, mxConstants
 NODETYPE_DOCUMENTTYPE, mxConstants
 NODETYPE_ELEMENT, mxConstants
 NODETYPE_ENTITY, mxConstants
 NODETYPE_ENTITY_REFERENCE, mxConstants
 NODETYPE_NOTATION, mxConstants
 NODETYPE_PROCESSING_INSTRUCTION, mxConstants
 NODETYPE_TEXT, mxConstants
 NONE, mxConstants
 noReset, mxToolbar
 NORMALIZE, mxEvent
 normalizeImage, mxWindow
 normalKeys, mxKeyHandler
 notify
 NOTIFY
 NS_SVG, mxConstants
 NS_XHTML, mxConstants
 NS_XLINK, mxConstants
 nudge, WeightedCellSorter
O
 objects
 offset
 oldBounds, mxTemporaryCellStates
 oldScale, mxTemporaryCellStates
 oldStates, mxTemporaryCellStates
 onEncode, mxRootChangeCodec
 onInit
 opaqueVmlImages, mxLabel
 open
 OPEN
 order, mxCellRenderer
 Order, mxGraph
 ORDER_CELLS
 orderCells, mxGraph
 orderChanged, mxCellState
 ordered, mxGraph
 orderEdge, mxCellRenderer
 orientation
 origin, mxCellState
 OrthConnector, mxEdgeStyle
 outline
 OUTLINE_COLOR, mxConstants
 OUTLINE_HANDLE_FILLCOLOR, mxConstants
 OUTLINE_HANDLE_STROKECOLOR, mxConstants
 OUTLINE_STROKEWIDTH, mxConstants
 outlineResource, mxEditor
 Overlays, mxGraph
+ +
mxEventObject.prototype.name
Holds the name.
mxFastOrganicLayout.prototype.neighbours
Local copy of cell neighbours.
mxMedianHybridCrossingReduction.prototype.nestedBestRanks
Stores each rank as a collection of cells in the best order found for each layer so far
mxGraphModel.prototype.nextId
Specifies the next Id to be created.
mxCoordinateAssignment.prototype.nextLayerConnectedCache
A store of connections to the layer above for speed
mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells
A cached version of the cells this cell connects to on the next layer up
NO_FO: navigator.userAgent.indexOf('Firefox/1.') >
True if foreignObject support is not available.
mxShape.prototype.node
Holds the outermost DOM node that represents this shape.
mxCompactTreeLayout.prototype.nodeDistance
Holds the nodeDistance.
DOM node of type ATTRIBUTE.
DOM node of type CDATA.
DOM node of type COMMENT.
DOM node of type DOCUMENT.
DOM node of type DOCUMENT_FRAGMENT.
DOM node of type DOCUMENTTYPE.
DOM node of type ELEMENT.
DOM node of type ENTITY.
DOM node of type ENTITY_REFERENCE.
DOM node of type NOTATION.
DOM node of type PROCESSING_INSTRUCTION.
DOM node of type TEXT.
Defines the value for none.
mxToolbar.prototype.noReset
Specifies if resetMode requires a forced flag of true for resetting the current mode in the toolbar.
Specifies the event name for normalize.
mxWindow.prototype.normalizeImage
URL of the image to be used for the normalize icon in the titlebar.
mxKeyHandler.prototype.normalKeys
Maps from keycodes to functions for non-pressed control keys.
mxSession.prototype.notify = function(xml,
onLoad,
onError)
Sends out the specified XML to urlNotify and fires a notify event.
mxUndoableEdit.prototype.notify = function()
Hook to notify any listeners of the changes after an undo or redo has been carried out.
Specifies the event name for notify.
Same as mxEvent.CHANGE, this event can be used for classes that need to implement a sync mechanism between this model and, say, a remote model.
Fires after a notification was sent in notify.
Defines the SVG namespace.
Defines the XHTML namespace.
Defines the XLink namespace.
WeightedCellSorter.prototype.nudge
Whether or not to flip equal weight values.
+ + + +
mxCodec.prototype.objects
Maps from IDs to objects.
Contains all objects where any listener was added using addListener.
mxCellOverlay.prototype.offset
Holds the offset as an mxPoint.
mxCompactTreeLayout.prototype.offset = function(p1,
p2,
a1,
a2,
b1,
b2)
mxGeometry.prototype.offset
For edges, this holds the offset (in pixels) from the position defined by x and y on the edge.
mxTemporaryCellStates.prototype.oldBounds
Holds the height of the rectangle.
mxTemporaryCellStates.prototype.oldScale
Holds the height of the rectangle.
mxTemporaryCellStates.prototype.oldStates
Holds the height of the rectangle.
Encodes the child recursively.
Called from within the constructor.
Called from within the constructor.
mxLabel.prototype.opaqueVmlImages
Specifies if all VML images should be rendered without transparency, that is, if the current opacity should be ignored for images.
mxEditor.prototype.open = function (filename)
Opens the specified file synchronously and parses it using readGraphModel.
mxPrintPreview.prototype.open = function(css)
Shows the print preview window.
open: function(filename)
Opens the specified file from the local filesystem and returns the contents of the file as a string.
Fires after a file was opened in open.
Specifies the event name for open.
mxCellRenderer.prototype.order = function(state)
Orders the DOM node of the shape for the given state according to the position of the corresponding cell in the graph model.
Specifies the event name for orderCells.
Fires between begin- and endUpdate in orderCells.
mxGraph.prototype.orderCells = function(back,
cells)
Moves the given cells to the front or back.
mxCellState.prototype.orderChanged
Specifies if the cell has changed order and the display needs to be updated.
mxGraph.prototype.ordered
Specifies if the display should reflect the order of the cells in the model.
mxCellRenderer.prototype.orderEdge = function(state)
Orders the DOM node of the shape for the given edge’s state according to the mxGraph.keepEdgesInBackground and mxGraph.keepEdgesInBackground rules.
mxCoordinateAssignment.prototype.orientation
The position of the root ( start ) node(s) relative to the rest of the laid out graph.
mxHierarchicalLayout.prototype.orientation
The position of the root node(s) relative to the laid out graph in.
mxCellState.prototype.origin
mxPoint that holds the origin for all child cells.
OrthConnector: function(state,
source,
target,
points,
result)
Implements a local orthogonal router between the given cells.
mxEditor.prototype.outline
Reference to the mxWindow that contains the outline.
Reference to the outline mxGraph.
Defines the color to be used for the outline rectangle border.
Defines the color to be used for the outline sizer fill color.
Defines the color to be used for the outline sizer stroke color.
Defines the strokewidth to be used for the outline rectangle stroke width.
mxEditor.prototype.outlineResource
Specifies the resource key for the outline window title.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General13.html b/docs/js-api/index/General13.html new file mode 100644 index 000000000..77f83a7b5 --- /dev/null +++ b/docs/js-api/index/General13.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
P
 PAGE_FORMAT_A4_PORTRAIT, mxConstants
 PAGE_FORMAT_LETTER_PORTRAIT, mxConstants
 pageBreakColor, mxGraph
 pageBreakDashed, mxGraph
 pageBreaksVisible, mxGraph
 pageCount, mxPrintPreview
 pageFormat
 pageScale, mxGraph
 pageSelector, mxPrintPreview
 pageVisible, mxGraph
 paintMarker, mxMarker
 PAN
 PAN_END
 PAN_START
 panDx, mxGraph
 panDy, mxGraph
 panGraph
 panningEnabled, mxPanningHandler
 para, mxUtils
 parallelEdgeSpacing
 params, mxXmlRequest
 parent
 parentBorder, mxHierarchicalLayout
 parentForCellChanged, mxGraphModel
 parentsChanged, mxCompactTreeLayout
 parse, mxResources
 parseConstraint, mxStencil
 parseConstraints, mxStencil
 parseDescription, mxStencil
 parseXml, mxUtils
 password, mxXmlRequest
 paste, mxClipboard
 path, mxPath
 PATH_SEPARATOR, mxCellPath
 perimeter, mxConnectionConstraint
 PERIMETER_ELLIPSE, mxConstants
 PERIMETER_RECTANGLE, mxConstants
 PERIMETER_RHOMBUS, mxConstants
 PERIMETER_TRIANGLE, mxConstants
 placeLabels, mxEdgeLabelLayout
 placementStage, mxHierarchicalLayout
 point, mxConnectionConstraint
 pointImage, mxConstraintHandler
 points
 poll, mxSession
 polling, mxSession
 popup
 popupHandler, mxEditor
 portsEnabled, mxGraph
 post, mxUtils
 POST
 postConfigureShape, mxCellRenderer
 postDiagram, mxEditor
 postfix, mxGraphModel
 postParameterName, mxEditor
 postProcessCellStyle, mxGraph
 preferHtml, mxEdgeHandler
 preferModeHtml
 preferPageSize, mxGraph
 prefHozEdgeSep
 prefix, mxGraphModel
 prefVertEdgeOff
 preserveImageAspect, mxImageShape
 previewColor, mxGraphHandler
 previewElement, mxDragSource
 previewEnabled, mxPanningHandler
 previousLayerConnectedCache, mxCoordinateAssignment
 previousLayerConnectedCells, mxGraphAbstractHierarchyCell
 print, mxPrintPreview
 printOverlays, mxPrintPreview
 printScreen, mxUtils
 process, mxCellMarker
 processChange, mxGraph
 processDelta, mxSession
 processEdit, mxSession
 processInclude, mxObjectCodec
 processReversedEdge, mxCoordinateAssignment
 processState, mxSession
 prompt, mxUtils
 properties, mxEventObject
 propertiesHeight, mxEditor
 propertiesResource, mxEditor
 propertiesWidth, mxEditor
 ptSeqDistSq, mxUtils
 put, mxDictionary
 putCellStyle, mxStylesheet
 putDefaultEdgeStyle, mxStylesheet
 putDefaultVertexStyle, mxStylesheet
 putImage, mxImageBundle
 putObject, mxCodec
 putValue, mxStyleRegistry
+ +
Defines the rectangle for the A4 portrait page format.
Defines the rectangle for the Letter portrait page format.
mxGraph.prototype.pageBreakColor
Specifies the color for page breaks.
mxGraph.prototype.pageBreakDashed
Specifies the page breaks should be dashed.
mxGraph.prototype.pageBreaksVisible
Specifies if a dashed line should be drawn between multiple pages.
mxPrintPreview.prototype.pageCount
Holds the actual number of pages in the preview.
mxGraph.prototype.pageFormat
Specifies the page format for the background page.
mxPrintPreview.prototype.pageFormat
Holds the mxRectangle that defines the page format.
mxGraph.prototype.pageScale
Specifies the scale of the background page.
mxPrintPreview.prototype.pageSelector
Boolean that specifies if the page selector should be displayed.
mxGraph.prototype.pageVisible
Specifies if the background page should be visible.
paintMarker: function(node,
type,
p0,
pe,
color,
strokewidth,
size,
scale,
x0,
y0,
source,
style)
Paints the given marker.
Specifies the event name for pan.
Fires while handle is processing events.
Specifies the event name for panEnd.
Fires when the panning handler changes its active state to false.
Specifies the event name for panStart.
Fires when the panning handler changes its active state to true.
mxGraph.prototype.panDx
Current horizontal panning value.
mxGraph.prototype.panDy
Current vertical panning value.
mxGraph.prototype.panGraph = function(dx,
dy)
Shifts the graph display by the given amount.
mxPanningHandler.prototype.panGraph = function(dx,
dy)
Pans graph by the given amount.
mxPanningHandler.prototype.panningEnabled
Specifies if panning should be enabled.
para: function(parent,
text)
Appends a new paragraph with the given text to the specified parent and returns the paragraph.
mxCoordinateAssignment.prototype.parallelEdgeSpacing
The distance between each parallel edge on each ranks for long edges.
mxHierarchicalLayout.prototype.parallelEdgeSpacing
The distance between each parallel edge on each ranks for long edges
mxXmlRequest.prototype.params
Holds the form encoded data for the POST request.
mxCell.prototype.parent
Reference to the parent cell.
mxGraphHierarchyModel.prototype.parent
The parent cell whose children are being laid out
mxGraphLayout.prototype.parent
The parent cell of the layout, if any
mxHierarchicalLayout.prototype.parentBorder
The border to be added around the children if the parent is to be resized using resizeParent.
mxGraphModel.prototype.parentForCellChanged = function(cell,
parent,
index)
Inner callback to update the parent of a cell using mxCell.insert on the parent and return the previous parent.
mxCompactTreeLayout.prototype.parentsChanged
A set of the parents that need updating based on children process as part of the layout
parse: function(text)
Parses the key, value pairs in the specified text and stores them as local resources.
mxStencil.prototype.parseConstraint = function(node)
Parses the given XML node and returns its mxConnectionConstraint.
mxStencil.prototype.parseConstraints = function()
Reads the constraints from desc into constraints using parseConstraint.
mxStencil.prototype.parseDescription = function()
Reads w0, h0, aspect, bgNodes and fgNodes from desc.
parseXml: function()
Parses the specified XML string into a new XML document and returns the new document.
mxXmlRequest.prototype.password
Specifies the password to be used for authentication.
paste: function(graph)
Pastes the cells into the specified graph restoring the relation to parents, if possible.
mxPath.prototype.path
Contains the textual representation of the path as an array.
Defines the separator between the path components.
mxConnectionConstraint.prototype.perimeter
Boolean that specifies if the point should be projected onto the perimeter of the terminal.
Name of the ellipse perimeter.
Name of the rectangle perimeter.
Name of the rhombus perimeter.
PERIMETER_TRIANGLE: 'trianglePerimeter' }
Name of the triangle perimeter.
mxEdgeLabelLayout.prototype.placeLabels = function(v,
e)
Places the labels of the given edges.
mxHierarchicalLayout.prototype.placementStage = function(initialX,
parent)
Executes the placement stage using mxCoordinateAssignment.
mxConnectionConstraint.prototype.point
mxPoint that specifies the fixed location of the connection point.
mxConstraintHandler.prototype.pointImage
mxImage to be used as the image for fixed connection points.
mxGeometry.prototype.points
Array of mxPoints which specifies the control points along the edge.
mxShape.prototype.points
Holds the array of mxPoints that specify the points of this shape.
mxSession.prototype.poll = function()
Sends an asynchronous GET request to urlPoll.
mxSession.prototype.polling
mxPopupMenu.prototype.popup = function(x,
y,
cell,
evt)
Shows the popup menu for the given event and cell.
popup: function(content,
isInternalWindow)
Shows the specified text content in a new mxWindow or a new browser window if isInternalWindow is false.
mxEditor.prototype.popupHandler
Holds a mxDefaultPopupMenu for displaying popupmenus.
mxGraph.prototype.portsEnabled
Specifies if ports are enabled.
post: function(url,
params,
onload,
onerror)
Posts the specified params to the given URL asynchronously and invokes the given functions depending on the request status.
Fires if a successful response was received in postDiagram.
Specifies the event name for post.
mxCellRenderer.prototype.postConfigureShape = function(state)
Replaces any reserved words used for attributes, eg.
mxEditor.prototype.postDiagram = function (url,
data)
Hook for subclassers to override the posting of a diagram represented by the given node to the given URL.
mxGraphModel.prototype.postfix
Defines the postfix of new Ids.
mxEditor.prototype.postParameterName
Specifies if the name of the post parameter that contains the diagram data in a post request to the server.
mxGraph.prototype.postProcessCellStyle = function(style)
Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.
mxEdgeHandler.prototype.preferHtml
Specifies if bends should be added to the graph container.
mxActor.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxConnector.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxCylinder.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxDoubleEllipse.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxEllipse.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxLine.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxRhombus.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxShape.prototype.preferModeHtml
Specifies if createHtml should be used in prefer Html mode.
mxStencilShape.prototype.preferModeHtml
Always prefers VML in prefer HTML mode for stencil shapes.
mxRhombus.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxGraph.prototype.preferPageSize
Specifies if the graph size should be rounded to the next page number in sizeDidChange.
mxCompactTreeLayout.prototype.prefHozEdgeSep
The preferred horizontal distance between edges exiting a vertex
mxCoordinateAssignment.prototype.prefHozEdgeSep
The preferred horizontal distance between edges exiting a vertex
mxGraphModel.prototype.prefix
Defines the prefix of new Ids.
mxCompactTreeLayout.prototype.prefVertEdgeOff
The preferred vertical offset between edges exiting a vertex
mxCoordinateAssignment.prototype.prefVertEdgeOff
The preferred vertical offset between edges exiting a vertex
mxImageShape.prototype.preserveImageAspect
Switch to preserve image aspect.
mxGraphHandler.prototype.previewColor
Specifies the color of the preview shape.
mxDragSource.prototype.previewElement
Optional mxRectangle that specifies the unscaled size of the preview.
mxPanningHandler.prototype.previewEnabled
Specifies if the panning should be previewed.
mxCoordinateAssignment.prototype.previousLayerConnectedCache
A store of connections to the layer below for speed
mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells
A cached version of the cells this cell connects to on the next layer down
mxPrintPreview.prototype.print = function()
Opens the print preview and shows the print dialog.
mxPrintPreview.prototype.printOverlays
Specifies if overlays should be printed.
printScreen: function(graph)
Prints the specified graph using a new window and the built-in print dialog.
mxCellMarker.prototype.process = function(me)
Processes the given event and cell and marks the state returned by getState with the color returned by getMarkerColor.
mxGraph.prototype.processChange = function(change)
Processes the given change and invalidates the respective cached data in view.
mxSession.prototype.processDelta = function(node)
Processes the given delta node which contains a sequence of edits which in turn map to one transaction on the remote model each.
mxSession.prototype.processEdit = function(node)
Processes the given edit by executing its changes and firing the required events via the model.
mxObjectCodec.prototype.processInclude = function(dec,
node,
into)
Returns true if the given node is an include directive and executes the include by decoding the XML document.
mxCoordinateAssignment.prototype.processReversedEdge = function(graph,
model)
Hook to add additional processing
mxSession.prototype.processState = function(node)
Processes the given state node which contains the current state of the remote model.
prompt: function(message,
defaultValue)
Displays the given message in a prompt dialog.
mxEventObject.prototype.properties
Holds the properties as an associative array.
mxEditor.prototype.propertiesHeight
Specifies the height of the properties window in pixels.
mxEditor.prototype.propertiesResource
Specifies the resource key for the properties window title.
mxEditor.prototype.propertiesWidth
Specifies the width of the properties window in pixels.
Returns the square distance between a segment and a point.
mxDictionary.prototype.put = function(key,
value)
Stores the value under the given key and returns the previous value for that key.
mxStylesheet.prototype.putCellStyle = function(name,
style)
Stores the given map of key, value pairs under the given name in styles.
mxStylesheet.prototype.putDefaultEdgeStyle = function(style)
Sets the default style for edges using defaultEdge as the stylename.
mxStylesheet.prototype.putDefaultVertexStyle = function(style)
Sets the default style for vertices using defaultVertex as the stylename.
mxImageBundle.prototype.putImage = function(key,
value,
fallback)
Adds the specified entry to the map.
mxCodec.prototype.putObject = function(id,
obj)
Assoiates the given object with the given ID and returns the given object.
putValue: function(name,
obj)
Puts the given object into the registry under the given name.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General14.html b/docs/js-api/index/General14.html new file mode 100644 index 000000000..62e793dbc --- /dev/null +++ b/docs/js-api/index/General14.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
Q
 quadTo
+ +
mxPath.prototype.quadTo = function(x1,
y1,
x,
y)
Draws a quadratic Bézier curve from the current point to (x, y) using (x1, y1) as the control point.
quadTo: function(x1,
y1,
x2,
y2)
Adds a quadratic curve to the current path.
quadTo: function(x1,
y1,
x2,
y2)
Adds a quadratic curve to the current path.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General15.html b/docs/js-api/index/General15.html new file mode 100644 index 000000000..bece230f6 --- /dev/null +++ b/docs/js-api/index/General15.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
R
 radius
 radiusSquared, mxFastOrganicLayout
 rankBottomY, mxCoordinateAssignment
 rankCoordinates, mxCoordinateAssignment
 rankIndex, WeightedCellSorter
 rankMedianPosition, mxCoordinateAssignment
 ranks, mxGraphHierarchyModel
 rankTopY, mxCoordinateAssignment
 rankWidths, mxCoordinateAssignment
 rankY, mxCoordinateAssignment
 readGraphModel, mxEditor
 receive, mxSession
 RECEIVE
 received, mxSession
 reconfigure
 rect
 RECTANGLE_ROUNDING_FACTOR, mxConstants
 rectangleIntersectsSegment, mxUtils
 RectanglePerimeter, mxPerimeter
 redirectMouseEvents, mxEvent
 redo
 REDO
 redone, mxUndoableEdit
 redraw
 redrawBackgroundImage, mxGraphView
 redrawCellOverlays, mxCellRenderer
 redrawControl, mxCellRenderer
 redrawForeignObject, mxText
 redrawHtml
 redrawHtmlTable, mxText
 redrawIcons, mxConnectionHandler
 redrawInnerBends
 redrawLabel, mxCellRenderer
 redrawMarker, mxConnector
 redrawPageBreaks, mxGraph
 redrawPath
 redrawShape, mxStencilShape
 redrawSvg
 redrawSvgTextNodes, mxText
 redrawTextbox, mxText
 redrawVml
 reduceTemperature, mxFastOrganicLayout
 reference, mxCodec
 refresh
 REFRESH
 refreshHandler, mxSelectionCellsHandler
 refreshTasks, mxEditor
 register, mxCodecRegistry
 registerShape, mxCellRenderer
 relative, mxGeometry
 relativeCcw, mxUtils
 release, mxEvent
 releaseSvgClip, mxText
 remove
 REMOVE_CELLS
 REMOVE_CELLS_FROM_PARENT
 REMOVE_OVERLAY
 removeAllListeners, mxEvent
 removeAllStylenames, mxUtils
 removeCell, mxGraphSelectionModel
 removeCellOverlay, mxGraph
 removeCellOverlays, mxGraph
 removeCells
 removeCellsFromParent
 removeCursors, mxUtils
 removeEdge, mxCell
 removeEnabled, mxEdgeHandler
 removeFromParent, mxCell
 removeFromTerminal, mxCell
 removeImageBundle, mxGraph
 removeListener
 removeMouseListener, mxGraph
 removePoint, mxEdgeHandler
 removeSelectionCell, mxGraph
 removeSelectionCells, mxGraph
 removeState, mxGraphView
 removeStateForCell, mxGraph
 removeStylename, mxUtils
 removeWhitespace, mxUtils
 renderDom, mxStencil
 renderHint, mxGraph
 rendering, mxGraphView
 RENDERING_HINT_EXACT, mxConstants
 RENDERING_HINT_FASTER, mxConstants
 RENDERING_HINT_FASTEST, mxConstants
 renderPage, mxPrintPreview
 repaint, mxRubberband
 repaintGraph, mxUtils
 replaceLinefeeds, mxText
 repositionValid, mxCoordinateAssignment
 request, mxXmlRequest
 reset
 resetEdge, mxGraph
 resetEdges
 resetEdgesOnConnect, mxGraph
 resetEdgesOnMove, mxGraph
 resetEdgesOnResize, mxGraph
 resetFirstTime, mxEditor
 resetHandler
 resetHistory, mxEditor
 resetMode, mxToolbar
 resetTimer, mxTooltipHandler
 resetViewOnRootChange, mxGraph
 resize, mxDivResizer
 RESIZE, mxEvent
 RESIZE_CELLS
 RESIZE_END, mxEvent
 RESIZE_START, mxEvent
 resizeCell
 resizeCells, mxGraph
 resizeContainer, mxGraph
 resizeEnabled, mxSwimlaneManager
 resizeHandler, mxSpaceManager
 resizeHeight, mxDivResizer
 resizeLast, mxStackLayout
 resizeParent
 resizeSwimlane, mxSwimlaneManager
 resizeVertices, mxPartitionLayout
 resizeWidth, mxDivResizer
 resolve, mxCellPath
 resolveColor, mxCellRenderer
 resources, mxResources
 restore
 restoreClone, mxGraphModel
 resume, mxSession
 RESUME
 revalidate, mxGraphView
 revalidateState, mxCellStatePreview
 reverse, mxObjectCodec
 reversePortConstraints, mxUtils
 RhombusPerimeter, mxPerimeter
 root, mxGraphModel
 ROOT
 rootChanged, mxGraphModel
 roots
 rotate
 roundedCrispSvg, mxShape
 roundrect
 route, mxParallelEdgeLayout
 rtrim, mxUtils
 run, mxHierarchicalLayout
+ +
mxCircleLayout.prototype.radius
Integer specifying the size of the radius.
mxFastOrganicLayout.prototype.radius
The approximate radius of each cell, nodes only.
mxFastOrganicLayout.prototype.radiusSquared
The approximate radius squared of each cell, nodes only.
mxCoordinateAssignment.prototype.rankBottomY
Internal cache of bottom-most value of Y for each rank
mxCoordinateAssignment.prototype.rankCoordinates = function(rankValue,
graph,
model)
Sets up the layout in an initial positioning.
WeightedCellSorter.prototype.rankIndex
The index this cell is in the model rank.
mxCoordinateAssignment.prototype.rankMedianPosition = function(rankValue,
model,
nextRankValue)
Performs median minimisation over one rank.
mxGraphHierarchyModel.prototype.ranks
Mapping from rank number to actual rank
mxCoordinateAssignment.prototype.rankTopY
Internal cache of top-most values of Y for each rank
mxCoordinateAssignment.prototype.rankWidths
The width of all the ranks
mxCoordinateAssignment.prototype.rankY
The Y-coordinate of all the ranks
mxEditor.prototype.readGraphModel = function (node)
Reads the specified XML node into the existing graph model and resets the command history and modified state.
mxSession.prototype.receive = function(node)
Processes the given node by applying the changes to the model.
Specifies the event name for receive.
Fires after an XML node was received in receive.
mxSession.prototype.received
Total number of received bytes.
mxArrow.prototype.reconfigure = function()
Extends mxActor.reconfigure to ignore fill if enableFill is false.
mxCylinder.prototype.reconfigure = function()
Overrides the method to make sure the stroke is applied to the foreground.
mxLabel.prototype.reconfigure = function()
Reconfigures this shape.
mxShape.prototype.reconfigure = function()
Reconfigures this shape.
mxSwimlane.prototype.reconfigure = function(node)
Overrides to avoid filled content area in HTML and updates the shadow in SVG.
rect: function(x,
y,
w,
h)
Sets the current path to a rectangle.
rect: function(x,
y,
w,
h)
Sets the current path to a rectangle.
Defines the rounding factor for rounded rectangles in percent between 0 and 1.
rectangleIntersectsSegment: function(bounds,
p1,
p2)
Returns true if the given rectangle intersects the given segment.
RectanglePerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes a rectangular perimeter for the given bounds.
redirectMouseEvents: function(node,
graph,
state,
down,
move,
up,
dblClick)
Redirects the mouse events from the given DOM node to the graph dispatch loop using the event and given state as event arguments.
mxEditor.prototype.redo = function ()
Redo the last change in graph.
mxUndoableEdit.prototype.redo = function()
Redoes all changes in this edit.
mxUndoManager.prototype.redo = function()
Redoes the last change.
Specifies the event name for redo.
Fires afer a significant edit was redone in redo.
mxUndoableEdit.prototype.redone
Specifies if this edit has been redone.
mxCellRenderer.prototype.redraw = function(state)
Updates the bounds or points and scale of the shapes for the given cell state.
mxEdgeHandler.prototype.redraw = function()
Redraws the preview, and the bends- and label control points.
mxImageShape.prototype.redraw = function()
Overrides mxShape.redraw to preserve the aspect ratio of images.
mxLabel.prototype.redraw = function()
Overrides redraw to define a unified implementation for redrawing all supported dialects.
mxShape.prototype.redraw = function()
Invokes redrawSvg, redrawVml or redrawHtml depending on the dialect of the shape.
mxStencilShape.prototype.redraw = function()
Creates and returns the SVG node(s) to represent this shape.
mxVertexHandler.prototype.redraw = function()
Redraws the handles and the preview.
mxGraphView.prototype.redrawBackgroundImage = function(backgroundImage,
bg)
Updates the bounds and redraws the background image.
mxCellRenderer.prototype.redrawCellOverlays = function(state)
Redraws the overlays for the given cell state.
mxCellRenderer.prototype.redrawControl = function(state)
Redraws the control for the given cell state.
mxText.prototype.redrawForeignObject = function()
Redraws the foreign object for this text.
mxRhombus.prototype.redrawHtml = function()
Updates the HTML node(s) to reflect the latest bounds and scale.
mxShape.prototype.redrawHtml = function()
Redraws this HTML shape by invoking updateHtmlShape on this.node.
mxSwimlane.prototype.redrawHtml = function()
Updates the HTML node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawHtml = function()
Updates the HTML node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawHtmlTable = function()
Redraws the HTML table.
mxConnectionHandler.prototype.redrawIcons = function(icons,
state)
Redraws the given array of mxImageShapes.
mxEdgeSegmentHandler.prototype.redrawInnerBends = function(p0,
pe)
Updates the position of the custom bends.
mxEdgeHandler.prototype.redrawInnerBends = function(p0,
pe)
Updates and redraws the inner bends.
mxElbowEdgeHandler.prototype.redrawInnerBends = function(p0,
pe)
Updates and redraws the inner bends.
mxCellRenderer.prototype.redrawLabel = function(state)
Redraws the label for the given cell state.
mxConnector.prototype.redrawMarker = function(node,
type,
p0,
pe,
color,
size)
Updates the given SVG or VML marker.
Invokes from sizeDidChange to redraw the page breaks.
mxActor.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxArrow.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxCloud.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxCylinder.prototype.redrawPath = function(path,
x,
y,
w,
h,
isForeground)
Draws the path for this shape.
mxHexagon.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxShape.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxTriangle.prototype.redrawPath = function(path,
x,
y,
w,
h)
Draws the path for this shape.
mxStencilShape.prototype.redrawShape = function()
Updates the SVG or VML shape.
mxActor.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxArrow.prototype.redrawSvg = function()
Extends mxActor.redrawSvg to update the event handling shape if one exists.
mxConnector.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxCylinder.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxDoubleEllipse.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxEllipse.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxImageShape.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxLine.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxPolyline.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxRhombus.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxShape.prototype.redrawSvg = function()
Redraws this SVG shape by invoking updateSvgShape on this.node, this.innerNode and this.shadowNode.
mxSwimlane.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawSvg = function()
Updates the SVG node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawSvgTextNodes = function(x,
y,
dy)
Hook to update the position of the SVG text nodes.
mxText.prototype.redrawTextbox = function()
Redraws the textbox for this text.
mxActor.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
Redraws this VML shape by invoking updateVmlShape on this.node.
mxCylinder.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxDoubleEllipse.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
Redraws this VML shape by invoking updateVmlShape on this.node.
mxPolyline.prototype.redrawVml = function()
Overrides the method to update the bounds if they have not been assigned.
mxRhombus.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxShape.prototype.redrawVml = function()
Redraws this VML shape by invoking updateVmlShape on this.node.
mxSwimlane.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxText.prototype.redrawVml = function()
Updates the VML node(s) to reflect the latest bounds and scale.
mxFastOrganicLayout.prototype.reduceTemperature = function()
Reduces the temperature of the layout from an initial setting in a linear fashion to zero.
mxCodec.prototype.reference = function(obj)
Hook for subclassers to implement a custom method for retrieving IDs from objects.
mxEdgeSegmentHandler.prototype.refresh = function()
Refreshes the bends of this handler.
mxGraph.prototype.refresh = function(cell)
Clears all cell states or the states for the hierarchy starting at the given cell and validates the graph.
mxGraphView.prototype.refresh = function()
Clears the view if currentRoot is not null and revalidates.
mxOutline.prototype.refresh = function()
Invokes update and revalidate the outline.
mxSelectionCellsHandler.prototype.refresh = function()
Reloads or updates all handlers.
Specifies the event name for refresh.
Fires after refresh was executed.
mxSelectionCellsHandler.prototype.refreshHandler
Keeps a reference to an event listener for later removal.
mxEditor.prototype.refreshTasks = function (div)
Updates the contents of the tasks window using createTasks.
register: function(codec)
Registers a new codec and associates the name of the template constructor in the codec with the codec object.
mxCellRenderer.prototype.registerShape = function(key,
shape)
Registers the given constructor under the specified key in this instance of the renderer.
mxGeometry.prototype.relative
Specifies if the coordinates in the geometry are to be interpreted as relative coordinates.
relativeCcw: function(x1,
y1,
x2,
y2,
px,
py)
Returns 1 if the given point on the right side of the segment, 0 if its on the segment, and -1 if the point is on the left side of the segment.
release: function(element)
Removes the known listeners from the given DOM node and its descendants.
mxText.prototype.releaseSvgClip = function()
Releases the given SVG clip removing it from the DOM if required.
mxCell.prototype.remove = function(index)
Removes the child at the specified index from the child array and returns the child that was removed.
mxDictionary.prototype.remove = function(key)
Removes the value for the given key and returns the value that has been removed.
mxGraphModel.prototype.remove = function(cell)
Removes the specified cell from the model using mxChildChange and adds the change to the current transaction.
remove: function(obj,
array)
Removes all occurrences of the given object in the given array or object.
Specifies the event name for removeCells.
Fires between begin- and endUpdate in removeCells.
Specifies the event name for removeCellsFromParent.
Fires between begin- and endUpdate in removeCellsFromParent.
Specifies the event name for removeOverlay.
Fires after an overlay is removed in removeCellOverlay and removeCellOverlays.
removeAllListeners: function(element)
Removes all listeners from the given element.
removeAllStylenames: function(style)
Removes all stylenames from the given style and returns the updated style.
mxGraphSelectionModel.prototype.removeCell = function(cell)
Removes the specified mxCell from the selection and fires a select event for the remaining cells.
mxGraph.prototype.removeCellOverlay = function(cell,
overlay)
Removes and returns the given mxCellOverlay from the given cell.
mxGraph.prototype.removeCellOverlays = function(cell)
Removes all mxCellOverlays from the given cell.
removeCells: function(graph,
cells)
Hook to remove the given cells from the given graph after a cut operation.
mxGraph.prototype.removeCells = function(cells,
includeEdges)
Removes the given cells from the graph including all connected edges if includeEdges is true.
mxGraphSelectionModel.prototype.removeCells = function(cells)
mxGraph.prototype.removeCellsFromParent = function(cells)
Removes the specified cells from their parents and adds them to the default parent.
mxGraphHandler.prototype.removeCellsFromParent
Specifies if cells may be moved out of their parents.
removeCursors: function(element)
Removes the cursors from the style of the given DOM node and its descendants.
mxCell.prototype.removeEdge = function(edge,
isOutgoing)
Removes the specified edge from the edge array and returns the edge.
mxEdgeHandler.prototype.removeEnabled
Specifies if removing bends by shift-click is enabled.
mxCell.prototype.removeFromParent = function()
Removes the cell from its parent.
mxCell.prototype.removeFromTerminal = function(isSource)
Removes the edge from its source or target terminal.
mxGraph.prototype.removeImageBundle = function(bundle)
Removes the specified mxImageBundle.
removeListener: function()
Removes the specified listener from the given element.
mxEventSource.prototype.removeListener = function(funct)
Removes all occurrences of the given listener from eventListeners.
mxGraph.prototype.removeMouseListener = function(listener)
Removes the specified graph listener.
mxEdgeHandler.prototype.removePoint = function(state,
index)
Removes the control point at the given index from the given state.
mxGraph.prototype.removeSelectionCell = function(cell)
Removes the given cell from the selection.
mxGraph.prototype.removeSelectionCells = function(cells)
Removes the given cells from the selection.
mxGraphView.prototype.removeState = function(cell)
Removes and returns the mxCellState for the given cell.
mxGraph.prototype.removeStateForCell = function(cell)
Removes all cached information for the given cell and its descendants.
removeStylename: function(style,
stylename)
Removes all occurrences of the specified stylename in the given style and returns the updated style.
removeWhitespace: function(node,
before)
Removes the sibling text nodes for the given node that only consists of tabs, newlines and spaces.
mxStencil.prototype.renderDom = function(shape,
bounds,
parentNode,
state)
Updates the SVG or VML shape.
mxGraph.prototype.renderHint
RenderHint as it was passed to the constructor.
mxGraphView.prototype.rendering
Specifies if shapes should be created, updated and destroyed using the methods of mxCellRenderer in graph.
Defines the exact rendering hint.
Defines the faster rendering hint.
Defines the fastest rendering hint.
mxPrintPreview.prototype.renderPage = function(w,
h,
dx,
dy,
scale,
pageNumber)
Creates a DIV that prints a single page of the given graph using the given scale and returns the DIV that represents the page.
mxRubberband.prototype.repaint = function()
Computes the bounding box and updates the style of the div.
repaintGraph: function(graph,
pt)
Normally not required, this contains the code to workaround a repaint issue and force a repaint of the graph container in AppleWebKit.
mxText.prototype.replaceLinefeeds
Specifies if linefeeds in HTML labels should be replaced with BR tags.
mxCoordinateAssignment.prototype.repositionValid = function(model,
cell,
rank,
position)
Determines whether or not a node may be moved to the specified x position on the specified rank
mxXmlRequest.prototype.request
Holds the inner, browser-specific request object.
mxAutoSaveManager.prototype.reset = function()
Resets all counters.
mxCellMarker.prototype.reset = function()
Resets the state of the cell marker.
mxConnectionHandler.prototype.reset = function()
Resets the state of this handler.
mxConstraintHandler.prototype.reset = function()
Resets the state of this handler.
mxEdgeHandler.prototype.reset = function()
Resets the state of this handler.
mxGraphHandler.prototype.reset = function()
Resets the state of this handler.
mxRubberband.prototype.reset = function()
Resets the state of the rubberband selection.
mxSelectionCellsHandler.prototype.reset = function()
Resets all handlers.
mxTooltipHandler.prototype.reset = function(me,
restart)
Resets and/or restarts the timer to trigger the display of the tooltip.
mxVertexHandler.prototype.reset = function()
Resets the state of this handler.
mxGraph.prototype.resetEdge = function(edge)
Resets the control points of the given edge.
mxCircleLayout.prototype.resetEdges
Specifies if all edge points of traversed edges should be removed.
mxCompactTreeLayout.prototype.resetEdges
Specifies if all edge points of traversed edges should be removed.
mxFastOrganicLayout.prototype.resetEdges
Specifies if all edge points of traversed edges should be removed.
mxGraph.prototype.resetEdges = function(cells)
Resets the control points of the edges that are connected to the given cells if not both ends of the edge are in the given cells array.
mxGraph.prototype.resetEdgesOnConnect
Specifies if edge control points should be reset after the the edge has been reconnected.
mxGraph.prototype.resetEdgesOnMove
Specifies if edge control points should be reset after the move of a connected cell.
mxGraph.prototype.resetEdgesOnResize
Specifies if edge control points should be reset after the resize of a connected cell.
mxEditor.prototype.resetFirstTime = function ()
Resets the cookie that is used to remember if the editor has already been used.
mxCellHighlight.prototype.resetHandler
Holds the handler that automatically invokes reset if the highlight should be hidden.
mxDefaultToolbar.prototype.resetHandler
Reference to the function used to reset the toolbar.
mxEditor.prototype.resetHistory = function ()
Resets the command history, modified state and counters.
mxToolbar.prototype.resetMode = function(forced)
Selects the default mode and resets the state of the previously selected mode.
mxTooltipHandler.prototype.resetTimer = function()
Resets the timer.
mxGraph.prototype.resetViewOnRootChange
Specifies if the scale and translate should be reset if the root changes in the model.
mxDivResizer.prototype.resize = function()
Updates the style of the DIV after the window has been resized.
Specifies the event name for resize.
Specifies the event name for resizeCells.
Fires between begin- and endUpdate in resizeCells.
Specifies the event name for resizeEnd.
Specifies the event name for resizeStart.
mxGraph.prototype.resizeCell = function(cell,
bounds)
Sets the bounds of the given cell using resizeCells.
mxVertexHandler.prototype.resizeCell = function(cell,
dx,
dy,
index,
gridEnabled)
Uses the given vector to change the bounds of the given cell in the graph using mxGraph.resizeCell.
mxGraph.prototype.resizeCells = function(cells,
bounds)
Sets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS event while the transaction is in progress.
mxGraph.prototype.resizeContainer
Specifies if the container should be resized to the graph size when the graph size has changed.
mxSwimlaneManager.prototype.resizeEnabled
Specifies if resizing of swimlanes should be handled.
mxSpaceManager.prototype.resizeHandler
Holds the function that handles the move event.
Boolean specifying if the height should be updated.
mxStackLayout.prototype.resizeLast
If the last element should be resized to fill out the parent.
mxCompactTreeLayout.prototype.resizeParent
If the parents should be resized to match the width/height of the children.
mxHierarchicalLayout.prototype.resizeParent
Specifies if the parent should be resized after the layout so that it contains all the child cells.
mxStackLayout.prototype.resizeParent
If the parent should be resized to match the width/height of the stack.
mxSwimlaneManager.prototype.resizeSwimlane = function(swimlane,
w,
h)
Called from cellsResized for all swimlanes that are not ignored to update the size of the siblings and the size of the parent swimlanes, recursively, if bubbling is true.
mxPartitionLayout.prototype.resizeVertices
Boolean that specifies if vertices should be resized.
Boolean specifying if the width should be updated.
resolve: function(root,
path)
Returns the cell for the specified cell path using the given root as the root of the path.
mxCellRenderer.prototype.resolveColor = function(state,
field,
key)
Resolves special keywords ‘inherit’, ‘indicated’ and ‘swimlane’ and sets the respective color on the shape.
Associative array that maps from keys to values.
restore: function()
Restores the state of the graphics object.
restore: function()
Restores the state of the graphics object.
mxGraphModel.prototype.restoreClone = function(clone,
cell,
mapping)
Inner helper method for restoring the connections in a network of cloned cells.
mxSession.prototype.resume = function(type,
attr,
value)
Resumes the session if it has been suspended.
Specifies the event name for suspend.
Fires after the session was resumed in resume.
mxGraphView.prototype.revalidate = function()
Revalidates the complete view with all cell states.
mxCellStatePreview.prototype.revalidateState = function(parentState,
state,
dx,
dy,
visitor)
mxObjectCodec.prototype.reverse
Maps from from XML attribute names to fieldnames.
reversePortConstraints: function(constraint)
Reverse the port constraint bitmask.
RhombusPerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes a rhombus (aka diamond) perimeter.
mxGraphModel.prototype.root
Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells.
Fires when the current root has changed, or when the title of the current root has changed.
Specifies the event name for root.
Fires if the root in the model has changed.
mxGraphModel.prototype.rootChanged = function(root)
Inner callback to change the root of the model and update the internal datastructures, such as cells and nextId.
mxGraphHierarchyModel.prototype.roots
Store of roots of this hierarchy model, these are real graph cells, not internal cells
mxHierarchicalLayout.prototype.roots
Holds the array of mxGraphLayouts that this layout contains.
rotate: function(theta,
flipH,
flipV,
cx,
cy)
Rotates and/or flips the current graphics object.
rotate: function(theta,
flipH,
flipV,
cx,
cy)
Rotates and/or flips the current graphics object.
mxShape.prototype.roundedCrispSvg
Specifies if crisp rendering should be enabled for rounded shapes.
roundrect: function(x,
y,
w,
h,
dx,
dy)
Sets the current path to a rounded rectangle.
roundrect: function(x,
y,
w,
h,
dx,
dy)
Sets the current path to a rounded rectangle.
mxParallelEdgeLayout.prototype.route = function(edge,
x,
y)
Routes the given edge via the given point.
rtrim: function(str,
chars)
Strips all whitespaces from the end of the string.
mxHierarchicalLayout.prototype.run = function(parent)
The API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General16.html b/docs/js-api/index/General16.html new file mode 100644 index 000000000..d9e813bce --- /dev/null +++ b/docs/js-api/index/General16.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
S
 save
 SAVE
 saveAs, mxUtils
 scale
 SCALE
 SCALE_AND_TRANSLATE
 scaleAndTranslate, mxGraphView
 scaleGrid, mxGraphHandler
 scanRanksFromSinks, mxGraphHierarchyModel
 scheduleUpdateAspect, mxImageShape
 scrollCellToVisible, mxGraph
 scrollOnMove, mxGraphHandler
 scrollPointToVisible, mxGraph
 scrollRectToVisible, mxGraph
 SegmentConnector, mxEdgeStyle
 segments, mxCellState
 select, mxConnectionHandler
 SELECT
 selectAll, mxGraph
 selectCell, mxGraph
 selectCellForEvent, mxGraph
 selectCells
 selectCellsForEvent, mxGraph
 selectChildCell, mxGraph
 selectDelayed, mxGraphHandler
 selectEnabled, mxGraphHandler
 Selection, mxGraph
 Selection state, mxGraph
 SELECTION_DASHED, mxConstants
 selectionModel, mxGraph
 selectMode, mxToolbar
 selectNextCell, mxGraph
 selectOnPopup, mxPanningHandler
 selectParentCell, mxGraph
 selectPreviousCell, mxGraph
 selectRegion, mxGraph
 selectVertices, mxGraph
 send
 sent, mxSession
 SESSION
 setAbsoluteTerminalPoint, mxCellState
 setAddEnabled, mxSwimlaneManager
 setAllowDanglingEdges, mxGraph
 setAllowEval, mxGraphView
 setAllowLoops, mxGraph
 setAlpha
 setAttribute
 setAutoAntiAlias, mxSvgCanvas2D
 setAutoSizeCells, mxGraph
 setBackgroundImage, mxGraph
 setBaseUrl, mxUrlConverter
 setBinary, mxXmlRequest
 setBorder, mxGraph
 setBubbling, mxLayoutManager
 setCell, mxGraphSelectionModel
 setCellLocations, mxCoordinateAssignment
 setCells, mxGraphSelectionModel
 setCellsBendable, mxGraph
 setCellsCloneable, mxGraph
 setCellsDeletable, mxGraph
 setCellsDisconnectable, mxGraph
 setCellsEditable, mxGraph
 setCellsMovable, mxGraph
 setCellsResizable, mxGraph
 setCellsSelectable, mxGraph
 setCellStyle, mxGraph
 setCellStyleFlags
 setCellStyles
 setCellWarning, mxGraph
 setCloneEnabled, mxGraphHandler
 setCloneInvalidEdges, mxGraph
 setClosable, mxWindow
 setCollapsed
 setCompressed, mxXmlCanvas2D
 setConnectable
 setConnectableEdges, mxGraph
 setConnectionConstraint, mxGraph
 setConstrainChildren, mxGraph
 setCreateIds, mxGraphModel
 setCreateTarget, mxConnectionHandler
 setCurrentRoot, mxGraphView
 setCursor
 setDashed
 setDashPattern
 setDefaultParent, mxGraph
 setDisconnectOnMove, mxGraph
 setDropEnabled, mxGraph
 setEdge, mxCell
 setEdgePoints, mxGraphLayout
 setEdgePosition, mxCoordinateAssignment
 setEdgeStyleEnabled, mxGraphLayout
 setEnabled
 setEnterStopsCellEditing, mxGraph
 setEscapeEnabled, mxGraph
 setEventsEnabled, mxEventSource
 setEventSource, mxEventSource
 setExtendParents, mxGraph
 setExtendParentsOnAdd, mxGraph
 setFillColor
 setFoEnabled, mxSvgCanvas2D
 setFontColor
 setFontFamily
 setFontSize
 setFontStyle
 setGeneralPurposeVariable
 setGeometry
 setGlassGradient
 setGradient
 setGraph
 setGraphBounds, mxGraphView
 setGraphContainer, mxEditor
 setGridEnabled
 setGridSize, mxGraph
 setGuidesEnabled, mxDragSource
 setHideOnHover, mxTooltipHandler
 setHighlightColor
 setHorizontal, mxSwimlaneManager
 setHotspot, mxCellMarker
 setHotspotEnabled, mxCellMarker
 setHtmlLabels, mxGraph
 setId, mxCell
 setImage, mxWindow
 setInvokesStopCellEditing, mxGraph
 setLineCap
 setLineJoin
 setLocation, mxWindow
 setLocked, mxGraph
 setMaximizable, mxWindow
 setMinimizable, mxWindow
 setMiterLimit
 setMode, mxEditor
 setModified
 setMoveEnabled, mxGraphHandler
 setMultigraph, mxGraph
 setOpacity, mxUtils
 setOrthogonalEdge, mxGraphLayout
 setPanning, mxGraph
 setPanningEnabled, mxPanningHandler
 setParent, mxCell
 setPortsEnabled, mxGraph
 setPreviewColor, mxEdgeHandler
 setRect, mxRectangle
 setRemoveCellsFromParent, mxGraphHandler
 setRendering, mxGraphView
 setRequestHeaders, mxXmlRequest
 setResizable, mxWindow
 setResizeContainer, mxGraph
 setResizeEnabled, mxSwimlaneManager
 setRoot, mxGraphModel
 setScale, mxGraphView
 setScrollable, mxWindow
 setSelectEnabled, mxGraphHandler
 setSelectionCell, mxGraph
 setSelectionCells, mxGraph
 setSelectionModel, mxGraph
 setShiftDownwards, mxSpaceManager
 setShiftRightwards, mxSpaceManager
 setSingleSelection, mxGraphSelectionModel
 setSize, mxWindow
 setSplitEnabled, mxGraph
 setStates
 setStatus, mxEditor
 setStatusContainer, mxEditor
 setStrokeColor
 setStrokeWidth
 setStyle
 setStyleFlag, mxUtils
 setStylesheet, mxGraph
 setSwimlaneNesting, mxGraph
 setSwimlaneSelectionEnabled, mxGraph
 setTerminal
 setTerminalPoint, mxGeometry
 setTerminals, mxGraphModel
 setTextEnabled
 setTitle, mxWindow
 setTitleContainer, mxEditor
 setTolerance, mxGraph
 setToolbarContainer, mxEditor
 setTooltips, mxGraph
 setTranslate
 setValue
 setVertex, mxCell
 setVertexLabelsMovable, mxGraph
 setVertexLocation
 setVisible
 setVisibleTerminalState, mxCellState
 setX, mxGraphAbstractHierarchyCell
 setY, mxGraphAbstractHierarchyCell
 setZoomEnabled, mxOutline
 shadow
 SHADOW_OFFSET_X, mxConstants
 SHADOW_OFFSET_Y, mxConstants
 SHADOW_OPACITY, mxConstants
 SHADOWCOLOR, mxConstants
 shape
 SHAPE_ACTOR, mxConstants
 SHAPE_ARROW, mxConstants
 SHAPE_CLOUD, mxConstants
 SHAPE_CONNECTOR, mxConstants
 SHAPE_CYLINDER, mxConstants
 SHAPE_DOUBLE_ELLIPSE, mxConstants
 SHAPE_ELLIPSE, mxConstants
 SHAPE_HEXAGON, mxConstants
 SHAPE_IMAGE, mxConstants
 SHAPE_LABEL, mxConstants
 SHAPE_LINE, mxConstants
 SHAPE_RECTANGLE, mxConstants
 SHAPE_RHOMBUS, mxConstants
 SHAPE_SWIMLANE, mxConstants
 SHAPE_TRIANGLE, mxConstants
 shapes
 sharedDiv, mxRubberband
 shiftCell, mxSpaceManager
 shiftDownwards, mxSpaceManager
 shiftKeys, mxKeyHandler
 shiftRightwards, mxSpaceManager
 shouldRemoveCellsFromParent, mxGraphHandler
 show
 SHOW
 showHelp, mxEditor
 showMenu, mxPopupMenu
 showOutline, mxEditor
 showProperties, mxEditor
 showSubmenu, mxPopupMenu
 showTasks, mxEditor
 showViewport, mxOutline
 SideToSide, mxEdgeStyle
 significant, mxUndoableEdit
 significantRemoteChanges, mxSession
 simulate, mxXmlRequest
 singleSelection, mxGraphSelectionModel
 singleSizer, mxVertexHandler
 size, mxUndoManager
 SIZE
 sizeDidChange, mxGraph
 sizerImage, mxOutline
 smartSeparators, mxPopupMenu
 snap
 snapToTerminals, mxEdgeHandler
 sortCells, mxUtils
 source
 sourcePoint, mxGeometry
 SOURCESCANSTARTRANK, mxGraphHierarchyModel
 spacing
 SPLIT_EDGE
 splitEdge, mxGraph
 splitEnabled, mxGraph
 src, mxImage
 start
 START_EDITING
 startAnimation, mxAnimation
 startDrag, mxDragSource
 startEditing
 startEditingAtCell, mxGraph
 startOffset, mxShape
 state
 states, mxGuide
 status, mxEditor
 stencil, mxStencilShape
 step, mxMorphing
 steps, mxMorphing
 STEPSIZE, mxClipboard
 stop, mxSession
 stopAnimation, mxAnimation
 stopDrag, mxDragSource
 stopEditing
 stopRecursion, mxMorphing
 stroke
 strokedBackground, mxCylinder
 strokewidth, mxStencil
 style
 STYLE_ALIGN, mxConstants
 STYLE_ARCSIZE, mxConstants
 STYLE_AUTOSIZE, mxConstants
 STYLE_BENDABLE, mxConstants
 STYLE_CLONEABLE, mxConstants
 STYLE_DASHED, mxConstants
 STYLE_DELETABLE, mxConstants
 STYLE_DIRECTION, mxConstants
 STYLE_EDGE, mxConstants
 STYLE_EDITABLE, mxConstants
 STYLE_ELBOW, mxConstants
 STYLE_ENDARROW, mxConstants
 STYLE_ENDFILL, mxConstants
 STYLE_ENDSIZE, mxConstants
 STYLE_ENTRY_PERIMETER, mxConstants
 STYLE_ENTRY_X, mxConstants
 STYLE_ENTRY_Y, mxConstants
 STYLE_EXIT_PERIMETER, mxConstants
 STYLE_EXIT_X, mxConstants
 STYLE_EXIT_Y, mxConstants
 STYLE_FILLCOLOR, mxConstants
 STYLE_FOLDABLE, mxConstants
 STYLE_FONTCOLOR, mxConstants
 STYLE_FONTFAMILY, mxConstants
 STYLE_FONTSIZE, mxConstants
 STYLE_FONTSTYLE, mxConstants
 STYLE_GLASS, mxConstants
 STYLE_GRADIENT_DIRECTION, mxConstants
 STYLE_GRADIENTCOLOR, mxConstants
 STYLE_HORIZONTAL, mxConstants
 STYLE_IMAGE, mxConstants
 STYLE_IMAGE_ALIGN, mxConstants
 STYLE_IMAGE_ASPECT, mxConstants
 STYLE_IMAGE_BACKGROUND, mxConstants
 STYLE_IMAGE_BORDER, mxConstants
 STYLE_IMAGE_FLIPH, mxConstants
 STYLE_IMAGE_FLIPV, mxConstants
 STYLE_IMAGE_HEIGHT, mxConstants
 STYLE_IMAGE_VERTICAL_ALIGN, mxConstants
 STYLE_IMAGE_WIDTH, mxConstants
 STYLE_INDICATOR_COLOR, mxConstants
 STYLE_INDICATOR_DIRECTION, mxConstants
 STYLE_INDICATOR_GRADIENTCOLOR, mxConstants
 STYLE_INDICATOR_HEIGHT, mxConstants
 STYLE_INDICATOR_IMAGE, mxConstants
 STYLE_INDICATOR_SHAPE, mxConstants
 STYLE_INDICATOR_SPACING, mxConstants
 STYLE_INDICATOR_STROKECOLOR, mxConstants
 STYLE_INDICATOR_WIDTH, mxConstants
 STYLE_LABEL_BACKGROUNDCOLOR, mxConstants
 STYLE_LABEL_BORDERCOLOR, mxConstants
 STYLE_LABEL_PADDING, mxConstants
 STYLE_LABEL_POSITION, mxConstants
 STYLE_LOOP, mxConstants
 STYLE_MOVABLE, mxConstants
 STYLE_NOEDGESTYLE, mxConstants
 STYLE_NOLABEL, mxConstants
 STYLE_OPACITY, mxConstants
 STYLE_ORTHOGONAL, mxConstants
 STYLE_OVERFLOW, mxConstants
 STYLE_PERIMETER, mxConstants
 STYLE_PERIMETER_SPACING, mxConstants
 STYLE_PORT_CONSTRAINT, mxConstants
 STYLE_RESIZABLE, mxConstants
 STYLE_ROTATION, mxConstants
 STYLE_ROUNDED, mxConstants
 STYLE_ROUTING_CENTER_X, mxConstants
 STYLE_ROUTING_CENTER_Y, mxConstants
 STYLE_SEGMENT, mxConstants
 STYLE_SEPARATORCOLOR, mxConstants
 STYLE_SHADOW, mxConstants
 STYLE_SHAPE, mxConstants
 STYLE_SMOOTH, mxConstants
 STYLE_SOURCE_PERIMETER_SPACING, mxConstants
 STYLE_SOURCE_PORT, mxConstants
 STYLE_SPACING, mxConstants
 STYLE_SPACING_BOTTOM, mxConstants
 STYLE_SPACING_LEFT, mxConstants
 STYLE_SPACING_RIGHT, mxConstants
 STYLE_SPACING_TOP, mxConstants
 STYLE_STARTARROW, mxConstants
 STYLE_STARTFILL, mxConstants
 STYLE_STARTSIZE, mxConstants
 STYLE_STENCIL_FLIPH, mxConstants
 STYLE_STENCIL_FLIPV, mxConstants
 STYLE_STROKECOLOR, mxConstants
 STYLE_STROKEWIDTH, mxConstants
 STYLE_TARGET_PERIMETER_SPACING, mxConstants
 STYLE_TARGET_PORT, mxConstants
 STYLE_TEXT_OPACITY, mxConstants
 STYLE_VERTICAL_ALIGN, mxConstants
 STYLE_VERTICAL_LABEL_POSITION, mxConstants
 STYLE_WHITE_SPACE, mxConstants
 styleForCellChanged, mxGraphModel
 styles, mxStylesheet
 stylesheet, mxGraph
 submenuImage, mxPopupMenu
 submit, mxUtils
 suspend, mxSession
 SUSPEND
 suspended, mxOutline
 SVG_STROKE_TOLERANCE, mxShape
 swap, mxGeometry
 swapBounds, mxGraph
 swapStyles, mxEditor
 swimlaneAdded, mxSwimlaneManager
 swimlaneIndicatorColorAttribute, mxGraph
 swimlaneNesting, mxGraph
 swimlaneRequired, mxEditor
 swimlaneSelectionEnabled, mxGraph
 swimlaneSpacing, mxEditor
+ +
mxAutoSaveManager.prototype.save = function()
Empty hook that is called if the graph should be saved.
mxEditor.prototype.save = function (url,
linefeed)
Posts the string returned by writeGraphModel to the given URL or the URL returned by getUrlPost.
save: function()
Saves the state of the graphics object.
save: function(filename,
content)
Saves the specified content in the given file on the local file system.
save: function()
Saves the state of the graphics object.
Fires after the current file was saved in save.
Specifies the event name for open.
saveAs: function(content)
Saves the specified content by displaying a dialog to save the content as a file on the local filesystem.
mxGraphView.prototype.scale
Specifies the scale.
mxPrintPreview.prototype.scale
Holds the scale of the print preview.
mxShape.prototype.scale
Holds the scale in which the shape is being painted.
scale: function(value)
Scales the current graphics object.
scale: function(value)
Scales the current graphics object.
Specifies the event name for scale.
Fires after the scale was changed in setScale.
Specifies the event name for scaleAndTranslate.
Fires after the scale and translate have been changed in scaleAndTranslate.
mxGraphView.prototype.scaleAndTranslate = function(scale,
dx,
dy)
Sets the scale and translation and fires a scale and translate event before calling revalidate followed by mxGraph.sizeDidChange.
mxGraphHandler.prototype.scaleGrid
Specifies if the grid should be scaled.
mxGraphHierarchyModel.prototype.scanRanksFromSinks
Whether the rank assignment is done from the sinks or sources.
mxImageShape.prototype.scheduleUpdateAspect = function()
Schedules an asynchronous updateAspect using the current image.
mxGraph.prototype.scrollCellToVisible = function(cell,
center)
Pans the graph so that it shows the given cell.
mxGraphHandler.prototype.scrollOnMove
Specifies if the view should be scrolled so that a moved cell is visible.
mxGraph.prototype.scrollPointToVisible = function(x,
y,
extend,
border)
Scrolls the graph to the given point, extending the graph container if specified.
mxGraph.prototype.scrollRectToVisible = function(rect)
Pans the graph so that it shows the given rectangle.
SegmentConnector: function(state,
source,
target,
hints,
result)
Implements an orthogonal edge style.
mxCellState.prototype.segments
Array of numbers that represent the cached length of each segment of the edge.
mxConnectionHandler.prototype.select
Specifies if new edges should be selected.
Specifies the event name for select.
Fires when an item was selected in the toolbar.
mxGraph.prototype.selectAll = function(parent)
Selects all children of the given parent cell or the children of the default parent if no parent is specified.
mxGraph.prototype.selectCell = function(isNext,
isParent,
isChild)
Selects the next, parent, first child or previous cell, if all arguments are false.
mxGraph.prototype.selectCellForEvent = function(cell,
evt)
Selects the given cell by either adding it to the selection or replacing the selection depending on whether the given mouse event is a toggle event.
mxConnectionHandler.prototype.selectCells = function(edge,
target)
Selects the given edge after adding a new connection.
mxGraph.prototype.selectCells = function(vertices,
edges,
parent)
Selects all vertices and/or edges depending on the given boolean arguments recursively, starting at the given parent or the default parent if no parent is specified.
mxGraph.prototype.selectCellsForEvent = function(cells,
evt)
Selects the given cells by either adding them to the selection or replacing the selection depending on whether the given mouse event is a toggle event.
mxGraph.prototype.selectChildCell = function()
Selects the first child cell.
mxGraphHandler.prototype.selectDelayed = function(me)
Implements the delayed selection for the given mouse event.
mxGraphHandler.prototype.selectEnabled
Specifies if selecting is enabled.
Defines the dashed state to be used for the vertex selection border.
mxGraph.prototype.selectionModel
Holds the mxGraphSelectionModel that models the current selection.
mxToolbar.prototype.selectMode = function(domNode,
funct)
Resets the state of the previously selected mode and displays the given DOM node as selected.
mxGraph.prototype.selectNextCell = function()
Selects the next cell.
mxPanningHandler.prototype.selectOnPopup
Specifies if cells should be selected if a popupmenu is displayed for them.
mxGraph.prototype.selectParentCell = function()
Selects the parent cell.
mxGraph.prototype.selectPreviousCell = function()
Selects the previous cell.
mxGraph.prototype.selectRegion = function(rect,
evt)
Selects and returns the cells inside the given rectangle for the specified event.
mxGraph.prototype.selectVertices = function(parent)
Select all vertices inside the given parent or the default parent.
mxXmlRequest.prototype.send = function(onload,
onerror)
Send the request to the target URL using the specified functions to process the response asychronously.
mxSession.prototype.sent
Total number of sent bytes.
Fires when anything in the session has changed.
Specifies the event name for session.
mxCellState.prototype.setAbsoluteTerminalPoint = function (point,
isSource)
Sets the first or last point in absolutePoints depending on isSource.
mxSwimlaneManager.prototype.setAddEnabled = function(value)
Sets addEnabled.
mxGraph.prototype.setAllowDanglingEdges = function(value)
Specifies if dangling edges are allowed, that is, if edges are allowed that do not have a source and/or target terminal defined.
mxGraphView.prototype.setAllowEval = function(value)
Sets allowEval.
mxGraph.prototype.setAllowLoops = function(value)
Specifies if loops are allowed.
setAlpha: function(alpha)
Sets the current alpha.
setAlpha: function(alpha)
Sets the current alpha.
mxCell.prototype.setAttribute = function(name,
value)
Sets the specified attribute on the user object if it is an XML node.
mxCodec.prototype.setAttribute = function(node,
attribute,
value)
Sets the attribute on the specified node to value.
setAutoAntiAlias: function(value)
Sets autoAntiAlias.
mxGraph.prototype.setAutoSizeCells = function(value)
Specifies if cell sizes should be automatically updated after a label change.
mxGraph.prototype.setBackgroundImage = function(image)
Sets the new backgroundImage.
setBaseUrl: function(value)
Sets baseUrl.
mxXmlRequest.prototype.setBinary = function(value)
Sets binary.
mxGraph.prototype.setBorder = function(value)
Sets the value of border.
mxLayoutManager.prototype.setBubbling = function(value)
Sets bubbling.
mxGraphSelectionModel.prototype.setCell = function(cell)
Selects the specified mxCell using setCells.
mxCoordinateAssignment.prototype.setCellLocations = function(graph,
model)
Sets the cell locations in the facade to those stored after this layout processing step has completed.
mxGraphSelectionModel.prototype.setCells = function(cells)
Selects the given array of mxCells and fires a change event.
mxGraph.prototype.setCellsBendable = function(value)
Specifies if the graph should allow bending of edges.
mxGraph.prototype.setCellsCloneable = function(value)
Specifies if the graph should allow cloning of cells by holding down the control key while cells are being moved.
mxGraph.prototype.setCellsDeletable = function(value)
Sets cellsDeletable.
mxGraph.prototype.setCellsDisconnectable = function(value)
Sets cellsDisconnectable.
mxGraph.prototype.setCellsEditable = function(value)
Specifies if the graph should allow in-place editing for cell labels.
mxGraph.prototype.setCellsMovable = function(value)
Specifies if the graph should allow moving of cells.
mxGraph.prototype.setCellsResizable = function(value)
Specifies if the graph should allow resizing of cells.
mxGraph.prototype.setCellsSelectable = function(value)
Sets cellsSelectable.
mxGraph.prototype.setCellStyle = function(style,
cells)
Sets the style of the specified cells.
mxGraph.prototype.setCellStyleFlags = function(key,
flag,
value,
cells)
Sets or toggles the given bit for the given key in the styles of the specified cells.
setCellStyleFlags: function(model,
cells,
key,
flag,
value)
Sets or toggles the flag bit for the given key in the cell’s styles.
mxGraph.prototype.setCellStyles = function(key,
value,
cells)
Sets the key to value in the styles of the given cells.
setCellStyles: function(model,
cells,
key,
value)
Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.
mxGraph.prototype.setCellWarning = function(cell,
warning,
img,
isSelect)
Creates an overlay for the given cell using the warning and image or warningImage and returns the new mxCellOverlay.
mxGraphHandler.prototype.setCloneEnabled = function(value)
Sets cloneEnabled.
mxGraph.prototype.setCloneInvalidEdges = function(value)
Specifies if edges should be inserted when cloned but not valid wrt.
mxWindow.prototype.setClosable = function(closable)
Sets the image associated with the window.
mxCell.prototype.setCollapsed = function(collapsed)
Sets the collapsed state.
mxGraphModel.prototype.setCollapsed = function(cell,
collapsed)
Sets the collapsed state of the given mxCell using mxCollapseChange and adds the change to the current transaction.
setCompressed: function(value)
Sets compressed.
mxCell.prototype.setConnectable = function(connectable)
Sets the connectable state.
mxGraph.prototype.setConnectable = function(connectable)
Specifies if the graph should allow new connections.
mxGraph.prototype.setConnectableEdges = function(value)
Specifies if edges should be connectable.
mxGraph.prototype.setConnectionConstraint = function(edge,
terminal,
source,
constraint)
Sets the mxConnectionConstraint that describes the given connection point.
mxGraph.prototype.setConstrainChildren = function(value)
Sets constrainChildren.
mxGraphModel.prototype.setCreateIds = function(value)
Sets createIds.
mxConnectionHandler.prototype.setCreateTarget = function(value)
Sets createTarget.
mxGraphView.prototype.setCurrentRoot = function(root)
Sets and returns the current root and fires an undo event before calling mxGraph.sizeDidChange.
mxCellState.prototype.setCursor = function (cursor)
Sets the given cursor on the shape and text shape.
mxShape.prototype.setCursor = function(cursor)
Sets the cursor on the given shape.
setDashed: function(value)
Sets the dashed state to true or false.
setDashed: function(value)
Sets the dashed state to true or false.
setDashPattern: function(value)
Sets the dashed pattern to the given space separated list of numbers.
setDashPattern: function(value)
Sets the dashed pattern to the given space separated list of numbers.
mxGraph.prototype.setDefaultParent = function(cell)
Sets the defaultParent to the given cell.
mxGraph.prototype.setDisconnectOnMove = function(value)
Specifies if edges should be disconnected when moved.
mxGraph.prototype.setDropEnabled = function(value)
Specifies if the graph should allow dropping of cells onto or into other cells.
mxCell.prototype.setEdge = function(edge)
Specifies if the cell is an edge.
mxGraphLayout.prototype.setEdgePoints = function(edge,
points)
Replaces the array of mxPoints in the geometry of the given edge with the given array of mxPoints.
mxCoordinateAssignment.prototype.setEdgePosition = function(cell)
Fixes the control points
mxGraphLayout.prototype.setEdgeStyleEnabled = function(edge,
value)
Disables or enables the edge style of the given edge.
mxAutoSaveManager.prototype.setEnabled = function(value)
Enables or disables event handling.
mxCellMarker.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxConnectionHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxConstraintHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxDragSource.prototype.setEnabled = function(value)
Sets enabled.
mxGraph.prototype.setEnabled = function(value)
Specifies if the graph should allow any interactions.
mxGraphHandler.prototype.setEnabled = function(value)
Sets enabled.
mxKeyHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling by updating enabled.
mxLayoutManager.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxOutline.prototype.setEnabled = function(value)
Enables or disables event handling.
mxPopupMenu.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxRubberband.prototype.setEnabled = function(enabled)
Enables or disables event handling.
mxSelectionCellsHandler.prototype.setEnabled = function(value)
Sets enabled.
mxSpaceManager.prototype.setEnabled = function(value)
Enables or disables event handling.
mxSwimlaneManager.prototype.setEnabled = function(value)
Enables or disables event handling.
mxTooltipHandler.prototype.setEnabled = function(enabled)
Enables or disables event handling.
setEnabled: function(value)
Sets enabled.
mxGraph.prototype.setEnterStopsCellEditing = function(value)
Sets enterStopsCellEditing.
mxGraph.prototype.setEscapeEnabled = function(value)
Sets escapeEnabled.
mxEventSource.prototype.setEventsEnabled = function(value)
Sets eventsEnabled.
mxEventSource.prototype.setEventSource = function(value)
Sets eventSource.
mxGraph.prototype.setExtendParents = function(value)
Sets extendParents.
mxGraph.prototype.setExtendParentsOnAdd = function(value)
Sets extendParentsOnAdd.
setFillColor: function(value)
Sets the fillcolor.
setFillColor: function(value)
Sets the fillcolor.
setFoEnabled: function(value)
Sets foEnabled.
setFontColor: function(value)
Sets the fontcolor.
setFontColor: function(value)
Sets the fontcolor.
setFontFamily: function(value)
Sets the fontfamily.
setFontFamily: function(value)
Sets the fontfamily.
setFontSize: function(value)
Sets the fontsize.
setFontSize: function(value)
Sets the fontsize.
setFontStyle: function(value)
Sets the fontstyle.
setFontStyle: function(value)
Sets the fontstyle.
mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable = function(
   layer,
   value
)
Set the value of temp for the specified layer
mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable = function(layer,
value)
Set the value of temp for the specified layer
mxGraphHierarchyNode.prototype.setGeneralPurposeVariable = function(layer,
value)
Set the value of temp for the specified layer
mxCell.prototype.setGeometry = function(geometry)
Sets the mxGeometry to be used as the geometry.
mxGraphModel.prototype.setGeometry = function(cell,
geometry)
Sets the mxGeometry of the given mxCell.
setGlassGradient: function(x,
y,
w,
h)
Sets the glass gradient.
setGlassGradient: function(x,
y,
w,
h)
Sets the glass gradient.
setGradient: function(color1,
color2,
x,
y,
w,
h,
direction)
Sets the gradient color.
setGradient: function(color1,
color2,
x,
y,
w,
h,
direction)
Sets the gradient color.
mxAutoSaveManager.prototype.setGraph = function(graph)
Sets the graph that the layouts operate on.
mxLayoutManager.prototype.setGraph = function(graph)
Sets the graph that the layouts operate on.
mxSpaceManager.prototype.setGraph = function(graph)
Sets the graph that the layouts operate on.
mxSwimlaneManager.prototype.setGraph = function(graph)
Sets the graph that the manager operates on.
mxGraphView.prototype.setGraphBounds = function(value)
Sets graphBounds.
mxEditor.prototype.setGraphContainer = function (container)
Sets the graph’s container using mxGraph.init.
mxDragSource.prototype.setGridEnabled = function(value)
Sets gridEnabled.
mxGraph.prototype.setGridEnabled = function(value)
Specifies if the grid should be enabled.
mxGraph.prototype.setGridSize = function(value)
Sets gridSize.
mxDragSource.prototype.setGuidesEnabled = function(value)
Sets guidesEnabled.
mxTooltipHandler.prototype.setHideOnHover = function(value)
Sets hideOnHover.
mxCellHighlight.prototype.setHighlightColor = function(color)
Sets the color of the rectangle used to highlight drop targets.
mxGraphHandler.prototype.setHighlightColor = function(color)
Sets the color of the rectangle used to highlight drop targets.
mxSwimlaneManager.prototype.setHorizontal = function(value)
Sets horizontal.
mxCellMarker.prototype.setHotspot = function(hotspot)
Sets the hotspot.
mxCellMarker.prototype.setHotspotEnabled = function(enabled)
Specifies whether the hotspot should be used in intersects.
mxGraph.prototype.setHtmlLabels = function(value)
Sets htmlLabels.
mxCell.prototype.setId = function(id)
Sets the Id of the cell to the given string.
mxWindow.prototype.setImage = function(image)
Sets the image associated with the window.
mxGraph.prototype.setInvokesStopCellEditing = function(value)
Sets invokesStopCellEditing.
setLineCap: function(value)
Sets the linecap.
setLineCap: function(value)
Sets the linecap.
setLineJoin: function(value)
Sets the linejoin.
setLineJoin: function(value)
Sets the linejoin.
mxWindow.prototype.setLocation = function(x,
y)
Sets the upper, left corner of the window.
Sets if any cell may be moved, sized, bended, disconnected, edited or selected.
mxWindow.prototype.setMaximizable = function(maximizable)
Sets if the window is maximizable.
mxWindow.prototype.setMinimizable = function(minimizable)
Sets if the window is minimizable.
setMiterLimit: function(value)
Sets the miterlimit.
setMiterLimit: function(value)
Sets the miterlimit.
mxEditor.prototype.setMode = function(modename)
Puts the graph into the specified mode.
mxCellEditor.prototype.setModified = function(value)
Sets modified to the specified boolean value.
mxEditor.prototype.setModified = function (value)
Sets modified to the specified boolean value.
mxGraphHandler.prototype.setMoveEnabled = function(value)
Sets moveEnabled.
mxGraph.prototype.setMultigraph = function(value)
Specifies if the graph should allow multiple connections between the same pair of vertices.
setOpacity: function(node,
value)
Sets the opacity of the specified DOM node to the given value in %.
mxGraphLayout.prototype.setOrthogonalEdge = function(edge,
value)
Disables or enables orthogonal end segments of the given edge.
mxGraph.prototype.setPanning = function(enabled)
Specifies if panning should be enabled.
mxPanningHandler.prototype.setPanningEnabled = function(value)
Sets panningEnabled.
mxCell.prototype.setParent = function(parent)
Sets the parent cell.
mxGraph.prototype.setPortsEnabled = function(value)
Specifies if the ports should be enabled.
mxEdgeHandler.prototype.setPreviewColor = function(color)
Sets the color of the preview to the given value.
mxRectangle.prototype.setRect = function(x,
y,
w,
h)
Sets this rectangle to the specified values
mxGraphHandler.prototype.setRemoveCellsFromParent = function(value)
Sets removeCellsFromParent.
mxGraphView.prototype.setRendering = function(value)
Sets rendering.
mxXmlRequest.prototype.setRequestHeaders = function(request,
params)
Sets the headers for the given request and parameters.
mxWindow.prototype.setResizable = function(resizable)
Sets if the window should be resizable.
mxGraph.prototype.setResizeContainer = function(value)
Sets resizeContainer.
mxSwimlaneManager.prototype.setResizeEnabled = function(value)
Sets resizeEnabled.
mxGraphModel.prototype.setRoot = function(root)
Sets the root of the model using mxRootChange and adds the change to the current transaction.
mxGraphView.prototype.setScale = function(value)
Sets the scale and fires a scale event before calling revalidate followed by mxGraph.sizeDidChange.
mxWindow.prototype.setScrollable = function(scrollable)
Sets if the window contents should be scrollable.
mxGraphHandler.prototype.setSelectEnabled = function(value)
Sets selectEnabled.
mxGraph.prototype.setSelectionCell = function(cell)
Sets the selection cell.
mxGraph.prototype.setSelectionCells = function(cells)
Sets the selection cell.
mxGraph.prototype.setSelectionModel = function(selectionModel)
Sets the mxSelectionModel that contains the selection.
mxSpaceManager.prototype.setShiftDownwards = function(value)
Enables or disables event handling.
mxSpaceManager.prototype.setShiftRightwards = function(value)
Enables or disables event handling.
mxGraphSelectionModel.prototype.setSingleSelection = function(singleSelection)
Sets the singleSelection flag.
mxWindow.prototype.setSize = function(width,
height)
Sets the size of the window.
mxGraph.prototype.setSplitEnabled = function(value)
Specifies if the graph should allow dropping of cells onto or into other cells.
mxGraphView.prototype.setStates = function(value)
Sets states.
mxGuide.prototype.setStates = function(states)
Sets the mxCellStates that should be used for alignment.
mxEditor.prototype.setStatus = function (message)
Display the specified message in the status bar.
mxEditor.prototype.setStatusContainer = function (container)
Creates the status using the specified container.
setStrokeColor: function(value)
Sets the stroke color.
setStrokeColor: function(value)
Sets the stroke color.
setStrokeWidth: function(value)
Sets the stroke width.
setStrokeWidth: function(value)
Sets the stroke width.
mxCell.prototype.setStyle = function(style)
Sets the string to be used as the style.
mxGraphModel.prototype.setStyle = function(cell,
style)
Sets the style of the given mxCell using mxStyleChange and adds the change to the current transaction.
setStyle: function(style,
key,
value)
Adds or removes the given key, value pair to the style and returns the new style.
setStyleFlag: function(style,
key,
flag,
value)
Sets or removes the given key from the specified style and returns the new style.
mxGraph.prototype.setStylesheet = function(stylesheet)
Sets the mxStylesheet that defines the style.
mxGraph.prototype.setSwimlaneNesting = function(value)
Specifies if swimlanes can be nested by drag and drop.
mxGraph.prototype.setSwimlaneSelectionEnabled = function(value)
Specifies if swimlanes should be selected if the mouse is released over their content area.
mxCell.prototype.setTerminal = function(terminal,
isSource)
Sets the source or target terminal and returns the new terminal.
mxGraphModel.prototype.setTerminal = function(edge,
terminal,
isSource)
Sets the source or target terminal of the given mxCell using mxTerminalChange and adds the change to the current transaction.
mxGeometry.prototype.setTerminalPoint = function(point,
isSource)
Sets the sourcePoint or targetPoint to the given mxPoint and returns the new point.
mxGraphModel.prototype.setTerminals = function(edge,
source,
target)
Sets the source and target mxCell of the given mxCell in a single transaction using setTerminal for each end of the edge.
setTextEnabled: function(value)
Sets textEnabled.
setTextEnabled: function(value)
Sets textEnabled.
mxWindow.prototype.setTitle = function(title)
Sets the window title to the given string.
mxEditor.prototype.setTitleContainer = function (container)
Creates a listener to update the inner HTML of the specified DOM node with the value of getTitle.
mxGraph.prototype.setTolerance = function(value)
Sets tolerance.
mxEditor.prototype.setToolbarContainer = function (container)
Initializes the toolbar for the given container.
mxGraph.prototype.setTooltips = function (enabled)
Specifies if tooltips should be enabled.
mxGraphView.prototype.setTranslate = function(dx,
dy)
Sets the translation and fires a translate event before calling revalidate followed by mxGraph.sizeDidChange.
mxPath.prototype.setTranslate = function(x,
y)
Set the global translation of this path, that is, the origin of the coordinate system.
mxCell.prototype.setValue = function(value)
Sets the user object of the cell.
mxGraphModel.prototype.setValue = function(cell,
value)
Sets the user object of then given mxCell using mxValueChange and adds the change to the current transaction.
mxCell.prototype.setVertex = function(vertex)
Specifies if the cell is a vertex.
mxGraph.prototype.setVertexLabelsMovable = function(value)
Sets vertexLabelsMovable.
mxCoordinateAssignment.prototype.setVertexLocation = function(cell)
Fixes the position of the specified vertex.
mxGraphLayout.prototype.setVertexLocation = function(cell,
x,
y)
Sets the new position of the given cell taking into account the size of the bounding box if useBoundingBox is true.
mxCell.prototype.setVisible = function(visible)
Specifies if the cell is visible.
mxGraphModel.prototype.setVisible = function(cell,
visible)
Sets the visible state of the given mxCell using mxVisibleChange and adds the change to the current transaction.
setVisible: function(visible)
Shows or hides the console.
mxWindow.prototype.setVisible = function(visible)
Shows or hides the window depending on the given flag.
mxCellState.prototype.setVisibleTerminalState = function (terminalState,
source)
Sets the visible source or target terminal state.
mxGraphAbstractHierarchyCell.prototype.setX = function(layer,
value)
Set the value of x for the specified layer
mxGraphAbstractHierarchyCell.prototype.setY = function(layer,
value)
Set the value of y for the specified layer
mxOutline.prototype.setZoomEnabled = function(value)
Enables or disables the zoom handling by showing or hiding the respective handle.
shadow: function(value,
filled)
Paints the current path as a shadow of the given color.
shadow: function(value,
filled)
Paints the current path as a shadow of the given color.
Specifies the x-offset of the shadow.
Specifies the y-offset of the shadow.
Defines the opacity for shadows.
Defines the color to be used to draw shadows in shapes and windows.
mxCellState.prototype.shape
Holds the mxShape that represents the cell graphically.
mxEdgeHandler.prototype.shape
Holds the mxShape that represents the preview edge.
mxGraphHandler.prototype.shape
Reference to the mxShape that represents the preview.
Name under which mxActor is registered in mxCellRenderer.
Name under which mxArrow is registered in mxCellRenderer.
Name under which mxCloud is registered in mxCellRenderer.
Name under which mxConnector is registered in mxCellRenderer.
Name under which mxCylinder is registered in mxCellRenderer.
Name under which mxDoubleEllipse is registered in mxCellRenderer.
Name under which mxEllipse is registered in mxCellRenderer.
Name under which mxHexagon is registered in mxCellRenderer.
Name under which mxImageShape is registered in mxCellRenderer.
Name under which mxLabel is registered in mxCellRenderer.
Name under which mxLine is registered in mxCellRenderer.
Name under which mxRectangleShape is registered in mxCellRenderer.
Name under which mxRhombus is registered in mxCellRenderer.
Name under which mxSwimlane is registered in mxCellRenderer.
Name under which mxTriangle is registered in mxCellRenderer.
mxCellRenderer.prototype.shapes
Array that maps from shape names to shape constructors.
mxImageExport.prototype.shapes
Holds implementations for the built-in shapes.
mxRubberband.prototype.sharedDiv
Holds the DIV element which is used to display the rubberband.
mxSpaceManager.prototype.shiftCell = function(cell,
dx,
dy,
Ox0,
y0,
right,
bottom,
fx,
fy,
extendParent)
Called from moveCellsIntoParent to invoke the move hook in the automatic layout of each modified cell’s parent.
mxSpaceManager.prototype.shiftDownwards
Specifies if event handling is enabled.
mxKeyHandler.prototype.shiftKeys
Maps from keycodes to functions for pressed shift keys.
mxSpaceManager.prototype.shiftRightwards
Specifies if event handling is enabled.
mxGraphHandler.prototype.shouldRemoveCellsFromParent = function(parent,
cells,
evt)
Returns true if the given cells should be removed from the parent for the specified mousereleased event.
mxCellStatePreview.prototype.show = function(visitor)
show: function()
Shows the console.
mxMorphing.prototype.show = function(move)
Shows the changes in the given mxCellStatePreview.
mxTooltipHandler.prototype.show = function(tip,
x,
y)
Shows the tooltip for the specified cell and optional index at the specified location (with a vertical offset of 10 pixels).
show: function(graph,
doc,
x0,
y0)
Copies the styles and the markup from the graph’s container into the given document and removes all cursor styles.
mxWindow.prototype.show = function()
Shows the window.
Specifies the event name for show.
Fires after the menu has been shown in popup.
mxEditor.prototype.showHelp = function (tasks)
Shows the help window.
mxPopupMenu.prototype.showMenu = function()
Shows the menu.
mxEditor.prototype.showOutline = function ()
Shows the outline window.
mxEditor.prototype.showProperties = function (cell)
Creates and shows the properties dialog for the given cell.
mxPopupMenu.prototype.showSubmenu = function(parent,
row)
Shows the submenu inside the given parent row.
mxEditor.prototype.showTasks = function ()
Shows the tasks window.
mxOutline.prototype.showViewport
Specifies a viewport rectangle should be shown.
SideToSide: function (state,
source,
target,
points,
result)
Implements a vertical elbow edge.
mxUndoableEdit.prototype.significant
Specifies if the undoable change is significant.
mxSession.prototype.significantRemoteChanges
Whether remote changes should be significant in the local command history.
mxXmlRequest.prototype.simulate = function(doc,
target)
Creates and posts a request to the given target URL using a dynamically created form inside the given document.
mxGraphSelectionModel.prototype.singleSelection
Specifies if only one selected item at a time is allowed.
mxVertexHandler.prototype.singleSizer
Specifies if only one sizer handle at the bottom, right corner should be used.
mxUndoManager.prototype.size
Maximum command history size.
Specifies the event name for size.
Fires after sizeDidChange was executed.
mxGraph.prototype.sizeDidChange = function()
Called when the size of the graph has changed.
mxOutline.prototype.sizerImage
Optional mxImage to be used for the sizer.
mxPopupMenu.prototype.smartSeparators
Specifies if separators should only be added if a menu item follows them.
mxGraph.prototype.snap = function(value)
Snaps the given numeric value to the grid if gridEnabled is true.
mxGraphHandler.prototype.snap = function(vector)
Snaps the given vector to the grid and returns the given mxPoint instance.
mxEdgeHandler.prototype.snapToTerminals
Specifies if waypoints should snap to the routing centers of terminals.
sortCells: function(cells,
ascending)
Sorts the given cells according to the order in the cell hierarchy.
mxCell.prototype.source
Reference to the source terminal.
mxGraphHierarchyEdge.prototype.source
The node this edge is sourced at
mxMultiplicity.prototype.source
Boolean that specifies if the rule is applied to the source or target terminal of an edge.
Reference to the source mxGraph.
mxUndoableEdit.prototype.source
Specifies the source of the edit.
mxGeometry.prototype.sourcePoint
Defines the source mxPoint of the edge.
mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK
High value to start source layering scan rank value from.
mxCellHighlight.prototype.spacing
Specifies the spacing between the highlight for vertices and the vertex.
mxDefaultToolbar.prototype.spacing
Defines the spacing between existing and new vertices in gridSize units when a new vertex is dropped on an existing cell.
mxLabel.prototype.spacing
Default value for spacing.
mxParallelEdgeLayout.prototype.spacing
Defines the spacing between the parallels.
mxPartitionLayout.prototype.spacing
Integer that specifies the absolute spacing in pixels between the children.
mxStackLayout.prototype.spacing
Specifies the spacing between the cells.
Specifies the event name for splitEdge.
Fires between begin- and endUpdate in splitEdge.
mxGraph.prototype.splitEdge = function(edge,
cells,
newEdge,
dx,
dy)
Splits the given edge by adding the newEdge between the previous source and the given cell and reconnecting the source of the given edge to the given cell.
mxGraph.prototype.splitEnabled
Specifies if dropping onto edges should be enabled.
mxImage.prototype.src
String that specifies the URL of the image.
mxConnectionHandler.prototype.start = function(state,
x,
y,
edgeState)
Starts a new connection for the given state and coordinates.
mxEdgeHandler.prototype.start = function(x,
y,
index)
Starts the handling of the mouse gesture.
mxGraphHandler.prototype.start = function(cell,
x,
y)
Starts the handling of the mouse gesture.
mxRubberband.prototype.start = function(x,
y)
Sets the start point for the rubberband selection.
mxSession.prototype.start = function()
mxVertexHandler.prototype.start = function(x,
y,
index)
Starts the handling of the mouse gesture.
Specifies the event name for startEditing.
Fires before the in-place editor starts in startEditingAtCell.
mxAnimation.prototype.startAnimation = function()
Starts the animation by repeatedly invoking updateAnimation.
mxDragSource.prototype.startDrag = function(evt)
Creates the dragElement using createDragElement.
mxCellEditor.prototype.startEditing = function(cell,
trigger)
Starts the editor for the given cell.
mxGraph.prototype.startEditing = function(evt)
Calls startEditingAtCell using the given cell or the first selection cell.
mxGraph.prototype.startEditingAtCell = function(cell,
evt)
Fires a startEditing event and invokes mxCellEditor.startEditing on editor.
mxShape.prototype.startOffset
Specifies the offset in pixels from the first point in points and the actual start of the shape.
mxCellHighlight.prototype.state
Reference to the mxCellState.
mxEdgeHandler.prototype.state
Reference to the mxCellState being modified.
mxMouseEvent.prototype.state
Holds the optional mxCellState associated with this event.
mxStencilShape.prototype.state
Holds the mxCellState associated with this shape.
mxVertexHandler.prototype.state
Reference to the mxCellState being modified.
mxGuide.prototype.states
Contains the mxCellStates that are used for alignment.
mxEditor.prototype.status
DOM container that holds the statusbar.
mxStencilShape.prototype.stencil
Holds the mxStencil that defines the shape.
mxMorphing.prototype.step
Contains the current step.
mxMorphing.prototype.steps
Specifies the maximum number of steps for the morphing.
Defines the step size to offset the cells after each paste operation.
mxSession.prototype.stop = function(reason)
Stops the session and fires a disconnect event.
mxAnimation.prototype.stopAnimation = function()
Stops the animation by deleting the timer and fires an mxEvent.DONE.
mxDragSource.prototype.stopDrag = function(evt)
Removes and destroys the dragElement.
mxCellEditor.prototype.stopEditing = function(cancel)
Stops the editor and applies the value if cancel is false.
mxGraph.prototype.stopEditing = function(cancel)
Stops the current editing.
mxMorphing.prototype.stopRecursion = function(state,
delta)
Returns true if the animation should not recursively find more deltas for children if the given parent state has been animated.
stroke: function()
Paints the outline of the current path.
stroke: function()
Paints the outline of the current path.
mxCylinder.prototype.strokedBackground
Specifies if the background should be stroked.
mxStencil.prototype.strokewidth
Holds the strokewidth direction from the description.
mxCell.prototype.style
Holds the style as a string of the form [(stylename|key=value);].
mxCellState.prototype.style
Contains an array of key, value pairs that represent the style of the cell.
mxShape.prototype.style
Holds the style of the cell state that corresponds to this shape.
Defines the key for the align style.
Defines the rounding factor for a rounded rectangle in percent (without the percent sign).
Defines the key for the autosize style.
Defines the key for the bendable style.
Defines the key for the cloneable style.
Defines the key for the endSize style.
Defines the key for the deletable style.
Defines the key for the direction style.
Defines the key for the edge style.
Defines the key for the editable style.
Defines the key for the elbow style.
Defines the key for the end arrow marker.
Defines the key for the endFill style.
Defines the key for the endSize style.
Defines if the perimeter should be used to find the exact entry point along the perimeter of the target.
Defines the key for the horizontal relative coordinate connection point of an edge with its target terminal.
Defines the key for the vertical relative coordinate connection point of an edge with its target terminal.
Defines if the perimeter should be used to find the exact entry point along the perimeter of the source.
Defines the key for the horizontal relative coordinate connection point of an edge with its source terminal.
Defines the key for the vertical relative coordinate connection point of an edge with its source terminal.
Defines the key for the fill color.
Defines the key for the foldable style.
Defines the key for the fontColor style.
Defines the key for the fontFamily style.
Defines the key for the fontSize style (in points).
Defines the key for the fontStyle style.
Defines the key for the glass style.
Defines the key for the gradient direction.
Defines the key for the gradient color.
Defines the key for the horizontal style.
Defines the key for the image style.
Defines the key for the align style.
Defines the key for the image aspect style.
Defines the key for the image background color.
Defines the key for the image border color.
Defines the key for the horizontal image flip.
Defines the key for the vertical image flip.
Defines the key for the imageHeight style.
Defines the key for the verticalAlign style.
Defines the key for the imageWidth style.
Defines the key for the indicatorColor style.
Defines the key for the indicatorDirection style.
Defines the key for the indicatorGradientColor style.
Defines the key for the indicator height.
Defines the key for the indicator image used within an mxLabel.
Defines the key for the indicator shape used within an mxLabel.
The defines the key for the spacing between the label and the indicator in mxLabel.
Defines the key for the indicator stroke color in mxLabel.
Defines the key for the indicator width.
Defines the key for the label background color.
Defines the key for the label border color.
Defines the key for the label padding, ie.
Defines the key for the horizontal label position of vertices.
Defines the key for the loop style.
Defines the key for the movable style.
Defines the key for the noEdgeStyle style.
Defines the key for the noLabel style.
Defines the key for the opacity style.
Defines if the connection points on either end of the edge should be computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location.
Defines the key for the overflow style.
Defines the key for the perimeter style.
Defines the key for the perimeter spacing.
Defines the direction(s) that edges are allowed to connect to cells in.
Defines the key for the resizable style.
Defines the key for the rotation style.
Defines the key for the rounded style.
Defines the key for the horizontal routing center.
Defines the key for the vertical routing center.
Defines the key for the segment style.
Defines the key for the separatorColor style.
Defines the key for the shadow style.
Defines the key for the shape.
An experimental style for edges.
Defines the key for the source perimeter spacing.
Defines the ID of the cell that should be used for computing the perimeter point of the source for an edge.
Defines the key for the spacing.
Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).
Defines the key for the spacingLeft style.
Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).
Defines the key for the spacingTop style.
Defines the key for the start arrow marker.
Defines the key for the startFill style.
Defines the key for the startSize style.
Defines the key for the horizontal stencil flip.
Defines the key for the vertical stencil flip.
Defines the key for the strokeColor style.
Defines the key for the strokeWidth style.
Defines the key for the target perimeter spacing.
Defines the ID of the cell that should be used for computing the perimeter point of the target for an edge.
Defines the key for the text opacity style.
Defines the key for the verticalAlign style.
Defines the key for the vertical label position of vertices.
Defines the key for the white-space style.
mxGraphModel.prototype.styleForCellChanged = function(cell,
style)
Inner callback to update the style of the given mxCell using mxCell.setStyle and return the previous style.
Maps from names to cell styles.
mxGraph.prototype.stylesheet
Holds the mxStylesheet that defines the appearance of the cells.
mxPopupMenu.prototype.submenuImage
URL of the image to be used for the submenu icon.
submit: function(url,
params,
doc,
target)
Submits the given parameters to the specified URL using mxXmlRequest.simulate and returns the mxXmlRequest.
mxSession.prototype.suspend = function()
Suspends the polling.
Specifies the event name for suspend.
Fires after suspend was called an the session was not already in suspended state.
mxOutline.prototype.suspended
Optional boolean flag to suspend updates.
mxShape.prototype.SVG_STROKE_TOLERANCE
Event-tolerance for SVG strokes (in px).
mxGeometry.prototype.swap = function()
Swaps the x, y, width and height with the values stored in alternateBounds and puts the previous values into alternateBounds as a rectangle.
mxGraph.prototype.swapBounds = function(cell,
willCollapse)
Swaps the alternate and the actual bounds in the geometry of the given cell invoking updateAlternateBounds before carrying out the swap.
mxEditor.prototype.swapStyles = function (first,
second)
Swaps the styles for the given names in the graph’s stylesheet and refreshes the graph.
mxSwimlaneManager.prototype.swimlaneAdded = function(swimlane)
Updates the size of the given swimlane to match that of any existing siblings swimlanes.
mxGraph.prototype.swimlaneIndicatorColorAttribute
The attribute used to find the color for the indicator if the indicator color is set to ‘swimlane’.
mxGraph.prototype.swimlaneNesting
Specifies if nesting of swimlanes is allowed.
mxEditor.prototype.swimlaneRequired
Specifies if new cells must be inserted into an existing swimlane.
mxGraph.prototype.swimlaneSelectionEnabled
Specifies if swimlanes should be selectable via the content if the mouse is released.
mxEditor.prototype.swimlaneSpacing
Specifies the spacing between swimlanes if automatic layout is turned on in layoutDiagram.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General17.html b/docs/js-api/index/General17.html new file mode 100644 index 000000000..ec9aa1e4a --- /dev/null +++ b/docs/js-api/index/General17.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
T
 table, mxForm
 tapAndHold, mxConnectionHandler
 tapAndHoldDelay, mxConnectionHandler
 tapAndHoldEnabled, mxConnectionHandler
 tapAndHoldInProgress, mxConnectionHandler
 tapAndHoldTolerance, mxConnectionHandler
 tapAndHoldValid, mxConnectionHandler
 target
 TARGET_HIGHLIGHT_COLOR, mxConstants
 targetConnectImage, mxConnectionHandler
 targetPoint, mxGeometry
 tasks, mxEditor
 tasksResource, mxEditor
 tasksTop, mxEditor
 tasksWindowImage, mxEditor
 temp, mxGraphAbstractHierarchyCell
 temperature, mxFastOrganicLayout
 template, mxObjectCodec
 templates, mxEditor
 Templates, mxEditor
 terminalDistance, mxCellState
 terminalForCellChanged, mxGraphModel
 text
 textarea, mxCellEditor
 textEnabled
 textNode, mxCellEditor
 thread, mxAnimation
 tightenToSource
 title
 TOGGLE_CELLS
 toggleCells, mxGraph
 toggleCellStyle, mxGraph
 toggleCellStyleFlags, mxGraph
 toggleCellStyles, mxGraph
 tolerance
 toolbar
 tooltip, mxCellOverlay
 TOOLTIP_VERTICAL_OFFSET, mxConstants
 TopToBottom, mxEdgeStyle
 toRadians, mxUtils
 toString
 TRACE, mxLog
 transformControlPoint, mxGraphView
 translate
 TRANSLATE
 TRANSLATE_CONTROL_POINTS, mxGeometry
 translateCell, mxGraph
 translateState, mxCellStatePreview
 transpose, mxMedianHybridCrossingReduction
 traverse, mxGraph
 treeLayout, mxEditor
 TrianglePerimeter, mxPerimeter
 trigger, mxCellEditor
 trim
 type, mxMultiplicity
 typeError, mxMultiplicity
+ +
mxForm.prototype.table
Holds the DOM node that represents the table.
mxConnectionHandler.prototype.tapAndHold = function(me,
state)
Handles the mxMouseEvent by highlighting the mxCellState.
mxConnectionHandler.prototype.tapAndHoldDelay
Specifies the time for a tap and hold.
mxConnectionHandler.prototype.tapAndHoldEnabled
Specifies if tap and hold should be used for starting connections on touch-based devices.
mxConnectionHandler.prototype.tapAndHoldInProgress
True if the timer for tap and hold events is running.
mxConnectionHandler.prototype.tapAndHoldTolerance
Specifies the tolerance for a tap and hold.
mxConnectionHandler.prototype.tapAndHoldValid
True as long as the timer is running and the touch events stay within the given tapAndHoldTolerance.
mxCell.prototype.target
Reference to the target terminal.
mxGraphHierarchyEdge.prototype.target
The node this edge targets
mxKeyHandler.prototype.target
Reference to the target DOM, that is, the DOM node where the key event listeners are installed.
Defines the color to be used for highlighting a target cell for a new or changed connection.
mxConnectionHandler.prototype.targetConnectImage
Specifies if the connect icon should be centered on the target state while connections are being previewed.
mxGeometry.prototype.targetPoint
Defines the target mxPoint of the edge.
mxEditor.prototype.tasks
Holds the mxWindow created in showTasks.
mxEditor.prototype.tasksResource
Specifies the resource key for the tasks window title.
mxEditor.prototype.tasksTop
Specifies the top coordinate of the tasks window in pixels.
mxEditor.prototype.tasksWindowImage
Icon for the tasks window.
mxGraphAbstractHierarchyCell.prototype.temp
Temporary variable for general use.
mxFastOrganicLayout.prototype.temperature
Temperature to limit displacement at later stages of layout.
mxObjectCodec.prototype.template
Holds the template object associated with this codec.
mxEditor.prototype.templates
Maps from names to protoype cells to be used in the toolbar for inserting new cells into the diagram.
mxCellState.prototype.terminalDistance
Caches the distance between the end points for an edge.
mxGraphModel.prototype.terminalForCellChanged = function(edge,
terminal,
isSource)
Inner helper function to update the terminal of the edge using mxCell.insertEdge and return the previous terminal.
mxCellState.prototype.text
Holds the mxText that represents the label of the cell.
text: function(x,
y,
w,
h,
str,
align,
valign,
vertical,
wrap,
format)
Paints the given text.
text: function(x,
y,
w,
h,
str,
align,
valign,
vertical,
wrap,
format)
Paints the given text.
mxCellEditor.prototype.textarea
Holds the input textarea.
var textEnabled
Specifies if text output should be enabled.
var textEnabled
Specifies if text output should be enabled.
mxCellEditor.prototype.textNode
Reference to the label DOM node that has been hidden.
mxAnimation.prototype.thread
Reference to the thread while the animation is running.
mxGraphHierarchyModel.prototype.tightenToSource
Whether or not to tighten the assigned ranks of vertices up towards the source cells.
mxHierarchicalLayout.prototype.tightenToSource
Whether or not to tighten the assigned ranks of vertices up towards the source cells.
mxPrintPreview.prototype.title
Holds the title of the preview window.
mxWindow.prototype.title
Reference to the DOM node (TD) that contains the title.
Specifies the event name for toggleCells.
Fires between begin- and endUpdate in toggleCells.
mxGraph.prototype.toggleCells = function(show,
cells,
includeEdges)
Sets the visible state of the specified cells and all connected edges if includeEdges is true.
mxGraph.prototype.toggleCellStyle = function(key,
defaultValue,
cell)
Toggles the boolean value for the given key in the style of the given cell.
mxGraph.prototype.toggleCellStyleFlags = function(key,
flag,
cells)
Toggles the given bit for the given key in the styles of the specified cells.
mxGraph.prototype.toggleCellStyles = function(key,
defaultValue,
cells)
Toggles the boolean value for the given key in the style of the given cells.
mxEdgeHandler.prototype.tolerance
Optional tolerance for hit-detection in getHandleForEvent.
mxGraph.prototype.tolerance
Tolerance for a move to be handled as a single click.
mxVertexHandler.prototype.tolerance
Optional tolerance for hit-detection in getHandleForEvent.
mxDefaultToolbar.prototype.toolbar
Holds the internal mxToolbar.
mxEditor.prototype.toolbar
Holds a mxDefaultToolbar for displaying the toolbar.
mxCellOverlay.prototype.tooltip
Holds the optional string to be used as the tooltip.
Defines the vertical offset for the tooltip.
TopToBottom: function(state,
source,
target,
points,
result)
Implements a horizontal elbow edge.
toRadians: function(deg)
Converts the given degree to radians.
mxCellOverlay.prototype.toString = function()
Returns the textual representation of the overlay to be used as the tooltip.
toString: function(obj)
Returns a textual representation of the specified object.
Specified if the output for enter and leave should be visible in the console.
mxGraphView.prototype.transformControlPoint = function(state,
pt)
Transforms the given control point to an absolute point.
mxGeometry.prototype.translate = function(dx,
dy)
Translates the geometry by the specified amount.
mxGraphView.prototype.translate
mxPoint that specifies the current translation.
mxPath.prototype.translate
mxPoint that specifies the translation of the complete path.
translate: function(dx,
dy)
Translates the current graphics object.
translate: function(dx,
dy)
Translates the current graphics object.
Specifies the event name for translate.
Fires after the translate was changed in setTranslate.
mxGeometry.prototype.TRANSLATE_CONTROL_POINTS
Global switch to translate the points in translate.
mxGraph.prototype.translateCell = function(cell,
dx,
dy)
Translates the geometry of the given cell and stores the new, translated geometry in the model as an atomic change.
mxCellStatePreview.prototype.translateState = function(parentState,
state,
dx,
dy)
mxMedianHybridCrossingReduction.prototype.transpose = function(
   mainLoopIteration,
   model
)
Takes each possible adjacent cell pair on each rank and checks if swapping them around reduces the number of crossing
mxGraph.prototype.traverse = function(vertex,
directed,
func,
edge,
visited)
Traverses the (directed) graph invoking the given function for each visited vertex and edge.
mxEditor.prototype.treeLayout = function (cell,
horizontal)
Executes a vertical or horizontal compact tree layout using the specified cell as an argument.
TrianglePerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes a triangle perimeter.
mxCellEditor.prototype.trigger
Reference to the event that was used to start editing.
mxUndoManager.prototype.trim = function()
Removes all pending steps after indexOfNextAdd from the history, invoking die on each edit.
trim: function(str,
chars)
Strips all whitespaces from both end of the string.
mxMultiplicity.prototype.type
Defines the type of the source or target terminal.
mxMultiplicity.prototype.typeError
Holds the localized error message to be displayed if the type of the neighbor for a connection does not match the rule.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General18.html b/docs/js-api/index/General18.html new file mode 100644 index 000000000..2d942fc1b --- /dev/null +++ b/docs/js-api/index/General18.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
U
 undo
 UNDO
 undoableEditHappened, mxUndoManager
 undoManager, mxEditor
 undone, mxUndoableEdit
 UNGROUP_CELLS
 ungroupCells, mxGraph
 union, mxVertexHandler
 unmark, mxCellMarker
 UP
 update
 UPDATE_CELL_SIZE
 updateAlternateBounds, mxGraph
 updateAnimation
 updateAspect, mxImageShape
 updateCellSize, mxGraph
 updateCurrentState, mxConnectionHandler
 updateCursor, mxGraphHandler
 updateDefaultMode, mxToolbar
 updateEdgeBounds, mxGraphView
 updateEdgeLabelOffset, mxGraphView
 updateEdgeParent, mxGraphModel
 updateEdgeParents, mxGraphModel
 updateFixedTerminalPoint, mxGraphView
 updateFixedTerminalPoints, mxGraphView
 updateFloatingTerminalPoint, mxGraphView
 updateFloatingTerminalPoints, mxGraphView
 updateGroupBounds, mxGraph
 updateHandler, mxLayoutManager
 updateHtmlShape, mxShape
 updateIcons, mxConnectionHandler
 updateLevel, mxGraphModel
 updateMouseEvent, mxGraph
 updateOnPan, mxOutline
 updatePoints, mxGraphView
 updatePreviewShape, mxGraphHandler
 updatePreviewState, mxEdgeHandler
 updateStyle, mxGraphView
 updateSvgBounds, mxShape
 updateSvgGlassPane, mxShape
 updateSvgNode
 updateSvgPath, mxShape
 updateSvgScale, mxShape
 updateSvgShape, mxShape
 updateSvgTransform, mxShape
 updateTableStyle, mxText
 updateTableWidth, mxText
 updateVertexLabelOffset, mxGraphView
 updateVmlDashStyle, mxShape
 updateVmlFill, mxShape
 updateVmlGlassPane, mxShape
 updateVmlMarkerOpacity, mxConnector
 updateVmlShape, mxShape
 updateVmlStrokeColor, mxShape
 updateVmlStrokeNode, mxShape
 updatingDocumentResource, mxGraphView
 updatingSelectionResource, mxGraphSelectionModel
 url, mxXmlRequest
 urlHelp, mxEditor
 urlImage, mxEditor
 urlInit
 urlNotify
 urlPoll
 urlPost, mxEditor
 useBoundingBox, mxGraphLayout
 useGrid, mxPanningHandler
 useGuidesForEvent, mxGraphHandler
 useInputOrigin, mxFastOrganicLayout
 useLeftButtonForPanning, mxPanningHandler
 useLeftButtonForPopup, mxPopupMenu
 usePopupTrigger, mxPanningHandler
 username, mxXmlRequest
 useScrollbarsForPanning, mxGraph
+ +
mxEditor.prototype.undo = function ()
Undo the last change in graph.
mxUndoableEdit.prototype.undo = function()
Undoes all changes in this edit.
mxUndoManager.prototype.undo = function()
Undoes the last change.
Specifies the event name for undo.
Fires after the change was dispatched in endUpdate.
Fires after the selection was changed in changeSelection.
Fires after the root was changed in setCurrentRoot.
Fires afer a significant edit was undone in undo.
mxUndoManager.prototype.undoableEditHappened = function(undoableEdit)
Method to be called to add new undoable edits to the history.
mxEditor.prototype.undoManager
Holds an mxUndoManager for the command history.
mxUndoableEdit.prototype.undone
Specifies if this edit has been undone.
Specifies the event name for ungroupCells.
Fires between begin- and endUpdate in ungroupCells.
mxGraph.prototype.ungroupCells = function(cells)
Ungroups the given cells by moving the children the children to their parents parent and removing the empty groups.
mxVertexHandler.prototype.union = function(bounds,
dx,
dy,
index,
gridEnabled,
scale,
tr)
Returns the union of the given bounds and location for the specified handle index.
mxCellMarker.prototype.unmark = function()
Hides the marker and fires a mark event.
Specifies the event name for up.
Fire if the current root is changed by executing an mxCurrentRootChange.
mxConstraintHandler.prototype.update = function(me,
source)
Updates the state of this handler based on the given mxMouseEvent.
mxOutline.prototype.update = function(revalidate)
Updates the outline.
mxRubberband.prototype.update = function(x,
y)
Sets currentX and currentY and calls repaint.
Specifies the event name for updateCellSize.
Fires between begin- and endUpdate in updateCellSize.
mxGraph.prototype.updateAlternateBounds = function(cell,
geo,
willCollapse)
Updates or sets the alternate bounds in the given geometry for the given cell depending on whether the cell is going to be collapsed.
mxAnimation.prototype.updateAnimation = function()
Hook for subclassers to implement the animation.
mxMorphing.prototype.updateAnimation = function()
Animation step.
mxImageShape.prototype.updateAspect = function(w,
h)
Updates the aspect of the image for the given image width and height.
mxGraph.prototype.updateCellSize = function(cell,
ignoreChildren)
Updates the size of the given cell in the model using cellSizeUpdated.
mxConnectionHandler.prototype.updateCurrentState = function(me)
Updates the current state for a given mouse move event by using the marker.
mxGraphHandler.prototype.updateCursor
Specifies if a move cursor should be shown if the mouse is ove a movable cell.
mxToolbar.prototype.updateDefaultMode
Boolean indicating if the default mode should be the last selected switch mode or the first inserted switch mode.
mxGraphView.prototype.updateEdgeBounds = function(state)
Updates the given state using the bounding box of the absolute points.
mxGraphView.prototype.updateEdgeLabelOffset = function(state)
Updates mxCellState.absoluteOffset for the given state.
mxGraphModel.prototype.updateEdgeParent = function(edge,
root)
Inner callback to update the parent of the specified mxCell to the nearest-common-ancestor of its two terminals.
mxGraphModel.prototype.updateEdgeParents = function(cell,
root)
Updates the parent for all edges that are connected to cell or one of its descendants using updateEdgeParent.
mxGraphView.prototype.updateFixedTerminalPoint = function(edge,
terminal,
source,
constraint)
Sets the fixed source or target terminal point on the given edge.
mxGraphView.prototype.updateFixedTerminalPoints = function(edge,
source,
target)
Sets the initial absolute terminal points in the given state before the edge style is computed.
mxGraphView.prototype.updateFloatingTerminalPoint = function(edge,
start,
end,
source)
Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.
mxGraphView.prototype.updateFloatingTerminalPoints = function(state,
source,
target)
Updates the terminal points in the given state after the edge style was computed for the edge.
mxGraph.prototype.updateGroupBounds = function(cells,
border,
moveGroup)
Updates the bounds of the given array of groups so that it includes all child vertices.
mxLayoutManager.prototype.updateHandler
Holds the function that handles the endUpdate event.
mxShape.prototype.updateHtmlShape = function(node)
Updates the bounds or points of the specified HTML node and updates the inner children to reflect the changes.
mxConnectionHandler.prototype.updateIcons = function(state,
icons,
me)
Hook to update the icon position(s) based on a mouseOver event.
mxGraphModel.prototype.updateLevel
Counter for the depth of nested transactions.
mxGraph.prototype.updateMouseEvent = function(me)
Sets the graphX and graphY properties if the given mxMouseEvent if required.
mxOutline.prototype.updateOnPan
Specifies if update should be called for mxEvent.PAN in the source graph.
mxGraphView.prototype.updatePoints = function(edge,
points,
source,
target)
Updates the absolute points in the given state using the specified array of mxPoints as the relative points.
mxGraphHandler.prototype.updatePreviewShape = function()
Updates the bounds of the preview shape.
mxEdgeHandler.prototype.updatePreviewState = function(edge,
point,
terminalState)
Updates the given preview state taking into account the state of the constraint handler.
mxGraphView.prototype.updateStyle
Specifies if the style should be updated in each validation step.
mxShape.prototype.updateSvgBounds = function(node)
Updates the bounds of the given node using bounds.
mxShape.prototype.updateSvgGlassPane = function()
Draws the glass overlay if mxConstants.STYLE_GLASS is 1.
mxDoubleEllipse.prototype.updateSvgNode = function(node,
inset)
Updates the given node to reflect the new bounds and scale.
mxEllipse.prototype.updateSvgNode = function(node)
Updates the given node to reflect the new bounds and scale.
mxShape.prototype.updateSvgPath = function(node)
Updates the path of the given node using points.
mxShape.prototype.updateSvgScale = function(node)
Updates the properties of the given node that depend on the scale and checks the crisp rendering attribute.
mxShape.prototype.updateSvgShape = function(node)
Updates the bounds or points of the specified SVG node and updates the inner children to reflect the changes.
mxShape.prototype.updateSvgTransform = function(node,
shadow)
Updates the tranform of the given node.
Updates the style of the given HTML table and the value within the table.
mxText.prototype.updateTableWidth = function(table)
Updates the width of the given HTML table.
mxGraphView.prototype.updateVertexLabelOffset = function(state)
Updates the absoluteOffset of the given vertex cell state.
mxShape.prototype.updateVmlDashStyle = function()
Updates the dashstyle in the stroke node.
mxShape.prototype.updateVmlFill = function(node,
c1,
c2,
dir,
alpha)
Updates the given VML fill node.
mxShape.prototype.updateVmlGlassPane = function()
Draws the glass overlay if mxConstants.STYLE_GLASS is 1.
mxConnector.prototype.updateVmlMarkerOpacity = function()
Updates the opacity for the markers in VML.
mxShape.prototype.updateVmlShape = function(node)
Updates the bounds or points of the specified VML node and updates the inner children to reflect the changes.
mxShape.prototype.updateVmlStrokeColor = function(node)
Updates the VML stroke color for the given node.
mxShape.prototype.updateVmlStrokeNode = function(parent)
Creates the stroke node for VML.
Specifies the resource key for the status message while the document is being updated.
mxGraphSelectionModel.prototype.updatingSelectionResource
Specifies the resource key for the status message while the selection is being updated.
mxXmlRequest.prototype.url
Holds the target URL of the request.
mxEditor.prototype.urlHelp
Specifies the URL to be used for the contents of the Online Help window.
mxEditor.prototype.urlImage
Specifies the URL to be used for creating a bitmap of the graph in the image action.
mxEditor.prototype.urlInit
Specifies the URL to be used for initializing the session.
mxSession.prototype.urlInit
URL to initialize the session.
mxEditor.prototype.urlNotify
Specifies the URL to be used for notifying the backend in the session.
mxSession.prototype.urlNotify
URL to send changes to the backend.
mxEditor.prototype.urlPoll
Specifies the URL to be used for polling in the session.
mxSession.prototype.urlPoll
URL for polling the backend.
mxEditor.prototype.urlPost
Specifies the URL to be used for posting the diagram to a backend in save.
mxGraphLayout.prototype.useBoundingBox
Boolean indicating if the bounding box of the label should be used if its available.
mxPanningHandler.prototype.useGrid
Specifies if the panning steps should be aligned to the grid size.
mxGraphHandler.prototype.useGuidesForEvent = function(me)
Returns true if the guides should be used for the given mxMouseEvent.
mxFastOrganicLayout.prototype.useInputOrigin
Specifies if the top left corner of the input cells should be the origin of the layout result.
mxPanningHandler.prototype.useLeftButtonForPanning
Specifies if panning should be active for the left mouse button.
mxPopupMenu.prototype.useLeftButtonForPopup
Specifies if popupmenus should be activated by clicking the left mouse button.
mxPanningHandler.prototype.usePopupTrigger
Specifies if the isPopupTrigger should also be used for panning.
mxXmlRequest.prototype.username
Specifies the username to be used for authentication.
mxGraph.prototype.useScrollbarsForPanning
Specifies if scrollbars should be used for panning in panGraph if any scrollbars are available.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General19.html b/docs/js-api/index/General19.html new file mode 100644 index 000000000..15d171972 --- /dev/null +++ b/docs/js-api/index/General19.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
V
 VALID_COLOR, mxConstants
 validate, mxGraphView
 validateBackground, mxGraphView
 validateBounds, mxGraphView
 validateCell, mxGraph
 validateConnection
 validateEdge, mxGraph
 validateGraph, mxGraph
 validatePoints, mxGraphView
 validating, mxEditor
 Validation, mxGraph
 validationAlert, mxGraph
 validColor, mxCellMarker
 validNeighbors, mxMultiplicity
 validNeighborsAllowed, mxMultiplicity
 validState, mxCellMarker
 value
 valueChanged, mxCell
 valueForCellChanged, mxGraphModel
 values, mxStyleRegistry
 Variables
MedianCellSortermxActormxAnimationmxArrowmxAutoSaveManagermxCellmxCellEditormxCellHighlightmxCellMarkermxCellOverlaymxCellPathmxCellRenderermxCellStatemxCellStatePreviewmxCircleLayoutmxClientmxClipboardmxCodecmxCodecRegistrymxCompactTreeLayoutmxCompositeLayoutmxConnectionConstraintmxConnectormxConstantsmxConstraintHandlermxCoordinateAssignmentmxCylindermxDefaultKeyHandlermxDefaultPopupMenumxDefaultToolbarmxDoubleEllipsemxDragSourcemxEdgeHandlermxElbowEdgeHandlermxEllipsemxEventmxEventObjectmxEventSourcemxFastOrganicLayoutmxFormmxGeometrymxGraphmxGraphAbstractHierarchyCellmxGraphHandlermxGraphHierarchyEdgemxGraphHierarchyModelmxGraphHierarchyNodemxGraphLayoutmxGraphModelmxGraphSelectionModelmxGraphViewmxGuidemxHierarchicalLayoutmxImagemxImageBundlemxImageExportmxImageShapemxKeyHandlermxLabelmxLayoutManagermxLinemxLogmxMarkermxMedianHybridCrossingReductionmxMinimumCycleRemovermxMorphingmxMouseEventmxMultiplicitymxObjectCodecmxObjectIdentitymxOutlinemxPanningHandlermxPanningManagermxParallelEdgeLayoutmxPartitionLayoutmxPathmxPointmxPopupMenumxPrintPreviewmxRectanglemxResourcesmxRhombusmxRubberbandmxSelectionCellsHandlermxSessionmxShapemxSpaceManagermxStackLayoutmxStencilmxStencilShapemxStyleRegistrymxSvgCanvas2DmxSwimlanemxSwimlaneManagermxTemporaryCellStatesmxTextmxToolbarmxTooltipHandlermxUndoableEditmxUndoManagermxUrlConvertermxUtilsmxVertexHandlermxWindowmxXmlCanvas2DmxXmlRequestWeightedCellSorter
 VERSION, mxClient
 vertex, mxCell
 VERTEX_SELECTION_COLOR, mxConstants
 VERTEX_SELECTION_STROKEWIDTH, mxConstants
 vertexArray, mxFastOrganicLayout
 vertexLabelsMovable, mxGraph
 vertexMapper, mxGraphHierarchyModel
 vertical, mxGuide
 verticalAlign, mxCellOverlay
 verticalLayout, mxCompactTreeLayout
 verticalTextDegree, mxText
 view
 visible
 visibleSourceState, mxCellState
 visibleStateForCellChanged, mxGraphModel
 visibleTargetState, mxCellState
 visit
 visited, WeightedCellSorter
 vmlNodes
+ +
Defines the color to be used for the coloring valid connection previews.
mxGraphView.prototype.validate = function(cell)
First validates all bounds and then validates all points recursively on all visible cells starting at the given cell.
mxGraphView.prototype.validateBackground = function()
Validates the background image.
mxGraphView.prototype.validateBounds = function(parentState,
cell)
Validates the bounds of the given parent’s child using the given parent state as the origin for the child.
mxGraph.prototype.validateCell = function(cell,
context)
Hook method for subclassers to return an error message for the given cell and validation context.
mxConnectionHandler.prototype.validateConnection = function(source,
target)
Returns the error message or an empty string if the connection for the given source target pair is not valid.
mxEdgeHandler.prototype.validateConnection = function(source,
target)
Returns the error message or an empty string if the connection for the given source, target pair is not valid.
mxGraph.prototype.validateEdge = function(edge,
source,
target)
Hook method for subclassers to return an error message for the given edge and terminals.
mxGraph.prototype.validateGraph = function(cell,
context)
Validates the graph by validating each descendant of the given cell or the root of the model.
mxGraphView.prototype.validatePoints = function(parentState,
cell)
Validates the points for the state of the given cell recursively if the cell is not collapsed and returns the bounding box of all visited states as an mxRectangle.
mxEditor.prototype.validating
Specifies if mxGraph.validateGraph should automatically be invoked after each change.
mxGraph.prototype.validationAlert = function(message)
Displays the given validation error in a dialog.
mxCellMarker.prototype.validColor
Holds the valid marker color.
mxMultiplicity.prototype.validNeighbors
Holds an array of strings that specify the type of neighbor for which this rule applies.
mxMultiplicity.prototype.validNeighborsAllowed
Boolean indicating if the list of validNeighbors are those that are allowed for this rule or those that are not allowed for this rule.
mxCellMarker.prototype.validState
Holds the marked mxCellState if it is valid.
mxCell.prototype.value
Holds the user object.
mxMultiplicity.prototype.value
Optional string that specifies the value of the attribute to be passed to mxUtils.isNode to check if the rule applies to a cell.
mxCell.prototype.valueChanged = function(newValue)
Changes the user object after an in-place edit and returns the previous value.
mxGraphModel.prototype.valueForCellChanged = function(cell,
value)
Inner callback to update the user object of the given mxCell using mxCell.valueChanged and return the previous value, that is, the return value of mxCell.valueChanged.
Maps from strings to objects.
Contains the current version of the mxGraph library.
mxCell.prototype.vertex
Specifies whether the cell is a vertex.
Defines the color to be used for the selection border of vertices.
Defines the strokewidth to be used for vertex selections.
mxFastOrganicLayout.prototype.vertexArray
An array of all vertices to be laid out.
mxGraph.prototype.vertexLabelsMovable
Specifies the return value for vertices in isLabelMovable.
mxGraphHierarchyModel.prototype.vertexMapper
Map from graph vertices to internal model nodes.
mxGuide.prototype.vertical
Specifies if vertical guides are enabled.
mxCellOverlay.prototype.verticalAlign
Holds the vertical alignment for the overlay.
mxCompactTreeLayout.prototype.verticalLayout = function(node,
parent,
x0,
y0,
bounds)
mxText.prototype.verticalTextDegree
Specifies the degree to be used for vertical text.
mxCellState.prototype.view
Reference to the enclosing mxGraphView.
mxGraph.prototype.view
Holds the mxGraphView that caches the mxCellStates for the cells.
mxTemporaryCellStates.prototype.view
Holds the width of the rectangle.
mxCell.prototype.visible
Specifies whether the cell is visible.
mxWindow.prototype.visible
Boolean flag that represents the visible state of the window.
mxCellState.prototype.visibleSourceState
Caches the visible source terminal state.
mxGraphModel.prototype.visibleStateForCellChanged = function(cell,
visible)
Inner callback to update the visible state of the given mxCell using mxCell.setCollapsed and return the previous visible state.
mxCellState.prototype.visibleTargetState
Caches the visible target terminal state.
mxDictionary.prototype.visit = function(visitor)
Visits all entries in the dictionary using the given function with the following signature: function(key, value) where key is a string and value is an object.
mxGraphHierarchyModel.prototype.visit = function(visitor,
dfsRoots,
trackAncestors,
seenNodes)
A depth first search through the internal heirarchy model.
WeightedCellSorter.prototype.visited
Whether or not this cell has been visited in the current assignment.
mxConnector.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxCylinder.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxDoubleEllipse.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxLabel.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxLine.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxShape.prototype.vmlNodes
Array if VML node names to fix in IE8 standards mode.
mxSwimlane.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General2.html b/docs/js-api/index/General2.html new file mode 100644 index 000000000..070b901f5 --- /dev/null +++ b/docs/js-api/index/General2.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
B
 Backend Integration, mxEditor
 backgroundImage, mxGraph
 basePath, mxClient
 baseUrl, mxUrlConverter
 BEFORE_ADD_VERTEX
 BEFORE_UNDO
 beforeDecode
 beforeEncode, mxObjectCodec
 beforeUndo, mxLayoutManager
 begin
 BEGIN_UPDATE
 beginUpdate, mxGraphModel
 bends, mxEdgeHandler
 bgNodes, mxStencil
 binary, mxXmlRequest
 bind, mxUtils
 bindAction, mxDefaultKeyHandler
 bindControlKey, mxKeyHandler
 bindControlShiftKey, mxKeyHandler
 bindKey, mxKeyHandler
 bindShiftKey, mxKeyHandler
 body, mxForm
 border
 borderColor, mxPrintPreview
 bounds, mxShape
 br, mxUtils
 bridge, mxCompactTreeLayout
 bubbling, mxLayoutManager
 buffer, mxLog
 button, mxUtils
+ +
mxGraph.prototype.backgroundImage
Specifies the mxImage to be returned by getBackgroundImage.
Basepath for all URLs in the core without trailing slash.
var baseUrl
Specifies the base URL to be used as a prefix for relative URLs.
Fires before a vertex is added in addVertex.
Specifies the event name for beforeAddVertex.
Specifies the event name for beforeUndo.
Fires before the change is dispatched after the update level has reached 0 in endUpdate.
codec.beforeDecode = function(dec,
node,
obj)
Decodes an mxCell and uses the enclosing XML node as the user object for the cell (inversion).
codec.beforeDecode = function(dec,
node,
obj)
Decodes the any child nodes as using the respective codec from the registry.
Decodes the ui-part of the configuration node by reading a sequence of the following child nodes and attributes and passes the control to the default decoding mechanism:
mxObjectCodec.prototype.beforeDecode = function(dec,
node,
obj)
Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode.
codec.beforeDecode = function(dec,
node,
obj)
Decodes the optional children as cells using the respective decoder.
mxObjectCodec.prototype.beforeEncode = function(enc,
obj,
node)
Hook for subclassers to pre-process the object before encoding.
mxLayoutManager.prototype.beforeUndo = function(undoableEdit)
Called from the undoHandler.
begin: function()
Starts a new path.
begin: function()
Starts a new path.
Specifies the event name for beginUpdate.
Fires after the updateLevel was incremented in beginUpdate.
mxGraphModel.prototype.beginUpdate = function()
Increments the updateLevel by one.
mxEdgeHandler.prototype.bends
Holds the mxShapes that represent the points.
Holds the XML node with the stencil description.
mxXmlRequest.prototype.binary
Boolean indicating if the request is binary.
bind: function(scope,
funct)
Returns a wrapper function that locks the execution scope of the given function to the specified scope.
mxDefaultKeyHandler.prototype.bindAction = function (code,
action,
control)
Binds the specified keycode to the given action in editor.
mxKeyHandler.prototype.bindControlKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.bindControlShiftKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.bindKey = function(code,
funct)
Binds the specified keycode to the given function.
mxKeyHandler.prototype.bindShiftKey = function(code,
funct)
Binds the specified keycode to the given function.
mxForm.prototype.body
Holds the DOM node that represents the tbody (table body).
mxGraph.prototype.border
Border to be added to the bottom and right side when the container is being resized after the graph has been changed.
mxOutline.prototype.border
Border to be added at the bottom and right.
mxPanningManager.prototype.border
Border to handle automatic panning inside the component.
mxPartitionLayout.prototype.border
Integer that specifies the absolute inset in pixels for the parent that contains the children.
mxPrintPreview.prototype.border
The border inset around each side of every page in the preview.
mxStackLayout.prototype.border
Border to be added if fill is true.
mxPrintPreview.prototype.borderColor
Holds the color value for the page border.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
br: function(parent,
count)
Appends a linebreak to the given parent and returns the linebreak.
mxCompactTreeLayout.prototype.bridge = function(line1,
x1,
y1,
line2,
x2,
y2)
mxLayoutManager.prototype.bubbling
Specifies if the layout should bubble along the cell hierarchy.
Buffer for pre-initialized content.
button: function(label,
funct,
doc)
Returns a new button with the given level and function as an onclick event handler.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General20.html b/docs/js-api/index/General20.html new file mode 100644 index 000000000..f16637882 --- /dev/null +++ b/docs/js-api/index/General20.html @@ -0,0 +1,46 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
W
 w0, mxStencil
 warn, mxLog
 WARN, mxLog
 warningImage, mxGraph
 waypointsEnabled, mxConnectionHandler
 WeightedCellSorter
 weightedMedian, mxMedianHybridCrossingReduction
 weightedValue, WeightedCellSorter
 widestRank, mxCoordinateAssignment
 widestRankValue, mxCoordinateAssignment
 width
 Windows, mxEditor
 wnd, mxPrintPreview
 wrap, mxStackLayout
 write
 writeAttribute, mxObjectCodec
 writeComplexAttribute, mxObjectCodec
 writeGraphModel, mxEditor
 writeHead, mxPrintPreview
 writeln
 writePrimitiveAttribute, mxObjectCodec
X
 x
 x0
Y
 y
 y0
Z
 zIndex
 zoom, mxGraph
 zoomActual, mxGraph
 zoomFactor, mxGraph
 zoomIn, mxGraph
 zoomOut, mxGraph
+ +
mxStencil.prototype.w0
Holds the width of the shape.
warn: function()
Adds all arguments to the console if WARN is enabled.
Specifies if the output for warn should be visible in the console.
mxGraph.prototype.warningImage
Specifies the mxImage for the image to be used to display a warning overlay.
mxConnectionHandler.prototype.waypointsEnabled
Specifies if single clicks should add waypoints on the new edge.
A utility class used to track cells whilst sorting occurs on the weighted sum of their connected edges.
function WeightedCellSorter(cell,
weightedValue)
Constructs a new weighted cell sorted for the given cell and weight.
mxMedianHybridCrossingReduction.prototype.weightedMedian = function(iteration,
model)
Sweeps up or down the layout attempting to minimise the median placement of connected cells on adjacent ranks
WeightedCellSorter.prototype.weightedValue
The weighted value of the cell stored.
mxCoordinateAssignment.prototype.widestRank
The rank that has the widest x position
mxCoordinateAssignment.prototype.widestRankValue
The X-coordinate of the edge of the widest rank
mxGraphAbstractHierarchyCell.prototype.width
The width of this cell
mxImage.prototype.width
Integer that specifies the width of the image.
mxRectangle.prototype.width
Holds the width of the rectangle.
mxPrintPreview.prototype.wnd
Reference to the preview window.
mxStackLayout.prototype.wrap
Value at which a new column or row should be created.
write: function()
Adds the specified strings to the console.
mxPath.prototype.write = function(string)
Writes directly into the path.
write: function(parent,
text)
Creates a text node for the given string and appends it to the given parent.
mxObjectCodec.prototype.writeAttribute = function(enc,
obj,
attr,
value,
node)
Writes the given value into node using writePrimitiveAttribute or writeComplexAttribute depending on the type of the value.
mxObjectCodec.prototype.writeComplexAttribute = function(enc,
obj,
attr,
value,
node)
Writes the given value as a child node of the given node.
mxEditor.prototype.writeGraphModel = function (linefeed)
Hook to create the string representation of the diagram.
mxPrintPreview.prototype.writeHead = function(doc,
css)
Writes the HEAD section into the given document, without the opening and closing HEAD tags.
writeln: function()
Adds the specified strings to the console, appending a linefeed at the end of each string.
writeln: function(parent,
text)
Creates a text node for the given string and appends it to the given parent with an additional linefeed.
mxObjectCodec.prototype.writePrimitiveAttribute = function(enc,
obj,
attr,
value,
node)
Writes the given value as an attribute of the given node.
+ + + +
mxGraphAbstractHierarchyCell.prototype.x
The x position of this cell for each layer it occupies
mxPoint.prototype.x
Holds the x-coordinate of the point.
mxCircleLayout.prototype.x0
Integer specifying the left coordinate of the circle.
mxStackLayout.prototype.x0
Specifies the horizontal origin of the layout.
+ + + +
mxGraphAbstractHierarchyCell.prototype.y
The y position of this cell for each layer it occupies
mxPoint.prototype.y
Holds the y-coordinate of the point.
mxCircleLayout.prototype.y0
Integer specifying the top coordinate of the circle.
mxPrintPreview.prototype.y0
Holds the vertical offset of the output.
mxStackLayout.prototype.y0
Specifies the vertical origin of the layout.
+ + + +
mxPopupMenu.prototype.zIndex
Specifies the zIndex for the popupmenu and its shadow.
mxTooltipHandler.prototype.zIndex
Specifies the zIndex for the tooltip and its shadow.
mxGraph.prototype.zoom = function(factor)
Zooms the graph using the given factor.
mxGraph.prototype.zoomActual = function()
Resets the zoom and panning in the view.
mxGraph.prototype.zoomFactor
Specifies the factor used for zoomIn and zoomOut.
mxGraph.prototype.zoomIn = function()
Zooms into the graph by zoomFactor.
mxGraph.prototype.zoomOut = function()
Zooms out of the graph by zoomFactor.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General3.html b/docs/js-api/index/General3.html new file mode 100644 index 000000000..19dd21165 --- /dev/null +++ b/docs/js-api/index/General3.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
C
 calcAttraction, mxFastOrganicLayout
 calcPositions, mxFastOrganicLayout
 calcRepulsion, mxFastOrganicLayout
 calculateCrossings, mxMedianHybridCrossingReduction
 calculatedWeightedValue, mxCoordinateAssignment
 calculateRankCrossing, mxMedianHybridCrossingReduction
 calculateWidestRank, mxCoordinateAssignment
 canExportCell, mxGraph
 canImportCell, mxGraph
 canRedo, mxUndoManager
 canUndo, mxUndoManager
 captureDocumentGesture, mxGraphView
 cascadeOpacity
 cell
 Cell alignment and orientation, mxGraph
 Cell cloning,insertion and removal, mxGraph
 Cell connecting and connection constraints, mxGraph
 Cell moving, mxGraph
 Cell retrieval, mxGraph
 Cell sizing, mxGraph
 Cell styles, mxGraph
 Cell visibility, mxGraph
 CELL_CONNECTED
 cellAdded
 cellCloned, mxGraphModel
 cellConnected, mxGraph
 cellEditor, mxGraph
 cellLabelChanged, mxGraph
 cellLocation, mxFastOrganicLayout
 cellRemoved
 cellRenderer, mxGraph
 cellResized, mxSpaceManager
 cells
 CELLS_ADDED
 CELLS_FOLDED
 CELLS_MOVED
 CELLS_ORDERED
 CELLS_REMOVED
 CELLS_RESIZED
 CELLS_TOGGLED, mxEvent
 cellsAdded
 cellsBendable, mxGraph
 cellsCloneable, mxGraph
 cellsDeletable, mxGraph
 cellsDisconnectable, mxGraph
 cellsEditable, mxGraph
 cellsFolded, mxGraph
 cellSizeUpdated, mxGraph
 cellsLocked, mxGraph
 cellsMovable, mxGraph
 cellsMoved
 cellsOrdered, mxGraph
 cellsRemoved, mxGraph
 cellsResizable, mxGraph
 cellsResized
 cellsSelectable, mxGraph
 cellsToggled, mxGraph
 centerZoom, mxGraph
 CHANGE
 changeHandler
 changePoints
 changes, mxUndoableEdit
 changeSelection, mxGraphSelectionModel
 changeTerminalPoint
 channelBuffer
 check, mxMultiplicity
 checkNeighbors, mxMultiplicity
 checkTerminal, mxMultiplicity
 checkType, mxMultiplicity
 childMoved, mxGraphView
 children, mxCell
 circle, mxCircleLayout
 clear
 CLEAR
 clearCellOverlays, mxGraph
 clearSelection
 clearSelectionOnBackground, mxPanningHandler
 click, mxGraph
 CLICK
 clip
 clone
 cloneCell, mxGraphModel
 cloneCellImpl, mxGraphModel
 cloneCells
 cloneEnabled
 cloneInvalidEdges, mxGraph
 clonePreviewState, mxEdgeHandler
 cloneTemplate, mxObjectCodec
 cloneValue, mxCell
 close
 CLOSE, mxEvent
 closeImage, mxWindow
 closeResource, mxUtils
 codec, mxSession
 codecs, mxCodecRegistry
 collapsed, mxCell
 collapsedImage, mxGraph
 collapsedStateForCellChanged, mxGraphModel
 collapseExpandResource, mxGraph
 collapseToPreferredSize, mxGraph
 compare
 compressed, mxXmlCanvas2D
 computeAspect, mxStencil
 config, mxDefaultPopupMenu
 configure, mxEditor
 configureHtmlShape
 configureShape, mxCellRenderer
 configureSvgShape
 configureTransparentBackground
 configureVmlShape
 confirm, mxUtils
 connect
 CONNECT
 CONNECT_CELL
 CONNECT_HANDLE_FILLCOLOR, mxConstants
 connectable, mxCell
 connectableEdges, mxGraph
 connectCell, mxGraph
 connected, mxSession
 connectIconOffset, mxConnectionHandler
 connectImage, mxConnectionHandler
 connectOnDrop
 connectsAsSource, mxGraphHierarchyNode
 connectsAsTarget, mxGraphHierarchyNode
 consoleName, mxLog
 constrainChild, mxGraph
 constrainChildren, mxGraph
 constraintHandler
 constraints, mxStencil
 consume
 consumeCycleAttribute, mxEditor
 consumed
 container, mxToolbar
 contains
 containsValidationErrorsResource, mxGraph
 content, mxWindow
 controlKeys, mxKeyHandler
 Controls and Handlers, mxEditor
 controlShiftKeys, mxKeyHandler
 convert, mxUrlConverter
 converter
 convertPoint
 convertValueFromXml, mxObjectCodec
 convertValueToString, mxGraph
 convertValueToXml, mxObjectCodec
 convertWaypoint, mxConnectionHandler
 copy
 count, mxCellStatePreview
 counter, mxObjectIdentity
 countError, mxMultiplicity
 create
 createBackgroundPageShape, mxGraphView
 createBends
 createBounds, mxVertexHandler
 createCellEditor, mxGraph
 createCellOverlays, mxCellRenderer
 createCellRenderer, mxGraph
 createConditions, mxDefaultPopupMenu
 createControl, mxCellRenderer
 createDashPattern, mxConnector
 createDefaultEdgeStyle, mxStylesheet
 createDefaultVertexStyle, mxStylesheet
 createDiagramLayout, mxEditor
 createDragElement, mxDragSource
 createEdge
 createEdgeState, mxConnectionHandler
 createForeignObject, mxText
 createGraph, mxEditor
 createGraphView, mxGraph
 createGroup, mxEditor
 createGroupCell, mxGraph
 createGuideShape, mxGuide
 createHandler, mxGraph
 createHandlers, mxGraph
 createHandleShape, mxEdgeHandler
 createHtml
 createHtmlPane, mxGraphView
 createHtmlTable, mxText
 createIcons, mxConnectionHandler
 createId, mxGraphModel
 createIds, mxGraphModel
 createImage, mxUtils
 createInternalCells, mxGraphHierarchyModel
 createLabel, mxCellRenderer
 createLayoutManager, mxEditor
 createLine, mxCompactTreeLayout
 createMarker
 createMenu, mxDefaultPopupMenu
 createNode, mxCompactTreeLayout
 createPageSelector, mxPrintPreview
 createPanningManager, mxGraph
 createPath, mxShape
 createPoints, mxShape
 createPopupMenu, mxEditor
 createPreviewElement, mxDragSource
 createPreviewShape, mxGraphHandler
 createProperties, mxEditor
 createRoot, mxGraphModel
 createSelectionModel, mxGraph
 createSelectionShape
 createSession, mxEditor
 createShape
 createSizer
 createSizerShape, mxVertexHandler
 createState, mxGraphView
 createStylesheet, mxGraph
 createSubmenu, mxPopupMenu
 createSvg
 createSvgGradient, mxShape
 createSvgGroup, mxShape
 createSvgPipe, mxShape
 createSvgShadow, mxShape
 createSvgSpan
 createSwimlaneLayout, mxEditor
 createSwimlaneManager, mxEditor
 createTarget, mxConnectionHandler
 createTargetVertex, mxConnectionHandler
 createTasks, mxEditor
 createToolbar, mxEditor
 createUndoableEdit
 createVertex, mxGraph
 createVirtualBend, mxElbowEdgeHandler
 createVml
 createVmlImage, mxLabel
 createVmlPane, mxGraphView
 createVmlShadow, mxShape
 createXmlDocument, mxUtils
 crisp
 crossingStage, mxHierarchicalLayout
 currentBestCrossings, mxMedianHybridCrossingReduction
 currentColor, mxCellMarker
 currentDropTarget, mxDragSource
 currentDx, mxGraphHandler
 currentDy, mxGraphHandler
 currentEdit, mxGraphModel
 currentFileResource, mxEditor
 currentGraph, mxDragSource
 currentGuide, mxDragSource
 currentPoint, mxDragSource
 currentRoot, mxGraphView
 currentX, mxRubberband
 currentXDelta, mxCoordinateAssignment
 currentY, mxRubberband
 cursor, mxCellOverlay
 CURSOR_BEND_HANDLE, mxConstants
 CURSOR_CONNECT, mxConstants
 CURSOR_LABEL_HANDLE, mxConstants
 CURSOR_MOVABLE_EDGE, mxConstants
 CURSOR_MOVABLE_VERTEX, mxConstants
 curveTo
 cut, mxClipboard
 cycleAttribute, mxEditor
 cycleAttributeIndex, mxEditor
 cycleAttributeName, mxEditor
 cycleAttributeValues, mxEditor
 cycleStage, mxHierarchicalLayout
+ +
mxFastOrganicLayout.prototype.calcAttraction = function()
Calculates the attractive forces between all laid out nodes linked by edges
mxFastOrganicLayout.prototype.calcPositions = function()
Takes the displacements calculated for each cell and applies them to the local cache of cell positions.
mxFastOrganicLayout.prototype.calcRepulsion = function()
Calculates the repulsive forces between all laid out nodes
mxMedianHybridCrossingReduction.prototype.calculateCrossings = function(model)
Calculates the total number of edge crossing in the current graph.
mxCoordinateAssignment.prototype.calculatedWeightedValue = function(
   currentCell,
   collection
)
Calculates the priority the specified cell has based on the type of its cell and the cells it is connected to on the next layer
mxMedianHybridCrossingReduction.prototype.calculateRankCrossing = function(
   i,
   model
)
Calculates the number of edges crossings between the specified rank and the rank below it.
mxCoordinateAssignment.prototype.calculateWidestRank = function(graph,
model)
Calculates the width rank in the hierarchy.
mxGraph.prototype.canExportCell = function(cell)
Returns true if the given cell may be exported to the clipboard.
mxGraph.prototype.canImportCell = function(cell)
Returns true if the given cell may be imported from the clipboard.
mxUndoManager.prototype.canRedo = function()
Returns true if a redo is possible.
mxUndoManager.prototype.canUndo = function()
Returns true if an undo is possible.
mxGraphView.prototype.captureDocumentGesture
Specifies if a gesture should be captured when it goes outside of the graph container.
cascadeOpacity: function(graph,
cell,
opacity)
Sets the opacity on the given cell and its descendants.
cascadeOpacity: function(graph,
cell,
opacity)
See mxEffects.cascadeOpacity.
MedianCellSorter.prototype.cell
The cell whose median value is being calculated
mxCellState.prototype.cell
Reference to the mxCell that is represented by this state.
mxGraphHierarchyNode.prototype.cell
The graph cell this object represents.
WeightedCellSorter.prototype.cell
The cell whose median value is being calculated.
Specifies the event name for cellConnected.
Fires between begin- and endUpdate in cellConnected.
mxGraphModel.prototype.cellAdded = function(cell)
Inner callback to update cells when a cell has been added.
mxGraphSelectionModel.prototype.cellAdded = function(cell)
Inner callback to add the specified mxCell to the selection.
mxGraphModel.prototype.cellCloned = function(cell)
Hook for cloning the cell.
mxGraph.prototype.cellConnected = function(edge,
terminal,
source,
constraint)
Sets the new terminal for the given edge and resets the edge points if resetEdgesOnConnect is true.
mxGraph.prototype.cellEditor
Holds the mxCellEditor that is used as the in-place editing.
mxGraph.prototype.cellLabelChanged = function(cell,
value,
autoSize)
Sets the new label for a cell.
mxFastOrganicLayout.prototype.cellLocation
An array of locally stored co-ordinate positions for the vertices.
mxGraphModel.prototype.cellRemoved = function(cell)
Inner callback to update cells when a cell has been removed.
mxGraphSelectionModel.prototype.cellRemoved = function(cell)
Inner callback to remove the specified mxCell from the selection.
mxSession.prototype.cellRemoved = function(cell,
codec)
Adds removed cells to the codec object lookup for references to the removed cells after this point in time.
mxGraph.prototype.cellRenderer
Holds the mxCellRenderer for rendering the cells in the graph.
mxSpaceManager.prototype.cellResized = function(cell)
Called from moveCellsIntoParent to invoke the move hook in the automatic layout of each modified cell’s parent.
Holds the array of mxCells currently in the clipboard.
mxGraphModel.prototype.cells
Maps from Ids to cells.
mxMorphing.prototype.cells
Optional array of cells to be animated.
Specifies the event name for cellsAdded.
Fires between begin- and endUpdate in cellsAdded.
Specifies the event name for cellsFolded.
Fires between begin- and endUpdate in cellsFolded.
Specifies the event name for cellsMoved.
Fires between begin- and endUpdate in cellsMoved.
Specifies the event name for cellsOrdered.
Fires between begin- and endUpdate in cellsOrdered.
Specifies the event name for cellsRemoved.
Fires between begin- and endUpdate in cellsRemoved.
Specifies the event name for cellsResized.
Fires between begin- and endUpdate in cellsResized.
Specifies the event name for cellsToggled.
mxGraph.prototype.cellsAdded = function(cells,
parent,
index,
source,
target,
absolute)
Adds the specified cells to the given parent.
mxSwimlaneManager.prototype.cellsAdded = function(cells)
Called if any cells have been added.
mxGraph.prototype.cellsBendable
Specifies the return value for isCellsBendable.
mxGraph.prototype.cellsCloneable
Specifies the return value for isCellCloneable.
mxGraph.prototype.cellsDeletable
Specifies the return value for isCellDeletable.
mxGraph.prototype.cellsDisconnectable
Specifies the return value for isCellDisconntable.
mxGraph.prototype.cellsEditable
Specifies the return value for isCellEditable.
mxGraph.prototype.cellsFolded = function(cells,
collapse,
recurse,
checkFoldable)
Sets the collapsed state of the specified cells.
mxGraph.prototype.cellSizeUpdated = function(cell,
ignoreChildren)
Updates the size of the given cell in the model using getPreferredSizeForCell to get the new size.
mxGraph.prototype.cellsLocked
Specifies the return value for isCellLocked.
mxGraph.prototype.cellsMovable
Specifies the return value for isCellMovable.
mxGraph.prototype.cellsMoved = function(cells,
dx,
dy,
disconnect,
constrain)
Moves the specified cells by the given vector, disconnecting the cells using disconnectGraph is disconnect is true.
mxLayoutManager.prototype.cellsMoved = function(cells,
evt)
Called from the moveHandler.
mxGraph.prototype.cellsOrdered = function(cells,
back)
Moves the given cells to the front or back.
mxGraph.prototype.cellsRemoved = function(cells)
Removes the given cells from the model.
mxGraph.prototype.cellsResizable
Specifies the return value for isCellResizable.
mxGraph.prototype.cellsResized = function(cells,
bounds)
Sets the bounds of the given cells and fires a mxEvent.CELLS_RESIZED event.
mxSpaceManager.prototype.cellsResized = function(cells)
Called from moveCellsIntoParent to invoke the move hook in the automatic layout of each modified cell’s parent.
mxSwimlaneManager.prototype.cellsResized = function(cells)
Called if any cells have been resizes.
mxGraph.prototype.cellsSelectable
Specifies the return value for isCellSelectable.
mxGraph.prototype.cellsToggled = function(cells,
show)
Sets the visible state of the specified cells.
mxGraph.prototype.centerZoom
Specifies if the zoom operations should go into the center of the actual diagram rather than going from top, left.
Specifies the event name for change.
Fires when an undoable edit is dispatched.
Fires after the selection changes by executing an mxSelectionChange.
mxAutoSaveManager.prototype.changeHandler
Holds the function that handles graph model changes.
mxConnectionHandler.prototype.changeHandler
Holds the change event listener for later removal.
mxEdgeSegmentHandler.prototype.changePoints = function(edge,
points)
Changes the points of the given edge to reflect the current state of the handler.
mxEdgeHandler.prototype.changePoints = function(edge,
points)
Changes the control points of the given edge in the graph model.
mxUndoableEdit.prototype.changes
Array that contains the changes that make up this edit.
mxGraphSelectionModel.prototype.changeSelection = function(added,
removed)
Inner callback to add the specified mxCell to the selection.
mxEdgeSegmentHandler.prototype.changeTerminalPoint = function(edge,
point,
isSource)
Calls refresh after mxEdgeHandler.changeTerminalPoint.
mxEdgeHandler.prototype.changeTerminalPoint = function(edge,
point,
isSource)
Changes the terminal point of the given edge.
mxCompactTreeLayout.prototype.channelBuffer
The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed
mxCoordinateAssignment.prototype.channelBuffer
The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed
mxMultiplicity.prototype.check = function(graph,
edge,
source,
target,
sourceOut,
targetIn)
Checks the multiplicity for the given arguments and returns the error for the given connection or null if the multiplicity does not apply.
mxMultiplicity.prototype.checkNeighbors = function(graph,
edge,
source,
target)
Checks if there are any valid neighbours in validNeighbors.
mxMultiplicity.prototype.checkTerminal = function(graph,
terminal,
edge)
Checks the given terminal cell and returns true if this rule applies.
mxMultiplicity.prototype.checkType = function(graph,
value,
type,
attr,
attrValue)
Checks the type of the given value.
mxGraphView.prototype.childMoved = function(parent,
child)
Invoked when a child state was moved as a result of late evaluation of its position.
mxCell.prototype.children
Holds the child cells.
mxCircleLayout.prototype.circle = function(vertices,
r,
left,
top)
Executes the circular layout for the specified array of vertices and the given radius.
mxDictionary.prototype.clear = function()
Clears the dictionary.
mxGraphModel.prototype.clear = function()
Sets a new root using createRoot.
mxGraphSelectionModel.prototype.clear = function()
Clears the selection and fires a change event if the selection was not empty.
mxGraphView.prototype.clear = function(cell,
force,
recurse)
Removes the state of the given cell and all descendants if the given cell is not the current root.
clear: function(obj)
Removes the object id from the given object.
mxUndoManager.prototype.clear = function()
Clears the command history.
Specifies the event name for clear.
Fires after clear was invoked.
mxGraph.prototype.clearCellOverlays = function(cell)
Removes all mxCellOverlays in the graph for the given cell and all its descendants.
mxGraph.prototype.clearSelection = function()
Clears the selection using mxGraphSelectionModel.clear.
clearSelection: function()
Clears the current selection in the page.
mxPanningHandler.prototype.clearSelectionOnBackground
Specifies if cells should be deselected if a popupmenu is displayed for the diagram background.
mxGraph.prototype.click = function(me)
Processes a singleclick on an optional cell and fires a click event.
Fires when the user clicks on the overlay.
Specifies the event name for click.
Fires in click after a click event.
clip: function()
Uses the current path for clipping.
clip: function()
Uses the current path for clipping.
mxCell.prototype.clone = function()
Returns a clone of the cell.
mxCellState.prototype.clone = function()
Returns a clone of this mxPoint.
mxLine.prototype.clone = function()
Overrides the clone method to add special fields.
mxPoint.prototype.clone = function()
Returns a clone of this mxPoint.
clone: function(obj,
transients,
shallow)
Recursively clones the specified object ignoring all fieldnames in the given array of transient fields.
mxGraphModel.prototype.cloneCell = function(cell)
Returns a deep clone of the given mxCell (including the children) which is created using cloneCells.
mxGraphModel.prototype.cloneCellImpl = function(cell,
mapping,
includeChildren)
Inner helper method for cloning cells recursively.
mxGraph.prototype.cloneCells = function(cells,
allowInvalidEdges)
Returns the clones for the given cells.
mxGraphModel.prototype.cloneCells = function(cells,
includeChildren)
Returns an array of clones for the given array of mxCells.
mxEdgeHandler.prototype.cloneEnabled
Specifies if cloning by control-drag is enabled.
mxGraphHandler.prototype.cloneEnabled
Specifies if cloning by control-drag is enabled.
mxGraph.prototype.cloneInvalidEdges
Specifies if edges that are cloned should be validated and only inserted if they are valid.
mxEdgeHandler.prototype.clonePreviewState = function(point,
terminal)
Returns a clone of the current preview state for the given point and terminal.
mxObjectCodec.prototype.cloneTemplate = function()
Returns a new instance of the template for this codec.
mxCell.prototype.cloneValue = function()
Returns a clone of the cell’s user object.
mxPath.prototype.close = function()
Closes the path.
mxPrintPreview.prototype.close = function()
Closes the print preview window.
close: function()
Closes the current path.
close: function()
Closes the current path.
Specifies the event name for close.
mxWindow.prototype.closeImage
URL of the image to be used for the close icon in the titlebar.
Specifies the resource key for the label of the close button.
mxSession.prototype.codec
Reference to the mxCodec used to encoding and decoding changes.
Maps from constructor names to codecs.
mxCell.prototype.collapsed
Specifies whether the cell is collapsed.
mxGraph.prototype.collapsedImage
Specifies the mxImage to indicate a collapsed state.
mxGraphModel.prototype.collapsedStateForCellChanged = function(cell,
collapsed)
Inner callback to update the collapsed state of the given mxCell using mxCell.setCollapsed and return the previous collapsed state.
mxGraph.prototype.collapseExpandResource
Specifies the resource key for the tooltip on the collapse/expand icon.
mxGraph.prototype.collapseToPreferredSize
Specifies if the cell size should be changed to the preferred size when a cell is first collapsed.
MedianCellSorter.prototype.compare = function(a,
b)
Compares two MedianCellSorters.
compare: function(p1,
p2)
Compares the given cell paths and returns -1 if p1 is smaller, 0 if p1 is equal and 1 if p1 is greater than p2.
WeightedCellSorter.prototype.compare = function(a,
b)
Compares two WeightedCellSorters.
var compressed
Specifies if the output should be compressed by removing redundant calls.
mxStencil.prototype.computeAspect = function(state,
bounds,
direction)
Returns a rectangle that contains the offset in x and y and the horizontal and vertical scale in width and height used to draw this shape inside the given mxRectangle.
mxDefaultPopupMenu.prototype.config
XML node used as the description of new menu items.
mxEditor.prototype.configure = function (node)
Configures the editor using the specified node.
mxConnector.prototype.configureHtmlShape = function(node)
Overrides mxShape.configureHtmlShape to clear the border and background.
mxShape.prototype.configureHtmlShape = function(node)
Configures the specified HTML node by applying the current color, bounds, shadow, opacity etc.
mxStencilShape.prototype.configureHtmlShape = function(node)
Overrides method to set the overflow style to visible.
mxCellRenderer.prototype.configureShape = function(state)
Configures the shape for the given cell state.
mxImageShape.prototype.configureSvgShape = function(node)
Extends method to set opacity on images.
mxShape.prototype.configureSvgShape = function(node)
Configures the specified SVG node by applying the current color, bounds, shadow, opacity etc.
mxArrow.prototype.configureTransparentBackground = function(node)
Overidden to remove transparent background.
mxImageShape.prototype.configureTransparentBackground = function(node)
Workaround for security warning in IE if this is used in the overlay pane of a diagram.
mxShape.prototype.configureTransparentBackground = function(node)
Hook to make the background of a shape transparent.
mxShape.prototype.configureVmlShape = function(node)
Configures the specified VML node by applying the current color, bounds, shadow, opacity etc.
mxStencilShape.prototype.configureVmlShape = function(node)
Configures the specified VML node by applying the current color, bounds, shadow, opacity etc.
confirm: function(message)
Displays the given message in a confirm dialog.
mxEdgeSegmentHandler.prototype.connect = function(edge,
terminal,
isSource,
isClone,
me)
Calls refresh after mxEdgeHandler.connect.
mxConnectionHandler.prototype.connect = function(source,
target,
evt,
dropTarget)
Connects the given source and target using a new edge.
mxDefaultToolbar.prototype.connect = function(vertex,
evt,
source)
Handles a drop by connecting the given vertex to the given source cell.
mxEdgeHandler.prototype.connect = function(edge,
terminal,
isSource,
isClone,
me)
Changes the terminal or terminal point of the given edge in the graph model.
mxEditor.prototype.connect = function (urlInit,
urlPoll,
urlNotify,
onChange)
Creates and returns a session for the specified parameters, installing the onChange function as a change listener for the session.
Fires between begin- and endUpdate in connect.
Specifies the event name for connect.
Fires after the session has been started, that is, after the response to the initial request was received and the session goes into polling mode.
Specifies the event name for connectCell.
Fires between begin- and endUpdate in connectCell.
Defines the color to be used for the connect handle fill color.
mxCell.prototype.connectable
Specifies whether the cell is connectable.
mxGraph.prototype.connectableEdges
Specifies if edges are connectable.
mxGraph.prototype.connectCell = function(edge,
terminal,
source,
constraint)
Connects the specified end of the given edge to the given terminal using cellConnected and fires mxEvent.CONNECT_CELL while the transaction is in progress.
mxSession.prototype.connected
mxConnectionHandler.prototype.connectIconOffset
Holds the offset for connect icons during connection preview.
mxConnectionHandler.prototype.connectImage
mxImage that is used to trigger the creation of a new connection.
mxDefaultToolbar.prototype.connectOnDrop
Specifies if elements should be connected if new cells are dropped onto connectable elements.
mxGraphHandler.prototype.connectOnDrop
Specifies if drop events are interpreted as new connections if no other drop action is defined.
mxGraphHierarchyNode.prototype.connectsAsSource
Collection of hierarchy edges that have this node as a source
mxGraphHierarchyNode.prototype.connectsAsTarget
Collection of hierarchy edges that have this node as a target
Specifies the name of the console window.
mxGraph.prototype.constrainChild = function(cell)
Keeps the given cell inside the bounds returned by getCellContainmentArea for its parent, according to the rules defined by getOverlap and isConstrainChild.
mxGraph.prototype.constrainChildren
Specifies the return value for isConstrainChildren.
mxConnectionHandler.prototype.constraintHandler
Holds the mxConstraintHandler used for drawing and highlighting constraints.
mxEdgeHandler.prototype.constraintHandler
Holds the mxConstraintHandler used for drawing and highlighting constraints.
mxStencil.prototype.constraints
Holds an array of mxConnectionConstraints as defined in the shape.
consume: function(evt,
preventDefault,
stopPropagation)
Consumes the given event.
mxEventObject.prototype.consume = function()
Consumes the event.
mxMouseEvent.prototype.consume = function(preventDefault)
Sets consumed to true and invokes preventDefault on the native event if such a method is defined.
mxEditor.prototype.consumeCycleAttribute = function (cell)
Returns the next attribute in cycleAttributeValues or null, if not attribute should be used in the specified cell.
mxEventObject.prototype.consumed
Holds the consumed state.
mxMouseEvent.prototype.consumed
Holds the consumed state of this event.
mxToolbar.prototype.container
Reference to the DOM nodes that contains the toolbar.
mxGraphModel.prototype.contains = function(cell)
Returns true if the model contains the given mxCell.
contains: function(bounds,
x,
y)
Returns true if the specified point (x, y) is contained in the given rectangle.
mxGraph.prototype.containsValidationErrorsResource
Specifies the resource key for the warning message to be displayed when a collapsed cell contains validation errors.
mxWindow.prototype.content
Reference to the DOM node that represents the window content.
mxKeyHandler.prototype.controlKeys
Maps from keycodes to functions for pressed control keys.
mxKeyHandler.prototype.controlShiftKeys
Maps from keycodes to functions for pressed control and shift keys.
convert: function(url)
Converts the given URL to an absolute URL.
var converter
Holds the mxUrlConverter to convert image URLs.
var converter
Holds the mxUrlConverter to convert image URLs.
mxEdgeHandler.prototype.convertPoint = function(point,
gridEnabled)
Converts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.
mxElbowEdgeHandler.prototype.convertPoint = function(point,
gridEnabled)
Converts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid.
convertPoint: function(container,
x,
y)
Converts the specified point (x, y) using the offset of the specified container and returns a new mxPoint with the result.
mxObjectCodec.prototype.convertValueFromXml = function(value)
Converts booleans and numeric values to the respective types.
mxGraph.prototype.convertValueToString = function(cell)
Returns the textual representation for the given cell.
mxObjectCodec.prototype.convertValueToXml = function(value)
Converts true to “1” and false to “0”.
mxConnectionHandler.prototype.convertWaypoint = function(point)
Converts the given point from screen coordinates to model coordinates.
copy: function(graph,
cells)
Copies the given array of mxCells from the specified graph to cells.Returns the original array of cells that has been cloned.
copy: function(content)
Copies the specified content to the local clipboard.
mxCellStatePreview.prototype.count
Contains the number of entries in the map.
Current counter for objects.
mxMultiplicity.prototype.countError
Holds the localized error message to be displayed if the number of connections for which the rule applies is smaller than min or greater than max.
create: function(cell)
Creates the cell path for the given cell.
mxCylinder.prototype.create = function(container)
Overrides the method to make sure the stroke is never null.
mxGraphView.prototype.createHtml = function()
Creates the DOM nodes for the HTML display.
mxImageShape.prototype.create = function()
Override to create HTML regardless of gradient and rounded property.
mxPolyline.prototype.create = function()
Override to create HTML regardless of gradient and rounded property.
mxShape.prototype.create = function(container)
Creates and returns the DOM node(s) for the shape in the given container.
mxText.prototype.create = function(container)
Override to create HTML regardless of gradient and rounded property.
mxXmlRequest.prototype.create = function()
Creates and returns the inner request object.
mxGraphView.prototype.createBackgroundPageShape = function(bounds)
Creates and returns the shape used as the background page.
mxEdgeSegmentHandler.prototype.createBends = function()
Adds custom bends for the center of each segment.
mxEdgeHandler.prototype.createBends = function()
Creates and returns the bends used for modifying the edge.
mxElbowEdgeHandler.prototype.createBends = function()
Overrides mxEdgeHandler.createBends to create custom bends.
Helper method to create an mxRectangle around the given centerpoint with a width and height of 2*s or 6, if no s is given.
mxGraph.prototype.createCellEditor = function()
Creates a new mxCellEditor to be used in this graph.
mxCellRenderer.prototype.createCellOverlays = function(state)
Creates the actual shape for showing the overlay for the given cell state.
mxGraph.prototype.createCellRenderer = function()
Creates a new mxCellRenderer to be used in this graph.
mxDefaultPopupMenu.prototype.createConditions = function(editor,
cell,
evt)
Evaluates the default conditions for the given context.
mxCellRenderer.prototype.createControl = function(state)
Creates the control for the given cell state.
mxConnector.prototype.createDashPattern = function(factor)
Creates a dash pattern for the given factor.
mxStylesheet.prototype.createDefaultEdgeStyle = function()
Creates and returns the default edge style.
mxStylesheet.prototype.createDefaultVertexStyle = function()
Creates and returns the default vertex style.
mxEditor.prototype.createDiagramLayout = function ()
Creates the layout instance used to layout the swimlanes in the diagram.
mxDragSource.prototype.createDragElement = function(evt)
Creates and returns a clone of the dragElementPrototype or the element if the former is not defined.
mxConnectionHandler.prototype.createEdge = function(value,
source,
target,
style)
Creates and returns a new edge using factoryMethod if one exists.
mxEditor.prototype.createEdge = function (source,
target)
Uses defaultEdge as the prototype for creating new edges in the connection handler of the graph.
mxGraph.prototype.createEdge = function(parent,
id,
value,
source,
target,
style)
Hook method that creates the new edge for insertEdge.
mxConnectionHandler.prototype.createEdgeState = function(me)
Hook to return an mxCellState which may be used during the preview.
mxText.prototype.createForeignObject = function()
Creates and returns the foreignObject node to represent this shape.
mxEditor.prototype.createGraph = function ()
Creates the graph for the editor.
mxGraph.prototype.createGraphView = function()
Creates a new mxGraphView to be used in this graph.
mxEditor.prototype.createGroup = function ()
Creates and returns a clone of defaultGroup to be used as a new group cell in group.
mxGraph.prototype.createGroupCell = function(cells)
Hook for creating the group cell to hold the given array of mxCells if no group cell was given to the group function.
mxGuide.prototype.createGuideShape = function(horizontal)
Returns the mxShape to be used for painting the respective guide.
mxGraph.prototype.createHandler = function(state)
Creates a new handler for the given cell state.
mxGraph.prototype.createHandlers = function(container)
Creates the tooltip-, panning-, connection- and graph-handler (in this order).
mxEdgeHandler.prototype.createHandleShape = function(index)
Creates the shape used to display the given bend.
mxLabel.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxRectangleShape.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxRhombus.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxShape.prototype.createHtml = function()
Creates and returns the HTML DOM node(s) to represent this shape.
mxSwimlane.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxText.prototype.createHtml = function()
Creates and returns the HTML node to represent this shape.
mxGraphView.prototype.createHtmlPane = function(width,
height)
Creates and returns a drawing pane in HTML (DIV).
mxText.prototype.createHtmlTable = function()
Creates and returns a HTML table with a table body and a single row with a single cell.
mxConnectionHandler.prototype.createIcons = function(state)
Creates the array mxImageShapes that represent the connect icons for the given mxCellState.
mxGraphModel.prototype.createId = function(cell)
Hook method to create an Id for the specified cell.
mxGraphModel.prototype.createIds
Specifies if the model should automatically create Ids for new cells.
createImage: function(src)
Creates and returns an image (IMG node) or VML image (v:image) in IE6 in quirs mode.
mxGraphHierarchyModel.prototype.createInternalCells = function(layout,
vertices,
internalVertices)
Creates all edges in the internal model
mxCellRenderer.prototype.createLabel = function(state,
value)
Creates the label for the given cell state.
mxEditor.prototype.createLayoutManager = function (graph)
Creates a layout manager for the swimlane and diagram layouts, that is, the locally defined inter- and intraswimlane layouts.
mxCompactTreeLayout.prototype.createLine = function(dx,
dy,
next)
mxConnectionHandler.prototype.createMarker = function()
Creates and returns the mxCellMarker used in marker.
mxEdgeHandler.prototype.createMarker = function()
Creates and returns the mxCellMarker used in marker.
mxDefaultPopupMenu.prototype.createMenu = function(editor,
menu,
cell,
evt)
This function is called from mxEditor to add items to the given menu based on config.
mxCompactTreeLayout.prototype.createNode = function(cell)
mxPrintPreview.prototype.createPageSelector = function(vpages,
hpages)
Creates the page selector table.
mxGraph.prototype.createPanningManager = function()
Creates and returns an mxPanningManager.
mxShape.prototype.createPath = function(arg)
Creates an mxPath for the specified format and origin.
mxShape.prototype.createPoints = function(moveCmd,
lineCmd,
curveCmd,
isRelative)
Creates a path expression using the specified commands for this.points.
mxEditor.prototype.createPopupMenu = function (menu,
cell,
evt)
Uses popupHandler to create the menu in the graph’s panning handler.
mxDragSource.prototype.createPreviewElement = function(graph)
Creates and returns an element which can be used as a preview in the given graph.
mxGraphHandler.prototype.createPreviewShape = function(bounds)
Creates the shape used to draw the preview for the given bounds.
mxEditor.prototype.createProperties = function (cell)
Creates and returns the DOM node that represents the contents of the properties dialog for the given cell.
mxGraphModel.prototype.createRoot = function()
Creates a new root cell with a default layer (child 0).
mxGraph.prototype.createSelectionModel = function()
Creates a new mxGraphSelectionModel to be used in this graph.
mxEdgeHandler.prototype.createSelectionShape = function(points)
Creates the shape used to draw the selection border.
mxVertexHandler.prototype.createSelectionShape = function(bounds)
Creates the shape used to draw the selection border.
mxEditor.prototype.createSession = function ()
Creates the built-in session using urlInit, urlPoll and urlNotify.
mxCellHighlight.prototype.createShape = function(state)
Creates and returns the highlight shape for the given state.
mxCellRenderer.prototype.createShape = function(state)
Creates the shape for the given cell state.
mxConnectionHandler.prototype.createShape = function()
Creates the preview shape for new connections.
mxImageExport.prototype.createShape = function(state,
canvas)
Creates a shape wrapper for the custom shape in the given cell state and links its output to the given canvas.
mxRubberband.prototype.createShape = function()
Creates the rubberband selection shape.
mxOutline.prototype.createSizer = function()
Creates the shape used as the sizer.
mxVertexHandler.prototype.createSizer = function(cursor,
index,
size,
fillColor)
Creates a sizer handle for the specified cursor and index and returns the new mxRectangleShape that represents the handle.
mxVertexHandler.prototype.createSizerShape = function(bounds,
index,
fillColor)
Creates the shape used for the sizer handle for the specified bounds and index.
mxGraphView.prototype.createState = function(cell)
Creates and returns an mxCellState for the given cell and initializes it using mxCellRenderer.initialize.
mxGraph.prototype.createStylesheet = function()
Creates a new mxGraphSelectionModel to be used in this graph.
mxPopupMenu.prototype.createSubmenu = function(parent)
Creates the nodes required to add submenu items inside the given parent item.
mxActor.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxArrow.prototype.createSvg = function()
Extends mxActor.createSvg to ignore fill if enableFill is false and create an event handling shape if this.addPipe is true.
mxConnector.prototype.createSvg = function()
Creates and returns the SVG node to represent this shape.
mxCylinder.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxDoubleEllipse.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxEllipse.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxLabel.prototype.createSvg = function()
Creates and returns the SVG node to represent this shape.
mxLine.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxPolyline.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxRectangleShape.prototype.createSvg = function()
Creates and returns the SVG node to represent this shape.
mxRhombus.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxStencilShape.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxSwimlane.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxText.prototype.createSvg = function()
Creates and returns the SVG node(s) to represent this shape.
mxShape.prototype.createSvgGradient = function(id,
start,
end,
node)
Creates a gradient object for SVG using the specified startcolor, endcolor and opacity.
mxShape.prototype.createSvgGroup = function(shape)
Creates a SVG group element and adds the given shape as a child of the element.
mxShape.prototype.createSvgPipe = function(id,
start,
end,
node)
Creates an invisible path which is used to increase the hit detection for edges in SVG.
mxShape.prototype.createSvgShadow = function(node)
Creates a clone of the given node and configures the node’s color to use mxConstants.SHADOWCOLOR.
Updates the path for the given SVG node.
mxText.prototype.createSvgSpan = function(text)
Creats an SVG tspan node for the given text.
mxEditor.prototype.createSwimlaneLayout = function ()
Creates the layout instance used to layout the children of each swimlane.
mxEditor.prototype.createSwimlaneManager = function (graph)
Sets the graph’s container using mxGraph.init.
mxConnectionHandler.prototype.createTarget
Specifies if createTargetVertex should be called if no target was under the mouse for the new connection.
mxConnectionHandler.prototype.createTargetVertex = function(evt,
source)
Hook method for creating new vertices on the fly if no target was under the mouse.
mxEditor.prototype.createTasks = function (div)
Updates the contents of the given DOM node to display the tasks associated with the current editor state.
mxEditor.prototype.createToolbar = function ()
Creates the toolbar with no container.
mxGraphModel.prototype.createUndoableEdit = function()
Creates a new mxUndoableEdit that implements the notify function to fire a change and notify event through the mxUndoableEdit’s source.
mxSession.prototype.createUndoableEdit = function(changes)
Creates a new mxUndoableEdit that implements the notify function to fire a change and notify event via the model.
mxGraph.prototype.createVertex = function(parent,
id,
value,
x,
y,
width,
height,
style,
relative)
Hook method that creates the new vertex for insertVertex.
mxElbowEdgeHandler.prototype.createVirtualBend = function()
Creates a virtual bend that supports double clicking and calls mxGraph.flipEdge.
mxActor.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxArrow.prototype.createVml = function()
Extends mxShape.createVml to ignore fill if enableFill is false.
mxConnector.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxCylinder.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxDoubleEllipse.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxEllipse.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxLabel.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxLine.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxRectangleShape.prototype.createVml = function()
Creates and returns the VML node to represent this shape.
mxRhombus.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxSwimlane.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxText.prototype.createVml = function()
Creates and returns the VML node(s) to represent this shape.
mxLabel.prototype.createVmlImage = function(src,
opacity)
Creates an image node for the given image src and opacity to be used in VML.
mxGraphView.prototype.createVmlPane = function(width,
height)
Creates a drawing pane in VML (group).
mxShape.prototype.createVmlShadow = function(node)
Creates the VML shadow node.
createXmlDocument: function()
Returns a new, empty XML document.
mxEdgeHandler.prototype.crisp
Specifies if the edge handles should be rendered in crisp mode.
mxGraphHandler.prototype.crisp
Specifies if the move preview should be rendered in crisp mode if applicable.
mxGuide.prototype.crisp
Specifies if theguide should be rendered in crisp mode if applicable.
mxImageShape.prototype.crisp
Disables crisp rendering via attributes.
mxShape.prototype.crisp
Special attribute for SVG rendering to set the shape-rendering attribute to crispEdges in the output.
mxVertexHandler.prototype.crisp
Specifies if the selection bounds and handles should be rendered in crisp mode.
mxHierarchicalLayout.prototype.crossingStage = function(parent)
Executes the crossing stage using mxMedianHybridCrossingReduction.
mxMedianHybridCrossingReduction.prototype.currentBestCrossings
The total number of crossings found in the best configuration so far
mxCellMarker.prototype.currentColor
Holds the current marker color.
mxDragSource.prototype.currentDropTarget
Holds the current drop target under the mouse.
mxGraphHandler.prototype.currentDx
Stores the x-coordinate of the current mouse move.
mxGraphHandler.prototype.currentDy
Stores the y-coordinate of the current mouse move.
mxGraphModel.prototype.currentEdit
Holds the changes for the current transaction.
mxEditor.prototype.currentFileResource
Specifies the resource key for the current file info.
mxDragSource.prototype.currentGraph
Reference to the mxGraph that is the current drop target.
mxDragSource.prototype.currentGuide
Holds an mxGuide for the currentGraph if dragPreview is not null.
mxDragSource.prototype.currentPoint
Holds the current drop location.
mxGraphView.prototype.currentRoot
mxCell that acts as the root of the displayed cell hierarchy.
mxRubberband.prototype.currentX
Holds the value of the x argument in the last call to update.
mxCoordinateAssignment.prototype.currentXDelta
The sum of x-displacements for the current iteration
mxRubberband.prototype.currentY
Holds the value of the y argument in the last call to update.
mxCellOverlay.prototype.cursor
Holds the cursor for the overlay.
Defines the cursor for a movable bend.
Defines the cursor for a connectable state.
Defines the cursor for a movable label.
Defines the cursor for a movable edge.
Defines the cursor for a movable vertex.
mxPath.prototype.curveTo = function(x1,
y1,
x2,
y2,
x,
y)
Draws a cubic Bézier curve from the current point to (x, y) using (x1, y1) as the control point at the beginning of the curve and (x2, y2) as the control point at the end of the curve.
curveTo: function(x1,
y1,
x2,
y2,
x3,
y3)
Adds a bezier curve to the current path.
curveTo: function(x1,
y1,
x2,
y2,
x3,
y3)
Adds a bezier curve to the current path.
cut: function(graph,
cells)
Cuts the given array of mxCells from the specified graph.
mxEditor.prototype.cycleAttribute = function (cell)
Uses the returned value from consumeCycleAttribute as the value for the cycleAttributeName key in the given cell’s style.
mxEditor.prototype.cycleAttributeIndex
Index of the last consumed attribute index.
mxEditor.prototype.cycleAttributeName
Name of the attribute to be assigned a cycleAttributeValues when inserting new swimlanes.
mxEditor.prototype.cycleAttributeValues
Specifies the attribute values to be cycled when inserting new swimlanes.
mxHierarchicalLayout.prototype.cycleStage = function(parent)
Executes the cycle stage using mxMinimumCycleRemover.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General4.html b/docs/js-api/index/General4.html new file mode 100644 index 000000000..be0f7aadb --- /dev/null +++ b/docs/js-api/index/General4.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
D
 damper, mxPanningManager
 dblClick, mxGraph
 dblClickAction, mxEditor
 debug
 DEBUG, mxLog
 decode
 decodeAttribute, mxObjectCodec
 decodeAttributes, mxObjectCodec
 decodeCell, mxCodec
 decodeChanges, mxSession
 decodeChild
 decodeChildren, mxObjectCodec
 decodeNode, mxObjectCodec
 decodeRoot, mxModelCodec
 decodeTemplates, mxEditorCodec
 DEFAULT_FONTFAMILY, mxConstants
 DEFAULT_FONTSIZE, mxConstants
 DEFAULT_HOTSPOT, mxConstants
 DEFAULT_IMAGESIZE, mxConstants
 DEFAULT_INVALID_COLOR, mxConstants
 DEFAULT_MARKERSIZE, mxConstants
 DEFAULT_STARTSIZE, mxConstants
 DEFAULT_VALID_COLOR, mxConstants
 defaultEdge, mxEditor
 defaultEdgeShape, mxCellRenderer
 defaultEdgeStyle, mxEditor
 defaultGroup, mxEditor
 defaultLanguage, mxClient
 defaultLoopStyle, mxGraph
 defaultOpacity, mxRubberband
 defaultOverlap
 defaultParent, mxGraph
 defaultShapes, mxCellRenderer
 defaultVertexShape, mxCellRenderer
 delay
 deltas, mxCellStatePreview
 desc, mxStencil
 destroy
 DESTROY, mxEvent
 destroyIcons, mxConnectionHandler
 destroyOnClose, mxWindow
 destroyShapes, mxGraphHandler
 deterministic
 dfs
 dfsCount, mxGraphHierarchyModel
 dialect
 DIALECT_MIXEDHTML, mxConstants
 DIALECT_PREFERHTML, mxConstants
 DIALECT_STRICTHTML, mxConstants
 DIALECT_SVG, mxConstants
 DIALECT_VML, mxConstants
 die, mxUndoableEdit
 DIRECTION_EAST, mxConstants
 DIRECTION_MASK_ALL, mxConstants
 DIRECTION_MASK_EAST, mxConstants
 DIRECTION_MASK_NONE, mxConstants
 DIRECTION_MASK_NORTH, mxConstants
 DIRECTION_MASK_SOUTH, mxConstants
 DIRECTION_MASK_WEST, mxConstants
 DIRECTION_NORTH, mxConstants
 DIRECTION_SOUTH, mxConstants
 DIRECTION_WEST, mxConstants
 disableContextMenu
 disableEdgeStyle
 disconnect, mxChildChange
 DISCONNECT
 disconnectGraph, mxGraph
 disconnectOnMove, mxGraph
 dispose, mxClient
 dispX, mxFastOrganicLayout
 dispY, mxFastOrganicLayout
 div, mxRubberband
 document, mxCodec
 DONE, mxEvent
 doneResource
 DOUBLE_CLICK
 doubleClickOrientationResource, mxElbowEdgeHandler
 doubleTapEnabled, mxGraph
 doubleTapTimeout, mxGraph
 doubleTapTolerance, mxGraph
 DOWN, mxEvent
 dragElement, mxDragSource
 dragEnter, mxDragSource
 dragExit, mxDragSource
 dragOffset, mxDragSource
 dragOver, mxDragSource
 drawGlass, mxImageExport
 drawHighlight, mxCellHighlight
 drawImage, mxImageExport
 drawLabel, mxImageExport
 drawLabelBackground, mxImageExport
 drawMarker, mxImageExport
 drawNode, mxStencil
 drawOverlays, mxImageExport
 drawPreview
 drawShape
 drawState, mxImageExport
 Drilldown, mxGraph
 drillHandler, mxConnectionHandler
 drop
 DROP_TARGET_COLOR, mxConstants
 dropEnabled, mxGraph
 dropHandler, mxDragSource
+ +
mxPanningManager.prototype.damper
Damper value for the panning.
mxGraph.prototype.dblClick = function(evt,
cell)
Processes a doubleclick on an optional cell and fires a dblclick event.
mxEditor.prototype.dblClickAction
Specifies the name of the action to be executed when a cell is double clicked.
debug: function()
Adds all arguments to the console if DEBUG is enabled.
mxSession.prototype.debug
Specifies if the session should run in debug mode.
Specifies if the output for debug should be visible in the console.
mxCodec.prototype.decode = function(node,
into)
Decodes the given XML node.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
codec.decode = function(dec,
node,
into)
Uses the given node as the config for mxDefaultPopupMenu.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
mxObjectCodec.prototype.decode = function(dec,
node,
into)
Parses the given node into the object or returns a new object representing the given node.
codec.decode = function(dec,
node,
into)
Reads a sequence of the following child nodes and attributes:
mxObjectCodec.prototype.decodeAttribute = function(dec,
attr,
obj)
Reads the given attribute into the specified object.
mxObjectCodec.prototype.decodeAttributes = function(dec,
node,
obj)
Decodes all attributes of the given node using decodeAttribute.
mxCodec.prototype.decodeCell = function(node,
restoreStructures)
Decodes cells that have been encoded using inversion, ie.
mxSession.prototype.decodeChanges = function(node)
Decodes and executes the changes represented by the children in the given node.
codec.decodeChild = function(dec,
child,
obj)
Overrides decode child to handle special child nodes.
codec.decodeChild = function(dec,
child,
obj)
Overrides decode child to handle special child nodes.
mxObjectCodec.prototype.decodeChild = function(dec,
child,
obj)
Reads the specified child into the given object.
mxObjectCodec.prototype.decodeChildren = function(dec,
node,
obj)
Decodec all children of the given node using decodeChild.
mxObjectCodec.prototype.decodeNode = function(dec,
node,
obj)
Calls decodeAttributes and decodeChildren for the given node.
codec.decodeRoot = function(dec,
root,
model)
Reads the cells into the graph model.
Decodes the cells from the given node as templates.
Defines the default family for all fonts in points.
Defines the default size for all fonts in points.
Defines the portion of the cell which is to be used as a connectable region.
Defines the default width and height for images used in the label shape.
Specifies the default invalid color.
Defines the default size for all markers.
Defines the default start size for swimlanes.
Specifies the default valid colorr.
mxEditor.prototype.defaultEdge
Prototype edge cell that is used for creating new edges.
mxCellRenderer.prototype.defaultEdgeShape
Defines the default shape for edges.
mxEditor.prototype.defaultEdgeStyle
Specifies the edge style to be returned in getEdgeStyle.
mxEditor.prototype.defaultGroup
Prototype group cell that is used for creating new groups.
Defines the default language which is used in the common resource files.
mxGraph.prototype.defaultLoopStyle
mxEdgeStyle to be used for loops.
mxRubberband.prototype.defaultOpacity
Specifies the default opacity to be used for the rubberband div.
mxCellOverlay.prototype.defaultOverlap
Defines the overlapping for the overlay, that is, the proportional distance from the origin to the point defined by the alignment.
mxGraph.prototype.defaultOverlap
Value returned by getOverlap if isAllowOverlapParent returns true for the given cell.
mxGraph.prototype.defaultParent
Specifies the default parent to be used to insert new cells.
mxCellRenderer.prototype.defaultShapes
Static array that contains the globally registered shapes which are known to all instances of this class.
mxCellRenderer.prototype.defaultVertexShape
Defines the default shape for vertices.
mxAnimation.prototype.delay
Specifies the delay between the animation steps.
mxPanningManager.prototype.delay
Delay in milliseconds for the panning.
mxTooltipHandler.prototype.delay
Delay to show the tooltip in milliseconds.
mxCellStatePreview.prototype.deltas
Reference to the enclosing mxGraph.
mxStencil.prototype.desc
Holds the XML node with the stencil description.
mxAutoSaveManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
mxCellEditor.prototype.destroy = function ()
Destroys the editor and removes all associated resources.
mxCellHighlight.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxCellMarker.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxCellRenderer.prototype.destroy = function(state)
Destroys the shapes associated with the given cell state.
mxCellState.prototype.destroy = function ()
Destroys the state and all associated resources.
mxCellTracker.prototype.destroy = function()
Destroys the object and all its resources and DOM nodes.
mxConnectionHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxConstraintHandler.prototype.destroy = function()
Destroy this handler.
mxDefaultKeyHandler.prototype.destroy = function ()
Destroys the handler associated with this object.
mxDefaultToolbar.prototype.destroy = function ()
Destroys the toolbar associated with this object and removes all installed listeners.
mxEdgeHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxEditor.prototype.destroy = function ()
Removes the editor and all its associated resources.
mxGraph.prototype.destroy = function()
Destroys the graph and all its resources.
mxGraphHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxGraphView.prototype.destroy = function()
Destroys the view and all its resources.
mxGuide.prototype.destroy = function()
Destroys all resources that this object uses.
mxKeyHandler.prototype.destroy = function()
Destroys the handler and all its references into the DOM.
mxLayoutManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
mxOutline.prototype.destroy = function()
Destroy this outline and removes all listeners from source.
mxPanningHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxPopupMenu.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxRubberband.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxSelectionCellsHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxShape.prototype.destroy = function()
Destroys the shape by removing it from the DOM and releasing the DOM node associated with the shape using mxEvent.release.
mxSpaceManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
mxSwimlaneManager.prototype.destroy = function()
Removes all handlers from the graph and deletes the reference to it.
mxTemporaryCellStates.prototype.destroy = function()
Returns the top, left corner as a new mxPoint.
mxText.prototype.destroy = function()
Extends destroy to remove any allocated SVG clips.
mxToolbar.prototype.destroy = function ()
Removes the toolbar and all its associated resources.
mxTooltipHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxVertexHandler.prototype.destroy = function()
Destroys the handler and all its resources and DOM nodes.
mxWindow.prototype.destroy = function()
Destroys the window and removes all associated resources.
Specifies the event name for destroy.
mxConnectionHandler.prototype.destroyIcons = function(icons)
Destroys the given array of mxImageShapes.
mxWindow.prototype.destroyOnClose
Specifies if the window should be destroyed when it is closed.
mxGraphHandler.prototype.destroyShapes = function()
Destroy the preview and highlight shapes.
mxGraphHierarchyModel.prototype.deterministic
Whether or not cells are ordered according to the order in the graph model.
mxHierarchicalLayout.prototype.deterministic
Whether or not cells are ordered according to the order in the graph model.
mxCompactTreeLayout.prototype.dfs = function(cell,
parent,
visited)
Does a depth first search starting at the specified cell.
mxGraphHierarchyModel.prototype.dfs = function(parent,
root,
connectingEdge,
visitor,
seen,
layer)
Performs a depth first search on the internal hierarchy model
mxGraphHierarchyModel.prototype.dfsCount
Count of the number of times the ancestor dfs has been used.
mxGraph.prototype.dialect
Dialect to be used for drawing the graph.
mxShape.prototype.dialect
Holds the dialect in which the shape is to be painted.
Defines the mixed HTML display dialect name.
Defines the preferred HTML display dialect name.
Defines the strict HTML display dialect.
Defines the SVG display dialect name.
Defines the VML display dialect name.
mxUndoableEdit.prototype.die = function()
Hook to free resources after the edit has been removed from the command history.
Constant for direction east.
Bitwise mask for all directions.
Bitwise mask for east direction.
Constant for no direction.
Bitwise mask for north direction.
Bitwise mask for south direction.
Bitwise mask for west direction.
Constant for direction north.
Constant for direction south.
Constant for direction west.
mxEditor.prototype.disableContextMenu
Specifies if the context menu should be disabled in the graph container.
disableContextMenu: function()
Disables the context menu for the given element.
mxCircleLayout.prototype.disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
mxFastOrganicLayout.prototype.disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
mxHierarchicalLayout.prototype.disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
Disconnects the given cell recursively from its terminals and stores the previous terminal in the cell’s terminals.
Specifies the event name for disconnect.
Fires after the session was stopped in stop.
mxGraph.prototype.disconnectGraph = function(cells)
Disconnects the given edges from the terminals which are not in the given array.
mxGraph.prototype.disconnectOnMove
Specifies if edges should be disconnected from their terminals when they are moved.
dispose: function()
Frees up memory in IE by resolving cyclic dependencies between the DOM and the JavaScript objects.
mxFastOrganicLayout.prototype.dispX
An array of locally stored X co-ordinate displacements for the vertices.
mxFastOrganicLayout.prototype.dispY
An array of locally stored Y co-ordinate displacements for the vertices.
mxRubberband.prototype.div
Holds the DIV element which is currently visible.
mxCodec.prototype.document
The owner document of the codec.
Specifies the event name for done.
mxGraphSelectionModel.prototype.doneResource
Specifies the resource key for the status message after a long operation.
mxGraphView.prototype.doneResource
Specifies the resource key for the status message after a long operation.
DOUBLE_CLICK: 'doubleClick' }
Specifies the event name for doubleClick.
Fires in dblClick after a double click.
mxElbowEdgeHandler.prototype.doubleClickOrientationResource
Specifies the resource key for the tooltip to be displayed on the single control point for routed edges.
mxGraph.prototype.doubleTapEnabled
Specifies if double taps on touch-based devices should be handled.
mxGraph.prototype.doubleTapTimeout
Specifies the timeout for double taps.
mxGraph.prototype.doubleTapTolerance
Specifies the tolerance for double taps.
Specifies the event name for down.
mxDragSource.prototype.dragElement
Holds the DOM node that is used to represent the drag preview.
mxDragSource.prototype.dragEnter = function(graph)
Actives the given graph as a drop target.
mxDragSource.prototype.dragExit = function(graph)
Deactivates the given graph as a drop target.
mxDragSource.prototype.dragOffset
mxPoint that specifies the offset of the dragElement.
mxDragSource.prototype.dragOver = function(graph,
evt)
Implements autoscroll, updates the currentPoint, highlights any drop targets and updates the preview.
Draws the given state to the given canvas.
mxCellHighlight.prototype.drawHighlight = function(state)
Creates and returns the highlight shape for the given state.
mxImageExport.prototype.drawImage = function(state,
canvas,
bounds,
image)
Draws the given state to the given canvas.
mxImageExport.prototype.drawLabel = function(state,
canvas,
bounds,
vert,
str)
Draws the given state to the given canvas.
mxImageExport.prototype.drawLabelBackground = function(state,
canvas,
bounds,
vert)
Draws background for the label of the given state to the given canvas.
mxImageExport.prototype.drawMarker = function(canvas,
state,
source)
Initializes the built-in shapes.
mxStencil.prototype.drawNode = function(canvas,
state,
node,
aspect)
Draws this stencil inside the given bounds.
mxImageExport.prototype.drawOverlays = function(state,
canvas)
Draws the overlays for the given state.
mxConnectionHandler.prototype.drawPreview = function()
Redraws the preview edge using the color and width returned by getEdgeColor and getEdgeWidth.
mxEdgeHandler.prototype.drawPreview = function()
Redraws the preview.
mxVertexHandler.prototype.drawPreview = function()
Redraws the preview.
mxImageExport.prototype.drawShape = function(state,
canvas,
shape)
Draws the given state to the given canvas.
mxStencil.prototype.drawShape = function(canvas,
state,
bounds,
background)
Draws this stencil inside the given bounds.
mxImageExport.prototype.drawState = function(state,
canvas)
Draws the given state and all its descendants to the given canvas.
mxConnectionHandler.prototype.drillHandler
Holds the drill event listener for later removal.
mxDefaultToolbar.prototype.drop = function(vertex,
evt,
target)
Handles a drop from a toolbar item to the graph.
mxDragSource.prototype.drop = function(graph,
evt,
dropTarget,
x,
y)
Returns the drop target for the given graph and coordinates.
Defines the color to be used for the highlighting target parent cells (for drag and drop).
mxGraph.prototype.dropEnabled
Specifies the return value for isDropEnabled.
mxDragSource.prototype.dropHandler
Holds the DOM node that is used to represent the drag preview.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General5.html b/docs/js-api/index/General5.html new file mode 100644 index 000000000..3739c1b83 --- /dev/null +++ b/docs/js-api/index/General5.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
E
 ease, mxMorphing
 edge, mxCell
 EDGE_SELECTION_COLOR, mxConstants
 EDGE_SELECTION_STROKEWIDTH, mxConstants
 edgeLabelsMovable, mxGraph
 edgeMapper, mxGraphHierarchyModel
 edgeRouting, mxCompactTreeLayout
 edges
 edgeState, mxConnectionHandler
 edgeStyle, mxCoordinateAssignment
 EDGESTYLE_ELBOW, mxConstants
 EDGESTYLE_ENTITY_RELATION, mxConstants
 EDGESTYLE_LOOP, mxConstants
 EDGESTYLE_ORTHOGONAL, mxConstants
 EDGESTYLE_SEGMENT, mxConstants
 EDGESTYLE_SIDETOSIDE, mxConstants
 EDGESTYLE_TOPTOBOTTOM, mxConstants
 editingCell, mxCellEditor
 editor
 ELBOW_HORIZONTAL, mxConstants
 ELBOW_VERTICAL, mxConstants
 ElbowConnector, mxEdgeStyle
 element, mxDragSource
 ellipse
 EllipsePerimeter, mxPerimeter
 EMPTY_ARRAY, mxGraph
 emptyLabelText, mxCellEditor
 enabled
 enableFill, mxArrow
 encode
 encodeCell
 encodeChanges, mxSession
 encodeDefaults, mxCodec
 encodeObject
 encodeValue, mxObjectCodec
 end, mxPath
 END_UPDATE
 endingUpdate, mxGraphModel
 endOffset, mxShape
 endUpdate, mxGraphModel
 enter, mxLog
 enterGroup, mxGraph
 enterStopsCellEditing, mxGraph
 ENTITY_SEGMENT, mxConstants
 EntityRelation, mxEdgeStyle
 equalEntries, mxUtils
 equalPoints, mxUtils
 equals
 error
 errorImage, mxUtils
 errorResource, mxUtils
 escape
 ESCAPE
 escapeEnabled, mxGraph
 escapePostData
 eval, mxUtils
 evaluateAttribute, mxStencil
 Event processing, mxGraph
 eventListeners, mxEventSource
 Events
 eventsEnabled, mxEventSource
 eventSource, mxEventSource
 evt, mxMouseEvent
 exclude, mxObjectCodec
 execute
 EXECUTE
 executeLayout, mxLayoutManager
 exitGroup, mxGraph
 expandedImage, mxGraph
 exportEnabled, mxGraph
 extend, mxUtils
 extendedDfs, mxGraphHierarchyModel
 extendParent, mxGraph
 extendParents
 extendParentsOnAdd, mxGraph
+ +
mxMorphing.prototype.ease
Ease-off for movement towards the given vector.
mxCell.prototype.edge
Specifies whether the cell is an edge.
Defines the color to be used for the selection border of edges.
Defines the strokewidth to be used for edge selections.
mxGraph.prototype.edgeLabelsMovable
Specifies the return value for edges in isLabelMovable.
mxGraphHierarchyModel.prototype.edgeMapper
Map from graph edges to internal model edges
mxCompactTreeLayout.prototype.edgeRouting
Whether or not to apply the internal tree edge routing
mxCell.prototype.edges
Holds the edges.
mxGraphHierarchyEdge.prototype.edges
The graph edge(s) this object represents.
mxConnectionHandler.prototype.edgeState
Optional mxCellState that represents the preview edge while the handler is active.
mxCoordinateAssignment.prototype.edgeStyle
The style to apply between cell layers to edge segments
Name of the elbow edge style.
Name of the entity relation edge style.
Name of the loop edge style.
Name of the generic orthogonal edge style.
Name of the generic segment edge style.
Name of the side to side edge style.
Name of the top to bottom edge style.
mxCellEditor.prototype.editingCell
Reference to the mxCell that is currently being edited.
mxDefaultKeyHandler.prototype.editor
Reference to the enclosing mxEditor.
mxDefaultToolbar.prototype.editor
Reference to the enclosing mxEditor.
Constant for elbow horizontal.
Constant for elbow vertical.
ElbowConnector: function (state,
source,
target,
points,
result)
Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell style.
mxDragSource.prototype.element
Reference to the DOM node which was made draggable.
ellipse: function(x,
y,
w,
h)
Sets the current path to an ellipse.
ellipse: function(x,
y,
w,
h)
Sets the current path to an ellipse.
EllipsePerimeter: function (bounds,
vertex,
next,
orthogonal)
Describes an elliptic perimeter.
mxGraph.prototype.EMPTY_ARRAY
Immutable empty array instance.
mxCellEditor.prototype.emptyLabelText
Text to be displayed for empty labels.
mxAutoSaveManager.prototype.enabled
Specifies if event handling is enabled.
mxCellMarker.prototype.enabled
Specifies if the marker is enabled.
mxConnectionHandler.prototype.enabled
Specifies if events are handled.
mxConstraintHandler.prototype.enabled
Specifies if events are handled.
mxDragSource.prototype.enabled
Specifies if this drag source is enabled.
mxGraph.prototype.enabled
Specifies the return value for isEnabled.
mxGraphHandler.prototype.enabled
Specifies if events are handled.
mxKeyHandler.prototype.enabled
Specifies if events are handled.
mxLayoutManager.prototype.enabled
Specifies if event handling is enabled.
mxOutline.prototype.enabled
Specifies if events are handled.
mxPopupMenu.prototype.enabled
Specifies if events are handled.
mxRubberband.prototype.enabled
Specifies if events are handled.
mxSelectionCellsHandler.prototype.enabled
Specifies if events are handled.
mxSpaceManager.prototype.enabled
Specifies if event handling is enabled.
mxSwimlaneManager.prototype.enabled
Specifies if event handling is enabled.
mxToolbar.prototype.enabled
Specifies if events are handled.
mxTooltipHandler.prototype.enabled
Specifies if events are handled.
var enabled
Specifies if the converter is enabled.
mxArrow.prototype.enableFill
Specifies if fill colors should be ignored.
mxCodec.prototype.encode = function(obj)
Encodes the specified object and returns the resulting XML node.
codec.encode = function(enc,
obj)
Returns null.
codec.encode = function(enc,
obj)
Returns null.
codec.encode = function(enc,
obj)
Returns null.
codec.encode = function(enc,
view)
Encodes the given mxGraphView using encodeCell starting at the model’s root.
mxObjectCodec.prototype.encode = function(enc,
obj)
Encodes the specified object and returns a node representing then given object.
codec.encode = function(enc,
obj)
Encodes a stylesheet.
mxCodec.prototype.encodeCell = function(cell,
node,
includeChildren)
Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg.
codec.encodeCell = function(enc,
view,
cell)
Recursively encodes the specifed cell.
mxSession.prototype.encodeChanges = function(changes,
invert)
Returns the XML representation for the given array of changes.
mxCodec.prototype.encodeDefaults
Specifies if default values should be encoded.
codec.encodeObject = function(enc,
obj,
node)
Encodes the given mxGraphModel by writing a (flat) XML sequence of cell nodes as produced by the mxCellCodec.
mxObjectCodec.prototype.encodeObject = function(enc,
obj,
node)
Encodes the value of each member in then given obj into the given node using encodeValue.
mxObjectCodec.prototype.encodeValue = function(enc,
obj,
name,
value,
node)
Converts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node.
mxPath.prototype.end = function()
Ends the path.
Specifies the event name for endUpdate.
Fires after the updateLevel was decreased in endUpdate but before any notification or change dispatching.
mxGraphModel.prototype.endingUpdate
True if the program flow is currently inside endUpdate.
mxShape.prototype.endOffset
Specifies the offset in pixels from the last point in points and the actual start of the shape.
mxGraphModel.prototype.endUpdate = function()
Decrements the updateLevel by one and fires an undo event if the updateLevel reaches 0.
enter: function(string)
Writes the specified string to the console if TRACE is true and returns the current time in milliseconds.
mxGraph.prototype.enterGroup = function(cell)
Uses the given cell as the root of the displayed cell hierarchy.
mxGraph.prototype.enterStopsCellEditing
If true, pressing the enter key without pressing control or shift will stop editing and accept the new value.
Defines the length of the horizontal segment of an Entity Relation.
EntityRelation: function (state,
source,
target,
points,
result)
Implements an entity relation style for edges (as used in database schema diagrams).
equalEntries: function(a,
b)
Compares all entries in the given dictionaries.
equalPoints: function(a,
b)
Compares all mxPoints in the given lists.
mxPoint.prototype.equals = function(obj)
Returns true if the given object equals this rectangle.
mxRectangle.prototype.equals = function(obj)
Returns true if the given object equals this rectangle.
mxConnectionHandler.prototype.error
Holds the current validation error while connections are being created.
mxEdgeHandler.prototype.error
Holds the current validation error while a connection is being changed.
error: function(message,
width,
close,
icon)
Displays the given error message in a new mxWindow of the given width.
Defines the image used for error dialogs.
Specifies the resource key for the title of the error window.
mxGraph.prototype.escape = function(evt)
Processes an escape keystroke.
mxKeyHandler.prototype.escape = function(evt)
Hook to process ESCAPE keystrokes.
Fires when the escape key is pressed.
Specifies the event name for escape.
mxGraph.prototype.escapeEnabled
Specifies if mxKeyHandler should invoke escape when the escape key is pressed.
mxEditor.prototype.escapePostData
Specifies if the data in the post request for saving a diagram should be converted using encodeURIComponent.
mxSession.prototype.escapePostData
Specifies if the data in the post request sent in notify should be converted using encodeURIComponent.
eval: function(expr)
Evaluates the given expression using eval and returns the JavaScript object that represents the expression result.
mxStencil.prototype.evaluateAttribute = function(node,
attribute,
state)
Gets the attribute for the given name from the given node.
mxEventSource.prototype.eventListeners
Holds the event names and associated listeners in an array.
mxEventSource.prototype.eventsEnabled
Specifies if events can be fired.
mxEventSource.prototype.eventSource
Optional source for events.
mxMouseEvent.prototype.evt
Holds the inner event object.
mxObjectCodec.prototype.exclude
Array containing the variable names that should be ignored by the codec.
mxCellAttributeChange.prototype.execute = function()
Changes the attribute of the cell’s user object by using mxCell.setAttribute.
mxChildChange.prototype.execute = function()
Changes the parent of child using mxGraphModel.parentForCellChanged and removes or restores the cell’s connections.
mxCircleLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxCollapseChange.prototype.execute = function()
Changes the collapsed state of cell to previous using mxGraphModel.collapsedStateForCellChanged.
mxCompactTreeLayout.prototype.execute = function(parent,
root)
Implements mxGraphLayout.execute.
mxCompositeLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute by executing all layouts in a single transaction.
mxCoordinateAssignment.prototype.execute = function(parent)
A basic horizontal coordinate assignment algorithm
mxCurrentRootChange.prototype.execute = function()
Changes the current root of the view.
mxEdgeLabelLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxEditor.prototype.execute = function (actionname,
cell,
evt)
Executes the function with the given name in actions passing the editor instance and given cell as the first and second argument.
mxFastOrganicLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxGeometryChange.prototype.execute = function()
Changes the geometry of cell ro previous using mxGraphModel.geometryForCellChanged.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxGraphModel.prototype.execute = function(change)
Executes the given edit and fires events if required.
mxHierarchicalLayout.prototype.execute = function(parent,
roots)
Executes the layout for the children of the specified parent.
mxHierarchicalLayoutStage.prototype.execute = function(parent)
Takes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.
mxMedianHybridCrossingReduction.prototype.execute = function(parent)
Performs a vertex ordering within ranks as described by Gansner et al 1993
mxMinimumCycleRemover.prototype.execute = function(parent)
Takes the graph detail and configuration information within the facade and creates the resulting laid out graph within that facade for further use.
mxParallelEdgeLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxPartitionLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxRootChange.prototype.execute = function()
Carries out a change of the root using mxGraphModel.rootChanged.
mxSelectionChange.prototype.execute = function()
Changes the current root of the view.
mxStackLayout.prototype.execute = function(parent)
Implements mxGraphLayout.execute.
mxStyleChange.prototype.execute = function()
Changes the style of cell to previous using mxGraphModel.styleForCellChanged.
mxTerminalChange.prototype.execute = function()
Changes the terminal of cell to previous using mxGraphModel.terminalForCellChanged.
mxValueChange.prototype.execute = function()
Changes the value of cell to previous using mxGraphModel.valueForCellChanged.
mxVisibleChange.prototype.execute = function()
Changes the visible state of cell to previous using mxGraphModel.visibleStateForCellChanged.
Specifies the event name for execute.
Fires between begin- and endUpdate and after an atomic change was executed in the model.
mxLayoutManager.prototype.executeLayout = function(layout,
parent)
Executes the given layout on the given parent.
mxGraph.prototype.exitGroup = function()
Changes the current root to the next valid root in the displayed cell hierarchy.
mxGraph.prototype.expandedImage
Specifies the mxImage to indicate a expanded state.
mxGraph.prototype.exportEnabled
Specifies the return value for canExportCell.
extend: function(ctor,
superCtor)
Assigns a copy of the superclass prototype to the subclass prototype.
mxGraphHierarchyModel.prototype.extendedDfs = function(parent,
root,
connectingEdge,
visitor,
seen,
ancestors,
childHash,
layer)
Performs a depth first search on the internal hierarchy model.
mxGraph.prototype.extendParent = function(cell)
Resizes the parents recursively so that they contain the complete area of the resized child cell.
mxGraph.prototype.extendParents
Specifies if a parent should contain the child bounds after a resize of the child.
mxSpaceManager.prototype.extendParents
Specifies if event handling is enabled.
mxGraph.prototype.extendParentsOnAdd
Specifies if parents should be extended according to the extendParents switch if cells are added.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General6.html b/docs/js-api/index/General6.html new file mode 100644 index 000000000..baaa0ae6f --- /dev/null +++ b/docs/js-api/index/General6.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
F
 factoryMethod
 fadeOut
 fgNodes, mxStencil
 FIELD_NAME, mxObjectIdentity
 filename, mxEditor
 fill
 fillstroke
 filterCells, mxGraphModel
 filterDescendants, mxGraphModel
 findNearestSegment, mxUtils
 findNode, mxUtils
 findNodeByAttribute, mxUtils
 findParallels, mxParallelEdgeLayout
 findTreeRoots, mxGraph
 fineTuning
 FIRED
 fireEvent, mxEventSource
 fireMouseEvent, mxGraph
 first, mxConnectionHandler
 fit
 fixRanks, mxGraphHierarchyModel
 fixRoots, mxHierarchicalLayout
 FLIP_EDGE
 flipEdge, mxGraph
 focusLost, mxCellEditor
 foEnabled, mxSvgCanvas2D
 FOLD_CELLS
 foldCells, mxGraph
 foldHandler, mxSpaceManager
 Folding, mxGraph
 foldingEnabled, mxGraph
 FONT_BOLD, mxConstants
 FONT_ITALIC, mxConstants
 FONT_SHADOW, mxConstants
 FONT_UNDERLINE, mxConstants
 forceConstant, mxFastOrganicLayout
 forceConstantSquared, mxFastOrganicLayout
 forcedInserting, mxEditor
 forceIgnoreStringSize, mxText
 format, mxPath
 formOrderedHierarchy, mxGraphHierarchyModel
 Functions
GlobalMedianCellSortermxActormxAnimationmxArrowmxAutoSaveManagermxCellmxCellAttributeChangemxCellCodecmxCellEditormxCellHighlightmxCellMarkermxCellOverlaymxCellPathmxCellRenderermxCellStatemxCellStatePreviewmxCellTrackermxChildChangemxChildChangeCodecmxCircleLayoutmxClientmxClipboardmxCloudmxCodecmxCodecRegistrymxCollapseChangemxCompactTreeLayoutmxCompositeLayoutmxConnectionConstraintmxConnectormxConstraintHandlermxCoordinateAssignmentmxCurrentRootChangemxCylindermxDefaultKeyHandlermxDefaultKeyHandlerCodecmxDefaultPopupMenumxDefaultPopupMenuCodecmxDefaultToolbarmxDefaultToolbarCodecmxDictionarymxDivResizermxDoubleEllipsemxDragSourcemxEdgeHandlermxEdgeLabelLayoutmxEdgeStylemxEditorCodecmxEffectsmxElbowEdgeHandlermxEllipsemxEventmxEventObjectmxEventSourcemxFastOrganicLayoutmxFormmxGenericChangeCodecmxGeometrymxGeometryChangemxGraphAbstractHierarchyCellmxGraphHandlermxGraphHierarchyEdgemxGraphHierarchyModelmxGraphHierarchyNodemxGraphLayoutmxGraphModelmxGraphSelectionModelmxGraphViewmxGraphViewCodecmxGuidemxHexagonmxHierarchicalLayoutmxHierarchicalLayoutStagemxImagemxImageBundlemxImageExportmxImageShapemxKeyHandlermxLabelmxLayoutManagermxLinemxLogmxMarkermxMedianHybridCrossingReductionmxMinimumCycleRemovermxModelCodecmxMorphingmxMouseEventmxMultiplicitymxObjectCodecmxObjectIdentitymxOutlinemxPanningHandlermxParallelEdgeLayoutmxPartitionLayoutmxPathmxPerimetermxPointmxPolylinemxPopupMenumxPrintPreviewmxRectanglemxRectangleShapemxResourcesmxRhombusmxRootChangemxRootChangeCodecmxRubberbandmxSelectionCellsHandlermxSelectionChangemxSessionmxShapemxSpaceManagermxStackLayoutmxStencilmxStencilRegistrymxStencilShapemxStyleChangemxStyleRegistrymxStylesheetmxStylesheetCodecmxSvgCanvas2DmxSwimlanemxSwimlaneManagermxTemporaryCellStatesmxTerminalChangemxTerminalChangeCodecmxTextmxToolbarmxTooltipHandlermxTrianglemxUndoableEditmxUndoManagermxUrlConvertermxUtilsmxValueChangemxVertexHandlermxVisibleChangemxWindowmxXmlCanvas2DmxXmlRequestWeightedCellSorter
+ +
mxConnectionHandler.prototype.factoryMethod
Function that is used for creating new edges.
mxPopupMenu.prototype.factoryMethod
Function that is used to create the popup menu.
fadeOut: function(node,
from,
remove,
step,
delay,
isEnabled)
Asynchronous fade-out operation.
fadeOut: function(node,
from,
remove,
step,
delay,
isEnabled)
See mxEffects.fadeOut.
Holds the XML node with the stencil description.
Name of the field to be used to store the object ID.
mxEditor.prototype.filename
Contains the URL of the last opened file as a string.
mxStackLayout.prototype.fill
Boolean indicating if dimension should be changed to fill out the parent cell.
fill: function()
Fills the current path.
fill: function()
Fills the current path.
Fills and paints the outline of the current path.
Fills and paints the outline of the current path.
mxGraphModel.prototype.filterCells = function(cells,
filter)
Returns the cells from the given array where the fiven filter function returns true.
mxGraphModel.prototype.filterDescendants = function(filter,
parent)
Visits all cells recursively and applies the specified filter function to each cell.
findNearestSegment: function(state,
x,
y)
Finds the index of the nearest segment on the given cell state for the specified coordinate pair.
findNode: function(node,
attr,
value)
Returns the first node where attr equals value.
findNodeByAttribute: function()
Returns the first node where the given attribute matches the given value.
mxParallelEdgeLayout.prototype.findParallels = function(parent)
Finds the parallel edges in the given parent.
mxGraph.prototype.findTreeRoots = function(parent,
isolate,
invert)
Returns all children in the given parent which do not have incoming edges.
mxCoordinateAssignment.prototype.fineTuning
Whether or not to perform local optimisations and iterate multiple times through the algorithm.
mxHierarchicalLayout.prototype.fineTuning
Whether or not to perform local optimisations and iterate multiple times through the algorithm.
Specifies the event name for fired.
Fires after an array of edits has been executed on the model.
mxEventSource.prototype.fireEvent = function(evt,
sender)
Dispatches the given event to the listeners which are registered for the event.
mxGraph.prototype.fireMouseEvent = function(evtName,
me,
sender)
Dispatches the given event in the graph event dispatch loop.
mxConnectionHandler.prototype.first
Holds the mxPoint where the mouseDown took place while the handler is active.
mxGraph.prototype.fit = function(border,
keepOrigin)
Scales the graph such that the complete diagram fits into container and returns the current scale in the view.
fit: function(node)
Makes sure the given node is inside the visible area of the window.
mxWindow.prototype.fit = function()
Makes sure the window is inside the client area of the window.
mxGraphHierarchyModel.prototype.fixRanks = function()
Fixes the layer assignments to the values stored in the nodes.
mxHierarchicalLayout.prototype.fixRoots
Whether or not to fix the position of the root cells.
Specifies the event name for flipEdge.
Fires between begin- and endUpdate in flipEdge.
mxGraph.prototype.flipEdge = function(edge)
Toggles the style of the given edge between null (or empty) and alternateEdgeStyle.
mxCellEditor.prototype.focusLost = function()
Called if the textarea has lost focus.
var foEnabled
Specifies if use of foreignObject for HTML markup is allowed.
Specifies the event name for foldCells.
Fires between begin- and endUpdate in foldCells.
mxGraph.prototype.foldCells = function(collapse,
recurse,
cells,
checkFoldable)
Sets the collapsed state of the specified cells and all descendants if recurse is true.
mxSpaceManager.prototype.foldHandler
Holds the function that handles the fold event.
mxGraph.prototype.foldingEnabled
Specifies if folding (collapse and expand via an image icon in the graph should be enabled).
Constant for bold fonts.
Constant for italic fonts.
Constant for fonts with a shadow.
Constant for underlined fonts.
mxFastOrganicLayout.prototype.forceConstant
The force constant by which the attractive forces are divided and the replusive forces are multiple by the square of.
mxFastOrganicLayout.prototype.forceConstantSquared
Cache of <forceConstant>^2 for performance.
mxEditor.prototype.forcedInserting
Specifies if a new cell should be inserted on a single click even using insertFunction if there is a cell under the mousepointer, otherwise the cell under the mousepointer is selected.
mxText.prototype.forceIgnoreStringSize
Specifies if the string size should always be ignored.
mxPath.prototype.format
Defines the format for the output of this path.
mxGraphHierarchyModel.prototype.formOrderedHierarchy = function(layout,
vertices,
parent)
Creates an internal ordered graph model using the vertices passed in.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General7.html b/docs/js-api/index/General7.html new file mode 100644 index 000000000..b20eb7924 --- /dev/null +++ b/docs/js-api/index/General7.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
G
 geometry, mxCell
 geometryForCellChanged, mxGraphModel
 gestureEnabled, mxGraph
 get
 GET
 getAlignmentTolerance, mxConnectionHandler
 getAllConnectionConstraints, mxGraph
 getAllEdges, mxGraph
 getAttribute, mxCell
 getAttributeName, mxObjectCodec
 getBackgroundBounds, mxImageExport
 getBackgroundImage, mxGraph
 getBackgroundPageBounds, mxGraphView
 getBackgroundPane, mxGraphView
 getBaseUrl, mxUrlConverter
 getBorder, mxGraph
 getBoundingBox, mxUtils
 getBoundingBoxFromGeometry, mxGraph
 getBounds
 getBoundsForGroup, mxGraph
 getCanvas, mxGraphView
 getCell
 getCellAt, mxGraph
 getCellBounds
 getCellContainmentArea, mxGraph
 getCellForPopupEvent, mxPanningHandler
 getCellGeometry, mxGraph
 getCellOverlays, mxGraph
 getCells
 getCellsBeyond, mxGraph
 getCellsForChange, mxLayoutManager
 getCellsForEdit, mxLayoutManager
 getCellsForGroup, mxGraph
 getCellStates, mxGraphView
 getCellsToShift, mxSpaceManager
 getCellStyle
 getCellValidationError, mxGraph
 getCenterX, mxRectangle
 getCenterY, mxRectangle
 getChildAt
 getChildCells
 getChildCount
 getChildEdges
 getChildNodes, mxUtils
 getChildOffsetForCell, mxGraph
 getChildren, mxGraphModel
 getChildVertices
 getClientX, mxEvent
 getClientY, mxEvent
 getCloneableCells, mxGraph
 getCodec, mxCodecRegistry
 getColor, mxUtils
 getConnectImage, mxConnectionHandler
 getConnectionConstraint, mxGraph
 getConnectionPoint, mxGraph
 getConnections
 getConstraint, mxGraphLayout
 getControlBounds, mxCellRenderer
 getConverter
 getCurrentRoot, mxGraph
 getCurrentStyle, mxUtils
 getCurrentValue, mxCellEditor
 getCursor, mxShape
 getCursorForBend, mxElbowEdgeHandler
 getCursorForCell, mxGraph
 getDefaultBundle, mxResources
 getDefaultEdgeStyle, mxStylesheet
 getDefaultParent, mxGraph
 getDefaultVertexStyle, mxStylesheet
 getDeletableCells, mxGraph
 getDelta, mxMorphing
 getDescendants, mxGraphModel
 getDirectedEdgeCount, mxGraphModel
 getDocType, mxPrintPreview
 getDocument, mxXmlCanvas2D
 getDocumentElement, mxXmlRequest
 getDocumentHeight, mxDivResizer
 getDocumentWidth, mxDivResizer
 getDrawPane, mxGraphView
 getDropTarget
 getEdgeAt
 getEdgeColor, mxConnectionHandler
 getEdgeCount
 getEdgeId, mxParallelEdgeLayout
 getEdgeIndex, mxCell
 getEdges
 getEdgesBetween
 getEdgeStyle
 getEdgeValidationError, mxGraph
 getEdgeWidth, mxConnectionHandler
 getEditingCell, mxCellEditor
 getEditingValue, mxGraph
 getEditorBounds, mxCellEditor
 getElement, mxWindow
 getElementById, mxCodec
 getEmptyLabelText, mxCellEditor
 getEvent, mxMouseEvent
 getEventSource, mxEventSource
 getExportableCells, mxGraph
 getFieldName, mxObjectCodec
 getFieldTemplate, mxObjectCodec
 getFirstSelectableCell, mxGraphSelectionModel
 getFoldableCells, mxGraph
 getFoldingImage, mxGraph
 getFunction, mxKeyHandler
 getFunctionName, mxUtils
 getGeneralPurposeVariable
 getGeometry
 getGradientId, mxShape
 getGraph
 getGraphBounds
 getGraphForEvent, mxDragSource
 getGraphX, mxMouseEvent
 getGraphY, mxMouseEvent
 getGridSize, mxGraph
 getGuideStates, mxGraphHandler
 getGuideTolerance, mxGuide
 getHandleFillColor, mxEdgeHandler
 getHandleForEvent
 getHandler, mxSelectionCellsHandler
 getHotspot, mxCellMarker
 getId
 getImage
 getImageBounds, mxImageExport
 getImageForConstraint, mxConstraintHandler
 getImageFromBundles, mxGraph
 getImportableCells, mxGraph
 getIncomingEdges
 getIndex, mxCell
 getIndicatorColor, mxGraph
 getIndicatorGradientColor, mxGraph
 getIndicatorImage, mxGraph
 getIndicatorShape, mxGraph
 getInitialCellForEvent, mxGraphHandler
 getInitialValue, mxCellEditor
 getInnerHtml, mxUtils
 getKeys, mxDictionary
 getLabel, mxGraph
 getLabelBounds, mxCellRenderer
 getLabelValue, mxCellRenderer
 getLayout, mxLayoutManager
 getMainEvent, mxEvent
 getMarkedState, mxCellMarker
 getMarkerColor, mxCellMarker
 getMaximumGraphBounds, mxGraph
 getMinimumSize
 getModel
 getMovableCells, mxGraph
 getName
 getNearestCommonAncestor, mxGraphModel
 getNextLayerConnectedCells
 getNextPoint, mxGraphView
 getNumber, mxUtils
 getObject, mxCodec
 getOffset
 getOffsetSize, mxGraph
 getOpposites
 getOrigin, mxGraphModel
 getOriginForCell, mxMorphing
 getOuterHtml, mxUtils
 getOutgoingEdges
 getOverlap, mxGraph
 getOverlayPane, mxGraphView
 getParent
 getParentOffset, mxGraphLayout
 getParentPath, mxCellPath
 getParents, mxGraphModel
 getParentSize, mxStackLayout
 getPath, mxPath
 getPerimeterBounds
 getPerimeterFunction, mxGraphView
 getPerimeterPoint, mxGraphView
 getPoint
 getPointForEvent
 getPreferredSizeForCell, mxGraph
 getPrettyXML, mxUtils
 getPreviewBounds, mxGraphHandler
 getPreviewPoints
 getPreviewTerminalState, mxEdgeHandler
 getPreviousLayerConnectedCells
 getProperties, mxEventObject
 getProperty, mxEventObject
 getRankValue, mxGraphHierarchyNode
 getRelativePoint, mxGraphView
 getRemovedCellsForChanges, mxGraph
 getRoot, mxGraphModel
 getRootTitle, mxEditor
 getRotatedPoint, mxUtils
 getRotation, mxShape
 getRoutingCenterX, mxGraphView
 getRoutingCenterY, mxGraphView
 getScale, mxGraphView
 getScaleForPageCount, mxUtils
 getScrollOrigin, mxUtils
 getSelectionBounds, mxVertexHandler
 getSelectionCell, mxGraph
 getSelectionCells, mxGraph
 getSelectionCellsForChanges, mxGraph
 getSelectionColor
 getSelectionCount, mxGraph
 getSelectionModel, mxGraph
 getSelectionPoints, mxEdgeHandler
 getSelectionStrokeWidth
 getShapeConstructor, mxCellRenderer
 getSizeForString, mxUtils
 getSnapToTerminalTolerance, mxEdgeHandler
 getSource
 getSourcePerimeterPoint, mxConnectionHandler
 getSpacing, mxText
 getSpecialBundle, mxResources
 getStartSize, mxGraph
 getState
 getStates, mxGraphView
 getStateToMark, mxCellMarker
 getStatus, mxXmlRequest
 getStencil, mxStencilRegistry
 getStringValue, mxStylesheetCodec
 getStyle
 getStylename, mxUtils
 getStylenames, mxUtils
 getStylesheet, mxGraph
 getSvgClip, mxText
 getSvgShadowTransform, mxShape
 getSwimlane, mxGraph
 getSwimlaneAt, mxGraph
 getTable, mxForm
 getTableSize, mxText
 getTargetPerimeterPoint, mxConnectionHandler
 getTemplate, mxEditor
 getTerminal
 getTerminalForPort, mxGraph
 getTerminalPoint, mxGeometry
 getTerminalPort, mxGraphView
 getText, mxXmlRequest
 getTextContent, mxUtils
 getTextScale, mxCellRenderer
 getTitle, mxEditor
 getTolerance
 getTooltip, mxGraph
 getTooltipForCell, mxGraph
 getTooltipForNode, mxElbowEdgeHandler
 getTopmostCells, mxGraphModel
 getTranslate, mxGraphView
 getTranslateForRoot, mxGraph
 getUrlImage, mxEditor
 getUrlPost, mxEditor
 getValidState, mxCellMarker
 getValue
 getValues, mxDictionary
 getVerticalAlign, mxGraph
 getVerticalOffset, mxText
 getView, mxGraph
 getViewXml, mxUtils
 getVisibleTerminal
 getVisibleTerminalState, mxCellState
 getWindow, mxPrintPreview
 getX
 getXml
 getY
 glassSize, mxImageExport
 graph
 Graph appearance, mxGraph
 Graph behaviour, mxGraph
 Graph display, mxGraph
 Graph events, mxGraph
 graphBounds, mxGraphView
 graphContainsEvent, mxDragSource
 graphModelChanged
 graphRenderHint
 graphX, mxMouseEvent
 graphY, mxMouseEvent
 gridEnabled
 gridSize, mxGraph
 GROUP_CELLS
 groupCells
 Grouping, mxGraph
 groupPadding, mxCompactTreeLayout
 grow, mxRectangle
 guide, mxGraphHandler
 GUIDE_COLOR, mxConstants
 GUIDE_STROKEWIDTH, mxConstants
 guidesEnabled
+ +
mxCell.prototype.geometry
Holds the mxGeometry.
mxGraphModel.prototype.geometryForCellChanged = function(cell,
geometry)
Inner callback to update the mxGeometry of the given mxCell using mxCell.setGeometry and return the previous mxGeometry.
mxGraph.prototype.gestureEnabled
Specifies if the handleGesture method should be invoked.
mxDictionary.prototype.get = function(key)
Returns the value for the given key.
get: function(obj)
Returns the object id for the given object.
get: function(key,
params,
defaultValue)
Returns the value for the specified resource key.
mxSession.prototype.get = function(url,
onLoad,
onError)
Sends an asynchronous get request to the given URL, fires a get event and invokes the given onLoad function when a response is received.
get: function(url,
onload,
onerror)
Loads the specified URL asynchronously and invokes the given functions depending on the request status.
Specifies the event name for get.
Fires after a response was received in get.
mxConnectionHandler.prototype.getAlignmentTolerance = function()
Returns the tolerance for aligning new targets to sources.
mxGraph.prototype.getAllConnectionConstraints = function(terminal,
source)
Returns an array of all mxConnectionConstraints for the given terminal.
mxGraph.prototype.getAllEdges = function(cells)
Returns all edges connected to the given cells or its descendants.
mxCell.prototype.getAttribute = function(name,
defaultValue)
Returns the specified attribute from the user object if it is an XML node.
mxObjectCodec.prototype.getAttributeName = function(fieldname)
Returns the attributename for the given fieldname.
mxImageExport.prototype.getBackgroundBounds = function(state)
Draws the given state to the given canvas.
mxGraph.prototype.getBackgroundImage = function()
Returns the backgroundImage as an mxImage.
mxGraphView.prototype.getBackgroundPageBounds = function()
Returns the bounds for the background page.
mxGraphView.prototype.getBackgroundPane = function()
Returns the DOM node that represents the background layer.
getBaseUrl: function()
Returns baseUrl.
mxGraph.prototype.getBorder = function()
Returns the value of border.
getBoundingBox: function(rect,
rotation)
Returns the bounding box for the rotated rectangle.
mxGraph.prototype.getBoundingBoxFromGeometry = function(cells,
includeEdges)
Returns the bounding box for the geometries of the vertices in the given array of cells.
mxCellOverlay.prototype.getBounds = function(state)
Returns the bounds of the overlay for the given mxCellState as an mxRectangle.
mxGraphView.prototype.getBounds = function(cells)
Returns the bounds (on the screen) for the given array of mxCells.
mxGraph.prototype.getBoundsForGroup = function(group,
children,
border)
Returns the bounds to be used for the given group and children.
mxGraphView.prototype.getCanvas = function()
Returns the DOM node that contains the background-, draw- and overlaypane.
mxCellMarker.prototype.getCell = function(me)
Returns the mxCell for the given event and cell.
mxGraphModel.prototype.getCell = function(id)
Returns the mxCell for the specified Id or null if no cell can be found for the given Id.
mxMouseEvent.prototype.getCell = function()
Returns the mxCell in state is not null.
mxGraph.prototype.getCellAt = function(x,
y,
parent,
vertices,
edges)
Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.
mxGraph.prototype.getCellBounds = function(cell,
includeEdges,
includeDescendants)
Returns the scaled, translated bounds for the given cell.
Returns an mxRectangle that defines the bounds of the given cell or the bounding box if useBoundingBox is true.
mxGraph.prototype.getCellContainmentArea = function(cell)
Returns the mxRectangle inside which a cell is to be kept.
mxPanningHandler.prototype.getCellForPopupEvent = function(me)
Hook to return the cell for the mouse up popup trigger handling.
mxGraph.prototype.getCellGeometry = function(cell)
Returns the mxGeometry for the given cell.
mxGraph.prototype.getCellOverlays = function(cell)
Returns the array of mxCellOverlays for the given cell or null, if no overlays are defined.
mxGraph.prototype.getCells = function(x,
y,
width,
height,
parent,
result)
Returns the children of the given parent that are contained in the given rectangle (x, y, width, height).
mxGraphHandler.prototype.getCells = function(initialCell)
Returns the cells to be modified by this handler.
mxGraph.prototype.getCellsBeyond = function(x0,
y0,
parent,
rightHalfpane,
bottomHalfpane)
Returns the children of the given parent that are contained in the halfpane from the given point (x0, y0) rightwards and/or downwards depending on rightHalfpane and bottomHalfpane.
mxLayoutManager.prototype.getCellsForChange = function(change)
Executes all layouts which have been scheduled during the changes.
Returns the cells to be layouted for the given sequence of changes.
mxGraph.prototype.getCellsForGroup = function(cells)
Returns the cells with the same parent as the first cell in the given array.
mxGraphView.prototype.getCellStates = function(cells)
Returns the mxCellStates for the given array of mxCells.
mxSpaceManager.prototype.getCellsToShift = function(state)
Returns the cells to shift after a resize of the specified mxCellState.
mxGraph.prototype.getCellStyle = function(cell)
Returns an array of key, value pairs representing the cell style for the given cell.
mxStylesheet.prototype.getCellStyle = function(name,
defaultStyle)
Returns the cell style for the specified stylename or the given defaultStyle if no style can be found for the given stylename.
mxGraph.prototype.getCellValidationError = function(cell)
Checks all multiplicities that cannot be enforced while the graph is being modified, namely, all multiplicities that require a minimum of 1 edge.
mxRectangle.prototype.getCenterX = function ()
Returns the x-coordinate of the center point.
mxRectangle.prototype.getCenterY = function ()
Returns the y-coordinate of the center point.
mxCell.prototype.getChildAt = function(index)
Returns the child at the specified index.
mxGraphModel.prototype.getChildAt = function(cell,
index)
Returns the child of the given mxCell at the given index.
mxGraph.prototype.getChildCells = function(parent,
vertices,
edges)
Returns the visible child vertices or edges in the given parent.
mxGraphModel.prototype.getChildCells = function(parent,
vertices,
edges)
Returns the children of the given cell that are vertices and/or edges depending on the arguments.
mxCell.prototype.getChildCount = function()
Returns the number of child cells.
mxGraphModel.prototype.getChildCount = function(cell)
Returns the number of children in the given cell.
mxGraph.prototype.getChildEdges = function(parent)
Returns the visible child edges of the given parent.
mxGraphModel.prototype.getChildEdges = function(parent)
Returns the child edges of the given parent.
getChildNodes: function(node,
nodeType)
Returns an array of child nodes that are of the given node type.
mxGraph.prototype.getChildOffsetForCell = function(cell)
Returns the offset to be used for the cells inside the given cell.
mxGraphModel.prototype.getChildren = function(cell)
Returns all children of the given mxCell as an array of mxCells.
mxGraph.prototype.getChildVertices = function(parent)
Returns the visible child vertices of the given parent.
mxGraphModel.prototype.getChildVertices = function(parent)
Returns the child vertices of the given parent.
getClientX: function(e)
Returns true if the meta key is pressed for the given event.
getClientY: function(e)
Returns true if the meta key is pressed for the given event.
mxGraph.prototype.getCloneableCells = function(cells)
Returns the cells which may be exported in the given array of cells.
getCodec: function(ctor)
Returns a codec that handles objects that are constructed using the given constructor.
getColor: function(array,
key,
defaultValue)
Returns the color value for the given key in the given associative array or the given default value if the value is null.
mxConnectionHandler.prototype.getConnectImage = function(state)
Hook to return the mxImage used for the connection icon of the given mxCellState.
mxGraph.prototype.getConnectionConstraint = function(edge,
terminal,
source)
Returns an mxConnectionConstraint that describes the given connection point.
mxGraph.prototype.getConnectionPoint = function(vertex,
constraint)
Returns the nearest point in the list of absolute points or the center of the opposite terminal.
mxGraph.prototype.getConnections = function(cell,
parent)
Returns all visible edges connected to the given cell without loops.
mxGraphModel.prototype.getConnections = function(cell)
Returns all edges of the given cell without loops.
mxGraphLayout.prototype.getConstraint = function(key,
cell,
edge,
source)
Returns the constraint for the given key and cell.
mxCellRenderer.prototype.getControlBounds = function(state)
Returns the bounds to be used to draw the control (folding icon) of the given state.
getConverter: function()
Returns converter.
getConverter: function()
Returns converter.
mxGraph.prototype.getCurrentRoot = function()
Returns the current root of the displayed cell hierarchy.
getCurrentStyle: function()
Returns the current style of the specified element.
mxCellEditor.prototype.getCurrentValue = function()
Returns the current editing value.
mxShape.prototype.getCursor = function()
Returns the current cursor.
mxElbowEdgeHandler.prototype.getCursorForBend = function()
Returns the cursor to be used for the bend.
mxGraph.prototype.getCursorForCell = function(cell)
Returns the cursor value to be used for the CSS of the shape for the given cell.
getDefaultBundle: function(basename,
lan)
Hook for subclassers to return the URL for the special bundle.
mxStylesheet.prototype.getDefaultEdgeStyle = function()
Sets the default style for edges.
mxGraph.prototype.getDefaultParent = function()
Returns defaultParent or mxGraphView.currentRoot or the first child child of mxGraphModel.root if both are null.
mxStylesheet.prototype.getDefaultVertexStyle = function()
Returns the default style for vertices.
mxGraph.prototype.getDeletableCells = function(cells)
Returns the cells which may be exported in the given array of cells.
mxMorphing.prototype.getDelta = function(state)
Returns the vector between the current rendered state and the future location of the state after the display will be updated.
mxGraphModel.prototype.getDescendants = function(parent)
Returns all descendants of the given cell and the cell itself in an array.
mxGraphModel.prototype.getDirectedEdgeCount = function(cell,
outgoing,
ignoredEdge)
Returns the number of incoming or outgoing edges, ignoring the given edge.
Returns the string that should go before the HTML tag in the print preview page.
getDocument: function()
Returns the owner document of the root element.
mxXmlRequest.prototype.getDocumentElement = function()
Returns the document element of the response XML document.
mxDivResizer.prototype.getDocumentHeight = function()
Hook for subclassers to return the height of the document (without scrollbars).
mxDivResizer.prototype.getDocumentWidth = function()
Hook for subclassers to return the width of the document (without scrollbars).
mxGraphView.prototype.getDrawPane = function()
Returns the DOM node that represents the main drawing layer.
mxDragSource.prototype.getDropTarget = function(graph,
x,
y)
Returns the drop target for the given graph and coordinates.
mxGraph.prototype.getDropTarget = function(cells,
evt,
cell)
Returns the given cell if it is a drop target for the given cells or the nearest ancestor that may be used as a drop target for the given cells.
mxCell.prototype.getEdgeAt = function(index)
Returns the edge at the specified index in edges.
mxGraphModel.prototype.getEdgeAt = function(cell,
index)
Returns the edge of cell at the given index.
mxConnectionHandler.prototype.getEdgeColor = function(valid)
Returns the color used to draw the preview edge.
mxCell.prototype.getEdgeCount = function()
Returns the number of edges in the edge array.
mxGraphModel.prototype.getEdgeCount = function(cell)
Returns the number of distinct edges connected to the given cell.
mxParallelEdgeLayout.prototype.getEdgeId = function(edge)
Returns a unique ID for the given edge.
mxCell.prototype.getEdgeIndex = function(edge)
Returns the index of the specified edge in edges.
mxGraph.prototype.getEdges = function(cell,
parent,
incoming,
outgoing,
includeLoops,
recurse)
Returns the incoming and/or outgoing edges for the given cell.
mxGraphModel.prototype.getEdges = function(cell,
incoming,
outgoing,
includeLoops)
Returns all distinct edges connected to this cell as a new array of mxCells.
mxGraph.prototype.getEdgesBetween = function(source,
target,
directed)
Returns the edges between the given source and target.
mxGraphModel.prototype.getEdgesBetween = function(source,
target,
directed)
Returns all edges between the given source and target pair.
mxEditor.prototype.getEdgeStyle = function ()
Returns a string identifying the style of new edges.
mxGraphView.prototype.getEdgeStyle = function(edge,
points,
source,
target)
Returns the edge style function to be used to render the given edge state.
mxGraph.prototype.getEdgeValidationError = function(edge,
source,
target)
Returns the validation error message to be displayed when inserting or changing an edges’ connectivity.
mxConnectionHandler.prototype.getEdgeWidth = function(valid)
Returns the width used to draw the preview edge.
mxCellEditor.prototype.getEditingCell = function ()
Returns the cell that is currently being edited or null if no cell is being edited.
mxGraph.prototype.getEditingValue = function(cell,
evt)
Returns the initial value for in-place editing.
mxCellEditor.prototype.getEditorBounds = function(state)
Returns the mxRectangle that defines the bounds of the editor.
mxWindow.prototype.getElement = function()
Returuns the outermost DOM node that makes up the window.
mxCodec.prototype.getElementById = function(id,
attr)
Returns the element with the given ID from document.
mxCellEditor.prototype.getEmptyLabelText = function (cell)
Returns the initial label value to be used of the label of the given cell is empty.
mxMouseEvent.prototype.getEvent = function()
Returns evt.
mxEventSource.prototype.getEventSource = function()
Returns eventSource.
mxGraph.prototype.getExportableCells = function(cells)
Returns the cells which may be exported in the given array of cells.
mxObjectCodec.prototype.getFieldName = function(attributename)
Returns the fieldname for the given attributename.
mxObjectCodec.prototype.getFieldTemplate = function(obj,
fieldname,
child)
Returns the template instance for the given field.
mxGraphSelectionModel.prototype.getFirstSelectableCell = function(cells)
Returns the first selectable cell in the given array of cells.
mxGraph.prototype.getFoldableCells = function(cells,
collapse)
Returns the cells which are movable in the given array of cells.
mxGraph.prototype.getFoldingImage = function(state)
Returns the mxImage used to display the collapsed state of the specified cell state.
mxKeyHandler.prototype.getFunction = function(evt)
Returns the function associated with the given key event or null if no function is associated with the given event.
getFunctionName: function(f)
Returns the name for the given function.
mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable = function(
   layer
)
Gets the value of temp for the specified layer
mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable = function(layer)
Gets the value of temp for the specified layer
mxGraphHierarchyNode.prototype.getGeneralPurposeVariable = function(layer)
Gets the value of temp for the specified layer
mxCell.prototype.getGeometry = function()
Returns the mxGeometry that describes the geometry.
mxGraphModel.prototype.getGeometry = function(cell,
geometry)
Returns the mxGeometry of the given mxCell.
mxShape.prototype.getGradientId = function(start,
end)
Creates a unique ID for the gradient of this shape.
mxGraphLayout.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxLayoutManager.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxSpaceManager.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxSwimlaneManager.prototype.getGraph = function()
Returns the graph that this manager operates on.
mxGraph.prototype.getGraphBounds = function()
Returns the bounds of the visible graph.
mxGraphView.prototype.getGraphBounds = function()
Returns graphBounds.
mxDragSource.prototype.getGraphForEvent = function(evt)
Returns the graph for the given mouse event.
mxMouseEvent.prototype.getGraphX = function()
Returns graphX.
mxMouseEvent.prototype.getGraphY = function()
Returns graphY.
mxGraph.prototype.getGridSize = function()
Returns gridSize.
mxGraphHandler.prototype.getGuideStates = function()
Creates an array of cell states which should be used as guides.
mxGuide.prototype.getGuideTolerance = function()
Returns the tolerance for the guides.
mxEdgeHandler.prototype.getHandleFillColor = function(index)
Returns the fillcolor for the handle at the given index.
mxEdgeHandler.prototype.getHandleForEvent = function(me)
Returns the index of the handle for the given event.
mxVertexHandler.prototype.getHandleForEvent = function(me)
Returns the index of the handle for the given event.
mxSelectionCellsHandler.prototype.getHandler = function(cell)
Returns the handler for the given cell.
mxCellMarker.prototype.getHotspot = function()
Returns the hotspot.
mxCell.prototype.getId = function()
Returns the Id of the cell as a string.
mxCodec.prototype.getId = function(obj)
Returns the ID of the specified object.
mxGraph.prototype.getImage = function(state)
Returns the image URL for the given cell state.
mxImageBundle.prototype.getImage = function(key)
Returns the value for the given key.
mxImageExport.prototype.getImageBounds = function(state)
Draws the given state to the given canvas.
mxConstraintHandler.prototype.getImageForConstraint = function(state,
constraint,
point)
Returns the tolerance to be used for intersecting connection points.
mxGraph.prototype.getImageFromBundles = function(key)
Searches all imageBundles for the specified key and returns the value for the first match or null if the key is not found.
mxGraph.prototype.getImportableCells = function(cells)
Returns the cells which may be imported in the given array of cells.
mxGraph.prototype.getIncomingEdges = function(cell,
parent)
Returns the visible incoming edges for the given cell.
mxGraphModel.prototype.getIncomingEdges = function(cell)
Returns the incoming edges of the given cell without loops.
mxCell.prototype.getIndex = function(child)
Returns the index of the specified child in the child array.
mxGraph.prototype.getIndicatorColor = function(state)
Returns the indicator color for the given cell state.
mxGraph.prototype.getIndicatorGradientColor = function(state)
Returns the indicator gradient color for the given cell state.
mxGraph.prototype.getIndicatorImage = function(state)
Returns the indicator image for the given cell state.
mxGraph.prototype.getIndicatorShape = function(state)
Returns the indicator shape for the given cell state.
mxGraphHandler.prototype.getInitialCellForEvent = function(me)
Hook to return initial cell for the given event.
mxCellEditor.prototype.getInitialValue = function(state,
trigger)
Gets the initial editing value for the given cell.
getInnerHtml: function()
Returns the inner HTML for the given node as a string or an empty string if no node was specified.
mxDictionary.prototype.getKeys = function()
Returns all keys as an array.
mxGraph.prototype.getLabel = function(cell)
Returns a string or DOM node that represents the label for the given cell.
mxCellRenderer.prototype.getLabelBounds = function(state)
Returns the bounds to be used to draw the label of the given state.
mxCellRenderer.prototype.getLabelValue = function(state)
Returns the value to be used for the label.
mxLayoutManager.prototype.getLayout = function(parent)
Returns the layout to be executed for the given graph and parent.
getMainEvent: function(e)
Returns the touch or mouse event that contains the mouse coordinates.
mxCellMarker.prototype.getMarkedState = function()
Returns the markedState.
mxCellMarker.prototype.getMarkerColor = function(evt,
state,
isValid)
Returns the valid- or invalidColor depending on the value of isValid.
mxGraph.prototype.getMaximumGraphBounds = function()
Returns the bounds inside which the diagram should be kept as an mxRectangle.
mxCellEditor.prototype.getMinimumSize = function(state)
Returns the minimum width and height for editing the given state.
mxWindow.prototype.getMinimumSize = function()
Returns an mxRectangle that specifies the size for the minimized window.
mxGraph.prototype.getModel = function()
Returns the mxGraphModel that contains the cells.
mxHierarchicalLayout.prototype.getModel = function()
Returns the internal mxGraphHierarchyModel for this layout algorithm.
mxGraph.prototype.getMovableCells = function(cells)
Returns the cells which are movable in the given array of cells.
mxEventObject.prototype.getName = function()
Returns name.
mxObjectCodec.prototype.getName = function()
Returns the name used for the nodenames and lookup of the codec when classes are encoded and nodes are decoded.
getName: function(value)
Returns the name for the given value.
mxGraphModel.prototype.getNearestCommonAncestor = function(cell1,
cell2)
Returns the nearest common ancestor for the specified cells.
mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells = function(
   layer
)
Returns the cells this cell connects to on the next layer up
mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer up
mxGraphHierarchyNode.prototype.getNextLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer up
mxGraphView.prototype.getNextPoint = function(edge,
opposite,
source)
Returns the nearest point in the list of absolute points or the center of the opposite terminal.
getNumber: function(array,
key,
defaultValue)
Returns the numeric value for the given key in the given associative array or the given default value (or 0) if the value is null.
mxCodec.prototype.getObject = function(id)
Returns the decoded object for the element with the specified ID in document.
mxText.prototype.getOffset = function(outerWidth,
outerHeight,
actualWidth,
actualHeight,
horizontal)
Returns the description of the space between the bounds size and the label size as an mxPoint.
getOffset: function(container)
Returns the offset for the specified container as an mxPoint.
mxGraph.prototype.getOffsetSize = function()
Returns the actual size of the the viewport minus padding and border sizes.
mxGraph.prototype.getOpposites = function(edges,
terminal,
sources,
targets)
Returns all distinct visible opposite cells for the specified terminal on the given edges.
mxGraphModel.prototype.getOpposites = function(edges,
terminal,
sources,
targets)
Returns all opposite vertices wrt terminal for the given edges, only returning sources and/or targets as specified.
mxGraphModel.prototype.getOrigin = function(cell)
Returns the absolute, accumulated origin for the children inside the given parent as an mxPoint.
mxMorphing.prototype.getOriginForCell = function(cell)
Returns the top, left corner of the given cell.
getOuterHtml: function()
Returns the outer HTML for the given node as a string or an empty string if no node was specified.
mxGraph.prototype.getOutgoingEdges = function(cell,
parent)
Returns the visible outgoing edges for the given cell.
mxGraphModel.prototype.getOutgoingEdges = function(cell)
Returns the outgoing edges of the given cell without loops.
mxGraph.prototype.getOverlap = function(cell)
Returns a decimal number representing the amount of the width and height of the given cell that is allowed to overlap its parent.
mxGraphView.prototype.getOverlayPane = function()
Returns the DOM node that represents the topmost drawing layer.
mxCell.prototype.getParent = function()
Returns the cell’s parent.
mxGraphModel.prototype.getParent = function(cell)
Returns the parent of the given cell.
mxGraphLayout.prototype.getParentOffset = function(parent)
Determines the offset of the given parent to the parent of the layout
getParentPath: function(path)
Returns the path for the parent of the cell represented by the given path.
mxGraphModel.prototype.getParents = function(cells)
Returns an array that represents the set (no duplicates) of all parents for the given array of cells.
mxStackLayout.prototype.getParentSize = function(parent)
Returns the size for the parent container or the size of the graph container if the parent is a layer or the root of the model.
mxPath.prototype.getPath = function()
Returns string that represents the path in format.
mxCellState.prototype.getPerimeterBounds = function (border,
bounds)
Returns the mxRectangle that should be used as the perimeter of the cell.
mxGraphView.prototype.getPerimeterBounds = function(terminal,
border)
Returns the perimeter bounds for the given terminal, edge pair as an mxRectangle.
mxGraphView.prototype.getPerimeterFunction = function(state)
Returns the perimeter function for the given state.
mxGraphView.prototype.getPerimeterPoint = function(terminal,
next,
orthogonal,
border)
Returns an mxPoint that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.
mxGraphView.prototype.getPoint = function(state,
geometry)
Returns the absolute point on the edge for the given relative mxGeometry as an mxPoint.
mxRectangle.prototype.getPoint = function()
Returns the top, left corner as a new mxPoint.
mxEdgeHandler.prototype.getPointForEvent = function(me)
Returns the point for the given event.
mxGraph.prototype.getPointForEvent = function(evt,
addOffset)
Returns an mxPoint representing the given event in the unscaled, non-translated coordinate space of container and applies the grid.
mxGraph.prototype.getPreferredSizeForCell = function(cell)
Returns the preferred width and height of the given mxCell as an mxRectangle.
Returns a pretty printed string that represents the XML tree for the given node.
mxGraphHandler.prototype.getPreviewBounds = function(cells)
Returns the mxRectangle used as the preview bounds for moving the given cells.
mxEdgeSegmentHandler.prototype.getPreviewPoints = function(point)
Updates the given preview state taking into account the state of the constraint handler.
mxEdgeHandler.prototype.getPreviewPoints = function(point)
Updates the given preview state taking into account the state of the constraint handler.
mxEdgeHandler.prototype.getPreviewTerminalState = function(me)
Updates the given preview state taking into account the state of the constraint handler.
mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells = function(
   layer
)
Returns the cells this cell connects to on the next layer down
mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer down
mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells = function(layer)
Returns the cells this cell connects to on the next layer down
mxEventObject.prototype.getProperties = function()
Returns properties.
mxEventObject.prototype.getProperty = function(key)
Returns the property for the given key.
mxGraphHierarchyNode.prototype.getRankValue = function(layer)
Returns the integer value of the layer that this node resides in
mxGraphView.prototype.getRelativePoint = function(edgeState,
x,
y)
Gets the relative point that describes the given, absolute label position for the given edge state.
mxGraph.prototype.getRemovedCellsForChanges = function(changes)
Returns the cells that have been removed from the model.
mxGraphModel.prototype.getRoot = function(cell)
Returns the root of the model or the topmost parent of the given cell.
mxEditor.prototype.getRootTitle = function ()
Returns the string value of the root cell in mxGraph.model.
getRotatedPoint: function(pt,
cos,
sin,
c)
Rotates the given point by the given cos and sin.
mxShape.prototype.getRotation = function()
Returns the current rotation including direction.
mxGraphView.prototype.getRoutingCenterX = function (state)
Returns the x-coordinate of the center point for automatic routing.
mxGraphView.prototype.getRoutingCenterY = function (state)
Returns the y-coordinate of the center point for automatic routing.
mxGraphView.prototype.getScale = function()
Returns the scale.
getScaleForPageCount: function(pageCount,
graph,
pageFormat,
border)
Returns the scale to be used for printing the graph with the given bounds across the specifies number of pages with the given format.
getScrollOrigin: function(node)
Returns the top, left corner of the viewrect as an mxPoint.
mxVertexHandler.prototype.getSelectionBounds = function(state)
Returns the mxRectangle that defines the bounds of the selection border.
mxGraph.prototype.getSelectionCell = function()
Returns the first cell from the array of selected mxCells.
mxGraph.prototype.getSelectionCells = function()
Returns the array of selected mxCells.
mxGraph.prototype.getSelectionCellsForChanges = function(changes)
Returns the cells to be selected for the given array of changes.
mxEdgeHandler.prototype.getSelectionColor = function()
Returns mxConstants.EDGE_SELECTION_COLOR.
mxVertexHandler.prototype.getSelectionColor = function()
Returns mxConstants.VERTEX_SELECTION_COLOR.
mxGraph.prototype.getSelectionCount = function()
Returns the number of selected cells.
mxGraph.prototype.getSelectionModel = function()
Returns the mxGraphSelectionModel that contains the selection.
mxEdgeHandler.prototype.getSelectionPoints = function(state)
Returns the list of points that defines the selection stroke.
mxEdgeHandler.prototype.getSelectionStrokeWidth = function()
Returns mxConstants.EDGE_SELECTION_STROKEWIDTH.
mxVertexHandler.prototype.getSelectionStrokeWidth = function()
Returns mxConstants.VERTEX_SELECTION_STROKEWIDTH.
mxCellRenderer.prototype.getShapeConstructor = function(state)
Returns the constructor to be used for creating the shape.
getSizeForString: function(text,
fontSize,
fontFamily)
Returns an mxRectangle with the size (width and height in pixels) of the given string.
mxEdgeHandler.prototype.getSnapToTerminalTolerance = function()
Returns the tolerance for the guides.
getSource: function(evt)
Returns the event’s target or srcElement depending on the browser.
mxMouseEvent.prototype.getSource = function()
Returns the target DOM element using mxEvent.getSource for evt.
mxConnectionHandler.prototype.getSourcePerimeterPoint = function(state,
next,
me)
Hook to update the icon position(s) based on a mouseOver event.
mxText.prototype.getSpacing = function(horizontal)
Returns the spacing as an mxPoint.
getSpecialBundle: function(basename,
lan)
Hook for subclassers to return the URL for the special bundle.
mxGraph.prototype.getStartSize = function(swimlane)
Returns the start size of the given swimlane, that is, the width or height of the part that contains the title, depending on the horizontal style.
mxCellMarker.prototype.getState = function(me)
Uses getCell, getStateToMark and intersects to return the mxCellState for the given mxMouseEvent.
mxGraphView.prototype.getState = function(cell,
create)
Returns the mxCellState for the given cell.
mxMouseEvent.prototype.getState = function()
Returns state.
mxGraphView.prototype.getStates = function()
Returns states.
mxCellMarker.prototype.getStateToMark = function(state)
Returns the mxCellState to be marked for the given mxCellState under the mouse.
mxXmlRequest.prototype.getStatus = function()
Returns the status as a number, eg.
getStencil: function(name)
Returns the mxStencil for the given name.
codec.getStringValue = function(key,
value)
Returns the string for encoding the given value.
mxCell.prototype.getStyle = function()
Returns a string that describes the style.
mxGraphModel.prototype.getStyle = function(cell)
Returns the style of the given mxCell.
getStylename: function(style)
Returns the stylename in a style of the form [(stylename|key=value);] or an empty string if the given style does not contain a stylename.
getStylenames: function(style)
Returns the stylenames in a style of the form [(stylename|key=value);] or an empty array if the given style does not contain any stylenames.
mxGraph.prototype.getStylesheet = function()
Returns the mxStylesheet that defines the style.
mxText.prototype.getSvgClip = function(svg,
x,
y,
w,
h)
Returns a new or existing SVG clip path which is a descendant of the given SVG node with a unique ID.
mxShape.prototype.getSvgShadowTransform = function(node,
shadow)
Returns the current transformation for SVG shadows.
mxGraph.prototype.getSwimlane = function(cell)
Returns the nearest ancestor of the given cell which is a swimlane, or the given cell, if it is itself a swimlane.
mxGraph.prototype.getSwimlaneAt = function (x,
y,
parent)
Returns the bottom-most swimlane that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.
mxForm.prototype.getTable = function()
Returns the table that contains this form.
mxText.prototype.getTableSize = function(table)
Returns the actual size of the table.
mxConnectionHandler.prototype.getTargetPerimeterPoint = function(state,
me)
Returns the perimeter point for the given target state.
mxEditor.prototype.getTemplate = function (name)
Returns the template for the given name.
mxCell.prototype.getTerminal = function(source)
Returns the source or target terminal.
mxGraphModel.prototype.getTerminal = function(edge,
isSource)
Returns the source or target mxCell of the given edge depending on the value of the boolean parameter.
mxGraph.prototype.getTerminalForPort = function(cell,
source)
Returns the terminal to be used for a given port.
mxGeometry.prototype.getTerminalPoint = function(isSource)
Returns the mxPoint representing the source or target point of this edge.
mxGraphView.prototype.getTerminalPort = function(state,
terminal,
source)
Returns an mxCellState that represents the source or target terminal or port for the given edge.
mxXmlRequest.prototype.getText = function()
Returns the response as a string.
getTextContent: function(node)
Returns the text content of the specified node.
mxCellRenderer.prototype.getTextScale = function(state)
Returns the scaling used for the label of the given state
mxEditor.prototype.getTitle = function ()
Returns the string value for the current root of the diagram.
mxConstraintHandler.prototype.getTolerance = function()
Returns the tolerance to be used for intersecting connection points.
mxGraph.prototype.getTolerance = function()
Returns tolerance.
mxGraph.prototype.getTooltip = function(state,
node,
x,
y)
Returns the string or DOM node that represents the tooltip for the given state, node and coordinate pair.
mxGraph.prototype.getTooltipForCell = function(cell)
Returns the string or DOM node to be used as the tooltip for the given cell.
mxElbowEdgeHandler.prototype.getTooltipForNode = function(node)
Returns the tooltip for the given node.
mxGraphModel.prototype.getTopmostCells = function(cells)
Returns the topmost cells of the hierarchy in an array that contains no descendants for each mxCell that it contains.
mxGraphView.prototype.getTranslate = function()
Returns the translate.
mxGraph.prototype.getTranslateForRoot = function(cell)
Returns the translation to be used if the given cell is the root cell as an mxPoint.
mxEditor.prototype.getUrlImage = function ()
Returns the URL to create the image with.
mxEditor.prototype.getUrlPost = function ()
Returns the URL to post the diagram to.
mxCellMarker.prototype.getValidState = function()
Returns the validState.
mxCell.prototype.getValue = function()
Returns the user object of the cell.
mxGraphModel.prototype.getValue = function(cell)
Returns the user object of the given mxCell using mxCell.getValue.
getValue: function(name)
Returns the value associated with the given name.
getValue: function(array,
key,
defaultValue)
Returns the value for the given key in the given associative array or the given default value if the value is null.
mxDictionary.prototype.getValues = function()
Returns all values as an array.
mxGraph.prototype.getVerticalAlign = function(state)
Returns the vertical alignment for the given cell state.
mxText.prototype.getVerticalOffset = function(offset)
Returns the factors for the offset to be added to the text vertical text rotation.
mxGraph.prototype.getView = function()
Returns the mxGraphView that contains the mxCellStates.
getViewXml: function(graph,
scale,
cells,
x0,
y0)
mxCellState.prototype.getVisibleTerminal = function (source)
Returns the visible source or target terminal cell.
mxGraphView.prototype.getVisibleTerminal = function(edge,
source)
Returns the nearest ancestor terminal that is visible.
mxCellState.prototype.getVisibleTerminalState = function (source)
Returns the visible source or target terminal state.
mxPrintPreview.prototype.getWindow = function()
Returns wnd.
mxGraphAbstractHierarchyCell.prototype.getX = function(layer)
Gets the value of x on the specified layer
mxMouseEvent.prototype.getX = function()
Returns evt.clientX.
mxWindow.prototype.getX = function()
Returns the current position on the x-axis.
getXml: function(node,
linefeed)
Returns the XML content of the specified node.
mxXmlRequest.prototype.getXml = function()
Returns the response as an XML document.
mxMouseEvent.prototype.getY = function()
Returns evt.clientY.
mxWindow.prototype.getY = function()
Returns the current position on the y-axis.
mxImageExport.prototype.glassSize
Reference to the thread while the animation is running.
mxAutoSaveManager.prototype.graph
Reference to the enclosing mxGraph.
mxCellEditor.prototype.graph
Reference to the enclosing mxGraph.
mxCellHighlight.prototype.graph
Reference to the enclosing mxGraph.
mxCellMarker.prototype.graph
Reference to the enclosing mxGraph.
mxCellStatePreview.prototype.graph
Reference to the enclosing mxGraph.
mxConnectionHandler.prototype.graph
Reference to the enclosing mxGraph.
mxConstraintHandler.prototype.graph
Reference to the enclosing mxGraph.
mxEdgeHandler.prototype.graph
Reference to the enclosing mxGraph.
mxEditor.prototype.graph
Holds a mxGraph for displaying the diagram.
mxGraphHandler.prototype.graph
Reference to the enclosing mxGraph.
mxGraphLayout.prototype.graph
Reference to the enclosing mxGraph.
mxGraphSelectionModel.prototype.graph
Reference to the enclosing mxGraph.
mxGraphView.prototype.graph
Reference to the enclosing mxGraph.
mxGuide.prototype.graph
Reference to the enclosing mxGraph instance.
mxKeyHandler.prototype.graph
Reference to the mxGraph associated with this handler.
mxLayoutManager.prototype.graph
Reference to the enclosing mxGraph.
mxMorphing.prototype.graph
Specifies the delay between the animation steps.
mxPanningHandler.prototype.graph
Reference to the enclosing mxGraph.
mxPrintPreview.prototype.graph
Reference to the mxGraph that should be previewed.
mxSelectionCellsHandler.prototype.graph
Reference to the enclosing mxGraph.
mxSpaceManager.prototype.graph
Reference to the enclosing mxGraph.
mxSwimlaneManager.prototype.graph
Reference to the enclosing mxGraph.
mxTooltipHandler.prototype.graph
Reference to the enclosing mxGraph.
mxVertexHandler.prototype.graph
Reference to the enclosing mxGraph.
mxGraphView.prototype.graphBounds
mxRectangle that caches the scales, translated bounds of the current view.
mxDragSource.prototype.graphContainsEvent = function(graph,
evt)
Returns true if the given graph contains the given event.
mxAutoSaveManager.prototype.graphModelChanged = function(changes)
Invoked when the graph model has changed.
mxGraph.prototype.graphModelChanged = function(changes)
Called when the graph model changes.
mxEditor.prototype.graphRenderHint
Holds the render hint used for creating the graph in setGraphContainer.
Renderhint to be used for the outline graph.
mxMouseEvent.prototype.graphX
Holds the x-coordinate of the event in the graph.
mxMouseEvent.prototype.graphY
Holds the y-coordinate of the event in the graph.
mxDragSource.prototype.gridEnabled
Specifies if the grid should be allowed.
mxGraph.prototype.gridEnabled
Specifies if the grid is enabled.
mxGraph.prototype.gridSize
Specifies the grid size.
Specifies the event name for groupCells.
Fires between begin- and endUpdate in groupCells.
mxEditor.prototype.groupCells = function ()
Invokes createGroup to create a new group cell and the invokes mxGraph.groupCells, using the grid size of the graph as the spacing in the group’s content area.
mxGraph.prototype.groupCells = function(group,
border,
cells)
Adds the cells into the given group.
mxCompactTreeLayout.prototype.groupPadding
Padding added to resized parents
mxRectangle.prototype.grow = function(amount)
Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.
mxGraphHandler.prototype.guide
Holds the mxGuide instance that is used for alignment.
Defines the color to be used for the guidelines in mxGraphHandler.
Defines the strokewidth to be used for the guidelines in mxGraphHandler.
mxDragSource.prototype.guidesEnabled
Specifies if mxGuide should be enabled.
mxGraphHandler.prototype.guidesEnabled
Specifies if other cells should be used for snapping the right, center or left side of the current selection.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General8.html b/docs/js-api/index/General8.html new file mode 100644 index 000000000..ff72ba4b4 --- /dev/null +++ b/docs/js-api/index/General8.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
H
 h0, mxStencil
 HANDLE_FILLCOLOR, mxConstants
 HANDLE_SIZE, mxConstants
 HANDLE_STROKECOLOR, mxConstants
 handleGesture, mxGraph
 handleImage
 handleMouseOut, mxPanningManager
 handler, mxDefaultKeyHandler
 handlers, mxSelectionCellsHandler
 handlingResize, mxDivResizer
 hashCode, mxGraphHierarchyNode
 hasScrollbars, mxUtils
 hasValidState, mxCellMarker
 height
 help, mxEditor
 helpResource, mxEditor
 helpWidth, mxEditor
 helpWindowImage, mxEditor
 hide
 HIDE, mxEvent
 hideMenu, mxPopupMenu
 hideOnHover, mxTooltipHandler
 hideProperties, mxEditor
 hideSubmenu, mxPopupMenu
 hideTooltip, mxTooltipHandler
 HIGHLIGHT_COLOR, mxConstants
 HIGHLIGHT_STROKEWIDTH, mxConstants
 highlightColor, mxConstraintHandler
 highlightDropTargets, mxDragSource
 highlightEnabled, mxGraphHandler
 history, mxUndoManager
 hitsSwimlaneContent, mxGraph
 home, mxGraph
 horizontal
 horizontalFlow, mxEditor
 horizontalLayout, mxCompactTreeLayout
 hotspot, mxCellMarker
 hotspotEnabled, mxCellMarker
 htmlEntities, mxUtils
 htmlLabels, mxGraph
 htmlPreview, mxGraphHandler
+ +
mxStencil.prototype.h0
Holds the height of the shape.
Defines the color to be used for the handle fill color.
Defines the default size for handles.
Defines the color to be used for the handle stroke color.
mxGraph.prototype.handleGesture = function(state,
evt)
Invokes if a gesture event has been detected on a cell state.
mxEdgeHandler.prototype.handleImage
Optional mxImage to be used as handles.
mxVertexHandler.prototype.handleImage
Optional mxImage to be used as handles.
mxPanningManager.prototype.handleMouseOut
Specifies if mouse events outside of the component should be handled.
mxDefaultKeyHandler.prototype.handler
Holds the mxKeyHandler for key event handling.
mxSelectionCellsHandler.prototype.handlers
mxDictionary that maps from cells to handlers.
Boolean specifying if the width should be updated.
mxGraphHierarchyNode.prototype.hashCode
Assigns a unique hashcode for each node.
hasScrollbars: function(node)
Returns true if the overflow CSS property of the given node is either scroll or auto.
mxCellMarker.prototype.hasValidState = function()
Returns true if validState is not null.
mxGraphAbstractHierarchyCell.prototype.height
The height of this cell
mxImage.prototype.height
Integer that specifies the height of the image.
mxRectangle.prototype.height
Holds the height of the rectangle.
mxEditor.prototype.help
Holds the mxWindow created in showHelp.
mxEditor.prototype.helpResource
Specifies the resource key for the help window title.
mxEditor.prototype.helpWidth
Specifies the width of the help window in pixels.
mxEditor.prototype.helpWindowImage
Icon for the help window.
mxCellHighlight.prototype.hide = function()
Resets the state of the cell marker.
mxGuide.prototype.hide = function()
Hides all current guides.
mxTooltipHandler.prototype.hide = function()
Hides the tooltip and resets the timer.
mxWindow.prototype.hide = function()
Hides the window.
Specifies the event name for hide.
mxPopupMenu.prototype.hideMenu = function()
Removes the menu and all submenus.
mxTooltipHandler.prototype.hideOnHover
Specifies if the tooltip should be hidden if the mouse is moved over the current cell.
mxEditor.prototype.hideProperties = function ()
Hides the properties dialog.
mxPopupMenu.prototype.hideSubmenu = function(parent)
Removes all submenus inside the given parent.
mxTooltipHandler.prototype.hideTooltip = function()
Hides the tooltip.
Defines the color to be used for the cell highlighting.
Defines the strokewidth to be used for the highlights.
mxConstraintHandler.prototype.highlightColor
Specifies the color for the highlight.
mxDragSource.prototype.highlightDropTargets
Specifies if drop targets should be highlighted.
mxGraphHandler.prototype.highlightEnabled
Specifies if drop targets under the mouse should be enabled.
mxUndoManager.prototype.history
Array that contains the steps of the command history.
mxGraph.prototype.hitsSwimlaneContent = function(swimlane,
x,
y)
Returns true if the given coordinate pair is inside the content are of the given swimlane.
mxGraph.prototype.home = function()
Uses the root of the model as the root of the displayed cell hierarchy and selects the previous root.
mxCompactTreeLayout.prototype.horizontal
Specifies the orientation of the layout.
mxGuide.prototype.horizontal
Specifies if horizontal guides are enabled.
mxPartitionLayout.prototype.horizontal
Boolean indicating the direction in which the space is partitioned.
mxStackLayout.prototype.horizontal
Specifies the orientation of the layout.
mxSwimlaneManager.prototype.horizontal
Specifies the orientation of the swimlanes.
mxEditor.prototype.horizontalFlow
Specifies the direction of the flow in the diagram.
mxCompactTreeLayout.prototype.horizontalLayout = function(node,
x0,
y0,
bounds)
mxCellMarker.prototype.hotspot
Specifies the portion of the width and height that should trigger a highlight.
mxCellMarker.prototype.hotspotEnabled
Specifies if the hotspot is enabled.
htmlEntities: function(s,
newline)
Replaces characters (less than, greater than, newlines and quotes) with their HTML entities in the given string and returns the result.
mxGraph.prototype.htmlLabels
Specifies the return value for isHtmlLabel.
mxGraphHandler.prototype.htmlPreview
Specifies if the graph container should be used for preview.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/General9.html b/docs/js-api/index/General9.html new file mode 100644 index 000000000..9f316815d --- /dev/null +++ b/docs/js-api/index/General9.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
I
 id, mxCell
 idrefs, mxObjectCodec
 ieVerticalFilter, mxText
 ignoreCell, mxPanningHandler
 ignoredChanges, mxAutoSaveManager
 ignoreMouseDown, mxConnectionHandler
 ignoreScrollbars, mxGraph
 image
 imageBasePath
 imageBundles, mxGraph
 images, mxImageBundle
 imageSize
 importCells, mxGraph
 importEnabled, mxGraph
 In-place editing, mxGraph
 include, mxClient
 includeOverlays, mxImageExport
 index, mxVertexHandler
 indexOf, mxUtils
 indexOfNextAdd, mxUndoManager
 indexOfStylename, mxUtils
 indicatorSize, mxLabel
 indicatorSpacing, mxLabel
 indices, mxFastOrganicLayout
 info, mxLog
 init
 initBend, mxEdgeHandler
 initControl, mxCellRenderer
 initialCoords, mxCoordinateAssignment
 initialize, mxCellRenderer
 initializeLabel, mxCellRenderer
 initializeOverlay, mxCellRenderer
 initializeShape, mxCellRenderer
 initialRank, mxGraphHierarchyModel
 initialTemp, mxFastOrganicLayout
 initialTouchY, mxConnectionHandler
 initialX, mxCoordinateAssignment
 initMarkers, mxImageExport
 initShapes, mxImageExport
 innerNode, mxShape
 insert
 insertCount, mxClipboard
 insertEdge
 insertFunction, mxEditor
 insertGradient, mxShape
 insertIntoGraph, mxCodec
 insertState, mxCellRenderer
 insertVertex, mxGraph
 installChangeHandler, mxEditor
 installCloseHandler, mxWindow
 installDblClickHandler, mxEditor
 installDrillHandler, mxEditor
 installDropHandler, mxDefaultToolbar
 installInsertHandler, mxEditor
 installListeners
 installMaximizeHandler, mxWindow
 installMinimizeHandler, mxWindow
 installMoveHandler, mxWindow
 installOverlayListeners, mxCellRenderer
 installUndoHandler, mxEditor
 interHierarchySpacing, mxHierarchicalLayout
 interRankCellSpacing
 intersection, mxUtils
 intersects
 intraCellSpacing
 invalid, mxCellState
 INVALID_COLOR, mxConstants
 INVALID_CONNECT_TARGET_COLOR, mxConstants
 invalidate, mxGraphView
 invalidColor, mxCellMarker
 invalidOrder, mxCellState
 invert
 invokesStopCellEditing, mxGraph
 IS_GC, mxClient
 IS_IE, mxClient
 IS_IE6, mxClient
 IS_LOCAL, mxClient
 IS_MAC, mxClient
 IS_MT, mxClient
 IS_NS, mxClient
 IS_OP, mxClient
 IS_OT, mxClient
 IS_SF, mxClient
 IS_SVG, mxClient
 IS_TOUCH, mxClient
 IS_VML, mxClient
 isAddEnabled, mxSwimlaneManager
 isAddPointEvent, mxEdgeHandler
 isAllowDanglingEdges, mxGraph
 isAllowEval, mxGraphView
 isAllowLoops, mxGraph
 isAllowOverlapParent, mxGraph
 isAltDown, mxEvent
 isAncestor
 isAutoAntiAlias, mxSvgCanvas2D
 isAutoSizeCell, mxGraph
 isAutoSizeCells, mxGraph
 isBinary, mxXmlRequest
 isBrowserSupported, mxClient
 isBubbling, mxLayoutManager
 isBundleSupported, mxResources
 isCellBendable, mxGraph
 isCellCloneable, mxGraph
 isCellCodec
 isCellCollapsed, mxGraph
 isCellConnectable, mxGraph
 isCellDeletable, mxGraph
 isCellDisconnectable, mxGraph
 isCellEditable, mxGraph
 isCellFoldable, mxGraph
 isCellHorizontal, mxSwimlaneManager
 isCellIgnored, mxSpaceManager
 isCellLocked, mxGraph
 isCellMovable, mxGraph
 isCellResizable, mxGraph
 isCellsBendable, mxGraph
 isCellsCloneable, mxGraph
 isCellsDeletable, mxGraph
 isCellsDisconnectable, mxGraph
 isCellsEditable, mxGraph
 isCellSelectable, mxGraph
 isCellSelected, mxGraph
 isCellShiftable, mxSpaceManager
 isCellsLocked, mxGraph
 isCellsMovable, mxGraph
 isCellsResizable, mxGraph
 isCellsSelectable, mxGraph
 isCellVisible, mxGraph
 isCloneEnabled, mxGraphHandler
 isCloneEvent, mxGraph
 isCloneInvalidEdges, mxGraph
 isCollapsed
 isCompressed, mxXmlCanvas2D
 isConnectable
 isConnectableCell
 isConnectableEdges, mxGraph
 isConnecting, mxConnectionHandler
 isConstrainChild, mxGraph
 isConstrainChildren, mxGraph
 isConstrainedEvent, mxGraph
 isConsumed
 isContainerEvent, mxGraphView
 isControlDown
 isCreateIds, mxGraphModel
 isCreateTarget, mxConnectionHandler
 isDelayedSelection, mxGraphHandler
 isDisconnectOnMove, mxGraph
 isDropEnabled, mxGraph
 isEdge
 isEdgeIgnored, mxGraphLayout
 isEdgeLabelsMovable, mxGraph
 isEdgeValid, mxGraph
 isEditing, mxGraph
 isEmpty
 isEmptyString, mxText
 isEnabled
 isEnabledForEvent, mxGuide
 isEnterStopsCellEditing, mxGraph
 isEscapeEnabled, mxGraph
 isEventsEnabled, mxEventSource
 isExcluded
 isExtendParent, mxGraph
 isExtendParents
 isExtendParentsOnAdd, mxGraph
 isFoEnabled, mxSvgCanvas2D
 isForceMarqueeEvent, mxGraph
 isGraphEvent, mxKeyHandler
 isGridEnabled
 isGridEnabledEvent, mxGraph
 isGuidesEnabled, mxDragSource
 isHandleEnabled, mxEdgeHandler
 isHandleVisible, mxEdgeHandler
 isHideLabel, mxCellEditor
 isHideOnHover, mxTooltipHandler
 isHorizontal
 isHotspotEnabled, mxCellMarker
 isHtmlLabel, mxGraph
 isHtmlLabels, mxGraph
 isImmediateConnectSource, mxConnectionHandler
 isInvokesStopCellEditing, mxGraph
 isLabelClipped, mxGraph
 isLabelEvent, mxCellRenderer
 isLabelMovable, mxGraph
 isLayer, mxGraphModel
 isLeftMouseButton, mxEvent
 isLoop, mxGraph
 isMenuShowing, mxPopupMenu
 isMetaDown, mxEvent
 isMixedModeHtml, mxShape
 isModified
 isMouseDown, mxGraph
 isMoveable, mxFastOrganicLayout
 isMoveEnabled, mxGraphHandler
 isMoveIconToFrontForState, mxConnectionHandler
 isMultigraph, mxGraph
 isNode, mxUtils
 isNumeric, mxUtils
 isOrthogonal, mxGraph
 isPanningEnabled, mxPanningHandler
 isPanningTrigger, mxPanningHandler
 isPopupTrigger
 isPort, mxGraph
 isPortsEnabled, mxGraph
 isPropertiesVisible, mxEditor
 isReady, mxXmlRequest
 isReference
 isRemoveCellsFromParent, mxGraphHandler
 isRemovePointEvent, mxEdgeHandler
 isRendering, mxGraphView
 isResizable, mxWindow
 isResizeContainer, mxGraph
 isResizeEnabled, mxSwimlaneManager
 isReversed, mxGraphHierarchyEdge
 isRightMouseButton, mxEvent
 isRoot, mxGraphModel
 isScrollEvent, mxGraphView
 isSelected, mxGraphSelectionModel
 isSelectEnabled, mxGraphHandler
 isSelectionDashed
 isSelectionEmpty, mxGraph
 isShapeEvent, mxCellRenderer
 isShiftDown, mxEvent
 isShiftDownwards, mxSpaceManager
 isShiftRightwards, mxSpaceManager
 isSignificant, mxUndoableEdit
 isSingleSelection, mxGraphSelectionModel
 isSizerVisible, mxVertexHandler
 isSource, mxMouseEvent
 isSplitEnabled, mxGraph
 isSplitTarget, mxGraph
 isStartEvent, mxConnectionHandler
 isStopEvent, mxConnectionHandler
 isStyleSet, mxText
 isSwimlane, mxGraph
 isSwimlaneIgnored, mxSwimlaneManager
 isSwimlaneNesting, mxGraph
 isSwimlaneSelectionEnabled, mxGraph
 isTerminalPointMovable, mxGraph
 isTextEnabled
 isToggleEvent, mxGraph
 isValidAncestor, mxGraph
 isValidConnection, mxGraph
 isValidDropTarget, mxGraph
 isValidResponse, mxSession
 isValidRoot, mxGraph
 isValidSource
 isValidState, mxCellMarker
 isValidTarget
 isVertex
 isVertexIgnored
 isVertexLabelsMovable, mxGraph
 isVertexMovable, mxGraphLayout
 isVisible
 isVml
 isWrapping, mxGraph
 itemCount, mxPopupMenu
 iteration, mxFastOrganicLayout
 iterationsWithoutImprovement, mxMedianHybridCrossingReduction
+ +
mxCell.prototype.id
Holds the Id.
mxObjectCodec.prototype.idrefs
Array containing the variable names that should be turned into or converted from references.
mxText.prototype.ieVerticalFilter
Holds the filter definition for vertical text in IE.
mxPanningHandler.prototype.ignoreCell
Specifies if panning should be active even if there is a cell under the mousepointer.
mxAutoSaveManager.prototype.ignoredChanges
Counter for ignored changes in autosave.
mxConnectionHandler.prototype.ignoreMouseDown
Specifies if the connection handler should ignore the state of the mouse button when highlighting the source.
mxGraph.prototype.ignoreScrollbars
Specifies if the graph should automatically scroll regardless of the scrollbars.
mxCellOverlay.prototype.image
Holds the mxImage to be used as the icon.
image: function(x,
y,
w,
h,
src,
aspect,
flipH,
flipV)
Paints an image.
image: function(x,
y,
w,
h,
src,
aspect,
flipH,
flipV)
Paints an image.
Basepath for all images URLs in the core without trailing slash.
mxDefaultPopupMenu.prototype.imageBasePath
Base path for all icon attributes in the config.
mxGraph.prototype.imageBundles
Holds the list of image bundles.
mxImageBundle.prototype.images
Maps from keys to images.
mxLabel.prototype.imageSize
Default width and height for the image.
mxSwimlane.prototype.imageSize
Default imagewidth and imageheight if an image but no imagewidth and imageheight are defined in the style.
mxGraph.prototype.importCells = function(cells,
dx,
dy,
target,
evt)
Clones and inserts the given cells into the graph using the move method and returns the inserted cells.
mxGraph.prototype.importEnabled
Specifies the return value for canImportCell.
include: function(src)
Dynamically adds a script node to the document header.
mxImageExport.prototype.includeOverlays
Specifies if overlays should be included in the export.
mxVertexHandler.prototype.index
Holds the index of the current handle.
indexOf: function(array,
obj)
Returns the index of obj in array or -1 if the array does not contains the given object.
mxUndoManager.prototype.indexOfNextAdd
Index of the element to be added next.
indexOfStylename: function(style,
stylename)
Returns the index of the given stylename in the given style.
mxLabel.prototype.indicatorSize
Default width and height for the indicicator.
mxLabel.prototype.indicatorSpacing
Default spacing between image and indicator.
mxFastOrganicLayout.prototype.indices
Hashtable from cells to local indices.
info: function()
Writes the current navigator information to the console.
mxCellEditor.prototype.init = function ()
Creates the textarea and installs the event listeners.
mxConnectionHandler.prototype.init = function()
Initializes the shapes required for this connection handler.
mxDefaultToolbar.prototype.init
Constructs the toolbar for the given container and installs a listener that updates the mxEditor.insertFunction on editor if an item is selected in the toolbar.
mxEdgeHandler.prototype.init = function()
Initializes the shapes required for this edge handler.
mxGraph.prototype.init = function(container)
Initializes the container and creates the respective datastructures.
mxGraphView.prototype.init = function()
Initializes the graph event dispatch loop for the specified container and invokes create to create the required DOM nodes for the display.
mxLabel.prototype.init = function(container)
Initializes the shape and adds it to the container.
init: function()
Initializes the DOM node for the console.
mxOutline.prototype.init = function(container)
Initializes the outline inside the given container.
mxPanningHandler.prototype.init = function()
Initializes the shapes required for this vertex handler.
mxPopupMenu.prototype.init = function()
Initializes the shapes required for this vertex handler.
mxShape.prototype.init = function(container)
Initializes the shape by creaing the DOM node using create and adding it into the given container.
mxTooltipHandler.prototype.init = function()
Initializes the DOM nodes required for this tooltip handler.
mxVertexHandler.prototype.init = function()
Initializes the shapes required for this vertex handler.
mxWindow.prototype.init = function(x,
y,
width,
height,
style)
Initializes the DOM tree that represents the window.
mxEdgeHandler.prototype.initBend = function(bend)
Helper method to initialize the given bend.
mxCellRenderer.prototype.initControl = function(state,
control,
handleEvents,
clickHandler)
Initializes the given control and returns the corresponding DOM node.
mxCoordinateAssignment.prototype.initialCoords = function(facade,
model)
Sets up the layout in an initial positioning.
mxCellRenderer.prototype.initialize = function(state)
Initializes the display for the given cell state.
mxCellRenderer.prototype.initializeLabel = function(state)
Initiailzes the label with a suitable container.
mxCellRenderer.prototype.initializeOverlay = function(state,
overlay)
Initializes the given overlay.
mxCellRenderer.prototype.initializeShape = function(state)
Initializes the shape in the given state by calling its init method with the correct container.
mxGraphHierarchyModel.prototype.initialRank = function()
Basic determination of minimum layer ranking by working from from sources or sinks and working through each node in the relevant edge direction.
mxFastOrganicLayout.prototype.initialTemp
Start value of temperature.
mxConnectionHandler.prototype.initialTouchY
Holds the x-coordinate of the intial touch event for tap and hold.
mxCoordinateAssignment.prototype.initialX
The minimum x position node placement starts at
mxImageExport.prototype.initMarkers = function()
Initializes the built-in markers.
mxImageExport.prototype.initShapes = function()
Initializes the built-in shapes.
mxShape.prototype.innerNode
Holds the DOM node that graphically represents this shape.
mxCell.prototype.insert = function(child,
index)
Inserts the specified child into the child array at the specified index and updates the parent reference of the child.
mxDefaultToolbar.prototype.insert = function(vertex,
evt,
target)
Handles a drop by inserting the given vertex into the given parent cell or the default parent if no parent is specified.
Counts the number of times the clipboard data has been inserted.
mxCell.prototype.insertEdge = function(edge,
isOutgoing)
Inserts the specified edge into the edge array and returns the edge.
mxConnectionHandler.prototype.insertEdge = function(parent,
id,
value,
source,
target,
style)
Creates, inserts and returns the new edge for the given parameters.
mxGraph.prototype.insertEdge = function(parent,
id,
value,
source,
target,
style)
Adds a new edge into the given parent mxCell using value as the user object and the given source and target as the terminals of the new edge.
mxEditor.prototype.insertFunction
Specifies the function to be used for inserting new cells into the graph.
mxShape.prototype.insertGradient = function(node)
Inserts the given gradient node.
mxCodec.prototype.insertIntoGraph = function(cell)
Inserts the given cell into its parent and terminal cells.
mxCellRenderer.prototype.insertState = function(state,
nextNode)
Inserts the given state before the given node into its parent.
mxGraph.prototype.insertVertex = function(parent,
id,
value,
x,
y,
width,
height,
style,
relative)
Adds a new vertex into the given parent mxCell using value as the user object and the given coordinates as the mxGeometry of the new vertex.
mxEditor.prototype.installChangeHandler = function (graph)
Installs the listeners required to automatically validate the graph.
mxWindow.prototype.installCloseHandler = function()
Adds the closeImage as a new image node in closeImg and installs the close event.
mxEditor.prototype.installDblClickHandler = function (graph)
Overrides mxGraph.dblClick to invoke dblClickAction on a cell and reset the selection tool in the toolbar.
mxEditor.prototype.installDrillHandler = function (graph)
Installs listeners for dispatching the root event.
mxDefaultToolbar.prototype.installDropHandler = function (img,
dropHandler)
Makes the given img draggable using the given function for handling a drop event.
mxEditor.prototype.installInsertHandler = function (graph)
Installs the handler for invoking insertFunction if one is defined.
mxCellRenderer.prototype.installListeners = function(state)
Installs the event listeners for the given cell state.
mxGraphView.prototype.installListeners = function()
Installs the required listeners in the container.
mxWindow.prototype.installMaximizeHandler = function()
Installs the event listeners required for maximizing the window.
mxWindow.prototype.installMinimizeHandler = function()
Installs the event listeners required for minimizing the window.
mxWindow.prototype.installMoveHandler = function()
Installs the event listeners required for moving the window.
Installs the listeners for the given mxCellState, mxCellOverlay and mxShape that represents the overlay.
mxEditor.prototype.installUndoHandler = function (graph)
Adds the undoManager to the graph model and the view.
mxHierarchicalLayout.prototype.interHierarchySpacing
The spacing buffer between unconnected hierarchies.
mxCoordinateAssignment.prototype.interRankCellSpacing
The minimum distance between cells on adjacent ranks.
mxHierarchicalLayout.prototype.interRankCellSpacing
The spacing buffer added between cell on adjacent layers.
intersection: function (x0,
y0,
x1,
y1,
x2,
y2,
x3,
y3)
Returns the intersection of two lines as an mxPoint.
mxCellMarker.prototype.intersects = function(state,
me)
Returns true if the given coordinate pair intersects the given state.
mxGraph.prototype.intersects = function(state,
x,
y)
Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.
intersects: function(a,
b)
Returns true if the two rectangles intersect.
mxCoordinateAssignment.prototype.intraCellSpacing
The minimum buffer between cells on the same rank.
mxHierarchicalLayout.prototype.intraCellSpacing
The spacing buffer added between cells on the same layer.
mxCellState.prototype.invalid
Specifies if the state is invalid.
Defines the color to be used for the coloring invalid connection previews.
Defines the color to be used for highlighting a invalid target cells for a new or changed connections.
mxGraphView.prototype.invalidate = function(cell,
recurse,
includeEdges,
orderChanged)
Invalidates the state of the given cell, all its descendants and connected edges.
mxCellMarker.prototype.invalidColor
Holds the invalid marker color.
mxCellState.prototype.invalidOrder
Specifies if the cell has an invalid order.
mxCompactTreeLayout.prototype.invert
Specifies if edge directions should be inverted.
mxGraphHierarchyEdge.prototype.invert = function(layer)
Inverts the direction of this internal edge(s)
mxGraph.prototype.invokesStopCellEditing
If true, when editing is to be stopped by way of selection changing, data in diagram changing or other means stopCellEditing is invoked, and changes are saved.
IS_GC: navigator.userAgent.indexOf('Chrome/') >
True if the current browser is Google Chrome.
IS_IE: navigator.userAgent.indexOf('MSIE') >
True if the current browser is Internet Explorer.
IS_IE6: navigator.userAgent.indexOf('MSIE 6') >
True if the current browser is Internet Explorer 6.x.
True if the documents location does not start with http:// or https://.
True if the client is a Mac.
True if -moz-transform is available as a CSS style.
IS_NS: navigator.userAgent.indexOf('Mozilla/') >
True if the current browser is Netscape (including Firefox).
IS_OP: navigator.userAgent.indexOf('Opera/') >
True if the current browser is Opera.
True if -o-transform is available as a CSS style.
IS_SF: navigator.userAgent.indexOf('AppleWebKit/') >
True if the current browser is Safari.
IS_SVG: navigator.userAgent.indexOf('Firefox/') >
True if the browser supports SVG.
True if this client uses a touch interface (no mouse).
IS_VML: navigator.appName.toUpperCase()
True if the browser supports VML.
mxSwimlaneManager.prototype.isAddEnabled = function()
Returns addEnabled.
mxEdgeHandler.prototype.isAddPointEvent = function(evt)
Returns true if the given event is a trigger to add a new point.
mxGraph.prototype.isAllowDanglingEdges = function()
Returns allowDanglingEdges as a boolean.
mxGraphView.prototype.isAllowEval = function()
Returns allowEval.
mxGraph.prototype.isAllowLoops = function()
Returns allowLoops as a boolean.
mxGraph.prototype.isAllowOverlapParent = function(cell)
Returns true if the given cell is allowed to be placed outside of the parents area.
isAltDown: function(evt)
Returns true if the alt key is pressed for the given event.
mxGraphHierarchyNode.prototype.isAncestor = function(otherNode)
mxGraphModel.prototype.isAncestor = function(parent,
child)
Returns true if the given parent is an ancestor of the given child.
isAutoAntiAlias: function()
Returns autoAntiAlias.
mxGraph.prototype.isAutoSizeCell = function(cell)
Returns true if the size of the given cell should automatically be updated after a change of the label.
mxGraph.prototype.isAutoSizeCells = function()
Returns autoSizeCells.
mxXmlRequest.prototype.isBinary = function()
Returns binary.
isBrowserSupported: function()
Returns true if the current browser is supported, that is, if mxClient.IS_VML or mxClient.IS_SVG is true.
mxLayoutManager.prototype.isBubbling = function()
Returns true if a layout should bubble, that is, if the parent layout should be executed whenever a cell layout (layout of the children of a cell) has been executed.
Hook for subclassers to disable support for a given language.
mxGraph.prototype.isCellBendable = function(cell)
Returns true if the given cell is bendable.
mxGraph.prototype.isCellCloneable = function(cell)
Returns true if the given cell is cloneable.
codec.isCellCodec = function()
Returns true since this is a cell codec.
mxCodec.prototype.isCellCodec = function(codec)
Returns true if the given codec is a cell codec.
mxGraph.prototype.isCellCollapsed = function(cell)
Returns true if the given cell is collapsed in this graph.
mxGraph.prototype.isCellConnectable = function(cell)
Returns true if the given cell is connectable in this graph.
mxGraph.prototype.isCellDeletable = function(cell)
Returns true if the given cell is moveable.
mxGraph.prototype.isCellDisconnectable = function(cell,
terminal,
source)
Returns true if the given cell is disconnectable from the source or target terminal.
mxGraph.prototype.isCellEditable = function(cell)
Returns true if the given cell is editable.
mxGraph.prototype.isCellFoldable = function(cell,
collapse)
Returns true if the given cell is foldable.
mxSwimlaneManager.prototype.isCellHorizontal = function(cell)
Returns true if the given cell is horizontal.
mxSpaceManager.prototype.isCellIgnored = function(cell)
Sets the graph that the layouts operate on.
mxGraph.prototype.isCellLocked = function(cell)
Returns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.
mxGraph.prototype.isCellMovable = function(cell)
Returns true if the given cell is moveable.
mxGraph.prototype.isCellResizable = function(cell)
Returns true if the given cell is resizable.
mxGraph.prototype.isCellsBendable = function()
Returns cellsBenadable.
mxGraph.prototype.isCellsCloneable = function()
Returns cellsCloneable, that is, if the graph allows cloning of cells by using control-drag.
mxGraph.prototype.isCellsDeletable = function()
Returns cellsDeletable.
mxGraph.prototype.isCellsDisconnectable = function()
Returns cellsDisconnectable.
mxGraph.prototype.isCellsEditable = function()
Returns cellsEditable.
mxGraph.prototype.isCellSelectable = function(cell)
Returns true if the given cell is selectable.
mxGraph.prototype.isCellSelected = function(cell)
Returns true if the given cell is selected.
mxSpaceManager.prototype.isCellShiftable = function(cell)
Sets the graph that the layouts operate on.
mxGraph.prototype.isCellsLocked = function()
Returns true if the given cell may not be moved, sized, bended, disconnected, edited or selected.
mxGraph.prototype.isCellsMovable = function()
Returns cellsMovable.
mxGraph.prototype.isCellsResizable = function()
Returns cellsResizable.
mxGraph.prototype.isCellsSelectable = function()
Returns cellsSelectable.
mxGraph.prototype.isCellVisible = function(cell)
Returns true if the given cell is visible in this graph.
mxGraphHandler.prototype.isCloneEnabled = function()
Returns cloneEnabled.
mxGraph.prototype.isCloneEvent = function(evt)
Returns true if the given event is a clone event.
mxGraph.prototype.isCloneInvalidEdges = function()
Returns cloneInvalidEdges as a boolean.
mxCell.prototype.isCollapsed = function()
Returns true if the cell is collapsed.
mxGraphModel.prototype.isCollapsed = function(cell)
Returns true if the given mxCell is collapsed.
isCompressed: function()
Returns compressed.
mxCell.prototype.isConnectable = function()
Returns true if the cell is connectable.
mxGraph.prototype.isConnectable = function(connectable)
Returns true if the connectionHandler is enabled.
mxGraphModel.prototype.isConnectable = function(cell)
Returns true if the given mxCell is connectable.
mxConnectionHandler.prototype.isConnectableCell = function(cell)
Returns true if the given cell is connectable.
mxEdgeHandler.prototype.isConnectableCell = function(cell)
Returns true if the given cell is connectable.
mxGraph.prototype.isConnectableEdges = function()
Returns connectableEdges as a boolean.
mxConnectionHandler.prototype.isConnecting = function()
Returns true if the source terminal has been clicked and a new connection is currently being previewed.
mxGraph.prototype.isConstrainChild = function(cell)
Returns true if the given cell should be kept inside the bounds of its parent according to the rules defined by getOverlap and isAllowOverlapParent.
mxGraph.prototype.isConstrainChildren = function()
Returns constrainChildren.
mxGraph.prototype.isConstrainedEvent = function(evt)
Returns true if the given mouse event should be aligned to the grid.
isConsumed: function(evt)
Returns true if the event has been consumed using consume.
mxEventObject.prototype.isConsumed = function()
Returns true if the event has been consumed.
mxMouseEvent.prototype.isConsumed = function()
Returns consumed.
mxGraphView.prototype.isContainerEvent = function(evt)
Returns true if the event origin is one of the drawing panes or containers of the view.
isControlDown: function(evt)
Returns true if the control key is pressed for the given event.
mxKeyHandler.prototype.isControlDown = function(evt)
Returns true if the control key is pressed.
mxGraphModel.prototype.isCreateIds = function()
Returns createIds.
mxConnectionHandler.prototype.isCreateTarget = function()
Returns createTarget.
mxGraphHandler.prototype.isDelayedSelection = function(cell)
Hook to return true for delayed selections.
mxGraph.prototype.isDisconnectOnMove = function()
Returns disconnectOnMove as a boolean.
mxGraph.prototype.isDropEnabled = function()
Returns dropEnabled as a boolean.
mxCell.prototype.isEdge = function()
Returns true if the cell is an edge.
mxGraphAbstractHierarchyCell.prototype.isEdge = function()
Returns whether or not this cell is an edge
mxGraphHierarchyEdge.prototype.isEdge = function()
Returns true.
mxGraphModel.prototype.isEdge = function(cell)
Returns true if the given cell is an edge.
mxGraphLayout.prototype.isEdgeIgnored = function(edge)
Returns a boolean indicating if the given mxCell should be ignored by the algorithm.
mxGraph.prototype.isEdgeLabelsMovable = function()
Returns edgeLabelsMovable.
mxGraph.prototype.isEdgeValid = function(edge,
source,
target)
Checks if the return value of getEdgeValidationError for the given arguments is null.
mxGraph.prototype.isEditing = function(cell)
Returns true if the given cell is currently being edited.
mxCellStatePreview.prototype.isEmpty = function()
Returns true if this contains no entries.
isEmpty: function()
Returns true if the clipboard currently has not data stored.
mxGraphSelectionModel.prototype.isEmpty = function()
Returns true if no cells are currently selected.
mxUndoableEdit.prototype.isEmpty = function()
Returns true if the this edit contains no changes.
mxUndoManager.prototype.isEmpty = function()
Returns true if the history is empty.
mxText.prototype.isEmptyString = function(text)
Returns true if the given string is empty or contains only whitespace.
mxAutoSaveManager.prototype.isEnabled = function()
Returns true if events are handled.
mxCellMarker.prototype.isEnabled = function()
Returns true if events are handled.
mxConnectionHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxConstraintHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxDragSource.prototype.isEnabled = function()
Returns enabled.
mxGraph.prototype.isEnabled = function()
Returns true if the graph is enabled.
mxGraphHandler.prototype.isEnabled = function()
Returns enabled.
mxKeyHandler.prototype.isEnabled = function()
Returns true if events are handled.
mxLayoutManager.prototype.isEnabled = function()
Returns true if events are handled.
mxOutline.prototype.isEnabled = function()
Returns true if events are handled.
mxPopupMenu.prototype.isEnabled = function()
Returns true if events are handled.
mxRubberband.prototype.isEnabled = function()
Returns true if events are handled.
mxSelectionCellsHandler.prototype.isEnabled = function()
Returns enabled.
mxSpaceManager.prototype.isEnabled = function()
Returns true if events are handled.
mxSwimlaneManager.prototype.isEnabled = function()
Returns true if events are handled.
mxTooltipHandler.prototype.isEnabled = function()
Returns true if events are handled.
isEnabled: function()
Returns enabled.
mxGuide.prototype.isEnabledForEvent = function(evt)
Returns true if the guide should be enabled for the given native event.
mxGraph.prototype.isEnterStopsCellEditing = function()
Returns enterStopsCellEditing.
mxGraph.prototype.isEscapeEnabled = function()
Returns escapeEnabled.
mxEventSource.prototype.isEventsEnabled = function()
Returns eventsEnabled.
codec.isExcluded = function(obj,
attr,
value,
isWrite)
Excludes user objects that are XML nodes.
mxObjectCodec.prototype.isExcluded = function(obj,
attr,
value,
write)
Returns true if the given attribute is to be ignored by the codec.
mxGraph.prototype.isExtendParent = function(cell)
Returns true if the parent of the given cell should be extended if the child has been resized so that it overlaps the parent.
mxGraph.prototype.isExtendParents = function()
Returns extendParents.
mxSpaceManager.prototype.isExtendParents = function()
Returns true if events are handled.
mxGraph.prototype.isExtendParentsOnAdd = function()
Returns extendParentsOnAdd.
isFoEnabled: function()
Returns foEnabled.
mxGraph.prototype.isForceMarqueeEvent = function(evt)
Returns true if the given event forces marquee selection.
mxKeyHandler.prototype.isGraphEvent = function(evt)
Returns true if the event should be processed by this handler, that is, if the event source is either the target, one of its direct children, a descendant of the mxGraph.container, or the mxGraph.cellEditor of the graph.
mxDragSource.prototype.isGridEnabled = function()
Returns gridEnabled.
mxGraph.prototype.isGridEnabled = function()
Returns gridEnabled as a boolean.
mxGraph.prototype.isGridEnabledEvent = function(evt)
Returns true if the given mouse event should be aligned to the grid.
mxDragSource.prototype.isGuidesEnabled = function()
Returns guidesEnabled.
mxEdgeHandler.prototype.isHandleEnabled = function(index)
Creates the shape used to display the given bend.
mxEdgeHandler.prototype.isHandleVisible = function(index)
Returns true if the handle at the given index is visible.
mxCellEditor.prototype.isHideLabel = function(state)
Returns true if the label should be hidden while the cell is being edited.
mxTooltipHandler.prototype.isHideOnHover = function()
Returns hideOnHover.
mxCompactTreeLayout.prototype.isHorizontal = function()
Returns horizontal.
mxPartitionLayout.prototype.isHorizontal = function()
Returns horizontal.
mxStackLayout.prototype.isHorizontal = function()
Returns horizontal.
mxSwimlaneManager.prototype.isHorizontal = function()
Returns horizontal.
mxCellMarker.prototype.isHotspotEnabled = function()
Returns true if hotspot is used in intersects.
mxGraph.prototype.isHtmlLabel = function(cell)
Returns true if the label must be rendered as HTML markup.
mxGraph.prototype.isHtmlLabels = function()
Returns htmlLabels.
mxConnectionHandler.prototype.isImmediateConnectSource = function(state)
Returns true if a tap on the given source state should immediately start connecting.
mxGraph.prototype.isInvokesStopCellEditing = function()
Returns invokesStopCellEditing.
mxGraph.prototype.isLabelClipped = function(cell)
Returns true if the overflow portion of labels should be hidden.
mxCellRenderer.prototype.isLabelEvent = function(state,
evt)
Returns true if the event is for the label of the given state.
mxGraph.prototype.isLabelMovable = function(cell)
Returns true if the given edges’s label is moveable.
mxGraphModel.prototype.isLayer = function(cell)
Returns true if isRoot returns true for the parent of the given cell.
isLeftMouseButton: function(evt)
Returns true if the left mouse button is pressed for the given event.
mxGraph.prototype.isLoop = function(state)
Returns true if the given cell state is a loop.
mxPopupMenu.prototype.isMenuShowing = function()
Returns true if the menu is showing.
isMetaDown: function(evt)
Returns true if the meta key is pressed for the given event.
mxShape.prototype.isMixedModeHtml = function()
Used to determine if a shape can be rendered using createHtml in mixed mode Html without compromising the display accuracy.
mxCellEditor.prototype.isModified = function()
Returns modified.
mxEditor.prototype.isModified = function ()
Returns modified.
mxGraph.prototype.isMouseDown
Holds the state of the mouse button.
mxFastOrganicLayout.prototype.isMoveable
Array of booleans representing the movable states of the vertices.
mxGraphHandler.prototype.isMoveEnabled = function()
Returns moveEnabled.
mxConnectionHandler.prototype.isMoveIconToFrontForState = function(state)
Returns true if the state has a HTML label in the graph’s container, otherwise it returns moveIconFront.
mxGraph.prototype.isMultigraph = function()
Returns multigraph as a boolean.
isNode: function(value,
nodeName,
attributeName,
attributeValue)
Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.
isNumeric: function(str)
Returns true if the specified value is numeric, that is, if it is not null, not an empty string, not a HEX number and isNaN returns false.
mxGraph.prototype.isOrthogonal = function(edge)
Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.
mxPanningHandler.prototype.isPanningEnabled = function()
Returns panningEnabled.
mxPanningHandler.prototype.isPanningTrigger = function(me)
Returns true if the given event is a panning trigger for the optional given cell.
isPopupTrigger: function(evt)
Returns true if the event is a popup trigger.
mxMouseEvent.prototype.isPopupTrigger = function()
Returns true if the event is a popup trigger.
mxPopupMenu.prototype.isPopupTrigger = function(me)
Returns true if the given event is a popupmenu trigger for the optional given cell.
mxGraph.prototype.isPort = function(cell)
Returns true if the given cell is a “port”, that is, when connecting to it, the cell returned by getTerminalForPort should be used as the terminal and the port should be referenced by the ID in either the mxConstants.STYLE_SOURCE_PORT or the or the mxConstants.STYLE_TARGET_PORT.
mxGraph.prototype.isPortsEnabled = function()
Returns portsEnabled as a boolean.
mxEditor.prototype.isPropertiesVisible = function ()
Returns true if the properties dialog is currently visible.
mxXmlRequest.prototype.isReady = function()
Returns true if the response is ready.
codec.isReference = function(obj,
attr,
value,
isWrite)
Returns true for the child attribute if the child cell had a previous parent or if we’re reading the child as an attribute rather than a child node, in which case it’s always a reference.
mxObjectCodec.prototype.isReference = function(obj,
attr,
value,
write)
Returns true if the given fieldname is to be treated as a textual reference (ID).
mxGraphHandler.prototype.isRemoveCellsFromParent = function()
Returns removeCellsFromParent.
mxEdgeHandler.prototype.isRemovePointEvent = function(evt)
Returns true if the given event is a trigger to remove a point.
mxGraphView.prototype.isRendering = function()
Returns rendering.
mxWindow.prototype.isResizable = function()
Returns true if the window is resizable.
mxGraph.prototype.isResizeContainer = function()
Returns resizeContainer.
mxSwimlaneManager.prototype.isResizeEnabled = function()
Returns resizeEnabled.
mxGraphHierarchyEdge.prototype.isReversed
Whether or not the direction of this edge has been reversed internally to create a DAG for the hierarchical layout
isRightMouseButton: function(evt)
Returns true if the right mouse button was pressed.
mxGraphModel.prototype.isRoot = function(cell)
Returns true if the given cell is the root of the model and a non-null value.
mxGraphView.prototype.isScrollEvent = function(evt)
Returns true if the event origin is one of the scrollbars of the container in IE.
mxGraphSelectionModel.prototype.isSelected = function(cell)
Returns true if the given mxCell is selected.
mxGraphHandler.prototype.isSelectEnabled = function()
Returns selectEnabled.
mxEdgeHandler.prototype.isSelectionDashed = function()
Returns mxConstants.EDGE_SELECTION_DASHED.
mxVertexHandler.prototype.isSelectionDashed = function()
Returns mxConstants.VERTEX_SELECTION_DASHED.
mxGraph.prototype.isSelectionEmpty = function()
Returns true if the selection is empty.
mxCellRenderer.prototype.isShapeEvent = function(state,
evt)
Returns true if the event is for the shape of the given state.
isShiftDown: function(evt)
Returns true if the shift key is pressed for the given event.
mxSpaceManager.prototype.isShiftDownwards = function()
Returns true if events are handled.
mxSpaceManager.prototype.isShiftRightwards = function()
Returns true if events are handled.
mxUndoableEdit.prototype.isSignificant = function()
Returns significant.
mxGraphSelectionModel.prototype.isSingleSelection = function()
Returns singleSelection as a boolean.
mxVertexHandler.prototype.isSizerVisible = function(index)
Returns true if the sizer for the given index is visible.
mxMouseEvent.prototype.isSource = function(shape)
Returns true if the given mxShape is the source of evt.
mxGraph.prototype.isSplitEnabled = function()
Returns splitEnabled as a boolean.
mxGraph.prototype.isSplitTarget = function(target,
cells,
evt)
Returns true if the given edge may be splitted into two edges with the given cell as a new terminal between the two.
mxConnectionHandler.prototype.isStartEvent = function(me)
Returns true if the given mouse down event should start this handler.
mxConnectionHandler.prototype.isStopEvent = function(me)
Returns true if the given mouse up event should stop this handler.
mxText.prototype.isStyleSet = function(style)
Returns true if the given font style (bold, italic etc) is true in this shape’s fontStyle.
mxGraph.prototype.isSwimlane = function (cell)
Returns true if the given cell is a swimlane in the graph.
mxSwimlaneManager.prototype.isSwimlaneIgnored = function(swimlane)
Returns true if the given swimlane should be ignored.
mxGraph.prototype.isSwimlaneNesting = function()
Returns swimlaneNesting as a boolean.
mxGraph.prototype.isSwimlaneSelectionEnabled = function()
Returns swimlaneSelectionEnabled as a boolean.
mxGraph.prototype.isTerminalPointMovable = function(cell,
source)
Returns true if the given terminal point is movable.
isTextEnabled: function()
Returns textEnabled.
isTextEnabled: function()
Returns textEnabled.
mxGraph.prototype.isToggleEvent = function(evt)
Returns true if the given event is a toggle event.
mxGraph.prototype.isValidAncestor = function(cell,
parent,
recurse)
Returns whether or not the specified parent is a valid ancestor of the specified cell, either direct or indirectly based on whether ancestor recursion is enabled.
mxGraph.prototype.isValidConnection = function(source,
target)
Returns true if the given target cell is a valid target for source.
mxGraph.prototype.isValidDropTarget = function(cell,
cells,
evt)
Returns true if the given cell is a valid drop target for the specified cells.
mxSession.prototype.isValidResponse = function(req)
Returns true if the response data in the given mxXmlRequest is valid.
mxGraph.prototype.isValidRoot = function(cell)
Returns true if the given cell is a valid root for the cell display hierarchy.
mxConnectionHandler.prototype.isValidSource = function(cell)
Returns mxGraph.isValidSource for the given source terminal.
mxGraph.prototype.isValidSource = function(cell)
Returns true if the given cell is a valid source for new connections.
mxCellMarker.prototype.isValidState = function(state)
Returns true if the given mxCellState is a valid state.
mxConnectionHandler.prototype.isValidTarget = function(cell)
Returns true.
mxGraph.prototype.isValidTarget = function(cell)
Returns isValidSource for the given cell.
mxCell.prototype.isVertex = function()
Returns true if the cell is a vertex.
mxGraphAbstractHierarchyCell.prototype.isVertex = function()
Returns whether or not this cell is a node
mxGraphHierarchyNode.prototype.isVertex = function()
Returns true.
mxGraphModel.prototype.isVertex = function(cell)
Returns true if the given cell is a vertex.
mxCompactTreeLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored as a vertex.
mxFastOrganicLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored as a vertex.
mxGraphLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored by the algorithm.
mxGraph.prototype.isVertexLabelsMovable = function()
Returns vertexLabelsMovable.
mxGraphLayout.prototype.isVertexMovable = function(cell)
Returns a boolean indicating if the given mxCell is movable or bendable by the algorithm.
mxCell.prototype.isVisible = function()
Returns true if the cell is visibile.
mxGraphModel.prototype.isVisible = function(cell)
Returns true if the given mxCell is visible.
isVisible: function()
Returns true if the console is visible.
mxWindow.prototype.isVisible = function()
Returns true if the window is visible.
mxPath.prototype.isVml = function()
Returns true if format is vml.
isVml: function(node)
Returns true if the given node is in the VML namespace.
mxGraph.prototype.isWrapping = function(cell)
This enables wrapping for HTML labels.
mxPopupMenu.prototype.itemCount
Contains the number of times addItem has been called for a new menu.
mxFastOrganicLayout.prototype.iteration
Current iteration count.
mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement
The total number of crossings found in the best configuration so far
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables.html b/docs/js-api/index/Variables.html new file mode 100644 index 000000000..2629eb16f --- /dev/null +++ b/docs/js-api/index/Variables.html @@ -0,0 +1,38 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
A
 absoluteOffset, mxCellState
 absolutePoints, mxCellState
 actions, mxEditor
 ACTIVATE, mxEvent
 ADD, mxEvent
 ADD_CELLS, mxEvent
 ADD_OVERLAY, mxEvent
 ADD_VERTEX, mxEvent
 addEnabled
 addPipe, mxArrow
 AFTER_ADD_VERTEX, mxEvent
 aliases, mxCodecRegistry
 align, mxCellOverlay
 ALIGN_BOTTOM, mxConstants
 ALIGN_CELLS, mxEvent
 ALIGN_CENTER, mxConstants
 ALIGN_LEFT, mxConstants
 ALIGN_MIDDLE, mxConstants
 ALIGN_RIGHT, mxConstants
 ALIGN_TOP, mxConstants
 allowAutoPanning, mxGraph
 allowCrispMarkers, mxConnector
 allowDanglingEdges, mxGraph
 allowedToRun, mxFastOrganicLayout
 allowEval, mxGraphView
 allowHandleBoundsCheck
 allowLoops, mxGraph
 allowNegativeCoordinates, mxGraph
 alreadyConnectedResource, mxGraph
 alt, mxImageBundle
 alternateBounds, mxGeometry
 alternateEdgeStyle, mxGraph
 ARROW_BLOCK, mxConstants
 ARROW_CLASSIC, mxConstants
 ARROW_DIAMOND, mxConstants
 ARROW_OPEN, mxConstants
 ARROW_OVAL, mxConstants
 ARROW_SIZE, mxConstants
 ARROW_SPACING, mxConstants
 ARROW_WIDTH, mxConstants
 askZoomResource, mxEditor
 aspect, mxStencil
 async, mxXmlRequest
 attr, mxMultiplicity
 autoAntiAlias, mxSvgCanvas2D
 autoExpand, mxPopupMenu
 autoExtend, mxGraph
 autoOrigin, mxPrintPreview
 autoSaveDelay, mxAutoSaveManager
 autoSaveThreshold, mxAutoSaveManager
 autoSaveThrottle, mxAutoSaveManager
 autoscroll, mxDragSource
 autoScroll, mxGraph
 autoSizeCells, mxGraph
B
 backgroundImage, mxGraph
 basePath, mxClient
 baseUrl, mxUrlConverter
 BEFORE_ADD_VERTEX, mxEvent
 BEFORE_UNDO, mxEvent
 BEGIN_UPDATE, mxEvent
 bends, mxEdgeHandler
 bgNodes, mxStencil
 binary, mxXmlRequest
 body, mxForm
 border
 borderColor, mxPrintPreview
 bounds, mxShape
 bubbling, mxLayoutManager
 buffer, mxLog
+ +
mxCellState.prototype.absoluteOffset
mxPoint that holds the absolute offset.
mxCellState.prototype.absolutePoints
Holds an array of mxPoints that represent the absolute points of an edge.
mxEditor.prototype.actions
Maps from actionnames to actions, which are functions taking the editor and the cell as arguments.
Specifies the event name for activate.
Specifies the event name for add.
Specifies the event name for addCells.
Specifies the event name for addOverlay.
Specifies the event name for addVertex.
mxEdgeHandler.prototype.addEnabled
Specifies if adding bends by shift-click is enabled.
mxSwimlaneManager.prototype.addEnabled
Specifies if newly added cells should be resized to match the size of their existing siblings.
mxArrow.prototype.addPipe
Specifies if a SVG path should be created around any path to increase the tolerance for mouse events.
Specifies the event name for afterAddVertex.
Maps from classnames to codecnames.
mxCellOverlay.prototype.align
Holds the horizontal alignment for the overlay.
Constant for bottom vertical alignment.
Specifies the event name for alignCells.
Constant for center horizontal alignment.
Constant for left horizontal alignment.
Constant for middle vertical alignment.
Constant for right horizontal alignment.
Constant for top vertical alignment.
mxGraph.prototype.allowAutoPanning
Specifies if panning via panGraph should be allowed to implement autoscroll if no scrollbars are available in scrollPointToVisible.
mxConnector.prototype.allowCrispMarkers
Specifies if mxShape.crisp should be allowed for markers.
mxGraph.prototype.allowDanglingEdges
Specifies if edges with disconnected terminals are allowed in the graph.
mxFastOrganicLayout.prototype.allowedToRun
Boolean flag that specifies if the layout is allowed to run.
mxGraphView.prototype.allowEval
Specifies if string values in cell styles should be evaluated using mxUtils.eval.
mxEdgeHandler.prototype.allowHandleBoundsCheck
Specifies if the bounds of handles should be used for hit-detection in IE Default is true.
mxVertexHandler.prototype.allowHandleBoundsCheck
Specifies if the bounds of handles should be used for hit-detection in IE Default is true.
mxGraph.prototype.allowLoops
Specifies if loops (aka self-references) are allowed.
mxGraph.prototype.allowNegativeCoordinates
Specifies if negative coordinates for vertices are allowed.
mxGraph.prototype.alreadyConnectedResource
Specifies the resource key for the error message to be displayed in non-multigraphs when two vertices are already connected.
Specifies if the fallback representation should be returned.
mxGeometry.prototype.alternateBounds
Stores alternate values for x, y, width and height in a rectangle.
mxGraph.prototype.alternateEdgeStyle
Specifies the alternate edge style to be used if the main control point on an edge is being doubleclicked.
Constant for block arrow markers.
Constant for classic arrow markers.
Constant for diamond arrow markers.
Constant for open arrow markers.
Constant for oval arrow markers.
Defines the size of the arrowhead in the arrow shape.
Defines the spacing between the arrow shape and its terminals.
Defines the width of the arrow shape.
mxEditor.prototype.askZoomResource
Specifies the resource key for the zoom dialog.
mxStencil.prototype.aspect
Holds the aspect of the shape.
mxXmlRequest.prototype.async
Boolean indicating if the request is asynchronous.
mxMultiplicity.prototype.attr
Optional string that specifies the attributename to be passed to mxUtils.isNode to check if the rule applies to a cell.
var autoAntiAlias
Specifies if anti aliasing should be disabled for rectangles and orthogonal paths.
mxPopupMenu.prototype.autoExpand
Specifies if submenus should be expanded on mouseover.
mxGraph.prototype.autoExtend
Specifies if the size of the graph should be automatically extended if the mouse goes near the container edge while dragging.
mxPrintPreview.prototype.autoOrigin
Specifies if the origin should be automatically computed based on the top, left corner of the actual diagram contents.
mxAutoSaveManager.prototype.autoSaveDelay
Minimum amount of seconds between two consecutive autosaves.
mxAutoSaveManager.prototype.autoSaveThreshold
Minimum amount of ignored changes before an autosave.
mxAutoSaveManager.prototype.autoSaveThrottle
Minimum amount of seconds between two consecutive autosaves triggered by more than autoSaveThreshhold changes within a timespan of less than autoSaveDelay seconds.
mxDragSource.prototype.autoscroll
Specifies if the graph should scroll automatically.
mxGraph.prototype.autoScroll
Specifies if the graph should automatically scroll if the mouse goes near the container edge while dragging.
mxGraph.prototype.autoSizeCells
Specifies if the graph should automatically update the cell size after an edit.
+ + + +
mxGraph.prototype.backgroundImage
Specifies the mxImage to be returned by getBackgroundImage.
Basepath for all URLs in the core without trailing slash.
var baseUrl
Specifies the base URL to be used as a prefix for relative URLs.
Specifies the event name for beforeAddVertex.
Specifies the event name for beforeUndo.
Specifies the event name for beginUpdate.
mxEdgeHandler.prototype.bends
Holds the mxShapes that represent the points.
Holds the XML node with the stencil description.
mxXmlRequest.prototype.binary
Boolean indicating if the request is binary.
mxForm.prototype.body
Holds the DOM node that represents the tbody (table body).
mxGraph.prototype.border
Border to be added to the bottom and right side when the container is being resized after the graph has been changed.
mxOutline.prototype.border
Border to be added at the bottom and right.
mxPanningManager.prototype.border
Border to handle automatic panning inside the component.
mxPartitionLayout.prototype.border
Integer that specifies the absolute inset in pixels for the parent that contains the children.
mxPrintPreview.prototype.border
The border inset around each side of every page in the preview.
mxStackLayout.prototype.border
Border to be added if fill is true.
mxPrintPreview.prototype.borderColor
Holds the color value for the page border.
mxShape.prototype.bounds
Holds the mxRectangle that specifies the bounds of this shape.
mxLayoutManager.prototype.bubbling
Specifies if the layout should bubble along the cell hierarchy.
Buffer for pre-initialized content.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables10.html b/docs/js-api/index/Variables10.html new file mode 100644 index 000000000..04d74f97b --- /dev/null +++ b/docs/js-api/index/Variables10.html @@ -0,0 +1,38 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
P
 PAGE_FORMAT_A4_PORTRAIT, mxConstants
 PAGE_FORMAT_LETTER_PORTRAIT, mxConstants
 pageBreakColor, mxGraph
 pageBreakDashed, mxGraph
 pageBreaksVisible, mxGraph
 pageCount, mxPrintPreview
 pageFormat
 pageScale, mxGraph
 pageSelector, mxPrintPreview
 pageVisible, mxGraph
 PAN, mxEvent
 PAN_END, mxEvent
 PAN_START, mxEvent
 panDx, mxGraph
 panDy, mxGraph
 panningEnabled, mxPanningHandler
 parallelEdgeSpacing
 params, mxXmlRequest
 parent
 parentBorder, mxHierarchicalLayout
 parentsChanged, mxCompactTreeLayout
 password, mxXmlRequest
 path, mxPath
 PATH_SEPARATOR, mxCellPath
 perimeter, mxConnectionConstraint
 PERIMETER_ELLIPSE, mxConstants
 PERIMETER_RECTANGLE, mxConstants
 PERIMETER_RHOMBUS, mxConstants
 PERIMETER_TRIANGLE, mxConstants
 point, mxConnectionConstraint
 pointImage, mxConstraintHandler
 points
 polling, mxSession
 popupHandler, mxEditor
 portsEnabled, mxGraph
 POST, mxEvent
 postfix, mxGraphModel
 postParameterName, mxEditor
 preferHtml, mxEdgeHandler
 preferModeHtml
 preferPageSize, mxGraph
 prefHozEdgeSep
 prefix, mxGraphModel
 prefVertEdgeOff
 preserveImageAspect, mxImageShape
 previewColor, mxGraphHandler
 previewElement, mxDragSource
 previewEnabled, mxPanningHandler
 previousLayerConnectedCache, mxCoordinateAssignment
 previousLayerConnectedCells, mxGraphAbstractHierarchyCell
 printOverlays, mxPrintPreview
 properties, mxEventObject
 propertiesHeight, mxEditor
 propertiesResource, mxEditor
 propertiesWidth, mxEditor
R
 radius
 radiusSquared, mxFastOrganicLayout
 rankBottomY, mxCoordinateAssignment
 rankIndex, WeightedCellSorter
 ranks, mxGraphHierarchyModel
 rankTopY, mxCoordinateAssignment
 rankWidths, mxCoordinateAssignment
 rankY, mxCoordinateAssignment
 RECEIVE, mxEvent
 received, mxSession
 RECTANGLE_ROUNDING_FACTOR, mxConstants
 REDO, mxEvent
 redone, mxUndoableEdit
 REFRESH, mxEvent
 refreshHandler, mxSelectionCellsHandler
 relative, mxGeometry
 REMOVE_CELLS, mxEvent
 REMOVE_CELLS_FROM_PARENT, mxEvent
 REMOVE_OVERLAY, mxEvent
 removeCellsFromParent, mxGraphHandler
 removeEnabled, mxEdgeHandler
 renderHint, mxGraph
 rendering, mxGraphView
 RENDERING_HINT_EXACT, mxConstants
 RENDERING_HINT_FASTER, mxConstants
 RENDERING_HINT_FASTEST, mxConstants
 replaceLinefeeds, mxText
 request, mxXmlRequest
 resetEdges
 resetEdgesOnConnect, mxGraph
 resetEdgesOnMove, mxGraph
 resetEdgesOnResize, mxGraph
 resetHandler
 resetViewOnRootChange, mxGraph
 RESIZE, mxEvent
 RESIZE_CELLS, mxEvent
 RESIZE_END, mxEvent
 RESIZE_START, mxEvent
 resizeContainer, mxGraph
 resizeEnabled, mxSwimlaneManager
 resizeHandler, mxSpaceManager
 resizeLast, mxStackLayout
 resizeParent
 resizeVertices, mxPartitionLayout
 resources, mxResources
 RESUME, mxEvent
 reverse, mxObjectCodec
 root, mxGraphModel
 ROOT, mxEvent
 roots
 roundedCrispSvg, mxShape
+ +
Defines the rectangle for the A4 portrait page format.
Defines the rectangle for the Letter portrait page format.
mxGraph.prototype.pageBreakColor
Specifies the color for page breaks.
mxGraph.prototype.pageBreakDashed
Specifies the page breaks should be dashed.
mxGraph.prototype.pageBreaksVisible
Specifies if a dashed line should be drawn between multiple pages.
mxPrintPreview.prototype.pageCount
Holds the actual number of pages in the preview.
mxGraph.prototype.pageFormat
Specifies the page format for the background page.
mxPrintPreview.prototype.pageFormat
Holds the mxRectangle that defines the page format.
mxGraph.prototype.pageScale
Specifies the scale of the background page.
mxPrintPreview.prototype.pageSelector
Boolean that specifies if the page selector should be displayed.
mxGraph.prototype.pageVisible
Specifies if the background page should be visible.
Specifies the event name for pan.
Specifies the event name for panEnd.
Specifies the event name for panStart.
mxGraph.prototype.panDx
Current horizontal panning value.
mxGraph.prototype.panDy
Current vertical panning value.
mxPanningHandler.prototype.panningEnabled
Specifies if panning should be enabled.
mxCoordinateAssignment.prototype.parallelEdgeSpacing
The distance between each parallel edge on each ranks for long edges.
mxHierarchicalLayout.prototype.parallelEdgeSpacing
The distance between each parallel edge on each ranks for long edges
mxXmlRequest.prototype.params
Holds the form encoded data for the POST request.
mxCell.prototype.parent
Reference to the parent cell.
mxGraphHierarchyModel.prototype.parent
The parent cell whose children are being laid out
mxGraphLayout.prototype.parent
The parent cell of the layout, if any
mxHierarchicalLayout.prototype.parentBorder
The border to be added around the children if the parent is to be resized using resizeParent.
mxCompactTreeLayout.prototype.parentsChanged
A set of the parents that need updating based on children process as part of the layout
mxXmlRequest.prototype.password
Specifies the password to be used for authentication.
mxPath.prototype.path
Contains the textual representation of the path as an array.
Defines the separator between the path components.
mxConnectionConstraint.prototype.perimeter
Boolean that specifies if the point should be projected onto the perimeter of the terminal.
Name of the ellipse perimeter.
Name of the rectangle perimeter.
Name of the rhombus perimeter.
PERIMETER_TRIANGLE: 'trianglePerimeter' }
Name of the triangle perimeter.
mxConnectionConstraint.prototype.point
mxPoint that specifies the fixed location of the connection point.
mxConstraintHandler.prototype.pointImage
mxImage to be used as the image for fixed connection points.
mxGeometry.prototype.points
Array of mxPoints which specifies the control points along the edge.
mxShape.prototype.points
Holds the array of mxPoints that specify the points of this shape.
mxSession.prototype.polling
mxEditor.prototype.popupHandler
Holds a mxDefaultPopupMenu for displaying popupmenus.
mxGraph.prototype.portsEnabled
Specifies if ports are enabled.
Specifies the event name for post.
mxGraphModel.prototype.postfix
Defines the postfix of new Ids.
mxEditor.prototype.postParameterName
Specifies if the name of the post parameter that contains the diagram data in a post request to the server.
mxEdgeHandler.prototype.preferHtml
Specifies if bends should be added to the graph container.
mxActor.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxConnector.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxCylinder.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxDoubleEllipse.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxEllipse.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxLine.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxRhombus.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxShape.prototype.preferModeHtml
Specifies if createHtml should be used in prefer Html mode.
mxStencilShape.prototype.preferModeHtml
Always prefers VML in prefer HTML mode for stencil shapes.
mxRhombus.prototype.preferModeHtml
Overrides the parent value with false, meaning it will draw as VML in prefer Html mode.
mxGraph.prototype.preferPageSize
Specifies if the graph size should be rounded to the next page number in sizeDidChange.
mxCompactTreeLayout.prototype.prefHozEdgeSep
The preferred horizontal distance between edges exiting a vertex
mxCoordinateAssignment.prototype.prefHozEdgeSep
The preferred horizontal distance between edges exiting a vertex
mxGraphModel.prototype.prefix
Defines the prefix of new Ids.
mxCompactTreeLayout.prototype.prefVertEdgeOff
The preferred vertical offset between edges exiting a vertex
mxCoordinateAssignment.prototype.prefVertEdgeOff
The preferred vertical offset between edges exiting a vertex
mxImageShape.prototype.preserveImageAspect
Switch to preserve image aspect.
mxGraphHandler.prototype.previewColor
Specifies the color of the preview shape.
mxDragSource.prototype.previewElement
Optional mxRectangle that specifies the unscaled size of the preview.
mxPanningHandler.prototype.previewEnabled
Specifies if the panning should be previewed.
mxCoordinateAssignment.prototype.previousLayerConnectedCache
A store of connections to the layer below for speed
mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells
A cached version of the cells this cell connects to on the next layer down
mxPrintPreview.prototype.printOverlays
Specifies if overlays should be printed.
mxEventObject.prototype.properties
Holds the properties as an associative array.
mxEditor.prototype.propertiesHeight
Specifies the height of the properties window in pixels.
mxEditor.prototype.propertiesResource
Specifies the resource key for the properties window title.
mxEditor.prototype.propertiesWidth
Specifies the width of the properties window in pixels.
+ + + +
mxCircleLayout.prototype.radius
Integer specifying the size of the radius.
mxFastOrganicLayout.prototype.radius
The approximate radius of each cell, nodes only.
mxFastOrganicLayout.prototype.radiusSquared
The approximate radius squared of each cell, nodes only.
mxCoordinateAssignment.prototype.rankBottomY
Internal cache of bottom-most value of Y for each rank
WeightedCellSorter.prototype.rankIndex
The index this cell is in the model rank.
mxGraphHierarchyModel.prototype.ranks
Mapping from rank number to actual rank
mxCoordinateAssignment.prototype.rankTopY
Internal cache of top-most values of Y for each rank
mxCoordinateAssignment.prototype.rankWidths
The width of all the ranks
mxCoordinateAssignment.prototype.rankY
The Y-coordinate of all the ranks
Specifies the event name for receive.
mxSession.prototype.received
Total number of received bytes.
Defines the rounding factor for rounded rectangles in percent between 0 and 1.
Specifies the event name for redo.
mxUndoableEdit.prototype.redone
Specifies if this edit has been redone.
Specifies the event name for refresh.
mxSelectionCellsHandler.prototype.refreshHandler
Keeps a reference to an event listener for later removal.
mxGeometry.prototype.relative
Specifies if the coordinates in the geometry are to be interpreted as relative coordinates.
Specifies the event name for removeCells.
Specifies the event name for removeCellsFromParent.
Specifies the event name for removeOverlay.
mxGraphHandler.prototype.removeCellsFromParent
Specifies if cells may be moved out of their parents.
mxEdgeHandler.prototype.removeEnabled
Specifies if removing bends by shift-click is enabled.
mxGraph.prototype.renderHint
RenderHint as it was passed to the constructor.
mxGraphView.prototype.rendering
Specifies if shapes should be created, updated and destroyed using the methods of mxCellRenderer in graph.
Defines the exact rendering hint.
Defines the faster rendering hint.
Defines the fastest rendering hint.
mxText.prototype.replaceLinefeeds
Specifies if linefeeds in HTML labels should be replaced with BR tags.
mxXmlRequest.prototype.request
Holds the inner, browser-specific request object.
mxCircleLayout.prototype.resetEdges
Specifies if all edge points of traversed edges should be removed.
mxCompactTreeLayout.prototype.resetEdges
Specifies if all edge points of traversed edges should be removed.
mxFastOrganicLayout.prototype.resetEdges
Specifies if all edge points of traversed edges should be removed.
mxGraph.prototype.resetEdgesOnConnect
Specifies if edge control points should be reset after the the edge has been reconnected.
mxGraph.prototype.resetEdgesOnMove
Specifies if edge control points should be reset after the move of a connected cell.
mxGraph.prototype.resetEdgesOnResize
Specifies if edge control points should be reset after the resize of a connected cell.
mxCellHighlight.prototype.resetHandler
Holds the handler that automatically invokes reset if the highlight should be hidden.
mxDefaultToolbar.prototype.resetHandler
Reference to the function used to reset the toolbar.
mxGraph.prototype.resetViewOnRootChange
Specifies if the scale and translate should be reset if the root changes in the model.
Specifies the event name for resize.
Specifies the event name for resizeCells.
Specifies the event name for resizeEnd.
Specifies the event name for resizeStart.
mxGraph.prototype.resizeContainer
Specifies if the container should be resized to the graph size when the graph size has changed.
mxSwimlaneManager.prototype.resizeEnabled
Specifies if resizing of swimlanes should be handled.
mxSpaceManager.prototype.resizeHandler
Holds the function that handles the move event.
mxStackLayout.prototype.resizeLast
If the last element should be resized to fill out the parent.
mxCompactTreeLayout.prototype.resizeParent
If the parents should be resized to match the width/height of the children.
mxHierarchicalLayout.prototype.resizeParent
Specifies if the parent should be resized after the layout so that it contains all the child cells.
mxStackLayout.prototype.resizeParent
If the parent should be resized to match the width/height of the stack.
mxPartitionLayout.prototype.resizeVertices
Boolean that specifies if vertices should be resized.
Associative array that maps from keys to values.
Specifies the event name for suspend.
mxObjectCodec.prototype.reverse
Maps from from XML attribute names to fieldnames.
mxGraphModel.prototype.root
Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells.
Specifies the event name for root.
mxGraphHierarchyModel.prototype.roots
Store of roots of this hierarchy model, these are real graph cells, not internal cells
mxHierarchicalLayout.prototype.roots
Holds the array of mxGraphLayouts that this layout contains.
mxShape.prototype.roundedCrispSvg
Specifies if crisp rendering should be enabled for rounded shapes.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables11.html b/docs/js-api/index/Variables11.html new file mode 100644 index 000000000..03723640e --- /dev/null +++ b/docs/js-api/index/Variables11.html @@ -0,0 +1,34 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
S
 SAVE, mxEvent
 scale
 SCALE, mxEvent
 SCALE_AND_TRANSLATE, mxEvent
 scaleGrid, mxGraphHandler
 scanRanksFromSinks, mxGraphHierarchyModel
 scrollOnMove, mxGraphHandler
 segments, mxCellState
 select, mxConnectionHandler
 SELECT, mxEvent
 selectEnabled, mxGraphHandler
 SELECTION_DASHED, mxConstants
 selectionModel, mxGraph
 selectOnPopup, mxPanningHandler
 send, mxSession
 sent, mxSession
 SESSION, mxEvent
 SHADOW_OFFSET_X, mxConstants
 SHADOW_OFFSET_Y, mxConstants
 SHADOW_OPACITY, mxConstants
 SHADOWCOLOR, mxConstants
 shape
 SHAPE_ACTOR, mxConstants
 SHAPE_ARROW, mxConstants
 SHAPE_CLOUD, mxConstants
 SHAPE_CONNECTOR, mxConstants
 SHAPE_CYLINDER, mxConstants
 SHAPE_DOUBLE_ELLIPSE, mxConstants
 SHAPE_ELLIPSE, mxConstants
 SHAPE_HEXAGON, mxConstants
 SHAPE_IMAGE, mxConstants
 SHAPE_LABEL, mxConstants
 SHAPE_LINE, mxConstants
 SHAPE_RECTANGLE, mxConstants
 SHAPE_RHOMBUS, mxConstants
 SHAPE_SWIMLANE, mxConstants
 SHAPE_TRIANGLE, mxConstants
 shapes
 sharedDiv, mxRubberband
 shiftDownwards, mxSpaceManager
 shiftKeys, mxKeyHandler
 shiftRightwards, mxSpaceManager
 SHOW, mxEvent
 showViewport, mxOutline
 significant, mxUndoableEdit
 significantRemoteChanges, mxSession
 singleSelection, mxGraphSelectionModel
 singleSizer, mxVertexHandler
 size, mxUndoManager
 SIZE, mxEvent
 sizerImage, mxOutline
 smartSeparators, mxPopupMenu
 snapToTerminals, mxEdgeHandler
 source
 sourcePoint, mxGeometry
 SOURCESCANSTARTRANK, mxGraphHierarchyModel
 spacing
 SPLIT_EDGE, mxEvent
 splitEnabled, mxGraph
 src, mxImage
 START_EDITING, mxEvent
 startOffset, mxShape
 state
 states, mxGuide
 status, mxEditor
 stencil, mxStencilShape
 step, mxMorphing
 steps, mxMorphing
 STEPSIZE, mxClipboard
 strokedBackground, mxCylinder
 strokewidth, mxStencil
 style
 STYLE_ALIGN, mxConstants
 STYLE_ARCSIZE, mxConstants
 STYLE_AUTOSIZE, mxConstants
 STYLE_BENDABLE, mxConstants
 STYLE_CLONEABLE, mxConstants
 STYLE_DASHED, mxConstants
 STYLE_DELETABLE, mxConstants
 STYLE_DIRECTION, mxConstants
 STYLE_EDGE, mxConstants
 STYLE_EDITABLE, mxConstants
 STYLE_ELBOW, mxConstants
 STYLE_ENDARROW, mxConstants
 STYLE_ENDFILL, mxConstants
 STYLE_ENDSIZE, mxConstants
 STYLE_ENTRY_PERIMETER, mxConstants
 STYLE_ENTRY_X, mxConstants
 STYLE_ENTRY_Y, mxConstants
 STYLE_EXIT_PERIMETER, mxConstants
 STYLE_EXIT_X, mxConstants
 STYLE_EXIT_Y, mxConstants
 STYLE_FILLCOLOR, mxConstants
 STYLE_FOLDABLE, mxConstants
 STYLE_FONTCOLOR, mxConstants
 STYLE_FONTFAMILY, mxConstants
 STYLE_FONTSIZE, mxConstants
 STYLE_FONTSTYLE, mxConstants
 STYLE_GLASS, mxConstants
 STYLE_GRADIENT_DIRECTION, mxConstants
 STYLE_GRADIENTCOLOR, mxConstants
 STYLE_HORIZONTAL, mxConstants
 STYLE_IMAGE, mxConstants
 STYLE_IMAGE_ALIGN, mxConstants
 STYLE_IMAGE_ASPECT, mxConstants
 STYLE_IMAGE_BACKGROUND, mxConstants
 STYLE_IMAGE_BORDER, mxConstants
 STYLE_IMAGE_FLIPH, mxConstants
 STYLE_IMAGE_FLIPV, mxConstants
 STYLE_IMAGE_HEIGHT, mxConstants
 STYLE_IMAGE_VERTICAL_ALIGN, mxConstants
 STYLE_IMAGE_WIDTH, mxConstants
 STYLE_INDICATOR_COLOR, mxConstants
 STYLE_INDICATOR_DIRECTION, mxConstants
 STYLE_INDICATOR_GRADIENTCOLOR, mxConstants
 STYLE_INDICATOR_HEIGHT, mxConstants
 STYLE_INDICATOR_IMAGE, mxConstants
 STYLE_INDICATOR_SHAPE, mxConstants
 STYLE_INDICATOR_SPACING, mxConstants
 STYLE_INDICATOR_STROKECOLOR, mxConstants
 STYLE_INDICATOR_WIDTH, mxConstants
 STYLE_LABEL_BACKGROUNDCOLOR, mxConstants
 STYLE_LABEL_BORDERCOLOR, mxConstants
 STYLE_LABEL_PADDING, mxConstants
 STYLE_LABEL_POSITION, mxConstants
 STYLE_LOOP, mxConstants
 STYLE_MOVABLE, mxConstants
 STYLE_NOEDGESTYLE, mxConstants
 STYLE_NOLABEL, mxConstants
 STYLE_OPACITY, mxConstants
 STYLE_ORTHOGONAL, mxConstants
 STYLE_OVERFLOW, mxConstants
 STYLE_PERIMETER, mxConstants
 STYLE_PERIMETER_SPACING, mxConstants
 STYLE_PORT_CONSTRAINT, mxConstants
 STYLE_RESIZABLE, mxConstants
 STYLE_ROTATION, mxConstants
 STYLE_ROUNDED, mxConstants
 STYLE_ROUTING_CENTER_X, mxConstants
 STYLE_ROUTING_CENTER_Y, mxConstants
 STYLE_SEGMENT, mxConstants
 STYLE_SEPARATORCOLOR, mxConstants
 STYLE_SHADOW, mxConstants
 STYLE_SHAPE, mxConstants
 STYLE_SMOOTH, mxConstants
 STYLE_SOURCE_PERIMETER_SPACING, mxConstants
 STYLE_SOURCE_PORT, mxConstants
 STYLE_SPACING, mxConstants
 STYLE_SPACING_BOTTOM, mxConstants
 STYLE_SPACING_LEFT, mxConstants
 STYLE_SPACING_RIGHT, mxConstants
 STYLE_SPACING_TOP, mxConstants
 STYLE_STARTARROW, mxConstants
 STYLE_STARTFILL, mxConstants
 STYLE_STARTSIZE, mxConstants
 STYLE_STENCIL_FLIPH, mxConstants
 STYLE_STENCIL_FLIPV, mxConstants
 STYLE_STROKECOLOR, mxConstants
 STYLE_STROKEWIDTH, mxConstants
 STYLE_TARGET_PERIMETER_SPACING, mxConstants
 STYLE_TARGET_PORT, mxConstants
 STYLE_TEXT_OPACITY, mxConstants
 STYLE_VERTICAL_ALIGN, mxConstants
 STYLE_VERTICAL_LABEL_POSITION, mxConstants
 STYLE_WHITE_SPACE, mxConstants
 stylesheet, mxGraph
 submenuImage, mxPopupMenu
 SUSPEND, mxEvent
 suspended, mxOutline
 SVG_STROKE_TOLERANCE, mxShape
 swimlaneIndicatorColorAttribute, mxGraph
 swimlaneNesting, mxGraph
 swimlaneRequired, mxEditor
 swimlaneSelectionEnabled, mxGraph
 swimlaneSpacing, mxEditor
+ +
Specifies the event name for open.
mxGraphView.prototype.scale
Specifies the scale.
mxPrintPreview.prototype.scale
Holds the scale of the print preview.
mxShape.prototype.scale
Holds the scale in which the shape is being painted.
Specifies the event name for scale.
Specifies the event name for scaleAndTranslate.
mxGraphHandler.prototype.scaleGrid
Specifies if the grid should be scaled.
mxGraphHierarchyModel.prototype.scanRanksFromSinks
Whether the rank assignment is done from the sinks or sources.
mxGraphHandler.prototype.scrollOnMove
Specifies if the view should be scrolled so that a moved cell is visible.
mxCellState.prototype.segments
Array of numbers that represent the cached length of each segment of the edge.
mxConnectionHandler.prototype.select
Specifies if new edges should be selected.
Specifies the event name for select.
mxGraphHandler.prototype.selectEnabled
Specifies if selecting is enabled.
Defines the dashed state to be used for the vertex selection border.
mxGraph.prototype.selectionModel
Holds the mxGraphSelectionModel that models the current selection.
mxPanningHandler.prototype.selectOnPopup
Specifies if cells should be selected if a popupmenu is displayed for them.
mxSession.prototype.sent
Total number of sent bytes.
Specifies the event name for session.
Specifies the x-offset of the shadow.
Specifies the y-offset of the shadow.
Defines the opacity for shadows.
Defines the color to be used to draw shadows in shapes and windows.
mxCellState.prototype.shape
Holds the mxShape that represents the cell graphically.
mxEdgeHandler.prototype.shape
Holds the mxShape that represents the preview edge.
mxGraphHandler.prototype.shape
Reference to the mxShape that represents the preview.
Name under which mxActor is registered in mxCellRenderer.
Name under which mxArrow is registered in mxCellRenderer.
Name under which mxCloud is registered in mxCellRenderer.
Name under which mxConnector is registered in mxCellRenderer.
Name under which mxCylinder is registered in mxCellRenderer.
Name under which mxDoubleEllipse is registered in mxCellRenderer.
Name under which mxEllipse is registered in mxCellRenderer.
Name under which mxHexagon is registered in mxCellRenderer.
Name under which mxImageShape is registered in mxCellRenderer.
Name under which mxLabel is registered in mxCellRenderer.
Name under which mxLine is registered in mxCellRenderer.
Name under which mxRectangleShape is registered in mxCellRenderer.
Name under which mxRhombus is registered in mxCellRenderer.
Name under which mxSwimlane is registered in mxCellRenderer.
Name under which mxTriangle is registered in mxCellRenderer.
mxCellRenderer.prototype.shapes
Array that maps from shape names to shape constructors.
mxImageExport.prototype.shapes
Holds implementations for the built-in shapes.
mxRubberband.prototype.sharedDiv
Holds the DIV element which is used to display the rubberband.
mxSpaceManager.prototype.shiftDownwards
Specifies if event handling is enabled.
mxKeyHandler.prototype.shiftKeys
Maps from keycodes to functions for pressed shift keys.
mxSpaceManager.prototype.shiftRightwards
Specifies if event handling is enabled.
Specifies the event name for show.
mxOutline.prototype.showViewport
Specifies a viewport rectangle should be shown.
mxUndoableEdit.prototype.significant
Specifies if the undoable change is significant.
mxSession.prototype.significantRemoteChanges
Whether remote changes should be significant in the local command history.
mxGraphSelectionModel.prototype.singleSelection
Specifies if only one selected item at a time is allowed.
mxVertexHandler.prototype.singleSizer
Specifies if only one sizer handle at the bottom, right corner should be used.
mxUndoManager.prototype.size
Maximum command history size.
Specifies the event name for size.
mxOutline.prototype.sizerImage
Optional mxImage to be used for the sizer.
mxPopupMenu.prototype.smartSeparators
Specifies if separators should only be added if a menu item follows them.
mxEdgeHandler.prototype.snapToTerminals
Specifies if waypoints should snap to the routing centers of terminals.
mxCell.prototype.source
Reference to the source terminal.
mxGraphHierarchyEdge.prototype.source
The node this edge is sourced at
mxMultiplicity.prototype.source
Boolean that specifies if the rule is applied to the source or target terminal of an edge.
mxUndoableEdit.prototype.source
Specifies the source of the edit.
mxGeometry.prototype.sourcePoint
Defines the source mxPoint of the edge.
mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK
High value to start source layering scan rank value from.
mxCellHighlight.prototype.spacing
Specifies the spacing between the highlight for vertices and the vertex.
mxDefaultToolbar.prototype.spacing
Defines the spacing between existing and new vertices in gridSize units when a new vertex is dropped on an existing cell.
mxLabel.prototype.spacing
Default value for spacing.
mxParallelEdgeLayout.prototype.spacing
Defines the spacing between the parallels.
mxPartitionLayout.prototype.spacing
Integer that specifies the absolute spacing in pixels between the children.
mxStackLayout.prototype.spacing
Specifies the spacing between the cells.
Specifies the event name for splitEdge.
mxGraph.prototype.splitEnabled
Specifies if dropping onto edges should be enabled.
mxImage.prototype.src
String that specifies the URL of the image.
Specifies the event name for startEditing.
mxShape.prototype.startOffset
Specifies the offset in pixels from the first point in points and the actual start of the shape.
mxCellHighlight.prototype.state
Reference to the mxCellState.
mxEdgeHandler.prototype.state
Reference to the mxCellState being modified.
mxMouseEvent.prototype.state
Holds the optional mxCellState associated with this event.
mxStencilShape.prototype.state
Holds the mxCellState associated with this shape.
mxVertexHandler.prototype.state
Reference to the mxCellState being modified.
mxGuide.prototype.states
Contains the mxCellStates that are used for alignment.
mxEditor.prototype.status
DOM container that holds the statusbar.
mxStencilShape.prototype.stencil
Holds the mxStencil that defines the shape.
mxMorphing.prototype.step
Contains the current step.
mxMorphing.prototype.steps
Specifies the maximum number of steps for the morphing.
Defines the step size to offset the cells after each paste operation.
mxCylinder.prototype.strokedBackground
Specifies if the background should be stroked.
mxStencil.prototype.strokewidth
Holds the strokewidth direction from the description.
mxCell.prototype.style
Holds the style as a string of the form [(stylename|key=value);].
mxCellState.prototype.style
Contains an array of key, value pairs that represent the style of the cell.
mxShape.prototype.style
Holds the style of the cell state that corresponds to this shape.
Defines the key for the align style.
Defines the rounding factor for a rounded rectangle in percent (without the percent sign).
Defines the key for the autosize style.
Defines the key for the bendable style.
Defines the key for the cloneable style.
Defines the key for the endSize style.
Defines the key for the deletable style.
Defines the key for the direction style.
Defines the key for the edge style.
Defines the key for the editable style.
Defines the key for the elbow style.
Defines the key for the end arrow marker.
Defines the key for the endFill style.
Defines the key for the endSize style.
Defines if the perimeter should be used to find the exact entry point along the perimeter of the target.
Defines the key for the horizontal relative coordinate connection point of an edge with its target terminal.
Defines the key for the vertical relative coordinate connection point of an edge with its target terminal.
Defines if the perimeter should be used to find the exact entry point along the perimeter of the source.
Defines the key for the horizontal relative coordinate connection point of an edge with its source terminal.
Defines the key for the vertical relative coordinate connection point of an edge with its source terminal.
Defines the key for the fill color.
Defines the key for the foldable style.
Defines the key for the fontColor style.
Defines the key for the fontFamily style.
Defines the key for the fontSize style (in points).
Defines the key for the fontStyle style.
Defines the key for the glass style.
Defines the key for the gradient direction.
Defines the key for the gradient color.
Defines the key for the horizontal style.
Defines the key for the image style.
Defines the key for the align style.
Defines the key for the image aspect style.
Defines the key for the image background color.
Defines the key for the image border color.
Defines the key for the horizontal image flip.
Defines the key for the vertical image flip.
Defines the key for the imageHeight style.
Defines the key for the verticalAlign style.
Defines the key for the imageWidth style.
Defines the key for the indicatorColor style.
Defines the key for the indicatorDirection style.
Defines the key for the indicatorGradientColor style.
Defines the key for the indicator height.
Defines the key for the indicator image used within an mxLabel.
Defines the key for the indicator shape used within an mxLabel.
The defines the key for the spacing between the label and the indicator in mxLabel.
Defines the key for the indicator stroke color in mxLabel.
Defines the key for the indicator width.
Defines the key for the label background color.
Defines the key for the label border color.
Defines the key for the label padding, ie.
Defines the key for the horizontal label position of vertices.
Defines the key for the loop style.
Defines the key for the movable style.
Defines the key for the noEdgeStyle style.
Defines the key for the noLabel style.
Defines the key for the opacity style.
Defines if the connection points on either end of the edge should be computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location.
Defines the key for the overflow style.
Defines the key for the perimeter style.
Defines the key for the perimeter spacing.
Defines the direction(s) that edges are allowed to connect to cells in.
Defines the key for the resizable style.
Defines the key for the rotation style.
Defines the key for the rounded style.
Defines the key for the horizontal routing center.
Defines the key for the vertical routing center.
Defines the key for the segment style.
Defines the key for the separatorColor style.
Defines the key for the shadow style.
Defines the key for the shape.
An experimental style for edges.
Defines the key for the source perimeter spacing.
Defines the ID of the cell that should be used for computing the perimeter point of the source for an edge.
Defines the key for the spacing.
Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).
Defines the key for the spacingLeft style.
Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).
Defines the key for the spacingTop style.
Defines the key for the start arrow marker.
Defines the key for the startFill style.
Defines the key for the startSize style.
Defines the key for the horizontal stencil flip.
Defines the key for the vertical stencil flip.
Defines the key for the strokeColor style.
Defines the key for the strokeWidth style.
Defines the key for the target perimeter spacing.
Defines the ID of the cell that should be used for computing the perimeter point of the target for an edge.
Defines the key for the text opacity style.
Defines the key for the verticalAlign style.
Defines the key for the vertical label position of vertices.
Defines the key for the white-space style.
mxGraph.prototype.stylesheet
Holds the mxStylesheet that defines the appearance of the cells.
mxPopupMenu.prototype.submenuImage
URL of the image to be used for the submenu icon.
Specifies the event name for suspend.
mxOutline.prototype.suspended
Optional boolean flag to suspend updates.
mxShape.prototype.SVG_STROKE_TOLERANCE
Event-tolerance for SVG strokes (in px).
mxGraph.prototype.swimlaneIndicatorColorAttribute
The attribute used to find the color for the indicator if the indicator color is set to ‘swimlane’.
mxGraph.prototype.swimlaneNesting
Specifies if nesting of swimlanes is allowed.
mxEditor.prototype.swimlaneRequired
Specifies if new cells must be inserted into an existing swimlane.
mxGraph.prototype.swimlaneSelectionEnabled
Specifies if swimlanes should be selectable via the content if the mouse is released.
mxEditor.prototype.swimlaneSpacing
Specifies the spacing between swimlanes if automatic layout is turned on in layoutDiagram.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables12.html b/docs/js-api/index/Variables12.html new file mode 100644 index 000000000..acc1a8d80 --- /dev/null +++ b/docs/js-api/index/Variables12.html @@ -0,0 +1,38 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
T
 table, mxForm
 tapAndHoldDelay, mxConnectionHandler
 tapAndHoldEnabled, mxConnectionHandler
 tapAndHoldInProgress, mxConnectionHandler
 tapAndHoldTolerance, mxConnectionHandler
 tapAndHoldValid, mxConnectionHandler
 target
 TARGET_HIGHLIGHT_COLOR, mxConstants
 targetConnectImage, mxConnectionHandler
 targetPoint, mxGeometry
 tasks, mxEditor
 tasksResource, mxEditor
 tasksTop, mxEditor
 tasksWindowImage, mxEditor
 temp, mxGraphAbstractHierarchyCell
 temperature, mxFastOrganicLayout
 template, mxObjectCodec
 templates, mxEditor
 terminalDistance, mxCellState
 text, mxCellState
 textarea, mxCellEditor
 textEnabled
 textNode, mxCellEditor
 thread, mxAnimation
 tightenToSource
 title
 TOGGLE_CELLS, mxEvent
 tolerance
 toolbar
 tooltip, mxCellOverlay
 TOOLTIP_VERTICAL_OFFSET, mxConstants
 TRACE, mxLog
 translate
 TRANSLATE, mxEvent
 TRANSLATE_CONTROL_POINTS, mxGeometry
 trigger, mxCellEditor
 type, mxMultiplicity
 typeError, mxMultiplicity
U
 UNDO, mxEvent
 undoManager, mxEditor
 undone, mxUndoableEdit
 UNGROUP_CELLS, mxEvent
 UP, mxEvent
 UPDATE_CELL_SIZE, mxEvent
 updateCursor, mxGraphHandler
 updateDefaultMode, mxToolbar
 updateHandler, mxLayoutManager
 updateLevel, mxGraphModel
 updateOnPan, mxOutline
 updateStyle, mxGraphView
 updatingSelectionResource, mxGraphSelectionModel
 url, mxXmlRequest
 urlHelp, mxEditor
 urlImage, mxEditor
 urlInit
 urlNotify
 urlPoll
 urlPost, mxEditor
 useBoundingBox, mxGraphLayout
 useGrid, mxPanningHandler
 useInputOrigin, mxFastOrganicLayout
 useLeftButtonForPanning, mxPanningHandler
 useLeftButtonForPopup, mxPopupMenu
 usePopupTrigger, mxPanningHandler
 username, mxXmlRequest
 useScrollbarsForPanning, mxGraph
+ +
mxForm.prototype.table
Holds the DOM node that represents the table.
mxConnectionHandler.prototype.tapAndHoldDelay
Specifies the time for a tap and hold.
mxConnectionHandler.prototype.tapAndHoldEnabled
Specifies if tap and hold should be used for starting connections on touch-based devices.
mxConnectionHandler.prototype.tapAndHoldInProgress
True if the timer for tap and hold events is running.
mxConnectionHandler.prototype.tapAndHoldTolerance
Specifies the tolerance for a tap and hold.
mxConnectionHandler.prototype.tapAndHoldValid
True as long as the timer is running and the touch events stay within the given tapAndHoldTolerance.
mxCell.prototype.target
Reference to the target terminal.
mxGraphHierarchyEdge.prototype.target
The node this edge targets
mxKeyHandler.prototype.target
Reference to the target DOM, that is, the DOM node where the key event listeners are installed.
Defines the color to be used for highlighting a target cell for a new or changed connection.
mxConnectionHandler.prototype.targetConnectImage
Specifies if the connect icon should be centered on the target state while connections are being previewed.
mxGeometry.prototype.targetPoint
Defines the target mxPoint of the edge.
mxEditor.prototype.tasks
Holds the mxWindow created in showTasks.
mxEditor.prototype.tasksResource
Specifies the resource key for the tasks window title.
mxEditor.prototype.tasksTop
Specifies the top coordinate of the tasks window in pixels.
mxEditor.prototype.tasksWindowImage
Icon for the tasks window.
mxGraphAbstractHierarchyCell.prototype.temp
Temporary variable for general use.
mxFastOrganicLayout.prototype.temperature
Temperature to limit displacement at later stages of layout.
mxObjectCodec.prototype.template
Holds the template object associated with this codec.
mxEditor.prototype.templates
Maps from names to protoype cells to be used in the toolbar for inserting new cells into the diagram.
mxCellState.prototype.terminalDistance
Caches the distance between the end points for an edge.
mxCellState.prototype.text
Holds the mxText that represents the label of the cell.
mxCellEditor.prototype.textarea
Holds the input textarea.
var textEnabled
Specifies if text output should be enabled.
var textEnabled
Specifies if text output should be enabled.
mxCellEditor.prototype.textNode
Reference to the label DOM node that has been hidden.
mxAnimation.prototype.thread
Reference to the thread while the animation is running.
mxGraphHierarchyModel.prototype.tightenToSource
Whether or not to tighten the assigned ranks of vertices up towards the source cells.
mxHierarchicalLayout.prototype.tightenToSource
Whether or not to tighten the assigned ranks of vertices up towards the source cells.
mxPrintPreview.prototype.title
Holds the title of the preview window.
mxWindow.prototype.title
Reference to the DOM node (TD) that contains the title.
Specifies the event name for toggleCells.
mxEdgeHandler.prototype.tolerance
Optional tolerance for hit-detection in getHandleForEvent.
mxGraph.prototype.tolerance
Tolerance for a move to be handled as a single click.
mxVertexHandler.prototype.tolerance
Optional tolerance for hit-detection in getHandleForEvent.
mxDefaultToolbar.prototype.toolbar
Holds the internal mxToolbar.
mxEditor.prototype.toolbar
Holds a mxDefaultToolbar for displaying the toolbar.
mxCellOverlay.prototype.tooltip
Holds the optional string to be used as the tooltip.
Defines the vertical offset for the tooltip.
Specified if the output for enter and leave should be visible in the console.
mxGraphView.prototype.translate
mxPoint that specifies the current translation.
mxPath.prototype.translate
mxPoint that specifies the translation of the complete path.
Specifies the event name for translate.
mxGeometry.prototype.TRANSLATE_CONTROL_POINTS
Global switch to translate the points in translate.
mxCellEditor.prototype.trigger
Reference to the event that was used to start editing.
mxMultiplicity.prototype.type
Defines the type of the source or target terminal.
mxMultiplicity.prototype.typeError
Holds the localized error message to be displayed if the type of the neighbor for a connection does not match the rule.
+ + + +
Specifies the event name for undo.
mxEditor.prototype.undoManager
Holds an mxUndoManager for the command history.
mxUndoableEdit.prototype.undone
Specifies if this edit has been undone.
Specifies the event name for ungroupCells.
Specifies the event name for up.
Specifies the event name for updateCellSize.
mxGraphHandler.prototype.updateCursor
Specifies if a move cursor should be shown if the mouse is ove a movable cell.
mxToolbar.prototype.updateDefaultMode
Boolean indicating if the default mode should be the last selected switch mode or the first inserted switch mode.
mxLayoutManager.prototype.updateHandler
Holds the function that handles the endUpdate event.
mxGraphModel.prototype.updateLevel
Counter for the depth of nested transactions.
mxOutline.prototype.updateOnPan
Specifies if update should be called for mxEvent.PAN in the source graph.
mxGraphView.prototype.updateStyle
Specifies if the style should be updated in each validation step.
mxGraphSelectionModel.prototype.updatingSelectionResource
Specifies the resource key for the status message while the selection is being updated.
mxXmlRequest.prototype.url
Holds the target URL of the request.
mxEditor.prototype.urlHelp
Specifies the URL to be used for the contents of the Online Help window.
mxEditor.prototype.urlImage
Specifies the URL to be used for creating a bitmap of the graph in the image action.
mxEditor.prototype.urlInit
Specifies the URL to be used for initializing the session.
mxSession.prototype.urlInit
URL to initialize the session.
mxEditor.prototype.urlNotify
Specifies the URL to be used for notifying the backend in the session.
mxSession.prototype.urlNotify
URL to send changes to the backend.
mxEditor.prototype.urlPoll
Specifies the URL to be used for polling in the session.
mxSession.prototype.urlPoll
URL for polling the backend.
mxEditor.prototype.urlPost
Specifies the URL to be used for posting the diagram to a backend in save.
mxGraphLayout.prototype.useBoundingBox
Boolean indicating if the bounding box of the label should be used if its available.
mxPanningHandler.prototype.useGrid
Specifies if the panning steps should be aligned to the grid size.
mxFastOrganicLayout.prototype.useInputOrigin
Specifies if the top left corner of the input cells should be the origin of the layout result.
mxPanningHandler.prototype.useLeftButtonForPanning
Specifies if panning should be active for the left mouse button.
mxPopupMenu.prototype.useLeftButtonForPopup
Specifies if popupmenus should be activated by clicking the left mouse button.
mxPanningHandler.prototype.usePopupTrigger
Specifies if the isPopupTrigger should also be used for panning.
mxXmlRequest.prototype.username
Specifies the username to be used for authentication.
mxGraph.prototype.useScrollbarsForPanning
Specifies if scrollbars should be used for panning in panGraph if any scrollbars are available.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables13.html b/docs/js-api/index/Variables13.html new file mode 100644 index 000000000..a2a1bc23a --- /dev/null +++ b/docs/js-api/index/Variables13.html @@ -0,0 +1,50 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
V
 VALID_COLOR, mxConstants
 validating, mxEditor
 validColor, mxCellMarker
 validNeighbors, mxMultiplicity
 validNeighborsAllowed, mxMultiplicity
 validState, mxCellMarker
 value
 values, mxStyleRegistry
 VERSION, mxClient
 vertex, mxCell
 VERTEX_SELECTION_COLOR, mxConstants
 VERTEX_SELECTION_STROKEWIDTH, mxConstants
 vertexArray, mxFastOrganicLayout
 vertexLabelsMovable, mxGraph
 vertexMapper, mxGraphHierarchyModel
 vertical, mxGuide
 verticalAlign, mxCellOverlay
 verticalTextDegree, mxText
 view
 visible
 visibleSourceState, mxCellState
 visibleTargetState, mxCellState
 visited, WeightedCellSorter
 vmlNodes
W
 w0, mxStencil
 WARN, mxLog
 warningImage, mxGraph
 waypointsEnabled, mxConnectionHandler
 weightedValue, WeightedCellSorter
 widestRank, mxCoordinateAssignment
 widestRankValue, mxCoordinateAssignment
 width
 wnd, mxPrintPreview
 wrap, mxStackLayout
X
 x
 x0
Y
 y
 y0
Z
 zIndex
 zoomFactor, mxGraph
+ +
Defines the color to be used for the coloring valid connection previews.
mxEditor.prototype.validating
Specifies if mxGraph.validateGraph should automatically be invoked after each change.
mxCellMarker.prototype.validColor
Holds the valid marker color.
mxMultiplicity.prototype.validNeighbors
Holds an array of strings that specify the type of neighbor for which this rule applies.
mxMultiplicity.prototype.validNeighborsAllowed
Boolean indicating if the list of validNeighbors are those that are allowed for this rule or those that are not allowed for this rule.
mxCellMarker.prototype.validState
Holds the marked mxCellState if it is valid.
mxCell.prototype.value
Holds the user object.
mxMultiplicity.prototype.value
Optional string that specifies the value of the attribute to be passed to mxUtils.isNode to check if the rule applies to a cell.
Maps from strings to objects.
Contains the current version of the mxGraph library.
mxCell.prototype.vertex
Specifies whether the cell is a vertex.
Defines the color to be used for the selection border of vertices.
Defines the strokewidth to be used for vertex selections.
mxFastOrganicLayout.prototype.vertexArray
An array of all vertices to be laid out.
mxGraph.prototype.vertexLabelsMovable
Specifies the return value for vertices in isLabelMovable.
mxGraphHierarchyModel.prototype.vertexMapper
Map from graph vertices to internal model nodes.
mxGuide.prototype.vertical
Specifies if vertical guides are enabled.
mxCellOverlay.prototype.verticalAlign
Holds the vertical alignment for the overlay.
mxText.prototype.verticalTextDegree
Specifies the degree to be used for vertical text.
mxCellState.prototype.view
Reference to the enclosing mxGraphView.
mxGraph.prototype.view
Holds the mxGraphView that caches the mxCellStates for the cells.
mxTemporaryCellStates.prototype.view
Holds the width of the rectangle.
mxCell.prototype.visible
Specifies whether the cell is visible.
mxWindow.prototype.visible
Boolean flag that represents the visible state of the window.
mxCellState.prototype.visibleSourceState
Caches the visible source terminal state.
mxCellState.prototype.visibleTargetState
Caches the visible target terminal state.
WeightedCellSorter.prototype.visited
Whether or not this cell has been visited in the current assignment.
mxConnector.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxCylinder.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxDoubleEllipse.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxLabel.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxLine.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
mxShape.prototype.vmlNodes
Array if VML node names to fix in IE8 standards mode.
mxSwimlane.prototype.vmlNodes
Adds local references to mxShape.vmlNodes.
+ + + +
mxStencil.prototype.w0
Holds the width of the shape.
Specifies if the output for warn should be visible in the console.
mxGraph.prototype.warningImage
Specifies the mxImage for the image to be used to display a warning overlay.
mxConnectionHandler.prototype.waypointsEnabled
Specifies if single clicks should add waypoints on the new edge.
WeightedCellSorter.prototype.weightedValue
The weighted value of the cell stored.
mxCoordinateAssignment.prototype.widestRank
The rank that has the widest x position
mxCoordinateAssignment.prototype.widestRankValue
The X-coordinate of the edge of the widest rank
mxGraphAbstractHierarchyCell.prototype.width
The width of this cell
mxImage.prototype.width
Integer that specifies the width of the image.
mxRectangle.prototype.width
Holds the width of the rectangle.
mxPrintPreview.prototype.wnd
Reference to the preview window.
mxStackLayout.prototype.wrap
Value at which a new column or row should be created.
+ + + +
mxGraphAbstractHierarchyCell.prototype.x
The x position of this cell for each layer it occupies
mxPoint.prototype.x
Holds the x-coordinate of the point.
mxCircleLayout.prototype.x0
Integer specifying the left coordinate of the circle.
mxStackLayout.prototype.x0
Specifies the horizontal origin of the layout.
+ + + +
mxGraphAbstractHierarchyCell.prototype.y
The y position of this cell for each layer it occupies
mxPoint.prototype.y
Holds the y-coordinate of the point.
mxCircleLayout.prototype.y0
Integer specifying the top coordinate of the circle.
mxPrintPreview.prototype.y0
Holds the vertical offset of the output.
mxStackLayout.prototype.y0
Specifies the vertical origin of the layout.
+ + + +
mxPopupMenu.prototype.zIndex
Specifies the zIndex for the popupmenu and its shadow.
mxTooltipHandler.prototype.zIndex
Specifies the zIndex for the tooltip and its shadow.
mxGraph.prototype.zoomFactor
Specifies the factor used for zoomIn and zoomOut.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables2.html b/docs/js-api/index/Variables2.html new file mode 100644 index 000000000..43cb4c270 --- /dev/null +++ b/docs/js-api/index/Variables2.html @@ -0,0 +1,34 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
C
 captureDocumentGesture, mxGraphView
 cell
 CELL_CONNECTED, mxEvent
 cellEditor, mxGraph
 cellLocation, mxFastOrganicLayout
 cellRenderer, mxGraph
 cells
 CELLS_ADDED, mxEvent
 CELLS_FOLDED, mxEvent
 CELLS_MOVED, mxEvent
 CELLS_ORDERED, mxEvent
 CELLS_REMOVED, mxEvent
 CELLS_RESIZED, mxEvent
 CELLS_TOGGLED, mxEvent
 cellsBendable, mxGraph
 cellsCloneable, mxGraph
 cellsDeletable, mxGraph
 cellsDisconnectable, mxGraph
 cellsEditable, mxGraph
 cellsLocked, mxGraph
 cellsMovable, mxGraph
 cellsResizable, mxGraph
 cellsSelectable, mxGraph
 centerZoom, mxGraph
 CHANGE, mxEvent
 changeHandler
 changes, mxUndoableEdit
 channelBuffer
 children, mxCell
 CLEAR, mxEvent
 clearSelectionOnBackground, mxPanningHandler
 CLICK, mxEvent
 cloneEnabled
 cloneInvalidEdges, mxGraph
 CLOSE, mxEvent
 closeImage, mxWindow
 closeResource, mxUtils
 codec, mxSession
 codecs, mxCodecRegistry
 collapsed, mxCell
 collapsedImage, mxGraph
 collapseExpandResource, mxGraph
 collapseToPreferredSize, mxGraph
 compressed, mxXmlCanvas2D
 config, mxDefaultPopupMenu
 CONNECT, mxEvent
 CONNECT_CELL, mxEvent
 CONNECT_HANDLE_FILLCOLOR, mxConstants
 connectable, mxCell
 connectableEdges, mxGraph
 connected, mxSession
 connectIconOffset, mxConnectionHandler
 connectImage, mxConnectionHandler
 connectOnDrop
 connectsAsSource, mxGraphHierarchyNode
 connectsAsTarget, mxGraphHierarchyNode
 consoleName, mxLog
 constrainChildren, mxGraph
 constraintHandler
 constraints, mxStencil
 consumed
 container, mxToolbar
 containsValidationErrorsResource, mxGraph
 content, mxWindow
 controlKeys, mxKeyHandler
 controlShiftKeys, mxKeyHandler
 converter
 count, mxCellStatePreview
 counter, mxObjectIdentity
 countError, mxMultiplicity
 createIds, mxGraphModel
 createTarget, mxConnectionHandler
 crisp
 currentBestCrossings, mxMedianHybridCrossingReduction
 currentColor, mxCellMarker
 currentDropTarget, mxDragSource
 currentDx, mxGraphHandler
 currentDy, mxGraphHandler
 currentEdit, mxGraphModel
 currentFileResource, mxEditor
 currentGraph, mxDragSource
 currentGuide, mxDragSource
 currentPoint, mxDragSource
 currentRoot, mxGraphView
 currentX, mxRubberband
 currentXDelta, mxCoordinateAssignment
 currentY, mxRubberband
 cursor, mxCellOverlay
 CURSOR_BEND_HANDLE, mxConstants
 CURSOR_CONNECT, mxConstants
 CURSOR_LABEL_HANDLE, mxConstants
 CURSOR_MOVABLE_EDGE, mxConstants
 CURSOR_MOVABLE_VERTEX, mxConstants
 cycleAttributeIndex, mxEditor
 cycleAttributeName, mxEditor
 cycleAttributeValues, mxEditor
+ +
mxGraphView.prototype.captureDocumentGesture
Specifies if a gesture should be captured when it goes outside of the graph container.
MedianCellSorter.prototype.cell
The cell whose median value is being calculated
mxCellState.prototype.cell
Reference to the mxCell that is represented by this state.
mxGraphHierarchyNode.prototype.cell
The graph cell this object represents.
WeightedCellSorter.prototype.cell
The cell whose median value is being calculated.
Specifies the event name for cellConnected.
mxGraph.prototype.cellEditor
Holds the mxCellEditor that is used as the in-place editing.
mxFastOrganicLayout.prototype.cellLocation
An array of locally stored co-ordinate positions for the vertices.
mxGraph.prototype.cellRenderer
Holds the mxCellRenderer for rendering the cells in the graph.
Holds the array of mxCells currently in the clipboard.
mxGraphModel.prototype.cells
Maps from Ids to cells.
mxMorphing.prototype.cells
Optional array of cells to be animated.
Specifies the event name for cellsAdded.
Specifies the event name for cellsFolded.
Specifies the event name for cellsMoved.
Specifies the event name for cellsOrdered.
Specifies the event name for cellsRemoved.
Specifies the event name for cellsResized.
Specifies the event name for cellsToggled.
mxGraph.prototype.cellsBendable
Specifies the return value for isCellsBendable.
mxGraph.prototype.cellsCloneable
Specifies the return value for isCellCloneable.
mxGraph.prototype.cellsDeletable
Specifies the return value for isCellDeletable.
mxGraph.prototype.cellsDisconnectable
Specifies the return value for isCellDisconntable.
mxGraph.prototype.cellsEditable
Specifies the return value for isCellEditable.
mxGraph.prototype.cellsLocked
Specifies the return value for isCellLocked.
mxGraph.prototype.cellsMovable
Specifies the return value for isCellMovable.
mxGraph.prototype.cellsResizable
Specifies the return value for isCellResizable.
mxGraph.prototype.cellsSelectable
Specifies the return value for isCellSelectable.
mxGraph.prototype.centerZoom
Specifies if the zoom operations should go into the center of the actual diagram rather than going from top, left.
Specifies the event name for change.
mxAutoSaveManager.prototype.changeHandler
Holds the function that handles graph model changes.
mxConnectionHandler.prototype.changeHandler
Holds the change event listener for later removal.
mxUndoableEdit.prototype.changes
Array that contains the changes that make up this edit.
mxCompactTreeLayout.prototype.channelBuffer
The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed
mxCoordinateAssignment.prototype.channelBuffer
The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed
mxCell.prototype.children
Holds the child cells.
Specifies the event name for clear.
mxPanningHandler.prototype.clearSelectionOnBackground
Specifies if cells should be deselected if a popupmenu is displayed for the diagram background.
Specifies the event name for click.
mxEdgeHandler.prototype.cloneEnabled
Specifies if cloning by control-drag is enabled.
mxGraphHandler.prototype.cloneEnabled
Specifies if cloning by control-drag is enabled.
mxGraph.prototype.cloneInvalidEdges
Specifies if edges that are cloned should be validated and only inserted if they are valid.
Specifies the event name for close.
mxWindow.prototype.closeImage
URL of the image to be used for the close icon in the titlebar.
Specifies the resource key for the label of the close button.
mxSession.prototype.codec
Reference to the mxCodec used to encoding and decoding changes.
Maps from constructor names to codecs.
mxCell.prototype.collapsed
Specifies whether the cell is collapsed.
mxGraph.prototype.collapsedImage
Specifies the mxImage to indicate a collapsed state.
mxGraph.prototype.collapseExpandResource
Specifies the resource key for the tooltip on the collapse/expand icon.
mxGraph.prototype.collapseToPreferredSize
Specifies if the cell size should be changed to the preferred size when a cell is first collapsed.
var compressed
Specifies if the output should be compressed by removing redundant calls.
mxDefaultPopupMenu.prototype.config
XML node used as the description of new menu items.
Specifies the event name for connect.
Specifies the event name for connectCell.
Defines the color to be used for the connect handle fill color.
mxCell.prototype.connectable
Specifies whether the cell is connectable.
mxGraph.prototype.connectableEdges
Specifies if edges are connectable.
mxSession.prototype.connected
mxConnectionHandler.prototype.connectIconOffset
Holds the offset for connect icons during connection preview.
mxConnectionHandler.prototype.connectImage
mxImage that is used to trigger the creation of a new connection.
mxDefaultToolbar.prototype.connectOnDrop
Specifies if elements should be connected if new cells are dropped onto connectable elements.
mxGraphHandler.prototype.connectOnDrop
Specifies if drop events are interpreted as new connections if no other drop action is defined.
mxGraphHierarchyNode.prototype.connectsAsSource
Collection of hierarchy edges that have this node as a source
mxGraphHierarchyNode.prototype.connectsAsTarget
Collection of hierarchy edges that have this node as a target
Specifies the name of the console window.
mxGraph.prototype.constrainChildren
Specifies the return value for isConstrainChildren.
mxConnectionHandler.prototype.constraintHandler
Holds the mxConstraintHandler used for drawing and highlighting constraints.
mxEdgeHandler.prototype.constraintHandler
Holds the mxConstraintHandler used for drawing and highlighting constraints.
mxStencil.prototype.constraints
Holds an array of mxConnectionConstraints as defined in the shape.
mxEventObject.prototype.consumed
Holds the consumed state.
mxMouseEvent.prototype.consumed
Holds the consumed state of this event.
mxToolbar.prototype.container
Reference to the DOM nodes that contains the toolbar.
mxGraph.prototype.containsValidationErrorsResource
Specifies the resource key for the warning message to be displayed when a collapsed cell contains validation errors.
mxWindow.prototype.content
Reference to the DOM node that represents the window content.
mxKeyHandler.prototype.controlKeys
Maps from keycodes to functions for pressed control keys.
mxKeyHandler.prototype.controlShiftKeys
Maps from keycodes to functions for pressed control and shift keys.
var converter
Holds the mxUrlConverter to convert image URLs.
var converter
Holds the mxUrlConverter to convert image URLs.
mxCellStatePreview.prototype.count
Contains the number of entries in the map.
Current counter for objects.
mxMultiplicity.prototype.countError
Holds the localized error message to be displayed if the number of connections for which the rule applies is smaller than min or greater than max.
mxGraphModel.prototype.createIds
Specifies if the model should automatically create Ids for new cells.
mxConnectionHandler.prototype.createTarget
Specifies if createTargetVertex should be called if no target was under the mouse for the new connection.
mxEdgeHandler.prototype.crisp
Specifies if the edge handles should be rendered in crisp mode.
mxGraphHandler.prototype.crisp
Specifies if the move preview should be rendered in crisp mode if applicable.
mxGuide.prototype.crisp
Specifies if theguide should be rendered in crisp mode if applicable.
mxImageShape.prototype.crisp
Disables crisp rendering via attributes.
mxShape.prototype.crisp
Special attribute for SVG rendering to set the shape-rendering attribute to crispEdges in the output.
mxVertexHandler.prototype.crisp
Specifies if the selection bounds and handles should be rendered in crisp mode.
mxMedianHybridCrossingReduction.prototype.currentBestCrossings
The total number of crossings found in the best configuration so far
mxCellMarker.prototype.currentColor
Holds the current marker color.
mxDragSource.prototype.currentDropTarget
Holds the current drop target under the mouse.
mxGraphHandler.prototype.currentDx
Stores the x-coordinate of the current mouse move.
mxGraphHandler.prototype.currentDy
Stores the y-coordinate of the current mouse move.
mxGraphModel.prototype.currentEdit
Holds the changes for the current transaction.
mxEditor.prototype.currentFileResource
Specifies the resource key for the current file info.
mxDragSource.prototype.currentGraph
Reference to the mxGraph that is the current drop target.
mxDragSource.prototype.currentGuide
Holds an mxGuide for the currentGraph if dragPreview is not null.
mxDragSource.prototype.currentPoint
Holds the current drop location.
mxGraphView.prototype.currentRoot
mxCell that acts as the root of the displayed cell hierarchy.
mxRubberband.prototype.currentX
Holds the value of the x argument in the last call to update.
mxCoordinateAssignment.prototype.currentXDelta
The sum of x-displacements for the current iteration
mxRubberband.prototype.currentY
Holds the value of the y argument in the last call to update.
mxCellOverlay.prototype.cursor
Holds the cursor for the overlay.
Defines the cursor for a movable bend.
Defines the cursor for a connectable state.
Defines the cursor for a movable label.
Defines the cursor for a movable edge.
Defines the cursor for a movable vertex.
mxEditor.prototype.cycleAttributeIndex
Index of the last consumed attribute index.
mxEditor.prototype.cycleAttributeName
Name of the attribute to be assigned a cycleAttributeValues when inserting new swimlanes.
mxEditor.prototype.cycleAttributeValues
Specifies the attribute values to be cycled when inserting new swimlanes.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables3.html b/docs/js-api/index/Variables3.html new file mode 100644 index 000000000..f33a3cd5f --- /dev/null +++ b/docs/js-api/index/Variables3.html @@ -0,0 +1,34 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
D
 damper, mxPanningManager
 dblClickAction, mxEditor
 debug, mxSession
 DEBUG, mxLog
 DEFAULT_FONTFAMILY, mxConstants
 DEFAULT_FONTSIZE, mxConstants
 DEFAULT_HOTSPOT, mxConstants
 DEFAULT_IMAGESIZE, mxConstants
 DEFAULT_INVALID_COLOR, mxConstants
 DEFAULT_MARKERSIZE, mxConstants
 DEFAULT_STARTSIZE, mxConstants
 DEFAULT_VALID_COLOR, mxConstants
 defaultEdge, mxEditor
 defaultEdgeShape, mxCellRenderer
 defaultEdgeStyle, mxEditor
 defaultGroup, mxEditor
 defaultLanguage, mxClient
 defaultLoopStyle, mxGraph
 defaultOpacity, mxRubberband
 defaultOverlap
 defaultParent, mxGraph
 defaultShapes, mxCellRenderer
 defaultVertexShape, mxCellRenderer
 delay
 deltas, mxCellStatePreview
 desc, mxStencil
 DESTROY, mxEvent
 destroyOnClose, mxWindow
 deterministic
 dfsCount, mxGraphHierarchyModel
 dialect
 DIALECT_MIXEDHTML, mxConstants
 DIALECT_PREFERHTML, mxConstants
 DIALECT_STRICTHTML, mxConstants
 DIALECT_SVG, mxConstants
 DIALECT_VML, mxConstants
 DIRECTION_EAST, mxConstants
 DIRECTION_MASK_ALL, mxConstants
 DIRECTION_MASK_EAST, mxConstants
 DIRECTION_MASK_NONE, mxConstants
 DIRECTION_MASK_NORTH, mxConstants
 DIRECTION_MASK_SOUTH, mxConstants
 DIRECTION_MASK_WEST, mxConstants
 DIRECTION_NORTH, mxConstants
 DIRECTION_SOUTH, mxConstants
 DIRECTION_WEST, mxConstants
 disableContextMenu, mxEditor
 disableEdgeStyle
 DISCONNECT, mxEvent
 disconnectOnMove, mxGraph
 dispX, mxFastOrganicLayout
 dispY, mxFastOrganicLayout
 div, mxRubberband
 document, mxCodec
 DONE, mxEvent
 doneResource
 DOUBLE_CLICK, mxEvent
 doubleClickOrientationResource, mxElbowEdgeHandler
 doubleTapEnabled, mxGraph
 doubleTapTimeout, mxGraph
 doubleTapTolerance, mxGraph
 DOWN, mxEvent
 dragElement, mxDragSource
 dragOffset, mxDragSource
 drillHandler, mxConnectionHandler
 DROP_TARGET_COLOR, mxConstants
 dropEnabled, mxGraph
 dropHandler, mxDragSource
+ +
mxPanningManager.prototype.damper
Damper value for the panning.
mxEditor.prototype.dblClickAction
Specifies the name of the action to be executed when a cell is double clicked.
mxSession.prototype.debug
Specifies if the session should run in debug mode.
Specifies if the output for debug should be visible in the console.
Defines the default family for all fonts in points.
Defines the default size for all fonts in points.
Defines the portion of the cell which is to be used as a connectable region.
Defines the default width and height for images used in the label shape.
Specifies the default invalid color.
Defines the default size for all markers.
Defines the default start size for swimlanes.
Specifies the default valid colorr.
mxEditor.prototype.defaultEdge
Prototype edge cell that is used for creating new edges.
mxCellRenderer.prototype.defaultEdgeShape
Defines the default shape for edges.
mxEditor.prototype.defaultEdgeStyle
Specifies the edge style to be returned in getEdgeStyle.
mxEditor.prototype.defaultGroup
Prototype group cell that is used for creating new groups.
Defines the default language which is used in the common resource files.
mxGraph.prototype.defaultLoopStyle
mxEdgeStyle to be used for loops.
mxRubberband.prototype.defaultOpacity
Specifies the default opacity to be used for the rubberband div.
mxCellOverlay.prototype.defaultOverlap
Defines the overlapping for the overlay, that is, the proportional distance from the origin to the point defined by the alignment.
mxGraph.prototype.defaultOverlap
Value returned by getOverlap if isAllowOverlapParent returns true for the given cell.
mxGraph.prototype.defaultParent
Specifies the default parent to be used to insert new cells.
mxCellRenderer.prototype.defaultShapes
Static array that contains the globally registered shapes which are known to all instances of this class.
mxCellRenderer.prototype.defaultVertexShape
Defines the default shape for vertices.
mxAnimation.prototype.delay
Specifies the delay between the animation steps.
mxPanningManager.prototype.delay
Delay in milliseconds for the panning.
mxTooltipHandler.prototype.delay
Delay to show the tooltip in milliseconds.
mxCellStatePreview.prototype.deltas
Reference to the enclosing mxGraph.
mxStencil.prototype.desc
Holds the XML node with the stencil description.
Specifies the event name for destroy.
mxWindow.prototype.destroyOnClose
Specifies if the window should be destroyed when it is closed.
mxGraphHierarchyModel.prototype.deterministic
Whether or not cells are ordered according to the order in the graph model.
mxHierarchicalLayout.prototype.deterministic
Whether or not cells are ordered according to the order in the graph model.
mxGraphHierarchyModel.prototype.dfsCount
Count of the number of times the ancestor dfs has been used.
mxGraph.prototype.dialect
Dialect to be used for drawing the graph.
mxShape.prototype.dialect
Holds the dialect in which the shape is to be painted.
Defines the mixed HTML display dialect name.
Defines the preferred HTML display dialect name.
Defines the strict HTML display dialect.
Defines the SVG display dialect name.
Defines the VML display dialect name.
Constant for direction east.
Bitwise mask for all directions.
Bitwise mask for east direction.
Constant for no direction.
Bitwise mask for north direction.
Bitwise mask for south direction.
Bitwise mask for west direction.
Constant for direction north.
Constant for direction south.
Constant for direction west.
mxEditor.prototype.disableContextMenu
Specifies if the context menu should be disabled in the graph container.
mxCircleLayout.prototype.disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
mxFastOrganicLayout.prototype.disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
mxHierarchicalLayout.prototype.disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.
Specifies the event name for disconnect.
mxGraph.prototype.disconnectOnMove
Specifies if edges should be disconnected from their terminals when they are moved.
mxFastOrganicLayout.prototype.dispX
An array of locally stored X co-ordinate displacements for the vertices.
mxFastOrganicLayout.prototype.dispY
An array of locally stored Y co-ordinate displacements for the vertices.
mxRubberband.prototype.div
Holds the DIV element which is currently visible.
mxCodec.prototype.document
The owner document of the codec.
Specifies the event name for done.
mxGraphSelectionModel.prototype.doneResource
Specifies the resource key for the status message after a long operation.
mxGraphView.prototype.doneResource
Specifies the resource key for the status message after a long operation.
DOUBLE_CLICK: 'doubleClick' }
Specifies the event name for doubleClick.
mxElbowEdgeHandler.prototype.doubleClickOrientationResource
Specifies the resource key for the tooltip to be displayed on the single control point for routed edges.
mxGraph.prototype.doubleTapEnabled
Specifies if double taps on touch-based devices should be handled.
mxGraph.prototype.doubleTapTimeout
Specifies the timeout for double taps.
mxGraph.prototype.doubleTapTolerance
Specifies the tolerance for double taps.
Specifies the event name for down.
mxDragSource.prototype.dragElement
Holds the DOM node that is used to represent the drag preview.
mxDragSource.prototype.dragOffset
mxPoint that specifies the offset of the dragElement.
mxConnectionHandler.prototype.drillHandler
Holds the drill event listener for later removal.
Defines the color to be used for the highlighting target parent cells (for drag and drop).
mxGraph.prototype.dropEnabled
Specifies the return value for isDropEnabled.
mxDragSource.prototype.dropHandler
Holds the DOM node that is used to represent the drag preview.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables4.html b/docs/js-api/index/Variables4.html new file mode 100644 index 000000000..e5c71e484 --- /dev/null +++ b/docs/js-api/index/Variables4.html @@ -0,0 +1,38 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
E
 ease, mxMorphing
 edge, mxCell
 EDGE_SELECTION_COLOR, mxConstants
 EDGE_SELECTION_STROKEWIDTH, mxConstants
 edgeLabelsMovable, mxGraph
 edgeMapper, mxGraphHierarchyModel
 edgeRouting, mxCompactTreeLayout
 edges
 edgeState, mxConnectionHandler
 edgeStyle, mxCoordinateAssignment
 EDGESTYLE_ELBOW, mxConstants
 EDGESTYLE_ENTITY_RELATION, mxConstants
 EDGESTYLE_LOOP, mxConstants
 EDGESTYLE_ORTHOGONAL, mxConstants
 EDGESTYLE_SEGMENT, mxConstants
 EDGESTYLE_SIDETOSIDE, mxConstants
 EDGESTYLE_TOPTOBOTTOM, mxConstants
 editingCell, mxCellEditor
 editor
 ELBOW_HORIZONTAL, mxConstants
 ELBOW_VERTICAL, mxConstants
 element, mxDragSource
 EMPTY_ARRAY, mxGraph
 emptyLabelText, mxCellEditor
 enabled
 enableFill, mxArrow
 encodeDefaults, mxCodec
 END_UPDATE, mxEvent
 endingUpdate, mxGraphModel
 endOffset, mxShape
 enterStopsCellEditing, mxGraph
 ENTITY_SEGMENT, mxConstants
 error
 errorImage, mxUtils
 errorResource, mxUtils
 ESCAPE, mxEvent
 escapeEnabled, mxGraph
 escapePostData
 eventListeners, mxEventSource
 eventsEnabled, mxEventSource
 eventSource, mxEventSource
 evt, mxMouseEvent
 exclude, mxObjectCodec
 EXECUTE, mxEvent
 expandedImage, mxGraph
 exportEnabled, mxGraph
 extendParents
 extendParentsOnAdd, mxGraph
F
 factoryMethod
 fgNodes, mxStencil
 FIELD_NAME, mxObjectIdentity
 filename, mxEditor
 fill, mxStackLayout
 fineTuning
 FIRED, mxEvent
 first, mxConnectionHandler
 fixRoots, mxHierarchicalLayout
 FLIP_EDGE, mxEvent
 foEnabled, mxSvgCanvas2D
 FOLD_CELLS, mxEvent
 foldHandler, mxSpaceManager
 foldingEnabled, mxGraph
 FONT_BOLD, mxConstants
 FONT_ITALIC, mxConstants
 FONT_SHADOW, mxConstants
 FONT_UNDERLINE, mxConstants
 forceConstant, mxFastOrganicLayout
 forceConstantSquared, mxFastOrganicLayout
 forcedInserting, mxEditor
 forceIgnoreStringSize, mxText
 format, mxPath
+ +
mxMorphing.prototype.ease
Ease-off for movement towards the given vector.
mxCell.prototype.edge
Specifies whether the cell is an edge.
Defines the color to be used for the selection border of edges.
Defines the strokewidth to be used for edge selections.
mxGraph.prototype.edgeLabelsMovable
Specifies the return value for edges in isLabelMovable.
mxGraphHierarchyModel.prototype.edgeMapper
Map from graph edges to internal model edges
mxCompactTreeLayout.prototype.edgeRouting
Whether or not to apply the internal tree edge routing
mxCell.prototype.edges
Holds the edges.
mxGraphHierarchyEdge.prototype.edges
The graph edge(s) this object represents.
mxConnectionHandler.prototype.edgeState
Optional mxCellState that represents the preview edge while the handler is active.
mxCoordinateAssignment.prototype.edgeStyle
The style to apply between cell layers to edge segments
Name of the elbow edge style.
Name of the entity relation edge style.
Name of the loop edge style.
Name of the generic orthogonal edge style.
Name of the generic segment edge style.
Name of the side to side edge style.
Name of the top to bottom edge style.
mxCellEditor.prototype.editingCell
Reference to the mxCell that is currently being edited.
mxDefaultKeyHandler.prototype.editor
Reference to the enclosing mxEditor.
mxDefaultToolbar.prototype.editor
Reference to the enclosing mxEditor.
Constant for elbow horizontal.
Constant for elbow vertical.
mxDragSource.prototype.element
Reference to the DOM node which was made draggable.
mxGraph.prototype.EMPTY_ARRAY
Immutable empty array instance.
mxCellEditor.prototype.emptyLabelText
Text to be displayed for empty labels.
mxAutoSaveManager.prototype.enabled
Specifies if event handling is enabled.
mxCellMarker.prototype.enabled
Specifies if the marker is enabled.
mxConnectionHandler.prototype.enabled
Specifies if events are handled.
mxConstraintHandler.prototype.enabled
Specifies if events are handled.
mxDragSource.prototype.enabled
Specifies if this drag source is enabled.
mxGraph.prototype.enabled
Specifies the return value for isEnabled.
mxGraphHandler.prototype.enabled
Specifies if events are handled.
mxKeyHandler.prototype.enabled
Specifies if events are handled.
mxLayoutManager.prototype.enabled
Specifies if event handling is enabled.
mxOutline.prototype.enabled
Specifies if events are handled.
mxPopupMenu.prototype.enabled
Specifies if events are handled.
mxRubberband.prototype.enabled
Specifies if events are handled.
mxSelectionCellsHandler.prototype.enabled
Specifies if events are handled.
mxSpaceManager.prototype.enabled
Specifies if event handling is enabled.
mxSwimlaneManager.prototype.enabled
Specifies if event handling is enabled.
mxToolbar.prototype.enabled
Specifies if events are handled.
mxTooltipHandler.prototype.enabled
Specifies if events are handled.
var enabled
Specifies if the converter is enabled.
mxArrow.prototype.enableFill
Specifies if fill colors should be ignored.
mxCodec.prototype.encodeDefaults
Specifies if default values should be encoded.
Specifies the event name for endUpdate.
mxGraphModel.prototype.endingUpdate
True if the program flow is currently inside endUpdate.
mxShape.prototype.endOffset
Specifies the offset in pixels from the last point in points and the actual start of the shape.
mxGraph.prototype.enterStopsCellEditing
If true, pressing the enter key without pressing control or shift will stop editing and accept the new value.
Defines the length of the horizontal segment of an Entity Relation.
mxConnectionHandler.prototype.error
Holds the current validation error while connections are being created.
mxEdgeHandler.prototype.error
Holds the current validation error while a connection is being changed.
Defines the image used for error dialogs.
Specifies the resource key for the title of the error window.
Specifies the event name for escape.
mxGraph.prototype.escapeEnabled
Specifies if mxKeyHandler should invoke escape when the escape key is pressed.
mxEditor.prototype.escapePostData
Specifies if the data in the post request for saving a diagram should be converted using encodeURIComponent.
mxSession.prototype.escapePostData
Specifies if the data in the post request sent in notify should be converted using encodeURIComponent.
mxEventSource.prototype.eventListeners
Holds the event names and associated listeners in an array.
mxEventSource.prototype.eventsEnabled
Specifies if events can be fired.
mxEventSource.prototype.eventSource
Optional source for events.
mxMouseEvent.prototype.evt
Holds the inner event object.
mxObjectCodec.prototype.exclude
Array containing the variable names that should be ignored by the codec.
Specifies the event name for execute.
mxGraph.prototype.expandedImage
Specifies the mxImage to indicate a expanded state.
mxGraph.prototype.exportEnabled
Specifies the return value for canExportCell.
mxGraph.prototype.extendParents
Specifies if a parent should contain the child bounds after a resize of the child.
mxSpaceManager.prototype.extendParents
Specifies if event handling is enabled.
mxGraph.prototype.extendParentsOnAdd
Specifies if parents should be extended according to the extendParents switch if cells are added.
+ + + +
mxConnectionHandler.prototype.factoryMethod
Function that is used for creating new edges.
mxPopupMenu.prototype.factoryMethod
Function that is used to create the popup menu.
Holds the XML node with the stencil description.
Name of the field to be used to store the object ID.
mxEditor.prototype.filename
Contains the URL of the last opened file as a string.
mxStackLayout.prototype.fill
Boolean indicating if dimension should be changed to fill out the parent cell.
mxCoordinateAssignment.prototype.fineTuning
Whether or not to perform local optimisations and iterate multiple times through the algorithm.
mxHierarchicalLayout.prototype.fineTuning
Whether or not to perform local optimisations and iterate multiple times through the algorithm.
Specifies the event name for fired.
mxConnectionHandler.prototype.first
Holds the mxPoint where the mouseDown took place while the handler is active.
mxHierarchicalLayout.prototype.fixRoots
Whether or not to fix the position of the root cells.
Specifies the event name for flipEdge.
var foEnabled
Specifies if use of foreignObject for HTML markup is allowed.
Specifies the event name for foldCells.
mxSpaceManager.prototype.foldHandler
Holds the function that handles the fold event.
mxGraph.prototype.foldingEnabled
Specifies if folding (collapse and expand via an image icon in the graph should be enabled).
Constant for bold fonts.
Constant for italic fonts.
Constant for fonts with a shadow.
Constant for underlined fonts.
mxFastOrganicLayout.prototype.forceConstant
The force constant by which the attractive forces are divided and the replusive forces are multiple by the square of.
mxFastOrganicLayout.prototype.forceConstantSquared
Cache of <forceConstant>^2 for performance.
mxEditor.prototype.forcedInserting
Specifies if a new cell should be inserted on a single click even using insertFunction if there is a cell under the mousepointer, otherwise the cell under the mousepointer is selected.
mxText.prototype.forceIgnoreStringSize
Specifies if the string size should always be ignored.
mxPath.prototype.format
Defines the format for the output of this path.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables5.html b/docs/js-api/index/Variables5.html new file mode 100644 index 000000000..68ce992b4 --- /dev/null +++ b/docs/js-api/index/Variables5.html @@ -0,0 +1,38 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
G
 geometry, mxCell
 gestureEnabled, mxGraph
 GET, mxEvent
 glassSize, mxImageExport
 graph
 graphBounds, mxGraphView
 graphRenderHint, mxEditor
 graphX, mxMouseEvent
 graphY, mxMouseEvent
 gridEnabled
 gridSize, mxGraph
 GROUP_CELLS, mxEvent
 groupPadding, mxCompactTreeLayout
 guide, mxGraphHandler
 GUIDE_COLOR, mxConstants
 GUIDE_STROKEWIDTH, mxConstants
 guidesEnabled
H
 h0, mxStencil
 HANDLE_FILLCOLOR, mxConstants
 HANDLE_SIZE, mxConstants
 HANDLE_STROKECOLOR, mxConstants
 handleImage
 handleMouseOut, mxPanningManager
 handler, mxDefaultKeyHandler
 handlers, mxSelectionCellsHandler
 hashCode, mxGraphHierarchyNode
 height
 help, mxEditor
 helpResource, mxEditor
 helpWidth, mxEditor
 helpWindowImage, mxEditor
 HIDE, mxEvent
 hideOnHover, mxTooltipHandler
 HIGHLIGHT_COLOR, mxConstants
 HIGHLIGHT_STROKEWIDTH, mxConstants
 highlightColor, mxConstraintHandler
 highlightDropTargets, mxDragSource
 highlightEnabled, mxGraphHandler
 history, mxUndoManager
 horizontal
 horizontalFlow, mxEditor
 hotspot, mxCellMarker
 hotspotEnabled, mxCellMarker
 htmlLabels, mxGraph
 htmlPreview, mxGraphHandler
+ +
mxCell.prototype.geometry
Holds the mxGeometry.
mxGraph.prototype.gestureEnabled
Specifies if the handleGesture method should be invoked.
Specifies the event name for get.
mxImageExport.prototype.glassSize
Reference to the thread while the animation is running.
mxAutoSaveManager.prototype.graph
Reference to the enclosing mxGraph.
mxCellEditor.prototype.graph
Reference to the enclosing mxGraph.
mxCellHighlight.prototype.graph
Reference to the enclosing mxGraph.
mxCellMarker.prototype.graph
Reference to the enclosing mxGraph.
mxCellStatePreview.prototype.graph
Reference to the enclosing mxGraph.
mxConnectionHandler.prototype.graph
Reference to the enclosing mxGraph.
mxConstraintHandler.prototype.graph
Reference to the enclosing mxGraph.
mxEdgeHandler.prototype.graph
Reference to the enclosing mxGraph.
mxEditor.prototype.graph
Holds a mxGraph for displaying the diagram.
mxGraphHandler.prototype.graph
Reference to the enclosing mxGraph.
mxGraphLayout.prototype.graph
Reference to the enclosing mxGraph.
mxGraphSelectionModel.prototype.graph
Reference to the enclosing mxGraph.
mxGraphView.prototype.graph
Reference to the enclosing mxGraph.
mxGuide.prototype.graph
Reference to the enclosing mxGraph instance.
mxKeyHandler.prototype.graph
Reference to the mxGraph associated with this handler.
mxLayoutManager.prototype.graph
Reference to the enclosing mxGraph.
mxMorphing.prototype.graph
Specifies the delay between the animation steps.
mxPanningHandler.prototype.graph
Reference to the enclosing mxGraph.
mxPrintPreview.prototype.graph
Reference to the mxGraph that should be previewed.
mxSelectionCellsHandler.prototype.graph
Reference to the enclosing mxGraph.
mxSpaceManager.prototype.graph
Reference to the enclosing mxGraph.
mxSwimlaneManager.prototype.graph
Reference to the enclosing mxGraph.
mxTooltipHandler.prototype.graph
Reference to the enclosing mxGraph.
mxVertexHandler.prototype.graph
Reference to the enclosing mxGraph.
mxGraphView.prototype.graphBounds
mxRectangle that caches the scales, translated bounds of the current view.
mxEditor.prototype.graphRenderHint
Holds the render hint used for creating the graph in setGraphContainer.
mxMouseEvent.prototype.graphX
Holds the x-coordinate of the event in the graph.
mxMouseEvent.prototype.graphY
Holds the y-coordinate of the event in the graph.
mxDragSource.prototype.gridEnabled
Specifies if the grid should be allowed.
mxGraph.prototype.gridEnabled
Specifies if the grid is enabled.
mxGraph.prototype.gridSize
Specifies the grid size.
Specifies the event name for groupCells.
mxCompactTreeLayout.prototype.groupPadding
Padding added to resized parents
mxGraphHandler.prototype.guide
Holds the mxGuide instance that is used for alignment.
Defines the color to be used for the guidelines in mxGraphHandler.
Defines the strokewidth to be used for the guidelines in mxGraphHandler.
mxDragSource.prototype.guidesEnabled
Specifies if mxGuide should be enabled.
mxGraphHandler.prototype.guidesEnabled
Specifies if other cells should be used for snapping the right, center or left side of the current selection.
+ + + +
mxStencil.prototype.h0
Holds the height of the shape.
Defines the color to be used for the handle fill color.
Defines the default size for handles.
Defines the color to be used for the handle stroke color.
mxEdgeHandler.prototype.handleImage
Optional mxImage to be used as handles.
mxVertexHandler.prototype.handleImage
Optional mxImage to be used as handles.
mxPanningManager.prototype.handleMouseOut
Specifies if mouse events outside of the component should be handled.
mxDefaultKeyHandler.prototype.handler
Holds the mxKeyHandler for key event handling.
mxSelectionCellsHandler.prototype.handlers
mxDictionary that maps from cells to handlers.
mxGraphHierarchyNode.prototype.hashCode
Assigns a unique hashcode for each node.
mxGraphAbstractHierarchyCell.prototype.height
The height of this cell
mxImage.prototype.height
Integer that specifies the height of the image.
mxRectangle.prototype.height
Holds the height of the rectangle.
mxEditor.prototype.help
Holds the mxWindow created in showHelp.
mxEditor.prototype.helpResource
Specifies the resource key for the help window title.
mxEditor.prototype.helpWidth
Specifies the width of the help window in pixels.
mxEditor.prototype.helpWindowImage
Icon for the help window.
Specifies the event name for hide.
mxTooltipHandler.prototype.hideOnHover
Specifies if the tooltip should be hidden if the mouse is moved over the current cell.
Defines the color to be used for the cell highlighting.
Defines the strokewidth to be used for the highlights.
mxConstraintHandler.prototype.highlightColor
Specifies the color for the highlight.
mxDragSource.prototype.highlightDropTargets
Specifies if drop targets should be highlighted.
mxGraphHandler.prototype.highlightEnabled
Specifies if drop targets under the mouse should be enabled.
mxUndoManager.prototype.history
Array that contains the steps of the command history.
mxCompactTreeLayout.prototype.horizontal
Specifies the orientation of the layout.
mxGuide.prototype.horizontal
Specifies if horizontal guides are enabled.
mxPartitionLayout.prototype.horizontal
Boolean indicating the direction in which the space is partitioned.
mxStackLayout.prototype.horizontal
Specifies the orientation of the layout.
mxSwimlaneManager.prototype.horizontal
Specifies the orientation of the swimlanes.
mxEditor.prototype.horizontalFlow
Specifies the direction of the flow in the diagram.
mxCellMarker.prototype.hotspot
Specifies the portion of the width and height that should trigger a highlight.
mxCellMarker.prototype.hotspotEnabled
Specifies if the hotspot is enabled.
mxGraph.prototype.htmlLabels
Specifies the return value for isHtmlLabel.
mxGraphHandler.prototype.htmlPreview
Specifies if the graph container should be used for preview.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables6.html b/docs/js-api/index/Variables6.html new file mode 100644 index 000000000..bd3fd890f --- /dev/null +++ b/docs/js-api/index/Variables6.html @@ -0,0 +1,42 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
I
 id, mxCell
 idrefs, mxObjectCodec
 ieVerticalFilter, mxText
 ignoreCell, mxPanningHandler
 ignoredChanges, mxAutoSaveManager
 ignoreMouseDown, mxConnectionHandler
 ignoreScrollbars, mxGraph
 image, mxCellOverlay
 imageBasePath
 imageBundles, mxGraph
 images, mxImageBundle
 imageSize
 importEnabled, mxGraph
 includeOverlays, mxImageExport
 index, mxVertexHandler
 indexOfNextAdd, mxUndoManager
 indicatorSize, mxLabel
 indicatorSpacing, mxLabel
 indices, mxFastOrganicLayout
 init, mxDefaultToolbar
 initialTemp, mxFastOrganicLayout
 initialTouchY, mxConnectionHandler
 initialX, mxCoordinateAssignment
 innerNode, mxShape
 insertCount, mxClipboard
 insertFunction, mxEditor
 interHierarchySpacing, mxHierarchicalLayout
 interRankCellSpacing
 intraCellSpacing
 invalid, mxCellState
 INVALID_COLOR, mxConstants
 INVALID_CONNECT_TARGET_COLOR, mxConstants
 invalidColor, mxCellMarker
 invalidOrder, mxCellState
 invert, mxCompactTreeLayout
 invokesStopCellEditing, mxGraph
 IS_GC, mxClient
 IS_IE, mxClient
 IS_IE6, mxClient
 IS_LOCAL, mxClient
 IS_MAC, mxClient
 IS_MT, mxClient
 IS_NS, mxClient
 IS_OP, mxClient
 IS_OT, mxClient
 IS_SF, mxClient
 IS_SVG, mxClient
 IS_TOUCH, mxClient
 IS_VML, mxClient
 isMouseDown, mxGraph
 isMoveable, mxFastOrganicLayout
 isReversed, mxGraphHierarchyEdge
 itemCount, mxPopupMenu
 iteration, mxFastOrganicLayout
 iterationsWithoutImprovement, mxMedianHybridCrossingReduction
J
 jettyPositions, mxCoordinateAssignment
K
 keepEdgesInBackground, mxGraph
 keepEdgesInForeground, mxGraph
 keepFirstLocation, mxStackLayout
 keepOnTop, mxCellHighlight
 keepSelectionVisibleOnZoom, mxGraph
 keyHandler, mxEditor
+ +
mxCell.prototype.id
Holds the Id.
mxObjectCodec.prototype.idrefs
Array containing the variable names that should be turned into or converted from references.
mxText.prototype.ieVerticalFilter
Holds the filter definition for vertical text in IE.
mxPanningHandler.prototype.ignoreCell
Specifies if panning should be active even if there is a cell under the mousepointer.
mxAutoSaveManager.prototype.ignoredChanges
Counter for ignored changes in autosave.
mxConnectionHandler.prototype.ignoreMouseDown
Specifies if the connection handler should ignore the state of the mouse button when highlighting the source.
mxGraph.prototype.ignoreScrollbars
Specifies if the graph should automatically scroll regardless of the scrollbars.
mxCellOverlay.prototype.image
Holds the mxImage to be used as the icon.
Basepath for all images URLs in the core without trailing slash.
mxDefaultPopupMenu.prototype.imageBasePath
Base path for all icon attributes in the config.
mxGraph.prototype.imageBundles
Holds the list of image bundles.
mxImageBundle.prototype.images
Maps from keys to images.
mxLabel.prototype.imageSize
Default width and height for the image.
mxSwimlane.prototype.imageSize
Default imagewidth and imageheight if an image but no imagewidth and imageheight are defined in the style.
mxGraph.prototype.importEnabled
Specifies the return value for canImportCell.
mxImageExport.prototype.includeOverlays
Specifies if overlays should be included in the export.
mxVertexHandler.prototype.index
Holds the index of the current handle.
mxUndoManager.prototype.indexOfNextAdd
Index of the element to be added next.
mxLabel.prototype.indicatorSize
Default width and height for the indicicator.
mxLabel.prototype.indicatorSpacing
Default spacing between image and indicator.
mxFastOrganicLayout.prototype.indices
Hashtable from cells to local indices.
mxDefaultToolbar.prototype.init
Constructs the toolbar for the given container and installs a listener that updates the mxEditor.insertFunction on editor if an item is selected in the toolbar.
mxFastOrganicLayout.prototype.initialTemp
Start value of temperature.
mxConnectionHandler.prototype.initialTouchY
Holds the x-coordinate of the intial touch event for tap and hold.
mxCoordinateAssignment.prototype.initialX
The minimum x position node placement starts at
mxShape.prototype.innerNode
Holds the DOM node that graphically represents this shape.
Counts the number of times the clipboard data has been inserted.
mxEditor.prototype.insertFunction
Specifies the function to be used for inserting new cells into the graph.
mxHierarchicalLayout.prototype.interHierarchySpacing
The spacing buffer between unconnected hierarchies.
mxCoordinateAssignment.prototype.interRankCellSpacing
The minimum distance between cells on adjacent ranks.
mxHierarchicalLayout.prototype.interRankCellSpacing
The spacing buffer added between cell on adjacent layers.
mxCoordinateAssignment.prototype.intraCellSpacing
The minimum buffer between cells on the same rank.
mxHierarchicalLayout.prototype.intraCellSpacing
The spacing buffer added between cells on the same layer.
mxCellState.prototype.invalid
Specifies if the state is invalid.
Defines the color to be used for the coloring invalid connection previews.
Defines the color to be used for highlighting a invalid target cells for a new or changed connections.
mxCellMarker.prototype.invalidColor
Holds the invalid marker color.
mxCellState.prototype.invalidOrder
Specifies if the cell has an invalid order.
mxCompactTreeLayout.prototype.invert
Specifies if edge directions should be inverted.
mxGraph.prototype.invokesStopCellEditing
If true, when editing is to be stopped by way of selection changing, data in diagram changing or other means stopCellEditing is invoked, and changes are saved.
IS_GC: navigator.userAgent.indexOf('Chrome/') >
True if the current browser is Google Chrome.
IS_IE: navigator.userAgent.indexOf('MSIE') >
True if the current browser is Internet Explorer.
IS_IE6: navigator.userAgent.indexOf('MSIE 6') >
True if the current browser is Internet Explorer 6.x.
True if the documents location does not start with http:// or https://.
True if the client is a Mac.
True if -moz-transform is available as a CSS style.
IS_NS: navigator.userAgent.indexOf('Mozilla/') >
True if the current browser is Netscape (including Firefox).
IS_OP: navigator.userAgent.indexOf('Opera/') >
True if the current browser is Opera.
True if -o-transform is available as a CSS style.
IS_SF: navigator.userAgent.indexOf('AppleWebKit/') >
True if the current browser is Safari.
IS_SVG: navigator.userAgent.indexOf('Firefox/') >
True if the browser supports SVG.
True if this client uses a touch interface (no mouse).
IS_VML: navigator.appName.toUpperCase()
True if the browser supports VML.
mxGraph.prototype.isMouseDown
Holds the state of the mouse button.
mxFastOrganicLayout.prototype.isMoveable
Array of booleans representing the movable states of the vertices.
mxGraphHierarchyEdge.prototype.isReversed
Whether or not the direction of this edge has been reversed internally to create a DAG for the hierarchical layout
mxPopupMenu.prototype.itemCount
Contains the number of times addItem has been called for a new menu.
mxFastOrganicLayout.prototype.iteration
Current iteration count.
mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement
The total number of crossings found in the best configuration so far
+ + + +
mxCoordinateAssignment.prototype.jettyPositions
Map of internal edges and (x,y) pair of positions of the start and end jetty for that edge where it connects to the source and target vertices.
+ + + +
mxGraph.prototype.keepEdgesInBackground
Specifies if edges should appear in the background regardless of their order in the model.
mxGraph.prototype.keepEdgesInForeground
Specifies if edges should appear in the foreground regardless of their order in the model.
mxStackLayout.prototype.keepFirstLocation
Boolean indicating if the location of the first cell should be kept, that is, it will not be moved to x0 or y0.
mxCellHighlight.prototype.keepOnTop
Specifies if the highlights should appear on top of everything else in the overlay pane.
mxGraph.prototype.keepSelectionVisibleOnZoom
Specifies if the viewport should automatically contain the selection cells after a zoom operation.
mxEditor.prototype.keyHandler
Holds a mxDefaultKeyHandler for handling keyboard events.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables7.html b/docs/js-api/index/Variables7.html new file mode 100644 index 000000000..a06ed3bad --- /dev/null +++ b/docs/js-api/index/Variables7.html @@ -0,0 +1,34 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
L
 label, mxShape
 LABEL_CHANGED, mxEvent
 LABEL_HANDLE, mxEvent
 LABEL_HANDLE_FILLCOLOR, mxConstants
 LABEL_HANDLE_SIZE, mxConstants
 labels, mxPopupMenu
 labelShape, mxEdgeHandler
 labelsVisible, mxGraph
 language, mxClient
 languages, mxClient
 lastSavedResource, mxEditor
 lastSnapshot, mxAutoSaveManager
 lastTouchTime, mxGraph
 lastTouchX, mxGraph
 layout
 LAYOUT_CELLS, mxEvent
 layoutDiagram, mxEditor
 layoutFromSinks, mxHierarchicalLayout
 layouts, mxCompositeLayout
 layoutSwimlanes, mxEditor
 length, mxCellState
 levelDistance, mxCompactTreeLayout
 limitX, mxCoordinateAssignment
 LINE_ARCSIZE, mxConstants
 linefeed, mxSession
 lineFeed, mxEditor
 loadDefaultBundle, mxResources
 LOCKED_HANDLE_FILLCOLOR, mxConstants
+ +
mxShape.prototype.label
Reference to the DOM node that should contain the label.
Specifies the event name for labelChanged.
Index for the label handle in an mxMouseEvent.
Defines the color to be used for the label handle fill color.
Defines the default size for label handles.
mxPopupMenu.prototype.labels
Specifies if any labels should be visible.
mxEdgeHandler.prototype.labelShape
Holds the mxShape that represents the label position.
mxGraph.prototype.labelsVisible
Specifies if labels should be visible.
Defines the language of the client, eg.
Defines the optional array of all supported language extensions.
mxEditor.prototype.lastSavedResource
Specifies the resource key for the last saved info.
mxAutoSaveManager.prototype.lastSnapshot
Used for autosaving.
mxGraph.prototype.lastTouchTime
Holds the time of the last touch event for double click detection.
Holds the x-coordinate of the last touch event for double tap detection.
mxCoordinateAssignment.prototype.layout
Reference to the enclosing mxHierarchicalLayout.
mxMedianHybridCrossingReduction.prototype.layout
Reference to the enclosing mxHierarchicalLayout.
mxMinimumCycleRemover.prototype.layout
Reference to the enclosing mxHierarchicalLayout.
Specifies the event name for layoutCells.
mxEditor.prototype.layoutDiagram
Specifies if the top-level elements in the diagram should be layed out using a vertical or horizontal stack depending on the setting of horizontalFlow.
mxHierarchicalLayout.prototype.layoutFromSinks
Whether or not the initial scan of the graph to determine the layer assigned to each vertex starts from the sinks or source (the sinks being vertices with the fewest, preferable zero, outgoing edges and sources same with incoming edges).
mxCompositeLayout.prototype.layouts
Holds the array of mxGraphLayouts that this layout contains.
mxEditor.prototype.layoutSwimlanes
Specifies if the children of swimlanes should be layed out, either vertically or horizontally depending on horizontalFlow.
mxCellState.prototype.length
Caches the length of an edge.
mxCompactTreeLayout.prototype.levelDistance
Holds the levelDistance.
mxCoordinateAssignment.prototype.limitX
The maximum x value this positioning lays up to
Defines the size of the arcs for rounded edges.
mxSession.prototype.linefeed
Used for encoding linefeeds.
Character to be used for encoding linefeeds in save.
Specifies if the default file for a given basename should be loaded.
Defines the color to be used for the locked handle fill color.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables8.html b/docs/js-api/index/Variables8.html new file mode 100644 index 000000000..c2a048a12 --- /dev/null +++ b/docs/js-api/index/Variables8.html @@ -0,0 +1,34 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
M
 maintainEdgeParent, mxGraphModel
 maintainSwimlanes, mxEditor
 mapping, mxObjectCodec
 MARK, mxEvent
 markedState, mxCellMarker
 marker
 markers
 max, mxMultiplicity
 MAX_HOTSPOT_SIZE, mxConstants
 maxCells, mxGraphHandler
 maxFitScale, mxGraph
 maxHandlers, mxSelectionCellsHandler
 maxHeight, mxCylinder
 MAXIMIZE, mxEvent
 maximizeImage, mxWindow
 maximumContainerSize, mxGraph
 maximumGraphBounds, mxGraph
 maxIterations
 maxNoImprovementIterations, mxMedianHybridCrossingReduction
 maxRank
 medianValue, MedianCellSorter
 method, mxXmlRequest
 min, mxMultiplicity
 MIN_HOTSPOT_SIZE, mxConstants
 minDistanceLimit, mxFastOrganicLayout
 minDistanceLimitSquared, mxFastOrganicLayout
 minEdgeJetty
 minFitScale, mxGraph
 MINIMIZE, mxEvent
 minimizeImage, mxWindow
 minimumContainerSize, mxGraph
 minimumGraphSize, mxGraph
 minimumSize
 minPageBreakDist, mxGraph
 minRank, mxGraphAbstractHierarchyCell
 mixedModeHtml
 model
 modified
 MOUSE_DOWN, mxEvent
 MOUSE_MOVE, mxEvent
 MOUSE_UP, mxEvent
 mouseDownCounter, mxConnectionHandler
 mouseListeners, mxGraph
 MOVE, mxEvent
 MOVE_CELLS, mxEvent
 MOVE_END, mxEvent
 MOVE_START, mxEvent
 moveCircle, mxCircleLayout
 moveEnabled, mxGraphHandler
 moveHandler
 moveIconBack, mxConnectionHandler
 moveIconFront, mxConnectionHandler
 moveParent, mxHierarchicalLayout
 movePreviewAway, mxConnectionHandler
 movePropertiesDialog, mxEditor
 moveTree, mxCompactTreeLayout
 multigraph, mxGraph
 multiplicities, mxGraph
 mxLoadResources, mxClient
 mxLoadStylesheets, mxClient
 mxTransient, mxCell
+ +
mxGraphModel.prototype.maintainEdgeParent
Specifies if edges should automatically be moved into the nearest common ancestor of their terminals.
mxEditor.prototype.maintainSwimlanes
Specifies if the swimlanes should be kept at the same width or height depending on the setting of horizontalFlow.
mxObjectCodec.prototype.mapping
Maps from from fieldnames to XML attribute names.
Specifies the event name for mark.
mxCellMarker.prototype.markedState
Holds the marked mxCellState.
mxConnectionHandler.prototype.marker
Holds the mxTerminalMarker used for finding source and target cells.
mxEdgeHandler.prototype.marker
Holds the mxTerminalMarker which is used for highlighting terminals.
mxImageExport.prototype.markers
Holds implementations for the built-in markers.
Maps from markers names to functions to paint the markers.
mxMultiplicity.prototype.max
Defines the maximum number of connections for which this rule applies.
Defines the maximum size in pixels of the portion of the cell which is to be used as a connectable region.
mxGraphHandler.prototype.maxCells
Defines the maximum number of cells to paint subhandles for.
mxGraph.prototype.maxFitScale
Specifies the maximum scale to be applied in fit.
mxSelectionCellsHandler.prototype.maxHandlers
Defines the maximum number of handlers to paint individually.
mxCylinder.prototype.maxHeight
Defines the maximum height of the top and bottom part of the cylinder shape.
Specifies the event name for maximize.
mxWindow.prototype.maximizeImage
URL of the image to be used for the maximize icon in the titlebar.
mxGraph.prototype.maximumContainerSize
mxRectangle that specifies the maximum size of the container if resizeContainer is true.
mxGraph.prototype.maximumGraphBounds
mxRectangle that specifies the area in which all cells in the diagram should be placed.
mxCoordinateAssignment.prototype.maxIterations
The number of heuristic iterations to run.
mxFastOrganicLayout.prototype.maxIterations
Total number of iterations to run the layout though.
mxMedianHybridCrossingReduction.prototype.maxIterations
The maximum number of iterations to perform whilst reducing edge crossings.
mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations
The total number of crossings found in the best configuration so far
mxGraphAbstractHierarchyCell.prototype.maxRank
The maximum rank this cell occupies.
mxGraphHierarchyModel.prototype.maxRank
Stores the largest rank number allocated
MedianCellSorter.prototype.medianValue
The weighted value of the cell stored.
mxXmlRequest.prototype.method
Specifies the request method.
mxMultiplicity.prototype.min
Defines the minimum number of connections for which this rule applies.
Defines the minimum size in pixels of the portion of the cell which is to be used as a connectable region.
mxFastOrganicLayout.prototype.minDistanceLimit
Minimal distance limit.
mxFastOrganicLayout.prototype.minDistanceLimitSquared
Cached version of minDistanceLimit squared.
mxCompactTreeLayout.prototype.minEdgeJetty
The minimum distance for an edge jetty from a vertex
mxCoordinateAssignment.prototype.minEdgeJetty
The minimum distance for an edge jetty from a vertex
mxGraph.prototype.minFitScale
Specifies the minimum scale to be applied in fit.
Specifies the event name for minimize.
mxWindow.prototype.minimizeImage
URL of the image to be used for the minimize icon in the titlebar.
mxGraph.prototype.minimumContainerSize
mxRectangle that specifies the minimum size of the container if resizeContainer is true.
mxGraph.prototype.minimumGraphSize
mxRectangle that specifies the minimum size of the graph.
mxGraphHandler.prototype.minimumSize
Specifies the minimum number of pixels for the width and height of a selection border.
mxWindow.prototype.minimumSize
mxRectangle that specifies the minimum width and height of the window.
mxGraph.prototype.minPageBreakDist
Specifies the minimum distance for page breaks to be visible.
mxGraphAbstractHierarchyCell.prototype.minRank
The minimum rank this cell occupies.
mxActor.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxConnector.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxCylinder.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxDoubleEllipse.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxEllipse.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxLine.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxRhombus.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxShape.prototype.mixedModeHtml
Specifies if createHtml should be used in mixed Html mode.
mxStencilShape.prototype.mixedModeHtml
Always prefers VML in mixed mode for stencil shapes.
mxSwimlane.prototype.mixedModeHtml
Overrides the parent value with false, meaning it will draw in VML in mixed Html mode.
mxGraph.prototype.model
Holds the mxGraphModel that contains the cells to be displayed.
mxHierarchicalLayout.prototype.model
The internal mxGraphHierarchyModel formed of the layout.
mxSession.prototype.model
Reference to the enclosing mxGraphModel.
mxCellEditor.prototype.modified
Specifies if the label has been modified.
mxEditor.prototype.modified
True if the graph has been modified since it was last saved.
Specifies the event name for mouseDown.
Specifies the event name for mouseMove.
Specifies the event name for mouseUp.
mxConnectionHandler.prototype.mouseDownCounter
Counts the number of mouseDown events since the start.
mxGraph.prototype.mouseListeners
Holds the mouse event listeners.
Specifies the event name for move.
Specifies the event name for moveCells.
Specifies the event name for moveEnd.
Specifies the event name for moveStart.
mxCircleLayout.prototype.moveCircle
Boolean specifying if the circle should be moved to the top, left corner specified by x0 and y0.
mxGraphHandler.prototype.moveEnabled
Specifies if moving is enabled.
mxLayoutManager.prototype.moveHandler
Holds the function that handles the move event.
Holds the function that handles the move event.
mxConnectionHandler.prototype.moveIconBack
Specifies if icons should be moved to the back of the overlay pane.
mxConnectionHandler.prototype.moveIconFront
Specifies if icons should be displayed inside the graph container instead of the overlay pane.
mxHierarchicalLayout.prototype.moveParent
Specifies if the parent should be moved if resizeParent is enabled.
mxConnectionHandler.prototype.movePreviewAway
Switch to enable moving the preview away from the mousepointer.
mxEditor.prototype.movePropertiesDialog
Specifies if the properties dialog should be automatically moved near the cell it is displayed for, otherwise the dialog is not moved.
mxCompactTreeLayout.prototype.moveTree
Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer.
mxGraph.prototype.multigraph
Specifies if multiple edges in the same direction between the same pair of vertices are allowed.
mxGraph.prototype.multiplicities
An array of mxMultiplicities describing the allowed connections in a graph.
Optional global config variable to toggle loading of the two resource files in mxGraph and mxEditor.
Optional global config variable to toggle loading of the CSS files when the library is initialized.
mxCell.prototype.mxTransient
List of members that should not be cloned inside clone.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/index/Variables9.html b/docs/js-api/index/Variables9.html new file mode 100644 index 000000000..76570a5b5 --- /dev/null +++ b/docs/js-api/index/Variables9.html @@ -0,0 +1,38 @@ + + +Variable Index + + + + + + + + + +
Variable Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
N
 name, mxEventObject
 neighbours, mxFastOrganicLayout
 nestedBestRanks, mxMedianHybridCrossingReduction
 nextId, mxGraphModel
 nextLayerConnectedCache, mxCoordinateAssignment
 nextLayerConnectedCells, mxGraphAbstractHierarchyCell
 NO_FO, mxClient
 node, mxShape
 nodeDistance, mxCompactTreeLayout
 NODETYPE_ATTRIBUTE, mxConstants
 NODETYPE_CDATA, mxConstants
 NODETYPE_COMMENT, mxConstants
 NODETYPE_DOCUMENT, mxConstants
 NODETYPE_DOCUMENT_FRAGMENT, mxConstants
 NODETYPE_DOCUMENTTYPE, mxConstants
 NODETYPE_ELEMENT, mxConstants
 NODETYPE_ENTITY, mxConstants
 NODETYPE_ENTITY_REFERENCE, mxConstants
 NODETYPE_NOTATION, mxConstants
 NODETYPE_PROCESSING_INSTRUCTION, mxConstants
 NODETYPE_TEXT, mxConstants
 NONE, mxConstants
 noReset, mxToolbar
 NORMALIZE, mxEvent
 normalizeImage, mxWindow
 normalKeys, mxKeyHandler
 NOTIFY, mxEvent
 NS_SVG, mxConstants
 NS_XHTML, mxConstants
 NS_XLINK, mxConstants
 nudge, WeightedCellSorter
O
 objects
 offset
 oldBounds, mxTemporaryCellStates
 oldScale, mxTemporaryCellStates
 oldStates, mxTemporaryCellStates
 opaqueVmlImages, mxLabel
 OPEN, mxEvent
 ORDER_CELLS, mxEvent
 orderChanged, mxCellState
 ordered, mxGraph
 orientation
 origin, mxCellState
 outline, mxEditor
 OUTLINE_COLOR, mxConstants
 OUTLINE_HANDLE_FILLCOLOR, mxConstants
 OUTLINE_HANDLE_STROKECOLOR, mxConstants
 OUTLINE_STROKEWIDTH, mxConstants
 outlineResource, mxEditor
+ +
mxEventObject.prototype.name
Holds the name.
mxFastOrganicLayout.prototype.neighbours
Local copy of cell neighbours.
mxMedianHybridCrossingReduction.prototype.nestedBestRanks
Stores each rank as a collection of cells in the best order found for each layer so far
mxGraphModel.prototype.nextId
Specifies the next Id to be created.
mxCoordinateAssignment.prototype.nextLayerConnectedCache
A store of connections to the layer above for speed
mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells
A cached version of the cells this cell connects to on the next layer up
NO_FO: navigator.userAgent.indexOf('Firefox/1.') >
True if foreignObject support is not available.
mxShape.prototype.node
Holds the outermost DOM node that represents this shape.
mxCompactTreeLayout.prototype.nodeDistance
Holds the nodeDistance.
DOM node of type ATTRIBUTE.
DOM node of type CDATA.
DOM node of type COMMENT.
DOM node of type DOCUMENT.
DOM node of type DOCUMENT_FRAGMENT.
DOM node of type DOCUMENTTYPE.
DOM node of type ELEMENT.
DOM node of type ENTITY.
DOM node of type ENTITY_REFERENCE.
DOM node of type NOTATION.
DOM node of type PROCESSING_INSTRUCTION.
DOM node of type TEXT.
Defines the value for none.
mxToolbar.prototype.noReset
Specifies if resetMode requires a forced flag of true for resetting the current mode in the toolbar.
Specifies the event name for normalize.
mxWindow.prototype.normalizeImage
URL of the image to be used for the normalize icon in the titlebar.
mxKeyHandler.prototype.normalKeys
Maps from keycodes to functions for non-pressed control keys.
Specifies the event name for notify.
Defines the SVG namespace.
Defines the XHTML namespace.
Defines the XLink namespace.
WeightedCellSorter.prototype.nudge
Whether or not to flip equal weight values.
+ + + +
mxCodec.prototype.objects
Maps from IDs to objects.
Contains all objects where any listener was added using addListener.
mxCellOverlay.prototype.offset
Holds the offset as an mxPoint.
mxGeometry.prototype.offset
For edges, this holds the offset (in pixels) from the position defined by x and y on the edge.
mxTemporaryCellStates.prototype.oldBounds
Holds the height of the rectangle.
mxTemporaryCellStates.prototype.oldScale
Holds the height of the rectangle.
mxTemporaryCellStates.prototype.oldStates
Holds the height of the rectangle.
mxLabel.prototype.opaqueVmlImages
Specifies if all VML images should be rendered without transparency, that is, if the current opacity should be ignored for images.
Specifies the event name for open.
Specifies the event name for orderCells.
mxCellState.prototype.orderChanged
Specifies if the cell has changed order and the display needs to be updated.
mxGraph.prototype.ordered
Specifies if the display should reflect the order of the cells in the model.
mxCoordinateAssignment.prototype.orientation
The position of the root ( start ) node(s) relative to the rest of the laid out graph.
mxHierarchicalLayout.prototype.orientation
The position of the root node(s) relative to the laid out graph in.
mxCellState.prototype.origin
mxPoint that holds the origin for all child cells.
mxEditor.prototype.outline
Reference to the mxWindow that contains the outline.
Defines the color to be used for the outline rectangle border.
Defines the color to be used for the outline sizer fill color.
Defines the color to be used for the outline sizer stroke color.
Defines the strokewidth to be used for the outline rectangle stroke width.
mxEditor.prototype.outlineResource
Specifies the resource key for the outline window title.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/js-api/javascript/main.js b/docs/js-api/javascript/main.js new file mode 100644 index 000000000..3f42acde6 --- /dev/null +++ b/docs/js-api/javascript/main.js @@ -0,0 +1,841 @@ +// This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure +// Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL) +// Refer to License.txt for the complete details + +// This file may be distributed with documentation files generated by Natural Docs. +// Such documentation is not covered by Natural Docs' copyright and licensing, +// and may have its own copyright and distribution terms as decided by its author. + + +// +// Browser Styles +// ____________________________________________________________________________ + +var agt=navigator.userAgent.toLowerCase(); +var browserType; +var browserVer; + +if (agt.indexOf("opera") != -1) + { + browserType = "Opera"; + + if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) + { browserVer = "Opera7"; } + else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1) + { browserVer = "Opera8"; } + else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1) + { browserVer = "Opera9"; } + } + +else if (agt.indexOf("applewebkit") != -1) + { + browserType = "Safari"; + + if (agt.indexOf("version/3") != -1) + { browserVer = "Safari3"; } + else if (agt.indexOf("safari/4") != -1) + { browserVer = "Safari2"; } + } + +else if (agt.indexOf("khtml") != -1) + { + browserType = "Konqueror"; + } + +else if (agt.indexOf("msie") != -1) + { + browserType = "IE"; + + if (agt.indexOf("msie 6") != -1) + { browserVer = "IE6"; } + else if (agt.indexOf("msie 7") != -1) + { browserVer = "IE7"; } + } + +else if (agt.indexOf("gecko") != -1) + { + browserType = "Firefox"; + + if (agt.indexOf("rv:1.7") != -1) + { browserVer = "Firefox1"; } + else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1) + { browserVer = "Firefox15"; } + else if (agt.indexOf("rv:1.8.1") != -1) + { browserVer = "Firefox2"; } + } + + +// +// Support Functions +// ____________________________________________________________________________ + + +function GetXPosition(item) + { + var position = 0; + + if (item.offsetWidth != null) + { + while (item != document.body && item != null) + { + position += item.offsetLeft; + item = item.offsetParent; + }; + }; + + return position; + }; + + +function GetYPosition(item) + { + var position = 0; + + if (item.offsetWidth != null) + { + while (item != document.body && item != null) + { + position += item.offsetTop; + item = item.offsetParent; + }; + }; + + return position; + }; + + +function MoveToPosition(item, x, y) + { + // Opera 5 chokes on the px extension, so it can use the Microsoft one instead. + + if (item.style.left != null) + { + item.style.left = x + "px"; + item.style.top = y + "px"; + } + else if (item.style.pixelLeft != null) + { + item.style.pixelLeft = x; + item.style.pixelTop = y; + }; + }; + + +// +// Menu +// ____________________________________________________________________________ + + +function ToggleMenu(id) + { + if (!window.document.getElementById) + { return; }; + + var display = window.document.getElementById(id).style.display; + + if (display == "none") + { display = "block"; } + else + { display = "none"; } + + window.document.getElementById(id).style.display = display; + } + +function HideAllBut(ids, max) + { + if (document.getElementById) + { + ids.sort( function(a,b) { return a - b; } ); + var number = 1; + + while (number < max) + { + if (ids.length > 0 && number == ids[0]) + { ids.shift(); } + else + { + document.getElementById("MGroupContent" + number).style.display = "none"; + }; + + number++; + }; + }; + } + + +// +// Tooltips +// ____________________________________________________________________________ + + +var tooltipTimer = 0; + +function ShowTip(event, tooltipID, linkID) + { + if (tooltipTimer) + { clearTimeout(tooltipTimer); }; + + var docX = event.clientX + window.pageXOffset; + var docY = event.clientY + window.pageYOffset; + + var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")"; + + tooltipTimer = setTimeout(showCommand, 1000); + } + +function ReallyShowTip(tooltipID, linkID, docX, docY) + { + tooltipTimer = 0; + + var tooltip; + var link; + + if (document.getElementById) + { + tooltip = document.getElementById(tooltipID); + link = document.getElementById(linkID); + } +/* else if (document.all) + { + tooltip = eval("document.all['" + tooltipID + "']"); + link = eval("document.all['" + linkID + "']"); + } +*/ + if (tooltip) + { + var left = GetXPosition(link); + var top = GetYPosition(link); + top += link.offsetHeight; + + + // The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number + // in case some browser snuck through the above if statement but didn't support everything. + + if (!isFinite(top) || top == 0) + { + left = docX; + top = docY; + } + + // Some spacing to get it out from under the cursor. + + top += 10; + + // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the + // page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right. + + if (tooltip.offsetWidth != null) + { + var width = tooltip.offsetWidth; + var docWidth = document.body.clientWidth; + + if (left + width > docWidth) + { left = docWidth - width - 1; } + + // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width. + if (left < 0) + { left = 0; }; + } + + MoveToPosition(tooltip, left, top); + tooltip.style.visibility = "visible"; + } + } + +function HideTip(tooltipID) + { + if (tooltipTimer) + { + clearTimeout(tooltipTimer); + tooltipTimer = 0; + } + + var tooltip; + + if (document.getElementById) + { tooltip = document.getElementById(tooltipID); } + else if (document.all) + { tooltip = eval("document.all['" + tooltipID + "']"); } + + if (tooltip) + { tooltip.style.visibility = "hidden"; } + } + + +// +// Blockquote fix for IE +// ____________________________________________________________________________ + + +function NDOnLoad() + { + if (browserVer == "IE6") + { + var scrollboxes = document.getElementsByTagName('blockquote'); + + if (scrollboxes.item(0)) + { + NDDoResize(); + window.onresize=NDOnResize; + }; + }; + }; + + +var resizeTimer = 0; + +function NDOnResize() + { + if (resizeTimer != 0) + { clearTimeout(resizeTimer); }; + + resizeTimer = setTimeout(NDDoResize, 250); + }; + + +function NDDoResize() + { + var scrollboxes = document.getElementsByTagName('blockquote'); + + var i; + var item; + + i = 0; + while (item = scrollboxes.item(i)) + { + item.style.width = 100; + i++; + }; + + i = 0; + while (item = scrollboxes.item(i)) + { + item.style.width = item.parentNode.offsetWidth; + i++; + }; + + clearTimeout(resizeTimer); + resizeTimer = 0; + } + + + +/* ________________________________________________________________________________________________________ + + Class: SearchPanel + ________________________________________________________________________________________________________ + + A class handling everything associated with the search panel. + + Parameters: + + name - The name of the global variable that will be storing this instance. Is needed to be able to set timeouts. + mode - The mode the search is going to work in. Pass CommandLineOption()>, so the + value will be something like "HTML" or "FramedHTML". + + ________________________________________________________________________________________________________ +*/ + + +function SearchPanel(name, mode, resultsPath) + { + if (!name || !mode || !resultsPath) + { alert("Incorrect parameters to SearchPanel."); }; + + + // Group: Variables + // ________________________________________________________________________ + + /* + var: name + The name of the global variable that will be storing this instance of the class. + */ + this.name = name; + + /* + var: mode + The mode the search is going to work in, such as "HTML" or "FramedHTML". + */ + this.mode = mode; + + /* + var: resultsPath + The relative path from the current HTML page to the results page directory. + */ + this.resultsPath = resultsPath; + + /* + var: keyTimeout + The timeout used between a keystroke and when a search is performed. + */ + this.keyTimeout = 0; + + /* + var: keyTimeoutLength + The length of in thousandths of a second. + */ + this.keyTimeoutLength = 500; + + /* + var: lastSearchValue + The last search string executed, or an empty string if none. + */ + this.lastSearchValue = ""; + + /* + var: lastResultsPage + The last results page. The value is only relevant if is set. + */ + this.lastResultsPage = ""; + + /* + var: deactivateTimeout + + The timeout used between when a control is deactivated and when the entire panel is deactivated. Is necessary + because a control may be deactivated in favor of another control in the same panel, in which case it should stay + active. + */ + this.deactivateTimout = 0; + + /* + var: deactivateTimeoutLength + The length of in thousandths of a second. + */ + this.deactivateTimeoutLength = 200; + + + + + // Group: DOM Elements + // ________________________________________________________________________ + + + // Function: DOMSearchField + this.DOMSearchField = function() + { return document.getElementById("MSearchField"); }; + + // Function: DOMSearchType + this.DOMSearchType = function() + { return document.getElementById("MSearchType"); }; + + // Function: DOMPopupSearchResults + this.DOMPopupSearchResults = function() + { return document.getElementById("MSearchResults"); }; + + // Function: DOMPopupSearchResultsWindow + this.DOMPopupSearchResultsWindow = function() + { return document.getElementById("MSearchResultsWindow"); }; + + // Function: DOMSearchPanel + this.DOMSearchPanel = function() + { return document.getElementById("MSearchPanel"); }; + + + + + // Group: Event Handlers + // ________________________________________________________________________ + + + /* + Function: OnSearchFieldFocus + Called when focus is added or removed from the search field. + */ + this.OnSearchFieldFocus = function(isActive) + { + this.Activate(isActive); + }; + + + /* + Function: OnSearchFieldChange + Called when the content of the search field is changed. + */ + this.OnSearchFieldChange = function() + { + if (this.keyTimeout) + { + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + }; + + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + + if (searchValue != this.lastSearchValue) + { + if (searchValue != "") + { + this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength); + } + else + { + if (this.mode == "HTML") + { this.DOMPopupSearchResultsWindow().style.display = "none"; }; + this.lastSearchValue = ""; + }; + }; + }; + + + /* + Function: OnSearchTypeFocus + Called when focus is added or removed from the search type. + */ + this.OnSearchTypeFocus = function(isActive) + { + this.Activate(isActive); + }; + + + /* + Function: OnSearchTypeChange + Called when the search type is changed. + */ + this.OnSearchTypeChange = function() + { + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + + if (searchValue != "") + { + this.Search(); + }; + }; + + + + // Group: Action Functions + // ________________________________________________________________________ + + + /* + Function: CloseResultsWindow + Closes the results window. + */ + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = "none"; + this.Activate(false, true); + }; + + + /* + Function: Search + Performs a search. + */ + this.Search = function() + { + this.keyTimeout = 0; + + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + var searchTopic = this.DOMSearchType().value; + + var pageExtension = searchValue.substr(0,1); + + if (pageExtension.match(/^[a-z]/i)) + { pageExtension = pageExtension.toUpperCase(); } + else if (pageExtension.match(/^[0-9]/)) + { pageExtension = 'Numbers'; } + else + { pageExtension = "Symbols"; }; + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + // indexSectionsWithContent is defined in searchdata.js + if (indexSectionsWithContent[searchTopic][pageExtension] == true) + { + resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else + { + resultsPage = this.resultsPath + '/NoResults.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + }; + + var resultsFrame; + if (this.mode == "HTML") + { resultsFrame = window.frames.MSearchResults; } + else if (this.mode == "FramedHTML") + { resultsFrame = window.top.frames['Content']; }; + + + if (resultsPage != this.lastResultsPage || + + // Bug in IE. If everything becomes hidden in a run, none of them will be able to be reshown in the next for some + // reason. It counts the right number of results, and you can even read the display as "block" after setting it, but it + // just doesn't work in IE 6 or IE 7. So if we're on the right page but the previous search had no results, reload the + // page anyway to get around the bug. + (browserType == "IE" && hasResultsPage && + (!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) ) + + { + resultsFrame.location.href = resultsPageWithSearch; + } + + // So if the results page is right and there's no IE bug, reperform the search on the existing page. We have to check if there + // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even + // if it did. + else if (hasResultsPage) + { + // We need to check if this exists in case the frame is present but didn't finish loading. + if (resultsFrame.searchResults) + { resultsFrame.searchResults.Search(searchValue); } + + // Otherwise just reload instead of waiting. + else + { resultsFrame.location.href = resultsPageWithSearch; }; + }; + + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block") + { + var domSearchType = this.DOMSearchType(); + + var left = GetXPosition(domSearchType); + var top = GetYPosition(domSearchType) + domSearchType.offsetHeight; + + MoveToPosition(domPopupSearchResultsWindow, left, top); + domPopupSearchResultsWindow.style.display = 'block'; + }; + + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + }; + + + + // Group: Activation Functions + // Functions that handle whether the entire panel is active or not. + // ________________________________________________________________________ + + + /* + Function: Activate + + Activates or deactivates the search panel, resetting things to their default values if necessary. You can call this on every + control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently. + + Parameters: + + isActive - Whether you're activating or deactivating the panel. + ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay. + */ + this.Activate = function(isActive, ignoreDeactivateDelay) + { + // We want to ignore isActive being false while the results window is open. + if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block")) + { + if (this.inactivateTimeout) + { + clearTimeout(this.inactivateTimeout); + this.inactivateTimeout = 0; + }; + + this.DOMSearchPanel().className = 'MSearchPanelActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == 'Search') + { searchField.value = ""; } + } + else if (!ignoreDeactivateDelay) + { + this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength); + } + else + { + this.InactivateAfterTimeout(); + }; + }; + + + /* + Function: InactivateAfterTimeout + + Called by , which is set by . Inactivation occurs on a timeout because a control may + receive OnBlur() when focus is really transferring to another control in the search panel. In this case we don't want to + actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value. + So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation. + */ + this.InactivateAfterTimeout = function() + { + this.inactivateTimeout = 0; + + this.DOMSearchPanel().className = 'MSearchPanelInactive'; + this.DOMSearchField().value = "Search"; + + this.lastSearchValue = ""; + this.lastResultsPage = ""; + }; + }; + + + + +/* ________________________________________________________________________________________________________ + + Class: SearchResults + _________________________________________________________________________________________________________ + + The class that handles everything on the search results page. + _________________________________________________________________________________________________________ +*/ + + +function SearchResults(name, mode) + { + /* + var: mode + The mode the search is going to work in, such as "HTML" or "FramedHTML". + */ + this.mode = mode; + + /* + var: lastMatchCount + The number of matches from the last run of . + */ + this.lastMatchCount = 0; + + + /* + Function: Toggle + Toggles the visibility of the passed element ID. + */ + this.Toggle = function(id) + { + if (this.mode == "FramedHTML") + { return; }; + + var parentElement = document.getElementById(id); + + var element = parentElement.firstChild; + + while (element && element != parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'ISubIndex') + { + if (element.style.display == 'block') + { element.style.display = "none"; } + else + { element.style.display = 'block'; } + }; + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { element = element.firstChild; } + else if (element.nextSibling) + { element = element.nextSibling; } + else + { + do + { + element = element.parentNode; + } + while (element && element != parentElement && !element.nextSibling); + + if (element && element != parentElement) + { element = element.nextSibling; }; + }; + }; + }; + + + /* + Function: Search + + Searches for the passed string. If there is no parameter, it takes it from the URL query. + + Always returns true, since other documents may try to call it and that may or may not be possible. + */ + this.Search = function(search) + { + if (!search) + { + search = window.location.search; + search = search.substring(1); // Remove the leading ? + search = unescape(search); + }; + + search = search.replace(/^ +/, ""); + search = search.replace(/ +$/, ""); + search = search.toLowerCase(); + + if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily. + { + search = search.replace(/\_/g, "_und"); + search = search.replace(/\ +/gi, "_spc"); + search = search.replace(/\~/g, "_til"); + search = search.replace(/\!/g, "_exc"); + search = search.replace(/\@/g, "_att"); + search = search.replace(/\#/g, "_num"); + search = search.replace(/\$/g, "_dol"); + search = search.replace(/\%/g, "_pct"); + search = search.replace(/\^/g, "_car"); + search = search.replace(/\&/g, "_amp"); + search = search.replace(/\*/g, "_ast"); + search = search.replace(/\(/g, "_lpa"); + search = search.replace(/\)/g, "_rpa"); + search = search.replace(/\-/g, "_min"); + search = search.replace(/\+/g, "_plu"); + search = search.replace(/\=/g, "_equ"); + search = search.replace(/\{/g, "_lbc"); + search = search.replace(/\}/g, "_rbc"); + search = search.replace(/\[/g, "_lbk"); + search = search.replace(/\]/g, "_rbk"); + search = search.replace(/\:/g, "_col"); + search = search.replace(/\;/g, "_sco"); + search = search.replace(/\"/g, "_quo"); + search = search.replace(/\'/g, "_apo"); + search = search.replace(/\/g, "_ran"); + search = search.replace(/\,/g, "_com"); + search = search.replace(/\./g, "_per"); + search = search.replace(/\?/g, "_que"); + search = search.replace(/\//g, "_sla"); + search = search.replace(/[^a-z0-9\_]i/gi, "_zzz"); + }; + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); + + if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search) + { + row.style.display = "block"; + matches++; + } + else + { row.style.display = "none"; }; + }; + + i++; + }; + + document.getElementById("Searching").style.display="none"; + + if (matches == 0) + { document.getElementById("NoMatches").style.display="block"; } + else + { document.getElementById("NoMatches").style.display="none"; } + + this.lastMatchCount = matches; + + return true; + }; + }; + diff --git a/docs/js-api/javascript/prettify.js b/docs/js-api/javascript/prettify.js new file mode 100644 index 000000000..50a8d0ff1 --- /dev/null +++ b/docs/js-api/javascript/prettify.js @@ -0,0 +1,1526 @@ + +// This code comes from the December 2009 release of Google Prettify, which is Copyright © 2006 Google Inc. +// Minor modifications are marked with "ND Change" comments. +// As part of Natural Docs, this code is licensed under version 3 of the GNU Affero General Public License (AGPL.) +// However, it may also be obtained separately under version 2.0 of the Apache License. +// Refer to License.txt for the complete details + + +// Main code +// ____________________________________________________________________________ + +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + *

+ * + * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

+ * Usage:

    + *
  1. include this source file in an html page via + * {@code } + *
  2. define style rules. See the example page for examples. + *
  3. mark the {@code
    } and {@code } tags in your source with
    + *    {@code class=prettyprint.}
    + *    You can also use the (html deprecated) {@code } tag, but the pretty
    + *    printer needs to do more substantial DOM manipulations to support that, so
    + *    some css styles may not be preserved.
    + * </ol>
    + * That's it.  I wanted to keep the API as simple as possible, so there's no
    + * need to specify which language the code is in, but if you wish, you can add
    + * another class to the {@code <pre>} or {@code <code>} element to specify the
    + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    + * starts with "lang-" followed by a file extension, specifies the file type.
    + * See the "lang-*.js" files in this directory for code that implements
    + * per-language file handlers.
    + * <p>
    + * Change log:<br>
    + * cbeust, 2006/08/22
    + * <blockquote>
    + *   Java annotations (start with "@") are now captured as literals ("lit")
    + * </blockquote>
    + * @requires console
    + * @overrides window
    + */
    +
    +// JSLint declarations
    +/*global console, document, navigator, setTimeout, window */
    +
    +/**
    + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    + * UI events.
    + * If set to {@code false}, {@code prettyPrint()} is synchronous.
    + */
    +window['PR_SHOULD_USE_CONTINUATION'] = true;
    +
    +/** the number of characters between tab columns */
    +window['PR_TAB_WIDTH'] = 8;
    +
    +/** Walks the DOM returning a properly escaped version of innerHTML.
    +  * @param {Node} node
    +  * @param {Array.<string>} out output buffer that receives chunks of HTML.
    +  */
    +window['PR_normalizedHtml']
    +
    +/** Contains functions for creating and registering new language handlers.
    +  * @type {Object}
    +  */
    +  = window['PR']
    +
    +/** Pretty print a chunk of code.
    +  *
    +  * @param {string} sourceCodeHtml code as html
    +  * @return {string} code as html, but prettier
    +  */
    +  = window['prettyPrintOne']
    +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    +  * {@code class=prettyprint} and prettify them.
    +  * @param {Function?} opt_whenDone if specified, called when the last entry
    +  *     has been finished.
    +  */
    +  = window['prettyPrint'] = void 0;
    +
    +/** browser detection. @extern @returns false if not IE, otherwise the major version. */
    +window['_pr_isIE6'] = function () {
    +  var ieVersion = navigator && navigator.userAgent &&
    +      navigator.userAgent.match(/\bMSIE ([678])\./);
    +  ieVersion = ieVersion ? +ieVersion[1] : false;
    +  window['_pr_isIE6'] = function () { return ieVersion; };
    +  return ieVersion;
    +};
    +
    +
    +(function () {
    +  // Keyword lists for various languages.
    +  var FLOW_CONTROL_KEYWORDS =
    +      "break continue do else for if return while ";
    +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
    +      "double enum extern float goto int long register short signed sizeof " +
    +      "static struct switch typedef union unsigned void volatile ";
    +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
    +      "new operator private protected public this throw true try typeof ";
    +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
    +      "concept concept_map const_cast constexpr decltype " +
    +      "dynamic_cast explicit export friend inline late_check " +
    +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
    +      "template typeid typename using virtual wchar_t where ";
    +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
    +      "abstract boolean byte extends final finally implements import " +
    +      "instanceof null native package strictfp super synchronized throws " +
    +      "transient ";
    +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
    +      "as base by checked decimal delegate descending event " +
    +      "fixed foreach from group implicit in interface internal into is lock " +
    +      "object out override orderby params partial readonly ref sbyte sealed " +
    +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
    +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
    +      "debugger eval export function get null set undefined var with " +
    +      "Infinity NaN ";
    +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
    +      "goto if import last local my next no our print package redo require " +
    +      "sub undef unless until use wantarray while BEGIN END ";
    +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
    +      "elif except exec finally from global import in is lambda " +
    +      "nonlocal not or pass print raise try with yield " +
    +      "False True None ";
    +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
    +      " defined elsif end ensure false in module next nil not or redo rescue " +
    +      "retry self super then true undef unless until when yield BEGIN END ";
    +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
    +      "function in local set then until ";
    +  var ALL_KEYWORDS = (
    +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
    +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
    +
    +  // token style names.  correspond to css classes
    +  /** token style for a string literal */
    +  var PR_STRING = 'str';
    +  /** token style for a keyword */
    +  var PR_KEYWORD = 'kwd';
    +  /** token style for a comment */
    +  var PR_COMMENT = 'com';
    +  /** token style for a type */
    +  var PR_TYPE = 'typ';
    +  /** token style for a literal value.  e.g. 1, null, true. */
    +  var PR_LITERAL = 'lit';
    +  /** token style for a punctuation string. */
    +  var PR_PUNCTUATION = 'pun';
    +  /** token style for a punctuation string. */
    +  var PR_PLAIN = 'pln';
    +
    +  /** token style for an sgml tag. */
    +  var PR_TAG = 'tag';
    +  /** token style for a markup declaration such as a DOCTYPE. */
    +  var PR_DECLARATION = 'dec';
    +  /** token style for embedded source. */
    +  var PR_SOURCE = 'src';
    +  /** token style for an sgml attribute name. */
    +  var PR_ATTRIB_NAME = 'atn';
    +  /** token style for an sgml attribute value. */
    +  var PR_ATTRIB_VALUE = 'atv';
    +
    +  /**
    +   * A class that indicates a section of markup that is not code, e.g. to allow
    +   * embedding of line numbers within code listings.
    +   */
    +  var PR_NOCODE = 'nocode';
    +
    +  /** A set of tokens that can precede a regular expression literal in
    +    * javascript.
    +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
    +    * list, but I've removed ones that might be problematic when seen in
    +    * languages that don't support regular expression literals.
    +    *
    +    * <p>Specifically, I've removed any keywords that can't precede a regexp
    +    * literal in a syntactically legal javascript program, and I've removed the
    +    * "in" keyword since it's not a keyword in many languages, and might be used
    +    * as a count of inches.
    +    *
    +    * <p>The link a above does not accurately describe EcmaScript rules since
    +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    +    * very well in practice.
    +    *
    +    * @private
    +    */
    +  var REGEXP_PRECEDER_PATTERN = function () {
    +      var preceders = [
    +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
    +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
    +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
    +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
    +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
    +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
    +          "||=", "~" /* handles =~ and !~ */,
    +          "break", "case", "continue", "delete",
    +          "do", "else", "finally", "instanceof",
    +          "return", "throw", "try", "typeof"
    +          ];
    +      var pattern = '(?:^^|[+-]';
    +      for (var i = 0; i < preceders.length; ++i) {
    +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
    +      }
    +      pattern += ')\\s*';  // matches at end, and matches empty string
    +      return pattern;
    +      // CAVEAT: this does not properly handle the case where a regular
    +      // expression immediately follows another since a regular expression may
    +      // have flags for case-sensitivity and the like.  Having regexp tokens
    +      // adjacent is not valid in any language I'm aware of, so I'm punting.
    +      // TODO: maybe style special characters inside a regexp as punctuation.
    +    }();
    +
    +  // Define regexps here so that the interpreter doesn't have to create an
    +  // object each time the function containing them is called.
    +  // The language spec requires a new object created even if you don't access
    +  // the $1 members.
    +  var pr_amp = /&/g;
    +  var pr_lt = /</g;
    +  var pr_gt = />/g;
    +  var pr_quot = /\"/g;
    +  /** like textToHtml but escapes double quotes to be attribute safe. */
    +  function attribToHtml(str) {
    +    return str.replace(pr_amp, '&amp;')
    +        .replace(pr_lt, '&lt;')
    +        .replace(pr_gt, '&gt;')
    +        .replace(pr_quot, '&quot;');
    +  }
    +
    +  /** escapest html special characters to html. */
    +  function textToHtml(str) {
    +    return str.replace(pr_amp, '&amp;')
    +        .replace(pr_lt, '&lt;')
    +        .replace(pr_gt, '&gt;');
    +  }
    +
    +
    +  var pr_ltEnt = /&lt;/g;
    +  var pr_gtEnt = /&gt;/g;
    +  var pr_aposEnt = /&apos;/g;
    +  var pr_quotEnt = /&quot;/g;
    +  var pr_ampEnt = /&amp;/g;
    +  var pr_nbspEnt = /&nbsp;/g;
    +  /** unescapes html to plain text. */
    +  function htmlToText(html) {
    +    var pos = html.indexOf('&');
    +    if (pos < 0) { return html; }
    +    // Handle numeric entities specially.  We can't use functional substitution
    +    // since that doesn't work in older versions of Safari.
    +    // These should be rare since most browsers convert them to normal chars.
    +    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
    +      var end = html.indexOf(';', pos);
    +      if (end >= 0) {
    +        var num = html.substring(pos + 3, end);
    +        var radix = 10;
    +        if (num && num.charAt(0) === 'x') {
    +          num = num.substring(1);
    +          radix = 16;
    +        }
    +        var codePoint = parseInt(num, radix);
    +        if (!isNaN(codePoint)) {
    +          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
    +                  html.substring(end + 1));
    +        }
    +      }
    +    }
    +
    +    return html.replace(pr_ltEnt, '<')
    +        .replace(pr_gtEnt, '>')
    +        .replace(pr_aposEnt, "'")
    +        .replace(pr_quotEnt, '"')
    +        .replace(pr_nbspEnt, ' ')
    +        .replace(pr_ampEnt, '&');
    +  }
    +
    +  /** is the given node's innerHTML normally unescaped? */
    +  function isRawContent(node) {
    +    return 'XMP' === node.tagName;
    +  }
    +
    +  var newlineRe = /[\r\n]/g;
    +  /**
    +   * Are newlines and adjacent spaces significant in the given node's innerHTML?
    +   */
    +  function isPreformatted(node, content) {
    +    // PRE means preformatted, and is a very common case, so don't create
    +    // unnecessary computed style objects.
    +    if ('PRE' === node.tagName) { return true; }
    +    if (!newlineRe.test(content)) { return true; }  // Don't care
    +    var whitespace = '';
    +    // For disconnected nodes, IE has no currentStyle.
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      // Firefox makes a best guess if node is disconnected whereas Safari
    +      // returns the empty string.
    +      whitespace = window.getComputedStyle(node, null).whiteSpace;
    +    }
    +    return !whitespace || whitespace === 'pre';
    +  }
    +
    +  function normalizedHtml(node, out) {
    +    switch (node.nodeType) {
    +      case 1:  // an element
    +        var name = node.tagName.toLowerCase();
    +        out.push('<', name);
    +        for (var i = 0; i < node.attributes.length; ++i) {
    +          var attr = node.attributes[i];
    +          if (!attr.specified) { continue; }
    +          out.push(' ');
    +          normalizedHtml(attr, out);
    +        }
    +        out.push('>');
    +        for (var child = node.firstChild; child; child = child.nextSibling) {
    +          normalizedHtml(child, out);
    +        }
    +        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
    +          out.push('<\/', name, '>');
    +        }
    +        break;
    +      case 2: // an attribute
    +        out.push(node.name.toLowerCase(), '="', attribToHtml(node.value), '"');
    +        break;
    +      case 3: case 4: // text
    +        out.push(textToHtml(node.nodeValue));
    +        break;
    +    }
    +  }
    +
    +  /**
    +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    +   * matches the union o the sets o strings matched d by the input RegExp.
    +   * Since it matches globally, if the input strings have a start-of-input
    +   * anchor (/^.../), it is ignored for the purposes of unioning.
    +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    +   * @return {RegExp} a global regex.
    +   */
    +  function combinePrefixPatterns(regexs) {
    +    var capturedGroupIndex = 0;
    +
    +    var needToFoldCase = false;
    +    var ignoreCase = false;
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.ignoreCase) {
    +        ignoreCase = true;
    +      } else if (/[a-z]/i.test(regex.source.replace(
    +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    +        needToFoldCase = true;
    +        ignoreCase = false;
    +        break;
    +      }
    +    }
    +
    +    function decodeEscape(charsetPart) {
    +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
    +      switch (charsetPart.charAt(1)) {
    +        case 'b': return 8;
    +        case 't': return 9;
    +        case 'n': return 0xa;
    +        case 'v': return 0xb;
    +        case 'f': return 0xc;
    +        case 'r': return 0xd;
    +        case 'u': case 'x':
    +          return parseInt(charsetPart.substring(2), 16)
    +              || charsetPart.charCodeAt(1);
    +        case '0': case '1': case '2': case '3': case '4':
    +        case '5': case '6': case '7':
    +          return parseInt(charsetPart.substring(1), 8);
    +        default: return charsetPart.charCodeAt(1);
    +      }
    +    }
    +
    +    function encodeEscape(charCode) {
    +      if (charCode < 0x20) {
    +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    +      }
    +      var ch = String.fromCharCode(charCode);
    +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
    +        ch = '\\' + ch;
    +      }
    +      return ch;
    +    }
    +
    +    function caseFoldCharset(charSet) {
    +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    +          new RegExp(
    +              '\\\\u[0-9A-Fa-f]{4}'
    +              + '|\\\\x[0-9A-Fa-f]{2}'
    +              + '|\\\\[0-3][0-7]{0,2}'
    +              + '|\\\\[0-7]{1,2}'
    +              + '|\\\\[\\s\\S]'
    +              + '|-'
    +              + '|[^-\\\\]',
    +              'g'));
    +      var groups = [];
    +      var ranges = [];
    +      var inverse = charsetParts[0] === '^';
    +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    +        var p = charsetParts[i];
    +        switch (p) {
    +          case '\\B': case '\\b':
    +          case '\\D': case '\\d':
    +          case '\\S': case '\\s':
    +          case '\\W': case '\\w':
    +            groups.push(p);
    +            continue;
    +        }
    +        var start = decodeEscape(p);
    +        var end;
    +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
    +          end = decodeEscape(charsetParts[i + 2]);
    +          i += 2;
    +        } else {
    +          end = start;
    +        }
    +        ranges.push([start, end]);
    +        // If the range might intersect letters, then expand it.
    +        if (!(end < 65 || start > 122)) {
    +          if (!(end < 65 || start > 90)) {
    +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    +          }
    +          if (!(end < 97 || start > 122)) {
    +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    +          }
    +        }
    +      }
    +
    +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    +      // -> [[1, 12], [14, 14], [16, 17]]
    +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    +      var consolidatedRanges = [];
    +      var lastRange = [NaN, NaN];
    +      for (var i = 0; i < ranges.length; ++i) {
    +        var range = ranges[i];
    +        if (range[0] <= lastRange[1] + 1) {
    +          lastRange[1] = Math.max(lastRange[1], range[1]);
    +        } else {
    +          consolidatedRanges.push(lastRange = range);
    +        }
    +      }
    +
    +      var out = ['['];
    +      if (inverse) { out.push('^'); }
    +      out.push.apply(out, groups);
    +      for (var i = 0; i < consolidatedRanges.length; ++i) {
    +        var range = consolidatedRanges[i];
    +        out.push(encodeEscape(range[0]));
    +        if (range[1] > range[0]) {
    +          if (range[1] + 1 > range[0]) { out.push('-'); }
    +          out.push(encodeEscape(range[1]));
    +        }
    +      }
    +      out.push(']');
    +      return out.join('');
    +    }
    +
    +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    +      // Split into character sets, escape sequences, punctuation strings
    +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    +      // include any of the above.
    +      var parts = regex.source.match(
    +          new RegExp(
    +              '(?:'
    +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    +              + '|\\\\[0-9]+'  // a back-reference or octal escape
    +              + '|\\\\[^ux0-9]'  // other escape sequence
    +              + '|\\(\\?[:!=]'  // start of a non-capturing group
    +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
    +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    +              + ')',
    +              'g'));
    +      var n = parts.length;
    +
    +      // Maps captured group numbers to the number they will occupy in
    +      // the output or to -1 if that has not been determined, or to
    +      // undefined if they need not be capturing in the output.
    +      var capturedGroups = [];
    +
    +      // Walk over and identify back references to build the capturedGroups
    +      // mapping.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          // groups are 1-indexed, so max group index is count of '('
    +          ++groupIndex;
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            capturedGroups[decimalValue] = -1;
    +          }
    +        }
    +      }
    +
    +      // Renumber groups and reduce capturing groups to non-capturing groups
    +      // where possible.
    +      for (var i = 1; i < capturedGroups.length; ++i) {
    +        if (-1 === capturedGroups[i]) {
    +          capturedGroups[i] = ++capturedGroupIndex;
    +        }
    +      }
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          ++groupIndex;
    +          if (capturedGroups[groupIndex] === undefined) {
    +            parts[i] = '(?:';
    +          }
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            parts[i] = '\\' + capturedGroups[groupIndex];
    +          }
    +        }
    +      }
    +
    +      // Remove any prefix anchors so that the output will match anywhere.
    +      // ^^ really does mean an anchored match though.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    +      }
    +
    +      // Expand letters to groupts to handle mixing of case-sensitive and
    +      // case-insensitive patterns if necessary.
    +      if (regex.ignoreCase && needToFoldCase) {
    +        for (var i = 0; i < n; ++i) {
    +          var p = parts[i];
    +          var ch0 = p.charAt(0);
    +          if (p.length >= 2 && ch0 === '[') {
    +            parts[i] = caseFoldCharset(p);
    +          } else if (ch0 !== '\\') {
    +            // TODO: handle letters in numeric escapes.
    +            parts[i] = p.replace(
    +                /[a-zA-Z]/g,
    +                function (ch) {
    +                  var cc = ch.charCodeAt(0);
    +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    +                });
    +          }
    +        }
    +      }
    +
    +      return parts.join('');
    +    }
    +
    +    var rewritten = [];
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    +      rewritten.push(
    +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    +    }
    +
    +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    +  }
    +
    +  var PR_innerHtmlWorks = null;
    +  function getInnerHtml(node) {
    +    // inner html is hopelessly broken in Safari 2.0.4 when the content is
    +    // an html description of well formed XML and the containing tag is a PRE
    +    // tag, so we detect that case and emulate innerHTML.
    +    if (null === PR_innerHtmlWorks) {
    +      var testNode = document.createElement('PRE');
    +      testNode.appendChild(
    +          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
    +      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
    +    }
    +
    +    if (PR_innerHtmlWorks) {
    +      var content = node.innerHTML;
    +      // XMP tags contain unescaped entities so require special handling.
    +      if (isRawContent(node)) {
    +        content = textToHtml(content);
    +      } else if (!isPreformatted(node, content)) {
    +        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
    +            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
    +      }
    +      return content;
    +    }
    +
    +    var out = [];
    +    for (var child = node.firstChild; child; child = child.nextSibling) {
    +      normalizedHtml(child, out);
    +    }
    +    return out.join('');
    +  }
    +
    +  /** returns a function that expand tabs to spaces.  This function can be fed
    +    * successive chunks of text, and will maintain its own internal state to
    +    * keep track of how tabs are expanded.
    +    * @return {function (string) : string} a function that takes
    +    *   plain text and return the text with tabs expanded.
    +    * @private
    +    */
    +  function makeTabExpander(tabWidth) {
    +    var SPACES = '                ';
    +    var charInLine = 0;
    +
    +    return function (plainText) {
    +      // walk over each character looking for tabs and newlines.
    +      // On tabs, expand them.  On newlines, reset charInLine.
    +      // Otherwise increment charInLine
    +      var out = null;
    +      var pos = 0;
    +      for (var i = 0, n = plainText.length; i < n; ++i) {
    +        var ch = plainText.charAt(i);
    +
    +        switch (ch) {
    +          case '\t':
    +            if (!out) { out = []; }
    +            out.push(plainText.substring(pos, i));
    +            // calculate how much space we need in front of this part
    +            // nSpaces is the amount of padding -- the number of spaces needed
    +            // to move us to the next column, where columns occur at factors of
    +            // tabWidth.
    +            var nSpaces = tabWidth - (charInLine % tabWidth);
    +            charInLine += nSpaces;
    +            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
    +              out.push(SPACES.substring(0, nSpaces));
    +            }
    +            pos = i + 1;
    +            break;
    +          case '\n':
    +            charInLine = 0;
    +            break;
    +          default:
    +            ++charInLine;
    +        }
    +      }
    +      if (!out) { return plainText; }
    +      out.push(plainText.substring(pos));
    +      return out.join('');
    +    };
    +  }
    +
    +  var pr_chunkPattern = new RegExp(
    +      '[^<]+'  // A run of characters other than '<'
    +      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
    +      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
    +      // a probable tag that should not be highlighted
    +      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
    +      + '|<',  // A '<' that does not begin a larger chunk
    +      'g');
    +  var pr_commentPrefix = /^<\!--/;
    +  var pr_cdataPrefix = /^<!\[CDATA\[/;
    +  var pr_brPrefix = /^<br\b/i;
    +  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
    +
    +  /** split markup into chunks of html tags (style null) and
    +    * plain text (style {@link #PR_PLAIN}), converting tags which are
    +    * significant for tokenization (<br>) into their textual equivalent.
    +    *
    +    * @param {string} s html where whitespace is considered significant.
    +    * @return {Object} source code and extracted tags.
    +    * @private
    +    */
    +  function extractTags(s) {
    +    // since the pattern has the 'g' modifier and defines no capturing groups,
    +    // this will return a list of all chunks which we then classify and wrap as
    +    // PR_Tokens
    +    var matches = s.match(pr_chunkPattern);
    +    var sourceBuf = [];
    +    var sourceBufLen = 0;
    +    var extractedTags = [];
    +    if (matches) {
    +      for (var i = 0, n = matches.length; i < n; ++i) {
    +        var match = matches[i];
    +        if (match.length > 1 && match.charAt(0) === '<') {
    +          if (pr_commentPrefix.test(match)) { continue; }
    +          if (pr_cdataPrefix.test(match)) {
    +            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
    +            sourceBuf.push(match.substring(9, match.length - 3));
    +            sourceBufLen += match.length - 12;
    +          } else if (pr_brPrefix.test(match)) {
    +            // <br> tags are lexically significant so convert them to text.
    +            // This is undone later.
    +            sourceBuf.push('\n');
    +            ++sourceBufLen;
    +          } else {
    +            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
    +              // A <span class="nocode"> will start a section that should be
    +              // ignored.  Continue walking the list until we see a matching end
    +              // tag.
    +              var name = match.match(pr_tagNameRe)[2];
    +              var depth = 1;
    +              var j;
    +              end_tag_loop:
    +              for (j = i + 1; j < n; ++j) {
    +                var name2 = matches[j].match(pr_tagNameRe);
    +                if (name2 && name2[2] === name) {
    +                  if (name2[1] === '/') {
    +                    if (--depth === 0) { break end_tag_loop; }
    +                  } else {
    +                    ++depth;
    +                  }
    +                }
    +              }
    +              if (j < n) {
    +                extractedTags.push(
    +                    sourceBufLen, matches.slice(i, j + 1).join(''));
    +                i = j;
    +              } else {  // Ignore unclosed sections.
    +                extractedTags.push(sourceBufLen, match);
    +              }
    +            } else {
    +              extractedTags.push(sourceBufLen, match);
    +            }
    +          }
    +        } else {
    +          var literalText = htmlToText(match);
    +          sourceBuf.push(literalText);
    +          sourceBufLen += literalText.length;
    +        }
    +      }
    +    }
    +    return { source: sourceBuf.join(''), tags: extractedTags };
    +  }
    +
    +  /** True if the given tag contains a class attribute with the nocode class. */
    +  function isNoCodeTag(tag) {
    +    return !!tag
    +        // First canonicalize the representation of attributes
    +        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
    +                 ' $1="$2$3$4"')
    +        // Then look for the attribute we want.
    +        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
    +  }
    +
    +  /**
    +   * Apply the given language handler to sourceCode and add the resulting
    +   * decorations to out.
    +   * @param {number} basePos the index of sourceCode within the chunk of source
    +   *    whose decorations are already present on out.
    +   */
    +  function appendDecorations(basePos, sourceCode, langHandler, out) {
    +    if (!sourceCode) { return; }
    +    var job = {
    +      source: sourceCode,
    +      basePos: basePos
    +    };
    +    langHandler(job);
    +    out.push.apply(out, job.decorations);
    +  }
    +
    +  /** Given triples of [style, pattern, context] returns a lexing function,
    +    * The lexing function interprets the patterns to find token boundaries and
    +    * returns a decoration list of the form
    +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    +    * where index_n is an index into the sourceCode, and style_n is a style
    +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    +    * all characters in sourceCode[index_n-1:index_n].
    +    *
    +    * The stylePatterns is a list whose elements have the form
    +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    +    *
    +    * Style is a style constant like PR_PLAIN, or can be a string of the
    +    * form 'lang-FOO', where FOO is a language extension describing the
    +    * language of the portion of the token in $1 after pattern executes.
    +    * E.g., if style is 'lang-lisp', and group 1 contains the text
    +    * '(hello (world))', then that portion of the token will be passed to the
    +    * registered lisp handler for formatting.
    +    * The text before and after group 1 will be restyled using this decorator
    +    * so decorators should take care that this doesn't result in infinite
    +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    +    * '<script>foo()<\/script>', which would cause the current decorator to
    +    * be called with '<script>' which would not match the same rule since
    +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    +    * the generic tag rule.  The handler registered for the 'js' extension would
    +    * then be called with 'foo()', and finally, the current decorator would
    +    * be called with '<\/script>' which would not match the original rule and
    +    * so the generic tag rule would identify it as a tag.
    +    *
    +    * Pattern must only match prefixes, and if it matches a prefix, then that
    +    * match is considered a token with the same style.
    +    *
    +    * Context is applied to the last non-whitespace, non-comment token
    +    * recognized.
    +    *
    +    * Shortcut is an optional string of characters, any of which, if the first
    +    * character, gurantee that this pattern and only this pattern matches.
    +    *
    +    * @param {Array} shortcutStylePatterns patterns that always start with
    +    *   a known character.  Must have a shortcut string.
    +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    +    *   order if the shortcut ones fail.  May have shortcuts.
    +    *
    +    * @return {function (Object)} a
    +    *   function that takes source code and returns a list of decorations.
    +    */
    +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    +    var shortcuts = {};
    +    var tokenizer;
    +    (function () {
    +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    +      var allRegexs = [];
    +      var regexKeys = {};
    +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    +        var patternParts = allPatterns[i];
    +        var shortcutChars = patternParts[3];
    +        if (shortcutChars) {
    +          for (var c = shortcutChars.length; --c >= 0;) {
    +            shortcuts[shortcutChars.charAt(c)] = patternParts;
    +          }
    +        }
    +        var regex = patternParts[1];
    +        var k = '' + regex;
    +        if (!regexKeys.hasOwnProperty(k)) {
    +          allRegexs.push(regex);
    +          regexKeys[k] = null;
    +        }
    +      }
    +      allRegexs.push(/[\0-\uffff]/);
    +      tokenizer = combinePrefixPatterns(allRegexs);
    +    })();
    +
    +    var nPatterns = fallthroughStylePatterns.length;
    +    var notWs = /\S/;
    +
    +    /**
    +     * Lexes job.source and produces an output array job.decorations of style
    +     * classes preceded by the position at which they start in job.source in
    +     * order.
    +     *
    +     * @param {Object} job an object like {@code
    +     *    source: {string} sourceText plain text,
    +     *    basePos: {int} position of job.source in the larger chunk of
    +     *        sourceCode.
    +     * }
    +     */
    +    var decorate = function (job) {
    +      var sourceCode = job.source, basePos = job.basePos;
    +      /** Even entries are positions in source in ascending order.  Odd enties
    +        * are style markers (e.g., PR_COMMENT) that run from that position until
    +        * the end.
    +        * @type {Array.<number|string>}
    +        */
    +      var decorations = [basePos, PR_PLAIN];
    +      var pos = 0;  // index into sourceCode
    +      var tokens = sourceCode.match(tokenizer) || [];
    +      var styleCache = {};
    +
    +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    +        var token = tokens[ti];
    +        var style = styleCache[token];
    +        var match = void 0;
    +
    +        var isEmbedded;
    +        if (typeof style === 'string') {
    +          isEmbedded = false;
    +        } else {
    +          var patternParts = shortcuts[token.charAt(0)];
    +          if (patternParts) {
    +            match = token.match(patternParts[1]);
    +            style = patternParts[0];
    +          } else {
    +            for (var i = 0; i < nPatterns; ++i) {
    +              patternParts = fallthroughStylePatterns[i];
    +              match = token.match(patternParts[1]);
    +              if (match) {
    +                style = patternParts[0];
    +                break;
    +              }
    +            }
    +
    +            if (!match) {  // make sure that we make progress
    +              style = PR_PLAIN;
    +            }
    +          }
    +
    +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    +            isEmbedded = false;
    +            style = PR_SOURCE;
    +          }
    +
    +          if (!isEmbedded) { styleCache[token] = style; }
    +        }
    +
    +        var tokenStart = pos;
    +        pos += token.length;
    +
    +        if (!isEmbedded) {
    +          decorations.push(basePos + tokenStart, style);
    +        } else {  // Treat group 1 as an embedded block of source code.
    +          var embeddedSource = match[1];
    +          var embeddedSourceStart = token.indexOf(embeddedSource);
    +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    +          if (match[2]) {
    +            // If embeddedSource can be blank, then it would match at the
    +            // beginning which would cause us to infinitely recurse on the
    +            // entire token, so we catch the right context in match[2].
    +            embeddedSourceEnd = token.length - match[2].length;
    +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    +          }
    +          var lang = style.substring(5);
    +          // Decorate the left of the embedded source
    +          appendDecorations(
    +              basePos + tokenStart,
    +              token.substring(0, embeddedSourceStart),
    +              decorate, decorations);
    +          // Decorate the embedded source
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceStart,
    +              embeddedSource,
    +              langHandlerForExtension(lang, embeddedSource),
    +              decorations);
    +          // Decorate the right of the embedded section
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceEnd,
    +              token.substring(embeddedSourceEnd),
    +              decorate, decorations);
    +        }
    +      }
    +      job.decorations = decorations;
    +    };
    +    return decorate;
    +  }
    +
    +  /** returns a function that produces a list of decorations from source text.
    +    *
    +    * This code treats ", ', and ` as string delimiters, and \ as a string
    +    * escape.  It does not recognize perl's qq() style strings.
    +    * It has no special handling for double delimiter escapes as in basic, or
    +    * the tripled delimiters used in python, but should work on those regardless
    +    * although in those cases a single string literal may be broken up into
    +    * multiple adjacent string literals.
    +    *
    +    * It recognizes C, C++, and shell style comments.
    +    *
    +    * @param {Object} options a set of optional parameters.
    +    * @return {function (Object)} a function that examines the source code
    +    *     in the input job and builds the decoration list.
    +    */
    +  function sourceDecorator(options) {
    +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    +    if (options['tripleQuotedStrings']) {
    +      // '''multi-line-string''', 'single-line-string', and double-quoted
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    +           null, '\'"']);
    +    } else if (options['multiLineStrings']) {
    +      // 'multi-line-string', "multi-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    +           null, '\'"`']);
    +    } else {
    +      // 'single-line-string', "single-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,
    +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    +           null, '"\'']);
    +    }
    +    if (options['verbatimStrings']) {
    +      // verbatim-string-literal production from the C# grammar.  See issue 93.
    +      fallthroughStylePatterns.push(
    +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    +    }
    +    if (options['hashComments']) {
    +      if (options['cStyleComments']) {
    +        // Stop C preprocessor declarations at an unclosed open comment
    +        shortcutStylePatterns.push(
    +            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
    +             null, '#']);
    +        fallthroughStylePatterns.push(
    +            [PR_STRING,
    +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
    +             null]);
    +      } else {
    +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    +      }
    +    }
    +    if (options['cStyleComments']) {
    +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    +      fallthroughStylePatterns.push(
    +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    +    }
    +    if (options['regexLiterals']) {
    +      var REGEX_LITERAL = (
    +          // A regular expression literal starts with a slash that is
    +          // not followed by * or / so that it is not confused with
    +          // comments.
    +          '/(?=[^/*])'
    +          // and then contains any number of raw characters,
    +          + '(?:[^/\\x5B\\x5C]'
    +          // escape sequences (\x5C),
    +          +    '|\\x5C[\\s\\S]'
    +          // or non-nesting character sets (\x5B\x5D);
    +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
    +          // finally closed by a /.
    +          + '/');
    +      fallthroughStylePatterns.push(
    +          ['lang-regex',
    +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    +           ]);
    +    }
    +
    +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
    +    if (keywords.length) {
    +      fallthroughStylePatterns.push(
    +          [PR_KEYWORD,
    +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
    +    }
    +
    +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    +    fallthroughStylePatterns.push(
    +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
    +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_LITERAL,
    +         new RegExp(
    +             '^(?:'
    +             // A hex number
    +             + '0x[a-f0-9]+'
    +             // or an octal or decimal number,
    +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    +             // possibly in scientific notation
    +             + '(?:e[+\\-]?\\d+)?'
    +             + ')'
    +             // with an optional modifier like UL for unsigned long
    +             + '[a-z]*', 'i'),
    +         null, '0123456789'],
    +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
    +
    +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    +  }
    +
    +  var decorateSource = sourceDecorator({
    +        'keywords': ALL_KEYWORDS,
    +        'hashComments': true,
    +        'cStyleComments': true,
    +        'multiLineStrings': true,
    +        'regexLiterals': true
    +      });
    +
    +  /** Breaks {@code job.source} around style boundaries in
    +    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
    +    * and leaves the result in {@code job.prettyPrintedHtml}.
    +    * @param {Object} job like {
    +    *    source: {string} source as plain text,
    +    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
    +    *                   html preceded by their position in {@code job.source}
    +    *                   in order
    +    *    decorations: {Array.<number|string} an array of style classes preceded
    +    *                 by the position at which they start in job.source in order
    +    * }
    +    * @private
    +    */
    +  function recombineTagsAndDecorations(job) {
    +    var sourceText = job.source;
    +    var extractedTags = job.extractedTags;
    +    var decorations = job.decorations;
    +
    +    var html = [];
    +    // index past the last char in sourceText written to html
    +    var outputIdx = 0;
    +
    +    var openDecoration = null;
    +    var currentDecoration = null;
    +    var tagPos = 0;  // index into extractedTags
    +    var decPos = 0;  // index into decorations
    +    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
    +
    +    var adjacentSpaceRe = /([\r\n ]) /g;
    +    var startOrSpaceRe = /(^| ) /gm;
    +    var newlineRe = /\r\n?|\n/g;
    +    var trailingSpaceRe = /[ \r\n]$/;
    +    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
    +
    +    // A helper function that is responsible for opening sections of decoration
    +    // and outputing properly escaped chunks of source
    +    function emitTextUpTo(sourceIdx) {
    +      if (sourceIdx > outputIdx) {
    +        if (openDecoration && openDecoration !== currentDecoration) {
    +          // Close the current decoration
    +          html.push('</span>');
    +          openDecoration = null;
    +        }
    +        if (!openDecoration && currentDecoration) {
    +          openDecoration = currentDecoration;
    +          html.push('<span class="', openDecoration, '">');
    +        }
    +        // This interacts badly with some wikis which introduces paragraph tags
    +        // into pre blocks for some strange reason.
    +        // It's necessary for IE though which seems to lose the preformattedness
    +        // of <pre> tags when their innerHTML is assigned.
    +        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
    +        // and it serves to undo the conversion of <br>s to newlines done in
    +        // chunkify.
    +        var htmlChunk = textToHtml(
    +            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
    +            .replace(lastWasSpace
    +                     ? startOrSpaceRe
    +                     : adjacentSpaceRe, '$1&nbsp;');
    +        // Keep track of whether we need to escape space at the beginning of the
    +        // next chunk.
    +        lastWasSpace = trailingSpaceRe.test(htmlChunk);
    +        // IE collapses multiple adjacient <br>s into 1 line break.
    +        // Prefix every <br> with '&nbsp;' can prevent such IE's behavior.
    +        var lineBreakHtml = window['_pr_isIE6']() ? '&nbsp;<br />' : '<br />';
    +        html.push(htmlChunk.replace(newlineRe, lineBreakHtml));
    +        outputIdx = sourceIdx;
    +      }
    +    }
    +
    +    while (true) {
    +      // Determine if we're going to consume a tag this time around.  Otherwise
    +      // we consume a decoration or exit.
    +      var outputTag;
    +      if (tagPos < extractedTags.length) {
    +        if (decPos < decorations.length) {
    +          // Pick one giving preference to extractedTags since we shouldn't open
    +          // a new style that we're going to have to immediately close in order
    +          // to output a tag.
    +          outputTag = extractedTags[tagPos] <= decorations[decPos];
    +        } else {
    +          outputTag = true;
    +        }
    +      } else {
    +        outputTag = false;
    +      }
    +      // Consume either a decoration or a tag or exit.
    +      if (outputTag) {
    +        emitTextUpTo(extractedTags[tagPos]);
    +        if (openDecoration) {
    +          // Close the current decoration
    +          html.push('</span>');
    +          openDecoration = null;
    +        }
    +        html.push(extractedTags[tagPos + 1]);
    +        tagPos += 2;
    +      } else if (decPos < decorations.length) {
    +        emitTextUpTo(decorations[decPos]);
    +        currentDecoration = decorations[decPos + 1];
    +        decPos += 2;
    +      } else {
    +        break;
    +      }
    +    }
    +    emitTextUpTo(sourceText.length);
    +    if (openDecoration) {
    +      html.push('</span>');
    +    }
    +    job.prettyPrintedHtml = html.join('');
    +  }
    +
    +  /** Maps language-specific file extensions to handlers. */
    +  var langHandlerRegistry = {};
    +  /** Register a language handler for the given file extensions.
    +    * @param {function (Object)} handler a function from source code to a list
    +    *      of decorations.  Takes a single argument job which describes the
    +    *      state of the computation.   The single parameter has the form
    +    *      {@code {
    +    *        source: {string} as plain text.
    +    *        decorations: {Array.<number|string>} an array of style classes
    +    *                     preceded by the position at which they start in
    +    *                     job.source in order.
    +    *                     The language handler should assigned this field.
    +    *        basePos: {int} the position of source in the larger source chunk.
    +    *                 All positions in the output decorations array are relative
    +    *                 to the larger source chunk.
    +    *      } }
    +    * @param {Array.<string>} fileExtensions
    +    */
    +  function registerLangHandler(handler, fileExtensions) {
    +    for (var i = fileExtensions.length; --i >= 0;) {
    +      var ext = fileExtensions[i];
    +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    +        langHandlerRegistry[ext] = handler;
    +      } else if ('console' in window) {
    +        console.warn('cannot override language handler %s', ext);
    +      }
    +    }
    +  }
    +  function langHandlerForExtension(extension, source) {
    +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    +      // Treat it as markup if the first non whitespace character is a < and
    +      // the last non-whitespace character is a >.
    +      extension = /^\s*</.test(source)
    +          ? 'default-markup'
    +          : 'default-code';
    +    }
    +    return langHandlerRegistry[extension];
    +  }
    +  registerLangHandler(decorateSource, ['default-code']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [],
    +          [
    +           [PR_PLAIN,       /^[^<?]+/],
    +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    +           // Unescaped content in an unknown language
    +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    +           // Unescaped content in javascript.  (Or possibly vbscript).
    +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    +           // Contains unescaped stylesheet content
    +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    +          ]),
    +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [
    +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    +           ],
    +          [
    +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    +           [PR_PUNCTUATION,  /^[=<>\/]+/],
    +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    +           ]),
    +      ['in.tag']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CPP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true
    +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': 'null true false'
    +        }), ['json']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CSHARP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'verbatimStrings': true
    +        }), ['cs']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JAVA_KEYWORDS,
    +          'cStyleComments': true
    +        }), ['java']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': SH_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true
    +        }), ['bsh', 'csh', 'sh']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PYTHON_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'tripleQuotedStrings': true
    +        }), ['cv', 'py']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PERL_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['perl', 'pl', 'pm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': RUBY_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['rb']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JSCRIPT_KEYWORDS,
    +          'cStyleComments': true,
    +          'regexLiterals': true
    +        }), ['js']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    +
    +  function applyDecorator(job) {
    +    var sourceCodeHtml = job.sourceCodeHtml;
    +    var opt_langExtension = job.langExtension;
    +
    +    // Prepopulate output in case processing fails with an exception.
    +    job.prettyPrintedHtml = sourceCodeHtml;
    +
    +    try {
    +      // Extract tags, and convert the source code to plain text.
    +      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
    +      /** Plain text. @type {string} */
    +      var source = sourceAndExtractedTags.source;
    +      job.source = source;
    +      job.basePos = 0;
    +
    +      /** Even entries are positions in source in ascending order.  Odd entries
    +        * are tags that were extracted at that position.
    +        * @type {Array.<number|string>}
    +        */
    +      job.extractedTags = sourceAndExtractedTags.tags;
    +
    +      // Apply the appropriate language handler
    +      langHandlerForExtension(opt_langExtension, source)(job);
    +      // Integrate the decorations and tags back into the source code to produce
    +      // a decorated html string which is left in job.prettyPrintedHtml.
    +      recombineTagsAndDecorations(job);
    +    } catch (e) {
    +      if ('console' in window) {
    +        console.log(e);
    +        console.trace();
    +      }
    +    }
    +  }
    +
    +  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
    +    var job = {
    +      sourceCodeHtml: sourceCodeHtml,
    +      langExtension: opt_langExtension
    +    };
    +    applyDecorator(job);
    +    return job.prettyPrintedHtml;
    +  }
    +
    +  function prettyPrint(opt_whenDone) {
    +    var isIE678 = window['_pr_isIE6']();
    +    var ieNewline = isIE678 === 6 ? '\r\n' : '\r';
    +    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
    +
    +    // fetch a list of nodes to rewrite
    +    var codeSegments = [
    +        document.getElementsByTagName('pre'),
    +        document.getElementsByTagName('code'),
    +        document.getElementsByTagName('table'),  /* ND Change: Add tables to support prototypes. */
    +        document.getElementsByTagName('xmp') ];
    +    var elements = [];
    +    for (var i = 0; i < codeSegments.length; ++i) {
    +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    +        elements.push(codeSegments[i][j]);
    +      }
    +    }
    +    codeSegments = null;
    +
    +    var clock = Date;
    +    if (!clock['now']) {
    +      clock = { 'now': function () { return (new Date).getTime(); } };
    +    }
    +
    +    // The loop is broken into a series of continuations to make sure that we
    +    // don't make the browser unresponsive when rewriting a large page.
    +    var k = 0;
    +    var prettyPrintingJob;
    +
    +    function doWork() {
    +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
    +                     clock.now() + 250 /* ms */ :
    +                     Infinity);
    +      for (; k < elements.length && clock.now() < endTime; k++) {
    +        var cs = elements[k];
    +        if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
    +          // If the classes includes a language extensions, use it.
    +          // Language extensions can be specified like
    +          //     <pre class="prettyprint lang-cpp">
    +          // the language extension "cpp" is used to find a language handler as
    +          // passed to PR_registerLangHandler.
    +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
    +          if (langExtension) { langExtension = langExtension[1]; }
    +
    +          // make sure this is not nested in an already prettified element
    +          var nested = false;
    +          for (var p = cs.parentNode; p; p = p.parentNode) {
    +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
    +                 p.tagName === 'xmp' || p.tagName === 'table') &&  /* ND Change: Add tables to support prototypes */
    +                p.className && p.className.indexOf('prettyprint') >= 0) {
    +              nested = true;
    +              break;
    +            }
    +          }
    +          if (!nested) {
    +            // fetch the content as a snippet of properly escaped HTML.
    +            // Firefox adds newlines at the end.
    +            var content = getInnerHtml(cs);
    +            content = content.replace(/(?:\r\n?|\n)$/, '');
    +
    +	  		/* ND Change: we need to preserve &nbsp;s so change them to a special character instead of a space. */
    +			content = content.replace(/&nbsp;/g, '\x11');
    +
    +            // do the pretty printing
    +            prettyPrintingJob = {
    +              sourceCodeHtml: content,
    +              langExtension: langExtension,
    +              sourceNode: cs
    +            };
    +            applyDecorator(prettyPrintingJob);
    +            replaceWithPrettyPrintedHtml();
    +          }
    +        }
    +      }
    +      if (k < elements.length) {
    +        // finish up in a continuation
    +        setTimeout(doWork, 250);
    +      } else if (opt_whenDone) {
    +        opt_whenDone();
    +      }
    +    }
    +
    +    function replaceWithPrettyPrintedHtml() {
    +      var newContent = prettyPrintingJob.prettyPrintedHtml;
    +      if (!newContent) { return; }
    +
    +      /* ND Change: Restore the preserved &nbsp;s.  */
    +	  newContent = newContent.replace(/\x11/g, '&nbsp;');
    +
    +      var cs = prettyPrintingJob.sourceNode;
    +
    +      // push the prettified html back into the tag.
    +      if (!isRawContent(cs)) {
    +        // just replace the old html with the new
    +        cs.innerHTML = newContent;
    +      } else {
    +        // we need to change the tag to a <pre> since <xmp>s do not allow
    +        // embedded tags such as the span tags used to attach styles to
    +        // sections of source code.
    +        var pre = document.createElement('PRE');
    +        for (var i = 0; i < cs.attributes.length; ++i) {
    +          var a = cs.attributes[i];
    +          if (a.specified) {
    +            var aname = a.name.toLowerCase();
    +            if (aname === 'class') {
    +              pre.className = a.value;  // For IE 6
    +            } else {
    +              pre.setAttribute(a.name, a.value);
    +            }
    +          }
    +        }
    +        pre.innerHTML = newContent;
    +
    +        // remove the old
    +        cs.parentNode.replaceChild(pre, cs);
    +        cs = pre;
    +      }
    +
    +      // Replace <br>s with line-feeds so that copying and pasting works
    +      // on IE 6.
    +      // Doing this on other browsers breaks lots of stuff since \r\n is
    +      // treated as two newlines on Firefox, and doing this also slows
    +      // down rendering.
    +      if (isIE678 && cs.tagName === 'PRE') {
    +        var lineBreaks = cs.getElementsByTagName('br');
    +        for (var j = lineBreaks.length; --j >= 0;) {
    +          var lineBreak = lineBreaks[j];
    +          lineBreak.parentNode.replaceChild(
    +              document.createTextNode(ieNewline), lineBreak);
    +        }
    +      }
    +    }
    +
    +    doWork();
    +  }
    +
    +  window['PR_normalizedHtml'] = normalizedHtml;
    +  window['prettyPrintOne'] = prettyPrintOne;
    +  window['prettyPrint'] = prettyPrint;
    +  window['PR'] = {
    +        'combinePrefixPatterns': combinePrefixPatterns,
    +        'createSimpleLexer': createSimpleLexer,
    +        'registerLangHandler': registerLangHandler,
    +        'sourceDecorator': sourceDecorator,
    +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    +        'PR_COMMENT': PR_COMMENT,
    +        'PR_DECLARATION': PR_DECLARATION,
    +        'PR_KEYWORD': PR_KEYWORD,
    +        'PR_LITERAL': PR_LITERAL,
    +        'PR_NOCODE': PR_NOCODE,
    +        'PR_PLAIN': PR_PLAIN,
    +        'PR_PUNCTUATION': PR_PUNCTUATION,
    +        'PR_SOURCE': PR_SOURCE,
    +        'PR_STRING': PR_STRING,
    +        'PR_TAG': PR_TAG,
    +        'PR_TYPE': PR_TYPE
    +      };
    +})();
    +
    +
    +// ____________________________________________________________________________
    +
    +
    +
    +// Lua extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],[PR.PR_STRING,/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],[PR.PR_KEYWORD,/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_]\w*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),['lua'])
    +
    +
    +// Haskell extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\x0B\x0C\r ]+/,null,'	\n\r '],[PR.PR_STRING,/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'\"'],[PR.PR_STRING,/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,'\''],[PR.PR_LITERAL,/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,'0123456789']],[[PR.PR_COMMENT,/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],[PR.PR_KEYWORD,/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/,null],[PR.PR_PLAIN,/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],[PR.PR_PUNCTUATION,/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),['hs'])
    +
    +
    +// ML extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_COMMENT,/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,'#'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],[PR.PR_KEYWORD,/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],[PR.PR_LITERAL,/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],[PR.PR_PUNCTUATION,/^[^\t\n\r \xA0\"\'\w]+/]]),['fs','ml'])
    +
    +
    +// SQL extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],[PR.PR_KEYWORD,/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_][\w-]*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),['sql'])
    +
    +
    +// VB extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0\u2028\u2029]+/,null,'	\n\r \xa0\u2028\u2029'],[PR.PR_STRING,/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'\"\u201c\u201d'],[PR.PR_COMMENT,/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,'\'\u2018\u2019']],[[PR.PR_KEYWORD,/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,null],[PR.PR_COMMENT,/^REM[^\r\n\u2028\u2029]*/i],[PR.PR_LITERAL,/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],[PR.PR_PLAIN,/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],[PR.PR_PUNCTUATION,/^(?:\[|\])/]]),['vb','vbs'])
    diff --git a/docs/js-api/javascript/searchdata.js b/docs/js-api/javascript/searchdata.js
    new file mode 100644
    index 000000000..23394ca03
    --- /dev/null
    +++ b/docs/js-api/javascript/searchdata.js
    @@ -0,0 +1,212 @@
    +var indexSectionsWithContent = {
    +   "General": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": true,
    +      "B": true,
    +      "C": true,
    +      "D": true,
    +      "E": true,
    +      "F": true,
    +      "G": true,
    +      "H": true,
    +      "I": true,
    +      "J": true,
    +      "K": true,
    +      "L": true,
    +      "M": true,
    +      "N": true,
    +      "O": true,
    +      "P": true,
    +      "Q": true,
    +      "R": true,
    +      "S": true,
    +      "T": true,
    +      "U": true,
    +      "V": true,
    +      "W": true,
    +      "X": true,
    +      "Y": true,
    +      "Z": true
    +      },
    +   "Variables": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": true,
    +      "B": true,
    +      "C": true,
    +      "D": true,
    +      "E": true,
    +      "F": true,
    +      "G": true,
    +      "H": true,
    +      "I": true,
    +      "J": true,
    +      "K": true,
    +      "L": true,
    +      "M": true,
    +      "N": true,
    +      "O": true,
    +      "P": true,
    +      "Q": false,
    +      "R": true,
    +      "S": true,
    +      "T": true,
    +      "U": true,
    +      "V": true,
    +      "W": true,
    +      "X": true,
    +      "Y": true,
    +      "Z": true
    +      },
    +   "Functions": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": true,
    +      "B": true,
    +      "C": true,
    +      "D": true,
    +      "E": true,
    +      "F": true,
    +      "G": true,
    +      "H": true,
    +      "I": true,
    +      "J": true,
    +      "K": true,
    +      "L": true,
    +      "M": true,
    +      "N": true,
    +      "O": true,
    +      "P": true,
    +      "Q": true,
    +      "R": true,
    +      "S": true,
    +      "T": true,
    +      "U": true,
    +      "V": true,
    +      "W": true,
    +      "X": false,
    +      "Y": false,
    +      "Z": true
    +      },
    +   "Cookies": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": false,
    +      "B": false,
    +      "C": false,
    +      "D": false,
    +      "E": false,
    +      "F": false,
    +      "G": false,
    +      "H": false,
    +      "I": false,
    +      "J": false,
    +      "K": false,
    +      "L": false,
    +      "M": true,
    +      "N": false,
    +      "O": false,
    +      "P": false,
    +      "Q": false,
    +      "R": false,
    +      "S": false,
    +      "T": false,
    +      "U": false,
    +      "V": false,
    +      "W": false,
    +      "X": false,
    +      "Y": false,
    +      "Z": false
    +      },
    +   "Files": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": true,
    +      "B": false,
    +      "C": false,
    +      "D": false,
    +      "E": false,
    +      "F": false,
    +      "G": false,
    +      "H": false,
    +      "I": false,
    +      "J": false,
    +      "K": false,
    +      "L": false,
    +      "M": true,
    +      "N": false,
    +      "O": false,
    +      "P": false,
    +      "Q": false,
    +      "R": false,
    +      "S": false,
    +      "T": false,
    +      "U": false,
    +      "V": false,
    +      "W": false,
    +      "X": false,
    +      "Y": false,
    +      "Z": false
    +      },
    +   "Classes": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": false,
    +      "B": false,
    +      "C": false,
    +      "D": false,
    +      "E": false,
    +      "F": false,
    +      "G": false,
    +      "H": false,
    +      "I": false,
    +      "J": false,
    +      "K": false,
    +      "L": false,
    +      "M": true,
    +      "N": false,
    +      "O": false,
    +      "P": false,
    +      "Q": false,
    +      "R": false,
    +      "S": false,
    +      "T": false,
    +      "U": false,
    +      "V": false,
    +      "W": true,
    +      "X": false,
    +      "Y": false,
    +      "Z": false
    +      },
    +   "Events": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": true,
    +      "B": true,
    +      "C": true,
    +      "D": true,
    +      "E": true,
    +      "F": true,
    +      "G": true,
    +      "H": false,
    +      "I": false,
    +      "J": false,
    +      "K": false,
    +      "L": true,
    +      "M": true,
    +      "N": true,
    +      "O": true,
    +      "P": true,
    +      "Q": false,
    +      "R": true,
    +      "S": true,
    +      "T": true,
    +      "U": true,
    +      "V": false,
    +      "W": false,
    +      "X": false,
    +      "Y": false,
    +      "Z": false
    +      }
    +   }
    \ No newline at end of file
    diff --git a/docs/js-api/search/ClassesM.html b/docs/js-api/search/ClassesM.html
    new file mode 100644
    index 000000000..46bcc2c65
    --- /dev/null
    +++ b/docs/js-api/search/ClassesM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_MedianCellSorter><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter" target=_parent class=ISymbol>MedianCellSorter</a></div></div><div class=SRResult id=SR_mxActor><div class=IEntry><a href="../files/shape/mxActor-js.html#mxActor" target=_parent class=ISymbol>mxActor</a></div></div><div class=SRResult id=SR_mxAnimation><div class=IEntry><a href="../files/util/mxAnimation-js.html#mxAnimation" target=_parent class=ISymbol>mxAnimation</a></div></div><div class=SRResult id=SR_mxArrow><div class=IEntry><a href="../files/shape/mxArrow-js.html#mxArrow" target=_parent class=ISymbol>mxArrow</a></div></div><div class=SRResult id=SR_mxAutoSaveManager><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager" target=_parent class=ISymbol>mxAutoSaveManager</a></div></div><div class=SRResult id=SR_mxCell><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell" target=_parent class=ISymbol>mxCell</a></div></div><div class=SRResult id=SR_mxCellAttributeChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxCellAttributeChange" target=_parent class=ISymbol>mxCellAttributeChange</a></div></div><div class=SRResult id=SR_mxCellCodec><div class=IEntry><a href="../files/io/mxCellCodec-js.html#mxCellCodec" target=_parent class=ISymbol>mxCellCodec</a></div></div><div class=SRResult id=SR_mxCellEditor><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor" target=_parent class=ISymbol>mxCellEditor</a></div></div><div class=SRResult id=SR_mxCellHighlight><div class=IEntry><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight" target=_parent class=ISymbol>mxCellHighlight</a></div></div><div class=SRResult id=SR_mxCellMarker><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker" target=_parent class=ISymbol>mxCellMarker</a></div></div><div class=SRResult id=SR_mxCellOverlay><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay" target=_parent class=ISymbol>mxCellOverlay</a></div></div><div class=SRResult id=SR_mxCellPath><div class=IEntry><a href="../files/model/mxCellPath-js.html#mxCellPath" target=_parent class=ISymbol>mxCellPath</a></div></div><div class=SRResult id=SR_mxCellRenderer><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer" target=_parent class=ISymbol>mxCellRenderer</a></div></div><div class=SRResult id=SR_mxCellState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState" target=_parent class=ISymbol>mxCellState</a></div></div><div class=SRResult id=SR_mxCellStatePreview><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview" target=_parent class=ISymbol>mxCellStatePreview</a></div></div><div class=SRResult id=SR_mxCellTracker><div class=IEntry><a href="../files/handler/mxCellTracker-js.html#mxCellTracker" target=_parent class=ISymbol>mxCellTracker</a></div></div><div class=SRResult id=SR_mxChildChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxChildChange" target=_parent class=ISymbol>mxChildChange</a></div></div><div class=SRResult id=SR_mxChildChangeCodec><div class=IEntry><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec" target=_parent class=ISymbol>mxChildChangeCodec</a></div></div><div class=SRResult id=SR_mxCircleLayout><div class=IEntry><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout" target=_parent class=ISymbol>mxCircleLayout</a></div></div><div class=SRResult id=SR_mxClient><div class=IEntry><a href="../files/mxClient-js.html#mxClient" target=_parent class=ISymbol>mxClient</a></div></div><div class=SRResult id=SR_mxClipboard><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard" target=_parent class=ISymbol>mxClipboard</a></div></div><div class=SRResult id=SR_mxCloud><div class=IEntry><a href="../files/shape/mxCloud-js.html#mxCloud" target=_parent class=ISymbol>mxCloud</a></div></div><div class=SRResult id=SR_mxCodec><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec" target=_parent class=ISymbol>mxCodec</a></div></div><div class=SRResult id=SR_mxCodecRegistry><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry" target=_parent class=ISymbol>mxCodecRegistry</a></div></div><div class=SRResult id=SR_mxCollapseChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxCollapseChange" target=_parent class=ISymbol>mxCollapseChange</a></div></div><div class=SRResult id=SR_mxCompactTreeLayout><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout" target=_parent class=ISymbol>mxCompactTreeLayout</a></div></div><div class=SRResult id=SR_mxCompositeLayout><div class=IEntry><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout" target=_parent class=ISymbol>mxCompositeLayout</a></div></div><div class=SRResult id=SR_mxConnectionConstraint><div class=IEntry><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint" target=_parent class=ISymbol>mxConnectionConstraint</a></div></div><div class=SRResult id=SR_mxConnectionHandler><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler" target=_parent class=ISymbol>mxConnectionHandler</a></div></div><div class=SRResult id=SR_mxConnector><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector" target=_parent class=ISymbol>mxConnector</a></div></div><div class=SRResult id=SR_mxConstants><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants" target=_parent class=ISymbol>mxConstants</a></div></div><div class=SRResult id=SR_mxConstraintHandler><div class=IEntry><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler" target=_parent class=ISymbol>mxConstraintHandler</a></div></div><div class=SRResult id=SR_mxCoordinateAssignment><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment" target=_parent class=ISymbol>mxCoordinateAssignment</a></div></div><div class=SRResult id=SR_mxCurrentRootChange><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxCurrentRootChange" target=_parent class=ISymbol>mxCurrentRootChange</a></div></div><div class=SRResult id=SR_mxCylinder><div class=IEntry><a href="../files/shape/mxCylinder-js.html#mxCylinder" target=_parent class=ISymbol>mxCylinder</a></div></div><div class=SRResult id=SR_mxDefaultKeyHandler><div class=IEntry><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler" target=_parent class=ISymbol>mxDefaultKeyHandler</a></div></div><div class=SRResult id=SR_mxDefaultKeyHandlerCodec><div class=IEntry><a href="../files/io/mxDefaultKeyHandlerCodec-js.html#mxDefaultKeyHandlerCodec" target=_parent class=ISymbol>mxDefaultKeyHandlerCodec</a></div></div><div class=SRResult id=SR_mxDefaultPopupMenu><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu" target=_parent class=ISymbol>mxDefaultPopupMenu</a></div></div><div class=SRResult id=SR_mxDefaultPopupMenuCodec><div class=IEntry><a href="../files/io/mxDefaultPopupMenuCodec-js.html#mxDefaultPopupMenuCodec" target=_parent class=ISymbol>mxDefaultPopupMenuCodec</a></div></div><div class=SRResult id=SR_mxDefaultToolbar><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar" target=_parent class=ISymbol>mxDefaultToolbar</a></div></div><div class=SRResult id=SR_mxDefaultToolbarCodec><div class=IEntry><a href="../files/io/mxDefaultToolbarCodec-js.html#mxDefaultToolbarCodec" target=_parent class=ISymbol>mxDefaultToolbarCodec</a></div></div><div class=SRResult id=SR_mxDictionary><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary" target=_parent class=ISymbol>mxDictionary</a></div></div><div class=SRResult id=SR_mxDivResizer><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer" target=_parent class=ISymbol>mxDivResizer</a></div></div><div class=SRResult id=SR_mxDoubleEllipse><div class=IEntry><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse" target=_parent class=ISymbol>mxDoubleEllipse</a></div></div><div class=SRResult id=SR_mxDragSource><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource" target=_parent class=ISymbol>mxDragSource</a></div></div><div class=SRResult id=SR_mxEdgeHandler><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler" target=_parent class=ISymbol>mxEdgeHandler</a></div></div><div class=SRResult id=SR_mxEdgeLabelLayout><div class=IEntry><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout" target=_parent class=ISymbol>mxEdgeLabelLayout</a></div></div><div class=SRResult id=SR_mxEdgeStyle><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle" target=_parent class=ISymbol>mxEdgeStyle</a></div></div><div class=SRResult id=SR_mxEditor><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor" target=_parent class=ISymbol>mxEditor</a></div></div><div class=SRResult id=SR_mxEditorCodec><div class=IEntry><a href="../files/io/mxEditorCodec-js.html#mxEditorCodec" target=_parent class=ISymbol>mxEditorCodec</a></div></div><div class=SRResult id=SR_mxEffects><div class=IEntry><a href="../files/util/mxEffects-js.html#mxEffects" target=_parent class=ISymbol>mxEffects</a></div></div><div class=SRResult id=SR_mxElbowEdgeHandler><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler" target=_parent class=ISymbol>mxElbowEdgeHandler</a></div></div><div class=SRResult id=SR_mxEllipse><div class=IEntry><a href="../files/shape/mxEllipse-js.html#mxEllipse" target=_parent class=ISymbol>mxEllipse</a></div></div><div class=SRResult id=SR_mxEvent><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent" target=_parent class=ISymbol>mxEvent</a></div></div><div class=SRResult id=SR_mxEventObject><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject" target=_parent class=ISymbol>mxEventObject</a></div></div><div class=SRResult id=SR_mxEventSource><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource" target=_parent class=ISymbol>mxEventSource</a></div></div><div class=SRResult id=SR_mxFastOrganicLayout><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout" target=_parent class=ISymbol>mxFastOrganicLayout</a></div></div><div class=SRResult id=SR_mxForm><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm" target=_parent class=ISymbol>mxForm</a></div></div><div class=SRResult id=SR_mxGenericChangeCodec><div class=IEntry><a href="../files/io/mxGenericChangeCodec-js.html#mxGenericChangeCodec" target=_parent class=ISymbol>mxGenericChangeCodec</a></div></div><div class=SRResult id=SR_mxGeometry><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry" target=_parent class=ISymbol>mxGeometry</a></div></div><div class=SRResult id=SR_mxGeometryChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGeometryChange" target=_parent class=ISymbol>mxGeometryChange</a></div></div><div class=SRResult id=SR_mxGraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph" target=_parent class=ISymbol>mxGraph</a></div></div><div class=SRResult id=SR_mxGraphAbstractHierarchyCell><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell" target=_parent class=ISymbol>mxGraphAbstractHierarchyCell</a></div></div><div class=SRResult id=SR_mxGraphCodec><div class=IEntry><a href="../files/io/mxGraphCodec-js.html#mxGraphCodec" target=_parent class=ISymbol>mxGraphCodec</a></div></div><div class=SRResult id=SR_mxGraphHandler><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler" target=_parent class=ISymbol>mxGraphHandler</a></div></div><div class=SRResult id=SR_mxGraphHierarchyEdge><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge" target=_parent class=ISymbol>mxGraphHierarchyEdge</a></div></div><div class=SRResult id=SR_mxGraphHierarchyModel><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel" target=_parent class=ISymbol>mxGraphHierarchyModel</a></div></div><div class=SRResult id=SR_mxGraphHierarchyNode><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode" target=_parent class=ISymbol>mxGraphHierarchyNode</a></div></div><div class=SRResult id=SR_mxGraphLayout><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout" target=_parent class=ISymbol>mxGraphLayout</a></div></div><div class=SRResult id=SR_mxGraphModel><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel" target=_parent class=ISymbol>mxGraphModel</a></div></div><div class=SRResult id=SR_mxGraphSelectionModel><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel" target=_parent class=ISymbol>mxGraphSelectionModel</a></div></div><div class=SRResult id=SR_mxGraphView><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView" target=_parent class=ISymbol>mxGraphView</a></div></div><div class=SRResult id=SR_mxGraphViewCodec><div class=IEntry><a href="../files/io/mxGraphViewCodec-js.html#mxGraphViewCodec" target=_parent class=ISymbol>mxGraphViewCodec</a></div></div><div class=SRResult id=SR_mxGuide><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide" target=_parent class=ISymbol>mxGuide</a></div></div><div class=SRResult id=SR_mxHexagon><div class=IEntry><a href="../files/shape/mxHexagon-js.html#mxHexagon" target=_parent class=ISymbol>mxHexagon</a></div></div><div class=SRResult id=SR_mxHierarchicalLayout><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout" target=_parent class=ISymbol>mxHierarchicalLayout</a></div></div><div class=SRResult id=SR_mxHierarchicalLayoutStage><div class=IEntry><a href="../files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html#mxHierarchicalLayoutStage" target=_parent class=ISymbol>mxHierarchicalLayoutStage</a></div></div><div class=SRResult id=SR_mxImage><div class=IEntry><a href="../files/util/mxImage-js.html#mxImage" target=_parent class=ISymbol>mxImage</a></div></div><div class=SRResult id=SR_mxImageBundle><div class=IEntry><a href="../files/util/mxImageBundle-js.html#mxImageBundle" target=_parent class=ISymbol>mxImageBundle</a></div></div><div class=SRResult id=SR_mxImageExport><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport" target=_parent class=ISymbol>mxImageExport</a></div></div><div class=SRResult id=SR_mxImageShape><div class=IEntry><a href="../files/shape/mxImageShape-js.html#mxImageShape" target=_parent class=ISymbol>mxImageShape</a></div></div><div class=SRResult id=SR_mxKeyHandler><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler" target=_parent class=ISymbol>mxKeyHandler</a></div></div><div class=SRResult id=SR_mxLabel><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel" target=_parent class=ISymbol>mxLabel</a></div></div><div class=SRResult id=SR_mxLayoutManager><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager" target=_parent class=ISymbol>mxLayoutManager</a></div></div><div class=SRResult id=SR_mxLine><div class=IEntry><a href="../files/shape/mxLine-js.html#mxLine" target=_parent class=ISymbol>mxLine</a></div></div><div class=SRResult id=SR_mxLog><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog" target=_parent class=ISymbol>mxLog</a></div></div><div class=SRResult id=SR_mxMarker><div class=IEntry><a href="../files/shape/mxMarker-js.html#mxMarker" target=_parent class=ISymbol>mxMarker</a></div></div><div class=SRResult id=SR_mxMedianHybridCrossingReduction><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction" target=_parent class=ISymbol>mxMedianHybridCrossingReduction</a></div></div><div class=SRResult id=SR_mxMinimumCycleRemover><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover" target=_parent class=ISymbol>mxMinimumCycleRemover</a></div></div><div class=SRResult id=SR_mxModelCodec><div class=IEntry><a href="../files/io/mxModelCodec-js.html#mxModelCodec" target=_parent class=ISymbol>mxModelCodec</a></div></div><div class=SRResult id=SR_mxMorphing><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing" target=_parent class=ISymbol>mxMorphing</a></div></div><div class=SRResult id=SR_mxMouseEvent><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent" target=_parent class=ISymbol>mxMouseEvent</a></div></div><div class=SRResult id=SR_mxMultiplicity><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity" target=_parent class=ISymbol>mxMultiplicity</a></div></div><div class=SRResult id=SR_mxObjectCodec><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec" target=_parent class=ISymbol>mxObjectCodec</a></div></div><div class=SRResult id=SR_mxObjectIdentity><div class=IEntry><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity" target=_parent class=ISymbol>mxObjectIdentity</a></div></div><div class=SRResult id=SR_mxOutline><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline" target=_parent class=ISymbol>mxOutline</a></div></div><div class=SRResult id=SR_mxPanningHandler><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler" target=_parent class=ISymbol>mxPanningHandler</a></div></div><div class=SRResult id=SR_mxPanningManager><div class=IEntry><a href="../files/util/mxPanningManager-js.html#mxPanningManager" target=_parent class=ISymbol>mxPanningManager</a></div></div><div class=SRResult id=SR_mxParallelEdgeLayout><div class=IEntry><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout" target=_parent class=ISymbol>mxParallelEdgeLayout</a></div></div><div class=SRResult id=SR_mxPartitionLayout><div class=IEntry><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout" target=_parent class=ISymbol>mxPartitionLayout</a></div></div><div class=SRResult id=SR_mxPath><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath" target=_parent class=ISymbol>mxPath</a></div></div><div class=SRResult id=SR_mxPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter" target=_parent class=ISymbol>mxPerimeter</a></div></div><div class=SRResult id=SR_mxPoint><div class=IEntry><a href="../files/util/mxPoint-js.html#mxPoint" target=_parent class=ISymbol>mxPoint</a></div></div><div class=SRResult id=SR_mxPolyline><div class=IEntry><a href="../files/shape/mxPolyline-js.html#mxPolyline" target=_parent class=ISymbol>mxPolyline</a></div></div><div class=SRResult id=SR_mxPopupMenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu" target=_parent class=ISymbol>mxPopupMenu</a></div></div><div class=SRResult id=SR_mxPrintPreview><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview" target=_parent class=ISymbol>mxPrintPreview</a></div></div><div class=SRResult id=SR_mxRectangle><div class=IEntry><a href="../files/util/mxRectangle-js.html#mxRectangle" target=_parent class=ISymbol>mxRectangle</a></div></div><div class=SRResult id=SR_mxRectangleShape><div class=IEntry><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape" target=_parent class=ISymbol>mxRectangleShape</a></div></div><div class=SRResult id=SR_mxResources><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources" target=_parent class=ISymbol>mxResources</a></div></div><div class=SRResult id=SR_mxRhombus><div class=IEntry><a href="../files/shape/mxRhombus-js.html#mxRhombus" target=_parent class=ISymbol>mxRhombus</a></div></div><div class=SRResult id=SR_mxRootChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxRootChange" target=_parent class=ISymbol>mxRootChange</a></div></div><div class=SRResult id=SR_mxRootChangeCodec><div class=IEntry><a href="../files/io/mxRootChangeCodec-js.html#mxRootChangeCodec" target=_parent class=ISymbol>mxRootChangeCodec</a></div></div><div class=SRResult id=SR_mxRubberband><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband" target=_parent class=ISymbol>mxRubberband</a></div></div><div class=SRResult id=SR_mxSelectionCellsHandler><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler" target=_parent class=ISymbol>mxSelectionCellsHandler</a></div></div><div class=SRResult id=SR_mxSelectionChange><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxSelectionChange" target=_parent class=ISymbol>mxSelectionChange</a></div></div><div class=SRResult id=SR_mxSession><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession" target=_parent class=ISymbol>mxSession</a></div></div><div class=SRResult id=SR_mxShape><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape" target=_parent class=ISymbol>mxShape</a></div></div><div class=SRResult id=SR_mxSpaceManager><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager" target=_parent class=ISymbol>mxSpaceManager</a></div></div><div class=SRResult id=SR_mxStackLayout><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout" target=_parent class=ISymbol>mxStackLayout</a></div></div><div class=SRResult id=SR_mxStencil><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil" target=_parent class=ISymbol>mxStencil</a></div></div><div class=SRResult id=SR_mxStencilRegistry><div class=IEntry><a href="../files/shape/mxStencilRegistry-js.html#mxStencilRegistry" target=_parent class=ISymbol>mxStencilRegistry</a></div></div><div class=SRResult id=SR_mxStencilShape><div class=IEntry><a href="../files/shape/mxStencilShape-js.html#mxStencilShape" target=_parent class=ISymbol>mxStencilShape</a></div></div><div class=SRResult id=SR_mxStyleChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxStyleChange" target=_parent class=ISymbol>mxStyleChange</a></div></div><div class=SRResult id=SR_mxStyleRegistry><div class=IEntry><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry" target=_parent class=ISymbol>mxStyleRegistry</a></div></div><div class=SRResult id=SR_mxStylesheet><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet" target=_parent class=ISymbol>mxStylesheet</a></div></div><div class=SRResult id=SR_mxStylesheetCodec><div class=IEntry><a href="../files/io/mxStylesheetCodec-js.html#mxStylesheetCodec" target=_parent class=ISymbol>mxStylesheetCodec</a></div></div><div class=SRResult id=SR_mxSvgCanvas2D><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D" target=_parent class=ISymbol>mxSvgCanvas2D</a></div></div><div class=SRResult id=SR_mxSwimlane><div class=IEntry><a href="../files/shape/mxSwimlane-js.html#mxSwimlane" target=_parent class=ISymbol>mxSwimlane</a></div></div><div class=SRResult id=SR_mxSwimlaneManager><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager" target=_parent class=ISymbol>mxSwimlaneManager</a></div></div><div class=SRResult id=SR_mxTemporaryCellStates><div class=IEntry><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates" target=_parent class=ISymbol>mxTemporaryCellStates</a></div></div><div class=SRResult id=SR_mxTerminalChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxTerminalChange" target=_parent class=ISymbol>mxTerminalChange</a></div></div><div class=SRResult id=SR_mxTerminalChangeCodec><div class=IEntry><a href="../files/io/mxTerminalChangeCodec-js.html#mxTerminalChangeCodec" target=_parent class=ISymbol>mxTerminalChangeCodec</a></div></div><div class=SRResult id=SR_mxText><div class=IEntry><a href="../files/shape/mxText-js.html#mxText" target=_parent class=ISymbol>mxText</a></div></div><div class=SRResult id=SR_mxToolbar><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar" target=_parent class=ISymbol>mxToolbar</a></div></div><div class=SRResult id=SR_mxTooltipHandler><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler" target=_parent class=ISymbol>mxTooltipHandler</a></div></div><div class=SRResult id=SR_mxTriangle><div class=IEntry><a href="../files/shape/mxTriangle-js.html#mxTriangle" target=_parent class=ISymbol>mxTriangle</a></div></div><div class=SRResult id=SR_mxUndoableEdit><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit" target=_parent class=ISymbol>mxUndoableEdit</a></div></div><div class=SRResult id=SR_mxUndoManager><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager" target=_parent class=ISymbol>mxUndoManager</a></div></div><div class=SRResult id=SR_mxUrlConverter><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter" target=_parent class=ISymbol>mxUrlConverter</a></div></div><div class=SRResult id=SR_mxUtils><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils" target=_parent class=ISymbol>mxUtils</a></div></div><div class=SRResult id=SR_mxValueChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxValueChange" target=_parent class=ISymbol>mxValueChange</a></div></div><div class=SRResult id=SR_mxVertexHandler><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler" target=_parent class=ISymbol>mxVertexHandler</a></div></div><div class=SRResult id=SR_mxVisibleChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxVisibleChange" target=_parent class=ISymbol>mxVisibleChange</a></div></div><div class=SRResult id=SR_mxWindow><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow" target=_parent class=ISymbol>mxWindow</a></div></div><div class=SRResult id=SR_mxXmlCanvas2D><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D" target=_parent class=ISymbol>mxXmlCanvas2D</a></div></div><div class=SRResult id=SR_mxXmlRequest><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest" target=_parent class=ISymbol>mxXmlRequest</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/ClassesW.html b/docs/js-api/search/ClassesW.html
    new file mode 100644
    index 000000000..e70001338
    --- /dev/null
    +++ b/docs/js-api/search/ClassesW.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_WeightedCellSorter><div class=IEntry><a href="javascript:searchResults.Toggle('SR_WeightedCellSorter')" class=ISymbol>WeightedCellSorter</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/CookiesM.html b/docs/js-api/search/CookiesM.html
    new file mode 100644
    index 000000000..337849cb3
    --- /dev/null
    +++ b/docs/js-api/search/CookiesM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mxgraph_equseen><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxgraph=seen" target=_parent class=ISymbol>mxgraph=seen</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsA.html b/docs/js-api/search/EventsA.html
    new file mode 100644
    index 000000000..2d48d0e21
    --- /dev/null
    +++ b/docs/js-api/search/EventsA.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ADD><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxEvent.ADD" target=_parent class=ISymbol>ADD</a>, <span class=IParent>mxUndoManager.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_ADD_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ADD_CELLS" target=_parent class=ISymbol>ADD_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_ADD_undOVERLAY><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ADD_OVERLAY" target=_parent class=ISymbol>ADD_OVERLAY</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_ADD_undVERTEX><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.ADD_VERTEX" target=_parent class=ISymbol>ADD_VERTEX</a>, <span class=IParent>mxEditor.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_AFTER_undADD_undVERTEX><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.AFTER_ADD_VERTEX" target=_parent class=ISymbol>AFTER_ADD_VERTEX</a>, <span class=IParent>mxEditor.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_ALIGN_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ALIGN_CELLS" target=_parent class=ISymbol>ALIGN_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsB.html b/docs/js-api/search/EventsB.html
    new file mode 100644
    index 000000000..d65b48b1d
    --- /dev/null
    +++ b/docs/js-api/search/EventsB.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_BEFORE_undADD_undVERTEX><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.BEFORE_ADD_VERTEX" target=_parent class=ISymbol>BEFORE_ADD_VERTEX</a>, <span class=IParent>mxEditor.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_BEFORE_undUNDO><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.BEFORE_UNDO" target=_parent class=ISymbol>BEFORE_UNDO</a>, <span class=IParent>mxGraphModel.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_BEGIN_undUPDATE><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.BEGIN_UPDATE" target=_parent class=ISymbol>BEGIN_UPDATE</a>, <span class=IParent>mxGraphModel.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsC.html b/docs/js-api/search/EventsC.html
    new file mode 100644
    index 000000000..1cf70c55b
    --- /dev/null
    +++ b/docs/js-api/search/EventsC.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_CELL_undCONNECTED><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELL_CONNECTED" target=_parent class=ISymbol>CELL_CONNECTED</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undADDED><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_ADDED" target=_parent class=ISymbol>CELLS_ADDED</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undFOLDED><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_FOLDED" target=_parent class=ISymbol>CELLS_FOLDED</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undMOVED><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_MOVED" target=_parent class=ISymbol>CELLS_MOVED</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undORDERED><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_ORDERED" target=_parent class=ISymbol>CELLS_ORDERED</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undREMOVED><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_REMOVED" target=_parent class=ISymbol>CELLS_REMOVED</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undRESIZED><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_RESIZED" target=_parent class=ISymbol>CELLS_RESIZED</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_CHANGE><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CHANGE')" class=ISymbol>CHANGE</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.CHANGE" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.mxEvent.CHANGE" target=_parent class=IParent>mxGraphSelectionModel.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CLEAR><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxEvent.CLEAR" target=_parent class=ISymbol>CLEAR</a>, <span class=IParent>mxUndoManager.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_CLICK><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CLICK')" class=ISymbol>CLICK</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.mxEvent.CLICK" target=_parent class=IParent>mxCellOverlay.<wbr>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CLICK" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CONNECT><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CONNECT')" class=ISymbol>CONNECT</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mxEvent.CONNECT" target=_parent class=IParent>mxConnectionHandler.<wbr>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.CONNECT" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CONNECT_undCELL><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CONNECT_CELL" target=_parent class=ISymbol>CONNECT_CELL</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsD.html b/docs/js-api/search/EventsD.html
    new file mode 100644
    index 000000000..9ea5fbde2
    --- /dev/null
    +++ b/docs/js-api/search/EventsD.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_DISCONNECT><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.mxEvent.DISCONNECT" target=_parent class=ISymbol>DISCONNECT</a>, <span class=IParent>mxSession.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_DOUBLE_undCLICK><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.DOUBLE_CLICK" target=_parent class=ISymbol>DOUBLE_CLICK</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsE.html b/docs/js-api/search/EventsE.html
    new file mode 100644
    index 000000000..ca6d6e055
    --- /dev/null
    +++ b/docs/js-api/search/EventsE.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_END_undUPDATE><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.END_UPDATE" target=_parent class=ISymbol>END_UPDATE</a>, <span class=IParent>mxGraphModel.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_ESCAPE><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.ESCAPE" target=_parent class=ISymbol>ESCAPE</a>, <span class=IParent>mxEditor.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_EXECUTE><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.EXECUTE" target=_parent class=ISymbol>EXECUTE</a>, <span class=IParent>mxGraphModel.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsF.html b/docs/js-api/search/EventsF.html
    new file mode 100644
    index 000000000..9cb763b34
    --- /dev/null
    +++ b/docs/js-api/search/EventsF.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_FIRED><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.mxEvent.FIRED" target=_parent class=ISymbol>FIRED</a>, <span class=IParent>mxSession.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_FLIP_undEDGE><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.FLIP_EDGE" target=_parent class=ISymbol>FLIP_EDGE</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_FOLD_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.FOLD_CELLS" target=_parent class=ISymbol>FOLD_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsG.html b/docs/js-api/search/EventsG.html
    new file mode 100644
    index 000000000..9a3018cbe
    --- /dev/null
    +++ b/docs/js-api/search/EventsG.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_GET><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.mxEvent.GET" target=_parent class=ISymbol>GET</a>, <span class=IParent>mxSession.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_GROUP_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.GROUP_CELLS" target=_parent class=ISymbol>GROUP_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsL.html b/docs/js-api/search/EventsL.html
    new file mode 100644
    index 000000000..ff9a404c8
    --- /dev/null
    +++ b/docs/js-api/search/EventsL.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_LABEL_undCHANGED><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.LABEL_CHANGED" target=_parent class=ISymbol>LABEL_CHANGED</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_LAYOUT_undCELLS><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.mxEvent.LAYOUT_CELLS" target=_parent class=ISymbol>LAYOUT_CELLS</a>, <span class=IParent>mxLayoutManager.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsM.html b/docs/js-api/search/EventsM.html
    new file mode 100644
    index 000000000..608bcf367
    --- /dev/null
    +++ b/docs/js-api/search/EventsM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_MARK><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.mxEvent.MARK" target=_parent class=ISymbol>MARK</a>, <span class=IParent>mxCellMarker.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_MOVE_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.MOVE_CELLS" target=_parent class=ISymbol>MOVE_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsN.html b/docs/js-api/search/EventsN.html
    new file mode 100644
    index 000000000..fe5f8ca01
    --- /dev/null
    +++ b/docs/js-api/search/EventsN.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_NOTIFY><div class=IEntry><a href="javascript:searchResults.Toggle('SR_NOTIFY')" class=ISymbol>NOTIFY</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.NOTIFY" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.NOTIFY" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsO.html b/docs/js-api/search/EventsO.html
    new file mode 100644
    index 000000000..dd6260890
    --- /dev/null
    +++ b/docs/js-api/search/EventsO.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_OPEN><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.OPEN" target=_parent class=ISymbol>OPEN</a>, <span class=IParent>mxEditor.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_ORDER_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ORDER_CELLS" target=_parent class=ISymbol>ORDER_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsP.html b/docs/js-api/search/EventsP.html
    new file mode 100644
    index 000000000..e03030798
    --- /dev/null
    +++ b/docs/js-api/search/EventsP.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_PAN><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mxEvent.PAN" target=_parent class=ISymbol>PAN</a>, <span class=IParent>mxPanningHandler.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_PAN_undEND><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mxEvent.PAN_END" target=_parent class=ISymbol>PAN_END</a>, <span class=IParent>mxPanningHandler.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_PAN_undSTART><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mxEvent.PAN_START" target=_parent class=ISymbol>PAN_START</a>, <span class=IParent>mxPanningHandler.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_POST><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.POST" target=_parent class=ISymbol>POST</a>, <span class=IParent>mxEditor.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsR.html b/docs/js-api/search/EventsR.html
    new file mode 100644
    index 000000000..11facb808
    --- /dev/null
    +++ b/docs/js-api/search/EventsR.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_RECEIVE><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.mxEvent.RECEIVE" target=_parent class=ISymbol>RECEIVE</a>, <span class=IParent>mxSession.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_REDO><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxEvent.REDO" target=_parent class=ISymbol>REDO</a>, <span class=IParent>mxUndoManager.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_REFRESH><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.REFRESH" target=_parent class=ISymbol>REFRESH</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_REMOVE_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.REMOVE_CELLS" target=_parent class=ISymbol>REMOVE_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_REMOVE_undCELLS_undFROM_undPARENT><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.REMOVE_CELLS_FROM_PARENT" target=_parent class=ISymbol>REMOVE_CELLS_FROM_PARENT</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_REMOVE_undOVERLAY><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.REMOVE_OVERLAY" target=_parent class=ISymbol>REMOVE_OVERLAY</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_RESIZE_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.RESIZE_CELLS" target=_parent class=ISymbol>RESIZE_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_RESUME><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.mxEvent.RESUME" target=_parent class=ISymbol>RESUME</a>, <span class=IParent>mxSession.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_ROOT><div class=IEntry><a href="javascript:searchResults.Toggle('SR_ROOT')" class=ISymbol>ROOT</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.ROOT" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ROOT" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsS.html b/docs/js-api/search/EventsS.html
    new file mode 100644
    index 000000000..ce96f4f5f
    --- /dev/null
    +++ b/docs/js-api/search/EventsS.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_SAVE><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.SAVE" target=_parent class=ISymbol>SAVE</a>, <span class=IParent>mxEditor.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_SCALE><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.SCALE" target=_parent class=ISymbol>SCALE</a>, <span class=IParent>mxGraphView.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_SCALE_undAND_undTRANSLATE><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.SCALE_AND_TRANSLATE" target=_parent class=ISymbol>SCALE_AND_TRANSLATE</a>, <span class=IParent>mxGraphView.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_SELECT><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.mxEvent.SELECT" target=_parent class=ISymbol>SELECT</a>, <span class=IParent>mxToolbar.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_SESSION><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.SESSION" target=_parent class=ISymbol>SESSION</a>, <span class=IParent>mxEditor.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_SHOW><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.mxEvent.SHOW" target=_parent class=ISymbol>SHOW</a>, <span class=IParent>mxPopupMenu.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_SIZE><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.SIZE" target=_parent class=ISymbol>SIZE</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_SPLIT_undEDGE><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.SPLIT_EDGE" target=_parent class=ISymbol>SPLIT_EDGE</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_START_undEDITING><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.START_EDITING" target=_parent class=ISymbol>START_EDITING</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_SUSPEND><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.mxEvent.SUSPEND" target=_parent class=ISymbol>SUSPEND</a>, <span class=IParent>mxSession.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsT.html b/docs/js-api/search/EventsT.html
    new file mode 100644
    index 000000000..c887f4cd9
    --- /dev/null
    +++ b/docs/js-api/search/EventsT.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_TOGGLE_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.TOGGLE_CELLS" target=_parent class=ISymbol>TOGGLE_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_TRANSLATE><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.TRANSLATE" target=_parent class=ISymbol>TRANSLATE</a>, <span class=IParent>mxGraphView.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/EventsU.html b/docs/js-api/search/EventsU.html
    new file mode 100644
    index 000000000..50360d0f1
    --- /dev/null
    +++ b/docs/js-api/search/EventsU.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_UNDO><div class=IEntry><a href="javascript:searchResults.Toggle('SR_UNDO')" class=ISymbol>UNDO</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.UNDO" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.mxEvent.UNDO" target=_parent class=IParent>mxGraphSelectionModel.<wbr>mxEvent</a><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.UNDO" target=_parent class=IParent>mxGraphView.<wbr>mxEvent</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxEvent.UNDO" target=_parent class=IParent>mxUndoManager.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_UNGROUP_undCELLS><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.UNGROUP_CELLS" target=_parent class=ISymbol>UNGROUP_CELLS</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div><div class=SRResult id=SR_UP><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.DOWN_and_mxEvent.UP" target=_parent class=ISymbol>UP</a>, <span class=IParent>mxGraphView.<wbr>mxEvent.<wbr>DOWN and mxEvent</span></div></div><div class=SRResult id=SR_UPDATE_undCELL_undSIZE><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.UPDATE_CELL_SIZE" target=_parent class=ISymbol>UPDATE_CELL_SIZE</a>, <span class=IParent>mxGraph.<wbr>mxEvent</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FilesA.html b/docs/js-api/search/FilesA.html
    new file mode 100644
    index 000000000..566607ad8
    --- /dev/null
    +++ b/docs/js-api/search/FilesA.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_API_spcSpecification><div class=IEntry><a href="../files/index-txt.html#API_Specification" target=_parent class=ISymbol>API Specification</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FilesM.html b/docs/js-api/search/FilesM.html
    new file mode 100644
    index 000000000..57bc5bf59
    --- /dev/null
    +++ b/docs/js-api/search/FilesM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mxEdgeSegmentHandler_perjs><div class=IEntry><a href="../files/handler/mxEdgeSegmentHandler-js.html#mxEdgeSegmentHandler.js" target=_parent class=ISymbol>mxEdgeSegmentHandler.js</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsA.html b/docs/js-api/search/FunctionsA.html
    new file mode 100644
    index 000000000..38b387994
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsA.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_activate><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.activate" target=_parent class=ISymbol>activate</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_add><div class=IEntry><a href="javascript:searchResults.Toggle('SR_add')" class=ISymbol>add</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.add" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxRectangle-js.html#mxRectangle.add" target=_parent class=IParent>mxRectangle</a><a href="../files/util/mxResources-js.html#mxResources.add" target=_parent class=IParent>mxResources</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.add" target=_parent class=IParent>mxUndoableEdit</a></div></div></div><div class=SRResult id=SR_addAction><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addAction')" class=ISymbol>addAction</a><div class=ISubIndex><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.addAction" target=_parent class=IParent>mxDefaultPopupMenu</a><a href="../files/editor/mxEditor-js.html#mxEditor.addAction" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_addActionCombo><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addActionCombo" target=_parent class=ISymbol>addActionCombo</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_addActionOption><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addActionOption" target=_parent class=ISymbol>addActionOption</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_addActions><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.addActions" target=_parent class=ISymbol>addActions</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_addAlias><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.addAlias" target=_parent class=ISymbol>addAlias</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_addAllEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addAllEdges" target=_parent class=ISymbol>addAllEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addBreak><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.addBreak" target=_parent class=ISymbol>addBreak</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_addButton><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.addButton" target=_parent class=ISymbol>addButton</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_addButtons><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addButtons" target=_parent class=ISymbol>addButtons</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addCell')" class=ISymbol>addCell</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.addCell" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.addCell" target=_parent class=IParent>mxGraphSelectionModel</a></div></div></div><div class=SRResult id=SR_addCellOverlay><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addCellOverlay" target=_parent class=ISymbol>addCellOverlay</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addCells')" class=ISymbol>addCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.addCells" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.addCells" target=_parent class=IParent>mxGraphSelectionModel</a></div></div></div><div class=SRResult id=SR_addCheckbox><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addCheckbox" target=_parent class=ISymbol>addCheckbox</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addCombo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addCombo')" class=ISymbol>addCombo</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addCombo" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxForm-js.html#mxForm.addCombo" target=_parent class=IParent>mxForm</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addCombo" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addEdge" target=_parent class=ISymbol>addEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addEdges><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.addEdges" target=_parent class=ISymbol>addEdges</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_addField><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addField" target=_parent class=ISymbol>addField</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addImageBundle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addImageBundle" target=_parent class=ISymbol>addImageBundle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addItem><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addItem')" class=ISymbol>addItem</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addItem" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.addItem" target=_parent class=IParent>mxPopupMenu</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addItem" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addItems><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.addItems" target=_parent class=ISymbol>addItems</a>, <span class=IParent>mxDefaultPopupMenu</span></div></div><div class=SRResult id=SR_addLine><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.addLine" target=_parent class=ISymbol>addLine</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_addListener><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addListener')" class=ISymbol>addListener</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.addListener" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventSource-js.html#mxEventSource.addListener" target=_parent class=IParent>mxEventSource</a></div></div></div><div class=SRResult id=SR_addMode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addMode')" class=ISymbol>addMode</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addMode" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addMode" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addMouseListener><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addMouseListener" target=_parent class=ISymbol>addMouseListener</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addObjectValue><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.addObjectValue" target=_parent class=ISymbol>addObjectValue</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_addOption><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addOption')" class=ISymbol>addOption</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addOption" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxForm-js.html#mxForm.addOption" target=_parent class=IParent>mxForm</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addOption" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addPath><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.addPath" target=_parent class=ISymbol>addPath</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_addPoint><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.addPoint" target=_parent class=ISymbol>addPoint</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_addPrototype><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addPrototype" target=_parent class=ISymbol>addPrototype</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_addSelectionCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addSelectionCell" target=_parent class=ISymbol>addSelectionCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addSelectionCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addSelectionCells" target=_parent class=ISymbol>addSelectionCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addSeparator><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addSeparator')" class=ISymbol>addSeparator</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addSeparator" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.addSeparator" target=_parent class=IParent>mxPopupMenu</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addSeparator" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addStencil><div class=IEntry><a href="../files/shape/mxStencilRegistry-js.html#mxStencilRegistry.addStencil" target=_parent class=ISymbol>addStencil</a>, <span class=IParent>mxStencilRegistry</span></div></div><div class=SRResult id=SR_addStylename><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.addStylename" target=_parent class=ISymbol>addStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_addSwitchMode><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.addSwitchMode" target=_parent class=ISymbol>addSwitchMode</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_addTemplate><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.addTemplate" target=_parent class=ISymbol>addTemplate</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_addText><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addText" target=_parent class=ISymbol>addText</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addTextarea><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addTextarea" target=_parent class=ISymbol>addTextarea</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addVertex><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.addVertex" target=_parent class=ISymbol>addVertex</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_addWaypoint><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.addWaypoint" target=_parent class=ISymbol>addWaypoint</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_adjustParents><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.adjustParents" target=_parent class=ISymbol>adjustParents</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_afterDecode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_afterDecode')" class=ISymbol>afterDecode</a><div class=ISubIndex><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec.afterDecode" target=_parent class=IParent>mxChildChangeCodec</a><a href="../files/io/mxGenericChangeCodec-js.html#mxGenericChangeCodec.afterDecode" target=_parent class=IParent>mxGenericChangeCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.afterDecode" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxRootChangeCodec-js.html#mxRootChangeCodec.afterDecode" target=_parent class=IParent>mxRootChangeCodec</a><a href="../files/io/mxTerminalChangeCodec-js.html#mxTerminalChangeCodec.afterDecode" target=_parent class=IParent>mxTerminalChangeCodec</a></div></div></div><div class=SRResult id=SR_afterEncode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_afterEncode')" class=ISymbol>afterEncode</a><div class=ISubIndex><a href="../files/io/mxCellCodec-js.html#mxCellCodec.afterEncode" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec.afterEncode" target=_parent class=IParent>mxChildChangeCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.afterEncode" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_alert><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.alert" target=_parent class=ISymbol>alert</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_alignCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.alignCells" target=_parent class=ISymbol>alignCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_animateCell><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.animateCell" target=_parent class=ISymbol>animateCell</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_animateChanges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_animateChanges')" class=ISymbol>animateChanges</a><div class=ISubIndex><a href="../files/util/mxEffects-js.html#mxEffects.animateChanges" target=_parent class=IParent>mxEffects</a><a href="../files/util/mxUtils-js.html#mxUtils.animateChanges" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_apply><div class=IEntry><a href="javascript:searchResults.Toggle('SR_apply')" class=ISymbol>apply</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.apply" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.apply" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxShape-js.html#mxShape.apply" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.apply" target=_parent class=IParent>mxStencilShape</a></div></div></div><div class=SRResult id=SR_arcToCurves><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.arcToCurves" target=_parent class=ISymbol>arcToCurves</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_attachParent><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.attachParent" target=_parent class=ISymbol>attachParent</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_avoid><div class=IEntry><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout.avoid" target=_parent class=ISymbol>avoid</a>, <span class=IParent>mxEdgeLabelLayout</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsB.html b/docs/js-api/search/FunctionsB.html
    new file mode 100644
    index 000000000..46ce33e5b
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsB.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_beforeDecode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_beforeDecode')" class=ISymbol>beforeDecode</a><div class=ISubIndex><a href="../files/io/mxCellCodec-js.html#mxCellCodec.beforeDecode" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec.beforeDecode" target=_parent class=IParent>mxChildChangeCodec</a><a href="../files/io/mxEditorCodec-js.html#mxEditorCodec.beforeDecode" target=_parent class=IParent>mxEditorCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.beforeDecode" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxRootChangeCodec-js.html#mxRootChangeCodec.beforeDecode" target=_parent class=IParent>mxRootChangeCodec</a></div></div></div><div class=SRResult id=SR_beforeEncode><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.beforeEncode" target=_parent class=ISymbol>beforeEncode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_beforeUndo><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.beforeUndo" target=_parent class=ISymbol>beforeUndo</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_begin><div class=IEntry><a href="javascript:searchResults.Toggle('SR_begin')" class=ISymbol>begin</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.begin" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.begin" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_beginUpdate><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.beginUpdate" target=_parent class=ISymbol>beginUpdate</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_bind><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.bind" target=_parent class=ISymbol>bind</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_bindAction><div class=IEntry><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.bindAction" target=_parent class=ISymbol>bindAction</a>, <span class=IParent>mxDefaultKeyHandler</span></div></div><div class=SRResult id=SR_bindControlKey><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.bindControlKey" target=_parent class=ISymbol>bindControlKey</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_bindControlShiftKey><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.bindControlShiftKey" target=_parent class=ISymbol>bindControlShiftKey</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_bindKey><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.bindKey" target=_parent class=ISymbol>bindKey</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_bindShiftKey><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.bindShiftKey" target=_parent class=ISymbol>bindShiftKey</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_br><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.br" target=_parent class=ISymbol>br</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_bridge><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.bridge" target=_parent class=ISymbol>bridge</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_button><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.button" target=_parent class=ISymbol>button</a>, <span class=IParent>mxUtils</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsC.html b/docs/js-api/search/FunctionsC.html
    new file mode 100644
    index 000000000..93372df16
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsC.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_calcAttraction><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.calcAttraction" target=_parent class=ISymbol>calcAttraction</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_calcPositions><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.calcPositions" target=_parent class=ISymbol>calcPositions</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_calcRepulsion><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.calcRepulsion" target=_parent class=ISymbol>calcRepulsion</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_calculateCrossings><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.calculateCrossings" target=_parent class=ISymbol>calculateCrossings</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_calculatedWeightedValue><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.calculatedWeightedValue" target=_parent class=ISymbol>calculatedWeightedValue</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_calculateRankCrossing><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.calculateRankCrossing" target=_parent class=ISymbol>calculateRankCrossing</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_calculateWidestRank><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.calculateWidestRank" target=_parent class=ISymbol>calculateWidestRank</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_canExportCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.canExportCell" target=_parent class=ISymbol>canExportCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_canImportCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.canImportCell" target=_parent class=ISymbol>canImportCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_canRedo><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.canRedo" target=_parent class=ISymbol>canRedo</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_canUndo><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.canUndo" target=_parent class=ISymbol>canUndo</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_cascadeOpacity><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cascadeOpacity')" class=ISymbol>cascadeOpacity</a><div class=ISubIndex><a href="../files/util/mxEffects-js.html#mxEffects.cascadeOpacity" target=_parent class=IParent>mxEffects</a><a href="../files/util/mxUtils-js.html#mxUtils.cascadeOpacity" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_cellAdded><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellAdded')" class=ISymbol>cellAdded</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cellAdded" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.cellAdded" target=_parent class=IParent>mxGraphSelectionModel</a></div></div></div><div class=SRResult id=SR_cellCloned><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cellCloned" target=_parent class=ISymbol>cellCloned</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cellConnected><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellConnected" target=_parent class=ISymbol>cellConnected</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellLabelChanged><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellLabelChanged" target=_parent class=ISymbol>cellLabelChanged</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellRemoved><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellRemoved')" class=ISymbol>cellRemoved</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cellRemoved" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.cellRemoved" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/util/mxSession-js.html#mxSession.cellRemoved" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_cellResized><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.cellResized" target=_parent class=ISymbol>cellResized</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_cellsAdded><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellsAdded')" class=ISymbol>cellsAdded</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.cellsAdded" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.cellsAdded" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_cellsFolded><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsFolded" target=_parent class=ISymbol>cellsFolded</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellSizeUpdated><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellSizeUpdated" target=_parent class=ISymbol>cellSizeUpdated</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsMoved><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellsMoved')" class=ISymbol>cellsMoved</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.cellsMoved" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.cellsMoved" target=_parent class=IParent>mxLayoutManager</a></div></div></div><div class=SRResult id=SR_cellsOrdered><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsOrdered" target=_parent class=ISymbol>cellsOrdered</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsRemoved><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsRemoved" target=_parent class=ISymbol>cellsRemoved</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsResized><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellsResized')" class=ISymbol>cellsResized</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.cellsResized" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.cellsResized" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.cellsResized" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_cellsToggled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsToggled" target=_parent class=ISymbol>cellsToggled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_changePoints><div class=IEntry><a href="javascript:searchResults.Toggle('SR_changePoints')" class=ISymbol>changePoints</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#changePoints" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.changePoints" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_changeSelection><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.changeSelection" target=_parent class=ISymbol>changeSelection</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_changeTerminalPoint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_changeTerminalPoint')" class=ISymbol>changeTerminalPoint</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#changeTerminalPoint" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.changeTerminalPoint" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_check><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.check" target=_parent class=ISymbol>check</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_checkNeighbors><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.checkNeighbors" target=_parent class=ISymbol>checkNeighbors</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_checkTerminal><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.checkTerminal" target=_parent class=ISymbol>checkTerminal</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_checkType><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.checkType" target=_parent class=ISymbol>checkType</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_childMoved><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.childMoved" target=_parent class=ISymbol>childMoved</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_circle><div class=IEntry><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.circle" target=_parent class=ISymbol>circle</a>, <span class=IParent>mxCircleLayout</span></div></div><div class=SRResult id=SR_clear><div class=IEntry><a href="javascript:searchResults.Toggle('SR_clear')" class=ISymbol>clear</a><div class=ISubIndex><a href="../files/util/mxDictionary-js.html#mxDictionary.clear" target=_parent class=IParent>mxDictionary</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.clear" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.clear" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/view/mxGraphView-js.html#mxGraphView.clear" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.clear" target=_parent class=IParent>mxObjectIdentity</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.clear" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR_clearCellOverlays><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.clearCellOverlays" target=_parent class=ISymbol>clearCellOverlays</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_clearSelection><div class=IEntry><a href="javascript:searchResults.Toggle('SR_clearSelection')" class=ISymbol>clearSelection</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.clearSelection" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.clearSelection" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_click><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.click" target=_parent class=ISymbol>click</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_clip><div class=IEntry><a href="javascript:searchResults.Toggle('SR_clip')" class=ISymbol>clip</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.clip" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.clip" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_clone><div class=IEntry><a href="javascript:searchResults.Toggle('SR_clone')" class=ISymbol>clone</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.clone" target=_parent class=IParent>mxCell</a><a href="../files/view/mxCellState-js.html#mxCellState.clone" target=_parent class=IParent>mxCellState</a><a href="../files/shape/mxLine-js.html#mxLine.clone" target=_parent class=IParent>mxLine</a><a href="../files/util/mxPoint-js.html#mxPoint.clone" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxUtils-js.html#mxUtils.clone" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_cloneCell><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cloneCell" target=_parent class=ISymbol>cloneCell</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCellImpl><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cloneCellImpl" target=_parent class=ISymbol>cloneCellImpl</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cloneCells')" class=ISymbol>cloneCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.cloneCells" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cloneCells" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_clonePreviewState><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.clonePreviewState" target=_parent class=ISymbol>clonePreviewState</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_cloneTemplate><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.cloneTemplate" target=_parent class=ISymbol>cloneTemplate</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_cloneValue><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.cloneValue" target=_parent class=ISymbol>cloneValue</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_close><div class=IEntry><a href="javascript:searchResults.Toggle('SR_close')" class=ISymbol>close</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.close" target=_parent class=IParent>mxPath</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.close" target=_parent class=IParent>mxPrintPreview</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.close" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.close" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_collapsedStateForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.collapsedStateForCellChanged" target=_parent class=ISymbol>collapsedStateForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_compare><div class=IEntry><a href="javascript:searchResults.Toggle('SR_compare')" class=ISymbol>compare</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.compare" target=_parent class=IParent>MedianCellSorter</a><a href="../files/model/mxCellPath-js.html#mxCellPath.compare" target=_parent class=IParent>mxCellPath</a><span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.compare" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.compare" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></div><div class=SRResult id=SR_computeAspect><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.computeAspect" target=_parent class=ISymbol>computeAspect</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_configure><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.configure" target=_parent class=ISymbol>configure</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_configureHtmlShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_configureHtmlShape')" class=ISymbol>configureHtmlShape</a><div class=ISubIndex><a href="../files/shape/mxConnector-js.html#mxConnector.configureHtmlShape" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxShape-js.html#mxShape.configureHtmlShape" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.configureHtmlShape" target=_parent class=IParent>mxStencilShape</a></div></div></div><div class=SRResult id=SR_configureShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.configureShape" target=_parent class=ISymbol>configureShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_configureSvgShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_configureSvgShape')" class=ISymbol>configureSvgShape</a><div class=ISubIndex><a href="../files/shape/mxImageShape-js.html#mxImageShape.configureSvgShape" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxShape-js.html#mxShape.configureSvgShape" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_configureTransparentBackground><div class=IEntry><a href="javascript:searchResults.Toggle('SR_configureTransparentBackground')" class=ISymbol>configureTransparentBackground</a><div class=ISubIndex><a href="../files/shape/mxArrow-js.html#mxArrow.configureTransparentBackground" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.configureTransparentBackground" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxShape-js.html#mxShape.configureTransparentBackground" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_configureVmlShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_configureVmlShape')" class=ISymbol>configureVmlShape</a><div class=ISubIndex><a href="../files/shape/mxShape-js.html#mxShape.configureVmlShape" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.configureVmlShape" target=_parent class=IParent>mxStencilShape</a></div></div></div><div class=SRResult id=SR_confirm><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.confirm" target=_parent class=ISymbol>confirm</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_connect><div class=IEntry><a href="javascript:searchResults.Toggle('SR_connect')" class=ISymbol>connect</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#connect" target=_parent class=IParent>Global</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.connect" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.connect" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.connect" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/editor/mxEditor-js.html#mxEditor.connect" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_connectCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.connectCell" target=_parent class=ISymbol>connectCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_constrainChild><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.constrainChild" target=_parent class=ISymbol>constrainChild</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_consume><div class=IEntry><a href="javascript:searchResults.Toggle('SR_consume')" class=ISymbol>consume</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.consume" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventObject-js.html#mxEventObject.consume" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.consume" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_consumeCycleAttribute><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.consumeCycleAttribute" target=_parent class=ISymbol>consumeCycleAttribute</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_contains><div class=IEntry><a href="javascript:searchResults.Toggle('SR_contains')" class=ISymbol>contains</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.contains" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-js.html#mxUtils.contains" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_convert><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.convert" target=_parent class=ISymbol>convert</a>, <span class=IParent>mxUrlConverter</span></div></div><div class=SRResult id=SR_convertPoint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_convertPoint')" class=ISymbol>convertPoint</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.convertPoint" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.convertPoint" target=_parent class=IParent>mxElbowEdgeHandler</a><a href="../files/util/mxUtils-js.html#mxUtils.convertPoint" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_convertValueFromXml><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.convertValueFromXml" target=_parent class=ISymbol>convertValueFromXml</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_convertValueToString><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.convertValueToString" target=_parent class=ISymbol>convertValueToString</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_convertValueToXml><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.convertValueToXml" target=_parent class=ISymbol>convertValueToXml</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_convertWaypoint><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.convertWaypoint" target=_parent class=ISymbol>convertWaypoint</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_copy><div class=IEntry><a href="javascript:searchResults.Toggle('SR_copy')" class=ISymbol>copy</a><div class=ISubIndex><a href="../files/util/mxClipboard-js.html#mxClipboard.copy" target=_parent class=IParent>mxClipboard</a><a href="../files/util/mxUtils-js.html#mxUtils.copy" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_create><div class=IEntry><a href="javascript:searchResults.Toggle('SR_create')" class=ISymbol>create</a><div class=ISubIndex><a href="../files/model/mxCellPath-js.html#mxCellPath.create" target=_parent class=IParent>mxCellPath</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.create" target=_parent class=IParent>mxCylinder</a><a href="../files/view/mxGraphView-js.html#mxGraphView.create" target=_parent class=IParent>mxGraphView</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.create" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.create" target=_parent class=IParent>mxPolyline</a><a href="../files/shape/mxShape-js.html#mxShape.create" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxText-js.html#mxText.create" target=_parent class=IParent>mxText</a><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.create" target=_parent class=IParent>mxXmlRequest</a></div></div></div><div class=SRResult id=SR_createBackgroundPageShape><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.createBackgroundPageShape" target=_parent class=ISymbol>createBackgroundPageShape</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createBends><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createBends')" class=ISymbol>createBends</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#createBends" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.createBends" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.createBends" target=_parent class=IParent>mxElbowEdgeHandler</a></div></div></div><div class=SRResult id=SR_createBounds><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.createBounds" target=_parent class=ISymbol>createBounds</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_createCellEditor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createCellEditor" target=_parent class=ISymbol>createCellEditor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createCellOverlays><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.createCellOverlays" target=_parent class=ISymbol>createCellOverlays</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_createCellRenderer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createCellRenderer" target=_parent class=ISymbol>createCellRenderer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createConditions><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.createConditions" target=_parent class=ISymbol>createConditions</a>, <span class=IParent>mxDefaultPopupMenu</span></div></div><div class=SRResult id=SR_createControl><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.createControl" target=_parent class=ISymbol>createControl</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_createDashPattern><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector.createDashPattern" target=_parent class=ISymbol>createDashPattern</a>, <span class=IParent>mxConnector</span></div></div><div class=SRResult id=SR_createDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.createDefaultEdgeStyle" target=_parent class=ISymbol>createDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_createDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.createDefaultVertexStyle" target=_parent class=ISymbol>createDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_createDiagramLayout><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createDiagramLayout" target=_parent class=ISymbol>createDiagramLayout</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createDragElement><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.createDragElement" target=_parent class=ISymbol>createDragElement</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_createEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createEdge')" class=ISymbol>createEdge</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createEdge" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/editor/mxEditor-js.html#mxEditor.createEdge" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.createEdge" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_createEdgeState><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createEdgeState" target=_parent class=ISymbol>createEdgeState</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_createForeignObject><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.createForeignObject" target=_parent class=ISymbol>createForeignObject</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_createGraph><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createGraph" target=_parent class=ISymbol>createGraph</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createGraphView><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createGraphView" target=_parent class=ISymbol>createGraphView</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createGroup><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createGroup" target=_parent class=ISymbol>createGroup</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createGroupCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createGroupCell" target=_parent class=ISymbol>createGroupCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createGuideShape><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.createGuideShape" target=_parent class=ISymbol>createGuideShape</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_createHandler><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createHandler" target=_parent class=ISymbol>createHandler</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createHandlers><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createHandlers" target=_parent class=ISymbol>createHandlers</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createHandleShape><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.createHandleShape" target=_parent class=ISymbol>createHandleShape</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_createHtml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createHtml')" class=ISymbol>createHtml</a><div class=ISubIndex><a href="../files/shape/mxLabel-js.html#mxLabel.createHtml" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape.createHtml" target=_parent class=IParent>mxRectangleShape</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.createHtml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.createHtml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.createHtml" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.createHtml" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_createHtmlPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.createHtmlPane" target=_parent class=ISymbol>createHtmlPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createHtmlTable><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.createHtmlTable" target=_parent class=ISymbol>createHtmlTable</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_createIcons><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createIcons" target=_parent class=ISymbol>createIcons</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_createId><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.createId" target=_parent class=ISymbol>createId</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createImage><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.createImage" target=_parent class=ISymbol>createImage</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_createInternalCells><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.createInternalCells" target=_parent class=ISymbol>createInternalCells</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_createLabel><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.createLabel" target=_parent class=ISymbol>createLabel</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_createLayoutManager><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createLayoutManager" target=_parent class=ISymbol>createLayoutManager</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createLine><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.createLine" target=_parent class=ISymbol>createLine</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_createMarker><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createMarker')" class=ISymbol>createMarker</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createMarker" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.createMarker" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_createMenu><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.createMenu" target=_parent class=ISymbol>createMenu</a>, <span class=IParent>mxDefaultPopupMenu</span></div></div><div class=SRResult id=SR_createNode><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.createNode" target=_parent class=ISymbol>createNode</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_createPageSelector><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.createPageSelector" target=_parent class=ISymbol>createPageSelector</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_createPanningManager><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createPanningManager" target=_parent class=ISymbol>createPanningManager</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createPath><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createPath" target=_parent class=ISymbol>createPath</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createPoints><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createPoints" target=_parent class=ISymbol>createPoints</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createPopupMenu><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createPopupMenu" target=_parent class=ISymbol>createPopupMenu</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createPreviewElement><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.createPreviewElement" target=_parent class=ISymbol>createPreviewElement</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_createPreviewShape><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.createPreviewShape" target=_parent class=ISymbol>createPreviewShape</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_createProperties><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createProperties" target=_parent class=ISymbol>createProperties</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createRoot><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.createRoot" target=_parent class=ISymbol>createRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createSelectionModel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createSelectionModel" target=_parent class=ISymbol>createSelectionModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createSelectionShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createSelectionShape')" class=ISymbol>createSelectionShape</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.createSelectionShape" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.createSelectionShape" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_createSession><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createSession" target=_parent class=ISymbol>createSession</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createShape')" class=ISymbol>createShape</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.createShape" target=_parent class=IParent>mxCellHighlight</a><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.createShape" target=_parent class=IParent>mxCellRenderer</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createShape" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxImageExport-js.html#mxImageExport.createShape" target=_parent class=IParent>mxImageExport</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.createShape" target=_parent class=IParent>mxRubberband</a></div></div></div><div class=SRResult id=SR_createSizer><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createSizer')" class=ISymbol>createSizer</a><div class=ISubIndex><a href="../files/view/mxOutline-js.html#mxOutline.createSizer" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.createSizer" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_createSizerShape><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.createSizerShape" target=_parent class=ISymbol>createSizerShape</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_createState><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.createState" target=_parent class=ISymbol>createState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createStylesheet><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createStylesheet" target=_parent class=ISymbol>createStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createSubmenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.createSubmenu" target=_parent class=ISymbol>createSubmenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_createSvg><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createSvg')" class=ISymbol>createSvg</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.createSvg" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxArrow-js.html#mxArrow.createSvg" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxConnector-js.html#mxConnector.createSvg" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.createSvg" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.createSvg" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.createSvg" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxLabel-js.html#mxLabel.createSvg" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxLine-js.html#mxLine.createSvg" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.createSvg" target=_parent class=IParent>mxPolyline</a><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape.createSvg" target=_parent class=IParent>mxRectangleShape</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.createSvg" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.createSvg" target=_parent class=IParent>mxStencilShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.createSvg" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.createSvg" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_createSvgGradient><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createSvgGradient" target=_parent class=ISymbol>createSvgGradient</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createSvgGroup><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createSvgGroup" target=_parent class=ISymbol>createSvgGroup</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createSvgPipe><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createSvgPipe" target=_parent class=ISymbol>createSvgPipe</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createSvgShadow><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createSvgShadow" target=_parent class=ISymbol>createSvgShadow</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createSvgSpan><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createSvgSpan')" class=ISymbol>createSvgSpan</a><div class=ISubIndex><a href="../files/shape/mxRhombus-js.html#mxRhombus.createSvgSpan" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxText-js.html#mxText.createSvgSpan" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_createSwimlaneLayout><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createSwimlaneLayout" target=_parent class=ISymbol>createSwimlaneLayout</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createSwimlaneManager><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createSwimlaneManager" target=_parent class=ISymbol>createSwimlaneManager</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createTargetVertex><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createTargetVertex" target=_parent class=ISymbol>createTargetVertex</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_createTasks><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createTasks" target=_parent class=ISymbol>createTasks</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createToolbar><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createToolbar" target=_parent class=ISymbol>createToolbar</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createUndoableEdit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createUndoableEdit')" class=ISymbol>createUndoableEdit</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.createUndoableEdit" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxSession-js.html#mxSession.createUndoableEdit" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_createVertex><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createVertex" target=_parent class=ISymbol>createVertex</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createVirtualBend><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.createVirtualBend" target=_parent class=ISymbol>createVirtualBend</a>, <span class=IParent>mxElbowEdgeHandler</span></div></div><div class=SRResult id=SR_createVml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createVml')" class=ISymbol>createVml</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.createVml" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxArrow-js.html#mxArrow.createVml" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxConnector-js.html#mxConnector.createVml" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.createVml" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.createVml" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.createVml" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxLabel-js.html#mxLabel.createVml" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxLine-js.html#mxLine.createVml" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape.createVml" target=_parent class=IParent>mxRectangleShape</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.createVml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.createVml" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.createVml" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_createVmlImage><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel.createVmlImage" target=_parent class=ISymbol>createVmlImage</a>, <span class=IParent>mxLabel</span></div></div><div class=SRResult id=SR_createVmlPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.createVmlPane" target=_parent class=ISymbol>createVmlPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createVmlShadow><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createVmlShadow" target=_parent class=ISymbol>createVmlShadow</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createXmlDocument><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.createXmlDocument" target=_parent class=ISymbol>createXmlDocument</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_crossingStage><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.crossingStage" target=_parent class=ISymbol>crossingStage</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_curveTo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_curveTo')" class=ISymbol>curveTo</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.curveTo" target=_parent class=IParent>mxPath</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.curveTo" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.curveTo" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_cut><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard.cut" target=_parent class=ISymbol>cut</a>, <span class=IParent>mxClipboard</span></div></div><div class=SRResult id=SR_cycleAttribute><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.cycleAttribute" target=_parent class=ISymbol>cycleAttribute</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_cycleStage><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.cycleStage" target=_parent class=ISymbol>cycleStage</a>, <span class=IParent>mxHierarchicalLayout</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsD.html b/docs/js-api/search/FunctionsD.html
    new file mode 100644
    index 000000000..143d11c29
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsD.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_dblClick><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.dblClick" target=_parent class=ISymbol>dblClick</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_debug><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.debug" target=_parent class=ISymbol>debug</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_decode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_decode')" class=ISymbol>decode</a><div class=ISubIndex><a href="../files/io/mxCodec-js.html#mxCodec.decode" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxDefaultKeyHandlerCodec-js.html#mxDefaultKeyHandlerCodec.decode" target=_parent class=IParent>mxDefaultKeyHandlerCodec</a><a href="../files/io/mxDefaultPopupMenuCodec-js.html#mxDefaultPopupMenuCodec.decode" target=_parent class=IParent>mxDefaultPopupMenuCodec</a><a href="../files/io/mxDefaultToolbarCodec-js.html#mxDefaultToolbarCodec.decode" target=_parent class=IParent>mxDefaultToolbarCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decode" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxStylesheetCodec-js.html#mxStylesheetCodec.decode" target=_parent class=IParent>mxStylesheetCodec</a></div></div></div><div class=SRResult id=SR_decodeAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeAttribute" target=_parent class=ISymbol>decodeAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeAttributes><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeAttributes" target=_parent class=ISymbol>decodeAttributes</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeCell><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.decodeCell" target=_parent class=ISymbol>decodeCell</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_decodeChanges><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.decodeChanges" target=_parent class=ISymbol>decodeChanges</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_decodeChild><div class=IEntry><a href="javascript:searchResults.Toggle('SR_decodeChild')" class=ISymbol>decodeChild</a><div class=ISubIndex><a href="../files/io/mxEditorCodec-js.html#mxEditorCodec.decodeChild" target=_parent class=IParent>mxEditorCodec</a><a href="../files/io/mxModelCodec-js.html#mxModelCodec.decodeChild" target=_parent class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeChild" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_decodeChildren><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeChildren" target=_parent class=ISymbol>decodeChildren</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeNode><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeNode" target=_parent class=ISymbol>decodeNode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeRoot><div class=IEntry><a href="../files/io/mxModelCodec-js.html#mxModelCodec.decodeRoot" target=_parent class=ISymbol>decodeRoot</a>, <span class=IParent>mxModelCodec</span></div></div><div class=SRResult id=SR_decodeTemplates><div class=IEntry><a href="../files/io/mxEditorCodec-js.html#mxEditorCodec.decodeTemplates" target=_parent class=ISymbol>decodeTemplates</a>, <span class=IParent>mxEditorCodec</span></div></div><div class=SRResult id=SR_destroy><div class=IEntry><a href="javascript:searchResults.Toggle('SR_destroy')" class=ISymbol>destroy</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.destroy" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/view/mxCellEditor-js.html#mxCellEditor.destroy" target=_parent class=IParent>mxCellEditor</a><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.destroy" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.destroy" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.destroy" target=_parent class=IParent>mxCellRenderer</a><a href="../files/view/mxCellState-js.html#mxCellState.destroy" target=_parent class=IParent>mxCellState</a><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.destroy" target=_parent class=IParent>mxCellTracker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.destroy" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.destroy" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.destroy" target=_parent class=IParent>mxDefaultKeyHandler</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.destroy" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.destroy" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/editor/mxEditor-js.html#mxEditor.destroy" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.destroy" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.destroy" target=_parent class=IParent>mxGraphHandler</a><a href="../files/view/mxGraphView-js.html#mxGraphView.destroy" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxGuide-js.html#mxGuide.destroy" target=_parent class=IParent>mxGuide</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.destroy" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.destroy" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxOutline-js.html#mxOutline.destroy" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.destroy" target=_parent class=IParent>mxPanningHandler</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.destroy" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.destroy" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.destroy" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/shape/mxShape-js.html#mxShape.destroy" target=_parent class=IParent>mxShape</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.destroy" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.destroy" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.destroy" target=_parent class=IParent>mxTemporaryCellStates</a><a href="../files/shape/mxText-js.html#mxText.destroy" target=_parent class=IParent>mxText</a><a href="../files/util/mxToolbar-js.html#mxToolbar.destroy" target=_parent class=IParent>mxToolbar</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.destroy" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.destroy" target=_parent class=IParent>mxVertexHandler</a><a href="../files/util/mxWindow-js.html#mxWindow.destroy" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_destroyIcons><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.destroyIcons" target=_parent class=ISymbol>destroyIcons</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_destroyShapes><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.destroyShapes" target=_parent class=ISymbol>destroyShapes</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_dfs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_dfs')" class=ISymbol>dfs</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.dfs" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.dfs" target=_parent class=IParent>mxGraphHierarchyModel</a></div></div></div><div class=SRResult id=SR_die><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.die" target=_parent class=ISymbol>die</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_disableContextMenu><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.disableContextMenu" target=_parent class=ISymbol>disableContextMenu</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_disconnect><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxChildChange.disconnect" target=_parent class=ISymbol>disconnect</a>, <span class=IParent>mxChildChange</span></div></div><div class=SRResult id=SR_disconnectGraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.disconnectGraph" target=_parent class=ISymbol>disconnectGraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_dispose><div class=IEntry><a href="../files/mxClient-js.html#mxClient.dispose" target=_parent class=ISymbol>dispose</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_dragEnter><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragEnter" target=_parent class=ISymbol>dragEnter</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_dragExit><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragExit" target=_parent class=ISymbol>dragExit</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_dragOver><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragOver" target=_parent class=ISymbol>dragOver</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_drawGlass><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawGlass" target=_parent class=ISymbol>drawGlass</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawHighlight><div class=IEntry><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.drawHighlight" target=_parent class=ISymbol>drawHighlight</a>, <span class=IParent>mxCellHighlight</span></div></div><div class=SRResult id=SR_drawImage><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawImage" target=_parent class=ISymbol>drawImage</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawLabel><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawLabel" target=_parent class=ISymbol>drawLabel</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawLabelBackground><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawLabelBackground" target=_parent class=ISymbol>drawLabelBackground</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawMarker><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawMarker" target=_parent class=ISymbol>drawMarker</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawNode><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.drawNode" target=_parent class=ISymbol>drawNode</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_drawOverlays><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawOverlays" target=_parent class=ISymbol>drawOverlays</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawPreview><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawPreview')" class=ISymbol>drawPreview</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.drawPreview" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.drawPreview" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.drawPreview" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_drawShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawShape')" class=ISymbol>drawShape</a><div class=ISubIndex><a href="../files/util/mxImageExport-js.html#mxImageExport.drawShape" target=_parent class=IParent>mxImageExport</a><a href="../files/shape/mxStencil-js.html#mxStencil.drawShape" target=_parent class=IParent>mxStencil</a></div></div></div><div class=SRResult id=SR_drawState><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawState" target=_parent class=ISymbol>drawState</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drop><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drop')" class=ISymbol>drop</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.drop" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxDragSource-js.html#mxDragSource.drop" target=_parent class=IParent>mxDragSource</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsE.html b/docs/js-api/search/FunctionsE.html
    new file mode 100644
    index 000000000..c1153ef13
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsE.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ElbowConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.ElbowConnector" target=_parent class=ISymbol>ElbowConnector</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_ellipse><div class=IEntry><a href="javascript:searchResults.Toggle('SR_ellipse')" class=ISymbol>ellipse</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.ellipse" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.ellipse" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_EllipsePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter.EllipsePerimeter" target=_parent class=ISymbol>EllipsePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_encode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_encode')" class=ISymbol>encode</a><div class=ISubIndex><a href="../files/io/mxCodec-js.html#mxCodec.encode" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxDefaultKeyHandlerCodec-js.html#mxDefaultKeyHandlerCodec.encode" target=_parent class=IParent>mxDefaultKeyHandlerCodec</a><a href="../files/io/mxDefaultPopupMenuCodec-js.html#mxDefaultPopupMenuCodec.encode" target=_parent class=IParent>mxDefaultPopupMenuCodec</a><a href="../files/io/mxDefaultToolbarCodec-js.html#mxDefaultToolbarCodec.encode" target=_parent class=IParent>mxDefaultToolbarCodec</a><a href="../files/io/mxGraphViewCodec-js.html#mxGraphViewCodec.encode" target=_parent class=IParent>mxGraphViewCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.encode" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxStylesheetCodec-js.html#mxStylesheetCodec.encode" target=_parent class=IParent>mxStylesheetCodec</a></div></div></div><div class=SRResult id=SR_encodeCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_encodeCell')" class=ISymbol>encodeCell</a><div class=ISubIndex><a href="../files/io/mxCodec-js.html#mxCodec.encodeCell" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxGraphViewCodec-js.html#mxGraphViewCodec.encodeCell" target=_parent class=IParent>mxGraphViewCodec</a></div></div></div><div class=SRResult id=SR_encodeChanges><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.encodeChanges" target=_parent class=ISymbol>encodeChanges</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_encodeObject><div class=IEntry><a href="javascript:searchResults.Toggle('SR_encodeObject')" class=ISymbol>encodeObject</a><div class=ISubIndex><a href="../files/io/mxModelCodec-js.html#mxModelCodec.encodeObject" target=_parent class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.encodeObject" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_encodeValue><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.encodeValue" target=_parent class=ISymbol>encodeValue</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_end><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.end" target=_parent class=ISymbol>end</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_endUpdate><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.endUpdate" target=_parent class=ISymbol>endUpdate</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_enter><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.enter" target=_parent class=ISymbol>enter</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_enterGroup><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.enterGroup" target=_parent class=ISymbol>enterGroup</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_EntityRelation><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.EntityRelation" target=_parent class=ISymbol>EntityRelation</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_equalEntries><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.equalEntries" target=_parent class=ISymbol>equalEntries</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_equalPoints><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.equalPoints" target=_parent class=ISymbol>equalPoints</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_equals><div class=IEntry><a href="javascript:searchResults.Toggle('SR_equals')" class=ISymbol>equals</a><div class=ISubIndex><a href="../files/util/mxPoint-js.html#mxPoint.equals" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxRectangle-js.html#mxRectangle.equals" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_error><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.error" target=_parent class=ISymbol>error</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_escape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_escape')" class=ISymbol>escape</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.escape" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.escape" target=_parent class=IParent>mxKeyHandler</a></div></div></div><div class=SRResult id=SR_eval><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.eval" target=_parent class=ISymbol>eval</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_evaluateAttribute><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.evaluateAttribute" target=_parent class=ISymbol>evaluateAttribute</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_execute><div class=IEntry><a href="javascript:searchResults.Toggle('SR_execute')" class=ISymbol>execute</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxCellAttributeChange.execute" target=_parent class=IParent>mxCellAttributeChange</a><a href="../files/model/mxGraphModel-js.html#mxChildChange.execute" target=_parent class=IParent>mxChildChange</a><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.execute" target=_parent class=IParent>mxCircleLayout</a><a href="../files/model/mxGraphModel-js.html#mxCollapseChange.execute" target=_parent class=IParent>mxCollapseChange</a><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.execute" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.execute" target=_parent class=IParent>mxCompositeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.execute" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/view/mxGraphView-js.html#mxCurrentRootChange.execute" target=_parent class=IParent>mxCurrentRootChange</a><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout.execute" target=_parent class=IParent>mxEdgeLabelLayout</a><a href="../files/editor/mxEditor-js.html#mxEditor.execute" target=_parent class=IParent>mxEditor</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.execute" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/model/mxGraphModel-js.html#mxGeometryChange.execute" target=_parent class=IParent>mxGeometryChange</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.execute" target=_parent class=IParent>mxGraphLayout</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.execute" target=_parent class=IParent>mxGraphModel</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.execute" target=_parent class=IParent>mxHierarchicalLayout</a><a href="../files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html#mxHierarchicalLayoutStage.execute" target=_parent class=IParent>mxHierarchicalLayoutStage</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.execute" target=_parent class=IParent>mxMedianHybridCrossingReduction</a><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover.execute" target=_parent class=IParent>mxMinimumCycleRemover</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.execute" target=_parent class=IParent>mxParallelEdgeLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.execute" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/model/mxGraphModel-js.html#mxRootChange.execute" target=_parent class=IParent>mxRootChange</a><a href="../files/view/mxGraphSelectionModel-js.html#mxSelectionChange.execute" target=_parent class=IParent>mxSelectionChange</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.execute" target=_parent class=IParent>mxStackLayout</a><a href="../files/model/mxGraphModel-js.html#mxStyleChange.execute" target=_parent class=IParent>mxStyleChange</a><a href="../files/model/mxGraphModel-js.html#mxTerminalChange.execute" target=_parent class=IParent>mxTerminalChange</a><a href="../files/model/mxGraphModel-js.html#mxValueChange.execute" target=_parent class=IParent>mxValueChange</a><a href="../files/model/mxGraphModel-js.html#mxVisibleChange.execute" target=_parent class=IParent>mxVisibleChange</a></div></div></div><div class=SRResult id=SR_executeLayout><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.executeLayout" target=_parent class=ISymbol>executeLayout</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_exitGroup><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.exitGroup" target=_parent class=ISymbol>exitGroup</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_extend><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.extend" target=_parent class=ISymbol>extend</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_extendedDfs><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.extendedDfs" target=_parent class=ISymbol>extendedDfs</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_extendParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.extendParent" target=_parent class=ISymbol>extendParent</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsF.html b/docs/js-api/search/FunctionsF.html
    new file mode 100644
    index 000000000..3040f5c1f
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsF.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_fadeOut><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fadeOut')" class=ISymbol>fadeOut</a><div class=ISubIndex><a href="../files/util/mxEffects-js.html#mxEffects.fadeOut" target=_parent class=IParent>mxEffects</a><a href="../files/util/mxUtils-js.html#mxUtils.fadeOut" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_fill><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fill')" class=ISymbol>fill</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.fill" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.fill" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_fillstroke><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fillstroke')" class=ISymbol>fillstroke</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.fillstroke" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.fillstroke" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_filterCells><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.filterCells" target=_parent class=ISymbol>filterCells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_filterDescendants><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.filterDescendants" target=_parent class=ISymbol>filterDescendants</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_findNearestSegment><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.findNearestSegment" target=_parent class=ISymbol>findNearestSegment</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_findNode><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.findNode" target=_parent class=ISymbol>findNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_findNodeByAttribute><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.findNodeByAttribute" target=_parent class=ISymbol>findNodeByAttribute</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_findParallels><div class=IEntry><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.findParallels" target=_parent class=ISymbol>findParallels</a>, <span class=IParent>mxParallelEdgeLayout</span></div></div><div class=SRResult id=SR_findTreeRoots><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.findTreeRoots" target=_parent class=ISymbol>findTreeRoots</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_fireEvent><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.fireEvent" target=_parent class=ISymbol>fireEvent</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_fireMouseEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.fireMouseEvent" target=_parent class=ISymbol>fireMouseEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_fit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fit')" class=ISymbol>fit</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.fit" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.fit" target=_parent class=IParent>mxUtils</a><a href="../files/util/mxWindow-js.html#mxWindow.fit" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_fixRanks><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.fixRanks" target=_parent class=ISymbol>fixRanks</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_flipEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.flipEdge" target=_parent class=ISymbol>flipEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_focusLost><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.focusLost" target=_parent class=ISymbol>focusLost</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_foldCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.foldCells" target=_parent class=ISymbol>foldCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_formOrderedHierarchy><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.formOrderedHierarchy" target=_parent class=ISymbol>formOrderedHierarchy</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsG.html b/docs/js-api/search/FunctionsG.html
    new file mode 100644
    index 000000000..ce0d699c7
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsG.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geometryForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.geometryForCellChanged" target=_parent class=ISymbol>geometryForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_get><div class=IEntry><a href="javascript:searchResults.Toggle('SR_get')" class=ISymbol>get</a><div class=ISubIndex><a href="../files/util/mxDictionary-js.html#mxDictionary.get" target=_parent class=IParent>mxDictionary</a><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.get" target=_parent class=IParent>mxObjectIdentity</a><a href="../files/util/mxResources-js.html#mxResources.get" target=_parent class=IParent>mxResources</a><a href="../files/util/mxSession-js.html#mxSession.get" target=_parent class=IParent>mxSession</a><a href="../files/util/mxUtils-js.html#mxUtils.get" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getAlignmentTolerance><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getAlignmentTolerance" target=_parent class=ISymbol>getAlignmentTolerance</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getAllConnectionConstraints><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getAllConnectionConstraints" target=_parent class=ISymbol>getAllConnectionConstraints</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getAllEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getAllEdges" target=_parent class=ISymbol>getAllEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getAttribute><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.getAttribute" target=_parent class=ISymbol>getAttribute</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getAttributeName><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.getAttributeName" target=_parent class=ISymbol>getAttributeName</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getBackgroundBounds><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.getBackgroundBounds" target=_parent class=ISymbol>getBackgroundBounds</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_getBackgroundImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getBackgroundImage" target=_parent class=ISymbol>getBackgroundImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getBackgroundPageBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getBackgroundPageBounds" target=_parent class=ISymbol>getBackgroundPageBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getBackgroundPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getBackgroundPane" target=_parent class=ISymbol>getBackgroundPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getBaseUrl><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.getBaseUrl" target=_parent class=ISymbol>getBaseUrl</a>, <span class=IParent>mxUrlConverter</span></div></div><div class=SRResult id=SR_getBorder><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getBorder" target=_parent class=ISymbol>getBorder</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getBoundingBox><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getBoundingBox" target=_parent class=ISymbol>getBoundingBox</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getBoundingBoxFromGeometry><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getBoundingBoxFromGeometry" target=_parent class=ISymbol>getBoundingBoxFromGeometry</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getBounds')" class=ISymbol>getBounds</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.getBounds" target=_parent class=IParent>mxCellOverlay</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getBoundsForGroup><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getBoundsForGroup" target=_parent class=ISymbol>getBoundsForGroup</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCanvas><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getCanvas" target=_parent class=ISymbol>getCanvas</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCell')" class=ISymbol>getCell</a><div class=ISubIndex><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getCell" target=_parent class=IParent>mxCellMarker</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getCell" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getCell" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_getCellAt><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellAt" target=_parent class=ISymbol>getCellAt</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCellBounds')" class=ISymbol>getCellBounds</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getCellBounds" target=_parent class=IParent>mxGraph</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.getCellBounds" target=_parent class=IParent>mxGraphLayout</a></div></div></div><div class=SRResult id=SR_getCellContainmentArea><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellContainmentArea" target=_parent class=ISymbol>getCellContainmentArea</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellForPopupEvent><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.getCellForPopupEvent" target=_parent class=ISymbol>getCellForPopupEvent</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_getCellGeometry><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellGeometry" target=_parent class=ISymbol>getCellGeometry</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellOverlays><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellOverlays" target=_parent class=ISymbol>getCellOverlays</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCells')" class=ISymbol>getCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getCells" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.getCells" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_getCellsBeyond><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellsBeyond" target=_parent class=ISymbol>getCellsBeyond</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellsForChange><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.getCellsForChange" target=_parent class=ISymbol>getCellsForChange</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_getCellsForEdit><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.getCellsForEdit" target=_parent class=ISymbol>getCellsForEdit</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_getCellsForGroup><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellsForGroup" target=_parent class=ISymbol>getCellsForGroup</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellStates><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getCellStates" target=_parent class=ISymbol>getCellStates</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getCellsToShift><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.getCellsToShift" target=_parent class=ISymbol>getCellsToShift</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_getCellStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCellStyle')" class=ISymbol>getCellStyle</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getCellStyle" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxStylesheet-js.html#mxStylesheet.getCellStyle" target=_parent class=IParent>mxStylesheet</a></div></div></div><div class=SRResult id=SR_getCellValidationError><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellValidationError" target=_parent class=ISymbol>getCellValidationError</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCenterX><div class=IEntry><a href="../files/util/mxRectangle-js.html#mxRectangle.getCenterX" target=_parent class=ISymbol>getCenterX</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_getCenterY><div class=IEntry><a href="../files/util/mxRectangle-js.html#mxRectangle.getCenterY" target=_parent class=ISymbol>getCenterY</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_getChildAt><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildAt')" class=ISymbol>getChildAt</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getChildAt" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildAt" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildCells')" class=ISymbol>getChildCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getChildCells" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildCells" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildCount><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildCount')" class=ISymbol>getChildCount</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getChildCount" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildCount" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildEdges')" class=ISymbol>getChildEdges</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getChildEdges" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildEdges" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildNodes><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getChildNodes" target=_parent class=ISymbol>getChildNodes</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getChildOffsetForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getChildOffsetForCell" target=_parent class=ISymbol>getChildOffsetForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getChildren><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildren" target=_parent class=ISymbol>getChildren</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getChildVertices><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildVertices')" class=ISymbol>getChildVertices</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getChildVertices" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildVertices" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getClientX><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.getClientX" target=_parent class=ISymbol>getClientX</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_getClientY><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.getClientY" target=_parent class=ISymbol>getClientY</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_getCloneableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCloneableCells" target=_parent class=ISymbol>getCloneableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCodec><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.getCodec" target=_parent class=ISymbol>getCodec</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_getColor><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getColor" target=_parent class=ISymbol>getColor</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getConnectImage><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getConnectImage" target=_parent class=ISymbol>getConnectImage</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getConnectionConstraint><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getConnectionConstraint" target=_parent class=ISymbol>getConnectionConstraint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getConnectionPoint><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getConnectionPoint" target=_parent class=ISymbol>getConnectionPoint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getConnections><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getConnections')" class=ISymbol>getConnections</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getConnections" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getConnections" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getConstraint><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.getConstraint" target=_parent class=ISymbol>getConstraint</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_getControlBounds><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getControlBounds" target=_parent class=ISymbol>getControlBounds</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getConverter><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getConverter')" class=ISymbol>getConverter</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.getConverter" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.getConverter" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_getCurrentRoot><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCurrentRoot" target=_parent class=ISymbol>getCurrentRoot</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCurrentStyle><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getCurrentStyle" target=_parent class=ISymbol>getCurrentStyle</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getCurrentValue><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getCurrentValue" target=_parent class=ISymbol>getCurrentValue</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getCursor><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.getCursor" target=_parent class=ISymbol>getCursor</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_getCursorForBend><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.getCursorForBend" target=_parent class=ISymbol>getCursorForBend</a>, <span class=IParent>mxElbowEdgeHandler</span></div></div><div class=SRResult id=SR_getCursorForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCursorForCell" target=_parent class=ISymbol>getCursorForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDefaultBundle><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.getDefaultBundle" target=_parent class=ISymbol>getDefaultBundle</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_getDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.getDefaultEdgeStyle" target=_parent class=ISymbol>getDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_getDefaultParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getDefaultParent" target=_parent class=ISymbol>getDefaultParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.getDefaultVertexStyle" target=_parent class=ISymbol>getDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_getDeletableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getDeletableCells" target=_parent class=ISymbol>getDeletableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDelta><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.getDelta" target=_parent class=ISymbol>getDelta</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_getDescendants><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getDescendants" target=_parent class=ISymbol>getDescendants</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getDirectedEdgeCount><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getDirectedEdgeCount" target=_parent class=ISymbol>getDirectedEdgeCount</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getDocType><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.getDocType" target=_parent class=ISymbol>getDocType</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_getDocument><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.getDocument" target=_parent class=ISymbol>getDocument</a>, <span class=IParent>mxXmlCanvas2D</span></div></div><div class=SRResult id=SR_getDocumentElement><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.getDocumentElement" target=_parent class=ISymbol>getDocumentElement</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_getDocumentHeight><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.getDocumentHeight" target=_parent class=ISymbol>getDocumentHeight</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_getDocumentWidth><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.getDocumentWidth" target=_parent class=ISymbol>getDocumentWidth</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_getDrawPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getDrawPane" target=_parent class=ISymbol>getDrawPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getDropTarget><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getDropTarget')" class=ISymbol>getDropTarget</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.getDropTarget" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.getDropTarget" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_getEdgeAt><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeAt')" class=ISymbol>getEdgeAt</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getEdgeAt" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getEdgeAt" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeColor><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getEdgeColor" target=_parent class=ISymbol>getEdgeColor</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getEdgeCount><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeCount')" class=ISymbol>getEdgeCount</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getEdgeCount" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getEdgeCount" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeId><div class=IEntry><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.getEdgeId" target=_parent class=ISymbol>getEdgeId</a>, <span class=IParent>mxParallelEdgeLayout</span></div></div><div class=SRResult id=SR_getEdgeIndex><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.getEdgeIndex" target=_parent class=ISymbol>getEdgeIndex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdges')" class=ISymbol>getEdges</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getEdges" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getEdges" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgesBetween><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgesBetween')" class=ISymbol>getEdgesBetween</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getEdgesBetween" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getEdgesBetween" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeStyle')" class=ISymbol>getEdgeStyle</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.getEdgeStyle" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getEdgeStyle" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getEdgeValidationError><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getEdgeValidationError" target=_parent class=ISymbol>getEdgeValidationError</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getEdgeWidth><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getEdgeWidth" target=_parent class=ISymbol>getEdgeWidth</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getEditingCell><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getEditingCell" target=_parent class=ISymbol>getEditingCell</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getEditingValue><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getEditingValue" target=_parent class=ISymbol>getEditingValue</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getEditorBounds><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getEditorBounds" target=_parent class=ISymbol>getEditorBounds</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getElement><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.getElement" target=_parent class=ISymbol>getElement</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_getElementById><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.getElementById" target=_parent class=ISymbol>getElementById</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_getEmptyLabelText><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getEmptyLabelText" target=_parent class=ISymbol>getEmptyLabelText</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getEvent><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getEvent" target=_parent class=ISymbol>getEvent</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_getEventSource><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.getEventSource" target=_parent class=ISymbol>getEventSource</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_getExportableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getExportableCells" target=_parent class=ISymbol>getExportableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getFieldName><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.getFieldName" target=_parent class=ISymbol>getFieldName</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getFieldTemplate><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.getFieldTemplate" target=_parent class=ISymbol>getFieldTemplate</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getFirstSelectableCell><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.getFirstSelectableCell" target=_parent class=ISymbol>getFirstSelectableCell</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_getFoldableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getFoldableCells" target=_parent class=ISymbol>getFoldableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getFoldingImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getFoldingImage" target=_parent class=ISymbol>getFoldingImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getFunction><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.getFunction" target=_parent class=ISymbol>getFunction</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_getFunctionName><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getFunctionName" target=_parent class=ISymbol>getFunctionName</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getGeneralPurposeVariable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGeneralPurposeVariable')" class=ISymbol>getGeneralPurposeVariable</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.getGeneralPurposeVariable" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.getGeneralPurposeVariable" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.getGeneralPurposeVariable" target=_parent class=IParent>mxGraphHierarchyNode</a></div></div></div><div class=SRResult id=SR_getGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGeometry')" class=ISymbol>getGeometry</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getGeometry" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getGeometry" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getGradientId><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.getGradientId" target=_parent class=ISymbol>getGradientId</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_getGraph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGraph')" class=ISymbol>getGraph</a><div class=ISubIndex><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.getGraph" target=_parent class=IParent>mxGraphLayout</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.getGraph" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.getGraph" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.getGraph" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_getGraphBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGraphBounds')" class=ISymbol>getGraphBounds</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getGraphBounds" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getGraphBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getGraphForEvent><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.getGraphForEvent" target=_parent class=ISymbol>getGraphForEvent</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_getGraphX><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getGraphX" target=_parent class=ISymbol>getGraphX</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_getGraphY><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getGraphY" target=_parent class=ISymbol>getGraphY</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_getGridSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getGridSize" target=_parent class=ISymbol>getGridSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getGuideStates><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.getGuideStates" target=_parent class=ISymbol>getGuideStates</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_getGuideTolerance><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.getGuideTolerance" target=_parent class=ISymbol>getGuideTolerance</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_getHandleFillColor><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getHandleFillColor" target=_parent class=ISymbol>getHandleFillColor</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_getHandleForEvent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getHandleForEvent')" class=ISymbol>getHandleForEvent</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getHandleForEvent" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.getHandleForEvent" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_getHandler><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.getHandler" target=_parent class=ISymbol>getHandler</a>, <span class=IParent>mxSelectionCellsHandler</span></div></div><div class=SRResult id=SR_getHotspot><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getHotspot" target=_parent class=ISymbol>getHotspot</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getId><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getId')" class=ISymbol>getId</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getId" target=_parent class=IParent>mxCell</a><a href="../files/io/mxCodec-js.html#mxCodec.getId" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_getImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getImage')" class=ISymbol>getImage</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getImage" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxImageBundle-js.html#mxImageBundle.getImage" target=_parent class=IParent>mxImageBundle</a></div></div></div><div class=SRResult id=SR_getImageBounds><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.getImageBounds" target=_parent class=ISymbol>getImageBounds</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_getImageForConstraint><div class=IEntry><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.getImageForConstraint" target=_parent class=ISymbol>getImageForConstraint</a>, <span class=IParent>mxConstraintHandler</span></div></div><div class=SRResult id=SR_getImageFromBundles><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getImageFromBundles" target=_parent class=ISymbol>getImageFromBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getImportableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getImportableCells" target=_parent class=ISymbol>getImportableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getIncomingEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getIncomingEdges')" class=ISymbol>getIncomingEdges</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getIncomingEdges" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getIncomingEdges" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getIndex><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.getIndex" target=_parent class=ISymbol>getIndex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getIndicatorColor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getIndicatorColor" target=_parent class=ISymbol>getIndicatorColor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getIndicatorGradientColor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getIndicatorGradientColor" target=_parent class=ISymbol>getIndicatorGradientColor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getIndicatorImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getIndicatorImage" target=_parent class=ISymbol>getIndicatorImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getIndicatorShape><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getIndicatorShape" target=_parent class=ISymbol>getIndicatorShape</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getInitialCellForEvent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.getInitialCellForEvent" target=_parent class=ISymbol>getInitialCellForEvent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_getInitialValue><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getInitialValue" target=_parent class=ISymbol>getInitialValue</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getInnerHtml><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getInnerHtml" target=_parent class=ISymbol>getInnerHtml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getKeys><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary.getKeys" target=_parent class=ISymbol>getKeys</a>, <span class=IParent>mxDictionary</span></div></div><div class=SRResult id=SR_getLabel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getLabel" target=_parent class=ISymbol>getLabel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getLabelBounds><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getLabelBounds" target=_parent class=ISymbol>getLabelBounds</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getLabelValue><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getLabelValue" target=_parent class=ISymbol>getLabelValue</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getLayout><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.getLayout" target=_parent class=ISymbol>getLayout</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_getMainEvent><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.getMainEvent" target=_parent class=ISymbol>getMainEvent</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_getMarkedState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getMarkedState" target=_parent class=ISymbol>getMarkedState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getMarkerColor><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getMarkerColor" target=_parent class=ISymbol>getMarkerColor</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getMaximumGraphBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getMaximumGraphBounds" target=_parent class=ISymbol>getMaximumGraphBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getMinimumSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getMinimumSize')" class=ISymbol>getMinimumSize</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getMinimumSize" target=_parent class=IParent>mxCellEditor</a><a href="../files/util/mxWindow-js.html#mxWindow.getMinimumSize" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_getModel><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getModel')" class=ISymbol>getModel</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getModel" target=_parent class=IParent>mxGraph</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.getModel" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_getMovableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getMovableCells" target=_parent class=ISymbol>getMovableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getName><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getName')" class=ISymbol>getName</a><div class=ISubIndex><a href="../files/util/mxEventObject-js.html#mxEventObject.getName" target=_parent class=IParent>mxEventObject</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.getName" target=_parent class=IParent>mxObjectCodec</a><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.getName" target=_parent class=IParent>mxStyleRegistry</a></div></div></div><div class=SRResult id=SR_getNearestCommonAncestor><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getNearestCommonAncestor" target=_parent class=ISymbol>getNearestCommonAncestor</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getNextLayerConnectedCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getNextLayerConnectedCells')" class=ISymbol>getNextLayerConnectedCells</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.getNextLayerConnectedCells" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.getNextLayerConnectedCells" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.getNextLayerConnectedCells" target=_parent class=IParent>mxGraphHierarchyNode</a></div></div></div><div class=SRResult id=SR_getNextPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getNextPoint" target=_parent class=ISymbol>getNextPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getNumber><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getNumber" target=_parent class=ISymbol>getNumber</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getObject><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.getObject" target=_parent class=ISymbol>getObject</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_getOffset><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getOffset')" class=ISymbol>getOffset</a><div class=ISubIndex><a href="../files/shape/mxText-js.html#mxText.getOffset" target=_parent class=IParent>mxText</a><a href="../files/util/mxUtils-js.html#mxUtils.getOffset" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getOffsetSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getOffsetSize" target=_parent class=ISymbol>getOffsetSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getOpposites><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getOpposites')" class=ISymbol>getOpposites</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getOpposites" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getOpposites" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getOrigin><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getOrigin" target=_parent class=ISymbol>getOrigin</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getOriginForCell><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.getOriginForCell" target=_parent class=ISymbol>getOriginForCell</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_getOuterHtml><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getOuterHtml" target=_parent class=ISymbol>getOuterHtml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getOutgoingEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getOutgoingEdges')" class=ISymbol>getOutgoingEdges</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getOutgoingEdges" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getOutgoingEdges" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getOverlap><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getOverlap" target=_parent class=ISymbol>getOverlap</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getOverlayPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getOverlayPane" target=_parent class=ISymbol>getOverlayPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getParent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getParent')" class=ISymbol>getParent</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getParent" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getParent" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getParentOffset><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.getParentOffset" target=_parent class=ISymbol>getParentOffset</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_getParentPath><div class=IEntry><a href="../files/model/mxCellPath-js.html#mxCellPath.getParentPath" target=_parent class=ISymbol>getParentPath</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_getParents><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getParents" target=_parent class=ISymbol>getParents</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getParentSize><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.getParentSize" target=_parent class=ISymbol>getParentSize</a>, <span class=IParent>mxStackLayout</span></div></div><div class=SRResult id=SR_getPath><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.getPath" target=_parent class=ISymbol>getPath</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_getPerimeterBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPerimeterBounds')" class=ISymbol>getPerimeterBounds</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.getPerimeterBounds" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getPerimeterBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getPerimeterFunction><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getPerimeterFunction" target=_parent class=ISymbol>getPerimeterFunction</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getPerimeterPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getPerimeterPoint" target=_parent class=ISymbol>getPerimeterPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getPoint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPoint')" class=ISymbol>getPoint</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView.getPoint" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxRectangle-js.html#mxRectangle.getPoint" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_getPointForEvent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPointForEvent')" class=ISymbol>getPointForEvent</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getPointForEvent" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.getPointForEvent" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_getPreferredSizeForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getPreferredSizeForCell" target=_parent class=ISymbol>getPreferredSizeForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getPrettyXML><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getPrettyXML" target=_parent class=ISymbol>getPrettyXML</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getPreviewBounds><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.getPreviewBounds" target=_parent class=ISymbol>getPreviewBounds</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_getPreviewPoints><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPreviewPoints')" class=ISymbol>getPreviewPoints</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#getPreviewPoints" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getPreviewPoints" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_getPreviewTerminalState><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getPreviewTerminalState" target=_parent class=ISymbol>getPreviewTerminalState</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_getPreviousLayerConnectedCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPreviousLayerConnectedCells')" class=ISymbol>getPreviousLayerConnectedCells</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.getPreviousLayerConnectedCells" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.getPreviousLayerConnectedCells" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.getPreviousLayerConnectedCells" target=_parent class=IParent>mxGraphHierarchyNode</a></div></div></div><div class=SRResult id=SR_getProperties><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject.getProperties" target=_parent class=ISymbol>getProperties</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_getProperty><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject.getProperty" target=_parent class=ISymbol>getProperty</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_getRankValue><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.getRankValue" target=_parent class=ISymbol>getRankValue</a>, <span class=IParent>mxGraphHierarchyNode</span></div></div><div class=SRResult id=SR_getRelativePoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getRelativePoint" target=_parent class=ISymbol>getRelativePoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getRemovedCellsForChanges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getRemovedCellsForChanges" target=_parent class=ISymbol>getRemovedCellsForChanges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getRoot><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getRoot" target=_parent class=ISymbol>getRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getRootTitle><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getRootTitle" target=_parent class=ISymbol>getRootTitle</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getRotatedPoint><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getRotatedPoint" target=_parent class=ISymbol>getRotatedPoint</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getRotation><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.getRotation" target=_parent class=ISymbol>getRotation</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_getRoutingCenterX><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getRoutingCenterX" target=_parent class=ISymbol>getRoutingCenterX</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getRoutingCenterY><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getRoutingCenterY" target=_parent class=ISymbol>getRoutingCenterY</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getScale><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getScale" target=_parent class=ISymbol>getScale</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getScaleForPageCount><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getScaleForPageCount" target=_parent class=ISymbol>getScaleForPageCount</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getScrollOrigin><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getScrollOrigin" target=_parent class=ISymbol>getScrollOrigin</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getSelectionBounds><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.getSelectionBounds" target=_parent class=ISymbol>getSelectionBounds</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_getSelectionCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionCell" target=_parent class=ISymbol>getSelectionCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionCells" target=_parent class=ISymbol>getSelectionCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionCellsForChanges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionCellsForChanges" target=_parent class=ISymbol>getSelectionCellsForChanges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getSelectionColor')" class=ISymbol>getSelectionColor</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getSelectionColor" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.getSelectionColor" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_getSelectionCount><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionCount" target=_parent class=ISymbol>getSelectionCount</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionModel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionModel" target=_parent class=ISymbol>getSelectionModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionPoints><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getSelectionPoints" target=_parent class=ISymbol>getSelectionPoints</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_getSelectionStrokeWidth><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getSelectionStrokeWidth')" class=ISymbol>getSelectionStrokeWidth</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getSelectionStrokeWidth" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.getSelectionStrokeWidth" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_getShapeConstructor><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getShapeConstructor" target=_parent class=ISymbol>getShapeConstructor</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getSizeForString><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getSizeForString" target=_parent class=ISymbol>getSizeForString</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getSnapToTerminalTolerance><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getSnapToTerminalTolerance" target=_parent class=ISymbol>getSnapToTerminalTolerance</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_getSource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getSource')" class=ISymbol>getSource</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.getSource" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getSource" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_getSourcePerimeterPoint><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getSourcePerimeterPoint" target=_parent class=ISymbol>getSourcePerimeterPoint</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getSpacing><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.getSpacing" target=_parent class=ISymbol>getSpacing</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_getSpecialBundle><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.getSpecialBundle" target=_parent class=ISymbol>getSpecialBundle</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_getStartSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getStartSize" target=_parent class=ISymbol>getStartSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getState><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getState')" class=ISymbol>getState</a><div class=ISubIndex><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getState" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getState" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getState" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_getStates><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getStates" target=_parent class=ISymbol>getStates</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getStateToMark><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getStateToMark" target=_parent class=ISymbol>getStateToMark</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getStatus><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.getStatus" target=_parent class=ISymbol>getStatus</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_getStencil><div class=IEntry><a href="../files/shape/mxStencilRegistry-js.html#mxStencilRegistry.getStencil" target=_parent class=ISymbol>getStencil</a>, <span class=IParent>mxStencilRegistry</span></div></div><div class=SRResult id=SR_getStringValue><div class=IEntry><a href="../files/io/mxStylesheetCodec-js.html#mxStylesheetCodec.getStringValue" target=_parent class=ISymbol>getStringValue</a>, <span class=IParent>mxStylesheetCodec</span></div></div><div class=SRResult id=SR_getStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getStyle')" class=ISymbol>getStyle</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getStyle" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getStyle" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getStylename><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getStylename" target=_parent class=ISymbol>getStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getStylenames><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getStylenames" target=_parent class=ISymbol>getStylenames</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getStylesheet><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getStylesheet" target=_parent class=ISymbol>getStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSvgClip><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.getSvgClip" target=_parent class=ISymbol>getSvgClip</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_getSvgShadowTransform><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.getSvgShadowTransform" target=_parent class=ISymbol>getSvgShadowTransform</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_getSwimlane><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSwimlane" target=_parent class=ISymbol>getSwimlane</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSwimlaneAt><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSwimlaneAt" target=_parent class=ISymbol>getSwimlaneAt</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTable><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.getTable" target=_parent class=ISymbol>getTable</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_getTableSize><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.getTableSize" target=_parent class=ISymbol>getTableSize</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_getTargetPerimeterPoint><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getTargetPerimeterPoint" target=_parent class=ISymbol>getTargetPerimeterPoint</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getTemplate><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getTemplate" target=_parent class=ISymbol>getTemplate</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTerminal')" class=ISymbol>getTerminal</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getTerminal" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getTerminal" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getTerminalForPort><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getTerminalForPort" target=_parent class=ISymbol>getTerminalForPort</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTerminalPoint><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.getTerminalPoint" target=_parent class=ISymbol>getTerminalPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_getTerminalPort><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getTerminalPort" target=_parent class=ISymbol>getTerminalPort</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getText><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.getText" target=_parent class=ISymbol>getText</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_getTextContent><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getTextContent" target=_parent class=ISymbol>getTextContent</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getTextScale><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getTextScale" target=_parent class=ISymbol>getTextScale</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getTitle><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getTitle" target=_parent class=ISymbol>getTitle</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getTolerance><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTolerance')" class=ISymbol>getTolerance</a><div class=ISubIndex><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.getTolerance" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.getTolerance" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_getTooltip><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getTooltip" target=_parent class=ISymbol>getTooltip</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTooltipForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getTooltipForCell" target=_parent class=ISymbol>getTooltipForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTooltipForNode><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.getTooltipForNode" target=_parent class=ISymbol>getTooltipForNode</a>, <span class=IParent>mxElbowEdgeHandler</span></div></div><div class=SRResult id=SR_getTopmostCells><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getTopmostCells" target=_parent class=ISymbol>getTopmostCells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getTranslate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getTranslate" target=_parent class=ISymbol>getTranslate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getTranslateForRoot><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getTranslateForRoot" target=_parent class=ISymbol>getTranslateForRoot</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getUrlImage><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getUrlImage" target=_parent class=ISymbol>getUrlImage</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getUrlPost><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getUrlPost" target=_parent class=ISymbol>getUrlPost</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getValidState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getValidState" target=_parent class=ISymbol>getValidState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getValue')" class=ISymbol>getValue</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getValue" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getValue" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.getValue" target=_parent class=IParent>mxStyleRegistry</a><a href="../files/util/mxUtils-js.html#mxUtils.getValue" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getValues><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary.getValues" target=_parent class=ISymbol>getValues</a>, <span class=IParent>mxDictionary</span></div></div><div class=SRResult id=SR_getVerticalAlign><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getVerticalAlign" target=_parent class=ISymbol>getVerticalAlign</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getVerticalOffset><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.getVerticalOffset" target=_parent class=ISymbol>getVerticalOffset</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_getView><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getView" target=_parent class=ISymbol>getView</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getViewXml><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getViewXml" target=_parent class=ISymbol>getViewXml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getVisibleTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getVisibleTerminal')" class=ISymbol>getVisibleTerminal</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.getVisibleTerminal" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getVisibleTerminal" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getVisibleTerminalState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.getVisibleTerminalState" target=_parent class=ISymbol>getVisibleTerminalState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_getWindow><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.getWindow" target=_parent class=ISymbol>getWindow</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_getX><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getX')" class=ISymbol>getX</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.getX" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getX" target=_parent class=IParent>mxMouseEvent</a><a href="../files/util/mxWindow-js.html#mxWindow.getX" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_getXml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getXml')" class=ISymbol>getXml</a><div class=ISubIndex><a href="../files/util/mxUtils-js.html#mxUtils.getXml" target=_parent class=IParent>mxUtils</a><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.getXml" target=_parent class=IParent>mxXmlRequest</a></div></div></div><div class=SRResult id=SR_getY><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getY')" class=ISymbol>getY</a><div class=ISubIndex><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getY" target=_parent class=IParent>mxMouseEvent</a><a href="../files/util/mxWindow-js.html#mxWindow.getY" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_graphContainsEvent><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.graphContainsEvent" target=_parent class=ISymbol>graphContainsEvent</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_graphModelChanged><div class=IEntry><a href="javascript:searchResults.Toggle('SR_graphModelChanged')" class=ISymbol>graphModelChanged</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.graphModelChanged" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/view/mxGraph-js.html#mxGraph.graphModelChanged" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_graphRenderHint><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.graphRenderHint" target=_parent class=ISymbol>graphRenderHint</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_groupCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_groupCells')" class=ISymbol>groupCells</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.groupCells" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.groupCells" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_grow><div class=IEntry><a href="../files/util/mxRectangle-js.html#mxRectangle.grow" target=_parent class=ISymbol>grow</a>, <span class=IParent>mxRectangle</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsH.html b/docs/js-api/search/FunctionsH.html
    new file mode 100644
    index 000000000..6577d2753
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsH.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_handleGesture><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.handleGesture" target=_parent class=ISymbol>handleGesture</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_handlingResize><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.handlingResize" target=_parent class=ISymbol>handlingResize</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_hasScrollbars><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.hasScrollbars" target=_parent class=ISymbol>hasScrollbars</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_hasValidState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.hasValidState" target=_parent class=ISymbol>hasValidState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_hide><div class=IEntry><a href="javascript:searchResults.Toggle('SR_hide')" class=ISymbol>hide</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.hide" target=_parent class=IParent>mxCellHighlight</a><a href="../files/util/mxGuide-js.html#mxGuide.hide" target=_parent class=IParent>mxGuide</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.hide" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxWindow-js.html#mxWindow.hide" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_hideMenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.hideMenu" target=_parent class=ISymbol>hideMenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_hideProperties><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.hideProperties" target=_parent class=ISymbol>hideProperties</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_hideSubmenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.hideSubmenu" target=_parent class=ISymbol>hideSubmenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_hideTooltip><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.hideTooltip" target=_parent class=ISymbol>hideTooltip</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_hitsSwimlaneContent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.hitsSwimlaneContent" target=_parent class=ISymbol>hitsSwimlaneContent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_home><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.home" target=_parent class=ISymbol>home</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_horizontalLayout><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.horizontalLayout" target=_parent class=ISymbol>horizontalLayout</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_htmlEntities><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.htmlEntities" target=_parent class=ISymbol>htmlEntities</a>, <span class=IParent>mxUtils</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsI.html b/docs/js-api/search/FunctionsI.html
    new file mode 100644
    index 000000000..45d283659
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsI.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_image><div class=IEntry><a href="javascript:searchResults.Toggle('SR_image')" class=ISymbol>image</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.image" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.image" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_importCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.importCells" target=_parent class=ISymbol>importCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_include><div class=IEntry><a href="../files/mxClient-js.html#mxClient.include" target=_parent class=ISymbol>include</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_indexOf><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.indexOf" target=_parent class=ISymbol>indexOf</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_indexOfStylename><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.indexOfStylename" target=_parent class=ISymbol>indexOfStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_info><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.info" target=_parent class=ISymbol>info</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_init><div class=IEntry><a href="javascript:searchResults.Toggle('SR_init')" class=ISymbol>init</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.init" target=_parent class=IParent>mxCellEditor</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.init" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.init" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.init" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-js.html#mxGraphView.init" target=_parent class=IParent>mxGraphView</a><a href="../files/shape/mxLabel-js.html#mxLabel.init" target=_parent class=IParent>mxLabel</a><a href="../files/util/mxLog-js.html#mxLog.init" target=_parent class=IParent>mxLog</a><a href="../files/view/mxOutline-js.html#mxOutline.init" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.init" target=_parent class=IParent>mxPanningHandler</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.init" target=_parent class=IParent>mxPopupMenu</a><a href="../files/shape/mxShape-js.html#mxShape.init" target=_parent class=IParent>mxShape</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.init" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.init" target=_parent class=IParent>mxVertexHandler</a><a href="../files/util/mxWindow-js.html#mxWindow.init" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_initBend><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.initBend" target=_parent class=ISymbol>initBend</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_initControl><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initControl" target=_parent class=ISymbol>initControl</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initialCoords><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.initialCoords" target=_parent class=ISymbol>initialCoords</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_initialize><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initialize" target=_parent class=ISymbol>initialize</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initializeLabel><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initializeLabel" target=_parent class=ISymbol>initializeLabel</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initializeOverlay><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initializeOverlay" target=_parent class=ISymbol>initializeOverlay</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initializeShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initializeShape" target=_parent class=ISymbol>initializeShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initialRank><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.initialRank" target=_parent class=ISymbol>initialRank</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_initMarkers><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.initMarkers" target=_parent class=ISymbol>initMarkers</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_initShapes><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.initShapes" target=_parent class=ISymbol>initShapes</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_insert><div class=IEntry><a href="javascript:searchResults.Toggle('SR_insert')" class=ISymbol>insert</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.insert" target=_parent class=IParent>mxCell</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.insert" target=_parent class=IParent>mxDefaultToolbar</a></div></div></div><div class=SRResult id=SR_insertEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_insertEdge')" class=ISymbol>insertEdge</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.insertEdge" target=_parent class=IParent>mxCell</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.insertEdge" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.insertEdge" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_insertGradient><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.insertGradient" target=_parent class=ISymbol>insertGradient</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_insertIntoGraph><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.insertIntoGraph" target=_parent class=ISymbol>insertIntoGraph</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_insertState><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.insertState" target=_parent class=ISymbol>insertState</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_insertVertex><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.insertVertex" target=_parent class=ISymbol>insertVertex</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_installChangeHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installChangeHandler" target=_parent class=ISymbol>installChangeHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_installCloseHandler><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.installCloseHandler" target=_parent class=ISymbol>installCloseHandler</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_installDblClickHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installDblClickHandler" target=_parent class=ISymbol>installDblClickHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_installDrillHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installDrillHandler" target=_parent class=ISymbol>installDrillHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_installDropHandler><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.installDropHandler" target=_parent class=ISymbol>installDropHandler</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_installInsertHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installInsertHandler" target=_parent class=ISymbol>installInsertHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_installListeners><div class=IEntry><a href="javascript:searchResults.Toggle('SR_installListeners')" class=ISymbol>installListeners</a><div class=ISubIndex><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.installListeners" target=_parent class=IParent>mxCellRenderer</a><a href="../files/view/mxGraphView-js.html#mxGraphView.installListeners" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_installMaximizeHandler><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.installMaximizeHandler" target=_parent class=ISymbol>installMaximizeHandler</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_installMinimizeHandler><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.installMinimizeHandler" target=_parent class=ISymbol>installMinimizeHandler</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_installMoveHandler><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.installMoveHandler" target=_parent class=ISymbol>installMoveHandler</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_installOverlayListeners><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.installOverlayListeners" target=_parent class=ISymbol>installOverlayListeners</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_installUndoHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installUndoHandler" target=_parent class=ISymbol>installUndoHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_intersection><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.intersection" target=_parent class=ISymbol>intersection</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_intersects><div class=IEntry><a href="javascript:searchResults.Toggle('SR_intersects')" class=ISymbol>intersects</a><div class=ISubIndex><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.intersects" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxGraph-js.html#mxGraph.intersects" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.intersects" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_invalidate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.invalidate" target=_parent class=ISymbol>invalidate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_invert><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.invert" target=_parent class=ISymbol>invert</a>, <span class=IParent>mxGraphHierarchyEdge</span></div></div><div class=SRResult id=SR_isAddEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isAddEnabled" target=_parent class=ISymbol>isAddEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_isAddPointEvent><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isAddPointEvent" target=_parent class=ISymbol>isAddPointEvent</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_isAllowDanglingEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAllowDanglingEdges" target=_parent class=ISymbol>isAllowDanglingEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isAllowEval><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.isAllowEval" target=_parent class=ISymbol>isAllowEval</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isAllowLoops><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAllowLoops" target=_parent class=ISymbol>isAllowLoops</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isAllowOverlapParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAllowOverlapParent" target=_parent class=ISymbol>isAllowOverlapParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isAltDown><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isAltDown" target=_parent class=ISymbol>isAltDown</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isAncestor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isAncestor')" class=ISymbol>isAncestor</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.isAncestor" target=_parent class=IParent>mxGraphHierarchyNode</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isAncestor" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isAutoAntiAlias><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.isAutoAntiAlias" target=_parent class=ISymbol>isAutoAntiAlias</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_isAutoSizeCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAutoSizeCell" target=_parent class=ISymbol>isAutoSizeCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isAutoSizeCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAutoSizeCells" target=_parent class=ISymbol>isAutoSizeCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isBinary><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.isBinary" target=_parent class=ISymbol>isBinary</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_isBrowserSupported><div class=IEntry><a href="../files/mxClient-js.html#mxClient.isBrowserSupported" target=_parent class=ISymbol>isBrowserSupported</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_isBubbling><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.isBubbling" target=_parent class=ISymbol>isBubbling</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_isBundleSupported><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.isBundleSupported" target=_parent class=ISymbol>isBundleSupported</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_isCellBendable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellBendable" target=_parent class=ISymbol>isCellBendable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellCloneable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellCloneable" target=_parent class=ISymbol>isCellCloneable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellCodec><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isCellCodec')" class=ISymbol>isCellCodec</a><div class=ISubIndex><a href="../files/io/mxCellCodec-js.html#mxCellCodec.isCellCodec" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxCodec-js.html#mxCodec.isCellCodec" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_isCellCollapsed><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellCollapsed" target=_parent class=ISymbol>isCellCollapsed</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellConnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellConnectable" target=_parent class=ISymbol>isCellConnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellDeletable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellDeletable" target=_parent class=ISymbol>isCellDeletable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellDisconnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellDisconnectable" target=_parent class=ISymbol>isCellDisconnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellEditable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellEditable" target=_parent class=ISymbol>isCellEditable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellFoldable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellFoldable" target=_parent class=ISymbol>isCellFoldable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellHorizontal><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isCellHorizontal" target=_parent class=ISymbol>isCellHorizontal</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_isCellIgnored><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isCellIgnored" target=_parent class=ISymbol>isCellIgnored</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_isCellLocked><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellLocked" target=_parent class=ISymbol>isCellLocked</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellMovable" target=_parent class=ISymbol>isCellMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellResizable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellResizable" target=_parent class=ISymbol>isCellResizable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsBendable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsBendable" target=_parent class=ISymbol>isCellsBendable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsCloneable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsCloneable" target=_parent class=ISymbol>isCellsCloneable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsDeletable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsDeletable" target=_parent class=ISymbol>isCellsDeletable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsDisconnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsDisconnectable" target=_parent class=ISymbol>isCellsDisconnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsEditable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsEditable" target=_parent class=ISymbol>isCellsEditable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellSelectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellSelectable" target=_parent class=ISymbol>isCellSelectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellSelected><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellSelected" target=_parent class=ISymbol>isCellSelected</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellShiftable><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isCellShiftable" target=_parent class=ISymbol>isCellShiftable</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_isCellsLocked><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsLocked" target=_parent class=ISymbol>isCellsLocked</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsMovable" target=_parent class=ISymbol>isCellsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsResizable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsResizable" target=_parent class=ISymbol>isCellsResizable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsSelectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsSelectable" target=_parent class=ISymbol>isCellsSelectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellVisible" target=_parent class=ISymbol>isCellVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCloneEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isCloneEnabled" target=_parent class=ISymbol>isCloneEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isCloneEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCloneEvent" target=_parent class=ISymbol>isCloneEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCloneInvalidEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCloneInvalidEdges" target=_parent class=ISymbol>isCloneInvalidEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCollapsed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isCollapsed')" class=ISymbol>isCollapsed</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isCollapsed" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isCollapsed" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isCompressed><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.isCompressed" target=_parent class=ISymbol>isCompressed</a>, <span class=IParent>mxXmlCanvas2D</span></div></div><div class=SRResult id=SR_isConnectable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isConnectable')" class=ISymbol>isConnectable</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isConnectable" target=_parent class=IParent>mxCell</a><a href="../files/view/mxGraph-js.html#mxGraph.isConnectable" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isConnectable" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isConnectableCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isConnectableCell')" class=ISymbol>isConnectableCell</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isConnectableCell" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isConnectableCell" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_isConnectableEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isConnectableEdges" target=_parent class=ISymbol>isConnectableEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isConnecting><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isConnecting" target=_parent class=ISymbol>isConnecting</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isConstrainChild><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isConstrainChild" target=_parent class=ISymbol>isConstrainChild</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isConstrainChildren><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isConstrainChildren" target=_parent class=ISymbol>isConstrainChildren</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isConstrainedEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isConstrainedEvent" target=_parent class=ISymbol>isConstrainedEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isConsumed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isConsumed')" class=ISymbol>isConsumed</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.isConsumed" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventObject-js.html#mxEventObject.isConsumed" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.isConsumed" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_isContainerEvent><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.isContainerEvent" target=_parent class=ISymbol>isContainerEvent</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isControlDown><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isControlDown')" class=ISymbol>isControlDown</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.isControlDown" target=_parent class=IParent>mxEvent</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.isControlDown" target=_parent class=IParent>mxKeyHandler</a></div></div></div><div class=SRResult id=SR_isCreateIds><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isCreateIds" target=_parent class=ISymbol>isCreateIds</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_isCreateTarget><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isCreateTarget" target=_parent class=ISymbol>isCreateTarget</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isDelayedSelection><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isDelayedSelection" target=_parent class=ISymbol>isDelayedSelection</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isDisconnectOnMove><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isDisconnectOnMove" target=_parent class=ISymbol>isDisconnectOnMove</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isDropEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isDropEnabled" target=_parent class=ISymbol>isDropEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isEdge')" class=ISymbol>isEdge</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isEdge" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.isEdge" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.isEdge" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isEdge" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isEdgeIgnored><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.isEdgeIgnored" target=_parent class=ISymbol>isEdgeIgnored</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_isEdgeLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEdgeLabelsMovable" target=_parent class=ISymbol>isEdgeLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEdgeValid><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEdgeValid" target=_parent class=ISymbol>isEdgeValid</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEditing" target=_parent class=ISymbol>isEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEmpty><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isEmpty')" class=ISymbol>isEmpty</a><div class=ISubIndex><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.isEmpty" target=_parent class=IParent>mxCellStatePreview</a><a href="../files/util/mxClipboard-js.html#mxClipboard.isEmpty" target=_parent class=IParent>mxClipboard</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.isEmpty" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.isEmpty" target=_parent class=IParent>mxUndoableEdit</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.isEmpty" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR_isEmptyString><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.isEmptyString" target=_parent class=ISymbol>isEmptyString</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_isEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isEnabled')" class=ISymbol>isEnabled</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.isEnabled" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.isEnabled" target=_parent class=IParent>mxCellMarker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isEnabled" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.isEnabled" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.isEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.isEnabled" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isEnabled" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.isEnabled" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.isEnabled" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxOutline-js.html#mxOutline.isEnabled" target=_parent class=IParent>mxOutline</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.isEnabled" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.isEnabled" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.isEnabled" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isEnabled" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isEnabled" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.isEnabled" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.isEnabled" target=_parent class=IParent>mxUrlConverter</a></div></div></div><div class=SRResult id=SR_isEnabledForEvent><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.isEnabledForEvent" target=_parent class=ISymbol>isEnabledForEvent</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_isEnterStopsCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEnterStopsCellEditing" target=_parent class=ISymbol>isEnterStopsCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEscapeEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEscapeEnabled" target=_parent class=ISymbol>isEscapeEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEventsEnabled><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.isEventsEnabled" target=_parent class=ISymbol>isEventsEnabled</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_isExcluded><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isExcluded')" class=ISymbol>isExcluded</a><div class=ISubIndex><a href="../files/io/mxCellCodec-js.html#mxCellCodec.isExcluded" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.isExcluded" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_isExtendParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isExtendParent" target=_parent class=ISymbol>isExtendParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isExtendParents><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isExtendParents')" class=ISymbol>isExtendParents</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.isExtendParents" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isExtendParents" target=_parent class=IParent>mxSpaceManager</a></div></div></div><div class=SRResult id=SR_isExtendParentsOnAdd><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isExtendParentsOnAdd" target=_parent class=ISymbol>isExtendParentsOnAdd</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isFoEnabled><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.isFoEnabled" target=_parent class=ISymbol>isFoEnabled</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_isForceMarqueeEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isForceMarqueeEvent" target=_parent class=ISymbol>isForceMarqueeEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isGraphEvent><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.isGraphEvent" target=_parent class=ISymbol>isGraphEvent</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_isGridEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isGridEnabled')" class=ISymbol>isGridEnabled</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.isGridEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.isGridEnabled" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_isGridEnabledEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isGridEnabledEvent" target=_parent class=ISymbol>isGridEnabledEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isGuidesEnabled><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.isGuidesEnabled" target=_parent class=ISymbol>isGuidesEnabled</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_isHandleEnabled><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isHandleEnabled" target=_parent class=ISymbol>isHandleEnabled</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_isHandleVisible><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isHandleVisible" target=_parent class=ISymbol>isHandleVisible</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_isHideLabel><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.isHideLabel" target=_parent class=ISymbol>isHideLabel</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_isHideOnHover><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.isHideOnHover" target=_parent class=ISymbol>isHideOnHover</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_isHorizontal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isHorizontal')" class=ISymbol>isHorizontal</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.isHorizontal" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.isHorizontal" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.isHorizontal" target=_parent class=IParent>mxStackLayout</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isHorizontal" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_isHotspotEnabled><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.isHotspotEnabled" target=_parent class=ISymbol>isHotspotEnabled</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_isHtmlLabel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isHtmlLabel" target=_parent class=ISymbol>isHtmlLabel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isHtmlLabels><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isHtmlLabels" target=_parent class=ISymbol>isHtmlLabels</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isImmediateConnectSource><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isImmediateConnectSource" target=_parent class=ISymbol>isImmediateConnectSource</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isInvokesStopCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isInvokesStopCellEditing" target=_parent class=ISymbol>isInvokesStopCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isLabelClipped><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isLabelClipped" target=_parent class=ISymbol>isLabelClipped</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isLabelEvent><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.isLabelEvent" target=_parent class=ISymbol>isLabelEvent</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_isLabelMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isLabelMovable" target=_parent class=ISymbol>isLabelMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isLayer><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isLayer" target=_parent class=ISymbol>isLayer</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_isLeftMouseButton><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isLeftMouseButton" target=_parent class=ISymbol>isLeftMouseButton</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isLoop><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isLoop" target=_parent class=ISymbol>isLoop</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isMenuShowing><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.isMenuShowing" target=_parent class=ISymbol>isMenuShowing</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_isMetaDown><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isMetaDown" target=_parent class=ISymbol>isMetaDown</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isMixedModeHtml><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.isMixedModeHtml" target=_parent class=ISymbol>isMixedModeHtml</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_isModified><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isModified')" class=ISymbol>isModified</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.isModified" target=_parent class=IParent>mxCellEditor</a><a href="../files/editor/mxEditor-js.html#mxEditor.isModified" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_isMoveEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isMoveEnabled" target=_parent class=ISymbol>isMoveEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isMoveIconToFrontForState><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isMoveIconToFrontForState" target=_parent class=ISymbol>isMoveIconToFrontForState</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isMultigraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isMultigraph" target=_parent class=ISymbol>isMultigraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isNode><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.isNode" target=_parent class=ISymbol>isNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_isNumeric><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.isNumeric" target=_parent class=ISymbol>isNumeric</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_isOrthogonal><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isOrthogonal" target=_parent class=ISymbol>isOrthogonal</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isPanningEnabled><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.isPanningEnabled" target=_parent class=ISymbol>isPanningEnabled</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_isPanningTrigger><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.isPanningTrigger" target=_parent class=ISymbol>isPanningTrigger</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_isPopupTrigger><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isPopupTrigger')" class=ISymbol>isPopupTrigger</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.isPopupTrigger" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.isPopupTrigger" target=_parent class=IParent>mxMouseEvent</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.isPopupTrigger" target=_parent class=IParent>mxPopupMenu</a></div></div></div><div class=SRResult id=SR_isPort><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isPort" target=_parent class=ISymbol>isPort</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isPortsEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isPortsEnabled" target=_parent class=ISymbol>isPortsEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isPropertiesVisible><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.isPropertiesVisible" target=_parent class=ISymbol>isPropertiesVisible</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_isReady><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.isReady" target=_parent class=ISymbol>isReady</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_isReference><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isReference')" class=ISymbol>isReference</a><div class=ISubIndex><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec.isReference" target=_parent class=IParent>mxChildChangeCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.isReference" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_isRemoveCellsFromParent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isRemoveCellsFromParent" target=_parent class=ISymbol>isRemoveCellsFromParent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isRemovePointEvent><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isRemovePointEvent" target=_parent class=ISymbol>isRemovePointEvent</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_isRendering><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.isRendering" target=_parent class=ISymbol>isRendering</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isResizable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.isResizable" target=_parent class=ISymbol>isResizable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_isResizeContainer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isResizeContainer" target=_parent class=ISymbol>isResizeContainer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isResizeEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isResizeEnabled" target=_parent class=ISymbol>isResizeEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_isRightMouseButton><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isRightMouseButton" target=_parent class=ISymbol>isRightMouseButton</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isRoot><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isRoot" target=_parent class=ISymbol>isRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_isScrollEvent><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.isScrollEvent" target=_parent class=ISymbol>isScrollEvent</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isSelected><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.isSelected" target=_parent class=ISymbol>isSelected</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_isSelectEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isSelectEnabled" target=_parent class=ISymbol>isSelectEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isSelectionDashed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isSelectionDashed')" class=ISymbol>isSelectionDashed</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isSelectionDashed" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.isSelectionDashed" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_isSelectionEmpty><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSelectionEmpty" target=_parent class=ISymbol>isSelectionEmpty</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isShapeEvent><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.isShapeEvent" target=_parent class=ISymbol>isShapeEvent</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_isShiftDown><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isShiftDown" target=_parent class=ISymbol>isShiftDown</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isShiftDownwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isShiftDownwards" target=_parent class=ISymbol>isShiftDownwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_isShiftRightwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isShiftRightwards" target=_parent class=ISymbol>isShiftRightwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_isSignificant><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.isSignificant" target=_parent class=ISymbol>isSignificant</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_isSingleSelection><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.isSingleSelection" target=_parent class=ISymbol>isSingleSelection</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_isSizerVisible><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.isSizerVisible" target=_parent class=ISymbol>isSizerVisible</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_isSource><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.isSource" target=_parent class=ISymbol>isSource</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_isSplitEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSplitEnabled" target=_parent class=ISymbol>isSplitEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isSplitTarget><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSplitTarget" target=_parent class=ISymbol>isSplitTarget</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isStartEvent><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isStartEvent" target=_parent class=ISymbol>isStartEvent</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isStopEvent><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isStopEvent" target=_parent class=ISymbol>isStopEvent</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isStyleSet><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.isStyleSet" target=_parent class=ISymbol>isStyleSet</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_isSwimlane><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSwimlane" target=_parent class=ISymbol>isSwimlane</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isSwimlaneIgnored><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isSwimlaneIgnored" target=_parent class=ISymbol>isSwimlaneIgnored</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_isSwimlaneNesting><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSwimlaneNesting" target=_parent class=ISymbol>isSwimlaneNesting</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isSwimlaneSelectionEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSwimlaneSelectionEnabled" target=_parent class=ISymbol>isSwimlaneSelectionEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isTerminalPointMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isTerminalPointMovable" target=_parent class=ISymbol>isTerminalPointMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isTextEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isTextEnabled')" class=ISymbol>isTextEnabled</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.isTextEnabled" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.isTextEnabled" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_isToggleEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isToggleEvent" target=_parent class=ISymbol>isToggleEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidAncestor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isValidAncestor" target=_parent class=ISymbol>isValidAncestor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidConnection><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isValidConnection" target=_parent class=ISymbol>isValidConnection</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidDropTarget><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isValidDropTarget" target=_parent class=ISymbol>isValidDropTarget</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidResponse><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.isValidResponse" target=_parent class=ISymbol>isValidResponse</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_isValidRoot><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isValidRoot" target=_parent class=ISymbol>isValidRoot</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidSource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isValidSource')" class=ISymbol>isValidSource</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isValidSource" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.isValidSource" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_isValidState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.isValidState" target=_parent class=ISymbol>isValidState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_isValidTarget><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isValidTarget')" class=ISymbol>isValidTarget</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isValidTarget" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.isValidTarget" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_isVertex><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVertex')" class=ISymbol>isVertex</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isVertex" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.isVertex" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.isVertex" target=_parent class=IParent>mxGraphHierarchyNode</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isVertex" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isVertexIgnored><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVertexIgnored')" class=ISymbol>isVertexIgnored</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.isVertexIgnored" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.isVertexIgnored" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.isVertexIgnored" target=_parent class=IParent>mxGraphLayout</a></div></div></div><div class=SRResult id=SR_isVertexLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isVertexLabelsMovable" target=_parent class=ISymbol>isVertexLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isVertexMovable><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.isVertexMovable" target=_parent class=ISymbol>isVertexMovable</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_isVisible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVisible')" class=ISymbol>isVisible</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isVisible" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isVisible" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxLog-js.html#mxLog.isVisible" target=_parent class=IParent>mxLog</a><a href="../files/util/mxWindow-js.html#mxWindow.isVisible" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_isVml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVml')" class=ISymbol>isVml</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.isVml" target=_parent class=IParent>mxPath</a><a href="../files/util/mxUtils-js.html#mxUtils.isVml" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_isWrapping><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isWrapping" target=_parent class=ISymbol>isWrapping</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsJ.html b/docs/js-api/search/FunctionsJ.html
    new file mode 100644
    index 000000000..502074ad5
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsJ.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_join><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.join" target=_parent class=ISymbol>join</a>, <span class=IParent>mxCompactTreeLayout</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsK.html b/docs/js-api/search/FunctionsK.html
    new file mode 100644
    index 000000000..3f2a9da63
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsK.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_keyDown><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.keyDown" target=_parent class=ISymbol>keyDown</a>, <span class=IParent>mxKeyHandler</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsL.html b/docs/js-api/search/FunctionsL.html
    new file mode 100644
    index 000000000..1dd7bd8ff
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsL.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_labelChanged><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.labelChanged" target=_parent class=ISymbol>labelChanged</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_layeringStage><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.layeringStage" target=_parent class=ISymbol>layeringStage</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_layout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_layout')" class=ISymbol>layout</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.layout" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.layout" target=_parent class=IParent>mxParallelEdgeLayout</a></div></div></div><div class=SRResult id=SR_layoutCells><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.layoutCells" target=_parent class=ISymbol>layoutCells</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_layoutLeaf><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.layoutLeaf" target=_parent class=ISymbol>layoutLeaf</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_leave><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.leave" target=_parent class=ISymbol>leave</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_lineTo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_lineTo')" class=ISymbol>lineTo</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.lineTo" target=_parent class=IParent>mxPath</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.lineTo" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.lineTo" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_link><div class=IEntry><a href="javascript:searchResults.Toggle('SR_link')" class=ISymbol>link</a><div class=ISubIndex><a href="../files/mxClient-js.html#mxClient.link" target=_parent class=IParent>mxClient</a><a href="../files/util/mxUtils-js.html#mxUtils.link" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_linkAction><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.linkAction" target=_parent class=ISymbol>linkAction</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_linkInvoke><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.linkInvoke" target=_parent class=ISymbol>linkInvoke</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_load><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.load" target=_parent class=ISymbol>load</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_loadInto><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.loadInto" target=_parent class=ISymbol>loadInto</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_localEdgeProcessing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_localEdgeProcessing')" class=ISymbol>localEdgeProcessing</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.localEdgeProcessing" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.localEdgeProcessing" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_lookup><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.lookup" target=_parent class=ISymbol>lookup</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_Loop><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.Loop" target=_parent class=ISymbol>Loop</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_ltrim><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.ltrim" target=_parent class=ISymbol>ltrim</a>, <span class=IParent>mxUtils</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsM.html b/docs/js-api/search/FunctionsM.html
    new file mode 100644
    index 000000000..e87f56a87
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_makeDraggable><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.makeDraggable" target=_parent class=ISymbol>makeDraggable</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_map><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary.map" target=_parent class=ISymbol>map</a>, <span class=IParent>mxDictionary</span></div></div><div class=SRResult id=SR_mark><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mark')" class=ISymbol>mark</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.mark" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.mark" target=_parent class=IParent>mxCellMarker</a></div></div></div><div class=SRResult id=SR_markCell><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.markCell" target=_parent class=ISymbol>markCell</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_MedianCellSorter><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.MedianCellSorter" target=_parent class=ISymbol>MedianCellSorter</a>, <span class=IParent>MedianCellSorter</span></div></div><div class=SRResult id=SR_medianPos><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.medianPos" target=_parent class=ISymbol>medianPos</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_medianRank><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.medianRank" target=_parent class=ISymbol>medianRank</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_medianValue><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.medianValue" target=_parent class=ISymbol>medianValue</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_medianXValue><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.medianXValue" target=_parent class=ISymbol>medianXValue</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_merge><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.merge" target=_parent class=ISymbol>merge</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_mergeChildren><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mergeChildren" target=_parent class=ISymbol>mergeChildren</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_minNode><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.minNode" target=_parent class=ISymbol>minNode</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_minPath><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.minPath" target=_parent class=ISymbol>minPath</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_mod><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.mod" target=_parent class=ISymbol>mod</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_mouseDown><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mouseDown')" class=ISymbol>mouseDown</a><div class=ISubIndex><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.mouseDown" target=_parent class=IParent>mxCellTracker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mouseDown" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.mouseDown" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.mouseDown" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.mouseDown" target=_parent class=IParent>mxGraphHandler</a><a href="../files/view/mxOutline-js.html#mxOutline.mouseDown" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mouseDown" target=_parent class=IParent>mxPanningHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.mouseDown" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.mouseDown" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.mouseDown" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.mouseDown" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_mouseMove><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mouseMove')" class=ISymbol>mouseMove</a><div class=ISubIndex><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.mouseMove" target=_parent class=IParent>mxCellTracker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mouseMove" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.mouseMove" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.mouseMove" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.mouseMove" target=_parent class=IParent>mxGraphHandler</a><a href="../files/view/mxOutline-js.html#mxOutline.mouseMove" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mouseMove" target=_parent class=IParent>mxPanningHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.mouseMove" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.mouseMove" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.mouseMove" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.mouseMove" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_mouseUp><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mouseUp')" class=ISymbol>mouseUp</a><div class=ISubIndex><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.mouseUp" target=_parent class=IParent>mxCellTracker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mouseUp" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.mouseUp" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.mouseUp" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.mouseUp" target=_parent class=IParent>mxGraphHandler</a><a href="../files/view/mxOutline-js.html#mxOutline.mouseUp" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mouseUp" target=_parent class=IParent>mxPanningHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.mouseUp" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.mouseUp" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.mouseUp" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.mouseUp" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_move><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.move" target=_parent class=ISymbol>move</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_moveCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_moveCell')" class=ISymbol>moveCell</a><div class=ISubIndex><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.moveCell" target=_parent class=IParent>mxCompositeLayout</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.moveCell" target=_parent class=IParent>mxGraphLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.moveCell" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.moveCell" target=_parent class=IParent>mxStackLayout</a></div></div></div><div class=SRResult id=SR_moveCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_moveCells')" class=ISymbol>moveCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.moveCells" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.moveCells" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_moveLabel><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.moveLabel" target=_parent class=ISymbol>moveLabel</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_moveNode><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.moveNode" target=_parent class=ISymbol>moveNode</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_moveState><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.moveState" target=_parent class=ISymbol>moveState</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_moveTo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_moveTo')" class=ISymbol>moveTo</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.moveTo" target=_parent class=IParent>mxPath</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.moveTo" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.moveTo" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_mxActor><div class=IEntry><a href="../files/shape/mxActor-js.html#mxActor.mxActor" target=_parent class=ISymbol>mxActor</a>, <span class=IParent>mxActor</span></div></div><div class=SRResult id=SR_mxAnimation><div class=IEntry><a href="../files/util/mxAnimation-js.html#mxAnimation.mxAnimation" target=_parent class=ISymbol>mxAnimation</a>, <span class=IParent>mxAnimation</span></div></div><div class=SRResult id=SR_mxArrow><div class=IEntry><a href="../files/shape/mxArrow-js.html#mxArrow.mxArrow" target=_parent class=ISymbol>mxArrow</a>, <span class=IParent>mxArrow</span></div></div><div class=SRResult id=SR_mxAutoSaveManager><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.mxAutoSaveManager" target=_parent class=ISymbol>mxAutoSaveManager</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_mxCell><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.mxCell" target=_parent class=ISymbol>mxCell</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_mxCellAttributeChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxCellAttributeChange.mxCellAttributeChange" target=_parent class=ISymbol>mxCellAttributeChange</a>, <span class=IParent>mxCellAttributeChange</span></div></div><div class=SRResult id=SR_mxCellEditor><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.mxCellEditor" target=_parent class=ISymbol>mxCellEditor</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_mxCellHighlight><div class=IEntry><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.mxCellHighlight" target=_parent class=ISymbol>mxCellHighlight</a>, <span class=IParent>mxCellHighlight</span></div></div><div class=SRResult id=SR_mxCellMarker><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.mxCellMarker" target=_parent class=ISymbol>mxCellMarker</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_mxCellOverlay><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.mxCellOverlay" target=_parent class=ISymbol>mxCellOverlay</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_mxCellRenderer><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.mxCellRenderer" target=_parent class=ISymbol>mxCellRenderer</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_mxCellState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.mxCellState" target=_parent class=ISymbol>mxCellState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_mxCellStatePreview><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.mxCellStatePreview" target=_parent class=ISymbol>mxCellStatePreview</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_mxCellTracker><div class=IEntry><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.mxCellTracker" target=_parent class=ISymbol>mxCellTracker</a>, <span class=IParent>mxCellTracker</span></div></div><div class=SRResult id=SR_mxChildChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxChildChange.mxChildChange" target=_parent class=ISymbol>mxChildChange</a>, <span class=IParent>mxChildChange</span></div></div><div class=SRResult id=SR_mxCircleLayout><div class=IEntry><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.mxCircleLayout" target=_parent class=ISymbol>mxCircleLayout</a>, <span class=IParent>mxCircleLayout</span></div></div><div class=SRResult id=SR_mxCloud><div class=IEntry><a href="../files/shape/mxCloud-js.html#mxCloud.mxCloud" target=_parent class=ISymbol>mxCloud</a>, <span class=IParent>mxCloud</span></div></div><div class=SRResult id=SR_mxCodec><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.mxCodec" target=_parent class=ISymbol>mxCodec</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_mxCollapseChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxCollapseChange.mxCollapseChange" target=_parent class=ISymbol>mxCollapseChange</a>, <span class=IParent>mxCollapseChange</span></div></div><div class=SRResult id=SR_mxCompactTreeLayout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCompactTreeLayout')" class=ISymbol>mxCompactTreeLayout</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.mxCompactTreeLayout" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.mxCompactTreeLayout" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.mxCompactTreeLayout" target=_parent class=IParent>mxParallelEdgeLayout</a></div></div></div><div class=SRResult id=SR_mxCompositeLayout><div class=IEntry><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.mxCompositeLayout" target=_parent class=ISymbol>mxCompositeLayout</a>, <span class=IParent>mxCompositeLayout</span></div></div><div class=SRResult id=SR_mxConnectionConstraint><div class=IEntry><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint.mxConnectionConstraint" target=_parent class=ISymbol>mxConnectionConstraint</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_mxConnectionHandler><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mxConnectionHandler" target=_parent class=ISymbol>mxConnectionHandler</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_mxConnector><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector.mxConnector" target=_parent class=ISymbol>mxConnector</a>, <span class=IParent>mxConnector</span></div></div><div class=SRResult id=SR_mxConstraintHandler><div class=IEntry><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.mxConstraintHandler" target=_parent class=ISymbol>mxConstraintHandler</a>, <span class=IParent>mxConstraintHandler</span></div></div><div class=SRResult id=SR_mxCoordinateAssignment><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.mxCoordinateAssignment" target=_parent class=ISymbol>mxCoordinateAssignment</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_mxCurrentRootChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCurrentRootChange')" class=ISymbol>mxCurrentRootChange</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxCurrentRootChange.mxCurrentRootChange" target=_parent class=IParent>mxCurrentRootChange</a><a href="../files/view/mxGraphSelectionModel-js.html#mxSelectionChange.mxCurrentRootChange" target=_parent class=IParent>mxSelectionChange</a></div></div></div><div class=SRResult id=SR_mxCylinder><div class=IEntry><a href="../files/shape/mxCylinder-js.html#mxCylinder.mxCylinder" target=_parent class=ISymbol>mxCylinder</a>, <span class=IParent>mxCylinder</span></div></div><div class=SRResult id=SR_mxDefaultKeyHandler><div class=IEntry><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.mxDefaultKeyHandler" target=_parent class=ISymbol>mxDefaultKeyHandler</a>, <span class=IParent>mxDefaultKeyHandler</span></div></div><div class=SRResult id=SR_mxDefaultPopupMenu><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.mxDefaultPopupMenu" target=_parent class=ISymbol>mxDefaultPopupMenu</a>, <span class=IParent>mxDefaultPopupMenu</span></div></div><div class=SRResult id=SR_mxDefaultToolbar><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.mxDefaultToolbar" target=_parent class=ISymbol>mxDefaultToolbar</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_mxDivResizer><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.mxDivResizer" target=_parent class=ISymbol>mxDivResizer</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_mxDoubleEllipse><div class=IEntry><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.mxDoubleEllipse" target=_parent class=ISymbol>mxDoubleEllipse</a>, <span class=IParent>mxDoubleEllipse</span></div></div><div class=SRResult id=SR_mxDragSource><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.mxDragSource" target=_parent class=ISymbol>mxDragSource</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_mxEdgeHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxEdgeHandler')" class=ISymbol>mxEdgeHandler</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.mxEdgeHandler" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.mxEdgeHandler" target=_parent class=IParent>mxElbowEdgeHandler</a></div></div></div><div class=SRResult id=SR_mxEdgeLabelLayout><div class=IEntry><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout.mxEdgeLabelLayout" target=_parent class=ISymbol>mxEdgeLabelLayout</a>, <span class=IParent>mxEdgeLabelLayout</span></div></div><div class=SRResult id=SR_mxEditor><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.mxEditor" target=_parent class=ISymbol>mxEditor</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_mxEllipse><div class=IEntry><a href="../files/shape/mxEllipse-js.html#mxEllipse.mxEllipse" target=_parent class=ISymbol>mxEllipse</a>, <span class=IParent>mxEllipse</span></div></div><div class=SRResult id=SR_mxEventObject><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject.mxEventObject" target=_parent class=ISymbol>mxEventObject</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_mxEventSource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxEventSource')" class=ISymbol>mxEventSource</a><div class=ISubIndex><a href="../files/util/mxDictionary-js.html#mxDictionary.mxEventSource" target=_parent class=IParent>mxDictionary</a><a href="../files/util/mxEventSource-js.html#mxEventSource.mxEventSource" target=_parent class=IParent>mxEventSource</a></div></div></div><div class=SRResult id=SR_mxForm><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.mxForm" target=_parent class=ISymbol>mxForm</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_mxGenericChangeCodec><div class=IEntry><a href="../files/io/mxGenericChangeCodec-js.html#mxGenericChangeCodec.mxGenericChangeCodec" target=_parent class=ISymbol>mxGenericChangeCodec</a>, <span class=IParent>mxGenericChangeCodec</span></div></div><div class=SRResult id=SR_mxGeometry><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.mxGeometry" target=_parent class=ISymbol>mxGeometry</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_mxGeometryChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGeometryChange.mxGeometryChange" target=_parent class=ISymbol>mxGeometryChange</a>, <span class=IParent>mxGeometryChange</span></div></div><div class=SRResult id=SR_mxGraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mxGraph" target=_parent class=ISymbol>mxGraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_mxGraphAbstractHierarchyCell><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.mxGraphAbstractHierarchyCell" target=_parent class=ISymbol>mxGraphAbstractHierarchyCell</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_mxGraphHandler><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.mxGraphHandler" target=_parent class=ISymbol>mxGraphHandler</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_mxGraphHierarchyEdge><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.mxGraphHierarchyEdge" target=_parent class=ISymbol>mxGraphHierarchyEdge</a>, <span class=IParent>mxGraphHierarchyEdge</span></div></div><div class=SRResult id=SR_mxGraphHierarchyModel><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.mxGraphHierarchyModel" target=_parent class=ISymbol>mxGraphHierarchyModel</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_mxGraphHierarchyNode><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.mxGraphHierarchyNode" target=_parent class=ISymbol>mxGraphHierarchyNode</a>, <span class=IParent>mxGraphHierarchyNode</span></div></div><div class=SRResult id=SR_mxGraphLayout><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.mxGraphLayout" target=_parent class=ISymbol>mxGraphLayout</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_mxGraphModel><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxGraphModel" target=_parent class=ISymbol>mxGraphModel</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_mxGraphSelectionModel><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.mxGraphSelectionModel" target=_parent class=ISymbol>mxGraphSelectionModel</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_mxGraphView><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.mxGraphView" target=_parent class=ISymbol>mxGraphView</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_mxGuide><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.mxGuide" target=_parent class=ISymbol>mxGuide</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_mxHexagon><div class=IEntry><a href="../files/shape/mxHexagon-js.html#mxHexagon.mxHexagon" target=_parent class=ISymbol>mxHexagon</a>, <span class=IParent>mxHexagon</span></div></div><div class=SRResult id=SR_mxHierarchicalLayout><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.mxHierarchicalLayout" target=_parent class=ISymbol>mxHierarchicalLayout</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_mxHierarchicalLayoutStage><div class=IEntry><a href="../files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html#mxHierarchicalLayoutStage.mxHierarchicalLayoutStage" target=_parent class=ISymbol>mxHierarchicalLayoutStage</a>, <span class=IParent>mxHierarchicalLayoutStage</span></div></div><div class=SRResult id=SR_mxImage><div class=IEntry><a href="../files/util/mxImage-js.html#mxImage.mxImage" target=_parent class=ISymbol>mxImage</a>, <span class=IParent>mxImage</span></div></div><div class=SRResult id=SR_mxImageExport><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.mxImageExport" target=_parent class=ISymbol>mxImageExport</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_mxImageShape><div class=IEntry><a href="../files/shape/mxImageShape-js.html#mxImageShape.mxImageShape" target=_parent class=ISymbol>mxImageShape</a>, <span class=IParent>mxImageShape</span></div></div><div class=SRResult id=SR_mxKeyHandler><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.mxKeyHandler" target=_parent class=ISymbol>mxKeyHandler</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_mxLabel><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel.mxLabel" target=_parent class=ISymbol>mxLabel</a>, <span class=IParent>mxLabel</span></div></div><div class=SRResult id=SR_mxLayoutManager><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.mxLayoutManager" target=_parent class=ISymbol>mxLayoutManager</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_mxLine><div class=IEntry><a href="../files/shape/mxLine-js.html#mxLine.mxLine" target=_parent class=ISymbol>mxLine</a>, <span class=IParent>mxLine</span></div></div><div class=SRResult id=SR_mxMedianHybridCrossingReduction><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.mxMedianHybridCrossingReduction" target=_parent class=ISymbol>mxMedianHybridCrossingReduction</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_mxMinimumCycleRemover><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover.mxMinimumCycleRemover" target=_parent class=ISymbol>mxMinimumCycleRemover</a>, <span class=IParent>mxMinimumCycleRemover</span></div></div><div class=SRResult id=SR_mxMorphing><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.mxMorphing" target=_parent class=ISymbol>mxMorphing</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_mxMouseEvent><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.mxMouseEvent" target=_parent class=ISymbol>mxMouseEvent</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_mxMultiplicity><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.mxMultiplicity" target=_parent class=ISymbol>mxMultiplicity</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_mxObjectCodec><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.mxObjectCodec" target=_parent class=ISymbol>mxObjectCodec</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_mxOutline><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.mxOutline" target=_parent class=ISymbol>mxOutline</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_mxPanningHandler><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mxPanningHandler" target=_parent class=ISymbol>mxPanningHandler</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_mxPartitionLayout><div class=IEntry><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.mxPartitionLayout" target=_parent class=ISymbol>mxPartitionLayout</a>, <span class=IParent>mxPartitionLayout</span></div></div><div class=SRResult id=SR_mxPath><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.mxPath" target=_parent class=ISymbol>mxPath</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_mxPoint><div class=IEntry><a href="../files/util/mxPoint-js.html#mxPoint.mxPoint" target=_parent class=ISymbol>mxPoint</a>, <span class=IParent>mxPoint</span></div></div><div class=SRResult id=SR_mxPolyline><div class=IEntry><a href="../files/shape/mxPolyline-js.html#mxPolyline.mxPolyline" target=_parent class=ISymbol>mxPolyline</a>, <span class=IParent>mxPolyline</span></div></div><div class=SRResult id=SR_mxPopupMenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.mxPopupMenu" target=_parent class=ISymbol>mxPopupMenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_mxPrintPreview><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.mxPrintPreview" target=_parent class=ISymbol>mxPrintPreview</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_mxRectangle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxRectangle')" class=ISymbol>mxRectangle</a><div class=ISubIndex><a href="../files/util/mxRectangle-js.html#mxRectangle.mxRectangle" target=_parent class=IParent>mxRectangle</a><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.mxRectangle" target=_parent class=IParent>mxTemporaryCellStates</a></div></div></div><div class=SRResult id=SR_mxRectangleShape><div class=IEntry><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape.mxRectangleShape" target=_parent class=ISymbol>mxRectangleShape</a>, <span class=IParent>mxRectangleShape</span></div></div><div class=SRResult id=SR_mxRhombus><div class=IEntry><a href="../files/shape/mxRhombus-js.html#mxRhombus.mxRhombus" target=_parent class=ISymbol>mxRhombus</a>, <span class=IParent>mxRhombus</span></div></div><div class=SRResult id=SR_mxRootChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxRootChange.mxRootChange" target=_parent class=ISymbol>mxRootChange</a>, <span class=IParent>mxRootChange</span></div></div><div class=SRResult id=SR_mxRubberband><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.mxRubberband" target=_parent class=ISymbol>mxRubberband</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_mxSession><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.mxSession" target=_parent class=ISymbol>mxSession</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_mxShape><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.mxShape" target=_parent class=ISymbol>mxShape</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_mxSpaceManager><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.mxSpaceManager" target=_parent class=ISymbol>mxSpaceManager</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_mxStackLayout><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.mxStackLayout" target=_parent class=ISymbol>mxStackLayout</a>, <span class=IParent>mxStackLayout</span></div></div><div class=SRResult id=SR_mxStencilShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxStencilShape')" class=ISymbol>mxStencilShape</a><div class=ISubIndex><a href="../files/shape/mxStencil-js.html#mxStencil.mxStencilShape" target=_parent class=IParent>mxStencil</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.mxStencilShape" target=_parent class=IParent>mxStencilShape</a></div></div></div><div class=SRResult id=SR_mxStyleChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxStyleChange.mxStyleChange" target=_parent class=ISymbol>mxStyleChange</a>, <span class=IParent>mxStyleChange</span></div></div><div class=SRResult id=SR_mxStylesheet><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.mxStylesheet" target=_parent class=ISymbol>mxStylesheet</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_mxSvgCanvas2D><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.mxSvgCanvas2D" target=_parent class=ISymbol>mxSvgCanvas2D</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_mxSwimlane><div class=IEntry><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.mxSwimlane" target=_parent class=ISymbol>mxSwimlane</a>, <span class=IParent>mxSwimlane</span></div></div><div class=SRResult id=SR_mxSwimlaneManager><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.mxSwimlaneManager" target=_parent class=ISymbol>mxSwimlaneManager</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_mxTerminalChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxTerminalChange.mxTerminalChange" target=_parent class=ISymbol>mxTerminalChange</a>, <span class=IParent>mxTerminalChange</span></div></div><div class=SRResult id=SR_mxText><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.mxText" target=_parent class=ISymbol>mxText</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_mxToolbar><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.mxToolbar" target=_parent class=ISymbol>mxToolbar</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_mxTooltipHandler><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.mxTooltipHandler" target=_parent class=ISymbol>mxTooltipHandler</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_mxTriangle><div class=IEntry><a href="../files/shape/mxTriangle-js.html#mxTriangle.mxTriangle" target=_parent class=ISymbol>mxTriangle</a>, <span class=IParent>mxTriangle</span></div></div><div class=SRResult id=SR_mxUndoableEdit><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.mxUndoableEdit" target=_parent class=ISymbol>mxUndoableEdit</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_mxUndoManager><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxUndoManager" target=_parent class=ISymbol>mxUndoManager</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_mxValueChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxValueChange.mxValueChange" target=_parent class=ISymbol>mxValueChange</a>, <span class=IParent>mxValueChange</span></div></div><div class=SRResult id=SR_mxVertexHandler><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.mxVertexHandler" target=_parent class=ISymbol>mxVertexHandler</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_mxVisibleChange><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxVisibleChange.mxVisibleChange" target=_parent class=ISymbol>mxVisibleChange</a>, <span class=IParent>mxVisibleChange</span></div></div><div class=SRResult id=SR_mxXmlCanvas2D><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.mxXmlCanvas2D" target=_parent class=ISymbol>mxXmlCanvas2D</a>, <span class=IParent>mxXmlCanvas2D</span></div></div><div class=SRResult id=SR_mxXmlRequest><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.mxXmlRequest" target=_parent class=ISymbol>mxXmlRequest</a>, <span class=IParent>mxXmlRequest</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsN.html b/docs/js-api/search/FunctionsN.html
    new file mode 100644
    index 000000000..9d3617e14
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsN.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_notify><div class=IEntry><a href="javascript:searchResults.Toggle('SR_notify')" class=ISymbol>notify</a><div class=ISubIndex><a href="../files/util/mxSession-js.html#mxSession.notify" target=_parent class=IParent>mxSession</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.notify" target=_parent class=IParent>mxUndoableEdit</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsO.html b/docs/js-api/search/FunctionsO.html
    new file mode 100644
    index 000000000..535a888fc
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsO.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_offset><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.offset" target=_parent class=ISymbol>offset</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_onEncode><div class=IEntry><a href="../files/io/mxRootChangeCodec-js.html#mxRootChangeCodec.onEncode" target=_parent class=ISymbol>onEncode</a>, <span class=IParent>mxRootChangeCodec</span></div></div><div class=SRResult id=SR_onInit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_onInit')" class=ISymbol>onInit</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.onInit" target=_parent class=IParent>mxCell</a><a href="../files/editor/mxEditor-js.html#mxEditor.onInit" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_open><div class=IEntry><a href="javascript:searchResults.Toggle('SR_open')" class=ISymbol>open</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.open" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.open" target=_parent class=IParent>mxPrintPreview</a><a href="../files/util/mxUtils-js.html#mxUtils.open" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_order><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.order" target=_parent class=ISymbol>order</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_orderCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.orderCells" target=_parent class=ISymbol>orderCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_orderEdge><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.orderEdge" target=_parent class=ISymbol>orderEdge</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_OrthConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.OrthConnector" target=_parent class=ISymbol>OrthConnector</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_outline><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.outline" target=_parent class=ISymbol>outline</a>, <span class=IParent>mxOutline</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsP.html b/docs/js-api/search/FunctionsP.html
    new file mode 100644
    index 000000000..e7fb39093
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsP.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_paintMarker><div class=IEntry><a href="../files/shape/mxMarker-js.html#mxMarker.paintMarker" target=_parent class=ISymbol>paintMarker</a>, <span class=IParent>mxMarker</span></div></div><div class=SRResult id=SR_panGraph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_panGraph')" class=ISymbol>panGraph</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.panGraph" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.panGraph" target=_parent class=IParent>mxPanningHandler</a></div></div></div><div class=SRResult id=SR_para><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.para" target=_parent class=ISymbol>para</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_parentForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.parentForCellChanged" target=_parent class=ISymbol>parentForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_parse><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.parse" target=_parent class=ISymbol>parse</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_parseConstraint><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.parseConstraint" target=_parent class=ISymbol>parseConstraint</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_parseConstraints><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.parseConstraints" target=_parent class=ISymbol>parseConstraints</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_parseDescription><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.parseDescription" target=_parent class=ISymbol>parseDescription</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_parseXml><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.parseXml" target=_parent class=ISymbol>parseXml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_paste><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard.paste" target=_parent class=ISymbol>paste</a>, <span class=IParent>mxClipboard</span></div></div><div class=SRResult id=SR_placeLabels><div class=IEntry><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout.placeLabels" target=_parent class=ISymbol>placeLabels</a>, <span class=IParent>mxEdgeLabelLayout</span></div></div><div class=SRResult id=SR_placementStage><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.placementStage" target=_parent class=ISymbol>placementStage</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_poll><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.poll" target=_parent class=ISymbol>poll</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_popup><div class=IEntry><a href="javascript:searchResults.Toggle('SR_popup')" class=ISymbol>popup</a><div class=ISubIndex><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.popup" target=_parent class=IParent>mxPopupMenu</a><a href="../files/util/mxUtils-js.html#mxUtils.popup" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_post><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.post" target=_parent class=ISymbol>post</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_postConfigureShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.postConfigureShape" target=_parent class=ISymbol>postConfigureShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_postDiagram><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.postDiagram" target=_parent class=ISymbol>postDiagram</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_postProcessCellStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.postProcessCellStyle" target=_parent class=ISymbol>postProcessCellStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_print><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.print" target=_parent class=ISymbol>print</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_printScreen><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.printScreen" target=_parent class=ISymbol>printScreen</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_process><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.process" target=_parent class=ISymbol>process</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_processChange><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.processChange" target=_parent class=ISymbol>processChange</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_processDelta><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.processDelta" target=_parent class=ISymbol>processDelta</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_processEdit><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.processEdit" target=_parent class=ISymbol>processEdit</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_processInclude><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.processInclude" target=_parent class=ISymbol>processInclude</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_processReversedEdge><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.processReversedEdge" target=_parent class=ISymbol>processReversedEdge</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_processState><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.processState" target=_parent class=ISymbol>processState</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_prompt><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.prompt" target=_parent class=ISymbol>prompt</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_ptSeqDistSq><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.ptSeqDistSq" target=_parent class=ISymbol>ptSeqDistSq</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_put><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary.put" target=_parent class=ISymbol>put</a>, <span class=IParent>mxDictionary</span></div></div><div class=SRResult id=SR_putCellStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.putCellStyle" target=_parent class=ISymbol>putCellStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.putDefaultEdgeStyle" target=_parent class=ISymbol>putDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.putDefaultVertexStyle" target=_parent class=ISymbol>putDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putImage><div class=IEntry><a href="../files/util/mxImageBundle-js.html#mxImageBundle.putImage" target=_parent class=ISymbol>putImage</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_putObject><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.putObject" target=_parent class=ISymbol>putObject</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_putValue><div class=IEntry><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.putValue" target=_parent class=ISymbol>putValue</a>, <span class=IParent>mxStyleRegistry</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsQ.html b/docs/js-api/search/FunctionsQ.html
    new file mode 100644
    index 000000000..3e82524c7
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsQ.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_quadTo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_quadTo')" class=ISymbol>quadTo</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.quadTo" target=_parent class=IParent>mxPath</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.quadTo" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.quadTo" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsR.html b/docs/js-api/search/FunctionsR.html
    new file mode 100644
    index 000000000..1bd86094f
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsR.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_rankCoordinates><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankCoordinates" target=_parent class=ISymbol>rankCoordinates</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_rankMedianPosition><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankMedianPosition" target=_parent class=ISymbol>rankMedianPosition</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_readGraphModel><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.readGraphModel" target=_parent class=ISymbol>readGraphModel</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_receive><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.receive" target=_parent class=ISymbol>receive</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_reconfigure><div class=IEntry><a href="javascript:searchResults.Toggle('SR_reconfigure')" class=ISymbol>reconfigure</a><div class=ISubIndex><a href="../files/shape/mxArrow-js.html#mxArrow.reconfigure" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.reconfigure" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxLabel-js.html#mxLabel.reconfigure" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxShape-js.html#mxShape.reconfigure" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.reconfigure" target=_parent class=IParent>mxSwimlane</a></div></div></div><div class=SRResult id=SR_rect><div class=IEntry><a href="javascript:searchResults.Toggle('SR_rect')" class=ISymbol>rect</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.rect" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.rect" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_rectangleIntersectsSegment><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.rectangleIntersectsSegment" target=_parent class=ISymbol>rectangleIntersectsSegment</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_RectanglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter.RectanglePerimeter" target=_parent class=ISymbol>RectanglePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_redirectMouseEvents><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.redirectMouseEvents" target=_parent class=ISymbol>redirectMouseEvents</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_redo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redo')" class=ISymbol>redo</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.redo" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.redo" target=_parent class=IParent>mxUndoableEdit</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.redo" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR_redraw><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redraw')" class=ISymbol>redraw</a><div class=ISubIndex><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.redraw" target=_parent class=IParent>mxCellRenderer</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.redraw" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.redraw" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxLabel-js.html#mxLabel.redraw" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxShape-js.html#mxShape.redraw" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.redraw" target=_parent class=IParent>mxStencilShape</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.redraw" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_redrawBackgroundImage><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.redrawBackgroundImage" target=_parent class=ISymbol>redrawBackgroundImage</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_redrawCellOverlays><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.redrawCellOverlays" target=_parent class=ISymbol>redrawCellOverlays</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_redrawControl><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.redrawControl" target=_parent class=ISymbol>redrawControl</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_redrawForeignObject><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.redrawForeignObject" target=_parent class=ISymbol>redrawForeignObject</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_redrawHtml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawHtml')" class=ISymbol>redrawHtml</a><div class=ISubIndex><a href="../files/shape/mxRhombus-js.html#mxRhombus.redrawHtml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.redrawHtml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.redrawHtml" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.redrawHtml" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_redrawHtmlTable><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.redrawHtmlTable" target=_parent class=ISymbol>redrawHtmlTable</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_redrawIcons><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.redrawIcons" target=_parent class=ISymbol>redrawIcons</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_redrawInnerBends><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawInnerBends')" class=ISymbol>redrawInnerBends</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#redrawInnerBends" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.redrawInnerBends" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.redrawInnerBends" target=_parent class=IParent>mxElbowEdgeHandler</a></div></div></div><div class=SRResult id=SR_redrawLabel><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.redrawLabel" target=_parent class=ISymbol>redrawLabel</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_redrawMarker><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector.redrawMarker" target=_parent class=ISymbol>redrawMarker</a>, <span class=IParent>mxConnector</span></div></div><div class=SRResult id=SR_redrawPageBreaks><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.redrawPageBreaks" target=_parent class=ISymbol>redrawPageBreaks</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_redrawPath><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawPath')" class=ISymbol>redrawPath</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.redrawPath" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxArrow-js.html#mxArrow.redrawPath" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxCloud-js.html#mxCloud.redrawPath" target=_parent class=IParent>mxCloud</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.redrawPath" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxHexagon-js.html#mxHexagon.redrawPath" target=_parent class=IParent>mxHexagon</a><a href="../files/shape/mxShape-js.html#mxShape.redrawPath" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxTriangle-js.html#mxTriangle.redrawPath" target=_parent class=IParent>mxTriangle</a></div></div></div><div class=SRResult id=SR_redrawShape><div class=IEntry><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.redrawShape" target=_parent class=ISymbol>redrawShape</a>, <span class=IParent>mxStencilShape</span></div></div><div class=SRResult id=SR_redrawSvg><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawSvg')" class=ISymbol>redrawSvg</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.redrawSvg" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxArrow-js.html#mxArrow.redrawSvg" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxConnector-js.html#mxConnector.redrawSvg" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.redrawSvg" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.redrawSvg" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.redrawSvg" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.redrawSvg" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxLine-js.html#mxLine.redrawSvg" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.redrawSvg" target=_parent class=IParent>mxPolyline</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.redrawSvg" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.redrawSvg" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.redrawSvg" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.redrawSvg" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_redrawSvgTextNodes><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.redrawSvgTextNodes" target=_parent class=ISymbol>redrawSvgTextNodes</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_redrawTextbox><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.redrawTextbox" target=_parent class=ISymbol>redrawTextbox</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_redrawVml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawVml')" class=ISymbol>redrawVml</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.redrawVml" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxConnector-js.html#mxConnector.redrawVml" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.redrawVml" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.redrawVml" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxLine-js.html#mxLine.redrawVml" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.redrawVml" target=_parent class=IParent>mxPolyline</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.redrawVml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.redrawVml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.redrawVml" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.redrawVml" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_reduceTemperature><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.reduceTemperature" target=_parent class=ISymbol>reduceTemperature</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_reference><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.reference" target=_parent class=ISymbol>reference</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_refresh><div class=IEntry><a href="javascript:searchResults.Toggle('SR_refresh')" class=ISymbol>refresh</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#refresh" target=_parent class=IParent>Global</a><a href="../files/view/mxGraph-js.html#mxGraph.refresh" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-js.html#mxGraphView.refresh" target=_parent class=IParent>mxGraphView</a><a href="../files/view/mxOutline-js.html#mxOutline.refresh" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.refresh" target=_parent class=IParent>mxSelectionCellsHandler</a></div></div></div><div class=SRResult id=SR_refreshTasks><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.refreshTasks" target=_parent class=ISymbol>refreshTasks</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_register><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.register" target=_parent class=ISymbol>register</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_registerShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.registerShape" target=_parent class=ISymbol>registerShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_relativeCcw><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.relativeCcw" target=_parent class=ISymbol>relativeCcw</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_release><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.release" target=_parent class=ISymbol>release</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_releaseSvgClip><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.releaseSvgClip" target=_parent class=ISymbol>releaseSvgClip</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_remove><div class=IEntry><a href="javascript:searchResults.Toggle('SR_remove')" class=ISymbol>remove</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.remove" target=_parent class=IParent>mxCell</a><a href="../files/util/mxDictionary-js.html#mxDictionary.remove" target=_parent class=IParent>mxDictionary</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.remove" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-js.html#mxUtils.remove" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_removeAllListeners><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.removeAllListeners" target=_parent class=ISymbol>removeAllListeners</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_removeAllStylenames><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.removeAllStylenames" target=_parent class=ISymbol>removeAllStylenames</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_removeCell><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.removeCell" target=_parent class=ISymbol>removeCell</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_removeCellOverlay><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeCellOverlay" target=_parent class=ISymbol>removeCellOverlay</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeCellOverlays><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeCellOverlays" target=_parent class=ISymbol>removeCellOverlays</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_removeCells')" class=ISymbol>removeCells</a><div class=ISubIndex><a href="../files/util/mxClipboard-js.html#mxClipboard.removeCells" target=_parent class=IParent>mxClipboard</a><a href="../files/view/mxGraph-js.html#mxGraph.removeCells" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.removeCells" target=_parent class=IParent>mxGraphSelectionModel</a></div></div></div><div class=SRResult id=SR_removeCellsFromParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeCellsFromParent" target=_parent class=ISymbol>removeCellsFromParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeCursors><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.removeCursors" target=_parent class=ISymbol>removeCursors</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_removeEdge><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.removeEdge" target=_parent class=ISymbol>removeEdge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeFromParent><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.removeFromParent" target=_parent class=ISymbol>removeFromParent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeFromTerminal><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.removeFromTerminal" target=_parent class=ISymbol>removeFromTerminal</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeImageBundle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeImageBundle" target=_parent class=ISymbol>removeImageBundle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeListener><div class=IEntry><a href="javascript:searchResults.Toggle('SR_removeListener')" class=ISymbol>removeListener</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.removeListener" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventSource-js.html#mxEventSource.removeListener" target=_parent class=IParent>mxEventSource</a></div></div></div><div class=SRResult id=SR_removeMouseListener><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeMouseListener" target=_parent class=ISymbol>removeMouseListener</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removePoint><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.removePoint" target=_parent class=ISymbol>removePoint</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_removeSelectionCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeSelectionCell" target=_parent class=ISymbol>removeSelectionCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeSelectionCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeSelectionCells" target=_parent class=ISymbol>removeSelectionCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeState><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.removeState" target=_parent class=ISymbol>removeState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_removeStateForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeStateForCell" target=_parent class=ISymbol>removeStateForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeStylename><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.removeStylename" target=_parent class=ISymbol>removeStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_removeWhitespace><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.removeWhitespace" target=_parent class=ISymbol>removeWhitespace</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_renderDom><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.renderDom" target=_parent class=ISymbol>renderDom</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_renderPage><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.renderPage" target=_parent class=ISymbol>renderPage</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_repaint><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.repaint" target=_parent class=ISymbol>repaint</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_repaintGraph><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.repaintGraph" target=_parent class=ISymbol>repaintGraph</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_repositionValid><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.repositionValid" target=_parent class=ISymbol>repositionValid</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_reset><div class=IEntry><a href="javascript:searchResults.Toggle('SR_reset')" class=ISymbol>reset</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.reset" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.reset" target=_parent class=IParent>mxCellMarker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.reset" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.reset" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.reset" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.reset" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.reset" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.reset" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.reset" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.reset" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_resetEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetEdge" target=_parent class=ISymbol>resetEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resetEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetEdges" target=_parent class=ISymbol>resetEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resetFirstTime><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.resetFirstTime" target=_parent class=ISymbol>resetFirstTime</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_resetHistory><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.resetHistory" target=_parent class=ISymbol>resetHistory</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_resetMode><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.resetMode" target=_parent class=ISymbol>resetMode</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_resetTimer><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.resetTimer" target=_parent class=ISymbol>resetTimer</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_resize><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.resize" target=_parent class=ISymbol>resize</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_resizeCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_resizeCell')" class=ISymbol>resizeCell</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.resizeCell" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.resizeCell" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_resizeCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resizeCells" target=_parent class=ISymbol>resizeCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resizeHeight><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.resizeHeight" target=_parent class=ISymbol>resizeHeight</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_resizeSwimlane><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.resizeSwimlane" target=_parent class=ISymbol>resizeSwimlane</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_resizeWidth><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.resizeWidth" target=_parent class=ISymbol>resizeWidth</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_resolve><div class=IEntry><a href="../files/model/mxCellPath-js.html#mxCellPath.resolve" target=_parent class=ISymbol>resolve</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_resolveColor><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.resolveColor" target=_parent class=ISymbol>resolveColor</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_restore><div class=IEntry><a href="javascript:searchResults.Toggle('SR_restore')" class=ISymbol>restore</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.restore" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.restore" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_restoreClone><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.restoreClone" target=_parent class=ISymbol>restoreClone</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_resume><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.resume" target=_parent class=ISymbol>resume</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_revalidate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.revalidate" target=_parent class=ISymbol>revalidate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_revalidateState><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.revalidateState" target=_parent class=ISymbol>revalidateState</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_reversePortConstraints><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.reversePortConstraints" target=_parent class=ISymbol>reversePortConstraints</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_RhombusPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter.RhombusPerimeter" target=_parent class=ISymbol>RhombusPerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_rootChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.rootChanged" target=_parent class=ISymbol>rootChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_rotate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_rotate')" class=ISymbol>rotate</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.rotate" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.rotate" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_roundrect><div class=IEntry><a href="javascript:searchResults.Toggle('SR_roundrect')" class=ISymbol>roundrect</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.roundrect" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.roundrect" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_route><div class=IEntry><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.route" target=_parent class=ISymbol>route</a>, <span class=IParent>mxParallelEdgeLayout</span></div></div><div class=SRResult id=SR_rtrim><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.rtrim" target=_parent class=ISymbol>rtrim</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_run><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.run" target=_parent class=ISymbol>run</a>, <span class=IParent>mxHierarchicalLayout</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsS.html b/docs/js-api/search/FunctionsS.html
    new file mode 100644
    index 000000000..cf9e3e558
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsS.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_save><div class=IEntry><a href="javascript:searchResults.Toggle('SR_save')" class=ISymbol>save</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.save" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/editor/mxEditor-js.html#mxEditor.save" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.save" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxUtils-js.html#mxUtils.save" target=_parent class=IParent>mxUtils</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.save" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_saveAs><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.saveAs" target=_parent class=ISymbol>saveAs</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_scale><div class=IEntry><a href="javascript:searchResults.Toggle('SR_scale')" class=ISymbol>scale</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.scale" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.scale" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_scaleAndTranslate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.scaleAndTranslate" target=_parent class=ISymbol>scaleAndTranslate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_scheduleUpdateAspect><div class=IEntry><a href="../files/shape/mxImageShape-js.html#mxImageShape.scheduleUpdateAspect" target=_parent class=ISymbol>scheduleUpdateAspect</a>, <span class=IParent>mxImageShape</span></div></div><div class=SRResult id=SR_scrollCellToVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.scrollCellToVisible" target=_parent class=ISymbol>scrollCellToVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_scrollPointToVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.scrollPointToVisible" target=_parent class=ISymbol>scrollPointToVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_scrollRectToVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.scrollRectToVisible" target=_parent class=ISymbol>scrollRectToVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_SegmentConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.SegmentConnector" target=_parent class=ISymbol>SegmentConnector</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_selectAll><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectAll" target=_parent class=ISymbol>selectAll</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectCell" target=_parent class=ISymbol>selectCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectCellForEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectCellForEvent" target=_parent class=ISymbol>selectCellForEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_selectCells')" class=ISymbol>selectCells</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.selectCells" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.selectCells" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_selectCellsForEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectCellsForEvent" target=_parent class=ISymbol>selectCellsForEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectChildCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectChildCell" target=_parent class=ISymbol>selectChildCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectDelayed><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.selectDelayed" target=_parent class=ISymbol>selectDelayed</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_selectMode><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.selectMode" target=_parent class=ISymbol>selectMode</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_selectNextCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectNextCell" target=_parent class=ISymbol>selectNextCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectParentCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectParentCell" target=_parent class=ISymbol>selectParentCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectPreviousCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectPreviousCell" target=_parent class=ISymbol>selectPreviousCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectRegion><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectRegion" target=_parent class=ISymbol>selectRegion</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectVertices><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectVertices" target=_parent class=ISymbol>selectVertices</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_send><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.send" target=_parent class=ISymbol>send</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_setAbsoluteTerminalPoint><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.setAbsoluteTerminalPoint" target=_parent class=ISymbol>setAbsoluteTerminalPoint</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_setAddEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setAddEnabled" target=_parent class=ISymbol>setAddEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_setAllowDanglingEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setAllowDanglingEdges" target=_parent class=ISymbol>setAllowDanglingEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setAllowEval><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setAllowEval" target=_parent class=ISymbol>setAllowEval</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setAllowLoops><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setAllowLoops" target=_parent class=ISymbol>setAllowLoops</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setAlpha><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setAlpha')" class=ISymbol>setAlpha</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setAlpha" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setAlpha" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setAttribute><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setAttribute')" class=ISymbol>setAttribute</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setAttribute" target=_parent class=IParent>mxCell</a><a href="../files/io/mxCodec-js.html#mxCodec.setAttribute" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_setAutoAntiAlias><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setAutoAntiAlias" target=_parent class=ISymbol>setAutoAntiAlias</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_setAutoSizeCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setAutoSizeCells" target=_parent class=ISymbol>setAutoSizeCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setBackgroundImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setBackgroundImage" target=_parent class=ISymbol>setBackgroundImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setBaseUrl><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.setBaseUrl" target=_parent class=ISymbol>setBaseUrl</a>, <span class=IParent>mxUrlConverter</span></div></div><div class=SRResult id=SR_setBinary><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.setBinary" target=_parent class=ISymbol>setBinary</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_setBorder><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setBorder" target=_parent class=ISymbol>setBorder</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setBubbling><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.setBubbling" target=_parent class=ISymbol>setBubbling</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_setCell><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.setCell" target=_parent class=ISymbol>setCell</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_setCellLocations><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.setCellLocations" target=_parent class=ISymbol>setCellLocations</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_setCells><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.setCells" target=_parent class=ISymbol>setCells</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_setCellsBendable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsBendable" target=_parent class=ISymbol>setCellsBendable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsCloneable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsCloneable" target=_parent class=ISymbol>setCellsCloneable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsDeletable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsDeletable" target=_parent class=ISymbol>setCellsDeletable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsDisconnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsDisconnectable" target=_parent class=ISymbol>setCellsDisconnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsEditable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsEditable" target=_parent class=ISymbol>setCellsEditable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsMovable" target=_parent class=ISymbol>setCellsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsResizable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsResizable" target=_parent class=ISymbol>setCellsResizable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsSelectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsSelectable" target=_parent class=ISymbol>setCellsSelectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellStyle" target=_parent class=ISymbol>setCellStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellStyleFlags><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCellStyleFlags')" class=ISymbol>setCellStyleFlags</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.setCellStyleFlags" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.setCellStyleFlags" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setCellStyles><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCellStyles')" class=ISymbol>setCellStyles</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.setCellStyles" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.setCellStyles" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setCellWarning><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellWarning" target=_parent class=ISymbol>setCellWarning</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCloneEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setCloneEnabled" target=_parent class=ISymbol>setCloneEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_setCloneInvalidEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCloneInvalidEdges" target=_parent class=ISymbol>setCloneInvalidEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setClosable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setClosable" target=_parent class=ISymbol>setClosable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setCollapsed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCollapsed')" class=ISymbol>setCollapsed</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setCollapsed" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setCollapsed" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setCompressed><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setCompressed" target=_parent class=ISymbol>setCompressed</a>, <span class=IParent>mxXmlCanvas2D</span></div></div><div class=SRResult id=SR_setConnectable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setConnectable')" class=ISymbol>setConnectable</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setConnectable" target=_parent class=IParent>mxCell</a><a href="../files/view/mxGraph-js.html#mxGraph.setConnectable" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_setConnectableEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setConnectableEdges" target=_parent class=ISymbol>setConnectableEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setConnectionConstraint><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setConnectionConstraint" target=_parent class=ISymbol>setConnectionConstraint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setConstrainChildren><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setConstrainChildren" target=_parent class=ISymbol>setConstrainChildren</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCreateIds><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setCreateIds" target=_parent class=ISymbol>setCreateIds</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setCreateTarget><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.setCreateTarget" target=_parent class=ISymbol>setCreateTarget</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_setCurrentRoot><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setCurrentRoot" target=_parent class=ISymbol>setCurrentRoot</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setCursor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCursor')" class=ISymbol>setCursor</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.setCursor" target=_parent class=IParent>mxCellState</a><a href="../files/shape/mxShape-js.html#mxShape.setCursor" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_setDashed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setDashed')" class=ISymbol>setDashed</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setDashed" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setDashed" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setDashPattern><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setDashPattern')" class=ISymbol>setDashPattern</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setDashPattern" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setDashPattern" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setDefaultParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setDefaultParent" target=_parent class=ISymbol>setDefaultParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setDisconnectOnMove><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setDisconnectOnMove" target=_parent class=ISymbol>setDisconnectOnMove</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setDropEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setDropEnabled" target=_parent class=ISymbol>setDropEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setEdge><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.setEdge" target=_parent class=ISymbol>setEdge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setEdgePoints><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.setEdgePoints" target=_parent class=ISymbol>setEdgePoints</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_setEdgePosition><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.setEdgePosition" target=_parent class=ISymbol>setEdgePosition</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_setEdgeStyleEnabled><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.setEdgeStyleEnabled" target=_parent class=ISymbol>setEdgeStyleEnabled</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_setEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setEnabled')" class=ISymbol>setEnabled</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.setEnabled" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.setEnabled" target=_parent class=IParent>mxCellMarker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.setEnabled" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.setEnabled" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.setEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.setEnabled" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setEnabled" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.setEnabled" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.setEnabled" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxOutline-js.html#mxOutline.setEnabled" target=_parent class=IParent>mxOutline</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.setEnabled" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.setEnabled" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.setEnabled" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.setEnabled" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setEnabled" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.setEnabled" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.setEnabled" target=_parent class=IParent>mxUrlConverter</a></div></div></div><div class=SRResult id=SR_setEnterStopsCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setEnterStopsCellEditing" target=_parent class=ISymbol>setEnterStopsCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setEscapeEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setEscapeEnabled" target=_parent class=ISymbol>setEscapeEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setEventsEnabled><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.setEventsEnabled" target=_parent class=ISymbol>setEventsEnabled</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_setEventSource><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.setEventSource" target=_parent class=ISymbol>setEventSource</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_setExtendParents><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setExtendParents" target=_parent class=ISymbol>setExtendParents</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setExtendParentsOnAdd><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setExtendParentsOnAdd" target=_parent class=ISymbol>setExtendParentsOnAdd</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setFillColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFillColor')" class=ISymbol>setFillColor</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFillColor" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFillColor" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setFoEnabled><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFoEnabled" target=_parent class=ISymbol>setFoEnabled</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_setFontColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFontColor')" class=ISymbol>setFontColor</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFontColor" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFontColor" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setFontFamily><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFontFamily')" class=ISymbol>setFontFamily</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFontFamily" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFontFamily" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setFontSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFontSize')" class=ISymbol>setFontSize</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFontSize" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFontSize" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setFontStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFontStyle')" class=ISymbol>setFontStyle</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFontStyle" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFontStyle" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setGeneralPurposeVariable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGeneralPurposeVariable')" class=ISymbol>setGeneralPurposeVariable</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.setGeneralPurposeVariable" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.setGeneralPurposeVariable" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.setGeneralPurposeVariable" target=_parent class=IParent>mxGraphHierarchyNode</a></div></div></div><div class=SRResult id=SR_setGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGeometry')" class=ISymbol>setGeometry</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setGeometry" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setGeometry" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setGlassGradient><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGlassGradient')" class=ISymbol>setGlassGradient</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setGlassGradient" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setGlassGradient" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setGradient><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGradient')" class=ISymbol>setGradient</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setGradient" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setGradient" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setGraph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGraph')" class=ISymbol>setGraph</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.setGraph" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.setGraph" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.setGraph" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setGraph" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_setGraphBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setGraphBounds" target=_parent class=ISymbol>setGraphBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setGraphContainer><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setGraphContainer" target=_parent class=ISymbol>setGraphContainer</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setGridEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGridEnabled')" class=ISymbol>setGridEnabled</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.setGridEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.setGridEnabled" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_setGridSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setGridSize" target=_parent class=ISymbol>setGridSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setGuidesEnabled><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.setGuidesEnabled" target=_parent class=ISymbol>setGuidesEnabled</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_setHideOnHover><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.setHideOnHover" target=_parent class=ISymbol>setHideOnHover</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_setHighlightColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setHighlightColor')" class=ISymbol>setHighlightColor</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.setHighlightColor" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setHighlightColor" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_setHorizontal><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setHorizontal" target=_parent class=ISymbol>setHorizontal</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_setHotspot><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.setHotspot" target=_parent class=ISymbol>setHotspot</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_setHotspotEnabled><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.setHotspotEnabled" target=_parent class=ISymbol>setHotspotEnabled</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_setHtmlLabels><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setHtmlLabels" target=_parent class=ISymbol>setHtmlLabels</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setId><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.setId" target=_parent class=ISymbol>setId</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setImage" target=_parent class=ISymbol>setImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setInvokesStopCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setInvokesStopCellEditing" target=_parent class=ISymbol>setInvokesStopCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setLineCap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setLineCap')" class=ISymbol>setLineCap</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setLineCap" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setLineCap" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setLineJoin><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setLineJoin')" class=ISymbol>setLineJoin</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setLineJoin" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setLineJoin" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setLocation><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setLocation" target=_parent class=ISymbol>setLocation</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setLocked><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setLocked" target=_parent class=ISymbol>setLocked</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setMaximizable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setMaximizable" target=_parent class=ISymbol>setMaximizable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setMinimizable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setMinimizable" target=_parent class=ISymbol>setMinimizable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setMiterLimit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setMiterLimit')" class=ISymbol>setMiterLimit</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setMiterLimit" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setMiterLimit" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setMode><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setMode" target=_parent class=ISymbol>setMode</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setModified><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setModified')" class=ISymbol>setModified</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.setModified" target=_parent class=IParent>mxCellEditor</a><a href="../files/editor/mxEditor-js.html#mxEditor.setModified" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_setMoveEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setMoveEnabled" target=_parent class=ISymbol>setMoveEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_setMultigraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setMultigraph" target=_parent class=ISymbol>setMultigraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setOpacity><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.setOpacity" target=_parent class=ISymbol>setOpacity</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setOrthogonalEdge><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.setOrthogonalEdge" target=_parent class=ISymbol>setOrthogonalEdge</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_setPanning><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setPanning" target=_parent class=ISymbol>setPanning</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setPanningEnabled><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.setPanningEnabled" target=_parent class=ISymbol>setPanningEnabled</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_setParent><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.setParent" target=_parent class=ISymbol>setParent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setPortsEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setPortsEnabled" target=_parent class=ISymbol>setPortsEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setPreviewColor><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.setPreviewColor" target=_parent class=ISymbol>setPreviewColor</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_setRect><div class=IEntry><a href="../files/util/mxRectangle-js.html#mxRectangle.setRect" target=_parent class=ISymbol>setRect</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_setRemoveCellsFromParent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setRemoveCellsFromParent" target=_parent class=ISymbol>setRemoveCellsFromParent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_setRendering><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setRendering" target=_parent class=ISymbol>setRendering</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setRequestHeaders><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.setRequestHeaders" target=_parent class=ISymbol>setRequestHeaders</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_setResizable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setResizable" target=_parent class=ISymbol>setResizable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setResizeContainer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setResizeContainer" target=_parent class=ISymbol>setResizeContainer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setResizeEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setResizeEnabled" target=_parent class=ISymbol>setResizeEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_setRoot><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setRoot" target=_parent class=ISymbol>setRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setScale><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setScale" target=_parent class=ISymbol>setScale</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setScrollable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setScrollable" target=_parent class=ISymbol>setScrollable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setSelectEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setSelectEnabled" target=_parent class=ISymbol>setSelectEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_setSelectionCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSelectionCell" target=_parent class=ISymbol>setSelectionCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setSelectionCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSelectionCells" target=_parent class=ISymbol>setSelectionCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setSelectionModel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSelectionModel" target=_parent class=ISymbol>setSelectionModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setShiftDownwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.setShiftDownwards" target=_parent class=ISymbol>setShiftDownwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_setShiftRightwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.setShiftRightwards" target=_parent class=ISymbol>setShiftRightwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_setSingleSelection><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.setSingleSelection" target=_parent class=ISymbol>setSingleSelection</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_setSize><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setSize" target=_parent class=ISymbol>setSize</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setSplitEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSplitEnabled" target=_parent class=ISymbol>setSplitEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setStates><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStates')" class=ISymbol>setStates</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView.setStates" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxGuide-js.html#mxGuide.setStates" target=_parent class=IParent>mxGuide</a></div></div></div><div class=SRResult id=SR_setStatus><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setStatus" target=_parent class=ISymbol>setStatus</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setStatusContainer><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setStatusContainer" target=_parent class=ISymbol>setStatusContainer</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setStrokeColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStrokeColor')" class=ISymbol>setStrokeColor</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setStrokeColor" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setStrokeColor" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setStrokeWidth><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStrokeWidth')" class=ISymbol>setStrokeWidth</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setStrokeWidth" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setStrokeWidth" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStyle')" class=ISymbol>setStyle</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setStyle" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setStyle" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-js.html#mxUtils.setStyle" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setStyleFlag><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.setStyleFlag" target=_parent class=ISymbol>setStyleFlag</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setStylesheet><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setStylesheet" target=_parent class=ISymbol>setStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setSwimlaneNesting><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSwimlaneNesting" target=_parent class=ISymbol>setSwimlaneNesting</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setSwimlaneSelectionEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSwimlaneSelectionEnabled" target=_parent class=ISymbol>setSwimlaneSelectionEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setTerminal')" class=ISymbol>setTerminal</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setTerminal" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setTerminal" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setTerminalPoint><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.setTerminalPoint" target=_parent class=ISymbol>setTerminalPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_setTerminals><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setTerminals" target=_parent class=ISymbol>setTerminals</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setTextEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setTextEnabled')" class=ISymbol>setTextEnabled</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setTextEnabled" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setTextEnabled" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setTitle><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setTitle" target=_parent class=ISymbol>setTitle</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setTitleContainer><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setTitleContainer" target=_parent class=ISymbol>setTitleContainer</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setTolerance><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setTolerance" target=_parent class=ISymbol>setTolerance</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setToolbarContainer><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setToolbarContainer" target=_parent class=ISymbol>setToolbarContainer</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setTooltips><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setTooltips" target=_parent class=ISymbol>setTooltips</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setTranslate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setTranslate')" class=ISymbol>setTranslate</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView.setTranslate" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxPath-js.html#mxPath.setTranslate" target=_parent class=IParent>mxPath</a></div></div></div><div class=SRResult id=SR_setValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setValue')" class=ISymbol>setValue</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setValue" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setValue" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setVertex><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.setVertex" target=_parent class=ISymbol>setVertex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setVertexLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setVertexLabelsMovable" target=_parent class=ISymbol>setVertexLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setVertexLocation><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setVertexLocation')" class=ISymbol>setVertexLocation</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.setVertexLocation" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.setVertexLocation" target=_parent class=IParent>mxGraphLayout</a></div></div></div><div class=SRResult id=SR_setVisible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setVisible')" class=ISymbol>setVisible</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setVisible" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setVisible" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxLog-js.html#mxLog.setVisible" target=_parent class=IParent>mxLog</a><a href="../files/util/mxWindow-js.html#mxWindow.setVisible" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_setVisibleTerminalState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.setVisibleTerminalState" target=_parent class=ISymbol>setVisibleTerminalState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_setX><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.setX" target=_parent class=ISymbol>setX</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_setY><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.setY" target=_parent class=ISymbol>setY</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_setZoomEnabled><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.setZoomEnabled" target=_parent class=ISymbol>setZoomEnabled</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_shadow><div class=IEntry><a href="javascript:searchResults.Toggle('SR_shadow')" class=ISymbol>shadow</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.shadow" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.shadow" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_shiftCell><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.shiftCell" target=_parent class=ISymbol>shiftCell</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_shouldRemoveCellsFromParent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.shouldRemoveCellsFromParent" target=_parent class=ISymbol>shouldRemoveCellsFromParent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_show><div class=IEntry><a href="javascript:searchResults.Toggle('SR_show')" class=ISymbol>show</a><div class=ISubIndex><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.show" target=_parent class=IParent>mxCellStatePreview</a><a href="../files/util/mxLog-js.html#mxLog.show" target=_parent class=IParent>mxLog</a><a href="../files/util/mxMorphing-js.html#mxMorphing.show" target=_parent class=IParent>mxMorphing</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.show" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxUtils-js.html#mxUtils.show" target=_parent class=IParent>mxUtils</a><a href="../files/util/mxWindow-js.html#mxWindow.show" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_showHelp><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.showHelp" target=_parent class=ISymbol>showHelp</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_showMenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.showMenu" target=_parent class=ISymbol>showMenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_showOutline><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.showOutline" target=_parent class=ISymbol>showOutline</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_showProperties><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.showProperties" target=_parent class=ISymbol>showProperties</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_showSubmenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.showSubmenu" target=_parent class=ISymbol>showSubmenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_showTasks><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.showTasks" target=_parent class=ISymbol>showTasks</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_SideToSide><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.SideToSide" target=_parent class=ISymbol>SideToSide</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_simulate><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.simulate" target=_parent class=ISymbol>simulate</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_sizeDidChange><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.sizeDidChange" target=_parent class=ISymbol>sizeDidChange</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_snap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_snap')" class=ISymbol>snap</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.snap" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.snap" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_sortCells><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.sortCells" target=_parent class=ISymbol>sortCells</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_source><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.source" target=_parent class=ISymbol>source</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_splitEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.splitEdge" target=_parent class=ISymbol>splitEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_start><div class=IEntry><a href="javascript:searchResults.Toggle('SR_start')" class=ISymbol>start</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.start" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.start" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.start" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.start" target=_parent class=IParent>mxRubberband</a><a href="../files/util/mxSession-js.html#mxSession.start" target=_parent class=IParent>mxSession</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.start" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_startAnimation><div class=IEntry><a href="../files/util/mxAnimation-js.html#mxAnimation.startAnimation" target=_parent class=ISymbol>startAnimation</a>, <span class=IParent>mxAnimation</span></div></div><div class=SRResult id=SR_startDrag><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.startDrag" target=_parent class=ISymbol>startDrag</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_startEditing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_startEditing')" class=ISymbol>startEditing</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.startEditing" target=_parent class=IParent>mxCellEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.startEditing" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_startEditingAtCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.startEditingAtCell" target=_parent class=ISymbol>startEditingAtCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_stop><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.stop" target=_parent class=ISymbol>stop</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_stopAnimation><div class=IEntry><a href="../files/util/mxAnimation-js.html#mxAnimation.stopAnimation" target=_parent class=ISymbol>stopAnimation</a>, <span class=IParent>mxAnimation</span></div></div><div class=SRResult id=SR_stopDrag><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.stopDrag" target=_parent class=ISymbol>stopDrag</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_stopEditing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_stopEditing')" class=ISymbol>stopEditing</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.stopEditing" target=_parent class=IParent>mxCellEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.stopEditing" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_stopRecursion><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.stopRecursion" target=_parent class=ISymbol>stopRecursion</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_stroke><div class=IEntry><a href="javascript:searchResults.Toggle('SR_stroke')" class=ISymbol>stroke</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.stroke" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.stroke" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_styleForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.styleForCellChanged" target=_parent class=ISymbol>styleForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_styles><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.styles" target=_parent class=ISymbol>styles</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_submit><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.submit" target=_parent class=ISymbol>submit</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_suspend><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.suspend" target=_parent class=ISymbol>suspend</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_swap><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.swap" target=_parent class=ISymbol>swap</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_swapBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.swapBounds" target=_parent class=ISymbol>swapBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_swapStyles><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.swapStyles" target=_parent class=ISymbol>swapStyles</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_swimlaneAdded><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.swimlaneAdded" target=_parent class=ISymbol>swimlaneAdded</a>, <span class=IParent>mxSwimlaneManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsT.html b/docs/js-api/search/FunctionsT.html
    new file mode 100644
    index 000000000..d940b0824
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsT.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tapAndHold><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHold" target=_parent class=ISymbol>tapAndHold</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_terminalForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.terminalForCellChanged" target=_parent class=ISymbol>terminalForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_text><div class=IEntry><a href="javascript:searchResults.Toggle('SR_text')" class=ISymbol>text</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.text" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.text" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_toggleCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.toggleCells" target=_parent class=ISymbol>toggleCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_toggleCellStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.toggleCellStyle" target=_parent class=ISymbol>toggleCellStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_toggleCellStyleFlags><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.toggleCellStyleFlags" target=_parent class=ISymbol>toggleCellStyleFlags</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_toggleCellStyles><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.toggleCellStyles" target=_parent class=ISymbol>toggleCellStyles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_TopToBottom><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.TopToBottom" target=_parent class=ISymbol>TopToBottom</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_toRadians><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.toRadians" target=_parent class=ISymbol>toRadians</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_toString><div class=IEntry><a href="javascript:searchResults.Toggle('SR_toString')" class=ISymbol>toString</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.toString" target=_parent class=IParent>mxCellOverlay</a><a href="../files/util/mxUtils-js.html#mxUtils.toString" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_transformControlPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.transformControlPoint" target=_parent class=ISymbol>transformControlPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_translate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_translate')" class=ISymbol>translate</a><div class=ISubIndex><a href="../files/model/mxGeometry-js.html#mxGeometry.translate" target=_parent class=IParent>mxGeometry</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.translate" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.translate" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_translateCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.translateCell" target=_parent class=ISymbol>translateCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_translateState><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.translateState" target=_parent class=ISymbol>translateState</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_transpose><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.transpose" target=_parent class=ISymbol>transpose</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_traverse><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.traverse" target=_parent class=ISymbol>traverse</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_treeLayout><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.treeLayout" target=_parent class=ISymbol>treeLayout</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_TrianglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter.TrianglePerimeter" target=_parent class=ISymbol>TrianglePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_trim><div class=IEntry><a href="javascript:searchResults.Toggle('SR_trim')" class=ISymbol>trim</a><div class=ISubIndex><a href="../files/util/mxUndoManager-js.html#mxUndoManager.trim" target=_parent class=IParent>mxUndoManager</a><a href="../files/util/mxUtils-js.html#mxUtils.trim" target=_parent class=IParent>mxUtils</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsU.html b/docs/js-api/search/FunctionsU.html
    new file mode 100644
    index 000000000..b7203a443
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsU.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_undo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_undo')" class=ISymbol>undo</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.undo" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.undo" target=_parent class=IParent>mxUndoableEdit</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.undo" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR_undoableEditHappened><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.undoableEditHappened" target=_parent class=ISymbol>undoableEditHappened</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_ungroupCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.ungroupCells" target=_parent class=ISymbol>ungroupCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_union><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.union" target=_parent class=ISymbol>union</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_unmark><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.unmark" target=_parent class=ISymbol>unmark</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_update><div class=IEntry><a href="javascript:searchResults.Toggle('SR_update')" class=ISymbol>update</a><div class=ISubIndex><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.update" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/view/mxOutline-js.html#mxOutline.update" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.update" target=_parent class=IParent>mxRubberband</a></div></div></div><div class=SRResult id=SR_updateAlternateBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.updateAlternateBounds" target=_parent class=ISymbol>updateAlternateBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_updateAnimation><div class=IEntry><a href="javascript:searchResults.Toggle('SR_updateAnimation')" class=ISymbol>updateAnimation</a><div class=ISubIndex><a href="../files/util/mxAnimation-js.html#mxAnimation.updateAnimation" target=_parent class=IParent>mxAnimation</a><a href="../files/util/mxMorphing-js.html#mxMorphing.updateAnimation" target=_parent class=IParent>mxMorphing</a></div></div></div><div class=SRResult id=SR_updateAspect><div class=IEntry><a href="../files/shape/mxImageShape-js.html#mxImageShape.updateAspect" target=_parent class=ISymbol>updateAspect</a>, <span class=IParent>mxImageShape</span></div></div><div class=SRResult id=SR_updateCellSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.updateCellSize" target=_parent class=ISymbol>updateCellSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_updateCurrentState><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.updateCurrentState" target=_parent class=ISymbol>updateCurrentState</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_updateEdgeBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateEdgeBounds" target=_parent class=ISymbol>updateEdgeBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateEdgeLabelOffset><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateEdgeLabelOffset" target=_parent class=ISymbol>updateEdgeLabelOffset</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateEdgeParent><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.updateEdgeParent" target=_parent class=ISymbol>updateEdgeParent</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateEdgeParents><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.updateEdgeParents" target=_parent class=ISymbol>updateEdgeParents</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateFixedTerminalPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateFixedTerminalPoint" target=_parent class=ISymbol>updateFixedTerminalPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFixedTerminalPoints><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateFixedTerminalPoints" target=_parent class=ISymbol>updateFixedTerminalPoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFloatingTerminalPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateFloatingTerminalPoint" target=_parent class=ISymbol>updateFloatingTerminalPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFloatingTerminalPoints><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateFloatingTerminalPoints" target=_parent class=ISymbol>updateFloatingTerminalPoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateGroupBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.updateGroupBounds" target=_parent class=ISymbol>updateGroupBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_updateHtmlShape><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateHtmlShape" target=_parent class=ISymbol>updateHtmlShape</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateIcons><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.updateIcons" target=_parent class=ISymbol>updateIcons</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_updateMouseEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.updateMouseEvent" target=_parent class=ISymbol>updateMouseEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_updatePoints><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updatePoints" target=_parent class=ISymbol>updatePoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updatePreviewShape><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.updatePreviewShape" target=_parent class=ISymbol>updatePreviewShape</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_updatePreviewState><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.updatePreviewState" target=_parent class=ISymbol>updatePreviewState</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_updateSvgBounds><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgBounds" target=_parent class=ISymbol>updateSvgBounds</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgGlassPane><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgGlassPane" target=_parent class=ISymbol>updateSvgGlassPane</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgNode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_updateSvgNode')" class=ISymbol>updateSvgNode</a><div class=ISubIndex><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.updateSvgNode" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.updateSvgNode" target=_parent class=IParent>mxEllipse</a></div></div></div><div class=SRResult id=SR_updateSvgPath><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgPath" target=_parent class=ISymbol>updateSvgPath</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgScale><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgScale" target=_parent class=ISymbol>updateSvgScale</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgShape><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgShape" target=_parent class=ISymbol>updateSvgShape</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgTransform><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgTransform" target=_parent class=ISymbol>updateSvgTransform</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateTableStyle><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.updateTableStyle" target=_parent class=ISymbol>updateTableStyle</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_updateTableWidth><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.updateTableWidth" target=_parent class=ISymbol>updateTableWidth</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_updateVertexLabelOffset><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateVertexLabelOffset" target=_parent class=ISymbol>updateVertexLabelOffset</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateVmlDashStyle><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlDashStyle" target=_parent class=ISymbol>updateVmlDashStyle</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlFill><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlFill" target=_parent class=ISymbol>updateVmlFill</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlGlassPane><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlGlassPane" target=_parent class=ISymbol>updateVmlGlassPane</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlMarkerOpacity><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector.updateVmlMarkerOpacity" target=_parent class=ISymbol>updateVmlMarkerOpacity</a>, <span class=IParent>mxConnector</span></div></div><div class=SRResult id=SR_updateVmlShape><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlShape" target=_parent class=ISymbol>updateVmlShape</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlStrokeColor><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlStrokeColor" target=_parent class=ISymbol>updateVmlStrokeColor</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlStrokeNode><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlStrokeNode" target=_parent class=ISymbol>updateVmlStrokeNode</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updatingDocumentResource><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updatingDocumentResource" target=_parent class=ISymbol>updatingDocumentResource</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_useGuidesForEvent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.useGuidesForEvent" target=_parent class=ISymbol>useGuidesForEvent</a>, <span class=IParent>mxGraphHandler</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsV.html b/docs/js-api/search/FunctionsV.html
    new file mode 100644
    index 000000000..e784f749a
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsV.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_validate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.validate" target=_parent class=ISymbol>validate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validateBackground><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.validateBackground" target=_parent class=ISymbol>validateBackground</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validateBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.validateBounds" target=_parent class=ISymbol>validateBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validateCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.validateCell" target=_parent class=ISymbol>validateCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_validateConnection><div class=IEntry><a href="javascript:searchResults.Toggle('SR_validateConnection')" class=ISymbol>validateConnection</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.validateConnection" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.validateConnection" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_validateEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.validateEdge" target=_parent class=ISymbol>validateEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_validateGraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.validateGraph" target=_parent class=ISymbol>validateGraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_validatePoints><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.validatePoints" target=_parent class=ISymbol>validatePoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validationAlert><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.validationAlert" target=_parent class=ISymbol>validationAlert</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_valueChanged><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.valueChanged" target=_parent class=ISymbol>valueChanged</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_valueForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.valueForCellChanged" target=_parent class=ISymbol>valueForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_verticalLayout><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.verticalLayout" target=_parent class=ISymbol>verticalLayout</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_visibleStateForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.visibleStateForCellChanged" target=_parent class=ISymbol>visibleStateForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_visit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_visit')" class=ISymbol>visit</a><div class=ISubIndex><a href="../files/util/mxDictionary-js.html#mxDictionary.visit" target=_parent class=IParent>mxDictionary</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.visit" target=_parent class=IParent>mxGraphHierarchyModel</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsW.html b/docs/js-api/search/FunctionsW.html
    new file mode 100644
    index 000000000..f9fb859d2
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsW.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_WeightedCellSorter><div class=IEntry><a href="javascript:searchResults.Toggle('SR_WeightedCellSorter')" class=ISymbol>WeightedCellSorter</a>, <span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.WeightedCellSorter" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.WeightedCellSorter" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div><div class=SRResult id=SR_weightedMedian><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.weightedMedian" target=_parent class=ISymbol>weightedMedian</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_write><div class=IEntry><a href="javascript:searchResults.Toggle('SR_write')" class=ISymbol>write</a><div class=ISubIndex><a href="../files/util/mxLog-js.html#mxLog.write" target=_parent class=IParent>mxLog</a><a href="../files/util/mxPath-js.html#mxPath.write" target=_parent class=IParent>mxPath</a><a href="../files/util/mxUtils-js.html#mxUtils.write" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_writeAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.writeAttribute" target=_parent class=ISymbol>writeAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_writeComplexAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.writeComplexAttribute" target=_parent class=ISymbol>writeComplexAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_writeGraphModel><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.writeGraphModel" target=_parent class=ISymbol>writeGraphModel</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_writeHead><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.writeHead" target=_parent class=ISymbol>writeHead</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_writeln><div class=IEntry><a href="javascript:searchResults.Toggle('SR_writeln')" class=ISymbol>writeln</a><div class=ISubIndex><a href="../files/util/mxLog-js.html#mxLog.writeln" target=_parent class=IParent>mxLog</a><a href="../files/util/mxUtils-js.html#mxUtils.writeln" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_writePrimitiveAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.writePrimitiveAttribute" target=_parent class=ISymbol>writePrimitiveAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/FunctionsZ.html b/docs/js-api/search/FunctionsZ.html
    new file mode 100644
    index 000000000..7ce36c927
    --- /dev/null
    +++ b/docs/js-api/search/FunctionsZ.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_zoom><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoom" target=_parent class=ISymbol>zoom</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_zoomActual><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoomActual" target=_parent class=ISymbol>zoomActual</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_zoomIn><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoomIn" target=_parent class=ISymbol>zoomIn</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_zoomOut><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoomOut" target=_parent class=ISymbol>zoomOut</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralA.html b/docs/js-api/search/GeneralA.html
    new file mode 100644
    index 000000000..a96266696
    --- /dev/null
    +++ b/docs/js-api/search/GeneralA.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_absoluteOffset><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.absoluteOffset" target=_parent class=ISymbol>absoluteOffset</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_absolutePoints><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.absolutePoints" target=_parent class=ISymbol>absolutePoints</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_actions><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.actions" target=_parent class=ISymbol>actions</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_Actions_spcand_spcOptions><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.Actions_and_Options" target=_parent class=ISymbol>Actions and Options</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_activate><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.activate" target=_parent class=ISymbol>activate</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR2_ACTIVATE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ACTIVATE" target=_parent class=ISymbol>ACTIVATE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_add><div class=IEntry><a href="javascript:searchResults.Toggle('SR_add')" class=ISymbol>add</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.add" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxRectangle-js.html#mxRectangle.add" target=_parent class=IParent>mxRectangle</a><a href="../files/util/mxResources-js.html#mxResources.add" target=_parent class=IParent>mxResources</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.add" target=_parent class=IParent>mxUndoableEdit</a></div></div></div><div class=SRResult id=SR2_ADD><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_ADD')" class=ISymbol>ADD</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.ADD" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxEvent.ADD" target=_parent class=IParent>mxUndoManager.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_ADD_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_ADD_undCELLS')" class=ISymbol>ADD_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.ADD_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ADD_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_ADD_undOVERLAY><div class=IEntry><a href="javascript:searchResults.Toggle('SR_ADD_undOVERLAY')" class=ISymbol>ADD_OVERLAY</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.ADD_OVERLAY" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ADD_OVERLAY" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_ADD_undVERTEX><div class=IEntry><a href="javascript:searchResults.Toggle('SR_ADD_undVERTEX')" class=ISymbol>ADD_VERTEX</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.ADD_VERTEX" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.ADD_VERTEX" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_addAction><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addAction')" class=ISymbol>addAction</a><div class=ISubIndex><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.addAction" target=_parent class=IParent>mxDefaultPopupMenu</a><a href="../files/editor/mxEditor-js.html#mxEditor.addAction" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_addActionCombo><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addActionCombo" target=_parent class=ISymbol>addActionCombo</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_addActionOption><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addActionOption" target=_parent class=ISymbol>addActionOption</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_addActions><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.addActions" target=_parent class=ISymbol>addActions</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_addAlias><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.addAlias" target=_parent class=ISymbol>addAlias</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_addAllEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addAllEdges" target=_parent class=ISymbol>addAllEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addBreak><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.addBreak" target=_parent class=ISymbol>addBreak</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_addButton><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.addButton" target=_parent class=ISymbol>addButton</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_addButtons><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addButtons" target=_parent class=ISymbol>addButtons</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addCell')" class=ISymbol>addCell</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.addCell" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.addCell" target=_parent class=IParent>mxGraphSelectionModel</a></div></div></div><div class=SRResult id=SR_addCellOverlay><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addCellOverlay" target=_parent class=ISymbol>addCellOverlay</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addCells')" class=ISymbol>addCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.addCells" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.addCells" target=_parent class=IParent>mxGraphSelectionModel</a></div></div></div><div class=SRResult id=SR_addCheckbox><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addCheckbox" target=_parent class=ISymbol>addCheckbox</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addCombo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addCombo')" class=ISymbol>addCombo</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addCombo" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxForm-js.html#mxForm.addCombo" target=_parent class=IParent>mxForm</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addCombo" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addEdge" target=_parent class=ISymbol>addEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addEdges><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.addEdges" target=_parent class=ISymbol>addEdges</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_addEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addEnabled')" class=ISymbol>addEnabled</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.addEnabled" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.addEnabled" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_addField><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addField" target=_parent class=ISymbol>addField</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addImageBundle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addImageBundle" target=_parent class=ISymbol>addImageBundle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addItem><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addItem')" class=ISymbol>addItem</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addItem" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.addItem" target=_parent class=IParent>mxPopupMenu</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addItem" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addItems><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.addItems" target=_parent class=ISymbol>addItems</a>, <span class=IParent>mxDefaultPopupMenu</span></div></div><div class=SRResult id=SR_addLine><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.addLine" target=_parent class=ISymbol>addLine</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_addListener><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addListener')" class=ISymbol>addListener</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.addListener" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventSource-js.html#mxEventSource.addListener" target=_parent class=IParent>mxEventSource</a></div></div></div><div class=SRResult id=SR_addMode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addMode')" class=ISymbol>addMode</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addMode" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addMode" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addMouseListener><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addMouseListener" target=_parent class=ISymbol>addMouseListener</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addObjectValue><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.addObjectValue" target=_parent class=ISymbol>addObjectValue</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_addOption><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addOption')" class=ISymbol>addOption</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addOption" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxForm-js.html#mxForm.addOption" target=_parent class=IParent>mxForm</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addOption" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addPath><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.addPath" target=_parent class=ISymbol>addPath</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_addPipe><div class=IEntry><a href="../files/shape/mxArrow-js.html#mxArrow.addPipe" target=_parent class=ISymbol>addPipe</a>, <span class=IParent>mxArrow</span></div></div><div class=SRResult id=SR_addPoint><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.addPoint" target=_parent class=ISymbol>addPoint</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_addPrototype><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addPrototype" target=_parent class=ISymbol>addPrototype</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_addSelectionCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addSelectionCell" target=_parent class=ISymbol>addSelectionCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addSelectionCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.addSelectionCells" target=_parent class=ISymbol>addSelectionCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addSeparator><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addSeparator')" class=ISymbol>addSeparator</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.addSeparator" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.addSeparator" target=_parent class=IParent>mxPopupMenu</a><a href="../files/util/mxToolbar-js.html#mxToolbar.addSeparator" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_addStencil><div class=IEntry><a href="../files/shape/mxStencilRegistry-js.html#mxStencilRegistry.addStencil" target=_parent class=ISymbol>addStencil</a>, <span class=IParent>mxStencilRegistry</span></div></div><div class=SRResult id=SR_addStylename><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.addStylename" target=_parent class=ISymbol>addStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_addSwitchMode><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.addSwitchMode" target=_parent class=ISymbol>addSwitchMode</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_addTemplate><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.addTemplate" target=_parent class=ISymbol>addTemplate</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_addText><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addText" target=_parent class=ISymbol>addText</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addTextarea><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.addTextarea" target=_parent class=ISymbol>addTextarea</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_addVertex><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.addVertex" target=_parent class=ISymbol>addVertex</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_addWaypoint><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.addWaypoint" target=_parent class=ISymbol>addWaypoint</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_adjustParents><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.adjustParents" target=_parent class=ISymbol>adjustParents</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_AFTER_undADD_undVERTEX><div class=IEntry><a href="javascript:searchResults.Toggle('SR_AFTER_undADD_undVERTEX')" class=ISymbol>AFTER_ADD_VERTEX</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.AFTER_ADD_VERTEX" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.AFTER_ADD_VERTEX" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_afterDecode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_afterDecode')" class=ISymbol>afterDecode</a><div class=ISubIndex><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec.afterDecode" target=_parent class=IParent>mxChildChangeCodec</a><a href="../files/io/mxGenericChangeCodec-js.html#mxGenericChangeCodec.afterDecode" target=_parent class=IParent>mxGenericChangeCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.afterDecode" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxRootChangeCodec-js.html#mxRootChangeCodec.afterDecode" target=_parent class=IParent>mxRootChangeCodec</a><a href="../files/io/mxTerminalChangeCodec-js.html#mxTerminalChangeCodec.afterDecode" target=_parent class=IParent>mxTerminalChangeCodec</a></div></div></div><div class=SRResult id=SR_afterEncode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_afterEncode')" class=ISymbol>afterEncode</a><div class=ISubIndex><a href="../files/io/mxCellCodec-js.html#mxCellCodec.afterEncode" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec.afterEncode" target=_parent class=IParent>mxChildChangeCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.afterEncode" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_alert><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.alert" target=_parent class=ISymbol>alert</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_aliases><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.aliases" target=_parent class=ISymbol>aliases</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_align><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.align" target=_parent class=ISymbol>align</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_ALIGN_undBOTTOM><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_BOTTOM" target=_parent class=ISymbol>ALIGN_BOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_ALIGN_undCELLS')" class=ISymbol>ALIGN_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.ALIGN_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ALIGN_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_ALIGN_undCENTER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_CENTER" target=_parent class=ISymbol>ALIGN_CENTER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undLEFT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_LEFT" target=_parent class=ISymbol>ALIGN_LEFT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undMIDDLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_MIDDLE" target=_parent class=ISymbol>ALIGN_MIDDLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undRIGHT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_RIGHT" target=_parent class=ISymbol>ALIGN_RIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undTOP><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_TOP" target=_parent class=ISymbol>ALIGN_TOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_alignCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.alignCells" target=_parent class=ISymbol>alignCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_allowAutoPanning><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.allowAutoPanning" target=_parent class=ISymbol>allowAutoPanning</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_allowCrispMarkers><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector.allowCrispMarkers" target=_parent class=ISymbol>allowCrispMarkers</a>, <span class=IParent>mxConnector</span></div></div><div class=SRResult id=SR_allowDanglingEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.allowDanglingEdges" target=_parent class=ISymbol>allowDanglingEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_allowedToRun><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.allowedToRun" target=_parent class=ISymbol>allowedToRun</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_allowEval><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.allowEval" target=_parent class=ISymbol>allowEval</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_allowHandleBoundsCheck><div class=IEntry><a href="javascript:searchResults.Toggle('SR_allowHandleBoundsCheck')" class=ISymbol>allowHandleBoundsCheck</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.allowHandleBoundsCheck" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.allowHandleBoundsCheck" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_allowLoops><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.allowLoops" target=_parent class=ISymbol>allowLoops</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_allowNegativeCoordinates><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.allowNegativeCoordinates" target=_parent class=ISymbol>allowNegativeCoordinates</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_alreadyConnectedResource><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.alreadyConnectedResource" target=_parent class=ISymbol>alreadyConnectedResource</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_alt><div class=IEntry><a href="../files/util/mxImageBundle-js.html#mxImageBundle.alt" target=_parent class=ISymbol>alt</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_alternateBounds><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.alternateBounds" target=_parent class=ISymbol>alternateBounds</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_alternateEdgeStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.alternateEdgeStyle" target=_parent class=ISymbol>alternateEdgeStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_animateCell><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.animateCell" target=_parent class=ISymbol>animateCell</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_animateChanges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_animateChanges')" class=ISymbol>animateChanges</a><div class=ISubIndex><a href="../files/util/mxEffects-js.html#mxEffects.animateChanges" target=_parent class=IParent>mxEffects</a><a href="../files/util/mxUtils-js.html#mxUtils.animateChanges" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_API_spcSpecification><div class=IEntry><a href="../files/index-txt.html#API_Specification" target=_parent class=ISymbol>API Specification</a></div></div><div class=SRResult id=SR_apply><div class=IEntry><a href="javascript:searchResults.Toggle('SR_apply')" class=ISymbol>apply</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.apply" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.apply" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxShape-js.html#mxShape.apply" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.apply" target=_parent class=IParent>mxStencilShape</a></div></div></div><div class=SRResult id=SR_arcToCurves><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.arcToCurves" target=_parent class=ISymbol>arcToCurves</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_ARROW_undBLOCK><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_BLOCK" target=_parent class=ISymbol>ARROW_BLOCK</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undCLASSIC><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_CLASSIC" target=_parent class=ISymbol>ARROW_CLASSIC</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undDIAMOND><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_DIAMOND" target=_parent class=ISymbol>ARROW_DIAMOND</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undOPEN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_OPEN" target=_parent class=ISymbol>ARROW_OPEN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undOVAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_OVAL" target=_parent class=ISymbol>ARROW_OVAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_SIZE" target=_parent class=ISymbol>ARROW_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_SPACING" target=_parent class=ISymbol>ARROW_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_WIDTH" target=_parent class=ISymbol>ARROW_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_askZoomResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.askZoomResource" target=_parent class=ISymbol>askZoomResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_aspect><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.aspect" target=_parent class=ISymbol>aspect</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_async><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.async" target=_parent class=ISymbol>async</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_attachParent><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.attachParent" target=_parent class=ISymbol>attachParent</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_attr><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.attr" target=_parent class=ISymbol>attr</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_Attribute_spcCycling><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.Attribute_Cycling" target=_parent class=ISymbol>Attribute Cycling</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_autoAntiAlias><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.autoAntiAlias" target=_parent class=ISymbol>autoAntiAlias</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_autoExpand><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.autoExpand" target=_parent class=ISymbol>autoExpand</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_autoExtend><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.autoExtend" target=_parent class=ISymbol>autoExtend</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Autolayout><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.Autolayout" target=_parent class=ISymbol>Autolayout</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_autoOrigin><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.autoOrigin" target=_parent class=ISymbol>autoOrigin</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_autoSaveDelay><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.autoSaveDelay" target=_parent class=ISymbol>autoSaveDelay</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_autoSaveThreshold><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.autoSaveThreshold" target=_parent class=ISymbol>autoSaveThreshold</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_autoSaveThrottle><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.autoSaveThrottle" target=_parent class=ISymbol>autoSaveThrottle</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_autoscroll><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.autoscroll" target=_parent class=ISymbol>autoscroll</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR2_autoScroll><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.autoScroll" target=_parent class=ISymbol>autoScroll</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_autoSizeCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.autoSizeCells" target=_parent class=ISymbol>autoSizeCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_avoid><div class=IEntry><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout.avoid" target=_parent class=ISymbol>avoid</a>, <span class=IParent>mxEdgeLabelLayout</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralB.html b/docs/js-api/search/GeneralB.html
    new file mode 100644
    index 000000000..0d75bed15
    --- /dev/null
    +++ b/docs/js-api/search/GeneralB.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_Backend_spcIntegration><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.Backend_Integration" target=_parent class=ISymbol>Backend Integration</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_backgroundImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.backgroundImage" target=_parent class=ISymbol>backgroundImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_basePath><div class=IEntry><a href="../files/mxClient-js.html#mxClient.basePath" target=_parent class=ISymbol>basePath</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_baseUrl><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.baseUrl" target=_parent class=ISymbol>baseUrl</a>, <span class=IParent>mxUrlConverter</span></div></div><div class=SRResult id=SR_BEFORE_undADD_undVERTEX><div class=IEntry><a href="javascript:searchResults.Toggle('SR_BEFORE_undADD_undVERTEX')" class=ISymbol>BEFORE_ADD_VERTEX</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.BEFORE_ADD_VERTEX" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.BEFORE_ADD_VERTEX" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_BEFORE_undUNDO><div class=IEntry><a href="javascript:searchResults.Toggle('SR_BEFORE_undUNDO')" class=ISymbol>BEFORE_UNDO</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.BEFORE_UNDO" target=_parent class=IParent>mxEvent</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.BEFORE_UNDO" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_beforeDecode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_beforeDecode')" class=ISymbol>beforeDecode</a><div class=ISubIndex><a href="../files/io/mxCellCodec-js.html#mxCellCodec.beforeDecode" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec.beforeDecode" target=_parent class=IParent>mxChildChangeCodec</a><a href="../files/io/mxEditorCodec-js.html#mxEditorCodec.beforeDecode" target=_parent class=IParent>mxEditorCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.beforeDecode" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxRootChangeCodec-js.html#mxRootChangeCodec.beforeDecode" target=_parent class=IParent>mxRootChangeCodec</a></div></div></div><div class=SRResult id=SR_beforeEncode><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.beforeEncode" target=_parent class=ISymbol>beforeEncode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_beforeUndo><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.beforeUndo" target=_parent class=ISymbol>beforeUndo</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_begin><div class=IEntry><a href="javascript:searchResults.Toggle('SR_begin')" class=ISymbol>begin</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.begin" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.begin" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_BEGIN_undUPDATE><div class=IEntry><a href="javascript:searchResults.Toggle('SR_BEGIN_undUPDATE')" class=ISymbol>BEGIN_UPDATE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.BEGIN_UPDATE" target=_parent class=IParent>mxEvent</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.BEGIN_UPDATE" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_beginUpdate><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.beginUpdate" target=_parent class=ISymbol>beginUpdate</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_bends><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.bends" target=_parent class=ISymbol>bends</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_bgNodes><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.bgNodes" target=_parent class=ISymbol>bgNodes</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_binary><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.binary" target=_parent class=ISymbol>binary</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_bind><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.bind" target=_parent class=ISymbol>bind</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_bindAction><div class=IEntry><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.bindAction" target=_parent class=ISymbol>bindAction</a>, <span class=IParent>mxDefaultKeyHandler</span></div></div><div class=SRResult id=SR_bindControlKey><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.bindControlKey" target=_parent class=ISymbol>bindControlKey</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_bindControlShiftKey><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.bindControlShiftKey" target=_parent class=ISymbol>bindControlShiftKey</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_bindKey><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.bindKey" target=_parent class=ISymbol>bindKey</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_bindShiftKey><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.bindShiftKey" target=_parent class=ISymbol>bindShiftKey</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_body><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.body" target=_parent class=ISymbol>body</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_border><div class=IEntry><a href="javascript:searchResults.Toggle('SR_border')" class=ISymbol>border</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.border" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxOutline-js.html#mxOutline.border" target=_parent class=IParent>mxOutline</a><a href="../files/util/mxPanningManager-js.html#mxPanningManager.border" target=_parent class=IParent>mxPanningManager</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.border" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.border" target=_parent class=IParent>mxPrintPreview</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.border" target=_parent class=IParent>mxStackLayout</a></div></div></div><div class=SRResult id=SR_borderColor><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.borderColor" target=_parent class=ISymbol>borderColor</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_bounds><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.bounds" target=_parent class=ISymbol>bounds</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_br><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.br" target=_parent class=ISymbol>br</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_bridge><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.bridge" target=_parent class=ISymbol>bridge</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_bubbling><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.bubbling" target=_parent class=ISymbol>bubbling</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_buffer><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.buffer" target=_parent class=ISymbol>buffer</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_button><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.button" target=_parent class=ISymbol>button</a>, <span class=IParent>mxUtils</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralC.html b/docs/js-api/search/GeneralC.html
    new file mode 100644
    index 000000000..cd5a6a3c1
    --- /dev/null
    +++ b/docs/js-api/search/GeneralC.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_calcAttraction><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.calcAttraction" target=_parent class=ISymbol>calcAttraction</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_calcPositions><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.calcPositions" target=_parent class=ISymbol>calcPositions</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_calcRepulsion><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.calcRepulsion" target=_parent class=ISymbol>calcRepulsion</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_calculateCrossings><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.calculateCrossings" target=_parent class=ISymbol>calculateCrossings</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_calculatedWeightedValue><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.calculatedWeightedValue" target=_parent class=ISymbol>calculatedWeightedValue</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_calculateRankCrossing><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.calculateRankCrossing" target=_parent class=ISymbol>calculateRankCrossing</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_calculateWidestRank><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.calculateWidestRank" target=_parent class=ISymbol>calculateWidestRank</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_canExportCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.canExportCell" target=_parent class=ISymbol>canExportCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_canImportCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.canImportCell" target=_parent class=ISymbol>canImportCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_canRedo><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.canRedo" target=_parent class=ISymbol>canRedo</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_canUndo><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.canUndo" target=_parent class=ISymbol>canUndo</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_captureDocumentGesture><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.captureDocumentGesture" target=_parent class=ISymbol>captureDocumentGesture</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_cascadeOpacity><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cascadeOpacity')" class=ISymbol>cascadeOpacity</a><div class=ISubIndex><a href="../files/util/mxEffects-js.html#mxEffects.cascadeOpacity" target=_parent class=IParent>mxEffects</a><a href="../files/util/mxUtils-js.html#mxUtils.cascadeOpacity" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_cell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cell')" class=ISymbol>cell</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.cell" target=_parent class=IParent>MedianCellSorter</a><a href="../files/view/mxCellState-js.html#mxCellState.cell" target=_parent class=IParent>mxCellState</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.cell" target=_parent class=IParent>mxGraphHierarchyNode</a><span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.cell" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.cell" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></div><div class=SRResult id=SR_Cell_spcalignment_spcand_spcorientation><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Cell_alignment_and_orientation" target=_parent class=ISymbol>Cell alignment and orientation</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Cell_spccloning_cominsertion_spcand_spcremoval><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Cell_cloning,insertion_and_removal" target=_parent class=ISymbol>Cell cloning,insertion and removal</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Cell_spcconnecting_spcand_spcconnection_spcconstraints><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Cell_connecting_and_connection_constraints" target=_parent class=ISymbol>Cell connecting and connection constraints</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Cell_spcmoving><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Cell_moving" target=_parent class=ISymbol>Cell moving</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Cell_spcretrieval><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Cell_retrieval" target=_parent class=ISymbol>Cell retrieval</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Cell_spcsizing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Cell_sizing" target=_parent class=ISymbol>Cell sizing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Cell_spcstyles><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Cell_styles" target=_parent class=ISymbol>Cell styles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Cell_spcvisibility><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Cell_visibility" target=_parent class=ISymbol>Cell visibility</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_CELL_undCONNECTED><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CELL_undCONNECTED')" class=ISymbol>CELL_CONNECTED</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CELL_CONNECTED" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELL_CONNECTED" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_cellAdded><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellAdded')" class=ISymbol>cellAdded</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cellAdded" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.cellAdded" target=_parent class=IParent>mxGraphSelectionModel</a></div></div></div><div class=SRResult id=SR_cellCloned><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cellCloned" target=_parent class=ISymbol>cellCloned</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cellConnected><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellConnected" target=_parent class=ISymbol>cellConnected</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellEditor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellEditor" target=_parent class=ISymbol>cellEditor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellLabelChanged><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellLabelChanged" target=_parent class=ISymbol>cellLabelChanged</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellLocation><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.cellLocation" target=_parent class=ISymbol>cellLocation</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_cellRemoved><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellRemoved')" class=ISymbol>cellRemoved</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cellRemoved" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.cellRemoved" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/util/mxSession-js.html#mxSession.cellRemoved" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_cellRenderer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellRenderer" target=_parent class=ISymbol>cellRenderer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellResized><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.cellResized" target=_parent class=ISymbol>cellResized</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_cells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cells')" class=ISymbol>cells</a><div class=ISubIndex><a href="../files/util/mxClipboard-js.html#mxClipboard.cells" target=_parent class=IParent>mxClipboard</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cells" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxMorphing-js.html#mxMorphing.cells" target=_parent class=IParent>mxMorphing</a></div></div></div><div class=SRResult id=SR_CELLS_undADDED><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CELLS_undADDED')" class=ISymbol>CELLS_ADDED</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_ADDED" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_ADDED" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CELLS_undFOLDED><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CELLS_undFOLDED')" class=ISymbol>CELLS_FOLDED</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_FOLDED" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_FOLDED" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CELLS_undMOVED><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CELLS_undMOVED')" class=ISymbol>CELLS_MOVED</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_MOVED" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_MOVED" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CELLS_undORDERED><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CELLS_undORDERED')" class=ISymbol>CELLS_ORDERED</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_ORDERED" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_ORDERED" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CELLS_undREMOVED><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CELLS_undREMOVED')" class=ISymbol>CELLS_REMOVED</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_REMOVED" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_REMOVED" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CELLS_undRESIZED><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CELLS_undRESIZED')" class=ISymbol>CELLS_RESIZED</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_RESIZED" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CELLS_RESIZED" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CELLS_undTOGGLED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_TOGGLED" target=_parent class=ISymbol>CELLS_TOGGLED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_cellsAdded><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellsAdded')" class=ISymbol>cellsAdded</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.cellsAdded" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.cellsAdded" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_cellsBendable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsBendable" target=_parent class=ISymbol>cellsBendable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsCloneable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsCloneable" target=_parent class=ISymbol>cellsCloneable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsDeletable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsDeletable" target=_parent class=ISymbol>cellsDeletable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsDisconnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsDisconnectable" target=_parent class=ISymbol>cellsDisconnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsEditable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsEditable" target=_parent class=ISymbol>cellsEditable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsFolded><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsFolded" target=_parent class=ISymbol>cellsFolded</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellSizeUpdated><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellSizeUpdated" target=_parent class=ISymbol>cellSizeUpdated</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsLocked><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsLocked" target=_parent class=ISymbol>cellsLocked</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsMovable" target=_parent class=ISymbol>cellsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsMoved><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellsMoved')" class=ISymbol>cellsMoved</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.cellsMoved" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.cellsMoved" target=_parent class=IParent>mxLayoutManager</a></div></div></div><div class=SRResult id=SR_cellsOrdered><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsOrdered" target=_parent class=ISymbol>cellsOrdered</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsRemoved><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsRemoved" target=_parent class=ISymbol>cellsRemoved</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsResizable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsResizable" target=_parent class=ISymbol>cellsResizable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsResized><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cellsResized')" class=ISymbol>cellsResized</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.cellsResized" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.cellsResized" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.cellsResized" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_cellsSelectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsSelectable" target=_parent class=ISymbol>cellsSelectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsToggled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsToggled" target=_parent class=ISymbol>cellsToggled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_centerZoom><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.centerZoom" target=_parent class=ISymbol>centerZoom</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_CHANGE><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CHANGE')" class=ISymbol>CHANGE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CHANGE" target=_parent class=IParent>mxEvent</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.CHANGE" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.mxEvent.CHANGE" target=_parent class=IParent>mxGraphSelectionModel.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_changeHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_changeHandler')" class=ISymbol>changeHandler</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.changeHandler" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.changeHandler" target=_parent class=IParent>mxConnectionHandler</a></div></div></div><div class=SRResult id=SR_changePoints><div class=IEntry><a href="javascript:searchResults.Toggle('SR_changePoints')" class=ISymbol>changePoints</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#changePoints" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.changePoints" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_changes><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.changes" target=_parent class=ISymbol>changes</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_changeSelection><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.changeSelection" target=_parent class=ISymbol>changeSelection</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_changeTerminalPoint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_changeTerminalPoint')" class=ISymbol>changeTerminalPoint</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#changeTerminalPoint" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.changeTerminalPoint" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_channelBuffer><div class=IEntry><a href="javascript:searchResults.Toggle('SR_channelBuffer')" class=ISymbol>channelBuffer</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.channelBuffer" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.channelBuffer" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_check><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.check" target=_parent class=ISymbol>check</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_checkNeighbors><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.checkNeighbors" target=_parent class=ISymbol>checkNeighbors</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_checkTerminal><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.checkTerminal" target=_parent class=ISymbol>checkTerminal</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_checkType><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.checkType" target=_parent class=ISymbol>checkType</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_childMoved><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.childMoved" target=_parent class=ISymbol>childMoved</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_children><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.children" target=_parent class=ISymbol>children</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_circle><div class=IEntry><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.circle" target=_parent class=ISymbol>circle</a>, <span class=IParent>mxCircleLayout</span></div></div><div class=SRResult id=SR_clear><div class=IEntry><a href="javascript:searchResults.Toggle('SR_clear')" class=ISymbol>clear</a><div class=ISubIndex><a href="../files/util/mxDictionary-js.html#mxDictionary.clear" target=_parent class=IParent>mxDictionary</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.clear" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.clear" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/view/mxGraphView-js.html#mxGraphView.clear" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.clear" target=_parent class=IParent>mxObjectIdentity</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.clear" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR2_CLEAR><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_CLEAR')" class=ISymbol>CLEAR</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CLEAR" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxEvent.CLEAR" target=_parent class=IParent>mxUndoManager.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_clearCellOverlays><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.clearCellOverlays" target=_parent class=ISymbol>clearCellOverlays</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_clearSelection><div class=IEntry><a href="javascript:searchResults.Toggle('SR_clearSelection')" class=ISymbol>clearSelection</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.clearSelection" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.clearSelection" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_clearSelectionOnBackground><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.clearSelectionOnBackground" target=_parent class=ISymbol>clearSelectionOnBackground</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_click><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.click" target=_parent class=ISymbol>click</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR2_CLICK><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_CLICK')" class=ISymbol>CLICK</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.mxEvent.CLICK" target=_parent class=IParent>mxCellOverlay.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.CLICK" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CLICK" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_clip><div class=IEntry><a href="javascript:searchResults.Toggle('SR_clip')" class=ISymbol>clip</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.clip" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.clip" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_clone><div class=IEntry><a href="javascript:searchResults.Toggle('SR_clone')" class=ISymbol>clone</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.clone" target=_parent class=IParent>mxCell</a><a href="../files/view/mxCellState-js.html#mxCellState.clone" target=_parent class=IParent>mxCellState</a><a href="../files/shape/mxLine-js.html#mxLine.clone" target=_parent class=IParent>mxLine</a><a href="../files/util/mxPoint-js.html#mxPoint.clone" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxUtils-js.html#mxUtils.clone" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_cloneCell><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cloneCell" target=_parent class=ISymbol>cloneCell</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCellImpl><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cloneCellImpl" target=_parent class=ISymbol>cloneCellImpl</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cloneCells')" class=ISymbol>cloneCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.cloneCells" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cloneCells" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_cloneEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cloneEnabled')" class=ISymbol>cloneEnabled</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.cloneEnabled" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.cloneEnabled" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_cloneInvalidEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cloneInvalidEdges" target=_parent class=ISymbol>cloneInvalidEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_clonePreviewState><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.clonePreviewState" target=_parent class=ISymbol>clonePreviewState</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_cloneTemplate><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.cloneTemplate" target=_parent class=ISymbol>cloneTemplate</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_cloneValue><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.cloneValue" target=_parent class=ISymbol>cloneValue</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_close><div class=IEntry><a href="javascript:searchResults.Toggle('SR_close')" class=ISymbol>close</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.close" target=_parent class=IParent>mxPath</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.close" target=_parent class=IParent>mxPrintPreview</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.close" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.close" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR2_CLOSE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CLOSE" target=_parent class=ISymbol>CLOSE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_closeImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.closeImage" target=_parent class=ISymbol>closeImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_closeResource><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.closeResource" target=_parent class=ISymbol>closeResource</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_codec><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.codec" target=_parent class=ISymbol>codec</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_codecs><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.codecs" target=_parent class=ISymbol>codecs</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_collapsed><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.collapsed" target=_parent class=ISymbol>collapsed</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_collapsedImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.collapsedImage" target=_parent class=ISymbol>collapsedImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_collapsedStateForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.collapsedStateForCellChanged" target=_parent class=ISymbol>collapsedStateForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_collapseExpandResource><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.collapseExpandResource" target=_parent class=ISymbol>collapseExpandResource</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_collapseToPreferredSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.collapseToPreferredSize" target=_parent class=ISymbol>collapseToPreferredSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_compare><div class=IEntry><a href="javascript:searchResults.Toggle('SR_compare')" class=ISymbol>compare</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.compare" target=_parent class=IParent>MedianCellSorter</a><a href="../files/model/mxCellPath-js.html#mxCellPath.compare" target=_parent class=IParent>mxCellPath</a><span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.compare" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.compare" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></div><div class=SRResult id=SR_compressed><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.compressed" target=_parent class=ISymbol>compressed</a>, <span class=IParent>mxXmlCanvas2D</span></div></div><div class=SRResult id=SR_computeAspect><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.computeAspect" target=_parent class=ISymbol>computeAspect</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_config><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.config" target=_parent class=ISymbol>config</a>, <span class=IParent>mxDefaultPopupMenu</span></div></div><div class=SRResult id=SR_configure><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.configure" target=_parent class=ISymbol>configure</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_configureHtmlShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_configureHtmlShape')" class=ISymbol>configureHtmlShape</a><div class=ISubIndex><a href="../files/shape/mxConnector-js.html#mxConnector.configureHtmlShape" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxShape-js.html#mxShape.configureHtmlShape" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.configureHtmlShape" target=_parent class=IParent>mxStencilShape</a></div></div></div><div class=SRResult id=SR_configureShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.configureShape" target=_parent class=ISymbol>configureShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_configureSvgShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_configureSvgShape')" class=ISymbol>configureSvgShape</a><div class=ISubIndex><a href="../files/shape/mxImageShape-js.html#mxImageShape.configureSvgShape" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxShape-js.html#mxShape.configureSvgShape" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_configureTransparentBackground><div class=IEntry><a href="javascript:searchResults.Toggle('SR_configureTransparentBackground')" class=ISymbol>configureTransparentBackground</a><div class=ISubIndex><a href="../files/shape/mxArrow-js.html#mxArrow.configureTransparentBackground" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.configureTransparentBackground" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxShape-js.html#mxShape.configureTransparentBackground" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_configureVmlShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_configureVmlShape')" class=ISymbol>configureVmlShape</a><div class=ISubIndex><a href="../files/shape/mxShape-js.html#mxShape.configureVmlShape" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.configureVmlShape" target=_parent class=IParent>mxStencilShape</a></div></div></div><div class=SRResult id=SR_confirm><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.confirm" target=_parent class=ISymbol>confirm</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_connect><div class=IEntry><a href="javascript:searchResults.Toggle('SR_connect')" class=ISymbol>connect</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#connect" target=_parent class=IParent>Global</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.connect" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.connect" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.connect" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/editor/mxEditor-js.html#mxEditor.connect" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR2_CONNECT><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_CONNECT')" class=ISymbol>CONNECT</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mxEvent.CONNECT" target=_parent class=IParent>mxConnectionHandler.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.CONNECT" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.CONNECT" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CONNECT_undCELL><div class=IEntry><a href="javascript:searchResults.Toggle('SR_CONNECT_undCELL')" class=ISymbol>CONNECT_CELL</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.CONNECT_CELL" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.CONNECT_CELL" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_CONNECT_undHANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CONNECT_HANDLE_FILLCOLOR" target=_parent class=ISymbol>CONNECT_HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_connectable><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.connectable" target=_parent class=ISymbol>connectable</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_connectableEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.connectableEdges" target=_parent class=ISymbol>connectableEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_connectCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.connectCell" target=_parent class=ISymbol>connectCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_connected><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.connected" target=_parent class=ISymbol>connected</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_connectIconOffset><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.connectIconOffset" target=_parent class=ISymbol>connectIconOffset</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_connectImage><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.connectImage" target=_parent class=ISymbol>connectImage</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_connectOnDrop><div class=IEntry><a href="javascript:searchResults.Toggle('SR_connectOnDrop')" class=ISymbol>connectOnDrop</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.connectOnDrop" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.connectOnDrop" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_connectsAsSource><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.connectsAsSource" target=_parent class=ISymbol>connectsAsSource</a>, <span class=IParent>mxGraphHierarchyNode</span></div></div><div class=SRResult id=SR_connectsAsTarget><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.connectsAsTarget" target=_parent class=ISymbol>connectsAsTarget</a>, <span class=IParent>mxGraphHierarchyNode</span></div></div><div class=SRResult id=SR_consoleName><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.consoleName" target=_parent class=ISymbol>consoleName</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_constrainChild><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.constrainChild" target=_parent class=ISymbol>constrainChild</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_constrainChildren><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.constrainChildren" target=_parent class=ISymbol>constrainChildren</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_constraintHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_constraintHandler')" class=ISymbol>constraintHandler</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.constraintHandler" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.constraintHandler" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_constraints><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.constraints" target=_parent class=ISymbol>constraints</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_consume><div class=IEntry><a href="javascript:searchResults.Toggle('SR_consume')" class=ISymbol>consume</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.consume" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventObject-js.html#mxEventObject.consume" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.consume" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_consumeCycleAttribute><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.consumeCycleAttribute" target=_parent class=ISymbol>consumeCycleAttribute</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_consumed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_consumed')" class=ISymbol>consumed</a><div class=ISubIndex><a href="../files/util/mxEventObject-js.html#mxEventObject.consumed" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.consumed" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_container><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.container" target=_parent class=ISymbol>container</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_contains><div class=IEntry><a href="javascript:searchResults.Toggle('SR_contains')" class=ISymbol>contains</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.contains" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-js.html#mxUtils.contains" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_containsValidationErrorsResource><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.containsValidationErrorsResource" target=_parent class=ISymbol>containsValidationErrorsResource</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_content><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.content" target=_parent class=ISymbol>content</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_controlKeys><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.controlKeys" target=_parent class=ISymbol>controlKeys</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_Controls_spcand_spcHandlers><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.Controls_and_Handlers" target=_parent class=ISymbol>Controls and Handlers</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_controlShiftKeys><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.controlShiftKeys" target=_parent class=ISymbol>controlShiftKeys</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_convert><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.convert" target=_parent class=ISymbol>convert</a>, <span class=IParent>mxUrlConverter</span></div></div><div class=SRResult id=SR_converter><div class=IEntry><a href="javascript:searchResults.Toggle('SR_converter')" class=ISymbol>converter</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.converter" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.converter" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_convertPoint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_convertPoint')" class=ISymbol>convertPoint</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.convertPoint" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.convertPoint" target=_parent class=IParent>mxElbowEdgeHandler</a><a href="../files/util/mxUtils-js.html#mxUtils.convertPoint" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_convertValueFromXml><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.convertValueFromXml" target=_parent class=ISymbol>convertValueFromXml</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_convertValueToString><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.convertValueToString" target=_parent class=ISymbol>convertValueToString</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_convertValueToXml><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.convertValueToXml" target=_parent class=ISymbol>convertValueToXml</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_convertWaypoint><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.convertWaypoint" target=_parent class=ISymbol>convertWaypoint</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_copy><div class=IEntry><a href="javascript:searchResults.Toggle('SR_copy')" class=ISymbol>copy</a><div class=ISubIndex><a href="../files/util/mxClipboard-js.html#mxClipboard.copy" target=_parent class=IParent>mxClipboard</a><a href="../files/util/mxUtils-js.html#mxUtils.copy" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_count><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.count" target=_parent class=ISymbol>count</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_counter><div class=IEntry><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.counter" target=_parent class=ISymbol>counter</a>, <span class=IParent>mxObjectIdentity</span></div></div><div class=SRResult id=SR_countError><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.countError" target=_parent class=ISymbol>countError</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_create><div class=IEntry><a href="javascript:searchResults.Toggle('SR_create')" class=ISymbol>create</a><div class=ISubIndex><a href="../files/model/mxCellPath-js.html#mxCellPath.create" target=_parent class=IParent>mxCellPath</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.create" target=_parent class=IParent>mxCylinder</a><a href="../files/view/mxGraphView-js.html#mxGraphView.create" target=_parent class=IParent>mxGraphView</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.create" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.create" target=_parent class=IParent>mxPolyline</a><a href="../files/shape/mxShape-js.html#mxShape.create" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxText-js.html#mxText.create" target=_parent class=IParent>mxText</a><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.create" target=_parent class=IParent>mxXmlRequest</a></div></div></div><div class=SRResult id=SR_createBackgroundPageShape><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.createBackgroundPageShape" target=_parent class=ISymbol>createBackgroundPageShape</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createBends><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createBends')" class=ISymbol>createBends</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#createBends" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.createBends" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.createBends" target=_parent class=IParent>mxElbowEdgeHandler</a></div></div></div><div class=SRResult id=SR_createBounds><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.createBounds" target=_parent class=ISymbol>createBounds</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_createCellEditor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createCellEditor" target=_parent class=ISymbol>createCellEditor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createCellOverlays><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.createCellOverlays" target=_parent class=ISymbol>createCellOverlays</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_createCellRenderer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createCellRenderer" target=_parent class=ISymbol>createCellRenderer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createConditions><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.createConditions" target=_parent class=ISymbol>createConditions</a>, <span class=IParent>mxDefaultPopupMenu</span></div></div><div class=SRResult id=SR_createControl><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.createControl" target=_parent class=ISymbol>createControl</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_createDashPattern><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector.createDashPattern" target=_parent class=ISymbol>createDashPattern</a>, <span class=IParent>mxConnector</span></div></div><div class=SRResult id=SR_createDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.createDefaultEdgeStyle" target=_parent class=ISymbol>createDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_createDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.createDefaultVertexStyle" target=_parent class=ISymbol>createDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_createDiagramLayout><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createDiagramLayout" target=_parent class=ISymbol>createDiagramLayout</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createDragElement><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.createDragElement" target=_parent class=ISymbol>createDragElement</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_createEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createEdge')" class=ISymbol>createEdge</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createEdge" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/editor/mxEditor-js.html#mxEditor.createEdge" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.createEdge" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_createEdgeState><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createEdgeState" target=_parent class=ISymbol>createEdgeState</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_createForeignObject><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.createForeignObject" target=_parent class=ISymbol>createForeignObject</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_createGraph><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createGraph" target=_parent class=ISymbol>createGraph</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createGraphView><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createGraphView" target=_parent class=ISymbol>createGraphView</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createGroup><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createGroup" target=_parent class=ISymbol>createGroup</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createGroupCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createGroupCell" target=_parent class=ISymbol>createGroupCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createGuideShape><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.createGuideShape" target=_parent class=ISymbol>createGuideShape</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_createHandler><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createHandler" target=_parent class=ISymbol>createHandler</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createHandlers><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createHandlers" target=_parent class=ISymbol>createHandlers</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createHandleShape><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.createHandleShape" target=_parent class=ISymbol>createHandleShape</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_createHtml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createHtml')" class=ISymbol>createHtml</a><div class=ISubIndex><a href="../files/shape/mxLabel-js.html#mxLabel.createHtml" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape.createHtml" target=_parent class=IParent>mxRectangleShape</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.createHtml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.createHtml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.createHtml" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.createHtml" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_createHtmlPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.createHtmlPane" target=_parent class=ISymbol>createHtmlPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createHtmlTable><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.createHtmlTable" target=_parent class=ISymbol>createHtmlTable</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_createIcons><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createIcons" target=_parent class=ISymbol>createIcons</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_createId><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.createId" target=_parent class=ISymbol>createId</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createIds><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.createIds" target=_parent class=ISymbol>createIds</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createImage><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.createImage" target=_parent class=ISymbol>createImage</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_createInternalCells><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.createInternalCells" target=_parent class=ISymbol>createInternalCells</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_createLabel><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.createLabel" target=_parent class=ISymbol>createLabel</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_createLayoutManager><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createLayoutManager" target=_parent class=ISymbol>createLayoutManager</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createLine><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.createLine" target=_parent class=ISymbol>createLine</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_createMarker><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createMarker')" class=ISymbol>createMarker</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createMarker" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.createMarker" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_createMenu><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.createMenu" target=_parent class=ISymbol>createMenu</a>, <span class=IParent>mxDefaultPopupMenu</span></div></div><div class=SRResult id=SR_createNode><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.createNode" target=_parent class=ISymbol>createNode</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_createPageSelector><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.createPageSelector" target=_parent class=ISymbol>createPageSelector</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_createPanningManager><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createPanningManager" target=_parent class=ISymbol>createPanningManager</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createPath><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createPath" target=_parent class=ISymbol>createPath</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createPoints><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createPoints" target=_parent class=ISymbol>createPoints</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createPopupMenu><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createPopupMenu" target=_parent class=ISymbol>createPopupMenu</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createPreviewElement><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.createPreviewElement" target=_parent class=ISymbol>createPreviewElement</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_createPreviewShape><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.createPreviewShape" target=_parent class=ISymbol>createPreviewShape</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_createProperties><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createProperties" target=_parent class=ISymbol>createProperties</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createRoot><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.createRoot" target=_parent class=ISymbol>createRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createSelectionModel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createSelectionModel" target=_parent class=ISymbol>createSelectionModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createSelectionShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createSelectionShape')" class=ISymbol>createSelectionShape</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.createSelectionShape" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.createSelectionShape" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_createSession><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createSession" target=_parent class=ISymbol>createSession</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createShape')" class=ISymbol>createShape</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.createShape" target=_parent class=IParent>mxCellHighlight</a><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.createShape" target=_parent class=IParent>mxCellRenderer</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createShape" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxImageExport-js.html#mxImageExport.createShape" target=_parent class=IParent>mxImageExport</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.createShape" target=_parent class=IParent>mxRubberband</a></div></div></div><div class=SRResult id=SR_createSizer><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createSizer')" class=ISymbol>createSizer</a><div class=ISubIndex><a href="../files/view/mxOutline-js.html#mxOutline.createSizer" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.createSizer" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_createSizerShape><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.createSizerShape" target=_parent class=ISymbol>createSizerShape</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_createState><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.createState" target=_parent class=ISymbol>createState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createStylesheet><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createStylesheet" target=_parent class=ISymbol>createStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createSubmenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.createSubmenu" target=_parent class=ISymbol>createSubmenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_createSvg><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createSvg')" class=ISymbol>createSvg</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.createSvg" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxArrow-js.html#mxArrow.createSvg" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxConnector-js.html#mxConnector.createSvg" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.createSvg" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.createSvg" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.createSvg" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxLabel-js.html#mxLabel.createSvg" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxLine-js.html#mxLine.createSvg" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.createSvg" target=_parent class=IParent>mxPolyline</a><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape.createSvg" target=_parent class=IParent>mxRectangleShape</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.createSvg" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.createSvg" target=_parent class=IParent>mxStencilShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.createSvg" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.createSvg" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_createSvgGradient><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createSvgGradient" target=_parent class=ISymbol>createSvgGradient</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createSvgGroup><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createSvgGroup" target=_parent class=ISymbol>createSvgGroup</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createSvgPipe><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createSvgPipe" target=_parent class=ISymbol>createSvgPipe</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createSvgShadow><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createSvgShadow" target=_parent class=ISymbol>createSvgShadow</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createSvgSpan><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createSvgSpan')" class=ISymbol>createSvgSpan</a><div class=ISubIndex><a href="../files/shape/mxRhombus-js.html#mxRhombus.createSvgSpan" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxText-js.html#mxText.createSvgSpan" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_createSwimlaneLayout><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createSwimlaneLayout" target=_parent class=ISymbol>createSwimlaneLayout</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createSwimlaneManager><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createSwimlaneManager" target=_parent class=ISymbol>createSwimlaneManager</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createTarget><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createTarget" target=_parent class=ISymbol>createTarget</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_createTargetVertex><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createTargetVertex" target=_parent class=ISymbol>createTargetVertex</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_createTasks><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createTasks" target=_parent class=ISymbol>createTasks</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createToolbar><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.createToolbar" target=_parent class=ISymbol>createToolbar</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_createUndoableEdit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createUndoableEdit')" class=ISymbol>createUndoableEdit</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel.createUndoableEdit" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxSession-js.html#mxSession.createUndoableEdit" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_createVertex><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.createVertex" target=_parent class=ISymbol>createVertex</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createVirtualBend><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.createVirtualBend" target=_parent class=ISymbol>createVirtualBend</a>, <span class=IParent>mxElbowEdgeHandler</span></div></div><div class=SRResult id=SR_createVml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createVml')" class=ISymbol>createVml</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.createVml" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxArrow-js.html#mxArrow.createVml" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxConnector-js.html#mxConnector.createVml" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.createVml" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.createVml" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.createVml" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxLabel-js.html#mxLabel.createVml" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxLine-js.html#mxLine.createVml" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape.createVml" target=_parent class=IParent>mxRectangleShape</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.createVml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.createVml" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.createVml" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_createVmlImage><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel.createVmlImage" target=_parent class=ISymbol>createVmlImage</a>, <span class=IParent>mxLabel</span></div></div><div class=SRResult id=SR_createVmlPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.createVmlPane" target=_parent class=ISymbol>createVmlPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createVmlShadow><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.createVmlShadow" target=_parent class=ISymbol>createVmlShadow</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_createXmlDocument><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.createXmlDocument" target=_parent class=ISymbol>createXmlDocument</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_crisp><div class=IEntry><a href="javascript:searchResults.Toggle('SR_crisp')" class=ISymbol>crisp</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.crisp" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.crisp" target=_parent class=IParent>mxGraphHandler</a><a href="../files/util/mxGuide-js.html#mxGuide.crisp" target=_parent class=IParent>mxGuide</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.crisp" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxShape-js.html#mxShape.crisp" target=_parent class=IParent>mxShape</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.crisp" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_crossingStage><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.crossingStage" target=_parent class=ISymbol>crossingStage</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_currentBestCrossings><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.currentBestCrossings" target=_parent class=ISymbol>currentBestCrossings</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_currentColor><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.currentColor" target=_parent class=ISymbol>currentColor</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_currentDropTarget><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.currentDropTarget" target=_parent class=ISymbol>currentDropTarget</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_currentDx><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.currentDx" target=_parent class=ISymbol>currentDx</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_currentDy><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.currentDy" target=_parent class=ISymbol>currentDy</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_currentEdit><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.currentEdit" target=_parent class=ISymbol>currentEdit</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_currentFileResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.currentFileResource" target=_parent class=ISymbol>currentFileResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_currentGraph><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.currentGraph" target=_parent class=ISymbol>currentGraph</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_currentGuide><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.currentGuide" target=_parent class=ISymbol>currentGuide</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_currentPoint><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.currentPoint" target=_parent class=ISymbol>currentPoint</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_currentRoot><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.currentRoot" target=_parent class=ISymbol>currentRoot</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_currentX><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.currentX" target=_parent class=ISymbol>currentX</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_currentXDelta><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.currentXDelta" target=_parent class=ISymbol>currentXDelta</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_currentY><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.currentY" target=_parent class=ISymbol>currentY</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_cursor><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.cursor" target=_parent class=ISymbol>cursor</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_CURSOR_undBEND_undHANDLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_BEND_HANDLE" target=_parent class=ISymbol>CURSOR_BEND_HANDLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_CURSOR_undCONNECT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_CONNECT" target=_parent class=ISymbol>CURSOR_CONNECT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_CURSOR_undLABEL_undHANDLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_LABEL_HANDLE" target=_parent class=ISymbol>CURSOR_LABEL_HANDLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_CURSOR_undMOVABLE_undEDGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_MOVABLE_EDGE" target=_parent class=ISymbol>CURSOR_MOVABLE_EDGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_CURSOR_undMOVABLE_undVERTEX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_MOVABLE_VERTEX" target=_parent class=ISymbol>CURSOR_MOVABLE_VERTEX</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_curveTo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_curveTo')" class=ISymbol>curveTo</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.curveTo" target=_parent class=IParent>mxPath</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.curveTo" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.curveTo" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_cut><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard.cut" target=_parent class=ISymbol>cut</a>, <span class=IParent>mxClipboard</span></div></div><div class=SRResult id=SR_cycleAttribute><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.cycleAttribute" target=_parent class=ISymbol>cycleAttribute</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_cycleAttributeIndex><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.cycleAttributeIndex" target=_parent class=ISymbol>cycleAttributeIndex</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_cycleAttributeName><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.cycleAttributeName" target=_parent class=ISymbol>cycleAttributeName</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_cycleAttributeValues><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.cycleAttributeValues" target=_parent class=ISymbol>cycleAttributeValues</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_cycleStage><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.cycleStage" target=_parent class=ISymbol>cycleStage</a>, <span class=IParent>mxHierarchicalLayout</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralD.html b/docs/js-api/search/GeneralD.html
    new file mode 100644
    index 000000000..6789165b5
    --- /dev/null
    +++ b/docs/js-api/search/GeneralD.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_damper><div class=IEntry><a href="../files/util/mxPanningManager-js.html#mxPanningManager.damper" target=_parent class=ISymbol>damper</a>, <span class=IParent>mxPanningManager</span></div></div><div class=SRResult id=SR_dblClick><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.dblClick" target=_parent class=ISymbol>dblClick</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_dblClickAction><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.dblClickAction" target=_parent class=ISymbol>dblClickAction</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_debug><div class=IEntry><a href="javascript:searchResults.Toggle('SR_debug')" class=ISymbol>debug</a><div class=ISubIndex><a href="../files/util/mxLog-js.html#mxLog.debug" target=_parent class=IParent>mxLog</a><a href="../files/util/mxSession-js.html#mxSession.debug" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR2_DEBUG><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.DEBUG" target=_parent class=ISymbol>DEBUG</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_decode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_decode')" class=ISymbol>decode</a><div class=ISubIndex><a href="../files/io/mxCodec-js.html#mxCodec.decode" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxDefaultKeyHandlerCodec-js.html#mxDefaultKeyHandlerCodec.decode" target=_parent class=IParent>mxDefaultKeyHandlerCodec</a><a href="../files/io/mxDefaultPopupMenuCodec-js.html#mxDefaultPopupMenuCodec.decode" target=_parent class=IParent>mxDefaultPopupMenuCodec</a><a href="../files/io/mxDefaultToolbarCodec-js.html#mxDefaultToolbarCodec.decode" target=_parent class=IParent>mxDefaultToolbarCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decode" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxStylesheetCodec-js.html#mxStylesheetCodec.decode" target=_parent class=IParent>mxStylesheetCodec</a></div></div></div><div class=SRResult id=SR_decodeAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeAttribute" target=_parent class=ISymbol>decodeAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeAttributes><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeAttributes" target=_parent class=ISymbol>decodeAttributes</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeCell><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.decodeCell" target=_parent class=ISymbol>decodeCell</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_decodeChanges><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.decodeChanges" target=_parent class=ISymbol>decodeChanges</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_decodeChild><div class=IEntry><a href="javascript:searchResults.Toggle('SR_decodeChild')" class=ISymbol>decodeChild</a><div class=ISubIndex><a href="../files/io/mxEditorCodec-js.html#mxEditorCodec.decodeChild" target=_parent class=IParent>mxEditorCodec</a><a href="../files/io/mxModelCodec-js.html#mxModelCodec.decodeChild" target=_parent class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeChild" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_decodeChildren><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeChildren" target=_parent class=ISymbol>decodeChildren</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeNode><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.decodeNode" target=_parent class=ISymbol>decodeNode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeRoot><div class=IEntry><a href="../files/io/mxModelCodec-js.html#mxModelCodec.decodeRoot" target=_parent class=ISymbol>decodeRoot</a>, <span class=IParent>mxModelCodec</span></div></div><div class=SRResult id=SR_decodeTemplates><div class=IEntry><a href="../files/io/mxEditorCodec-js.html#mxEditorCodec.decodeTemplates" target=_parent class=ISymbol>decodeTemplates</a>, <span class=IParent>mxEditorCodec</span></div></div><div class=SRResult id=SR_DEFAULT_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_FONTFAMILY" target=_parent class=ISymbol>DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undFONTSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_FONTSIZE" target=_parent class=ISymbol>DEFAULT_FONTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undHOTSPOT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_HOTSPOT" target=_parent class=ISymbol>DEFAULT_HOTSPOT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undIMAGESIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_IMAGESIZE" target=_parent class=ISymbol>DEFAULT_IMAGESIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undINVALID_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_INVALID_COLOR" target=_parent class=ISymbol>DEFAULT_INVALID_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undMARKERSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_MARKERSIZE" target=_parent class=ISymbol>DEFAULT_MARKERSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undSTARTSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_STARTSIZE" target=_parent class=ISymbol>DEFAULT_STARTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undVALID_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_VALID_COLOR" target=_parent class=ISymbol>DEFAULT_VALID_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_defaultEdge><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.defaultEdge" target=_parent class=ISymbol>defaultEdge</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_defaultEdgeShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.defaultEdgeShape" target=_parent class=ISymbol>defaultEdgeShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_defaultEdgeStyle><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.defaultEdgeStyle" target=_parent class=ISymbol>defaultEdgeStyle</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_defaultGroup><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.defaultGroup" target=_parent class=ISymbol>defaultGroup</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_defaultLanguage><div class=IEntry><a href="../files/mxClient-js.html#mxClient.defaultLanguage" target=_parent class=ISymbol>defaultLanguage</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_defaultLoopStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.defaultLoopStyle" target=_parent class=ISymbol>defaultLoopStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_defaultOpacity><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.defaultOpacity" target=_parent class=ISymbol>defaultOpacity</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_defaultOverlap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_defaultOverlap')" class=ISymbol>defaultOverlap</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.defaultOverlap" target=_parent class=IParent>mxCellOverlay</a><a href="../files/view/mxGraph-js.html#mxGraph.defaultOverlap" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_defaultParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.defaultParent" target=_parent class=ISymbol>defaultParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_defaultShapes><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.defaultShapes" target=_parent class=ISymbol>defaultShapes</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_defaultVertexShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.defaultVertexShape" target=_parent class=ISymbol>defaultVertexShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_delay><div class=IEntry><a href="javascript:searchResults.Toggle('SR_delay')" class=ISymbol>delay</a><div class=ISubIndex><a href="../files/util/mxAnimation-js.html#mxAnimation.delay" target=_parent class=IParent>mxAnimation</a><a href="../files/util/mxPanningManager-js.html#mxPanningManager.delay" target=_parent class=IParent>mxPanningManager</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.delay" target=_parent class=IParent>mxTooltipHandler</a></div></div></div><div class=SRResult id=SR_deltas><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.deltas" target=_parent class=ISymbol>deltas</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_desc><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.desc" target=_parent class=ISymbol>desc</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_destroy><div class=IEntry><a href="javascript:searchResults.Toggle('SR_destroy')" class=ISymbol>destroy</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.destroy" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/view/mxCellEditor-js.html#mxCellEditor.destroy" target=_parent class=IParent>mxCellEditor</a><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.destroy" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.destroy" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.destroy" target=_parent class=IParent>mxCellRenderer</a><a href="../files/view/mxCellState-js.html#mxCellState.destroy" target=_parent class=IParent>mxCellState</a><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.destroy" target=_parent class=IParent>mxCellTracker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.destroy" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.destroy" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.destroy" target=_parent class=IParent>mxDefaultKeyHandler</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.destroy" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.destroy" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/editor/mxEditor-js.html#mxEditor.destroy" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.destroy" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.destroy" target=_parent class=IParent>mxGraphHandler</a><a href="../files/view/mxGraphView-js.html#mxGraphView.destroy" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxGuide-js.html#mxGuide.destroy" target=_parent class=IParent>mxGuide</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.destroy" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.destroy" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxOutline-js.html#mxOutline.destroy" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.destroy" target=_parent class=IParent>mxPanningHandler</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.destroy" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.destroy" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.destroy" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/shape/mxShape-js.html#mxShape.destroy" target=_parent class=IParent>mxShape</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.destroy" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.destroy" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.destroy" target=_parent class=IParent>mxTemporaryCellStates</a><a href="../files/shape/mxText-js.html#mxText.destroy" target=_parent class=IParent>mxText</a><a href="../files/util/mxToolbar-js.html#mxToolbar.destroy" target=_parent class=IParent>mxToolbar</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.destroy" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.destroy" target=_parent class=IParent>mxVertexHandler</a><a href="../files/util/mxWindow-js.html#mxWindow.destroy" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR2_DESTROY><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.DESTROY" target=_parent class=ISymbol>DESTROY</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_destroyIcons><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.destroyIcons" target=_parent class=ISymbol>destroyIcons</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_destroyOnClose><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.destroyOnClose" target=_parent class=ISymbol>destroyOnClose</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_destroyShapes><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.destroyShapes" target=_parent class=ISymbol>destroyShapes</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_deterministic><div class=IEntry><a href="javascript:searchResults.Toggle('SR_deterministic')" class=ISymbol>deterministic</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.deterministic" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.deterministic" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_dfs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_dfs')" class=ISymbol>dfs</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.dfs" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.dfs" target=_parent class=IParent>mxGraphHierarchyModel</a></div></div></div><div class=SRResult id=SR_dfsCount><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.dfsCount" target=_parent class=ISymbol>dfsCount</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_dialect><div class=IEntry><a href="javascript:searchResults.Toggle('SR_dialect')" class=ISymbol>dialect</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.dialect" target=_parent class=IParent>mxGraph</a><a href="../files/shape/mxShape-js.html#mxShape.dialect" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_DIALECT_undMIXEDHTML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_MIXEDHTML" target=_parent class=ISymbol>DIALECT_MIXEDHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIALECT_undPREFERHTML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_PREFERHTML" target=_parent class=ISymbol>DIALECT_PREFERHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIALECT_undSTRICTHTML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_STRICTHTML" target=_parent class=ISymbol>DIALECT_STRICTHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIALECT_undSVG><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_SVG" target=_parent class=ISymbol>DIALECT_SVG</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIALECT_undVML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_VML" target=_parent class=ISymbol>DIALECT_VML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_die><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.die" target=_parent class=ISymbol>die</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_DIRECTION_undEAST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_EAST" target=_parent class=ISymbol>DIRECTION_EAST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undALL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_ALL" target=_parent class=ISymbol>DIRECTION_MASK_ALL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undEAST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_EAST" target=_parent class=ISymbol>DIRECTION_MASK_EAST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undNONE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_NONE" target=_parent class=ISymbol>DIRECTION_MASK_NONE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undNORTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_NORTH" target=_parent class=ISymbol>DIRECTION_MASK_NORTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undSOUTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_SOUTH" target=_parent class=ISymbol>DIRECTION_MASK_SOUTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undWEST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_WEST" target=_parent class=ISymbol>DIRECTION_MASK_WEST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undNORTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_NORTH" target=_parent class=ISymbol>DIRECTION_NORTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undSOUTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_SOUTH" target=_parent class=ISymbol>DIRECTION_SOUTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undWEST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_WEST" target=_parent class=ISymbol>DIRECTION_WEST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_disableContextMenu><div class=IEntry><a href="javascript:searchResults.Toggle('SR_disableContextMenu')" class=ISymbol>disableContextMenu</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.disableContextMenu" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxEvent-js.html#mxEvent.disableContextMenu" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_disableEdgeStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_disableEdgeStyle')" class=ISymbol>disableEdgeStyle</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.disableEdgeStyle" target=_parent class=IParent>mxCircleLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.disableEdgeStyle" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.disableEdgeStyle" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_disconnect><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxChildChange.disconnect" target=_parent class=ISymbol>disconnect</a>, <span class=IParent>mxChildChange</span></div></div><div class=SRResult id=SR2_DISCONNECT><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_DISCONNECT')" class=ISymbol>DISCONNECT</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.DISCONNECT" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.DISCONNECT" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_disconnectGraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.disconnectGraph" target=_parent class=ISymbol>disconnectGraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_disconnectOnMove><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.disconnectOnMove" target=_parent class=ISymbol>disconnectOnMove</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_dispose><div class=IEntry><a href="../files/mxClient-js.html#mxClient.dispose" target=_parent class=ISymbol>dispose</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_dispX><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.dispX" target=_parent class=ISymbol>dispX</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_dispY><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.dispY" target=_parent class=ISymbol>dispY</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_div><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.div" target=_parent class=ISymbol>div</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_document><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.document" target=_parent class=ISymbol>document</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_DONE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.DONE" target=_parent class=ISymbol>DONE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_doneResource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_doneResource')" class=ISymbol>doneResource</a><div class=ISubIndex><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.doneResource" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/view/mxGraphView-js.html#mxGraphView.doneResource" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_DOUBLE_undCLICK><div class=IEntry><a href="javascript:searchResults.Toggle('SR_DOUBLE_undCLICK')" class=ISymbol>DOUBLE_CLICK</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.DOUBLE_CLICK" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.DOUBLE_CLICK" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_doubleClickOrientationResource><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.doubleClickOrientationResource" target=_parent class=ISymbol>doubleClickOrientationResource</a>, <span class=IParent>mxElbowEdgeHandler</span></div></div><div class=SRResult id=SR_doubleTapEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.doubleTapEnabled" target=_parent class=ISymbol>doubleTapEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_doubleTapTimeout><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.doubleTapTimeout" target=_parent class=ISymbol>doubleTapTimeout</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_doubleTapTolerance><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.doubleTapTolerance" target=_parent class=ISymbol>doubleTapTolerance</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_DOWN><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.DOWN" target=_parent class=ISymbol>DOWN</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_dragElement><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragElement" target=_parent class=ISymbol>dragElement</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_dragEnter><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragEnter" target=_parent class=ISymbol>dragEnter</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_dragExit><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragExit" target=_parent class=ISymbol>dragExit</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_dragOffset><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragOffset" target=_parent class=ISymbol>dragOffset</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_dragOver><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragOver" target=_parent class=ISymbol>dragOver</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_drawGlass><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawGlass" target=_parent class=ISymbol>drawGlass</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawHighlight><div class=IEntry><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.drawHighlight" target=_parent class=ISymbol>drawHighlight</a>, <span class=IParent>mxCellHighlight</span></div></div><div class=SRResult id=SR_drawImage><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawImage" target=_parent class=ISymbol>drawImage</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawLabel><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawLabel" target=_parent class=ISymbol>drawLabel</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawLabelBackground><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawLabelBackground" target=_parent class=ISymbol>drawLabelBackground</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawMarker><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawMarker" target=_parent class=ISymbol>drawMarker</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawNode><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.drawNode" target=_parent class=ISymbol>drawNode</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_drawOverlays><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawOverlays" target=_parent class=ISymbol>drawOverlays</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_drawPreview><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawPreview')" class=ISymbol>drawPreview</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.drawPreview" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.drawPreview" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.drawPreview" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_drawShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawShape')" class=ISymbol>drawShape</a><div class=ISubIndex><a href="../files/util/mxImageExport-js.html#mxImageExport.drawShape" target=_parent class=IParent>mxImageExport</a><a href="../files/shape/mxStencil-js.html#mxStencil.drawShape" target=_parent class=IParent>mxStencil</a></div></div></div><div class=SRResult id=SR_drawState><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.drawState" target=_parent class=ISymbol>drawState</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_Drilldown><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Drilldown" target=_parent class=ISymbol>Drilldown</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_drillHandler><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.drillHandler" target=_parent class=ISymbol>drillHandler</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_drop><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drop')" class=ISymbol>drop</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.drop" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/util/mxDragSource-js.html#mxDragSource.drop" target=_parent class=IParent>mxDragSource</a></div></div></div><div class=SRResult id=SR_DROP_undTARGET_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DROP_TARGET_COLOR" target=_parent class=ISymbol>DROP_TARGET_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_dropEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.dropEnabled" target=_parent class=ISymbol>dropEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_dropHandler><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dropHandler" target=_parent class=ISymbol>dropHandler</a>, <span class=IParent>mxDragSource</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralE.html b/docs/js-api/search/GeneralE.html
    new file mode 100644
    index 000000000..1ddc42b15
    --- /dev/null
    +++ b/docs/js-api/search/GeneralE.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ease><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.ease" target=_parent class=ISymbol>ease</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_edge><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.edge" target=_parent class=ISymbol>edge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_EDGE_undSELECTION_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGE_SELECTION_COLOR" target=_parent class=ISymbol>EDGE_SELECTION_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGE_undSELECTION_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGE_SELECTION_STROKEWIDTH" target=_parent class=ISymbol>EDGE_SELECTION_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_edgeLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.edgeLabelsMovable" target=_parent class=ISymbol>edgeLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_edgeMapper><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.edgeMapper" target=_parent class=ISymbol>edgeMapper</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_edgeRouting><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.edgeRouting" target=_parent class=ISymbol>edgeRouting</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_edges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_edges')" class=ISymbol>edges</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.edges" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.edges" target=_parent class=IParent>mxGraphHierarchyEdge</a></div></div></div><div class=SRResult id=SR_edgeState><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.edgeState" target=_parent class=ISymbol>edgeState</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_edgeStyle><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.edgeStyle" target=_parent class=ISymbol>edgeStyle</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_EDGESTYLE_undELBOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_ELBOW" target=_parent class=ISymbol>EDGESTYLE_ELBOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undENTITY_undRELATION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_ENTITY_RELATION" target=_parent class=ISymbol>EDGESTYLE_ENTITY_RELATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undLOOP><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_LOOP" target=_parent class=ISymbol>EDGESTYLE_LOOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undORTHOGONAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_ORTHOGONAL" target=_parent class=ISymbol>EDGESTYLE_ORTHOGONAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_SEGMENT" target=_parent class=ISymbol>EDGESTYLE_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undSIDETOSIDE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_SIDETOSIDE" target=_parent class=ISymbol>EDGESTYLE_SIDETOSIDE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undTOPTOBOTTOM><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_TOPTOBOTTOM" target=_parent class=ISymbol>EDGESTYLE_TOPTOBOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_editingCell><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.editingCell" target=_parent class=ISymbol>editingCell</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_editor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_editor')" class=ISymbol>editor</a><div class=ISubIndex><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.editor" target=_parent class=IParent>mxDefaultKeyHandler</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.editor" target=_parent class=IParent>mxDefaultToolbar</a></div></div></div><div class=SRResult id=SR_ELBOW_undHORIZONTAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ELBOW_HORIZONTAL" target=_parent class=ISymbol>ELBOW_HORIZONTAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ELBOW_undVERTICAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ELBOW_VERTICAL" target=_parent class=ISymbol>ELBOW_VERTICAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ElbowConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.ElbowConnector" target=_parent class=ISymbol>ElbowConnector</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_element><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.element" target=_parent class=ISymbol>element</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_ellipse><div class=IEntry><a href="javascript:searchResults.Toggle('SR_ellipse')" class=ISymbol>ellipse</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.ellipse" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.ellipse" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_EllipsePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter.EllipsePerimeter" target=_parent class=ISymbol>EllipsePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_EMPTY_undARRAY><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.EMPTY_ARRAY" target=_parent class=ISymbol>EMPTY_ARRAY</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_emptyLabelText><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.emptyLabelText" target=_parent class=ISymbol>emptyLabelText</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_enabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_enabled')" class=ISymbol>enabled</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.enabled" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.enabled" target=_parent class=IParent>mxCellMarker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.enabled" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.enabled" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.enabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.enabled" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.enabled" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.enabled" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.enabled" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxOutline-js.html#mxOutline.enabled" target=_parent class=IParent>mxOutline</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.enabled" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.enabled" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.enabled" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.enabled" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.enabled" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/util/mxToolbar-js.html#mxToolbar.enabled" target=_parent class=IParent>mxToolbar</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.enabled" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.enabled" target=_parent class=IParent>mxUrlConverter</a></div></div></div><div class=SRResult id=SR_enableFill><div class=IEntry><a href="../files/shape/mxArrow-js.html#mxArrow.enableFill" target=_parent class=ISymbol>enableFill</a>, <span class=IParent>mxArrow</span></div></div><div class=SRResult id=SR_encode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_encode')" class=ISymbol>encode</a><div class=ISubIndex><a href="../files/io/mxCodec-js.html#mxCodec.encode" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxDefaultKeyHandlerCodec-js.html#mxDefaultKeyHandlerCodec.encode" target=_parent class=IParent>mxDefaultKeyHandlerCodec</a><a href="../files/io/mxDefaultPopupMenuCodec-js.html#mxDefaultPopupMenuCodec.encode" target=_parent class=IParent>mxDefaultPopupMenuCodec</a><a href="../files/io/mxDefaultToolbarCodec-js.html#mxDefaultToolbarCodec.encode" target=_parent class=IParent>mxDefaultToolbarCodec</a><a href="../files/io/mxGraphViewCodec-js.html#mxGraphViewCodec.encode" target=_parent class=IParent>mxGraphViewCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.encode" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxStylesheetCodec-js.html#mxStylesheetCodec.encode" target=_parent class=IParent>mxStylesheetCodec</a></div></div></div><div class=SRResult id=SR_encodeCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_encodeCell')" class=ISymbol>encodeCell</a><div class=ISubIndex><a href="../files/io/mxCodec-js.html#mxCodec.encodeCell" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxGraphViewCodec-js.html#mxGraphViewCodec.encodeCell" target=_parent class=IParent>mxGraphViewCodec</a></div></div></div><div class=SRResult id=SR_encodeChanges><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.encodeChanges" target=_parent class=ISymbol>encodeChanges</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_encodeDefaults><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.encodeDefaults" target=_parent class=ISymbol>encodeDefaults</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_encodeObject><div class=IEntry><a href="javascript:searchResults.Toggle('SR_encodeObject')" class=ISymbol>encodeObject</a><div class=ISubIndex><a href="../files/io/mxModelCodec-js.html#mxModelCodec.encodeObject" target=_parent class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.encodeObject" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_encodeValue><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.encodeValue" target=_parent class=ISymbol>encodeValue</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_end><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.end" target=_parent class=ISymbol>end</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_END_undUPDATE><div class=IEntry><a href="javascript:searchResults.Toggle('SR_END_undUPDATE')" class=ISymbol>END_UPDATE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.END_UPDATE" target=_parent class=IParent>mxEvent</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.END_UPDATE" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_endingUpdate><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.endingUpdate" target=_parent class=ISymbol>endingUpdate</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_endOffset><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.endOffset" target=_parent class=ISymbol>endOffset</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_endUpdate><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.endUpdate" target=_parent class=ISymbol>endUpdate</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_enter><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.enter" target=_parent class=ISymbol>enter</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_enterGroup><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.enterGroup" target=_parent class=ISymbol>enterGroup</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_enterStopsCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.enterStopsCellEditing" target=_parent class=ISymbol>enterStopsCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_ENTITY_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ENTITY_SEGMENT" target=_parent class=ISymbol>ENTITY_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EntityRelation><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.EntityRelation" target=_parent class=ISymbol>EntityRelation</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_equalEntries><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.equalEntries" target=_parent class=ISymbol>equalEntries</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_equalPoints><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.equalPoints" target=_parent class=ISymbol>equalPoints</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_equals><div class=IEntry><a href="javascript:searchResults.Toggle('SR_equals')" class=ISymbol>equals</a><div class=ISubIndex><a href="../files/util/mxPoint-js.html#mxPoint.equals" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxRectangle-js.html#mxRectangle.equals" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_error><div class=IEntry><a href="javascript:searchResults.Toggle('SR_error')" class=ISymbol>error</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.error" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.error" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/util/mxUtils-js.html#mxUtils.error" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_errorImage><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.errorImage" target=_parent class=ISymbol>errorImage</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_errorResource><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.errorResource" target=_parent class=ISymbol>errorResource</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_escape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_escape')" class=ISymbol>escape</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.escape" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.escape" target=_parent class=IParent>mxKeyHandler</a></div></div></div><div class=SRResult id=SR2_ESCAPE><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_ESCAPE')" class=ISymbol>ESCAPE</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.ESCAPE" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.ESCAPE" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_escapeEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.escapeEnabled" target=_parent class=ISymbol>escapeEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_escapePostData><div class=IEntry><a href="javascript:searchResults.Toggle('SR_escapePostData')" class=ISymbol>escapePostData</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.escapePostData" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSession-js.html#mxSession.escapePostData" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_eval><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.eval" target=_parent class=ISymbol>eval</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_evaluateAttribute><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.evaluateAttribute" target=_parent class=ISymbol>evaluateAttribute</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_Event_spcprocessing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Event_processing" target=_parent class=ISymbol>Event processing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_eventListeners><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.eventListeners" target=_parent class=ISymbol>eventListeners</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_Events><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Events')" class=ISymbol>Events</a><div class=ISubIndex><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.Events" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.Events" target=_parent class=IParent>mxCellOverlay</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.Events" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.Events" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.Events" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.Events" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/view/mxGraphView-js.html#mxGraphView.Events" target=_parent class=IParent>mxGraphView</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.Events" target=_parent class=IParent>mxLayoutManager</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.Events" target=_parent class=IParent>mxPanningHandler</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.Events" target=_parent class=IParent>mxPopupMenu</a><a href="../files/util/mxSession-js.html#mxSession.Events" target=_parent class=IParent>mxSession</a><a href="../files/util/mxToolbar-js.html#mxToolbar.Events" target=_parent class=IParent>mxToolbar</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.Events" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR_eventsEnabled><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.eventsEnabled" target=_parent class=ISymbol>eventsEnabled</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_eventSource><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.eventSource" target=_parent class=ISymbol>eventSource</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_evt><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.evt" target=_parent class=ISymbol>evt</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_exclude><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.exclude" target=_parent class=ISymbol>exclude</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_execute><div class=IEntry><a href="javascript:searchResults.Toggle('SR_execute')" class=ISymbol>execute</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxCellAttributeChange.execute" target=_parent class=IParent>mxCellAttributeChange</a><a href="../files/model/mxGraphModel-js.html#mxChildChange.execute" target=_parent class=IParent>mxChildChange</a><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.execute" target=_parent class=IParent>mxCircleLayout</a><a href="../files/model/mxGraphModel-js.html#mxCollapseChange.execute" target=_parent class=IParent>mxCollapseChange</a><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.execute" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.execute" target=_parent class=IParent>mxCompositeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.execute" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/view/mxGraphView-js.html#mxCurrentRootChange.execute" target=_parent class=IParent>mxCurrentRootChange</a><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout.execute" target=_parent class=IParent>mxEdgeLabelLayout</a><a href="../files/editor/mxEditor-js.html#mxEditor.execute" target=_parent class=IParent>mxEditor</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.execute" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/model/mxGraphModel-js.html#mxGeometryChange.execute" target=_parent class=IParent>mxGeometryChange</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.execute" target=_parent class=IParent>mxGraphLayout</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.execute" target=_parent class=IParent>mxGraphModel</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.execute" target=_parent class=IParent>mxHierarchicalLayout</a><a href="../files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html#mxHierarchicalLayoutStage.execute" target=_parent class=IParent>mxHierarchicalLayoutStage</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.execute" target=_parent class=IParent>mxMedianHybridCrossingReduction</a><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover.execute" target=_parent class=IParent>mxMinimumCycleRemover</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.execute" target=_parent class=IParent>mxParallelEdgeLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.execute" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/model/mxGraphModel-js.html#mxRootChange.execute" target=_parent class=IParent>mxRootChange</a><a href="../files/view/mxGraphSelectionModel-js.html#mxSelectionChange.execute" target=_parent class=IParent>mxSelectionChange</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.execute" target=_parent class=IParent>mxStackLayout</a><a href="../files/model/mxGraphModel-js.html#mxStyleChange.execute" target=_parent class=IParent>mxStyleChange</a><a href="../files/model/mxGraphModel-js.html#mxTerminalChange.execute" target=_parent class=IParent>mxTerminalChange</a><a href="../files/model/mxGraphModel-js.html#mxValueChange.execute" target=_parent class=IParent>mxValueChange</a><a href="../files/model/mxGraphModel-js.html#mxVisibleChange.execute" target=_parent class=IParent>mxVisibleChange</a></div></div></div><div class=SRResult id=SR2_EXECUTE><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_EXECUTE')" class=ISymbol>EXECUTE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.EXECUTE" target=_parent class=IParent>mxEvent</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.EXECUTE" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_executeLayout><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.executeLayout" target=_parent class=ISymbol>executeLayout</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_exitGroup><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.exitGroup" target=_parent class=ISymbol>exitGroup</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_expandedImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.expandedImage" target=_parent class=ISymbol>expandedImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_exportEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.exportEnabled" target=_parent class=ISymbol>exportEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_extend><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.extend" target=_parent class=ISymbol>extend</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_extendedDfs><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.extendedDfs" target=_parent class=ISymbol>extendedDfs</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_extendParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.extendParent" target=_parent class=ISymbol>extendParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_extendParents><div class=IEntry><a href="javascript:searchResults.Toggle('SR_extendParents')" class=ISymbol>extendParents</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.extendParents" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.extendParents" target=_parent class=IParent>mxSpaceManager</a></div></div></div><div class=SRResult id=SR_extendParentsOnAdd><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.extendParentsOnAdd" target=_parent class=ISymbol>extendParentsOnAdd</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralF.html b/docs/js-api/search/GeneralF.html
    new file mode 100644
    index 000000000..010c5f42d
    --- /dev/null
    +++ b/docs/js-api/search/GeneralF.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_factoryMethod><div class=IEntry><a href="javascript:searchResults.Toggle('SR_factoryMethod')" class=ISymbol>factoryMethod</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.factoryMethod" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.factoryMethod" target=_parent class=IParent>mxPopupMenu</a></div></div></div><div class=SRResult id=SR_fadeOut><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fadeOut')" class=ISymbol>fadeOut</a><div class=ISubIndex><a href="../files/util/mxEffects-js.html#mxEffects.fadeOut" target=_parent class=IParent>mxEffects</a><a href="../files/util/mxUtils-js.html#mxUtils.fadeOut" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_fgNodes><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.fgNodes" target=_parent class=ISymbol>fgNodes</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_FIELD_undNAME><div class=IEntry><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.FIELD_NAME" target=_parent class=ISymbol>FIELD_NAME</a>, <span class=IParent>mxObjectIdentity</span></div></div><div class=SRResult id=SR_filename><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.filename" target=_parent class=ISymbol>filename</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_fill><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fill')" class=ISymbol>fill</a><div class=ISubIndex><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.fill" target=_parent class=IParent>mxStackLayout</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.fill" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.fill" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_fillstroke><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fillstroke')" class=ISymbol>fillstroke</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.fillstroke" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.fillstroke" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_filterCells><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.filterCells" target=_parent class=ISymbol>filterCells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_filterDescendants><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.filterDescendants" target=_parent class=ISymbol>filterDescendants</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_findNearestSegment><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.findNearestSegment" target=_parent class=ISymbol>findNearestSegment</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_findNode><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.findNode" target=_parent class=ISymbol>findNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_findNodeByAttribute><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.findNodeByAttribute" target=_parent class=ISymbol>findNodeByAttribute</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_findParallels><div class=IEntry><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.findParallels" target=_parent class=ISymbol>findParallels</a>, <span class=IParent>mxParallelEdgeLayout</span></div></div><div class=SRResult id=SR_findTreeRoots><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.findTreeRoots" target=_parent class=ISymbol>findTreeRoots</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_fineTuning><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fineTuning')" class=ISymbol>fineTuning</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.fineTuning" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.fineTuning" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_FIRED><div class=IEntry><a href="javascript:searchResults.Toggle('SR_FIRED')" class=ISymbol>FIRED</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.FIRED" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.FIRED" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_fireEvent><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.fireEvent" target=_parent class=ISymbol>fireEvent</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_fireMouseEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.fireMouseEvent" target=_parent class=ISymbol>fireMouseEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_first><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.first" target=_parent class=ISymbol>first</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_fit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fit')" class=ISymbol>fit</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.fit" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.fit" target=_parent class=IParent>mxUtils</a><a href="../files/util/mxWindow-js.html#mxWindow.fit" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_fixRanks><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.fixRanks" target=_parent class=ISymbol>fixRanks</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_fixRoots><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.fixRoots" target=_parent class=ISymbol>fixRoots</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_FLIP_undEDGE><div class=IEntry><a href="javascript:searchResults.Toggle('SR_FLIP_undEDGE')" class=ISymbol>FLIP_EDGE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.FLIP_EDGE" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.FLIP_EDGE" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_flipEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.flipEdge" target=_parent class=ISymbol>flipEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_focusLost><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.focusLost" target=_parent class=ISymbol>focusLost</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_foEnabled><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.foEnabled" target=_parent class=ISymbol>foEnabled</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_FOLD_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_FOLD_undCELLS')" class=ISymbol>FOLD_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.FOLD_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.FOLD_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_foldCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.foldCells" target=_parent class=ISymbol>foldCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_foldHandler><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.foldHandler" target=_parent class=ISymbol>foldHandler</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_Folding><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Folding" target=_parent class=ISymbol>Folding</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_foldingEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.foldingEnabled" target=_parent class=ISymbol>foldingEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_FONT_undBOLD><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.FONT_BOLD" target=_parent class=ISymbol>FONT_BOLD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undITALIC><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.FONT_ITALIC" target=_parent class=ISymbol>FONT_ITALIC</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undSHADOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.FONT_SHADOW" target=_parent class=ISymbol>FONT_SHADOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undUNDERLINE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.FONT_UNDERLINE" target=_parent class=ISymbol>FONT_UNDERLINE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_forceConstant><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.forceConstant" target=_parent class=ISymbol>forceConstant</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_forceConstantSquared><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.forceConstantSquared" target=_parent class=ISymbol>forceConstantSquared</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_forcedInserting><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.forcedInserting" target=_parent class=ISymbol>forcedInserting</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_forceIgnoreStringSize><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.forceIgnoreStringSize" target=_parent class=ISymbol>forceIgnoreStringSize</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_format><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.format" target=_parent class=ISymbol>format</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_formOrderedHierarchy><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.formOrderedHierarchy" target=_parent class=ISymbol>formOrderedHierarchy</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_Functions><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Functions')" class=ISymbol>Functions</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#Functions" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.Functions" target=_parent class=IParent>MedianCellSorter</a><a href="../files/shape/mxActor-js.html#mxActor.Functions" target=_parent class=IParent>mxActor</a><a href="../files/util/mxAnimation-js.html#mxAnimation.Functions" target=_parent class=IParent>mxAnimation</a><a href="../files/shape/mxArrow-js.html#mxArrow.Functions" target=_parent class=IParent>mxArrow</a><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.Functions" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/model/mxCell-js.html#mxCell.Functions" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxCellAttributeChange.Functions" target=_parent class=IParent>mxCellAttributeChange</a><a href="../files/io/mxCellCodec-js.html#mxCellCodec.Functions" target=_parent class=IParent>mxCellCodec</a><a href="../files/view/mxCellEditor-js.html#mxCellEditor.Functions" target=_parent class=IParent>mxCellEditor</a><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.Functions" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.Functions" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.Functions" target=_parent class=IParent>mxCellOverlay</a><a href="../files/model/mxCellPath-js.html#mxCellPath.Functions" target=_parent class=IParent>mxCellPath</a><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.Functions" target=_parent class=IParent>mxCellRenderer</a><a href="../files/view/mxCellState-js.html#mxCellState.Functions" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.Functions" target=_parent class=IParent>mxCellStatePreview</a><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.Functions" target=_parent class=IParent>mxCellTracker</a><a href="../files/model/mxGraphModel-js.html#mxChildChange.Functions" target=_parent class=IParent>mxChildChange</a><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec.Functions" target=_parent class=IParent>mxChildChangeCodec</a><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.Functions" target=_parent class=IParent>mxCircleLayout</a><a href="../files/mxClient-js.html#mxClient.Functions" target=_parent class=IParent>mxClient</a><a href="../files/util/mxClipboard-js.html#mxClipboard.Functions" target=_parent class=IParent>mxClipboard</a><a href="../files/shape/mxCloud-js.html#mxCloud.Functions" target=_parent class=IParent>mxCloud</a><a href="../files/io/mxCodec-js.html#mxCodec.Functions" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.Functions" target=_parent class=IParent>mxCodecRegistry</a><a href="../files/model/mxGraphModel-js.html#mxCollapseChange.Functions" target=_parent class=IParent>mxCollapseChange</a><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.Functions" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.Functions" target=_parent class=IParent>mxCompositeLayout</a><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint.Functions" target=_parent class=IParent>mxConnectionConstraint</a><a href="../files/shape/mxConnector-js.html#mxConnector.Functions" target=_parent class=IParent>mxConnector</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.Functions" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.Functions" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/view/mxGraphView-js.html#mxCurrentRootChange.Functions" target=_parent class=IParent>mxCurrentRootChange</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.Functions" target=_parent class=IParent>mxCylinder</a><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.Functions" target=_parent class=IParent>mxDefaultKeyHandler</a><a href="../files/io/mxDefaultKeyHandlerCodec-js.html#mxDefaultKeyHandlerCodec.Functions" target=_parent class=IParent>mxDefaultKeyHandlerCodec</a><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.Functions" target=_parent class=IParent>mxDefaultPopupMenu</a><a href="../files/io/mxDefaultPopupMenuCodec-js.html#mxDefaultPopupMenuCodec.Functions" target=_parent class=IParent>mxDefaultPopupMenuCodec</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.Functions" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/io/mxDefaultToolbarCodec-js.html#mxDefaultToolbarCodec.Functions" target=_parent class=IParent>mxDefaultToolbarCodec</a><a href="../files/util/mxDictionary-js.html#mxDictionary.Functions" target=_parent class=IParent>mxDictionary</a><a href="../files/util/mxDivResizer-js.html#mxDivResizer.Functions" target=_parent class=IParent>mxDivResizer</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.Functions" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/util/mxDragSource-js.html#mxDragSource.Functions" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.Functions" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout.Functions" target=_parent class=IParent>mxEdgeLabelLayout</a><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.Functions" target=_parent class=IParent>mxEdgeStyle</a><a href="../files/io/mxEditorCodec-js.html#mxEditorCodec.Functions" target=_parent class=IParent>mxEditorCodec</a><a href="../files/util/mxEffects-js.html#mxEffects.Functions" target=_parent class=IParent>mxEffects</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.Functions" target=_parent class=IParent>mxElbowEdgeHandler</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.Functions" target=_parent class=IParent>mxEllipse</a><a href="../files/util/mxEvent-js.html#mxEvent.Functions" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventObject-js.html#mxEventObject.Functions" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxEventSource-js.html#mxEventSource.Functions" target=_parent class=IParent>mxEventSource</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.Functions" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/util/mxForm-js.html#mxForm.Functions" target=_parent class=IParent>mxForm</a><a href="../files/io/mxGenericChangeCodec-js.html#mxGenericChangeCodec.Functions" target=_parent class=IParent>mxGenericChangeCodec</a><a href="../files/model/mxGeometry-js.html#mxGeometry.Functions" target=_parent class=IParent>mxGeometry</a><a href="../files/model/mxGraphModel-js.html#mxGeometryChange.Functions" target=_parent class=IParent>mxGeometryChange</a><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.Functions" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.Functions" target=_parent class=IParent>mxGraphHandler</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.Functions" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.Functions" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.Functions" target=_parent class=IParent>mxGraphHierarchyNode</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.Functions" target=_parent class=IParent>mxGraphLayout</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.Functions" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.Functions" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/view/mxGraphView-js.html#mxGraphView.Functions" target=_parent class=IParent>mxGraphView</a><a href="../files/io/mxGraphViewCodec-js.html#mxGraphViewCodec.Functions" target=_parent class=IParent>mxGraphViewCodec</a><a href="../files/util/mxGuide-js.html#mxGuide.Functions" target=_parent class=IParent>mxGuide</a><a href="../files/shape/mxHexagon-js.html#mxHexagon.Functions" target=_parent class=IParent>mxHexagon</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.Functions" target=_parent class=IParent>mxHierarchicalLayout</a><a href="../files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html#mxHierarchicalLayoutStage.Functions" target=_parent class=IParent>mxHierarchicalLayoutStage</a><a href="../files/util/mxImage-js.html#mxImage.Functions" target=_parent class=IParent>mxImage</a><a href="../files/util/mxImageBundle-js.html#mxImageBundle.Functions" target=_parent class=IParent>mxImageBundle</a><a href="../files/util/mxImageExport-js.html#mxImageExport.Functions" target=_parent class=IParent>mxImageExport</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.Functions" target=_parent class=IParent>mxImageShape</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.Functions" target=_parent class=IParent>mxKeyHandler</a><a href="../files/shape/mxLabel-js.html#mxLabel.Functions" target=_parent class=IParent>mxLabel</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.Functions" target=_parent class=IParent>mxLayoutManager</a><a href="../files/shape/mxLine-js.html#mxLine.Functions" target=_parent class=IParent>mxLine</a><a href="../files/util/mxLog-js.html#mxLog.Functions" target=_parent class=IParent>mxLog</a><a href="../files/shape/mxMarker-js.html#mxMarker.Functions" target=_parent class=IParent>mxMarker</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.Functions" target=_parent class=IParent>mxMedianHybridCrossingReduction</a><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover.Functions" target=_parent class=IParent>mxMinimumCycleRemover</a><a href="../files/io/mxModelCodec-js.html#mxModelCodec.Functions" target=_parent class=IParent>mxModelCodec</a><a href="../files/util/mxMorphing-js.html#mxMorphing.Functions" target=_parent class=IParent>mxMorphing</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.Functions" target=_parent class=IParent>mxMouseEvent</a><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.Functions" target=_parent class=IParent>mxMultiplicity</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.Functions" target=_parent class=IParent>mxObjectCodec</a><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.Functions" target=_parent class=IParent>mxObjectIdentity</a><a href="../files/view/mxOutline-js.html#mxOutline.Functions" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.Functions" target=_parent class=IParent>mxPanningHandler</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.Functions" target=_parent class=IParent>mxParallelEdgeLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.Functions" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/util/mxPath-js.html#mxPath.Functions" target=_parent class=IParent>mxPath</a><a href="../files/view/mxPerimeter-js.html#mxPerimeter.Functions" target=_parent class=IParent>mxPerimeter</a><a href="../files/util/mxPoint-js.html#mxPoint.Functions" target=_parent class=IParent>mxPoint</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.Functions" target=_parent class=IParent>mxPolyline</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.Functions" target=_parent class=IParent>mxPopupMenu</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.Functions" target=_parent class=IParent>mxPrintPreview</a><a href="../files/util/mxRectangle-js.html#mxRectangle.Functions" target=_parent class=IParent>mxRectangle</a><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape.Functions" target=_parent class=IParent>mxRectangleShape</a><a href="../files/util/mxResources-js.html#mxResources.Functions" target=_parent class=IParent>mxResources</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.Functions" target=_parent class=IParent>mxRhombus</a><a href="../files/model/mxGraphModel-js.html#mxRootChange.Functions" target=_parent class=IParent>mxRootChange</a><a href="../files/io/mxRootChangeCodec-js.html#mxRootChangeCodec.Functions" target=_parent class=IParent>mxRootChangeCodec</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.Functions" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.Functions" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/view/mxGraphSelectionModel-js.html#mxSelectionChange.Functions" target=_parent class=IParent>mxSelectionChange</a><a href="../files/util/mxSession-js.html#mxSession.Functions" target=_parent class=IParent>mxSession</a><a href="../files/shape/mxShape-js.html#mxShape.Functions" target=_parent class=IParent>mxShape</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.Functions" target=_parent class=IParent>mxSpaceManager</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.Functions" target=_parent class=IParent>mxStackLayout</a><a href="../files/shape/mxStencil-js.html#mxStencil.Functions" target=_parent class=IParent>mxStencil</a><a href="../files/shape/mxStencilRegistry-js.html#mxStencilRegistry.Functions" target=_parent class=IParent>mxStencilRegistry</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.Functions" target=_parent class=IParent>mxStencilShape</a><a href="../files/model/mxGraphModel-js.html#mxStyleChange.Functions" target=_parent class=IParent>mxStyleChange</a><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.Functions" target=_parent class=IParent>mxStyleRegistry</a><a href="../files/view/mxStylesheet-js.html#mxStylesheet.Functions" target=_parent class=IParent>mxStylesheet</a><a href="../files/io/mxStylesheetCodec-js.html#mxStylesheetCodec.Functions" target=_parent class=IParent>mxStylesheetCodec</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.Functions" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.Functions" target=_parent class=IParent>mxSwimlane</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.Functions" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.Functions" target=_parent class=IParent>mxTemporaryCellStates</a><a href="../files/model/mxGraphModel-js.html#mxTerminalChange.Functions" target=_parent class=IParent>mxTerminalChange</a><a href="../files/io/mxTerminalChangeCodec-js.html#mxTerminalChangeCodec.Functions" target=_parent class=IParent>mxTerminalChangeCodec</a><a href="../files/shape/mxText-js.html#mxText.Functions" target=_parent class=IParent>mxText</a><a href="../files/util/mxToolbar-js.html#mxToolbar.Functions" target=_parent class=IParent>mxToolbar</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.Functions" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/shape/mxTriangle-js.html#mxTriangle.Functions" target=_parent class=IParent>mxTriangle</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.Functions" target=_parent class=IParent>mxUndoableEdit</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.Functions" target=_parent class=IParent>mxUndoManager</a><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.Functions" target=_parent class=IParent>mxUrlConverter</a><a href="../files/util/mxUtils-js.html#mxUtils.Functions" target=_parent class=IParent>mxUtils</a><a href="../files/model/mxGraphModel-js.html#mxValueChange.Functions" target=_parent class=IParent>mxValueChange</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.Functions" target=_parent class=IParent>mxVertexHandler</a><a href="../files/model/mxGraphModel-js.html#mxVisibleChange.Functions" target=_parent class=IParent>mxVisibleChange</a><a href="../files/util/mxWindow-js.html#mxWindow.Functions" target=_parent class=IParent>mxWindow</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.Functions" target=_parent class=IParent>mxXmlCanvas2D</a><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.Functions" target=_parent class=IParent>mxXmlRequest</a><span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.Functions" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.Functions" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralG.html b/docs/js-api/search/GeneralG.html
    new file mode 100644
    index 000000000..06cef0bb5
    --- /dev/null
    +++ b/docs/js-api/search/GeneralG.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geometry><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.geometry" target=_parent class=ISymbol>geometry</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_geometryForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.geometryForCellChanged" target=_parent class=ISymbol>geometryForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_gestureEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.gestureEnabled" target=_parent class=ISymbol>gestureEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_get><div class=IEntry><a href="javascript:searchResults.Toggle('SR_get')" class=ISymbol>get</a><div class=ISubIndex><a href="../files/util/mxDictionary-js.html#mxDictionary.get" target=_parent class=IParent>mxDictionary</a><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.get" target=_parent class=IParent>mxObjectIdentity</a><a href="../files/util/mxResources-js.html#mxResources.get" target=_parent class=IParent>mxResources</a><a href="../files/util/mxSession-js.html#mxSession.get" target=_parent class=IParent>mxSession</a><a href="../files/util/mxUtils-js.html#mxUtils.get" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR2_GET><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_GET')" class=ISymbol>GET</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.GET" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.GET" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_getAlignmentTolerance><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getAlignmentTolerance" target=_parent class=ISymbol>getAlignmentTolerance</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getAllConnectionConstraints><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getAllConnectionConstraints" target=_parent class=ISymbol>getAllConnectionConstraints</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getAllEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getAllEdges" target=_parent class=ISymbol>getAllEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getAttribute><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.getAttribute" target=_parent class=ISymbol>getAttribute</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getAttributeName><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.getAttributeName" target=_parent class=ISymbol>getAttributeName</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getBackgroundBounds><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.getBackgroundBounds" target=_parent class=ISymbol>getBackgroundBounds</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_getBackgroundImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getBackgroundImage" target=_parent class=ISymbol>getBackgroundImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getBackgroundPageBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getBackgroundPageBounds" target=_parent class=ISymbol>getBackgroundPageBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getBackgroundPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getBackgroundPane" target=_parent class=ISymbol>getBackgroundPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getBaseUrl><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.getBaseUrl" target=_parent class=ISymbol>getBaseUrl</a>, <span class=IParent>mxUrlConverter</span></div></div><div class=SRResult id=SR_getBorder><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getBorder" target=_parent class=ISymbol>getBorder</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getBoundingBox><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getBoundingBox" target=_parent class=ISymbol>getBoundingBox</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getBoundingBoxFromGeometry><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getBoundingBoxFromGeometry" target=_parent class=ISymbol>getBoundingBoxFromGeometry</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getBounds')" class=ISymbol>getBounds</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.getBounds" target=_parent class=IParent>mxCellOverlay</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getBoundsForGroup><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getBoundsForGroup" target=_parent class=ISymbol>getBoundsForGroup</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCanvas><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getCanvas" target=_parent class=ISymbol>getCanvas</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCell')" class=ISymbol>getCell</a><div class=ISubIndex><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getCell" target=_parent class=IParent>mxCellMarker</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getCell" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getCell" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_getCellAt><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellAt" target=_parent class=ISymbol>getCellAt</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCellBounds')" class=ISymbol>getCellBounds</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getCellBounds" target=_parent class=IParent>mxGraph</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.getCellBounds" target=_parent class=IParent>mxGraphLayout</a></div></div></div><div class=SRResult id=SR_getCellContainmentArea><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellContainmentArea" target=_parent class=ISymbol>getCellContainmentArea</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellForPopupEvent><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.getCellForPopupEvent" target=_parent class=ISymbol>getCellForPopupEvent</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_getCellGeometry><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellGeometry" target=_parent class=ISymbol>getCellGeometry</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellOverlays><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellOverlays" target=_parent class=ISymbol>getCellOverlays</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCells')" class=ISymbol>getCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getCells" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.getCells" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_getCellsBeyond><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellsBeyond" target=_parent class=ISymbol>getCellsBeyond</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellsForChange><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.getCellsForChange" target=_parent class=ISymbol>getCellsForChange</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_getCellsForEdit><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.getCellsForEdit" target=_parent class=ISymbol>getCellsForEdit</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_getCellsForGroup><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellsForGroup" target=_parent class=ISymbol>getCellsForGroup</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellStates><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getCellStates" target=_parent class=ISymbol>getCellStates</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getCellsToShift><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.getCellsToShift" target=_parent class=ISymbol>getCellsToShift</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_getCellStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCellStyle')" class=ISymbol>getCellStyle</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getCellStyle" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxStylesheet-js.html#mxStylesheet.getCellStyle" target=_parent class=IParent>mxStylesheet</a></div></div></div><div class=SRResult id=SR_getCellValidationError><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCellValidationError" target=_parent class=ISymbol>getCellValidationError</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCenterX><div class=IEntry><a href="../files/util/mxRectangle-js.html#mxRectangle.getCenterX" target=_parent class=ISymbol>getCenterX</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_getCenterY><div class=IEntry><a href="../files/util/mxRectangle-js.html#mxRectangle.getCenterY" target=_parent class=ISymbol>getCenterY</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_getChildAt><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildAt')" class=ISymbol>getChildAt</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getChildAt" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildAt" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildCells')" class=ISymbol>getChildCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getChildCells" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildCells" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildCount><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildCount')" class=ISymbol>getChildCount</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getChildCount" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildCount" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildEdges')" class=ISymbol>getChildEdges</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getChildEdges" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildEdges" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildNodes><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getChildNodes" target=_parent class=ISymbol>getChildNodes</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getChildOffsetForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getChildOffsetForCell" target=_parent class=ISymbol>getChildOffsetForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getChildren><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildren" target=_parent class=ISymbol>getChildren</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getChildVertices><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildVertices')" class=ISymbol>getChildVertices</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getChildVertices" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getChildVertices" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getClientX><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.getClientX" target=_parent class=ISymbol>getClientX</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_getClientY><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.getClientY" target=_parent class=ISymbol>getClientY</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_getCloneableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCloneableCells" target=_parent class=ISymbol>getCloneableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCodec><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.getCodec" target=_parent class=ISymbol>getCodec</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_getColor><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getColor" target=_parent class=ISymbol>getColor</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getConnectImage><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getConnectImage" target=_parent class=ISymbol>getConnectImage</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getConnectionConstraint><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getConnectionConstraint" target=_parent class=ISymbol>getConnectionConstraint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getConnectionPoint><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getConnectionPoint" target=_parent class=ISymbol>getConnectionPoint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getConnections><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getConnections')" class=ISymbol>getConnections</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getConnections" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getConnections" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getConstraint><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.getConstraint" target=_parent class=ISymbol>getConstraint</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_getControlBounds><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getControlBounds" target=_parent class=ISymbol>getControlBounds</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getConverter><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getConverter')" class=ISymbol>getConverter</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.getConverter" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.getConverter" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_getCurrentRoot><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCurrentRoot" target=_parent class=ISymbol>getCurrentRoot</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCurrentStyle><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getCurrentStyle" target=_parent class=ISymbol>getCurrentStyle</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getCurrentValue><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getCurrentValue" target=_parent class=ISymbol>getCurrentValue</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getCursor><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.getCursor" target=_parent class=ISymbol>getCursor</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_getCursorForBend><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.getCursorForBend" target=_parent class=ISymbol>getCursorForBend</a>, <span class=IParent>mxElbowEdgeHandler</span></div></div><div class=SRResult id=SR_getCursorForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getCursorForCell" target=_parent class=ISymbol>getCursorForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDefaultBundle><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.getDefaultBundle" target=_parent class=ISymbol>getDefaultBundle</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_getDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.getDefaultEdgeStyle" target=_parent class=ISymbol>getDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_getDefaultParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getDefaultParent" target=_parent class=ISymbol>getDefaultParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.getDefaultVertexStyle" target=_parent class=ISymbol>getDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_getDeletableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getDeletableCells" target=_parent class=ISymbol>getDeletableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDelta><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.getDelta" target=_parent class=ISymbol>getDelta</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_getDescendants><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getDescendants" target=_parent class=ISymbol>getDescendants</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getDirectedEdgeCount><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getDirectedEdgeCount" target=_parent class=ISymbol>getDirectedEdgeCount</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getDocType><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.getDocType" target=_parent class=ISymbol>getDocType</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_getDocument><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.getDocument" target=_parent class=ISymbol>getDocument</a>, <span class=IParent>mxXmlCanvas2D</span></div></div><div class=SRResult id=SR_getDocumentElement><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.getDocumentElement" target=_parent class=ISymbol>getDocumentElement</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_getDocumentHeight><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.getDocumentHeight" target=_parent class=ISymbol>getDocumentHeight</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_getDocumentWidth><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.getDocumentWidth" target=_parent class=ISymbol>getDocumentWidth</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_getDrawPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getDrawPane" target=_parent class=ISymbol>getDrawPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getDropTarget><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getDropTarget')" class=ISymbol>getDropTarget</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.getDropTarget" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.getDropTarget" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_getEdgeAt><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeAt')" class=ISymbol>getEdgeAt</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getEdgeAt" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getEdgeAt" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeColor><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getEdgeColor" target=_parent class=ISymbol>getEdgeColor</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getEdgeCount><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeCount')" class=ISymbol>getEdgeCount</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getEdgeCount" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getEdgeCount" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeId><div class=IEntry><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.getEdgeId" target=_parent class=ISymbol>getEdgeId</a>, <span class=IParent>mxParallelEdgeLayout</span></div></div><div class=SRResult id=SR_getEdgeIndex><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.getEdgeIndex" target=_parent class=ISymbol>getEdgeIndex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdges')" class=ISymbol>getEdges</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getEdges" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getEdges" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgesBetween><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgesBetween')" class=ISymbol>getEdgesBetween</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getEdgesBetween" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getEdgesBetween" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeStyle')" class=ISymbol>getEdgeStyle</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.getEdgeStyle" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getEdgeStyle" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getEdgeValidationError><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getEdgeValidationError" target=_parent class=ISymbol>getEdgeValidationError</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getEdgeWidth><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getEdgeWidth" target=_parent class=ISymbol>getEdgeWidth</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getEditingCell><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getEditingCell" target=_parent class=ISymbol>getEditingCell</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getEditingValue><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getEditingValue" target=_parent class=ISymbol>getEditingValue</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getEditorBounds><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getEditorBounds" target=_parent class=ISymbol>getEditorBounds</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getElement><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.getElement" target=_parent class=ISymbol>getElement</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_getElementById><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.getElementById" target=_parent class=ISymbol>getElementById</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_getEmptyLabelText><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getEmptyLabelText" target=_parent class=ISymbol>getEmptyLabelText</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getEvent><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getEvent" target=_parent class=ISymbol>getEvent</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_getEventSource><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.getEventSource" target=_parent class=ISymbol>getEventSource</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_getExportableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getExportableCells" target=_parent class=ISymbol>getExportableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getFieldName><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.getFieldName" target=_parent class=ISymbol>getFieldName</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getFieldTemplate><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.getFieldTemplate" target=_parent class=ISymbol>getFieldTemplate</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getFirstSelectableCell><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.getFirstSelectableCell" target=_parent class=ISymbol>getFirstSelectableCell</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_getFoldableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getFoldableCells" target=_parent class=ISymbol>getFoldableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getFoldingImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getFoldingImage" target=_parent class=ISymbol>getFoldingImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getFunction><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.getFunction" target=_parent class=ISymbol>getFunction</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_getFunctionName><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getFunctionName" target=_parent class=ISymbol>getFunctionName</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getGeneralPurposeVariable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGeneralPurposeVariable')" class=ISymbol>getGeneralPurposeVariable</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.getGeneralPurposeVariable" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.getGeneralPurposeVariable" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.getGeneralPurposeVariable" target=_parent class=IParent>mxGraphHierarchyNode</a></div></div></div><div class=SRResult id=SR_getGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGeometry')" class=ISymbol>getGeometry</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getGeometry" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getGeometry" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getGradientId><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.getGradientId" target=_parent class=ISymbol>getGradientId</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_getGraph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGraph')" class=ISymbol>getGraph</a><div class=ISubIndex><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.getGraph" target=_parent class=IParent>mxGraphLayout</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.getGraph" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.getGraph" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.getGraph" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_getGraphBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGraphBounds')" class=ISymbol>getGraphBounds</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getGraphBounds" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getGraphBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getGraphForEvent><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.getGraphForEvent" target=_parent class=ISymbol>getGraphForEvent</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_getGraphX><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getGraphX" target=_parent class=ISymbol>getGraphX</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_getGraphY><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getGraphY" target=_parent class=ISymbol>getGraphY</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_getGridSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getGridSize" target=_parent class=ISymbol>getGridSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getGuideStates><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.getGuideStates" target=_parent class=ISymbol>getGuideStates</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_getGuideTolerance><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.getGuideTolerance" target=_parent class=ISymbol>getGuideTolerance</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_getHandleFillColor><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getHandleFillColor" target=_parent class=ISymbol>getHandleFillColor</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_getHandleForEvent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getHandleForEvent')" class=ISymbol>getHandleForEvent</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getHandleForEvent" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.getHandleForEvent" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_getHandler><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.getHandler" target=_parent class=ISymbol>getHandler</a>, <span class=IParent>mxSelectionCellsHandler</span></div></div><div class=SRResult id=SR_getHotspot><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getHotspot" target=_parent class=ISymbol>getHotspot</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getId><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getId')" class=ISymbol>getId</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getId" target=_parent class=IParent>mxCell</a><a href="../files/io/mxCodec-js.html#mxCodec.getId" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_getImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getImage')" class=ISymbol>getImage</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getImage" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxImageBundle-js.html#mxImageBundle.getImage" target=_parent class=IParent>mxImageBundle</a></div></div></div><div class=SRResult id=SR_getImageBounds><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.getImageBounds" target=_parent class=ISymbol>getImageBounds</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_getImageForConstraint><div class=IEntry><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.getImageForConstraint" target=_parent class=ISymbol>getImageForConstraint</a>, <span class=IParent>mxConstraintHandler</span></div></div><div class=SRResult id=SR_getImageFromBundles><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getImageFromBundles" target=_parent class=ISymbol>getImageFromBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getImportableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getImportableCells" target=_parent class=ISymbol>getImportableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getIncomingEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getIncomingEdges')" class=ISymbol>getIncomingEdges</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getIncomingEdges" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getIncomingEdges" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getIndex><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.getIndex" target=_parent class=ISymbol>getIndex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getIndicatorColor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getIndicatorColor" target=_parent class=ISymbol>getIndicatorColor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getIndicatorGradientColor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getIndicatorGradientColor" target=_parent class=ISymbol>getIndicatorGradientColor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getIndicatorImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getIndicatorImage" target=_parent class=ISymbol>getIndicatorImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getIndicatorShape><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getIndicatorShape" target=_parent class=ISymbol>getIndicatorShape</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getInitialCellForEvent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.getInitialCellForEvent" target=_parent class=ISymbol>getInitialCellForEvent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_getInitialValue><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getInitialValue" target=_parent class=ISymbol>getInitialValue</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_getInnerHtml><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getInnerHtml" target=_parent class=ISymbol>getInnerHtml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getKeys><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary.getKeys" target=_parent class=ISymbol>getKeys</a>, <span class=IParent>mxDictionary</span></div></div><div class=SRResult id=SR_getLabel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getLabel" target=_parent class=ISymbol>getLabel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getLabelBounds><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getLabelBounds" target=_parent class=ISymbol>getLabelBounds</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getLabelValue><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getLabelValue" target=_parent class=ISymbol>getLabelValue</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getLayout><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.getLayout" target=_parent class=ISymbol>getLayout</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_getMainEvent><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.getMainEvent" target=_parent class=ISymbol>getMainEvent</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_getMarkedState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getMarkedState" target=_parent class=ISymbol>getMarkedState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getMarkerColor><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getMarkerColor" target=_parent class=ISymbol>getMarkerColor</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getMaximumGraphBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getMaximumGraphBounds" target=_parent class=ISymbol>getMaximumGraphBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getMinimumSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getMinimumSize')" class=ISymbol>getMinimumSize</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.getMinimumSize" target=_parent class=IParent>mxCellEditor</a><a href="../files/util/mxWindow-js.html#mxWindow.getMinimumSize" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_getModel><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getModel')" class=ISymbol>getModel</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getModel" target=_parent class=IParent>mxGraph</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.getModel" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_getMovableCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getMovableCells" target=_parent class=ISymbol>getMovableCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getName><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getName')" class=ISymbol>getName</a><div class=ISubIndex><a href="../files/util/mxEventObject-js.html#mxEventObject.getName" target=_parent class=IParent>mxEventObject</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.getName" target=_parent class=IParent>mxObjectCodec</a><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.getName" target=_parent class=IParent>mxStyleRegistry</a></div></div></div><div class=SRResult id=SR_getNearestCommonAncestor><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getNearestCommonAncestor" target=_parent class=ISymbol>getNearestCommonAncestor</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getNextLayerConnectedCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getNextLayerConnectedCells')" class=ISymbol>getNextLayerConnectedCells</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.getNextLayerConnectedCells" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.getNextLayerConnectedCells" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.getNextLayerConnectedCells" target=_parent class=IParent>mxGraphHierarchyNode</a></div></div></div><div class=SRResult id=SR_getNextPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getNextPoint" target=_parent class=ISymbol>getNextPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getNumber><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getNumber" target=_parent class=ISymbol>getNumber</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getObject><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.getObject" target=_parent class=ISymbol>getObject</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_getOffset><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getOffset')" class=ISymbol>getOffset</a><div class=ISubIndex><a href="../files/shape/mxText-js.html#mxText.getOffset" target=_parent class=IParent>mxText</a><a href="../files/util/mxUtils-js.html#mxUtils.getOffset" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getOffsetSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getOffsetSize" target=_parent class=ISymbol>getOffsetSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getOpposites><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getOpposites')" class=ISymbol>getOpposites</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getOpposites" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getOpposites" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getOrigin><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getOrigin" target=_parent class=ISymbol>getOrigin</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getOriginForCell><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.getOriginForCell" target=_parent class=ISymbol>getOriginForCell</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_getOuterHtml><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getOuterHtml" target=_parent class=ISymbol>getOuterHtml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getOutgoingEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getOutgoingEdges')" class=ISymbol>getOutgoingEdges</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.getOutgoingEdges" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getOutgoingEdges" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getOverlap><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getOverlap" target=_parent class=ISymbol>getOverlap</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getOverlayPane><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getOverlayPane" target=_parent class=ISymbol>getOverlayPane</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getParent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getParent')" class=ISymbol>getParent</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getParent" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getParent" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getParentOffset><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.getParentOffset" target=_parent class=ISymbol>getParentOffset</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_getParentPath><div class=IEntry><a href="../files/model/mxCellPath-js.html#mxCellPath.getParentPath" target=_parent class=ISymbol>getParentPath</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_getParents><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getParents" target=_parent class=ISymbol>getParents</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getParentSize><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.getParentSize" target=_parent class=ISymbol>getParentSize</a>, <span class=IParent>mxStackLayout</span></div></div><div class=SRResult id=SR_getPath><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.getPath" target=_parent class=ISymbol>getPath</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_getPerimeterBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPerimeterBounds')" class=ISymbol>getPerimeterBounds</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.getPerimeterBounds" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getPerimeterBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getPerimeterFunction><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getPerimeterFunction" target=_parent class=ISymbol>getPerimeterFunction</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getPerimeterPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getPerimeterPoint" target=_parent class=ISymbol>getPerimeterPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getPoint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPoint')" class=ISymbol>getPoint</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView.getPoint" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxRectangle-js.html#mxRectangle.getPoint" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_getPointForEvent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPointForEvent')" class=ISymbol>getPointForEvent</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getPointForEvent" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.getPointForEvent" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_getPreferredSizeForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getPreferredSizeForCell" target=_parent class=ISymbol>getPreferredSizeForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getPrettyXML><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getPrettyXML" target=_parent class=ISymbol>getPrettyXML</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getPreviewBounds><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.getPreviewBounds" target=_parent class=ISymbol>getPreviewBounds</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_getPreviewPoints><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPreviewPoints')" class=ISymbol>getPreviewPoints</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#getPreviewPoints" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getPreviewPoints" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_getPreviewTerminalState><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getPreviewTerminalState" target=_parent class=ISymbol>getPreviewTerminalState</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_getPreviousLayerConnectedCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPreviousLayerConnectedCells')" class=ISymbol>getPreviousLayerConnectedCells</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.getPreviousLayerConnectedCells" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.getPreviousLayerConnectedCells" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.getPreviousLayerConnectedCells" target=_parent class=IParent>mxGraphHierarchyNode</a></div></div></div><div class=SRResult id=SR_getProperties><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject.getProperties" target=_parent class=ISymbol>getProperties</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_getProperty><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject.getProperty" target=_parent class=ISymbol>getProperty</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_getRankValue><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.getRankValue" target=_parent class=ISymbol>getRankValue</a>, <span class=IParent>mxGraphHierarchyNode</span></div></div><div class=SRResult id=SR_getRelativePoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getRelativePoint" target=_parent class=ISymbol>getRelativePoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getRemovedCellsForChanges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getRemovedCellsForChanges" target=_parent class=ISymbol>getRemovedCellsForChanges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getRoot><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getRoot" target=_parent class=ISymbol>getRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getRootTitle><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getRootTitle" target=_parent class=ISymbol>getRootTitle</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getRotatedPoint><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getRotatedPoint" target=_parent class=ISymbol>getRotatedPoint</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getRotation><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.getRotation" target=_parent class=ISymbol>getRotation</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_getRoutingCenterX><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getRoutingCenterX" target=_parent class=ISymbol>getRoutingCenterX</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getRoutingCenterY><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getRoutingCenterY" target=_parent class=ISymbol>getRoutingCenterY</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getScale><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getScale" target=_parent class=ISymbol>getScale</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getScaleForPageCount><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getScaleForPageCount" target=_parent class=ISymbol>getScaleForPageCount</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getScrollOrigin><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getScrollOrigin" target=_parent class=ISymbol>getScrollOrigin</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getSelectionBounds><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.getSelectionBounds" target=_parent class=ISymbol>getSelectionBounds</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_getSelectionCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionCell" target=_parent class=ISymbol>getSelectionCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionCells" target=_parent class=ISymbol>getSelectionCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionCellsForChanges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionCellsForChanges" target=_parent class=ISymbol>getSelectionCellsForChanges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getSelectionColor')" class=ISymbol>getSelectionColor</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getSelectionColor" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.getSelectionColor" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_getSelectionCount><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionCount" target=_parent class=ISymbol>getSelectionCount</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionModel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSelectionModel" target=_parent class=ISymbol>getSelectionModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSelectionPoints><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getSelectionPoints" target=_parent class=ISymbol>getSelectionPoints</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_getSelectionStrokeWidth><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getSelectionStrokeWidth')" class=ISymbol>getSelectionStrokeWidth</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getSelectionStrokeWidth" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.getSelectionStrokeWidth" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_getShapeConstructor><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getShapeConstructor" target=_parent class=ISymbol>getShapeConstructor</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getSizeForString><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getSizeForString" target=_parent class=ISymbol>getSizeForString</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getSnapToTerminalTolerance><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.getSnapToTerminalTolerance" target=_parent class=ISymbol>getSnapToTerminalTolerance</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_getSource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getSource')" class=ISymbol>getSource</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.getSource" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getSource" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_getSourcePerimeterPoint><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getSourcePerimeterPoint" target=_parent class=ISymbol>getSourcePerimeterPoint</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getSpacing><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.getSpacing" target=_parent class=ISymbol>getSpacing</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_getSpecialBundle><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.getSpecialBundle" target=_parent class=ISymbol>getSpecialBundle</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_getStartSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getStartSize" target=_parent class=ISymbol>getStartSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getState><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getState')" class=ISymbol>getState</a><div class=ISubIndex><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getState" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getState" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getState" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_getStates><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getStates" target=_parent class=ISymbol>getStates</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getStateToMark><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getStateToMark" target=_parent class=ISymbol>getStateToMark</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getStatus><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.getStatus" target=_parent class=ISymbol>getStatus</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_getStencil><div class=IEntry><a href="../files/shape/mxStencilRegistry-js.html#mxStencilRegistry.getStencil" target=_parent class=ISymbol>getStencil</a>, <span class=IParent>mxStencilRegistry</span></div></div><div class=SRResult id=SR_getStringValue><div class=IEntry><a href="../files/io/mxStylesheetCodec-js.html#mxStylesheetCodec.getStringValue" target=_parent class=ISymbol>getStringValue</a>, <span class=IParent>mxStylesheetCodec</span></div></div><div class=SRResult id=SR_getStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getStyle')" class=ISymbol>getStyle</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getStyle" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getStyle" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getStylename><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getStylename" target=_parent class=ISymbol>getStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getStylenames><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getStylenames" target=_parent class=ISymbol>getStylenames</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getStylesheet><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getStylesheet" target=_parent class=ISymbol>getStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSvgClip><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.getSvgClip" target=_parent class=ISymbol>getSvgClip</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_getSvgShadowTransform><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.getSvgShadowTransform" target=_parent class=ISymbol>getSvgShadowTransform</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_getSwimlane><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSwimlane" target=_parent class=ISymbol>getSwimlane</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getSwimlaneAt><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getSwimlaneAt" target=_parent class=ISymbol>getSwimlaneAt</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTable><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.getTable" target=_parent class=ISymbol>getTable</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_getTableSize><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.getTableSize" target=_parent class=ISymbol>getTableSize</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_getTargetPerimeterPoint><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.getTargetPerimeterPoint" target=_parent class=ISymbol>getTargetPerimeterPoint</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_getTemplate><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getTemplate" target=_parent class=ISymbol>getTemplate</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTerminal')" class=ISymbol>getTerminal</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getTerminal" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getTerminal" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getTerminalForPort><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getTerminalForPort" target=_parent class=ISymbol>getTerminalForPort</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTerminalPoint><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.getTerminalPoint" target=_parent class=ISymbol>getTerminalPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_getTerminalPort><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getTerminalPort" target=_parent class=ISymbol>getTerminalPort</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getText><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.getText" target=_parent class=ISymbol>getText</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_getTextContent><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getTextContent" target=_parent class=ISymbol>getTextContent</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getTextScale><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.getTextScale" target=_parent class=ISymbol>getTextScale</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_getTitle><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getTitle" target=_parent class=ISymbol>getTitle</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getTolerance><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTolerance')" class=ISymbol>getTolerance</a><div class=ISubIndex><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.getTolerance" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.getTolerance" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_getTooltip><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getTooltip" target=_parent class=ISymbol>getTooltip</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTooltipForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getTooltipForCell" target=_parent class=ISymbol>getTooltipForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTooltipForNode><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.getTooltipForNode" target=_parent class=ISymbol>getTooltipForNode</a>, <span class=IParent>mxElbowEdgeHandler</span></div></div><div class=SRResult id=SR_getTopmostCells><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getTopmostCells" target=_parent class=ISymbol>getTopmostCells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getTranslate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.getTranslate" target=_parent class=ISymbol>getTranslate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getTranslateForRoot><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getTranslateForRoot" target=_parent class=ISymbol>getTranslateForRoot</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getUrlImage><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getUrlImage" target=_parent class=ISymbol>getUrlImage</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getUrlPost><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.getUrlPost" target=_parent class=ISymbol>getUrlPost</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_getValidState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.getValidState" target=_parent class=ISymbol>getValidState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_getValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getValue')" class=ISymbol>getValue</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.getValue" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.getValue" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.getValue" target=_parent class=IParent>mxStyleRegistry</a><a href="../files/util/mxUtils-js.html#mxUtils.getValue" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getValues><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary.getValues" target=_parent class=ISymbol>getValues</a>, <span class=IParent>mxDictionary</span></div></div><div class=SRResult id=SR_getVerticalAlign><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getVerticalAlign" target=_parent class=ISymbol>getVerticalAlign</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getVerticalOffset><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.getVerticalOffset" target=_parent class=ISymbol>getVerticalOffset</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_getView><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.getView" target=_parent class=ISymbol>getView</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getViewXml><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.getViewXml" target=_parent class=ISymbol>getViewXml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getVisibleTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getVisibleTerminal')" class=ISymbol>getVisibleTerminal</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.getVisibleTerminal" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraphView-js.html#mxGraphView.getVisibleTerminal" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getVisibleTerminalState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.getVisibleTerminalState" target=_parent class=ISymbol>getVisibleTerminalState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_getWindow><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.getWindow" target=_parent class=ISymbol>getWindow</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_getX><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getX')" class=ISymbol>getX</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.getX" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getX" target=_parent class=IParent>mxMouseEvent</a><a href="../files/util/mxWindow-js.html#mxWindow.getX" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_getXml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getXml')" class=ISymbol>getXml</a><div class=ISubIndex><a href="../files/util/mxUtils-js.html#mxUtils.getXml" target=_parent class=IParent>mxUtils</a><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.getXml" target=_parent class=IParent>mxXmlRequest</a></div></div></div><div class=SRResult id=SR_getY><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getY')" class=ISymbol>getY</a><div class=ISubIndex><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.getY" target=_parent class=IParent>mxMouseEvent</a><a href="../files/util/mxWindow-js.html#mxWindow.getY" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_glassSize><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.glassSize" target=_parent class=ISymbol>glassSize</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_graph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_graph')" class=ISymbol>graph</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.graph" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/view/mxCellEditor-js.html#mxCellEditor.graph" target=_parent class=IParent>mxCellEditor</a><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.graph" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.graph" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.graph" target=_parent class=IParent>mxCellStatePreview</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.graph" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.graph" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.graph" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/editor/mxEditor-js.html#mxEditor.graph" target=_parent class=IParent>mxEditor</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.graph" target=_parent class=IParent>mxGraphHandler</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.graph" target=_parent class=IParent>mxGraphLayout</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.graph" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/view/mxGraphView-js.html#mxGraphView.graph" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxGuide-js.html#mxGuide.graph" target=_parent class=IParent>mxGuide</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.graph" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.graph" target=_parent class=IParent>mxLayoutManager</a><a href="../files/util/mxMorphing-js.html#mxMorphing.graph" target=_parent class=IParent>mxMorphing</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.graph" target=_parent class=IParent>mxPanningHandler</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.graph" target=_parent class=IParent>mxPrintPreview</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.graph" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.graph" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.graph" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.graph" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.graph" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_Graph_spcappearance><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Graph_appearance" target=_parent class=ISymbol>Graph appearance</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Graph_spcbehaviour><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Graph_behaviour" target=_parent class=ISymbol>Graph behaviour</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Graph_spcdisplay><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Graph_display" target=_parent class=ISymbol>Graph display</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Graph_spcevents><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Graph_events" target=_parent class=ISymbol>Graph events</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_graphBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.graphBounds" target=_parent class=ISymbol>graphBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_graphContainsEvent><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.graphContainsEvent" target=_parent class=ISymbol>graphContainsEvent</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_graphModelChanged><div class=IEntry><a href="javascript:searchResults.Toggle('SR_graphModelChanged')" class=ISymbol>graphModelChanged</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.graphModelChanged" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/view/mxGraph-js.html#mxGraph.graphModelChanged" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_graphRenderHint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_graphRenderHint')" class=ISymbol>graphRenderHint</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.graphRenderHint" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxOutline-js.html#mxOutline.graphRenderHint" target=_parent class=IParent>mxOutline</a></div></div></div><div class=SRResult id=SR_graphX><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.graphX" target=_parent class=ISymbol>graphX</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_graphY><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.graphY" target=_parent class=ISymbol>graphY</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_gridEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_gridEnabled')" class=ISymbol>gridEnabled</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.gridEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.gridEnabled" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_gridSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.gridSize" target=_parent class=ISymbol>gridSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_GROUP_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_GROUP_undCELLS')" class=ISymbol>GROUP_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.GROUP_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.GROUP_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_groupCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_groupCells')" class=ISymbol>groupCells</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.groupCells" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.groupCells" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_Grouping><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Grouping" target=_parent class=ISymbol>Grouping</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_groupPadding><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.groupPadding" target=_parent class=ISymbol>groupPadding</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_grow><div class=IEntry><a href="../files/util/mxRectangle-js.html#mxRectangle.grow" target=_parent class=ISymbol>grow</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_guide><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.guide" target=_parent class=ISymbol>guide</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_GUIDE_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.GUIDE_COLOR" target=_parent class=ISymbol>GUIDE_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_GUIDE_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.GUIDE_STROKEWIDTH" target=_parent class=ISymbol>GUIDE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_guidesEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_guidesEnabled')" class=ISymbol>guidesEnabled</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.guidesEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.guidesEnabled" target=_parent class=IParent>mxGraphHandler</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralH.html b/docs/js-api/search/GeneralH.html
    new file mode 100644
    index 000000000..312a5e0c8
    --- /dev/null
    +++ b/docs/js-api/search/GeneralH.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h0><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.h0" target=_parent class=ISymbol>h0</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_HANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HANDLE_FILLCOLOR" target=_parent class=ISymbol>HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_HANDLE_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HANDLE_SIZE" target=_parent class=ISymbol>HANDLE_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_HANDLE_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HANDLE_STROKECOLOR" target=_parent class=ISymbol>HANDLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_handleGesture><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.handleGesture" target=_parent class=ISymbol>handleGesture</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_handleImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_handleImage')" class=ISymbol>handleImage</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.handleImage" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.handleImage" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_handleMouseOut><div class=IEntry><a href="../files/util/mxPanningManager-js.html#mxPanningManager.handleMouseOut" target=_parent class=ISymbol>handleMouseOut</a>, <span class=IParent>mxPanningManager</span></div></div><div class=SRResult id=SR_handler><div class=IEntry><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.handler" target=_parent class=ISymbol>handler</a>, <span class=IParent>mxDefaultKeyHandler</span></div></div><div class=SRResult id=SR_handlers><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.handlers" target=_parent class=ISymbol>handlers</a>, <span class=IParent>mxSelectionCellsHandler</span></div></div><div class=SRResult id=SR_handlingResize><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.handlingResize" target=_parent class=ISymbol>handlingResize</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_hashCode><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.hashCode" target=_parent class=ISymbol>hashCode</a>, <span class=IParent>mxGraphHierarchyNode</span></div></div><div class=SRResult id=SR_hasScrollbars><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.hasScrollbars" target=_parent class=ISymbol>hasScrollbars</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_hasValidState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.hasValidState" target=_parent class=ISymbol>hasValidState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_height><div class=IEntry><a href="javascript:searchResults.Toggle('SR_height')" class=ISymbol>height</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.height" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxImage-js.html#mxImage.height" target=_parent class=IParent>mxImage</a><a href="../files/util/mxRectangle-js.html#mxRectangle.height" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_help><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.help" target=_parent class=ISymbol>help</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_helpResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.helpResource" target=_parent class=ISymbol>helpResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_helpWidth><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.helpWidth" target=_parent class=ISymbol>helpWidth</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_helpWindowImage><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.helpWindowImage" target=_parent class=ISymbol>helpWindowImage</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_hide><div class=IEntry><a href="javascript:searchResults.Toggle('SR_hide')" class=ISymbol>hide</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.hide" target=_parent class=IParent>mxCellHighlight</a><a href="../files/util/mxGuide-js.html#mxGuide.hide" target=_parent class=IParent>mxGuide</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.hide" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxWindow-js.html#mxWindow.hide" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR2_HIDE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.HIDE" target=_parent class=ISymbol>HIDE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_hideMenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.hideMenu" target=_parent class=ISymbol>hideMenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_hideOnHover><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.hideOnHover" target=_parent class=ISymbol>hideOnHover</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_hideProperties><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.hideProperties" target=_parent class=ISymbol>hideProperties</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_hideSubmenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.hideSubmenu" target=_parent class=ISymbol>hideSubmenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_hideTooltip><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.hideTooltip" target=_parent class=ISymbol>hideTooltip</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_HIGHLIGHT_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HIGHLIGHT_COLOR" target=_parent class=ISymbol>HIGHLIGHT_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_HIGHLIGHT_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HIGHLIGHT_STROKEWIDTH" target=_parent class=ISymbol>HIGHLIGHT_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_highlightColor><div class=IEntry><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.highlightColor" target=_parent class=ISymbol>highlightColor</a>, <span class=IParent>mxConstraintHandler</span></div></div><div class=SRResult id=SR_highlightDropTargets><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.highlightDropTargets" target=_parent class=ISymbol>highlightDropTargets</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_highlightEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.highlightEnabled" target=_parent class=ISymbol>highlightEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_history><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.history" target=_parent class=ISymbol>history</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_hitsSwimlaneContent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.hitsSwimlaneContent" target=_parent class=ISymbol>hitsSwimlaneContent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_home><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.home" target=_parent class=ISymbol>home</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_horizontal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_horizontal')" class=ISymbol>horizontal</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.horizontal" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/util/mxGuide-js.html#mxGuide.horizontal" target=_parent class=IParent>mxGuide</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.horizontal" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.horizontal" target=_parent class=IParent>mxStackLayout</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.horizontal" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_horizontalFlow><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.horizontalFlow" target=_parent class=ISymbol>horizontalFlow</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_horizontalLayout><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.horizontalLayout" target=_parent class=ISymbol>horizontalLayout</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_hotspot><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.hotspot" target=_parent class=ISymbol>hotspot</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_hotspotEnabled><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.hotspotEnabled" target=_parent class=ISymbol>hotspotEnabled</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_htmlEntities><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.htmlEntities" target=_parent class=ISymbol>htmlEntities</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_htmlLabels><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.htmlLabels" target=_parent class=ISymbol>htmlLabels</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_htmlPreview><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.htmlPreview" target=_parent class=ISymbol>htmlPreview</a>, <span class=IParent>mxGraphHandler</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralI.html b/docs/js-api/search/GeneralI.html
    new file mode 100644
    index 000000000..efc08c493
    --- /dev/null
    +++ b/docs/js-api/search/GeneralI.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_id><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.id" target=_parent class=ISymbol>id</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_idrefs><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.idrefs" target=_parent class=ISymbol>idrefs</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_ieVerticalFilter><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.ieVerticalFilter" target=_parent class=ISymbol>ieVerticalFilter</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_ignoreCell><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.ignoreCell" target=_parent class=ISymbol>ignoreCell</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_ignoredChanges><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.ignoredChanges" target=_parent class=ISymbol>ignoredChanges</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_ignoreMouseDown><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.ignoreMouseDown" target=_parent class=ISymbol>ignoreMouseDown</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_ignoreScrollbars><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.ignoreScrollbars" target=_parent class=ISymbol>ignoreScrollbars</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_image><div class=IEntry><a href="javascript:searchResults.Toggle('SR_image')" class=ISymbol>image</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.image" target=_parent class=IParent>mxCellOverlay</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.image" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.image" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_imageBasePath><div class=IEntry><a href="javascript:searchResults.Toggle('SR_imageBasePath')" class=ISymbol>imageBasePath</a><div class=ISubIndex><a href="../files/mxClient-js.html#mxClient.imageBasePath" target=_parent class=IParent>mxClient</a><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.imageBasePath" target=_parent class=IParent>mxDefaultPopupMenu</a></div></div></div><div class=SRResult id=SR_imageBundles><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.imageBundles" target=_parent class=ISymbol>imageBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_images><div class=IEntry><a href="../files/util/mxImageBundle-js.html#mxImageBundle.images" target=_parent class=ISymbol>images</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_imageSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_imageSize')" class=ISymbol>imageSize</a><div class=ISubIndex><a href="../files/shape/mxLabel-js.html#mxLabel.imageSize" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.imageSize" target=_parent class=IParent>mxSwimlane</a></div></div></div><div class=SRResult id=SR_importCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.importCells" target=_parent class=ISymbol>importCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_importEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.importEnabled" target=_parent class=ISymbol>importEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_In_minplace_spcediting><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.In-place_editing" target=_parent class=ISymbol>In-place editing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_include><div class=IEntry><a href="../files/mxClient-js.html#mxClient.include" target=_parent class=ISymbol>include</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_includeOverlays><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.includeOverlays" target=_parent class=ISymbol>includeOverlays</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_index><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.index" target=_parent class=ISymbol>index</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_indexOf><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.indexOf" target=_parent class=ISymbol>indexOf</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_indexOfNextAdd><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.indexOfNextAdd" target=_parent class=ISymbol>indexOfNextAdd</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_indexOfStylename><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.indexOfStylename" target=_parent class=ISymbol>indexOfStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_indicatorSize><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel.indicatorSize" target=_parent class=ISymbol>indicatorSize</a>, <span class=IParent>mxLabel</span></div></div><div class=SRResult id=SR_indicatorSpacing><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel.indicatorSpacing" target=_parent class=ISymbol>indicatorSpacing</a>, <span class=IParent>mxLabel</span></div></div><div class=SRResult id=SR_indices><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.indices" target=_parent class=ISymbol>indices</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_info><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.info" target=_parent class=ISymbol>info</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_init><div class=IEntry><a href="javascript:searchResults.Toggle('SR_init')" class=ISymbol>init</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.init" target=_parent class=IParent>mxCellEditor</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.init" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.init" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.init" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.init" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-js.html#mxGraphView.init" target=_parent class=IParent>mxGraphView</a><a href="../files/shape/mxLabel-js.html#mxLabel.init" target=_parent class=IParent>mxLabel</a><a href="../files/util/mxLog-js.html#mxLog.init" target=_parent class=IParent>mxLog</a><a href="../files/view/mxOutline-js.html#mxOutline.init" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.init" target=_parent class=IParent>mxPanningHandler</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.init" target=_parent class=IParent>mxPopupMenu</a><a href="../files/shape/mxShape-js.html#mxShape.init" target=_parent class=IParent>mxShape</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.init" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.init" target=_parent class=IParent>mxVertexHandler</a><a href="../files/util/mxWindow-js.html#mxWindow.init" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_initBend><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.initBend" target=_parent class=ISymbol>initBend</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_initControl><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initControl" target=_parent class=ISymbol>initControl</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initialCoords><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.initialCoords" target=_parent class=ISymbol>initialCoords</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_initialize><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initialize" target=_parent class=ISymbol>initialize</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initializeLabel><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initializeLabel" target=_parent class=ISymbol>initializeLabel</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initializeOverlay><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initializeOverlay" target=_parent class=ISymbol>initializeOverlay</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initializeShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.initializeShape" target=_parent class=ISymbol>initializeShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_initialRank><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.initialRank" target=_parent class=ISymbol>initialRank</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_initialTemp><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.initialTemp" target=_parent class=ISymbol>initialTemp</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_initialTouchY><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.initialTouchY" target=_parent class=ISymbol>initialTouchY</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_initialX><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.initialX" target=_parent class=ISymbol>initialX</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_initMarkers><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.initMarkers" target=_parent class=ISymbol>initMarkers</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_initShapes><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.initShapes" target=_parent class=ISymbol>initShapes</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_innerNode><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.innerNode" target=_parent class=ISymbol>innerNode</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_insert><div class=IEntry><a href="javascript:searchResults.Toggle('SR_insert')" class=ISymbol>insert</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.insert" target=_parent class=IParent>mxCell</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.insert" target=_parent class=IParent>mxDefaultToolbar</a></div></div></div><div class=SRResult id=SR_insertCount><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard.insertCount" target=_parent class=ISymbol>insertCount</a>, <span class=IParent>mxClipboard</span></div></div><div class=SRResult id=SR_insertEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_insertEdge')" class=ISymbol>insertEdge</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.insertEdge" target=_parent class=IParent>mxCell</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.insertEdge" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.insertEdge" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_insertFunction><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.insertFunction" target=_parent class=ISymbol>insertFunction</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_insertGradient><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.insertGradient" target=_parent class=ISymbol>insertGradient</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_insertIntoGraph><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.insertIntoGraph" target=_parent class=ISymbol>insertIntoGraph</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_insertState><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.insertState" target=_parent class=ISymbol>insertState</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_insertVertex><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.insertVertex" target=_parent class=ISymbol>insertVertex</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_installChangeHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installChangeHandler" target=_parent class=ISymbol>installChangeHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_installCloseHandler><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.installCloseHandler" target=_parent class=ISymbol>installCloseHandler</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_installDblClickHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installDblClickHandler" target=_parent class=ISymbol>installDblClickHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_installDrillHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installDrillHandler" target=_parent class=ISymbol>installDrillHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_installDropHandler><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.installDropHandler" target=_parent class=ISymbol>installDropHandler</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_installInsertHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installInsertHandler" target=_parent class=ISymbol>installInsertHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_installListeners><div class=IEntry><a href="javascript:searchResults.Toggle('SR_installListeners')" class=ISymbol>installListeners</a><div class=ISubIndex><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.installListeners" target=_parent class=IParent>mxCellRenderer</a><a href="../files/view/mxGraphView-js.html#mxGraphView.installListeners" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_installMaximizeHandler><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.installMaximizeHandler" target=_parent class=ISymbol>installMaximizeHandler</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_installMinimizeHandler><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.installMinimizeHandler" target=_parent class=ISymbol>installMinimizeHandler</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_installMoveHandler><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.installMoveHandler" target=_parent class=ISymbol>installMoveHandler</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_installOverlayListeners><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.installOverlayListeners" target=_parent class=ISymbol>installOverlayListeners</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_installUndoHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.installUndoHandler" target=_parent class=ISymbol>installUndoHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_interHierarchySpacing><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.interHierarchySpacing" target=_parent class=ISymbol>interHierarchySpacing</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_interRankCellSpacing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_interRankCellSpacing')" class=ISymbol>interRankCellSpacing</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.interRankCellSpacing" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.interRankCellSpacing" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_intersection><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.intersection" target=_parent class=ISymbol>intersection</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_intersects><div class=IEntry><a href="javascript:searchResults.Toggle('SR_intersects')" class=ISymbol>intersects</a><div class=ISubIndex><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.intersects" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxGraph-js.html#mxGraph.intersects" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.intersects" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_intraCellSpacing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_intraCellSpacing')" class=ISymbol>intraCellSpacing</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.intraCellSpacing" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.intraCellSpacing" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_invalid><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.invalid" target=_parent class=ISymbol>invalid</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_INVALID_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.INVALID_COLOR" target=_parent class=ISymbol>INVALID_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_INVALID_undCONNECT_undTARGET_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.INVALID_CONNECT_TARGET_COLOR" target=_parent class=ISymbol>INVALID_CONNECT_TARGET_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_invalidate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.invalidate" target=_parent class=ISymbol>invalidate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_invalidColor><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.invalidColor" target=_parent class=ISymbol>invalidColor</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_invalidOrder><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.invalidOrder" target=_parent class=ISymbol>invalidOrder</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_invert><div class=IEntry><a href="javascript:searchResults.Toggle('SR_invert')" class=ISymbol>invert</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.invert" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.invert" target=_parent class=IParent>mxGraphHierarchyEdge</a></div></div></div><div class=SRResult id=SR_invokesStopCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.invokesStopCellEditing" target=_parent class=ISymbol>invokesStopCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_IS_undGC><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_GC" target=_parent class=ISymbol>IS_GC</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undIE><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_IE" target=_parent class=ISymbol>IS_IE</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undIE6><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_IE6" target=_parent class=ISymbol>IS_IE6</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undLOCAL><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_LOCAL" target=_parent class=ISymbol>IS_LOCAL</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undMAC><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_MAC" target=_parent class=ISymbol>IS_MAC</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undMT><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_MT" target=_parent class=ISymbol>IS_MT</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undNS><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_NS" target=_parent class=ISymbol>IS_NS</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undOP><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_OP" target=_parent class=ISymbol>IS_OP</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undOT><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_OT" target=_parent class=ISymbol>IS_OT</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undSF><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_SF" target=_parent class=ISymbol>IS_SF</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undSVG><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_SVG" target=_parent class=ISymbol>IS_SVG</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undTOUCH><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_TOUCH" target=_parent class=ISymbol>IS_TOUCH</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undVML><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_VML" target=_parent class=ISymbol>IS_VML</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_isAddEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isAddEnabled" target=_parent class=ISymbol>isAddEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_isAddPointEvent><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isAddPointEvent" target=_parent class=ISymbol>isAddPointEvent</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_isAllowDanglingEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAllowDanglingEdges" target=_parent class=ISymbol>isAllowDanglingEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isAllowEval><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.isAllowEval" target=_parent class=ISymbol>isAllowEval</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isAllowLoops><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAllowLoops" target=_parent class=ISymbol>isAllowLoops</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isAllowOverlapParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAllowOverlapParent" target=_parent class=ISymbol>isAllowOverlapParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isAltDown><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isAltDown" target=_parent class=ISymbol>isAltDown</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isAncestor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isAncestor')" class=ISymbol>isAncestor</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.isAncestor" target=_parent class=IParent>mxGraphHierarchyNode</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isAncestor" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isAutoAntiAlias><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.isAutoAntiAlias" target=_parent class=ISymbol>isAutoAntiAlias</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_isAutoSizeCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAutoSizeCell" target=_parent class=ISymbol>isAutoSizeCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isAutoSizeCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isAutoSizeCells" target=_parent class=ISymbol>isAutoSizeCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isBinary><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.isBinary" target=_parent class=ISymbol>isBinary</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_isBrowserSupported><div class=IEntry><a href="../files/mxClient-js.html#mxClient.isBrowserSupported" target=_parent class=ISymbol>isBrowserSupported</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_isBubbling><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.isBubbling" target=_parent class=ISymbol>isBubbling</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_isBundleSupported><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.isBundleSupported" target=_parent class=ISymbol>isBundleSupported</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_isCellBendable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellBendable" target=_parent class=ISymbol>isCellBendable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellCloneable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellCloneable" target=_parent class=ISymbol>isCellCloneable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellCodec><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isCellCodec')" class=ISymbol>isCellCodec</a><div class=ISubIndex><a href="../files/io/mxCellCodec-js.html#mxCellCodec.isCellCodec" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxCodec-js.html#mxCodec.isCellCodec" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_isCellCollapsed><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellCollapsed" target=_parent class=ISymbol>isCellCollapsed</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellConnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellConnectable" target=_parent class=ISymbol>isCellConnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellDeletable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellDeletable" target=_parent class=ISymbol>isCellDeletable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellDisconnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellDisconnectable" target=_parent class=ISymbol>isCellDisconnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellEditable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellEditable" target=_parent class=ISymbol>isCellEditable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellFoldable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellFoldable" target=_parent class=ISymbol>isCellFoldable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellHorizontal><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isCellHorizontal" target=_parent class=ISymbol>isCellHorizontal</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_isCellIgnored><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isCellIgnored" target=_parent class=ISymbol>isCellIgnored</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_isCellLocked><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellLocked" target=_parent class=ISymbol>isCellLocked</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellMovable" target=_parent class=ISymbol>isCellMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellResizable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellResizable" target=_parent class=ISymbol>isCellResizable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsBendable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsBendable" target=_parent class=ISymbol>isCellsBendable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsCloneable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsCloneable" target=_parent class=ISymbol>isCellsCloneable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsDeletable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsDeletable" target=_parent class=ISymbol>isCellsDeletable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsDisconnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsDisconnectable" target=_parent class=ISymbol>isCellsDisconnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsEditable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsEditable" target=_parent class=ISymbol>isCellsEditable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellSelectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellSelectable" target=_parent class=ISymbol>isCellSelectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellSelected><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellSelected" target=_parent class=ISymbol>isCellSelected</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellShiftable><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isCellShiftable" target=_parent class=ISymbol>isCellShiftable</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_isCellsLocked><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsLocked" target=_parent class=ISymbol>isCellsLocked</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsMovable" target=_parent class=ISymbol>isCellsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsResizable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsResizable" target=_parent class=ISymbol>isCellsResizable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellsSelectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellsSelectable" target=_parent class=ISymbol>isCellsSelectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCellVisible" target=_parent class=ISymbol>isCellVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCloneEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isCloneEnabled" target=_parent class=ISymbol>isCloneEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isCloneEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCloneEvent" target=_parent class=ISymbol>isCloneEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCloneInvalidEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isCloneInvalidEdges" target=_parent class=ISymbol>isCloneInvalidEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCollapsed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isCollapsed')" class=ISymbol>isCollapsed</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isCollapsed" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isCollapsed" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isCompressed><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.isCompressed" target=_parent class=ISymbol>isCompressed</a>, <span class=IParent>mxXmlCanvas2D</span></div></div><div class=SRResult id=SR_isConnectable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isConnectable')" class=ISymbol>isConnectable</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isConnectable" target=_parent class=IParent>mxCell</a><a href="../files/view/mxGraph-js.html#mxGraph.isConnectable" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isConnectable" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isConnectableCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isConnectableCell')" class=ISymbol>isConnectableCell</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isConnectableCell" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isConnectableCell" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_isConnectableEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isConnectableEdges" target=_parent class=ISymbol>isConnectableEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isConnecting><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isConnecting" target=_parent class=ISymbol>isConnecting</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isConstrainChild><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isConstrainChild" target=_parent class=ISymbol>isConstrainChild</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isConstrainChildren><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isConstrainChildren" target=_parent class=ISymbol>isConstrainChildren</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isConstrainedEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isConstrainedEvent" target=_parent class=ISymbol>isConstrainedEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isConsumed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isConsumed')" class=ISymbol>isConsumed</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.isConsumed" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventObject-js.html#mxEventObject.isConsumed" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.isConsumed" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_isContainerEvent><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.isContainerEvent" target=_parent class=ISymbol>isContainerEvent</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isControlDown><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isControlDown')" class=ISymbol>isControlDown</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.isControlDown" target=_parent class=IParent>mxEvent</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.isControlDown" target=_parent class=IParent>mxKeyHandler</a></div></div></div><div class=SRResult id=SR_isCreateIds><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isCreateIds" target=_parent class=ISymbol>isCreateIds</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_isCreateTarget><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isCreateTarget" target=_parent class=ISymbol>isCreateTarget</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isDelayedSelection><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isDelayedSelection" target=_parent class=ISymbol>isDelayedSelection</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isDisconnectOnMove><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isDisconnectOnMove" target=_parent class=ISymbol>isDisconnectOnMove</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isDropEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isDropEnabled" target=_parent class=ISymbol>isDropEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isEdge')" class=ISymbol>isEdge</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isEdge" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.isEdge" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.isEdge" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isEdge" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isEdgeIgnored><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.isEdgeIgnored" target=_parent class=ISymbol>isEdgeIgnored</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_isEdgeLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEdgeLabelsMovable" target=_parent class=ISymbol>isEdgeLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEdgeValid><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEdgeValid" target=_parent class=ISymbol>isEdgeValid</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEditing" target=_parent class=ISymbol>isEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEmpty><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isEmpty')" class=ISymbol>isEmpty</a><div class=ISubIndex><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.isEmpty" target=_parent class=IParent>mxCellStatePreview</a><a href="../files/util/mxClipboard-js.html#mxClipboard.isEmpty" target=_parent class=IParent>mxClipboard</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.isEmpty" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.isEmpty" target=_parent class=IParent>mxUndoableEdit</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.isEmpty" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR_isEmptyString><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.isEmptyString" target=_parent class=ISymbol>isEmptyString</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_isEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isEnabled')" class=ISymbol>isEnabled</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.isEnabled" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.isEnabled" target=_parent class=IParent>mxCellMarker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isEnabled" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.isEnabled" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.isEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.isEnabled" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isEnabled" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.isEnabled" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.isEnabled" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxOutline-js.html#mxOutline.isEnabled" target=_parent class=IParent>mxOutline</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.isEnabled" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.isEnabled" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.isEnabled" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isEnabled" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isEnabled" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.isEnabled" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.isEnabled" target=_parent class=IParent>mxUrlConverter</a></div></div></div><div class=SRResult id=SR_isEnabledForEvent><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.isEnabledForEvent" target=_parent class=ISymbol>isEnabledForEvent</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_isEnterStopsCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEnterStopsCellEditing" target=_parent class=ISymbol>isEnterStopsCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEscapeEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isEscapeEnabled" target=_parent class=ISymbol>isEscapeEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isEventsEnabled><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.isEventsEnabled" target=_parent class=ISymbol>isEventsEnabled</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_isExcluded><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isExcluded')" class=ISymbol>isExcluded</a><div class=ISubIndex><a href="../files/io/mxCellCodec-js.html#mxCellCodec.isExcluded" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.isExcluded" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_isExtendParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isExtendParent" target=_parent class=ISymbol>isExtendParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isExtendParents><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isExtendParents')" class=ISymbol>isExtendParents</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.isExtendParents" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isExtendParents" target=_parent class=IParent>mxSpaceManager</a></div></div></div><div class=SRResult id=SR_isExtendParentsOnAdd><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isExtendParentsOnAdd" target=_parent class=ISymbol>isExtendParentsOnAdd</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isFoEnabled><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.isFoEnabled" target=_parent class=ISymbol>isFoEnabled</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_isForceMarqueeEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isForceMarqueeEvent" target=_parent class=ISymbol>isForceMarqueeEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isGraphEvent><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.isGraphEvent" target=_parent class=ISymbol>isGraphEvent</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_isGridEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isGridEnabled')" class=ISymbol>isGridEnabled</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.isGridEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.isGridEnabled" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_isGridEnabledEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isGridEnabledEvent" target=_parent class=ISymbol>isGridEnabledEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isGuidesEnabled><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.isGuidesEnabled" target=_parent class=ISymbol>isGuidesEnabled</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_isHandleEnabled><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isHandleEnabled" target=_parent class=ISymbol>isHandleEnabled</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_isHandleVisible><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isHandleVisible" target=_parent class=ISymbol>isHandleVisible</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_isHideLabel><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.isHideLabel" target=_parent class=ISymbol>isHideLabel</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_isHideOnHover><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.isHideOnHover" target=_parent class=ISymbol>isHideOnHover</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_isHorizontal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isHorizontal')" class=ISymbol>isHorizontal</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.isHorizontal" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.isHorizontal" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.isHorizontal" target=_parent class=IParent>mxStackLayout</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isHorizontal" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_isHotspotEnabled><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.isHotspotEnabled" target=_parent class=ISymbol>isHotspotEnabled</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_isHtmlLabel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isHtmlLabel" target=_parent class=ISymbol>isHtmlLabel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isHtmlLabels><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isHtmlLabels" target=_parent class=ISymbol>isHtmlLabels</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isImmediateConnectSource><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isImmediateConnectSource" target=_parent class=ISymbol>isImmediateConnectSource</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isInvokesStopCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isInvokesStopCellEditing" target=_parent class=ISymbol>isInvokesStopCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isLabelClipped><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isLabelClipped" target=_parent class=ISymbol>isLabelClipped</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isLabelEvent><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.isLabelEvent" target=_parent class=ISymbol>isLabelEvent</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_isLabelMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isLabelMovable" target=_parent class=ISymbol>isLabelMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isLayer><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isLayer" target=_parent class=ISymbol>isLayer</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_isLeftMouseButton><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isLeftMouseButton" target=_parent class=ISymbol>isLeftMouseButton</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isLoop><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isLoop" target=_parent class=ISymbol>isLoop</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isMenuShowing><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.isMenuShowing" target=_parent class=ISymbol>isMenuShowing</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_isMetaDown><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isMetaDown" target=_parent class=ISymbol>isMetaDown</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isMixedModeHtml><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.isMixedModeHtml" target=_parent class=ISymbol>isMixedModeHtml</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_isModified><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isModified')" class=ISymbol>isModified</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.isModified" target=_parent class=IParent>mxCellEditor</a><a href="../files/editor/mxEditor-js.html#mxEditor.isModified" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_isMouseDown><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isMouseDown" target=_parent class=ISymbol>isMouseDown</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isMoveable><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.isMoveable" target=_parent class=ISymbol>isMoveable</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_isMoveEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isMoveEnabled" target=_parent class=ISymbol>isMoveEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isMoveIconToFrontForState><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isMoveIconToFrontForState" target=_parent class=ISymbol>isMoveIconToFrontForState</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isMultigraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isMultigraph" target=_parent class=ISymbol>isMultigraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isNode><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.isNode" target=_parent class=ISymbol>isNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_isNumeric><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.isNumeric" target=_parent class=ISymbol>isNumeric</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_isOrthogonal><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isOrthogonal" target=_parent class=ISymbol>isOrthogonal</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isPanningEnabled><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.isPanningEnabled" target=_parent class=ISymbol>isPanningEnabled</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_isPanningTrigger><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.isPanningTrigger" target=_parent class=ISymbol>isPanningTrigger</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_isPopupTrigger><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isPopupTrigger')" class=ISymbol>isPopupTrigger</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.isPopupTrigger" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.isPopupTrigger" target=_parent class=IParent>mxMouseEvent</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.isPopupTrigger" target=_parent class=IParent>mxPopupMenu</a></div></div></div><div class=SRResult id=SR_isPort><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isPort" target=_parent class=ISymbol>isPort</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isPortsEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isPortsEnabled" target=_parent class=ISymbol>isPortsEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isPropertiesVisible><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.isPropertiesVisible" target=_parent class=ISymbol>isPropertiesVisible</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_isReady><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.isReady" target=_parent class=ISymbol>isReady</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_isReference><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isReference')" class=ISymbol>isReference</a><div class=ISubIndex><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec.isReference" target=_parent class=IParent>mxChildChangeCodec</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.isReference" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_isRemoveCellsFromParent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isRemoveCellsFromParent" target=_parent class=ISymbol>isRemoveCellsFromParent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isRemovePointEvent><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isRemovePointEvent" target=_parent class=ISymbol>isRemovePointEvent</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_isRendering><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.isRendering" target=_parent class=ISymbol>isRendering</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isResizable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.isResizable" target=_parent class=ISymbol>isResizable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_isResizeContainer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isResizeContainer" target=_parent class=ISymbol>isResizeContainer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isResizeEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isResizeEnabled" target=_parent class=ISymbol>isResizeEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_isReversed><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.isReversed" target=_parent class=ISymbol>isReversed</a>, <span class=IParent>mxGraphHierarchyEdge</span></div></div><div class=SRResult id=SR_isRightMouseButton><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isRightMouseButton" target=_parent class=ISymbol>isRightMouseButton</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isRoot><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isRoot" target=_parent class=ISymbol>isRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_isScrollEvent><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.isScrollEvent" target=_parent class=ISymbol>isScrollEvent</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isSelected><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.isSelected" target=_parent class=ISymbol>isSelected</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_isSelectEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.isSelectEnabled" target=_parent class=ISymbol>isSelectEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_isSelectionDashed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isSelectionDashed')" class=ISymbol>isSelectionDashed</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.isSelectionDashed" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.isSelectionDashed" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_isSelectionEmpty><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSelectionEmpty" target=_parent class=ISymbol>isSelectionEmpty</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isShapeEvent><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.isShapeEvent" target=_parent class=ISymbol>isShapeEvent</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_isShiftDown><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.isShiftDown" target=_parent class=ISymbol>isShiftDown</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_isShiftDownwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isShiftDownwards" target=_parent class=ISymbol>isShiftDownwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_isShiftRightwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.isShiftRightwards" target=_parent class=ISymbol>isShiftRightwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_isSignificant><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.isSignificant" target=_parent class=ISymbol>isSignificant</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_isSingleSelection><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.isSingleSelection" target=_parent class=ISymbol>isSingleSelection</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_isSizerVisible><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.isSizerVisible" target=_parent class=ISymbol>isSizerVisible</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_isSource><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.isSource" target=_parent class=ISymbol>isSource</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_isSplitEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSplitEnabled" target=_parent class=ISymbol>isSplitEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isSplitTarget><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSplitTarget" target=_parent class=ISymbol>isSplitTarget</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isStartEvent><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isStartEvent" target=_parent class=ISymbol>isStartEvent</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isStopEvent><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isStopEvent" target=_parent class=ISymbol>isStopEvent</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_isStyleSet><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.isStyleSet" target=_parent class=ISymbol>isStyleSet</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_isSwimlane><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSwimlane" target=_parent class=ISymbol>isSwimlane</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isSwimlaneIgnored><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.isSwimlaneIgnored" target=_parent class=ISymbol>isSwimlaneIgnored</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_isSwimlaneNesting><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSwimlaneNesting" target=_parent class=ISymbol>isSwimlaneNesting</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isSwimlaneSelectionEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isSwimlaneSelectionEnabled" target=_parent class=ISymbol>isSwimlaneSelectionEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isTerminalPointMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isTerminalPointMovable" target=_parent class=ISymbol>isTerminalPointMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isTextEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isTextEnabled')" class=ISymbol>isTextEnabled</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.isTextEnabled" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.isTextEnabled" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_isToggleEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isToggleEvent" target=_parent class=ISymbol>isToggleEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidAncestor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isValidAncestor" target=_parent class=ISymbol>isValidAncestor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidConnection><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isValidConnection" target=_parent class=ISymbol>isValidConnection</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidDropTarget><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isValidDropTarget" target=_parent class=ISymbol>isValidDropTarget</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidResponse><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.isValidResponse" target=_parent class=ISymbol>isValidResponse</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_isValidRoot><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isValidRoot" target=_parent class=ISymbol>isValidRoot</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isValidSource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isValidSource')" class=ISymbol>isValidSource</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isValidSource" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.isValidSource" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_isValidState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.isValidState" target=_parent class=ISymbol>isValidState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_isValidTarget><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isValidTarget')" class=ISymbol>isValidTarget</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.isValidTarget" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.isValidTarget" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_isVertex><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVertex')" class=ISymbol>isVertex</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isVertex" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.isVertex" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.isVertex" target=_parent class=IParent>mxGraphHierarchyNode</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isVertex" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isVertexIgnored><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVertexIgnored')" class=ISymbol>isVertexIgnored</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.isVertexIgnored" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.isVertexIgnored" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.isVertexIgnored" target=_parent class=IParent>mxGraphLayout</a></div></div></div><div class=SRResult id=SR_isVertexLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isVertexLabelsMovable" target=_parent class=ISymbol>isVertexLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isVertexMovable><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.isVertexMovable" target=_parent class=ISymbol>isVertexMovable</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_isVisible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVisible')" class=ISymbol>isVisible</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.isVisible" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.isVisible" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxLog-js.html#mxLog.isVisible" target=_parent class=IParent>mxLog</a><a href="../files/util/mxWindow-js.html#mxWindow.isVisible" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_isVml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVml')" class=ISymbol>isVml</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.isVml" target=_parent class=IParent>mxPath</a><a href="../files/util/mxUtils-js.html#mxUtils.isVml" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_isWrapping><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isWrapping" target=_parent class=ISymbol>isWrapping</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_itemCount><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.itemCount" target=_parent class=ISymbol>itemCount</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_iteration><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.iteration" target=_parent class=ISymbol>iteration</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_iterationsWithoutImprovement><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.iterationsWithoutImprovement" target=_parent class=ISymbol>iterationsWithoutImprovement</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralJ.html b/docs/js-api/search/GeneralJ.html
    new file mode 100644
    index 000000000..ac129ca4f
    --- /dev/null
    +++ b/docs/js-api/search/GeneralJ.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_jettyPositions><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.jettyPositions" target=_parent class=ISymbol>jettyPositions</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_join><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.join" target=_parent class=ISymbol>join</a>, <span class=IParent>mxCompactTreeLayout</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralK.html b/docs/js-api/search/GeneralK.html
    new file mode 100644
    index 000000000..2f11db011
    --- /dev/null
    +++ b/docs/js-api/search/GeneralK.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_keepEdgesInBackground><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.keepEdgesInBackground" target=_parent class=ISymbol>keepEdgesInBackground</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_keepEdgesInForeground><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.keepEdgesInForeground" target=_parent class=ISymbol>keepEdgesInForeground</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_keepFirstLocation><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.keepFirstLocation" target=_parent class=ISymbol>keepFirstLocation</a>, <span class=IParent>mxStackLayout</span></div></div><div class=SRResult id=SR_keepOnTop><div class=IEntry><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.keepOnTop" target=_parent class=ISymbol>keepOnTop</a>, <span class=IParent>mxCellHighlight</span></div></div><div class=SRResult id=SR_keepSelectionVisibleOnZoom><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.keepSelectionVisibleOnZoom" target=_parent class=ISymbol>keepSelectionVisibleOnZoom</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_keyDown><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.keyDown" target=_parent class=ISymbol>keyDown</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_keyHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.keyHandler" target=_parent class=ISymbol>keyHandler</a>, <span class=IParent>mxEditor</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralL.html b/docs/js-api/search/GeneralL.html
    new file mode 100644
    index 000000000..7a00c0867
    --- /dev/null
    +++ b/docs/js-api/search/GeneralL.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.label" target=_parent class=ISymbol>label</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_LABEL_undCHANGED><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LABEL_undCHANGED')" class=ISymbol>LABEL_CHANGED</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.LABEL_CHANGED" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.LABEL_CHANGED" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_LABEL_undHANDLE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.LABEL_HANDLE" target=_parent class=ISymbol>LABEL_HANDLE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_LABEL_undHANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.LABEL_HANDLE_FILLCOLOR" target=_parent class=ISymbol>LABEL_HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_LABEL_undHANDLE_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.LABEL_HANDLE_SIZE" target=_parent class=ISymbol>LABEL_HANDLE_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_labelChanged><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.labelChanged" target=_parent class=ISymbol>labelChanged</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_labels><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.labels" target=_parent class=ISymbol>labels</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_labelShape><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.labelShape" target=_parent class=ISymbol>labelShape</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_labelsVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.labelsVisible" target=_parent class=ISymbol>labelsVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_language><div class=IEntry><a href="../files/mxClient-js.html#mxClient.language" target=_parent class=ISymbol>language</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_languages><div class=IEntry><a href="../files/mxClient-js.html#mxClient.languages" target=_parent class=ISymbol>languages</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_lastSavedResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.lastSavedResource" target=_parent class=ISymbol>lastSavedResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_lastSnapshot><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.lastSnapshot" target=_parent class=ISymbol>lastSnapshot</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_lastTouchTime><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.lastTouchTime" target=_parent class=ISymbol>lastTouchTime</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_lastTouchX><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.lastTouchX" target=_parent class=ISymbol>lastTouchX</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_layeringStage><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.layeringStage" target=_parent class=ISymbol>layeringStage</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_layout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_layout')" class=ISymbol>layout</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.layout" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.layout" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.layout" target=_parent class=IParent>mxMedianHybridCrossingReduction</a><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover.layout" target=_parent class=IParent>mxMinimumCycleRemover</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.layout" target=_parent class=IParent>mxParallelEdgeLayout</a></div></div></div><div class=SRResult id=SR_LAYOUT_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_LAYOUT_undCELLS')" class=ISymbol>LAYOUT_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.LAYOUT_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.mxEvent.LAYOUT_CELLS" target=_parent class=IParent>mxLayoutManager.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_layoutCells><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.layoutCells" target=_parent class=ISymbol>layoutCells</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_layoutDiagram><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.layoutDiagram" target=_parent class=ISymbol>layoutDiagram</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_layoutFromSinks><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.layoutFromSinks" target=_parent class=ISymbol>layoutFromSinks</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_layoutLeaf><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.layoutLeaf" target=_parent class=ISymbol>layoutLeaf</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_layouts><div class=IEntry><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.layouts" target=_parent class=ISymbol>layouts</a>, <span class=IParent>mxCompositeLayout</span></div></div><div class=SRResult id=SR_layoutSwimlanes><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.layoutSwimlanes" target=_parent class=ISymbol>layoutSwimlanes</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_leave><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.leave" target=_parent class=ISymbol>leave</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_length><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.length" target=_parent class=ISymbol>length</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_levelDistance><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.levelDistance" target=_parent class=ISymbol>levelDistance</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_limitX><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.limitX" target=_parent class=ISymbol>limitX</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_LINE_undARCSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.LINE_ARCSIZE" target=_parent class=ISymbol>LINE_ARCSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_linefeed><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.linefeed" target=_parent class=ISymbol>linefeed</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR2_lineFeed><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.lineFeed" target=_parent class=ISymbol>lineFeed</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_lineTo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_lineTo')" class=ISymbol>lineTo</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.lineTo" target=_parent class=IParent>mxPath</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.lineTo" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.lineTo" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_link><div class=IEntry><a href="javascript:searchResults.Toggle('SR_link')" class=ISymbol>link</a><div class=ISubIndex><a href="../files/mxClient-js.html#mxClient.link" target=_parent class=IParent>mxClient</a><a href="../files/util/mxUtils-js.html#mxUtils.link" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_linkAction><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.linkAction" target=_parent class=ISymbol>linkAction</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_linkInvoke><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.linkInvoke" target=_parent class=ISymbol>linkInvoke</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_load><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.load" target=_parent class=ISymbol>load</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_loadDefaultBundle><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.loadDefaultBundle" target=_parent class=ISymbol>loadDefaultBundle</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_loadInto><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.loadInto" target=_parent class=ISymbol>loadInto</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_localEdgeProcessing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_localEdgeProcessing')" class=ISymbol>localEdgeProcessing</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.localEdgeProcessing" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.localEdgeProcessing" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_LOCKED_undHANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.LOCKED_HANDLE_FILLCOLOR" target=_parent class=ISymbol>LOCKED_HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_lookup><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.lookup" target=_parent class=ISymbol>lookup</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_Loop><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.Loop" target=_parent class=ISymbol>Loop</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_ltrim><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.ltrim" target=_parent class=ISymbol>ltrim</a>, <span class=IParent>mxUtils</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralM.html b/docs/js-api/search/GeneralM.html
    new file mode 100644
    index 000000000..f93a06305
    --- /dev/null
    +++ b/docs/js-api/search/GeneralM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_maintainEdgeParent><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.maintainEdgeParent" target=_parent class=ISymbol>maintainEdgeParent</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_maintainSwimlanes><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.maintainSwimlanes" target=_parent class=ISymbol>maintainSwimlanes</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_makeDraggable><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.makeDraggable" target=_parent class=ISymbol>makeDraggable</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_map><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary.map" target=_parent class=ISymbol>map</a>, <span class=IParent>mxDictionary</span></div></div><div class=SRResult id=SR_mapping><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.mapping" target=_parent class=ISymbol>mapping</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_mark><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mark')" class=ISymbol>mark</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.mark" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.mark" target=_parent class=IParent>mxCellMarker</a></div></div></div><div class=SRResult id=SR2_MARK><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_MARK')" class=ISymbol>MARK</a><div class=ISubIndex><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.mxEvent.MARK" target=_parent class=IParent>mxCellMarker.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.MARK" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_markCell><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.markCell" target=_parent class=ISymbol>markCell</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_markedState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.markedState" target=_parent class=ISymbol>markedState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_marker><div class=IEntry><a href="javascript:searchResults.Toggle('SR_marker')" class=ISymbol>marker</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.marker" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.marker" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_markers><div class=IEntry><a href="javascript:searchResults.Toggle('SR_markers')" class=ISymbol>markers</a><div class=ISubIndex><a href="../files/util/mxImageExport-js.html#mxImageExport.markers" target=_parent class=IParent>mxImageExport</a><a href="../files/shape/mxMarker-js.html#mxMarker.markers" target=_parent class=IParent>mxMarker</a></div></div></div><div class=SRResult id=SR_max><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.max" target=_parent class=ISymbol>max</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_MAX_undHOTSPOT_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.MAX_HOTSPOT_SIZE" target=_parent class=ISymbol>MAX_HOTSPOT_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_maxCells><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.maxCells" target=_parent class=ISymbol>maxCells</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_maxFitScale><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.maxFitScale" target=_parent class=ISymbol>maxFitScale</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_maxHandlers><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.maxHandlers" target=_parent class=ISymbol>maxHandlers</a>, <span class=IParent>mxSelectionCellsHandler</span></div></div><div class=SRResult id=SR_maxHeight><div class=IEntry><a href="../files/shape/mxCylinder-js.html#mxCylinder.maxHeight" target=_parent class=ISymbol>maxHeight</a>, <span class=IParent>mxCylinder</span></div></div><div class=SRResult id=SR_MAXIMIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MAXIMIZE" target=_parent class=ISymbol>MAXIMIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_maximizeImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.maximizeImage" target=_parent class=ISymbol>maximizeImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_maximumContainerSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.maximumContainerSize" target=_parent class=ISymbol>maximumContainerSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_maximumGraphBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.maximumGraphBounds" target=_parent class=ISymbol>maximumGraphBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_maxIterations><div class=IEntry><a href="javascript:searchResults.Toggle('SR_maxIterations')" class=ISymbol>maxIterations</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.maxIterations" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.maxIterations" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.maxIterations" target=_parent class=IParent>mxMedianHybridCrossingReduction</a></div></div></div><div class=SRResult id=SR_maxNoImprovementIterations><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.maxNoImprovementIterations" target=_parent class=ISymbol>maxNoImprovementIterations</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_maxRank><div class=IEntry><a href="javascript:searchResults.Toggle('SR_maxRank')" class=ISymbol>maxRank</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.maxRank" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.maxRank" target=_parent class=IParent>mxGraphHierarchyModel</a></div></div></div><div class=SRResult id=SR_MedianCellSorter><div class=IEntry><a href="javascript:searchResults.Toggle('SR_MedianCellSorter')" class=ISymbol>MedianCellSorter</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.MedianCellSorter" target=_parent class=IParent>MedianCellSorter</a></div></div></div><div class=SRResult id=SR_medianPos><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.medianPos" target=_parent class=ISymbol>medianPos</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_medianRank><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.medianRank" target=_parent class=ISymbol>medianRank</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_medianValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_medianValue')" class=ISymbol>medianValue</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.medianValue" target=_parent class=IParent>MedianCellSorter</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.medianValue" target=_parent class=IParent>mxMedianHybridCrossingReduction</a></div></div></div><div class=SRResult id=SR_medianXValue><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.medianXValue" target=_parent class=ISymbol>medianXValue</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_merge><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.merge" target=_parent class=ISymbol>merge</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_mergeChildren><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mergeChildren" target=_parent class=ISymbol>mergeChildren</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_method><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.method" target=_parent class=ISymbol>method</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_min><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.min" target=_parent class=ISymbol>min</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_MIN_undHOTSPOT_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.MIN_HOTSPOT_SIZE" target=_parent class=ISymbol>MIN_HOTSPOT_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_minDistanceLimit><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.minDistanceLimit" target=_parent class=ISymbol>minDistanceLimit</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_minDistanceLimitSquared><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.minDistanceLimitSquared" target=_parent class=ISymbol>minDistanceLimitSquared</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_minEdgeJetty><div class=IEntry><a href="javascript:searchResults.Toggle('SR_minEdgeJetty')" class=ISymbol>minEdgeJetty</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.minEdgeJetty" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.minEdgeJetty" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_minFitScale><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.minFitScale" target=_parent class=ISymbol>minFitScale</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_MINIMIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MINIMIZE" target=_parent class=ISymbol>MINIMIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_minimizeImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.minimizeImage" target=_parent class=ISymbol>minimizeImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_minimumContainerSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.minimumContainerSize" target=_parent class=ISymbol>minimumContainerSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_minimumGraphSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.minimumGraphSize" target=_parent class=ISymbol>minimumGraphSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_minimumSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_minimumSize')" class=ISymbol>minimumSize</a><div class=ISubIndex><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.minimumSize" target=_parent class=IParent>mxGraphHandler</a><a href="../files/util/mxWindow-js.html#mxWindow.minimumSize" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_minNode><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.minNode" target=_parent class=ISymbol>minNode</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_minPageBreakDist><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.minPageBreakDist" target=_parent class=ISymbol>minPageBreakDist</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_minPath><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.minPath" target=_parent class=ISymbol>minPath</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_minRank><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.minRank" target=_parent class=ISymbol>minRank</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_mixedModeHtml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mixedModeHtml')" class=ISymbol>mixedModeHtml</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.mixedModeHtml" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxConnector-js.html#mxConnector.mixedModeHtml" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.mixedModeHtml" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.mixedModeHtml" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.mixedModeHtml" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxLine-js.html#mxLine.mixedModeHtml" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.mixedModeHtml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.mixedModeHtml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.mixedModeHtml" target=_parent class=IParent>mxStencilShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.mixedModeHtml" target=_parent class=IParent>mxSwimlane</a></div></div></div><div class=SRResult id=SR_mod><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.mod" target=_parent class=ISymbol>mod</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_model><div class=IEntry><a href="javascript:searchResults.Toggle('SR_model')" class=ISymbol>model</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.model" target=_parent class=IParent>mxGraph</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.model" target=_parent class=IParent>mxHierarchicalLayout</a><a href="../files/util/mxSession-js.html#mxSession.model" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_modified><div class=IEntry><a href="javascript:searchResults.Toggle('SR_modified')" class=ISymbol>modified</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.modified" target=_parent class=IParent>mxCellEditor</a><a href="../files/editor/mxEditor-js.html#mxEditor.modified" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_MOUSE_undDOWN><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOUSE_DOWN" target=_parent class=ISymbol>MOUSE_DOWN</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_MOUSE_undMOVE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOUSE_MOVE" target=_parent class=ISymbol>MOUSE_MOVE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_MOUSE_undUP><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOUSE_UP" target=_parent class=ISymbol>MOUSE_UP</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_mouseDown><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mouseDown')" class=ISymbol>mouseDown</a><div class=ISubIndex><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.mouseDown" target=_parent class=IParent>mxCellTracker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mouseDown" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.mouseDown" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.mouseDown" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.mouseDown" target=_parent class=IParent>mxGraphHandler</a><a href="../files/view/mxOutline-js.html#mxOutline.mouseDown" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mouseDown" target=_parent class=IParent>mxPanningHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.mouseDown" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.mouseDown" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.mouseDown" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.mouseDown" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_mouseDownCounter><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mouseDownCounter" target=_parent class=ISymbol>mouseDownCounter</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_mouseListeners><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mouseListeners" target=_parent class=ISymbol>mouseListeners</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_mouseMove><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mouseMove')" class=ISymbol>mouseMove</a><div class=ISubIndex><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.mouseMove" target=_parent class=IParent>mxCellTracker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mouseMove" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.mouseMove" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.mouseMove" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.mouseMove" target=_parent class=IParent>mxGraphHandler</a><a href="../files/view/mxOutline-js.html#mxOutline.mouseMove" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mouseMove" target=_parent class=IParent>mxPanningHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.mouseMove" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.mouseMove" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.mouseMove" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.mouseMove" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_mouseUp><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mouseUp')" class=ISymbol>mouseUp</a><div class=ISubIndex><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.mouseUp" target=_parent class=IParent>mxCellTracker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mouseUp" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.mouseUp" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.mouseUp" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.mouseUp" target=_parent class=IParent>mxGraphHandler</a><a href="../files/view/mxOutline-js.html#mxOutline.mouseUp" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mouseUp" target=_parent class=IParent>mxPanningHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.mouseUp" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.mouseUp" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.mouseUp" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.mouseUp" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_move><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.move" target=_parent class=ISymbol>move</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR2_MOVE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOVE" target=_parent class=ISymbol>MOVE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_MOVE_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_MOVE_undCELLS')" class=ISymbol>MOVE_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.MOVE_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.MOVE_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_MOVE_undEND><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOVE_END" target=_parent class=ISymbol>MOVE_END</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_MOVE_undSTART><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOVE_START" target=_parent class=ISymbol>MOVE_START</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_moveCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_moveCell')" class=ISymbol>moveCell</a><div class=ISubIndex><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.moveCell" target=_parent class=IParent>mxCompositeLayout</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.moveCell" target=_parent class=IParent>mxGraphLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.moveCell" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.moveCell" target=_parent class=IParent>mxStackLayout</a></div></div></div><div class=SRResult id=SR_moveCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_moveCells')" class=ISymbol>moveCells</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.moveCells" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.moveCells" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_moveCircle><div class=IEntry><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.moveCircle" target=_parent class=ISymbol>moveCircle</a>, <span class=IParent>mxCircleLayout</span></div></div><div class=SRResult id=SR_moveEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.moveEnabled" target=_parent class=ISymbol>moveEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_moveHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_moveHandler')" class=ISymbol>moveHandler</a><div class=ISubIndex><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.moveHandler" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.moveHandler" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_moveIconBack><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.moveIconBack" target=_parent class=ISymbol>moveIconBack</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_moveIconFront><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.moveIconFront" target=_parent class=ISymbol>moveIconFront</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_moveLabel><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.moveLabel" target=_parent class=ISymbol>moveLabel</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_moveNode><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.moveNode" target=_parent class=ISymbol>moveNode</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_moveParent><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.moveParent" target=_parent class=ISymbol>moveParent</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_movePreviewAway><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.movePreviewAway" target=_parent class=ISymbol>movePreviewAway</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_movePropertiesDialog><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.movePropertiesDialog" target=_parent class=ISymbol>movePropertiesDialog</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_moveState><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.moveState" target=_parent class=ISymbol>moveState</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_moveTo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_moveTo')" class=ISymbol>moveTo</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.moveTo" target=_parent class=IParent>mxPath</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.moveTo" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.moveTo" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_moveTree><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.moveTree" target=_parent class=ISymbol>moveTree</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_multigraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.multigraph" target=_parent class=ISymbol>multigraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_multiplicities><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.multiplicities" target=_parent class=ISymbol>multiplicities</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_mxActor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxActor')" class=ISymbol>mxActor</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor" target=_parent class=IParent>Global</a><a href="../files/shape/mxActor-js.html#mxActor.mxActor" target=_parent class=IParent>mxActor</a></div></div></div><div class=SRResult id=SR_mxAnimation><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxAnimation')" class=ISymbol>mxAnimation</a><div class=ISubIndex><a href="../files/util/mxAnimation-js.html#mxAnimation" target=_parent class=IParent>Global</a><a href="../files/util/mxAnimation-js.html#mxAnimation.mxAnimation" target=_parent class=IParent>mxAnimation</a></div></div></div><div class=SRResult id=SR_mxArrow><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxArrow')" class=ISymbol>mxArrow</a><div class=ISubIndex><a href="../files/shape/mxArrow-js.html#mxArrow" target=_parent class=IParent>Global</a><a href="../files/shape/mxArrow-js.html#mxArrow.mxArrow" target=_parent class=IParent>mxArrow</a></div></div></div><div class=SRResult id=SR_mxAutoSaveManager><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxAutoSaveManager')" class=ISymbol>mxAutoSaveManager</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager" target=_parent class=IParent>Global</a><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.mxAutoSaveManager" target=_parent class=IParent>mxAutoSaveManager</a></div></div></div><div class=SRResult id=SR_mxCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCell')" class=ISymbol>mxCell</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell" target=_parent class=IParent>Global</a><a href="../files/model/mxCell-js.html#mxCell.mxCell" target=_parent class=IParent>mxCell</a></div></div></div><div class=SRResult id=SR_mxCellAttributeChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellAttributeChange')" class=ISymbol>mxCellAttributeChange</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxCellAttributeChange" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxCellAttributeChange.mxCellAttributeChange" target=_parent class=IParent>mxCellAttributeChange</a></div></div></div><div class=SRResult id=SR_mxCellCodec><div class=IEntry><a href="../files/io/mxCellCodec-js.html#mxCellCodec" target=_parent class=ISymbol>mxCellCodec</a></div></div><div class=SRResult id=SR_mxCellEditor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellEditor')" class=ISymbol>mxCellEditor</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor" target=_parent class=IParent>Global</a><a href="../files/view/mxCellEditor-js.html#mxCellEditor.mxCellEditor" target=_parent class=IParent>mxCellEditor</a></div></div></div><div class=SRResult id=SR_mxCellHighlight><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellHighlight')" class=ISymbol>mxCellHighlight</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight" target=_parent class=IParent>Global</a><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.mxCellHighlight" target=_parent class=IParent>mxCellHighlight</a></div></div></div><div class=SRResult id=SR_mxCellMarker><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellMarker')" class=ISymbol>mxCellMarker</a><div class=ISubIndex><a href="../files/handler/mxCellMarker-js.html#mxCellMarker" target=_parent class=IParent>Global</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.mxCellMarker" target=_parent class=IParent>mxCellMarker</a></div></div></div><div class=SRResult id=SR_mxCellOverlay><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellOverlay')" class=ISymbol>mxCellOverlay</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay" target=_parent class=IParent>Global</a><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.mxCellOverlay" target=_parent class=IParent>mxCellOverlay</a></div></div></div><div class=SRResult id=SR_mxCellPath><div class=IEntry><a href="../files/model/mxCellPath-js.html#mxCellPath" target=_parent class=ISymbol>mxCellPath</a></div></div><div class=SRResult id=SR_mxCellRenderer><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellRenderer')" class=ISymbol>mxCellRenderer</a><div class=ISubIndex><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer" target=_parent class=IParent>Global</a><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.mxCellRenderer" target=_parent class=IParent>mxCellRenderer</a></div></div></div><div class=SRResult id=SR_mxCellState><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellState')" class=ISymbol>mxCellState</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState" target=_parent class=IParent>Global</a><a href="../files/view/mxCellState-js.html#mxCellState.mxCellState" target=_parent class=IParent>mxCellState</a></div></div></div><div class=SRResult id=SR_mxCellStatePreview><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellStatePreview')" class=ISymbol>mxCellStatePreview</a><div class=ISubIndex><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview" target=_parent class=IParent>Global</a><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.mxCellStatePreview" target=_parent class=IParent>mxCellStatePreview</a></div></div></div><div class=SRResult id=SR_mxCellTracker><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellTracker')" class=ISymbol>mxCellTracker</a><div class=ISubIndex><a href="../files/handler/mxCellTracker-js.html#mxCellTracker" target=_parent class=IParent>Global</a><a href="../files/handler/mxCellTracker-js.html#mxCellTracker.mxCellTracker" target=_parent class=IParent>mxCellTracker</a></div></div></div><div class=SRResult id=SR_mxChildChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxChildChange')" class=ISymbol>mxChildChange</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxChildChange" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxChildChange.mxChildChange" target=_parent class=IParent>mxChildChange</a></div></div></div><div class=SRResult id=SR_mxChildChangeCodec><div class=IEntry><a href="../files/io/mxChildChangeCodec-js.html#mxChildChangeCodec" target=_parent class=ISymbol>mxChildChangeCodec</a></div></div><div class=SRResult id=SR_mxCircleLayout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCircleLayout')" class=ISymbol>mxCircleLayout</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout" target=_parent class=IParent>Global</a><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.mxCircleLayout" target=_parent class=IParent>mxCircleLayout</a></div></div></div><div class=SRResult id=SR_mxClient><div class=IEntry><a href="../files/mxClient-js.html#mxClient" target=_parent class=ISymbol>mxClient</a></div></div><div class=SRResult id=SR_mxClipboard><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard" target=_parent class=ISymbol>mxClipboard</a></div></div><div class=SRResult id=SR_mxCloud><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCloud')" class=ISymbol>mxCloud</a><div class=ISubIndex><a href="../files/shape/mxCloud-js.html#mxCloud" target=_parent class=IParent>Global</a><a href="../files/shape/mxCloud-js.html#mxCloud.mxCloud" target=_parent class=IParent>mxCloud</a></div></div></div><div class=SRResult id=SR_mxCodec><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCodec')" class=ISymbol>mxCodec</a><div class=ISubIndex><a href="../files/io/mxCodec-js.html#mxCodec" target=_parent class=IParent>Global</a><a href="../files/io/mxCodec-js.html#mxCodec.mxCodec" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_mxCodecRegistry><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry" target=_parent class=ISymbol>mxCodecRegistry</a></div></div><div class=SRResult id=SR_mxCollapseChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCollapseChange')" class=ISymbol>mxCollapseChange</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxCollapseChange" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxCollapseChange.mxCollapseChange" target=_parent class=IParent>mxCollapseChange</a></div></div></div><div class=SRResult id=SR_mxCompactTreeLayout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCompactTreeLayout')" class=ISymbol>mxCompactTreeLayout</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout" target=_parent class=IParent>Global</a><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.mxCompactTreeLayout" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.mxCompactTreeLayout" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.mxCompactTreeLayout" target=_parent class=IParent>mxParallelEdgeLayout</a></div></div></div><div class=SRResult id=SR_mxCompositeLayout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCompositeLayout')" class=ISymbol>mxCompositeLayout</a><div class=ISubIndex><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout" target=_parent class=IParent>Global</a><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.mxCompositeLayout" target=_parent class=IParent>mxCompositeLayout</a></div></div></div><div class=SRResult id=SR_mxConnectionConstraint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxConnectionConstraint')" class=ISymbol>mxConnectionConstraint</a><div class=ISubIndex><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint" target=_parent class=IParent>Global</a><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint.mxConnectionConstraint" target=_parent class=IParent>mxConnectionConstraint</a></div></div></div><div class=SRResult id=SR_mxConnectionHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxConnectionHandler')" class=ISymbol>mxConnectionHandler</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler" target=_parent class=IParent>Global</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mxConnectionHandler" target=_parent class=IParent>mxConnectionHandler</a></div></div></div><div class=SRResult id=SR_mxConnector><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxConnector')" class=ISymbol>mxConnector</a><div class=ISubIndex><a href="../files/shape/mxConnector-js.html#mxConnector" target=_parent class=IParent>Global</a><a href="../files/shape/mxConnector-js.html#mxConnector.mxConnector" target=_parent class=IParent>mxConnector</a></div></div></div><div class=SRResult id=SR_mxConstants><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants" target=_parent class=ISymbol>mxConstants</a></div></div><div class=SRResult id=SR_mxConstraintHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxConstraintHandler')" class=ISymbol>mxConstraintHandler</a><div class=ISubIndex><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler" target=_parent class=IParent>Global</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.mxConstraintHandler" target=_parent class=IParent>mxConstraintHandler</a></div></div></div><div class=SRResult id=SR_mxCoordinateAssignment><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCoordinateAssignment')" class=ISymbol>mxCoordinateAssignment</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.mxCoordinateAssignment" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_mxCurrentRootChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCurrentRootChange')" class=ISymbol>mxCurrentRootChange</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxCurrentRootChange" target=_parent class=IParent>Global</a><a href="../files/view/mxGraphView-js.html#mxCurrentRootChange.mxCurrentRootChange" target=_parent class=IParent>mxCurrentRootChange</a><a href="../files/view/mxGraphSelectionModel-js.html#mxSelectionChange.mxCurrentRootChange" target=_parent class=IParent>mxSelectionChange</a></div></div></div><div class=SRResult id=SR_mxCylinder><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCylinder')" class=ISymbol>mxCylinder</a><div class=ISubIndex><a href="../files/shape/mxCylinder-js.html#mxCylinder" target=_parent class=IParent>Global</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.mxCylinder" target=_parent class=IParent>mxCylinder</a></div></div></div><div class=SRResult id=SR_mxDefaultKeyHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxDefaultKeyHandler')" class=ISymbol>mxDefaultKeyHandler</a><div class=ISubIndex><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler" target=_parent class=IParent>Global</a><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.mxDefaultKeyHandler" target=_parent class=IParent>mxDefaultKeyHandler</a></div></div></div><div class=SRResult id=SR_mxDefaultKeyHandlerCodec><div class=IEntry><a href="../files/io/mxDefaultKeyHandlerCodec-js.html#mxDefaultKeyHandlerCodec" target=_parent class=ISymbol>mxDefaultKeyHandlerCodec</a></div></div><div class=SRResult id=SR_mxDefaultPopupMenu><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxDefaultPopupMenu')" class=ISymbol>mxDefaultPopupMenu</a><div class=ISubIndex><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu" target=_parent class=IParent>Global</a><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.mxDefaultPopupMenu" target=_parent class=IParent>mxDefaultPopupMenu</a></div></div></div><div class=SRResult id=SR_mxDefaultPopupMenuCodec><div class=IEntry><a href="../files/io/mxDefaultPopupMenuCodec-js.html#mxDefaultPopupMenuCodec" target=_parent class=ISymbol>mxDefaultPopupMenuCodec</a></div></div><div class=SRResult id=SR_mxDefaultToolbar><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxDefaultToolbar')" class=ISymbol>mxDefaultToolbar</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar" target=_parent class=IParent>Global</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.mxDefaultToolbar" target=_parent class=IParent>mxDefaultToolbar</a></div></div></div><div class=SRResult id=SR_mxDefaultToolbarCodec><div class=IEntry><a href="../files/io/mxDefaultToolbarCodec-js.html#mxDefaultToolbarCodec" target=_parent class=ISymbol>mxDefaultToolbarCodec</a></div></div><div class=SRResult id=SR_mxDictionary><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary" target=_parent class=ISymbol>mxDictionary</a></div></div><div class=SRResult id=SR_mxDivResizer><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxDivResizer')" class=ISymbol>mxDivResizer</a><div class=ISubIndex><a href="../files/util/mxDivResizer-js.html#mxDivResizer" target=_parent class=IParent>Global</a><a href="../files/util/mxDivResizer-js.html#mxDivResizer.mxDivResizer" target=_parent class=IParent>mxDivResizer</a></div></div></div><div class=SRResult id=SR_mxDoubleEllipse><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxDoubleEllipse')" class=ISymbol>mxDoubleEllipse</a><div class=ISubIndex><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse" target=_parent class=IParent>Global</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.mxDoubleEllipse" target=_parent class=IParent>mxDoubleEllipse</a></div></div></div><div class=SRResult id=SR_mxDragSource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxDragSource')" class=ISymbol>mxDragSource</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource" target=_parent class=IParent>Global</a><a href="../files/util/mxDragSource-js.html#mxDragSource.mxDragSource" target=_parent class=IParent>mxDragSource</a></div></div></div><div class=SRResult id=SR_mxEdgeHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxEdgeHandler')" class=ISymbol>mxEdgeHandler</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.mxEdgeHandler" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.mxEdgeHandler" target=_parent class=IParent>mxElbowEdgeHandler</a></div></div></div><div class=SRResult id=SR_mxEdgeLabelLayout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxEdgeLabelLayout')" class=ISymbol>mxEdgeLabelLayout</a><div class=ISubIndex><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout" target=_parent class=IParent>Global</a><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout.mxEdgeLabelLayout" target=_parent class=IParent>mxEdgeLabelLayout</a></div></div></div><div class=SRResult id=SR_mxEdgeSegmentHandler_perjs><div class=IEntry><a href="../files/handler/mxEdgeSegmentHandler-js.html#mxEdgeSegmentHandler.js" target=_parent class=ISymbol>mxEdgeSegmentHandler.js</a></div></div><div class=SRResult id=SR_mxEdgeStyle><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle" target=_parent class=ISymbol>mxEdgeStyle</a></div></div><div class=SRResult id=SR_mxEditor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxEditor')" class=ISymbol>mxEditor</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor" target=_parent class=IParent>Global</a><a href="../files/editor/mxEditor-js.html#mxEditor.mxEditor" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_mxEditorCodec><div class=IEntry><a href="../files/io/mxEditorCodec-js.html#mxEditorCodec" target=_parent class=ISymbol>mxEditorCodec</a></div></div><div class=SRResult id=SR_mxEffects><div class=IEntry><a href="../files/util/mxEffects-js.html#mxEffects" target=_parent class=ISymbol>mxEffects</a></div></div><div class=SRResult id=SR_mxElbowEdgeHandler><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler" target=_parent class=ISymbol>mxElbowEdgeHandler</a></div></div><div class=SRResult id=SR_mxEllipse><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxEllipse')" class=ISymbol>mxEllipse</a><div class=ISubIndex><a href="../files/shape/mxEllipse-js.html#mxEllipse" target=_parent class=IParent>Global</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.mxEllipse" target=_parent class=IParent>mxEllipse</a></div></div></div><div class=SRResult id=SR_mxEvent><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent" target=_parent class=ISymbol>mxEvent</a></div></div><div class=SRResult id=SR_mxEventObject><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxEventObject')" class=ISymbol>mxEventObject</a><div class=ISubIndex><a href="../files/util/mxEventObject-js.html#mxEventObject" target=_parent class=IParent>Global</a><a href="../files/util/mxEventObject-js.html#mxEventObject.mxEventObject" target=_parent class=IParent>mxEventObject</a></div></div></div><div class=SRResult id=SR_mxEventSource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxEventSource')" class=ISymbol>mxEventSource</a><div class=ISubIndex><a href="../files/util/mxEventSource-js.html#mxEventSource" target=_parent class=IParent>Global</a><a href="../files/util/mxDictionary-js.html#mxDictionary.mxEventSource" target=_parent class=IParent>mxDictionary</a><a href="../files/util/mxEventSource-js.html#mxEventSource.mxEventSource" target=_parent class=IParent>mxEventSource</a></div></div></div><div class=SRResult id=SR_mxFastOrganicLayout><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout" target=_parent class=ISymbol>mxFastOrganicLayout</a></div></div><div class=SRResult id=SR_mxForm><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxForm')" class=ISymbol>mxForm</a><div class=ISubIndex><a href="../files/util/mxForm-js.html#mxForm" target=_parent class=IParent>Global</a><a href="../files/util/mxForm-js.html#mxForm.mxForm" target=_parent class=IParent>mxForm</a></div></div></div><div class=SRResult id=SR_mxGenericChangeCodec><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGenericChangeCodec')" class=ISymbol>mxGenericChangeCodec</a><div class=ISubIndex><a href="../files/io/mxGenericChangeCodec-js.html#mxGenericChangeCodec" target=_parent class=IParent>Global</a><a href="../files/io/mxGenericChangeCodec-js.html#mxGenericChangeCodec.mxGenericChangeCodec" target=_parent class=IParent>mxGenericChangeCodec</a></div></div></div><div class=SRResult id=SR_mxGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGeometry')" class=ISymbol>mxGeometry</a><div class=ISubIndex><a href="../files/model/mxGeometry-js.html#mxGeometry" target=_parent class=IParent>Global</a><a href="../files/model/mxGeometry-js.html#mxGeometry.mxGeometry" target=_parent class=IParent>mxGeometry</a></div></div></div><div class=SRResult id=SR_mxGeometryChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGeometryChange')" class=ISymbol>mxGeometryChange</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGeometryChange" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxGeometryChange.mxGeometryChange" target=_parent class=IParent>mxGeometryChange</a></div></div></div><div class=SRResult id=SR_mxGraph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraph')" class=ISymbol>mxGraph</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph" target=_parent class=IParent>Global</a><a href="../files/view/mxGraph-js.html#mxGraph.mxGraph" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_mxgraph_equseen><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxgraph=seen" target=_parent class=ISymbol>mxgraph=seen</a></div></div><div class=SRResult id=SR_mxGraphAbstractHierarchyCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphAbstractHierarchyCell')" class=ISymbol>mxGraphAbstractHierarchyCell</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.mxGraphAbstractHierarchyCell" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a></div></div></div><div class=SRResult id=SR_mxGraphCodec><div class=IEntry><a href="../files/io/mxGraphCodec-js.html#mxGraphCodec" target=_parent class=ISymbol>mxGraphCodec</a></div></div><div class=SRResult id=SR_mxGraphHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphHandler')" class=ISymbol>mxGraphHandler</a><div class=ISubIndex><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler" target=_parent class=IParent>Global</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.mxGraphHandler" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_mxGraphHierarchyEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphHierarchyEdge')" class=ISymbol>mxGraphHierarchyEdge</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.mxGraphHierarchyEdge" target=_parent class=IParent>mxGraphHierarchyEdge</a></div></div></div><div class=SRResult id=SR_mxGraphHierarchyModel><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphHierarchyModel')" class=ISymbol>mxGraphHierarchyModel</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.mxGraphHierarchyModel" target=_parent class=IParent>mxGraphHierarchyModel</a></div></div></div><div class=SRResult id=SR_mxGraphHierarchyNode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphHierarchyNode')" class=ISymbol>mxGraphHierarchyNode</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.mxGraphHierarchyNode" target=_parent class=IParent>mxGraphHierarchyNode</a></div></div></div><div class=SRResult id=SR_mxGraphLayout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphLayout')" class=ISymbol>mxGraphLayout</a><div class=ISubIndex><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout" target=_parent class=IParent>Global</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.mxGraphLayout" target=_parent class=IParent>mxGraphLayout</a></div></div></div><div class=SRResult id=SR_mxGraphModel><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphModel')" class=ISymbol>mxGraphModel</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxGraphModel" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxGraphModel" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_mxGraphSelectionModel><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphSelectionModel')" class=ISymbol>mxGraphSelectionModel</a><div class=ISubIndex><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel" target=_parent class=IParent>Global</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.mxGraphSelectionModel" target=_parent class=IParent>mxGraphSelectionModel</a></div></div></div><div class=SRResult id=SR_mxGraphView><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphView')" class=ISymbol>mxGraphView</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView" target=_parent class=IParent>Global</a><a href="../files/view/mxGraphView-js.html#mxGraphView.mxGraphView" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_mxGraphViewCodec><div class=IEntry><a href="../files/io/mxGraphViewCodec-js.html#mxGraphViewCodec" target=_parent class=ISymbol>mxGraphViewCodec</a></div></div><div class=SRResult id=SR_mxGuide><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGuide')" class=ISymbol>mxGuide</a><div class=ISubIndex><a href="../files/util/mxGuide-js.html#mxGuide" target=_parent class=IParent>Global</a><a href="../files/util/mxGuide-js.html#mxGuide.mxGuide" target=_parent class=IParent>mxGuide</a></div></div></div><div class=SRResult id=SR_mxHexagon><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxHexagon')" class=ISymbol>mxHexagon</a><div class=ISubIndex><a href="../files/shape/mxHexagon-js.html#mxHexagon" target=_parent class=IParent>Global</a><a href="../files/shape/mxHexagon-js.html#mxHexagon.mxHexagon" target=_parent class=IParent>mxHexagon</a></div></div></div><div class=SRResult id=SR_mxHierarchicalLayout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxHierarchicalLayout')" class=ISymbol>mxHierarchicalLayout</a><div class=ISubIndex><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.mxHierarchicalLayout" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_mxHierarchicalLayoutStage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxHierarchicalLayoutStage')" class=ISymbol>mxHierarchicalLayoutStage</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html#mxHierarchicalLayoutStage" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html#mxHierarchicalLayoutStage.mxHierarchicalLayoutStage" target=_parent class=IParent>mxHierarchicalLayoutStage</a></div></div></div><div class=SRResult id=SR_mxImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxImage')" class=ISymbol>mxImage</a><div class=ISubIndex><a href="../files/util/mxImage-js.html#mxImage" target=_parent class=IParent>Global</a><a href="../files/util/mxImage-js.html#mxImage.mxImage" target=_parent class=IParent>mxImage</a></div></div></div><div class=SRResult id=SR_mxImageBundle><div class=IEntry><a href="../files/util/mxImageBundle-js.html#mxImageBundle" target=_parent class=ISymbol>mxImageBundle</a></div></div><div class=SRResult id=SR_mxImageExport><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxImageExport')" class=ISymbol>mxImageExport</a><div class=ISubIndex><a href="../files/util/mxImageExport-js.html#mxImageExport" target=_parent class=IParent>Global</a><a href="../files/util/mxImageExport-js.html#mxImageExport.mxImageExport" target=_parent class=IParent>mxImageExport</a></div></div></div><div class=SRResult id=SR_mxImageShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxImageShape')" class=ISymbol>mxImageShape</a><div class=ISubIndex><a href="../files/shape/mxImageShape-js.html#mxImageShape" target=_parent class=IParent>Global</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.mxImageShape" target=_parent class=IParent>mxImageShape</a></div></div></div><div class=SRResult id=SR_mxKeyHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxKeyHandler')" class=ISymbol>mxKeyHandler</a><div class=ISubIndex><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler" target=_parent class=IParent>Global</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.mxKeyHandler" target=_parent class=IParent>mxKeyHandler</a></div></div></div><div class=SRResult id=SR_mxLabel><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxLabel')" class=ISymbol>mxLabel</a><div class=ISubIndex><a href="../files/shape/mxLabel-js.html#mxLabel" target=_parent class=IParent>Global</a><a href="../files/shape/mxLabel-js.html#mxLabel.mxLabel" target=_parent class=IParent>mxLabel</a></div></div></div><div class=SRResult id=SR_mxLayoutManager><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxLayoutManager')" class=ISymbol>mxLayoutManager</a><div class=ISubIndex><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager" target=_parent class=IParent>Global</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.mxLayoutManager" target=_parent class=IParent>mxLayoutManager</a></div></div></div><div class=SRResult id=SR_mxLine><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxLine')" class=ISymbol>mxLine</a><div class=ISubIndex><a href="../files/shape/mxLine-js.html#mxLine" target=_parent class=IParent>Global</a><a href="../files/shape/mxLine-js.html#mxLine.mxLine" target=_parent class=IParent>mxLine</a></div></div></div><div class=SRResult id=SR_mxLoadResources><div class=IEntry><a href="../files/mxClient-js.html#mxClient.mxLoadResources" target=_parent class=ISymbol>mxLoadResources</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_mxLoadStylesheets><div class=IEntry><a href="../files/mxClient-js.html#mxClient.mxLoadStylesheets" target=_parent class=ISymbol>mxLoadStylesheets</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_mxLog><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog" target=_parent class=ISymbol>mxLog</a></div></div><div class=SRResult id=SR_mxMarker><div class=IEntry><a href="../files/shape/mxMarker-js.html#mxMarker" target=_parent class=ISymbol>mxMarker</a></div></div><div class=SRResult id=SR_mxMedianHybridCrossingReduction><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxMedianHybridCrossingReduction')" class=ISymbol>mxMedianHybridCrossingReduction</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.mxMedianHybridCrossingReduction" target=_parent class=IParent>mxMedianHybridCrossingReduction</a></div></div></div><div class=SRResult id=SR_mxMinimumCycleRemover><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxMinimumCycleRemover')" class=ISymbol>mxMinimumCycleRemover</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover" target=_parent class=IParent>Global</a><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover.mxMinimumCycleRemover" target=_parent class=IParent>mxMinimumCycleRemover</a></div></div></div><div class=SRResult id=SR_mxModelCodec><div class=IEntry><a href="../files/io/mxModelCodec-js.html#mxModelCodec" target=_parent class=ISymbol>mxModelCodec</a></div></div><div class=SRResult id=SR_mxMorphing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxMorphing')" class=ISymbol>mxMorphing</a><div class=ISubIndex><a href="../files/util/mxMorphing-js.html#mxMorphing" target=_parent class=IParent>Global</a><a href="../files/util/mxMorphing-js.html#mxMorphing.mxMorphing" target=_parent class=IParent>mxMorphing</a></div></div></div><div class=SRResult id=SR_mxMouseEvent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxMouseEvent')" class=ISymbol>mxMouseEvent</a><div class=ISubIndex><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent" target=_parent class=IParent>Global</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.mxMouseEvent" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_mxMultiplicity><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxMultiplicity')" class=ISymbol>mxMultiplicity</a><div class=ISubIndex><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity" target=_parent class=IParent>Global</a><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.mxMultiplicity" target=_parent class=IParent>mxMultiplicity</a></div></div></div><div class=SRResult id=SR_mxObjectCodec><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxObjectCodec')" class=ISymbol>mxObjectCodec</a><div class=ISubIndex><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec" target=_parent class=IParent>Global</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.mxObjectCodec" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_mxObjectIdentity><div class=IEntry><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity" target=_parent class=ISymbol>mxObjectIdentity</a></div></div><div class=SRResult id=SR_mxOutline><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxOutline')" class=ISymbol>mxOutline</a><div class=ISubIndex><a href="../files/view/mxOutline-js.html#mxOutline" target=_parent class=IParent>Global</a><a href="../files/view/mxOutline-js.html#mxOutline.mxOutline" target=_parent class=IParent>mxOutline</a></div></div></div><div class=SRResult id=SR_mxPanningHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxPanningHandler')" class=ISymbol>mxPanningHandler</a><div class=ISubIndex><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler" target=_parent class=IParent>Global</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mxPanningHandler" target=_parent class=IParent>mxPanningHandler</a></div></div></div><div class=SRResult id=SR_mxPanningManager><div class=IEntry><a href="../files/util/mxPanningManager-js.html#mxPanningManager" target=_parent class=ISymbol>mxPanningManager</a></div></div><div class=SRResult id=SR_mxParallelEdgeLayout><div class=IEntry><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout" target=_parent class=ISymbol>mxParallelEdgeLayout</a></div></div><div class=SRResult id=SR_mxPartitionLayout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxPartitionLayout')" class=ISymbol>mxPartitionLayout</a><div class=ISubIndex><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout" target=_parent class=IParent>Global</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.mxPartitionLayout" target=_parent class=IParent>mxPartitionLayout</a></div></div></div><div class=SRResult id=SR_mxPath><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxPath')" class=ISymbol>mxPath</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath" target=_parent class=IParent>Global</a><a href="../files/util/mxPath-js.html#mxPath.mxPath" target=_parent class=IParent>mxPath</a></div></div></div><div class=SRResult id=SR_mxPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter" target=_parent class=ISymbol>mxPerimeter</a></div></div><div class=SRResult id=SR_mxPoint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxPoint')" class=ISymbol>mxPoint</a><div class=ISubIndex><a href="../files/util/mxPoint-js.html#mxPoint" target=_parent class=IParent>Global</a><a href="../files/util/mxPoint-js.html#mxPoint.mxPoint" target=_parent class=IParent>mxPoint</a></div></div></div><div class=SRResult id=SR_mxPolyline><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxPolyline')" class=ISymbol>mxPolyline</a><div class=ISubIndex><a href="../files/shape/mxPolyline-js.html#mxPolyline" target=_parent class=IParent>Global</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.mxPolyline" target=_parent class=IParent>mxPolyline</a></div></div></div><div class=SRResult id=SR_mxPopupMenu><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxPopupMenu')" class=ISymbol>mxPopupMenu</a><div class=ISubIndex><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu" target=_parent class=IParent>Global</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.mxPopupMenu" target=_parent class=IParent>mxPopupMenu</a></div></div></div><div class=SRResult id=SR_mxPrintPreview><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxPrintPreview')" class=ISymbol>mxPrintPreview</a><div class=ISubIndex><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview" target=_parent class=IParent>Global</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.mxPrintPreview" target=_parent class=IParent>mxPrintPreview</a></div></div></div><div class=SRResult id=SR_mxRectangle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxRectangle')" class=ISymbol>mxRectangle</a><div class=ISubIndex><a href="../files/util/mxRectangle-js.html#mxRectangle" target=_parent class=IParent>Global</a><a href="../files/util/mxRectangle-js.html#mxRectangle.mxRectangle" target=_parent class=IParent>mxRectangle</a><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.mxRectangle" target=_parent class=IParent>mxTemporaryCellStates</a></div></div></div><div class=SRResult id=SR_mxRectangleShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxRectangleShape')" class=ISymbol>mxRectangleShape</a><div class=ISubIndex><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape" target=_parent class=IParent>Global</a><a href="../files/shape/mxRectangleShape-js.html#mxRectangleShape.mxRectangleShape" target=_parent class=IParent>mxRectangleShape</a></div></div></div><div class=SRResult id=SR_mxResources><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources" target=_parent class=ISymbol>mxResources</a></div></div><div class=SRResult id=SR_mxRhombus><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxRhombus')" class=ISymbol>mxRhombus</a><div class=ISubIndex><a href="../files/shape/mxRhombus-js.html#mxRhombus" target=_parent class=IParent>Global</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.mxRhombus" target=_parent class=IParent>mxRhombus</a></div></div></div><div class=SRResult id=SR_mxRootChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxRootChange')" class=ISymbol>mxRootChange</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxRootChange" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxRootChange.mxRootChange" target=_parent class=IParent>mxRootChange</a></div></div></div><div class=SRResult id=SR_mxRootChangeCodec><div class=IEntry><a href="../files/io/mxRootChangeCodec-js.html#mxRootChangeCodec" target=_parent class=ISymbol>mxRootChangeCodec</a></div></div><div class=SRResult id=SR_mxRubberband><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxRubberband')" class=ISymbol>mxRubberband</a><div class=ISubIndex><a href="../files/handler/mxRubberband-js.html#mxRubberband" target=_parent class=IParent>Global</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.mxRubberband" target=_parent class=IParent>mxRubberband</a></div></div></div><div class=SRResult id=SR_mxSelectionCellsHandler><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler" target=_parent class=ISymbol>mxSelectionCellsHandler</a></div></div><div class=SRResult id=SR_mxSelectionChange><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxSelectionChange" target=_parent class=ISymbol>mxSelectionChange</a></div></div><div class=SRResult id=SR_mxSession><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxSession')" class=ISymbol>mxSession</a><div class=ISubIndex><a href="../files/util/mxSession-js.html#mxSession" target=_parent class=IParent>Global</a><a href="../files/util/mxSession-js.html#mxSession.mxSession" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_mxShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxShape')" class=ISymbol>mxShape</a><div class=ISubIndex><a href="../files/shape/mxShape-js.html#mxShape" target=_parent class=IParent>Global</a><a href="../files/shape/mxShape-js.html#mxShape.mxShape" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_mxSpaceManager><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxSpaceManager')" class=ISymbol>mxSpaceManager</a><div class=ISubIndex><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager" target=_parent class=IParent>Global</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.mxSpaceManager" target=_parent class=IParent>mxSpaceManager</a></div></div></div><div class=SRResult id=SR_mxStackLayout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxStackLayout')" class=ISymbol>mxStackLayout</a><div class=ISubIndex><a href="../files/layout/mxStackLayout-js.html#mxStackLayout" target=_parent class=IParent>Global</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.mxStackLayout" target=_parent class=IParent>mxStackLayout</a></div></div></div><div class=SRResult id=SR_mxStencil><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil" target=_parent class=ISymbol>mxStencil</a></div></div><div class=SRResult id=SR_mxStencilRegistry><div class=IEntry><a href="../files/shape/mxStencilRegistry-js.html#mxStencilRegistry" target=_parent class=ISymbol>mxStencilRegistry</a></div></div><div class=SRResult id=SR_mxStencilShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxStencilShape')" class=ISymbol>mxStencilShape</a><div class=ISubIndex><a href="../files/shape/mxStencilShape-js.html#mxStencilShape" target=_parent class=IParent>Global</a><a href="../files/shape/mxStencil-js.html#mxStencil.mxStencilShape" target=_parent class=IParent>mxStencil</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.mxStencilShape" target=_parent class=IParent>mxStencilShape</a></div></div></div><div class=SRResult id=SR_mxStyleChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxStyleChange')" class=ISymbol>mxStyleChange</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxStyleChange" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxStyleChange.mxStyleChange" target=_parent class=IParent>mxStyleChange</a></div></div></div><div class=SRResult id=SR_mxStyleRegistry><div class=IEntry><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry" target=_parent class=ISymbol>mxStyleRegistry</a></div></div><div class=SRResult id=SR_mxStylesheet><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxStylesheet')" class=ISymbol>mxStylesheet</a><div class=ISubIndex><a href="../files/view/mxStylesheet-js.html#mxStylesheet" target=_parent class=IParent>Global</a><a href="../files/view/mxStylesheet-js.html#mxStylesheet.mxStylesheet" target=_parent class=IParent>mxStylesheet</a></div></div></div><div class=SRResult id=SR_mxStylesheetCodec><div class=IEntry><a href="../files/io/mxStylesheetCodec-js.html#mxStylesheetCodec" target=_parent class=ISymbol>mxStylesheetCodec</a></div></div><div class=SRResult id=SR_mxSvgCanvas2D><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxSvgCanvas2D')" class=ISymbol>mxSvgCanvas2D</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D" target=_parent class=IParent>Global</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.mxSvgCanvas2D" target=_parent class=IParent>mxSvgCanvas2D</a></div></div></div><div class=SRResult id=SR_mxSwimlane><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxSwimlane')" class=ISymbol>mxSwimlane</a><div class=ISubIndex><a href="../files/shape/mxSwimlane-js.html#mxSwimlane" target=_parent class=IParent>Global</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.mxSwimlane" target=_parent class=IParent>mxSwimlane</a></div></div></div><div class=SRResult id=SR_mxSwimlaneManager><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxSwimlaneManager')" class=ISymbol>mxSwimlaneManager</a><div class=ISubIndex><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager" target=_parent class=IParent>Global</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.mxSwimlaneManager" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_mxTemporaryCellStates><div class=IEntry><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates" target=_parent class=ISymbol>mxTemporaryCellStates</a></div></div><div class=SRResult id=SR_mxTerminalChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxTerminalChange')" class=ISymbol>mxTerminalChange</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxTerminalChange" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxTerminalChange.mxTerminalChange" target=_parent class=IParent>mxTerminalChange</a></div></div></div><div class=SRResult id=SR_mxTerminalChangeCodec><div class=IEntry><a href="../files/io/mxTerminalChangeCodec-js.html#mxTerminalChangeCodec" target=_parent class=ISymbol>mxTerminalChangeCodec</a></div></div><div class=SRResult id=SR_mxText><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxText')" class=ISymbol>mxText</a><div class=ISubIndex><a href="../files/shape/mxText-js.html#mxText" target=_parent class=IParent>Global</a><a href="../files/shape/mxText-js.html#mxText.mxText" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_mxToolbar><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxToolbar')" class=ISymbol>mxToolbar</a><div class=ISubIndex><a href="../files/util/mxToolbar-js.html#mxToolbar" target=_parent class=IParent>Global</a><a href="../files/util/mxToolbar-js.html#mxToolbar.mxToolbar" target=_parent class=IParent>mxToolbar</a></div></div></div><div class=SRResult id=SR_mxTooltipHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxTooltipHandler')" class=ISymbol>mxTooltipHandler</a><div class=ISubIndex><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler" target=_parent class=IParent>Global</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.mxTooltipHandler" target=_parent class=IParent>mxTooltipHandler</a></div></div></div><div class=SRResult id=SR_mxTransient><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.mxTransient" target=_parent class=ISymbol>mxTransient</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_mxTriangle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxTriangle')" class=ISymbol>mxTriangle</a><div class=ISubIndex><a href="../files/shape/mxTriangle-js.html#mxTriangle" target=_parent class=IParent>Global</a><a href="../files/shape/mxTriangle-js.html#mxTriangle.mxTriangle" target=_parent class=IParent>mxTriangle</a></div></div></div><div class=SRResult id=SR_mxUndoableEdit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxUndoableEdit')" class=ISymbol>mxUndoableEdit</a><div class=ISubIndex><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit" target=_parent class=IParent>Global</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.mxUndoableEdit" target=_parent class=IParent>mxUndoableEdit</a></div></div></div><div class=SRResult id=SR_mxUndoManager><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxUndoManager')" class=ISymbol>mxUndoManager</a><div class=ISubIndex><a href="../files/util/mxUndoManager-js.html#mxUndoManager" target=_parent class=IParent>Global</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxUndoManager" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR_mxUrlConverter><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter" target=_parent class=ISymbol>mxUrlConverter</a></div></div><div class=SRResult id=SR_mxUtils><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils" target=_parent class=ISymbol>mxUtils</a></div></div><div class=SRResult id=SR_mxValueChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxValueChange')" class=ISymbol>mxValueChange</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxValueChange" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxValueChange.mxValueChange" target=_parent class=IParent>mxValueChange</a></div></div></div><div class=SRResult id=SR_mxVertexHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxVertexHandler')" class=ISymbol>mxVertexHandler</a><div class=ISubIndex><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler" target=_parent class=IParent>Global</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.mxVertexHandler" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_mxVisibleChange><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxVisibleChange')" class=ISymbol>mxVisibleChange</a><div class=ISubIndex><a href="../files/model/mxGraphModel-js.html#mxVisibleChange" target=_parent class=IParent>Global</a><a href="../files/model/mxGraphModel-js.html#mxVisibleChange.mxVisibleChange" target=_parent class=IParent>mxVisibleChange</a></div></div></div><div class=SRResult id=SR_mxWindow><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow" target=_parent class=ISymbol>mxWindow</a></div></div><div class=SRResult id=SR_mxXmlCanvas2D><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxXmlCanvas2D')" class=ISymbol>mxXmlCanvas2D</a><div class=ISubIndex><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D" target=_parent class=IParent>Global</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.mxXmlCanvas2D" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_mxXmlRequest><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxXmlRequest')" class=ISymbol>mxXmlRequest</a><div class=ISubIndex><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest" target=_parent class=IParent>Global</a><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.mxXmlRequest" target=_parent class=IParent>mxXmlRequest</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralN.html b/docs/js-api/search/GeneralN.html
    new file mode 100644
    index 000000000..609ea8586
    --- /dev/null
    +++ b/docs/js-api/search/GeneralN.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject.name" target=_parent class=ISymbol>name</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_neighbours><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.neighbours" target=_parent class=ISymbol>neighbours</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_nestedBestRanks><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.nestedBestRanks" target=_parent class=ISymbol>nestedBestRanks</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_nextId><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.nextId" target=_parent class=ISymbol>nextId</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_nextLayerConnectedCache><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.nextLayerConnectedCache" target=_parent class=ISymbol>nextLayerConnectedCache</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_nextLayerConnectedCells><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.nextLayerConnectedCells" target=_parent class=ISymbol>nextLayerConnectedCells</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_NO_undFO><div class=IEntry><a href="../files/mxClient-js.html#mxClient.NO_FO" target=_parent class=ISymbol>NO_FO</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_node><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.node" target=_parent class=ISymbol>node</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_nodeDistance><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.nodeDistance" target=_parent class=ISymbol>nodeDistance</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_NODETYPE_undATTRIBUTE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_ATTRIBUTE" target=_parent class=ISymbol>NODETYPE_ATTRIBUTE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undCDATA><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_CDATA" target=_parent class=ISymbol>NODETYPE_CDATA</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undCOMMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_COMMENT" target=_parent class=ISymbol>NODETYPE_COMMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undDOCUMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_DOCUMENT" target=_parent class=ISymbol>NODETYPE_DOCUMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undDOCUMENT_undFRAGMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_DOCUMENT_FRAGMENT" target=_parent class=ISymbol>NODETYPE_DOCUMENT_FRAGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undDOCUMENTTYPE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_DOCUMENTTYPE" target=_parent class=ISymbol>NODETYPE_DOCUMENTTYPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undELEMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_ELEMENT" target=_parent class=ISymbol>NODETYPE_ELEMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undENTITY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_ENTITY" target=_parent class=ISymbol>NODETYPE_ENTITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undENTITY_undREFERENCE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_ENTITY_REFERENCE" target=_parent class=ISymbol>NODETYPE_ENTITY_REFERENCE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undNOTATION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_NOTATION" target=_parent class=ISymbol>NODETYPE_NOTATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undPROCESSING_undINSTRUCTION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_PROCESSING_INSTRUCTION" target=_parent class=ISymbol>NODETYPE_PROCESSING_INSTRUCTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undTEXT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_TEXT" target=_parent class=ISymbol>NODETYPE_TEXT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NONE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NONE" target=_parent class=ISymbol>NONE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_noReset><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.noReset" target=_parent class=ISymbol>noReset</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_NORMALIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.NORMALIZE" target=_parent class=ISymbol>NORMALIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_normalizeImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.normalizeImage" target=_parent class=ISymbol>normalizeImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_normalKeys><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.normalKeys" target=_parent class=ISymbol>normalKeys</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_notify><div class=IEntry><a href="javascript:searchResults.Toggle('SR_notify')" class=ISymbol>notify</a><div class=ISubIndex><a href="../files/util/mxSession-js.html#mxSession.notify" target=_parent class=IParent>mxSession</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.notify" target=_parent class=IParent>mxUndoableEdit</a></div></div></div><div class=SRResult id=SR2_NOTIFY><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_NOTIFY')" class=ISymbol>NOTIFY</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.NOTIFY" target=_parent class=IParent>mxEvent</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.NOTIFY" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.NOTIFY" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_NS_undSVG><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NS_SVG" target=_parent class=ISymbol>NS_SVG</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undXHTML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NS_XHTML" target=_parent class=ISymbol>NS_XHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undXLINK><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NS_XLINK" target=_parent class=ISymbol>NS_XLINK</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_nudge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_nudge')" class=ISymbol>nudge</a>, <span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.nudge" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.nudge" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralO.html b/docs/js-api/search/GeneralO.html
    new file mode 100644
    index 000000000..58f0af239
    --- /dev/null
    +++ b/docs/js-api/search/GeneralO.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_objects><div class=IEntry><a href="javascript:searchResults.Toggle('SR_objects')" class=ISymbol>objects</a><div class=ISubIndex><a href="../files/io/mxCodec-js.html#mxCodec.objects" target=_parent class=IParent>mxCodec</a><a href="../files/util/mxEvent-js.html#mxEvent.objects" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_offset><div class=IEntry><a href="javascript:searchResults.Toggle('SR_offset')" class=ISymbol>offset</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.offset" target=_parent class=IParent>mxCellOverlay</a><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.offset" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/model/mxGeometry-js.html#mxGeometry.offset" target=_parent class=IParent>mxGeometry</a></div></div></div><div class=SRResult id=SR_oldBounds><div class=IEntry><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.oldBounds" target=_parent class=ISymbol>oldBounds</a>, <span class=IParent>mxTemporaryCellStates</span></div></div><div class=SRResult id=SR_oldScale><div class=IEntry><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.oldScale" target=_parent class=ISymbol>oldScale</a>, <span class=IParent>mxTemporaryCellStates</span></div></div><div class=SRResult id=SR_oldStates><div class=IEntry><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.oldStates" target=_parent class=ISymbol>oldStates</a>, <span class=IParent>mxTemporaryCellStates</span></div></div><div class=SRResult id=SR_onEncode><div class=IEntry><a href="../files/io/mxRootChangeCodec-js.html#mxRootChangeCodec.onEncode" target=_parent class=ISymbol>onEncode</a>, <span class=IParent>mxRootChangeCodec</span></div></div><div class=SRResult id=SR_onInit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_onInit')" class=ISymbol>onInit</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.onInit" target=_parent class=IParent>mxCell</a><a href="../files/editor/mxEditor-js.html#mxEditor.onInit" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_opaqueVmlImages><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel.opaqueVmlImages" target=_parent class=ISymbol>opaqueVmlImages</a>, <span class=IParent>mxLabel</span></div></div><div class=SRResult id=SR_open><div class=IEntry><a href="javascript:searchResults.Toggle('SR_open')" class=ISymbol>open</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.open" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.open" target=_parent class=IParent>mxPrintPreview</a><a href="../files/util/mxUtils-js.html#mxUtils.open" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR2_OPEN><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_OPEN')" class=ISymbol>OPEN</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.OPEN" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.OPEN" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_order><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.order" target=_parent class=ISymbol>order</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR2_Order><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Order" target=_parent class=ISymbol>Order</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_ORDER_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_ORDER_undCELLS')" class=ISymbol>ORDER_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.ORDER_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ORDER_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_orderCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.orderCells" target=_parent class=ISymbol>orderCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_orderChanged><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.orderChanged" target=_parent class=ISymbol>orderChanged</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_ordered><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.ordered" target=_parent class=ISymbol>ordered</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_orderEdge><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.orderEdge" target=_parent class=ISymbol>orderEdge</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_orientation><div class=IEntry><a href="javascript:searchResults.Toggle('SR_orientation')" class=ISymbol>orientation</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.orientation" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.orientation" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_origin><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.origin" target=_parent class=ISymbol>origin</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_OrthConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.OrthConnector" target=_parent class=ISymbol>OrthConnector</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_outline><div class=IEntry><a href="javascript:searchResults.Toggle('SR_outline')" class=ISymbol>outline</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.outline" target=_parent class=IParent>mxEditor</a><a href="../files/view/mxOutline-js.html#mxOutline.outline" target=_parent class=IParent>mxOutline</a></div></div></div><div class=SRResult id=SR_OUTLINE_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.OUTLINE_COLOR" target=_parent class=ISymbol>OUTLINE_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_OUTLINE_undHANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.OUTLINE_HANDLE_FILLCOLOR" target=_parent class=ISymbol>OUTLINE_HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_OUTLINE_undHANDLE_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.OUTLINE_HANDLE_STROKECOLOR" target=_parent class=ISymbol>OUTLINE_HANDLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_OUTLINE_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.OUTLINE_STROKEWIDTH" target=_parent class=ISymbol>OUTLINE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_outlineResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.outlineResource" target=_parent class=ISymbol>outlineResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_Overlays><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Overlays" target=_parent class=ISymbol>Overlays</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralP.html b/docs/js-api/search/GeneralP.html
    new file mode 100644
    index 000000000..1ad2e722b
    --- /dev/null
    +++ b/docs/js-api/search/GeneralP.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_PAGE_undFORMAT_undA4_undPORTRAIT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PAGE_FORMAT_A4_PORTRAIT" target=_parent class=ISymbol>PAGE_FORMAT_A4_PORTRAIT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PAGE_undFORMAT_undLETTER_undPORTRAIT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PAGE_FORMAT_LETTER_PORTRAIT" target=_parent class=ISymbol>PAGE_FORMAT_LETTER_PORTRAIT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_pageBreakColor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageBreakColor" target=_parent class=ISymbol>pageBreakColor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_pageBreakDashed><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageBreakDashed" target=_parent class=ISymbol>pageBreakDashed</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_pageBreaksVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageBreaksVisible" target=_parent class=ISymbol>pageBreaksVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_pageCount><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.pageCount" target=_parent class=ISymbol>pageCount</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_pageFormat><div class=IEntry><a href="javascript:searchResults.Toggle('SR_pageFormat')" class=ISymbol>pageFormat</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.pageFormat" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.pageFormat" target=_parent class=IParent>mxPrintPreview</a></div></div></div><div class=SRResult id=SR_pageScale><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageScale" target=_parent class=ISymbol>pageScale</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_pageSelector><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.pageSelector" target=_parent class=ISymbol>pageSelector</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_pageVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageVisible" target=_parent class=ISymbol>pageVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_paintMarker><div class=IEntry><a href="../files/shape/mxMarker-js.html#mxMarker.paintMarker" target=_parent class=ISymbol>paintMarker</a>, <span class=IParent>mxMarker</span></div></div><div class=SRResult id=SR_PAN><div class=IEntry><a href="javascript:searchResults.Toggle('SR_PAN')" class=ISymbol>PAN</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.PAN" target=_parent class=IParent>mxEvent</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mxEvent.PAN" target=_parent class=IParent>mxPanningHandler.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_PAN_undEND><div class=IEntry><a href="javascript:searchResults.Toggle('SR_PAN_undEND')" class=ISymbol>PAN_END</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.PAN_END" target=_parent class=IParent>mxEvent</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mxEvent.PAN_END" target=_parent class=IParent>mxPanningHandler.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_PAN_undSTART><div class=IEntry><a href="javascript:searchResults.Toggle('SR_PAN_undSTART')" class=ISymbol>PAN_START</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.PAN_START" target=_parent class=IParent>mxEvent</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.mxEvent.PAN_START" target=_parent class=IParent>mxPanningHandler.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_panDx><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.panDx" target=_parent class=ISymbol>panDx</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_panDy><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.panDy" target=_parent class=ISymbol>panDy</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_panGraph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_panGraph')" class=ISymbol>panGraph</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.panGraph" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.panGraph" target=_parent class=IParent>mxPanningHandler</a></div></div></div><div class=SRResult id=SR_panningEnabled><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.panningEnabled" target=_parent class=ISymbol>panningEnabled</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_para><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.para" target=_parent class=ISymbol>para</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_parallelEdgeSpacing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_parallelEdgeSpacing')" class=ISymbol>parallelEdgeSpacing</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.parallelEdgeSpacing" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.parallelEdgeSpacing" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_params><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.params" target=_parent class=ISymbol>params</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_parent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_parent')" class=ISymbol>parent</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.parent" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.parent" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.parent" target=_parent class=IParent>mxGraphLayout</a></div></div></div><div class=SRResult id=SR_parentBorder><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.parentBorder" target=_parent class=ISymbol>parentBorder</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_parentForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.parentForCellChanged" target=_parent class=ISymbol>parentForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_parentsChanged><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.parentsChanged" target=_parent class=ISymbol>parentsChanged</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_parse><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.parse" target=_parent class=ISymbol>parse</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_parseConstraint><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.parseConstraint" target=_parent class=ISymbol>parseConstraint</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_parseConstraints><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.parseConstraints" target=_parent class=ISymbol>parseConstraints</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_parseDescription><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.parseDescription" target=_parent class=ISymbol>parseDescription</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_parseXml><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.parseXml" target=_parent class=ISymbol>parseXml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_password><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.password" target=_parent class=ISymbol>password</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_paste><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard.paste" target=_parent class=ISymbol>paste</a>, <span class=IParent>mxClipboard</span></div></div><div class=SRResult id=SR_path><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.path" target=_parent class=ISymbol>path</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_PATH_undSEPARATOR><div class=IEntry><a href="../files/model/mxCellPath-js.html#mxCellPath.PATH_SEPARATOR" target=_parent class=ISymbol>PATH_SEPARATOR</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_perimeter><div class=IEntry><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint.perimeter" target=_parent class=ISymbol>perimeter</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_PERIMETER_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PERIMETER_ELLIPSE" target=_parent class=ISymbol>PERIMETER_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undRECTANGLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PERIMETER_RECTANGLE" target=_parent class=ISymbol>PERIMETER_RECTANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undRHOMBUS><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PERIMETER_RHOMBUS" target=_parent class=ISymbol>PERIMETER_RHOMBUS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undTRIANGLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PERIMETER_TRIANGLE" target=_parent class=ISymbol>PERIMETER_TRIANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_placeLabels><div class=IEntry><a href="../files/layout/mxEdgeLabelLayout-js.html#mxEdgeLabelLayout.placeLabels" target=_parent class=ISymbol>placeLabels</a>, <span class=IParent>mxEdgeLabelLayout</span></div></div><div class=SRResult id=SR_placementStage><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.placementStage" target=_parent class=ISymbol>placementStage</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_point><div class=IEntry><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint.point" target=_parent class=ISymbol>point</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_pointImage><div class=IEntry><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.pointImage" target=_parent class=ISymbol>pointImage</a>, <span class=IParent>mxConstraintHandler</span></div></div><div class=SRResult id=SR_points><div class=IEntry><a href="javascript:searchResults.Toggle('SR_points')" class=ISymbol>points</a><div class=ISubIndex><a href="../files/model/mxGeometry-js.html#mxGeometry.points" target=_parent class=IParent>mxGeometry</a><a href="../files/shape/mxShape-js.html#mxShape.points" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_poll><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.poll" target=_parent class=ISymbol>poll</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_polling><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.polling" target=_parent class=ISymbol>polling</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_popup><div class=IEntry><a href="javascript:searchResults.Toggle('SR_popup')" class=ISymbol>popup</a><div class=ISubIndex><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.popup" target=_parent class=IParent>mxPopupMenu</a><a href="../files/util/mxUtils-js.html#mxUtils.popup" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_popupHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.popupHandler" target=_parent class=ISymbol>popupHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_portsEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.portsEnabled" target=_parent class=ISymbol>portsEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_post><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.post" target=_parent class=ISymbol>post</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR2_POST><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_POST')" class=ISymbol>POST</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.POST" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.POST" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_postConfigureShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.postConfigureShape" target=_parent class=ISymbol>postConfigureShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_postDiagram><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.postDiagram" target=_parent class=ISymbol>postDiagram</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_postfix><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.postfix" target=_parent class=ISymbol>postfix</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_postParameterName><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.postParameterName" target=_parent class=ISymbol>postParameterName</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_postProcessCellStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.postProcessCellStyle" target=_parent class=ISymbol>postProcessCellStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_preferHtml><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.preferHtml" target=_parent class=ISymbol>preferHtml</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_preferModeHtml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_preferModeHtml')" class=ISymbol>preferModeHtml</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.preferModeHtml" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxConnector-js.html#mxConnector.preferModeHtml" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.preferModeHtml" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.preferModeHtml" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.preferModeHtml" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxLine-js.html#mxLine.preferModeHtml" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.preferModeHtml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.preferModeHtml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.preferModeHtml" target=_parent class=IParent>mxStencilShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.preferModeHtml" target=_parent class=IParent>mxSwimlane</a></div></div></div><div class=SRResult id=SR_preferPageSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.preferPageSize" target=_parent class=ISymbol>preferPageSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_prefHozEdgeSep><div class=IEntry><a href="javascript:searchResults.Toggle('SR_prefHozEdgeSep')" class=ISymbol>prefHozEdgeSep</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.prefHozEdgeSep" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.prefHozEdgeSep" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_prefix><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.prefix" target=_parent class=ISymbol>prefix</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_prefVertEdgeOff><div class=IEntry><a href="javascript:searchResults.Toggle('SR_prefVertEdgeOff')" class=ISymbol>prefVertEdgeOff</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.prefVertEdgeOff" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.prefVertEdgeOff" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_preserveImageAspect><div class=IEntry><a href="../files/shape/mxImageShape-js.html#mxImageShape.preserveImageAspect" target=_parent class=ISymbol>preserveImageAspect</a>, <span class=IParent>mxImageShape</span></div></div><div class=SRResult id=SR_previewColor><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.previewColor" target=_parent class=ISymbol>previewColor</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_previewElement><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.previewElement" target=_parent class=ISymbol>previewElement</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_previewEnabled><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.previewEnabled" target=_parent class=ISymbol>previewEnabled</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_previousLayerConnectedCache><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.previousLayerConnectedCache" target=_parent class=ISymbol>previousLayerConnectedCache</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_previousLayerConnectedCells><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.previousLayerConnectedCells" target=_parent class=ISymbol>previousLayerConnectedCells</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_print><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.print" target=_parent class=ISymbol>print</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_printOverlays><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.printOverlays" target=_parent class=ISymbol>printOverlays</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_printScreen><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.printScreen" target=_parent class=ISymbol>printScreen</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_process><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.process" target=_parent class=ISymbol>process</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_processChange><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.processChange" target=_parent class=ISymbol>processChange</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_processDelta><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.processDelta" target=_parent class=ISymbol>processDelta</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_processEdit><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.processEdit" target=_parent class=ISymbol>processEdit</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_processInclude><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.processInclude" target=_parent class=ISymbol>processInclude</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_processReversedEdge><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.processReversedEdge" target=_parent class=ISymbol>processReversedEdge</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_processState><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.processState" target=_parent class=ISymbol>processState</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_prompt><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.prompt" target=_parent class=ISymbol>prompt</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_properties><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject.properties" target=_parent class=ISymbol>properties</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_propertiesHeight><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.propertiesHeight" target=_parent class=ISymbol>propertiesHeight</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_propertiesResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.propertiesResource" target=_parent class=ISymbol>propertiesResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_propertiesWidth><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.propertiesWidth" target=_parent class=ISymbol>propertiesWidth</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_ptSeqDistSq><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.ptSeqDistSq" target=_parent class=ISymbol>ptSeqDistSq</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_put><div class=IEntry><a href="../files/util/mxDictionary-js.html#mxDictionary.put" target=_parent class=ISymbol>put</a>, <span class=IParent>mxDictionary</span></div></div><div class=SRResult id=SR_putCellStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.putCellStyle" target=_parent class=ISymbol>putCellStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.putDefaultEdgeStyle" target=_parent class=ISymbol>putDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.putDefaultVertexStyle" target=_parent class=ISymbol>putDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putImage><div class=IEntry><a href="../files/util/mxImageBundle-js.html#mxImageBundle.putImage" target=_parent class=ISymbol>putImage</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_putObject><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.putObject" target=_parent class=ISymbol>putObject</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_putValue><div class=IEntry><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.putValue" target=_parent class=ISymbol>putValue</a>, <span class=IParent>mxStyleRegistry</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralQ.html b/docs/js-api/search/GeneralQ.html
    new file mode 100644
    index 000000000..3e82524c7
    --- /dev/null
    +++ b/docs/js-api/search/GeneralQ.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_quadTo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_quadTo')" class=ISymbol>quadTo</a><div class=ISubIndex><a href="../files/util/mxPath-js.html#mxPath.quadTo" target=_parent class=IParent>mxPath</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.quadTo" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.quadTo" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralR.html b/docs/js-api/search/GeneralR.html
    new file mode 100644
    index 000000000..33de38b53
    --- /dev/null
    +++ b/docs/js-api/search/GeneralR.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_radius><div class=IEntry><a href="javascript:searchResults.Toggle('SR_radius')" class=ISymbol>radius</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.radius" target=_parent class=IParent>mxCircleLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.radius" target=_parent class=IParent>mxFastOrganicLayout</a></div></div></div><div class=SRResult id=SR_radiusSquared><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.radiusSquared" target=_parent class=ISymbol>radiusSquared</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_rankBottomY><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankBottomY" target=_parent class=ISymbol>rankBottomY</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_rankCoordinates><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankCoordinates" target=_parent class=ISymbol>rankCoordinates</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_rankIndex><div class=IEntry><a href="javascript:searchResults.Toggle('SR_rankIndex')" class=ISymbol>rankIndex</a>, <span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.rankIndex" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.rankIndex" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div><div class=SRResult id=SR_rankMedianPosition><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankMedianPosition" target=_parent class=ISymbol>rankMedianPosition</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_ranks><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.ranks" target=_parent class=ISymbol>ranks</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_rankTopY><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankTopY" target=_parent class=ISymbol>rankTopY</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_rankWidths><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankWidths" target=_parent class=ISymbol>rankWidths</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_rankY><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankY" target=_parent class=ISymbol>rankY</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_readGraphModel><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.readGraphModel" target=_parent class=ISymbol>readGraphModel</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_receive><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.receive" target=_parent class=ISymbol>receive</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR2_RECEIVE><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_RECEIVE')" class=ISymbol>RECEIVE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.RECEIVE" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.RECEIVE" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_received><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.received" target=_parent class=ISymbol>received</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_reconfigure><div class=IEntry><a href="javascript:searchResults.Toggle('SR_reconfigure')" class=ISymbol>reconfigure</a><div class=ISubIndex><a href="../files/shape/mxArrow-js.html#mxArrow.reconfigure" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.reconfigure" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxLabel-js.html#mxLabel.reconfigure" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxShape-js.html#mxShape.reconfigure" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.reconfigure" target=_parent class=IParent>mxSwimlane</a></div></div></div><div class=SRResult id=SR_rect><div class=IEntry><a href="javascript:searchResults.Toggle('SR_rect')" class=ISymbol>rect</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.rect" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.rect" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_RECTANGLE_undROUNDING_undFACTOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.RECTANGLE_ROUNDING_FACTOR" target=_parent class=ISymbol>RECTANGLE_ROUNDING_FACTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_rectangleIntersectsSegment><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.rectangleIntersectsSegment" target=_parent class=ISymbol>rectangleIntersectsSegment</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_RectanglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter.RectanglePerimeter" target=_parent class=ISymbol>RectanglePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_redirectMouseEvents><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.redirectMouseEvents" target=_parent class=ISymbol>redirectMouseEvents</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_redo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redo')" class=ISymbol>redo</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.redo" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.redo" target=_parent class=IParent>mxUndoableEdit</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.redo" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR2_REDO><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_REDO')" class=ISymbol>REDO</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.REDO" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxEvent.REDO" target=_parent class=IParent>mxUndoManager.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_redone><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.redone" target=_parent class=ISymbol>redone</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_redraw><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redraw')" class=ISymbol>redraw</a><div class=ISubIndex><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.redraw" target=_parent class=IParent>mxCellRenderer</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.redraw" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.redraw" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxLabel-js.html#mxLabel.redraw" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxShape-js.html#mxShape.redraw" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.redraw" target=_parent class=IParent>mxStencilShape</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.redraw" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_redrawBackgroundImage><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.redrawBackgroundImage" target=_parent class=ISymbol>redrawBackgroundImage</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_redrawCellOverlays><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.redrawCellOverlays" target=_parent class=ISymbol>redrawCellOverlays</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_redrawControl><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.redrawControl" target=_parent class=ISymbol>redrawControl</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_redrawForeignObject><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.redrawForeignObject" target=_parent class=ISymbol>redrawForeignObject</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_redrawHtml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawHtml')" class=ISymbol>redrawHtml</a><div class=ISubIndex><a href="../files/shape/mxRhombus-js.html#mxRhombus.redrawHtml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.redrawHtml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.redrawHtml" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.redrawHtml" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_redrawHtmlTable><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.redrawHtmlTable" target=_parent class=ISymbol>redrawHtmlTable</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_redrawIcons><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.redrawIcons" target=_parent class=ISymbol>redrawIcons</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_redrawInnerBends><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawInnerBends')" class=ISymbol>redrawInnerBends</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#redrawInnerBends" target=_parent class=IParent>Global</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.redrawInnerBends" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.redrawInnerBends" target=_parent class=IParent>mxElbowEdgeHandler</a></div></div></div><div class=SRResult id=SR_redrawLabel><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.redrawLabel" target=_parent class=ISymbol>redrawLabel</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_redrawMarker><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector.redrawMarker" target=_parent class=ISymbol>redrawMarker</a>, <span class=IParent>mxConnector</span></div></div><div class=SRResult id=SR_redrawPageBreaks><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.redrawPageBreaks" target=_parent class=ISymbol>redrawPageBreaks</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_redrawPath><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawPath')" class=ISymbol>redrawPath</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.redrawPath" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxArrow-js.html#mxArrow.redrawPath" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxCloud-js.html#mxCloud.redrawPath" target=_parent class=IParent>mxCloud</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.redrawPath" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxHexagon-js.html#mxHexagon.redrawPath" target=_parent class=IParent>mxHexagon</a><a href="../files/shape/mxShape-js.html#mxShape.redrawPath" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxTriangle-js.html#mxTriangle.redrawPath" target=_parent class=IParent>mxTriangle</a></div></div></div><div class=SRResult id=SR_redrawShape><div class=IEntry><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.redrawShape" target=_parent class=ISymbol>redrawShape</a>, <span class=IParent>mxStencilShape</span></div></div><div class=SRResult id=SR_redrawSvg><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawSvg')" class=ISymbol>redrawSvg</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.redrawSvg" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxArrow-js.html#mxArrow.redrawSvg" target=_parent class=IParent>mxArrow</a><a href="../files/shape/mxConnector-js.html#mxConnector.redrawSvg" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.redrawSvg" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.redrawSvg" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.redrawSvg" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.redrawSvg" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxLine-js.html#mxLine.redrawSvg" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.redrawSvg" target=_parent class=IParent>mxPolyline</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.redrawSvg" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.redrawSvg" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.redrawSvg" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.redrawSvg" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_redrawSvgTextNodes><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.redrawSvgTextNodes" target=_parent class=ISymbol>redrawSvgTextNodes</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_redrawTextbox><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.redrawTextbox" target=_parent class=ISymbol>redrawTextbox</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_redrawVml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_redrawVml')" class=ISymbol>redrawVml</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.redrawVml" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxConnector-js.html#mxConnector.redrawVml" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.redrawVml" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.redrawVml" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxLine-js.html#mxLine.redrawVml" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxPolyline-js.html#mxPolyline.redrawVml" target=_parent class=IParent>mxPolyline</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.redrawVml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.redrawVml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.redrawVml" target=_parent class=IParent>mxSwimlane</a><a href="../files/shape/mxText-js.html#mxText.redrawVml" target=_parent class=IParent>mxText</a></div></div></div><div class=SRResult id=SR_reduceTemperature><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.reduceTemperature" target=_parent class=ISymbol>reduceTemperature</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_reference><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.reference" target=_parent class=ISymbol>reference</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_refresh><div class=IEntry><a href="javascript:searchResults.Toggle('SR_refresh')" class=ISymbol>refresh</a><div class=ISubIndex><a href="../files/handler/mxEdgeSegmentHandler-js.html#refresh" target=_parent class=IParent>Global</a><a href="../files/view/mxGraph-js.html#mxGraph.refresh" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-js.html#mxGraphView.refresh" target=_parent class=IParent>mxGraphView</a><a href="../files/view/mxOutline-js.html#mxOutline.refresh" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.refresh" target=_parent class=IParent>mxSelectionCellsHandler</a></div></div></div><div class=SRResult id=SR2_REFRESH><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_REFRESH')" class=ISymbol>REFRESH</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.REFRESH" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.REFRESH" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_refreshHandler><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.refreshHandler" target=_parent class=ISymbol>refreshHandler</a>, <span class=IParent>mxSelectionCellsHandler</span></div></div><div class=SRResult id=SR_refreshTasks><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.refreshTasks" target=_parent class=ISymbol>refreshTasks</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_register><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.register" target=_parent class=ISymbol>register</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_registerShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.registerShape" target=_parent class=ISymbol>registerShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_relative><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.relative" target=_parent class=ISymbol>relative</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_relativeCcw><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.relativeCcw" target=_parent class=ISymbol>relativeCcw</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_release><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.release" target=_parent class=ISymbol>release</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_releaseSvgClip><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.releaseSvgClip" target=_parent class=ISymbol>releaseSvgClip</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_remove><div class=IEntry><a href="javascript:searchResults.Toggle('SR_remove')" class=ISymbol>remove</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.remove" target=_parent class=IParent>mxCell</a><a href="../files/util/mxDictionary-js.html#mxDictionary.remove" target=_parent class=IParent>mxDictionary</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.remove" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-js.html#mxUtils.remove" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_REMOVE_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_REMOVE_undCELLS')" class=ISymbol>REMOVE_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.REMOVE_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.REMOVE_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_REMOVE_undCELLS_undFROM_undPARENT><div class=IEntry><a href="javascript:searchResults.Toggle('SR_REMOVE_undCELLS_undFROM_undPARENT')" class=ISymbol>REMOVE_CELLS_FROM_PARENT</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.REMOVE_CELLS_FROM_PARENT" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.REMOVE_CELLS_FROM_PARENT" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_REMOVE_undOVERLAY><div class=IEntry><a href="javascript:searchResults.Toggle('SR_REMOVE_undOVERLAY')" class=ISymbol>REMOVE_OVERLAY</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.REMOVE_OVERLAY" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.REMOVE_OVERLAY" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_removeAllListeners><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.removeAllListeners" target=_parent class=ISymbol>removeAllListeners</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_removeAllStylenames><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.removeAllStylenames" target=_parent class=ISymbol>removeAllStylenames</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_removeCell><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.removeCell" target=_parent class=ISymbol>removeCell</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_removeCellOverlay><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeCellOverlay" target=_parent class=ISymbol>removeCellOverlay</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeCellOverlays><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeCellOverlays" target=_parent class=ISymbol>removeCellOverlays</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_removeCells')" class=ISymbol>removeCells</a><div class=ISubIndex><a href="../files/util/mxClipboard-js.html#mxClipboard.removeCells" target=_parent class=IParent>mxClipboard</a><a href="../files/view/mxGraph-js.html#mxGraph.removeCells" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.removeCells" target=_parent class=IParent>mxGraphSelectionModel</a></div></div></div><div class=SRResult id=SR_removeCellsFromParent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_removeCellsFromParent')" class=ISymbol>removeCellsFromParent</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.removeCellsFromParent" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.removeCellsFromParent" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_removeCursors><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.removeCursors" target=_parent class=ISymbol>removeCursors</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_removeEdge><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.removeEdge" target=_parent class=ISymbol>removeEdge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeEnabled><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.removeEnabled" target=_parent class=ISymbol>removeEnabled</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_removeFromParent><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.removeFromParent" target=_parent class=ISymbol>removeFromParent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeFromTerminal><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.removeFromTerminal" target=_parent class=ISymbol>removeFromTerminal</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeImageBundle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeImageBundle" target=_parent class=ISymbol>removeImageBundle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeListener><div class=IEntry><a href="javascript:searchResults.Toggle('SR_removeListener')" class=ISymbol>removeListener</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.removeListener" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventSource-js.html#mxEventSource.removeListener" target=_parent class=IParent>mxEventSource</a></div></div></div><div class=SRResult id=SR_removeMouseListener><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeMouseListener" target=_parent class=ISymbol>removeMouseListener</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removePoint><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.removePoint" target=_parent class=ISymbol>removePoint</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_removeSelectionCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeSelectionCell" target=_parent class=ISymbol>removeSelectionCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeSelectionCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeSelectionCells" target=_parent class=ISymbol>removeSelectionCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeState><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.removeState" target=_parent class=ISymbol>removeState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_removeStateForCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.removeStateForCell" target=_parent class=ISymbol>removeStateForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeStylename><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.removeStylename" target=_parent class=ISymbol>removeStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_removeWhitespace><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.removeWhitespace" target=_parent class=ISymbol>removeWhitespace</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_renderDom><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.renderDom" target=_parent class=ISymbol>renderDom</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_renderHint><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.renderHint" target=_parent class=ISymbol>renderHint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_rendering><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.rendering" target=_parent class=ISymbol>rendering</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_RENDERING_undHINT_undEXACT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.RENDERING_HINT_EXACT" target=_parent class=ISymbol>RENDERING_HINT_EXACT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_RENDERING_undHINT_undFASTER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.RENDERING_HINT_FASTER" target=_parent class=ISymbol>RENDERING_HINT_FASTER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_RENDERING_undHINT_undFASTEST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.RENDERING_HINT_FASTEST" target=_parent class=ISymbol>RENDERING_HINT_FASTEST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_renderPage><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.renderPage" target=_parent class=ISymbol>renderPage</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_repaint><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.repaint" target=_parent class=ISymbol>repaint</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_repaintGraph><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.repaintGraph" target=_parent class=ISymbol>repaintGraph</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_replaceLinefeeds><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.replaceLinefeeds" target=_parent class=ISymbol>replaceLinefeeds</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_repositionValid><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.repositionValid" target=_parent class=ISymbol>repositionValid</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_request><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.request" target=_parent class=ISymbol>request</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_reset><div class=IEntry><a href="javascript:searchResults.Toggle('SR_reset')" class=ISymbol>reset</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.reset" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.reset" target=_parent class=IParent>mxCellMarker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.reset" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.reset" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.reset" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.reset" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.reset" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.reset" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.reset" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.reset" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_resetEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetEdge" target=_parent class=ISymbol>resetEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resetEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_resetEdges')" class=ISymbol>resetEdges</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.resetEdges" target=_parent class=IParent>mxCircleLayout</a><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.resetEdges" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.resetEdges" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/view/mxGraph-js.html#mxGraph.resetEdges" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_resetEdgesOnConnect><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetEdgesOnConnect" target=_parent class=ISymbol>resetEdgesOnConnect</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resetEdgesOnMove><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetEdgesOnMove" target=_parent class=ISymbol>resetEdgesOnMove</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resetEdgesOnResize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetEdgesOnResize" target=_parent class=ISymbol>resetEdgesOnResize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resetFirstTime><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.resetFirstTime" target=_parent class=ISymbol>resetFirstTime</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_resetHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_resetHandler')" class=ISymbol>resetHandler</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.resetHandler" target=_parent class=IParent>mxCellHighlight</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.resetHandler" target=_parent class=IParent>mxDefaultToolbar</a></div></div></div><div class=SRResult id=SR_resetHistory><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.resetHistory" target=_parent class=ISymbol>resetHistory</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_resetMode><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.resetMode" target=_parent class=ISymbol>resetMode</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_resetTimer><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.resetTimer" target=_parent class=ISymbol>resetTimer</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_resetViewOnRootChange><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetViewOnRootChange" target=_parent class=ISymbol>resetViewOnRootChange</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resize><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.resize" target=_parent class=ISymbol>resize</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR2_RESIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.RESIZE" target=_parent class=ISymbol>RESIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_RESIZE_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_RESIZE_undCELLS')" class=ISymbol>RESIZE_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.RESIZE_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.RESIZE_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_RESIZE_undEND><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.RESIZE_END" target=_parent class=ISymbol>RESIZE_END</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_RESIZE_undSTART><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.RESIZE_START" target=_parent class=ISymbol>RESIZE_START</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_resizeCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_resizeCell')" class=ISymbol>resizeCell</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.resizeCell" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.resizeCell" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_resizeCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resizeCells" target=_parent class=ISymbol>resizeCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resizeContainer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resizeContainer" target=_parent class=ISymbol>resizeContainer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resizeEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.resizeEnabled" target=_parent class=ISymbol>resizeEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_resizeHandler><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.resizeHandler" target=_parent class=ISymbol>resizeHandler</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_resizeHeight><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.resizeHeight" target=_parent class=ISymbol>resizeHeight</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_resizeLast><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.resizeLast" target=_parent class=ISymbol>resizeLast</a>, <span class=IParent>mxStackLayout</span></div></div><div class=SRResult id=SR_resizeParent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_resizeParent')" class=ISymbol>resizeParent</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.resizeParent" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.resizeParent" target=_parent class=IParent>mxHierarchicalLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.resizeParent" target=_parent class=IParent>mxStackLayout</a></div></div></div><div class=SRResult id=SR_resizeSwimlane><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.resizeSwimlane" target=_parent class=ISymbol>resizeSwimlane</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_resizeVertices><div class=IEntry><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.resizeVertices" target=_parent class=ISymbol>resizeVertices</a>, <span class=IParent>mxPartitionLayout</span></div></div><div class=SRResult id=SR_resizeWidth><div class=IEntry><a href="../files/util/mxDivResizer-js.html#mxDivResizer.resizeWidth" target=_parent class=ISymbol>resizeWidth</a>, <span class=IParent>mxDivResizer</span></div></div><div class=SRResult id=SR_resolve><div class=IEntry><a href="../files/model/mxCellPath-js.html#mxCellPath.resolve" target=_parent class=ISymbol>resolve</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_resolveColor><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.resolveColor" target=_parent class=ISymbol>resolveColor</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_resources><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.resources" target=_parent class=ISymbol>resources</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_restore><div class=IEntry><a href="javascript:searchResults.Toggle('SR_restore')" class=ISymbol>restore</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.restore" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.restore" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_restoreClone><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.restoreClone" target=_parent class=ISymbol>restoreClone</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_resume><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.resume" target=_parent class=ISymbol>resume</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR2_RESUME><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_RESUME')" class=ISymbol>RESUME</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.RESUME" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.RESUME" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_revalidate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.revalidate" target=_parent class=ISymbol>revalidate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_revalidateState><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.revalidateState" target=_parent class=ISymbol>revalidateState</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_reverse><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.reverse" target=_parent class=ISymbol>reverse</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_reversePortConstraints><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.reversePortConstraints" target=_parent class=ISymbol>reversePortConstraints</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_RhombusPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter.RhombusPerimeter" target=_parent class=ISymbol>RhombusPerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_root><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.root" target=_parent class=ISymbol>root</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR2_ROOT><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_ROOT')" class=ISymbol>ROOT</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.ROOT" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.ROOT" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.ROOT" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_rootChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.rootChanged" target=_parent class=ISymbol>rootChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_roots><div class=IEntry><a href="javascript:searchResults.Toggle('SR_roots')" class=ISymbol>roots</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.roots" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.roots" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_rotate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_rotate')" class=ISymbol>rotate</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.rotate" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.rotate" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_roundedCrispSvg><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.roundedCrispSvg" target=_parent class=ISymbol>roundedCrispSvg</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_roundrect><div class=IEntry><a href="javascript:searchResults.Toggle('SR_roundrect')" class=ISymbol>roundrect</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.roundrect" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.roundrect" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_route><div class=IEntry><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.route" target=_parent class=ISymbol>route</a>, <span class=IParent>mxParallelEdgeLayout</span></div></div><div class=SRResult id=SR_rtrim><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.rtrim" target=_parent class=ISymbol>rtrim</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_run><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.run" target=_parent class=ISymbol>run</a>, <span class=IParent>mxHierarchicalLayout</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralS.html b/docs/js-api/search/GeneralS.html
    new file mode 100644
    index 000000000..c5d1d72a1
    --- /dev/null
    +++ b/docs/js-api/search/GeneralS.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_save><div class=IEntry><a href="javascript:searchResults.Toggle('SR_save')" class=ISymbol>save</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.save" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/editor/mxEditor-js.html#mxEditor.save" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.save" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxUtils-js.html#mxUtils.save" target=_parent class=IParent>mxUtils</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.save" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR2_SAVE><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_SAVE')" class=ISymbol>SAVE</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.SAVE" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.SAVE" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_saveAs><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.saveAs" target=_parent class=ISymbol>saveAs</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_scale><div class=IEntry><a href="javascript:searchResults.Toggle('SR_scale')" class=ISymbol>scale</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView.scale" target=_parent class=IParent>mxGraphView</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.scale" target=_parent class=IParent>mxPrintPreview</a><a href="../files/shape/mxShape-js.html#mxShape.scale" target=_parent class=IParent>mxShape</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.scale" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.scale" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR2_SCALE><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_SCALE')" class=ISymbol>SCALE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.SCALE" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.SCALE" target=_parent class=IParent>mxGraphView.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_SCALE_undAND_undTRANSLATE><div class=IEntry><a href="javascript:searchResults.Toggle('SR_SCALE_undAND_undTRANSLATE')" class=ISymbol>SCALE_AND_TRANSLATE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.SCALE_AND_TRANSLATE" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.SCALE_AND_TRANSLATE" target=_parent class=IParent>mxGraphView.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_scaleAndTranslate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.scaleAndTranslate" target=_parent class=ISymbol>scaleAndTranslate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_scaleGrid><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.scaleGrid" target=_parent class=ISymbol>scaleGrid</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_scanRanksFromSinks><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.scanRanksFromSinks" target=_parent class=ISymbol>scanRanksFromSinks</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_scheduleUpdateAspect><div class=IEntry><a href="../files/shape/mxImageShape-js.html#mxImageShape.scheduleUpdateAspect" target=_parent class=ISymbol>scheduleUpdateAspect</a>, <span class=IParent>mxImageShape</span></div></div><div class=SRResult id=SR_scrollCellToVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.scrollCellToVisible" target=_parent class=ISymbol>scrollCellToVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_scrollOnMove><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.scrollOnMove" target=_parent class=ISymbol>scrollOnMove</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_scrollPointToVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.scrollPointToVisible" target=_parent class=ISymbol>scrollPointToVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_scrollRectToVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.scrollRectToVisible" target=_parent class=ISymbol>scrollRectToVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_SegmentConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.SegmentConnector" target=_parent class=ISymbol>SegmentConnector</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_segments><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.segments" target=_parent class=ISymbol>segments</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_select><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.select" target=_parent class=ISymbol>select</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR2_SELECT><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_SELECT')" class=ISymbol>SELECT</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.SELECT" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxToolbar-js.html#mxToolbar.mxEvent.SELECT" target=_parent class=IParent>mxToolbar.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_selectAll><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectAll" target=_parent class=ISymbol>selectAll</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectCell" target=_parent class=ISymbol>selectCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectCellForEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectCellForEvent" target=_parent class=ISymbol>selectCellForEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectCells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_selectCells')" class=ISymbol>selectCells</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.selectCells" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.selectCells" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_selectCellsForEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectCellsForEvent" target=_parent class=ISymbol>selectCellsForEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectChildCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectChildCell" target=_parent class=ISymbol>selectChildCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectDelayed><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.selectDelayed" target=_parent class=ISymbol>selectDelayed</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_selectEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.selectEnabled" target=_parent class=ISymbol>selectEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_Selection><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Selection" target=_parent class=ISymbol>Selection</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_Selection_spcstate><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Selection_state" target=_parent class=ISymbol>Selection state</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_SELECTION_undDASHED><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SELECTION_DASHED" target=_parent class=ISymbol>SELECTION_DASHED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_selectionModel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectionModel" target=_parent class=ISymbol>selectionModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectMode><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.selectMode" target=_parent class=ISymbol>selectMode</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_selectNextCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectNextCell" target=_parent class=ISymbol>selectNextCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectOnPopup><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.selectOnPopup" target=_parent class=ISymbol>selectOnPopup</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_selectParentCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectParentCell" target=_parent class=ISymbol>selectParentCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectPreviousCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectPreviousCell" target=_parent class=ISymbol>selectPreviousCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectRegion><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectRegion" target=_parent class=ISymbol>selectRegion</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectVertices><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectVertices" target=_parent class=ISymbol>selectVertices</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_send><div class=IEntry><a href="javascript:searchResults.Toggle('SR_send')" class=ISymbol>send</a><div class=ISubIndex><a href="../files/util/mxSession-js.html#mxSession.send" target=_parent class=IParent>mxSession</a><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.send" target=_parent class=IParent>mxXmlRequest</a></div></div></div><div class=SRResult id=SR_sent><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.sent" target=_parent class=ISymbol>sent</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_SESSION><div class=IEntry><a href="javascript:searchResults.Toggle('SR_SESSION')" class=ISymbol>SESSION</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.mxEvent.SESSION" target=_parent class=IParent>mxEditor.<wbr>mxEvent</a><a href="../files/util/mxEvent-js.html#mxEvent.SESSION" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_setAbsoluteTerminalPoint><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.setAbsoluteTerminalPoint" target=_parent class=ISymbol>setAbsoluteTerminalPoint</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_setAddEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setAddEnabled" target=_parent class=ISymbol>setAddEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_setAllowDanglingEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setAllowDanglingEdges" target=_parent class=ISymbol>setAllowDanglingEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setAllowEval><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setAllowEval" target=_parent class=ISymbol>setAllowEval</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setAllowLoops><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setAllowLoops" target=_parent class=ISymbol>setAllowLoops</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setAlpha><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setAlpha')" class=ISymbol>setAlpha</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setAlpha" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setAlpha" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setAttribute><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setAttribute')" class=ISymbol>setAttribute</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setAttribute" target=_parent class=IParent>mxCell</a><a href="../files/io/mxCodec-js.html#mxCodec.setAttribute" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_setAutoAntiAlias><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setAutoAntiAlias" target=_parent class=ISymbol>setAutoAntiAlias</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_setAutoSizeCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setAutoSizeCells" target=_parent class=ISymbol>setAutoSizeCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setBackgroundImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setBackgroundImage" target=_parent class=ISymbol>setBackgroundImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setBaseUrl><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.setBaseUrl" target=_parent class=ISymbol>setBaseUrl</a>, <span class=IParent>mxUrlConverter</span></div></div><div class=SRResult id=SR_setBinary><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.setBinary" target=_parent class=ISymbol>setBinary</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_setBorder><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setBorder" target=_parent class=ISymbol>setBorder</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setBubbling><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.setBubbling" target=_parent class=ISymbol>setBubbling</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_setCell><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.setCell" target=_parent class=ISymbol>setCell</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_setCellLocations><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.setCellLocations" target=_parent class=ISymbol>setCellLocations</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_setCells><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.setCells" target=_parent class=ISymbol>setCells</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_setCellsBendable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsBendable" target=_parent class=ISymbol>setCellsBendable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsCloneable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsCloneable" target=_parent class=ISymbol>setCellsCloneable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsDeletable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsDeletable" target=_parent class=ISymbol>setCellsDeletable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsDisconnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsDisconnectable" target=_parent class=ISymbol>setCellsDisconnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsEditable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsEditable" target=_parent class=ISymbol>setCellsEditable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsMovable" target=_parent class=ISymbol>setCellsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsResizable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsResizable" target=_parent class=ISymbol>setCellsResizable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellsSelectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellsSelectable" target=_parent class=ISymbol>setCellsSelectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellStyle" target=_parent class=ISymbol>setCellStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCellStyleFlags><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCellStyleFlags')" class=ISymbol>setCellStyleFlags</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.setCellStyleFlags" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.setCellStyleFlags" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setCellStyles><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCellStyles')" class=ISymbol>setCellStyles</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.setCellStyles" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-js.html#mxUtils.setCellStyles" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setCellWarning><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCellWarning" target=_parent class=ISymbol>setCellWarning</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCloneEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setCloneEnabled" target=_parent class=ISymbol>setCloneEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_setCloneInvalidEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setCloneInvalidEdges" target=_parent class=ISymbol>setCloneInvalidEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setClosable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setClosable" target=_parent class=ISymbol>setClosable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setCollapsed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCollapsed')" class=ISymbol>setCollapsed</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setCollapsed" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setCollapsed" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setCompressed><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setCompressed" target=_parent class=ISymbol>setCompressed</a>, <span class=IParent>mxXmlCanvas2D</span></div></div><div class=SRResult id=SR_setConnectable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setConnectable')" class=ISymbol>setConnectable</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setConnectable" target=_parent class=IParent>mxCell</a><a href="../files/view/mxGraph-js.html#mxGraph.setConnectable" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_setConnectableEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setConnectableEdges" target=_parent class=ISymbol>setConnectableEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setConnectionConstraint><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setConnectionConstraint" target=_parent class=ISymbol>setConnectionConstraint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setConstrainChildren><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setConstrainChildren" target=_parent class=ISymbol>setConstrainChildren</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setCreateIds><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setCreateIds" target=_parent class=ISymbol>setCreateIds</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setCreateTarget><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.setCreateTarget" target=_parent class=ISymbol>setCreateTarget</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_setCurrentRoot><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setCurrentRoot" target=_parent class=ISymbol>setCurrentRoot</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setCursor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCursor')" class=ISymbol>setCursor</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.setCursor" target=_parent class=IParent>mxCellState</a><a href="../files/shape/mxShape-js.html#mxShape.setCursor" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_setDashed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setDashed')" class=ISymbol>setDashed</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setDashed" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setDashed" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setDashPattern><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setDashPattern')" class=ISymbol>setDashPattern</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setDashPattern" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setDashPattern" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setDefaultParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setDefaultParent" target=_parent class=ISymbol>setDefaultParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setDisconnectOnMove><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setDisconnectOnMove" target=_parent class=ISymbol>setDisconnectOnMove</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setDropEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setDropEnabled" target=_parent class=ISymbol>setDropEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setEdge><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.setEdge" target=_parent class=ISymbol>setEdge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setEdgePoints><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.setEdgePoints" target=_parent class=ISymbol>setEdgePoints</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_setEdgePosition><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.setEdgePosition" target=_parent class=ISymbol>setEdgePosition</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_setEdgeStyleEnabled><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.setEdgeStyleEnabled" target=_parent class=ISymbol>setEdgeStyleEnabled</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_setEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setEnabled')" class=ISymbol>setEnabled</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.setEnabled" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.setEnabled" target=_parent class=IParent>mxCellMarker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.setEnabled" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.setEnabled" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.setEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.setEnabled" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setEnabled" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.setEnabled" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.setEnabled" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxOutline-js.html#mxOutline.setEnabled" target=_parent class=IParent>mxOutline</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.setEnabled" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.setEnabled" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.setEnabled" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.setEnabled" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setEnabled" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.setEnabled" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.setEnabled" target=_parent class=IParent>mxUrlConverter</a></div></div></div><div class=SRResult id=SR_setEnterStopsCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setEnterStopsCellEditing" target=_parent class=ISymbol>setEnterStopsCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setEscapeEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setEscapeEnabled" target=_parent class=ISymbol>setEscapeEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setEventsEnabled><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.setEventsEnabled" target=_parent class=ISymbol>setEventsEnabled</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_setEventSource><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.setEventSource" target=_parent class=ISymbol>setEventSource</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_setExtendParents><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setExtendParents" target=_parent class=ISymbol>setExtendParents</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setExtendParentsOnAdd><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setExtendParentsOnAdd" target=_parent class=ISymbol>setExtendParentsOnAdd</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setFillColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFillColor')" class=ISymbol>setFillColor</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFillColor" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFillColor" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setFoEnabled><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFoEnabled" target=_parent class=ISymbol>setFoEnabled</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_setFontColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFontColor')" class=ISymbol>setFontColor</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFontColor" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFontColor" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setFontFamily><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFontFamily')" class=ISymbol>setFontFamily</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFontFamily" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFontFamily" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setFontSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFontSize')" class=ISymbol>setFontSize</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFontSize" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFontSize" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setFontStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setFontStyle')" class=ISymbol>setFontStyle</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setFontStyle" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setFontStyle" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setGeneralPurposeVariable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGeneralPurposeVariable')" class=ISymbol>setGeneralPurposeVariable</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.setGeneralPurposeVariable" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.setGeneralPurposeVariable" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.setGeneralPurposeVariable" target=_parent class=IParent>mxGraphHierarchyNode</a></div></div></div><div class=SRResult id=SR_setGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGeometry')" class=ISymbol>setGeometry</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setGeometry" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setGeometry" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setGlassGradient><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGlassGradient')" class=ISymbol>setGlassGradient</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setGlassGradient" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setGlassGradient" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setGradient><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGradient')" class=ISymbol>setGradient</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setGradient" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setGradient" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setGraph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGraph')" class=ISymbol>setGraph</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.setGraph" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.setGraph" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.setGraph" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setGraph" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_setGraphBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setGraphBounds" target=_parent class=ISymbol>setGraphBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setGraphContainer><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setGraphContainer" target=_parent class=ISymbol>setGraphContainer</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setGridEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGridEnabled')" class=ISymbol>setGridEnabled</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.setGridEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.setGridEnabled" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_setGridSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setGridSize" target=_parent class=ISymbol>setGridSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setGuidesEnabled><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.setGuidesEnabled" target=_parent class=ISymbol>setGuidesEnabled</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_setHideOnHover><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.setHideOnHover" target=_parent class=ISymbol>setHideOnHover</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_setHighlightColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setHighlightColor')" class=ISymbol>setHighlightColor</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.setHighlightColor" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setHighlightColor" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_setHorizontal><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setHorizontal" target=_parent class=ISymbol>setHorizontal</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_setHotspot><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.setHotspot" target=_parent class=ISymbol>setHotspot</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_setHotspotEnabled><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.setHotspotEnabled" target=_parent class=ISymbol>setHotspotEnabled</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_setHtmlLabels><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setHtmlLabels" target=_parent class=ISymbol>setHtmlLabels</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setId><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.setId" target=_parent class=ISymbol>setId</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setImage" target=_parent class=ISymbol>setImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setInvokesStopCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setInvokesStopCellEditing" target=_parent class=ISymbol>setInvokesStopCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setLineCap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setLineCap')" class=ISymbol>setLineCap</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setLineCap" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setLineCap" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setLineJoin><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setLineJoin')" class=ISymbol>setLineJoin</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setLineJoin" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setLineJoin" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setLocation><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setLocation" target=_parent class=ISymbol>setLocation</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setLocked><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setLocked" target=_parent class=ISymbol>setLocked</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setMaximizable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setMaximizable" target=_parent class=ISymbol>setMaximizable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setMinimizable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setMinimizable" target=_parent class=ISymbol>setMinimizable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setMiterLimit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setMiterLimit')" class=ISymbol>setMiterLimit</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setMiterLimit" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setMiterLimit" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setMode><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setMode" target=_parent class=ISymbol>setMode</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setModified><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setModified')" class=ISymbol>setModified</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.setModified" target=_parent class=IParent>mxCellEditor</a><a href="../files/editor/mxEditor-js.html#mxEditor.setModified" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_setMoveEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setMoveEnabled" target=_parent class=ISymbol>setMoveEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_setMultigraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setMultigraph" target=_parent class=ISymbol>setMultigraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setOpacity><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.setOpacity" target=_parent class=ISymbol>setOpacity</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setOrthogonalEdge><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.setOrthogonalEdge" target=_parent class=ISymbol>setOrthogonalEdge</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_setPanning><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setPanning" target=_parent class=ISymbol>setPanning</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setPanningEnabled><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.setPanningEnabled" target=_parent class=ISymbol>setPanningEnabled</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_setParent><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.setParent" target=_parent class=ISymbol>setParent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setPortsEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setPortsEnabled" target=_parent class=ISymbol>setPortsEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setPreviewColor><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.setPreviewColor" target=_parent class=ISymbol>setPreviewColor</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_setRect><div class=IEntry><a href="../files/util/mxRectangle-js.html#mxRectangle.setRect" target=_parent class=ISymbol>setRect</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_setRemoveCellsFromParent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setRemoveCellsFromParent" target=_parent class=ISymbol>setRemoveCellsFromParent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_setRendering><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setRendering" target=_parent class=ISymbol>setRendering</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setRequestHeaders><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.setRequestHeaders" target=_parent class=ISymbol>setRequestHeaders</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_setResizable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setResizable" target=_parent class=ISymbol>setResizable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setResizeContainer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setResizeContainer" target=_parent class=ISymbol>setResizeContainer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setResizeEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.setResizeEnabled" target=_parent class=ISymbol>setResizeEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_setRoot><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setRoot" target=_parent class=ISymbol>setRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setScale><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.setScale" target=_parent class=ISymbol>setScale</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setScrollable><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setScrollable" target=_parent class=ISymbol>setScrollable</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setSelectEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.setSelectEnabled" target=_parent class=ISymbol>setSelectEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_setSelectionCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSelectionCell" target=_parent class=ISymbol>setSelectionCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setSelectionCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSelectionCells" target=_parent class=ISymbol>setSelectionCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setSelectionModel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSelectionModel" target=_parent class=ISymbol>setSelectionModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setShiftDownwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.setShiftDownwards" target=_parent class=ISymbol>setShiftDownwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_setShiftRightwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.setShiftRightwards" target=_parent class=ISymbol>setShiftRightwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_setSingleSelection><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.setSingleSelection" target=_parent class=ISymbol>setSingleSelection</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_setSize><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setSize" target=_parent class=ISymbol>setSize</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setSplitEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSplitEnabled" target=_parent class=ISymbol>setSplitEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setStates><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStates')" class=ISymbol>setStates</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView.setStates" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxGuide-js.html#mxGuide.setStates" target=_parent class=IParent>mxGuide</a></div></div></div><div class=SRResult id=SR_setStatus><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setStatus" target=_parent class=ISymbol>setStatus</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setStatusContainer><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setStatusContainer" target=_parent class=ISymbol>setStatusContainer</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setStrokeColor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStrokeColor')" class=ISymbol>setStrokeColor</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setStrokeColor" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setStrokeColor" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setStrokeWidth><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStrokeWidth')" class=ISymbol>setStrokeWidth</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setStrokeWidth" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setStrokeWidth" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStyle')" class=ISymbol>setStyle</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setStyle" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setStyle" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-js.html#mxUtils.setStyle" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setStyleFlag><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.setStyleFlag" target=_parent class=ISymbol>setStyleFlag</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setStylesheet><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setStylesheet" target=_parent class=ISymbol>setStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setSwimlaneNesting><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSwimlaneNesting" target=_parent class=ISymbol>setSwimlaneNesting</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setSwimlaneSelectionEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setSwimlaneSelectionEnabled" target=_parent class=ISymbol>setSwimlaneSelectionEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setTerminal')" class=ISymbol>setTerminal</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setTerminal" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setTerminal" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setTerminalPoint><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.setTerminalPoint" target=_parent class=ISymbol>setTerminalPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_setTerminals><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setTerminals" target=_parent class=ISymbol>setTerminals</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setTextEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setTextEnabled')" class=ISymbol>setTextEnabled</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.setTextEnabled" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.setTextEnabled" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_setTitle><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.setTitle" target=_parent class=ISymbol>setTitle</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_setTitleContainer><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setTitleContainer" target=_parent class=ISymbol>setTitleContainer</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setTolerance><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setTolerance" target=_parent class=ISymbol>setTolerance</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setToolbarContainer><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.setToolbarContainer" target=_parent class=ISymbol>setToolbarContainer</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_setTooltips><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setTooltips" target=_parent class=ISymbol>setTooltips</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setTranslate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setTranslate')" class=ISymbol>setTranslate</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView.setTranslate" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxPath-js.html#mxPath.setTranslate" target=_parent class=IParent>mxPath</a></div></div></div><div class=SRResult id=SR_setValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setValue')" class=ISymbol>setValue</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setValue" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setValue" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setVertex><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.setVertex" target=_parent class=ISymbol>setVertex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setVertexLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.setVertexLabelsMovable" target=_parent class=ISymbol>setVertexLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setVertexLocation><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setVertexLocation')" class=ISymbol>setVertexLocation</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.setVertexLocation" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.setVertexLocation" target=_parent class=IParent>mxGraphLayout</a></div></div></div><div class=SRResult id=SR_setVisible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setVisible')" class=ISymbol>setVisible</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.setVisible" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.setVisible" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxLog-js.html#mxLog.setVisible" target=_parent class=IParent>mxLog</a><a href="../files/util/mxWindow-js.html#mxWindow.setVisible" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_setVisibleTerminalState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.setVisibleTerminalState" target=_parent class=ISymbol>setVisibleTerminalState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_setX><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.setX" target=_parent class=ISymbol>setX</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_setY><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.setY" target=_parent class=ISymbol>setY</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_setZoomEnabled><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.setZoomEnabled" target=_parent class=ISymbol>setZoomEnabled</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_shadow><div class=IEntry><a href="javascript:searchResults.Toggle('SR_shadow')" class=ISymbol>shadow</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.shadow" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.shadow" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_SHADOW_undOFFSET_undX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHADOW_OFFSET_X" target=_parent class=ISymbol>SHADOW_OFFSET_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHADOW_undOFFSET_undY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHADOW_OFFSET_Y" target=_parent class=ISymbol>SHADOW_OFFSET_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHADOW_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHADOW_OPACITY" target=_parent class=ISymbol>SHADOW_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHADOWCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHADOWCOLOR" target=_parent class=ISymbol>SHADOWCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_shape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_shape')" class=ISymbol>shape</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.shape" target=_parent class=IParent>mxCellState</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.shape" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.shape" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_SHAPE_undACTOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_ACTOR" target=_parent class=ISymbol>SHAPE_ACTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undARROW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_ARROW" target=_parent class=ISymbol>SHAPE_ARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCLOUD><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_CLOUD" target=_parent class=ISymbol>SHAPE_CLOUD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCONNECTOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_CONNECTOR" target=_parent class=ISymbol>SHAPE_CONNECTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCYLINDER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_CYLINDER" target=_parent class=ISymbol>SHAPE_CYLINDER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undDOUBLE_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_DOUBLE_ELLIPSE" target=_parent class=ISymbol>SHAPE_DOUBLE_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_ELLIPSE" target=_parent class=ISymbol>SHAPE_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undHEXAGON><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_HEXAGON" target=_parent class=ISymbol>SHAPE_HEXAGON</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_IMAGE" target=_parent class=ISymbol>SHAPE_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undLABEL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_LABEL" target=_parent class=ISymbol>SHAPE_LABEL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undLINE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_LINE" target=_parent class=ISymbol>SHAPE_LINE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undRECTANGLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_RECTANGLE" target=_parent class=ISymbol>SHAPE_RECTANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undRHOMBUS><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_RHOMBUS" target=_parent class=ISymbol>SHAPE_RHOMBUS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undSWIMLANE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_SWIMLANE" target=_parent class=ISymbol>SHAPE_SWIMLANE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undTRIANGLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_TRIANGLE" target=_parent class=ISymbol>SHAPE_TRIANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_shapes><div class=IEntry><a href="javascript:searchResults.Toggle('SR_shapes')" class=ISymbol>shapes</a><div class=ISubIndex><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.shapes" target=_parent class=IParent>mxCellRenderer</a><a href="../files/util/mxImageExport-js.html#mxImageExport.shapes" target=_parent class=IParent>mxImageExport</a></div></div></div><div class=SRResult id=SR_sharedDiv><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.sharedDiv" target=_parent class=ISymbol>sharedDiv</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_shiftCell><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.shiftCell" target=_parent class=ISymbol>shiftCell</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_shiftDownwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.shiftDownwards" target=_parent class=ISymbol>shiftDownwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_shiftKeys><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.shiftKeys" target=_parent class=ISymbol>shiftKeys</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_shiftRightwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.shiftRightwards" target=_parent class=ISymbol>shiftRightwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_shouldRemoveCellsFromParent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.shouldRemoveCellsFromParent" target=_parent class=ISymbol>shouldRemoveCellsFromParent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_show><div class=IEntry><a href="javascript:searchResults.Toggle('SR_show')" class=ISymbol>show</a><div class=ISubIndex><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.show" target=_parent class=IParent>mxCellStatePreview</a><a href="../files/util/mxLog-js.html#mxLog.show" target=_parent class=IParent>mxLog</a><a href="../files/util/mxMorphing-js.html#mxMorphing.show" target=_parent class=IParent>mxMorphing</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.show" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxUtils-js.html#mxUtils.show" target=_parent class=IParent>mxUtils</a><a href="../files/util/mxWindow-js.html#mxWindow.show" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR2_SHOW><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_SHOW')" class=ISymbol>SHOW</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.SHOW" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.mxEvent.SHOW" target=_parent class=IParent>mxPopupMenu.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_showHelp><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.showHelp" target=_parent class=ISymbol>showHelp</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_showMenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.showMenu" target=_parent class=ISymbol>showMenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_showOutline><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.showOutline" target=_parent class=ISymbol>showOutline</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_showProperties><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.showProperties" target=_parent class=ISymbol>showProperties</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_showSubmenu><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.showSubmenu" target=_parent class=ISymbol>showSubmenu</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_showTasks><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.showTasks" target=_parent class=ISymbol>showTasks</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_showViewport><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.showViewport" target=_parent class=ISymbol>showViewport</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_SideToSide><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.SideToSide" target=_parent class=ISymbol>SideToSide</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_significant><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.significant" target=_parent class=ISymbol>significant</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_significantRemoteChanges><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.significantRemoteChanges" target=_parent class=ISymbol>significantRemoteChanges</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_simulate><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.simulate" target=_parent class=ISymbol>simulate</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_singleSelection><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.singleSelection" target=_parent class=ISymbol>singleSelection</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_singleSizer><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.singleSizer" target=_parent class=ISymbol>singleSizer</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_size><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.size" target=_parent class=ISymbol>size</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR2_SIZE><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_SIZE')" class=ISymbol>SIZE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.SIZE" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.SIZE" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_sizeDidChange><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.sizeDidChange" target=_parent class=ISymbol>sizeDidChange</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_sizerImage><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.sizerImage" target=_parent class=ISymbol>sizerImage</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_smartSeparators><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.smartSeparators" target=_parent class=ISymbol>smartSeparators</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_snap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_snap')" class=ISymbol>snap</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.snap" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.snap" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_snapToTerminals><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.snapToTerminals" target=_parent class=ISymbol>snapToTerminals</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_sortCells><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.sortCells" target=_parent class=ISymbol>sortCells</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_source><div class=IEntry><a href="javascript:searchResults.Toggle('SR_source')" class=ISymbol>source</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.source" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.source" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.source" target=_parent class=IParent>mxMultiplicity</a><a href="../files/view/mxOutline-js.html#mxOutline.source" target=_parent class=IParent>mxOutline</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.source" target=_parent class=IParent>mxUndoableEdit</a></div></div></div><div class=SRResult id=SR_sourcePoint><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.sourcePoint" target=_parent class=ISymbol>sourcePoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_SOURCESCANSTARTRANK><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.SOURCESCANSTARTRANK" target=_parent class=ISymbol>SOURCESCANSTARTRANK</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_spacing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_spacing')" class=ISymbol>spacing</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.spacing" target=_parent class=IParent>mxCellHighlight</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.spacing" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/shape/mxLabel-js.html#mxLabel.spacing" target=_parent class=IParent>mxLabel</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.spacing" target=_parent class=IParent>mxParallelEdgeLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.spacing" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.spacing" target=_parent class=IParent>mxStackLayout</a></div></div></div><div class=SRResult id=SR_SPLIT_undEDGE><div class=IEntry><a href="javascript:searchResults.Toggle('SR_SPLIT_undEDGE')" class=ISymbol>SPLIT_EDGE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.SPLIT_EDGE" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.SPLIT_EDGE" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_splitEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.splitEdge" target=_parent class=ISymbol>splitEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_splitEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.splitEnabled" target=_parent class=ISymbol>splitEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_src><div class=IEntry><a href="../files/util/mxImage-js.html#mxImage.src" target=_parent class=ISymbol>src</a>, <span class=IParent>mxImage</span></div></div><div class=SRResult id=SR_start><div class=IEntry><a href="javascript:searchResults.Toggle('SR_start')" class=ISymbol>start</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.start" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.start" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.start" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.start" target=_parent class=IParent>mxRubberband</a><a href="../files/util/mxSession-js.html#mxSession.start" target=_parent class=IParent>mxSession</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.start" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_START_undEDITING><div class=IEntry><a href="javascript:searchResults.Toggle('SR_START_undEDITING')" class=ISymbol>START_EDITING</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.START_EDITING" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.START_EDITING" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_startAnimation><div class=IEntry><a href="../files/util/mxAnimation-js.html#mxAnimation.startAnimation" target=_parent class=ISymbol>startAnimation</a>, <span class=IParent>mxAnimation</span></div></div><div class=SRResult id=SR_startDrag><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.startDrag" target=_parent class=ISymbol>startDrag</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_startEditing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_startEditing')" class=ISymbol>startEditing</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.startEditing" target=_parent class=IParent>mxCellEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.startEditing" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_startEditingAtCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.startEditingAtCell" target=_parent class=ISymbol>startEditingAtCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_startOffset><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.startOffset" target=_parent class=ISymbol>startOffset</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_state><div class=IEntry><a href="javascript:searchResults.Toggle('SR_state')" class=ISymbol>state</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.state" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.state" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.state" target=_parent class=IParent>mxMouseEvent</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.state" target=_parent class=IParent>mxStencilShape</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.state" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_states><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.states" target=_parent class=ISymbol>states</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_status><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.status" target=_parent class=ISymbol>status</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_stencil><div class=IEntry><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.stencil" target=_parent class=ISymbol>stencil</a>, <span class=IParent>mxStencilShape</span></div></div><div class=SRResult id=SR_step><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.step" target=_parent class=ISymbol>step</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_steps><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.steps" target=_parent class=ISymbol>steps</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_STEPSIZE><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard.STEPSIZE" target=_parent class=ISymbol>STEPSIZE</a>, <span class=IParent>mxClipboard</span></div></div><div class=SRResult id=SR_stop><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.stop" target=_parent class=ISymbol>stop</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_stopAnimation><div class=IEntry><a href="../files/util/mxAnimation-js.html#mxAnimation.stopAnimation" target=_parent class=ISymbol>stopAnimation</a>, <span class=IParent>mxAnimation</span></div></div><div class=SRResult id=SR_stopDrag><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.stopDrag" target=_parent class=ISymbol>stopDrag</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_stopEditing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_stopEditing')" class=ISymbol>stopEditing</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.stopEditing" target=_parent class=IParent>mxCellEditor</a><a href="../files/view/mxGraph-js.html#mxGraph.stopEditing" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_stopRecursion><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.stopRecursion" target=_parent class=ISymbol>stopRecursion</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_stroke><div class=IEntry><a href="javascript:searchResults.Toggle('SR_stroke')" class=ISymbol>stroke</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.stroke" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.stroke" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_strokedBackground><div class=IEntry><a href="../files/shape/mxCylinder-js.html#mxCylinder.strokedBackground" target=_parent class=ISymbol>strokedBackground</a>, <span class=IParent>mxCylinder</span></div></div><div class=SRResult id=SR_strokewidth><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.strokewidth" target=_parent class=ISymbol>strokewidth</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_style><div class=IEntry><a href="javascript:searchResults.Toggle('SR_style')" class=ISymbol>style</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.style" target=_parent class=IParent>mxCell</a><a href="../files/view/mxCellState-js.html#mxCellState.style" target=_parent class=IParent>mxCellState</a><a href="../files/shape/mxShape-js.html#mxShape.style" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_STYLE_undALIGN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ALIGN" target=_parent class=ISymbol>STYLE_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undARCSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ARCSIZE" target=_parent class=ISymbol>STYLE_ARCSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undAUTOSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_AUTOSIZE" target=_parent class=ISymbol>STYLE_AUTOSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undBENDABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_BENDABLE" target=_parent class=ISymbol>STYLE_BENDABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undCLONEABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_CLONEABLE" target=_parent class=ISymbol>STYLE_CLONEABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDASHED><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_DASHED" target=_parent class=ISymbol>STYLE_DASHED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDELETABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_DELETABLE" target=_parent class=ISymbol>STYLE_DELETABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_DIRECTION" target=_parent class=ISymbol>STYLE_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEDGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EDGE" target=_parent class=ISymbol>STYLE_EDGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEDITABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EDITABLE" target=_parent class=ISymbol>STYLE_EDITABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undELBOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ELBOW" target=_parent class=ISymbol>STYLE_ELBOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDARROW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENDARROW" target=_parent class=ISymbol>STYLE_ENDARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDFILL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENDFILL" target=_parent class=ISymbol>STYLE_ENDFILL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENDSIZE" target=_parent class=ISymbol>STYLE_ENDSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENTRY_PERIMETER" target=_parent class=ISymbol>STYLE_ENTRY_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENTRY_X" target=_parent class=ISymbol>STYLE_ENTRY_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENTRY_Y" target=_parent class=ISymbol>STYLE_ENTRY_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EXIT_PERIMETER" target=_parent class=ISymbol>STYLE_EXIT_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EXIT_X" target=_parent class=ISymbol>STYLE_EXIT_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EXIT_Y" target=_parent class=ISymbol>STYLE_EXIT_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FILLCOLOR" target=_parent class=ISymbol>STYLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFOLDABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FOLDABLE" target=_parent class=ISymbol>STYLE_FOLDABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FONTCOLOR" target=_parent class=ISymbol>STYLE_FONTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FONTFAMILY" target=_parent class=ISymbol>STYLE_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FONTSIZE" target=_parent class=ISymbol>STYLE_FONTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTSTYLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FONTSTYLE" target=_parent class=ISymbol>STYLE_FONTSTYLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGLASS><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_GLASS" target=_parent class=ISymbol>STYLE_GLASS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGRADIENT_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_GRADIENT_DIRECTION" target=_parent class=ISymbol>STYLE_GRADIENT_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGRADIENTCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_GRADIENTCOLOR" target=_parent class=ISymbol>STYLE_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undHORIZONTAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_HORIZONTAL" target=_parent class=ISymbol>STYLE_HORIZONTAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE" target=_parent class=ISymbol>STYLE_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undALIGN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_ALIGN" target=_parent class=ISymbol>STYLE_IMAGE_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undASPECT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_ASPECT" target=_parent class=ISymbol>STYLE_IMAGE_ASPECT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undBACKGROUND><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_BACKGROUND" target=_parent class=ISymbol>STYLE_IMAGE_BACKGROUND</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undBORDER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_BORDER" target=_parent class=ISymbol>STYLE_IMAGE_BORDER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undFLIPH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_FLIPH" target=_parent class=ISymbol>STYLE_IMAGE_FLIPH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undFLIPV><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_FLIPV" target=_parent class=ISymbol>STYLE_IMAGE_FLIPV</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undHEIGHT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_HEIGHT" target=_parent class=ISymbol>STYLE_IMAGE_HEIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undVERTICAL_undALIGN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_VERTICAL_ALIGN" target=_parent class=ISymbol>STYLE_IMAGE_VERTICAL_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_WIDTH" target=_parent class=ISymbol>STYLE_IMAGE_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_COLOR" target=_parent class=ISymbol>STYLE_INDICATOR_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_DIRECTION" target=_parent class=ISymbol>STYLE_INDICATOR_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undGRADIENTCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_GRADIENTCOLOR" target=_parent class=ISymbol>STYLE_INDICATOR_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undHEIGHT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_HEIGHT" target=_parent class=ISymbol>STYLE_INDICATOR_HEIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_IMAGE" target=_parent class=ISymbol>STYLE_INDICATOR_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSHAPE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_SHAPE" target=_parent class=ISymbol>STYLE_INDICATOR_SHAPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_SPACING" target=_parent class=ISymbol>STYLE_INDICATOR_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_STROKECOLOR" target=_parent class=ISymbol>STYLE_INDICATOR_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_WIDTH" target=_parent class=ISymbol>STYLE_INDICATOR_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undBACKGROUNDCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LABEL_BACKGROUNDCOLOR" target=_parent class=ISymbol>STYLE_LABEL_BACKGROUNDCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undBORDERCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LABEL_BORDERCOLOR" target=_parent class=ISymbol>STYLE_LABEL_BORDERCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undPADDING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LABEL_PADDING" target=_parent class=ISymbol>STYLE_LABEL_PADDING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undPOSITION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LABEL_POSITION" target=_parent class=ISymbol>STYLE_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLOOP><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LOOP" target=_parent class=ISymbol>STYLE_LOOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undMOVABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_MOVABLE" target=_parent class=ISymbol>STYLE_MOVABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undNOEDGESTYLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_NOEDGESTYLE" target=_parent class=ISymbol>STYLE_NOEDGESTYLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undNOLABEL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_NOLABEL" target=_parent class=ISymbol>STYLE_NOLABEL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_OPACITY" target=_parent class=ISymbol>STYLE_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undORTHOGONAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ORTHOGONAL" target=_parent class=ISymbol>STYLE_ORTHOGONAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undOVERFLOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_OVERFLOW" target=_parent class=ISymbol>STYLE_OVERFLOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_PERIMETER" target=_parent class=ISymbol>STYLE_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPORT_undCONSTRAINT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_PORT_CONSTRAINT" target=_parent class=ISymbol>STYLE_PORT_CONSTRAINT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undRESIZABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_RESIZABLE" target=_parent class=ISymbol>STYLE_RESIZABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROTATION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ROTATION" target=_parent class=ISymbol>STYLE_ROTATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUNDED><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ROUNDED" target=_parent class=ISymbol>STYLE_ROUNDED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUTING_undCENTER_undX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ROUTING_CENTER_X" target=_parent class=ISymbol>STYLE_ROUTING_CENTER_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUTING_undCENTER_undY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ROUTING_CENTER_Y" target=_parent class=ISymbol>STYLE_ROUTING_CENTER_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SEGMENT" target=_parent class=ISymbol>STYLE_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSEPARATORCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SEPARATORCOLOR" target=_parent class=ISymbol>STYLE_SEPARATORCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSHADOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SHADOW" target=_parent class=ISymbol>STYLE_SHADOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSHAPE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SHAPE" target=_parent class=ISymbol>STYLE_SHAPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSMOOTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SMOOTH" target=_parent class=ISymbol>STYLE_SMOOTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSOURCE_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SOURCE_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_SOURCE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSOURCE_undPORT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SOURCE_PORT" target=_parent class=ISymbol>STYLE_SOURCE_PORT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING" target=_parent class=ISymbol>STYLE_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undBOTTOM><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING_BOTTOM" target=_parent class=ISymbol>STYLE_SPACING_BOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undLEFT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING_LEFT" target=_parent class=ISymbol>STYLE_SPACING_LEFT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undRIGHT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING_RIGHT" target=_parent class=ISymbol>STYLE_SPACING_RIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undTOP><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING_TOP" target=_parent class=ISymbol>STYLE_SPACING_TOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTARROW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STARTARROW" target=_parent class=ISymbol>STYLE_STARTARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTFILL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STARTFILL" target=_parent class=ISymbol>STYLE_STARTFILL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STARTSIZE" target=_parent class=ISymbol>STYLE_STARTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTENCIL_undFLIPH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STENCIL_FLIPH" target=_parent class=ISymbol>STYLE_STENCIL_FLIPH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTENCIL_undFLIPV><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STENCIL_FLIPV" target=_parent class=ISymbol>STYLE_STENCIL_FLIPV</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STROKECOLOR" target=_parent class=ISymbol>STYLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STROKEWIDTH" target=_parent class=ISymbol>STYLE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTARGET_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_TARGET_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_TARGET_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTARGET_undPORT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_TARGET_PORT" target=_parent class=ISymbol>STYLE_TARGET_PORT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTEXT_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_TEXT_OPACITY" target=_parent class=ISymbol>STYLE_TEXT_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undVERTICAL_undALIGN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_VERTICAL_ALIGN" target=_parent class=ISymbol>STYLE_VERTICAL_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undVERTICAL_undLABEL_undPOSITION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_VERTICAL_LABEL_POSITION" target=_parent class=ISymbol>STYLE_VERTICAL_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undWHITE_undSPACE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_WHITE_SPACE" target=_parent class=ISymbol>STYLE_WHITE_SPACE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_styleForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.styleForCellChanged" target=_parent class=ISymbol>styleForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_styles><div class=IEntry><a href="../files/view/mxStylesheet-js.html#mxStylesheet.styles" target=_parent class=ISymbol>styles</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_stylesheet><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.stylesheet" target=_parent class=ISymbol>stylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_submenuImage><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.submenuImage" target=_parent class=ISymbol>submenuImage</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_submit><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.submit" target=_parent class=ISymbol>submit</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_suspend><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.suspend" target=_parent class=ISymbol>suspend</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR2_SUSPEND><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_SUSPEND')" class=ISymbol>SUSPEND</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.SUSPEND" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxSession-js.html#mxSession.mxEvent.SUSPEND" target=_parent class=IParent>mxSession.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_suspended><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.suspended" target=_parent class=ISymbol>suspended</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_SVG_undSTROKE_undTOLERANCE><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.SVG_STROKE_TOLERANCE" target=_parent class=ISymbol>SVG_STROKE_TOLERANCE</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_swap><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.swap" target=_parent class=ISymbol>swap</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_swapBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.swapBounds" target=_parent class=ISymbol>swapBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_swapStyles><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.swapStyles" target=_parent class=ISymbol>swapStyles</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_swimlaneAdded><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.swimlaneAdded" target=_parent class=ISymbol>swimlaneAdded</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_swimlaneIndicatorColorAttribute><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.swimlaneIndicatorColorAttribute" target=_parent class=ISymbol>swimlaneIndicatorColorAttribute</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_swimlaneNesting><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.swimlaneNesting" target=_parent class=ISymbol>swimlaneNesting</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_swimlaneRequired><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.swimlaneRequired" target=_parent class=ISymbol>swimlaneRequired</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_swimlaneSelectionEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.swimlaneSelectionEnabled" target=_parent class=ISymbol>swimlaneSelectionEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_swimlaneSpacing><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.swimlaneSpacing" target=_parent class=ISymbol>swimlaneSpacing</a>, <span class=IParent>mxEditor</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralT.html b/docs/js-api/search/GeneralT.html
    new file mode 100644
    index 000000000..ff9f1a9e7
    --- /dev/null
    +++ b/docs/js-api/search/GeneralT.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_table><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.table" target=_parent class=ISymbol>table</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_tapAndHold><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHold" target=_parent class=ISymbol>tapAndHold</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_tapAndHoldDelay><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldDelay" target=_parent class=ISymbol>tapAndHoldDelay</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_tapAndHoldEnabled><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldEnabled" target=_parent class=ISymbol>tapAndHoldEnabled</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_tapAndHoldInProgress><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldInProgress" target=_parent class=ISymbol>tapAndHoldInProgress</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_tapAndHoldTolerance><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldTolerance" target=_parent class=ISymbol>tapAndHoldTolerance</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_tapAndHoldValid><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldValid" target=_parent class=ISymbol>tapAndHoldValid</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_target><div class=IEntry><a href="javascript:searchResults.Toggle('SR_target')" class=ISymbol>target</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.target" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.target" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.target" target=_parent class=IParent>mxKeyHandler</a></div></div></div><div class=SRResult id=SR_TARGET_undHIGHLIGHT_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.TARGET_HIGHLIGHT_COLOR" target=_parent class=ISymbol>TARGET_HIGHLIGHT_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_targetConnectImage><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.targetConnectImage" target=_parent class=ISymbol>targetConnectImage</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_targetPoint><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.targetPoint" target=_parent class=ISymbol>targetPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_tasks><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.tasks" target=_parent class=ISymbol>tasks</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_tasksResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.tasksResource" target=_parent class=ISymbol>tasksResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_tasksTop><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.tasksTop" target=_parent class=ISymbol>tasksTop</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_tasksWindowImage><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.tasksWindowImage" target=_parent class=ISymbol>tasksWindowImage</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_temp><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.temp" target=_parent class=ISymbol>temp</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_temperature><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.temperature" target=_parent class=ISymbol>temperature</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_template><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.template" target=_parent class=ISymbol>template</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_templates><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.templates" target=_parent class=ISymbol>templates</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR2_Templates><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.Templates" target=_parent class=ISymbol>Templates</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_terminalDistance><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.terminalDistance" target=_parent class=ISymbol>terminalDistance</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_terminalForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.terminalForCellChanged" target=_parent class=ISymbol>terminalForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_text><div class=IEntry><a href="javascript:searchResults.Toggle('SR_text')" class=ISymbol>text</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.text" target=_parent class=IParent>mxCellState</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.text" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.text" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_textarea><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.textarea" target=_parent class=ISymbol>textarea</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_textEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_textEnabled')" class=ISymbol>textEnabled</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.textEnabled" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.textEnabled" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_textNode><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.textNode" target=_parent class=ISymbol>textNode</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_thread><div class=IEntry><a href="../files/util/mxAnimation-js.html#mxAnimation.thread" target=_parent class=ISymbol>thread</a>, <span class=IParent>mxAnimation</span></div></div><div class=SRResult id=SR_tightenToSource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_tightenToSource')" class=ISymbol>tightenToSource</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.tightenToSource" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.tightenToSource" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_title><div class=IEntry><a href="javascript:searchResults.Toggle('SR_title')" class=ISymbol>title</a><div class=ISubIndex><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.title" target=_parent class=IParent>mxPrintPreview</a><a href="../files/util/mxWindow-js.html#mxWindow.title" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_TOGGLE_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_TOGGLE_undCELLS')" class=ISymbol>TOGGLE_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.TOGGLE_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.TOGGLE_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_toggleCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.toggleCells" target=_parent class=ISymbol>toggleCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_toggleCellStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.toggleCellStyle" target=_parent class=ISymbol>toggleCellStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_toggleCellStyleFlags><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.toggleCellStyleFlags" target=_parent class=ISymbol>toggleCellStyleFlags</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_toggleCellStyles><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.toggleCellStyles" target=_parent class=ISymbol>toggleCellStyles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_tolerance><div class=IEntry><a href="javascript:searchResults.Toggle('SR_tolerance')" class=ISymbol>tolerance</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.tolerance" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.tolerance" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.tolerance" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_toolbar><div class=IEntry><a href="javascript:searchResults.Toggle('SR_toolbar')" class=ISymbol>toolbar</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.toolbar" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/editor/mxEditor-js.html#mxEditor.toolbar" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_tooltip><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.tooltip" target=_parent class=ISymbol>tooltip</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_TOOLTIP_undVERTICAL_undOFFSET><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.TOOLTIP_VERTICAL_OFFSET" target=_parent class=ISymbol>TOOLTIP_VERTICAL_OFFSET</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_TopToBottom><div class=IEntry><a href="../files/view/mxEdgeStyle-js.html#mxEdgeStyle.TopToBottom" target=_parent class=ISymbol>TopToBottom</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_toRadians><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.toRadians" target=_parent class=ISymbol>toRadians</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_toString><div class=IEntry><a href="javascript:searchResults.Toggle('SR_toString')" class=ISymbol>toString</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.toString" target=_parent class=IParent>mxCellOverlay</a><a href="../files/util/mxUtils-js.html#mxUtils.toString" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_TRACE><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.TRACE" target=_parent class=ISymbol>TRACE</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_transformControlPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.transformControlPoint" target=_parent class=ISymbol>transformControlPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_translate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_translate')" class=ISymbol>translate</a><div class=ISubIndex><a href="../files/model/mxGeometry-js.html#mxGeometry.translate" target=_parent class=IParent>mxGeometry</a><a href="../files/view/mxGraphView-js.html#mxGraphView.translate" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxPath-js.html#mxPath.translate" target=_parent class=IParent>mxPath</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.translate" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.translate" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR2_TRANSLATE><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_TRANSLATE')" class=ISymbol>TRANSLATE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.TRANSLATE" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.TRANSLATE" target=_parent class=IParent>mxGraphView.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_TRANSLATE_undCONTROL_undPOINTS><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.TRANSLATE_CONTROL_POINTS" target=_parent class=ISymbol>TRANSLATE_CONTROL_POINTS</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_translateCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.translateCell" target=_parent class=ISymbol>translateCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_translateState><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.translateState" target=_parent class=ISymbol>translateState</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_transpose><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.transpose" target=_parent class=ISymbol>transpose</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_traverse><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.traverse" target=_parent class=ISymbol>traverse</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_treeLayout><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.treeLayout" target=_parent class=ISymbol>treeLayout</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_TrianglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-js.html#mxPerimeter.TrianglePerimeter" target=_parent class=ISymbol>TrianglePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_trigger><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.trigger" target=_parent class=ISymbol>trigger</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_trim><div class=IEntry><a href="javascript:searchResults.Toggle('SR_trim')" class=ISymbol>trim</a><div class=ISubIndex><a href="../files/util/mxUndoManager-js.html#mxUndoManager.trim" target=_parent class=IParent>mxUndoManager</a><a href="../files/util/mxUtils-js.html#mxUtils.trim" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_type><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.type" target=_parent class=ISymbol>type</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_typeError><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.typeError" target=_parent class=ISymbol>typeError</a>, <span class=IParent>mxMultiplicity</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralU.html b/docs/js-api/search/GeneralU.html
    new file mode 100644
    index 000000000..89f2261a9
    --- /dev/null
    +++ b/docs/js-api/search/GeneralU.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_undo><div class=IEntry><a href="javascript:searchResults.Toggle('SR_undo')" class=ISymbol>undo</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.undo" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.undo" target=_parent class=IParent>mxUndoableEdit</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.undo" target=_parent class=IParent>mxUndoManager</a></div></div></div><div class=SRResult id=SR2_UNDO><div class=IEntry><a href="javascript:searchResults.Toggle('SR2_UNDO')" class=ISymbol>UNDO</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.UNDO" target=_parent class=IParent>mxEvent</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.mxEvent.UNDO" target=_parent class=IParent>mxGraphModel.<wbr>mxEvent</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.mxEvent.UNDO" target=_parent class=IParent>mxGraphSelectionModel.<wbr>mxEvent</a><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.UNDO" target=_parent class=IParent>mxGraphView.<wbr>mxEvent</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.mxEvent.UNDO" target=_parent class=IParent>mxUndoManager.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_undoableEditHappened><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.undoableEditHappened" target=_parent class=ISymbol>undoableEditHappened</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_undoManager><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.undoManager" target=_parent class=ISymbol>undoManager</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_undone><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.undone" target=_parent class=ISymbol>undone</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_UNGROUP_undCELLS><div class=IEntry><a href="javascript:searchResults.Toggle('SR_UNGROUP_undCELLS')" class=ISymbol>UNGROUP_CELLS</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.UNGROUP_CELLS" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.UNGROUP_CELLS" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_ungroupCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.ungroupCells" target=_parent class=ISymbol>ungroupCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_union><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.union" target=_parent class=ISymbol>union</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_unmark><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.unmark" target=_parent class=ISymbol>unmark</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_UP><div class=IEntry><a href="javascript:searchResults.Toggle('SR_UP')" class=ISymbol>UP</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.UP" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraphView-js.html#mxGraphView.mxEvent.DOWN_and_mxEvent.UP" target=_parent class=IParent>mxGraphView.<wbr>mxEvent.<wbr>DOWN and mxEvent</a></div></div></div><div class=SRResult id=SR_update><div class=IEntry><a href="javascript:searchResults.Toggle('SR_update')" class=ISymbol>update</a><div class=ISubIndex><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.update" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/view/mxOutline-js.html#mxOutline.update" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.update" target=_parent class=IParent>mxRubberband</a></div></div></div><div class=SRResult id=SR_UPDATE_undCELL_undSIZE><div class=IEntry><a href="javascript:searchResults.Toggle('SR_UPDATE_undCELL_undSIZE')" class=ISymbol>UPDATE_CELL_SIZE</a><div class=ISubIndex><a href="../files/util/mxEvent-js.html#mxEvent.UPDATE_CELL_SIZE" target=_parent class=IParent>mxEvent</a><a href="../files/view/mxGraph-js.html#mxGraph.mxEvent.UPDATE_CELL_SIZE" target=_parent class=IParent>mxGraph.<wbr>mxEvent</a></div></div></div><div class=SRResult id=SR_updateAlternateBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.updateAlternateBounds" target=_parent class=ISymbol>updateAlternateBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_updateAnimation><div class=IEntry><a href="javascript:searchResults.Toggle('SR_updateAnimation')" class=ISymbol>updateAnimation</a><div class=ISubIndex><a href="../files/util/mxAnimation-js.html#mxAnimation.updateAnimation" target=_parent class=IParent>mxAnimation</a><a href="../files/util/mxMorphing-js.html#mxMorphing.updateAnimation" target=_parent class=IParent>mxMorphing</a></div></div></div><div class=SRResult id=SR_updateAspect><div class=IEntry><a href="../files/shape/mxImageShape-js.html#mxImageShape.updateAspect" target=_parent class=ISymbol>updateAspect</a>, <span class=IParent>mxImageShape</span></div></div><div class=SRResult id=SR_updateCellSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.updateCellSize" target=_parent class=ISymbol>updateCellSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_updateCurrentState><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.updateCurrentState" target=_parent class=ISymbol>updateCurrentState</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_updateCursor><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.updateCursor" target=_parent class=ISymbol>updateCursor</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_updateDefaultMode><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.updateDefaultMode" target=_parent class=ISymbol>updateDefaultMode</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_updateEdgeBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateEdgeBounds" target=_parent class=ISymbol>updateEdgeBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateEdgeLabelOffset><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateEdgeLabelOffset" target=_parent class=ISymbol>updateEdgeLabelOffset</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateEdgeParent><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.updateEdgeParent" target=_parent class=ISymbol>updateEdgeParent</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateEdgeParents><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.updateEdgeParents" target=_parent class=ISymbol>updateEdgeParents</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateFixedTerminalPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateFixedTerminalPoint" target=_parent class=ISymbol>updateFixedTerminalPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFixedTerminalPoints><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateFixedTerminalPoints" target=_parent class=ISymbol>updateFixedTerminalPoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFloatingTerminalPoint><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateFloatingTerminalPoint" target=_parent class=ISymbol>updateFloatingTerminalPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFloatingTerminalPoints><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateFloatingTerminalPoints" target=_parent class=ISymbol>updateFloatingTerminalPoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateGroupBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.updateGroupBounds" target=_parent class=ISymbol>updateGroupBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_updateHandler><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.updateHandler" target=_parent class=ISymbol>updateHandler</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_updateHtmlShape><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateHtmlShape" target=_parent class=ISymbol>updateHtmlShape</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateIcons><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.updateIcons" target=_parent class=ISymbol>updateIcons</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_updateLevel><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.updateLevel" target=_parent class=ISymbol>updateLevel</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateMouseEvent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.updateMouseEvent" target=_parent class=ISymbol>updateMouseEvent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_updateOnPan><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.updateOnPan" target=_parent class=ISymbol>updateOnPan</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_updatePoints><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updatePoints" target=_parent class=ISymbol>updatePoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updatePreviewShape><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.updatePreviewShape" target=_parent class=ISymbol>updatePreviewShape</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_updatePreviewState><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.updatePreviewState" target=_parent class=ISymbol>updatePreviewState</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_updateStyle><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateStyle" target=_parent class=ISymbol>updateStyle</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateSvgBounds><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgBounds" target=_parent class=ISymbol>updateSvgBounds</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgGlassPane><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgGlassPane" target=_parent class=ISymbol>updateSvgGlassPane</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgNode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_updateSvgNode')" class=ISymbol>updateSvgNode</a><div class=ISubIndex><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.updateSvgNode" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.updateSvgNode" target=_parent class=IParent>mxEllipse</a></div></div></div><div class=SRResult id=SR_updateSvgPath><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgPath" target=_parent class=ISymbol>updateSvgPath</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgScale><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgScale" target=_parent class=ISymbol>updateSvgScale</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgShape><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgShape" target=_parent class=ISymbol>updateSvgShape</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateSvgTransform><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateSvgTransform" target=_parent class=ISymbol>updateSvgTransform</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateTableStyle><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.updateTableStyle" target=_parent class=ISymbol>updateTableStyle</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_updateTableWidth><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.updateTableWidth" target=_parent class=ISymbol>updateTableWidth</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_updateVertexLabelOffset><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateVertexLabelOffset" target=_parent class=ISymbol>updateVertexLabelOffset</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateVmlDashStyle><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlDashStyle" target=_parent class=ISymbol>updateVmlDashStyle</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlFill><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlFill" target=_parent class=ISymbol>updateVmlFill</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlGlassPane><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlGlassPane" target=_parent class=ISymbol>updateVmlGlassPane</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlMarkerOpacity><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector.updateVmlMarkerOpacity" target=_parent class=ISymbol>updateVmlMarkerOpacity</a>, <span class=IParent>mxConnector</span></div></div><div class=SRResult id=SR_updateVmlShape><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlShape" target=_parent class=ISymbol>updateVmlShape</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlStrokeColor><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlStrokeColor" target=_parent class=ISymbol>updateVmlStrokeColor</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updateVmlStrokeNode><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.updateVmlStrokeNode" target=_parent class=ISymbol>updateVmlStrokeNode</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_updatingDocumentResource><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updatingDocumentResource" target=_parent class=ISymbol>updatingDocumentResource</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updatingSelectionResource><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.updatingSelectionResource" target=_parent class=ISymbol>updatingSelectionResource</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_url><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.url" target=_parent class=ISymbol>url</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_urlHelp><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.urlHelp" target=_parent class=ISymbol>urlHelp</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_urlImage><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.urlImage" target=_parent class=ISymbol>urlImage</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_urlInit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_urlInit')" class=ISymbol>urlInit</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.urlInit" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSession-js.html#mxSession.urlInit" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_urlNotify><div class=IEntry><a href="javascript:searchResults.Toggle('SR_urlNotify')" class=ISymbol>urlNotify</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.urlNotify" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSession-js.html#mxSession.urlNotify" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_urlPoll><div class=IEntry><a href="javascript:searchResults.Toggle('SR_urlPoll')" class=ISymbol>urlPoll</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.urlPoll" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSession-js.html#mxSession.urlPoll" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_urlPost><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.urlPost" target=_parent class=ISymbol>urlPost</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_useBoundingBox><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.useBoundingBox" target=_parent class=ISymbol>useBoundingBox</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_useGrid><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.useGrid" target=_parent class=ISymbol>useGrid</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_useGuidesForEvent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.useGuidesForEvent" target=_parent class=ISymbol>useGuidesForEvent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_useInputOrigin><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.useInputOrigin" target=_parent class=ISymbol>useInputOrigin</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_useLeftButtonForPanning><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.useLeftButtonForPanning" target=_parent class=ISymbol>useLeftButtonForPanning</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_useLeftButtonForPopup><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.useLeftButtonForPopup" target=_parent class=ISymbol>useLeftButtonForPopup</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_usePopupTrigger><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.usePopupTrigger" target=_parent class=ISymbol>usePopupTrigger</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_username><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.username" target=_parent class=ISymbol>username</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_useScrollbarsForPanning><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.useScrollbarsForPanning" target=_parent class=ISymbol>useScrollbarsForPanning</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralV.html b/docs/js-api/search/GeneralV.html
    new file mode 100644
    index 000000000..cd97fd9b8
    --- /dev/null
    +++ b/docs/js-api/search/GeneralV.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_VALID_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.VALID_COLOR" target=_parent class=ISymbol>VALID_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_validate><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.validate" target=_parent class=ISymbol>validate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validateBackground><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.validateBackground" target=_parent class=ISymbol>validateBackground</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validateBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.validateBounds" target=_parent class=ISymbol>validateBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validateCell><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.validateCell" target=_parent class=ISymbol>validateCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_validateConnection><div class=IEntry><a href="javascript:searchResults.Toggle('SR_validateConnection')" class=ISymbol>validateConnection</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.validateConnection" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.validateConnection" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_validateEdge><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.validateEdge" target=_parent class=ISymbol>validateEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_validateGraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.validateGraph" target=_parent class=ISymbol>validateGraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_validatePoints><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.validatePoints" target=_parent class=ISymbol>validatePoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validating><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.validating" target=_parent class=ISymbol>validating</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_Validation><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.Validation" target=_parent class=ISymbol>Validation</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_validationAlert><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.validationAlert" target=_parent class=ISymbol>validationAlert</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_validColor><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.validColor" target=_parent class=ISymbol>validColor</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_validNeighbors><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.validNeighbors" target=_parent class=ISymbol>validNeighbors</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_validNeighborsAllowed><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.validNeighborsAllowed" target=_parent class=ISymbol>validNeighborsAllowed</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_validState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.validState" target=_parent class=ISymbol>validState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_value><div class=IEntry><a href="javascript:searchResults.Toggle('SR_value')" class=ISymbol>value</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.value" target=_parent class=IParent>mxCell</a><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.value" target=_parent class=IParent>mxMultiplicity</a></div></div></div><div class=SRResult id=SR_valueChanged><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.valueChanged" target=_parent class=ISymbol>valueChanged</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_valueForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.valueForCellChanged" target=_parent class=ISymbol>valueForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_values><div class=IEntry><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.values" target=_parent class=ISymbol>values</a>, <span class=IParent>mxStyleRegistry</span></div></div><div class=SRResult id=SR_Variables><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Variables')" class=ISymbol>Variables</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.Variables" target=_parent class=IParent>MedianCellSorter</a><a href="../files/shape/mxActor-js.html#mxActor.Variables" target=_parent class=IParent>mxActor</a><a href="../files/util/mxAnimation-js.html#mxAnimation.Variables" target=_parent class=IParent>mxAnimation</a><a href="../files/shape/mxArrow-js.html#mxArrow.Variables" target=_parent class=IParent>mxArrow</a><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.Variables" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/model/mxCell-js.html#mxCell.Variables" target=_parent class=IParent>mxCell</a><a href="../files/view/mxCellEditor-js.html#mxCellEditor.Variables" target=_parent class=IParent>mxCellEditor</a><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.Variables" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.Variables" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.Variables" target=_parent class=IParent>mxCellOverlay</a><a href="../files/model/mxCellPath-js.html#mxCellPath.Variables" target=_parent class=IParent>mxCellPath</a><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.Variables" target=_parent class=IParent>mxCellRenderer</a><a href="../files/view/mxCellState-js.html#mxCellState.Variables" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.Variables" target=_parent class=IParent>mxCellStatePreview</a><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.Variables" target=_parent class=IParent>mxCircleLayout</a><a href="../files/mxClient-js.html#mxClient.Variables" target=_parent class=IParent>mxClient</a><a href="../files/util/mxClipboard-js.html#mxClipboard.Variables" target=_parent class=IParent>mxClipboard</a><a href="../files/io/mxCodec-js.html#mxCodec.Variables" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.Variables" target=_parent class=IParent>mxCodecRegistry</a><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.Variables" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.Variables" target=_parent class=IParent>mxCompositeLayout</a><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint.Variables" target=_parent class=IParent>mxConnectionConstraint</a><a href="../files/shape/mxConnector-js.html#mxConnector.Variables" target=_parent class=IParent>mxConnector</a><a href="../files/util/mxConstants-js.html#mxConstants.Variables" target=_parent class=IParent>mxConstants</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.Variables" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.Variables" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.Variables" target=_parent class=IParent>mxCylinder</a><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.Variables" target=_parent class=IParent>mxDefaultKeyHandler</a><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.Variables" target=_parent class=IParent>mxDefaultPopupMenu</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.Variables" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.Variables" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/util/mxDragSource-js.html#mxDragSource.Variables" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.Variables" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.Variables" target=_parent class=IParent>mxElbowEdgeHandler</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.Variables" target=_parent class=IParent>mxEllipse</a><a href="../files/util/mxEvent-js.html#mxEvent.Variables" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventObject-js.html#mxEventObject.Variables" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxEventSource-js.html#mxEventSource.Variables" target=_parent class=IParent>mxEventSource</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.Variables" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/util/mxForm-js.html#mxForm.Variables" target=_parent class=IParent>mxForm</a><a href="../files/model/mxGeometry-js.html#mxGeometry.Variables" target=_parent class=IParent>mxGeometry</a><a href="../files/view/mxGraph-js.html#mxGraph.Variables" target=_parent class=IParent>mxGraph</a><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.Variables" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.Variables" target=_parent class=IParent>mxGraphHandler</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.Variables" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.Variables" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.Variables" target=_parent class=IParent>mxGraphHierarchyNode</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.Variables" target=_parent class=IParent>mxGraphLayout</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.Variables" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.Variables" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/view/mxGraphView-js.html#mxGraphView.Variables" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxGuide-js.html#mxGuide.Variables" target=_parent class=IParent>mxGuide</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.Variables" target=_parent class=IParent>mxHierarchicalLayout</a><a href="../files/util/mxImage-js.html#mxImage.Variables" target=_parent class=IParent>mxImage</a><a href="../files/util/mxImageBundle-js.html#mxImageBundle.Variables" target=_parent class=IParent>mxImageBundle</a><a href="../files/util/mxImageExport-js.html#mxImageExport.Variables" target=_parent class=IParent>mxImageExport</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.Variables" target=_parent class=IParent>mxImageShape</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.Variables" target=_parent class=IParent>mxKeyHandler</a><a href="../files/shape/mxLabel-js.html#mxLabel.Variables" target=_parent class=IParent>mxLabel</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.Variables" target=_parent class=IParent>mxLayoutManager</a><a href="../files/shape/mxLine-js.html#mxLine.Variables" target=_parent class=IParent>mxLine</a><a href="../files/util/mxLog-js.html#mxLog.Variables" target=_parent class=IParent>mxLog</a><a href="../files/shape/mxMarker-js.html#mxMarker.Variables" target=_parent class=IParent>mxMarker</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.Variables" target=_parent class=IParent>mxMedianHybridCrossingReduction</a><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover.Variables" target=_parent class=IParent>mxMinimumCycleRemover</a><a href="../files/util/mxMorphing-js.html#mxMorphing.Variables" target=_parent class=IParent>mxMorphing</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.Variables" target=_parent class=IParent>mxMouseEvent</a><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.Variables" target=_parent class=IParent>mxMultiplicity</a><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.Variables" target=_parent class=IParent>mxObjectCodec</a><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.Variables" target=_parent class=IParent>mxObjectIdentity</a><a href="../files/view/mxOutline-js.html#mxOutline.Variables" target=_parent class=IParent>mxOutline</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.Variables" target=_parent class=IParent>mxPanningHandler</a><a href="../files/util/mxPanningManager-js.html#mxPanningManager.Variables" target=_parent class=IParent>mxPanningManager</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.Variables" target=_parent class=IParent>mxParallelEdgeLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.Variables" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/util/mxPath-js.html#mxPath.Variables" target=_parent class=IParent>mxPath</a><a href="../files/util/mxPoint-js.html#mxPoint.Variables" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.Variables" target=_parent class=IParent>mxPopupMenu</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.Variables" target=_parent class=IParent>mxPrintPreview</a><a href="../files/util/mxRectangle-js.html#mxRectangle.Variables" target=_parent class=IParent>mxRectangle</a><a href="../files/util/mxResources-js.html#mxResources.Variables" target=_parent class=IParent>mxResources</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.Variables" target=_parent class=IParent>mxRhombus</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.Variables" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.Variables" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/util/mxSession-js.html#mxSession.Variables" target=_parent class=IParent>mxSession</a><a href="../files/shape/mxShape-js.html#mxShape.Variables" target=_parent class=IParent>mxShape</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.Variables" target=_parent class=IParent>mxSpaceManager</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.Variables" target=_parent class=IParent>mxStackLayout</a><a href="../files/shape/mxStencil-js.html#mxStencil.Variables" target=_parent class=IParent>mxStencil</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.Variables" target=_parent class=IParent>mxStencilShape</a><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.Variables" target=_parent class=IParent>mxStyleRegistry</a><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.Variables" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.Variables" target=_parent class=IParent>mxSwimlane</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.Variables" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.Variables" target=_parent class=IParent>mxTemporaryCellStates</a><a href="../files/shape/mxText-js.html#mxText.Variables" target=_parent class=IParent>mxText</a><a href="../files/util/mxToolbar-js.html#mxToolbar.Variables" target=_parent class=IParent>mxToolbar</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.Variables" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.Variables" target=_parent class=IParent>mxUndoableEdit</a><a href="../files/util/mxUndoManager-js.html#mxUndoManager.Variables" target=_parent class=IParent>mxUndoManager</a><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.Variables" target=_parent class=IParent>mxUrlConverter</a><a href="../files/util/mxUtils-js.html#mxUtils.Variables" target=_parent class=IParent>mxUtils</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.Variables" target=_parent class=IParent>mxVertexHandler</a><a href="../files/util/mxWindow-js.html#mxWindow.Variables" target=_parent class=IParent>mxWindow</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.Variables" target=_parent class=IParent>mxXmlCanvas2D</a><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.Variables" target=_parent class=IParent>mxXmlRequest</a><span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.Variables" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.Variables" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></div><div class=SRResult id=SR_VERSION><div class=IEntry><a href="../files/mxClient-js.html#mxClient.VERSION" target=_parent class=ISymbol>VERSION</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_vertex><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.vertex" target=_parent class=ISymbol>vertex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_VERTEX_undSELECTION_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.VERTEX_SELECTION_COLOR" target=_parent class=ISymbol>VERTEX_SELECTION_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_VERTEX_undSELECTION_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.VERTEX_SELECTION_STROKEWIDTH" target=_parent class=ISymbol>VERTEX_SELECTION_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_vertexArray><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.vertexArray" target=_parent class=ISymbol>vertexArray</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_vertexLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.vertexLabelsMovable" target=_parent class=ISymbol>vertexLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_vertexMapper><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.vertexMapper" target=_parent class=ISymbol>vertexMapper</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_vertical><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.vertical" target=_parent class=ISymbol>vertical</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_verticalAlign><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.verticalAlign" target=_parent class=ISymbol>verticalAlign</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_verticalLayout><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.verticalLayout" target=_parent class=ISymbol>verticalLayout</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_verticalTextDegree><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.verticalTextDegree" target=_parent class=ISymbol>verticalTextDegree</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_view><div class=IEntry><a href="javascript:searchResults.Toggle('SR_view')" class=ISymbol>view</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.view" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraph-js.html#mxGraph.view" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.view" target=_parent class=IParent>mxTemporaryCellStates</a></div></div></div><div class=SRResult id=SR_visible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_visible')" class=ISymbol>visible</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.visible" target=_parent class=IParent>mxCell</a><a href="../files/util/mxWindow-js.html#mxWindow.visible" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_visibleSourceState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.visibleSourceState" target=_parent class=ISymbol>visibleSourceState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_visibleStateForCellChanged><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.visibleStateForCellChanged" target=_parent class=ISymbol>visibleStateForCellChanged</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_visibleTargetState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.visibleTargetState" target=_parent class=ISymbol>visibleTargetState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_visit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_visit')" class=ISymbol>visit</a><div class=ISubIndex><a href="../files/util/mxDictionary-js.html#mxDictionary.visit" target=_parent class=IParent>mxDictionary</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.visit" target=_parent class=IParent>mxGraphHierarchyModel</a></div></div></div><div class=SRResult id=SR_visited><div class=IEntry><a href="javascript:searchResults.Toggle('SR_visited')" class=ISymbol>visited</a>, <span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.visited" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.visited" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div><div class=SRResult id=SR_vmlNodes><div class=IEntry><a href="javascript:searchResults.Toggle('SR_vmlNodes')" class=ISymbol>vmlNodes</a><div class=ISubIndex><a href="../files/shape/mxConnector-js.html#mxConnector.vmlNodes" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.vmlNodes" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.vmlNodes" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxLabel-js.html#mxLabel.vmlNodes" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxLine-js.html#mxLine.vmlNodes" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxShape-js.html#mxShape.vmlNodes" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.vmlNodes" target=_parent class=IParent>mxSwimlane</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralW.html b/docs/js-api/search/GeneralW.html
    new file mode 100644
    index 000000000..4448db69d
    --- /dev/null
    +++ b/docs/js-api/search/GeneralW.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w0><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.w0" target=_parent class=ISymbol>w0</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR2_WARN><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.WARN" target=_parent class=ISymbol>WARN</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_warningImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.warningImage" target=_parent class=ISymbol>warningImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_waypointsEnabled><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.waypointsEnabled" target=_parent class=ISymbol>waypointsEnabled</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_WeightedCellSorter><div class=IEntry><a href="javascript:searchResults.Toggle('SR_WeightedCellSorter')" class=ISymbol>WeightedCellSorter</a><div class=ISubIndex><span class=IParent>Global</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div><span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.WeightedCellSorter" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.WeightedCellSorter" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></div><div class=SRResult id=SR_weightedMedian><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.weightedMedian" target=_parent class=ISymbol>weightedMedian</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_weightedValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_weightedValue')" class=ISymbol>weightedValue</a>, <span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.weightedValue" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.weightedValue" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div><div class=SRResult id=SR_widestRank><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.widestRank" target=_parent class=ISymbol>widestRank</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_widestRankValue><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.widestRankValue" target=_parent class=ISymbol>widestRankValue</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_width><div class=IEntry><a href="javascript:searchResults.Toggle('SR_width')" class=ISymbol>width</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.width" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxImage-js.html#mxImage.width" target=_parent class=IParent>mxImage</a><a href="../files/util/mxRectangle-js.html#mxRectangle.width" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_Windows><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.Windows" target=_parent class=ISymbol>Windows</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_wnd><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.wnd" target=_parent class=ISymbol>wnd</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_wrap><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.wrap" target=_parent class=ISymbol>wrap</a>, <span class=IParent>mxStackLayout</span></div></div><div class=SRResult id=SR_write><div class=IEntry><a href="javascript:searchResults.Toggle('SR_write')" class=ISymbol>write</a><div class=ISubIndex><a href="../files/util/mxLog-js.html#mxLog.write" target=_parent class=IParent>mxLog</a><a href="../files/util/mxPath-js.html#mxPath.write" target=_parent class=IParent>mxPath</a><a href="../files/util/mxUtils-js.html#mxUtils.write" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_writeAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.writeAttribute" target=_parent class=ISymbol>writeAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_writeComplexAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.writeComplexAttribute" target=_parent class=ISymbol>writeComplexAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_writeGraphModel><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.writeGraphModel" target=_parent class=ISymbol>writeGraphModel</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_writeHead><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.writeHead" target=_parent class=ISymbol>writeHead</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_writeln><div class=IEntry><a href="javascript:searchResults.Toggle('SR_writeln')" class=ISymbol>writeln</a><div class=ISubIndex><a href="../files/util/mxLog-js.html#mxLog.writeln" target=_parent class=IParent>mxLog</a><a href="../files/util/mxUtils-js.html#mxUtils.writeln" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_writePrimitiveAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.writePrimitiveAttribute" target=_parent class=ISymbol>writePrimitiveAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralX.html b/docs/js-api/search/GeneralX.html
    new file mode 100644
    index 000000000..f28e1b503
    --- /dev/null
    +++ b/docs/js-api/search/GeneralX.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.x" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxPoint-js.html#mxPoint.x" target=_parent class=IParent>mxPoint</a></div></div></div><div class=SRResult id=SR_x0><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x0')" class=ISymbol>x0</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.x0" target=_parent class=IParent>mxCircleLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.x0" target=_parent class=IParent>mxStackLayout</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralY.html b/docs/js-api/search/GeneralY.html
    new file mode 100644
    index 000000000..53b8cf703
    --- /dev/null
    +++ b/docs/js-api/search/GeneralY.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.y" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxPoint-js.html#mxPoint.y" target=_parent class=IParent>mxPoint</a></div></div></div><div class=SRResult id=SR_y0><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y0')" class=ISymbol>y0</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.y0" target=_parent class=IParent>mxCircleLayout</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.y0" target=_parent class=IParent>mxPrintPreview</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.y0" target=_parent class=IParent>mxStackLayout</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/GeneralZ.html b/docs/js-api/search/GeneralZ.html
    new file mode 100644
    index 000000000..f10affe96
    --- /dev/null
    +++ b/docs/js-api/search/GeneralZ.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_zIndex><div class=IEntry><a href="javascript:searchResults.Toggle('SR_zIndex')" class=ISymbol>zIndex</a><div class=ISubIndex><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.zIndex" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.zIndex" target=_parent class=IParent>mxTooltipHandler</a></div></div></div><div class=SRResult id=SR_zoom><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoom" target=_parent class=ISymbol>zoom</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_zoomActual><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoomActual" target=_parent class=ISymbol>zoomActual</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_zoomFactor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoomFactor" target=_parent class=ISymbol>zoomFactor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_zoomIn><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoomIn" target=_parent class=ISymbol>zoomIn</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_zoomOut><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoomOut" target=_parent class=ISymbol>zoomOut</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/NoResults.html b/docs/js-api/search/NoResults.html
    new file mode 100644
    index 000000000..d252a18b8
    --- /dev/null
    +++ b/docs/js-api/search/NoResults.html
    @@ -0,0 +1,15 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=NoMatches>No Matches</div></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesA.html b/docs/js-api/search/VariablesA.html
    new file mode 100644
    index 000000000..2ad621c4c
    --- /dev/null
    +++ b/docs/js-api/search/VariablesA.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_absoluteOffset><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.absoluteOffset" target=_parent class=ISymbol>absoluteOffset</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_absolutePoints><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.absolutePoints" target=_parent class=ISymbol>absolutePoints</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_actions><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.actions" target=_parent class=ISymbol>actions</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_ACTIVATE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ACTIVATE" target=_parent class=ISymbol>ACTIVATE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_ADD><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ADD" target=_parent class=ISymbol>ADD</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_ADD_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ADD_CELLS" target=_parent class=ISymbol>ADD_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_ADD_undOVERLAY><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ADD_OVERLAY" target=_parent class=ISymbol>ADD_OVERLAY</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_ADD_undVERTEX><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ADD_VERTEX" target=_parent class=ISymbol>ADD_VERTEX</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_addEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_addEnabled')" class=ISymbol>addEnabled</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.addEnabled" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.addEnabled" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_addPipe><div class=IEntry><a href="../files/shape/mxArrow-js.html#mxArrow.addPipe" target=_parent class=ISymbol>addPipe</a>, <span class=IParent>mxArrow</span></div></div><div class=SRResult id=SR_AFTER_undADD_undVERTEX><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.AFTER_ADD_VERTEX" target=_parent class=ISymbol>AFTER_ADD_VERTEX</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_aliases><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.aliases" target=_parent class=ISymbol>aliases</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_align><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.align" target=_parent class=ISymbol>align</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_ALIGN_undBOTTOM><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_BOTTOM" target=_parent class=ISymbol>ALIGN_BOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ALIGN_CELLS" target=_parent class=ISymbol>ALIGN_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_ALIGN_undCENTER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_CENTER" target=_parent class=ISymbol>ALIGN_CENTER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undLEFT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_LEFT" target=_parent class=ISymbol>ALIGN_LEFT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undMIDDLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_MIDDLE" target=_parent class=ISymbol>ALIGN_MIDDLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undRIGHT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_RIGHT" target=_parent class=ISymbol>ALIGN_RIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undTOP><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ALIGN_TOP" target=_parent class=ISymbol>ALIGN_TOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_allowAutoPanning><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.allowAutoPanning" target=_parent class=ISymbol>allowAutoPanning</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_allowCrispMarkers><div class=IEntry><a href="../files/shape/mxConnector-js.html#mxConnector.allowCrispMarkers" target=_parent class=ISymbol>allowCrispMarkers</a>, <span class=IParent>mxConnector</span></div></div><div class=SRResult id=SR_allowDanglingEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.allowDanglingEdges" target=_parent class=ISymbol>allowDanglingEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_allowedToRun><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.allowedToRun" target=_parent class=ISymbol>allowedToRun</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_allowEval><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.allowEval" target=_parent class=ISymbol>allowEval</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_allowHandleBoundsCheck><div class=IEntry><a href="javascript:searchResults.Toggle('SR_allowHandleBoundsCheck')" class=ISymbol>allowHandleBoundsCheck</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.allowHandleBoundsCheck" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.allowHandleBoundsCheck" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_allowLoops><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.allowLoops" target=_parent class=ISymbol>allowLoops</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_allowNegativeCoordinates><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.allowNegativeCoordinates" target=_parent class=ISymbol>allowNegativeCoordinates</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_alreadyConnectedResource><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.alreadyConnectedResource" target=_parent class=ISymbol>alreadyConnectedResource</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_alt><div class=IEntry><a href="../files/util/mxImageBundle-js.html#mxImageBundle.alt" target=_parent class=ISymbol>alt</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_alternateBounds><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.alternateBounds" target=_parent class=ISymbol>alternateBounds</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_alternateEdgeStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.alternateEdgeStyle" target=_parent class=ISymbol>alternateEdgeStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_ARROW_undBLOCK><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_BLOCK" target=_parent class=ISymbol>ARROW_BLOCK</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undCLASSIC><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_CLASSIC" target=_parent class=ISymbol>ARROW_CLASSIC</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undDIAMOND><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_DIAMOND" target=_parent class=ISymbol>ARROW_DIAMOND</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undOPEN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_OPEN" target=_parent class=ISymbol>ARROW_OPEN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undOVAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_OVAL" target=_parent class=ISymbol>ARROW_OVAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_SIZE" target=_parent class=ISymbol>ARROW_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_SPACING" target=_parent class=ISymbol>ARROW_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ARROW_WIDTH" target=_parent class=ISymbol>ARROW_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_askZoomResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.askZoomResource" target=_parent class=ISymbol>askZoomResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_aspect><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.aspect" target=_parent class=ISymbol>aspect</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_async><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.async" target=_parent class=ISymbol>async</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_attr><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.attr" target=_parent class=ISymbol>attr</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_autoAntiAlias><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.autoAntiAlias" target=_parent class=ISymbol>autoAntiAlias</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_autoExpand><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.autoExpand" target=_parent class=ISymbol>autoExpand</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_autoExtend><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.autoExtend" target=_parent class=ISymbol>autoExtend</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_autoOrigin><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.autoOrigin" target=_parent class=ISymbol>autoOrigin</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_autoSaveDelay><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.autoSaveDelay" target=_parent class=ISymbol>autoSaveDelay</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_autoSaveThreshold><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.autoSaveThreshold" target=_parent class=ISymbol>autoSaveThreshold</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_autoSaveThrottle><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.autoSaveThrottle" target=_parent class=ISymbol>autoSaveThrottle</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_autoscroll><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.autoscroll" target=_parent class=ISymbol>autoscroll</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR2_autoScroll><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.autoScroll" target=_parent class=ISymbol>autoScroll</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_autoSizeCells><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.autoSizeCells" target=_parent class=ISymbol>autoSizeCells</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesB.html b/docs/js-api/search/VariablesB.html
    new file mode 100644
    index 000000000..2a7766a45
    --- /dev/null
    +++ b/docs/js-api/search/VariablesB.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_backgroundImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.backgroundImage" target=_parent class=ISymbol>backgroundImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_basePath><div class=IEntry><a href="../files/mxClient-js.html#mxClient.basePath" target=_parent class=ISymbol>basePath</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_baseUrl><div class=IEntry><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.baseUrl" target=_parent class=ISymbol>baseUrl</a>, <span class=IParent>mxUrlConverter</span></div></div><div class=SRResult id=SR_BEFORE_undADD_undVERTEX><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.BEFORE_ADD_VERTEX" target=_parent class=ISymbol>BEFORE_ADD_VERTEX</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_BEFORE_undUNDO><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.BEFORE_UNDO" target=_parent class=ISymbol>BEFORE_UNDO</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_BEGIN_undUPDATE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.BEGIN_UPDATE" target=_parent class=ISymbol>BEGIN_UPDATE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_bends><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.bends" target=_parent class=ISymbol>bends</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_bgNodes><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.bgNodes" target=_parent class=ISymbol>bgNodes</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_binary><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.binary" target=_parent class=ISymbol>binary</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_body><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.body" target=_parent class=ISymbol>body</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_border><div class=IEntry><a href="javascript:searchResults.Toggle('SR_border')" class=ISymbol>border</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.border" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxOutline-js.html#mxOutline.border" target=_parent class=IParent>mxOutline</a><a href="../files/util/mxPanningManager-js.html#mxPanningManager.border" target=_parent class=IParent>mxPanningManager</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.border" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.border" target=_parent class=IParent>mxPrintPreview</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.border" target=_parent class=IParent>mxStackLayout</a></div></div></div><div class=SRResult id=SR_borderColor><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.borderColor" target=_parent class=ISymbol>borderColor</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_bounds><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.bounds" target=_parent class=ISymbol>bounds</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_bubbling><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.bubbling" target=_parent class=ISymbol>bubbling</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_buffer><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.buffer" target=_parent class=ISymbol>buffer</a>, <span class=IParent>mxLog</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesC.html b/docs/js-api/search/VariablesC.html
    new file mode 100644
    index 000000000..0216dec8a
    --- /dev/null
    +++ b/docs/js-api/search/VariablesC.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_captureDocumentGesture><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.captureDocumentGesture" target=_parent class=ISymbol>captureDocumentGesture</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_cell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cell')" class=ISymbol>cell</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.cell" target=_parent class=IParent>MedianCellSorter</a><a href="../files/view/mxCellState-js.html#mxCellState.cell" target=_parent class=IParent>mxCellState</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.cell" target=_parent class=IParent>mxGraphHierarchyNode</a><span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.cell" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.cell" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></div><div class=SRResult id=SR_CELL_undCONNECTED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CELL_CONNECTED" target=_parent class=ISymbol>CELL_CONNECTED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_cellEditor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellEditor" target=_parent class=ISymbol>cellEditor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellLocation><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.cellLocation" target=_parent class=ISymbol>cellLocation</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_cellRenderer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellRenderer" target=_parent class=ISymbol>cellRenderer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cells><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cells')" class=ISymbol>cells</a><div class=ISubIndex><a href="../files/util/mxClipboard-js.html#mxClipboard.cells" target=_parent class=IParent>mxClipboard</a><a href="../files/model/mxGraphModel-js.html#mxGraphModel.cells" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxMorphing-js.html#mxMorphing.cells" target=_parent class=IParent>mxMorphing</a></div></div></div><div class=SRResult id=SR_CELLS_undADDED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_ADDED" target=_parent class=ISymbol>CELLS_ADDED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undFOLDED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_FOLDED" target=_parent class=ISymbol>CELLS_FOLDED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undMOVED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_MOVED" target=_parent class=ISymbol>CELLS_MOVED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undORDERED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_ORDERED" target=_parent class=ISymbol>CELLS_ORDERED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undREMOVED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_REMOVED" target=_parent class=ISymbol>CELLS_REMOVED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undRESIZED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_RESIZED" target=_parent class=ISymbol>CELLS_RESIZED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_CELLS_undTOGGLED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CELLS_TOGGLED" target=_parent class=ISymbol>CELLS_TOGGLED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_cellsBendable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsBendable" target=_parent class=ISymbol>cellsBendable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsCloneable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsCloneable" target=_parent class=ISymbol>cellsCloneable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsDeletable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsDeletable" target=_parent class=ISymbol>cellsDeletable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsDisconnectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsDisconnectable" target=_parent class=ISymbol>cellsDisconnectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsEditable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsEditable" target=_parent class=ISymbol>cellsEditable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsLocked><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsLocked" target=_parent class=ISymbol>cellsLocked</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsMovable" target=_parent class=ISymbol>cellsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsResizable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsResizable" target=_parent class=ISymbol>cellsResizable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_cellsSelectable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cellsSelectable" target=_parent class=ISymbol>cellsSelectable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_centerZoom><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.centerZoom" target=_parent class=ISymbol>centerZoom</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_CHANGE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CHANGE" target=_parent class=ISymbol>CHANGE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_changeHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_changeHandler')" class=ISymbol>changeHandler</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.changeHandler" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.changeHandler" target=_parent class=IParent>mxConnectionHandler</a></div></div></div><div class=SRResult id=SR_changes><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.changes" target=_parent class=ISymbol>changes</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_channelBuffer><div class=IEntry><a href="javascript:searchResults.Toggle('SR_channelBuffer')" class=ISymbol>channelBuffer</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.channelBuffer" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.channelBuffer" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_children><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.children" target=_parent class=ISymbol>children</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_CLEAR><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CLEAR" target=_parent class=ISymbol>CLEAR</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_clearSelectionOnBackground><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.clearSelectionOnBackground" target=_parent class=ISymbol>clearSelectionOnBackground</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_CLICK><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CLICK" target=_parent class=ISymbol>CLICK</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_cloneEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_cloneEnabled')" class=ISymbol>cloneEnabled</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.cloneEnabled" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.cloneEnabled" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_cloneInvalidEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.cloneInvalidEdges" target=_parent class=ISymbol>cloneInvalidEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_CLOSE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CLOSE" target=_parent class=ISymbol>CLOSE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_closeImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.closeImage" target=_parent class=ISymbol>closeImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_closeResource><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.closeResource" target=_parent class=ISymbol>closeResource</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_codec><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.codec" target=_parent class=ISymbol>codec</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_codecs><div class=IEntry><a href="../files/io/mxCodecRegistry-js.html#mxCodecRegistry.codecs" target=_parent class=ISymbol>codecs</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_collapsed><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.collapsed" target=_parent class=ISymbol>collapsed</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_collapsedImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.collapsedImage" target=_parent class=ISymbol>collapsedImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_collapseExpandResource><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.collapseExpandResource" target=_parent class=ISymbol>collapseExpandResource</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_collapseToPreferredSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.collapseToPreferredSize" target=_parent class=ISymbol>collapseToPreferredSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_compressed><div class=IEntry><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.compressed" target=_parent class=ISymbol>compressed</a>, <span class=IParent>mxXmlCanvas2D</span></div></div><div class=SRResult id=SR_config><div class=IEntry><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.config" target=_parent class=ISymbol>config</a>, <span class=IParent>mxDefaultPopupMenu</span></div></div><div class=SRResult id=SR_CONNECT><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CONNECT" target=_parent class=ISymbol>CONNECT</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_CONNECT_undCELL><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.CONNECT_CELL" target=_parent class=ISymbol>CONNECT_CELL</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_CONNECT_undHANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CONNECT_HANDLE_FILLCOLOR" target=_parent class=ISymbol>CONNECT_HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_connectable><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.connectable" target=_parent class=ISymbol>connectable</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_connectableEdges><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.connectableEdges" target=_parent class=ISymbol>connectableEdges</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_connected><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.connected" target=_parent class=ISymbol>connected</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_connectIconOffset><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.connectIconOffset" target=_parent class=ISymbol>connectIconOffset</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_connectImage><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.connectImage" target=_parent class=ISymbol>connectImage</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_connectOnDrop><div class=IEntry><a href="javascript:searchResults.Toggle('SR_connectOnDrop')" class=ISymbol>connectOnDrop</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.connectOnDrop" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.connectOnDrop" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_connectsAsSource><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.connectsAsSource" target=_parent class=ISymbol>connectsAsSource</a>, <span class=IParent>mxGraphHierarchyNode</span></div></div><div class=SRResult id=SR_connectsAsTarget><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.connectsAsTarget" target=_parent class=ISymbol>connectsAsTarget</a>, <span class=IParent>mxGraphHierarchyNode</span></div></div><div class=SRResult id=SR_consoleName><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.consoleName" target=_parent class=ISymbol>consoleName</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_constrainChildren><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.constrainChildren" target=_parent class=ISymbol>constrainChildren</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_constraintHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_constraintHandler')" class=ISymbol>constraintHandler</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.constraintHandler" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.constraintHandler" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_constraints><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.constraints" target=_parent class=ISymbol>constraints</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_consumed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_consumed')" class=ISymbol>consumed</a><div class=ISubIndex><a href="../files/util/mxEventObject-js.html#mxEventObject.consumed" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.consumed" target=_parent class=IParent>mxMouseEvent</a></div></div></div><div class=SRResult id=SR_container><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.container" target=_parent class=ISymbol>container</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_containsValidationErrorsResource><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.containsValidationErrorsResource" target=_parent class=ISymbol>containsValidationErrorsResource</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_content><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.content" target=_parent class=ISymbol>content</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_controlKeys><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.controlKeys" target=_parent class=ISymbol>controlKeys</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_controlShiftKeys><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.controlShiftKeys" target=_parent class=ISymbol>controlShiftKeys</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_converter><div class=IEntry><a href="javascript:searchResults.Toggle('SR_converter')" class=ISymbol>converter</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.converter" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.converter" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_count><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.count" target=_parent class=ISymbol>count</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_counter><div class=IEntry><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.counter" target=_parent class=ISymbol>counter</a>, <span class=IParent>mxObjectIdentity</span></div></div><div class=SRResult id=SR_countError><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.countError" target=_parent class=ISymbol>countError</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_createIds><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.createIds" target=_parent class=ISymbol>createIds</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createTarget><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.createTarget" target=_parent class=ISymbol>createTarget</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_crisp><div class=IEntry><a href="javascript:searchResults.Toggle('SR_crisp')" class=ISymbol>crisp</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.crisp" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.crisp" target=_parent class=IParent>mxGraphHandler</a><a href="../files/util/mxGuide-js.html#mxGuide.crisp" target=_parent class=IParent>mxGuide</a><a href="../files/shape/mxImageShape-js.html#mxImageShape.crisp" target=_parent class=IParent>mxImageShape</a><a href="../files/shape/mxShape-js.html#mxShape.crisp" target=_parent class=IParent>mxShape</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.crisp" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_currentBestCrossings><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.currentBestCrossings" target=_parent class=ISymbol>currentBestCrossings</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_currentColor><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.currentColor" target=_parent class=ISymbol>currentColor</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_currentDropTarget><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.currentDropTarget" target=_parent class=ISymbol>currentDropTarget</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_currentDx><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.currentDx" target=_parent class=ISymbol>currentDx</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_currentDy><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.currentDy" target=_parent class=ISymbol>currentDy</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_currentEdit><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.currentEdit" target=_parent class=ISymbol>currentEdit</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_currentFileResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.currentFileResource" target=_parent class=ISymbol>currentFileResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_currentGraph><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.currentGraph" target=_parent class=ISymbol>currentGraph</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_currentGuide><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.currentGuide" target=_parent class=ISymbol>currentGuide</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_currentPoint><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.currentPoint" target=_parent class=ISymbol>currentPoint</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_currentRoot><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.currentRoot" target=_parent class=ISymbol>currentRoot</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_currentX><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.currentX" target=_parent class=ISymbol>currentX</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_currentXDelta><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.currentXDelta" target=_parent class=ISymbol>currentXDelta</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_currentY><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.currentY" target=_parent class=ISymbol>currentY</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_cursor><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.cursor" target=_parent class=ISymbol>cursor</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_CURSOR_undBEND_undHANDLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_BEND_HANDLE" target=_parent class=ISymbol>CURSOR_BEND_HANDLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_CURSOR_undCONNECT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_CONNECT" target=_parent class=ISymbol>CURSOR_CONNECT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_CURSOR_undLABEL_undHANDLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_LABEL_HANDLE" target=_parent class=ISymbol>CURSOR_LABEL_HANDLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_CURSOR_undMOVABLE_undEDGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_MOVABLE_EDGE" target=_parent class=ISymbol>CURSOR_MOVABLE_EDGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_CURSOR_undMOVABLE_undVERTEX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.CURSOR_MOVABLE_VERTEX" target=_parent class=ISymbol>CURSOR_MOVABLE_VERTEX</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_cycleAttributeIndex><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.cycleAttributeIndex" target=_parent class=ISymbol>cycleAttributeIndex</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_cycleAttributeName><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.cycleAttributeName" target=_parent class=ISymbol>cycleAttributeName</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_cycleAttributeValues><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.cycleAttributeValues" target=_parent class=ISymbol>cycleAttributeValues</a>, <span class=IParent>mxEditor</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesD.html b/docs/js-api/search/VariablesD.html
    new file mode 100644
    index 000000000..1a6d7ed60
    --- /dev/null
    +++ b/docs/js-api/search/VariablesD.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_damper><div class=IEntry><a href="../files/util/mxPanningManager-js.html#mxPanningManager.damper" target=_parent class=ISymbol>damper</a>, <span class=IParent>mxPanningManager</span></div></div><div class=SRResult id=SR_dblClickAction><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.dblClickAction" target=_parent class=ISymbol>dblClickAction</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_debug><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.debug" target=_parent class=ISymbol>debug</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR2_DEBUG><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.DEBUG" target=_parent class=ISymbol>DEBUG</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_DEFAULT_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_FONTFAMILY" target=_parent class=ISymbol>DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undFONTSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_FONTSIZE" target=_parent class=ISymbol>DEFAULT_FONTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undHOTSPOT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_HOTSPOT" target=_parent class=ISymbol>DEFAULT_HOTSPOT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undIMAGESIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_IMAGESIZE" target=_parent class=ISymbol>DEFAULT_IMAGESIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undINVALID_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_INVALID_COLOR" target=_parent class=ISymbol>DEFAULT_INVALID_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undMARKERSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_MARKERSIZE" target=_parent class=ISymbol>DEFAULT_MARKERSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undSTARTSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_STARTSIZE" target=_parent class=ISymbol>DEFAULT_STARTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undVALID_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DEFAULT_VALID_COLOR" target=_parent class=ISymbol>DEFAULT_VALID_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_defaultEdge><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.defaultEdge" target=_parent class=ISymbol>defaultEdge</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_defaultEdgeShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.defaultEdgeShape" target=_parent class=ISymbol>defaultEdgeShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_defaultEdgeStyle><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.defaultEdgeStyle" target=_parent class=ISymbol>defaultEdgeStyle</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_defaultGroup><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.defaultGroup" target=_parent class=ISymbol>defaultGroup</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_defaultLanguage><div class=IEntry><a href="../files/mxClient-js.html#mxClient.defaultLanguage" target=_parent class=ISymbol>defaultLanguage</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_defaultLoopStyle><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.defaultLoopStyle" target=_parent class=ISymbol>defaultLoopStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_defaultOpacity><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.defaultOpacity" target=_parent class=ISymbol>defaultOpacity</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_defaultOverlap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_defaultOverlap')" class=ISymbol>defaultOverlap</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.defaultOverlap" target=_parent class=IParent>mxCellOverlay</a><a href="../files/view/mxGraph-js.html#mxGraph.defaultOverlap" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_defaultParent><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.defaultParent" target=_parent class=ISymbol>defaultParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_defaultShapes><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.defaultShapes" target=_parent class=ISymbol>defaultShapes</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_defaultVertexShape><div class=IEntry><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.defaultVertexShape" target=_parent class=ISymbol>defaultVertexShape</a>, <span class=IParent>mxCellRenderer</span></div></div><div class=SRResult id=SR_delay><div class=IEntry><a href="javascript:searchResults.Toggle('SR_delay')" class=ISymbol>delay</a><div class=ISubIndex><a href="../files/util/mxAnimation-js.html#mxAnimation.delay" target=_parent class=IParent>mxAnimation</a><a href="../files/util/mxPanningManager-js.html#mxPanningManager.delay" target=_parent class=IParent>mxPanningManager</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.delay" target=_parent class=IParent>mxTooltipHandler</a></div></div></div><div class=SRResult id=SR_deltas><div class=IEntry><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.deltas" target=_parent class=ISymbol>deltas</a>, <span class=IParent>mxCellStatePreview</span></div></div><div class=SRResult id=SR_desc><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.desc" target=_parent class=ISymbol>desc</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_DESTROY><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.DESTROY" target=_parent class=ISymbol>DESTROY</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_destroyOnClose><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.destroyOnClose" target=_parent class=ISymbol>destroyOnClose</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_deterministic><div class=IEntry><a href="javascript:searchResults.Toggle('SR_deterministic')" class=ISymbol>deterministic</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.deterministic" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.deterministic" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_dfsCount><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.dfsCount" target=_parent class=ISymbol>dfsCount</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_dialect><div class=IEntry><a href="javascript:searchResults.Toggle('SR_dialect')" class=ISymbol>dialect</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.dialect" target=_parent class=IParent>mxGraph</a><a href="../files/shape/mxShape-js.html#mxShape.dialect" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_DIALECT_undMIXEDHTML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_MIXEDHTML" target=_parent class=ISymbol>DIALECT_MIXEDHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIALECT_undPREFERHTML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_PREFERHTML" target=_parent class=ISymbol>DIALECT_PREFERHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIALECT_undSTRICTHTML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_STRICTHTML" target=_parent class=ISymbol>DIALECT_STRICTHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIALECT_undSVG><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_SVG" target=_parent class=ISymbol>DIALECT_SVG</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIALECT_undVML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIALECT_VML" target=_parent class=ISymbol>DIALECT_VML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undEAST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_EAST" target=_parent class=ISymbol>DIRECTION_EAST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undALL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_ALL" target=_parent class=ISymbol>DIRECTION_MASK_ALL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undEAST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_EAST" target=_parent class=ISymbol>DIRECTION_MASK_EAST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undNONE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_NONE" target=_parent class=ISymbol>DIRECTION_MASK_NONE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undNORTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_NORTH" target=_parent class=ISymbol>DIRECTION_MASK_NORTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undSOUTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_SOUTH" target=_parent class=ISymbol>DIRECTION_MASK_SOUTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undMASK_undWEST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_MASK_WEST" target=_parent class=ISymbol>DIRECTION_MASK_WEST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undNORTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_NORTH" target=_parent class=ISymbol>DIRECTION_NORTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undSOUTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_SOUTH" target=_parent class=ISymbol>DIRECTION_SOUTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undWEST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DIRECTION_WEST" target=_parent class=ISymbol>DIRECTION_WEST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_disableContextMenu><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.disableContextMenu" target=_parent class=ISymbol>disableContextMenu</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_disableEdgeStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_disableEdgeStyle')" class=ISymbol>disableEdgeStyle</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.disableEdgeStyle" target=_parent class=IParent>mxCircleLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.disableEdgeStyle" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.disableEdgeStyle" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_DISCONNECT><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.DISCONNECT" target=_parent class=ISymbol>DISCONNECT</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_disconnectOnMove><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.disconnectOnMove" target=_parent class=ISymbol>disconnectOnMove</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_dispX><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.dispX" target=_parent class=ISymbol>dispX</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_dispY><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.dispY" target=_parent class=ISymbol>dispY</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_div><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.div" target=_parent class=ISymbol>div</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_document><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.document" target=_parent class=ISymbol>document</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_DONE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.DONE" target=_parent class=ISymbol>DONE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_doneResource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_doneResource')" class=ISymbol>doneResource</a><div class=ISubIndex><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.doneResource" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/view/mxGraphView-js.html#mxGraphView.doneResource" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_DOUBLE_undCLICK><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.DOUBLE_CLICK" target=_parent class=ISymbol>DOUBLE_CLICK</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_doubleClickOrientationResource><div class=IEntry><a href="../files/handler/mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.doubleClickOrientationResource" target=_parent class=ISymbol>doubleClickOrientationResource</a>, <span class=IParent>mxElbowEdgeHandler</span></div></div><div class=SRResult id=SR_doubleTapEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.doubleTapEnabled" target=_parent class=ISymbol>doubleTapEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_doubleTapTimeout><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.doubleTapTimeout" target=_parent class=ISymbol>doubleTapTimeout</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_doubleTapTolerance><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.doubleTapTolerance" target=_parent class=ISymbol>doubleTapTolerance</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_DOWN><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.DOWN" target=_parent class=ISymbol>DOWN</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_dragElement><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragElement" target=_parent class=ISymbol>dragElement</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_dragOffset><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dragOffset" target=_parent class=ISymbol>dragOffset</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_drillHandler><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.drillHandler" target=_parent class=ISymbol>drillHandler</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_DROP_undTARGET_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.DROP_TARGET_COLOR" target=_parent class=ISymbol>DROP_TARGET_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_dropEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.dropEnabled" target=_parent class=ISymbol>dropEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_dropHandler><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.dropHandler" target=_parent class=ISymbol>dropHandler</a>, <span class=IParent>mxDragSource</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesE.html b/docs/js-api/search/VariablesE.html
    new file mode 100644
    index 000000000..ac22ad28b
    --- /dev/null
    +++ b/docs/js-api/search/VariablesE.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ease><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.ease" target=_parent class=ISymbol>ease</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_edge><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.edge" target=_parent class=ISymbol>edge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_EDGE_undSELECTION_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGE_SELECTION_COLOR" target=_parent class=ISymbol>EDGE_SELECTION_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGE_undSELECTION_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGE_SELECTION_STROKEWIDTH" target=_parent class=ISymbol>EDGE_SELECTION_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_edgeLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.edgeLabelsMovable" target=_parent class=ISymbol>edgeLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_edgeMapper><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.edgeMapper" target=_parent class=ISymbol>edgeMapper</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_edgeRouting><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.edgeRouting" target=_parent class=ISymbol>edgeRouting</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_edges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_edges')" class=ISymbol>edges</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.edges" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.edges" target=_parent class=IParent>mxGraphHierarchyEdge</a></div></div></div><div class=SRResult id=SR_edgeState><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.edgeState" target=_parent class=ISymbol>edgeState</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_edgeStyle><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.edgeStyle" target=_parent class=ISymbol>edgeStyle</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_EDGESTYLE_undELBOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_ELBOW" target=_parent class=ISymbol>EDGESTYLE_ELBOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undENTITY_undRELATION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_ENTITY_RELATION" target=_parent class=ISymbol>EDGESTYLE_ENTITY_RELATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undLOOP><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_LOOP" target=_parent class=ISymbol>EDGESTYLE_LOOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undORTHOGONAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_ORTHOGONAL" target=_parent class=ISymbol>EDGESTYLE_ORTHOGONAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_SEGMENT" target=_parent class=ISymbol>EDGESTYLE_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undSIDETOSIDE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_SIDETOSIDE" target=_parent class=ISymbol>EDGESTYLE_SIDETOSIDE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undTOPTOBOTTOM><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.EDGESTYLE_TOPTOBOTTOM" target=_parent class=ISymbol>EDGESTYLE_TOPTOBOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_editingCell><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.editingCell" target=_parent class=ISymbol>editingCell</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_editor><div class=IEntry><a href="javascript:searchResults.Toggle('SR_editor')" class=ISymbol>editor</a><div class=ISubIndex><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.editor" target=_parent class=IParent>mxDefaultKeyHandler</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.editor" target=_parent class=IParent>mxDefaultToolbar</a></div></div></div><div class=SRResult id=SR_ELBOW_undHORIZONTAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ELBOW_HORIZONTAL" target=_parent class=ISymbol>ELBOW_HORIZONTAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ELBOW_undVERTICAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ELBOW_VERTICAL" target=_parent class=ISymbol>ELBOW_VERTICAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_element><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.element" target=_parent class=ISymbol>element</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_EMPTY_undARRAY><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.EMPTY_ARRAY" target=_parent class=ISymbol>EMPTY_ARRAY</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_emptyLabelText><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.emptyLabelText" target=_parent class=ISymbol>emptyLabelText</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_enabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_enabled')" class=ISymbol>enabled</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.enabled" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.enabled" target=_parent class=IParent>mxCellMarker</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.enabled" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.enabled" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/util/mxDragSource-js.html#mxDragSource.enabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.enabled" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.enabled" target=_parent class=IParent>mxGraphHandler</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.enabled" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.enabled" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxOutline-js.html#mxOutline.enabled" target=_parent class=IParent>mxOutline</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.enabled" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxRubberband-js.html#mxRubberband.enabled" target=_parent class=IParent>mxRubberband</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.enabled" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.enabled" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.enabled" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/util/mxToolbar-js.html#mxToolbar.enabled" target=_parent class=IParent>mxToolbar</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.enabled" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/util/mxUrlConverter-js.html#mxUrlConverter.enabled" target=_parent class=IParent>mxUrlConverter</a></div></div></div><div class=SRResult id=SR_enableFill><div class=IEntry><a href="../files/shape/mxArrow-js.html#mxArrow.enableFill" target=_parent class=ISymbol>enableFill</a>, <span class=IParent>mxArrow</span></div></div><div class=SRResult id=SR_encodeDefaults><div class=IEntry><a href="../files/io/mxCodec-js.html#mxCodec.encodeDefaults" target=_parent class=ISymbol>encodeDefaults</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_END_undUPDATE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.END_UPDATE" target=_parent class=ISymbol>END_UPDATE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_endingUpdate><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.endingUpdate" target=_parent class=ISymbol>endingUpdate</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_endOffset><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.endOffset" target=_parent class=ISymbol>endOffset</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_enterStopsCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.enterStopsCellEditing" target=_parent class=ISymbol>enterStopsCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_ENTITY_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.ENTITY_SEGMENT" target=_parent class=ISymbol>ENTITY_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_error><div class=IEntry><a href="javascript:searchResults.Toggle('SR_error')" class=ISymbol>error</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.error" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.error" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_errorImage><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.errorImage" target=_parent class=ISymbol>errorImage</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_errorResource><div class=IEntry><a href="../files/util/mxUtils-js.html#mxUtils.errorResource" target=_parent class=ISymbol>errorResource</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_ESCAPE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ESCAPE" target=_parent class=ISymbol>ESCAPE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_escapeEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.escapeEnabled" target=_parent class=ISymbol>escapeEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_escapePostData><div class=IEntry><a href="javascript:searchResults.Toggle('SR_escapePostData')" class=ISymbol>escapePostData</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.escapePostData" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSession-js.html#mxSession.escapePostData" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_eventListeners><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.eventListeners" target=_parent class=ISymbol>eventListeners</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_eventsEnabled><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.eventsEnabled" target=_parent class=ISymbol>eventsEnabled</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_eventSource><div class=IEntry><a href="../files/util/mxEventSource-js.html#mxEventSource.eventSource" target=_parent class=ISymbol>eventSource</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_evt><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.evt" target=_parent class=ISymbol>evt</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_exclude><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.exclude" target=_parent class=ISymbol>exclude</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_EXECUTE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.EXECUTE" target=_parent class=ISymbol>EXECUTE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_expandedImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.expandedImage" target=_parent class=ISymbol>expandedImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_exportEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.exportEnabled" target=_parent class=ISymbol>exportEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_extendParents><div class=IEntry><a href="javascript:searchResults.Toggle('SR_extendParents')" class=ISymbol>extendParents</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.extendParents" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.extendParents" target=_parent class=IParent>mxSpaceManager</a></div></div></div><div class=SRResult id=SR_extendParentsOnAdd><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.extendParentsOnAdd" target=_parent class=ISymbol>extendParentsOnAdd</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesF.html b/docs/js-api/search/VariablesF.html
    new file mode 100644
    index 000000000..b827b4fb4
    --- /dev/null
    +++ b/docs/js-api/search/VariablesF.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_factoryMethod><div class=IEntry><a href="javascript:searchResults.Toggle('SR_factoryMethod')" class=ISymbol>factoryMethod</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.factoryMethod" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.factoryMethod" target=_parent class=IParent>mxPopupMenu</a></div></div></div><div class=SRResult id=SR_fgNodes><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.fgNodes" target=_parent class=ISymbol>fgNodes</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_FIELD_undNAME><div class=IEntry><a href="../files/util/mxObjectIdentity-js.html#mxObjectIdentity.FIELD_NAME" target=_parent class=ISymbol>FIELD_NAME</a>, <span class=IParent>mxObjectIdentity</span></div></div><div class=SRResult id=SR_filename><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.filename" target=_parent class=ISymbol>filename</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_fill><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.fill" target=_parent class=ISymbol>fill</a>, <span class=IParent>mxStackLayout</span></div></div><div class=SRResult id=SR_fineTuning><div class=IEntry><a href="javascript:searchResults.Toggle('SR_fineTuning')" class=ISymbol>fineTuning</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.fineTuning" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.fineTuning" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_FIRED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.FIRED" target=_parent class=ISymbol>FIRED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_first><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.first" target=_parent class=ISymbol>first</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_fixRoots><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.fixRoots" target=_parent class=ISymbol>fixRoots</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_FLIP_undEDGE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.FLIP_EDGE" target=_parent class=ISymbol>FLIP_EDGE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_foEnabled><div class=IEntry><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.foEnabled" target=_parent class=ISymbol>foEnabled</a>, <span class=IParent>mxSvgCanvas2D</span></div></div><div class=SRResult id=SR_FOLD_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.FOLD_CELLS" target=_parent class=ISymbol>FOLD_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_foldHandler><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.foldHandler" target=_parent class=ISymbol>foldHandler</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_foldingEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.foldingEnabled" target=_parent class=ISymbol>foldingEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_FONT_undBOLD><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.FONT_BOLD" target=_parent class=ISymbol>FONT_BOLD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undITALIC><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.FONT_ITALIC" target=_parent class=ISymbol>FONT_ITALIC</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undSHADOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.FONT_SHADOW" target=_parent class=ISymbol>FONT_SHADOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undUNDERLINE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.FONT_UNDERLINE" target=_parent class=ISymbol>FONT_UNDERLINE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_forceConstant><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.forceConstant" target=_parent class=ISymbol>forceConstant</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_forceConstantSquared><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.forceConstantSquared" target=_parent class=ISymbol>forceConstantSquared</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_forcedInserting><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.forcedInserting" target=_parent class=ISymbol>forcedInserting</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_forceIgnoreStringSize><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.forceIgnoreStringSize" target=_parent class=ISymbol>forceIgnoreStringSize</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_format><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.format" target=_parent class=ISymbol>format</a>, <span class=IParent>mxPath</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesG.html b/docs/js-api/search/VariablesG.html
    new file mode 100644
    index 000000000..59be14123
    --- /dev/null
    +++ b/docs/js-api/search/VariablesG.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geometry><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.geometry" target=_parent class=ISymbol>geometry</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_gestureEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.gestureEnabled" target=_parent class=ISymbol>gestureEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_GET><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.GET" target=_parent class=ISymbol>GET</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_glassSize><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.glassSize" target=_parent class=ISymbol>glassSize</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_graph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_graph')" class=ISymbol>graph</a><div class=ISubIndex><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.graph" target=_parent class=IParent>mxAutoSaveManager</a><a href="../files/view/mxCellEditor-js.html#mxCellEditor.graph" target=_parent class=IParent>mxCellEditor</a><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.graph" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.graph" target=_parent class=IParent>mxCellMarker</a><a href="../files/view/mxCellStatePreview-js.html#mxCellStatePreview.graph" target=_parent class=IParent>mxCellStatePreview</a><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.graph" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.graph" target=_parent class=IParent>mxConstraintHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.graph" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/editor/mxEditor-js.html#mxEditor.graph" target=_parent class=IParent>mxEditor</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.graph" target=_parent class=IParent>mxGraphHandler</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.graph" target=_parent class=IParent>mxGraphLayout</a><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.graph" target=_parent class=IParent>mxGraphSelectionModel</a><a href="../files/view/mxGraphView-js.html#mxGraphView.graph" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxGuide-js.html#mxGuide.graph" target=_parent class=IParent>mxGuide</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.graph" target=_parent class=IParent>mxKeyHandler</a><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.graph" target=_parent class=IParent>mxLayoutManager</a><a href="../files/util/mxMorphing-js.html#mxMorphing.graph" target=_parent class=IParent>mxMorphing</a><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.graph" target=_parent class=IParent>mxPanningHandler</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.graph" target=_parent class=IParent>mxPrintPreview</a><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.graph" target=_parent class=IParent>mxSelectionCellsHandler</a><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.graph" target=_parent class=IParent>mxSpaceManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.graph" target=_parent class=IParent>mxSwimlaneManager</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.graph" target=_parent class=IParent>mxTooltipHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.graph" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_graphBounds><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.graphBounds" target=_parent class=ISymbol>graphBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_graphRenderHint><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.graphRenderHint" target=_parent class=ISymbol>graphRenderHint</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_graphX><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.graphX" target=_parent class=ISymbol>graphX</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_graphY><div class=IEntry><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.graphY" target=_parent class=ISymbol>graphY</a>, <span class=IParent>mxMouseEvent</span></div></div><div class=SRResult id=SR_gridEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_gridEnabled')" class=ISymbol>gridEnabled</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.gridEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/view/mxGraph-js.html#mxGraph.gridEnabled" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_gridSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.gridSize" target=_parent class=ISymbol>gridSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_GROUP_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.GROUP_CELLS" target=_parent class=ISymbol>GROUP_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_groupPadding><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.groupPadding" target=_parent class=ISymbol>groupPadding</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_guide><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.guide" target=_parent class=ISymbol>guide</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_GUIDE_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.GUIDE_COLOR" target=_parent class=ISymbol>GUIDE_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_GUIDE_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.GUIDE_STROKEWIDTH" target=_parent class=ISymbol>GUIDE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_guidesEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_guidesEnabled')" class=ISymbol>guidesEnabled</a><div class=ISubIndex><a href="../files/util/mxDragSource-js.html#mxDragSource.guidesEnabled" target=_parent class=IParent>mxDragSource</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.guidesEnabled" target=_parent class=IParent>mxGraphHandler</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesH.html b/docs/js-api/search/VariablesH.html
    new file mode 100644
    index 000000000..6484d58ce
    --- /dev/null
    +++ b/docs/js-api/search/VariablesH.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_h0><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.h0" target=_parent class=ISymbol>h0</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_HANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HANDLE_FILLCOLOR" target=_parent class=ISymbol>HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_HANDLE_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HANDLE_SIZE" target=_parent class=ISymbol>HANDLE_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_HANDLE_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HANDLE_STROKECOLOR" target=_parent class=ISymbol>HANDLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_handleImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_handleImage')" class=ISymbol>handleImage</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.handleImage" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.handleImage" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_handleMouseOut><div class=IEntry><a href="../files/util/mxPanningManager-js.html#mxPanningManager.handleMouseOut" target=_parent class=ISymbol>handleMouseOut</a>, <span class=IParent>mxPanningManager</span></div></div><div class=SRResult id=SR_handler><div class=IEntry><a href="../files/editor/mxDefaultKeyHandler-js.html#mxDefaultKeyHandler.handler" target=_parent class=ISymbol>handler</a>, <span class=IParent>mxDefaultKeyHandler</span></div></div><div class=SRResult id=SR_handlers><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.handlers" target=_parent class=ISymbol>handlers</a>, <span class=IParent>mxSelectionCellsHandler</span></div></div><div class=SRResult id=SR_hashCode><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyNode-js.html#mxGraphHierarchyNode.hashCode" target=_parent class=ISymbol>hashCode</a>, <span class=IParent>mxGraphHierarchyNode</span></div></div><div class=SRResult id=SR_height><div class=IEntry><a href="javascript:searchResults.Toggle('SR_height')" class=ISymbol>height</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.height" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxImage-js.html#mxImage.height" target=_parent class=IParent>mxImage</a><a href="../files/util/mxRectangle-js.html#mxRectangle.height" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_help><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.help" target=_parent class=ISymbol>help</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_helpResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.helpResource" target=_parent class=ISymbol>helpResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_helpWidth><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.helpWidth" target=_parent class=ISymbol>helpWidth</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_helpWindowImage><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.helpWindowImage" target=_parent class=ISymbol>helpWindowImage</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_HIDE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.HIDE" target=_parent class=ISymbol>HIDE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_hideOnHover><div class=IEntry><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.hideOnHover" target=_parent class=ISymbol>hideOnHover</a>, <span class=IParent>mxTooltipHandler</span></div></div><div class=SRResult id=SR_HIGHLIGHT_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HIGHLIGHT_COLOR" target=_parent class=ISymbol>HIGHLIGHT_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_HIGHLIGHT_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.HIGHLIGHT_STROKEWIDTH" target=_parent class=ISymbol>HIGHLIGHT_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_highlightColor><div class=IEntry><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.highlightColor" target=_parent class=ISymbol>highlightColor</a>, <span class=IParent>mxConstraintHandler</span></div></div><div class=SRResult id=SR_highlightDropTargets><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.highlightDropTargets" target=_parent class=ISymbol>highlightDropTargets</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_highlightEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.highlightEnabled" target=_parent class=ISymbol>highlightEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_history><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.history" target=_parent class=ISymbol>history</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_horizontal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_horizontal')" class=ISymbol>horizontal</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.horizontal" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/util/mxGuide-js.html#mxGuide.horizontal" target=_parent class=IParent>mxGuide</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.horizontal" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.horizontal" target=_parent class=IParent>mxStackLayout</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.horizontal" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_horizontalFlow><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.horizontalFlow" target=_parent class=ISymbol>horizontalFlow</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_hotspot><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.hotspot" target=_parent class=ISymbol>hotspot</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_hotspotEnabled><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.hotspotEnabled" target=_parent class=ISymbol>hotspotEnabled</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_htmlLabels><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.htmlLabels" target=_parent class=ISymbol>htmlLabels</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_htmlPreview><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.htmlPreview" target=_parent class=ISymbol>htmlPreview</a>, <span class=IParent>mxGraphHandler</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesI.html b/docs/js-api/search/VariablesI.html
    new file mode 100644
    index 000000000..eba313c70
    --- /dev/null
    +++ b/docs/js-api/search/VariablesI.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_id><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.id" target=_parent class=ISymbol>id</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_idrefs><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.idrefs" target=_parent class=ISymbol>idrefs</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_ieVerticalFilter><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.ieVerticalFilter" target=_parent class=ISymbol>ieVerticalFilter</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_ignoreCell><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.ignoreCell" target=_parent class=ISymbol>ignoreCell</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_ignoredChanges><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.ignoredChanges" target=_parent class=ISymbol>ignoredChanges</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_ignoreMouseDown><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.ignoreMouseDown" target=_parent class=ISymbol>ignoreMouseDown</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_ignoreScrollbars><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.ignoreScrollbars" target=_parent class=ISymbol>ignoreScrollbars</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_image><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.image" target=_parent class=ISymbol>image</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_imageBasePath><div class=IEntry><a href="javascript:searchResults.Toggle('SR_imageBasePath')" class=ISymbol>imageBasePath</a><div class=ISubIndex><a href="../files/mxClient-js.html#mxClient.imageBasePath" target=_parent class=IParent>mxClient</a><a href="../files/editor/mxDefaultPopupMenu-js.html#mxDefaultPopupMenu.imageBasePath" target=_parent class=IParent>mxDefaultPopupMenu</a></div></div></div><div class=SRResult id=SR_imageBundles><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.imageBundles" target=_parent class=ISymbol>imageBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_images><div class=IEntry><a href="../files/util/mxImageBundle-js.html#mxImageBundle.images" target=_parent class=ISymbol>images</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_imageSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_imageSize')" class=ISymbol>imageSize</a><div class=ISubIndex><a href="../files/shape/mxLabel-js.html#mxLabel.imageSize" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.imageSize" target=_parent class=IParent>mxSwimlane</a></div></div></div><div class=SRResult id=SR_importEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.importEnabled" target=_parent class=ISymbol>importEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_includeOverlays><div class=IEntry><a href="../files/util/mxImageExport-js.html#mxImageExport.includeOverlays" target=_parent class=ISymbol>includeOverlays</a>, <span class=IParent>mxImageExport</span></div></div><div class=SRResult id=SR_index><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.index" target=_parent class=ISymbol>index</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_indexOfNextAdd><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.indexOfNextAdd" target=_parent class=ISymbol>indexOfNextAdd</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR_indicatorSize><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel.indicatorSize" target=_parent class=ISymbol>indicatorSize</a>, <span class=IParent>mxLabel</span></div></div><div class=SRResult id=SR_indicatorSpacing><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel.indicatorSpacing" target=_parent class=ISymbol>indicatorSpacing</a>, <span class=IParent>mxLabel</span></div></div><div class=SRResult id=SR_indices><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.indices" target=_parent class=ISymbol>indices</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_init><div class=IEntry><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.init" target=_parent class=ISymbol>init</a>, <span class=IParent>mxDefaultToolbar</span></div></div><div class=SRResult id=SR_initialTemp><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.initialTemp" target=_parent class=ISymbol>initialTemp</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_initialTouchY><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.initialTouchY" target=_parent class=ISymbol>initialTouchY</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_initialX><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.initialX" target=_parent class=ISymbol>initialX</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_innerNode><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.innerNode" target=_parent class=ISymbol>innerNode</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_insertCount><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard.insertCount" target=_parent class=ISymbol>insertCount</a>, <span class=IParent>mxClipboard</span></div></div><div class=SRResult id=SR_insertFunction><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.insertFunction" target=_parent class=ISymbol>insertFunction</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_interHierarchySpacing><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.interHierarchySpacing" target=_parent class=ISymbol>interHierarchySpacing</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_interRankCellSpacing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_interRankCellSpacing')" class=ISymbol>interRankCellSpacing</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.interRankCellSpacing" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.interRankCellSpacing" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_intraCellSpacing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_intraCellSpacing')" class=ISymbol>intraCellSpacing</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.intraCellSpacing" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.intraCellSpacing" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_invalid><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.invalid" target=_parent class=ISymbol>invalid</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_INVALID_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.INVALID_COLOR" target=_parent class=ISymbol>INVALID_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_INVALID_undCONNECT_undTARGET_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.INVALID_CONNECT_TARGET_COLOR" target=_parent class=ISymbol>INVALID_CONNECT_TARGET_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_invalidColor><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.invalidColor" target=_parent class=ISymbol>invalidColor</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_invalidOrder><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.invalidOrder" target=_parent class=ISymbol>invalidOrder</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_invert><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.invert" target=_parent class=ISymbol>invert</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_invokesStopCellEditing><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.invokesStopCellEditing" target=_parent class=ISymbol>invokesStopCellEditing</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_IS_undGC><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_GC" target=_parent class=ISymbol>IS_GC</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undIE><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_IE" target=_parent class=ISymbol>IS_IE</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undIE6><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_IE6" target=_parent class=ISymbol>IS_IE6</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undLOCAL><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_LOCAL" target=_parent class=ISymbol>IS_LOCAL</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undMAC><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_MAC" target=_parent class=ISymbol>IS_MAC</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undMT><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_MT" target=_parent class=ISymbol>IS_MT</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undNS><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_NS" target=_parent class=ISymbol>IS_NS</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undOP><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_OP" target=_parent class=ISymbol>IS_OP</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undOT><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_OT" target=_parent class=ISymbol>IS_OT</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undSF><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_SF" target=_parent class=ISymbol>IS_SF</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undSVG><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_SVG" target=_parent class=ISymbol>IS_SVG</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undTOUCH><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_TOUCH" target=_parent class=ISymbol>IS_TOUCH</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_IS_undVML><div class=IEntry><a href="../files/mxClient-js.html#mxClient.IS_VML" target=_parent class=ISymbol>IS_VML</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_isMouseDown><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.isMouseDown" target=_parent class=ISymbol>isMouseDown</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isMoveable><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.isMoveable" target=_parent class=ISymbol>isMoveable</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_isReversed><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.isReversed" target=_parent class=ISymbol>isReversed</a>, <span class=IParent>mxGraphHierarchyEdge</span></div></div><div class=SRResult id=SR_itemCount><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.itemCount" target=_parent class=ISymbol>itemCount</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_iteration><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.iteration" target=_parent class=ISymbol>iteration</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_iterationsWithoutImprovement><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.iterationsWithoutImprovement" target=_parent class=ISymbol>iterationsWithoutImprovement</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesJ.html b/docs/js-api/search/VariablesJ.html
    new file mode 100644
    index 000000000..fb8a88700
    --- /dev/null
    +++ b/docs/js-api/search/VariablesJ.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_jettyPositions><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.jettyPositions" target=_parent class=ISymbol>jettyPositions</a>, <span class=IParent>mxCoordinateAssignment</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesK.html b/docs/js-api/search/VariablesK.html
    new file mode 100644
    index 000000000..d2d293936
    --- /dev/null
    +++ b/docs/js-api/search/VariablesK.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_keepEdgesInBackground><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.keepEdgesInBackground" target=_parent class=ISymbol>keepEdgesInBackground</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_keepEdgesInForeground><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.keepEdgesInForeground" target=_parent class=ISymbol>keepEdgesInForeground</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_keepFirstLocation><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.keepFirstLocation" target=_parent class=ISymbol>keepFirstLocation</a>, <span class=IParent>mxStackLayout</span></div></div><div class=SRResult id=SR_keepOnTop><div class=IEntry><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.keepOnTop" target=_parent class=ISymbol>keepOnTop</a>, <span class=IParent>mxCellHighlight</span></div></div><div class=SRResult id=SR_keepSelectionVisibleOnZoom><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.keepSelectionVisibleOnZoom" target=_parent class=ISymbol>keepSelectionVisibleOnZoom</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_keyHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.keyHandler" target=_parent class=ISymbol>keyHandler</a>, <span class=IParent>mxEditor</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesL.html b/docs/js-api/search/VariablesL.html
    new file mode 100644
    index 000000000..c16d3c772
    --- /dev/null
    +++ b/docs/js-api/search/VariablesL.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_label><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.label" target=_parent class=ISymbol>label</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_LABEL_undCHANGED><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.LABEL_CHANGED" target=_parent class=ISymbol>LABEL_CHANGED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_LABEL_undHANDLE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.LABEL_HANDLE" target=_parent class=ISymbol>LABEL_HANDLE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_LABEL_undHANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.LABEL_HANDLE_FILLCOLOR" target=_parent class=ISymbol>LABEL_HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_LABEL_undHANDLE_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.LABEL_HANDLE_SIZE" target=_parent class=ISymbol>LABEL_HANDLE_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_labels><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.labels" target=_parent class=ISymbol>labels</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_labelShape><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.labelShape" target=_parent class=ISymbol>labelShape</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_labelsVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.labelsVisible" target=_parent class=ISymbol>labelsVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_language><div class=IEntry><a href="../files/mxClient-js.html#mxClient.language" target=_parent class=ISymbol>language</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_languages><div class=IEntry><a href="../files/mxClient-js.html#mxClient.languages" target=_parent class=ISymbol>languages</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_lastSavedResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.lastSavedResource" target=_parent class=ISymbol>lastSavedResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_lastSnapshot><div class=IEntry><a href="../files/util/mxAutoSaveManager-js.html#mxAutoSaveManager.lastSnapshot" target=_parent class=ISymbol>lastSnapshot</a>, <span class=IParent>mxAutoSaveManager</span></div></div><div class=SRResult id=SR_lastTouchTime><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.lastTouchTime" target=_parent class=ISymbol>lastTouchTime</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_lastTouchX><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.lastTouchX" target=_parent class=ISymbol>lastTouchX</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_layout><div class=IEntry><a href="javascript:searchResults.Toggle('SR_layout')" class=ISymbol>layout</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.layout" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.layout" target=_parent class=IParent>mxMedianHybridCrossingReduction</a><a href="../files/layout/hierarchical/stage/mxMinimumCycleRemover-js.html#mxMinimumCycleRemover.layout" target=_parent class=IParent>mxMinimumCycleRemover</a></div></div></div><div class=SRResult id=SR_LAYOUT_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.LAYOUT_CELLS" target=_parent class=ISymbol>LAYOUT_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_layoutDiagram><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.layoutDiagram" target=_parent class=ISymbol>layoutDiagram</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_layoutFromSinks><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.layoutFromSinks" target=_parent class=ISymbol>layoutFromSinks</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_layouts><div class=IEntry><a href="../files/layout/mxCompositeLayout-js.html#mxCompositeLayout.layouts" target=_parent class=ISymbol>layouts</a>, <span class=IParent>mxCompositeLayout</span></div></div><div class=SRResult id=SR_layoutSwimlanes><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.layoutSwimlanes" target=_parent class=ISymbol>layoutSwimlanes</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_length><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.length" target=_parent class=ISymbol>length</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_levelDistance><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.levelDistance" target=_parent class=ISymbol>levelDistance</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_limitX><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.limitX" target=_parent class=ISymbol>limitX</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_LINE_undARCSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.LINE_ARCSIZE" target=_parent class=ISymbol>LINE_ARCSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_linefeed><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.linefeed" target=_parent class=ISymbol>linefeed</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR2_lineFeed><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.lineFeed" target=_parent class=ISymbol>lineFeed</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_loadDefaultBundle><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.loadDefaultBundle" target=_parent class=ISymbol>loadDefaultBundle</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_LOCKED_undHANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.LOCKED_HANDLE_FILLCOLOR" target=_parent class=ISymbol>LOCKED_HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesM.html b/docs/js-api/search/VariablesM.html
    new file mode 100644
    index 000000000..ef8ccc092
    --- /dev/null
    +++ b/docs/js-api/search/VariablesM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_maintainEdgeParent><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.maintainEdgeParent" target=_parent class=ISymbol>maintainEdgeParent</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_maintainSwimlanes><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.maintainSwimlanes" target=_parent class=ISymbol>maintainSwimlanes</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_mapping><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.mapping" target=_parent class=ISymbol>mapping</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_MARK><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MARK" target=_parent class=ISymbol>MARK</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_markedState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.markedState" target=_parent class=ISymbol>markedState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_marker><div class=IEntry><a href="javascript:searchResults.Toggle('SR_marker')" class=ISymbol>marker</a><div class=ISubIndex><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.marker" target=_parent class=IParent>mxConnectionHandler</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.marker" target=_parent class=IParent>mxEdgeHandler</a></div></div></div><div class=SRResult id=SR_markers><div class=IEntry><a href="javascript:searchResults.Toggle('SR_markers')" class=ISymbol>markers</a><div class=ISubIndex><a href="../files/util/mxImageExport-js.html#mxImageExport.markers" target=_parent class=IParent>mxImageExport</a><a href="../files/shape/mxMarker-js.html#mxMarker.markers" target=_parent class=IParent>mxMarker</a></div></div></div><div class=SRResult id=SR_max><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.max" target=_parent class=ISymbol>max</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_MAX_undHOTSPOT_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.MAX_HOTSPOT_SIZE" target=_parent class=ISymbol>MAX_HOTSPOT_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_maxCells><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.maxCells" target=_parent class=ISymbol>maxCells</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_maxFitScale><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.maxFitScale" target=_parent class=ISymbol>maxFitScale</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_maxHandlers><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.maxHandlers" target=_parent class=ISymbol>maxHandlers</a>, <span class=IParent>mxSelectionCellsHandler</span></div></div><div class=SRResult id=SR_maxHeight><div class=IEntry><a href="../files/shape/mxCylinder-js.html#mxCylinder.maxHeight" target=_parent class=ISymbol>maxHeight</a>, <span class=IParent>mxCylinder</span></div></div><div class=SRResult id=SR_MAXIMIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MAXIMIZE" target=_parent class=ISymbol>MAXIMIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_maximizeImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.maximizeImage" target=_parent class=ISymbol>maximizeImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_maximumContainerSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.maximumContainerSize" target=_parent class=ISymbol>maximumContainerSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_maximumGraphBounds><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.maximumGraphBounds" target=_parent class=ISymbol>maximumGraphBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_maxIterations><div class=IEntry><a href="javascript:searchResults.Toggle('SR_maxIterations')" class=ISymbol>maxIterations</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.maxIterations" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.maxIterations" target=_parent class=IParent>mxFastOrganicLayout</a><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.maxIterations" target=_parent class=IParent>mxMedianHybridCrossingReduction</a></div></div></div><div class=SRResult id=SR_maxNoImprovementIterations><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.maxNoImprovementIterations" target=_parent class=ISymbol>maxNoImprovementIterations</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_maxRank><div class=IEntry><a href="javascript:searchResults.Toggle('SR_maxRank')" class=ISymbol>maxRank</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.maxRank" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.maxRank" target=_parent class=IParent>mxGraphHierarchyModel</a></div></div></div><div class=SRResult id=SR_medianValue><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#MedianCellSorter.medianValue" target=_parent class=ISymbol>medianValue</a>, <span class=IParent>MedianCellSorter</span></div></div><div class=SRResult id=SR_method><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.method" target=_parent class=ISymbol>method</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_min><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.min" target=_parent class=ISymbol>min</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_MIN_undHOTSPOT_undSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.MIN_HOTSPOT_SIZE" target=_parent class=ISymbol>MIN_HOTSPOT_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_minDistanceLimit><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.minDistanceLimit" target=_parent class=ISymbol>minDistanceLimit</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_minDistanceLimitSquared><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.minDistanceLimitSquared" target=_parent class=ISymbol>minDistanceLimitSquared</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_minEdgeJetty><div class=IEntry><a href="javascript:searchResults.Toggle('SR_minEdgeJetty')" class=ISymbol>minEdgeJetty</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.minEdgeJetty" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.minEdgeJetty" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_minFitScale><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.minFitScale" target=_parent class=ISymbol>minFitScale</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_MINIMIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MINIMIZE" target=_parent class=ISymbol>MINIMIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_minimizeImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.minimizeImage" target=_parent class=ISymbol>minimizeImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_minimumContainerSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.minimumContainerSize" target=_parent class=ISymbol>minimumContainerSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_minimumGraphSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.minimumGraphSize" target=_parent class=ISymbol>minimumGraphSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_minimumSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_minimumSize')" class=ISymbol>minimumSize</a><div class=ISubIndex><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.minimumSize" target=_parent class=IParent>mxGraphHandler</a><a href="../files/util/mxWindow-js.html#mxWindow.minimumSize" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_minPageBreakDist><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.minPageBreakDist" target=_parent class=ISymbol>minPageBreakDist</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_minRank><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.minRank" target=_parent class=ISymbol>minRank</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_mixedModeHtml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mixedModeHtml')" class=ISymbol>mixedModeHtml</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.mixedModeHtml" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxConnector-js.html#mxConnector.mixedModeHtml" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.mixedModeHtml" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.mixedModeHtml" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.mixedModeHtml" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxLine-js.html#mxLine.mixedModeHtml" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.mixedModeHtml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.mixedModeHtml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.mixedModeHtml" target=_parent class=IParent>mxStencilShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.mixedModeHtml" target=_parent class=IParent>mxSwimlane</a></div></div></div><div class=SRResult id=SR_model><div class=IEntry><a href="javascript:searchResults.Toggle('SR_model')" class=ISymbol>model</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.model" target=_parent class=IParent>mxGraph</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.model" target=_parent class=IParent>mxHierarchicalLayout</a><a href="../files/util/mxSession-js.html#mxSession.model" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_modified><div class=IEntry><a href="javascript:searchResults.Toggle('SR_modified')" class=ISymbol>modified</a><div class=ISubIndex><a href="../files/view/mxCellEditor-js.html#mxCellEditor.modified" target=_parent class=IParent>mxCellEditor</a><a href="../files/editor/mxEditor-js.html#mxEditor.modified" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_MOUSE_undDOWN><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOUSE_DOWN" target=_parent class=ISymbol>MOUSE_DOWN</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_MOUSE_undMOVE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOUSE_MOVE" target=_parent class=ISymbol>MOUSE_MOVE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_MOUSE_undUP><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOUSE_UP" target=_parent class=ISymbol>MOUSE_UP</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_mouseDownCounter><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.mouseDownCounter" target=_parent class=ISymbol>mouseDownCounter</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_mouseListeners><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.mouseListeners" target=_parent class=ISymbol>mouseListeners</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_MOVE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOVE" target=_parent class=ISymbol>MOVE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_MOVE_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOVE_CELLS" target=_parent class=ISymbol>MOVE_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_MOVE_undEND><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOVE_END" target=_parent class=ISymbol>MOVE_END</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_MOVE_undSTART><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.MOVE_START" target=_parent class=ISymbol>MOVE_START</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_moveCircle><div class=IEntry><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.moveCircle" target=_parent class=ISymbol>moveCircle</a>, <span class=IParent>mxCircleLayout</span></div></div><div class=SRResult id=SR_moveEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.moveEnabled" target=_parent class=ISymbol>moveEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_moveHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_moveHandler')" class=ISymbol>moveHandler</a><div class=ISubIndex><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.moveHandler" target=_parent class=IParent>mxLayoutManager</a><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.moveHandler" target=_parent class=IParent>mxSwimlaneManager</a></div></div></div><div class=SRResult id=SR_moveIconBack><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.moveIconBack" target=_parent class=ISymbol>moveIconBack</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_moveIconFront><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.moveIconFront" target=_parent class=ISymbol>moveIconFront</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_moveParent><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.moveParent" target=_parent class=ISymbol>moveParent</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_movePreviewAway><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.movePreviewAway" target=_parent class=ISymbol>movePreviewAway</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_movePropertiesDialog><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.movePropertiesDialog" target=_parent class=ISymbol>movePropertiesDialog</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_moveTree><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.moveTree" target=_parent class=ISymbol>moveTree</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_multigraph><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.multigraph" target=_parent class=ISymbol>multigraph</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_multiplicities><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.multiplicities" target=_parent class=ISymbol>multiplicities</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_mxLoadResources><div class=IEntry><a href="../files/mxClient-js.html#mxClient.mxLoadResources" target=_parent class=ISymbol>mxLoadResources</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_mxLoadStylesheets><div class=IEntry><a href="../files/mxClient-js.html#mxClient.mxLoadStylesheets" target=_parent class=ISymbol>mxLoadStylesheets</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_mxTransient><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.mxTransient" target=_parent class=ISymbol>mxTransient</a>, <span class=IParent>mxCell</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesN.html b/docs/js-api/search/VariablesN.html
    new file mode 100644
    index 000000000..20e301865
    --- /dev/null
    +++ b/docs/js-api/search/VariablesN.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject.name" target=_parent class=ISymbol>name</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_neighbours><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.neighbours" target=_parent class=ISymbol>neighbours</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_nestedBestRanks><div class=IEntry><a href="../files/layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html#mxMedianHybridCrossingReduction.nestedBestRanks" target=_parent class=ISymbol>nestedBestRanks</a>, <span class=IParent>mxMedianHybridCrossingReduction</span></div></div><div class=SRResult id=SR_nextId><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.nextId" target=_parent class=ISymbol>nextId</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_nextLayerConnectedCache><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.nextLayerConnectedCache" target=_parent class=ISymbol>nextLayerConnectedCache</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_nextLayerConnectedCells><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.nextLayerConnectedCells" target=_parent class=ISymbol>nextLayerConnectedCells</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_NO_undFO><div class=IEntry><a href="../files/mxClient-js.html#mxClient.NO_FO" target=_parent class=ISymbol>NO_FO</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_node><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.node" target=_parent class=ISymbol>node</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_nodeDistance><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.nodeDistance" target=_parent class=ISymbol>nodeDistance</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_NODETYPE_undATTRIBUTE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_ATTRIBUTE" target=_parent class=ISymbol>NODETYPE_ATTRIBUTE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undCDATA><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_CDATA" target=_parent class=ISymbol>NODETYPE_CDATA</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undCOMMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_COMMENT" target=_parent class=ISymbol>NODETYPE_COMMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undDOCUMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_DOCUMENT" target=_parent class=ISymbol>NODETYPE_DOCUMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undDOCUMENT_undFRAGMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_DOCUMENT_FRAGMENT" target=_parent class=ISymbol>NODETYPE_DOCUMENT_FRAGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undDOCUMENTTYPE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_DOCUMENTTYPE" target=_parent class=ISymbol>NODETYPE_DOCUMENTTYPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undELEMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_ELEMENT" target=_parent class=ISymbol>NODETYPE_ELEMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undENTITY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_ENTITY" target=_parent class=ISymbol>NODETYPE_ENTITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undENTITY_undREFERENCE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_ENTITY_REFERENCE" target=_parent class=ISymbol>NODETYPE_ENTITY_REFERENCE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undNOTATION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_NOTATION" target=_parent class=ISymbol>NODETYPE_NOTATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undPROCESSING_undINSTRUCTION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_PROCESSING_INSTRUCTION" target=_parent class=ISymbol>NODETYPE_PROCESSING_INSTRUCTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NODETYPE_undTEXT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NODETYPE_TEXT" target=_parent class=ISymbol>NODETYPE_TEXT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NONE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NONE" target=_parent class=ISymbol>NONE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_noReset><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.noReset" target=_parent class=ISymbol>noReset</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_NORMALIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.NORMALIZE" target=_parent class=ISymbol>NORMALIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_normalizeImage><div class=IEntry><a href="../files/util/mxWindow-js.html#mxWindow.normalizeImage" target=_parent class=ISymbol>normalizeImage</a>, <span class=IParent>mxWindow</span></div></div><div class=SRResult id=SR_normalKeys><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.normalKeys" target=_parent class=ISymbol>normalKeys</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_NOTIFY><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.NOTIFY" target=_parent class=ISymbol>NOTIFY</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_NS_undSVG><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NS_SVG" target=_parent class=ISymbol>NS_SVG</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undXHTML><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NS_XHTML" target=_parent class=ISymbol>NS_XHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undXLINK><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.NS_XLINK" target=_parent class=ISymbol>NS_XLINK</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_nudge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_nudge')" class=ISymbol>nudge</a>, <span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.nudge" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.nudge" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesO.html b/docs/js-api/search/VariablesO.html
    new file mode 100644
    index 000000000..1bfa69974
    --- /dev/null
    +++ b/docs/js-api/search/VariablesO.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_objects><div class=IEntry><a href="javascript:searchResults.Toggle('SR_objects')" class=ISymbol>objects</a><div class=ISubIndex><a href="../files/io/mxCodec-js.html#mxCodec.objects" target=_parent class=IParent>mxCodec</a><a href="../files/util/mxEvent-js.html#mxEvent.objects" target=_parent class=IParent>mxEvent</a></div></div></div><div class=SRResult id=SR_offset><div class=IEntry><a href="javascript:searchResults.Toggle('SR_offset')" class=ISymbol>offset</a><div class=ISubIndex><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.offset" target=_parent class=IParent>mxCellOverlay</a><a href="../files/model/mxGeometry-js.html#mxGeometry.offset" target=_parent class=IParent>mxGeometry</a></div></div></div><div class=SRResult id=SR_oldBounds><div class=IEntry><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.oldBounds" target=_parent class=ISymbol>oldBounds</a>, <span class=IParent>mxTemporaryCellStates</span></div></div><div class=SRResult id=SR_oldScale><div class=IEntry><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.oldScale" target=_parent class=ISymbol>oldScale</a>, <span class=IParent>mxTemporaryCellStates</span></div></div><div class=SRResult id=SR_oldStates><div class=IEntry><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.oldStates" target=_parent class=ISymbol>oldStates</a>, <span class=IParent>mxTemporaryCellStates</span></div></div><div class=SRResult id=SR_opaqueVmlImages><div class=IEntry><a href="../files/shape/mxLabel-js.html#mxLabel.opaqueVmlImages" target=_parent class=ISymbol>opaqueVmlImages</a>, <span class=IParent>mxLabel</span></div></div><div class=SRResult id=SR_OPEN><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.OPEN" target=_parent class=ISymbol>OPEN</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_ORDER_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ORDER_CELLS" target=_parent class=ISymbol>ORDER_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_orderChanged><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.orderChanged" target=_parent class=ISymbol>orderChanged</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_ordered><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.ordered" target=_parent class=ISymbol>ordered</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_orientation><div class=IEntry><a href="javascript:searchResults.Toggle('SR_orientation')" class=ISymbol>orientation</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.orientation" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.orientation" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_origin><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.origin" target=_parent class=ISymbol>origin</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_outline><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.outline" target=_parent class=ISymbol>outline</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_OUTLINE_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.OUTLINE_COLOR" target=_parent class=ISymbol>OUTLINE_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_OUTLINE_undHANDLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.OUTLINE_HANDLE_FILLCOLOR" target=_parent class=ISymbol>OUTLINE_HANDLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_OUTLINE_undHANDLE_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.OUTLINE_HANDLE_STROKECOLOR" target=_parent class=ISymbol>OUTLINE_HANDLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_OUTLINE_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.OUTLINE_STROKEWIDTH" target=_parent class=ISymbol>OUTLINE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_outlineResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.outlineResource" target=_parent class=ISymbol>outlineResource</a>, <span class=IParent>mxEditor</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesP.html b/docs/js-api/search/VariablesP.html
    new file mode 100644
    index 000000000..96ce98418
    --- /dev/null
    +++ b/docs/js-api/search/VariablesP.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_PAGE_undFORMAT_undA4_undPORTRAIT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PAGE_FORMAT_A4_PORTRAIT" target=_parent class=ISymbol>PAGE_FORMAT_A4_PORTRAIT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PAGE_undFORMAT_undLETTER_undPORTRAIT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PAGE_FORMAT_LETTER_PORTRAIT" target=_parent class=ISymbol>PAGE_FORMAT_LETTER_PORTRAIT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_pageBreakColor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageBreakColor" target=_parent class=ISymbol>pageBreakColor</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_pageBreakDashed><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageBreakDashed" target=_parent class=ISymbol>pageBreakDashed</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_pageBreaksVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageBreaksVisible" target=_parent class=ISymbol>pageBreaksVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_pageCount><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.pageCount" target=_parent class=ISymbol>pageCount</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_pageFormat><div class=IEntry><a href="javascript:searchResults.Toggle('SR_pageFormat')" class=ISymbol>pageFormat</a><div class=ISubIndex><a href="../files/view/mxGraph-js.html#mxGraph.pageFormat" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.pageFormat" target=_parent class=IParent>mxPrintPreview</a></div></div></div><div class=SRResult id=SR_pageScale><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageScale" target=_parent class=ISymbol>pageScale</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_pageSelector><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.pageSelector" target=_parent class=ISymbol>pageSelector</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_pageVisible><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.pageVisible" target=_parent class=ISymbol>pageVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_PAN><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.PAN" target=_parent class=ISymbol>PAN</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_PAN_undEND><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.PAN_END" target=_parent class=ISymbol>PAN_END</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_PAN_undSTART><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.PAN_START" target=_parent class=ISymbol>PAN_START</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_panDx><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.panDx" target=_parent class=ISymbol>panDx</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_panDy><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.panDy" target=_parent class=ISymbol>panDy</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_panningEnabled><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.panningEnabled" target=_parent class=ISymbol>panningEnabled</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_parallelEdgeSpacing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_parallelEdgeSpacing')" class=ISymbol>parallelEdgeSpacing</a><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.parallelEdgeSpacing" target=_parent class=IParent>mxCoordinateAssignment</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.parallelEdgeSpacing" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_params><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.params" target=_parent class=ISymbol>params</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_parent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_parent')" class=ISymbol>parent</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.parent" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.parent" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.parent" target=_parent class=IParent>mxGraphLayout</a></div></div></div><div class=SRResult id=SR_parentBorder><div class=IEntry><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.parentBorder" target=_parent class=ISymbol>parentBorder</a>, <span class=IParent>mxHierarchicalLayout</span></div></div><div class=SRResult id=SR_parentsChanged><div class=IEntry><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.parentsChanged" target=_parent class=ISymbol>parentsChanged</a>, <span class=IParent>mxCompactTreeLayout</span></div></div><div class=SRResult id=SR_password><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.password" target=_parent class=ISymbol>password</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_path><div class=IEntry><a href="../files/util/mxPath-js.html#mxPath.path" target=_parent class=ISymbol>path</a>, <span class=IParent>mxPath</span></div></div><div class=SRResult id=SR_PATH_undSEPARATOR><div class=IEntry><a href="../files/model/mxCellPath-js.html#mxCellPath.PATH_SEPARATOR" target=_parent class=ISymbol>PATH_SEPARATOR</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_perimeter><div class=IEntry><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint.perimeter" target=_parent class=ISymbol>perimeter</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_PERIMETER_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PERIMETER_ELLIPSE" target=_parent class=ISymbol>PERIMETER_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undRECTANGLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PERIMETER_RECTANGLE" target=_parent class=ISymbol>PERIMETER_RECTANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undRHOMBUS><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PERIMETER_RHOMBUS" target=_parent class=ISymbol>PERIMETER_RHOMBUS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undTRIANGLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.PERIMETER_TRIANGLE" target=_parent class=ISymbol>PERIMETER_TRIANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_point><div class=IEntry><a href="../files/view/mxConnectionConstraint-js.html#mxConnectionConstraint.point" target=_parent class=ISymbol>point</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_pointImage><div class=IEntry><a href="../files/handler/mxConstraintHandler-js.html#mxConstraintHandler.pointImage" target=_parent class=ISymbol>pointImage</a>, <span class=IParent>mxConstraintHandler</span></div></div><div class=SRResult id=SR_points><div class=IEntry><a href="javascript:searchResults.Toggle('SR_points')" class=ISymbol>points</a><div class=ISubIndex><a href="../files/model/mxGeometry-js.html#mxGeometry.points" target=_parent class=IParent>mxGeometry</a><a href="../files/shape/mxShape-js.html#mxShape.points" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_polling><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.polling" target=_parent class=ISymbol>polling</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_popupHandler><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.popupHandler" target=_parent class=ISymbol>popupHandler</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_portsEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.portsEnabled" target=_parent class=ISymbol>portsEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_POST><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.POST" target=_parent class=ISymbol>POST</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_postfix><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.postfix" target=_parent class=ISymbol>postfix</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_postParameterName><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.postParameterName" target=_parent class=ISymbol>postParameterName</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_preferHtml><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.preferHtml" target=_parent class=ISymbol>preferHtml</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_preferModeHtml><div class=IEntry><a href="javascript:searchResults.Toggle('SR_preferModeHtml')" class=ISymbol>preferModeHtml</a><div class=ISubIndex><a href="../files/shape/mxActor-js.html#mxActor.preferModeHtml" target=_parent class=IParent>mxActor</a><a href="../files/shape/mxConnector-js.html#mxConnector.preferModeHtml" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.preferModeHtml" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.preferModeHtml" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxEllipse-js.html#mxEllipse.preferModeHtml" target=_parent class=IParent>mxEllipse</a><a href="../files/shape/mxLine-js.html#mxLine.preferModeHtml" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxRhombus-js.html#mxRhombus.preferModeHtml" target=_parent class=IParent>mxRhombus</a><a href="../files/shape/mxShape-js.html#mxShape.preferModeHtml" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.preferModeHtml" target=_parent class=IParent>mxStencilShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.preferModeHtml" target=_parent class=IParent>mxSwimlane</a></div></div></div><div class=SRResult id=SR_preferPageSize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.preferPageSize" target=_parent class=ISymbol>preferPageSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_prefHozEdgeSep><div class=IEntry><a href="javascript:searchResults.Toggle('SR_prefHozEdgeSep')" class=ISymbol>prefHozEdgeSep</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.prefHozEdgeSep" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.prefHozEdgeSep" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_prefix><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.prefix" target=_parent class=ISymbol>prefix</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_prefVertEdgeOff><div class=IEntry><a href="javascript:searchResults.Toggle('SR_prefVertEdgeOff')" class=ISymbol>prefVertEdgeOff</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.prefVertEdgeOff" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.prefVertEdgeOff" target=_parent class=IParent>mxCoordinateAssignment</a></div></div></div><div class=SRResult id=SR_preserveImageAspect><div class=IEntry><a href="../files/shape/mxImageShape-js.html#mxImageShape.preserveImageAspect" target=_parent class=ISymbol>preserveImageAspect</a>, <span class=IParent>mxImageShape</span></div></div><div class=SRResult id=SR_previewColor><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.previewColor" target=_parent class=ISymbol>previewColor</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_previewElement><div class=IEntry><a href="../files/util/mxDragSource-js.html#mxDragSource.previewElement" target=_parent class=ISymbol>previewElement</a>, <span class=IParent>mxDragSource</span></div></div><div class=SRResult id=SR_previewEnabled><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.previewEnabled" target=_parent class=ISymbol>previewEnabled</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_previousLayerConnectedCache><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.previousLayerConnectedCache" target=_parent class=ISymbol>previousLayerConnectedCache</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_previousLayerConnectedCells><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.previousLayerConnectedCells" target=_parent class=ISymbol>previousLayerConnectedCells</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_printOverlays><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.printOverlays" target=_parent class=ISymbol>printOverlays</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_properties><div class=IEntry><a href="../files/util/mxEventObject-js.html#mxEventObject.properties" target=_parent class=ISymbol>properties</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_propertiesHeight><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.propertiesHeight" target=_parent class=ISymbol>propertiesHeight</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_propertiesResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.propertiesResource" target=_parent class=ISymbol>propertiesResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_propertiesWidth><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.propertiesWidth" target=_parent class=ISymbol>propertiesWidth</a>, <span class=IParent>mxEditor</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesR.html b/docs/js-api/search/VariablesR.html
    new file mode 100644
    index 000000000..b5f9147b5
    --- /dev/null
    +++ b/docs/js-api/search/VariablesR.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_radius><div class=IEntry><a href="javascript:searchResults.Toggle('SR_radius')" class=ISymbol>radius</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.radius" target=_parent class=IParent>mxCircleLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.radius" target=_parent class=IParent>mxFastOrganicLayout</a></div></div></div><div class=SRResult id=SR_radiusSquared><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.radiusSquared" target=_parent class=ISymbol>radiusSquared</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_rankBottomY><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankBottomY" target=_parent class=ISymbol>rankBottomY</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_rankIndex><div class=IEntry><a href="javascript:searchResults.Toggle('SR_rankIndex')" class=ISymbol>rankIndex</a>, <span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.rankIndex" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.rankIndex" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div><div class=SRResult id=SR_ranks><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.ranks" target=_parent class=ISymbol>ranks</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_rankTopY><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankTopY" target=_parent class=ISymbol>rankTopY</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_rankWidths><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankWidths" target=_parent class=ISymbol>rankWidths</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_rankY><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.rankY" target=_parent class=ISymbol>rankY</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_RECEIVE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.RECEIVE" target=_parent class=ISymbol>RECEIVE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_received><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.received" target=_parent class=ISymbol>received</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_RECTANGLE_undROUNDING_undFACTOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.RECTANGLE_ROUNDING_FACTOR" target=_parent class=ISymbol>RECTANGLE_ROUNDING_FACTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_REDO><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.REDO" target=_parent class=ISymbol>REDO</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_redone><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.redone" target=_parent class=ISymbol>redone</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_REFRESH><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.REFRESH" target=_parent class=ISymbol>REFRESH</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_refreshHandler><div class=IEntry><a href="../files/handler/mxSelectionCellsHandler-js.html#mxSelectionCellsHandler.refreshHandler" target=_parent class=ISymbol>refreshHandler</a>, <span class=IParent>mxSelectionCellsHandler</span></div></div><div class=SRResult id=SR_relative><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.relative" target=_parent class=ISymbol>relative</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_REMOVE_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.REMOVE_CELLS" target=_parent class=ISymbol>REMOVE_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_REMOVE_undCELLS_undFROM_undPARENT><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.REMOVE_CELLS_FROM_PARENT" target=_parent class=ISymbol>REMOVE_CELLS_FROM_PARENT</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_REMOVE_undOVERLAY><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.REMOVE_OVERLAY" target=_parent class=ISymbol>REMOVE_OVERLAY</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_removeCellsFromParent><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.removeCellsFromParent" target=_parent class=ISymbol>removeCellsFromParent</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_removeEnabled><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.removeEnabled" target=_parent class=ISymbol>removeEnabled</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_renderHint><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.renderHint" target=_parent class=ISymbol>renderHint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_rendering><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.rendering" target=_parent class=ISymbol>rendering</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_RENDERING_undHINT_undEXACT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.RENDERING_HINT_EXACT" target=_parent class=ISymbol>RENDERING_HINT_EXACT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_RENDERING_undHINT_undFASTER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.RENDERING_HINT_FASTER" target=_parent class=ISymbol>RENDERING_HINT_FASTER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_RENDERING_undHINT_undFASTEST><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.RENDERING_HINT_FASTEST" target=_parent class=ISymbol>RENDERING_HINT_FASTEST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_replaceLinefeeds><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.replaceLinefeeds" target=_parent class=ISymbol>replaceLinefeeds</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_request><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.request" target=_parent class=ISymbol>request</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_resetEdges><div class=IEntry><a href="javascript:searchResults.Toggle('SR_resetEdges')" class=ISymbol>resetEdges</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.resetEdges" target=_parent class=IParent>mxCircleLayout</a><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.resetEdges" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.resetEdges" target=_parent class=IParent>mxFastOrganicLayout</a></div></div></div><div class=SRResult id=SR_resetEdgesOnConnect><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetEdgesOnConnect" target=_parent class=ISymbol>resetEdgesOnConnect</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resetEdgesOnMove><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetEdgesOnMove" target=_parent class=ISymbol>resetEdgesOnMove</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resetEdgesOnResize><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetEdgesOnResize" target=_parent class=ISymbol>resetEdgesOnResize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resetHandler><div class=IEntry><a href="javascript:searchResults.Toggle('SR_resetHandler')" class=ISymbol>resetHandler</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.resetHandler" target=_parent class=IParent>mxCellHighlight</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.resetHandler" target=_parent class=IParent>mxDefaultToolbar</a></div></div></div><div class=SRResult id=SR_resetViewOnRootChange><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resetViewOnRootChange" target=_parent class=ISymbol>resetViewOnRootChange</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_RESIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.RESIZE" target=_parent class=ISymbol>RESIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_RESIZE_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.RESIZE_CELLS" target=_parent class=ISymbol>RESIZE_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_RESIZE_undEND><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.RESIZE_END" target=_parent class=ISymbol>RESIZE_END</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_RESIZE_undSTART><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.RESIZE_START" target=_parent class=ISymbol>RESIZE_START</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_resizeContainer><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.resizeContainer" target=_parent class=ISymbol>resizeContainer</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_resizeEnabled><div class=IEntry><a href="../files/view/mxSwimlaneManager-js.html#mxSwimlaneManager.resizeEnabled" target=_parent class=ISymbol>resizeEnabled</a>, <span class=IParent>mxSwimlaneManager</span></div></div><div class=SRResult id=SR_resizeHandler><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.resizeHandler" target=_parent class=ISymbol>resizeHandler</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_resizeLast><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.resizeLast" target=_parent class=ISymbol>resizeLast</a>, <span class=IParent>mxStackLayout</span></div></div><div class=SRResult id=SR_resizeParent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_resizeParent')" class=ISymbol>resizeParent</a><div class=ISubIndex><a href="../files/layout/mxCompactTreeLayout-js.html#mxCompactTreeLayout.resizeParent" target=_parent class=IParent>mxCompactTreeLayout</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.resizeParent" target=_parent class=IParent>mxHierarchicalLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.resizeParent" target=_parent class=IParent>mxStackLayout</a></div></div></div><div class=SRResult id=SR_resizeVertices><div class=IEntry><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.resizeVertices" target=_parent class=ISymbol>resizeVertices</a>, <span class=IParent>mxPartitionLayout</span></div></div><div class=SRResult id=SR_resources><div class=IEntry><a href="../files/util/mxResources-js.html#mxResources.resources" target=_parent class=ISymbol>resources</a>, <span class=IParent>mxResources</span></div></div><div class=SRResult id=SR_RESUME><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.RESUME" target=_parent class=ISymbol>RESUME</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_reverse><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.reverse" target=_parent class=ISymbol>reverse</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_root><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.root" target=_parent class=ISymbol>root</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR2_ROOT><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.ROOT" target=_parent class=ISymbol>ROOT</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_roots><div class=IEntry><a href="javascript:searchResults.Toggle('SR_roots')" class=ISymbol>roots</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.roots" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.roots" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_roundedCrispSvg><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.roundedCrispSvg" target=_parent class=ISymbol>roundedCrispSvg</a>, <span class=IParent>mxShape</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesS.html b/docs/js-api/search/VariablesS.html
    new file mode 100644
    index 000000000..8dd2c5c71
    --- /dev/null
    +++ b/docs/js-api/search/VariablesS.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_SAVE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.SAVE" target=_parent class=ISymbol>SAVE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_scale><div class=IEntry><a href="javascript:searchResults.Toggle('SR_scale')" class=ISymbol>scale</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView.scale" target=_parent class=IParent>mxGraphView</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.scale" target=_parent class=IParent>mxPrintPreview</a><a href="../files/shape/mxShape-js.html#mxShape.scale" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR2_SCALE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.SCALE" target=_parent class=ISymbol>SCALE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_SCALE_undAND_undTRANSLATE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.SCALE_AND_TRANSLATE" target=_parent class=ISymbol>SCALE_AND_TRANSLATE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_scaleGrid><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.scaleGrid" target=_parent class=ISymbol>scaleGrid</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_scanRanksFromSinks><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.scanRanksFromSinks" target=_parent class=ISymbol>scanRanksFromSinks</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_scrollOnMove><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.scrollOnMove" target=_parent class=ISymbol>scrollOnMove</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_segments><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.segments" target=_parent class=ISymbol>segments</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_select><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.select" target=_parent class=ISymbol>select</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR2_SELECT><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.SELECT" target=_parent class=ISymbol>SELECT</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_selectEnabled><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.selectEnabled" target=_parent class=ISymbol>selectEnabled</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_SELECTION_undDASHED><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SELECTION_DASHED" target=_parent class=ISymbol>SELECTION_DASHED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_selectionModel><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.selectionModel" target=_parent class=ISymbol>selectionModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_selectOnPopup><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.selectOnPopup" target=_parent class=ISymbol>selectOnPopup</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_send><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.send" target=_parent class=ISymbol>send</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_sent><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.sent" target=_parent class=ISymbol>sent</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_SESSION><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.SESSION" target=_parent class=ISymbol>SESSION</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_SHADOW_undOFFSET_undX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHADOW_OFFSET_X" target=_parent class=ISymbol>SHADOW_OFFSET_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHADOW_undOFFSET_undY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHADOW_OFFSET_Y" target=_parent class=ISymbol>SHADOW_OFFSET_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHADOW_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHADOW_OPACITY" target=_parent class=ISymbol>SHADOW_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHADOWCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHADOWCOLOR" target=_parent class=ISymbol>SHADOWCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_shape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_shape')" class=ISymbol>shape</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.shape" target=_parent class=IParent>mxCellState</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.shape" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.shape" target=_parent class=IParent>mxGraphHandler</a></div></div></div><div class=SRResult id=SR_SHAPE_undACTOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_ACTOR" target=_parent class=ISymbol>SHAPE_ACTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undARROW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_ARROW" target=_parent class=ISymbol>SHAPE_ARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCLOUD><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_CLOUD" target=_parent class=ISymbol>SHAPE_CLOUD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCONNECTOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_CONNECTOR" target=_parent class=ISymbol>SHAPE_CONNECTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCYLINDER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_CYLINDER" target=_parent class=ISymbol>SHAPE_CYLINDER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undDOUBLE_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_DOUBLE_ELLIPSE" target=_parent class=ISymbol>SHAPE_DOUBLE_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_ELLIPSE" target=_parent class=ISymbol>SHAPE_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undHEXAGON><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_HEXAGON" target=_parent class=ISymbol>SHAPE_HEXAGON</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_IMAGE" target=_parent class=ISymbol>SHAPE_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undLABEL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_LABEL" target=_parent class=ISymbol>SHAPE_LABEL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undLINE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_LINE" target=_parent class=ISymbol>SHAPE_LINE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undRECTANGLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_RECTANGLE" target=_parent class=ISymbol>SHAPE_RECTANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undRHOMBUS><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_RHOMBUS" target=_parent class=ISymbol>SHAPE_RHOMBUS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undSWIMLANE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_SWIMLANE" target=_parent class=ISymbol>SHAPE_SWIMLANE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undTRIANGLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.SHAPE_TRIANGLE" target=_parent class=ISymbol>SHAPE_TRIANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_shapes><div class=IEntry><a href="javascript:searchResults.Toggle('SR_shapes')" class=ISymbol>shapes</a><div class=ISubIndex><a href="../files/view/mxCellRenderer-js.html#mxCellRenderer.shapes" target=_parent class=IParent>mxCellRenderer</a><a href="../files/util/mxImageExport-js.html#mxImageExport.shapes" target=_parent class=IParent>mxImageExport</a></div></div></div><div class=SRResult id=SR_sharedDiv><div class=IEntry><a href="../files/handler/mxRubberband-js.html#mxRubberband.sharedDiv" target=_parent class=ISymbol>sharedDiv</a>, <span class=IParent>mxRubberband</span></div></div><div class=SRResult id=SR_shiftDownwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.shiftDownwards" target=_parent class=ISymbol>shiftDownwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_shiftKeys><div class=IEntry><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.shiftKeys" target=_parent class=ISymbol>shiftKeys</a>, <span class=IParent>mxKeyHandler</span></div></div><div class=SRResult id=SR_shiftRightwards><div class=IEntry><a href="../files/view/mxSpaceManager-js.html#mxSpaceManager.shiftRightwards" target=_parent class=ISymbol>shiftRightwards</a>, <span class=IParent>mxSpaceManager</span></div></div><div class=SRResult id=SR_SHOW><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.SHOW" target=_parent class=ISymbol>SHOW</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_showViewport><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.showViewport" target=_parent class=ISymbol>showViewport</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_significant><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.significant" target=_parent class=ISymbol>significant</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_significantRemoteChanges><div class=IEntry><a href="../files/util/mxSession-js.html#mxSession.significantRemoteChanges" target=_parent class=ISymbol>significantRemoteChanges</a>, <span class=IParent>mxSession</span></div></div><div class=SRResult id=SR_singleSelection><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.singleSelection" target=_parent class=ISymbol>singleSelection</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_singleSizer><div class=IEntry><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.singleSizer" target=_parent class=ISymbol>singleSizer</a>, <span class=IParent>mxVertexHandler</span></div></div><div class=SRResult id=SR_size><div class=IEntry><a href="../files/util/mxUndoManager-js.html#mxUndoManager.size" target=_parent class=ISymbol>size</a>, <span class=IParent>mxUndoManager</span></div></div><div class=SRResult id=SR2_SIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.SIZE" target=_parent class=ISymbol>SIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_sizerImage><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.sizerImage" target=_parent class=ISymbol>sizerImage</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_smartSeparators><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.smartSeparators" target=_parent class=ISymbol>smartSeparators</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_snapToTerminals><div class=IEntry><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.snapToTerminals" target=_parent class=ISymbol>snapToTerminals</a>, <span class=IParent>mxEdgeHandler</span></div></div><div class=SRResult id=SR_source><div class=IEntry><a href="javascript:searchResults.Toggle('SR_source')" class=ISymbol>source</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.source" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.source" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.source" target=_parent class=IParent>mxMultiplicity</a><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.source" target=_parent class=IParent>mxUndoableEdit</a></div></div></div><div class=SRResult id=SR_sourcePoint><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.sourcePoint" target=_parent class=ISymbol>sourcePoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_SOURCESCANSTARTRANK><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.SOURCESCANSTARTRANK" target=_parent class=ISymbol>SOURCESCANSTARTRANK</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_spacing><div class=IEntry><a href="javascript:searchResults.Toggle('SR_spacing')" class=ISymbol>spacing</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.spacing" target=_parent class=IParent>mxCellHighlight</a><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.spacing" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/shape/mxLabel-js.html#mxLabel.spacing" target=_parent class=IParent>mxLabel</a><a href="../files/layout/mxParallelEdgeLayout-js.html#mxParallelEdgeLayout.spacing" target=_parent class=IParent>mxParallelEdgeLayout</a><a href="../files/layout/mxPartitionLayout-js.html#mxPartitionLayout.spacing" target=_parent class=IParent>mxPartitionLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.spacing" target=_parent class=IParent>mxStackLayout</a></div></div></div><div class=SRResult id=SR_SPLIT_undEDGE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.SPLIT_EDGE" target=_parent class=ISymbol>SPLIT_EDGE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_splitEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.splitEnabled" target=_parent class=ISymbol>splitEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_src><div class=IEntry><a href="../files/util/mxImage-js.html#mxImage.src" target=_parent class=ISymbol>src</a>, <span class=IParent>mxImage</span></div></div><div class=SRResult id=SR_START_undEDITING><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.START_EDITING" target=_parent class=ISymbol>START_EDITING</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_startOffset><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.startOffset" target=_parent class=ISymbol>startOffset</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_state><div class=IEntry><a href="javascript:searchResults.Toggle('SR_state')" class=ISymbol>state</a><div class=ISubIndex><a href="../files/handler/mxCellHighlight-js.html#mxCellHighlight.state" target=_parent class=IParent>mxCellHighlight</a><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.state" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/util/mxMouseEvent-js.html#mxMouseEvent.state" target=_parent class=IParent>mxMouseEvent</a><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.state" target=_parent class=IParent>mxStencilShape</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.state" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_states><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.states" target=_parent class=ISymbol>states</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_status><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.status" target=_parent class=ISymbol>status</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_stencil><div class=IEntry><a href="../files/shape/mxStencilShape-js.html#mxStencilShape.stencil" target=_parent class=ISymbol>stencil</a>, <span class=IParent>mxStencilShape</span></div></div><div class=SRResult id=SR_step><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.step" target=_parent class=ISymbol>step</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_steps><div class=IEntry><a href="../files/util/mxMorphing-js.html#mxMorphing.steps" target=_parent class=ISymbol>steps</a>, <span class=IParent>mxMorphing</span></div></div><div class=SRResult id=SR_STEPSIZE><div class=IEntry><a href="../files/util/mxClipboard-js.html#mxClipboard.STEPSIZE" target=_parent class=ISymbol>STEPSIZE</a>, <span class=IParent>mxClipboard</span></div></div><div class=SRResult id=SR_strokedBackground><div class=IEntry><a href="../files/shape/mxCylinder-js.html#mxCylinder.strokedBackground" target=_parent class=ISymbol>strokedBackground</a>, <span class=IParent>mxCylinder</span></div></div><div class=SRResult id=SR_strokewidth><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.strokewidth" target=_parent class=ISymbol>strokewidth</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_style><div class=IEntry><a href="javascript:searchResults.Toggle('SR_style')" class=ISymbol>style</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.style" target=_parent class=IParent>mxCell</a><a href="../files/view/mxCellState-js.html#mxCellState.style" target=_parent class=IParent>mxCellState</a><a href="../files/shape/mxShape-js.html#mxShape.style" target=_parent class=IParent>mxShape</a></div></div></div><div class=SRResult id=SR_STYLE_undALIGN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ALIGN" target=_parent class=ISymbol>STYLE_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undARCSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ARCSIZE" target=_parent class=ISymbol>STYLE_ARCSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undAUTOSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_AUTOSIZE" target=_parent class=ISymbol>STYLE_AUTOSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undBENDABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_BENDABLE" target=_parent class=ISymbol>STYLE_BENDABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undCLONEABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_CLONEABLE" target=_parent class=ISymbol>STYLE_CLONEABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDASHED><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_DASHED" target=_parent class=ISymbol>STYLE_DASHED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDELETABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_DELETABLE" target=_parent class=ISymbol>STYLE_DELETABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_DIRECTION" target=_parent class=ISymbol>STYLE_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEDGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EDGE" target=_parent class=ISymbol>STYLE_EDGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEDITABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EDITABLE" target=_parent class=ISymbol>STYLE_EDITABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undELBOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ELBOW" target=_parent class=ISymbol>STYLE_ELBOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDARROW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENDARROW" target=_parent class=ISymbol>STYLE_ENDARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDFILL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENDFILL" target=_parent class=ISymbol>STYLE_ENDFILL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENDSIZE" target=_parent class=ISymbol>STYLE_ENDSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENTRY_PERIMETER" target=_parent class=ISymbol>STYLE_ENTRY_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENTRY_X" target=_parent class=ISymbol>STYLE_ENTRY_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ENTRY_Y" target=_parent class=ISymbol>STYLE_ENTRY_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EXIT_PERIMETER" target=_parent class=ISymbol>STYLE_EXIT_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EXIT_X" target=_parent class=ISymbol>STYLE_EXIT_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_EXIT_Y" target=_parent class=ISymbol>STYLE_EXIT_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FILLCOLOR" target=_parent class=ISymbol>STYLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFOLDABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FOLDABLE" target=_parent class=ISymbol>STYLE_FOLDABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FONTCOLOR" target=_parent class=ISymbol>STYLE_FONTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FONTFAMILY" target=_parent class=ISymbol>STYLE_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FONTSIZE" target=_parent class=ISymbol>STYLE_FONTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTSTYLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_FONTSTYLE" target=_parent class=ISymbol>STYLE_FONTSTYLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGLASS><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_GLASS" target=_parent class=ISymbol>STYLE_GLASS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGRADIENT_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_GRADIENT_DIRECTION" target=_parent class=ISymbol>STYLE_GRADIENT_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGRADIENTCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_GRADIENTCOLOR" target=_parent class=ISymbol>STYLE_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undHORIZONTAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_HORIZONTAL" target=_parent class=ISymbol>STYLE_HORIZONTAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE" target=_parent class=ISymbol>STYLE_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undALIGN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_ALIGN" target=_parent class=ISymbol>STYLE_IMAGE_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undASPECT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_ASPECT" target=_parent class=ISymbol>STYLE_IMAGE_ASPECT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undBACKGROUND><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_BACKGROUND" target=_parent class=ISymbol>STYLE_IMAGE_BACKGROUND</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undBORDER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_BORDER" target=_parent class=ISymbol>STYLE_IMAGE_BORDER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undFLIPH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_FLIPH" target=_parent class=ISymbol>STYLE_IMAGE_FLIPH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undFLIPV><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_FLIPV" target=_parent class=ISymbol>STYLE_IMAGE_FLIPV</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undHEIGHT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_HEIGHT" target=_parent class=ISymbol>STYLE_IMAGE_HEIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undVERTICAL_undALIGN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_VERTICAL_ALIGN" target=_parent class=ISymbol>STYLE_IMAGE_VERTICAL_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_IMAGE_WIDTH" target=_parent class=ISymbol>STYLE_IMAGE_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_COLOR" target=_parent class=ISymbol>STYLE_INDICATOR_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_DIRECTION" target=_parent class=ISymbol>STYLE_INDICATOR_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undGRADIENTCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_GRADIENTCOLOR" target=_parent class=ISymbol>STYLE_INDICATOR_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undHEIGHT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_HEIGHT" target=_parent class=ISymbol>STYLE_INDICATOR_HEIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_IMAGE" target=_parent class=ISymbol>STYLE_INDICATOR_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSHAPE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_SHAPE" target=_parent class=ISymbol>STYLE_INDICATOR_SHAPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_SPACING" target=_parent class=ISymbol>STYLE_INDICATOR_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_STROKECOLOR" target=_parent class=ISymbol>STYLE_INDICATOR_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_INDICATOR_WIDTH" target=_parent class=ISymbol>STYLE_INDICATOR_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undBACKGROUNDCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LABEL_BACKGROUNDCOLOR" target=_parent class=ISymbol>STYLE_LABEL_BACKGROUNDCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undBORDERCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LABEL_BORDERCOLOR" target=_parent class=ISymbol>STYLE_LABEL_BORDERCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undPADDING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LABEL_PADDING" target=_parent class=ISymbol>STYLE_LABEL_PADDING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undPOSITION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LABEL_POSITION" target=_parent class=ISymbol>STYLE_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLOOP><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_LOOP" target=_parent class=ISymbol>STYLE_LOOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undMOVABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_MOVABLE" target=_parent class=ISymbol>STYLE_MOVABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undNOEDGESTYLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_NOEDGESTYLE" target=_parent class=ISymbol>STYLE_NOEDGESTYLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undNOLABEL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_NOLABEL" target=_parent class=ISymbol>STYLE_NOLABEL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_OPACITY" target=_parent class=ISymbol>STYLE_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undORTHOGONAL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ORTHOGONAL" target=_parent class=ISymbol>STYLE_ORTHOGONAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undOVERFLOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_OVERFLOW" target=_parent class=ISymbol>STYLE_OVERFLOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_PERIMETER" target=_parent class=ISymbol>STYLE_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPORT_undCONSTRAINT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_PORT_CONSTRAINT" target=_parent class=ISymbol>STYLE_PORT_CONSTRAINT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undRESIZABLE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_RESIZABLE" target=_parent class=ISymbol>STYLE_RESIZABLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROTATION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ROTATION" target=_parent class=ISymbol>STYLE_ROTATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUNDED><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ROUNDED" target=_parent class=ISymbol>STYLE_ROUNDED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUTING_undCENTER_undX><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ROUTING_CENTER_X" target=_parent class=ISymbol>STYLE_ROUTING_CENTER_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUTING_undCENTER_undY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_ROUTING_CENTER_Y" target=_parent class=ISymbol>STYLE_ROUTING_CENTER_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SEGMENT" target=_parent class=ISymbol>STYLE_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSEPARATORCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SEPARATORCOLOR" target=_parent class=ISymbol>STYLE_SEPARATORCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSHADOW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SHADOW" target=_parent class=ISymbol>STYLE_SHADOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSHAPE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SHAPE" target=_parent class=ISymbol>STYLE_SHAPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSMOOTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SMOOTH" target=_parent class=ISymbol>STYLE_SMOOTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSOURCE_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SOURCE_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_SOURCE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSOURCE_undPORT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SOURCE_PORT" target=_parent class=ISymbol>STYLE_SOURCE_PORT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING" target=_parent class=ISymbol>STYLE_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undBOTTOM><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING_BOTTOM" target=_parent class=ISymbol>STYLE_SPACING_BOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undLEFT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING_LEFT" target=_parent class=ISymbol>STYLE_SPACING_LEFT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undRIGHT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING_RIGHT" target=_parent class=ISymbol>STYLE_SPACING_RIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undTOP><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_SPACING_TOP" target=_parent class=ISymbol>STYLE_SPACING_TOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTARROW><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STARTARROW" target=_parent class=ISymbol>STYLE_STARTARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTFILL><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STARTFILL" target=_parent class=ISymbol>STYLE_STARTFILL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTSIZE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STARTSIZE" target=_parent class=ISymbol>STYLE_STARTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTENCIL_undFLIPH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STENCIL_FLIPH" target=_parent class=ISymbol>STYLE_STENCIL_FLIPH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTENCIL_undFLIPV><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STENCIL_FLIPV" target=_parent class=ISymbol>STYLE_STENCIL_FLIPV</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STROKECOLOR" target=_parent class=ISymbol>STYLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_STROKEWIDTH" target=_parent class=ISymbol>STYLE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTARGET_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_TARGET_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_TARGET_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTARGET_undPORT><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_TARGET_PORT" target=_parent class=ISymbol>STYLE_TARGET_PORT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTEXT_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_TEXT_OPACITY" target=_parent class=ISymbol>STYLE_TEXT_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undVERTICAL_undALIGN><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_VERTICAL_ALIGN" target=_parent class=ISymbol>STYLE_VERTICAL_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undVERTICAL_undLABEL_undPOSITION><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_VERTICAL_LABEL_POSITION" target=_parent class=ISymbol>STYLE_VERTICAL_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undWHITE_undSPACE><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.STYLE_WHITE_SPACE" target=_parent class=ISymbol>STYLE_WHITE_SPACE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_stylesheet><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.stylesheet" target=_parent class=ISymbol>stylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_submenuImage><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.submenuImage" target=_parent class=ISymbol>submenuImage</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_SUSPEND><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.SUSPEND" target=_parent class=ISymbol>SUSPEND</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_suspended><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.suspended" target=_parent class=ISymbol>suspended</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_SVG_undSTROKE_undTOLERANCE><div class=IEntry><a href="../files/shape/mxShape-js.html#mxShape.SVG_STROKE_TOLERANCE" target=_parent class=ISymbol>SVG_STROKE_TOLERANCE</a>, <span class=IParent>mxShape</span></div></div><div class=SRResult id=SR_swimlaneIndicatorColorAttribute><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.swimlaneIndicatorColorAttribute" target=_parent class=ISymbol>swimlaneIndicatorColorAttribute</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_swimlaneNesting><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.swimlaneNesting" target=_parent class=ISymbol>swimlaneNesting</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_swimlaneRequired><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.swimlaneRequired" target=_parent class=ISymbol>swimlaneRequired</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_swimlaneSelectionEnabled><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.swimlaneSelectionEnabled" target=_parent class=ISymbol>swimlaneSelectionEnabled</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_swimlaneSpacing><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.swimlaneSpacing" target=_parent class=ISymbol>swimlaneSpacing</a>, <span class=IParent>mxEditor</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesT.html b/docs/js-api/search/VariablesT.html
    new file mode 100644
    index 000000000..3e6aa35a1
    --- /dev/null
    +++ b/docs/js-api/search/VariablesT.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_table><div class=IEntry><a href="../files/util/mxForm-js.html#mxForm.table" target=_parent class=ISymbol>table</a>, <span class=IParent>mxForm</span></div></div><div class=SRResult id=SR_tapAndHoldDelay><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldDelay" target=_parent class=ISymbol>tapAndHoldDelay</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_tapAndHoldEnabled><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldEnabled" target=_parent class=ISymbol>tapAndHoldEnabled</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_tapAndHoldInProgress><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldInProgress" target=_parent class=ISymbol>tapAndHoldInProgress</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_tapAndHoldTolerance><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldTolerance" target=_parent class=ISymbol>tapAndHoldTolerance</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_tapAndHoldValid><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.tapAndHoldValid" target=_parent class=ISymbol>tapAndHoldValid</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_target><div class=IEntry><a href="javascript:searchResults.Toggle('SR_target')" class=ISymbol>target</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.target" target=_parent class=IParent>mxCell</a><a href="../files/layout/hierarchical/model/mxGraphHierarchyEdge-js.html#mxGraphHierarchyEdge.target" target=_parent class=IParent>mxGraphHierarchyEdge</a><a href="../files/handler/mxKeyHandler-js.html#mxKeyHandler.target" target=_parent class=IParent>mxKeyHandler</a></div></div></div><div class=SRResult id=SR_TARGET_undHIGHLIGHT_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.TARGET_HIGHLIGHT_COLOR" target=_parent class=ISymbol>TARGET_HIGHLIGHT_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_targetConnectImage><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.targetConnectImage" target=_parent class=ISymbol>targetConnectImage</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_targetPoint><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.targetPoint" target=_parent class=ISymbol>targetPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_tasks><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.tasks" target=_parent class=ISymbol>tasks</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_tasksResource><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.tasksResource" target=_parent class=ISymbol>tasksResource</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_tasksTop><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.tasksTop" target=_parent class=ISymbol>tasksTop</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_tasksWindowImage><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.tasksWindowImage" target=_parent class=ISymbol>tasksWindowImage</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_temp><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.temp" target=_parent class=ISymbol>temp</a>, <span class=IParent>mxGraphAbstractHierarchyCell</span></div></div><div class=SRResult id=SR_temperature><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.temperature" target=_parent class=ISymbol>temperature</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_template><div class=IEntry><a href="../files/io/mxObjectCodec-js.html#mxObjectCodec.template" target=_parent class=ISymbol>template</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_templates><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.templates" target=_parent class=ISymbol>templates</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_terminalDistance><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.terminalDistance" target=_parent class=ISymbol>terminalDistance</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_text><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.text" target=_parent class=ISymbol>text</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_textarea><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.textarea" target=_parent class=ISymbol>textarea</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_textEnabled><div class=IEntry><a href="javascript:searchResults.Toggle('SR_textEnabled')" class=ISymbol>textEnabled</a><div class=ISubIndex><a href="../files/util/mxSvgCanvas2D-js.html#mxSvgCanvas2D.textEnabled" target=_parent class=IParent>mxSvgCanvas2D</a><a href="../files/util/mxXmlCanvas2D-js.html#mxXmlCanvas2D.textEnabled" target=_parent class=IParent>mxXmlCanvas2D</a></div></div></div><div class=SRResult id=SR_textNode><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.textNode" target=_parent class=ISymbol>textNode</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_thread><div class=IEntry><a href="../files/util/mxAnimation-js.html#mxAnimation.thread" target=_parent class=ISymbol>thread</a>, <span class=IParent>mxAnimation</span></div></div><div class=SRResult id=SR_tightenToSource><div class=IEntry><a href="javascript:searchResults.Toggle('SR_tightenToSource')" class=ISymbol>tightenToSource</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.tightenToSource" target=_parent class=IParent>mxGraphHierarchyModel</a><a href="../files/layout/hierarchical/mxHierarchicalLayout-js.html#mxHierarchicalLayout.tightenToSource" target=_parent class=IParent>mxHierarchicalLayout</a></div></div></div><div class=SRResult id=SR_title><div class=IEntry><a href="javascript:searchResults.Toggle('SR_title')" class=ISymbol>title</a><div class=ISubIndex><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.title" target=_parent class=IParent>mxPrintPreview</a><a href="../files/util/mxWindow-js.html#mxWindow.title" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_TOGGLE_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.TOGGLE_CELLS" target=_parent class=ISymbol>TOGGLE_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_tolerance><div class=IEntry><a href="javascript:searchResults.Toggle('SR_tolerance')" class=ISymbol>tolerance</a><div class=ISubIndex><a href="../files/handler/mxEdgeHandler-js.html#mxEdgeHandler.tolerance" target=_parent class=IParent>mxEdgeHandler</a><a href="../files/view/mxGraph-js.html#mxGraph.tolerance" target=_parent class=IParent>mxGraph</a><a href="../files/handler/mxVertexHandler-js.html#mxVertexHandler.tolerance" target=_parent class=IParent>mxVertexHandler</a></div></div></div><div class=SRResult id=SR_toolbar><div class=IEntry><a href="javascript:searchResults.Toggle('SR_toolbar')" class=ISymbol>toolbar</a><div class=ISubIndex><a href="../files/editor/mxDefaultToolbar-js.html#mxDefaultToolbar.toolbar" target=_parent class=IParent>mxDefaultToolbar</a><a href="../files/editor/mxEditor-js.html#mxEditor.toolbar" target=_parent class=IParent>mxEditor</a></div></div></div><div class=SRResult id=SR_tooltip><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.tooltip" target=_parent class=ISymbol>tooltip</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_TOOLTIP_undVERTICAL_undOFFSET><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.TOOLTIP_VERTICAL_OFFSET" target=_parent class=ISymbol>TOOLTIP_VERTICAL_OFFSET</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_TRACE><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.TRACE" target=_parent class=ISymbol>TRACE</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_translate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_translate')" class=ISymbol>translate</a><div class=ISubIndex><a href="../files/view/mxGraphView-js.html#mxGraphView.translate" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxPath-js.html#mxPath.translate" target=_parent class=IParent>mxPath</a></div></div></div><div class=SRResult id=SR2_TRANSLATE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.TRANSLATE" target=_parent class=ISymbol>TRANSLATE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_TRANSLATE_undCONTROL_undPOINTS><div class=IEntry><a href="../files/model/mxGeometry-js.html#mxGeometry.TRANSLATE_CONTROL_POINTS" target=_parent class=ISymbol>TRANSLATE_CONTROL_POINTS</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_trigger><div class=IEntry><a href="../files/view/mxCellEditor-js.html#mxCellEditor.trigger" target=_parent class=ISymbol>trigger</a>, <span class=IParent>mxCellEditor</span></div></div><div class=SRResult id=SR_type><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.type" target=_parent class=ISymbol>type</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_typeError><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.typeError" target=_parent class=ISymbol>typeError</a>, <span class=IParent>mxMultiplicity</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesU.html b/docs/js-api/search/VariablesU.html
    new file mode 100644
    index 000000000..97f93a5e9
    --- /dev/null
    +++ b/docs/js-api/search/VariablesU.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_UNDO><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.UNDO" target=_parent class=ISymbol>UNDO</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_undoManager><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.undoManager" target=_parent class=ISymbol>undoManager</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_undone><div class=IEntry><a href="../files/util/mxUndoableEdit-js.html#mxUndoableEdit.undone" target=_parent class=ISymbol>undone</a>, <span class=IParent>mxUndoableEdit</span></div></div><div class=SRResult id=SR_UNGROUP_undCELLS><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.UNGROUP_CELLS" target=_parent class=ISymbol>UNGROUP_CELLS</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_UP><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.UP" target=_parent class=ISymbol>UP</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_UPDATE_undCELL_undSIZE><div class=IEntry><a href="../files/util/mxEvent-js.html#mxEvent.UPDATE_CELL_SIZE" target=_parent class=ISymbol>UPDATE_CELL_SIZE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_updateCursor><div class=IEntry><a href="../files/handler/mxGraphHandler-js.html#mxGraphHandler.updateCursor" target=_parent class=ISymbol>updateCursor</a>, <span class=IParent>mxGraphHandler</span></div></div><div class=SRResult id=SR_updateDefaultMode><div class=IEntry><a href="../files/util/mxToolbar-js.html#mxToolbar.updateDefaultMode" target=_parent class=ISymbol>updateDefaultMode</a>, <span class=IParent>mxToolbar</span></div></div><div class=SRResult id=SR_updateHandler><div class=IEntry><a href="../files/view/mxLayoutManager-js.html#mxLayoutManager.updateHandler" target=_parent class=ISymbol>updateHandler</a>, <span class=IParent>mxLayoutManager</span></div></div><div class=SRResult id=SR_updateLevel><div class=IEntry><a href="../files/model/mxGraphModel-js.html#mxGraphModel.updateLevel" target=_parent class=ISymbol>updateLevel</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateOnPan><div class=IEntry><a href="../files/view/mxOutline-js.html#mxOutline.updateOnPan" target=_parent class=ISymbol>updateOnPan</a>, <span class=IParent>mxOutline</span></div></div><div class=SRResult id=SR_updateStyle><div class=IEntry><a href="../files/view/mxGraphView-js.html#mxGraphView.updateStyle" target=_parent class=ISymbol>updateStyle</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updatingSelectionResource><div class=IEntry><a href="../files/view/mxGraphSelectionModel-js.html#mxGraphSelectionModel.updatingSelectionResource" target=_parent class=ISymbol>updatingSelectionResource</a>, <span class=IParent>mxGraphSelectionModel</span></div></div><div class=SRResult id=SR_url><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.url" target=_parent class=ISymbol>url</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_urlHelp><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.urlHelp" target=_parent class=ISymbol>urlHelp</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_urlImage><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.urlImage" target=_parent class=ISymbol>urlImage</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_urlInit><div class=IEntry><a href="javascript:searchResults.Toggle('SR_urlInit')" class=ISymbol>urlInit</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.urlInit" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSession-js.html#mxSession.urlInit" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_urlNotify><div class=IEntry><a href="javascript:searchResults.Toggle('SR_urlNotify')" class=ISymbol>urlNotify</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.urlNotify" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSession-js.html#mxSession.urlNotify" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_urlPoll><div class=IEntry><a href="javascript:searchResults.Toggle('SR_urlPoll')" class=ISymbol>urlPoll</a><div class=ISubIndex><a href="../files/editor/mxEditor-js.html#mxEditor.urlPoll" target=_parent class=IParent>mxEditor</a><a href="../files/util/mxSession-js.html#mxSession.urlPoll" target=_parent class=IParent>mxSession</a></div></div></div><div class=SRResult id=SR_urlPost><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.urlPost" target=_parent class=ISymbol>urlPost</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_useBoundingBox><div class=IEntry><a href="../files/layout/mxGraphLayout-js.html#mxGraphLayout.useBoundingBox" target=_parent class=ISymbol>useBoundingBox</a>, <span class=IParent>mxGraphLayout</span></div></div><div class=SRResult id=SR_useGrid><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.useGrid" target=_parent class=ISymbol>useGrid</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_useInputOrigin><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.useInputOrigin" target=_parent class=ISymbol>useInputOrigin</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_useLeftButtonForPanning><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.useLeftButtonForPanning" target=_parent class=ISymbol>useLeftButtonForPanning</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_useLeftButtonForPopup><div class=IEntry><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.useLeftButtonForPopup" target=_parent class=ISymbol>useLeftButtonForPopup</a>, <span class=IParent>mxPopupMenu</span></div></div><div class=SRResult id=SR_usePopupTrigger><div class=IEntry><a href="../files/handler/mxPanningHandler-js.html#mxPanningHandler.usePopupTrigger" target=_parent class=ISymbol>usePopupTrigger</a>, <span class=IParent>mxPanningHandler</span></div></div><div class=SRResult id=SR_username><div class=IEntry><a href="../files/util/mxXmlRequest-js.html#mxXmlRequest.username" target=_parent class=ISymbol>username</a>, <span class=IParent>mxXmlRequest</span></div></div><div class=SRResult id=SR_useScrollbarsForPanning><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.useScrollbarsForPanning" target=_parent class=ISymbol>useScrollbarsForPanning</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesV.html b/docs/js-api/search/VariablesV.html
    new file mode 100644
    index 000000000..4a35fee1d
    --- /dev/null
    +++ b/docs/js-api/search/VariablesV.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_VALID_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.VALID_COLOR" target=_parent class=ISymbol>VALID_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_validating><div class=IEntry><a href="../files/editor/mxEditor-js.html#mxEditor.validating" target=_parent class=ISymbol>validating</a>, <span class=IParent>mxEditor</span></div></div><div class=SRResult id=SR_validColor><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.validColor" target=_parent class=ISymbol>validColor</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_validNeighbors><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.validNeighbors" target=_parent class=ISymbol>validNeighbors</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_validNeighborsAllowed><div class=IEntry><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.validNeighborsAllowed" target=_parent class=ISymbol>validNeighborsAllowed</a>, <span class=IParent>mxMultiplicity</span></div></div><div class=SRResult id=SR_validState><div class=IEntry><a href="../files/handler/mxCellMarker-js.html#mxCellMarker.validState" target=_parent class=ISymbol>validState</a>, <span class=IParent>mxCellMarker</span></div></div><div class=SRResult id=SR_value><div class=IEntry><a href="javascript:searchResults.Toggle('SR_value')" class=ISymbol>value</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.value" target=_parent class=IParent>mxCell</a><a href="../files/view/mxMultiplicity-js.html#mxMultiplicity.value" target=_parent class=IParent>mxMultiplicity</a></div></div></div><div class=SRResult id=SR_values><div class=IEntry><a href="../files/view/mxStyleRegistry-js.html#mxStyleRegistry.values" target=_parent class=ISymbol>values</a>, <span class=IParent>mxStyleRegistry</span></div></div><div class=SRResult id=SR_VERSION><div class=IEntry><a href="../files/mxClient-js.html#mxClient.VERSION" target=_parent class=ISymbol>VERSION</a>, <span class=IParent>mxClient</span></div></div><div class=SRResult id=SR_vertex><div class=IEntry><a href="../files/model/mxCell-js.html#mxCell.vertex" target=_parent class=ISymbol>vertex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_VERTEX_undSELECTION_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.VERTEX_SELECTION_COLOR" target=_parent class=ISymbol>VERTEX_SELECTION_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_VERTEX_undSELECTION_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-js.html#mxConstants.VERTEX_SELECTION_STROKEWIDTH" target=_parent class=ISymbol>VERTEX_SELECTION_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_vertexArray><div class=IEntry><a href="../files/layout/mxFastOrganicLayout-js.html#mxFastOrganicLayout.vertexArray" target=_parent class=ISymbol>vertexArray</a>, <span class=IParent>mxFastOrganicLayout</span></div></div><div class=SRResult id=SR_vertexLabelsMovable><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.vertexLabelsMovable" target=_parent class=ISymbol>vertexLabelsMovable</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_vertexMapper><div class=IEntry><a href="../files/layout/hierarchical/model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel.vertexMapper" target=_parent class=ISymbol>vertexMapper</a>, <span class=IParent>mxGraphHierarchyModel</span></div></div><div class=SRResult id=SR_vertical><div class=IEntry><a href="../files/util/mxGuide-js.html#mxGuide.vertical" target=_parent class=ISymbol>vertical</a>, <span class=IParent>mxGuide</span></div></div><div class=SRResult id=SR_verticalAlign><div class=IEntry><a href="../files/view/mxCellOverlay-js.html#mxCellOverlay.verticalAlign" target=_parent class=ISymbol>verticalAlign</a>, <span class=IParent>mxCellOverlay</span></div></div><div class=SRResult id=SR_verticalTextDegree><div class=IEntry><a href="../files/shape/mxText-js.html#mxText.verticalTextDegree" target=_parent class=ISymbol>verticalTextDegree</a>, <span class=IParent>mxText</span></div></div><div class=SRResult id=SR_view><div class=IEntry><a href="javascript:searchResults.Toggle('SR_view')" class=ISymbol>view</a><div class=ISubIndex><a href="../files/view/mxCellState-js.html#mxCellState.view" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraph-js.html#mxGraph.view" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxTemporaryCellStates-js.html#mxTemporaryCellStates.view" target=_parent class=IParent>mxTemporaryCellStates</a></div></div></div><div class=SRResult id=SR_visible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_visible')" class=ISymbol>visible</a><div class=ISubIndex><a href="../files/model/mxCell-js.html#mxCell.visible" target=_parent class=IParent>mxCell</a><a href="../files/util/mxWindow-js.html#mxWindow.visible" target=_parent class=IParent>mxWindow</a></div></div></div><div class=SRResult id=SR_visibleSourceState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.visibleSourceState" target=_parent class=ISymbol>visibleSourceState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_visibleTargetState><div class=IEntry><a href="../files/view/mxCellState-js.html#mxCellState.visibleTargetState" target=_parent class=ISymbol>visibleTargetState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_visited><div class=IEntry><a href="javascript:searchResults.Toggle('SR_visited')" class=ISymbol>visited</a>, <span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.visited" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.visited" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div><div class=SRResult id=SR_vmlNodes><div class=IEntry><a href="javascript:searchResults.Toggle('SR_vmlNodes')" class=ISymbol>vmlNodes</a><div class=ISubIndex><a href="../files/shape/mxConnector-js.html#mxConnector.vmlNodes" target=_parent class=IParent>mxConnector</a><a href="../files/shape/mxCylinder-js.html#mxCylinder.vmlNodes" target=_parent class=IParent>mxCylinder</a><a href="../files/shape/mxDoubleEllipse-js.html#mxDoubleEllipse.vmlNodes" target=_parent class=IParent>mxDoubleEllipse</a><a href="../files/shape/mxLabel-js.html#mxLabel.vmlNodes" target=_parent class=IParent>mxLabel</a><a href="../files/shape/mxLine-js.html#mxLine.vmlNodes" target=_parent class=IParent>mxLine</a><a href="../files/shape/mxShape-js.html#mxShape.vmlNodes" target=_parent class=IParent>mxShape</a><a href="../files/shape/mxSwimlane-js.html#mxSwimlane.vmlNodes" target=_parent class=IParent>mxSwimlane</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesW.html b/docs/js-api/search/VariablesW.html
    new file mode 100644
    index 000000000..0a04e4587
    --- /dev/null
    +++ b/docs/js-api/search/VariablesW.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_w0><div class=IEntry><a href="../files/shape/mxStencil-js.html#mxStencil.w0" target=_parent class=ISymbol>w0</a>, <span class=IParent>mxStencil</span></div></div><div class=SRResult id=SR_WARN><div class=IEntry><a href="../files/util/mxLog-js.html#mxLog.WARN" target=_parent class=ISymbol>WARN</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_warningImage><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.warningImage" target=_parent class=ISymbol>warningImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_waypointsEnabled><div class=IEntry><a href="../files/handler/mxConnectionHandler-js.html#mxConnectionHandler.waypointsEnabled" target=_parent class=ISymbol>waypointsEnabled</a>, <span class=IParent>mxConnectionHandler</span></div></div><div class=SRResult id=SR_weightedValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_weightedValue')" class=ISymbol>weightedValue</a>, <span class=IParent>WeightedCellSorter</span><div class=ISubIndex><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#WeightedCellSorter.weightedValue" target=_parent class=IFile>layout/<wbr>hierarchical/<wbr>stage/<wbr>mxCoordinateAssignment.js</a><a href="../files/layout/mxCompactTreeLayout-js.html#WeightedCellSorter.weightedValue" target=_parent class=IFile>layout/<wbr>mxCompactTreeLayout.js</a></div></div></div><div class=SRResult id=SR_widestRank><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.widestRank" target=_parent class=ISymbol>widestRank</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_widestRankValue><div class=IEntry><a href="../files/layout/hierarchical/stage/mxCoordinateAssignment-js.html#mxCoordinateAssignment.widestRankValue" target=_parent class=ISymbol>widestRankValue</a>, <span class=IParent>mxCoordinateAssignment</span></div></div><div class=SRResult id=SR_width><div class=IEntry><a href="javascript:searchResults.Toggle('SR_width')" class=ISymbol>width</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.width" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxImage-js.html#mxImage.width" target=_parent class=IParent>mxImage</a><a href="../files/util/mxRectangle-js.html#mxRectangle.width" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_wnd><div class=IEntry><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.wnd" target=_parent class=ISymbol>wnd</a>, <span class=IParent>mxPrintPreview</span></div></div><div class=SRResult id=SR_wrap><div class=IEntry><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.wrap" target=_parent class=ISymbol>wrap</a>, <span class=IParent>mxStackLayout</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesX.html b/docs/js-api/search/VariablesX.html
    new file mode 100644
    index 000000000..f28e1b503
    --- /dev/null
    +++ b/docs/js-api/search/VariablesX.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x')" class=ISymbol>x</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.x" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxPoint-js.html#mxPoint.x" target=_parent class=IParent>mxPoint</a></div></div></div><div class=SRResult id=SR_x0><div class=IEntry><a href="javascript:searchResults.Toggle('SR_x0')" class=ISymbol>x0</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.x0" target=_parent class=IParent>mxCircleLayout</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.x0" target=_parent class=IParent>mxStackLayout</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesY.html b/docs/js-api/search/VariablesY.html
    new file mode 100644
    index 000000000..53b8cf703
    --- /dev/null
    +++ b/docs/js-api/search/VariablesY.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y')" class=ISymbol>y</a><div class=ISubIndex><a href="../files/layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html#mxGraphAbstractHierarchyCell.y" target=_parent class=IParent>mxGraphAbstractHierarchyCell</a><a href="../files/util/mxPoint-js.html#mxPoint.y" target=_parent class=IParent>mxPoint</a></div></div></div><div class=SRResult id=SR_y0><div class=IEntry><a href="javascript:searchResults.Toggle('SR_y0')" class=ISymbol>y0</a><div class=ISubIndex><a href="../files/layout/mxCircleLayout-js.html#mxCircleLayout.y0" target=_parent class=IParent>mxCircleLayout</a><a href="../files/view/mxPrintPreview-js.html#mxPrintPreview.y0" target=_parent class=IParent>mxPrintPreview</a><a href="../files/layout/mxStackLayout-js.html#mxStackLayout.y0" target=_parent class=IParent>mxStackLayout</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/search/VariablesZ.html b/docs/js-api/search/VariablesZ.html
    new file mode 100644
    index 000000000..de78f2521
    --- /dev/null
    +++ b/docs/js-api/search/VariablesZ.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_zIndex><div class=IEntry><a href="javascript:searchResults.Toggle('SR_zIndex')" class=ISymbol>zIndex</a><div class=ISubIndex><a href="../files/util/mxPopupMenu-js.html#mxPopupMenu.zIndex" target=_parent class=IParent>mxPopupMenu</a><a href="../files/handler/mxTooltipHandler-js.html#mxTooltipHandler.zIndex" target=_parent class=IParent>mxTooltipHandler</a></div></div></div><div class=SRResult id=SR_zoomFactor><div class=IEntry><a href="../files/view/mxGraph-js.html#mxGraph.zoomFactor" target=_parent class=ISymbol>zoomFactor</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/js-api/styles/main.css b/docs/js-api/styles/main.css
    new file mode 100644
    index 000000000..2c0881938
    --- /dev/null
    +++ b/docs/js-api/styles/main.css
    @@ -0,0 +1,828 @@
    +/*
    +   IMPORTANT: If you're editing this file in the output directory of one of
    +   your projects, your changes will be overwritten the next time you run
    +   Natural Docs.  Instead, copy this file to your project directory, make your
    +   changes, and you can use it with -s.  Even better would be to make a CSS
    +   file in your project directory with only your changes, which you can then
    +   use with -s [original style] [your changes].
    +
    +   On the other hand, if you're editing this file in the Natural Docs styles
    +   directory, the changes will automatically be applied to all your projects
    +   that use this style the next time Natural Docs is run on them.
    +
    +   This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure.
    +   Natural Docs is licensed under version 3 of the GNU Affero General Public
    +   License (AGPL).  Refer to License.txt for the complete details.
    +
    +   This file may be distributed with documentation files generated by Natural Docs.
    +   Such documentation is not covered by Natural Docs' copyright and licensing,
    +   and may have its own copyright and distribution terms as decided by its author.
    +*/
    +
    +body {
    +    font: 10pt Verdana, Arial, sans-serif;
    +    color: #000000;
    +    margin: 0; padding: 0;
    +    }
    +
    +.ContentPage,
    +.IndexPage,
    +.FramedMenuPage {
    +    background-color: #E8E8E8;
    +    }
    +.FramedContentPage,
    +.FramedIndexPage,
    +.FramedSearchResultsPage,
    +.PopupSearchResultsPage {
    +    background-color: #FFFFFF;
    +    }
    +
    +
    +a:link,
    +a:visited { color: #900000; text-decoration: none }
    +a:hover { color: #900000; text-decoration: underline }
    +a:active { color: #FF0000; text-decoration: underline }
    +
    +td {
    +    vertical-align: top }
    +
    +img { border: 0;  }
    +
    +
    +/*
    +    Comment out this line to use web-style paragraphs (blank line between
    +    paragraphs, no indent) instead of print-style paragraphs (no blank line,
    +    indented.)
    +*/
    +p {
    +    text-indent: 5ex; margin: 0 }
    +
    +
    +/*  Opera doesn't break with just wbr, but will if you add this.  */
    +.Opera wbr:after {
    +	content: "\00200B";
    +	}
    +
    +
    +/*  Blockquotes are used as containers for things that may need to scroll.  */
    +blockquote {
    +    padding: 0;
    +    margin: 0;
    +    overflow: auto;
    +    }
    +
    +
    +.Firefox1 blockquote {
    +    padding-bottom: .5em;
    +    }
    +
    +/*  Turn off scrolling when printing.  */
    +@media print {
    +    blockquote {
    +        overflow: visible;
    +        }
    +    .IE blockquote {
    +        width: auto;
    +        }
    +    }
    +
    +
    +
    +#Menu {
    +    font-size: 9pt;
    +    padding: 10px 0 0 0;
    +    }
    +.ContentPage #Menu,
    +.IndexPage #Menu {
    +    position: absolute;
    +    top: 0;
    +    left: 0;
    +    width: 31ex;
    +    overflow: hidden;
    +    }
    +.ContentPage .Firefox #Menu,
    +.IndexPage .Firefox #Menu {
    +    width: 27ex;
    +    }
    +
    +
    +    .MTitle {
    +        font-size: 16pt; font-weight: bold; font-variant: small-caps;
    +        text-align: center;
    +        padding: 5px 10px 15px 10px;
    +        border-bottom: 1px dotted #000000;
    +        margin-bottom: 15px }
    +
    +    .MSubTitle {
    +        font-size: 9pt; font-weight: normal; font-variant: normal;
    +        margin-top: 1ex; margin-bottom: 5px }
    +
    +
    +    .MEntry a:link,
    +    .MEntry a:hover,
    +    .MEntry a:visited { color: #606060; margin-right: 0 }
    +    .MEntry a:active { color: #A00000; margin-right: 0 }
    +
    +
    +    .MGroup {
    +        font-variant: small-caps; font-weight: bold;
    +        margin: 1em 0 1em 10px;
    +        }
    +
    +    .MGroupContent {
    +        font-variant: normal; font-weight: normal }
    +
    +    .MGroup a:link,
    +    .MGroup a:hover,
    +    .MGroup a:visited { color: #545454; margin-right: 10px }
    +    .MGroup a:active { color: #A00000; margin-right: 10px }
    +
    +
    +    .MFile,
    +    .MText,
    +    .MLink,
    +    .MIndex {
    +        padding: 1px 17px 2px 10px;
    +        margin: .25em 0 .25em 0;
    +        }
    +
    +    .MText {
    +        font-size: 8pt; font-style: italic }
    +
    +    .MLink {
    +        font-style: italic }
    +
    +    #MSelected {
    +        color: #000000; background-color: #FFFFFF;
    +        /*  Replace padding with border.  */
    +        padding: 0 10px 0 10px;
    +        border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
    +        margin-right: 5px;
    +        }
    +
    +    /*  Close off the left side when its in a group.  */
    +    .MGroup #MSelected {
    +        padding-left: 9px; border-left-width: 1px }
    +
    +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
    +    .Firefox #MSelected {
    +        -moz-border-radius-topright: 10px;
    +        -moz-border-radius-bottomright: 10px }
    +    .Firefox .MGroup #MSelected {
    +        -moz-border-radius-topleft: 10px;
    +        -moz-border-radius-bottomleft: 10px }
    +
    +
    +    #MSearchPanel {
    +        padding: 0px 6px;
    +        margin: .25em 0;
    +        }
    +
    +
    +    #MSearchField {
    +        font: italic 9pt Verdana, sans-serif;
    +        color: #606060;
    +        background-color: #E8E8E8;
    +        border: none;
    +        padding: 2px 4px;
    +        width: 100%;
    +        }
    +    /* Only Opera gets it right. */
    +    .Firefox #MSearchField,
    +    .IE #MSearchField,
    +    .Safari #MSearchField {
    +        width: 94%;
    +        }
    +    .Opera9 #MSearchField,
    +    .Konqueror #MSearchField {
    +        width: 97%;
    +        }
    +    .FramedMenuPage .Firefox #MSearchField,
    +    .FramedMenuPage .Safari #MSearchField,
    +    .FramedMenuPage .Konqueror #MSearchField {
    +        width: 98%;
    +        }
    +
    +    /* Firefox doesn't do this right in frames without #MSearchPanel added on.
    +        It's presence doesn't hurt anything other browsers. */
    +    #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
    +        background-color: #FFFFFF;
    +        border: 1px solid #C0C0C0;
    +        padding: 1px 3px;
    +        }
    +    .MSearchPanelActive #MSearchField {
    +        background-color: #FFFFFF;
    +        border: 1px solid #C0C0C0;
    +        font-style: normal;
    +        padding: 1px 3px;
    +        }
    +
    +    #MSearchType {
    +        visibility: hidden;
    +        font: 8pt Verdana, sans-serif;
    +        width: 98%;
    +        padding: 0;
    +        border: 1px solid #C0C0C0;
    +        }
    +    .MSearchPanelActive #MSearchType,
    +    /*  As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
    +    #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
    +    #MSearchType:focus {
    +        visibility: visible;
    +        color: #606060;
    +        }
    +    #MSearchType option#MSearchEverything {
    +        font-weight: bold;
    +        }
    +
    +    .Opera8 .MSearchPanelInactive:hover,
    +    .Opera8 .MSearchPanelActive {
    +        margin-left: -1px;
    +        }
    +
    +
    +    iframe#MSearchResults {
    +        width: 60ex;
    +        height: 15em;
    +        }
    +    #MSearchResultsWindow {
    +        display: none;
    +        position: absolute;
    +        left: 0; top: 0;
    +        border: 1px solid #000000;
    +        background-color: #E8E8E8;
    +        }
    +    #MSearchResultsWindowClose {
    +        font-weight: bold;
    +        font-size: 8pt;
    +        display: block;
    +        padding: 2px 5px;
    +        }
    +    #MSearchResultsWindowClose:link,
    +    #MSearchResultsWindowClose:visited {
    +        color: #000000;
    +        text-decoration: none;
    +        }
    +    #MSearchResultsWindowClose:active,
    +    #MSearchResultsWindowClose:hover {
    +        color: #800000;
    +        text-decoration: none;
    +        background-color: #F4F4F4;
    +        }
    +
    +
    +
    +
    +#Content {
    +    padding-bottom: 15px;
    +    }
    +
    +.ContentPage #Content {
    +    border-width: 0 0 1px 1px;
    +    border-style: solid;
    +    border-color: #000000;
    +    background-color: #FFFFFF;
    +    font-size: 9pt;  /* To make 31ex match the menu's 31ex. */
    +    margin-left: 31ex;
    +    }
    +.ContentPage .Firefox #Content {
    +    margin-left: 27ex;
    +    }
    +
    +
    +
    +    .CTopic {
    +        font-size: 10pt;
    +        margin-bottom: 3em;
    +        }
    +
    +
    +    .CTitle {
    +        font-size: 12pt; font-weight: bold;
    +        border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
    +        margin: 0 15px .5em 15px }
    +
    +    .CGroup .CTitle {
    +        font-size: 16pt; font-variant: small-caps;
    +        padding-left: 15px; padding-right: 15px;
    +        border-width: 0 0 2px 0; border-color: #000000;
    +        margin-left: 0; margin-right: 0 }
    +
    +    .CClass .CTitle,
    +    .CInterface .CTitle,
    +    .CDatabase .CTitle,
    +    .CDatabaseTable .CTitle,
    +    .CSection .CTitle {
    +        font-size: 18pt;
    +        color: #FFFFFF; background-color: #A0A0A0;
    +        padding: 10px 15px 10px 15px;
    +        border-width: 2px 0; border-color: #000000;
    +        margin-left: 0; margin-right: 0 }
    +
    +    #MainTopic .CTitle {
    +        font-size: 20pt;
    +        color: #FFFFFF; background-color: #7070C0;
    +        padding: 10px 15px 10px 15px;
    +        border-width: 0 0 3px 0; border-color: #000000;
    +        margin-left: 0; margin-right: 0 }
    +
    +    .CBody {
    +        margin-left: 15px; margin-right: 15px }
    +
    +
    +    .CToolTip {
    +        position: absolute; visibility: hidden;
    +        left: 0; top: 0;
    +        background-color: #FFFFE0;
    +        padding: 5px;
    +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
    +        font-size: 8pt;
    +        }
    +
    +    .Opera .CToolTip {
    +        max-width: 98%;
    +        }
    +
    +    /*  Scrollbars would be useless.  */
    +    .CToolTip blockquote {
    +        overflow: hidden;
    +        }
    +    .IE6 .CToolTip blockquote {
    +        overflow: visible;
    +        }
    +
    +    .CHeading {
    +        font-weight: bold; font-size: 10pt;
    +        margin: 1.5em 0 .5em 0;
    +        }
    +
    +    .CBody pre {
    +        font: 10pt "Courier New", Courier, monospace;
    +	    background-color: #FCFCFC;
    +	    margin: 1em 35px;
    +	    padding: 10px 15px 10px 10px;
    +	    border-color: #E0E0E0 #E0E0E0 #E0E0E0 #E4E4E4;
    +	    border-width: 1px 1px 1px 6px;
    +	    border-style: dashed dashed dashed solid;
    +        }
    +
    +    .CBody ul {
    +        /*  I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
    +             Reapply it here as padding.  */
    +        padding-left: 15px; padding-right: 15px;
    +        margin: .5em 5ex .5em 5ex;
    +        }
    +
    +    .CDescriptionList {
    +        margin: .5em 5ex 0 5ex }
    +
    +        .CDLEntry {
    +            font: 10pt "Courier New", Courier, monospace; color: #808080;
    +            padding-bottom: .25em;
    +            white-space: nowrap }
    +
    +        .CDLDescription {
    +            font-size: 10pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
    +            padding-bottom: .5em; padding-left: 5ex }
    +
    +
    +    .CTopic img {
    +        text-align: center;
    +        display: block;
    +        margin: 1em auto;
    +        }
    +    .CImageCaption {
    +        font-variant: small-caps;
    +        font-size: 8pt;
    +        color: #808080;
    +        text-align: center;
    +        position: relative;
    +        top: 1em;
    +        }
    +
    +    .CImageLink {
    +        color: #808080;
    +        font-style: italic;
    +        }
    +    a.CImageLink:link,
    +    a.CImageLink:visited,
    +    a.CImageLink:hover { color: #808080 }
    +
    +
    +
    +
    +
    +.Prototype {
    +    font: 10pt "Courier New", Courier, monospace;
    +    padding: 5px 3ex;
    +    border-width: 1px; border-style: solid;
    +    margin: 0 5ex 1.5em 5ex;
    +    }
    +
    +    .Prototype td {
    +        font-size: 10pt;
    +        }
    +
    +    .PDefaultValue,
    +    .PDefaultValuePrefix,
    +    .PTypePrefix {
    +        color: #8F8F8F;
    +        }
    +    .PTypePrefix {
    +        text-align: right;
    +        }
    +    .PAfterParameters {
    +        vertical-align: bottom;
    +        }
    +
    +    .IE .Prototype table {
    +        padding: 0;
    +        }
    +
    +    .CFunction .Prototype {
    +        background-color: #F4F4F4; border-color: #D0D0D0 }
    +    .CProperty .Prototype {
    +        background-color: #F4F4FF; border-color: #C0C0E8 }
    +    .CVariable .Prototype {
    +        background-color: #FFFFF0; border-color: #E0E0A0 }
    +
    +    .CClass .Prototype {
    +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
    +        background-color: #F4F4F4;
    +        }
    +    .CInterface .Prototype {
    +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
    +        background-color: #F4F4FF;
    +        }
    +
    +    .CDatabaseIndex .Prototype,
    +    .CConstant .Prototype {
    +        background-color: #D0D0D0; border-color: #000000 }
    +    .CType .Prototype,
    +    .CEnumeration .Prototype {
    +        background-color: #FAF0F0; border-color: #E0B0B0;
    +        }
    +    .CDatabaseTrigger .Prototype,
    +    .CEvent .Prototype,
    +    .CDelegate .Prototype {
    +        background-color: #F0FCF0; border-color: #B8E4B8 }
    +
    +    .CToolTip .Prototype {
    +        margin: 0 0 .5em 0;
    +        white-space: nowrap;
    +        }
    +
    +
    +
    +
    +
    +.Summary {
    +    margin: 1.5em 5ex 0 5ex }
    +
    +    .STitle {
    +        font-size: 12pt; font-weight: bold;
    +        margin-bottom: .5em }
    +
    +
    +    .SBorder {
    +        background-color: #FFFFF0;
    +        padding: 15px;
    +        border: 1px solid #C0C060 }
    +
    +    /* In a frame IE 6 will make them too long unless you set the width to 100%.  Without frames it will be correct without a width
    +        or slightly too long (but not enough to scroll) with a width.  This arbitrary weirdness simply astounds me.  IE 7 has the same
    +        problem with frames, haven't tested it without.  */
    +    .FramedContentPage .IE .SBorder {
    +        width: 100% }
    +
    +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
    +    .Firefox .SBorder {
    +        -moz-border-radius: 20px }
    +
    +
    +    .STable {
    +        font-size: 9pt; width: 100% }
    +
    +    .SEntry {
    +        width: 30% }
    +    .SDescription {
    +        width: 70% }
    +
    +
    +    .SMarked {
    +        background-color: #F8F8D8 }
    +
    +    .SDescription { padding-left: 2ex }
    +    .SIndent1 .SEntry { padding-left: 1.5ex }   .SIndent1 .SDescription { padding-left: 3.5ex }
    +    .SIndent2 .SEntry { padding-left: 3.0ex }   .SIndent2 .SDescription { padding-left: 5.0ex }
    +    .SIndent3 .SEntry { padding-left: 4.5ex }   .SIndent3 .SDescription { padding-left: 6.5ex }
    +    .SIndent4 .SEntry { padding-left: 6.0ex }   .SIndent4 .SDescription { padding-left: 8.0ex }
    +    .SIndent5 .SEntry { padding-left: 7.5ex }   .SIndent5 .SDescription { padding-left: 9.5ex }
    +
    +    .SDescription a { color: #800000}
    +    .SDescription a:active { color: #A00000 }
    +
    +    .SGroup td {
    +        padding-top: .5em; padding-bottom: .25em }
    +
    +    .SGroup .SEntry {
    +        font-weight: bold; font-variant: small-caps }
    +
    +    .SGroup .SEntry a { color: #800000 }
    +    .SGroup .SEntry a:active { color: #F00000 }
    +
    +
    +    .SMain td,
    +    .SClass td,
    +    .SDatabase td,
    +    .SDatabaseTable td,
    +    .SSection td {
    +        font-size: 10pt;
    +        padding-bottom: .25em }
    +
    +    .SClass td,
    +    .SDatabase td,
    +    .SDatabaseTable td,
    +    .SSection td {
    +        padding-top: 1em }
    +
    +    .SMain .SEntry,
    +    .SClass .SEntry,
    +    .SDatabase .SEntry,
    +    .SDatabaseTable .SEntry,
    +    .SSection .SEntry {
    +        font-weight: bold;
    +        }
    +
    +    .SMain .SEntry a,
    +    .SClass .SEntry a,
    +    .SDatabase .SEntry a,
    +    .SDatabaseTable .SEntry a,
    +    .SSection .SEntry a { color: #000000 }
    +
    +    .SMain .SEntry a:active,
    +    .SClass .SEntry a:active,
    +    .SDatabase .SEntry a:active,
    +    .SDatabaseTable .SEntry a:active,
    +    .SSection .SEntry a:active { color: #A00000 }
    +
    +
    +
    +
    +
    +.ClassHierarchy {
    +    margin: 0 15px 1em 15px }
    +
    +    .CHEntry {
    +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
    +        margin-bottom: 3px;
    +        padding: 2px 2ex;
    +        font-size: 10pt;
    +        background-color: #F4F4F4; color: #606060;
    +        }
    +
    +    .Firefox .CHEntry {
    +        -moz-border-radius: 4px;
    +        }
    +
    +    .CHCurrent .CHEntry {
    +        font-weight: bold;
    +        border-color: #000000;
    +        color: #000000;
    +        }
    +
    +    .CHChildNote .CHEntry {
    +        font-style: italic;
    +        font-size: 8pt;
    +        }
    +
    +    .CHIndent {
    +        margin-left: 3ex;
    +        }
    +
    +    .CHEntry a:link,
    +    .CHEntry a:visited,
    +    .CHEntry a:hover {
    +        color: #606060;
    +        }
    +    .CHEntry a:active {
    +        color: #800000;
    +        }
    +
    +
    +
    +
    +
    +#Index {
    +    background-color: #FFFFFF;
    +    }
    +
    +/*  As opposed to .PopupSearchResultsPage #Index  */
    +.IndexPage #Index,
    +.FramedIndexPage #Index,
    +.FramedSearchResultsPage #Index {
    +    padding: 15px;
    +    }
    +
    +.IndexPage #Index {
    +    border-width: 0 0 1px 1px;
    +    border-style: solid;
    +    border-color: #000000;
    +    font-size: 9pt;  /* To make 27ex match the menu's 27ex. */
    +    margin-left: 27ex;
    +    }
    +
    +
    +    .IPageTitle {
    +        font-size: 20pt; font-weight: bold;
    +        color: #FFFFFF; background-color: #7070C0;
    +        padding: 10px 15px 10px 15px;
    +        border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
    +        margin: -15px -15px 0 -15px }
    +
    +    .FramedSearchResultsPage .IPageTitle {
    +        margin-bottom: 15px;
    +        }
    +
    +    .INavigationBar {
    +        font-size: 10pt;
    +        text-align: center;
    +        background-color: #FFFFF0;
    +        padding: 5px;
    +        border-bottom: solid 1px black;
    +        margin: 0 -15px 15px -15px;
    +        }
    +
    +    .INavigationBar a {
    +        font-weight: bold }
    +
    +    .IHeading {
    +        font-size: 16pt; font-weight: bold;
    +        padding: 2.5em 0 .5em 0;
    +        text-align: center;
    +        width: 3.5ex;
    +        }
    +    #IFirstHeading {
    +        padding-top: 0;
    +        }
    +
    +    .IEntry {
    +        font-size: 10pt;
    +        padding-left: 1ex;
    +        }
    +    .PopupSearchResultsPage .IEntry {
    +        font-size: 8pt;
    +        padding: 1px 5px;
    +        }
    +    .PopupSearchResultsPage .Opera9 .IEntry,
    +    .FramedSearchResultsPage .Opera9 .IEntry {
    +        text-align: left;
    +        }
    +    .FramedSearchResultsPage .IEntry {
    +        padding: 0;
    +        }
    +
    +    .ISubIndex {
    +        padding-left: 3ex; padding-bottom: .5em }
    +    .PopupSearchResultsPage .ISubIndex {
    +        display: none;
    +        }
    +
    +    /*  While it may cause some entries to look like links when they aren't, I found it's much easier to read the
    +         index if everything's the same color.  */
    +    .ISymbol {
    +        font-weight: bold; color: #900000  }
    +
    +    .IndexPage .ISymbolPrefix,
    +    .FramedIndexPage .ISymbolPrefix {
    +        font-size: 10pt;
    +        text-align: right;
    +        color: #C47C7C;
    +        background-color: #F8F8F8;
    +        border-right: 3px solid #E0E0E0;
    +        border-left: 1px solid #E0E0E0;
    +        padding: 0 1px 0 2px;
    +        }
    +    .PopupSearchResultsPage .ISymbolPrefix,
    +    .FramedSearchResultsPage .ISymbolPrefix {
    +        color: #900000;
    +        }
    +    .PopupSearchResultsPage .ISymbolPrefix {
    +        font-size: 8pt;
    +        }
    +
    +    .IndexPage #IFirstSymbolPrefix,
    +    .FramedIndexPage #IFirstSymbolPrefix {
    +        border-top: 1px solid #E0E0E0;
    +        }
    +    .IndexPage #ILastSymbolPrefix,
    +    .FramedIndexPage #ILastSymbolPrefix {
    +        border-bottom: 1px solid #E0E0E0;
    +        }
    +    .IndexPage #IOnlySymbolPrefix,
    +    .FramedIndexPage #IOnlySymbolPrefix {
    +        border-top: 1px solid #E0E0E0;
    +        border-bottom: 1px solid #E0E0E0;
    +        }
    +
    +    a.IParent,
    +    a.IFile {
    +        display: block;
    +        }
    +
    +    .PopupSearchResultsPage .SRStatus {
    +        padding: 2px 5px;
    +        font-size: 8pt;
    +        font-style: italic;
    +        }
    +    .FramedSearchResultsPage .SRStatus {
    +        font-size: 10pt;
    +        font-style: italic;
    +        }
    +
    +    .SRResult {
    +        display: none;
    +        }
    +
    +
    +
    +#Footer {
    +    font-size: 8pt;
    +    color: #989898;
    +    text-align: right;
    +    }
    +
    +#Footer p {
    +    text-indent: 0;
    +    margin-bottom: .5em;
    +    }
    +
    +.ContentPage #Footer,
    +.IndexPage #Footer {
    +    text-align: right;
    +    margin: 2px;
    +    }
    +
    +.FramedMenuPage #Footer {
    +    text-align: center;
    +    margin: 5em 10px 10px 10px;
    +    padding-top: 1em;
    +    border-top: 1px solid #C8C8C8;
    +    }
    +
    +    #Footer a:link,
    +    #Footer a:hover,
    +    #Footer a:visited { color: #989898 }
    +    #Footer a:active { color: #A00000 }
    +
    +
    +
    +.prettyprint .kwd { color: #800000; }  /* keywords */
    +
    +    .prettyprint .PDefaultValue .kwd,
    +    .prettyprint .PDefaultValuePrefix .kwd,
    +    .prettyprint .PTypePrefix .kwd {
    +        color: #C88F8F;
    +        }
    +
    +.prettyprint .com { color: #008000; }  /* comments */
    +
    +    .prettyprint .PDefaultValue .com,
    +    .prettyprint .PDefaultValuePrefix .com,
    +    .prettyprint .PTypePrefix .com {
    +        color: #8FC88F;
    +        }
    +
    +.prettyprint .str { color: #0000B0; }  /* strings */
    +.prettyprint .lit { color: #0000B0; }  /* literals */
    +
    +    .prettyprint .PDefaultValue .str,
    +    .prettyprint .PDefaultValuePrefix .str,
    +    .prettyprint .PTypePrefix .str,
    +    .prettyprint .PDefaultValue .lit,
    +    .prettyprint .PDefaultValuePrefix .lit,
    +    .prettyprint .PTypePrefix .lit {
    +        color: #8F8FC0;
    +        }
    +
    +.prettyprint .typ { color: #000000; }  /* types */
    +.prettyprint .pun { color: #000000; }  /* punctuation */
    +.prettyprint .pln { color: #000000; }  /* punctuation */
    +
    +    .prettyprint .PDefaultValue .typ,
    +    .prettyprint .PDefaultValuePrefix .typ,
    +    .prettyprint .PTypePrefix .typ,
    +    .prettyprint .PDefaultValue .pun,
    +    .prettyprint .PDefaultValuePrefix .pun,
    +    .prettyprint .PTypePrefix .pun,
    +    .prettyprint .PDefaultValue .pln,
    +    .prettyprint .PDefaultValuePrefix .pln,
    +    .prettyprint .PTypePrefix .pln {
    +        color: #8F8F8F;
    +        }
    +
    +.prettyprint .tag { color: #008; }
    +.prettyprint .atn { color: #606; }
    +.prettyprint .atv { color: #080; }
    +.prettyprint .dec { color: #606; }
    +
    diff --git a/docs/js/toc.js b/docs/js/toc.js
    new file mode 100644
    index 000000000..09f429440
    --- /dev/null
    +++ b/docs/js/toc.js
    @@ -0,0 +1,132 @@
    +/**
    + * Creates a table of contents inside the given element.
    + */
    +function maketoc(element, enableSections)
    +{
    +	enableSections = (enableSections != null) ? enableSections : true;
    +	var tmp = crawlDom(document.body, 2, 4, [], 30, enableSections);
    +	
    +	if (tmp.childNodes.length > 0)
    +	{
    +		element.appendChild(tmp);
    +	}
    +}
    +
    +function crawlDom(parent, ignore, depth, chapters, indent, enableSections)
    +{
    +	var doc = parent.ownerDocument;
    +	var toc = doc.createElement('ul');
    +	toc.style.listStyleType = 'none';
    +	var child = parent.firstChild;
    +	var lastLevel = 0;
    +	
    +	while (child != null)
    +	{
    +		var name = child.nodeName.toLowerCase();
    +
    +		if (name.substring(0, 1) == 'h')
    +		{
    +			var tmp = name.substring(1, name.length);
    +			var currentLevel = parseInt(tmp);
    +			
    +			// Checks if rest of string is numeric and
    +			// header level is not beyond depth
    +			if (currentLevel == tmp && (depth == 0 || currentLevel <= depth))
    +			{
    +				// Deletes chapter numbers which are no longer used
    +				if (currentLevel < lastLevel)
    +				{
    +					chapters = chapters.slice(0, currentLevel + 1);
    +				}
    +				
    +				lastLevel = currentLevel;
    +
    +				if (ignore <= 0)
    +				{
    +					if (chapters[currentLevel] == null)
    +					{
    +						chapters[currentLevel] = 0;
    +					}
    +
    +					chapters[currentLevel]++;
    +					var sect = '';
    +					
    +					for (var i = 0; i < chapters.length; i++)
    +					{
    +						if (chapters[i] != null)
    +						{
    +							sect += chapters[i] + '.';
    +						}
    +					}
    +
    +					var tmp = child.firstChild;
    +					
    +					while (tmp != null &&
    +						tmp.nodeType != 3)
    +					{
    +						tmp = tmp.nextSibling;
    +					}
    +					
    +					if (tmp != null)
    +					{
    +						sect = sect.substring(0, sect.length - 1);
    +						var title = tmp.nodeValue;
    +						var anchor = null; 
    +						
    +						if (navigator.userAgent.indexOf('MSIE') >= 0)
    +						{
    +							// Setting the name tag here is a workaround for IE which sets the
    +							// submitName attribute instead when using setAttribute('name', sect)
    +							anchor = doc.createElement('<a name="'+sect+'"></a>');
    +						}
    +						else
    +						{
    +							anchor = doc.createElement('a');
    +							anchor.setAttribute('name', sect);
    +						}
    +						
    +						if (enableSections)
    +						{
    +							anchor.appendChild(doc.createTextNode(sect+' '));
    +						}
    +						
    +						child.insertBefore(anchor, tmp);
    +						
    +						// Adds entry in the table of contents
    +						var listItem = doc.createElement('li');
    +						listItem.style.paddingLeft = ((currentLevel - 1) * indent) + 'px';
    +						var anchor2 = doc.createElement('a');
    +						anchor2.setAttribute('href', '#'+sect);
    +						
    +						if (enableSections)
    +						{
    +							anchor2.appendChild(doc.createTextNode(sect + ' ' + title));
    +						}
    +						else
    +						{
    +							anchor2.appendChild(doc.createTextNode(title));
    +						}
    +						
    +						listItem.appendChild(anchor2);
    +						toc.appendChild(listItem);
    +					}
    +				}
    +				else
    +				{
    +					ignore--;
    +				}
    +			}
    +		}
    +
    +		var tmp = crawlDom(child, 0, depth, chapters, indent);
    +		
    +		if (tmp.childNodes.length > 0)
    +		{
    +			toc.appendChild(tmp);
    +		}
    +		
    +		child = child.nextSibling;
    +	}
    +
    +	return toc;
    +}
    diff --git a/docs/known-issues.html b/docs/known-issues.html
    new file mode 100644
    index 000000000..495c9df30
    --- /dev/null
    +++ b/docs/known-issues.html
    @@ -0,0 +1,351 @@
    +<html>
    +<head>
    +	<title>mxGraph - Known Issues</title>
    +	<link rel="stylesheet" HREF="css/html.css" CHARSET="ISO-8859-1" TYPE="text/css">
    +  	<script type="text/javascript" src="js/toc.js"></script>
    +</head>
    +<body onload="maketoc(document.getElementById('toc'), false);">
    +<h1>mxGraph Known Issues</h1>
    +<h2>Table Of Contents</h2>
    +<div id="toc"></div>
    +<br/>
    +<h2><a name="Doctypes"></a>Doctypes</h2>
    +<p>
    +	VML in IE should only be used in quirks mode. You can use any DOCTYPE in the page
    +	and force IE into quirks mode by using the following first two lines in HTML:
    +</p>
    +<pre>
    +&lt;!--[if IE]&gt;&lt;meta http-equiv="X-UA-Compatible" content="IE=5" &gt;&lt;![endif]--&gt;
    +&lt;!DOCTYPE html&gt;
    +</pre>
    +<p>
    +	This will use the specified DOCTYPE in all browsers but IE.
    +</p>
    +<p>
    +	In IE8 and IE9, which support the X-UA-Compatible directive, this will force quirks mode.
    +	In IE 6 and 7, which do no support the X-UA-Compatible directive, the DOCTYPE will be ignored
    +	because it is preceeded by non-space characters (in this case a comment which is interpreted
    +	only by IE 8 and IE 9).
    +</p>
    +<p>
    +	The conditional comment is required for all other browsers to pick up the DOCTYPE correctly.
    +</p>
    +<p>
    +	To use IE7 standards mode in IE 7, 8 and 9, replace IE=5 with IE=7 in the content attribute.
    +</p>
    +<p>
    +	See <a href="http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx">this</a>
    +	and <a href="http://stackoverflow.com/questions/941100/can-html-comments-appear-before-the-doctype-declaration">this</a>
    +	for details.
    +</p>
    +<h2><a name="IE8"></a>Support for IE8 standards mode</h2>
    +<p>
    +	Experimental support for IE8 standards mode is available. The use of quirks mode or
    +	IE7 standards mode is recommended for performance reasons.
    +</p>
    +<h2><a name="IE9"></a>Support for SVG in Microsoft Internet Explorer 9</h2>
    +<p>
    +	Please use the following meta tag to enable SVG in IE9:
    +</p>
    +<pre>
    +&lt;meta http-equiv='X-UA-Compatible' content='IE=5,IE=9'/&gt;
    +</pre>
    +<p>
    +	Note that <code>IE=5</code> is required for IE versions prior to 9 to render VML. To use
    +	IE7 standards mode <code>IE=5</code> can be replaced with <code>IE=7</code>.
    +</p>
    +<h2><a name="FirefoxFocus"></a>Focus in Firefox</h2>
    +<p>
    +	Firefox does not allow to programmatically focus DIVs by default. Since
    +	this affects handling of key events, here is a workaround to allow the
    +	focus to be transferred to a DIV that acts as a graph container even if
    +	a shape is clicked (click on the background works normally). The workaround
    +	is based on the fact that programmatically setting the focus on a DIV in
    +	Firefox is possible if the tabindex attribute of the DIV is set as described
    +	<a href="http://www.barryvan.com.au/2009/01/onfocus-and-onblur-for-divs-in-fx/">here</a>.
    +</p>
    +<pre>
    +if (navigator.userAgent.indexOf('Firefox/') &gt; 0)
    +{
    +  mxEvent.addListener(graph.container, 'mousedown', function()
    +  {
    +  	if (!graph.isEditing())
    +  	{
    +    	graph.container.setAttribute('tabindex', '-1');
    +    	graph.container.focus();
    +    }
    +  });
    +}
    +</pre>
    +<p>
    +	Note that as a side-effect of this the DIV will have a focus border which you may
    +	or may not find useful. Also note that the focus is transferred normally if the
    +	DIV receives a double click, the above solution is just for single-clicks.
    +</p>
    +<h2><a name="TransparentHtmlLabels"></a>Opacity style in HTML labels</h2>
    +<p>
    +	There is a problem in Webkit (Chrome, Safari) where HTML labels with
    +	opacities other than 1 don't scale correctly. Try using
    +	<code>mxClient.NO_FO = true</code> before rendering the graph as a
    +	workaround for this problem.
    +</p>
    +<h2><a name="Chrome5LocalFiles"></a>Local file:// URI in Chrome 5.x</h2>
    +<p>
    +	Chrome 5.x no longer loads files from the local filesystem via XHR. This
    +	affects the loading of resources if examples are viewed via the file://
    +	protocol. To enable the loading of such files you should use the new flag
    +	--allow-file-access-from-files.
    +</p>
    +<p>
    + 	See security section for 5.0.335.0 release
    +	<a href="http://googlechromereleases.blogspot.com/">here</a>.
    +</p>
    +<h2><a name="ClippedLabels"></a>Clipped labels</h2>
    +<p>
    +	For clipped labels (overflow:hidden or mxGraph.isLabelClipped returns true)
    +	it is possible that event handling remains as if the label was unclipped.
    +	There are several browsers and versions that show this behaviour.
    +</p>
    +<h2><a name="LocalFiles"></a>Scrollable labels in Webkit</h2>
    +<p>
    +	For labels that contain HTML markup with scrollbars in Webkit (Safari and
    +	Chrome) you should disable the use of foreignObject to make sure the HTML
    +	is not embedded in the SVG node hierarchy. This is because Webkit has a bug
    +	where mouse events are ignored in any scrollbars in a foreignObject. To
    +	disable foreignObjects, the following code can be used:
    +</p>
    +<pre>mxClient.NO_FO = mxClient.NO_FO || mxClient.IS_SF || mxClient.IS_GC;</pre>
    +<p>
    +	<a href="http://code.google.com/p/chromium/issues/detail?id=35545">Bug Report</a>
    +</p>
    +<h2><a name="LocalFiles"></a>Local Files</h2>
    +<p>
    +	For enabling the functionality in mxUtils.save and mxUtils.open for reading
    +	and writing local files, the security settings for the page need to be
    +	changed to enabled or prompt for <i>Initialize and script ActiveX controls
    +	not marked as save for scripting</i> in IE 7.
    +</p>
    +<p>
    +	To enable local file access in Firefox, the page must be loaded using the
    +	file:// protocol.
    +	<a href="http://www.mozilla.org/projects/security/components/signed-scripts.html">This</a>
    +	article also states the the access works for signed scripts, however, this
    +	has not been tested.
    +</p>
    +<p>	
    +	For mxUtils.saveAs in Firefox, the same restrictions apply. However, the
    +	function may be used in IE7 without any client-side settings.
    +</p>
    +<p>
    +	For local file access in Firefox 3, you need do to an about:config and
    +	change security.fileuri.strict_origin_policy to false. (If some language
    +	properties are missing in Firefox 3, this is most likely the cause for the
    +	problem.) This is only required for local file access and not for
    +	production software deployed on a webserver.
    +</p>
    +<h2><a name="Rotation"></a>Rotation</h2>
    +<p>
    +	Support for rotation is limited to the shape display. Text labels, handles,
    +	selection bounds and perimeter points are currently not rotated. Support
    +	for rotation is limited to SVG/VML dialects in the client, as well as the
    +	mxGraphics2DCanvas in Java and the mxGdiCanvas in C#. PHP does not
    +	currently support rotation in GD.
    +</p>
    +<h2><a name="EventOrder"></a>Order of Events in IE</h2>
    +<p>
    +	When adding listeners for DOM events using mxEvent in IE, which in turn
    +	uses attachEvent, then the order in which listeners are invoked for a
    +	specific event is not as listeners have been added. This is a known bug.
    +	There is no workaround for this problem.
    +</p>
    +<h2><a name="Printing"></a>Printing</h2>
    +<p>
    +	Printing does not work in Firefox 1.5 (bug 314707). However, it works in
    +	Firefox 2.0 and later. In Internet Explorer 6 on Windows XP (no
    +	service pack) and Internet Explorer 7 on Windows Server 2003 SP1
    +	enterprise, SP2 beta build 2825 enterprise and SP2 beta build 2805
    +	data center there is a
    +	<a href="http://www.eggheadcafe.com/software/aspnet/29075807/vml-content-created-by-sc.aspx">known issue</a>
    +	with printing VML content created by script.
    +</p>
    +<p>
    +	In Firefox and Internet Explorer, all content that is wider than one page
    +	is cropped when printed. Please use mxPrintPreview for printing across
    +	multiple pages.
    +</p>
    +<h2><a name="Statusbar"></a>Statusbar</h2>
    +<p>
    +	The status bar is used to display information while the DOM is being
    +	updated. Therefore, it is not possible to display this information in the
    +	DOM (as it is being updated). Unfortunately, Firefox and IE do not allow
    +	scripts to change the status bar. (IE 6 allows it.)
    +</p>
    +<p>
    +	To enable updates of the status bar in IE 7, you can change the security
    +	setting of the respective zone in Internet Options, Security, Custom Level,
    +	Scripting, Allow status bar updates via script.
    +</p>
    +<p>
    +	To enable updates of the status bar in Firefox, you can set the
    +	configuration setting via about:config, dom.disable_window_status_change to
    +	false.
    +</p>
    +<h2><a name="AccessDenied"></a>Access Denied in IE</h2>
    +<p>
    +	The latest version of IE does no longer allow to read files from the local
    +	filesystem. This means that all files must be loaded from a webserver, or
    +	the native XMLHTTP support must be disabled.
    +</p>
    +<p>
    +	To allow loading files from the local filesystem in IE, you must disable
    +	native XMLHTTP support in Internet Options, Advanced, Security. Keep in
    +	mind that loading the client from the local filesystem should only be
    +	used for development. In production, the page containing the client and
    +	all files should be loaded from a webserver via HTTP.
    +</p>
    +<h2><a name="FontRendering"></a>Font Rendering</h2>
    +<p>
    +	In Firefox (including 2.0), the fonts are sometimes cropped at the end of a
    +	line (some pixels missing). On the Mac, the text sometimes completely
    +	disappears. The problem seems to be fixed in Firefox 3.0 for Windows. A
    +	possible workaround is to change the width of the window by at least 1
    +	pixel.
    +</p>
    +<p>
    +	<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=368879">Bug Report</a>
    +</p>
    +<h3><a name="LabelBoundingBox"></a>Label Bounding Box</h3>
    +<p>
    +	In Firefox, the SVG-function getBBox for vertex- and edgelabels is one step
    +	behind zoom. This means, the bounding box for overlapping labels and the
    +	label background and border might appear smaller or larger than the text
    +	after zooming. The display can be updated by panning the graph at least 1
    +	pixel.
    +</p>
    +<h2><a name="Linefeeds"></a>Linefeeds</h2>
    +<p>
    +	Linefeeds are converted into &amp;#xa; at encoding time. However, in shared
    +	diagram sessions the linefeeds (\n) are kept. When sending such XML back to
    +	the client all linefeeds must be replaced with &amp;#xa;. If you need a
    +	different encoding you can change the mxEditor.prototype.linefeed and
    +	mxSession.prototype.linefeed variables. In general, the encoding of
    +	linefeeds is specified when a DOM node is serialized using the
    +	mxUtils.getXml(node, linefeed) method. The optional linefeed argument is
    +	the string to be used for encoding linefeeds and defaults to &amp;#xa;.
    +</p>
    +<h2><a name="RunSlowly"></a>Scripts Run Slowly Error in IE</h2>
    +<p>
    +	This error (<i>A script on this page is causing internet explorer to run
    +	slowly</i>) in IE (all supported versions including IE 7) is triggered by
    +	the script engine executing more than 5 million operations (see
    +	<a href="http://support.microsoft.com/kb/175500">http://support.microsoft.com/kb/175500</a>).
    +	A workaround for this problem is using the threads provided with
    +	<a href="http://gears.google.com/" target="_blank">Google Gears</a>
    +	or using worker threads in HTML 5.
    +</p>
    +<p>
    +	Another workaround is to set the
    +	<code>HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles</code>
    +	DWORD value of <code>MaxScriptStatements</code> to hex <code>7fffffff</code>
    +	and reboot. Warning: According to the Knowledge Base article, "serious
    +	problems might occur if you modify the registry".
    +</p>
    +<h2><a name="BodyBorder"></a>Body, HTML Borders</h2>
    +<p>
    +	When using a style definition for the body or HTML element that makes the
    +	border invisible, such as none or 0px for the border-width, then there is a
    +	strange behaviour in IE after dragging cells into the graph. Another click
    +	is required to stop the respective tool from being inserted again into the
    +	graph. Currently, the only known workaround is not to use the style
    +	definition for invisible borders. Invisible borders for body and HTML
    +	elements are the default setting and the bug does not occur if the border
    +	is set to something visible, such as 1px solid black.
    +</p>
    +<h2><a name="HtmlLabels"></a>HTML Labels</h2>
    +<p>
    +	HTML labels are supported in SVG browsers via the mxGraph.htmlLabels
    +	switch. mxGraph.isHtmlLabel(mxCell) may be overridden to return individual
    +	values for cells. The following are known limitations for HTML labels:
    +</p>
    +<ul>
    +<li>Oversize labels consume events on transparent regions. This limitation
    +exists in all browsers.</li>
    +<li>Zoom does only work for text content. This limitation exists in all non-IE
    +browsers, eg. Firefox.</li>
    +<li>Drag and drop (eg. connections) starting at inner img has same cell in
    +dispatch loop.</li>
    +<li>Vertical/rotated HTML labels are not supported in Opera.</li>
    +<li>In SVG-based browsers, the labels appear on top of all SVG in a separate
    +layer.</li>
    +</ul>
    +<h2><a name="SvgContainer"></a>SVG Container</h2>
    +<p>
    +	In Firefox, the size of the SVG element is updated to be the size of the
    +	graph whenever the graph changes. However, since there is no resize event
    +	fired by the parent container of the SVG element, the SVG element may have
    +	to be manually resized if the parent element is larger than the graph. The
    +	effect of this is that if the container of the SVG element is made larger
    +	without updating the SVG element's size, then the SVG element (and hence
    +	the drawing area) will appear smaller than the container of the graph.
    +</p>
    +<h2><a name="Opera"></a>Opera</h2>
    +<p>
    +	Support for Opera 9 is currently experimental. There are several known
    +	issues, such as no context menu, cropping in SVG canvas, ignored
    +	beforeunload handler and drag and drop from toolbar not working. For
    +	displaying the context menu in Opera (and on Mac), hold down the shift key
    +	while clicking the (left) mouse button.
    +</p>
    +<h2><a name="Safari"></a>Safari</h2>
    +<p>
    +	For the context menu to appear in Safari on the Mac, hold down the shift
    +	key while clicking the (left) mouse button. Safari does not provide the
    +	beforeunload event. Also, vertical labels are not working in Safari on the
    +	Mac.
    +</p>
    +<h2><a name="Webkit"></a>Webkit (Safari and Google Chrome)</h2>
    +<p>
    +    For some container positions there are artifacts in Safari and Google
    +    Chrome when repainting dynamic SVG elements (eg. highlights and previews).
    +    This is due to a bug in the Webkit repaint code. Also, the value for text
    +    opacity is currently ignored in Webkit.
    +</p>
    +<h2><a name="PHPStroke"></a>PHP and strokewidths</h2>
    +<p>
    +    The strokewidth is currently ignored in some GD implementations, as the
    +    imagesetthickness function is not working properly.
    +</p>
    +<h2><a name="XDomXHR"></a>Cross-domain AJAX</h2>
    +<p>
    +	Cross-domain AJAX requests are generally not allowed, so make sure all
    +	requests are kept within the same domain of the page that contains the
    +	client. By default, XHR is used for loading the JS files (development
    +	only), the properties files (i18n) and the XML files (config). In
    +	production, there is only a single JS file which is not loaded using XHR,
    +	however, the files for i18n and configuration are still loaded using XHR
    +	and should therefore be placed in the same domain.
    +</p>
    +<p>
    +	For example, if the translations are missing in the UI you should make sure
    +	the respective properties files are stored in the same domain as the page
    +	that contains the client. In this specific case, if you are using IIS, you
    +	should also check if the MIME type for properties files has been registered
    +	correctly. If no MIME type has been registered for the .properties
    +	extension then please do so in the IIS console under IIS, MIME types.
    +</p>
    +<p>
    +	Note that the evaluation distribution uses a hosted version of mxClient. If
    +	you are experiencing cross-domain security problems using the evaluation
    +	version then you should upgrade to the commercial version as it includes
    +	all required files.
    +</p>
    +<p>
    +	There is a known issue where Firefox does not load properties files from
    +	the local filesystem (file:// protocol) if the mxClient.js files is loaded
    +	from a different domain (evaluation). This problem goes away when using
    +	HTTP.
    +</p>
    +<hr size="1">
    +&copy; 2006-2011 by JGraph Ltd.
    +</body>
    +</html>
    diff --git a/docs/manual.html b/docs/manual.html
    new file mode 100644
    index 000000000..7261fbe0d
    --- /dev/null
    +++ b/docs/manual.html
    @@ -0,0 +1,1848 @@
    +<html>
    +<head>
    +	<title>mxGraph User Manual - JavaScript Client</title>
    +	<link rel="stylesheet" HREF="css/html.css" CHARSET="ISO-8859-1" TYPE="text/css">
    +    <script type="text/javascript" src="js/toc.js"></script>
    +</head>
    +<body onload="maketoc(document.getElementById('toc'));">
    +<h1>mxGraph User Manual &ndash; JavaScript Client</h1>
    +<br/>
    +<br/>
    +<p>mxGraph Version 1.10.0.5 &ndash; 21. May 2012</p>
    +<p>Copyright (c) JGraph Ltd 2006-2012</p>
    +<br/>
    +<p>All rights reserved. No part of this publication may be
    +reproduced, stored in a retrieval system, or transmitted in any form or
    +by any means, electronic, mechanical, photocopying, recording or
    +otherwise, without the prior written permission of the author.</p>
    +<p>The programs in this book have been included for their
    +instructional value. They have been tested with care but are not
    +guaranteed for any particular purpose. The publisher does not offer any
    +warranties or representations nor does it accept any liabilities with
    +respect to the programs.</p>
    +
    +<p>Possession, use, or copying of the software described in this
    +publication is authorized only pursuant to a valid written license from
    +JGraph Ltd.</p>
    +
    +<p>Neither JGraph Ltd. nor its employees are responsible for any
    +errors that may appear in this publication. The information in this
    +publication is subject to change without notice.</p>
    +<p>Java and all Java-based marks are trademarks or registered
    +trademarks of Sun Microsystems, Inc. in the U.S. and other countries.</p>
    +
    +<br/>
    +<h1>Table Of Contents</h1>
    +<div id="toc"></div>
    +
    +<br/>
    +<h1><a name="Introduction"></a>Introduction</h1>
    +<h2><a name="mxGraph_Products"></a>Product Family Introduction</h2>
    +
    +<p>mxGraph is a product family of libraries, written in a variety of
    +technologies, that provide features aimed at applications that display
    +interactive <a href="http://en.wikipedia.org/wiki/Diagram">diagrams</a>
    +and graphs. Note by graphs we mean <a
    +	href="http://en.wikipedia.org/wiki/Graph_(mathematics)">mathematical
    +graphs</a>, not necessarily <a href="http://en.wikipedia.org/wiki/Charts">charts</a>
    +(although some charts are graphs). See later section &ldquo;What is a
    +Graph?&rdquo; for more details.</p>
    +
    +<p>Being a developer library, mxGraph is not designed specifically
    +to provide a ready to use application, although many of the examples are
    +close to being usable applications. mxGraph provides all the commonly
    +required functionality to draw, interact with and associate a context
    +with a diagram displayed in the technology of that particular mxGraph
    +flavour. mxGraph comes with a number of examples that help explain how a
    +basic application is put together using each technology and showcases
    +individual features of the library.</p>
    +
    +<p>Each user manual is specific to one technology, along with
    +generic sections, such as this introduction and layouts. Developers will
    +find the implementations of each library in the different technologies
    +share the same architecture and API across the product range. The
    +implementations differ slightly for technology-specific areas, usually
    +event handling and rendering, but when overall porting from one
    +technology, mxGraph is designed to present as common an interface as is
    +possible.</p>
    +
    +<p>Developers integrating the library in their application should
    +read the pre-requisites for the technology they are using. See section
    +&ldquo;Pre-requisites&rdquo; below. Given that mxGraph is a component
    +part of your application, you must understand how applications are
    +constructed in that technology and how to program in the language(s) of
    +that technology.</p>
    +
    +<h2><a name="Which_Version"></a>Which Version of mxGraph to use?</h2>
    +
    +<p>When deciding which of the technology implementations of mxGraph
    +to use, often the choice is determined by the technology of the
    +application.</p>
    +
    +<p>The Java visualization version is suitable for
    +producing desktop applications with high performance. The 
    +web-centric version, written in JavaScript, is designed to work 
    +natively in all major web browsers. An example of such an 
    +application is a business process modelling tool that enables 
    +users to draw processes in a web browser, store them centrally, 
    +allow other users to view and edit processes and
    +automatically execute the process on the server using business logic
    +associated with the visual information.</p>
    +
    +<h3><a name="JavaScript"></a>JavaScript</h3>
    +
    +<p>The JavaScript version of mxGraph mainly comprises one JavaScript
    +file that contains all of the mxGraph functionality. This is loaded into
    +a HTML web page in a JavaScript section and executes in an HTML
    +container in the browser. This is an incredibly simple architecture that
    +only requires a web server capable of serving html pages and a
    +JavaScript enabled web browser.</p>
    +
    +<p>The key advantages of this technology are:</p>
    +<ul>
    +	<li>That no third-party plug-ins are required. This removes
    +	plug-in vendor dependence.</li>
    +	<li>The technologies involved are open and there are many open
    +	implementations, no vendor can remove a product or technology that
    +	leaves your application unworkable in practise.</li>
    +	<li>Standardized technologies, meaning your application is
    +	deployable to the maximum number of browser users without need for
    +	additional configuration or installation at the client computer. Large
    +	corporate environments often dislike allowing individuals to install
    +	browser plug-ins and do not like to change the standard build rolled
    +	out to all machines.</li>
    +</ul>
    +
    +<p>The key disadvantage of this technology is:</p>
    +<ul>
    +	<li>Rendering speed. As the number of cells visible on the users
    +	screen climbs into the hundreds, redrawing slows on most browsers
    +	beyond acceptable levels. In information management theory displaying
    +	several hundred cells is generally incorrect, since the user cannot
    +	interpret the data. There are a number of mechanisms, collectively
    +	known as complexity management used to limit the amount of information
    +	to sensible levels, and thus maintaining reactive redraw rates for the
    +	user. Complexity management is described in a later section of this
    +	user manual.</li>
    +</ul>
    +
    +<p>Comparing the pros and cons of each implementation against your
    +application requirements usually provides a clearly advantage to using
    +one of these technologies.</p>
    +
    +<h2><a name="JavaScript_Library"></a>mxGraph &ndash; JavaScript
    +Library</h2>
    +
    +<p>This user manual is for the JavaScript library version of
    +mxGraph, that enables you to produce web applications that feature
    +interactive diagramming functionality across all major browsers, without
    +the use of third-party plug-ins. The core client functionality of
    +mxGraph is a Javascript library that describes, displays and interacts
    +with your diagram through a browser, providing all the commonly required
    +application features as well as easy extensibility to add custom
    +features. mxGraph is designed for use in a client-server architecture,
    +where the Javascript library communicates with a server and exchanges
    +information on the state of the graph.</p>
    +
    +<div id="note">
    +<p>Note: From now on the term <strong>mxGraph</strong> will be used
    +to describe the JavaScript client and supporting back-end modules,
    +rather than any other flavour of the product, unless otherwise
    +specified.</p>
    +</div>
    +
    +<p><img src="images/mx_man_architecture.png" name="mxgraph_architecture" />
    +<br/>
    +<em>The mxGraph components and their relationships</em></p>
    +
    +<h2><a name="mxgraph_applications"></a>What Applications can
    +mxGraph be used for?</h2>
    +
    +<p>Example applications for a graph visualization library include:
    +process diagrams, workflow and BPM visualization, flowcharts, traffic or
    +water flow, database and WWW visualization, networks and
    +telecommunications displays, mapping applications and GIS, UML diagrams,
    +electronic circuits, VLSI, CAD, financial and social networks, data
    +mining, biochemistry, ecological cycles, entity and cause-effect
    +relationships and organisational charts.</p>
    +
    +<h2><a name="mxgraph_deployment"></a>How is mxGraph deployed?</h2>
    +
    +<p>In the typical thin-client environment, mxGraph is split into the
    +client-side JavaScript library and a server-side library in one of the
    +two supported languages, .NET and Java. The JavaScript library is
    +contained as part of a larger web application that is delivered to the
    +browser using a standard web server. All the browser needs is the
    +ability to run JavaScript to be enabled.</p>
    +
    +<p>In the third part of this manual, you will see an example of an
    +html page that embeds the mxGraph library, as well as a simple
    +application to invoke the library's functionality.</p>
    +
    +<h2><a name="mxgraph_technologies"></a>mxGraph Technologies</h2>
    +
    +<p>mxGraph uses JavaScript for the client-side functionality on the
    +browser. The JavaScript code in turn uses the underlying vector graphics
    +language on the active browser to render the displayed diagram, SVG for
    +the more standards compliant browsers and VML in the case of Microsoft
    +Internet Explorer. mxGraph also includes the feature to render entirely
    +using html, this limits the range of functionality available, but is
    +suitable for more simple diagrams.</p>
    +
    +<p>As a developer you are not exposed to browser specific features.
    +As mentioned, the vector graphics language varies by browser, so mxGraph
    +abstracts their features into a common class. Similarly, for event
    +handling and DOMs. Browsers differ in their implementation of these two
    +major browser functionalities, mxGraph exposes a constant API over all
    +browsers and adapts to the inconsistencies behind the scenes.</p>
    +
    +<h2><a name="mxgraph_licensing"></a>mxGraph Licensing</h2>
    +
    +<p>The JavaScript client of mxGraph may be licensed in two ways:</p>
    +
    +<ul>
    +	<li>Under a standard commercial license, the pricing on the web
    +	site applies to these commercial licenses.</li>
    +	<li>Under a reasonable use hosted model. This requires a key to
    +	access the hosted version, available in the examples in your evaluation
    +	download.</li>
    +</ul>
    +
    +<p>Note that both licenses forbid you as a developer to redistribute
    +source code to mxGraph, other than the compressed mxClient.js file with
    +your application. This means that the mxGraph licenses are not
    +compatible with certain open source or free software licenses. You may
    +also not make the formatted sources publicly visible on the Internet.</p>
    +
    +<p>For detailed licensing questions you are always advised to
    +consult a legal professional.</p>
    +
    +<h2><a name="what_graph"></a>What is a Graph?</h2>
    +
    +<p>Graph visualization is based on the mathematical theory of
    +networks, graph theory. If you're seeking JavaScript bar <em>charts</em>,
    +pie <em>charts</em>, Gantt <em>charts</em>, have a look at the <a
    +	href="http://code.google.com/apis/chart/">Google Charts</a> project
    +instead, or similar</p>
    +<p>A graph consists of vertices, also called nodes, and of edges
    +(the connecting lines between the nodes). Exactly how a graph appears
    +visually is not defined in graph theory. The term <em>cell</em> will be
    +used throughout this manual to describe an element of a graph, either
    +edges, vertices or groups.</p>
    +
    +<p><img src="images/mx_man_simple_graph.png" /><br/>
    +<em>A simple Graph</em></p>
    +<br/>
    +
    +<p>There are additional definitions in graph theory that provide
    +useful background when dealing with graphs, they are listed in the
    +Appendices if of interest to you.</p>
    +
    +<h3><a name="graph_visualization"></a>Graph Visualization</h3>
    +
    +<p>Visualization is the process of creating a useful visual
    +representation of a graph. The scope of visualization functionality is
    +one of mxGraphs' main strength. mxGraph supports a wide range of
    +features to enable the display of cells to only be limited by the skill
    +of the developer and the platform functionality available. Vertices may
    +be shapes, images, vector drawing, animations, virtually any graphical
    +operations available in browsers. You can also use HTML mark-up in both
    +vertices and edges.</p>
    +
    +<p><img src="images/mx_man_graph_vis.png"><br/>
    +<em>Graph Visualization of a transport system. (c) Tourizm Maps
    +2003, http://www.world-maps.co.uk</em></p>
    +<br/>
    +<h3><a name="graph_interaction"></a>Graph Interaction</h3>
    +
    +<p>Interaction is the way in which an application using mxGraph can
    +alter the graph model through the web application GUI. mxGraph supports
    +dragging and cloning cells, re-sizing and re-shaping, connecting and
    +disconnecting, drag and dropping from external sources, editing cell
    +labels in-place and more. One of the key benefits of mxGraph is the
    +flexibility of how interaction can be programmed.</p>
    +
    +<p>Many complex graphical web applications rely on a round-trip to
    +the server in order to form the display, not only the base display but
    +also the interaction events. Although this is often given the title of
    +AJAX functionality, such server reliance is not appropriate for
    +interaction events. Visual feedback taking longer than about 0.2 seconds
    +in an application generally seriously impacts the usability. By placing
    +all of the interaction on the client, mxGraph provides the true feel of
    +a application, rather than seeming like a dumb remote terminal. It also
    +allows the possibility of off-line use.</p>
    +
    +<p><img src="images/mx_man_graph_interaction.png" /><br/>
    +<em>Selection shading while selecting an area through mouse drag</em></p>
    +<br/>
    +<h3><a name="graph_layouts"></a>Graph Layouts</h3>
    +
    +<p>Graph cells can be drawn anywhere in a simple application,
    +including on top of one another. Certain applications need to present
    +their information in a generally ordered, or specifically ordered
    +structure. This might involve ensuring cells do not overlap and stay at
    +least a certain distance from one another, or that cells appear in
    +specific positions relative to other cells, usually the cells they are
    +connected to by edges. This activity, called the layout application, can
    +be used in a number of ways to assist users in setting out their graph.
    +For non-editable graphs, layout application is the process of applying a
    +layout algorithm to the cells. For interactive graphs, meaning those
    +that can be edited through the UI, layout application might involve only
    +allowing users to make changes to certain cells in certain positions, to
    +re-apply the layout algorithm after each change to the graph, or to
    +apply the layout when editing is complete.</p>
    +
    +<p><img src="images/mx_man_graph_layout.png" /><br/>
    +<em>Layout of a workflow using a horizontal hierarchical layout</em></p>
    +
    +<p>mxGraph supports a range of tree, force-directed and hierarchical
    +layouts which will fit most layout needs. See the later section on using
    +the layouts for more information.</p>
    +
    +<p>In a client-server architecture there are two options for how
    +layouts can be run. The Javascript versions provide the ability to run
    +the layouting entirely on the client, while the same layout
    +implementation in Java on the server-side enables the option to offload
    +some processing to the server, if required.</p>
    +
    +<h3><a name="graph_analysis"></a>Graph Analysis</h3>
    +
    +<p>Analysis of graphs involves the application of algorithms
    +determining certain details about the graph structure, for example,
    +determining all routes or the shortest path between two cells. There are
    +more complex graph analysis algorithms, these being often applied in
    +domain specific tasks. Techniques such as clustering, decomposition, and
    +optimization tend to be targeted at certain fields of science and have
    +not been implemented in the core mxGraph packages at the current time of
    +writing.</p>
    +
    +<p><img src="images/mx_man_graph_analysis.jpg"
    +	name="shortest_path_analyis" /><br/>
    +<em>Shortest Path Analysis</em></p>
    +<br/>
    +
    +<h2><a name="about_manual"></a>About this Manual</h2>
    +
    +<h3><a name="pre_requisites"></a>Pre-requisites for mxGraph</h3>
    +
    +<p>To benefit fully from this manual you will need to have a
    +reasonable understanding of web applications and of the server
    +technology you wish to deploy using. Deployment examples are available
    +for each of the server technologies supported, some familiarity with
    +that server technology is obviously required.</p>
    +
    +<p>Basic XML knowledge is useful for changing the editor
    +configuration files that describe the visual and behavioural aspects of
    +the editor. You will need to understand and implement Javascript coding
    +and be familiar with object orientated programming principles and modern
    +software design.</p>
    +
    +<p>You do not need knowledge of the underlying vector graphics
    +language that the browser uses, such as SVG, VML or HTML canvas. mxGraph
    +abstracts the description of the visual component into one API.</p>
    +
    +<h3><a name="Getting_help"></a>Getting Additional help</h3>
    +
    +<p>There are many mechanisms for receiving help for working with the
    +mxGraph software. The community help <a
    +	href="http://forum.jgraph.com" name="JGraph Community Forum">forum</a>
    +provides free assistance to mxGraph users. The forums combine the
    +advantages of many users helping to answer questions along with the
    +guidance of active mxGraph developers ensuring the quality and
    +correctness of responses and that as many questions as possible are
    +answered. However, there is no assurance of getting free assistance,
    +either the answer being correct, or getting an answer at all. If your
    +question is non-trivial there is less chance of a developer finding free
    +time to analyse your problem, please try to break the problem down into
    +simple issues and provide as much information and examples as you can.</p>
    +
    +<p>When posting at the forums these <a
    +	href="http://forum.jgraph.com/questions/8/how-to-post-mxgraph-questions">posting
    +guidelines</a> will help you get a better answer and encourage more people
    +to help you. If you are a paying customer, please use the support mechaism(s) 
    +specified in your purchase email.</p>
    +<br/>
    +
    +<h1><a name="Getting_Started"></a>Getting Started</h1>
    +
    +<h2><a name="mxgraph_site"></a>The mxGraph Web Site</h2>
    +
    +<p>To start, navigate to the <a
    +	href="http://www.jgraph.com/mxgraph.html">mxGraph web site</a>. The
    +most useful areas to you when starting mxGraph are listed below. Use the
    +navigation bars on the top and bottom to locate the appropriate section:
    +</p>
    +<ul>
    +	<li><a href="http://www.jgraph.com/mxdownload.html">Download</a>
    +	&ndash; Here you can download the latest evaluation copy. See section
    +	below on evaluation for more details.</li>
    +	<li><a href="http://forum.jgraph.com">Forum</a> - Here
    +	you can ask the JGraph community your questions. A timely and correct
    +	answer cannot be guaranteed, however the JGraph developers tend to keep
    +	a close eye on questions posted. Try to break your problem down into
    +	single smaller questions. If you post asking to have someone write your
    +	project for you, you are unlikely to receive a reply. If you require
    +	commercial-level support please contact support@jgraph.com. Before
    +	posting to the forum please search the documentation, the FAQs and
    +	search the forum using the search facility provided. The JGraph team
    +	have spent a great deal of effort putting those resources in place,
    +	please try to save them having to point you at them because you have
    +	not searched yourself. Use tags correctly, 'mxgraph' is the product, 
    +	'bug' if you are reporting one, 'feature' for a feature request, etc.</li>
    +</ul>
    +
    +<h3><a name="obtaining_mxgraph"></a>Obtaining mxGraph</h3>
    +
    +<p>To evaluate mxGraph:</p>
    +
    +<ul>
    +	<li>Navigate to the <a
    +		href="http://www.jgraph.com/mxdownload.html">evaluation download
    +	page</a>.</li>
    +	<li>Select the check box to indicate agreement to the license and
    +	click the button &quot;Download Now&quot; to download.</li>
    +	<li>The downloaded package is zipped, unzip to your preferred
    +	location.</li>
    +	<li>Within the package under javascript/examples you will find a
    +	number of html files that demonstrate how to invoke the library within
    +	a web page.</li>
    +	<li>To create your own example, copy the basic structure of the
    +	examples and add your extensions/changes to the onload invoked
    +	JavaScript main function.</li>
    +	<li>The evaluation copy is valid for 90 days after download. If
    +	you wish to continue evaluation please use the <a
    +		href="http://jgraph.com/contact.html">contact form</a>.</li>
    +	<li>For commercial evaluations looking for commercial grade
    +	evaluation support, again, please use the <a
    +		href="http://jgraph.com/contact.html">contact form</a>.</li>
    +</ul>
    +
    +<p>There is no functional difference between the evaluation and full
    +version of mxGraph.</p>
    +
    +<h3><a name="Installing_the_JGraph_Suite"></a>Installing mxGraph</h3>
    +
    +<p>Both the evaluation and full versions of mxGraph are delivered as
    +zip files. Unzip the package to your preferred location, a folder named
    +mxGraph will be created there, this folder is the root folder of the
    +mxGraph installation.</p>
    +
    +<h3><a name="project_structure"></a>Project structure and build
    +options</h3>
    +
    +<p>Once unzipped you will be presented with a number of files and
    +directories in the installation root.</p>
    +
    +<TABLE WIDTH=642 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4
    +	CELLSPACING=0>
    +	<COL WIDTH=165>
    +	<COL WIDTH=459>
    +	<THEAD>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>/doc</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>Documentation root, includes this user manual</p>
    +			</TD>
    +		</TR>
    +	</THEAD>
    +	<TBODY>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>/dotnet</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>.NET server-side classes</p>
    +			</TD>
    +		</TR>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>/java</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>Java server-side classes</p>
    +			</TD>
    +		</TR>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>/javascript</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>JavaScript client functionality.</p>
    +			</TD>
    +		</TR>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>/javascript/examples</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>HTML examples demonstrating the use of mxGraph</p>
    +			</TD>
    +		</TR>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>ChangeLog</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>Details of the changes between releases</p>
    +			</TD>
    +		</TR>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>index.html</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>Basic introduction to the library</p>
    +			</TD>
    +		</TR>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>license.txt</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>The licensing terms under which you must use the library</p>
    +			</TD>
    +		</TR>
    +	</TBODY>
    +</TABLE>
    +
    +<p><em>Table: Project Directory Structure</em></p>
    +<br/>
    +
    +<h2><a name="web_applications"></a>JavaScript and Web Applications</h2>
    +
    +<p>Web applications, specifically the use of JavaScript to attempt
    +to emulate desktop application-like behaviour in web browsers, is still
    +a relatively new field of software engineering. There are three main
    +issues with JavaScript that are perceived to be a barrier to producing
    +high quality applications, performance, lack of native functionality
    +available in desktop applications and inconsistent APIs between
    +browsers.</p>
    +
    +<p>There has been considerable effort toward developing framework
    +libraries to solve two of the problems, the functionality and API
    +issues. The requirements of many of these libraries is driven by both
    +improving web site design and usability, as well as to assist production
    +of what we generally refer to as application features (menus, windows,
    +dialogs, persistence, event handling, etc). They also provide certain
    +base functionalities missing in JavaScript that desktop application
    +developers take for granted, such as basic maths and collections
    +functionality.</p>
    +
    +<p>Many of these JavaScript frameworks have IDE support for
    +development nowadays and all of the major browsers now contain
    +JavaScript debuggers, either natively or as a plug-in. There is no
    +compilation phase with JavaScript (it is an interpreted language) so
    +basic typographical errors are often only caught at runtime, unless you
    +obtain a syntax checking tool in your IDE. So although there is not one
    +complete package for your JavaScript development needs, there are a
    +number of vendors providing the individual components you need to
    +produce JavaScript applications effectively.</p>
    +
    +<h3><a name="ajax"></a>AJAX</h3>
    +
    +<p><a href="http://en.wikipedia.org/wiki/AJAX">AJAX</a> is a very
    +fashionable term applied freely to make JavaScript applications sound
    +more modern. The idea of AJAX was originally to enable communication
    +with a server without leaving the client browser hanging in a loop
    +waiting for the response. Strictly speaking, the basic functioning of
    +mxGraph involves no AJAX. All of the interaction and model changes are
    +applied on the client in JavaScript.</p>
    +
    +<p>Alternative approaches to display interaction diagrams have been
    +taken that use the AJAX approach, but be weary of the AJAX term to suggest
    +that the solution is technological more advanced. Going back to the
    +server for interaction changes, in particular, cause serious delays in
    +updating the UI, often making the application unusable.</p>
    +
    +<h3><a name="js_frameworks"></a>Third-Party JavaScript Frameworks</h3>
    +
    +<h4><a name="GWT"></a>Google Web Toolkit</h4>
    +
    +<p>Given the apparent complexity from a desktop developer's point of
    +view, a common approach is to use the <a
    +	href="http://code.google.com/webtoolkit/">Google Web Toolkit (GWT)</a>.
    +GWT provides many commonly required web application features by
    +translating Java into JavaScript. This JavaScript can be deployed just
    +as natively written JavaScript is. GWT also provides the option to
    +obfuscate the resulting JavaScript. (See later section on obfuscation in
    +this chapter).</p>
    +
    +<p>The key advantages of GWT are:</p>
    +
    +<ul>
    +	<li>Reuses Java developer knowledge,</li>
    +	<li>Allows debugger of the Java source,</li>
    +	<li>Resolves cross-browser issues,</li>
    +	<li>Native code can be interleaved with Java,</li>
    +	<li>Certain compile-time errors can be detected before execution.</li>
    +</ul>
    +
    +<p>The key disadvantages of GWT are:</p>
    +
    +<ul>
    +	<li>Commercial support is not available from the developers,</li>
    +	<li>The higher the level of abstraction, the more difficult it is
    +	to implement features that go against the architecture and to debug
    +	when things go wrong,</li>
    +	<li>It's use may deter from learning and understanding JavaScript,
    +	which is ultimately necessary to implement certain new features.</li>
    +</ul>
    +
    +<p>In summary, consider GWT for simpler projects, but be careful of
    +placing to much emphasis on it as a tool that avoids having to learn
    +JavaScript properly.</p>
    +
    +<h4><a name="native_js_frameworks"></a>Native JavaScript Frameworks
    +and Libraries</h4>
    +
    +<p>Rather than list and compare every JavaScript framework, please
    +see the wikipedia entries for <a
    +	href="http://en.wikipedia.org/wiki/List_of_JavaScript_libraries#JavaScript">web
    +application frameworks</a> and the <a
    +	href="http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks">comparison
    +of JavaScript</a>. The comparison should not be considered authoritative,
    +more so it illustrates the types of features provided, such as event
    +handling, animation, widgets, AJAX request support etc. <a
    +	href="http://javascriptlibraries.com/">This site</a> is also a useful
    +list of JavaScript libraries, mostly being open/free source licensed.</p>
    +
    +<p>Be aware that many frameworks add implicit behaviours to make
    +JavaScript appear more like an OO language and to increase the base
    +functionality of the language. During the writing of the layout portion
    +of mxGraph, it was found that this implicit behaviour broke an example
    +in a very hard to debug manner. Be aware that this may cause
    +problems and if you select a framework ensure you understand which
    +implicit behaviours it introduces.</p>
    +
    +<p>When selecting a framework and/or libraries think about which
    +frameworks tie you into certain functional behaviour and look for
    +libraries that provide features such as animation as distinct,
    +independent blocks, that you can use without being tied into the overall
    +design.</p>
    +
    +<h4><a name="integration_js_frameworks"></a>Integration of mxGraph
    +and JavaScript frameworks</h4>
    +
    +<p>This area is often misunderstood, put simply, there is no <em>integration</em>
    +required. Web applications generally comprise one or more <a
    +	href="http://en.wikipedia.org/wiki/Span_and_div"><em>div</em></a>
    +elements into which the HTML wrapping the JavaScript of the application
    +is placed. If you create a div as a container for an mxGraph, that area
    +is a stand-alone display for the mxGraph application. It can communicate
    +itself with any back-end server, but there is no interdependence between
    +that div and the rest of the page, other than the area each take up.
    +This includes event handling, mxGraph can handle the events for its
    +container, even if the rest of the web page used a completely different
    +event model. As long as neither mxGraph nor the other libraries and
    +frameworks on the page introduce implicit behaviours that break one part
    +of the page, the issue of client integration is not something that needs
    +analysis.</p>
    +
    +<p>Integration of the mxGraph back-end functionality, that which
    +sits at the server-side is the subject of a later chapter.</p>
    +
    +<h4><a name="extending_mxgraph"></a>Extending mxGraph in JavaScript</h4>
    +
    +<p>In JavaScript, there are various ways of mapping the Object
    +Oriented paradigm to language constructs. mxGraph uses a particular
    +scheme throughout the project, with the following implicit rules:</p>
    +
    +<ul>
    +	<li>Do not change the built-in prototypes</li>
    +	<li>Donot try to limit the power of the JavaScript language.</li>
    +
    +</ul>
    +
    +<p>There are two types of &ldquo;classes&rdquo; in mxGraph; <EM>classes</em>
    +and <EM>singletons</em> (where only one instance of the class exists).
    +Singletons are mapped to global objects where the variable name is the
    +same as the class name. For example, mxConstants is an object with all
    +the constants defined as object fields. Normal classes are mapped to a
    +constructor function and a prototype which defines the instance fields
    +and methods. For example, mxEditor is a function and mxEditor.prototype
    +is the prototype for the object that the mxEditor function creates. The
    +<em>mx</em> prefix is a convention that is used for all classes in the
    +mxGraph package to avoid conflicts with other objects in the global
    +namespace.</p>
    +
    +<p>For subclassing, the superclass must provide a constructor that
    +is either parameterless or handles an invocation with no arguments.
    +Furthermore, the special constructor field must be redefined after
    +extending the prototype. For example, the superclass of mxEditor is
    +mxEventSource. This is represented in JavaScript by first
    +&ldquo;inheriting&rdquo; all fields and methods from the superclass by
    +assigning the prototype to an instance of the superclass, eg.</p>
    +<pre>mxEditor.prototype = new mxEventSource()</pre>
    +<p>and redefining the constructor field using:</p>
    +
    +<pre>mxEditor.prototype.constructor = mxEditor</pre>
    +
    +<p>The latter rule is applied so that the type of an object can be
    +retrieved via the name of it&rsquo;s constructor using <EM>mxUtils.getFunctionName(obj.constructor)</em>.</p>
    +
    +<h5><a name="constructor"></a>Constructor</h5>
    +
    +<p>For subclassing in mxGraph, the same mechanism should be applied.
    +For example, for subclassing the mxGraph class, first a constructor must
    +be defined for the new class. The constructor calls the super
    +constructor with any arguments that it may have using the <em>call</em>
    +function on the mxGraph function object, passing along explicitly each
    +argument:</p>
    +<pre>
    +function MyGraph(container)
    +{
    +   mxGraph.call(this, container);
    +}
    +</pre>
    +
    +<p>The prototype of MyGraph inherits from mxGraph as follows. As
    +usual, the constructor is redefined after extending the superclass:</p>
    +
    +<pre>MyGraph.prototype = new mxGraph();
    +MyGraph.prototype.constructor = MyGraph;</pre>
    +
    +<p>You may want to define the codec associated for the class after
    +the above code (see I/O section of manual). This code will be executed
    +at class loading time and makes sure the same codec is used to encode
    +instances of mxGraph and MyGraph.</p>
    +
    +<pre>
    +var codec = mxCodecRegistry.getCodec(mxGraph);
    +codec.template = new MyGraph();
    +mxCodecRegistry.register(codec);
    +</pre>
    +
    +<h5><a name="functions"></a>Functions</h5>
    +
    +<p>In the prototype for MyGraph, functions of mxGraph can be
    +extended as follows.</p>
    +<pre>
    +MyGraph.prototype.isSelectable = function(cell)
    +{
    +   var selectable = mxGraph.prototype.isSelectable.apply(this, arguments);
    +   var geo = this.model.getGeometry(cell);
    +   return selectable &amp;&amp;(geo == null || !geo.relative);
    +}
    +</pre>
    +
    +<p>The supercall in the first line is optional. It is done using the
    +<em>apply</em> function on the <em>isSelectable</em> function object of
    +the mxGraph prototype, using the special <em>this</em> andn <em>arguments</em>
    +variables as parameters. Calls to the superclass function are only
    +possible if the function is not replaced in the superclass as follows,
    +which is another way of &ldquo;subclassing&rdquo; in JavaScript.</p>
    +
    +<pre>
    +mxGraph.prototype.isSelectable = function(cell)
    +{
    +   var geo = this.model.getGeometry(cell);
    +   return selectable &amp;&amp; (geo == null || !geo.relative);
    +}
    +</pre>
    +
    +<p>The above scheme is useful if a function definition needs to be
    +replaced completely.</p>
    +<p>In order to add new functions and fields to the subclass, the
    +following code is used. The example below adds a new function to return
    +the XML representation of the graph model:</p>
    +<pre>
    +MyGraph.prototype.getXml = function()
    +{
    +   var enc = new mxCodec();
    +   return enc.encode(this.getModel());
    +}
    +</pre>
    +
    +<h5><a name="fields"></a>Fields</h5>
    +<p>Likewise, a new field is declared and defined as follows:</p>
    +<pre>
    +MyGraph.prototype.myField = &lsquo;Hello, World!&rsquo;;
    +</pre>
    +<p>Note that the value assigned to myField is created only once,
    +that is, all instances of MyGraph share the same value. If you require
    +instance-specific values, then the field must be defined in the
    +constructor instead. For example:</p>
    +<pre>
    +function MyGraph(container)
    +{
    +   mxGraph.call(this, container);
    +   this.myField = [];
    +}
    +</pre>
    +<p>Finally, a new instance of MyGraph is created using the following
    +code, where container is a DOM node that acts as a container for the
    +graph view:</p>
    +<pre>
    +var graph = new MyGraph(container);
    +</pre>
    +<br/>
    +
    +<h3><a name="general_javascript"></a>General JavaScript Development</h3>
    +
    +<h4><a name="development_environments"></a>JavaScript Development
    +Environments</h4>
    +<p>Please refer to the <a
    +	href="http://extjs.com/learn/Manual:Resources#IDEs">ExtJS manual
    +entry</a> on the subject.</p>
    +
    +<h4><a name="debugging_javascript"></a>Debugging JavaScript</h4>
    +<p>Please refer to the <a
    +	href="http://en.wikipedia.org/wiki/JavaScript#Debugging">wikipedia
    +entry</a>, or to the <a
    +	href="http://extjs.com/learn/Manual:Resources#Various_debugging_tools">ExtJS
    +manual entry</a>, for information on the subject.</p>
    +
    +<h4><a name="javascript_obfuscation"></a>JavaScript Obfuscation</h4>
    +<p>By default, when you deliver JavaScript to a browser client, you
    +deliver the entire source to that JavaScript. That JavaScript is then
    +interpreted and run on the browser. It is not possible to encrypt the
    +JavaScript to any extent on the client at the point it is run, since the
    +JavaScript source must be understood by the JavaScript interpretor and
    +interpreted languages do not have a binary intermediate form.</p>
    +
    +<p>It would be possible to encrypt the JavaScript in transmission
    +and have it decrypted and run on the client, but the client would still
    +be able to access the source after decryption.</p>
    +
    +<p>We do not obfuscate because the method names form a public API
    +and I/O would need to understand the obfuscation at both communication
    +ends.</p>
    +
    +<h4><a name="namespaces"></a>Namespaces</h4>
    +<p>The concept of namespaces does not exist in JavaScript, so take
    +great care when creating new class names. In mxGraph, all of the classes
    +begin with the prefix &ldquo;mx-&rdquo;, to avoid clashes or overriding
    +prototypes unintentionally. Prior to starting your application it is
    +worth creating a prefix particular to your application that you append
    +to all of the your classes to create a manual &ldquo;namespace&rdquo;.</p>
    +
    +<br/>
    +<h2><a name="hello_world"></a>Hello World!</h2>
    +<p>Hello World in mxGraph consists of a simple client-side example
    +that displays two connected vertices with the labels &ldquo;Hello&rdquo;
    +and &ldquo;World!&rdquo;. The example demonstrates the following things:
    +</p>
    +
    +<ul>
    +	<li><strong>Creating an HTML page that links the mxGraph
    +	client JavaScript,</strong></li>
    +	<li><strong>Creating a container to place the mxGraph
    +	into,</strong></li>
    +	<li><strong>Adds the required cells to that graph.</strong></li>
    +</ul>
    +
    +<p>The source code for the example, helloworld.html, can be found
    +below and in the examples directory of both the evaluation and full
    +versions of mxGraph. The HTML source contains two main sections, the
    +head and the body. These contain the following main elements that you
    +can consider a template for building a basic mxGraph application:</p>
    +
    +<ul>
    +	<li><strong>mxBasePath</strong>: This is a JavaScript variable
    +	that defines the directory within which the css, images, resources and js
    +	directories are expected to be found. It is JavaScript code and needs
    +	to be placed with in a <em>script</em> tag. This must come before the
    +	line loading mxClient.js and should not have a trailing slash.</li>
    +
    +	<li><strong>mxClient.js</strong>: This is the path to mxGraph
    +	library. If the HTML file is executed locally, the path might be local
    +	to the computer or a public Internet path. If the html page were
    +	downloaded from a web server, the path would generally be a public
    +	Internet path.</li>
    +
    +	<li><strong>Creation of the container</strong>: At the bottom of
    +	the code, in the body element, the function that is called on loading
    +	the web page is defined (the value of onload). It passes in a div
    +	container as a parameter, that is defined underneath. This div is the
    +	container the mxGraph component will be placed within. In this example
    +	a grid background is applied, as commonly used in diagramming
    +	applications. No other part of the graph visuals are described at
    +	container creation, other than the background and the container width
    +	and height.
    +
    +	<p>Note that the overflow:hidden style should always be used if you
    +	want no scrollbars to appear.</p>
    +
    +	</li>
    +
    +	<li><strong>The entry function</strong>: The main code of the file
    +	is the entry method executed on page load in this case. This is
    +	JavaScript code and must be within a JavaScript <em>script</em>
    +	element. The first lines of any mxGraph application should be to check
    +	the browser is supported and exit appropriately if not. If the browser
    +	is supported, a mxGraph is created within the div container and three
    +	cells are added to the graph between the begin/end update calls.</li>
    +</ul>
    +<br/>
    +<p><img src="images/mx_man_hello_world.png" name="ill_hello_world" />
    +<br/>
    +<em>The mxGraph HelloWorld example</em></p>
    +<br/>
    +
    +<pre>
    +&lt;html&gt;
    +&lt;head&gt;
    +   &lt;title&gt;Hello, World! example for mxGraph&lt;/title&gt;
    +
    +   &lt;!-- Sets the <U>basepath</U> for the library if not in same directory --&gt;
    +   &lt;script type=<em>&quot;text/javascript&quot;</em>&gt;
    +      mxBasePath = '../src';
    +   &lt;/script&gt;
    +
    +   &lt;!-- Loads and <U>initializes</U> the library --&gt;
    +   &lt;script type=<em>&quot;text/javascript&quot;</em> src=<em>&quot;../src/js/mxClient.js&quot;</em>&gt;&lt;/script&gt;
    +
    +   &lt;!-- Example code --&gt;
    +   &lt;script type=<em>&quot;text/javascript&quot;</em>&gt;
    +      // Program starts here. Creates a sample graph in the
    +      // DOM node with the specified ID. This function is invoked
    +      // from the onLoad event handler of the document (see below).
    +      function main(container)
    +      {
    +         // Checks if the browser is supported
    +         if (!mxClient.isBrowserSupported())
    +         {
    +            mxUtils.error('Browser is not supported!', 200, false);
    +         }
    +         else
    +         {
    +            // Creates the graph inside the given container
    +            var graph = new mxGraph(container);
    +
    +            // Enables rubberband selection
    +            new mxRubberband(graph);
    +
    +            // Gets the default parent for inserting new cells. This
    +            // is normally the first child of the root (ie. layer 0).
    +            var parent = graph.getDefaultParent();
    +
    +            // Adds cells to the model in a single step
    +            graph.getModel().beginUpdate();
    +            try
    +            {
    +               var v1 = graph.insertVertex(parent, null,
    +                        'Hello,', 20, 20, 80, 30);
    +               var v2 = graph.insertVertex(parent, null,
    +                        'World!', 200, 150, 80, 30);
    +               var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +            }
    +            finally
    +            {
    +               // Updates the display
    +               graph.getModel().endUpdate();
    +            }
    +         }
    +      };
    +   &lt;/script&gt;
    +&lt;/head&gt;
    +
    +&lt;!-- Page passes the container for the graph to the program --&gt;
    +&lt;body onload=<em>&quot;main(document.getElementById('graphContainer'))&quot;</em>&gt;
    +
    +   &lt;!-- Creates a container for the graph with a grid wallpaper --&gt;
    +   &lt;div id=<em>&quot;graphContainer&quot;</em>
    +      style=<em>&quot;overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif')&quot;</em>&gt;
    +   &lt;/div&gt;
    +&lt;/body&gt;
    +&lt;/html&gt;
    +</pre>
    +
    +<p>Important concepts to note in this exercise are:</p>
    +<ul>
    +	<li>mxClient.js is a JavaScript file combining all of the
    +	JavaScript source code of mxGraph. When downloading from a web server,
    +	obtaining all the JavaScript as one file is much faster than as lots of
    +	separate files, due to the overhead of the requests/acknowledgements
    +	required for each file. The speed increase is usually at least x2,
    +	although it varies with the capacity of the server to have parallel
    +	sockets open with one client.</li>
    +	<li>The JavaScript code and its dependencies are all placed within
    +	the <em>head</em> element.</li>
    +	<li>Internet Explorer has, by default, security options enabled
    +	that cause a user prompt when attempting to run JavaScript from the
    +	local file system. This can be disabled in the options menu, but note
    +	that running from the local file system is not a deployment scenario of
    +	mxGraph, this would only happen during development.</li>
    +	<li>Your application can be written and linked into the
    +	application either within the HTML file, or in separate JavaScript
    +	source code that is linked into the html in the way the mxClient.js
    +	file is in the example.</li>
    +</ul>
    +
    +<h2><a name="deployment"></a>mxGraph Deployment and Debugging</h2>
    +
    +<p>There are two versions of the mxclient.js file, one for production use and
    +a second for development/debugging use. <em>javascript/src/js/mxClient.js</em> is
    +the production version and <em>javascript/debug/js/mxClient.js</em> is for
    +development. The first version has all linefeeds stripped to ensure the
    +file is the minimal size possible. This has the side-effect of breaking most
    +JavaScript debuggers. During development you are advised to use the debug
    +version, which has the linefeeds in, enabling debugging in the supported
    +browsers.</p>
    +
    +<p>Both mxClient.js files are the entire JavaScript source to mxGraph,
    +with all of the whitespace and comments removed to reduce file size.
    +Whilst debugging, it is easier to use the individual source files if you
    +need to debug into the mxGraph library itself. The source code version of
    +mxGraph contains the full source in the source.zip file in the
    +<em>javascript/devel</em> directory. Unzipping this into the mxBasePath and removing
    +the load of the complete mxClient.js file enables easier debugging of mxGraph.
    +Note that the mxclient.js file in the source zip is a bootstrap file that
    +loads all the other JavaScript source code.</p>
    +
    +<p>The download speed of the client source can be further improved
    +by compressing the code. All modern browsers support receiving and
    +uncompressing transmissions compressed at the server end and all good
    +web servers support detection of those browser that do not support it
    +and send the uncompressed version as a fallback.</p>
    +
    +<p>For example, on the Apache web server there is a mod_deflate
    +module, details of its use can be found from a standard search. The
    +jgraph.com server uses this module and there have been no reports of
    +issues in any supported browser.</p>
    +
    +<p>The use of compression reduces the mxClient.js file size down
    +from about 600KB to around 130KB. The difference is not noticed by the
    +user on most modern networks, but there might be situations where the
    +smaller version would be preferable.</p>
    +
    +<br/>
    +<h1><a name="model_cells"></a>mxGraph Model and Cells</h1>
    +
    +<h2><a name="mxgraph_architecture"></a>Core mxGraph architecture</h2>
    +
    +<h3><a name="mxgraph_model"></a>The mxGraph Model</h3>
    +
    +<p>The mxGraph model is the core model that describes the structure
    +of the graph, the class is called mxGraphModel and is found within the
    +model package. Additions, changes and removals to and from the graph
    +structure take place through the graph model API. The model also
    +provides methods to determine the structure of the graph, as well as
    +offering methods to set visual states such as visibility, grouping and
    +style.</p>
    +
    +<p>However, although the transactions to the model are stored on the
    +model, mxGraph is designed in such a way that the main public API is
    +through the mxGraph class. The concept of &ldquo;add this cell to the
    +graph&rdquo; is a more natural description of the action than &ldquo;add
    +this cell to the model of the graph&rdquo;. Where it is intuitive,
    +functions available on the model and cells are duplicated on the graph
    +and those methods on the graph class are considered the main public API.
    +Throughout the rest of this manual these key API methods are given a pink background:</p>
    +<div id="coreapi">
    +<p>anExampleCoreAPIMethod()</p>
    +</div>
    +
    +<p>So, though many of the main API calls are through the mxGraph
    +class, keep in mind that mxGraphModel is the underlying object that
    +stores the data structure of your graph.</p>
    +
    +<p>mxGraph uses a transactional system for making changes to the
    +model. In the HelloWorld example we saw this code:</p>
    +
    +<pre>
    +// Adds cells to the model in a single step
    +graph.getModel().beginUpdate();
    +try
    +{
    +   var v1 = graph.addVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +   var v2 = graph.addVertex(parent, null, 'World!', 200, 150, 80, 30);
    +   var e1 = graph.addEdge(parent, null, '', v1, v2);
    +}
    +finally
    +{
    +   // Updates the display
    +   graph.getModel().endUpdate();
    +}
    +</pre>
    +
    +<p>to perform the insertion of the 2 vertices and 1 edge. For each
    +change to the model you make a call to beginUpdate(), make the
    +appropriate calls to change the model, then call endUpdate() to finalize
    +the changes and have the change event notifications sent out.</p>
    +
    +<div id="coreapi">
    +<p><strong>Key API Methods:</strong></p>
    +
    +<ul>
    +	<li><strong>mxGraphModel.beginUpdate() </strong>- starts a new
    +	transaction or a sub-transaction.</li>
    +	<li><strong>mxGraphModel.endUpdate()</strong> - completes a
    +	transaction or a sub-transaction.</li>
    +	<li><strong>mxGraph.addVertex()</strong> - Adds a new vertex to
    +	the specified parent cell.</li>
    +	<li><strong>mxGraph.addEdge()</strong> - Adds a new edge to the
    +	specified parent cell.</li>
    +</ul>
    +</div>
    +
    +<p><strong>Note</strong> &ndash; Technically you do not have to
    +surround your changes with the begin and end update calls. Changes made
    +outside of this update scope take immediate effect and send out the
    +notifications immediately. In fact, changes within the update scope
    +enact on the model straight away, the update scope is there to control
    +the timing and concatenation of event notifications. Unless the update
    +wrapping causes code aesthetic issues, it is worth using it by habit to
    +avoid possible problems with event and undo granularity.</p>
    +
    +<p>Note the way in which the model changes are wrapped in a try
    +block and the endUpdate() in a finally block. This ensures the update is
    +completed, even if there is an error in the model changes. You should
    +use this pattern wherever you perform model changes for ease of
    +debugging.</p>
    +
    +<p>Ignore the reference to the parent cell for now, that will be
    +explained later in this chapter.</p>
    +
    +<h3><a name="transaction_model"></a>The Transaction Model</h3>
    +
    +<p>The sub-transaction in the blue block above refers to the fact
    +that transactions can be nested. That is, there is a counter in the
    +model that increments for every <em>beginUpdate</em> call and decrements
    +for every <em>endUpdate</em> call. After increasing to at least 1, when
    +this count reaches 0 again, the model transaction is considered complete
    +and the event notifications of the model change are fired.</p>
    +
    +<p>This means that every sub-contained section of code can (and
    +should) be surrounded by the begin/end combination. This provide the
    +ability in mxGraph to create separate transactions that be used as
    +&ldquo;library transactions&rdquo;, the ability to create compound
    +changes and for one set of events to be fired for all the changes and
    +only one undo created. Automatic layouting is a good example of where
    +the functionality is required.</p>
    +
    +<p>In automatic layouting, the user makes changes to the graph,
    +usually through the user interface, and the application automatically
    +positions the result according to some rules. The automatic positioning,
    +the layouting, is a self-contained algorithm between begin/end update
    +calls that has no knowledge of the specifics of the change. Because all
    +changes within the begin/end update are made directly to the graph
    +model, the layout can act upon the state of the model as the change is
    +in progress.</p>
    +
    +<p>It is important to distinguish between functionality that acts on
    +the graph model as part of a compound change and functionality that
    +reacts to atomic graph change events. In the first case, such as for
    +automatic layouting, the functionality takes the model as-is and acts
    +upon it. This method should only be used for parts of compound model
    +changes. All other parts of the application should only react to model
    +change events.</p>
    +
    +<p>Model change events are fired when the last endUpdate call
    +reduces the counter back down to 0 and indicate that at least one atomic
    +graph change has occurred. The change event contains complete
    +information as to what has altered (see later section on <strong>Events</strong>
    +for more details).</p>
    +
    +<h4><a name="model_change_methods"></a>The Model Change Methods</h4>
    +
    +<p>Below is a list of the methods that alter the graph model and
    +should be placed, directly or indirectly, with the scope of an update:</p>
    +
    +<ul>
    +	<li>add(parent, child, index)</li>
    +	<li>remove(cell)</li>
    +	<li>setCollapsed(cell, collapsed)</li>
    +	<li>setGeometry(cell, geometry)</li>
    +	<li>setRoot(root)</li>
    +	<li>setStyle(cell, style)</li>
    +	<li>setTerminal(cell, terminal, isSource)</li>
    +	<li>setTerminals(edge,source,target)</li>
    +	<li>setValue(cell, value)</li>
    +	<li>setVisible(cell, visible)</li>
    +</ul>
    +
    +<p>Initially, we will just concern ourselves with the add and
    +remove, as well as the geometry and style editing methods. Note that
    +these are not core API methods, as usual these methods are on the
    +mxGraph class, where appropriate, and they perform the update
    +encapsulation for you.</p>
    +
    +<p><em>Design Background</em> - Some people are confused by the
    +presence of visual information being stored by the model. These
    +attributes comprise cell positioning, visibility and collapsed state.
    +The model stores the default state of these attributes, providing a
    +common place to set them on a per-cell basis, whereas, views can
    +override the values on a per-view basis. The model is simply the first
    +common place in the architecture where these attributes can be set on a
    +global basis. Remember, this is a graph <em>visualization</em> library,
    +the visualization part is the core functionality.</p>
    +
    +<h5><a name="inserting_cells"></a>Inserting Cells</h5>
    +
    +<p>The three graph cells created in the <CODE>HelloWorld</CODE>
    +application are two vertices and one edge connecting the vertices. If
    +you are not familiar with basic graph theory and its terminology, please
    +see the <a href="http://en.wikipedia.org/wiki/Graph_theory">wikipedia
    +entry</a>.</p>
    +
    +<p>You can add vertices and edges using the add() method on the
    +model. However, for the purposes of general usage of this library, learn
    +that mxGraph.insertVertex() and mxGraph.insertEdge() are the core public
    +API for adding cells. The function of the model requires that the cell
    +to be added is already created, whereas the mxGraph.insertVertex()
    +creates the cell for you.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API functions:</strong></p>
    +
    +<ul>
    +	<li><strong>mxGraph.insertVertex(</strong><strong>parent,
    +	id, value, x, y, width, height, style</strong><strong>)</strong> &ndash; creates
    +	and inserts a new vertex into the model, within a begin/end update
    +	call.</li>
    +	<li><strong>mxGraph.insertEdge(</strong><strong>parent,
    +	id, value, source, target, style</strong><strong>)</strong><strong>
    +	&ndash; </strong>creates and inserts a new edge into the model, within a
    +	begin/end update call.</li>
    +</ul>
    +</div>
    +
    +<p><code>mxGraph.insertVertex()</code> will create an mxCell object
    +and return it from the method used. The parameters of the function are:</p>
    +
    +<ul>
    +<li><strong>parent</strong> &ndash; the cell which is the immediate
    +parent of the new cell in the group structure. We will address the
    +group structure shortly, but for now use <code>graph.getDefaultParent();</code>
    +as your default parent, as used in the HelloWorld example.</li>
    +
    +<li><strong>id</strong> &ndash; this is a global unique identifier
    +that describes the cell, it is always a string. This is primarily for
    +referencing the cells in the persistent output externally. If you do not
    +wish to maintain ids yourself, pass null into this parameter and ensure
    +that mxGraphModel.isCreateIds() returns true. This way the model will
    +manage the ids and ensure they are unique.</li>
    +
    +<li><strong>value</strong> &ndash; this is the user object of the
    +cell. User object are simply that, just objects, but form the objects
    +that allow you to associate the business logic of an application with
    +the visual representation of mxGraph. They will be described in more
    +detail later in this manual, however, to start with if you use a string
    +as the user object, this will be displayed as the label on the vertex or
    +edge.</li>
    +
    +<li><strong>x, y, width, height</strong> &ndash; as the names
    +suggest, these are the x and y position of the top left corner of the
    +vertex and its width and height.</li>
    +
    +<li><strong>style</strong> &ndash; the style description to be
    +applied to this vertex. Styles will be described in more detail shortly,
    +but at a simple level this parameter is a string that follows a
    +particular format. In the string appears zero or more style names and
    +some number of key/value pairs that override the global style or set a
    +new style. Until we create custom styles, we will just use those
    +currently available.</li>
    +</ul>
    +
    +<p>With the edge addition method, the identically named parameters
    +perform the same function as in the vertex addition method. The source
    +and target parameters define the vertices to which the edge is
    +connected. Note that the source and target vertices should already have
    +been inserted into the model.</p>
    +
    +<h3><a name="mxcell"></a>mxCell</h3>
    +
    +<p>mxCell is the cell object for both vertices and edges. mxCell
    +duplicates many of the functions available in the model. The key
    +difference in usage is that using the model methods creates the
    +appropriate event notifications and undo, using the cell makes the
    +change but there is no record of the change. This can be useful for
    +temporary visual effects such as animations or changes on a mouse over,
    +for example. As a general rule though, use the model editing API unless
    +you encounter a specific problem with this mechanism.</p>
    +
    +<p>When creating a new cell, three things are required in the
    +constructor, a value (user object), a geometry and a style. We will now
    +explore these 3 concepts before returning to the cell.</p>
    +
    +<h4><a name="styles"></a>Styles</h4>
    +
    +<p>The concept of styles and stylesheets in conceptually similar to
    +CSS stylesheets, though note that CSS are actually used in mxGraph, but
    +only to affect global styles in the DOM of the HTML page. Open up the
    +util.mxConstants.js file in your editor and search for the first match
    +on &ldquo;STYLE_&rdquo;. If you scroll down you will see a large number
    +of strings defined for all the various styles available with this
    +prefix. Some of styles apply to vertices, some to edges and some to
    +both. As you can see, these define visual attributes on the element they
    +act upon.</p>
    +
    +<p>The mxStylesheet holds one object, styles, which is a hashtable
    +mapping style names to an array of styles:</p>
    +
    +<p><img src="images/mx_man_styles.png" name="graphics5"/><br/>
    +<em>Style arrays within the styles collection</em></p>
    +<br/>
    +
    +<p>In the above image the blue box represents the styles hashtable
    +in mxStyleSheet. The string 'defaultVertex' is the key to an array of
    +string/value pairs, which are the actual styles. Note that mxGraph
    +creates two default styles, one for vertices and one for edges. If you
    +look back to the helloworld example, no style was passed into the
    +optional style parameter of insertVertex or insertEdge. In this case the
    +default style would be used for those cells.</p>
    +
    +<h5><a name="setting_cell_style"></a>Setting the Style of a Cell</h5>
    +
    +<p>If you wanted to specify a style other than the default for a
    +cell, you must pass that new style either to the cell when it is created
    +(mxGraph's insertVertex and insertEdge both have an optional parameter
    +for this) or pass that style to the cell using model.setStyle().</p>
    +
    +<p>The style that you pass has the form stylename. ,note that the
    +stylenames and key/value pairs may be in any order. Below are examples
    +to demonstrate this concept, adapting the insertVertex call we saw in
    +helloworld:</p>
    +
    +<ol>
    +	<li>
    +	<p>A new style called 'ROUNDED' has been created, to apply this to
    +	a vertex:</p>
    +	<pre>var v1 = graph.insertVertex(parent, null, 'Hello', 20, 20, 80, 30, 'ROUNDED');</pre>
    +	</li>
    +
    +	<li>
    +	<p>To create a new vertex with the ROUNDED style, overriding the
    +	stroke and fill colors:</p>
    +	<pre>var v1 = graph.insertVertex(parent, null, 'Hello',  20, 20, 80, 30, 'ROUNDED;strokeColor=red;fillColor=green');</pre>
    +	</li>
    +
    +	<li>
    +	<p>To create a new vertex with no global style, but with local
    +	stroke and fill colors:</p>
    +	<pre>var v1 = graph.insertVertex(parent, null, 'Hello', 20, 20, 80, 30, ';strokeColor=red;fillColor=green');</pre>
    +	</li>
    +	<li>
    +	<p>To create a vertex that uses the defaultVertex style, but a
    +	local value of the fill color:</p>
    +	<pre>var v1 = graph.insertVertex(parent, null, 'Hello', 20, 20, 80, 30, 'defaultVertex;fillColor=blue');</pre>
    +	</li>
    +</ol>
    +
    +<br/>
    +<p>Note that default style must be explicitly named in this case,
    +missing the style out sets no global style on the cell when the
    +semi-colon starts the string. If the string starts with no semi-colon,
    +the default style is used.</p>
    +
    +<p>Again, the mxGraph class provides utility functions that form the
    +core API for accessing and changing the styles of cells:</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API functions:</strong></p>
    +
    +<ul>
    +<li>
    +<strong>mxGraph.setCellStyle(style, cells)</strong> &ndash; Sets
    +the style for the array of cells, encapsulated in a begin/end update.
    +</li>
    +<li>
    +<strong>mxGraph.getCellStyle(cell)</strong> &ndash; Returns the
    +style for the specified cell, merging the styles from any local style
    +and the default style for that cell type.
    +</li>
    +</ul>
    +</div>
    +
    +<h5><a name="new_global_style"></a>Creating a New Global Style</h5>
    +<p>To create the ROUNDED global style described above, you can
    +follow this template to create a style and register it with
    +mxStyleSheet:</p>
    +
    +<pre>
    +var style = new Object();
    +style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    +style[mxConstants.STYLE_OPACITY] = 50;
    +style[mxConstants.STYLE_FONTCOLOR]= '#774400';
    +graph.getStylesheet().putCellStyle('ROUNDED',style);
    +</pre>
    +
    +<h4><a name="geometry"></a>Geometry</h4>
    +
    +<p>In the helloworld example we saw the position and size of the
    +vertices passed into the insertVertex function. The coordinate system in
    +JavaScript is x is positive to the right and y is positive downwards,
    +and in terms of the graph, the positioning is absolute to the container
    +within which the mxGraph is placed.</p>
    +
    +<p>The reason for a separate mxGeometry class, as opposed to simply
    +having the mxRectangle class store this information, is that the edges
    +also have geometry information.</p>
    +
    +<p>The width and height values are ignored for edges and the x and y
    +values relate to the positioning of the edge label. In addition, edges
    +have the concept of control points. These are intermediate points along
    +the edge that the edge is drawn as passing through. The use of control
    +points is sometimes referred to as <strong>edge routing</strong>.</p>
    +
    +<p><img src="images/mx_man_edge_routing.png" name="ill_edge_routing"/><br/>
    +<em>An edge routed by 2 control points</em></p>
    +
    +<p>There are two more important additional concepts in geometry,
    +relative positioning and offsets</p>
    +
    +<h5><a name="relative_positioning"></a>Relative Positioning</h5>
    +
    +<p>By default, the x and y position of a vertex is the offset of the
    +top left point of the bounding rectangle of the parent to the top left
    +point of the bounding rectangle of the cell itself. The concept of
    +parents and groups is discussed later in this chapter, but without going
    +into too much detail, if a cell does not have cell parent, the graph
    +container is its parent for positioning purposes.</p>
    +
    +
    +<p><img src="images/mx_man_non_relative_pos.png"
    +	name="ill_non_realtive_pos"/><br/>
    +<em>Non-relative vertex positioning</em></p>
    +<br/>
    +
    +
    +<p>For an edge, in non-relative mode, which is the default mode, the
    +edge label position is the absolute offset from the graph origin.</p>
    +
    +
    +<p><img src="images/mx_man_non_realtive_edge_pos.png"
    +	name="ill_non_rel_edge_pos"/><br/>
    +<em>Non-relative edge label positioning</em></p>
    +<br/>
    +
    +
    +<p>For vertices in relative mode, (x,y) is the proportion along the
    +parent cell's (width, height) where the cell's origin lies. (0,0) is the
    +same origin as the parent, (1,1) places the origin at the bottom right
    +corner of the parent. The same relative positioning extends below 0 and
    +above 1 for both dimensions. This positioning is useful for keeping
    +child cells fixed relative to the overall parent cell size.</p>
    +
    +<p><img src="images/mx_man_rel_vert_pos.png" name="rel_vert_pos"/><br/>
    +<em>Relative vertex positions</em></p>
    +<br/>
    +
    +<p>Lastly, edge labels in relative mode are palced based on the
    +positioning from the center of the edge. The x-coordinate is the
    +relative distance from the source end of the edge, at -1, to the target
    +end of the edge, at 1. The y co-ordinate is the pixel offset orthogonal
    +from the edge. The diagram below shows the values of x,y for various
    +edge labels in relative mode. Note that for a straight edge, the
    +calculations are simple. For edges with multiple control points, the
    +edge has to be traced along its segments (a segment being the line
    +between end points and/or control points) to find the correct distance
    +along the edge. The y value is the orthogonal offset from that segment.</p>
    +
    +<p>Switching relative positioning on for edge labels is a common
    +preference for applications. Navigate to the mxGraph.insertEdge()
    +function in mxGraph, you will see this calls createEdge(). In
    +createEdge() the geometry is set relative for every edge created using
    +this prototype. This is partly the reason for the amount of helper
    +functions in mxGraph, they enable easy changing of the default
    +behaviour. You should try to use the mxGraph class API as much as
    +possible to provide this benefit in your applications.</p>
    +
    +<h5><a name="offsets"></a>Offsets</h5>
    +
    +<p>The offset field in mxGeometry is an absolute x,y offset applied
    +to the cell <strong>label</strong>. In the case of edge labels, the
    +offset is always applied after the edge label has been calculated
    +according to the relative flag in the above section.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API functions:</strong></p>
    +
    +<ul><li><strong>mxGraph.resizeCell(cell, bounds)</strong> &ndash; Resizes
    +the specified cell to the specified bounds, within a begin/end update
    +call.</li>
    +<li><strong>mxGraph.resizeCells(cells, bounds)</strong> &ndash;
    +Resizes each of the cells in the cells array to the corresponding entry
    +in the bounds array, within a begin/end update call.</li>
    +</ul>
    +</div>
    +
    +<h4><a name="user_objects"></a>User Objects</h4>
    +
    +<p>The User object is what gives mxGraph diagrams a context, it
    +stores the business logic associated with a visual cell. In the
    +HelloWorld example the user object has just been a string, in this case
    +it simply represents the label that will be displayed for that cell. In
    +more complex applications, these user objects will be objects instead.
    +Some attribute of that object will generally be the label that the
    +visual cell will display, the rest of the object describes logic
    +relating to the application domain.</p>
    +
    +<p>Using the example of a simple workflow or process application,
    +say we have the graph below (<a
    +	href="http://www.jgraph.com/demo/mxgraph/editors/workfloweditor.html">this
    +example is available online</a>, select the Swimlanes example from the tasks
    +window):</p>
    +
    +<p><img src="images/mx_man_simple_workflow.png"
    +	name="ill_simple_workflow"/><br/>
    +<em>A simple workflow</em></p>
    +<br/>
    +
    +<p>Typically, this workflow will exist on some application server
    +and/or database. The browser user connects to that server, or some
    +front-end server linked to the application server and the user's web
    +application requests the &ldquo;order&rdquo; workflow. The server
    +obtains the data of that workflow and transmits it to the client.</p>
    +
    +<p>mxGraph supports the process of populating the model on the
    +server-side and transmitting to the client, and back again. See the
    +later chapter on &ldquo;I/O and Server Communication&rdquo;.</p>
    +
    +<p>The data transmitted will be both the visual model (the diagram)
    +as well as the business logic (mostly contained in the user objects).
    +The client will initially show the diagram above. If the user has
    +permission to edit this workflow they will normally be able to do two
    +things, 1) edit the diagram, add and remove vertices, as well as
    +changing the connections, and 2) edit the user objects of the cells
    +(vertices and/or edges).</p>
    +
    +<p>In the online demo, if you right click and select properties of
    +the &ldquo;Check Inventory&rdquo; diamond you will see this dialog:</p>
    +
    +<p><img src="images/mx_man_vertex_props.png" name="ill_vertex_props"/><br/>
    +<em>The properties of a vertex</em></p>
    +<br/>
    +
    +<p>These properties show the geometry, label, ID etc, but a dialog
    +could just as easily show the user object of the cell. There might be a
    +reference to some process on the workflow engine as to how the inventory
    +is actually checked. This might be an application specific mechanism for
    +both the server and client to assign some identification to remote
    +method calls. Another value might be the type of object that process
    +returned, maybe a boolean or an integer to indicate stock level in this
    +case. Given that return type, it is possible to enforce constraints with
    +the diagram and provide visual alerts of if, say, the outgoing edges
    +decision check does not correspond to the return type of the vertex.</p>
    +
    +<p>Next, as an example, the user objects of the outgoing edges might
    +contain a label and a boolean state. Again, the mxGraph-based editor
    +might provide the means to alter the boolean value. On the server, when
    +executing the process, it might follow the edges that correspond to the
    +boolean value returned by the decision node.</p>
    +
    +<p>Keep in mind that the above example is very domain specific, it
    +is there to explain how the user object maps to the business logic of
    +the application. It visualizes how mxGraph creates what we term a <strong>contextual
    +graph</strong>. The context is formed by the connections between vertices and the
    +business logic stored within the user objects. A typical application
    +receives the visual and business logic from a sever, may allow editing
    +of both, then transmits both back to the server for persistence and/or
    +execution.</p>
    +
    +<h4><a name="cell_types"></a>Cell Types</h4>
    +<p>As described previously, mxGraph is the primary API for using
    +this library and the same concept applies to cells. One basic state of
    +the cell not exposed on the graph is whether a cell is a vertex or an
    +edge, this call be performed on the cell or on the model.</p>
    +
    +<p>There are two boolean flags on mxCell, vertex and edge, and the
    +helper methods set one of these to true when the cell is created.
    +isVertex(), isEdge() on mxIGraphModel are what the model uses to
    +determine a cell's type, there are not separate objects for either type.
    +Technically, it is possible to switch the type of a cell at runtime, but
    +take care to invalidate the cell state (see later section) after
    +changing the type. Also, be aware that the geometry object variable
    +means different things to vertices and edges. Generally, it is not
    +recommended to change a cell type at runtime.</p>
    +
    +<h3><a name="group_structure"></a>Group Structure</h3>
    +<p>Grouping, within mxGraph, is the concept of logically associating
    +cells with one another. This is commonly referred to as the concept of
    +sub-graphs in many graph toolkits. Grouping involves one or more
    +vertices or edges becoming children of a parent vertex or edge (usually
    +a vertex) in the graph model data structure. Grouping allows mxGraph to
    +provide a number of useful features:</p>
    +
    +<ul>
    +	<li>Sub-graphs, the concept of a logically separate graph that is
    +	displayed in the higher level graph as a cell per sub-graph.</li>
    +
    +	<li>Expanding and collapsing. Collapsing is the ability to replace
    +	a collection of grouped cells visually with just their parent cell.
    +	Expanding is the reverse of this. This behaviour can be seen by
    +	clicking the small &ldquo;-&rdquo; in the top left corner of the group
    +	cells of the swimlanes example in the <a
    +		href="http://www.jgraph.com/demo/mxgraph/editors/workfloweditor.html">online
    +	workfloweditor</a> example. This is described in the C<em>omplexity
    +	Management</em> section below.</li>
    +
    +	<li>Layering. Layering is the concept of assigning cells to a
    +	particular z-order layer within the graph display.</li>
    +
    +	<li>Drill down, step up. These concepts allow sub-graphs to be
    +	visualized and edited as if they are a complete graph. In the <em>User
    +	Objects</em> section we saw the &ldquo;check inventory&rdquo; vertex as a
    +	single cell. Take, for example, the case where a developer is
    +	describing each of the vertices in the process as the software
    +	processes that perform the task. The application might have an option
    +	to drill down into the check inventory vertex. This would result in a
    +	new graph appearing that describes in detail how exactly the system
    +	checks the inventory. The graph might have the title of the parent
    +	&ldquo;check inventory&rdquo; vertex to indicate it is a child, as well
    +	as the option to step-up back to the next level up.</li>
    +</ul>
    +
    +<p>In grouping, cells are assigned a parent cell. In the simplest
    +case, all cells have the default parent as their parent. The default
    +parent is an invisible cell with the same bounds as the graph. This is
    +the cell returned by graph.getDefaultParent() in the helloworld example.
    +The x,y position of a vertex is its position relative to its parent, so
    +in the case of default grouping (all cells sharing the default parent)
    +the cell positioning is also the absolute co-ordinates on the graph
    +component. In the case all cells being added to the default root, the
    +group structure logically looks like, in the case of the helloworld
    +example, the diagram below.</p>
    +
    +<p>Note the addition of the Layer 0 cell, this is the default
    +indirection in the group structure that allows layer changes with the
    +requirement of additional cells. We include it below for correctness,
    +but in later group diagrams it will be omitted.</p>
    +
    +
    +<p><a name="ill_mx_man_hello_struct"><img src="images/mx_man_hello_struct.png"
    +	WIDTH=441 HEIGHT=241 BORDER=0></a><br/>
    +<em>The group structure of the helloworld example</em></p>
    +<br/>
    +
    +<p>Also, note that the position of the edge label (x,y in geometry)
    +is relative to the parent cell.</p>
    +
    +<p>If we go back to the simple workflow example in the User Objects
    +section, we can see what grouping might look like visually. In the
    +example the group cells represent people and the child vertices
    +represent tasks assigned to those people. In this example the logical
    +group structure looks like this:</p>
    +
    +
    +<p><img src="images/mx_man_log_group_struct.png"
    +	name="ill_mx_man_log_group_struct"/><br/>
    +<em>The logical group structure of the workflow example</em></p>
    +<br/>
    +
    +<p>The workflow action vertices are the yellow children and the
    +swimlane group vertices are marked blue.</p>
    +
    +<p>Inserting cells into the group structure is achieved using the
    +parent parameter of the insertVertex and insertEdge functions on the
    +mxGraph class. These functions set the parent cell on the child
    +accordingly and, importantly, informs the parent cell of its new child.</p>
    +
    +<p>Altering the group structure is performed via the
    +mxGraph.groupCells() and mxGraph.ungroupCells() functions.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API functions:</strong></p>
    +
    +<ul><li><strong>mxGraph.groupCells(group, border, cells)</strong> &ndash;
    +Adds the specified cells to the specified group, within a begin/end
    +update</li>
    +<li><strong>mxGraph.ungroupCells(cells)</strong> &ndash; Removes the
    +specified cells from their parent and adds them to their parent's
    +parent. Any group empty after the operation are deleted. The operation
    +occurs within a begin/end update.</li>
    +</ul>
    +</div>
    +
    +<h3><a name="complexity_management"></a>Complexity Management</h3>
    +
    +<p>There are two primary reasons to control the number of cells
    +displayed at any one time. The first is performance, drawing more and
    +more cells will reach performance usability limits at some point on any
    +platform. The second reason is ease of use, a human can only comprehend
    +a certain amount of information. All of the concepts associated with
    +grouping, listed above, can be used to reduce the complexity of
    +information on the screen for the user.</p>
    +
    +<h4><a name="folding"></a>Folding</h4>
    +
    +<p>Folding is the collective term we use for expanding and
    +collapsing groups. We say a cell is folded by making it's child vertices
    +invisible. There are a number of functions relating to this feature:</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API function:</strong></p>
    +
    +<ul><li><strong>mxGraph.foldCells(collapse, recurse, cells)</strong>
    +&ndash; States the collapsed state of the specificed cells, within a
    +begin/end update.</li></ul>
    +</div>
    +
    +<p><strong>Folding related functions:</strong></p>
    +
    +<p><strong>mxGraph.isCellFoldable(cell, collapse)</strong> &ndash;
    +By default true for cells with children.</p>
    +<p><strong>mxGraph.isCellCollapsed(cell)</strong> &ndash; Returns
    +the folded state of the cell</p>
    +
    +<p>When a group cell is collapsed, three things occur by default:</p>
    +
    +<ul>
    +	<li>The children of that cell become invisible.</li>
    +	<li>The group bounds of the group cell is used. Within mxGeometry
    +	there is a alternativeBounds field and in groups cells, by default
    +	store a separate bounds for their collapsed and expanded states. The
    +	switch between these instances is invoked by mxGraph.swapBounds() and
    +	this is handled for you within a foldCells() call. This allows
    +	collapsed groups to be resized whilst when expanded again the size
    +	looks correct using the pre-collapsed size.</li>
    +	<li>Edge promotion occurs, by default. Edge promotion means
    +	displaying edges that connect to children within the collapsed group
    +	that also connect to cells outside of the collapsed group, by making
    +	them appear to connect to the collapsed parent.</li>
    +</ul>
    +
    +
    +<p><img src="images/mx_man_expand_swim.png"
    +	name="ill_mx_man_expand_swim"/><br/>
    +<em>Expanded swimlane</em></p>
    +
    +
    +<p><img src="images/mx_man_collapse_swim.png"
    +	name="ill_mx_man_collapse_swim"/><br/>
    +<em>Collapsed Swimlane</em></p>
    +
    +<p>The above two images demonstrate these three concepts. In its
    +expanded state the upper group cell displays a small box in the top left
    +hand corner with a &ldquo;-&rdquo; character inside. This indicates that
    +clicking on this box collapses the group cell. Doing this we get the
    +bottom image where the group cell takes on its collapsed size. Child
    +vertices and edge that do not leave the group cell are made invisible.
    +Finally, edges that exit the group cell are promoted to appear to be
    +connected to the collapsed group cell. Clicking on the &ldquo;+&rdquo;
    +character that now appears within the box expands the group cell and
    +brings it back to its original state of the top image.</p>
    +
    +<p>Using the mxGraph.foldCells() function, you can achieve the same
    +result programmatically as clicking on the expand/collapse symbols. One
    +common usage of this is when the application zooms out a specific
    +amount, clusters of cells are grouped and the grouped cell collapsed
    +(very often without the &ldquo;-&rdquo; box since the application is
    +controlling the folding). This way fewer, larger cells are visible to
    +the user, each one representing their children cells logically. You
    +might then provide a mechanism to zoom into a group, which expands it in
    +the process. You might also provide drill-down/step-up, explained next.</p>
    +
    +<h4><a name="sub_graph_drilling"></a>Sub-Graphs, Drill-Down /
    +Step-Up</h4>
    +
    +<p>Sometimes, as an alternative to expand/collapse, or possibly in
    +combination with it, your graph will be composed of a number of graphs,
    +nested into a hierarchy. Below we see a simple example:</p>
    +
    +
    +<p><img src="images/mx_man_drill_down.png"
    +	name="ill_mx_man_drill_down"/><br/>
    +<em>An example top level workflow</em></p>
    +<br/>
    +
    +<p>This simple workflow consists of three high level steps.
    +Obviously, the individual steps contain a number of sub-steps and we
    +will look at a sub-graph of the <em>Solve Bug</em> cell.</p>
    +
    +<p>Under the <em>Solve Bug</em> vertex we have created a number of
    +children to represent the process of solving a bug in more detail, in
    +this case the process of solving a bug on the <a
    +	href="http://en.wikipedia.org/wiki/Starship_Enterprise">Starship
    +Enterprise</a>.</p>
    +
    +<p>In this example, which uses the GraphEditor example, the menu
    +option shown selected in the above image invokes
    +mxGraph.enterGroup(cell), which is one of the pair of core API functions
    +for sub-graphs.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API functions:</strong></p>
    +
    +<ul><li><strong>mxGraph.enterGroup(cell)</strong> &ndash; Makes the
    +specified cell the new root of the display area.</li>
    +<li><strong>mxGraph.exitGroup()</strong> - Makes the parent of the
    +current root cell, if any, the new root cell.</li>
    +<li><strong>mxGraph.home()</strong> - Exits all groups, making the
    +default parent the root cell.</li>
    +</ul>
    +</div>
    +
    +<p>The root cell of the graph has been, up to now, the default
    +parent vertex to all first-level cells. Using these functions you can
    +make any group cell in the group structure the root cell, so that the
    +children of that parent appear in the display as the complete graph.</p>
    +
    +<p><img src="images/mx_man_drilling.png" name="ill_mx_man_drilling"/><br/>
    +<em>Result of drilling down into the Solve Bug vertex</em></p>
    +
    +<P>The same graph expanded using folding instead looks like:</p>
    +
    +<p><img src="images/mx_man_top_level.png" name="ill_mx_mantop_level"
    +	WIDTH=695 HEIGHT=227 BORDER=0></p>
    +<p>Exiting the group using the <em>shape-&gt;exit group</em> option,
    +which invokes mxGraph.exitGroup, brings you back to the original 3
    +vertex top level graph.</p>
    +
    +<h4><a name="layer_filter"></a>Layering and Filtering</h4>
    +
    +<p>In mxGraph, like many graphical applications, there is the
    +concept of z-order. That is, the order of objects as you look into the
    +screen direction. Objects can be behind or in front of other objects and
    +if they overlap and are opaque then the back-most object will be
    +partially or complete obscured. Look back to the <a href="#ill_mx_man_hello_struct">
    +graph structure of HelloWorld illustration</a> above. Children cells are stored under
    +parents in a deterministic order (by default the order in which you add
    +them).</p>
    +
    +<p>If we move the cells in the HelloWorld example we see the
    +following result:</p>
    +
    +<p><img src="images/mx_man_overlap.png" name="ill_mx_man_overlap"/><br/>
    +<em>Overlapped vertices</em></p>
    +
    +<p>It can be seen that the <em>World</em> vertex is in front of the
    +<em>Hello</em> vertex. This is because the <em>World</em> vertex has a
    +higher child index than the <em>Hello</em> vertex, at positions 1 and 0
    +respectively in the ordered collection that holds the children of the
    +root cell.</p>
    +
    +<p>To change order we use mxGraph.orderCells.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API function:</strong></p>
    +
    +<ul><li><strong>mxGraph.orderCells(back, cells)</strong> &ndash; Moves
    +the array of cells to the front or back of their siblings, depending on
    +the flag, within a begin/end update.</li></ul>
    +</div>
    +
    +<p>A sibling cell in mxGraph is any cell that shares the same
    +parent. So by invoking this on the <em>Hello</em> vertex it would then
    +overlap the <em>World</em> Vertex.</p>
    +
    +<p>Ordering and grouping can be extended to form logically layered
    +groups. The cells are drawn via a depth-first search. Take the
    +HelloWorld example again and imagine that both the <em>Hello</em> and <em>World
    +</em>vertices have some hierarchy of children underneath them. The <em>Hello</em>
    +vertex and all of its children will be drawn before the <em>World</em>
    +vertex or any of its children. If <em>Hello</em> and <em>World</em> were
    +invisible group cells you then have two hierarchies of cells, one being
    +drawn entirely before the other. You can also switch the order of the
    +hierarchies by simply switching the order of the invisible group cells.</p>
    +
    +<p>The concept of layering is demonstrated in the layers.html
    +example. Here buttons are used to set the visibility of group layer
    +cells. This example ties very closely into the concept of filtering.</p>
    +
    +<p>In filtering cells with some particular attribute are displayed.
    +One option to provide filtering functionality is to check some state
    +before rendering the cells. Another method, if the filtering conditions
    +are simple and known in advance, is to assign filterable cells by
    +groups. Making the groups visible and invisible performs this filtering
    +operation.</p>
    +
    +<br/>
    +
    +<hr size="1">
    +&copy; 2006-2010 by JGraph Ltd.
    +</body>
    +</html>
    diff --git a/docs/manual_javavis.html b/docs/manual_javavis.html
    new file mode 100644
    index 000000000..66716eb83
    --- /dev/null
    +++ b/docs/manual_javavis.html
    @@ -0,0 +1,1328 @@
    +<html>
    +<head>
    +	<title>JGraphX User Manual</title>
    +	<link rel="stylesheet" HREF="css/html.css" CHARSET="ISO-8859-1" TYPE="text/css">
    +    <script type="text/javascript" src="js/toc.js"></script>
    +</head>
    +<body onload="maketoc(document.getElementById('toc'));">
    +<h1>JGraphX (JGraph 6) User Manual</h1>
    +<br/>
    +<br/>
    +<p>JGraphX Version 1.10.0.5 &ndash; 21. May 2012</p>
    +<p>Copyright (c) JGraph Ltd 2006-2012</p>
    +<br/>
    +<p>All rights reserved. No part of this publication may be
    +reproduced, stored in a retrieval system, or transmitted in any form or
    +by any means, electronic, mechanical, photocopying, recording or
    +otherwise, without the prior written permission of the author.</p>
    +<p>The programs in this book have been included for their
    +instructional value. They have been tested with care but are not
    +guaranteed for any particular purpose. The publisher does not offer any
    +warranties or representations nor does it accept any liabilities with
    +respect to the programs.</p>
    +
    +<p>Possession, use, or copying of the software described in this
    +publication is authorized only pursuant to a valid written license from
    +JGraph Ltd.</p>
    +
    +<p>Neither JGraph Ltd. nor its employees are responsible for any
    +errors that may appear in this publication. The information in this
    +publication is subject to change without notice.</p>
    +<p>Java and all Java-based marks are trademarks or registered
    +trademarks of Sun Microsystems, Inc. in the U.S. and other countries.</p>
    +
    +<br/>
    +<h1>Table Of Contents</h1>
    +<div id="toc"></div>
    +
    +<br/>
    +<h1><a name="Introduction"></a>Introduction</h1>
    +<h2><a name="mxGraph_Products"></a>Product Family Introduction</h2>
    +
    +<p>mxGraph is a product family of libraries, written in a variety of
    +technologies, that provide features aimed at applications that display
    +interactive <a href="http://en.wikipedia.org/wiki/Diagram">diagrams</a>
    +and graphs. Note by graphs we mean <a
    +	href="http://en.wikipedia.org/wiki/Graph_(mathematics)">mathematical
    +graphs</a>, not necessarily <a href="http://en.wikipedia.org/wiki/Charts">charts</a>
    +(although some charts are graphs). See later section &ldquo;What is a
    +Graph?&rdquo; for more details.</p>
    +
    +<p>Being a developer library, mxGraph is not designed specifically
    +to provide a ready to use application, although many of the examples are
    +close to being usable applications. mxGraph provides all the commonly
    +required functionality to draw, interact with and associate a context
    +with a diagram displayed in the technology of that particular mxGraph
    +flavour. mxGraph comes with a number of examples that help explain how a
    +basic application is put together using each technology and showcases
    +individual features of the library.</p>
    +
    +<p>Each user manual is specific to one technology, along with
    +generic sections, such as this introduction and layouts. Developers will
    +find the implementations of each library in the different technologies
    +share the same architecture and API across the product range. The
    +implementations differ slightly for technology-specific areas, usually
    +event handling and rendering, but when overall porting from one
    +technology, mxGraph is designed to present as common an interface as is
    +possible.</p>
    +
    +<p>mxGraph, at the time of writing, has a commercial release grade
    +JavaScript library, a release grade Java Swing visualization library (JGraphX), a
    +beta grade ActionScript (for Flex/Flash applications) and alpha grade .NET visualization
    +components. Do not confuse the visualization elements (the part you see
    +on the client) with the core model elements. The core models written in
    +Java and .NET that serve as back-end server classes in the
    +JavaScript library versions are all commercial-grade production code.</p>
    +
    +<p>Developers integrating the library in their application should
    +read the pre-requisites for the technology they are using. See section
    +&ldquo;Pre-requisites&rdquo; below. Given that mxGraph is a component
    +part of your application, you must understand how applications are
    +constructed in that technology and how to program in the language(s) of
    +that technology.</p>
    +
    +<h2><a name="Which_Version"></a>Which Version of mxGraph to use?</h2>
    +
    +<p>When deciding which of the technology implementations of mxGraph
    +to use, often the choice is determined by the technology of the
    +application.</p>
    +
    +<p>The Java visualization version is suitable for
    +producing desktop applications with high performance. The 
    +web-centric version, written in JavaScript, is designed to work 
    +natively in all major web browsers. An example of such an 
    +application is a business process modelling tool that enables 
    +users to draw processes in a web browser, store them centrally, 
    +allow other users to view and edit processes and
    +automatically execute the process on the server using business logic
    +associated with the visual information.</p>
    +
    +<h3><a name="JavaScript"></a>JavaScript</h3>
    +
    +<p>The JavaScript version of mxGraph mainly comprises one JavaScript
    +file that contains all of the mxGraph functionality. This is loaded into
    +a HTML web page in a JavaScript section and executes in an HTML
    +container in the browser. This is an incredibly simple architecture that
    +only requires a web server capable of serving html pages and a
    +JavaScript enabled web browser.</p>
    +
    +<p>The key advantages of this technology are:</p>
    +<ul>
    +	<li>That no third-party plug-ins are required. This removes
    +	plug-in vendor dependence.</li>
    +	<li>The technologies involved are open and there are many open
    +	implementations, no vendor can remove a product or technology that
    +	leaves your application unworkable in practise.</li>
    +	<li>Standardized technologies, meaning your application is
    +	deployable to the maximum number of browser users without need for
    +	additional configuration or installation at the client computer. Large
    +	corporate environments often dislike allowing individuals to install
    +	browser plug-ins and do not like to change the standard build rolled
    +	out to all machines.</li>
    +</ul>
    +
    +<p>The key disadvantage of this technology is:</p>
    +<ul>
    +	<li>Rendering speed. As the number of cells visible on the users
    +	screen climbs into the hundreds, redrawing slows on most browsers
    +	beyond acceptable levels. In information management theory displaying
    +	several hundred cells is generally incorrect, since the user cannot
    +	interpret the data. There are a number of mechanisms, collectively
    +	known as complexity management used to limit the amount of information
    +	to sensible levels, and thus maintaining reactive redraw rates for the
    +	user. Complexity management is described in a later section of this
    +	user manual.</li>
    +</ul>
    +
    +<p>Comparing the pros and cons of each implementation against your
    +application requirements usually provides a clearly advantage to using
    +one of these technologies.</p>
    +
    +<h2><a name="Java_Library"></a>JGraphX - Java Swing Library</h2>
    +
    +<p>This user manual is for the Java Swing library version of
    +mxGraph. This version is called JGraphX, the reason for this being the
    +authors of mxGraph have a long standing product called JGraph. The last
    +version of JGraph in the previous architecture was JGraph 5. Because all
    +mxGraph product have a common API, a version numbering was required that
    +was consistent across the product range. Thus, the Java flavour of mxGraph is
    +called JGraphX and starts from version 1.x, but think of it as JGraph 6 if that
    +is easier. JGraphX enables you to produce
    +Java Swing applications that feature interactive diagramming functionality.
    +The core client functionality of JGraphX is a Java 5 compliable library that
    +describes, displays and interacts with diagrams as part of your larger Java
    +Swing application. JGraphX is primarily designed for use in a desktop
    +environment, although Java does have web enabling features making it possible
    +to deploy JGraphX in web environment.</p>
    +
    +<div id="note">
    +<p>Note: From now on the term <strong>mxGraph</strong> will be used
    +to describe the Java client, rather than any other flavour of the product,
    +unless otherwise specified. The package name of JGraphX is com.mxgraph.* and the
    +main class mxGraph, in common with the other flavours of mxGraph.</p>
    +</div>
    +
    +<h2><a name="mxgraph_applications"></a>What Applications can
    +JGraphX be used for?</h2>
    +
    +<p>Example applications for a graph visualization library include:
    +process diagrams, workflow and BPM visualization, flowcharts, traffic or
    +water flow, database and WWW visualization, networks and
    +telecommunications displays, mapping applications and GIS, UML diagrams,
    +electronic circuits, VLSI, CAD, financial and social networks, data
    +mining, biochemistry, ecological cycles, entity and cause-effect
    +relationships and organisational charts.</p>
    +
    +<h2><a name="mxgraph_licensing"></a>JGraphX Licensing</h2>
    +
    +<p>JGraphX is licensed under the modern, 3 clause
    +<a href="http://en.wikipedia.org/wiki/BSD_licenses">BSD license</a>. The
    +precise text of the license you receive the software under is
    +<a href="http://www.jgraph.com/bsd.html">here</a>. If you
    +cannot understand it, do not use the software.</p>
    +
    +<p>For detailed licensing questions you are always advised to
    +consult a legal professional.</p>
    +
    +<h2><a name="what_graph"></a>What is a Graph?</h2>
    +
    +<p>Graph visualization is based on the mathematical theory of
    +networks, graph theory. If you're seeking JavaScript bar <em>charts</em>,
    +pie <em>charts</em>, Gantt <em>charts</em>, have a look at the <a
    +	href="http://www.jfree.org/">JFreeChart</a> project
    +instead, or similar</p>
    +<p>A graph consists of vertices, also called nodes, and of edges
    +(the connecting lines between the nodes). Exactly how a graph appears
    +visually is not defined in graph theory. The term <em>cell</em> will be
    +used throughout this manual to describe an element of a graph, either
    +edges, vertices or groups.</p>
    +
    +<p><img src="images/mx_man_simple_graph.png" /><br/>
    +<em>A simple Graph</em></p>
    +<br/>
    +
    +<p>There are additional definitions in graph theory that provide
    +useful background when dealing with graphs, they are listed in the
    +Appendices if of interest to you.</p>
    +
    +<h3><a name="graph_visualization"></a>Graph Visualization</h3>
    +
    +<p>Visualization is the process of creating a useful visual
    +representation of a graph. The scope of visualization functionality is
    +one of JGraphX's main strength. JGraphX supports a wide range of
    +features to enable the display of cells to only be limited by the skill
    +of the developer and the Swing platform. Vertices may
    +be shapes, images, vector drawings, animations, virtually any graphical
    +operations available in Swing. You can also use HTML mark-up in text
    +labels.</p>
    +
    +<p><img src="images/mx_man_graph_vis.png"><br/>
    +<em>Graph Visualization of a transport system. (c) Tourizm Maps
    +2003, http://www.world-maps.co.uk</em></p>
    +<br/>
    +<h3><a name="graph_interaction"></a>Graph Interaction</h3>
    +
    +<p>Interaction is the way in which an application using JGraphX can
    +alter the graph model through the web application GUI. JGraphX supports
    +dragging and cloning cells, re-sizing and re-shaping, connecting and
    +disconnecting, drag and dropping from external sources, editing cell
    +labels in-place and more. One of the key benefits of JGraphX is the
    +flexibility of how interaction can be programmed.</p>
    +
    +<p><img src="images/mx_man_graph_interaction.png" /><br/>
    +<em>Selection shading while selecting an area through mouse drag</em></p>
    +<br/>
    +<h3><a name="graph_layouts"></a>Graph Layouts</h3>
    +
    +<p>Graph cells can be drawn anywhere in a simple application,
    +including on top of one another. Certain applications need to present
    +their information in a generally ordered, or specifically ordered
    +structure. This might involve ensuring cells do not overlap and stay at
    +least a certain distance from one another, or that cells appear in
    +specific positions relative to other cells, usually the cells they are
    +connected to by edges. This activity, called the layout application, can
    +be used in a number of ways to assist users in setting out their graph.
    +For non-editable graphs, layout application is the process of applying a
    +layout algorithm to the cells. For interactive graphs, meaning those
    +that can be edited through the UI, layout application might involve only
    +allowing users to make changes to certain cells in certain positions, to
    +re-apply the layout algorithm after each change to the graph, or to
    +apply the layout when editing is complete.</p>
    +
    +<p><img src="images/mx_man_graph_layout.png" /><br/>
    +<em>Layout of a workflow using a horizontal hierarchical layout</em></p>
    +
    +<p>JGraphX supports a range of tree, force-directed and hierarchical
    +layouts which will fit most layout needs. See the later section on using
    +the layouts for more information.</p>
    +
    +<h3><a name="graph_analysis"></a>Graph Analysis</h3>
    +
    +<p>Analysis of graphs involves the application of algorithms
    +determining certain details about the graph structure, for example,
    +determining all routes or the shortest path between two cells. There are
    +more complex graph analysis algorithms, these being often applied in
    +domain specific tasks. Techniques such as clustering, decomposition, and
    +optimization tend to be targeted at certain fields of science and have
    +not been implemented in the core JGraphX packages at the current time of
    +writing.</p>
    +
    +<p><img src="images/mx_man_graph_analysis.jpg"
    +	name="shortest_path_analyis" /><br/>
    +<em>Shortest Path Analysis</em></p>
    +<br/>
    +
    +<h2><a name="about_manual"></a>About this Manual</h2>
    +
    +<h3><a name="pre_requisites"></a>Pre-requisites for JGraphX</h3>
    +
    +<p>To benefit fully from this manual you will need to have a reasonable
    +understanding of Java and at least a high-level overview of Swing. If you
    +lack experience with programming the Java language, there are
    +many good books on the subject available. A useful free introduction
    +is the <a href="http://java.sun.com/docs/books/tutorial/">Sun Java Tutorial.</a>
    +</p>
    +
    +<h3><a name="Getting_help"></a>Getting Additional help</h3>
    +
    +<p>There are many mechanisms for receiving help for working with the
    +JGraphX software. The community help <a
    +	href="http://forum.jgraph.com" name="JGraph Community Forum">forum</a>
    +provides free assistance to JGraphX users. The forums combine the
    +advantages of many users helping to answer questions along with the
    +guidance of active JGraphX developers ensuring the quality and
    +correctness of responses and that as many questions as possible are
    +answered. However, there is no assurance of getting free assistance,
    +either the answer being correct, or getting an answer at all. If your
    +question is non-trivial there is less chance of a developer finding free
    +time to analyse your problem, please try to break the problem down into
    +simple issues and provide as much information and examples as you can. If
    +the developer points you at an explaination of how to post bugs, they are
    +telling you that your posting is completely clueless and/or lacks any information
    +describing the bug / how to recreate it. You should be greatly insulted by
    +receiving this as an answer.</p>
    +
    +<p>When posting at the forums these <a
    +	href="http://forum.jgraph.com/questions/10/how-to-post-jgraphx-questions">posting
    +guidelines</a> will help you get a better answer and encourage more people
    +to help you. Please note that the JGraphX team cannot guarantee that
    +answers provided on the forums are correct as they cannot always monitor
    +all discussion threads.</p>
    +<br/>
    +
    +<h1><a name="Getting_Started"></a>Getting Started</h1>
    +
    +<h2><a name="JGraphX_site"></a>The JGraphX Web Site</h2>
    +
    +<p>To start, navigate to the <a
    +	href="http://www.jgraph.com/jgraph.html">JGraphX web page</a>. The
    +most useful areas to you when starting JGraphX are listed below. Use the
    +navigation bars on the top and bottom to locate the appropriate section:
    +</p>
    +<ul>
    +	<li><a href="http://www.jgraph.com/jgraphdownload.html">Download</a>
    +	&ndash; Here you can download the latest source code version.</li>
    +	<li><a href="http://forum.jgraph.com">Forum</a> - Here
    +	you can ask the JGraph community your questions. A timely and correct
    +	answer cannot be guaranteed, however the JGraph developers tend to keep
    +	a close eye on questions posted. Try to break your problem down into
    +	single smaller questions. If you post asking to have someone write your
    +	project for you, you are unlikely to receive a reply. Before 
    +	posting to the forum please search the documentation, the FAQs and
    +	search the forum using the search facility provided. The JGraph team
    +	have spent a great deal of effort putting those resources in place,
    +	please try to save them having to point you at them because you have
    +	not searched yourself. Use tags correctly, 'jgraphx' is the product, 
    +	'bug' if you are reporting one, 'feature' for a feature request, etc.</li>
    +</ul>
    +
    +<h3><a name="Installing_the_JGraph_Suite"></a>Installing JGraphX</h3>
    +
    +<p>Both the evaluation and full versions of JGraphX are delivered as
    +zip files. Unzip the package to your preferred location, a folder named
    +JGraphX will be created there, this folder is the root folder of the
    +JGraphX installation.</p>
    +
    +<h3><a name="project_structure"></a>Project structure and build
    +options</h3>
    +
    +<p>Once unzipped you will be presented with a number of files and
    +directories in the installation root.</p>
    +
    +<TABLE WIDTH=642 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4
    +	CELLSPACING=0>
    +	<COL WIDTH=165>
    +	<COL WIDTH=459>
    +	<THEAD>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>/doc</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>Documentation root, includes this user manual</p>
    +			</TD>
    +		</TR>
    +	</THEAD>
    +	<TBODY>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>/src</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>Source of the library</p>
    +			</TD>
    +		</TR>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>/lib</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>Contains pre-built jar of the library.</p>
    +			</TD>
    +		</TR>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>/examples</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>Examples demonstrating the use of JGraphX</p>
    +			</TD>
    +		</TR>
    +		<TR VALIGN=TOP>
    +			<TD WIDTH=165>
    +			<p>license.txt</p>
    +			</TD>
    +			<TD WIDTH=459>
    +			<p>The licensing terms under which you must use the library</p>
    +			</TD>
    +		</TR>
    +	</TBODY>
    +</TABLE>
    +
    +<p><em>Table: Project Directory Structure</em></p>
    +<br/>
    +
    +<h2><a name="jgraphx_architecture"></a>Core JGraphX architecture</h2>
    +
    +<h3><a name="jgraphx_model"></a>The JGraphX Model</h3>
    +
    +<p>The mxGraph model is the core model that describes the structure
    +of the graph, the class is called mxGraphModel and is found within the
    +model package. Additions, changes and removals to and from the graph
    +structure take place through the graph model API. The model also
    +provides methods to determine the structure of the graph, as well as
    +offering methods to set visual states such as visibility, grouping and
    +style.</p>
    +
    +<p>However, although the transactions to the model are stored on the
    +model, JGraphX is designed in such a way that the main public API is
    +through the mxGraph class. The concept of &ldquo;add this cell to the
    +graph&rdquo; is a more natural description of the action than &ldquo;add
    +this cell to the model of the graph&rdquo;. Where it is intuitive,
    +method available on the model and cells are duplicated on the graph
    +and those methods on the graph class are considered the main public API.
    +Throughout the rest of this manual these key API methods are given a pink background:</p>
    +<div id="coreapi">
    +<p>anExampleCoreAPIMethod()</p>
    +</div>
    +
    +<p>So, though many of the main API calls are through the mxGraph
    +class, keep in mind that mxGraphModel is the underlying object that
    +stores the data structure of your graph.</p>
    +
    +<p>JGraphX uses a transactional system for making changes to the
    +model. In the HelloWorld example we saw this code:</p>
    +
    +<pre>
    +// Adds cells to the model in a single step
    +graph.getModel().beginUpdate();
    +try
    +{
    +   Object v1 = graph.addVertex(parent, null, "Hello,", 20, 20, 80, 30);
    +   Object v2 = graph.addVertex(parent, null, "World!", 200, 150, 80, 30);
    +   Object e1 = graph.addEdge(parent, null, "", v1, v2);
    +}
    +finally
    +{
    +   // Updates the display
    +   graph.getModel().endUpdate();
    +}
    +</pre>
    +
    +<p>to perform the insertion of the 2 vertices and 1 edge. For each
    +change to the model you make a call to beginUpdate(), make the
    +appropriate calls to change the model, then call endUpdate() to finalize
    +the changes and have the change event notifications sent out.</p>
    +
    +<div id="coreapi">
    +<p><strong>Key API Methods:</strong></p>
    +
    +<ul>
    +	<li><strong>mxGraphModel.beginUpdate() </strong>- starts a new
    +	transaction or a sub-transaction.</li>
    +	<li><strong>mxGraphModel.endUpdate()</strong> - completes a
    +	transaction or a sub-transaction.</li>
    +	<li><strong>mxGraph.addVertex()</strong> - Adds a new vertex to
    +	the specified parent cell.</li>
    +	<li><strong>mxGraph.addEdge()</strong> - Adds a new edge to the
    +	specified parent cell.</li>
    +</ul>
    +</div>
    +
    +<p><strong>Note</strong> &ndash; Technically you do not have to
    +surround your changes with the begin and end update calls. Changes made
    +outside of this update scope take immediate effect and send out the
    +notifications immediately. In fact, changes within the update scope
    +enact on the model straight away, the update scope is there to control
    +the timing and concatenation of event notifications. Unless the update
    +wrapping causes code aesthetic issues, it is worth using it by habit to
    +avoid possible problems with event and undo granularity.</p>
    +
    +<p>Note the way in which the model changes are wrapped in a try
    +block and the endUpdate() in a finally block. This ensures the update is
    +completed, even if there is an error in the model changes. You should
    +use this pattern wherever you perform model changes for ease of
    +debugging.</p>
    +
    +<p>Ignore the reference to the parent cell for now, that will be
    +explained later in this chapter.</p>
    +
    +<h3><a name="transaction_model"></a>The Transaction Model</h3>
    +
    +<p>The sub-transaction in the blue block above refers to the fact
    +that transactions can be nested. That is, there is a counter in the
    +model that increments for every <em>beginUpdate</em> call and decrements
    +for every <em>endUpdate</em> call. After increasing to at least 1, when
    +this count reaches 0 again, the model transaction is considered complete
    +and the event notifications of the model change are fired.</p>
    +
    +<p>This means that every sub-contained section of code can (and
    +should) be surrounded by the begin/end combination. This provide the
    +ability in JGraphX to create separate transactions that be used as
    +&ldquo;library transactions&rdquo;, the ability to create compound
    +changes and for one set of events to be fired for all the changes and
    +only one undo created. Automatic layouting is a good example of where
    +the functionality is required.</p>
    +
    +<p>In automatic layouting, the user makes changes to the graph,
    +usually through the user interface, and the application automatically
    +positions the result according to some rules. The automatic positioning,
    +the layouting, is a self-contained algorithm between begin/end update
    +calls that has no knowledge of the specifics of the change. Because all
    +changes within the begin/end update are made directly to the graph
    +model, the layout can act upon the state of the model as the change is
    +in progress.</p>
    +
    +<p>It is important to distinguish between functionality that acts on
    +the graph model as part of a compound change and functionality that
    +reacts to atomic graph change events. In the first case, such as for
    +automatic layouting, the functionality takes the model as-is and acts
    +upon it. This method should only be used for parts of compound model
    +changes. All other parts of the application should only react to model
    +change events.</p>
    +
    +<p>Model change events are fired when the last endUpdate call
    +reduces the counter back down to 0 and indicate that at least one atomic
    +graph change has occurred. The change event contains complete
    +information as to what has altered (see later section on <strong>Events</strong>
    +for more details).</p>
    +
    +<h4><a name="model_change_methods"></a>The Model Change Methods</h4>
    +
    +<p>Below is a list of the methods that alter the graph model and
    +should be placed, directly or indirectly, with the scope of an update:</p>
    +
    +<ul>
    +	<li>add(parent, child, index)</li>
    +	<li>remove(cell)</li>
    +	<li>setCollapsed(cell, collapsed)</li>
    +	<li>setGeometry(cell, geometry)</li>
    +	<li>setRoot(root)</li>
    +	<li>setStyle(cell, style)</li>
    +	<li>setTerminal(cell, terminal, isSource)</li>
    +	<li>setTerminals(edge,source,target)</li>
    +	<li>setValue(cell, value)</li>
    +	<li>setVisible(cell, visible)</li>
    +</ul>
    +
    +<p>Initially, we will just concern ourselves with the add and
    +remove, as well as the geometry and style editing methods. Note that
    +these are not core API methods, as usual these methods are on the
    +mxGraph class, where appropriate, and they perform the update
    +encapsulation for you.</p>
    +
    +<p><em>Design Background</em> - Some people are confused by the
    +presence of visual information being stored by the model. These
    +attributes comprise cell positioning, visibility and collapsed state.
    +The model stores the default state of these attributes, providing a
    +common place to set them on a per-cell basis, whereas, views can
    +override the values on a per-view basis. The model is simply the first
    +common place in the architecture where these attributes can be set on a
    +global basis. Remember, this is a graph <em>visualization</em> library,
    +the visualization part is the core functionality.</p>
    +
    +<h5><a name="inserting_cells"></a>Inserting Cells</h5>
    +
    +<p>The three graph cells created in the <CODE>HelloWorld</CODE>
    +application are two vertices and one edge connecting the vertices. If
    +you are not familiar with basic graph theory and its terminology, please
    +see the <a href="http://en.wikipedia.org/wiki/Graph_theory">wikipedia
    +entry</a>.</p>
    +
    +<p>You can add vertices and edges using the add() method on the
    +model. However, for the purposes of general usage of this library, learn
    +that mxGraph.insertVertex() and mxGraph.insertEdge() are the core public
    +API for adding cells. The method of the model requires that the cell
    +to be added is already created, whereas the mxGraph.insertVertex()
    +creates the cell for you.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API methods:</strong></p>
    +
    +<ul>
    +	<li><strong>mxGraph.insertVertex(</strong><strong>parent,
    +	id, value, x, y, width, height, style</strong><strong>)</strong> &ndash; creates
    +	and inserts a new vertex into the model, within a begin/end update
    +	call.</li>
    +	<li><strong>mxGraph.insertEdge(</strong><strong>parent,
    +	id, value, source, target, style</strong><strong>)</strong><strong>
    +	&ndash; </strong>creates and inserts a new edge into the model, within a
    +	begin/end update call.</li>
    +</ul>
    +</div>
    +
    +<p><code>mxGraph.insertVertex()</code> will create an mxCell object
    +and return it from the method used. The parameters of the method are:</p>
    +
    +<ul>
    +<li><strong>parent</strong> &ndash; the cell which is the immediate
    +parent of the new cell in the group structure. We will address the
    +group structure shortly, but for now use <code>graph.getDefaultParent();</code>
    +as your default parent, as used in the HelloWorld example.</li>
    +
    +<li><strong>id</strong> &ndash; this is a global unique identifier
    +that describes the cell, it is always a string. This is primarily for
    +referencing the cells in the persistent output externally. If you do not
    +wish to maintain ids yourself, pass null into this parameter and ensure
    +that mxGraphModel.isCreateIds() returns true. This way the model will
    +manage the ids and ensure they are unique.</li>
    +
    +<li><strong>value</strong> &ndash; this is the user object of the
    +cell. User object are simply that, just objects, but form the objects
    +that allow you to associate the business logic of an application with
    +the visual representation of JGraphX. They will be described in more
    +detail later in this manual, however, to start with if you use a string
    +as the user object, this will be displayed as the label on the vertex or
    +edge.</li>
    +
    +<li><strong>x, y, width, height</strong> &ndash; as the names
    +suggest, these are the x and y position of the top left corner of the
    +vertex and its width and height.</li>
    +
    +<li><strong>style</strong> &ndash; the style description to be
    +applied to this vertex. Styles will be described in more detail shortly,
    +but at a simple level this parameter is a string that follows a
    +particular format. In the string appears zero or more style names and
    +some number of key/value pairs that override the global style or set a
    +new style. Until we create custom styles, we will just use those
    +currently available.</li>
    +</ul>
    +
    +<p>With the edge addition method, the identically named parameters
    +perform the same method as in the vertex addition method. The source
    +and target parameters define the vertices to which the edge is
    +connected. Note that the source and target vertices should already have
    +been inserted into the model.</p>
    +
    +<h3><a name="mxcell"></a>mxCell</h3>
    +
    +<p>mxCell is the cell object for both vertices and edges. mxCell
    +duplicates many of the methods available in the model. The key
    +difference in usage is that using the model methods creates the
    +appropriate event notifications and undo, using the cell makes the
    +change but there is no record of the change. This can be useful for
    +temporary visual effects such as animations or changes on a mouse over,
    +for example. As a general rule though, use the model editing API unless
    +you encounter a specific problem with this mechanism.</p>
    +
    +<p>When creating a new cell, three things are required in the
    +constructor, a value (user object), a geometry and a style. We will now
    +explore these 3 concepts before returning to the cell.</p>
    +
    +<h4><a name="styles"></a>Styles</h4>
    +
    +<p>The concept of styles and stylesheets in conceptually similar to
    +CSS stylesheets. Open up the
    +util.mxConstants.js file in your editor and search for the first match
    +on &ldquo;STYLE_&rdquo;. If you scroll down you will see a large number
    +of strings defined for all the various styles available with this
    +prefix. Some of styles apply to vertices, some to edges and some to
    +both. As you can see, these define visual attributes on the element they
    +act upon.</p>
    +
    +<p>The mxStylesheet holds one object, styles, which is a hashtable
    +mapping style names to an array of styles:</p>
    +
    +<p><img src="images/mx_man_styles.png" name="graphics5"/><br/>
    +<em>Style arrays within the styles collection</em></p>
    +<br/>
    +
    +<p>In the above image the blue box represents the styles hashtable
    +in mxStyleSheet. The string 'defaultVertex' is the key to an array of
    +string/value pairs, which are the actual styles. Note that JGraphX
    +creates two default styles, one for vertices and one for edges. If you
    +look back to the helloworld example, no style was passed into the
    +optional style parameter of insertVertex or insertEdge. In this case the
    +default style would be used for those cells.</p>
    +
    +<h5><a name="setting_cell_style"></a>Setting the Style of a Cell</h5>
    +
    +<p>If you wanted to specify a style other than the default for a
    +cell, you must pass that new style either to the cell when it is created
    +(mxGraph's insertVertex and insertEdge both have an optional parameter
    +for this) or pass that style to the cell using model.setStyle().</p>
    +
    +<p>The style that you pass has the form stylename. ,note that the
    +stylenames and key/value pairs may be in any order. Below are examples
    +to demonstrate this concept, adapting the insertVertex call we saw in
    +helloworld:</p>
    +
    +<ol>
    +	<li>
    +	<p>A new style called 'ROUNDED' has been created, to apply this to
    +	a vertex:</p>
    +	<pre>Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80, 30, "ROUNDED");</pre>
    +	</li>
    +
    +	<li>
    +	<p>To create a new vertex with the ROUNDED style, overriding the
    +	stroke and fill colors:</p>
    +	<pre>Object v1 = graph.insertVertex(parent, null, "Hello",  20, 20, 80, 30, "ROUNDED;strokeColor=red;fillColor=green");</pre>
    +	</li>
    +
    +	<li>
    +	<p>To create a new vertex with no global style, but with local
    +	stroke and fill colors:</p>
    +	<pre>Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80, 30, ";strokeColor=red;fillColor=green");</pre>
    +	</li>
    +	<li>
    +	<p>To create a vertex that uses the defaultVertex style, but a
    +	local value of the fill color:</p>
    +	<pre>Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80, 30, "defaultVertex;fillColor=blue");</pre>
    +	</li>
    +</ol>
    +
    +<br/>
    +<p>Note that default style must be explicitly named in this case,
    +missing the style out sets no global style on the cell when the
    +semi-colon starts the string. If the string starts with no semi-colon,
    +the default style is used.</p>
    +
    +<p>Again, the mxGraph class provides utility methods that form the
    +core API for accessing and changing the styles of cells:</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API methods:</strong></p>
    +
    +<ul>
    +<li>
    +<strong>mxGraph.setCellStyle(style, cells)</strong> &ndash; Sets
    +the style for the array of cells, encapsulated in a begin/end update.
    +</li>
    +<li>
    +<strong>mxGraph.getCellStyle(cell)</strong> &ndash; Returns the
    +style for the specified cell, merging the styles from any local style
    +and the default style for that cell type.
    +</li>
    +</ul>
    +</div>
    +
    +<h5><a name="new_global_style"></a>Creating a New Global Style</h5>
    +<p>To create the ROUNDED global style described above, you can
    +follow this template to create a style and register it with
    +mxStyleSheet:</p>
    +
    +<pre>
    +mxStylesheet stylesheet = graph.getStylesheet();
    +Hashtable&lt;String, Object&gt; style = new Hashtable&lt;String, Object&gt;();
    +style.put(mxConstants.STYLE_SHAPE, mxConstants.SHAPE_RECTANGLE);
    +style.put(mxConstants.STYLE_OPACITY, 50);
    +style.put(mxConstants.STYLE_FONTCOLOR, "#774400");
    +stylesheet.putCellStyle("ROUNDED", style);
    +</pre>
    +
    +<h4><a name="geometry"></a>Geometry</h4>
    +
    +<p>In the helloworld example you can see the position and size of the
    +vertices passed into the insertVertex method. The coordinate system in
    +Java is x is positive to the right and y is positive downwards,
    +and in terms of the graph, the positioning is absolute to the container
    +within which the mxGraph is placed.</p>
    +
    +<p>The reason for a separate mxGeometry class, as opposed to simply
    +having the mxRectangle class store this information, is that the edges
    +also have geometry information.</p>
    +
    +<p>The width and height values are ignored for edges and the x and y
    +values relate to the positioning of the edge label. In addition, edges
    +have the concept of control points. These are intermediate points along
    +the edge that the edge is drawn as passing through. The use of control
    +points is sometimes referred to as <strong>edge routing</strong>.</p>
    +
    +<p><img src="images/mx_man_edge_routing.png" name="ill_edge_routing"/><br/>
    +<em>An edge routed by 2 control points</em></p>
    +
    +<p>There are two more important additional concepts in geometry,
    +relative positioning and offsets</p>
    +
    +<h5><a name="relative_positioning"></a>Relative Positioning</h5>
    +
    +<p>By default, the x and y position of a vertex is the offset of the
    +top left point of the bounding rectangle of the parent to the top left
    +point of the bounding rectangle of the cell itself. The concept of
    +parents and groups is discussed later in this chapter, but without going
    +into too much detail, if a cell does not have cell parent, the graph
    +container is its parent for positioning purposes.</p>
    +
    +
    +<p><img src="images/mx_man_non_relative_pos.png"
    +	name="ill_non_realtive_pos"/><br/>
    +<em>Non-relative vertex positioning</em></p>
    +<br/>
    +
    +
    +<p>For an edge, in non-relative mode, which is the default mode, the
    +edge label position is the absolute offset from the graph origin.</p>
    +
    +
    +<p><img src="images/mx_man_non_realtive_edge_pos.png"
    +	name="ill_non_rel_edge_pos"/><br/>
    +<em>Non-relative edge label positioning</em></p>
    +<br/>
    +
    +
    +<p>For vertices in relative mode, (x,y) is the proportion along the
    +parent cell's (width, height) where the cell's origin lies. (0,0) is the
    +same origin as the parent, (1,1) places the origin at the bottom right
    +corner of the parent. The same relative positioning extends below 0 and
    +above 1 for both dimensions. This positioning is useful for keeping
    +child cells fixed relative to the overall parent cell size.</p>
    +
    +<p><img src="images/mx_man_rel_vert_pos.png" name="rel_vert_pos"/><br/>
    +<em>Relative vertex positions</em></p>
    +<br/>
    +
    +<p>Lastly, edge labels in relative mode are palced based on the
    +positioning from the center of the edge. The x-coordinate is the
    +relative distance from the source end of the edge, at -1, to the target
    +end of the edge, at 1. The y co-ordinate is the pixel offset orthogonal
    +from the edge. The diagram below shows the values of x,y for various
    +edge labels in relative mode. Note that for a straight edge, the
    +calculations are simple. For edges with multiple control points, the
    +edge has to be traced along its segments (a segment being the line
    +between end points and/or control points) to find the correct distance
    +along the edge. The y value is the orthogonal offset from that segment.</p>
    +
    +<p>Switching relative positioning on for edge labels is a common
    +preference for applications. Navigate to the mxGraph.insertEdge()
    +method in mxGraph, you will see this calls createEdge(). In
    +createEdge() the geometry is set relative for every edge created using
    +this prototype. This is partly the reason for the amount of helper
    +methods in mxGraph, they enable easy changing of the default
    +behaviour. You should try to use the mxGraph class API as much as
    +possible to provide this benefit in your applications.</p>
    +
    +<h5><a name="offsets"></a>Offsets</h5>
    +
    +<p>The offset field in mxGeometry is an absolute x,y offset applied
    +to the cell <strong>label</strong>. In the case of edge labels, the
    +offset is always applied after the edge label has been calculated
    +according to the relative flag in the above section.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API methods:</strong></p>
    +
    +<ul><li><strong>mxGraph.resizeCell(cell, bounds)</strong> &ndash; Resizes
    +the specified cell to the specified bounds, within a begin/end update
    +call.</li>
    +<li><strong>mxGraph.resizeCells(cells, bounds)</strong> &ndash;
    +Resizes each of the cells in the cells array to the corresponding entry
    +in the bounds array, within a begin/end update call.</li>
    +</ul>
    +</div>
    +
    +<h4><a name="user_objects"></a>User Objects</h4>
    +
    +<p>The User object is what gives JGraphX diagrams a context, it
    +stores the business logic associated with a visual cell. In the
    +HelloWorld example the user object has just been a string, in this case
    +it simply represents the label that will be displayed for that cell. In
    +more complex applications, these user objects will be objects instead.
    +Some attribute of that object will generally be the label that the
    +visual cell will display, the rest of the object describes logic
    +relating to the application domain.</p>
    +
    +<p>Using the example of a simple workflow or process application,
    +say we have the graph below:</p>
    +
    +<p><img src="images/mx_man_simple_workflow.png"
    +	name="ill_simple_workflow"/><br/>
    +<em>A simple workflow</em></p>
    +<br/>
    +
    +
    +<p>Say the user right clicked and selected properties of
    +the &ldquo;Check Inventory&rdquo; diamond, they might see this dialog:</p>
    +
    +<p><img src="images/mx_man_vertex_props.png" name="ill_vertex_props"/><br/>
    +<em>The properties of a vertex</em></p>
    +<br/>
    +
    +<p>These properties show the geometry, label, ID etc, but a dialog
    +could just as easily show the user object of the cell. There might be a
    +reference to some process on the workflow engine as to how the inventory
    +is actually checked. This might be an application specific mechanism for
    +both the server and client to assign some identification to remote
    +method calls. Another value might be the type of object that process
    +returned, maybe a boolean or an integer to indicate stock level in this
    +case. Given that return type, it is possible to enforce constraints with
    +the diagram and provide visual alerts of if, say, the outgoing edges
    +decision check does not correspond to the return type of the vertex.</p>
    +
    +<p>Next, as an example, the user objects of the outgoing edges might
    +contain a label and a boolean state. Again, the JGraphX-based editor
    +might provide the means to alter the boolean value. When
    +executing the process, it might follow the edges that correspond to the
    +boolean value returned by the decision node.</p>
    +
    +<p>Keep in mind that the above example is very domain specific, it
    +is there to explain how the user object maps to the business logic of
    +the application. It visualizes how JGraphX creates what we term a <strong>contextual
    +graph</strong>. The context is formed by the connections between vertices and the
    +business logic stored within the user objects. A typical application
    +receives the visual and business logic from a sever, may allow editing
    +of both, then transmits both back to the server for persistence and/or
    +execution.</p>
    +
    +<h4><a name="cell_types"></a>Cell Types</h4>
    +<p>As described previously, mxGraph is the primary API for using
    +this library and the same concept applies to cells. One basic state of
    +the cell not exposed on the graph is whether a cell is a vertex or an
    +edge, this call be performed on the cell or on the model.</p>
    +
    +<p>There are two boolean flags on mxCell, vertex and edge, and the
    +helper methods set one of these to true when the cell is created.
    +isVertex(), isEdge() on mxIGraphModel are what the model uses to
    +determine a cell's type, there are not separate objects for either type.
    +Technically, it is possible to switch the type of a cell at runtime, but
    +take care to invalidate the cell state (see later section) after
    +changing the type. Also, be aware that the geometry object variable
    +means different things to vertices and edges. Generally, it is not
    +recommended to change a cell type at runtime.</p>
    +
    +<h3><a name="group_structure"></a>Group Structure</h3>
    +<p>Grouping, within JGraphX, is the concept of logically associating
    +cells with one another. This is commonly referred to as the concept of
    +sub-graphs in many graph toolkits. Grouping involves one or more
    +vertices or edges becoming children of a parent vertex or edge (usually
    +a vertex) in the graph model data structure. Grouping allows JGraphX to
    +provide a number of useful features:</p>
    +
    +<ul>
    +	<li>Sub-graphs, the concept of a logically separate graph that is
    +	displayed in the higher level graph as a cell per sub-graph.</li>
    +
    +	<li>Expanding and collapsing. Collapsing is the ability to replace
    +	a collection of grouped cells visually with just their parent cell.
    +	Expanding is the reverse of this. This behaviour can be seen by
    +	clicking the small &ldquo;-&rdquo; in the top left corner of the group
    +	cells when they are created in the GraphEditor example. This is
    +	described in the C<em>omplexity	Management</em> section below.</li>
    +
    +	<li>Layering. Layering is the concept of assigning cells to a
    +	particular z-order layer within the graph display.</li>
    +
    +	<li>Drill down, step up. These concepts allow sub-graphs to be
    +	visualized and edited as if they are a complete graph. In the <em>User
    +	Objects</em> section we saw the &ldquo;check inventory&rdquo; vertex as a
    +	single cell. Take, for example, the case where a developer is
    +	describing each of the vertices in the process as the software
    +	processes that perform the task. The application might have an option
    +	to drill down into the check inventory vertex. This would result in a
    +	new graph appearing that describes in detail how exactly the system
    +	checks the inventory. The graph might have the title of the parent
    +	&ldquo;check inventory&rdquo; vertex to indicate it is a child, as well
    +	as the option to step-up back to the next level up.</li>
    +</ul>
    +
    +<p>In grouping, cells are assigned a parent cell. In the simplest
    +case, all cells have the default parent as their parent. The default
    +parent is an invisible cell with the same bounds as the graph. This is
    +the cell returned by graph.getDefaultParent() in the helloworld example.
    +The x,y position of a vertex is its position relative to its parent, so
    +in the case of default grouping (all cells sharing the default parent)
    +the cell positioning is also the absolute co-ordinates on the graph
    +component. In the case all cells being added to the default root, the
    +group structure logically looks like, in the case of the helloworld
    +example, the diagram below.</p>
    +
    +<p>Note the addition of the Layer 0 cell, this is the default
    +indirection in the group structure that allows layer changes with the
    +requirement of additional cells. We include it below for correctness,
    +but in later group diagrams it will be omitted.</p>
    +
    +
    +<p><a name="ill_mx_man_hello_struct"><img src="images/mx_man_hello_struct.png"
    +	WIDTH=441 HEIGHT=241 BORDER=0></a><br/>
    +<em>The group structure of the helloworld example</em></p>
    +<br/>
    +
    +<p>Also, note that the position of the edge label (x,y in geometry)
    +is relative to the parent cell.</p>
    +
    +<p>If we go back to the simple workflow example in the User Objects
    +section, we can see what grouping might look like visually. In the
    +example the group cells represent people and the child vertices
    +represent tasks assigned to those people. In this example the logical
    +group structure looks like this:</p>
    +
    +
    +<p><img src="images/mx_man_log_group_struct.png"
    +	name="ill_mx_man_log_group_struct"/><br/>
    +<em>The logical group structure of the workflow example</em></p>
    +<br/>
    +
    +<p>The workflow action vertices are the yellow children and the
    +swimlane group vertices are marked blue.</p>
    +
    +<p>Inserting cells into the group structure is achieved using the
    +parent parameter of the insertVertex and insertEdge methods on the
    +mxGraph class. These methods set the parent cell on the child
    +accordingly and, importantly, informs the parent cell of its new child.</p>
    +
    +<p>Altering the group structure is performed via the
    +mxGraph.groupCells() and mxGraph.ungroupCells() methods.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API methods:</strong></p>
    +
    +<ul><li><strong>mxGraph.groupCells(group, border, cells)</strong> &ndash;
    +Adds the specified cells to the specified group, within a begin/end
    +update</li>
    +<li><strong>mxGraph.ungroupCells(cells)</strong> &ndash; Removes the
    +specified cells from their parent and adds them to their parent's
    +parent. Any group empty after the operation are deleted. The operation
    +occurs within a begin/end update.</li>
    +</ul>
    +</div>
    +
    +<h3><a name="complexity_management"></a>Complexity Management</h3>
    +
    +<p>There are two primary reasons to control the number of cells
    +displayed at any one time. The first is performance, drawing more and
    +more cells will reach performance usability limits at some point on any
    +platform. The second reason is ease of use, a human can only comprehend
    +a certain amount of information. All of the concepts associated with
    +grouping, listed above, can be used to reduce the complexity of
    +information on the screen for the user.</p>
    +
    +<h4><a name="folding"></a>Folding</h4>
    +
    +<p>Folding is the collective term we use for expanding and
    +collapsing groups. We say a cell is folded by making it's child vertices
    +invisible. There are a number of methods relating to this feature:</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API method:</strong></p>
    +
    +<ul><li><strong>mxGraph.foldCells(collapse, recurse, cells)</strong>
    +&ndash; States the collapsed state of the specificed cells, within a
    +begin/end update.</li></ul>
    +</div>
    +
    +<p><strong>Folding related methods:</strong></p>
    +
    +<p><strong>mxGraph.isCellFoldable(cell, collapse)</strong> &ndash;
    +By default true for cells with children.</p>
    +<p><strong>mxGraph.isCellCollapsed(cell)</strong> &ndash; Returns
    +the folded state of the cell</p>
    +
    +<p>When a group cell is collapsed, three things occur by default:</p>
    +
    +<ul>
    +	<li>The children of that cell become invisible.</li>
    +	<li>The group bounds of the group cell is used. Within mxGeometry
    +	there is a alternativeBounds field and in groups cells, by default
    +	store a separate bounds for their collapsed and expanded states. The
    +	switch between these instances is invoked by mxGraph.swapBounds() and
    +	this is handled for you within a foldCells() call. This allows
    +	collapsed groups to be resized whilst when expanded again the size
    +	looks correct using the pre-collapsed size.</li>
    +	<li>Edge promotion occurs, by default. Edge promotion means
    +	displaying edges that connect to children within the collapsed group
    +	that also connect to cells outside of the collapsed group, by making
    +	them appear to connect to the collapsed parent.</li>
    +</ul>
    +
    +
    +<p><img src="images/mx_man_expand_swim.png"
    +	name="ill_mx_man_expand_swim"/><br/>
    +<em>Expanded swimlane</em></p>
    +
    +
    +<p><img src="images/mx_man_collapse_swim.png"
    +	name="ill_mx_man_collapse_swim"/><br/>
    +<em>Collapsed Swimlane</em></p>
    +
    +<p>The above two images demonstrate these three concepts. In its
    +expanded state the upper group cell displays a small box in the top left
    +hand corner with a &ldquo;-&rdquo; character inside. This indicates that
    +clicking on this box collapses the group cell. Doing this we get the
    +bottom image where the group cell takes on its collapsed size. Child
    +vertices and edge that do not leave the group cell are made invisible.
    +Finally, edges that exit the group cell are promoted to appear to be
    +connected to the collapsed group cell. Clicking on the &ldquo;+&rdquo;
    +character that now appears within the box expands the group cell and
    +brings it back to its original state of the top image.</p>
    +
    +<p>Using the mxGraph.foldCells() function, you can achieve the same
    +result programmatically as clicking on the expand/collapse symbols. One
    +common usage of this is when the application zooms out a specific
    +amount, clusters of cells are grouped and the grouped cell collapsed
    +(very often without the &ldquo;-&rdquo; box since the application is
    +controlling the folding). This way fewer, larger cells are visible to
    +the user, each one representing their children cells logically. You
    +might then provide a mechanism to zoom into a group, which expands it in
    +the process. You might also provide drill-down/step-up, explained next.</p>
    +
    +<h4><a name="sub_graph_drilling"></a>Sub-Graphs, Drill-Down /
    +Step-Up</h4>
    +
    +<p>Sometimes, as an alternative to expand/collapse, or possibly in
    +combination with it, your graph will be composed of a number of graphs,
    +nested into a hierarchy. Below we see a simple example:</p>
    +
    +
    +<p><img src="images/mx_man_drill_down.png"
    +	name="ill_mx_man_drill_down"/><br/>
    +<em>An example top level workflow</em></p>
    +<br/>
    +
    +<p>This simple workflow consists of three high level steps.
    +Obviously, the individual steps contain a number of sub-steps and we
    +will look at a sub-graph of the <em>Solve Bug</em> cell.</p>
    +
    +<p>Under the <em>Solve Bug</em> vertex we have created a number of
    +children to represent the process of solving a bug in more detail, in
    +this case the process of solving a bug on the <a
    +	href="http://en.wikipedia.org/wiki/Starship_Enterprise">Starship
    +Enterprise</a>.</p>
    +
    +<p>In this example, which uses the GraphEditor example, the menu
    +option shown selected in the above image invokes
    +mxGraph.enterGroup(cell), which is one of the pair of core API functions
    +for sub-graphs.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API methods:</strong></p>
    +
    +<ul><li><strong>mxGraph.enterGroup(cell)</strong> &ndash; Makes the
    +specified cell the new root of the display area.</li>
    +<li><strong>mxGraph.exitGroup()</strong> - Makes the parent of the
    +current root cell, if any, the new root cell.</li>
    +<li><strong>mxGraph.home()</strong> - Exits all groups, making the
    +default parent the root cell.</li>
    +</ul>
    +</div>
    +
    +<p>The root cell of the graph has been, up to now, the default
    +parent vertex to all first-level cells. Using these functions you can
    +make any group cell in the group structure the root cell, so that the
    +children of that parent appear in the display as the complete graph.</p>
    +
    +<p><img src="images/mx_man_drilling.png" name="ill_mx_man_drilling"/><br/>
    +<em>Result of drilling down into the Solve Bug vertex</em></p>
    +
    +<P>The same graph expanded using folding instead looks like:</p>
    +
    +<p><img src="images/mx_man_top_level.png" name="ill_mx_mantop_level"
    +	WIDTH=695 HEIGHT=227 BORDER=0></p>
    +<p>Exiting the group using the <em>shape-&gt;exit group</em> option,
    +which invokes mxGraph.exitGroup, brings you back to the original 3
    +vertex top level graph.</p>
    +
    +<h4><a name="layer_filter"></a>Layering and Filtering</h4>
    +
    +<p>In JGraphX, like many graphical applications, there is the
    +concept of z-order. That is, the order of objects as you look into the
    +screen direction. Objects can be behind or in front of other objects and
    +if they overlap and are opaque then the back-most object will be
    +partially or complete obscured. Look back to the <a href="#ill_mx_man_hello_struct">
    +graph structure of HelloWorld illustration</a> above. Children cells are stored under
    +parents in a deterministic order (by default the order in which you add
    +them).</p>
    +
    +<p>If we move the cells in the HelloWorld example we see the
    +following result:</p>
    +
    +<p><img src="images/mx_man_overlap.png" name="ill_mx_man_overlap"/><br/>
    +<em>Overlapped vertices</em></p>
    +
    +<p>It can be seen that the <em>World</em> vertex is in front of the
    +<em>Hello</em> vertex. This is because the <em>World</em> vertex has a
    +higher child index than the <em>Hello</em> vertex, at positions 1 and 0
    +respectively in the ordered collection that holds the children of the
    +root cell.</p>
    +
    +<p>To change order we use mxGraph.orderCells.</p>
    +
    +<div id="coreapi">
    +<p><strong>Core API method:</strong></p>
    +
    +<ul><li><strong>mxGraph.orderCells(back, cells)</strong> &ndash; Moves
    +the array of cells to the front or back of their siblings, depending on
    +the flag, within a begin/end update.</li></ul>
    +</div>
    +
    +<p>A sibling cell in JGraphX is any cell that shares the same
    +parent. So by invoking this on the <em>Hello</em> vertex it would then
    +overlap the <em>World</em> Vertex.</p>
    +
    +<p>Ordering and grouping can be extended to form logically layered
    +groups. The cells are drawn via a depth-first search. Take the
    +HelloWorld example again and imagine that both the <em>Hello</em> and <em>World
    +</em>vertices have some hierarchy of children underneath them. The <em>Hello</em>
    +vertex and all of its children will be drawn before the <em>World</em>
    +vertex or any of its children. If <em>Hello</em> and <em>World</em> were
    +invisible group cells you then have two hierarchies of cells, one being
    +drawn entirely before the other. You can also switch the order of the
    +hierarchies by simply switching the order of the invisible group cells.</p>
    +
    +<p>In <em>filtering</em> cells with some particular attribute are displayed.
    +One option to provide filtering functionality is to check some state
    +before rendering the cells. Another method, if the filtering conditions
    +are simple and known in advance, is to assign filterable cells by
    +groups. Making the groups visible and invisible performs this filtering
    +operation.</p>
    +
    +<br/>
    +
    +<h1><a name="Visual_Customization"></a>Visual Customization</h1>
    +
    +<h2><a name="Core_visual_custom"></a>Core JGraphX Visuals</h2>
    +
    +<p>Within the core JGraphX library, by that we mean we exclude the editor
    +functionality, which provides application level features, there are a number
    +of mechanisms to define the appearance of cells. These split into vertex
    +customizations and edge customizations</p>
    +
    +<h3><a name="custom_vertices"></a>Customizing Vertices</h3>
    +
    +<h4><a name="stencils"></a>Stencils</h4>
    +
    +<p>Stencils are sets of pre-defined vector shapes that can be added at run-time
    +to JGraphX without the requirement to programmatically define how they are
    +drawn. Instead, they are defined using using SVG. The entire format for
    +describing shapes is based on the <a href="http://projects.gnome.org/dia/custom-shapes">shape format</a>
    +used by the <a href="http://live.gnome.org/Dia">Dia diagramming software</a>.
    +This gives access to the stencils already available from that tool and
    +encourages a common, standardised format, rather than creating yet-another
    +custom format.</p>
    +
    +<p>The Dia shape format describes two files per shape, a .PNG image of the
    +shape and the XML .shape description file. You can obtain a zip of the stencils
    +shipped with the Dia application from
    +<a href="http://www.jgraph.com/shapes/shapes.zip">here at the JGraph web site</a>.
    +Unzip the file and you will find within a number of directories containing
    +shape/PNG pairs, the directories forming what we refer to as "stencils", the set
    +of shapes.</p>
    +
    +<p>Stencils can be seen in practice using the GraphEditor example that ships
    +with JGraphX. Under the main menu select File->Import Stencil and navigate to
    +the location you unzipped the downloaded shapes and perform a directory
    +selection to load all of the shapes within that directory. These shapes can
    +be dragged and dropped onto the graph and behave like a standard vertex for
    +all operations performed on them. Note that the Dia shapes are licensed under the
    +terms of the GPL version 3. This does not affect the licensing of any software
    +displaying the shapes, it simply means that you must allow users to view the
    +XML the shapes are defined in and any shapes derived from these shapes, if
    +they request it.</p>
    +
    +</br>
    +<p><img src="images/mx_man_stencil_loaded.png" name="ill_mx_stencil_loaded"/><br/>
    +<em>A stencil set loaded into the GraphEditor Library</em></p>
    +
    +<p><code>com.mxgraph.examples.swing.editor.EditorActions.ImportAction</code>
    +provides the example <code>addStencilShape</code> method for registering new
    +stencil shapes and adding them to a palette. The second parameter to this
    +method, <code>nodeXml</code> is the XML as obtained from the .shape file.
    +You could add a single shape to the shape registry using:</p>
    +
    +<pre>
    +String nodeXml = mxUtils.readFile(fc.getSelectedFile().getAbsolutePath());
    +String name = ImportAction.addStencilShape(null, nodeXml, null);
    +</pre>
    +
    +<p>Where fc is a <code>FileChooser</code>. This parses, stores and registers the
    +.shape selected. The name under which it is registered matches the <code> name
    +</code> element obtained from that .shape file. So if that name were BPMN-Gateway,
    +for example, adding:</p>
    +
    +<pre>
    +shape=BPMN-Gateway
    +</pre>
    +
    +<p>to the style string of a vertex or:</p>
    +
    +<pre>
    +style.put(mxConstants.STYLE_SHAPE, "BPMN-Gateway");
    +</pre>
    +
    +<p>to the style map of a vertex, would cause that vertex to be rendered
    +according the SVG in that .shape file. If you wanted to add a complete
    +set of shapes, a stencil set, then generally you would add the set to
    +a palette at the time of import. <code>com.mxgraph.examples.swing.editor.BasicGraphEditor</code>
    +under the examples package, provides the <code>insertPalette(String title)</code>
    +method. Thus:</p>
    +
    +<pre>
    +EditorPalette palette = editor.insertPalette(fc.getSelectedFile().getName());
    +</pre>
    +
    +where fc is a <code>FileChooser</code> provides the palette to pass to:
    +
    +<pre>
    +for (File f : fc.getSelectedFile().listFiles(
    +		new FilenameFilter()
    +		{
    +			public boolean accept(File dir,
    +					String name)
    +			{
    +				return name.toLowerCase().endsWith(
    +						".shape");
    +			}
    +		}))
    +{
    +	String nodeXml = mxUtils.readFile(f.getAbsolutePath());
    +	ImportAction.addStencilShape(palette, nodeXml, f.getParent() + File.separator);
    +}
    +</pre>
    +
    +<p>Where we iterate through each .shape file within a directory selection
    +and call <code>addStencilShape</code> passing in the collective palette,
    +the string XML of the .shape file and the path to that directory, the path
    +being used to obtain the .PNG files that will be used as the icons displayed
    +in the palette. This code can be seen in practice (the code invoked by
    +Import Stencil on Graph Editor) in
    +<code>com.mxgraph.examples.swing.editor.EditorActions.ImportAction</code> within
    +the <code>actionPerformed</code> method.</p>
    +
    +<p>If you want a graphical method to create new shapes, currently this is only
    +possible using the <a href="http://dia-installer.de/howto/create_shape/index.html.en">Dia tool itself</a>.
    +The JGraphX roadmap includes the deployment of an online tool to create custom
    +shapes easily, however.</p>
    +
    +<hr size="1">
    +&copy; 2006-2010 David Benson, Gaudenz Alder
    +</body>
    +</html>
    diff --git a/docs/php-api/files/canvas/mxGdCanvas-php.html b/docs/php-api/files/canvas/mxGdCanvas-php.html
    new file mode 100644
    index 000000000..08e1507d3
    --- /dev/null
    +++ b/docs/php-api/files/canvas/mxGdCanvas-php.html
    @@ -0,0 +1,125 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>/home/gaudenz/project/mxgraph/build/mxgraph/php/src/canvas/mxGdCanvas.php</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxGdCanvas.php"></a>mxGdCanvas.php</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxGdCanvas.php" >mxGdCanvas.php</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#antialias" >antialias</a></td><td class=SDescription>Specifies if image aspect should be preserved in drawImage. </td></tr><tr class="SClass"><td class=SEntry><a href="#mxGdCanvas" >mxGdCanvas</a></td><td class=SDescription>Canvas for drawing graphs using the GD library. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGdCanvas.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.antialias" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">antialias</a></td><td class=SDescription>Specifies if antialiasing should be enabled. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGdCanvas.enableTtf" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">enableTtf</a></td><td class=SDescription>Specifies if truetype fonts are enabled if available. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.shadowColor" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">shadowColor</a></td><td class=SDescription>Holds the color object for the shadow color defined in <a href="../util/mxConstants-php.html#mxConstants.W3C_SHADOWCOLOR" class=LVariable id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mxConstants.W3C_SHADOWCOLOR</a>.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGdCanvas.imageCache" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">imageCache</a></td><td class=SDescription>Holds the image cache.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.image" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">image</a></td><td class=SDescription>Holds the image.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGdCanvas.height" >height</a></td><td class=SDescription>Holds the height.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGdCanvas.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.mxGdCanvas" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">mxGdCanvas</a></td><td class=SDescription>Constructs a new GD canvas. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.loadImage" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">loadImage</a></td><td class=SDescription>Returns an image instance for the given URL. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawCell" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">drawCell</a></td><td class=SDescription>Draws the given cell state.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawLabel" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">drawLabel</a></td><td class=SDescription>Draws the given label.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawMarker" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">drawMarker</a></td><td class=SDescription>Draws the specified marker.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.getImage" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">getImage</a></td><td class=SDescription>Returns an image that represents this canvas.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.setImage" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">setImage</a></td><td class=SDescription>Sets the image that represents the canvas.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.getImageForStyle" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">getImageForStyle</a></td><td class=SDescription>Returns an image that represents this canvas.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawLine" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">drawLine</a></td><td class=SDescription>Draws the given line.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawShape" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">drawShape</a></td><td class=SDescription>Draws the given shape.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawPolygon" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">drawPolygon</a></td><td class=SDescription>Draws the given polygon.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawRect" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">drawRect</a></td><td class=SDescription>Draws then given rectangle. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawOval" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">drawOval</a></td><td class=SDescription>Draws then given ellipse.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawRhombus" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">drawRhombus</a></td><td class=SDescription>Draws then given rhombus.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawTriangle" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">drawTriangle</a></td><td class=SDescription>Draws then given triangle.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawHexagon" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">drawHexagon</a></td><td class=SDescription>Draws then given haxagon.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawCylinder" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">drawCylinder</a></td><td class=SDescription>Draws then given cylinder.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawCloud" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">drawCloud</a></td><td class=SDescription>Draws then given cloud.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawActor" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">drawActor</a></td><td class=SDescription>Draws then given cloud.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawImage" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">drawImage</a></td><td class=SDescription>Draws a given image.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawText" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">drawText</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.getTrueTypeFont" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">getTrueTypeFont</a></td><td class=SDescription>Returns the truetype font to be used to draw the text with the given style.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.getTrueTypeFontSize" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">getTrueTypeFontSize</a></td><td class=SDescription>Returns the truetype font size to be used to draw the text with the given style. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawTtfText" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">drawTtfText</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawTtxTextLine" >drawTtxTextLine</a></td><td class=SDescription>Draws a single line of the given true type font text. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.getFixedFontSize" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">getFixedFontSize</a></td><td class=SDescription>Returns the fixed font size for GD (1 t0 5) for the given font properties</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawString" >drawString</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawFixedTextLine" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">drawFixedTextLine</a></td><td class=SDescription>Draws the given fixed text line.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.getColor" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">getColor</a></td><td class=SDescription>Allocates the given color and returns a reference to it. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.offset" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')">offset</a></td><td class=SDescription>Creates a new array of x, y sequences where the each coordinate is translated by dx and dy, respectively.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGdCanvas.destroy" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')">destroy</a></td><td class=SDescription>Destroys all allocated resources.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGdCanvas.drawGraph" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')">drawGraph</a></td><td class=SDescription>Draws the given graph using this canvas.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="antialias"></a>antialias</h3><div class=CBody><p>Specifies if image aspect should be preserved in drawImage.&nbsp; Default is true.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxGdCanvas"></a>mxGdCanvas</h2><div class=CBody><p>Canvas for drawing graphs using the GD library.&nbsp; This class requires GD support (GDLib).&nbsp; Note that rounded corners, gradients and word wrapping are not supported by GD.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#mxGdCanvas.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.antialias" id=link37 onMouseOver="ShowTip(event, 'tt1', 'link37')" onMouseOut="HideTip('tt1')">antialias</a></td><td class=SDescription>Specifies if antialiasing should be enabled. </td></tr><tr class="SVariable SIndent1"><td class=SEntry><a href="#mxGdCanvas.enableTtf" id=link38 onMouseOver="ShowTip(event, 'tt2', 'link38')" onMouseOut="HideTip('tt2')">enableTtf</a></td><td class=SDescription>Specifies if truetype fonts are enabled if available. </td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.shadowColor" id=link39 onMouseOver="ShowTip(event, 'tt3', 'link39')" onMouseOut="HideTip('tt3')">shadowColor</a></td><td class=SDescription>Holds the color object for the shadow color defined in <a href="../util/mxConstants-php.html#mxConstants.W3C_SHADOWCOLOR" class=LVariable id=link40 onMouseOver="ShowTip(event, 'tt4', 'link40')" onMouseOut="HideTip('tt4')">mxConstants.W3C_SHADOWCOLOR</a>.</td></tr><tr class="SVariable SIndent1"><td class=SEntry><a href="#mxGdCanvas.imageCache" id=link41 onMouseOver="ShowTip(event, 'tt5', 'link41')" onMouseOut="HideTip('tt5')">imageCache</a></td><td class=SDescription>Holds the image cache.</td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.image" id=link42 onMouseOver="ShowTip(event, 'tt6', 'link42')" onMouseOut="HideTip('tt6')">image</a></td><td class=SDescription>Holds the image.</td></tr><tr class="SVariable SIndent1"><td class=SEntry><a href="#mxGdCanvas.height" >height</a></td><td class=SDescription>Holds the height.</td></tr><tr class="SGroup"><td class=SEntry><a href="#mxGdCanvas.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.mxGdCanvas" id=link43 onMouseOver="ShowTip(event, 'tt7', 'link43')" onMouseOut="HideTip('tt7')">mxGdCanvas</a></td><td class=SDescription>Constructs a new GD canvas. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.loadImage" id=link44 onMouseOver="ShowTip(event, 'tt8', 'link44')" onMouseOut="HideTip('tt8')">loadImage</a></td><td class=SDescription>Returns an image instance for the given URL. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawCell" id=link45 onMouseOver="ShowTip(event, 'tt9', 'link45')" onMouseOut="HideTip('tt9')">drawCell</a></td><td class=SDescription>Draws the given cell state.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawLabel" id=link46 onMouseOver="ShowTip(event, 'tt10', 'link46')" onMouseOut="HideTip('tt10')">drawLabel</a></td><td class=SDescription>Draws the given label.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawMarker" id=link47 onMouseOver="ShowTip(event, 'tt11', 'link47')" onMouseOut="HideTip('tt11')">drawMarker</a></td><td class=SDescription>Draws the specified marker.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.getImage" id=link48 onMouseOver="ShowTip(event, 'tt12', 'link48')" onMouseOut="HideTip('tt12')">getImage</a></td><td class=SDescription>Returns an image that represents this canvas.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.setImage" id=link49 onMouseOver="ShowTip(event, 'tt13', 'link49')" onMouseOut="HideTip('tt13')">setImage</a></td><td class=SDescription>Sets the image that represents the canvas.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.getImageForStyle" id=link50 onMouseOver="ShowTip(event, 'tt14', 'link50')" onMouseOut="HideTip('tt14')">getImageForStyle</a></td><td class=SDescription>Returns an image that represents this canvas.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawLine" id=link51 onMouseOver="ShowTip(event, 'tt15', 'link51')" onMouseOut="HideTip('tt15')">drawLine</a></td><td class=SDescription>Draws the given line.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawShape" id=link52 onMouseOver="ShowTip(event, 'tt16', 'link52')" onMouseOut="HideTip('tt16')">drawShape</a></td><td class=SDescription>Draws the given shape.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawPolygon" id=link53 onMouseOver="ShowTip(event, 'tt17', 'link53')" onMouseOut="HideTip('tt17')">drawPolygon</a></td><td class=SDescription>Draws the given polygon.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawRect" id=link54 onMouseOver="ShowTip(event, 'tt18', 'link54')" onMouseOut="HideTip('tt18')">drawRect</a></td><td class=SDescription>Draws then given rectangle. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawOval" id=link55 onMouseOver="ShowTip(event, 'tt19', 'link55')" onMouseOut="HideTip('tt19')">drawOval</a></td><td class=SDescription>Draws then given ellipse.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawRhombus" id=link56 onMouseOver="ShowTip(event, 'tt20', 'link56')" onMouseOut="HideTip('tt20')">drawRhombus</a></td><td class=SDescription>Draws then given rhombus.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawTriangle" id=link57 onMouseOver="ShowTip(event, 'tt21', 'link57')" onMouseOut="HideTip('tt21')">drawTriangle</a></td><td class=SDescription>Draws then given triangle.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawHexagon" id=link58 onMouseOver="ShowTip(event, 'tt22', 'link58')" onMouseOut="HideTip('tt22')">drawHexagon</a></td><td class=SDescription>Draws then given haxagon.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawCylinder" id=link59 onMouseOver="ShowTip(event, 'tt23', 'link59')" onMouseOut="HideTip('tt23')">drawCylinder</a></td><td class=SDescription>Draws then given cylinder.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawCloud" id=link60 onMouseOver="ShowTip(event, 'tt24', 'link60')" onMouseOut="HideTip('tt24')">drawCloud</a></td><td class=SDescription>Draws then given cloud.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawActor" id=link61 onMouseOver="ShowTip(event, 'tt25', 'link61')" onMouseOut="HideTip('tt25')">drawActor</a></td><td class=SDescription>Draws then given cloud.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawImage" id=link62 onMouseOver="ShowTip(event, 'tt26', 'link62')" onMouseOut="HideTip('tt26')">drawImage</a></td><td class=SDescription>Draws a given image.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawText" id=link63 onMouseOver="ShowTip(event, 'tt27', 'link63')" onMouseOut="HideTip('tt27')">drawText</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.getTrueTypeFont" id=link64 onMouseOver="ShowTip(event, 'tt28', 'link64')" onMouseOut="HideTip('tt28')">getTrueTypeFont</a></td><td class=SDescription>Returns the truetype font to be used to draw the text with the given style.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.getTrueTypeFontSize" id=link65 onMouseOver="ShowTip(event, 'tt29', 'link65')" onMouseOut="HideTip('tt29')">getTrueTypeFontSize</a></td><td class=SDescription>Returns the truetype font size to be used to draw the text with the given style. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawTtfText" id=link66 onMouseOver="ShowTip(event, 'tt30', 'link66')" onMouseOut="HideTip('tt30')">drawTtfText</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawTtxTextLine" >drawTtxTextLine</a></td><td class=SDescription>Draws a single line of the given true type font text. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.getFixedFontSize" id=link67 onMouseOver="ShowTip(event, 'tt31', 'link67')" onMouseOut="HideTip('tt31')">getFixedFontSize</a></td><td class=SDescription>Returns the fixed font size for GD (1 t0 5) for the given font properties</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.drawString" >drawString</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawFixedTextLine" id=link68 onMouseOver="ShowTip(event, 'tt32', 'link68')" onMouseOut="HideTip('tt32')">drawFixedTextLine</a></td><td class=SDescription>Draws the given fixed text line.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.getColor" id=link69 onMouseOver="ShowTip(event, 'tt33', 'link69')" onMouseOut="HideTip('tt33')">getColor</a></td><td class=SDescription>Allocates the given color and returns a reference to it. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.offset" id=link70 onMouseOver="ShowTip(event, 'tt34', 'link70')" onMouseOut="HideTip('tt34')">offset</a></td><td class=SDescription>Creates a new array of x, y sequences where the each coordinate is translated by dx and dy, respectively.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#mxGdCanvas.destroy" id=link71 onMouseOver="ShowTip(event, 'tt35', 'link71')" onMouseOut="HideTip('tt35')">destroy</a></td><td class=SDescription>Destroys all allocated resources.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#mxGdCanvas.drawGraph" id=link72 onMouseOver="ShowTip(event, 'tt36', 'link72')" onMouseOut="HideTip('tt36')">drawGraph</a></td><td class=SDescription>Draws the given graph using this canvas.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.antialias"></a>antialias</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $antialias</td></tr></table></blockquote><p>Specifies if antialiasing should be enabled.&nbsp; Default is false.&nbsp; NOTE: GD has a known bug where strokeWidths are ignored if this is enabled.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.enableTtf"></a>enableTtf</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $enableTtf</td></tr></table></blockquote><p>Specifies if truetype fonts are enabled if available.&nbsp; Default is <a href="../util/mxConstants-php.html#mxConstants.TTF_ENABLED" class=LVariable id=link73 onMouseOver="ShowTip(event, 'tt37', 'link73')" onMouseOut="HideTip('tt37')">mxConstants.TTF_ENABLED</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.shadowColor"></a>shadowColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $shadowColor</td></tr></table></blockquote><p>Holds the color object for the shadow color defined in <a href="../util/mxConstants-php.html#mxConstants.W3C_SHADOWCOLOR" class=LVariable id=link74 onMouseOver="ShowTip(event, 'tt4', 'link74')" onMouseOut="HideTip('tt4')">mxConstants.W3C_SHADOWCOLOR</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.imageCache"></a>imageCache</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $imageCache</td></tr></table></blockquote><p>Holds the image cache.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.image"></a>image</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $image</td></tr></table></blockquote><p>Holds the image.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.height"></a>height</h3><div class=CBody><p>Holds the height.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.mxGdCanvas"></a>mxGdCanvas</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGdCanvas(</td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$imageBasePath</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> &quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new GD canvas.&nbsp; Use a HTML color definition for the optional background parameter, eg. white or #FFFFFF.&nbsp; The buffered <a href="#mxGdCanvas.image" class=LVariable id=link75 onMouseOver="ShowTip(event, 'tt6', 'link75')" onMouseOut="HideTip('tt6')">image</a> is only created if the given width and height are greater than 0.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.loadImage"></a>loadImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function loadImage(</td><td class=PParameter nowrap>$image</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an image instance for the given URL.&nbsp; If the URL has been loaded before than an instance of the same instance is returned as in the previous call.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawCell"></a>drawCell</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCell(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the given cell state.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawLabel"></a>drawLabel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLabel(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$state,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$html</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the given label.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawMarker"></a>drawMarker</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawMarker(</td><td class=PParameter nowrap>$type,</td></tr><tr><td></td><td class=PParameter nowrap>$p0,</td></tr><tr><td></td><td class=PParameter nowrap>$pe,</td></tr><tr><td></td><td class=PParameter nowrap>$size,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the specified marker.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.getImage"></a>getImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImage()</td></tr></table></blockquote><p>Returns an image that represents this canvas.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.setImage"></a>setImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setImage(</td><td class=PParameter nowrap>$img</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the image that represents the canvas.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.getImageForStyle"></a>getImageForStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImageForStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an image that represents this canvas.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawLine"></a>drawLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLine(</td><td class=PParameter nowrap>$x0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the given line.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawShape"></a>drawShape</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawShape(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the given shape.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawPolygon"></a>drawPolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawPolygon(</td><td class=PParameter nowrap>$points,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the given polygon.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawRect"></a>drawRect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawRect(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$rounded</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws then given rectangle.&nbsp; Rounded is currently ignored.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawOval"></a>drawOval</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawOval(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws then given ellipse.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawRhombus"></a>drawRhombus</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawRhombus(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws then given rhombus.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawTriangle"></a>drawTriangle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawTriangle(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$direction</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws then given triangle.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawHexagon"></a>drawHexagon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawHexagon(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$direction</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws then given haxagon.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawCylinder"></a>drawCylinder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCylinder(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws then given cylinder.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawCloud"></a>drawCloud</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCloud(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws then given cloud.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawActor"></a>drawActor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawActor(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws then given cloud.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawImage"></a>drawImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawImage(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$aspect</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws a given image.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.getTrueTypeFont"></a>getTrueTypeFont</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTrueTypeFont(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the truetype font to be used to draw the text with the given style.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.getTrueTypeFontSize"></a>getTrueTypeFontSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTrueTypeFontSize(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the truetype font size to be used to draw the text with the given style.&nbsp; This returns the fontSize in the style of the default fontsize multiplied with &lt;ttfSizeFactor&gt;.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawTtfText"></a>drawTtfText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawTtfText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawTtxTextLine"></a>drawTtxTextLine</h3><div class=CBody><p>Draws a single line of the given true type font text.&nbsp; The w and h are the width and height of the complete text box that contains this line.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.getFixedFontSize"></a>getFixedFontSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFixedFontSize(</td><td class=PParameter nowrap>$fontSize,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the fixed font size for GD (1 t0 5) for the given font properties</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawString"></a>drawString</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawFixedTextLine"></a>drawFixedTextLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawFixedTextLine(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$font,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$left,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$top,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$color,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$horizontal</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the given fixed text line.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.getColor"></a>getColor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getColor(</td><td class=PParameter nowrap>$hex,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Allocates the given color and returns a reference to it.&nbsp; Supported color names are black, red, green, blue, orange, yellow, pink, turqoise, white, gray and any hex codes between 000000 and FFFFFF.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.offset"></a>offset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function offset(</td><td class=PParameter nowrap>$points,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$dx</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a new array of x, y sequences where the each coordinate is translated by dx and dy, respectively.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote><p>Destroys all allocated resources.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGdCanvas.drawGraph"></a>drawGraph</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public static function drawGraph(</td><td class=PParameter nowrap>$graph,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$bg</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the given graph using this canvas.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile id=MSelected>canvas/<wbr>mxGdCanvas.php</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $antialias</td></tr></table></blockquote>Specifies if antialiasing should be enabled. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $enableTtf</td></tr></table></blockquote>Specifies if truetype fonts are enabled if available. </div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $shadowColor</td></tr></table></blockquote>Holds the color object for the shadow color defined in mxConstants.W3C_SHADOWCOLOR.</div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $W3C_SHADOWCOLOR</td></tr></table></blockquote>Defines the color to be used to draw shadows in DOM documents.</div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $imageCache</td></tr></table></blockquote>Holds the image cache.</div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $image</td></tr></table></blockquote>Holds the image.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGdCanvas(</td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$imageBasePath</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> &quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new GD canvas. </div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function loadImage(</td><td class=PParameter nowrap>$image</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an image instance for the given URL. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCell(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given cell state.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLabel(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$state,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$html</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given label.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawMarker(</td><td class=PParameter nowrap>$type,</td></tr><tr><td></td><td class=PParameter nowrap>$p0,</td></tr><tr><td></td><td class=PParameter nowrap>$pe,</td></tr><tr><td></td><td class=PParameter nowrap>$size,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified marker.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImage()</td></tr></table></blockquote>Returns an image that represents this canvas.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setImage(</td><td class=PParameter nowrap>$img</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the image that represents the canvas.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImageForStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an image that represents this canvas.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLine(</td><td class=PParameter nowrap>$x0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given line.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawShape(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given shape.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawPolygon(</td><td class=PParameter nowrap>$points,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given polygon.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawRect(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$rounded</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given rectangle. </div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawOval(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given ellipse.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawRhombus(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given rhombus.</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawTriangle(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$direction</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given triangle.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawHexagon(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$direction</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given haxagon.</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCylinder(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given cylinder.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCloud(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given cloud.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawActor(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given cloud.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawImage(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$aspect</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws a given image.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTrueTypeFont(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font to be used to draw the text with the given style.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTrueTypeFontSize(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font size to be used to draw the text with the given style. </div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawTtfText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFixedFontSize(</td><td class=PParameter nowrap>$fontSize,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the fixed font size for GD (1 t0 5) for the given font properties</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawFixedTextLine(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$font,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$left,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$top,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$color,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$horizontal</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given fixed text line.</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getColor(</td><td class=PParameter nowrap>$hex,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Allocates the given color and returns a reference to it. </div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function offset(</td><td class=PParameter nowrap>$points,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$dx</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new array of x, y sequences where the each coordinate is translated by dx and dy, respectively.</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote>Destroys all allocated resources.</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public static function drawGraph(</td><td class=PParameter nowrap>$graph,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$bg</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given graph using this canvas.</div></div><div class=CToolTip id="tt37"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TTF_ENABLED</td></tr></table></blockquote>Whether TrueType fonts should be enabled in the mxGdCanvas by default. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/canvas/mxHtmlCanvas-php.html b/docs/php-api/files/canvas/mxHtmlCanvas-php.html
    new file mode 100644
    index 000000000..e0be089ba
    --- /dev/null
    +++ b/docs/php-api/files/canvas/mxHtmlCanvas-php.html
    @@ -0,0 +1,63 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxHtmlCanvas</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxHtmlCanvas"></a>mxHtmlCanvas</h1><div class=CBody><p>Canvas for drawing graphs using HTML.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxHtmlCanvas" >mxHtmlCanvas</a></td><td class=SDescription>Canvas for drawing graphs using HTML.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxHtmlCanvas.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxHtmlCanvas.html" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">html</a></td><td class=SDescription>Holds the html markup.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxHtmlCanvas.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHtmlCanvas.mxGdCanvas" >mxGdCanvas</a></td><td class=SDescription>Constructs a new GD canvas. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHtmlCanvas.getHtml" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">getHtml</a></td><td class=SDescription>Gets the HTML that represents the canvas.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHtmlCanvas.out" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">out</a></td><td class=SDescription>Adds the specified string to the output.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHtmlCanvas.drawLine" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">drawLine</a></td><td class=SDescription>Draws the specified line.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHtmlCanvas.drawShape" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">drawShape</a></td><td class=SDescription>Draws the specified shape.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHtmlCanvas.drawImage" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">drawImage</a></td><td class=SDescription>Draws the specified image.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHtmlCanvas.drawText" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">drawText</a></td><td class=SDescription>Draws the specified text.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHtmlCanvas.destroy" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">destroy</a></td><td class=SDescription>Destroy all allocated resources.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHtmlCanvas.drawGraph" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">drawGraph</a></td><td class=SDescription>Draws the given graph using this canvas.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.html"></a>html</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $html</td></tr></table></blockquote><p>Holds the html markup.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.mxGdCanvas"></a>mxGdCanvas</h3><div class=CBody><p>Constructs a new GD canvas.&nbsp; Use a HTML color definition for the optional background parameter, eg. white or #FFFFFF.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.getHtml"></a>getHtml</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getHtml()</td></tr></table></blockquote><p>Gets the HTML that represents the canvas.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.out"></a>out</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function out(</td><td class=PParameter nowrap>$string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds the specified string to the output.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.drawLine"></a>drawLine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLine(</td><td class=PParameter nowrap>$x0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the specified line.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.drawShape"></a>drawShape</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawShape(</td><td class=PParameter nowrap>$shape,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null,</td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the specified shape.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.drawImage"></a>drawImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawImage(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$aspect</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the specified image.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.drawText"></a>drawText</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the specified text.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote><p>Destroy all allocated resources.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHtmlCanvas.drawGraph"></a>drawGraph</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public static function drawGraph(</td><td class=PParameter nowrap>$graph,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$bg</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the given graph using this canvas.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxHtmlCanvas</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $html</td></tr></table></blockquote>Holds the html markup.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getHtml()</td></tr></table></blockquote>Gets the HTML that represents the canvas.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function out(</td><td class=PParameter nowrap>$string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified string to the output.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLine(</td><td class=PParameter nowrap>$x0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified line.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawShape(</td><td class=PParameter nowrap>$shape,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null,</td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified shape.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawImage(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$aspect</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified image.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified text.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote>Destroy all allocated resources.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public static function drawGraph(</td><td class=PParameter nowrap>$graph,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$bg</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given graph using this canvas.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/index-txt.html b/docs/php-api/files/index-txt.html
    new file mode 100644
    index 000000000..dccedf8b0
    --- /dev/null
    +++ b/docs/php-api/files/index-txt.html
    @@ -0,0 +1,39 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>API Specification</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="API_Specification"></a>API Specification</h1><div class=CBody><h4 class=CHeading>Overview</h4><p>This PHP library is divided into 4 packages.&nbsp; The top-level &lt;mxServer&gt; class dynamically includes everything else.</p><p>The <b>view</b> and <b>model</b> packages implement the graph component, represented by <a href="view/mxGraph-php.html#mxGraph" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mxGraph</a>.&nbsp; It refers to a <a href="model/mxGraphModel-php.html#mxGraphModel" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">mxGraphModel</a> which contains <a href="model/mxCell-php.html#mxCell" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">mxCell</a>s and caches the state of the cells in a <a href="view/mxGraphView-php.html#mxGraphView" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mxGraphView</a>.&nbsp; The cells are painted using a &lt;mxCanvas&gt; based on the appearance defined in <a href="view/mxStylesheet-php.html#mxStylesheet" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">mxStylesheet</a>.</p><p>The <b>io</b> package implements a generic <a href="io/mxObjectCodec-php.html#mxObjectCodec" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">mxObjectCodec</a> for turning PHP objects into XML.&nbsp; The main class is <a href="io/mxCodec-php.html#mxCodec" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">mxCodec</a>.&nbsp; <a href="io/mxCodecRegistry-php.html#mxCodecRegistry" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">mxCodecRegistry</a> is the global registry for custom codecs.</p><h4 class=CHeading>Requirements</h4><p>The I/O module requires libxml support.&nbsp; The <a href="canvas/mxGdCanvas-php.html#mxGdCanvas" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">mxGdCanvas</a> requires GD support.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile id=MSelected>API Specification</div></div><div class=MEntry><div class=MFile><a href="canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CClass>Implements a graph component.</div></div><div class=CToolTip id="tt2"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt3"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt4"><div class=CClass>Implements a view for the graph. </div></div><div class=CToolTip id="tt5"><div class=CClass>Defines the appearance of the cells in a graph. </div></div><div class=CToolTip id="tt6"><div class=CClass>XML codec for PHP object graphs.</div></div><div class=CToolTip id="tt7"><div class=CClass>XML codec for PHP object graphs. </div></div><div class=CToolTip id="tt8"><div class=CClass>A class to register codecs for objects.</div></div><div class=CToolTip id="tt9"><div class=CClass>Canvas for drawing graphs using the GD library. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/io/mxCellCodec-php.html b/docs/php-api/files/io/mxCellCodec-php.html
    new file mode 100644
    index 000000000..bd578e34a
    --- /dev/null
    +++ b/docs/php-api/files/io/mxCellCodec-php.html
    @@ -0,0 +1,43 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxCellCodec</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxCellCodec"></a>mxCellCodec</h1><div class=CBody><p>Codec for <a href="../model/mxCell-php.html#mxCell" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">mxCell</a>s.&nbsp; This class is created and registered dynamically at load time and used implicitely via <a href="mxCodec-php.html#mxCodec" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2')">mxCodec</a> and the <a href="mxCodecRegistry-php.html#mxCodecRegistry" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">mxCodecRegistry</a>.</p><h4 class=CHeading>Transient Fields</h4><ul><li>children</li><li>edges</li><li>states</li><li>overlay</li><li>mxTransient</li></ul><h4 class=CHeading>Reference Fields</h4><ul><li>parent</li><li>source</li><li>target</li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxCellCodec" >mxCellCodec</a></td><td class=SDescription>Codec for <a href="../model/mxCell-php.html#mxCell" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mxCell</a>s. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCellCodec.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCellCodec.mxObjectCodec" >mxObjectCodec</a></td><td class=SDescription>Constructs a new codec for the specified template object. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCellCodec.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCellCodec.mxObjectCodec"></a>mxObjectCodec</h3><div class=CBody><p>Constructs a new codec for the specified template object.&nbsp; The variables in the optional exclude array are ignored by the codec.&nbsp; Variables in the optional idrefs array are turned into references in the XML.&nbsp; The optional mapping may be used to map from variable names to XML attributes.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>template</td><td class=CDLDescription>Prototypical instance of the object to be encoded/decoded.</td></tr><tr><td class=CDLEntry>exclude</td><td class=CDLDescription>Optional array of fieldnames to be ignored.</td></tr><tr><td class=CDLEntry>idrefs</td><td class=CDLDescription>Optional array of fieldnames to be converted to/from references.</td></tr><tr><td class=CDLEntry>mapping</td><td class=CDLDescription>Optional mapping from field- to attributenames.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile id=MSelected>mxCellCodec</div></div><div class=MEntry><div class=MFile><a href="mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt2"><div class=CClass>XML codec for PHP object graphs. </div></div><div class=CToolTip id="tt3"><div class=CClass>A class to register codecs for objects.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/io/mxCodec-php.html b/docs/php-api/files/io/mxCodec-php.html
    new file mode 100644
    index 000000000..736950bd7
    --- /dev/null
    +++ b/docs/php-api/files/io/mxCodec-php.html
    @@ -0,0 +1,75 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxCodec</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxCodec"></a>mxCodec</h1><div class=CBody><p>XML codec for PHP object graphs.&nbsp; In order to resolve forward references when reading files the XML document that contains the data must be passed to the constructor.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxCodec" >mxCodec</a></td><td class=SDescription>XML codec for PHP object graphs. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCodec.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCodec.document" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">document</a></td><td class=SDescription>The owner document of the codec.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCodec.objects" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">objects</a></td><td class=SDescription>Maps from IDs to objects.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCodec.encodeDefaults" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">encodeDefaults</a></td><td class=SDescription>Specifies if default values should be encoded. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCodec.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodec.mxGraphViewHtmlReader" >mxGraphViewHtmlReader</a></td><td class=SDescription>Constructs a new HTML graph view reader.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCodec.putObject" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">putObject</a></td><td class=SDescription>Assoiates the given object with the given ID.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodec.getObject" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">getObject</a></td><td class=SDescription>Returns the decoded object for the element with the specified ID in <a href="#mxCodec.document" class=LVariable id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1')">document</a>. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCodec.lookup" id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">lookup</a></td><td class=SDescription>Hook for subclassers to implement a custom lookup mechanism for cell IDs. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodec.getElementById" id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">getElementById</a></td><td class=SDescription>Returns the element with the given ID from <a href="#mxCodec.document" class=LVariable id=link9 onMouseOver="ShowTip(event, 'tt1', 'link9')" onMouseOut="HideTip('tt1')">document</a>. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCodec.getId" id=link10 onMouseOver="ShowTip(event, 'tt8', 'link10')" onMouseOut="HideTip('tt8')">getId</a></td><td class=SDescription>Returns the ID of the specified object. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodec.reference" id=link11 onMouseOver="ShowTip(event, 'tt9', 'link11')" onMouseOut="HideTip('tt9')">reference</a></td><td class=SDescription>Hook for subclassers to implement a custom method for retrieving IDs from objects. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCodec.encode" id=link12 onMouseOver="ShowTip(event, 'tt10', 'link12')" onMouseOut="HideTip('tt10')">encode</a></td><td class=SDescription>Encodes the specified object and returns the resulting XML node.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodec.decode" id=link13 onMouseOver="ShowTip(event, 'tt11', 'link13')" onMouseOut="HideTip('tt11')">decode</a></td><td class=SDescription>Decodes the given XML node. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCodec.encodeCell" id=link14 onMouseOver="ShowTip(event, 'tt12', 'link14')" onMouseOut="HideTip('tt12')">encodeCell</a></td><td class=SDescription>Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodec.decodeCell" id=link15 onMouseOver="ShowTip(event, 'tt13', 'link15')" onMouseOut="HideTip('tt13')">decodeCell</a></td><td class=SDescription>Decodes cells that have been encoded using inversion, ie. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCodec.insertIntoGraph" id=link16 onMouseOver="ShowTip(event, 'tt14', 'link16')" onMouseOut="HideTip('tt14')">insertIntoGraph</a></td><td class=SDescription>Inserts the given cell into its parent and terminal cells.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodec.setAttribute" id=link17 onMouseOver="ShowTip(event, 'tt15', 'link17')" onMouseOut="HideTip('tt15')">setAttribute</a></td><td class=SDescription>Sets the attribute on the specified node to value. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCodec.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCodec.document"></a>document</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $document</td></tr></table></blockquote><p>The owner document of the codec.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCodec.objects"></a>objects</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $objects</td></tr></table></blockquote><p>Maps from IDs to objects.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCodec.encodeDefaults"></a>encodeDefaults</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $encodeDefaults</td></tr></table></blockquote><p>Specifies if default values should be encoded.&nbsp; Default is false.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCodec.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.mxGraphViewHtmlReader"></a>mxGraphViewHtmlReader</h3><div class=CBody><p>Constructs a new HTML graph view reader.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.putObject"></a>putObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putObject(</td><td class=PParameter nowrap>$id,</td></tr><tr><td></td><td class=PParameter nowrap>$object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Assoiates the given object with the given ID.</p><p>Parameters</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>ID for the object to be associated with.</td></tr><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object to be associated with the ID.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.getObject"></a>getObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getObject(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the decoded object for the element with the specified ID in <a href="#mxCodec.document" class=LVariable id=link18 onMouseOver="ShowTip(event, 'tt1', 'link18')" onMouseOut="HideTip('tt1')">document</a>.&nbsp; If the object is not known then <a href="#mxCodec.lookup" class=LFunction id=link19 onMouseOver="ShowTip(event, 'tt6', 'link19')" onMouseOut="HideTip('tt6')">lookup</a> is used to find an object.&nbsp; If no object is found, then the element with the respective ID from the document is parsed using <a href="#mxCodec.decode" class=LFunction id=link20 onMouseOver="ShowTip(event, 'tt11', 'link20')" onMouseOut="HideTip('tt11')">decode</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.lookup"></a>lookup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function lookup(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook for subclassers to implement a custom lookup mechanism for cell IDs.&nbsp; This implementation always returns null.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>ID of the object to be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.getElementById"></a>getElementById</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getElementById(</td><td class=PParameter nowrap>$id,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$attr</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;id&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the element with the given ID from <a href="#mxCodec.document" class=LVariable id=link21 onMouseOver="ShowTip(event, 'tt1', 'link21')" onMouseOut="HideTip('tt1')">document</a>.&nbsp; The optional attr argument specifies the name of the ID attribute.&nbsp; Default is &ldquo;id&rdquo;.&nbsp; The XPath expression used to find the element is //*[@attr=&rsquo;arg&rsquo;] where attr is the name of the ID attribute and arg is the given id.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>String that contains the ID.</td></tr><tr><td class=CDLEntry>attr</td><td class=CDLDescription>Optional string for the attributename.&nbsp; Default is &ldquo;id&rdquo;.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.getId"></a>getId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getId(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the ID of the specified object.&nbsp; This implementation calls <a href="#mxCodec.reference" class=LFunction id=link22 onMouseOver="ShowTip(event, 'tt9', 'link22')" onMouseOut="HideTip('tt9')">reference</a> first and if that returns null handles the object as an <a href="../model/mxCell-php.html#mxCell" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt16', 'link23')" onMouseOut="HideTip('tt16')">mxCell</a> by returning their IDs using <a href="../model/mxCell-php.html#mxCell.getId" class=LFunction id=link24 onMouseOver="ShowTip(event, 'tt17', 'link24')" onMouseOut="HideTip('tt17')">mxCell.getId</a>.&nbsp; If no ID exists for the given cell, then an on-the-fly ID is generated using <a href="../model/mxCellPath-php.html#mxCellPath.create" class=LFunction id=link25 onMouseOver="ShowTip(event, 'tt18', 'link25')" onMouseOut="HideTip('tt18')">mxCellPath.create</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object to return the ID for.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.reference"></a>reference</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function reference(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook for subclassers to implement a custom method for retrieving IDs from objects.&nbsp; This implementation always returns null.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object whose ID should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.encode"></a>encode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encode(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Encodes the specified object and returns the resulting XML node.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object to be encoded.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.decode"></a>decode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decode(</td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$into</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Decodes the given XML node.&nbsp; The optional &ldquo;into&rdquo; argument specifies an existing object to be used.&nbsp; If no object is given, then a new instance is created using the constructor from the codec.</p><p>The function returns the passed in object or the new instance if no object was given.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node to be decoded.</td></tr><tr><td class=CDLEntry>into</td><td class=CDLDescription>Optional object to be decodec into.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.encodeCell"></a>encodeCell</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeCell(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg.&nbsp; <a href="mxModelCodec-php.html#mxModelCodec" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt19', 'link26')" onMouseOut="HideTip('tt19')">mxModelCodec</a>, &lt;mxChildChangeCodec&gt; and &lt;mxRootChangeCodec&gt;).&nbsp; This implementation writes the given cell and its children as a (flat) sequence into the given node.&nbsp; The children are not encoded if the optional includeChildren is false.&nbsp; The function is in charge of adding the result into the given node and has no return value.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="../model/mxCell-php.html#mxCell" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt16', 'link27')" onMouseOut="HideTip('tt16')">mxCell</a> to be encoded.</td></tr><tr><td class=CDLEntry>node</td><td class=CDLDescription>Parent XML node to add the encoded cell into.</td></tr><tr><td class=CDLEntry>includeChildren</td><td class=CDLDescription>Optional boolean indicating if the function should include all descendents.&nbsp; Default is true.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.decodeCell"></a>decodeCell</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeCell(</td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$restoreStructures</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Decodes cells that have been encoded using inversion, ie. where the user object is the enclosing node in the XML, and restores the group and graph structure in the cells.&nbsp; Returns a new <a href="../model/mxCell-php.html#mxCell" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt16', 'link28')" onMouseOut="HideTip('tt16')">mxCell</a> instance that represents the given node.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node that contains the cell data.</td></tr><tr><td class=CDLEntry>restoreStructures</td><td class=CDLDescription>Optional boolean indicating whether the graph structure should be restored by calling insert and insertEdge on the parent and terminals, respectively.&nbsp; Default is true.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.insertIntoGraph"></a>insertIntoGraph</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertIntoGraph(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Inserts the given cell into its parent and terminal cells.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodec.setAttribute"></a>setAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setAttribute(</td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$attribute,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the attribute on the specified node to value.&nbsp; This is a helper method that makes sure the attribute and value arguments are not null.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node to set the attribute for.</td></tr><tr><td class=CDLEntry>attributes</td><td class=CDLDescription>Attributename to be set.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>New value of the attribute.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxCodec</div></div><div class=MEntry><div class=MFile><a href="mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $document</td></tr></table></blockquote>The owner document of the codec.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $objects</td></tr></table></blockquote>Maps from IDs to objects.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $encodeDefaults</td></tr></table></blockquote>Specifies if default values should be encoded. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putObject(</td><td class=PParameter nowrap>$id,</td></tr><tr><td></td><td class=PParameter nowrap>$object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Assoiates the given object with the given ID.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getObject(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the decoded object for the element with the specified ID in document. </div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function lookup(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to implement a custom lookup mechanism for cell IDs. </div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getElementById(</td><td class=PParameter nowrap>$id,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$attr</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;id&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the element with the given ID from document. </div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getId(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the ID of the specified object. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function reference(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to implement a custom method for retrieving IDs from objects. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encode(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the specified object and returns the resulting XML node.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decode(</td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$into</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodes the given XML node. </div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeCell(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg. </div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeCell(</td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$restoreStructures</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodes cells that have been encoded using inversion, ie. </div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertIntoGraph(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inserts the given cell into its parent and terminal cells.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setAttribute(</td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$attribute,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the attribute on the specified node to value. </div></div><div class=CToolTip id="tt16"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getId()</td></tr></table></blockquote>Returns the Id of the cell as a string.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function create(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the cell path for the given cell. </div></div><div class=CToolTip id="tt19"><div class=CClass>Codec for mxGraphModels. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/io/mxCodecRegistry-php.html b/docs/php-api/files/io/mxCodecRegistry-php.html
    new file mode 100644
    index 000000000..4984859cf
    --- /dev/null
    +++ b/docs/php-api/files/io/mxCodecRegistry-php.html
    @@ -0,0 +1,57 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxCodecRegistry</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxCodecRegistry"></a>mxCodecRegistry</h1><div class=CBody><p>A class to register codecs for objects.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxCodecRegistry" >mxCodecRegistry</a></td><td class=SDescription>A class to register codecs for objects.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCodecRegistry.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCodecRegistry.codecs" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">codecs</a></td><td class=SDescription>Maps from constructor names to codecs.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCodecRegistry.aliases" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">aliases</a></td><td class=SDescription>Maps from classnames to codecnames.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCodecRegistry.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodecRegistry.register" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">register</a></td><td class=SDescription>Registers a new codec and associates the name of the template constructor in the codec with the codec object. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCodecRegistry.addAlias" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">addAlias</a></td><td class=SDescription>Adds an alias for mapping a classname to a codecname.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodecRegistry.getCodec" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">getCodec</a></td><td class=SDescription>Returns a codec that handles objects that are constructed using the given ctor.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCodecRegistry.getInstanceForName" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">getInstanceForName</a></td><td class=SDescription>Creates and returns a new instance for the given class name.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCodecRegistry.getName" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">getName</a></td><td class=SDescription>Returns the codec name for the given object instance.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCodecRegistry.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCodecRegistry.codecs"></a>codecs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $codecs</td></tr></table></blockquote><p>Maps from constructor names to codecs.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCodecRegistry.aliases"></a>aliases</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $aliases</td></tr></table></blockquote><p>Maps from classnames to codecnames.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCodecRegistry.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodecRegistry.register"></a>register</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function register(</td><td class=PParameter nowrap>$codec</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Registers a new codec and associates the name of the template constructor in the codec with the codec object.&nbsp; Automatically creates an alias if the codename and the classname are not equal.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>codec</td><td class=CDLDescription><a href="mxObjectCodec-php.html#mxObjectCodec" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">mxObjectCodec</a> to be registered.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodecRegistry.addAlias"></a>addAlias</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addAlias(</td><td class=PParameter nowrap>$classname,</td></tr><tr><td></td><td class=PParameter nowrap>$codecname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds an alias for mapping a classname to a codecname.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodecRegistry.getCodec"></a>getCodec</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getCodec(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a codec that handles objects that are constructed using the given ctor.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>ctor</td><td class=CDLDescription>JavaScript constructor function.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodecRegistry.getInstanceForName"></a>getInstanceForName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getInstanceForName(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates and returns a new instance for the given class name.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCodecRegistry.getName"></a>getName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getName(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the codec name for the given object instance.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>obj</td><td class=CDLDescription>PHP object to return the codec name for.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxCodecRegistry</div></div><div class=MEntry><div class=MFile><a href="mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $codecs</td></tr></table></blockquote>Maps from constructor names to codecs.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $aliases</td></tr></table></blockquote>Maps from classnames to codecnames.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function register(</td><td class=PParameter nowrap>$codec</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Registers a new codec and associates the name of the template constructor in the codec with the codec object. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addAlias(</td><td class=PParameter nowrap>$classname,</td></tr><tr><td></td><td class=PParameter nowrap>$codecname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds an alias for mapping a classname to a codecname.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getCodec(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a codec that handles objects that are constructed using the given ctor.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getInstanceForName(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates and returns a new instance for the given class name.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getName(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the codec name for the given object instance.</div></div><div class=CToolTip id="tt8"><div class=CClass>XML codec for PHP object graphs.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/io/mxModelCodec-php.html b/docs/php-api/files/io/mxModelCodec-php.html
    new file mode 100644
    index 000000000..b54001499
    --- /dev/null
    +++ b/docs/php-api/files/io/mxModelCodec-php.html
    @@ -0,0 +1,43 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxModelCodec</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxModelCodec"></a>mxModelCodec</h1><div class=CBody><p>Codec for <a href="../model/mxGraphModel-php.html#mxGraphModel" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">mxGraphModels</a>.&nbsp; This class is created and registered dynamically at load time and used implicitly via <a href="mxCodec-php.html#mxCodec" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2')">mxCodec</a> and the <a href="mxCodecRegistry-php.html#mxCodecRegistry" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">mxCodecRegistry</a>.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxModelCodec" >mxModelCodec</a></td><td class=SDescription>Codec for <a href="../model/mxGraphModel-php.html#mxGraphModel" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mxGraphModels</a>. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxModelCodec.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxModelCodec.mxObjectCodec" >mxObjectCodec</a></td><td class=SDescription>Constructs a new codec for the specified template object. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxModelCodec.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxModelCodec.mxObjectCodec"></a>mxObjectCodec</h3><div class=CBody><p>Constructs a new codec for the specified template object.&nbsp; The variables in the optional exclude array are ignored by the codec.&nbsp; Variables in the optional idrefs array are turned into references in the XML.&nbsp; The optional mapping may be used to map from variable names to XML attributes.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>template</td><td class=CDLDescription>Prototypical instance of the object to be encoded/decoded.</td></tr><tr><td class=CDLEntry>exclude</td><td class=CDLDescription>Optional array of fieldnames to be ignored.</td></tr><tr><td class=CDLEntry>idrefs</td><td class=CDLDescription>Optional array of fieldnames to be converted to/from references.</td></tr><tr><td class=CDLEntry>mapping</td><td class=CDLDescription>Optional mapping from field- to attributenames.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxModelCodec</div></div><div class=MEntry><div class=MFile><a href="mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt2"><div class=CClass>XML codec for PHP object graphs. </div></div><div class=CToolTip id="tt3"><div class=CClass>A class to register codecs for objects.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/io/mxObjectCodec-php.html b/docs/php-api/files/io/mxObjectCodec-php.html
    new file mode 100644
    index 000000000..0d010500f
    --- /dev/null
    +++ b/docs/php-api/files/io/mxObjectCodec-php.html
    @@ -0,0 +1,115 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxObjectCodec</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxObjectCodec"></a>mxObjectCodec</h1><div class=CBody><p>XML codec for PHP object graphs.</p><h4 class=CHeading>Implementation note</h4><p>The passing of the argument by reference in <a href="#mxObjectCodec.decode" class=LFunction id=link43 onMouseOver="ShowTip(event, 'tt23', 'link43')" onMouseOut="HideTip('tt23')">decode</a>, <a href="#mxObjectCodec.decodeNode" class=LFunction id=link44 onMouseOver="ShowTip(event, 'tt24', 'link44')" onMouseOut="HideTip('tt24')">decodeNode</a>, <a href="#mxObjectCodec.decodeAttributes" class=LFunction id=link45 onMouseOver="ShowTip(event, 'tt25', 'link45')" onMouseOut="HideTip('tt25')">decodeAttributes</a>, <a href="#mxObjectCodec.decodeAttribute" class=LFunction id=link46 onMouseOver="ShowTip(event, 'tt27', 'link46')" onMouseOut="HideTip('tt27')">decodeAttribute</a>, <a href="#mxObjectCodec.decodeChildren" class=LFunction id=link47 onMouseOver="ShowTip(event, 'tt26', 'link47')" onMouseOut="HideTip('tt26')">decodeChildren</a>, <a href="#mxObjectCodec.decodeChild" class=LFunction id=link48 onMouseOver="ShowTip(event, 'tt28', 'link48')" onMouseOut="HideTip('tt28')">decodeChild</a>, <a href="#mxObjectCodec.beforeDecode" class=LFunction id=link49 onMouseOver="ShowTip(event, 'tt32', 'link49')" onMouseOut="HideTip('tt32')">beforeDecode</a> and <a href="#mxObjectCodec.afterDecode" class=LFunction id=link50 onMouseOver="ShowTip(event, 'tt33', 'link50')" onMouseOut="HideTip('tt33')">afterDecode</a> is required since the object may be an array instance, which needs an explicit reference operator even in PHP 5 to be changed in-place.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxObjectCodec" >mxObjectCodec</a></td><td class=SDescription>XML codec for PHP object graphs.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxObjectCodec.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.template" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">template</a></td><td class=SDescription>Holds the template object associated with this codec.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxObjectCodec.exclude" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">exclude</a></td><td class=SDescription>Array containing the variable names that should be ignored by the codec.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.idrefs" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">idrefs</a></td><td class=SDescription>Array containing the variable names that should be turned into or converted from references. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxObjectCodec.mapping" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mapping</a></td><td class=SDescription>Maps from from fieldnames to XML attribute names.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.reverse" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">reverse</a></td><td class=SDescription>Maps from from XML attribute names to fieldnames.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxObjectCodec.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.mxObjectCodec" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">mxObjectCodec</a></td><td class=SDescription>Constructs a new codec for the specified template object. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.getName" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">getName</a></td><td class=SDescription>Creates a new instance of the template for this codec.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.cloneTemplate" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">cloneTemplate</a></td><td class=SDescription>Creates a new instance of the template for this codec.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.getFieldName" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">getFieldName</a></td><td class=SDescription>Returns the fieldname for the given attributename. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.getAttributeName" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">getAttributeName</a></td><td class=SDescription>Returns the attributename for the given fieldname. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.isExcluded" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">isExcluded</a></td><td class=SDescription>Returns true if the given attribute is to be ignored by the codec. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.isReference" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">isReference</a></td><td class=SDescription>Returns true if the given fieldname is to be treated as a textual reference (ID). </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.encode" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">encode</a></td><td class=SDescription>Encodes the specified object and returns a node representing then given object. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.encodeObject" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">encodeObject</a></td><td class=SDescription>Encodes the value of each member in then given obj into the given node using <a href="#mxObjectCodec.encodeValue" class=LFunction id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">encodeValue</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.encodeValue" id=link16 onMouseOver="ShowTip(event, 'tt15', 'link16')" onMouseOut="HideTip('tt15')">encodeValue</a></td><td class=SDescription>Converts the given value according to the mappings and id-refs in this codec and uses <a href="#mxObjectCodec.writeAttribute" class=LFunction id=link17 onMouseOver="ShowTip(event, 'tt16', 'link17')" onMouseOut="HideTip('tt16')">writeAttribute</a> to write the attribute into the given node.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.writeAttribute" id=link18 onMouseOver="ShowTip(event, 'tt16', 'link18')" onMouseOut="HideTip('tt16')">writeAttribute</a></td><td class=SDescription>Writes the given value into node using <a href="#mxObjectCodec.writePrimitiveAttribute" class=LFunction id=link19 onMouseOver="ShowTip(event, 'tt17', 'link19')" onMouseOut="HideTip('tt17')">writePrimitiveAttribute</a> or <a href="#mxObjectCodec.writeComplexAttribute" class=LFunction id=link20 onMouseOver="ShowTip(event, 'tt18', 'link20')" onMouseOut="HideTip('tt18')">writeComplexAttribute</a> depending on the type of the value.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.writePrimitiveAttribute" id=link21 onMouseOver="ShowTip(event, 'tt17', 'link21')" onMouseOut="HideTip('tt17')">writePrimitiveAttribute</a></td><td class=SDescription>Writes the given value as an attribute of the given node.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.writeComplexAttribute" id=link22 onMouseOver="ShowTip(event, 'tt18', 'link22')" onMouseOut="HideTip('tt18')">writeComplexAttribute</a></td><td class=SDescription>Writes the given value as a child node of the given node.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.convertValueToXml" id=link23 onMouseOver="ShowTip(event, 'tt19', 'link23')" onMouseOut="HideTip('tt19')">convertValueToXml</a></td><td class=SDescription>Returns the given value without applying a conversion.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.convertValueFromXml" id=link24 onMouseOver="ShowTip(event, 'tt20', 'link24')" onMouseOut="HideTip('tt20')">convertValueFromXml</a></td><td class=SDescription>Returns the given value. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.beforeEncode" id=link25 onMouseOver="ShowTip(event, 'tt21', 'link25')" onMouseOut="HideTip('tt21')">beforeEncode</a></td><td class=SDescription>Hook for subclassers to pre-process the object before encoding. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.afterEncode" id=link26 onMouseOver="ShowTip(event, 'tt22', 'link26')" onMouseOut="HideTip('tt22')">afterEncode</a></td><td class=SDescription>Hook for subclassers to post-process the node for the given object after encoding and return the post-processed node. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.decode" id=link27 onMouseOver="ShowTip(event, 'tt23', 'link27')" onMouseOut="HideTip('tt23')">decode</a></td><td class=SDescription>Parses the given node into the object or returns a new object representing the given node.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.decodeNode" id=link28 onMouseOver="ShowTip(event, 'tt24', 'link28')" onMouseOut="HideTip('tt24')">decodeNode</a></td><td class=SDescription>Calls <a href="#mxObjectCodec.decodeAttributes" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt25', 'link29')" onMouseOut="HideTip('tt25')">decodeAttributes</a> and <a href="#mxObjectCodec.decodeChildren" class=LFunction id=link30 onMouseOver="ShowTip(event, 'tt26', 'link30')" onMouseOut="HideTip('tt26')">decodeChildren</a> for the given node.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.decodeAttributes" id=link31 onMouseOver="ShowTip(event, 'tt25', 'link31')" onMouseOut="HideTip('tt25')">decodeAttributes</a></td><td class=SDescription>Decodes all attributes of the given node using <a href="#mxObjectCodec.decodeAttribute" class=LFunction id=link32 onMouseOver="ShowTip(event, 'tt27', 'link32')" onMouseOut="HideTip('tt27')">decodeAttribute</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.decodeAttribute" id=link33 onMouseOver="ShowTip(event, 'tt27', 'link33')" onMouseOut="HideTip('tt27')">decodeAttribute</a></td><td class=SDescription>Reads the given attribute into the specified object.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.decodeChildren" id=link34 onMouseOver="ShowTip(event, 'tt26', 'link34')" onMouseOut="HideTip('tt26')">decodeChildren</a></td><td class=SDescription>Decodec all children of the given node using <a href="#mxObjectCodec.decodeChild" class=LFunction id=link35 onMouseOver="ShowTip(event, 'tt28', 'link35')" onMouseOut="HideTip('tt28')">decodeChild</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.decodeChild" id=link36 onMouseOver="ShowTip(event, 'tt28', 'link36')" onMouseOut="HideTip('tt28')">decodeChild</a></td><td class=SDescription>Reads the specified child into the given object.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.getFieldTemplate" id=link37 onMouseOver="ShowTip(event, 'tt29', 'link37')" onMouseOut="HideTip('tt29')">getFieldTemplate</a></td><td class=SDescription>Returns the template instance for the given field. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.addObjectValue" id=link38 onMouseOver="ShowTip(event, 'tt30', 'link38')" onMouseOut="HideTip('tt30')">addObjectValue</a></td><td class=SDescription>Sets the decoded child node as a value of the given object. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.processInclude" id=link39 onMouseOver="ShowTip(event, 'tt31', 'link39')" onMouseOut="HideTip('tt31')">processInclude</a></td><td class=SDescription>Returns true if the given node is an include directive and executes the include by decoding the XML document. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxObjectCodec.beforeDecode" id=link40 onMouseOver="ShowTip(event, 'tt32', 'link40')" onMouseOut="HideTip('tt32')">beforeDecode</a></td><td class=SDescription>Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by <a href="#mxObjectCodec.decode" class=LFunction id=link41 onMouseOver="ShowTip(event, 'tt23', 'link41')" onMouseOut="HideTip('tt23')">decode</a>. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxObjectCodec.afterDecode" id=link42 onMouseOver="ShowTip(event, 'tt33', 'link42')" onMouseOut="HideTip('tt33')">afterDecode</a></td><td class=SDescription>Hook for subclassers to post-process the object after decoding. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.template"></a>template</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $template</td></tr></table></blockquote><p>Holds the template object associated with this codec.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.exclude"></a>exclude</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $exclude</td></tr></table></blockquote><p>Array containing the variable names that should be ignored by the codec.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.idrefs"></a>idrefs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $idrefs</td></tr></table></blockquote><p>Array containing the variable names that should be turned into or converted from references.&nbsp; See <a href="mxCodec-php.html#mxCodec.getId" class=LFunction id=link51 onMouseOver="ShowTip(event, 'tt34', 'link51')" onMouseOut="HideTip('tt34')">mxCodec.getId</a> and <a href="mxCodec-php.html#mxCodec.getObject" class=LFunction id=link52 onMouseOver="ShowTip(event, 'tt35', 'link52')" onMouseOut="HideTip('tt35')">mxCodec.getObject</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.mapping"></a>mapping</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $mapping</td></tr></table></blockquote><p>Maps from from fieldnames to XML attribute names.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.reverse"></a>reverse</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $reverse</td></tr></table></blockquote><p>Maps from from XML attribute names to fieldnames.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.mxObjectCodec"></a>mxObjectCodec</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxObjectCodec(</td><td class=PParameter nowrap>$template,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$exclude</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array(),</td></tr><tr><td></td><td class=PParameter nowrap>$idrefs</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array(),</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array()</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new codec for the specified template object.&nbsp; The variables in the optional exclude array are ignored by the codec.&nbsp; Variables in the optional idrefs array are turned into references in the XML.&nbsp; The optional mapping may be used to map from variable names to XML attributes.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>template</td><td class=CDLDescription>Prototypical instance of the object to be encoded/decoded.</td></tr><tr><td class=CDLEntry>exclude</td><td class=CDLDescription>Optional array of fieldnames to be ignored.</td></tr><tr><td class=CDLEntry>idrefs</td><td class=CDLDescription>Optional array of fieldnames to be converted to/from references.</td></tr><tr><td class=CDLEntry>mapping</td><td class=CDLDescription>Optional mapping from field- to attributenames.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.getName"></a>getName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getName()</td></tr></table></blockquote><p>Creates a new instance of the template for this codec.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.cloneTemplate"></a>cloneTemplate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function cloneTemplate()</td></tr></table></blockquote><p>Creates a new instance of the template for this codec.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.getFieldName"></a>getFieldName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFieldName(</td><td class=PParameter nowrap>$attributename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the fieldname for the given attributename.&nbsp; Looks up the value in the <a href="#mxObjectCodec.reverse" class=LVariable id=link53 onMouseOver="ShowTip(event, 'tt5', 'link53')" onMouseOut="HideTip('tt5')">reverse</a> mapping or returns the input if there is no reverse mapping for the given name.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.getAttributeName"></a>getAttributeName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getAttributeName(</td><td class=PParameter nowrap>$fieldname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the attributename for the given fieldname.&nbsp; Looks up the value in the <a href="#mxObjectCodec.mapping" class=LVariable id=link54 onMouseOver="ShowTip(event, 'tt4', 'link54')" onMouseOut="HideTip('tt4')">mapping</a> or returns the input if there is no mapping for the given name.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.isExcluded"></a>isExcluded</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isExcluded(</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$write</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given attribute is to be ignored by the codec.&nbsp; This implementation returns true if the given fieldname is in <a href="#mxObjectCodec.exclude" class=LVariable id=link55 onMouseOver="ShowTip(event, 'tt2', 'link55')" onMouseOut="HideTip('tt2')">exclude</a> or if the fieldname equals &lt;mxObjectIdentity.FIELD_NAME&gt;.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object instance that contains the field.</td></tr><tr><td class=CDLEntry>attr</td><td class=CDLDescription>Fieldname of the field.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>Value of the field.</td></tr><tr><td class=CDLEntry>write</td><td class=CDLDescription>Boolean indicating if the field is being encoded or decoded.&nbsp; Write is true if the field is being encoded, else it is being decoded.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.isReference"></a>isReference</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isReference(</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$write</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given fieldname is to be treated as a textual reference (ID).&nbsp; This implementation returns true if the given fieldname is in <a href="#mxObjectCodec.idrefs" class=LVariable id=link56 onMouseOver="ShowTip(event, 'tt3', 'link56')" onMouseOut="HideTip('tt3')">idrefs</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object instance that contains the field.</td></tr><tr><td class=CDLEntry>attr</td><td class=CDLDescription>Fieldname of the field.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>Value of the field.</td></tr><tr><td class=CDLEntry>write</td><td class=CDLDescription>Boolean indicating if the field is being encoded or decoded.&nbsp; Write is true if the field is being encoded, else it is being decoded.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.encode"></a>encode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Encodes the specified object and returns a node representing then given object.&nbsp; Calls <a href="#mxObjectCodec.beforeEncode" class=LFunction id=link57 onMouseOver="ShowTip(event, 'tt21', 'link57')" onMouseOut="HideTip('tt21')">beforeEncode</a> after creating the node and <a href="#mxObjectCodec.afterEncode" class=LFunction id=link58 onMouseOver="ShowTip(event, 'tt22', 'link58')" onMouseOut="HideTip('tt22')">afterEncode</a> with the resulting node after processing.</p><p>Enc is a reference to the calling encoder.&nbsp; It is used to encode complex objects and create references.</p><p>This implementation encodes all variables of an object according to the following rules:</p><ul><li>If the variable name is in <a href="#mxObjectCodec.exclude" class=LVariable id=link59 onMouseOver="ShowTip(event, 'tt2', 'link59')" onMouseOut="HideTip('tt2')">exclude</a> then it is ignored.</li><li>If the variable name is in <a href="#mxObjectCodec.idrefs" class=LVariable id=link60 onMouseOver="ShowTip(event, 'tt3', 'link60')" onMouseOut="HideTip('tt3')">idrefs</a> then <a href="mxCodec-php.html#mxCodec.getId" class=LFunction id=link61 onMouseOver="ShowTip(event, 'tt34', 'link61')" onMouseOut="HideTip('tt34')">mxCodec.getId</a> is used to replace the object with its ID.</li><li>The variable name is mapped using <a href="#mxObjectCodec.mapping" class=LVariable id=link62 onMouseOver="ShowTip(event, 'tt4', 'link62')" onMouseOut="HideTip('tt4')">mapping</a>.</li><li>If obj is an array and the variable name is numeric (ie. an index) then it is not encoded.</li><li>If the value is an object, then the codec is used to create a child node with the variable name encoded into the &ldquo;as&rdquo; attribute.</li><li>Else, if &lt;encodeDefaults&gt; is true or the value differs from the template value, then ...</li><li>... if obj is not an array, then the value is mapped to an attribute.</li><li>... else if obj is an array, the value is mapped to an add child with a value attribute or a text child node, if the value is a function.</li></ul><p>If no ID exists for a variable in <a href="#mxObjectCodec.idrefs" class=LVariable id=link63 onMouseOver="ShowTip(event, 'tt3', 'link63')" onMouseOut="HideTip('tt3')">idrefs</a> or if an object cannot be encoded, a warning is issued using <a href="../util/mxLog-php.html#mxLog.warn" class=LFunction id=link64 onMouseOver="ShowTip(event, 'tt36', 'link64')" onMouseOut="HideTip('tt36')">mxLog.warn</a>.</p><p>Returns the resulting XML node that represents the given object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>enc</td><td class=CDLDescription><a href="mxCodec-php.html#mxCodec" class=LClass id=link65 onMouseOver="ShowTip(event, 'tt37', 'link65')" onMouseOut="HideTip('tt37')">mxCodec</a> that controls the encoding process.</td></tr><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object to be encoded.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.encodeObject"></a>encodeObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeObject(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Encodes the value of each member in then given obj into the given node using <a href="#mxObjectCodec.encodeValue" class=LFunction id=link66 onMouseOver="ShowTip(event, 'tt15', 'link66')" onMouseOut="HideTip('tt15')">encodeValue</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>enc</td><td class=CDLDescription><a href="mxCodec-php.html#mxCodec" class=LClass id=link67 onMouseOver="ShowTip(event, 'tt37', 'link67')" onMouseOut="HideTip('tt37')">mxCodec</a> that controls the encoding process.</td></tr><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object to be encoded.</td></tr><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node that contains the encoded object.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.encodeValue"></a>encodeValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeValue(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Converts the given value according to the mappings and id-refs in this codec and uses <a href="#mxObjectCodec.writeAttribute" class=LFunction id=link68 onMouseOver="ShowTip(event, 'tt16', 'link68')" onMouseOut="HideTip('tt16')">writeAttribute</a> to write the attribute into the given node.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>enc</td><td class=CDLDescription><a href="mxCodec-php.html#mxCodec" class=LClass id=link69 onMouseOver="ShowTip(event, 'tt37', 'link69')" onMouseOut="HideTip('tt37')">mxCodec</a> that controls the encoding process.</td></tr><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object whose property is going to be encoded.</td></tr><tr><td class=CDLEntry>name</td><td class=CDLDescription>XML node that contains the encoded object.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>Value of the property to be encoded.</td></tr><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node that contains the encoded object.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.writeAttribute"></a>writeAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writeAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Writes the given value into node using <a href="#mxObjectCodec.writePrimitiveAttribute" class=LFunction id=link70 onMouseOver="ShowTip(event, 'tt17', 'link70')" onMouseOut="HideTip('tt17')">writePrimitiveAttribute</a> or <a href="#mxObjectCodec.writeComplexAttribute" class=LFunction id=link71 onMouseOver="ShowTip(event, 'tt18', 'link71')" onMouseOut="HideTip('tt18')">writeComplexAttribute</a> depending on the type of the value.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.writePrimitiveAttribute"></a>writePrimitiveAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writePrimitiveAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Writes the given value as an attribute of the given node.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.writeComplexAttribute"></a>writeComplexAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writeComplexAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Writes the given value as a child node of the given node.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.convertValueToXml"></a>convertValueToXml</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueToXml(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the given value without applying a conversion.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.convertValueFromXml"></a>convertValueFromXml</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueFromXml(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the given value.&nbsp; In PHP there is no need to convert the boolean strings &ldquo;0&rdquo; and &ldquo;1&rdquo; to their numeric / boolean values.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.beforeEncode"></a>beforeEncode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function beforeEncode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook for subclassers to pre-process the object before encoding.&nbsp; This returns the input object.&nbsp; The return value of this function is used in <a href="#mxObjectCodec.encode" class=LFunction id=link72 onMouseOver="ShowTip(event, 'tt13', 'link72')" onMouseOut="HideTip('tt13')">encode</a> to perform the default encoding into the given node.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>enc</td><td class=CDLDescription><a href="mxCodec-php.html#mxCodec" class=LClass id=link73 onMouseOver="ShowTip(event, 'tt37', 'link73')" onMouseOut="HideTip('tt37')">mxCodec</a> that controls the encoding process.</td></tr><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object to be encoded.</td></tr><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node to encode the object into.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.afterEncode"></a>afterEncode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function afterEncode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook for subclassers to post-process the node for the given object after encoding and return the post-processed node.&nbsp; This implementation returns the input node.&nbsp; The return value of this method is returned to the encoder from <a href="#mxObjectCodec.encode" class=LFunction id=link74 onMouseOver="ShowTip(event, 'tt13', 'link74')" onMouseOut="HideTip('tt13')">encode</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>enc</td><td class=CDLDescription><a href="mxCodec-php.html#mxCodec" class=LClass id=link75 onMouseOver="ShowTip(event, 'tt37', 'link75')" onMouseOut="HideTip('tt37')">mxCodec</a> that controls the encoding process.</td></tr><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object to be encoded.</td></tr><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node that represents the default encoding.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.decode"></a>decode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$into</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parses the given node into the object or returns a new object representing the given node.</p><p>Dec is a reference to the calling decoder.&nbsp; It is used to decode complex objects and resolve references.</p><p>If a node has an id attribute then the object cache is checked for the object.&nbsp; If the object is not yet in the cache then it is constructed using the constructor of <a href="#mxObjectCodec.template" class=LVariable id=link76 onMouseOver="ShowTip(event, 'tt1', 'link76')" onMouseOut="HideTip('tt1')">template</a> and cached in <a href="mxCodec-php.html#mxCodec.objects" class=LVariable id=link77 onMouseOver="ShowTip(event, 'tt38', 'link77')" onMouseOut="HideTip('tt38')">mxCodec.objects</a>.</p><p>This implementation decodes all attributes and childs of a node according to the following rules:</p><ul><li>If the variable name is in <a href="#mxObjectCodec.exclude" class=LVariable id=link78 onMouseOver="ShowTip(event, 'tt2', 'link78')" onMouseOut="HideTip('tt2')">exclude</a> or if the attribute name is &ldquo;id&rdquo; or &ldquo;as&rdquo; then it is ignored.</li><li>If the variable name is in <a href="#mxObjectCodec.idrefs" class=LVariable id=link79 onMouseOver="ShowTip(event, 'tt3', 'link79')" onMouseOut="HideTip('tt3')">idrefs</a> then <a href="mxCodec-php.html#mxCodec.getObject" class=LFunction id=link80 onMouseOver="ShowTip(event, 'tt35', 'link80')" onMouseOut="HideTip('tt35')">mxCodec.getObject</a> is used to replace the reference with an object.</li><li>The variable name is mapped using a reverse <a href="#mxObjectCodec.mapping" class=LVariable id=link81 onMouseOver="ShowTip(event, 'tt4', 'link81')" onMouseOut="HideTip('tt4')">mapping</a>.</li><li>If the value has a child node, then the codec is used to create a child object with the variable name taken from the &ldquo;as&rdquo; attribute.</li><li>If the object is an array and the variable name is empty then the value or child object is appended to the array.</li><li>If an add child has no value or the object is not an array then the child text content is evaluated using &lt;mxUtils.eval&gt;.</li></ul><p>For add nodes where the object is not an array and the variable name is defined, the default mechanism is used, allowing to override/add methods as follows:</p><blockquote><pre class="prettyprint">&lt;Object&gt;
    +  &lt;add as=&quot;hello&quot;&gt;&lt;![CDATA[
    +    function(arg1) {
    +      alert('Hello '+arg1);
    +    }
    +  ]]&gt;&lt;/add&gt;
    +&lt;/Object&gt;</pre></blockquote><p>If no object exists for an ID in <a href="#mxObjectCodec.idrefs" class=LVariable id=link82 onMouseOver="ShowTip(event, 'tt3', 'link82')" onMouseOut="HideTip('tt3')">idrefs</a> a warning is issued using <a href="../util/mxLog-php.html#mxLog.warn" class=LFunction id=link83 onMouseOver="ShowTip(event, 'tt36', 'link83')" onMouseOut="HideTip('tt36')">mxLog.warn</a>.</p><p>Returns the resulting object that represents the given XML node or the object given to the method as the into parameter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dec</td><td class=CDLDescription><a href="mxCodec-php.html#mxCodec" class=LClass id=link84 onMouseOver="ShowTip(event, 'tt37', 'link84')" onMouseOut="HideTip('tt37')">mxCodec</a> that controls the decoding process.</td></tr><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node to be decoded.</td></tr><tr><td class=CDLEntry>into</td><td class=CDLDescription>Optional objec to encode the node into.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.decodeNode"></a>decodeNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeNode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calls <a href="#mxObjectCodec.decodeAttributes" class=LFunction id=link85 onMouseOver="ShowTip(event, 'tt25', 'link85')" onMouseOut="HideTip('tt25')">decodeAttributes</a> and <a href="#mxObjectCodec.decodeChildren" class=LFunction id=link86 onMouseOver="ShowTip(event, 'tt26', 'link86')" onMouseOut="HideTip('tt26')">decodeChildren</a> for the given node.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.decodeAttributes"></a>decodeAttributes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeAttributes(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Decodes all attributes of the given node using <a href="#mxObjectCodec.decodeAttribute" class=LFunction id=link87 onMouseOver="ShowTip(event, 'tt27', 'link87')" onMouseOut="HideTip('tt27')">decodeAttribute</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.decodeAttribute"></a>decodeAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeAttribute(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Reads the given attribute into the specified object.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.decodeChildren"></a>decodeChildren</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeChildren(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Decodec all children of the given node using <a href="#mxObjectCodec.decodeChild" class=LFunction id=link88 onMouseOver="ShowTip(event, 'tt28', 'link88')" onMouseOut="HideTip('tt28')">decodeChild</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.decodeChild"></a>decodeChild</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeChild(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$child,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Reads the specified child into the given object.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.getFieldTemplate"></a>getFieldTemplate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFieldTemplate(</td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$fieldname,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the template instance for the given field.&nbsp; This returns the value of the field, null if the value is an array or an empty collection if the value is a collection.&nbsp; The value is then used to populate the field for a new instance.&nbsp; For strongly typed languages it may be required to override this to return the correct collection instance based on the encoded child.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.addObjectValue"></a>addObjectValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function addObjectValue(</td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$fieldname,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$template</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the decoded child node as a value of the given object.&nbsp; If the object is a map, then the value is added with the given fieldname as a key.&nbsp; If the fieldname is not empty, then setFieldValue is called or else, if the object is a collection, the value is added to the collection.&nbsp; For strongly typed languages it may be required to override this with the correct code to add an entry to an object.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.processInclude"></a>processInclude</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function processInclude(</td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$into</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given node is an include directive and executes the include by decoding the XML document.&nbsp; Returns false if the given node is not an include directive.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dec</td><td class=CDLDescription><a href="mxCodec-php.html#mxCodec" class=LClass id=link89 onMouseOver="ShowTip(event, 'tt37', 'link89')" onMouseOut="HideTip('tt37')">mxCodec</a> that controls the encoding/decoding process.</td></tr><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node to be checked.</td></tr><tr><td class=CDLEntry>into</td><td class=CDLDescription>Optional object to pass-thru to the codec.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.beforeDecode"></a>beforeDecode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function beforeDecode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by <a href="#mxObjectCodec.decode" class=LFunction id=link90 onMouseOver="ShowTip(event, 'tt23', 'link90')" onMouseOut="HideTip('tt23')">decode</a>.&nbsp; The object is created based on the template in the calling method and is never null.&nbsp; This implementation returns the input node.&nbsp; The return value of this function is used in <a href="#mxObjectCodec.decode" class=LFunction id=link91 onMouseOver="ShowTip(event, 'tt23', 'link91')" onMouseOut="HideTip('tt23')">decode</a> to perform the default decoding into the given object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dec</td><td class=CDLDescription><a href="mxCodec-php.html#mxCodec" class=LClass id=link92 onMouseOver="ShowTip(event, 'tt37', 'link92')" onMouseOut="HideTip('tt37')">mxCodec</a> that controls the decoding process.</td></tr><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node to be decoded.</td></tr><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object to encode the node into.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxObjectCodec.afterDecode"></a>afterDecode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function afterDecode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook for subclassers to post-process the object after decoding.&nbsp; This implementation returns the given object without any changes.&nbsp; The return value of this method is returned to the decoder from <a href="#mxObjectCodec.decode" class=LFunction id=link93 onMouseOver="ShowTip(event, 'tt23', 'link93')" onMouseOut="HideTip('tt23')">decode</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>enc</td><td class=CDLDescription><a href="mxCodec-php.html#mxCodec" class=LClass id=link94 onMouseOver="ShowTip(event, 'tt37', 'link94')" onMouseOut="HideTip('tt37')">mxCodec</a> that controls the encoding process.</td></tr><tr><td class=CDLEntry>node</td><td class=CDLDescription>XML node to be decoded.</td></tr><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object that represents the default decoding.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxObjectCodec</div></div><div class=MEntry><div class=MFile><a href="mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $template</td></tr></table></blockquote>Holds the template object associated with this codec.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $exclude</td></tr></table></blockquote>Array containing the variable names that should be ignored by the codec.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $idrefs</td></tr></table></blockquote>Array containing the variable names that should be turned into or converted from references. </div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $mapping</td></tr></table></blockquote>Maps from from fieldnames to XML attribute names.</div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $reverse</td></tr></table></blockquote>Maps from from XML attribute names to fieldnames.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxObjectCodec(</td><td class=PParameter nowrap>$template,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$exclude</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array(),</td></tr><tr><td></td><td class=PParameter nowrap>$idrefs</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array(),</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array()</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new codec for the specified template object. </div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getName()</td></tr></table></blockquote>Creates a new instance of the template for this codec.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function cloneTemplate()</td></tr></table></blockquote>Creates a new instance of the template for this codec.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFieldName(</td><td class=PParameter nowrap>$attributename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the fieldname for the given attributename. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getAttributeName(</td><td class=PParameter nowrap>$fieldname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the attributename for the given fieldname. </div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isExcluded(</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$write</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given attribute is to be ignored by the codec. </div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isReference(</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$write</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given fieldname is to be treated as a textual reference (ID). </div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the specified object and returns a node representing then given object. </div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeObject(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the value of each member in then given obj into the given node using encodeValue.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeValue(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writeAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes the given value into node using writePrimitiveAttribute or writeComplexAttribute depending on the type of the value.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writePrimitiveAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes the given value as an attribute of the given node.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writeComplexAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes the given value as a child node of the given node.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueToXml(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the given value without applying a conversion.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueFromXml(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the given value. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function beforeEncode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to pre-process the object before encoding. </div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function afterEncode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to post-process the node for the given object after encoding and return the post-processed node. </div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$into</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parses the given node into the object or returns a new object representing the given node.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeNode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calls decodeAttributes and decodeChildren for the given node.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeAttributes(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodes all attributes of the given node using decodeAttribute.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeChildren(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodec all children of the given node using decodeChild.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeAttribute(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the given attribute into the specified object.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeChild(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$child,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the specified child into the given object.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFieldTemplate(</td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$fieldname,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the template instance for the given field. </div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function addObjectValue(</td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$fieldname,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$template</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the decoded child node as a value of the given object. </div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function processInclude(</td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$into</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given node is an include directive and executes the include by decoding the XML document. </div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function beforeDecode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode. </div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function afterDecode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to post-process the object after decoding. </div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getId(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the ID of the specified object. </div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getObject(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the decoded object for the element with the specified ID in document. </div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function warn(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a warn trace.</div></div><div class=CToolTip id="tt37"><div class=CClass>XML codec for PHP object graphs. </div></div><div class=CToolTip id="tt38"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $objects</td></tr></table></blockquote>Maps from IDs to objects.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/io/mxStylesheetCodec-php.html b/docs/php-api/files/io/mxStylesheetCodec-php.html
    new file mode 100644
    index 000000000..086228f5f
    --- /dev/null
    +++ b/docs/php-api/files/io/mxStylesheetCodec-php.html
    @@ -0,0 +1,43 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxStylesheetCodec</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxStylesheetCodec"></a>mxStylesheetCodec</h1><div class=CBody><p>Codec for <a href="../view/mxStylesheet-php.html#mxStylesheet" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">mxStylesheets</a>.&nbsp; This class is created and registered dynamically at load time and used implicitely via <a href="mxCodec-php.html#mxCodec" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2')">mxCodec</a> and the <a href="mxCodecRegistry-php.html#mxCodecRegistry" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">mxCodecRegistry</a>.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxStylesheetCodec" >mxStylesheetCodec</a></td><td class=SDescription>Codec for <a href="../view/mxStylesheet-php.html#mxStylesheet" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mxStylesheets</a>. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxStylesheetCodec.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStylesheetCodec.mxObjectCodec" >mxObjectCodec</a></td><td class=SDescription>Constructs a new codec for the specified template object. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxStylesheetCodec.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheetCodec.mxObjectCodec"></a>mxObjectCodec</h3><div class=CBody><p>Constructs a new codec for the specified template object.&nbsp; The variables in the optional exclude array are ignored by the codec.&nbsp; Variables in the optional idrefs array are turned into references in the XML.&nbsp; The optional mapping may be used to map from variable names to XML attributes.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>template</td><td class=CDLDescription>Prototypical instance of the object to be encoded/decoded.</td></tr><tr><td class=CDLEntry>exclude</td><td class=CDLDescription>Optional array of fieldnames to be ignored.</td></tr><tr><td class=CDLEntry>idrefs</td><td class=CDLDescription>Optional array of fieldnames to be converted to/from references.</td></tr><tr><td class=CDLEntry>mapping</td><td class=CDLDescription>Optional mapping from field- to attributenames.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxStylesheetCodec</div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CClass>Defines the appearance of the cells in a graph. </div></div><div class=CToolTip id="tt2"><div class=CClass>XML codec for PHP object graphs. </div></div><div class=CToolTip id="tt3"><div class=CClass>A class to register codecs for objects.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/model/mxCell-php.html b/docs/php-api/files/model/mxCell-php.html
    new file mode 100644
    index 000000000..da1df63de
    --- /dev/null
    +++ b/docs/php-api/files/model/mxCell-php.html
    @@ -0,0 +1,149 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxCell</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxCell"></a>mxCell</h1><div class=CBody><p>Cells are the elements of the graph model.&nbsp; They represent the state of the groups, vertices and edges in a graph.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxCell" >mxCell</a></td><td class=SDescription>Cells are the elements of the graph model. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCell.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCell.id" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">id</a></td><td class=SDescription>Holds the Id. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCell.value" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">value</a></td><td class=SDescription>Holds the user object. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCell.geometry" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">geometry</a></td><td class=SDescription>Holds the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mxGeometry</a>. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCell.style" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">style</a></td><td class=SDescription>Holds the style as a string of the form [(stylename|key=value);]. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCell.vertex" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">vertex</a></td><td class=SDescription>Specifies whether the cell is a vertex. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCell.edge" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">edge</a></td><td class=SDescription>Specifies whether the cell is an edge. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCell.connectable" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">connectable</a></td><td class=SDescription>Specifies whether the cell is connectable. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCell.visible" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">visible</a></td><td class=SDescription>Specifies whether the cell is visible. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCell.collapsed" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">collapsed</a></td><td class=SDescription>Specifies whether the cell is collapsed. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCell.parent" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">parent</a></td><td class=SDescription>Reference to the parent cell.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCell.source" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">source</a></td><td class=SDescription>Reference to the source terminal.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCell.target" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">target</a></td><td class=SDescription>Reference to the target terminal.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCell.children" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">children</a></td><td class=SDescription>Holds the child cells.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCell.edges" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">edges</a></td><td class=SDescription>Holds the edges.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCell.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.mxCell" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">mxCell</a></td><td class=SDescription>Constructs a new cell to be used in a graph model. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getId" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">getId</a></td><td class=SDescription>Returns the Id of the cell as a string.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setId" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">setId</a></td><td class=SDescription>Sets the Id of the cell to the given string.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getValue" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">getValue</a></td><td class=SDescription>Returns the user object of the cell. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setValue" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">setValue</a></td><td class=SDescription>Sets the user object of the cell. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getGeometry" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">getGeometry</a></td><td class=SDescription>Returns the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt4', 'link22')" onMouseOut="HideTip('tt4')">mxGeometry</a> that describes the <a href="#mxCell.geometry" class=LVariable id=link23 onMouseOver="ShowTip(event, 'tt3', 'link23')" onMouseOut="HideTip('tt3')">geometry</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setGeometry" id=link24 onMouseOver="ShowTip(event, 'tt22', 'link24')" onMouseOut="HideTip('tt22')">setGeometry</a></td><td class=SDescription>Sets the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt4', 'link25')" onMouseOut="HideTip('tt4')">mxGeometry</a> to be used as the <a href="#mxCell.geometry" class=LVariable id=link26 onMouseOver="ShowTip(event, 'tt3', 'link26')" onMouseOut="HideTip('tt3')">geometry</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getStyle" id=link27 onMouseOver="ShowTip(event, 'tt23', 'link27')" onMouseOut="HideTip('tt23')">getStyle</a></td><td class=SDescription>Returns a string that describes the <a href="#mxCell.style" class=LVariable id=link28 onMouseOver="ShowTip(event, 'tt5', 'link28')" onMouseOut="HideTip('tt5')">style</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setStyle" id=link29 onMouseOver="ShowTip(event, 'tt24', 'link29')" onMouseOut="HideTip('tt24')">setStyle</a></td><td class=SDescription>Sets the string to be used as the <a href="#mxCell.style" class=LVariable id=link30 onMouseOver="ShowTip(event, 'tt5', 'link30')" onMouseOut="HideTip('tt5')">style</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.isVertex" id=link31 onMouseOver="ShowTip(event, 'tt25', 'link31')" onMouseOut="HideTip('tt25')">isVertex</a></td><td class=SDescription>Returns true if the cell is a vertex.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setVertex" id=link32 onMouseOver="ShowTip(event, 'tt26', 'link32')" onMouseOut="HideTip('tt26')">setVertex</a></td><td class=SDescription>Specifies if the cell is a vertex. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.isEdge" id=link33 onMouseOver="ShowTip(event, 'tt27', 'link33')" onMouseOut="HideTip('tt27')">isEdge</a></td><td class=SDescription>Returns true if the cell is an edge.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setEdge" id=link34 onMouseOver="ShowTip(event, 'tt28', 'link34')" onMouseOut="HideTip('tt28')">setEdge</a></td><td class=SDescription>Specifies if the cell is an edge. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.isConnectable" id=link35 onMouseOver="ShowTip(event, 'tt29', 'link35')" onMouseOut="HideTip('tt29')">isConnectable</a></td><td class=SDescription>Returns true if the cell is connectable.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setConnectable" id=link36 onMouseOver="ShowTip(event, 'tt30', 'link36')" onMouseOut="HideTip('tt30')">setConnectable</a></td><td class=SDescription>Sets the connectable state.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.isVisible" id=link37 onMouseOver="ShowTip(event, 'tt31', 'link37')" onMouseOut="HideTip('tt31')">isVisible</a></td><td class=SDescription>Returns true if the cell is visibile.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setVisible" id=link38 onMouseOver="ShowTip(event, 'tt32', 'link38')" onMouseOut="HideTip('tt32')">setVisible</a></td><td class=SDescription>Specifies if the cell is visible.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.isCollapsed" id=link39 onMouseOver="ShowTip(event, 'tt33', 'link39')" onMouseOut="HideTip('tt33')">isCollapsed</a></td><td class=SDescription>Returns true if the cell is collapsed.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setCollapsed" id=link40 onMouseOver="ShowTip(event, 'tt34', 'link40')" onMouseOut="HideTip('tt34')">setCollapsed</a></td><td class=SDescription>Sets the collapsed state.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getParent" id=link41 onMouseOver="ShowTip(event, 'tt35', 'link41')" onMouseOut="HideTip('tt35')">getParent</a></td><td class=SDescription>Returns the cell&rsquo;s parent.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setParent" id=link42 onMouseOver="ShowTip(event, 'tt36', 'link42')" onMouseOut="HideTip('tt36')">setParent</a></td><td class=SDescription>Sets the parent cell.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getTerminal" id=link43 onMouseOver="ShowTip(event, 'tt37', 'link43')" onMouseOut="HideTip('tt37')">getTerminal</a></td><td class=SDescription>Returns the source or target terminal.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setTerminal" id=link44 onMouseOver="ShowTip(event, 'tt38', 'link44')" onMouseOut="HideTip('tt38')">setTerminal</a></td><td class=SDescription>Sets the source or target terminal and returns the new terminal.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getChildCount" id=link45 onMouseOver="ShowTip(event, 'tt39', 'link45')" onMouseOut="HideTip('tt39')">getChildCount</a></td><td class=SDescription>Returns the number of child cells.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.getIndex" id=link46 onMouseOver="ShowTip(event, 'tt40', 'link46')" onMouseOut="HideTip('tt40')">getIndex</a></td><td class=SDescription>Returns the index of the specified child in the child array.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getChildAt" id=link47 onMouseOver="ShowTip(event, 'tt41', 'link47')" onMouseOut="HideTip('tt41')">getChildAt</a></td><td class=SDescription>Returns the child at the specified index.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.insert" id=link48 onMouseOver="ShowTip(event, 'tt42', 'link48')" onMouseOut="HideTip('tt42')">insert</a></td><td class=SDescription>Inserts the specified child into the child array at the specified index and updates the parent reference of the child. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.remove" id=link49 onMouseOver="ShowTip(event, 'tt43', 'link49')" onMouseOut="HideTip('tt43')">remove</a></td><td class=SDescription>Removes the child at the specified index from the child array and returns the child that was removed. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.removeFromParent" id=link50 onMouseOver="ShowTip(event, 'tt44', 'link50')" onMouseOut="HideTip('tt44')">removeFromParent</a></td><td class=SDescription>Removes the cell from its parent.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getEdgeCount" id=link51 onMouseOver="ShowTip(event, 'tt45', 'link51')" onMouseOut="HideTip('tt45')">getEdgeCount</a></td><td class=SDescription>Returns the number of edges in the edge array.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.getEdgeIndex" id=link52 onMouseOver="ShowTip(event, 'tt46', 'link52')" onMouseOut="HideTip('tt46')">getEdgeIndex</a></td><td class=SDescription>Returns the index of the specified edge in <a href="#mxCell.edges" class=LVariable id=link53 onMouseOver="ShowTip(event, 'tt15', 'link53')" onMouseOut="HideTip('tt15')">edges</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getEdgeAt" id=link54 onMouseOver="ShowTip(event, 'tt47', 'link54')" onMouseOut="HideTip('tt47')">getEdgeAt</a></td><td class=SDescription>Returns the edge at the specified index in <a href="#mxCell.edges" class=LVariable id=link55 onMouseOver="ShowTip(event, 'tt15', 'link55')" onMouseOut="HideTip('tt15')">edges</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.insertEdge" id=link56 onMouseOver="ShowTip(event, 'tt48', 'link56')" onMouseOut="HideTip('tt48')">insertEdge</a></td><td class=SDescription>Inserts the specified edge into the edge array and returns the edge. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.removeEdge" id=link57 onMouseOver="ShowTip(event, 'tt49', 'link57')" onMouseOut="HideTip('tt49')">removeEdge</a></td><td class=SDescription>Removes the specified edge from the edge array and returns the edge. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.removeFromTerminal" id=link58 onMouseOver="ShowTip(event, 'tt50', 'link58')" onMouseOut="HideTip('tt50')">removeFromTerminal</a></td><td class=SDescription>Removes the edge from its source or target terminal.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.getAttribute" id=link59 onMouseOver="ShowTip(event, 'tt51', 'link59')" onMouseOut="HideTip('tt51')">getAttribute</a></td><td class=SDescription>Returns the specified attribute from the user object if it is an XML node.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.setAttribute" id=link60 onMouseOver="ShowTip(event, 'tt52', 'link60')" onMouseOut="HideTip('tt52')">setAttribute</a></td><td class=SDescription>Sets the specified attribute on the user object if it is an XML node.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCell.copy" id=link61 onMouseOver="ShowTip(event, 'tt53', 'link61')" onMouseOut="HideTip('tt53')">copy</a></td><td class=SDescription>Returns a clone of the cell. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCell.copyValue" id=link62 onMouseOver="ShowTip(event, 'tt54', 'link62')" onMouseOut="HideTip('tt54')">copyValue</a></td><td class=SDescription>Returns a clone of the cell&rsquo;s user object.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCell.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.id"></a>id</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $id</td></tr></table></blockquote><p>Holds the Id.&nbsp; Default is null.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.value"></a>value</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $value</td></tr></table></blockquote><p>Holds the user object.&nbsp; Default is null.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.geometry"></a>geometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $geometry</td></tr></table></blockquote><p>Holds the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link63 onMouseOver="ShowTip(event, 'tt4', 'link63')" onMouseOut="HideTip('tt4')">mxGeometry</a>.&nbsp; Default is null.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.style"></a>style</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $style</td></tr></table></blockquote><p>Holds the style as a string of the form [(stylename|key=value);].&nbsp; Default is null.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.vertex"></a>vertex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $vertex</td></tr></table></blockquote><p>Specifies whether the cell is a vertex.&nbsp; Default is false.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.edge"></a>edge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $edge</td></tr></table></blockquote><p>Specifies whether the cell is an edge.&nbsp; Default is false.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.connectable"></a>connectable</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $connectable</td></tr></table></blockquote><p>Specifies whether the cell is connectable.&nbsp; Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.visible"></a>visible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $visible</td></tr></table></blockquote><p>Specifies whether the cell is visible.&nbsp; Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.collapsed"></a>collapsed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $collapsed</td></tr></table></blockquote><p>Specifies whether the cell is collapsed.&nbsp; Default is false.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.parent"></a>parent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $parent</td></tr></table></blockquote><p>Reference to the parent cell.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.source"></a>source</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $source</td></tr></table></blockquote><p>Reference to the source terminal.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.target"></a>target</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $target</td></tr></table></blockquote><p>Reference to the target terminal.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.children"></a>children</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $children</td></tr></table></blockquote><p>Holds the child cells.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCell.edges"></a>edges</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $edges</td></tr></table></blockquote><p>Holds the edges.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCell.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.mxCell"></a>mxCell</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxCell(</td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new cell to be used in a graph model.&nbsp; This method invokes &lt;onInit&gt; upon completion.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>value</td><td class=CDLDescription>Optional object that represents the cell value.</td></tr><tr><td class=CDLEntry>geometry</td><td class=CDLDescription>Optional <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link64 onMouseOver="ShowTip(event, 'tt4', 'link64')" onMouseOut="HideTip('tt4')">mxGeometry</a> that specifies the geometry.</td></tr><tr><td class=CDLEntry>style</td><td class=CDLDescription>Optional formatted string that defines the style.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getId"></a>getId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getId()</td></tr></table></blockquote><p>Returns the Id of the cell as a string.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setId"></a>setId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setId(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the Id of the cell to the given string.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getValue"></a>getValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getValue()</td></tr></table></blockquote><p>Returns the user object of the cell.&nbsp; The user object is stored in <a href="#mxCell.value" class=LVariable id=link65 onMouseOver="ShowTip(event, 'tt2', 'link65')" onMouseOut="HideTip('tt2')">value</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setValue"></a>setValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setValue(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the user object of the cell.&nbsp; The user object is stored in <a href="#mxCell.value" class=LVariable id=link66 onMouseOver="ShowTip(event, 'tt2', 'link66')" onMouseOut="HideTip('tt2')">value</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getGeometry"></a>getGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGeometry()</td></tr></table></blockquote><p>Returns the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link67 onMouseOver="ShowTip(event, 'tt4', 'link67')" onMouseOut="HideTip('tt4')">mxGeometry</a> that describes the <a href="#mxCell.geometry" class=LVariable id=link68 onMouseOver="ShowTip(event, 'tt3', 'link68')" onMouseOut="HideTip('tt3')">geometry</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setGeometry"></a>setGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGeometry(</td><td class=PParameter nowrap>$geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link69 onMouseOver="ShowTip(event, 'tt4', 'link69')" onMouseOut="HideTip('tt4')">mxGeometry</a> to be used as the <a href="#mxCell.geometry" class=LVariable id=link70 onMouseOver="ShowTip(event, 'tt3', 'link70')" onMouseOut="HideTip('tt3')">geometry</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getStyle"></a>getStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStyle()</td></tr></table></blockquote><p>Returns a string that describes the <a href="#mxCell.style" class=LVariable id=link71 onMouseOver="ShowTip(event, 'tt5', 'link71')" onMouseOut="HideTip('tt5')">style</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setStyle"></a>setStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the string to be used as the <a href="#mxCell.style" class=LVariable id=link72 onMouseOver="ShowTip(event, 'tt5', 'link72')" onMouseOut="HideTip('tt5')">style</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.isVertex"></a>isVertex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isVertex()</td></tr></table></blockquote><p>Returns true if the cell is a vertex.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setVertex"></a>setVertex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVertex(</td><td class=PParameter nowrap>$vertex</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Specifies if the cell is a vertex.&nbsp; This should only be assigned at construction of the cell and not be changed during its lifecycle.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>vertex</td><td class=CDLDescription>Boolean that specifies if the cell is a vertex.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.isEdge"></a>isEdge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isEdge()</td></tr></table></blockquote><p>Returns true if the cell is an edge.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setEdge"></a>setEdge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setEdge(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Specifies if the cell is an edge.&nbsp; This should only be assigned at construction of the cell and not be changed during its lifecycle.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription>Boolean that specifies if the cell is an edge.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.isConnectable"></a>isConnectable</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isConnectable()</td></tr></table></blockquote><p>Returns true if the cell is connectable.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setConnectable"></a>setConnectable</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setConnectable(</td><td class=PParameter nowrap>$connectable</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the connectable state.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>connectable</td><td class=CDLDescription>Boolean that specifies the new connectable state.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.isVisible"></a>isVisible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isVisible()</td></tr></table></blockquote><p>Returns true if the cell is visibile.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setVisible"></a>setVisible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVisible(</td><td class=PParameter nowrap>$visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Specifies if the cell is visible.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>visible</td><td class=CDLDescription>Boolean that specifies the new visible state.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.isCollapsed"></a>isCollapsed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isCollapsed()</td></tr></table></blockquote><p>Returns true if the cell is collapsed.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setCollapsed"></a>setCollapsed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCollapsed(</td><td class=PParameter nowrap>$collapsed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the collapsed state.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>collapsed</td><td class=CDLDescription>Boolean that specifies the new collapsed state.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getParent"></a>getParent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getParent()</td></tr></table></blockquote><p>Returns the cell&rsquo;s parent.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setParent"></a>setParent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setParent(</td><td class=PParameter nowrap>$parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the parent cell.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription><a href="#mxCell.mxCell" class=LFunction id=link73 onMouseOver="ShowTip(event, 'tt16', 'link73')" onMouseOut="HideTip('tt16')">mxCell</a> that represents the new parent.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getTerminal"></a>getTerminal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminal(</td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the source or target terminal.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean that specifies if the source terminal should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setTerminal"></a>setTerminal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminal(</td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the source or target terminal and returns the new terminal.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>terminal</td><td class=CDLDescription><a href="#mxCell.mxCell" class=LFunction id=link74 onMouseOver="ShowTip(event, 'tt16', 'link74')" onMouseOut="HideTip('tt16')">mxCell</a> that represents the new source or target terminal.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean that specifies if the source or target terminal should be set.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getChildCount"></a>getChildCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getChildCount()</td></tr></table></blockquote><p>Returns the number of child cells.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getIndex"></a>getIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getIndex(</td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the index of the specified child in the child array.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>child</td><td class=CDLDescription>Child whose index should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getChildAt"></a>getChildAt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildAt(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the child at the specified index.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>index</td><td class=CDLDescription>Integer that specifies the child to be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.insert"></a>insert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insert(</td><td class=PParameter nowrap>$child,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Inserts the specified child into the child array at the specified index and updates the parent reference of the child.&nbsp; If not childIndex is specified then the child is appended to the child array.&nbsp; Returns the inserted child.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>child</td><td class=CDLDescription><a href="#mxCell.mxCell" class=LFunction id=link75 onMouseOver="ShowTip(event, 'tt16', 'link75')" onMouseOut="HideTip('tt16')">mxCell</a> to be inserted or appended to the child array.</td></tr><tr><td class=CDLEntry>index</td><td class=CDLDescription>Optional integer that specifies the index at which the child should be inserted into the child array.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function remove(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes the child at the specified index from the child array and returns the child that was removed.&nbsp; Will remove the parent reference of the child.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>index</td><td class=CDLDescription>Integer that specifies the index of the child to be removed.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.removeFromParent"></a>removeFromParent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function removeFromParent()</td></tr></table></blockquote><p>Removes the cell from its parent.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getEdgeCount"></a>getEdgeCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getEdgeCount()</td></tr></table></blockquote><p>Returns the number of edges in the edge array.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getEdgeIndex"></a>getEdgeIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeIndex(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the index of the specified edge in <a href="#mxCell.edges" class=LVariable id=link76 onMouseOver="ShowTip(event, 'tt15', 'link76')" onMouseOut="HideTip('tt15')">edges</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="#mxCell.mxCell" class=LFunction id=link77 onMouseOver="ShowTip(event, 'tt16', 'link77')" onMouseOut="HideTip('tt16')">mxCell</a> whose index in <a href="#mxCell.edges" class=LVariable id=link78 onMouseOver="ShowTip(event, 'tt15', 'link78')" onMouseOut="HideTip('tt15')">edges</a> should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getEdgeAt"></a>getEdgeAt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeAt(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the edge at the specified index in <a href="#mxCell.edges" class=LVariable id=link79 onMouseOver="ShowTip(event, 'tt15', 'link79')" onMouseOut="HideTip('tt15')">edges</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>index</td><td class=CDLDescription>Integer that specifies the index of the edge to be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.insertEdge"></a>insertEdge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertEdge(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$outgoing</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Inserts the specified edge into the edge array and returns the edge.&nbsp; Will update the respective terminal reference of the edge.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="#mxCell.mxCell" class=LFunction id=link80 onMouseOver="ShowTip(event, 'tt16', 'link80')" onMouseOut="HideTip('tt16')">mxCell</a> to be inserted into the edge array.</td></tr><tr><td class=CDLEntry>outgoing</td><td class=CDLDescription>Boolean that specifies if the edge is outgoing.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.removeEdge"></a>removeEdge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeEdge(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$outgoing</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes the specified edge from the edge array and returns the edge.&nbsp; Will remove the respective terminal reference from the edge.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="#mxCell.mxCell" class=LFunction id=link81 onMouseOver="ShowTip(event, 'tt16', 'link81')" onMouseOut="HideTip('tt16')">mxCell</a> to be removed from the edge array.</td></tr><tr><td class=CDLEntry>outgoing</td><td class=CDLDescription>Boolean that specifies if the edge is outgoing.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.removeFromTerminal"></a>removeFromTerminal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeFromTerminal(</td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes the edge from its source or target terminal.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean that specifies if the edge should be removed from its source or target terminal.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.getAttribute"></a>getAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getAttribute(</td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$defaultValue</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the specified attribute from the user object if it is an XML node.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.setAttribute"></a>setAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setAttribute(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the specified attribute on the user object if it is an XML node.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.copy"></a>copy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote><p>Returns a clone of the cell.&nbsp; Uses &lt;cloneValue&gt; to clone the user object.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCell.copyValue"></a>copyValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copyValue()</td></tr></table></blockquote><p>Returns a clone of the cell&rsquo;s user object.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile id=MSelected>mxCell</div></div><div class=MEntry><div class=MFile><a href="mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([2, 3, 1], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $id</td></tr></table></blockquote>Holds the Id. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $value</td></tr></table></blockquote>Holds the user object. </div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $geometry</td></tr></table></blockquote>Holds the mxGeometry. </div></div><div class=CToolTip id="tt4"><div class=CClass>Represents the geometry of a cell. </div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $style</td></tr></table></blockquote>Holds the style as a string of the form [(stylename|key=value);]. </div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $vertex</td></tr></table></blockquote>Specifies whether the cell is a vertex. </div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $edge</td></tr></table></blockquote>Specifies whether the cell is an edge. </div></div><div class=CToolTip id="tt8"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $connectable</td></tr></table></blockquote>Specifies whether the cell is connectable. </div></div><div class=CToolTip id="tt9"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $visible</td></tr></table></blockquote>Specifies whether the cell is visible. </div></div><div class=CToolTip id="tt10"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $collapsed</td></tr></table></blockquote>Specifies whether the cell is collapsed. </div></div><div class=CToolTip id="tt11"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $parent</td></tr></table></blockquote>Reference to the parent cell.</div></div><div class=CToolTip id="tt12"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $source</td></tr></table></blockquote>Reference to the source terminal.</div></div><div class=CToolTip id="tt13"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $target</td></tr></table></blockquote>Reference to the target terminal.</div></div><div class=CToolTip id="tt14"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $children</td></tr></table></blockquote>Holds the child cells.</div></div><div class=CToolTip id="tt15"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $edges</td></tr></table></blockquote>Holds the edges.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxCell(</td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new cell to be used in a graph model. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getId()</td></tr></table></blockquote>Returns the Id of the cell as a string.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setId(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the Id of the cell to the given string.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getValue()</td></tr></table></blockquote>Returns the user object of the cell. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setValue(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the user object of the cell. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGeometry()</td></tr></table></blockquote>Returns the mxGeometry that describes the geometry.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGeometry(</td><td class=PParameter nowrap>$geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the mxGeometry to be used as the geometry.</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStyle()</td></tr></table></blockquote>Returns a string that describes the style.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the string to be used as the style.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isVertex()</td></tr></table></blockquote>Returns true if the cell is a vertex.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVertex(</td><td class=PParameter nowrap>$vertex</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies if the cell is a vertex. </div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isEdge()</td></tr></table></blockquote>Returns true if the cell is an edge.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setEdge(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies if the cell is an edge. </div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isConnectable()</td></tr></table></blockquote>Returns true if the cell is connectable.</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setConnectable(</td><td class=PParameter nowrap>$connectable</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the connectable state.</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isVisible()</td></tr></table></blockquote>Returns true if the cell is visibile.</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVisible(</td><td class=PParameter nowrap>$visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies if the cell is visible.</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isCollapsed()</td></tr></table></blockquote>Returns true if the cell is collapsed.</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCollapsed(</td><td class=PParameter nowrap>$collapsed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the collapsed state.</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getParent()</td></tr></table></blockquote>Returns the cell&rsquo;s parent.</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setParent(</td><td class=PParameter nowrap>$parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the parent cell.</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminal(</td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the source or target terminal.</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminal(</td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the source or target terminal and returns the new terminal.</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getChildCount()</td></tr></table></blockquote>Returns the number of child cells.</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getIndex(</td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of the specified child in the child array.</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildAt(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the child at the specified index.</div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insert(</td><td class=PParameter nowrap>$child,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inserts the specified child into the child array at the specified index and updates the parent reference of the child. </div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function remove(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the child at the specified index from the child array and returns the child that was removed. </div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function removeFromParent()</td></tr></table></blockquote>Removes the cell from its parent.</div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getEdgeCount()</td></tr></table></blockquote>Returns the number of edges in the edge array.</div></div><div class=CToolTip id="tt46"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeIndex(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of the specified edge in edges.</div></div><div class=CToolTip id="tt47"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeAt(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edge at the specified index in edges.</div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertEdge(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$outgoing</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inserts the specified edge into the edge array and returns the edge. </div></div><div class=CToolTip id="tt49"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeEdge(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$outgoing</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified edge from the edge array and returns the edge. </div></div><div class=CToolTip id="tt50"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeFromTerminal(</td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the edge from its source or target terminal.</div></div><div class=CToolTip id="tt51"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getAttribute(</td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$defaultValue</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the specified attribute from the user object if it is an XML node.</div></div><div class=CToolTip id="tt52"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setAttribute(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the specified attribute on the user object if it is an XML node.</div></div><div class=CToolTip id="tt53"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a clone of the cell. </div></div><div class=CToolTip id="tt54"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copyValue()</td></tr></table></blockquote>Returns a clone of the cell&rsquo;s user object.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/model/mxCellPath-php.html b/docs/php-api/files/model/mxCellPath-php.html
    new file mode 100644
    index 000000000..3f9043966
    --- /dev/null
    +++ b/docs/php-api/files/model/mxCellPath-php.html
    @@ -0,0 +1,51 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxCellPath</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxCellPath"></a>mxCellPath</h1><div class=CBody><p>Implements a mechanism for temporary cell Ids.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxCellPath" >mxCellPath</a></td><td class=SDescription>Implements a mechanism for temporary cell Ids.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCellPath.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCellPath.codecs" >codecs</a></td><td class=SDescription>Maps from constructor names to codecs.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCellPath.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCellPath.create" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">create</a></td><td class=SDescription>Creates the cell path for the given cell. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCellPath.getParentPath" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">getParentPath</a></td><td class=SDescription>Returns the cell for the specified cell path using the given root as the root of the path.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCellPath.resolve" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">resolve</a></td><td class=SDescription>Returns the cell for the specified cell path using the given root as the root of the path.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCellPath.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellPath.codecs"></a>codecs</h3><div class=CBody><p>Maps from constructor names to codecs.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCellPath.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCellPath.create"></a>create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function create(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the cell path for the given cell.&nbsp; The cell path is a concatenation of the indices of all ancestors on the (finite) path to the root, eg.&nbsp; &ldquo;0.0.0.1&rdquo;.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription>Cell whose path should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCellPath.getParentPath"></a>getParentPath</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getParentPath(</td><td class=PParameter nowrap>$path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the cell for the specified cell path using the given root as the root of the path.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>path</td><td class=CDLDescription>Path whose parent path should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCellPath.resolve"></a>resolve</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function resolve(</td><td class=PParameter nowrap>$root,</td></tr><tr><td></td><td class=PParameter nowrap>$path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the cell for the specified cell path using the given root as the root of the path.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>root</td><td class=CDLDescription>Root cell of the path to be resolved.</td></tr><tr><td class=CDLEntry>path</td><td class=CDLDescription>String that defines the path.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxCellPath</div></div><div class=MEntry><div class=MFile><a href="mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([2, 3, 1], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function create(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the cell path for the given cell. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getParentPath(</td><td class=PParameter nowrap>$path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell for the specified cell path using the given root as the root of the path.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function resolve(</td><td class=PParameter nowrap>$root,</td></tr><tr><td></td><td class=PParameter nowrap>$path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell for the specified cell path using the given root as the root of the path.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/model/mxGeometry-php.html b/docs/php-api/files/model/mxGeometry-php.html
    new file mode 100644
    index 000000000..22892f686
    --- /dev/null
    +++ b/docs/php-api/files/model/mxGeometry-php.html
    @@ -0,0 +1,67 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxGeometry</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxGeometry"></a>mxGeometry</h1><div class=CBody><p>Represents the geometry of a cell.&nbsp; For vertices, the geometry consists of the x- and y-location, as well as the width and height.&nbsp; For edges, the edge either defines the source- and target-terminal, or the geometry defines the respective terminal points.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxGeometry" >mxGeometry</a></td><td class=SDescription>Represents the geometry of a cell. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGeometry.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGeometry.TRANSLATE_CONTROL_POINTS" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">TRANSLATE_CONTROL_POINTS</a></td><td class=SDescription>Global switch to translate the points in translate. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGeometry.alternateBounds" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">alternateBounds</a></td><td class=SDescription>Stores alternate values for x, y, width and height in a rectangle. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGeometry.sourcePoint" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">sourcePoint</a></td><td class=SDescription>Defines the source point of the edge. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGeometry.targetPoint" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">targetPoint</a></td><td class=SDescription>Defines the target point of the edge. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGeometry.points" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">points</a></td><td class=SDescription>Array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">mxPoints</a> which specifies the control points along the edge. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGeometry.offset" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">offset</a></td><td class=SDescription>Holds the offset of the label for edges. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGeometry.relative" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">relative</a></td><td class=SDescription>Specifies if the coordinates in the geometry are to be interpreted as relative coordinates. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGeometry.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGeometry.mxGeometry" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">mxGeometry</a></td><td class=SDescription>Constructs a new object to describe the size and location of a vertex or the control points of an edge.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGeometry.getTerminalPoint" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">getTerminalPoint</a></td><td class=SDescription>Returns the <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt6', 'link11')" onMouseOut="HideTip('tt6')">mxPoint</a> representing the source or target point of this edge. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGeometry.setTerminalPoint" id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">setTerminalPoint</a></td><td class=SDescription>Sets the <a href="#mxGeometry.sourcePoint" class=LVariable id=link13 onMouseOver="ShowTip(event, 'tt3', 'link13')" onMouseOut="HideTip('tt3')">sourcePoint</a> or <a href="#mxGeometry.targetPoint" class=LVariable id=link14 onMouseOver="ShowTip(event, 'tt4', 'link14')" onMouseOut="HideTip('tt4')">targetPoint</a> to the given <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt6', 'link15')" onMouseOut="HideTip('tt6')">mxPoint</a> and returns the new point.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGeometry.translate" id=link16 onMouseOver="ShowTip(event, 'tt12', 'link16')" onMouseOut="HideTip('tt12')">translate</a></td><td class=SDescription>Translates the geometry by the specified amount. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGeometry.copy" id=link17 onMouseOver="ShowTip(event, 'tt13', 'link17')" onMouseOut="HideTip('tt13')">copy</a></td><td class=SDescription>Returns a copy of this <a href="#mxGeometry.mxGeometry" class=LFunction id=link18 onMouseOver="ShowTip(event, 'tt9', 'link18')" onMouseOut="HideTip('tt9')">mxGeometry</a>.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.TRANSLATE_CONTROL_POINTS"></a>TRANSLATE_CONTROL_POINTS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TRANSLATE_CONTROL_POINTS</td></tr></table></blockquote><p>Global switch to translate the points in translate.&nbsp; Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.alternateBounds"></a>alternateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $alternateBounds</td></tr></table></blockquote><p>Stores alternate values for x, y, width and height in a rectangle.&nbsp; Default is null.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.sourcePoint"></a>sourcePoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $sourcePoint</td></tr></table></blockquote><p>Defines the source point of the edge.&nbsp; This is used if the corresponding edge does not have a source vertex.&nbsp; Otherwise it is ignored.&nbsp; Default is null.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.targetPoint"></a>targetPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $targetPoint</td></tr></table></blockquote><p>Defines the target point of the edge.&nbsp; This is used if the corresponding edge does not have a target vertex.&nbsp; Otherwise it is ignored.&nbsp; Default is null.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.points"></a>points</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $points</td></tr></table></blockquote><p>Array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt6', 'link19')" onMouseOut="HideTip('tt6')">mxPoints</a> which specifies the control points along the edge.&nbsp; These points are the intermediate points on the edge, for the endpoints use <a href="#mxGeometry.targetPoint" class=LVariable id=link20 onMouseOver="ShowTip(event, 'tt4', 'link20')" onMouseOut="HideTip('tt4')">targetPoint</a> and <a href="#mxGeometry.sourcePoint" class=LVariable id=link21 onMouseOver="ShowTip(event, 'tt3', 'link21')" onMouseOut="HideTip('tt3')">sourcePoint</a> or set the terminals of the edge to a non-null value.&nbsp; Default is null.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.offset"></a>offset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $offset</td></tr></table></blockquote><p>Holds the offset of the label for edges.&nbsp; This is the absolute vector between the center of the edge and the top, left point of the label.&nbsp; Default is null.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.relative"></a>relative</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $relative</td></tr></table></blockquote><p>Specifies if the coordinates in the geometry are to be interpreted as relative coordinates.&nbsp; Default is false.&nbsp; This is used to mark a geometry with an x- and y-coordinate that is used to describe an edge label position.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.mxGeometry"></a>mxGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGeometry(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new object to describe the size and location of a vertex or the control points of an edge.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.getTerminalPoint"></a>getTerminalPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminalPoint(</td><td class=PParameter nowrap>$isSource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt6', 'link22')" onMouseOut="HideTip('tt6')">mxPoint</a> representing the source or target point of this edge.&nbsp; This is only used if the edge has no source or target vertex.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>isSource</td><td class=CDLDescription>Boolean that specifies if the source or target point should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.setTerminalPoint"></a>setTerminalPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminalPoint(</td><td class=PParameter nowrap>$point,</td></tr><tr><td></td><td class=PParameter nowrap>$isSource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the <a href="#mxGeometry.sourcePoint" class=LVariable id=link23 onMouseOver="ShowTip(event, 'tt3', 'link23')" onMouseOut="HideTip('tt3')">sourcePoint</a> or <a href="#mxGeometry.targetPoint" class=LVariable id=link24 onMouseOver="ShowTip(event, 'tt4', 'link24')" onMouseOut="HideTip('tt4')">targetPoint</a> to the given <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt6', 'link25')" onMouseOut="HideTip('tt6')">mxPoint</a> and returns the new point.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>point</td><td class=CDLDescription>Point to be used as the new source or target point.</td></tr><tr><td class=CDLEntry>isSource</td><td class=CDLDescription>Boolean that specifies if the source or target point should be set.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.translate"></a>translate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function translate(</td><td class=PParameter nowrap>$dx,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Translates the geometry by the specified amount.&nbsp; That is, &lt;x&gt; and &lt;y&gt; of the geometry, the <a href="#mxGeometry.sourcePoint" class=LVariable id=link26 onMouseOver="ShowTip(event, 'tt3', 'link26')" onMouseOut="HideTip('tt3')">sourcePoint</a>, <a href="#mxGeometry.targetPoint" class=LVariable id=link27 onMouseOver="ShowTip(event, 'tt4', 'link27')" onMouseOut="HideTip('tt4')">targetPoint</a> and all elements of <a href="#mxGeometry.points" class=LVariable id=link28 onMouseOver="ShowTip(event, 'tt5', 'link28')" onMouseOut="HideTip('tt5')">points</a> are translated by the given amount.&nbsp; &lt;x&gt; and &lt;y&gt; are only translated if <a href="#mxGeometry.relative" class=LVariable id=link29 onMouseOver="ShowTip(event, 'tt8', 'link29')" onMouseOut="HideTip('tt8')">relative</a> is false.&nbsp; If <a href="#mxGeometry.TRANSLATE_CONTROL_POINTS" class=LVariable id=link30 onMouseOver="ShowTip(event, 'tt1', 'link30')" onMouseOut="HideTip('tt1')">TRANSLATE_CONTROL_POINTS</a> is false, then <a href="#mxGeometry.points" class=LVariable id=link31 onMouseOver="ShowTip(event, 'tt5', 'link31')" onMouseOut="HideTip('tt5')">points</a> are not modified by this function.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dx</td><td class=CDLDescription>Integer that specifies the x-coordinate of the translation.</td></tr><tr><td class=CDLEntry>dy</td><td class=CDLDescription>Integer that specifies the y-coordinate of the translation.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGeometry.copy"></a>copy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote><p>Returns a copy of this <a href="#mxGeometry.mxGeometry" class=LFunction id=link32 onMouseOver="ShowTip(event, 'tt9', 'link32')" onMouseOut="HideTip('tt9')">mxGeometry</a>.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxGeometry</div></div><div class=MEntry><div class=MFile><a href="mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([2, 3, 1], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TRANSLATE_CONTROL_POINTS</td></tr></table></blockquote>Global switch to translate the points in translate. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $alternateBounds</td></tr></table></blockquote>Stores alternate values for x, y, width and height in a rectangle. </div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $sourcePoint</td></tr></table></blockquote>Defines the source point of the edge. </div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $targetPoint</td></tr></table></blockquote>Defines the target point of the edge. </div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $points</td></tr></table></blockquote>Array of mxPoints which specifies the control points along the edge. </div></div><div class=CToolTip id="tt6"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $offset</td></tr></table></blockquote>Holds the offset of the label for edges. </div></div><div class=CToolTip id="tt8"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $relative</td></tr></table></blockquote>Specifies if the coordinates in the geometry are to be interpreted as relative coordinates. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGeometry(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new object to describe the size and location of a vertex or the control points of an edge.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminalPoint(</td><td class=PParameter nowrap>$isSource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxPoint representing the source or target point of this edge. </div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminalPoint(</td><td class=PParameter nowrap>$point,</td></tr><tr><td></td><td class=PParameter nowrap>$isSource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the sourcePoint or targetPoint to the given mxPoint and returns the new point.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function translate(</td><td class=PParameter nowrap>$dx,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Translates the geometry by the specified amount. </div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this mxGeometry.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/model/mxGraphModel-php.html b/docs/php-api/files/model/mxGraphModel-php.html
    new file mode 100644
    index 000000000..ce444568e
    --- /dev/null
    +++ b/docs/php-api/files/model/mxGraphModel-php.html
    @@ -0,0 +1,155 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxGraphModel</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxGraphModel"></a>mxGraphModel</h1><div class=CBody><p>Cells are the elements of the graph model.&nbsp; They represent the state of the groups, vertices and edges in a graph.</p><p>Fires a graphModelChanged event after each group of changes.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxGraphModel" >mxGraphModel</a></td><td class=SDescription>Cells are the elements of the graph model. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGraphModel.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.root" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">root</a></td><td class=SDescription>Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraphModel.cells" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">cells</a></td><td class=SDescription>Maps from Ids to cells.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.maintainEdgeParent" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">maintainEdgeParent</a></td><td class=SDescription>Specifies if edges should automatically be moved into the nearest common ancestor of their terminals. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraphModel.createIds" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">createIds</a></td><td class=SDescription>Specifies if the model should automatically create Ids for new cells. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.nextId" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">nextId</a></td><td class=SDescription>Specifies the next Id to be created. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraphModel.updateLevel" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">updateLevel</a></td><td class=SDescription>Counter for the depth of nested transactions. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGraphModel.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.mxGraphModel" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">mxGraphModel</a></td><td class=SDescription>Constructs a new graph model using the specified root cell.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.clear" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">clear</a></td><td class=SDescription>Sets a new root using <a href="#mxGraphModel.createRoot" class=LFunction id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">createRoot</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.createRoot" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">createRoot</a></td><td class=SDescription>Creates a new root cell with a default layer (child 0).</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getCells" id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">getCells</a></td><td class=SDescription>Returns the internal lookup table that is used to map from Ids to cells.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.setRoot" >setRoot</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getRoot" id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">getRoot</a></td><td class=SDescription>Returns the root of the model.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.setRoot" id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">setRoot</a></td><td class=SDescription>Sets the <a href="#mxGraphModel.root" class=LVariable id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMouseOut="HideTip('tt1')">root</a> of the model using &lt;mxRootChange&gt; and adds the change to the current transaction. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.cloneCell" id=link15 onMouseOver="ShowTip(event, 'tt13', 'link15')" onMouseOut="HideTip('tt13')">cloneCell</a></td><td class=SDescription>Returns a deep clone of the given <a href="mxCell-php.html#mxCell" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt14', 'link16')" onMouseOut="HideTip('tt14')">mxCell</a> (including the children) which is created using <a href="#mxGraphModel.cloneCells" class=LFunction id=link17 onMouseOver="ShowTip(event, 'tt15', 'link17')" onMouseOut="HideTip('tt15')">cloneCells</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.cloneCells" id=link18 onMouseOver="ShowTip(event, 'tt15', 'link18')" onMouseOut="HideTip('tt15')">cloneCells</a></td><td class=SDescription>Returns an array of clones for the given array of <a href="mxCell-php.html#mxCell" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt14', 'link19')" onMouseOut="HideTip('tt14')">mxCells</a>. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.cloneCellImpl" id=link20 onMouseOver="ShowTip(event, 'tt16', 'link20')" onMouseOut="HideTip('tt16')">cloneCellImpl</a></td><td class=SDescription>Inner helper method for cloning cells recursively.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.cellCloned" id=link21 onMouseOver="ShowTip(event, 'tt17', 'link21')" onMouseOut="HideTip('tt17')">cellCloned</a></td><td class=SDescription>Hook for cloning the cell. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.restoreClone" id=link22 onMouseOver="ShowTip(event, 'tt18', 'link22')" onMouseOut="HideTip('tt18')">restoreClone</a></td><td class=SDescription>Inner helper method for restoring the connections in a network of cloned cells.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.isAncestor" id=link23 onMouseOver="ShowTip(event, 'tt19', 'link23')" onMouseOut="HideTip('tt19')">isAncestor</a></td><td class=SDescription>Returns true if the given parent is an ancestor of the given child.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.contains" id=link24 onMouseOver="ShowTip(event, 'tt20', 'link24')" onMouseOut="HideTip('tt20')">contains</a></td><td class=SDescription>Returns true if the model contains the given <a href="mxCell-php.html#mxCell" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt14', 'link25')" onMouseOut="HideTip('tt14')">mxCell</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.getParent" id=link26 onMouseOver="ShowTip(event, 'tt21', 'link26')" onMouseOut="HideTip('tt21')">getParent</a></td><td class=SDescription>Returns the parent of the given cell.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.add" id=link27 onMouseOver="ShowTip(event, 'tt22', 'link27')" onMouseOut="HideTip('tt22')">add</a></td><td class=SDescription>Adds the specified child to the parent at the given index using &lt;mxChildChange&gt; and adds the change to the current transaction. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.cellAdded" id=link28 onMouseOver="ShowTip(event, 'tt23', 'link28')" onMouseOut="HideTip('tt23')">cellAdded</a></td><td class=SDescription>Inner callback to update <a href="#mxGraphModel.cells" class=LVariable id=link29 onMouseOver="ShowTip(event, 'tt2', 'link29')" onMouseOut="HideTip('tt2')">cells</a> when a cell has been added. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.createId" id=link30 onMouseOver="ShowTip(event, 'tt24', 'link30')" onMouseOut="HideTip('tt24')">createId</a></td><td class=SDescription>Hook method to create an Id for the specified cell. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.updateEdgeParents" id=link31 onMouseOver="ShowTip(event, 'tt25', 'link31')" onMouseOut="HideTip('tt25')">updateEdgeParents</a></td><td class=SDescription>Updates the parent for all edges that are connected to cell or one of its descendants using <a href="#mxGraphModel.updateEdgeParent" class=LFunction id=link32 onMouseOver="ShowTip(event, 'tt26', 'link32')" onMouseOut="HideTip('tt26')">updateEdgeParent</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.updateEdgeParent" id=link33 onMouseOver="ShowTip(event, 'tt26', 'link33')" onMouseOut="HideTip('tt26')">updateEdgeParent</a></td><td class=SDescription>Inner callback to update the parent of the specified <a href="mxCell-php.html#mxCell" class=LClass id=link34 onMouseOver="ShowTip(event, 'tt14', 'link34')" onMouseOut="HideTip('tt14')">mxCell</a> to the nearest-common-ancestor of its two terminals.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.getOrigin" id=link35 onMouseOver="ShowTip(event, 'tt27', 'link35')" onMouseOut="HideTip('tt27')">getOrigin</a></td><td class=SDescription>Returns the absolute, cummulated origin for the children inside the given parent as an <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link36 onMouseOver="ShowTip(event, 'tt28', 'link36')" onMouseOut="HideTip('tt28')">mxPoint</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getNearestCommonAncestor" id=link37 onMouseOver="ShowTip(event, 'tt29', 'link37')" onMouseOut="HideTip('tt29')">getNearestCommonAncestor</a></td><td class=SDescription>Returns the nearest common ancestor for the specified cells.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.remove" id=link38 onMouseOver="ShowTip(event, 'tt30', 'link38')" onMouseOut="HideTip('tt30')">remove</a></td><td class=SDescription>Removes the specified cell from the model using &lt;mxChildChange&gt; and adds the change to the current transaction. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.cellRemoved" id=link39 onMouseOver="ShowTip(event, 'tt31', 'link39')" onMouseOut="HideTip('tt31')">cellRemoved</a></td><td class=SDescription>Inner callback to update <a href="#mxGraphModel.cells" class=LVariable id=link40 onMouseOver="ShowTip(event, 'tt2', 'link40')" onMouseOut="HideTip('tt2')">cells</a> when a cell has been removed.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.getChildCount" id=link41 onMouseOver="ShowTip(event, 'tt32', 'link41')" onMouseOut="HideTip('tt32')">getChildCount</a></td><td class=SDescription>Returns the number of children in the given cell.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getChildAt" id=link42 onMouseOver="ShowTip(event, 'tt33', 'link42')" onMouseOut="HideTip('tt33')">getChildAt</a></td><td class=SDescription>Returns the child of the given <a href="mxCell-php.html#mxCell" class=LClass id=link43 onMouseOver="ShowTip(event, 'tt14', 'link43')" onMouseOut="HideTip('tt14')">mxCell</a> at the given index.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.getTerminal" id=link44 onMouseOver="ShowTip(event, 'tt34', 'link44')" onMouseOut="HideTip('tt34')">getTerminal</a></td><td class=SDescription>Returns the source or target <a href="mxCell-php.html#mxCell" class=LClass id=link45 onMouseOver="ShowTip(event, 'tt14', 'link45')" onMouseOut="HideTip('tt14')">mxCell</a> of the given edge depending on the value of the boolean parameter.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.setTerminal" id=link46 onMouseOver="ShowTip(event, 'tt35', 'link46')" onMouseOut="HideTip('tt35')">setTerminal</a></td><td class=SDescription>Sets the source or target terminal of the given <a href="mxCell-php.html#mxCell" class=LClass id=link47 onMouseOver="ShowTip(event, 'tt14', 'link47')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxTerminalChange&gt; and adds the change to the current transaction. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.setTerminals" id=link48 onMouseOver="ShowTip(event, 'tt36', 'link48')" onMouseOut="HideTip('tt36')">setTerminals</a></td><td class=SDescription>Sets the source and target <a href="mxCell-php.html#mxCell" class=LClass id=link49 onMouseOver="ShowTip(event, 'tt14', 'link49')" onMouseOut="HideTip('tt14')">mxCell</a> of the given <a href="mxCell-php.html#mxCell" class=LClass id=link50 onMouseOver="ShowTip(event, 'tt14', 'link50')" onMouseOut="HideTip('tt14')">mxCell</a> in a single transaction using <a href="#mxGraphModel.setTerminal" class=LFunction id=link51 onMouseOver="ShowTip(event, 'tt35', 'link51')" onMouseOut="HideTip('tt35')">setTerminal</a> for each end of the edge.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getEdgeCount" id=link52 onMouseOver="ShowTip(event, 'tt37', 'link52')" onMouseOut="HideTip('tt37')">getEdgeCount</a></td><td class=SDescription>Returns the number of distinct edges connected to the given cell.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.getEdgeAt" id=link53 onMouseOver="ShowTip(event, 'tt38', 'link53')" onMouseOut="HideTip('tt38')">getEdgeAt</a></td><td class=SDescription>Returns the edge of cell at the given index.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getEdges" id=link54 onMouseOver="ShowTip(event, 'tt39', 'link54')" onMouseOut="HideTip('tt39')">getEdges</a></td><td class=SDescription>Returns all distinct edges connected to this cell as an array of <a href="mxCell-php.html#mxCell" class=LClass id=link55 onMouseOver="ShowTip(event, 'tt14', 'link55')" onMouseOut="HideTip('tt14')">mxCells</a>. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.isVertex" id=link56 onMouseOver="ShowTip(event, 'tt40', 'link56')" onMouseOut="HideTip('tt40')">isVertex</a></td><td class=SDescription>Returns true if the given cell is a vertex.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.isEdge" id=link57 onMouseOver="ShowTip(event, 'tt41', 'link57')" onMouseOut="HideTip('tt41')">isEdge</a></td><td class=SDescription>Returns true if the given cell is an edge.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.isConnectable" id=link58 onMouseOver="ShowTip(event, 'tt42', 'link58')" onMouseOut="HideTip('tt42')">isConnectable</a></td><td class=SDescription>Returns true if the given <a href="mxCell-php.html#mxCell" class=LClass id=link59 onMouseOver="ShowTip(event, 'tt14', 'link59')" onMouseOut="HideTip('tt14')">mxCell</a> is connectable. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getValue" id=link60 onMouseOver="ShowTip(event, 'tt43', 'link60')" onMouseOut="HideTip('tt43')">getValue</a></td><td class=SDescription>Returns the user object of the given <a href="mxCell-php.html#mxCell" class=LClass id=link61 onMouseOver="ShowTip(event, 'tt14', 'link61')" onMouseOut="HideTip('tt14')">mxCell</a> using <a href="mxCell-php.html#mxCell.getValue" class=LFunction id=link62 onMouseOver="ShowTip(event, 'tt44', 'link62')" onMouseOut="HideTip('tt44')">mxCell.getValue</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.setValue" id=link63 onMouseOver="ShowTip(event, 'tt45', 'link63')" onMouseOut="HideTip('tt45')">setValue</a></td><td class=SDescription>Sets the user object of then given <a href="mxCell-php.html#mxCell" class=LClass id=link64 onMouseOver="ShowTip(event, 'tt14', 'link64')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxValueChange&gt; and adds the change to the current transaction.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getGeometry" id=link65 onMouseOver="ShowTip(event, 'tt46', 'link65')" onMouseOut="HideTip('tt46')">getGeometry</a></td><td class=SDescription>Returns the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link66 onMouseOver="ShowTip(event, 'tt47', 'link66')" onMouseOut="HideTip('tt47')">mxGeometry</a> of the given <a href="mxCell-php.html#mxCell" class=LClass id=link67 onMouseOver="ShowTip(event, 'tt14', 'link67')" onMouseOut="HideTip('tt14')">mxCell</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.setGeometry" id=link68 onMouseOver="ShowTip(event, 'tt48', 'link68')" onMouseOut="HideTip('tt48')">setGeometry</a></td><td class=SDescription>Sets the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link69 onMouseOver="ShowTip(event, 'tt47', 'link69')" onMouseOut="HideTip('tt47')">mxGeometry</a> of the given <a href="mxCell-php.html#mxCell" class=LClass id=link70 onMouseOver="ShowTip(event, 'tt14', 'link70')" onMouseOut="HideTip('tt14')">mxCell</a>. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getStyle" id=link71 onMouseOver="ShowTip(event, 'tt49', 'link71')" onMouseOut="HideTip('tt49')">getStyle</a></td><td class=SDescription>Returns the style of the given <a href="mxCell-php.html#mxCell" class=LClass id=link72 onMouseOver="ShowTip(event, 'tt14', 'link72')" onMouseOut="HideTip('tt14')">mxCell</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.setStyle" id=link73 onMouseOver="ShowTip(event, 'tt50', 'link73')" onMouseOut="HideTip('tt50')">setStyle</a></td><td class=SDescription>Sets the style of the given <a href="mxCell-php.html#mxCell" class=LClass id=link74 onMouseOver="ShowTip(event, 'tt14', 'link74')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxStyleChange&gt; and adds the change to the current transaction.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.isCollapsed" id=link75 onMouseOver="ShowTip(event, 'tt51', 'link75')" onMouseOut="HideTip('tt51')">isCollapsed</a></td><td class=SDescription>Returns true if the given <a href="mxCell-php.html#mxCell" class=LClass id=link76 onMouseOver="ShowTip(event, 'tt14', 'link76')" onMouseOut="HideTip('tt14')">mxCell</a> is collapsed.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.setCollapsed" id=link77 onMouseOver="ShowTip(event, 'tt52', 'link77')" onMouseOut="HideTip('tt52')">setCollapsed</a></td><td class=SDescription>Sets the collapsed state of the given <a href="mxCell-php.html#mxCell" class=LClass id=link78 onMouseOver="ShowTip(event, 'tt14', 'link78')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxCollapseChange&gt; and adds the change to the current transaction.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.isVisible" id=link79 onMouseOver="ShowTip(event, 'tt53', 'link79')" onMouseOut="HideTip('tt53')">isVisible</a></td><td class=SDescription>Returns true if the given <a href="mxCell-php.html#mxCell" class=LClass id=link80 onMouseOver="ShowTip(event, 'tt14', 'link80')" onMouseOut="HideTip('tt14')">mxCell</a> is visible.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.setVisible" id=link81 onMouseOver="ShowTip(event, 'tt54', 'link81')" onMouseOut="HideTip('tt54')">setVisible</a></td><td class=SDescription>Sets the visible state of the given <a href="mxCell-php.html#mxCell" class=LClass id=link82 onMouseOver="ShowTip(event, 'tt14', 'link82')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxVisibleChange&gt; and adds the change to the current transaction.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.mergeChildren" id=link83 onMouseOver="ShowTip(event, 'tt55', 'link83')" onMouseOut="HideTip('tt55')">mergeChildren</a></td><td class=SDescription>Merges the children of the given cell into the given target cell inside this model. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.mergeChildrenImpl" id=link84 onMouseOver="ShowTip(event, 'tt56', 'link84')" onMouseOut="HideTip('tt56')">mergeChildrenImpl</a></td><td class=SDescription>Clones the children of the source cell into the given target cell in this model and adds an entry to the mapping that maps from the source cell to the target cell with the same id or the clone of the source cell that was inserted into this model.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.beginUpdate" id=link85 onMouseOver="ShowTip(event, 'tt57', 'link85')" onMouseOut="HideTip('tt57')">beginUpdate</a></td><td class=SDescription>Increments the <a href="#mxGraphModel.updateLevel" class=LVariable id=link86 onMouseOver="ShowTip(event, 'tt6', 'link86')" onMouseOut="HideTip('tt6')">updateLevel</a> by one. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphModel.endUpdate" id=link87 onMouseOver="ShowTip(event, 'tt58', 'link87')" onMouseOut="HideTip('tt58')">endUpdate</a></td><td class=SDescription>Decrements the <a href="#mxGraphModel.updateLevel" class=LVariable id=link88 onMouseOver="ShowTip(event, 'tt6', 'link88')" onMouseOut="HideTip('tt6')">updateLevel</a> by one and fires a notification event if the <a href="#mxGraphModel.updateLevel" class=LVariable id=link89 onMouseOver="ShowTip(event, 'tt6', 'link89')" onMouseOut="HideTip('tt6')">updateLevel</a> reaches 0. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphModel.getDirectedEdgeCount" id=link90 onMouseOver="ShowTip(event, 'tt59', 'link90')" onMouseOut="HideTip('tt59')">getDirectedEdgeCount</a></td><td class=SDescription>Returns the number of incoming or outgoing edges, ignoring the given edge.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.root"></a>root</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $root</td></tr></table></blockquote><p>Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells.&nbsp; That is, the actual elements of the diagram are supposed to live in the third generation of cells and below.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.cells"></a>cells</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $cells</td></tr></table></blockquote><p>Maps from Ids to cells.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.maintainEdgeParent"></a>maintainEdgeParent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $maintainEdgeParent</td></tr></table></blockquote><p>Specifies if edges should automatically be moved into the nearest common ancestor of their terminals.&nbsp; Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.createIds"></a>createIds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $createIds</td></tr></table></blockquote><p>Specifies if the model should automatically create Ids for new cells.&nbsp; Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.nextId"></a>nextId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $nextId</td></tr></table></blockquote><p>Specifies the next Id to be created.&nbsp; Default is 0.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.updateLevel"></a>updateLevel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $updateLevel</td></tr></table></blockquote><p>Counter for the depth of nested transactions.&nbsp; Each call to <a href="#mxGraphModel.beginUpdate" class=LFunction id=link91 onMouseOver="ShowTip(event, 'tt57', 'link91')" onMouseOut="HideTip('tt57')">beginUpdate</a> will increment this number and each call to <a href="#mxGraphModel.endUpdate" class=LFunction id=link92 onMouseOver="ShowTip(event, 'tt58', 'link92')" onMouseOut="HideTip('tt58')">endUpdate</a> will decrement it.&nbsp; When the counter reaches 0, the transaction is closed and the respective events are fired.&nbsp; Initial value is 0.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.mxGraphModel"></a>mxGraphModel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphModel(</td><td class=PParameter nowrap>$root</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new graph model using the specified root cell.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.clear"></a>clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function clear()</td></tr></table></blockquote><p>Sets a new root using <a href="#mxGraphModel.createRoot" class=LFunction id=link93 onMouseOver="ShowTip(event, 'tt9', 'link93')" onMouseOut="HideTip('tt9')">createRoot</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.createRoot"></a>createRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createRoot()</td></tr></table></blockquote><p>Creates a new root cell with a default layer (child 0).</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getCells"></a>getCells</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCells()</td></tr></table></blockquote><p>Returns the internal lookup table that is used to map from Ids to cells.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.setRoot"></a>setRoot</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getRoot"></a>getRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getRoot()</td></tr></table></blockquote><p>Returns the root of the model.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.setRoot"></a>setRoot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setRoot(</td><td class=PParameter nowrap>$root</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the <a href="#mxGraphModel.root" class=LVariable id=link94 onMouseOver="ShowTip(event, 'tt1', 'link94')" onMouseOut="HideTip('tt1')">root</a> of the model using &lt;mxRootChange&gt; and adds the change to the current transaction.&nbsp; This resets all datastructures in the model and is the preferred way of clearing an existing model.&nbsp; Returns the new root.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>root</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link95 onMouseOver="ShowTip(event, 'tt14', 'link95')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the new root.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.cloneCell"></a>cloneCell</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCell(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a deep clone of the given <a href="mxCell-php.html#mxCell" class=LClass id=link96 onMouseOver="ShowTip(event, 'tt14', 'link96')" onMouseOut="HideTip('tt14')">mxCell</a> (including the children) which is created using <a href="#mxGraphModel.cloneCells" class=LFunction id=link97 onMouseOver="ShowTip(event, 'tt15', 'link97')" onMouseOut="HideTip('tt15')">cloneCells</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link98 onMouseOver="ShowTip(event, 'tt14', 'link98')" onMouseOut="HideTip('tt14')">mxCell</a> to be cloned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.cloneCells"></a>cloneCells</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCells(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an array of clones for the given array of <a href="mxCell-php.html#mxCell" class=LClass id=link99 onMouseOver="ShowTip(event, 'tt14', 'link99')" onMouseOut="HideTip('tt14')">mxCells</a>.&nbsp; Depending on the value of includeChildren, a deep clone is created for each cell.&nbsp; Connections are restored based if the corresponding cell is contained in the passed in array.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cells</td><td class=CDLDescription>Array of <a href="mxCell-php.html#mxCell" class=LClass id=link100 onMouseOver="ShowTip(event, 'tt14', 'link100')" onMouseOut="HideTip('tt14')">mxCell</a> to be cloned.</td></tr><tr><td class=CDLEntry>includeChildren</td><td class=CDLDescription>Boolean indicating if the cells should be cloned with all descendants.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.cloneCellImpl"></a>cloneCellImpl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCellImpl(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping,</td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Inner helper method for cloning cells recursively.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.cellCloned"></a>cellCloned</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellCloned(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook for cloning the cell.&nbsp; This returns cell-&gt;copy() or any possible exceptions.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.restoreClone"></a>restoreClone</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function restoreClone(</td><td class=PParameter nowrap>$clne,</td></tr><tr><td></td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Inner helper method for restoring the connections in a network of cloned cells.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.isAncestor"></a>isAncestor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isAncestor(</td><td class=PParameter nowrap>$parent,</td></tr><tr><td></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given parent is an ancestor of the given child.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link101 onMouseOver="ShowTip(event, 'tt14', 'link101')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the parent.</td></tr><tr><td class=CDLEntry>child</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link102 onMouseOver="ShowTip(event, 'tt14', 'link102')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the child.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function contains(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the model contains the given <a href="mxCell-php.html#mxCell" class=LClass id=link103 onMouseOver="ShowTip(event, 'tt14', 'link103')" onMouseOut="HideTip('tt14')">mxCell</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link104 onMouseOver="ShowTip(event, 'tt14', 'link104')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the cell.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getParent"></a>getParent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getParent(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the parent of the given cell.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link105 onMouseOver="ShowTip(event, 'tt14', 'link105')" onMouseOut="HideTip('tt14')">mxCell</a> whose parent should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function add(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$child,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds the specified child to the parent at the given index using &lt;mxChildChange&gt; and adds the change to the current transaction.&nbsp; If no index is specified then the child is appended to the parent&rsquo;s array of children.&nbsp; Returns the inserted child.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link106 onMouseOver="ShowTip(event, 'tt14', 'link106')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the parent to contain the child.</td></tr><tr><td class=CDLEntry>child</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link107 onMouseOver="ShowTip(event, 'tt14', 'link107')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the child to be inserted.</td></tr><tr><td class=CDLEntry>index</td><td class=CDLDescription>Optional integer that specifies the index of the child.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.cellAdded"></a>cellAdded</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellAdded(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Inner callback to update <a href="#mxGraphModel.cells" class=LVariable id=link108 onMouseOver="ShowTip(event, 'tt2', 'link108')" onMouseOut="HideTip('tt2')">cells</a> when a cell has been added.&nbsp; This implementation resolves collisions by creating new Ids.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link109 onMouseOver="ShowTip(event, 'tt14', 'link109')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the cell that has been added.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.createId"></a>createId</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createId(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook method to create an Id for the specified cell.&nbsp; This implementation increments <a href="#mxGraphModel.nextId" class=LVariable id=link110 onMouseOver="ShowTip(event, 'tt5', 'link110')" onMouseOut="HideTip('tt5')">nextId</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link111 onMouseOver="ShowTip(event, 'tt14', 'link111')" onMouseOut="HideTip('tt14')">mxCell</a> to create the Id for.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.updateEdgeParents"></a>updateEdgeParents</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeParents(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$root</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the parent for all edges that are connected to cell or one of its descendants using <a href="#mxGraphModel.updateEdgeParent" class=LFunction id=link112 onMouseOver="ShowTip(event, 'tt26', 'link112')" onMouseOut="HideTip('tt26')">updateEdgeParent</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.updateEdgeParent"></a>updateEdgeParent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeParent(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$root</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Inner callback to update the parent of the specified <a href="mxCell-php.html#mxCell" class=LClass id=link113 onMouseOver="ShowTip(event, 'tt14', 'link113')" onMouseOut="HideTip('tt14')">mxCell</a> to the nearest-common-ancestor of its two terminals.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link114 onMouseOver="ShowTip(event, 'tt14', 'link114')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the edge.</td></tr><tr><td class=CDLEntry>root</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link115 onMouseOver="ShowTip(event, 'tt14', 'link115')" onMouseOut="HideTip('tt14')">mxCell</a> that represents the current root of the model.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getOrigin"></a>getOrigin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getOrigin(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the absolute, cummulated origin for the children inside the given parent as an <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link116 onMouseOver="ShowTip(event, 'tt28', 'link116')" onMouseOut="HideTip('tt28')">mxPoint</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getNearestCommonAncestor"></a>getNearestCommonAncestor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getNearestCommonAncestor(</td><td class=PParameter nowrap>$cell1,</td></tr><tr><td></td><td class=PParameter nowrap>$cell2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the nearest common ancestor for the specified cells.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell1</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link117 onMouseOver="ShowTip(event, 'tt14', 'link117')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the first cell in the tree.</td></tr><tr><td class=CDLEntry>cell2</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link118 onMouseOver="ShowTip(event, 'tt14', 'link118')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the second cell in the tree.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.remove"></a>remove</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function remove(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes the specified cell from the model using &lt;mxChildChange&gt; and adds the change to the current transaction.&nbsp; This operation will remove the cell and all of its children from the model.&nbsp; Returns the removed cell.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link119 onMouseOver="ShowTip(event, 'tt14', 'link119')" onMouseOut="HideTip('tt14')">mxCell</a> that should be removed.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.cellRemoved"></a>cellRemoved</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellRemoved(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Inner callback to update <a href="#mxGraphModel.cells" class=LVariable id=link120 onMouseOver="ShowTip(event, 'tt2', 'link120')" onMouseOut="HideTip('tt2')">cells</a> when a cell has been removed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link121 onMouseOver="ShowTip(event, 'tt14', 'link121')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the cell that has been removed.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getChildCount"></a>getChildCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildCount(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the number of children in the given cell.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link122 onMouseOver="ShowTip(event, 'tt14', 'link122')" onMouseOut="HideTip('tt14')">mxCell</a> whose number of children should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getChildAt"></a>getChildAt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildAt(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the child of the given <a href="mxCell-php.html#mxCell" class=LClass id=link123 onMouseOver="ShowTip(event, 'tt14', 'link123')" onMouseOut="HideTip('tt14')">mxCell</a> at the given index.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link124 onMouseOver="ShowTip(event, 'tt14', 'link124')" onMouseOut="HideTip('tt14')">mxCell</a> that represents the parent.</td></tr><tr><td class=CDLEntry>index</td><td class=CDLDescription>Integer that specifies the index of the child to be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getTerminal"></a>getTerminal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$cource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the source or target <a href="mxCell-php.html#mxCell" class=LClass id=link125 onMouseOver="ShowTip(event, 'tt14', 'link125')" onMouseOut="HideTip('tt14')">mxCell</a> of the given edge depending on the value of the boolean parameter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link126 onMouseOver="ShowTip(event, 'tt14', 'link126')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the edge.</td></tr><tr><td class=CDLEntry>cource</td><td class=CDLDescription>Boolean indicating which end of the edge should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.setTerminal"></a>setTerminal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the source or target terminal of the given <a href="mxCell-php.html#mxCell" class=LClass id=link127 onMouseOver="ShowTip(event, 'tt14', 'link127')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxTerminalChange&gt; and adds the change to the current transaction.&nbsp; This implementation updates the parent of the edge using <a href="#mxGraphModel.updateEdgeParent" class=LFunction id=link128 onMouseOver="ShowTip(event, 'tt26', 'link128')" onMouseOut="HideTip('tt26')">updateEdgeParent</a> if required.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link129 onMouseOver="ShowTip(event, 'tt14', 'link129')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the edge.</td></tr><tr><td class=CDLEntry>terminal</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link130 onMouseOver="ShowTip(event, 'tt14', 'link130')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the new terminal.</td></tr><tr><td class=CDLEntry>isSource</td><td class=CDLDescription>Boolean indicating if the terminal is the new source or target terminal of the edge.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.setTerminals"></a>setTerminals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminals(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the source and target <a href="mxCell-php.html#mxCell" class=LClass id=link131 onMouseOver="ShowTip(event, 'tt14', 'link131')" onMouseOut="HideTip('tt14')">mxCell</a> of the given <a href="mxCell-php.html#mxCell" class=LClass id=link132 onMouseOver="ShowTip(event, 'tt14', 'link132')" onMouseOut="HideTip('tt14')">mxCell</a> in a single transaction using <a href="#mxGraphModel.setTerminal" class=LFunction id=link133 onMouseOver="ShowTip(event, 'tt35', 'link133')" onMouseOut="HideTip('tt35')">setTerminal</a> for each end of the edge.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link134 onMouseOver="ShowTip(event, 'tt14', 'link134')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the edge.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link135 onMouseOver="ShowTip(event, 'tt14', 'link135')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the new source terminal.</td></tr><tr><td class=CDLEntry>target</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link136 onMouseOver="ShowTip(event, 'tt14', 'link136')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the new target terminal.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getEdgeCount"></a>getEdgeCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeCount(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the number of distinct edges connected to the given cell.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link137 onMouseOver="ShowTip(event, 'tt14', 'link137')" onMouseOut="HideTip('tt14')">mxCell</a> that represents the vertex.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getEdgeAt"></a>getEdgeAt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeAt(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the edge of cell at the given index.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link138 onMouseOver="ShowTip(event, 'tt14', 'link138')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the vertex.</td></tr><tr><td class=CDLEntry>index</td><td class=CDLDescription>Integer that specifies the index of the edge to return.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getEdges"></a>getEdges</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdges(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns all distinct edges connected to this cell as an array of <a href="mxCell-php.html#mxCell" class=LClass id=link139 onMouseOver="ShowTip(event, 'tt14', 'link139')" onMouseOut="HideTip('tt14')">mxCells</a>.&nbsp; The return value should be only be read.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link140 onMouseOver="ShowTip(event, 'tt14', 'link140')" onMouseOut="HideTip('tt14')">mxCell</a> that specifies the cell.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.isVertex"></a>isVertex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isVertex(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given cell is a vertex.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link141 onMouseOver="ShowTip(event, 'tt14', 'link141')" onMouseOut="HideTip('tt14')">mxCell</a> that represents the possible vertex.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.isEdge"></a>isEdge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isEdge(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given cell is an edge.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link142 onMouseOver="ShowTip(event, 'tt14', 'link142')" onMouseOut="HideTip('tt14')">mxCell</a> that represents the possible edge.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.isConnectable"></a>isConnectable</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isConnectable(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given <a href="mxCell-php.html#mxCell" class=LClass id=link143 onMouseOver="ShowTip(event, 'tt14', 'link143')" onMouseOut="HideTip('tt14')">mxCell</a> is connectable.&nbsp; If &lt;edgesConnectable&gt; is false, then this function returns false for all edges else it returns the return value of <a href="mxCell-php.html#mxCell.isConnectable" class=LFunction id=link144 onMouseOver="ShowTip(event, 'tt60', 'link144')" onMouseOut="HideTip('tt60')">mxCell.isConnectable</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link145 onMouseOver="ShowTip(event, 'tt14', 'link145')" onMouseOut="HideTip('tt14')">mxCell</a> whose connectable state should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getValue"></a>getValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getValue(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the user object of the given <a href="mxCell-php.html#mxCell" class=LClass id=link146 onMouseOver="ShowTip(event, 'tt14', 'link146')" onMouseOut="HideTip('tt14')">mxCell</a> using <a href="mxCell-php.html#mxCell.getValue" class=LFunction id=link147 onMouseOver="ShowTip(event, 'tt44', 'link147')" onMouseOut="HideTip('tt44')">mxCell.getValue</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link148 onMouseOver="ShowTip(event, 'tt14', 'link148')" onMouseOut="HideTip('tt14')">mxCell</a> whose user object should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.setValue"></a>setValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setValue(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the user object of then given <a href="mxCell-php.html#mxCell" class=LClass id=link149 onMouseOver="ShowTip(event, 'tt14', 'link149')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxValueChange&gt; and adds the change to the current transaction.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link150 onMouseOver="ShowTip(event, 'tt14', 'link150')" onMouseOut="HideTip('tt14')">mxCell</a> whose user object should be changed.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>Object that defines the new user object.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getGeometry"></a>getGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getGeometry(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link151 onMouseOver="ShowTip(event, 'tt47', 'link151')" onMouseOut="HideTip('tt47')">mxGeometry</a> of the given <a href="mxCell-php.html#mxCell" class=LClass id=link152 onMouseOver="ShowTip(event, 'tt14', 'link152')" onMouseOut="HideTip('tt14')">mxCell</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link153 onMouseOver="ShowTip(event, 'tt14', 'link153')" onMouseOut="HideTip('tt14')">mxCell</a> whose geometry should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.setGeometry"></a>setGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGeometry(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the <a href="mxGeometry-php.html#mxGeometry" class=LClass id=link154 onMouseOver="ShowTip(event, 'tt47', 'link154')" onMouseOut="HideTip('tt47')">mxGeometry</a> of the given <a href="mxCell-php.html#mxCell" class=LClass id=link155 onMouseOver="ShowTip(event, 'tt14', 'link155')" onMouseOut="HideTip('tt14')">mxCell</a>.&nbsp; The actual update of the cell is carried out in &lt;geometryForCellChanged&gt;.&nbsp; The &lt;mxGeometryChange&gt; action is used to encapsulate the change.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link156 onMouseOver="ShowTip(event, 'tt14', 'link156')" onMouseOut="HideTip('tt14')">mxCell</a> whose geometry should be changed.</td></tr><tr><td class=CDLEntry>geometry</td><td class=CDLDescription><a href="mxGeometry-php.html#mxGeometry" class=LClass id=link157 onMouseOver="ShowTip(event, 'tt47', 'link157')" onMouseOut="HideTip('tt47')">mxGeometry</a> that defines the new geometry.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getStyle"></a>getStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getStyle(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the style of the given <a href="mxCell-php.html#mxCell" class=LClass id=link158 onMouseOver="ShowTip(event, 'tt14', 'link158')" onMouseOut="HideTip('tt14')">mxCell</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link159 onMouseOver="ShowTip(event, 'tt14', 'link159')" onMouseOut="HideTip('tt14')">mxCell</a> whose style should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.setStyle"></a>setStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setStyle(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the style of the given <a href="mxCell-php.html#mxCell" class=LClass id=link160 onMouseOver="ShowTip(event, 'tt14', 'link160')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxStyleChange&gt; and adds the change to the current transaction.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link161 onMouseOver="ShowTip(event, 'tt14', 'link161')" onMouseOut="HideTip('tt14')">mxCell</a> whose style should be changed.</td></tr><tr><td class=CDLEntry>style</td><td class=CDLDescription>String of the form stylename[;key=value] to specify the new cell style.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.isCollapsed"></a>isCollapsed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCollapsed(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given <a href="mxCell-php.html#mxCell" class=LClass id=link162 onMouseOver="ShowTip(event, 'tt14', 'link162')" onMouseOut="HideTip('tt14')">mxCell</a> is collapsed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link163 onMouseOver="ShowTip(event, 'tt14', 'link163')" onMouseOut="HideTip('tt14')">mxCell</a> whose collapsed state should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.setCollapsed"></a>setCollapsed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCollapsed(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$isCollapsed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the collapsed state of the given <a href="mxCell-php.html#mxCell" class=LClass id=link164 onMouseOver="ShowTip(event, 'tt14', 'link164')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxCollapseChange&gt; and adds the change to the current transaction.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link165 onMouseOver="ShowTip(event, 'tt14', 'link165')" onMouseOut="HideTip('tt14')">mxCell</a> whose collapsed state should be changed.</td></tr><tr><td class=CDLEntry>collapsed</td><td class=CDLDescription>Boolean that specifies the new collpased state.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.isVisible"></a>isVisible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isVisible(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given <a href="mxCell-php.html#mxCell" class=LClass id=link166 onMouseOver="ShowTip(event, 'tt14', 'link166')" onMouseOut="HideTip('tt14')">mxCell</a> is visible.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link167 onMouseOver="ShowTip(event, 'tt14', 'link167')" onMouseOut="HideTip('tt14')">mxCell</a> whose visible state should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.setVisible"></a>setVisible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVisible(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the visible state of the given <a href="mxCell-php.html#mxCell" class=LClass id=link168 onMouseOver="ShowTip(event, 'tt14', 'link168')" onMouseOut="HideTip('tt14')">mxCell</a> using &lt;mxVisibleChange&gt; and adds the change to the current transaction.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link169 onMouseOver="ShowTip(event, 'tt14', 'link169')" onMouseOut="HideTip('tt14')">mxCell</a> whose visible state should be changed.</td></tr><tr><td class=CDLEntry>visible</td><td class=CDLDescription>Boolean that specifies the new visible state.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.mergeChildren"></a>mergeChildren</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mergeChildren(</td><td class=PParameter nowrap>$from,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$to,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cloneAllEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Merges the children of the given cell into the given target cell inside this model.&nbsp; All cells are cloned unless there is a corresponding cell in the model with the same id, in which case the source cell is ignored and all edges are connected to the corresponding cell in this model.&nbsp; Edges are considered to have no identity and are always cloned unless the cloneAllEdges flag is set to false, in which case edges with the same id in the target model are reconnected to reflect the terminals of the source edges.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.mergeChildrenImpl"></a>mergeChildrenImpl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mergeChildrenImpl(</td><td class=PParameter nowrap>$from,</td></tr><tr><td></td><td class=PParameter nowrap>$to,</td></tr><tr><td></td><td class=PParameter nowrap>$cloneAllEdges,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Clones the children of the source cell into the given target cell in this model and adds an entry to the mapping that maps from the source cell to the target cell with the same id or the clone of the source cell that was inserted into this model.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.beginUpdate"></a>beginUpdate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function beginUpdate()</td></tr></table></blockquote><p>Increments the <a href="#mxGraphModel.updateLevel" class=LVariable id=link170 onMouseOver="ShowTip(event, 'tt6', 'link170')" onMouseOut="HideTip('tt6')">updateLevel</a> by one.&nbsp; The event notification is queued until <a href="#mxGraphModel.updateLevel" class=LVariable id=link171 onMouseOver="ShowTip(event, 'tt6', 'link171')" onMouseOut="HideTip('tt6')">updateLevel</a> reaches 0 by use of <a href="#mxGraphModel.endUpdate" class=LFunction id=link172 onMouseOver="ShowTip(event, 'tt58', 'link172')" onMouseOut="HideTip('tt58')">endUpdate</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.endUpdate"></a>endUpdate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function endUpdate()</td></tr></table></blockquote><p>Decrements the <a href="#mxGraphModel.updateLevel" class=LVariable id=link173 onMouseOver="ShowTip(event, 'tt6', 'link173')" onMouseOut="HideTip('tt6')">updateLevel</a> by one and fires a notification event if the <a href="#mxGraphModel.updateLevel" class=LVariable id=link174 onMouseOver="ShowTip(event, 'tt6', 'link174')" onMouseOut="HideTip('tt6')">updateLevel</a> reaches 0.&nbsp; This function indirectly fires a notification.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphModel.getDirectedEdgeCount"></a>getDirectedEdgeCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getDirectedEdgeCount(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$outgoing,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$ignoredEdge</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the number of incoming or outgoing edges, ignoring the given edge.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link175 onMouseOver="ShowTip(event, 'tt14', 'link175')" onMouseOut="HideTip('tt14')">mxCell</a> whose edge count should be returned.</td></tr><tr><td class=CDLEntry>outgoing</td><td class=CDLDescription>Boolean that specifies if the number of outgoing or incoming edges should be returned.</td></tr><tr><td class=CDLEntry>ignoredEdge</td><td class=CDLDescription><a href="mxCell-php.html#mxCell" class=LClass id=link176 onMouseOver="ShowTip(event, 'tt14', 'link176')" onMouseOut="HideTip('tt14')">mxCell</a> that represents an edge to be ignored.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxGraphModel</div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([2, 3, 1], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $root</td></tr></table></blockquote>Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $cells</td></tr></table></blockquote>Maps from Ids to cells.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $maintainEdgeParent</td></tr></table></blockquote>Specifies if edges should automatically be moved into the nearest common ancestor of their terminals. </div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $createIds</td></tr></table></blockquote>Specifies if the model should automatically create Ids for new cells. </div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $nextId</td></tr></table></blockquote>Specifies the next Id to be created. </div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $updateLevel</td></tr></table></blockquote>Counter for the depth of nested transactions. </div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphModel(</td><td class=PParameter nowrap>$root</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new graph model using the specified root cell.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function clear()</td></tr></table></blockquote>Sets a new root using createRoot.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createRoot()</td></tr></table></blockquote>Creates a new root cell with a default layer (child 0).</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCells()</td></tr></table></blockquote>Returns the internal lookup table that is used to map from Ids to cells.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getRoot()</td></tr></table></blockquote>Returns the root of the model.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setRoot(</td><td class=PParameter nowrap>$root</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the root of the model using mxRootChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCell(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a deep clone of the given mxCell (including the children) which is created using cloneCells.</div></div><div class=CToolTip id="tt14"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCells(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an array of clones for the given array of mxCells. </div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCellImpl(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping,</td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner helper method for cloning cells recursively.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellCloned(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for cloning the cell. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function restoreClone(</td><td class=PParameter nowrap>$clne,</td></tr><tr><td></td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner helper method for restoring the connections in a network of cloned cells.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isAncestor(</td><td class=PParameter nowrap>$parent,</td></tr><tr><td></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given parent is an ancestor of the given child.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function contains(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the model contains the given mxCell.</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getParent(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the parent of the given cell.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function add(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$child,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified child to the parent at the given index using mxChildChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellAdded(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner callback to update cells when a cell has been added. </div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createId(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook method to create an Id for the specified cell. </div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeParents(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$root</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the parent for all edges that are connected to cell or one of its descendants using updateEdgeParent.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeParent(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$root</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner callback to update the parent of the specified mxCell to the nearest-common-ancestor of its two terminals.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getOrigin(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the absolute, cummulated origin for the children inside the given parent as an mxPoint.</div></div><div class=CToolTip id="tt28"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getNearestCommonAncestor(</td><td class=PParameter nowrap>$cell1,</td></tr><tr><td></td><td class=PParameter nowrap>$cell2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest common ancestor for the specified cells.</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function remove(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified cell from the model using mxChildChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellRemoved(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner callback to update cells when a cell has been removed.</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildCount(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of children in the given cell.</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildAt(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the child of the given mxCell at the given index.</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$cource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the source or target mxCell of the given edge depending on the value of the boolean parameter.</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the source or target terminal of the given mxCell using mxTerminalChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminals(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the source and target mxCell of the given mxCell in a single transaction using setTerminal for each end of the edge.</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeCount(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of distinct edges connected to the given cell.</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeAt(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edge of cell at the given index.</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdges(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns all distinct edges connected to this cell as an array of mxCells. </div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isVertex(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is a vertex.</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isEdge(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is an edge.</div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isConnectable(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given mxCell is connectable. </div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getValue(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the user object of the given mxCell using mxCell.getValue.</div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getValue()</td></tr></table></blockquote>Returns the user object of the cell. </div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setValue(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the user object of then given mxCell using mxValueChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt46"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getGeometry(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxGeometry of the given mxCell.</div></div><div class=CToolTip id="tt47"><div class=CClass>Represents the geometry of a cell. </div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGeometry(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the mxGeometry of the given mxCell. </div></div><div class=CToolTip id="tt49"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getStyle(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the style of the given mxCell.</div></div><div class=CToolTip id="tt50"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setStyle(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the style of the given mxCell using mxStyleChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt51"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCollapsed(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given mxCell is collapsed.</div></div><div class=CToolTip id="tt52"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCollapsed(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$isCollapsed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the collapsed state of the given mxCell using mxCollapseChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt53"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isVisible(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given mxCell is visible.</div></div><div class=CToolTip id="tt54"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVisible(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the visible state of the given mxCell using mxVisibleChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt55"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mergeChildren(</td><td class=PParameter nowrap>$from,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$to,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cloneAllEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Merges the children of the given cell into the given target cell inside this model. </div></div><div class=CToolTip id="tt56"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mergeChildrenImpl(</td><td class=PParameter nowrap>$from,</td></tr><tr><td></td><td class=PParameter nowrap>$to,</td></tr><tr><td></td><td class=PParameter nowrap>$cloneAllEdges,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Clones the children of the source cell into the given target cell in this model and adds an entry to the mapping that maps from the source cell to the target cell with the same id or the clone of the source cell that was inserted into this model.</div></div><div class=CToolTip id="tt57"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function beginUpdate()</td></tr></table></blockquote>Increments the updateLevel by one. </div></div><div class=CToolTip id="tt58"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function endUpdate()</td></tr></table></blockquote>Decrements the updateLevel by one and fires a notification event if the updateLevel reaches 0. </div></div><div class=CToolTip id="tt59"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getDirectedEdgeCount(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$outgoing,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$ignoredEdge</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of incoming or outgoing edges, ignoring the given edge.</div></div><div class=CToolTip id="tt60"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isConnectable()</td></tr></table></blockquote>Returns true if the cell is connectable.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/reader/mxGraphViewHtmlReader-php.html b/docs/php-api/files/reader/mxGraphViewHtmlReader-php.html
    new file mode 100644
    index 000000000..ba6381b1b
    --- /dev/null
    +++ b/docs/php-api/files/reader/mxGraphViewHtmlReader-php.html
    @@ -0,0 +1,49 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxGraphViewHtmlReader</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxGraphViewHtmlReader"></a>mxGraphViewHtmlReader</h1><div class=CBody><p>A display XML to HTML converter.&nbsp; This allows to create an image of a graph without having to parse and create the graph model using the XML file created for the mxGraphView object in the thin client.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxGraphViewHtmlReader" >mxGraphViewHtmlReader</a></td><td class=SDescription>A display XML to HTML converter. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGraphViewHtmlReader.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewHtmlReader.mxGraphViewHtmlReader" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mxGraphViewHtmlReader</a></td><td class=SDescription>Constructs a new HTML graph view reader.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphViewHtmlReader.createCanvas" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">createCanvas</a></td><td class=SDescription>Returns the canvas to be used for rendering.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewHtmlReader.convert" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">convert</a></td><td class=SDescription>Creates the HTML markup for the given display XML string.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphViewHtmlReader.convertFile" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">convertFile</a></td><td class=SDescription>Creates the HTML markup for the given display XML file.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewHtmlReader.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewHtmlReader.mxGraphViewHtmlReader"></a>mxGraphViewHtmlReader</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxGraphViewHtmlReader()</td></tr></table></blockquote><p>Constructs a new HTML graph view reader.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewHtmlReader.createCanvas"></a>createCanvas</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createCanvas(</td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the canvas to be used for rendering.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewHtmlReader.convert"></a>convert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convert(</td><td class=PParameter nowrap>$string,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the HTML markup for the given display XML string.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewHtmlReader.convertFile"></a>convertFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convertFile(</td><td class=PParameter nowrap>$filename,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the HTML markup for the given display XML file.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile id=MSelected>mxGraphViewHtmlReader</div></div><div class=MEntry><div class=MFile><a href="mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxGraphViewHtmlReader()</td></tr></table></blockquote>Constructs a new HTML graph view reader.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createCanvas(</td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the canvas to be used for rendering.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convert(</td><td class=PParameter nowrap>$string,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the HTML markup for the given display XML string.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convertFile(</td><td class=PParameter nowrap>$filename,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the HTML markup for the given display XML file.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/reader/mxGraphViewImageReader-php.html b/docs/php-api/files/reader/mxGraphViewImageReader-php.html
    new file mode 100644
    index 000000000..8ad2b4660
    --- /dev/null
    +++ b/docs/php-api/files/reader/mxGraphViewImageReader-php.html
    @@ -0,0 +1,77 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxGraphViewImageReader</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxGraphViewImageReader"></a>mxGraphViewImageReader</h1><div class=CBody><p>A display XML to image converter.&nbsp; This allows to create an image of a graph without having to parse and create the graph model using the XML file created for the mxGraphView object in the thin client.</p><h4 class=CHeading>To create the XML for the mxGraphView on the client</h4><blockquote><pre class="prettyprint">var enc = new mxCodec(mxUtils.createXMLDocument());
    +var node = enc.encode(editor.graph.view);
    +var xml = mxUtils.getXML(node);</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxGraphViewImageReader" >mxGraphViewImageReader</a></td><td class=SDescription>A display XML to image converter. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGraphViewImageReader.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewImageReader.canvas" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">canvas</a></td><td class=SDescription>Holds the canvas.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraphViewImageReader.scale" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">scale</a></td><td class=SDescription>Holds the global scale of the graph. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewImageReader.parser" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">parser</a></td><td class=SDescription>Holds the SAX parser.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraphViewImageReader.background" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">background</a></td><td class=SDescription>Holds the background color.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewImageReader.border" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">border</a></td><td class=SDescription>Holds the border size. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGraphViewImageReader.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewImageReader.mxGraphViewImageReader" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">mxGraphViewImageReader</a></td><td class=SDescription>Constructs a new image graph view reader.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphViewImageReader.createCanvas" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">createCanvas</a></td><td class=SDescription>Returns the canvas to be used for rendering.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewImageReader.read" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">read</a></td><td class=SDescription>Reads the specified view XML string.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphViewImageReader.readFile" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">readFile</a></td><td class=SDescription>Reads the specified view XML file in blocks of 4096 bytes.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewImageReader.startElement" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">startElement</a></td><td class=SDescription>Invoked by the SAX parser when an element starts.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphViewImageReader.parseState" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">parseState</a></td><td class=SDescription>Parses the bounds, absolute points and label information from the style of the state into its respective fields and returns the label of the cell.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewImageReader.parsePoints" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">parsePoints</a></td><td class=SDescription>Parses a string that represents a list of points into an array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">mxPoints</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphViewImageReader.endElement" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">endElement</a></td><td class=SDescription>Invoked by the SAX parser when an element ends.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewImageReader.destroy" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">destroy</a></td><td class=SDescription>Destroy all allocated resources for this reader.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphViewImageReader.convert" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">convert</a></td><td class=SDescription>Creates the image for the given display XML string.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphViewImageReader.convertFile" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">convertFile</a></td><td class=SDescription>Creates the image for the given display XML file.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.canvas"></a>canvas</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $canvas</td></tr></table></blockquote><p>Holds the canvas.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.scale"></a>scale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $scale</td></tr></table></blockquote><p>Holds the global scale of the graph.&nbsp; This is set just before createCanvas is called.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.parser"></a>parser</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $parser</td></tr></table></blockquote><p>Holds the SAX parser.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.background"></a>background</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $background</td></tr></table></blockquote><p>Holds the background color.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.border"></a>border</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $border</td></tr></table></blockquote><p>Holds the border size.&nbsp; Default is 0.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.mxGraphViewImageReader"></a>mxGraphViewImageReader</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphViewImageReader(</td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new image graph view reader.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.createCanvas"></a>createCanvas</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createCanvas(</td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the canvas to be used for rendering.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.read"></a>read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function read(</td><td class=PParameter nowrap>$string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Reads the specified view XML string.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.readFile"></a>readFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function readFile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Reads the specified view XML file in blocks of 4096 bytes.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.startElement"></a>startElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function startElement(</td><td class=PParameter nowrap>$parser,</td></tr><tr><td></td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Invoked by the SAX parser when an element starts.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.parseState"></a>parseState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function parseState(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parses the bounds, absolute points and label information from the style of the state into its respective fields and returns the label of the cell.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.parsePoints"></a>parsePoints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function parsePoints(</td><td class=PParameter nowrap>$str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parses a string that represents a list of points into an array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt13', 'link18')" onMouseOut="HideTip('tt13')">mxPoints</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.endElement"></a>endElement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function endElement(</td><td class=PParameter nowrap>$parser,</td></tr><tr><td></td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Invoked by the SAX parser when an element ends.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.destroy"></a>destroy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote><p>Destroy all allocated resources for this reader.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.convert"></a>convert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convert(</td><td class=PParameter nowrap>$string,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the image for the given display XML string.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphViewImageReader.convertFile"></a>convertFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convertFile(</td><td class=PParameter nowrap>$filename,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the image for the given display XML file.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxGraphViewImageReader</div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([1, 2, 3], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $canvas</td></tr></table></blockquote>Holds the canvas.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $scale</td></tr></table></blockquote>Holds the global scale of the graph. </div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $parser</td></tr></table></blockquote>Holds the SAX parser.</div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $background</td></tr></table></blockquote>Holds the background color.</div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $border</td></tr></table></blockquote>Holds the border size. </div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphViewImageReader(</td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new image graph view reader.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createCanvas(</td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the canvas to be used for rendering.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function read(</td><td class=PParameter nowrap>$string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the specified view XML string.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function readFile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the specified view XML file in blocks of 4096 bytes.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function startElement(</td><td class=PParameter nowrap>$parser,</td></tr><tr><td></td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Invoked by the SAX parser when an element starts.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function parseState(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parses the bounds, absolute points and label information from the style of the state into its respective fields and returns the label of the cell.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function parsePoints(</td><td class=PParameter nowrap>$str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parses a string that represents a list of points into an array of mxPoints.</div></div><div class=CToolTip id="tt13"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function endElement(</td><td class=PParameter nowrap>$parser,</td></tr><tr><td></td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Invoked by the SAX parser when an element ends.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote>Destroy all allocated resources for this reader.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convert(</td><td class=PParameter nowrap>$string,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the image for the given display XML string.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convertFile(</td><td class=PParameter nowrap>$filename,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the image for the given display XML file.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/util/mxConstants-php.html b/docs/php-api/files/util/mxConstants-php.html
    new file mode 100644
    index 000000000..c88f3250d
    --- /dev/null
    +++ b/docs/php-api/files/util/mxConstants-php.html
    @@ -0,0 +1,321 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxConstants</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxConstants"></a>mxConstants</h1><div class=CBody><p>Defines global constants.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxConstants" >mxConstants</a></td><td class=SDescription>Defines global constants.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxConstants.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.RAD_PER_DEG" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">RAD_PER_DEG</a></td><td class=SDescription>Defines the number of radiants per degree.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.DEG_PER_RAD" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">DEG_PER_RAD</a></td><td class=SDescription>Defines the number of degrees per radiant.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.ACTIVE_REGION" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">ACTIVE_REGION</a></td><td class=SDescription>Defines the portion of the cell which is to be used as a connectable region.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.MIN_ACTIVE_REGION" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">MIN_ACTIVE_REGION</a></td><td class=SDescription>Defines the minimum size in pixels of the portion of the cell cell which is to be used as a connectable region.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.NS_SVG" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">NS_SVG</a></td><td class=SDescription>Defines the SVG namespace.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.NS_XHTML" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">NS_XHTML</a></td><td class=SDescription>Defines the XHTML namespace.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.NS_XLINK" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">NS_XLINK</a></td><td class=SDescription>Defined the XLink namespace.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.W3C_SHADOWCOLOR" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">W3C_SHADOWCOLOR</a></td><td class=SDescription>Defines the color to be used to draw shadows in DOM documents.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.SHADOW_OFFSETX" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">SHADOW_OFFSETX</a></td><td class=SDescription>Defines the x-offset to be used for shadows. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.SHADOW_OFFSETY" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">SHADOW_OFFSETY</a></td><td class=SDescription>Defines the y-offset to be used for shadows. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.W3C_DEFAULT_FONTFAMILY" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">W3C_DEFAULT_FONTFAMILY</a></td><td class=SDescription>Defines the default family for HTML markup. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.TTF_ENABLED" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">TTF_ENABLED</a></td><td class=SDescription>Whether TrueType fonts should be enabled in the mxGdCanvas by default. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.TTF_SIZEFACTOR" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">TTF_SIZEFACTOR</a></td><td class=SDescription>Defines the factor which wich the font sizes are to be multiplied when used in truetype fonts. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.DEFAULT_FONTFAMILY" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">DEFAULT_FONTFAMILY</a></td><td class=SDescription>Defines the default family for all truetype fonts. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.DEFAULT_FONTSIZE" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">DEFAULT_FONTSIZE</a></td><td class=SDescription>Defines the default size for all fonts in points. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.DEFAULT_STARTSIZE" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">DEFAULT_STARTSIZE</a></td><td class=SDescription>Defines the default start size for swimlanes. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.DEFAULT_LINESPACING" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">DEFAULT_LINESPACING</a></td><td class=SDescription>Defines the default linespacing. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.LABEL_INSET" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">LABEL_INSET</a></td><td class=SDescription>Defines the inset in absolute pixels between the label bounding box and the label text. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.DEFAULT_MARKERSIZE" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">DEFAULT_MARKERSIZE</a></td><td class=SDescription>Defines the default size for all markers. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.DEFAULT_IMAGESIZE" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">DEFAULT_IMAGESIZE</a></td><td class=SDescription>Defines the default width and height for images used in the label shape. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.ENTITY_SEGMENT" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">ENTITY_SEGMENT</a></td><td class=SDescription>Defines the length of the horizontal segment of an Entity Relation. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.ARROW_SPACING" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">ARROW_SPACING</a></td><td class=SDescription>Defines the spacing between the arrow shape and its terminals. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.ARROW_WIDTH" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">ARROW_WIDTH</a></td><td class=SDescription>Defines the width of the arrow shape. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.ARROW_SIZE" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">ARROW_SIZE</a></td><td class=SDescription>Defines the size of the arrowhead in the arrow shape. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.NONE" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">NONE</a></td><td class=SDescription>Defines the value for none. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_PERIMETER" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">STYLE_PERIMETER</a></td><td class=SDescription>Defines the key for the perimeter style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_OPACITY" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">STYLE_OPACITY</a></td><td class=SDescription>Defines the key for the opacity style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_TEXT_OPACITY" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">STYLE_TEXT_OPACITY</a></td><td class=SDescription>Defines the key for the text opacity style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_OVERFLOW" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">STYLE_OVERFLOW</a></td><td class=SDescription>Defines the key for the overflow style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_ORTHOGONAL" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">STYLE_ORTHOGONAL</a></td><td class=SDescription>Defines if the connection points on either end of the edge should be computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_EXIT_X" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">STYLE_EXIT_X</a></td><td class=SDescription>Defines the key for the horizontal relative coordinate connection point of an edge with its source terminal.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_EXIT_Y" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">STYLE_EXIT_Y</a></td><td class=SDescription>Defines the key for the vertical relative coordinate connection point of an edge with its source terminal.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_EXIT_PERIMETER" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">STYLE_EXIT_PERIMETER</a></td><td class=SDescription>Defines if the perimeter should be used to find the exact entry point along the perimeter of the source. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_ENTRY_X" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')">STYLE_ENTRY_X</a></td><td class=SDescription>Defines the key for the horizontal relative coordinate connection point of an edge with its target terminal.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_ENTRY_Y" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')">STYLE_ENTRY_Y</a></td><td class=SDescription>Defines the key for the vertical relative coordinate connection point of an edge with its target terminal.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.sSTYLE_ENTRY_PERIMETER" >sSTYLE_ENTRY_PERIMETER</a></td><td class=SDescription>Defines if the perimeter should be used to find the exact entry point along the perimeter of the target. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_WHITE_SPACE" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')">STYLE_WHITE_SPACE</a></td><td class=SDescription>Defines the key for the white-space style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_ROTATION" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')">STYLE_ROTATION</a></td><td class=SDescription>Defines the key for the rotation style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_FILLCOLOR" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')">STYLE_FILLCOLOR</a></td><td class=SDescription>Defines the key for the fill color. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_GRADIENTCOLOR" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')">STYLE_GRADIENTCOLOR</a></td><td class=SDescription>Defines the key for the gradient color. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_GRADIENT_DIRECTION" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')">STYLE_GRADIENT_DIRECTION</a></td><td class=SDescription>Defines the key for the gradient direction. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_STROKECOLOR" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')">STYLE_STROKECOLOR</a></td><td class=SDescription>Defines the key for the strokeColor style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_SEPARATORCOLOR" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')">STYLE_SEPARATORCOLOR</a></td><td class=SDescription>Defines the key for the separatorColor style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_STROKEWIDTH" id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')">STYLE_STROKEWIDTH</a></td><td class=SDescription>Defines the key for the strokeWidth style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_ALIGN" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')">STYLE_ALIGN</a></td><td class=SDescription>Defines the key for the align style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_VERTICAL_ALIGN" id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')">STYLE_VERTICAL_ALIGN</a></td><td class=SDescription>Defines the key for the verticalAlign style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_LABEL_POSITION" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')">STYLE_LABEL_POSITION</a></td><td class=SDescription>Defines the key for the horizontal label position of vertices. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_VERTICAL_LABEL_POSITION" id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')">STYLE_VERTICAL_LABEL_POSITION</a></td><td class=SDescription>Defines the key for the vertical label position of vertices. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_IMAGE_ALIGN" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')">STYLE_IMAGE_ALIGN</a></td><td class=SDescription>Defines the key for the align style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_IMAGE_VERTICALALIGN" >STYLE_IMAGE_VERTICALALIGN</a></td><td class=SDescription>Defines the key for the verticalAlign style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_IMAGE" id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')">STYLE_IMAGE</a></td><td class=SDescription>Defines the key for the image style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_IMAGE_WIDTH" id=link50 onMouseOver="ShowTip(event, 'tt50', 'link50')" onMouseOut="HideTip('tt50')">STYLE_IMAGE_WIDTH</a></td><td class=SDescription>Defines the key for the imageWidth style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_IMAGE_HEIGHT" id=link51 onMouseOver="ShowTip(event, 'tt51', 'link51')" onMouseOut="HideTip('tt51')">STYLE_IMAGE_HEIGHT</a></td><td class=SDescription>Defines the key for the imageHeight style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_IMAGE_BACKGROUND" id=link52 onMouseOver="ShowTip(event, 'tt52', 'link52')" onMouseOut="HideTip('tt52')">STYLE_IMAGE_BACKGROUND</a></td><td class=SDescription>Defines the key for the image background color. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_IMAGE_BORDER" id=link53 onMouseOver="ShowTip(event, 'tt53', 'link53')" onMouseOut="HideTip('tt53')">STYLE_IMAGE_BORDER</a></td><td class=SDescription>Defines the key for the image border color. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_IMAGE_FLIPH" id=link54 onMouseOver="ShowTip(event, 'tt54', 'link54')" onMouseOut="HideTip('tt54')">STYLE_IMAGE_FLIPH</a></td><td class=SDescription>Defines the key for the horizontal image flip. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_IMAGE_FLIPV" id=link55 onMouseOver="ShowTip(event, 'tt55', 'link55')" onMouseOut="HideTip('tt55')">STYLE_IMAGE_FLIPV</a></td><td class=SDescription>Defines the key for the vertical image flip. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_NOLABEL" id=link56 onMouseOver="ShowTip(event, 'tt56', 'link56')" onMouseOut="HideTip('tt56')">STYLE_NOLABEL</a></td><td class=SDescription>Defines the key for the noLabel style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_NOEDGESTYLE" id=link57 onMouseOver="ShowTip(event, 'tt57', 'link57')" onMouseOut="HideTip('tt57')">STYLE_NOEDGESTYLE</a></td><td class=SDescription>Defines the key for the noEdgeStyle style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_LABEL_BACKGROUNDCOLOR" id=link58 onMouseOver="ShowTip(event, 'tt58', 'link58')" onMouseOut="HideTip('tt58')">STYLE_LABEL_BACKGROUNDCOLOR</a></td><td class=SDescription>Defines the key for the label background color. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_LABEL_BORDERCOLOR" id=link59 onMouseOver="ShowTip(event, 'tt59', 'link59')" onMouseOut="HideTip('tt59')">STYLE_LABEL_BORDERCOLOR</a></td><td class=SDescription>Defines the key for the label border color. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_INDICATOR_SHAPE" id=link60 onMouseOver="ShowTip(event, 'tt60', 'link60')" onMouseOut="HideTip('tt60')">STYLE_INDICATOR_SHAPE</a></td><td class=SDescription>Defines the key for the indicatorShape style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_INDICATOR_IMAGE" id=link61 onMouseOver="ShowTip(event, 'tt61', 'link61')" onMouseOut="HideTip('tt61')">STYLE_INDICATOR_IMAGE</a></td><td class=SDescription>Defines the key for the indicatorImage style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_INDICATOR_COLOR" id=link62 onMouseOver="ShowTip(event, 'tt62', 'link62')" onMouseOut="HideTip('tt62')">STYLE_INDICATOR_COLOR</a></td><td class=SDescription>Defines the key for the indicatorColor style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_INDICATOR_GRADIENTCOLOR" id=link63 onMouseOver="ShowTip(event, 'tt63', 'link63')" onMouseOut="HideTip('tt63')">STYLE_INDICATOR_GRADIENTCOLOR</a></td><td class=SDescription>Defines the key for the indicatorGradientColor style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_INDICATOR_SPACING" id=link64 onMouseOver="ShowTip(event, 'tt64', 'link64')" onMouseOut="HideTip('tt64')">STYLE_INDICATOR_SPACING</a></td><td class=SDescription>Defines the key for the indicatorSpacing style (in px).</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_INDICATOR_WIDTH" id=link65 onMouseOver="ShowTip(event, 'tt65', 'link65')" onMouseOut="HideTip('tt65')">STYLE_INDICATOR_WIDTH</a></td><td class=SDescription>Defines the key for the indicatorWidth style (in px).</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_INDICATOR_HEIGHT" id=link66 onMouseOver="ShowTip(event, 'tt66', 'link66')" onMouseOut="HideTip('tt66')">STYLE_INDICATOR_HEIGHT</a></td><td class=SDescription>Defines the key for the indicatorHeight style (in px).</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_SHADOW" id=link67 onMouseOver="ShowTip(event, 'tt67', 'link67')" onMouseOut="HideTip('tt67')">STYLE_SHADOW</a></td><td class=SDescription>Defines the key for the shadow style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_SEGMENT" id=link68 onMouseOver="ShowTip(event, 'tt68', 'link68')" onMouseOut="HideTip('tt68')">STYLE_SEGMENT</a></td><td class=SDescription>Defines the key for the segment style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_ENDARROW" id=link69 onMouseOver="ShowTip(event, 'tt69', 'link69')" onMouseOut="HideTip('tt69')">STYLE_ENDARROW</a></td><td class=SDescription>Defines the key for the endArrow style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_STARTARROW" id=link70 onMouseOver="ShowTip(event, 'tt70', 'link70')" onMouseOut="HideTip('tt70')">STYLE_STARTARROW</a></td><td class=SDescription>Defines the key for the startArrow style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_ENDSIZE" id=link71 onMouseOver="ShowTip(event, 'tt71', 'link71')" onMouseOut="HideTip('tt71')">STYLE_ENDSIZE</a></td><td class=SDescription>Defines the key for the endSize style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_STARTSIZE" id=link72 onMouseOver="ShowTip(event, 'tt72', 'link72')" onMouseOut="HideTip('tt72')">STYLE_STARTSIZE</a></td><td class=SDescription>Defines the key for the startSize style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_DASHED" id=link73 onMouseOver="ShowTip(event, 'tt73', 'link73')" onMouseOut="HideTip('tt73')">STYLE_DASHED</a></td><td class=SDescription>Defines the key for the endSize style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_ROUNDED" id=link74 onMouseOver="ShowTip(event, 'tt74', 'link74')" onMouseOut="HideTip('tt74')">STYLE_ROUNDED</a></td><td class=SDescription>Defines the key for the rounded style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_SOURCE_PERIMETER_SPACING" id=link75 onMouseOver="ShowTip(event, 'tt75', 'link75')" onMouseOut="HideTip('tt75')">STYLE_SOURCE_PERIMETER_SPACING</a></td><td class=SDescription>Defines the key for the source perimeter spacing. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_TARGET_PERIMETER_SPACING" id=link76 onMouseOver="ShowTip(event, 'tt76', 'link76')" onMouseOut="HideTip('tt76')">STYLE_TARGET_PERIMETER_SPACING</a></td><td class=SDescription>Defines the key for the source perimeter spacing. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_PERIMETER_SPACING" id=link77 onMouseOver="ShowTip(event, 'tt77', 'link77')" onMouseOut="HideTip('tt77')">STYLE_PERIMETER_SPACING</a></td><td class=SDescription>Defines the key for the perimeter spacing. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_SPACING" id=link78 onMouseOver="ShowTip(event, 'tt78', 'link78')" onMouseOut="HideTip('tt78')">STYLE_SPACING</a></td><td class=SDescription>Defines the key for the spacing. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_SPACING_TOP" id=link79 onMouseOver="ShowTip(event, 'tt79', 'link79')" onMouseOut="HideTip('tt79')">STYLE_SPACING_TOP</a></td><td class=SDescription>Defines the key for the spacingTop style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_SPACING_LEFT" id=link80 onMouseOver="ShowTip(event, 'tt80', 'link80')" onMouseOut="HideTip('tt80')">STYLE_SPACING_LEFT</a></td><td class=SDescription>Defines the key for the spacingLeft style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_SPACING_BOTTOM" id=link81 onMouseOver="ShowTip(event, 'tt81', 'link81')" onMouseOut="HideTip('tt81')">STYLE_SPACING_BOTTOM</a></td><td class=SDescription>Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_SPACING_RIGHT" id=link82 onMouseOver="ShowTip(event, 'tt82', 'link82')" onMouseOut="HideTip('tt82')">STYLE_SPACING_RIGHT</a></td><td class=SDescription>Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_HORIZONTAL" id=link83 onMouseOver="ShowTip(event, 'tt83', 'link83')" onMouseOut="HideTip('tt83')">STYLE_HORIZONTAL</a></td><td class=SDescription>Defines the key for the horizontal style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_DIRECTION" id=link84 onMouseOver="ShowTip(event, 'tt84', 'link84')" onMouseOut="HideTip('tt84')">STYLE_DIRECTION</a></td><td class=SDescription>Defines the key for the direction style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_ELBOW" id=link85 onMouseOver="ShowTip(event, 'tt85', 'link85')" onMouseOut="HideTip('tt85')">STYLE_ELBOW</a></td><td class=SDescription>Defines the key for the elbow style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_FONTCOLOR" id=link86 onMouseOver="ShowTip(event, 'tt86', 'link86')" onMouseOut="HideTip('tt86')">STYLE_FONTCOLOR</a></td><td class=SDescription>Defines the key for the fontColor style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_FONTFAMILY" id=link87 onMouseOver="ShowTip(event, 'tt87', 'link87')" onMouseOut="HideTip('tt87')">STYLE_FONTFAMILY</a></td><td class=SDescription>Defines the key for the fontFamily style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_FONTSIZE" id=link88 onMouseOver="ShowTip(event, 'tt88', 'link88')" onMouseOut="HideTip('tt88')">STYLE_FONTSIZE</a></td><td class=SDescription>Defines the key for the fontSize style (in points). </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_FONTSTYLE" id=link89 onMouseOver="ShowTip(event, 'tt89', 'link89')" onMouseOut="HideTip('tt89')">STYLE_FONTSTYLE</a></td><td class=SDescription>Defines the key for the fontStyle style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_SHAPE" id=link90 onMouseOver="ShowTip(event, 'tt90', 'link90')" onMouseOut="HideTip('tt90')">STYLE_SHAPE</a></td><td class=SDescription>Defines the key for the shape. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_EDGE" id=link91 onMouseOver="ShowTip(event, 'tt91', 'link91')" onMouseOut="HideTip('tt91')">STYLE_EDGE</a></td><td class=SDescription>Defines the key for the edge style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_LOOP" id=link92 onMouseOver="ShowTip(event, 'tt92', 'link92')" onMouseOut="HideTip('tt92')">STYLE_LOOP</a></td><td class=SDescription>Defines the key for the loop style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.STYLE_ROUTING_CENTER_X" id=link93 onMouseOver="ShowTip(event, 'tt93', 'link93')" onMouseOut="HideTip('tt93')">STYLE_ROUTING_CENTER_X</a></td><td class=SDescription>Defines the key for the horizontal routing center. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.STYLE_ROUTING_CENTER_Y" id=link94 onMouseOver="ShowTip(event, 'tt94', 'link94')" onMouseOut="HideTip('tt94')">STYLE_ROUTING_CENTER_Y</a></td><td class=SDescription>Defines the key for the vertical routing center. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.FONT_BOLD" id=link95 onMouseOver="ShowTip(event, 'tt95', 'link95')" onMouseOut="HideTip('tt95')">FONT_BOLD</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.FONT_ITALIC" id=link96 onMouseOver="ShowTip(event, 'tt96', 'link96')" onMouseOut="HideTip('tt96')">FONT_ITALIC</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.FONT_UNDERLINE" id=link97 onMouseOver="ShowTip(event, 'tt97', 'link97')" onMouseOut="HideTip('tt97')">FONT_UNDERLINE</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.FONT_SHADOW" id=link98 onMouseOver="ShowTip(event, 'tt98', 'link98')" onMouseOut="HideTip('tt98')">FONT_SHADOW</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.SHAPE_RECTANGLE" id=link99 onMouseOver="ShowTip(event, 'tt99', 'link99')" onMouseOut="HideTip('tt99')">SHAPE_RECTANGLE</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.SHAPE_ELLIPSE" id=link100 onMouseOver="ShowTip(event, 'tt100', 'link100')" onMouseOut="HideTip('tt100')">SHAPE_ELLIPSE</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.SHAPE_DOUBLE_ELLIPSE" id=link101 onMouseOver="ShowTip(event, 'tt101', 'link101')" onMouseOut="HideTip('tt101')">SHAPE_DOUBLE_ELLIPSE</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.SHAPE_RHOMBUS" id=link102 onMouseOver="ShowTip(event, 'tt102', 'link102')" onMouseOut="HideTip('tt102')">SHAPE_RHOMBUS</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.SHAPE_LINE" id=link103 onMouseOver="ShowTip(event, 'tt103', 'link103')" onMouseOut="HideTip('tt103')">SHAPE_LINE</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.SHAPE_IMAGE" id=link104 onMouseOver="ShowTip(event, 'tt104', 'link104')" onMouseOut="HideTip('tt104')">SHAPE_IMAGE</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.SHAPE_ARROW" id=link105 onMouseOver="ShowTip(event, 'tt105', 'link105')" onMouseOut="HideTip('tt105')">SHAPE_ARROW</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.SHAPE_LABEL" id=link106 onMouseOver="ShowTip(event, 'tt106', 'link106')" onMouseOut="HideTip('tt106')">SHAPE_LABEL</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.SHAPE_CYLINDER" id=link107 onMouseOver="ShowTip(event, 'tt107', 'link107')" onMouseOut="HideTip('tt107')">SHAPE_CYLINDER</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.SHAPE_SWIMLANE" id=link108 onMouseOver="ShowTip(event, 'tt108', 'link108')" onMouseOut="HideTip('tt108')">SHAPE_SWIMLANE</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.SHAPE_CONNECTOR" id=link109 onMouseOver="ShowTip(event, 'tt109', 'link109')" onMouseOut="HideTip('tt109')">SHAPE_CONNECTOR</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.SHAPE_ACTOR" id=link110 onMouseOver="ShowTip(event, 'tt110', 'link110')" onMouseOut="HideTip('tt110')">SHAPE_ACTOR</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.SHAPE_CLOUD" id=link111 onMouseOver="ShowTip(event, 'tt111', 'link111')" onMouseOut="HideTip('tt111')">SHAPE_CLOUD</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.SHAPE_TRIANGLE" id=link112 onMouseOver="ShowTip(event, 'tt112', 'link112')" onMouseOut="HideTip('tt112')">SHAPE_TRIANGLE</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.SHAPE_HEXAGON" id=link113 onMouseOver="ShowTip(event, 'tt113', 'link113')" onMouseOut="HideTip('tt113')">SHAPE_HEXAGON</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.ARROW_CLASSIC" id=link114 onMouseOver="ShowTip(event, 'tt114', 'link114')" onMouseOut="HideTip('tt114')">ARROW_CLASSIC</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.ARROW_BLOCK" id=link115 onMouseOver="ShowTip(event, 'tt115', 'link115')" onMouseOut="HideTip('tt115')">ARROW_BLOCK</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.ARROW_OPEN" id=link116 onMouseOver="ShowTip(event, 'tt116', 'link116')" onMouseOut="HideTip('tt116')">ARROW_OPEN</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.ARROW_OVAL" id=link117 onMouseOver="ShowTip(event, 'tt117', 'link117')" onMouseOut="HideTip('tt117')">ARROW_OVAL</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.ARROW_DIAMOND" id=link118 onMouseOver="ShowTip(event, 'tt118', 'link118')" onMouseOut="HideTip('tt118')">ARROW_DIAMOND</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.ALIGN_LEFT" id=link119 onMouseOver="ShowTip(event, 'tt119', 'link119')" onMouseOut="HideTip('tt119')">ALIGN_LEFT</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.ALIGN_CENTER" id=link120 onMouseOver="ShowTip(event, 'tt120', 'link120')" onMouseOut="HideTip('tt120')">ALIGN_CENTER</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.ALIGN_RIGHT" id=link121 onMouseOver="ShowTip(event, 'tt121', 'link121')" onMouseOut="HideTip('tt121')">ALIGN_RIGHT</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.ALIGN_TOP" id=link122 onMouseOver="ShowTip(event, 'tt122', 'link122')" onMouseOut="HideTip('tt122')">ALIGN_TOP</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.ALIGN_MIDDLE" id=link123 onMouseOver="ShowTip(event, 'tt123', 'link123')" onMouseOut="HideTip('tt123')">ALIGN_MIDDLE</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.ALIGN_BOTTOM" id=link124 onMouseOver="ShowTip(event, 'tt124', 'link124')" onMouseOut="HideTip('tt124')">ALIGN_BOTTOM</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.DIRECTION_NORTH" id=link125 onMouseOver="ShowTip(event, 'tt125', 'link125')" onMouseOut="HideTip('tt125')">DIRECTION_NORTH</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.DIRECTION_SOUTH" id=link126 onMouseOver="ShowTip(event, 'tt126', 'link126')" onMouseOut="HideTip('tt126')">DIRECTION_SOUTH</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.DIRECTION_EAST" id=link127 onMouseOver="ShowTip(event, 'tt127', 'link127')" onMouseOut="HideTip('tt127')">DIRECTION_EAST</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.DIRECTION_WEST" id=link128 onMouseOver="ShowTip(event, 'tt128', 'link128')" onMouseOut="HideTip('tt128')">DIRECTION_WEST</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.ELBOW_VERTICAL" id=link129 onMouseOver="ShowTip(event, 'tt129', 'link129')" onMouseOut="HideTip('tt129')">ELBOW_VERTICAL</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.ELBOW_HORIZONTAL" id=link130 onMouseOver="ShowTip(event, 'tt130', 'link130')" onMouseOut="HideTip('tt130')">ELBOW_HORIZONTAL</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.EDGESTYLE_ENTITY_RELATION" id=link131 onMouseOver="ShowTip(event, 'tt131', 'link131')" onMouseOut="HideTip('tt131')">EDGESTYLE_ENTITY_RELATION</a></td><td class=SDescription>Name of the entity relation edge style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.EDGESTYLE_LOOP" id=link132 onMouseOver="ShowTip(event, 'tt132', 'link132')" onMouseOut="HideTip('tt132')">EDGESTYLE_LOOP</a></td><td class=SDescription>Name of the loop edge style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.EDGESTYLE_SIDETOSIDE" id=link133 onMouseOver="ShowTip(event, 'tt133', 'link133')" onMouseOut="HideTip('tt133')">EDGESTYLE_SIDETOSIDE</a></td><td class=SDescription>Name of the side to side edge style. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.EDGESTYLE_TOPTOBOTTOM" id=link134 onMouseOver="ShowTip(event, 'tt134', 'link134')" onMouseOut="HideTip('tt134')">EDGESTYLE_TOPTOBOTTOM</a></td><td class=SDescription>Name of the top to bottom edge style. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.PERIMETER_ELLIPSE" id=link135 onMouseOver="ShowTip(event, 'tt135', 'link135')" onMouseOut="HideTip('tt135')">PERIMETER_ELLIPSE</a></td><td class=SDescription>Name of the ellipse perimeter. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.PERIMETER_RECTANGLE" id=link136 onMouseOver="ShowTip(event, 'tt136', 'link136')" onMouseOut="HideTip('tt136')">PERIMETER_RECTANGLE</a></td><td class=SDescription>Name of the rectangle perimeter. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConstants.PERIMETER_RHOMBUS" id=link137 onMouseOver="ShowTip(event, 'tt137', 'link137')" onMouseOut="HideTip('tt137')">PERIMETER_RHOMBUS</a></td><td class=SDescription>Name of the rhombus perimeter. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConstants.PERIMETER_TRIANGLE" id=link138 onMouseOver="ShowTip(event, 'tt138', 'link138')" onMouseOut="HideTip('tt138')">PERIMETER_TRIANGLE</a></td><td class=SDescription>Name of the triangle perimeter. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxConstants.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.RAD_PER_DEG"></a>RAD_PER_DEG</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RAD_PER_DEG</td></tr></table></blockquote><p>Defines the number of radiants per degree.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DEG_PER_RAD"></a>DEG_PER_RAD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEG_PER_RAD</td></tr></table></blockquote><p>Defines the number of degrees per radiant.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ACTIVE_REGION"></a>ACTIVE_REGION</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ACTIVE_REGION</td></tr></table></blockquote><p>Defines the portion of the cell which is to be used as a connectable region.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.MIN_ACTIVE_REGION"></a>MIN_ACTIVE_REGION</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $MIN_ACTIVE_REGION</td></tr></table></blockquote><p>Defines the minimum size in pixels of the portion of the cell cell which is to be used as a connectable region.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.NS_SVG"></a>NS_SVG</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_SVG</td></tr></table></blockquote><p>Defines the SVG namespace.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.NS_XHTML"></a>NS_XHTML</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_XHTML</td></tr></table></blockquote><p>Defines the XHTML namespace.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.NS_XLINK"></a>NS_XLINK</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_XLINK</td></tr></table></blockquote><p>Defined the XLink namespace.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.W3C_SHADOWCOLOR"></a>W3C_SHADOWCOLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $W3C_SHADOWCOLOR</td></tr></table></blockquote><p>Defines the color to be used to draw shadows in DOM documents.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHADOW_OFFSETX"></a>SHADOW_OFFSETX</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHADOW_OFFSETX</td></tr></table></blockquote><p>Defines the x-offset to be used for shadows.&nbsp; Default is 2.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHADOW_OFFSETY"></a>SHADOW_OFFSETY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHADOW_OFFSETY</td></tr></table></blockquote><p>Defines the y-offset to be used for shadows.&nbsp; Default is 3.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.W3C_DEFAULT_FONTFAMILY"></a>W3C_DEFAULT_FONTFAMILY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $W3C_DEFAULT_FONTFAMILY</td></tr></table></blockquote><p>Defines the default family for HTML markup.&nbsp; Default is times, serif.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.TTF_ENABLED"></a>TTF_ENABLED</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TTF_ENABLED</td></tr></table></blockquote><p>Whether TrueType fonts should be enabled in the mxGdCanvas by default.&nbsp; Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.TTF_SIZEFACTOR"></a>TTF_SIZEFACTOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TTF_SIZEFACTOR</td></tr></table></blockquote><p>Defines the factor which wich the font sizes are to be multiplied when used in truetype fonts.&nbsp; Default is 0.66.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DEFAULT_FONTFAMILY"></a>DEFAULT_FONTFAMILY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTFAMILY</td></tr></table></blockquote><p>Defines the default family for all truetype fonts.&nbsp; Default is vera.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DEFAULT_FONTSIZE"></a>DEFAULT_FONTSIZE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTSIZE</td></tr></table></blockquote><p>Defines the default size for all fonts in points.&nbsp; Default is 11.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DEFAULT_STARTSIZE"></a>DEFAULT_STARTSIZE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_STARTSIZE</td></tr></table></blockquote><p>Defines the default start size for swimlanes.&nbsp; Default is 40.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DEFAULT_LINESPACING"></a>DEFAULT_LINESPACING</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_LINESPACING</td></tr></table></blockquote><p>Defines the default linespacing.&nbsp; Default is 7.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.LABEL_INSET"></a>LABEL_INSET</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $LABEL_INSET</td></tr></table></blockquote><p>Defines the inset in absolute pixels between the label bounding box and the label text.&nbsp; Default is 3.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DEFAULT_MARKERSIZE"></a>DEFAULT_MARKERSIZE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_MARKERSIZE</td></tr></table></blockquote><p>Defines the default size for all markers.&nbsp; Default is 6.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DEFAULT_IMAGESIZE"></a>DEFAULT_IMAGESIZE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_IMAGESIZE</td></tr></table></blockquote><p>Defines the default width and height for images used in the label shape.&nbsp; Default is 24.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ENTITY_SEGMENT"></a>ENTITY_SEGMENT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ENTITY_SEGMENT</td></tr></table></blockquote><p>Defines the length of the horizontal segment of an Entity Relation.&nbsp; This can be overridden using <a href="#mxConstants.STYLE_SEGMENT" class=LVariable id=link139 onMouseOver="ShowTip(event, 'tt68', 'link139')" onMouseOut="HideTip('tt68')">mxConstants.STYLE_SEGMENT</a> style.&nbsp; Default is 30.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ARROW_SPACING"></a>ARROW_SPACING</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_SPACING</td></tr></table></blockquote><p>Defines the spacing between the arrow shape and its terminals.&nbsp; Default is 10.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ARROW_WIDTH"></a>ARROW_WIDTH</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_WIDTH</td></tr></table></blockquote><p>Defines the width of the arrow shape.&nbsp; Default is 30.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ARROW_SIZE"></a>ARROW_SIZE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_SIZE</td></tr></table></blockquote><p>Defines the size of the arrowhead in the arrow shape.&nbsp; Default is 30.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.NONE"></a>NONE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NONE</td></tr></table></blockquote><p>Defines the value for none.&nbsp; Default is &ldquo;none&rdquo;.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_PERIMETER"></a>STYLE_PERIMETER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_PERIMETER</td></tr></table></blockquote><p>Defines the key for the perimeter style.&nbsp; This is a function that defines the perimeter around a particular shape.&nbsp; Possible values are the functions defined in <a href="../view/mxPerimeter-php.html#mxPerimeter" class=LClass id=link140 onMouseOver="ShowTip(event, 'tt139', 'link140')" onMouseOut="HideTip('tt139')">mxPerimeter</a>.&nbsp; Alternatively, the constants in this class that start with &lt;code&gt;PERIMETER_&lt;/code&gt; may be used to access perimeter styles in <a href="../view/mxStyleRegistry-php.html#mxStyleRegistry" class=LClass id=link141 onMouseOver="ShowTip(event, 'tt140', 'link141')" onMouseOut="HideTip('tt140')">mxStyleRegistry</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_OPACITY"></a>STYLE_OPACITY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_OPACITY</td></tr></table></blockquote><p>Defines the key for the opacity style.&nbsp; The type of the value is numeric and the possible range is 0-100.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_TEXT_OPACITY"></a>STYLE_TEXT_OPACITY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_TEXT_OPACITY</td></tr></table></blockquote><p>Defines the key for the text opacity style.&nbsp; The type of the value is numeric and the possible range is 0-100.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_OVERFLOW"></a>STYLE_OVERFLOW</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_OVERFLOW</td></tr></table></blockquote><p>Defines the key for the overflow style.&nbsp; Possible values are &ldquo;visible&rdquo;, &ldquo;hidden&rdquo; and &ldquo;fill&rdquo;.&nbsp; The default value is &ldquo;visible&rdquo;.&nbsp; This value specifies how overlapping vertex labels are handles.&nbsp; A value of &ldquo;visible&rdquo; will show the complete label.&nbsp; A value of &ldquo;hidden&rdquo; will clip the label so that it does not overlap the vertex bounds.&nbsp; A value of &ldquo;fill&rdquo; will use the vertex bounds for the label.</p><p>This style is ignored in PHP.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ORTHOGONAL"></a>STYLE_ORTHOGONAL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ORTHOGONAL</td></tr></table></blockquote><p>Defines if the connection points on either end of the edge should be computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location.&nbsp; Default is false.&nbsp; This is used in <a href="../view/mxGraph-php.html#mxGraph.isOrthogonal" class=LFunction id=link142 onMouseOver="ShowTip(event, 'tt141', 'link142')" onMouseOut="HideTip('tt141')">mxGraph.isOrthogonal</a>, which also returns true if the edgeStyle of the edge is an elbow or entity.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_EXIT_X"></a>STYLE_EXIT_X</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_X</td></tr></table></blockquote><p>Defines the key for the horizontal relative coordinate connection point of an edge with its source terminal.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_EXIT_Y"></a>STYLE_EXIT_Y</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_Y</td></tr></table></blockquote><p>Defines the key for the vertical relative coordinate connection point of an edge with its source terminal.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_EXIT_PERIMETER"></a>STYLE_EXIT_PERIMETER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_PERIMETER</td></tr></table></blockquote><p>Defines if the perimeter should be used to find the exact entry point along the perimeter of the source.&nbsp; Possible values are 0 (false) and 1 (true).&nbsp; Default is 1 (true).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ENTRY_X"></a>STYLE_ENTRY_X</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENTRY_X</td></tr></table></blockquote><p>Defines the key for the horizontal relative coordinate connection point of an edge with its target terminal.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ENTRY_Y"></a>STYLE_ENTRY_Y</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENTRY_Y</td></tr></table></blockquote><p>Defines the key for the vertical relative coordinate connection point of an edge with its target terminal.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.sSTYLE_ENTRY_PERIMETER"></a>sSTYLE_ENTRY_PERIMETER</h3><div class=CBody><p>Defines if the perimeter should be used to find the exact entry point along the perimeter of the target.&nbsp; Possible values are 0 (false) and 1 (true).&nbsp; Default is 1 (true).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_WHITE_SPACE"></a>STYLE_WHITE_SPACE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_WHITE_SPACE</td></tr></table></blockquote><p>Defines the key for the white-space style.&nbsp; Possible values are &ldquo;nowrap&rdquo; and &ldquo;wrap&rdquo;.&nbsp; The default value is &ldquo;nowrap&rdquo;.&nbsp; This value specifies how white-space inside a HTML vertex label should be handled.&nbsp; A value of &ldquo;nowrap&rdquo; means the text will never wrap to the next line until a linefeed is encountered.&nbsp; A value of &ldquo;wrap&rdquo; means text will wrap when necessary.&nbsp; This style is only used for HTML labels.</p><p>This style is ignored in PHP.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ROTATION"></a>STYLE_ROTATION</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROTATION</td></tr></table></blockquote><p>Defines the key for the rotation style.&nbsp; The type of the value is numeric and the possible range is 0-360.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_FILLCOLOR"></a>STYLE_FILLCOLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FILLCOLOR</td></tr></table></blockquote><p>Defines the key for the fill color.&nbsp; Possible values are all HTML color names or HEX codes, as well as special keywords such as &lsquo;swimlane, &lsquo;inherit&rsquo; or &lsquo;indicated&rsquo; to use the color code of a related cell or the indicator shape.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_GRADIENTCOLOR"></a>STYLE_GRADIENTCOLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_GRADIENTCOLOR</td></tr></table></blockquote><p>Defines the key for the gradient color.&nbsp; Possible values are all HTML color names or HEX codes, as well as special keywords such as &lsquo;swimlane, &lsquo;inherit&rsquo; or &lsquo;indicated&rsquo; to use the color code of a related cell or the indicator shape.&nbsp; This is ignored if no fill color is defined.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_GRADIENT_DIRECTION"></a>STYLE_GRADIENT_DIRECTION</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_GRADIENT_DIRECTION</td></tr></table></blockquote><p>Defines the key for the gradient direction.&nbsp; Possible values are <a href="#mxConstants.DIRECTION_EAST" class=LVariable id=link143 onMouseOver="ShowTip(event, 'tt127', 'link143')" onMouseOut="HideTip('tt127')">DIRECTION_EAST</a>, <a href="#mxConstants.DIRECTION_WEST" class=LVariable id=link144 onMouseOver="ShowTip(event, 'tt128', 'link144')" onMouseOut="HideTip('tt128')">DIRECTION_WEST</a>, <a href="#mxConstants.DIRECTION_NORTH" class=LVariable id=link145 onMouseOver="ShowTip(event, 'tt125', 'link145')" onMouseOut="HideTip('tt125')">DIRECTION_NORTH</a> and <a href="#mxConstants.DIRECTION_SOUTH" class=LVariable id=link146 onMouseOver="ShowTip(event, 'tt126', 'link146')" onMouseOut="HideTip('tt126')">DIRECTION_SOUTH</a>.&nbsp; Default is <a href="#mxConstants.DIRECTION_SOUTH" class=LVariable id=link147 onMouseOver="ShowTip(event, 'tt126', 'link147')" onMouseOut="HideTip('tt126')">DIRECTION_SOUTH</a>.&nbsp; Generally, and by default in mxGraph, gradient painting is done from the value of <a href="#mxConstants.STYLE_FILLCOLOR" class=LVariable id=link148 onMouseOver="ShowTip(event, 'tt38', 'link148')" onMouseOut="HideTip('tt38')">STYLE_FILLCOLOR</a> to the value of <a href="#mxConstants.STYLE_GRADIENTCOLOR" class=LVariable id=link149 onMouseOver="ShowTip(event, 'tt39', 'link149')" onMouseOut="HideTip('tt39')">STYLE_GRADIENTCOLOR</a>.&nbsp; Taking the example of <a href="#mxConstants.DIRECTION_NORTH" class=LVariable id=link150 onMouseOver="ShowTip(event, 'tt125', 'link150')" onMouseOut="HideTip('tt125')">DIRECTION_NORTH</a>, this means <a href="#mxConstants.STYLE_FILLCOLOR" class=LVariable id=link151 onMouseOver="ShowTip(event, 'tt38', 'link151')" onMouseOut="HideTip('tt38')">STYLE_FILLCOLOR</a> color at the bottom of paint pattern and <a href="#mxConstants.STYLE_GRADIENTCOLOR" class=LVariable id=link152 onMouseOver="ShowTip(event, 'tt39', 'link152')" onMouseOut="HideTip('tt39')">STYLE_GRADIENTCOLOR</a> at top, with a gradient in-between.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_STROKECOLOR"></a>STYLE_STROKECOLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STROKECOLOR</td></tr></table></blockquote><p>Defines the key for the strokeColor style.&nbsp; Possible values are all HTML color names or HEX codes, as well as special keywords such as &lsquo;swimlane, &lsquo;inherit&rsquo; or &lsquo;indicated&rsquo; to use the color code of a related cell or the indicator shape.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SEPARATORCOLOR"></a>STYLE_SEPARATORCOLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SEPARATORCOLOR</td></tr></table></blockquote><p>Defines the key for the separatorColor style.&nbsp; Possible values are all HTML color names or HEX codes.&nbsp; This style is only used for <a href="#mxConstants.SHAPE_SWIMLANE" class=LVariable id=link153 onMouseOver="ShowTip(event, 'tt108', 'link153')" onMouseOut="HideTip('tt108')">SHAPE_SWIMLANE</a> shapes.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_STROKEWIDTH"></a>STYLE_STROKEWIDTH</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STROKEWIDTH</td></tr></table></blockquote><p>Defines the key for the strokeWidth style.&nbsp; The type of the value is numeric and the possible range is any non-negative value.&nbsp; The value the stroke width in pixels.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ALIGN"></a>STYLE_ALIGN</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ALIGN</td></tr></table></blockquote><p>Defines the key for the align style.&nbsp; Possible values are <a href="#mxConstants.ALIGN_LEFT" class=LVariable id=link154 onMouseOver="ShowTip(event, 'tt119', 'link154')" onMouseOut="HideTip('tt119')">ALIGN_LEFT</a>, <a href="#mxConstants.ALIGN_CENTER" class=LVariable id=link155 onMouseOver="ShowTip(event, 'tt120', 'link155')" onMouseOut="HideTip('tt120')">ALIGN_CENTER</a> and <a href="#mxConstants.ALIGN_RIGHT" class=LVariable id=link156 onMouseOver="ShowTip(event, 'tt121', 'link156')" onMouseOut="HideTip('tt121')">ALIGN_RIGHT</a>.&nbsp; This value defines how the lines of the label are horizontally aligned.&nbsp; <a href="#mxConstants.ALIGN_LEFT" class=LVariable id=link157 onMouseOver="ShowTip(event, 'tt119', 'link157')" onMouseOut="HideTip('tt119')">ALIGN_LEFT</a> mean label text lines are aligned to left of the label bounds, <a href="#mxConstants.ALIGN_RIGHT" class=LVariable id=link158 onMouseOver="ShowTip(event, 'tt121', 'link158')" onMouseOut="HideTip('tt121')">ALIGN_RIGHT</a> to the right of the label bounds and <a href="#mxConstants.ALIGN_CENTER" class=LVariable id=link159 onMouseOver="ShowTip(event, 'tt120', 'link159')" onMouseOut="HideTip('tt120')">ALIGN_CENTER</a> means the center of the text lines are aligned in the center of the label bounds.&nbsp; Note this value doesn&rsquo;t affect the positioning of the overall label bounds relative to the vertex, to move the label bounds horizontally, use <a href="#mxConstants.STYLE_LABEL_POSITION" class=LVariable id=link160 onMouseOver="ShowTip(event, 'tt46', 'link160')" onMouseOut="HideTip('tt46')">STYLE_LABEL_POSITION</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_VERTICAL_ALIGN"></a>STYLE_VERTICAL_ALIGN</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_VERTICAL_ALIGN</td></tr></table></blockquote><p>Defines the key for the verticalAlign style.&nbsp; Possible values are <a href="#mxConstants.ALIGN_TOP" class=LVariable id=link161 onMouseOver="ShowTip(event, 'tt122', 'link161')" onMouseOut="HideTip('tt122')">ALIGN_TOP</a>, <a href="#mxConstants.ALIGN_MIDDLE" class=LVariable id=link162 onMouseOver="ShowTip(event, 'tt123', 'link162')" onMouseOut="HideTip('tt123')">ALIGN_MIDDLE</a> and <a href="#mxConstants.ALIGN_BOTTOM" class=LVariable id=link163 onMouseOver="ShowTip(event, 'tt124', 'link163')" onMouseOut="HideTip('tt124')">ALIGN_BOTTOM</a>.&nbsp; This value defines how the lines of the label are vertically aligned.&nbsp; <a href="#mxConstants.ALIGN_TOP" class=LVariable id=link164 onMouseOver="ShowTip(event, 'tt122', 'link164')" onMouseOut="HideTip('tt122')">ALIGN_TOP</a> means the topmost label text line is aligned against the top of the label bounds, <a href="#mxConstants.ALIGN_BOTTOM" class=LVariable id=link165 onMouseOver="ShowTip(event, 'tt124', 'link165')" onMouseOut="HideTip('tt124')">ALIGN_BOTTOM</a> means the bottom-most label text line is aligned against the bottom of the label bounds and <a href="#mxConstants.ALIGN_MIDDLE" class=LVariable id=link166 onMouseOver="ShowTip(event, 'tt123', 'link166')" onMouseOut="HideTip('tt123')">ALIGN_MIDDLE</a> means there is equal spacing between the topmost text label line and the top of the label bounds and the bottom-most text label line and the bottom of the label bounds.&nbsp; Note this value doesn&rsquo;t affect the positioning of the overall label bounds relative to the vertex, to move the label bounds vertically, use <a href="#mxConstants.STYLE_VERTICAL_LABEL_POSITION" class=LVariable id=link167 onMouseOver="ShowTip(event, 'tt47', 'link167')" onMouseOut="HideTip('tt47')">STYLE_VERTICAL_LABEL_POSITION</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_LABEL_POSITION"></a>STYLE_LABEL_POSITION</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_POSITION</td></tr></table></blockquote><p>Defines the key for the horizontal label position of vertices.&nbsp; Possible values are <a href="#mxConstants.ALIGN_LEFT" class=LVariable id=link168 onMouseOver="ShowTip(event, 'tt119', 'link168')" onMouseOut="HideTip('tt119')">ALIGN_LEFT</a>, <a href="#mxConstants.ALIGN_CENTER" class=LVariable id=link169 onMouseOver="ShowTip(event, 'tt120', 'link169')" onMouseOut="HideTip('tt120')">ALIGN_CENTER</a> and <a href="#mxConstants.ALIGN_RIGHT" class=LVariable id=link170 onMouseOver="ShowTip(event, 'tt121', 'link170')" onMouseOut="HideTip('tt121')">ALIGN_RIGHT</a>.&nbsp; Default is <a href="#mxConstants.ALIGN_CENTER" class=LVariable id=link171 onMouseOver="ShowTip(event, 'tt120', 'link171')" onMouseOut="HideTip('tt120')">ALIGN_CENTER</a>.&nbsp; The label align defines the position of the label relative to the cell.&nbsp; <a href="#mxConstants.ALIGN_LEFT" class=LVariable id=link172 onMouseOver="ShowTip(event, 'tt119', 'link172')" onMouseOut="HideTip('tt119')">ALIGN_LEFT</a> means the entire label bounds is placed completely just to the left of the vertex, <a href="#mxConstants.ALIGN_RIGHT" class=LVariable id=link173 onMouseOver="ShowTip(event, 'tt121', 'link173')" onMouseOut="HideTip('tt121')">ALIGN_RIGHT</a> means adjust to the right and <a href="#mxConstants.ALIGN_CENTER" class=LVariable id=link174 onMouseOver="ShowTip(event, 'tt120', 'link174')" onMouseOut="HideTip('tt120')">ALIGN_CENTER</a> means the label bounds are vertically aligned with the bounds of the vertex.&nbsp; Note this value doesn&rsquo;t affect the positioning of label within the label bounds, to move the label horizontally within the label bounds, use <a href="#mxConstants.STYLE_ALIGN" class=LVariable id=link175 onMouseOver="ShowTip(event, 'tt44', 'link175')" onMouseOut="HideTip('tt44')">STYLE_ALIGN</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_VERTICAL_LABEL_POSITION"></a>STYLE_VERTICAL_LABEL_POSITION</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_VERTICAL_LABEL_POSITION</td></tr></table></blockquote><p>Defines the key for the vertical label position of vertices.&nbsp; Possible values are <a href="#mxConstants.ALIGN_TOP" class=LVariable id=link176 onMouseOver="ShowTip(event, 'tt122', 'link176')" onMouseOut="HideTip('tt122')">ALIGN_TOP</a>, <a href="#mxConstants.ALIGN_BOTTOM" class=LVariable id=link177 onMouseOver="ShowTip(event, 'tt124', 'link177')" onMouseOut="HideTip('tt124')">ALIGN_BOTTOM</a> and <a href="#mxConstants.ALIGN_MIDDLE" class=LVariable id=link178 onMouseOver="ShowTip(event, 'tt123', 'link178')" onMouseOut="HideTip('tt123')">ALIGN_MIDDLE</a>.&nbsp; Default is <a href="#mxConstants.ALIGN_MIDDLE" class=LVariable id=link179 onMouseOver="ShowTip(event, 'tt123', 'link179')" onMouseOut="HideTip('tt123')">ALIGN_MIDDLE</a>.&nbsp; The label align defines the position of the label relative to the cell.&nbsp; <a href="#mxConstants.ALIGN_TOP" class=LVariable id=link180 onMouseOver="ShowTip(event, 'tt122', 'link180')" onMouseOut="HideTip('tt122')">ALIGN_TOP</a> means the entire label bounds is placed completely just on the top of the vertex, <a href="#mxConstants.ALIGN_BOTTOM" class=LVariable id=link181 onMouseOver="ShowTip(event, 'tt124', 'link181')" onMouseOut="HideTip('tt124')">ALIGN_BOTTOM</a> means adjust on the bottom and <a href="#mxConstants.ALIGN_MIDDLE" class=LVariable id=link182 onMouseOver="ShowTip(event, 'tt123', 'link182')" onMouseOut="HideTip('tt123')">ALIGN_MIDDLE</a> means the label bounds are horizontally aligned with the bounds of the vertex.&nbsp; Note this value doesn&rsquo;t affect the positioning of label within the label bounds, to move the label vertically within the label bounds, use <a href="#mxConstants.STYLE_VERTICAL_ALIGN" class=LVariable id=link183 onMouseOver="ShowTip(event, 'tt45', 'link183')" onMouseOut="HideTip('tt45')">STYLE_VERTICAL_ALIGN</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_IMAGE_ALIGN"></a>STYLE_IMAGE_ALIGN</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_ALIGN</td></tr></table></blockquote><p>Defines the key for the align style.&nbsp; Possible values are <a href="#mxConstants.ALIGN_LEFT" class=LVariable id=link184 onMouseOver="ShowTip(event, 'tt119', 'link184')" onMouseOut="HideTip('tt119')">ALIGN_LEFT</a>, <a href="#mxConstants.ALIGN_CENTER" class=LVariable id=link185 onMouseOver="ShowTip(event, 'tt120', 'link185')" onMouseOut="HideTip('tt120')">ALIGN_CENTER</a> and <a href="#mxConstants.ALIGN_RIGHT" class=LVariable id=link186 onMouseOver="ShowTip(event, 'tt121', 'link186')" onMouseOut="HideTip('tt121')">ALIGN_RIGHT</a>.&nbsp; The value defines how any image in the vertex label is aligned horizontally within the label bounds of a <a href="#mxConstants.SHAPE_LABEL" class=LVariable id=link187 onMouseOver="ShowTip(event, 'tt106', 'link187')" onMouseOut="HideTip('tt106')">SHAPE_LABEL</a> shape.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_IMAGE_VERTICALALIGN"></a>STYLE_IMAGE_VERTICALALIGN</h3><div class=CBody><p>Defines the key for the verticalAlign style.&nbsp; Possible values are <a href="#mxConstants.ALIGN_TOP" class=LVariable id=link188 onMouseOver="ShowTip(event, 'tt122', 'link188')" onMouseOut="HideTip('tt122')">ALIGN_TOP</a>, <a href="#mxConstants.ALIGN_MIDDLE" class=LVariable id=link189 onMouseOver="ShowTip(event, 'tt123', 'link189')" onMouseOut="HideTip('tt123')">ALIGN_MIDDLE</a> and <a href="#mxConstants.ALIGN_BOTTOM" class=LVariable id=link190 onMouseOver="ShowTip(event, 'tt124', 'link190')" onMouseOut="HideTip('tt124')">ALIGN_BOTTOM</a>.&nbsp; The value defines how any image in the vertex label is aligned vertically within the label bounds of a <a href="#mxConstants.SHAPE_LABEL" class=LVariable id=link191 onMouseOver="ShowTip(event, 'tt106', 'link191')" onMouseOut="HideTip('tt106')">SHAPE_LABEL</a> shape.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_IMAGE"></a>STYLE_IMAGE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE</td></tr></table></blockquote><p>Defines the key for the image style.&nbsp; Possible values are any image URL, registered key in &lt;mxImageResources&gt; or short data URI as defined in <a href="mxImageBundle-php.html#mxImageBundle" class=LClass id=link192 onMouseOver="ShowTip(event, 'tt142', 'link192')" onMouseOut="HideTip('tt142')">mxImageBundle</a>.&nbsp; The type of the value is String.&nbsp; This is the path to the image to image that is to be displayed within the label of a vertex.&nbsp; Finally, <a href="mxUtils-php.html#mxUtils.loadImage" class=LFunction id=link193 onMouseOver="ShowTip(event, 'tt143', 'link193')" onMouseOut="HideTip('tt143')">mxUtils.loadImage</a> is used for loading the image for a given value.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_IMAGE_WIDTH"></a>STYLE_IMAGE_WIDTH</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_WIDTH</td></tr></table></blockquote><p>Defines the key for the imageWidth style.&nbsp; The type of this value is int, the value is the image width in pixels and must be greater than 0.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_IMAGE_HEIGHT"></a>STYLE_IMAGE_HEIGHT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_HEIGHT</td></tr></table></blockquote><p>Defines the key for the imageHeight style.&nbsp; The type of this value is int, the value is the image height in pixels and must be greater than 0.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_IMAGE_BACKGROUND"></a>STYLE_IMAGE_BACKGROUND</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_BACKGROUND</td></tr></table></blockquote><p>Defines the key for the image background color.&nbsp; This style is only used in &lt;mxImageShape&gt;.&nbsp; Possible values are all HTML color names or HEX codes.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_IMAGE_BORDER"></a>STYLE_IMAGE_BORDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_BORDER</td></tr></table></blockquote><p>Defines the key for the image border color.&nbsp; This style is only used in &lt;mxImageShape&gt;.&nbsp; Possible values are all HTML color names or HEX codes.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_IMAGE_FLIPH"></a>STYLE_IMAGE_FLIPH</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_FLIPH</td></tr></table></blockquote><p>Defines the key for the horizontal image flip.&nbsp; This style is only used for painting images.&nbsp; Possible values are 0 and 1.&nbsp; Default is 0.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_IMAGE_FLIPV"></a>STYLE_IMAGE_FLIPV</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_FLIPV</td></tr></table></blockquote><p>Defines the key for the vertical image flip.&nbsp; This style is only used for painting images.&nbsp; Possible values are 0 and 1.&nbsp; Default is 0.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_NOLABEL"></a>STYLE_NOLABEL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_NOLABEL</td></tr></table></blockquote><p>Defines the key for the noLabel style.&nbsp; If this is true then no label is visible for a given cell.&nbsp; Possible values are true or false (1 or 0).&nbsp; Default is false.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_NOEDGESTYLE"></a>STYLE_NOEDGESTYLE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_NOEDGESTYLE</td></tr></table></blockquote><p>Defines the key for the noEdgeStyle style.&nbsp; If this is true then no edge style is applied for a given edge.&nbsp; Possible values are true or false (1 or 0).&nbsp; Default is false.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_LABEL_BACKGROUNDCOLOR"></a>STYLE_LABEL_BACKGROUNDCOLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_BACKGROUNDCOLOR</td></tr></table></blockquote><p>Defines the key for the label background color.&nbsp; Possible values are all HTML color names or HEX codes.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_LABEL_BORDERCOLOR"></a>STYLE_LABEL_BORDERCOLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_BORDERCOLOR</td></tr></table></blockquote><p>Defines the key for the label border color.&nbsp; Possible values are all HTML color names or HEX codes.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_INDICATOR_SHAPE"></a>STYLE_INDICATOR_SHAPE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_SHAPE</td></tr></table></blockquote><p>Defines the key for the indicatorShape style.&nbsp; Possible values are any of the SHAPE_* constants.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_INDICATOR_IMAGE"></a>STYLE_INDICATOR_IMAGE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_IMAGE</td></tr></table></blockquote><p>Defines the key for the indicatorImage style.&nbsp; Possible values are any image URL.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_INDICATOR_COLOR"></a>STYLE_INDICATOR_COLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_COLOR</td></tr></table></blockquote><p>Defines the key for the indicatorColor style.&nbsp; Possible values are all HTML color names or HEX codes, as well as the special &lsquo;swimlane&rsquo; keyword to refer to the color of the parent swimlane if one exists.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_INDICATOR_GRADIENTCOLOR"></a>STYLE_INDICATOR_GRADIENTCOLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_GRADIENTCOLOR</td></tr></table></blockquote><p>Defines the key for the indicatorGradientColor style.&nbsp; Possible values are all HTML color names or HEX codes.&nbsp; This style is only supported in <a href="#mxConstants.SHAPE_LABEL" class=LVariable id=link194 onMouseOver="ShowTip(event, 'tt106', 'link194')" onMouseOut="HideTip('tt106')">SHAPE_LABEL</a> shapes.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_INDICATOR_SPACING"></a>STYLE_INDICATOR_SPACING</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_SPACING</td></tr></table></blockquote><p>Defines the key for the indicatorSpacing style (in px).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_INDICATOR_WIDTH"></a>STYLE_INDICATOR_WIDTH</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_WIDTH</td></tr></table></blockquote><p>Defines the key for the indicatorWidth style (in px).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_INDICATOR_HEIGHT"></a>STYLE_INDICATOR_HEIGHT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_HEIGHT</td></tr></table></blockquote><p>Defines the key for the indicatorHeight style (in px).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SHADOW"></a>STYLE_SHADOW</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SHADOW</td></tr></table></blockquote><p>Defines the key for the shadow style.&nbsp; The type of the value is Boolean.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SEGMENT"></a>STYLE_SEGMENT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SEGMENT</td></tr></table></blockquote><p>Defines the key for the segment style.&nbsp; The type of this value is float and the value represents the size of the horizontal segment of the entity relation style.&nbsp; Default is ENTITY_SEGMENT.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ENDARROW"></a>STYLE_ENDARROW</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENDARROW</td></tr></table></blockquote><p>Defines the key for the endArrow style.&nbsp; Possible values are all constants in this class that start with ARROW_.&nbsp; This style is supported in the &lt;mxConnector&gt; shape.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">style[mxConstants.public static $STYLE_ENDARROW] = mxConstants.ARROW_CLASSIC;</pre></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_STARTARROW"></a>STYLE_STARTARROW</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STARTARROW</td></tr></table></blockquote><p>Defines the key for the startArrow style.&nbsp; Possible values are all constants in this class that start with ARROW_.&nbsp; See &lt;public static $STYLE_ENDARROW&gt;.&nbsp; This style is supported in the &lt;mxConnector&gt; shape.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ENDSIZE"></a>STYLE_ENDSIZE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENDSIZE</td></tr></table></blockquote><p>Defines the key for the endSize style.&nbsp; The type of this value is numeric and the value represents the size of the end marker in pixels.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_STARTSIZE"></a>STYLE_STARTSIZE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STARTSIZE</td></tr></table></blockquote><p>Defines the key for the startSize style.&nbsp; The type of this value is numeric and the value represents the size of the start marker or the size of the swimlane title region depending on the shape it is used for.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_DASHED"></a>STYLE_DASHED</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_DASHED</td></tr></table></blockquote><p>Defines the key for the endSize style.&nbsp; The type of this value is numeric and the value represents the size of the end marker in pixels.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ROUNDED"></a>STYLE_ROUNDED</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUNDED</td></tr></table></blockquote><p>Defines the key for the rounded style.&nbsp; The type of this value is Boolean.&nbsp; For edges this determines whether or not joins between edges segments are smoothed to a rounded finish.&nbsp; For vertices that have the rectangle shape, this determines whether or not the rectangle is rounded.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SOURCE_PERIMETER_SPACING"></a>STYLE_SOURCE_PERIMETER_SPACING</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SOURCE_PERIMETER_SPACING</td></tr></table></blockquote><p>Defines the key for the source perimeter spacing.&nbsp; The type of this value is numeric.&nbsp; This is the distance between the source connection point of an edge and the perimeter of the source vertex in pixels.&nbsp; This style only applies to edges.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_TARGET_PERIMETER_SPACING"></a>STYLE_TARGET_PERIMETER_SPACING</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_TARGET_PERIMETER_SPACING</td></tr></table></blockquote><p>Defines the key for the source perimeter spacing.&nbsp; The type of this value is numeric.&nbsp; This is the distance between the target connection point of an edge and the perimeter of the target vertex in pixels.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_PERIMETER_SPACING"></a>STYLE_PERIMETER_SPACING</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_PERIMETER_SPACING</td></tr></table></blockquote><p>Defines the key for the perimeter spacing.&nbsp; This is the distance between the connection point and the perimeter in pixels.&nbsp; When used in a vertex style, this applies to all incoming edges to floating ports (edges that terminate on the perimeter of the vertex).&nbsp; When used in an edge style, this spacing applies to the source and target separately, if they terminate in floating ports (on the perimeter of the vertex).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SPACING"></a>STYLE_SPACING</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING</td></tr></table></blockquote><p>Defines the key for the spacing.&nbsp; The value represents the spacing, in pixels, added to each side of a label in a vertex (style applies to vertices only).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SPACING_TOP"></a>STYLE_SPACING_TOP</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_TOP</td></tr></table></blockquote><p>Defines the key for the spacingTop style.&nbsp; The value represents the spacing, in pixels, added to the top side of a label in a vertex (style applies to vertices only).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SPACING_LEFT"></a>STYLE_SPACING_LEFT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_LEFT</td></tr></table></blockquote><p>Defines the key for the spacingLeft style.&nbsp; The value represents the spacing, in pixels, added to the left side of a label in a vertex (style applies to vertices only).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SPACING_BOTTOM"></a>STYLE_SPACING_BOTTOM</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_BOTTOM</td></tr></table></blockquote><p>Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SPACING_RIGHT"></a>STYLE_SPACING_RIGHT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_RIGHT</td></tr></table></blockquote><p>Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_HORIZONTAL"></a>STYLE_HORIZONTAL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_HORIZONTAL</td></tr></table></blockquote><p>Defines the key for the horizontal style.&nbsp; Possible values are true or false.&nbsp; This value only applies to vertices.&nbsp; If the <a href="#mxConstants.STYLE_SHAPE" class=LVariable id=link195 onMouseOver="ShowTip(event, 'tt90', 'link195')" onMouseOut="HideTip('tt90')">STYLE_SHAPE</a> is &lt;code&gt;SHAPE_SWIMLANE&lt;/code&gt; a value of false indicates that the swimlane should be drawn vertically, true indicates to draw it horizontally.&nbsp; If the shape style does not indicate that this vertex is a swimlane, this value affects only whether the label is drawn horizontally or vertically.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_DIRECTION"></a>STYLE_DIRECTION</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_DIRECTION</td></tr></table></blockquote><p>Defines the key for the direction style.&nbsp; The direction style is used to specify the direction of certain shapes (eg.&nbsp; &lt;mxTriangle&gt;).&nbsp; Possible values are <a href="#mxConstants.DIRECTION_EAST" class=LVariable id=link196 onMouseOver="ShowTip(event, 'tt127', 'link196')" onMouseOut="HideTip('tt127')">DIRECTION_EAST</a> (default), <a href="#mxConstants.DIRECTION_WEST" class=LVariable id=link197 onMouseOver="ShowTip(event, 'tt128', 'link197')" onMouseOut="HideTip('tt128')">DIRECTION_WEST</a>, <a href="#mxConstants.DIRECTION_NORTH" class=LVariable id=link198 onMouseOver="ShowTip(event, 'tt125', 'link198')" onMouseOut="HideTip('tt125')">DIRECTION_NORTH</a> and <a href="#mxConstants.DIRECTION_SOUTH" class=LVariable id=link199 onMouseOver="ShowTip(event, 'tt126', 'link199')" onMouseOut="HideTip('tt126')">DIRECTION_SOUTH</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ELBOW"></a>STYLE_ELBOW</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ELBOW</td></tr></table></blockquote><p>Defines the key for the elbow style.&nbsp; Possible values are <a href="#mxConstants.ELBOW_HORIZONTAL" class=LVariable id=link200 onMouseOver="ShowTip(event, 'tt130', 'link200')" onMouseOut="HideTip('tt130')">ELBOW_HORIZONTAL</a> and <a href="#mxConstants.ELBOW_VERTICAL" class=LVariable id=link201 onMouseOver="ShowTip(event, 'tt129', 'link201')" onMouseOut="HideTip('tt129')">ELBOW_VERTICAL</a>.&nbsp; Default is <a href="#mxConstants.ELBOW_HORIZONTAL" class=LVariable id=link202 onMouseOver="ShowTip(event, 'tt130', 'link202')" onMouseOut="HideTip('tt130')">ELBOW_HORIZONTAL</a>.&nbsp; This defines how the three segment orthogonal edge style leaves its terminal vertices.&nbsp; The vertical style leaves the terminal vertices at the top and bottom sides.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_FONTCOLOR"></a>STYLE_FONTCOLOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTCOLOR</td></tr></table></blockquote><p>Defines the key for the fontColor style.&nbsp; Possible values are all HTML color names or HEX codes.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_FONTFAMILY"></a>STYLE_FONTFAMILY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTFAMILY</td></tr></table></blockquote><p>Defines the key for the fontFamily style.&nbsp; Possible values are names such as Arial; Dialog; Verdana; Times New Roman.&nbsp; The value is of type String.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_FONTSIZE"></a>STYLE_FONTSIZE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTSIZE</td></tr></table></blockquote><p>Defines the key for the fontSize style (in points).&nbsp; The type of the value is int.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_FONTSTYLE"></a>STYLE_FONTSTYLE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTSTYLE</td></tr></table></blockquote><p>Defines the key for the fontStyle style.&nbsp; Values may be any logical AND (sum) of <a href="#mxConstants.FONT_BOLD" class=LVariable id=link203 onMouseOver="ShowTip(event, 'tt95', 'link203')" onMouseOut="HideTip('tt95')">FONT_BOLD</a>, <a href="#mxConstants.FONT_ITALIC" class=LVariable id=link204 onMouseOver="ShowTip(event, 'tt96', 'link204')" onMouseOut="HideTip('tt96')">FONT_ITALIC</a>, <a href="#mxConstants.FONT_UNDERLINE" class=LVariable id=link205 onMouseOver="ShowTip(event, 'tt97', 'link205')" onMouseOut="HideTip('tt97')">FONT_UNDERLINE</a> and <a href="#mxConstants.FONT_SHADOW" class=LVariable id=link206 onMouseOver="ShowTip(event, 'tt98', 'link206')" onMouseOut="HideTip('tt98')">FONT_SHADOW</a>.&nbsp; The type of the value is int.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_SHAPE"></a>STYLE_SHAPE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SHAPE</td></tr></table></blockquote><p>Defines the key for the shape.&nbsp; Possible values are all constants with a SHAPE-prefix or any newly defined shape names.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_EDGE"></a>STYLE_EDGE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EDGE</td></tr></table></blockquote><p>Defines the key for the edge style.&nbsp; Possible values are the functions defined in <a href="../view/mxEdgeStyle-php.html#mxEdgeStyle" class=LClass id=link207 onMouseOver="ShowTip(event, 'tt144', 'link207')" onMouseOut="HideTip('tt144')">mxEdgeStyle</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_LOOP"></a>STYLE_LOOP</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LOOP</td></tr></table></blockquote><p>Defines the key for the loop style.&nbsp; Possible values are the functions defined in <a href="../view/mxEdgeStyle-php.html#mxEdgeStyle" class=LClass id=link208 onMouseOver="ShowTip(event, 'tt144', 'link208')" onMouseOut="HideTip('tt144')">mxEdgeStyle</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ROUTING_CENTER_X"></a>STYLE_ROUTING_CENTER_X</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUTING_CENTER_X</td></tr></table></blockquote><p>Defines the key for the horizontal routing center.&nbsp; Possible values are between -0.5 and 0.5.&nbsp; This is the relative offset from the center used for connecting edges.&nbsp; The type of this value is numeric.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.STYLE_ROUTING_CENTER_Y"></a>STYLE_ROUTING_CENTER_Y</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUTING_CENTER_Y</td></tr></table></blockquote><p>Defines the key for the vertical routing center.&nbsp; Possible values are between -0.5 and 0.5.&nbsp; This is the relative offset from the center used for connecting edges.&nbsp; The type of this value is numeric.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.FONT_BOLD"></a>FONT_BOLD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_BOLD</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.FONT_ITALIC"></a>FONT_ITALIC</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_ITALIC</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.FONT_UNDERLINE"></a>FONT_UNDERLINE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_UNDERLINE</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.FONT_SHADOW"></a>FONT_SHADOW</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_SHADOW</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_RECTANGLE"></a>SHAPE_RECTANGLE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_RECTANGLE</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_ELLIPSE"></a>SHAPE_ELLIPSE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ELLIPSE</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_DOUBLE_ELLIPSE"></a>SHAPE_DOUBLE_ELLIPSE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_DOUBLE_ELLIPSE</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_RHOMBUS"></a>SHAPE_RHOMBUS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_RHOMBUS</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_LINE"></a>SHAPE_LINE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_LINE</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_IMAGE"></a>SHAPE_IMAGE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_IMAGE</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_ARROW"></a>SHAPE_ARROW</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ARROW</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_LABEL"></a>SHAPE_LABEL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_LABEL</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_CYLINDER"></a>SHAPE_CYLINDER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CYLINDER</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_SWIMLANE"></a>SHAPE_SWIMLANE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_SWIMLANE</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_CONNECTOR"></a>SHAPE_CONNECTOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CONNECTOR</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_ACTOR"></a>SHAPE_ACTOR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ACTOR</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_CLOUD"></a>SHAPE_CLOUD</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CLOUD</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_TRIANGLE"></a>SHAPE_TRIANGLE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_TRIANGLE</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.SHAPE_HEXAGON"></a>SHAPE_HEXAGON</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_HEXAGON</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ARROW_CLASSIC"></a>ARROW_CLASSIC</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_CLASSIC</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ARROW_BLOCK"></a>ARROW_BLOCK</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_BLOCK</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ARROW_OPEN"></a>ARROW_OPEN</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_OPEN</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ARROW_OVAL"></a>ARROW_OVAL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_OVAL</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ARROW_DIAMOND"></a>ARROW_DIAMOND</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_DIAMOND</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ALIGN_LEFT"></a>ALIGN_LEFT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_LEFT</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ALIGN_CENTER"></a>ALIGN_CENTER</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_CENTER</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ALIGN_RIGHT"></a>ALIGN_RIGHT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_RIGHT</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ALIGN_TOP"></a>ALIGN_TOP</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_TOP</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ALIGN_MIDDLE"></a>ALIGN_MIDDLE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_MIDDLE</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ALIGN_BOTTOM"></a>ALIGN_BOTTOM</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_BOTTOM</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DIRECTION_NORTH"></a>DIRECTION_NORTH</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_NORTH</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DIRECTION_SOUTH"></a>DIRECTION_SOUTH</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_SOUTH</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DIRECTION_EAST"></a>DIRECTION_EAST</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_EAST</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.DIRECTION_WEST"></a>DIRECTION_WEST</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_WEST</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ELBOW_VERTICAL"></a>ELBOW_VERTICAL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ELBOW_VERTICAL</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.ELBOW_HORIZONTAL"></a>ELBOW_HORIZONTAL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ELBOW_HORIZONTAL</td></tr></table></blockquote></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.EDGESTYLE_ENTITY_RELATION"></a>EDGESTYLE_ENTITY_RELATION</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_ENTITY_RELATION</td></tr></table></blockquote><p>Name of the entity relation edge style.&nbsp; Can be used as a string value for the STYLE_EDGE style.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.EDGESTYLE_LOOP"></a>EDGESTYLE_LOOP</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_LOOP</td></tr></table></blockquote><p>Name of the loop edge style.&nbsp; Can be used as a string value for the STYLE_EDGE style.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.EDGESTYLE_SIDETOSIDE"></a>EDGESTYLE_SIDETOSIDE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_SIDETOSIDE</td></tr></table></blockquote><p>Name of the side to side edge style.&nbsp; Can be used as a string value for the STYLE_EDGE style.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.EDGESTYLE_TOPTOBOTTOM"></a>EDGESTYLE_TOPTOBOTTOM</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_TOPTOBOTTOM</td></tr></table></blockquote><p>Name of the top to bottom edge style.&nbsp; Can be used as a string value for the STYLE_EDGE style.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.PERIMETER_ELLIPSE"></a>PERIMETER_ELLIPSE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_ELLIPSE</td></tr></table></blockquote><p>Name of the ellipse perimeter.&nbsp; Can be used as a string value for the STYLE_PERIMETER style.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.PERIMETER_RECTANGLE"></a>PERIMETER_RECTANGLE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_RECTANGLE</td></tr></table></blockquote><p>Name of the rectangle perimeter.&nbsp; Can be used as a string value for the STYLE_PERIMETER style.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.PERIMETER_RHOMBUS"></a>PERIMETER_RHOMBUS</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_RHOMBUS</td></tr></table></blockquote><p>Name of the rhombus perimeter.&nbsp; Can be used as a string value for the STYLE_PERIMETER style.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConstants.PERIMETER_TRIANGLE"></a>PERIMETER_TRIANGLE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_TRIANGLE</td></tr></table></blockquote><p>Name of the triangle perimeter.&nbsp; Can be used as a string value for the STYLE_PERIMETER style.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile id=MSelected>mxConstants</div></div><div class=MEntry><div class=MFile><a href="mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([3, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RAD_PER_DEG</td></tr></table></blockquote>Defines the number of radiants per degree.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEG_PER_RAD</td></tr></table></blockquote>Defines the number of degrees per radiant.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ACTIVE_REGION</td></tr></table></blockquote>Defines the portion of the cell which is to be used as a connectable region.</div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $MIN_ACTIVE_REGION</td></tr></table></blockquote>Defines the minimum size in pixels of the portion of the cell cell which is to be used as a connectable region.</div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_SVG</td></tr></table></blockquote>Defines the SVG namespace.</div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_XHTML</td></tr></table></blockquote>Defines the XHTML namespace.</div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_XLINK</td></tr></table></blockquote>Defined the XLink namespace.</div></div><div class=CToolTip id="tt8"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $W3C_SHADOWCOLOR</td></tr></table></blockquote>Defines the color to be used to draw shadows in DOM documents.</div></div><div class=CToolTip id="tt9"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHADOW_OFFSETX</td></tr></table></blockquote>Defines the x-offset to be used for shadows. </div></div><div class=CToolTip id="tt10"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHADOW_OFFSETY</td></tr></table></blockquote>Defines the y-offset to be used for shadows. </div></div><div class=CToolTip id="tt11"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $W3C_DEFAULT_FONTFAMILY</td></tr></table></blockquote>Defines the default family for HTML markup. </div></div><div class=CToolTip id="tt12"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TTF_ENABLED</td></tr></table></blockquote>Whether TrueType fonts should be enabled in the mxGdCanvas by default. </div></div><div class=CToolTip id="tt13"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TTF_SIZEFACTOR</td></tr></table></blockquote>Defines the factor which wich the font sizes are to be multiplied when used in truetype fonts. </div></div><div class=CToolTip id="tt14"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTFAMILY</td></tr></table></blockquote>Defines the default family for all truetype fonts. </div></div><div class=CToolTip id="tt15"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTSIZE</td></tr></table></blockquote>Defines the default size for all fonts in points. </div></div><div class=CToolTip id="tt16"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_STARTSIZE</td></tr></table></blockquote>Defines the default start size for swimlanes. </div></div><div class=CToolTip id="tt17"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_LINESPACING</td></tr></table></blockquote>Defines the default linespacing. </div></div><div class=CToolTip id="tt18"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $LABEL_INSET</td></tr></table></blockquote>Defines the inset in absolute pixels between the label bounding box and the label text. </div></div><div class=CToolTip id="tt19"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_MARKERSIZE</td></tr></table></blockquote>Defines the default size for all markers. </div></div><div class=CToolTip id="tt20"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_IMAGESIZE</td></tr></table></blockquote>Defines the default width and height for images used in the label shape. </div></div><div class=CToolTip id="tt21"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ENTITY_SEGMENT</td></tr></table></blockquote>Defines the length of the horizontal segment of an Entity Relation. </div></div><div class=CToolTip id="tt22"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_SPACING</td></tr></table></blockquote>Defines the spacing between the arrow shape and its terminals. </div></div><div class=CToolTip id="tt23"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_WIDTH</td></tr></table></blockquote>Defines the width of the arrow shape. </div></div><div class=CToolTip id="tt24"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_SIZE</td></tr></table></blockquote>Defines the size of the arrowhead in the arrow shape. </div></div><div class=CToolTip id="tt25"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NONE</td></tr></table></blockquote>Defines the value for none. </div></div><div class=CToolTip id="tt26"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_PERIMETER</td></tr></table></blockquote>Defines the key for the perimeter style. </div></div><div class=CToolTip id="tt27"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_OPACITY</td></tr></table></blockquote>Defines the key for the opacity style. </div></div><div class=CToolTip id="tt28"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_TEXT_OPACITY</td></tr></table></blockquote>Defines the key for the text opacity style. </div></div><div class=CToolTip id="tt29"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_OVERFLOW</td></tr></table></blockquote>Defines the key for the overflow style. </div></div><div class=CToolTip id="tt30"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ORTHOGONAL</td></tr></table></blockquote>Defines if the connection points on either end of the edge should be computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location. </div></div><div class=CToolTip id="tt31"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_X</td></tr></table></blockquote>Defines the key for the horizontal relative coordinate connection point of an edge with its source terminal.</div></div><div class=CToolTip id="tt32"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_Y</td></tr></table></blockquote>Defines the key for the vertical relative coordinate connection point of an edge with its source terminal.</div></div><div class=CToolTip id="tt33"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_PERIMETER</td></tr></table></blockquote>Defines if the perimeter should be used to find the exact entry point along the perimeter of the source. </div></div><div class=CToolTip id="tt34"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENTRY_X</td></tr></table></blockquote>Defines the key for the horizontal relative coordinate connection point of an edge with its target terminal.</div></div><div class=CToolTip id="tt35"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENTRY_Y</td></tr></table></blockquote>Defines the key for the vertical relative coordinate connection point of an edge with its target terminal.</div></div><div class=CToolTip id="tt36"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_WHITE_SPACE</td></tr></table></blockquote>Defines the key for the white-space style. </div></div><div class=CToolTip id="tt37"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROTATION</td></tr></table></blockquote>Defines the key for the rotation style. </div></div><div class=CToolTip id="tt38"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FILLCOLOR</td></tr></table></blockquote>Defines the key for the fill color. </div></div><div class=CToolTip id="tt39"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_GRADIENTCOLOR</td></tr></table></blockquote>Defines the key for the gradient color. </div></div><div class=CToolTip id="tt40"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_GRADIENT_DIRECTION</td></tr></table></blockquote>Defines the key for the gradient direction. </div></div><div class=CToolTip id="tt41"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STROKECOLOR</td></tr></table></blockquote>Defines the key for the strokeColor style. </div></div><div class=CToolTip id="tt42"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SEPARATORCOLOR</td></tr></table></blockquote>Defines the key for the separatorColor style. </div></div><div class=CToolTip id="tt43"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STROKEWIDTH</td></tr></table></blockquote>Defines the key for the strokeWidth style. </div></div><div class=CToolTip id="tt44"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ALIGN</td></tr></table></blockquote>Defines the key for the align style. </div></div><div class=CToolTip id="tt45"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_VERTICAL_ALIGN</td></tr></table></blockquote>Defines the key for the verticalAlign style. </div></div><div class=CToolTip id="tt46"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_POSITION</td></tr></table></blockquote>Defines the key for the horizontal label position of vertices. </div></div><div class=CToolTip id="tt47"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_VERTICAL_LABEL_POSITION</td></tr></table></blockquote>Defines the key for the vertical label position of vertices. </div></div><div class=CToolTip id="tt48"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_ALIGN</td></tr></table></blockquote>Defines the key for the align style. </div></div><div class=CToolTip id="tt49"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE</td></tr></table></blockquote>Defines the key for the image style. </div></div><div class=CToolTip id="tt50"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_WIDTH</td></tr></table></blockquote>Defines the key for the imageWidth style. </div></div><div class=CToolTip id="tt51"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_HEIGHT</td></tr></table></blockquote>Defines the key for the imageHeight style. </div></div><div class=CToolTip id="tt52"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_BACKGROUND</td></tr></table></blockquote>Defines the key for the image background color. </div></div><div class=CToolTip id="tt53"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_BORDER</td></tr></table></blockquote>Defines the key for the image border color. </div></div><div class=CToolTip id="tt54"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_FLIPH</td></tr></table></blockquote>Defines the key for the horizontal image flip. </div></div><div class=CToolTip id="tt55"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_FLIPV</td></tr></table></blockquote>Defines the key for the vertical image flip. </div></div><div class=CToolTip id="tt56"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_NOLABEL</td></tr></table></blockquote>Defines the key for the noLabel style. </div></div><div class=CToolTip id="tt57"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_NOEDGESTYLE</td></tr></table></blockquote>Defines the key for the noEdgeStyle style. </div></div><div class=CToolTip id="tt58"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_BACKGROUNDCOLOR</td></tr></table></blockquote>Defines the key for the label background color. </div></div><div class=CToolTip id="tt59"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_BORDERCOLOR</td></tr></table></blockquote>Defines the key for the label border color. </div></div><div class=CToolTip id="tt60"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_SHAPE</td></tr></table></blockquote>Defines the key for the indicatorShape style. </div></div><div class=CToolTip id="tt61"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_IMAGE</td></tr></table></blockquote>Defines the key for the indicatorImage style. </div></div><div class=CToolTip id="tt62"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_COLOR</td></tr></table></blockquote>Defines the key for the indicatorColor style. </div></div><div class=CToolTip id="tt63"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_GRADIENTCOLOR</td></tr></table></blockquote>Defines the key for the indicatorGradientColor style. </div></div><div class=CToolTip id="tt64"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_SPACING</td></tr></table></blockquote>Defines the key for the indicatorSpacing style (in px).</div></div><div class=CToolTip id="tt65"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_WIDTH</td></tr></table></blockquote>Defines the key for the indicatorWidth style (in px).</div></div><div class=CToolTip id="tt66"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_HEIGHT</td></tr></table></blockquote>Defines the key for the indicatorHeight style (in px).</div></div><div class=CToolTip id="tt67"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SHADOW</td></tr></table></blockquote>Defines the key for the shadow style. </div></div><div class=CToolTip id="tt68"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SEGMENT</td></tr></table></blockquote>Defines the key for the segment style. </div></div><div class=CToolTip id="tt69"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENDARROW</td></tr></table></blockquote>Defines the key for the endArrow style. </div></div><div class=CToolTip id="tt70"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STARTARROW</td></tr></table></blockquote>Defines the key for the startArrow style. </div></div><div class=CToolTip id="tt71"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENDSIZE</td></tr></table></blockquote>Defines the key for the endSize style. </div></div><div class=CToolTip id="tt72"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STARTSIZE</td></tr></table></blockquote>Defines the key for the startSize style. </div></div><div class=CToolTip id="tt73"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_DASHED</td></tr></table></blockquote>Defines the key for the endSize style. </div></div><div class=CToolTip id="tt74"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUNDED</td></tr></table></blockquote>Defines the key for the rounded style. </div></div><div class=CToolTip id="tt75"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SOURCE_PERIMETER_SPACING</td></tr></table></blockquote>Defines the key for the source perimeter spacing. </div></div><div class=CToolTip id="tt76"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_TARGET_PERIMETER_SPACING</td></tr></table></blockquote>Defines the key for the source perimeter spacing. </div></div><div class=CToolTip id="tt77"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_PERIMETER_SPACING</td></tr></table></blockquote>Defines the key for the perimeter spacing. </div></div><div class=CToolTip id="tt78"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING</td></tr></table></blockquote>Defines the key for the spacing. </div></div><div class=CToolTip id="tt79"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_TOP</td></tr></table></blockquote>Defines the key for the spacingTop style. </div></div><div class=CToolTip id="tt80"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_LEFT</td></tr></table></blockquote>Defines the key for the spacingLeft style. </div></div><div class=CToolTip id="tt81"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_BOTTOM</td></tr></table></blockquote>Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).</div></div><div class=CToolTip id="tt82"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_RIGHT</td></tr></table></blockquote>Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).</div></div><div class=CToolTip id="tt83"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_HORIZONTAL</td></tr></table></blockquote>Defines the key for the horizontal style. </div></div><div class=CToolTip id="tt84"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_DIRECTION</td></tr></table></blockquote>Defines the key for the direction style. </div></div><div class=CToolTip id="tt85"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ELBOW</td></tr></table></blockquote>Defines the key for the elbow style. </div></div><div class=CToolTip id="tt86"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTCOLOR</td></tr></table></blockquote>Defines the key for the fontColor style. </div></div><div class=CToolTip id="tt87"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTFAMILY</td></tr></table></blockquote>Defines the key for the fontFamily style. </div></div><div class=CToolTip id="tt88"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTSIZE</td></tr></table></blockquote>Defines the key for the fontSize style (in points). </div></div><div class=CToolTip id="tt89"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTSTYLE</td></tr></table></blockquote>Defines the key for the fontStyle style. </div></div><div class=CToolTip id="tt90"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SHAPE</td></tr></table></blockquote>Defines the key for the shape. </div></div><div class=CToolTip id="tt91"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EDGE</td></tr></table></blockquote>Defines the key for the edge style. </div></div><div class=CToolTip id="tt92"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LOOP</td></tr></table></blockquote>Defines the key for the loop style. </div></div><div class=CToolTip id="tt93"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUTING_CENTER_X</td></tr></table></blockquote>Defines the key for the horizontal routing center. </div></div><div class=CToolTip id="tt94"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUTING_CENTER_Y</td></tr></table></blockquote>Defines the key for the vertical routing center. </div></div><div class=CToolTip id="tt95"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_BOLD</td></tr></table></blockquote></div></div><div class=CToolTip id="tt96"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_ITALIC</td></tr></table></blockquote></div></div><div class=CToolTip id="tt97"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_UNDERLINE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt98"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_SHADOW</td></tr></table></blockquote></div></div><div class=CToolTip id="tt99"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_RECTANGLE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt100"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ELLIPSE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt101"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_DOUBLE_ELLIPSE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt102"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_RHOMBUS</td></tr></table></blockquote></div></div><div class=CToolTip id="tt103"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_LINE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt104"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_IMAGE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt105"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ARROW</td></tr></table></blockquote></div></div><div class=CToolTip id="tt106"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_LABEL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt107"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CYLINDER</td></tr></table></blockquote></div></div><div class=CToolTip id="tt108"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_SWIMLANE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt109"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CONNECTOR</td></tr></table></blockquote></div></div><div class=CToolTip id="tt110"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ACTOR</td></tr></table></blockquote></div></div><div class=CToolTip id="tt111"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CLOUD</td></tr></table></blockquote></div></div><div class=CToolTip id="tt112"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_TRIANGLE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt113"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_HEXAGON</td></tr></table></blockquote></div></div><div class=CToolTip id="tt114"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_CLASSIC</td></tr></table></blockquote></div></div><div class=CToolTip id="tt115"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_BLOCK</td></tr></table></blockquote></div></div><div class=CToolTip id="tt116"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_OPEN</td></tr></table></blockquote></div></div><div class=CToolTip id="tt117"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_OVAL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt118"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_DIAMOND</td></tr></table></blockquote></div></div><div class=CToolTip id="tt119"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_LEFT</td></tr></table></blockquote></div></div><div class=CToolTip id="tt120"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_CENTER</td></tr></table></blockquote></div></div><div class=CToolTip id="tt121"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_RIGHT</td></tr></table></blockquote></div></div><div class=CToolTip id="tt122"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_TOP</td></tr></table></blockquote></div></div><div class=CToolTip id="tt123"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_MIDDLE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt124"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_BOTTOM</td></tr></table></blockquote></div></div><div class=CToolTip id="tt125"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_NORTH</td></tr></table></blockquote></div></div><div class=CToolTip id="tt126"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_SOUTH</td></tr></table></blockquote></div></div><div class=CToolTip id="tt127"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_EAST</td></tr></table></blockquote></div></div><div class=CToolTip id="tt128"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_WEST</td></tr></table></blockquote></div></div><div class=CToolTip id="tt129"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ELBOW_VERTICAL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt130"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ELBOW_HORIZONTAL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt131"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_ENTITY_RELATION</td></tr></table></blockquote>Name of the entity relation edge style. </div></div><div class=CToolTip id="tt132"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_LOOP</td></tr></table></blockquote>Name of the loop edge style. </div></div><div class=CToolTip id="tt133"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_SIDETOSIDE</td></tr></table></blockquote>Name of the side to side edge style. </div></div><div class=CToolTip id="tt134"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_TOPTOBOTTOM</td></tr></table></blockquote>Name of the top to bottom edge style. </div></div><div class=CToolTip id="tt135"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_ELLIPSE</td></tr></table></blockquote>Name of the ellipse perimeter. </div></div><div class=CToolTip id="tt136"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_RECTANGLE</td></tr></table></blockquote>Name of the rectangle perimeter. </div></div><div class=CToolTip id="tt137"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_RHOMBUS</td></tr></table></blockquote>Name of the rhombus perimeter. </div></div><div class=CToolTip id="tt138"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_TRIANGLE</td></tr></table></blockquote>Name of the triangle perimeter. </div></div><div class=CToolTip id="tt139"><div class=CClass>Provides various perimeter functions to be used in a style as the value of mxConstants.STYLE_PERIMETER.</div></div><div class=CToolTip id="tt140"><div class=CClass>Singleton class that acts as a global converter from string to object values in a style. </div></div><div class=CToolTip id="tt141"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isOrthogonal(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.</div></div><div class=CToolTip id="tt142"><div class=CClass>Maps from keys to base64 encoded images or file locations. </div></div><div class=CToolTip id="tt143"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadImage(</td><td class=PParameter nowrap>$url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Loads an image from the local filesystem, a data URI or any other URL.</div></div><div class=CToolTip id="tt144"><div class=CClass>Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/util/mxEvent-php.html b/docs/php-api/files/util/mxEvent-php.html
    new file mode 100644
    index 000000000..d6bdfa6c2
    --- /dev/null
    +++ b/docs/php-api/files/util/mxEvent-php.html
    @@ -0,0 +1,47 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxEvent</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxEvent"></a>mxEvent</h1><div class=CBody><p>Defines global constants.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxEvent" >mxEvent</a></td><td class=SDescription>Defines global constants.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxEvent.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxEvent.GRAPH_MODEL_CHANGED" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">GRAPH_MODEL_CHANGED</a></td><td class=SDescription>Defines the name of the graphModelChanged event.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxEvent.SCALE" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">SCALE</a></td><td class=SDescription>Defines the name of the scale event.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxEvent.TRANSLATE" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">TRANSLATE</a></td><td class=SDescription>Defines the name of the translate event.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxEvent.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEvent.GRAPH_MODEL_CHANGED"></a>GRAPH_MODEL_CHANGED</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $GRAPH_MODEL_CHANGED</td></tr></table></blockquote><p>Defines the name of the graphModelChanged event.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEvent.SCALE"></a>SCALE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SCALE</td></tr></table></blockquote><p>Defines the name of the scale event.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEvent.TRANSLATE"></a>TRANSLATE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TRANSLATE</td></tr></table></blockquote><p>Defines the name of the translate event.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxEvent</div></div><div class=MEntry><div class=MFile><a href="mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([3, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $GRAPH_MODEL_CHANGED</td></tr></table></blockquote>Defines the name of the graphModelChanged event.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SCALE</td></tr></table></blockquote>Defines the name of the scale event.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TRANSLATE</td></tr></table></blockquote>Defines the name of the translate event.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/util/mxEventObject-php.html b/docs/php-api/files/util/mxEventObject-php.html
    new file mode 100644
    index 000000000..0bf044631
    --- /dev/null
    +++ b/docs/php-api/files/util/mxEventObject-php.html
    @@ -0,0 +1,61 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxEventObject</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxEventObject"></a>mxEventObject</h1><div class=CBody><p>Base class for all events.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxEventObject" >mxEventObject</a></td><td class=SDescription>Base class for all events.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxEventObject.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxEventObject.name" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">name</a></td><td class=SDescription>Holds the name of the event.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxEventObject.properties" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">properties</a></td><td class=SDescription>Holds the event properties in an associative array that maps from string (key) to object (value).</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxEventObject.consumed" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">consumed</a></td><td class=SDescription>Holds the consumed state of the event. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxEventObject.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxEventObject.mxEventObject" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mxEventObject</a></td><td class=SDescription>Constructs a new event for the given name and properties. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxEventObject.getName" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">getName</a></td><td class=SDescription>Returns <a href="#mxEventObject.name" class=LVariable id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1')">name</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxEventObject.getProperties" id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">getProperties</a></td><td class=SDescription>Returns <a href="#mxEventObject.properties" class=LVariable id=link8 onMouseOver="ShowTip(event, 'tt2', 'link8')" onMouseOut="HideTip('tt2')">properties</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxEventObject.getProperty" id=link9 onMouseOver="ShowTip(event, 'tt7', 'link9')" onMouseOut="HideTip('tt7')">getProperty</a></td><td class=SDescription>Returns the property value for the given key.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxEventObject.isConsumed" id=link10 onMouseOver="ShowTip(event, 'tt8', 'link10')" onMouseOut="HideTip('tt8')">isConsumed</a></td><td class=SDescription>Returns true if the event has been consumed.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxEventObject.consume" id=link11 onMouseOver="ShowTip(event, 'tt9', 'link11')" onMouseOut="HideTip('tt9')">consume</a></td><td class=SDescription>Consumes the event.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.name"></a>name</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $name</td></tr></table></blockquote><p>Holds the name of the event.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.properties"></a>properties</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $properties</td></tr></table></blockquote><p>Holds the event properties in an associative array that maps from string (key) to object (value).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.consumed"></a>consumed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $consumed</td></tr></table></blockquote><p>Holds the consumed state of the event.&nbsp; Default is false.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.mxEventObject"></a>mxEventObject</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxEventObject(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new event for the given name and properties.&nbsp; The optional properties are specified using a sequence of keys and values, eg. new mxEventObject($name, $key1, $value1, $key2, $value2, .., $keyN, $valueN)</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.getName"></a>getName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getName()</td></tr></table></blockquote><p>Returns <a href="#mxEventObject.name" class=LVariable id=link12 onMouseOver="ShowTip(event, 'tt1', 'link12')" onMouseOut="HideTip('tt1')">name</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.getProperties"></a>getProperties</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getProperties()</td></tr></table></blockquote><p>Returns <a href="#mxEventObject.properties" class=LVariable id=link13 onMouseOver="ShowTip(event, 'tt2', 'link13')" onMouseOut="HideTip('tt2')">properties</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.getProperty"></a>getProperty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getProperty(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the property value for the given key.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.isConsumed"></a>isConsumed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isConsumed()</td></tr></table></blockquote><p>Returns true if the event has been consumed.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxEventObject.consume"></a>consume</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function consume()</td></tr></table></blockquote><p>Consumes the event.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxEventObject</div></div><div class=MEntry><div class=MFile><a href="mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([3, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $name</td></tr></table></blockquote>Holds the name of the event.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $properties</td></tr></table></blockquote>Holds the event properties in an associative array that maps from string (key) to object (value).</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $consumed</td></tr></table></blockquote>Holds the consumed state of the event. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxEventObject(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new event for the given name and properties. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getName()</td></tr></table></blockquote>Returns name.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getProperties()</td></tr></table></blockquote>Returns properties.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getProperty(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the property value for the given key.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isConsumed()</td></tr></table></blockquote>Returns true if the event has been consumed.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function consume()</td></tr></table></blockquote>Consumes the event.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/util/mxEventSource-php.html b/docs/php-api/files/util/mxEventSource-php.html
    new file mode 100644
    index 000000000..1510f84d9
    --- /dev/null
    +++ b/docs/php-api/files/util/mxEventSource-php.html
    @@ -0,0 +1,49 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxEventSource</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxEventSource"></a>mxEventSource</h1><div class=CBody><p>Base class for all event sources.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxEventSource" >mxEventSource</a></td><td class=SDescription>Base class for all event sources.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxEventSource.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxEventSource.eventListeners" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">eventListeners</a></td><td class=SDescription>Holds the registered listeners.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxEventSource.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxEventSource.addListener" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">addListener</a></td><td class=SDescription>Adds a listener for the given event name. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxEventSource.fireEvent" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">fireEvent</a></td><td class=SDescription>Fires the event for the specified name.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxEventSource.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEventSource.eventListeners"></a>eventListeners</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $eventListeners</td></tr></table></blockquote><p>Holds the registered listeners.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxEventSource.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxEventSource.addListener"></a>addListener</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function addListener(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$listener</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds a listener for the given event name.&nbsp; Note that the method of the listener object must have the same name as the event it&rsquo;s being added for.&nbsp; This is different from other language implementations of this class.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxEventSource.fireEvent"></a>fireEvent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function fireEvent(</td><td class=PParameter nowrap>$event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Fires the event for the specified name.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxEventSource</div></div><div class=MEntry><div class=MFile><a href="mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([3, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $eventListeners</td></tr></table></blockquote>Holds the registered listeners.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function addListener(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$listener</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a listener for the given event name. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function fireEvent(</td><td class=PParameter nowrap>$event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Fires the event for the specified name.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/util/mxImageBundle-php.html b/docs/php-api/files/util/mxImageBundle-php.html
    new file mode 100644
    index 000000000..b7caff282
    --- /dev/null
    +++ b/docs/php-api/files/util/mxImageBundle-php.html
    @@ -0,0 +1,67 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxImageBundle</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxImageBundle"></a>mxImageBundle</h1><div class=CBody><p>Maps from keys to base64 encoded images or file locations.&nbsp; All values must be URLs or use the format data:image/format followed by a comma and the base64 encoded image data, eg.&nbsp; &ldquo;data:image/gif,XYZ&rdquo;, where XYZ is the base64 encoded image data.</p><blockquote><pre class="prettyprint">$bundle = new mxImageBundle();
    +$bundle-&gt;putImage(&quot;myImage&quot;, &quot;data:image/gif,R0lGODlhEAAQAMIGAAAAAICAAICAgP&quot;.
    +  &quot;//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAAEA&quot;.
    +  &quot;AQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hilaSS&quot;.
    +  &quot;ASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs=&quot;);
    +$graph-&gt;addImageBundle($bundle);
    +(end);
    +
    +The image can then be referenced in any cell style using image=myImage.
    +
    +To convert an image at a given URL to a base64 encoded String, the following
    +code can be used:
    +
    +(code)
    +echo &quot;base64=&quot;.base64_encode(file_get_contents($url));</pre></blockquote><p>The value is decoded in <a href="mxUtils-php.html#mxUtils.loadImage" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">mxUtils.loadImage</a>.&nbsp; The keys for images are resolved and the short format above is converted to a data URI in <a href="../view/mxGraph-php.html#mxGraph.postProcessCellStyle" class=LFunction id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">mxGraph.postProcessCellStyle</a>.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxImageBundle" >mxImageBundle</a></td><td class=SDescription>Maps from keys to base64 encoded images or file locations. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxImageBundle.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxImageBundle.images" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">images</a></td><td class=SDescription>Maps from keys to images.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxImageBundle.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxImageBundle.mxImageBundle" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">mxImageBundle</a></td><td class=SDescription>Constructs a new image bundle.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxImageBundle.getImages" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">getImages</a></td><td class=SDescription>Returns the <a href="#mxImageBundle.images" class=LVariable id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">images</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxImageBundle.putImage" id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">putImage</a></td><td class=SDescription>Adds the specified entry to the map.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxImageBundle.getImage" id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">getImage</a></td><td class=SDescription>Returns the value for the given key.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxImageBundle.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxImageBundle.images"></a>images</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $images</td></tr></table></blockquote><p>Maps from keys to images.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxImageBundle.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxImageBundle.mxImageBundle"></a>mxImageBundle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxImageBundle()</td></tr></table></blockquote><p>Constructs a new image bundle.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxImageBundle.getImages"></a>getImages</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImages()</td></tr></table></blockquote><p>Returns the <a href="#mxImageBundle.images" class=LVariable id=link9 onMouseOver="ShowTip(event, 'tt1', 'link9')" onMouseOut="HideTip('tt1')">images</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxImageBundle.putImage"></a>putImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putImage(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds the specified entry to the map.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxImageBundle.getImage"></a>getImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImage(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the value for the given key.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxImageBundle</div></div><div class=MEntry><div class=MFile><a href="mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([3, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $images</td></tr></table></blockquote>Maps from keys to images.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxImageBundle()</td></tr></table></blockquote>Constructs a new image bundle.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImages()</td></tr></table></blockquote>Returns the images.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putImage(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified entry to the map.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImage(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for the given key.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadImage(</td><td class=PParameter nowrap>$url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Loads an image from the local filesystem, a data URI or any other URL.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function postProcessCellStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/util/mxLog-php.html b/docs/php-api/files/util/mxLog-php.html
    new file mode 100644
    index 000000000..eb9288461
    --- /dev/null
    +++ b/docs/php-api/files/util/mxLog-php.html
    @@ -0,0 +1,83 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxLog</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxLog"></a>mxLog</h1><div class=CBody><p>Logging facility.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxLog" >mxLog</a></td><td class=SDescription>Logging facility.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxLog.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxLog.level_fine" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">level_fine</a></td><td class=SDescription>Specifies the fine logging level.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxLog.level_debug" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">level_debug</a></td><td class=SDescription>Specifies the debug logging level.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxLog.level_info" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">level_info</a></td><td class=SDescription>Specifies the info logging level.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxLog.level_warn" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">level_warn</a></td><td class=SDescription>Specifies the warn logging level.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxLog.level_error" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">level_error</a></td><td class=SDescription>Specifies the error logging level.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxLog.current" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">current</a></td><td class=SDescription>Default is true.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxLog.tab" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">tab</a></td><td class=SDescription>Default is true.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxLog.logfiles" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">logfiles</a></td><td class=SDescription>Holds the array of logfiles.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxLog.printLog" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">printLog</a></td><td class=SDescription>Specifies if the log should be printed out.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxLog.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxLog.addLogfile" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">addLogfile</a></td><td class=SDescription>Adds a file for logging.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxLog.enter" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">enter</a></td><td class=SDescription>Logs a method entry.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxLog.leave" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">leave</a></td><td class=SDescription>Logs a method exit.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxLog.fine" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">fine</a></td><td class=SDescription>Logs a fine trace.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxLog.debug" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">debug</a></td><td class=SDescription>Logs a debug trace.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxLog.info" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">info</a></td><td class=SDescription>Logs an info trace.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxLog.warn" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">warn</a></td><td class=SDescription>Logs a warn trace.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxLog.error" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">error</a></td><td class=SDescription>Logs an error trace.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxLog.writeln" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">writeln</a></td><td class=SDescription>Writes a line with a linefeed to the log.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxLog.write" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">write</a></td><td class=SDescription>Writes a line to the log.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxLog.close" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">close</a></td><td class=SDescription>Closes all open logfiles.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxLog.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxLog.level_fine"></a>level_fine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_fine</td></tr></table></blockquote><p>Specifies the fine logging level.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxLog.level_debug"></a>level_debug</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_debug</td></tr></table></blockquote><p>Specifies the debug logging level.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxLog.level_info"></a>level_info</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_info</td></tr></table></blockquote><p>Specifies the info logging level.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxLog.level_warn"></a>level_warn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_warn</td></tr></table></blockquote><p>Specifies the warn logging level.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxLog.level_error"></a>level_error</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_error</td></tr></table></blockquote><p>Specifies the error logging level.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxLog.current"></a>current</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $current</td></tr></table></blockquote><p>Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxLog.tab"></a>tab</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $tab</td></tr></table></blockquote><p>Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxLog.logfiles"></a>logfiles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $logfiles</td></tr></table></blockquote><p>Holds the array of logfiles.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxLog.printLog"></a>printLog</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $printLog</td></tr></table></blockquote><p>Specifies if the log should be printed out.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxLog.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.addLogfile"></a>addLogfile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addLogfile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds a file for logging.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.enter"></a>enter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function enter(</td><td class=PParameter nowrap>$method,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$text</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Logs a method entry.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.leave"></a>leave</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function leave(</td><td class=PParameter nowrap>$text</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Logs a method exit.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.fine"></a>fine</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function fine(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Logs a fine trace.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.debug"></a>debug</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function debug(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Logs a debug trace.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.info"></a>info</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function info(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Logs an info trace.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.warn"></a>warn</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function warn(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Logs a warn trace.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.error"></a>error</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function error(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Logs an error trace.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.writeln"></a>writeln</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function writeln(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Writes a line with a linefeed to the log.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.write"></a>write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function write(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Writes a line to the log.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxLog.close"></a>close</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function close()</td></tr></table></blockquote><p>Closes all open logfiles.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxLog</div></div><div class=MEntry><div class=MFile><a href="mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([3, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_fine</td></tr></table></blockquote>Specifies the fine logging level.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_debug</td></tr></table></blockquote>Specifies the debug logging level.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_info</td></tr></table></blockquote>Specifies the info logging level.</div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_warn</td></tr></table></blockquote>Specifies the warn logging level.</div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_error</td></tr></table></blockquote>Specifies the error logging level.</div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $current</td></tr></table></blockquote>Default is true.</div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $tab</td></tr></table></blockquote>Default is true.</div></div><div class=CToolTip id="tt8"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $logfiles</td></tr></table></blockquote>Holds the array of logfiles.</div></div><div class=CToolTip id="tt9"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $printLog</td></tr></table></blockquote>Specifies if the log should be printed out.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addLogfile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a file for logging.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function enter(</td><td class=PParameter nowrap>$method,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$text</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a method entry.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function leave(</td><td class=PParameter nowrap>$text</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a method exit.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function fine(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a fine trace.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function debug(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a debug trace.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function info(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs an info trace.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function warn(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a warn trace.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function error(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs an error trace.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function writeln(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes a line with a linefeed to the log.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function write(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes a line to the log.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function close()</td></tr></table></blockquote>Closes all open logfiles.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/util/mxPoint-php.html b/docs/php-api/files/util/mxPoint-php.html
    new file mode 100644
    index 000000000..cf87b50e3
    --- /dev/null
    +++ b/docs/php-api/files/util/mxPoint-php.html
    @@ -0,0 +1,53 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxPoint</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxPoint"></a>mxPoint</h1><div class=CBody><p>Implements a 2-dimensional point with double precision coordinates.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxPoint" >mxPoint</a></td><td class=SDescription>Implements a 2-dimensional point with double precision coordinates.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxPoint.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxPoint.x" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">x</a></td><td class=SDescription>Holds the x-coordinate of the point. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxPoint.y" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">y</a></td><td class=SDescription>Holds the y-coordinate of the point. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxPoint.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxPoint.mxPoint" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">mxPoint</a></td><td class=SDescription>Constructs a new point for the optional x and y coordinates. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxPoint.equals" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">equals</a></td><td class=SDescription>Returns true if the given object equals this point.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxPoint.copy" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">copy</a></td><td class=SDescription>Returns a copy of this <a href="#mxPoint.mxPoint" class=LFunction id=link6 onMouseOver="ShowTip(event, 'tt3', 'link6')" onMouseOut="HideTip('tt3')">mxPoint</a>.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxPoint.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxPoint.x"></a>x</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $x</td></tr></table></blockquote><p>Holds the x-coordinate of the point.&nbsp; Default is 0.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxPoint.y"></a>y</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $y</td></tr></table></blockquote><p>Holds the y-coordinate of the point.&nbsp; Default is 0.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxPoint.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxPoint.mxPoint"></a>mxPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxPoint(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new point for the optional x and y coordinates.&nbsp; If no coordinates are given, then the default values for <a href="#mxPoint.x" class=LVariable id=link7 onMouseOver="ShowTip(event, 'tt1', 'link7')" onMouseOut="HideTip('tt1')">x</a> and <a href="#mxPoint.y" class=LVariable id=link8 onMouseOver="ShowTip(event, 'tt2', 'link8')" onMouseOut="HideTip('tt2')">y</a> are used.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxPoint.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function equals(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given object equals this point.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxPoint.copy"></a>copy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote><p>Returns a copy of this <a href="#mxPoint.mxPoint" class=LFunction id=link9 onMouseOver="ShowTip(event, 'tt3', 'link9')" onMouseOut="HideTip('tt3')">mxPoint</a>.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxPoint</div></div><div class=MEntry><div class=MFile><a href="mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([3, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $x</td></tr></table></blockquote>Holds the x-coordinate of the point. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $y</td></tr></table></blockquote>Holds the y-coordinate of the point. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxPoint(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new point for the optional x and y coordinates. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function equals(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given object equals this point.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this mxPoint.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/util/mxRectangle-php.html b/docs/php-api/files/util/mxRectangle-php.html
    new file mode 100644
    index 000000000..fad5ec6c5
    --- /dev/null
    +++ b/docs/php-api/files/util/mxRectangle-php.html
    @@ -0,0 +1,63 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxRectangle</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxRectangle"></a>mxRectangle</h1><div class=CBody><p>Implements a 2-dimensional rectangle with double precision coordinates.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxRectangle" >mxRectangle</a></td><td class=SDescription>Implements a 2-dimensional rectangle with double precision coordinates.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxRectangle.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxRectangle.width" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">width</a></td><td class=SDescription>Holds the width of the rectangle. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxRectangle.height" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">height</a></td><td class=SDescription>Holds the height of the rectangle. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxRectangle.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxRectangle.mxRectangle" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">mxRectangle</a></td><td class=SDescription>Constructs a new rectangle for the optional parameters. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxRectangle.setRect" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">setRect</a></td><td class=SDescription>Sets this rectangle to the specified values.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxRectangle.getCenterX" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">getCenterX</a></td><td class=SDescription>Returns the x-coordinate of the center point.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxRectangle.getCenterY" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">getCenterY</a></td><td class=SDescription>Returns the y-coordinate of the center point.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxRectangle.add" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">add</a></td><td class=SDescription>Adds the given rectangle to this rectangle.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxRectangle.grow" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">grow</a></td><td class=SDescription>Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxRectangle.equals" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">equals</a></td><td class=SDescription>Returns true if the given object equals this rectangle.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxRectangle.copy" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">copy</a></td><td class=SDescription>Returns a copy of this <a href="#mxRectangle.mxRectangle" class=LFunction id=link11 onMouseOver="ShowTip(event, 'tt3', 'link11')" onMouseOut="HideTip('tt3')">mxRectangle</a>.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.width"></a>width</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $width</td></tr></table></blockquote><p>Holds the width of the rectangle.&nbsp; Default is 0.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.height"></a>height</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $height</td></tr></table></blockquote><p>Holds the height of the rectangle.&nbsp; Default is 0.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.mxRectangle"></a>mxRectangle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxRectangle(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new rectangle for the optional parameters.&nbsp; If no parameters are given then the respective default values are used.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.setRect"></a>setRect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setRect(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$width,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets this rectangle to the specified values.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.getCenterX"></a>getCenterX</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCenterX()</td></tr></table></blockquote><p>Returns the x-coordinate of the center point.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.getCenterY"></a>getCenterY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCenterY()</td></tr></table></blockquote><p>Returns the y-coordinate of the center point.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.add"></a>add</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function add(</td><td class=PParameter nowrap>$rect</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds the given rectangle to this rectangle.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.grow"></a>grow</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function grow(</td><td class=PParameter nowrap>$amount</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.equals"></a>equals</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function equals(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given object equals this rectangle.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxRectangle.copy"></a>copy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote><p>Returns a copy of this <a href="#mxRectangle.mxRectangle" class=LFunction id=link12 onMouseOver="ShowTip(event, 'tt3', 'link12')" onMouseOut="HideTip('tt3')">mxRectangle</a>.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxRectangle</div></div><div class=MEntry><div class=MFile><a href="mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([3, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $width</td></tr></table></blockquote>Holds the width of the rectangle. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $height</td></tr></table></blockquote>Holds the height of the rectangle. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxRectangle(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new rectangle for the optional parameters. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setRect(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$width,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets this rectangle to the specified values.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCenterX()</td></tr></table></blockquote>Returns the x-coordinate of the center point.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCenterY()</td></tr></table></blockquote>Returns the y-coordinate of the center point.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function add(</td><td class=PParameter nowrap>$rect</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the given rectangle to this rectangle.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function grow(</td><td class=PParameter nowrap>$amount</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function equals(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given object equals this rectangle.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this mxRectangle.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/util/mxUtils-php.html b/docs/php-api/files/util/mxUtils-php.html
    new file mode 100644
    index 000000000..e2cf247f4
    --- /dev/null
    +++ b/docs/php-api/files/util/mxUtils-php.html
    @@ -0,0 +1,121 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxUtils</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxUtils"></a>mxUtils</h1><div class=CBody><p>Helper methods.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxUtils" >mxUtils</a></td><td class=SDescription>Helper methods.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxUtils.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.getLabelSize" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">getLabelSize</a></td><td class=SDescription>Returns the size of the given label.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.getLabelPaintBounds" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">getLabelPaintBounds</a></td><td class=SDescription>Returns the paint bounds for the given label.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.getScaledLabelBounds" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">getScaledLabelBounds</a></td><td class=SDescription>Returns the bounds for a label for the given location and size, taking into account the alignment and spacing in the specified style, as well as the width and height of the rectangle that contains the label. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.getSizeForString" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">getSizeForString</a></td><td class=SDescription>Returns an <a href="mxRectangle-php.html#mxRectangle" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">mxRectangle</a> with the size (width and height in pixels) of the given string. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.flipImage" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">flipImage</a></td><td class=SDescription>Flips the given image horizontally and/or vertically and returns a new image instance.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.toRadians" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">toRadians</a></td><td class=SDescription>Converts the given degree to radians.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.getBoundingBox" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">getBoundingBox</a></td><td class=SDescription>Returns the bounding box for the rotated rectangle.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.getRotatedPoint" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">getRotatedPoint</a></td><td class=SDescription>Rotates the given point by the given cos and sin.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.translatePoints" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">translatePoints</a></td><td class=SDescription>Creates a new list of new points obtained by translating the points in the given list by the given vector. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.contains" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">contains</a></td><td class=SDescription>Returns true if the specified point (x, y) is contained in the given rectangle.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.intersection" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">intersection</a></td><td class=SDescription>Returns the intersection of two lines as an <a href="mxPoint-php.html#mxPoint" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">mxPoint</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.encodeImage" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">encodeImage</a></td><td class=SDescription>Encodes the given image using the GD image encoding routines. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.getStylename" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">getStylename</a></td><td class=SDescription>Returns the stylename in a style of the form [stylename;|key=value;] or an empty string if the given style does not contain a stylename.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.getStylenames" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">getStylenames</a></td><td class=SDescription>Returns the stylenames in a style of the form [stylename;|key=value;] or an empty array if the given style does not contain any stylenames.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.indexOfStylename" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">indexOfStylename</a></td><td class=SDescription>Returns the index of the given stylename in the given style. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.addStylename" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">addStylename</a></td><td class=SDescription>Adds the specified stylename to the given style if it does not already contain the stylename.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.removeStylename" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">removeStylename</a></td><td class=SDescription>Removes all occurrences of the specified stylename in the given style and returns the updated style. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.removeAllStylenames" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">removeAllStylenames</a></td><td class=SDescription>Removes all stylenames from the given style and returns the updated style.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.setCellStyles" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">setCellStyles</a></td><td class=SDescription>Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.setStyle" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">setStyle</a></td><td class=SDescription>Adds or removes the given key, value pair to the style and returns the new style. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.setCellStyleFlags" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">setCellStyleFlags</a></td><td class=SDescription>Sets or toggles the flag bit for the given key in the cell&rsquo;s styles. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.setStyleFlag" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">setStyleFlag</a></td><td class=SDescription>Sets or removes the given key from the specified style and returns the new style. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.getValue" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">getValue</a></td><td class=SDescription>Returns the value for key in dictionary or the given default value if no value is defined for the key.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.getNumber" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">getNumber</a></td><td class=SDescription>Returns the value for key in dictionary or 0 if no value is defined for the key.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.indexOf" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">indexOf</a></td><td class=SDescription>Returns the index of obj in array or -1 if the array does not contains the given object.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.readFile" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">readFile</a></td><td class=SDescription>Reads the given filename into a string. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.isNode" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">isNode</a></td><td class=SDescription>Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.loadImage" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">loadImage</a></td><td class=SDescription>Loads an image from the local filesystem, a data URI or any other URL.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.createXmlDocument" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">createXmlDocument</a></td><td class=SDescription>Returns a new, empty XML document.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.loadXmlDocument" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">loadXmlDocument</a></td><td class=SDescription>Returns a new DOM document for the given URI.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.parseXml" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">parseXml</a></td><td class=SDescription>Returns a new DOM document for the given XML string.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.evaluate" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')">evaluate</a></td><td class=SDescription>Evaluates an expression to a class member. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.findNode" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')">findNode</a></td><td class=SDescription>Returns the first node where attr equals value. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.selectSingleNode" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')">selectSingleNode</a></td><td class=SDescription>Evaluates the XPath expression and returns the first node of the result.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.getTrueTypeFont" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')">getTrueTypeFont</a></td><td class=SDescription>Returns the truetype font to be used to draw the text with the given style.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.getTrueTypeFontSize" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')">getTrueTypeFontSize</a></td><td class=SDescription>Returns the truetype font size to be used to draw the text with the given style. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxUtils.getFixedFontSize" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')">getFixedFontSize</a></td><td class=SDescription>Returns the fixed font size for GD (1 t0 5) for the given font properties</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxUtils.stackTrace" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')">stackTrace</a></td><td class=SDescription>Prints a simple stack trace in the error log.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxUtils.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getLabelSize"></a>getLabelSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getLabelSize(</td><td class=PParameter nowrap>$label,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the size of the given label.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getLabelPaintBounds"></a>getLabelPaintBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getLabelPaintBounds(</td><td class=PParameter nowrap>$label,</td></tr><tr><td></td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$isHtml,</td></tr><tr><td></td><td class=PParameter nowrap>$offset,</td></tr><tr><td></td><td class=PParameter nowrap>$vertexBounds,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the paint bounds for the given label.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getScaledLabelBounds"></a>getScaledLabelBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getScaledLabelBounds(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$size,</td></tr><tr><td></td><td class=PParameter nowrap>$outerWidth,</td></tr><tr><td></td><td class=PParameter nowrap>$outerHeight,</td></tr><tr><td></td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the bounds for a label for the given location and size, taking into account the alignment and spacing in the specified style, as well as the width and height of the rectangle that contains the label.&nbsp; (For edge labels this width and height is 0.)&nbsp; The scale is used to scale the given size and the spacings in the specified style.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getSizeForString"></a>getSizeForString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getSizeForString(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontSize</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an <a href="mxRectangle-php.html#mxRectangle" class=LClass id=link41 onMouseOver="ShowTip(event, 'tt5', 'link41')" onMouseOut="HideTip('tt5')">mxRectangle</a> with the size (width and height in pixels) of the given string.&nbsp; The string may contain HTML markup.&nbsp; Newlines should be converted to &lt;br&gt; before calling this method.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>text</td><td class=CDLDescription>String whose size should be returned.</td></tr><tr><td class=CDLEntry>fontSize</td><td class=CDLDescription>Integer that specifies the font size in pixels.&nbsp; Default is <a href="mxConstants-php.html#mxConstants.DEFAULT_FONTSIZE" class=LVariable id=link42 onMouseOver="ShowTip(event, 'tt41', 'link42')" onMouseOut="HideTip('tt41')">mxConstants.DEFAULT_FONTSIZE</a>.</td></tr><tr><td class=CDLEntry>fontFamily</td><td class=CDLDescription>String that specifies the name of the font famil.y Default is <a href="mxConstants-php.html#mxConstants.DEFAULT_FONTFAMILY" class=LVariable id=link43 onMouseOver="ShowTip(event, 'tt42', 'link43')" onMouseOut="HideTip('tt42')">mxConstants.DEFAULT_FONTFAMILY</a>.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.flipImage"></a>flipImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function flipImage(</td><td class=PParameter nowrap>$img,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Flips the given image horizontally and/or vertically and returns a new image instance.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.toRadians"></a>toRadians</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function toRadians(</td><td class=PParameter nowrap>$deg</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Converts the given degree to radians.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getBoundingBox"></a>getBoundingBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getBoundingBox(</td><td class=PParameter nowrap>$rect,</td></tr><tr><td></td><td class=PParameter nowrap>$rotation</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the bounding box for the rotated rectangle.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getRotatedPoint"></a>getRotatedPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getRotatedPoint(</td><td class=PParameter nowrap>$pt,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cos,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$sin,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cx</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Rotates the given point by the given cos and sin.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.translatePoints"></a>translatePoints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function translatePoints(</td><td class=PParameter nowrap>$pts,</td></tr><tr><td></td><td class=PParameter nowrap>$dx,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a new list of new points obtained by translating the points in the given list by the given vector.&nbsp; Elements that are not mxPoints are added to the result as-is.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.contains"></a>contains</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function contains(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the specified point (x, y) is contained in the given rectangle.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription><a href="mxRectangle-php.html#mxRectangle" class=LClass id=link44 onMouseOver="ShowTip(event, 'tt5', 'link44')" onMouseOut="HideTip('tt5')">mxRectangle</a> that represents the area.</td></tr><tr><td class=CDLEntry>x</td><td class=CDLDescription>X-coordinate of the point.</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>Y-coordinate of the point.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.intersection"></a>intersection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function intersection(</td><td class=PParameter nowrap>$x0,</td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td></tr><tr><td></td><td class=PParameter nowrap>$x2,</td></tr><tr><td></td><td class=PParameter nowrap>$y2,</td></tr><tr><td></td><td class=PParameter nowrap>$x3,</td></tr><tr><td></td><td class=PParameter nowrap>$y3</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the intersection of two lines as an <a href="mxPoint-php.html#mxPoint" class=LClass id=link45 onMouseOver="ShowTip(event, 'tt13', 'link45')" onMouseOut="HideTip('tt13')">mxPoint</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x0</td><td class=CDLDescription>X-coordinate of the first line&rsquo;s startpoint.</td></tr><tr><td class=CDLEntry>y0</td><td class=CDLDescription>X-coordinate of the first line&rsquo;s startpoint.</td></tr><tr><td class=CDLEntry>x1</td><td class=CDLDescription>X-coordinate of the first line&rsquo;s endpoint.</td></tr><tr><td class=CDLEntry>y1</td><td class=CDLDescription>Y-coordinate of the first line&rsquo;s endpoint.</td></tr><tr><td class=CDLEntry>x2</td><td class=CDLDescription>X-coordinate of the second line&rsquo;s startpoint.</td></tr><tr><td class=CDLEntry>y2</td><td class=CDLDescription>Y-coordinate of the second line&rsquo;s startpoint.</td></tr><tr><td class=CDLEntry>x3</td><td class=CDLDescription>X-coordinate of the second line&rsquo;s endpoint.</td></tr><tr><td class=CDLEntry>y3</td><td class=CDLDescription>Y-coordinate of the second line&rsquo;s endpoint.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.encodeImage"></a>encodeImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function encodeImage(</td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$format</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Encodes the given image using the GD image encoding routines.&nbsp; Supported formats are gif, jpg and png (default).</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>image</td><td class=CDLDescription>GD image to be encoded.</td></tr><tr><td class=CDLEntry>format</td><td class=CDLDescription>String that defines the encoding format.&nbsp; Default is png.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getStylename"></a>getStylename</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getStylename(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the stylename in a style of the form [stylename;|key=value;] or an empty string if the given style does not contain a stylename.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>String of the form [stylename;|key=value;].</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getStylenames"></a>getStylenames</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getStylenames(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the stylenames in a style of the form [stylename;|key=value;] or an empty array if the given style does not contain any stylenames.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>String of the form [stylename;|key=value;].</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.indexOfStylename"></a>indexOfStylename</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function indexOfStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the index of the given stylename in the given style.&nbsp; This returns -1 if the given stylename does not occur (as a stylename) in the given style, otherwise it returns the index of the first character.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.addStylename"></a>addStylename</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds the specified stylename to the given style if it does not already contain the stylename.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.removeStylename"></a>removeStylename</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function removeStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes all occurrences of the specified stylename in the given style and returns the updated style.&nbsp; Trailing semicolons are preserved.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.removeAllStylenames"></a>removeAllStylenames</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function removeAllStylenames(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes all stylenames from the given style and returns the updated style.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.setCellStyles"></a>setCellStyles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setCellStyles(</td><td class=PParameter nowrap>$model,</td></tr><tr><td></td><td class=PParameter nowrap>$cells,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>model</td><td class=CDLDescription><a href="../model/mxGraphModel-php.html#mxGraphModel" class=LClass id=link46 onMouseOver="ShowTip(event, 'tt43', 'link46')" onMouseOut="HideTip('tt43')">mxGraphModel</a> to execute the transaction in.</td></tr><tr><td class=CDLEntry>cells</td><td class=CDLDescription>Array of <a href="../model/mxCell-php.html#mxCell" class=LClass id=link47 onMouseOver="ShowTip(event, 'tt44', 'link47')" onMouseOut="HideTip('tt44')">mxCells</a> to be updated.</td></tr><tr><td class=CDLEntry>key</td><td class=CDLDescription>Key of the style to be changed.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>New value for the given key.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.setStyle"></a>setStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setStyle(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds or removes the given key, value pair to the style and returns the new style.&nbsp; If value is null or zero length then the key is removed from the style.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>String of the form stylename[;key=value]</td></tr><tr><td class=CDLEntry>key</td><td class=CDLDescription>Key of the style to be changed.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>New value for the given key.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.setCellStyleFlags"></a>setCellStyleFlags</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setCellStyleFlags(</td><td class=PParameter nowrap>$model,</td></tr><tr><td></td><td class=PParameter nowrap>$cells,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$flag,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets or toggles the flag bit for the given key in the cell&rsquo;s styles.&nbsp; If value is null then the flag is toggled.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">var cells = graph.getSelectionCells();
    +mxUtils.setCellStyleFlags(graph.model,
    +         cells,
    +         mxConstants.STYLE_FONTSTYLE,
    +         mxConstants.FONT_BOLD);</pre></blockquote><p>Toggles the bold font style.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>model</td><td class=CDLDescription><a href="../model/mxGraphModel-php.html#mxGraphModel" class=LClass id=link48 onMouseOver="ShowTip(event, 'tt43', 'link48')" onMouseOut="HideTip('tt43')">mxGraphModel</a> that contains the cells.</td></tr><tr><td class=CDLEntry>cells</td><td class=CDLDescription>Array of <a href="../model/mxCell-php.html#mxCell" class=LClass id=link49 onMouseOver="ShowTip(event, 'tt44', 'link49')" onMouseOut="HideTip('tt44')">mxCells</a> to change the style for.</td></tr><tr><td class=CDLEntry>key</td><td class=CDLDescription>Key of the style to be changed.</td></tr><tr><td class=CDLEntry>flag</td><td class=CDLDescription>Integer for the bit to be changed.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>Optional boolean value for the flag.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.setStyleFlag"></a>setStyleFlag</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setStyleFlag(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$flag,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets or removes the given key from the specified style and returns the new style.&nbsp; If value is null then the flag is toggled.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>style</td><td class=CDLDescription>String of the form stylename[;key=value].</td></tr><tr><td class=CDLEntry>key</td><td class=CDLDescription>Key of the style to be changed.</td></tr><tr><td class=CDLEntry>flag</td><td class=CDLDescription>Integer for the bit to be changed.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>Optional boolean value for the given flag.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getValue"></a>getValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getValue(</td><td class=PParameter nowrap>$dict,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the value for key in dictionary or the given default value if no value is defined for the key.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dict</td><td class=CDLDescription>Dictionary that contains the key, value pairs.</td></tr><tr><td class=CDLEntry>key</td><td class=CDLDescription>Key whose value should be returned.</td></tr><tr><td class=CDLEntry>default</td><td class=CDLDescription>Default value to return if the key is undefined.&nbsp; Default is null.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getNumber"></a>getNumber</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getNumber(</td><td class=PParameter nowrap>$dict,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the value for key in dictionary or 0 if no value is defined for the key.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dict</td><td class=CDLDescription>Dictionary that contains the key, value pairs.</td></tr><tr><td class=CDLEntry>key</td><td class=CDLDescription>Key whose value should be returned.</td></tr><tr><td class=CDLEntry>default</td><td class=CDLDescription>Optional default value to return if no value is defined for the given key.&nbsp; Default is 0.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.indexOf"></a>indexOf</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function indexOf(</td><td class=PParameter nowrap>$array,</td></tr><tr><td></td><td class=PParameter nowrap>$object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the index of obj in array or -1 if the array does not contains the given object.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>array</td><td class=CDLDescription>Array to check for the given obj.</td></tr><tr><td class=CDLEntry>obj</td><td class=CDLDescription>Object to find in the given array.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.readFile"></a>readFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function readFile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Reads the given filename into a string.&nbsp; Shortcut for file_get_contents.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>filename</td><td class=CDLDescription>The name of the file to read.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.isNode"></a>isNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function isNode(</td><td class=PParameter nowrap>$value,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$nodeName</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$attributeName</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$attributeValue</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.</p><p>This implementation assumes that the given value is a DOM node if the nodeName property is not null.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>value</td><td class=CDLDescription>Object that should be examined as a node.</td></tr><tr><td class=CDLEntry>nodeName</td><td class=CDLDescription>String that specifies the node name.</td></tr><tr><td class=CDLEntry>attributeName</td><td class=CDLDescription>Optional attribute name to check.</td></tr><tr><td class=CDLEntry>attributeValue</td><td class=CDLDescription>Optional attribute value to check.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.loadImage"></a>loadImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadImage(</td><td class=PParameter nowrap>$url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Loads an image from the local filesystem, a data URI or any other URL.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.createXmlDocument"></a>createXmlDocument</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function createXmlDocument()</td></tr></table></blockquote><p>Returns a new, empty XML document.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.loadXmlDocument"></a>loadXmlDocument</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadXmlDocument(</td><td class=PParameter nowrap>$uri</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a new DOM document for the given URI.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.parseXml"></a>parseXml</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function parseXml(</td><td class=PParameter nowrap>$xml</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a new DOM document for the given XML string.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.evaluate"></a>evaluate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function evaluate(</td><td class=PParameter nowrap>$expression</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Evaluates an expression to a class member.&nbsp; The range of supported expressions is limited to static class members with a dot-notation, such as mxEdgeStyle.ElbowConnector.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.findNode"></a>findNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function findNode(</td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the first node where attr equals value.&nbsp; This implementation does not use XPath.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.selectSingleNode"></a>selectSingleNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function selectSingleNode(</td><td class=PParameter nowrap>$doc,</td></tr><tr><td></td><td class=PParameter nowrap>$expr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Evaluates the XPath expression and returns the first node of the result.</p><p>Will find the first node with a label attribute that equals Hello, World!</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>doc</td><td class=CDLDescription>XML document that contains all nodes.</td></tr><tr><td class=CDLEntry>xpath</td><td class=CDLDescription>String that represents the XPath expression.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getTrueTypeFont"></a>getTrueTypeFont</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getTrueTypeFont(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the truetype font to be used to draw the text with the given style.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getTrueTypeFontSize"></a>getTrueTypeFontSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getTrueTypeFontSize(</td><td class=PParameter nowrap>$size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the truetype font size to be used to draw the text with the given style.&nbsp; This returns the fontSize in the style of the default fontsize multiplied with &lt;ttfSizeFactor&gt;.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.getFixedFontSize"></a>getFixedFontSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getFixedFontSize(</td><td class=PParameter nowrap>$fontSize,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the fixed font size for GD (1 t0 5) for the given font properties</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxUtils.stackTrace"></a>stackTrace</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function stackTrace()</td></tr></table></blockquote><p>Prints a simple stack trace in the error log.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxUtils</div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([3, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getLabelSize(</td><td class=PParameter nowrap>$label,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the size of the given label.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getLabelPaintBounds(</td><td class=PParameter nowrap>$label,</td></tr><tr><td></td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$isHtml,</td></tr><tr><td></td><td class=PParameter nowrap>$offset,</td></tr><tr><td></td><td class=PParameter nowrap>$vertexBounds,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the paint bounds for the given label.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getScaledLabelBounds(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$size,</td></tr><tr><td></td><td class=PParameter nowrap>$outerWidth,</td></tr><tr><td></td><td class=PParameter nowrap>$outerHeight,</td></tr><tr><td></td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounds for a label for the given location and size, taking into account the alignment and spacing in the specified style, as well as the width and height of the rectangle that contains the label. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getSizeForString(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontSize</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxRectangle with the size (width and height in pixels) of the given string. </div></div><div class=CToolTip id="tt5"><div class=CClass>Implements a 2-dimensional rectangle with double precision coordinates.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function flipImage(</td><td class=PParameter nowrap>$img,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Flips the given image horizontally and/or vertically and returns a new image instance.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function toRadians(</td><td class=PParameter nowrap>$deg</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts the given degree to radians.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getBoundingBox(</td><td class=PParameter nowrap>$rect,</td></tr><tr><td></td><td class=PParameter nowrap>$rotation</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding box for the rotated rectangle.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getRotatedPoint(</td><td class=PParameter nowrap>$pt,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cos,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$sin,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cx</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Rotates the given point by the given cos and sin.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function translatePoints(</td><td class=PParameter nowrap>$pts,</td></tr><tr><td></td><td class=PParameter nowrap>$dx,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new list of new points obtained by translating the points in the given list by the given vector. </div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function contains(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the specified point (x, y) is contained in the given rectangle.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function intersection(</td><td class=PParameter nowrap>$x0,</td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td></tr><tr><td></td><td class=PParameter nowrap>$x2,</td></tr><tr><td></td><td class=PParameter nowrap>$y2,</td></tr><tr><td></td><td class=PParameter nowrap>$x3,</td></tr><tr><td></td><td class=PParameter nowrap>$y3</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the intersection of two lines as an mxPoint.</div></div><div class=CToolTip id="tt13"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function encodeImage(</td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$format</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the given image using the GD image encoding routines. </div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getStylename(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the stylename in a style of the form [stylename;|key=value;] or an empty string if the given style does not contain a stylename.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getStylenames(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the stylenames in a style of the form [stylename;|key=value;] or an empty array if the given style does not contain any stylenames.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function indexOfStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of the given stylename in the given style. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified stylename to the given style if it does not already contain the stylename.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function removeStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes all occurrences of the specified stylename in the given style and returns the updated style. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function removeAllStylenames(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes all stylenames from the given style and returns the updated style.</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setCellStyles(</td><td class=PParameter nowrap>$model,</td></tr><tr><td></td><td class=PParameter nowrap>$cells,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setStyle(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds or removes the given key, value pair to the style and returns the new style. </div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setCellStyleFlags(</td><td class=PParameter nowrap>$model,</td></tr><tr><td></td><td class=PParameter nowrap>$cells,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$flag,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets or toggles the flag bit for the given key in the cell&rsquo;s styles. </div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setStyleFlag(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$flag,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets or removes the given key from the specified style and returns the new style. </div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getValue(</td><td class=PParameter nowrap>$dict,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for key in dictionary or the given default value if no value is defined for the key.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getNumber(</td><td class=PParameter nowrap>$dict,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for key in dictionary or 0 if no value is defined for the key.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function indexOf(</td><td class=PParameter nowrap>$array,</td></tr><tr><td></td><td class=PParameter nowrap>$object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of obj in array or -1 if the array does not contains the given object.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function readFile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the given filename into a string. </div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function isNode(</td><td class=PParameter nowrap>$value,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$nodeName</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$attributeName</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$attributeValue</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadImage(</td><td class=PParameter nowrap>$url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Loads an image from the local filesystem, a data URI or any other URL.</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function createXmlDocument()</td></tr></table></blockquote>Returns a new, empty XML document.</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadXmlDocument(</td><td class=PParameter nowrap>$uri</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a new DOM document for the given URI.</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function parseXml(</td><td class=PParameter nowrap>$xml</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a new DOM document for the given XML string.</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function evaluate(</td><td class=PParameter nowrap>$expression</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates an expression to a class member. </div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function findNode(</td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the first node where attr equals value. </div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function selectSingleNode(</td><td class=PParameter nowrap>$doc,</td></tr><tr><td></td><td class=PParameter nowrap>$expr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates the XPath expression and returns the first node of the result.</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getTrueTypeFont(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font to be used to draw the text with the given style.</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getTrueTypeFontSize(</td><td class=PParameter nowrap>$size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font size to be used to draw the text with the given style. </div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getFixedFontSize(</td><td class=PParameter nowrap>$fontSize,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the fixed font size for GD (1 t0 5) for the given font properties</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function stackTrace()</td></tr></table></blockquote>Prints a simple stack trace in the error log.</div></div><div class=CToolTip id="tt41"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTSIZE</td></tr></table></blockquote>Defines the default size for all fonts in points. </div></div><div class=CToolTip id="tt42"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTFAMILY</td></tr></table></blockquote>Defines the default family for all truetype fonts. </div></div><div class=CToolTip id="tt43"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt44"><div class=CClass>Cells are the elements of the graph model. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/view/mxCellState-php.html b/docs/php-api/files/view/mxCellState-php.html
    new file mode 100644
    index 000000000..d6133c4db
    --- /dev/null
    +++ b/docs/php-api/files/view/mxCellState-php.html
    @@ -0,0 +1,73 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxCellState</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxCellState"></a>mxCellState</h1><div class=CBody><p>Represents the current state of a cell in a given <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt1', 'link23')" onMouseOut="HideTip('tt1')">mxGraphView</a>.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxCellState" >mxCellState</a></td><td class=SDescription>Represents the current state of a cell in a given <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mxGraphView</a>.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCellState.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCellState.view" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">view</a></td><td class=SDescription>Reference to the enclosing <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">mxGraphView</a>.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCellState.cell" id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">cell</a></td><td class=SDescription>Reference to the <a href="../model/mxCell-php.html#mxCell" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">mxCell</a> that is represented by this state.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCellState.style" id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">style</a></td><td class=SDescription>Contains an array of key, value pairs that represent the style of the cell.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCellState.invalid" id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">invalid</a></td><td class=SDescription>Specifies if the state is invalid. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCellState.origin" id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">origin</a></td><td class=SDescription><a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">mxPoint</a> that holds the origin for all child cells. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCellState.absolutePoints" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">absolutePoints</a></td><td class=SDescription>Holds an array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt8', 'link11')" onMouseOut="HideTip('tt8')">mxPoints</a> that represent the absolute points of an edge.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCellState.absoluteOffset" id=link12 onMouseOver="ShowTip(event, 'tt10', 'link12')" onMouseOut="HideTip('tt10')">absoluteOffset</a></td><td class=SDescription><a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt8', 'link13')" onMouseOut="HideTip('tt8')">mxPoint</a> that holds the absolute offset. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCellState.terminalDistance" id=link14 onMouseOver="ShowTip(event, 'tt11', 'link14')" onMouseOut="HideTip('tt11')">terminalDistance</a></td><td class=SDescription>Caches the distance between the end points for an edge.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCellState.length" id=link15 onMouseOver="ShowTip(event, 'tt12', 'link15')" onMouseOut="HideTip('tt12')">length</a></td><td class=SDescription>Caches the length of an edge.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCellState.segments" id=link16 onMouseOver="ShowTip(event, 'tt13', 'link16')" onMouseOut="HideTip('tt13')">segments</a></td><td class=SDescription>Array of numbers that represent the cached length of each segment of the edge.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxCellState.labelBounds" id=link17 onMouseOver="ShowTip(event, 'tt14', 'link17')" onMouseOut="HideTip('tt14')">labelBounds</a></td><td class=SDescription>Holds the rectangle which contains the label.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxCellState.boundingBox" id=link18 onMouseOver="ShowTip(event, 'tt15', 'link18')" onMouseOut="HideTip('tt15')">boundingBox</a></td><td class=SDescription>Holds the largest rectangle which contains all rendering for this cell.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxCellState.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCellState.mxCellState" id=link19 onMouseOver="ShowTip(event, 'tt16', 'link19')" onMouseOut="HideTip('tt16')">mxCellState</a></td><td class=SDescription>Constructs a new object that represents the current state of the given cell in the specified view.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxCellState.getPerimeterBounds" id=link20 onMouseOver="ShowTip(event, 'tt17', 'link20')" onMouseOut="HideTip('tt17')">getPerimeterBounds</a></td><td class=SDescription>Returns the <a href="../util/mxRectangle-php.html#mxRectangle" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt18', 'link21')" onMouseOut="HideTip('tt18')">mxRectangle</a> that should be used as the perimeter of the cell.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxCellState.copy" id=link22 onMouseOver="ShowTip(event, 'tt19', 'link22')" onMouseOut="HideTip('tt19')">copy</a></td><td class=SDescription>Returns a copy of this state where all members are deeply cloned except the view and cell references, which are copied with no cloning to the new instance.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCellState.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.view"></a>view</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $view</td></tr></table></blockquote><p>Reference to the enclosing <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link24 onMouseOver="ShowTip(event, 'tt1', 'link24')" onMouseOut="HideTip('tt1')">mxGraphView</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.cell"></a>cell</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $cell</td></tr></table></blockquote><p>Reference to the <a href="../model/mxCell-php.html#mxCell" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt4', 'link25')" onMouseOut="HideTip('tt4')">mxCell</a> that is represented by this state.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.style"></a>style</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $style</td></tr></table></blockquote><p>Contains an array of key, value pairs that represent the style of the cell.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.invalid"></a>invalid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $invalid</td></tr></table></blockquote><p>Specifies if the state is invalid.&nbsp; Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.origin"></a>origin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $origin</td></tr></table></blockquote><p><a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt8', 'link26')" onMouseOut="HideTip('tt8')">mxPoint</a> that holds the origin for all child cells.&nbsp; Default is a new empty <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt8', 'link27')" onMouseOut="HideTip('tt8')">mxPoint</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.absolutePoints"></a>absolutePoints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $absolutePoints</td></tr></table></blockquote><p>Holds an array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt8', 'link28')" onMouseOut="HideTip('tt8')">mxPoints</a> that represent the absolute points of an edge.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.absoluteOffset"></a>absoluteOffset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $absoluteOffset</td></tr></table></blockquote><p><a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt8', 'link29')" onMouseOut="HideTip('tt8')">mxPoint</a> that holds the absolute offset.&nbsp; For edges, this is the absolute coordinates of the label position.&nbsp; For vertices, this is the offset of the label relative to the top, left corner of the vertex.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.terminalDistance"></a>terminalDistance</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $terminalDistance</td></tr></table></blockquote><p>Caches the distance between the end points for an edge.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.length"></a>length</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $length</td></tr></table></blockquote><p>Caches the length of an edge.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.segments"></a>segments</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $segments</td></tr></table></blockquote><p>Array of numbers that represent the cached length of each segment of the edge.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.labelBounds"></a>labelBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $labelBounds</td></tr></table></blockquote><p>Holds the rectangle which contains the label.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxCellState.boundingBox"></a>boundingBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $boundingBox</td></tr></table></blockquote><p>Holds the largest rectangle which contains all rendering for this cell.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxCellState.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCellState.mxCellState"></a>mxCellState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxCellState(</td><td class=PParameter nowrap>$view</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new object that represents the current state of the given cell in the specified view.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>view</td><td class=CDLDescription><a href="mxGraphView-php.html#mxGraphView" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt1', 'link30')" onMouseOut="HideTip('tt1')">mxGraphView</a> that contains the state.</td></tr><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="../model/mxCell-php.html#mxCell" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt4', 'link31')" onMouseOut="HideTip('tt4')">mxCell</a> that this state represents.</td></tr><tr><td class=CDLEntry>style</td><td class=CDLDescription>Array of key, value pairs that constitute the style.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCellState.getPerimeterBounds"></a>getPerimeterBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterBounds(</td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the <a href="../util/mxRectangle-php.html#mxRectangle" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt18', 'link32')" onMouseOut="HideTip('tt18')">mxRectangle</a> that should be used as the perimeter of the cell.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxCellState.copy"></a>copy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote><p>Returns a copy of this state where all members are deeply cloned except the view and cell references, which are copied with no cloning to the new instance.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile id=MSelected>mxCellState</div></div><div class=MEntry><div class=MFile><a href="mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([4, 5], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CClass>Implements a view for the graph. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $view</td></tr></table></blockquote>Reference to the enclosing mxGraphView.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $cell</td></tr></table></blockquote>Reference to the mxCell that is represented by this state.</div></div><div class=CToolTip id="tt4"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $style</td></tr></table></blockquote>Contains an array of key, value pairs that represent the style of the cell.</div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $invalid</td></tr></table></blockquote>Specifies if the state is invalid. </div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $origin</td></tr></table></blockquote>mxPoint that holds the origin for all child cells. </div></div><div class=CToolTip id="tt8"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><div class=CToolTip id="tt9"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $absolutePoints</td></tr></table></blockquote>Holds an array of mxPoints that represent the absolute points of an edge.</div></div><div class=CToolTip id="tt10"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $absoluteOffset</td></tr></table></blockquote>mxPoint that holds the absolute offset. </div></div><div class=CToolTip id="tt11"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $terminalDistance</td></tr></table></blockquote>Caches the distance between the end points for an edge.</div></div><div class=CToolTip id="tt12"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $length</td></tr></table></blockquote>Caches the length of an edge.</div></div><div class=CToolTip id="tt13"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $segments</td></tr></table></blockquote>Array of numbers that represent the cached length of each segment of the edge.</div></div><div class=CToolTip id="tt14"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $labelBounds</td></tr></table></blockquote>Holds the rectangle which contains the label.</div></div><div class=CToolTip id="tt15"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $boundingBox</td></tr></table></blockquote>Holds the largest rectangle which contains all rendering for this cell.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxCellState(</td><td class=PParameter nowrap>$view</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new object that represents the current state of the given cell in the specified view.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterBounds(</td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxRectangle that should be used as the perimeter of the cell.</div></div><div class=CToolTip id="tt18"><div class=CClass>Implements a 2-dimensional rectangle with double precision coordinates.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this state where all members are deeply cloned except the view and cell references, which are copied with no cloning to the new instance.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/view/mxConnectionConstraint-php.html b/docs/php-api/files/view/mxConnectionConstraint-php.html
    new file mode 100644
    index 000000000..def9d9e53
    --- /dev/null
    +++ b/docs/php-api/files/view/mxConnectionConstraint-php.html
    @@ -0,0 +1,49 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxConnectionConstraint</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxConnectionConstraint"></a>mxConnectionConstraint</h1><div class=CBody><p>Defines an object that contains the constraints about how to connect one side of an edge to its terminal.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxConnectionConstraint" >mxConnectionConstraint</a></td><td class=SDescription>Defines an object that contains the constraints about how to connect one side of an edge to its terminal.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxConnectionConstraint.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxConnectionConstraint.point" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">point</a></td><td class=SDescription><a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">mxPoint</a> that specifies the fixed location of the connection point.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxConnectionConstraint.perimeter" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">perimeter</a></td><td class=SDescription>Boolean that specifies if the point should be projected onto the perimeter of the terminal.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxConnectionConstraint.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxConnectionConstraint.mxConnectionConstraint" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mxConnectionConstraint</a></td><td class=SDescription>Constructs a new connection constraint for the given point and boolean arguments.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxConnectionConstraint.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConnectionConstraint.point"></a>point</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $point</td></tr></table></blockquote><p><a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt2', 'link5')" onMouseOut="HideTip('tt2')">mxPoint</a> that specifies the fixed location of the connection point.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxConnectionConstraint.perimeter"></a>perimeter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $perimeter</td></tr></table></blockquote><p>Boolean that specifies if the point should be projected onto the perimeter of the terminal.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxConnectionConstraint.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxConnectionConstraint.mxConnectionConstraint"></a>mxConnectionConstraint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxConnectionConstraint(</td><td class=PParameter nowrap>$point</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$perimeter</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new connection constraint for the given point and boolean arguments.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>point</td><td class=CDLDescription>Optional <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt2', 'link6')" onMouseOut="HideTip('tt2')">mxPoint</a> that specifies the fixed location of the point in relative coordinates.&nbsp; Default is null.</td></tr><tr><td class=CDLEntry>perimeter</td><td class=CDLDescription>Optional boolean that specifies if the fixed point should be projected onto the perimeter of the terminal.&nbsp; Default is true.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxConnectionConstraint</div></div><div class=MEntry><div class=MFile><a href="mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([4, 5], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $point</td></tr></table></blockquote>mxPoint that specifies the fixed location of the connection point.</div></div><div class=CToolTip id="tt2"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $perimeter</td></tr></table></blockquote>Boolean that specifies if the point should be projected onto the perimeter of the terminal.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxConnectionConstraint(</td><td class=PParameter nowrap>$point</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$perimeter</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new connection constraint for the given point and boolean arguments.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/view/mxEdgeStyle-php.html b/docs/php-api/files/view/mxEdgeStyle-php.html
    new file mode 100644
    index 000000000..0d1ac23b0
    --- /dev/null
    +++ b/docs/php-api/files/view/mxEdgeStyle-php.html
    @@ -0,0 +1,67 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxEdgeStyleFunction</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CInterface"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxEdgeStyleFunction"></a>mxEdgeStyleFunction</h1><div class=CBody><p>Defines the requirements for an edge style function.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxEdgeStyleFunction" >mxEdgeStyleFunction</a></td><td class=SDescription>Defines the requirements for an edge style function.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxEdgeStyleFunction.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxEdgeStyleFunction.apply" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">apply</a></td><td class=SDescription>Implements an edge style function. </td></tr><tr class="SClass"><td class=SEntry><a href="#mxEntityRelation" >mxEntityRelation</a></td><td class=SDescription>Implements an entity relation style for edges (as used in database schema diagrams). </td></tr><tr class="SClass"><td class=SEntry><a href="#mxLoop" >mxLoop</a></td><td class=SDescription>Implements a self-reference, aka. </td></tr><tr class="SClass"><td class=SEntry><a href="#mxElbowConnector" >mxElbowConnector</a></td><td class=SDescription>Uses either &lt;SideToSide&gt; or &lt;TopToBottom&gt; depending on the horizontal flag in the cell style. </td></tr><tr class="SClass"><td class=SEntry><a href="#mxSideToSide" >mxSideToSide</a></td><td class=SDescription>Implements a vertical elbow edge. </td></tr><tr class="SClass"><td class=SEntry><a href="#mxTopToBottom" >mxTopToBottom</a></td><td class=SDescription>Implements a horizontal elbow edge. </td></tr><tr class="SClass"><td class=SEntry><a href="#mxEdgeStyle" >mxEdgeStyle</a></td><td class=SDescription>Provides various edge styles to be used as the values for <a href="../util/mxConstants-php.html#mxConstants.STYLE_EDGE" class=LVariable id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">mxConstants.STYLE_EDGE</a> in a cell style.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxEdgeStyle.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxEdgeStyle.EntityRelation" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">EntityRelation</a></td><td class=SDescription>Provides an entity relation style for edges (as used in database schema diagrams).</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxEdgeStyle.Loop" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">Loop</a></td><td class=SDescription>Provides a self-reference, aka. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxEdgeStyle.ElbowConnector" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">ElbowConnector</a></td><td class=SDescription>Provides an elbow connector.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxEdgeStyle.SideToSide" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">SideToSide</a></td><td class=SDescription>Provides a side to side connector.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxEdgeStyle.TopToBottom" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">TopToBottom</a></td><td class=SDescription>Provides a top to bottom connector.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxEdgeStyleFunction.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxEdgeStyleFunction.apply"></a>apply</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public function apply(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$target,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$result</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Implements an edge style function.&nbsp; At the time the function is called, the result array contains a placeholder (null) for the first absolute point, that is, the point where the edge and source terminal are connected.&nbsp; The implementation of the style then adds all intermediate waypoints except for the last point, that is, the connection point between the edge and the target terminal.&nbsp; The first ant the last point in the result array are then replaced with mxPoints that take into account the terminal&rsquo;s perimeter and next point on the edge.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>state</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">mxCellState</a> that represents the edge to be updated.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">mxCellState</a> that represents the source terminal.</td></tr><tr><td class=CDLEntry>target</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt8', 'link10')" onMouseOut="HideTip('tt8')">mxCellState</a> that represents the target terminal.</td></tr><tr><td class=CDLEntry>points</td><td class=CDLDescription>List of relative control points.</td></tr><tr><td class=CDLEntry>result</td><td class=CDLDescription>Array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt9', 'link11')" onMouseOut="HideTip('tt9')">mxPoints</a> that represent the actual points of the edge.</td></tr></table></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxEntityRelation"></a>mxEntityRelation</h2><div class=CBody><p>Implements an entity relation style for edges (as used in database schema diagrams).&nbsp;  At the time the function is called, the result array contains a placeholder (null) for the first absolute point, that is, the point where the edge and source terminal are connected.&nbsp; The implementation of the style then adds all intermediate waypoints except for the last point, that is, the connection point between the edge and the target terminal.&nbsp; The first ant the last point in the result array are then replaced with mxPoints that take into account the terminal&rsquo;s perimeter and next point on the edge.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxLoop"></a>mxLoop</h2><div class=CBody><p>Implements a self-reference, aka. loop.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxElbowConnector"></a>mxElbowConnector</h2><div class=CBody><p>Uses either &lt;SideToSide&gt; or &lt;TopToBottom&gt; depending on the horizontal flag in the cell style.&nbsp; &lt;SideToSide&gt; is used if horizontal is true or unspecified.&nbsp; See &lt;EntityRelation&gt; for a description of the parameters.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxSideToSide"></a>mxSideToSide</h2><div class=CBody><p>Implements a vertical elbow edge.&nbsp; See &lt;EntityRelation&gt; for a description of the parameters.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxTopToBottom"></a>mxTopToBottom</h2><div class=CBody><p>Implements a horizontal elbow edge.&nbsp; See &lt;EntityRelation&gt; for a description of the parameters.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxEdgeStyle"></a>mxEdgeStyle</h2><div class=CBody><p>Provides various edge styles to be used as the values for <a href="../util/mxConstants-php.html#mxConstants.STYLE_EDGE" class=LVariable id=link17 onMouseOver="ShowTip(event, 'tt2', 'link17')" onMouseOut="HideTip('tt2')">mxConstants.STYLE_EDGE</a> in a cell style.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#mxEdgeStyle.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#mxEdgeStyle.EntityRelation" id=link12 onMouseOver="ShowTip(event, 'tt3', 'link12')" onMouseOut="HideTip('tt3')">EntityRelation</a></td><td class=SDescription>Provides an entity relation style for edges (as used in database schema diagrams).</td></tr><tr class="SVariable SIndent1"><td class=SEntry><a href="#mxEdgeStyle.Loop" id=link13 onMouseOver="ShowTip(event, 'tt4', 'link13')" onMouseOut="HideTip('tt4')">Loop</a></td><td class=SDescription>Provides a self-reference, aka. </td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#mxEdgeStyle.ElbowConnector" id=link14 onMouseOver="ShowTip(event, 'tt5', 'link14')" onMouseOut="HideTip('tt5')">ElbowConnector</a></td><td class=SDescription>Provides an elbow connector.</td></tr><tr class="SVariable SIndent1"><td class=SEntry><a href="#mxEdgeStyle.SideToSide" id=link15 onMouseOver="ShowTip(event, 'tt6', 'link15')" onMouseOut="HideTip('tt6')">SideToSide</a></td><td class=SDescription>Provides a side to side connector.</td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#mxEdgeStyle.TopToBottom" id=link16 onMouseOver="ShowTip(event, 'tt7', 'link16')" onMouseOut="HideTip('tt7')">TopToBottom</a></td><td class=SDescription>Provides a top to bottom connector.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxEdgeStyle.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEdgeStyle.EntityRelation"></a>EntityRelation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EntityRelation</td></tr></table></blockquote><p>Provides an entity relation style for edges (as used in database schema diagrams).</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEdgeStyle.Loop"></a>Loop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $Loop</td></tr></table></blockquote><p>Provides a self-reference, aka. loop.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEdgeStyle.ElbowConnector"></a>ElbowConnector</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ElbowConnector</td></tr></table></blockquote><p>Provides an elbow connector.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEdgeStyle.SideToSide"></a>SideToSide</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SideToSide</td></tr></table></blockquote><p>Provides a side to side connector.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxEdgeStyle.TopToBottom"></a>TopToBottom</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TopToBottom</td></tr></table></blockquote><p>Provides a top to bottom connector.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxEdgeStyleFunction</div></div><div class=MEntry><div class=MFile><a href="mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([4, 5], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public function apply(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$target,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$result</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Implements an edge style function. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EDGE</td></tr></table></blockquote>Defines the key for the edge style. </div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EntityRelation</td></tr></table></blockquote>Provides an entity relation style for edges (as used in database schema diagrams).</div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $Loop</td></tr></table></blockquote>Provides a self-reference, aka. </div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ElbowConnector</td></tr></table></blockquote>Provides an elbow connector.</div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SideToSide</td></tr></table></blockquote>Provides a side to side connector.</div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TopToBottom</td></tr></table></blockquote>Provides a top to bottom connector.</div></div><div class=CToolTip id="tt8"><div class=CClass>Represents the current state of a cell in a given mxGraphView.</div></div><div class=CToolTip id="tt9"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/view/mxGraph-php.html b/docs/php-api/files/view/mxGraph-php.html
    new file mode 100644
    index 000000000..c5aa7bade
    --- /dev/null
    +++ b/docs/php-api/files/view/mxGraph-php.html
    @@ -0,0 +1,137 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxGraph</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxGraph"></a>mxGraph</h1><div class=CBody><p>Implements a graph component.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxGraph" >mxGraph</a></td><td class=SDescription>Implements a graph component.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGraph.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.model" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">model</a></td><td class=SDescription>Holds the <a href="#mxGraph.mxGraphModel" class=LFunction id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">mxGraphModel</a>.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraph.stylesheet" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">stylesheet</a></td><td class=SDescription>Holds the <a href="mxStylesheet-php.html#mxStylesheet" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mxStylesheet</a>.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.view" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">view</a></td><td class=SDescription>Holds the <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">mxGraphView</a>.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraph.gridSize" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">gridSize</a></td><td class=SDescription>Specifies the grid size. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.labelsVisible" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">labelsVisible</a></td><td class=SDescription>Specifies if labels should be visible. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraph.defaultLoopStyle" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">defaultLoopStyle</a></td><td class=SDescription><a href="mxEdgeStyle-php.html#mxEdgeStyle" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">mxEdgeStyle</a> to be used for loops. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.imageBundles" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">imageBundles</a></td><td class=SDescription>Holds the list of image bundles.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGraph.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.mxGraphModel" >mxGraphModel</a></td><td class=SDescription>Constructs a new graph model using the specified root cell.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.createStylesheet" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">createStylesheet</a></td><td class=SDescription>Creates a new <a href="mxStylesheet-php.html#mxStylesheet" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt4', 'link13')" onMouseOut="HideTip('tt4')">mxStylesheet</a> to be used in this graph.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.createGraphView" id=link14 onMouseOver="ShowTip(event, 'tt13', 'link14')" onMouseOut="HideTip('tt13')">createGraphView</a></td><td class=SDescription>Creates a new <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link15 onMouseOver="ShowTip(event, 'tt6', 'link15')" onMouseOut="HideTip('tt6')">mxGraphView</a> to be used in this graph.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.getModel" id=link16 onMouseOver="ShowTip(event, 'tt14', 'link16')" onMouseOut="HideTip('tt14')">getModel</a></td><td class=SDescription>Returns the <a href="#mxGraph.mxGraphModel" class=LFunction id=link17 onMouseOver="ShowTip(event, 'tt2', 'link17')" onMouseOut="HideTip('tt2')">mxGraphModel</a> that contains the cells.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.getStylesheet" id=link18 onMouseOver="ShowTip(event, 'tt15', 'link18')" onMouseOut="HideTip('tt15')">getStylesheet</a></td><td class=SDescription>Returns the <a href="mxStylesheet-php.html#mxStylesheet" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt4', 'link19')" onMouseOut="HideTip('tt4')">mxStylesheet</a> that defines the style.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.getView" id=link20 onMouseOver="ShowTip(event, 'tt16', 'link20')" onMouseOut="HideTip('tt16')">getView</a></td><td class=SDescription>Returns the <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt6', 'link21')" onMouseOut="HideTip('tt6')">mxGraphView</a> that contains the <a href="mxCellState-php.html#mxCellState" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt17', 'link22')" onMouseOut="HideTip('tt17')">mxCellStates</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.getDefaultParent" id=link23 onMouseOver="ShowTip(event, 'tt18', 'link23')" onMouseOut="HideTip('tt18')">getDefaultParent</a></td><td class=SDescription>Returns the first child child of <a href="../model/mxGraphModel-php.html#mxGraphModel.root" class=LVariable id=link24 onMouseOver="ShowTip(event, 'tt19', 'link24')" onMouseOut="HideTip('tt19')">mxGraphModel.root</a>. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.convertValueToString" id=link25 onMouseOver="ShowTip(event, 'tt20', 'link25')" onMouseOut="HideTip('tt20')">convertValueToString</a></td><td class=SDescription>Returns the textual representation for the given cell. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.getLabel" id=link26 onMouseOver="ShowTip(event, 'tt21', 'link26')" onMouseOut="HideTip('tt21')">getLabel</a></td><td class=SDescription>Returns a string or DOM node that represents the label for the given cell. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.getChildOffsetForCell" id=link27 onMouseOver="ShowTip(event, 'tt22', 'link27')" onMouseOut="HideTip('tt22')">getChildOffsetForCell</a></td><td class=SDescription>Returns the offset to be used for the cells inside the given cell. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.isOrthogonal" id=link28 onMouseOver="ShowTip(event, 'tt23', 'link28')" onMouseOut="HideTip('tt23')">isOrthogonal</a></td><td class=SDescription>Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.isCellVisible" id=link29 onMouseOver="ShowTip(event, 'tt24', 'link29')" onMouseOut="HideTip('tt24')">isCellVisible</a></td><td class=SDescription>Returns true if the given cell is visible.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.isCellCollapsed" id=link30 onMouseOver="ShowTip(event, 'tt25', 'link30')" onMouseOut="HideTip('tt25')">isCellCollapsed</a></td><td class=SDescription>Returns true if the given cell is collapsed.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.isCellCollapsed" >isCellCollapsed</a></td><td class=SDescription>Returns true if the given cell is connectable.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.getCellGeometry" id=link31 onMouseOver="ShowTip(event, 'tt26', 'link31')" onMouseOut="HideTip('tt26')">getCellGeometry</a></td><td class=SDescription>Returns the <a href="../model/mxGeometry-php.html#mxGeometry" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt27', 'link32')" onMouseOut="HideTip('tt27')">mxGeometry</a> for the given <a href="../model/mxCell-php.html#mxCell" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt28', 'link33')" onMouseOut="HideTip('tt28')">mxCell</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.getCellStyle" id=link34 onMouseOver="ShowTip(event, 'tt29', 'link34')" onMouseOut="HideTip('tt29')">getCellStyle</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.postProcessCellStyle" id=link35 onMouseOver="ShowTip(event, 'tt30', 'link35')" onMouseOut="HideTip('tt30')">postProcessCellStyle</a></td><td class=SDescription>Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.setCellStyles" id=link36 onMouseOver="ShowTip(event, 'tt31', 'link36')" onMouseOut="HideTip('tt31')">setCellStyles</a></td><td class=SDescription>Sets the key to value in the styles of the given cells. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.addBundle" >addBundle</a></td><td class=SDescription>Adds the specified <a href="../util/mxImageBundle-php.html#mxImageBundle" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt32', 'link37')" onMouseOut="HideTip('tt32')">mxImageBundle</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.removeImageBundle" id=link38 onMouseOver="ShowTip(event, 'tt33', 'link38')" onMouseOut="HideTip('tt33')">removeImageBundle</a></td><td class=SDescription>Removes the specified <a href="../util/mxImageBundle-php.html#mxImageBundle" class=LClass id=link39 onMouseOver="ShowTip(event, 'tt32', 'link39')" onMouseOut="HideTip('tt32')">mxImageBundle</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.getImageFromBundles" id=link40 onMouseOver="ShowTip(event, 'tt34', 'link40')" onMouseOut="HideTip('tt34')">getImageFromBundles</a></td><td class=SDescription>Searches all <a href="#mxGraph.imageBundles" class=LVariable id=link41 onMouseOver="ShowTip(event, 'tt11', 'link41')" onMouseOut="HideTip('tt11')">imageBundles</a> for the specified key and returns the value for the first match or null if the key is not found.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.getImageBundles" id=link42 onMouseOver="ShowTip(event, 'tt35', 'link42')" onMouseOut="HideTip('tt35')">getImageBundles</a></td><td class=SDescription>Returns the <a href="#mxGraph.imageBundles" class=LVariable id=link43 onMouseOver="ShowTip(event, 'tt11', 'link43')" onMouseOut="HideTip('tt11')">imageBundles</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.setImageBundles" id=link44 onMouseOver="ShowTip(event, 'tt36', 'link44')" onMouseOut="HideTip('tt36')">setImageBundles</a></td><td class=SDescription>Sets the <a href="#mxGraph.imageBundles" class=LVariable id=link45 onMouseOver="ShowTip(event, 'tt11', 'link45')" onMouseOut="HideTip('tt11')">imageBundles</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.insertVertex" id=link46 onMouseOver="ShowTip(event, 'tt37', 'link46')" onMouseOut="HideTip('tt37')">insertVertex</a></td><td class=SDescription>Adds a new vertex into the given parent <a href="../model/mxCell-php.html#mxCell" class=LClass id=link47 onMouseOver="ShowTip(event, 'tt28', 'link47')" onMouseOut="HideTip('tt28')">mxCell</a> using value as the user object and the given coordinates as the <a href="../model/mxGeometry-php.html#mxGeometry" class=LClass id=link48 onMouseOver="ShowTip(event, 'tt27', 'link48')" onMouseOut="HideTip('tt27')">mxGeometry</a> of the new vertex. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.createVertex" id=link49 onMouseOver="ShowTip(event, 'tt38', 'link49')" onMouseOut="HideTip('tt38')">createVertex</a></td><td class=SDescription>Creates the vertex to be used in insertVertex.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.insertEdge" id=link50 onMouseOver="ShowTip(event, 'tt39', 'link50')" onMouseOut="HideTip('tt39')">insertEdge</a></td><td class=SDescription>Adds a new edge into the given parent <a href="../model/mxCell-php.html#mxCell" class=LClass id=link51 onMouseOver="ShowTip(event, 'tt28', 'link51')" onMouseOut="HideTip('tt28')">mxCell</a> using value as the user object and the given source and target as the terminals of the new edge. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.createEdge" id=link52 onMouseOver="ShowTip(event, 'tt40', 'link52')" onMouseOut="HideTip('tt40')">createEdge</a></td><td class=SDescription>Creates the edge to be used in <a href="#mxGraph.insertEdge" class=LFunction id=link53 onMouseOver="ShowTip(event, 'tt39', 'link53')" onMouseOut="HideTip('tt39')">insertEdge</a>. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.getGraphBounds" id=link54 onMouseOver="ShowTip(event, 'tt41', 'link54')" onMouseOut="HideTip('tt41')">getGraphBounds</a></td><td class=SDescription>Returns the bounds of the visible graph. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.getBoundingBox" id=link55 onMouseOver="ShowTip(event, 'tt42', 'link55')" onMouseOut="HideTip('tt42')">getBoundingBox</a></td><td class=SDescription>Returns the bounding box of the given cell including all connected edges if includeEdge is true.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.getPaintBounds" id=link56 onMouseOver="ShowTip(event, 'tt43', 'link56')" onMouseOut="HideTip('tt43')">getPaintBounds</a></td><td class=SDescription>Returns the bounding box of the given cells and their descendants.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.getBoundsForCells" id=link57 onMouseOver="ShowTip(event, 'tt44', 'link57')" onMouseOut="HideTip('tt44')">getBoundsForCells</a></td><td class=SDescription>Returns the bounds for the given cells.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.getCellBounds" id=link58 onMouseOver="ShowTip(event, 'tt45', 'link58')" onMouseOut="HideTip('tt45')">getCellBounds</a></td><td class=SDescription>Returns the bounds of the given cell including all connected edges if includeEdge is true.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.getConnectionConstraint" id=link59 onMouseOver="ShowTip(event, 'tt46', 'link59')" onMouseOut="HideTip('tt46')">getConnectionConstraint</a></td><td class=SDescription>Returns an <a href="mxConnectionConstraint-php.html#mxConnectionConstraint" class=LClass id=link60 onMouseOver="ShowTip(event, 'tt47', 'link60')" onMouseOut="HideTip('tt47')">mxConnectionConstraint</a> that describes the given connection point. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.getConnectionPoint" id=link61 onMouseOver="ShowTip(event, 'tt48', 'link61')" onMouseOut="HideTip('tt48')">getConnectionPoint</a></td><td class=SDescription>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.findTreeRoots" id=link62 onMouseOver="ShowTip(event, 'tt49', 'link62')" onMouseOut="HideTip('tt49')">findTreeRoots</a></td><td class=SDescription>Returns all children in the given parent which do not have incoming edges. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.createImage" id=link63 onMouseOver="ShowTip(event, 'tt50', 'link63')" onMouseOut="HideTip('tt50')">createImage</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.drawGraph" id=link64 onMouseOver="ShowTip(event, 'tt51', 'link64')" onMouseOut="HideTip('tt51')">drawGraph</a></td><td class=SDescription>Draws the given cell onto the specified canvas.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.paintCell" >paintCell</a></td><td class=SDescription>Draws the given cell onto the specified canvas.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraph.paintState" >paintState</a></td><td class=SDescription>Draws the given cell and label onto the specified canvas. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraph.graphModelChanged" id=link65 onMouseOver="ShowTip(event, 'tt52', 'link65')" onMouseOut="HideTip('tt52')">graphModelChanged</a></td><td class=SDescription>Called when the graph model has changed.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGraph.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraph.model"></a>model</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $model</td></tr></table></blockquote><p>Holds the <a href="#mxGraph.mxGraphModel" class=LFunction id=link66 onMouseOver="ShowTip(event, 'tt2', 'link66')" onMouseOut="HideTip('tt2')">mxGraphModel</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraph.stylesheet"></a>stylesheet</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $stylesheet</td></tr></table></blockquote><p>Holds the <a href="mxStylesheet-php.html#mxStylesheet" class=LClass id=link67 onMouseOver="ShowTip(event, 'tt4', 'link67')" onMouseOut="HideTip('tt4')">mxStylesheet</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraph.view"></a>view</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $view</td></tr></table></blockquote><p>Holds the <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link68 onMouseOver="ShowTip(event, 'tt6', 'link68')" onMouseOut="HideTip('tt6')">mxGraphView</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraph.gridSize"></a>gridSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $gridSize</td></tr></table></blockquote><p>Specifies the grid size.&nbsp; Default is 10.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraph.labelsVisible"></a>labelsVisible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $labelsVisible</td></tr></table></blockquote><p>Specifies if labels should be visible.&nbsp; This is used in <a href="#mxGraph.getLabel" class=LFunction id=link69 onMouseOver="ShowTip(event, 'tt21', 'link69')" onMouseOut="HideTip('tt21')">getLabel</a>.&nbsp; Default is true.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraph.defaultLoopStyle"></a>defaultLoopStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $defaultLoopStyle</td></tr></table></blockquote><p><a href="mxEdgeStyle-php.html#mxEdgeStyle" class=LClass id=link70 onMouseOver="ShowTip(event, 'tt10', 'link70')" onMouseOut="HideTip('tt10')">mxEdgeStyle</a> to be used for loops.&nbsp; This is a fallback for loops if the <a href="../util/mxConstants-php.html#mxConstants.STYLE_LOOP" class=LVariable id=link71 onMouseOver="ShowTip(event, 'tt53', 'link71')" onMouseOut="HideTip('tt53')">mxConstants.STYLE_LOOP</a> is undefined.&nbsp; Default is <a href="mxEdgeStyle-php.html#mxEdgeStyle.Loop" class=LVariable id=link72 onMouseOver="ShowTip(event, 'tt54', 'link72')" onMouseOut="HideTip('tt54')">mxEdgeStyle.Loop</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraph.imageBundles"></a>imageBundles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>protected $imageBundles</td></tr></table></blockquote><p>Holds the list of image bundles.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGraph.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.mxGraphModel"></a>mxGraphModel</h3><div class=CBody><p>Constructs a new graph model using the specified root cell.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.createStylesheet"></a>createStylesheet</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createStylesheet()</td></tr></table></blockquote><p>Creates a new <a href="mxStylesheet-php.html#mxStylesheet" class=LClass id=link73 onMouseOver="ShowTip(event, 'tt4', 'link73')" onMouseOut="HideTip('tt4')">mxStylesheet</a> to be used in this graph.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.createGraphView"></a>createGraphView</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createGraphView()</td></tr></table></blockquote><p>Creates a new <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link74 onMouseOver="ShowTip(event, 'tt6', 'link74')" onMouseOut="HideTip('tt6')">mxGraphView</a> to be used in this graph.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getModel"></a>getModel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getModel()</td></tr></table></blockquote><p>Returns the <a href="#mxGraph.mxGraphModel" class=LFunction id=link75 onMouseOver="ShowTip(event, 'tt2', 'link75')" onMouseOut="HideTip('tt2')">mxGraphModel</a> that contains the cells.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getStylesheet"></a>getStylesheet</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStylesheet()</td></tr></table></blockquote><p>Returns the <a href="mxStylesheet-php.html#mxStylesheet" class=LClass id=link76 onMouseOver="ShowTip(event, 'tt4', 'link76')" onMouseOut="HideTip('tt4')">mxStylesheet</a> that defines the style.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getView"></a>getView</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getView()</td></tr></table></blockquote><p>Returns the <a href="mxGraphView-php.html#mxGraphView" class=LClass id=link77 onMouseOver="ShowTip(event, 'tt6', 'link77')" onMouseOut="HideTip('tt6')">mxGraphView</a> that contains the <a href="mxCellState-php.html#mxCellState" class=LClass id=link78 onMouseOver="ShowTip(event, 'tt17', 'link78')" onMouseOut="HideTip('tt17')">mxCellStates</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getDefaultParent"></a>getDefaultParent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultParent()</td></tr></table></blockquote><p>Returns the first child child of <a href="../model/mxGraphModel-php.html#mxGraphModel.root" class=LVariable id=link79 onMouseOver="ShowTip(event, 'tt19', 'link79')" onMouseOut="HideTip('tt19')">mxGraphModel.root</a>.&nbsp; The value returned by this function should be used as the parent for new cells (aka default layer).</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.convertValueToString"></a>convertValueToString</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueToString(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the textual representation for the given cell.&nbsp; This implementation returns the nodename or string-representation of the user object.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getLabel"></a>getLabel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getLabel(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a string or DOM node that represents the label for the given cell.&nbsp; This implementation uses <a href="#mxGraph.convertValueToString" class=LFunction id=link80 onMouseOver="ShowTip(event, 'tt20', 'link80')" onMouseOut="HideTip('tt20')">convertValueToString</a> if <a href="#mxGraph.labelsVisible" class=LVariable id=link81 onMouseOver="ShowTip(event, 'tt8', 'link81')" onMouseOut="HideTip('tt8')">labelsVisible</a> is true.&nbsp; Otherwise it returns an empty string.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getChildOffsetForCell"></a>getChildOffsetForCell</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildOffsetForCell(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the offset to be used for the cells inside the given cell.&nbsp; The root and layer cells may be identified using &lt;mxGraphModel.isRoot&gt; and &lt;mxGraphModel.isLayer&gt;.&nbsp; For all other current roots, the &lt;mxGraphView.currentRoot&gt; field points to the respective cell, so that the following holds: cell == this.view.currentRoot.&nbsp; This implementation returns null.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="../model/mxCell-php.html#mxCell" class=LClass id=link82 onMouseOver="ShowTip(event, 'tt28', 'link82')" onMouseOut="HideTip('tt28')">mxCell</a> whose offset should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.isOrthogonal"></a>isOrthogonal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isOrthogonal(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link83 onMouseOver="ShowTip(event, 'tt17', 'link83')" onMouseOut="HideTip('tt17')">mxCellState</a> that represents the edge.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.isCellVisible"></a>isCellVisible</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCellVisible(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given cell is visible.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.isCellCollapsed"></a>isCellCollapsed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCellCollapsed(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given cell is collapsed.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.isCellCollapsed"></a>isCellCollapsed</h3><div class=CBody><p>Returns true if the given cell is connectable.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getCellGeometry"></a>getCellGeometry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellGeometry(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the <a href="../model/mxGeometry-php.html#mxGeometry" class=LClass id=link84 onMouseOver="ShowTip(event, 'tt27', 'link84')" onMouseOut="HideTip('tt27')">mxGeometry</a> for the given <a href="../model/mxCell-php.html#mxCell" class=LClass id=link85 onMouseOver="ShowTip(event, 'tt28', 'link85')" onMouseOut="HideTip('tt28')">mxCell</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getCellStyle"></a>getCellStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellStyle(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.postProcessCellStyle"></a>postProcessCellStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function postProcessCellStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.setCellStyles"></a>setCellStyles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCellStyles(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the key to value in the styles of the given cells.&nbsp; This will modify the existing cell styles in-place and override any existing assignment for the given key.&nbsp; If no cells are specified, then the selection cells are changed.&nbsp; If no value is specified, then the respective key is removed from the styles.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>key</td><td class=CDLDescription>String representing the key to be assigned.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>String representing the new value for the key.</td></tr><tr><td class=CDLEntry>cells</td><td class=CDLDescription>Array of <a href="../model/mxCell-php.html#mxCell" class=LClass id=link86 onMouseOver="ShowTip(event, 'tt28', 'link86')" onMouseOut="HideTip('tt28')">mxCells</a> to change the style for.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.addBundle"></a>addBundle</h3><div class=CBody><p>Adds the specified <a href="../util/mxImageBundle-php.html#mxImageBundle" class=LClass id=link87 onMouseOver="ShowTip(event, 'tt32', 'link87')" onMouseOut="HideTip('tt32')">mxImageBundle</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.removeImageBundle"></a>removeImageBundle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeImageBundle(</td><td class=PParameter nowrap>$bundle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes the specified <a href="../util/mxImageBundle-php.html#mxImageBundle" class=LClass id=link88 onMouseOver="ShowTip(event, 'tt32', 'link88')" onMouseOut="HideTip('tt32')">mxImageBundle</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getImageFromBundles"></a>getImageFromBundles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImageFromBundles(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Searches all <a href="#mxGraph.imageBundles" class=LVariable id=link89 onMouseOver="ShowTip(event, 'tt11', 'link89')" onMouseOut="HideTip('tt11')">imageBundles</a> for the specified key and returns the value for the first match or null if the key is not found.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getImageBundles"></a>getImageBundles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImageBundles()</td></tr></table></blockquote><p>Returns the <a href="#mxGraph.imageBundles" class=LVariable id=link90 onMouseOver="ShowTip(event, 'tt11', 'link90')" onMouseOut="HideTip('tt11')">imageBundles</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.setImageBundles"></a>setImageBundles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setImageBundles(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the <a href="#mxGraph.imageBundles" class=LVariable id=link91 onMouseOver="ShowTip(event, 'tt11', 'link91')" onMouseOut="HideTip('tt11')">imageBundles</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.insertVertex"></a>insertVertex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertVertex(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$relative</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds a new vertex into the given parent <a href="../model/mxCell-php.html#mxCell" class=LClass id=link92 onMouseOver="ShowTip(event, 'tt28', 'link92')" onMouseOut="HideTip('tt28')">mxCell</a> using value as the user object and the given coordinates as the <a href="../model/mxGeometry-php.html#mxGeometry" class=LClass id=link93 onMouseOver="ShowTip(event, 'tt27', 'link93')" onMouseOut="HideTip('tt27')">mxGeometry</a> of the new vertex.&nbsp; The id and style are used for the respective properties of the new <a href="../model/mxCell-php.html#mxCell" class=LClass id=link94 onMouseOver="ShowTip(event, 'tt28', 'link94')" onMouseOut="HideTip('tt28')">mxCell</a>, which is returned.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription><a href="../model/mxCell-php.html#mxCell" class=LClass id=link95 onMouseOver="ShowTip(event, 'tt28', 'link95')" onMouseOut="HideTip('tt28')">mxCell</a> that specifies the parent of the new vertex.</td></tr><tr><td class=CDLEntry>id</td><td class=CDLDescription>Optional string that defines the Id of the new vertex.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>Object to be used as the user object.</td></tr><tr><td class=CDLEntry>x</td><td class=CDLDescription>Integer that defines the x coordinate of the vertex.</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>Integer that defines the y coordinate of the vertex.</td></tr><tr><td class=CDLEntry>width</td><td class=CDLDescription>Integer that defines the width of the vertex.</td></tr><tr><td class=CDLEntry>height</td><td class=CDLDescription>Integer that defines the height of the vertex.</td></tr><tr><td class=CDLEntry>style</td><td class=CDLDescription>Optional string that defines the cell style.</td></tr><tr><td class=CDLEntry>relative</td><td class=CDLDescription>Optional boolean that specifies if the geometry is relative.&nbsp; Default is false.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.createVertex"></a>createVertex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createVertex(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$relative</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the vertex to be used in insertVertex.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.insertEdge"></a>insertEdge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertEdge(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds a new edge into the given parent <a href="../model/mxCell-php.html#mxCell" class=LClass id=link96 onMouseOver="ShowTip(event, 'tt28', 'link96')" onMouseOut="HideTip('tt28')">mxCell</a> using value as the user object and the given source and target as the terminals of the new edge.&nbsp; The id and style are used for the respective properties of the new <a href="../model/mxCell-php.html#mxCell" class=LClass id=link97 onMouseOver="ShowTip(event, 'tt28', 'link97')" onMouseOut="HideTip('tt28')">mxCell</a>, which is returned.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription><a href="../model/mxCell-php.html#mxCell" class=LClass id=link98 onMouseOver="ShowTip(event, 'tt28', 'link98')" onMouseOut="HideTip('tt28')">mxCell</a> that specifies the parent of the new edge.</td></tr><tr><td class=CDLEntry>id</td><td class=CDLDescription>Optional string that defines the Id of the new edge.</td></tr><tr><td class=CDLEntry>value</td><td class=CDLDescription>JavaScript object to be used as the user object.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription><a href="../model/mxCell-php.html#mxCell" class=LClass id=link99 onMouseOver="ShowTip(event, 'tt28', 'link99')" onMouseOut="HideTip('tt28')">mxCell</a> that defines the source of the edge.</td></tr><tr><td class=CDLEntry>target</td><td class=CDLDescription><a href="../model/mxCell-php.html#mxCell" class=LClass id=link100 onMouseOver="ShowTip(event, 'tt28', 'link100')" onMouseOut="HideTip('tt28')">mxCell</a> that defines the target of the edge.</td></tr><tr><td class=CDLEntry>style</td><td class=CDLDescription>Optional string that defines the cell style.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.createEdge"></a>createEdge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createEdge(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the edge to be used in <a href="#mxGraph.insertEdge" class=LFunction id=link101 onMouseOver="ShowTip(event, 'tt39', 'link101')" onMouseOut="HideTip('tt39')">insertEdge</a>.&nbsp; This implementation does not set the source and target of the edge, these are set when the edge is added to the model.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getGraphBounds"></a>getGraphBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGraphBounds()</td></tr></table></blockquote><p>Returns the bounds of the visible graph.&nbsp; Shortcut to <a href="mxGraphView-php.html#mxGraphView.getGraphBounds" class=LFunction id=link102 onMouseOver="ShowTip(event, 'tt55', 'link102')" onMouseOut="HideTip('tt55')">mxGraphView.getGraphBounds</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getBoundingBox"></a>getBoundingBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundingBox(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the bounding box of the given cell including all connected edges if includeEdge is true.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getPaintBounds"></a>getPaintBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPaintBounds(</td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the bounding box of the given cells and their descendants.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getBoundsForCells"></a>getBoundsForCells</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundsForCells(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the bounds for the given cells.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getCellBounds"></a>getCellBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellBounds(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the bounds of the given cell including all connected edges if includeEdge is true.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getConnectionConstraint"></a>getConnectionConstraint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getConnectionConstraint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an <a href="mxConnectionConstraint-php.html#mxConnectionConstraint" class=LClass id=link103 onMouseOver="ShowTip(event, 'tt47', 'link103')" onMouseOut="HideTip('tt47')">mxConnectionConstraint</a> that describes the given connection point.&nbsp; This result can then be passed to <a href="#mxGraph.getConnectionPoint" class=LFunction id=link104 onMouseOver="ShowTip(event, 'tt48', 'link104')" onMouseOut="HideTip('tt48')">getConnectionPoint</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link105 onMouseOver="ShowTip(event, 'tt17', 'link105')" onMouseOut="HideTip('tt17')">mxCellState</a> that represents the edge.</td></tr><tr><td class=CDLEntry>terminal</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link106 onMouseOver="ShowTip(event, 'tt17', 'link106')" onMouseOut="HideTip('tt17')">mxCellState</a> that represents the terminal.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean indicating if the terminal is the source or target.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.getConnectionPoint"></a>getConnectionPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getConnectionPoint(</td><td class=PParameter nowrap>$vertex,</td></tr><tr><td></td><td class=PParameter nowrap>$constraint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>vertex</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link107 onMouseOver="ShowTip(event, 'tt17', 'link107')" onMouseOut="HideTip('tt17')">mxCellState</a> that represents the vertex.</td></tr><tr><td class=CDLEntry>constraint</td><td class=CDLDescription><a href="mxConnectionConstraint-php.html#mxConnectionConstraint" class=LClass id=link108 onMouseOver="ShowTip(event, 'tt47', 'link108')" onMouseOut="HideTip('tt47')">mxConnectionConstraint</a> that represents the connection point constraint as returned by <a href="#mxGraph.getConnectionConstraint" class=LFunction id=link109 onMouseOver="ShowTip(event, 'tt46', 'link109')" onMouseOut="HideTip('tt46')">getConnectionConstraint</a>.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.findTreeRoots"></a>findTreeRoots</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function findTreeRoots(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$isolate</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$invert</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns all children in the given parent which do not have incoming edges.&nbsp; If the result is empty then the with the greatest difference between incoming and outgoing edges is returned.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription><a href="../model/mxCell-php.html#mxCell" class=LClass id=link110 onMouseOver="ShowTip(event, 'tt28', 'link110')" onMouseOut="HideTip('tt28')">mxCell</a> whose children should be checked.</td></tr><tr><td class=CDLEntry>isolate</td><td class=CDLDescription>Optional boolean that specifies if edges should be ignored if the opposite end is not a child of the given parent cell.&nbsp; Default is false.</td></tr><tr><td class=CDLEntry>invert</td><td class=CDLDescription>Optional boolean that specifies if outgoing or incoming edges should be counted for a tree root.&nbsp; If false then outgoing edges will be counted.&nbsp; Default is false.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.createImage"></a>createImage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createImage(</td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.drawGraph"></a>drawGraph</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawGraph(</td><td class=PParameter nowrap>$canvas</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws the given cell onto the specified canvas.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.paintCell"></a>paintCell</h3><div class=CBody><p>Draws the given cell onto the specified canvas.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.paintState"></a>paintState</h3><div class=CBody><p>Draws the given cell and label onto the specified canvas.&nbsp; No children or descendants are painted.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraph.graphModelChanged"></a>graphModelChanged</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function graphModelChanged(</td><td class=PParameter nowrap>$event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the graph model has changed.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxGraph</div></div><div class=MEntry><div class=MFile><a href="mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([4, 5], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $model</td></tr></table></blockquote>Holds the mxGraphModel.</div></div><div class=CToolTip id="tt2"><div class=CFunction>Constructs a new graph model using the specified root cell.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $stylesheet</td></tr></table></blockquote>Holds the mxStylesheet.</div></div><div class=CToolTip id="tt4"><div class=CClass>Defines the appearance of the cells in a graph. </div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $view</td></tr></table></blockquote>Holds the mxGraphView.</div></div><div class=CToolTip id="tt6"><div class=CClass>Implements a view for the graph. </div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $gridSize</td></tr></table></blockquote>Specifies the grid size. </div></div><div class=CToolTip id="tt8"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $labelsVisible</td></tr></table></blockquote>Specifies if labels should be visible. </div></div><div class=CToolTip id="tt9"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $defaultLoopStyle</td></tr></table></blockquote>mxEdgeStyle to be used for loops. </div></div><div class=CToolTip id="tt10"><div class=CClass>Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.</div></div><div class=CToolTip id="tt11"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>protected $imageBundles</td></tr></table></blockquote>Holds the list of image bundles.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createStylesheet()</td></tr></table></blockquote>Creates a new mxStylesheet to be used in this graph.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createGraphView()</td></tr></table></blockquote>Creates a new mxGraphView to be used in this graph.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getModel()</td></tr></table></blockquote>Returns the mxGraphModel that contains the cells.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStylesheet()</td></tr></table></blockquote>Returns the mxStylesheet that defines the style.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getView()</td></tr></table></blockquote>Returns the mxGraphView that contains the mxCellStates.</div></div><div class=CToolTip id="tt17"><div class=CClass>Represents the current state of a cell in a given mxGraphView.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultParent()</td></tr></table></blockquote>Returns the first child child of mxGraphModel.root. </div></div><div class=CToolTip id="tt19"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $root</td></tr></table></blockquote>Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueToString(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the textual representation for the given cell. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getLabel(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a string or DOM node that represents the label for the given cell. </div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildOffsetForCell(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the offset to be used for the cells inside the given cell. </div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isOrthogonal(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCellVisible(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is visible.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCellCollapsed(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is collapsed.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellGeometry(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxGeometry for the given mxCell.</div></div><div class=CToolTip id="tt27"><div class=CClass>Represents the geometry of a cell. </div></div><div class=CToolTip id="tt28"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellStyle(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function postProcessCellStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCellStyles(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the key to value in the styles of the given cells. </div></div><div class=CToolTip id="tt32"><div class=CClass>Maps from keys to base64 encoded images or file locations. </div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeImageBundle(</td><td class=PParameter nowrap>$bundle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified mxImageBundle.</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImageFromBundles(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Searches all imageBundles for the specified key and returns the value for the first match or null if the key is not found.</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImageBundles()</td></tr></table></blockquote>Returns the imageBundles.</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setImageBundles(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the imageBundles.</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertVertex(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$relative</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a new vertex into the given parent mxCell using value as the user object and the given coordinates as the mxGeometry of the new vertex. </div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createVertex(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$relative</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the vertex to be used in insertVertex.</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertEdge(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a new edge into the given parent mxCell using value as the user object and the given source and target as the terminals of the new edge. </div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createEdge(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the edge to be used in insertEdge. </div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGraphBounds()</td></tr></table></blockquote>Returns the bounds of the visible graph. </div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundingBox(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding box of the given cell including all connected edges if includeEdge is true.</div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPaintBounds(</td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding box of the given cells and their descendants.</div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundsForCells(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounds for the given cells.</div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellBounds(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounds of the given cell including all connected edges if includeEdge is true.</div></div><div class=CToolTip id="tt46"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getConnectionConstraint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxConnectionConstraint that describes the given connection point. </div></div><div class=CToolTip id="tt47"><div class=CClass>Defines an object that contains the constraints about how to connect one side of an edge to its terminal.</div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getConnectionPoint(</td><td class=PParameter nowrap>$vertex,</td></tr><tr><td></td><td class=PParameter nowrap>$constraint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</div></div><div class=CToolTip id="tt49"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function findTreeRoots(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$isolate</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$invert</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns all children in the given parent which do not have incoming edges. </div></div><div class=CToolTip id="tt50"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createImage(</td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt51"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawGraph(</td><td class=PParameter nowrap>$canvas</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given cell onto the specified canvas.</div></div><div class=CToolTip id="tt52"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function graphModelChanged(</td><td class=PParameter nowrap>$event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called when the graph model has changed.</div></div><div class=CToolTip id="tt53"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LOOP</td></tr></table></blockquote>Defines the key for the loop style. </div></div><div class=CToolTip id="tt54"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $Loop</td></tr></table></blockquote>Provides a self-reference, aka. </div></div><div class=CToolTip id="tt55"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGraphBounds()</td></tr></table></blockquote>Returns graphBounds.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/view/mxGraphView-php.html b/docs/php-api/files/view/mxGraphView-php.html
    new file mode 100644
    index 000000000..db4041675
    --- /dev/null
    +++ b/docs/php-api/files/view/mxGraphView-php.html
    @@ -0,0 +1,133 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxGraphView</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxGraphView"></a>mxGraphView</h1><div class=CBody><p>Implements a view for the graph.&nbsp; Fires scale and translate events if one of the values change.</p><h4 class=CHeading>This class fires the following events</h4><p>mxEvent.SCALE fires after the scale was changed in setScale.&nbsp; The &lt;code&gt;scale&lt;/code&gt; and &lt;code&gt;previousScale&lt;/code&gt; arguments contain the new and previous scale.</p><p>mxEvent.TRANSLATE fires after the translate was changed in setTranslate.&nbsp; The &lt;code&gt;translate&lt;/code&gt; and &lt;code&gt;previousTranslate&lt;/code&gt; arguments contain the new and previous value for translate.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxGraphView" >mxGraphView</a></td><td class=SDescription>Implements a view for the graph. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGraphView.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.EMPTY_POINT" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">EMPTY_POINT</a></td><td class=SDescription>An empty <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">mxPoint</a> instance.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraphView.graph" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">graph</a></td><td class=SDescription>Holds the <a href="mxGraph-php.html#mxGraph" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mxGraph</a>.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.graphBounds" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">graphBounds</a></td><td class=SDescription>Holds the bounds of the current view.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraphView.scale" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">scale</a></td><td class=SDescription>Holds the current scale.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.translate" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">translate</a></td><td class=SDescription>Holds the current translate.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxGraphView.states" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">states</a></td><td class=SDescription>Maps from cells to states.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxGraphView.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.mxGraphView" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">mxGraphView</a></td><td class=SDescription>Constructs a new view for the specified <a href="mxGraph-php.html#mxGraph" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt4', 'link10')" onMouseOut="HideTip('tt4')">mxGraph</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.setScale" id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">setScale</a></td><td class=SDescription>Sets the scale, revalidates the view and fires a scale event.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.setTranslate" id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">setTranslate</a></td><td class=SDescription>Sets the translation, revalidates the view and fires a translate event.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.getGraphBounds" id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">getGraphBounds</a></td><td class=SDescription>Returns <a href="#mxGraphView.graphBounds" class=LVariable id=link14 onMouseOver="ShowTip(event, 'tt5', 'link14')" onMouseOut="HideTip('tt5')">graphBounds</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.setGraphBounds" id=link15 onMouseOver="ShowTip(event, 'tt13', 'link15')" onMouseOut="HideTip('tt13')">setGraphBounds</a></td><td class=SDescription>Sets <a href="#mxGraphView.graphBounds" class=LVariable id=link16 onMouseOver="ShowTip(event, 'tt5', 'link16')" onMouseOut="HideTip('tt5')">graphBounds</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.getBoundingBox" id=link17 onMouseOver="ShowTip(event, 'tt14', 'link17')" onMouseOut="HideTip('tt14')">getBoundingBox</a></td><td class=SDescription>Returns the bounding for for an array of cells or null, if no cells are specified.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.getBounds" id=link18 onMouseOver="ShowTip(event, 'tt15', 'link18')" onMouseOut="HideTip('tt15')">getBounds</a></td><td class=SDescription>Returns the bounding for for an array of cells or null, if no cells are specified.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.invalidate" >invalidate</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.invalidate" id=link19 onMouseOver="ShowTip(event, 'tt16', 'link19')" onMouseOut="HideTip('tt16')">invalidate</a></td><td class=SDescription>Invalidates the cached cell states.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.validate" id=link20 onMouseOver="ShowTip(event, 'tt17', 'link20')" onMouseOut="HideTip('tt17')">validate</a></td><td class=SDescription>Calls <a href="#mxGraphView.validateBounds" class=LFunction id=link21 onMouseOver="ShowTip(event, 'tt18', 'link21')" onMouseOut="HideTip('tt18')">validateBounds</a> followed by <a href="#mxGraphView.validatePoints" class=LFunction id=link22 onMouseOver="ShowTip(event, 'tt19', 'link22')" onMouseOut="HideTip('tt19')">validatePoints</a> on the root cell if the cache is invalid.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.validateBounds" id=link23 onMouseOver="ShowTip(event, 'tt18', 'link23')" onMouseOut="HideTip('tt18')">validateBounds</a></td><td class=SDescription>Validates the bounds of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.updateVertexLabelOffset" id=link24 onMouseOver="ShowTip(event, 'tt20', 'link24')" onMouseOut="HideTip('tt20')">updateVertexLabelOffset</a></td><td class=SDescription>Updates the absoluteOffset of the given vertex cell state. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.validatePoints" id=link25 onMouseOver="ShowTip(event, 'tt19', 'link25')" onMouseOut="HideTip('tt19')">validatePoints</a></td><td class=SDescription>Validates the points of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.childMoved" id=link26 onMouseOver="ShowTip(event, 'tt21', 'link26')" onMouseOut="HideTip('tt21')">childMoved</a></td><td class=SDescription>Invoked when a child state was moved as a result of late evaluation of its position. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.updateBoundingBox" >updateBoundingBox</a></td><td class=SDescription>Updates the label bounds in the given state.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.updateBoundingBox" id=link27 onMouseOver="ShowTip(event, 'tt22', 'link27')" onMouseOut="HideTip('tt22')">updateBoundingBox</a></td><td class=SDescription>Updates the bounding box in the given cell state.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.updateFixedTerminalPoints" id=link28 onMouseOver="ShowTip(event, 'tt23', 'link28')" onMouseOut="HideTip('tt23')">updateFixedTerminalPoints</a></td><td class=SDescription>Sets the initial absolute terminal points in the given state before the edge style is computed.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.updateFixedTerminalPoint" id=link29 onMouseOver="ShowTip(event, 'tt24', 'link29')" onMouseOut="HideTip('tt24')">updateFixedTerminalPoint</a></td><td class=SDescription>Sets the fixed source or target terminal point on the given edge.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.updatePoints" id=link30 onMouseOver="ShowTip(event, 'tt25', 'link30')" onMouseOut="HideTip('tt25')">updatePoints</a></td><td class=SDescription>Updates the absolute points in the given state using the specified array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt2', 'link31')" onMouseOut="HideTip('tt2')">mxPoints</a> as the relative points.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.transformControlPoint" id=link32 onMouseOver="ShowTip(event, 'tt26', 'link32')" onMouseOut="HideTip('tt26')">transformControlPoint</a></td><td class=SDescription>Transforms the given control point to an absolute point.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.getEdgeStyle" id=link33 onMouseOver="ShowTip(event, 'tt27', 'link33')" onMouseOut="HideTip('tt27')">getEdgeStyle</a></td><td class=SDescription>Returns the edge style function to be used to render the given edge state.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.updateFloatingTerminalPoints" id=link34 onMouseOver="ShowTip(event, 'tt28', 'link34')" onMouseOut="HideTip('tt28')">updateFloatingTerminalPoints</a></td><td class=SDescription>Updates the terminal points in the given state after the edge style was computed for the edge.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.updateFloatingTerminalPoint" id=link35 onMouseOver="ShowTip(event, 'tt29', 'link35')" onMouseOut="HideTip('tt29')">updateFloatingTerminalPoint</a></td><td class=SDescription>Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.getTerminalPort" id=link36 onMouseOver="ShowTip(event, 'tt30', 'link36')" onMouseOut="HideTip('tt30')">getTerminalPort</a></td><td class=SDescription>Returns an <a href="mxCellState-php.html#mxCellState" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt31', 'link37')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the source or target terminal or port for the given edge.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.getPerimeterPoint" id=link38 onMouseOver="ShowTip(event, 'tt32', 'link38')" onMouseOut="HideTip('tt32')">getPerimeterPoint</a></td><td class=SDescription>Returns an <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link39 onMouseOver="ShowTip(event, 'tt2', 'link39')" onMouseOut="HideTip('tt2')">mxPoint</a> that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.getRoutingCenterX" id=link40 onMouseOver="ShowTip(event, 'tt33', 'link40')" onMouseOut="HideTip('tt33')">getRoutingCenterX</a></td><td class=SDescription>Returns the x-coordinate of the center point for automatic routing.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.getRoutingCenterY" id=link41 onMouseOver="ShowTip(event, 'tt34', 'link41')" onMouseOut="HideTip('tt34')">getRoutingCenterY</a></td><td class=SDescription>Returns the y-coordinate of the center point for automatic routing.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.getPerimeterBounds" id=link42 onMouseOver="ShowTip(event, 'tt35', 'link42')" onMouseOut="HideTip('tt35')">getPerimeterBounds</a></td><td class=SDescription>Returns the perimeter bounds for the given terminal, edge pair as an <a href="../util/mxRectangle-php.html#mxRectangle" class=LClass id=link43 onMouseOver="ShowTip(event, 'tt36', 'link43')" onMouseOut="HideTip('tt36')">mxRectangle</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.getPerimeterFunction" id=link44 onMouseOver="ShowTip(event, 'tt37', 'link44')" onMouseOut="HideTip('tt37')">getPerimeterFunction</a></td><td class=SDescription>Returns the perimeter function for the given state.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.getNextPoint" id=link45 onMouseOver="ShowTip(event, 'tt38', 'link45')" onMouseOut="HideTip('tt38')">getNextPoint</a></td><td class=SDescription>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.getVisibleTerminal" id=link46 onMouseOver="ShowTip(event, 'tt39', 'link46')" onMouseOut="HideTip('tt39')">getVisibleTerminal</a></td><td class=SDescription>Returns the nearest ancestor terminal that is visible. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.updateEdgeBounds" id=link47 onMouseOver="ShowTip(event, 'tt40', 'link47')" onMouseOut="HideTip('tt40')">updateEdgeBounds</a></td><td class=SDescription>Updates the bounds of the specified state based on the absolute points in the state.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.getPoint" id=link48 onMouseOver="ShowTip(event, 'tt41', 'link48')" onMouseOut="HideTip('tt41')">getPoint</a></td><td class=SDescription>Returns the absolute point on the edge for the given relative <a href="../model/mxGeometry-php.html#mxGeometry" class=LClass id=link49 onMouseOver="ShowTip(event, 'tt42', 'link49')" onMouseOut="HideTip('tt42')">mxGeometry</a> as an <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link50 onMouseOver="ShowTip(event, 'tt2', 'link50')" onMouseOut="HideTip('tt2')">mxPoint</a>. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.getState" id=link51 onMouseOver="ShowTip(event, 'tt43', 'link51')" onMouseOut="HideTip('tt43')">getState</a></td><td class=SDescription>Returns the cell state for the specified cell. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.getHashCode" id=link52 onMouseOver="ShowTip(event, 'tt44', 'link52')" onMouseOut="HideTip('tt44')">getHashCode</a></td><td class=SDescription>Returns a unique string that represents the given instance.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.getStates" id=link53 onMouseOver="ShowTip(event, 'tt45', 'link53')" onMouseOut="HideTip('tt45')">getStates</a></td><td class=SDescription>Returns the <a href="mxCellState-php.html#mxCellState" class=LClass id=link54 onMouseOver="ShowTip(event, 'tt31', 'link54')" onMouseOut="HideTip('tt31')">mxCellStates</a> for the given array of <a href="../model/mxCell-php.html#mxCell" class=LClass id=link55 onMouseOver="ShowTip(event, 'tt46', 'link55')" onMouseOut="HideTip('tt46')">mxCells</a>. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.getStates" >getStates</a></td><td class=SDescription>Returns the <a href="mxCellState-php.html#mxCellState" class=LClass id=link56 onMouseOver="ShowTip(event, 'tt31', 'link56')" onMouseOut="HideTip('tt31')">mxCellStates</a> for the given array of <a href="../model/mxCell-php.html#mxCell" class=LClass id=link57 onMouseOver="ShowTip(event, 'tt46', 'link57')" onMouseOut="HideTip('tt46')">mxCells</a>. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxGraphView.removeState" id=link58 onMouseOver="ShowTip(event, 'tt47', 'link58')" onMouseOut="HideTip('tt47')">removeState</a></td><td class=SDescription>Removes and returns the mxCellState for the given cell.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxGraphView.createState" id=link59 onMouseOver="ShowTip(event, 'tt48', 'link59')" onMouseOut="HideTip('tt48')">createState</a></td><td class=SDescription>Creates the state for the specified cell.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.EMPTY_POINT"></a>EMPTY_POINT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $EMPTY_POINT</td></tr></table></blockquote><p>An empty <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link60 onMouseOver="ShowTip(event, 'tt2', 'link60')" onMouseOut="HideTip('tt2')">mxPoint</a> instance.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.graph"></a>graph</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $graph</td></tr></table></blockquote><p>Holds the <a href="mxGraph-php.html#mxGraph" class=LClass id=link61 onMouseOver="ShowTip(event, 'tt4', 'link61')" onMouseOut="HideTip('tt4')">mxGraph</a>.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.graphBounds"></a>graphBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $graphBounds</td></tr></table></blockquote><p>Holds the bounds of the current view.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.scale"></a>scale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $scale</td></tr></table></blockquote><p>Holds the current scale.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.translate"></a>translate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $translate</td></tr></table></blockquote><p>Holds the current translate.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.states"></a>states</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $states</td></tr></table></blockquote><p>Maps from cells to states.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.mxGraphView"></a>mxGraphView</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphView(</td><td class=PParameter nowrap>$graph</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new view for the specified <a href="mxGraph-php.html#mxGraph" class=LClass id=link62 onMouseOver="ShowTip(event, 'tt4', 'link62')" onMouseOut="HideTip('tt4')">mxGraph</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.setScale"></a>setScale</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setScale(</td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the scale, revalidates the view and fires a scale event.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.setTranslate"></a>setTranslate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTranslate(</td><td class=PParameter nowrap>$translate</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the translation, revalidates the view and fires a translate event.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getGraphBounds"></a>getGraphBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGraphBounds()</td></tr></table></blockquote><p>Returns <a href="#mxGraphView.graphBounds" class=LVariable id=link63 onMouseOver="ShowTip(event, 'tt5', 'link63')" onMouseOut="HideTip('tt5')">graphBounds</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.setGraphBounds"></a>setGraphBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGraphBounds(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets <a href="#mxGraphView.graphBounds" class=LVariable id=link64 onMouseOver="ShowTip(event, 'tt5', 'link64')" onMouseOut="HideTip('tt5')">graphBounds</a>.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getBoundingBox"></a>getBoundingBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundingBox(</td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the bounding for for an array of cells or null, if no cells are specified.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getBounds"></a>getBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBounds(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the bounding for for an array of cells or null, if no cells are specified.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.invalidate"></a>invalidate</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.invalidate"></a>invalidate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function invalidate()</td></tr></table></blockquote><p>Invalidates the cached cell states.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.validate"></a>validate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validate(</td><td class=PParameter nowrap>$cell</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Calls <a href="#mxGraphView.validateBounds" class=LFunction id=link65 onMouseOver="ShowTip(event, 'tt18', 'link65')" onMouseOut="HideTip('tt18')">validateBounds</a> followed by <a href="#mxGraphView.validatePoints" class=LFunction id=link66 onMouseOver="ShowTip(event, 'tt19', 'link66')" onMouseOut="HideTip('tt19')">validatePoints</a> on the root cell if the cache is invalid.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.validateBounds"></a>validateBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validateBounds(</td><td class=PParameter nowrap>$parentState,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Validates the bounds of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.updateVertexLabelOffset"></a>updateVertexLabelOffset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateVertexLabelOffset(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the absoluteOffset of the given vertex cell state.&nbsp; This takes into account the label position styles.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>state</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link67 onMouseOver="ShowTip(event, 'tt31', 'link67')" onMouseOut="HideTip('tt31')">mxCellState</a> whose absolute offset should be updated.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.validatePoints"></a>validatePoints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validatePoints(</td><td class=PParameter nowrap>$parentState,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Validates the points of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.childMoved"></a>childMoved</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function childMoved(</td><td class=PParameter nowrap>$parent,</td></tr><tr><td></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Invoked when a child state was moved as a result of late evaluation of its position.&nbsp; This is invoked for relative edge children whose position can only be determined after the points of the parent edge are updated in validatePoints, and validates the bounds of all descendants of the child using validateBounds.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link68 onMouseOver="ShowTip(event, 'tt31', 'link68')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the parent state.</td></tr><tr><td class=CDLEntry>child</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link69 onMouseOver="ShowTip(event, 'tt31', 'link69')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the child state.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.updateBoundingBox"></a>updateBoundingBox</h3><div class=CBody><p>Updates the label bounds in the given state.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.updateBoundingBox"></a>updateBoundingBox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateBoundingBox(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the bounding box in the given cell state.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.updateFixedTerminalPoints"></a>updateFixedTerminalPoints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFixedTerminalPoints(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the initial absolute terminal points in the given state before the edge style is computed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link70 onMouseOver="ShowTip(event, 'tt31', 'link70')" onMouseOut="HideTip('tt31')">mxCellState</a> whose initial terminal points should be updated.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link71 onMouseOver="ShowTip(event, 'tt31', 'link71')" onMouseOut="HideTip('tt31')">mxCellState</a> which represents the source terminal.</td></tr><tr><td class=CDLEntry>target</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link72 onMouseOver="ShowTip(event, 'tt31', 'link72')" onMouseOut="HideTip('tt31')">mxCellState</a> which represents the target terminal.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.updateFixedTerminalPoint"></a>updateFixedTerminalPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFixedTerminalPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$constraint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the fixed source or target terminal point on the given edge.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link73 onMouseOver="ShowTip(event, 'tt31', 'link73')" onMouseOut="HideTip('tt31')">mxCellState</a> whose terminal point should be updated.</td></tr><tr><td class=CDLEntry>terminal</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link74 onMouseOver="ShowTip(event, 'tt31', 'link74')" onMouseOut="HideTip('tt31')">mxCellState</a> which represents the actual terminal.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean that specifies if the terminal is the source.</td></tr><tr><td class=CDLEntry>constraint</td><td class=CDLDescription><a href="mxConnectionConstraint-php.html#mxConnectionConstraint" class=LClass id=link75 onMouseOver="ShowTip(event, 'tt49', 'link75')" onMouseOut="HideTip('tt49')">mxConnectionConstraint</a> that specifies the connection.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.updatePoints"></a>updatePoints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updatePoints(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the absolute points in the given state using the specified array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link76 onMouseOver="ShowTip(event, 'tt2', 'link76')" onMouseOut="HideTip('tt2')">mxPoints</a> as the relative points.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link77 onMouseOver="ShowTip(event, 'tt31', 'link77')" onMouseOut="HideTip('tt31')">mxCellState</a> whose absolute points should be updated.</td></tr><tr><td class=CDLEntry>points</td><td class=CDLDescription>Array of <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link78 onMouseOver="ShowTip(event, 'tt2', 'link78')" onMouseOut="HideTip('tt2')">mxPoints</a> that constitute the relative points.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link79 onMouseOver="ShowTip(event, 'tt31', 'link79')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the source terminal.</td></tr><tr><td class=CDLEntry>target</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link80 onMouseOver="ShowTip(event, 'tt31', 'link80')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the target terminal.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.transformControlPoint"></a>transformControlPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function transformControlPoint(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$pt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Transforms the given control point to an absolute point.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getEdgeStyle"></a>getEdgeStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeStyle(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the edge style function to be used to render the given edge state.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.updateFloatingTerminalPoints"></a>updateFloatingTerminalPoints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFloatingTerminalPoints(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the terminal points in the given state after the edge style was computed for the edge.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>state</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link81 onMouseOver="ShowTip(event, 'tt31', 'link81')" onMouseOut="HideTip('tt31')">mxCellState</a> whose terminal points should be updated.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link82 onMouseOver="ShowTip(event, 'tt31', 'link82')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the source terminal.</td></tr><tr><td class=CDLEntry>target</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link83 onMouseOver="ShowTip(event, 'tt31', 'link83')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the target terminal.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.updateFloatingTerminalPoint"></a>updateFloatingTerminalPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFloatingTerminalPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$start,</td></tr><tr><td></td><td class=PParameter nowrap>$end,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link84 onMouseOver="ShowTip(event, 'tt31', 'link84')" onMouseOut="HideTip('tt31')">mxCellState</a> whose terminal point should be updated.</td></tr><tr><td class=CDLEntry>start</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link85 onMouseOver="ShowTip(event, 'tt31', 'link85')" onMouseOut="HideTip('tt31')">mxCellState</a> for the terminal on &ldquo;this&rdquo; side of the edge.</td></tr><tr><td class=CDLEntry>end</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link86 onMouseOver="ShowTip(event, 'tt31', 'link86')" onMouseOut="HideTip('tt31')">mxCellState</a> for the terminal on the other side of the edge.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean indicating if start is the source terminal state.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getTerminalPort"></a>getTerminalPort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminalPort(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an <a href="mxCellState-php.html#mxCellState" class=LClass id=link87 onMouseOver="ShowTip(event, 'tt31', 'link87')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the source or target terminal or port for the given edge.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>state</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link88 onMouseOver="ShowTip(event, 'tt31', 'link88')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the state of the edge.</td></tr><tr><td class=CDLEntry>terminal</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link89 onMouseOver="ShowTip(event, 'tt31', 'link89')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the terminal.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean indicating if the given terminal is the source terminal.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getPerimeterPoint"></a>getPerimeterPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterPoint(</td><td class=PParameter nowrap>$terminal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$next,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$orthogonal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns an <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link90 onMouseOver="ShowTip(event, 'tt2', 'link90')" onMouseOut="HideTip('tt2')">mxPoint</a> that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>terminal</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link91 onMouseOver="ShowTip(event, 'tt31', 'link91')" onMouseOut="HideTip('tt31')">mxCellState</a> for the source or target terminal.</td></tr><tr><td class=CDLEntry>next</td><td class=CDLDescription><a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link92 onMouseOver="ShowTip(event, 'tt2', 'link92')" onMouseOut="HideTip('tt2')">mxPoint</a> that lies outside of the given terminal.</td></tr><tr><td class=CDLEntry>orthogonal</td><td class=CDLDescription>Boolean that specifies if the orthogonal projection onto the perimeter should be returned.&nbsp; If this is false then the intersection of the perimeter and the line between the next and the center point is returned.</td></tr><tr><td class=CDLEntry>border</td><td class=CDLDescription>Optional border between the perimeter and the shape.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getRoutingCenterX"></a>getRoutingCenterX</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getRoutingCenterX(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the x-coordinate of the center point for automatic routing.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getRoutingCenterY"></a>getRoutingCenterY</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getRoutingCenterY(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the y-coordinate of the center point for automatic routing.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getPerimeterBounds"></a>getPerimeterBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterBounds(</td><td class=PParameter nowrap>$terminal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the perimeter bounds for the given terminal, edge pair as an <a href="../util/mxRectangle-php.html#mxRectangle" class=LClass id=link93 onMouseOver="ShowTip(event, 'tt36', 'link93')" onMouseOut="HideTip('tt36')">mxRectangle</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>terminal</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link94 onMouseOver="ShowTip(event, 'tt31', 'link94')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the terminal.</td></tr><tr><td class=CDLEntry>border</td><td class=CDLDescription>Number that adds a border between the shape and the perimeter.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getPerimeterFunction"></a>getPerimeterFunction</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterFunction(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the perimeter function for the given state.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getNextPoint"></a>getNextPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getNextPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$opposite,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link95 onMouseOver="ShowTip(event, 'tt31', 'link95')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the edge.</td></tr><tr><td class=CDLEntry>opposite</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link96 onMouseOver="ShowTip(event, 'tt31', 'link96')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the opposite terminal.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean indicating if the next point for the source or target should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getVisibleTerminal"></a>getVisibleTerminal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getVisibleTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the nearest ancestor terminal that is visible.&nbsp; The edge appears to be connected to this terminal on the display.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="../model/mxCell-php.html#mxCell" class=LClass id=link97 onMouseOver="ShowTip(event, 'tt46', 'link97')" onMouseOut="HideTip('tt46')">mxCell</a> whose visible terminal should be returned.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean that specifies if the source or target terminal should be returned.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.updateEdgeBounds"></a>updateEdgeBounds</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeBounds(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the bounds of the specified state based on the absolute points in the state.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getPoint"></a>getPoint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPoint(</td><td class=PParameter nowrap>$state,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the absolute point on the edge for the given relative <a href="../model/mxGeometry-php.html#mxGeometry" class=LClass id=link98 onMouseOver="ShowTip(event, 'tt42', 'link98')" onMouseOut="HideTip('tt42')">mxGeometry</a> as an <a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link99 onMouseOver="ShowTip(event, 'tt2', 'link99')" onMouseOut="HideTip('tt2')">mxPoint</a>.&nbsp; The edge is represented by the given <a href="mxCellState-php.html#mxCellState" class=LClass id=link100 onMouseOver="ShowTip(event, 'tt31', 'link100')" onMouseOut="HideTip('tt31')">mxCellState</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>state</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link101 onMouseOver="ShowTip(event, 'tt31', 'link101')" onMouseOut="HideTip('tt31')">mxCellState</a> that represents the state of the parent edge.</td></tr><tr><td class=CDLEntry>geometry</td><td class=CDLDescription><a href="../model/mxGeometry-php.html#mxGeometry" class=LClass id=link102 onMouseOver="ShowTip(event, 'tt42', 'link102')" onMouseOut="HideTip('tt42')">mxGeometry</a> that represents the relative location.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getState"></a>getState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getState(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$create</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the cell state for the specified cell.&nbsp; If create is true then the state is created and added to the cache if it does not yet exist.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getHashCode"></a>getHashCode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getHashCode(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a unique string that represents the given instance.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getStates"></a>getStates</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStates()</td></tr></table></blockquote><p>Returns the <a href="mxCellState-php.html#mxCellState" class=LClass id=link103 onMouseOver="ShowTip(event, 'tt31', 'link103')" onMouseOut="HideTip('tt31')">mxCellStates</a> for the given array of <a href="../model/mxCell-php.html#mxCell" class=LClass id=link104 onMouseOver="ShowTip(event, 'tt46', 'link104')" onMouseOut="HideTip('tt46')">mxCells</a>.&nbsp; The array contains all states that are not null, that is, the returned array may have less elements than the given array.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.getStates"></a>getStates</h3><div class=CBody><p>Returns the <a href="mxCellState-php.html#mxCellState" class=LClass id=link105 onMouseOver="ShowTip(event, 'tt31', 'link105')" onMouseOut="HideTip('tt31')">mxCellStates</a> for the given array of <a href="../model/mxCell-php.html#mxCell" class=LClass id=link106 onMouseOver="ShowTip(event, 'tt46', 'link106')" onMouseOut="HideTip('tt46')">mxCells</a>.&nbsp; The array contains all states that are not null, that is, the returned array may have less elements than the given array.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.removeState"></a>removeState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeState(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes and returns the mxCellState for the given cell.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxGraphView.createState"></a>createState</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createState(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the state for the specified cell.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxGraphView</div></div><div class=MEntry><div class=MFile><a href="mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([4, 5], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $EMPTY_POINT</td></tr></table></blockquote>An empty mxPoint instance.</div></div><div class=CToolTip id="tt2"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $graph</td></tr></table></blockquote>Holds the mxGraph.</div></div><div class=CToolTip id="tt4"><div class=CClass>Implements a graph component.</div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $graphBounds</td></tr></table></blockquote>Holds the bounds of the current view.</div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $scale</td></tr></table></blockquote>Holds the current scale.</div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $translate</td></tr></table></blockquote>Holds the current translate.</div></div><div class=CToolTip id="tt8"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $states</td></tr></table></blockquote>Maps from cells to states.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphView(</td><td class=PParameter nowrap>$graph</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new view for the specified mxGraph.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setScale(</td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the scale, revalidates the view and fires a scale event.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTranslate(</td><td class=PParameter nowrap>$translate</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the translation, revalidates the view and fires a translate event.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGraphBounds()</td></tr></table></blockquote>Returns graphBounds.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGraphBounds(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets graphBounds.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundingBox(</td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding for for an array of cells or null, if no cells are specified.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBounds(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding for for an array of cells or null, if no cells are specified.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function invalidate()</td></tr></table></blockquote>Invalidates the cached cell states.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validate(</td><td class=PParameter nowrap>$cell</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calls validateBounds followed by validatePoints on the root cell if the cache is invalid.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validateBounds(</td><td class=PParameter nowrap>$parentState,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Validates the bounds of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validatePoints(</td><td class=PParameter nowrap>$parentState,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Validates the points of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateVertexLabelOffset(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the absoluteOffset of the given vertex cell state. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function childMoved(</td><td class=PParameter nowrap>$parent,</td></tr><tr><td></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Invoked when a child state was moved as a result of late evaluation of its position. </div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateBoundingBox(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the bounding box in the given cell state.</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFixedTerminalPoints(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the initial absolute terminal points in the given state before the edge style is computed.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFixedTerminalPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$constraint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the fixed source or target terminal point on the given edge.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updatePoints(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the absolute points in the given state using the specified array of mxPoints as the relative points.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function transformControlPoint(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$pt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Transforms the given control point to an absolute point.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeStyle(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edge style function to be used to render the given edge state.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFloatingTerminalPoints(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the terminal points in the given state after the edge style was computed for the edge.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFloatingTerminalPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$start,</td></tr><tr><td></td><td class=PParameter nowrap>$end,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminalPort(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxCellState that represents the source or target terminal or port for the given edge.</div></div><div class=CToolTip id="tt31"><div class=CClass>Represents the current state of a cell in a given mxGraphView.</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterPoint(</td><td class=PParameter nowrap>$terminal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$next,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$orthogonal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxPoint that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getRoutingCenterX(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the x-coordinate of the center point for automatic routing.</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getRoutingCenterY(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the y-coordinate of the center point for automatic routing.</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterBounds(</td><td class=PParameter nowrap>$terminal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the perimeter bounds for the given terminal, edge pair as an mxRectangle.</div></div><div class=CToolTip id="tt36"><div class=CClass>Implements a 2-dimensional rectangle with double precision coordinates.</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterFunction(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the perimeter function for the given state.</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getNextPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$opposite,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getVisibleTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest ancestor terminal that is visible. </div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeBounds(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the bounds of the specified state based on the absolute points in the state.</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPoint(</td><td class=PParameter nowrap>$state,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the absolute point on the edge for the given relative mxGeometry as an mxPoint. </div></div><div class=CToolTip id="tt42"><div class=CClass>Represents the geometry of a cell. </div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getState(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$create</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell state for the specified cell. </div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getHashCode(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a unique string that represents the given instance.</div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStates()</td></tr></table></blockquote>Returns the mxCellStates for the given array of mxCells. </div></div><div class=CToolTip id="tt46"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt47"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeState(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes and returns the mxCellState for the given cell.</div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createState(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the state for the specified cell.</div></div><div class=CToolTip id="tt49"><div class=CClass>Defines an object that contains the constraints about how to connect one side of an edge to its terminal.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/view/mxPerimeter-php.html b/docs/php-api/files/view/mxPerimeter-php.html
    new file mode 100644
    index 000000000..ce45f8e39
    --- /dev/null
    +++ b/docs/php-api/files/view/mxPerimeter-php.html
    @@ -0,0 +1,63 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxPerimeterFunction</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CInterface"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxPerimeterFunction"></a>mxPerimeterFunction</h1><div class=CBody><p>Defines the requirements for a perimeter function.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxPerimeterFunction" >mxPerimeterFunction</a></td><td class=SDescription>Defines the requirements for a perimeter function.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxPerimeterFunction.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxPerimeterFunction.apply" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">apply</a></td><td class=SDescription>Implements a perimeter function.</td></tr><tr class="SClass"><td class=SEntry><a href="#mxRectanglePerimeter" >mxRectanglePerimeter</a></td><td class=SDescription>Implements a rectangular perimeter for the given bounds.</td></tr><tr class="SClass"><td class=SEntry><a href="#mxEllipsePerimeter" >mxEllipsePerimeter</a></td><td class=SDescription>Implements an elliptic perimeter. </td></tr><tr class="SClass"><td class=SEntry><a href="#mxRhombusPerimeter" >mxRhombusPerimeter</a></td><td class=SDescription>Implements a rhombus (aka diamond) perimeter. </td></tr><tr class="SClass"><td class=SEntry><a href="#mxTrianglePerimeter" >mxTrianglePerimeter</a></td><td class=SDescription>Implements a triangle perimeter. </td></tr><tr class="SClass"><td class=SEntry><a href="#mxPerimeter" >mxPerimeter</a></td><td class=SDescription>Provides various perimeter functions to be used in a style as the value of <a href="../util/mxConstants-php.html#mxConstants.STYLE_PERIMETER" class=LVariable id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">mxConstants.STYLE_PERIMETER</a>.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxPerimeter.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxPerimeter.RectanglePerimeter" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">RectanglePerimeter</a></td><td class=SDescription>Provides a rectangular perimeter.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxPerimeter.EllipsePerimeter" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">EllipsePerimeter</a></td><td class=SDescription>Provides an elliptic perimeter.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxPerimeter.RhombusPerimeter" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">RhombusPerimeter</a></td><td class=SDescription>Provides a rhombus (aka diamond) perimeter.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxPerimeter.TrianglePerimeter" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">TrianglePerimeter</a></td><td class=SDescription>Provides a triangle perimeter. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxPerimeterFunction.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxPerimeterFunction.apply"></a>apply</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public function apply(</td><td class=PParameter nowrap>$bounds,</td></tr><tr><td></td><td class=PParameter nowrap>$vertex,</td></tr><tr><td></td><td class=PParameter nowrap>$next,</td></tr><tr><td></td><td class=PParameter nowrap>$orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Implements a perimeter function.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription><a href="../util/mxRectangle-php.html#mxRectangle" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">mxRectangle</a> that represents the absolute bounds of the vertex.</td></tr><tr><td class=CDLEntry>vertex</td><td class=CDLDescription><a href="mxCellState-php.html#mxCellState" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">mxCellState</a> that represents the vertex.</td></tr><tr><td class=CDLEntry>next</td><td class=CDLDescription><a href="../util/mxPoint-php.html#mxPoint" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">mxPoint</a> that represents the nearest neighbour point on the given edge.</td></tr><tr><td class=CDLEntry>orthogonal</td><td class=CDLDescription>Boolean that specifies if the orthogonal projection onto the perimeter should be returned.&nbsp; If this is false then the intersection of the perimeter and the line between the next and the center point is returned.</td></tr></table></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxRectanglePerimeter"></a>mxRectanglePerimeter</h2><div class=CBody><p>Implements a rectangular perimeter for the given bounds.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxEllipsePerimeter"></a>mxEllipsePerimeter</h2><div class=CBody><p>Implements an elliptic perimeter.&nbsp; See &lt;RectanglePerimeter&gt; for a description of the parameters.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxRhombusPerimeter"></a>mxRhombusPerimeter</h2><div class=CBody><p>Implements a rhombus (aka diamond) perimeter.&nbsp; See &lt;RectanglePerimeter&gt; for a description of the parameters.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxTrianglePerimeter"></a>mxTrianglePerimeter</h2><div class=CBody><p>Implements a triangle perimeter.&nbsp; See &lt;RectanglePerimeter&gt; for a description of the parameters.</p></div></div></div>
    +
    +<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="mxPerimeter"></a>mxPerimeter</h2><div class=CBody><p>Provides various perimeter functions to be used in a style as the value of <a href="../util/mxConstants-php.html#mxConstants.STYLE_PERIMETER" class=LVariable id=link14 onMouseOver="ShowTip(event, 'tt2', 'link14')" onMouseOut="HideTip('tt2')">mxConstants.STYLE_PERIMETER</a>.</p><p>The parameters are explained in <a href="#mxPerimeter.RectanglePerimeter" class=LVariable id=link15 onMouseOver="ShowTip(event, 'tt3', 'link15')" onMouseOut="HideTip('tt3')">RectanglePerimeter</a>.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#mxPerimeter.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#mxPerimeter.RectanglePerimeter" id=link10 onMouseOver="ShowTip(event, 'tt3', 'link10')" onMouseOut="HideTip('tt3')">RectanglePerimeter</a></td><td class=SDescription>Provides a rectangular perimeter.</td></tr><tr class="SVariable SIndent1"><td class=SEntry><a href="#mxPerimeter.EllipsePerimeter" id=link11 onMouseOver="ShowTip(event, 'tt4', 'link11')" onMouseOut="HideTip('tt4')">EllipsePerimeter</a></td><td class=SDescription>Provides an elliptic perimeter.</td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#mxPerimeter.RhombusPerimeter" id=link12 onMouseOver="ShowTip(event, 'tt5', 'link12')" onMouseOut="HideTip('tt5')">RhombusPerimeter</a></td><td class=SDescription>Provides a rhombus (aka diamond) perimeter.</td></tr><tr class="SVariable SIndent1"><td class=SEntry><a href="#mxPerimeter.TrianglePerimeter" id=link13 onMouseOver="ShowTip(event, 'tt6', 'link13')" onMouseOut="HideTip('tt6')">TrianglePerimeter</a></td><td class=SDescription>Provides a triangle perimeter. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.RectanglePerimeter"></a>RectanglePerimeter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RectanglePerimeter</td></tr></table></blockquote><p>Provides a rectangular perimeter.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.EllipsePerimeter"></a>EllipsePerimeter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EllipsePerimeter</td></tr></table></blockquote><p>Provides an elliptic perimeter.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.RhombusPerimeter"></a>RhombusPerimeter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RhombusPerimeter</td></tr></table></blockquote><p>Provides a rhombus (aka diamond) perimeter.</p></div></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.TrianglePerimeter"></a>TrianglePerimeter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TrianglePerimeter</td></tr></table></blockquote><p>Provides a triangle perimeter.&nbsp; See <a href="#mxPerimeter.RectanglePerimeter" class=LVariable id=link16 onMouseOver="ShowTip(event, 'tt3', 'link16')" onMouseOut="HideTip('tt3')">RectanglePerimeter</a> for a description of the parameters.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxPerimeterFunction</div></div><div class=MEntry><div class=MFile><a href="mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([4, 5], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public function apply(</td><td class=PParameter nowrap>$bounds,</td></tr><tr><td></td><td class=PParameter nowrap>$vertex,</td></tr><tr><td></td><td class=PParameter nowrap>$next,</td></tr><tr><td></td><td class=PParameter nowrap>$orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Implements a perimeter function.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_PERIMETER</td></tr></table></blockquote>Defines the key for the perimeter style. </div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RectanglePerimeter</td></tr></table></blockquote>Provides a rectangular perimeter.</div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EllipsePerimeter</td></tr></table></blockquote>Provides an elliptic perimeter.</div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RhombusPerimeter</td></tr></table></blockquote>Provides a rhombus (aka diamond) perimeter.</div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TrianglePerimeter</td></tr></table></blockquote>Provides a triangle perimeter. </div></div><div class=CToolTip id="tt7"><div class=CClass>Implements a 2-dimensional rectangle with double precision coordinates.</div></div><div class=CToolTip id="tt8"><div class=CClass>Represents the current state of a cell in a given mxGraphView.</div></div><div class=CToolTip id="tt9"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/view/mxStyleRegistry-php.html b/docs/php-api/files/view/mxStyleRegistry-php.html
    new file mode 100644
    index 000000000..bb20f5a1e
    --- /dev/null
    +++ b/docs/php-api/files/view/mxStyleRegistry-php.html
    @@ -0,0 +1,51 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxStyleRegistry</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxStyleRegistry"></a>mxStyleRegistry</h1><div class=CBody><p>Singleton class that acts as a global converter from string to object values in a style.&nbsp; This is currently only used to perimeters and edge styles.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxStyleRegistry" >mxStyleRegistry</a></td><td class=SDescription>Singleton class that acts as a global converter from string to object values in a style. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxStyleRegistry.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxStyleRegistry.values" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">values</a></td><td class=SDescription>Maps from strings to objects.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxStyleRegistry.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStyleRegistry.putValue" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">putValue</a></td><td class=SDescription>Puts the given object into the registry under the given name.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStyleRegistry.getValue" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">getValue</a></td><td class=SDescription>Returns the value associated with the given name.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStyleRegistry.getName" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">getName</a></td><td class=SDescription>Returns the name for the given value.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxStyleRegistry.Variables"></a>Variables</h3></div></div>
    +
    +<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStyleRegistry.values"></a>values</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $values</td></tr></table></blockquote><p>Maps from strings to objects.</p></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxStyleRegistry.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStyleRegistry.putValue"></a>putValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function putValue(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Puts the given object into the registry under the given name.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStyleRegistry.getValue"></a>getValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getValue(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the value associated with the given name.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStyleRegistry.getName"></a>getName</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getName(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the name for the given value.</p></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxStyleRegistry</div></div><div class=MEntry><div class=MFile><a href="mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([4, 5], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $values</td></tr></table></blockquote>Maps from strings to objects.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function putValue(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Puts the given object into the registry under the given name.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getValue(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value associated with the given name.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getName(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the name for the given value.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/files/view/mxStylesheet-php.html b/docs/php-api/files/view/mxStylesheet-php.html
    new file mode 100644
    index 000000000..2f8fce830
    --- /dev/null
    +++ b/docs/php-api/files/view/mxStylesheet-php.html
    @@ -0,0 +1,65 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>mxStylesheet</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxStylesheet"></a>mxStylesheet</h1><div class=CBody><p>Defines the appearance of the cells in a graph.&nbsp; See <a href="#mxStylesheet.putCellStyle" class=LFunction id=link11 onMouseOver="ShowTip(event, 'tt9', 'link11')" onMouseOut="HideTip('tt9')">putCellStyle</a> for an example of creating a style.</p><h4 class=CHeading>Default Styles</h4><p>The stylesheet contains two built-om styles, which are used if no style is defined for a cell:</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>defaultVertex</td><td class=CDLDescription>Default style for vertices</td></tr><tr><td class=CDLEntry>defaultEdge</td><td class=CDLDescription>Default style for edges</td></tr></table><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxStylesheet" >mxStylesheet</a></td><td class=SDescription>Defines the appearance of the cells in a graph. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxStylesheet.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStylesheet.styles" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">styles</a></td><td class=SDescription>Maps from names to styles.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStylesheet.mxStylesheet" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">mxStylesheet</a></td><td class=SDescription>Constructs a new stylesheet and assigns default styles.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStylesheet.createDefaultVertexStyle" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">createDefaultVertexStyle</a></td><td class=SDescription>Creates and returns the default vertex style.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStylesheet.createDefaultEdgeStyle" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">createDefaultEdgeStyle</a></td><td class=SDescription>Creates and returns the default edge style.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStylesheet.putDefaultVertexStyle" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">putDefaultVertexStyle</a></td><td class=SDescription>Sets the default style for vertices.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStylesheet.putDefaultEdgeStyle" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">putDefaultEdgeStyle</a></td><td class=SDescription>Sets the default style for edges.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStylesheet.getDefaultVertexStyle" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">getDefaultVertexStyle</a></td><td class=SDescription>Returns the default style for vertices.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStylesheet.getDefaultEdgeStyle" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">getDefaultEdgeStyle</a></td><td class=SDescription>Sets the default style for edges.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStylesheet.putCellStyle" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">putCellStyle</a></td><td class=SDescription>Stores the specified style under the given name.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStylesheet.getCellStyle" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">getCellStyle</a></td><td class=SDescription>Returns the cell style for the specified cell or the given defaultStyle if no style can be found for the given stylename.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
    +
    +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.Functions"></a>Functions</h3></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.styles"></a>styles</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $styles = array()</td></tr></table></blockquote><p>Maps from names to styles.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.mxStylesheet"></a>mxStylesheet</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxStylesheet()</td></tr></table></blockquote><p>Constructs a new stylesheet and assigns default styles.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.createDefaultVertexStyle"></a>createDefaultVertexStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createDefaultVertexStyle()</td></tr></table></blockquote><p>Creates and returns the default vertex style.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.createDefaultEdgeStyle"></a>createDefaultEdgeStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createDefaultEdgeStyle()</td></tr></table></blockquote><p>Creates and returns the default edge style.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.putDefaultVertexStyle"></a>putDefaultVertexStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putDefaultVertexStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the default style for vertices.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.putDefaultEdgeStyle"></a>putDefaultEdgeStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putDefaultEdgeStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the default style for edges.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.getDefaultVertexStyle"></a>getDefaultVertexStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultVertexStyle()</td></tr></table></blockquote><p>Returns the default style for vertices.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.getDefaultEdgeStyle"></a>getDefaultEdgeStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultEdgeStyle()</td></tr></table></blockquote><p>Sets the default style for edges.</p></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.putCellStyle"></a>putCellStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putCellStyle(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Stores the specified style under the given name.</p><h4 class=CHeading>Example</h4><p>The following example adds a new style (called &lsquo;rounded&rsquo;) into an existing stylesheet:</p><blockquote><pre class="prettyprint">var style = new Array();
    +style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    +style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RightAngleRectanglePerimeter;
    +style[mxConstants.STYLE_ROUNDED] = 'true';
    +graph.stylesheet.putCellStyle('rounded', style);</pre></blockquote><p>In the above example, the new style is an array.&nbsp; The possible  keys of the array are all the constants in <a href="../util/mxConstants-php.html#mxConstants" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">mxConstants</a> that start with STYLE and the values are either JavaScript objects, such as &lt;mxPerimeter.RightAngleRectanglePerimeter&gt; (which is in fact a function) or expressions, such as &lsquo;true&rsquo;.&nbsp; Note that not all keys will be interpreted by all shapes (eg. the line shape ignores the fill color).&nbsp; The final call to this method associates the style with a name in the stylesheet.&nbsp; The style is used in a cell with the following code:</p><blockquote><pre class="prettyprint">model.setStyle(cell, 'rounded');</pre></blockquote><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>Name for the style to be stored.</td></tr><tr><td class=CDLEntry>style</td><td class=CDLDescription>Key, value pairs that define the style.</td></tr></table></div></div></div>
    +
    +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStylesheet.getCellStyle"></a>getCellStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellStyle(</td><td class=PParameter nowrap>$name,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$defaultStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the cell style for the specified cell or the given defaultStyle if no style can be found for the given stylename.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>String of the form [(stylename|key=value);] that represents the style.</td></tr><tr><td class=CDLEntry>defaultStyle</td><td class=CDLDescription>Default style to be returned if no style can be found.</td></tr></table></div></div></div>
    +
    +</div><!--Content-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxStylesheet</div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([4, 5], 6);// --></script></div><!--Menu-->
    +
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $styles = array()</td></tr></table></blockquote>Maps from names to styles.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxStylesheet()</td></tr></table></blockquote>Constructs a new stylesheet and assigns default styles.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createDefaultVertexStyle()</td></tr></table></blockquote>Creates and returns the default vertex style.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createDefaultEdgeStyle()</td></tr></table></blockquote>Creates and returns the default edge style.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putDefaultVertexStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the default style for vertices.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putDefaultEdgeStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the default style for edges.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultVertexStyle()</td></tr></table></blockquote>Returns the default style for vertices.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultEdgeStyle()</td></tr></table></blockquote>Sets the default style for edges.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putCellStyle(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Stores the specified style under the given name.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellStyle(</td><td class=PParameter nowrap>$name,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$defaultStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell style for the specified cell or the given defaultStyle if no style can be found for the given stylename.</div></div><div class=CToolTip id="tt11"><div class=CClass>Defines global constants.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index.html b/docs/php-api/index.html
    new file mode 100644
    index 000000000..c10acce66
    --- /dev/null
    +++ b/docs/php-api/index.html
    @@ -0,0 +1 @@
    +<html><head><meta http-equiv="Refresh" CONTENT="0; URL=files/index-txt.html"></head></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Classes.html b/docs/php-api/index/Classes.html
    new file mode 100644
    index 000000000..427d3269b
    --- /dev/null
    +++ b/docs/php-api/index/Classes.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Class Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Class Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; B &middot; C &middot; D &middot; E &middot; F &middot; G &middot; H &middot; I &middot; J &middot; K &middot; L &middot; <a href="#M">M</a> &middot; N &middot; O &middot; P &middot; Q &middot; R &middot; S &middot; T &middot; U &middot; V &middot; W &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>mxCell</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCellCodec-php.html#mxCellCodec" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>mxCellCodec</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>mxCellPath</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>mxCellState</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>mxCodec</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>mxCodecRegistry</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>mxConnectionConstraint</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>mxConstants</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>mxEdgeStyle</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxElbowConnector" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>mxElbowConnector</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxEllipsePerimeter" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>mxEllipsePerimeter</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEntityRelation" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>mxEntityRelation</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>mxEvent</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>mxEventObject</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>mxEventSource</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>mxGdCanvas</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>mxGeometry</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>mxGraph</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>mxGraphModel</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>mxGraphView</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>mxGraphViewHtmlReader</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>mxGraphViewImageReader</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>mxHtmlCanvas</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>mxImageBundle</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>mxLog</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxLoop" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>mxLoop</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxModelCodec-php.html#mxModelCodec" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>mxModelCodec</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>mxObjectCodec</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=ISymbol>mxPerimeter</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=ISymbol>mxPoint</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=ISymbol>mxRectangle</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxRectanglePerimeter" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=ISymbol>mxRectanglePerimeter</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxRhombusPerimeter" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=ISymbol>mxRhombusPerimeter</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxSideToSide" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=ISymbol>mxSideToSide</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=ISymbol>mxStyleRegistry</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=ISymbol>mxStylesheet</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=ISymbol>mxStylesheetCodec</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxTopToBottom" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=ISymbol>mxTopToBottom</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxTrianglePerimeter" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')" class=ISymbol>mxTrianglePerimeter</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')" class=ISymbol>mxUtils</a></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt2"><div class=CClass>Codec for mxCells. </div></div><div class=CToolTip id="tt3"><div class=CClass>Implements a mechanism for temporary cell Ids.</div></div><div class=CToolTip id="tt4"><div class=CClass>Represents the current state of a cell in a given mxGraphView.</div></div><div class=CToolTip id="tt5"><div class=CClass>XML codec for PHP object graphs. </div></div><div class=CToolTip id="tt6"><div class=CClass>A class to register codecs for objects.</div></div><div class=CToolTip id="tt7"><div class=CClass>Defines an object that contains the constraints about how to connect one side of an edge to its terminal.</div></div><div class=CToolTip id="tt8"><div class=CClass>Defines global constants.</div></div><div class=CToolTip id="tt9"><div class=CClass>Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.</div></div><div class=CToolTip id="tt10"><div class=CClass>Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell style. </div></div><div class=CToolTip id="tt11"><div class=CClass>Implements an elliptic perimeter. </div></div><div class=CToolTip id="tt12"><div class=CClass>Implements an entity relation style for edges (as used in database schema diagrams). </div></div><div class=CToolTip id="tt13"><div class=CClass>Defines global constants.</div></div><div class=CToolTip id="tt14"><div class=CClass>Base class for all events.</div></div><div class=CToolTip id="tt15"><div class=CClass>Base class for all event sources.</div></div><div class=CToolTip id="tt16"><div class=CClass>Canvas for drawing graphs using the GD library. </div></div><div class=CToolTip id="tt17"><div class=CClass>Represents the geometry of a cell. </div></div><div class=CToolTip id="tt18"><div class=CClass>Implements a graph component.</div></div><div class=CToolTip id="tt19"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt20"><div class=CClass>Implements a view for the graph. </div></div><div class=CToolTip id="tt21"><div class=CClass>A display XML to HTML converter. </div></div><div class=CToolTip id="tt22"><div class=CClass>A display XML to image converter. </div></div><div class=CToolTip id="tt23"><div class=CClass>Canvas for drawing graphs using HTML.</div></div><div class=CToolTip id="tt24"><div class=CClass>Maps from keys to base64 encoded images or file locations. </div></div><div class=CToolTip id="tt25"><div class=CClass>Logging facility.</div></div><div class=CToolTip id="tt26"><div class=CClass>Implements a self-reference, aka. </div></div><div class=CToolTip id="tt27"><div class=CClass>Codec for mxGraphModels. </div></div><div class=CToolTip id="tt28"><div class=CClass>XML codec for PHP object graphs.</div></div><div class=CToolTip id="tt29"><div class=CClass>Provides various perimeter functions to be used in a style as the value of mxConstants.STYLE_PERIMETER.</div></div><div class=CToolTip id="tt30"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><div class=CToolTip id="tt31"><div class=CClass>Implements a 2-dimensional rectangle with double precision coordinates.</div></div><div class=CToolTip id="tt32"><div class=CClass>Implements a rectangular perimeter for the given bounds.</div></div><div class=CToolTip id="tt33"><div class=CClass>Implements a rhombus (aka diamond) perimeter. </div></div><div class=CToolTip id="tt34"><div class=CClass>Implements a vertical elbow edge. </div></div><div class=CToolTip id="tt35"><div class=CClass>Singleton class that acts as a global converter from string to object values in a style. </div></div><div class=CToolTip id="tt36"><div class=CClass>Defines the appearance of the cells in a graph. </div></div><div class=CToolTip id="tt37"><div class=CClass>Codec for mxStylesheets. </div></div><div class=CToolTip id="tt38"><div class=CClass>Implements a horizontal elbow edge. </div></div><div class=CToolTip id="tt39"><div class=CClass>Implements a triangle perimeter. </div></div><div class=CToolTip id="tt40"><div class=CClass>Helper methods.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Classes</div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Files.html b/docs/php-api/index/Files.html
    new file mode 100644
    index 000000000..c47d9d940
    --- /dev/null
    +++ b/docs/php-api/index/Files.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>File Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; B &middot; C &middot; D &middot; E &middot; F &middot; G &middot; H &middot; I &middot; J &middot; K &middot; L &middot; <a href="#M">M</a> &middot; N &middot; O &middot; P &middot; Q &middot; R &middot; S &middot; T &middot; U &middot; V &middot; W &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/index-txt.html#API_Specification" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>API Specification</a></td></tr><tr><td class=IHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.php"  class=ISymbol>mxGdCanvas.php</a></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CFile>This PHP library is divided into 4 packages. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Files</div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Functions.html b/docs/php-api/index/Functions.html
    new file mode 100644
    index 000000000..4bdb8bce1
    --- /dev/null
    +++ b/docs/php-api/index/Functions.html
    @@ -0,0 +1,42 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; <a href="#B">B</a> &middot; <a href="#C">C</a> &middot; <a href="Functions2.html#D">D</a> &middot; <a href="Functions3.html#E">E</a> &middot; <a href="Functions3.html#F">F</a> &middot; <a href="Functions4.html#G">G</a> &middot; H &middot; <a href="Functions5.html#I">I</a> &middot; J &middot; K &middot; <a href="Functions5.html#L">L</a> &middot; <a href="Functions5.html#M">M</a> &middot; N &middot; <a href="Functions5.html#O">O</a> &middot; <a href="Functions6.html#P">P</a> &middot; Q &middot; <a href="Functions6.html#R">R</a> &middot; <a href="Functions6.html#S">S</a> &middot; <a href="Functions7.html#T">T</a> &middot; <a href="Functions7.html#U">U</a> &middot; <a href="Functions7.html#V">V</a> &middot; <a href="Functions7.html#W">W</a> &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>add</span><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel.add" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=IParent>mxGraphModel</a><a href="../files/util/mxRectangle-php.html#mxRectangle.add" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=IParent>mxRectangle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.addAlias" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>addAlias</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.addBundle" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>addBundle</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.addListener" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>addListener</a>, <span class=IParent>mxEventSource</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.addLogfile" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>addLogfile</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.addObjectValue" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>addObjectValue</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.addStylename" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>addStylename</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.afterDecode" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>afterDecode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.afterEncode" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>afterEncode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>apply</span><div class=ISubIndex><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction.apply" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=IParent>mxEdgeStyleFunction</a><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction.apply" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=IParent>mxPerimeterFunction</a></div></td></tr><tr><td class=IHeading><a name="B"></a>B</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.beforeDecode" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>beforeDecode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.beforeEncode" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>beforeEncode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.beginUpdate" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>beginUpdate</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=IHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellAdded" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>cellAdded</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellCloned" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>cellCloned</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellRemoved" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>cellRemoved</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.childMoved" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>childMoved</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.clear" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>clear</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCell" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>cloneCell</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCellImpl" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>cloneCellImpl</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCells" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>cloneCells</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.cloneTemplate" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>cloneTemplate</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.close" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>close</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.consume" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>consume</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>contains</span><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel.contains" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-php.html#mxUtils.contains" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>convert</span><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.convert" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.convert" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=IParent>mxGraphViewImageReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>convertFile</span><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.convertFile" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.convertFile" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=IParent>mxGraphViewImageReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.convertValueFromXml" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=ISymbol>convertValueFromXml</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.convertValueToString" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=ISymbol>convertValueToString</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.convertValueToXml" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=ISymbol>convertValueToXml</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>copy</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.copy" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=IParent>mxCell</a><a href="../files/view/mxCellState-php.html#mxCellState.copy" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=IParent>mxCellState</a><a href="../files/model/mxGeometry-php.html#mxGeometry.copy" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=IParent>mxGeometry</a><a href="../files/util/mxPoint-php.html#mxPoint.copy" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')" class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.copy" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')" class=IParent>mxRectangle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.copyValue" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')" class=ISymbol>copyValue</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.create" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')" class=ISymbol>create</a>, <span class=IParent>mxCellPath</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>createCanvas</span><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.createCanvas" id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')" class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.createCanvas" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')" class=IParent>mxGraphViewImageReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.createDefaultEdgeStyle" id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')" class=ISymbol>createDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.createDefaultVertexStyle" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')" class=ISymbol>createDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createEdge" id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')" class=ISymbol>createEdge</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createGraphView" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')" class=ISymbol>createGraphView</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createId" id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')" class=ISymbol>createId</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createImage" id=link50 onMouseOver="ShowTip(event, 'tt50', 'link50')" onMouseOut="HideTip('tt50')" class=ISymbol>createImage</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createRoot" id=link51 onMouseOver="ShowTip(event, 'tt51', 'link51')" onMouseOut="HideTip('tt51')" class=ISymbol>createRoot</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.createState" id=link52 onMouseOver="ShowTip(event, 'tt52', 'link52')" onMouseOut="HideTip('tt52')" class=ISymbol>createState</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createStylesheet" id=link53 onMouseOver="ShowTip(event, 'tt53', 'link53')" onMouseOut="HideTip('tt53')" class=ISymbol>createStylesheet</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createVertex" id=link54 onMouseOver="ShowTip(event, 'tt54', 'link54')" onMouseOut="HideTip('tt54')" class=ISymbol>createVertex</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.createXmlDocument" id=link55 onMouseOver="ShowTip(event, 'tt55', 'link55')" onMouseOut="HideTip('tt55')" class=ISymbol>createXmlDocument</a>, <span class=IParent>mxUtils</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function add(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$child,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified child to the parent at the given index using mxChildChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function add(</td><td class=PParameter nowrap>$rect</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the given rectangle to this rectangle.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addAlias(</td><td class=PParameter nowrap>$classname,</td></tr><tr><td></td><td class=PParameter nowrap>$codecname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds an alias for mapping a classname to a codecname.</div></div><div class=CToolTip id="tt4"><div class=CFunction>Adds the specified mxImageBundle.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function addListener(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$listener</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a listener for the given event name. </div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addLogfile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a file for logging.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function addObjectValue(</td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$fieldname,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$template</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the decoded child node as a value of the given object. </div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified stylename to the given style if it does not already contain the stylename.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function afterDecode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to post-process the object after decoding. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function afterEncode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to post-process the node for the given object after encoding and return the post-processed node. </div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public function apply(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$target,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$result</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Implements an edge style function. </div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public function apply(</td><td class=PParameter nowrap>$bounds,</td></tr><tr><td></td><td class=PParameter nowrap>$vertex,</td></tr><tr><td></td><td class=PParameter nowrap>$next,</td></tr><tr><td></td><td class=PParameter nowrap>$orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Implements a perimeter function.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function beforeDecode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode. </div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function beforeEncode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to pre-process the object before encoding. </div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function beginUpdate()</td></tr></table></blockquote>Increments the updateLevel by one. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellAdded(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner callback to update cells when a cell has been added. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellCloned(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for cloning the cell. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellRemoved(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner callback to update cells when a cell has been removed.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function childMoved(</td><td class=PParameter nowrap>$parent,</td></tr><tr><td></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Invoked when a child state was moved as a result of late evaluation of its position. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function clear()</td></tr></table></blockquote>Sets a new root using createRoot.</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCell(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a deep clone of the given mxCell (including the children) which is created using cloneCells.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCellImpl(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping,</td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner helper method for cloning cells recursively.</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCells(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an array of clones for the given array of mxCells. </div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function cloneTemplate()</td></tr></table></blockquote>Creates a new instance of the template for this codec.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function close()</td></tr></table></blockquote>Closes all open logfiles.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function consume()</td></tr></table></blockquote>Consumes the event.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function contains(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the model contains the given mxCell.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function contains(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the specified point (x, y) is contained in the given rectangle.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convert(</td><td class=PParameter nowrap>$string,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the HTML markup for the given display XML string.</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convert(</td><td class=PParameter nowrap>$string,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the image for the given display XML string.</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convertFile(</td><td class=PParameter nowrap>$filename,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the HTML markup for the given display XML file.</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convertFile(</td><td class=PParameter nowrap>$filename,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the image for the given display XML file.</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueFromXml(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the given value. </div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueToString(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the textual representation for the given cell. </div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueToXml(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the given value without applying a conversion.</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a clone of the cell. </div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this state where all members are deeply cloned except the view and cell references, which are copied with no cloning to the new instance.</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this mxGeometry.</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this mxPoint.</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this mxRectangle.</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copyValue()</td></tr></table></blockquote>Returns a clone of the cell&rsquo;s user object.</div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function create(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the cell path for the given cell. </div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createCanvas(</td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the canvas to be used for rendering.</div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createCanvas(</td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the canvas to be used for rendering.</div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createDefaultEdgeStyle()</td></tr></table></blockquote>Creates and returns the default edge style.</div></div><div class=CToolTip id="tt46"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createDefaultVertexStyle()</td></tr></table></blockquote>Creates and returns the default vertex style.</div></div><div class=CToolTip id="tt47"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createEdge(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the edge to be used in insertEdge. </div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createGraphView()</td></tr></table></blockquote>Creates a new mxGraphView to be used in this graph.</div></div><div class=CToolTip id="tt49"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createId(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook method to create an Id for the specified cell. </div></div><div class=CToolTip id="tt50"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createImage(</td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt51"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createRoot()</td></tr></table></blockquote>Creates a new root cell with a default layer (child 0).</div></div><div class=CToolTip id="tt52"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createState(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the state for the specified cell.</div></div><div class=CToolTip id="tt53"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createStylesheet()</td></tr></table></blockquote>Creates a new mxStylesheet to be used in this graph.</div></div><div class=CToolTip id="tt54"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createVertex(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$relative</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the vertex to be used in insertVertex.</div></div><div class=CToolTip id="tt55"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function createXmlDocument()</td></tr></table></blockquote>Returns a new, empty XML document.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Functions</div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Functions2.html b/docs/php-api/index/Functions2.html
    new file mode 100644
    index 000000000..d73a18332
    --- /dev/null
    +++ b/docs/php-api/index/Functions2.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="Functions.html#A">A</a> &middot; <a href="Functions.html#B">B</a> &middot; <a href="Functions.html#C">C</a> &middot; <a href="#D">D</a> &middot; <a href="Functions3.html#E">E</a> &middot; <a href="Functions3.html#F">F</a> &middot; <a href="Functions4.html#G">G</a> &middot; H &middot; <a href="Functions5.html#I">I</a> &middot; J &middot; K &middot; <a href="Functions5.html#L">L</a> &middot; <a href="Functions5.html#M">M</a> &middot; N &middot; <a href="Functions5.html#O">O</a> &middot; <a href="Functions6.html#P">P</a> &middot; Q &middot; <a href="Functions6.html#R">R</a> &middot; <a href="Functions6.html#S">S</a> &middot; <a href="Functions7.html#T">T</a> &middot; <a href="Functions7.html#U">U</a> &middot; <a href="Functions7.html#V">V</a> &middot; <a href="Functions7.html#W">W</a> &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="D"></a>D</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.debug" id=link56 onMouseOver="ShowTip(event, 'tt56', 'link56')" onMouseOut="HideTip('tt56')" class=ISymbol>debug</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>decode</span><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.decode" id=link57 onMouseOver="ShowTip(event, 'tt57', 'link57')" onMouseOut="HideTip('tt57')" class=IParent>mxCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decode" id=link58 onMouseOver="ShowTip(event, 'tt58', 'link58')" onMouseOut="HideTip('tt58')" class=IParent>mxObjectCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeAttribute" id=link59 onMouseOver="ShowTip(event, 'tt59', 'link59')" onMouseOut="HideTip('tt59')" class=ISymbol>decodeAttribute</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeAttributes" id=link60 onMouseOver="ShowTip(event, 'tt60', 'link60')" onMouseOut="HideTip('tt60')" class=ISymbol>decodeAttributes</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.decodeCell" id=link61 onMouseOver="ShowTip(event, 'tt61', 'link61')" onMouseOut="HideTip('tt61')" class=ISymbol>decodeCell</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeChild" id=link62 onMouseOver="ShowTip(event, 'tt62', 'link62')" onMouseOut="HideTip('tt62')" class=ISymbol>decodeChild</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeChildren" id=link63 onMouseOver="ShowTip(event, 'tt63', 'link63')" onMouseOut="HideTip('tt63')" class=ISymbol>decodeChildren</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeNode" id=link64 onMouseOver="ShowTip(event, 'tt64', 'link64')" onMouseOut="HideTip('tt64')" class=ISymbol>decodeNode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>destroy</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.destroy" id=link65 onMouseOver="ShowTip(event, 'tt65', 'link65')" onMouseOut="HideTip('tt65')" class=IParent>mxGdCanvas</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.destroy" id=link66 onMouseOver="ShowTip(event, 'tt66', 'link66')" onMouseOut="HideTip('tt66')" class=IParent>mxGraphViewImageReader</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.destroy" id=link67 onMouseOver="ShowTip(event, 'tt67', 'link67')" onMouseOut="HideTip('tt67')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawActor" id=link68 onMouseOver="ShowTip(event, 'tt68', 'link68')" onMouseOut="HideTip('tt68')" class=ISymbol>drawActor</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCell" id=link69 onMouseOver="ShowTip(event, 'tt69', 'link69')" onMouseOut="HideTip('tt69')" class=ISymbol>drawCell</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCloud" id=link70 onMouseOver="ShowTip(event, 'tt70', 'link70')" onMouseOut="HideTip('tt70')" class=ISymbol>drawCloud</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCylinder" id=link71 onMouseOver="ShowTip(event, 'tt71', 'link71')" onMouseOut="HideTip('tt71')" class=ISymbol>drawCylinder</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawFixedTextLine" id=link72 onMouseOver="ShowTip(event, 'tt72', 'link72')" onMouseOut="HideTip('tt72')" class=ISymbol>drawFixedTextLine</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawGraph</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawGraph" id=link73 onMouseOver="ShowTip(event, 'tt73', 'link73')" onMouseOut="HideTip('tt73')" class=IParent>mxGdCanvas</a><a href="../files/view/mxGraph-php.html#mxGraph.drawGraph" id=link74 onMouseOver="ShowTip(event, 'tt74', 'link74')" onMouseOut="HideTip('tt74')" class=IParent>mxGraph</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawGraph" id=link75 onMouseOver="ShowTip(event, 'tt75', 'link75')" onMouseOut="HideTip('tt75')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawHexagon" id=link76 onMouseOver="ShowTip(event, 'tt76', 'link76')" onMouseOut="HideTip('tt76')" class=ISymbol>drawHexagon</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawImage</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawImage" id=link77 onMouseOver="ShowTip(event, 'tt77', 'link77')" onMouseOut="HideTip('tt77')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawImage" id=link78 onMouseOver="ShowTip(event, 'tt78', 'link78')" onMouseOut="HideTip('tt78')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawLabel" id=link79 onMouseOver="ShowTip(event, 'tt79', 'link79')" onMouseOut="HideTip('tt79')" class=ISymbol>drawLabel</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawLine</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawLine" id=link80 onMouseOver="ShowTip(event, 'tt80', 'link80')" onMouseOut="HideTip('tt80')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawLine" id=link81 onMouseOver="ShowTip(event, 'tt81', 'link81')" onMouseOut="HideTip('tt81')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawMarker" id=link82 onMouseOver="ShowTip(event, 'tt82', 'link82')" onMouseOut="HideTip('tt82')" class=ISymbol>drawMarker</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawOval" id=link83 onMouseOver="ShowTip(event, 'tt83', 'link83')" onMouseOut="HideTip('tt83')" class=ISymbol>drawOval</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawPolygon" id=link84 onMouseOver="ShowTip(event, 'tt84', 'link84')" onMouseOut="HideTip('tt84')" class=ISymbol>drawPolygon</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawRect" id=link85 onMouseOver="ShowTip(event, 'tt85', 'link85')" onMouseOut="HideTip('tt85')" class=ISymbol>drawRect</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawRhombus" id=link86 onMouseOver="ShowTip(event, 'tt86', 'link86')" onMouseOut="HideTip('tt86')" class=ISymbol>drawRhombus</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawShape</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawShape" id=link87 onMouseOver="ShowTip(event, 'tt87', 'link87')" onMouseOut="HideTip('tt87')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawShape" id=link88 onMouseOver="ShowTip(event, 'tt88', 'link88')" onMouseOut="HideTip('tt88')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawString"  class=ISymbol>drawString</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawText</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawText" id=link89 onMouseOver="ShowTip(event, 'tt89', 'link89')" onMouseOut="HideTip('tt89')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawText" id=link90 onMouseOver="ShowTip(event, 'tt90', 'link90')" onMouseOut="HideTip('tt90')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTriangle" id=link91 onMouseOver="ShowTip(event, 'tt91', 'link91')" onMouseOut="HideTip('tt91')" class=ISymbol>drawTriangle</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTtfText" id=link92 onMouseOver="ShowTip(event, 'tt92', 'link92')" onMouseOut="HideTip('tt92')" class=ISymbol>drawTtfText</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTtxTextLine" id=link93 onMouseOver="ShowTip(event, 'tt93', 'link93')" onMouseOut="HideTip('tt93')" class=ISymbol>drawTtxTextLine</a>, <span class=IParent>mxGdCanvas</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt56"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function debug(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a debug trace.</div></div><div class=CToolTip id="tt57"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decode(</td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$into</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodes the given XML node. </div></div><div class=CToolTip id="tt58"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$into</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parses the given node into the object or returns a new object representing the given node.</div></div><div class=CToolTip id="tt59"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeAttribute(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the given attribute into the specified object.</div></div><div class=CToolTip id="tt60"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeAttributes(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodes all attributes of the given node using decodeAttribute.</div></div><div class=CToolTip id="tt61"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeCell(</td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$restoreStructures</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodes cells that have been encoded using inversion, ie. </div></div><div class=CToolTip id="tt62"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeChild(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$child,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the specified child into the given object.</div></div><div class=CToolTip id="tt63"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeChildren(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodec all children of the given node using decodeChild.</div></div><div class=CToolTip id="tt64"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeNode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calls decodeAttributes and decodeChildren for the given node.</div></div><div class=CToolTip id="tt65"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote>Destroys all allocated resources.</div></div><div class=CToolTip id="tt66"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote>Destroy all allocated resources for this reader.</div></div><div class=CToolTip id="tt67"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote>Destroy all allocated resources.</div></div><div class=CToolTip id="tt68"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawActor(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given cloud.</div></div><div class=CToolTip id="tt69"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCell(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given cell state.</div></div><div class=CToolTip id="tt70"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCloud(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given cloud.</div></div><div class=CToolTip id="tt71"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCylinder(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given cylinder.</div></div><div class=CToolTip id="tt72"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawFixedTextLine(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$font,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$left,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$top,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$color,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$horizontal</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given fixed text line.</div></div><div class=CToolTip id="tt73"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public static function drawGraph(</td><td class=PParameter nowrap>$graph,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$bg</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given graph using this canvas.</div></div><div class=CToolTip id="tt74"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawGraph(</td><td class=PParameter nowrap>$canvas</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given cell onto the specified canvas.</div></div><div class=CToolTip id="tt75"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public static function drawGraph(</td><td class=PParameter nowrap>$graph,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$bg</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given graph using this canvas.</div></div><div class=CToolTip id="tt76"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawHexagon(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$direction</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given haxagon.</div></div><div class=CToolTip id="tt77"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawImage(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$aspect</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws a given image.</div></div><div class=CToolTip id="tt78"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawImage(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$aspect</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified image.</div></div><div class=CToolTip id="tt79"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLabel(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$state,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$html</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given label.</div></div><div class=CToolTip id="tt80"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLine(</td><td class=PParameter nowrap>$x0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given line.</div></div><div class=CToolTip id="tt81"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLine(</td><td class=PParameter nowrap>$x0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified line.</div></div><div class=CToolTip id="tt82"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawMarker(</td><td class=PParameter nowrap>$type,</td></tr><tr><td></td><td class=PParameter nowrap>$p0,</td></tr><tr><td></td><td class=PParameter nowrap>$pe,</td></tr><tr><td></td><td class=PParameter nowrap>$size,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified marker.</div></div><div class=CToolTip id="tt83"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawOval(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given ellipse.</div></div><div class=CToolTip id="tt84"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawPolygon(</td><td class=PParameter nowrap>$points,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given polygon.</div></div><div class=CToolTip id="tt85"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawRect(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$rounded</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given rectangle. </div></div><div class=CToolTip id="tt86"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawRhombus(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given rhombus.</div></div><div class=CToolTip id="tt87"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawShape(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given shape.</div></div><div class=CToolTip id="tt88"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawShape(</td><td class=PParameter nowrap>$shape,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null,</td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified shape.</div></div><div class=CToolTip id="tt89"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt90"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified text.</div></div><div class=CToolTip id="tt91"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawTriangle(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$direction</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given triangle.</div></div><div class=CToolTip id="tt92"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawTtfText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt93"><div class=CFunction>Draws a single line of the given true type font text. </div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Functions</div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Functions3.html b/docs/php-api/index/Functions3.html
    new file mode 100644
    index 000000000..b3204f1d7
    --- /dev/null
    +++ b/docs/php-api/index/Functions3.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="Functions.html#A">A</a> &middot; <a href="Functions.html#B">B</a> &middot; <a href="Functions.html#C">C</a> &middot; <a href="Functions2.html#D">D</a> &middot; <a href="#E">E</a> &middot; <a href="#F">F</a> &middot; <a href="Functions4.html#G">G</a> &middot; H &middot; <a href="Functions5.html#I">I</a> &middot; J &middot; K &middot; <a href="Functions5.html#L">L</a> &middot; <a href="Functions5.html#M">M</a> &middot; N &middot; <a href="Functions5.html#O">O</a> &middot; <a href="Functions6.html#P">P</a> &middot; Q &middot; <a href="Functions6.html#R">R</a> &middot; <a href="Functions6.html#S">S</a> &middot; <a href="Functions7.html#T">T</a> &middot; <a href="Functions7.html#U">U</a> &middot; <a href="Functions7.html#V">V</a> &middot; <a href="Functions7.html#W">W</a> &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="E"></a>E</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>encode</span><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.encode" id=link94 onMouseOver="ShowTip(event, 'tt94', 'link94')" onMouseOut="HideTip('tt94')" class=IParent>mxCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encode" id=link95 onMouseOver="ShowTip(event, 'tt95', 'link95')" onMouseOut="HideTip('tt95')" class=IParent>mxObjectCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.encodeCell" id=link96 onMouseOver="ShowTip(event, 'tt96', 'link96')" onMouseOut="HideTip('tt96')" class=ISymbol>encodeCell</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.encodeImage" id=link97 onMouseOver="ShowTip(event, 'tt97', 'link97')" onMouseOut="HideTip('tt97')" class=ISymbol>encodeImage</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encodeObject" id=link98 onMouseOver="ShowTip(event, 'tt98', 'link98')" onMouseOut="HideTip('tt98')" class=ISymbol>encodeObject</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encodeValue" id=link99 onMouseOver="ShowTip(event, 'tt99', 'link99')" onMouseOut="HideTip('tt99')" class=ISymbol>encodeValue</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.endElement" id=link100 onMouseOver="ShowTip(event, 'tt100', 'link100')" onMouseOut="HideTip('tt100')" class=ISymbol>endElement</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.endUpdate" id=link101 onMouseOver="ShowTip(event, 'tt101', 'link101')" onMouseOut="HideTip('tt101')" class=ISymbol>endUpdate</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.enter" id=link102 onMouseOver="ShowTip(event, 'tt102', 'link102')" onMouseOut="HideTip('tt102')" class=ISymbol>enter</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>equals</span><div class=ISubIndex><a href="../files/util/mxPoint-php.html#mxPoint.equals" id=link103 onMouseOver="ShowTip(event, 'tt103', 'link103')" onMouseOut="HideTip('tt103')" class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.equals" id=link104 onMouseOver="ShowTip(event, 'tt104', 'link104')" onMouseOut="HideTip('tt104')" class=IParent>mxRectangle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.error" id=link105 onMouseOver="ShowTip(event, 'tt105', 'link105')" onMouseOut="HideTip('tt105')" class=ISymbol>error</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.evaluate" id=link106 onMouseOver="ShowTip(event, 'tt106', 'link106')" onMouseOut="HideTip('tt106')" class=ISymbol>evaluate</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.findNode" id=link107 onMouseOver="ShowTip(event, 'tt107', 'link107')" onMouseOut="HideTip('tt107')" class=ISymbol>findNode</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.findTreeRoots" id=link108 onMouseOver="ShowTip(event, 'tt108', 'link108')" onMouseOut="HideTip('tt108')" class=ISymbol>findTreeRoots</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.fine" id=link109 onMouseOver="ShowTip(event, 'tt109', 'link109')" onMouseOut="HideTip('tt109')" class=ISymbol>fine</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.fireEvent" id=link110 onMouseOver="ShowTip(event, 'tt110', 'link110')" onMouseOut="HideTip('tt110')" class=ISymbol>fireEvent</a>, <span class=IParent>mxEventSource</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.flipImage" id=link111 onMouseOver="ShowTip(event, 'tt111', 'link111')" onMouseOut="HideTip('tt111')" class=ISymbol>flipImage</a>, <span class=IParent>mxUtils</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt94"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encode(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the specified object and returns the resulting XML node.</div></div><div class=CToolTip id="tt95"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the specified object and returns a node representing then given object. </div></div><div class=CToolTip id="tt96"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeCell(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg. </div></div><div class=CToolTip id="tt97"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function encodeImage(</td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$format</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the given image using the GD image encoding routines. </div></div><div class=CToolTip id="tt98"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeObject(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the value of each member in then given obj into the given node using encodeValue.</div></div><div class=CToolTip id="tt99"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeValue(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node.</div></div><div class=CToolTip id="tt100"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function endElement(</td><td class=PParameter nowrap>$parser,</td></tr><tr><td></td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Invoked by the SAX parser when an element ends.</div></div><div class=CToolTip id="tt101"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function endUpdate()</td></tr></table></blockquote>Decrements the updateLevel by one and fires a notification event if the updateLevel reaches 0. </div></div><div class=CToolTip id="tt102"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function enter(</td><td class=PParameter nowrap>$method,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$text</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a method entry.</div></div><div class=CToolTip id="tt103"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function equals(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given object equals this point.</div></div><div class=CToolTip id="tt104"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function equals(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given object equals this rectangle.</div></div><div class=CToolTip id="tt105"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function error(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs an error trace.</div></div><div class=CToolTip id="tt106"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function evaluate(</td><td class=PParameter nowrap>$expression</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates an expression to a class member. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt107"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function findNode(</td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the first node where attr equals value. </div></div><div class=CToolTip id="tt108"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function findTreeRoots(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$isolate</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$invert</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns all children in the given parent which do not have incoming edges. </div></div><div class=CToolTip id="tt109"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function fine(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a fine trace.</div></div><div class=CToolTip id="tt110"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function fireEvent(</td><td class=PParameter nowrap>$event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Fires the event for the specified name.</div></div><div class=CToolTip id="tt111"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function flipImage(</td><td class=PParameter nowrap>$img,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Flips the given image horizontally and/or vertically and returns a new image instance.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Functions</div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Functions4.html b/docs/php-api/index/Functions4.html
    new file mode 100644
    index 000000000..91e3abda1
    --- /dev/null
    +++ b/docs/php-api/index/Functions4.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="Functions.html#A">A</a> &middot; <a href="Functions.html#B">B</a> &middot; <a href="Functions.html#C">C</a> &middot; <a href="Functions2.html#D">D</a> &middot; <a href="Functions3.html#E">E</a> &middot; <a href="Functions3.html#F">F</a> &middot; <a href="#G">G</a> &middot; H &middot; <a href="Functions5.html#I">I</a> &middot; J &middot; K &middot; <a href="Functions5.html#L">L</a> &middot; <a href="Functions5.html#M">M</a> &middot; N &middot; <a href="Functions5.html#O">O</a> &middot; <a href="Functions6.html#P">P</a> &middot; Q &middot; <a href="Functions6.html#R">R</a> &middot; <a href="Functions6.html#S">S</a> &middot; <a href="Functions7.html#T">T</a> &middot; <a href="Functions7.html#U">U</a> &middot; <a href="Functions7.html#V">V</a> &middot; <a href="Functions7.html#W">W</a> &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="G"></a>G</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getAttribute" id=link112 onMouseOver="ShowTip(event, 'tt112', 'link112')" onMouseOut="HideTip('tt112')" class=ISymbol>getAttribute</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getAttributeName" id=link113 onMouseOver="ShowTip(event, 'tt113', 'link113')" onMouseOut="HideTip('tt113')" class=ISymbol>getAttributeName</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getBoundingBox</span><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getBoundingBox" id=link114 onMouseOver="ShowTip(event, 'tt114', 'link114')" onMouseOut="HideTip('tt114')" class=IParent>mxGraph</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getBoundingBox" id=link115 onMouseOver="ShowTip(event, 'tt115', 'link115')" onMouseOut="HideTip('tt115')" class=IParent>mxGraphView</a><a href="../files/util/mxUtils-php.html#mxUtils.getBoundingBox" id=link116 onMouseOver="ShowTip(event, 'tt116', 'link116')" onMouseOut="HideTip('tt116')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getBounds" id=link117 onMouseOver="ShowTip(event, 'tt117', 'link117')" onMouseOut="HideTip('tt117')" class=ISymbol>getBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getBoundsForCells" id=link118 onMouseOver="ShowTip(event, 'tt118', 'link118')" onMouseOut="HideTip('tt118')" class=ISymbol>getBoundsForCells</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getCellBounds" id=link119 onMouseOver="ShowTip(event, 'tt119', 'link119')" onMouseOut="HideTip('tt119')" class=ISymbol>getCellBounds</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getCellGeometry" id=link120 onMouseOver="ShowTip(event, 'tt120', 'link120')" onMouseOut="HideTip('tt120')" class=ISymbol>getCellGeometry</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getCells" id=link121 onMouseOver="ShowTip(event, 'tt121', 'link121')" onMouseOut="HideTip('tt121')" class=ISymbol>getCells</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getCellStyle</span><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getCellStyle" id=link122 onMouseOver="ShowTip(event, 'tt122', 'link122')" onMouseOut="HideTip('tt122')" class=IParent>mxGraph</a><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getCellStyle" id=link123 onMouseOver="ShowTip(event, 'tt123', 'link123')" onMouseOut="HideTip('tt123')" class=IParent>mxStylesheet</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.getCenterX" id=link124 onMouseOver="ShowTip(event, 'tt124', 'link124')" onMouseOut="HideTip('tt124')" class=ISymbol>getCenterX</a>, <span class=IParent>mxRectangle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.getCenterY" id=link125 onMouseOver="ShowTip(event, 'tt125', 'link125')" onMouseOut="HideTip('tt125')" class=ISymbol>getCenterY</a>, <span class=IParent>mxRectangle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getChildAt</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getChildAt" id=link126 onMouseOver="ShowTip(event, 'tt126', 'link126')" onMouseOut="HideTip('tt126')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getChildAt" id=link127 onMouseOver="ShowTip(event, 'tt127', 'link127')" onMouseOut="HideTip('tt127')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getChildCount</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getChildCount" id=link128 onMouseOver="ShowTip(event, 'tt128', 'link128')" onMouseOut="HideTip('tt128')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getChildCount" id=link129 onMouseOver="ShowTip(event, 'tt129', 'link129')" onMouseOut="HideTip('tt129')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getChildOffsetForCell" id=link130 onMouseOver="ShowTip(event, 'tt130', 'link130')" onMouseOut="HideTip('tt130')" class=ISymbol>getChildOffsetForCell</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getCodec" id=link131 onMouseOver="ShowTip(event, 'tt131', 'link131')" onMouseOut="HideTip('tt131')" class=ISymbol>getCodec</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getColor" id=link132 onMouseOver="ShowTip(event, 'tt132', 'link132')" onMouseOut="HideTip('tt132')" class=ISymbol>getColor</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getConnectionConstraint" id=link133 onMouseOver="ShowTip(event, 'tt133', 'link133')" onMouseOut="HideTip('tt133')" class=ISymbol>getConnectionConstraint</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getConnectionPoint" id=link134 onMouseOver="ShowTip(event, 'tt134', 'link134')" onMouseOut="HideTip('tt134')" class=ISymbol>getConnectionPoint</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getDefaultEdgeStyle" id=link135 onMouseOver="ShowTip(event, 'tt135', 'link135')" onMouseOut="HideTip('tt135')" class=ISymbol>getDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getDefaultParent" id=link136 onMouseOver="ShowTip(event, 'tt136', 'link136')" onMouseOut="HideTip('tt136')" class=ISymbol>getDefaultParent</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getDefaultVertexStyle" id=link137 onMouseOver="ShowTip(event, 'tt137', 'link137')" onMouseOut="HideTip('tt137')" class=ISymbol>getDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getDirectedEdgeCount" id=link138 onMouseOver="ShowTip(event, 'tt138', 'link138')" onMouseOut="HideTip('tt138')" class=ISymbol>getDirectedEdgeCount</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getEdgeAt</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getEdgeAt" id=link139 onMouseOver="ShowTip(event, 'tt139', 'link139')" onMouseOut="HideTip('tt139')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdgeAt" id=link140 onMouseOver="ShowTip(event, 'tt140', 'link140')" onMouseOut="HideTip('tt140')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getEdgeCount</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getEdgeCount" id=link141 onMouseOver="ShowTip(event, 'tt141', 'link141')" onMouseOut="HideTip('tt141')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdgeCount" id=link142 onMouseOver="ShowTip(event, 'tt142', 'link142')" onMouseOut="HideTip('tt142')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getEdgeIndex" id=link143 onMouseOver="ShowTip(event, 'tt143', 'link143')" onMouseOut="HideTip('tt143')" class=ISymbol>getEdgeIndex</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdges" id=link144 onMouseOver="ShowTip(event, 'tt144', 'link144')" onMouseOut="HideTip('tt144')" class=ISymbol>getEdges</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getEdgeStyle" id=link145 onMouseOver="ShowTip(event, 'tt145', 'link145')" onMouseOut="HideTip('tt145')" class=ISymbol>getEdgeStyle</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.getElementById" id=link146 onMouseOver="ShowTip(event, 'tt146', 'link146')" onMouseOut="HideTip('tt146')" class=ISymbol>getElementById</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getFieldName" id=link147 onMouseOver="ShowTip(event, 'tt147', 'link147')" onMouseOut="HideTip('tt147')" class=ISymbol>getFieldName</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getFieldTemplate" id=link148 onMouseOver="ShowTip(event, 'tt148', 'link148')" onMouseOut="HideTip('tt148')" class=ISymbol>getFieldTemplate</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getFixedFontSize</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getFixedFontSize" id=link149 onMouseOver="ShowTip(event, 'tt149', 'link149')" onMouseOut="HideTip('tt149')" class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getFixedFontSize" id=link150 onMouseOver="ShowTip(event, 'tt150', 'link150')" onMouseOut="HideTip('tt150')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getGeometry</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getGeometry" id=link151 onMouseOver="ShowTip(event, 'tt151', 'link151')" onMouseOut="HideTip('tt151')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getGeometry" id=link152 onMouseOver="ShowTip(event, 'tt152', 'link152')" onMouseOut="HideTip('tt152')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getGraphBounds</span><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getGraphBounds" id=link153 onMouseOver="ShowTip(event, 'tt153', 'link153')" onMouseOut="HideTip('tt153')" class=IParent>mxGraph</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getGraphBounds" id=link154 onMouseOver="ShowTip(event, 'tt154', 'link154')" onMouseOut="HideTip('tt154')" class=IParent>mxGraphView</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getHashCode" id=link155 onMouseOver="ShowTip(event, 'tt155', 'link155')" onMouseOut="HideTip('tt155')" class=ISymbol>getHashCode</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.getHtml" id=link156 onMouseOver="ShowTip(event, 'tt156', 'link156')" onMouseOut="HideTip('tt156')" class=ISymbol>getHtml</a>, <span class=IParent>mxHtmlCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getId</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getId" id=link157 onMouseOver="ShowTip(event, 'tt157', 'link157')" onMouseOut="HideTip('tt157')" class=IParent>mxCell</a><a href="../files/io/mxCodec-php.html#mxCodec.getId" id=link158 onMouseOver="ShowTip(event, 'tt158', 'link158')" onMouseOut="HideTip('tt158')" class=IParent>mxCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getImage</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getImage" id=link159 onMouseOver="ShowTip(event, 'tt159', 'link159')" onMouseOut="HideTip('tt159')" class=IParent>mxGdCanvas</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.getImage" id=link160 onMouseOver="ShowTip(event, 'tt160', 'link160')" onMouseOut="HideTip('tt160')" class=IParent>mxImageBundle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getImageBundles" id=link161 onMouseOver="ShowTip(event, 'tt161', 'link161')" onMouseOut="HideTip('tt161')" class=ISymbol>getImageBundles</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getImageForStyle" id=link162 onMouseOver="ShowTip(event, 'tt162', 'link162')" onMouseOut="HideTip('tt162')" class=ISymbol>getImageForStyle</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getImageFromBundles" id=link163 onMouseOver="ShowTip(event, 'tt163', 'link163')" onMouseOut="HideTip('tt163')" class=ISymbol>getImageFromBundles</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.getImages" id=link164 onMouseOver="ShowTip(event, 'tt164', 'link164')" onMouseOut="HideTip('tt164')" class=ISymbol>getImages</a>, <span class=IParent>mxImageBundle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getIndex" id=link165 onMouseOver="ShowTip(event, 'tt165', 'link165')" onMouseOut="HideTip('tt165')" class=ISymbol>getIndex</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getInstanceForName" id=link166 onMouseOver="ShowTip(event, 'tt166', 'link166')" onMouseOut="HideTip('tt166')" class=ISymbol>getInstanceForName</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getLabel" id=link167 onMouseOver="ShowTip(event, 'tt167', 'link167')" onMouseOut="HideTip('tt167')" class=ISymbol>getLabel</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getLabelPaintBounds" id=link168 onMouseOver="ShowTip(event, 'tt168', 'link168')" onMouseOut="HideTip('tt168')" class=ISymbol>getLabelPaintBounds</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getLabelSize" id=link169 onMouseOver="ShowTip(event, 'tt169', 'link169')" onMouseOut="HideTip('tt169')" class=ISymbol>getLabelSize</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getModel" id=link170 onMouseOver="ShowTip(event, 'tt170', 'link170')" onMouseOut="HideTip('tt170')" class=ISymbol>getModel</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getName</span><div class=ISubIndex><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getName" id=link171 onMouseOver="ShowTip(event, 'tt171', 'link171')" onMouseOut="HideTip('tt171')" class=IParent>mxCodecRegistry</a><a href="../files/util/mxEventObject-php.html#mxEventObject.getName" id=link172 onMouseOver="ShowTip(event, 'tt172', 'link172')" onMouseOut="HideTip('tt172')" class=IParent>mxEventObject</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getName" id=link173 onMouseOver="ShowTip(event, 'tt173', 'link173')" onMouseOut="HideTip('tt173')" class=IParent>mxObjectCodec</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.getName" id=link174 onMouseOver="ShowTip(event, 'tt174', 'link174')" onMouseOut="HideTip('tt174')" class=IParent>mxStyleRegistry</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getNearestCommonAncestor" id=link175 onMouseOver="ShowTip(event, 'tt175', 'link175')" onMouseOut="HideTip('tt175')" class=ISymbol>getNearestCommonAncestor</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getNextPoint" id=link176 onMouseOver="ShowTip(event, 'tt176', 'link176')" onMouseOut="HideTip('tt176')" class=ISymbol>getNextPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getNumber" id=link177 onMouseOver="ShowTip(event, 'tt177', 'link177')" onMouseOut="HideTip('tt177')" class=ISymbol>getNumber</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.getObject" id=link178 onMouseOver="ShowTip(event, 'tt178', 'link178')" onMouseOut="HideTip('tt178')" class=ISymbol>getObject</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getOrigin" id=link179 onMouseOver="ShowTip(event, 'tt179', 'link179')" onMouseOut="HideTip('tt179')" class=ISymbol>getOrigin</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getPaintBounds" id=link180 onMouseOver="ShowTip(event, 'tt180', 'link180')" onMouseOut="HideTip('tt180')" class=ISymbol>getPaintBounds</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getParent</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getParent" id=link181 onMouseOver="ShowTip(event, 'tt181', 'link181')" onMouseOut="HideTip('tt181')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getParent" id=link182 onMouseOver="ShowTip(event, 'tt182', 'link182')" onMouseOut="HideTip('tt182')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.getParentPath" id=link183 onMouseOver="ShowTip(event, 'tt183', 'link183')" onMouseOut="HideTip('tt183')" class=ISymbol>getParentPath</a>, <span class=IParent>mxCellPath</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getPerimeterBounds</span><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState.getPerimeterBounds" id=link184 onMouseOver="ShowTip(event, 'tt184', 'link184')" onMouseOut="HideTip('tt184')" class=IParent>mxCellState</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterBounds" id=link185 onMouseOver="ShowTip(event, 'tt185', 'link185')" onMouseOut="HideTip('tt185')" class=IParent>mxGraphView</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterFunction" id=link186 onMouseOver="ShowTip(event, 'tt186', 'link186')" onMouseOut="HideTip('tt186')" class=ISymbol>getPerimeterFunction</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterPoint" id=link187 onMouseOver="ShowTip(event, 'tt187', 'link187')" onMouseOut="HideTip('tt187')" class=ISymbol>getPerimeterPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPoint" id=link188 onMouseOver="ShowTip(event, 'tt188', 'link188')" onMouseOut="HideTip('tt188')" class=ISymbol>getPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.getProperties" id=link189 onMouseOver="ShowTip(event, 'tt189', 'link189')" onMouseOut="HideTip('tt189')" class=ISymbol>getProperties</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.getProperty" id=link190 onMouseOver="ShowTip(event, 'tt190', 'link190')" onMouseOut="HideTip('tt190')" class=ISymbol>getProperty</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getRoot" id=link191 onMouseOver="ShowTip(event, 'tt191', 'link191')" onMouseOut="HideTip('tt191')" class=ISymbol>getRoot</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getRotatedPoint" id=link192 onMouseOver="ShowTip(event, 'tt192', 'link192')" onMouseOut="HideTip('tt192')" class=ISymbol>getRotatedPoint</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getRoutingCenterX" id=link193 onMouseOver="ShowTip(event, 'tt193', 'link193')" onMouseOut="HideTip('tt193')" class=ISymbol>getRoutingCenterX</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getRoutingCenterY" id=link194 onMouseOver="ShowTip(event, 'tt194', 'link194')" onMouseOut="HideTip('tt194')" class=ISymbol>getRoutingCenterY</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getScaledLabelBounds" id=link195 onMouseOver="ShowTip(event, 'tt195', 'link195')" onMouseOut="HideTip('tt195')" class=ISymbol>getScaledLabelBounds</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getSizeForString" id=link196 onMouseOver="ShowTip(event, 'tt196', 'link196')" onMouseOut="HideTip('tt196')" class=ISymbol>getSizeForString</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getState" id=link197 onMouseOver="ShowTip(event, 'tt197', 'link197')" onMouseOut="HideTip('tt197')" class=ISymbol>getState</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getStates" id=link198 onMouseOver="ShowTip(event, 'tt198', 'link198')" onMouseOut="HideTip('tt198')" class=ISymbol>getStates</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getStyle</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getStyle" id=link199 onMouseOver="ShowTip(event, 'tt199', 'link199')" onMouseOut="HideTip('tt199')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getStyle" id=link200 onMouseOver="ShowTip(event, 'tt200', 'link200')" onMouseOut="HideTip('tt200')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getStylename" id=link201 onMouseOver="ShowTip(event, 'tt201', 'link201')" onMouseOut="HideTip('tt201')" class=ISymbol>getStylename</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getStylenames" id=link202 onMouseOver="ShowTip(event, 'tt202', 'link202')" onMouseOut="HideTip('tt202')" class=ISymbol>getStylenames</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getStylesheet" id=link203 onMouseOver="ShowTip(event, 'tt203', 'link203')" onMouseOut="HideTip('tt203')" class=ISymbol>getStylesheet</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getTerminal</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getTerminal" id=link204 onMouseOver="ShowTip(event, 'tt204', 'link204')" onMouseOut="HideTip('tt204')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getTerminal" id=link205 onMouseOver="ShowTip(event, 'tt205', 'link205')" onMouseOut="HideTip('tt205')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.getTerminalPoint" id=link206 onMouseOver="ShowTip(event, 'tt206', 'link206')" onMouseOut="HideTip('tt206')" class=ISymbol>getTerminalPoint</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getTerminalPort" id=link207 onMouseOver="ShowTip(event, 'tt207', 'link207')" onMouseOut="HideTip('tt207')" class=ISymbol>getTerminalPort</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getTrueTypeFont</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getTrueTypeFont" id=link208 onMouseOver="ShowTip(event, 'tt208', 'link208')" onMouseOut="HideTip('tt208')" class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getTrueTypeFont" id=link209 onMouseOver="ShowTip(event, 'tt209', 'link209')" onMouseOut="HideTip('tt209')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getTrueTypeFontSize</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getTrueTypeFontSize" id=link210 onMouseOver="ShowTip(event, 'tt210', 'link210')" onMouseOut="HideTip('tt210')" class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getTrueTypeFontSize" id=link211 onMouseOver="ShowTip(event, 'tt211', 'link211')" onMouseOut="HideTip('tt211')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getValue</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getValue" id=link212 onMouseOver="ShowTip(event, 'tt212', 'link212')" onMouseOut="HideTip('tt212')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getValue" id=link213 onMouseOver="ShowTip(event, 'tt213', 'link213')" onMouseOut="HideTip('tt213')" class=IParent>mxGraphModel</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.getValue" id=link214 onMouseOver="ShowTip(event, 'tt214', 'link214')" onMouseOut="HideTip('tt214')" class=IParent>mxStyleRegistry</a><a href="../files/util/mxUtils-php.html#mxUtils.getValue" id=link215 onMouseOver="ShowTip(event, 'tt215', 'link215')" onMouseOut="HideTip('tt215')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getView" id=link216 onMouseOver="ShowTip(event, 'tt216', 'link216')" onMouseOut="HideTip('tt216')" class=ISymbol>getView</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getVisibleTerminal" id=link217 onMouseOver="ShowTip(event, 'tt217', 'link217')" onMouseOut="HideTip('tt217')" class=ISymbol>getVisibleTerminal</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.graphModelChanged" id=link218 onMouseOver="ShowTip(event, 'tt218', 'link218')" onMouseOut="HideTip('tt218')" class=ISymbol>graphModelChanged</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.grow" id=link219 onMouseOver="ShowTip(event, 'tt219', 'link219')" onMouseOut="HideTip('tt219')" class=ISymbol>grow</a>, <span class=IParent>mxRectangle</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt112"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getAttribute(</td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$defaultValue</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the specified attribute from the user object if it is an XML node.</div></div><div class=CToolTip id="tt113"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getAttributeName(</td><td class=PParameter nowrap>$fieldname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the attributename for the given fieldname. </div></div><div class=CToolTip id="tt114"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundingBox(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding box of the given cell including all connected edges if includeEdge is true.</div></div><div class=CToolTip id="tt115"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundingBox(</td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding for for an array of cells or null, if no cells are specified.</div></div><div class=CToolTip id="tt116"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getBoundingBox(</td><td class=PParameter nowrap>$rect,</td></tr><tr><td></td><td class=PParameter nowrap>$rotation</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding box for the rotated rectangle.</div></div><div class=CToolTip id="tt117"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBounds(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding for for an array of cells or null, if no cells are specified.</div></div><div class=CToolTip id="tt118"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundsForCells(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounds for the given cells.</div></div><div class=CToolTip id="tt119"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellBounds(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounds of the given cell including all connected edges if includeEdge is true.</div></div><div class=CToolTip id="tt120"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellGeometry(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxGeometry for the given mxCell.</div></div><div class=CToolTip id="tt121"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCells()</td></tr></table></blockquote>Returns the internal lookup table that is used to map from Ids to cells.</div></div><div class=CToolTip id="tt122"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellStyle(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt123"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellStyle(</td><td class=PParameter nowrap>$name,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$defaultStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell style for the specified cell or the given defaultStyle if no style can be found for the given stylename.</div></div><div class=CToolTip id="tt124"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCenterX()</td></tr></table></blockquote>Returns the x-coordinate of the center point.</div></div><div class=CToolTip id="tt125"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCenterY()</td></tr></table></blockquote>Returns the y-coordinate of the center point.</div></div><div class=CToolTip id="tt126"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildAt(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the child at the specified index.</div></div><div class=CToolTip id="tt127"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildAt(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the child of the given mxCell at the given index.</div></div><div class=CToolTip id="tt128"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getChildCount()</td></tr></table></blockquote>Returns the number of child cells.</div></div><div class=CToolTip id="tt129"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildCount(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of children in the given cell.</div></div><div class=CToolTip id="tt130"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildOffsetForCell(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the offset to be used for the cells inside the given cell. </div></div><div class=CToolTip id="tt131"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getCodec(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a codec that handles objects that are constructed using the given ctor.</div></div><div class=CToolTip id="tt132"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getColor(</td><td class=PParameter nowrap>$hex,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Allocates the given color and returns a reference to it. </div></div><div class=CToolTip id="tt133"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getConnectionConstraint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxConnectionConstraint that describes the given connection point. </div></div><div class=CToolTip id="tt134"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getConnectionPoint(</td><td class=PParameter nowrap>$vertex,</td></tr><tr><td></td><td class=PParameter nowrap>$constraint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</div></div><div class=CToolTip id="tt135"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultEdgeStyle()</td></tr></table></blockquote>Sets the default style for edges.</div></div><div class=CToolTip id="tt136"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultParent()</td></tr></table></blockquote>Returns the first child child of mxGraphModel.root. </div></div><div class=CToolTip id="tt137"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultVertexStyle()</td></tr></table></blockquote>Returns the default style for vertices.</div></div><div class=CToolTip id="tt138"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getDirectedEdgeCount(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$outgoing,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$ignoredEdge</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of incoming or outgoing edges, ignoring the given edge.</div></div><div class=CToolTip id="tt139"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeAt(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edge at the specified index in edges.</div></div><div class=CToolTip id="tt140"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeAt(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edge of cell at the given index.</div></div><div class=CToolTip id="tt141"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getEdgeCount()</td></tr></table></blockquote>Returns the number of edges in the edge array.</div></div><div class=CToolTip id="tt142"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeCount(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of distinct edges connected to the given cell.</div></div><div class=CToolTip id="tt143"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeIndex(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of the specified edge in edges.</div></div><div class=CToolTip id="tt144"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdges(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns all distinct edges connected to this cell as an array of mxCells. </div></div><div class=CToolTip id="tt145"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeStyle(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edge style function to be used to render the given edge state.</div></div><div class=CToolTip id="tt146"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getElementById(</td><td class=PParameter nowrap>$id,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$attr</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;id&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the element with the given ID from document. </div></div><div class=CToolTip id="tt147"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFieldName(</td><td class=PParameter nowrap>$attributename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the fieldname for the given attributename. </div></div><div class=CToolTip id="tt148"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFieldTemplate(</td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$fieldname,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the template instance for the given field. </div></div><div class=CToolTip id="tt149"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFixedFontSize(</td><td class=PParameter nowrap>$fontSize,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the fixed font size for GD (1 t0 5) for the given font properties</div></div><div class=CToolTip id="tt150"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getFixedFontSize(</td><td class=PParameter nowrap>$fontSize,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the fixed font size for GD (1 t0 5) for the given font properties</div></div><div class=CToolTip id="tt151"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGeometry()</td></tr></table></blockquote>Returns the mxGeometry that describes the geometry.</div></div><div class=CToolTip id="tt152"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getGeometry(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxGeometry of the given mxCell.</div></div><div class=CToolTip id="tt153"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGraphBounds()</td></tr></table></blockquote>Returns the bounds of the visible graph. </div></div><div class=CToolTip id="tt154"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGraphBounds()</td></tr></table></blockquote>Returns graphBounds.</div></div><div class=CToolTip id="tt155"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getHashCode(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a unique string that represents the given instance.</div></div><div class=CToolTip id="tt156"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getHtml()</td></tr></table></blockquote>Gets the HTML that represents the canvas.</div></div><div class=CToolTip id="tt157"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getId()</td></tr></table></blockquote>Returns the Id of the cell as a string.</div></div><div class=CToolTip id="tt158"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getId(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the ID of the specified object. </div></div><div class=CToolTip id="tt159"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImage()</td></tr></table></blockquote>Returns an image that represents this canvas.</div></div><div class=CToolTip id="tt160"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImage(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for the given key.</div></div><div class=CToolTip id="tt161"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImageBundles()</td></tr></table></blockquote>Returns the imageBundles.</div></div><div class=CToolTip id="tt162"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImageForStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an image that represents this canvas.</div></div><div class=CToolTip id="tt163"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImageFromBundles(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Searches all imageBundles for the specified key and returns the value for the first match or null if the key is not found.</div></div><div class=CToolTip id="tt164"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImages()</td></tr></table></blockquote>Returns the images.</div></div><div class=CToolTip id="tt165"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getIndex(</td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of the specified child in the child array.</div></div><div class=CToolTip id="tt166"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getInstanceForName(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates and returns a new instance for the given class name.</div></div><div class=CToolTip id="tt167"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getLabel(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a string or DOM node that represents the label for the given cell. </div></div><div class=CToolTip id="tt168"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getLabelPaintBounds(</td><td class=PParameter nowrap>$label,</td></tr><tr><td></td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$isHtml,</td></tr><tr><td></td><td class=PParameter nowrap>$offset,</td></tr><tr><td></td><td class=PParameter nowrap>$vertexBounds,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the paint bounds for the given label.</div></div><div class=CToolTip id="tt169"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getLabelSize(</td><td class=PParameter nowrap>$label,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the size of the given label.</div></div><div class=CToolTip id="tt170"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getModel()</td></tr></table></blockquote>Returns the mxGraphModel that contains the cells.</div></div><div class=CToolTip id="tt171"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getName(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the codec name for the given object instance.</div></div><div class=CToolTip id="tt172"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getName()</td></tr></table></blockquote>Returns name.</div></div><div class=CToolTip id="tt173"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getName()</td></tr></table></blockquote>Creates a new instance of the template for this codec.</div></div><div class=CToolTip id="tt174"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getName(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the name for the given value.</div></div><div class=CToolTip id="tt175"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getNearestCommonAncestor(</td><td class=PParameter nowrap>$cell1,</td></tr><tr><td></td><td class=PParameter nowrap>$cell2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest common ancestor for the specified cells.</div></div><div class=CToolTip id="tt176"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getNextPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$opposite,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</div></div><div class=CToolTip id="tt177"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getNumber(</td><td class=PParameter nowrap>$dict,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for key in dictionary or 0 if no value is defined for the key.</div></div><div class=CToolTip id="tt178"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getObject(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the decoded object for the element with the specified ID in document. </div></div><div class=CToolTip id="tt179"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getOrigin(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the absolute, cummulated origin for the children inside the given parent as an mxPoint.</div></div><div class=CToolTip id="tt180"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPaintBounds(</td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding box of the given cells and their descendants.</div></div><div class=CToolTip id="tt181"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getParent()</td></tr></table></blockquote>Returns the cell&rsquo;s parent.</div></div><div class=CToolTip id="tt182"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getParent(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the parent of the given cell.</div></div><div class=CToolTip id="tt183"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getParentPath(</td><td class=PParameter nowrap>$path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell for the specified cell path using the given root as the root of the path.</div></div><div class=CToolTip id="tt184"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterBounds(</td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxRectangle that should be used as the perimeter of the cell.</div></div><div class=CToolTip id="tt185"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterBounds(</td><td class=PParameter nowrap>$terminal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the perimeter bounds for the given terminal, edge pair as an mxRectangle.</div></div><div class=CToolTip id="tt186"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterFunction(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the perimeter function for the given state.</div></div><div class=CToolTip id="tt187"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterPoint(</td><td class=PParameter nowrap>$terminal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$next,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$orthogonal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxPoint that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.</div></div><div class=CToolTip id="tt188"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPoint(</td><td class=PParameter nowrap>$state,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the absolute point on the edge for the given relative mxGeometry as an mxPoint. </div></div><div class=CToolTip id="tt189"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getProperties()</td></tr></table></blockquote>Returns properties.</div></div><div class=CToolTip id="tt190"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getProperty(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the property value for the given key.</div></div><div class=CToolTip id="tt191"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getRoot()</td></tr></table></blockquote>Returns the root of the model.</div></div><div class=CToolTip id="tt192"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getRotatedPoint(</td><td class=PParameter nowrap>$pt,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cos,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$sin,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cx</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Rotates the given point by the given cos and sin.</div></div><div class=CToolTip id="tt193"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getRoutingCenterX(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the x-coordinate of the center point for automatic routing.</div></div><div class=CToolTip id="tt194"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getRoutingCenterY(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the y-coordinate of the center point for automatic routing.</div></div><div class=CToolTip id="tt195"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getScaledLabelBounds(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$size,</td></tr><tr><td></td><td class=PParameter nowrap>$outerWidth,</td></tr><tr><td></td><td class=PParameter nowrap>$outerHeight,</td></tr><tr><td></td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounds for a label for the given location and size, taking into account the alignment and spacing in the specified style, as well as the width and height of the rectangle that contains the label. </div></div><div class=CToolTip id="tt196"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getSizeForString(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontSize</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxRectangle with the size (width and height in pixels) of the given string. </div></div><div class=CToolTip id="tt197"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getState(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$create</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell state for the specified cell. </div></div><div class=CToolTip id="tt198"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStates()</td></tr></table></blockquote>Returns the mxCellStates for the given array of mxCells. </div></div><div class=CToolTip id="tt199"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStyle()</td></tr></table></blockquote>Returns a string that describes the style.</div></div><div class=CToolTip id="tt200"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getStyle(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the style of the given mxCell.</div></div><div class=CToolTip id="tt201"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getStylename(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the stylename in a style of the form [stylename;|key=value;] or an empty string if the given style does not contain a stylename.</div></div><div class=CToolTip id="tt202"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getStylenames(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the stylenames in a style of the form [stylename;|key=value;] or an empty array if the given style does not contain any stylenames.</div></div><div class=CToolTip id="tt203"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStylesheet()</td></tr></table></blockquote>Returns the mxStylesheet that defines the style.</div></div><div class=CToolTip id="tt204"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminal(</td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the source or target terminal.</div></div><div class=CToolTip id="tt205"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$cource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the source or target mxCell of the given edge depending on the value of the boolean parameter.</div></div><div class=CToolTip id="tt206"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminalPoint(</td><td class=PParameter nowrap>$isSource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxPoint representing the source or target point of this edge. </div></div><div class=CToolTip id="tt207"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminalPort(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxCellState that represents the source or target terminal or port for the given edge.</div></div><div class=CToolTip id="tt208"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTrueTypeFont(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font to be used to draw the text with the given style.</div></div><div class=CToolTip id="tt209"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getTrueTypeFont(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font to be used to draw the text with the given style.</div></div><div class=CToolTip id="tt210"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTrueTypeFontSize(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font size to be used to draw the text with the given style. </div></div><div class=CToolTip id="tt211"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getTrueTypeFontSize(</td><td class=PParameter nowrap>$size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font size to be used to draw the text with the given style. </div></div><div class=CToolTip id="tt212"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getValue()</td></tr></table></blockquote>Returns the user object of the cell. </div></div><div class=CToolTip id="tt213"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getValue(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the user object of the given mxCell using mxCell.getValue.</div></div><div class=CToolTip id="tt214"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getValue(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value associated with the given name.</div></div><div class=CToolTip id="tt215"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getValue(</td><td class=PParameter nowrap>$dict,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for key in dictionary or the given default value if no value is defined for the key.</div></div><div class=CToolTip id="tt216"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getView()</td></tr></table></blockquote>Returns the mxGraphView that contains the mxCellStates.</div></div><div class=CToolTip id="tt217"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getVisibleTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest ancestor terminal that is visible. </div></div><div class=CToolTip id="tt218"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function graphModelChanged(</td><td class=PParameter nowrap>$event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called when the graph model has changed.</div></div><div class=CToolTip id="tt219"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function grow(</td><td class=PParameter nowrap>$amount</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Functions</div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Functions5.html b/docs/php-api/index/Functions5.html
    new file mode 100644
    index 000000000..ee4fe9b9d
    --- /dev/null
    +++ b/docs/php-api/index/Functions5.html
    @@ -0,0 +1,46 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="Functions.html#A">A</a> &middot; <a href="Functions.html#B">B</a> &middot; <a href="Functions.html#C">C</a> &middot; <a href="Functions2.html#D">D</a> &middot; <a href="Functions3.html#E">E</a> &middot; <a href="Functions3.html#F">F</a> &middot; <a href="Functions4.html#G">G</a> &middot; H &middot; <a href="#I">I</a> &middot; J &middot; K &middot; <a href="#L">L</a> &middot; <a href="#M">M</a> &middot; N &middot; <a href="#O">O</a> &middot; <a href="Functions6.html#P">P</a> &middot; Q &middot; <a href="Functions6.html#R">R</a> &middot; <a href="Functions6.html#S">S</a> &middot; <a href="Functions7.html#T">T</a> &middot; <a href="Functions7.html#U">U</a> &middot; <a href="Functions7.html#V">V</a> &middot; <a href="Functions7.html#W">W</a> &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="I"></a>I</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.indexOf" id=link220 onMouseOver="ShowTip(event, 'tt220', 'link220')" onMouseOut="HideTip('tt220')" class=ISymbol>indexOf</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.indexOfStylename" id=link221 onMouseOver="ShowTip(event, 'tt221', 'link221')" onMouseOut="HideTip('tt221')" class=ISymbol>indexOfStylename</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.info" id=link222 onMouseOver="ShowTip(event, 'tt222', 'link222')" onMouseOut="HideTip('tt222')" class=ISymbol>info</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.insert" id=link223 onMouseOver="ShowTip(event, 'tt223', 'link223')" onMouseOut="HideTip('tt223')" class=ISymbol>insert</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>insertEdge</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.insertEdge" id=link224 onMouseOver="ShowTip(event, 'tt224', 'link224')" onMouseOut="HideTip('tt224')" class=IParent>mxCell</a><a href="../files/view/mxGraph-php.html#mxGraph.insertEdge" id=link225 onMouseOver="ShowTip(event, 'tt225', 'link225')" onMouseOut="HideTip('tt225')" class=IParent>mxGraph</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.insertIntoGraph" id=link226 onMouseOver="ShowTip(event, 'tt226', 'link226')" onMouseOut="HideTip('tt226')" class=ISymbol>insertIntoGraph</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.insertVertex" id=link227 onMouseOver="ShowTip(event, 'tt227', 'link227')" onMouseOut="HideTip('tt227')" class=ISymbol>insertVertex</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.intersection" id=link228 onMouseOver="ShowTip(event, 'tt228', 'link228')" onMouseOut="HideTip('tt228')" class=ISymbol>intersection</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.invalidate"  class=ISymbol>invalidate</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isAncestor" id=link229 onMouseOver="ShowTip(event, 'tt229', 'link229')" onMouseOut="HideTip('tt229')" class=ISymbol>isAncestor</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isCellCollapsed" id=link230 onMouseOver="ShowTip(event, 'tt230', 'link230')" onMouseOut="HideTip('tt230')" class=ISymbol>isCellCollapsed</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isCellVisible" id=link231 onMouseOver="ShowTip(event, 'tt231', 'link231')" onMouseOut="HideTip('tt231')" class=ISymbol>isCellVisible</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isCollapsed</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isCollapsed" id=link232 onMouseOver="ShowTip(event, 'tt232', 'link232')" onMouseOut="HideTip('tt232')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isCollapsed" id=link233 onMouseOver="ShowTip(event, 'tt233', 'link233')" onMouseOut="HideTip('tt233')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isConnectable</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isConnectable" id=link234 onMouseOver="ShowTip(event, 'tt234', 'link234')" onMouseOut="HideTip('tt234')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isConnectable" id=link235 onMouseOver="ShowTip(event, 'tt235', 'link235')" onMouseOut="HideTip('tt235')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.isConsumed" id=link236 onMouseOver="ShowTip(event, 'tt236', 'link236')" onMouseOut="HideTip('tt236')" class=ISymbol>isConsumed</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isEdge</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isEdge" id=link237 onMouseOver="ShowTip(event, 'tt237', 'link237')" onMouseOut="HideTip('tt237')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isEdge" id=link238 onMouseOver="ShowTip(event, 'tt238', 'link238')" onMouseOut="HideTip('tt238')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.isExcluded" id=link239 onMouseOver="ShowTip(event, 'tt239', 'link239')" onMouseOut="HideTip('tt239')" class=ISymbol>isExcluded</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.isNode" id=link240 onMouseOver="ShowTip(event, 'tt240', 'link240')" onMouseOut="HideTip('tt240')" class=ISymbol>isNode</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isOrthogonal" id=link241 onMouseOver="ShowTip(event, 'tt241', 'link241')" onMouseOut="HideTip('tt241')" class=ISymbol>isOrthogonal</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.isReference" id=link242 onMouseOver="ShowTip(event, 'tt242', 'link242')" onMouseOut="HideTip('tt242')" class=ISymbol>isReference</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isVertex</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isVertex" id=link243 onMouseOver="ShowTip(event, 'tt243', 'link243')" onMouseOut="HideTip('tt243')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isVertex" id=link244 onMouseOver="ShowTip(event, 'tt244', 'link244')" onMouseOut="HideTip('tt244')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isVisible</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isVisible" id=link245 onMouseOver="ShowTip(event, 'tt245', 'link245')" onMouseOut="HideTip('tt245')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isVisible" id=link246 onMouseOver="ShowTip(event, 'tt246', 'link246')" onMouseOut="HideTip('tt246')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=IHeading><a name="L"></a>L</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.leave" id=link247 onMouseOver="ShowTip(event, 'tt247', 'link247')" onMouseOut="HideTip('tt247')" class=ISymbol>leave</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>loadImage</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.loadImage" id=link248 onMouseOver="ShowTip(event, 'tt248', 'link248')" onMouseOut="HideTip('tt248')" class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.loadImage" id=link249 onMouseOver="ShowTip(event, 'tt249', 'link249')" onMouseOut="HideTip('tt249')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.loadXmlDocument" id=link250 onMouseOver="ShowTip(event, 'tt250', 'link250')" onMouseOut="HideTip('tt250')" class=ISymbol>loadXmlDocument</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.lookup" id=link251 onMouseOver="ShowTip(event, 'tt251', 'link251')" onMouseOut="HideTip('tt251')" class=ISymbol>lookup</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=IHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mergeChildren" id=link252 onMouseOver="ShowTip(event, 'tt252', 'link252')" onMouseOut="HideTip('tt252')" class=ISymbol>mergeChildren</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mergeChildrenImpl" id=link253 onMouseOver="ShowTip(event, 'tt253', 'link253')" onMouseOut="HideTip('tt253')" class=ISymbol>mergeChildrenImpl</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.mxCell" id=link254 onMouseOver="ShowTip(event, 'tt254', 'link254')" onMouseOut="HideTip('tt254')" class=ISymbol>mxCell</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.mxCellState" id=link255 onMouseOver="ShowTip(event, 'tt255', 'link255')" onMouseOut="HideTip('tt255')" class=ISymbol>mxCellState</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.mxConnectionConstraint" id=link256 onMouseOver="ShowTip(event, 'tt256', 'link256')" onMouseOut="HideTip('tt256')" class=ISymbol>mxConnectionConstraint</a>, <span class=IParent>mxConnectionConstraint</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.mxEventObject" id=link257 onMouseOver="ShowTip(event, 'tt257', 'link257')" onMouseOut="HideTip('tt257')" class=ISymbol>mxEventObject</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxGdCanvas</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.mxGdCanvas" id=link258 onMouseOver="ShowTip(event, 'tt258', 'link258')" onMouseOut="HideTip('tt258')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.mxGdCanvas" id=link259 onMouseOver="ShowTip(event, 'tt259', 'link259')" onMouseOut="HideTip('tt259')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.mxGeometry" id=link260 onMouseOver="ShowTip(event, 'tt260', 'link260')" onMouseOut="HideTip('tt260')" class=ISymbol>mxGeometry</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxGraphModel</span><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.mxGraphModel" id=link261 onMouseOver="ShowTip(event, 'tt261', 'link261')" onMouseOut="HideTip('tt261')" class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mxGraphModel" id=link262 onMouseOver="ShowTip(event, 'tt262', 'link262')" onMouseOut="HideTip('tt262')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.mxGraphView" id=link263 onMouseOver="ShowTip(event, 'tt263', 'link263')" onMouseOut="HideTip('tt263')" class=ISymbol>mxGraphView</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxGraphViewHtmlReader</span><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.mxGraphViewHtmlReader" id=link264 onMouseOver="ShowTip(event, 'tt264', 'link264')" onMouseOut="HideTip('tt264')" class=IParent>mxCodec</a><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.mxGraphViewHtmlReader" id=link265 onMouseOver="ShowTip(event, 'tt265', 'link265')" onMouseOut="HideTip('tt265')" class=IParent>mxGraphViewHtmlReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.mxGraphViewImageReader" id=link266 onMouseOver="ShowTip(event, 'tt266', 'link266')" onMouseOut="HideTip('tt266')" class=ISymbol>mxGraphViewImageReader</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.mxImageBundle" id=link267 onMouseOver="ShowTip(event, 'tt267', 'link267')" onMouseOut="HideTip('tt267')" class=ISymbol>mxImageBundle</a>, <span class=IParent>mxImageBundle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxObjectCodec</span><div class=ISubIndex><a href="../files/io/mxCellCodec-php.html#mxCellCodec.mxObjectCodec" id=link268 onMouseOver="ShowTip(event, 'tt268', 'link268')" onMouseOut="HideTip('tt268')" class=IParent>mxCellCodec</a><a href="../files/io/mxModelCodec-php.html#mxModelCodec.mxObjectCodec" id=link269 onMouseOver="ShowTip(event, 'tt269', 'link269')" onMouseOut="HideTip('tt269')" class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.mxObjectCodec" id=link270 onMouseOver="ShowTip(event, 'tt270', 'link270')" onMouseOut="HideTip('tt270')" class=IParent>mxObjectCodec</a><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec.mxObjectCodec" id=link271 onMouseOver="ShowTip(event, 'tt271', 'link271')" onMouseOut="HideTip('tt271')" class=IParent>mxStylesheetCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.mxPoint" id=link272 onMouseOver="ShowTip(event, 'tt272', 'link272')" onMouseOut="HideTip('tt272')" class=ISymbol>mxPoint</a>, <span class=IParent>mxPoint</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.mxRectangle" id=link273 onMouseOver="ShowTip(event, 'tt273', 'link273')" onMouseOut="HideTip('tt273')" class=ISymbol>mxRectangle</a>, <span class=IParent>mxRectangle</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.mxStylesheet" id=link274 onMouseOver="ShowTip(event, 'tt274', 'link274')" onMouseOut="HideTip('tt274')" class=ISymbol>mxStylesheet</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=IHeading><a name="O"></a>O</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.offset" id=link275 onMouseOver="ShowTip(event, 'tt275', 'link275')" onMouseOut="HideTip('tt275')" class=ISymbol>offset</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.out" id=link276 onMouseOver="ShowTip(event, 'tt276', 'link276')" onMouseOut="HideTip('tt276')" class=ISymbol>out</a>, <span class=IParent>mxHtmlCanvas</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt220"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function indexOf(</td><td class=PParameter nowrap>$array,</td></tr><tr><td></td><td class=PParameter nowrap>$object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of obj in array or -1 if the array does not contains the given object.</div></div><div class=CToolTip id="tt221"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function indexOfStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of the given stylename in the given style. </div></div><div class=CToolTip id="tt222"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function info(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs an info trace.</div></div><div class=CToolTip id="tt223"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insert(</td><td class=PParameter nowrap>$child,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inserts the specified child into the child array at the specified index and updates the parent reference of the child. </div></div><div class=CToolTip id="tt224"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertEdge(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$outgoing</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inserts the specified edge into the edge array and returns the edge. </div></div><div class=CToolTip id="tt225"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertEdge(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a new edge into the given parent mxCell using value as the user object and the given source and target as the terminals of the new edge. </div></div><div class=CToolTip id="tt226"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertIntoGraph(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inserts the given cell into its parent and terminal cells.</div></div><div class=CToolTip id="tt227"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertVertex(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$relative</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a new vertex into the given parent mxCell using value as the user object and the given coordinates as the mxGeometry of the new vertex. </div></div><div class=CToolTip id="tt228"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function intersection(</td><td class=PParameter nowrap>$x0,</td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td></tr><tr><td></td><td class=PParameter nowrap>$x2,</td></tr><tr><td></td><td class=PParameter nowrap>$y2,</td></tr><tr><td></td><td class=PParameter nowrap>$x3,</td></tr><tr><td></td><td class=PParameter nowrap>$y3</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the intersection of two lines as an mxPoint.</div></div><div class=CToolTip id="tt229"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isAncestor(</td><td class=PParameter nowrap>$parent,</td></tr><tr><td></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given parent is an ancestor of the given child.</div></div><div class=CToolTip id="tt230"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCellCollapsed(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is collapsed.</div></div><div class=CToolTip id="tt231"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCellVisible(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is visible.</div></div><div class=CToolTip id="tt232"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isCollapsed()</td></tr></table></blockquote>Returns true if the cell is collapsed.</div></div><div class=CToolTip id="tt233"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCollapsed(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given mxCell is collapsed.</div></div><div class=CToolTip id="tt234"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isConnectable()</td></tr></table></blockquote>Returns true if the cell is connectable.</div></div><div class=CToolTip id="tt235"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isConnectable(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given mxCell is connectable. </div></div><div class=CToolTip id="tt236"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isConsumed()</td></tr></table></blockquote>Returns true if the event has been consumed.</div></div><div class=CToolTip id="tt237"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isEdge()</td></tr></table></blockquote>Returns true if the cell is an edge.</div></div><div class=CToolTip id="tt238"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isEdge(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is an edge.</div></div><div class=CToolTip id="tt239"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isExcluded(</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$write</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given attribute is to be ignored by the codec. </div></div><div class=CToolTip id="tt240"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function isNode(</td><td class=PParameter nowrap>$value,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$nodeName</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$attributeName</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$attributeValue</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.</div></div><div class=CToolTip id="tt241"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isOrthogonal(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.</div></div><div class=CToolTip id="tt242"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isReference(</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$write</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given fieldname is to be treated as a textual reference (ID). </div></div><div class=CToolTip id="tt243"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isVertex()</td></tr></table></blockquote>Returns true if the cell is a vertex.</div></div><div class=CToolTip id="tt244"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isVertex(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is a vertex.</div></div><div class=CToolTip id="tt245"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isVisible()</td></tr></table></blockquote>Returns true if the cell is visibile.</div></div><div class=CToolTip id="tt246"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isVisible(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given mxCell is visible.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt247"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function leave(</td><td class=PParameter nowrap>$text</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a method exit.</div></div><div class=CToolTip id="tt248"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function loadImage(</td><td class=PParameter nowrap>$image</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an image instance for the given URL. </div></div><div class=CToolTip id="tt249"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadImage(</td><td class=PParameter nowrap>$url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Loads an image from the local filesystem, a data URI or any other URL.</div></div><div class=CToolTip id="tt250"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadXmlDocument(</td><td class=PParameter nowrap>$uri</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a new DOM document for the given URI.</div></div><div class=CToolTip id="tt251"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function lookup(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to implement a custom lookup mechanism for cell IDs. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt252"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mergeChildren(</td><td class=PParameter nowrap>$from,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$to,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cloneAllEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Merges the children of the given cell into the given target cell inside this model. </div></div><div class=CToolTip id="tt253"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mergeChildrenImpl(</td><td class=PParameter nowrap>$from,</td></tr><tr><td></td><td class=PParameter nowrap>$to,</td></tr><tr><td></td><td class=PParameter nowrap>$cloneAllEdges,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Clones the children of the source cell into the given target cell in this model and adds an entry to the mapping that maps from the source cell to the target cell with the same id or the clone of the source cell that was inserted into this model.</div></div><div class=CToolTip id="tt254"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxCell(</td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new cell to be used in a graph model. </div></div><div class=CToolTip id="tt255"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxCellState(</td><td class=PParameter nowrap>$view</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new object that represents the current state of the given cell in the specified view.</div></div><div class=CToolTip id="tt256"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxConnectionConstraint(</td><td class=PParameter nowrap>$point</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$perimeter</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new connection constraint for the given point and boolean arguments.</div></div><div class=CToolTip id="tt257"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxEventObject(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new event for the given name and properties. </div></div><div class=CToolTip id="tt258"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGdCanvas(</td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$imageBasePath</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> &quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new GD canvas. </div></div><div class=CToolTip id="tt259"><div class=CFunction>Constructs a new GD canvas. </div></div><div class=CToolTip id="tt260"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGeometry(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new object to describe the size and location of a vertex or the control points of an edge.</div></div><div class=CToolTip id="tt261"><div class=CFunction>Constructs a new graph model using the specified root cell.</div></div><div class=CToolTip id="tt262"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphModel(</td><td class=PParameter nowrap>$root</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new graph model using the specified root cell.</div></div><div class=CToolTip id="tt263"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphView(</td><td class=PParameter nowrap>$graph</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new view for the specified mxGraph.</div></div><div class=CToolTip id="tt264"><div class=CFunction>Constructs a new HTML graph view reader.</div></div><div class=CToolTip id="tt265"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxGraphViewHtmlReader()</td></tr></table></blockquote>Constructs a new HTML graph view reader.</div></div><div class=CToolTip id="tt266"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphViewImageReader(</td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new image graph view reader.</div></div><div class=CToolTip id="tt267"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxImageBundle()</td></tr></table></blockquote>Constructs a new image bundle.</div></div><div class=CToolTip id="tt268"><div class=CFunction>Constructs a new codec for the specified template object. </div></div><div class=CToolTip id="tt269"><div class=CFunction>Constructs a new codec for the specified template object. </div></div><div class=CToolTip id="tt270"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxObjectCodec(</td><td class=PParameter nowrap>$template,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$exclude</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array(),</td></tr><tr><td></td><td class=PParameter nowrap>$idrefs</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array(),</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array()</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new codec for the specified template object. </div></div><div class=CToolTip id="tt271"><div class=CFunction>Constructs a new codec for the specified template object. </div></div><div class=CToolTip id="tt272"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxPoint(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new point for the optional x and y coordinates. </div></div><div class=CToolTip id="tt273"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxRectangle(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new rectangle for the optional parameters. </div></div><div class=CToolTip id="tt274"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxStylesheet()</td></tr></table></blockquote>Constructs a new stylesheet and assigns default styles.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt275"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function offset(</td><td class=PParameter nowrap>$points,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$dx</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new array of x, y sequences where the each coordinate is translated by dx and dy, respectively.</div></div><div class=CToolTip id="tt276"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function out(</td><td class=PParameter nowrap>$string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified string to the output.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Functions</div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Functions6.html b/docs/php-api/index/Functions6.html
    new file mode 100644
    index 000000000..78398ed18
    --- /dev/null
    +++ b/docs/php-api/index/Functions6.html
    @@ -0,0 +1,42 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="Functions.html#A">A</a> &middot; <a href="Functions.html#B">B</a> &middot; <a href="Functions.html#C">C</a> &middot; <a href="Functions2.html#D">D</a> &middot; <a href="Functions3.html#E">E</a> &middot; <a href="Functions3.html#F">F</a> &middot; <a href="Functions4.html#G">G</a> &middot; H &middot; <a href="Functions5.html#I">I</a> &middot; J &middot; K &middot; <a href="Functions5.html#L">L</a> &middot; <a href="Functions5.html#M">M</a> &middot; N &middot; <a href="Functions5.html#O">O</a> &middot; <a href="#P">P</a> &middot; Q &middot; <a href="#R">R</a> &middot; <a href="#S">S</a> &middot; <a href="Functions7.html#T">T</a> &middot; <a href="Functions7.html#U">U</a> &middot; <a href="Functions7.html#V">V</a> &middot; <a href="Functions7.html#W">W</a> &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="P"></a>P</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.paintCell" id=link277 onMouseOver="ShowTip(event, 'tt277', 'link277')" onMouseOut="HideTip('tt277')" class=ISymbol>paintCell</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.paintState" id=link278 onMouseOver="ShowTip(event, 'tt278', 'link278')" onMouseOut="HideTip('tt278')" class=ISymbol>paintState</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parsePoints" id=link279 onMouseOver="ShowTip(event, 'tt279', 'link279')" onMouseOut="HideTip('tt279')" class=ISymbol>parsePoints</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parseState" id=link280 onMouseOver="ShowTip(event, 'tt280', 'link280')" onMouseOut="HideTip('tt280')" class=ISymbol>parseState</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.parseXml" id=link281 onMouseOver="ShowTip(event, 'tt281', 'link281')" onMouseOut="HideTip('tt281')" class=ISymbol>parseXml</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.postProcessCellStyle" id=link282 onMouseOver="ShowTip(event, 'tt282', 'link282')" onMouseOut="HideTip('tt282')" class=ISymbol>postProcessCellStyle</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.processInclude" id=link283 onMouseOver="ShowTip(event, 'tt283', 'link283')" onMouseOut="HideTip('tt283')" class=ISymbol>processInclude</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putCellStyle" id=link284 onMouseOver="ShowTip(event, 'tt284', 'link284')" onMouseOut="HideTip('tt284')" class=ISymbol>putCellStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putDefaultEdgeStyle" id=link285 onMouseOver="ShowTip(event, 'tt285', 'link285')" onMouseOut="HideTip('tt285')" class=ISymbol>putDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putDefaultVertexStyle" id=link286 onMouseOver="ShowTip(event, 'tt286', 'link286')" onMouseOut="HideTip('tt286')" class=ISymbol>putDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.putImage" id=link287 onMouseOver="ShowTip(event, 'tt287', 'link287')" onMouseOut="HideTip('tt287')" class=ISymbol>putImage</a>, <span class=IParent>mxImageBundle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.putObject" id=link288 onMouseOver="ShowTip(event, 'tt288', 'link288')" onMouseOut="HideTip('tt288')" class=ISymbol>putObject</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.putValue" id=link289 onMouseOver="ShowTip(event, 'tt289', 'link289')" onMouseOut="HideTip('tt289')" class=ISymbol>putValue</a>, <span class=IParent>mxStyleRegistry</span></td></tr><tr><td class=IHeading><a name="R"></a>R</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.read" id=link290 onMouseOver="ShowTip(event, 'tt290', 'link290')" onMouseOut="HideTip('tt290')" class=ISymbol>read</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>readFile</span><div class=ISubIndex><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.readFile" id=link291 onMouseOver="ShowTip(event, 'tt291', 'link291')" onMouseOut="HideTip('tt291')" class=IParent>mxGraphViewImageReader</a><a href="../files/util/mxUtils-php.html#mxUtils.readFile" id=link292 onMouseOver="ShowTip(event, 'tt292', 'link292')" onMouseOut="HideTip('tt292')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.reference" id=link293 onMouseOver="ShowTip(event, 'tt293', 'link293')" onMouseOut="HideTip('tt293')" class=ISymbol>reference</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.register" id=link294 onMouseOver="ShowTip(event, 'tt294', 'link294')" onMouseOut="HideTip('tt294')" class=ISymbol>register</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>remove</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.remove" id=link295 onMouseOver="ShowTip(event, 'tt295', 'link295')" onMouseOut="HideTip('tt295')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.remove" id=link296 onMouseOver="ShowTip(event, 'tt296', 'link296')" onMouseOut="HideTip('tt296')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.removeAllStylenames" id=link297 onMouseOver="ShowTip(event, 'tt297', 'link297')" onMouseOut="HideTip('tt297')" class=ISymbol>removeAllStylenames</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeEdge" id=link298 onMouseOver="ShowTip(event, 'tt298', 'link298')" onMouseOut="HideTip('tt298')" class=ISymbol>removeEdge</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeFromParent" id=link299 onMouseOver="ShowTip(event, 'tt299', 'link299')" onMouseOut="HideTip('tt299')" class=ISymbol>removeFromParent</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeFromTerminal" id=link300 onMouseOver="ShowTip(event, 'tt300', 'link300')" onMouseOut="HideTip('tt300')" class=ISymbol>removeFromTerminal</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.removeImageBundle" id=link301 onMouseOver="ShowTip(event, 'tt301', 'link301')" onMouseOut="HideTip('tt301')" class=ISymbol>removeImageBundle</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.removeState" id=link302 onMouseOver="ShowTip(event, 'tt302', 'link302')" onMouseOut="HideTip('tt302')" class=ISymbol>removeState</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.removeStylename" id=link303 onMouseOver="ShowTip(event, 'tt303', 'link303')" onMouseOut="HideTip('tt303')" class=ISymbol>removeStylename</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.resolve" id=link304 onMouseOver="ShowTip(event, 'tt304', 'link304')" onMouseOut="HideTip('tt304')" class=ISymbol>resolve</a>, <span class=IParent>mxCellPath</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.restoreClone" id=link305 onMouseOver="ShowTip(event, 'tt305', 'link305')" onMouseOut="HideTip('tt305')" class=ISymbol>restoreClone</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=IHeading><a name="S"></a>S</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.selectSingleNode" id=link306 onMouseOver="ShowTip(event, 'tt306', 'link306')" onMouseOut="HideTip('tt306')" class=ISymbol>selectSingleNode</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setAttribute</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setAttribute" id=link307 onMouseOver="ShowTip(event, 'tt307', 'link307')" onMouseOut="HideTip('tt307')" class=IParent>mxCell</a><a href="../files/io/mxCodec-php.html#mxCodec.setAttribute" id=link308 onMouseOver="ShowTip(event, 'tt308', 'link308')" onMouseOut="HideTip('tt308')" class=IParent>mxCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.setCellStyleFlags" id=link309 onMouseOver="ShowTip(event, 'tt309', 'link309')" onMouseOut="HideTip('tt309')" class=ISymbol>setCellStyleFlags</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setCellStyles</span><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.setCellStyles" id=link310 onMouseOver="ShowTip(event, 'tt310', 'link310')" onMouseOut="HideTip('tt310')" class=IParent>mxGraph</a><a href="../files/util/mxUtils-php.html#mxUtils.setCellStyles" id=link311 onMouseOver="ShowTip(event, 'tt311', 'link311')" onMouseOut="HideTip('tt311')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setCollapsed</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setCollapsed" id=link312 onMouseOver="ShowTip(event, 'tt312', 'link312')" onMouseOut="HideTip('tt312')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setCollapsed" id=link313 onMouseOver="ShowTip(event, 'tt313', 'link313')" onMouseOut="HideTip('tt313')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setConnectable" id=link314 onMouseOver="ShowTip(event, 'tt314', 'link314')" onMouseOut="HideTip('tt314')" class=ISymbol>setConnectable</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setEdge" id=link315 onMouseOver="ShowTip(event, 'tt315', 'link315')" onMouseOut="HideTip('tt315')" class=ISymbol>setEdge</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setGeometry</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setGeometry" id=link316 onMouseOver="ShowTip(event, 'tt316', 'link316')" onMouseOut="HideTip('tt316')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setGeometry" id=link317 onMouseOver="ShowTip(event, 'tt317', 'link317')" onMouseOut="HideTip('tt317')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setGraphBounds" id=link318 onMouseOver="ShowTip(event, 'tt318', 'link318')" onMouseOut="HideTip('tt318')" class=ISymbol>setGraphBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setId" id=link319 onMouseOver="ShowTip(event, 'tt319', 'link319')" onMouseOut="HideTip('tt319')" class=ISymbol>setId</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.setImage" id=link320 onMouseOver="ShowTip(event, 'tt320', 'link320')" onMouseOut="HideTip('tt320')" class=ISymbol>setImage</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.setImageBundles" id=link321 onMouseOver="ShowTip(event, 'tt321', 'link321')" onMouseOut="HideTip('tt321')" class=ISymbol>setImageBundles</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setParent" id=link322 onMouseOver="ShowTip(event, 'tt322', 'link322')" onMouseOut="HideTip('tt322')" class=ISymbol>setParent</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.setRect" id=link323 onMouseOver="ShowTip(event, 'tt323', 'link323')" onMouseOut="HideTip('tt323')" class=ISymbol>setRect</a>, <span class=IParent>mxRectangle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setRoot"  class=ISymbol>setRoot</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setScale" id=link324 onMouseOver="ShowTip(event, 'tt324', 'link324')" onMouseOut="HideTip('tt324')" class=ISymbol>setScale</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setStyle</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setStyle" id=link325 onMouseOver="ShowTip(event, 'tt325', 'link325')" onMouseOut="HideTip('tt325')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setStyle" id=link326 onMouseOver="ShowTip(event, 'tt326', 'link326')" onMouseOut="HideTip('tt326')" class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-php.html#mxUtils.setStyle" id=link327 onMouseOver="ShowTip(event, 'tt327', 'link327')" onMouseOut="HideTip('tt327')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.setStyleFlag" id=link328 onMouseOver="ShowTip(event, 'tt328', 'link328')" onMouseOut="HideTip('tt328')" class=ISymbol>setStyleFlag</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setTerminal</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setTerminal" id=link329 onMouseOver="ShowTip(event, 'tt329', 'link329')" onMouseOut="HideTip('tt329')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setTerminal" id=link330 onMouseOver="ShowTip(event, 'tt330', 'link330')" onMouseOut="HideTip('tt330')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.setTerminalPoint" id=link331 onMouseOver="ShowTip(event, 'tt331', 'link331')" onMouseOut="HideTip('tt331')" class=ISymbol>setTerminalPoint</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setTerminals" id=link332 onMouseOver="ShowTip(event, 'tt332', 'link332')" onMouseOut="HideTip('tt332')" class=ISymbol>setTerminals</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setTranslate" id=link333 onMouseOver="ShowTip(event, 'tt333', 'link333')" onMouseOut="HideTip('tt333')" class=ISymbol>setTranslate</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setValue</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setValue" id=link334 onMouseOver="ShowTip(event, 'tt334', 'link334')" onMouseOut="HideTip('tt334')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setValue" id=link335 onMouseOver="ShowTip(event, 'tt335', 'link335')" onMouseOut="HideTip('tt335')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setVertex" id=link336 onMouseOver="ShowTip(event, 'tt336', 'link336')" onMouseOut="HideTip('tt336')" class=ISymbol>setVertex</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setVisible</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setVisible" id=link337 onMouseOver="ShowTip(event, 'tt337', 'link337')" onMouseOut="HideTip('tt337')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setVisible" id=link338 onMouseOver="ShowTip(event, 'tt338', 'link338')" onMouseOut="HideTip('tt338')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.stackTrace" id=link339 onMouseOver="ShowTip(event, 'tt339', 'link339')" onMouseOut="HideTip('tt339')" class=ISymbol>stackTrace</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.startElement" id=link340 onMouseOver="ShowTip(event, 'tt340', 'link340')" onMouseOut="HideTip('tt340')" class=ISymbol>startElement</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.styles" id=link341 onMouseOver="ShowTip(event, 'tt341', 'link341')" onMouseOut="HideTip('tt341')" class=ISymbol>styles</a>, <span class=IParent>mxStylesheet</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt277"><div class=CFunction>Draws the given cell onto the specified canvas.</div></div><div class=CToolTip id="tt278"><div class=CFunction>Draws the given cell and label onto the specified canvas. </div></div><div class=CToolTip id="tt279"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function parsePoints(</td><td class=PParameter nowrap>$str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parses a string that represents a list of points into an array of mxPoints.</div></div><div class=CToolTip id="tt280"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function parseState(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parses the bounds, absolute points and label information from the style of the state into its respective fields and returns the label of the cell.</div></div><div class=CToolTip id="tt281"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function parseXml(</td><td class=PParameter nowrap>$xml</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a new DOM document for the given XML string.</div></div><div class=CToolTip id="tt282"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function postProcessCellStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.</div></div><div class=CToolTip id="tt283"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function processInclude(</td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$into</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given node is an include directive and executes the include by decoding the XML document. </div></div><div class=CToolTip id="tt284"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putCellStyle(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Stores the specified style under the given name.</div></div><div class=CToolTip id="tt285"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putDefaultEdgeStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the default style for edges.</div></div><div class=CToolTip id="tt286"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putDefaultVertexStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the default style for vertices.</div></div><div class=CToolTip id="tt287"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putImage(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified entry to the map.</div></div><div class=CToolTip id="tt288"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putObject(</td><td class=PParameter nowrap>$id,</td></tr><tr><td></td><td class=PParameter nowrap>$object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Assoiates the given object with the given ID.</div></div><div class=CToolTip id="tt289"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function putValue(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Puts the given object into the registry under the given name.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt290"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function read(</td><td class=PParameter nowrap>$string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the specified view XML string.</div></div><div class=CToolTip id="tt291"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function readFile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the specified view XML file in blocks of 4096 bytes.</div></div><div class=CToolTip id="tt292"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function readFile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the given filename into a string. </div></div><div class=CToolTip id="tt293"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function reference(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to implement a custom method for retrieving IDs from objects. </div></div><div class=CToolTip id="tt294"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function register(</td><td class=PParameter nowrap>$codec</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Registers a new codec and associates the name of the template constructor in the codec with the codec object. </div></div><div class=CToolTip id="tt295"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function remove(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the child at the specified index from the child array and returns the child that was removed. </div></div><div class=CToolTip id="tt296"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function remove(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified cell from the model using mxChildChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt297"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function removeAllStylenames(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes all stylenames from the given style and returns the updated style.</div></div><div class=CToolTip id="tt298"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeEdge(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$outgoing</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified edge from the edge array and returns the edge. </div></div><div class=CToolTip id="tt299"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function removeFromParent()</td></tr></table></blockquote>Removes the cell from its parent.</div></div><div class=CToolTip id="tt300"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeFromTerminal(</td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the edge from its source or target terminal.</div></div><div class=CToolTip id="tt301"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeImageBundle(</td><td class=PParameter nowrap>$bundle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified mxImageBundle.</div></div><div class=CToolTip id="tt302"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeState(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes and returns the mxCellState for the given cell.</div></div><div class=CToolTip id="tt303"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function removeStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes all occurrences of the specified stylename in the given style and returns the updated style. </div></div><div class=CToolTip id="tt304"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function resolve(</td><td class=PParameter nowrap>$root,</td></tr><tr><td></td><td class=PParameter nowrap>$path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell for the specified cell path using the given root as the root of the path.</div></div><div class=CToolTip id="tt305"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function restoreClone(</td><td class=PParameter nowrap>$clne,</td></tr><tr><td></td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner helper method for restoring the connections in a network of cloned cells.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt306"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function selectSingleNode(</td><td class=PParameter nowrap>$doc,</td></tr><tr><td></td><td class=PParameter nowrap>$expr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates the XPath expression and returns the first node of the result.</div></div><div class=CToolTip id="tt307"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setAttribute(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the specified attribute on the user object if it is an XML node.</div></div><div class=CToolTip id="tt308"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setAttribute(</td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$attribute,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the attribute on the specified node to value. </div></div><div class=CToolTip id="tt309"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setCellStyleFlags(</td><td class=PParameter nowrap>$model,</td></tr><tr><td></td><td class=PParameter nowrap>$cells,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$flag,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets or toggles the flag bit for the given key in the cell&rsquo;s styles. </div></div><div class=CToolTip id="tt310"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCellStyles(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the key to value in the styles of the given cells. </div></div><div class=CToolTip id="tt311"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setCellStyles(</td><td class=PParameter nowrap>$model,</td></tr><tr><td></td><td class=PParameter nowrap>$cells,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.</div></div><div class=CToolTip id="tt312"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCollapsed(</td><td class=PParameter nowrap>$collapsed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the collapsed state.</div></div><div class=CToolTip id="tt313"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCollapsed(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$isCollapsed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the collapsed state of the given mxCell using mxCollapseChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt314"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setConnectable(</td><td class=PParameter nowrap>$connectable</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the connectable state.</div></div><div class=CToolTip id="tt315"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setEdge(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies if the cell is an edge. </div></div><div class=CToolTip id="tt316"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGeometry(</td><td class=PParameter nowrap>$geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the mxGeometry to be used as the geometry.</div></div><div class=CToolTip id="tt317"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGeometry(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the mxGeometry of the given mxCell. </div></div><div class=CToolTip id="tt318"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGraphBounds(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets graphBounds.</div></div><div class=CToolTip id="tt319"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setId(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the Id of the cell to the given string.</div></div><div class=CToolTip id="tt320"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setImage(</td><td class=PParameter nowrap>$img</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the image that represents the canvas.</div></div><div class=CToolTip id="tt321"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setImageBundles(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the imageBundles.</div></div><div class=CToolTip id="tt322"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setParent(</td><td class=PParameter nowrap>$parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the parent cell.</div></div><div class=CToolTip id="tt323"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setRect(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$width,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets this rectangle to the specified values.</div></div><div class=CToolTip id="tt324"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setScale(</td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the scale, revalidates the view and fires a scale event.</div></div><div class=CToolTip id="tt325"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the string to be used as the style.</div></div><div class=CToolTip id="tt326"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setStyle(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the style of the given mxCell using mxStyleChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt327"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setStyle(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds or removes the given key, value pair to the style and returns the new style. </div></div><div class=CToolTip id="tt328"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setStyleFlag(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$flag,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets or removes the given key from the specified style and returns the new style. </div></div><div class=CToolTip id="tt329"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminal(</td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the source or target terminal and returns the new terminal.</div></div><div class=CToolTip id="tt330"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the source or target terminal of the given mxCell using mxTerminalChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt331"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminalPoint(</td><td class=PParameter nowrap>$point,</td></tr><tr><td></td><td class=PParameter nowrap>$isSource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the sourcePoint or targetPoint to the given mxPoint and returns the new point.</div></div><div class=CToolTip id="tt332"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminals(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the source and target mxCell of the given mxCell in a single transaction using setTerminal for each end of the edge.</div></div><div class=CToolTip id="tt333"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTranslate(</td><td class=PParameter nowrap>$translate</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the translation, revalidates the view and fires a translate event.</div></div><div class=CToolTip id="tt334"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setValue(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the user object of the cell. </div></div><div class=CToolTip id="tt335"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setValue(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the user object of then given mxCell using mxValueChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt336"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVertex(</td><td class=PParameter nowrap>$vertex</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies if the cell is a vertex. </div></div><div class=CToolTip id="tt337"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVisible(</td><td class=PParameter nowrap>$visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies if the cell is visible.</div></div><div class=CToolTip id="tt338"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVisible(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the visible state of the given mxCell using mxVisibleChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt339"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function stackTrace()</td></tr></table></blockquote>Prints a simple stack trace in the error log.</div></div><div class=CToolTip id="tt340"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function startElement(</td><td class=PParameter nowrap>$parser,</td></tr><tr><td></td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Invoked by the SAX parser when an element starts.</div></div><div class=CToolTip id="tt341"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $styles = array()</td></tr></table></blockquote>Maps from names to styles.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Functions</div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Functions7.html b/docs/php-api/index/Functions7.html
    new file mode 100644
    index 000000000..349d26261
    --- /dev/null
    +++ b/docs/php-api/index/Functions7.html
    @@ -0,0 +1,46 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="Functions.html#A">A</a> &middot; <a href="Functions.html#B">B</a> &middot; <a href="Functions.html#C">C</a> &middot; <a href="Functions2.html#D">D</a> &middot; <a href="Functions3.html#E">E</a> &middot; <a href="Functions3.html#F">F</a> &middot; <a href="Functions4.html#G">G</a> &middot; H &middot; <a href="Functions5.html#I">I</a> &middot; J &middot; K &middot; <a href="Functions5.html#L">L</a> &middot; <a href="Functions5.html#M">M</a> &middot; N &middot; <a href="Functions5.html#O">O</a> &middot; <a href="Functions6.html#P">P</a> &middot; Q &middot; <a href="Functions6.html#R">R</a> &middot; <a href="Functions6.html#S">S</a> &middot; <a href="#T">T</a> &middot; <a href="#U">U</a> &middot; <a href="#V">V</a> &middot; <a href="#W">W</a> &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="T"></a>T</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.toRadians" id=link342 onMouseOver="ShowTip(event, 'tt342', 'link342')" onMouseOut="HideTip('tt342')" class=ISymbol>toRadians</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.transformControlPoint" id=link343 onMouseOver="ShowTip(event, 'tt343', 'link343')" onMouseOut="HideTip('tt343')" class=ISymbol>transformControlPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.translate" id=link344 onMouseOver="ShowTip(event, 'tt344', 'link344')" onMouseOut="HideTip('tt344')" class=ISymbol>translate</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.translatePoints" id=link345 onMouseOver="ShowTip(event, 'tt345', 'link345')" onMouseOut="HideTip('tt345')" class=ISymbol>translatePoints</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=IHeading><a name="U"></a>U</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateBoundingBox" id=link346 onMouseOver="ShowTip(event, 'tt346', 'link346')" onMouseOut="HideTip('tt346')" class=ISymbol>updateBoundingBox</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateEdgeBounds" id=link347 onMouseOver="ShowTip(event, 'tt347', 'link347')" onMouseOut="HideTip('tt347')" class=ISymbol>updateEdgeBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateEdgeParent" id=link348 onMouseOver="ShowTip(event, 'tt348', 'link348')" onMouseOut="HideTip('tt348')" class=ISymbol>updateEdgeParent</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateEdgeParents" id=link349 onMouseOver="ShowTip(event, 'tt349', 'link349')" onMouseOut="HideTip('tt349')" class=ISymbol>updateEdgeParents</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFixedTerminalPoint" id=link350 onMouseOver="ShowTip(event, 'tt350', 'link350')" onMouseOut="HideTip('tt350')" class=ISymbol>updateFixedTerminalPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFixedTerminalPoints" id=link351 onMouseOver="ShowTip(event, 'tt351', 'link351')" onMouseOut="HideTip('tt351')" class=ISymbol>updateFixedTerminalPoints</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFloatingTerminalPoint" id=link352 onMouseOver="ShowTip(event, 'tt352', 'link352')" onMouseOut="HideTip('tt352')" class=ISymbol>updateFloatingTerminalPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFloatingTerminalPoints" id=link353 onMouseOver="ShowTip(event, 'tt353', 'link353')" onMouseOut="HideTip('tt353')" class=ISymbol>updateFloatingTerminalPoints</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updatePoints" id=link354 onMouseOver="ShowTip(event, 'tt354', 'link354')" onMouseOut="HideTip('tt354')" class=ISymbol>updatePoints</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateVertexLabelOffset" id=link355 onMouseOver="ShowTip(event, 'tt355', 'link355')" onMouseOut="HideTip('tt355')" class=ISymbol>updateVertexLabelOffset</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=IHeading><a name="V"></a>V</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validate" id=link356 onMouseOver="ShowTip(event, 'tt356', 'link356')" onMouseOut="HideTip('tt356')" class=ISymbol>validate</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validateBounds" id=link357 onMouseOver="ShowTip(event, 'tt357', 'link357')" onMouseOut="HideTip('tt357')" class=ISymbol>validateBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validatePoints" id=link358 onMouseOver="ShowTip(event, 'tt358', 'link358')" onMouseOut="HideTip('tt358')" class=ISymbol>validatePoints</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=IHeading><a name="W"></a>W</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.warn" id=link359 onMouseOver="ShowTip(event, 'tt359', 'link359')" onMouseOut="HideTip('tt359')" class=ISymbol>warn</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.write" id=link360 onMouseOver="ShowTip(event, 'tt360', 'link360')" onMouseOut="HideTip('tt360')" class=ISymbol>write</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writeAttribute" id=link361 onMouseOver="ShowTip(event, 'tt361', 'link361')" onMouseOut="HideTip('tt361')" class=ISymbol>writeAttribute</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writeComplexAttribute" id=link362 onMouseOver="ShowTip(event, 'tt362', 'link362')" onMouseOut="HideTip('tt362')" class=ISymbol>writeComplexAttribute</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.writeln" id=link363 onMouseOver="ShowTip(event, 'tt363', 'link363')" onMouseOut="HideTip('tt363')" class=ISymbol>writeln</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writePrimitiveAttribute" id=link364 onMouseOver="ShowTip(event, 'tt364', 'link364')" onMouseOut="HideTip('tt364')" class=ISymbol>writePrimitiveAttribute</a>, <span class=IParent>mxObjectCodec</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt342"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function toRadians(</td><td class=PParameter nowrap>$deg</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts the given degree to radians.</div></div><div class=CToolTip id="tt343"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function transformControlPoint(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$pt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Transforms the given control point to an absolute point.</div></div><div class=CToolTip id="tt344"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function translate(</td><td class=PParameter nowrap>$dx,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Translates the geometry by the specified amount. </div></div><div class=CToolTip id="tt345"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function translatePoints(</td><td class=PParameter nowrap>$pts,</td></tr><tr><td></td><td class=PParameter nowrap>$dx,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new list of new points obtained by translating the points in the given list by the given vector. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt346"><div class=CFunction>Updates the label bounds in the given state.</div></div><div class=CToolTip id="tt347"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeBounds(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the bounds of the specified state based on the absolute points in the state.</div></div><div class=CToolTip id="tt348"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeParent(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$root</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner callback to update the parent of the specified mxCell to the nearest-common-ancestor of its two terminals.</div></div><div class=CToolTip id="tt349"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeParents(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$root</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the parent for all edges that are connected to cell or one of its descendants using updateEdgeParent.</div></div><div class=CToolTip id="tt350"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFixedTerminalPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$constraint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the fixed source or target terminal point on the given edge.</div></div><div class=CToolTip id="tt351"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFixedTerminalPoints(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the initial absolute terminal points in the given state before the edge style is computed.</div></div><div class=CToolTip id="tt352"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFloatingTerminalPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$start,</td></tr><tr><td></td><td class=PParameter nowrap>$end,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.</div></div><div class=CToolTip id="tt353"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFloatingTerminalPoints(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the terminal points in the given state after the edge style was computed for the edge.</div></div><div class=CToolTip id="tt354"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updatePoints(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the absolute points in the given state using the specified array of mxPoints as the relative points.</div></div><div class=CToolTip id="tt355"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateVertexLabelOffset(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the absoluteOffset of the given vertex cell state. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt356"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validate(</td><td class=PParameter nowrap>$cell</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calls validateBounds followed by validatePoints on the root cell if the cache is invalid.</div></div><div class=CToolTip id="tt357"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validateBounds(</td><td class=PParameter nowrap>$parentState,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Validates the bounds of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</div></div><div class=CToolTip id="tt358"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validatePoints(</td><td class=PParameter nowrap>$parentState,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Validates the points of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt359"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function warn(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a warn trace.</div></div><div class=CToolTip id="tt360"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function write(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes a line to the log.</div></div><div class=CToolTip id="tt361"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writeAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes the given value into node using writePrimitiveAttribute or writeComplexAttribute depending on the type of the value.</div></div><div class=CToolTip id="tt362"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writeComplexAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes the given value as a child node of the given node.</div></div><div class=CToolTip id="tt363"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function writeln(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes a line with a linefeed to the log.</div></div><div class=CToolTip id="tt364"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writePrimitiveAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes the given value as an attribute of the given node.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Functions</div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General.html b/docs/php-api/index/General.html
    new file mode 100644
    index 000000000..7f52fc999
    --- /dev/null
    +++ b/docs/php-api/index/General.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; <a href="#B">B</a> &middot; <a href="General2.html#C">C</a> &middot; <a href="General3.html#D">D</a> &middot; <a href="General4.html#E">E</a> &middot; <a href="General4.html#F">F</a> &middot; <a href="General5.html#G">G</a> &middot; <a href="General6.html#H">H</a> &middot; <a href="General6.html#I">I</a> &middot; J &middot; K &middot; <a href="General6.html#L">L</a> &middot; <a href="General7.html#M">M</a> &middot; <a href="General7.html#N">N</a> &middot; <a href="General7.html#O">O</a> &middot; <a href="General8.html#P">P</a> &middot; Q &middot; <a href="General8.html#R">R</a> &middot; <a href="General9.html#S">S</a> &middot; <a href="General10.html#T">T</a> &middot; <a href="General10.html#U">U</a> &middot; <a href="General10.html#V">V</a> &middot; <a href="General10.html#W">W</a> &middot; <a href="General10.html#X">X</a> &middot; <a href="General10.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.absoluteOffset" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>absoluteOffset</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.absolutePoints" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>absolutePoints</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ACTIVE_REGION" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>ACTIVE_REGION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>add</span><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel.add" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=IParent>mxGraphModel</a><a href="../files/util/mxRectangle-php.html#mxRectangle.add" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=IParent>mxRectangle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.addAlias" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>addAlias</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.addBundle" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>addBundle</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.addListener" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>addListener</a>, <span class=IParent>mxEventSource</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.addLogfile" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>addLogfile</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.addObjectValue" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>addObjectValue</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.addStylename" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>addStylename</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.afterDecode" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>afterDecode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.afterEncode" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>afterEncode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.aliases" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>aliases</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_BOTTOM" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>ALIGN_BOTTOM</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_CENTER" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>ALIGN_CENTER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_LEFT" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>ALIGN_LEFT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_MIDDLE" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>ALIGN_MIDDLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_RIGHT" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>ALIGN_RIGHT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_TOP" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>ALIGN_TOP</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.alternateBounds" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>alternateBounds</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>antialias</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#antialias" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=IParent>Global</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.antialias" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=IParent>mxGdCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/index-txt.html#API_Specification" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>API Specification</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>apply</span><div class=ISubIndex><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction.apply" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=IParent>mxEdgeStyleFunction</a><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction.apply" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=IParent>mxPerimeterFunction</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_BLOCK" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>ARROW_BLOCK</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_CLASSIC" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>ARROW_CLASSIC</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_DIAMOND" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=ISymbol>ARROW_DIAMOND</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_OPEN" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=ISymbol>ARROW_OPEN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_OVAL" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=ISymbol>ARROW_OVAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_SIZE" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=ISymbol>ARROW_SIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_SPACING" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=ISymbol>ARROW_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_WIDTH" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=ISymbol>ARROW_WIDTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=IHeading><a name="B"></a>B</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.background" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=ISymbol>background</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.beforeDecode" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=ISymbol>beforeDecode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.beforeEncode" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=ISymbol>beforeEncode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.beginUpdate" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=ISymbol>beginUpdate</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.border" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')" class=ISymbol>border</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.boundingBox" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')" class=ISymbol>boundingBox</a>, <span class=IParent>mxCellState</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $absoluteOffset</td></tr></table></blockquote>mxPoint that holds the absolute offset. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $absolutePoints</td></tr></table></blockquote>Holds an array of mxPoints that represent the absolute points of an edge.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ACTIVE_REGION</td></tr></table></blockquote>Defines the portion of the cell which is to be used as a connectable region.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function add(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$child,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified child to the parent at the given index using mxChildChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function add(</td><td class=PParameter nowrap>$rect</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the given rectangle to this rectangle.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addAlias(</td><td class=PParameter nowrap>$classname,</td></tr><tr><td></td><td class=PParameter nowrap>$codecname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds an alias for mapping a classname to a codecname.</div></div><div class=CToolTip id="tt7"><div class=CFunction>Adds the specified mxImageBundle.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function addListener(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$listener</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a listener for the given event name. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addLogfile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a file for logging.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function addObjectValue(</td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$fieldname,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$template</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the decoded child node as a value of the given object. </div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function addStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified stylename to the given style if it does not already contain the stylename.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function afterDecode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to post-process the object after decoding. </div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function afterEncode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to post-process the node for the given object after encoding and return the post-processed node. </div></div><div class=CToolTip id="tt14"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $aliases</td></tr></table></blockquote>Maps from classnames to codecnames.</div></div><div class=CToolTip id="tt15"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_BOTTOM</td></tr></table></blockquote></div></div><div class=CToolTip id="tt16"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_CENTER</td></tr></table></blockquote></div></div><div class=CToolTip id="tt17"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_LEFT</td></tr></table></blockquote></div></div><div class=CToolTip id="tt18"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_MIDDLE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt19"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_RIGHT</td></tr></table></blockquote></div></div><div class=CToolTip id="tt20"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_TOP</td></tr></table></blockquote></div></div><div class=CToolTip id="tt21"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $alternateBounds</td></tr></table></blockquote>Stores alternate values for x, y, width and height in a rectangle. </div></div><div class=CToolTip id="tt22"><div class=CVariable>Specifies if image aspect should be preserved in drawImage. </div></div><div class=CToolTip id="tt23"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $antialias</td></tr></table></blockquote>Specifies if antialiasing should be enabled. </div></div><div class=CToolTip id="tt24"><div class=CFile>This PHP library is divided into 4 packages. </div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public function apply(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$target,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$result</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Implements an edge style function. </div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public function apply(</td><td class=PParameter nowrap>$bounds,</td></tr><tr><td></td><td class=PParameter nowrap>$vertex,</td></tr><tr><td></td><td class=PParameter nowrap>$next,</td></tr><tr><td></td><td class=PParameter nowrap>$orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Implements a perimeter function.</div></div><div class=CToolTip id="tt27"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_BLOCK</td></tr></table></blockquote></div></div><div class=CToolTip id="tt28"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_CLASSIC</td></tr></table></blockquote></div></div><div class=CToolTip id="tt29"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_DIAMOND</td></tr></table></blockquote></div></div><div class=CToolTip id="tt30"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_OPEN</td></tr></table></blockquote></div></div><div class=CToolTip id="tt31"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_OVAL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt32"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_SIZE</td></tr></table></blockquote>Defines the size of the arrowhead in the arrow shape. </div></div><div class=CToolTip id="tt33"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_SPACING</td></tr></table></blockquote>Defines the spacing between the arrow shape and its terminals. </div></div><div class=CToolTip id="tt34"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_WIDTH</td></tr></table></blockquote>Defines the width of the arrow shape. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt35"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $background</td></tr></table></blockquote>Holds the background color.</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function beforeDecode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode. </div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function beforeEncode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to pre-process the object before encoding. </div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function beginUpdate()</td></tr></table></blockquote>Increments the updateLevel by one. </div></div><div class=CToolTip id="tt39"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $border</td></tr></table></blockquote>Holds the border size. </div></div><div class=CToolTip id="tt40"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $boundingBox</td></tr></table></blockquote>Holds the largest rectangle which contains all rendering for this cell.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General10.html b/docs/php-api/index/General10.html
    new file mode 100644
    index 000000000..f2453f4bc
    --- /dev/null
    +++ b/docs/php-api/index/General10.html
    @@ -0,0 +1,54 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General2.html#C">C</a> &middot; <a href="General3.html#D">D</a> &middot; <a href="General4.html#E">E</a> &middot; <a href="General4.html#F">F</a> &middot; <a href="General5.html#G">G</a> &middot; <a href="General6.html#H">H</a> &middot; <a href="General6.html#I">I</a> &middot; J &middot; K &middot; <a href="General6.html#L">L</a> &middot; <a href="General7.html#M">M</a> &middot; <a href="General7.html#N">N</a> &middot; <a href="General7.html#O">O</a> &middot; <a href="General8.html#P">P</a> &middot; Q &middot; <a href="General8.html#R">R</a> &middot; <a href="General9.html#S">S</a> &middot; <a href="#T">T</a> &middot; <a href="#U">U</a> &middot; <a href="#V">V</a> &middot; <a href="#W">W</a> &middot; <a href="#X">X</a> &middot; <a href="#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="T"></a>T</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.tab" id=link610 onMouseOver="ShowTip(event, 'tt610', 'link610')" onMouseOut="HideTip('tt610')" class=ISymbol>tab</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.target" id=link611 onMouseOver="ShowTip(event, 'tt611', 'link611')" onMouseOut="HideTip('tt611')" class=ISymbol>target</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.targetPoint" id=link612 onMouseOver="ShowTip(event, 'tt612', 'link612')" onMouseOut="HideTip('tt612')" class=ISymbol>targetPoint</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.template" id=link613 onMouseOver="ShowTip(event, 'tt613', 'link613')" onMouseOut="HideTip('tt613')" class=ISymbol>template</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.terminalDistance" id=link614 onMouseOver="ShowTip(event, 'tt614', 'link614')" onMouseOut="HideTip('tt614')" class=ISymbol>terminalDistance</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.TopToBottom" id=link615 onMouseOver="ShowTip(event, 'tt615', 'link615')" onMouseOut="HideTip('tt615')" class=ISymbol>TopToBottom</a>, <span class=IParent>mxEdgeStyle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.toRadians" id=link616 onMouseOver="ShowTip(event, 'tt616', 'link616')" onMouseOut="HideTip('tt616')" class=ISymbol>toRadians</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.transformControlPoint" id=link617 onMouseOver="ShowTip(event, 'tt617', 'link617')" onMouseOut="HideTip('tt617')" class=ISymbol>transformControlPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>translate</span><div class=ISubIndex><a href="../files/model/mxGeometry-php.html#mxGeometry.translate" id=link618 onMouseOver="ShowTip(event, 'tt618', 'link618')" onMouseOut="HideTip('tt618')" class=IParent>mxGeometry</a><a href="../files/view/mxGraphView-php.html#mxGraphView.translate" id=link619 onMouseOver="ShowTip(event, 'tt619', 'link619')" onMouseOut="HideTip('tt619')" class=IParent>mxGraphView</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.TRANSLATE" id=link620 onMouseOver="ShowTip(event, 'tt620', 'link620')" onMouseOut="HideTip('tt620')" class=ISymbol>TRANSLATE</a>, <span class=IParent>mxEvent</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.TRANSLATE_CONTROL_POINTS" id=link621 onMouseOver="ShowTip(event, 'tt621', 'link621')" onMouseOut="HideTip('tt621')" class=ISymbol>TRANSLATE_CONTROL_POINTS</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.translatePoints" id=link622 onMouseOver="ShowTip(event, 'tt622', 'link622')" onMouseOut="HideTip('tt622')" class=ISymbol>translatePoints</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.TrianglePerimeter" id=link623 onMouseOver="ShowTip(event, 'tt623', 'link623')" onMouseOut="HideTip('tt623')" class=ISymbol>TrianglePerimeter</a>, <span class=IParent>mxPerimeter</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.TTF_ENABLED" id=link624 onMouseOver="ShowTip(event, 'tt624', 'link624')" onMouseOut="HideTip('tt624')" class=ISymbol>TTF_ENABLED</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.TTF_SIZEFACTOR" id=link625 onMouseOver="ShowTip(event, 'tt625', 'link625')" onMouseOut="HideTip('tt625')" class=ISymbol>TTF_SIZEFACTOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=IHeading><a name="U"></a>U</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateBoundingBox" id=link626 onMouseOver="ShowTip(event, 'tt626', 'link626')" onMouseOut="HideTip('tt626')" class=ISymbol>updateBoundingBox</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateEdgeBounds" id=link627 onMouseOver="ShowTip(event, 'tt627', 'link627')" onMouseOut="HideTip('tt627')" class=ISymbol>updateEdgeBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateEdgeParent" id=link628 onMouseOver="ShowTip(event, 'tt628', 'link628')" onMouseOut="HideTip('tt628')" class=ISymbol>updateEdgeParent</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateEdgeParents" id=link629 onMouseOver="ShowTip(event, 'tt629', 'link629')" onMouseOut="HideTip('tt629')" class=ISymbol>updateEdgeParents</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFixedTerminalPoint" id=link630 onMouseOver="ShowTip(event, 'tt630', 'link630')" onMouseOut="HideTip('tt630')" class=ISymbol>updateFixedTerminalPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFixedTerminalPoints" id=link631 onMouseOver="ShowTip(event, 'tt631', 'link631')" onMouseOut="HideTip('tt631')" class=ISymbol>updateFixedTerminalPoints</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFloatingTerminalPoint" id=link632 onMouseOver="ShowTip(event, 'tt632', 'link632')" onMouseOut="HideTip('tt632')" class=ISymbol>updateFloatingTerminalPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFloatingTerminalPoints" id=link633 onMouseOver="ShowTip(event, 'tt633', 'link633')" onMouseOut="HideTip('tt633')" class=ISymbol>updateFloatingTerminalPoints</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateLevel" id=link634 onMouseOver="ShowTip(event, 'tt634', 'link634')" onMouseOut="HideTip('tt634')" class=ISymbol>updateLevel</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updatePoints" id=link635 onMouseOver="ShowTip(event, 'tt635', 'link635')" onMouseOut="HideTip('tt635')" class=ISymbol>updatePoints</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateVertexLabelOffset" id=link636 onMouseOver="ShowTip(event, 'tt636', 'link636')" onMouseOut="HideTip('tt636')" class=ISymbol>updateVertexLabelOffset</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=IHeading><a name="V"></a>V</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validate" id=link637 onMouseOver="ShowTip(event, 'tt637', 'link637')" onMouseOut="HideTip('tt637')" class=ISymbol>validate</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validateBounds" id=link638 onMouseOver="ShowTip(event, 'tt638', 'link638')" onMouseOut="HideTip('tt638')" class=ISymbol>validateBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validatePoints" id=link639 onMouseOver="ShowTip(event, 'tt639', 'link639')" onMouseOut="HideTip('tt639')" class=ISymbol>validatePoints</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.value" id=link640 onMouseOver="ShowTip(event, 'tt640', 'link640')" onMouseOut="HideTip('tt640')" class=ISymbol>value</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.values" id=link641 onMouseOver="ShowTip(event, 'tt641', 'link641')" onMouseOut="HideTip('tt641')" class=ISymbol>values</a>, <span class=IParent>mxStyleRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>Variables</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#Variables"  class=IParent>Global</a><a href="../files/model/mxCell-php.html#mxCell.Variables"  class=IParent>mxCell</a><a href="../files/model/mxCellPath-php.html#mxCellPath.Variables"  class=IParent>mxCellPath</a><a href="../files/view/mxCellState-php.html#mxCellState.Variables"  class=IParent>mxCellState</a><a href="../files/io/mxCodec-php.html#mxCodec.Variables"  class=IParent>mxCodec</a><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.Variables"  class=IParent>mxCodecRegistry</a><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.Variables"  class=IParent>mxConnectionConstraint</a><a href="../files/util/mxConstants-php.html#mxConstants.Variables"  class=IParent>mxConstants</a><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.Variables"  class=IParent>mxEdgeStyle</a><a href="../files/util/mxEvent-php.html#mxEvent.Variables"  class=IParent>mxEvent</a><a href="../files/util/mxEventObject-php.html#mxEventObject.Variables"  class=IParent>mxEventObject</a><a href="../files/util/mxEventSource-php.html#mxEventSource.Variables"  class=IParent>mxEventSource</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.Variables"  class=IParent>mxGdCanvas</a><a href="../files/model/mxGeometry-php.html#mxGeometry.Variables"  class=IParent>mxGeometry</a><a href="../files/view/mxGraph-php.html#mxGraph.Variables"  class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.Variables"  class=IParent>mxGraphModel</a><a href="../files/view/mxGraphView-php.html#mxGraphView.Variables"  class=IParent>mxGraphView</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.Variables"  class=IParent>mxGraphViewImageReader</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.Variables"  class=IParent>mxHtmlCanvas</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.Variables"  class=IParent>mxImageBundle</a><a href="../files/util/mxLog-php.html#mxLog.Variables"  class=IParent>mxLog</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.Variables"  class=IParent>mxObjectCodec</a><a href="../files/view/mxPerimeter-php.html#mxPerimeter.Variables"  class=IParent>mxPerimeter</a><a href="../files/util/mxPoint-php.html#mxPoint.Variables"  class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.Variables"  class=IParent>mxRectangle</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.Variables"  class=IParent>mxStyleRegistry</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.vertex" id=link642 onMouseOver="ShowTip(event, 'tt642', 'link642')" onMouseOut="HideTip('tt642')" class=ISymbol>vertex</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>view</span><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState.view" id=link643 onMouseOver="ShowTip(event, 'tt643', 'link643')" onMouseOut="HideTip('tt643')" class=IParent>mxCellState</a><a href="../files/view/mxGraph-php.html#mxGraph.view" id=link644 onMouseOver="ShowTip(event, 'tt644', 'link644')" onMouseOut="HideTip('tt644')" class=IParent>mxGraph</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.visible" id=link645 onMouseOver="ShowTip(event, 'tt645', 'link645')" onMouseOut="HideTip('tt645')" class=ISymbol>visible</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=IHeading><a name="W"></a>W</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.W3C_DEFAULT_FONTFAMILY" id=link646 onMouseOver="ShowTip(event, 'tt646', 'link646')" onMouseOut="HideTip('tt646')" class=ISymbol>W3C_DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.W3C_SHADOWCOLOR" id=link647 onMouseOver="ShowTip(event, 'tt647', 'link647')" onMouseOut="HideTip('tt647')" class=ISymbol>W3C_SHADOWCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.warn" id=link648 onMouseOver="ShowTip(event, 'tt648', 'link648')" onMouseOut="HideTip('tt648')" class=ISymbol>warn</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.width" id=link649 onMouseOver="ShowTip(event, 'tt649', 'link649')" onMouseOut="HideTip('tt649')" class=ISymbol>width</a>, <span class=IParent>mxRectangle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.write" id=link650 onMouseOver="ShowTip(event, 'tt650', 'link650')" onMouseOut="HideTip('tt650')" class=ISymbol>write</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writeAttribute" id=link651 onMouseOver="ShowTip(event, 'tt651', 'link651')" onMouseOut="HideTip('tt651')" class=ISymbol>writeAttribute</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writeComplexAttribute" id=link652 onMouseOver="ShowTip(event, 'tt652', 'link652')" onMouseOut="HideTip('tt652')" class=ISymbol>writeComplexAttribute</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.writeln" id=link653 onMouseOver="ShowTip(event, 'tt653', 'link653')" onMouseOut="HideTip('tt653')" class=ISymbol>writeln</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writePrimitiveAttribute" id=link654 onMouseOver="ShowTip(event, 'tt654', 'link654')" onMouseOut="HideTip('tt654')" class=ISymbol>writePrimitiveAttribute</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=IHeading><a name="X"></a>X</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.x" id=link655 onMouseOver="ShowTip(event, 'tt655', 'link655')" onMouseOut="HideTip('tt655')" class=ISymbol>x</a>, <span class=IParent>mxPoint</span></td></tr><tr><td class=IHeading><a name="Y"></a>Y</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.y" id=link656 onMouseOver="ShowTip(event, 'tt656', 'link656')" onMouseOut="HideTip('tt656')" class=ISymbol>y</a>, <span class=IParent>mxPoint</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt610"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $tab</td></tr></table></blockquote>Default is true.</div></div><div class=CToolTip id="tt611"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $target</td></tr></table></blockquote>Reference to the target terminal.</div></div><div class=CToolTip id="tt612"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $targetPoint</td></tr></table></blockquote>Defines the target point of the edge. </div></div><div class=CToolTip id="tt613"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $template</td></tr></table></blockquote>Holds the template object associated with this codec.</div></div><div class=CToolTip id="tt614"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $terminalDistance</td></tr></table></blockquote>Caches the distance between the end points for an edge.</div></div><div class=CToolTip id="tt615"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TopToBottom</td></tr></table></blockquote>Provides a top to bottom connector.</div></div><div class=CToolTip id="tt616"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function toRadians(</td><td class=PParameter nowrap>$deg</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts the given degree to radians.</div></div><div class=CToolTip id="tt617"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function transformControlPoint(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$pt</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Transforms the given control point to an absolute point.</div></div><div class=CToolTip id="tt618"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function translate(</td><td class=PParameter nowrap>$dx,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Translates the geometry by the specified amount. </div></div><div class=CToolTip id="tt619"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $translate</td></tr></table></blockquote>Holds the current translate.</div></div><div class=CToolTip id="tt620"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TRANSLATE</td></tr></table></blockquote>Defines the name of the translate event.</div></div><div class=CToolTip id="tt621"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TRANSLATE_CONTROL_POINTS</td></tr></table></blockquote>Global switch to translate the points in translate. </div></div><div class=CToolTip id="tt622"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function translatePoints(</td><td class=PParameter nowrap>$pts,</td></tr><tr><td></td><td class=PParameter nowrap>$dx,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new list of new points obtained by translating the points in the given list by the given vector. </div></div><div class=CToolTip id="tt623"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TrianglePerimeter</td></tr></table></blockquote>Provides a triangle perimeter. </div></div><div class=CToolTip id="tt624"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TTF_ENABLED</td></tr></table></blockquote>Whether TrueType fonts should be enabled in the mxGdCanvas by default. </div></div><div class=CToolTip id="tt625"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TTF_SIZEFACTOR</td></tr></table></blockquote>Defines the factor which wich the font sizes are to be multiplied when used in truetype fonts. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt626"><div class=CFunction>Updates the label bounds in the given state.</div></div><div class=CToolTip id="tt627"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeBounds(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the bounds of the specified state based on the absolute points in the state.</div></div><div class=CToolTip id="tt628"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeParent(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$root</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner callback to update the parent of the specified mxCell to the nearest-common-ancestor of its two terminals.</div></div><div class=CToolTip id="tt629"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateEdgeParents(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$root</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the parent for all edges that are connected to cell or one of its descendants using updateEdgeParent.</div></div><div class=CToolTip id="tt630"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFixedTerminalPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$constraint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the fixed source or target terminal point on the given edge.</div></div><div class=CToolTip id="tt631"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFixedTerminalPoints(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the initial absolute terminal points in the given state before the edge style is computed.</div></div><div class=CToolTip id="tt632"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFloatingTerminalPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$start,</td></tr><tr><td></td><td class=PParameter nowrap>$end,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.</div></div><div class=CToolTip id="tt633"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateFloatingTerminalPoints(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the terminal points in the given state after the edge style was computed for the edge.</div></div><div class=CToolTip id="tt634"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $updateLevel</td></tr></table></blockquote>Counter for the depth of nested transactions. </div></div><div class=CToolTip id="tt635"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updatePoints(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the absolute points in the given state using the specified array of mxPoints as the relative points.</div></div><div class=CToolTip id="tt636"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function updateVertexLabelOffset(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the absoluteOffset of the given vertex cell state. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt637"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validate(</td><td class=PParameter nowrap>$cell</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calls validateBounds followed by validatePoints on the root cell if the cache is invalid.</div></div><div class=CToolTip id="tt638"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validateBounds(</td><td class=PParameter nowrap>$parentState,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Validates the bounds of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</div></div><div class=CToolTip id="tt639"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function validatePoints(</td><td class=PParameter nowrap>$parentState,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Validates the points of the cell state for the specified cell recursively, for all children if the cell is not collapsed.</div></div><div class=CToolTip id="tt640"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $value</td></tr></table></blockquote>Holds the user object. </div></div><div class=CToolTip id="tt641"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $values</td></tr></table></blockquote>Maps from strings to objects.</div></div><div class=CToolTip id="tt642"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $vertex</td></tr></table></blockquote>Specifies whether the cell is a vertex. </div></div><div class=CToolTip id="tt643"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $view</td></tr></table></blockquote>Reference to the enclosing mxGraphView.</div></div><div class=CToolTip id="tt644"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $view</td></tr></table></blockquote>Holds the mxGraphView.</div></div><div class=CToolTip id="tt645"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $visible</td></tr></table></blockquote>Specifies whether the cell is visible. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt646"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $W3C_DEFAULT_FONTFAMILY</td></tr></table></blockquote>Defines the default family for HTML markup. </div></div><div class=CToolTip id="tt647"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $W3C_SHADOWCOLOR</td></tr></table></blockquote>Defines the color to be used to draw shadows in DOM documents.</div></div><div class=CToolTip id="tt648"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function warn(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a warn trace.</div></div><div class=CToolTip id="tt649"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $width</td></tr></table></blockquote>Holds the width of the rectangle. </div></div><div class=CToolTip id="tt650"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function write(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes a line to the log.</div></div><div class=CToolTip id="tt651"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writeAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes the given value into node using writePrimitiveAttribute or writeComplexAttribute depending on the type of the value.</div></div><div class=CToolTip id="tt652"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writeComplexAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes the given value as a child node of the given node.</div></div><div class=CToolTip id="tt653"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function writeln(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes a line with a linefeed to the log.</div></div><div class=CToolTip id="tt654"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function writePrimitiveAttribute(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes the given value as an attribute of the given node.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt655"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $x</td></tr></table></blockquote>Holds the x-coordinate of the point. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt656"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $y</td></tr></table></blockquote>Holds the y-coordinate of the point. </div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General2.html b/docs/php-api/index/General2.html
    new file mode 100644
    index 000000000..c531e219a
    --- /dev/null
    +++ b/docs/php-api/index/General2.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="#C">C</a> &middot; <a href="General3.html#D">D</a> &middot; <a href="General4.html#E">E</a> &middot; <a href="General4.html#F">F</a> &middot; <a href="General5.html#G">G</a> &middot; <a href="General6.html#H">H</a> &middot; <a href="General6.html#I">I</a> &middot; J &middot; K &middot; <a href="General6.html#L">L</a> &middot; <a href="General7.html#M">M</a> &middot; <a href="General7.html#N">N</a> &middot; <a href="General7.html#O">O</a> &middot; <a href="General8.html#P">P</a> &middot; Q &middot; <a href="General8.html#R">R</a> &middot; <a href="General9.html#S">S</a> &middot; <a href="General10.html#T">T</a> &middot; <a href="General10.html#U">U</a> &middot; <a href="General10.html#V">V</a> &middot; <a href="General10.html#W">W</a> &middot; <a href="General10.html#X">X</a> &middot; <a href="General10.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.canvas" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')" class=ISymbol>canvas</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.cell" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')" class=ISymbol>cell</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellAdded" id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')" class=ISymbol>cellAdded</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellCloned" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')" class=ISymbol>cellCloned</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellRemoved" id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')" class=ISymbol>cellRemoved</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cells" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')" class=ISymbol>cells</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.childMoved" id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')" class=ISymbol>childMoved</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.children" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')" class=ISymbol>children</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.clear" id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')" class=ISymbol>clear</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCell" id=link50 onMouseOver="ShowTip(event, 'tt50', 'link50')" onMouseOut="HideTip('tt50')" class=ISymbol>cloneCell</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCellImpl" id=link51 onMouseOver="ShowTip(event, 'tt51', 'link51')" onMouseOut="HideTip('tt51')" class=ISymbol>cloneCellImpl</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCells" id=link52 onMouseOver="ShowTip(event, 'tt52', 'link52')" onMouseOut="HideTip('tt52')" class=ISymbol>cloneCells</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.cloneTemplate" id=link53 onMouseOver="ShowTip(event, 'tt53', 'link53')" onMouseOut="HideTip('tt53')" class=ISymbol>cloneTemplate</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.close" id=link54 onMouseOver="ShowTip(event, 'tt54', 'link54')" onMouseOut="HideTip('tt54')" class=ISymbol>close</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>codecs</span><div class=ISubIndex><a href="../files/model/mxCellPath-php.html#mxCellPath.codecs" id=link55 onMouseOver="ShowTip(event, 'tt55', 'link55')" onMouseOut="HideTip('tt55')" class=IParent>mxCellPath</a><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.codecs" id=link56 onMouseOver="ShowTip(event, 'tt56', 'link56')" onMouseOut="HideTip('tt56')" class=IParent>mxCodecRegistry</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.collapsed" id=link57 onMouseOver="ShowTip(event, 'tt57', 'link57')" onMouseOut="HideTip('tt57')" class=ISymbol>collapsed</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.connectable" id=link58 onMouseOver="ShowTip(event, 'tt58', 'link58')" onMouseOut="HideTip('tt58')" class=ISymbol>connectable</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.consume" id=link59 onMouseOver="ShowTip(event, 'tt59', 'link59')" onMouseOut="HideTip('tt59')" class=ISymbol>consume</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.consumed" id=link60 onMouseOver="ShowTip(event, 'tt60', 'link60')" onMouseOut="HideTip('tt60')" class=ISymbol>consumed</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>contains</span><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel.contains" id=link61 onMouseOver="ShowTip(event, 'tt61', 'link61')" onMouseOut="HideTip('tt61')" class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-php.html#mxUtils.contains" id=link62 onMouseOver="ShowTip(event, 'tt62', 'link62')" onMouseOut="HideTip('tt62')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>convert</span><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.convert" id=link63 onMouseOver="ShowTip(event, 'tt63', 'link63')" onMouseOut="HideTip('tt63')" class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.convert" id=link64 onMouseOver="ShowTip(event, 'tt64', 'link64')" onMouseOut="HideTip('tt64')" class=IParent>mxGraphViewImageReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>convertFile</span><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.convertFile" id=link65 onMouseOver="ShowTip(event, 'tt65', 'link65')" onMouseOut="HideTip('tt65')" class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.convertFile" id=link66 onMouseOver="ShowTip(event, 'tt66', 'link66')" onMouseOut="HideTip('tt66')" class=IParent>mxGraphViewImageReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.convertValueFromXml" id=link67 onMouseOver="ShowTip(event, 'tt67', 'link67')" onMouseOut="HideTip('tt67')" class=ISymbol>convertValueFromXml</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.convertValueToString" id=link68 onMouseOver="ShowTip(event, 'tt68', 'link68')" onMouseOut="HideTip('tt68')" class=ISymbol>convertValueToString</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.convertValueToXml" id=link69 onMouseOver="ShowTip(event, 'tt69', 'link69')" onMouseOut="HideTip('tt69')" class=ISymbol>convertValueToXml</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>copy</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.copy" id=link70 onMouseOver="ShowTip(event, 'tt70', 'link70')" onMouseOut="HideTip('tt70')" class=IParent>mxCell</a><a href="../files/view/mxCellState-php.html#mxCellState.copy" id=link71 onMouseOver="ShowTip(event, 'tt71', 'link71')" onMouseOut="HideTip('tt71')" class=IParent>mxCellState</a><a href="../files/model/mxGeometry-php.html#mxGeometry.copy" id=link72 onMouseOver="ShowTip(event, 'tt72', 'link72')" onMouseOut="HideTip('tt72')" class=IParent>mxGeometry</a><a href="../files/util/mxPoint-php.html#mxPoint.copy" id=link73 onMouseOver="ShowTip(event, 'tt73', 'link73')" onMouseOut="HideTip('tt73')" class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.copy" id=link74 onMouseOver="ShowTip(event, 'tt74', 'link74')" onMouseOut="HideTip('tt74')" class=IParent>mxRectangle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.copyValue" id=link75 onMouseOver="ShowTip(event, 'tt75', 'link75')" onMouseOut="HideTip('tt75')" class=ISymbol>copyValue</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.create" id=link76 onMouseOver="ShowTip(event, 'tt76', 'link76')" onMouseOut="HideTip('tt76')" class=ISymbol>create</a>, <span class=IParent>mxCellPath</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>createCanvas</span><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.createCanvas" id=link77 onMouseOver="ShowTip(event, 'tt77', 'link77')" onMouseOut="HideTip('tt77')" class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.createCanvas" id=link78 onMouseOver="ShowTip(event, 'tt78', 'link78')" onMouseOut="HideTip('tt78')" class=IParent>mxGraphViewImageReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.createDefaultEdgeStyle" id=link79 onMouseOver="ShowTip(event, 'tt79', 'link79')" onMouseOut="HideTip('tt79')" class=ISymbol>createDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.createDefaultVertexStyle" id=link80 onMouseOver="ShowTip(event, 'tt80', 'link80')" onMouseOut="HideTip('tt80')" class=ISymbol>createDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createEdge" id=link81 onMouseOver="ShowTip(event, 'tt81', 'link81')" onMouseOut="HideTip('tt81')" class=ISymbol>createEdge</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createGraphView" id=link82 onMouseOver="ShowTip(event, 'tt82', 'link82')" onMouseOut="HideTip('tt82')" class=ISymbol>createGraphView</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createId" id=link83 onMouseOver="ShowTip(event, 'tt83', 'link83')" onMouseOut="HideTip('tt83')" class=ISymbol>createId</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createIds" id=link84 onMouseOver="ShowTip(event, 'tt84', 'link84')" onMouseOut="HideTip('tt84')" class=ISymbol>createIds</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createImage" id=link85 onMouseOver="ShowTip(event, 'tt85', 'link85')" onMouseOut="HideTip('tt85')" class=ISymbol>createImage</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createRoot" id=link86 onMouseOver="ShowTip(event, 'tt86', 'link86')" onMouseOut="HideTip('tt86')" class=ISymbol>createRoot</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.createState" id=link87 onMouseOver="ShowTip(event, 'tt87', 'link87')" onMouseOut="HideTip('tt87')" class=ISymbol>createState</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createStylesheet" id=link88 onMouseOver="ShowTip(event, 'tt88', 'link88')" onMouseOut="HideTip('tt88')" class=ISymbol>createStylesheet</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createVertex" id=link89 onMouseOver="ShowTip(event, 'tt89', 'link89')" onMouseOut="HideTip('tt89')" class=ISymbol>createVertex</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.createXmlDocument" id=link90 onMouseOver="ShowTip(event, 'tt90', 'link90')" onMouseOut="HideTip('tt90')" class=ISymbol>createXmlDocument</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.current" id=link91 onMouseOver="ShowTip(event, 'tt91', 'link91')" onMouseOut="HideTip('tt91')" class=ISymbol>current</a>, <span class=IParent>mxLog</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt41"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $canvas</td></tr></table></blockquote>Holds the canvas.</div></div><div class=CToolTip id="tt42"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $cell</td></tr></table></blockquote>Reference to the mxCell that is represented by this state.</div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellAdded(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner callback to update cells when a cell has been added. </div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellCloned(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for cloning the cell. </div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cellRemoved(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner callback to update cells when a cell has been removed.</div></div><div class=CToolTip id="tt46"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $cells</td></tr></table></blockquote>Maps from Ids to cells.</div></div><div class=CToolTip id="tt47"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function childMoved(</td><td class=PParameter nowrap>$parent,</td></tr><tr><td></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Invoked when a child state was moved as a result of late evaluation of its position. </div></div><div class=CToolTip id="tt48"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $children</td></tr></table></blockquote>Holds the child cells.</div></div><div class=CToolTip id="tt49"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function clear()</td></tr></table></blockquote>Sets a new root using createRoot.</div></div><div class=CToolTip id="tt50"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCell(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a deep clone of the given mxCell (including the children) which is created using cloneCells.</div></div><div class=CToolTip id="tt51"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCellImpl(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping,</td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner helper method for cloning cells recursively.</div></div><div class=CToolTip id="tt52"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function cloneCells(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an array of clones for the given array of mxCells. </div></div><div class=CToolTip id="tt53"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function cloneTemplate()</td></tr></table></blockquote>Creates a new instance of the template for this codec.</div></div><div class=CToolTip id="tt54"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function close()</td></tr></table></blockquote>Closes all open logfiles.</div></div><div class=CToolTip id="tt55"><div class=CVariable>Maps from constructor names to codecs.</div></div><div class=CToolTip id="tt56"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $codecs</td></tr></table></blockquote>Maps from constructor names to codecs.</div></div><div class=CToolTip id="tt57"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $collapsed</td></tr></table></blockquote>Specifies whether the cell is collapsed. </div></div><div class=CToolTip id="tt58"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $connectable</td></tr></table></blockquote>Specifies whether the cell is connectable. </div></div><div class=CToolTip id="tt59"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function consume()</td></tr></table></blockquote>Consumes the event.</div></div><div class=CToolTip id="tt60"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $consumed</td></tr></table></blockquote>Holds the consumed state of the event. </div></div><div class=CToolTip id="tt61"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function contains(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the model contains the given mxCell.</div></div><div class=CToolTip id="tt62"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function contains(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the specified point (x, y) is contained in the given rectangle.</div></div><div class=CToolTip id="tt63"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convert(</td><td class=PParameter nowrap>$string,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the HTML markup for the given display XML string.</div></div><div class=CToolTip id="tt64"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convert(</td><td class=PParameter nowrap>$string,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the image for the given display XML string.</div></div><div class=CToolTip id="tt65"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convertFile(</td><td class=PParameter nowrap>$filename,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the HTML markup for the given display XML file.</div></div><div class=CToolTip id="tt66"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function convertFile(</td><td class=PParameter nowrap>$filename,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the image for the given display XML file.</div></div><div class=CToolTip id="tt67"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueFromXml(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the given value. </div></div><div class=CToolTip id="tt68"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueToString(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the textual representation for the given cell. </div></div><div class=CToolTip id="tt69"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function convertValueToXml(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the given value without applying a conversion.</div></div><div class=CToolTip id="tt70"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a clone of the cell. </div></div><div class=CToolTip id="tt71"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this state where all members are deeply cloned except the view and cell references, which are copied with no cloning to the new instance.</div></div><div class=CToolTip id="tt72"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this mxGeometry.</div></div><div class=CToolTip id="tt73"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this mxPoint.</div></div><div class=CToolTip id="tt74"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copy()</td></tr></table></blockquote>Returns a copy of this mxRectangle.</div></div><div class=CToolTip id="tt75"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function copyValue()</td></tr></table></blockquote>Returns a clone of the cell&rsquo;s user object.</div></div><div class=CToolTip id="tt76"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function create(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the cell path for the given cell. </div></div><div class=CToolTip id="tt77"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createCanvas(</td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the canvas to be used for rendering.</div></div><div class=CToolTip id="tt78"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createCanvas(</td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the canvas to be used for rendering.</div></div><div class=CToolTip id="tt79"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createDefaultEdgeStyle()</td></tr></table></blockquote>Creates and returns the default edge style.</div></div><div class=CToolTip id="tt80"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createDefaultVertexStyle()</td></tr></table></blockquote>Creates and returns the default vertex style.</div></div><div class=CToolTip id="tt81"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createEdge(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the edge to be used in insertEdge. </div></div><div class=CToolTip id="tt82"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createGraphView()</td></tr></table></blockquote>Creates a new mxGraphView to be used in this graph.</div></div><div class=CToolTip id="tt83"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createId(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook method to create an Id for the specified cell. </div></div><div class=CToolTip id="tt84"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $createIds</td></tr></table></blockquote>Specifies if the model should automatically create Ids for new cells. </div></div><div class=CToolTip id="tt85"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createImage(</td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt86"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createRoot()</td></tr></table></blockquote>Creates a new root cell with a default layer (child 0).</div></div><div class=CToolTip id="tt87"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createState(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the state for the specified cell.</div></div><div class=CToolTip id="tt88"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function createStylesheet()</td></tr></table></blockquote>Creates a new mxStylesheet to be used in this graph.</div></div><div class=CToolTip id="tt89"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function createVertex(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$relative</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates the vertex to be used in insertVertex.</div></div><div class=CToolTip id="tt90"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function createXmlDocument()</td></tr></table></blockquote>Returns a new, empty XML document.</div></div><div class=CToolTip id="tt91"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $current</td></tr></table></blockquote>Default is true.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General3.html b/docs/php-api/index/General3.html
    new file mode 100644
    index 000000000..489713790
    --- /dev/null
    +++ b/docs/php-api/index/General3.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General2.html#C">C</a> &middot; <a href="#D">D</a> &middot; <a href="General4.html#E">E</a> &middot; <a href="General4.html#F">F</a> &middot; <a href="General5.html#G">G</a> &middot; <a href="General6.html#H">H</a> &middot; <a href="General6.html#I">I</a> &middot; J &middot; K &middot; <a href="General6.html#L">L</a> &middot; <a href="General7.html#M">M</a> &middot; <a href="General7.html#N">N</a> &middot; <a href="General7.html#O">O</a> &middot; <a href="General8.html#P">P</a> &middot; Q &middot; <a href="General8.html#R">R</a> &middot; <a href="General9.html#S">S</a> &middot; <a href="General10.html#T">T</a> &middot; <a href="General10.html#U">U</a> &middot; <a href="General10.html#V">V</a> &middot; <a href="General10.html#W">W</a> &middot; <a href="General10.html#X">X</a> &middot; <a href="General10.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="D"></a>D</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.debug" id=link92 onMouseOver="ShowTip(event, 'tt92', 'link92')" onMouseOut="HideTip('tt92')" class=ISymbol>debug</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>decode</span><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.decode" id=link93 onMouseOver="ShowTip(event, 'tt93', 'link93')" onMouseOut="HideTip('tt93')" class=IParent>mxCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decode" id=link94 onMouseOver="ShowTip(event, 'tt94', 'link94')" onMouseOut="HideTip('tt94')" class=IParent>mxObjectCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeAttribute" id=link95 onMouseOver="ShowTip(event, 'tt95', 'link95')" onMouseOut="HideTip('tt95')" class=ISymbol>decodeAttribute</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeAttributes" id=link96 onMouseOver="ShowTip(event, 'tt96', 'link96')" onMouseOut="HideTip('tt96')" class=ISymbol>decodeAttributes</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.decodeCell" id=link97 onMouseOver="ShowTip(event, 'tt97', 'link97')" onMouseOut="HideTip('tt97')" class=ISymbol>decodeCell</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeChild" id=link98 onMouseOver="ShowTip(event, 'tt98', 'link98')" onMouseOut="HideTip('tt98')" class=ISymbol>decodeChild</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeChildren" id=link99 onMouseOver="ShowTip(event, 'tt99', 'link99')" onMouseOut="HideTip('tt99')" class=ISymbol>decodeChildren</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeNode" id=link100 onMouseOver="ShowTip(event, 'tt100', 'link100')" onMouseOut="HideTip('tt100')" class=ISymbol>decodeNode</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_FONTFAMILY" id=link101 onMouseOver="ShowTip(event, 'tt101', 'link101')" onMouseOut="HideTip('tt101')" class=ISymbol>DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_FONTSIZE" id=link102 onMouseOver="ShowTip(event, 'tt102', 'link102')" onMouseOut="HideTip('tt102')" class=ISymbol>DEFAULT_FONTSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_IMAGESIZE" id=link103 onMouseOver="ShowTip(event, 'tt103', 'link103')" onMouseOut="HideTip('tt103')" class=ISymbol>DEFAULT_IMAGESIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_LINESPACING" id=link104 onMouseOver="ShowTip(event, 'tt104', 'link104')" onMouseOut="HideTip('tt104')" class=ISymbol>DEFAULT_LINESPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_MARKERSIZE" id=link105 onMouseOver="ShowTip(event, 'tt105', 'link105')" onMouseOut="HideTip('tt105')" class=ISymbol>DEFAULT_MARKERSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_STARTSIZE" id=link106 onMouseOver="ShowTip(event, 'tt106', 'link106')" onMouseOut="HideTip('tt106')" class=ISymbol>DEFAULT_STARTSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.defaultLoopStyle" id=link107 onMouseOver="ShowTip(event, 'tt107', 'link107')" onMouseOut="HideTip('tt107')" class=ISymbol>defaultLoopStyle</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEG_PER_RAD" id=link108 onMouseOver="ShowTip(event, 'tt108', 'link108')" onMouseOut="HideTip('tt108')" class=ISymbol>DEG_PER_RAD</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>destroy</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.destroy" id=link109 onMouseOver="ShowTip(event, 'tt109', 'link109')" onMouseOut="HideTip('tt109')" class=IParent>mxGdCanvas</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.destroy" id=link110 onMouseOver="ShowTip(event, 'tt110', 'link110')" onMouseOut="HideTip('tt110')" class=IParent>mxGraphViewImageReader</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.destroy" id=link111 onMouseOver="ShowTip(event, 'tt111', 'link111')" onMouseOut="HideTip('tt111')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_EAST" id=link112 onMouseOver="ShowTip(event, 'tt112', 'link112')" onMouseOut="HideTip('tt112')" class=ISymbol>DIRECTION_EAST</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_NORTH" id=link113 onMouseOver="ShowTip(event, 'tt113', 'link113')" onMouseOut="HideTip('tt113')" class=ISymbol>DIRECTION_NORTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_SOUTH" id=link114 onMouseOver="ShowTip(event, 'tt114', 'link114')" onMouseOut="HideTip('tt114')" class=ISymbol>DIRECTION_SOUTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_WEST" id=link115 onMouseOver="ShowTip(event, 'tt115', 'link115')" onMouseOut="HideTip('tt115')" class=ISymbol>DIRECTION_WEST</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.document" id=link116 onMouseOver="ShowTip(event, 'tt116', 'link116')" onMouseOut="HideTip('tt116')" class=ISymbol>document</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawActor" id=link117 onMouseOver="ShowTip(event, 'tt117', 'link117')" onMouseOut="HideTip('tt117')" class=ISymbol>drawActor</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCell" id=link118 onMouseOver="ShowTip(event, 'tt118', 'link118')" onMouseOut="HideTip('tt118')" class=ISymbol>drawCell</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCloud" id=link119 onMouseOver="ShowTip(event, 'tt119', 'link119')" onMouseOut="HideTip('tt119')" class=ISymbol>drawCloud</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCylinder" id=link120 onMouseOver="ShowTip(event, 'tt120', 'link120')" onMouseOut="HideTip('tt120')" class=ISymbol>drawCylinder</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawFixedTextLine" id=link121 onMouseOver="ShowTip(event, 'tt121', 'link121')" onMouseOut="HideTip('tt121')" class=ISymbol>drawFixedTextLine</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawGraph</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawGraph" id=link122 onMouseOver="ShowTip(event, 'tt122', 'link122')" onMouseOut="HideTip('tt122')" class=IParent>mxGdCanvas</a><a href="../files/view/mxGraph-php.html#mxGraph.drawGraph" id=link123 onMouseOver="ShowTip(event, 'tt123', 'link123')" onMouseOut="HideTip('tt123')" class=IParent>mxGraph</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawGraph" id=link124 onMouseOver="ShowTip(event, 'tt124', 'link124')" onMouseOut="HideTip('tt124')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawHexagon" id=link125 onMouseOver="ShowTip(event, 'tt125', 'link125')" onMouseOut="HideTip('tt125')" class=ISymbol>drawHexagon</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawImage</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawImage" id=link126 onMouseOver="ShowTip(event, 'tt126', 'link126')" onMouseOut="HideTip('tt126')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawImage" id=link127 onMouseOver="ShowTip(event, 'tt127', 'link127')" onMouseOut="HideTip('tt127')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawLabel" id=link128 onMouseOver="ShowTip(event, 'tt128', 'link128')" onMouseOut="HideTip('tt128')" class=ISymbol>drawLabel</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawLine</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawLine" id=link129 onMouseOver="ShowTip(event, 'tt129', 'link129')" onMouseOut="HideTip('tt129')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawLine" id=link130 onMouseOver="ShowTip(event, 'tt130', 'link130')" onMouseOut="HideTip('tt130')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawMarker" id=link131 onMouseOver="ShowTip(event, 'tt131', 'link131')" onMouseOut="HideTip('tt131')" class=ISymbol>drawMarker</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawOval" id=link132 onMouseOver="ShowTip(event, 'tt132', 'link132')" onMouseOut="HideTip('tt132')" class=ISymbol>drawOval</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawPolygon" id=link133 onMouseOver="ShowTip(event, 'tt133', 'link133')" onMouseOut="HideTip('tt133')" class=ISymbol>drawPolygon</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawRect" id=link134 onMouseOver="ShowTip(event, 'tt134', 'link134')" onMouseOut="HideTip('tt134')" class=ISymbol>drawRect</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawRhombus" id=link135 onMouseOver="ShowTip(event, 'tt135', 'link135')" onMouseOut="HideTip('tt135')" class=ISymbol>drawRhombus</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawShape</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawShape" id=link136 onMouseOver="ShowTip(event, 'tt136', 'link136')" onMouseOut="HideTip('tt136')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawShape" id=link137 onMouseOver="ShowTip(event, 'tt137', 'link137')" onMouseOut="HideTip('tt137')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawString"  class=ISymbol>drawString</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>drawText</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawText" id=link138 onMouseOver="ShowTip(event, 'tt138', 'link138')" onMouseOut="HideTip('tt138')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawText" id=link139 onMouseOver="ShowTip(event, 'tt139', 'link139')" onMouseOut="HideTip('tt139')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTriangle" id=link140 onMouseOver="ShowTip(event, 'tt140', 'link140')" onMouseOut="HideTip('tt140')" class=ISymbol>drawTriangle</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTtfText" id=link141 onMouseOver="ShowTip(event, 'tt141', 'link141')" onMouseOut="HideTip('tt141')" class=ISymbol>drawTtfText</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTtxTextLine" id=link142 onMouseOver="ShowTip(event, 'tt142', 'link142')" onMouseOut="HideTip('tt142')" class=ISymbol>drawTtxTextLine</a>, <span class=IParent>mxGdCanvas</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt92"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function debug(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a debug trace.</div></div><div class=CToolTip id="tt93"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decode(</td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$into</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodes the given XML node. </div></div><div class=CToolTip id="tt94"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$into</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parses the given node into the object or returns a new object representing the given node.</div></div><div class=CToolTip id="tt95"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeAttribute(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the given attribute into the specified object.</div></div><div class=CToolTip id="tt96"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeAttributes(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodes all attributes of the given node using decodeAttribute.</div></div><div class=CToolTip id="tt97"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeCell(</td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$restoreStructures</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodes cells that have been encoded using inversion, ie. </div></div><div class=CToolTip id="tt98"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeChild(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$child,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the specified child into the given object.</div></div><div class=CToolTip id="tt99"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeChildren(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Decodec all children of the given node using decodeChild.</div></div><div class=CToolTip id="tt100"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function decodeNode(</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Calls decodeAttributes and decodeChildren for the given node.</div></div><div class=CToolTip id="tt101"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTFAMILY</td></tr></table></blockquote>Defines the default family for all truetype fonts. </div></div><div class=CToolTip id="tt102"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTSIZE</td></tr></table></blockquote>Defines the default size for all fonts in points. </div></div><div class=CToolTip id="tt103"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_IMAGESIZE</td></tr></table></blockquote>Defines the default width and height for images used in the label shape. </div></div><div class=CToolTip id="tt104"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_LINESPACING</td></tr></table></blockquote>Defines the default linespacing. </div></div><div class=CToolTip id="tt105"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_MARKERSIZE</td></tr></table></blockquote>Defines the default size for all markers. </div></div><div class=CToolTip id="tt106"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_STARTSIZE</td></tr></table></blockquote>Defines the default start size for swimlanes. </div></div><div class=CToolTip id="tt107"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $defaultLoopStyle</td></tr></table></blockquote>mxEdgeStyle to be used for loops. </div></div><div class=CToolTip id="tt108"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEG_PER_RAD</td></tr></table></blockquote>Defines the number of degrees per radiant.</div></div><div class=CToolTip id="tt109"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote>Destroys all allocated resources.</div></div><div class=CToolTip id="tt110"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote>Destroy all allocated resources for this reader.</div></div><div class=CToolTip id="tt111"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function destroy()</td></tr></table></blockquote>Destroy all allocated resources.</div></div><div class=CToolTip id="tt112"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_EAST</td></tr></table></blockquote></div></div><div class=CToolTip id="tt113"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_NORTH</td></tr></table></blockquote></div></div><div class=CToolTip id="tt114"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_SOUTH</td></tr></table></blockquote></div></div><div class=CToolTip id="tt115"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_WEST</td></tr></table></blockquote></div></div><div class=CToolTip id="tt116"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $document</td></tr></table></blockquote>The owner document of the codec.</div></div><div class=CToolTip id="tt117"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawActor(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given cloud.</div></div><div class=CToolTip id="tt118"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCell(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given cell state.</div></div><div class=CToolTip id="tt119"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCloud(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given cloud.</div></div><div class=CToolTip id="tt120"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawCylinder(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given cylinder.</div></div><div class=CToolTip id="tt121"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawFixedTextLine(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$font,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$left,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$top,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$color,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$horizontal</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given fixed text line.</div></div><div class=CToolTip id="tt122"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public static function drawGraph(</td><td class=PParameter nowrap>$graph,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$bg</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given graph using this canvas.</div></div><div class=CToolTip id="tt123"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawGraph(</td><td class=PParameter nowrap>$canvas</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given cell onto the specified canvas.</div></div><div class=CToolTip id="tt124"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>public static function drawGraph(</td><td class=PParameter nowrap>$graph,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$clip</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$bg</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given graph using this canvas.</div></div><div class=CToolTip id="tt125"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawHexagon(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$direction</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given haxagon.</div></div><div class=CToolTip id="tt126"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawImage(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$aspect</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws a given image.</div></div><div class=CToolTip id="tt127"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawImage(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$aspect</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified image.</div></div><div class=CToolTip id="tt128"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLabel(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$state,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$html</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given label.</div></div><div class=CToolTip id="tt129"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLine(</td><td class=PParameter nowrap>$x0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given line.</div></div><div class=CToolTip id="tt130"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawLine(</td><td class=PParameter nowrap>$x0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified line.</div></div><div class=CToolTip id="tt131"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawMarker(</td><td class=PParameter nowrap>$type,</td></tr><tr><td></td><td class=PParameter nowrap>$p0,</td></tr><tr><td></td><td class=PParameter nowrap>$pe,</td></tr><tr><td></td><td class=PParameter nowrap>$size,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified marker.</div></div><div class=CToolTip id="tt132"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawOval(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given ellipse.</div></div><div class=CToolTip id="tt133"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawPolygon(</td><td class=PParameter nowrap>$points,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given polygon.</div></div><div class=CToolTip id="tt134"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawRect(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$rounded</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$dashed</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given rectangle. </div></div><div class=CToolTip id="tt135"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawRhombus(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given rhombus.</div></div><div class=CToolTip id="tt136"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawShape(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the given shape.</div></div><div class=CToolTip id="tt137"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawShape(</td><td class=PParameter nowrap>$shape,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null,</td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified shape.</div></div><div class=CToolTip id="tt138"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt139"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws the specified text.</div></div><div class=CToolTip id="tt140"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawTriangle(</td><td class=PParameter nowrap>$x,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$y,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$w,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$h,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fill</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$stroke</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$shadow</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$direction</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws then given triangle.</div></div><div class=CToolTip id="tt141"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function drawTtfText(</td><td class=PParameter nowrap>$string,</td></tr><tr><td></td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$w,</td></tr><tr><td></td><td class=PParameter nowrap>$h,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt142"><div class=CFunction>Draws a single line of the given true type font text. </div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General4.html b/docs/php-api/index/General4.html
    new file mode 100644
    index 000000000..30cad8096
    --- /dev/null
    +++ b/docs/php-api/index/General4.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General2.html#C">C</a> &middot; <a href="General3.html#D">D</a> &middot; <a href="#E">E</a> &middot; <a href="#F">F</a> &middot; <a href="General5.html#G">G</a> &middot; <a href="General6.html#H">H</a> &middot; <a href="General6.html#I">I</a> &middot; J &middot; K &middot; <a href="General6.html#L">L</a> &middot; <a href="General7.html#M">M</a> &middot; <a href="General7.html#N">N</a> &middot; <a href="General7.html#O">O</a> &middot; <a href="General8.html#P">P</a> &middot; Q &middot; <a href="General8.html#R">R</a> &middot; <a href="General9.html#S">S</a> &middot; <a href="General10.html#T">T</a> &middot; <a href="General10.html#U">U</a> &middot; <a href="General10.html#V">V</a> &middot; <a href="General10.html#W">W</a> &middot; <a href="General10.html#X">X</a> &middot; <a href="General10.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="E"></a>E</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.edge" id=link143 onMouseOver="ShowTip(event, 'tt143', 'link143')" onMouseOut="HideTip('tt143')" class=ISymbol>edge</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.edges" id=link144 onMouseOver="ShowTip(event, 'tt144', 'link144')" onMouseOut="HideTip('tt144')" class=ISymbol>edges</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_ENTITY_RELATION" id=link145 onMouseOver="ShowTip(event, 'tt145', 'link145')" onMouseOut="HideTip('tt145')" class=ISymbol>EDGESTYLE_ENTITY_RELATION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_LOOP" id=link146 onMouseOver="ShowTip(event, 'tt146', 'link146')" onMouseOut="HideTip('tt146')" class=ISymbol>EDGESTYLE_LOOP</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_SIDETOSIDE" id=link147 onMouseOver="ShowTip(event, 'tt147', 'link147')" onMouseOut="HideTip('tt147')" class=ISymbol>EDGESTYLE_SIDETOSIDE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_TOPTOBOTTOM" id=link148 onMouseOver="ShowTip(event, 'tt148', 'link148')" onMouseOut="HideTip('tt148')" class=ISymbol>EDGESTYLE_TOPTOBOTTOM</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ELBOW_HORIZONTAL" id=link149 onMouseOver="ShowTip(event, 'tt149', 'link149')" onMouseOut="HideTip('tt149')" class=ISymbol>ELBOW_HORIZONTAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ELBOW_VERTICAL" id=link150 onMouseOver="ShowTip(event, 'tt150', 'link150')" onMouseOut="HideTip('tt150')" class=ISymbol>ELBOW_VERTICAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.ElbowConnector" id=link151 onMouseOver="ShowTip(event, 'tt151', 'link151')" onMouseOut="HideTip('tt151')" class=ISymbol>ElbowConnector</a>, <span class=IParent>mxEdgeStyle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.EllipsePerimeter" id=link152 onMouseOver="ShowTip(event, 'tt152', 'link152')" onMouseOut="HideTip('tt152')" class=ISymbol>EllipsePerimeter</a>, <span class=IParent>mxPerimeter</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.EMPTY_POINT" id=link153 onMouseOver="ShowTip(event, 'tt153', 'link153')" onMouseOut="HideTip('tt153')" class=ISymbol>EMPTY_POINT</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.enableTtf" id=link154 onMouseOver="ShowTip(event, 'tt154', 'link154')" onMouseOut="HideTip('tt154')" class=ISymbol>enableTtf</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>encode</span><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.encode" id=link155 onMouseOver="ShowTip(event, 'tt155', 'link155')" onMouseOut="HideTip('tt155')" class=IParent>mxCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encode" id=link156 onMouseOver="ShowTip(event, 'tt156', 'link156')" onMouseOut="HideTip('tt156')" class=IParent>mxObjectCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.encodeCell" id=link157 onMouseOver="ShowTip(event, 'tt157', 'link157')" onMouseOut="HideTip('tt157')" class=ISymbol>encodeCell</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.encodeDefaults" id=link158 onMouseOver="ShowTip(event, 'tt158', 'link158')" onMouseOut="HideTip('tt158')" class=ISymbol>encodeDefaults</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.encodeImage" id=link159 onMouseOver="ShowTip(event, 'tt159', 'link159')" onMouseOut="HideTip('tt159')" class=ISymbol>encodeImage</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encodeObject" id=link160 onMouseOver="ShowTip(event, 'tt160', 'link160')" onMouseOut="HideTip('tt160')" class=ISymbol>encodeObject</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encodeValue" id=link161 onMouseOver="ShowTip(event, 'tt161', 'link161')" onMouseOut="HideTip('tt161')" class=ISymbol>encodeValue</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.endElement" id=link162 onMouseOver="ShowTip(event, 'tt162', 'link162')" onMouseOut="HideTip('tt162')" class=ISymbol>endElement</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.endUpdate" id=link163 onMouseOver="ShowTip(event, 'tt163', 'link163')" onMouseOut="HideTip('tt163')" class=ISymbol>endUpdate</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.enter" id=link164 onMouseOver="ShowTip(event, 'tt164', 'link164')" onMouseOut="HideTip('tt164')" class=ISymbol>enter</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ENTITY_SEGMENT" id=link165 onMouseOver="ShowTip(event, 'tt165', 'link165')" onMouseOut="HideTip('tt165')" class=ISymbol>ENTITY_SEGMENT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.EntityRelation" id=link166 onMouseOver="ShowTip(event, 'tt166', 'link166')" onMouseOut="HideTip('tt166')" class=ISymbol>EntityRelation</a>, <span class=IParent>mxEdgeStyle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>equals</span><div class=ISubIndex><a href="../files/util/mxPoint-php.html#mxPoint.equals" id=link167 onMouseOver="ShowTip(event, 'tt167', 'link167')" onMouseOut="HideTip('tt167')" class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.equals" id=link168 onMouseOver="ShowTip(event, 'tt168', 'link168')" onMouseOut="HideTip('tt168')" class=IParent>mxRectangle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.error" id=link169 onMouseOver="ShowTip(event, 'tt169', 'link169')" onMouseOut="HideTip('tt169')" class=ISymbol>error</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.evaluate" id=link170 onMouseOver="ShowTip(event, 'tt170', 'link170')" onMouseOut="HideTip('tt170')" class=ISymbol>evaluate</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.eventListeners" id=link171 onMouseOver="ShowTip(event, 'tt171', 'link171')" onMouseOut="HideTip('tt171')" class=ISymbol>eventListeners</a>, <span class=IParent>mxEventSource</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.exclude" id=link172 onMouseOver="ShowTip(event, 'tt172', 'link172')" onMouseOut="HideTip('tt172')" class=ISymbol>exclude</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.findNode" id=link173 onMouseOver="ShowTip(event, 'tt173', 'link173')" onMouseOut="HideTip('tt173')" class=ISymbol>findNode</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.findTreeRoots" id=link174 onMouseOver="ShowTip(event, 'tt174', 'link174')" onMouseOut="HideTip('tt174')" class=ISymbol>findTreeRoots</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.fine" id=link175 onMouseOver="ShowTip(event, 'tt175', 'link175')" onMouseOut="HideTip('tt175')" class=ISymbol>fine</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.fireEvent" id=link176 onMouseOver="ShowTip(event, 'tt176', 'link176')" onMouseOut="HideTip('tt176')" class=ISymbol>fireEvent</a>, <span class=IParent>mxEventSource</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.flipImage" id=link177 onMouseOver="ShowTip(event, 'tt177', 'link177')" onMouseOut="HideTip('tt177')" class=ISymbol>flipImage</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_BOLD" id=link178 onMouseOver="ShowTip(event, 'tt178', 'link178')" onMouseOut="HideTip('tt178')" class=ISymbol>FONT_BOLD</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_ITALIC" id=link179 onMouseOver="ShowTip(event, 'tt179', 'link179')" onMouseOut="HideTip('tt179')" class=ISymbol>FONT_ITALIC</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_SHADOW" id=link180 onMouseOver="ShowTip(event, 'tt180', 'link180')" onMouseOut="HideTip('tt180')" class=ISymbol>FONT_SHADOW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_UNDERLINE" id=link181 onMouseOver="ShowTip(event, 'tt181', 'link181')" onMouseOut="HideTip('tt181')" class=ISymbol>FONT_UNDERLINE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>Functions</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.Functions"  class=IParent>mxCell</a><a href="../files/io/mxCellCodec-php.html#mxCellCodec.Functions"  class=IParent>mxCellCodec</a><a href="../files/model/mxCellPath-php.html#mxCellPath.Functions"  class=IParent>mxCellPath</a><a href="../files/view/mxCellState-php.html#mxCellState.Functions"  class=IParent>mxCellState</a><a href="../files/io/mxCodec-php.html#mxCodec.Functions"  class=IParent>mxCodec</a><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.Functions"  class=IParent>mxCodecRegistry</a><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.Functions"  class=IParent>mxConnectionConstraint</a><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction.Functions"  class=IParent>mxEdgeStyleFunction</a><a href="../files/util/mxEventObject-php.html#mxEventObject.Functions"  class=IParent>mxEventObject</a><a href="../files/util/mxEventSource-php.html#mxEventSource.Functions"  class=IParent>mxEventSource</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.Functions"  class=IParent>mxGdCanvas</a><a href="../files/model/mxGeometry-php.html#mxGeometry.Functions"  class=IParent>mxGeometry</a><a href="../files/view/mxGraph-php.html#mxGraph.Functions"  class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.Functions"  class=IParent>mxGraphModel</a><a href="../files/view/mxGraphView-php.html#mxGraphView.Functions"  class=IParent>mxGraphView</a><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.Functions"  class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.Functions"  class=IParent>mxGraphViewImageReader</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.Functions"  class=IParent>mxHtmlCanvas</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.Functions"  class=IParent>mxImageBundle</a><a href="../files/util/mxLog-php.html#mxLog.Functions"  class=IParent>mxLog</a><a href="../files/io/mxModelCodec-php.html#mxModelCodec.Functions"  class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.Functions"  class=IParent>mxObjectCodec</a><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction.Functions"  class=IParent>mxPerimeterFunction</a><a href="../files/util/mxPoint-php.html#mxPoint.Functions"  class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.Functions"  class=IParent>mxRectangle</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.Functions"  class=IParent>mxStyleRegistry</a><a href="../files/view/mxStylesheet-php.html#mxStylesheet.Functions"  class=IParent>mxStylesheet</a><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec.Functions"  class=IParent>mxStylesheetCodec</a><a href="../files/util/mxUtils-php.html#mxUtils.Functions"  class=IParent>mxUtils</a></div></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt143"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $edge</td></tr></table></blockquote>Specifies whether the cell is an edge. </div></div><div class=CToolTip id="tt144"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $edges</td></tr></table></blockquote>Holds the edges.</div></div><div class=CToolTip id="tt145"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_ENTITY_RELATION</td></tr></table></blockquote>Name of the entity relation edge style. </div></div><div class=CToolTip id="tt146"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_LOOP</td></tr></table></blockquote>Name of the loop edge style. </div></div><div class=CToolTip id="tt147"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_SIDETOSIDE</td></tr></table></blockquote>Name of the side to side edge style. </div></div><div class=CToolTip id="tt148"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_TOPTOBOTTOM</td></tr></table></blockquote>Name of the top to bottom edge style. </div></div><div class=CToolTip id="tt149"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ELBOW_HORIZONTAL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt150"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ELBOW_VERTICAL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt151"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ElbowConnector</td></tr></table></blockquote>Provides an elbow connector.</div></div><div class=CToolTip id="tt152"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EllipsePerimeter</td></tr></table></blockquote>Provides an elliptic perimeter.</div></div><div class=CToolTip id="tt153"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $EMPTY_POINT</td></tr></table></blockquote>An empty mxPoint instance.</div></div><div class=CToolTip id="tt154"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $enableTtf</td></tr></table></blockquote>Specifies if truetype fonts are enabled if available. </div></div><div class=CToolTip id="tt155"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encode(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the specified object and returns the resulting XML node.</div></div><div class=CToolTip id="tt156"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encode(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the specified object and returns a node representing then given object. </div></div><div class=CToolTip id="tt157"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeCell(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$node,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeChildren</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg. </div></div><div class=CToolTip id="tt158"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $encodeDefaults</td></tr></table></blockquote>Specifies if default values should be encoded. </div></div><div class=CToolTip id="tt159"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function encodeImage(</td><td class=PParameter nowrap>$image,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$format</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the given image using the GD image encoding routines. </div></div><div class=CToolTip id="tt160"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeObject(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Encodes the value of each member in then given obj into the given node using encodeValue.</div></div><div class=CToolTip id="tt161"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function encodeValue(</td><td class=PParameter nowrap>$enc,</td></tr><tr><td></td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$node</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Converts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node.</div></div><div class=CToolTip id="tt162"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function endElement(</td><td class=PParameter nowrap>$parser,</td></tr><tr><td></td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Invoked by the SAX parser when an element ends.</div></div><div class=CToolTip id="tt163"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function endUpdate()</td></tr></table></blockquote>Decrements the updateLevel by one and fires a notification event if the updateLevel reaches 0. </div></div><div class=CToolTip id="tt164"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function enter(</td><td class=PParameter nowrap>$method,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$text</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a method entry.</div></div><div class=CToolTip id="tt165"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ENTITY_SEGMENT</td></tr></table></blockquote>Defines the length of the horizontal segment of an Entity Relation. </div></div><div class=CToolTip id="tt166"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EntityRelation</td></tr></table></blockquote>Provides an entity relation style for edges (as used in database schema diagrams).</div></div><div class=CToolTip id="tt167"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function equals(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given object equals this point.</div></div><div class=CToolTip id="tt168"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function equals(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given object equals this rectangle.</div></div><div class=CToolTip id="tt169"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function error(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs an error trace.</div></div><div class=CToolTip id="tt170"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function evaluate(</td><td class=PParameter nowrap>$expression</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates an expression to a class member. </div></div><div class=CToolTip id="tt171"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $eventListeners</td></tr></table></blockquote>Holds the registered listeners.</div></div><div class=CToolTip id="tt172"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $exclude</td></tr></table></blockquote>Array containing the variable names that should be ignored by the codec.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt173"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function findNode(</td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the first node where attr equals value. </div></div><div class=CToolTip id="tt174"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function findTreeRoots(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$isolate</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$invert</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns all children in the given parent which do not have incoming edges. </div></div><div class=CToolTip id="tt175"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function fine(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a fine trace.</div></div><div class=CToolTip id="tt176"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function fireEvent(</td><td class=PParameter nowrap>$event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Fires the event for the specified name.</div></div><div class=CToolTip id="tt177"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function flipImage(</td><td class=PParameter nowrap>$img,</td></tr><tr><td></td><td class=PParameter nowrap>$flipH,</td></tr><tr><td></td><td class=PParameter nowrap>$flipV</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Flips the given image horizontally and/or vertically and returns a new image instance.</div></div><div class=CToolTip id="tt178"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_BOLD</td></tr></table></blockquote></div></div><div class=CToolTip id="tt179"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_ITALIC</td></tr></table></blockquote></div></div><div class=CToolTip id="tt180"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_SHADOW</td></tr></table></blockquote></div></div><div class=CToolTip id="tt181"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_UNDERLINE</td></tr></table></blockquote></div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General5.html b/docs/php-api/index/General5.html
    new file mode 100644
    index 000000000..294a1bc7c
    --- /dev/null
    +++ b/docs/php-api/index/General5.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General2.html#C">C</a> &middot; <a href="General3.html#D">D</a> &middot; <a href="General4.html#E">E</a> &middot; <a href="General4.html#F">F</a> &middot; <a href="#G">G</a> &middot; <a href="General6.html#H">H</a> &middot; <a href="General6.html#I">I</a> &middot; J &middot; K &middot; <a href="General6.html#L">L</a> &middot; <a href="General7.html#M">M</a> &middot; <a href="General7.html#N">N</a> &middot; <a href="General7.html#O">O</a> &middot; <a href="General8.html#P">P</a> &middot; Q &middot; <a href="General8.html#R">R</a> &middot; <a href="General9.html#S">S</a> &middot; <a href="General10.html#T">T</a> &middot; <a href="General10.html#U">U</a> &middot; <a href="General10.html#V">V</a> &middot; <a href="General10.html#W">W</a> &middot; <a href="General10.html#X">X</a> &middot; <a href="General10.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="G"></a>G</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.geometry" id=link182 onMouseOver="ShowTip(event, 'tt182', 'link182')" onMouseOut="HideTip('tt182')" class=ISymbol>geometry</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getAttribute" id=link183 onMouseOver="ShowTip(event, 'tt183', 'link183')" onMouseOut="HideTip('tt183')" class=ISymbol>getAttribute</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getAttributeName" id=link184 onMouseOver="ShowTip(event, 'tt184', 'link184')" onMouseOut="HideTip('tt184')" class=ISymbol>getAttributeName</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getBoundingBox</span><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getBoundingBox" id=link185 onMouseOver="ShowTip(event, 'tt185', 'link185')" onMouseOut="HideTip('tt185')" class=IParent>mxGraph</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getBoundingBox" id=link186 onMouseOver="ShowTip(event, 'tt186', 'link186')" onMouseOut="HideTip('tt186')" class=IParent>mxGraphView</a><a href="../files/util/mxUtils-php.html#mxUtils.getBoundingBox" id=link187 onMouseOver="ShowTip(event, 'tt187', 'link187')" onMouseOut="HideTip('tt187')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getBounds" id=link188 onMouseOver="ShowTip(event, 'tt188', 'link188')" onMouseOut="HideTip('tt188')" class=ISymbol>getBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getBoundsForCells" id=link189 onMouseOver="ShowTip(event, 'tt189', 'link189')" onMouseOut="HideTip('tt189')" class=ISymbol>getBoundsForCells</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getCellBounds" id=link190 onMouseOver="ShowTip(event, 'tt190', 'link190')" onMouseOut="HideTip('tt190')" class=ISymbol>getCellBounds</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getCellGeometry" id=link191 onMouseOver="ShowTip(event, 'tt191', 'link191')" onMouseOut="HideTip('tt191')" class=ISymbol>getCellGeometry</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getCells" id=link192 onMouseOver="ShowTip(event, 'tt192', 'link192')" onMouseOut="HideTip('tt192')" class=ISymbol>getCells</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getCellStyle</span><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getCellStyle" id=link193 onMouseOver="ShowTip(event, 'tt193', 'link193')" onMouseOut="HideTip('tt193')" class=IParent>mxGraph</a><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getCellStyle" id=link194 onMouseOver="ShowTip(event, 'tt194', 'link194')" onMouseOut="HideTip('tt194')" class=IParent>mxStylesheet</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.getCenterX" id=link195 onMouseOver="ShowTip(event, 'tt195', 'link195')" onMouseOut="HideTip('tt195')" class=ISymbol>getCenterX</a>, <span class=IParent>mxRectangle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.getCenterY" id=link196 onMouseOver="ShowTip(event, 'tt196', 'link196')" onMouseOut="HideTip('tt196')" class=ISymbol>getCenterY</a>, <span class=IParent>mxRectangle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getChildAt</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getChildAt" id=link197 onMouseOver="ShowTip(event, 'tt197', 'link197')" onMouseOut="HideTip('tt197')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getChildAt" id=link198 onMouseOver="ShowTip(event, 'tt198', 'link198')" onMouseOut="HideTip('tt198')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getChildCount</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getChildCount" id=link199 onMouseOver="ShowTip(event, 'tt199', 'link199')" onMouseOut="HideTip('tt199')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getChildCount" id=link200 onMouseOver="ShowTip(event, 'tt200', 'link200')" onMouseOut="HideTip('tt200')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getChildOffsetForCell" id=link201 onMouseOver="ShowTip(event, 'tt201', 'link201')" onMouseOut="HideTip('tt201')" class=ISymbol>getChildOffsetForCell</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getCodec" id=link202 onMouseOver="ShowTip(event, 'tt202', 'link202')" onMouseOut="HideTip('tt202')" class=ISymbol>getCodec</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getColor" id=link203 onMouseOver="ShowTip(event, 'tt203', 'link203')" onMouseOut="HideTip('tt203')" class=ISymbol>getColor</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getConnectionConstraint" id=link204 onMouseOver="ShowTip(event, 'tt204', 'link204')" onMouseOut="HideTip('tt204')" class=ISymbol>getConnectionConstraint</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getConnectionPoint" id=link205 onMouseOver="ShowTip(event, 'tt205', 'link205')" onMouseOut="HideTip('tt205')" class=ISymbol>getConnectionPoint</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getDefaultEdgeStyle" id=link206 onMouseOver="ShowTip(event, 'tt206', 'link206')" onMouseOut="HideTip('tt206')" class=ISymbol>getDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getDefaultParent" id=link207 onMouseOver="ShowTip(event, 'tt207', 'link207')" onMouseOut="HideTip('tt207')" class=ISymbol>getDefaultParent</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getDefaultVertexStyle" id=link208 onMouseOver="ShowTip(event, 'tt208', 'link208')" onMouseOut="HideTip('tt208')" class=ISymbol>getDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getDirectedEdgeCount" id=link209 onMouseOver="ShowTip(event, 'tt209', 'link209')" onMouseOut="HideTip('tt209')" class=ISymbol>getDirectedEdgeCount</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getEdgeAt</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getEdgeAt" id=link210 onMouseOver="ShowTip(event, 'tt210', 'link210')" onMouseOut="HideTip('tt210')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdgeAt" id=link211 onMouseOver="ShowTip(event, 'tt211', 'link211')" onMouseOut="HideTip('tt211')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getEdgeCount</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getEdgeCount" id=link212 onMouseOver="ShowTip(event, 'tt212', 'link212')" onMouseOut="HideTip('tt212')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdgeCount" id=link213 onMouseOver="ShowTip(event, 'tt213', 'link213')" onMouseOut="HideTip('tt213')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getEdgeIndex" id=link214 onMouseOver="ShowTip(event, 'tt214', 'link214')" onMouseOut="HideTip('tt214')" class=ISymbol>getEdgeIndex</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdges" id=link215 onMouseOver="ShowTip(event, 'tt215', 'link215')" onMouseOut="HideTip('tt215')" class=ISymbol>getEdges</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getEdgeStyle" id=link216 onMouseOver="ShowTip(event, 'tt216', 'link216')" onMouseOut="HideTip('tt216')" class=ISymbol>getEdgeStyle</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.getElementById" id=link217 onMouseOver="ShowTip(event, 'tt217', 'link217')" onMouseOut="HideTip('tt217')" class=ISymbol>getElementById</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getFieldName" id=link218 onMouseOver="ShowTip(event, 'tt218', 'link218')" onMouseOut="HideTip('tt218')" class=ISymbol>getFieldName</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getFieldTemplate" id=link219 onMouseOver="ShowTip(event, 'tt219', 'link219')" onMouseOut="HideTip('tt219')" class=ISymbol>getFieldTemplate</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getFixedFontSize</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getFixedFontSize" id=link220 onMouseOver="ShowTip(event, 'tt220', 'link220')" onMouseOut="HideTip('tt220')" class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getFixedFontSize" id=link221 onMouseOver="ShowTip(event, 'tt221', 'link221')" onMouseOut="HideTip('tt221')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getGeometry</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getGeometry" id=link222 onMouseOver="ShowTip(event, 'tt222', 'link222')" onMouseOut="HideTip('tt222')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getGeometry" id=link223 onMouseOver="ShowTip(event, 'tt223', 'link223')" onMouseOut="HideTip('tt223')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getGraphBounds</span><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getGraphBounds" id=link224 onMouseOver="ShowTip(event, 'tt224', 'link224')" onMouseOut="HideTip('tt224')" class=IParent>mxGraph</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getGraphBounds" id=link225 onMouseOver="ShowTip(event, 'tt225', 'link225')" onMouseOut="HideTip('tt225')" class=IParent>mxGraphView</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getHashCode" id=link226 onMouseOver="ShowTip(event, 'tt226', 'link226')" onMouseOut="HideTip('tt226')" class=ISymbol>getHashCode</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.getHtml" id=link227 onMouseOver="ShowTip(event, 'tt227', 'link227')" onMouseOut="HideTip('tt227')" class=ISymbol>getHtml</a>, <span class=IParent>mxHtmlCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getId</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getId" id=link228 onMouseOver="ShowTip(event, 'tt228', 'link228')" onMouseOut="HideTip('tt228')" class=IParent>mxCell</a><a href="../files/io/mxCodec-php.html#mxCodec.getId" id=link229 onMouseOver="ShowTip(event, 'tt229', 'link229')" onMouseOut="HideTip('tt229')" class=IParent>mxCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getImage</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getImage" id=link230 onMouseOver="ShowTip(event, 'tt230', 'link230')" onMouseOut="HideTip('tt230')" class=IParent>mxGdCanvas</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.getImage" id=link231 onMouseOver="ShowTip(event, 'tt231', 'link231')" onMouseOut="HideTip('tt231')" class=IParent>mxImageBundle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getImageBundles" id=link232 onMouseOver="ShowTip(event, 'tt232', 'link232')" onMouseOut="HideTip('tt232')" class=ISymbol>getImageBundles</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getImageForStyle" id=link233 onMouseOver="ShowTip(event, 'tt233', 'link233')" onMouseOut="HideTip('tt233')" class=ISymbol>getImageForStyle</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getImageFromBundles" id=link234 onMouseOver="ShowTip(event, 'tt234', 'link234')" onMouseOut="HideTip('tt234')" class=ISymbol>getImageFromBundles</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.getImages" id=link235 onMouseOver="ShowTip(event, 'tt235', 'link235')" onMouseOut="HideTip('tt235')" class=ISymbol>getImages</a>, <span class=IParent>mxImageBundle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getIndex" id=link236 onMouseOver="ShowTip(event, 'tt236', 'link236')" onMouseOut="HideTip('tt236')" class=ISymbol>getIndex</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getInstanceForName" id=link237 onMouseOver="ShowTip(event, 'tt237', 'link237')" onMouseOut="HideTip('tt237')" class=ISymbol>getInstanceForName</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getLabel" id=link238 onMouseOver="ShowTip(event, 'tt238', 'link238')" onMouseOut="HideTip('tt238')" class=ISymbol>getLabel</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getLabelPaintBounds" id=link239 onMouseOver="ShowTip(event, 'tt239', 'link239')" onMouseOut="HideTip('tt239')" class=ISymbol>getLabelPaintBounds</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getLabelSize" id=link240 onMouseOver="ShowTip(event, 'tt240', 'link240')" onMouseOut="HideTip('tt240')" class=ISymbol>getLabelSize</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getModel" id=link241 onMouseOver="ShowTip(event, 'tt241', 'link241')" onMouseOut="HideTip('tt241')" class=ISymbol>getModel</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getName</span><div class=ISubIndex><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getName" id=link242 onMouseOver="ShowTip(event, 'tt242', 'link242')" onMouseOut="HideTip('tt242')" class=IParent>mxCodecRegistry</a><a href="../files/util/mxEventObject-php.html#mxEventObject.getName" id=link243 onMouseOver="ShowTip(event, 'tt243', 'link243')" onMouseOut="HideTip('tt243')" class=IParent>mxEventObject</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getName" id=link244 onMouseOver="ShowTip(event, 'tt244', 'link244')" onMouseOut="HideTip('tt244')" class=IParent>mxObjectCodec</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.getName" id=link245 onMouseOver="ShowTip(event, 'tt245', 'link245')" onMouseOut="HideTip('tt245')" class=IParent>mxStyleRegistry</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getNearestCommonAncestor" id=link246 onMouseOver="ShowTip(event, 'tt246', 'link246')" onMouseOut="HideTip('tt246')" class=ISymbol>getNearestCommonAncestor</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getNextPoint" id=link247 onMouseOver="ShowTip(event, 'tt247', 'link247')" onMouseOut="HideTip('tt247')" class=ISymbol>getNextPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getNumber" id=link248 onMouseOver="ShowTip(event, 'tt248', 'link248')" onMouseOut="HideTip('tt248')" class=ISymbol>getNumber</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.getObject" id=link249 onMouseOver="ShowTip(event, 'tt249', 'link249')" onMouseOut="HideTip('tt249')" class=ISymbol>getObject</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getOrigin" id=link250 onMouseOver="ShowTip(event, 'tt250', 'link250')" onMouseOut="HideTip('tt250')" class=ISymbol>getOrigin</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getPaintBounds" id=link251 onMouseOver="ShowTip(event, 'tt251', 'link251')" onMouseOut="HideTip('tt251')" class=ISymbol>getPaintBounds</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getParent</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getParent" id=link252 onMouseOver="ShowTip(event, 'tt252', 'link252')" onMouseOut="HideTip('tt252')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getParent" id=link253 onMouseOver="ShowTip(event, 'tt253', 'link253')" onMouseOut="HideTip('tt253')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.getParentPath" id=link254 onMouseOver="ShowTip(event, 'tt254', 'link254')" onMouseOut="HideTip('tt254')" class=ISymbol>getParentPath</a>, <span class=IParent>mxCellPath</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getPerimeterBounds</span><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState.getPerimeterBounds" id=link255 onMouseOver="ShowTip(event, 'tt255', 'link255')" onMouseOut="HideTip('tt255')" class=IParent>mxCellState</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterBounds" id=link256 onMouseOver="ShowTip(event, 'tt256', 'link256')" onMouseOut="HideTip('tt256')" class=IParent>mxGraphView</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterFunction" id=link257 onMouseOver="ShowTip(event, 'tt257', 'link257')" onMouseOut="HideTip('tt257')" class=ISymbol>getPerimeterFunction</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterPoint" id=link258 onMouseOver="ShowTip(event, 'tt258', 'link258')" onMouseOut="HideTip('tt258')" class=ISymbol>getPerimeterPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPoint" id=link259 onMouseOver="ShowTip(event, 'tt259', 'link259')" onMouseOut="HideTip('tt259')" class=ISymbol>getPoint</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.getProperties" id=link260 onMouseOver="ShowTip(event, 'tt260', 'link260')" onMouseOut="HideTip('tt260')" class=ISymbol>getProperties</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.getProperty" id=link261 onMouseOver="ShowTip(event, 'tt261', 'link261')" onMouseOut="HideTip('tt261')" class=ISymbol>getProperty</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getRoot" id=link262 onMouseOver="ShowTip(event, 'tt262', 'link262')" onMouseOut="HideTip('tt262')" class=ISymbol>getRoot</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getRotatedPoint" id=link263 onMouseOver="ShowTip(event, 'tt263', 'link263')" onMouseOut="HideTip('tt263')" class=ISymbol>getRotatedPoint</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getRoutingCenterX" id=link264 onMouseOver="ShowTip(event, 'tt264', 'link264')" onMouseOut="HideTip('tt264')" class=ISymbol>getRoutingCenterX</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getRoutingCenterY" id=link265 onMouseOver="ShowTip(event, 'tt265', 'link265')" onMouseOut="HideTip('tt265')" class=ISymbol>getRoutingCenterY</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getScaledLabelBounds" id=link266 onMouseOver="ShowTip(event, 'tt266', 'link266')" onMouseOut="HideTip('tt266')" class=ISymbol>getScaledLabelBounds</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getSizeForString" id=link267 onMouseOver="ShowTip(event, 'tt267', 'link267')" onMouseOut="HideTip('tt267')" class=ISymbol>getSizeForString</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getState" id=link268 onMouseOver="ShowTip(event, 'tt268', 'link268')" onMouseOut="HideTip('tt268')" class=ISymbol>getState</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getStates" id=link269 onMouseOver="ShowTip(event, 'tt269', 'link269')" onMouseOut="HideTip('tt269')" class=ISymbol>getStates</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getStyle</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getStyle" id=link270 onMouseOver="ShowTip(event, 'tt270', 'link270')" onMouseOut="HideTip('tt270')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getStyle" id=link271 onMouseOver="ShowTip(event, 'tt271', 'link271')" onMouseOut="HideTip('tt271')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getStylename" id=link272 onMouseOver="ShowTip(event, 'tt272', 'link272')" onMouseOut="HideTip('tt272')" class=ISymbol>getStylename</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getStylenames" id=link273 onMouseOver="ShowTip(event, 'tt273', 'link273')" onMouseOut="HideTip('tt273')" class=ISymbol>getStylenames</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getStylesheet" id=link274 onMouseOver="ShowTip(event, 'tt274', 'link274')" onMouseOut="HideTip('tt274')" class=ISymbol>getStylesheet</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getTerminal</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getTerminal" id=link275 onMouseOver="ShowTip(event, 'tt275', 'link275')" onMouseOut="HideTip('tt275')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getTerminal" id=link276 onMouseOver="ShowTip(event, 'tt276', 'link276')" onMouseOut="HideTip('tt276')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.getTerminalPoint" id=link277 onMouseOver="ShowTip(event, 'tt277', 'link277')" onMouseOut="HideTip('tt277')" class=ISymbol>getTerminalPoint</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getTerminalPort" id=link278 onMouseOver="ShowTip(event, 'tt278', 'link278')" onMouseOut="HideTip('tt278')" class=ISymbol>getTerminalPort</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getTrueTypeFont</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getTrueTypeFont" id=link279 onMouseOver="ShowTip(event, 'tt279', 'link279')" onMouseOut="HideTip('tt279')" class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getTrueTypeFont" id=link280 onMouseOver="ShowTip(event, 'tt280', 'link280')" onMouseOut="HideTip('tt280')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getTrueTypeFontSize</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getTrueTypeFontSize" id=link281 onMouseOver="ShowTip(event, 'tt281', 'link281')" onMouseOut="HideTip('tt281')" class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getTrueTypeFontSize" id=link282 onMouseOver="ShowTip(event, 'tt282', 'link282')" onMouseOut="HideTip('tt282')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>getValue</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getValue" id=link283 onMouseOver="ShowTip(event, 'tt283', 'link283')" onMouseOut="HideTip('tt283')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getValue" id=link284 onMouseOver="ShowTip(event, 'tt284', 'link284')" onMouseOut="HideTip('tt284')" class=IParent>mxGraphModel</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.getValue" id=link285 onMouseOver="ShowTip(event, 'tt285', 'link285')" onMouseOut="HideTip('tt285')" class=IParent>mxStyleRegistry</a><a href="../files/util/mxUtils-php.html#mxUtils.getValue" id=link286 onMouseOver="ShowTip(event, 'tt286', 'link286')" onMouseOut="HideTip('tt286')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getView" id=link287 onMouseOver="ShowTip(event, 'tt287', 'link287')" onMouseOut="HideTip('tt287')" class=ISymbol>getView</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getVisibleTerminal" id=link288 onMouseOver="ShowTip(event, 'tt288', 'link288')" onMouseOut="HideTip('tt288')" class=ISymbol>getVisibleTerminal</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.graph" id=link289 onMouseOver="ShowTip(event, 'tt289', 'link289')" onMouseOut="HideTip('tt289')" class=ISymbol>graph</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.GRAPH_MODEL_CHANGED" id=link290 onMouseOver="ShowTip(event, 'tt290', 'link290')" onMouseOut="HideTip('tt290')" class=ISymbol>GRAPH_MODEL_CHANGED</a>, <span class=IParent>mxEvent</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.graphBounds" id=link291 onMouseOver="ShowTip(event, 'tt291', 'link291')" onMouseOut="HideTip('tt291')" class=ISymbol>graphBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.graphModelChanged" id=link292 onMouseOver="ShowTip(event, 'tt292', 'link292')" onMouseOut="HideTip('tt292')" class=ISymbol>graphModelChanged</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.gridSize" id=link293 onMouseOver="ShowTip(event, 'tt293', 'link293')" onMouseOut="HideTip('tt293')" class=ISymbol>gridSize</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.grow" id=link294 onMouseOver="ShowTip(event, 'tt294', 'link294')" onMouseOut="HideTip('tt294')" class=ISymbol>grow</a>, <span class=IParent>mxRectangle</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt182"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $geometry</td></tr></table></blockquote>Holds the mxGeometry. </div></div><div class=CToolTip id="tt183"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getAttribute(</td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$defaultValue</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the specified attribute from the user object if it is an XML node.</div></div><div class=CToolTip id="tt184"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getAttributeName(</td><td class=PParameter nowrap>$fieldname</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the attributename for the given fieldname. </div></div><div class=CToolTip id="tt185"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundingBox(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding box of the given cell including all connected edges if includeEdge is true.</div></div><div class=CToolTip id="tt186"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundingBox(</td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding for for an array of cells or null, if no cells are specified.</div></div><div class=CToolTip id="tt187"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getBoundingBox(</td><td class=PParameter nowrap>$rect,</td></tr><tr><td></td><td class=PParameter nowrap>$rotation</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding box for the rotated rectangle.</div></div><div class=CToolTip id="tt188"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBounds(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding for for an array of cells or null, if no cells are specified.</div></div><div class=CToolTip id="tt189"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getBoundsForCells(</td><td class=PParameter nowrap>$cells,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounds for the given cells.</div></div><div class=CToolTip id="tt190"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellBounds(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$includeEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$includeDescendants</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false,</td></tr><tr><td></td><td class=PParameter nowrap>$boundingBox</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounds of the given cell including all connected edges if includeEdge is true.</div></div><div class=CToolTip id="tt191"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellGeometry(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxGeometry for the given mxCell.</div></div><div class=CToolTip id="tt192"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCells()</td></tr></table></blockquote>Returns the internal lookup table that is used to map from Ids to cells.</div></div><div class=CToolTip id="tt193"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellStyle(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt194"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getCellStyle(</td><td class=PParameter nowrap>$name,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$defaultStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell style for the specified cell or the given defaultStyle if no style can be found for the given stylename.</div></div><div class=CToolTip id="tt195"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCenterX()</td></tr></table></blockquote>Returns the x-coordinate of the center point.</div></div><div class=CToolTip id="tt196"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getCenterY()</td></tr></table></blockquote>Returns the y-coordinate of the center point.</div></div><div class=CToolTip id="tt197"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildAt(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the child at the specified index.</div></div><div class=CToolTip id="tt198"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildAt(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the child of the given mxCell at the given index.</div></div><div class=CToolTip id="tt199"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getChildCount()</td></tr></table></blockquote>Returns the number of child cells.</div></div><div class=CToolTip id="tt200"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildCount(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of children in the given cell.</div></div><div class=CToolTip id="tt201"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getChildOffsetForCell(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the offset to be used for the cells inside the given cell. </div></div><div class=CToolTip id="tt202"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getCodec(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a codec that handles objects that are constructed using the given ctor.</div></div><div class=CToolTip id="tt203"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getColor(</td><td class=PParameter nowrap>$hex,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Allocates the given color and returns a reference to it. </div></div><div class=CToolTip id="tt204"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getConnectionConstraint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxConnectionConstraint that describes the given connection point. </div></div><div class=CToolTip id="tt205"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getConnectionPoint(</td><td class=PParameter nowrap>$vertex,</td></tr><tr><td></td><td class=PParameter nowrap>$constraint</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</div></div><div class=CToolTip id="tt206"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultEdgeStyle()</td></tr></table></blockquote>Sets the default style for edges.</div></div><div class=CToolTip id="tt207"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultParent()</td></tr></table></blockquote>Returns the first child child of mxGraphModel.root. </div></div><div class=CToolTip id="tt208"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getDefaultVertexStyle()</td></tr></table></blockquote>Returns the default style for vertices.</div></div><div class=CToolTip id="tt209"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getDirectedEdgeCount(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$outgoing,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$ignoredEdge</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of incoming or outgoing edges, ignoring the given edge.</div></div><div class=CToolTip id="tt210"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeAt(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edge at the specified index in edges.</div></div><div class=CToolTip id="tt211"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeAt(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edge of cell at the given index.</div></div><div class=CToolTip id="tt212"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getEdgeCount()</td></tr></table></blockquote>Returns the number of edges in the edge array.</div></div><div class=CToolTip id="tt213"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeCount(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of distinct edges connected to the given cell.</div></div><div class=CToolTip id="tt214"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeIndex(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of the specified edge in edges.</div></div><div class=CToolTip id="tt215"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdges(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns all distinct edges connected to this cell as an array of mxCells. </div></div><div class=CToolTip id="tt216"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getEdgeStyle(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$points,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edge style function to be used to render the given edge state.</div></div><div class=CToolTip id="tt217"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getElementById(</td><td class=PParameter nowrap>$id,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$attr</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;id&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the element with the given ID from document. </div></div><div class=CToolTip id="tt218"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFieldName(</td><td class=PParameter nowrap>$attributename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the fieldname for the given attributename. </div></div><div class=CToolTip id="tt219"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFieldTemplate(</td><td class=PParameterPrefix nowrap>&amp;</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$fieldname,</td></tr><tr><td></td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the template instance for the given field. </div></div><div class=CToolTip id="tt220"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getFixedFontSize(</td><td class=PParameter nowrap>$fontSize,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the fixed font size for GD (1 t0 5) for the given font properties</div></div><div class=CToolTip id="tt221"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getFixedFontSize(</td><td class=PParameter nowrap>$fontSize,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontStyle</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the fixed font size for GD (1 t0 5) for the given font properties</div></div><div class=CToolTip id="tt222"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGeometry()</td></tr></table></blockquote>Returns the mxGeometry that describes the geometry.</div></div><div class=CToolTip id="tt223"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getGeometry(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxGeometry of the given mxCell.</div></div><div class=CToolTip id="tt224"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGraphBounds()</td></tr></table></blockquote>Returns the bounds of the visible graph. </div></div><div class=CToolTip id="tt225"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getGraphBounds()</td></tr></table></blockquote>Returns graphBounds.</div></div><div class=CToolTip id="tt226"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getHashCode(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a unique string that represents the given instance.</div></div><div class=CToolTip id="tt227"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getHtml()</td></tr></table></blockquote>Gets the HTML that represents the canvas.</div></div><div class=CToolTip id="tt228"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getId()</td></tr></table></blockquote>Returns the Id of the cell as a string.</div></div><div class=CToolTip id="tt229"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getId(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the ID of the specified object. </div></div><div class=CToolTip id="tt230"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImage()</td></tr></table></blockquote>Returns an image that represents this canvas.</div></div><div class=CToolTip id="tt231"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImage(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for the given key.</div></div><div class=CToolTip id="tt232"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImageBundles()</td></tr></table></blockquote>Returns the imageBundles.</div></div><div class=CToolTip id="tt233"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImageForStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an image that represents this canvas.</div></div><div class=CToolTip id="tt234"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getImageFromBundles(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Searches all imageBundles for the specified key and returns the value for the first match or null if the key is not found.</div></div><div class=CToolTip id="tt235"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getImages()</td></tr></table></blockquote>Returns the images.</div></div><div class=CToolTip id="tt236"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getIndex(</td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of the specified child in the child array.</div></div><div class=CToolTip id="tt237"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getInstanceForName(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates and returns a new instance for the given class name.</div></div><div class=CToolTip id="tt238"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getLabel(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a string or DOM node that represents the label for the given cell. </div></div><div class=CToolTip id="tt239"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getLabelPaintBounds(</td><td class=PParameter nowrap>$label,</td></tr><tr><td></td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$isHtml,</td></tr><tr><td></td><td class=PParameter nowrap>$offset,</td></tr><tr><td></td><td class=PParameter nowrap>$vertexBounds,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the paint bounds for the given label.</div></div><div class=CToolTip id="tt240"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getLabelSize(</td><td class=PParameter nowrap>$label,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the size of the given label.</div></div><div class=CToolTip id="tt241"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getModel()</td></tr></table></blockquote>Returns the mxGraphModel that contains the cells.</div></div><div class=CToolTip id="tt242"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getName(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the codec name for the given object instance.</div></div><div class=CToolTip id="tt243"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getName()</td></tr></table></blockquote>Returns name.</div></div><div class=CToolTip id="tt244"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getName()</td></tr></table></blockquote>Creates a new instance of the template for this codec.</div></div><div class=CToolTip id="tt245"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getName(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the name for the given value.</div></div><div class=CToolTip id="tt246"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getNearestCommonAncestor(</td><td class=PParameter nowrap>$cell1,</td></tr><tr><td></td><td class=PParameter nowrap>$cell2</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest common ancestor for the specified cells.</div></div><div class=CToolTip id="tt247"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getNextPoint(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$opposite,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest point in the list of absolute points or the center of the opposite terminal.</div></div><div class=CToolTip id="tt248"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getNumber(</td><td class=PParameter nowrap>$dict,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for key in dictionary or 0 if no value is defined for the key.</div></div><div class=CToolTip id="tt249"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getObject(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the decoded object for the element with the specified ID in document. </div></div><div class=CToolTip id="tt250"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getOrigin(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the absolute, cummulated origin for the children inside the given parent as an mxPoint.</div></div><div class=CToolTip id="tt251"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPaintBounds(</td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounding box of the given cells and their descendants.</div></div><div class=CToolTip id="tt252"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getParent()</td></tr></table></blockquote>Returns the cell&rsquo;s parent.</div></div><div class=CToolTip id="tt253"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getParent(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the parent of the given cell.</div></div><div class=CToolTip id="tt254"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getParentPath(</td><td class=PParameter nowrap>$path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell for the specified cell path using the given root as the root of the path.</div></div><div class=CToolTip id="tt255"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterBounds(</td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxRectangle that should be used as the perimeter of the cell.</div></div><div class=CToolTip id="tt256"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterBounds(</td><td class=PParameter nowrap>$terminal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the perimeter bounds for the given terminal, edge pair as an mxRectangle.</div></div><div class=CToolTip id="tt257"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterFunction(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the perimeter function for the given state.</div></div><div class=CToolTip id="tt258"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPerimeterPoint(</td><td class=PParameter nowrap>$terminal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$next,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$orthogonal,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxPoint that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.</div></div><div class=CToolTip id="tt259"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getPoint(</td><td class=PParameter nowrap>$state,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the absolute point on the edge for the given relative mxGeometry as an mxPoint. </div></div><div class=CToolTip id="tt260"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getProperties()</td></tr></table></blockquote>Returns properties.</div></div><div class=CToolTip id="tt261"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getProperty(</td><td class=PParameter nowrap>$key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the property value for the given key.</div></div><div class=CToolTip id="tt262"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getRoot()</td></tr></table></blockquote>Returns the root of the model.</div></div><div class=CToolTip id="tt263"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getRotatedPoint(</td><td class=PParameter nowrap>$pt,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cos,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$sin,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cx</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Rotates the given point by the given cos and sin.</div></div><div class=CToolTip id="tt264"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getRoutingCenterX(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the x-coordinate of the center point for automatic routing.</div></div><div class=CToolTip id="tt265"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getRoutingCenterY(</td><td class=PParameter nowrap>$state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the y-coordinate of the center point for automatic routing.</div></div><div class=CToolTip id="tt266"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getScaledLabelBounds(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$size,</td></tr><tr><td></td><td class=PParameter nowrap>$outerWidth,</td></tr><tr><td></td><td class=PParameter nowrap>$outerHeight,</td></tr><tr><td></td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the bounds for a label for the given location and size, taking into account the alignment and spacing in the specified style, as well as the width and height of the rectangle that contains the label. </div></div><div class=CToolTip id="tt267"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getSizeForString(</td><td class=PParameter nowrap>$text,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$fontSize</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$fontFamily</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxRectangle with the size (width and height in pixels) of the given string. </div></div><div class=CToolTip id="tt268"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getState(</td><td class=PParameter nowrap>$cell,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$create</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell state for the specified cell. </div></div><div class=CToolTip id="tt269"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStates()</td></tr></table></blockquote>Returns the mxCellStates for the given array of mxCells. </div></div><div class=CToolTip id="tt270"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStyle()</td></tr></table></blockquote>Returns a string that describes the style.</div></div><div class=CToolTip id="tt271"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getStyle(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the style of the given mxCell.</div></div><div class=CToolTip id="tt272"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getStylename(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the stylename in a style of the form [stylename;|key=value;] or an empty string if the given style does not contain a stylename.</div></div><div class=CToolTip id="tt273"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getStylenames(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the stylenames in a style of the form [stylename;|key=value;] or an empty array if the given style does not contain any stylenames.</div></div><div class=CToolTip id="tt274"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getStylesheet()</td></tr></table></blockquote>Returns the mxStylesheet that defines the style.</div></div><div class=CToolTip id="tt275"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminal(</td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the source or target terminal.</div></div><div class=CToolTip id="tt276"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$cource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the source or target mxCell of the given edge depending on the value of the boolean parameter.</div></div><div class=CToolTip id="tt277"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminalPoint(</td><td class=PParameter nowrap>$isSource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the mxPoint representing the source or target point of this edge. </div></div><div class=CToolTip id="tt278"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTerminalPort(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an mxCellState that represents the source or target terminal or port for the given edge.</div></div><div class=CToolTip id="tt279"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTrueTypeFont(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font to be used to draw the text with the given style.</div></div><div class=CToolTip id="tt280"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getTrueTypeFont(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font to be used to draw the text with the given style.</div></div><div class=CToolTip id="tt281"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getTrueTypeFontSize(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font size to be used to draw the text with the given style. </div></div><div class=CToolTip id="tt282"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getTrueTypeFontSize(</td><td class=PParameter nowrap>$size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the truetype font size to be used to draw the text with the given style. </div></div><div class=CToolTip id="tt283"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getValue()</td></tr></table></blockquote>Returns the user object of the cell. </div></div><div class=CToolTip id="tt284"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getValue(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the user object of the given mxCell using mxCell.getValue.</div></div><div class=CToolTip id="tt285"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getValue(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value associated with the given name.</div></div><div class=CToolTip id="tt286"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function getValue(</td><td class=PParameter nowrap>$dict,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$key,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$default</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for key in dictionary or the given default value if no value is defined for the key.</div></div><div class=CToolTip id="tt287"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function getView()</td></tr></table></blockquote>Returns the mxGraphView that contains the mxCellStates.</div></div><div class=CToolTip id="tt288"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function getVisibleTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the nearest ancestor terminal that is visible. </div></div><div class=CToolTip id="tt289"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $graph</td></tr></table></blockquote>Holds the mxGraph.</div></div><div class=CToolTip id="tt290"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $GRAPH_MODEL_CHANGED</td></tr></table></blockquote>Defines the name of the graphModelChanged event.</div></div><div class=CToolTip id="tt291"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $graphBounds</td></tr></table></blockquote>Holds the bounds of the current view.</div></div><div class=CToolTip id="tt292"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function graphModelChanged(</td><td class=PParameter nowrap>$event</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called when the graph model has changed.</div></div><div class=CToolTip id="tt293"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $gridSize</td></tr></table></blockquote>Specifies the grid size. </div></div><div class=CToolTip id="tt294"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function grow(</td><td class=PParameter nowrap>$amount</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General6.html b/docs/php-api/index/General6.html
    new file mode 100644
    index 000000000..bbb9d3635
    --- /dev/null
    +++ b/docs/php-api/index/General6.html
    @@ -0,0 +1,42 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General2.html#C">C</a> &middot; <a href="General3.html#D">D</a> &middot; <a href="General4.html#E">E</a> &middot; <a href="General4.html#F">F</a> &middot; <a href="General5.html#G">G</a> &middot; <a href="#H">H</a> &middot; <a href="#I">I</a> &middot; J &middot; K &middot; <a href="#L">L</a> &middot; <a href="General7.html#M">M</a> &middot; <a href="General7.html#N">N</a> &middot; <a href="General7.html#O">O</a> &middot; <a href="General8.html#P">P</a> &middot; Q &middot; <a href="General8.html#R">R</a> &middot; <a href="General9.html#S">S</a> &middot; <a href="General10.html#T">T</a> &middot; <a href="General10.html#U">U</a> &middot; <a href="General10.html#V">V</a> &middot; <a href="General10.html#W">W</a> &middot; <a href="General10.html#X">X</a> &middot; <a href="General10.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="H"></a>H</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>height</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.height" id=link295 onMouseOver="ShowTip(event, 'tt295', 'link295')" onMouseOut="HideTip('tt295')" class=IParent>mxGdCanvas</a><a href="../files/util/mxRectangle-php.html#mxRectangle.height" id=link296 onMouseOver="ShowTip(event, 'tt296', 'link296')" onMouseOut="HideTip('tt296')" class=IParent>mxRectangle</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.html" id=link297 onMouseOver="ShowTip(event, 'tt297', 'link297')" onMouseOut="HideTip('tt297')" class=ISymbol>html</a>, <span class=IParent>mxHtmlCanvas</span></td></tr><tr><td class=IHeading><a name="I"></a>I</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.id" id=link298 onMouseOver="ShowTip(event, 'tt298', 'link298')" onMouseOut="HideTip('tt298')" class=ISymbol>id</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.idrefs" id=link299 onMouseOver="ShowTip(event, 'tt299', 'link299')" onMouseOut="HideTip('tt299')" class=ISymbol>idrefs</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.image" id=link300 onMouseOver="ShowTip(event, 'tt300', 'link300')" onMouseOut="HideTip('tt300')" class=ISymbol>image</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.imageBundles" id=link301 onMouseOver="ShowTip(event, 'tt301', 'link301')" onMouseOut="HideTip('tt301')" class=ISymbol>imageBundles</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.imageCache" id=link302 onMouseOver="ShowTip(event, 'tt302', 'link302')" onMouseOut="HideTip('tt302')" class=ISymbol>imageCache</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.images" id=link303 onMouseOver="ShowTip(event, 'tt303', 'link303')" onMouseOut="HideTip('tt303')" class=ISymbol>images</a>, <span class=IParent>mxImageBundle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.indexOf" id=link304 onMouseOver="ShowTip(event, 'tt304', 'link304')" onMouseOut="HideTip('tt304')" class=ISymbol>indexOf</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.indexOfStylename" id=link305 onMouseOver="ShowTip(event, 'tt305', 'link305')" onMouseOut="HideTip('tt305')" class=ISymbol>indexOfStylename</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.info" id=link306 onMouseOver="ShowTip(event, 'tt306', 'link306')" onMouseOut="HideTip('tt306')" class=ISymbol>info</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.insert" id=link307 onMouseOver="ShowTip(event, 'tt307', 'link307')" onMouseOut="HideTip('tt307')" class=ISymbol>insert</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>insertEdge</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.insertEdge" id=link308 onMouseOver="ShowTip(event, 'tt308', 'link308')" onMouseOut="HideTip('tt308')" class=IParent>mxCell</a><a href="../files/view/mxGraph-php.html#mxGraph.insertEdge" id=link309 onMouseOver="ShowTip(event, 'tt309', 'link309')" onMouseOut="HideTip('tt309')" class=IParent>mxGraph</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.insertIntoGraph" id=link310 onMouseOver="ShowTip(event, 'tt310', 'link310')" onMouseOut="HideTip('tt310')" class=ISymbol>insertIntoGraph</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.insertVertex" id=link311 onMouseOver="ShowTip(event, 'tt311', 'link311')" onMouseOut="HideTip('tt311')" class=ISymbol>insertVertex</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.intersection" id=link312 onMouseOver="ShowTip(event, 'tt312', 'link312')" onMouseOut="HideTip('tt312')" class=ISymbol>intersection</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.invalid" id=link313 onMouseOver="ShowTip(event, 'tt313', 'link313')" onMouseOut="HideTip('tt313')" class=ISymbol>invalid</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.invalidate"  class=ISymbol>invalidate</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isAncestor" id=link314 onMouseOver="ShowTip(event, 'tt314', 'link314')" onMouseOut="HideTip('tt314')" class=ISymbol>isAncestor</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isCellCollapsed" id=link315 onMouseOver="ShowTip(event, 'tt315', 'link315')" onMouseOut="HideTip('tt315')" class=ISymbol>isCellCollapsed</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isCellVisible" id=link316 onMouseOver="ShowTip(event, 'tt316', 'link316')" onMouseOut="HideTip('tt316')" class=ISymbol>isCellVisible</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isCollapsed</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isCollapsed" id=link317 onMouseOver="ShowTip(event, 'tt317', 'link317')" onMouseOut="HideTip('tt317')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isCollapsed" id=link318 onMouseOver="ShowTip(event, 'tt318', 'link318')" onMouseOut="HideTip('tt318')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isConnectable</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isConnectable" id=link319 onMouseOver="ShowTip(event, 'tt319', 'link319')" onMouseOut="HideTip('tt319')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isConnectable" id=link320 onMouseOver="ShowTip(event, 'tt320', 'link320')" onMouseOut="HideTip('tt320')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.isConsumed" id=link321 onMouseOver="ShowTip(event, 'tt321', 'link321')" onMouseOut="HideTip('tt321')" class=ISymbol>isConsumed</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isEdge</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isEdge" id=link322 onMouseOver="ShowTip(event, 'tt322', 'link322')" onMouseOut="HideTip('tt322')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isEdge" id=link323 onMouseOver="ShowTip(event, 'tt323', 'link323')" onMouseOut="HideTip('tt323')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.isExcluded" id=link324 onMouseOver="ShowTip(event, 'tt324', 'link324')" onMouseOut="HideTip('tt324')" class=ISymbol>isExcluded</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.isNode" id=link325 onMouseOver="ShowTip(event, 'tt325', 'link325')" onMouseOut="HideTip('tt325')" class=ISymbol>isNode</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isOrthogonal" id=link326 onMouseOver="ShowTip(event, 'tt326', 'link326')" onMouseOut="HideTip('tt326')" class=ISymbol>isOrthogonal</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.isReference" id=link327 onMouseOver="ShowTip(event, 'tt327', 'link327')" onMouseOut="HideTip('tt327')" class=ISymbol>isReference</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isVertex</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isVertex" id=link328 onMouseOver="ShowTip(event, 'tt328', 'link328')" onMouseOut="HideTip('tt328')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isVertex" id=link329 onMouseOver="ShowTip(event, 'tt329', 'link329')" onMouseOut="HideTip('tt329')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>isVisible</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isVisible" id=link330 onMouseOver="ShowTip(event, 'tt330', 'link330')" onMouseOut="HideTip('tt330')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isVisible" id=link331 onMouseOver="ShowTip(event, 'tt331', 'link331')" onMouseOut="HideTip('tt331')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=IHeading><a name="L"></a>L</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.LABEL_INSET" id=link332 onMouseOver="ShowTip(event, 'tt332', 'link332')" onMouseOut="HideTip('tt332')" class=ISymbol>LABEL_INSET</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.labelBounds" id=link333 onMouseOver="ShowTip(event, 'tt333', 'link333')" onMouseOut="HideTip('tt333')" class=ISymbol>labelBounds</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.labelsVisible" id=link334 onMouseOver="ShowTip(event, 'tt334', 'link334')" onMouseOut="HideTip('tt334')" class=ISymbol>labelsVisible</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.leave" id=link335 onMouseOver="ShowTip(event, 'tt335', 'link335')" onMouseOut="HideTip('tt335')" class=ISymbol>leave</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.length" id=link336 onMouseOver="ShowTip(event, 'tt336', 'link336')" onMouseOut="HideTip('tt336')" class=ISymbol>length</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_debug" id=link337 onMouseOver="ShowTip(event, 'tt337', 'link337')" onMouseOut="HideTip('tt337')" class=ISymbol>level_debug</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_error" id=link338 onMouseOver="ShowTip(event, 'tt338', 'link338')" onMouseOut="HideTip('tt338')" class=ISymbol>level_error</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_fine" id=link339 onMouseOver="ShowTip(event, 'tt339', 'link339')" onMouseOut="HideTip('tt339')" class=ISymbol>level_fine</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_info" id=link340 onMouseOver="ShowTip(event, 'tt340', 'link340')" onMouseOut="HideTip('tt340')" class=ISymbol>level_info</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_warn" id=link341 onMouseOver="ShowTip(event, 'tt341', 'link341')" onMouseOut="HideTip('tt341')" class=ISymbol>level_warn</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>loadImage</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.loadImage" id=link342 onMouseOver="ShowTip(event, 'tt342', 'link342')" onMouseOut="HideTip('tt342')" class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.loadImage" id=link343 onMouseOver="ShowTip(event, 'tt343', 'link343')" onMouseOut="HideTip('tt343')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.loadXmlDocument" id=link344 onMouseOver="ShowTip(event, 'tt344', 'link344')" onMouseOut="HideTip('tt344')" class=ISymbol>loadXmlDocument</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.logfiles" id=link345 onMouseOver="ShowTip(event, 'tt345', 'link345')" onMouseOut="HideTip('tt345')" class=ISymbol>logfiles</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.lookup" id=link346 onMouseOver="ShowTip(event, 'tt346', 'link346')" onMouseOut="HideTip('tt346')" class=ISymbol>lookup</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.Loop" id=link347 onMouseOver="ShowTip(event, 'tt347', 'link347')" onMouseOut="HideTip('tt347')" class=ISymbol>Loop</a>, <span class=IParent>mxEdgeStyle</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt295"><div class=CVariable>Holds the height.</div></div><div class=CToolTip id="tt296"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $height</td></tr></table></blockquote>Holds the height of the rectangle. </div></div><div class=CToolTip id="tt297"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $html</td></tr></table></blockquote>Holds the html markup.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt298"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $id</td></tr></table></blockquote>Holds the Id. </div></div><div class=CToolTip id="tt299"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $idrefs</td></tr></table></blockquote>Array containing the variable names that should be turned into or converted from references. </div></div><div class=CToolTip id="tt300"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $image</td></tr></table></blockquote>Holds the image.</div></div><div class=CToolTip id="tt301"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>protected $imageBundles</td></tr></table></blockquote>Holds the list of image bundles.</div></div><div class=CToolTip id="tt302"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $imageCache</td></tr></table></blockquote>Holds the image cache.</div></div><div class=CToolTip id="tt303"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $images</td></tr></table></blockquote>Maps from keys to images.</div></div><div class=CToolTip id="tt304"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function indexOf(</td><td class=PParameter nowrap>$array,</td></tr><tr><td></td><td class=PParameter nowrap>$object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of obj in array or -1 if the array does not contains the given object.</div></div><div class=CToolTip id="tt305"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function indexOfStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the index of the given stylename in the given style. </div></div><div class=CToolTip id="tt306"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function info(</td><td class=PParameter nowrap>$text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs an info trace.</div></div><div class=CToolTip id="tt307"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insert(</td><td class=PParameter nowrap>$child,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$index</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inserts the specified child into the child array at the specified index and updates the parent reference of the child. </div></div><div class=CToolTip id="tt308"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertEdge(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$outgoing</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inserts the specified edge into the edge array and returns the edge. </div></div><div class=CToolTip id="tt309"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertEdge(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a new edge into the given parent mxCell using value as the user object and the given source and target as the terminals of the new edge. </div></div><div class=CToolTip id="tt310"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertIntoGraph(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inserts the given cell into its parent and terminal cells.</div></div><div class=CToolTip id="tt311"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function insertVertex(</td><td class=PParameter nowrap>$parent,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$id</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$relative</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> false</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a new vertex into the given parent mxCell using value as the user object and the given coordinates as the mxGeometry of the new vertex. </div></div><div class=CToolTip id="tt312"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function intersection(</td><td class=PParameter nowrap>$x0,</td></tr><tr><td></td><td class=PParameter nowrap>$y0,</td></tr><tr><td></td><td class=PParameter nowrap>$x1,</td></tr><tr><td></td><td class=PParameter nowrap>$y1,</td></tr><tr><td></td><td class=PParameter nowrap>$x2,</td></tr><tr><td></td><td class=PParameter nowrap>$y2,</td></tr><tr><td></td><td class=PParameter nowrap>$x3,</td></tr><tr><td></td><td class=PParameter nowrap>$y3</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the intersection of two lines as an mxPoint.</div></div><div class=CToolTip id="tt313"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $invalid</td></tr></table></blockquote>Specifies if the state is invalid. </div></div><div class=CToolTip id="tt314"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isAncestor(</td><td class=PParameter nowrap>$parent,</td></tr><tr><td></td><td class=PParameter nowrap>$child</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given parent is an ancestor of the given child.</div></div><div class=CToolTip id="tt315"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCellCollapsed(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is collapsed.</div></div><div class=CToolTip id="tt316"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCellVisible(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is visible.</div></div><div class=CToolTip id="tt317"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isCollapsed()</td></tr></table></blockquote>Returns true if the cell is collapsed.</div></div><div class=CToolTip id="tt318"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isCollapsed(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given mxCell is collapsed.</div></div><div class=CToolTip id="tt319"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isConnectable()</td></tr></table></blockquote>Returns true if the cell is connectable.</div></div><div class=CToolTip id="tt320"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isConnectable(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given mxCell is connectable. </div></div><div class=CToolTip id="tt321"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isConsumed()</td></tr></table></blockquote>Returns true if the event has been consumed.</div></div><div class=CToolTip id="tt322"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isEdge()</td></tr></table></blockquote>Returns true if the cell is an edge.</div></div><div class=CToolTip id="tt323"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isEdge(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is an edge.</div></div><div class=CToolTip id="tt324"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isExcluded(</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$write</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given attribute is to be ignored by the codec. </div></div><div class=CToolTip id="tt325"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function isNode(</td><td class=PParameter nowrap>$value,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$nodeName</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$attributeName</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$attributeValue</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given value is an XML node with the node name and if the optional attribute has the specified value.</div></div><div class=CToolTip id="tt326"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isOrthogonal(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.</div></div><div class=CToolTip id="tt327"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isReference(</td><td class=PParameter nowrap>$obj,</td></tr><tr><td></td><td class=PParameter nowrap>$attr,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$write</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given fieldname is to be treated as a textual reference (ID). </div></div><div class=CToolTip id="tt328"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isVertex()</td></tr></table></blockquote>Returns true if the cell is a vertex.</div></div><div class=CToolTip id="tt329"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isVertex(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is a vertex.</div></div><div class=CToolTip id="tt330"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function isVisible()</td></tr></table></blockquote>Returns true if the cell is visibile.</div></div><div class=CToolTip id="tt331"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function isVisible(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given mxCell is visible.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt332"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $LABEL_INSET</td></tr></table></blockquote>Defines the inset in absolute pixels between the label bounding box and the label text. </div></div><div class=CToolTip id="tt333"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $labelBounds</td></tr></table></blockquote>Holds the rectangle which contains the label.</div></div><div class=CToolTip id="tt334"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $labelsVisible</td></tr></table></blockquote>Specifies if labels should be visible. </div></div><div class=CToolTip id="tt335"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function leave(</td><td class=PParameter nowrap>$text</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Logs a method exit.</div></div><div class=CToolTip id="tt336"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $length</td></tr></table></blockquote>Caches the length of an edge.</div></div><div class=CToolTip id="tt337"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_debug</td></tr></table></blockquote>Specifies the debug logging level.</div></div><div class=CToolTip id="tt338"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_error</td></tr></table></blockquote>Specifies the error logging level.</div></div><div class=CToolTip id="tt339"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_fine</td></tr></table></blockquote>Specifies the fine logging level.</div></div><div class=CToolTip id="tt340"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_info</td></tr></table></blockquote>Specifies the info logging level.</div></div><div class=CToolTip id="tt341"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_warn</td></tr></table></blockquote>Specifies the warn logging level.</div></div><div class=CToolTip id="tt342"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function loadImage(</td><td class=PParameter nowrap>$image</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns an image instance for the given URL. </div></div><div class=CToolTip id="tt343"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadImage(</td><td class=PParameter nowrap>$url</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Loads an image from the local filesystem, a data URI or any other URL.</div></div><div class=CToolTip id="tt344"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function loadXmlDocument(</td><td class=PParameter nowrap>$uri</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a new DOM document for the given URI.</div></div><div class=CToolTip id="tt345"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $logfiles</td></tr></table></blockquote>Holds the array of logfiles.</div></div><div class=CToolTip id="tt346"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function lookup(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to implement a custom lookup mechanism for cell IDs. </div></div><div class=CToolTip id="tt347"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $Loop</td></tr></table></blockquote>Provides a self-reference, aka. </div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General7.html b/docs/php-api/index/General7.html
    new file mode 100644
    index 000000000..2409a2e11
    --- /dev/null
    +++ b/docs/php-api/index/General7.html
    @@ -0,0 +1,42 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General2.html#C">C</a> &middot; <a href="General3.html#D">D</a> &middot; <a href="General4.html#E">E</a> &middot; <a href="General4.html#F">F</a> &middot; <a href="General5.html#G">G</a> &middot; <a href="General6.html#H">H</a> &middot; <a href="General6.html#I">I</a> &middot; J &middot; K &middot; <a href="General6.html#L">L</a> &middot; <a href="#M">M</a> &middot; <a href="#N">N</a> &middot; <a href="#O">O</a> &middot; <a href="General8.html#P">P</a> &middot; Q &middot; <a href="General8.html#R">R</a> &middot; <a href="General9.html#S">S</a> &middot; <a href="General10.html#T">T</a> &middot; <a href="General10.html#U">U</a> &middot; <a href="General10.html#V">V</a> &middot; <a href="General10.html#W">W</a> &middot; <a href="General10.html#X">X</a> &middot; <a href="General10.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.maintainEdgeParent" id=link348 onMouseOver="ShowTip(event, 'tt348', 'link348')" onMouseOut="HideTip('tt348')" class=ISymbol>maintainEdgeParent</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.mapping" id=link349 onMouseOver="ShowTip(event, 'tt349', 'link349')" onMouseOut="HideTip('tt349')" class=ISymbol>mapping</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mergeChildren" id=link350 onMouseOver="ShowTip(event, 'tt350', 'link350')" onMouseOut="HideTip('tt350')" class=ISymbol>mergeChildren</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mergeChildrenImpl" id=link351 onMouseOver="ShowTip(event, 'tt351', 'link351')" onMouseOut="HideTip('tt351')" class=ISymbol>mergeChildrenImpl</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.MIN_ACTIVE_REGION" id=link352 onMouseOver="ShowTip(event, 'tt352', 'link352')" onMouseOut="HideTip('tt352')" class=ISymbol>MIN_ACTIVE_REGION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.model" id=link353 onMouseOver="ShowTip(event, 'tt353', 'link353')" onMouseOut="HideTip('tt353')" class=ISymbol>model</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxCell</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell" id=link354 onMouseOver="ShowTip(event, 'tt354', 'link354')" onMouseOut="HideTip('tt354')" class=IParent>Global</a><a href="../files/model/mxCell-php.html#mxCell.mxCell" id=link355 onMouseOver="ShowTip(event, 'tt355', 'link355')" onMouseOut="HideTip('tt355')" class=IParent>mxCell</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCellCodec-php.html#mxCellCodec" id=link356 onMouseOver="ShowTip(event, 'tt356', 'link356')" onMouseOut="HideTip('tt356')" class=ISymbol>mxCellCodec</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath" id=link357 onMouseOver="ShowTip(event, 'tt357', 'link357')" onMouseOut="HideTip('tt357')" class=ISymbol>mxCellPath</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxCellState</span><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState" id=link358 onMouseOver="ShowTip(event, 'tt358', 'link358')" onMouseOut="HideTip('tt358')" class=IParent>Global</a><a href="../files/view/mxCellState-php.html#mxCellState.mxCellState" id=link359 onMouseOver="ShowTip(event, 'tt359', 'link359')" onMouseOut="HideTip('tt359')" class=IParent>mxCellState</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec" id=link360 onMouseOver="ShowTip(event, 'tt360', 'link360')" onMouseOut="HideTip('tt360')" class=ISymbol>mxCodec</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry" id=link361 onMouseOver="ShowTip(event, 'tt361', 'link361')" onMouseOut="HideTip('tt361')" class=ISymbol>mxCodecRegistry</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxConnectionConstraint</span><div class=ISubIndex><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint" id=link362 onMouseOver="ShowTip(event, 'tt362', 'link362')" onMouseOut="HideTip('tt362')" class=IParent>Global</a><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.mxConnectionConstraint" id=link363 onMouseOver="ShowTip(event, 'tt363', 'link363')" onMouseOut="HideTip('tt363')" class=IParent>mxConnectionConstraint</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants" id=link364 onMouseOver="ShowTip(event, 'tt364', 'link364')" onMouseOut="HideTip('tt364')" class=ISymbol>mxConstants</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle" id=link365 onMouseOver="ShowTip(event, 'tt365', 'link365')" onMouseOut="HideTip('tt365')" class=ISymbol>mxEdgeStyle</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction" id=link366 onMouseOver="ShowTip(event, 'tt366', 'link366')" onMouseOut="HideTip('tt366')" class=ISymbol>mxEdgeStyleFunction</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxElbowConnector" id=link367 onMouseOver="ShowTip(event, 'tt367', 'link367')" onMouseOut="HideTip('tt367')" class=ISymbol>mxElbowConnector</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxEllipsePerimeter" id=link368 onMouseOver="ShowTip(event, 'tt368', 'link368')" onMouseOut="HideTip('tt368')" class=ISymbol>mxEllipsePerimeter</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEntityRelation" id=link369 onMouseOver="ShowTip(event, 'tt369', 'link369')" onMouseOut="HideTip('tt369')" class=ISymbol>mxEntityRelation</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent" id=link370 onMouseOver="ShowTip(event, 'tt370', 'link370')" onMouseOut="HideTip('tt370')" class=ISymbol>mxEvent</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxEventObject</span><div class=ISubIndex><a href="../files/util/mxEventObject-php.html#mxEventObject" id=link371 onMouseOver="ShowTip(event, 'tt371', 'link371')" onMouseOut="HideTip('tt371')" class=IParent>Global</a><a href="../files/util/mxEventObject-php.html#mxEventObject.mxEventObject" id=link372 onMouseOver="ShowTip(event, 'tt372', 'link372')" onMouseOut="HideTip('tt372')" class=IParent>mxEventObject</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource" id=link373 onMouseOver="ShowTip(event, 'tt373', 'link373')" onMouseOut="HideTip('tt373')" class=ISymbol>mxEventSource</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxGdCanvas</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas" id=link374 onMouseOver="ShowTip(event, 'tt374', 'link374')" onMouseOut="HideTip('tt374')" class=IParent>Global</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.mxGdCanvas" id=link375 onMouseOver="ShowTip(event, 'tt375', 'link375')" onMouseOut="HideTip('tt375')" class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.mxGdCanvas" id=link376 onMouseOver="ShowTip(event, 'tt376', 'link376')" onMouseOut="HideTip('tt376')" class=IParent>mxHtmlCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.php"  class=ISymbol>mxGdCanvas.php</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxGeometry</span><div class=ISubIndex><a href="../files/model/mxGeometry-php.html#mxGeometry" id=link377 onMouseOver="ShowTip(event, 'tt377', 'link377')" onMouseOut="HideTip('tt377')" class=IParent>Global</a><a href="../files/model/mxGeometry-php.html#mxGeometry.mxGeometry" id=link378 onMouseOver="ShowTip(event, 'tt378', 'link378')" onMouseOut="HideTip('tt378')" class=IParent>mxGeometry</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph" id=link379 onMouseOver="ShowTip(event, 'tt379', 'link379')" onMouseOut="HideTip('tt379')" class=ISymbol>mxGraph</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxGraphModel</span><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel" id=link380 onMouseOver="ShowTip(event, 'tt380', 'link380')" onMouseOut="HideTip('tt380')" class=IParent>Global</a><a href="../files/view/mxGraph-php.html#mxGraph.mxGraphModel" id=link381 onMouseOver="ShowTip(event, 'tt381', 'link381')" onMouseOut="HideTip('tt381')" class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mxGraphModel" id=link382 onMouseOver="ShowTip(event, 'tt382', 'link382')" onMouseOut="HideTip('tt382')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxGraphView</span><div class=ISubIndex><a href="../files/view/mxGraphView-php.html#mxGraphView" id=link383 onMouseOver="ShowTip(event, 'tt383', 'link383')" onMouseOut="HideTip('tt383')" class=IParent>Global</a><a href="../files/view/mxGraphView-php.html#mxGraphView.mxGraphView" id=link384 onMouseOver="ShowTip(event, 'tt384', 'link384')" onMouseOut="HideTip('tt384')" class=IParent>mxGraphView</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxGraphViewHtmlReader</span><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader" id=link385 onMouseOver="ShowTip(event, 'tt385', 'link385')" onMouseOut="HideTip('tt385')" class=IParent>Global</a><a href="../files/io/mxCodec-php.html#mxCodec.mxGraphViewHtmlReader" id=link386 onMouseOver="ShowTip(event, 'tt386', 'link386')" onMouseOut="HideTip('tt386')" class=IParent>mxCodec</a><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.mxGraphViewHtmlReader" id=link387 onMouseOver="ShowTip(event, 'tt387', 'link387')" onMouseOut="HideTip('tt387')" class=IParent>mxGraphViewHtmlReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxGraphViewImageReader</span><div class=ISubIndex><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader" id=link388 onMouseOver="ShowTip(event, 'tt388', 'link388')" onMouseOut="HideTip('tt388')" class=IParent>Global</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.mxGraphViewImageReader" id=link389 onMouseOver="ShowTip(event, 'tt389', 'link389')" onMouseOut="HideTip('tt389')" class=IParent>mxGraphViewImageReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas" id=link390 onMouseOver="ShowTip(event, 'tt390', 'link390')" onMouseOut="HideTip('tt390')" class=ISymbol>mxHtmlCanvas</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxImageBundle</span><div class=ISubIndex><a href="../files/util/mxImageBundle-php.html#mxImageBundle" id=link391 onMouseOver="ShowTip(event, 'tt391', 'link391')" onMouseOut="HideTip('tt391')" class=IParent>Global</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.mxImageBundle" id=link392 onMouseOver="ShowTip(event, 'tt392', 'link392')" onMouseOut="HideTip('tt392')" class=IParent>mxImageBundle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog" id=link393 onMouseOver="ShowTip(event, 'tt393', 'link393')" onMouseOut="HideTip('tt393')" class=ISymbol>mxLog</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxLoop" id=link394 onMouseOver="ShowTip(event, 'tt394', 'link394')" onMouseOut="HideTip('tt394')" class=ISymbol>mxLoop</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxModelCodec-php.html#mxModelCodec" id=link395 onMouseOver="ShowTip(event, 'tt395', 'link395')" onMouseOut="HideTip('tt395')" class=ISymbol>mxModelCodec</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxObjectCodec</span><div class=ISubIndex><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec" id=link396 onMouseOver="ShowTip(event, 'tt396', 'link396')" onMouseOut="HideTip('tt396')" class=IParent>Global</a><a href="../files/io/mxCellCodec-php.html#mxCellCodec.mxObjectCodec" id=link397 onMouseOver="ShowTip(event, 'tt397', 'link397')" onMouseOut="HideTip('tt397')" class=IParent>mxCellCodec</a><a href="../files/io/mxModelCodec-php.html#mxModelCodec.mxObjectCodec" id=link398 onMouseOver="ShowTip(event, 'tt398', 'link398')" onMouseOut="HideTip('tt398')" class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.mxObjectCodec" id=link399 onMouseOver="ShowTip(event, 'tt399', 'link399')" onMouseOut="HideTip('tt399')" class=IParent>mxObjectCodec</a><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec.mxObjectCodec" id=link400 onMouseOver="ShowTip(event, 'tt400', 'link400')" onMouseOut="HideTip('tt400')" class=IParent>mxStylesheetCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter" id=link401 onMouseOver="ShowTip(event, 'tt401', 'link401')" onMouseOut="HideTip('tt401')" class=ISymbol>mxPerimeter</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction" id=link402 onMouseOver="ShowTip(event, 'tt402', 'link402')" onMouseOut="HideTip('tt402')" class=ISymbol>mxPerimeterFunction</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxPoint</span><div class=ISubIndex><a href="../files/util/mxPoint-php.html#mxPoint" id=link403 onMouseOver="ShowTip(event, 'tt403', 'link403')" onMouseOut="HideTip('tt403')" class=IParent>Global</a><a href="../files/util/mxPoint-php.html#mxPoint.mxPoint" id=link404 onMouseOver="ShowTip(event, 'tt404', 'link404')" onMouseOut="HideTip('tt404')" class=IParent>mxPoint</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxRectangle</span><div class=ISubIndex><a href="../files/util/mxRectangle-php.html#mxRectangle" id=link405 onMouseOver="ShowTip(event, 'tt405', 'link405')" onMouseOut="HideTip('tt405')" class=IParent>Global</a><a href="../files/util/mxRectangle-php.html#mxRectangle.mxRectangle" id=link406 onMouseOver="ShowTip(event, 'tt406', 'link406')" onMouseOut="HideTip('tt406')" class=IParent>mxRectangle</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxRectanglePerimeter" id=link407 onMouseOver="ShowTip(event, 'tt407', 'link407')" onMouseOut="HideTip('tt407')" class=ISymbol>mxRectanglePerimeter</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxRhombusPerimeter" id=link408 onMouseOver="ShowTip(event, 'tt408', 'link408')" onMouseOut="HideTip('tt408')" class=ISymbol>mxRhombusPerimeter</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxSideToSide" id=link409 onMouseOver="ShowTip(event, 'tt409', 'link409')" onMouseOut="HideTip('tt409')" class=ISymbol>mxSideToSide</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry" id=link410 onMouseOver="ShowTip(event, 'tt410', 'link410')" onMouseOut="HideTip('tt410')" class=ISymbol>mxStyleRegistry</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>mxStylesheet</span><div class=ISubIndex><a href="../files/view/mxStylesheet-php.html#mxStylesheet" id=link411 onMouseOver="ShowTip(event, 'tt411', 'link411')" onMouseOut="HideTip('tt411')" class=IParent>Global</a><a href="../files/view/mxStylesheet-php.html#mxStylesheet.mxStylesheet" id=link412 onMouseOver="ShowTip(event, 'tt412', 'link412')" onMouseOut="HideTip('tt412')" class=IParent>mxStylesheet</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec" id=link413 onMouseOver="ShowTip(event, 'tt413', 'link413')" onMouseOut="HideTip('tt413')" class=ISymbol>mxStylesheetCodec</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxTopToBottom" id=link414 onMouseOver="ShowTip(event, 'tt414', 'link414')" onMouseOut="HideTip('tt414')" class=ISymbol>mxTopToBottom</a></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxTrianglePerimeter" id=link415 onMouseOver="ShowTip(event, 'tt415', 'link415')" onMouseOut="HideTip('tt415')" class=ISymbol>mxTrianglePerimeter</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils" id=link416 onMouseOver="ShowTip(event, 'tt416', 'link416')" onMouseOut="HideTip('tt416')" class=ISymbol>mxUtils</a></td></tr><tr><td class=IHeading><a name="N"></a>N</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.name" id=link417 onMouseOver="ShowTip(event, 'tt417', 'link417')" onMouseOut="HideTip('tt417')" class=ISymbol>name</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.nextId" id=link418 onMouseOver="ShowTip(event, 'tt418', 'link418')" onMouseOut="HideTip('tt418')" class=ISymbol>nextId</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NONE" id=link419 onMouseOver="ShowTip(event, 'tt419', 'link419')" onMouseOut="HideTip('tt419')" class=ISymbol>NONE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_SVG" id=link420 onMouseOver="ShowTip(event, 'tt420', 'link420')" onMouseOut="HideTip('tt420')" class=ISymbol>NS_SVG</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_XHTML" id=link421 onMouseOver="ShowTip(event, 'tt421', 'link421')" onMouseOut="HideTip('tt421')" class=ISymbol>NS_XHTML</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_XLINK" id=link422 onMouseOver="ShowTip(event, 'tt422', 'link422')" onMouseOut="HideTip('tt422')" class=ISymbol>NS_XLINK</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=IHeading><a name="O"></a>O</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.objects" id=link423 onMouseOver="ShowTip(event, 'tt423', 'link423')" onMouseOut="HideTip('tt423')" class=ISymbol>objects</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>offset</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.offset" id=link424 onMouseOver="ShowTip(event, 'tt424', 'link424')" onMouseOut="HideTip('tt424')" class=IParent>mxGdCanvas</a><a href="../files/model/mxGeometry-php.html#mxGeometry.offset" id=link425 onMouseOver="ShowTip(event, 'tt425', 'link425')" onMouseOut="HideTip('tt425')" class=IParent>mxGeometry</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.origin" id=link426 onMouseOver="ShowTip(event, 'tt426', 'link426')" onMouseOut="HideTip('tt426')" class=ISymbol>origin</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.out" id=link427 onMouseOver="ShowTip(event, 'tt427', 'link427')" onMouseOut="HideTip('tt427')" class=ISymbol>out</a>, <span class=IParent>mxHtmlCanvas</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt348"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $maintainEdgeParent</td></tr></table></blockquote>Specifies if edges should automatically be moved into the nearest common ancestor of their terminals. </div></div><div class=CToolTip id="tt349"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $mapping</td></tr></table></blockquote>Maps from from fieldnames to XML attribute names.</div></div><div class=CToolTip id="tt350"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mergeChildren(</td><td class=PParameter nowrap>$from,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$to,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$cloneAllEdges</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Merges the children of the given cell into the given target cell inside this model. </div></div><div class=CToolTip id="tt351"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mergeChildrenImpl(</td><td class=PParameter nowrap>$from,</td></tr><tr><td></td><td class=PParameter nowrap>$to,</td></tr><tr><td></td><td class=PParameter nowrap>$cloneAllEdges,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Clones the children of the source cell into the given target cell in this model and adds an entry to the mapping that maps from the source cell to the target cell with the same id or the clone of the source cell that was inserted into this model.</div></div><div class=CToolTip id="tt352"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $MIN_ACTIVE_REGION</td></tr></table></blockquote>Defines the minimum size in pixels of the portion of the cell cell which is to be used as a connectable region.</div></div><div class=CToolTip id="tt353"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $model</td></tr></table></blockquote>Holds the mxGraphModel.</div></div><div class=CToolTip id="tt354"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt355"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxCell(</td><td class=PParameter nowrap>$value</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new cell to be used in a graph model. </div></div><div class=CToolTip id="tt356"><div class=CClass>Codec for mxCells. </div></div><div class=CToolTip id="tt357"><div class=CClass>Implements a mechanism for temporary cell Ids.</div></div><div class=CToolTip id="tt358"><div class=CClass>Represents the current state of a cell in a given mxGraphView.</div></div><div class=CToolTip id="tt359"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxCellState(</td><td class=PParameter nowrap>$view</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$cell</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new object that represents the current state of the given cell in the specified view.</div></div><div class=CToolTip id="tt360"><div class=CClass>XML codec for PHP object graphs. </div></div><div class=CToolTip id="tt361"><div class=CClass>A class to register codecs for objects.</div></div><div class=CToolTip id="tt362"><div class=CClass>Defines an object that contains the constraints about how to connect one side of an edge to its terminal.</div></div><div class=CToolTip id="tt363"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxConnectionConstraint(</td><td class=PParameter nowrap>$point</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$perimeter</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> true</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new connection constraint for the given point and boolean arguments.</div></div><div class=CToolTip id="tt364"><div class=CClass>Defines global constants.</div></div><div class=CToolTip id="tt365"><div class=CClass>Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE in a cell style.</div></div><div class=CToolTip id="tt366"><div class=CInterface>Defines the requirements for an edge style function.</div></div><div class=CToolTip id="tt367"><div class=CClass>Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell style. </div></div><div class=CToolTip id="tt368"><div class=CClass>Implements an elliptic perimeter. </div></div><div class=CToolTip id="tt369"><div class=CClass>Implements an entity relation style for edges (as used in database schema diagrams). </div></div><div class=CToolTip id="tt370"><div class=CClass>Defines global constants.</div></div><div class=CToolTip id="tt371"><div class=CClass>Base class for all events.</div></div><div class=CToolTip id="tt372"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxEventObject(</td><td class=PParameter nowrap>$name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new event for the given name and properties. </div></div><div class=CToolTip id="tt373"><div class=CClass>Base class for all event sources.</div></div><div class=CToolTip id="tt374"><div class=CClass>Canvas for drawing graphs using the GD library. </div></div><div class=CToolTip id="tt375"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGdCanvas(</td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$scale</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 1,</td></tr><tr><td></td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$imageBasePath</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> &quot;&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new GD canvas. </div></div><div class=CToolTip id="tt376"><div class=CFunction>Constructs a new GD canvas. </div></div><div class=CToolTip id="tt377"><div class=CClass>Represents the geometry of a cell. </div></div><div class=CToolTip id="tt378"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGeometry(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new object to describe the size and location of a vertex or the control points of an edge.</div></div><div class=CToolTip id="tt379"><div class=CClass>Implements a graph component.</div></div><div class=CToolTip id="tt380"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt381"><div class=CFunction>Constructs a new graph model using the specified root cell.</div></div><div class=CToolTip id="tt382"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphModel(</td><td class=PParameter nowrap>$root</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new graph model using the specified root cell.</div></div><div class=CToolTip id="tt383"><div class=CClass>Implements a view for the graph. </div></div><div class=CToolTip id="tt384"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphView(</td><td class=PParameter nowrap>$graph</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new view for the specified mxGraph.</div></div><div class=CToolTip id="tt385"><div class=CClass>A display XML to HTML converter. </div></div><div class=CToolTip id="tt386"><div class=CFunction>Constructs a new HTML graph view reader.</div></div><div class=CToolTip id="tt387"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxGraphViewHtmlReader()</td></tr></table></blockquote>Constructs a new HTML graph view reader.</div></div><div class=CToolTip id="tt388"><div class=CClass>A display XML to image converter. </div></div><div class=CToolTip id="tt389"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxGraphViewImageReader(</td><td class=PParameter nowrap>$background</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$border</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new image graph view reader.</div></div><div class=CToolTip id="tt390"><div class=CClass>Canvas for drawing graphs using HTML.</div></div><div class=CToolTip id="tt391"><div class=CClass>Maps from keys to base64 encoded images or file locations. </div></div><div class=CToolTip id="tt392"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxImageBundle()</td></tr></table></blockquote>Constructs a new image bundle.</div></div><div class=CToolTip id="tt393"><div class=CClass>Logging facility.</div></div><div class=CToolTip id="tt394"><div class=CClass>Implements a self-reference, aka. </div></div><div class=CToolTip id="tt395"><div class=CClass>Codec for mxGraphModels. </div></div><div class=CToolTip id="tt396"><div class=CClass>XML codec for PHP object graphs.</div></div><div class=CToolTip id="tt397"><div class=CFunction>Constructs a new codec for the specified template object. </div></div><div class=CToolTip id="tt398"><div class=CFunction>Constructs a new codec for the specified template object. </div></div><div class=CToolTip id="tt399"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxObjectCodec(</td><td class=PParameter nowrap>$template,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$exclude</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array(),</td></tr><tr><td></td><td class=PParameter nowrap>$idrefs</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array(),</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> array()</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new codec for the specified template object. </div></div><div class=CToolTip id="tt400"><div class=CFunction>Constructs a new codec for the specified template object. </div></div><div class=CToolTip id="tt401"><div class=CClass>Provides various perimeter functions to be used in a style as the value of mxConstants.STYLE_PERIMETER.</div></div><div class=CToolTip id="tt402"><div class=CInterface>Defines the requirements for a perimeter function.</div></div><div class=CToolTip id="tt403"><div class=CClass>Implements a 2-dimensional point with double precision coordinates.</div></div><div class=CToolTip id="tt404"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxPoint(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new point for the optional x and y coordinates. </div></div><div class=CToolTip id="tt405"><div class=CClass>Implements a 2-dimensional rectangle with double precision coordinates.</div></div><div class=CToolTip id="tt406"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxRectangle(</td><td class=PParameter nowrap>$x</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$y</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$width</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> 0</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new rectangle for the optional parameters. </div></div><div class=CToolTip id="tt407"><div class=CClass>Implements a rectangular perimeter for the given bounds.</div></div><div class=CToolTip id="tt408"><div class=CClass>Implements a rhombus (aka diamond) perimeter. </div></div><div class=CToolTip id="tt409"><div class=CClass>Implements a vertical elbow edge. </div></div><div class=CToolTip id="tt410"><div class=CClass>Singleton class that acts as a global converter from string to object values in a style. </div></div><div class=CToolTip id="tt411"><div class=CClass>Defines the appearance of the cells in a graph. </div></div><div class=CToolTip id="tt412"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function mxStylesheet()</td></tr></table></blockquote>Constructs a new stylesheet and assigns default styles.</div></div><div class=CToolTip id="tt413"><div class=CClass>Codec for mxStylesheets. </div></div><div class=CToolTip id="tt414"><div class=CClass>Implements a horizontal elbow edge. </div></div><div class=CToolTip id="tt415"><div class=CClass>Implements a triangle perimeter. </div></div><div class=CToolTip id="tt416"><div class=CClass>Helper methods.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt417"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $name</td></tr></table></blockquote>Holds the name of the event.</div></div><div class=CToolTip id="tt418"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $nextId</td></tr></table></blockquote>Specifies the next Id to be created. </div></div><div class=CToolTip id="tt419"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NONE</td></tr></table></blockquote>Defines the value for none. </div></div><div class=CToolTip id="tt420"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_SVG</td></tr></table></blockquote>Defines the SVG namespace.</div></div><div class=CToolTip id="tt421"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_XHTML</td></tr></table></blockquote>Defines the XHTML namespace.</div></div><div class=CToolTip id="tt422"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_XLINK</td></tr></table></blockquote>Defined the XLink namespace.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt423"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $objects</td></tr></table></blockquote>Maps from IDs to objects.</div></div><div class=CToolTip id="tt424"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function offset(</td><td class=PParameter nowrap>$points,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>$dx</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null,</td></tr><tr><td></td><td class=PParameter nowrap>$dy</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%> null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new array of x, y sequences where the each coordinate is translated by dx and dy, respectively.</div></div><div class=CToolTip id="tt425"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $offset</td></tr></table></blockquote>Holds the offset of the label for edges. </div></div><div class=CToolTip id="tt426"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $origin</td></tr></table></blockquote>mxPoint that holds the origin for all child cells. </div></div><div class=CToolTip id="tt427"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function out(</td><td class=PParameter nowrap>$string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified string to the output.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General8.html b/docs/php-api/index/General8.html
    new file mode 100644
    index 000000000..d0e4efab5
    --- /dev/null
    +++ b/docs/php-api/index/General8.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General2.html#C">C</a> &middot; <a href="General3.html#D">D</a> &middot; <a href="General4.html#E">E</a> &middot; <a href="General4.html#F">F</a> &middot; <a href="General5.html#G">G</a> &middot; <a href="General6.html#H">H</a> &middot; <a href="General6.html#I">I</a> &middot; J &middot; K &middot; <a href="General6.html#L">L</a> &middot; <a href="General7.html#M">M</a> &middot; <a href="General7.html#N">N</a> &middot; <a href="General7.html#O">O</a> &middot; <a href="#P">P</a> &middot; Q &middot; <a href="#R">R</a> &middot; <a href="General9.html#S">S</a> &middot; <a href="General10.html#T">T</a> &middot; <a href="General10.html#U">U</a> &middot; <a href="General10.html#V">V</a> &middot; <a href="General10.html#W">W</a> &middot; <a href="General10.html#X">X</a> &middot; <a href="General10.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="P"></a>P</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.paintCell" id=link428 onMouseOver="ShowTip(event, 'tt428', 'link428')" onMouseOut="HideTip('tt428')" class=ISymbol>paintCell</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.paintState" id=link429 onMouseOver="ShowTip(event, 'tt429', 'link429')" onMouseOut="HideTip('tt429')" class=ISymbol>paintState</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.parent" id=link430 onMouseOver="ShowTip(event, 'tt430', 'link430')" onMouseOut="HideTip('tt430')" class=ISymbol>parent</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parsePoints" id=link431 onMouseOver="ShowTip(event, 'tt431', 'link431')" onMouseOut="HideTip('tt431')" class=ISymbol>parsePoints</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parser" id=link432 onMouseOver="ShowTip(event, 'tt432', 'link432')" onMouseOut="HideTip('tt432')" class=ISymbol>parser</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parseState" id=link433 onMouseOver="ShowTip(event, 'tt433', 'link433')" onMouseOut="HideTip('tt433')" class=ISymbol>parseState</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.parseXml" id=link434 onMouseOver="ShowTip(event, 'tt434', 'link434')" onMouseOut="HideTip('tt434')" class=ISymbol>parseXml</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.perimeter" id=link435 onMouseOver="ShowTip(event, 'tt435', 'link435')" onMouseOut="HideTip('tt435')" class=ISymbol>perimeter</a>, <span class=IParent>mxConnectionConstraint</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_ELLIPSE" id=link436 onMouseOver="ShowTip(event, 'tt436', 'link436')" onMouseOut="HideTip('tt436')" class=ISymbol>PERIMETER_ELLIPSE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_RECTANGLE" id=link437 onMouseOver="ShowTip(event, 'tt437', 'link437')" onMouseOut="HideTip('tt437')" class=ISymbol>PERIMETER_RECTANGLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_RHOMBUS" id=link438 onMouseOver="ShowTip(event, 'tt438', 'link438')" onMouseOut="HideTip('tt438')" class=ISymbol>PERIMETER_RHOMBUS</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_TRIANGLE" id=link439 onMouseOver="ShowTip(event, 'tt439', 'link439')" onMouseOut="HideTip('tt439')" class=ISymbol>PERIMETER_TRIANGLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.point" id=link440 onMouseOver="ShowTip(event, 'tt440', 'link440')" onMouseOut="HideTip('tt440')" class=ISymbol>point</a>, <span class=IParent>mxConnectionConstraint</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.points" id=link441 onMouseOver="ShowTip(event, 'tt441', 'link441')" onMouseOut="HideTip('tt441')" class=ISymbol>points</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.postProcessCellStyle" id=link442 onMouseOver="ShowTip(event, 'tt442', 'link442')" onMouseOut="HideTip('tt442')" class=ISymbol>postProcessCellStyle</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.printLog" id=link443 onMouseOver="ShowTip(event, 'tt443', 'link443')" onMouseOut="HideTip('tt443')" class=ISymbol>printLog</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.processInclude" id=link444 onMouseOver="ShowTip(event, 'tt444', 'link444')" onMouseOut="HideTip('tt444')" class=ISymbol>processInclude</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.properties" id=link445 onMouseOver="ShowTip(event, 'tt445', 'link445')" onMouseOut="HideTip('tt445')" class=ISymbol>properties</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putCellStyle" id=link446 onMouseOver="ShowTip(event, 'tt446', 'link446')" onMouseOut="HideTip('tt446')" class=ISymbol>putCellStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putDefaultEdgeStyle" id=link447 onMouseOver="ShowTip(event, 'tt447', 'link447')" onMouseOut="HideTip('tt447')" class=ISymbol>putDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putDefaultVertexStyle" id=link448 onMouseOver="ShowTip(event, 'tt448', 'link448')" onMouseOut="HideTip('tt448')" class=ISymbol>putDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.putImage" id=link449 onMouseOver="ShowTip(event, 'tt449', 'link449')" onMouseOut="HideTip('tt449')" class=ISymbol>putImage</a>, <span class=IParent>mxImageBundle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.putObject" id=link450 onMouseOver="ShowTip(event, 'tt450', 'link450')" onMouseOut="HideTip('tt450')" class=ISymbol>putObject</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.putValue" id=link451 onMouseOver="ShowTip(event, 'tt451', 'link451')" onMouseOut="HideTip('tt451')" class=ISymbol>putValue</a>, <span class=IParent>mxStyleRegistry</span></td></tr><tr><td class=IHeading><a name="R"></a>R</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.RAD_PER_DEG" id=link452 onMouseOver="ShowTip(event, 'tt452', 'link452')" onMouseOut="HideTip('tt452')" class=ISymbol>RAD_PER_DEG</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.read" id=link453 onMouseOver="ShowTip(event, 'tt453', 'link453')" onMouseOut="HideTip('tt453')" class=ISymbol>read</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>readFile</span><div class=ISubIndex><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.readFile" id=link454 onMouseOver="ShowTip(event, 'tt454', 'link454')" onMouseOut="HideTip('tt454')" class=IParent>mxGraphViewImageReader</a><a href="../files/util/mxUtils-php.html#mxUtils.readFile" id=link455 onMouseOver="ShowTip(event, 'tt455', 'link455')" onMouseOut="HideTip('tt455')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.RectanglePerimeter" id=link456 onMouseOver="ShowTip(event, 'tt456', 'link456')" onMouseOut="HideTip('tt456')" class=ISymbol>RectanglePerimeter</a>, <span class=IParent>mxPerimeter</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.reference" id=link457 onMouseOver="ShowTip(event, 'tt457', 'link457')" onMouseOut="HideTip('tt457')" class=ISymbol>reference</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.register" id=link458 onMouseOver="ShowTip(event, 'tt458', 'link458')" onMouseOut="HideTip('tt458')" class=ISymbol>register</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.relative" id=link459 onMouseOver="ShowTip(event, 'tt459', 'link459')" onMouseOut="HideTip('tt459')" class=ISymbol>relative</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>remove</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.remove" id=link460 onMouseOver="ShowTip(event, 'tt460', 'link460')" onMouseOut="HideTip('tt460')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.remove" id=link461 onMouseOver="ShowTip(event, 'tt461', 'link461')" onMouseOut="HideTip('tt461')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.removeAllStylenames" id=link462 onMouseOver="ShowTip(event, 'tt462', 'link462')" onMouseOut="HideTip('tt462')" class=ISymbol>removeAllStylenames</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeEdge" id=link463 onMouseOver="ShowTip(event, 'tt463', 'link463')" onMouseOut="HideTip('tt463')" class=ISymbol>removeEdge</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeFromParent" id=link464 onMouseOver="ShowTip(event, 'tt464', 'link464')" onMouseOut="HideTip('tt464')" class=ISymbol>removeFromParent</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeFromTerminal" id=link465 onMouseOver="ShowTip(event, 'tt465', 'link465')" onMouseOut="HideTip('tt465')" class=ISymbol>removeFromTerminal</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.removeImageBundle" id=link466 onMouseOver="ShowTip(event, 'tt466', 'link466')" onMouseOut="HideTip('tt466')" class=ISymbol>removeImageBundle</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.removeState" id=link467 onMouseOver="ShowTip(event, 'tt467', 'link467')" onMouseOut="HideTip('tt467')" class=ISymbol>removeState</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.removeStylename" id=link468 onMouseOver="ShowTip(event, 'tt468', 'link468')" onMouseOut="HideTip('tt468')" class=ISymbol>removeStylename</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.resolve" id=link469 onMouseOver="ShowTip(event, 'tt469', 'link469')" onMouseOut="HideTip('tt469')" class=ISymbol>resolve</a>, <span class=IParent>mxCellPath</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.restoreClone" id=link470 onMouseOver="ShowTip(event, 'tt470', 'link470')" onMouseOut="HideTip('tt470')" class=ISymbol>restoreClone</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.reverse" id=link471 onMouseOver="ShowTip(event, 'tt471', 'link471')" onMouseOut="HideTip('tt471')" class=ISymbol>reverse</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.RhombusPerimeter" id=link472 onMouseOver="ShowTip(event, 'tt472', 'link472')" onMouseOut="HideTip('tt472')" class=ISymbol>RhombusPerimeter</a>, <span class=IParent>mxPerimeter</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.root" id=link473 onMouseOver="ShowTip(event, 'tt473', 'link473')" onMouseOut="HideTip('tt473')" class=ISymbol>root</a>, <span class=IParent>mxGraphModel</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt428"><div class=CFunction>Draws the given cell onto the specified canvas.</div></div><div class=CToolTip id="tt429"><div class=CFunction>Draws the given cell and label onto the specified canvas. </div></div><div class=CToolTip id="tt430"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $parent</td></tr></table></blockquote>Reference to the parent cell.</div></div><div class=CToolTip id="tt431"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function parsePoints(</td><td class=PParameter nowrap>$str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parses a string that represents a list of points into an array of mxPoints.</div></div><div class=CToolTip id="tt432"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $parser</td></tr></table></blockquote>Holds the SAX parser.</div></div><div class=CToolTip id="tt433"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function parseState(</td><td class=PParameter nowrap>$state,</td></tr><tr><td></td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Parses the bounds, absolute points and label information from the style of the state into its respective fields and returns the label of the cell.</div></div><div class=CToolTip id="tt434"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function parseXml(</td><td class=PParameter nowrap>$xml</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a new DOM document for the given XML string.</div></div><div class=CToolTip id="tt435"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $perimeter</td></tr></table></blockquote>Boolean that specifies if the point should be projected onto the perimeter of the terminal.</div></div><div class=CToolTip id="tt436"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_ELLIPSE</td></tr></table></blockquote>Name of the ellipse perimeter. </div></div><div class=CToolTip id="tt437"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_RECTANGLE</td></tr></table></blockquote>Name of the rectangle perimeter. </div></div><div class=CToolTip id="tt438"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_RHOMBUS</td></tr></table></blockquote>Name of the rhombus perimeter. </div></div><div class=CToolTip id="tt439"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_TRIANGLE</td></tr></table></blockquote>Name of the triangle perimeter. </div></div><div class=CToolTip id="tt440"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $point</td></tr></table></blockquote>mxPoint that specifies the fixed location of the connection point.</div></div><div class=CToolTip id="tt441"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $points</td></tr></table></blockquote>Array of mxPoints which specifies the control points along the edge. </div></div><div class=CToolTip id="tt442"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function postProcessCellStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in mxImageBundle to data URIs as defined in RFC 2397 of the IETF.</div></div><div class=CToolTip id="tt443"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $printLog</td></tr></table></blockquote>Specifies if the log should be printed out.</div></div><div class=CToolTip id="tt444"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function processInclude(</td><td class=PParameter nowrap>$dec,</td></tr><tr><td></td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$into</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given node is an include directive and executes the include by decoding the XML document. </div></div><div class=CToolTip id="tt445"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $properties</td></tr></table></blockquote>Holds the event properties in an associative array that maps from string (key) to object (value).</div></div><div class=CToolTip id="tt446"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putCellStyle(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Stores the specified style under the given name.</div></div><div class=CToolTip id="tt447"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putDefaultEdgeStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the default style for edges.</div></div><div class=CToolTip id="tt448"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putDefaultVertexStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the default style for vertices.</div></div><div class=CToolTip id="tt449"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putImage(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds the specified entry to the map.</div></div><div class=CToolTip id="tt450"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function putObject(</td><td class=PParameter nowrap>$id,</td></tr><tr><td></td><td class=PParameter nowrap>$object</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Assoiates the given object with the given ID.</div></div><div class=CToolTip id="tt451"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function putValue(</td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Puts the given object into the registry under the given name.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt452"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RAD_PER_DEG</td></tr></table></blockquote>Defines the number of radiants per degree.</div></div><div class=CToolTip id="tt453"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function read(</td><td class=PParameter nowrap>$string</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the specified view XML string.</div></div><div class=CToolTip id="tt454"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function readFile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the specified view XML file in blocks of 4096 bytes.</div></div><div class=CToolTip id="tt455"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function readFile(</td><td class=PParameter nowrap>$filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads the given filename into a string. </div></div><div class=CToolTip id="tt456"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RectanglePerimeter</td></tr></table></blockquote>Provides a rectangular perimeter.</div></div><div class=CToolTip id="tt457"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function reference(</td><td class=PParameter nowrap>$obj</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Hook for subclassers to implement a custom method for retrieving IDs from objects. </div></div><div class=CToolTip id="tt458"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function register(</td><td class=PParameter nowrap>$codec</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Registers a new codec and associates the name of the template constructor in the codec with the codec object. </div></div><div class=CToolTip id="tt459"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $relative</td></tr></table></blockquote>Specifies if the coordinates in the geometry are to be interpreted as relative coordinates. </div></div><div class=CToolTip id="tt460"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function remove(</td><td class=PParameter nowrap>$index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the child at the specified index from the child array and returns the child that was removed. </div></div><div class=CToolTip id="tt461"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function remove(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified cell from the model using mxChildChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt462"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function removeAllStylenames(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes all stylenames from the given style and returns the updated style.</div></div><div class=CToolTip id="tt463"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeEdge(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$outgoing</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified edge from the edge array and returns the edge. </div></div><div class=CToolTip id="tt464"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>function removeFromParent()</td></tr></table></blockquote>Removes the cell from its parent.</div></div><div class=CToolTip id="tt465"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeFromTerminal(</td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the edge from its source or target terminal.</div></div><div class=CToolTip id="tt466"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeImageBundle(</td><td class=PParameter nowrap>$bundle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified mxImageBundle.</div></div><div class=CToolTip id="tt467"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function removeState(</td><td class=PParameter nowrap>$cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes and returns the mxCellState for the given cell.</div></div><div class=CToolTip id="tt468"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function removeStylename(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$stylename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes all occurrences of the specified stylename in the given style and returns the updated style. </div></div><div class=CToolTip id="tt469"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function resolve(</td><td class=PParameter nowrap>$root,</td></tr><tr><td></td><td class=PParameter nowrap>$path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the cell for the specified cell path using the given root as the root of the path.</div></div><div class=CToolTip id="tt470"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function restoreClone(</td><td class=PParameter nowrap>$clne,</td></tr><tr><td></td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$mapping</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Inner helper method for restoring the connections in a network of cloned cells.</div></div><div class=CToolTip id="tt471"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $reverse</td></tr></table></blockquote>Maps from from XML attribute names to fieldnames.</div></div><div class=CToolTip id="tt472"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RhombusPerimeter</td></tr></table></blockquote>Provides a rhombus (aka diamond) perimeter.</div></div><div class=CToolTip id="tt473"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $root</td></tr></table></blockquote>Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells. </div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/General9.html b/docs/php-api/index/General9.html
    new file mode 100644
    index 000000000..9dcb39159
    --- /dev/null
    +++ b/docs/php-api/index/General9.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General2.html#C">C</a> &middot; <a href="General3.html#D">D</a> &middot; <a href="General4.html#E">E</a> &middot; <a href="General4.html#F">F</a> &middot; <a href="General5.html#G">G</a> &middot; <a href="General6.html#H">H</a> &middot; <a href="General6.html#I">I</a> &middot; J &middot; K &middot; <a href="General6.html#L">L</a> &middot; <a href="General7.html#M">M</a> &middot; <a href="General7.html#N">N</a> &middot; <a href="General7.html#O">O</a> &middot; <a href="General8.html#P">P</a> &middot; Q &middot; <a href="General8.html#R">R</a> &middot; <a href="#S">S</a> &middot; <a href="General10.html#T">T</a> &middot; <a href="General10.html#U">U</a> &middot; <a href="General10.html#V">V</a> &middot; <a href="General10.html#W">W</a> &middot; <a href="General10.html#X">X</a> &middot; <a href="General10.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="S"></a>S</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>scale</span><div class=ISubIndex><a href="../files/view/mxGraphView-php.html#mxGraphView.scale" id=link474 onMouseOver="ShowTip(event, 'tt474', 'link474')" onMouseOut="HideTip('tt474')" class=IParent>mxGraphView</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.scale" id=link475 onMouseOver="ShowTip(event, 'tt475', 'link475')" onMouseOut="HideTip('tt475')" class=IParent>mxGraphViewImageReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.SCALE" id=link476 onMouseOver="ShowTip(event, 'tt476', 'link476')" onMouseOut="HideTip('tt476')" class=ISymbol>SCALE</a>, <span class=IParent>mxEvent</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.segments" id=link477 onMouseOver="ShowTip(event, 'tt477', 'link477')" onMouseOut="HideTip('tt477')" class=ISymbol>segments</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.selectSingleNode" id=link478 onMouseOver="ShowTip(event, 'tt478', 'link478')" onMouseOut="HideTip('tt478')" class=ISymbol>selectSingleNode</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setAttribute</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setAttribute" id=link479 onMouseOver="ShowTip(event, 'tt479', 'link479')" onMouseOut="HideTip('tt479')" class=IParent>mxCell</a><a href="../files/io/mxCodec-php.html#mxCodec.setAttribute" id=link480 onMouseOver="ShowTip(event, 'tt480', 'link480')" onMouseOut="HideTip('tt480')" class=IParent>mxCodec</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.setCellStyleFlags" id=link481 onMouseOver="ShowTip(event, 'tt481', 'link481')" onMouseOut="HideTip('tt481')" class=ISymbol>setCellStyleFlags</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setCellStyles</span><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.setCellStyles" id=link482 onMouseOver="ShowTip(event, 'tt482', 'link482')" onMouseOut="HideTip('tt482')" class=IParent>mxGraph</a><a href="../files/util/mxUtils-php.html#mxUtils.setCellStyles" id=link483 onMouseOver="ShowTip(event, 'tt483', 'link483')" onMouseOut="HideTip('tt483')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setCollapsed</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setCollapsed" id=link484 onMouseOver="ShowTip(event, 'tt484', 'link484')" onMouseOut="HideTip('tt484')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setCollapsed" id=link485 onMouseOver="ShowTip(event, 'tt485', 'link485')" onMouseOut="HideTip('tt485')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setConnectable" id=link486 onMouseOver="ShowTip(event, 'tt486', 'link486')" onMouseOut="HideTip('tt486')" class=ISymbol>setConnectable</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setEdge" id=link487 onMouseOver="ShowTip(event, 'tt487', 'link487')" onMouseOut="HideTip('tt487')" class=ISymbol>setEdge</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setGeometry</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setGeometry" id=link488 onMouseOver="ShowTip(event, 'tt488', 'link488')" onMouseOut="HideTip('tt488')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setGeometry" id=link489 onMouseOver="ShowTip(event, 'tt489', 'link489')" onMouseOut="HideTip('tt489')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setGraphBounds" id=link490 onMouseOver="ShowTip(event, 'tt490', 'link490')" onMouseOut="HideTip('tt490')" class=ISymbol>setGraphBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setId" id=link491 onMouseOver="ShowTip(event, 'tt491', 'link491')" onMouseOut="HideTip('tt491')" class=ISymbol>setId</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.setImage" id=link492 onMouseOver="ShowTip(event, 'tt492', 'link492')" onMouseOut="HideTip('tt492')" class=ISymbol>setImage</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.setImageBundles" id=link493 onMouseOver="ShowTip(event, 'tt493', 'link493')" onMouseOut="HideTip('tt493')" class=ISymbol>setImageBundles</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setParent" id=link494 onMouseOver="ShowTip(event, 'tt494', 'link494')" onMouseOut="HideTip('tt494')" class=ISymbol>setParent</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.setRect" id=link495 onMouseOver="ShowTip(event, 'tt495', 'link495')" onMouseOut="HideTip('tt495')" class=ISymbol>setRect</a>, <span class=IParent>mxRectangle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setRoot"  class=ISymbol>setRoot</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setScale" id=link496 onMouseOver="ShowTip(event, 'tt496', 'link496')" onMouseOut="HideTip('tt496')" class=ISymbol>setScale</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setStyle</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setStyle" id=link497 onMouseOver="ShowTip(event, 'tt497', 'link497')" onMouseOut="HideTip('tt497')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setStyle" id=link498 onMouseOver="ShowTip(event, 'tt498', 'link498')" onMouseOut="HideTip('tt498')" class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-php.html#mxUtils.setStyle" id=link499 onMouseOver="ShowTip(event, 'tt499', 'link499')" onMouseOut="HideTip('tt499')" class=IParent>mxUtils</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.setStyleFlag" id=link500 onMouseOver="ShowTip(event, 'tt500', 'link500')" onMouseOut="HideTip('tt500')" class=ISymbol>setStyleFlag</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setTerminal</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setTerminal" id=link501 onMouseOver="ShowTip(event, 'tt501', 'link501')" onMouseOut="HideTip('tt501')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setTerminal" id=link502 onMouseOver="ShowTip(event, 'tt502', 'link502')" onMouseOut="HideTip('tt502')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.setTerminalPoint" id=link503 onMouseOver="ShowTip(event, 'tt503', 'link503')" onMouseOut="HideTip('tt503')" class=ISymbol>setTerminalPoint</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setTerminals" id=link504 onMouseOver="ShowTip(event, 'tt504', 'link504')" onMouseOut="HideTip('tt504')" class=ISymbol>setTerminals</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setTranslate" id=link505 onMouseOver="ShowTip(event, 'tt505', 'link505')" onMouseOut="HideTip('tt505')" class=ISymbol>setTranslate</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setValue</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setValue" id=link506 onMouseOver="ShowTip(event, 'tt506', 'link506')" onMouseOut="HideTip('tt506')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setValue" id=link507 onMouseOver="ShowTip(event, 'tt507', 'link507')" onMouseOut="HideTip('tt507')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setVertex" id=link508 onMouseOver="ShowTip(event, 'tt508', 'link508')" onMouseOut="HideTip('tt508')" class=ISymbol>setVertex</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>setVisible</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setVisible" id=link509 onMouseOver="ShowTip(event, 'tt509', 'link509')" onMouseOut="HideTip('tt509')" class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setVisible" id=link510 onMouseOver="ShowTip(event, 'tt510', 'link510')" onMouseOut="HideTip('tt510')" class=IParent>mxGraphModel</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHADOW_OFFSETX" id=link511 onMouseOver="ShowTip(event, 'tt511', 'link511')" onMouseOut="HideTip('tt511')" class=ISymbol>SHADOW_OFFSETX</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHADOW_OFFSETY" id=link512 onMouseOver="ShowTip(event, 'tt512', 'link512')" onMouseOut="HideTip('tt512')" class=ISymbol>SHADOW_OFFSETY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.shadowColor" id=link513 onMouseOver="ShowTip(event, 'tt513', 'link513')" onMouseOut="HideTip('tt513')" class=ISymbol>shadowColor</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ACTOR" id=link514 onMouseOver="ShowTip(event, 'tt514', 'link514')" onMouseOut="HideTip('tt514')" class=ISymbol>SHAPE_ACTOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ARROW" id=link515 onMouseOver="ShowTip(event, 'tt515', 'link515')" onMouseOut="HideTip('tt515')" class=ISymbol>SHAPE_ARROW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CLOUD" id=link516 onMouseOver="ShowTip(event, 'tt516', 'link516')" onMouseOut="HideTip('tt516')" class=ISymbol>SHAPE_CLOUD</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CONNECTOR" id=link517 onMouseOver="ShowTip(event, 'tt517', 'link517')" onMouseOut="HideTip('tt517')" class=ISymbol>SHAPE_CONNECTOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CYLINDER" id=link518 onMouseOver="ShowTip(event, 'tt518', 'link518')" onMouseOut="HideTip('tt518')" class=ISymbol>SHAPE_CYLINDER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_DOUBLE_ELLIPSE" id=link519 onMouseOver="ShowTip(event, 'tt519', 'link519')" onMouseOut="HideTip('tt519')" class=ISymbol>SHAPE_DOUBLE_ELLIPSE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ELLIPSE" id=link520 onMouseOver="ShowTip(event, 'tt520', 'link520')" onMouseOut="HideTip('tt520')" class=ISymbol>SHAPE_ELLIPSE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_HEXAGON" id=link521 onMouseOver="ShowTip(event, 'tt521', 'link521')" onMouseOut="HideTip('tt521')" class=ISymbol>SHAPE_HEXAGON</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_IMAGE" id=link522 onMouseOver="ShowTip(event, 'tt522', 'link522')" onMouseOut="HideTip('tt522')" class=ISymbol>SHAPE_IMAGE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_LABEL" id=link523 onMouseOver="ShowTip(event, 'tt523', 'link523')" onMouseOut="HideTip('tt523')" class=ISymbol>SHAPE_LABEL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_LINE" id=link524 onMouseOver="ShowTip(event, 'tt524', 'link524')" onMouseOut="HideTip('tt524')" class=ISymbol>SHAPE_LINE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_RECTANGLE" id=link525 onMouseOver="ShowTip(event, 'tt525', 'link525')" onMouseOut="HideTip('tt525')" class=ISymbol>SHAPE_RECTANGLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_RHOMBUS" id=link526 onMouseOver="ShowTip(event, 'tt526', 'link526')" onMouseOut="HideTip('tt526')" class=ISymbol>SHAPE_RHOMBUS</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_SWIMLANE" id=link527 onMouseOver="ShowTip(event, 'tt527', 'link527')" onMouseOut="HideTip('tt527')" class=ISymbol>SHAPE_SWIMLANE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_TRIANGLE" id=link528 onMouseOver="ShowTip(event, 'tt528', 'link528')" onMouseOut="HideTip('tt528')" class=ISymbol>SHAPE_TRIANGLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.SideToSide" id=link529 onMouseOver="ShowTip(event, 'tt529', 'link529')" onMouseOut="HideTip('tt529')" class=ISymbol>SideToSide</a>, <span class=IParent>mxEdgeStyle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.source" id=link530 onMouseOver="ShowTip(event, 'tt530', 'link530')" onMouseOut="HideTip('tt530')" class=ISymbol>source</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.sourcePoint" id=link531 onMouseOver="ShowTip(event, 'tt531', 'link531')" onMouseOut="HideTip('tt531')" class=ISymbol>sourcePoint</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.sSTYLE_ENTRY_PERIMETER" id=link532 onMouseOver="ShowTip(event, 'tt532', 'link532')" onMouseOut="HideTip('tt532')" class=ISymbol>sSTYLE_ENTRY_PERIMETER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.stackTrace" id=link533 onMouseOver="ShowTip(event, 'tt533', 'link533')" onMouseOut="HideTip('tt533')" class=ISymbol>stackTrace</a>, <span class=IParent>mxUtils</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.startElement" id=link534 onMouseOver="ShowTip(event, 'tt534', 'link534')" onMouseOut="HideTip('tt534')" class=ISymbol>startElement</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.states" id=link535 onMouseOver="ShowTip(event, 'tt535', 'link535')" onMouseOut="HideTip('tt535')" class=ISymbol>states</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>style</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.style" id=link536 onMouseOver="ShowTip(event, 'tt536', 'link536')" onMouseOut="HideTip('tt536')" class=IParent>mxCell</a><a href="../files/view/mxCellState-php.html#mxCellState.style" id=link537 onMouseOver="ShowTip(event, 'tt537', 'link537')" onMouseOut="HideTip('tt537')" class=IParent>mxCellState</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ALIGN" id=link538 onMouseOver="ShowTip(event, 'tt538', 'link538')" onMouseOut="HideTip('tt538')" class=ISymbol>STYLE_ALIGN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_DASHED" id=link539 onMouseOver="ShowTip(event, 'tt539', 'link539')" onMouseOut="HideTip('tt539')" class=ISymbol>STYLE_DASHED</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_DIRECTION" id=link540 onMouseOver="ShowTip(event, 'tt540', 'link540')" onMouseOut="HideTip('tt540')" class=ISymbol>STYLE_DIRECTION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EDGE" id=link541 onMouseOver="ShowTip(event, 'tt541', 'link541')" onMouseOut="HideTip('tt541')" class=ISymbol>STYLE_EDGE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ELBOW" id=link542 onMouseOver="ShowTip(event, 'tt542', 'link542')" onMouseOut="HideTip('tt542')" class=ISymbol>STYLE_ELBOW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENDARROW" id=link543 onMouseOver="ShowTip(event, 'tt543', 'link543')" onMouseOut="HideTip('tt543')" class=ISymbol>STYLE_ENDARROW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENDSIZE" id=link544 onMouseOver="ShowTip(event, 'tt544', 'link544')" onMouseOut="HideTip('tt544')" class=ISymbol>STYLE_ENDSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENTRY_X" id=link545 onMouseOver="ShowTip(event, 'tt545', 'link545')" onMouseOut="HideTip('tt545')" class=ISymbol>STYLE_ENTRY_X</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENTRY_Y" id=link546 onMouseOver="ShowTip(event, 'tt546', 'link546')" onMouseOut="HideTip('tt546')" class=ISymbol>STYLE_ENTRY_Y</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_PERIMETER" id=link547 onMouseOver="ShowTip(event, 'tt547', 'link547')" onMouseOut="HideTip('tt547')" class=ISymbol>STYLE_EXIT_PERIMETER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_X" id=link548 onMouseOver="ShowTip(event, 'tt548', 'link548')" onMouseOut="HideTip('tt548')" class=ISymbol>STYLE_EXIT_X</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_Y" id=link549 onMouseOver="ShowTip(event, 'tt549', 'link549')" onMouseOut="HideTip('tt549')" class=ISymbol>STYLE_EXIT_Y</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FILLCOLOR" id=link550 onMouseOver="ShowTip(event, 'tt550', 'link550')" onMouseOut="HideTip('tt550')" class=ISymbol>STYLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTCOLOR" id=link551 onMouseOver="ShowTip(event, 'tt551', 'link551')" onMouseOut="HideTip('tt551')" class=ISymbol>STYLE_FONTCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTFAMILY" id=link552 onMouseOver="ShowTip(event, 'tt552', 'link552')" onMouseOut="HideTip('tt552')" class=ISymbol>STYLE_FONTFAMILY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTSIZE" id=link553 onMouseOver="ShowTip(event, 'tt553', 'link553')" onMouseOut="HideTip('tt553')" class=ISymbol>STYLE_FONTSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTSTYLE" id=link554 onMouseOver="ShowTip(event, 'tt554', 'link554')" onMouseOut="HideTip('tt554')" class=ISymbol>STYLE_FONTSTYLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_GRADIENT_DIRECTION" id=link555 onMouseOver="ShowTip(event, 'tt555', 'link555')" onMouseOut="HideTip('tt555')" class=ISymbol>STYLE_GRADIENT_DIRECTION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_GRADIENTCOLOR" id=link556 onMouseOver="ShowTip(event, 'tt556', 'link556')" onMouseOut="HideTip('tt556')" class=ISymbol>STYLE_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_HORIZONTAL" id=link557 onMouseOver="ShowTip(event, 'tt557', 'link557')" onMouseOut="HideTip('tt557')" class=ISymbol>STYLE_HORIZONTAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE" id=link558 onMouseOver="ShowTip(event, 'tt558', 'link558')" onMouseOut="HideTip('tt558')" class=ISymbol>STYLE_IMAGE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_ALIGN" id=link559 onMouseOver="ShowTip(event, 'tt559', 'link559')" onMouseOut="HideTip('tt559')" class=ISymbol>STYLE_IMAGE_ALIGN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_BACKGROUND" id=link560 onMouseOver="ShowTip(event, 'tt560', 'link560')" onMouseOut="HideTip('tt560')" class=ISymbol>STYLE_IMAGE_BACKGROUND</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_BORDER" id=link561 onMouseOver="ShowTip(event, 'tt561', 'link561')" onMouseOut="HideTip('tt561')" class=ISymbol>STYLE_IMAGE_BORDER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_FLIPH" id=link562 onMouseOver="ShowTip(event, 'tt562', 'link562')" onMouseOut="HideTip('tt562')" class=ISymbol>STYLE_IMAGE_FLIPH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_FLIPV" id=link563 onMouseOver="ShowTip(event, 'tt563', 'link563')" onMouseOut="HideTip('tt563')" class=ISymbol>STYLE_IMAGE_FLIPV</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_HEIGHT" id=link564 onMouseOver="ShowTip(event, 'tt564', 'link564')" onMouseOut="HideTip('tt564')" class=ISymbol>STYLE_IMAGE_HEIGHT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_VERTICALALIGN" id=link565 onMouseOver="ShowTip(event, 'tt565', 'link565')" onMouseOut="HideTip('tt565')" class=ISymbol>STYLE_IMAGE_VERTICALALIGN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_WIDTH" id=link566 onMouseOver="ShowTip(event, 'tt566', 'link566')" onMouseOut="HideTip('tt566')" class=ISymbol>STYLE_IMAGE_WIDTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_COLOR" id=link567 onMouseOver="ShowTip(event, 'tt567', 'link567')" onMouseOut="HideTip('tt567')" class=ISymbol>STYLE_INDICATOR_COLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_GRADIENTCOLOR" id=link568 onMouseOver="ShowTip(event, 'tt568', 'link568')" onMouseOut="HideTip('tt568')" class=ISymbol>STYLE_INDICATOR_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_HEIGHT" id=link569 onMouseOver="ShowTip(event, 'tt569', 'link569')" onMouseOut="HideTip('tt569')" class=ISymbol>STYLE_INDICATOR_HEIGHT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_IMAGE" id=link570 onMouseOver="ShowTip(event, 'tt570', 'link570')" onMouseOut="HideTip('tt570')" class=ISymbol>STYLE_INDICATOR_IMAGE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_SHAPE" id=link571 onMouseOver="ShowTip(event, 'tt571', 'link571')" onMouseOut="HideTip('tt571')" class=ISymbol>STYLE_INDICATOR_SHAPE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_SPACING" id=link572 onMouseOver="ShowTip(event, 'tt572', 'link572')" onMouseOut="HideTip('tt572')" class=ISymbol>STYLE_INDICATOR_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_WIDTH" id=link573 onMouseOver="ShowTip(event, 'tt573', 'link573')" onMouseOut="HideTip('tt573')" class=ISymbol>STYLE_INDICATOR_WIDTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_BACKGROUNDCOLOR" id=link574 onMouseOver="ShowTip(event, 'tt574', 'link574')" onMouseOut="HideTip('tt574')" class=ISymbol>STYLE_LABEL_BACKGROUNDCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_BORDERCOLOR" id=link575 onMouseOver="ShowTip(event, 'tt575', 'link575')" onMouseOut="HideTip('tt575')" class=ISymbol>STYLE_LABEL_BORDERCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_POSITION" id=link576 onMouseOver="ShowTip(event, 'tt576', 'link576')" onMouseOut="HideTip('tt576')" class=ISymbol>STYLE_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LOOP" id=link577 onMouseOver="ShowTip(event, 'tt577', 'link577')" onMouseOut="HideTip('tt577')" class=ISymbol>STYLE_LOOP</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_NOEDGESTYLE" id=link578 onMouseOver="ShowTip(event, 'tt578', 'link578')" onMouseOut="HideTip('tt578')" class=ISymbol>STYLE_NOEDGESTYLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_NOLABEL" id=link579 onMouseOver="ShowTip(event, 'tt579', 'link579')" onMouseOut="HideTip('tt579')" class=ISymbol>STYLE_NOLABEL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_OPACITY" id=link580 onMouseOver="ShowTip(event, 'tt580', 'link580')" onMouseOut="HideTip('tt580')" class=ISymbol>STYLE_OPACITY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ORTHOGONAL" id=link581 onMouseOver="ShowTip(event, 'tt581', 'link581')" onMouseOut="HideTip('tt581')" class=ISymbol>STYLE_ORTHOGONAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_OVERFLOW" id=link582 onMouseOver="ShowTip(event, 'tt582', 'link582')" onMouseOut="HideTip('tt582')" class=ISymbol>STYLE_OVERFLOW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_PERIMETER" id=link583 onMouseOver="ShowTip(event, 'tt583', 'link583')" onMouseOut="HideTip('tt583')" class=ISymbol>STYLE_PERIMETER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_PERIMETER_SPACING" id=link584 onMouseOver="ShowTip(event, 'tt584', 'link584')" onMouseOut="HideTip('tt584')" class=ISymbol>STYLE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROTATION" id=link585 onMouseOver="ShowTip(event, 'tt585', 'link585')" onMouseOut="HideTip('tt585')" class=ISymbol>STYLE_ROTATION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUNDED" id=link586 onMouseOver="ShowTip(event, 'tt586', 'link586')" onMouseOut="HideTip('tt586')" class=ISymbol>STYLE_ROUNDED</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUTING_CENTER_X" id=link587 onMouseOver="ShowTip(event, 'tt587', 'link587')" onMouseOut="HideTip('tt587')" class=ISymbol>STYLE_ROUTING_CENTER_X</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUTING_CENTER_Y" id=link588 onMouseOver="ShowTip(event, 'tt588', 'link588')" onMouseOut="HideTip('tt588')" class=ISymbol>STYLE_ROUTING_CENTER_Y</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SEGMENT" id=link589 onMouseOver="ShowTip(event, 'tt589', 'link589')" onMouseOut="HideTip('tt589')" class=ISymbol>STYLE_SEGMENT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SEPARATORCOLOR" id=link590 onMouseOver="ShowTip(event, 'tt590', 'link590')" onMouseOut="HideTip('tt590')" class=ISymbol>STYLE_SEPARATORCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SHADOW" id=link591 onMouseOver="ShowTip(event, 'tt591', 'link591')" onMouseOut="HideTip('tt591')" class=ISymbol>STYLE_SHADOW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SHAPE" id=link592 onMouseOver="ShowTip(event, 'tt592', 'link592')" onMouseOut="HideTip('tt592')" class=ISymbol>STYLE_SHAPE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SOURCE_PERIMETER_SPACING" id=link593 onMouseOver="ShowTip(event, 'tt593', 'link593')" onMouseOut="HideTip('tt593')" class=ISymbol>STYLE_SOURCE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING" id=link594 onMouseOver="ShowTip(event, 'tt594', 'link594')" onMouseOut="HideTip('tt594')" class=ISymbol>STYLE_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_BOTTOM" id=link595 onMouseOver="ShowTip(event, 'tt595', 'link595')" onMouseOut="HideTip('tt595')" class=ISymbol>STYLE_SPACING_BOTTOM</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_LEFT" id=link596 onMouseOver="ShowTip(event, 'tt596', 'link596')" onMouseOut="HideTip('tt596')" class=ISymbol>STYLE_SPACING_LEFT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_RIGHT" id=link597 onMouseOver="ShowTip(event, 'tt597', 'link597')" onMouseOut="HideTip('tt597')" class=ISymbol>STYLE_SPACING_RIGHT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_TOP" id=link598 onMouseOver="ShowTip(event, 'tt598', 'link598')" onMouseOut="HideTip('tt598')" class=ISymbol>STYLE_SPACING_TOP</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STARTARROW" id=link599 onMouseOver="ShowTip(event, 'tt599', 'link599')" onMouseOut="HideTip('tt599')" class=ISymbol>STYLE_STARTARROW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STARTSIZE" id=link600 onMouseOver="ShowTip(event, 'tt600', 'link600')" onMouseOut="HideTip('tt600')" class=ISymbol>STYLE_STARTSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STROKECOLOR" id=link601 onMouseOver="ShowTip(event, 'tt601', 'link601')" onMouseOut="HideTip('tt601')" class=ISymbol>STYLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STROKEWIDTH" id=link602 onMouseOver="ShowTip(event, 'tt602', 'link602')" onMouseOut="HideTip('tt602')" class=ISymbol>STYLE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_TARGET_PERIMETER_SPACING" id=link603 onMouseOver="ShowTip(event, 'tt603', 'link603')" onMouseOut="HideTip('tt603')" class=ISymbol>STYLE_TARGET_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_TEXT_OPACITY" id=link604 onMouseOver="ShowTip(event, 'tt604', 'link604')" onMouseOut="HideTip('tt604')" class=ISymbol>STYLE_TEXT_OPACITY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_VERTICAL_ALIGN" id=link605 onMouseOver="ShowTip(event, 'tt605', 'link605')" onMouseOut="HideTip('tt605')" class=ISymbol>STYLE_VERTICAL_ALIGN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_VERTICAL_LABEL_POSITION" id=link606 onMouseOver="ShowTip(event, 'tt606', 'link606')" onMouseOut="HideTip('tt606')" class=ISymbol>STYLE_VERTICAL_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_WHITE_SPACE" id=link607 onMouseOver="ShowTip(event, 'tt607', 'link607')" onMouseOut="HideTip('tt607')" class=ISymbol>STYLE_WHITE_SPACE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.styles" id=link608 onMouseOver="ShowTip(event, 'tt608', 'link608')" onMouseOut="HideTip('tt608')" class=ISymbol>styles</a>, <span class=IParent>mxStylesheet</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.stylesheet" id=link609 onMouseOver="ShowTip(event, 'tt609', 'link609')" onMouseOut="HideTip('tt609')" class=ISymbol>stylesheet</a>, <span class=IParent>mxGraph</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt474"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $scale</td></tr></table></blockquote>Holds the current scale.</div></div><div class=CToolTip id="tt475"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $scale</td></tr></table></blockquote>Holds the global scale of the graph. </div></div><div class=CToolTip id="tt476"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SCALE</td></tr></table></blockquote>Defines the name of the scale event.</div></div><div class=CToolTip id="tt477"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $segments</td></tr></table></blockquote>Array of numbers that represent the cached length of each segment of the edge.</div></div><div class=CToolTip id="tt478"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function selectSingleNode(</td><td class=PParameter nowrap>$doc,</td></tr><tr><td></td><td class=PParameter nowrap>$expr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Evaluates the XPath expression and returns the first node of the result.</div></div><div class=CToolTip id="tt479"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setAttribute(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the specified attribute on the user object if it is an XML node.</div></div><div class=CToolTip id="tt480"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setAttribute(</td><td class=PParameter nowrap>$node,</td></tr><tr><td></td><td class=PParameter nowrap>$attribute,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the attribute on the specified node to value. </div></div><div class=CToolTip id="tt481"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setCellStyleFlags(</td><td class=PParameter nowrap>$model,</td></tr><tr><td></td><td class=PParameter nowrap>$cells,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$flag,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets or toggles the flag bit for the given key in the cell&rsquo;s styles. </div></div><div class=CToolTip id="tt482"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCellStyles(</td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value,</td></tr><tr><td></td><td class=PParameter nowrap>$cells</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the key to value in the styles of the given cells. </div></div><div class=CToolTip id="tt483"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setCellStyles(</td><td class=PParameter nowrap>$model,</td></tr><tr><td></td><td class=PParameter nowrap>$cells,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.</div></div><div class=CToolTip id="tt484"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCollapsed(</td><td class=PParameter nowrap>$collapsed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the collapsed state.</div></div><div class=CToolTip id="tt485"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setCollapsed(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$isCollapsed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the collapsed state of the given mxCell using mxCollapseChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt486"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setConnectable(</td><td class=PParameter nowrap>$connectable</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the connectable state.</div></div><div class=CToolTip id="tt487"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setEdge(</td><td class=PParameter nowrap>$edge</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies if the cell is an edge. </div></div><div class=CToolTip id="tt488"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGeometry(</td><td class=PParameter nowrap>$geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the mxGeometry to be used as the geometry.</div></div><div class=CToolTip id="tt489"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGeometry(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$geometry</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the mxGeometry of the given mxCell. </div></div><div class=CToolTip id="tt490"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setGraphBounds(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets graphBounds.</div></div><div class=CToolTip id="tt491"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setId(</td><td class=PParameter nowrap>$id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the Id of the cell to the given string.</div></div><div class=CToolTip id="tt492"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setImage(</td><td class=PParameter nowrap>$img</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the image that represents the canvas.</div></div><div class=CToolTip id="tt493"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setImageBundles(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the imageBundles.</div></div><div class=CToolTip id="tt494"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setParent(</td><td class=PParameter nowrap>$parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the parent cell.</div></div><div class=CToolTip id="tt495"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setRect(</td><td class=PParameter nowrap>$x,</td></tr><tr><td></td><td class=PParameter nowrap>$y,</td></tr><tr><td></td><td class=PParameter nowrap>$width,</td></tr><tr><td></td><td class=PParameter nowrap>$height</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets this rectangle to the specified values.</div></div><div class=CToolTip id="tt496"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setScale(</td><td class=PParameter nowrap>$scale</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the scale, revalidates the view and fires a scale event.</div></div><div class=CToolTip id="tt497"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setStyle(</td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the string to be used as the style.</div></div><div class=CToolTip id="tt498"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setStyle(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$style</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the style of the given mxCell using mxStyleChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt499"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setStyle(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Adds or removes the given key, value pair to the style and returns the new style. </div></div><div class=CToolTip id="tt500"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>static function setStyleFlag(</td><td class=PParameter nowrap>$style,</td></tr><tr><td></td><td class=PParameter nowrap>$key,</td></tr><tr><td></td><td class=PParameter nowrap>$flag,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets or removes the given key from the specified style and returns the new style. </div></div><div class=CToolTip id="tt501"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminal(</td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the source or target terminal and returns the new terminal.</div></div><div class=CToolTip id="tt502"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminal(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$terminal,</td></tr><tr><td></td><td class=PParameter nowrap>$source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the source or target terminal of the given mxCell using mxTerminalChange and adds the change to the current transaction. </div></div><div class=CToolTip id="tt503"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminalPoint(</td><td class=PParameter nowrap>$point,</td></tr><tr><td></td><td class=PParameter nowrap>$isSource</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the sourcePoint or targetPoint to the given mxPoint and returns the new point.</div></div><div class=CToolTip id="tt504"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTerminals(</td><td class=PParameter nowrap>$edge,</td></tr><tr><td></td><td class=PParameter nowrap>$source,</td></tr><tr><td></td><td class=PParameter nowrap>$target</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the source and target mxCell of the given mxCell in a single transaction using setTerminal for each end of the edge.</div></div><div class=CToolTip id="tt505"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setTranslate(</td><td class=PParameter nowrap>$translate</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the translation, revalidates the view and fires a translate event.</div></div><div class=CToolTip id="tt506"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setValue(</td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the user object of the cell. </div></div><div class=CToolTip id="tt507"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setValue(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$value</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the user object of then given mxCell using mxValueChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt508"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVertex(</td><td class=PParameter nowrap>$vertex</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies if the cell is a vertex. </div></div><div class=CToolTip id="tt509"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVisible(</td><td class=PParameter nowrap>$visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies if the cell is visible.</div></div><div class=CToolTip id="tt510"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function setVisible(</td><td class=PParameter nowrap>$cell,</td></tr><tr><td></td><td class=PParameter nowrap>$visible</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the visible state of the given mxCell using mxVisibleChange and adds the change to the current transaction.</div></div><div class=CToolTip id="tt511"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHADOW_OFFSETX</td></tr></table></blockquote>Defines the x-offset to be used for shadows. </div></div><div class=CToolTip id="tt512"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHADOW_OFFSETY</td></tr></table></blockquote>Defines the y-offset to be used for shadows. </div></div><div class=CToolTip id="tt513"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $shadowColor</td></tr></table></blockquote>Holds the color object for the shadow color defined in mxConstants.W3C_SHADOWCOLOR.</div></div><div class=CToolTip id="tt514"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ACTOR</td></tr></table></blockquote></div></div><div class=CToolTip id="tt515"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ARROW</td></tr></table></blockquote></div></div><div class=CToolTip id="tt516"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CLOUD</td></tr></table></blockquote></div></div><div class=CToolTip id="tt517"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CONNECTOR</td></tr></table></blockquote></div></div><div class=CToolTip id="tt518"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CYLINDER</td></tr></table></blockquote></div></div><div class=CToolTip id="tt519"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_DOUBLE_ELLIPSE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt520"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ELLIPSE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt521"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_HEXAGON</td></tr></table></blockquote></div></div><div class=CToolTip id="tt522"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_IMAGE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt523"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_LABEL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt524"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_LINE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt525"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_RECTANGLE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt526"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_RHOMBUS</td></tr></table></blockquote></div></div><div class=CToolTip id="tt527"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_SWIMLANE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt528"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_TRIANGLE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt529"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SideToSide</td></tr></table></blockquote>Provides a side to side connector.</div></div><div class=CToolTip id="tt530"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $source</td></tr></table></blockquote>Reference to the source terminal.</div></div><div class=CToolTip id="tt531"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $sourcePoint</td></tr></table></blockquote>Defines the source point of the edge. </div></div><div class=CToolTip id="tt532"><div class=CVariable>Defines if the perimeter should be used to find the exact entry point along the perimeter of the target. </div></div><div class=CToolTip id="tt533"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>static function stackTrace()</td></tr></table></blockquote>Prints a simple stack trace in the error log.</div></div><div class=CToolTip id="tt534"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function startElement(</td><td class=PParameter nowrap>$parser,</td></tr><tr><td></td><td class=PParameter nowrap>$name,</td></tr><tr><td></td><td class=PParameter nowrap>$attrs</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Invoked by the SAX parser when an element starts.</div></div><div class=CToolTip id="tt535"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $states</td></tr></table></blockquote>Maps from cells to states.</div></div><div class=CToolTip id="tt536"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $style</td></tr></table></blockquote>Holds the style as a string of the form [(stylename|key=value);]. </div></div><div class=CToolTip id="tt537"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $style</td></tr></table></blockquote>Contains an array of key, value pairs that represent the style of the cell.</div></div><div class=CToolTip id="tt538"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ALIGN</td></tr></table></blockquote>Defines the key for the align style. </div></div><div class=CToolTip id="tt539"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_DASHED</td></tr></table></blockquote>Defines the key for the endSize style. </div></div><div class=CToolTip id="tt540"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_DIRECTION</td></tr></table></blockquote>Defines the key for the direction style. </div></div><div class=CToolTip id="tt541"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EDGE</td></tr></table></blockquote>Defines the key for the edge style. </div></div><div class=CToolTip id="tt542"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ELBOW</td></tr></table></blockquote>Defines the key for the elbow style. </div></div><div class=CToolTip id="tt543"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENDARROW</td></tr></table></blockquote>Defines the key for the endArrow style. </div></div><div class=CToolTip id="tt544"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENDSIZE</td></tr></table></blockquote>Defines the key for the endSize style. </div></div><div class=CToolTip id="tt545"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENTRY_X</td></tr></table></blockquote>Defines the key for the horizontal relative coordinate connection point of an edge with its target terminal.</div></div><div class=CToolTip id="tt546"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENTRY_Y</td></tr></table></blockquote>Defines the key for the vertical relative coordinate connection point of an edge with its target terminal.</div></div><div class=CToolTip id="tt547"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_PERIMETER</td></tr></table></blockquote>Defines if the perimeter should be used to find the exact entry point along the perimeter of the source. </div></div><div class=CToolTip id="tt548"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_X</td></tr></table></blockquote>Defines the key for the horizontal relative coordinate connection point of an edge with its source terminal.</div></div><div class=CToolTip id="tt549"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_Y</td></tr></table></blockquote>Defines the key for the vertical relative coordinate connection point of an edge with its source terminal.</div></div><div class=CToolTip id="tt550"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FILLCOLOR</td></tr></table></blockquote>Defines the key for the fill color. </div></div><div class=CToolTip id="tt551"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTCOLOR</td></tr></table></blockquote>Defines the key for the fontColor style. </div></div><div class=CToolTip id="tt552"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTFAMILY</td></tr></table></blockquote>Defines the key for the fontFamily style. </div></div><div class=CToolTip id="tt553"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTSIZE</td></tr></table></blockquote>Defines the key for the fontSize style (in points). </div></div><div class=CToolTip id="tt554"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTSTYLE</td></tr></table></blockquote>Defines the key for the fontStyle style. </div></div><div class=CToolTip id="tt555"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_GRADIENT_DIRECTION</td></tr></table></blockquote>Defines the key for the gradient direction. </div></div><div class=CToolTip id="tt556"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_GRADIENTCOLOR</td></tr></table></blockquote>Defines the key for the gradient color. </div></div><div class=CToolTip id="tt557"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_HORIZONTAL</td></tr></table></blockquote>Defines the key for the horizontal style. </div></div><div class=CToolTip id="tt558"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE</td></tr></table></blockquote>Defines the key for the image style. </div></div><div class=CToolTip id="tt559"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_ALIGN</td></tr></table></blockquote>Defines the key for the align style. </div></div><div class=CToolTip id="tt560"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_BACKGROUND</td></tr></table></blockquote>Defines the key for the image background color. </div></div><div class=CToolTip id="tt561"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_BORDER</td></tr></table></blockquote>Defines the key for the image border color. </div></div><div class=CToolTip id="tt562"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_FLIPH</td></tr></table></blockquote>Defines the key for the horizontal image flip. </div></div><div class=CToolTip id="tt563"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_FLIPV</td></tr></table></blockquote>Defines the key for the vertical image flip. </div></div><div class=CToolTip id="tt564"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_HEIGHT</td></tr></table></blockquote>Defines the key for the imageHeight style. </div></div><div class=CToolTip id="tt565"><div class=CVariable>Defines the key for the verticalAlign style. </div></div><div class=CToolTip id="tt566"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_WIDTH</td></tr></table></blockquote>Defines the key for the imageWidth style. </div></div><div class=CToolTip id="tt567"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_COLOR</td></tr></table></blockquote>Defines the key for the indicatorColor style. </div></div><div class=CToolTip id="tt568"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_GRADIENTCOLOR</td></tr></table></blockquote>Defines the key for the indicatorGradientColor style. </div></div><div class=CToolTip id="tt569"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_HEIGHT</td></tr></table></blockquote>Defines the key for the indicatorHeight style (in px).</div></div><div class=CToolTip id="tt570"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_IMAGE</td></tr></table></blockquote>Defines the key for the indicatorImage style. </div></div><div class=CToolTip id="tt571"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_SHAPE</td></tr></table></blockquote>Defines the key for the indicatorShape style. </div></div><div class=CToolTip id="tt572"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_SPACING</td></tr></table></blockquote>Defines the key for the indicatorSpacing style (in px).</div></div><div class=CToolTip id="tt573"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_WIDTH</td></tr></table></blockquote>Defines the key for the indicatorWidth style (in px).</div></div><div class=CToolTip id="tt574"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_BACKGROUNDCOLOR</td></tr></table></blockquote>Defines the key for the label background color. </div></div><div class=CToolTip id="tt575"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_BORDERCOLOR</td></tr></table></blockquote>Defines the key for the label border color. </div></div><div class=CToolTip id="tt576"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_POSITION</td></tr></table></blockquote>Defines the key for the horizontal label position of vertices. </div></div><div class=CToolTip id="tt577"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LOOP</td></tr></table></blockquote>Defines the key for the loop style. </div></div><div class=CToolTip id="tt578"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_NOEDGESTYLE</td></tr></table></blockquote>Defines the key for the noEdgeStyle style. </div></div><div class=CToolTip id="tt579"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_NOLABEL</td></tr></table></blockquote>Defines the key for the noLabel style. </div></div><div class=CToolTip id="tt580"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_OPACITY</td></tr></table></blockquote>Defines the key for the opacity style. </div></div><div class=CToolTip id="tt581"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ORTHOGONAL</td></tr></table></blockquote>Defines if the connection points on either end of the edge should be computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location. </div></div><div class=CToolTip id="tt582"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_OVERFLOW</td></tr></table></blockquote>Defines the key for the overflow style. </div></div><div class=CToolTip id="tt583"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_PERIMETER</td></tr></table></blockquote>Defines the key for the perimeter style. </div></div><div class=CToolTip id="tt584"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_PERIMETER_SPACING</td></tr></table></blockquote>Defines the key for the perimeter spacing. </div></div><div class=CToolTip id="tt585"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROTATION</td></tr></table></blockquote>Defines the key for the rotation style. </div></div><div class=CToolTip id="tt586"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUNDED</td></tr></table></blockquote>Defines the key for the rounded style. </div></div><div class=CToolTip id="tt587"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUTING_CENTER_X</td></tr></table></blockquote>Defines the key for the horizontal routing center. </div></div><div class=CToolTip id="tt588"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUTING_CENTER_Y</td></tr></table></blockquote>Defines the key for the vertical routing center. </div></div><div class=CToolTip id="tt589"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SEGMENT</td></tr></table></blockquote>Defines the key for the segment style. </div></div><div class=CToolTip id="tt590"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SEPARATORCOLOR</td></tr></table></blockquote>Defines the key for the separatorColor style. </div></div><div class=CToolTip id="tt591"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SHADOW</td></tr></table></blockquote>Defines the key for the shadow style. </div></div><div class=CToolTip id="tt592"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SHAPE</td></tr></table></blockquote>Defines the key for the shape. </div></div><div class=CToolTip id="tt593"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SOURCE_PERIMETER_SPACING</td></tr></table></blockquote>Defines the key for the source perimeter spacing. </div></div><div class=CToolTip id="tt594"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING</td></tr></table></blockquote>Defines the key for the spacing. </div></div><div class=CToolTip id="tt595"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_BOTTOM</td></tr></table></blockquote>Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).</div></div><div class=CToolTip id="tt596"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_LEFT</td></tr></table></blockquote>Defines the key for the spacingLeft style. </div></div><div class=CToolTip id="tt597"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_RIGHT</td></tr></table></blockquote>Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).</div></div><div class=CToolTip id="tt598"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_TOP</td></tr></table></blockquote>Defines the key for the spacingTop style. </div></div><div class=CToolTip id="tt599"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STARTARROW</td></tr></table></blockquote>Defines the key for the startArrow style. </div></div><div class=CToolTip id="tt600"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STARTSIZE</td></tr></table></blockquote>Defines the key for the startSize style. </div></div><div class=CToolTip id="tt601"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STROKECOLOR</td></tr></table></blockquote>Defines the key for the strokeColor style. </div></div><div class=CToolTip id="tt602"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STROKEWIDTH</td></tr></table></blockquote>Defines the key for the strokeWidth style. </div></div><div class=CToolTip id="tt603"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_TARGET_PERIMETER_SPACING</td></tr></table></blockquote>Defines the key for the source perimeter spacing. </div></div><div class=CToolTip id="tt604"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_TEXT_OPACITY</td></tr></table></blockquote>Defines the key for the text opacity style. </div></div><div class=CToolTip id="tt605"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_VERTICAL_ALIGN</td></tr></table></blockquote>Defines the key for the verticalAlign style. </div></div><div class=CToolTip id="tt606"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_VERTICAL_LABEL_POSITION</td></tr></table></blockquote>Defines the key for the vertical label position of vertices. </div></div><div class=CToolTip id="tt607"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_WHITE_SPACE</td></tr></table></blockquote>Defines the key for the white-space style. </div></div><div class=CToolTip id="tt608"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $styles = array()</td></tr></table></blockquote>Maps from names to styles.</div></div><div class=CToolTip id="tt609"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $stylesheet</td></tr></table></blockquote>Holds the mxStylesheet.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex id=MSelected>Everything</div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Interfaces.html b/docs/php-api/index/Interfaces.html
    new file mode 100644
    index 000000000..bccfb17bd
    --- /dev/null
    +++ b/docs/php-api/index/Interfaces.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Interface Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Interface Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; B &middot; C &middot; D &middot; E &middot; F &middot; G &middot; H &middot; I &middot; J &middot; K &middot; L &middot; <a href="#M">M</a> &middot; N &middot; O &middot; P &middot; Q &middot; R &middot; S &middot; T &middot; U &middot; V &middot; W &middot; X &middot; Y &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>mxEdgeStyleFunction</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>mxPerimeterFunction</a></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CInterface>Defines the requirements for an edge style function.</div></div><div class=CToolTip id="tt2"><div class=CInterface>Defines the requirements for a perimeter function.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Interfaces</div></div><div class=MEntry><div class=MIndex><a href="Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Variables.html b/docs/php-api/index/Variables.html
    new file mode 100644
    index 000000000..f2cea9bb7
    --- /dev/null
    +++ b/docs/php-api/index/Variables.html
    @@ -0,0 +1,70 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Variable Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Variable Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; <a href="#B">B</a> &middot; <a href="#C">C</a> &middot; <a href="#D">D</a> &middot; <a href="#E">E</a> &middot; <a href="#F">F</a> &middot; <a href="#G">G</a> &middot; <a href="#H">H</a> &middot; <a href="#I">I</a> &middot; J &middot; K &middot; <a href="#L">L</a> &middot; <a href="Variables2.html#M">M</a> &middot; <a href="Variables2.html#N">N</a> &middot; <a href="Variables2.html#O">O</a> &middot; <a href="Variables2.html#P">P</a> &middot; Q &middot; <a href="Variables2.html#R">R</a> &middot; <a href="Variables3.html#S">S</a> &middot; <a href="Variables4.html#T">T</a> &middot; <a href="Variables4.html#U">U</a> &middot; <a href="Variables4.html#V">V</a> &middot; <a href="Variables4.html#W">W</a> &middot; <a href="Variables4.html#X">X</a> &middot; <a href="Variables4.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.absoluteOffset" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>absoluteOffset</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.absolutePoints" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>absolutePoints</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ACTIVE_REGION" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>ACTIVE_REGION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.aliases" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>aliases</a>, <span class=IParent>mxCodecRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_BOTTOM" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>ALIGN_BOTTOM</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_CENTER" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>ALIGN_CENTER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_LEFT" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>ALIGN_LEFT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_MIDDLE" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>ALIGN_MIDDLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_RIGHT" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>ALIGN_RIGHT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_TOP" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>ALIGN_TOP</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.alternateBounds" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>alternateBounds</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>antialias</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#antialias" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=IParent>Global</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.antialias" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=IParent>mxGdCanvas</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_BLOCK" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>ARROW_BLOCK</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_CLASSIC" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>ARROW_CLASSIC</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_DIAMOND" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>ARROW_DIAMOND</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_OPEN" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>ARROW_OPEN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_OVAL" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>ARROW_OVAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_SIZE" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>ARROW_SIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_SPACING" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>ARROW_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_WIDTH" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>ARROW_WIDTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=IHeading><a name="B"></a>B</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.background" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>background</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.border" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>border</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.boundingBox" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>boundingBox</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=IHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.canvas" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>canvas</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.cell" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>cell</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cells" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>cells</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.children" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>children</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>codecs</span><div class=ISubIndex><a href="../files/model/mxCellPath-php.html#mxCellPath.codecs" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=IParent>mxCellPath</a><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.codecs" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=IParent>mxCodecRegistry</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.collapsed" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=ISymbol>collapsed</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.connectable" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=ISymbol>connectable</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.consumed" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=ISymbol>consumed</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createIds" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=ISymbol>createIds</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.current" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=ISymbol>current</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=IHeading><a name="D"></a>D</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_FONTFAMILY" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=ISymbol>DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_FONTSIZE" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=ISymbol>DEFAULT_FONTSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_IMAGESIZE" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=ISymbol>DEFAULT_IMAGESIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_LINESPACING" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')" class=ISymbol>DEFAULT_LINESPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_MARKERSIZE" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')" class=ISymbol>DEFAULT_MARKERSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_STARTSIZE" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')" class=ISymbol>DEFAULT_STARTSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.defaultLoopStyle" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')" class=ISymbol>defaultLoopStyle</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEG_PER_RAD" id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')" class=ISymbol>DEG_PER_RAD</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_EAST" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')" class=ISymbol>DIRECTION_EAST</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_NORTH" id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')" class=ISymbol>DIRECTION_NORTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_SOUTH" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')" class=ISymbol>DIRECTION_SOUTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_WEST" id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')" class=ISymbol>DIRECTION_WEST</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.document" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')" class=ISymbol>document</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=IHeading><a name="E"></a>E</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.edge" id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')" class=ISymbol>edge</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.edges" id=link50 onMouseOver="ShowTip(event, 'tt50', 'link50')" onMouseOut="HideTip('tt50')" class=ISymbol>edges</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_ENTITY_RELATION" id=link51 onMouseOver="ShowTip(event, 'tt51', 'link51')" onMouseOut="HideTip('tt51')" class=ISymbol>EDGESTYLE_ENTITY_RELATION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_LOOP" id=link52 onMouseOver="ShowTip(event, 'tt52', 'link52')" onMouseOut="HideTip('tt52')" class=ISymbol>EDGESTYLE_LOOP</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_SIDETOSIDE" id=link53 onMouseOver="ShowTip(event, 'tt53', 'link53')" onMouseOut="HideTip('tt53')" class=ISymbol>EDGESTYLE_SIDETOSIDE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_TOPTOBOTTOM" id=link54 onMouseOver="ShowTip(event, 'tt54', 'link54')" onMouseOut="HideTip('tt54')" class=ISymbol>EDGESTYLE_TOPTOBOTTOM</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ELBOW_HORIZONTAL" id=link55 onMouseOver="ShowTip(event, 'tt55', 'link55')" onMouseOut="HideTip('tt55')" class=ISymbol>ELBOW_HORIZONTAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ELBOW_VERTICAL" id=link56 onMouseOver="ShowTip(event, 'tt56', 'link56')" onMouseOut="HideTip('tt56')" class=ISymbol>ELBOW_VERTICAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.ElbowConnector" id=link57 onMouseOver="ShowTip(event, 'tt57', 'link57')" onMouseOut="HideTip('tt57')" class=ISymbol>ElbowConnector</a>, <span class=IParent>mxEdgeStyle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.EllipsePerimeter" id=link58 onMouseOver="ShowTip(event, 'tt58', 'link58')" onMouseOut="HideTip('tt58')" class=ISymbol>EllipsePerimeter</a>, <span class=IParent>mxPerimeter</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.EMPTY_POINT" id=link59 onMouseOver="ShowTip(event, 'tt59', 'link59')" onMouseOut="HideTip('tt59')" class=ISymbol>EMPTY_POINT</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.enableTtf" id=link60 onMouseOver="ShowTip(event, 'tt60', 'link60')" onMouseOut="HideTip('tt60')" class=ISymbol>enableTtf</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.encodeDefaults" id=link61 onMouseOver="ShowTip(event, 'tt61', 'link61')" onMouseOut="HideTip('tt61')" class=ISymbol>encodeDefaults</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ENTITY_SEGMENT" id=link62 onMouseOver="ShowTip(event, 'tt62', 'link62')" onMouseOut="HideTip('tt62')" class=ISymbol>ENTITY_SEGMENT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.EntityRelation" id=link63 onMouseOver="ShowTip(event, 'tt63', 'link63')" onMouseOut="HideTip('tt63')" class=ISymbol>EntityRelation</a>, <span class=IParent>mxEdgeStyle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.eventListeners" id=link64 onMouseOver="ShowTip(event, 'tt64', 'link64')" onMouseOut="HideTip('tt64')" class=ISymbol>eventListeners</a>, <span class=IParent>mxEventSource</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.exclude" id=link65 onMouseOver="ShowTip(event, 'tt65', 'link65')" onMouseOut="HideTip('tt65')" class=ISymbol>exclude</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_BOLD" id=link66 onMouseOver="ShowTip(event, 'tt66', 'link66')" onMouseOut="HideTip('tt66')" class=ISymbol>FONT_BOLD</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_ITALIC" id=link67 onMouseOver="ShowTip(event, 'tt67', 'link67')" onMouseOut="HideTip('tt67')" class=ISymbol>FONT_ITALIC</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_SHADOW" id=link68 onMouseOver="ShowTip(event, 'tt68', 'link68')" onMouseOut="HideTip('tt68')" class=ISymbol>FONT_SHADOW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_UNDERLINE" id=link69 onMouseOver="ShowTip(event, 'tt69', 'link69')" onMouseOut="HideTip('tt69')" class=ISymbol>FONT_UNDERLINE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=IHeading><a name="G"></a>G</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.geometry" id=link70 onMouseOver="ShowTip(event, 'tt70', 'link70')" onMouseOut="HideTip('tt70')" class=ISymbol>geometry</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.graph" id=link71 onMouseOver="ShowTip(event, 'tt71', 'link71')" onMouseOut="HideTip('tt71')" class=ISymbol>graph</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.GRAPH_MODEL_CHANGED" id=link72 onMouseOver="ShowTip(event, 'tt72', 'link72')" onMouseOut="HideTip('tt72')" class=ISymbol>GRAPH_MODEL_CHANGED</a>, <span class=IParent>mxEvent</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.graphBounds" id=link73 onMouseOver="ShowTip(event, 'tt73', 'link73')" onMouseOut="HideTip('tt73')" class=ISymbol>graphBounds</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.gridSize" id=link74 onMouseOver="ShowTip(event, 'tt74', 'link74')" onMouseOut="HideTip('tt74')" class=ISymbol>gridSize</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=IHeading><a name="H"></a>H</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>height</span><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.height" id=link75 onMouseOver="ShowTip(event, 'tt75', 'link75')" onMouseOut="HideTip('tt75')" class=IParent>mxGdCanvas</a><a href="../files/util/mxRectangle-php.html#mxRectangle.height" id=link76 onMouseOver="ShowTip(event, 'tt76', 'link76')" onMouseOut="HideTip('tt76')" class=IParent>mxRectangle</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.html" id=link77 onMouseOver="ShowTip(event, 'tt77', 'link77')" onMouseOut="HideTip('tt77')" class=ISymbol>html</a>, <span class=IParent>mxHtmlCanvas</span></td></tr><tr><td class=IHeading><a name="I"></a>I</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.id" id=link78 onMouseOver="ShowTip(event, 'tt78', 'link78')" onMouseOut="HideTip('tt78')" class=ISymbol>id</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.idrefs" id=link79 onMouseOver="ShowTip(event, 'tt79', 'link79')" onMouseOut="HideTip('tt79')" class=ISymbol>idrefs</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.image" id=link80 onMouseOver="ShowTip(event, 'tt80', 'link80')" onMouseOut="HideTip('tt80')" class=ISymbol>image</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.imageBundles" id=link81 onMouseOver="ShowTip(event, 'tt81', 'link81')" onMouseOut="HideTip('tt81')" class=ISymbol>imageBundles</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.imageCache" id=link82 onMouseOver="ShowTip(event, 'tt82', 'link82')" onMouseOut="HideTip('tt82')" class=ISymbol>imageCache</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.images" id=link83 onMouseOver="ShowTip(event, 'tt83', 'link83')" onMouseOut="HideTip('tt83')" class=ISymbol>images</a>, <span class=IParent>mxImageBundle</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.invalid" id=link84 onMouseOver="ShowTip(event, 'tt84', 'link84')" onMouseOut="HideTip('tt84')" class=ISymbol>invalid</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=IHeading><a name="L"></a>L</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.LABEL_INSET" id=link85 onMouseOver="ShowTip(event, 'tt85', 'link85')" onMouseOut="HideTip('tt85')" class=ISymbol>LABEL_INSET</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.labelBounds" id=link86 onMouseOver="ShowTip(event, 'tt86', 'link86')" onMouseOut="HideTip('tt86')" class=ISymbol>labelBounds</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.labelsVisible" id=link87 onMouseOver="ShowTip(event, 'tt87', 'link87')" onMouseOut="HideTip('tt87')" class=ISymbol>labelsVisible</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.length" id=link88 onMouseOver="ShowTip(event, 'tt88', 'link88')" onMouseOut="HideTip('tt88')" class=ISymbol>length</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_debug" id=link89 onMouseOver="ShowTip(event, 'tt89', 'link89')" onMouseOut="HideTip('tt89')" class=ISymbol>level_debug</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_error" id=link90 onMouseOver="ShowTip(event, 'tt90', 'link90')" onMouseOut="HideTip('tt90')" class=ISymbol>level_error</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_fine" id=link91 onMouseOver="ShowTip(event, 'tt91', 'link91')" onMouseOut="HideTip('tt91')" class=ISymbol>level_fine</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_info" id=link92 onMouseOver="ShowTip(event, 'tt92', 'link92')" onMouseOut="HideTip('tt92')" class=ISymbol>level_info</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_warn" id=link93 onMouseOver="ShowTip(event, 'tt93', 'link93')" onMouseOut="HideTip('tt93')" class=ISymbol>level_warn</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.logfiles" id=link94 onMouseOver="ShowTip(event, 'tt94', 'link94')" onMouseOut="HideTip('tt94')" class=ISymbol>logfiles</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.Loop" id=link95 onMouseOver="ShowTip(event, 'tt95', 'link95')" onMouseOut="HideTip('tt95')" class=ISymbol>Loop</a>, <span class=IParent>mxEdgeStyle</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $absoluteOffset</td></tr></table></blockquote>mxPoint that holds the absolute offset. </div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $absolutePoints</td></tr></table></blockquote>Holds an array of mxPoints that represent the absolute points of an edge.</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ACTIVE_REGION</td></tr></table></blockquote>Defines the portion of the cell which is to be used as a connectable region.</div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $aliases</td></tr></table></blockquote>Maps from classnames to codecnames.</div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_BOTTOM</td></tr></table></blockquote></div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_CENTER</td></tr></table></blockquote></div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_LEFT</td></tr></table></blockquote></div></div><div class=CToolTip id="tt8"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_MIDDLE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt9"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_RIGHT</td></tr></table></blockquote></div></div><div class=CToolTip id="tt10"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ALIGN_TOP</td></tr></table></blockquote></div></div><div class=CToolTip id="tt11"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $alternateBounds</td></tr></table></blockquote>Stores alternate values for x, y, width and height in a rectangle. </div></div><div class=CToolTip id="tt12"><div class=CVariable>Specifies if image aspect should be preserved in drawImage. </div></div><div class=CToolTip id="tt13"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $antialias</td></tr></table></blockquote>Specifies if antialiasing should be enabled. </div></div><div class=CToolTip id="tt14"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_BLOCK</td></tr></table></blockquote></div></div><div class=CToolTip id="tt15"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_CLASSIC</td></tr></table></blockquote></div></div><div class=CToolTip id="tt16"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_DIAMOND</td></tr></table></blockquote></div></div><div class=CToolTip id="tt17"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_OPEN</td></tr></table></blockquote></div></div><div class=CToolTip id="tt18"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_OVAL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt19"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_SIZE</td></tr></table></blockquote>Defines the size of the arrowhead in the arrow shape. </div></div><div class=CToolTip id="tt20"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_SPACING</td></tr></table></blockquote>Defines the spacing between the arrow shape and its terminals. </div></div><div class=CToolTip id="tt21"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ARROW_WIDTH</td></tr></table></blockquote>Defines the width of the arrow shape. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt22"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $background</td></tr></table></blockquote>Holds the background color.</div></div><div class=CToolTip id="tt23"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $border</td></tr></table></blockquote>Holds the border size. </div></div><div class=CToolTip id="tt24"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $boundingBox</td></tr></table></blockquote>Holds the largest rectangle which contains all rendering for this cell.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt25"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $canvas</td></tr></table></blockquote>Holds the canvas.</div></div><div class=CToolTip id="tt26"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $cell</td></tr></table></blockquote>Reference to the mxCell that is represented by this state.</div></div><div class=CToolTip id="tt27"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $cells</td></tr></table></blockquote>Maps from Ids to cells.</div></div><div class=CToolTip id="tt28"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $children</td></tr></table></blockquote>Holds the child cells.</div></div><div class=CToolTip id="tt29"><div class=CVariable>Maps from constructor names to codecs.</div></div><div class=CToolTip id="tt30"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $codecs</td></tr></table></blockquote>Maps from constructor names to codecs.</div></div><div class=CToolTip id="tt31"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $collapsed</td></tr></table></blockquote>Specifies whether the cell is collapsed. </div></div><div class=CToolTip id="tt32"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $connectable</td></tr></table></blockquote>Specifies whether the cell is connectable. </div></div><div class=CToolTip id="tt33"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $consumed</td></tr></table></blockquote>Holds the consumed state of the event. </div></div><div class=CToolTip id="tt34"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $createIds</td></tr></table></blockquote>Specifies if the model should automatically create Ids for new cells. </div></div><div class=CToolTip id="tt35"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $current</td></tr></table></blockquote>Default is true.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt36"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTFAMILY</td></tr></table></blockquote>Defines the default family for all truetype fonts. </div></div><div class=CToolTip id="tt37"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_FONTSIZE</td></tr></table></blockquote>Defines the default size for all fonts in points. </div></div><div class=CToolTip id="tt38"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_IMAGESIZE</td></tr></table></blockquote>Defines the default width and height for images used in the label shape. </div></div><div class=CToolTip id="tt39"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_LINESPACING</td></tr></table></blockquote>Defines the default linespacing. </div></div><div class=CToolTip id="tt40"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_MARKERSIZE</td></tr></table></blockquote>Defines the default size for all markers. </div></div><div class=CToolTip id="tt41"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEFAULT_STARTSIZE</td></tr></table></blockquote>Defines the default start size for swimlanes. </div></div><div class=CToolTip id="tt42"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $defaultLoopStyle</td></tr></table></blockquote>mxEdgeStyle to be used for loops. </div></div><div class=CToolTip id="tt43"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DEG_PER_RAD</td></tr></table></blockquote>Defines the number of degrees per radiant.</div></div><div class=CToolTip id="tt44"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_EAST</td></tr></table></blockquote></div></div><div class=CToolTip id="tt45"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_NORTH</td></tr></table></blockquote></div></div><div class=CToolTip id="tt46"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_SOUTH</td></tr></table></blockquote></div></div><div class=CToolTip id="tt47"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $DIRECTION_WEST</td></tr></table></blockquote></div></div><div class=CToolTip id="tt48"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $document</td></tr></table></blockquote>The owner document of the codec.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt49"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $edge</td></tr></table></blockquote>Specifies whether the cell is an edge. </div></div><div class=CToolTip id="tt50"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $edges</td></tr></table></blockquote>Holds the edges.</div></div><div class=CToolTip id="tt51"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_ENTITY_RELATION</td></tr></table></blockquote>Name of the entity relation edge style. </div></div><div class=CToolTip id="tt52"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_LOOP</td></tr></table></blockquote>Name of the loop edge style. </div></div><div class=CToolTip id="tt53"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_SIDETOSIDE</td></tr></table></blockquote>Name of the side to side edge style. </div></div><div class=CToolTip id="tt54"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EDGESTYLE_TOPTOBOTTOM</td></tr></table></blockquote>Name of the top to bottom edge style. </div></div><div class=CToolTip id="tt55"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ELBOW_HORIZONTAL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt56"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ELBOW_VERTICAL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt57"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ElbowConnector</td></tr></table></blockquote>Provides an elbow connector.</div></div><div class=CToolTip id="tt58"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EllipsePerimeter</td></tr></table></blockquote>Provides an elliptic perimeter.</div></div><div class=CToolTip id="tt59"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $EMPTY_POINT</td></tr></table></blockquote>An empty mxPoint instance.</div></div><div class=CToolTip id="tt60"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $enableTtf</td></tr></table></blockquote>Specifies if truetype fonts are enabled if available. </div></div><div class=CToolTip id="tt61"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $encodeDefaults</td></tr></table></blockquote>Specifies if default values should be encoded. </div></div><div class=CToolTip id="tt62"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $ENTITY_SEGMENT</td></tr></table></blockquote>Defines the length of the horizontal segment of an Entity Relation. </div></div><div class=CToolTip id="tt63"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $EntityRelation</td></tr></table></blockquote>Provides an entity relation style for edges (as used in database schema diagrams).</div></div><div class=CToolTip id="tt64"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $eventListeners</td></tr></table></blockquote>Holds the registered listeners.</div></div><div class=CToolTip id="tt65"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $exclude</td></tr></table></blockquote>Array containing the variable names that should be ignored by the codec.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt66"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_BOLD</td></tr></table></blockquote></div></div><div class=CToolTip id="tt67"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_ITALIC</td></tr></table></blockquote></div></div><div class=CToolTip id="tt68"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_SHADOW</td></tr></table></blockquote></div></div><div class=CToolTip id="tt69"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $FONT_UNDERLINE</td></tr></table></blockquote></div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt70"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $geometry</td></tr></table></blockquote>Holds the mxGeometry. </div></div><div class=CToolTip id="tt71"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $graph</td></tr></table></blockquote>Holds the mxGraph.</div></div><div class=CToolTip id="tt72"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $GRAPH_MODEL_CHANGED</td></tr></table></blockquote>Defines the name of the graphModelChanged event.</div></div><div class=CToolTip id="tt73"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $graphBounds</td></tr></table></blockquote>Holds the bounds of the current view.</div></div><div class=CToolTip id="tt74"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $gridSize</td></tr></table></blockquote>Specifies the grid size. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt75"><div class=CVariable>Holds the height.</div></div><div class=CToolTip id="tt76"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $height</td></tr></table></blockquote>Holds the height of the rectangle. </div></div><div class=CToolTip id="tt77"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $html</td></tr></table></blockquote>Holds the html markup.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt78"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $id</td></tr></table></blockquote>Holds the Id. </div></div><div class=CToolTip id="tt79"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $idrefs</td></tr></table></blockquote>Array containing the variable names that should be turned into or converted from references. </div></div><div class=CToolTip id="tt80"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $image</td></tr></table></blockquote>Holds the image.</div></div><div class=CToolTip id="tt81"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>protected $imageBundles</td></tr></table></blockquote>Holds the list of image bundles.</div></div><div class=CToolTip id="tt82"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $imageCache</td></tr></table></blockquote>Holds the image cache.</div></div><div class=CToolTip id="tt83"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $images</td></tr></table></blockquote>Maps from keys to images.</div></div><div class=CToolTip id="tt84"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $invalid</td></tr></table></blockquote>Specifies if the state is invalid. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt85"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $LABEL_INSET</td></tr></table></blockquote>Defines the inset in absolute pixels between the label bounding box and the label text. </div></div><div class=CToolTip id="tt86"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $labelBounds</td></tr></table></blockquote>Holds the rectangle which contains the label.</div></div><div class=CToolTip id="tt87"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $labelsVisible</td></tr></table></blockquote>Specifies if labels should be visible. </div></div><div class=CToolTip id="tt88"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $length</td></tr></table></blockquote>Caches the length of an edge.</div></div><div class=CToolTip id="tt89"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_debug</td></tr></table></blockquote>Specifies the debug logging level.</div></div><div class=CToolTip id="tt90"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_error</td></tr></table></blockquote>Specifies the error logging level.</div></div><div class=CToolTip id="tt91"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_fine</td></tr></table></blockquote>Specifies the fine logging level.</div></div><div class=CToolTip id="tt92"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_info</td></tr></table></blockquote>Specifies the info logging level.</div></div><div class=CToolTip id="tt93"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $level_warn</td></tr></table></blockquote>Specifies the warn logging level.</div></div><div class=CToolTip id="tt94"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $logfiles</td></tr></table></blockquote>Holds the array of logfiles.</div></div><div class=CToolTip id="tt95"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $Loop</td></tr></table></blockquote>Provides a self-reference, aka. </div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Variables</div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Variables2.html b/docs/php-api/index/Variables2.html
    new file mode 100644
    index 000000000..235f5c111
    --- /dev/null
    +++ b/docs/php-api/index/Variables2.html
    @@ -0,0 +1,50 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Variable Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Variable Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="Variables.html#A">A</a> &middot; <a href="Variables.html#B">B</a> &middot; <a href="Variables.html#C">C</a> &middot; <a href="Variables.html#D">D</a> &middot; <a href="Variables.html#E">E</a> &middot; <a href="Variables.html#F">F</a> &middot; <a href="Variables.html#G">G</a> &middot; <a href="Variables.html#H">H</a> &middot; <a href="Variables.html#I">I</a> &middot; J &middot; K &middot; <a href="Variables.html#L">L</a> &middot; <a href="#M">M</a> &middot; <a href="#N">N</a> &middot; <a href="#O">O</a> &middot; <a href="#P">P</a> &middot; Q &middot; <a href="#R">R</a> &middot; <a href="Variables3.html#S">S</a> &middot; <a href="Variables4.html#T">T</a> &middot; <a href="Variables4.html#U">U</a> &middot; <a href="Variables4.html#V">V</a> &middot; <a href="Variables4.html#W">W</a> &middot; <a href="Variables4.html#X">X</a> &middot; <a href="Variables4.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.maintainEdgeParent" id=link96 onMouseOver="ShowTip(event, 'tt96', 'link96')" onMouseOut="HideTip('tt96')" class=ISymbol>maintainEdgeParent</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.mapping" id=link97 onMouseOver="ShowTip(event, 'tt97', 'link97')" onMouseOut="HideTip('tt97')" class=ISymbol>mapping</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.MIN_ACTIVE_REGION" id=link98 onMouseOver="ShowTip(event, 'tt98', 'link98')" onMouseOut="HideTip('tt98')" class=ISymbol>MIN_ACTIVE_REGION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.model" id=link99 onMouseOver="ShowTip(event, 'tt99', 'link99')" onMouseOut="HideTip('tt99')" class=ISymbol>model</a>, <span class=IParent>mxGraph</span></td></tr><tr><td class=IHeading><a name="N"></a>N</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.name" id=link100 onMouseOver="ShowTip(event, 'tt100', 'link100')" onMouseOut="HideTip('tt100')" class=ISymbol>name</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.nextId" id=link101 onMouseOver="ShowTip(event, 'tt101', 'link101')" onMouseOut="HideTip('tt101')" class=ISymbol>nextId</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NONE" id=link102 onMouseOver="ShowTip(event, 'tt102', 'link102')" onMouseOut="HideTip('tt102')" class=ISymbol>NONE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_SVG" id=link103 onMouseOver="ShowTip(event, 'tt103', 'link103')" onMouseOut="HideTip('tt103')" class=ISymbol>NS_SVG</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_XHTML" id=link104 onMouseOver="ShowTip(event, 'tt104', 'link104')" onMouseOut="HideTip('tt104')" class=ISymbol>NS_XHTML</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_XLINK" id=link105 onMouseOver="ShowTip(event, 'tt105', 'link105')" onMouseOut="HideTip('tt105')" class=ISymbol>NS_XLINK</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=IHeading><a name="O"></a>O</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.objects" id=link106 onMouseOver="ShowTip(event, 'tt106', 'link106')" onMouseOut="HideTip('tt106')" class=ISymbol>objects</a>, <span class=IParent>mxCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.offset" id=link107 onMouseOver="ShowTip(event, 'tt107', 'link107')" onMouseOut="HideTip('tt107')" class=ISymbol>offset</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.origin" id=link108 onMouseOver="ShowTip(event, 'tt108', 'link108')" onMouseOut="HideTip('tt108')" class=ISymbol>origin</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=IHeading><a name="P"></a>P</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.parent" id=link109 onMouseOver="ShowTip(event, 'tt109', 'link109')" onMouseOut="HideTip('tt109')" class=ISymbol>parent</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parser" id=link110 onMouseOver="ShowTip(event, 'tt110', 'link110')" onMouseOut="HideTip('tt110')" class=ISymbol>parser</a>, <span class=IParent>mxGraphViewImageReader</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.perimeter" id=link111 onMouseOver="ShowTip(event, 'tt111', 'link111')" onMouseOut="HideTip('tt111')" class=ISymbol>perimeter</a>, <span class=IParent>mxConnectionConstraint</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_ELLIPSE" id=link112 onMouseOver="ShowTip(event, 'tt112', 'link112')" onMouseOut="HideTip('tt112')" class=ISymbol>PERIMETER_ELLIPSE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_RECTANGLE" id=link113 onMouseOver="ShowTip(event, 'tt113', 'link113')" onMouseOut="HideTip('tt113')" class=ISymbol>PERIMETER_RECTANGLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_RHOMBUS" id=link114 onMouseOver="ShowTip(event, 'tt114', 'link114')" onMouseOut="HideTip('tt114')" class=ISymbol>PERIMETER_RHOMBUS</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_TRIANGLE" id=link115 onMouseOver="ShowTip(event, 'tt115', 'link115')" onMouseOut="HideTip('tt115')" class=ISymbol>PERIMETER_TRIANGLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.point" id=link116 onMouseOver="ShowTip(event, 'tt116', 'link116')" onMouseOut="HideTip('tt116')" class=ISymbol>point</a>, <span class=IParent>mxConnectionConstraint</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.points" id=link117 onMouseOver="ShowTip(event, 'tt117', 'link117')" onMouseOut="HideTip('tt117')" class=ISymbol>points</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.printLog" id=link118 onMouseOver="ShowTip(event, 'tt118', 'link118')" onMouseOut="HideTip('tt118')" class=ISymbol>printLog</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.properties" id=link119 onMouseOver="ShowTip(event, 'tt119', 'link119')" onMouseOut="HideTip('tt119')" class=ISymbol>properties</a>, <span class=IParent>mxEventObject</span></td></tr><tr><td class=IHeading><a name="R"></a>R</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.RAD_PER_DEG" id=link120 onMouseOver="ShowTip(event, 'tt120', 'link120')" onMouseOut="HideTip('tt120')" class=ISymbol>RAD_PER_DEG</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.RectanglePerimeter" id=link121 onMouseOver="ShowTip(event, 'tt121', 'link121')" onMouseOut="HideTip('tt121')" class=ISymbol>RectanglePerimeter</a>, <span class=IParent>mxPerimeter</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.relative" id=link122 onMouseOver="ShowTip(event, 'tt122', 'link122')" onMouseOut="HideTip('tt122')" class=ISymbol>relative</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.reverse" id=link123 onMouseOver="ShowTip(event, 'tt123', 'link123')" onMouseOut="HideTip('tt123')" class=ISymbol>reverse</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.RhombusPerimeter" id=link124 onMouseOver="ShowTip(event, 'tt124', 'link124')" onMouseOut="HideTip('tt124')" class=ISymbol>RhombusPerimeter</a>, <span class=IParent>mxPerimeter</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.root" id=link125 onMouseOver="ShowTip(event, 'tt125', 'link125')" onMouseOut="HideTip('tt125')" class=ISymbol>root</a>, <span class=IParent>mxGraphModel</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt96"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $maintainEdgeParent</td></tr></table></blockquote>Specifies if edges should automatically be moved into the nearest common ancestor of their terminals. </div></div><div class=CToolTip id="tt97"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $mapping</td></tr></table></blockquote>Maps from from fieldnames to XML attribute names.</div></div><div class=CToolTip id="tt98"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $MIN_ACTIVE_REGION</td></tr></table></blockquote>Defines the minimum size in pixels of the portion of the cell cell which is to be used as a connectable region.</div></div><div class=CToolTip id="tt99"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $model</td></tr></table></blockquote>Holds the mxGraphModel.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt100"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $name</td></tr></table></blockquote>Holds the name of the event.</div></div><div class=CToolTip id="tt101"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $nextId</td></tr></table></blockquote>Specifies the next Id to be created. </div></div><div class=CToolTip id="tt102"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NONE</td></tr></table></blockquote>Defines the value for none. </div></div><div class=CToolTip id="tt103"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_SVG</td></tr></table></blockquote>Defines the SVG namespace.</div></div><div class=CToolTip id="tt104"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_XHTML</td></tr></table></blockquote>Defines the XHTML namespace.</div></div><div class=CToolTip id="tt105"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $NS_XLINK</td></tr></table></blockquote>Defined the XLink namespace.</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt106"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $objects</td></tr></table></blockquote>Maps from IDs to objects.</div></div><div class=CToolTip id="tt107"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $offset</td></tr></table></blockquote>Holds the offset of the label for edges. </div></div><div class=CToolTip id="tt108"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $origin</td></tr></table></blockquote>mxPoint that holds the origin for all child cells. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt109"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $parent</td></tr></table></blockquote>Reference to the parent cell.</div></div><div class=CToolTip id="tt110"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $parser</td></tr></table></blockquote>Holds the SAX parser.</div></div><div class=CToolTip id="tt111"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $perimeter</td></tr></table></blockquote>Boolean that specifies if the point should be projected onto the perimeter of the terminal.</div></div><div class=CToolTip id="tt112"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_ELLIPSE</td></tr></table></blockquote>Name of the ellipse perimeter. </div></div><div class=CToolTip id="tt113"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_RECTANGLE</td></tr></table></blockquote>Name of the rectangle perimeter. </div></div><div class=CToolTip id="tt114"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_RHOMBUS</td></tr></table></blockquote>Name of the rhombus perimeter. </div></div><div class=CToolTip id="tt115"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $PERIMETER_TRIANGLE</td></tr></table></blockquote>Name of the triangle perimeter. </div></div><div class=CToolTip id="tt116"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $point</td></tr></table></blockquote>mxPoint that specifies the fixed location of the connection point.</div></div><div class=CToolTip id="tt117"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $points</td></tr></table></blockquote>Array of mxPoints which specifies the control points along the edge. </div></div><div class=CToolTip id="tt118"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $printLog</td></tr></table></blockquote>Specifies if the log should be printed out.</div></div><div class=CToolTip id="tt119"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $properties</td></tr></table></blockquote>Holds the event properties in an associative array that maps from string (key) to object (value).</div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt120"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RAD_PER_DEG</td></tr></table></blockquote>Defines the number of radiants per degree.</div></div><div class=CToolTip id="tt121"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RectanglePerimeter</td></tr></table></blockquote>Provides a rectangular perimeter.</div></div><div class=CToolTip id="tt122"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $relative</td></tr></table></blockquote>Specifies if the coordinates in the geometry are to be interpreted as relative coordinates. </div></div><div class=CToolTip id="tt123"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $reverse</td></tr></table></blockquote>Maps from from XML attribute names to fieldnames.</div></div><div class=CToolTip id="tt124"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $RhombusPerimeter</td></tr></table></blockquote>Provides a rhombus (aka diamond) perimeter.</div></div><div class=CToolTip id="tt125"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $root</td></tr></table></blockquote>Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells. </div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Variables</div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Variables3.html b/docs/php-api/index/Variables3.html
    new file mode 100644
    index 000000000..a2d836176
    --- /dev/null
    +++ b/docs/php-api/index/Variables3.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Variable Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Variable Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="Variables.html#A">A</a> &middot; <a href="Variables.html#B">B</a> &middot; <a href="Variables.html#C">C</a> &middot; <a href="Variables.html#D">D</a> &middot; <a href="Variables.html#E">E</a> &middot; <a href="Variables.html#F">F</a> &middot; <a href="Variables.html#G">G</a> &middot; <a href="Variables.html#H">H</a> &middot; <a href="Variables.html#I">I</a> &middot; J &middot; K &middot; <a href="Variables.html#L">L</a> &middot; <a href="Variables2.html#M">M</a> &middot; <a href="Variables2.html#N">N</a> &middot; <a href="Variables2.html#O">O</a> &middot; <a href="Variables2.html#P">P</a> &middot; Q &middot; <a href="Variables2.html#R">R</a> &middot; <a href="#S">S</a> &middot; <a href="Variables4.html#T">T</a> &middot; <a href="Variables4.html#U">U</a> &middot; <a href="Variables4.html#V">V</a> &middot; <a href="Variables4.html#W">W</a> &middot; <a href="Variables4.html#X">X</a> &middot; <a href="Variables4.html#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="S"></a>S</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>scale</span><div class=ISubIndex><a href="../files/view/mxGraphView-php.html#mxGraphView.scale" id=link126 onMouseOver="ShowTip(event, 'tt126', 'link126')" onMouseOut="HideTip('tt126')" class=IParent>mxGraphView</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.scale" id=link127 onMouseOver="ShowTip(event, 'tt127', 'link127')" onMouseOut="HideTip('tt127')" class=IParent>mxGraphViewImageReader</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.SCALE" id=link128 onMouseOver="ShowTip(event, 'tt128', 'link128')" onMouseOut="HideTip('tt128')" class=ISymbol>SCALE</a>, <span class=IParent>mxEvent</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.segments" id=link129 onMouseOver="ShowTip(event, 'tt129', 'link129')" onMouseOut="HideTip('tt129')" class=ISymbol>segments</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHADOW_OFFSETX" id=link130 onMouseOver="ShowTip(event, 'tt130', 'link130')" onMouseOut="HideTip('tt130')" class=ISymbol>SHADOW_OFFSETX</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHADOW_OFFSETY" id=link131 onMouseOver="ShowTip(event, 'tt131', 'link131')" onMouseOut="HideTip('tt131')" class=ISymbol>SHADOW_OFFSETY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.shadowColor" id=link132 onMouseOver="ShowTip(event, 'tt132', 'link132')" onMouseOut="HideTip('tt132')" class=ISymbol>shadowColor</a>, <span class=IParent>mxGdCanvas</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ACTOR" id=link133 onMouseOver="ShowTip(event, 'tt133', 'link133')" onMouseOut="HideTip('tt133')" class=ISymbol>SHAPE_ACTOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ARROW" id=link134 onMouseOver="ShowTip(event, 'tt134', 'link134')" onMouseOut="HideTip('tt134')" class=ISymbol>SHAPE_ARROW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CLOUD" id=link135 onMouseOver="ShowTip(event, 'tt135', 'link135')" onMouseOut="HideTip('tt135')" class=ISymbol>SHAPE_CLOUD</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CONNECTOR" id=link136 onMouseOver="ShowTip(event, 'tt136', 'link136')" onMouseOut="HideTip('tt136')" class=ISymbol>SHAPE_CONNECTOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CYLINDER" id=link137 onMouseOver="ShowTip(event, 'tt137', 'link137')" onMouseOut="HideTip('tt137')" class=ISymbol>SHAPE_CYLINDER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_DOUBLE_ELLIPSE" id=link138 onMouseOver="ShowTip(event, 'tt138', 'link138')" onMouseOut="HideTip('tt138')" class=ISymbol>SHAPE_DOUBLE_ELLIPSE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ELLIPSE" id=link139 onMouseOver="ShowTip(event, 'tt139', 'link139')" onMouseOut="HideTip('tt139')" class=ISymbol>SHAPE_ELLIPSE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_HEXAGON" id=link140 onMouseOver="ShowTip(event, 'tt140', 'link140')" onMouseOut="HideTip('tt140')" class=ISymbol>SHAPE_HEXAGON</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_IMAGE" id=link141 onMouseOver="ShowTip(event, 'tt141', 'link141')" onMouseOut="HideTip('tt141')" class=ISymbol>SHAPE_IMAGE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_LABEL" id=link142 onMouseOver="ShowTip(event, 'tt142', 'link142')" onMouseOut="HideTip('tt142')" class=ISymbol>SHAPE_LABEL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_LINE" id=link143 onMouseOver="ShowTip(event, 'tt143', 'link143')" onMouseOut="HideTip('tt143')" class=ISymbol>SHAPE_LINE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_RECTANGLE" id=link144 onMouseOver="ShowTip(event, 'tt144', 'link144')" onMouseOut="HideTip('tt144')" class=ISymbol>SHAPE_RECTANGLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_RHOMBUS" id=link145 onMouseOver="ShowTip(event, 'tt145', 'link145')" onMouseOut="HideTip('tt145')" class=ISymbol>SHAPE_RHOMBUS</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_SWIMLANE" id=link146 onMouseOver="ShowTip(event, 'tt146', 'link146')" onMouseOut="HideTip('tt146')" class=ISymbol>SHAPE_SWIMLANE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_TRIANGLE" id=link147 onMouseOver="ShowTip(event, 'tt147', 'link147')" onMouseOut="HideTip('tt147')" class=ISymbol>SHAPE_TRIANGLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.SideToSide" id=link148 onMouseOver="ShowTip(event, 'tt148', 'link148')" onMouseOut="HideTip('tt148')" class=ISymbol>SideToSide</a>, <span class=IParent>mxEdgeStyle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.source" id=link149 onMouseOver="ShowTip(event, 'tt149', 'link149')" onMouseOut="HideTip('tt149')" class=ISymbol>source</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.sourcePoint" id=link150 onMouseOver="ShowTip(event, 'tt150', 'link150')" onMouseOut="HideTip('tt150')" class=ISymbol>sourcePoint</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.sSTYLE_ENTRY_PERIMETER" id=link151 onMouseOver="ShowTip(event, 'tt151', 'link151')" onMouseOut="HideTip('tt151')" class=ISymbol>sSTYLE_ENTRY_PERIMETER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.states" id=link152 onMouseOver="ShowTip(event, 'tt152', 'link152')" onMouseOut="HideTip('tt152')" class=ISymbol>states</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>style</span><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.style" id=link153 onMouseOver="ShowTip(event, 'tt153', 'link153')" onMouseOut="HideTip('tt153')" class=IParent>mxCell</a><a href="../files/view/mxCellState-php.html#mxCellState.style" id=link154 onMouseOver="ShowTip(event, 'tt154', 'link154')" onMouseOut="HideTip('tt154')" class=IParent>mxCellState</a></div></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ALIGN" id=link155 onMouseOver="ShowTip(event, 'tt155', 'link155')" onMouseOut="HideTip('tt155')" class=ISymbol>STYLE_ALIGN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_DASHED" id=link156 onMouseOver="ShowTip(event, 'tt156', 'link156')" onMouseOut="HideTip('tt156')" class=ISymbol>STYLE_DASHED</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_DIRECTION" id=link157 onMouseOver="ShowTip(event, 'tt157', 'link157')" onMouseOut="HideTip('tt157')" class=ISymbol>STYLE_DIRECTION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EDGE" id=link158 onMouseOver="ShowTip(event, 'tt158', 'link158')" onMouseOut="HideTip('tt158')" class=ISymbol>STYLE_EDGE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ELBOW" id=link159 onMouseOver="ShowTip(event, 'tt159', 'link159')" onMouseOut="HideTip('tt159')" class=ISymbol>STYLE_ELBOW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENDARROW" id=link160 onMouseOver="ShowTip(event, 'tt160', 'link160')" onMouseOut="HideTip('tt160')" class=ISymbol>STYLE_ENDARROW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENDSIZE" id=link161 onMouseOver="ShowTip(event, 'tt161', 'link161')" onMouseOut="HideTip('tt161')" class=ISymbol>STYLE_ENDSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENTRY_X" id=link162 onMouseOver="ShowTip(event, 'tt162', 'link162')" onMouseOut="HideTip('tt162')" class=ISymbol>STYLE_ENTRY_X</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENTRY_Y" id=link163 onMouseOver="ShowTip(event, 'tt163', 'link163')" onMouseOut="HideTip('tt163')" class=ISymbol>STYLE_ENTRY_Y</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_PERIMETER" id=link164 onMouseOver="ShowTip(event, 'tt164', 'link164')" onMouseOut="HideTip('tt164')" class=ISymbol>STYLE_EXIT_PERIMETER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_X" id=link165 onMouseOver="ShowTip(event, 'tt165', 'link165')" onMouseOut="HideTip('tt165')" class=ISymbol>STYLE_EXIT_X</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_Y" id=link166 onMouseOver="ShowTip(event, 'tt166', 'link166')" onMouseOut="HideTip('tt166')" class=ISymbol>STYLE_EXIT_Y</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FILLCOLOR" id=link167 onMouseOver="ShowTip(event, 'tt167', 'link167')" onMouseOut="HideTip('tt167')" class=ISymbol>STYLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTCOLOR" id=link168 onMouseOver="ShowTip(event, 'tt168', 'link168')" onMouseOut="HideTip('tt168')" class=ISymbol>STYLE_FONTCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTFAMILY" id=link169 onMouseOver="ShowTip(event, 'tt169', 'link169')" onMouseOut="HideTip('tt169')" class=ISymbol>STYLE_FONTFAMILY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTSIZE" id=link170 onMouseOver="ShowTip(event, 'tt170', 'link170')" onMouseOut="HideTip('tt170')" class=ISymbol>STYLE_FONTSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTSTYLE" id=link171 onMouseOver="ShowTip(event, 'tt171', 'link171')" onMouseOut="HideTip('tt171')" class=ISymbol>STYLE_FONTSTYLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_GRADIENT_DIRECTION" id=link172 onMouseOver="ShowTip(event, 'tt172', 'link172')" onMouseOut="HideTip('tt172')" class=ISymbol>STYLE_GRADIENT_DIRECTION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_GRADIENTCOLOR" id=link173 onMouseOver="ShowTip(event, 'tt173', 'link173')" onMouseOut="HideTip('tt173')" class=ISymbol>STYLE_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_HORIZONTAL" id=link174 onMouseOver="ShowTip(event, 'tt174', 'link174')" onMouseOut="HideTip('tt174')" class=ISymbol>STYLE_HORIZONTAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE" id=link175 onMouseOver="ShowTip(event, 'tt175', 'link175')" onMouseOut="HideTip('tt175')" class=ISymbol>STYLE_IMAGE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_ALIGN" id=link176 onMouseOver="ShowTip(event, 'tt176', 'link176')" onMouseOut="HideTip('tt176')" class=ISymbol>STYLE_IMAGE_ALIGN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_BACKGROUND" id=link177 onMouseOver="ShowTip(event, 'tt177', 'link177')" onMouseOut="HideTip('tt177')" class=ISymbol>STYLE_IMAGE_BACKGROUND</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_BORDER" id=link178 onMouseOver="ShowTip(event, 'tt178', 'link178')" onMouseOut="HideTip('tt178')" class=ISymbol>STYLE_IMAGE_BORDER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_FLIPH" id=link179 onMouseOver="ShowTip(event, 'tt179', 'link179')" onMouseOut="HideTip('tt179')" class=ISymbol>STYLE_IMAGE_FLIPH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_FLIPV" id=link180 onMouseOver="ShowTip(event, 'tt180', 'link180')" onMouseOut="HideTip('tt180')" class=ISymbol>STYLE_IMAGE_FLIPV</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_HEIGHT" id=link181 onMouseOver="ShowTip(event, 'tt181', 'link181')" onMouseOut="HideTip('tt181')" class=ISymbol>STYLE_IMAGE_HEIGHT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_VERTICALALIGN" id=link182 onMouseOver="ShowTip(event, 'tt182', 'link182')" onMouseOut="HideTip('tt182')" class=ISymbol>STYLE_IMAGE_VERTICALALIGN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_WIDTH" id=link183 onMouseOver="ShowTip(event, 'tt183', 'link183')" onMouseOut="HideTip('tt183')" class=ISymbol>STYLE_IMAGE_WIDTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_COLOR" id=link184 onMouseOver="ShowTip(event, 'tt184', 'link184')" onMouseOut="HideTip('tt184')" class=ISymbol>STYLE_INDICATOR_COLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_GRADIENTCOLOR" id=link185 onMouseOver="ShowTip(event, 'tt185', 'link185')" onMouseOut="HideTip('tt185')" class=ISymbol>STYLE_INDICATOR_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_HEIGHT" id=link186 onMouseOver="ShowTip(event, 'tt186', 'link186')" onMouseOut="HideTip('tt186')" class=ISymbol>STYLE_INDICATOR_HEIGHT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_IMAGE" id=link187 onMouseOver="ShowTip(event, 'tt187', 'link187')" onMouseOut="HideTip('tt187')" class=ISymbol>STYLE_INDICATOR_IMAGE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_SHAPE" id=link188 onMouseOver="ShowTip(event, 'tt188', 'link188')" onMouseOut="HideTip('tt188')" class=ISymbol>STYLE_INDICATOR_SHAPE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_SPACING" id=link189 onMouseOver="ShowTip(event, 'tt189', 'link189')" onMouseOut="HideTip('tt189')" class=ISymbol>STYLE_INDICATOR_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_WIDTH" id=link190 onMouseOver="ShowTip(event, 'tt190', 'link190')" onMouseOut="HideTip('tt190')" class=ISymbol>STYLE_INDICATOR_WIDTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_BACKGROUNDCOLOR" id=link191 onMouseOver="ShowTip(event, 'tt191', 'link191')" onMouseOut="HideTip('tt191')" class=ISymbol>STYLE_LABEL_BACKGROUNDCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_BORDERCOLOR" id=link192 onMouseOver="ShowTip(event, 'tt192', 'link192')" onMouseOut="HideTip('tt192')" class=ISymbol>STYLE_LABEL_BORDERCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_POSITION" id=link193 onMouseOver="ShowTip(event, 'tt193', 'link193')" onMouseOut="HideTip('tt193')" class=ISymbol>STYLE_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LOOP" id=link194 onMouseOver="ShowTip(event, 'tt194', 'link194')" onMouseOut="HideTip('tt194')" class=ISymbol>STYLE_LOOP</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_NOEDGESTYLE" id=link195 onMouseOver="ShowTip(event, 'tt195', 'link195')" onMouseOut="HideTip('tt195')" class=ISymbol>STYLE_NOEDGESTYLE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_NOLABEL" id=link196 onMouseOver="ShowTip(event, 'tt196', 'link196')" onMouseOut="HideTip('tt196')" class=ISymbol>STYLE_NOLABEL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_OPACITY" id=link197 onMouseOver="ShowTip(event, 'tt197', 'link197')" onMouseOut="HideTip('tt197')" class=ISymbol>STYLE_OPACITY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ORTHOGONAL" id=link198 onMouseOver="ShowTip(event, 'tt198', 'link198')" onMouseOut="HideTip('tt198')" class=ISymbol>STYLE_ORTHOGONAL</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_OVERFLOW" id=link199 onMouseOver="ShowTip(event, 'tt199', 'link199')" onMouseOut="HideTip('tt199')" class=ISymbol>STYLE_OVERFLOW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_PERIMETER" id=link200 onMouseOver="ShowTip(event, 'tt200', 'link200')" onMouseOut="HideTip('tt200')" class=ISymbol>STYLE_PERIMETER</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_PERIMETER_SPACING" id=link201 onMouseOver="ShowTip(event, 'tt201', 'link201')" onMouseOut="HideTip('tt201')" class=ISymbol>STYLE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROTATION" id=link202 onMouseOver="ShowTip(event, 'tt202', 'link202')" onMouseOut="HideTip('tt202')" class=ISymbol>STYLE_ROTATION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUNDED" id=link203 onMouseOver="ShowTip(event, 'tt203', 'link203')" onMouseOut="HideTip('tt203')" class=ISymbol>STYLE_ROUNDED</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUTING_CENTER_X" id=link204 onMouseOver="ShowTip(event, 'tt204', 'link204')" onMouseOut="HideTip('tt204')" class=ISymbol>STYLE_ROUTING_CENTER_X</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUTING_CENTER_Y" id=link205 onMouseOver="ShowTip(event, 'tt205', 'link205')" onMouseOut="HideTip('tt205')" class=ISymbol>STYLE_ROUTING_CENTER_Y</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SEGMENT" id=link206 onMouseOver="ShowTip(event, 'tt206', 'link206')" onMouseOut="HideTip('tt206')" class=ISymbol>STYLE_SEGMENT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SEPARATORCOLOR" id=link207 onMouseOver="ShowTip(event, 'tt207', 'link207')" onMouseOut="HideTip('tt207')" class=ISymbol>STYLE_SEPARATORCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SHADOW" id=link208 onMouseOver="ShowTip(event, 'tt208', 'link208')" onMouseOut="HideTip('tt208')" class=ISymbol>STYLE_SHADOW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SHAPE" id=link209 onMouseOver="ShowTip(event, 'tt209', 'link209')" onMouseOut="HideTip('tt209')" class=ISymbol>STYLE_SHAPE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SOURCE_PERIMETER_SPACING" id=link210 onMouseOver="ShowTip(event, 'tt210', 'link210')" onMouseOut="HideTip('tt210')" class=ISymbol>STYLE_SOURCE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING" id=link211 onMouseOver="ShowTip(event, 'tt211', 'link211')" onMouseOut="HideTip('tt211')" class=ISymbol>STYLE_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_BOTTOM" id=link212 onMouseOver="ShowTip(event, 'tt212', 'link212')" onMouseOut="HideTip('tt212')" class=ISymbol>STYLE_SPACING_BOTTOM</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_LEFT" id=link213 onMouseOver="ShowTip(event, 'tt213', 'link213')" onMouseOut="HideTip('tt213')" class=ISymbol>STYLE_SPACING_LEFT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_RIGHT" id=link214 onMouseOver="ShowTip(event, 'tt214', 'link214')" onMouseOut="HideTip('tt214')" class=ISymbol>STYLE_SPACING_RIGHT</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_TOP" id=link215 onMouseOver="ShowTip(event, 'tt215', 'link215')" onMouseOut="HideTip('tt215')" class=ISymbol>STYLE_SPACING_TOP</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STARTARROW" id=link216 onMouseOver="ShowTip(event, 'tt216', 'link216')" onMouseOut="HideTip('tt216')" class=ISymbol>STYLE_STARTARROW</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STARTSIZE" id=link217 onMouseOver="ShowTip(event, 'tt217', 'link217')" onMouseOut="HideTip('tt217')" class=ISymbol>STYLE_STARTSIZE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STROKECOLOR" id=link218 onMouseOver="ShowTip(event, 'tt218', 'link218')" onMouseOut="HideTip('tt218')" class=ISymbol>STYLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STROKEWIDTH" id=link219 onMouseOver="ShowTip(event, 'tt219', 'link219')" onMouseOut="HideTip('tt219')" class=ISymbol>STYLE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_TARGET_PERIMETER_SPACING" id=link220 onMouseOver="ShowTip(event, 'tt220', 'link220')" onMouseOut="HideTip('tt220')" class=ISymbol>STYLE_TARGET_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_TEXT_OPACITY" id=link221 onMouseOver="ShowTip(event, 'tt221', 'link221')" onMouseOut="HideTip('tt221')" class=ISymbol>STYLE_TEXT_OPACITY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_VERTICAL_ALIGN" id=link222 onMouseOver="ShowTip(event, 'tt222', 'link222')" onMouseOut="HideTip('tt222')" class=ISymbol>STYLE_VERTICAL_ALIGN</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_VERTICAL_LABEL_POSITION" id=link223 onMouseOver="ShowTip(event, 'tt223', 'link223')" onMouseOut="HideTip('tt223')" class=ISymbol>STYLE_VERTICAL_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_WHITE_SPACE" id=link224 onMouseOver="ShowTip(event, 'tt224', 'link224')" onMouseOut="HideTip('tt224')" class=ISymbol>STYLE_WHITE_SPACE</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.stylesheet" id=link225 onMouseOver="ShowTip(event, 'tt225', 'link225')" onMouseOut="HideTip('tt225')" class=ISymbol>stylesheet</a>, <span class=IParent>mxGraph</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt126"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $scale</td></tr></table></blockquote>Holds the current scale.</div></div><div class=CToolTip id="tt127"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $scale</td></tr></table></blockquote>Holds the global scale of the graph. </div></div><div class=CToolTip id="tt128"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SCALE</td></tr></table></blockquote>Defines the name of the scale event.</div></div><div class=CToolTip id="tt129"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $segments</td></tr></table></blockquote>Array of numbers that represent the cached length of each segment of the edge.</div></div><div class=CToolTip id="tt130"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHADOW_OFFSETX</td></tr></table></blockquote>Defines the x-offset to be used for shadows. </div></div><div class=CToolTip id="tt131"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHADOW_OFFSETY</td></tr></table></blockquote>Defines the y-offset to be used for shadows. </div></div><div class=CToolTip id="tt132"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $shadowColor</td></tr></table></blockquote>Holds the color object for the shadow color defined in mxConstants.W3C_SHADOWCOLOR.</div></div><div class=CToolTip id="tt133"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ACTOR</td></tr></table></blockquote></div></div><div class=CToolTip id="tt134"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ARROW</td></tr></table></blockquote></div></div><div class=CToolTip id="tt135"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CLOUD</td></tr></table></blockquote></div></div><div class=CToolTip id="tt136"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CONNECTOR</td></tr></table></blockquote></div></div><div class=CToolTip id="tt137"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_CYLINDER</td></tr></table></blockquote></div></div><div class=CToolTip id="tt138"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_DOUBLE_ELLIPSE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt139"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_ELLIPSE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt140"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_HEXAGON</td></tr></table></blockquote></div></div><div class=CToolTip id="tt141"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_IMAGE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt142"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_LABEL</td></tr></table></blockquote></div></div><div class=CToolTip id="tt143"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_LINE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt144"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_RECTANGLE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt145"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_RHOMBUS</td></tr></table></blockquote></div></div><div class=CToolTip id="tt146"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_SWIMLANE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt147"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SHAPE_TRIANGLE</td></tr></table></blockquote></div></div><div class=CToolTip id="tt148"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $SideToSide</td></tr></table></blockquote>Provides a side to side connector.</div></div><div class=CToolTip id="tt149"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $source</td></tr></table></blockquote>Reference to the source terminal.</div></div><div class=CToolTip id="tt150"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $sourcePoint</td></tr></table></blockquote>Defines the source point of the edge. </div></div><div class=CToolTip id="tt151"><div class=CVariable>Defines if the perimeter should be used to find the exact entry point along the perimeter of the target. </div></div><div class=CToolTip id="tt152"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $states</td></tr></table></blockquote>Maps from cells to states.</div></div><div class=CToolTip id="tt153"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $style</td></tr></table></blockquote>Holds the style as a string of the form [(stylename|key=value);]. </div></div><div class=CToolTip id="tt154"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $style</td></tr></table></blockquote>Contains an array of key, value pairs that represent the style of the cell.</div></div><div class=CToolTip id="tt155"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ALIGN</td></tr></table></blockquote>Defines the key for the align style. </div></div><div class=CToolTip id="tt156"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_DASHED</td></tr></table></blockquote>Defines the key for the endSize style. </div></div><div class=CToolTip id="tt157"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_DIRECTION</td></tr></table></blockquote>Defines the key for the direction style. </div></div><div class=CToolTip id="tt158"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EDGE</td></tr></table></blockquote>Defines the key for the edge style. </div></div><div class=CToolTip id="tt159"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ELBOW</td></tr></table></blockquote>Defines the key for the elbow style. </div></div><div class=CToolTip id="tt160"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENDARROW</td></tr></table></blockquote>Defines the key for the endArrow style. </div></div><div class=CToolTip id="tt161"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENDSIZE</td></tr></table></blockquote>Defines the key for the endSize style. </div></div><div class=CToolTip id="tt162"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENTRY_X</td></tr></table></blockquote>Defines the key for the horizontal relative coordinate connection point of an edge with its target terminal.</div></div><div class=CToolTip id="tt163"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ENTRY_Y</td></tr></table></blockquote>Defines the key for the vertical relative coordinate connection point of an edge with its target terminal.</div></div><div class=CToolTip id="tt164"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_PERIMETER</td></tr></table></blockquote>Defines if the perimeter should be used to find the exact entry point along the perimeter of the source. </div></div><div class=CToolTip id="tt165"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_X</td></tr></table></blockquote>Defines the key for the horizontal relative coordinate connection point of an edge with its source terminal.</div></div><div class=CToolTip id="tt166"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_EXIT_Y</td></tr></table></blockquote>Defines the key for the vertical relative coordinate connection point of an edge with its source terminal.</div></div><div class=CToolTip id="tt167"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FILLCOLOR</td></tr></table></blockquote>Defines the key for the fill color. </div></div><div class=CToolTip id="tt168"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTCOLOR</td></tr></table></blockquote>Defines the key for the fontColor style. </div></div><div class=CToolTip id="tt169"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTFAMILY</td></tr></table></blockquote>Defines the key for the fontFamily style. </div></div><div class=CToolTip id="tt170"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTSIZE</td></tr></table></blockquote>Defines the key for the fontSize style (in points). </div></div><div class=CToolTip id="tt171"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_FONTSTYLE</td></tr></table></blockquote>Defines the key for the fontStyle style. </div></div><div class=CToolTip id="tt172"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_GRADIENT_DIRECTION</td></tr></table></blockquote>Defines the key for the gradient direction. </div></div><div class=CToolTip id="tt173"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_GRADIENTCOLOR</td></tr></table></blockquote>Defines the key for the gradient color. </div></div><div class=CToolTip id="tt174"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_HORIZONTAL</td></tr></table></blockquote>Defines the key for the horizontal style. </div></div><div class=CToolTip id="tt175"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE</td></tr></table></blockquote>Defines the key for the image style. </div></div><div class=CToolTip id="tt176"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_ALIGN</td></tr></table></blockquote>Defines the key for the align style. </div></div><div class=CToolTip id="tt177"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_BACKGROUND</td></tr></table></blockquote>Defines the key for the image background color. </div></div><div class=CToolTip id="tt178"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_BORDER</td></tr></table></blockquote>Defines the key for the image border color. </div></div><div class=CToolTip id="tt179"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_FLIPH</td></tr></table></blockquote>Defines the key for the horizontal image flip. </div></div><div class=CToolTip id="tt180"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_FLIPV</td></tr></table></blockquote>Defines the key for the vertical image flip. </div></div><div class=CToolTip id="tt181"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_HEIGHT</td></tr></table></blockquote>Defines the key for the imageHeight style. </div></div><div class=CToolTip id="tt182"><div class=CVariable>Defines the key for the verticalAlign style. </div></div><div class=CToolTip id="tt183"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_IMAGE_WIDTH</td></tr></table></blockquote>Defines the key for the imageWidth style. </div></div><div class=CToolTip id="tt184"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_COLOR</td></tr></table></blockquote>Defines the key for the indicatorColor style. </div></div><div class=CToolTip id="tt185"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_GRADIENTCOLOR</td></tr></table></blockquote>Defines the key for the indicatorGradientColor style. </div></div><div class=CToolTip id="tt186"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_HEIGHT</td></tr></table></blockquote>Defines the key for the indicatorHeight style (in px).</div></div><div class=CToolTip id="tt187"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_IMAGE</td></tr></table></blockquote>Defines the key for the indicatorImage style. </div></div><div class=CToolTip id="tt188"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_SHAPE</td></tr></table></blockquote>Defines the key for the indicatorShape style. </div></div><div class=CToolTip id="tt189"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_SPACING</td></tr></table></blockquote>Defines the key for the indicatorSpacing style (in px).</div></div><div class=CToolTip id="tt190"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_INDICATOR_WIDTH</td></tr></table></blockquote>Defines the key for the indicatorWidth style (in px).</div></div><div class=CToolTip id="tt191"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_BACKGROUNDCOLOR</td></tr></table></blockquote>Defines the key for the label background color. </div></div><div class=CToolTip id="tt192"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_BORDERCOLOR</td></tr></table></blockquote>Defines the key for the label border color. </div></div><div class=CToolTip id="tt193"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LABEL_POSITION</td></tr></table></blockquote>Defines the key for the horizontal label position of vertices. </div></div><div class=CToolTip id="tt194"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_LOOP</td></tr></table></blockquote>Defines the key for the loop style. </div></div><div class=CToolTip id="tt195"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_NOEDGESTYLE</td></tr></table></blockquote>Defines the key for the noEdgeStyle style. </div></div><div class=CToolTip id="tt196"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_NOLABEL</td></tr></table></blockquote>Defines the key for the noLabel style. </div></div><div class=CToolTip id="tt197"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_OPACITY</td></tr></table></blockquote>Defines the key for the opacity style. </div></div><div class=CToolTip id="tt198"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ORTHOGONAL</td></tr></table></blockquote>Defines if the connection points on either end of the edge should be computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location. </div></div><div class=CToolTip id="tt199"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_OVERFLOW</td></tr></table></blockquote>Defines the key for the overflow style. </div></div><div class=CToolTip id="tt200"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_PERIMETER</td></tr></table></blockquote>Defines the key for the perimeter style. </div></div><div class=CToolTip id="tt201"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_PERIMETER_SPACING</td></tr></table></blockquote>Defines the key for the perimeter spacing. </div></div><div class=CToolTip id="tt202"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROTATION</td></tr></table></blockquote>Defines the key for the rotation style. </div></div><div class=CToolTip id="tt203"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUNDED</td></tr></table></blockquote>Defines the key for the rounded style. </div></div><div class=CToolTip id="tt204"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUTING_CENTER_X</td></tr></table></blockquote>Defines the key for the horizontal routing center. </div></div><div class=CToolTip id="tt205"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_ROUTING_CENTER_Y</td></tr></table></blockquote>Defines the key for the vertical routing center. </div></div><div class=CToolTip id="tt206"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SEGMENT</td></tr></table></blockquote>Defines the key for the segment style. </div></div><div class=CToolTip id="tt207"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SEPARATORCOLOR</td></tr></table></blockquote>Defines the key for the separatorColor style. </div></div><div class=CToolTip id="tt208"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SHADOW</td></tr></table></blockquote>Defines the key for the shadow style. </div></div><div class=CToolTip id="tt209"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SHAPE</td></tr></table></blockquote>Defines the key for the shape. </div></div><div class=CToolTip id="tt210"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SOURCE_PERIMETER_SPACING</td></tr></table></blockquote>Defines the key for the source perimeter spacing. </div></div><div class=CToolTip id="tt211"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING</td></tr></table></blockquote>Defines the key for the spacing. </div></div><div class=CToolTip id="tt212"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_BOTTOM</td></tr></table></blockquote>Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).</div></div><div class=CToolTip id="tt213"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_LEFT</td></tr></table></blockquote>Defines the key for the spacingLeft style. </div></div><div class=CToolTip id="tt214"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_RIGHT</td></tr></table></blockquote>Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).</div></div><div class=CToolTip id="tt215"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_SPACING_TOP</td></tr></table></blockquote>Defines the key for the spacingTop style. </div></div><div class=CToolTip id="tt216"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STARTARROW</td></tr></table></blockquote>Defines the key for the startArrow style. </div></div><div class=CToolTip id="tt217"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STARTSIZE</td></tr></table></blockquote>Defines the key for the startSize style. </div></div><div class=CToolTip id="tt218"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STROKECOLOR</td></tr></table></blockquote>Defines the key for the strokeColor style. </div></div><div class=CToolTip id="tt219"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_STROKEWIDTH</td></tr></table></blockquote>Defines the key for the strokeWidth style. </div></div><div class=CToolTip id="tt220"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_TARGET_PERIMETER_SPACING</td></tr></table></blockquote>Defines the key for the source perimeter spacing. </div></div><div class=CToolTip id="tt221"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_TEXT_OPACITY</td></tr></table></blockquote>Defines the key for the text opacity style. </div></div><div class=CToolTip id="tt222"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_VERTICAL_ALIGN</td></tr></table></blockquote>Defines the key for the verticalAlign style. </div></div><div class=CToolTip id="tt223"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_VERTICAL_LABEL_POSITION</td></tr></table></blockquote>Defines the key for the vertical label position of vertices. </div></div><div class=CToolTip id="tt224"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $STYLE_WHITE_SPACE</td></tr></table></blockquote>Defines the key for the white-space style. </div></div><div class=CToolTip id="tt225"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $stylesheet</td></tr></table></blockquote>Holds the mxStylesheet.</div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Variables</div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/index/Variables4.html b/docs/php-api/index/Variables4.html
    new file mode 100644
    index 000000000..a65c15c92
    --- /dev/null
    +++ b/docs/php-api/index/Variables4.html
    @@ -0,0 +1,54 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><title>Variable Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=IPageTitle>Variable Index</div><div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="Variables.html#A">A</a> &middot; <a href="Variables.html#B">B</a> &middot; <a href="Variables.html#C">C</a> &middot; <a href="Variables.html#D">D</a> &middot; <a href="Variables.html#E">E</a> &middot; <a href="Variables.html#F">F</a> &middot; <a href="Variables.html#G">G</a> &middot; <a href="Variables.html#H">H</a> &middot; <a href="Variables.html#I">I</a> &middot; J &middot; K &middot; <a href="Variables.html#L">L</a> &middot; <a href="Variables2.html#M">M</a> &middot; <a href="Variables2.html#N">N</a> &middot; <a href="Variables2.html#O">O</a> &middot; <a href="Variables2.html#P">P</a> &middot; Q &middot; <a href="Variables2.html#R">R</a> &middot; <a href="Variables3.html#S">S</a> &middot; <a href="#T">T</a> &middot; <a href="#U">U</a> &middot; <a href="#V">V</a> &middot; <a href="#W">W</a> &middot; <a href="#X">X</a> &middot; <a href="#Y">Y</a> &middot; Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="T"></a>T</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxLog-php.html#mxLog.tab" id=link226 onMouseOver="ShowTip(event, 'tt226', 'link226')" onMouseOut="HideTip('tt226')" class=ISymbol>tab</a>, <span class=IParent>mxLog</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.target" id=link227 onMouseOver="ShowTip(event, 'tt227', 'link227')" onMouseOut="HideTip('tt227')" class=ISymbol>target</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.targetPoint" id=link228 onMouseOver="ShowTip(event, 'tt228', 'link228')" onMouseOut="HideTip('tt228')" class=ISymbol>targetPoint</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.template" id=link229 onMouseOver="ShowTip(event, 'tt229', 'link229')" onMouseOut="HideTip('tt229')" class=ISymbol>template</a>, <span class=IParent>mxObjectCodec</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.terminalDistance" id=link230 onMouseOver="ShowTip(event, 'tt230', 'link230')" onMouseOut="HideTip('tt230')" class=ISymbol>terminalDistance</a>, <span class=IParent>mxCellState</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.TopToBottom" id=link231 onMouseOver="ShowTip(event, 'tt231', 'link231')" onMouseOut="HideTip('tt231')" class=ISymbol>TopToBottom</a>, <span class=IParent>mxEdgeStyle</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.translate" id=link232 onMouseOver="ShowTip(event, 'tt232', 'link232')" onMouseOut="HideTip('tt232')" class=ISymbol>translate</a>, <span class=IParent>mxGraphView</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.TRANSLATE" id=link233 onMouseOver="ShowTip(event, 'tt233', 'link233')" onMouseOut="HideTip('tt233')" class=ISymbol>TRANSLATE</a>, <span class=IParent>mxEvent</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.TRANSLATE_CONTROL_POINTS" id=link234 onMouseOver="ShowTip(event, 'tt234', 'link234')" onMouseOut="HideTip('tt234')" class=ISymbol>TRANSLATE_CONTROL_POINTS</a>, <span class=IParent>mxGeometry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.TrianglePerimeter" id=link235 onMouseOver="ShowTip(event, 'tt235', 'link235')" onMouseOut="HideTip('tt235')" class=ISymbol>TrianglePerimeter</a>, <span class=IParent>mxPerimeter</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.TTF_ENABLED" id=link236 onMouseOver="ShowTip(event, 'tt236', 'link236')" onMouseOut="HideTip('tt236')" class=ISymbol>TTF_ENABLED</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.TTF_SIZEFACTOR" id=link237 onMouseOver="ShowTip(event, 'tt237', 'link237')" onMouseOut="HideTip('tt237')" class=ISymbol>TTF_SIZEFACTOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=IHeading><a name="U"></a>U</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateLevel" id=link238 onMouseOver="ShowTip(event, 'tt238', 'link238')" onMouseOut="HideTip('tt238')" class=ISymbol>updateLevel</a>, <span class=IParent>mxGraphModel</span></td></tr><tr><td class=IHeading><a name="V"></a>V</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.value" id=link239 onMouseOver="ShowTip(event, 'tt239', 'link239')" onMouseOut="HideTip('tt239')" class=ISymbol>value</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.values" id=link240 onMouseOver="ShowTip(event, 'tt240', 'link240')" onMouseOut="HideTip('tt240')" class=ISymbol>values</a>, <span class=IParent>mxStyleRegistry</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.vertex" id=link241 onMouseOver="ShowTip(event, 'tt241', 'link241')" onMouseOut="HideTip('tt241')" class=ISymbol>vertex</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><span class=ISymbol>view</span><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState.view" id=link242 onMouseOver="ShowTip(event, 'tt242', 'link242')" onMouseOut="HideTip('tt242')" class=IParent>mxCellState</a><a href="../files/view/mxGraph-php.html#mxGraph.view" id=link243 onMouseOver="ShowTip(event, 'tt243', 'link243')" onMouseOut="HideTip('tt243')" class=IParent>mxGraph</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/model/mxCell-php.html#mxCell.visible" id=link244 onMouseOver="ShowTip(event, 'tt244', 'link244')" onMouseOut="HideTip('tt244')" class=ISymbol>visible</a>, <span class=IParent>mxCell</span></td></tr><tr><td class=IHeading><a name="W"></a>W</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.W3C_DEFAULT_FONTFAMILY" id=link245 onMouseOver="ShowTip(event, 'tt245', 'link245')" onMouseOut="HideTip('tt245')" class=ISymbol>W3C_DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.W3C_SHADOWCOLOR" id=link246 onMouseOver="ShowTip(event, 'tt246', 'link246')" onMouseOut="HideTip('tt246')" class=ISymbol>W3C_SHADOWCOLOR</a>, <span class=IParent>mxConstants</span></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.width" id=link247 onMouseOver="ShowTip(event, 'tt247', 'link247')" onMouseOut="HideTip('tt247')" class=ISymbol>width</a>, <span class=IParent>mxRectangle</span></td></tr><tr><td class=IHeading><a name="X"></a>X</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.x" id=link248 onMouseOver="ShowTip(event, 'tt248', 'link248')" onMouseOut="HideTip('tt248')" class=ISymbol>x</a>, <span class=IParent>mxPoint</span></td></tr><tr><td class=IHeading><a name="Y"></a>Y</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td><td class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.y" id=link249 onMouseOver="ShowTip(event, 'tt249', 'link249')" onMouseOut="HideTip('tt249')" class=ISymbol>y</a>, <span class=IParent>mxPoint</span></td></tr></table>
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt226"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $tab</td></tr></table></blockquote>Default is true.</div></div><div class=CToolTip id="tt227"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $target</td></tr></table></blockquote>Reference to the target terminal.</div></div><div class=CToolTip id="tt228"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $targetPoint</td></tr></table></blockquote>Defines the target point of the edge. </div></div><div class=CToolTip id="tt229"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $template</td></tr></table></blockquote>Holds the template object associated with this codec.</div></div><div class=CToolTip id="tt230"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $terminalDistance</td></tr></table></blockquote>Caches the distance between the end points for an edge.</div></div><div class=CToolTip id="tt231"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TopToBottom</td></tr></table></blockquote>Provides a top to bottom connector.</div></div><div class=CToolTip id="tt232"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $translate</td></tr></table></blockquote>Holds the current translate.</div></div><div class=CToolTip id="tt233"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TRANSLATE</td></tr></table></blockquote>Defines the name of the translate event.</div></div><div class=CToolTip id="tt234"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TRANSLATE_CONTROL_POINTS</td></tr></table></blockquote>Global switch to translate the points in translate. </div></div><div class=CToolTip id="tt235"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TrianglePerimeter</td></tr></table></blockquote>Provides a triangle perimeter. </div></div><div class=CToolTip id="tt236"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TTF_ENABLED</td></tr></table></blockquote>Whether TrueType fonts should be enabled in the mxGdCanvas by default. </div></div><div class=CToolTip id="tt237"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $TTF_SIZEFACTOR</td></tr></table></blockquote>Defines the factor which wich the font sizes are to be multiplied when used in truetype fonts. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt238"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $updateLevel</td></tr></table></blockquote>Counter for the depth of nested transactions. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt239"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $value</td></tr></table></blockquote>Holds the user object. </div></div><div class=CToolTip id="tt240"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $values</td></tr></table></blockquote>Maps from strings to objects.</div></div><div class=CToolTip id="tt241"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $vertex</td></tr></table></blockquote>Specifies whether the cell is a vertex. </div></div><div class=CToolTip id="tt242"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $view</td></tr></table></blockquote>Reference to the enclosing mxGraphView.</div></div><div class=CToolTip id="tt243"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $view</td></tr></table></blockquote>Holds the mxGraphView.</div></div><div class=CToolTip id="tt244"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $visible</td></tr></table></blockquote>Specifies whether the cell is visible. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt245"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $W3C_DEFAULT_FONTFAMILY</td></tr></table></blockquote>Defines the default family for HTML markup. </div></div><div class=CToolTip id="tt246"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>public static $W3C_SHADOWCOLOR</td></tr></table></blockquote>Defines the color to be used to draw shadows in DOM documents.</div></div><div class=CToolTip id="tt247"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $width</td></tr></table></blockquote>Holds the width of the rectangle. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt248"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $x</td></tr></table></blockquote>Holds the x-coordinate of the point. </div></div><!--END_ND_TOOLTIPS-->
    +
    +
    +<!--START_ND_TOOLTIPS-->
    +<div class=CToolTip id="tt249"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>var $y</td></tr></table></blockquote>Holds the y-coordinate of the point. </div></div><!--END_ND_TOOLTIPS-->
    +
    +</div><!--Index-->
    +
    +
    +<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
    +
    +
    +<div id=Menu><div class=MEntry><div class=MFile><a href="../files/index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxGdCanvas-php.html">canvas/<wbr>mxGdCanvas.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Io</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/io/mxCellCodec-php.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodec-php.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxCodecRegistry-php.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxModelCodec-php.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxObjectCodec-php.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../files/io/mxStylesheetCodec-php.html">mxStylesheetCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Model</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/model/mxCell-php.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxCellPath-php.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGeometry-php.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../files/model/mxGraphModel-php.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewHtmlReader-php.html">mxGraphViewHtmlReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/reader/mxGraphViewImageReader-php.html">mxGraphViewImageReader</a></div></div><div class=MEntry><div class=MFile><a href="../files/canvas/mxHtmlCanvas-php.html">mxHtmlCanvas</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Util</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../files/util/mxConstants-php.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEvent-php.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventObject-php.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxEventSource-php.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxImageBundle-php.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxLog-php.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxPoint-php.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxRectangle-php.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../files/util/mxUtils-php.html">mxUtils</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">View</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../files/view/mxCellState-php.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxConnectionConstraint-php.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxEdgeStyle-php.html">mxEdgeStyleFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraph-php.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxGraphView-php.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxPerimeter-php.html">mxPerimeterFunction</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStyleRegistry-php.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../files/view/mxStylesheet-php.html">mxStylesheet</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="Interfaces.html">Interfaces</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Variables</div></div></div></div></div><script type="text/javascript"><!--
    +var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
    +--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Interfaces">Interfaces</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
    +HideAllBut([5, 4], 6);// --></script></div><!--Menu-->
    +
    +
    +<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
    +
    +
    +<script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/javascript/main.js b/docs/php-api/javascript/main.js
    new file mode 100644
    index 000000000..3f42acde6
    --- /dev/null
    +++ b/docs/php-api/javascript/main.js
    @@ -0,0 +1,841 @@
    +// This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
    +// Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
    +// Refer to License.txt for the complete details
    +
    +// This file may be distributed with documentation files generated by Natural Docs.
    +// Such documentation is not covered by Natural Docs' copyright and licensing,
    +// and may have its own copyright and distribution terms as decided by its author.
    +
    +
    +//
    +//  Browser Styles
    +// ____________________________________________________________________________
    +
    +var agt=navigator.userAgent.toLowerCase();
    +var browserType;
    +var browserVer;
    +
    +if (agt.indexOf("opera") != -1)
    +    {
    +    browserType = "Opera";
    +
    +    if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
    +        {  browserVer = "Opera7";  }
    +    else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1)
    +        {  browserVer = "Opera8";  }
    +    else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1)
    +        {  browserVer = "Opera9";  }
    +    }
    +
    +else if (agt.indexOf("applewebkit") != -1)
    +    {
    +    browserType = "Safari";
    +
    +    if (agt.indexOf("version/3") != -1)
    +        {  browserVer = "Safari3";  }
    +    else if (agt.indexOf("safari/4") != -1)
    +        {  browserVer = "Safari2";  }
    +    }
    +
    +else if (agt.indexOf("khtml") != -1)
    +    {
    +    browserType = "Konqueror";
    +    }
    +
    +else if (agt.indexOf("msie") != -1)
    +    {
    +    browserType = "IE";
    +
    +    if (agt.indexOf("msie 6") != -1)
    +        {  browserVer = "IE6";  }
    +    else if (agt.indexOf("msie 7") != -1)
    +        {  browserVer = "IE7";  }
    +    }
    +
    +else if (agt.indexOf("gecko") != -1)
    +    {
    +    browserType = "Firefox";
    +
    +    if (agt.indexOf("rv:1.7") != -1)
    +        {  browserVer = "Firefox1";  }
    +    else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1)
    +        {  browserVer = "Firefox15";  }
    +    else if (agt.indexOf("rv:1.8.1") != -1)
    +        {  browserVer = "Firefox2";  }
    +    }
    +
    +
    +//
    +//  Support Functions
    +// ____________________________________________________________________________
    +
    +
    +function GetXPosition(item)
    +    {
    +    var position = 0;
    +
    +    if (item.offsetWidth != null)
    +        {
    +        while (item != document.body && item != null)
    +            {
    +            position += item.offsetLeft;
    +            item = item.offsetParent;
    +            };
    +        };
    +
    +    return position;
    +    };
    +
    +
    +function GetYPosition(item)
    +    {
    +    var position = 0;
    +
    +    if (item.offsetWidth != null)
    +        {
    +        while (item != document.body && item != null)
    +            {
    +            position += item.offsetTop;
    +            item = item.offsetParent;
    +            };
    +        };
    +
    +    return position;
    +    };
    +
    +
    +function MoveToPosition(item, x, y)
    +    {
    +    // Opera 5 chokes on the px extension, so it can use the Microsoft one instead.
    +
    +    if (item.style.left != null)
    +        {
    +        item.style.left = x + "px";
    +        item.style.top = y + "px";
    +        }
    +    else if (item.style.pixelLeft != null)
    +        {
    +        item.style.pixelLeft = x;
    +        item.style.pixelTop = y;
    +        };
    +    };
    +
    +
    +//
    +//  Menu
    +// ____________________________________________________________________________
    +
    +
    +function ToggleMenu(id)
    +    {
    +    if (!window.document.getElementById)
    +        {  return;  };
    +
    +    var display = window.document.getElementById(id).style.display;
    +
    +    if (display == "none")
    +        {  display = "block";  }
    +    else
    +        {  display = "none";  }
    +
    +    window.document.getElementById(id).style.display = display;
    +    }
    +
    +function HideAllBut(ids, max)
    +    {
    +    if (document.getElementById)
    +        {
    +        ids.sort( function(a,b) { return a - b; } );
    +        var number = 1;
    +
    +        while (number < max)
    +            {
    +            if (ids.length > 0 && number == ids[0])
    +                {  ids.shift();  }
    +            else
    +                {
    +                document.getElementById("MGroupContent" + number).style.display = "none";
    +                };
    +
    +            number++;
    +            };
    +        };
    +    }
    +
    +
    +//
    +//  Tooltips
    +// ____________________________________________________________________________
    +
    +
    +var tooltipTimer = 0;
    +
    +function ShowTip(event, tooltipID, linkID)
    +    {
    +    if (tooltipTimer)
    +        {  clearTimeout(tooltipTimer);  };
    +
    +    var docX = event.clientX + window.pageXOffset;
    +    var docY = event.clientY + window.pageYOffset;
    +
    +    var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")";
    +
    +    tooltipTimer = setTimeout(showCommand, 1000);
    +    }
    +
    +function ReallyShowTip(tooltipID, linkID, docX, docY)
    +    {
    +    tooltipTimer = 0;
    +
    +    var tooltip;
    +    var link;
    +
    +    if (document.getElementById)
    +        {
    +        tooltip = document.getElementById(tooltipID);
    +        link = document.getElementById(linkID);
    +        }
    +/*    else if (document.all)
    +        {
    +        tooltip = eval("document.all['" + tooltipID + "']");
    +        link = eval("document.all['" + linkID + "']");
    +        }
    +*/
    +    if (tooltip)
    +        {
    +        var left = GetXPosition(link);
    +        var top = GetYPosition(link);
    +        top += link.offsetHeight;
    +
    +
    +        // The fallback method is to use the mouse X and Y relative to the document.  We use a separate if and test if its a number
    +        // in case some browser snuck through the above if statement but didn't support everything.
    +
    +        if (!isFinite(top) || top == 0)
    +            {
    +            left = docX;
    +            top = docY;
    +            }
    +
    +        // Some spacing to get it out from under the cursor.
    +
    +        top += 10;
    +
    +        // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the
    +        // page.  We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right.
    +
    +        if (tooltip.offsetWidth != null)
    +            {
    +            var width = tooltip.offsetWidth;
    +            var docWidth = document.body.clientWidth;
    +
    +            if (left + width > docWidth)
    +                {  left = docWidth - width - 1;  }
    +
    +            // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width.
    +            if (left < 0)
    +                {  left = 0;  };
    +            }
    +
    +        MoveToPosition(tooltip, left, top);
    +        tooltip.style.visibility = "visible";
    +        }
    +    }
    +
    +function HideTip(tooltipID)
    +    {
    +    if (tooltipTimer)
    +        {
    +        clearTimeout(tooltipTimer);
    +        tooltipTimer = 0;
    +        }
    +
    +    var tooltip;
    +
    +    if (document.getElementById)
    +        {  tooltip = document.getElementById(tooltipID); }
    +    else if (document.all)
    +        {  tooltip = eval("document.all['" + tooltipID + "']");  }
    +
    +    if (tooltip)
    +        {  tooltip.style.visibility = "hidden";  }
    +    }
    +
    +
    +//
    +//  Blockquote fix for IE
    +// ____________________________________________________________________________
    +
    +
    +function NDOnLoad()
    +    {
    +    if (browserVer == "IE6")
    +        {
    +        var scrollboxes = document.getElementsByTagName('blockquote');
    +
    +        if (scrollboxes.item(0))
    +            {
    +            NDDoResize();
    +            window.onresize=NDOnResize;
    +            };
    +        };
    +    };
    +
    +
    +var resizeTimer = 0;
    +
    +function NDOnResize()
    +    {
    +    if (resizeTimer != 0)
    +        {  clearTimeout(resizeTimer);  };
    +
    +    resizeTimer = setTimeout(NDDoResize, 250);
    +    };
    +
    +
    +function NDDoResize()
    +    {
    +    var scrollboxes = document.getElementsByTagName('blockquote');
    +
    +    var i;
    +    var item;
    +
    +    i = 0;
    +    while (item = scrollboxes.item(i))
    +        {
    +        item.style.width = 100;
    +        i++;
    +        };
    +
    +    i = 0;
    +    while (item = scrollboxes.item(i))
    +        {
    +        item.style.width = item.parentNode.offsetWidth;
    +        i++;
    +        };
    +
    +    clearTimeout(resizeTimer);
    +    resizeTimer = 0;
    +    }
    +
    +
    +
    +/* ________________________________________________________________________________________________________
    +
    +    Class: SearchPanel
    +    ________________________________________________________________________________________________________
    +
    +    A class handling everything associated with the search panel.
    +
    +    Parameters:
    +
    +        name - The name of the global variable that will be storing this instance.  Is needed to be able to set timeouts.
    +        mode - The mode the search is going to work in.  Pass <NaturalDocs::Builder::Base->CommandLineOption()>, so the
    +                   value will be something like "HTML" or "FramedHTML".
    +
    +    ________________________________________________________________________________________________________
    +*/
    +
    +
    +function SearchPanel(name, mode, resultsPath)
    +    {
    +    if (!name || !mode || !resultsPath)
    +        {  alert("Incorrect parameters to SearchPanel.");  };
    +
    +
    +    // Group: Variables
    +    // ________________________________________________________________________
    +
    +    /*
    +        var: name
    +        The name of the global variable that will be storing this instance of the class.
    +    */
    +    this.name = name;
    +
    +    /*
    +        var: mode
    +        The mode the search is going to work in, such as "HTML" or "FramedHTML".
    +    */
    +    this.mode = mode;
    +
    +    /*
    +        var: resultsPath
    +        The relative path from the current HTML page to the results page directory.
    +    */
    +    this.resultsPath = resultsPath;
    +
    +    /*
    +        var: keyTimeout
    +        The timeout used between a keystroke and when a search is performed.
    +    */
    +    this.keyTimeout = 0;
    +
    +    /*
    +        var: keyTimeoutLength
    +        The length of <keyTimeout> in thousandths of a second.
    +    */
    +    this.keyTimeoutLength = 500;
    +
    +    /*
    +        var: lastSearchValue
    +        The last search string executed, or an empty string if none.
    +    */
    +    this.lastSearchValue = "";
    +
    +    /*
    +        var: lastResultsPage
    +        The last results page.  The value is only relevant if <lastSearchValue> is set.
    +    */
    +    this.lastResultsPage = "";
    +
    +    /*
    +        var: deactivateTimeout
    +
    +        The timeout used between when a control is deactivated and when the entire panel is deactivated.  Is necessary
    +        because a control may be deactivated in favor of another control in the same panel, in which case it should stay
    +        active.
    +    */
    +    this.deactivateTimout = 0;
    +
    +    /*
    +        var: deactivateTimeoutLength
    +        The length of <deactivateTimeout> in thousandths of a second.
    +    */
    +    this.deactivateTimeoutLength = 200;
    +
    +
    +
    +
    +    // Group: DOM Elements
    +    // ________________________________________________________________________
    +
    +
    +    // Function: DOMSearchField
    +    this.DOMSearchField = function()
    +        {  return document.getElementById("MSearchField");  };
    +
    +    // Function: DOMSearchType
    +    this.DOMSearchType = function()
    +        {  return document.getElementById("MSearchType");  };
    +
    +    // Function: DOMPopupSearchResults
    +    this.DOMPopupSearchResults = function()
    +        {  return document.getElementById("MSearchResults");  };
    +
    +    // Function: DOMPopupSearchResultsWindow
    +    this.DOMPopupSearchResultsWindow = function()
    +        {  return document.getElementById("MSearchResultsWindow");  };
    +
    +    // Function: DOMSearchPanel
    +    this.DOMSearchPanel = function()
    +        {  return document.getElementById("MSearchPanel");  };
    +
    +
    +
    +
    +    // Group: Event Handlers
    +    // ________________________________________________________________________
    +
    +
    +    /*
    +        Function: OnSearchFieldFocus
    +        Called when focus is added or removed from the search field.
    +    */
    +    this.OnSearchFieldFocus = function(isActive)
    +        {
    +        this.Activate(isActive);
    +        };
    +
    +
    +    /*
    +        Function: OnSearchFieldChange
    +        Called when the content of the search field is changed.
    +    */
    +    this.OnSearchFieldChange = function()
    +        {
    +        if (this.keyTimeout)
    +            {
    +            clearTimeout(this.keyTimeout);
    +            this.keyTimeout = 0;
    +            };
    +
    +        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
    +
    +        if (searchValue != this.lastSearchValue)
    +            {
    +            if (searchValue != "")
    +                {
    +                this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength);
    +                }
    +            else
    +                {
    +                if (this.mode == "HTML")
    +                    {  this.DOMPopupSearchResultsWindow().style.display = "none";  };
    +                this.lastSearchValue = "";
    +                };
    +            };
    +        };
    +
    +
    +    /*
    +        Function: OnSearchTypeFocus
    +        Called when focus is added or removed from the search type.
    +    */
    +    this.OnSearchTypeFocus = function(isActive)
    +        {
    +        this.Activate(isActive);
    +        };
    +
    +
    +    /*
    +        Function: OnSearchTypeChange
    +        Called when the search type is changed.
    +    */
    +    this.OnSearchTypeChange = function()
    +        {
    +        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
    +
    +        if (searchValue != "")
    +            {
    +            this.Search();
    +            };
    +        };
    +
    +
    +
    +    // Group: Action Functions
    +    // ________________________________________________________________________
    +
    +
    +    /*
    +        Function: CloseResultsWindow
    +        Closes the results window.
    +    */
    +    this.CloseResultsWindow = function()
    +        {
    +        this.DOMPopupSearchResultsWindow().style.display = "none";
    +        this.Activate(false, true);
    +        };
    +
    +
    +    /*
    +        Function: Search
    +        Performs a search.
    +    */
    +    this.Search = function()
    +        {
    +        this.keyTimeout = 0;
    +
    +        var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
    +        var searchTopic = this.DOMSearchType().value;
    +
    +        var pageExtension = searchValue.substr(0,1);
    +
    +        if (pageExtension.match(/^[a-z]/i))
    +            {  pageExtension = pageExtension.toUpperCase();  }
    +        else if (pageExtension.match(/^[0-9]/))
    +            {  pageExtension = 'Numbers';  }
    +        else
    +            {  pageExtension = "Symbols";  };
    +
    +        var resultsPage;
    +        var resultsPageWithSearch;
    +        var hasResultsPage;
    +
    +        // indexSectionsWithContent is defined in searchdata.js
    +        if (indexSectionsWithContent[searchTopic][pageExtension] == true)
    +            {
    +            resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html';
    +            resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
    +            hasResultsPage = true;
    +            }
    +        else
    +            {
    +            resultsPage = this.resultsPath + '/NoResults.html';
    +            resultsPageWithSearch = resultsPage;
    +            hasResultsPage = false;
    +            };
    +
    +        var resultsFrame;
    +        if (this.mode == "HTML")
    +            {  resultsFrame = window.frames.MSearchResults;  }
    +        else if (this.mode == "FramedHTML")
    +            {  resultsFrame = window.top.frames['Content'];  };
    +
    +
    +        if (resultsPage != this.lastResultsPage ||
    +
    +            // Bug in IE.  If everything becomes hidden in a run, none of them will be able to be reshown in the next for some
    +            // reason.  It counts the right number of results, and you can even read the display as "block" after setting it, but it
    +            // just doesn't work in IE 6 or IE 7.  So if we're on the right page but the previous search had no results, reload the
    +            // page anyway to get around the bug.
    +            (browserType == "IE" && hasResultsPage &&
    +            	(!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
    +
    +            {
    +            resultsFrame.location.href = resultsPageWithSearch;
    +            }
    +
    +        // So if the results page is right and there's no IE bug, reperform the search on the existing page.  We have to check if there
    +        // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even
    +        // if it did.
    +        else if (hasResultsPage)
    +            {
    +            // We need to check if this exists in case the frame is present but didn't finish loading.
    +            if (resultsFrame.searchResults)
    +                {  resultsFrame.searchResults.Search(searchValue);  }
    +
    +            // Otherwise just reload instead of waiting.
    +            else
    +                {  resultsFrame.location.href = resultsPageWithSearch;  };
    +            };
    +
    +
    +        var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
    +
    +        if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block")
    +            {
    +            var domSearchType = this.DOMSearchType();
    +
    +            var left = GetXPosition(domSearchType);
    +            var top = GetYPosition(domSearchType) + domSearchType.offsetHeight;
    +
    +            MoveToPosition(domPopupSearchResultsWindow, left, top);
    +            domPopupSearchResultsWindow.style.display = 'block';
    +            };
    +
    +
    +        this.lastSearchValue = searchValue;
    +        this.lastResultsPage = resultsPage;
    +        };
    +
    +
    +
    +    // Group: Activation Functions
    +    // Functions that handle whether the entire panel is active or not.
    +    // ________________________________________________________________________
    +
    +
    +    /*
    +        Function: Activate
    +
    +        Activates or deactivates the search panel, resetting things to their default values if necessary.  You can call this on every
    +        control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently.
    +
    +        Parameters:
    +
    +            isActive - Whether you're activating or deactivating the panel.
    +            ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay.
    +    */
    +    this.Activate = function(isActive, ignoreDeactivateDelay)
    +        {
    +        // We want to ignore isActive being false while the results window is open.
    +        if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block"))
    +            {
    +            if (this.inactivateTimeout)
    +                {
    +                clearTimeout(this.inactivateTimeout);
    +                this.inactivateTimeout = 0;
    +                };
    +
    +            this.DOMSearchPanel().className = 'MSearchPanelActive';
    +
    +            var searchField = this.DOMSearchField();
    +
    +            if (searchField.value == 'Search')
    +                 {  searchField.value = "";  }
    +            }
    +        else if (!ignoreDeactivateDelay)
    +            {
    +            this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength);
    +            }
    +        else
    +            {
    +            this.InactivateAfterTimeout();
    +            };
    +        };
    +
    +
    +    /*
    +        Function: InactivateAfterTimeout
    +
    +        Called by <inactivateTimeout>, which is set by <Activate()>.  Inactivation occurs on a timeout because a control may
    +        receive OnBlur() when focus is really transferring to another control in the search panel.  In this case we don't want to
    +        actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value.
    +        So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation.
    +    */
    +    this.InactivateAfterTimeout = function()
    +        {
    +        this.inactivateTimeout = 0;
    +
    +        this.DOMSearchPanel().className = 'MSearchPanelInactive';
    +        this.DOMSearchField().value = "Search";
    +
    +	    this.lastSearchValue = "";
    +	    this.lastResultsPage = "";
    +        };
    +    };
    +
    +
    +
    +
    +/* ________________________________________________________________________________________________________
    +
    +   Class: SearchResults
    +   _________________________________________________________________________________________________________
    +
    +   The class that handles everything on the search results page.
    +   _________________________________________________________________________________________________________
    +*/
    +
    +
    +function SearchResults(name, mode)
    +    {
    +    /*
    +        var: mode
    +        The mode the search is going to work in, such as "HTML" or "FramedHTML".
    +    */
    +    this.mode = mode;
    +
    +    /*
    +        var: lastMatchCount
    +        The number of matches from the last run of <Search()>.
    +    */
    +    this.lastMatchCount = 0;
    +
    +
    +    /*
    +        Function: Toggle
    +        Toggles the visibility of the passed element ID.
    +    */
    +    this.Toggle = function(id)
    +        {
    +        if (this.mode == "FramedHTML")
    +            {  return;  };
    +
    +        var parentElement = document.getElementById(id);
    +
    +        var element = parentElement.firstChild;
    +
    +        while (element && element != parentElement)
    +            {
    +            if (element.nodeName == 'DIV' && element.className == 'ISubIndex')
    +                {
    +                if (element.style.display == 'block')
    +                    {  element.style.display = "none";  }
    +                else
    +                    {  element.style.display = 'block';  }
    +                };
    +
    +            if (element.nodeName == 'DIV' && element.hasChildNodes())
    +                {  element = element.firstChild;  }
    +            else if (element.nextSibling)
    +                {  element = element.nextSibling;  }
    +            else
    +                {
    +                do
    +                    {
    +                    element = element.parentNode;
    +                    }
    +                while (element && element != parentElement && !element.nextSibling);
    +
    +                if (element && element != parentElement)
    +                    {  element = element.nextSibling;  };
    +                };
    +            };
    +        };
    +
    +
    +    /*
    +        Function: Search
    +
    +        Searches for the passed string.  If there is no parameter, it takes it from the URL query.
    +
    +        Always returns true, since other documents may try to call it and that may or may not be possible.
    +    */
    +    this.Search = function(search)
    +        {
    +        if (!search)
    +            {
    +            search = window.location.search;
    +            search = search.substring(1);  // Remove the leading ?
    +            search = unescape(search);
    +            };
    +
    +        search = search.replace(/^ +/, "");
    +        search = search.replace(/ +$/, "");
    +        search = search.toLowerCase();
    +
    +        if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily.
    +            {
    +            search = search.replace(/\_/g, "_und");
    +            search = search.replace(/\ +/gi, "_spc");
    +            search = search.replace(/\~/g, "_til");
    +            search = search.replace(/\!/g, "_exc");
    +            search = search.replace(/\@/g, "_att");
    +            search = search.replace(/\#/g, "_num");
    +            search = search.replace(/\$/g, "_dol");
    +            search = search.replace(/\%/g, "_pct");
    +            search = search.replace(/\^/g, "_car");
    +            search = search.replace(/\&/g, "_amp");
    +            search = search.replace(/\*/g, "_ast");
    +            search = search.replace(/\(/g, "_lpa");
    +            search = search.replace(/\)/g, "_rpa");
    +            search = search.replace(/\-/g, "_min");
    +            search = search.replace(/\+/g, "_plu");
    +            search = search.replace(/\=/g, "_equ");
    +            search = search.replace(/\{/g, "_lbc");
    +            search = search.replace(/\}/g, "_rbc");
    +            search = search.replace(/\[/g, "_lbk");
    +            search = search.replace(/\]/g, "_rbk");
    +            search = search.replace(/\:/g, "_col");
    +            search = search.replace(/\;/g, "_sco");
    +            search = search.replace(/\"/g, "_quo");
    +            search = search.replace(/\'/g, "_apo");
    +            search = search.replace(/\</g, "_lan");
    +            search = search.replace(/\>/g, "_ran");
    +            search = search.replace(/\,/g, "_com");
    +            search = search.replace(/\./g, "_per");
    +            search = search.replace(/\?/g, "_que");
    +            search = search.replace(/\//g, "_sla");
    +            search = search.replace(/[^a-z0-9\_]i/gi, "_zzz");
    +            };
    +
    +        var resultRows = document.getElementsByTagName("div");
    +        var matches = 0;
    +
    +        var i = 0;
    +        while (i < resultRows.length)
    +            {
    +            var row = resultRows.item(i);
    +
    +            if (row.className == "SRResult")
    +                {
    +                var rowMatchName = row.id.toLowerCase();
    +                rowMatchName = rowMatchName.replace(/^sr\d*_/, '');
    +
    +                if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search)
    +                    {
    +                    row.style.display = "block";
    +                    matches++;
    +                    }
    +                else
    +                    {  row.style.display = "none";  };
    +                };
    +
    +            i++;
    +            };
    +
    +        document.getElementById("Searching").style.display="none";
    +
    +        if (matches == 0)
    +            {  document.getElementById("NoMatches").style.display="block";  }
    +        else
    +            {  document.getElementById("NoMatches").style.display="none";  }
    +
    +        this.lastMatchCount = matches;
    +
    +        return true;
    +        };
    +    };
    +
    diff --git a/docs/php-api/javascript/prettify.js b/docs/php-api/javascript/prettify.js
    new file mode 100644
    index 000000000..50a8d0ff1
    --- /dev/null
    +++ b/docs/php-api/javascript/prettify.js
    @@ -0,0 +1,1526 @@
    +
    +// This code comes from the December 2009 release of Google Prettify, which is Copyright © 2006 Google Inc.
    +// Minor modifications are marked with "ND Change" comments.
    +// As part of Natural Docs, this code is licensed under version 3 of the GNU Affero General Public License (AGPL.)
    +// However, it may also be obtained separately under version 2.0 of the Apache License.
    +// Refer to License.txt for the complete details
    +
    +
    +// Main code
    +// ____________________________________________________________________________
    +
    +// Copyright (C) 2006 Google Inc.
    +//
    +// Licensed under the Apache License, Version 2.0 (the "License");
    +// you may not use this file except in compliance with the License.
    +// You may obtain a copy of the License at
    +//
    +//      http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing, software
    +// distributed under the License is distributed on an "AS IS" BASIS,
    +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +// See the License for the specific language governing permissions and
    +// limitations under the License.
    +
    +
    +/**
    + * @fileoverview
    + * some functions for browser-side pretty printing of code contained in html.
    + * <p>
    + *
    + * For a fairly comprehensive set of languages see the
    + * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
    + * file that came with this source.  At a minimum, the lexer should work on a
    + * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
    + * XML, CSS, Javascript, and Makefiles.  It works passably on Ruby, PHP and Awk
    + * and a subset of Perl, but, because of commenting conventions, doesn't work on
    + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
    + * <p>
    + * Usage: <ol>
    + * <li> include this source file in an html page via
    + *   {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
    + * <li> define style rules.  See the example page for examples.
    + * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
    + *    {@code class=prettyprint.}
    + *    You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
    + *    printer needs to do more substantial DOM manipulations to support that, so
    + *    some css styles may not be preserved.
    + * </ol>
    + * That's it.  I wanted to keep the API as simple as possible, so there's no
    + * need to specify which language the code is in, but if you wish, you can add
    + * another class to the {@code <pre>} or {@code <code>} element to specify the
    + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    + * starts with "lang-" followed by a file extension, specifies the file type.
    + * See the "lang-*.js" files in this directory for code that implements
    + * per-language file handlers.
    + * <p>
    + * Change log:<br>
    + * cbeust, 2006/08/22
    + * <blockquote>
    + *   Java annotations (start with "@") are now captured as literals ("lit")
    + * </blockquote>
    + * @requires console
    + * @overrides window
    + */
    +
    +// JSLint declarations
    +/*global console, document, navigator, setTimeout, window */
    +
    +/**
    + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    + * UI events.
    + * If set to {@code false}, {@code prettyPrint()} is synchronous.
    + */
    +window['PR_SHOULD_USE_CONTINUATION'] = true;
    +
    +/** the number of characters between tab columns */
    +window['PR_TAB_WIDTH'] = 8;
    +
    +/** Walks the DOM returning a properly escaped version of innerHTML.
    +  * @param {Node} node
    +  * @param {Array.<string>} out output buffer that receives chunks of HTML.
    +  */
    +window['PR_normalizedHtml']
    +
    +/** Contains functions for creating and registering new language handlers.
    +  * @type {Object}
    +  */
    +  = window['PR']
    +
    +/** Pretty print a chunk of code.
    +  *
    +  * @param {string} sourceCodeHtml code as html
    +  * @return {string} code as html, but prettier
    +  */
    +  = window['prettyPrintOne']
    +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    +  * {@code class=prettyprint} and prettify them.
    +  * @param {Function?} opt_whenDone if specified, called when the last entry
    +  *     has been finished.
    +  */
    +  = window['prettyPrint'] = void 0;
    +
    +/** browser detection. @extern @returns false if not IE, otherwise the major version. */
    +window['_pr_isIE6'] = function () {
    +  var ieVersion = navigator && navigator.userAgent &&
    +      navigator.userAgent.match(/\bMSIE ([678])\./);
    +  ieVersion = ieVersion ? +ieVersion[1] : false;
    +  window['_pr_isIE6'] = function () { return ieVersion; };
    +  return ieVersion;
    +};
    +
    +
    +(function () {
    +  // Keyword lists for various languages.
    +  var FLOW_CONTROL_KEYWORDS =
    +      "break continue do else for if return while ";
    +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
    +      "double enum extern float goto int long register short signed sizeof " +
    +      "static struct switch typedef union unsigned void volatile ";
    +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
    +      "new operator private protected public this throw true try typeof ";
    +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
    +      "concept concept_map const_cast constexpr decltype " +
    +      "dynamic_cast explicit export friend inline late_check " +
    +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
    +      "template typeid typename using virtual wchar_t where ";
    +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
    +      "abstract boolean byte extends final finally implements import " +
    +      "instanceof null native package strictfp super synchronized throws " +
    +      "transient ";
    +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
    +      "as base by checked decimal delegate descending event " +
    +      "fixed foreach from group implicit in interface internal into is lock " +
    +      "object out override orderby params partial readonly ref sbyte sealed " +
    +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
    +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
    +      "debugger eval export function get null set undefined var with " +
    +      "Infinity NaN ";
    +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
    +      "goto if import last local my next no our print package redo require " +
    +      "sub undef unless until use wantarray while BEGIN END ";
    +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
    +      "elif except exec finally from global import in is lambda " +
    +      "nonlocal not or pass print raise try with yield " +
    +      "False True None ";
    +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
    +      " defined elsif end ensure false in module next nil not or redo rescue " +
    +      "retry self super then true undef unless until when yield BEGIN END ";
    +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
    +      "function in local set then until ";
    +  var ALL_KEYWORDS = (
    +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
    +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
    +
    +  // token style names.  correspond to css classes
    +  /** token style for a string literal */
    +  var PR_STRING = 'str';
    +  /** token style for a keyword */
    +  var PR_KEYWORD = 'kwd';
    +  /** token style for a comment */
    +  var PR_COMMENT = 'com';
    +  /** token style for a type */
    +  var PR_TYPE = 'typ';
    +  /** token style for a literal value.  e.g. 1, null, true. */
    +  var PR_LITERAL = 'lit';
    +  /** token style for a punctuation string. */
    +  var PR_PUNCTUATION = 'pun';
    +  /** token style for a punctuation string. */
    +  var PR_PLAIN = 'pln';
    +
    +  /** token style for an sgml tag. */
    +  var PR_TAG = 'tag';
    +  /** token style for a markup declaration such as a DOCTYPE. */
    +  var PR_DECLARATION = 'dec';
    +  /** token style for embedded source. */
    +  var PR_SOURCE = 'src';
    +  /** token style for an sgml attribute name. */
    +  var PR_ATTRIB_NAME = 'atn';
    +  /** token style for an sgml attribute value. */
    +  var PR_ATTRIB_VALUE = 'atv';
    +
    +  /**
    +   * A class that indicates a section of markup that is not code, e.g. to allow
    +   * embedding of line numbers within code listings.
    +   */
    +  var PR_NOCODE = 'nocode';
    +
    +  /** A set of tokens that can precede a regular expression literal in
    +    * javascript.
    +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
    +    * list, but I've removed ones that might be problematic when seen in
    +    * languages that don't support regular expression literals.
    +    *
    +    * <p>Specifically, I've removed any keywords that can't precede a regexp
    +    * literal in a syntactically legal javascript program, and I've removed the
    +    * "in" keyword since it's not a keyword in many languages, and might be used
    +    * as a count of inches.
    +    *
    +    * <p>The link a above does not accurately describe EcmaScript rules since
    +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    +    * very well in practice.
    +    *
    +    * @private
    +    */
    +  var REGEXP_PRECEDER_PATTERN = function () {
    +      var preceders = [
    +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
    +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
    +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
    +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
    +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
    +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
    +          "||=", "~" /* handles =~ and !~ */,
    +          "break", "case", "continue", "delete",
    +          "do", "else", "finally", "instanceof",
    +          "return", "throw", "try", "typeof"
    +          ];
    +      var pattern = '(?:^^|[+-]';
    +      for (var i = 0; i < preceders.length; ++i) {
    +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
    +      }
    +      pattern += ')\\s*';  // matches at end, and matches empty string
    +      return pattern;
    +      // CAVEAT: this does not properly handle the case where a regular
    +      // expression immediately follows another since a regular expression may
    +      // have flags for case-sensitivity and the like.  Having regexp tokens
    +      // adjacent is not valid in any language I'm aware of, so I'm punting.
    +      // TODO: maybe style special characters inside a regexp as punctuation.
    +    }();
    +
    +  // Define regexps here so that the interpreter doesn't have to create an
    +  // object each time the function containing them is called.
    +  // The language spec requires a new object created even if you don't access
    +  // the $1 members.
    +  var pr_amp = /&/g;
    +  var pr_lt = /</g;
    +  var pr_gt = />/g;
    +  var pr_quot = /\"/g;
    +  /** like textToHtml but escapes double quotes to be attribute safe. */
    +  function attribToHtml(str) {
    +    return str.replace(pr_amp, '&amp;')
    +        .replace(pr_lt, '&lt;')
    +        .replace(pr_gt, '&gt;')
    +        .replace(pr_quot, '&quot;');
    +  }
    +
    +  /** escapest html special characters to html. */
    +  function textToHtml(str) {
    +    return str.replace(pr_amp, '&amp;')
    +        .replace(pr_lt, '&lt;')
    +        .replace(pr_gt, '&gt;');
    +  }
    +
    +
    +  var pr_ltEnt = /&lt;/g;
    +  var pr_gtEnt = /&gt;/g;
    +  var pr_aposEnt = /&apos;/g;
    +  var pr_quotEnt = /&quot;/g;
    +  var pr_ampEnt = /&amp;/g;
    +  var pr_nbspEnt = /&nbsp;/g;
    +  /** unescapes html to plain text. */
    +  function htmlToText(html) {
    +    var pos = html.indexOf('&');
    +    if (pos < 0) { return html; }
    +    // Handle numeric entities specially.  We can't use functional substitution
    +    // since that doesn't work in older versions of Safari.
    +    // These should be rare since most browsers convert them to normal chars.
    +    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
    +      var end = html.indexOf(';', pos);
    +      if (end >= 0) {
    +        var num = html.substring(pos + 3, end);
    +        var radix = 10;
    +        if (num && num.charAt(0) === 'x') {
    +          num = num.substring(1);
    +          radix = 16;
    +        }
    +        var codePoint = parseInt(num, radix);
    +        if (!isNaN(codePoint)) {
    +          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
    +                  html.substring(end + 1));
    +        }
    +      }
    +    }
    +
    +    return html.replace(pr_ltEnt, '<')
    +        .replace(pr_gtEnt, '>')
    +        .replace(pr_aposEnt, "'")
    +        .replace(pr_quotEnt, '"')
    +        .replace(pr_nbspEnt, ' ')
    +        .replace(pr_ampEnt, '&');
    +  }
    +
    +  /** is the given node's innerHTML normally unescaped? */
    +  function isRawContent(node) {
    +    return 'XMP' === node.tagName;
    +  }
    +
    +  var newlineRe = /[\r\n]/g;
    +  /**
    +   * Are newlines and adjacent spaces significant in the given node's innerHTML?
    +   */
    +  function isPreformatted(node, content) {
    +    // PRE means preformatted, and is a very common case, so don't create
    +    // unnecessary computed style objects.
    +    if ('PRE' === node.tagName) { return true; }
    +    if (!newlineRe.test(content)) { return true; }  // Don't care
    +    var whitespace = '';
    +    // For disconnected nodes, IE has no currentStyle.
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      // Firefox makes a best guess if node is disconnected whereas Safari
    +      // returns the empty string.
    +      whitespace = window.getComputedStyle(node, null).whiteSpace;
    +    }
    +    return !whitespace || whitespace === 'pre';
    +  }
    +
    +  function normalizedHtml(node, out) {
    +    switch (node.nodeType) {
    +      case 1:  // an element
    +        var name = node.tagName.toLowerCase();
    +        out.push('<', name);
    +        for (var i = 0; i < node.attributes.length; ++i) {
    +          var attr = node.attributes[i];
    +          if (!attr.specified) { continue; }
    +          out.push(' ');
    +          normalizedHtml(attr, out);
    +        }
    +        out.push('>');
    +        for (var child = node.firstChild; child; child = child.nextSibling) {
    +          normalizedHtml(child, out);
    +        }
    +        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
    +          out.push('<\/', name, '>');
    +        }
    +        break;
    +      case 2: // an attribute
    +        out.push(node.name.toLowerCase(), '="', attribToHtml(node.value), '"');
    +        break;
    +      case 3: case 4: // text
    +        out.push(textToHtml(node.nodeValue));
    +        break;
    +    }
    +  }
    +
    +  /**
    +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    +   * matches the union o the sets o strings matched d by the input RegExp.
    +   * Since it matches globally, if the input strings have a start-of-input
    +   * anchor (/^.../), it is ignored for the purposes of unioning.
    +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    +   * @return {RegExp} a global regex.
    +   */
    +  function combinePrefixPatterns(regexs) {
    +    var capturedGroupIndex = 0;
    +
    +    var needToFoldCase = false;
    +    var ignoreCase = false;
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.ignoreCase) {
    +        ignoreCase = true;
    +      } else if (/[a-z]/i.test(regex.source.replace(
    +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    +        needToFoldCase = true;
    +        ignoreCase = false;
    +        break;
    +      }
    +    }
    +
    +    function decodeEscape(charsetPart) {
    +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
    +      switch (charsetPart.charAt(1)) {
    +        case 'b': return 8;
    +        case 't': return 9;
    +        case 'n': return 0xa;
    +        case 'v': return 0xb;
    +        case 'f': return 0xc;
    +        case 'r': return 0xd;
    +        case 'u': case 'x':
    +          return parseInt(charsetPart.substring(2), 16)
    +              || charsetPart.charCodeAt(1);
    +        case '0': case '1': case '2': case '3': case '4':
    +        case '5': case '6': case '7':
    +          return parseInt(charsetPart.substring(1), 8);
    +        default: return charsetPart.charCodeAt(1);
    +      }
    +    }
    +
    +    function encodeEscape(charCode) {
    +      if (charCode < 0x20) {
    +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    +      }
    +      var ch = String.fromCharCode(charCode);
    +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
    +        ch = '\\' + ch;
    +      }
    +      return ch;
    +    }
    +
    +    function caseFoldCharset(charSet) {
    +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    +          new RegExp(
    +              '\\\\u[0-9A-Fa-f]{4}'
    +              + '|\\\\x[0-9A-Fa-f]{2}'
    +              + '|\\\\[0-3][0-7]{0,2}'
    +              + '|\\\\[0-7]{1,2}'
    +              + '|\\\\[\\s\\S]'
    +              + '|-'
    +              + '|[^-\\\\]',
    +              'g'));
    +      var groups = [];
    +      var ranges = [];
    +      var inverse = charsetParts[0] === '^';
    +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    +        var p = charsetParts[i];
    +        switch (p) {
    +          case '\\B': case '\\b':
    +          case '\\D': case '\\d':
    +          case '\\S': case '\\s':
    +          case '\\W': case '\\w':
    +            groups.push(p);
    +            continue;
    +        }
    +        var start = decodeEscape(p);
    +        var end;
    +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
    +          end = decodeEscape(charsetParts[i + 2]);
    +          i += 2;
    +        } else {
    +          end = start;
    +        }
    +        ranges.push([start, end]);
    +        // If the range might intersect letters, then expand it.
    +        if (!(end < 65 || start > 122)) {
    +          if (!(end < 65 || start > 90)) {
    +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    +          }
    +          if (!(end < 97 || start > 122)) {
    +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    +          }
    +        }
    +      }
    +
    +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    +      // -> [[1, 12], [14, 14], [16, 17]]
    +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    +      var consolidatedRanges = [];
    +      var lastRange = [NaN, NaN];
    +      for (var i = 0; i < ranges.length; ++i) {
    +        var range = ranges[i];
    +        if (range[0] <= lastRange[1] + 1) {
    +          lastRange[1] = Math.max(lastRange[1], range[1]);
    +        } else {
    +          consolidatedRanges.push(lastRange = range);
    +        }
    +      }
    +
    +      var out = ['['];
    +      if (inverse) { out.push('^'); }
    +      out.push.apply(out, groups);
    +      for (var i = 0; i < consolidatedRanges.length; ++i) {
    +        var range = consolidatedRanges[i];
    +        out.push(encodeEscape(range[0]));
    +        if (range[1] > range[0]) {
    +          if (range[1] + 1 > range[0]) { out.push('-'); }
    +          out.push(encodeEscape(range[1]));
    +        }
    +      }
    +      out.push(']');
    +      return out.join('');
    +    }
    +
    +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    +      // Split into character sets, escape sequences, punctuation strings
    +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    +      // include any of the above.
    +      var parts = regex.source.match(
    +          new RegExp(
    +              '(?:'
    +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    +              + '|\\\\[0-9]+'  // a back-reference or octal escape
    +              + '|\\\\[^ux0-9]'  // other escape sequence
    +              + '|\\(\\?[:!=]'  // start of a non-capturing group
    +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
    +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    +              + ')',
    +              'g'));
    +      var n = parts.length;
    +
    +      // Maps captured group numbers to the number they will occupy in
    +      // the output or to -1 if that has not been determined, or to
    +      // undefined if they need not be capturing in the output.
    +      var capturedGroups = [];
    +
    +      // Walk over and identify back references to build the capturedGroups
    +      // mapping.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          // groups are 1-indexed, so max group index is count of '('
    +          ++groupIndex;
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            capturedGroups[decimalValue] = -1;
    +          }
    +        }
    +      }
    +
    +      // Renumber groups and reduce capturing groups to non-capturing groups
    +      // where possible.
    +      for (var i = 1; i < capturedGroups.length; ++i) {
    +        if (-1 === capturedGroups[i]) {
    +          capturedGroups[i] = ++capturedGroupIndex;
    +        }
    +      }
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          ++groupIndex;
    +          if (capturedGroups[groupIndex] === undefined) {
    +            parts[i] = '(?:';
    +          }
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            parts[i] = '\\' + capturedGroups[groupIndex];
    +          }
    +        }
    +      }
    +
    +      // Remove any prefix anchors so that the output will match anywhere.
    +      // ^^ really does mean an anchored match though.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    +      }
    +
    +      // Expand letters to groupts to handle mixing of case-sensitive and
    +      // case-insensitive patterns if necessary.
    +      if (regex.ignoreCase && needToFoldCase) {
    +        for (var i = 0; i < n; ++i) {
    +          var p = parts[i];
    +          var ch0 = p.charAt(0);
    +          if (p.length >= 2 && ch0 === '[') {
    +            parts[i] = caseFoldCharset(p);
    +          } else if (ch0 !== '\\') {
    +            // TODO: handle letters in numeric escapes.
    +            parts[i] = p.replace(
    +                /[a-zA-Z]/g,
    +                function (ch) {
    +                  var cc = ch.charCodeAt(0);
    +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    +                });
    +          }
    +        }
    +      }
    +
    +      return parts.join('');
    +    }
    +
    +    var rewritten = [];
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    +      rewritten.push(
    +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    +    }
    +
    +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    +  }
    +
    +  var PR_innerHtmlWorks = null;
    +  function getInnerHtml(node) {
    +    // inner html is hopelessly broken in Safari 2.0.4 when the content is
    +    // an html description of well formed XML and the containing tag is a PRE
    +    // tag, so we detect that case and emulate innerHTML.
    +    if (null === PR_innerHtmlWorks) {
    +      var testNode = document.createElement('PRE');
    +      testNode.appendChild(
    +          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
    +      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
    +    }
    +
    +    if (PR_innerHtmlWorks) {
    +      var content = node.innerHTML;
    +      // XMP tags contain unescaped entities so require special handling.
    +      if (isRawContent(node)) {
    +        content = textToHtml(content);
    +      } else if (!isPreformatted(node, content)) {
    +        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
    +            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
    +      }
    +      return content;
    +    }
    +
    +    var out = [];
    +    for (var child = node.firstChild; child; child = child.nextSibling) {
    +      normalizedHtml(child, out);
    +    }
    +    return out.join('');
    +  }
    +
    +  /** returns a function that expand tabs to spaces.  This function can be fed
    +    * successive chunks of text, and will maintain its own internal state to
    +    * keep track of how tabs are expanded.
    +    * @return {function (string) : string} a function that takes
    +    *   plain text and return the text with tabs expanded.
    +    * @private
    +    */
    +  function makeTabExpander(tabWidth) {
    +    var SPACES = '                ';
    +    var charInLine = 0;
    +
    +    return function (plainText) {
    +      // walk over each character looking for tabs and newlines.
    +      // On tabs, expand them.  On newlines, reset charInLine.
    +      // Otherwise increment charInLine
    +      var out = null;
    +      var pos = 0;
    +      for (var i = 0, n = plainText.length; i < n; ++i) {
    +        var ch = plainText.charAt(i);
    +
    +        switch (ch) {
    +          case '\t':
    +            if (!out) { out = []; }
    +            out.push(plainText.substring(pos, i));
    +            // calculate how much space we need in front of this part
    +            // nSpaces is the amount of padding -- the number of spaces needed
    +            // to move us to the next column, where columns occur at factors of
    +            // tabWidth.
    +            var nSpaces = tabWidth - (charInLine % tabWidth);
    +            charInLine += nSpaces;
    +            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
    +              out.push(SPACES.substring(0, nSpaces));
    +            }
    +            pos = i + 1;
    +            break;
    +          case '\n':
    +            charInLine = 0;
    +            break;
    +          default:
    +            ++charInLine;
    +        }
    +      }
    +      if (!out) { return plainText; }
    +      out.push(plainText.substring(pos));
    +      return out.join('');
    +    };
    +  }
    +
    +  var pr_chunkPattern = new RegExp(
    +      '[^<]+'  // A run of characters other than '<'
    +      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
    +      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
    +      // a probable tag that should not be highlighted
    +      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
    +      + '|<',  // A '<' that does not begin a larger chunk
    +      'g');
    +  var pr_commentPrefix = /^<\!--/;
    +  var pr_cdataPrefix = /^<!\[CDATA\[/;
    +  var pr_brPrefix = /^<br\b/i;
    +  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
    +
    +  /** split markup into chunks of html tags (style null) and
    +    * plain text (style {@link #PR_PLAIN}), converting tags which are
    +    * significant for tokenization (<br>) into their textual equivalent.
    +    *
    +    * @param {string} s html where whitespace is considered significant.
    +    * @return {Object} source code and extracted tags.
    +    * @private
    +    */
    +  function extractTags(s) {
    +    // since the pattern has the 'g' modifier and defines no capturing groups,
    +    // this will return a list of all chunks which we then classify and wrap as
    +    // PR_Tokens
    +    var matches = s.match(pr_chunkPattern);
    +    var sourceBuf = [];
    +    var sourceBufLen = 0;
    +    var extractedTags = [];
    +    if (matches) {
    +      for (var i = 0, n = matches.length; i < n; ++i) {
    +        var match = matches[i];
    +        if (match.length > 1 && match.charAt(0) === '<') {
    +          if (pr_commentPrefix.test(match)) { continue; }
    +          if (pr_cdataPrefix.test(match)) {
    +            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
    +            sourceBuf.push(match.substring(9, match.length - 3));
    +            sourceBufLen += match.length - 12;
    +          } else if (pr_brPrefix.test(match)) {
    +            // <br> tags are lexically significant so convert them to text.
    +            // This is undone later.
    +            sourceBuf.push('\n');
    +            ++sourceBufLen;
    +          } else {
    +            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
    +              // A <span class="nocode"> will start a section that should be
    +              // ignored.  Continue walking the list until we see a matching end
    +              // tag.
    +              var name = match.match(pr_tagNameRe)[2];
    +              var depth = 1;
    +              var j;
    +              end_tag_loop:
    +              for (j = i + 1; j < n; ++j) {
    +                var name2 = matches[j].match(pr_tagNameRe);
    +                if (name2 && name2[2] === name) {
    +                  if (name2[1] === '/') {
    +                    if (--depth === 0) { break end_tag_loop; }
    +                  } else {
    +                    ++depth;
    +                  }
    +                }
    +              }
    +              if (j < n) {
    +                extractedTags.push(
    +                    sourceBufLen, matches.slice(i, j + 1).join(''));
    +                i = j;
    +              } else {  // Ignore unclosed sections.
    +                extractedTags.push(sourceBufLen, match);
    +              }
    +            } else {
    +              extractedTags.push(sourceBufLen, match);
    +            }
    +          }
    +        } else {
    +          var literalText = htmlToText(match);
    +          sourceBuf.push(literalText);
    +          sourceBufLen += literalText.length;
    +        }
    +      }
    +    }
    +    return { source: sourceBuf.join(''), tags: extractedTags };
    +  }
    +
    +  /** True if the given tag contains a class attribute with the nocode class. */
    +  function isNoCodeTag(tag) {
    +    return !!tag
    +        // First canonicalize the representation of attributes
    +        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
    +                 ' $1="$2$3$4"')
    +        // Then look for the attribute we want.
    +        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
    +  }
    +
    +  /**
    +   * Apply the given language handler to sourceCode and add the resulting
    +   * decorations to out.
    +   * @param {number} basePos the index of sourceCode within the chunk of source
    +   *    whose decorations are already present on out.
    +   */
    +  function appendDecorations(basePos, sourceCode, langHandler, out) {
    +    if (!sourceCode) { return; }
    +    var job = {
    +      source: sourceCode,
    +      basePos: basePos
    +    };
    +    langHandler(job);
    +    out.push.apply(out, job.decorations);
    +  }
    +
    +  /** Given triples of [style, pattern, context] returns a lexing function,
    +    * The lexing function interprets the patterns to find token boundaries and
    +    * returns a decoration list of the form
    +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    +    * where index_n is an index into the sourceCode, and style_n is a style
    +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    +    * all characters in sourceCode[index_n-1:index_n].
    +    *
    +    * The stylePatterns is a list whose elements have the form
    +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    +    *
    +    * Style is a style constant like PR_PLAIN, or can be a string of the
    +    * form 'lang-FOO', where FOO is a language extension describing the
    +    * language of the portion of the token in $1 after pattern executes.
    +    * E.g., if style is 'lang-lisp', and group 1 contains the text
    +    * '(hello (world))', then that portion of the token will be passed to the
    +    * registered lisp handler for formatting.
    +    * The text before and after group 1 will be restyled using this decorator
    +    * so decorators should take care that this doesn't result in infinite
    +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    +    * '<script>foo()<\/script>', which would cause the current decorator to
    +    * be called with '<script>' which would not match the same rule since
    +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    +    * the generic tag rule.  The handler registered for the 'js' extension would
    +    * then be called with 'foo()', and finally, the current decorator would
    +    * be called with '<\/script>' which would not match the original rule and
    +    * so the generic tag rule would identify it as a tag.
    +    *
    +    * Pattern must only match prefixes, and if it matches a prefix, then that
    +    * match is considered a token with the same style.
    +    *
    +    * Context is applied to the last non-whitespace, non-comment token
    +    * recognized.
    +    *
    +    * Shortcut is an optional string of characters, any of which, if the first
    +    * character, gurantee that this pattern and only this pattern matches.
    +    *
    +    * @param {Array} shortcutStylePatterns patterns that always start with
    +    *   a known character.  Must have a shortcut string.
    +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    +    *   order if the shortcut ones fail.  May have shortcuts.
    +    *
    +    * @return {function (Object)} a
    +    *   function that takes source code and returns a list of decorations.
    +    */
    +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    +    var shortcuts = {};
    +    var tokenizer;
    +    (function () {
    +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    +      var allRegexs = [];
    +      var regexKeys = {};
    +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    +        var patternParts = allPatterns[i];
    +        var shortcutChars = patternParts[3];
    +        if (shortcutChars) {
    +          for (var c = shortcutChars.length; --c >= 0;) {
    +            shortcuts[shortcutChars.charAt(c)] = patternParts;
    +          }
    +        }
    +        var regex = patternParts[1];
    +        var k = '' + regex;
    +        if (!regexKeys.hasOwnProperty(k)) {
    +          allRegexs.push(regex);
    +          regexKeys[k] = null;
    +        }
    +      }
    +      allRegexs.push(/[\0-\uffff]/);
    +      tokenizer = combinePrefixPatterns(allRegexs);
    +    })();
    +
    +    var nPatterns = fallthroughStylePatterns.length;
    +    var notWs = /\S/;
    +
    +    /**
    +     * Lexes job.source and produces an output array job.decorations of style
    +     * classes preceded by the position at which they start in job.source in
    +     * order.
    +     *
    +     * @param {Object} job an object like {@code
    +     *    source: {string} sourceText plain text,
    +     *    basePos: {int} position of job.source in the larger chunk of
    +     *        sourceCode.
    +     * }
    +     */
    +    var decorate = function (job) {
    +      var sourceCode = job.source, basePos = job.basePos;
    +      /** Even entries are positions in source in ascending order.  Odd enties
    +        * are style markers (e.g., PR_COMMENT) that run from that position until
    +        * the end.
    +        * @type {Array.<number|string>}
    +        */
    +      var decorations = [basePos, PR_PLAIN];
    +      var pos = 0;  // index into sourceCode
    +      var tokens = sourceCode.match(tokenizer) || [];
    +      var styleCache = {};
    +
    +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    +        var token = tokens[ti];
    +        var style = styleCache[token];
    +        var match = void 0;
    +
    +        var isEmbedded;
    +        if (typeof style === 'string') {
    +          isEmbedded = false;
    +        } else {
    +          var patternParts = shortcuts[token.charAt(0)];
    +          if (patternParts) {
    +            match = token.match(patternParts[1]);
    +            style = patternParts[0];
    +          } else {
    +            for (var i = 0; i < nPatterns; ++i) {
    +              patternParts = fallthroughStylePatterns[i];
    +              match = token.match(patternParts[1]);
    +              if (match) {
    +                style = patternParts[0];
    +                break;
    +              }
    +            }
    +
    +            if (!match) {  // make sure that we make progress
    +              style = PR_PLAIN;
    +            }
    +          }
    +
    +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    +            isEmbedded = false;
    +            style = PR_SOURCE;
    +          }
    +
    +          if (!isEmbedded) { styleCache[token] = style; }
    +        }
    +
    +        var tokenStart = pos;
    +        pos += token.length;
    +
    +        if (!isEmbedded) {
    +          decorations.push(basePos + tokenStart, style);
    +        } else {  // Treat group 1 as an embedded block of source code.
    +          var embeddedSource = match[1];
    +          var embeddedSourceStart = token.indexOf(embeddedSource);
    +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    +          if (match[2]) {
    +            // If embeddedSource can be blank, then it would match at the
    +            // beginning which would cause us to infinitely recurse on the
    +            // entire token, so we catch the right context in match[2].
    +            embeddedSourceEnd = token.length - match[2].length;
    +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    +          }
    +          var lang = style.substring(5);
    +          // Decorate the left of the embedded source
    +          appendDecorations(
    +              basePos + tokenStart,
    +              token.substring(0, embeddedSourceStart),
    +              decorate, decorations);
    +          // Decorate the embedded source
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceStart,
    +              embeddedSource,
    +              langHandlerForExtension(lang, embeddedSource),
    +              decorations);
    +          // Decorate the right of the embedded section
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceEnd,
    +              token.substring(embeddedSourceEnd),
    +              decorate, decorations);
    +        }
    +      }
    +      job.decorations = decorations;
    +    };
    +    return decorate;
    +  }
    +
    +  /** returns a function that produces a list of decorations from source text.
    +    *
    +    * This code treats ", ', and ` as string delimiters, and \ as a string
    +    * escape.  It does not recognize perl's qq() style strings.
    +    * It has no special handling for double delimiter escapes as in basic, or
    +    * the tripled delimiters used in python, but should work on those regardless
    +    * although in those cases a single string literal may be broken up into
    +    * multiple adjacent string literals.
    +    *
    +    * It recognizes C, C++, and shell style comments.
    +    *
    +    * @param {Object} options a set of optional parameters.
    +    * @return {function (Object)} a function that examines the source code
    +    *     in the input job and builds the decoration list.
    +    */
    +  function sourceDecorator(options) {
    +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    +    if (options['tripleQuotedStrings']) {
    +      // '''multi-line-string''', 'single-line-string', and double-quoted
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    +           null, '\'"']);
    +    } else if (options['multiLineStrings']) {
    +      // 'multi-line-string', "multi-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    +           null, '\'"`']);
    +    } else {
    +      // 'single-line-string', "single-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,
    +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    +           null, '"\'']);
    +    }
    +    if (options['verbatimStrings']) {
    +      // verbatim-string-literal production from the C# grammar.  See issue 93.
    +      fallthroughStylePatterns.push(
    +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    +    }
    +    if (options['hashComments']) {
    +      if (options['cStyleComments']) {
    +        // Stop C preprocessor declarations at an unclosed open comment
    +        shortcutStylePatterns.push(
    +            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
    +             null, '#']);
    +        fallthroughStylePatterns.push(
    +            [PR_STRING,
    +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
    +             null]);
    +      } else {
    +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    +      }
    +    }
    +    if (options['cStyleComments']) {
    +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    +      fallthroughStylePatterns.push(
    +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    +    }
    +    if (options['regexLiterals']) {
    +      var REGEX_LITERAL = (
    +          // A regular expression literal starts with a slash that is
    +          // not followed by * or / so that it is not confused with
    +          // comments.
    +          '/(?=[^/*])'
    +          // and then contains any number of raw characters,
    +          + '(?:[^/\\x5B\\x5C]'
    +          // escape sequences (\x5C),
    +          +    '|\\x5C[\\s\\S]'
    +          // or non-nesting character sets (\x5B\x5D);
    +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
    +          // finally closed by a /.
    +          + '/');
    +      fallthroughStylePatterns.push(
    +          ['lang-regex',
    +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    +           ]);
    +    }
    +
    +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
    +    if (keywords.length) {
    +      fallthroughStylePatterns.push(
    +          [PR_KEYWORD,
    +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
    +    }
    +
    +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    +    fallthroughStylePatterns.push(
    +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
    +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_LITERAL,
    +         new RegExp(
    +             '^(?:'
    +             // A hex number
    +             + '0x[a-f0-9]+'
    +             // or an octal or decimal number,
    +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    +             // possibly in scientific notation
    +             + '(?:e[+\\-]?\\d+)?'
    +             + ')'
    +             // with an optional modifier like UL for unsigned long
    +             + '[a-z]*', 'i'),
    +         null, '0123456789'],
    +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
    +
    +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    +  }
    +
    +  var decorateSource = sourceDecorator({
    +        'keywords': ALL_KEYWORDS,
    +        'hashComments': true,
    +        'cStyleComments': true,
    +        'multiLineStrings': true,
    +        'regexLiterals': true
    +      });
    +
    +  /** Breaks {@code job.source} around style boundaries in
    +    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
    +    * and leaves the result in {@code job.prettyPrintedHtml}.
    +    * @param {Object} job like {
    +    *    source: {string} source as plain text,
    +    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
    +    *                   html preceded by their position in {@code job.source}
    +    *                   in order
    +    *    decorations: {Array.<number|string} an array of style classes preceded
    +    *                 by the position at which they start in job.source in order
    +    * }
    +    * @private
    +    */
    +  function recombineTagsAndDecorations(job) {
    +    var sourceText = job.source;
    +    var extractedTags = job.extractedTags;
    +    var decorations = job.decorations;
    +
    +    var html = [];
    +    // index past the last char in sourceText written to html
    +    var outputIdx = 0;
    +
    +    var openDecoration = null;
    +    var currentDecoration = null;
    +    var tagPos = 0;  // index into extractedTags
    +    var decPos = 0;  // index into decorations
    +    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
    +
    +    var adjacentSpaceRe = /([\r\n ]) /g;
    +    var startOrSpaceRe = /(^| ) /gm;
    +    var newlineRe = /\r\n?|\n/g;
    +    var trailingSpaceRe = /[ \r\n]$/;
    +    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
    +
    +    // A helper function that is responsible for opening sections of decoration
    +    // and outputing properly escaped chunks of source
    +    function emitTextUpTo(sourceIdx) {
    +      if (sourceIdx > outputIdx) {
    +        if (openDecoration && openDecoration !== currentDecoration) {
    +          // Close the current decoration
    +          html.push('</span>');
    +          openDecoration = null;
    +        }
    +        if (!openDecoration && currentDecoration) {
    +          openDecoration = currentDecoration;
    +          html.push('<span class="', openDecoration, '">');
    +        }
    +        // This interacts badly with some wikis which introduces paragraph tags
    +        // into pre blocks for some strange reason.
    +        // It's necessary for IE though which seems to lose the preformattedness
    +        // of <pre> tags when their innerHTML is assigned.
    +        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
    +        // and it serves to undo the conversion of <br>s to newlines done in
    +        // chunkify.
    +        var htmlChunk = textToHtml(
    +            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
    +            .replace(lastWasSpace
    +                     ? startOrSpaceRe
    +                     : adjacentSpaceRe, '$1&nbsp;');
    +        // Keep track of whether we need to escape space at the beginning of the
    +        // next chunk.
    +        lastWasSpace = trailingSpaceRe.test(htmlChunk);
    +        // IE collapses multiple adjacient <br>s into 1 line break.
    +        // Prefix every <br> with '&nbsp;' can prevent such IE's behavior.
    +        var lineBreakHtml = window['_pr_isIE6']() ? '&nbsp;<br />' : '<br />';
    +        html.push(htmlChunk.replace(newlineRe, lineBreakHtml));
    +        outputIdx = sourceIdx;
    +      }
    +    }
    +
    +    while (true) {
    +      // Determine if we're going to consume a tag this time around.  Otherwise
    +      // we consume a decoration or exit.
    +      var outputTag;
    +      if (tagPos < extractedTags.length) {
    +        if (decPos < decorations.length) {
    +          // Pick one giving preference to extractedTags since we shouldn't open
    +          // a new style that we're going to have to immediately close in order
    +          // to output a tag.
    +          outputTag = extractedTags[tagPos] <= decorations[decPos];
    +        } else {
    +          outputTag = true;
    +        }
    +      } else {
    +        outputTag = false;
    +      }
    +      // Consume either a decoration or a tag or exit.
    +      if (outputTag) {
    +        emitTextUpTo(extractedTags[tagPos]);
    +        if (openDecoration) {
    +          // Close the current decoration
    +          html.push('</span>');
    +          openDecoration = null;
    +        }
    +        html.push(extractedTags[tagPos + 1]);
    +        tagPos += 2;
    +      } else if (decPos < decorations.length) {
    +        emitTextUpTo(decorations[decPos]);
    +        currentDecoration = decorations[decPos + 1];
    +        decPos += 2;
    +      } else {
    +        break;
    +      }
    +    }
    +    emitTextUpTo(sourceText.length);
    +    if (openDecoration) {
    +      html.push('</span>');
    +    }
    +    job.prettyPrintedHtml = html.join('');
    +  }
    +
    +  /** Maps language-specific file extensions to handlers. */
    +  var langHandlerRegistry = {};
    +  /** Register a language handler for the given file extensions.
    +    * @param {function (Object)} handler a function from source code to a list
    +    *      of decorations.  Takes a single argument job which describes the
    +    *      state of the computation.   The single parameter has the form
    +    *      {@code {
    +    *        source: {string} as plain text.
    +    *        decorations: {Array.<number|string>} an array of style classes
    +    *                     preceded by the position at which they start in
    +    *                     job.source in order.
    +    *                     The language handler should assigned this field.
    +    *        basePos: {int} the position of source in the larger source chunk.
    +    *                 All positions in the output decorations array are relative
    +    *                 to the larger source chunk.
    +    *      } }
    +    * @param {Array.<string>} fileExtensions
    +    */
    +  function registerLangHandler(handler, fileExtensions) {
    +    for (var i = fileExtensions.length; --i >= 0;) {
    +      var ext = fileExtensions[i];
    +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    +        langHandlerRegistry[ext] = handler;
    +      } else if ('console' in window) {
    +        console.warn('cannot override language handler %s', ext);
    +      }
    +    }
    +  }
    +  function langHandlerForExtension(extension, source) {
    +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    +      // Treat it as markup if the first non whitespace character is a < and
    +      // the last non-whitespace character is a >.
    +      extension = /^\s*</.test(source)
    +          ? 'default-markup'
    +          : 'default-code';
    +    }
    +    return langHandlerRegistry[extension];
    +  }
    +  registerLangHandler(decorateSource, ['default-code']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [],
    +          [
    +           [PR_PLAIN,       /^[^<?]+/],
    +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    +           // Unescaped content in an unknown language
    +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    +           // Unescaped content in javascript.  (Or possibly vbscript).
    +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    +           // Contains unescaped stylesheet content
    +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    +          ]),
    +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [
    +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    +           ],
    +          [
    +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    +           [PR_PUNCTUATION,  /^[=<>\/]+/],
    +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    +           ]),
    +      ['in.tag']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CPP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true
    +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': 'null true false'
    +        }), ['json']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CSHARP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'verbatimStrings': true
    +        }), ['cs']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JAVA_KEYWORDS,
    +          'cStyleComments': true
    +        }), ['java']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': SH_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true
    +        }), ['bsh', 'csh', 'sh']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PYTHON_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'tripleQuotedStrings': true
    +        }), ['cv', 'py']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PERL_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['perl', 'pl', 'pm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': RUBY_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['rb']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JSCRIPT_KEYWORDS,
    +          'cStyleComments': true,
    +          'regexLiterals': true
    +        }), ['js']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    +
    +  function applyDecorator(job) {
    +    var sourceCodeHtml = job.sourceCodeHtml;
    +    var opt_langExtension = job.langExtension;
    +
    +    // Prepopulate output in case processing fails with an exception.
    +    job.prettyPrintedHtml = sourceCodeHtml;
    +
    +    try {
    +      // Extract tags, and convert the source code to plain text.
    +      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
    +      /** Plain text. @type {string} */
    +      var source = sourceAndExtractedTags.source;
    +      job.source = source;
    +      job.basePos = 0;
    +
    +      /** Even entries are positions in source in ascending order.  Odd entries
    +        * are tags that were extracted at that position.
    +        * @type {Array.<number|string>}
    +        */
    +      job.extractedTags = sourceAndExtractedTags.tags;
    +
    +      // Apply the appropriate language handler
    +      langHandlerForExtension(opt_langExtension, source)(job);
    +      // Integrate the decorations and tags back into the source code to produce
    +      // a decorated html string which is left in job.prettyPrintedHtml.
    +      recombineTagsAndDecorations(job);
    +    } catch (e) {
    +      if ('console' in window) {
    +        console.log(e);
    +        console.trace();
    +      }
    +    }
    +  }
    +
    +  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
    +    var job = {
    +      sourceCodeHtml: sourceCodeHtml,
    +      langExtension: opt_langExtension
    +    };
    +    applyDecorator(job);
    +    return job.prettyPrintedHtml;
    +  }
    +
    +  function prettyPrint(opt_whenDone) {
    +    var isIE678 = window['_pr_isIE6']();
    +    var ieNewline = isIE678 === 6 ? '\r\n' : '\r';
    +    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
    +
    +    // fetch a list of nodes to rewrite
    +    var codeSegments = [
    +        document.getElementsByTagName('pre'),
    +        document.getElementsByTagName('code'),
    +        document.getElementsByTagName('table'),  /* ND Change: Add tables to support prototypes. */
    +        document.getElementsByTagName('xmp') ];
    +    var elements = [];
    +    for (var i = 0; i < codeSegments.length; ++i) {
    +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    +        elements.push(codeSegments[i][j]);
    +      }
    +    }
    +    codeSegments = null;
    +
    +    var clock = Date;
    +    if (!clock['now']) {
    +      clock = { 'now': function () { return (new Date).getTime(); } };
    +    }
    +
    +    // The loop is broken into a series of continuations to make sure that we
    +    // don't make the browser unresponsive when rewriting a large page.
    +    var k = 0;
    +    var prettyPrintingJob;
    +
    +    function doWork() {
    +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
    +                     clock.now() + 250 /* ms */ :
    +                     Infinity);
    +      for (; k < elements.length && clock.now() < endTime; k++) {
    +        var cs = elements[k];
    +        if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
    +          // If the classes includes a language extensions, use it.
    +          // Language extensions can be specified like
    +          //     <pre class="prettyprint lang-cpp">
    +          // the language extension "cpp" is used to find a language handler as
    +          // passed to PR_registerLangHandler.
    +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
    +          if (langExtension) { langExtension = langExtension[1]; }
    +
    +          // make sure this is not nested in an already prettified element
    +          var nested = false;
    +          for (var p = cs.parentNode; p; p = p.parentNode) {
    +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
    +                 p.tagName === 'xmp' || p.tagName === 'table') &&  /* ND Change: Add tables to support prototypes */
    +                p.className && p.className.indexOf('prettyprint') >= 0) {
    +              nested = true;
    +              break;
    +            }
    +          }
    +          if (!nested) {
    +            // fetch the content as a snippet of properly escaped HTML.
    +            // Firefox adds newlines at the end.
    +            var content = getInnerHtml(cs);
    +            content = content.replace(/(?:\r\n?|\n)$/, '');
    +
    +	  		/* ND Change: we need to preserve &nbsp;s so change them to a special character instead of a space. */
    +			content = content.replace(/&nbsp;/g, '\x11');
    +
    +            // do the pretty printing
    +            prettyPrintingJob = {
    +              sourceCodeHtml: content,
    +              langExtension: langExtension,
    +              sourceNode: cs
    +            };
    +            applyDecorator(prettyPrintingJob);
    +            replaceWithPrettyPrintedHtml();
    +          }
    +        }
    +      }
    +      if (k < elements.length) {
    +        // finish up in a continuation
    +        setTimeout(doWork, 250);
    +      } else if (opt_whenDone) {
    +        opt_whenDone();
    +      }
    +    }
    +
    +    function replaceWithPrettyPrintedHtml() {
    +      var newContent = prettyPrintingJob.prettyPrintedHtml;
    +      if (!newContent) { return; }
    +
    +      /* ND Change: Restore the preserved &nbsp;s.  */
    +	  newContent = newContent.replace(/\x11/g, '&nbsp;');
    +
    +      var cs = prettyPrintingJob.sourceNode;
    +
    +      // push the prettified html back into the tag.
    +      if (!isRawContent(cs)) {
    +        // just replace the old html with the new
    +        cs.innerHTML = newContent;
    +      } else {
    +        // we need to change the tag to a <pre> since <xmp>s do not allow
    +        // embedded tags such as the span tags used to attach styles to
    +        // sections of source code.
    +        var pre = document.createElement('PRE');
    +        for (var i = 0; i < cs.attributes.length; ++i) {
    +          var a = cs.attributes[i];
    +          if (a.specified) {
    +            var aname = a.name.toLowerCase();
    +            if (aname === 'class') {
    +              pre.className = a.value;  // For IE 6
    +            } else {
    +              pre.setAttribute(a.name, a.value);
    +            }
    +          }
    +        }
    +        pre.innerHTML = newContent;
    +
    +        // remove the old
    +        cs.parentNode.replaceChild(pre, cs);
    +        cs = pre;
    +      }
    +
    +      // Replace <br>s with line-feeds so that copying and pasting works
    +      // on IE 6.
    +      // Doing this on other browsers breaks lots of stuff since \r\n is
    +      // treated as two newlines on Firefox, and doing this also slows
    +      // down rendering.
    +      if (isIE678 && cs.tagName === 'PRE') {
    +        var lineBreaks = cs.getElementsByTagName('br');
    +        for (var j = lineBreaks.length; --j >= 0;) {
    +          var lineBreak = lineBreaks[j];
    +          lineBreak.parentNode.replaceChild(
    +              document.createTextNode(ieNewline), lineBreak);
    +        }
    +      }
    +    }
    +
    +    doWork();
    +  }
    +
    +  window['PR_normalizedHtml'] = normalizedHtml;
    +  window['prettyPrintOne'] = prettyPrintOne;
    +  window['prettyPrint'] = prettyPrint;
    +  window['PR'] = {
    +        'combinePrefixPatterns': combinePrefixPatterns,
    +        'createSimpleLexer': createSimpleLexer,
    +        'registerLangHandler': registerLangHandler,
    +        'sourceDecorator': sourceDecorator,
    +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    +        'PR_COMMENT': PR_COMMENT,
    +        'PR_DECLARATION': PR_DECLARATION,
    +        'PR_KEYWORD': PR_KEYWORD,
    +        'PR_LITERAL': PR_LITERAL,
    +        'PR_NOCODE': PR_NOCODE,
    +        'PR_PLAIN': PR_PLAIN,
    +        'PR_PUNCTUATION': PR_PUNCTUATION,
    +        'PR_SOURCE': PR_SOURCE,
    +        'PR_STRING': PR_STRING,
    +        'PR_TAG': PR_TAG,
    +        'PR_TYPE': PR_TYPE
    +      };
    +})();
    +
    +
    +// ____________________________________________________________________________
    +
    +
    +
    +// Lua extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],[PR.PR_STRING,/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],[PR.PR_KEYWORD,/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_]\w*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),['lua'])
    +
    +
    +// Haskell extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\x0B\x0C\r ]+/,null,'	\n\r '],[PR.PR_STRING,/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'\"'],[PR.PR_STRING,/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,'\''],[PR.PR_LITERAL,/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,'0123456789']],[[PR.PR_COMMENT,/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],[PR.PR_KEYWORD,/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/,null],[PR.PR_PLAIN,/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],[PR.PR_PUNCTUATION,/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),['hs'])
    +
    +
    +// ML extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_COMMENT,/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,'#'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],[PR.PR_KEYWORD,/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],[PR.PR_LITERAL,/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],[PR.PR_PUNCTUATION,/^[^\t\n\r \xA0\"\'\w]+/]]),['fs','ml'])
    +
    +
    +// SQL extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],[PR.PR_KEYWORD,/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_][\w-]*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),['sql'])
    +
    +
    +// VB extension
    +
    +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0\u2028\u2029]+/,null,'	\n\r \xa0\u2028\u2029'],[PR.PR_STRING,/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'\"\u201c\u201d'],[PR.PR_COMMENT,/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,'\'\u2018\u2019']],[[PR.PR_KEYWORD,/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,null],[PR.PR_COMMENT,/^REM[^\r\n\u2028\u2029]*/i],[PR.PR_LITERAL,/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],[PR.PR_PLAIN,/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],[PR.PR_PUNCTUATION,/^(?:\[|\])/]]),['vb','vbs'])
    diff --git a/docs/php-api/javascript/searchdata.js b/docs/php-api/javascript/searchdata.js
    new file mode 100644
    index 000000000..ca764b3e9
    --- /dev/null
    +++ b/docs/php-api/javascript/searchdata.js
    @@ -0,0 +1,182 @@
    +var indexSectionsWithContent = {
    +   "General": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": true,
    +      "B": true,
    +      "C": true,
    +      "D": true,
    +      "E": true,
    +      "F": true,
    +      "G": true,
    +      "H": true,
    +      "I": true,
    +      "J": false,
    +      "K": false,
    +      "L": true,
    +      "M": true,
    +      "N": true,
    +      "O": true,
    +      "P": true,
    +      "Q": false,
    +      "R": true,
    +      "S": true,
    +      "T": true,
    +      "U": true,
    +      "V": true,
    +      "W": true,
    +      "X": true,
    +      "Y": true,
    +      "Z": false
    +      },
    +   "Variables": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": true,
    +      "B": true,
    +      "C": true,
    +      "D": true,
    +      "E": true,
    +      "F": true,
    +      "G": true,
    +      "H": true,
    +      "I": true,
    +      "J": false,
    +      "K": false,
    +      "L": true,
    +      "M": true,
    +      "N": true,
    +      "O": true,
    +      "P": true,
    +      "Q": false,
    +      "R": true,
    +      "S": true,
    +      "T": true,
    +      "U": true,
    +      "V": true,
    +      "W": true,
    +      "X": true,
    +      "Y": true,
    +      "Z": false
    +      },
    +   "Functions": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": true,
    +      "B": true,
    +      "C": true,
    +      "D": true,
    +      "E": true,
    +      "F": true,
    +      "G": true,
    +      "H": false,
    +      "I": true,
    +      "J": false,
    +      "K": false,
    +      "L": true,
    +      "M": true,
    +      "N": false,
    +      "O": true,
    +      "P": true,
    +      "Q": false,
    +      "R": true,
    +      "S": true,
    +      "T": true,
    +      "U": true,
    +      "V": true,
    +      "W": true,
    +      "X": false,
    +      "Y": false,
    +      "Z": false
    +      },
    +   "Interfaces": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": false,
    +      "B": false,
    +      "C": false,
    +      "D": false,
    +      "E": false,
    +      "F": false,
    +      "G": false,
    +      "H": false,
    +      "I": false,
    +      "J": false,
    +      "K": false,
    +      "L": false,
    +      "M": true,
    +      "N": false,
    +      "O": false,
    +      "P": false,
    +      "Q": false,
    +      "R": false,
    +      "S": false,
    +      "T": false,
    +      "U": false,
    +      "V": false,
    +      "W": false,
    +      "X": false,
    +      "Y": false,
    +      "Z": false
    +      },
    +   "Files": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": true,
    +      "B": false,
    +      "C": false,
    +      "D": false,
    +      "E": false,
    +      "F": false,
    +      "G": false,
    +      "H": false,
    +      "I": false,
    +      "J": false,
    +      "K": false,
    +      "L": false,
    +      "M": true,
    +      "N": false,
    +      "O": false,
    +      "P": false,
    +      "Q": false,
    +      "R": false,
    +      "S": false,
    +      "T": false,
    +      "U": false,
    +      "V": false,
    +      "W": false,
    +      "X": false,
    +      "Y": false,
    +      "Z": false
    +      },
    +   "Classes": {
    +      "Symbols": false,
    +      "Numbers": false,
    +      "A": false,
    +      "B": false,
    +      "C": false,
    +      "D": false,
    +      "E": false,
    +      "F": false,
    +      "G": false,
    +      "H": false,
    +      "I": false,
    +      "J": false,
    +      "K": false,
    +      "L": false,
    +      "M": true,
    +      "N": false,
    +      "O": false,
    +      "P": false,
    +      "Q": false,
    +      "R": false,
    +      "S": false,
    +      "T": false,
    +      "U": false,
    +      "V": false,
    +      "W": false,
    +      "X": false,
    +      "Y": false,
    +      "Z": false
    +      }
    +   }
    \ No newline at end of file
    diff --git a/docs/php-api/search/ClassesM.html b/docs/php-api/search/ClassesM.html
    new file mode 100644
    index 000000000..ea779e462
    --- /dev/null
    +++ b/docs/php-api/search/ClassesM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mxCell><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell" target=_parent class=ISymbol>mxCell</a></div></div><div class=SRResult id=SR_mxCellCodec><div class=IEntry><a href="../files/io/mxCellCodec-php.html#mxCellCodec" target=_parent class=ISymbol>mxCellCodec</a></div></div><div class=SRResult id=SR_mxCellPath><div class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath" target=_parent class=ISymbol>mxCellPath</a></div></div><div class=SRResult id=SR_mxCellState><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState" target=_parent class=ISymbol>mxCellState</a></div></div><div class=SRResult id=SR_mxCodec><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec" target=_parent class=ISymbol>mxCodec</a></div></div><div class=SRResult id=SR_mxCodecRegistry><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry" target=_parent class=ISymbol>mxCodecRegistry</a></div></div><div class=SRResult id=SR_mxConnectionConstraint><div class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint" target=_parent class=ISymbol>mxConnectionConstraint</a></div></div><div class=SRResult id=SR_mxConstants><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants" target=_parent class=ISymbol>mxConstants</a></div></div><div class=SRResult id=SR_mxEdgeStyle><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle" target=_parent class=ISymbol>mxEdgeStyle</a></div></div><div class=SRResult id=SR_mxElbowConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxElbowConnector" target=_parent class=ISymbol>mxElbowConnector</a></div></div><div class=SRResult id=SR_mxEllipsePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxEllipsePerimeter" target=_parent class=ISymbol>mxEllipsePerimeter</a></div></div><div class=SRResult id=SR_mxEntityRelation><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEntityRelation" target=_parent class=ISymbol>mxEntityRelation</a></div></div><div class=SRResult id=SR_mxEvent><div class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent" target=_parent class=ISymbol>mxEvent</a></div></div><div class=SRResult id=SR_mxEventObject><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject" target=_parent class=ISymbol>mxEventObject</a></div></div><div class=SRResult id=SR_mxEventSource><div class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource" target=_parent class=ISymbol>mxEventSource</a></div></div><div class=SRResult id=SR_mxGdCanvas><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas" target=_parent class=ISymbol>mxGdCanvas</a></div></div><div class=SRResult id=SR_mxGeometry><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry" target=_parent class=ISymbol>mxGeometry</a></div></div><div class=SRResult id=SR_mxGraph><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph" target=_parent class=ISymbol>mxGraph</a></div></div><div class=SRResult id=SR_mxGraphModel><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel" target=_parent class=ISymbol>mxGraphModel</a></div></div><div class=SRResult id=SR_mxGraphView><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView" target=_parent class=ISymbol>mxGraphView</a></div></div><div class=SRResult id=SR_mxGraphViewHtmlReader><div class=IEntry><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader" target=_parent class=ISymbol>mxGraphViewHtmlReader</a></div></div><div class=SRResult id=SR_mxGraphViewImageReader><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader" target=_parent class=ISymbol>mxGraphViewImageReader</a></div></div><div class=SRResult id=SR_mxHtmlCanvas><div class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas" target=_parent class=ISymbol>mxHtmlCanvas</a></div></div><div class=SRResult id=SR_mxImageBundle><div class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle" target=_parent class=ISymbol>mxImageBundle</a></div></div><div class=SRResult id=SR_mxLog><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog" target=_parent class=ISymbol>mxLog</a></div></div><div class=SRResult id=SR_mxLoop><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxLoop" target=_parent class=ISymbol>mxLoop</a></div></div><div class=SRResult id=SR_mxModelCodec><div class=IEntry><a href="../files/io/mxModelCodec-php.html#mxModelCodec" target=_parent class=ISymbol>mxModelCodec</a></div></div><div class=SRResult id=SR_mxObjectCodec><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec" target=_parent class=ISymbol>mxObjectCodec</a></div></div><div class=SRResult id=SR_mxPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter" target=_parent class=ISymbol>mxPerimeter</a></div></div><div class=SRResult id=SR_mxPoint><div class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint" target=_parent class=ISymbol>mxPoint</a></div></div><div class=SRResult id=SR_mxRectangle><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle" target=_parent class=ISymbol>mxRectangle</a></div></div><div class=SRResult id=SR_mxRectanglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxRectanglePerimeter" target=_parent class=ISymbol>mxRectanglePerimeter</a></div></div><div class=SRResult id=SR_mxRhombusPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxRhombusPerimeter" target=_parent class=ISymbol>mxRhombusPerimeter</a></div></div><div class=SRResult id=SR_mxSideToSide><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxSideToSide" target=_parent class=ISymbol>mxSideToSide</a></div></div><div class=SRResult id=SR_mxStyleRegistry><div class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry" target=_parent class=ISymbol>mxStyleRegistry</a></div></div><div class=SRResult id=SR_mxStylesheet><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet" target=_parent class=ISymbol>mxStylesheet</a></div></div><div class=SRResult id=SR_mxStylesheetCodec><div class=IEntry><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec" target=_parent class=ISymbol>mxStylesheetCodec</a></div></div><div class=SRResult id=SR_mxTopToBottom><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxTopToBottom" target=_parent class=ISymbol>mxTopToBottom</a></div></div><div class=SRResult id=SR_mxTrianglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxTrianglePerimeter" target=_parent class=ISymbol>mxTrianglePerimeter</a></div></div><div class=SRResult id=SR_mxUtils><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils" target=_parent class=ISymbol>mxUtils</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FilesA.html b/docs/php-api/search/FilesA.html
    new file mode 100644
    index 000000000..566607ad8
    --- /dev/null
    +++ b/docs/php-api/search/FilesA.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_API_spcSpecification><div class=IEntry><a href="../files/index-txt.html#API_Specification" target=_parent class=ISymbol>API Specification</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FilesM.html b/docs/php-api/search/FilesM.html
    new file mode 100644
    index 000000000..db497056d
    --- /dev/null
    +++ b/docs/php-api/search/FilesM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mxGdCanvas_perphp><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.php" target=_parent class=ISymbol>mxGdCanvas.php</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsA.html b/docs/php-api/search/FunctionsA.html
    new file mode 100644
    index 000000000..e3eadfe9e
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsA.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_add><div class=IEntry><a href="javascript:searchResults.Toggle('SR_add')" class=ISymbol>add</a><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel.add" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxRectangle-php.html#mxRectangle.add" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_addAlias><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.addAlias" target=_parent class=ISymbol>addAlias</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_addBundle><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.addBundle" target=_parent class=ISymbol>addBundle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addListener><div class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.addListener" target=_parent class=ISymbol>addListener</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_addLogfile><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.addLogfile" target=_parent class=ISymbol>addLogfile</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_addObjectValue><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.addObjectValue" target=_parent class=ISymbol>addObjectValue</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_addStylename><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.addStylename" target=_parent class=ISymbol>addStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_afterDecode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.afterDecode" target=_parent class=ISymbol>afterDecode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_afterEncode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.afterEncode" target=_parent class=ISymbol>afterEncode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_apply><div class=IEntry><a href="javascript:searchResults.Toggle('SR_apply')" class=ISymbol>apply</a><div class=ISubIndex><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction.apply" target=_parent class=IParent>mxEdgeStyleFunction</a><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction.apply" target=_parent class=IParent>mxPerimeterFunction</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsB.html b/docs/php-api/search/FunctionsB.html
    new file mode 100644
    index 000000000..7208cedfa
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsB.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_beforeDecode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.beforeDecode" target=_parent class=ISymbol>beforeDecode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_beforeEncode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.beforeEncode" target=_parent class=ISymbol>beforeEncode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_beginUpdate><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.beginUpdate" target=_parent class=ISymbol>beginUpdate</a>, <span class=IParent>mxGraphModel</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsC.html b/docs/php-api/search/FunctionsC.html
    new file mode 100644
    index 000000000..4cf54ae31
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsC.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_cellAdded><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellAdded" target=_parent class=ISymbol>cellAdded</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cellCloned><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellCloned" target=_parent class=ISymbol>cellCloned</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cellRemoved><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellRemoved" target=_parent class=ISymbol>cellRemoved</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_childMoved><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.childMoved" target=_parent class=ISymbol>childMoved</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_clear><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.clear" target=_parent class=ISymbol>clear</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCell><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCell" target=_parent class=ISymbol>cloneCell</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCellImpl><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCellImpl" target=_parent class=ISymbol>cloneCellImpl</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCells><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCells" target=_parent class=ISymbol>cloneCells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneTemplate><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.cloneTemplate" target=_parent class=ISymbol>cloneTemplate</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_close><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.close" target=_parent class=ISymbol>close</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_consume><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.consume" target=_parent class=ISymbol>consume</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_contains><div class=IEntry><a href="javascript:searchResults.Toggle('SR_contains')" class=ISymbol>contains</a><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel.contains" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-php.html#mxUtils.contains" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_convert><div class=IEntry><a href="javascript:searchResults.Toggle('SR_convert')" class=ISymbol>convert</a><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.convert" target=_parent class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.convert" target=_parent class=IParent>mxGraphViewImageReader</a></div></div></div><div class=SRResult id=SR_convertFile><div class=IEntry><a href="javascript:searchResults.Toggle('SR_convertFile')" class=ISymbol>convertFile</a><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.convertFile" target=_parent class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.convertFile" target=_parent class=IParent>mxGraphViewImageReader</a></div></div></div><div class=SRResult id=SR_convertValueFromXml><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.convertValueFromXml" target=_parent class=ISymbol>convertValueFromXml</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_convertValueToString><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.convertValueToString" target=_parent class=ISymbol>convertValueToString</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_convertValueToXml><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.convertValueToXml" target=_parent class=ISymbol>convertValueToXml</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_copy><div class=IEntry><a href="javascript:searchResults.Toggle('SR_copy')" class=ISymbol>copy</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.copy" target=_parent class=IParent>mxCell</a><a href="../files/view/mxCellState-php.html#mxCellState.copy" target=_parent class=IParent>mxCellState</a><a href="../files/model/mxGeometry-php.html#mxGeometry.copy" target=_parent class=IParent>mxGeometry</a><a href="../files/util/mxPoint-php.html#mxPoint.copy" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.copy" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_copyValue><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.copyValue" target=_parent class=ISymbol>copyValue</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_create><div class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.create" target=_parent class=ISymbol>create</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_createCanvas><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createCanvas')" class=ISymbol>createCanvas</a><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.createCanvas" target=_parent class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.createCanvas" target=_parent class=IParent>mxGraphViewImageReader</a></div></div></div><div class=SRResult id=SR_createDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.createDefaultEdgeStyle" target=_parent class=ISymbol>createDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_createDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.createDefaultVertexStyle" target=_parent class=ISymbol>createDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_createEdge><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createEdge" target=_parent class=ISymbol>createEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createGraphView><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createGraphView" target=_parent class=ISymbol>createGraphView</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createId><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createId" target=_parent class=ISymbol>createId</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createImage><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createImage" target=_parent class=ISymbol>createImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createRoot><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createRoot" target=_parent class=ISymbol>createRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createState><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.createState" target=_parent class=ISymbol>createState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createStylesheet><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createStylesheet" target=_parent class=ISymbol>createStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createVertex><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createVertex" target=_parent class=ISymbol>createVertex</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createXmlDocument><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.createXmlDocument" target=_parent class=ISymbol>createXmlDocument</a>, <span class=IParent>mxUtils</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsD.html b/docs/php-api/search/FunctionsD.html
    new file mode 100644
    index 000000000..4c5afc736
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsD.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_debug><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.debug" target=_parent class=ISymbol>debug</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_decode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_decode')" class=ISymbol>decode</a><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.decode" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decode" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_decodeAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeAttribute" target=_parent class=ISymbol>decodeAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeAttributes><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeAttributes" target=_parent class=ISymbol>decodeAttributes</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeCell><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.decodeCell" target=_parent class=ISymbol>decodeCell</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_decodeChild><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeChild" target=_parent class=ISymbol>decodeChild</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeChildren><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeChildren" target=_parent class=ISymbol>decodeChildren</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeNode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeNode" target=_parent class=ISymbol>decodeNode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_destroy><div class=IEntry><a href="javascript:searchResults.Toggle('SR_destroy')" class=ISymbol>destroy</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.destroy" target=_parent class=IParent>mxGdCanvas</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.destroy" target=_parent class=IParent>mxGraphViewImageReader</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.destroy" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawActor><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawActor" target=_parent class=ISymbol>drawActor</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawCell><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCell" target=_parent class=ISymbol>drawCell</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawCloud><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCloud" target=_parent class=ISymbol>drawCloud</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawCylinder><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCylinder" target=_parent class=ISymbol>drawCylinder</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawFixedTextLine><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawFixedTextLine" target=_parent class=ISymbol>drawFixedTextLine</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawGraph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawGraph')" class=ISymbol>drawGraph</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawGraph" target=_parent class=IParent>mxGdCanvas</a><a href="../files/view/mxGraph-php.html#mxGraph.drawGraph" target=_parent class=IParent>mxGraph</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawGraph" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawHexagon><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawHexagon" target=_parent class=ISymbol>drawHexagon</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawImage')" class=ISymbol>drawImage</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawImage" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawImage" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawLabel><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawLabel" target=_parent class=ISymbol>drawLabel</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawLine><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawLine')" class=ISymbol>drawLine</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawLine" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawLine" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawMarker><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawMarker" target=_parent class=ISymbol>drawMarker</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawOval><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawOval" target=_parent class=ISymbol>drawOval</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawPolygon><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawPolygon" target=_parent class=ISymbol>drawPolygon</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawRect><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawRect" target=_parent class=ISymbol>drawRect</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawRhombus><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawRhombus" target=_parent class=ISymbol>drawRhombus</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawShape')" class=ISymbol>drawShape</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawShape" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawShape" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawString><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawString" target=_parent class=ISymbol>drawString</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawText><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawText')" class=ISymbol>drawText</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawText" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawText" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawTriangle><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTriangle" target=_parent class=ISymbol>drawTriangle</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawTtfText><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTtfText" target=_parent class=ISymbol>drawTtfText</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawTtxTextLine><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTtxTextLine" target=_parent class=ISymbol>drawTtxTextLine</a>, <span class=IParent>mxGdCanvas</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsE.html b/docs/php-api/search/FunctionsE.html
    new file mode 100644
    index 000000000..451e2f397
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsE.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_encode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_encode')" class=ISymbol>encode</a><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.encode" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encode" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_encodeCell><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.encodeCell" target=_parent class=ISymbol>encodeCell</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_encodeImage><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.encodeImage" target=_parent class=ISymbol>encodeImage</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_encodeObject><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encodeObject" target=_parent class=ISymbol>encodeObject</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_encodeValue><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encodeValue" target=_parent class=ISymbol>encodeValue</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_endElement><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.endElement" target=_parent class=ISymbol>endElement</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_endUpdate><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.endUpdate" target=_parent class=ISymbol>endUpdate</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_enter><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.enter" target=_parent class=ISymbol>enter</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_equals><div class=IEntry><a href="javascript:searchResults.Toggle('SR_equals')" class=ISymbol>equals</a><div class=ISubIndex><a href="../files/util/mxPoint-php.html#mxPoint.equals" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.equals" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_error><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.error" target=_parent class=ISymbol>error</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_evaluate><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.evaluate" target=_parent class=ISymbol>evaluate</a>, <span class=IParent>mxUtils</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsF.html b/docs/php-api/search/FunctionsF.html
    new file mode 100644
    index 000000000..9581396c0
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsF.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_findNode><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.findNode" target=_parent class=ISymbol>findNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_findTreeRoots><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.findTreeRoots" target=_parent class=ISymbol>findTreeRoots</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_fine><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.fine" target=_parent class=ISymbol>fine</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_fireEvent><div class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.fireEvent" target=_parent class=ISymbol>fireEvent</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_flipImage><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.flipImage" target=_parent class=ISymbol>flipImage</a>, <span class=IParent>mxUtils</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsG.html b/docs/php-api/search/FunctionsG.html
    new file mode 100644
    index 000000000..87dafe958
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsG.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_getAttribute><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getAttribute" target=_parent class=ISymbol>getAttribute</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getAttributeName><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getAttributeName" target=_parent class=ISymbol>getAttributeName</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getBoundingBox><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getBoundingBox')" class=ISymbol>getBoundingBox</a><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getBoundingBox" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getBoundingBox" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxUtils-php.html#mxUtils.getBoundingBox" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getBounds" target=_parent class=ISymbol>getBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getBoundsForCells><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getBoundsForCells" target=_parent class=ISymbol>getBoundsForCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellBounds><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getCellBounds" target=_parent class=ISymbol>getCellBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellGeometry><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getCellGeometry" target=_parent class=ISymbol>getCellGeometry</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCells><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getCells" target=_parent class=ISymbol>getCells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getCellStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCellStyle')" class=ISymbol>getCellStyle</a><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getCellStyle" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getCellStyle" target=_parent class=IParent>mxStylesheet</a></div></div></div><div class=SRResult id=SR_getCenterX><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.getCenterX" target=_parent class=ISymbol>getCenterX</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_getCenterY><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.getCenterY" target=_parent class=ISymbol>getCenterY</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_getChildAt><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildAt')" class=ISymbol>getChildAt</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getChildAt" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getChildAt" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildCount><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildCount')" class=ISymbol>getChildCount</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getChildCount" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getChildCount" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildOffsetForCell><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getChildOffsetForCell" target=_parent class=ISymbol>getChildOffsetForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCodec><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getCodec" target=_parent class=ISymbol>getCodec</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_getColor><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getColor" target=_parent class=ISymbol>getColor</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_getConnectionConstraint><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getConnectionConstraint" target=_parent class=ISymbol>getConnectionConstraint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getConnectionPoint><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getConnectionPoint" target=_parent class=ISymbol>getConnectionPoint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getDefaultEdgeStyle" target=_parent class=ISymbol>getDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_getDefaultParent><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getDefaultParent" target=_parent class=ISymbol>getDefaultParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getDefaultVertexStyle" target=_parent class=ISymbol>getDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_getDirectedEdgeCount><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getDirectedEdgeCount" target=_parent class=ISymbol>getDirectedEdgeCount</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getEdgeAt><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeAt')" class=ISymbol>getEdgeAt</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getEdgeAt" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdgeAt" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeCount><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeCount')" class=ISymbol>getEdgeCount</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getEdgeCount" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdgeCount" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeIndex><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getEdgeIndex" target=_parent class=ISymbol>getEdgeIndex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getEdges><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdges" target=_parent class=ISymbol>getEdges</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getEdgeStyle><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getEdgeStyle" target=_parent class=ISymbol>getEdgeStyle</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getElementById><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.getElementById" target=_parent class=ISymbol>getElementById</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_getFieldName><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getFieldName" target=_parent class=ISymbol>getFieldName</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getFieldTemplate><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getFieldTemplate" target=_parent class=ISymbol>getFieldTemplate</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getFixedFontSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getFixedFontSize')" class=ISymbol>getFixedFontSize</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getFixedFontSize" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getFixedFontSize" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGeometry')" class=ISymbol>getGeometry</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getGeometry" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getGeometry" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getGraphBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGraphBounds')" class=ISymbol>getGraphBounds</a><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getGraphBounds" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getGraphBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getHashCode><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getHashCode" target=_parent class=ISymbol>getHashCode</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getHtml><div class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.getHtml" target=_parent class=ISymbol>getHtml</a>, <span class=IParent>mxHtmlCanvas</span></div></div><div class=SRResult id=SR_getId><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getId')" class=ISymbol>getId</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getId" target=_parent class=IParent>mxCell</a><a href="../files/io/mxCodec-php.html#mxCodec.getId" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_getImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getImage')" class=ISymbol>getImage</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getImage" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.getImage" target=_parent class=IParent>mxImageBundle</a></div></div></div><div class=SRResult id=SR_getImageBundles><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getImageBundles" target=_parent class=ISymbol>getImageBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getImageForStyle><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getImageForStyle" target=_parent class=ISymbol>getImageForStyle</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_getImageFromBundles><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getImageFromBundles" target=_parent class=ISymbol>getImageFromBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getImages><div class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.getImages" target=_parent class=ISymbol>getImages</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_getIndex><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getIndex" target=_parent class=ISymbol>getIndex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getInstanceForName><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getInstanceForName" target=_parent class=ISymbol>getInstanceForName</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_getLabel><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getLabel" target=_parent class=ISymbol>getLabel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getLabelPaintBounds><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getLabelPaintBounds" target=_parent class=ISymbol>getLabelPaintBounds</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getLabelSize><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getLabelSize" target=_parent class=ISymbol>getLabelSize</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getModel><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getModel" target=_parent class=ISymbol>getModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getName><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getName')" class=ISymbol>getName</a><div class=ISubIndex><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getName" target=_parent class=IParent>mxCodecRegistry</a><a href="../files/util/mxEventObject-php.html#mxEventObject.getName" target=_parent class=IParent>mxEventObject</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getName" target=_parent class=IParent>mxObjectCodec</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.getName" target=_parent class=IParent>mxStyleRegistry</a></div></div></div><div class=SRResult id=SR_getNearestCommonAncestor><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getNearestCommonAncestor" target=_parent class=ISymbol>getNearestCommonAncestor</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getNextPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getNextPoint" target=_parent class=ISymbol>getNextPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getNumber><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getNumber" target=_parent class=ISymbol>getNumber</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getObject><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.getObject" target=_parent class=ISymbol>getObject</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_getOrigin><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getOrigin" target=_parent class=ISymbol>getOrigin</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getPaintBounds><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getPaintBounds" target=_parent class=ISymbol>getPaintBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getParent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getParent')" class=ISymbol>getParent</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getParent" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getParent" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getParentPath><div class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.getParentPath" target=_parent class=ISymbol>getParentPath</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_getPerimeterBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPerimeterBounds')" class=ISymbol>getPerimeterBounds</a><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState.getPerimeterBounds" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getPerimeterFunction><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterFunction" target=_parent class=ISymbol>getPerimeterFunction</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getPerimeterPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterPoint" target=_parent class=ISymbol>getPerimeterPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPoint" target=_parent class=ISymbol>getPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getProperties><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.getProperties" target=_parent class=ISymbol>getProperties</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_getProperty><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.getProperty" target=_parent class=ISymbol>getProperty</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_getRoot><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getRoot" target=_parent class=ISymbol>getRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getRotatedPoint><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getRotatedPoint" target=_parent class=ISymbol>getRotatedPoint</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getRoutingCenterX><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getRoutingCenterX" target=_parent class=ISymbol>getRoutingCenterX</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getRoutingCenterY><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getRoutingCenterY" target=_parent class=ISymbol>getRoutingCenterY</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getScaledLabelBounds><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getScaledLabelBounds" target=_parent class=ISymbol>getScaledLabelBounds</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getSizeForString><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getSizeForString" target=_parent class=ISymbol>getSizeForString</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getState><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getState" target=_parent class=ISymbol>getState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getStates><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getStates" target=_parent class=ISymbol>getStates</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getStyle')" class=ISymbol>getStyle</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getStyle" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getStyle" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getStylename><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getStylename" target=_parent class=ISymbol>getStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getStylenames><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getStylenames" target=_parent class=ISymbol>getStylenames</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getStylesheet><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getStylesheet" target=_parent class=ISymbol>getStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTerminal')" class=ISymbol>getTerminal</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getTerminal" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getTerminal" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getTerminalPoint><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.getTerminalPoint" target=_parent class=ISymbol>getTerminalPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_getTerminalPort><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getTerminalPort" target=_parent class=ISymbol>getTerminalPort</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getTrueTypeFont><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTrueTypeFont')" class=ISymbol>getTrueTypeFont</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getTrueTypeFont" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getTrueTypeFont" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getTrueTypeFontSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTrueTypeFontSize')" class=ISymbol>getTrueTypeFontSize</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getTrueTypeFontSize" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getTrueTypeFontSize" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getValue')" class=ISymbol>getValue</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getValue" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getValue" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.getValue" target=_parent class=IParent>mxStyleRegistry</a><a href="../files/util/mxUtils-php.html#mxUtils.getValue" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getView><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getView" target=_parent class=ISymbol>getView</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getVisibleTerminal><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getVisibleTerminal" target=_parent class=ISymbol>getVisibleTerminal</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_graphModelChanged><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.graphModelChanged" target=_parent class=ISymbol>graphModelChanged</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_grow><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.grow" target=_parent class=ISymbol>grow</a>, <span class=IParent>mxRectangle</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsI.html b/docs/php-api/search/FunctionsI.html
    new file mode 100644
    index 000000000..631e53d7a
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsI.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_indexOf><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.indexOf" target=_parent class=ISymbol>indexOf</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_indexOfStylename><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.indexOfStylename" target=_parent class=ISymbol>indexOfStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_info><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.info" target=_parent class=ISymbol>info</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_insert><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.insert" target=_parent class=ISymbol>insert</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_insertEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_insertEdge')" class=ISymbol>insertEdge</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.insertEdge" target=_parent class=IParent>mxCell</a><a href="../files/view/mxGraph-php.html#mxGraph.insertEdge" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_insertIntoGraph><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.insertIntoGraph" target=_parent class=ISymbol>insertIntoGraph</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_insertVertex><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.insertVertex" target=_parent class=ISymbol>insertVertex</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_intersection><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.intersection" target=_parent class=ISymbol>intersection</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_invalidate><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.invalidate" target=_parent class=ISymbol>invalidate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isAncestor><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isAncestor" target=_parent class=ISymbol>isAncestor</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_isCellCollapsed><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isCellCollapsed" target=_parent class=ISymbol>isCellCollapsed</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellVisible><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isCellVisible" target=_parent class=ISymbol>isCellVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCollapsed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isCollapsed')" class=ISymbol>isCollapsed</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isCollapsed" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isCollapsed" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isConnectable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isConnectable')" class=ISymbol>isConnectable</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isConnectable" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isConnectable" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isConsumed><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.isConsumed" target=_parent class=ISymbol>isConsumed</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_isEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isEdge')" class=ISymbol>isEdge</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isEdge" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isEdge" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isExcluded><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.isExcluded" target=_parent class=ISymbol>isExcluded</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_isNode><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.isNode" target=_parent class=ISymbol>isNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_isOrthogonal><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isOrthogonal" target=_parent class=ISymbol>isOrthogonal</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isReference><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.isReference" target=_parent class=ISymbol>isReference</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_isVertex><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVertex')" class=ISymbol>isVertex</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isVertex" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isVertex" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isVisible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVisible')" class=ISymbol>isVisible</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isVisible" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isVisible" target=_parent class=IParent>mxGraphModel</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsL.html b/docs/php-api/search/FunctionsL.html
    new file mode 100644
    index 000000000..d8efed9a3
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsL.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_leave><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.leave" target=_parent class=ISymbol>leave</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_loadImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_loadImage')" class=ISymbol>loadImage</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.loadImage" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.loadImage" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_loadXmlDocument><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.loadXmlDocument" target=_parent class=ISymbol>loadXmlDocument</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_lookup><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.lookup" target=_parent class=ISymbol>lookup</a>, <span class=IParent>mxCodec</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsM.html b/docs/php-api/search/FunctionsM.html
    new file mode 100644
    index 000000000..a79cd5db7
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mergeChildren><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mergeChildren" target=_parent class=ISymbol>mergeChildren</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_mergeChildrenImpl><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mergeChildrenImpl" target=_parent class=ISymbol>mergeChildrenImpl</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_mxCell><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.mxCell" target=_parent class=ISymbol>mxCell</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_mxCellState><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.mxCellState" target=_parent class=ISymbol>mxCellState</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_mxConnectionConstraint><div class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.mxConnectionConstraint" target=_parent class=ISymbol>mxConnectionConstraint</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_mxEventObject><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.mxEventObject" target=_parent class=ISymbol>mxEventObject</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_mxGdCanvas><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGdCanvas')" class=ISymbol>mxGdCanvas</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.mxGdCanvas" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.mxGdCanvas" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_mxGeometry><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.mxGeometry" target=_parent class=ISymbol>mxGeometry</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_mxGraphModel><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphModel')" class=ISymbol>mxGraphModel</a><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.mxGraphModel" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mxGraphModel" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_mxGraphView><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.mxGraphView" target=_parent class=ISymbol>mxGraphView</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_mxGraphViewHtmlReader><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphViewHtmlReader')" class=ISymbol>mxGraphViewHtmlReader</a><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.mxGraphViewHtmlReader" target=_parent class=IParent>mxCodec</a><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.mxGraphViewHtmlReader" target=_parent class=IParent>mxGraphViewHtmlReader</a></div></div></div><div class=SRResult id=SR_mxGraphViewImageReader><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.mxGraphViewImageReader" target=_parent class=ISymbol>mxGraphViewImageReader</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_mxImageBundle><div class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.mxImageBundle" target=_parent class=ISymbol>mxImageBundle</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_mxObjectCodec><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxObjectCodec')" class=ISymbol>mxObjectCodec</a><div class=ISubIndex><a href="../files/io/mxCellCodec-php.html#mxCellCodec.mxObjectCodec" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxModelCodec-php.html#mxModelCodec.mxObjectCodec" target=_parent class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.mxObjectCodec" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec.mxObjectCodec" target=_parent class=IParent>mxStylesheetCodec</a></div></div></div><div class=SRResult id=SR_mxPoint><div class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.mxPoint" target=_parent class=ISymbol>mxPoint</a>, <span class=IParent>mxPoint</span></div></div><div class=SRResult id=SR_mxRectangle><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.mxRectangle" target=_parent class=ISymbol>mxRectangle</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_mxStylesheet><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.mxStylesheet" target=_parent class=ISymbol>mxStylesheet</a>, <span class=IParent>mxStylesheet</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsO.html b/docs/php-api/search/FunctionsO.html
    new file mode 100644
    index 000000000..92175b115
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsO.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_offset><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.offset" target=_parent class=ISymbol>offset</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_out><div class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.out" target=_parent class=ISymbol>out</a>, <span class=IParent>mxHtmlCanvas</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsP.html b/docs/php-api/search/FunctionsP.html
    new file mode 100644
    index 000000000..dd9a998db
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsP.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_paintCell><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.paintCell" target=_parent class=ISymbol>paintCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_paintState><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.paintState" target=_parent class=ISymbol>paintState</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_parsePoints><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parsePoints" target=_parent class=ISymbol>parsePoints</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_parseState><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parseState" target=_parent class=ISymbol>parseState</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_parseXml><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.parseXml" target=_parent class=ISymbol>parseXml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_postProcessCellStyle><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.postProcessCellStyle" target=_parent class=ISymbol>postProcessCellStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_processInclude><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.processInclude" target=_parent class=ISymbol>processInclude</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_putCellStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putCellStyle" target=_parent class=ISymbol>putCellStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putDefaultEdgeStyle" target=_parent class=ISymbol>putDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putDefaultVertexStyle" target=_parent class=ISymbol>putDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putImage><div class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.putImage" target=_parent class=ISymbol>putImage</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_putObject><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.putObject" target=_parent class=ISymbol>putObject</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_putValue><div class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.putValue" target=_parent class=ISymbol>putValue</a>, <span class=IParent>mxStyleRegistry</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsR.html b/docs/php-api/search/FunctionsR.html
    new file mode 100644
    index 000000000..65740ea1e
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsR.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_read><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.read" target=_parent class=ISymbol>read</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_readFile><div class=IEntry><a href="javascript:searchResults.Toggle('SR_readFile')" class=ISymbol>readFile</a><div class=ISubIndex><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.readFile" target=_parent class=IParent>mxGraphViewImageReader</a><a href="../files/util/mxUtils-php.html#mxUtils.readFile" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_reference><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.reference" target=_parent class=ISymbol>reference</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_register><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.register" target=_parent class=ISymbol>register</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_remove><div class=IEntry><a href="javascript:searchResults.Toggle('SR_remove')" class=ISymbol>remove</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.remove" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.remove" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_removeAllStylenames><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.removeAllStylenames" target=_parent class=ISymbol>removeAllStylenames</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_removeEdge><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeEdge" target=_parent class=ISymbol>removeEdge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeFromParent><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeFromParent" target=_parent class=ISymbol>removeFromParent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeFromTerminal><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeFromTerminal" target=_parent class=ISymbol>removeFromTerminal</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeImageBundle><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.removeImageBundle" target=_parent class=ISymbol>removeImageBundle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeState><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.removeState" target=_parent class=ISymbol>removeState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_removeStylename><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.removeStylename" target=_parent class=ISymbol>removeStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_resolve><div class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.resolve" target=_parent class=ISymbol>resolve</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_restoreClone><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.restoreClone" target=_parent class=ISymbol>restoreClone</a>, <span class=IParent>mxGraphModel</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsS.html b/docs/php-api/search/FunctionsS.html
    new file mode 100644
    index 000000000..3bb91791d
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsS.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_selectSingleNode><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.selectSingleNode" target=_parent class=ISymbol>selectSingleNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setAttribute><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setAttribute')" class=ISymbol>setAttribute</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setAttribute" target=_parent class=IParent>mxCell</a><a href="../files/io/mxCodec-php.html#mxCodec.setAttribute" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_setCellStyleFlags><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.setCellStyleFlags" target=_parent class=ISymbol>setCellStyleFlags</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setCellStyles><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCellStyles')" class=ISymbol>setCellStyles</a><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.setCellStyles" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-php.html#mxUtils.setCellStyles" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setCollapsed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCollapsed')" class=ISymbol>setCollapsed</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setCollapsed" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setCollapsed" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setConnectable><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setConnectable" target=_parent class=ISymbol>setConnectable</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setEdge><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setEdge" target=_parent class=ISymbol>setEdge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGeometry')" class=ISymbol>setGeometry</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setGeometry" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setGeometry" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setGraphBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setGraphBounds" target=_parent class=ISymbol>setGraphBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setId><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setId" target=_parent class=ISymbol>setId</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setImage><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.setImage" target=_parent class=ISymbol>setImage</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_setImageBundles><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.setImageBundles" target=_parent class=ISymbol>setImageBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setParent><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setParent" target=_parent class=ISymbol>setParent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setRect><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.setRect" target=_parent class=ISymbol>setRect</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_setRoot><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setRoot" target=_parent class=ISymbol>setRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setScale><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setScale" target=_parent class=ISymbol>setScale</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStyle')" class=ISymbol>setStyle</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setStyle" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setStyle" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-php.html#mxUtils.setStyle" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setStyleFlag><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.setStyleFlag" target=_parent class=ISymbol>setStyleFlag</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setTerminal')" class=ISymbol>setTerminal</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setTerminal" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setTerminal" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setTerminalPoint><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.setTerminalPoint" target=_parent class=ISymbol>setTerminalPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_setTerminals><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setTerminals" target=_parent class=ISymbol>setTerminals</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setTranslate><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setTranslate" target=_parent class=ISymbol>setTranslate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setValue')" class=ISymbol>setValue</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setValue" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setValue" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setVertex><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setVertex" target=_parent class=ISymbol>setVertex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setVisible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setVisible')" class=ISymbol>setVisible</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setVisible" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setVisible" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_stackTrace><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.stackTrace" target=_parent class=ISymbol>stackTrace</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_startElement><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.startElement" target=_parent class=ISymbol>startElement</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_styles><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.styles" target=_parent class=ISymbol>styles</a>, <span class=IParent>mxStylesheet</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsT.html b/docs/php-api/search/FunctionsT.html
    new file mode 100644
    index 000000000..9498daa5a
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsT.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_toRadians><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.toRadians" target=_parent class=ISymbol>toRadians</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_transformControlPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.transformControlPoint" target=_parent class=ISymbol>transformControlPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_translate><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.translate" target=_parent class=ISymbol>translate</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_translatePoints><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.translatePoints" target=_parent class=ISymbol>translatePoints</a>, <span class=IParent>mxUtils</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsU.html b/docs/php-api/search/FunctionsU.html
    new file mode 100644
    index 000000000..a6ae0960c
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsU.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_updateBoundingBox><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateBoundingBox" target=_parent class=ISymbol>updateBoundingBox</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateEdgeBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateEdgeBounds" target=_parent class=ISymbol>updateEdgeBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateEdgeParent><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateEdgeParent" target=_parent class=ISymbol>updateEdgeParent</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateEdgeParents><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateEdgeParents" target=_parent class=ISymbol>updateEdgeParents</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateFixedTerminalPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFixedTerminalPoint" target=_parent class=ISymbol>updateFixedTerminalPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFixedTerminalPoints><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFixedTerminalPoints" target=_parent class=ISymbol>updateFixedTerminalPoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFloatingTerminalPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFloatingTerminalPoint" target=_parent class=ISymbol>updateFloatingTerminalPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFloatingTerminalPoints><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFloatingTerminalPoints" target=_parent class=ISymbol>updateFloatingTerminalPoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updatePoints><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updatePoints" target=_parent class=ISymbol>updatePoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateVertexLabelOffset><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateVertexLabelOffset" target=_parent class=ISymbol>updateVertexLabelOffset</a>, <span class=IParent>mxGraphView</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsV.html b/docs/php-api/search/FunctionsV.html
    new file mode 100644
    index 000000000..8837b2aa3
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsV.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_validate><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validate" target=_parent class=ISymbol>validate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validateBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validateBounds" target=_parent class=ISymbol>validateBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validatePoints><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validatePoints" target=_parent class=ISymbol>validatePoints</a>, <span class=IParent>mxGraphView</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/FunctionsW.html b/docs/php-api/search/FunctionsW.html
    new file mode 100644
    index 000000000..5bc453f1e
    --- /dev/null
    +++ b/docs/php-api/search/FunctionsW.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_write><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.write" target=_parent class=ISymbol>write</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_writeAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writeAttribute" target=_parent class=ISymbol>writeAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_writeComplexAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writeComplexAttribute" target=_parent class=ISymbol>writeComplexAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_writeln><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.writeln" target=_parent class=ISymbol>writeln</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_writePrimitiveAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writePrimitiveAttribute" target=_parent class=ISymbol>writePrimitiveAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralA.html b/docs/php-api/search/GeneralA.html
    new file mode 100644
    index 000000000..7e3231213
    --- /dev/null
    +++ b/docs/php-api/search/GeneralA.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_absoluteOffset><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.absoluteOffset" target=_parent class=ISymbol>absoluteOffset</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_absolutePoints><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.absolutePoints" target=_parent class=ISymbol>absolutePoints</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_ACTIVE_undREGION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ACTIVE_REGION" target=_parent class=ISymbol>ACTIVE_REGION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_add><div class=IEntry><a href="javascript:searchResults.Toggle('SR_add')" class=ISymbol>add</a><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel.add" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxRectangle-php.html#mxRectangle.add" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_addAlias><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.addAlias" target=_parent class=ISymbol>addAlias</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_addBundle><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.addBundle" target=_parent class=ISymbol>addBundle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_addListener><div class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.addListener" target=_parent class=ISymbol>addListener</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_addLogfile><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.addLogfile" target=_parent class=ISymbol>addLogfile</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_addObjectValue><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.addObjectValue" target=_parent class=ISymbol>addObjectValue</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_addStylename><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.addStylename" target=_parent class=ISymbol>addStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_afterDecode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.afterDecode" target=_parent class=ISymbol>afterDecode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_afterEncode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.afterEncode" target=_parent class=ISymbol>afterEncode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_aliases><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.aliases" target=_parent class=ISymbol>aliases</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_ALIGN_undBOTTOM><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_BOTTOM" target=_parent class=ISymbol>ALIGN_BOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undCENTER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_CENTER" target=_parent class=ISymbol>ALIGN_CENTER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undLEFT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_LEFT" target=_parent class=ISymbol>ALIGN_LEFT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undMIDDLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_MIDDLE" target=_parent class=ISymbol>ALIGN_MIDDLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undRIGHT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_RIGHT" target=_parent class=ISymbol>ALIGN_RIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undTOP><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_TOP" target=_parent class=ISymbol>ALIGN_TOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_alternateBounds><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.alternateBounds" target=_parent class=ISymbol>alternateBounds</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_antialias><div class=IEntry><a href="javascript:searchResults.Toggle('SR_antialias')" class=ISymbol>antialias</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#antialias" target=_parent class=IParent>Global</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.antialias" target=_parent class=IParent>mxGdCanvas</a></div></div></div><div class=SRResult id=SR_API_spcSpecification><div class=IEntry><a href="../files/index-txt.html#API_Specification" target=_parent class=ISymbol>API Specification</a></div></div><div class=SRResult id=SR_apply><div class=IEntry><a href="javascript:searchResults.Toggle('SR_apply')" class=ISymbol>apply</a><div class=ISubIndex><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction.apply" target=_parent class=IParent>mxEdgeStyleFunction</a><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction.apply" target=_parent class=IParent>mxPerimeterFunction</a></div></div></div><div class=SRResult id=SR_ARROW_undBLOCK><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_BLOCK" target=_parent class=ISymbol>ARROW_BLOCK</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undCLASSIC><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_CLASSIC" target=_parent class=ISymbol>ARROW_CLASSIC</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undDIAMOND><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_DIAMOND" target=_parent class=ISymbol>ARROW_DIAMOND</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undOPEN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_OPEN" target=_parent class=ISymbol>ARROW_OPEN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undOVAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_OVAL" target=_parent class=ISymbol>ARROW_OVAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_SIZE" target=_parent class=ISymbol>ARROW_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_SPACING" target=_parent class=ISymbol>ARROW_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_WIDTH" target=_parent class=ISymbol>ARROW_WIDTH</a>, <span class=IParent>mxConstants</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralB.html b/docs/php-api/search/GeneralB.html
    new file mode 100644
    index 000000000..259f5f254
    --- /dev/null
    +++ b/docs/php-api/search/GeneralB.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_background><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.background" target=_parent class=ISymbol>background</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_beforeDecode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.beforeDecode" target=_parent class=ISymbol>beforeDecode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_beforeEncode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.beforeEncode" target=_parent class=ISymbol>beforeEncode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_beginUpdate><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.beginUpdate" target=_parent class=ISymbol>beginUpdate</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_border><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.border" target=_parent class=ISymbol>border</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_boundingBox><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.boundingBox" target=_parent class=ISymbol>boundingBox</a>, <span class=IParent>mxCellState</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralC.html b/docs/php-api/search/GeneralC.html
    new file mode 100644
    index 000000000..465c835ed
    --- /dev/null
    +++ b/docs/php-api/search/GeneralC.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_canvas><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.canvas" target=_parent class=ISymbol>canvas</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_cell><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.cell" target=_parent class=ISymbol>cell</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_cellAdded><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellAdded" target=_parent class=ISymbol>cellAdded</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cellCloned><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellCloned" target=_parent class=ISymbol>cellCloned</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cellRemoved><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cellRemoved" target=_parent class=ISymbol>cellRemoved</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cells><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cells" target=_parent class=ISymbol>cells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_childMoved><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.childMoved" target=_parent class=ISymbol>childMoved</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_children><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.children" target=_parent class=ISymbol>children</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_clear><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.clear" target=_parent class=ISymbol>clear</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCell><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCell" target=_parent class=ISymbol>cloneCell</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCellImpl><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCellImpl" target=_parent class=ISymbol>cloneCellImpl</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneCells><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cloneCells" target=_parent class=ISymbol>cloneCells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_cloneTemplate><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.cloneTemplate" target=_parent class=ISymbol>cloneTemplate</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_close><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.close" target=_parent class=ISymbol>close</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_codecs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_codecs')" class=ISymbol>codecs</a><div class=ISubIndex><a href="../files/model/mxCellPath-php.html#mxCellPath.codecs" target=_parent class=IParent>mxCellPath</a><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.codecs" target=_parent class=IParent>mxCodecRegistry</a></div></div></div><div class=SRResult id=SR_collapsed><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.collapsed" target=_parent class=ISymbol>collapsed</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_connectable><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.connectable" target=_parent class=ISymbol>connectable</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_consume><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.consume" target=_parent class=ISymbol>consume</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_consumed><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.consumed" target=_parent class=ISymbol>consumed</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_contains><div class=IEntry><a href="javascript:searchResults.Toggle('SR_contains')" class=ISymbol>contains</a><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel.contains" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-php.html#mxUtils.contains" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_convert><div class=IEntry><a href="javascript:searchResults.Toggle('SR_convert')" class=ISymbol>convert</a><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.convert" target=_parent class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.convert" target=_parent class=IParent>mxGraphViewImageReader</a></div></div></div><div class=SRResult id=SR_convertFile><div class=IEntry><a href="javascript:searchResults.Toggle('SR_convertFile')" class=ISymbol>convertFile</a><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.convertFile" target=_parent class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.convertFile" target=_parent class=IParent>mxGraphViewImageReader</a></div></div></div><div class=SRResult id=SR_convertValueFromXml><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.convertValueFromXml" target=_parent class=ISymbol>convertValueFromXml</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_convertValueToString><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.convertValueToString" target=_parent class=ISymbol>convertValueToString</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_convertValueToXml><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.convertValueToXml" target=_parent class=ISymbol>convertValueToXml</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_copy><div class=IEntry><a href="javascript:searchResults.Toggle('SR_copy')" class=ISymbol>copy</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.copy" target=_parent class=IParent>mxCell</a><a href="../files/view/mxCellState-php.html#mxCellState.copy" target=_parent class=IParent>mxCellState</a><a href="../files/model/mxGeometry-php.html#mxGeometry.copy" target=_parent class=IParent>mxGeometry</a><a href="../files/util/mxPoint-php.html#mxPoint.copy" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.copy" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_copyValue><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.copyValue" target=_parent class=ISymbol>copyValue</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_create><div class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.create" target=_parent class=ISymbol>create</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_createCanvas><div class=IEntry><a href="javascript:searchResults.Toggle('SR_createCanvas')" class=ISymbol>createCanvas</a><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.createCanvas" target=_parent class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.createCanvas" target=_parent class=IParent>mxGraphViewImageReader</a></div></div></div><div class=SRResult id=SR_createDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.createDefaultEdgeStyle" target=_parent class=ISymbol>createDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_createDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.createDefaultVertexStyle" target=_parent class=ISymbol>createDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_createEdge><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createEdge" target=_parent class=ISymbol>createEdge</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createGraphView><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createGraphView" target=_parent class=ISymbol>createGraphView</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createId><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createId" target=_parent class=ISymbol>createId</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createIds><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createIds" target=_parent class=ISymbol>createIds</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createImage><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createImage" target=_parent class=ISymbol>createImage</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createRoot><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createRoot" target=_parent class=ISymbol>createRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_createState><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.createState" target=_parent class=ISymbol>createState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_createStylesheet><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createStylesheet" target=_parent class=ISymbol>createStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createVertex><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.createVertex" target=_parent class=ISymbol>createVertex</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_createXmlDocument><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.createXmlDocument" target=_parent class=ISymbol>createXmlDocument</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_current><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.current" target=_parent class=ISymbol>current</a>, <span class=IParent>mxLog</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralD.html b/docs/php-api/search/GeneralD.html
    new file mode 100644
    index 000000000..b8ef8fb9e
    --- /dev/null
    +++ b/docs/php-api/search/GeneralD.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_debug><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.debug" target=_parent class=ISymbol>debug</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_decode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_decode')" class=ISymbol>decode</a><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.decode" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decode" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_decodeAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeAttribute" target=_parent class=ISymbol>decodeAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeAttributes><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeAttributes" target=_parent class=ISymbol>decodeAttributes</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeCell><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.decodeCell" target=_parent class=ISymbol>decodeCell</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_decodeChild><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeChild" target=_parent class=ISymbol>decodeChild</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeChildren><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeChildren" target=_parent class=ISymbol>decodeChildren</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_decodeNode><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.decodeNode" target=_parent class=ISymbol>decodeNode</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_DEFAULT_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_FONTFAMILY" target=_parent class=ISymbol>DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undFONTSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_FONTSIZE" target=_parent class=ISymbol>DEFAULT_FONTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undIMAGESIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_IMAGESIZE" target=_parent class=ISymbol>DEFAULT_IMAGESIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undLINESPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_LINESPACING" target=_parent class=ISymbol>DEFAULT_LINESPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undMARKERSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_MARKERSIZE" target=_parent class=ISymbol>DEFAULT_MARKERSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undSTARTSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_STARTSIZE" target=_parent class=ISymbol>DEFAULT_STARTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_defaultLoopStyle><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.defaultLoopStyle" target=_parent class=ISymbol>defaultLoopStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_DEG_undPER_undRAD><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEG_PER_RAD" target=_parent class=ISymbol>DEG_PER_RAD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_destroy><div class=IEntry><a href="javascript:searchResults.Toggle('SR_destroy')" class=ISymbol>destroy</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.destroy" target=_parent class=IParent>mxGdCanvas</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.destroy" target=_parent class=IParent>mxGraphViewImageReader</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.destroy" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_DIRECTION_undEAST><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_EAST" target=_parent class=ISymbol>DIRECTION_EAST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undNORTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_NORTH" target=_parent class=ISymbol>DIRECTION_NORTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undSOUTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_SOUTH" target=_parent class=ISymbol>DIRECTION_SOUTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undWEST><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_WEST" target=_parent class=ISymbol>DIRECTION_WEST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_document><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.document" target=_parent class=ISymbol>document</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_drawActor><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawActor" target=_parent class=ISymbol>drawActor</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawCell><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCell" target=_parent class=ISymbol>drawCell</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawCloud><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCloud" target=_parent class=ISymbol>drawCloud</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawCylinder><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawCylinder" target=_parent class=ISymbol>drawCylinder</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawFixedTextLine><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawFixedTextLine" target=_parent class=ISymbol>drawFixedTextLine</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawGraph><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawGraph')" class=ISymbol>drawGraph</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawGraph" target=_parent class=IParent>mxGdCanvas</a><a href="../files/view/mxGraph-php.html#mxGraph.drawGraph" target=_parent class=IParent>mxGraph</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawGraph" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawHexagon><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawHexagon" target=_parent class=ISymbol>drawHexagon</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawImage')" class=ISymbol>drawImage</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawImage" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawImage" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawLabel><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawLabel" target=_parent class=ISymbol>drawLabel</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawLine><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawLine')" class=ISymbol>drawLine</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawLine" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawLine" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawMarker><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawMarker" target=_parent class=ISymbol>drawMarker</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawOval><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawOval" target=_parent class=ISymbol>drawOval</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawPolygon><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawPolygon" target=_parent class=ISymbol>drawPolygon</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawRect><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawRect" target=_parent class=ISymbol>drawRect</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawRhombus><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawRhombus" target=_parent class=ISymbol>drawRhombus</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawShape><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawShape')" class=ISymbol>drawShape</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawShape" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawShape" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawString><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawString" target=_parent class=ISymbol>drawString</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawText><div class=IEntry><a href="javascript:searchResults.Toggle('SR_drawText')" class=ISymbol>drawText</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawText" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.drawText" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_drawTriangle><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTriangle" target=_parent class=ISymbol>drawTriangle</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawTtfText><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTtfText" target=_parent class=ISymbol>drawTtfText</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_drawTtxTextLine><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.drawTtxTextLine" target=_parent class=ISymbol>drawTtxTextLine</a>, <span class=IParent>mxGdCanvas</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralE.html b/docs/php-api/search/GeneralE.html
    new file mode 100644
    index 000000000..be3680b98
    --- /dev/null
    +++ b/docs/php-api/search/GeneralE.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_edge><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.edge" target=_parent class=ISymbol>edge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_edges><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.edges" target=_parent class=ISymbol>edges</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_EDGESTYLE_undENTITY_undRELATION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_ENTITY_RELATION" target=_parent class=ISymbol>EDGESTYLE_ENTITY_RELATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undLOOP><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_LOOP" target=_parent class=ISymbol>EDGESTYLE_LOOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undSIDETOSIDE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_SIDETOSIDE" target=_parent class=ISymbol>EDGESTYLE_SIDETOSIDE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undTOPTOBOTTOM><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_TOPTOBOTTOM" target=_parent class=ISymbol>EDGESTYLE_TOPTOBOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ELBOW_undHORIZONTAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ELBOW_HORIZONTAL" target=_parent class=ISymbol>ELBOW_HORIZONTAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ELBOW_undVERTICAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ELBOW_VERTICAL" target=_parent class=ISymbol>ELBOW_VERTICAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ElbowConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.ElbowConnector" target=_parent class=ISymbol>ElbowConnector</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_EllipsePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.EllipsePerimeter" target=_parent class=ISymbol>EllipsePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_EMPTY_undPOINT><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.EMPTY_POINT" target=_parent class=ISymbol>EMPTY_POINT</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_enableTtf><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.enableTtf" target=_parent class=ISymbol>enableTtf</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_encode><div class=IEntry><a href="javascript:searchResults.Toggle('SR_encode')" class=ISymbol>encode</a><div class=ISubIndex><a href="../files/io/mxCodec-php.html#mxCodec.encode" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encode" target=_parent class=IParent>mxObjectCodec</a></div></div></div><div class=SRResult id=SR_encodeCell><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.encodeCell" target=_parent class=ISymbol>encodeCell</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_encodeDefaults><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.encodeDefaults" target=_parent class=ISymbol>encodeDefaults</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_encodeImage><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.encodeImage" target=_parent class=ISymbol>encodeImage</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_encodeObject><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encodeObject" target=_parent class=ISymbol>encodeObject</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_encodeValue><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.encodeValue" target=_parent class=ISymbol>encodeValue</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_endElement><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.endElement" target=_parent class=ISymbol>endElement</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_endUpdate><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.endUpdate" target=_parent class=ISymbol>endUpdate</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_enter><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.enter" target=_parent class=ISymbol>enter</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_ENTITY_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ENTITY_SEGMENT" target=_parent class=ISymbol>ENTITY_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EntityRelation><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.EntityRelation" target=_parent class=ISymbol>EntityRelation</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_equals><div class=IEntry><a href="javascript:searchResults.Toggle('SR_equals')" class=ISymbol>equals</a><div class=ISubIndex><a href="../files/util/mxPoint-php.html#mxPoint.equals" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.equals" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_error><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.error" target=_parent class=ISymbol>error</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_evaluate><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.evaluate" target=_parent class=ISymbol>evaluate</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_eventListeners><div class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.eventListeners" target=_parent class=ISymbol>eventListeners</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_exclude><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.exclude" target=_parent class=ISymbol>exclude</a>, <span class=IParent>mxObjectCodec</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralF.html b/docs/php-api/search/GeneralF.html
    new file mode 100644
    index 000000000..e91c61dde
    --- /dev/null
    +++ b/docs/php-api/search/GeneralF.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_findNode><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.findNode" target=_parent class=ISymbol>findNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_findTreeRoots><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.findTreeRoots" target=_parent class=ISymbol>findTreeRoots</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_fine><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.fine" target=_parent class=ISymbol>fine</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_fireEvent><div class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.fireEvent" target=_parent class=ISymbol>fireEvent</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_flipImage><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.flipImage" target=_parent class=ISymbol>flipImage</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_FONT_undBOLD><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_BOLD" target=_parent class=ISymbol>FONT_BOLD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undITALIC><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_ITALIC" target=_parent class=ISymbol>FONT_ITALIC</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undSHADOW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_SHADOW" target=_parent class=ISymbol>FONT_SHADOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undUNDERLINE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_UNDERLINE" target=_parent class=ISymbol>FONT_UNDERLINE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_Functions><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Functions')" class=ISymbol>Functions</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.Functions" target=_parent class=IParent>mxCell</a><a href="../files/io/mxCellCodec-php.html#mxCellCodec.Functions" target=_parent class=IParent>mxCellCodec</a><a href="../files/model/mxCellPath-php.html#mxCellPath.Functions" target=_parent class=IParent>mxCellPath</a><a href="../files/view/mxCellState-php.html#mxCellState.Functions" target=_parent class=IParent>mxCellState</a><a href="../files/io/mxCodec-php.html#mxCodec.Functions" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.Functions" target=_parent class=IParent>mxCodecRegistry</a><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.Functions" target=_parent class=IParent>mxConnectionConstraint</a><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction.Functions" target=_parent class=IParent>mxEdgeStyleFunction</a><a href="../files/util/mxEventObject-php.html#mxEventObject.Functions" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxEventSource-php.html#mxEventSource.Functions" target=_parent class=IParent>mxEventSource</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.Functions" target=_parent class=IParent>mxGdCanvas</a><a href="../files/model/mxGeometry-php.html#mxGeometry.Functions" target=_parent class=IParent>mxGeometry</a><a href="../files/view/mxGraph-php.html#mxGraph.Functions" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.Functions" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphView-php.html#mxGraphView.Functions" target=_parent class=IParent>mxGraphView</a><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.Functions" target=_parent class=IParent>mxGraphViewHtmlReader</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.Functions" target=_parent class=IParent>mxGraphViewImageReader</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.Functions" target=_parent class=IParent>mxHtmlCanvas</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.Functions" target=_parent class=IParent>mxImageBundle</a><a href="../files/util/mxLog-php.html#mxLog.Functions" target=_parent class=IParent>mxLog</a><a href="../files/io/mxModelCodec-php.html#mxModelCodec.Functions" target=_parent class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.Functions" target=_parent class=IParent>mxObjectCodec</a><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction.Functions" target=_parent class=IParent>mxPerimeterFunction</a><a href="../files/util/mxPoint-php.html#mxPoint.Functions" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.Functions" target=_parent class=IParent>mxRectangle</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.Functions" target=_parent class=IParent>mxStyleRegistry</a><a href="../files/view/mxStylesheet-php.html#mxStylesheet.Functions" target=_parent class=IParent>mxStylesheet</a><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec.Functions" target=_parent class=IParent>mxStylesheetCodec</a><a href="../files/util/mxUtils-php.html#mxUtils.Functions" target=_parent class=IParent>mxUtils</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralG.html b/docs/php-api/search/GeneralG.html
    new file mode 100644
    index 000000000..d5a57b790
    --- /dev/null
    +++ b/docs/php-api/search/GeneralG.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geometry><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.geometry" target=_parent class=ISymbol>geometry</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getAttribute><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getAttribute" target=_parent class=ISymbol>getAttribute</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getAttributeName><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getAttributeName" target=_parent class=ISymbol>getAttributeName</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getBoundingBox><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getBoundingBox')" class=ISymbol>getBoundingBox</a><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getBoundingBox" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getBoundingBox" target=_parent class=IParent>mxGraphView</a><a href="../files/util/mxUtils-php.html#mxUtils.getBoundingBox" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getBounds" target=_parent class=ISymbol>getBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getBoundsForCells><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getBoundsForCells" target=_parent class=ISymbol>getBoundsForCells</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellBounds><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getCellBounds" target=_parent class=ISymbol>getCellBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCellGeometry><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getCellGeometry" target=_parent class=ISymbol>getCellGeometry</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCells><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getCells" target=_parent class=ISymbol>getCells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getCellStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getCellStyle')" class=ISymbol>getCellStyle</a><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getCellStyle" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getCellStyle" target=_parent class=IParent>mxStylesheet</a></div></div></div><div class=SRResult id=SR_getCenterX><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.getCenterX" target=_parent class=ISymbol>getCenterX</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_getCenterY><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.getCenterY" target=_parent class=ISymbol>getCenterY</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_getChildAt><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildAt')" class=ISymbol>getChildAt</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getChildAt" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getChildAt" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildCount><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getChildCount')" class=ISymbol>getChildCount</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getChildCount" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getChildCount" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getChildOffsetForCell><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getChildOffsetForCell" target=_parent class=ISymbol>getChildOffsetForCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getCodec><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getCodec" target=_parent class=ISymbol>getCodec</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_getColor><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getColor" target=_parent class=ISymbol>getColor</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_getConnectionConstraint><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getConnectionConstraint" target=_parent class=ISymbol>getConnectionConstraint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getConnectionPoint><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getConnectionPoint" target=_parent class=ISymbol>getConnectionPoint</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getDefaultEdgeStyle" target=_parent class=ISymbol>getDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_getDefaultParent><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getDefaultParent" target=_parent class=ISymbol>getDefaultParent</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.getDefaultVertexStyle" target=_parent class=ISymbol>getDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_getDirectedEdgeCount><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getDirectedEdgeCount" target=_parent class=ISymbol>getDirectedEdgeCount</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getEdgeAt><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeAt')" class=ISymbol>getEdgeAt</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getEdgeAt" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdgeAt" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeCount><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getEdgeCount')" class=ISymbol>getEdgeCount</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getEdgeCount" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdgeCount" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getEdgeIndex><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getEdgeIndex" target=_parent class=ISymbol>getEdgeIndex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getEdges><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getEdges" target=_parent class=ISymbol>getEdges</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getEdgeStyle><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getEdgeStyle" target=_parent class=ISymbol>getEdgeStyle</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getElementById><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.getElementById" target=_parent class=ISymbol>getElementById</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_getFieldName><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getFieldName" target=_parent class=ISymbol>getFieldName</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getFieldTemplate><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getFieldTemplate" target=_parent class=ISymbol>getFieldTemplate</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_getFixedFontSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getFixedFontSize')" class=ISymbol>getFixedFontSize</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getFixedFontSize" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getFixedFontSize" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGeometry')" class=ISymbol>getGeometry</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getGeometry" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getGeometry" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getGraphBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getGraphBounds')" class=ISymbol>getGraphBounds</a><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.getGraphBounds" target=_parent class=IParent>mxGraph</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getGraphBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getHashCode><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getHashCode" target=_parent class=ISymbol>getHashCode</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getHtml><div class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.getHtml" target=_parent class=ISymbol>getHtml</a>, <span class=IParent>mxHtmlCanvas</span></div></div><div class=SRResult id=SR_getId><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getId')" class=ISymbol>getId</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getId" target=_parent class=IParent>mxCell</a><a href="../files/io/mxCodec-php.html#mxCodec.getId" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_getImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getImage')" class=ISymbol>getImage</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getImage" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.getImage" target=_parent class=IParent>mxImageBundle</a></div></div></div><div class=SRResult id=SR_getImageBundles><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getImageBundles" target=_parent class=ISymbol>getImageBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getImageForStyle><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getImageForStyle" target=_parent class=ISymbol>getImageForStyle</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_getImageFromBundles><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getImageFromBundles" target=_parent class=ISymbol>getImageFromBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getImages><div class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.getImages" target=_parent class=ISymbol>getImages</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_getIndex><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.getIndex" target=_parent class=ISymbol>getIndex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_getInstanceForName><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getInstanceForName" target=_parent class=ISymbol>getInstanceForName</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_getLabel><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getLabel" target=_parent class=ISymbol>getLabel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getLabelPaintBounds><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getLabelPaintBounds" target=_parent class=ISymbol>getLabelPaintBounds</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getLabelSize><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getLabelSize" target=_parent class=ISymbol>getLabelSize</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getModel><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getModel" target=_parent class=ISymbol>getModel</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getName><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getName')" class=ISymbol>getName</a><div class=ISubIndex><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.getName" target=_parent class=IParent>mxCodecRegistry</a><a href="../files/util/mxEventObject-php.html#mxEventObject.getName" target=_parent class=IParent>mxEventObject</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.getName" target=_parent class=IParent>mxObjectCodec</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.getName" target=_parent class=IParent>mxStyleRegistry</a></div></div></div><div class=SRResult id=SR_getNearestCommonAncestor><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getNearestCommonAncestor" target=_parent class=ISymbol>getNearestCommonAncestor</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getNextPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getNextPoint" target=_parent class=ISymbol>getNextPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getNumber><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getNumber" target=_parent class=ISymbol>getNumber</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getObject><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.getObject" target=_parent class=ISymbol>getObject</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_getOrigin><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getOrigin" target=_parent class=ISymbol>getOrigin</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getPaintBounds><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getPaintBounds" target=_parent class=ISymbol>getPaintBounds</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getParent><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getParent')" class=ISymbol>getParent</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getParent" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getParent" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getParentPath><div class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.getParentPath" target=_parent class=ISymbol>getParentPath</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_getPerimeterBounds><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getPerimeterBounds')" class=ISymbol>getPerimeterBounds</a><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState.getPerimeterBounds" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterBounds" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_getPerimeterFunction><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterFunction" target=_parent class=ISymbol>getPerimeterFunction</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getPerimeterPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPerimeterPoint" target=_parent class=ISymbol>getPerimeterPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getPoint" target=_parent class=ISymbol>getPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getProperties><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.getProperties" target=_parent class=ISymbol>getProperties</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_getProperty><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.getProperty" target=_parent class=ISymbol>getProperty</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_getRoot><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getRoot" target=_parent class=ISymbol>getRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_getRotatedPoint><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getRotatedPoint" target=_parent class=ISymbol>getRotatedPoint</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getRoutingCenterX><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getRoutingCenterX" target=_parent class=ISymbol>getRoutingCenterX</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getRoutingCenterY><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getRoutingCenterY" target=_parent class=ISymbol>getRoutingCenterY</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getScaledLabelBounds><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getScaledLabelBounds" target=_parent class=ISymbol>getScaledLabelBounds</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getSizeForString><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getSizeForString" target=_parent class=ISymbol>getSizeForString</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getState><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getState" target=_parent class=ISymbol>getState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getStates><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getStates" target=_parent class=ISymbol>getStates</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getStyle')" class=ISymbol>getStyle</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getStyle" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getStyle" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getStylename><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getStylename" target=_parent class=ISymbol>getStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getStylenames><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.getStylenames" target=_parent class=ISymbol>getStylenames</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_getStylesheet><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getStylesheet" target=_parent class=ISymbol>getStylesheet</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTerminal')" class=ISymbol>getTerminal</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getTerminal" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getTerminal" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_getTerminalPoint><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.getTerminalPoint" target=_parent class=ISymbol>getTerminalPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_getTerminalPort><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getTerminalPort" target=_parent class=ISymbol>getTerminalPort</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_getTrueTypeFont><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTrueTypeFont')" class=ISymbol>getTrueTypeFont</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getTrueTypeFont" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getTrueTypeFont" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getTrueTypeFontSize><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getTrueTypeFontSize')" class=ISymbol>getTrueTypeFontSize</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.getTrueTypeFontSize" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.getTrueTypeFontSize" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_getValue')" class=ISymbol>getValue</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.getValue" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.getValue" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.getValue" target=_parent class=IParent>mxStyleRegistry</a><a href="../files/util/mxUtils-php.html#mxUtils.getValue" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_getView><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.getView" target=_parent class=ISymbol>getView</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_getVisibleTerminal><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.getVisibleTerminal" target=_parent class=ISymbol>getVisibleTerminal</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_graph><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.graph" target=_parent class=ISymbol>graph</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_GRAPH_undMODEL_undCHANGED><div class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.GRAPH_MODEL_CHANGED" target=_parent class=ISymbol>GRAPH_MODEL_CHANGED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_graphBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.graphBounds" target=_parent class=ISymbol>graphBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_graphModelChanged><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.graphModelChanged" target=_parent class=ISymbol>graphModelChanged</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_gridSize><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.gridSize" target=_parent class=ISymbol>gridSize</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_grow><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.grow" target=_parent class=ISymbol>grow</a>, <span class=IParent>mxRectangle</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralH.html b/docs/php-api/search/GeneralH.html
    new file mode 100644
    index 000000000..6ea8e3dc3
    --- /dev/null
    +++ b/docs/php-api/search/GeneralH.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_height><div class=IEntry><a href="javascript:searchResults.Toggle('SR_height')" class=ISymbol>height</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.height" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxRectangle-php.html#mxRectangle.height" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_html><div class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.html" target=_parent class=ISymbol>html</a>, <span class=IParent>mxHtmlCanvas</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralI.html b/docs/php-api/search/GeneralI.html
    new file mode 100644
    index 000000000..e089bd822
    --- /dev/null
    +++ b/docs/php-api/search/GeneralI.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_id><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.id" target=_parent class=ISymbol>id</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_idrefs><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.idrefs" target=_parent class=ISymbol>idrefs</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_image><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.image" target=_parent class=ISymbol>image</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_imageBundles><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.imageBundles" target=_parent class=ISymbol>imageBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_imageCache><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.imageCache" target=_parent class=ISymbol>imageCache</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_images><div class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.images" target=_parent class=ISymbol>images</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_indexOf><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.indexOf" target=_parent class=ISymbol>indexOf</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_indexOfStylename><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.indexOfStylename" target=_parent class=ISymbol>indexOfStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_info><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.info" target=_parent class=ISymbol>info</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_insert><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.insert" target=_parent class=ISymbol>insert</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_insertEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_insertEdge')" class=ISymbol>insertEdge</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.insertEdge" target=_parent class=IParent>mxCell</a><a href="../files/view/mxGraph-php.html#mxGraph.insertEdge" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_insertIntoGraph><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.insertIntoGraph" target=_parent class=ISymbol>insertIntoGraph</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_insertVertex><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.insertVertex" target=_parent class=ISymbol>insertVertex</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_intersection><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.intersection" target=_parent class=ISymbol>intersection</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_invalid><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.invalid" target=_parent class=ISymbol>invalid</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_invalidate><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.invalidate" target=_parent class=ISymbol>invalidate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_isAncestor><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isAncestor" target=_parent class=ISymbol>isAncestor</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_isCellCollapsed><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isCellCollapsed" target=_parent class=ISymbol>isCellCollapsed</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCellVisible><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isCellVisible" target=_parent class=ISymbol>isCellVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isCollapsed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isCollapsed')" class=ISymbol>isCollapsed</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isCollapsed" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isCollapsed" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isConnectable><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isConnectable')" class=ISymbol>isConnectable</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isConnectable" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isConnectable" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isConsumed><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.isConsumed" target=_parent class=ISymbol>isConsumed</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_isEdge><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isEdge')" class=ISymbol>isEdge</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isEdge" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isEdge" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isExcluded><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.isExcluded" target=_parent class=ISymbol>isExcluded</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_isNode><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.isNode" target=_parent class=ISymbol>isNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_isOrthogonal><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.isOrthogonal" target=_parent class=ISymbol>isOrthogonal</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_isReference><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.isReference" target=_parent class=ISymbol>isReference</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_isVertex><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVertex')" class=ISymbol>isVertex</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isVertex" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isVertex" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_isVisible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_isVisible')" class=ISymbol>isVisible</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.isVisible" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.isVisible" target=_parent class=IParent>mxGraphModel</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralL.html b/docs/php-api/search/GeneralL.html
    new file mode 100644
    index 000000000..4dd0687e0
    --- /dev/null
    +++ b/docs/php-api/search/GeneralL.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_LABEL_undINSET><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.LABEL_INSET" target=_parent class=ISymbol>LABEL_INSET</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_labelBounds><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.labelBounds" target=_parent class=ISymbol>labelBounds</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_labelsVisible><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.labelsVisible" target=_parent class=ISymbol>labelsVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_leave><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.leave" target=_parent class=ISymbol>leave</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_length><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.length" target=_parent class=ISymbol>length</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_level_unddebug><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_debug" target=_parent class=ISymbol>level_debug</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_level_underror><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_error" target=_parent class=ISymbol>level_error</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_level_undfine><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_fine" target=_parent class=ISymbol>level_fine</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_level_undinfo><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_info" target=_parent class=ISymbol>level_info</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_level_undwarn><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_warn" target=_parent class=ISymbol>level_warn</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_loadImage><div class=IEntry><a href="javascript:searchResults.Toggle('SR_loadImage')" class=ISymbol>loadImage</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.loadImage" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxUtils-php.html#mxUtils.loadImage" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_loadXmlDocument><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.loadXmlDocument" target=_parent class=ISymbol>loadXmlDocument</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_logfiles><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.logfiles" target=_parent class=ISymbol>logfiles</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_lookup><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.lookup" target=_parent class=ISymbol>lookup</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_Loop><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.Loop" target=_parent class=ISymbol>Loop</a>, <span class=IParent>mxEdgeStyle</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralM.html b/docs/php-api/search/GeneralM.html
    new file mode 100644
    index 000000000..d6180d3da
    --- /dev/null
    +++ b/docs/php-api/search/GeneralM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_maintainEdgeParent><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.maintainEdgeParent" target=_parent class=ISymbol>maintainEdgeParent</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_mapping><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.mapping" target=_parent class=ISymbol>mapping</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_mergeChildren><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mergeChildren" target=_parent class=ISymbol>mergeChildren</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_mergeChildrenImpl><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mergeChildrenImpl" target=_parent class=ISymbol>mergeChildrenImpl</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_MIN_undACTIVE_undREGION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.MIN_ACTIVE_REGION" target=_parent class=ISymbol>MIN_ACTIVE_REGION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_model><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.model" target=_parent class=ISymbol>model</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_mxCell><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCell')" class=ISymbol>mxCell</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell" target=_parent class=IParent>Global</a><a href="../files/model/mxCell-php.html#mxCell.mxCell" target=_parent class=IParent>mxCell</a></div></div></div><div class=SRResult id=SR_mxCellCodec><div class=IEntry><a href="../files/io/mxCellCodec-php.html#mxCellCodec" target=_parent class=ISymbol>mxCellCodec</a></div></div><div class=SRResult id=SR_mxCellPath><div class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath" target=_parent class=ISymbol>mxCellPath</a></div></div><div class=SRResult id=SR_mxCellState><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxCellState')" class=ISymbol>mxCellState</a><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState" target=_parent class=IParent>Global</a><a href="../files/view/mxCellState-php.html#mxCellState.mxCellState" target=_parent class=IParent>mxCellState</a></div></div></div><div class=SRResult id=SR_mxCodec><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec" target=_parent class=ISymbol>mxCodec</a></div></div><div class=SRResult id=SR_mxCodecRegistry><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry" target=_parent class=ISymbol>mxCodecRegistry</a></div></div><div class=SRResult id=SR_mxConnectionConstraint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxConnectionConstraint')" class=ISymbol>mxConnectionConstraint</a><div class=ISubIndex><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint" target=_parent class=IParent>Global</a><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.mxConnectionConstraint" target=_parent class=IParent>mxConnectionConstraint</a></div></div></div><div class=SRResult id=SR_mxConstants><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants" target=_parent class=ISymbol>mxConstants</a></div></div><div class=SRResult id=SR_mxEdgeStyle><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle" target=_parent class=ISymbol>mxEdgeStyle</a></div></div><div class=SRResult id=SR_mxEdgeStyleFunction><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction" target=_parent class=ISymbol>mxEdgeStyleFunction</a></div></div><div class=SRResult id=SR_mxElbowConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxElbowConnector" target=_parent class=ISymbol>mxElbowConnector</a></div></div><div class=SRResult id=SR_mxEllipsePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxEllipsePerimeter" target=_parent class=ISymbol>mxEllipsePerimeter</a></div></div><div class=SRResult id=SR_mxEntityRelation><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEntityRelation" target=_parent class=ISymbol>mxEntityRelation</a></div></div><div class=SRResult id=SR_mxEvent><div class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent" target=_parent class=ISymbol>mxEvent</a></div></div><div class=SRResult id=SR_mxEventObject><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxEventObject')" class=ISymbol>mxEventObject</a><div class=ISubIndex><a href="../files/util/mxEventObject-php.html#mxEventObject" target=_parent class=IParent>Global</a><a href="../files/util/mxEventObject-php.html#mxEventObject.mxEventObject" target=_parent class=IParent>mxEventObject</a></div></div></div><div class=SRResult id=SR_mxEventSource><div class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource" target=_parent class=ISymbol>mxEventSource</a></div></div><div class=SRResult id=SR_mxGdCanvas><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGdCanvas')" class=ISymbol>mxGdCanvas</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas" target=_parent class=IParent>Global</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.mxGdCanvas" target=_parent class=IParent>mxGdCanvas</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.mxGdCanvas" target=_parent class=IParent>mxHtmlCanvas</a></div></div></div><div class=SRResult id=SR_mxGdCanvas_perphp><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.php" target=_parent class=ISymbol>mxGdCanvas.php</a></div></div><div class=SRResult id=SR_mxGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGeometry')" class=ISymbol>mxGeometry</a><div class=ISubIndex><a href="../files/model/mxGeometry-php.html#mxGeometry" target=_parent class=IParent>Global</a><a href="../files/model/mxGeometry-php.html#mxGeometry.mxGeometry" target=_parent class=IParent>mxGeometry</a></div></div></div><div class=SRResult id=SR_mxGraph><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph" target=_parent class=ISymbol>mxGraph</a></div></div><div class=SRResult id=SR_mxGraphModel><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphModel')" class=ISymbol>mxGraphModel</a><div class=ISubIndex><a href="../files/model/mxGraphModel-php.html#mxGraphModel" target=_parent class=IParent>Global</a><a href="../files/view/mxGraph-php.html#mxGraph.mxGraphModel" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.mxGraphModel" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_mxGraphView><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphView')" class=ISymbol>mxGraphView</a><div class=ISubIndex><a href="../files/view/mxGraphView-php.html#mxGraphView" target=_parent class=IParent>Global</a><a href="../files/view/mxGraphView-php.html#mxGraphView.mxGraphView" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR_mxGraphViewHtmlReader><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphViewHtmlReader')" class=ISymbol>mxGraphViewHtmlReader</a><div class=ISubIndex><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader" target=_parent class=IParent>Global</a><a href="../files/io/mxCodec-php.html#mxCodec.mxGraphViewHtmlReader" target=_parent class=IParent>mxCodec</a><a href="../files/reader/mxGraphViewHtmlReader-php.html#mxGraphViewHtmlReader.mxGraphViewHtmlReader" target=_parent class=IParent>mxGraphViewHtmlReader</a></div></div></div><div class=SRResult id=SR_mxGraphViewImageReader><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxGraphViewImageReader')" class=ISymbol>mxGraphViewImageReader</a><div class=ISubIndex><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader" target=_parent class=IParent>Global</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.mxGraphViewImageReader" target=_parent class=IParent>mxGraphViewImageReader</a></div></div></div><div class=SRResult id=SR_mxHtmlCanvas><div class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas" target=_parent class=ISymbol>mxHtmlCanvas</a></div></div><div class=SRResult id=SR_mxImageBundle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxImageBundle')" class=ISymbol>mxImageBundle</a><div class=ISubIndex><a href="../files/util/mxImageBundle-php.html#mxImageBundle" target=_parent class=IParent>Global</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.mxImageBundle" target=_parent class=IParent>mxImageBundle</a></div></div></div><div class=SRResult id=SR_mxLog><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog" target=_parent class=ISymbol>mxLog</a></div></div><div class=SRResult id=SR_mxLoop><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxLoop" target=_parent class=ISymbol>mxLoop</a></div></div><div class=SRResult id=SR_mxModelCodec><div class=IEntry><a href="../files/io/mxModelCodec-php.html#mxModelCodec" target=_parent class=ISymbol>mxModelCodec</a></div></div><div class=SRResult id=SR_mxObjectCodec><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxObjectCodec')" class=ISymbol>mxObjectCodec</a><div class=ISubIndex><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec" target=_parent class=IParent>Global</a><a href="../files/io/mxCellCodec-php.html#mxCellCodec.mxObjectCodec" target=_parent class=IParent>mxCellCodec</a><a href="../files/io/mxModelCodec-php.html#mxModelCodec.mxObjectCodec" target=_parent class=IParent>mxModelCodec</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.mxObjectCodec" target=_parent class=IParent>mxObjectCodec</a><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec.mxObjectCodec" target=_parent class=IParent>mxStylesheetCodec</a></div></div></div><div class=SRResult id=SR_mxPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter" target=_parent class=ISymbol>mxPerimeter</a></div></div><div class=SRResult id=SR_mxPerimeterFunction><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction" target=_parent class=ISymbol>mxPerimeterFunction</a></div></div><div class=SRResult id=SR_mxPoint><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxPoint')" class=ISymbol>mxPoint</a><div class=ISubIndex><a href="../files/util/mxPoint-php.html#mxPoint" target=_parent class=IParent>Global</a><a href="../files/util/mxPoint-php.html#mxPoint.mxPoint" target=_parent class=IParent>mxPoint</a></div></div></div><div class=SRResult id=SR_mxRectangle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxRectangle')" class=ISymbol>mxRectangle</a><div class=ISubIndex><a href="../files/util/mxRectangle-php.html#mxRectangle" target=_parent class=IParent>Global</a><a href="../files/util/mxRectangle-php.html#mxRectangle.mxRectangle" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_mxRectanglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxRectanglePerimeter" target=_parent class=ISymbol>mxRectanglePerimeter</a></div></div><div class=SRResult id=SR_mxRhombusPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxRhombusPerimeter" target=_parent class=ISymbol>mxRhombusPerimeter</a></div></div><div class=SRResult id=SR_mxSideToSide><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxSideToSide" target=_parent class=ISymbol>mxSideToSide</a></div></div><div class=SRResult id=SR_mxStyleRegistry><div class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry" target=_parent class=ISymbol>mxStyleRegistry</a></div></div><div class=SRResult id=SR_mxStylesheet><div class=IEntry><a href="javascript:searchResults.Toggle('SR_mxStylesheet')" class=ISymbol>mxStylesheet</a><div class=ISubIndex><a href="../files/view/mxStylesheet-php.html#mxStylesheet" target=_parent class=IParent>Global</a><a href="../files/view/mxStylesheet-php.html#mxStylesheet.mxStylesheet" target=_parent class=IParent>mxStylesheet</a></div></div></div><div class=SRResult id=SR_mxStylesheetCodec><div class=IEntry><a href="../files/io/mxStylesheetCodec-php.html#mxStylesheetCodec" target=_parent class=ISymbol>mxStylesheetCodec</a></div></div><div class=SRResult id=SR_mxTopToBottom><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxTopToBottom" target=_parent class=ISymbol>mxTopToBottom</a></div></div><div class=SRResult id=SR_mxTrianglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxTrianglePerimeter" target=_parent class=ISymbol>mxTrianglePerimeter</a></div></div><div class=SRResult id=SR_mxUtils><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils" target=_parent class=ISymbol>mxUtils</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralN.html b/docs/php-api/search/GeneralN.html
    new file mode 100644
    index 000000000..0034bf985
    --- /dev/null
    +++ b/docs/php-api/search/GeneralN.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.name" target=_parent class=ISymbol>name</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_nextId><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.nextId" target=_parent class=ISymbol>nextId</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_NONE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NONE" target=_parent class=ISymbol>NONE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undSVG><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_SVG" target=_parent class=ISymbol>NS_SVG</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undXHTML><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_XHTML" target=_parent class=ISymbol>NS_XHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undXLINK><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_XLINK" target=_parent class=ISymbol>NS_XLINK</a>, <span class=IParent>mxConstants</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralO.html b/docs/php-api/search/GeneralO.html
    new file mode 100644
    index 000000000..8b7fc4131
    --- /dev/null
    +++ b/docs/php-api/search/GeneralO.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_objects><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.objects" target=_parent class=ISymbol>objects</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_offset><div class=IEntry><a href="javascript:searchResults.Toggle('SR_offset')" class=ISymbol>offset</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.offset" target=_parent class=IParent>mxGdCanvas</a><a href="../files/model/mxGeometry-php.html#mxGeometry.offset" target=_parent class=IParent>mxGeometry</a></div></div></div><div class=SRResult id=SR_origin><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.origin" target=_parent class=ISymbol>origin</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_out><div class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.out" target=_parent class=ISymbol>out</a>, <span class=IParent>mxHtmlCanvas</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralP.html b/docs/php-api/search/GeneralP.html
    new file mode 100644
    index 000000000..98722b56a
    --- /dev/null
    +++ b/docs/php-api/search/GeneralP.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_paintCell><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.paintCell" target=_parent class=ISymbol>paintCell</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_paintState><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.paintState" target=_parent class=ISymbol>paintState</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_parent><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.parent" target=_parent class=ISymbol>parent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_parsePoints><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parsePoints" target=_parent class=ISymbol>parsePoints</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_parser><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parser" target=_parent class=ISymbol>parser</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_parseState><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parseState" target=_parent class=ISymbol>parseState</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_parseXml><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.parseXml" target=_parent class=ISymbol>parseXml</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_perimeter><div class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.perimeter" target=_parent class=ISymbol>perimeter</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_PERIMETER_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_ELLIPSE" target=_parent class=ISymbol>PERIMETER_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undRECTANGLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_RECTANGLE" target=_parent class=ISymbol>PERIMETER_RECTANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undRHOMBUS><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_RHOMBUS" target=_parent class=ISymbol>PERIMETER_RHOMBUS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undTRIANGLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_TRIANGLE" target=_parent class=ISymbol>PERIMETER_TRIANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_point><div class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.point" target=_parent class=ISymbol>point</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_points><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.points" target=_parent class=ISymbol>points</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_postProcessCellStyle><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.postProcessCellStyle" target=_parent class=ISymbol>postProcessCellStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_printLog><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.printLog" target=_parent class=ISymbol>printLog</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_processInclude><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.processInclude" target=_parent class=ISymbol>processInclude</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_properties><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.properties" target=_parent class=ISymbol>properties</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_putCellStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putCellStyle" target=_parent class=ISymbol>putCellStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putDefaultEdgeStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putDefaultEdgeStyle" target=_parent class=ISymbol>putDefaultEdgeStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putDefaultVertexStyle><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.putDefaultVertexStyle" target=_parent class=ISymbol>putDefaultVertexStyle</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_putImage><div class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.putImage" target=_parent class=ISymbol>putImage</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_putObject><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.putObject" target=_parent class=ISymbol>putObject</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_putValue><div class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.putValue" target=_parent class=ISymbol>putValue</a>, <span class=IParent>mxStyleRegistry</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralR.html b/docs/php-api/search/GeneralR.html
    new file mode 100644
    index 000000000..b00589252
    --- /dev/null
    +++ b/docs/php-api/search/GeneralR.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_RAD_undPER_undDEG><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.RAD_PER_DEG" target=_parent class=ISymbol>RAD_PER_DEG</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_read><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.read" target=_parent class=ISymbol>read</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_readFile><div class=IEntry><a href="javascript:searchResults.Toggle('SR_readFile')" class=ISymbol>readFile</a><div class=ISubIndex><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.readFile" target=_parent class=IParent>mxGraphViewImageReader</a><a href="../files/util/mxUtils-php.html#mxUtils.readFile" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_RectanglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.RectanglePerimeter" target=_parent class=ISymbol>RectanglePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_reference><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.reference" target=_parent class=ISymbol>reference</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_register><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.register" target=_parent class=ISymbol>register</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_relative><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.relative" target=_parent class=ISymbol>relative</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_remove><div class=IEntry><a href="javascript:searchResults.Toggle('SR_remove')" class=ISymbol>remove</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.remove" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.remove" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_removeAllStylenames><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.removeAllStylenames" target=_parent class=ISymbol>removeAllStylenames</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_removeEdge><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeEdge" target=_parent class=ISymbol>removeEdge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeFromParent><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeFromParent" target=_parent class=ISymbol>removeFromParent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeFromTerminal><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.removeFromTerminal" target=_parent class=ISymbol>removeFromTerminal</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_removeImageBundle><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.removeImageBundle" target=_parent class=ISymbol>removeImageBundle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_removeState><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.removeState" target=_parent class=ISymbol>removeState</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_removeStylename><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.removeStylename" target=_parent class=ISymbol>removeStylename</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_resolve><div class=IEntry><a href="../files/model/mxCellPath-php.html#mxCellPath.resolve" target=_parent class=ISymbol>resolve</a>, <span class=IParent>mxCellPath</span></div></div><div class=SRResult id=SR_restoreClone><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.restoreClone" target=_parent class=ISymbol>restoreClone</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_reverse><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.reverse" target=_parent class=ISymbol>reverse</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_RhombusPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.RhombusPerimeter" target=_parent class=ISymbol>RhombusPerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_root><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.root" target=_parent class=ISymbol>root</a>, <span class=IParent>mxGraphModel</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralS.html b/docs/php-api/search/GeneralS.html
    new file mode 100644
    index 000000000..26dc5bea8
    --- /dev/null
    +++ b/docs/php-api/search/GeneralS.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_scale><div class=IEntry><a href="javascript:searchResults.Toggle('SR_scale')" class=ISymbol>scale</a><div class=ISubIndex><a href="../files/view/mxGraphView-php.html#mxGraphView.scale" target=_parent class=IParent>mxGraphView</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.scale" target=_parent class=IParent>mxGraphViewImageReader</a></div></div></div><div class=SRResult id=SR2_SCALE><div class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.SCALE" target=_parent class=ISymbol>SCALE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_segments><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.segments" target=_parent class=ISymbol>segments</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_selectSingleNode><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.selectSingleNode" target=_parent class=ISymbol>selectSingleNode</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setAttribute><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setAttribute')" class=ISymbol>setAttribute</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setAttribute" target=_parent class=IParent>mxCell</a><a href="../files/io/mxCodec-php.html#mxCodec.setAttribute" target=_parent class=IParent>mxCodec</a></div></div></div><div class=SRResult id=SR_setCellStyleFlags><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.setCellStyleFlags" target=_parent class=ISymbol>setCellStyleFlags</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setCellStyles><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCellStyles')" class=ISymbol>setCellStyles</a><div class=ISubIndex><a href="../files/view/mxGraph-php.html#mxGraph.setCellStyles" target=_parent class=IParent>mxGraph</a><a href="../files/util/mxUtils-php.html#mxUtils.setCellStyles" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setCollapsed><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setCollapsed')" class=ISymbol>setCollapsed</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setCollapsed" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setCollapsed" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setConnectable><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setConnectable" target=_parent class=ISymbol>setConnectable</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setEdge><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setEdge" target=_parent class=ISymbol>setEdge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setGeometry><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setGeometry')" class=ISymbol>setGeometry</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setGeometry" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setGeometry" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setGraphBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setGraphBounds" target=_parent class=ISymbol>setGraphBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setId><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setId" target=_parent class=ISymbol>setId</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setImage><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.setImage" target=_parent class=ISymbol>setImage</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_setImageBundles><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.setImageBundles" target=_parent class=ISymbol>setImageBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_setParent><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setParent" target=_parent class=ISymbol>setParent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setRect><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.setRect" target=_parent class=ISymbol>setRect</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_setRoot><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setRoot" target=_parent class=ISymbol>setRoot</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setScale><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setScale" target=_parent class=ISymbol>setScale</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setStyle><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setStyle')" class=ISymbol>setStyle</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setStyle" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setStyle" target=_parent class=IParent>mxGraphModel</a><a href="../files/util/mxUtils-php.html#mxUtils.setStyle" target=_parent class=IParent>mxUtils</a></div></div></div><div class=SRResult id=SR_setStyleFlag><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.setStyleFlag" target=_parent class=ISymbol>setStyleFlag</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_setTerminal><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setTerminal')" class=ISymbol>setTerminal</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setTerminal" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setTerminal" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setTerminalPoint><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.setTerminalPoint" target=_parent class=ISymbol>setTerminalPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_setTerminals><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setTerminals" target=_parent class=ISymbol>setTerminals</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_setTranslate><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.setTranslate" target=_parent class=ISymbol>setTranslate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_setValue><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setValue')" class=ISymbol>setValue</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setValue" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setValue" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_setVertex><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.setVertex" target=_parent class=ISymbol>setVertex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_setVisible><div class=IEntry><a href="javascript:searchResults.Toggle('SR_setVisible')" class=ISymbol>setVisible</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.setVisible" target=_parent class=IParent>mxCell</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.setVisible" target=_parent class=IParent>mxGraphModel</a></div></div></div><div class=SRResult id=SR_SHADOW_undOFFSETX><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHADOW_OFFSETX" target=_parent class=ISymbol>SHADOW_OFFSETX</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHADOW_undOFFSETY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHADOW_OFFSETY" target=_parent class=ISymbol>SHADOW_OFFSETY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_shadowColor><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.shadowColor" target=_parent class=ISymbol>shadowColor</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_SHAPE_undACTOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ACTOR" target=_parent class=ISymbol>SHAPE_ACTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undARROW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ARROW" target=_parent class=ISymbol>SHAPE_ARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCLOUD><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CLOUD" target=_parent class=ISymbol>SHAPE_CLOUD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCONNECTOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CONNECTOR" target=_parent class=ISymbol>SHAPE_CONNECTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCYLINDER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CYLINDER" target=_parent class=ISymbol>SHAPE_CYLINDER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undDOUBLE_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_DOUBLE_ELLIPSE" target=_parent class=ISymbol>SHAPE_DOUBLE_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ELLIPSE" target=_parent class=ISymbol>SHAPE_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undHEXAGON><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_HEXAGON" target=_parent class=ISymbol>SHAPE_HEXAGON</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_IMAGE" target=_parent class=ISymbol>SHAPE_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undLABEL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_LABEL" target=_parent class=ISymbol>SHAPE_LABEL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undLINE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_LINE" target=_parent class=ISymbol>SHAPE_LINE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undRECTANGLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_RECTANGLE" target=_parent class=ISymbol>SHAPE_RECTANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undRHOMBUS><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_RHOMBUS" target=_parent class=ISymbol>SHAPE_RHOMBUS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undSWIMLANE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_SWIMLANE" target=_parent class=ISymbol>SHAPE_SWIMLANE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undTRIANGLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_TRIANGLE" target=_parent class=ISymbol>SHAPE_TRIANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SideToSide><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.SideToSide" target=_parent class=ISymbol>SideToSide</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_source><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.source" target=_parent class=ISymbol>source</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_sourcePoint><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.sourcePoint" target=_parent class=ISymbol>sourcePoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_sSTYLE_undENTRY_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.sSTYLE_ENTRY_PERIMETER" target=_parent class=ISymbol>sSTYLE_ENTRY_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_stackTrace><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.stackTrace" target=_parent class=ISymbol>stackTrace</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_startElement><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.startElement" target=_parent class=ISymbol>startElement</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_states><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.states" target=_parent class=ISymbol>states</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_style><div class=IEntry><a href="javascript:searchResults.Toggle('SR_style')" class=ISymbol>style</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.style" target=_parent class=IParent>mxCell</a><a href="../files/view/mxCellState-php.html#mxCellState.style" target=_parent class=IParent>mxCellState</a></div></div></div><div class=SRResult id=SR_STYLE_undALIGN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ALIGN" target=_parent class=ISymbol>STYLE_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDASHED><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_DASHED" target=_parent class=ISymbol>STYLE_DASHED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_DIRECTION" target=_parent class=ISymbol>STYLE_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEDGE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EDGE" target=_parent class=ISymbol>STYLE_EDGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undELBOW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ELBOW" target=_parent class=ISymbol>STYLE_ELBOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDARROW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENDARROW" target=_parent class=ISymbol>STYLE_ENDARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENDSIZE" target=_parent class=ISymbol>STYLE_ENDSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undX><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENTRY_X" target=_parent class=ISymbol>STYLE_ENTRY_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENTRY_Y" target=_parent class=ISymbol>STYLE_ENTRY_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_PERIMETER" target=_parent class=ISymbol>STYLE_EXIT_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undX><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_X" target=_parent class=ISymbol>STYLE_EXIT_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_Y" target=_parent class=ISymbol>STYLE_EXIT_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FILLCOLOR" target=_parent class=ISymbol>STYLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTCOLOR" target=_parent class=ISymbol>STYLE_FONTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTFAMILY" target=_parent class=ISymbol>STYLE_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTSIZE" target=_parent class=ISymbol>STYLE_FONTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTSTYLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTSTYLE" target=_parent class=ISymbol>STYLE_FONTSTYLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGRADIENT_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_GRADIENT_DIRECTION" target=_parent class=ISymbol>STYLE_GRADIENT_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGRADIENTCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_GRADIENTCOLOR" target=_parent class=ISymbol>STYLE_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undHORIZONTAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_HORIZONTAL" target=_parent class=ISymbol>STYLE_HORIZONTAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE" target=_parent class=ISymbol>STYLE_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undALIGN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_ALIGN" target=_parent class=ISymbol>STYLE_IMAGE_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undBACKGROUND><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_BACKGROUND" target=_parent class=ISymbol>STYLE_IMAGE_BACKGROUND</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undBORDER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_BORDER" target=_parent class=ISymbol>STYLE_IMAGE_BORDER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undFLIPH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_FLIPH" target=_parent class=ISymbol>STYLE_IMAGE_FLIPH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undFLIPV><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_FLIPV" target=_parent class=ISymbol>STYLE_IMAGE_FLIPV</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undHEIGHT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_HEIGHT" target=_parent class=ISymbol>STYLE_IMAGE_HEIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undVERTICALALIGN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_VERTICALALIGN" target=_parent class=ISymbol>STYLE_IMAGE_VERTICALALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_WIDTH" target=_parent class=ISymbol>STYLE_IMAGE_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_COLOR" target=_parent class=ISymbol>STYLE_INDICATOR_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undGRADIENTCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_GRADIENTCOLOR" target=_parent class=ISymbol>STYLE_INDICATOR_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undHEIGHT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_HEIGHT" target=_parent class=ISymbol>STYLE_INDICATOR_HEIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_IMAGE" target=_parent class=ISymbol>STYLE_INDICATOR_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSHAPE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_SHAPE" target=_parent class=ISymbol>STYLE_INDICATOR_SHAPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_SPACING" target=_parent class=ISymbol>STYLE_INDICATOR_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_WIDTH" target=_parent class=ISymbol>STYLE_INDICATOR_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undBACKGROUNDCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_BACKGROUNDCOLOR" target=_parent class=ISymbol>STYLE_LABEL_BACKGROUNDCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undBORDERCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_BORDERCOLOR" target=_parent class=ISymbol>STYLE_LABEL_BORDERCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undPOSITION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_POSITION" target=_parent class=ISymbol>STYLE_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLOOP><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LOOP" target=_parent class=ISymbol>STYLE_LOOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undNOEDGESTYLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_NOEDGESTYLE" target=_parent class=ISymbol>STYLE_NOEDGESTYLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undNOLABEL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_NOLABEL" target=_parent class=ISymbol>STYLE_NOLABEL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_OPACITY" target=_parent class=ISymbol>STYLE_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undORTHOGONAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ORTHOGONAL" target=_parent class=ISymbol>STYLE_ORTHOGONAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undOVERFLOW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_OVERFLOW" target=_parent class=ISymbol>STYLE_OVERFLOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_PERIMETER" target=_parent class=ISymbol>STYLE_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROTATION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROTATION" target=_parent class=ISymbol>STYLE_ROTATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUNDED><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUNDED" target=_parent class=ISymbol>STYLE_ROUNDED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUTING_undCENTER_undX><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUTING_CENTER_X" target=_parent class=ISymbol>STYLE_ROUTING_CENTER_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUTING_undCENTER_undY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUTING_CENTER_Y" target=_parent class=ISymbol>STYLE_ROUTING_CENTER_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SEGMENT" target=_parent class=ISymbol>STYLE_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSEPARATORCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SEPARATORCOLOR" target=_parent class=ISymbol>STYLE_SEPARATORCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSHADOW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SHADOW" target=_parent class=ISymbol>STYLE_SHADOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSHAPE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SHAPE" target=_parent class=ISymbol>STYLE_SHAPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSOURCE_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SOURCE_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_SOURCE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING" target=_parent class=ISymbol>STYLE_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undBOTTOM><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_BOTTOM" target=_parent class=ISymbol>STYLE_SPACING_BOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undLEFT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_LEFT" target=_parent class=ISymbol>STYLE_SPACING_LEFT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undRIGHT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_RIGHT" target=_parent class=ISymbol>STYLE_SPACING_RIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undTOP><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_TOP" target=_parent class=ISymbol>STYLE_SPACING_TOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTARROW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STARTARROW" target=_parent class=ISymbol>STYLE_STARTARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STARTSIZE" target=_parent class=ISymbol>STYLE_STARTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STROKECOLOR" target=_parent class=ISymbol>STYLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STROKEWIDTH" target=_parent class=ISymbol>STYLE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTARGET_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_TARGET_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_TARGET_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTEXT_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_TEXT_OPACITY" target=_parent class=ISymbol>STYLE_TEXT_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undVERTICAL_undALIGN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_VERTICAL_ALIGN" target=_parent class=ISymbol>STYLE_VERTICAL_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undVERTICAL_undLABEL_undPOSITION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_VERTICAL_LABEL_POSITION" target=_parent class=ISymbol>STYLE_VERTICAL_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undWHITE_undSPACE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_WHITE_SPACE" target=_parent class=ISymbol>STYLE_WHITE_SPACE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_styles><div class=IEntry><a href="../files/view/mxStylesheet-php.html#mxStylesheet.styles" target=_parent class=ISymbol>styles</a>, <span class=IParent>mxStylesheet</span></div></div><div class=SRResult id=SR_stylesheet><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.stylesheet" target=_parent class=ISymbol>stylesheet</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralT.html b/docs/php-api/search/GeneralT.html
    new file mode 100644
    index 000000000..8a80a050f
    --- /dev/null
    +++ b/docs/php-api/search/GeneralT.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tab><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.tab" target=_parent class=ISymbol>tab</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_target><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.target" target=_parent class=ISymbol>target</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_targetPoint><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.targetPoint" target=_parent class=ISymbol>targetPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_template><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.template" target=_parent class=ISymbol>template</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_terminalDistance><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.terminalDistance" target=_parent class=ISymbol>terminalDistance</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_TopToBottom><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.TopToBottom" target=_parent class=ISymbol>TopToBottom</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_toRadians><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.toRadians" target=_parent class=ISymbol>toRadians</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_transformControlPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.transformControlPoint" target=_parent class=ISymbol>transformControlPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_translate><div class=IEntry><a href="javascript:searchResults.Toggle('SR_translate')" class=ISymbol>translate</a><div class=ISubIndex><a href="../files/model/mxGeometry-php.html#mxGeometry.translate" target=_parent class=IParent>mxGeometry</a><a href="../files/view/mxGraphView-php.html#mxGraphView.translate" target=_parent class=IParent>mxGraphView</a></div></div></div><div class=SRResult id=SR2_TRANSLATE><div class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.TRANSLATE" target=_parent class=ISymbol>TRANSLATE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_TRANSLATE_undCONTROL_undPOINTS><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.TRANSLATE_CONTROL_POINTS" target=_parent class=ISymbol>TRANSLATE_CONTROL_POINTS</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_translatePoints><div class=IEntry><a href="../files/util/mxUtils-php.html#mxUtils.translatePoints" target=_parent class=ISymbol>translatePoints</a>, <span class=IParent>mxUtils</span></div></div><div class=SRResult id=SR_TrianglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.TrianglePerimeter" target=_parent class=ISymbol>TrianglePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_TTF_undENABLED><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.TTF_ENABLED" target=_parent class=ISymbol>TTF_ENABLED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_TTF_undSIZEFACTOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.TTF_SIZEFACTOR" target=_parent class=ISymbol>TTF_SIZEFACTOR</a>, <span class=IParent>mxConstants</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralU.html b/docs/php-api/search/GeneralU.html
    new file mode 100644
    index 000000000..21963fd85
    --- /dev/null
    +++ b/docs/php-api/search/GeneralU.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_updateBoundingBox><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateBoundingBox" target=_parent class=ISymbol>updateBoundingBox</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateEdgeBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateEdgeBounds" target=_parent class=ISymbol>updateEdgeBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateEdgeParent><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateEdgeParent" target=_parent class=ISymbol>updateEdgeParent</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateEdgeParents><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateEdgeParents" target=_parent class=ISymbol>updateEdgeParents</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updateFixedTerminalPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFixedTerminalPoint" target=_parent class=ISymbol>updateFixedTerminalPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFixedTerminalPoints><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFixedTerminalPoints" target=_parent class=ISymbol>updateFixedTerminalPoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFloatingTerminalPoint><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFloatingTerminalPoint" target=_parent class=ISymbol>updateFloatingTerminalPoint</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateFloatingTerminalPoints><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateFloatingTerminalPoints" target=_parent class=ISymbol>updateFloatingTerminalPoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateLevel><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateLevel" target=_parent class=ISymbol>updateLevel</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_updatePoints><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updatePoints" target=_parent class=ISymbol>updatePoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_updateVertexLabelOffset><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.updateVertexLabelOffset" target=_parent class=ISymbol>updateVertexLabelOffset</a>, <span class=IParent>mxGraphView</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralV.html b/docs/php-api/search/GeneralV.html
    new file mode 100644
    index 000000000..b7493a932
    --- /dev/null
    +++ b/docs/php-api/search/GeneralV.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_validate><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validate" target=_parent class=ISymbol>validate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validateBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validateBounds" target=_parent class=ISymbol>validateBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_validatePoints><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.validatePoints" target=_parent class=ISymbol>validatePoints</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_value><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.value" target=_parent class=ISymbol>value</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_values><div class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.values" target=_parent class=ISymbol>values</a>, <span class=IParent>mxStyleRegistry</span></div></div><div class=SRResult id=SR_Variables><div class=IEntry><a href="javascript:searchResults.Toggle('SR_Variables')" class=ISymbol>Variables</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#Variables" target=_parent class=IParent>Global</a><a href="../files/model/mxCell-php.html#mxCell.Variables" target=_parent class=IParent>mxCell</a><a href="../files/model/mxCellPath-php.html#mxCellPath.Variables" target=_parent class=IParent>mxCellPath</a><a href="../files/view/mxCellState-php.html#mxCellState.Variables" target=_parent class=IParent>mxCellState</a><a href="../files/io/mxCodec-php.html#mxCodec.Variables" target=_parent class=IParent>mxCodec</a><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.Variables" target=_parent class=IParent>mxCodecRegistry</a><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.Variables" target=_parent class=IParent>mxConnectionConstraint</a><a href="../files/util/mxConstants-php.html#mxConstants.Variables" target=_parent class=IParent>mxConstants</a><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.Variables" target=_parent class=IParent>mxEdgeStyle</a><a href="../files/util/mxEvent-php.html#mxEvent.Variables" target=_parent class=IParent>mxEvent</a><a href="../files/util/mxEventObject-php.html#mxEventObject.Variables" target=_parent class=IParent>mxEventObject</a><a href="../files/util/mxEventSource-php.html#mxEventSource.Variables" target=_parent class=IParent>mxEventSource</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.Variables" target=_parent class=IParent>mxGdCanvas</a><a href="../files/model/mxGeometry-php.html#mxGeometry.Variables" target=_parent class=IParent>mxGeometry</a><a href="../files/view/mxGraph-php.html#mxGraph.Variables" target=_parent class=IParent>mxGraph</a><a href="../files/model/mxGraphModel-php.html#mxGraphModel.Variables" target=_parent class=IParent>mxGraphModel</a><a href="../files/view/mxGraphView-php.html#mxGraphView.Variables" target=_parent class=IParent>mxGraphView</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.Variables" target=_parent class=IParent>mxGraphViewImageReader</a><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.Variables" target=_parent class=IParent>mxHtmlCanvas</a><a href="../files/util/mxImageBundle-php.html#mxImageBundle.Variables" target=_parent class=IParent>mxImageBundle</a><a href="../files/util/mxLog-php.html#mxLog.Variables" target=_parent class=IParent>mxLog</a><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.Variables" target=_parent class=IParent>mxObjectCodec</a><a href="../files/view/mxPerimeter-php.html#mxPerimeter.Variables" target=_parent class=IParent>mxPerimeter</a><a href="../files/util/mxPoint-php.html#mxPoint.Variables" target=_parent class=IParent>mxPoint</a><a href="../files/util/mxRectangle-php.html#mxRectangle.Variables" target=_parent class=IParent>mxRectangle</a><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.Variables" target=_parent class=IParent>mxStyleRegistry</a></div></div></div><div class=SRResult id=SR_vertex><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.vertex" target=_parent class=ISymbol>vertex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_view><div class=IEntry><a href="javascript:searchResults.Toggle('SR_view')" class=ISymbol>view</a><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState.view" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraph-php.html#mxGraph.view" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_visible><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.visible" target=_parent class=ISymbol>visible</a>, <span class=IParent>mxCell</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralW.html b/docs/php-api/search/GeneralW.html
    new file mode 100644
    index 000000000..6c7146bf9
    --- /dev/null
    +++ b/docs/php-api/search/GeneralW.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_W3C_undDEFAULT_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.W3C_DEFAULT_FONTFAMILY" target=_parent class=ISymbol>W3C_DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_W3C_undSHADOWCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.W3C_SHADOWCOLOR" target=_parent class=ISymbol>W3C_SHADOWCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_warn><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.warn" target=_parent class=ISymbol>warn</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_width><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.width" target=_parent class=ISymbol>width</a>, <span class=IParent>mxRectangle</span></div></div><div class=SRResult id=SR_write><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.write" target=_parent class=ISymbol>write</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_writeAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writeAttribute" target=_parent class=ISymbol>writeAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_writeComplexAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writeComplexAttribute" target=_parent class=ISymbol>writeComplexAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_writeln><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.writeln" target=_parent class=ISymbol>writeln</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_writePrimitiveAttribute><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.writePrimitiveAttribute" target=_parent class=ISymbol>writePrimitiveAttribute</a>, <span class=IParent>mxObjectCodec</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralX.html b/docs/php-api/search/GeneralX.html
    new file mode 100644
    index 000000000..4190fc871
    --- /dev/null
    +++ b/docs/php-api/search/GeneralX.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.x" target=_parent class=ISymbol>x</a>, <span class=IParent>mxPoint</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/GeneralY.html b/docs/php-api/search/GeneralY.html
    new file mode 100644
    index 000000000..9d399a320
    --- /dev/null
    +++ b/docs/php-api/search/GeneralY.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.y" target=_parent class=ISymbol>y</a>, <span class=IParent>mxPoint</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/InterfacesM.html b/docs/php-api/search/InterfacesM.html
    new file mode 100644
    index 000000000..54e365bce
    --- /dev/null
    +++ b/docs/php-api/search/InterfacesM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_mxEdgeStyleFunction><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyleFunction" target=_parent class=ISymbol>mxEdgeStyleFunction</a></div></div><div class=SRResult id=SR_mxPerimeterFunction><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeterFunction" target=_parent class=ISymbol>mxPerimeterFunction</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/NoResults.html b/docs/php-api/search/NoResults.html
    new file mode 100644
    index 000000000..d252a18b8
    --- /dev/null
    +++ b/docs/php-api/search/NoResults.html
    @@ -0,0 +1,15 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=NoMatches>No Matches</div></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesA.html b/docs/php-api/search/VariablesA.html
    new file mode 100644
    index 000000000..78c7647df
    --- /dev/null
    +++ b/docs/php-api/search/VariablesA.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_absoluteOffset><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.absoluteOffset" target=_parent class=ISymbol>absoluteOffset</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_absolutePoints><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.absolutePoints" target=_parent class=ISymbol>absolutePoints</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_ACTIVE_undREGION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ACTIVE_REGION" target=_parent class=ISymbol>ACTIVE_REGION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_aliases><div class=IEntry><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.aliases" target=_parent class=ISymbol>aliases</a>, <span class=IParent>mxCodecRegistry</span></div></div><div class=SRResult id=SR_ALIGN_undBOTTOM><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_BOTTOM" target=_parent class=ISymbol>ALIGN_BOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undCENTER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_CENTER" target=_parent class=ISymbol>ALIGN_CENTER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undLEFT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_LEFT" target=_parent class=ISymbol>ALIGN_LEFT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undMIDDLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_MIDDLE" target=_parent class=ISymbol>ALIGN_MIDDLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undRIGHT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_RIGHT" target=_parent class=ISymbol>ALIGN_RIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ALIGN_undTOP><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ALIGN_TOP" target=_parent class=ISymbol>ALIGN_TOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_alternateBounds><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.alternateBounds" target=_parent class=ISymbol>alternateBounds</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_antialias><div class=IEntry><a href="javascript:searchResults.Toggle('SR_antialias')" class=ISymbol>antialias</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#antialias" target=_parent class=IParent>Global</a><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.antialias" target=_parent class=IParent>mxGdCanvas</a></div></div></div><div class=SRResult id=SR_ARROW_undBLOCK><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_BLOCK" target=_parent class=ISymbol>ARROW_BLOCK</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undCLASSIC><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_CLASSIC" target=_parent class=ISymbol>ARROW_CLASSIC</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undDIAMOND><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_DIAMOND" target=_parent class=ISymbol>ARROW_DIAMOND</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undOPEN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_OPEN" target=_parent class=ISymbol>ARROW_OPEN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undOVAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_OVAL" target=_parent class=ISymbol>ARROW_OVAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_SIZE" target=_parent class=ISymbol>ARROW_SIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_SPACING" target=_parent class=ISymbol>ARROW_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ARROW_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ARROW_WIDTH" target=_parent class=ISymbol>ARROW_WIDTH</a>, <span class=IParent>mxConstants</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesB.html b/docs/php-api/search/VariablesB.html
    new file mode 100644
    index 000000000..863c93c17
    --- /dev/null
    +++ b/docs/php-api/search/VariablesB.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_background><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.background" target=_parent class=ISymbol>background</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_border><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.border" target=_parent class=ISymbol>border</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_boundingBox><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.boundingBox" target=_parent class=ISymbol>boundingBox</a>, <span class=IParent>mxCellState</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesC.html b/docs/php-api/search/VariablesC.html
    new file mode 100644
    index 000000000..c2ff8a31a
    --- /dev/null
    +++ b/docs/php-api/search/VariablesC.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_canvas><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.canvas" target=_parent class=ISymbol>canvas</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_cell><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.cell" target=_parent class=ISymbol>cell</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_cells><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.cells" target=_parent class=ISymbol>cells</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_children><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.children" target=_parent class=ISymbol>children</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_codecs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_codecs')" class=ISymbol>codecs</a><div class=ISubIndex><a href="../files/model/mxCellPath-php.html#mxCellPath.codecs" target=_parent class=IParent>mxCellPath</a><a href="../files/io/mxCodecRegistry-php.html#mxCodecRegistry.codecs" target=_parent class=IParent>mxCodecRegistry</a></div></div></div><div class=SRResult id=SR_collapsed><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.collapsed" target=_parent class=ISymbol>collapsed</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_connectable><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.connectable" target=_parent class=ISymbol>connectable</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_consumed><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.consumed" target=_parent class=ISymbol>consumed</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_createIds><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.createIds" target=_parent class=ISymbol>createIds</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_current><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.current" target=_parent class=ISymbol>current</a>, <span class=IParent>mxLog</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesD.html b/docs/php-api/search/VariablesD.html
    new file mode 100644
    index 000000000..f69aa485a
    --- /dev/null
    +++ b/docs/php-api/search/VariablesD.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_DEFAULT_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_FONTFAMILY" target=_parent class=ISymbol>DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undFONTSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_FONTSIZE" target=_parent class=ISymbol>DEFAULT_FONTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undIMAGESIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_IMAGESIZE" target=_parent class=ISymbol>DEFAULT_IMAGESIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undLINESPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_LINESPACING" target=_parent class=ISymbol>DEFAULT_LINESPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undMARKERSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_MARKERSIZE" target=_parent class=ISymbol>DEFAULT_MARKERSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DEFAULT_undSTARTSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEFAULT_STARTSIZE" target=_parent class=ISymbol>DEFAULT_STARTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_defaultLoopStyle><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.defaultLoopStyle" target=_parent class=ISymbol>defaultLoopStyle</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_DEG_undPER_undRAD><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DEG_PER_RAD" target=_parent class=ISymbol>DEG_PER_RAD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undEAST><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_EAST" target=_parent class=ISymbol>DIRECTION_EAST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undNORTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_NORTH" target=_parent class=ISymbol>DIRECTION_NORTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undSOUTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_SOUTH" target=_parent class=ISymbol>DIRECTION_SOUTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_DIRECTION_undWEST><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.DIRECTION_WEST" target=_parent class=ISymbol>DIRECTION_WEST</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_document><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.document" target=_parent class=ISymbol>document</a>, <span class=IParent>mxCodec</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesE.html b/docs/php-api/search/VariablesE.html
    new file mode 100644
    index 000000000..dcaabe799
    --- /dev/null
    +++ b/docs/php-api/search/VariablesE.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_edge><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.edge" target=_parent class=ISymbol>edge</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_edges><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.edges" target=_parent class=ISymbol>edges</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_EDGESTYLE_undENTITY_undRELATION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_ENTITY_RELATION" target=_parent class=ISymbol>EDGESTYLE_ENTITY_RELATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undLOOP><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_LOOP" target=_parent class=ISymbol>EDGESTYLE_LOOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undSIDETOSIDE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_SIDETOSIDE" target=_parent class=ISymbol>EDGESTYLE_SIDETOSIDE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EDGESTYLE_undTOPTOBOTTOM><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.EDGESTYLE_TOPTOBOTTOM" target=_parent class=ISymbol>EDGESTYLE_TOPTOBOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ELBOW_undHORIZONTAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ELBOW_HORIZONTAL" target=_parent class=ISymbol>ELBOW_HORIZONTAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ELBOW_undVERTICAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ELBOW_VERTICAL" target=_parent class=ISymbol>ELBOW_VERTICAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_ElbowConnector><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.ElbowConnector" target=_parent class=ISymbol>ElbowConnector</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_EllipsePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.EllipsePerimeter" target=_parent class=ISymbol>EllipsePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_EMPTY_undPOINT><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.EMPTY_POINT" target=_parent class=ISymbol>EMPTY_POINT</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_enableTtf><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.enableTtf" target=_parent class=ISymbol>enableTtf</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_encodeDefaults><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.encodeDefaults" target=_parent class=ISymbol>encodeDefaults</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_ENTITY_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.ENTITY_SEGMENT" target=_parent class=ISymbol>ENTITY_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_EntityRelation><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.EntityRelation" target=_parent class=ISymbol>EntityRelation</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_eventListeners><div class=IEntry><a href="../files/util/mxEventSource-php.html#mxEventSource.eventListeners" target=_parent class=ISymbol>eventListeners</a>, <span class=IParent>mxEventSource</span></div></div><div class=SRResult id=SR_exclude><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.exclude" target=_parent class=ISymbol>exclude</a>, <span class=IParent>mxObjectCodec</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesF.html b/docs/php-api/search/VariablesF.html
    new file mode 100644
    index 000000000..d40c5b43d
    --- /dev/null
    +++ b/docs/php-api/search/VariablesF.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_FONT_undBOLD><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_BOLD" target=_parent class=ISymbol>FONT_BOLD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undITALIC><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_ITALIC" target=_parent class=ISymbol>FONT_ITALIC</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undSHADOW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_SHADOW" target=_parent class=ISymbol>FONT_SHADOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_FONT_undUNDERLINE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.FONT_UNDERLINE" target=_parent class=ISymbol>FONT_UNDERLINE</a>, <span class=IParent>mxConstants</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesG.html b/docs/php-api/search/VariablesG.html
    new file mode 100644
    index 000000000..b446f08c8
    --- /dev/null
    +++ b/docs/php-api/search/VariablesG.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_geometry><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.geometry" target=_parent class=ISymbol>geometry</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_graph><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.graph" target=_parent class=ISymbol>graph</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_GRAPH_undMODEL_undCHANGED><div class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.GRAPH_MODEL_CHANGED" target=_parent class=ISymbol>GRAPH_MODEL_CHANGED</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_graphBounds><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.graphBounds" target=_parent class=ISymbol>graphBounds</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_gridSize><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.gridSize" target=_parent class=ISymbol>gridSize</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesH.html b/docs/php-api/search/VariablesH.html
    new file mode 100644
    index 000000000..6ea8e3dc3
    --- /dev/null
    +++ b/docs/php-api/search/VariablesH.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_height><div class=IEntry><a href="javascript:searchResults.Toggle('SR_height')" class=ISymbol>height</a><div class=ISubIndex><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.height" target=_parent class=IParent>mxGdCanvas</a><a href="../files/util/mxRectangle-php.html#mxRectangle.height" target=_parent class=IParent>mxRectangle</a></div></div></div><div class=SRResult id=SR_html><div class=IEntry><a href="../files/canvas/mxHtmlCanvas-php.html#mxHtmlCanvas.html" target=_parent class=ISymbol>html</a>, <span class=IParent>mxHtmlCanvas</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesI.html b/docs/php-api/search/VariablesI.html
    new file mode 100644
    index 000000000..9a8555acf
    --- /dev/null
    +++ b/docs/php-api/search/VariablesI.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_id><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.id" target=_parent class=ISymbol>id</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_idrefs><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.idrefs" target=_parent class=ISymbol>idrefs</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_image><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.image" target=_parent class=ISymbol>image</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_imageBundles><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.imageBundles" target=_parent class=ISymbol>imageBundles</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_imageCache><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.imageCache" target=_parent class=ISymbol>imageCache</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_images><div class=IEntry><a href="../files/util/mxImageBundle-php.html#mxImageBundle.images" target=_parent class=ISymbol>images</a>, <span class=IParent>mxImageBundle</span></div></div><div class=SRResult id=SR_invalid><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.invalid" target=_parent class=ISymbol>invalid</a>, <span class=IParent>mxCellState</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesL.html b/docs/php-api/search/VariablesL.html
    new file mode 100644
    index 000000000..ccd8c0516
    --- /dev/null
    +++ b/docs/php-api/search/VariablesL.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_LABEL_undINSET><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.LABEL_INSET" target=_parent class=ISymbol>LABEL_INSET</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_labelBounds><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.labelBounds" target=_parent class=ISymbol>labelBounds</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_labelsVisible><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.labelsVisible" target=_parent class=ISymbol>labelsVisible</a>, <span class=IParent>mxGraph</span></div></div><div class=SRResult id=SR_length><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.length" target=_parent class=ISymbol>length</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_level_unddebug><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_debug" target=_parent class=ISymbol>level_debug</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_level_underror><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_error" target=_parent class=ISymbol>level_error</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_level_undfine><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_fine" target=_parent class=ISymbol>level_fine</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_level_undinfo><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_info" target=_parent class=ISymbol>level_info</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_level_undwarn><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.level_warn" target=_parent class=ISymbol>level_warn</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_logfiles><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.logfiles" target=_parent class=ISymbol>logfiles</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_Loop><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.Loop" target=_parent class=ISymbol>Loop</a>, <span class=IParent>mxEdgeStyle</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesM.html b/docs/php-api/search/VariablesM.html
    new file mode 100644
    index 000000000..4139f2bbf
    --- /dev/null
    +++ b/docs/php-api/search/VariablesM.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_maintainEdgeParent><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.maintainEdgeParent" target=_parent class=ISymbol>maintainEdgeParent</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_mapping><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.mapping" target=_parent class=ISymbol>mapping</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_MIN_undACTIVE_undREGION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.MIN_ACTIVE_REGION" target=_parent class=ISymbol>MIN_ACTIVE_REGION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_model><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.model" target=_parent class=ISymbol>model</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesN.html b/docs/php-api/search/VariablesN.html
    new file mode 100644
    index 000000000..0034bf985
    --- /dev/null
    +++ b/docs/php-api/search/VariablesN.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_name><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.name" target=_parent class=ISymbol>name</a>, <span class=IParent>mxEventObject</span></div></div><div class=SRResult id=SR_nextId><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.nextId" target=_parent class=ISymbol>nextId</a>, <span class=IParent>mxGraphModel</span></div></div><div class=SRResult id=SR_NONE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NONE" target=_parent class=ISymbol>NONE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undSVG><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_SVG" target=_parent class=ISymbol>NS_SVG</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undXHTML><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_XHTML" target=_parent class=ISymbol>NS_XHTML</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_NS_undXLINK><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.NS_XLINK" target=_parent class=ISymbol>NS_XLINK</a>, <span class=IParent>mxConstants</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesO.html b/docs/php-api/search/VariablesO.html
    new file mode 100644
    index 000000000..4b34b0179
    --- /dev/null
    +++ b/docs/php-api/search/VariablesO.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_objects><div class=IEntry><a href="../files/io/mxCodec-php.html#mxCodec.objects" target=_parent class=ISymbol>objects</a>, <span class=IParent>mxCodec</span></div></div><div class=SRResult id=SR_offset><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.offset" target=_parent class=ISymbol>offset</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_origin><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.origin" target=_parent class=ISymbol>origin</a>, <span class=IParent>mxCellState</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesP.html b/docs/php-api/search/VariablesP.html
    new file mode 100644
    index 000000000..1efafc5a6
    --- /dev/null
    +++ b/docs/php-api/search/VariablesP.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_parent><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.parent" target=_parent class=ISymbol>parent</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_parser><div class=IEntry><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.parser" target=_parent class=ISymbol>parser</a>, <span class=IParent>mxGraphViewImageReader</span></div></div><div class=SRResult id=SR_perimeter><div class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.perimeter" target=_parent class=ISymbol>perimeter</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_PERIMETER_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_ELLIPSE" target=_parent class=ISymbol>PERIMETER_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undRECTANGLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_RECTANGLE" target=_parent class=ISymbol>PERIMETER_RECTANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undRHOMBUS><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_RHOMBUS" target=_parent class=ISymbol>PERIMETER_RHOMBUS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_PERIMETER_undTRIANGLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.PERIMETER_TRIANGLE" target=_parent class=ISymbol>PERIMETER_TRIANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_point><div class=IEntry><a href="../files/view/mxConnectionConstraint-php.html#mxConnectionConstraint.point" target=_parent class=ISymbol>point</a>, <span class=IParent>mxConnectionConstraint</span></div></div><div class=SRResult id=SR_points><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.points" target=_parent class=ISymbol>points</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_printLog><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.printLog" target=_parent class=ISymbol>printLog</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_properties><div class=IEntry><a href="../files/util/mxEventObject-php.html#mxEventObject.properties" target=_parent class=ISymbol>properties</a>, <span class=IParent>mxEventObject</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesR.html b/docs/php-api/search/VariablesR.html
    new file mode 100644
    index 000000000..9f1154f1d
    --- /dev/null
    +++ b/docs/php-api/search/VariablesR.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_RAD_undPER_undDEG><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.RAD_PER_DEG" target=_parent class=ISymbol>RAD_PER_DEG</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_RectanglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.RectanglePerimeter" target=_parent class=ISymbol>RectanglePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_relative><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.relative" target=_parent class=ISymbol>relative</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_reverse><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.reverse" target=_parent class=ISymbol>reverse</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_RhombusPerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.RhombusPerimeter" target=_parent class=ISymbol>RhombusPerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_root><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.root" target=_parent class=ISymbol>root</a>, <span class=IParent>mxGraphModel</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesS.html b/docs/php-api/search/VariablesS.html
    new file mode 100644
    index 000000000..5f1f2b796
    --- /dev/null
    +++ b/docs/php-api/search/VariablesS.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_scale><div class=IEntry><a href="javascript:searchResults.Toggle('SR_scale')" class=ISymbol>scale</a><div class=ISubIndex><a href="../files/view/mxGraphView-php.html#mxGraphView.scale" target=_parent class=IParent>mxGraphView</a><a href="../files/reader/mxGraphViewImageReader-php.html#mxGraphViewImageReader.scale" target=_parent class=IParent>mxGraphViewImageReader</a></div></div></div><div class=SRResult id=SR2_SCALE><div class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.SCALE" target=_parent class=ISymbol>SCALE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_segments><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.segments" target=_parent class=ISymbol>segments</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_SHADOW_undOFFSETX><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHADOW_OFFSETX" target=_parent class=ISymbol>SHADOW_OFFSETX</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHADOW_undOFFSETY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHADOW_OFFSETY" target=_parent class=ISymbol>SHADOW_OFFSETY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_shadowColor><div class=IEntry><a href="../files/canvas/mxGdCanvas-php.html#mxGdCanvas.shadowColor" target=_parent class=ISymbol>shadowColor</a>, <span class=IParent>mxGdCanvas</span></div></div><div class=SRResult id=SR_SHAPE_undACTOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ACTOR" target=_parent class=ISymbol>SHAPE_ACTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undARROW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ARROW" target=_parent class=ISymbol>SHAPE_ARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCLOUD><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CLOUD" target=_parent class=ISymbol>SHAPE_CLOUD</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCONNECTOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CONNECTOR" target=_parent class=ISymbol>SHAPE_CONNECTOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undCYLINDER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_CYLINDER" target=_parent class=ISymbol>SHAPE_CYLINDER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undDOUBLE_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_DOUBLE_ELLIPSE" target=_parent class=ISymbol>SHAPE_DOUBLE_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undELLIPSE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_ELLIPSE" target=_parent class=ISymbol>SHAPE_ELLIPSE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undHEXAGON><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_HEXAGON" target=_parent class=ISymbol>SHAPE_HEXAGON</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_IMAGE" target=_parent class=ISymbol>SHAPE_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undLABEL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_LABEL" target=_parent class=ISymbol>SHAPE_LABEL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undLINE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_LINE" target=_parent class=ISymbol>SHAPE_LINE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undRECTANGLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_RECTANGLE" target=_parent class=ISymbol>SHAPE_RECTANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undRHOMBUS><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_RHOMBUS" target=_parent class=ISymbol>SHAPE_RHOMBUS</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undSWIMLANE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_SWIMLANE" target=_parent class=ISymbol>SHAPE_SWIMLANE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SHAPE_undTRIANGLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.SHAPE_TRIANGLE" target=_parent class=ISymbol>SHAPE_TRIANGLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_SideToSide><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.SideToSide" target=_parent class=ISymbol>SideToSide</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_source><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.source" target=_parent class=ISymbol>source</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_sourcePoint><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.sourcePoint" target=_parent class=ISymbol>sourcePoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_sSTYLE_undENTRY_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.sSTYLE_ENTRY_PERIMETER" target=_parent class=ISymbol>sSTYLE_ENTRY_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_states><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.states" target=_parent class=ISymbol>states</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR_style><div class=IEntry><a href="javascript:searchResults.Toggle('SR_style')" class=ISymbol>style</a><div class=ISubIndex><a href="../files/model/mxCell-php.html#mxCell.style" target=_parent class=IParent>mxCell</a><a href="../files/view/mxCellState-php.html#mxCellState.style" target=_parent class=IParent>mxCellState</a></div></div></div><div class=SRResult id=SR_STYLE_undALIGN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ALIGN" target=_parent class=ISymbol>STYLE_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDASHED><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_DASHED" target=_parent class=ISymbol>STYLE_DASHED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_DIRECTION" target=_parent class=ISymbol>STYLE_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEDGE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EDGE" target=_parent class=ISymbol>STYLE_EDGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undELBOW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ELBOW" target=_parent class=ISymbol>STYLE_ELBOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDARROW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENDARROW" target=_parent class=ISymbol>STYLE_ENDARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENDSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENDSIZE" target=_parent class=ISymbol>STYLE_ENDSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undX><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENTRY_X" target=_parent class=ISymbol>STYLE_ENTRY_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undENTRY_undY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ENTRY_Y" target=_parent class=ISymbol>STYLE_ENTRY_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_PERIMETER" target=_parent class=ISymbol>STYLE_EXIT_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undX><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_X" target=_parent class=ISymbol>STYLE_EXIT_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undEXIT_undY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_EXIT_Y" target=_parent class=ISymbol>STYLE_EXIT_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFILLCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FILLCOLOR" target=_parent class=ISymbol>STYLE_FILLCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTCOLOR" target=_parent class=ISymbol>STYLE_FONTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTFAMILY" target=_parent class=ISymbol>STYLE_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTSIZE" target=_parent class=ISymbol>STYLE_FONTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undFONTSTYLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_FONTSTYLE" target=_parent class=ISymbol>STYLE_FONTSTYLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGRADIENT_undDIRECTION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_GRADIENT_DIRECTION" target=_parent class=ISymbol>STYLE_GRADIENT_DIRECTION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undGRADIENTCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_GRADIENTCOLOR" target=_parent class=ISymbol>STYLE_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undHORIZONTAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_HORIZONTAL" target=_parent class=ISymbol>STYLE_HORIZONTAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE" target=_parent class=ISymbol>STYLE_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undALIGN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_ALIGN" target=_parent class=ISymbol>STYLE_IMAGE_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undBACKGROUND><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_BACKGROUND" target=_parent class=ISymbol>STYLE_IMAGE_BACKGROUND</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undBORDER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_BORDER" target=_parent class=ISymbol>STYLE_IMAGE_BORDER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undFLIPH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_FLIPH" target=_parent class=ISymbol>STYLE_IMAGE_FLIPH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undFLIPV><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_FLIPV" target=_parent class=ISymbol>STYLE_IMAGE_FLIPV</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undHEIGHT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_HEIGHT" target=_parent class=ISymbol>STYLE_IMAGE_HEIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undVERTICALALIGN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_VERTICALALIGN" target=_parent class=ISymbol>STYLE_IMAGE_VERTICALALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undIMAGE_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_IMAGE_WIDTH" target=_parent class=ISymbol>STYLE_IMAGE_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_COLOR" target=_parent class=ISymbol>STYLE_INDICATOR_COLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undGRADIENTCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_GRADIENTCOLOR" target=_parent class=ISymbol>STYLE_INDICATOR_GRADIENTCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undHEIGHT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_HEIGHT" target=_parent class=ISymbol>STYLE_INDICATOR_HEIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undIMAGE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_IMAGE" target=_parent class=ISymbol>STYLE_INDICATOR_IMAGE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSHAPE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_SHAPE" target=_parent class=ISymbol>STYLE_INDICATOR_SHAPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_SPACING" target=_parent class=ISymbol>STYLE_INDICATOR_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undINDICATOR_undWIDTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_INDICATOR_WIDTH" target=_parent class=ISymbol>STYLE_INDICATOR_WIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undBACKGROUNDCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_BACKGROUNDCOLOR" target=_parent class=ISymbol>STYLE_LABEL_BACKGROUNDCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undBORDERCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_BORDERCOLOR" target=_parent class=ISymbol>STYLE_LABEL_BORDERCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLABEL_undPOSITION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LABEL_POSITION" target=_parent class=ISymbol>STYLE_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undLOOP><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_LOOP" target=_parent class=ISymbol>STYLE_LOOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undNOEDGESTYLE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_NOEDGESTYLE" target=_parent class=ISymbol>STYLE_NOEDGESTYLE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undNOLABEL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_NOLABEL" target=_parent class=ISymbol>STYLE_NOLABEL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_OPACITY" target=_parent class=ISymbol>STYLE_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undORTHOGONAL><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ORTHOGONAL" target=_parent class=ISymbol>STYLE_ORTHOGONAL</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undOVERFLOW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_OVERFLOW" target=_parent class=ISymbol>STYLE_OVERFLOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPERIMETER><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_PERIMETER" target=_parent class=ISymbol>STYLE_PERIMETER</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROTATION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROTATION" target=_parent class=ISymbol>STYLE_ROTATION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUNDED><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUNDED" target=_parent class=ISymbol>STYLE_ROUNDED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUTING_undCENTER_undX><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUTING_CENTER_X" target=_parent class=ISymbol>STYLE_ROUTING_CENTER_X</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undROUTING_undCENTER_undY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_ROUTING_CENTER_Y" target=_parent class=ISymbol>STYLE_ROUTING_CENTER_Y</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSEGMENT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SEGMENT" target=_parent class=ISymbol>STYLE_SEGMENT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSEPARATORCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SEPARATORCOLOR" target=_parent class=ISymbol>STYLE_SEPARATORCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSHADOW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SHADOW" target=_parent class=ISymbol>STYLE_SHADOW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSHAPE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SHAPE" target=_parent class=ISymbol>STYLE_SHAPE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSOURCE_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SOURCE_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_SOURCE_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING" target=_parent class=ISymbol>STYLE_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undBOTTOM><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_BOTTOM" target=_parent class=ISymbol>STYLE_SPACING_BOTTOM</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undLEFT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_LEFT" target=_parent class=ISymbol>STYLE_SPACING_LEFT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undRIGHT><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_RIGHT" target=_parent class=ISymbol>STYLE_SPACING_RIGHT</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSPACING_undTOP><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_SPACING_TOP" target=_parent class=ISymbol>STYLE_SPACING_TOP</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTARROW><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STARTARROW" target=_parent class=ISymbol>STYLE_STARTARROW</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTARTSIZE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STARTSIZE" target=_parent class=ISymbol>STYLE_STARTSIZE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTROKECOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STROKECOLOR" target=_parent class=ISymbol>STYLE_STROKECOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undSTROKEWIDTH><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_STROKEWIDTH" target=_parent class=ISymbol>STYLE_STROKEWIDTH</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTARGET_undPERIMETER_undSPACING><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_TARGET_PERIMETER_SPACING" target=_parent class=ISymbol>STYLE_TARGET_PERIMETER_SPACING</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undTEXT_undOPACITY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_TEXT_OPACITY" target=_parent class=ISymbol>STYLE_TEXT_OPACITY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undVERTICAL_undALIGN><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_VERTICAL_ALIGN" target=_parent class=ISymbol>STYLE_VERTICAL_ALIGN</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undVERTICAL_undLABEL_undPOSITION><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_VERTICAL_LABEL_POSITION" target=_parent class=ISymbol>STYLE_VERTICAL_LABEL_POSITION</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_STYLE_undWHITE_undSPACE><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.STYLE_WHITE_SPACE" target=_parent class=ISymbol>STYLE_WHITE_SPACE</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_stylesheet><div class=IEntry><a href="../files/view/mxGraph-php.html#mxGraph.stylesheet" target=_parent class=ISymbol>stylesheet</a>, <span class=IParent>mxGraph</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesT.html b/docs/php-api/search/VariablesT.html
    new file mode 100644
    index 000000000..c7b983e90
    --- /dev/null
    +++ b/docs/php-api/search/VariablesT.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tab><div class=IEntry><a href="../files/util/mxLog-php.html#mxLog.tab" target=_parent class=ISymbol>tab</a>, <span class=IParent>mxLog</span></div></div><div class=SRResult id=SR_target><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.target" target=_parent class=ISymbol>target</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_targetPoint><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.targetPoint" target=_parent class=ISymbol>targetPoint</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_template><div class=IEntry><a href="../files/io/mxObjectCodec-php.html#mxObjectCodec.template" target=_parent class=ISymbol>template</a>, <span class=IParent>mxObjectCodec</span></div></div><div class=SRResult id=SR_terminalDistance><div class=IEntry><a href="../files/view/mxCellState-php.html#mxCellState.terminalDistance" target=_parent class=ISymbol>terminalDistance</a>, <span class=IParent>mxCellState</span></div></div><div class=SRResult id=SR_TopToBottom><div class=IEntry><a href="../files/view/mxEdgeStyle-php.html#mxEdgeStyle.TopToBottom" target=_parent class=ISymbol>TopToBottom</a>, <span class=IParent>mxEdgeStyle</span></div></div><div class=SRResult id=SR_translate><div class=IEntry><a href="../files/view/mxGraphView-php.html#mxGraphView.translate" target=_parent class=ISymbol>translate</a>, <span class=IParent>mxGraphView</span></div></div><div class=SRResult id=SR2_TRANSLATE><div class=IEntry><a href="../files/util/mxEvent-php.html#mxEvent.TRANSLATE" target=_parent class=ISymbol>TRANSLATE</a>, <span class=IParent>mxEvent</span></div></div><div class=SRResult id=SR_TRANSLATE_undCONTROL_undPOINTS><div class=IEntry><a href="../files/model/mxGeometry-php.html#mxGeometry.TRANSLATE_CONTROL_POINTS" target=_parent class=ISymbol>TRANSLATE_CONTROL_POINTS</a>, <span class=IParent>mxGeometry</span></div></div><div class=SRResult id=SR_TrianglePerimeter><div class=IEntry><a href="../files/view/mxPerimeter-php.html#mxPerimeter.TrianglePerimeter" target=_parent class=ISymbol>TrianglePerimeter</a>, <span class=IParent>mxPerimeter</span></div></div><div class=SRResult id=SR_TTF_undENABLED><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.TTF_ENABLED" target=_parent class=ISymbol>TTF_ENABLED</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_TTF_undSIZEFACTOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.TTF_SIZEFACTOR" target=_parent class=ISymbol>TTF_SIZEFACTOR</a>, <span class=IParent>mxConstants</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesU.html b/docs/php-api/search/VariablesU.html
    new file mode 100644
    index 000000000..c024b9337
    --- /dev/null
    +++ b/docs/php-api/search/VariablesU.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_updateLevel><div class=IEntry><a href="../files/model/mxGraphModel-php.html#mxGraphModel.updateLevel" target=_parent class=ISymbol>updateLevel</a>, <span class=IParent>mxGraphModel</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesV.html b/docs/php-api/search/VariablesV.html
    new file mode 100644
    index 000000000..461e6f04f
    --- /dev/null
    +++ b/docs/php-api/search/VariablesV.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_value><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.value" target=_parent class=ISymbol>value</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_values><div class=IEntry><a href="../files/view/mxStyleRegistry-php.html#mxStyleRegistry.values" target=_parent class=ISymbol>values</a>, <span class=IParent>mxStyleRegistry</span></div></div><div class=SRResult id=SR_vertex><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.vertex" target=_parent class=ISymbol>vertex</a>, <span class=IParent>mxCell</span></div></div><div class=SRResult id=SR_view><div class=IEntry><a href="javascript:searchResults.Toggle('SR_view')" class=ISymbol>view</a><div class=ISubIndex><a href="../files/view/mxCellState-php.html#mxCellState.view" target=_parent class=IParent>mxCellState</a><a href="../files/view/mxGraph-php.html#mxGraph.view" target=_parent class=IParent>mxGraph</a></div></div></div><div class=SRResult id=SR_visible><div class=IEntry><a href="../files/model/mxCell-php.html#mxCell.visible" target=_parent class=ISymbol>visible</a>, <span class=IParent>mxCell</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesW.html b/docs/php-api/search/VariablesW.html
    new file mode 100644
    index 000000000..f2fe7a051
    --- /dev/null
    +++ b/docs/php-api/search/VariablesW.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_W3C_undDEFAULT_undFONTFAMILY><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.W3C_DEFAULT_FONTFAMILY" target=_parent class=ISymbol>W3C_DEFAULT_FONTFAMILY</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_W3C_undSHADOWCOLOR><div class=IEntry><a href="../files/util/mxConstants-php.html#mxConstants.W3C_SHADOWCOLOR" target=_parent class=ISymbol>W3C_SHADOWCOLOR</a>, <span class=IParent>mxConstants</span></div></div><div class=SRResult id=SR_width><div class=IEntry><a href="../files/util/mxRectangle-php.html#mxRectangle.width" target=_parent class=ISymbol>width</a>, <span class=IParent>mxRectangle</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesX.html b/docs/php-api/search/VariablesX.html
    new file mode 100644
    index 000000000..4190fc871
    --- /dev/null
    +++ b/docs/php-api/search/VariablesX.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_x><div class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.x" target=_parent class=ISymbol>x</a>, <span class=IParent>mxPoint</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/search/VariablesY.html b/docs/php-api/search/VariablesY.html
    new file mode 100644
    index 000000000..9d399a320
    --- /dev/null
    +++ b/docs/php-api/search/VariablesY.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    +
    +<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
    +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
    +
    +<!--  Generated by Natural Docs, version 1.5 -->
    +<!--  http://www.naturaldocs.org  -->
    +
    +<!-- saved from url=(0026)http://www.naturaldocs.org -->
    +
    +
    +
    +
    +<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_y><div class=IEntry><a href="../files/util/mxPoint-php.html#mxPoint.y" target=_parent class=ISymbol>y</a>, <span class=IParent>mxPoint</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
    +document.getElementById("Loading").style.display="none";
    +document.getElementById("NoMatches").style.display="none";
    +var searchResults = new SearchResults("searchResults", "HTML");
    +searchResults.Search();
    +--></script></div><script language=JavaScript><!--
    +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
    \ No newline at end of file
    diff --git a/docs/php-api/styles/main.css b/docs/php-api/styles/main.css
    new file mode 100644
    index 000000000..2c0881938
    --- /dev/null
    +++ b/docs/php-api/styles/main.css
    @@ -0,0 +1,828 @@
    +/*
    +   IMPORTANT: If you're editing this file in the output directory of one of
    +   your projects, your changes will be overwritten the next time you run
    +   Natural Docs.  Instead, copy this file to your project directory, make your
    +   changes, and you can use it with -s.  Even better would be to make a CSS
    +   file in your project directory with only your changes, which you can then
    +   use with -s [original style] [your changes].
    +
    +   On the other hand, if you're editing this file in the Natural Docs styles
    +   directory, the changes will automatically be applied to all your projects
    +   that use this style the next time Natural Docs is run on them.
    +
    +   This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure.
    +   Natural Docs is licensed under version 3 of the GNU Affero General Public
    +   License (AGPL).  Refer to License.txt for the complete details.
    +
    +   This file may be distributed with documentation files generated by Natural Docs.
    +   Such documentation is not covered by Natural Docs' copyright and licensing,
    +   and may have its own copyright and distribution terms as decided by its author.
    +*/
    +
    +body {
    +    font: 10pt Verdana, Arial, sans-serif;
    +    color: #000000;
    +    margin: 0; padding: 0;
    +    }
    +
    +.ContentPage,
    +.IndexPage,
    +.FramedMenuPage {
    +    background-color: #E8E8E8;
    +    }
    +.FramedContentPage,
    +.FramedIndexPage,
    +.FramedSearchResultsPage,
    +.PopupSearchResultsPage {
    +    background-color: #FFFFFF;
    +    }
    +
    +
    +a:link,
    +a:visited { color: #900000; text-decoration: none }
    +a:hover { color: #900000; text-decoration: underline }
    +a:active { color: #FF0000; text-decoration: underline }
    +
    +td {
    +    vertical-align: top }
    +
    +img { border: 0;  }
    +
    +
    +/*
    +    Comment out this line to use web-style paragraphs (blank line between
    +    paragraphs, no indent) instead of print-style paragraphs (no blank line,
    +    indented.)
    +*/
    +p {
    +    text-indent: 5ex; margin: 0 }
    +
    +
    +/*  Opera doesn't break with just wbr, but will if you add this.  */
    +.Opera wbr:after {
    +	content: "\00200B";
    +	}
    +
    +
    +/*  Blockquotes are used as containers for things that may need to scroll.  */
    +blockquote {
    +    padding: 0;
    +    margin: 0;
    +    overflow: auto;
    +    }
    +
    +
    +.Firefox1 blockquote {
    +    padding-bottom: .5em;
    +    }
    +
    +/*  Turn off scrolling when printing.  */
    +@media print {
    +    blockquote {
    +        overflow: visible;
    +        }
    +    .IE blockquote {
    +        width: auto;
    +        }
    +    }
    +
    +
    +
    +#Menu {
    +    font-size: 9pt;
    +    padding: 10px 0 0 0;
    +    }
    +.ContentPage #Menu,
    +.IndexPage #Menu {
    +    position: absolute;
    +    top: 0;
    +    left: 0;
    +    width: 31ex;
    +    overflow: hidden;
    +    }
    +.ContentPage .Firefox #Menu,
    +.IndexPage .Firefox #Menu {
    +    width: 27ex;
    +    }
    +
    +
    +    .MTitle {
    +        font-size: 16pt; font-weight: bold; font-variant: small-caps;
    +        text-align: center;
    +        padding: 5px 10px 15px 10px;
    +        border-bottom: 1px dotted #000000;
    +        margin-bottom: 15px }
    +
    +    .MSubTitle {
    +        font-size: 9pt; font-weight: normal; font-variant: normal;
    +        margin-top: 1ex; margin-bottom: 5px }
    +
    +
    +    .MEntry a:link,
    +    .MEntry a:hover,
    +    .MEntry a:visited { color: #606060; margin-right: 0 }
    +    .MEntry a:active { color: #A00000; margin-right: 0 }
    +
    +
    +    .MGroup {
    +        font-variant: small-caps; font-weight: bold;
    +        margin: 1em 0 1em 10px;
    +        }
    +
    +    .MGroupContent {
    +        font-variant: normal; font-weight: normal }
    +
    +    .MGroup a:link,
    +    .MGroup a:hover,
    +    .MGroup a:visited { color: #545454; margin-right: 10px }
    +    .MGroup a:active { color: #A00000; margin-right: 10px }
    +
    +
    +    .MFile,
    +    .MText,
    +    .MLink,
    +    .MIndex {
    +        padding: 1px 17px 2px 10px;
    +        margin: .25em 0 .25em 0;
    +        }
    +
    +    .MText {
    +        font-size: 8pt; font-style: italic }
    +
    +    .MLink {
    +        font-style: italic }
    +
    +    #MSelected {
    +        color: #000000; background-color: #FFFFFF;
    +        /*  Replace padding with border.  */
    +        padding: 0 10px 0 10px;
    +        border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
    +        margin-right: 5px;
    +        }
    +
    +    /*  Close off the left side when its in a group.  */
    +    .MGroup #MSelected {
    +        padding-left: 9px; border-left-width: 1px }
    +
    +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
    +    .Firefox #MSelected {
    +        -moz-border-radius-topright: 10px;
    +        -moz-border-radius-bottomright: 10px }
    +    .Firefox .MGroup #MSelected {
    +        -moz-border-radius-topleft: 10px;
    +        -moz-border-radius-bottomleft: 10px }
    +
    +
    +    #MSearchPanel {
    +        padding: 0px 6px;
    +        margin: .25em 0;
    +        }
    +
    +
    +    #MSearchField {
    +        font: italic 9pt Verdana, sans-serif;
    +        color: #606060;
    +        background-color: #E8E8E8;
    +        border: none;
    +        padding: 2px 4px;
    +        width: 100%;
    +        }
    +    /* Only Opera gets it right. */
    +    .Firefox #MSearchField,
    +    .IE #MSearchField,
    +    .Safari #MSearchField {
    +        width: 94%;
    +        }
    +    .Opera9 #MSearchField,
    +    .Konqueror #MSearchField {
    +        width: 97%;
    +        }
    +    .FramedMenuPage .Firefox #MSearchField,
    +    .FramedMenuPage .Safari #MSearchField,
    +    .FramedMenuPage .Konqueror #MSearchField {
    +        width: 98%;
    +        }
    +
    +    /* Firefox doesn't do this right in frames without #MSearchPanel added on.
    +        It's presence doesn't hurt anything other browsers. */
    +    #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
    +        background-color: #FFFFFF;
    +        border: 1px solid #C0C0C0;
    +        padding: 1px 3px;
    +        }
    +    .MSearchPanelActive #MSearchField {
    +        background-color: #FFFFFF;
    +        border: 1px solid #C0C0C0;
    +        font-style: normal;
    +        padding: 1px 3px;
    +        }
    +
    +    #MSearchType {
    +        visibility: hidden;
    +        font: 8pt Verdana, sans-serif;
    +        width: 98%;
    +        padding: 0;
    +        border: 1px solid #C0C0C0;
    +        }
    +    .MSearchPanelActive #MSearchType,
    +    /*  As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
    +    #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
    +    #MSearchType:focus {
    +        visibility: visible;
    +        color: #606060;
    +        }
    +    #MSearchType option#MSearchEverything {
    +        font-weight: bold;
    +        }
    +
    +    .Opera8 .MSearchPanelInactive:hover,
    +    .Opera8 .MSearchPanelActive {
    +        margin-left: -1px;
    +        }
    +
    +
    +    iframe#MSearchResults {
    +        width: 60ex;
    +        height: 15em;
    +        }
    +    #MSearchResultsWindow {
    +        display: none;
    +        position: absolute;
    +        left: 0; top: 0;
    +        border: 1px solid #000000;
    +        background-color: #E8E8E8;
    +        }
    +    #MSearchResultsWindowClose {
    +        font-weight: bold;
    +        font-size: 8pt;
    +        display: block;
    +        padding: 2px 5px;
    +        }
    +    #MSearchResultsWindowClose:link,
    +    #MSearchResultsWindowClose:visited {
    +        color: #000000;
    +        text-decoration: none;
    +        }
    +    #MSearchResultsWindowClose:active,
    +    #MSearchResultsWindowClose:hover {
    +        color: #800000;
    +        text-decoration: none;
    +        background-color: #F4F4F4;
    +        }
    +
    +
    +
    +
    +#Content {
    +    padding-bottom: 15px;
    +    }
    +
    +.ContentPage #Content {
    +    border-width: 0 0 1px 1px;
    +    border-style: solid;
    +    border-color: #000000;
    +    background-color: #FFFFFF;
    +    font-size: 9pt;  /* To make 31ex match the menu's 31ex. */
    +    margin-left: 31ex;
    +    }
    +.ContentPage .Firefox #Content {
    +    margin-left: 27ex;
    +    }
    +
    +
    +
    +    .CTopic {
    +        font-size: 10pt;
    +        margin-bottom: 3em;
    +        }
    +
    +
    +    .CTitle {
    +        font-size: 12pt; font-weight: bold;
    +        border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
    +        margin: 0 15px .5em 15px }
    +
    +    .CGroup .CTitle {
    +        font-size: 16pt; font-variant: small-caps;
    +        padding-left: 15px; padding-right: 15px;
    +        border-width: 0 0 2px 0; border-color: #000000;
    +        margin-left: 0; margin-right: 0 }
    +
    +    .CClass .CTitle,
    +    .CInterface .CTitle,
    +    .CDatabase .CTitle,
    +    .CDatabaseTable .CTitle,
    +    .CSection .CTitle {
    +        font-size: 18pt;
    +        color: #FFFFFF; background-color: #A0A0A0;
    +        padding: 10px 15px 10px 15px;
    +        border-width: 2px 0; border-color: #000000;
    +        margin-left: 0; margin-right: 0 }
    +
    +    #MainTopic .CTitle {
    +        font-size: 20pt;
    +        color: #FFFFFF; background-color: #7070C0;
    +        padding: 10px 15px 10px 15px;
    +        border-width: 0 0 3px 0; border-color: #000000;
    +        margin-left: 0; margin-right: 0 }
    +
    +    .CBody {
    +        margin-left: 15px; margin-right: 15px }
    +
    +
    +    .CToolTip {
    +        position: absolute; visibility: hidden;
    +        left: 0; top: 0;
    +        background-color: #FFFFE0;
    +        padding: 5px;
    +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
    +        font-size: 8pt;
    +        }
    +
    +    .Opera .CToolTip {
    +        max-width: 98%;
    +        }
    +
    +    /*  Scrollbars would be useless.  */
    +    .CToolTip blockquote {
    +        overflow: hidden;
    +        }
    +    .IE6 .CToolTip blockquote {
    +        overflow: visible;
    +        }
    +
    +    .CHeading {
    +        font-weight: bold; font-size: 10pt;
    +        margin: 1.5em 0 .5em 0;
    +        }
    +
    +    .CBody pre {
    +        font: 10pt "Courier New", Courier, monospace;
    +	    background-color: #FCFCFC;
    +	    margin: 1em 35px;
    +	    padding: 10px 15px 10px 10px;
    +	    border-color: #E0E0E0 #E0E0E0 #E0E0E0 #E4E4E4;
    +	    border-width: 1px 1px 1px 6px;
    +	    border-style: dashed dashed dashed solid;
    +        }
    +
    +    .CBody ul {
    +        /*  I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
    +             Reapply it here as padding.  */
    +        padding-left: 15px; padding-right: 15px;
    +        margin: .5em 5ex .5em 5ex;
    +        }
    +
    +    .CDescriptionList {
    +        margin: .5em 5ex 0 5ex }
    +
    +        .CDLEntry {
    +            font: 10pt "Courier New", Courier, monospace; color: #808080;
    +            padding-bottom: .25em;
    +            white-space: nowrap }
    +
    +        .CDLDescription {
    +            font-size: 10pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
    +            padding-bottom: .5em; padding-left: 5ex }
    +
    +
    +    .CTopic img {
    +        text-align: center;
    +        display: block;
    +        margin: 1em auto;
    +        }
    +    .CImageCaption {
    +        font-variant: small-caps;
    +        font-size: 8pt;
    +        color: #808080;
    +        text-align: center;
    +        position: relative;
    +        top: 1em;
    +        }
    +
    +    .CImageLink {
    +        color: #808080;
    +        font-style: italic;
    +        }
    +    a.CImageLink:link,
    +    a.CImageLink:visited,
    +    a.CImageLink:hover { color: #808080 }
    +
    +
    +
    +
    +
    +.Prototype {
    +    font: 10pt "Courier New", Courier, monospace;
    +    padding: 5px 3ex;
    +    border-width: 1px; border-style: solid;
    +    margin: 0 5ex 1.5em 5ex;
    +    }
    +
    +    .Prototype td {
    +        font-size: 10pt;
    +        }
    +
    +    .PDefaultValue,
    +    .PDefaultValuePrefix,
    +    .PTypePrefix {
    +        color: #8F8F8F;
    +        }
    +    .PTypePrefix {
    +        text-align: right;
    +        }
    +    .PAfterParameters {
    +        vertical-align: bottom;
    +        }
    +
    +    .IE .Prototype table {
    +        padding: 0;
    +        }
    +
    +    .CFunction .Prototype {
    +        background-color: #F4F4F4; border-color: #D0D0D0 }
    +    .CProperty .Prototype {
    +        background-color: #F4F4FF; border-color: #C0C0E8 }
    +    .CVariable .Prototype {
    +        background-color: #FFFFF0; border-color: #E0E0A0 }
    +
    +    .CClass .Prototype {
    +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
    +        background-color: #F4F4F4;
    +        }
    +    .CInterface .Prototype {
    +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
    +        background-color: #F4F4FF;
    +        }
    +
    +    .CDatabaseIndex .Prototype,
    +    .CConstant .Prototype {
    +        background-color: #D0D0D0; border-color: #000000 }
    +    .CType .Prototype,
    +    .CEnumeration .Prototype {
    +        background-color: #FAF0F0; border-color: #E0B0B0;
    +        }
    +    .CDatabaseTrigger .Prototype,
    +    .CEvent .Prototype,
    +    .CDelegate .Prototype {
    +        background-color: #F0FCF0; border-color: #B8E4B8 }
    +
    +    .CToolTip .Prototype {
    +        margin: 0 0 .5em 0;
    +        white-space: nowrap;
    +        }
    +
    +
    +
    +
    +
    +.Summary {
    +    margin: 1.5em 5ex 0 5ex }
    +
    +    .STitle {
    +        font-size: 12pt; font-weight: bold;
    +        margin-bottom: .5em }
    +
    +
    +    .SBorder {
    +        background-color: #FFFFF0;
    +        padding: 15px;
    +        border: 1px solid #C0C060 }
    +
    +    /* In a frame IE 6 will make them too long unless you set the width to 100%.  Without frames it will be correct without a width
    +        or slightly too long (but not enough to scroll) with a width.  This arbitrary weirdness simply astounds me.  IE 7 has the same
    +        problem with frames, haven't tested it without.  */
    +    .FramedContentPage .IE .SBorder {
    +        width: 100% }
    +
    +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
    +    .Firefox .SBorder {
    +        -moz-border-radius: 20px }
    +
    +
    +    .STable {
    +        font-size: 9pt; width: 100% }
    +
    +    .SEntry {
    +        width: 30% }
    +    .SDescription {
    +        width: 70% }
    +
    +
    +    .SMarked {
    +        background-color: #F8F8D8 }
    +
    +    .SDescription { padding-left: 2ex }
    +    .SIndent1 .SEntry { padding-left: 1.5ex }   .SIndent1 .SDescription { padding-left: 3.5ex }
    +    .SIndent2 .SEntry { padding-left: 3.0ex }   .SIndent2 .SDescription { padding-left: 5.0ex }
    +    .SIndent3 .SEntry { padding-left: 4.5ex }   .SIndent3 .SDescription { padding-left: 6.5ex }
    +    .SIndent4 .SEntry { padding-left: 6.0ex }   .SIndent4 .SDescription { padding-left: 8.0ex }
    +    .SIndent5 .SEntry { padding-left: 7.5ex }   .SIndent5 .SDescription { padding-left: 9.5ex }
    +
    +    .SDescription a { color: #800000}
    +    .SDescription a:active { color: #A00000 }
    +
    +    .SGroup td {
    +        padding-top: .5em; padding-bottom: .25em }
    +
    +    .SGroup .SEntry {
    +        font-weight: bold; font-variant: small-caps }
    +
    +    .SGroup .SEntry a { color: #800000 }
    +    .SGroup .SEntry a:active { color: #F00000 }
    +
    +
    +    .SMain td,
    +    .SClass td,
    +    .SDatabase td,
    +    .SDatabaseTable td,
    +    .SSection td {
    +        font-size: 10pt;
    +        padding-bottom: .25em }
    +
    +    .SClass td,
    +    .SDatabase td,
    +    .SDatabaseTable td,
    +    .SSection td {
    +        padding-top: 1em }
    +
    +    .SMain .SEntry,
    +    .SClass .SEntry,
    +    .SDatabase .SEntry,
    +    .SDatabaseTable .SEntry,
    +    .SSection .SEntry {
    +        font-weight: bold;
    +        }
    +
    +    .SMain .SEntry a,
    +    .SClass .SEntry a,
    +    .SDatabase .SEntry a,
    +    .SDatabaseTable .SEntry a,
    +    .SSection .SEntry a { color: #000000 }
    +
    +    .SMain .SEntry a:active,
    +    .SClass .SEntry a:active,
    +    .SDatabase .SEntry a:active,
    +    .SDatabaseTable .SEntry a:active,
    +    .SSection .SEntry a:active { color: #A00000 }
    +
    +
    +
    +
    +
    +.ClassHierarchy {
    +    margin: 0 15px 1em 15px }
    +
    +    .CHEntry {
    +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
    +        margin-bottom: 3px;
    +        padding: 2px 2ex;
    +        font-size: 10pt;
    +        background-color: #F4F4F4; color: #606060;
    +        }
    +
    +    .Firefox .CHEntry {
    +        -moz-border-radius: 4px;
    +        }
    +
    +    .CHCurrent .CHEntry {
    +        font-weight: bold;
    +        border-color: #000000;
    +        color: #000000;
    +        }
    +
    +    .CHChildNote .CHEntry {
    +        font-style: italic;
    +        font-size: 8pt;
    +        }
    +
    +    .CHIndent {
    +        margin-left: 3ex;
    +        }
    +
    +    .CHEntry a:link,
    +    .CHEntry a:visited,
    +    .CHEntry a:hover {
    +        color: #606060;
    +        }
    +    .CHEntry a:active {
    +        color: #800000;
    +        }
    +
    +
    +
    +
    +
    +#Index {
    +    background-color: #FFFFFF;
    +    }
    +
    +/*  As opposed to .PopupSearchResultsPage #Index  */
    +.IndexPage #Index,
    +.FramedIndexPage #Index,
    +.FramedSearchResultsPage #Index {
    +    padding: 15px;
    +    }
    +
    +.IndexPage #Index {
    +    border-width: 0 0 1px 1px;
    +    border-style: solid;
    +    border-color: #000000;
    +    font-size: 9pt;  /* To make 27ex match the menu's 27ex. */
    +    margin-left: 27ex;
    +    }
    +
    +
    +    .IPageTitle {
    +        font-size: 20pt; font-weight: bold;
    +        color: #FFFFFF; background-color: #7070C0;
    +        padding: 10px 15px 10px 15px;
    +        border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
    +        margin: -15px -15px 0 -15px }
    +
    +    .FramedSearchResultsPage .IPageTitle {
    +        margin-bottom: 15px;
    +        }
    +
    +    .INavigationBar {
    +        font-size: 10pt;
    +        text-align: center;
    +        background-color: #FFFFF0;
    +        padding: 5px;
    +        border-bottom: solid 1px black;
    +        margin: 0 -15px 15px -15px;
    +        }
    +
    +    .INavigationBar a {
    +        font-weight: bold }
    +
    +    .IHeading {
    +        font-size: 16pt; font-weight: bold;
    +        padding: 2.5em 0 .5em 0;
    +        text-align: center;
    +        width: 3.5ex;
    +        }
    +    #IFirstHeading {
    +        padding-top: 0;
    +        }
    +
    +    .IEntry {
    +        font-size: 10pt;
    +        padding-left: 1ex;
    +        }
    +    .PopupSearchResultsPage .IEntry {
    +        font-size: 8pt;
    +        padding: 1px 5px;
    +        }
    +    .PopupSearchResultsPage .Opera9 .IEntry,
    +    .FramedSearchResultsPage .Opera9 .IEntry {
    +        text-align: left;
    +        }
    +    .FramedSearchResultsPage .IEntry {
    +        padding: 0;
    +        }
    +
    +    .ISubIndex {
    +        padding-left: 3ex; padding-bottom: .5em }
    +    .PopupSearchResultsPage .ISubIndex {
    +        display: none;
    +        }
    +
    +    /*  While it may cause some entries to look like links when they aren't, I found it's much easier to read the
    +         index if everything's the same color.  */
    +    .ISymbol {
    +        font-weight: bold; color: #900000  }
    +
    +    .IndexPage .ISymbolPrefix,
    +    .FramedIndexPage .ISymbolPrefix {
    +        font-size: 10pt;
    +        text-align: right;
    +        color: #C47C7C;
    +        background-color: #F8F8F8;
    +        border-right: 3px solid #E0E0E0;
    +        border-left: 1px solid #E0E0E0;
    +        padding: 0 1px 0 2px;
    +        }
    +    .PopupSearchResultsPage .ISymbolPrefix,
    +    .FramedSearchResultsPage .ISymbolPrefix {
    +        color: #900000;
    +        }
    +    .PopupSearchResultsPage .ISymbolPrefix {
    +        font-size: 8pt;
    +        }
    +
    +    .IndexPage #IFirstSymbolPrefix,
    +    .FramedIndexPage #IFirstSymbolPrefix {
    +        border-top: 1px solid #E0E0E0;
    +        }
    +    .IndexPage #ILastSymbolPrefix,
    +    .FramedIndexPage #ILastSymbolPrefix {
    +        border-bottom: 1px solid #E0E0E0;
    +        }
    +    .IndexPage #IOnlySymbolPrefix,
    +    .FramedIndexPage #IOnlySymbolPrefix {
    +        border-top: 1px solid #E0E0E0;
    +        border-bottom: 1px solid #E0E0E0;
    +        }
    +
    +    a.IParent,
    +    a.IFile {
    +        display: block;
    +        }
    +
    +    .PopupSearchResultsPage .SRStatus {
    +        padding: 2px 5px;
    +        font-size: 8pt;
    +        font-style: italic;
    +        }
    +    .FramedSearchResultsPage .SRStatus {
    +        font-size: 10pt;
    +        font-style: italic;
    +        }
    +
    +    .SRResult {
    +        display: none;
    +        }
    +
    +
    +
    +#Footer {
    +    font-size: 8pt;
    +    color: #989898;
    +    text-align: right;
    +    }
    +
    +#Footer p {
    +    text-indent: 0;
    +    margin-bottom: .5em;
    +    }
    +
    +.ContentPage #Footer,
    +.IndexPage #Footer {
    +    text-align: right;
    +    margin: 2px;
    +    }
    +
    +.FramedMenuPage #Footer {
    +    text-align: center;
    +    margin: 5em 10px 10px 10px;
    +    padding-top: 1em;
    +    border-top: 1px solid #C8C8C8;
    +    }
    +
    +    #Footer a:link,
    +    #Footer a:hover,
    +    #Footer a:visited { color: #989898 }
    +    #Footer a:active { color: #A00000 }
    +
    +
    +
    +.prettyprint .kwd { color: #800000; }  /* keywords */
    +
    +    .prettyprint .PDefaultValue .kwd,
    +    .prettyprint .PDefaultValuePrefix .kwd,
    +    .prettyprint .PTypePrefix .kwd {
    +        color: #C88F8F;
    +        }
    +
    +.prettyprint .com { color: #008000; }  /* comments */
    +
    +    .prettyprint .PDefaultValue .com,
    +    .prettyprint .PDefaultValuePrefix .com,
    +    .prettyprint .PTypePrefix .com {
    +        color: #8FC88F;
    +        }
    +
    +.prettyprint .str { color: #0000B0; }  /* strings */
    +.prettyprint .lit { color: #0000B0; }  /* literals */
    +
    +    .prettyprint .PDefaultValue .str,
    +    .prettyprint .PDefaultValuePrefix .str,
    +    .prettyprint .PTypePrefix .str,
    +    .prettyprint .PDefaultValue .lit,
    +    .prettyprint .PDefaultValuePrefix .lit,
    +    .prettyprint .PTypePrefix .lit {
    +        color: #8F8FC0;
    +        }
    +
    +.prettyprint .typ { color: #000000; }  /* types */
    +.prettyprint .pun { color: #000000; }  /* punctuation */
    +.prettyprint .pln { color: #000000; }  /* punctuation */
    +
    +    .prettyprint .PDefaultValue .typ,
    +    .prettyprint .PDefaultValuePrefix .typ,
    +    .prettyprint .PTypePrefix .typ,
    +    .prettyprint .PDefaultValue .pun,
    +    .prettyprint .PDefaultValuePrefix .pun,
    +    .prettyprint .PTypePrefix .pun,
    +    .prettyprint .PDefaultValue .pln,
    +    .prettyprint .PDefaultValuePrefix .pln,
    +    .prettyprint .PTypePrefix .pln {
    +        color: #8F8F8F;
    +        }
    +
    +.prettyprint .tag { color: #008; }
    +.prettyprint .atn { color: #606; }
    +.prettyprint .atv { color: #080; }
    +.prettyprint .dec { color: #606; }
    +
    diff --git a/docs/stencils.xsd b/docs/stencils.xsd
    new file mode 100644
    index 000000000..4f7105439
    --- /dev/null
    +++ b/docs/stencils.xsd
    @@ -0,0 +1,257 @@
    +<?xml version="1.0" encoding="utf-8"?>
    +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    +    <xs:element name="shapes">
    +        <xs:complexType>
    +            <xs:sequence>
    +                <xs:element maxOccurs="unbounded" ref="shape"/>
    +            </xs:sequence>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="shape">
    +        <xs:complexType>
    +            <xs:sequence>
    +                <xs:element minOccurs="0" ref="connections"/>
    +                <xs:element minOccurs="0" name="background" type="InstructionListType"/>
    +                <xs:element minOccurs="0" name="foreground" type="InstructionListType"/>
    +            </xs:sequence>
    +            <xs:attribute name="name" use="required" type="xs:string"/>
    +            <xs:attribute name="w" use="optional" type="xs:decimal" default="100"/>
    +            <xs:attribute name="h" use="optional" type="xs:decimal" default="100"/>
    +            <xs:attribute name="aspect" use="optional" default="variable">
    +              <xs:simpleType>
    +			    <xs:restriction base="xs:string">
    +			      <xs:enumeration value="variable"/>
    +			      <xs:enumeration value="fixed"/>
    +			    </xs:restriction>
    +			  </xs:simpleType>
    +			</xs:attribute>
    +            <xs:attribute name="strokewidth" use="optional" type="xs:string" default="1"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="connections">
    +        <xs:complexType>
    +            <xs:sequence>
    +                <xs:element maxOccurs="unbounded" ref="constraint"/>
    +            </xs:sequence>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="constraint">
    +        <xs:complexType>
    +            <xs:attribute name="perimeter" use="required" type="xs:integer"/>
    +            <xs:attribute name="x" use="required" type="xs:decimal"/>
    +            <xs:attribute name="y" use="required" type="xs:decimal"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:complexType name="InstructionListType">
    +        <xs:choice maxOccurs="unbounded">
    +            <xs:element name="save"/>
    +            <xs:element name="restore"/>
    +            <xs:element name="path" type="PathType"/>
    +            <xs:element ref="rect"/>
    +            <xs:element ref="roundrect"/>
    +            <xs:element ref="ellipse"/>
    +            <xs:element ref="text"/>
    +            <xs:element ref="image"/>
    +            <xs:element ref="include-shape"/>
    +            <xs:element name="fill"/>
    +            <xs:element name="stroke"/>
    +            <xs:element name="fillstroke"/>
    +            <xs:element name="strokecolor" type="ColorType"/>
    +            <xs:element name="fillcolor" type="ColorType"/>
    +            <xs:element name="fontcolor" type="ColorType"/>
    +            <xs:element ref="alpha"/>
    +            <xs:element ref="strokewidth"/>
    +            <xs:element ref="dashed"/>
    +            <xs:element ref="dashpattern"/>
    +            <xs:element ref="miterlimit"/>
    +			<xs:element ref="linejoin"/>
    +            <xs:element ref="linecap"/>
    +            <xs:element ref="fontsize"/>
    +			<xs:element ref="fontstyle"/>
    +            <xs:element ref="fontfamily"/>
    +        </xs:choice>
    +    </xs:complexType>
    +    <xs:complexType name="ColorType">
    +        <xs:attribute name="color" use="required" type="xs:string"/>
    +    </xs:complexType>
    +    <xs:complexType name="PathType">
    +        <xs:choice maxOccurs="unbounded">
    +            <xs:element ref="move"/>
    +            <xs:element ref="line"/>
    +            <xs:element ref="quad"/>
    +            <xs:element ref="curve"/>
    +            <xs:element ref="arc"/>
    +            <xs:element name="close"/>
    +        </xs:choice>
    +        <xs:attribute ref="crisp" use="optional"/>
    +    </xs:complexType>
    +    <xs:element name="move">
    +        <xs:complexType>
    +            <xs:attribute name="x" use="required" type="xs:decimal"/>
    +            <xs:attribute name="y" use="required" type="xs:decimal"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="line">
    +        <xs:complexType>
    +            <xs:attribute name="x" use="required" type="xs:decimal"/>
    +            <xs:attribute name="y" use="required" type="xs:decimal"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="quad">
    +        <xs:complexType>
    +            <xs:attribute name="x1" use="required" type="xs:decimal"/>
    +            <xs:attribute name="y1" use="required" type="xs:decimal"/>
    +            <xs:attribute name="x2" use="required" type="xs:decimal"/>
    +            <xs:attribute name="y2" use="required" type="xs:decimal"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="curve">
    +        <xs:complexType>
    +            <xs:attribute name="x1" use="required" type="xs:decimal"/>
    +            <xs:attribute name="y1" use="required" type="xs:decimal"/>
    +            <xs:attribute name="x2" use="required" type="xs:decimal"/>
    +            <xs:attribute name="y2" use="required" type="xs:decimal"/>
    +            <xs:attribute name="x3" use="required" type="xs:decimal"/>
    +            <xs:attribute name="y3" use="required" type="xs:decimal"/>
    +        </xs:complexType>
    +    </xs:element>
    +	<xs:element name="arc">
    +	    <xs:complexType>
    +	        <xs:attribute name="rx" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="ry" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="x-axis-rotation" use="required" type="xs:decimal"/>
    +	       	<xs:attribute name="large-arc-flag" use="required" type="xs:decimal"/>
    +	       	<xs:attribute name="sweep-flag" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="x" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="y" use="required" type="xs:decimal"/>
    +	    </xs:complexType>
    +	</xs:element>
    +	<xs:element name="rect">
    +	    <xs:complexType>
    +			<xs:attribute ref="crisp" use="optional"/>
    +	        <xs:attribute name="x" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="y" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="w" use="required" type="xs:decimal"/>
    +	       	<xs:attribute name="h" use="required" type="xs:decimal"/>
    +	    </xs:complexType>
    +	</xs:element>
    +	<xs:element name="roundrect">
    +	    <xs:complexType>
    +			<xs:attribute ref="crisp" use="optional"/>
    +	        <xs:attribute name="x" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="y" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="w" use="required" type="xs:decimal"/>
    +	       	<xs:attribute name="h" use="required" type="xs:decimal"/>
    +	       	<xs:attribute name="arcsize" use="optional" type="xs:decimal"/>
    +	    </xs:complexType>
    +	</xs:element>
    +	<xs:element name="ellipse">
    +	    <xs:complexType>
    +	        <xs:attribute name="x" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="y" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="w" use="required" type="xs:decimal"/>
    +	       	<xs:attribute name="h" use="required" type="xs:decimal"/>
    +	    </xs:complexType>
    +	</xs:element>
    +    <xs:element name="text">
    +	    <xs:complexType>
    +	    	<xs:attribute name="str" use="required" type="xs:string"/>
    +	        <xs:attribute name="x" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="y" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="align" use="optional" type="xs:string" default="left"/>
    +	       	<xs:attribute name="valign" use="optional" type="xs:string" default="top"/>
    +	    </xs:complexType>
    +	</xs:element>
    +	<xs:element name="image">
    +	    <xs:complexType>
    +	    	<xs:attribute name="src" use="required" type="xs:string"/>
    +	        <xs:attribute name="x" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="y" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="w" use="required" type="xs:decimal"/>
    +	       	<xs:attribute name="h" use="required" type="xs:decimal"/>
    +	    </xs:complexType>
    +	</xs:element>
    +	<xs:element name="include-shape">
    +	    <xs:complexType>
    +	    	<xs:attribute name="name" use="required" type="xs:string"/>
    +	        <xs:attribute name="x" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="y" use="required" type="xs:decimal"/>
    +	        <xs:attribute name="w" use="required" type="xs:decimal"/>
    +	       	<xs:attribute name="h" use="required" type="xs:decimal"/>
    +	    </xs:complexType>
    +	</xs:element>
    +    <xs:element name="alpha">
    +        <xs:complexType>
    +            <xs:attribute name="alpha" use="required" type="xs:decimal"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="strokewidth">
    +        <xs:complexType>
    +            <xs:attribute name="width" use="required" type="xs:decimal"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="dashed">
    +        <xs:complexType>
    +            <xs:attribute name="dashed" use="required" type="xs:integer"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="dashpattern">
    +        <xs:complexType>
    +            <xs:attribute name="pattern" use="required" type="xs:string"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="miterlimit">
    +        <xs:complexType>
    +            <xs:attribute name="limit" use="required" type="xs:decimal"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="linejoin">
    +        <xs:complexType>
    +            <xs:attribute name="join" use="required">
    +			  <xs:simpleType>
    +			    <xs:restriction base="xs:string">
    +			      <xs:enumeration value="miter"/>
    +			      <xs:enumeration value="round"/>
    +			      <xs:enumeration value="bevel"/>
    +			    </xs:restriction>
    +			  </xs:simpleType>
    +			</xs:attribute>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="linecap">
    +        <xs:complexType>
    +            <xs:attribute name="cap" use="required">
    +			  <xs:simpleType>
    +			    <xs:restriction base="xs:string">
    +			      <xs:enumeration value="flat"/>
    +			      <xs:enumeration value="square"/>
    +			      <xs:enumeration value="round"/>
    +			    </xs:restriction>
    +			  </xs:simpleType>
    +			</xs:attribute>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="fontsize">
    +        <xs:complexType>
    +            <xs:attribute name="size" use="required" type="xs:decimal"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="fontstyle">
    +        <xs:complexType>
    +            <xs:attribute name="style" use="required" type="xs:integer"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:element name="fontfamily">
    +        <xs:complexType>
    +            <xs:attribute name="family" use="required" type="xs:string"/>
    +        </xs:complexType>
    +    </xs:element>
    +    <xs:attribute name="crisp">
    +		<xs:simpleType>
    +      		<xs:restriction base="xs:integer">
    +  				<xs:minInclusive value="0"/>
    +  				<xs:maxInclusive value="1"/>
    +			</xs:restriction>
    +		</xs:simpleType>
    +	</xs:attribute>
    +</xs:schema>
    diff --git a/docs/tutorial.html b/docs/tutorial.html
    new file mode 100644
    index 000000000..b295a8ea7
    --- /dev/null
    +++ b/docs/tutorial.html
    @@ -0,0 +1,526 @@
    +<html>
    +<head>
    +	<title>mxGraph Tutorial</title>
    +  	<link rel="stylesheet" HREF="css/html.css" CHARSET="ISO-8859-1" TYPE="text/css">
    +  	<script type="text/javascript" src="js/toc.js"></script>
    +</head>
    +<body onload="maketoc(document.getElementById('toc'));">
    +<h1>mxGraph Tutorial</h1>
    +<h2>Table Of Contents</h2>
    +<div id="toc"></div>
    +<br/>
    +<h1><a name="Overview"></a>Overview</h1>
    +<p>
    +  The mxGraph package contains a client software, written in JavaScript, and a series
    +  of backends for various languages. The client software is a graph component with
    +  an optional application wrapper that is integrated into an existing web interface.
    +  The client requires a webserver to deliver the required files to the client or
    +  can be run from the local filesystem without a webserver. The backends may be used
    +  as is, or they may be embedded into an existing server application in one of the
    +  supported languages.
    +</p>
    +<img src="images/architecture.png">
    +<p>
    +  If a backend exists, then the client may be configured to use this backend in
    +  various ways, such as:
    +</p>
    +<ul>
    +  <li>Creating images</li>
    +  <li>Storing and loading diagrams</li>
    +  <li>Creating an object representation of a graph</li>
    +  <li>Sharing diagrams with other clients</li>
    +</ul>
    +<p>
    +  The above scenarios maybe combined in various ways, such as sending an XML 
    +  description of each change to the backend as it happens, or autosaving of
    +  the diagram to avoid loss of data on the client. The client can also operate in
    +  offline mode, where it does not require a backend or a webserver.
    +</p>
    +<p>
    +  Please have a look at the index files in the respective directories for
    +  information on the various backends.
    +</p>
    +<ul>
    +  <li><a href="../java/index.html">Java</a></li>
    +  <li><a href="../dotnet/index.html">.NET</a></li>
    +  <li><a href="../php/index.html">PHP</a></li>
    +</ul>
    +<h1><a name="HelloWorld"></a>Hello, World!</h1>
    +<p>
    +  The Hello, World! example of mxGraph ships in a 
    +  single <a href="../javascript/examples/helloworld.html">HTML file</a>,
    +  which contains the required namespaces, the mxGraph library script
    +  and the example code. The example can be viewed by pointing Firefox or
    +  Internet Explorer to the link above either on the local
    +  filesystem or on a webserver. To display the source of the example
    +  press Control-U in Firefox or click Page, View Source in Internet Explorer.
    +</p>
    +<h2><a name="Library"></a>Library</h2>
    +<p>
    +  The HEAD part of the page contains the JavaScript code and dependencies.
    +  The library is loaded using the following code. The  <code>mxBasePath</code> 
    +  variable is used to define the path where the library loads its resources
    +  from. This variable must be defined prior to loading the library code and
    +  should not include a trailing slash.
    +</p>
    +<pre>
    +&lt;script type="text/javascript"&gt;
    +  mxBasePath = 'javascript/src';
    +&lt;/script&gt;
    +&lt;script type="text/javascript" src="javascript/src/js/mxClient.js"&gt;&lt;/script&gt;
    +</pre>
    +<p>
    +  <code>mxClient.js</code> contains all required code in a single file. Note
    +  that the source code only ships with the commercial distributions. In the
    +  evaluation version, the source code is loaded from a server using a special
    +  URL. You should not make local copies of the evaluation source code.
    +</p>
    +<h2><a name="BrowserCheck"></a>Browser Check</h2>
    +<p>
    +  The next script tag in the HEAD part of the page contains the
    +  Hello, World! example code. The first part of the code checks if the
    +  browser that is displaying the page is supported by the library. It is
    +  recommended to do this as the first step of the program and
    +  display an error message if the browser is not supported. In your
    +  document you may also want to include a NOSCRIPT directive for
    +  browsers that have JavaScript disabled, however, in our examples this
    +  directive is not used.
    +</p>
    +<p>
    +  There is no convention for the name of the main function. The function
    +  is invoked from the <code>onload</code> handler in the page and may have any name 
    +  and arguments. In this case, the argument is a  DOM node that will contain
    +  the graph. Note that the DOM node may have any ID and that the code
    +  is independent of this ID.
    +</p>
    +<pre>
    +&lt;script type="text/javascript";&gt;
    +function main(container)
    +{
    +  // Checks if the browser is supported
    +  if (!mxClient.isBrowserSupported())
    +  {
    +    // Displays an error message if the browser is not supported.
    +    mxUtils.error('Browser is not supported!', 200, false);
    +  }
    +  ...
    +</pre>
    +<h2><a name="Container"></a>Container</h2>
    +<p>
    +  For the JavaScript to actually render the graph, the page 
    +  contains an DOM node which will display the graph. This
    +  DOM node is either dynamically created or it is obtained via 
    +  an ID using <code>document.getElementById</code> as in the
    +  Hello, World! example. The DOM node is passed to the main
    +  function and is used to construct the graph instance as shown
    +  below.
    +</p>
    +<p>
    +  If you want the container to have scrollbars, use the overflow:auto CSS
    +  directive instead of overflow:hidden in the style of the container.
    +</p>
    +<h2><a name="Graph"></a>Graph</h2>
    +<p>
    +  The code constructs an empty graph model and passes the container
    +  and the empty model to the graph constructor. For this example,
    +  all default event handling is disabled in the last line.
    +</p>
    +<pre>
    +var model = new mxGraphModel();
    +var graph = new mxGraph(container, model);
    +</pre>
    +<p>
    +	If you want the graph to be read-only you can use <code>graph.setEnabled(false)</code>.
    +</p>
    +<h2><a name="VerticesAndEdges"></a>Vertices and Edges</h2>
    +<p>
    +  To insert vertices and edges, <code>beginUpdate</code> and <code>endUpdate</code>
    +  are used to create a transaction. The <code>endUpdate</code> should always go
    +  into a finally-block to make sure it is always executed if the <code>beginUpdate</code>
    +  was executed. However, the <code>beginUpdate</code> should not be part of the
    +  try-block to make sure <code>endUpdate</code> is never executed if <code>beginUpdate</code>
    +  fails. This is required for the model to remain in a consistent state, that is, for
    +  each call to <code>beginUpdate</code> there should always be exactly one call to
    +  <code>endUpdate</code>.
    +</p>
    +<p>
    +  The part within the try-block creates the vertices and edges for the graph.
    +  The default parent is obtained from the graph and is typically the first
    +  child of the root cell in the model, which is created automatically when
    +  using the graph model c'tor with no arguments.
    +</p>
    +<pre>
    +// Gets the default parent for inserting new cells. This
    +// is normally the first child of the root (ie. layer 0).
    +var parent = graph.getDefaultParent();
    +        
    +// Adds cells to the model in a single step
    +model.beginUpdate();
    +try
    +{
    +  var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +  var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +  var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +}
    +finally
    +{
    +  // Updates the display
    +  model.endUpdate();
    +}
    +</pre>
    +<p>
    +  The use of <code>beginUpdate</code> and <code>endUpdate</code> does not
    +  only improve the display performance, but it is also used to mark the
    +  boundaries for undoable changes when undo/redo is used.
    +</p>
    +<h1><a name="Graphs"></a>Graphs</h1>
    +<p>
    +  Instantiate <a href="js-api/files/view/mxGraph-js.html">mxGraph</a>
    +  in order to create a graph. This is the central class in the API. 
    +  Everything else is auxiliary.
    +</p>
    +<img src="images/graph.png">
    +<p>
    +  To create a new graph instance, a DOM node (typically a DIV) is
    +  required:
    +</p>
    +<pre>
    +var node = document.getElementById('id-of-graph-container');
    +var graph = new mxGraph(node);
    +</pre>
    +<h2><a name="Model"></a>Model</h2>
    +<p>
    +  <a href="js-api/files/model/mxCell-js.html">mxCell</a> defines the 
    +  elements of the graph model, which is implemented by
    +  <a href="js-api/files/model/mxGraphModel-js.html">mxGraphModel</a>.
    +</p>
    +<img src="images/model.png">
    +<p>
    +  The graph model has the following properties:
    +</p>
    +<ul>
    +  <li>
    +    The root element of the graph contains the layers. 
    +    The parent of each layer is the root element.
    +  </li>
    +  <li>
    +    A layer may contain elements of the graph model, 
    +    namely vertices, edges and groups.
    +  </li>
    +  <li>
    +    Groups may contain elements of the graph model,
    +    recursively.
    +  </li>
    +</ul>
    +<p>
    +  The graph and structural information is stored in the cells, as well as the
    +  <i>user objects</i>, which are used to store the <i>value</i> associated with
    +  the cells (aka business objects).
    +</p>
    +<p>
    +  To create a new graph model with a root cell and a default layer (first child):
    +</p>
    +<pre>
    +var root = new mxCell();
    +root.insert(new mxCell());
    +var model = new mxGraphModel(root);
    +</pre>
    +<h2><a name="Stylesheet"></a>Stylesheet</h2>
    +<p>
    +  The appearance of the cells in a graph is defined by the
    +  stylesheet, which is an instance of
    +  <a href="js-api/files/view/mxStylesheet-js.html">
    +  mxStylesheet</a>.
    +  The stylesheet maps from stylenames to styles.
    +  A style is an array of key, value pairs to be 
    +  used with the cells. The keys are defined in 
    +  <a href="js-api/files/util/mxConstants-js.html">
    +  mxConstants</a> and the values may be
    +  strings and numbers or JavaScript objects or functions.
    +</p>
    +<p>
    +  To modify the default styles for vertices and edges in an existing graph:
    +</p>
    +<pre>
    +var vertexStyle = graph.getStylesheet().getDefaultVertexStyle();
    +vertexStyle[mxConstants.ROUNDED] = true;
    +
    +var edgeStyle = graph.getStylesheet().getDefaultEdgeStyle();
    +edgeStyle[mxConstants.STYLE_EDGE] = mxEdgeStyle.TopToBottom;
    +</pre>
    +<h2><a name="Styles"></a>Styles</h2>
    +<p>
    +  The style information for a cell is stored in <code>cell.style</code>.
    +  The style is part of the cell's state and is normally changed via 
    +  <code>mxGraphModel.setStyle</code>, which will update all views.
    +  The cell style is a string of the form
    +</p>
    +<pre>
    +[stylename;|key=value;]
    +</pre>
    +<p>
    +  which tells the graph to use the given named styles and override the
    +  specified key, value pairs in the given order. For example, to use the
    +  <a href="js-api/files/view/mxStylesheet-js.html#mxStylesheet.putCellStyle">rounded</a>
    +  style and override the stroke- and fillColor, the style would be defined as:
    +</p>
    +<pre>
    +rounded;strokeColor=red;fillColor=green
    +</pre>
    +<p>
    +  To use the above in Hello, World!, the stylename would be passed to the 
    +  insertVertex method as follows:
    +</p>
    +<pre>
    +var v1 = graph.insertVertex(parent, null, 'Hello',
    +  20, 20, 80, 30, 'rounded;strokeColor=red;fillColor=green');
    +</pre>
    +<h2><a name="Appearance"></a>Appearance</h2>
    +<p>
    +  In certain cases you may want to override specific attributes based on 
    +  dynamic properties of a cell (ie. it's value, aka. userobject), such as 
    +  the image, indicator shape, -image, -color or -gradient color), in
    +  which case you can override <code>getImage</code>, 
    +  <code>getIndicatorShape</code>, <code>getIndicatorImage</code>,
    +  <code>getIndicatorColor</code> and <code>getIndicatorGradientColor</code> 
    +  respectively. Note that these methods take a cell state as an argument, 
    +  which points to a "resolved" (that is, an array) version of the
    +  cell's style. Hence, the default implementation for <code>getImage</code> 
    +  looks as follows:
    +</p>
    +<pre>
    +mxGraph.prototype.getImage = function(state)
    +{
    +  if (state != null &amp;&amp; state.style != null)
    +  {
    +    return state.style[mxConstants.STYLE_IMAGE];
    +  }
    +  return null;
    +}
    +</pre>
    +<p>
    +  This method may be overridden to return any image for the given state. 
    +  Typically, the image is defined by either <code>state.cell</code>, 
    +  which points to the graph cell associated with the state, or by
    +  <code>state.cell.value</code>, which refers to the cell's user object.
    +</p>
    +<p>
    +  Due to the nature of the display, where all cells are created once and 
    +  updated only if the model fires a notification for a change, you must 
    +  invoke <code>view.invalidate(cell)</code> for each cell who's image
    +  has changed, and call <code>view.validate</code> to update the display.
    +</p>
    +<h1><a name="Editors"></a>Editors</h1>
    +<p>
    +  Instantiate <a href="js-api/files/editor/mxEditor-js.html">mxEditor</a> in
    +  order to create an editor. This is the central class in the editor
    +  package. Everything else in this package is auxiliary.
    +  To create a new editor instance and configure it using a config
    +  file, you can pass the name of the config file to the
    +  <a href="js-api/files/editor/mxEditor-js.html#mxEditor.mxEditor">mxEditor constructor</a>.
    +</p>
    +<img src="images/editor.png">
    +<p>
    +  To create a new editor instance and configure it, the following code is used:
    +</p>
    +<pre>
    +var config = mxUtils.load('editors/config/keyhandler-commons.xml').getDocumentElement();
    +var editor = new mxEditor(config);
    +</pre>
    +<p>
    +  The configuration file is an XML file that is passed to 
    +  <a href="js-api/files/io/mxCodec-js.html">mxCodec</a>, which in
    +  turn uses <a href="js-api/files/io/mxEditorCodec-js.html">mxEditorCodec</a>
    +  and others to read the XML into the editor object hierarchy. This is normally
    +  done at startup time to configure the editor, graph, model, toolbar, popupmenus
    +  etc using the <a href="#InputOutput">I/O subsystem</a>.
    +</p>
    +<h2><a name="CSS"></a>CSS</h2>
    +<p>
    +  The CSS stylesheet contains the style definitions for various
    +  elements of the user interface, such as the rubberband selection,
    +  the in-place editor or the popup menu. It also contains the directives 
    +  required to enable VML support in Internet Explorer, so it is substantial
    +  that the stylesheet is included in the page.
    +</p>
    +<p>
    +  Additional stylesheets may either be added programmatically using
    +  <code>mxClient.link('stylesheet', filename)</code> or
    +  via a stylesheet tag of the UI section in the editor configuration, eg.:
    +</p>
    +<pre>
    +&lt;mxEditor&gt;
    +  &lt;ui&gt;
    +    &lt;stylesheet name="examples/editors/css/process.css"/&gt;
    +    ...
    +</pre>
    +<h2><a name="Templates"></a>Templates</h2>
    +<p>
    +  To add new cell types, create a template in the templates array section of 
    +  the model in the config file (mxEditor/mxGraph/mxGraphModel/Array[as=templates]) 
    +  as follows:
    +</p>
    +<pre>
    +&lt;add as="symbol"&gt;
    +  &lt;Symbol label="Symbol" customAttribute="whatever"&gt;
    +    &lt;mxCell vertex="1" connectable="1" style="symbol;image=images/event.png"&gt;    
    +      &lt;mxGeometry as="geometry" width="32" height="32"/&gt;
    +    &lt;/mxCell&gt;
    +    &lt;CustomChild customAttribute="whatever"/&gt;
    +  &lt;/Symbol&gt;
    +&lt;/add&gt;
    +</pre>
    +<p>
    +  The <code>as</code>-attribute of the <code>add</code>-element contains the 
    +  name under which the template will be accessible for later use. The 
    +  <code>Symbol</code>-child element is a custom (ie workflow) element, and 
    +  can have any name and any number of child elements and custom attributes. 
    +  The label attribute is a special one that is used for the textual 
    +  representation of the cell in the graph. The <code>mxCell</code> element
    +  is another special child node which contains the graphical information for 
    +  the cell, namely, the cell-type, -style, -size and -position.
    +</p>
    +<p>
    +  See mxGraph.convertValueToString if you would like to use another 
    +  attribute or a combination of attributes for the textual representation, 
    +  and <code>mxCell.valueChanged</code> to handle in-place editing by storing 
    +  the new text value in the respective attribute(s).
    +</p>
    +<h2><a name="Toolbar"></a>Toolbar</h2>
    +<p>
    +  To use the template in the graph, a toolbar item must be added which refers 
    +  to the template in the mxDefaultToolbar section of the config file 
    +  (mxEditor/mxDefaultToolbar[as=toolbar]) as follows:
    +</p>
    +<pre>
    +&lt;add as="symbolTool" template="symbol"
    +  style="symbol;image=wf/images/bpmn/special_event.png"
    +  icon="wf/images/bpmn/small_event.gif"/&gt;
    +</pre>
    +<p>
    +  The <code>as</code> attribute specifies the tooltip to be displayed for the 
    +  icon in the toolbar, the <code>template</code>-attribute refers to the name 
    +  under which the template was previously added. The <code>style</code>-
    +  attribute is optional, and may be used to override the style defined in the 
    +  template definition. Finally, the icon specifies the icon to be used for the 
    +  toolbar item.
    +</p>
    +<p>
    +  Note that the <code>as</code> attribute is assumed to be the key for a language
    +  resource, in this case <code>symbolTool</code>. If the resource is not defined
    +  in <a href="js-api/files/util/mxResources-js.html">mxResources</a>, then the
    +  attribute value is used as the label.
    +</p>
    +<h1><a name="InputOutput"></a>Input/Output</h1>
    +<p>
    +  The default encoding scheme maps all non-object fields to string
    +  attributes and all object fields to child nodes, using the constructor
    +  name of the object as the nodename and the fieldname for the as-attribute
    +  value. This default encoding scheme may be overridden by custom codecs,
    +  which are registered in the
    +  <a href="js-api/files/io/mxCodecRegistry-js.html">mxCodecRegistry</a>.
    +</p>
    +<p>
    +  For example, consider the following JavaScript object definition:
    +</p>
    +<pre>
    +var object = new Object();
    +object.myBool = true;
    +object.myObject = new Object();
    +object.myObject.name = 'Test';
    +object.myArray = ['a', ['b', 'c'], 'd'];
    +</pre>
    +<p>
    +  To encode this object and show the resulting XML in a new window,
    +  the following code is used:
    +</p>
    +<pre>
    +var encoder = new mxCodec();
    +var node = encoder.encode(object);
    +mxUtils.popup(mxUtils.getXml(node));
    +</pre>
    +<p>
    +  And here is the XML structure that represents the object:
    +</p>
    +<pre>
    +&lt;Object myBool="1"&gt;
    +  &lt;Object name="Test" as="myObject"/&gt;
    +  &lt;Array as="myArray"&gt;
    +    &lt;add value="a"/&gt;
    +    &lt;Array&gt;
    +      &lt;add value="b"/&gt;
    +      &lt;add value="c"/&gt;
    +    &lt;/Array&gt;
    +    &lt;add value="d"/&gt;
    +  &lt;/Array&gt;
    +&lt;/Object&gt;
    +</pre>
    +<p>
    +  Note that the codecs will turn booleans into numeric values, no
    +  array indices are stored if they are numeric and non-object
    +  array members are stored inside the value-attribute.
    +  Furthermore one may include other XML files by
    +  use of the <code>include</code> directive in the XML structures.
    +</p>
    +<h2><a name="Files"></a>Files</h2>
    +<p>
    +  The save, open, readGraphModel and writeGraphModel functions
    +  implement a standard mechanism for handling files in
    +  <a href="js-api/files/editor/mxEditor-js.html">mxEditor</a>.
    +</p>
    +<p>
    +  The default implementation of <code>mxEditor.save</code> is called
    +  with an argument to indicate if the save was triggered by the user or
    +  by the system. It then uses the <code>urlPost</code> variable of
    +  the editor object to check if a post request should be issued. If
    +  the variable is defined, the editor issues a post request to the
    +  specified URL passing the XML along as a POST variable called xml.
    +</p>
    +<h2><a name="Post"></a>Post</h2>
    +<p>
    +  As an example, consider the following PHP file which is located
    +  in the same directory as the HTML page. If the filename is server.php
    +  then the urlPost variable must be set to server.php on the editor
    +  in order to post the diagram to the server. The PHP file will get
    +  the XML from the POSt request and write it to a file called
    +  diagram.xml.
    +</p>
    +<pre>
    +&lt;?php 
    +$xml = $HTTP_POST_VARS['xml'];
    +if ($xml != null) {
    +  $fh=fopen("diagram.xml","w");
    +  fputs($fh, stripslashes($xml)); 
    +  fclose($fh);
    +}
    +?&gt;
    +</pre>
    +<p>
    +  To set the URL to post to, change the respective entry in the mxEditor node of the config file as follows:
    +</p>
    +<pre>
    +&lt;mxEditor urlPost="http://www.example.com/server.php" ... &gt;
    +</pre>
    +<p>
    +  Keep in mind that the JavaScript can only post to the server where it originated from, so we recommend
    +  to use relative URLs, eg. server.php.
    +</p>
    +<h2><a name="FormFields"></a>Form Fields</h2>
    +<p>
    +  If you need to read/write the graph from/to a string (eg. to fill a form-field), you can use the 
    +  following methods:
    +</p>
    +<pre>
    +var data = editor.writeGraphModel();
    +editor.readGraphModel(mxUtils.parseXml(data));
    +</pre>
    +<h2><a name="Codecs"></a>Codecs</h2>
    +<p>
    +  For encoding other objects, or if no editor instance is available,
    +  the <a href="js-api/files/io/mxCodec-js.html">mxCodec</a> can be 
    +  used to create and read XML data.
    +</p>
    +<hr size="1">
    +&copy; 2006-2010 by JGraph Ltd.
    +</body>
    +</html>
    diff --git a/dotnet/aspnet/Config.ashx b/dotnet/aspnet/Config.ashx
    new file mode 100644
    index 000000000..9c9afbace
    --- /dev/null
    +++ b/dotnet/aspnet/Config.ashx
    @@ -0,0 +1,34 @@
    +<%@ WebHandler Language="C#" Class="Config" %>
    +
    +using System;
    +using System.Web;
    +using System.IO;
    +using System.Net;
    +using System.Text;
    +
    +/// <summary>
    +/// Allows to provide a client with a backend specific configuration. See
    +/// javascript/examples/editors/config/diagrameditor.xml for more details.
    +/// </summary>
    +public class Config : IHttpHandler
    +{
    +
    +    /// <summary>
    +    /// Loads the config via HTTP so we can use the virtual dir as path
    +    /// </summary>
    +    public void ProcessRequest (HttpContext context)
    +    {
    +        WebRequest wr = WebRequest.Create("http://localhost/mxgraph/dotnet/diagrameditor-backend.xml");
    +        context.Response.Write(new StreamReader(wr.GetResponse().GetResponseStream()).ReadToEnd());
    +    }
    +
    +    /// <summary>
    +    /// Return false in case your Managed Handler cannot be reused for another request.
    +    /// This would be false in case you have some state information preserved per request.
    +    /// </summary>
    +    public bool IsReusable
    +    {
    +        get { return true; }
    +    }
    +
    +}
    diff --git a/dotnet/aspnet/Default.htm b/dotnet/aspnet/Default.htm
    new file mode 100644
    index 000000000..10a3d40a3
    --- /dev/null
    +++ b/dotnet/aspnet/Default.htm
    @@ -0,0 +1,34 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml" >
    +<head>
    +    <title>mxGraph Dotnet Server Examples</title>
    +</head>
    +<body>
    +    <h2>mxGraph Dotnet Server Examples</h2>
    +    <p>
    +        The following Dotnet server examples are available for mxGraph:
    +    </p>
    +    <ul>
    +        <li><a href="Hello.aspx">Hello, World!</a></li>
    +        <li><a href="Share.ashx?start">Share</a> (<a href="Share.ashx?reset" target="_blank">Reset</a>)</li>
    +        <li><a href="Deploy.ashx">Deploy</a></li>
    +    </ul>
    +    <div style="border: solid 1px black;background:red;display:none;padding:10px;width:60%;" id="warning">
    +        <h3>Warning: Virtual Directory /mxgraph not found!</h3>
    +        <p>
    +            A virtual directory (<code>/mxgraph</code>) that points to the top-level
    +            directory of the mxGraph distribution is required in IIS for these examples
    +            to work. This virtual directory must be manually created using the IIS Manager.
    +        </p>
    +    </div>
    +    <script type="text/javascript">
    +        // Checks if the virtual directory exists by loading an image that should be in
    +        // the virtual directory. If the image cannot be found then a warning is shown.
    +        var image = new Image();
    +        image.onerror = function() {
    +            document.getElementById('warning').style.display = '';
    +        }
    +        image.src = '/mxgraph/javascript/src/images/transparent.gif';
    +    </script>
    +</body>
    +</html>
    diff --git a/dotnet/aspnet/Deploy.ashx b/dotnet/aspnet/Deploy.ashx
    new file mode 100644
    index 000000000..3eddbb45f
    --- /dev/null
    +++ b/dotnet/aspnet/Deploy.ashx
    @@ -0,0 +1,113 @@
    +<%@ WebHandler Language="C#" Class="Deploy" %>
    +
    +using System;
    +using System.Web;
    +using System.IO;
    +using System.Net;
    +using System.Text;
    +using com.mxgraph;
    +
    +public class Deploy : IHttpHandler
    +{
    +    /// <summary>
    +    /// Creates the Xml for the graph to be deployed.
    +    /// </summary>
    +    /// <param name="context"></param>
    +    /// <returns></returns>
    +    protected string CreateGraph(HttpContext context)
    +    {
    +        // Creates the graph on the server-side
    +        mxCodec codec = new mxCodec();
    +        mxGraph graph = new mxGraph();
    +        Object parent = graph.GetDefaultParent();
    +
    +        graph.Model.BeginUpdate();
    +        try
    +        {
    +            Object v1 = graph.InsertVertex(parent, null, "Hello", 20,
    +                    20, 80, 30);
    +            Object v2 = graph.InsertVertex(parent, null, "World", 200, 150, 80, 30);
    +            graph.InsertEdge(parent, null, "", v1, v2);
    +        }
    +        finally
    +        {
    +            graph.Model.EndUpdate();
    +        }
    +
    +        // Turns the graph into XML data        
    +        return mxUtils.GetXml(codec.Encode(graph.Model));
    +    }
    +
    +    /// <summary>
    +    /// Demonstrates the deployment of a graph which is created on the
    +    /// server side and then deployed with the client library in a single
    +    /// response. This is done by replacing the %graph% placeholder in the
    +    /// javascript/example/template.html file with the XML representation
    +    /// of the graph that was created on the server.
    +    /// 
    +    /// This example returns an HTML page when the client issues a get
    +    /// request. The readme in the dotnet directory explains how to run
    +    /// this example.
    +    /// 
    +    /// The /javascript/examples/template.html file is used by this
    +    /// example. In ProcessRequest a graph is created and the XML of the
    +    /// graph obtained by:
    +    /// 
    +    ///   mxCodec codec = new mxCodec();
    +    ///   String xml = mxUtils.GetXml(codec.Encode(graph.Model));
    +    ///
    +    /// The template.html is then loaded as a string and instances of
    +    /// %graph% are replaced with the XML of the graph. In the
    +    /// template.html the following line defines the page body:
    +    /// 
    +    ///   <body onload="main(document.getElementById('graphContainer'), '%graph%');">
    +    /// 
    +    /// So the XML string of the graph becomes the second parameter of the
    +    /// main function. When the template.html page is loaded in the browser,
    +    /// the main function is called and within that function these lines:
    +    /// 
    +    ///   var doc = mxUtils.parseXml(xml);
    +    ///   var codec = new mxCodec(doc);
    +    ///   codec.decode(doc.documentElement, graph.getModel());
    +    ///
    +    /// insert the XML into the graph model and that graph will then display. 
    +    /// </summary>
    +    /// <param name="context"></param>
    +    public void ProcessRequest(HttpContext context)
    +    {
    +        // Loads the template into a single string
    +        try
    +        {
    +            // Loads the template via HTTP so we can use the virtual dir as path
    +            WebRequest wr = WebRequest.Create("http://localhost/mxgraph/javascript/examples/template.html");
    +            string template = new StreamReader(wr.GetResponse().GetResponseStream()).ReadToEnd();
    +            string xml = CreateGraph(context);
    +
    +            // Replaces the placeholder in the template with the XML data
    +            // which is then parsed into the graph model. Note: In a production
    +            // environment you should use a template engine instead.
    +            String page = template.Replace("%graph%", mxUtils.HtmlEntities(xml));
    +
    +            // Makes sure there is no caching on the client side
    +            HttpResponse res = context.Response;
    +            res.AddHeader("Pragma", "no-cache"); // HTTP 1.0
    +            res.AddHeader("Cache-control", "private, no-cache, no-store");
    +            res.AddHeader("Expires", "0");
    +
    +            res.Write(page);
    +        }
    +        catch (Exception e)
    +        {
    +            context.Response.StatusCode = 500;
    +            Console.Error.WriteLine(e);
    +        }
    +    }
    +
    +    public bool IsReusable
    +    {
    +        // Return false in case your Managed Handler cannot be reused for another request.
    +        // Usually this would be false in case you have some state information preserved per request.
    +        get { return true; }
    +    }
    +
    +}
    diff --git a/dotnet/aspnet/Export.ashx b/dotnet/aspnet/Export.ashx
    new file mode 100644
    index 000000000..3c91c9662
    --- /dev/null
    +++ b/dotnet/aspnet/Export.ashx
    @@ -0,0 +1,66 @@
    +<%@ WebHandler Language="C#" Class="Export" %>
    +
    +using System;
    +using System.Collections.Generic;
    +using System.Xml;
    +using System.Text;
    +using System.Web;
    +using System.IO;
    +using System.Drawing;
    +using System.Drawing.Imaging;
    +using com.mxgraph;
    +
    +/// <summary>
    +/// This handler may be used to create bitmap versions of the graphs
    +/// using a high-level description of the visual appearance so there
    +/// is no need to create an object representation of the model on
    +/// the server-side. The description even allows the server to create
    +/// the bitmaps using a SAX parser. A DOM parser is not required.
    +/// 
    +/// To integrate the image handler with a client application, the client
    +/// application must be setup to use this handler. This can be done by
    +/// setting mxEditor.urlImage programmatically or using a config file.
    +/// </summary>
    +public class Export : IHttpHandler
    +{
    +
    +    public void ProcessRequest (HttpContext context)
    +    {
    +        string requestUrl = context.Request.Url.ToString();
    +        string xml = HttpUtility.UrlDecode(context.Request.Params["xml"]);
    +
    +        if (xml != null)
    +        {
    +            context.Response.ContentType = "image/png";
    +
    +            XmlTextReader xmlReader = new XmlTextReader(new StringReader(xml));
    +            mxGraphViewImageReader viewReader = new mxGraphViewImageReader(
    +                xmlReader, Color.White, 4, true, true);
    +
    +            // Use Clip property on viewReader to render a subimage
    +            Image image = mxGraphViewImageReader.Convert(viewReader);
    +
    +            // Displays a Save As... dialog on the client-side
    +            context.Response.AddHeader("Content-Disposition",
    +                    "attachment; filename=diagram.png");
    +
    +            // Render BitMap Stream Back To Client
    +            MemoryStream memStream = new MemoryStream();
    +            image.Save(memStream, ImageFormat.Png);
    +
    +            memStream.WriteTo(context.Response.OutputStream);
    +        }
    +        else
    +        {
    +            context.Response.StatusCode = 400; /* Bad Request */
    +        }
    +    }
    +
    +    public bool IsReusable
    +    {
    +        // Return false in case your Managed Handler cannot be reused for another request.
    +        // Usually this would be false in case you have some state information preserved per request.
    +        get { return true; }
    +    }
    +
    +}
    diff --git a/dotnet/aspnet/GraphControl.js b/dotnet/aspnet/GraphControl.js
    new file mode 100644
    index 000000000..4b73e5f16
    --- /dev/null
    +++ b/dotnet/aspnet/GraphControl.js
    @@ -0,0 +1,39 @@
    +/// <reference name="MicrosoftAjax.js"/>
    +
    +Type.registerNamespace("aspnet");
    +
    +aspnet.GraphControl = function(element) {
    +    aspnet.GraphControl.initializeBase(this, [element]);
    +}
    +
    +aspnet.GraphControl.prototype = {
    +    initialize: function() {
    +        aspnet.GraphControl.callBaseMethod(this, 'initialize');
    +        
    +        // Constructs a graph instance for the given element
    +        this._graph = new mxGraph(this.get_element());
    +
    +        // Enables rubberband selection
    +        this._rubberband = new mxRubberband(this._graph);
    +    },
    +    dispose: function() {
    +        this._graph.destroy();
    +        aspnet.GraphControl.callBaseMethod(this, 'dispose');
    +    },
    +    get_graph: function() {
    +        return this._graph;
    +    },
    +    decode: function(node) {
    +        // Decodes the given node into the graph model.
    +        var enc = new mxCodec(node.ownerDocument);
    +        enc.decode(node, this._graph.getModel());
    +    },
    +    encode: function() {
    +        // Returns the XML node that represents the graph model.
    +        var enc = new mxCodec();
    +        return enc.encode(this._graph.getModel());
    +    }
    +}
    +aspnet.GraphControl.registerClass('aspnet.GraphControl', Sys.UI.Control);
    +
    +if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
    diff --git a/dotnet/aspnet/Hello.aspx b/dotnet/aspnet/Hello.aspx
    new file mode 100644
    index 000000000..cb7a745e2
    --- /dev/null
    +++ b/dotnet/aspnet/Hello.aspx
    @@ -0,0 +1,117 @@
    +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Hello.aspx.cs" Inherits="aspnet._Hello" %>
    +
    +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    +<!-- --------------------------------------------------------------------------------------------
    +     Use mxGraph with the above or no DOCTYPE.
    +     -------------------------------------------------------------------------------------------- -->
    +<html xmlns="http://www.w3.org/1999/xhtml" >
    +<head runat="server">
    +    <title>Hello, World!</title>
    +<!-- --------------------------------------------------------------------------------------------
    +     Any static HTML page in /javascript/examples can be turned into an ASP.NET page in a few
    +     simple steps as shown below. When using mxGraph in ASP.NET one must keep in mind that it
    +     consists of a client-side part (JavaScript), which runs in the browser, and a server-side
    +     part, in C#, which runs in the server (IIS). The server-side code can be used to create,
    +     read, write, and layout graphs. The client is used to modify graphs interactively, but it
    +     doesn't require a server while the graph is being modifed. It only exchanges data with the
    +     server at load- and save-time and to create images. All data is exchanged in XML.
    +     Hence there are three different approaches for turning a static HTML page with mxGraph into
    +     an ASP.NET page, one of which is keeping the static page and handling all XHR requests in
    +     separate ASP.NET handlers. The second approach is to create a so-called AJAX Client Control,
    +     which in our case is a simple wrapper that creates the mxGraph instance and adds methods.
    +     This solution allows for easier integration into an ASP.NET page or Web User Control. The
    +     third approach is creating a ASP.NET Ajax Server control. This uses the same client-side
    +     but adds the code for creating the control instance on the client, and some server-side code
    +     for emitting the required HTML tags for the control. Since mxGraph is almost only a client-
    +     side functionality this last approach is typically application-specific and not used here.
    +     -------------------------------------------------------------------------------------------- -->
    +</head>
    +<body>
    +    <form id="form1" runat="server">
    +<!-- --------------------------------------------------------------------------------------------
    +     Loads the mx client library. You can move this into the page or keep it in the HEAD. If the
    +     client is required multiple times in the page then it should only be loaded once. The global
    +     mxBasePath variable is required for loading the language files and images in the client. You
    +     should create a virtual directory pointing to mxgraph/javascript on your server and update
    +     the base path and URL of mxClient.js accordingly. Note that you should always load the page
    +     and the client from the same server to avoid cross-domain restrictions when loading files.
    +     In this example, the virtual directory is expected to point to the top-leve directory.
    +     -------------------------------------------------------------------------------------------- -->
    +	<script type="text/javascript">
    +	    mxBasePath = '/mxgraph/javascript/src';
    +	</script>
    +	<script type="text/javascript" src="/mxgraph/javascript/src/js/mxClient.js"></script>
    +<!-- --------------------------------------------------------------------------------------------
    +     Uses script manager to load the AJAX Client Control. This is the standard way of loading an
    +     an external script file and the script defines a leightweight ASP.NET wrapper for mxGraph
    +     that adds methods for reading and writing graphs in XML.
    +     -------------------------------------------------------------------------------------------- -->
    +    <asp:ScriptManager ID="ScriptManager1" runat="server">
    +        <scripts>
    +           <asp:ScriptReference Path="GraphControl.js" />
    +        </scripts>
    +    </asp:ScriptManager>
    +<!-- --------------------------------------------------------------------------------------------
    +     The following static markup is used (via the ID) as the container of the graph. This doesn't
    +     need to be changed to work with ASP.NET. The button is used to implement the save function,
    +     which posts the current graph as XML to an ASP.NET handler. Note that the button and the
    +     graph are wired up later, after the graph instance was created, using the unique ID of the
    +     button to add its click handler which takes care of the encoding and posting.
    +     -------------------------------------------------------------------------------------------- -->
    +    <div id="graphContainer"
    +	    style="overflow:hidden;width:322px; height:289px; background:url('/mxgraph/javascript/examples/editors/images/grid.gif')">
    +    </div>
    +    <button type="button" id="saveButton">Save</button>
    +<!-- --------------------------------------------------------------------------------------------
    +     The following is the standard way of creating an AJAX Client Control instance. The main from
    +     the static page corresponds to this function. Its invocation was moved from the pages onload
    +     event to the applications init event, which fires after all scripts have been loaded.
    +     Alternatively the load event can be used, which fires after all controls have been created.
    +     -------------------------------------------------------------------------------------------- -->
    +    <script type="text/javascript">
    +        var app = Sys.Application;
    +        app.add_init(function(sender, args) {
    +            // Program starts here. Gets the DOM elements for the respective IDs so things can be
    +            // created and wired-up.
    +            var graphContainer = $get('graphContainer');
    +            var saveButton = $get('saveButton');
    +
    +            if (!mxClient.isBrowserSupported()) {
    +                // Displays an error message if the browser is not supported.
    +                mxUtils.error('Browser is not supported!', 200, false);
    +            }
    +            else {
    +                // Creates an instance of the graph control, passing the graphContainer element to the
    +                // mxGraph constructor. The $create function is part of ASP.NET. It can take an ID for
    +                // creating objects so the new instances can later be found using the $find function.
    +                var graphControl = $create(aspnet.GraphControl, null, null, null, graphContainer);
    +
    +                // Saves graph by posting the XML to the generic handler SaveHandler.ashx. This code
    +                // only registers the event handler in the static button, which in turn invokes the
    +                // method to post the XML on the client control, passing the URL and param name.
    +                mxEvent.addListener(saveButton, 'click', function(evt) {
    +                    // Posts the XML representation for the graph model to the given URL under the
    +                    // given request parameter and prints the server response to the console.
    +                    var xml = encodeURIComponent(mxUtils.getXml(graphControl.encode()));
    +                    mxUtils.post('Save.ashx', 'xml=' + xml,
    +                    // Asynchronous callback for successfull requests. Depending on the application
    +                    // you may have to parse a custom response such as a new or modified graph.
    +                        function(req) {
    +                            mxLog.show();
    +                            mxLog.debug(req.getText());
    +                        }
    +                    );
    +                });
    +
    +                // Reads the initial graph from a member variable in the page. The variable is an XML
    +                // string which is replaced on the server-side using the expression below. The string
    +                // is then parsed using mxUtils.parseXml on the client-side and the resulting DOM is
    +                // passed to the decode method for reading the graph into the current graph model.
    +                var doc = mxUtils.parseXml('<% = Xml %>');
    +                graphControl.decode(doc.documentElement);
    +            }
    +        });
    +    </script>
    +    </form>
    +</body>
    +</html>
    diff --git a/dotnet/aspnet/Hello.aspx.cs b/dotnet/aspnet/Hello.aspx.cs
    new file mode 100644
    index 000000000..fd59fbd34
    --- /dev/null
    +++ b/dotnet/aspnet/Hello.aspx.cs
    @@ -0,0 +1,52 @@
    +using System;
    +using System.Collections.Generic;
    +using System.Linq;
    +using System.Web;
    +using System.Web.UI;
    +using System.Web.UI.WebControls;
    +using com.mxgraph;
    +
    +namespace aspnet
    +{
    +    public partial class _Hello : System.Web.UI.Page
    +    {
    +        protected string xml;
    +
    +        protected void Page_Load(object sender, EventArgs e)
    +        {
    +            // Creates an instance of a graph to add vertices and edges. The instance can
    +            // then be used to create the corresponding XML using a codec. Note that this
    +            // is only required if a graph is programmatically created. If the XML for the
    +            // graph is already at hand, it can be sent directly here.
    +            mxGraph graph = new mxGraph();
    +            Object parent = graph.GetDefaultParent();
    +
    +            // Adds vertices and edges to the graph.
    +            graph.Model.BeginUpdate();
    +            try
    +            {
    +                Object v1 = graph.InsertVertex(parent, null, "Hello,", 20, 20, 80, 30);
    +                Object v2 = graph.InsertVertex(parent, null, "World!", 200, 150, 80, 30);
    +                Object e1 = graph.InsertEdge(parent, null, "Edge", v1, v2);
    +            }
    +            finally
    +            {
    +                graph.Model.EndUpdate();
    +            }
    +
    +            // Encodes the model into XML and passes the resulting XML string into a page
    +            // variable, so it can be read when the page is rendered on the server. Note
    +            // that the page instance is destroyed after the page was sent to the client.
    +            mxCodec codec = new mxCodec();
    +            Xml = mxUtils.GetXml(codec.Encode(graph.Model));
    +        }
    +
    +        // Getter and setter for the XML variable.
    +        public string Xml
    +        {
    +            get { return xml; }
    +            set { xml = value; }
    +        }
    +
    +    }
    +}
    diff --git a/dotnet/aspnet/Hello.aspx.designer.cs b/dotnet/aspnet/Hello.aspx.designer.cs
    new file mode 100644
    index 000000000..a6d2bcaa8
    --- /dev/null
    +++ b/dotnet/aspnet/Hello.aspx.designer.cs
    @@ -0,0 +1,34 @@
    +//------------------------------------------------------------------------------
    +// <auto-generated>
    +//     This code was generated by a tool.
    +//     Runtime Version:2.0.50727.4927
    +//
    +//     Changes to this file may cause incorrect behavior and will be lost if
    +//     the code is regenerated.
    +// </auto-generated>
    +//------------------------------------------------------------------------------
    +
    +namespace aspnet {
    +    
    +    
    +    public partial class _Hello {
    +        
    +        /// <summary>
    +        /// form1 control.
    +        /// </summary>
    +        /// <remarks>
    +        /// Auto-generated field.
    +        /// To modify move field declaration from designer file to code-behind file.
    +        /// </remarks>
    +        protected global::System.Web.UI.HtmlControls.HtmlForm form1;
    +        
    +        /// <summary>
    +        /// ScriptManager1 control.
    +        /// </summary>
    +        /// <remarks>
    +        /// Auto-generated field.
    +        /// To modify move field declaration from designer file to code-behind file.
    +        /// </remarks>
    +        protected global::System.Web.UI.ScriptManager ScriptManager1;
    +    }
    +}
    diff --git a/dotnet/aspnet/NewExport.ashx b/dotnet/aspnet/NewExport.ashx
    new file mode 100644
    index 000000000..f2c95dc47
    --- /dev/null
    +++ b/dotnet/aspnet/NewExport.ashx
    @@ -0,0 +1,62 @@
    +<%@ WebHandler Language="C#" Class="NewExport" %>
    +
    +using System;
    +using System.Collections.Generic;
    +using System.Xml;
    +using System.Text;
    +using System.Web;
    +using System.IO;
    +using System.Drawing;
    +using System.Drawing.Imaging;
    +using System.Drawing.Drawing2D;
    +using com.mxgraph;
    +
    +/// <summary>
    +/// Creates a bitmap image of the diagram based on generic XML.
    +/// </summary>
    +public class NewExport : IHttpHandler
    +{
    +
    +    public void ProcessRequest (HttpContext context)
    +    {
    +        string xml = HttpUtility.UrlDecode(context.Request.Params["xml"]);
    +        string width = context.Request.Params["w"];
    +        string height = context.Request.Params["h"];
    +        string bg = context.Request.Params["bg"];
    +        string filename = context.Request.Params["filename"];
    +        string format = context.Request.Params["format"];
    +
    +        if (xml != null && width != null && height != null && bg != null
    +                && filename != null && format != null)
    +        {
    +            Image image = mxUtils.CreateImage(int.Parse(width), int.Parse(height),
    +                ColorTranslator.FromHtml(bg));
    +            Graphics g = Graphics.FromImage(image);
    +            g.SmoothingMode = SmoothingMode.HighQuality;
    +            mxSaxOutputHandler handler = new mxSaxOutputHandler(new mxGdiCanvas2D(g));
    +            handler.Read(new XmlTextReader(new StringReader(xml)));
    +
    +            context.Response.ContentType = "image/" + format;
    +            context.Response.AddHeader("Content-Disposition",
    +                    "attachment; filename=" + filename);
    +
    +            MemoryStream memStream = new MemoryStream();
    +            image.Save(memStream, ImageFormat.Png);
    +            memStream.WriteTo(context.Response.OutputStream);
    +
    +            context.Response.StatusCode = 200; /* OK */
    +        }
    +        else
    +        {
    +            context.Response.StatusCode = 400; /* Bad Request */
    +        }
    +    }
    +
    +    public bool IsReusable
    +    {
    +        // Return false in case your Managed Handler cannot be reused for another request.
    +        // Usually this would be false in case you have some state information preserved per request.
    +        get { return true; }
    +    }
    +
    +}
    diff --git a/dotnet/aspnet/Properties/AssemblyInfo.cs b/dotnet/aspnet/Properties/AssemblyInfo.cs
    new file mode 100644
    index 000000000..ae358af97
    --- /dev/null
    +++ b/dotnet/aspnet/Properties/AssemblyInfo.cs
    @@ -0,0 +1,35 @@
    +using System.Reflection;
    +using System.Runtime.CompilerServices;
    +using System.Runtime.InteropServices;
    +
    +// General Information about an assembly is controlled through the following 
    +// set of attributes. Change these attribute values to modify the information
    +// associated with an assembly.
    +[assembly: AssemblyTitle("aspnet")]
    +[assembly: AssemblyDescription("")]
    +[assembly: AssemblyConfiguration("")]
    +[assembly: AssemblyCompany("Microsoft")]
    +[assembly: AssemblyProduct("aspnet")]
    +[assembly: AssemblyCopyright("Copyright © Microsoft 2009")]
    +[assembly: AssemblyTrademark("")]
    +[assembly: AssemblyCulture("")]
    +
    +// Setting ComVisible to false makes the types in this assembly not visible 
    +// to COM components.  If you need to access a type in this assembly from 
    +// COM, set the ComVisible attribute to true on that type.
    +[assembly: ComVisible(false)]
    +
    +// The following GUID is for the ID of the typelib if this project is exposed to COM
    +[assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")]
    +
    +// Version information for an assembly consists of the following four values:
    +//
    +//      Major Version
    +//      Minor Version 
    +//      Build Number
    +//      Revision
    +//
    +// You can specify all the values or you can default the Revision and Build Numbers 
    +// by using the '*' as shown below:
    +[assembly: AssemblyVersion("1.0.0.0")]
    +[assembly: AssemblyFileVersion("1.0.0.0")]
    diff --git a/dotnet/aspnet/Save.ashx b/dotnet/aspnet/Save.ashx
    new file mode 100644
    index 000000000..43e6078fa
    --- /dev/null
    +++ b/dotnet/aspnet/Save.ashx
    @@ -0,0 +1,32 @@
    +<%@ WebHandler Language="C#" Class="Save" %>
    +
    +using System;
    +using System.Web;
    +
    +public class Save : IHttpHandler
    +{
    +
    +    public void ProcessRequest (HttpContext context)
    +    {
    +        // Response is always returned as text/plain
    +        context.Response.ContentType = "text/plain";
    +        string xml = HttpUtility.UrlDecode(context.Request.Params["xml"]);
    +
    +        if (xml != null && xml.Length > 0)
    +        {
    +            context.Response.Write("Request received: " + xml);
    +        }
    +        else
    +        {
    +            context.Response.Write("Empty or missing request parameter.");
    +        }
    +    }
    +
    +    public bool IsReusable
    +    {
    +        // Return false in case your Managed Handler cannot be reused for another request.
    +        // Usually this would be false in case you have some state information preserved per request.
    +        get { return true; }
    +    }
    +
    +}
    diff --git a/dotnet/aspnet/Share.ashx b/dotnet/aspnet/Share.ashx
    new file mode 100644
    index 000000000..b88f20480
    --- /dev/null
    +++ b/dotnet/aspnet/Share.ashx
    @@ -0,0 +1,183 @@
    +<%@ WebHandler Language="C#" Class="Share" %>
    +
    +using System;
    +using System.Text;
    +using System.Web;
    +using System.Web.SessionState;
    +using System.Threading;
    +using System.Collections.Generic;
    +using System.Xml;
    +using com.mxgraph;
    +
    +/// <summary>
    +/// This handler demonstrates the sharing of diagrams across a number of
    +/// clients. The handler itself does not have an object representation of the
    +/// graph in memory, it only serves as a dispatcher for the XML among the
    +/// clients.
    +/// 
    +/// To integrate sharing with a client application, an mxSession must be created
    +/// and configured to handle cell identities and more. This is all done in the
    +/// mxEditor.connect method, which returns the session object being used to
    +/// connect the model to the backend. Note that it is possible to attach
    +/// multiple sessions to one editor and graph model.
    +/// 
    +/// When the graph model is changed in a shared client, the changes are encoded
    +/// into XML and then sent to the server in a POST request. The server then gets
    +/// a list of clients which are connected to the same diagram, and sends the
    +/// encoded changes to those clients. (Note that the sender will not get
    +/// notified of his own changes in the default mode.)
    +/// 
    +/// When the client receives such a set of changes, it decodes them and executes
    +/// them on its local model, bypassing the command history of local changes.
    +/// This means the client immediately sees the changes, but pressing undo will
    +/// only undo the last local change of that specific client.
    +/// 
    +/// To use the example, the respective session URLs must be assigned in the
    +/// mxEditor either programmatically or by use of the same config file as above.
    +/// Note that it is possible to integrate both, image creating and diagram
    +/// sharing into the same client by assigning the respective attributes in the
    +/// mxEditor node in the config file. For diagram sharing, the following
    +/// member variables are used: mxEditor.urlInit, mxEditor.urlPoll and
    +/// mxEditor.urlNotify.
    +/// </summary>
    +public class Share : IHttpHandler
    +{
    +    /// <summary>
    +    /// Defines the name of the session cookie.
    +    /// </summary>
    +    protected static string SESSION_ID = "MXSESSIONID";
    +
    +    /// <summary>
    +    /// Holds the global shared diagram (initial state and sequence of changes).
    +    /// </summary>
    +    public static mxSharedDiagram globalState= new mxSharedDiagram("<mxGraphModel><root><Workflow label=\"Diagram\" id=\"0\"></Workflow><Layer " +
    +                        "label=\"Default Layer\" id=\"1\"><mxCell parent=\"0\" /></Layer></root></mxGraphModel>");
    +
    +    /// <summary>
    +    /// Maps from session IDs to sessions.
    +    /// </summary>
    +    public Dictionary<string, mxSession> sessions = new Dictionary<string, mxSession>();
    +
    +    /// <summary>
    +    /// Main entry point for a client request. Notifications for changes are always posted,
    +    /// the get requests may be an initial, polling or reset request (see below).
    +    /// </summary>
    +    /// <param name="context"></param>
    +    public void ProcessRequest(HttpContext context)
    +    {
    +        mxSession session = GetSession(context);
    +
    +        if (context.Request.RequestType.Equals("POST"))
    +        {
    +            ProcessPostRequest(context, session);
    +        }
    +        else
    +        {
    +            ProcessGetRequest(context, session);
    +        }
    +    }
    +    
    +    /// <summary>
    +    /// Adds a set of changes to the global shared diagram.
    +    /// </summary>
    +    /// <param name="context"></param>
    +    /// <param name="session"></param>
    +    protected void ProcessPostRequest(HttpContext context, mxSession session)
    +    {
    +        string xml = HttpUtility.UrlDecode(context.Request.Params["xml"]);
    +
    +        XmlDocument doc = mxUtils.ParseXml(xml);
    +        session.Receive(doc.DocumentElement);
    +        context.Response.Write("OK");
    +    }
    +
    +    /// <summary>
    +    /// Handles various GET requests to start sharing, reset the global shared diagram and
    +    /// request the initial state or listen to changes.
    +    /// </summary>
    +    /// <param name="context"></param>
    +    /// <param name="session"></param>
    +    protected void ProcessGetRequest(HttpContext context, mxSession session)
    +    {
    +        string target = context.Request.Url.ToString().ToLower();
    +        HttpResponse res = context.Response;
    +
    +        // Redirects the client to the actual static diagram editor. The diagram editor
    +        // loads the configuration which contains one hook to request more configuration
    +        // data at the server. This request is implemented in Config.ashx to deliver the
    +        // configuration required to access this servlet for sharing and Export.ashx for
    +        // creating images.
    +        if (target.EndsWith("start"))
    +        {
    +            res.Redirect("/mxgraph/javascript/examples/editors/diagrameditor.html", true);
    +        }
    +        else if (target.EndsWith("reset"))
    +        {
    +            globalState.ResetDelta();
    +            res.Write("Diagram reset");
    +        }
    +        else
    +        {
    +            res.AddHeader("Content-type", "text/xml");
    +            res.AddHeader("Pragma", "no-cache"); // HTTP 1.0
    +            res.AddHeader("Cache-control", "private, no-cache, no-store");
    +            res.AddHeader("Expires", "0");
    +            string xml = "";
    +
    +            if (target.EndsWith("init"))
    +            {
    +                xml = session.Init();
    +            }
    +            else
    +            {
    +                xml = session.Poll();
    +            }
    +
    +            res.Write(xml);
    +        }
    +
    +        res.StatusCode = 200; /* OK */
    +    }
    +    
    +    /// <summary>
    +    /// Returns the session for the given context.
    +    /// </summary>
    +    /// <param name="context"></param>
    +    /// <returns></returns>
    +    protected mxSession GetSession(HttpContext context)
    +    {
    +        HttpCookie cookie = context.Request.Cookies[SESSION_ID];
    +
    +        if (cookie == null)
    +        {
    +            cookie = new HttpCookie(SESSION_ID);
    +            cookie.Value = Guid.NewGuid().ToString();
    +            context.Response.Cookies.Add(cookie);
    +        }
    +
    +        // Gets or creates the mxSession associated with the client
    +        mxSession session = null;
    +
    +        lock (sessions)
    +        {
    +            string sid = cookie.Value;
    +            sessions.TryGetValue(sid, out session);
    +
    +            if (session == null)
    +            {
    +                session = new mxSession(sid, globalState);
    +                sessions[sid] = session;
    +            }
    +        }
    +
    +        return session;
    +    }
    +    
    +    public bool IsReusable
    +    {
    +        // Return false in case your Managed Handler cannot be reused for another request.
    +        // Usually this would be false in case you have some state information preserved per request.
    +        get { return true; }
    +    }
    +
    +}
    diff --git a/dotnet/aspnet/Web.config b/dotnet/aspnet/Web.config
    new file mode 100644
    index 000000000..052b999ca
    --- /dev/null
    +++ b/dotnet/aspnet/Web.config
    @@ -0,0 +1,129 @@
    +<?xml version="1.0"?>
    +
    +<configuration>
    +
    +    <configSections>
    +      <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    +        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    +          <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    +          <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    +            <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
    +            <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
    +            <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
    +            <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
    +          </sectionGroup>
    +        </sectionGroup>
    +      </sectionGroup>
    +    </configSections>  
    +
    +  
    +    <appSettings/>
    +    <connectionStrings/>
    +  
    +    <system.web>
    +        <!-- 
    +            Set compilation debug="true" to insert debugging 
    +            symbols into the compiled page. Because this 
    +            affects performance, set this value to true only 
    +            during development.
    +        -->
    +        <compilation debug="false">
    +
    +          <assemblies>
    +            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    +            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    +            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    +            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    +          </assemblies>
    +
    +        </compilation>
    +        <!--
    +            The <authentication> section enables configuration 
    +            of the security authentication mode used by 
    +            ASP.NET to identify an incoming user. 
    +        -->
    +        <authentication mode="Windows" />
    +        <!--
    +            The <customErrors> section enables configuration 
    +            of what to do if/when an unhandled error occurs 
    +            during the execution of a request. Specifically, 
    +            it enables developers to configure html error pages 
    +            to be displayed in place of a error stack trace.
    +
    +        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
    +            <error statusCode="403" redirect="NoAccess.htm" />
    +            <error statusCode="404" redirect="FileNotFound.htm" />
    +        </customErrors>
    +        -->
    +
    +      <pages>
    +        <controls>
    +          <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    +          <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    +        </controls>
    +      </pages>
    +
    +      <httpHandlers>
    +        <remove verb="*" path="*.asmx"/>
    +        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    +        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    +        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    +      </httpHandlers>
    +      <httpModules>
    +        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    +      </httpModules>
    +    </system.web>
    +
    +    <system.codedom>
    +      <compilers>
    +        <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
    +                  type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    +          <providerOption name="CompilerVersion" value="v3.5"/>
    +          <providerOption name="WarnAsError" value="false"/>
    +        </compiler>
    +     </compilers>
    +    </system.codedom>
    +    
    +    <!-- 
    +        The system.webServer section is required for running ASP.NET AJAX under Internet
    +        Information Services 7.0.  It is not necessary for previous version of IIS.
    +    -->
    +    <system.webServer>
    +      <validation validateIntegratedModeConfiguration="false"/>
    +      <modules>
    +        <remove name="ScriptModule" />
    +        <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    +      </modules>
    +      <handlers>
    +        <remove name="WebServiceHandlerFactory-Integrated"/>
    +        <remove name="ScriptHandlerFactory" />
    +        <remove name="ScriptHandlerFactoryAppServices" />
    +        <remove name="ScriptResource" />
    +        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
    +             type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    +        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
    +             type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    +        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    +      </handlers>
    +      <!-- 
    +          Custom MIME type for delivering language resource files for mxGraph.
    +      -->
    +      <staticContent>
    +        <mimeMap fileExtension=".properties" mimeType="text/plain" />
    +      </staticContent>
    +    </system.webServer>
    +
    +    <runtime>
    +      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    +        <dependentAssembly>
    +          <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
    +          <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    +        </dependentAssembly>
    +        <dependentAssembly>
    +          <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
    +          <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    +        </dependentAssembly>
    +      </assemblyBinding>
    +    </runtime>
    +
    +</configuration>
    diff --git a/dotnet/aspnet/aspnet.csproj b/dotnet/aspnet/aspnet.csproj
    new file mode 100644
    index 000000000..55f96c8ce
    --- /dev/null
    +++ b/dotnet/aspnet/aspnet.csproj
    @@ -0,0 +1,126 @@
    +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    +  <PropertyGroup>
    +    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    +    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    +    <ProductVersion>9.0.30729</ProductVersion>
    +    <SchemaVersion>2.0</SchemaVersion>
    +    <ProjectGuid>{C89246D9-8B63-4255-9250-085712D7DCA6}</ProjectGuid>
    +    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    +    <OutputType>Library</OutputType>
    +    <AppDesignerFolder>Properties</AppDesignerFolder>
    +    <RootNamespace>aspnet</RootNamespace>
    +    <AssemblyName>aspnet</AssemblyName>
    +    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    +  </PropertyGroup>
    +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    +    <DebugSymbols>true</DebugSymbols>
    +    <DebugType>full</DebugType>
    +    <Optimize>false</Optimize>
    +    <OutputPath>bin\</OutputPath>
    +    <DefineConstants>DEBUG;TRACE</DefineConstants>
    +    <ErrorReport>prompt</ErrorReport>
    +    <WarningLevel>4</WarningLevel>
    +  </PropertyGroup>
    +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    +    <DebugType>pdbonly</DebugType>
    +    <Optimize>true</Optimize>
    +    <OutputPath>bin\</OutputPath>
    +    <DefineConstants>TRACE</DefineConstants>
    +    <ErrorReport>prompt</ErrorReport>
    +    <WarningLevel>4</WarningLevel>
    +  </PropertyGroup>
    +  <ItemGroup>
    +    <Reference Include="System" />
    +    <Reference Include="System.Data" />
    +    <Reference Include="System.Core">
    +      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    +    </Reference>
    +    <Reference Include="System.Data.DataSetExtensions">
    +      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    +    </Reference>
    +    <Reference Include="System.Web.Extensions">
    +      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    +    </Reference>
    +    <Reference Include="System.Xml.Linq">
    +      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    +    </Reference>
    +    <Reference Include="System.Drawing" />
    +    <Reference Include="System.Web" />
    +    <Reference Include="System.Xml" />
    +    <Reference Include="System.Configuration" />
    +    <Reference Include="System.Web.Services" />
    +    <Reference Include="System.EnterpriseServices" />
    +    <Reference Include="System.Web.Mobile" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Content Include="Hello.aspx" />
    +    <Content Include="GraphControl.js" />
    +    <Content Include="Web.config" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Compile Include="Hello.aspx.cs">
    +      <SubType>ASPXCodeBehind</SubType>
    +      <DependentUpon>Hello.aspx</DependentUpon>
    +    </Compile>
    +    <Compile Include="Hello.aspx.designer.cs">
    +      <DependentUpon>Hello.aspx</DependentUpon>
    +    </Compile>
    +    <Compile Include="Properties\AssemblyInfo.cs" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <ProjectReference Include="..\mxgraph-dotnet.csproj">
    +      <Project>{741CF907-C7CF-4965-94C9-59BAEC072101}</Project>
    +      <Name>mxgraph-dotnet</Name>
    +    </ProjectReference>
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Content Include="Default.htm" />
    +    <Content Include="Save.ashx" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Content Include="Deploy.ashx" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Content Include="Share.ashx" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Content Include="Export.ashx" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Content Include="Config.ashx" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Content Include="NewExport.ashx" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Folder Include="App_Data\" />
    +  </ItemGroup>
    +  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
    +  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
    +  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
    +       Other similar extension points exist, see Microsoft.Common.targets.
    +  <Target Name="BeforeBuild">
    +  </Target>
    +  <Target Name="AfterBuild">
    +  </Target>
    +  -->
    +  <ProjectExtensions>
    +    <VisualStudio>
    +      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
    +        <WebProjectProperties>
    +          <UseIIS>False</UseIIS>
    +          <AutoAssignPort>True</AutoAssignPort>
    +          <DevelopmentServerPort>52556</DevelopmentServerPort>
    +          <DevelopmentServerVPath>/</DevelopmentServerVPath>
    +          <IISUrl>
    +          </IISUrl>
    +          <NTLMAuthentication>False</NTLMAuthentication>
    +          <UseCustomServer>False</UseCustomServer>
    +          <CustomServerUrl>
    +          </CustomServerUrl>
    +          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
    +        </WebProjectProperties>
    +      </FlavorProperties>
    +    </VisualStudio>
    +  </ProjectExtensions>
    +</Project>
    \ No newline at end of file
    diff --git a/dotnet/diagrameditor-backend.xml b/dotnet/diagrameditor-backend.xml
    new file mode 100644
    index 000000000..6a9cb527a
    --- /dev/null
    +++ b/dotnet/diagrameditor-backend.xml
    @@ -0,0 +1 @@
    +<mxEditor urlImage="/Export.ashx" urlInit="/Share.ashx?init" urlPoll="/Share.ashx" urlNotify="/Share.ashx"/>
    diff --git a/dotnet/docs/html/annotated.html b/dotnet/docs/html/annotated.html
    new file mode 100644
    index 000000000..cf3b23ad7
    --- /dev/null
    +++ b/dotnet/docs/html/annotated.html
    @@ -0,0 +1,85 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html">com::mxgraph::mxCellRenderer::CanvasFactory</a></td><td class="indexvalue">Defines the requirements for a class that can create canvases </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">com::mxgraph::mxGdiCanvas2D::CanvasState</a></td><td class="indexvalue"></td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a></td><td class="indexvalue">FIXME: Use anonymous class in CreateImage with invocation parameters in factory method code </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td class="indexvalue">Basic implementation of a canvas that draws a graph </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td class="indexvalue">Cells are the elements of the graph model. They represent the state of the groups, vertices and edges in a graph </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html">com::mxgraph::mxCellCodec</a></td><td class="indexvalue">Codec for mxCells. This class is created and registered dynamically at load time and used implicitely via <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> and the <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a> </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html">com::mxgraph::mxCellPath</a></td><td class="indexvalue">Implements a mechanism for temporary cell Ids </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">com::mxgraph::mxCellRenderer</a></td><td class="indexvalue">Class that can draw an independent array of cells </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td class="indexvalue">Represents the current state of a cell in a given graph view </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td class="indexvalue">XML codec for .NET object graphs. In order to resolve forward references when reading files the XML document that contains the data must be passed to the constructor </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td class="indexvalue">Static class that acts as a global registry for codecs. See <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> for an example of using this class </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a></td><td class="indexvalue">Defines an object that contains the constraints about how to connect one side of an edge to its terminal </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td class="indexvalue">Defines various global constants </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">com::mxgraph::mxEdgeStyle</a></td><td class="indexvalue">Provides various edge styles to be used as the values for <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8861eab51bc7b08c6275a70f2f4172cb" title="Takes a function that creates points. Possible values are the functions defined in...">mxConstants.STYLE_EDGE</a> in a cell style </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td class="indexvalue">Fast organic layout algorithm </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td class="indexvalue">Implementation of a canvas that uses GDI for painting </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td class="indexvalue">Used for exporting images. To render to an image from a given XML string, graph size and and background color, the following code is used: </p>
    +<div class="fragment"><pre class="fragment">        <a class="code" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaece05317ab22246d7be9221d7e30ed3" title="Draws an image.">Image</a> image = mxUtils.CreateImage(width, height, background);
    +        Graphics g = Graphics.FromImage(image);
    +        g.SmoothingMode = SmoothingMode.HighQuality;
    +        mxSaxOutputHandler handler = <span class="keyword">new</span> mxSaxOutputHandler(<span class="keyword">new</span> <a class="code" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#af68a0bc9a8655aa30db90e8d230e9c9b">mxGdiCanvas2D</a>(g));
    +        handler.Read(<span class="keyword">new</span> XmlTextReader(<span class="keyword">new</span> StringReader(xml)));
    +</pre></div> Text rendering is available for plain text only, with optional word wrapping </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td class="indexvalue">Represents the geometry of a cell. For vertices, the geometry consists of the x- and y-location, as well as the width and height. For edges, the edge either defines the source- and target-terminal, or the geometry defines the respective terminal points </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td class="indexvalue">Implements a graph object that allows to create diagrams from a graph model and stylesheet </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td class="indexvalue">Implements a graph model. The graph model acts as a wrapper around the cells which are in charge of storing the actual graph datastructure. The model acts as a transactional wrapper with event notification for all changes, whereas the cells contain the atomic operations for updating the actual datastructure </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td class="indexvalue">Implements a view for the graph. This class is in charge of computing the absolute coordinates for the relative child geometries, the points for perimeters and edge styles and keeping them cached in mxCellStates for faster retrieval. The states are updated whenever the model or the view state (translate, scale) changes. The scale and translate are honoured in the bounds </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td class="indexvalue">A converter that renders display XML data onto a GDI canvas </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td class="indexvalue">An abstract converter that renders display XML data onto a canvas </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">com::mxgraph::mxICanvas</a></td><td class="indexvalue">Defines the requirements for a canvas that paints the vertices and edges of a graph </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td class="indexvalue">Defines the requirements for a canvas that paints the vertices and edges of a graph </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td class="indexvalue">Defines the requirements for a cell that can be used in an <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html" title="Implements a graph model. The graph model acts as a wrapper around the cells which...">mxGraphModel</a> </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html">com::mxgraph::mxIGraphLayout</a></td><td class="indexvalue">Defines the requirements for an object that implements a graph layout </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td class="indexvalue">Defines the requirements for a graph model to be used with <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a> </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">com::mxgraph::mxImageBundle</a></td><td class="indexvalue">Maps from keys to base64 encoded images or file locations. All values must be URLs or use the format data:image/format followed by a comma and the base64 encoded image data, eg. "data:image/gif,XYZ", where XYZ is the base64 encoded image data </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td class="indexvalue">Implements a canvas that draws onto an image </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">com::mxgraph::mxModelCodec</a></td><td class="indexvalue">Codec for mxGraphModels. This class is created and registered dynamically at load time and used implicitely via <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> and the <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a> </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td class="indexvalue">Generic codec for C# objects. See below for a detailed description of the encoding/decoding scheme. Note: Since booleans are numbers in JavaScript, all boolean values are encoded into 1 for true and 0 for false </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html">com::mxgraph::mxPerimeter</a></td><td class="indexvalue">Provides various perimeter functions to be used in a style as the value of <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab7a751a8bd80d3c041b88752ef5e94f5" title="Defines the key for the perimeter style. Possible values are the functions defined...">mxConstants.STYLE_PERIMETER</a> </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td class="indexvalue">Implements a 2-dimensional point with double precision coordinates </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td class="indexvalue">Implements a 2-dimensional rectangle with double precision coordinates </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td class="indexvalue"></td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td class="indexvalue">Implements a session that may be attached to a shared diagram </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td class="indexvalue">Implements a diagram that may be shared among multiple sessions </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td class="indexvalue">Implements a stencil for the given XML definition. This class implements the <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a> stencil schema </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html">com::mxgraph::mxStencilRegistry</a></td><td class="indexvalue"></td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html">com::mxgraph::mxStyleRegistry</a></td><td class="indexvalue">Static class that acts as a global registry for codecs. See <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> for an example of using this class </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td class="indexvalue">Defines the appearance of the cells in a graph </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">com::mxgraph::mxStylesheetCodec</a></td><td class="indexvalue">Codec for mxStylesheets. This class is created and registered dynamically at load time and used implicitely via <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> and the <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a> </td></tr>
    +  <tr><td class="indexkey"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td class="indexvalue">Contains various helper methods for use with <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a> </td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:16 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxBasicCanvas-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxBasicCanvas-members.html
    new file mode 100644
    index 000000000..d332eee07
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxBasicCanvas-members.html
    @@ -0,0 +1,46 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxBasicCanvas Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a14c54203435c3e2880be1724bfe7a091">DEFAULT_IMAGEBASEPATH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ae3632533a1518faf4a0283e31e40bb6f">DrawCell</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [pure virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a105ec52cceacc015399516e8451248b2">DrawLabel</a>(string text, mxCellState state, bool html)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [pure virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a58b28e3540f378026b3ddc633ed48be0">DrawLabels</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a7cd23491208e3140dad748b6a7939d6e">drawLabels</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aaa43dbca294eab07d9c3d6dbbea7ac1b">GetImageForStyle</a>(Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#af418e32f21afd6c4f3dd72f333e4d737">ImageBasePath</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a750bd6bc1df65eb9966655b446df9776">imageBasePath</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aac3fc24bb030cf38538f6848e275beeb">scale</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ace635b44380cd9079dcb359c366bbf64">Scale</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ab95273a90d8165c4925b4141754bc730">Translate</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aa71888f9cebf04ac84e71c302f4124f8">translate</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxBasicCanvas.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxBasicCanvas.html
    new file mode 100644
    index 000000000..451363269
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxBasicCanvas.html
    @@ -0,0 +1,319 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxBasicCanvas Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">mxBasicCanvas</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxBasicCanvas Class Reference</h1><!-- doxytag: class="com::mxgraph::mxBasicCanvas" --><!-- doxytag: inherits="com::mxgraph::mxICanvas" -->
    +<p>Basic implementation of a canvas that draws a graph.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxBasicCanvas:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxBasicCanvas.png" usemap="#com::mxgraph::mxBasicCanvas_map" alt=""/>
    +  <map id="com::mxgraph::mxBasicCanvas_map" name="com::mxgraph::mxBasicCanvas_map">
    +<area href="interfacecom_1_1mxgraph_1_1mxICanvas.html" alt="com::mxgraph::mxICanvas" shape="rect" coords="0,0,184,24"/>
    +<area href="classcom_1_1mxgraph_1_1mxGdiCanvas.html" alt="com::mxgraph::mxGdiCanvas" shape="rect" coords="0,112,184,136"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxBasicCanvas-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">abstract Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ae3632533a1518faf4a0283e31e40bb6f">DrawCell</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f" title="Draws the given cell.">com.mxgraph.mxICanvas.DrawCell()</a>  <a href="#ae3632533a1518faf4a0283e31e40bb6f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">abstract Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a105ec52cceacc015399516e8451248b2">DrawLabel</a> (string text, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, bool html)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79" title="Draws the given label.">com.mxgraph.mxICanvas.DrawLabel()</a>  <a href="#a105ec52cceacc015399516e8451248b2"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a14c54203435c3e2880be1724bfe7a091">DEFAULT_IMAGEBASEPATH</a> = &quot;&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the default value for the imageBasePath in all GDI canvases. Default is an empty string.  <a href="#a14c54203435c3e2880be1724bfe7a091"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aaa43dbca294eab07d9c3d6dbbea7ac1b">GetImageForStyle</a> (Dictionary&lt; string, Object &gt; style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the image path from the given style. If the path is relative (does not start with a slash) then it is appended to the imageBasePath.  <a href="#aaa43dbca294eab07d9c3d6dbbea7ac1b"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a750bd6bc1df65eb9966655b446df9776">imageBasePath</a> = <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a14c54203435c3e2880be1724bfe7a091">DEFAULT_IMAGEBASEPATH</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the base path for images with relative paths. Trailing slash is required. Default value is DEFAULT_IMAGEBASEPATH.  <a href="#a750bd6bc1df65eb9966655b446df9776"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Point&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aa71888f9cebf04ac84e71c302f4124f8">translate</a> = new Point(0, 0)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the current translation. Default is (0,0).  <a href="#aa71888f9cebf04ac84e71c302f4124f8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aac3fc24bb030cf38538f6848e275beeb">scale</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the current scale. Default is 1.  <a href="#aac3fc24bb030cf38538f6848e275beeb"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a7cd23491208e3140dad748b6a7939d6e">drawLabels</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies whether labels should be painted. Default is true.  <a href="#a7cd23491208e3140dad748b6a7939d6e"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Point&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ab95273a90d8165c4925b4141754bc730">Translate</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488" title="Sets or returns the user object of the cell.">com.mxgraph.mxICanvas.Translate</a>  <a href="#ab95273a90d8165c4925b4141754bc730"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ace635b44380cd9079dcb359c366bbf64">Scale</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ab393f94448d87517dae0133e57100045" title="Sets or returns the user object of the cell.">com.mxgraph.mxICanvas.Scale</a>  <a href="#ace635b44380cd9079dcb359c366bbf64"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a58b28e3540f378026b3ddc633ed48be0">DrawLabels</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets if labels should be visible.  <a href="#a58b28e3540f378026b3ddc633ed48be0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#af418e32f21afd6c4f3dd72f333e4d737">ImageBasePath</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or gets the image base path.  <a href="#af418e32f21afd6c4f3dd72f333e4d737"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Basic implementation of a canvas that draws a graph. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="ae3632533a1518faf4a0283e31e40bb6f"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::DrawCell" ref="ae3632533a1518faf4a0283e31e40bb6f" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">abstract Object com::mxgraph::mxBasicCanvas::DrawCell </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [pure virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f" title="Draws the given cell.">com.mxgraph.mxICanvas.DrawCell()</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f">com::mxgraph::mxICanvas</a>.</p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a8d7fa4bb190ff786d64bf4b08a3d1c24">com::mxgraph::mxGdiCanvas</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a105ec52cceacc015399516e8451248b2"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::DrawLabel" ref="a105ec52cceacc015399516e8451248b2" args="(string text, mxCellState state, bool html)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">abstract Object com::mxgraph::mxBasicCanvas::DrawLabel </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>html</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [pure virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79" title="Draws the given label.">com.mxgraph.mxICanvas.DrawLabel()</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79">com::mxgraph::mxICanvas</a>.</p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0f874cdb7c36e7ea41f8c5099d598c8b">com::mxgraph::mxGdiCanvas</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aaa43dbca294eab07d9c3d6dbbea7ac1b"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::GetImageForStyle" ref="aaa43dbca294eab07d9c3d6dbbea7ac1b" args="(Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxBasicCanvas::GetImageForStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Gets the image path from the given style. If the path is relative (does not start with a slash) then it is appended to the imageBasePath. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a14c54203435c3e2880be1724bfe7a091"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::DEFAULT_IMAGEBASEPATH" ref="a14c54203435c3e2880be1724bfe7a091" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a14c54203435c3e2880be1724bfe7a091">com::mxgraph::mxBasicCanvas::DEFAULT_IMAGEBASEPATH</a> = &quot;&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the default value for the imageBasePath in all GDI canvases. Default is an empty string. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7cd23491208e3140dad748b6a7939d6e"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::drawLabels" ref="a7cd23491208e3140dad748b6a7939d6e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a7cd23491208e3140dad748b6a7939d6e">com::mxgraph::mxBasicCanvas::drawLabels</a> = true<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies whether labels should be painted. Default is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a750bd6bc1df65eb9966655b446df9776"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::imageBasePath" ref="a750bd6bc1df65eb9966655b446df9776" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a750bd6bc1df65eb9966655b446df9776">com::mxgraph::mxBasicCanvas::imageBasePath</a> = <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a14c54203435c3e2880be1724bfe7a091">DEFAULT_IMAGEBASEPATH</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the base path for images with relative paths. Trailing slash is required. Default value is DEFAULT_IMAGEBASEPATH. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aac3fc24bb030cf38538f6848e275beeb"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::scale" ref="aac3fc24bb030cf38538f6848e275beeb" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aac3fc24bb030cf38538f6848e275beeb">com::mxgraph::mxBasicCanvas::scale</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the current scale. Default is 1. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa71888f9cebf04ac84e71c302f4124f8"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::translate" ref="aa71888f9cebf04ac84e71c302f4124f8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Point <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aa71888f9cebf04ac84e71c302f4124f8">com::mxgraph::mxBasicCanvas::translate</a> = new Point(0, 0)<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the current translation. Default is (0,0). </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a58b28e3540f378026b3ddc633ed48be0"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::DrawLabels" ref="a58b28e3540f378026b3ddc633ed48be0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxBasicCanvas::DrawLabels<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets if labels should be visible. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af418e32f21afd6c4f3dd72f333e4d737"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::ImageBasePath" ref="af418e32f21afd6c4f3dd72f333e4d737" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxBasicCanvas::ImageBasePath<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or gets the image base path. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ace635b44380cd9079dcb359c366bbf64"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::Scale" ref="ace635b44380cd9079dcb359c366bbf64" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxBasicCanvas::Scale<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ab393f94448d87517dae0133e57100045" title="Sets or returns the user object of the cell.">com.mxgraph.mxICanvas.Scale</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ab393f94448d87517dae0133e57100045">com::mxgraph::mxICanvas</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab95273a90d8165c4925b4141754bc730"></a><!-- doxytag: member="com::mxgraph::mxBasicCanvas::Translate" ref="ab95273a90d8165c4925b4141754bc730" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Point com::mxgraph::mxBasicCanvas::Translate<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488" title="Sets or returns the user object of the cell.">com.mxgraph.mxICanvas.Translate</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488">com::mxgraph::mxICanvas</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/canvas/mxBasicCanvas.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxBasicCanvas.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxBasicCanvas.png
    new file mode 100644
    index 000000000..ec8852403
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxBasicCanvas.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCell-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCell-members.html
    new file mode 100644
    index 000000000..006077c47
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCell-members.html
    @@ -0,0 +1,83 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCell Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa516a234836e32415529e8ff2f8be92f">ChildCount</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a1c2fb190cdcd3491244fa2139d251e95">children</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab1926c27e8b8c97d98a2f6567686101c">Clone</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aca613934c56c8f69cb432db7faf19bf6">Collapsed</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a0d9fb7116c8ac4c8e1bedc88dbfabef1">collapsed</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a99130172e0a3b5043450904c3e629800">connectable</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a47d8ff40770b1bdd107de01b61399087">Connectable</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ae63470bb0cce48a707ef1755403628bc">Edge</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a21789506573a48e8d29fc6dfd2f329d8">edge</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab6a337054ab9ba260c8ac7936400ef41">EdgeCount</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a3a7bf8563718df5d6a116c22b588d14b">edges</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a087a9707e46db471c5bfd382728a73ec">Geometry</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a33cbc795bf87553265989e5c46c8bde2">geometry</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a22d9f737f8b8a747c87e4670e2974b8e">GetAttribute</a>(String name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#afbfaa08a12be96b1b798dcb3c99086a1">GetAttribute</a>(String name, String defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8599a87aa169b0ad17f3d36bf2e49973">GetChildAt</a>(int index)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5fc7a8013b5b155d68d88975bb90da23">GetEdgeAt</a>(int index)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a453ffcc5de7e2904223a6e6629af95c3">GetEdgeIndex</a>(mxICell edge)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a68dba23f856145c4cd0943aa3f58bce1">GetIndex</a>(mxICell child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a88a090c546cd51e0d249243d209c6b11">GetTerminal</a>(bool source)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#abf05efba60ca503ace3dcdfd3a7885a7">id</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a163926756b42d66b33db6bf6fa15b0e4">Id</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ed5d9b7c09fe2fe55e1c0678a8ddf13">Insert</a>(mxICell child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a2ef296de0e040c680902e314b9b199c0">Insert</a>(mxICell child, int index)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab46383e5589e5ab052da16f7ad765aad">InsertEdge</a>(mxICell edge, bool isOutgoing)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ad1e7683542934e55fe047eee2fc30f11">mxCell</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a33540edbbd96ad16a149dd605cde4c37">mxCell</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a235a46a4f50963676d9f130abec2ffdc">mxCell</a>(Object value, mxGeometry geometry, string style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#adaaec96af4af506642844f3752c3efc0">parent</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa2e16e11504aca0ff7d83699b801fd11">Parent</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a79ec0fea93a81fc482020e010faf928c">Remove</a>(int index)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7913d4ce0c65be899d01e2426db706ef">Remove</a>(mxICell child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab4c1f70e744e50d33a9d6c0174877ead">RemoveEdge</a>(mxICell edge, bool isOutgoing)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9af735a9deb670fc9a65ad69694212ff">RemoveFromParent</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a18eba4e3a1ff29735fcad45439aa340a">RemoveFromTerminal</a>(bool isSource)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a0f86db625fe9cefdadf4b42a4eb1a863">SetAttribute</a>(String name, String value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a538315083698deeeaad366624ea83dd8">SetTerminal</a>(mxICell terminal, bool isSource)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a60fb78a3ea85690d6596b67f8c5b9e3a">source</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a38f1bc3601c41a8dd4576bf78ed84666">Source</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4aa563833237d77522acd9c17fd9f86e">style</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ec99d9ad8df482d8cf649047fb9dc8e">Style</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8b5bbb4cabfc6feeaa977ffdd5b80ec6">target</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a23831c55f022ad691faf6d29021b7430">Target</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9209b3c4788fd77d0ebe253a7f8e4553">value</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5ad4a37116bc172cf16d7956551606ac">Value</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5798deeacdfd221f124e5b66ef3f296c">vertex</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9587ee53135f8ed718b8c3f6d65d68cc">Vertex</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ac5c3eb4463bdcef39e0bc28a71647e49">visible</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4ff3745efccdf976c50c60440110384e">Visible</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCell.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCell.html
    new file mode 100644
    index 000000000..c18d60ce3
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCell.html
    @@ -0,0 +1,1263 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxCell Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">mxCell</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCell Class Reference</h1><!-- doxytag: class="com::mxgraph::mxCell" --><!-- doxytag: inherits="com::mxgraph::mxICell" -->
    +<p>Cells are the elements of the graph model. They represent the state of the groups, vertices and edges in a graph.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxCell:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxCell.png" usemap="#com::mxgraph::mxCell_map" alt=""/>
    +  <map id="com::mxgraph::mxCell_map" name="com::mxgraph::mxCell_map">
    +<area href="interfacecom_1_1mxgraph_1_1mxICell.html" alt="com::mxgraph::mxICell" shape="rect" coords="0,0,135,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxCell-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ad1e7683542934e55fe047eee2fc30f11">mxCell</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new empty cell.  <a href="#ad1e7683542934e55fe047eee2fc30f11"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a33540edbbd96ad16a149dd605cde4c37">mxCell</a> (Object <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9209b3c4788fd77d0ebe253a7f8e4553">value</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new cell for the given value.  <a href="#a33540edbbd96ad16a149dd605cde4c37"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a235a46a4f50963676d9f130abec2ffdc">mxCell</a> (Object <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9209b3c4788fd77d0ebe253a7f8e4553">value</a>, <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a33cbc795bf87553265989e5c46c8bde2">geometry</a>, string <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4aa563833237d77522acd9c17fd9f86e">style</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new cell for the given value, geometry and style.  <a href="#a235a46a4f50963676d9f130abec2ffdc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a88a090c546cd51e0d249243d209c6b11">GetTerminal</a> (bool <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a60fb78a3ea85690d6596b67f8c5b9e3a">source</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the source or target terminal of the cell.  <a href="#a88a090c546cd51e0d249243d209c6b11"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a538315083698deeeaad366624ea83dd8">SetTerminal</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> terminal, bool isSource)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the source or target terminal.  <a href="#a538315083698deeeaad366624ea83dd8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa516a234836e32415529e8ff2f8be92f">ChildCount</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of child cells.  <a href="#aa516a234836e32415529e8ff2f8be92f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a68dba23f856145c4cd0943aa3f58bce1">GetIndex</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the index of the specified child in the child array.  <a href="#a68dba23f856145c4cd0943aa3f58bce1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8599a87aa169b0ad17f3d36bf2e49973">GetChildAt</a> (int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the child at the specified index.  <a href="#a8599a87aa169b0ad17f3d36bf2e49973"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ed5d9b7c09fe2fe55e1c0678a8ddf13">Insert</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Appends the specified child into the child array and updates the parent reference of the child.  <a href="#a7ed5d9b7c09fe2fe55e1c0678a8ddf13"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a2ef296de0e040c680902e314b9b199c0">Insert</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> child, int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inserts the specified child into the child array at the specified index and updates the parent reference of the child.  <a href="#a2ef296de0e040c680902e314b9b199c0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a79ec0fea93a81fc482020e010faf928c">Remove</a> (int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the child at the specified index from the child array and returns the child that was removed. Will remove the parent reference of the child.  <a href="#a79ec0fea93a81fc482020e010faf928c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7913d4ce0c65be899d01e2426db706ef">Remove</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the given child from the child array. Will remove the parent reference of the child.  <a href="#a7913d4ce0c65be899d01e2426db706ef"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9af735a9deb670fc9a65ad69694212ff">RemoveFromParent</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the cell from its parent.  <a href="#a9af735a9deb670fc9a65ad69694212ff"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab6a337054ab9ba260c8ac7936400ef41">EdgeCount</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of edges in the edge array.  <a href="#ab6a337054ab9ba260c8ac7936400ef41"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a453ffcc5de7e2904223a6e6629af95c3">GetEdgeIndex</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a21789506573a48e8d29fc6dfd2f329d8">edge</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the index of the specified edge in the edge array.  <a href="#a453ffcc5de7e2904223a6e6629af95c3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5fc7a8013b5b155d68d88975bb90da23">GetEdgeAt</a> (int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the edge at the specified index in the edge array.  <a href="#a5fc7a8013b5b155d68d88975bb90da23"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab46383e5589e5ab052da16f7ad765aad">InsertEdge</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a21789506573a48e8d29fc6dfd2f329d8">edge</a>, bool isOutgoing)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inserts the specified edge into the edge array and returns the edge. Will update the respective terminal reference of the edge.  <a href="#ab46383e5589e5ab052da16f7ad765aad"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab4c1f70e744e50d33a9d6c0174877ead">RemoveEdge</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a21789506573a48e8d29fc6dfd2f329d8">edge</a>, bool isOutgoing)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the specified edge from the edge array and returns the edge. Will remove the respective terminal reference from the edge.  <a href="#ab4c1f70e744e50d33a9d6c0174877ead"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a18eba4e3a1ff29735fcad45439aa340a">RemoveFromTerminal</a> (bool isSource)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the edge from its source or target terminal.  <a href="#a18eba4e3a1ff29735fcad45439aa340a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a22d9f737f8b8a747c87e4670e2974b8e">GetAttribute</a> (String name)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the specified attribute from the user object if it is an XML.  <a href="#a22d9f737f8b8a747c87e4670e2974b8e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#afbfaa08a12be96b1b798dcb3c99086a1">GetAttribute</a> (String name, String defaultValue)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the specified attribute from the user object if it is an XML.  <a href="#afbfaa08a12be96b1b798dcb3c99086a1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a0f86db625fe9cefdadf4b42a4eb1a863">SetAttribute</a> (String name, String <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9209b3c4788fd77d0ebe253a7f8e4553">value</a>)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab1926c27e8b8c97d98a2f6567686101c">Clone</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a clone of this cell.  <a href="#ab1926c27e8b8c97d98a2f6567686101c"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#abf05efba60ca503ace3dcdfd3a7885a7">id</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the Id. Default is null.  <a href="#abf05efba60ca503ace3dcdfd3a7885a7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9209b3c4788fd77d0ebe253a7f8e4553">value</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the user object. Default is null.  <a href="#a9209b3c4788fd77d0ebe253a7f8e4553"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a33cbc795bf87553265989e5c46c8bde2">geometry</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the geometry. Default is null.  <a href="#a33cbc795bf87553265989e5c46c8bde2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4aa563833237d77522acd9c17fd9f86e">style</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the geometry. Default is null.  <a href="#a4aa563833237d77522acd9c17fd9f86e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5798deeacdfd221f124e5b66ef3f296c">vertex</a> = false</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies whether the cell is a vertex. Default value is false.  <a href="#a5798deeacdfd221f124e5b66ef3f296c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a21789506573a48e8d29fc6dfd2f329d8">edge</a> = false</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies whether the cell is an edge. Default value is false.  <a href="#a21789506573a48e8d29fc6dfd2f329d8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a99130172e0a3b5043450904c3e629800">connectable</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies whether the cell connectable. Default value is true.  <a href="#a99130172e0a3b5043450904c3e629800"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ac5c3eb4463bdcef39e0bc28a71647e49">visible</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies whether the cell is visible. Default value is true.  <a href="#ac5c3eb4463bdcef39e0bc28a71647e49"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a0d9fb7116c8ac4c8e1bedc88dbfabef1">collapsed</a> = false</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies whether the cell is collapsed. Default value is false.  <a href="#a0d9fb7116c8ac4c8e1bedc88dbfabef1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#adaaec96af4af506642844f3752c3efc0">parent</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference to the parent cell.  <a href="#adaaec96af4af506642844f3752c3efc0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a60fb78a3ea85690d6596b67f8c5b9e3a">source</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference to the source terminal of an edge.  <a href="#a60fb78a3ea85690d6596b67f8c5b9e3a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8b5bbb4cabfc6feeaa977ffdd5b80ec6">target</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference to the target terminal of an edge.  <a href="#a8b5bbb4cabfc6feeaa977ffdd5b80ec6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a1c2fb190cdcd3491244fa2139d251e95">children</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the child cells.  <a href="#a1c2fb190cdcd3491244fa2139d251e95"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a3a7bf8563718df5d6a116c22b588d14b">edges</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the connected edges.  <a href="#a3a7bf8563718df5d6a116c22b588d14b"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a163926756b42d66b33db6bf6fa15b0e4">Id</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the Id of the cell.  <a href="#a163926756b42d66b33db6bf6fa15b0e4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5ad4a37116bc172cf16d7956551606ac">Value</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the user object of the cell.  <a href="#a5ad4a37116bc172cf16d7956551606ac"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a087a9707e46db471c5bfd382728a73ec">Geometry</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the geometry of the cell.  <a href="#a087a9707e46db471c5bfd382728a73ec"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ec99d9ad8df482d8cf649047fb9dc8e">Style</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the string that describes the style.  <a href="#a7ec99d9ad8df482d8cf649047fb9dc8e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9587ee53135f8ed718b8c3f6d65d68cc">Vertex</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the cell is a vertex.  <a href="#a9587ee53135f8ed718b8c3f6d65d68cc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ae63470bb0cce48a707ef1755403628bc">Edge</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the cell is an edge.  <a href="#ae63470bb0cce48a707ef1755403628bc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a47d8ff40770b1bdd107de01b61399087">Connectable</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the cell is connectable.  <a href="#a47d8ff40770b1bdd107de01b61399087"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4ff3745efccdf976c50c60440110384e">Visible</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the visible state of the cell.  <a href="#a4ff3745efccdf976c50c60440110384e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aca613934c56c8f69cb432db7faf19bf6">Collapsed</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the collapsed state of the cell.  <a href="#aca613934c56c8f69cb432db7faf19bf6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa2e16e11504aca0ff7d83699b801fd11">Parent</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the parent of the cell.  <a href="#aa2e16e11504aca0ff7d83699b801fd11"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a38f1bc3601c41a8dd4576bf78ed84666">Source</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the source terminal of the cell.  <a href="#a38f1bc3601c41a8dd4576bf78ed84666"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a23831c55f022ad691faf6d29021b7430">Target</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the target terminal of the cell.  <a href="#a23831c55f022ad691faf6d29021b7430"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Cells are the elements of the graph model. They represent the state of the groups, vertices and edges in a graph. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="ad1e7683542934e55fe047eee2fc30f11"></a><!-- doxytag: member="com::mxgraph::mxCell::mxCell" ref="ad1e7683542934e55fe047eee2fc30f11" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxCell::mxCell </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new empty cell. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a33540edbbd96ad16a149dd605cde4c37"></a><!-- doxytag: member="com::mxgraph::mxCell::mxCell" ref="a33540edbbd96ad16a149dd605cde4c37" args="(Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxCell::mxCell </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new cell for the given value. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Value that represents the user object.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a235a46a4f50963676d9f130abec2ffdc"></a><!-- doxytag: member="com::mxgraph::mxCell::mxCell" ref="a235a46a4f50963676d9f130abec2ffdc" args="(Object value, mxGeometry geometry, string style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxCell::mxCell </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td>
    +          <td class="paramname"> <em>geometry</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new cell for the given value, geometry and style. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Value that represents the user object.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>geometry</em>&nbsp;</td><td>Geometry of the cell to be created.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>Style of the cell to be created.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="aa516a234836e32415529e8ff2f8be92f"></a><!-- doxytag: member="com::mxgraph::mxCell::ChildCount" ref="aa516a234836e32415529e8ff2f8be92f" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxCell::ChildCount </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of child cells. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of child cells.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a44df3fed3473e1d55bc384e1d5c6468d">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab1926c27e8b8c97d98a2f6567686101c"></a><!-- doxytag: member="com::mxgraph::mxCell::Clone" ref="ab1926c27e8b8c97d98a2f6567686101c" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxCell::Clone </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a clone of this cell. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a clone of this cell.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#acd581748b2068e2309253cc70f78aa9e">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab6a337054ab9ba260c8ac7936400ef41"></a><!-- doxytag: member="com::mxgraph::mxCell::EdgeCount" ref="ab6a337054ab9ba260c8ac7936400ef41" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxCell::EdgeCount </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of edges in the edge array. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of edges.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a828788dc75c335c2a073902d23bccd03">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afbfaa08a12be96b1b798dcb3c99086a1"></a><!-- doxytag: member="com::mxgraph::mxCell::GetAttribute" ref="afbfaa08a12be96b1b798dcb3c99086a1" args="(String name, String defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String com::mxgraph::mxCell::GetAttribute </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>name</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the specified attribute from the user object if it is an XML. </p>
    +<p>node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the attribute whose value should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td>Default value to use if the attribute has no value.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the value of the given attribute or defaultValue.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a22d9f737f8b8a747c87e4670e2974b8e"></a><!-- doxytag: member="com::mxgraph::mxCell::GetAttribute" ref="a22d9f737f8b8a747c87e4670e2974b8e" args="(String name)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String com::mxgraph::mxCell::GetAttribute </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>name</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the specified attribute from the user object if it is an XML. </p>
    +<p>node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the attribute whose value should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the value of the given attribute or null.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8599a87aa169b0ad17f3d36bf2e49973"></a><!-- doxytag: member="com::mxgraph::mxCell::GetChildAt" ref="a8599a87aa169b0ad17f3d36bf2e49973" args="(int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::GetChildAt </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the child at the specified index. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the child to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child at the specified index.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a90dc0ac25974c7359e9ad05b045d1190">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5fc7a8013b5b155d68d88975bb90da23"></a><!-- doxytag: member="com::mxgraph::mxCell::GetEdgeAt" ref="a5fc7a8013b5b155d68d88975bb90da23" args="(int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::GetEdgeAt </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the edge at the specified index in the edge array. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index of the edge to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the edge at the specified index.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a9f6a89b37ef63dd55f5b859c5a5b44d4">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a453ffcc5de7e2904223a6e6629af95c3"></a><!-- doxytag: member="com::mxgraph::mxCell::GetEdgeIndex" ref="a453ffcc5de7e2904223a6e6629af95c3" args="(mxICell edge)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxCell::GetEdgeIndex </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the index of the specified edge in the edge array. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell whose index should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the index of the given edge.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a55174b508ba695d8dcccaf76b3ef4b4c">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a68dba23f856145c4cd0943aa3f58bce1"></a><!-- doxytag: member="com::mxgraph::mxCell::GetIndex" ref="a68dba23f856145c4cd0943aa3f58bce1" args="(mxICell child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxCell::GetIndex </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the index of the specified child in the child array. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Child whose index should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the index of the specified child.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a144f5ab6985bdd6cb841fa3a09156ef5">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a88a090c546cd51e0d249243d209c6b11"></a><!-- doxytag: member="com::mxgraph::mxCell::GetTerminal" ref="a88a090c546cd51e0d249243d209c6b11" args="(bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::GetTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the source or target terminal of the cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean that specifies if the source terminal should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the source or target terminal.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a734794247296f21c0b2aa729ff35541e">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2ef296de0e040c680902e314b9b199c0"></a><!-- doxytag: member="com::mxgraph::mxCell::Insert" ref="a2ef296de0e040c680902e314b9b199c0" args="(mxICell child, int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::Insert </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>child</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Inserts the specified child into the child array at the specified index and updates the parent reference of the child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell to be inserted into the child array.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index at which the child should be inserted into the child array.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the inserted child.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa8045711110e26d63178e10e3491ef41">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7ed5d9b7c09fe2fe55e1c0678a8ddf13"></a><!-- doxytag: member="com::mxgraph::mxCell::Insert" ref="a7ed5d9b7c09fe2fe55e1c0678a8ddf13" args="(mxICell child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::Insert </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Appends the specified child into the child array and updates the parent reference of the child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell to be appended to the child array.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the appended child.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aafa67a81d45b05767470e811300836db">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab46383e5589e5ab052da16f7ad765aad"></a><!-- doxytag: member="com::mxgraph::mxCell::InsertEdge" ref="ab46383e5589e5ab052da16f7ad765aad" args="(mxICell edge, bool isOutgoing)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::InsertEdge </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>isOutgoing</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Inserts the specified edge into the edge array and returns the edge. Will update the respective terminal reference of the edge. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell to be inserted into the edge array.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>isOutgoing</em>&nbsp;</td><td>Boolean that specifies if the edge is outgoing.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the inserted edge.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5a394317ecfcab21eb6709b388ccf132">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7913d4ce0c65be899d01e2426db706ef"></a><!-- doxytag: member="com::mxgraph::mxCell::Remove" ref="a7913d4ce0c65be899d01e2426db706ef" args="(mxICell child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::Remove </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the given child from the child array. Will remove the parent reference of the child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child that was removed.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a02a754371b8afc0dba9af484bd05a062">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a79ec0fea93a81fc482020e010faf928c"></a><!-- doxytag: member="com::mxgraph::mxCell::Remove" ref="a79ec0fea93a81fc482020e010faf928c" args="(int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::Remove </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the child at the specified index from the child array and returns the child that was removed. Will remove the parent reference of the child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index of the child to be removed.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child that was removed.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa6986d9d010d246e844a4443723f390d">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab4c1f70e744e50d33a9d6c0174877ead"></a><!-- doxytag: member="com::mxgraph::mxCell::RemoveEdge" ref="ab4c1f70e744e50d33a9d6c0174877ead" args="(mxICell edge, bool isOutgoing)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::RemoveEdge </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>isOutgoing</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the specified edge from the edge array and returns the edge. Will remove the respective terminal reference from the edge. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell to be removed from the edge array.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>isOutgoing</em>&nbsp;</td><td>Boolean that specifies if the edge is outgoing.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the edge that was removed.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a11ea99ed0ab26b204111e23167431273">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9af735a9deb670fc9a65ad69694212ff"></a><!-- doxytag: member="com::mxgraph::mxCell::RemoveFromParent" ref="a9af735a9deb670fc9a65ad69694212ff" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxCell::RemoveFromParent </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the cell from its parent. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5bf0176d9d12329e4b092633c4022310">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a18eba4e3a1ff29735fcad45439aa340a"></a><!-- doxytag: member="com::mxgraph::mxCell::RemoveFromTerminal" ref="a18eba4e3a1ff29735fcad45439aa340a" args="(bool isSource)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxCell::RemoveFromTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>isSource</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the edge from its source or target terminal. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>isSource</em>&nbsp;</td><td>Boolean that specifies if the edge should be removed from its source or target terminal.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a7bd60ecba9b833e9157d8b330a963182">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0f86db625fe9cefdadf4b42a4eb1a863"></a><!-- doxytag: member="com::mxgraph::mxCell::SetAttribute" ref="a0f86db625fe9cefdadf4b42a4eb1a863" args="(String name, String value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxCell::SetAttribute </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>name</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Sets the specified attribute on the user object if it is an XML node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the attribute whose value should be set.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>New value of the attribute.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a538315083698deeeaad366624ea83dd8"></a><!-- doxytag: member="com::mxgraph::mxCell::SetTerminal" ref="a538315083698deeeaad366624ea83dd8" args="(mxICell terminal, bool isSource)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::SetTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the source or target terminal. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td>Cell that represents the new source or target terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean that specifies if the source or target terminal should be set.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the new terminal.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a1f9617dfb062f2388c00b961a8b2bad1">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a1c2fb190cdcd3491244fa2139d251e95"></a><!-- doxytag: member="com::mxgraph::mxCell::children" ref="a1c2fb190cdcd3491244fa2139d251e95" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a1c2fb190cdcd3491244fa2139d251e95">com::mxgraph::mxCell::children</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the child cells. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0d9fb7116c8ac4c8e1bedc88dbfabef1"></a><!-- doxytag: member="com::mxgraph::mxCell::collapsed" ref="a0d9fb7116c8ac4c8e1bedc88dbfabef1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a0d9fb7116c8ac4c8e1bedc88dbfabef1">com::mxgraph::mxCell::collapsed</a> = false<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies whether the cell is collapsed. Default value is false. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a99130172e0a3b5043450904c3e629800"></a><!-- doxytag: member="com::mxgraph::mxCell::connectable" ref="a99130172e0a3b5043450904c3e629800" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a99130172e0a3b5043450904c3e629800">com::mxgraph::mxCell::connectable</a> = true<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies whether the cell connectable. Default value is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a21789506573a48e8d29fc6dfd2f329d8"></a><!-- doxytag: member="com::mxgraph::mxCell::edge" ref="a21789506573a48e8d29fc6dfd2f329d8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a21789506573a48e8d29fc6dfd2f329d8">com::mxgraph::mxCell::edge</a> = false<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies whether the cell is an edge. Default value is false. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3a7bf8563718df5d6a116c22b588d14b"></a><!-- doxytag: member="com::mxgraph::mxCell::edges" ref="a3a7bf8563718df5d6a116c22b588d14b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a3a7bf8563718df5d6a116c22b588d14b">com::mxgraph::mxCell::edges</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the connected edges. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a33cbc795bf87553265989e5c46c8bde2"></a><!-- doxytag: member="com::mxgraph::mxCell::geometry" ref="a33cbc795bf87553265989e5c46c8bde2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a33cbc795bf87553265989e5c46c8bde2">com::mxgraph::mxCell::geometry</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the geometry. Default is null. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abf05efba60ca503ace3dcdfd3a7885a7"></a><!-- doxytag: member="com::mxgraph::mxCell::id" ref="abf05efba60ca503ace3dcdfd3a7885a7" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#abf05efba60ca503ace3dcdfd3a7885a7">com::mxgraph::mxCell::id</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the Id. Default is null. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adaaec96af4af506642844f3752c3efc0"></a><!-- doxytag: member="com::mxgraph::mxCell::parent" ref="adaaec96af4af506642844f3752c3efc0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#adaaec96af4af506642844f3752c3efc0">com::mxgraph::mxCell::parent</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reference to the parent cell. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a60fb78a3ea85690d6596b67f8c5b9e3a"></a><!-- doxytag: member="com::mxgraph::mxCell::source" ref="a60fb78a3ea85690d6596b67f8c5b9e3a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a60fb78a3ea85690d6596b67f8c5b9e3a">com::mxgraph::mxCell::source</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reference to the source terminal of an edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4aa563833237d77522acd9c17fd9f86e"></a><!-- doxytag: member="com::mxgraph::mxCell::style" ref="a4aa563833237d77522acd9c17fd9f86e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4aa563833237d77522acd9c17fd9f86e">com::mxgraph::mxCell::style</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the geometry. Default is null. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8b5bbb4cabfc6feeaa977ffdd5b80ec6"></a><!-- doxytag: member="com::mxgraph::mxCell::target" ref="a8b5bbb4cabfc6feeaa977ffdd5b80ec6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8b5bbb4cabfc6feeaa977ffdd5b80ec6">com::mxgraph::mxCell::target</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reference to the target terminal of an edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9209b3c4788fd77d0ebe253a7f8e4553"></a><!-- doxytag: member="com::mxgraph::mxCell::value" ref="a9209b3c4788fd77d0ebe253a7f8e4553" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9209b3c4788fd77d0ebe253a7f8e4553">com::mxgraph::mxCell::value</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the user object. Default is null. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5798deeacdfd221f124e5b66ef3f296c"></a><!-- doxytag: member="com::mxgraph::mxCell::vertex" ref="a5798deeacdfd221f124e5b66ef3f296c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5798deeacdfd221f124e5b66ef3f296c">com::mxgraph::mxCell::vertex</a> = false<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies whether the cell is a vertex. Default value is false. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac5c3eb4463bdcef39e0bc28a71647e49"></a><!-- doxytag: member="com::mxgraph::mxCell::visible" ref="ac5c3eb4463bdcef39e0bc28a71647e49" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ac5c3eb4463bdcef39e0bc28a71647e49">com::mxgraph::mxCell::visible</a> = true<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies whether the cell is visible. Default value is true. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="aca613934c56c8f69cb432db7faf19bf6"></a><!-- doxytag: member="com::mxgraph::mxCell::Collapsed" ref="aca613934c56c8f69cb432db7faf19bf6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxCell::Collapsed<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the collapsed state of the cell. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa81ab5ecd3876b35ceae096eba788648">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a47d8ff40770b1bdd107de01b61399087"></a><!-- doxytag: member="com::mxgraph::mxCell::Connectable" ref="a47d8ff40770b1bdd107de01b61399087" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxCell::Connectable<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the cell is connectable. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#af6db22ef27fd0f9b264ca003f09f07c8">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae63470bb0cce48a707ef1755403628bc"></a><!-- doxytag: member="com::mxgraph::mxCell::Edge" ref="ae63470bb0cce48a707ef1755403628bc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxCell::Edge<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the cell is an edge. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aadef1ce3fe1dc603d43381b2602d30b5">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a087a9707e46db471c5bfd382728a73ec"></a><!-- doxytag: member="com::mxgraph::mxCell::Geometry" ref="a087a9707e46db471c5bfd382728a73ec" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> com::mxgraph::mxCell::Geometry<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the geometry of the cell. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a6ec04f5ca6911ce35abed62f342949c3">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a163926756b42d66b33db6bf6fa15b0e4"></a><!-- doxytag: member="com::mxgraph::mxCell::Id" ref="a163926756b42d66b33db6bf6fa15b0e4" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxCell::Id<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the Id of the cell. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5ef2d884860acb7b0b1386506a8e8a99">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa2e16e11504aca0ff7d83699b801fd11"></a><!-- doxytag: member="com::mxgraph::mxCell::Parent" ref="aa2e16e11504aca0ff7d83699b801fd11" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::Parent<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the parent of the cell. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a46e6502b14270fcc1c470a0f52cdfbb6">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a38f1bc3601c41a8dd4576bf78ed84666"></a><!-- doxytag: member="com::mxgraph::mxCell::Source" ref="a38f1bc3601c41a8dd4576bf78ed84666" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::Source<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the source terminal of the cell. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7ec99d9ad8df482d8cf649047fb9dc8e"></a><!-- doxytag: member="com::mxgraph::mxCell::Style" ref="a7ec99d9ad8df482d8cf649047fb9dc8e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxCell::Style<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the string that describes the style. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a07ad177f489a0f98a219de8c38383c91">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a23831c55f022ad691faf6d29021b7430"></a><!-- doxytag: member="com::mxgraph::mxCell::Target" ref="a23831c55f022ad691faf6d29021b7430" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCell::Target<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the target terminal of the cell. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5ad4a37116bc172cf16d7956551606ac"></a><!-- doxytag: member="com::mxgraph::mxCell::Value" ref="a5ad4a37116bc172cf16d7956551606ac" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxCell::Value<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the user object of the cell. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a0904b5cab7cb4daa0261eac00f37739b">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9587ee53135f8ed718b8c3f6d65d68cc"></a><!-- doxytag: member="com::mxgraph::mxCell::Vertex" ref="a9587ee53135f8ed718b8c3f6d65d68cc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxCell::Vertex<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the cell is a vertex. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#addd27dbb6c0c31fefdc7f4b306b7aa69">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4ff3745efccdf976c50c60440110384e"></a><!-- doxytag: member="com::mxgraph::mxCell::Visible" ref="a4ff3745efccdf976c50c60440110384e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxCell::Visible<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the visible state of the cell. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a172b8415c63a0dc7d7a7b151f1bae849">com::mxgraph::mxICell</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/model/mxCell.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCell.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCell.png
    new file mode 100644
    index 000000000..468f5e47f
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCell.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellCodec-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellCodec-members.html
    new file mode 100644
    index 000000000..785167903
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellCodec-members.html
    @@ -0,0 +1,76 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellCodec Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html">com::mxgraph::mxCellCodec</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a400b8c95027f3e65c8f6bb7365346e31">AddObjectValue</a>(Object obj, String fieldname, Object value, Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af52418b7e8af59ebf7892725dfda0c99">AfterDecode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a190fb06cd2ebe7953a6766f71f0f4a5d">AfterEncode</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aef2e78e13b8dd5895ac272a0542ce4f2">BeforeDecode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa58c9db1a76eca9a93196b3d618560a5">BeforeEncode</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a9916f40c70806d0f2dbce90d2bc0a228">CloneTemplate</a>(XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af10ffcb1ec0726e3ce520e450eddd1a9">ConvertValueFromXml</a>(Type type, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a668ec4f16b4018010b78dfac5da202a1">ConvertValueToXml</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#add2542d39061256bd5652925cd14ed99">Decode</a>(mxCodec dec, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a121ba530f191fa675cef1199783d3b4c">Decode</a>(mxCodec dec, XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a3995ca8eb8b49ea3369ce78784da6886">DecodeAttribute</a>(mxCodec dec, XmlNode attr, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6c43995dfa09e94c15237bb5bcb956bd">DecodeAttributes</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a26402e6fab4b83efae915a1d241a9139">DecodeChild</a>(mxCodec dec, XmlNode child, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a0fae9f4253f6b903b13a0342d27b654d">DecodeChildren</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8d19152cfe1b7a65a613ecc823c0ff6c">DecodeNode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa8e373e16bb59c00a573b1bebe1a3934">Encode</a>(mxCodec enc, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac044bc0648d29bbde6a826c22ca84a1b">EncodeElements</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afe487cf09d38efd8cbfbbf92810419fa">EncodeFields</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ade4c4a85d7ed2162f9566c8df931d250">EncodeObject</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac0fe160b3b14184206fb33abda5b6c20">EncodeValue</a>(mxCodec enc, Object obj, string fieldname, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">exclude</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7a33b05e10c507d6d47fcf1c152e51d4">GetAttributeName</a>(string fieldname)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a234002bf9a84ccc51210cbf2744d1dbf">GetFieldName</a>(string attributename)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a414f565a39689bd929124c2003dd41aa">GetFieldTemplate</a>(Object obj, String fieldname, XmlNode child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ab4c4b9a8a57ef55d3923da107289a05e">GetFieldValue</a>(Object obj, string name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a62ea0063541fd986ab33a1b098780abf">GetName</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">idrefs</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a58410c644edac27eb89acd3f3be8c6b3">IsExcluded</a>(Object obj, string attr, Object value, bool write)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af3ef76d421c61dfe849f6e09252fc630">IsPrimitiveValue</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a369877eb840c88cb3b321c93e22a373b">IsReference</a>(Object obj, string attr, Object value, bool write)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">mapping</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html#af538accfd699400f44f48e4174bb04a2">mxCellCodec</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html">com::mxgraph::mxCellCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abbddb3957b955b41d4fbcd6e63bbb42d">mxObjectCodec</a>(Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a38b4f86b0ffb810f94f1864c6f386a8f">mxObjectCodec</a>(Object template, string[] exclude, string[] idrefs, Dictionary&lt; string, string &gt; mapping)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afd7f23ec8879f314b0729ac866201683">ProcessInclude</a>(mxCodec dec, XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a897b6935339cdb9a47f12b5f926b58f9">reverse</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a66dc2344eab9b42aac159cdd3967cd8c">SetFieldValue</a>(Object obj, string name, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6dbad90a78d8e5d2bc3dd6fbec6d4841">Template</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#addeb537a505b24d8fd813e4d05df4595">WriteAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abc3bef1feb53dc34ed9e8ba93da5edd1">WriteComplexAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7831f956126ef0b5da4920824d9b9bb5">WritePrimitiveAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellCodec.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellCodec.html
    new file mode 100644
    index 000000000..20dba375f
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellCodec.html
    @@ -0,0 +1,80 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxCellCodec Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html">mxCellCodec</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellCodec Class Reference</h1><!-- doxytag: class="com::mxgraph::mxCellCodec" --><!-- doxytag: inherits="com::mxgraph::mxObjectCodec" -->
    +<p>Codec for mxCells. This class is created and registered dynamically at load time and used implicitely via <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> and the <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a>.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxCellCodec:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxCellCodec.png" usemap="#com::mxgraph::mxCellCodec_map" alt=""/>
    +  <map id="com::mxgraph::mxCellCodec_map" name="com::mxgraph::mxCellCodec_map">
    +<area href="classcom_1_1mxgraph_1_1mxObjectCodec.html" alt="com::mxgraph::mxObjectCodec" shape="rect" coords="0,0,184,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxCellCodec-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html#af538accfd699400f44f48e4174bb04a2">mxCellCodec</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new cell codec.  <a href="#af538accfd699400f44f48e4174bb04a2"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Codec for mxCells. This class is created and registered dynamically at load time and used implicitely via <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> and the <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a>. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="af538accfd699400f44f48e4174bb04a2"></a><!-- doxytag: member="com::mxgraph::mxCellCodec::mxCellCodec" ref="af538accfd699400f44f48e4174bb04a2" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxCellCodec::mxCellCodec </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new cell codec. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/io/mxCellCodec.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellCodec.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellCodec.png
    new file mode 100644
    index 000000000..8750ffef4
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellCodec.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellPath-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellPath-members.html
    new file mode 100644
    index 000000000..58f5d6ec4
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellPath-members.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellPath Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html">com::mxgraph::mxCellPath</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a5d6ef3ddf18cdcf7250bb4eb47f930a9">Create</a>(mxICell cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html">com::mxgraph::mxCellPath</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a0f50a9dd6e3983bc5a5e867d200faa52">GetParentPath</a>(string path)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html">com::mxgraph::mxCellPath</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a8308de65cdb622585ffdf7a5cb05a8a8">PATH_SEPARATOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html">com::mxgraph::mxCellPath</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#ad5059bd5081b1a2f127eb95cc63b51dd">Resolve</a>(mxICell root, string path)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html">com::mxgraph::mxCellPath</a></td><td><code> [inline, static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellPath.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellPath.html
    new file mode 100644
    index 000000000..f188e7a95
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellPath.html
    @@ -0,0 +1,164 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxCellPath Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html">mxCellPath</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellPath Class Reference</h1><!-- doxytag: class="com::mxgraph::mxCellPath" -->
    +<p>Implements a mechanism for temporary cell Ids.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxCellPath-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a5d6ef3ddf18cdcf7250bb4eb47f930a9">Create</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates the cell path for the given cell. The cell path is a concatenation of the indices of all cells on the (finite) path to the root, eg. "0.0.0.1".  <a href="#a5d6ef3ddf18cdcf7250bb4eb47f930a9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a0f50a9dd6e3983bc5a5e867d200faa52">GetParentPath</a> (string path)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the path for the parent of the cell represented by the given path. Returns null if the given path has no parent.  <a href="#a0f50a9dd6e3983bc5a5e867d200faa52"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#ad5059bd5081b1a2f127eb95cc63b51dd">Resolve</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> root, string path)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the cell for the specified cell path using the given root as the root of the path.  <a href="#ad5059bd5081b1a2f127eb95cc63b51dd"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a8308de65cdb622585ffdf7a5cb05a8a8">PATH_SEPARATOR</a> = '.'</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the separator between the path components. Default is ".".  <a href="#a8308de65cdb622585ffdf7a5cb05a8a8"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a mechanism for temporary cell Ids. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a5d6ef3ddf18cdcf7250bb4eb47f930a9"></a><!-- doxytag: member="com::mxgraph::mxCellPath::Create" ref="a5d6ef3ddf18cdcf7250bb4eb47f930a9" args="(mxICell cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static string com::mxgraph::mxCellPath::Create </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates the cell path for the given cell. The cell path is a concatenation of the indices of all cells on the (finite) path to the root, eg. "0.0.0.1". </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose path should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the string that represents the path.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0f50a9dd6e3983bc5a5e867d200faa52"></a><!-- doxytag: member="com::mxgraph::mxCellPath::GetParentPath" ref="a0f50a9dd6e3983bc5a5e867d200faa52" args="(string path)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static string com::mxgraph::mxCellPath::GetParentPath </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>path</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the path for the parent of the cell represented by the given path. Returns null if the given path has no parent. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>Path whose parent path should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad5059bd5081b1a2f127eb95cc63b51dd"></a><!-- doxytag: member="com::mxgraph::mxCellPath::Resolve" ref="ad5059bd5081b1a2f127eb95cc63b51dd" args="(mxICell root, string path)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCellPath::Resolve </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>root</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>path</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the cell for the specified cell path using the given root as the root of the path. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>root</em>&nbsp;</td><td>Root cell of the path to be resolved.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>String that defines the path.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the cell that is defined by the path.</dd></dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a8308de65cdb622585ffdf7a5cb05a8a8"></a><!-- doxytag: member="com::mxgraph::mxCellPath::PATH_SEPARATOR" ref="a8308de65cdb622585ffdf7a5cb05a8a8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">char <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a8308de65cdb622585ffdf7a5cb05a8a8">com::mxgraph::mxCellPath::PATH_SEPARATOR</a> = '.'<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the separator between the path components. Default is ".". </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/model/mxCellPath.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer-members.html
    new file mode 100644
    index 000000000..487a02014
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer-members.html
    @@ -0,0 +1,37 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellRenderer Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">com::mxgraph::mxCellRenderer</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#ac494a984bd69e39b6ec2cf79cc49ca44">CreateImage</a>(mxGraph graph, Object[] cells, double scale, Color?background, bool antiAlias, mxRectangle clip)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">com::mxgraph::mxCellRenderer</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#afc487aac0fb7931ae14c2e0c0d62704b">CreateImage</a>(mxGraph graph, Object[] cells, double scale, Color?background, bool antiAlias, mxRectangle clip, mxGdiCanvas graphicsCanvas)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">com::mxgraph::mxCellRenderer</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#a2008e95a7cd828b21771613316fe8f37">DrawCells</a>(mxGraph graph, Object[] cells, double scale, mxRectangle clip, CanvasFactory factory)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">com::mxgraph::mxCellRenderer</a></td><td><code> [inline, static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer.html
    new file mode 100644
    index 000000000..ab5971810
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer.html
    @@ -0,0 +1,219 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxCellRenderer Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">mxCellRenderer</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellRenderer Class Reference</h1><!-- doxytag: class="com::mxgraph::mxCellRenderer" -->
    +<p>Class that can draw an independent array of cells.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxCellRenderer-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Classes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html">CanvasFactory</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the requirements for a class that can create canvases.  <a href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html#_details">More...</a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">ImageCanvasFactory</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">FIXME: Use anonymous class in CreateImage with invocation parameters in factory method code.  <a href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#_details">More...</a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#a2008e95a7cd828b21771613316fe8f37">DrawCells</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a> graph, Object[] cells, double scale, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> clip, <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html">CanvasFactory</a> factory)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the given cells using a Graphics2D canvas and returns the buffered image that represents the cells.  <a href="#a2008e95a7cd828b21771613316fe8f37"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#ac494a984bd69e39b6ec2cf79cc49ca44">CreateImage</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a> graph, Object[] cells, double scale, Color?background, bool antiAlias, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> clip)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an image for the given arguments.  <a href="#ac494a984bd69e39b6ec2cf79cc49ca44"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#afc487aac0fb7931ae14c2e0c0d62704b">CreateImage</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a> graph, Object[] cells, double scale, Color?background, bool antiAlias, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> clip, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a> graphicsCanvas)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an image for the given arguments.  <a href="#afc487aac0fb7931ae14c2e0c0d62704b"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Class that can draw an independent array of cells. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="afc487aac0fb7931ae14c2e0c0d62704b"></a><!-- doxytag: member="com::mxgraph::mxCellRenderer::CreateImage" ref="afc487aac0fb7931ae14c2e0c0d62704b" args="(mxGraph graph, Object[] cells, double scale, Color?background, bool antiAlias, mxRectangle clip, mxGdiCanvas graphicsCanvas)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Image com::mxgraph::mxCellRenderer::CreateImage </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a>&nbsp;</td>
    +          <td class="paramname"> <em>graph</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>scale</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>background</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>antiAlias</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>clip</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a>&nbsp;</td>
    +          <td class="paramname"> <em>graphicsCanvas</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates an image for the given arguments. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac494a984bd69e39b6ec2cf79cc49ca44"></a><!-- doxytag: member="com::mxgraph::mxCellRenderer::CreateImage" ref="ac494a984bd69e39b6ec2cf79cc49ca44" args="(mxGraph graph, Object[] cells, double scale, Color?background, bool antiAlias, mxRectangle clip)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Image com::mxgraph::mxCellRenderer::CreateImage </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a>&nbsp;</td>
    +          <td class="paramname"> <em>graph</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>scale</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>background</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>antiAlias</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>clip</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates an image for the given arguments. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2008e95a7cd828b21771613316fe8f37"></a><!-- doxytag: member="com::mxgraph::mxCellRenderer::DrawCells" ref="a2008e95a7cd828b21771613316fe8f37" args="(mxGraph graph, Object[] cells, double scale, mxRectangle clip, CanvasFactory factory)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> com::mxgraph::mxCellRenderer::DrawCells </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a>&nbsp;</td>
    +          <td class="paramname"> <em>graph</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>scale</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>clip</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html">CanvasFactory</a>&nbsp;</td>
    +          <td class="paramname"> <em>factory</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the given cells using a Graphics2D canvas and returns the buffered image that represents the cells. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/utils/mxCellRenderer.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory-members.html
    new file mode 100644
    index 000000000..fb9e64d01
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory-members.html
    @@ -0,0 +1,35 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellRenderer::CanvasFactory Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html">com::mxgraph::mxCellRenderer::CanvasFactory</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html#acae5f43ac3665c8cd4b4d22c555bca75">CreateCanvas</a>(int width, int height)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html">com::mxgraph::mxCellRenderer::CanvasFactory</a></td><td><code> [pure virtual]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html
    new file mode 100644
    index 000000000..d8c2c4190
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html
    @@ -0,0 +1,92 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxCellRenderer::CanvasFactory Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">mxCellRenderer</a>::<a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html">CanvasFactory</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellRenderer::CanvasFactory Class Reference</h1><!-- doxytag: class="com::mxgraph::mxCellRenderer::CanvasFactory" -->
    +<p>Defines the requirements for a class that can create canvases.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxCellRenderer::CanvasFactory:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.png" usemap="#com::mxgraph::mxCellRenderer::CanvasFactory_map" alt=""/>
    +  <map id="com::mxgraph::mxCellRenderer::CanvasFactory_map" name="com::mxgraph::mxCellRenderer::CanvasFactory_map">
    +<area href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html" alt="com::mxgraph::mxCellRenderer::ImageCanvasFactory" shape="rect" coords="0,56,311,80"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">abstract <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html#acae5f43ac3665c8cd4b4d22c555bca75">CreateCanvas</a> (int width, int height)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a new canvas for the given dimension.  <a href="#acae5f43ac3665c8cd4b4d22c555bca75"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Defines the requirements for a class that can create canvases. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="acae5f43ac3665c8cd4b4d22c555bca75"></a><!-- doxytag: member="com::mxgraph::mxCellRenderer::CanvasFactory::CreateCanvas" ref="acae5f43ac3665c8cd4b4d22c555bca75" args="(int width, int height)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">abstract <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> com::mxgraph::mxCellRenderer::CanvasFactory::CreateCanvas </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>height</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [pure virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a new canvas for the given dimension. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a7f26f04ba96c4beb8fc8edfb1ffa066a">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/utils/mxCellRenderer.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.png
    new file mode 100644
    index 000000000..87ec8d614
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory-members.html
    new file mode 100644
    index 000000000..122969706
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory-members.html
    @@ -0,0 +1,39 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellRenderer::ImageCanvasFactory Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad2a3c5a4e3486545a7b0178ae64ce8dc">antiAlias</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a2090497ead27f7669fae5d72ba7f0ce7">background</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a7f26f04ba96c4beb8fc8edfb1ffa066a">CreateCanvas</a>(int width, int height)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ab7ce28796bb23a7bc25e99255f7faa02">graphicsCanvas</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad81144814ab6cdc9664eb28cd63f8373">ImageCanvasFactory</a>(mxGdiCanvas graphicsCanvas, Color?background, bool antiAlias)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a></td><td><code> [inline]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html
    new file mode 100644
    index 000000000..105b6c793
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html
    @@ -0,0 +1,191 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxCellRenderer::ImageCanvasFactory Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">mxCellRenderer</a>::<a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">ImageCanvasFactory</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellRenderer::ImageCanvasFactory Class Reference</h1><!-- doxytag: class="com::mxgraph::mxCellRenderer::ImageCanvasFactory" --><!-- doxytag: inherits="com::mxgraph::mxCellRenderer::CanvasFactory" -->
    +<p>FIXME: Use anonymous class in CreateImage with invocation parameters in factory method code.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxCellRenderer::ImageCanvasFactory:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.png" usemap="#com::mxgraph::mxCellRenderer::ImageCanvasFactory_map" alt=""/>
    +  <map id="com::mxgraph::mxCellRenderer::ImageCanvasFactory_map" name="com::mxgraph::mxCellRenderer::ImageCanvasFactory_map">
    +<area href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html" alt="com::mxgraph::mxCellRenderer::CanvasFactory" shape="rect" coords="0,0,311,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad81144814ab6cdc9664eb28cd63f8373">ImageCanvasFactory</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ab7ce28796bb23a7bc25e99255f7faa02">graphicsCanvas</a>, Color?<a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a2090497ead27f7669fae5d72ba7f0ce7">background</a>, bool <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad2a3c5a4e3486545a7b0178ae64ce8dc">antiAlias</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new image canvas factors.  <a href="#ad81144814ab6cdc9664eb28cd63f8373"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">override <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a7f26f04ba96c4beb8fc8edfb1ffa066a">CreateCanvas</a> (int width, int height)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a new canvas for the given dimension.  <a href="#a7f26f04ba96c4beb8fc8edfb1ffa066a"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ab7ce28796bb23a7bc25e99255f7faa02">graphicsCanvas</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the graphics canvas to be used for painting.  <a href="#ab7ce28796bb23a7bc25e99255f7faa02"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Color&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a2090497ead27f7669fae5d72ba7f0ce7">background</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the background color.  <a href="#a2090497ead27f7669fae5d72ba7f0ce7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad2a3c5a4e3486545a7b0178ae64ce8dc">antiAlias</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if antialiasing should be enabled.  <a href="#ad2a3c5a4e3486545a7b0178ae64ce8dc"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>FIXME: Use anonymous class in CreateImage with invocation parameters in factory method code. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="ad81144814ab6cdc9664eb28cd63f8373"></a><!-- doxytag: member="com::mxgraph::mxCellRenderer::ImageCanvasFactory::ImageCanvasFactory" ref="ad81144814ab6cdc9664eb28cd63f8373" args="(mxGdiCanvas graphicsCanvas, Color?background, bool antiAlias)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxCellRenderer::ImageCanvasFactory::ImageCanvasFactory </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a>&nbsp;</td>
    +          <td class="paramname"> <em>graphicsCanvas</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>background</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>antiAlias</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new image canvas factors. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>graphicsCanvas</em>&nbsp;</td><td>Specifies the graphics canvas for painting.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>background</em>&nbsp;</td><td>Specifies the background color of the image.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>antiAlias</em>&nbsp;</td><td>Specifies if antialiasing should be enabled.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a7f26f04ba96c4beb8fc8edfb1ffa066a"></a><!-- doxytag: member="com::mxgraph::mxCellRenderer::ImageCanvasFactory::CreateCanvas" ref="a7f26f04ba96c4beb8fc8edfb1ffa066a" args="(int width, int height)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">override <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> com::mxgraph::mxCellRenderer::ImageCanvasFactory::CreateCanvas </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>height</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a new canvas for the given dimension. </p>
    +
    +<p>Implements <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html#acae5f43ac3665c8cd4b4d22c555bca75">com::mxgraph::mxCellRenderer::CanvasFactory</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="ad2a3c5a4e3486545a7b0178ae64ce8dc"></a><!-- doxytag: member="com::mxgraph::mxCellRenderer::ImageCanvasFactory::antiAlias" ref="ad2a3c5a4e3486545a7b0178ae64ce8dc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad2a3c5a4e3486545a7b0178ae64ce8dc">com::mxgraph::mxCellRenderer::ImageCanvasFactory::antiAlias</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if antialiasing should be enabled. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2090497ead27f7669fae5d72ba7f0ce7"></a><!-- doxytag: member="com::mxgraph::mxCellRenderer::ImageCanvasFactory::background" ref="a2090497ead27f7669fae5d72ba7f0ce7" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Color <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a2090497ead27f7669fae5d72ba7f0ce7">com::mxgraph::mxCellRenderer::ImageCanvasFactory::background</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the background color. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab7ce28796bb23a7bc25e99255f7faa02"></a><!-- doxytag: member="com::mxgraph::mxCellRenderer::ImageCanvasFactory::graphicsCanvas" ref="ab7ce28796bb23a7bc25e99255f7faa02" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ab7ce28796bb23a7bc25e99255f7faa02">com::mxgraph::mxCellRenderer::ImageCanvasFactory::graphicsCanvas</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the graphics canvas to be used for painting. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/utils/mxCellRenderer.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.png
    new file mode 100644
    index 000000000..eb5a3b559
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellState-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellState-members.html
    new file mode 100644
    index 000000000..ac65c9565
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellState-members.html
    @@ -0,0 +1,88 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellState Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8e67a5772b7ae9b43b1a587de61f79a6">absoluteOffset</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a067cc7b395e53d99d755d37d3bfbc748">AbsoluteOffset</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a81b27f5da2d725dd02a4c3cb3a9dad20">AbsolutePointCount</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a57f270c174f616ff5df3fc9614323f32">AbsolutePoints</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aab5a826bcec2f7134cbc9e8b4142eb49">absolutePoints</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a5e971cdff92e9e53071232dc80cbc8b0">Add</a>(mxRectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a88557f12649c9250415a6754f41ee6fd">boundingBox</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aa05783514f4ba432ce3ca31bf81837df">BoundingBox</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0b0d02a595bcdb5afc69658d9a0c508e">cell</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a4e67168c04ec620edcabffc4506e51a3">Cell</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7a357573a28f227b884eb6a798b1c2df">Clone</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a3f76585b333bf7fe2d58ed38e8296b26">Contains</a>(double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa2600d85162a1db0129650b4e636448">Equals</a>(Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a4c133c9e19ff56d3ee55aca15e93cdf0">GetCenterX</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a94596cde2d663cd1746088eea215493f">GetCenterY</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a24bcc5b3b3db9c0a59a65cf425909d48">GetPerimeterBounds</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7855bb1127d2691a3a9ea4c30fee6d49">GetPerimeterBounds</a>(double border)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a45f04749b99d031c57c707f505cc5290">GetPoint</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#acdc68e90b0b634aacf6f3054ed71a97a">GetRectangle</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#ad499030b067d0ee6e87af68542ec7115">Grow</a>(double amount)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adb1bfc2cc3f1215b9357bdeda242a062">height</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a32c0d49b1279c27fec655cb831240975">Height</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a40fceec936fe37fd869471c22d091e8e">LabelBounds</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a3a4a13aa6990f4cb18d4581844e22465">labelBounds</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad7cfcdd37247cdfb73ce22ef89519680">length</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0a9fc2277de8539e5007e86a00e990c0">Length</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#abe55dd3e49f689b212b76e3707fc5fee">mxCellState</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aeebc7a189b94771e4fda1052d039b84b">mxCellState</a>(mxGraphView view, Object cell, Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8943bd2fe6aff4d841581e33fb33c8bc">mxPoint</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#af513f614c1d5d3aa402d7919d49b8667">mxPoint</a>(Point point)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a1911916b08fe58a430eb20efc5b89b10">mxPoint</a>(mxPoint point)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#acf10031952dfe1a9281b6d2db60366c8">mxPoint</a>(double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa0520bc151eeecd7884c59fd7d5a4cd5">mxRectangle</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adad36fd17b2a6b569340abaf0114d673">mxRectangle</a>(mxRectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa9fda9798994a6c2e1319878598b792">mxRectangle</a>(Rectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a0de5be785fd18e109ff7eb9aed6ef2e9">mxRectangle</a>(double x, double y, double width, double height)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad4cdb7a0d7074b16ceee123e4904da66">origin</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ac3734bb15dd9dbfd6b9f4d182e5c2df1">Origin</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a05e1a6d791c19a8d963216f32723511c">Segments</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a6feac0cf487505657aea93ce7553e31e">segments</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aa0ea29da7675e21e7ed7ca7dcc3abd04">SetAbsoluteTerminalPoint</a>(mxPoint point, bool source)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adbcd79c0023233969be1e4ee0626118b">setRect</a>(double x, double y, double w, double h)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8cd7abe7f737756a0453e70d8a59eeae">style</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a306769e8a5e8517111a00226b11d79a5">Style</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a9fba495d01201cdd42ab878093e12cae">TerminalDistance</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aee68fcb4facbe8a40f10fa2b1ab64311">terminalDistance</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a94f8ab737cef3c01e56cfd9242a7fc95">View</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a756e72806b199dc1c15120b0fe3c2a19">view</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a62c3f92da547c942f319b6aecd71765c">width</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa76b4b8e9c6d7a4f6e6cecaf8c71b3d">Width</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a47119ed72239e13dec2d0d196f408158">X</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a67b180bcd4e2e691c9a0c7ed38c16c38">Y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellState.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellState.html
    new file mode 100644
    index 000000000..6accd1ddf
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellState.html
    @@ -0,0 +1,640 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxCellState Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCellState Class Reference</h1><!-- doxytag: class="com::mxgraph::mxCellState" --><!-- doxytag: inherits="com::mxgraph::mxRectangle" -->
    +<p>Represents the current state of a cell in a given graph view.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxCellState:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxCellState.png" usemap="#com::mxgraph::mxCellState_map" alt=""/>
    +  <map id="com::mxgraph::mxCellState_map" name="com::mxgraph::mxCellState_map">
    +<area href="classcom_1_1mxgraph_1_1mxRectangle.html" alt="com::mxgraph::mxRectangle" shape="rect" coords="0,56,166,80"/>
    +<area href="classcom_1_1mxgraph_1_1mxPoint.html" alt="com::mxgraph::mxPoint" shape="rect" coords="0,0,166,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxCellState-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#abe55dd3e49f689b212b76e3707fc5fee">mxCellState</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an empty cell state.  <a href="#abe55dd3e49f689b212b76e3707fc5fee"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aeebc7a189b94771e4fda1052d039b84b">mxCellState</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a756e72806b199dc1c15120b0fe3c2a19">view</a>, Object <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0b0d02a595bcdb5afc69658d9a0c508e">cell</a>, Dictionary&lt; string, Object &gt; <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8cd7abe7f737756a0453e70d8a59eeae">style</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new object that represents the current state of the given cell in the specified view.  <a href="#aeebc7a189b94771e4fda1052d039b84b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a81b27f5da2d725dd02a4c3cb3a9dad20">AbsolutePointCount</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of absolute points.  <a href="#a81b27f5da2d725dd02a4c3cb3a9dad20"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a24bcc5b3b3db9c0a59a65cf425909d48">GetPerimeterBounds</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the rectangle that should be used as the perimeter of the cell. This implementation adds the perimeter spacing to the rectangle defined by this cell state.  <a href="#a24bcc5b3b3db9c0a59a65cf425909d48"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7855bb1127d2691a3a9ea4c30fee6d49">GetPerimeterBounds</a> (double border)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the rectangle that should be used as the perimeter of the cell.  <a href="#a7855bb1127d2691a3a9ea4c30fee6d49"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aa0ea29da7675e21e7ed7ca7dcc3abd04">SetAbsoluteTerminalPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> point, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the first or last point in the list of points depending on source.  <a href="#aa0ea29da7675e21e7ed7ca7dcc3abd04"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">new <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7a357573a28f227b884eb6a798b1c2df">Clone</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a clone of this state where all members are deeply cloned except the view and cell references, which are copied with no cloning to the new instance.  <a href="#a7a357573a28f227b884eb6a798b1c2df"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a756e72806b199dc1c15120b0fe3c2a19">view</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference to the enclosing graph view.  <a href="#a756e72806b199dc1c15120b0fe3c2a19"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0b0d02a595bcdb5afc69658d9a0c508e">cell</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference to the cell that is represented by this state.  <a href="#a0b0d02a595bcdb5afc69658d9a0c508e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8cd7abe7f737756a0453e70d8a59eeae">style</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains an array of key, value pairs that represent the style of the cell.  <a href="#a8cd7abe7f737756a0453e70d8a59eeae"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad4cdb7a0d7074b16ceee123e4904da66">origin</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the origin for all child cells.  <a href="#ad4cdb7a0d7074b16ceee123e4904da66"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aab5a826bcec2f7134cbc9e8b4142eb49">absolutePoints</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of mxPoints that represent the absolute points of an edge.  <a href="#aab5a826bcec2f7134cbc9e8b4142eb49"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8e67a5772b7ae9b43b1a587de61f79a6">absoluteOffset</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the absolute offset. For edges, this is the absolute coordinates of the label position. For vertices, this is the offset of the label relative to the top, left corner of the vertex.  <a href="#a8e67a5772b7ae9b43b1a587de61f79a6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aee68fcb4facbe8a40f10fa2b1ab64311">terminalDistance</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Caches the distance between the end points of an edge.  <a href="#aee68fcb4facbe8a40f10fa2b1ab64311"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad7cfcdd37247cdfb73ce22ef89519680">length</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Caches the length of an edge.  <a href="#ad7cfcdd37247cdfb73ce22ef89519680"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a6feac0cf487505657aea93ce7553e31e">segments</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Array of numbers that represent the cached length of each segment of the edge.  <a href="#a6feac0cf487505657aea93ce7553e31e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a3a4a13aa6990f4cb18d4581844e22465">labelBounds</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the rectangle which contains the label.  <a href="#a3a4a13aa6990f4cb18d4581844e22465"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a88557f12649c9250415a6754f41ee6fd">boundingBox</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the largest rectangle which contains all rendering for this cell.  <a href="#a88557f12649c9250415a6754f41ee6fd"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a94f8ab737cef3c01e56cfd9242a7fc95">View</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the enclosing graph view.  <a href="#a94f8ab737cef3c01e56cfd9242a7fc95"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a4e67168c04ec620edcabffc4506e51a3">Cell</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the cell that is represented by this state.  <a href="#a4e67168c04ec620edcabffc4506e51a3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a306769e8a5e8517111a00226b11d79a5">Style</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the cell style as a map of key, value pairs.  <a href="#a306769e8a5e8517111a00226b11d79a5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ac3734bb15dd9dbfd6b9f4d182e5c2df1">Origin</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the origin for the children.  <a href="#ac3734bb15dd9dbfd6b9f4d182e5c2df1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a57f270c174f616ff5df3fc9614323f32">AbsolutePoints</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the absolute points.  <a href="#a57f270c174f616ff5df3fc9614323f32"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a067cc7b395e53d99d755d37d3bfbc748">AbsoluteOffset</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the absolute offset.  <a href="#a067cc7b395e53d99d755d37d3bfbc748"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a9fba495d01201cdd42ab878093e12cae">TerminalDistance</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the terminal distance.  <a href="#a9fba495d01201cdd42ab878093e12cae"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0a9fc2277de8539e5007e86a00e990c0">Length</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the length.  <a href="#a0a9fc2277de8539e5007e86a00e990c0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a05e1a6d791c19a8d963216f32723511c">Segments</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the length of the segments.  <a href="#a05e1a6d791c19a8d963216f32723511c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a40fceec936fe37fd869471c22d091e8e">LabelBounds</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the label bounds.  <a href="#a40fceec936fe37fd869471c22d091e8e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aa05783514f4ba432ce3ca31bf81837df">BoundingBox</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the bounding box.  <a href="#aa05783514f4ba432ce3ca31bf81837df"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Represents the current state of a cell in a given graph view. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="abe55dd3e49f689b212b76e3707fc5fee"></a><!-- doxytag: member="com::mxgraph::mxCellState::mxCellState" ref="abe55dd3e49f689b212b76e3707fc5fee" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxCellState::mxCellState </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs an empty cell state. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aeebc7a189b94771e4fda1052d039b84b"></a><!-- doxytag: member="com::mxgraph::mxCellState::mxCellState" ref="aeebc7a189b94771e4fda1052d039b84b" args="(mxGraphView view, Object cell, Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxCellState::mxCellState </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a>&nbsp;</td>
    +          <td class="paramname"> <em>view</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new object that represents the current state of the given cell in the specified view. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>view</em>&nbsp;</td><td>Graph view that contains the state.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell that this state represents.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>Array of key, value pairs that constitute the style.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a81b27f5da2d725dd02a4c3cb3a9dad20"></a><!-- doxytag: member="com::mxgraph::mxCellState::AbsolutePointCount" ref="a81b27f5da2d725dd02a4c3cb3a9dad20" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxCellState::AbsolutePointCount </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of absolute points. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7a357573a28f227b884eb6a798b1c2df"></a><!-- doxytag: member="com::mxgraph::mxCellState::Clone" ref="a7a357573a28f227b884eb6a798b1c2df" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">new <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> com::mxgraph::mxCellState::Clone </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a clone of this state where all members are deeply cloned except the view and cell references, which are copied with no cloning to the new instance. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +<p>Reimplemented from <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa9e9e649efa5ad7239db970ec735e846">com::mxgraph::mxRectangle</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7855bb1127d2691a3a9ea4c30fee6d49"></a><!-- doxytag: member="com::mxgraph::mxCellState::GetPerimeterBounds" ref="a7855bb1127d2691a3a9ea4c30fee6d49" args="(double border)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxCellState::GetPerimeterBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>border</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the rectangle that should be used as the perimeter of the cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>border</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the rectangle that defines the perimeter.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a24bcc5b3b3db9c0a59a65cf425909d48"></a><!-- doxytag: member="com::mxgraph::mxCellState::GetPerimeterBounds" ref="a24bcc5b3b3db9c0a59a65cf425909d48" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxCellState::GetPerimeterBounds </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the rectangle that should be used as the perimeter of the cell. This implementation adds the perimeter spacing to the rectangle defined by this cell state. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the rectangle that defines the perimeter.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa0ea29da7675e21e7ed7ca7dcc3abd04"></a><!-- doxytag: member="com::mxgraph::mxCellState::SetAbsoluteTerminalPoint" ref="aa0ea29da7675e21e7ed7ca7dcc3abd04" args="(mxPoint point, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxCellState::SetAbsoluteTerminalPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>point</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the first or last point in the list of points depending on source. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>point</em>&nbsp;</td><td>Point that represents the terminal point.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean that specifies if the first or last point should be assigned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a8e67a5772b7ae9b43b1a587de61f79a6"></a><!-- doxytag: member="com::mxgraph::mxCellState::absoluteOffset" ref="a8e67a5772b7ae9b43b1a587de61f79a6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8e67a5772b7ae9b43b1a587de61f79a6">com::mxgraph::mxCellState::absoluteOffset</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the absolute offset. For edges, this is the absolute coordinates of the label position. For vertices, this is the offset of the label relative to the top, left corner of the vertex. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aab5a826bcec2f7134cbc9e8b4142eb49"></a><!-- doxytag: member="com::mxgraph::mxCellState::absolutePoints" ref="aab5a826bcec2f7134cbc9e8b4142eb49" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aab5a826bcec2f7134cbc9e8b4142eb49">com::mxgraph::mxCellState::absolutePoints</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>List of mxPoints that represent the absolute points of an edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a88557f12649c9250415a6754f41ee6fd"></a><!-- doxytag: member="com::mxgraph::mxCellState::boundingBox" ref="a88557f12649c9250415a6754f41ee6fd" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a88557f12649c9250415a6754f41ee6fd">com::mxgraph::mxCellState::boundingBox</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the largest rectangle which contains all rendering for this cell. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0b0d02a595bcdb5afc69658d9a0c508e"></a><!-- doxytag: member="com::mxgraph::mxCellState::cell" ref="a0b0d02a595bcdb5afc69658d9a0c508e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0b0d02a595bcdb5afc69658d9a0c508e">com::mxgraph::mxCellState::cell</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reference to the cell that is represented by this state. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3a4a13aa6990f4cb18d4581844e22465"></a><!-- doxytag: member="com::mxgraph::mxCellState::labelBounds" ref="a3a4a13aa6990f4cb18d4581844e22465" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a3a4a13aa6990f4cb18d4581844e22465">com::mxgraph::mxCellState::labelBounds</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the rectangle which contains the label. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad7cfcdd37247cdfb73ce22ef89519680"></a><!-- doxytag: member="com::mxgraph::mxCellState::length" ref="ad7cfcdd37247cdfb73ce22ef89519680" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad7cfcdd37247cdfb73ce22ef89519680">com::mxgraph::mxCellState::length</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Caches the length of an edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad4cdb7a0d7074b16ceee123e4904da66"></a><!-- doxytag: member="com::mxgraph::mxCellState::origin" ref="ad4cdb7a0d7074b16ceee123e4904da66" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad4cdb7a0d7074b16ceee123e4904da66">com::mxgraph::mxCellState::origin</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the origin for all child cells. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6feac0cf487505657aea93ce7553e31e"></a><!-- doxytag: member="com::mxgraph::mxCellState::segments" ref="a6feac0cf487505657aea93ce7553e31e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double [] <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a6feac0cf487505657aea93ce7553e31e">com::mxgraph::mxCellState::segments</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Array of numbers that represent the cached length of each segment of the edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8cd7abe7f737756a0453e70d8a59eeae"></a><!-- doxytag: member="com::mxgraph::mxCellState::style" ref="a8cd7abe7f737756a0453e70d8a59eeae" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8cd7abe7f737756a0453e70d8a59eeae">com::mxgraph::mxCellState::style</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Contains an array of key, value pairs that represent the style of the cell. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aee68fcb4facbe8a40f10fa2b1ab64311"></a><!-- doxytag: member="com::mxgraph::mxCellState::terminalDistance" ref="aee68fcb4facbe8a40f10fa2b1ab64311" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aee68fcb4facbe8a40f10fa2b1ab64311">com::mxgraph::mxCellState::terminalDistance</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Caches the distance between the end points of an edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a756e72806b199dc1c15120b0fe3c2a19"></a><!-- doxytag: member="com::mxgraph::mxCellState::view" ref="a756e72806b199dc1c15120b0fe3c2a19" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a> <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a756e72806b199dc1c15120b0fe3c2a19">com::mxgraph::mxCellState::view</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reference to the enclosing graph view. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a067cc7b395e53d99d755d37d3bfbc748"></a><!-- doxytag: member="com::mxgraph::mxCellState::AbsoluteOffset" ref="a067cc7b395e53d99d755d37d3bfbc748" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxCellState::AbsoluteOffset<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the absolute offset. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a57f270c174f616ff5df3fc9614323f32"></a><!-- doxytag: member="com::mxgraph::mxCellState::AbsolutePoints" ref="a57f270c174f616ff5df3fc9614323f32" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&gt; com::mxgraph::mxCellState::AbsolutePoints<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the absolute points. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa05783514f4ba432ce3ca31bf81837df"></a><!-- doxytag: member="com::mxgraph::mxCellState::BoundingBox" ref="aa05783514f4ba432ce3ca31bf81837df" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxCellState::BoundingBox<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the bounding box. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4e67168c04ec620edcabffc4506e51a3"></a><!-- doxytag: member="com::mxgraph::mxCellState::Cell" ref="a4e67168c04ec620edcabffc4506e51a3" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxCellState::Cell<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the cell that is represented by this state. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a40fceec936fe37fd869471c22d091e8e"></a><!-- doxytag: member="com::mxgraph::mxCellState::LabelBounds" ref="a40fceec936fe37fd869471c22d091e8e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxCellState::LabelBounds<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the label bounds. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0a9fc2277de8539e5007e86a00e990c0"></a><!-- doxytag: member="com::mxgraph::mxCellState::Length" ref="a0a9fc2277de8539e5007e86a00e990c0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxCellState::Length<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the length. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac3734bb15dd9dbfd6b9f4d182e5c2df1"></a><!-- doxytag: member="com::mxgraph::mxCellState::Origin" ref="ac3734bb15dd9dbfd6b9f4d182e5c2df1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxCellState::Origin<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the origin for the children. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a05e1a6d791c19a8d963216f32723511c"></a><!-- doxytag: member="com::mxgraph::mxCellState::Segments" ref="a05e1a6d791c19a8d963216f32723511c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double [] com::mxgraph::mxCellState::Segments<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the length of the segments. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a306769e8a5e8517111a00226b11d79a5"></a><!-- doxytag: member="com::mxgraph::mxCellState::Style" ref="a306769e8a5e8517111a00226b11d79a5" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; com::mxgraph::mxCellState::Style<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the cell style as a map of key, value pairs. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9fba495d01201cdd42ab878093e12cae"></a><!-- doxytag: member="com::mxgraph::mxCellState::TerminalDistance" ref="a9fba495d01201cdd42ab878093e12cae" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxCellState::TerminalDistance<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the terminal distance. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a94f8ab737cef3c01e56cfd9242a7fc95"></a><!-- doxytag: member="com::mxgraph::mxCellState::View" ref="a94f8ab737cef3c01e56cfd9242a7fc95" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a> com::mxgraph::mxCellState::View<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the enclosing graph view. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/view/mxCellState.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellState.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellState.png
    new file mode 100644
    index 000000000..c1f498bcf
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCellState.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodec-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodec-members.html
    new file mode 100644
    index 000000000..435a7f69d
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodec-members.html
    @@ -0,0 +1,56 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCodec Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a270c02410861862c8c08e0d45c4b4dbf">Decode</a>(XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ad0b4d9980bf37c9a7dd75032eb943f52">Decode</a>(XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a2e31c56e464eabd8fe784f93ebf45b78">DecodeCell</a>(XmlNode node, bool restoreStructures)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a3c424b0a7288e6e8a4029c06ec358009">Document</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a91caf2d5796965cfeae55e748ae1d438">document</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#aed5b7fe6bb0431767d3a0303822d092e">Encode</a>(Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a063a0154505235fab267d75f87d1d94e">EncodeCell</a>(mxICell cell, XmlNode node, bool includeChildren)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a955dde36b094d0845613ff7b7b0abdb9">encodeDefaults</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ab75670c8e89934b2f45cb202a95598b8">GetElementById</a>(string id)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#afa470c9e8ffc3d563b62aa46a619607d">GetElementById</a>(string id, string attributeName)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#af13936ced2b0da9ad4f088db31ca2007">GetId</a>(Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ac4c7937c86766f1cf44f12d4023d706d">GetObject</a>(string id)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a0c731bec8adf1279a5813e9334b37319">InsertIntoGraph</a>(mxICell cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a3f063598603020bfdd63c9b3a24ebe97">IsEncodeDefaults</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#adcf61362787457dc4ed50811871571f8">Lookup</a>(string id)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a08aed19305c14248949292a713588056">mxCodec</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a56834df37ac58e69c1445e14c0c8dcb7">mxCodec</a>(XmlDocument document)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a9f983ce7275a1005de496ee15093a6f0">objects</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#aed4c1e1287432ab7f8213ee5a729dcd6">Objects</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ab7189e0c130a648ef15541f2be790bd9">PutObject</a>(string id, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a65dacbf11b9be370b293b8256ef116fe">Reference</a>(Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a155ebb610b21e83dfc28eb30ace11dfa">SetAttribute</a>(XmlNode node, string attribute, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></td><td><code> [inline, static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodec.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodec.html
    new file mode 100644
    index 000000000..e78ca6d83
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodec.html
    @@ -0,0 +1,684 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxCodec Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCodec Class Reference</h1><!-- doxytag: class="com::mxgraph::mxCodec" -->
    +<p>XML codec for .NET object graphs. In order to resolve forward references when reading files the XML document that contains the data must be passed to the constructor.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxCodec-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a08aed19305c14248949292a713588056">mxCodec</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an XML encoder/decoder with a new owner document.  <a href="#a08aed19305c14248949292a713588056"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a56834df37ac58e69c1445e14c0c8dcb7">mxCodec</a> (XmlDocument <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a91caf2d5796965cfeae55e748ae1d438">document</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an XML encoder/decoder for the specified owner document. The document is required to resolve forward ID references. This means if you parse a graphmodel that is represented in XML you must also pass the document that contains the XML to the constructor, otherwise forward references will not be resolved.  <a href="#a56834df37ac58e69c1445e14c0c8dcb7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ab7189e0c130a648ef15541f2be790bd9">PutObject</a> (string id, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assoiates the given object with the given ID.  <a href="#ab7189e0c130a648ef15541f2be790bd9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ac4c7937c86766f1cf44f12d4023d706d">GetObject</a> (string id)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the decoded object for the element with the specified ID in document. If the object is not known then lookup is used to find an object. If no object is found, then the element with the respective ID from the document is parsed using decode.  <a href="#ac4c7937c86766f1cf44f12d4023d706d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#adcf61362787457dc4ed50811871571f8">Lookup</a> (string id)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hook for subclassers to implement a custom lookup mechanism for cell IDs. This implementation always returns null.  <a href="#adcf61362787457dc4ed50811871571f8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ab75670c8e89934b2f45cb202a95598b8">GetElementById</a> (string id)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the element with the given ID from the document.  <a href="#ab75670c8e89934b2f45cb202a95598b8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#afa470c9e8ffc3d563b62aa46a619607d">GetElementById</a> (string id, string attributeName)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the element with the given ID from document. The optional attr argument specifies the name of the ID attribute. Default is id. The XPath expression used to find the element is //*[@id='arg'] where id is the name of the ID attribute (attributeName) and arg is the given id.  <a href="#afa470c9e8ffc3d563b62aa46a619607d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#af13936ced2b0da9ad4f088db31ca2007">GetId</a> (Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the ID of the specified object. This implementation calls reference first and if that returns null handles the object as an <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> by returning their IDs using mxCell.getId. If no ID exists for the given cell, then an on-the-fly ID is generated using mxCellPath.create.  <a href="#af13936ced2b0da9ad4f088db31ca2007"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a65dacbf11b9be370b293b8256ef116fe">Reference</a> (Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hook for subclassers to implement a custom method for retrieving IDs from objects. This implementation always returns null.  <a href="#a65dacbf11b9be370b293b8256ef116fe"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#aed5b7fe6bb0431767d3a0303822d092e">Encode</a> (Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encodes the specified object and returns the resulting XML node.  <a href="#aed5b7fe6bb0431767d3a0303822d092e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a270c02410861862c8c08e0d45c4b4dbf">Decode</a> (XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decodes the given XML node using decode(XmlNode, Object).  <a href="#a270c02410861862c8c08e0d45c4b4dbf"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ad0b4d9980bf37c9a7dd75032eb943f52">Decode</a> (XmlNode node, Object into)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decodes the given XML node. The optional "into" argument specifies an existing object to be used. If no object is given, then a new instance is created using the constructor from the codec. The function returns the passed in object or the new instance if no object was given.  <a href="#ad0b4d9980bf37c9a7dd75032eb943f52"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a063a0154505235fab267d75f87d1d94e">EncodeCell</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> cell, XmlNode node, bool includeChildren)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg. <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html" title="Codec for mxGraphModels. This class is created and registered dynamically at load...">mxModelCodec</a>, mxChildChangeCodec and mxRootChangeCodec). This implementation writes the given cell and its children as a (flat) sequence into the given node. The children are not encoded if the optional includeChildren is false. The function is in charge of adding the result into the given node and has no return value.  <a href="#a063a0154505235fab267d75f87d1d94e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a2e31c56e464eabd8fe784f93ebf45b78">DecodeCell</a> (XmlNode node, bool restoreStructures)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decodes cells that have been encoded using inversion, ie. where the user object is the enclosing node in the XML, and restores the group and graph structure in the cells. Returns a new <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> instance that represents the given node.  <a href="#a2e31c56e464eabd8fe784f93ebf45b78"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a0c731bec8adf1279a5813e9334b37319">InsertIntoGraph</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inserts the given cell into its parent and terminal cells.  <a href="#a0c731bec8adf1279a5813e9334b37319"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a155ebb610b21e83dfc28eb30ace11dfa">SetAttribute</a> (XmlNode node, string attribute, Object value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the attribute on the specified node to value. This is a helper method that makes sure the attribute and value arguments are not null.  <a href="#a155ebb610b21e83dfc28eb30ace11dfa"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">XmlDocument&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a91caf2d5796965cfeae55e748ae1d438">document</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the owner document of the codec.  <a href="#a91caf2d5796965cfeae55e748ae1d438"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a9f983ce7275a1005de496ee15093a6f0">objects</a> = new Dictionary&lt;string, Object&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from IDs to objects.  <a href="#a9f983ce7275a1005de496ee15093a6f0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a955dde36b094d0845613ff7b7b0abdb9">encodeDefaults</a> = false</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if default values should be encoded. Default is false.  <a href="#a955dde36b094d0845613ff7b7b0abdb9"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">XmlDocument&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a3c424b0a7288e6e8a4029c06ec358009">Document</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the owner document of the codec.  <a href="#a3c424b0a7288e6e8a4029c06ec358009"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a3f063598603020bfdd63c9b3a24ebe97">IsEncodeDefaults</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns if default values of member variables should be encoded.  <a href="#a3f063598603020bfdd63c9b3a24ebe97"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#aed4c1e1287432ab7f8213ee5a729dcd6">Objects</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the object lookup table.  <a href="#aed4c1e1287432ab7f8213ee5a729dcd6"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>XML codec for .NET object graphs. In order to resolve forward references when reading files the XML document that contains the data must be passed to the constructor. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a08aed19305c14248949292a713588056"></a><!-- doxytag: member="com::mxgraph::mxCodec::mxCodec" ref="a08aed19305c14248949292a713588056" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxCodec::mxCodec </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs an XML encoder/decoder with a new owner document. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a56834df37ac58e69c1445e14c0c8dcb7"></a><!-- doxytag: member="com::mxgraph::mxCodec::mxCodec" ref="a56834df37ac58e69c1445e14c0c8dcb7" args="(XmlDocument document)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxCodec::mxCodec </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlDocument&nbsp;</td>
    +          <td class="paramname"> <em>document</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs an XML encoder/decoder for the specified owner document. The document is required to resolve forward ID references. This means if you parse a graphmodel that is represented in XML you must also pass the document that contains the XML to the constructor, otherwise forward references will not be resolved. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>document</em>&nbsp;</td><td>Optional XML document that contains the data. If no document is specified then a new document is created using mxUtils.createDocument</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="ad0b4d9980bf37c9a7dd75032eb943f52"></a><!-- doxytag: member="com::mxgraph::mxCodec::Decode" ref="ad0b4d9980bf37c9a7dd75032eb943f52" args="(XmlNode node, Object into)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxCodec::Decode </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>into</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Decodes the given XML node. The optional "into" argument specifies an existing object to be used. If no object is given, then a new instance is created using the constructor from the codec. The function returns the passed in object or the new instance if no object was given. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node to be decoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>into</em>&nbsp;</td><td>Optional object to be decodec into.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns an object that represents the given node.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a270c02410861862c8c08e0d45c4b4dbf"></a><!-- doxytag: member="com::mxgraph::mxCodec::Decode" ref="a270c02410861862c8c08e0d45c4b4dbf" args="(XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxCodec::Decode </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Decodes the given XML node using decode(XmlNode, Object). </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node to be decoded.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns an object that represents the given node.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2e31c56e464eabd8fe784f93ebf45b78"></a><!-- doxytag: member="com::mxgraph::mxCodec::DecodeCell" ref="a2e31c56e464eabd8fe784f93ebf45b78" args="(XmlNode node, bool restoreStructures)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxCodec::DecodeCell </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>restoreStructures</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Decodes cells that have been encoded using inversion, ie. where the user object is the enclosing node in the XML, and restores the group and graph structure in the cells. Returns a new <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> instance that represents the given node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node that contains the cell data.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>restoreStructures</em>&nbsp;</td><td>Boolean indicating whether the graph structure should be restored by calling insert and insertEdge on the parent and terminals, respectively. </td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Graph cell that represents the given node.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aed5b7fe6bb0431767d3a0303822d092e"></a><!-- doxytag: member="com::mxgraph::mxCodec::Encode" ref="aed5b7fe6bb0431767d3a0303822d092e" args="(Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">XmlNode com::mxgraph::mxCodec::Encode </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Encodes the specified object and returns the resulting XML node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object to be encoded.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns an XML node that represents the given object.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a063a0154505235fab267d75f87d1d94e"></a><!-- doxytag: member="com::mxgraph::mxCodec::EncodeCell" ref="a063a0154505235fab267d75f87d1d94e" args="(mxICell cell, XmlNode node, bool includeChildren)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxCodec::EncodeCell </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeChildren</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Encoding of cell hierarchies is built-into the core, but is a higher-level function that needs to be explicitely used by the respective object encoders (eg. <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html" title="Codec for mxGraphModels. This class is created and registered dynamically at load...">mxModelCodec</a>, mxChildChangeCodec and mxRootChangeCodec). This implementation writes the given cell and its children as a (flat) sequence into the given node. The children are not encoded if the optional includeChildren is false. The function is in charge of adding the result into the given node and has no return value. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> to be encoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>Parent XML node to add the encoded cell into.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>includeChildren</em>&nbsp;</td><td>Boolean indicating if the method should include all descendents</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afa470c9e8ffc3d563b62aa46a619607d"></a><!-- doxytag: member="com::mxgraph::mxCodec::GetElementById" ref="afa470c9e8ffc3d563b62aa46a619607d" args="(string id, string attributeName)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">XmlNode com::mxgraph::mxCodec::GetElementById </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attributeName</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the element with the given ID from document. The optional attr argument specifies the name of the ID attribute. Default is id. The XPath expression used to find the element is //*[@id='arg'] where id is the name of the ID attribute (attributeName) and arg is the given id. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>ID of the element to be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attributeName</em>&nbsp;</td><td>Optional string for the attributename. Default is id.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the element for the given ID.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab75670c8e89934b2f45cb202a95598b8"></a><!-- doxytag: member="com::mxgraph::mxCodec::GetElementById" ref="ab75670c8e89934b2f45cb202a95598b8" args="(string id)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">XmlNode com::mxgraph::mxCodec::GetElementById </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the element with the given ID from the document. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>ID of the element to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the element for the given ID.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af13936ced2b0da9ad4f088db31ca2007"></a><!-- doxytag: member="com::mxgraph::mxCodec::GetId" ref="af13936ced2b0da9ad4f088db31ca2007" args="(Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxCodec::GetId </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the ID of the specified object. This implementation calls reference first and if that returns null handles the object as an <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> by returning their IDs using mxCell.getId. If no ID exists for the given cell, then an on-the-fly ID is generated using mxCellPath.create. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object to return the ID for.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the ID for the given object.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac4c7937c86766f1cf44f12d4023d706d"></a><!-- doxytag: member="com::mxgraph::mxCodec::GetObject" ref="ac4c7937c86766f1cf44f12d4023d706d" args="(string id)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxCodec::GetObject </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the decoded object for the element with the specified ID in document. If the object is not known then lookup is used to find an object. If no object is found, then the element with the respective ID from the document is parsed using decode. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>ID of the object to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the object for the given ID.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0c731bec8adf1279a5813e9334b37319"></a><!-- doxytag: member="com::mxgraph::mxCodec::InsertIntoGraph" ref="a0c731bec8adf1279a5813e9334b37319" args="(mxICell cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxCodec::InsertIntoGraph </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Inserts the given cell into its parent and terminal cells. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adcf61362787457dc4ed50811871571f8"></a><!-- doxytag: member="com::mxgraph::mxCodec::Lookup" ref="adcf61362787457dc4ed50811871571f8" args="(string id)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxCodec::Lookup </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Hook for subclassers to implement a custom lookup mechanism for cell IDs. This implementation always returns null. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>ID of the object to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the object for the given ID.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab7189e0c130a648ef15541f2be790bd9"></a><!-- doxytag: member="com::mxgraph::mxCodec::PutObject" ref="ab7189e0c130a648ef15541f2be790bd9" args="(string id, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxCodec::PutObject </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Assoiates the given object with the given ID. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>ID for the object to be associated with.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object to be associated with the ID.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the given object.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a65dacbf11b9be370b293b8256ef116fe"></a><!-- doxytag: member="com::mxgraph::mxCodec::Reference" ref="a65dacbf11b9be370b293b8256ef116fe" args="(Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxCodec::Reference </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Hook for subclassers to implement a custom method for retrieving IDs from objects. This implementation always returns null. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object whose ID should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the ID for the given object.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a155ebb610b21e83dfc28eb30ace11dfa"></a><!-- doxytag: member="com::mxgraph::mxCodec::SetAttribute" ref="a155ebb610b21e83dfc28eb30ace11dfa" args="(XmlNode node, string attribute, Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static void com::mxgraph::mxCodec::SetAttribute </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attribute</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the attribute on the specified node to value. This is a helper method that makes sure the attribute and value arguments are not null. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node to set the attribute for.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attribute</em>&nbsp;</td><td>Attributename to be set.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>New value of the attribute.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a91caf2d5796965cfeae55e748ae1d438"></a><!-- doxytag: member="com::mxgraph::mxCodec::document" ref="a91caf2d5796965cfeae55e748ae1d438" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">XmlDocument <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a91caf2d5796965cfeae55e748ae1d438">com::mxgraph::mxCodec::document</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the owner document of the codec. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a955dde36b094d0845613ff7b7b0abdb9"></a><!-- doxytag: member="com::mxgraph::mxCodec::encodeDefaults" ref="a955dde36b094d0845613ff7b7b0abdb9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a955dde36b094d0845613ff7b7b0abdb9">com::mxgraph::mxCodec::encodeDefaults</a> = false<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if default values should be encoded. Default is false. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9f983ce7275a1005de496ee15093a6f0"></a><!-- doxytag: member="com::mxgraph::mxCodec::objects" ref="a9f983ce7275a1005de496ee15093a6f0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, object&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a9f983ce7275a1005de496ee15093a6f0">com::mxgraph::mxCodec::objects</a> = new Dictionary&lt;string, Object&gt;()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from IDs to objects. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a3c424b0a7288e6e8a4029c06ec358009"></a><!-- doxytag: member="com::mxgraph::mxCodec::Document" ref="a3c424b0a7288e6e8a4029c06ec358009" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">XmlDocument com::mxgraph::mxCodec::Document<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the owner document of the codec. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the owner document.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3f063598603020bfdd63c9b3a24ebe97"></a><!-- doxytag: member="com::mxgraph::mxCodec::IsEncodeDefaults" ref="a3f063598603020bfdd63c9b3a24ebe97" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxCodec::IsEncodeDefaults<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns if default values of member variables should be encoded. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aed4c1e1287432ab7f8213ee5a729dcd6"></a><!-- doxytag: member="com::mxgraph::mxCodec::Objects" ref="aed4c1e1287432ab7f8213ee5a729dcd6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, object&gt; com::mxgraph::mxCodec::Objects<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the object lookup table. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/io/mxCodec.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodecRegistry-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodecRegistry-members.html
    new file mode 100644
    index 000000000..4db69d309
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodecRegistry-members.html
    @@ -0,0 +1,44 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCodecRegistry Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a2f52b12270d43eff03f58a059dbd9c67">AddAlias</a>(string classname, string codecname)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#ae9e172ad864056f7d8a6d3a3dee9a536">AddNamespace</a>(String ns)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a052379e3e095439ba6dcc63e0c1df0ea">aliases</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [protected, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a86f950b4c672dfaff0656c22bf4a64e6">codecs</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [protected, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a520ada8bb24cd8265fe269c0c9b57a5b">GetCodec</a>(String name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a6f360b981789d155fdc8e6cefd895bca">GetInstanceForName</a>(String name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a4398e1da710fb68c428ad5314c02f560">GetName</a>(Object instance)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#aa06091c0531ebe18f2c69225f0f419ae">GetTypeForName</a>(String name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a705daf930467bc4a397c31a97f735449">namespaces</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [protected, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#acb79fb9e18c8c61e45eb1c698252a3e3">Register</a>(mxObjectCodec codec)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodecRegistry.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodecRegistry.html
    new file mode 100644
    index 000000000..86a856960
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxCodecRegistry.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxCodecRegistry Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">mxCodecRegistry</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxCodecRegistry Class Reference</h1><!-- doxytag: class="com::mxgraph::mxCodecRegistry" -->
    +<p>Static class that acts as a global registry for codecs. See <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> for an example of using this class.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxCodecRegistry-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#acb79fb9e18c8c61e45eb1c698252a3e3">Register</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a> codec)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Registers a new codec and associates the name of the template constructor in the codec with the codec object. Automatically creates an alias if the codename and the classname are not equal.  <a href="#acb79fb9e18c8c61e45eb1c698252a3e3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a2f52b12270d43eff03f58a059dbd9c67">AddAlias</a> (string classname, string codecname)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds an alias for mapping a classname to a codecname.  <a href="#a2f52b12270d43eff03f58a059dbd9c67"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a520ada8bb24cd8265fe269c0c9b57a5b">GetCodec</a> (String name)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a codec that handles the given object, which can be an object instance or an XML node.  <a href="#a520ada8bb24cd8265fe269c0c9b57a5b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#ae9e172ad864056f7d8a6d3a3dee9a536">AddNamespace</a> (String ns)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the given namespace to the list of known namespaces.  <a href="#ae9e172ad864056f7d8a6d3a3dee9a536"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a6f360b981789d155fdc8e6cefd895bca">GetInstanceForName</a> (String name)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates and returns a new instance for the given class name.  <a href="#a6f360b981789d155fdc8e6cefd895bca"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#aa06091c0531ebe18f2c69225f0f419ae">GetTypeForName</a> (String name)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a class that corresponds to the given name.  <a href="#aa06091c0531ebe18f2c69225f0f419ae"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a4398e1da710fb68c428ad5314c02f560">GetName</a> (Object instance)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the name that identifies the codec associated with the given instance. The I/O system uses unqualified classnames, eg. for a com.mxgraph.model.mxCell this returns <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a>.  <a href="#a4398e1da710fb68c428ad5314c02f560"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Dictionary&lt; string, <br class="typebreak"/>
    +<a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a86f950b4c672dfaff0656c22bf4a64e6">codecs</a> = new Dictionary&lt;string, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a>&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from constructor names to codecs.  <a href="#a86f950b4c672dfaff0656c22bf4a64e6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Dictionary&lt; string, string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a052379e3e095439ba6dcc63e0c1df0ea">aliases</a> = new Dictionary&lt;string, string&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from classnames to codecnames.  <a href="#a052379e3e095439ba6dcc63e0c1df0ea"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static List&lt; string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a705daf930467bc4a397c31a97f735449">namespaces</a> = new List&lt;string&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the list of known namespaces. Packages are used to prefix short class names (eg. <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a>) in XML markup.  <a href="#a705daf930467bc4a397c31a97f735449"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Static class that acts as a global registry for codecs. See <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> for an example of using this class. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a2f52b12270d43eff03f58a059dbd9c67"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::AddAlias" ref="a2f52b12270d43eff03f58a059dbd9c67" args="(string classname, string codecname)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static void com::mxgraph::mxCodecRegistry::AddAlias </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>classname</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>codecname</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds an alias for mapping a classname to a codecname. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae9e172ad864056f7d8a6d3a3dee9a536"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::AddNamespace" ref="ae9e172ad864056f7d8a6d3a3dee9a536" args="(String ns)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static void com::mxgraph::mxCodecRegistry::AddNamespace </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>ns</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds the given namespace to the list of known namespaces. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>Name of the namespace to be added.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a520ada8bb24cd8265fe269c0c9b57a5b"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::GetCodec" ref="a520ada8bb24cd8265fe269c0c9b57a5b" args="(String name)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a> com::mxgraph::mxCodecRegistry::GetCodec </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>name</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a codec that handles the given object, which can be an object instance or an XML node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>C# type name.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6f360b981789d155fdc8e6cefd895bca"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::GetInstanceForName" ref="a6f360b981789d155fdc8e6cefd895bca" args="(String name)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object com::mxgraph::mxCodecRegistry::GetInstanceForName </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>name</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates and returns a new instance for the given class name. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the class to be instantiated.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new instance of the given class.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4398e1da710fb68c428ad5314c02f560"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::GetName" ref="a4398e1da710fb68c428ad5314c02f560" args="(Object instance)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static String com::mxgraph::mxCodecRegistry::GetName </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>instance</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the name that identifies the codec associated with the given instance. The I/O system uses unqualified classnames, eg. for a com.mxgraph.model.mxCell this returns <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a>. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>instance</em>&nbsp;</td><td>Instance whose node name should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a string that identifies the codec.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa06091c0531ebe18f2c69225f0f419ae"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::GetTypeForName" ref="aa06091c0531ebe18f2c69225f0f419ae" args="(String name)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Type com::mxgraph::mxCodecRegistry::GetTypeForName </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>name</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a class that corresponds to the given name. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acb79fb9e18c8c61e45eb1c698252a3e3"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::Register" ref="acb79fb9e18c8c61e45eb1c698252a3e3" args="(mxObjectCodec codec)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a> com::mxgraph::mxCodecRegistry::Register </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>codec</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Registers a new codec and associates the name of the template constructor in the codec with the codec object. Automatically creates an alias if the codename and the classname are not equal. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a052379e3e095439ba6dcc63e0c1df0ea"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::aliases" ref="a052379e3e095439ba6dcc63e0c1df0ea" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, string&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a052379e3e095439ba6dcc63e0c1df0ea">com::mxgraph::mxCodecRegistry::aliases</a> = new Dictionary&lt;string, string&gt;()<code> [static, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from classnames to codecnames. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a86f950b4c672dfaff0656c22bf4a64e6"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::codecs" ref="a86f950b4c672dfaff0656c22bf4a64e6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a>&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a86f950b4c672dfaff0656c22bf4a64e6">com::mxgraph::mxCodecRegistry::codecs</a> = new Dictionary&lt;string, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a>&gt;()<code> [static, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from constructor names to codecs. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a705daf930467bc4a397c31a97f735449"></a><!-- doxytag: member="com::mxgraph::mxCodecRegistry::namespaces" ref="a705daf930467bc4a397c31a97f735449" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;string&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a705daf930467bc4a397c31a97f735449">com::mxgraph::mxCodecRegistry::namespaces</a> = new List&lt;string&gt;()<code> [static, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the list of known namespaces. Packages are used to prefix short class names (eg. <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a>) in XML markup. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/io/mxCodecRegistry.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConnectionConstraint-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConnectionConstraint-members.html
    new file mode 100644
    index 000000000..b1b72dde6
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConnectionConstraint-members.html
    @@ -0,0 +1,41 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxConnectionConstraint Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#a2594d83443414fae6bcb8728713bbef1">mxConnectionConstraint</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#af44a749758838408cbc29600523d465e">mxConnectionConstraint</a>(mxPoint point)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ac02b9767558b384cebe2adc41cb33528">mxConnectionConstraint</a>(mxPoint point, bool perimeter)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#abd093f6a4dcf97fcc040304a1c27ed4f">Perimeter</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae84d172008422f7f0dcbfb44865f9a18">perimeter</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#a1032705c081348cc5b1f07f20d1508ef">Point</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae0735f826168921bcf66d7ee7617bf62">point</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConnectionConstraint.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConnectionConstraint.html
    new file mode 100644
    index 000000000..adbfec62c
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConnectionConstraint.html
    @@ -0,0 +1,202 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxConnectionConstraint Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">mxConnectionConstraint</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxConnectionConstraint Class Reference</h1><!-- doxytag: class="com::mxgraph::mxConnectionConstraint" -->
    +<p>Defines an object that contains the constraints about how to connect one side of an edge to its terminal.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxConnectionConstraint-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#a2594d83443414fae6bcb8728713bbef1">mxConnectionConstraint</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an empty connection constraint.  <a href="#a2594d83443414fae6bcb8728713bbef1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#af44a749758838408cbc29600523d465e">mxConnectionConstraint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae0735f826168921bcf66d7ee7617bf62">point</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a connection constraint for the given point.  <a href="#af44a749758838408cbc29600523d465e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ac02b9767558b384cebe2adc41cb33528">mxConnectionConstraint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae0735f826168921bcf66d7ee7617bf62">point</a>, bool <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae84d172008422f7f0dcbfb44865f9a18">perimeter</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new connection constraint for the given point and boolean arguments.  <a href="#ac02b9767558b384cebe2adc41cb33528"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae0735f826168921bcf66d7ee7617bf62">point</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Point that specifies the fixed location of the connection point.  <a href="#ae0735f826168921bcf66d7ee7617bf62"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae84d172008422f7f0dcbfb44865f9a18">perimeter</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Boolean that specifies if the point should be projected onto the perimeter of the terminal.  <a href="#ae84d172008422f7f0dcbfb44865f9a18"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#a1032705c081348cc5b1f07f20d1508ef">Point</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the point.  <a href="#a1032705c081348cc5b1f07f20d1508ef"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#abd093f6a4dcf97fcc040304a1c27ed4f">Perimeter</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns perimeter.  <a href="#abd093f6a4dcf97fcc040304a1c27ed4f"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Defines an object that contains the constraints about how to connect one side of an edge to its terminal. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a2594d83443414fae6bcb8728713bbef1"></a><!-- doxytag: member="com::mxgraph::mxConnectionConstraint::mxConnectionConstraint" ref="a2594d83443414fae6bcb8728713bbef1" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxConnectionConstraint::mxConnectionConstraint </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs an empty connection constraint. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af44a749758838408cbc29600523d465e"></a><!-- doxytag: member="com::mxgraph::mxConnectionConstraint::mxConnectionConstraint" ref="af44a749758838408cbc29600523d465e" args="(mxPoint point)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxConnectionConstraint::mxConnectionConstraint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>point</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a connection constraint for the given point. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac02b9767558b384cebe2adc41cb33528"></a><!-- doxytag: member="com::mxgraph::mxConnectionConstraint::mxConnectionConstraint" ref="ac02b9767558b384cebe2adc41cb33528" args="(mxPoint point, bool perimeter)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxConnectionConstraint::mxConnectionConstraint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>point</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>perimeter</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new connection constraint for the given point and boolean arguments. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>point</em>&nbsp;</td><td>Optional <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html" title="Implements a 2-dimensional point with double precision coordinates.">mxPoint</a> that specifies the fixed location of the point in relative coordinates. Default is null.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>perimeter</em>&nbsp;</td><td>Optional boolean that specifies if the fixed point should be projected onto the perimeter of the terminal. Default is true.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="ae84d172008422f7f0dcbfb44865f9a18"></a><!-- doxytag: member="com::mxgraph::mxConnectionConstraint::perimeter" ref="ae84d172008422f7f0dcbfb44865f9a18" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae84d172008422f7f0dcbfb44865f9a18">com::mxgraph::mxConnectionConstraint::perimeter</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Boolean that specifies if the point should be projected onto the perimeter of the terminal. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae0735f826168921bcf66d7ee7617bf62"></a><!-- doxytag: member="com::mxgraph::mxConnectionConstraint::point" ref="ae0735f826168921bcf66d7ee7617bf62" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae0735f826168921bcf66d7ee7617bf62">com::mxgraph::mxConnectionConstraint::point</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Point that specifies the fixed location of the connection point. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="abd093f6a4dcf97fcc040304a1c27ed4f"></a><!-- doxytag: member="com::mxgraph::mxConnectionConstraint::Perimeter" ref="abd093f6a4dcf97fcc040304a1c27ed4f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxConnectionConstraint::Perimeter<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns perimeter. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1032705c081348cc5b1f07f20d1508ef"></a><!-- doxytag: member="com::mxgraph::mxConnectionConstraint::Point" ref="a1032705c081348cc5b1f07f20d1508ef" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxConnectionConstraint::Point<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the point. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/view/mxConnectionConstraint.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConstants-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConstants-members.html
    new file mode 100644
    index 000000000..5bacbee07
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConstants-members.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxConstants Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1232be429b6c5cbd6bbbfe9f8f94a8">ALIGN_BOTTOM</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a671d1091ad0216097f171e35721407be">ALIGN_CENTER</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a581f2bde5ccd9a5e4d34dee1d22b9e2f">ALIGN_LEFT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae3911ed6204528cdbbe551c4d0ff90fa">ALIGN_MIDDLE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4e34648d83cd7460d0cb20ee0403d8a">ALIGN_RIGHT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e3b58384536c29db72b8b6e0766fe5b">ALIGN_TOP</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97bae058e18a204853e81ef523c27cbe">ARROW_BLOCK</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bc3c5c7fd2dc102d59e667c9648ebfc">ARROW_CLASSIC</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adabfcaff7df74535caf6c51ea2823139">ARROW_DIAMOND</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ccb95f20cf9ad4f620356ba5c85613c">ARROW_OPEN</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5f89ad5538a6009a1c76e3b8cd3979df">ARROW_OVAL</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad42ffebd7848e9a459db4542fb931be9">ARROW_SIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6cc6975b57bdba6d460539a237557082">ARROW_SPACING</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6fdb559821134de6b14cb4f6e7b6df8e">ARROW_WIDTH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa8f6be2c9e0c22d5a3fc3e7ffb78e091">DEFAULT_FONTFAMILY</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e51abdecb7408a419abc5dc1add483d">DEFAULT_FONTSIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4681077d65955938ae5f0a1d92cf4d9">DEFAULT_HOTSPOT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a501de491da4bfaca8212c186c0dd5010">DEFAULT_IMAGESIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afcaa2814121d0790947f213d58b4259e">DEFAULT_MARKERSIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afff87a571af579f46ec2c3862704a58a">DEFAULT_STARTSIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a46965709b8201a793fd44e0d247d20f0">DIRECTION_EAST</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aae4487ca29086764e8e5b38540f1df95">DIRECTION_NORTH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad87d063a90714a2f565ac4d74a0ba309">DIRECTION_SOUTH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0523a6e826d22b0b050a037e16096785">DIRECTION_WEST</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeecc6e2dc1dbc264179acd4681f83a6b">EDGESTYLE_ELBOW</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a422ba84582422f22deb1f0d896161f2d">EDGESTYLE_ENTITY_RELATION</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1fe6d038ca967a9fc70d4aa35d363aff">EDGESTYLE_LOOP</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4e5ff3580d1f5c565e973229f42ad2c4">EDGESTYLE_SIDETOSIDE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adb64f29e53c3b1cc0d597eb4172cef1a">EDGESTYLE_TOPTOBOTTOM</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac428d7bb10c30afea58b55092c6e8299">ELBOW_HORIZONTAL</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a017feb6b31cc6ab8d3aaaf8fb8636f46">ELBOW_VERTICAL</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a440e1f7c83e8e1d5d6ae0dbacd2562f6">ENTITY_SEGMENT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5611c5488a8a90543df8259ae5a038cb">FONT_BOLD</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa06301a225a73f6f3b794eff609e8025">FONT_ITALIC</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a62bfee4263ad5c201c79256c117cd1b4">FONT_SHADOW</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0d46345b5eb967100c37513709cbf4d9">FONT_SIZEFACTOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d1d4f95f78df944b58e33dadb6434e0">FONT_UNDERLINE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada723b1431e72dcb83ade63bbb01f73a">LABEL_INSET</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a54c593c784f39e9ff7c6b30a85b9636f">LINE_ARCSIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab5f4a464bcb289fb32e0b4673b4d44df">LINESPACING</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acbb9f2ff860f1f615001f00475c26357">MIN_HOTSPOT_SIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1adacf0fd058343aa49474e68b2e9bc0">NONE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a28b704112d40b5bc8ec0a25036519461">NS_SVG</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a57bbcd46e2282a8a8f3e5efd009f326f">NS_XHTML</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac215c18933e00eea92bb5bce420b6164">NS_XLINK</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98221a8b8eda10e6d8f5537369f7aaa5">PERIMETER_ELLIPSE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae0998d20af28656c081cf969afb40b99">PERIMETER_RECTANGLE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9246707b04824ac40c547a28dc703549">PERIMETER_RHOMBUS</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a976f981a543eef57ee02bd91adad6519">PERIMETER_TRIANGLE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aabfe6def9b50358da2531c4d60dab841">RECTANGLE_ROUNDING_FACTOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a01f9ce3eb19c4a4ba0cfddc329a2699a">SHADOW_OFFSETX</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2678e4921f6a202f3587442383abcbc6">SHADOW_OFFSETY</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7148385e3441968e5d15aa58ee2f665">SHADOWCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72ed28d6c0495c8c7a920ae3c12b3688">SHAPE_ACTOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac31197f8da77804a029048b7c9d3cad9">SHAPE_ARROW</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada54fd2aa9d7f5c90c070aaa0506b77c">SHAPE_CLOUD</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab600b420af02458e82b7258f496cfb6d">SHAPE_CONNECTOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1f63bac0e7097a58663dc80da5f9b4a2">SHAPE_CYLINDER</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea8932b267794b48cd6951efa11df7fa">SHAPE_DOUBLE_ELLIPSE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a946407c9bf9eef6f921b7723899bad78">SHAPE_ELLIPSE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3b6043b72e0e58c69ed4a1323cd1b166">SHAPE_HEXAGON</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aec3c70fb4c28da7bc4f50c35dcec6c88">SHAPE_IMAGE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1dfdd4b69e8d8b195d90fbe13314c542">SHAPE_LABEL</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fd007b2ccee5aa697cf29fb021a0583">SHAPE_LINE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2acf2ee5738a15bde35078e86269e45b">SHAPE_RECTANGLE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea7159f2588d2ac58bc9159d5d4d03df">SHAPE_RHOMBUS</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6c82fb9d8b61d4d54bf26941203065a6">SHAPE_SWIMLANE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a96dcc90c9e5cd652bf6c4b36f5c5494b">SHAPE_TRIANGLE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aff2785f47c407555c479638d61236485">STENCIL_SHADOW_OPACITY</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2ad8d18c2859195ee32682ddeb78ee45">STENCIL_SHADOWCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bf2ade1d2e0f403d277f6f8fbfab04c">STYLE_ALIGN</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72282dc7b4403879583e92429f59408c">STYLE_DASHED</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a622b5e7e3ca2cb86085df0cd3d5e26c1">STYLE_DIRECTION</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8861eab51bc7b08c6275a70f2f4172cb">STYLE_EDGE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aee1f5bfab933c72838a55bb4e73b3e7f">STYLE_ELBOW</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1088d6100e39467aedbcaf6b5062317a">STYLE_ENDARROW</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeb6c0f3b0eb4303fb1d84494261148d8">STYLE_ENDSIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97c58e9edf1fbcb66728d41f3f3e921b">STYLE_ENTRY_PERIMETER</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa33b112c7630d445fb16560f941b460b">STYLE_ENTRY_X</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac9c08ec34c37cd6367b2c6c61a8d040d">STYLE_ENTRY_Y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7aa69b39575100511568fc5d062b7c28">STYLE_EXIT_PERIMETER</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98d483b298c714fc1d4f86e9dea1d6f3">STYLE_EXIT_X</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1216d1b2c024ab902cb5be3f0c16692b">STYLE_EXIT_Y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3dc99c9389e68fcccf1c2b9251dff65e">STYLE_FILLCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5a347e065f8c5005963216973e2a9115">STYLE_FONTCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3aa95b051c6493fa620c6b0c1cd3b4dd">STYLE_FONTFAMILY</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad212fbdc79fc097012001bad8d884503">STYLE_FONTSIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad7f0c932b0e6155f8941e3de4550cb7a">STYLE_FONTSTYLE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7a5d296e06edc4895e68f1032d0eb21">STYLE_GLASS</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa5ce6cef515cd3b980ba2c16efddcb84">STYLE_GRADIENT_DIRECTION</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a89ed61c1c831f8fdbbb73cb61a4b0893">STYLE_GRADIENTCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a09777af53361249d4cdb30f2124c216f">STYLE_HORIZONTAL</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae7fbf6ef9404b878005cf8ae4a7c6d69">STYLE_IMAGE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9c9b30a365244f1ead9c4376ff939278">STYLE_IMAGE_ALIGN</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a479c79822f87ac0ff75a3b737920dd74">STYLE_IMAGE_BACKGROUND</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a27ad421ddf299ead3c232023968ce10a">STYLE_IMAGE_BORDER</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af855ae060582a396e363384564417408">STYLE_IMAGE_FLIPH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad90975559c0881df119c6415572bfa29">STYLE_IMAGE_FLIPV</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9d501f96487c4aed5ac589b57535e8f">STYLE_IMAGE_HEIGHT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a68508a8687f386ad2fdbf87ef62918f8">STYLE_IMAGE_VERTICAL_ALIGN</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a823b225d4fcaecddb244454299157f37">STYLE_IMAGE_WIDTH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ca8def77e2cad483ff73adf2be9f5da">STYLE_INDICATOR_COLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a655de664089013fda98ea8f564a8797e">STYLE_INDICATOR_GRADIENTCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a25ee53b3944aa45d184526765cd42a5f">STYLE_INDICATOR_HEIGHT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0827a50f8caa7929bae0e54967431f52">STYLE_INDICATOR_IMAGE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3a5dec5b1000f428d731f6dbbf36bb87">STYLE_INDICATOR_SHAPE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abcf58d30cf605976114a3fbe549a0594">STYLE_INDICATOR_SPACING</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fa4b8c068da7b8dc03347042688b887">STYLE_INDICATOR_WIDTH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acae9ee1e73cc8263b2a28c790037c053">STYLE_LABEL_BACKGROUNDCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a669dd03f58985bfbf157dfb397aa1f75">STYLE_LABEL_BORDERCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a34c4987af659c3fc8dfbce5403103b17">STYLE_LABEL_POSITION</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a150d6d5f6ee8fdeca8ef3c03fc554b81">STYLE_LOOP</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad4f96676ce52fc7c0cff35c27ce58a82">STYLE_NOEDGESTYLE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab18fffbf5731e09783b758e97c92add1">STYLE_NOLABEL</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a859d1d0076703ae134d89a14e671e7b8">STYLE_OPACITY</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a81c71c639ddc4cfea45fc09adf8e2318">STYLE_ORTHOGONAL</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a05412f8771176e5291b46f68a927ed80">STYLE_OVERFLOW</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab7a751a8bd80d3c041b88752ef5e94f5">STYLE_PERIMETER</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab72f25cea7e25d73ade53f50c4b5cece">STYLE_PERIMETER_SPACING</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae890fd04c116f3a040ba5f3b97d57ddc">STYLE_ROTATION</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7ed5ee486bcb6c268a6db2d8e2db1d3a">STYLE_ROUNDED</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae4a649d907b8a4f9eb7915d0232a0052">STYLE_ROUTING_CENTER_X</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2090b3fa05fc8a9b9584039656b3d59d">STYLE_ROUTING_CENTER_Y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2d77891c86546ce52398037d0afe3ef2">STYLE_SEGMENT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad640efc5948adbd18008c5383f214b85">STYLE_SEPARATORCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7fded7aaee86f7fec85c24eb990bd916">STYLE_SHADOW</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af98dc98bd5924306a17ea59f72a1fc3b">STYLE_SHAPE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6bbe32f287e9b7a4bcd56df3de63b144">STYLE_SOURCE_PERIMETER_SPACING</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a61e8c4cd1ed9d08c68bdce687431f3b5">STYLE_SOURCE_PORT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1988defb25af7887b4c5968af10525">STYLE_SPACING</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9f99069bf0e43bc91b86782829e305a">STYLE_SPACING_BOTTOM</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac22ee8a630a6114a3e05f9f0c1a13c1c">STYLE_SPACING_LEFT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a311f21a164824043c00dd88d0faabca7">STYLE_SPACING_RIGHT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8109d6144dd0fb35545f36d02b2d05d9">STYLE_SPACING_TOP</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98530d392eebdd03085cf1e59e9211d3">STYLE_STARTARROW</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a502552e236735b56632bbbd7c4429be0">STYLE_STARTSIZE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4896c3e6b34377ddeb7e473ea02d943e">STYLE_STENCIL_FLIPH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a137b1f6080c7cb03281eb5acc7442bcc">STYLE_STENCIL_FLIPV</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5695d983892290ee811e51516d54dd36">STYLE_STROKECOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8a4a968f4647b3d56a1dc10f0c23a4b0">STYLE_STROKEWIDTH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abc457a97c7a4cc991f2ca65982bcab86">STYLE_TARGET_PERIMETER_SPACING</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6ceeb7c7b3ec66986d192d8eb68d199b">STYLE_TARGET_PORT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab409504a46643de9d90248a961f397ff">STYLE_TEXT_OPACITY</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4f940125631e1ab3cf4e30a8eb104878">STYLE_VERTICAL_ALIGN</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2e89648ff34b47ee38e7faccd4c594fc">STYLE_VERTICAL_LABEL_POSITION</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d76138f18fdcaeb174ee0409644ddf1">STYLE_WHITE_SPACE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a386f9b5690337d6a92bf57b7672ab492">W3C_SHADOWCOLOR</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></td><td><code> [static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConstants.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConstants.html
    new file mode 100644
    index 000000000..c12ffc4fc
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxConstants.html
    @@ -0,0 +1,2562 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxConstants Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">mxConstants</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxConstants Class Reference</h1><!-- doxytag: class="com::mxgraph::mxConstants" -->
    +<p>Defines various global constants.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxConstants-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5611c5488a8a90543df8259ae5a038cb">FONT_BOLD</a> = 1</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">FONT_BOLD.  <a href="#a5611c5488a8a90543df8259ae5a038cb"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa06301a225a73f6f3b794eff609e8025">FONT_ITALIC</a> = 2</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">FONT_ITALIC.  <a href="#aa06301a225a73f6f3b794eff609e8025"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d1d4f95f78df944b58e33dadb6434e0">FONT_UNDERLINE</a> = 4</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">FONT_UNDERLINE.  <a href="#a6d1d4f95f78df944b58e33dadb6434e0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a62bfee4263ad5c201c79256c117cd1b4">FONT_SHADOW</a> = 8</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">FONT_SHADOW.  <a href="#a62bfee4263ad5c201c79256c117cd1b4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2acf2ee5738a15bde35078e86269e45b">SHAPE_RECTANGLE</a> = &quot;rectangle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_RECTANGLE.  <a href="#a2acf2ee5738a15bde35078e86269e45b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a946407c9bf9eef6f921b7723899bad78">SHAPE_ELLIPSE</a> = &quot;ellipse&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_ELLIPSE.  <a href="#a946407c9bf9eef6f921b7723899bad78"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea8932b267794b48cd6951efa11df7fa">SHAPE_DOUBLE_ELLIPSE</a> = &quot;doubleEllipse&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_DOUBLE_ELLIPSE.  <a href="#aea8932b267794b48cd6951efa11df7fa"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea7159f2588d2ac58bc9159d5d4d03df">SHAPE_RHOMBUS</a> = &quot;rhombus&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_RHOMBUS.  <a href="#aea7159f2588d2ac58bc9159d5d4d03df"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fd007b2ccee5aa697cf29fb021a0583">SHAPE_LINE</a> = &quot;line&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_LINE.  <a href="#a2fd007b2ccee5aa697cf29fb021a0583"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aec3c70fb4c28da7bc4f50c35dcec6c88">SHAPE_IMAGE</a> = &quot;image&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_IMAGE.  <a href="#aec3c70fb4c28da7bc4f50c35dcec6c88"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac31197f8da77804a029048b7c9d3cad9">SHAPE_ARROW</a> = &quot;arrow&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_ARROW.  <a href="#ac31197f8da77804a029048b7c9d3cad9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1dfdd4b69e8d8b195d90fbe13314c542">SHAPE_LABEL</a> = &quot;label&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_LABEL.  <a href="#a1dfdd4b69e8d8b195d90fbe13314c542"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1f63bac0e7097a58663dc80da5f9b4a2">SHAPE_CYLINDER</a> = &quot;cylinder&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_CYLINDER.  <a href="#a1f63bac0e7097a58663dc80da5f9b4a2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6c82fb9d8b61d4d54bf26941203065a6">SHAPE_SWIMLANE</a> = &quot;swimlane&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_SWIMLANE.  <a href="#a6c82fb9d8b61d4d54bf26941203065a6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab600b420af02458e82b7258f496cfb6d">SHAPE_CONNECTOR</a> = &quot;connector&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_CONNECTOR.  <a href="#ab600b420af02458e82b7258f496cfb6d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72ed28d6c0495c8c7a920ae3c12b3688">SHAPE_ACTOR</a> = &quot;actor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_ACTOR.  <a href="#a72ed28d6c0495c8c7a920ae3c12b3688"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada54fd2aa9d7f5c90c070aaa0506b77c">SHAPE_CLOUD</a> = &quot;cloud&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_CLOUD.  <a href="#ada54fd2aa9d7f5c90c070aaa0506b77c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a96dcc90c9e5cd652bf6c4b36f5c5494b">SHAPE_TRIANGLE</a> = &quot;triangle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_TRIANGLE.  <a href="#a96dcc90c9e5cd652bf6c4b36f5c5494b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3b6043b72e0e58c69ed4a1323cd1b166">SHAPE_HEXAGON</a> = &quot;hexagon&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SHAPE_HEXAGON.  <a href="#a3b6043b72e0e58c69ed4a1323cd1b166"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bc3c5c7fd2dc102d59e667c9648ebfc">ARROW_CLASSIC</a> = &quot;classic&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ARROW_CLASSIC.  <a href="#a0bc3c5c7fd2dc102d59e667c9648ebfc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97bae058e18a204853e81ef523c27cbe">ARROW_BLOCK</a> = &quot;block&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ARROW_BLOCK.  <a href="#a97bae058e18a204853e81ef523c27cbe"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ccb95f20cf9ad4f620356ba5c85613c">ARROW_OPEN</a> = &quot;open&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ARROW_OPEN.  <a href="#a3ccb95f20cf9ad4f620356ba5c85613c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5f89ad5538a6009a1c76e3b8cd3979df">ARROW_OVAL</a> = &quot;oval&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ARROW_BLOCK.  <a href="#a5f89ad5538a6009a1c76e3b8cd3979df"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adabfcaff7df74535caf6c51ea2823139">ARROW_DIAMOND</a> = &quot;diamond&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ARROW_OPEN.  <a href="#adabfcaff7df74535caf6c51ea2823139"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a581f2bde5ccd9a5e4d34dee1d22b9e2f">ALIGN_LEFT</a> = &quot;left&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ALIGN_LEFT.  <a href="#a581f2bde5ccd9a5e4d34dee1d22b9e2f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a671d1091ad0216097f171e35721407be">ALIGN_CENTER</a> = &quot;center&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ALIGN_CENTER.  <a href="#a671d1091ad0216097f171e35721407be"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4e34648d83cd7460d0cb20ee0403d8a">ALIGN_RIGHT</a> = &quot;right&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ALIGN_RIGHT.  <a href="#aa4e34648d83cd7460d0cb20ee0403d8a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e3b58384536c29db72b8b6e0766fe5b">ALIGN_TOP</a> = &quot;top&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ALIGN_TOP.  <a href="#a3e3b58384536c29db72b8b6e0766fe5b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae3911ed6204528cdbbe551c4d0ff90fa">ALIGN_MIDDLE</a> = &quot;middle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ALIGN_MIDDLE.  <a href="#ae3911ed6204528cdbbe551c4d0ff90fa"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1232be429b6c5cbd6bbbfe9f8f94a8">ALIGN_BOTTOM</a> = &quot;bottom&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ALIGN_BOTTOM.  <a href="#aed1232be429b6c5cbd6bbbfe9f8f94a8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aae4487ca29086764e8e5b38540f1df95">DIRECTION_NORTH</a> = &quot;north&quot;</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad87d063a90714a2f565ac4d74a0ba309">DIRECTION_SOUTH</a> = &quot;south&quot;</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a46965709b8201a793fd44e0d247d20f0">DIRECTION_EAST</a> = &quot;east&quot;</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0523a6e826d22b0b050a037e16096785">DIRECTION_WEST</a> = &quot;west&quot;</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a017feb6b31cc6ab8d3aaaf8fb8636f46">ELBOW_VERTICAL</a> = &quot;vertical&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ELBOW_VERTICAL.  <a href="#a017feb6b31cc6ab8d3aaaf8fb8636f46"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac428d7bb10c30afea58b55092c6e8299">ELBOW_HORIZONTAL</a> = &quot;horizontal&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ELBOW_HORIZONTAL.  <a href="#ac428d7bb10c30afea58b55092c6e8299"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeecc6e2dc1dbc264179acd4681f83a6b">EDGESTYLE_ELBOW</a> = &quot;elbowEdgeStyle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name of the elbow edge style. Can be used as a string value.  <a href="#aeecc6e2dc1dbc264179acd4681f83a6b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a422ba84582422f22deb1f0d896161f2d">EDGESTYLE_ENTITY_RELATION</a> = &quot;entityRelationEdgeStyle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name of the entity relation edge style. Can be used as a string value.  <a href="#a422ba84582422f22deb1f0d896161f2d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1fe6d038ca967a9fc70d4aa35d363aff">EDGESTYLE_LOOP</a> = &quot;loopEdgeStyle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name of the loop edge style. Can be used as a string value.  <a href="#a1fe6d038ca967a9fc70d4aa35d363aff"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4e5ff3580d1f5c565e973229f42ad2c4">EDGESTYLE_SIDETOSIDE</a> = &quot;sideToSideEdgeStyle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name of the side to side edge style. Can be used as a string value.  <a href="#a4e5ff3580d1f5c565e973229f42ad2c4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adb64f29e53c3b1cc0d597eb4172cef1a">EDGESTYLE_TOPTOBOTTOM</a> = &quot;topToBottomEdgeStyle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name of the top to bottom edge style. Can be used as a string value.  <a href="#adb64f29e53c3b1cc0d597eb4172cef1a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98221a8b8eda10e6d8f5537369f7aaa5">PERIMETER_ELLIPSE</a> = &quot;ellipsePerimeter&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name of the ellipse perimeter. Can be used as a string value.  <a href="#a98221a8b8eda10e6d8f5537369f7aaa5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae0998d20af28656c081cf969afb40b99">PERIMETER_RECTANGLE</a> = &quot;rectanglePerimeter&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name of the rectangle perimeter. Can be used as a string value.  <a href="#ae0998d20af28656c081cf969afb40b99"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9246707b04824ac40c547a28dc703549">PERIMETER_RHOMBUS</a> = &quot;rhombusPerimeter&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name of the rhombus perimeter. Can be used as a string value.  <a href="#a9246707b04824ac40c547a28dc703549"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a976f981a543eef57ee02bd91adad6519">PERIMETER_TRIANGLE</a> = &quot;trianglePerimeter&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name of the triangle perimeter. Can be used as a string value.  <a href="#a976f981a543eef57ee02bd91adad6519"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4681077d65955938ae5f0a1d92cf4d9">DEFAULT_HOTSPOT</a> = 0.3</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the portion of the cell which is.  <a href="#aa4681077d65955938ae5f0a1d92cf4d9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acbb9f2ff860f1f615001f00475c26357">MIN_HOTSPOT_SIZE</a> = 8</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the minimum size in pixels of the.  <a href="#acbb9f2ff860f1f615001f00475c26357"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a28b704112d40b5bc8ec0a25036519461">NS_SVG</a> = &quot;http://www.w3.org/2000/svg&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the SVG namespace.  <a href="#a28b704112d40b5bc8ec0a25036519461"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a57bbcd46e2282a8a8f3e5efd009f326f">NS_XHTML</a> = &quot;http://www.w3.org/1999/xhtml&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the XHTML namespace.  <a href="#a57bbcd46e2282a8a8f3e5efd009f326f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac215c18933e00eea92bb5bce420b6164">NS_XLINK</a> = &quot;http://www.w3.org/1999/xlink&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the XLink namespace.  <a href="#ac215c18933e00eea92bb5bce420b6164"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa8f6be2c9e0c22d5a3fc3e7ffb78e091">DEFAULT_FONTFAMILY</a> = &quot;Arial&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default family for fonts. Default is Arial.  <a href="#aa8f6be2c9e0c22d5a3fc3e7ffb78e091"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e51abdecb7408a419abc5dc1add483d">DEFAULT_FONTSIZE</a> = 11</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default size for fonts. Value is 11.  <a href="#a3e51abdecb7408a419abc5dc1add483d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afff87a571af579f46ec2c3862704a58a">DEFAULT_STARTSIZE</a> = 40</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the default start size for swimlanes. Default is 40.  <a href="#afff87a571af579f46ec2c3862704a58a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab5f4a464bcb289fb32e0b4673b4d44df">LINESPACING</a> = 2</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the line spacing. Default is 2.  <a href="#ab5f4a464bcb289fb32e0b4673b4d44df"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0d46345b5eb967100c37513709cbf4d9">FONT_SIZEFACTOR</a> = 0.75</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the factor to multiply font sizes in points to be used as font sizes in em. Default is 1/1.33 = 0.75.  <a href="#a0d46345b5eb967100c37513709cbf4d9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada723b1431e72dcb83ade63bbb01f73a">LABEL_INSET</a> = 3</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the inset in absolute pixels between the label bounding box and the label text. Default is 3.  <a href="#ada723b1431e72dcb83ade63bbb01f73a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afcaa2814121d0790947f213d58b4259e">DEFAULT_MARKERSIZE</a> = 6</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default size for markers. Value is 6.  <a href="#afcaa2814121d0790947f213d58b4259e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a501de491da4bfaca8212c186c0dd5010">DEFAULT_IMAGESIZE</a> = 24</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the default width and height for images used in the label shape. Default is 24.  <a href="#a501de491da4bfaca8212c186c0dd5010"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aff2785f47c407555c479638d61236485">STENCIL_SHADOW_OPACITY</a> = 1</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the default opacity for stencils shadows. Default is 1.  <a href="#aff2785f47c407555c479638d61236485"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2ad8d18c2859195ee32682ddeb78ee45">STENCIL_SHADOWCOLOR</a> = &quot;gray&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the default shadow color for stencils. Default is "gray".  <a href="#a2ad8d18c2859195ee32682ddeb78ee45"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Color&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7148385e3441968e5d15aa58ee2f665">SHADOWCOLOR</a> = Color.Gray</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the color to be used to draw shadows. Default is gray.  <a href="#af7148385e3441968e5d15aa58ee2f665"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a01f9ce3eb19c4a4ba0cfddc329a2699a">SHADOW_OFFSETX</a> = 2</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the x-offset to be used for shadows. Default is 2.  <a href="#a01f9ce3eb19c4a4ba0cfddc329a2699a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2678e4921f6a202f3587442383abcbc6">SHADOW_OFFSETY</a> = 3</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the y-offset to be used for shadows. Default is 3.  <a href="#a2678e4921f6a202f3587442383abcbc6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a386f9b5690337d6a92bf57b7672ab492">W3C_SHADOWCOLOR</a> = &quot;gray&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the color to be used to draw shadows in W3C standards. Default is gray.  <a href="#a386f9b5690337d6a92bf57b7672ab492"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a440e1f7c83e8e1d5d6ae0dbacd2562f6">ENTITY_SEGMENT</a> = 30</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the length of the horizontal segment of an Entity Relation. This can be overridden using <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2d77891c86546ce52398037d0afe3ef2" title="Defines the key for the segment style. The type of this value is float and the value...">mxConstants.STYLE_SEGMENT</a> style. Default is 30.  <a href="#a440e1f7c83e8e1d5d6ae0dbacd2562f6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aabfe6def9b50358da2531c4d60dab841">RECTANGLE_ROUNDING_FACTOR</a> = 0.15</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the rounding factor for rounded rectangles in percent between 0 and 1. Values should be smaller than 0.5. Default is 0.15.  <a href="#aabfe6def9b50358da2531c4d60dab841"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a54c593c784f39e9ff7c6b30a85b9636f">LINE_ARCSIZE</a> = 10</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the size of the arcs for rounded edges. Default is 10.  <a href="#a54c593c784f39e9ff7c6b30a85b9636f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6cc6975b57bdba6d460539a237557082">ARROW_SPACING</a> = 10</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the spacing between the arrow shape and its terminals. Default is 10.  <a href="#a6cc6975b57bdba6d460539a237557082"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6fdb559821134de6b14cb4f6e7b6df8e">ARROW_WIDTH</a> = 30</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the width of the arrow shape. Default is 30.  <a href="#a6fdb559821134de6b14cb4f6e7b6df8e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad42ffebd7848e9a459db4542fb931be9">ARROW_SIZE</a> = 30</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the size of the arrowhead in the arrow shape. Default is 30.  <a href="#ad42ffebd7848e9a459db4542fb931be9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1adacf0fd058343aa49474e68b2e9bc0">NONE</a> = &quot;none&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the value for none. Default is "none".  <a href="#a1adacf0fd058343aa49474e68b2e9bc0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab7a751a8bd80d3c041b88752ef5e94f5">STYLE_PERIMETER</a> = &quot;perimeter&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the perimeter style. Possible values are the functions defined in <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html" title="Provides various perimeter functions to be used in a style as the value of mxConstants...">mxPerimeter</a>.  <a href="#ab7a751a8bd80d3c041b88752ef5e94f5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a61e8c4cd1ed9d08c68bdce687431f3b5">STYLE_SOURCE_PORT</a> = &quot;sourcePort&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the ID of the cell that should be used for computing the perimeter point of the source for an edge. This allows for graphically connecting to a cell while keeping the actual terminal of the edge.  <a href="#a61e8c4cd1ed9d08c68bdce687431f3b5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6ceeb7c7b3ec66986d192d8eb68d199b">STYLE_TARGET_PORT</a> = &quot;targetPort&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the ID of the cell that should be used for computing the perimeter point of the target for an edge. This allows for graphically connecting to a cell while keeping the actual terminal of the edge.  <a href="#a6ceeb7c7b3ec66986d192d8eb68d199b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a859d1d0076703ae134d89a14e671e7b8">STYLE_OPACITY</a> = &quot;opacity&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the opacity style (0-100).  <a href="#a859d1d0076703ae134d89a14e671e7b8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab409504a46643de9d90248a961f397ff">STYLE_TEXT_OPACITY</a> = &quot;textOpacity&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the text opacity style (0-100).  <a href="#ab409504a46643de9d90248a961f397ff"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a05412f8771176e5291b46f68a927ed80">STYLE_OVERFLOW</a> = &quot;overflow&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the overflow style. Possible values are "visible", "hidden" and "fill". The default value is "visible". This value specifies how overlapping vertex labels are handles. A value of "visible" will show the complete label. A value of "hidden" will clip the label so that it does not overlap the vertex bounds. A value of "fill" will use the vertex bounds for the label.  <a href="#a05412f8771176e5291b46f68a927ed80"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a81c71c639ddc4cfea45fc09adf8e2318">STYLE_ORTHOGONAL</a> = &quot;orthogonal&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines if the connection points on either end of the edge should be.  <a href="#a81c71c639ddc4cfea45fc09adf8e2318"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98d483b298c714fc1d4f86e9dea1d6f3">STYLE_EXIT_X</a> = &quot;exitX&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the horizontal relative coordinate connection point.  <a href="#a98d483b298c714fc1d4f86e9dea1d6f3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1216d1b2c024ab902cb5be3f0c16692b">STYLE_EXIT_Y</a> = &quot;exitY&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the vertical relative coordinate connection point.  <a href="#a1216d1b2c024ab902cb5be3f0c16692b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7aa69b39575100511568fc5d062b7c28">STYLE_EXIT_PERIMETER</a> = &quot;exitPerimeter&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines if the perimeter should be used to find the exact entry point.  <a href="#a7aa69b39575100511568fc5d062b7c28"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa33b112c7630d445fb16560f941b460b">STYLE_ENTRY_X</a> = &quot;entryX&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the horizontal relative coordinate connection point.  <a href="#aa33b112c7630d445fb16560f941b460b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac9c08ec34c37cd6367b2c6c61a8d040d">STYLE_ENTRY_Y</a> = &quot;entryY&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the vertical relative coordinate connection point.  <a href="#ac9c08ec34c37cd6367b2c6c61a8d040d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97c58e9edf1fbcb66728d41f3f3e921b">STYLE_ENTRY_PERIMETER</a> = &quot;entryPerimeter&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines if the perimeter should be used to find the exact entry point.  <a href="#a97c58e9edf1fbcb66728d41f3f3e921b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d76138f18fdcaeb174ee0409644ddf1">STYLE_WHITE_SPACE</a> = &quot;whiteSpace&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the white-space style. Possible values are "nowrap" and "wrap". The default value is "nowrap". This value specifies how white-space inside a HTML vertex label should be handled. A value of "nowrap" means the text will never wrap to the next line until a linefeed is encountered. A value of "wrap" means text will wrap when necessary.  <a href="#a6d76138f18fdcaeb174ee0409644ddf1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae890fd04c116f3a040ba5f3b97d57ddc">STYLE_ROTATION</a> = &quot;rotation&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the rotation style (0-360).  <a href="#ae890fd04c116f3a040ba5f3b97d57ddc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3dc99c9389e68fcccf1c2b9251dff65e">STYLE_FILLCOLOR</a> = &quot;fillColor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the fillColor style. The value is a string expression supported by ColorTranslator.FromHtml.  <a href="#a3dc99c9389e68fcccf1c2b9251dff65e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a89ed61c1c831f8fdbbb73cb61a4b0893">STYLE_GRADIENTCOLOR</a> = &quot;gradientColor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the gradientColor style. The value is a string expression supported by ColorTranslator.FromHtml. This is ignored if no fill color is defined.  <a href="#a89ed61c1c831f8fdbbb73cb61a4b0893"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa5ce6cef515cd3b980ba2c16efddcb84">STYLE_GRADIENT_DIRECTION</a> = &quot;gradientDirection&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the gradient direction. Possible values are <em>DIRECTION_EAST</em>, <em>DIRECTION_WEST</em>, <em>DIRECTION_NORTH</em> and <em>DIRECTION_SOUTH</em>. Default is <em>DIRECTION_SOUTH</em>. Generally, and by default in <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a>, gradient painting is done from the value of <em>STYLE_FILLCOLOR</em> to the value of <em>STYLE_GRADIENTCOLOR</em>. Taking the example of <em>DIRECTION_NORTH</em>, this means <em>STYLE_FILLCOLOR</em> color at the bottom of paint pattern and <em>STYLE_GRADIENTCOLOR</em> at top, with a gradient in-between.  <a href="#aa5ce6cef515cd3b980ba2c16efddcb84"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5695d983892290ee811e51516d54dd36">STYLE_STROKECOLOR</a> = &quot;strokeColor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the strokeColor style. The value is a string expression supported by ColorTranslator.FromHtml.  <a href="#a5695d983892290ee811e51516d54dd36"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad640efc5948adbd18008c5383f214b85">STYLE_SEPARATORCOLOR</a> = &quot;separatorColor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the separatorColor style. The value is a string expression supported by ColorTranslator.FromHtml. This style is only used for SHAPE_SWIMLANE shapes.  <a href="#ad640efc5948adbd18008c5383f214b85"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8a4a968f4647b3d56a1dc10f0c23a4b0">STYLE_STROKEWIDTH</a> = &quot;strokeWidth&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the strokeWidth style. The type of the value is <em>float</em> and the possible range is any non-negative value. The value reflects the stroke width in pixels.  <a href="#a8a4a968f4647b3d56a1dc10f0c23a4b0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bf2ade1d2e0f403d277f6f8fbfab04c">STYLE_ALIGN</a> = &quot;align&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the align style. Possible values are <em>ALIGN_LEFT</em>, <em>ALIGN_CENTER</em> and <em>ALIGN_RIGHT</em>. This value defines how the lines of the label are horizontally aligned. <em>ALIGN_LEFT</em> mean label text lines are aligned to left of the label bounds, <em>ALIGN_RIGHT</em> to the right of the label bounds and <em>ALIGN_CENTER</em> means the center of the text lines are aligned in the center of the label bounds. Note this value doesn't affect the positioning of the overall label bounds relative to the vertex, to move the label bounds horizontally, use <em>STYLE_LABEL_POSITION</em>  <a href="#a0bf2ade1d2e0f403d277f6f8fbfab04c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4f940125631e1ab3cf4e30a8eb104878">STYLE_VERTICAL_ALIGN</a> = &quot;verticalAlign&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the verticalAlign style. Possible values are <em>ALIGN_TOP</em>, <em>ALIGN_MIDDLE</em> and <em>ALIGN_BOTTOM</em>. This value defines how the lines of the label are vertically aligned. <em>ALIGN_TOP</em> means the topmost label text line is aligned against the top of the label bounds, <em>ALIGN_BOTTOM</em> means the bottom-most label text line is aligned against the bottom of the label bounds and <em>ALIGN_MIDDLE</em> means there is equal spacing between the topmost text label line and the top of the label bounds and the bottom-most text label line and the bottom of the label bounds. Note this value doesn't affect the positioning of the overall label bounds relative to the vertex, to move the label bounds vertically, use <em>STYLE_VERTICAL_LABEL_POSITION</em>.  <a href="#a4f940125631e1ab3cf4e30a8eb104878"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a34c4987af659c3fc8dfbce5403103b17">STYLE_LABEL_POSITION</a> = &quot;labelPosition&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the horizontal label position of vertices. Possible values are <em>ALIGN_LEFT</em>, <em>ALIGN_CENTER</em> and <em>ALIGN_RIGHT</em>. Default is <em>ALIGN_CENTER</em>. The label align defines the position of the label relative to the cell. <em>ALIGN_LEFT</em> means the entire label bounds is placed completely just to the left of the vertex, <em>ALIGN_RIGHT</em> means adjust to the right and <em>ALIGN_CENTER</em> means the label bounds are vertically aligned with the bounds of the vertex. Note this value doesn't affect the positioning of label within the label bounds, to move the label horizontally within the label bounds, use <em>STYLE_ALIGN</em>.  <a href="#a34c4987af659c3fc8dfbce5403103b17"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2e89648ff34b47ee38e7faccd4c594fc">STYLE_VERTICAL_LABEL_POSITION</a> = &quot;verticalLabelPosition&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the vertical label position of vertices. Possible.  <a href="#a2e89648ff34b47ee38e7faccd4c594fc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9c9b30a365244f1ead9c4376ff939278">STYLE_IMAGE_ALIGN</a> = &quot;imageAlign&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the align style. Possible values are <em>ALIGN_LEFT</em>, <em>ALIGN_CENTER</em> and <em>ALIGN_RIGHT</em>. The value defines how any image in the vertex label is aligned horizontally within the label bounds of a SHAPE_LABEL shape.  <a href="#a9c9b30a365244f1ead9c4376ff939278"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a68508a8687f386ad2fdbf87ef62918f8">STYLE_IMAGE_VERTICAL_ALIGN</a> = &quot;imageVerticalAlign&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the verticalAlign style. Possible values are <em>ALIGN_TOP</em>, <em>ALIGN_MIDDLE</em> and <em>ALIGN_BOTTOM</em>. The value defines how any image in the vertex label is aligned vertically within the label bounds of a SHAPE_LABEL shape.  <a href="#a68508a8687f386ad2fdbf87ef62918f8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7a5d296e06edc4895e68f1032d0eb21">STYLE_GLASS</a> = &quot;glass&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the glass style. Possible values are 0 (disabled) and 1(enabled). The default value is 0. This is used in mxLabel.  <a href="#af7a5d296e06edc4895e68f1032d0eb21"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae7fbf6ef9404b878005cf8ae4a7c6d69">STYLE_IMAGE</a> = &quot;image&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the image style. Possible values are any image URL, registered key in mxImageResources or short data URI as defined in <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html" title="Maps from keys to base64 encoded images or file locations. All values must be URLs...">mxImageBundle</a>. The type of the value is <em>String</em>. This is the path to the image to image that is to be displayed within the label of a vertex. See mxGraphics2DCanvas.getImageForStyle, loadImage and setImageBasePath on how the image URL is resolved. Finally, mxUtils.loadImage is used for loading the image for a given URL.  <a href="#ae7fbf6ef9404b878005cf8ae4a7c6d69"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a823b225d4fcaecddb244454299157f37">STYLE_IMAGE_WIDTH</a> = &quot;imageWidth&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the imageWidth style. The type of this value is <em>int</em>, the value is the image width in pixels and must be greated than 0.  <a href="#a823b225d4fcaecddb244454299157f37"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9d501f96487c4aed5ac589b57535e8f">STYLE_IMAGE_HEIGHT</a> = &quot;imageHeight&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the imageHeight style The type of this value is <em>int</em>, the value is the image height in pixels and must be greater than 0.  <a href="#ae9d501f96487c4aed5ac589b57535e8f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a479c79822f87ac0ff75a3b737920dd74">STYLE_IMAGE_BACKGROUND</a> = &quot;imageBackground&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the image background color. This style is only used.  <a href="#a479c79822f87ac0ff75a3b737920dd74"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a27ad421ddf299ead3c232023968ce10a">STYLE_IMAGE_BORDER</a> = &quot;imageBorder&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the image border color. This style is only used for.  <a href="#a27ad421ddf299ead3c232023968ce10a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af855ae060582a396e363384564417408">STYLE_IMAGE_FLIPH</a> = &quot;imageFlipH&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the horizontal image flip. This style is only used in mxImageShape. Possible values are 0 and 1. Default is 0.  <a href="#af855ae060582a396e363384564417408"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad90975559c0881df119c6415572bfa29">STYLE_IMAGE_FLIPV</a> = &quot;imageFlipV&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the vertical image flip. This style is only used in mxImageShape. Possible values are 0 and 1. Default is 0.  <a href="#ad90975559c0881df119c6415572bfa29"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4896c3e6b34377ddeb7e473ea02d943e">STYLE_STENCIL_FLIPH</a> = &quot;stencilFlipH&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the horizontal stencil flip. This style is only used for &lt;mxStencilShape&gt;. Possible values are 0 and 1. Default is 0.  <a href="#a4896c3e6b34377ddeb7e473ea02d943e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a137b1f6080c7cb03281eb5acc7442bcc">STYLE_STENCIL_FLIPV</a> = &quot;stencilFlipV&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the vertical stencil flip. This style is only used for &lt;mxStencilShape&gt;. Possible values are 0 and 1. Default is 0.  <a href="#a137b1f6080c7cb03281eb5acc7442bcc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab18fffbf5731e09783b758e97c92add1">STYLE_NOLABEL</a> = &quot;noLabel&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the noLabel style. If this is true then no label is visible for a given cell. Possible values are true or false (1 or 0). Default is false (0).  <a href="#ab18fffbf5731e09783b758e97c92add1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad4f96676ce52fc7c0cff35c27ce58a82">STYLE_NOEDGESTYLE</a> = &quot;noEdgeStyle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the noEdgeStyle style. If this is true then no edge style is applied for a given edge. Possible values are true or false (1 or 0). Default is false.  <a href="#ad4f96676ce52fc7c0cff35c27ce58a82"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acae9ee1e73cc8263b2a28c790037c053">STYLE_LABEL_BACKGROUNDCOLOR</a> = &quot;labelBackgroundColor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the label background color. The value is a string expression supported by ColorTranslator.FromHtml.  <a href="#acae9ee1e73cc8263b2a28c790037c053"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a669dd03f58985bfbf157dfb397aa1f75">STYLE_LABEL_BORDERCOLOR</a> = &quot;labelBorderColor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the label border color. The value is a string expression supported by ColorTranslator.FromHtml.  <a href="#a669dd03f58985bfbf157dfb397aa1f75"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3a5dec5b1000f428d731f6dbbf36bb87">STYLE_INDICATOR_SHAPE</a> = &quot;indicatorShape&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the indicatorShape style. Possible values are any of the SHAPE_* constants.  <a href="#a3a5dec5b1000f428d731f6dbbf36bb87"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0827a50f8caa7929bae0e54967431f52">STYLE_INDICATOR_IMAGE</a> = &quot;indicatorImage&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the indicatorImage style. Possible values are any image URL, the type of the value is <em>String</em>.  <a href="#a0827a50f8caa7929bae0e54967431f52"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ca8def77e2cad483ff73adf2be9f5da">STYLE_INDICATOR_COLOR</a> = &quot;indicatorColor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the indicatorColor style. The value is a string expression supported by ColorTranslator.FromHtml.  <a href="#a3ca8def77e2cad483ff73adf2be9f5da"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a655de664089013fda98ea8f564a8797e">STYLE_INDICATOR_GRADIENTCOLOR</a> = &quot;indicatorGradientColor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the indicatorGradientColor style. The value is a string expression supported byColorTranslator.FromHtml. This style is only supported in SHAPE_LABEL shapes.  <a href="#a655de664089013fda98ea8f564a8797e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abcf58d30cf605976114a3fbe549a0594">STYLE_INDICATOR_SPACING</a> = &quot;indicatorSpacing&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the indicatorSpacing style (in px).  <a href="#abcf58d30cf605976114a3fbe549a0594"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fa4b8c068da7b8dc03347042688b887">STYLE_INDICATOR_WIDTH</a> = &quot;indicatorWidth&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the indicatorWidth style (in px).  <a href="#a2fa4b8c068da7b8dc03347042688b887"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a25ee53b3944aa45d184526765cd42a5f">STYLE_INDICATOR_HEIGHT</a> = &quot;indicatorHeight&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the indicatorHeight style (in px).  <a href="#a25ee53b3944aa45d184526765cd42a5f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7fded7aaee86f7fec85c24eb990bd916">STYLE_SHADOW</a> = &quot;shadow&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the shadow style. The type of the value is <em>boolean</em>. This style applies to vertices and arrow style edges.  <a href="#a7fded7aaee86f7fec85c24eb990bd916"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2d77891c86546ce52398037d0afe3ef2">STYLE_SEGMENT</a> = &quot;segment&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the segment style. The type of this value is <em>float</em> and the value represents the size of the horizontal segment of the entity relation style. Default is ENTITY_SEGMENT.  <a href="#a2d77891c86546ce52398037d0afe3ef2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1088d6100e39467aedbcaf6b5062317a">STYLE_ENDARROW</a> = &quot;endArrow&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the endArrow style. Possible values are all constants in this class that start with ARROW_. This style is supported in the mxConnector shape.  <a href="#a1088d6100e39467aedbcaf6b5062317a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98530d392eebdd03085cf1e59e9211d3">STYLE_STARTARROW</a> = &quot;startArrow&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the startArrow style. Possible values are all constants in this class that start with ARROW_. See STYLE_ENDARROW. This style is supported in the mxConnector shape.  <a href="#a98530d392eebdd03085cf1e59e9211d3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeb6c0f3b0eb4303fb1d84494261148d8">STYLE_ENDSIZE</a> = &quot;endSize&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the endSize style. The type of this value is <em>float</em> and the value represents the size of the end marker in pixels.  <a href="#aeb6c0f3b0eb4303fb1d84494261148d8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a502552e236735b56632bbbd7c4429be0">STYLE_STARTSIZE</a> = &quot;startSize&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the startSize style. The type of this value is <em>float</em> and the value represents the size of the start marker or the size of the swimlane title region depending on the shape it is used for.  <a href="#a502552e236735b56632bbbd7c4429be0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72282dc7b4403879583e92429f59408c">STYLE_DASHED</a> = &quot;dashed&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the dashed style. The type of this value is <em>boolean</em> and the value determines whether or not an edge or border is drawn with a dashed pattern along the line.  <a href="#a72282dc7b4403879583e92429f59408c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7ed5ee486bcb6c268a6db2d8e2db1d3a">STYLE_ROUNDED</a> = &quot;rounded&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the rounded style. The type of this value is <em>boolean</em>. For edges this determines whether or not joins between edges segments are smoothed to a rounded finish. For vertices that have the rectangle shape, this determines whether or not the rectangle is rounded.  <a href="#a7ed5ee486bcb6c268a6db2d8e2db1d3a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6bbe32f287e9b7a4bcd56df3de63b144">STYLE_SOURCE_PERIMETER_SPACING</a> = &quot;sourcePerimeterSpacing&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the source perimeter spacing. The type of this value is <em>double</em>. This is the distance between the source connection point of an edge and the perimeter of the source vertex in pixels. This style only applies to edges.  <a href="#a6bbe32f287e9b7a4bcd56df3de63b144"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abc457a97c7a4cc991f2ca65982bcab86">STYLE_TARGET_PERIMETER_SPACING</a> = &quot;targetPerimeterSpacing&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the target perimeter spacing. The type of this value is <em>double</em>. This is the distance between the target connection point of an edge and the perimeter of the target vertex in pixels. This style only applies to edges.  <a href="#abc457a97c7a4cc991f2ca65982bcab86"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab72f25cea7e25d73ade53f50c4b5cece">STYLE_PERIMETER_SPACING</a> = &quot;perimeterSpacing&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the perimeter spacing. This is the distance between the connection point and the perimeter in pixels. When used in a vertex style, this applies to all incoming edges to floating ports (edges that terminate on the perimeter of the vertex). When used in an edge style, this spacing applies to the source and target separately, if they terminate in floating ports (on the perimeter of the vertex).  <a href="#ab72f25cea7e25d73ade53f50c4b5cece"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1988defb25af7887b4c5968af10525">STYLE_SPACING</a> = &quot;spacing&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the spacing. The value represents the spacing, in pixels, added to each side of a label in a vertex (style applies to vertices only).  <a href="#aed1988defb25af7887b4c5968af10525"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8109d6144dd0fb35545f36d02b2d05d9">STYLE_SPACING_TOP</a> = &quot;spacingTop&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the spacingTop style. The value represents the spacing, in pixels, added to the top side of a label in a vertex (style applies to vertices only).  <a href="#a8109d6144dd0fb35545f36d02b2d05d9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac22ee8a630a6114a3e05f9f0c1a13c1c">STYLE_SPACING_LEFT</a> = &quot;spacingLeft&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the spacingLeft style. The value represents the spacing, in pixels, added to the left side of a label in a vertex (style applies to vertices only).  <a href="#ac22ee8a630a6114a3e05f9f0c1a13c1c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9f99069bf0e43bc91b86782829e305a">STYLE_SPACING_BOTTOM</a> = &quot;spacingBottom&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only).  <a href="#ae9f99069bf0e43bc91b86782829e305a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a311f21a164824043c00dd88d0faabca7">STYLE_SPACING_RIGHT</a> = &quot;spacingRight&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only).  <a href="#a311f21a164824043c00dd88d0faabca7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a09777af53361249d4cdb30f2124c216f">STYLE_HORIZONTAL</a> = &quot;horizontal&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the horizontal style. Possible values are <em>true</em> or <em>false</em>. This value only applies to vertices. If the <em>STYLE_SHAPE</em> is <em>SHAPE_SWIMLANE</em> a value of <em>false</em> indicates that the swimlane should be drawn vertically, <em>true</em> indicates to draw it horizontally. If the shape style does not indicate that this vertex is a swimlane, this value affects only whether the label is drawn horizontally or vertically.  <a href="#a09777af53361249d4cdb30f2124c216f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a622b5e7e3ca2cb86085df0cd3d5e26c1">STYLE_DIRECTION</a> = &quot;direction&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the direction style. The direction style is used to specify the direction of certain shapes (eg. <em>mxTriangle</em>). Possible values are <em>DIRECTION_EAST</em> (default), <em>DIRECTION_WEST</em>, <em>DIRECTION_NORTH</em> and <em>DIRECTION_SOUTH</em>. This value only applies to vertices.  <a href="#a622b5e7e3ca2cb86085df0cd3d5e26c1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aee1f5bfab933c72838a55bb4e73b3e7f">STYLE_ELBOW</a> = &quot;elbow&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the elbow style. Possible values are <em>ELBOW_HORIZONTAL</em> and <em>ELBOW_VERTICAL</em>. Default is <em>ELBOW_HORIZONTAL</em>. This defines how the three segment orthogonal edge style leaves its terminal vertices. The vertical style leaves the terminal vertices at the top and bottom sides.  <a href="#aee1f5bfab933c72838a55bb4e73b3e7f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5a347e065f8c5005963216973e2a9115">STYLE_FONTCOLOR</a> = &quot;fontColor&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the fontColor style. The value is type <em>String</em> and of the expression supported by ColorTranslator.FromHtml.  <a href="#a5a347e065f8c5005963216973e2a9115"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3aa95b051c6493fa620c6b0c1cd3b4dd">STYLE_FONTFAMILY</a> = &quot;fontFamily&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the fontFamily style. Possible values are names such as Arial; Dialog; Verdana; Times New Roman. The value is of type <em>String</em>.  <a href="#a3aa95b051c6493fa620c6b0c1cd3b4dd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad212fbdc79fc097012001bad8d884503">STYLE_FONTSIZE</a> = &quot;fontSize&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the fontSize style (in points). The type of the value is <em>int</em>.  <a href="#ad212fbdc79fc097012001bad8d884503"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad7f0c932b0e6155f8941e3de4550cb7a">STYLE_FONTSTYLE</a> = &quot;fontStyle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the fontStyle style. Values may be any logical AND (sum) of FONT_BOLD, FONT_ITALIC, FONT_UNDERLINE and FONT_SHADOW. The type of the value is <em>int</em>.  <a href="#ad7f0c932b0e6155f8941e3de4550cb7a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af98dc98bd5924306a17ea59f72a1fc3b">STYLE_SHAPE</a> = &quot;shape&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the shape style. Possible values are any of the SHAPE_* constants.  <a href="#af98dc98bd5924306a17ea59f72a1fc3b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8861eab51bc7b08c6275a70f2f4172cb">STYLE_EDGE</a> = &quot;edgeStyle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Takes a function that creates points. Possible values are the functions defined in <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html" title="Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE...">mxEdgeStyle</a>.  <a href="#a8861eab51bc7b08c6275a70f2f4172cb"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a150d6d5f6ee8fdeca8ef3c03fc554b81">STYLE_LOOP</a> = &quot;loopStyle&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the loop style. Possible values are the functions defined in <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html" title="Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE...">mxEdgeStyle</a>.  <a href="#a150d6d5f6ee8fdeca8ef3c03fc554b81"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae4a649d907b8a4f9eb7915d0232a0052">STYLE_ROUTING_CENTER_X</a> = &quot;routingCenterX&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the horizontal routing center. Possible values are between -0.5 and 0.5. This is the relative offset from the center used for connecting edges. The type of this value is <em>float</em>.  <a href="#ae4a649d907b8a4f9eb7915d0232a0052"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2090b3fa05fc8a9b9584039656b3d59d">STYLE_ROUTING_CENTER_Y</a> = &quot;routingCenterY&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the key for the vertical routing center. Possible values are between -0.5 and 0.5. This is the relative offset from the center used for connecting edges. The type of this value is <em>float</em>.  <a href="#a2090b3fa05fc8a9b9584039656b3d59d"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Defines various global constants. </p>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="aed1232be429b6c5cbd6bbbfe9f8f94a8"></a><!-- doxytag: member="com::mxgraph::mxConstants::ALIGN_BOTTOM" ref="aed1232be429b6c5cbd6bbbfe9f8f94a8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1232be429b6c5cbd6bbbfe9f8f94a8">com::mxgraph::mxConstants::ALIGN_BOTTOM</a> = &quot;bottom&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ALIGN_BOTTOM. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a671d1091ad0216097f171e35721407be"></a><!-- doxytag: member="com::mxgraph::mxConstants::ALIGN_CENTER" ref="a671d1091ad0216097f171e35721407be" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a671d1091ad0216097f171e35721407be">com::mxgraph::mxConstants::ALIGN_CENTER</a> = &quot;center&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ALIGN_CENTER. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a581f2bde5ccd9a5e4d34dee1d22b9e2f"></a><!-- doxytag: member="com::mxgraph::mxConstants::ALIGN_LEFT" ref="a581f2bde5ccd9a5e4d34dee1d22b9e2f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a581f2bde5ccd9a5e4d34dee1d22b9e2f">com::mxgraph::mxConstants::ALIGN_LEFT</a> = &quot;left&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ALIGN_LEFT. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae3911ed6204528cdbbe551c4d0ff90fa"></a><!-- doxytag: member="com::mxgraph::mxConstants::ALIGN_MIDDLE" ref="ae3911ed6204528cdbbe551c4d0ff90fa" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae3911ed6204528cdbbe551c4d0ff90fa">com::mxgraph::mxConstants::ALIGN_MIDDLE</a> = &quot;middle&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ALIGN_MIDDLE. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa4e34648d83cd7460d0cb20ee0403d8a"></a><!-- doxytag: member="com::mxgraph::mxConstants::ALIGN_RIGHT" ref="aa4e34648d83cd7460d0cb20ee0403d8a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4e34648d83cd7460d0cb20ee0403d8a">com::mxgraph::mxConstants::ALIGN_RIGHT</a> = &quot;right&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ALIGN_RIGHT. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3e3b58384536c29db72b8b6e0766fe5b"></a><!-- doxytag: member="com::mxgraph::mxConstants::ALIGN_TOP" ref="a3e3b58384536c29db72b8b6e0766fe5b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e3b58384536c29db72b8b6e0766fe5b">com::mxgraph::mxConstants::ALIGN_TOP</a> = &quot;top&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ALIGN_TOP. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a97bae058e18a204853e81ef523c27cbe"></a><!-- doxytag: member="com::mxgraph::mxConstants::ARROW_BLOCK" ref="a97bae058e18a204853e81ef523c27cbe" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97bae058e18a204853e81ef523c27cbe">com::mxgraph::mxConstants::ARROW_BLOCK</a> = &quot;block&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ARROW_BLOCK. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0bc3c5c7fd2dc102d59e667c9648ebfc"></a><!-- doxytag: member="com::mxgraph::mxConstants::ARROW_CLASSIC" ref="a0bc3c5c7fd2dc102d59e667c9648ebfc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bc3c5c7fd2dc102d59e667c9648ebfc">com::mxgraph::mxConstants::ARROW_CLASSIC</a> = &quot;classic&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ARROW_CLASSIC. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adabfcaff7df74535caf6c51ea2823139"></a><!-- doxytag: member="com::mxgraph::mxConstants::ARROW_DIAMOND" ref="adabfcaff7df74535caf6c51ea2823139" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adabfcaff7df74535caf6c51ea2823139">com::mxgraph::mxConstants::ARROW_DIAMOND</a> = &quot;diamond&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ARROW_OPEN. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3ccb95f20cf9ad4f620356ba5c85613c"></a><!-- doxytag: member="com::mxgraph::mxConstants::ARROW_OPEN" ref="a3ccb95f20cf9ad4f620356ba5c85613c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ccb95f20cf9ad4f620356ba5c85613c">com::mxgraph::mxConstants::ARROW_OPEN</a> = &quot;open&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ARROW_OPEN. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5f89ad5538a6009a1c76e3b8cd3979df"></a><!-- doxytag: member="com::mxgraph::mxConstants::ARROW_OVAL" ref="a5f89ad5538a6009a1c76e3b8cd3979df" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5f89ad5538a6009a1c76e3b8cd3979df">com::mxgraph::mxConstants::ARROW_OVAL</a> = &quot;oval&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ARROW_BLOCK. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad42ffebd7848e9a459db4542fb931be9"></a><!-- doxytag: member="com::mxgraph::mxConstants::ARROW_SIZE" ref="ad42ffebd7848e9a459db4542fb931be9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad42ffebd7848e9a459db4542fb931be9">com::mxgraph::mxConstants::ARROW_SIZE</a> = 30<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the size of the arrowhead in the arrow shape. Default is 30. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6cc6975b57bdba6d460539a237557082"></a><!-- doxytag: member="com::mxgraph::mxConstants::ARROW_SPACING" ref="a6cc6975b57bdba6d460539a237557082" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6cc6975b57bdba6d460539a237557082">com::mxgraph::mxConstants::ARROW_SPACING</a> = 10<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the spacing between the arrow shape and its terminals. Default is 10. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6fdb559821134de6b14cb4f6e7b6df8e"></a><!-- doxytag: member="com::mxgraph::mxConstants::ARROW_WIDTH" ref="a6fdb559821134de6b14cb4f6e7b6df8e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6fdb559821134de6b14cb4f6e7b6df8e">com::mxgraph::mxConstants::ARROW_WIDTH</a> = 30<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the width of the arrow shape. Default is 30. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa8f6be2c9e0c22d5a3fc3e7ffb78e091"></a><!-- doxytag: member="com::mxgraph::mxConstants::DEFAULT_FONTFAMILY" ref="aa8f6be2c9e0c22d5a3fc3e7ffb78e091" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa8f6be2c9e0c22d5a3fc3e7ffb78e091">com::mxgraph::mxConstants::DEFAULT_FONTFAMILY</a> = &quot;Arial&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default family for fonts. Default is Arial. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3e51abdecb7408a419abc5dc1add483d"></a><!-- doxytag: member="com::mxgraph::mxConstants::DEFAULT_FONTSIZE" ref="a3e51abdecb7408a419abc5dc1add483d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">float <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e51abdecb7408a419abc5dc1add483d">com::mxgraph::mxConstants::DEFAULT_FONTSIZE</a> = 11<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default size for fonts. Value is 11. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa4681077d65955938ae5f0a1d92cf4d9"></a><!-- doxytag: member="com::mxgraph::mxConstants::DEFAULT_HOTSPOT" ref="aa4681077d65955938ae5f0a1d92cf4d9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4681077d65955938ae5f0a1d92cf4d9">com::mxgraph::mxConstants::DEFAULT_HOTSPOT</a> = 0.3<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the portion of the cell which is. </p>
    +<p>to be used as a connectable region. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a501de491da4bfaca8212c186c0dd5010"></a><!-- doxytag: member="com::mxgraph::mxConstants::DEFAULT_IMAGESIZE" ref="a501de491da4bfaca8212c186c0dd5010" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a501de491da4bfaca8212c186c0dd5010">com::mxgraph::mxConstants::DEFAULT_IMAGESIZE</a> = 24<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the default width and height for images used in the label shape. Default is 24. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afcaa2814121d0790947f213d58b4259e"></a><!-- doxytag: member="com::mxgraph::mxConstants::DEFAULT_MARKERSIZE" ref="afcaa2814121d0790947f213d58b4259e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">float <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afcaa2814121d0790947f213d58b4259e">com::mxgraph::mxConstants::DEFAULT_MARKERSIZE</a> = 6<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default size for markers. Value is 6. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afff87a571af579f46ec2c3862704a58a"></a><!-- doxytag: member="com::mxgraph::mxConstants::DEFAULT_STARTSIZE" ref="afff87a571af579f46ec2c3862704a58a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">float <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afff87a571af579f46ec2c3862704a58a">com::mxgraph::mxConstants::DEFAULT_STARTSIZE</a> = 40<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the default start size for swimlanes. Default is 40. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a46965709b8201a793fd44e0d247d20f0"></a><!-- doxytag: member="com::mxgraph::mxConstants::DIRECTION_EAST" ref="a46965709b8201a793fd44e0d247d20f0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a46965709b8201a793fd44e0d247d20f0">com::mxgraph::mxConstants::DIRECTION_EAST</a> = &quot;east&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>DIRECTION_EAST </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aae4487ca29086764e8e5b38540f1df95"></a><!-- doxytag: member="com::mxgraph::mxConstants::DIRECTION_NORTH" ref="aae4487ca29086764e8e5b38540f1df95" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aae4487ca29086764e8e5b38540f1df95">com::mxgraph::mxConstants::DIRECTION_NORTH</a> = &quot;north&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>DIRECTION_NORTH </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad87d063a90714a2f565ac4d74a0ba309"></a><!-- doxytag: member="com::mxgraph::mxConstants::DIRECTION_SOUTH" ref="ad87d063a90714a2f565ac4d74a0ba309" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad87d063a90714a2f565ac4d74a0ba309">com::mxgraph::mxConstants::DIRECTION_SOUTH</a> = &quot;south&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>DIRECTION_SOUTH </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0523a6e826d22b0b050a037e16096785"></a><!-- doxytag: member="com::mxgraph::mxConstants::DIRECTION_WEST" ref="a0523a6e826d22b0b050a037e16096785" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0523a6e826d22b0b050a037e16096785">com::mxgraph::mxConstants::DIRECTION_WEST</a> = &quot;west&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>DIRECTION_WEST </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aeecc6e2dc1dbc264179acd4681f83a6b"></a><!-- doxytag: member="com::mxgraph::mxConstants::EDGESTYLE_ELBOW" ref="aeecc6e2dc1dbc264179acd4681f83a6b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeecc6e2dc1dbc264179acd4681f83a6b">com::mxgraph::mxConstants::EDGESTYLE_ELBOW</a> = &quot;elbowEdgeStyle&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Name of the elbow edge style. Can be used as a string value. </p>
    +<p>for the STYLE_EDGE style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a422ba84582422f22deb1f0d896161f2d"></a><!-- doxytag: member="com::mxgraph::mxConstants::EDGESTYLE_ENTITY_RELATION" ref="a422ba84582422f22deb1f0d896161f2d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a422ba84582422f22deb1f0d896161f2d">com::mxgraph::mxConstants::EDGESTYLE_ENTITY_RELATION</a> = &quot;entityRelationEdgeStyle&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Name of the entity relation edge style. Can be used as a string value. </p>
    +<p>for the STYLE_EDGE style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1fe6d038ca967a9fc70d4aa35d363aff"></a><!-- doxytag: member="com::mxgraph::mxConstants::EDGESTYLE_LOOP" ref="a1fe6d038ca967a9fc70d4aa35d363aff" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1fe6d038ca967a9fc70d4aa35d363aff">com::mxgraph::mxConstants::EDGESTYLE_LOOP</a> = &quot;loopEdgeStyle&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Name of the loop edge style. Can be used as a string value. </p>
    +<p>for the STYLE_EDGE style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4e5ff3580d1f5c565e973229f42ad2c4"></a><!-- doxytag: member="com::mxgraph::mxConstants::EDGESTYLE_SIDETOSIDE" ref="a4e5ff3580d1f5c565e973229f42ad2c4" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4e5ff3580d1f5c565e973229f42ad2c4">com::mxgraph::mxConstants::EDGESTYLE_SIDETOSIDE</a> = &quot;sideToSideEdgeStyle&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Name of the side to side edge style. Can be used as a string value. </p>
    +<p>for the STYLE_EDGE style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adb64f29e53c3b1cc0d597eb4172cef1a"></a><!-- doxytag: member="com::mxgraph::mxConstants::EDGESTYLE_TOPTOBOTTOM" ref="adb64f29e53c3b1cc0d597eb4172cef1a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adb64f29e53c3b1cc0d597eb4172cef1a">com::mxgraph::mxConstants::EDGESTYLE_TOPTOBOTTOM</a> = &quot;topToBottomEdgeStyle&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Name of the top to bottom edge style. Can be used as a string value. </p>
    +<p>for the STYLE_EDGE style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac428d7bb10c30afea58b55092c6e8299"></a><!-- doxytag: member="com::mxgraph::mxConstants::ELBOW_HORIZONTAL" ref="ac428d7bb10c30afea58b55092c6e8299" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac428d7bb10c30afea58b55092c6e8299">com::mxgraph::mxConstants::ELBOW_HORIZONTAL</a> = &quot;horizontal&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ELBOW_HORIZONTAL. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a017feb6b31cc6ab8d3aaaf8fb8636f46"></a><!-- doxytag: member="com::mxgraph::mxConstants::ELBOW_VERTICAL" ref="a017feb6b31cc6ab8d3aaaf8fb8636f46" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a017feb6b31cc6ab8d3aaaf8fb8636f46">com::mxgraph::mxConstants::ELBOW_VERTICAL</a> = &quot;vertical&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>ELBOW_VERTICAL. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a440e1f7c83e8e1d5d6ae0dbacd2562f6"></a><!-- doxytag: member="com::mxgraph::mxConstants::ENTITY_SEGMENT" ref="a440e1f7c83e8e1d5d6ae0dbacd2562f6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a440e1f7c83e8e1d5d6ae0dbacd2562f6">com::mxgraph::mxConstants::ENTITY_SEGMENT</a> = 30<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the length of the horizontal segment of an Entity Relation. This can be overridden using <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2d77891c86546ce52398037d0afe3ef2" title="Defines the key for the segment style. The type of this value is float and the value...">mxConstants.STYLE_SEGMENT</a> style. Default is 30. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5611c5488a8a90543df8259ae5a038cb"></a><!-- doxytag: member="com::mxgraph::mxConstants::FONT_BOLD" ref="a5611c5488a8a90543df8259ae5a038cb" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5611c5488a8a90543df8259ae5a038cb">com::mxgraph::mxConstants::FONT_BOLD</a> = 1</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>FONT_BOLD. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa06301a225a73f6f3b794eff609e8025"></a><!-- doxytag: member="com::mxgraph::mxConstants::FONT_ITALIC" ref="aa06301a225a73f6f3b794eff609e8025" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa06301a225a73f6f3b794eff609e8025">com::mxgraph::mxConstants::FONT_ITALIC</a> = 2</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>FONT_ITALIC. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a62bfee4263ad5c201c79256c117cd1b4"></a><!-- doxytag: member="com::mxgraph::mxConstants::FONT_SHADOW" ref="a62bfee4263ad5c201c79256c117cd1b4" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a62bfee4263ad5c201c79256c117cd1b4">com::mxgraph::mxConstants::FONT_SHADOW</a> = 8</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>FONT_SHADOW. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0d46345b5eb967100c37513709cbf4d9"></a><!-- doxytag: member="com::mxgraph::mxConstants::FONT_SIZEFACTOR" ref="a0d46345b5eb967100c37513709cbf4d9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0d46345b5eb967100c37513709cbf4d9">com::mxgraph::mxConstants::FONT_SIZEFACTOR</a> = 0.75<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the factor to multiply font sizes in points to be used as font sizes in em. Default is 1/1.33 = 0.75. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6d1d4f95f78df944b58e33dadb6434e0"></a><!-- doxytag: member="com::mxgraph::mxConstants::FONT_UNDERLINE" ref="a6d1d4f95f78df944b58e33dadb6434e0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d1d4f95f78df944b58e33dadb6434e0">com::mxgraph::mxConstants::FONT_UNDERLINE</a> = 4</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>FONT_UNDERLINE. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ada723b1431e72dcb83ade63bbb01f73a"></a><!-- doxytag: member="com::mxgraph::mxConstants::LABEL_INSET" ref="ada723b1431e72dcb83ade63bbb01f73a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada723b1431e72dcb83ade63bbb01f73a">com::mxgraph::mxConstants::LABEL_INSET</a> = 3<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the inset in absolute pixels between the label bounding box and the label text. Default is 3. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a54c593c784f39e9ff7c6b30a85b9636f"></a><!-- doxytag: member="com::mxgraph::mxConstants::LINE_ARCSIZE" ref="a54c593c784f39e9ff7c6b30a85b9636f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a54c593c784f39e9ff7c6b30a85b9636f">com::mxgraph::mxConstants::LINE_ARCSIZE</a> = 10<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the size of the arcs for rounded edges. Default is 10. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab5f4a464bcb289fb32e0b4673b4d44df"></a><!-- doxytag: member="com::mxgraph::mxConstants::LINESPACING" ref="ab5f4a464bcb289fb32e0b4673b4d44df" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab5f4a464bcb289fb32e0b4673b4d44df">com::mxgraph::mxConstants::LINESPACING</a> = 2<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the line spacing. Default is 2. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acbb9f2ff860f1f615001f00475c26357"></a><!-- doxytag: member="com::mxgraph::mxConstants::MIN_HOTSPOT_SIZE" ref="acbb9f2ff860f1f615001f00475c26357" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acbb9f2ff860f1f615001f00475c26357">com::mxgraph::mxConstants::MIN_HOTSPOT_SIZE</a> = 8<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the minimum size in pixels of the. </p>
    +<p>portion of the cell cell which is to be used as a connectable region. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1adacf0fd058343aa49474e68b2e9bc0"></a><!-- doxytag: member="com::mxgraph::mxConstants::NONE" ref="a1adacf0fd058343aa49474e68b2e9bc0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1adacf0fd058343aa49474e68b2e9bc0">com::mxgraph::mxConstants::NONE</a> = &quot;none&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the value for none. Default is "none". </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a28b704112d40b5bc8ec0a25036519461"></a><!-- doxytag: member="com::mxgraph::mxConstants::NS_SVG" ref="a28b704112d40b5bc8ec0a25036519461" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a28b704112d40b5bc8ec0a25036519461">com::mxgraph::mxConstants::NS_SVG</a> = &quot;http://www.w3.org/2000/svg&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the SVG namespace. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a57bbcd46e2282a8a8f3e5efd009f326f"></a><!-- doxytag: member="com::mxgraph::mxConstants::NS_XHTML" ref="a57bbcd46e2282a8a8f3e5efd009f326f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a57bbcd46e2282a8a8f3e5efd009f326f">com::mxgraph::mxConstants::NS_XHTML</a> = &quot;http://www.w3.org/1999/xhtml&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the XHTML namespace. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac215c18933e00eea92bb5bce420b6164"></a><!-- doxytag: member="com::mxgraph::mxConstants::NS_XLINK" ref="ac215c18933e00eea92bb5bce420b6164" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac215c18933e00eea92bb5bce420b6164">com::mxgraph::mxConstants::NS_XLINK</a> = &quot;http://www.w3.org/1999/xlink&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the XLink namespace. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a98221a8b8eda10e6d8f5537369f7aaa5"></a><!-- doxytag: member="com::mxgraph::mxConstants::PERIMETER_ELLIPSE" ref="a98221a8b8eda10e6d8f5537369f7aaa5" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98221a8b8eda10e6d8f5537369f7aaa5">com::mxgraph::mxConstants::PERIMETER_ELLIPSE</a> = &quot;ellipsePerimeter&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Name of the ellipse perimeter. Can be used as a string value. </p>
    +<p>for the STYLE_PERIMETER style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae0998d20af28656c081cf969afb40b99"></a><!-- doxytag: member="com::mxgraph::mxConstants::PERIMETER_RECTANGLE" ref="ae0998d20af28656c081cf969afb40b99" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae0998d20af28656c081cf969afb40b99">com::mxgraph::mxConstants::PERIMETER_RECTANGLE</a> = &quot;rectanglePerimeter&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Name of the rectangle perimeter. Can be used as a string value. </p>
    +<p>for the STYLE_PERIMETER style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9246707b04824ac40c547a28dc703549"></a><!-- doxytag: member="com::mxgraph::mxConstants::PERIMETER_RHOMBUS" ref="a9246707b04824ac40c547a28dc703549" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9246707b04824ac40c547a28dc703549">com::mxgraph::mxConstants::PERIMETER_RHOMBUS</a> = &quot;rhombusPerimeter&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Name of the rhombus perimeter. Can be used as a string value. </p>
    +<p>for the STYLE_PERIMETER style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a976f981a543eef57ee02bd91adad6519"></a><!-- doxytag: member="com::mxgraph::mxConstants::PERIMETER_TRIANGLE" ref="a976f981a543eef57ee02bd91adad6519" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a976f981a543eef57ee02bd91adad6519">com::mxgraph::mxConstants::PERIMETER_TRIANGLE</a> = &quot;trianglePerimeter&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Name of the triangle perimeter. Can be used as a string value. </p>
    +<p>for the STYLE_PERIMETER style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aabfe6def9b50358da2531c4d60dab841"></a><!-- doxytag: member="com::mxgraph::mxConstants::RECTANGLE_ROUNDING_FACTOR" ref="aabfe6def9b50358da2531c4d60dab841" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aabfe6def9b50358da2531c4d60dab841">com::mxgraph::mxConstants::RECTANGLE_ROUNDING_FACTOR</a> = 0.15<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the rounding factor for rounded rectangles in percent between 0 and 1. Values should be smaller than 0.5. Default is 0.15. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a01f9ce3eb19c4a4ba0cfddc329a2699a"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHADOW_OFFSETX" ref="a01f9ce3eb19c4a4ba0cfddc329a2699a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a01f9ce3eb19c4a4ba0cfddc329a2699a">com::mxgraph::mxConstants::SHADOW_OFFSETX</a> = 2<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the x-offset to be used for shadows. Default is 2. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2678e4921f6a202f3587442383abcbc6"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHADOW_OFFSETY" ref="a2678e4921f6a202f3587442383abcbc6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2678e4921f6a202f3587442383abcbc6">com::mxgraph::mxConstants::SHADOW_OFFSETY</a> = 3<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the y-offset to be used for shadows. Default is 3. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af7148385e3441968e5d15aa58ee2f665"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHADOWCOLOR" ref="af7148385e3441968e5d15aa58ee2f665" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Color <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7148385e3441968e5d15aa58ee2f665">com::mxgraph::mxConstants::SHADOWCOLOR</a> = Color.Gray<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the color to be used to draw shadows. Default is gray. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a72ed28d6c0495c8c7a920ae3c12b3688"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_ACTOR" ref="a72ed28d6c0495c8c7a920ae3c12b3688" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72ed28d6c0495c8c7a920ae3c12b3688">com::mxgraph::mxConstants::SHAPE_ACTOR</a> = &quot;actor&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_ACTOR. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac31197f8da77804a029048b7c9d3cad9"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_ARROW" ref="ac31197f8da77804a029048b7c9d3cad9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac31197f8da77804a029048b7c9d3cad9">com::mxgraph::mxConstants::SHAPE_ARROW</a> = &quot;arrow&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_ARROW. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ada54fd2aa9d7f5c90c070aaa0506b77c"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_CLOUD" ref="ada54fd2aa9d7f5c90c070aaa0506b77c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada54fd2aa9d7f5c90c070aaa0506b77c">com::mxgraph::mxConstants::SHAPE_CLOUD</a> = &quot;cloud&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_CLOUD. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab600b420af02458e82b7258f496cfb6d"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_CONNECTOR" ref="ab600b420af02458e82b7258f496cfb6d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab600b420af02458e82b7258f496cfb6d">com::mxgraph::mxConstants::SHAPE_CONNECTOR</a> = &quot;connector&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_CONNECTOR. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1f63bac0e7097a58663dc80da5f9b4a2"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_CYLINDER" ref="a1f63bac0e7097a58663dc80da5f9b4a2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1f63bac0e7097a58663dc80da5f9b4a2">com::mxgraph::mxConstants::SHAPE_CYLINDER</a> = &quot;cylinder&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_CYLINDER. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aea8932b267794b48cd6951efa11df7fa"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_DOUBLE_ELLIPSE" ref="aea8932b267794b48cd6951efa11df7fa" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea8932b267794b48cd6951efa11df7fa">com::mxgraph::mxConstants::SHAPE_DOUBLE_ELLIPSE</a> = &quot;doubleEllipse&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_DOUBLE_ELLIPSE. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a946407c9bf9eef6f921b7723899bad78"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_ELLIPSE" ref="a946407c9bf9eef6f921b7723899bad78" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a946407c9bf9eef6f921b7723899bad78">com::mxgraph::mxConstants::SHAPE_ELLIPSE</a> = &quot;ellipse&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_ELLIPSE. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3b6043b72e0e58c69ed4a1323cd1b166"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_HEXAGON" ref="a3b6043b72e0e58c69ed4a1323cd1b166" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3b6043b72e0e58c69ed4a1323cd1b166">com::mxgraph::mxConstants::SHAPE_HEXAGON</a> = &quot;hexagon&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_HEXAGON. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aec3c70fb4c28da7bc4f50c35dcec6c88"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_IMAGE" ref="aec3c70fb4c28da7bc4f50c35dcec6c88" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aec3c70fb4c28da7bc4f50c35dcec6c88">com::mxgraph::mxConstants::SHAPE_IMAGE</a> = &quot;image&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_IMAGE. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1dfdd4b69e8d8b195d90fbe13314c542"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_LABEL" ref="a1dfdd4b69e8d8b195d90fbe13314c542" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1dfdd4b69e8d8b195d90fbe13314c542">com::mxgraph::mxConstants::SHAPE_LABEL</a> = &quot;label&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_LABEL. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2fd007b2ccee5aa697cf29fb021a0583"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_LINE" ref="a2fd007b2ccee5aa697cf29fb021a0583" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fd007b2ccee5aa697cf29fb021a0583">com::mxgraph::mxConstants::SHAPE_LINE</a> = &quot;line&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_LINE. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2acf2ee5738a15bde35078e86269e45b"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_RECTANGLE" ref="a2acf2ee5738a15bde35078e86269e45b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2acf2ee5738a15bde35078e86269e45b">com::mxgraph::mxConstants::SHAPE_RECTANGLE</a> = &quot;rectangle&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_RECTANGLE. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aea7159f2588d2ac58bc9159d5d4d03df"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_RHOMBUS" ref="aea7159f2588d2ac58bc9159d5d4d03df" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea7159f2588d2ac58bc9159d5d4d03df">com::mxgraph::mxConstants::SHAPE_RHOMBUS</a> = &quot;rhombus&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_RHOMBUS. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6c82fb9d8b61d4d54bf26941203065a6"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_SWIMLANE" ref="a6c82fb9d8b61d4d54bf26941203065a6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6c82fb9d8b61d4d54bf26941203065a6">com::mxgraph::mxConstants::SHAPE_SWIMLANE</a> = &quot;swimlane&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_SWIMLANE. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a96dcc90c9e5cd652bf6c4b36f5c5494b"></a><!-- doxytag: member="com::mxgraph::mxConstants::SHAPE_TRIANGLE" ref="a96dcc90c9e5cd652bf6c4b36f5c5494b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a96dcc90c9e5cd652bf6c4b36f5c5494b">com::mxgraph::mxConstants::SHAPE_TRIANGLE</a> = &quot;triangle&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>SHAPE_TRIANGLE. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aff2785f47c407555c479638d61236485"></a><!-- doxytag: member="com::mxgraph::mxConstants::STENCIL_SHADOW_OPACITY" ref="aff2785f47c407555c479638d61236485" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aff2785f47c407555c479638d61236485">com::mxgraph::mxConstants::STENCIL_SHADOW_OPACITY</a> = 1<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the default opacity for stencils shadows. Default is 1. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2ad8d18c2859195ee32682ddeb78ee45"></a><!-- doxytag: member="com::mxgraph::mxConstants::STENCIL_SHADOWCOLOR" ref="a2ad8d18c2859195ee32682ddeb78ee45" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2ad8d18c2859195ee32682ddeb78ee45">com::mxgraph::mxConstants::STENCIL_SHADOWCOLOR</a> = &quot;gray&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the default shadow color for stencils. Default is "gray". </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0bf2ade1d2e0f403d277f6f8fbfab04c"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ALIGN" ref="a0bf2ade1d2e0f403d277f6f8fbfab04c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bf2ade1d2e0f403d277f6f8fbfab04c">com::mxgraph::mxConstants::STYLE_ALIGN</a> = &quot;align&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the align style. Possible values are <em>ALIGN_LEFT</em>, <em>ALIGN_CENTER</em> and <em>ALIGN_RIGHT</em>. This value defines how the lines of the label are horizontally aligned. <em>ALIGN_LEFT</em> mean label text lines are aligned to left of the label bounds, <em>ALIGN_RIGHT</em> to the right of the label bounds and <em>ALIGN_CENTER</em> means the center of the text lines are aligned in the center of the label bounds. Note this value doesn't affect the positioning of the overall label bounds relative to the vertex, to move the label bounds horizontally, use <em>STYLE_LABEL_POSITION</em> </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a72282dc7b4403879583e92429f59408c"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_DASHED" ref="a72282dc7b4403879583e92429f59408c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72282dc7b4403879583e92429f59408c">com::mxgraph::mxConstants::STYLE_DASHED</a> = &quot;dashed&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the dashed style. The type of this value is <em>boolean</em> and the value determines whether or not an edge or border is drawn with a dashed pattern along the line. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a622b5e7e3ca2cb86085df0cd3d5e26c1"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_DIRECTION" ref="a622b5e7e3ca2cb86085df0cd3d5e26c1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a622b5e7e3ca2cb86085df0cd3d5e26c1">com::mxgraph::mxConstants::STYLE_DIRECTION</a> = &quot;direction&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the direction style. The direction style is used to specify the direction of certain shapes (eg. <em>mxTriangle</em>). Possible values are <em>DIRECTION_EAST</em> (default), <em>DIRECTION_WEST</em>, <em>DIRECTION_NORTH</em> and <em>DIRECTION_SOUTH</em>. This value only applies to vertices. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8861eab51bc7b08c6275a70f2f4172cb"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_EDGE" ref="a8861eab51bc7b08c6275a70f2f4172cb" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8861eab51bc7b08c6275a70f2f4172cb">com::mxgraph::mxConstants::STYLE_EDGE</a> = &quot;edgeStyle&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Takes a function that creates points. Possible values are the functions defined in <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html" title="Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE...">mxEdgeStyle</a>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aee1f5bfab933c72838a55bb4e73b3e7f"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ELBOW" ref="aee1f5bfab933c72838a55bb4e73b3e7f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aee1f5bfab933c72838a55bb4e73b3e7f">com::mxgraph::mxConstants::STYLE_ELBOW</a> = &quot;elbow&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the elbow style. Possible values are <em>ELBOW_HORIZONTAL</em> and <em>ELBOW_VERTICAL</em>. Default is <em>ELBOW_HORIZONTAL</em>. This defines how the three segment orthogonal edge style leaves its terminal vertices. The vertical style leaves the terminal vertices at the top and bottom sides. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1088d6100e39467aedbcaf6b5062317a"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ENDARROW" ref="a1088d6100e39467aedbcaf6b5062317a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1088d6100e39467aedbcaf6b5062317a">com::mxgraph::mxConstants::STYLE_ENDARROW</a> = &quot;endArrow&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the endArrow style. Possible values are all constants in this class that start with ARROW_. This style is supported in the mxConnector shape. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aeb6c0f3b0eb4303fb1d84494261148d8"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ENDSIZE" ref="aeb6c0f3b0eb4303fb1d84494261148d8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeb6c0f3b0eb4303fb1d84494261148d8">com::mxgraph::mxConstants::STYLE_ENDSIZE</a> = &quot;endSize&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the endSize style. The type of this value is <em>float</em> and the value represents the size of the end marker in pixels. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a97c58e9edf1fbcb66728d41f3f3e921b"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ENTRY_PERIMETER" ref="a97c58e9edf1fbcb66728d41f3f3e921b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97c58e9edf1fbcb66728d41f3f3e921b">com::mxgraph::mxConstants::STYLE_ENTRY_PERIMETER</a> = &quot;entryPerimeter&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines if the perimeter should be used to find the exact entry point. </p>
    +<p>along the perimeter of the target. Possible values are 0 (false) and 1 (true). Default is 1 (true). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa33b112c7630d445fb16560f941b460b"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ENTRY_X" ref="aa33b112c7630d445fb16560f941b460b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa33b112c7630d445fb16560f941b460b">com::mxgraph::mxConstants::STYLE_ENTRY_X</a> = &quot;entryX&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the horizontal relative coordinate connection point. </p>
    +<p>of an edge with its target terminal. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac9c08ec34c37cd6367b2c6c61a8d040d"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ENTRY_Y" ref="ac9c08ec34c37cd6367b2c6c61a8d040d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac9c08ec34c37cd6367b2c6c61a8d040d">com::mxgraph::mxConstants::STYLE_ENTRY_Y</a> = &quot;entryY&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the vertical relative coordinate connection point. </p>
    +<p>of an edge with its target terminal. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7aa69b39575100511568fc5d062b7c28"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_EXIT_PERIMETER" ref="a7aa69b39575100511568fc5d062b7c28" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7aa69b39575100511568fc5d062b7c28">com::mxgraph::mxConstants::STYLE_EXIT_PERIMETER</a> = &quot;exitPerimeter&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines if the perimeter should be used to find the exact entry point. </p>
    +<p>along the perimeter of the source. Possible values are 0 (false) and 1 (true). Default is 1 (true). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a98d483b298c714fc1d4f86e9dea1d6f3"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_EXIT_X" ref="a98d483b298c714fc1d4f86e9dea1d6f3" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98d483b298c714fc1d4f86e9dea1d6f3">com::mxgraph::mxConstants::STYLE_EXIT_X</a> = &quot;exitX&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the horizontal relative coordinate connection point. </p>
    +<p>of an edge with its source terminal. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1216d1b2c024ab902cb5be3f0c16692b"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_EXIT_Y" ref="a1216d1b2c024ab902cb5be3f0c16692b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1216d1b2c024ab902cb5be3f0c16692b">com::mxgraph::mxConstants::STYLE_EXIT_Y</a> = &quot;exitY&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the vertical relative coordinate connection point. </p>
    +<p>of an edge with its source terminal. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3dc99c9389e68fcccf1c2b9251dff65e"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_FILLCOLOR" ref="a3dc99c9389e68fcccf1c2b9251dff65e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3dc99c9389e68fcccf1c2b9251dff65e">com::mxgraph::mxConstants::STYLE_FILLCOLOR</a> = &quot;fillColor&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the fillColor style. The value is a string expression supported by ColorTranslator.FromHtml. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5a347e065f8c5005963216973e2a9115"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_FONTCOLOR" ref="a5a347e065f8c5005963216973e2a9115" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5a347e065f8c5005963216973e2a9115">com::mxgraph::mxConstants::STYLE_FONTCOLOR</a> = &quot;fontColor&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the fontColor style. The value is type <em>String</em> and of the expression supported by ColorTranslator.FromHtml. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3aa95b051c6493fa620c6b0c1cd3b4dd"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_FONTFAMILY" ref="a3aa95b051c6493fa620c6b0c1cd3b4dd" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3aa95b051c6493fa620c6b0c1cd3b4dd">com::mxgraph::mxConstants::STYLE_FONTFAMILY</a> = &quot;fontFamily&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the fontFamily style. Possible values are names such as Arial; Dialog; Verdana; Times New Roman. The value is of type <em>String</em>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad212fbdc79fc097012001bad8d884503"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_FONTSIZE" ref="ad212fbdc79fc097012001bad8d884503" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad212fbdc79fc097012001bad8d884503">com::mxgraph::mxConstants::STYLE_FONTSIZE</a> = &quot;fontSize&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the fontSize style (in points). The type of the value is <em>int</em>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad7f0c932b0e6155f8941e3de4550cb7a"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_FONTSTYLE" ref="ad7f0c932b0e6155f8941e3de4550cb7a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad7f0c932b0e6155f8941e3de4550cb7a">com::mxgraph::mxConstants::STYLE_FONTSTYLE</a> = &quot;fontStyle&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the fontStyle style. Values may be any logical AND (sum) of FONT_BOLD, FONT_ITALIC, FONT_UNDERLINE and FONT_SHADOW. The type of the value is <em>int</em>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af7a5d296e06edc4895e68f1032d0eb21"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_GLASS" ref="af7a5d296e06edc4895e68f1032d0eb21" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7a5d296e06edc4895e68f1032d0eb21">com::mxgraph::mxConstants::STYLE_GLASS</a> = &quot;glass&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the glass style. Possible values are 0 (disabled) and 1(enabled). The default value is 0. This is used in mxLabel. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa5ce6cef515cd3b980ba2c16efddcb84"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_GRADIENT_DIRECTION" ref="aa5ce6cef515cd3b980ba2c16efddcb84" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa5ce6cef515cd3b980ba2c16efddcb84">com::mxgraph::mxConstants::STYLE_GRADIENT_DIRECTION</a> = &quot;gradientDirection&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the gradient direction. Possible values are <em>DIRECTION_EAST</em>, <em>DIRECTION_WEST</em>, <em>DIRECTION_NORTH</em> and <em>DIRECTION_SOUTH</em>. Default is <em>DIRECTION_SOUTH</em>. Generally, and by default in <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a>, gradient painting is done from the value of <em>STYLE_FILLCOLOR</em> to the value of <em>STYLE_GRADIENTCOLOR</em>. Taking the example of <em>DIRECTION_NORTH</em>, this means <em>STYLE_FILLCOLOR</em> color at the bottom of paint pattern and <em>STYLE_GRADIENTCOLOR</em> at top, with a gradient in-between. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a89ed61c1c831f8fdbbb73cb61a4b0893"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_GRADIENTCOLOR" ref="a89ed61c1c831f8fdbbb73cb61a4b0893" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a89ed61c1c831f8fdbbb73cb61a4b0893">com::mxgraph::mxConstants::STYLE_GRADIENTCOLOR</a> = &quot;gradientColor&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the gradientColor style. The value is a string expression supported by ColorTranslator.FromHtml. This is ignored if no fill color is defined. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a09777af53361249d4cdb30f2124c216f"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_HORIZONTAL" ref="a09777af53361249d4cdb30f2124c216f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a09777af53361249d4cdb30f2124c216f">com::mxgraph::mxConstants::STYLE_HORIZONTAL</a> = &quot;horizontal&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the horizontal style. Possible values are <em>true</em> or <em>false</em>. This value only applies to vertices. If the <em>STYLE_SHAPE</em> is <em>SHAPE_SWIMLANE</em> a value of <em>false</em> indicates that the swimlane should be drawn vertically, <em>true</em> indicates to draw it horizontally. If the shape style does not indicate that this vertex is a swimlane, this value affects only whether the label is drawn horizontally or vertically. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae7fbf6ef9404b878005cf8ae4a7c6d69"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_IMAGE" ref="ae7fbf6ef9404b878005cf8ae4a7c6d69" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae7fbf6ef9404b878005cf8ae4a7c6d69">com::mxgraph::mxConstants::STYLE_IMAGE</a> = &quot;image&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the image style. Possible values are any image URL, registered key in mxImageResources or short data URI as defined in <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html" title="Maps from keys to base64 encoded images or file locations. All values must be URLs...">mxImageBundle</a>. The type of the value is <em>String</em>. This is the path to the image to image that is to be displayed within the label of a vertex. See mxGraphics2DCanvas.getImageForStyle, loadImage and setImageBasePath on how the image URL is resolved. Finally, mxUtils.loadImage is used for loading the image for a given URL. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9c9b30a365244f1ead9c4376ff939278"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_IMAGE_ALIGN" ref="a9c9b30a365244f1ead9c4376ff939278" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9c9b30a365244f1ead9c4376ff939278">com::mxgraph::mxConstants::STYLE_IMAGE_ALIGN</a> = &quot;imageAlign&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the align style. Possible values are <em>ALIGN_LEFT</em>, <em>ALIGN_CENTER</em> and <em>ALIGN_RIGHT</em>. The value defines how any image in the vertex label is aligned horizontally within the label bounds of a SHAPE_LABEL shape. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a479c79822f87ac0ff75a3b737920dd74"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_IMAGE_BACKGROUND" ref="a479c79822f87ac0ff75a3b737920dd74" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a479c79822f87ac0ff75a3b737920dd74">com::mxgraph::mxConstants::STYLE_IMAGE_BACKGROUND</a> = &quot;imageBackground&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the image background color. This style is only used. </p>
    +<p>for image shapes. Possible values are all HTML color names or HEX codes. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a27ad421ddf299ead3c232023968ce10a"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_IMAGE_BORDER" ref="a27ad421ddf299ead3c232023968ce10a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a27ad421ddf299ead3c232023968ce10a">com::mxgraph::mxConstants::STYLE_IMAGE_BORDER</a> = &quot;imageBorder&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the image border color. This style is only used for. </p>
    +<p>image shapes. Possible values are all HTML color names or HEX codes. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af855ae060582a396e363384564417408"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_IMAGE_FLIPH" ref="af855ae060582a396e363384564417408" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af855ae060582a396e363384564417408">com::mxgraph::mxConstants::STYLE_IMAGE_FLIPH</a> = &quot;imageFlipH&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the horizontal image flip. This style is only used in mxImageShape. Possible values are 0 and 1. Default is 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad90975559c0881df119c6415572bfa29"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_IMAGE_FLIPV" ref="ad90975559c0881df119c6415572bfa29" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad90975559c0881df119c6415572bfa29">com::mxgraph::mxConstants::STYLE_IMAGE_FLIPV</a> = &quot;imageFlipV&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the vertical image flip. This style is only used in mxImageShape. Possible values are 0 and 1. Default is 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae9d501f96487c4aed5ac589b57535e8f"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_IMAGE_HEIGHT" ref="ae9d501f96487c4aed5ac589b57535e8f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9d501f96487c4aed5ac589b57535e8f">com::mxgraph::mxConstants::STYLE_IMAGE_HEIGHT</a> = &quot;imageHeight&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the imageHeight style The type of this value is <em>int</em>, the value is the image height in pixels and must be greater than 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a68508a8687f386ad2fdbf87ef62918f8"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_IMAGE_VERTICAL_ALIGN" ref="a68508a8687f386ad2fdbf87ef62918f8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a68508a8687f386ad2fdbf87ef62918f8">com::mxgraph::mxConstants::STYLE_IMAGE_VERTICAL_ALIGN</a> = &quot;imageVerticalAlign&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the verticalAlign style. Possible values are <em>ALIGN_TOP</em>, <em>ALIGN_MIDDLE</em> and <em>ALIGN_BOTTOM</em>. The value defines how any image in the vertex label is aligned vertically within the label bounds of a SHAPE_LABEL shape. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a823b225d4fcaecddb244454299157f37"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_IMAGE_WIDTH" ref="a823b225d4fcaecddb244454299157f37" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a823b225d4fcaecddb244454299157f37">com::mxgraph::mxConstants::STYLE_IMAGE_WIDTH</a> = &quot;imageWidth&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the imageWidth style. The type of this value is <em>int</em>, the value is the image width in pixels and must be greated than 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3ca8def77e2cad483ff73adf2be9f5da"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_INDICATOR_COLOR" ref="a3ca8def77e2cad483ff73adf2be9f5da" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ca8def77e2cad483ff73adf2be9f5da">com::mxgraph::mxConstants::STYLE_INDICATOR_COLOR</a> = &quot;indicatorColor&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the indicatorColor style. The value is a string expression supported by ColorTranslator.FromHtml. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a655de664089013fda98ea8f564a8797e"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_INDICATOR_GRADIENTCOLOR" ref="a655de664089013fda98ea8f564a8797e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a655de664089013fda98ea8f564a8797e">com::mxgraph::mxConstants::STYLE_INDICATOR_GRADIENTCOLOR</a> = &quot;indicatorGradientColor&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the indicatorGradientColor style. The value is a string expression supported byColorTranslator.FromHtml. This style is only supported in SHAPE_LABEL shapes. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a25ee53b3944aa45d184526765cd42a5f"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_INDICATOR_HEIGHT" ref="a25ee53b3944aa45d184526765cd42a5f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a25ee53b3944aa45d184526765cd42a5f">com::mxgraph::mxConstants::STYLE_INDICATOR_HEIGHT</a> = &quot;indicatorHeight&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the indicatorHeight style (in px). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0827a50f8caa7929bae0e54967431f52"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_INDICATOR_IMAGE" ref="a0827a50f8caa7929bae0e54967431f52" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0827a50f8caa7929bae0e54967431f52">com::mxgraph::mxConstants::STYLE_INDICATOR_IMAGE</a> = &quot;indicatorImage&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the indicatorImage style. Possible values are any image URL, the type of the value is <em>String</em>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3a5dec5b1000f428d731f6dbbf36bb87"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_INDICATOR_SHAPE" ref="a3a5dec5b1000f428d731f6dbbf36bb87" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3a5dec5b1000f428d731f6dbbf36bb87">com::mxgraph::mxConstants::STYLE_INDICATOR_SHAPE</a> = &quot;indicatorShape&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the indicatorShape style. Possible values are any of the SHAPE_* constants. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abcf58d30cf605976114a3fbe549a0594"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_INDICATOR_SPACING" ref="abcf58d30cf605976114a3fbe549a0594" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abcf58d30cf605976114a3fbe549a0594">com::mxgraph::mxConstants::STYLE_INDICATOR_SPACING</a> = &quot;indicatorSpacing&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the indicatorSpacing style (in px). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2fa4b8c068da7b8dc03347042688b887"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_INDICATOR_WIDTH" ref="a2fa4b8c068da7b8dc03347042688b887" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fa4b8c068da7b8dc03347042688b887">com::mxgraph::mxConstants::STYLE_INDICATOR_WIDTH</a> = &quot;indicatorWidth&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the indicatorWidth style (in px). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acae9ee1e73cc8263b2a28c790037c053"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_LABEL_BACKGROUNDCOLOR" ref="acae9ee1e73cc8263b2a28c790037c053" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acae9ee1e73cc8263b2a28c790037c053">com::mxgraph::mxConstants::STYLE_LABEL_BACKGROUNDCOLOR</a> = &quot;labelBackgroundColor&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the label background color. The value is a string expression supported by ColorTranslator.FromHtml. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a669dd03f58985bfbf157dfb397aa1f75"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_LABEL_BORDERCOLOR" ref="a669dd03f58985bfbf157dfb397aa1f75" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a669dd03f58985bfbf157dfb397aa1f75">com::mxgraph::mxConstants::STYLE_LABEL_BORDERCOLOR</a> = &quot;labelBorderColor&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the label border color. The value is a string expression supported by ColorTranslator.FromHtml. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a34c4987af659c3fc8dfbce5403103b17"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_LABEL_POSITION" ref="a34c4987af659c3fc8dfbce5403103b17" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a34c4987af659c3fc8dfbce5403103b17">com::mxgraph::mxConstants::STYLE_LABEL_POSITION</a> = &quot;labelPosition&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the horizontal label position of vertices. Possible values are <em>ALIGN_LEFT</em>, <em>ALIGN_CENTER</em> and <em>ALIGN_RIGHT</em>. Default is <em>ALIGN_CENTER</em>. The label align defines the position of the label relative to the cell. <em>ALIGN_LEFT</em> means the entire label bounds is placed completely just to the left of the vertex, <em>ALIGN_RIGHT</em> means adjust to the right and <em>ALIGN_CENTER</em> means the label bounds are vertically aligned with the bounds of the vertex. Note this value doesn't affect the positioning of label within the label bounds, to move the label horizontally within the label bounds, use <em>STYLE_ALIGN</em>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a150d6d5f6ee8fdeca8ef3c03fc554b81"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_LOOP" ref="a150d6d5f6ee8fdeca8ef3c03fc554b81" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a150d6d5f6ee8fdeca8ef3c03fc554b81">com::mxgraph::mxConstants::STYLE_LOOP</a> = &quot;loopStyle&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the loop style. Possible values are the functions defined in <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html" title="Provides various edge styles to be used as the values for mxConstants.STYLE_EDGE...">mxEdgeStyle</a>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad4f96676ce52fc7c0cff35c27ce58a82"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_NOEDGESTYLE" ref="ad4f96676ce52fc7c0cff35c27ce58a82" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad4f96676ce52fc7c0cff35c27ce58a82">com::mxgraph::mxConstants::STYLE_NOEDGESTYLE</a> = &quot;noEdgeStyle&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the noEdgeStyle style. If this is true then no edge style is applied for a given edge. Possible values are true or false (1 or 0). Default is false. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab18fffbf5731e09783b758e97c92add1"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_NOLABEL" ref="ab18fffbf5731e09783b758e97c92add1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab18fffbf5731e09783b758e97c92add1">com::mxgraph::mxConstants::STYLE_NOLABEL</a> = &quot;noLabel&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the noLabel style. If this is true then no label is visible for a given cell. Possible values are true or false (1 or 0). Default is false (0). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a859d1d0076703ae134d89a14e671e7b8"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_OPACITY" ref="a859d1d0076703ae134d89a14e671e7b8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a859d1d0076703ae134d89a14e671e7b8">com::mxgraph::mxConstants::STYLE_OPACITY</a> = &quot;opacity&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the opacity style (0-100). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a81c71c639ddc4cfea45fc09adf8e2318"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ORTHOGONAL" ref="a81c71c639ddc4cfea45fc09adf8e2318" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a81c71c639ddc4cfea45fc09adf8e2318">com::mxgraph::mxConstants::STYLE_ORTHOGONAL</a> = &quot;orthogonal&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines if the connection points on either end of the edge should be. </p>
    +<p>computed so that the edge is vertical or horizontal if possible and if the point is not at a fixed location. Default is false. This is used in <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab0146d0411dd28fb371e19e06b5f8b84" title="Returns true if perimeter points should be computed such that the resulting edge...">mxGraph.IsOrthogonal</a>, which also returns true if the edgeStyle of the edge is an elbow or entity. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a05412f8771176e5291b46f68a927ed80"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_OVERFLOW" ref="a05412f8771176e5291b46f68a927ed80" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a05412f8771176e5291b46f68a927ed80">com::mxgraph::mxConstants::STYLE_OVERFLOW</a> = &quot;overflow&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the overflow style. Possible values are "visible", "hidden" and "fill". The default value is "visible". This value specifies how overlapping vertex labels are handles. A value of "visible" will show the complete label. A value of "hidden" will clip the label so that it does not overlap the vertex bounds. A value of "fill" will use the vertex bounds for the label. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab7a751a8bd80d3c041b88752ef5e94f5"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_PERIMETER" ref="ab7a751a8bd80d3c041b88752ef5e94f5" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab7a751a8bd80d3c041b88752ef5e94f5">com::mxgraph::mxConstants::STYLE_PERIMETER</a> = &quot;perimeter&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the perimeter style. Possible values are the functions defined in <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html" title="Provides various perimeter functions to be used in a style as the value of mxConstants...">mxPerimeter</a>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab72f25cea7e25d73ade53f50c4b5cece"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_PERIMETER_SPACING" ref="ab72f25cea7e25d73ade53f50c4b5cece" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab72f25cea7e25d73ade53f50c4b5cece">com::mxgraph::mxConstants::STYLE_PERIMETER_SPACING</a> = &quot;perimeterSpacing&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the perimeter spacing. This is the distance between the connection point and the perimeter in pixels. When used in a vertex style, this applies to all incoming edges to floating ports (edges that terminate on the perimeter of the vertex). When used in an edge style, this spacing applies to the source and target separately, if they terminate in floating ports (on the perimeter of the vertex). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae890fd04c116f3a040ba5f3b97d57ddc"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ROTATION" ref="ae890fd04c116f3a040ba5f3b97d57ddc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae890fd04c116f3a040ba5f3b97d57ddc">com::mxgraph::mxConstants::STYLE_ROTATION</a> = &quot;rotation&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the rotation style (0-360). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7ed5ee486bcb6c268a6db2d8e2db1d3a"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ROUNDED" ref="a7ed5ee486bcb6c268a6db2d8e2db1d3a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7ed5ee486bcb6c268a6db2d8e2db1d3a">com::mxgraph::mxConstants::STYLE_ROUNDED</a> = &quot;rounded&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the rounded style. The type of this value is <em>boolean</em>. For edges this determines whether or not joins between edges segments are smoothed to a rounded finish. For vertices that have the rectangle shape, this determines whether or not the rectangle is rounded. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae4a649d907b8a4f9eb7915d0232a0052"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ROUTING_CENTER_X" ref="ae4a649d907b8a4f9eb7915d0232a0052" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae4a649d907b8a4f9eb7915d0232a0052">com::mxgraph::mxConstants::STYLE_ROUTING_CENTER_X</a> = &quot;routingCenterX&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the horizontal routing center. Possible values are between -0.5 and 0.5. This is the relative offset from the center used for connecting edges. The type of this value is <em>float</em>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2090b3fa05fc8a9b9584039656b3d59d"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_ROUTING_CENTER_Y" ref="a2090b3fa05fc8a9b9584039656b3d59d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2090b3fa05fc8a9b9584039656b3d59d">com::mxgraph::mxConstants::STYLE_ROUTING_CENTER_Y</a> = &quot;routingCenterY&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the vertical routing center. Possible values are between -0.5 and 0.5. This is the relative offset from the center used for connecting edges. The type of this value is <em>float</em>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2d77891c86546ce52398037d0afe3ef2"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SEGMENT" ref="a2d77891c86546ce52398037d0afe3ef2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2d77891c86546ce52398037d0afe3ef2">com::mxgraph::mxConstants::STYLE_SEGMENT</a> = &quot;segment&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the segment style. The type of this value is <em>float</em> and the value represents the size of the horizontal segment of the entity relation style. Default is ENTITY_SEGMENT. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad640efc5948adbd18008c5383f214b85"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SEPARATORCOLOR" ref="ad640efc5948adbd18008c5383f214b85" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad640efc5948adbd18008c5383f214b85">com::mxgraph::mxConstants::STYLE_SEPARATORCOLOR</a> = &quot;separatorColor&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the separatorColor style. The value is a string expression supported by ColorTranslator.FromHtml. This style is only used for SHAPE_SWIMLANE shapes. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7fded7aaee86f7fec85c24eb990bd916"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SHADOW" ref="a7fded7aaee86f7fec85c24eb990bd916" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7fded7aaee86f7fec85c24eb990bd916">com::mxgraph::mxConstants::STYLE_SHADOW</a> = &quot;shadow&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the shadow style. The type of the value is <em>boolean</em>. This style applies to vertices and arrow style edges. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af98dc98bd5924306a17ea59f72a1fc3b"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SHAPE" ref="af98dc98bd5924306a17ea59f72a1fc3b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af98dc98bd5924306a17ea59f72a1fc3b">com::mxgraph::mxConstants::STYLE_SHAPE</a> = &quot;shape&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the shape style. Possible values are any of the SHAPE_* constants. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6bbe32f287e9b7a4bcd56df3de63b144"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SOURCE_PERIMETER_SPACING" ref="a6bbe32f287e9b7a4bcd56df3de63b144" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6bbe32f287e9b7a4bcd56df3de63b144">com::mxgraph::mxConstants::STYLE_SOURCE_PERIMETER_SPACING</a> = &quot;sourcePerimeterSpacing&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the source perimeter spacing. The type of this value is <em>double</em>. This is the distance between the source connection point of an edge and the perimeter of the source vertex in pixels. This style only applies to edges. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a61e8c4cd1ed9d08c68bdce687431f3b5"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SOURCE_PORT" ref="a61e8c4cd1ed9d08c68bdce687431f3b5" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a61e8c4cd1ed9d08c68bdce687431f3b5">com::mxgraph::mxConstants::STYLE_SOURCE_PORT</a> = &quot;sourcePort&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the ID of the cell that should be used for computing the perimeter point of the source for an edge. This allows for graphically connecting to a cell while keeping the actual terminal of the edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aed1988defb25af7887b4c5968af10525"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SPACING" ref="aed1988defb25af7887b4c5968af10525" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1988defb25af7887b4c5968af10525">com::mxgraph::mxConstants::STYLE_SPACING</a> = &quot;spacing&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the spacing. The value represents the spacing, in pixels, added to each side of a label in a vertex (style applies to vertices only). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae9f99069bf0e43bc91b86782829e305a"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SPACING_BOTTOM" ref="ae9f99069bf0e43bc91b86782829e305a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9f99069bf0e43bc91b86782829e305a">com::mxgraph::mxConstants::STYLE_SPACING_BOTTOM</a> = &quot;spacingBottom&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the spacingBottom style The value represents the spacing, in pixels, added to the bottom side of a label in a vertex (style applies to vertices only). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac22ee8a630a6114a3e05f9f0c1a13c1c"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SPACING_LEFT" ref="ac22ee8a630a6114a3e05f9f0c1a13c1c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac22ee8a630a6114a3e05f9f0c1a13c1c">com::mxgraph::mxConstants::STYLE_SPACING_LEFT</a> = &quot;spacingLeft&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the spacingLeft style. The value represents the spacing, in pixels, added to the left side of a label in a vertex (style applies to vertices only). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a311f21a164824043c00dd88d0faabca7"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SPACING_RIGHT" ref="a311f21a164824043c00dd88d0faabca7" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a311f21a164824043c00dd88d0faabca7">com::mxgraph::mxConstants::STYLE_SPACING_RIGHT</a> = &quot;spacingRight&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the spacingRight style The value represents the spacing, in pixels, added to the right side of a label in a vertex (style applies to vertices only). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8109d6144dd0fb35545f36d02b2d05d9"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_SPACING_TOP" ref="a8109d6144dd0fb35545f36d02b2d05d9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8109d6144dd0fb35545f36d02b2d05d9">com::mxgraph::mxConstants::STYLE_SPACING_TOP</a> = &quot;spacingTop&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the spacingTop style. The value represents the spacing, in pixels, added to the top side of a label in a vertex (style applies to vertices only). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a98530d392eebdd03085cf1e59e9211d3"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_STARTARROW" ref="a98530d392eebdd03085cf1e59e9211d3" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98530d392eebdd03085cf1e59e9211d3">com::mxgraph::mxConstants::STYLE_STARTARROW</a> = &quot;startArrow&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the startArrow style. Possible values are all constants in this class that start with ARROW_. See STYLE_ENDARROW. This style is supported in the mxConnector shape. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a502552e236735b56632bbbd7c4429be0"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_STARTSIZE" ref="a502552e236735b56632bbbd7c4429be0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a502552e236735b56632bbbd7c4429be0">com::mxgraph::mxConstants::STYLE_STARTSIZE</a> = &quot;startSize&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the startSize style. The type of this value is <em>float</em> and the value represents the size of the start marker or the size of the swimlane title region depending on the shape it is used for. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4896c3e6b34377ddeb7e473ea02d943e"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_STENCIL_FLIPH" ref="a4896c3e6b34377ddeb7e473ea02d943e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4896c3e6b34377ddeb7e473ea02d943e">com::mxgraph::mxConstants::STYLE_STENCIL_FLIPH</a> = &quot;stencilFlipH&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the horizontal stencil flip. This style is only used for &lt;mxStencilShape&gt;. Possible values are 0 and 1. Default is 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a137b1f6080c7cb03281eb5acc7442bcc"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_STENCIL_FLIPV" ref="a137b1f6080c7cb03281eb5acc7442bcc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a137b1f6080c7cb03281eb5acc7442bcc">com::mxgraph::mxConstants::STYLE_STENCIL_FLIPV</a> = &quot;stencilFlipV&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the vertical stencil flip. This style is only used for &lt;mxStencilShape&gt;. Possible values are 0 and 1. Default is 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5695d983892290ee811e51516d54dd36"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_STROKECOLOR" ref="a5695d983892290ee811e51516d54dd36" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5695d983892290ee811e51516d54dd36">com::mxgraph::mxConstants::STYLE_STROKECOLOR</a> = &quot;strokeColor&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the strokeColor style. The value is a string expression supported by ColorTranslator.FromHtml. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8a4a968f4647b3d56a1dc10f0c23a4b0"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_STROKEWIDTH" ref="a8a4a968f4647b3d56a1dc10f0c23a4b0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8a4a968f4647b3d56a1dc10f0c23a4b0">com::mxgraph::mxConstants::STYLE_STROKEWIDTH</a> = &quot;strokeWidth&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the strokeWidth style. The type of the value is <em>float</em> and the possible range is any non-negative value. The value reflects the stroke width in pixels. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abc457a97c7a4cc991f2ca65982bcab86"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_TARGET_PERIMETER_SPACING" ref="abc457a97c7a4cc991f2ca65982bcab86" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abc457a97c7a4cc991f2ca65982bcab86">com::mxgraph::mxConstants::STYLE_TARGET_PERIMETER_SPACING</a> = &quot;targetPerimeterSpacing&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the target perimeter spacing. The type of this value is <em>double</em>. This is the distance between the target connection point of an edge and the perimeter of the target vertex in pixels. This style only applies to edges. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6ceeb7c7b3ec66986d192d8eb68d199b"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_TARGET_PORT" ref="a6ceeb7c7b3ec66986d192d8eb68d199b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6ceeb7c7b3ec66986d192d8eb68d199b">com::mxgraph::mxConstants::STYLE_TARGET_PORT</a> = &quot;targetPort&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the ID of the cell that should be used for computing the perimeter point of the target for an edge. This allows for graphically connecting to a cell while keeping the actual terminal of the edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab409504a46643de9d90248a961f397ff"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_TEXT_OPACITY" ref="ab409504a46643de9d90248a961f397ff" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab409504a46643de9d90248a961f397ff">com::mxgraph::mxConstants::STYLE_TEXT_OPACITY</a> = &quot;textOpacity&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the text opacity style (0-100). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4f940125631e1ab3cf4e30a8eb104878"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_VERTICAL_ALIGN" ref="a4f940125631e1ab3cf4e30a8eb104878" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4f940125631e1ab3cf4e30a8eb104878">com::mxgraph::mxConstants::STYLE_VERTICAL_ALIGN</a> = &quot;verticalAlign&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the verticalAlign style. Possible values are <em>ALIGN_TOP</em>, <em>ALIGN_MIDDLE</em> and <em>ALIGN_BOTTOM</em>. This value defines how the lines of the label are vertically aligned. <em>ALIGN_TOP</em> means the topmost label text line is aligned against the top of the label bounds, <em>ALIGN_BOTTOM</em> means the bottom-most label text line is aligned against the bottom of the label bounds and <em>ALIGN_MIDDLE</em> means there is equal spacing between the topmost text label line and the top of the label bounds and the bottom-most text label line and the bottom of the label bounds. Note this value doesn't affect the positioning of the overall label bounds relative to the vertex, to move the label bounds vertically, use <em>STYLE_VERTICAL_LABEL_POSITION</em>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2e89648ff34b47ee38e7faccd4c594fc"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_VERTICAL_LABEL_POSITION" ref="a2e89648ff34b47ee38e7faccd4c594fc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2e89648ff34b47ee38e7faccd4c594fc">com::mxgraph::mxConstants::STYLE_VERTICAL_LABEL_POSITION</a> = &quot;verticalLabelPosition&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the vertical label position of vertices. Possible. </p>
    +<p>values are <em>ALIGN_TOP</em>, <em>ALIGN_BOTTOM</em> and <em>ALIGN_MIDDLE</em>. Default is <em>ALIGN_MIDDLE</em>. The label align defines the position of the label relative to the cell. <em>ALIGN_TOP</em> means the entire label bounds is placed completely just on the top of the vertex, <em>ALIGN_BOTTOM</em> means adjust on the bottom and <em>ALIGN_MIDDLE</em> means the label bounds are horizontally aligned with the bounds of the vertex. Note this value doesn't affect the positioning of label within the label bounds, to move the label vertically within the label bounds, use <em>STYLE_VERTICAL_ALIGN</em>. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6d76138f18fdcaeb174ee0409644ddf1"></a><!-- doxytag: member="com::mxgraph::mxConstants::STYLE_WHITE_SPACE" ref="a6d76138f18fdcaeb174ee0409644ddf1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d76138f18fdcaeb174ee0409644ddf1">com::mxgraph::mxConstants::STYLE_WHITE_SPACE</a> = &quot;whiteSpace&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the key for the white-space style. Possible values are "nowrap" and "wrap". The default value is "nowrap". This value specifies how white-space inside a HTML vertex label should be handled. A value of "nowrap" means the text will never wrap to the next line until a linefeed is encountered. A value of "wrap" means text will wrap when necessary. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a386f9b5690337d6a92bf57b7672ab492"></a><!-- doxytag: member="com::mxgraph::mxConstants::W3C_SHADOWCOLOR" ref="a386f9b5690337d6a92bf57b7672ab492" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a386f9b5690337d6a92bf57b7672ab492">com::mxgraph::mxConstants::W3C_SHADOWCOLOR</a> = &quot;gray&quot;<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the color to be used to draw shadows in W3C standards. Default is gray. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/utils/mxConstants.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxEdgeStyle-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxEdgeStyle-members.html
    new file mode 100644
    index 000000000..951e45023
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxEdgeStyle-members.html
    @@ -0,0 +1,39 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxEdgeStyle Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">com::mxgraph::mxEdgeStyle</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a92f5012b34ca2e03ce23139b36d59d2a">ElbowConnector</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">com::mxgraph::mxEdgeStyle</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a0941ebe2ed707190810ac007e7d2db65">EntityRelation</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">com::mxgraph::mxEdgeStyle</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#abccfcbe9600ba65c750d9334c2e6a36c">Loop</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">com::mxgraph::mxEdgeStyle</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a67fb360a6331b9ec3b65f0f1cfcb161d">SideToSide</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">com::mxgraph::mxEdgeStyle</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a9c046cb096d401b3665d2ccc096bf145">TopToBottom</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">com::mxgraph::mxEdgeStyle</a></td><td><code> [static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxEdgeStyle.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxEdgeStyle.html
    new file mode 100644
    index 000000000..225fd2662
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxEdgeStyle.html
    @@ -0,0 +1,134 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxEdgeStyle Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">mxEdgeStyle</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxEdgeStyle Class Reference</h1><!-- doxytag: class="com::mxgraph::mxEdgeStyle" -->
    +<p>Provides various edge styles to be used as the values for <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8861eab51bc7b08c6275a70f2f4172cb" title="Takes a function that creates points. Possible values are the functions defined in...">mxConstants.STYLE_EDGE</a> in a cell style.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxEdgeStyle-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static mxEdgeStyleFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a0941ebe2ed707190810ac007e7d2db65">EntityRelation</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements an entity relation style for edges (as used in database schema diagrams).  <a href="#a0941ebe2ed707190810ac007e7d2db65"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static mxEdgeStyleFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#abccfcbe9600ba65c750d9334c2e6a36c">Loop</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements a self-reference, aka. loop.  <a href="#abccfcbe9600ba65c750d9334c2e6a36c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static mxEdgeStyleFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a92f5012b34ca2e03ce23139b36d59d2a">ElbowConnector</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell style. SideToSide is used if horizontal is true or unspecified.  <a href="#a92f5012b34ca2e03ce23139b36d59d2a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static mxEdgeStyleFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a67fb360a6331b9ec3b65f0f1cfcb161d">SideToSide</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements a vertical elbow edge.  <a href="#a67fb360a6331b9ec3b65f0f1cfcb161d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static mxEdgeStyleFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a9c046cb096d401b3665d2ccc096bf145">TopToBottom</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements a horizontal elbow edge.  <a href="#a9c046cb096d401b3665d2ccc096bf145"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Provides various edge styles to be used as the values for <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8861eab51bc7b08c6275a70f2f4172cb" title="Takes a function that creates points. Possible values are the functions defined in...">mxConstants.STYLE_EDGE</a> in a cell style. </p>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a92f5012b34ca2e03ce23139b36d59d2a"></a><!-- doxytag: member="com::mxgraph::mxEdgeStyle::ElbowConnector" ref="a92f5012b34ca2e03ce23139b36d59d2a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxEdgeStyleFunction <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a92f5012b34ca2e03ce23139b36d59d2a">com::mxgraph::mxEdgeStyle::ElbowConnector</a><code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell style. SideToSide is used if horizontal is true or unspecified. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0941ebe2ed707190810ac007e7d2db65"></a><!-- doxytag: member="com::mxgraph::mxEdgeStyle::EntityRelation" ref="a0941ebe2ed707190810ac007e7d2db65" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxEdgeStyleFunction <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a0941ebe2ed707190810ac007e7d2db65">com::mxgraph::mxEdgeStyle::EntityRelation</a><code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements an entity relation style for edges (as used in database schema diagrams). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abccfcbe9600ba65c750d9334c2e6a36c"></a><!-- doxytag: member="com::mxgraph::mxEdgeStyle::Loop" ref="abccfcbe9600ba65c750d9334c2e6a36c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxEdgeStyleFunction <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#abccfcbe9600ba65c750d9334c2e6a36c">com::mxgraph::mxEdgeStyle::Loop</a><code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements a self-reference, aka. loop. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a67fb360a6331b9ec3b65f0f1cfcb161d"></a><!-- doxytag: member="com::mxgraph::mxEdgeStyle::SideToSide" ref="a67fb360a6331b9ec3b65f0f1cfcb161d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxEdgeStyleFunction <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a67fb360a6331b9ec3b65f0f1cfcb161d">com::mxgraph::mxEdgeStyle::SideToSide</a><code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements a vertical elbow edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9c046cb096d401b3665d2ccc096bf145"></a><!-- doxytag: member="com::mxgraph::mxEdgeStyle::TopToBottom" ref="a9c046cb096d401b3665d2ccc096bf145" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxEdgeStyleFunction <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a9c046cb096d401b3665d2ccc096bf145">com::mxgraph::mxEdgeStyle::TopToBottom</a><code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements a horizontal elbow edge. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/view/mxEdgeStyle.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxFastOrganicLayout-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxFastOrganicLayout-members.html
    new file mode 100644
    index 000000000..b308d56c8
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxFastOrganicLayout-members.html
    @@ -0,0 +1,67 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxFastOrganicLayout Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8fc7192201e0c121dd01024dc1793b79">allowedToRun</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aab8b33a938819900649672628d79fcc3">calcAttraction</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab1ec482cc537816e5edd99cd3229c8c8">calcPositions</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8d5678f4bc6e2143d8cd39f81edc7f3c">calcRepulsion</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ae974dc7272a8a74d0c9abec809e543bd">cellLocation</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab622ac3cab6a511c09c9bc9c31dbc3f8">dispX</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a10d7ba367f8af2dc03be88cf8f955c21">dispY</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af9dae378277ec3bd6c780e66e653b127">execute</a>(Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7f82df0c8421273c5134517403580514">forceConstant</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a12d4bcd993ca7d09c179c9bd6235e7c6">ForceConstant</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aa598941798201a1fa8830f6598478340">forceConstantSquared</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a99a53986be7fee5b602032be1e5f51d4">graph</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a777007999207d81a1a737ef92777a408">indices</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acde3bbda33df34ebcf72bb51b24c0fd2">initialTemp</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ac2659499c12a2967694b2bcec28dcb48">InitialTemp</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab926409f7f7f7022b5e12ca5225c0e7d">IsAllowedToRun</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acb90e90ba2f0620618d223ee518420fa">IsCellIgnored</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab68c9139dbaa98a8e3307c7b0f35a7e0">isMoveable</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7912d316ac33da47579fdd3b6a590abc">iteration</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af4757aacb4d721e8700c5b940d57c6a8">maxIterations</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ade1c6ceb16929e0736db8419222752cd">MaxIterations</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8e19280f5a5c4748dbba27db9b62dfc6">MinDistanceLimit</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#abb7b555da3232233b8d88605ec8a3065">minDistanceLimit</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7eee165d1cd46198cd0afd3683846dc0">minDistanceLimitSquared</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a3a6d6b7697d013125bef0acaadd7d179">move</a>(Object cell, double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a0cdd8ebebc894870a02f213ea17fceeb">mxFastOrganicLayout</a>(mxGraph graph)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a9d25658bf242ccfd7f261c4b849fd6c1">neighbours</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab408033234dd280872595012e1bbf1e2">radius</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acb1741efc08f1bc825dc98ae4877fe92">radiusSquared</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aeb4135bb0af32e37eccdf4d9602ac884">random</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#adf96f4af2d6db40d8440c45c88a8eb42">reduceTemperature</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab361f5308d1d48d3de5f5f4520a37b58">temperature</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a46527e41184476f1b59fe00ca1218dd1">vertexArray</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxFastOrganicLayout.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxFastOrganicLayout.html
    new file mode 100644
    index 000000000..e2c9a7f0a
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxFastOrganicLayout.html
    @@ -0,0 +1,709 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxFastOrganicLayout Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">mxFastOrganicLayout</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxFastOrganicLayout Class Reference</h1><!-- doxytag: class="com::mxgraph::mxFastOrganicLayout" --><!-- doxytag: inherits="com::mxgraph::mxIGraphLayout" -->
    +<p>Fast organic layout algorithm.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxFastOrganicLayout:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxFastOrganicLayout.png" usemap="#com::mxgraph::mxFastOrganicLayout_map" alt=""/>
    +  <map id="com::mxgraph::mxFastOrganicLayout_map" name="com::mxgraph::mxFastOrganicLayout_map">
    +<area href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html" alt="com::mxgraph::mxIGraphLayout" shape="rect" coords="0,0,218,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxFastOrganicLayout-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a0cdd8ebebc894870a02f213ea17fceeb">mxFastOrganicLayout</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a> <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a99a53986be7fee5b602032be1e5f51d4">graph</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new fast organic layout for the specified graph.  <a href="#a0cdd8ebebc894870a02f213ea17fceeb"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acb90e90ba2f0620618d223ee518420fa">IsCellIgnored</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell should be ignored by the layout algorithm. This implementation returns false if the cell is a vertex and has at least one connected edge.  <a href="#acb90e90ba2f0620618d223ee518420fa"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a3a6d6b7697d013125bef0acaadd7d179">move</a> (Object cell, double x, double y)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg. index) so that the outcome of the layou will position the vertex as close to the point (x, y) as possible.  <a href="#a3a6d6b7697d013125bef0acaadd7d179"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af9dae378277ec3bd6c780e66e653b127">execute</a> (Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Executes the fast organic layout.  <a href="#af9dae378277ec3bd6c780e66e653b127"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#adf96f4af2d6db40d8440c45c88a8eb42">reduceTemperature</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reduces the temperature of the layout from an initial setting in a linear fashion to zero.  <a href="#adf96f4af2d6db40d8440c45c88a8eb42"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab1ec482cc537816e5edd99cd3229c8c8">calcPositions</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Takes the displacements calculated for each cell and applies them to the local cache of cell positions. Limits the displacement to the current temperature.  <a href="#ab1ec482cc537816e5edd99cd3229c8c8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aab8b33a938819900649672628d79fcc3">calcAttraction</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the attractive forces between all laid out nodes linked by edges.  <a href="#aab8b33a938819900649672628d79fcc3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8d5678f4bc6e2143d8cd39f81edc7f3c">calcRepulsion</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the repulsive forces between all laid out nodes.  <a href="#a8d5678f4bc6e2143d8cd39f81edc7f3c"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a99a53986be7fee5b602032be1e5f51d4">graph</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the enclosing graph.  <a href="#a99a53986be7fee5b602032be1e5f51d4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7f82df0c8421273c5134517403580514">forceConstant</a> = 50</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The force constant by which the attractive forces are divided and the replusive forces are multiple by the square of. The value equates to the average radius there is of free space around each node. Default is 50.  <a href="#a7f82df0c8421273c5134517403580514"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aa598941798201a1fa8830f6598478340">forceConstantSquared</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cache of forceConstant^2 for performance.  <a href="#aa598941798201a1fa8830f6598478340"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#abb7b555da3232233b8d88605ec8a3065">minDistanceLimit</a> = 2</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Minimal distance limit. Default is 2. Prevents of dividing by zero.  <a href="#abb7b555da3232233b8d88605ec8a3065"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7eee165d1cd46198cd0afd3683846dc0">minDistanceLimitSquared</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cached version of minDistanceLimit squared.  <a href="#a7eee165d1cd46198cd0afd3683846dc0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acde3bbda33df34ebcf72bb51b24c0fd2">initialTemp</a> = 200</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start value of temperature. Default is 200.  <a href="#acde3bbda33df34ebcf72bb51b24c0fd2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab361f5308d1d48d3de5f5f4520a37b58">temperature</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Temperature to limit displacement at later stages of layout.  <a href="#ab361f5308d1d48d3de5f5f4520a37b58"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af4757aacb4d721e8700c5b940d57c6a8">maxIterations</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Total number of iterations to run the layout though.  <a href="#af4757aacb4d721e8700c5b940d57c6a8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7912d316ac33da47579fdd3b6a590abc">iteration</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current iteration count.  <a href="#a7912d316ac33da47579fdd3b6a590abc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a46527e41184476f1b59fe00ca1218dd1">vertexArray</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An array of all vertices to be laid out.  <a href="#a46527e41184476f1b59fe00ca1218dd1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab622ac3cab6a511c09c9bc9c31dbc3f8">dispX</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An array of locally stored X co-ordinate displacements for the vertices.  <a href="#ab622ac3cab6a511c09c9bc9c31dbc3f8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a10d7ba367f8af2dc03be88cf8f955c21">dispY</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An array of locally stored Y co-ordinate displacements for the vertices.  <a href="#a10d7ba367f8af2dc03be88cf8f955c21"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double[][]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ae974dc7272a8a74d0c9abec809e543bd">cellLocation</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An array of locally stored co-ordinate positions for the vertices.  <a href="#ae974dc7272a8a74d0c9abec809e543bd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab408033234dd280872595012e1bbf1e2">radius</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The approximate radius of each cell, nodes only.  <a href="#ab408033234dd280872595012e1bbf1e2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acb1741efc08f1bc825dc98ae4877fe92">radiusSquared</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The approximate radius squared of each cell, nodes only.  <a href="#acb1741efc08f1bc825dc98ae4877fe92"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab68c9139dbaa98a8e3307c7b0f35a7e0">isMoveable</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Array of booleans representing the movable states of the vertices.  <a href="#ab68c9139dbaa98a8e3307c7b0f35a7e0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int[][]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a9d25658bf242ccfd7f261c4b849fd6c1">neighbours</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Local copy of cell neighbours.  <a href="#a9d25658bf242ccfd7f261c4b849fd6c1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8fc7192201e0c121dd01024dc1793b79">allowedToRun</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Boolean flag that specifies if the layout is allowed to run. If this is set to false, then the layout exits in the following iteration.  <a href="#a8fc7192201e0c121dd01024dc1793b79"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; object, int &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a777007999207d81a1a737ef92777a408">indices</a> = new Dictionary&lt;object, int&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from vertices to indices.  <a href="#a777007999207d81a1a737ef92777a408"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Random&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aeb4135bb0af32e37eccdf4d9602ac884">random</a> = new Random()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Random number generator.  <a href="#aeb4135bb0af32e37eccdf4d9602ac884"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab926409f7f7f7022b5e12ca5225c0e7d">IsAllowedToRun</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag to stop a running layout run.  <a href="#ab926409f7f7f7022b5e12ca5225c0e7d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ade1c6ceb16929e0736db8419222752cd">MaxIterations</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximum number of iterations.  <a href="#ade1c6ceb16929e0736db8419222752cd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a12d4bcd993ca7d09c179c9bd6235e7c6">ForceConstant</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Force constant to be used for the springs.  <a href="#a12d4bcd993ca7d09c179c9bd6235e7c6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8e19280f5a5c4748dbba27db9b62dfc6">MinDistanceLimit</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Minimum distance between nodes.  <a href="#a8e19280f5a5c4748dbba27db9b62dfc6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ac2659499c12a2967694b2bcec28dcb48">InitialTemp</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initial temperature.  <a href="#ac2659499c12a2967694b2bcec28dcb48"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Fast organic layout algorithm. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a0cdd8ebebc894870a02f213ea17fceeb"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::mxFastOrganicLayout" ref="a0cdd8ebebc894870a02f213ea17fceeb" args="(mxGraph graph)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxFastOrganicLayout::mxFastOrganicLayout </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a>&nbsp;</td>
    +          <td class="paramname"> <em>graph</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new fast organic layout for the specified graph. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>graph</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="aab8b33a938819900649672628d79fcc3"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::calcAttraction" ref="aab8b33a938819900649672628d79fcc3" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxFastOrganicLayout::calcAttraction </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Calculates the attractive forces between all laid out nodes linked by edges. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab1ec482cc537816e5edd99cd3229c8c8"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::calcPositions" ref="ab1ec482cc537816e5edd99cd3229c8c8" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxFastOrganicLayout::calcPositions </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Takes the displacements calculated for each cell and applies them to the local cache of cell positions. Limits the displacement to the current temperature. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8d5678f4bc6e2143d8cd39f81edc7f3c"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::calcRepulsion" ref="a8d5678f4bc6e2143d8cd39f81edc7f3c" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxFastOrganicLayout::calcRepulsion </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Calculates the repulsive forces between all laid out nodes. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af9dae378277ec3bd6c780e66e653b127"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::execute" ref="af9dae378277ec3bd6c780e66e653b127" args="(Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxFastOrganicLayout::execute </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Executes the fast organic layout. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#a02f76b81716fa481fa9758cebb9f3c57">com::mxgraph::mxIGraphLayout</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acb90e90ba2f0620618d223ee518420fa"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::IsCellIgnored" ref="acb90e90ba2f0620618d223ee518420fa" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxFastOrganicLayout::IsCellIgnored </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell should be ignored by the layout algorithm. This implementation returns false if the cell is a vertex and has at least one connected edge. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Object that represents the cell.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the given cell should be ignored.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3a6d6b7697d013125bef0acaadd7d179"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::move" ref="a3a6d6b7697d013125bef0acaadd7d179" args="(Object cell, double x, double y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxFastOrganicLayout::move </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg. index) so that the outcome of the layou will position the vertex as close to the point (x, y) as possible. </p>
    +<p>Not yet implemented.</p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#aa7f61ebc0e14a39947ae016393501309">com::mxgraph::mxIGraphLayout</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adf96f4af2d6db40d8440c45c88a8eb42"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::reduceTemperature" ref="adf96f4af2d6db40d8440c45c88a8eb42" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxFastOrganicLayout::reduceTemperature </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reduces the temperature of the layout from an initial setting in a linear fashion to zero. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a8fc7192201e0c121dd01024dc1793b79"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::allowedToRun" ref="a8fc7192201e0c121dd01024dc1793b79" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8fc7192201e0c121dd01024dc1793b79">com::mxgraph::mxFastOrganicLayout::allowedToRun</a> = true<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Boolean flag that specifies if the layout is allowed to run. If this is set to false, then the layout exits in the following iteration. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae974dc7272a8a74d0c9abec809e543bd"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::cellLocation" ref="ae974dc7272a8a74d0c9abec809e543bd" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double [][] <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ae974dc7272a8a74d0c9abec809e543bd">com::mxgraph::mxFastOrganicLayout::cellLocation</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>An array of locally stored co-ordinate positions for the vertices. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab622ac3cab6a511c09c9bc9c31dbc3f8"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::dispX" ref="ab622ac3cab6a511c09c9bc9c31dbc3f8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double [] <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab622ac3cab6a511c09c9bc9c31dbc3f8">com::mxgraph::mxFastOrganicLayout::dispX</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>An array of locally stored X co-ordinate displacements for the vertices. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a10d7ba367f8af2dc03be88cf8f955c21"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::dispY" ref="a10d7ba367f8af2dc03be88cf8f955c21" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double [] <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a10d7ba367f8af2dc03be88cf8f955c21">com::mxgraph::mxFastOrganicLayout::dispY</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>An array of locally stored Y co-ordinate displacements for the vertices. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7f82df0c8421273c5134517403580514"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::forceConstant" ref="a7f82df0c8421273c5134517403580514" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7f82df0c8421273c5134517403580514">com::mxgraph::mxFastOrganicLayout::forceConstant</a> = 50<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>The force constant by which the attractive forces are divided and the replusive forces are multiple by the square of. The value equates to the average radius there is of free space around each node. Default is 50. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa598941798201a1fa8830f6598478340"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::forceConstantSquared" ref="aa598941798201a1fa8830f6598478340" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aa598941798201a1fa8830f6598478340">com::mxgraph::mxFastOrganicLayout::forceConstantSquared</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Cache of forceConstant^2 for performance. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a99a53986be7fee5b602032be1e5f51d4"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::graph" ref="a99a53986be7fee5b602032be1e5f51d4" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a> <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a99a53986be7fee5b602032be1e5f51d4">com::mxgraph::mxFastOrganicLayout::graph</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the enclosing graph. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a777007999207d81a1a737ef92777a408"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::indices" ref="a777007999207d81a1a737ef92777a408" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;object, int&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a777007999207d81a1a737ef92777a408">com::mxgraph::mxFastOrganicLayout::indices</a> = new Dictionary&lt;object, int&gt;()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from vertices to indices. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acde3bbda33df34ebcf72bb51b24c0fd2"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::initialTemp" ref="acde3bbda33df34ebcf72bb51b24c0fd2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acde3bbda33df34ebcf72bb51b24c0fd2">com::mxgraph::mxFastOrganicLayout::initialTemp</a> = 200<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Start value of temperature. Default is 200. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab68c9139dbaa98a8e3307c7b0f35a7e0"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::isMoveable" ref="ab68c9139dbaa98a8e3307c7b0f35a7e0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool [] <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab68c9139dbaa98a8e3307c7b0f35a7e0">com::mxgraph::mxFastOrganicLayout::isMoveable</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Array of booleans representing the movable states of the vertices. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7912d316ac33da47579fdd3b6a590abc"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::iteration" ref="a7912d316ac33da47579fdd3b6a590abc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7912d316ac33da47579fdd3b6a590abc">com::mxgraph::mxFastOrganicLayout::iteration</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Current iteration count. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af4757aacb4d721e8700c5b940d57c6a8"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::maxIterations" ref="af4757aacb4d721e8700c5b940d57c6a8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af4757aacb4d721e8700c5b940d57c6a8">com::mxgraph::mxFastOrganicLayout::maxIterations</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Total number of iterations to run the layout though. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abb7b555da3232233b8d88605ec8a3065"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::minDistanceLimit" ref="abb7b555da3232233b8d88605ec8a3065" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#abb7b555da3232233b8d88605ec8a3065">com::mxgraph::mxFastOrganicLayout::minDistanceLimit</a> = 2<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Minimal distance limit. Default is 2. Prevents of dividing by zero. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7eee165d1cd46198cd0afd3683846dc0"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::minDistanceLimitSquared" ref="a7eee165d1cd46198cd0afd3683846dc0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7eee165d1cd46198cd0afd3683846dc0">com::mxgraph::mxFastOrganicLayout::minDistanceLimitSquared</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Cached version of minDistanceLimit squared. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9d25658bf242ccfd7f261c4b849fd6c1"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::neighbours" ref="a9d25658bf242ccfd7f261c4b849fd6c1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int [][] <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a9d25658bf242ccfd7f261c4b849fd6c1">com::mxgraph::mxFastOrganicLayout::neighbours</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Local copy of cell neighbours. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab408033234dd280872595012e1bbf1e2"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::radius" ref="ab408033234dd280872595012e1bbf1e2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double [] <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab408033234dd280872595012e1bbf1e2">com::mxgraph::mxFastOrganicLayout::radius</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>The approximate radius of each cell, nodes only. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acb1741efc08f1bc825dc98ae4877fe92"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::radiusSquared" ref="acb1741efc08f1bc825dc98ae4877fe92" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double [] <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acb1741efc08f1bc825dc98ae4877fe92">com::mxgraph::mxFastOrganicLayout::radiusSquared</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>The approximate radius squared of each cell, nodes only. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aeb4135bb0af32e37eccdf4d9602ac884"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::random" ref="aeb4135bb0af32e37eccdf4d9602ac884" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Random <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aeb4135bb0af32e37eccdf4d9602ac884">com::mxgraph::mxFastOrganicLayout::random</a> = new Random()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Random number generator. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab361f5308d1d48d3de5f5f4520a37b58"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::temperature" ref="ab361f5308d1d48d3de5f5f4520a37b58" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab361f5308d1d48d3de5f5f4520a37b58">com::mxgraph::mxFastOrganicLayout::temperature</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Temperature to limit displacement at later stages of layout. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a46527e41184476f1b59fe00ca1218dd1"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::vertexArray" ref="a46527e41184476f1b59fe00ca1218dd1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a46527e41184476f1b59fe00ca1218dd1">com::mxgraph::mxFastOrganicLayout::vertexArray</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>An array of all vertices to be laid out. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a12d4bcd993ca7d09c179c9bd6235e7c6"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::ForceConstant" ref="a12d4bcd993ca7d09c179c9bd6235e7c6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxFastOrganicLayout::ForceConstant<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Force constant to be used for the springs. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac2659499c12a2967694b2bcec28dcb48"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::InitialTemp" ref="ac2659499c12a2967694b2bcec28dcb48" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxFastOrganicLayout::InitialTemp<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Initial temperature. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab926409f7f7f7022b5e12ca5225c0e7d"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::IsAllowedToRun" ref="ab926409f7f7f7022b5e12ca5225c0e7d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxFastOrganicLayout::IsAllowedToRun<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Flag to stop a running layout run. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ade1c6ceb16929e0736db8419222752cd"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::MaxIterations" ref="ade1c6ceb16929e0736db8419222752cd" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxFastOrganicLayout::MaxIterations<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maximum number of iterations. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8e19280f5a5c4748dbba27db9b62dfc6"></a><!-- doxytag: member="com::mxgraph::mxFastOrganicLayout::MinDistanceLimit" ref="a8e19280f5a5c4748dbba27db9b62dfc6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxFastOrganicLayout::MinDistanceLimit<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Minimum distance between nodes. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/layout/mxFastOrganicLayout.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxFastOrganicLayout.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxFastOrganicLayout.png
    new file mode 100644
    index 000000000..8b5c57e52
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxFastOrganicLayout.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas-members.html
    new file mode 100644
    index 000000000..afddfe302
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas-members.html
    @@ -0,0 +1,72 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGdiCanvas Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a14c54203435c3e2880be1724bfe7a091">DEFAULT_IMAGEBASEPATH</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4e953fd9c08480d3bf94ab9a4cfa5ee5">Destroy</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aafd04d8ceb82b55fc66d9e981ca50cb2">DrawActor</a>(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a8d7fa4bb190ff786d64bf4b08a3d1c24">DrawCell</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0b728e530315de862d80ad5084c0adbf">DrawCloud</a>(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ab29840b550d4e8e7ce810756e31bd253">DrawCylinder</a>(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#af37625a04f9f7d8ed9da18f102b5aeb5">DrawGlassEffect</a>(int x, int y, int w, int h, Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abd6590a03ffb103ce52e56c7efba53df">DrawHexagon</a>(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, string direction)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abe12b70a40a05bb43d4d06559a28e020">DrawImage</a>(int x, int y, int w, int h, String image)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#acf425d50d39e240b84152f5548848d36">DrawImage</a>(int x, int y, int w, int h, String image, bool preserveAspect, bool flipH, bool flipV)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0f874cdb7c36e7ea41f8c5099d598c8b">DrawLabel</a>(string text, mxCellState state, bool html)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a58b28e3540f378026b3ddc633ed48be0">DrawLabels</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a7cd23491208e3140dad748b6a7939d6e">drawLabels</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4364c3768a269869b078890cd7341397">DrawLine</a>(List&lt; mxPoint &gt; pts, Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a21d332b458c681d0af7492d679722bb3">DrawMarker</a>(Object type, mxPoint p0, mxPoint pe, float size, Pen pen)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a06a77b51925696ff6d2f4702e71b9af1">DrawOval</a>(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a3a68ca8e3f7a86021498925900927b79">DrawPath</a>(GraphicsPath path, Brush brush, Pen pen, bool shadow)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abaf2255b6c98e42889e870439ef0fc26">DrawPolygon</a>(Point[] polygon, Brush brush, Pen pen, bool shadow)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ac5f846defe137723729aef143f7d1259">DrawRect</a>(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, bool rounded)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a000fc6507f6faf2afa3665ce0936acd7">DrawRhombus</a>(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#add14dc3bfb5bf6b79f39f3683562de5d">DrawShape</a>(int x, int y, int w, int h, Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4ef438995740da54702f38b343bd99f6">DrawText</a>(string text, int x, int y, int w, int h, Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a3c467a694ed0b8dd1577befaa3d853fa">DrawTriangle</a>(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, string direction)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a85bc82f5001ec06221efb9bccc70e84d">g</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abc62e1f0350b94362408ba2a3ef206fe">getArcSize</a>(int w, int h)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aaa43dbca294eab07d9c3d6dbbea7ac1b">GetImageForStyle</a>(Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aa478f6bf5a460b175342e1b61c321ec2">Graphics</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#af418e32f21afd6c4f3dd72f333e4d737">ImageBasePath</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a750bd6bc1df65eb9966655b446df9776">imageBasePath</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a5c377564f1931be090a0cf75176b70d2">imageCache</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a691ee852a7a0fe38907842e405d7e20a">LoadImage</a>(String image)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ade50e4054fabc7b34d872a388c6dc164">mxGdiCanvas</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a90acc90de62813c3b24bba07ab0c84f8">mxGdiCanvas</a>(Graphics g)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aa2aeea2c29b35fbd1e9c101d0299f466">PRESERVE_IMAGE_ASPECT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ace635b44380cd9079dcb359c366bbf64">Scale</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aac3fc24bb030cf38538f6848e275beeb">scale</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ab95273a90d8165c4925b4141754bc730">Translate</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aa71888f9cebf04ac84e71c302f4124f8">translate</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas.html
    new file mode 100644
    index 000000000..4aece9138
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas.html
    @@ -0,0 +1,1441 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxGdiCanvas Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGdiCanvas Class Reference</h1><!-- doxytag: class="com::mxgraph::mxGdiCanvas" --><!-- doxytag: inherits="com::mxgraph::mxBasicCanvas" -->
    +<p>Implementation of a canvas that uses GDI for painting.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxGdiCanvas:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxGdiCanvas.png" usemap="#com::mxgraph::mxGdiCanvas_map" alt=""/>
    +  <map id="com::mxgraph::mxGdiCanvas_map" name="com::mxgraph::mxGdiCanvas_map">
    +<area href="classcom_1_1mxgraph_1_1mxBasicCanvas.html" alt="com::mxgraph::mxBasicCanvas" shape="rect" coords="0,56,184,80"/>
    +<area href="interfacecom_1_1mxgraph_1_1mxICanvas.html" alt="com::mxgraph::mxICanvas" shape="rect" coords="0,0,184,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxGdiCanvas-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ade50e4054fabc7b34d872a388c6dc164">mxGdiCanvas</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new GDI canvas.  <a href="#ade50e4054fabc7b34d872a388c6dc164"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a90acc90de62813c3b24bba07ab0c84f8">mxGdiCanvas</a> (Graphics <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a85bc82f5001ec06221efb9bccc70e84d">g</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new GDI canvas for the given graphics instance.  <a href="#a90acc90de62813c3b24bba07ab0c84f8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">override Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a8d7fa4bb190ff786d64bf4b08a3d1c24">DrawCell</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f" title="Draws the given cell.">com.mxgraph.mxICanvas.DrawCell()</a>  <a href="#a8d7fa4bb190ff786d64bf4b08a3d1c24"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">override Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0f874cdb7c36e7ea41f8c5099d598c8b">DrawLabel</a> (string text, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, bool html)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79" title="Draws the given label.">com.mxgraph.mxICanvas.DrawLabel()</a>  <a href="#a0f874cdb7c36e7ea41f8c5099d598c8b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#add14dc3bfb5bf6b79f39f3683562de5d">DrawShape</a> (int x, int y, int w, int h, Dictionary&lt; string, Object &gt; style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the shape specified with the STYLE_SHAPE key in the given style.  <a href="#add14dc3bfb5bf6b79f39f3683562de5d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4364c3768a269869b078890cd7341397">DrawLine</a> (List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt; pts, Dictionary&lt; string, Object &gt; style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the given lines as segments between all points of the given list of mxPoints.  <a href="#a4364c3768a269869b078890cd7341397"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a21d332b458c681d0af7492d679722bb3">DrawMarker</a> (Object type, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> p0, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> pe, float size, Pen pen)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the given type of marker.  <a href="#a21d332b458c681d0af7492d679722bb3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4ef438995740da54702f38b343bd99f6">DrawText</a> (string text, int x, int y, int w, int h, Dictionary&lt; string, Object &gt; style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the specified text either using drawHtmlString or using drawString.  <a href="#a4ef438995740da54702f38b343bd99f6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4e953fd9c08480d3bf94ab9a4cfa5ee5">Destroy</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroys the canvas and frees all allocated resources.  <a href="#a4e953fd9c08480d3bf94ab9a4cfa5ee5"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abc62e1f0350b94362408ba2a3ef206fe">getArcSize</a> (int w, int h)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes the arc size for the given dimension.  <a href="#abc62e1f0350b94362408ba2a3ef206fe"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aa2aeea2c29b35fbd1e9c101d0299f466">PRESERVE_IMAGE_ASPECT</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if image aspect should be preserved in drawImage.  <a href="#aa2aeea2c29b35fbd1e9c101d0299f466"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a691ee852a7a0fe38907842e405d7e20a">LoadImage</a> (String image)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an image instance for the given URL. If the URL has been loaded before than an instance of the same instance is returned as in the previous call.  <a href="#a691ee852a7a0fe38907842e405d7e20a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#af37625a04f9f7d8ed9da18f102b5aeb5">DrawGlassEffect</a> (int x, int y, int w, int h, Dictionary&lt; string, Object &gt; style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the glass effect.  <a href="#af37625a04f9f7d8ed9da18f102b5aeb5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abaf2255b6c98e42889e870439ef0fc26">DrawPolygon</a> (Point[] polygon, Brush brush, Pen pen, bool shadow)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a a polygon for the given parameters.  <a href="#abaf2255b6c98e42889e870439ef0fc26"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a3a68ca8e3f7a86021498925900927b79">DrawPath</a> (GraphicsPath path, Brush brush, Pen pen, bool shadow)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a path for the given parameters.  <a href="#a3a68ca8e3f7a86021498925900927b79"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ac5f846defe137723729aef143f7d1259">DrawRect</a> (int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, bool rounded)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a rectangle for the given parameters.  <a href="#ac5f846defe137723729aef143f7d1259"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abe12b70a40a05bb43d4d06559a28e020">DrawImage</a> (int x, int y, int w, int h, String image)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws an image for the given parameters.  <a href="#abe12b70a40a05bb43d4d06559a28e020"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#acf425d50d39e240b84152f5548848d36">DrawImage</a> (int x, int y, int w, int h, String image, bool preserveAspect, bool flipH, bool flipV)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws an image for the given parameters.  <a href="#acf425d50d39e240b84152f5548848d36"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a06a77b51925696ff6d2f4702e71b9af1">DrawOval</a> (int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws an oval for the given parameters.  <a href="#a06a77b51925696ff6d2f4702e71b9af1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a000fc6507f6faf2afa3665ce0936acd7">DrawRhombus</a> (int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws an rhombus (aka. diamond) for the given parameters.  <a href="#a000fc6507f6faf2afa3665ce0936acd7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ab29840b550d4e8e7ce810756e31bd253">DrawCylinder</a> (int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a cylinder for the given parameters.  <a href="#ab29840b550d4e8e7ce810756e31bd253"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aafd04d8ceb82b55fc66d9e981ca50cb2">DrawActor</a> (int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws an actor shape for the given parameters.  <a href="#aafd04d8ceb82b55fc66d9e981ca50cb2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0b728e530315de862d80ad5084c0adbf">DrawCloud</a> (int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a cloud shape for the given parameters.  <a href="#a0b728e530315de862d80ad5084c0adbf"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a3c467a694ed0b8dd1577befaa3d853fa">DrawTriangle</a> (int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, string direction)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a triangle shape for the given parameters.  <a href="#a3c467a694ed0b8dd1577befaa3d853fa"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abd6590a03ffb103ce52e56c7efba53df">DrawHexagon</a> (int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, string direction)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a hexagon shape for the given parameters.  <a href="#abd6590a03ffb103ce52e56c7efba53df"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Image &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a5c377564f1931be090a0cf75176b70d2">imageCache</a> = new Dictionary&lt;string, Image&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cache for loading images.  <a href="#a5c377564f1931be090a0cf75176b70d2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Graphics&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a85bc82f5001ec06221efb9bccc70e84d">g</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Global graphics handle to the image.  <a href="#a85bc82f5001ec06221efb9bccc70e84d"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Graphics&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aa478f6bf5a460b175342e1b61c321ec2">Graphics</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or gets the graphics object to paint the canvas.  <a href="#aa478f6bf5a460b175342e1b61c321ec2"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implementation of a canvas that uses GDI for painting. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="ade50e4054fabc7b34d872a388c6dc164"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::mxGdiCanvas" ref="ade50e4054fabc7b34d872a388c6dc164" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGdiCanvas::mxGdiCanvas </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new GDI canvas. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a90acc90de62813c3b24bba07ab0c84f8"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::mxGdiCanvas" ref="a90acc90de62813c3b24bba07ab0c84f8" args="(Graphics g)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGdiCanvas::mxGdiCanvas </td>
    +          <td>(</td>
    +          <td class="paramtype">Graphics&nbsp;</td>
    +          <td class="paramname"> <em>g</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new GDI canvas for the given graphics instance. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a4e953fd9c08480d3bf94ab9a4cfa5ee5"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::Destroy" ref="a4e953fd9c08480d3bf94ab9a4cfa5ee5" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::Destroy </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Destroys the canvas and frees all allocated resources. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aafd04d8ceb82b55fc66d9e981ca50cb2"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawActor" ref="aafd04d8ceb82b55fc66d9e981ca50cb2" args="(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawActor </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws an actor shape for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8d7fa4bb190ff786d64bf4b08a3d1c24"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawCell" ref="a8d7fa4bb190ff786d64bf4b08a3d1c24" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">override Object com::mxgraph::mxGdiCanvas::DrawCell </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f" title="Draws the given cell.">com.mxgraph.mxICanvas.DrawCell()</a> </p>
    +
    +<p>Implements <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ae3632533a1518faf4a0283e31e40bb6f">com::mxgraph::mxBasicCanvas</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0b728e530315de862d80ad5084c0adbf"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawCloud" ref="a0b728e530315de862d80ad5084c0adbf" args="(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawCloud </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a cloud shape for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab29840b550d4e8e7ce810756e31bd253"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawCylinder" ref="ab29840b550d4e8e7ce810756e31bd253" args="(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawCylinder </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a cylinder for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af37625a04f9f7d8ed9da18f102b5aeb5"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawGlassEffect" ref="af37625a04f9f7d8ed9da18f102b5aeb5" args="(int x, int y, int w, int h, Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawGlassEffect </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the glass effect. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abd6590a03ffb103ce52e56c7efba53df"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawHexagon" ref="abd6590a03ffb103ce52e56c7efba53df" args="(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, string direction)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawHexagon </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>direction</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a hexagon shape for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>direction</em>&nbsp;</td><td>Specifies the direction of the hexagon.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acf425d50d39e240b84152f5548848d36"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawImage" ref="acf425d50d39e240b84152f5548848d36" args="(int x, int y, int w, int h, String image, bool preserveAspect, bool flipH, bool flipV)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawImage </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>image</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>preserveAspect</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipH</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipV</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws an image for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the image.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the image.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the image.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the image.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>image</em>&nbsp;</td><td>URL of the image.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abe12b70a40a05bb43d4d06559a28e020"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawImage" ref="abe12b70a40a05bb43d4d06559a28e020" args="(int x, int y, int w, int h, String image)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawImage </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>image</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws an image for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the image.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the image.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the image.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the image.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>image</em>&nbsp;</td><td>URL of the image.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0f874cdb7c36e7ea41f8c5099d598c8b"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawLabel" ref="a0f874cdb7c36e7ea41f8c5099d598c8b" args="(string text, mxCellState state, bool html)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">override Object com::mxgraph::mxGdiCanvas::DrawLabel </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>html</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79" title="Draws the given label.">com.mxgraph.mxICanvas.DrawLabel()</a> </p>
    +
    +<p>Implements <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a105ec52cceacc015399516e8451248b2">com::mxgraph::mxBasicCanvas</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4364c3768a269869b078890cd7341397"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawLine" ref="a4364c3768a269869b078890cd7341397" args="(List&lt; mxPoint &gt; pts, Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawLine </td>
    +          <td>(</td>
    +          <td class="paramtype">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td>
    +          <td class="paramname"> <em>pts</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the given lines as segments between all points of the given list of mxPoints. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>pts</em>&nbsp;</td><td>List of points that define the line.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>Style to be used for painting the line.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a21d332b458c681d0af7492d679722bb3"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawMarker" ref="a21d332b458c681d0af7492d679722bb3" args="(Object type, mxPoint p0, mxPoint pe, float size, Pen pen)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGdiCanvas::DrawMarker </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>type</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>p0</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>pe</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">float&nbsp;</td>
    +          <td class="paramname"> <em>size</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the given type of marker. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>p0</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pe</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a06a77b51925696ff6d2f4702e71b9af1"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawOval" ref="a06a77b51925696ff6d2f4702e71b9af1" args="(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawOval </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws an oval for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3a68ca8e3f7a86021498925900927b79"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawPath" ref="a3a68ca8e3f7a86021498925900927b79" args="(GraphicsPath path, Brush brush, Pen pen, bool shadow)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawPath </td>
    +          <td>(</td>
    +          <td class="paramtype">GraphicsPath&nbsp;</td>
    +          <td class="paramname"> <em>path</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a path for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>Path object to be drawn.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abaf2255b6c98e42889e870439ef0fc26"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawPolygon" ref="abaf2255b6c98e42889e870439ef0fc26" args="(Point[] polygon, Brush brush, Pen pen, bool shadow)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawPolygon </td>
    +          <td>(</td>
    +          <td class="paramtype">Point[]&nbsp;</td>
    +          <td class="paramname"> <em>polygon</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a a polygon for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>polygon</em>&nbsp;</td><td>Points of the polygon.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac5f846defe137723729aef143f7d1259"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawRect" ref="ac5f846defe137723729aef143f7d1259" args="(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, bool rounded)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawRect </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>rounded</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a rectangle for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>rounded</em>&nbsp;</td><td>Boolean indicating if the rectangle is rounded.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a000fc6507f6faf2afa3665ce0936acd7"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawRhombus" ref="a000fc6507f6faf2afa3665ce0936acd7" args="(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawRhombus </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws an rhombus (aka. diamond) for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="add14dc3bfb5bf6b79f39f3683562de5d"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawShape" ref="add14dc3bfb5bf6b79f39f3683562de5d" args="(int x, int y, int w, int h, Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawShape </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the shape specified with the STYLE_SHAPE key in the given style. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>Style of the the shape.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4ef438995740da54702f38b343bd99f6"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawText" ref="a4ef438995740da54702f38b343bd99f6" args="(string text, int x, int y, int w, int h, Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawText </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the specified text either using drawHtmlString or using drawString. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the text.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the text.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the text.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the text.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>Style to be used for painting the text.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3c467a694ed0b8dd1577befaa3d853fa"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::DrawTriangle" ref="a3c467a694ed0b8dd1577befaa3d853fa" args="(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, string direction)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas::DrawTriangle </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Pen&nbsp;</td>
    +          <td class="paramname"> <em>pen</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>shadow</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>direction</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a triangle shape for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the shape.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td>Optional brush for painting the background.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>pen</em>&nbsp;</td><td>Optional pen for painting the border.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>shadow</em>&nbsp;</td><td>Boolean indicating if a shadow should be painted.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>direction</em>&nbsp;</td><td>Specifies the direction of the triangle.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abc62e1f0350b94362408ba2a3ef206fe"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::getArcSize" ref="abc62e1f0350b94362408ba2a3ef206fe" args="(int w, int h)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static int com::mxgraph::mxGdiCanvas::getArcSize </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>h</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Computes the arc size for the given dimension. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>Width of the rectangle.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>Height of the rectangle.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the arc size for the given dimension.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a691ee852a7a0fe38907842e405d7e20a"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::LoadImage" ref="a691ee852a7a0fe38907842e405d7e20a" args="(String image)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Image com::mxgraph::mxGdiCanvas::LoadImage </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>image</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns an image instance for the given URL. If the URL has been loaded before than an instance of the same instance is returned as in the previous call. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a85bc82f5001ec06221efb9bccc70e84d"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::g" ref="a85bc82f5001ec06221efb9bccc70e84d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Graphics <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a85bc82f5001ec06221efb9bccc70e84d">com::mxgraph::mxGdiCanvas::g</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Global graphics handle to the image. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5c377564f1931be090a0cf75176b70d2"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::imageCache" ref="a5c377564f1931be090a0cf75176b70d2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Image&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a5c377564f1931be090a0cf75176b70d2">com::mxgraph::mxGdiCanvas::imageCache</a> = new Dictionary&lt;string, Image&gt;()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Cache for loading images. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa2aeea2c29b35fbd1e9c101d0299f466"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::PRESERVE_IMAGE_ASPECT" ref="aa2aeea2c29b35fbd1e9c101d0299f466" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aa2aeea2c29b35fbd1e9c101d0299f466">com::mxgraph::mxGdiCanvas::PRESERVE_IMAGE_ASPECT</a> = true<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if image aspect should be preserved in drawImage. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="aa478f6bf5a460b175342e1b61c321ec2"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas::Graphics" ref="aa478f6bf5a460b175342e1b61c321ec2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Graphics com::mxgraph::mxGdiCanvas::Graphics<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or gets the graphics object to paint the canvas. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/canvas/mxGdiCanvas.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas.png
    new file mode 100644
    index 000000000..34a46ed5d
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D-members.html
    new file mode 100644
    index 000000000..9647daba9
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D-members.html
    @@ -0,0 +1,94 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGdiCanvas2D Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad30fb99f1065da8fb956ceb519884381">Alpha</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a912799fcd5815fe7ef01cffa09db2df4">Begin</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac7b2da6955b71fa92e0acdb540d27644">Clip</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a74b61843c65431397481572da60234c9">Close</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#afbf738dda3e2f5dcb3814f2a3b8342af">ConfigureImageGraphics</a>(double x, double y, double w, double h, bool flipH, bool flipV)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae1eb2fce0a82af1bacd9232a99edd63c">CreateFont</a>(String family, FontStyle style, int size)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a1d76c9e4f021f98578088e536c2cb50a">CreateStringFormat</a>(string align, string valign, bool wrap)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a72fef5bf7f66445b934a21caab5e7742">currentPath</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa3055da45b5c778072dddd4071a03f1d">currentShadowColor</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a3fc5d5d55bffc42a02714b23d46c4f18">currentShadowValue</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaa2904f7cac79881913fe04c1a209181">CurveTo</a>(double x1, double y1, double x2, double y2, double x3, double y3)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa77ee2108750ef5c2e4e60306feb1a0d">Dashed</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a92aaa9ef4ad6f542db277e988bcc41b5">DashPattern</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a807941de776f8e92b7c73639c0abe815">DrawImage</a>(Image image, Rectangle bounds)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a23449cbcc3027e256de3ce5f2bbcd816">Ellipse</a>(double x, double y, double w, double h)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae53d52437c829ca4f99b9302a5fc4864">Fill</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a5dd3031fb89d6f1d18e7433249a3fdd3">FillAndStroke</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a192122f8dd7753b20c59cb33458c2e4b">FillColor</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac6f30b477f76d920c5597edd1d687e10">FontColor</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae19b4bee4c6caca4f578037ba3d341d2">FontFamily</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad71b4013cd083413c542e53818d32ef3">FontSize</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9e4c081acdb7fc0b363adbfa345f0671">FontStyle</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a96ecfe8d425f793da3b646b48be02d35">GetHorizontalTextPosition</a>(double x, double y, double w, double h, string align, string valign, bool vertical, Font font, string text, bool wrap, string format)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a7c7c5e074e3f8fee151e0ce7be4ea240">GetImageBounds</a>(Image img, double x, double y, double w, double h, bool aspect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a74865ef852d7c4b6f05163c95ddb4785">GetImageSize</a>(Image image)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a02e23930cf57f18fa376d0c868e39d61">GetTextWidth</a>(double x, double y, double w, double h, string align, string valign, bool vertical, Font font, string text, bool wrap, string format)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a833a10444fd1ced3ee9e3fb36e12851d">GetVerticalTextPosition</a>(double x, double y, double w, double h, string align, string valign, bool vertical, Font font, string text, bool wrap, string format)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aee6c39db9b3b2a0de38834f3b269bfc3">graphics</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaece05317ab22246d7be9221d7e30ed3">Image</a>(double x, double y, double w, double h, String src, bool aspect, bool flipH, bool flipV)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4c05a8cdbd96edbe00bcecc52b8d6e93">com::mxgraph::mxICanvas2D::Image</a>(double x, double y, double w, double h, string src, bool aspect, bool flipH, bool flipV)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2f594bc974a37b0838751ae67f9ce8d1">lastPoint</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb5e8e776beb7049c86cd225748033e4">LineCap</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb7383d17e4ae8c2d90798ae06a22c94">LineJoin</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2be519434efaeb4663cd9ae7cc31d49d">LineTo</a>(double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a990c73e19081acbb58bdb0edbe313d1f">LoadImage</a>(String src)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9eb9a243faf69d55a94862f93f5aa985">MiterLimit</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a1311082c50b96983ef88056f0f924be4">MoveTo</a>(double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#af68a0bc9a8655aa30db90e8d230e9c9b">mxGdiCanvas2D</a>(Graphics g)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a49a2d9c26dd1afc66aeaf0be3972bba3">ParseColor</a>(string hex)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#adbef5129943b03e4e349f36139926f6e">QuadTo</a>(double x1, double y1, double x2, double y2)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abf1749074624b5f849b8b12c85d81233">Rect</a>(double x, double y, double w, double h)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aef706f844a586f48ef3c96731dbb687d">Restore</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac5af10b7d8e1f0f9c163da14cd51eb9e">Rotate</a>(double theta, bool flipH, bool flipV, double cx, double cy)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad4fccac39e1182fade708caf0a57eaf3">Roundrect</a>(double x, double y, double w, double h, double dx, double dy)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ace20f35dae70d42164f3d5aa422eee9c">Save</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a427ec8105550a274f1a08ff8113d687d">Scale</a>(double value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeac7fbfd34479f1b994cc8b4ecf0bc5e">SetGlassGradient</a>(double x, double y, double w, double h)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a0e38c2ec1e182a78480140a676a49e06">SetGradient</a>(String color1, String color2, double x, double y, double w, double h, String direction)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af04887740790c4849e649f91b142d5b2">com::mxgraph::mxICanvas2D::SetGradient</a>(string color1, string color2, double x, double y, double w, double h, string direction)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abeccbac84e25abacd71e4059521a37bf">Shadow</a>(String value, bool filled)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a807a0eae6f0574aa2b4f236a0b76d2cc">com::mxgraph::mxICanvas2D::Shadow</a>(string value, bool filled)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abc5fcb884643bbea7bc7ef6234a37859">stack</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a303fe4863af0b0682531e41a0a86c2b2">state</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a0278180b14e6ed4bf0075855c73f074b">Stroke</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#addc63fa18ad55a6d496137c52c2f6410">StrokeColor</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac45d24fb89674db75ee34825bfe8739e">StrokeWidth</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a083e98246802e087c999f16a4f8b7407">Text</a>(double x, double y, double w, double h, string str, string align, string valign, bool vertical, bool wrap, string format)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a541aa4694c566326143ffb5492674719">Translate</a>(double dx, double dy)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a8f3187310e70282e8d2c9a662e8ea92b">UpdateFont</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a97a780d6f3b4b24f6bc62ad524cccca4">UpdatePen</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></td><td><code> [inline, protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D.html
    new file mode 100644
    index 000000000..bc76ea0b8
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D.html
    @@ -0,0 +1,1899 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxGdiCanvas2D Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGdiCanvas2D Class Reference</h1><!-- doxytag: class="com::mxgraph::mxGdiCanvas2D" --><!-- doxytag: inherits="com::mxgraph::mxICanvas2D" -->
    +<p>Used for exporting images. To render to an image from a given XML string, graph size and and background color, the following code is used: </p>
    +<div class="fragment"><pre class="fragment">        <a class="code" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaece05317ab22246d7be9221d7e30ed3" title="Draws an image.">Image</a> image = mxUtils.CreateImage(width, height, background);
    +        Graphics g = Graphics.FromImage(image);
    +        g.SmoothingMode = SmoothingMode.HighQuality;
    +        mxSaxOutputHandler handler = <span class="keyword">new</span> mxSaxOutputHandler(<span class="keyword">new</span> <a class="code" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#af68a0bc9a8655aa30db90e8d230e9c9b">mxGdiCanvas2D</a>(g));
    +        handler.Read(<span class="keyword">new</span> XmlTextReader(<span class="keyword">new</span> StringReader(xml)));
    +</pre></div> Text rendering is available for plain text only, with optional word wrapping.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxGdiCanvas2D:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxGdiCanvas2D.png" usemap="#com::mxgraph::mxGdiCanvas2D_map" alt=""/>
    +  <map id="com::mxgraph::mxGdiCanvas2D_map" name="com::mxgraph::mxGdiCanvas2D_map">
    +<area href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html" alt="com::mxgraph::mxICanvas2D" shape="rect" coords="0,0,188,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxGdiCanvas2D-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Classes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a></td></tr>
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#af68a0bc9a8655aa30db90e8d230e9c9b">mxGdiCanvas2D</a> (Graphics g)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ace20f35dae70d42164f3d5aa422eee9c">Save</a> ()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aef706f844a586f48ef3c96731dbb687d">Restore</a> ()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a427ec8105550a274f1a08ff8113d687d">Scale</a> (double value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the given scale.  <a href="#a427ec8105550a274f1a08ff8113d687d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a541aa4694c566326143ffb5492674719">Translate</a> (double dx, double dy)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates the canvas.  <a href="#a541aa4694c566326143ffb5492674719"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac5af10b7d8e1f0f9c163da14cd51eb9e">Rotate</a> (double theta, bool flipH, bool flipV, double cx, double cy)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the canvas.  <a href="#ac5af10b7d8e1f0f9c163da14cd51eb9e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a0e38c2ec1e182a78480140a676a49e06">SetGradient</a> (String color1, String color2, double x, double y, double w, double h, String direction)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the given gradient.  <a href="#a0e38c2ec1e182a78480140a676a49e06"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeac7fbfd34479f1b994cc8b4ecf0bc5e">SetGlassGradient</a> (double x, double y, double w, double h)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the given glass gradient.  <a href="#aeac7fbfd34479f1b994cc8b4ecf0bc5e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abf1749074624b5f849b8b12c85d81233">Rect</a> (double x, double y, double w, double h)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a rectangle.  <a href="#abf1749074624b5f849b8b12c85d81233"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad4fccac39e1182fade708caf0a57eaf3">Roundrect</a> (double x, double y, double w, double h, double dx, double dy)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a23449cbcc3027e256de3ce5f2bbcd816">Ellipse</a> (double x, double y, double w, double h)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws an ellipse.  <a href="#a23449cbcc3027e256de3ce5f2bbcd816"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaece05317ab22246d7be9221d7e30ed3">Image</a> (double x, double y, double w, double h, String src, bool aspect, bool flipH, bool flipV)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws an image.  <a href="#aaece05317ab22246d7be9221d7e30ed3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a083e98246802e087c999f16a4f8b7407">Text</a> (double x, double y, double w, double h, string str, string align, string valign, bool vertical, bool wrap, string format)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a912799fcd5815fe7ef01cffa09db2df4">Begin</a> ()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a1311082c50b96983ef88056f0f924be4">MoveTo</a> (double x, double y)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2be519434efaeb4663cd9ae7cc31d49d">LineTo</a> (double x, double y)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#adbef5129943b03e4e349f36139926f6e">QuadTo</a> (double x1, double y1, double x2, double y2)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaa2904f7cac79881913fe04c1a209181">CurveTo</a> (double x1, double y1, double x2, double y2, double x3, double y3)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a74b61843c65431397481572da60234c9">Close</a> ()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a0278180b14e6ed4bf0075855c73f074b">Stroke</a> ()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae53d52437c829ca4f99b9302a5fc4864">Fill</a> ()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a5dd3031fb89d6f1d18e7433249a3fdd3">FillAndStroke</a> ()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abeccbac84e25abacd71e4059521a37bf">Shadow</a> (String value, bool filled)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac7b2da6955b71fa92e0acdb540d27644">Clip</a> ()</td></tr>
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static StringFormat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a1d76c9e4f021f98578088e536c2cb50a">CreateStringFormat</a> (string align, string valign, bool wrap)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates the specified string format.  <a href="#a1d76c9e4f021f98578088e536c2cb50a"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Color&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a49a2d9c26dd1afc66aeaf0be3972bba3">ParseColor</a> (string hex)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Helper method that uses <a class="el" href="">mxUtils#parseColor(String)</a>. Subclassers.  <a href="#a49a2d9c26dd1afc66aeaf0be3972bba3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a807941de776f8e92b7c73639c0abe815">DrawImage</a> (Image image, Rectangle bounds)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements the call to the graphics API.  <a href="#a807941de776f8e92b7c73639c0abe815"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a990c73e19081acbb58bdb0edbe313d1f">LoadImage</a> (String src)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Loads the specified image.  <a href="#a990c73e19081acbb58bdb0edbe313d1f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Rectangle&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a7c7c5e074e3f8fee151e0ce7be4ea240">GetImageBounds</a> (Image img, double x, double y, double w, double h, bool aspect)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds for the given image.  <a href="#a7c7c5e074e3f8fee151e0ce7be4ea240"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Size&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a74865ef852d7c4b6f05163c95ddb4785">GetImageSize</a> (Image image)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the size for the given image.  <a href="#a74865ef852d7c4b6f05163c95ddb4785"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#afbf738dda3e2f5dcb3814f2a3b8342af">ConfigureImageGraphics</a> (double x, double y, double w, double h, bool flipH, bool flipV)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a02e23930cf57f18fa376d0c868e39d61">GetTextWidth</a> (double x, double y, double w, double h, string align, string valign, bool vertical, Font font, string text, bool wrap, string format)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the width to be used to render the specifies text.  <a href="#a02e23930cf57f18fa376d0c868e39d61"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a833a10444fd1ced3ee9e3fb36e12851d">GetVerticalTextPosition</a> (double x, double y, double w, double h, string align, string valign, bool vertical, Font font, string text, bool wrap, string format)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default alignment is top.  <a href="#a833a10444fd1ced3ee9e3fb36e12851d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a96ecfe8d425f793da3b646b48be02d35">GetHorizontalTextPosition</a> (double x, double y, double w, double h, string align, string valign, bool vertical, Font font, string text, bool wrap, string format)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default alignment is left.  <a href="#a96ecfe8d425f793da3b646b48be02d35"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a8f3187310e70282e8d2c9a662e8ea92b">UpdateFont</a> ()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Font&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae1eb2fce0a82af1bacd9232a99edd63c">CreateFont</a> (String family, FontStyle style, int size)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a97a780d6f3b4b24f6bc62ad524cccca4">UpdatePen</a> ()</td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Graphics&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aee6c39db9b3b2a0de38834f3b269bfc3">graphics</a></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a303fe4863af0b0682531e41a0a86c2b2">state</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a>()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Stack&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abc5fcb884643bbea7bc7ef6234a37859">stack</a> = new Stack&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a>&gt;()</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">GraphicsPath&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a72fef5bf7f66445b934a21caab5e7742">currentPath</a></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2f594bc974a37b0838751ae67f9ce8d1">lastPoint</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the last point of a moveTo or lineTo operation to determine if the.  <a href="#a2f594bc974a37b0838751ae67f9ce8d1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a3fc5d5d55bffc42a02714b23d46c4f18">currentShadowValue</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the current value for the shadow color. This is used to hold the.  <a href="#a3fc5d5d55bffc42a02714b23d46c4f18"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Color&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa3055da45b5c778072dddd4071a03f1d">currentShadowColor</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the current parsed shadow color. This holds the result of parsing.  <a href="#aa3055da45b5c778072dddd4071a03f1d"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac45d24fb89674db75ee34825bfe8739e">StrokeWidth</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the strokewidth.  <a href="#ac45d24fb89674db75ee34825bfe8739e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#addc63fa18ad55a6d496137c52c2f6410">StrokeColor</a><code> [set]</code></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa77ee2108750ef5c2e4e60306feb1a0d">Dashed</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if lines are dashed.  <a href="#aa77ee2108750ef5c2e4e60306feb1a0d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a92aaa9ef4ad6f542db277e988bcc41b5">DashPattern</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the dashpattern.  <a href="#a92aaa9ef4ad6f542db277e988bcc41b5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb5e8e776beb7049c86cd225748033e4">LineCap</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the linecap.  <a href="#aeb5e8e776beb7049c86cd225748033e4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb7383d17e4ae8c2d90798ae06a22c94">LineJoin</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the linejoin.  <a href="#aeb7383d17e4ae8c2d90798ae06a22c94"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9eb9a243faf69d55a94862f93f5aa985">MiterLimit</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the miterlimit.  <a href="#a9eb9a243faf69d55a94862f93f5aa985"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad71b4013cd083413c542e53818d32ef3">FontSize</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the fontsize.  <a href="#ad71b4013cd083413c542e53818d32ef3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac6f30b477f76d920c5597edd1d687e10">FontColor</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the fontcolor.  <a href="#ac6f30b477f76d920c5597edd1d687e10"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae19b4bee4c6caca4f578037ba3d341d2">FontFamily</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the font family.  <a href="#ae19b4bee4c6caca4f578037ba3d341d2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9e4c081acdb7fc0b363adbfa345f0671">FontStyle</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the given fontstyle.  <a href="#a9e4c081acdb7fc0b363adbfa345f0671"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad30fb99f1065da8fb956ceb519884381">Alpha</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the given alpha.  <a href="#ad30fb99f1065da8fb956ceb519884381"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a192122f8dd7753b20c59cb33458c2e4b">FillColor</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the given fillcolor.  <a href="#a192122f8dd7753b20c59cb33458c2e4b"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Used for exporting images. To render to an image from a given XML string, graph size and and background color, the following code is used: </p>
    +<div class="fragment"><pre class="fragment">        <a class="code" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaece05317ab22246d7be9221d7e30ed3" title="Draws an image.">Image</a> image = mxUtils.CreateImage(width, height, background);
    +        Graphics g = Graphics.FromImage(image);
    +        g.SmoothingMode = SmoothingMode.HighQuality;
    +        mxSaxOutputHandler handler = <span class="keyword">new</span> mxSaxOutputHandler(<span class="keyword">new</span> <a class="code" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#af68a0bc9a8655aa30db90e8d230e9c9b">mxGdiCanvas2D</a>(g));
    +        handler.Read(<span class="keyword">new</span> XmlTextReader(<span class="keyword">new</span> StringReader(xml)));
    +</pre></div> <p>Text rendering is available for plain text only, with optional word wrapping. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="af68a0bc9a8655aa30db90e8d230e9c9b"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::mxGdiCanvas2D" ref="af68a0bc9a8655aa30db90e8d230e9c9b" args="(Graphics g)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGdiCanvas2D::mxGdiCanvas2D </td>
    +          <td>(</td>
    +          <td class="paramtype">Graphics&nbsp;</td>
    +          <td class="paramname"> <em>g</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Constructs a new graphics export canvas. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a912799fcd5815fe7ef01cffa09db2df4"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Begin" ref="a912799fcd5815fe7ef01cffa09db2df4" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Begin </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af2b8668d5b175b816c51951a61bfa02a">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac7b2da6955b71fa92e0acdb540d27644"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Clip" ref="ac7b2da6955b71fa92e0acdb540d27644" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Clip </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7422851f67a552d9ec84bf5ed06214d6">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a74b61843c65431397481572da60234c9"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Close" ref="a74b61843c65431397481572da60234c9" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Close </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Closes the current path. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac4ec8848dd2d583be1589103f2e00560">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afbf738dda3e2f5dcb3814f2a3b8342af"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::ConfigureImageGraphics" ref="afbf738dda3e2f5dcb3814f2a3b8342af" args="(double x, double y, double w, double h, bool flipH, bool flipV)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::ConfigureImageGraphics </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipH</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipV</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Creates a graphic instance for rendering an image. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae1eb2fce0a82af1bacd9232a99edd63c"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::CreateFont" ref="ae1eb2fce0a82af1bacd9232a99edd63c" args="(String family, FontStyle style, int size)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Font com::mxgraph::mxGdiCanvas2D::CreateFont </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>family</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">FontStyle&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Hook for subclassers to implement font caching. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1d76c9e4f021f98578088e536c2cb50a"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::CreateStringFormat" ref="a1d76c9e4f021f98578088e536c2cb50a" args="(string align, string valign, bool wrap)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static StringFormat com::mxgraph::mxGdiCanvas2D::CreateStringFormat </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>align</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>valign</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>wrap</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates the specified string format. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aaa2904f7cac79881913fe04c1a209181"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::CurveTo" ref="aaa2904f7cac79881913fe04c1a209181" args="(double x1, double y1, double x2, double y2, double x3, double y3)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::CurveTo </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x3</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y3</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad913dc5a8030d5f802d6c62662a53969">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a807941de776f8e92b7c73639c0abe815"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::DrawImage" ref="a807941de776f8e92b7c73639c0abe815" args="(Image image, Rectangle bounds)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::DrawImage </td>
    +          <td>(</td>
    +          <td class="paramtype">Image&nbsp;</td>
    +          <td class="paramname"> <em>image</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Rectangle&nbsp;</td>
    +          <td class="paramname"> <em>bounds</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements the call to the graphics API. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a23449cbcc3027e256de3ce5f2bbcd816"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Ellipse" ref="a23449cbcc3027e256de3ce5f2bbcd816" args="(double x, double y, double w, double h)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Ellipse </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws an ellipse. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a83b9df27f2fe4806e71e5664b39ac556">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae53d52437c829ca4f99b9302a5fc4864"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Fill" ref="ae53d52437c829ca4f99b9302a5fc4864" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Fill </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a97896c948354d29ad6036ec6882c7367">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5dd3031fb89d6f1d18e7433249a3fdd3"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::FillAndStroke" ref="a5dd3031fb89d6f1d18e7433249a3fdd3" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::FillAndStroke </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#adeb889eb1d1c5c1a0e00a0ce3dee9178">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a96ecfe8d425f793da3b646b48be02d35"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::GetHorizontalTextPosition" ref="a96ecfe8d425f793da3b646b48be02d35" args="(double x, double y, double w, double h, string align, string valign, bool vertical, Font font, string text, bool wrap, string format)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGdiCanvas2D::GetHorizontalTextPosition </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>align</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>valign</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>vertical</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Font&nbsp;</td>
    +          <td class="paramname"> <em>font</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>wrap</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>format</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default alignment is left. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7c7c5e074e3f8fee151e0ce7be4ea240"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::GetImageBounds" ref="a7c7c5e074e3f8fee151e0ce7be4ea240" args="(Image img, double x, double y, double w, double h, bool aspect)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Rectangle com::mxgraph::mxGdiCanvas2D::GetImageBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">Image&nbsp;</td>
    +          <td class="paramname"> <em>img</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>aspect</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds for the given image. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a74865ef852d7c4b6f05163c95ddb4785"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::GetImageSize" ref="a74865ef852d7c4b6f05163c95ddb4785" args="(Image image)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Size com::mxgraph::mxGdiCanvas2D::GetImageSize </td>
    +          <td>(</td>
    +          <td class="paramtype">Image&nbsp;</td>
    +          <td class="paramname"> <em>image</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the size for the given image. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a02e23930cf57f18fa376d0c868e39d61"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::GetTextWidth" ref="a02e23930cf57f18fa376d0c868e39d61" args="(double x, double y, double w, double h, string align, string valign, bool vertical, Font font, string text, bool wrap, string format)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGdiCanvas2D::GetTextWidth </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>align</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>valign</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>vertical</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Font&nbsp;</td>
    +          <td class="paramname"> <em>font</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>wrap</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>format</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the width to be used to render the specifies text. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a833a10444fd1ced3ee9e3fb36e12851d"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::GetVerticalTextPosition" ref="a833a10444fd1ced3ee9e3fb36e12851d" args="(double x, double y, double w, double h, string align, string valign, bool vertical, Font font, string text, bool wrap, string format)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGdiCanvas2D::GetVerticalTextPosition </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>align</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>valign</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>vertical</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Font&nbsp;</td>
    +          <td class="paramname"> <em>font</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>wrap</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>format</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default alignment is top. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aaece05317ab22246d7be9221d7e30ed3"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Image" ref="aaece05317ab22246d7be9221d7e30ed3" args="(double x, double y, double w, double h, String src, bool aspect, bool flipH, bool flipV)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Image </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>src</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>aspect</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipH</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipV</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws an image. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2be519434efaeb4663cd9ae7cc31d49d"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::LineTo" ref="a2be519434efaeb4663cd9ae7cc31d49d" args="(double x, double y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::LineTo </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7a86b49a5799e06a6545b2ef470051d0">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a990c73e19081acbb58bdb0edbe313d1f"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::LoadImage" ref="a990c73e19081acbb58bdb0edbe313d1f" args="(String src)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Image com::mxgraph::mxGdiCanvas2D::LoadImage </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>src</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Loads the specified image. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1311082c50b96983ef88056f0f924be4"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::MoveTo" ref="a1311082c50b96983ef88056f0f924be4" args="(double x, double y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::MoveTo </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad6739b41b41e978ab6966d981d31ccc2">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a49a2d9c26dd1afc66aeaf0be3972bba3"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::ParseColor" ref="a49a2d9c26dd1afc66aeaf0be3972bba3" args="(string hex)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Color com::mxgraph::mxGdiCanvas2D::ParseColor </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>hex</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Helper method that uses <a class="el" href="">mxUtils#parseColor(String)</a>. Subclassers. </p>
    +<p>can override this to implement caching for frequently used colors. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adbef5129943b03e4e349f36139926f6e"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::QuadTo" ref="adbef5129943b03e4e349f36139926f6e" args="(double x1, double y1, double x2, double y2)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::QuadTo </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y2</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a54d04210f84a725f6cf59336745c886a">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abf1749074624b5f849b8b12c85d81233"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Rect" ref="abf1749074624b5f849b8b12c85d81233" args="(double x, double y, double w, double h)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Rect </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a rectangle. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aba609b7d44a5ae5b4a391b5799a2f3ca">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aef706f844a586f48ef3c96731dbb687d"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Restore" ref="aef706f844a586f48ef3c96731dbb687d" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Restore </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Restores the last canvas state. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4d2d8898cae7d385e87e471f968f835f">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac5af10b7d8e1f0f9c163da14cd51eb9e"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Rotate" ref="ac5af10b7d8e1f0f9c163da14cd51eb9e" args="(double theta, bool flipH, bool flipV, double cx, double cy)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Rotate </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>theta</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipH</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipV</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>cx</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>cy</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Rotates the canvas. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae99cad30f6516ca9faeafd4af4cb1ec5">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad4fccac39e1182fade708caf0a57eaf3"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Roundrect" ref="ad4fccac39e1182fade708caf0a57eaf3" args="(double x, double y, double w, double h, double dx, double dy)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Roundrect </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dx</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dy</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Draws a rounded rectangle. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac93807c8770627c3aec3c92d46383c45">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ace20f35dae70d42164f3d5aa422eee9c"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Save" ref="ace20f35dae70d42164f3d5aa422eee9c" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Save </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Saves the current canvas state. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#acb028c15edb7471d8df2c9b4b288a2dc">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a427ec8105550a274f1a08ff8113d687d"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Scale" ref="a427ec8105550a274f1a08ff8113d687d" args="(double value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Scale </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the given scale. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af281d95936e45eb668c516b56bd0bde8">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aeac7fbfd34479f1b994cc8b4ecf0bc5e"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::SetGlassGradient" ref="aeac7fbfd34479f1b994cc8b4ecf0bc5e" args="(double x, double y, double w, double h)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::SetGlassGradient </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the given glass gradient. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a454419025bbd42ae392a5cd4d7d49163">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0e38c2ec1e182a78480140a676a49e06"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::SetGradient" ref="a0e38c2ec1e182a78480140a676a49e06" args="(String color1, String color2, double x, double y, double w, double h, String direction)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::SetGradient </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>color1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>color2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>direction</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the given gradient. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abeccbac84e25abacd71e4059521a37bf"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Shadow" ref="abeccbac84e25abacd71e4059521a37bf" args="(String value, bool filled)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Shadow </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>filled</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0278180b14e6ed4bf0075855c73f074b"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Stroke" ref="a0278180b14e6ed4bf0075855c73f074b" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Stroke </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a801550a1789580c509257bc6ad8e8385">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a083e98246802e087c999f16a4f8b7407"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Text" ref="a083e98246802e087c999f16a4f8b7407" args="(double x, double y, double w, double h, string str, string align, string valign, bool vertical, bool wrap, string format)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Text </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>str</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>align</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>valign</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>vertical</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>wrap</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>format</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Draws the given text. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#afcf4c07955c595bfd332186cd6fa8be3">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a541aa4694c566326143ffb5492674719"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Translate" ref="a541aa4694c566326143ffb5492674719" args="(double dx, double dy)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::Translate </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dx</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dy</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Translates the canvas. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dx</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>dy</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a82fad15cca1deb74e81ac504924f91d0">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8f3187310e70282e8d2c9a662e8ea92b"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::UpdateFont" ref="a8f3187310e70282e8d2c9a662e8ea92b" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::UpdateFont </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +</div>
    +</div>
    +<a class="anchor" id="a97a780d6f3b4b24f6bc62ad524cccca4"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::UpdatePen" ref="a97a780d6f3b4b24f6bc62ad524cccca4" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGdiCanvas2D::UpdatePen </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a72fef5bf7f66445b934a21caab5e7742"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::currentPath" ref="a72fef5bf7f66445b934a21caab5e7742" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">GraphicsPath <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a72fef5bf7f66445b934a21caab5e7742">com::mxgraph::mxGdiCanvas2D::currentPath</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Holds the current path. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa3055da45b5c778072dddd4071a03f1d"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::currentShadowColor" ref="aa3055da45b5c778072dddd4071a03f1d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Color <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa3055da45b5c778072dddd4071a03f1d">com::mxgraph::mxGdiCanvas2D::currentShadowColor</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the current parsed shadow color. This holds the result of parsing. </p>
    +<p>the currentShadowValue, which is an expensive operation. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3fc5d5d55bffc42a02714b23d46c4f18"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::currentShadowValue" ref="a3fc5d5d55bffc42a02714b23d46c4f18" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a3fc5d5d55bffc42a02714b23d46c4f18">com::mxgraph::mxGdiCanvas2D::currentShadowValue</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the current value for the shadow color. This is used to hold the. </p>
    +<p>input value of a shadow operation. The parsing result of this value is cached in the global scope as it should be repeating. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aee6c39db9b3b2a0de38834f3b269bfc3"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::graphics" ref="aee6c39db9b3b2a0de38834f3b269bfc3" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Graphics <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aee6c39db9b3b2a0de38834f3b269bfc3">com::mxgraph::mxGdiCanvas2D::graphics</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Reference to the graphics instance for painting. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2f594bc974a37b0838751ae67f9ce8d1"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::lastPoint" ref="a2f594bc974a37b0838751ae67f9ce8d1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2f594bc974a37b0838751ae67f9ce8d1">com::mxgraph::mxGdiCanvas2D::lastPoint</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the last point of a moveTo or lineTo operation to determine if the. </p>
    +<p>current path is orthogonal. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abc5fcb884643bbea7bc7ef6234a37859"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::stack" ref="abc5fcb884643bbea7bc7ef6234a37859" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Stack&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a>&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abc5fcb884643bbea7bc7ef6234a37859">com::mxgraph::mxGdiCanvas2D::stack</a> = new Stack&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a>&gt;()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Stack of states for save/restore. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a303fe4863af0b0682531e41a0a86c2b2"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::state" ref="a303fe4863af0b0682531e41a0a86c2b2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a303fe4863af0b0682531e41a0a86c2b2">com::mxgraph::mxGdiCanvas2D::state</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a>()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Represents the current state of the canvas. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="ad30fb99f1065da8fb956ceb519884381"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Alpha" ref="ad30fb99f1065da8fb956ceb519884381" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGdiCanvas2D::Alpha<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the given alpha. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a6e78d631c45ea341b6e82ae2d2ae747f">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa77ee2108750ef5c2e4e60306feb1a0d"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::Dashed" ref="aa77ee2108750ef5c2e4e60306feb1a0d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGdiCanvas2D::Dashed<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if lines are dashed. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae8633458a4a93fb3bd354b130f0d4d7">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a92aaa9ef4ad6f542db277e988bcc41b5"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::DashPattern" ref="a92aaa9ef4ad6f542db277e988bcc41b5" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGdiCanvas2D::DashPattern<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the dashpattern. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aadab1f5cdf6ddc97b6dc8da9224c9f3d">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a192122f8dd7753b20c59cb33458c2e4b"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::FillColor" ref="a192122f8dd7753b20c59cb33458c2e4b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGdiCanvas2D::FillColor<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the given fillcolor. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4f488eea5fb315298333229d26b246cd">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac6f30b477f76d920c5597edd1d687e10"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::FontColor" ref="ac6f30b477f76d920c5597edd1d687e10" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGdiCanvas2D::FontColor<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the fontcolor. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a3aa4add33b9fcef3c6e81c20f76781ea">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae19b4bee4c6caca4f578037ba3d341d2"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::FontFamily" ref="ae19b4bee4c6caca4f578037ba3d341d2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGdiCanvas2D::FontFamily<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the font family. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae983110302f114c65645fadd6be63a9">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad71b4013cd083413c542e53818d32ef3"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::FontSize" ref="ad71b4013cd083413c542e53818d32ef3" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGdiCanvas2D::FontSize<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the fontsize. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a69f663bd9c909c261b33d151574f7d55">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9e4c081acdb7fc0b363adbfa345f0671"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::FontStyle" ref="a9e4c081acdb7fc0b363adbfa345f0671" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxGdiCanvas2D::FontStyle<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the given fontstyle. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a709d43365adf4cb4c00726e83840a13d">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aeb5e8e776beb7049c86cd225748033e4"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::LineCap" ref="aeb5e8e776beb7049c86cd225748033e4" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGdiCanvas2D::LineCap<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the linecap. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a829ab2cbd41e4777ea46657a6da7ffd9">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aeb7383d17e4ae8c2d90798ae06a22c94"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::LineJoin" ref="aeb7383d17e4ae8c2d90798ae06a22c94" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGdiCanvas2D::LineJoin<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the linejoin. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#add41832e54a6a952a9e9e7a344593acd">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9eb9a243faf69d55a94862f93f5aa985"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::MiterLimit" ref="a9eb9a243faf69d55a94862f93f5aa985" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGdiCanvas2D::MiterLimit<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the miterlimit. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a991c36d1f078c3af31928fc485ef95e5">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="addc63fa18ad55a6d496137c52c2f6410"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::StrokeColor" ref="addc63fa18ad55a6d496137c52c2f6410" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGdiCanvas2D::StrokeColor<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Caches color conversion as it is expensive. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae67622bf2792d623c672d4a8b57f86e2">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac45d24fb89674db75ee34825bfe8739e"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::StrokeWidth" ref="ac45d24fb89674db75ee34825bfe8739e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGdiCanvas2D::StrokeWidth<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the strokewidth. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a56b6cf5694eb108521750e4187415660">com::mxgraph::mxICanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/canvas/mxGdiCanvas2D.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D.png
    new file mode 100644
    index 000000000..f43ec4921
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState-members.html
    new file mode 100644
    index 000000000..3792e90c8
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState-members.html
    @@ -0,0 +1,35 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGdiCanvas2D::CanvasState Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">com::mxgraph::mxGdiCanvas2D::CanvasState</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html#a2af4c4098c9d976033aebeb693208633">Clone</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">com::mxgraph::mxGdiCanvas2D::CanvasState</a></td><td><code> [inline]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html
    new file mode 100644
    index 000000000..48f349888
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html
    @@ -0,0 +1,63 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxGdiCanvas2D::CanvasState Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a>::<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">CanvasState</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGdiCanvas2D::CanvasState Class Reference</h1><!-- doxytag: class="com::mxgraph::mxGdiCanvas2D::CanvasState" -->
    +<p><a href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html#a2af4c4098c9d976033aebeb693208633">Clone</a> ()</td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a2af4c4098c9d976033aebeb693208633"></a><!-- doxytag: member="com::mxgraph::mxGdiCanvas2D::CanvasState::Clone" ref="a2af4c4098c9d976033aebeb693208633" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGdiCanvas2D::CanvasState::Clone </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/canvas/mxGdiCanvas2D.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGeometry-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGeometry-members.html
    new file mode 100644
    index 000000000..25ef24204
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGeometry-members.html
    @@ -0,0 +1,79 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGeometry Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a5e971cdff92e9e53071232dc80cbc8b0">Add</a>(mxRectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a50d84d2d9ed0cf6f083d31bd4794f18b">AlternateBounds</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a8475ccf174c3897a4a9df74cd95be8">alternateBounds</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a1bc5e0feb17c50f9bab5853af0e089f0">Clone</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a3f76585b333bf7fe2d58ed38e8296b26">Contains</a>(double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa2600d85162a1db0129650b4e636448">Equals</a>(Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a4c133c9e19ff56d3ee55aca15e93cdf0">GetCenterX</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a94596cde2d663cd1746088eea215493f">GetCenterY</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a45f04749b99d031c57c707f505cc5290">GetPoint</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#acdc68e90b0b634aacf6f3054ed71a97a">GetRectangle</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a7410a68725e48357de2989449068c407">GetTerminalPoint</a>(bool source)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#ad499030b067d0ee6e87af68542ec7115">Grow</a>(double amount)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adb1bfc2cc3f1215b9357bdeda242a062">height</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a32c0d49b1279c27fec655cb831240975">Height</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a9a6d8132f6e53e9d0447b9a4aed47565">mxGeometry</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a02dddac4961d4b9a1480e285a2cee398">mxGeometry</a>(double x, double y, double width, double height)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#ac7e3adff72a1bc3093d478fea67d0c40">mxGeometry</a>(mxGeometry geometry)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8943bd2fe6aff4d841581e33fb33c8bc">mxPoint</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#af513f614c1d5d3aa402d7919d49b8667">mxPoint</a>(Point point)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a1911916b08fe58a430eb20efc5b89b10">mxPoint</a>(mxPoint point)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#acf10031952dfe1a9281b6d2db60366c8">mxPoint</a>(double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa0520bc151eeecd7884c59fd7d5a4cd5">mxRectangle</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adad36fd17b2a6b569340abaf0114d673">mxRectangle</a>(mxRectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa9fda9798994a6c2e1319878598b792">mxRectangle</a>(Rectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a0de5be785fd18e109ff7eb9aed6ef2e9">mxRectangle</a>(double x, double y, double width, double height)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a8412ed3eca1c001d8c40eac2f9ce758b">offset</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a4769c76d47f7a3281a42b5a6581c1785">Offset</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#ae5575c4397373faa269ef9914e135951">Points</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a45677db05c67d751857181b2c06025f8">points</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a0fc8a94f3ef17260c5b456018999cec4">Relative</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a64c3ea353de129f7f6dbd76506f5bb">relative</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adbcd79c0023233969be1e4ee0626118b">setRect</a>(double x, double y, double w, double h)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a93895db7f9dbc2e2b38b87ad229d5d85">SetTerminalPoint</a>(mxPoint point, bool source)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a0b3f7faefd09d648c47c7cae92153c59">SourcePoint</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a9b70c28ce0b587261639b11fc2854d24">sourcePoint</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#aaa5aa1dc09c6ae8828bc19bed208790f">TargetPoint</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a4db1948b24f7d359a33d2d7db61ee673">targetPoint</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a861eafb9b9f70d9e846851f81d11c924">Translate</a>(double dx, double dy)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a415957366c509818f37d3641c61ad62a">TRANSLATE_CONTROL_POINTS</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a62c3f92da547c942f319b6aecd71765c">width</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa76b4b8e9c6d7a4f6e6cecaf8c71b3d">Width</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a47119ed72239e13dec2d0d196f408158">X</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a67b180bcd4e2e691c9a0c7ed38c16c38">Y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGeometry.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGeometry.html
    new file mode 100644
    index 000000000..276337e41
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGeometry.html
    @@ -0,0 +1,518 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxGeometry Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGeometry Class Reference</h1><!-- doxytag: class="com::mxgraph::mxGeometry" --><!-- doxytag: inherits="com::mxgraph::mxRectangle" -->
    +<p>Represents the geometry of a cell. For vertices, the geometry consists of the x- and y-location, as well as the width and height. For edges, the edge either defines the source- and target-terminal, or the geometry defines the respective terminal points.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxGeometry:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxGeometry.png" usemap="#com::mxgraph::mxGeometry_map" alt=""/>
    +  <map id="com::mxgraph::mxGeometry_map" name="com::mxgraph::mxGeometry_map">
    +<area href="classcom_1_1mxgraph_1_1mxRectangle.html" alt="com::mxgraph::mxRectangle" shape="rect" coords="0,56,166,80"/>
    +<area href="classcom_1_1mxgraph_1_1mxPoint.html" alt="com::mxgraph::mxPoint" shape="rect" coords="0,0,166,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxGeometry-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a9a6d8132f6e53e9d0447b9a4aed47565">mxGeometry</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new geometry at (0, 0) with the width and height set to 0.  <a href="#a9a6d8132f6e53e9d0447b9a4aed47565"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a02dddac4961d4b9a1480e285a2cee398">mxGeometry</a> (double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a>, double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a>, double <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a62c3f92da547c942f319b6aecd71765c">width</a>, double <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adb1bfc2cc3f1215b9357bdeda242a062">height</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a geometry using the given parameters.  <a href="#a02dddac4961d4b9a1480e285a2cee398"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#ac7e3adff72a1bc3093d478fea67d0c40">mxGeometry</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> geometry)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a copy of the given geometry.  <a href="#ac7e3adff72a1bc3093d478fea67d0c40"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a7410a68725e48357de2989449068c407">GetTerminalPoint</a> (bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the point representing the source or target point of this edge. This is only used if the edge has no source or target vertex.  <a href="#a7410a68725e48357de2989449068c407"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a93895db7f9dbc2e2b38b87ad229d5d85">SetTerminalPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> point, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the sourcePoint or targetPoint to the given point and returns the new point.  <a href="#a93895db7f9dbc2e2b38b87ad229d5d85"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a861eafb9b9f70d9e846851f81d11c924">Translate</a> (double dx, double dy)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates the geometry by the specified amount. That is, x and y of the geometry, the sourcePoint, targetPoint and all elements of points are translated by the given amount. X and y are only translated if the geometry is not relative. If TRANSLATE_CONTROL_POINTS is false, then are not modified by this function.  <a href="#a861eafb9b9f70d9e846851f81d11c924"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">new <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a1bc5e0feb17c50f9bab5853af0e089f0">Clone</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a new instance of the same geometry.  <a href="#a1bc5e0feb17c50f9bab5853af0e089f0"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a415957366c509818f37d3641c61ad62a">TRANSLATE_CONTROL_POINTS</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Global switch to translate the points in translate. Default is true.  <a href="#a415957366c509818f37d3641c61ad62a"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a8475ccf174c3897a4a9df74cd95be8">alternateBounds</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stores alternate values for x, y, width and height in a rectangle. Default is null.  <a href="#a2a8475ccf174c3897a4a9df74cd95be8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a9b70c28ce0b587261639b11fc2854d24">sourcePoint</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the source-point of the edge. This is used if the corresponding edge does not have a source vertex. Otherwise it is ignored. Default is null.  <a href="#a9b70c28ce0b587261639b11fc2854d24"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a4db1948b24f7d359a33d2d7db61ee673">targetPoint</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the target-point of the edge. This is used if the corresponding edge does not have a source vertex. Otherwise it is ignored. Default is null.  <a href="#a4db1948b24f7d359a33d2d7db61ee673"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a8412ed3eca1c001d8c40eac2f9ce758b">offset</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the offset of the label for edges. This is the absolute vector between the center of the edge and the top, left point of the label. Default is null.  <a href="#a8412ed3eca1c001d8c40eac2f9ce758b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a45677db05c67d751857181b2c06025f8">points</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of mxPoints which specifies the control points along the edge. These points are the intermediate points on the edge, for the endpoints use targetPoint and sourcePoint or set the terminals of the edge to a non-null value. Default is null.  <a href="#a45677db05c67d751857181b2c06025f8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a64c3ea353de129f7f6dbd76506f5bb">relative</a> = false</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if the coordinates in the geometry are to be interpreted as relative coordinates. Default is false. This is used to mark a geometry with an x- and y-coordinate that is used to describe an edge label position.  <a href="#a2a64c3ea353de129f7f6dbd76506f5bb"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a50d84d2d9ed0cf6f083d31bd4794f18b">AlternateBounds</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the alternate bounds.  <a href="#a50d84d2d9ed0cf6f083d31bd4794f18b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a0b3f7faefd09d648c47c7cae92153c59">SourcePoint</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the source point.  <a href="#a0b3f7faefd09d648c47c7cae92153c59"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#aaa5aa1dc09c6ae8828bc19bed208790f">TargetPoint</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the target point.  <a href="#aaa5aa1dc09c6ae8828bc19bed208790f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#ae5575c4397373faa269ef9914e135951">Points</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the list of control points.  <a href="#ae5575c4397373faa269ef9914e135951"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a4769c76d47f7a3281a42b5a6581c1785">Offset</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the offset.  <a href="#a4769c76d47f7a3281a42b5a6581c1785"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a0fc8a94f3ef17260c5b456018999cec4">Relative</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns if the geometry is relative.  <a href="#a0fc8a94f3ef17260c5b456018999cec4"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Represents the geometry of a cell. For vertices, the geometry consists of the x- and y-location, as well as the width and height. For edges, the edge either defines the source- and target-terminal, or the geometry defines the respective terminal points. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a9a6d8132f6e53e9d0447b9a4aed47565"></a><!-- doxytag: member="com::mxgraph::mxGeometry::mxGeometry" ref="a9a6d8132f6e53e9d0447b9a4aed47565" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGeometry::mxGeometry </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new geometry at (0, 0) with the width and height set to 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a02dddac4961d4b9a1480e285a2cee398"></a><!-- doxytag: member="com::mxgraph::mxGeometry::mxGeometry" ref="a02dddac4961d4b9a1480e285a2cee398" args="(double x, double y, double width, double height)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGeometry::mxGeometry </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>height</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a geometry using the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the new geometry.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the new geometry.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>Width of the new geometry.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td>Height of the new geometry.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac7e3adff72a1bc3093d478fea67d0c40"></a><!-- doxytag: member="com::mxgraph::mxGeometry::mxGeometry" ref="ac7e3adff72a1bc3093d478fea67d0c40" args="(mxGeometry geometry)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGeometry::mxGeometry </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td>
    +          <td class="paramname"> <em>geometry</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a copy of the given geometry. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>geometry</em>&nbsp;</td><td>Geometry to construct a copy of.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a1bc5e0feb17c50f9bab5853af0e089f0"></a><!-- doxytag: member="com::mxgraph::mxGeometry::Clone" ref="a1bc5e0feb17c50f9bab5853af0e089f0" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">new <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> com::mxgraph::mxGeometry::Clone </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a new instance of the same geometry. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a clone of the geometry.</dd></dl>
    +
    +<p>Reimplemented from <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa9e9e649efa5ad7239db970ec735e846">com::mxgraph::mxRectangle</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7410a68725e48357de2989449068c407"></a><!-- doxytag: member="com::mxgraph::mxGeometry::GetTerminalPoint" ref="a7410a68725e48357de2989449068c407" args="(bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGeometry::GetTerminalPoint </td>
    +          <td>(</td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the point representing the source or target point of this edge. This is only used if the edge has no source or target vertex. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean that specifies if the source or target point should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the source or target point.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a93895db7f9dbc2e2b38b87ad229d5d85"></a><!-- doxytag: member="com::mxgraph::mxGeometry::SetTerminalPoint" ref="a93895db7f9dbc2e2b38b87ad229d5d85" args="(mxPoint point, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGeometry::SetTerminalPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>point</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the sourcePoint or targetPoint to the given point and returns the new point. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>point</em>&nbsp;</td><td>Point to be used as the new source or target point.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean that specifies if the source or target point should be set.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the new point.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a861eafb9b9f70d9e846851f81d11c924"></a><!-- doxytag: member="com::mxgraph::mxGeometry::Translate" ref="a861eafb9b9f70d9e846851f81d11c924" args="(double dx, double dy)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGeometry::Translate </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dx</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dy</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Translates the geometry by the specified amount. That is, x and y of the geometry, the sourcePoint, targetPoint and all elements of points are translated by the given amount. X and y are only translated if the geometry is not relative. If TRANSLATE_CONTROL_POINTS is false, then are not modified by this function. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dx</em>&nbsp;</td><td>Integer that specifies the x-coordinate of the translation.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>dy</em>&nbsp;</td><td>Integer that specifies the y-coordinate of the translation.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a2a8475ccf174c3897a4a9df74cd95be8"></a><!-- doxytag: member="com::mxgraph::mxGeometry::alternateBounds" ref="a2a8475ccf174c3897a4a9df74cd95be8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a8475ccf174c3897a4a9df74cd95be8">com::mxgraph::mxGeometry::alternateBounds</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Stores alternate values for x, y, width and height in a rectangle. Default is null. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8412ed3eca1c001d8c40eac2f9ce758b"></a><!-- doxytag: member="com::mxgraph::mxGeometry::offset" ref="a8412ed3eca1c001d8c40eac2f9ce758b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a8412ed3eca1c001d8c40eac2f9ce758b">com::mxgraph::mxGeometry::offset</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the offset of the label for edges. This is the absolute vector between the center of the edge and the top, left point of the label. Default is null. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a45677db05c67d751857181b2c06025f8"></a><!-- doxytag: member="com::mxgraph::mxGeometry::points" ref="a45677db05c67d751857181b2c06025f8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a45677db05c67d751857181b2c06025f8">com::mxgraph::mxGeometry::points</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>List of mxPoints which specifies the control points along the edge. These points are the intermediate points on the edge, for the endpoints use targetPoint and sourcePoint or set the terminals of the edge to a non-null value. Default is null. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2a64c3ea353de129f7f6dbd76506f5bb"></a><!-- doxytag: member="com::mxgraph::mxGeometry::relative" ref="a2a64c3ea353de129f7f6dbd76506f5bb" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a64c3ea353de129f7f6dbd76506f5bb">com::mxgraph::mxGeometry::relative</a> = false<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if the coordinates in the geometry are to be interpreted as relative coordinates. Default is false. This is used to mark a geometry with an x- and y-coordinate that is used to describe an edge label position. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9b70c28ce0b587261639b11fc2854d24"></a><!-- doxytag: member="com::mxgraph::mxGeometry::sourcePoint" ref="a9b70c28ce0b587261639b11fc2854d24" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a9b70c28ce0b587261639b11fc2854d24">com::mxgraph::mxGeometry::sourcePoint</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the source-point of the edge. This is used if the corresponding edge does not have a source vertex. Otherwise it is ignored. Default is null. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4db1948b24f7d359a33d2d7db61ee673"></a><!-- doxytag: member="com::mxgraph::mxGeometry::targetPoint" ref="a4db1948b24f7d359a33d2d7db61ee673" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a4db1948b24f7d359a33d2d7db61ee673">com::mxgraph::mxGeometry::targetPoint</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the target-point of the edge. This is used if the corresponding edge does not have a source vertex. Otherwise it is ignored. Default is null. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a415957366c509818f37d3641c61ad62a"></a><!-- doxytag: member="com::mxgraph::mxGeometry::TRANSLATE_CONTROL_POINTS" ref="a415957366c509818f37d3641c61ad62a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a415957366c509818f37d3641c61ad62a">com::mxgraph::mxGeometry::TRANSLATE_CONTROL_POINTS</a> = true<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Global switch to translate the points in translate. Default is true. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a50d84d2d9ed0cf6f083d31bd4794f18b"></a><!-- doxytag: member="com::mxgraph::mxGeometry::AlternateBounds" ref="a50d84d2d9ed0cf6f083d31bd4794f18b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGeometry::AlternateBounds<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the alternate bounds. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4769c76d47f7a3281a42b5a6581c1785"></a><!-- doxytag: member="com::mxgraph::mxGeometry::Offset" ref="a4769c76d47f7a3281a42b5a6581c1785" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGeometry::Offset<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the offset. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae5575c4397373faa269ef9914e135951"></a><!-- doxytag: member="com::mxgraph::mxGeometry::Points" ref="ae5575c4397373faa269ef9914e135951" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&gt; com::mxgraph::mxGeometry::Points<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the list of control points. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0fc8a94f3ef17260c5b456018999cec4"></a><!-- doxytag: member="com::mxgraph::mxGeometry::Relative" ref="a0fc8a94f3ef17260c5b456018999cec4" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGeometry::Relative<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns if the geometry is relative. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0b3f7faefd09d648c47c7cae92153c59"></a><!-- doxytag: member="com::mxgraph::mxGeometry::SourcePoint" ref="a0b3f7faefd09d648c47c7cae92153c59" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGeometry::SourcePoint<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the source point. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aaa5aa1dc09c6ae8828bc19bed208790f"></a><!-- doxytag: member="com::mxgraph::mxGeometry::TargetPoint" ref="aaa5aa1dc09c6ae8828bc19bed208790f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGeometry::TargetPoint<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the target point. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/model/mxGeometry.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGeometry.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGeometry.png
    new file mode 100644
    index 000000000..3b0a05215
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGeometry.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraph-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraph-members.html
    new file mode 100644
    index 000000000..e9ccaf8b1
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraph-members.html
    @@ -0,0 +1,127 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraph Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aa057b90ab131f4662a7f402d006a73bf">AddImageBundle</a>(mxImageBundle bundle)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a33ae6b392d4a1eba9b7821e272a8c152">ConvertValueToString</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6d2d6a53c4a23cb8ebbb144db1fcf568">CreateEdge</a>(Object parent, string id, Object value, Object source, Object target, string style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac1b8b9fdccf032cb2c58d16bf7bda8ba">CreateGraphView</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6b360d188b285a440a858ff69a162dea">CreateStylesheet</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a80157aca4b0dda9252be5139b197c4f6">CreateVertex</a>(Object parent, string id, Object value, double x, double y, double width, double height, string style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3adbf1ac5f337e59bb60fccd1730887b">CreateVertex</a>(Object parent, string id, Object value, double x, double y, double width, double height, string style, bool relative)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad407060f46936743606c381fee294f58">defaultLoopStyle</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a857ea173f7f385dae314598f99878639">DefaultLoopStyle</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#af6fc42eaa1eb3a49c08562938490b532">DrawCell</a>(mxICanvas canvas, Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5a945c74c4398d4c86e16a18c9324b2">DrawGraph</a>(mxICanvas canvas)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a83ba7a3c31f5dee4474ec5daa0e64143">DrawState</a>(mxICanvas canvas, mxCellState state, String label)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae0f56dfe6a0da5de04f4b1c04287a204">FindTreeRoots</a>(Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae53ed77e951fceaf3d1bdf4d9cc40f97">FindTreeRoots</a>(Object parent, bool isolate)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9c857361773ff4f9b91f00456a37c0e7">FindTreeRoots</a>(Object parent, bool isolate, bool invert)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5bfc7198e1b2eaa3b200bac52175cc6">GetBoundingBox</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aa89e674a91c3aeeeeaab9594b64c8f2e">GetBoundingBox</a>(Object cell, bool includeEdges)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a71bd876fffa35a8b50525718997bdb1f">GetBoundingBox</a>(Object cell, bool includeEdges, bool includeDescendants)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad75723b57736652d78475e16bf758fd9">GetBoundsForCells</a>(Object[] cells, bool includeEdges, bool includeDescendants, bool boundingBox)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8784492393271fbe739867a9e107a66b">GetCellAt</a>(int x, int y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a0ba11a0aacd7a46c111b953fbd8b2530">GetCellAt</a>(int x, int y, bool hitSwimlaneContent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a5bc8a1bceb3786185efd4ad9c5aa75f4">GetCellAt</a>(int x, int y, bool hitSwimlaneContent, Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a357c8ab34cdb207613a9d652e51b2a73">GetCellBounds</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a1d39965de20c58a9f1c48ddcb3ee8019">GetCellBounds</a>(Object cell, bool includeEdges)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6a4abb452fd01815ba2349aa26727831">GetCellBounds</a>(Object cell, bool includeEdges, bool includeDescendants)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5a03f36e1f0d51d6bc933eb27b9ad04">GetCellBounds</a>(Object cell, bool includeEdges, bool includeDescendants, bool boundingBox)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2c1b1d989e1d49d1bfb16ea1c80bb123">GetCellGeometry</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7b51ce1952768c396f8a087f4b3134ba">GetCellStyle</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6e8cb72e242fbe156060b1e8347acefd">GetChildCells</a>(Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae565b50ebd02deb412f19921eb522ec8">GetChildCells</a>(Object parent, bool vertices, bool edges)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab334c710f4cbe99934f5162721c42899">GetChildEdges</a>(Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a1ddeb1fc6c41024bbe7a186971f10049">GetChildOffsetForCell</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a083156b76650d2db1f0832e578b991fd">GetChildVertices</a>(Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a241389af570d0de4d40c0508c7651f61">GetConnectionConstraint</a>(mxCellState edge, mxCellState terminal, bool source)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#addc468117a4ba03126039f434a02dd3b">GetConnectionPoint</a>(mxCellState vertex, mxConnectionConstraint constraint)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3cc8dacc0f73c8331ca491c8ef8e2b8e">GetConnections</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7f9f60dcb940381d916704c27b8cdd44">GetConnections</a>(Object cell, Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad16bde2a0549353cc07eb274da9016e0">GetDefaultParent</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6bdc9bdec69f488a773bbd2595f900be">GetEdges</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a0d01f31330a3e6c6a12403c4ded9a4ec">GetEdges</a>(Object cell, Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2c378a3a837e3a9b7bdb3b795fd4f838">GetEdges</a>(Object cell, Object parent, bool incoming, bool outgoing, bool includeLoops)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abe7a22dde80ec0a11f24fa08213c14f9">GetEdges</a>(Object cell, Object parent, bool incoming, bool outgoing, bool includeLoops, bool recurse)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8f9b6d3aac9900437eca491f38742dde">GetEdgesBetween</a>(Object source, Object target)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aa7b91245aadc26cd00205f38273be05b">GetEdgesBetween</a>(Object source, Object target, bool directed)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a62fd93e7cf81eef6a3be100f7b0d80e3">GetGraphBounds</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a92aeba26d19e93c8114e6c198fdab341">GetImageFromBundles</a>(String key)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abd1949f247709d9cf32958d50520b703">GetIncomingEdges</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a5dea2422071ec85e227e74662d4c6635">GetIncomingEdges</a>(Object cell, Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a527defcf3188cf4d934742589cc6a370">GetLabel</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7a168c862d71bda051212c32e6f0592e">GetOpposites</a>(Object[] edges, Object terminal)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a1d486463262ebeec9469d1e5b47c948a">GetOpposites</a>(Object[] edges, Object terminal, bool sources, bool targets)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#af2aa1581fda566b5add1879fd7e9fbb5">GetOutgoingEdges</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7bbc3f8c9b25ded19ac36ada2f2d1018">GetOutgoingEdges</a>(Object cell, Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae68c3f63c612cae292b5209f891e2103">GetPaintBounds</a>(Object[] cells)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3bb8f37de70854711542b9f1ebaaf85e">GraphModelChanged</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a664aa375d8f1b67216fc3e281bea9e55">gridEnabled</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2492e35122e5edcc08d5ad164c492415">GridEnabled</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a64c20d87e6b6082a1262095881807d27">gridSize</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a19e7d16278a7fd29510832c6c6fa6378">GridSize</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6d5855a06621ece63f7c0833d0dd54c8">HitsSwimlaneContent</a>(Object swimlane, int x, int y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6de2d696c85750fafc8d10600d3d7fe8">ImageBundles</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a715f872e532ab585e8ec45b2d375d014">imageBundles</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae4dddcdc914f145d111a36611e0dae3c">InsertEdge</a>(Object parent, string id, Object value, Object source, Object target)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aed5ea9ebbf28a3ca37c0665ee159ce16">InsertEdge</a>(Object parent, string id, Object value, Object source, Object target, string style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a33e4556565e3ec020dc177cdceb1ce57">InsertVertex</a>(Object parent, string id, Object value, double x, double y, double width, double height)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2e7e9ff4243dec0d690bb99ef69590b5">InsertVertex</a>(Object parent, string id, Object value, double x, double y, double width, double height, string style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a5cc3f057a41b3c2da220aa8967fb4e8b">InsertVertex</a>(Object parent, string id, Object value, double x, double y, double width, double height, string style, bool relative)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae580f6fc2dd563d367b0efb19a6914c2">Intersects</a>(mxCellState state, Rectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac60178c6697ce833fa2f64d7e1f49669">IsCellCollapsed</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a4f07dee4b9958154ecc3945de97f41af">IsCellConnectable</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3f095589a40b8012cff674389f5f584b">IsCellMovable</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8f643dbb69496ce22adeaea030368479">IsCellVisible</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab0146d0411dd28fb371e19e06b5f8b84">IsOrthogonal</a>(mxCellState edge)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9e426bb8a46d02750d6010ab670d9277">IsSwimlane</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aeee992401f26eeeb965610425c1cb852">IsValidAncestor</a>(Object cell, Object parent, bool recurse)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a27c89a48e8ee870e7802378fabc41782">labelsVisible</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abb96d6cfde89d87c098bd1d7c78f6010">LabelsVisible</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9f368b71dccff0fa2e24f6ce685902ac">model</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a59458bde9c7951ace31f86dbd2c4bb68">Model</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a41f3676a508eba5fa0f30f1958da9aa8">mxGraph</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a988101412d00fd1cd254d6ce56f29a61">mxGraph</a>(mxIGraphModel model)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a64e10ad86550fa900179459d6f783677">mxGraph</a>(mxStylesheet stylesheet)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad73c9d7ed5c1b2e51392d9e886bb61cb">mxGraph</a>(mxIGraphModel model, mxStylesheet stylesheet)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7b6ba38dbc5c8d3794d191e9dc58d5b9">PostProcessCellStyle</a>(Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#afe6eeab8462dfb48f5dec50a8f3aa902">RemoveImageBundle</a>(mxImageBundle bundle)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a0d130a6228092758ec584a9d594b1446">SetCellStyles</a>(String key, String value, Object[] cells)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a40232c253fa2c15e858dec290f45c8ad">Snap</a>(double value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#acfa0196cd28096cd25a8087095f3a9e0">Stylesheet</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae3e7da2a26f75a889980c53fefaa3467">stylesheet</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae02f4752e2cd75d188861a9ff7cd562d">tolerance</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a71f768c91c8a0f04776f0470bc5e18ef">VERSION</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac140b77f977a37470ce7cba0f9302898">view</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab13ec7954a48c952bb8e03ee9c3ba943">View</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraph.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraph.html
    new file mode 100644
    index 000000000..72083bc47
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraph.html
    @@ -0,0 +1,3113 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxGraph Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraph Class Reference</h1><!-- doxytag: class="com::mxgraph::mxGraph" -->
    +<p>Implements a graph object that allows to create diagrams from a graph model and stylesheet.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxGraph-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a41f3676a508eba5fa0f30f1958da9aa8">mxGraph</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new graph with an empty graph model.  <a href="#a41f3676a508eba5fa0f30f1958da9aa8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a988101412d00fd1cd254d6ce56f29a61">mxGraph</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9f368b71dccff0fa2e24f6ce685902ac">model</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new graph for the specified model. If no model is specified, then a new, empty graph model is used.  <a href="#a988101412d00fd1cd254d6ce56f29a61"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a64e10ad86550fa900179459d6f783677">mxGraph</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae3e7da2a26f75a889980c53fefaa3467">stylesheet</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new graph for the specified model. If no model is specified, then a new, empty graph model is used.  <a href="#a64e10ad86550fa900179459d6f783677"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad73c9d7ed5c1b2e51392d9e886bb61cb">mxGraph</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9f368b71dccff0fa2e24f6ce685902ac">model</a>, <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae3e7da2a26f75a889980c53fefaa3467">stylesheet</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new graph for the specified model. If no model is specified, then a new, empty graph model is used.  <a href="#ad73c9d7ed5c1b2e51392d9e886bb61cb"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a40232c253fa2c15e858dec290f45c8ad">Snap</a> (double value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Snaps the given numeric value to the grid if gridEnabled is true.  <a href="#a40232c253fa2c15e858dec290f45c8ad"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad16bde2a0549353cc07eb274da9016e0">GetDefaultParent</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the first child of the root in the model, that is, the first or default layer of the diagram.  <a href="#ad16bde2a0549353cc07eb274da9016e0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a33ae6b392d4a1eba9b7821e272a8c152">ConvertValueToString</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the textual representation for the given cell.  <a href="#a33ae6b392d4a1eba9b7821e272a8c152"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a527defcf3188cf4d934742589cc6a370">GetLabel</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a string or markup that represents the label for the given cell. This implementation uses ConvertValueToString if labelsVisible is true. Otherwise it returns an empty string.  <a href="#a527defcf3188cf4d934742589cc6a370"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a1ddeb1fc6c41024bbe7a186971f10049">GetChildOffsetForCell</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the offset to be used for the cells inside the given cell. The root and layer cells may be identified using mxGraphModel.isRoot and mxGraphModel.isLayer. This implementation returns null.  <a href="#a1ddeb1fc6c41024bbe7a186971f10049"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab0146d0411dd28fb371e19e06b5f8b84">IsOrthogonal</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> edge)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments.  <a href="#ab0146d0411dd28fb371e19e06b5f8b84"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9e426bb8a46d02750d6010ab670d9277">IsSwimlane</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is a swimlane.  <a href="#a9e426bb8a46d02750d6010ab670d9277"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3f095589a40b8012cff674389f5f584b">IsCellMovable</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is movable. This implementation always returns true.  <a href="#a3f095589a40b8012cff674389f5f584b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8f643dbb69496ce22adeaea030368479">IsCellVisible</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is visible. This implementation returns true if the visible state of the cell in the model is true.  <a href="#a8f643dbb69496ce22adeaea030368479"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac60178c6697ce833fa2f64d7e1f49669">IsCellCollapsed</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is collapsed. This implementation returns true if the collapsed state of the cell in the model is true.  <a href="#ac60178c6697ce833fa2f64d7e1f49669"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a4f07dee4b9958154ecc3945de97f41af">IsCellConnectable</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is connectable. This implementation returns true if the connectable state of the cell in the model is true.  <a href="#a4f07dee4b9958154ecc3945de97f41af"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2c1b1d989e1d49d1bfb16ea1c80bb123">GetCellGeometry</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the geometry for the given cell.  <a href="#a2c1b1d989e1d49d1bfb16ea1c80bb123"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7b51ce1952768c396f8a087f4b3134ba">GetCellStyle</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the style for the given cell.  <a href="#a7b51ce1952768c396f8a087f4b3134ba"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aa057b90ab131f4662a7f402d006a73bf">AddImageBundle</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a> bundle)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the specified bundle.  <a href="#aa057b90ab131f4662a7f402d006a73bf"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#afe6eeab8462dfb48f5dec50a8f3aa902">RemoveImageBundle</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a> bundle)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the specified bundle.  <a href="#afe6eeab8462dfb48f5dec50a8f3aa902"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a92aeba26d19e93c8114e6c198fdab341">GetImageFromBundles</a> (String key)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches all bundles for the specified key and returns the value for the first match or null if the key is not found.  <a href="#a92aeba26d19e93c8114e6c198fdab341"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a0d130a6228092758ec584a9d594b1446">SetCellStyles</a> (String key, String value, Object[] cells)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the key to value in the styles of the given cells. This will modify the existing cell styles in-place and override any existing assignment for the given key. If no cells are specified, then the selection cells are changed. If no value is specified, then the respective key is removed from the styles.  <a href="#a0d130a6228092758ec584a9d594b1446"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a33e4556565e3ec020dc177cdceb1ce57">InsertVertex</a> (Object parent, string id, Object value, double x, double y, double width, double height)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates and adds a new vertex with an empty style, see AddVertex.  <a href="#a33e4556565e3ec020dc177cdceb1ce57"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2e7e9ff4243dec0d690bb99ef69590b5">InsertVertex</a> (Object parent, string id, Object value, double x, double y, double width, double height, string style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates and adds a new vertex with an empty style, see AddVertex.  <a href="#a2e7e9ff4243dec0d690bb99ef69590b5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a5cc3f057a41b3c2da220aa8967fb4e8b">InsertVertex</a> (Object parent, string id, Object value, double x, double y, double width, double height, string style, bool relative)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a new vertex into the given parent using value as the user object and the given coordinates as the geometry of the new vertex. The id and style are used for the respective properties of the new cell, which is returned.  <a href="#a5cc3f057a41b3c2da220aa8967fb4e8b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a80157aca4b0dda9252be5139b197c4f6">CreateVertex</a> (Object parent, string id, Object value, double x, double y, double width, double height, string style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new vertex to be used in insertVertex.  <a href="#a80157aca4b0dda9252be5139b197c4f6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3adbf1ac5f337e59bb60fccd1730887b">CreateVertex</a> (Object parent, string id, Object value, double x, double y, double width, double height, string style, bool relative)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new vertex to be used in insertVertex.  <a href="#a3adbf1ac5f337e59bb60fccd1730887b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae4dddcdc914f145d111a36611e0dae3c">InsertEdge</a> (Object parent, string id, Object value, Object source, Object target)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates and adds a new edge with an empty style.  <a href="#ae4dddcdc914f145d111a36611e0dae3c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aed5ea9ebbf28a3ca37c0665ee159ce16">InsertEdge</a> (Object parent, string id, Object value, Object source, Object target, string style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a new edge into the given parent using value as the user object and the given source and target as the terminals of the new edge. The Id and style are used for the respective properties of the new cell, which is returned.  <a href="#aed5ea9ebbf28a3ca37c0665ee159ce16"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6d2d6a53c4a23cb8ebbb144db1fcf568">CreateEdge</a> (Object parent, string id, Object value, Object source, Object target, string style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates the edge to be used in insertEdge. This implementation does not set the source and target of the edge, these are set when the edge is added to the model.  <a href="#a6d2d6a53c4a23cb8ebbb144db1fcf568"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a62fd93e7cf81eef6a3be100f7b0d80e3">GetGraphBounds</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds of the visible graph.  <a href="#a62fd93e7cf81eef6a3be100f7b0d80e3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a357c8ab34cdb207613a9d652e51b2a73">GetCellBounds</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds of the given cell.  <a href="#a357c8ab34cdb207613a9d652e51b2a73"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a1d39965de20c58a9f1c48ddcb3ee8019">GetCellBounds</a> (Object cell, bool includeEdges)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds of the given cell including all connected edges if includeEdge is true.  <a href="#a1d39965de20c58a9f1c48ddcb3ee8019"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6a4abb452fd01815ba2349aa26727831">GetCellBounds</a> (Object cell, bool includeEdges, bool includeDescendants)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds of the given cell including all connected edges if includeEdge is true.  <a href="#a6a4abb452fd01815ba2349aa26727831"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5bfc7198e1b2eaa3b200bac52175cc6">GetBoundingBox</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds of the given cell.  <a href="#ac5bfc7198e1b2eaa3b200bac52175cc6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aa89e674a91c3aeeeeaab9594b64c8f2e">GetBoundingBox</a> (Object cell, bool includeEdges)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounding box of the given cell including all connected edges if includeEdge is true.  <a href="#aa89e674a91c3aeeeeaab9594b64c8f2e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a71bd876fffa35a8b50525718997bdb1f">GetBoundingBox</a> (Object cell, bool includeEdges, bool includeDescendants)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounding box of the given cell including all connected edges if includeEdge is true.  <a href="#a71bd876fffa35a8b50525718997bdb1f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae68c3f63c612cae292b5209f891e2103">GetPaintBounds</a> (Object[] cells)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounding box of the given cells and their descendants.  <a href="#ae68c3f63c612cae292b5209f891e2103"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad75723b57736652d78475e16bf758fd9">GetBoundsForCells</a> (Object[] cells, bool includeEdges, bool includeDescendants, bool boundingBox)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds for the given cells.  <a href="#ad75723b57736652d78475e16bf758fd9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5a03f36e1f0d51d6bc933eb27b9ad04">GetCellBounds</a> (Object cell, bool includeEdges, bool includeDescendants, bool boundingBox)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds of the given cell including all connected edges if includeEdge is true.  <a href="#ac5a03f36e1f0d51d6bc933eb27b9ad04"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">mxConnectionConstraint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a241389af570d0de4d40c0508c7651f61">GetConnectionConstraint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> edge, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> terminal, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a connection constraint that describes the given connection point. This result can then be passed to getConnectionPoint.  <a href="#a241389af570d0de4d40c0508c7651f61"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#addc468117a4ba03126039f434a02dd3b">GetConnectionPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> vertex, <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">mxConnectionConstraint</a> constraint)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the nearest point in the list of absolute points or the center of the opposite terminal.  <a href="#addc468117a4ba03126039f434a02dd3b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8784492393271fbe739867a9e107a66b">GetCellAt</a> (int x, int y)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the cell at the given location.  <a href="#a8784492393271fbe739867a9e107a66b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a0ba11a0aacd7a46c111b953fbd8b2530">GetCellAt</a> (int x, int y, bool hitSwimlaneContent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the cell at the given location.  <a href="#a0ba11a0aacd7a46c111b953fbd8b2530"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a5bc8a1bceb3786185efd4ad9c5aa75f4">GetCellAt</a> (int x, int y, bool hitSwimlaneContent, Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.  <a href="#a5bc8a1bceb3786185efd4ad9c5aa75f4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae580f6fc2dd563d367b0efb19a6914c2">Intersects</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, Rectangle rect)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy that starts at the given parent.  <a href="#ae580f6fc2dd563d367b0efb19a6914c2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6d5855a06621ece63f7c0833d0dd54c8">HitsSwimlaneContent</a> (Object swimlane, int x, int y)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given point is inside the content area of the given swimlane. (The content area of swimlanes is transparent to events.) This implementation does not check if the given state is a swimlane, it is assumed that the caller has checked this before using this method.  <a href="#a6d5855a06621ece63f7c0833d0dd54c8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a083156b76650d2db1f0832e578b991fd">GetChildVertices</a> (Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the visible child vertices of the given parent.  <a href="#a083156b76650d2db1f0832e578b991fd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab334c710f4cbe99934f5162721c42899">GetChildEdges</a> (Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the visible child edges of the given parent.  <a href="#ab334c710f4cbe99934f5162721c42899"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6e8cb72e242fbe156060b1e8347acefd">GetChildCells</a> (Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the visible children of the given parent.  <a href="#a6e8cb72e242fbe156060b1e8347acefd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae565b50ebd02deb412f19921eb522ec8">GetChildCells</a> (Object parent, bool vertices, bool edges)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the visible child vertices or edges in the given parent. If vertices and edges is false, then all children are returned.  <a href="#ae565b50ebd02deb412f19921eb522ec8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3cc8dacc0f73c8331ca491c8ef8e2b8e">GetConnections</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all visible edges connected to the given cell without loops.  <a href="#a3cc8dacc0f73c8331ca491c8ef8e2b8e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7f9f60dcb940381d916704c27b8cdd44">GetConnections</a> (Object cell, Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all visible edges connected to the given cell without loops.  <a href="#a7f9f60dcb940381d916704c27b8cdd44"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abd1949f247709d9cf32958d50520b703">GetIncomingEdges</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all incoming visible edges connected to the given cell without loops.  <a href="#abd1949f247709d9cf32958d50520b703"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a5dea2422071ec85e227e74662d4c6635">GetIncomingEdges</a> (Object cell, Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the visible incoming edges for the given cell. If the optional parent argument is specified, then only child edges of the given parent are returned.  <a href="#a5dea2422071ec85e227e74662d4c6635"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#af2aa1581fda566b5add1879fd7e9fbb5">GetOutgoingEdges</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all outgoing visible edges connected to the given cell without loops.  <a href="#af2aa1581fda566b5add1879fd7e9fbb5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7bbc3f8c9b25ded19ac36ada2f2d1018">GetOutgoingEdges</a> (Object cell, Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the visible outgoing edges for the given cell. If the optional parent argument is specified, then only child edges of the given parent are returned.  <a href="#a7bbc3f8c9b25ded19ac36ada2f2d1018"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6bdc9bdec69f488a773bbd2595f900be">GetEdges</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all visible edges connected to the given cell including loops.  <a href="#a6bdc9bdec69f488a773bbd2595f900be"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a0d01f31330a3e6c6a12403c4ded9a4ec">GetEdges</a> (Object cell, Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all visible edges connected to the given cell including loops.  <a href="#a0d01f31330a3e6c6a12403c4ded9a4ec"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2c378a3a837e3a9b7bdb3b795fd4f838">GetEdges</a> (Object cell, Object parent, bool incoming, bool outgoing, bool includeLoops)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the incoming and/or outgoing edges for the given cell. If the optional parent argument is specified, then only edges are returned where the opposite is in the given parent cell. If at least one of incoming or outgoing is true, then loops are ignored, if both are false, then all edges connected to the given cell are returned including loops.  <a href="#a2c378a3a837e3a9b7bdb3b795fd4f838"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abe7a22dde80ec0a11f24fa08213c14f9">GetEdges</a> (Object cell, Object parent, bool incoming, bool outgoing, bool includeLoops, bool recurse)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the incoming and/or outgoing edges for the given cell. If the optional parent argument is specified, then only edges are returned where the opposite is in the given parent cell. If at least one of incoming or outgoing is true, then loops are ignored, if both are false, then all edges connected to the given cell are returned including loops.  <a href="#abe7a22dde80ec0a11f24fa08213c14f9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aeee992401f26eeeb965610425c1cb852">IsValidAncestor</a> (Object cell, Object parent, bool recurse)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether or not the specified parent is a valid ancestor of the specified cell, either direct or indirectly based on whether ancestor recursion is enabled.  <a href="#aeee992401f26eeeb965610425c1cb852"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7a168c862d71bda051212c32e6f0592e">GetOpposites</a> (Object[] edges, Object terminal)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all distinct visible opposite cells of the terminal on the given edges.  <a href="#a7a168c862d71bda051212c32e6f0592e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a1d486463262ebeec9469d1e5b47c948a">GetOpposites</a> (Object[] edges, Object terminal, bool sources, bool targets)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all distincts visible opposite cells for the specified terminal on the given edges.  <a href="#a1d486463262ebeec9469d1e5b47c948a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8f9b6d3aac9900437eca491f38742dde">GetEdgesBetween</a> (Object source, Object target)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the edges between the given source and target. This takes into account collapsed and invisible cells and returns the connected edges as displayed on the screen.  <a href="#a8f9b6d3aac9900437eca491f38742dde"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aa7b91245aadc26cd00205f38273be05b">GetEdgesBetween</a> (Object source, Object target, bool directed)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the edges between the given source and target. This takes into account collapsed and invisible cells and returns the connected edges as displayed on the screen.  <a href="#aa7b91245aadc26cd00205f38273be05b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae0f56dfe6a0da5de04f4b1c04287a204">FindTreeRoots</a> (Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all children in the given parent which do not have incoming edges. If the result is empty then the with the greatest difference between incoming and outgoing edges is returned.  <a href="#ae0f56dfe6a0da5de04f4b1c04287a204"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae53ed77e951fceaf3d1bdf4d9cc40f97">FindTreeRoots</a> (Object parent, bool isolate)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all children in the given parent which do not have incoming edges. If the result is empty then the with the greatest difference between incoming and outgoing edges is returned.  <a href="#ae53ed77e951fceaf3d1bdf4d9cc40f97"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9c857361773ff4f9b91f00456a37c0e7">FindTreeRoots</a> (Object parent, bool isolate, bool invert)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all children in the given parent which do not have incoming edges. If the result is empty then the with the greatest difference between incoming and outgoing edges is returned.  <a href="#a9c857361773ff4f9b91f00456a37c0e7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5a945c74c4398d4c86e16a18c9324b2">DrawGraph</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> canvas)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the graph onto the given canvas.  <a href="#ac5a945c74c4398d4c86e16a18c9324b2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#af6fc42eaa1eb3a49c08562938490b532">DrawCell</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> canvas, Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the given cell onto the specified canvas.  <a href="#af6fc42eaa1eb3a49c08562938490b532"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a83ba7a3c31f5dee4474ec5daa0e64143">DrawState</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> canvas, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, String label)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the given cell and label onto the specified canvas. No children or descendants are painted.  <a href="#a83ba7a3c31f5dee4474ec5daa0e64143"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3bb8f37de70854711542b9f1ebaaf85e">GraphModelChanged</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called when the graph model has changed to invalidate the view.  <a href="#a3bb8f37de70854711542b9f1ebaaf85e"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">const String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a71f768c91c8a0f04776f0470bc5e18ef">VERSION</a> = &quot;1.10.0.5&quot;</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the version number of this release. Current version is 1.10.0.5.  <a href="#a71f768c91c8a0f04776f0470bc5e18ef"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6b360d188b285a440a858ff69a162dea">CreateStylesheet</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new stylesheet to be used in this graph.  <a href="#a6b360d188b285a440a858ff69a162dea"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac1b8b9fdccf032cb2c58d16bf7bda8ba">CreateGraphView</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new view to be used in this graph.  <a href="#ac1b8b9fdccf032cb2c58d16bf7bda8ba"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7b6ba38dbc5c8d3794d191e9dc58d5b9">PostProcessCellStyle</a> (Dictionary&lt; string, Object &gt; style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html" title="Maps from keys to base64 encoded images or file locations. All values must be URLs...">mxImageBundle</a> to data URIs as defined in RFC 2397 of the IETF.  <a href="#a7b6ba38dbc5c8d3794d191e9dc58d5b9"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9f368b71dccff0fa2e24f6ce685902ac">model</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the model that contains the cells to be displayed.  <a href="#a9f368b71dccff0fa2e24f6ce685902ac"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae3e7da2a26f75a889980c53fefaa3467">stylesheet</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the stylesheet that defines the appearance of the cells.  <a href="#ae3e7da2a26f75a889980c53fefaa3467"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac140b77f977a37470ce7cba0f9302898">view</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the view that caches the cell states.  <a href="#ac140b77f977a37470ce7cba0f9302898"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">mxEdgeStyleFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad407060f46936743606c381fee294f58">defaultLoopStyle</a> = <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#abccfcbe9600ba65c750d9334c2e6a36c">mxEdgeStyle.Loop</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the default style for loops.  <a href="#ad407060f46936743606c381fee294f58"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae02f4752e2cd75d188861a9ff7cd562d">tolerance</a> = 4</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the tolerance for mouse clicks. Default is 4.  <a href="#ae02f4752e2cd75d188861a9ff7cd562d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a27c89a48e8ee870e7802378fabc41782">labelsVisible</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if labels should be visible. This is used in GetLabel. Default is true.  <a href="#a27c89a48e8ee870e7802378fabc41782"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a64c20d87e6b6082a1262095881807d27">gridSize</a> = 10</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the grid size. Default is 10.  <a href="#a64c20d87e6b6082a1262095881807d27"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a664aa375d8f1b67216fc3e281bea9e55">gridEnabled</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if the grid is enabled. Default is true.  <a href="#a664aa375d8f1b67216fc3e281bea9e55"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a715f872e532ab585e8ec45b2d375d014">imageBundles</a> = new List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a>&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the list of image bundles.  <a href="#a715f872e532ab585e8ec45b2d375d014"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a59458bde9c7951ace31f86dbd2c4bb68">Model</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the graph model that contains the graph data.  <a href="#a59458bde9c7951ace31f86dbd2c4bb68"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#acfa0196cd28096cd25a8087095f3a9e0">Stylesheet</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the stylesheet that provides the style.  <a href="#acfa0196cd28096cd25a8087095f3a9e0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab13ec7954a48c952bb8e03ee9c3ba943">View</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the view that contains the cell states.  <a href="#ab13ec7954a48c952bb8e03ee9c3ba943"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">mxEdgeStyleFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a857ea173f7f385dae314598f99878639">DefaultLoopStyle</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the default edge style for loops.  <a href="#a857ea173f7f385dae314598f99878639"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2492e35122e5edcc08d5ad164c492415">GridEnabled</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the enabled state of the grid.  <a href="#a2492e35122e5edcc08d5ad164c492415"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a19e7d16278a7fd29510832c6c6fa6378">GridSize</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the grid size.  <a href="#a19e7d16278a7fd29510832c6c6fa6378"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abb96d6cfde89d87c098bd1d7c78f6010">LabelsVisible</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns if labels are visible.  <a href="#abb96d6cfde89d87c098bd1d7c78f6010"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6de2d696c85750fafc8d10600d3d7fe8">ImageBundles</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the image bundles.  <a href="#a6de2d696c85750fafc8d10600d3d7fe8"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a graph object that allows to create diagrams from a graph model and stylesheet. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a41f3676a508eba5fa0f30f1958da9aa8"></a><!-- doxytag: member="com::mxgraph::mxGraph::mxGraph" ref="a41f3676a508eba5fa0f30f1958da9aa8" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraph::mxGraph </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new graph with an empty graph model. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a988101412d00fd1cd254d6ce56f29a61"></a><!-- doxytag: member="com::mxgraph::mxGraph::mxGraph" ref="a988101412d00fd1cd254d6ce56f29a61" args="(mxIGraphModel model)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraph::mxGraph </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new graph for the specified model. If no model is specified, then a new, empty graph model is used. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a64e10ad86550fa900179459d6f783677"></a><!-- doxytag: member="com::mxgraph::mxGraph::mxGraph" ref="a64e10ad86550fa900179459d6f783677" args="(mxStylesheet stylesheet)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraph::mxGraph </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a>&nbsp;</td>
    +          <td class="paramname"> <em>stylesheet</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new graph for the specified model. If no model is specified, then a new, empty graph model is used. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad73c9d7ed5c1b2e51392d9e886bb61cb"></a><!-- doxytag: member="com::mxgraph::mxGraph::mxGraph" ref="ad73c9d7ed5c1b2e51392d9e886bb61cb" args="(mxIGraphModel model, mxStylesheet stylesheet)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraph::mxGraph </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a>&nbsp;</td>
    +          <td class="paramname"> <em>stylesheet</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new graph for the specified model. If no model is specified, then a new, empty graph model is used. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="aa057b90ab131f4662a7f402d006a73bf"></a><!-- doxytag: member="com::mxgraph::mxGraph::AddImageBundle" ref="aa057b90ab131f4662a7f402d006a73bf" args="(mxImageBundle bundle)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraph::AddImageBundle </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a>&nbsp;</td>
    +          <td class="paramname"> <em>bundle</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds the specified bundle. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a33ae6b392d4a1eba9b7821e272a8c152"></a><!-- doxytag: member="com::mxgraph::mxGraph::ConvertValueToString" ref="a33ae6b392d4a1eba9b7821e272a8c152" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGraph::ConvertValueToString </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the textual representation for the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell to be converted to a string.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the textual representation of the cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6d2d6a53c4a23cb8ebbb144db1fcf568"></a><!-- doxytag: member="com::mxgraph::mxGraph::CreateEdge" ref="a6d2d6a53c4a23cb8ebbb144db1fcf568" args="(Object parent, string id, Object value, Object source, Object target, string style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::CreateEdge </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>target</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates the edge to be used in insertEdge. This implementation does not set the source and target of the edge, these are set when the edge is added to the model. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac1b8b9fdccf032cb2c58d16bf7bda8ba"></a><!-- doxytag: member="com::mxgraph::mxGraph::CreateGraphView" ref="ac1b8b9fdccf032cb2c58d16bf7bda8ba" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a> com::mxgraph::mxGraph::CreateGraphView </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new view to be used in this graph. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6b360d188b285a440a858ff69a162dea"></a><!-- doxytag: member="com::mxgraph::mxGraph::CreateStylesheet" ref="a6b360d188b285a440a858ff69a162dea" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a> com::mxgraph::mxGraph::CreateStylesheet </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new stylesheet to be used in this graph. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3adbf1ac5f337e59bb60fccd1730887b"></a><!-- doxytag: member="com::mxgraph::mxGraph::CreateVertex" ref="a3adbf1ac5f337e59bb60fccd1730887b" args="(Object parent, string id, Object value, double x, double y, double width, double height, string style, bool relative)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::CreateVertex </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>height</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>relative</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates a new vertex to be used in insertVertex. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a80157aca4b0dda9252be5139b197c4f6"></a><!-- doxytag: member="com::mxgraph::mxGraph::CreateVertex" ref="a80157aca4b0dda9252be5139b197c4f6" args="(Object parent, string id, Object value, double x, double y, double width, double height, string style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::CreateVertex </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>height</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates a new vertex to be used in insertVertex. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af6fc42eaa1eb3a49c08562938490b532"></a><!-- doxytag: member="com::mxgraph::mxGraph::DrawCell" ref="af6fc42eaa1eb3a49c08562938490b532" args="(mxICanvas canvas, Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraph::DrawCell </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td>
    +          <td class="paramname"> <em>canvas</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the given cell onto the specified canvas. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>canvas</em>&nbsp;</td><td>Canvas onto which the cell should be drawn.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell that should be drawn onto the canvas.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac5a945c74c4398d4c86e16a18c9324b2"></a><!-- doxytag: member="com::mxgraph::mxGraph::DrawGraph" ref="ac5a945c74c4398d4c86e16a18c9324b2" args="(mxICanvas canvas)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraph::DrawGraph </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td>
    +          <td class="paramname"> <em>canvas</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the graph onto the given canvas. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>canvas</em>&nbsp;</td><td>Canvas onto which the graph should be drawn.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a83ba7a3c31f5dee4474ec5daa0e64143"></a><!-- doxytag: member="com::mxgraph::mxGraph::DrawState" ref="a83ba7a3c31f5dee4474ec5daa0e64143" args="(mxICanvas canvas, mxCellState state, String label)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraph::DrawState </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td>
    +          <td class="paramname"> <em>canvas</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>label</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the given cell and label onto the specified canvas. No children or descendants are painted. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9c857361773ff4f9b91f00456a37c0e7"></a><!-- doxytag: member="com::mxgraph::mxGraph::FindTreeRoots" ref="a9c857361773ff4f9b91f00456a37c0e7" args="(Object parent, bool isolate, bool invert)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;Object&gt; com::mxgraph::mxGraph::FindTreeRoots </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>isolate</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>invert</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all children in the given parent which do not have incoming edges. If the result is empty then the with the greatest difference between incoming and outgoing edges is returned. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell whose children should be checked.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>isolate</em>&nbsp;</td><td>Specifies if edges should be ignored if the opposite end is not a child of the given parent cell.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>invert</em>&nbsp;</td><td>Specifies if outgoing or incoming edges should be counted for a tree root. If false then outgoing edges will be counted.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Array of tree roots in parent.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae53ed77e951fceaf3d1bdf4d9cc40f97"></a><!-- doxytag: member="com::mxgraph::mxGraph::FindTreeRoots" ref="ae53ed77e951fceaf3d1bdf4d9cc40f97" args="(Object parent, bool isolate)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;Object&gt; com::mxgraph::mxGraph::FindTreeRoots </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>isolate</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all children in the given parent which do not have incoming edges. If the result is empty then the with the greatest difference between incoming and outgoing edges is returned. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell whose children should be checked.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>isolate</em>&nbsp;</td><td>Specifies if edges should be ignored if the opposite end is not a child of the given parent cell.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Array of tree roots in parent.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae0f56dfe6a0da5de04f4b1c04287a204"></a><!-- doxytag: member="com::mxgraph::mxGraph::FindTreeRoots" ref="ae0f56dfe6a0da5de04f4b1c04287a204" args="(Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;Object&gt; com::mxgraph::mxGraph::FindTreeRoots </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all children in the given parent which do not have incoming edges. If the result is empty then the with the greatest difference between incoming and outgoing edges is returned. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell whose children should be checked.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a71bd876fffa35a8b50525718997bdb1f"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetBoundingBox" ref="a71bd876fffa35a8b50525718997bdb1f" args="(Object cell, bool includeEdges, bool includeDescendants)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetBoundingBox </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeEdges</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeDescendants</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounding box of the given cell including all connected edges if includeEdge is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa89e674a91c3aeeeeaab9594b64c8f2e"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetBoundingBox" ref="aa89e674a91c3aeeeeaab9594b64c8f2e" args="(Object cell, bool includeEdges)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetBoundingBox </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeEdges</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounding box of the given cell including all connected edges if includeEdge is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac5bfc7198e1b2eaa3b200bac52175cc6"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetBoundingBox" ref="ac5bfc7198e1b2eaa3b200bac52175cc6" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetBoundingBox </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds of the given cell. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad75723b57736652d78475e16bf758fd9"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetBoundsForCells" ref="ad75723b57736652d78475e16bf758fd9" args="(Object[] cells, bool includeEdges, bool includeDescendants, bool boundingBox)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetBoundsForCells </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeEdges</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeDescendants</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>boundingBox</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds for the given cells. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5bc8a1bceb3786185efd4ad9c5aa75f4"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetCellAt" ref="a5bc8a1bceb3786185efd4ad9c5aa75f4" args="(int x, int y, bool hitSwimlaneContent, Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::GetCellAt </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>hitSwimlaneContent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the location to be checked.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the location to be checked.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>hitSwimlaneContent</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>that should be used as the root of the recursion.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child at the given location.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0ba11a0aacd7a46c111b953fbd8b2530"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetCellAt" ref="a0ba11a0aacd7a46c111b953fbd8b2530" args="(int x, int y, bool hitSwimlaneContent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::GetCellAt </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>hitSwimlaneContent</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the cell at the given location. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8784492393271fbe739867a9e107a66b"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetCellAt" ref="a8784492393271fbe739867a9e107a66b" args="(int x, int y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::GetCellAt </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the cell at the given location. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac5a03f36e1f0d51d6bc933eb27b9ad04"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetCellBounds" ref="ac5a03f36e1f0d51d6bc933eb27b9ad04" args="(Object cell, bool includeEdges, bool includeDescendants, bool boundingBox)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetCellBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeEdges</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeDescendants</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>boundingBox</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds of the given cell including all connected edges if includeEdge is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6a4abb452fd01815ba2349aa26727831"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetCellBounds" ref="a6a4abb452fd01815ba2349aa26727831" args="(Object cell, bool includeEdges, bool includeDescendants)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetCellBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeEdges</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeDescendants</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds of the given cell including all connected edges if includeEdge is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1d39965de20c58a9f1c48ddcb3ee8019"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetCellBounds" ref="a1d39965de20c58a9f1c48ddcb3ee8019" args="(Object cell, bool includeEdges)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetCellBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeEdges</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds of the given cell including all connected edges if includeEdge is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a357c8ab34cdb207613a9d652e51b2a73"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetCellBounds" ref="a357c8ab34cdb207613a9d652e51b2a73" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetCellBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds of the given cell. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2c1b1d989e1d49d1bfb16ea1c80bb123"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetCellGeometry" ref="a2c1b1d989e1d49d1bfb16ea1c80bb123" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> com::mxgraph::mxGraph::GetCellGeometry </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the geometry for the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose geometry should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the geometry of the cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7b51ce1952768c396f8a087f4b3134ba"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetCellStyle" ref="a7b51ce1952768c396f8a087f4b3134ba" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; com::mxgraph::mxGraph::GetCellStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the style for the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose style should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the style of the cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae565b50ebd02deb412f19921eb522ec8"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetChildCells" ref="ae565b50ebd02deb412f19921eb522ec8" args="(Object parent, bool vertices, bool edges)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetChildCells </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>vertices</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>edges</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the visible child vertices or edges in the given parent. If vertices and edges is false, then all children are returned. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell whose children should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>vertices</em>&nbsp;</td><td>Specifies if child vertices should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>edges</em>&nbsp;</td><td>Specifies if child edges should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6e8cb72e242fbe156060b1e8347acefd"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetChildCells" ref="a6e8cb72e242fbe156060b1e8347acefd" args="(Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetChildCells </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the visible children of the given parent. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab334c710f4cbe99934f5162721c42899"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetChildEdges" ref="ab334c710f4cbe99934f5162721c42899" args="(Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetChildEdges </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the visible child edges of the given parent. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell whose children should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1ddeb1fc6c41024bbe7a186971f10049"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetChildOffsetForCell" ref="a1ddeb1fc6c41024bbe7a186971f10049" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraph::GetChildOffsetForCell </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the offset to be used for the cells inside the given cell. The root and layer cells may be identified using mxGraphModel.isRoot and mxGraphModel.isLayer. This implementation returns null. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose offset should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child offset for the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a083156b76650d2db1f0832e578b991fd"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetChildVertices" ref="a083156b76650d2db1f0832e578b991fd" args="(Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetChildVertices </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the visible child vertices of the given parent. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell whose children should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a241389af570d0de4d40c0508c7651f61"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetConnectionConstraint" ref="a241389af570d0de4d40c0508c7651f61" args="(mxCellState edge, mxCellState terminal, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">mxConnectionConstraint</a> com::mxgraph::mxGraph::GetConnectionConstraint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a connection constraint that describes the given connection point. This result can then be passed to getConnectionPoint. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell state that represents the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td>Cell state that represents the terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean indicating if the terminal is the source or target.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="addc468117a4ba03126039f434a02dd3b"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetConnectionPoint" ref="addc468117a4ba03126039f434a02dd3b" args="(mxCellState vertex, mxConnectionConstraint constraint)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraph::GetConnectionPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>vertex</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">mxConnectionConstraint</a>&nbsp;</td>
    +          <td class="paramname"> <em>constraint</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the nearest point in the list of absolute points or the center of the opposite terminal. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>vertex</em>&nbsp;</td><td>Cell state that represents the vertex.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>constraint</em>&nbsp;</td><td>Connection constraint that represents the connection point constraint as returned by getConnectionConstraint.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7f9f60dcb940381d916704c27b8cdd44"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetConnections" ref="a7f9f60dcb940381d916704c27b8cdd44" args="(Object cell, Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetConnections </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all visible edges connected to the given cell without loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose connections should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Optional parent of the opposite end for a connection to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the connected edges for the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3cc8dacc0f73c8331ca491c8ef8e2b8e"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetConnections" ref="a3cc8dacc0f73c8331ca491c8ef8e2b8e" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetConnections </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all visible edges connected to the given cell without loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose connections should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the connected edges for the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad16bde2a0549353cc07eb274da9016e0"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetDefaultParent" ref="ad16bde2a0549353cc07eb274da9016e0" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::GetDefaultParent </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the first child of the root in the model, that is, the first or default layer of the diagram. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the default parent for new cells.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abe7a22dde80ec0a11f24fa08213c14f9"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetEdges" ref="abe7a22dde80ec0a11f24fa08213c14f9" args="(Object cell, Object parent, bool incoming, bool outgoing, bool includeLoops, bool recurse)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetEdges </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>incoming</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>outgoing</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeLoops</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>recurse</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the incoming and/or outgoing edges for the given cell. If the optional parent argument is specified, then only edges are returned where the opposite is in the given parent cell. If at least one of incoming or outgoing is true, then loops are ignored, if both are false, then all edges connected to the given cell are returned including loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose edges should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Optional parent of the opposite end for an edge to be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>incoming</em>&nbsp;</td><td>Specifies if incoming edges should be included in the result.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>outgoing</em>&nbsp;</td><td>Specifies if outgoing edges should be included in the result.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>includeLoops</em>&nbsp;</td><td>Specifies if loops should be included in the result.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>recurse</em>&nbsp;</td><td>Boolean the specifies if the parent specified only need be an ancestral parent, true, or the direct parent, false.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the edges connected to the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2c378a3a837e3a9b7bdb3b795fd4f838"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetEdges" ref="a2c378a3a837e3a9b7bdb3b795fd4f838" args="(Object cell, Object parent, bool incoming, bool outgoing, bool includeLoops)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetEdges </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>incoming</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>outgoing</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeLoops</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the incoming and/or outgoing edges for the given cell. If the optional parent argument is specified, then only edges are returned where the opposite is in the given parent cell. If at least one of incoming or outgoing is true, then loops are ignored, if both are false, then all edges connected to the given cell are returned including loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose edges should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Optional parent of the opposite end for an edge to be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>incoming</em>&nbsp;</td><td>Specifies if incoming edges should be included in the result.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>outgoing</em>&nbsp;</td><td>Specifies if outgoing edges should be included in the result.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>includeLoops</em>&nbsp;</td><td>Specifies if loops should be included in the result.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the edges connected to the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0d01f31330a3e6c6a12403c4ded9a4ec"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetEdges" ref="a0d01f31330a3e6c6a12403c4ded9a4ec" args="(Object cell, Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetEdges </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all visible edges connected to the given cell including loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose edges should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Optional parent of the opposite end for an edge to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the edges of the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6bdc9bdec69f488a773bbd2595f900be"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetEdges" ref="a6bdc9bdec69f488a773bbd2595f900be" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetEdges </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all visible edges connected to the given cell including loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose edges should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the edges of the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa7b91245aadc26cd00205f38273be05b"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetEdgesBetween" ref="aa7b91245aadc26cd00205f38273be05b" args="(Object source, Object target, bool directed)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetEdgesBetween </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>target</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>directed</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the edges between the given source and target. This takes into account collapsed and invisible cells and returns the connected edges as displayed on the screen. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>directed</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8f9b6d3aac9900437eca491f38742dde"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetEdgesBetween" ref="a8f9b6d3aac9900437eca491f38742dde" args="(Object source, Object target)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetEdgesBetween </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the edges between the given source and target. This takes into account collapsed and invisible cells and returns the connected edges as displayed on the screen. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a62fd93e7cf81eef6a3be100f7b0d80e3"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetGraphBounds" ref="a62fd93e7cf81eef6a3be100f7b0d80e3" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetGraphBounds </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds of the visible graph. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a92aeba26d19e93c8114e6c198fdab341"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetImageFromBundles" ref="a92aeba26d19e93c8114e6c198fdab341" args="(String key)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String com::mxgraph::mxGraph::GetImageFromBundles </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>key</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Searches all bundles for the specified key and returns the value for the first match or null if the key is not found. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5dea2422071ec85e227e74662d4c6635"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetIncomingEdges" ref="a5dea2422071ec85e227e74662d4c6635" args="(Object cell, Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetIncomingEdges </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the visible incoming edges for the given cell. If the optional parent argument is specified, then only child edges of the given parent are returned. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose incoming edges should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Optional parent of the opposite end for a connection to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the incoming edges of the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abd1949f247709d9cf32958d50520b703"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetIncomingEdges" ref="abd1949f247709d9cf32958d50520b703" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetIncomingEdges </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all incoming visible edges connected to the given cell without loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose incoming edges should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the incoming edges of the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a527defcf3188cf4d934742589cc6a370"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetLabel" ref="a527defcf3188cf4d934742589cc6a370" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGraph::GetLabel </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a string or markup that represents the label for the given cell. This implementation uses ConvertValueToString if labelsVisible is true. Otherwise it returns an empty string. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1d486463262ebeec9469d1e5b47c948a"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetOpposites" ref="a1d486463262ebeec9469d1e5b47c948a" args="(Object[] edges, Object terminal, bool sources, bool targets)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetOpposites </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>edges</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>sources</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>targets</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all distincts visible opposite cells for the specified terminal on the given edges. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edges</em>&nbsp;</td><td>Edges whose opposite terminals should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td>Terminal that specifies the end whose opposite should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>sources</em>&nbsp;</td><td>Specifies if source terminals should be included in the result.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>targets</em>&nbsp;</td><td>Specifies if targer terminals should be included in the result.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7a168c862d71bda051212c32e6f0592e"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetOpposites" ref="a7a168c862d71bda051212c32e6f0592e" args="(Object[] edges, Object terminal)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetOpposites </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>edges</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all distinct visible opposite cells of the terminal on the given edges. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edges</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7bbc3f8c9b25ded19ac36ada2f2d1018"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetOutgoingEdges" ref="a7bbc3f8c9b25ded19ac36ada2f2d1018" args="(Object cell, Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetOutgoingEdges </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the visible outgoing edges for the given cell. If the optional parent argument is specified, then only child edges of the given parent are returned. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose outgoing edges should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Optional parent of the opposite end for a connection to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the outgoing edges of the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af2aa1581fda566b5add1879fd7e9fbb5"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetOutgoingEdges" ref="af2aa1581fda566b5add1879fd7e9fbb5" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraph::GetOutgoingEdges </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all outgoing visible edges connected to the given cell without loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose outgoing edges should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the outgoing edges of the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae68c3f63c612cae292b5209f891e2103"></a><!-- doxytag: member="com::mxgraph::mxGraph::GetPaintBounds" ref="ae68c3f63c612cae292b5209f891e2103" args="(Object[] cells)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraph::GetPaintBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounding box of the given cells and their descendants. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3bb8f37de70854711542b9f1ebaaf85e"></a><!-- doxytag: member="com::mxgraph::mxGraph::GraphModelChanged" ref="a3bb8f37de70854711542b9f1ebaaf85e" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraph::GraphModelChanged </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Called when the graph model has changed to invalidate the view. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6d5855a06621ece63f7c0833d0dd54c8"></a><!-- doxytag: member="com::mxgraph::mxGraph::HitsSwimlaneContent" ref="a6d5855a06621ece63f7c0833d0dd54c8" args="(Object swimlane, int x, int y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::HitsSwimlaneContent </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>swimlane</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given point is inside the content area of the given swimlane. (The content area of swimlanes is transparent to events.) This implementation does not check if the given state is a swimlane, it is assumed that the caller has checked this before using this method. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aed5ea9ebbf28a3ca37c0665ee159ce16"></a><!-- doxytag: member="com::mxgraph::mxGraph::InsertEdge" ref="aed5ea9ebbf28a3ca37c0665ee159ce16" args="(Object parent, string id, Object value, Object source, Object target, string style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::InsertEdge </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>target</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds a new edge into the given parent using value as the user object and the given source and target as the terminals of the new edge. The Id and style are used for the respective properties of the new cell, which is returned. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell that specifies the parent of the new edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>Optional string that defines the Id of the new edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Object to be used as the user object.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Cell that defines the source of the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>Cell that defines the target of the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>Optional string that defines the cell style.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the new edge that has been inserted.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae4dddcdc914f145d111a36611e0dae3c"></a><!-- doxytag: member="com::mxgraph::mxGraph::InsertEdge" ref="ae4dddcdc914f145d111a36611e0dae3c" args="(Object parent, string id, Object value, Object source, Object target)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::InsertEdge </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates and adds a new edge with an empty style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5cc3f057a41b3c2da220aa8967fb4e8b"></a><!-- doxytag: member="com::mxgraph::mxGraph::InsertVertex" ref="a5cc3f057a41b3c2da220aa8967fb4e8b" args="(Object parent, string id, Object value, double x, double y, double width, double height, string style, bool relative)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::InsertVertex </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>height</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>relative</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds a new vertex into the given parent using value as the user object and the given coordinates as the geometry of the new vertex. The id and style are used for the respective properties of the new cell, which is returned. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell that specifies the parent of the new vertex.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>Optional string that defines the Id of the new vertex.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Object to be used as the user object.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>Integer that defines the x coordinate of the vertex.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Integer that defines the y coordinate of the vertex.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>Integer that defines the width of the vertex.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td>Integer that defines the height of the vertex.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>Optional string that defines the cell style.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the new vertex that has been inserted.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2e7e9ff4243dec0d690bb99ef69590b5"></a><!-- doxytag: member="com::mxgraph::mxGraph::InsertVertex" ref="a2e7e9ff4243dec0d690bb99ef69590b5" args="(Object parent, string id, Object value, double x, double y, double width, double height, string style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::InsertVertex </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>height</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates and adds a new vertex with an empty style, see AddVertex. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a33e4556565e3ec020dc177cdceb1ce57"></a><!-- doxytag: member="com::mxgraph::mxGraph::InsertVertex" ref="a33e4556565e3ec020dc177cdceb1ce57" args="(Object parent, string id, Object value, double x, double y, double width, double height)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraph::InsertVertex </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>height</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates and adds a new vertex with an empty style, see AddVertex. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae580f6fc2dd563d367b0efb19a6914c2"></a><!-- doxytag: member="com::mxgraph::mxGraph::Intersects" ref="ae580f6fc2dd563d367b0efb19a6914c2" args="(mxCellState state, Rectangle rect)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::Intersects </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Rectangle&nbsp;</td>
    +          <td class="paramname"> <em>rect</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy that starts at the given parent. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>rect</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the given cell state and rectangle intersect.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac60178c6697ce833fa2f64d7e1f49669"></a><!-- doxytag: member="com::mxgraph::mxGraph::IsCellCollapsed" ref="ac60178c6697ce833fa2f64d7e1f49669" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::IsCellCollapsed </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is collapsed. This implementation returns true if the collapsed state of the cell in the model is true. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose collapsed state should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the collapsed state of the cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4f07dee4b9958154ecc3945de97f41af"></a><!-- doxytag: member="com::mxgraph::mxGraph::IsCellConnectable" ref="a4f07dee4b9958154ecc3945de97f41af" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::IsCellConnectable </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is connectable. This implementation returns true if the connectable state of the cell in the model is true. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose connectable state should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the connectable state of the cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3f095589a40b8012cff674389f5f584b"></a><!-- doxytag: member="com::mxgraph::mxGraph::IsCellMovable" ref="a3f095589a40b8012cff674389f5f584b" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::IsCellMovable </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is movable. This implementation always returns true. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose movable state should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the cell is movable.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8f643dbb69496ce22adeaea030368479"></a><!-- doxytag: member="com::mxgraph::mxGraph::IsCellVisible" ref="a8f643dbb69496ce22adeaea030368479" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::IsCellVisible </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is visible. This implementation returns true if the visible state of the cell in the model is true. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose visible state should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the visible state of the cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab0146d0411dd28fb371e19e06b5f8b84"></a><!-- doxytag: member="com::mxgraph::mxGraph::IsOrthogonal" ref="ab0146d0411dd28fb371e19e06b5f8b84" args="(mxCellState edge)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::IsOrthogonal </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if perimeter points should be computed such that the resulting edge has only horizontal or vertical segments. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell state that represents the edge.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>True if the edge is orthogonal.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9e426bb8a46d02750d6010ab670d9277"></a><!-- doxytag: member="com::mxgraph::mxGraph::IsSwimlane" ref="a9e426bb8a46d02750d6010ab670d9277" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::IsSwimlane </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is a swimlane. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell that should be checked.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the cell is a swimlane.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aeee992401f26eeeb965610425c1cb852"></a><!-- doxytag: member="com::mxgraph::mxGraph::IsValidAncestor" ref="aeee992401f26eeeb965610425c1cb852" args="(Object cell, Object parent, bool recurse)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::IsValidAncestor </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>recurse</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns whether or not the specified parent is a valid ancestor of the specified cell, either direct or indirectly based on whether ancestor recursion is enabled. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>The possible child cell</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>The possible parent cell</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>recurse</em>&nbsp;</td><td>boolean whether or not to recurse the child ancestors</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7b6ba38dbc5c8d3794d191e9dc58d5b9"></a><!-- doxytag: member="com::mxgraph::mxGraph::PostProcessCellStyle" ref="a7b6ba38dbc5c8d3794d191e9dc58d5b9" args="(Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; com::mxgraph::mxGraph::PostProcessCellStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Tries to resolve the value for the image style in the image bundles and turns short data URIs as defined in <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html" title="Maps from keys to base64 encoded images or file locations. All values must be URLs...">mxImageBundle</a> to data URIs as defined in RFC 2397 of the IETF. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afe6eeab8462dfb48f5dec50a8f3aa902"></a><!-- doxytag: member="com::mxgraph::mxGraph::RemoveImageBundle" ref="afe6eeab8462dfb48f5dec50a8f3aa902" args="(mxImageBundle bundle)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraph::RemoveImageBundle </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a>&nbsp;</td>
    +          <td class="paramname"> <em>bundle</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the specified bundle. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0d130a6228092758ec584a9d594b1446"></a><!-- doxytag: member="com::mxgraph::mxGraph::SetCellStyles" ref="a0d130a6228092758ec584a9d594b1446" args="(String key, String value, Object[] cells)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraph::SetCellStyles </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the key to value in the styles of the given cells. This will modify the existing cell styles in-place and override any existing assignment for the given key. If no cells are specified, then the selection cells are changed. If no value is specified, then the respective key is removed from the styles. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>String representing the key to be assigned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>String representing the new value for the key.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cells</em>&nbsp;</td><td>Array of cells to change the style for.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a40232c253fa2c15e858dec290f45c8ad"></a><!-- doxytag: member="com::mxgraph::mxGraph::Snap" ref="a40232c253fa2c15e858dec290f45c8ad" args="(double value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGraph::Snap </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Snaps the given numeric value to the grid if gridEnabled is true. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Numeric value to be snapped to the grid.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the value aligned to the grid.</dd></dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="ad407060f46936743606c381fee294f58"></a><!-- doxytag: member="com::mxgraph::mxGraph::defaultLoopStyle" ref="ad407060f46936743606c381fee294f58" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxEdgeStyleFunction <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad407060f46936743606c381fee294f58">com::mxgraph::mxGraph::defaultLoopStyle</a> = <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#abccfcbe9600ba65c750d9334c2e6a36c">mxEdgeStyle.Loop</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the default style for loops. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a664aa375d8f1b67216fc3e281bea9e55"></a><!-- doxytag: member="com::mxgraph::mxGraph::gridEnabled" ref="a664aa375d8f1b67216fc3e281bea9e55" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a664aa375d8f1b67216fc3e281bea9e55">com::mxgraph::mxGraph::gridEnabled</a> = true<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if the grid is enabled. Default is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a64c20d87e6b6082a1262095881807d27"></a><!-- doxytag: member="com::mxgraph::mxGraph::gridSize" ref="a64c20d87e6b6082a1262095881807d27" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a64c20d87e6b6082a1262095881807d27">com::mxgraph::mxGraph::gridSize</a> = 10<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the grid size. Default is 10. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a715f872e532ab585e8ec45b2d375d014"></a><!-- doxytag: member="com::mxgraph::mxGraph::imageBundles" ref="a715f872e532ab585e8ec45b2d375d014" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a>&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a715f872e532ab585e8ec45b2d375d014">com::mxgraph::mxGraph::imageBundles</a> = new List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a>&gt;()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the list of image bundles. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a27c89a48e8ee870e7802378fabc41782"></a><!-- doxytag: member="com::mxgraph::mxGraph::labelsVisible" ref="a27c89a48e8ee870e7802378fabc41782" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a27c89a48e8ee870e7802378fabc41782">com::mxgraph::mxGraph::labelsVisible</a> = true<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if labels should be visible. This is used in GetLabel. Default is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9f368b71dccff0fa2e24f6ce685902ac"></a><!-- doxytag: member="com::mxgraph::mxGraph::model" ref="a9f368b71dccff0fa2e24f6ce685902ac" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9f368b71dccff0fa2e24f6ce685902ac">com::mxgraph::mxGraph::model</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the model that contains the cells to be displayed. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae3e7da2a26f75a889980c53fefaa3467"></a><!-- doxytag: member="com::mxgraph::mxGraph::stylesheet" ref="ae3e7da2a26f75a889980c53fefaa3467" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae3e7da2a26f75a889980c53fefaa3467">com::mxgraph::mxGraph::stylesheet</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the stylesheet that defines the appearance of the cells. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae02f4752e2cd75d188861a9ff7cd562d"></a><!-- doxytag: member="com::mxgraph::mxGraph::tolerance" ref="ae02f4752e2cd75d188861a9ff7cd562d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae02f4752e2cd75d188861a9ff7cd562d">com::mxgraph::mxGraph::tolerance</a> = 4<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the tolerance for mouse clicks. Default is 4. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a71f768c91c8a0f04776f0470bc5e18ef"></a><!-- doxytag: member="com::mxgraph::mxGraph::VERSION" ref="a71f768c91c8a0f04776f0470bc5e18ef" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">const String <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a71f768c91c8a0f04776f0470bc5e18ef">com::mxgraph::mxGraph::VERSION</a> = &quot;1.10.0.5&quot;</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the version number of this release. Current version is 1.10.0.5. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac140b77f977a37470ce7cba0f9302898"></a><!-- doxytag: member="com::mxgraph::mxGraph::view" ref="ac140b77f977a37470ce7cba0f9302898" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac140b77f977a37470ce7cba0f9302898">com::mxgraph::mxGraph::view</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the view that caches the cell states. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a857ea173f7f385dae314598f99878639"></a><!-- doxytag: member="com::mxgraph::mxGraph::DefaultLoopStyle" ref="a857ea173f7f385dae314598f99878639" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxEdgeStyleFunction com::mxgraph::mxGraph::DefaultLoopStyle<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the default edge style for loops. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2492e35122e5edcc08d5ad164c492415"></a><!-- doxytag: member="com::mxgraph::mxGraph::GridEnabled" ref="a2492e35122e5edcc08d5ad164c492415" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::GridEnabled<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the enabled state of the grid. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a19e7d16278a7fd29510832c6c6fa6378"></a><!-- doxytag: member="com::mxgraph::mxGraph::GridSize" ref="a19e7d16278a7fd29510832c6c6fa6378" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxGraph::GridSize<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the grid size. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6de2d696c85750fafc8d10600d3d7fe8"></a><!-- doxytag: member="com::mxgraph::mxGraph::ImageBundles" ref="a6de2d696c85750fafc8d10600d3d7fe8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a>&gt; com::mxgraph::mxGraph::ImageBundles<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the image bundles. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abb96d6cfde89d87c098bd1d7c78f6010"></a><!-- doxytag: member="com::mxgraph::mxGraph::LabelsVisible" ref="abb96d6cfde89d87c098bd1d7c78f6010" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraph::LabelsVisible<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns if labels are visible. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a59458bde9c7951ace31f86dbd2c4bb68"></a><!-- doxytag: member="com::mxgraph::mxGraph::Model" ref="a59458bde9c7951ace31f86dbd2c4bb68" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> com::mxgraph::mxGraph::Model<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the graph model that contains the graph data. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acfa0196cd28096cd25a8087095f3a9e0"></a><!-- doxytag: member="com::mxgraph::mxGraph::Stylesheet" ref="acfa0196cd28096cd25a8087095f3a9e0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a> com::mxgraph::mxGraph::Stylesheet<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the stylesheet that provides the style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab13ec7954a48c952bb8e03ee9c3ba943"></a><!-- doxytag: member="com::mxgraph::mxGraph::View" ref="ab13ec7954a48c952bb8e03ee9c3ba943" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a> com::mxgraph::mxGraph::View<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the view that contains the cell states. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/view/mxGraph.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphModel-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphModel-members.html
    new file mode 100644
    index 000000000..98ca9ed0b
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphModel-members.html
    @@ -0,0 +1,102 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraphModel Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6a9df7876d2ca6179d58a9b3be663a1c">Add</a>(Object parent, Object child, int index)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ab56861ed391e6f4a47ecc2f844a5d02d">BeginUpdate</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4e6d214045580295f508d94ddb121268">CellAdded</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a29c373be3c557e7f4b0489d69954c2c8">CellRemoved</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a11aae87bbc54a67fe354ab8cf95d641d">cells</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a65b3f3bb8af1d71cacf71420564b7bae">Clear</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#abe24b1fd2e8bac0e8e5fce1b761c06d9">CloneCell</a>(Object cell, Hashtable mapping, bool includeChildren)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#adb5ffb8b1a05c3c77b26a04f06594a29">CloneCells</a>(Object[] cells, bool includeChildren)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aa9ba8b0716a8662bcedbdfb56166b4af">Contains</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae7c6fc9bc3f23dbad10b2cd624116ff6">CreateId</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a912b286b4d318dc633b1e7a28630f309">createIds</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad28b035282fccfb73511cf9faae6202f">CreateRoot</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaf217675b10e484a5579be55ca97d402">EndUpdate</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a9de276da9dd69f4249e80b798a317f2e">GetCell</a>(string id)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a68c9439005fe5fb515743065bf555f57">GetChildAt</a>(Object parent, int index)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afc0e95ba7217a76435d2144012a8bea7">getChildCells</a>(mxIGraphModel model, Object parent, bool vertices, bool edges)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a29a48f5ced94431792f2d476bb154c4e">GetChildCount</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a638548b1f8d3025faab5e3549e44bbc4">getChildEdges</a>(mxIGraphModel model, Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ac7bef691abcdbd54307f3848075f4d91">getChildVertices</a>(mxIGraphModel model, Object parent)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acf2499827661d10d689a5b18cc6b5932">GetConnections</a>(mxIGraphModel model, Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6c912d6529f16564373895566abcd254">GetDirectedEdgeCount</a>(mxIGraphModel model, Object cell, bool outgoing)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a58ee9a7ac4e8fa2bb62714752096b5be">GetDirectedEdgeCount</a>(mxIGraphModel model, Object cell, bool outgoing, Object ignoredEdge)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a5d0e2e8782724472c7aef4257730e075">GetEdgeAt</a>(Object parent, int index)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaeec9051d010a0f4e94d83e15ecad4ee">GetEdgeCount</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a07977778052726940b0877913bafbcf9">GetEdges</a>(mxIGraphModel model, Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a62fa392e2e593a62b10640dfa9b42e05">GetEdges</a>(mxIGraphModel model, Object cell, bool incoming, bool outgoing, bool includeLoops)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acb693807ec1617511fac53c3512b57a4">GetEdgesBetween</a>(mxIGraphModel model, Object source, Object target)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a324685eb7e4cee9a75c65f71129e19d6">GetEdgesBetween</a>(mxIGraphModel model, Object source, Object target, bool directed)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8d4e41dafd2e678786375489e3a7c2c6">GetGeometry</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a073880bd062bfba172b8fdd0ff722013">GetIncomingEdges</a>(mxIGraphModel model, Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a7489dd878b15a7d2413b0dac26fff89e">GetNearestCommonAncestor</a>(Object cell1, Object cell2)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6952674f7dfa52535bbffc6f5f35c276">GetOpposites</a>(mxIGraphModel model, Object[] edges, Object terminal, bool sources, bool targets)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acaeea26b9d46e48a4df676fb0ea263f3">GetOrigin</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a094b9e0cceb1a81fdca855205a049484">GetOutgoingEdges</a>(mxIGraphModel model, Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a49cfdcb77a6fd6882c643c325e3d914b">GetParent</a>(Object child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a21d37523be9a952040d58b9ea968a43e">GetStyle</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8fd2e93ac9f300a20140a828eecbfbac">GetTerminal</a>(Object edge, bool isSource)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aafb18bf952de87baba5a3453e222677b">GetValue</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0d3f6bf19b8c13b0d1445d3d4adf9b6e">GraphModelChange</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad07cda5ced546c2b04a34120a779c8ca">IsAncestor</a>(Object parent, Object child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20cd81d1e947de7224b1b9477aaf9014">IsCollapsed</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afd31c7bec1b0dd657cfd9a6f638a9a20">IsConnectable</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae53c41ce3c1bbfcdd1512fb863867841">IsCreateIds</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3ef44b271e5419fb4a5c6997cb78f26d">IsEdge</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4f55cfe5f9b3904db74ad352192a4157">IsMaintainEdgeParent</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae0421f7bbf1eeb7b1363ad00274b4eb4">IsVertex</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4cb43b44cd6b8c48b48b6c16e82f3d07">IsVisible</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4d88460742c510d5dc6ac476bba92ad1">maintainEdgeParent</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afad8a9d1b1be0fd85281c2a31b1a74e0">MergeChildren</a>(mxICell from, mxICell to, bool cloneAllEdges)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#abf108384d5234690497fff50c730b1d3">MergeChildrenImpl</a>(mxICell from, mxICell to, bool cloneAllEdges, Dictionary&lt; Object, Object &gt; mapping)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a7c444bb29a58faaa378c880da3774970">mxGraphModel</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aad91ceecf69a011e28e8e002c9c543f9">mxGraphModel</a>(Object root)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a22d9376162b40a748beb1058df22cb9c">nextId</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3db316aa8f0a092e8a93a75235c6a24f">Remove</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a60713556b96f3500044c0842aa29c58d">RestoreClone</a>(Object clone, Object cell, Hashtable mapping)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1c799c216f6ee4d379aeb3161d04462c">root</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1e682481294b64ba2e7859da9760008e">Root</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a05f6ea80a4577097b2614fc8e98b06d2">SetCollapsed</a>(Object cell, bool collapsed)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a78ccddb2f444c5eb701916d9ca052028">SetGeometry</a>(Object cell, mxGeometry geometry)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a93a1ced4d1eed980881c3223b5b34b03">SetStyle</a>(Object cell, string style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0285540160fcf7de39a997c6f6a201ff">SetTerminal</a>(Object edge, Object terminal, bool isSource)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a9980a787ac66f3a9c8586e155699b2c2">SetTerminals</a>(mxIGraphModel model, Object edge, Object source, Object target)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a73ee199d8b3dd322e97eb4fb07ca407f">SetValue</a>(Object cell, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad3c76b19d99dd08f2f5aa96e8e1ba52b">SetVisible</a>(Object cell, bool visible)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#af87d0672edad8ddd5bf2444d18b9dd5e">UpdateEdgeParent</a>(Object edge, Object root)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a2953504aaaf27b03084ae77e4c1ca892">UpdateEdgeParents</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a488034701fa7abbd3af217b4e36ef21d">UpdateEdgeParents</a>(Object cell, Object root)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20904785867391502b5bd953f14cbf1c">updateLevel</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphModel.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphModel.html
    new file mode 100644
    index 000000000..44a37316d
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphModel.html
    @@ -0,0 +1,2280 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxGraphModel Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">mxGraphModel</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraphModel Class Reference</h1><!-- doxytag: class="com::mxgraph::mxGraphModel" --><!-- doxytag: inherits="com::mxgraph::mxIGraphModel" -->
    +<p>Implements a graph model. The graph model acts as a wrapper around the cells which are in charge of storing the actual graph datastructure. The model acts as a transactional wrapper with event notification for all changes, whereas the cells contain the atomic operations for updating the actual datastructure.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxGraphModel:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxGraphModel.png" usemap="#com::mxgraph::mxGraphModel_map" alt=""/>
    +  <map id="com::mxgraph::mxGraphModel_map" name="com::mxgraph::mxGraphModel_map">
    +<area href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html" alt="com::mxgraph::mxIGraphModel" shape="rect" coords="0,0,183,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxGraphModel-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a7c444bb29a58faaa378c880da3774970">mxGraphModel</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new empty graph model.  <a href="#a7c444bb29a58faaa378c880da3774970"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aad91ceecf69a011e28e8e002c9c543f9">mxGraphModel</a> (Object <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1c799c216f6ee4d379aeb3161d04462c">root</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new graph model. If no root is specified then a new root <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> with a default layer is created.  <a href="#aad91ceecf69a011e28e8e002c9c543f9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a65b3f3bb8af1d71cacf71420564b7bae">Clear</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a new root using createRoot.  <a href="#a65b3f3bb8af1d71cacf71420564b7bae"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad28b035282fccfb73511cf9faae6202f">CreateRoot</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new root cell with a default layer (child 0).  <a href="#ad28b035282fccfb73511cf9faae6202f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a9de276da9dd69f4249e80b798a317f2e">GetCell</a> (string id)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#adb5ffb8b1a05c3c77b26a04f06594a29">CloneCells</a> (Object[] <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a11aae87bbc54a67fe354ab8cf95d641d">cells</a>, bool includeChildren)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an array of clones for the given array of cells. Depending on the value of includeChildren, a deep clone is created for each cell. Connections are restored based if the corresponding cell is contained in the passed in array.  <a href="#adb5ffb8b1a05c3c77b26a04f06594a29"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad07cda5ced546c2b04a34120a779c8ca">IsAncestor</a> (Object parent, Object child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given parent is an ancestor of child.  <a href="#ad07cda5ced546c2b04a34120a779c8ca"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aa9ba8b0716a8662bcedbdfb56166b4af">Contains</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the model contains the given cell.  <a href="#aa9ba8b0716a8662bcedbdfb56166b4af"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a49cfdcb77a6fd6882c643c325e3d914b">GetParent</a> (Object child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the parent of the given cell.  <a href="#a49cfdcb77a6fd6882c643c325e3d914b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6a9df7876d2ca6179d58a9b3be663a1c">Add</a> (Object parent, Object child, int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the specified child to the parent at the given index. If no index is specified then the child is appended to the parent's array of children.  <a href="#a6a9df7876d2ca6179d58a9b3be663a1c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae7c6fc9bc3f23dbad10b2cd624116ff6">CreateId</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new Id for the given cell and increments the global counter for creating new Ids.  <a href="#ae7c6fc9bc3f23dbad10b2cd624116ff6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3db316aa8f0a092e8a93a75235c6a24f">Remove</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a7c47f2459ce0dcdae38c35afa4ed1ffc" title="Removes the specified cell from the model. This operation will remove the cell and...">com.mxgraph.mxIGraphModel.Remove(Object)</a>  <a href="#a3db316aa8f0a092e8a93a75235c6a24f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a29a48f5ced94431792f2d476bb154c4e">GetChildCount</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of children in the given cell.  <a href="#a29a48f5ced94431792f2d476bb154c4e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a68c9439005fe5fb515743065bf555f57">GetChildAt</a> (Object parent, int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the child of the given parent at the given index.  <a href="#a68c9439005fe5fb515743065bf555f57"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8fd2e93ac9f300a20140a828eecbfbac">GetTerminal</a> (Object edge, bool isSource)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the source or target terminal of the given edge depending on the value of the boolean parameter.  <a href="#a8fd2e93ac9f300a20140a828eecbfbac"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0285540160fcf7de39a997c6f6a201ff">SetTerminal</a> (Object edge, Object terminal, bool isSource)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the source or target terminal of the given edge using.  <a href="#a0285540160fcf7de39a997c6f6a201ff"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a2953504aaaf27b03084ae77e4c1ca892">UpdateEdgeParents</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the parents of the edges connected to the given cell and all its descendants so that each edge is contained in the nearest common ancestor.  <a href="#a2953504aaaf27b03084ae77e4c1ca892"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a488034701fa7abbd3af217b4e36ef21d">UpdateEdgeParents</a> (Object cell, Object <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1c799c216f6ee4d379aeb3161d04462c">root</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the parents of the edges connected to the given cell and all its descendants so that the edge is contained in the nearest-common-ancestor.  <a href="#a488034701fa7abbd3af217b4e36ef21d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#af87d0672edad8ddd5bf2444d18b9dd5e">UpdateEdgeParent</a> (Object edge, Object <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1c799c216f6ee4d379aeb3161d04462c">root</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inner helper method to update the parent of the specified edge to the nearest-common-ancestor of its two terminals.  <a href="#af87d0672edad8ddd5bf2444d18b9dd5e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acaeea26b9d46e48a4df676fb0ea263f3">GetOrigin</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute, cummulated origin for the children inside the given parent.  <a href="#acaeea26b9d46e48a4df676fb0ea263f3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a7489dd878b15a7d2413b0dac26fff89e">GetNearestCommonAncestor</a> (Object cell1, Object cell2)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the nearest common ancestor for the specified cells.  <a href="#a7489dd878b15a7d2413b0dac26fff89e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaeec9051d010a0f4e94d83e15ecad4ee">GetEdgeCount</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d58a0dafc0e77a7a3f207f5815ef245" title="Returns the number of distinct edges connected to the given cell.">com.mxgraph.mxIGraphModel.GetEdgeCount(Object)</a>  <a href="#aaeec9051d010a0f4e94d83e15ecad4ee"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a5d0e2e8782724472c7aef4257730e075">GetEdgeAt</a> (Object parent, int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ae2824a854e3533480e819f9056e4bb91" title="Returns the edge of cell at the given index.">com.mxgraph.mxIGraphModel.GetEdgeAt(Object, int)</a>  <a href="#a5d0e2e8782724472c7aef4257730e075"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae0421f7bbf1eeb7b1363ad00274b4eb4">IsVertex</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af30f07add01ec93144ffc00d843828fc" title="Returns true if the given cell is a vertex.">com.mxgraph.mxIGraphModel.IsVertex(Object)</a>  <a href="#ae0421f7bbf1eeb7b1363ad00274b4eb4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3ef44b271e5419fb4a5c6997cb78f26d">IsEdge</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff2fb4b36db5ee3a101feba394436b86" title="Returns true if the given cell is an edge.">com.mxgraph.mxIGraphModel.IsEdge(Object)</a>  <a href="#a3ef44b271e5419fb4a5c6997cb78f26d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afd31c7bec1b0dd657cfd9a6f638a9a20">IsConnectable</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a3db1b6eda5906acbb5114361c91968c0" title="Returns true if the given cell is connectable.">com.mxgraph.mxIGraphModel.IsConnectable(Object)</a>  <a href="#afd31c7bec1b0dd657cfd9a6f638a9a20"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aafb18bf952de87baba5a3453e222677b">GetValue</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a77a36629de99d4d6a14236ed0c1666e3" title="Returns the user object of the given cell.">com.mxgraph.mxIGraphModel.GetValue(Object)</a>  <a href="#aafb18bf952de87baba5a3453e222677b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a73ee199d8b3dd322e97eb4fb07ca407f">SetValue</a> (Object cell, Object value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#afd9cac91d73998f8457285bae5c95689" title="Sets the user object of then given cell.">com.mxgraph.mxIGraphModel.SetValue(Object, Object)</a>  <a href="#a73ee199d8b3dd322e97eb4fb07ca407f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8d4e41dafd2e678786375489e3a7c2c6">GetGeometry</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad79ee951c1a46d126d1f714bd77b5331" title="Returns the geometry of the given cell.">com.mxgraph.mxIGraphModel.GetGeometry(Object)</a>  <a href="#a8d4e41dafd2e678786375489e3a7c2c6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a78ccddb2f444c5eb701916d9ca052028">SetGeometry</a> (Object cell, <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> geometry)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a80f4bfe3ebd152ee3d77ec20a70bcc9d" title="Sets the geometry of the given cell.">com.mxgraph.mxIGraphModel.SetGeometry(Object, mxGeometry)</a>  <a href="#a78ccddb2f444c5eb701916d9ca052028"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a21d37523be9a952040d58b9ea968a43e">GetStyle</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad63404d0f7af96acee601960b8cc4963" title="Returns the style of the given cell.">com.mxgraph.mxIGraphModel.GetStyle(Object)</a>  <a href="#a21d37523be9a952040d58b9ea968a43e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a93a1ced4d1eed980881c3223b5b34b03">SetStyle</a> (Object cell, string style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a960ffa631d4199d149b4e889b480db48" title="Sets the style of the given cell.">com.mxgraph.mxIGraphModel.SetStyle(Object, string)</a>  <a href="#a93a1ced4d1eed980881c3223b5b34b03"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4cb43b44cd6b8c48b48b6c16e82f3d07">IsVisible</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d6b5254a9a124ef7e82b49eb9d4209b" title="Returns true if the given cell is visible.">com.mxgraph.mxIGraphModel.IsVisible(Object)</a>  <a href="#a4cb43b44cd6b8c48b48b6c16e82f3d07"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad3c76b19d99dd08f2f5aa96e8e1ba52b">SetVisible</a> (Object cell, bool visible)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a681fede1578933f051041b3ba4f01129" title="Sets the visible state of the given cell.">com.mxgraph.mxIGraphModel.SetVisible(Object, bool)</a>  <a href="#ad3c76b19d99dd08f2f5aa96e8e1ba52b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20cd81d1e947de7224b1b9477aaf9014">IsCollapsed</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a18315c42e0fe1cc594a956342c2dda9a" title="Returns true if the given cell is collapsed.">com.mxgraph.mxIGraphModel.IsCollapsed(Object)</a>  <a href="#a20cd81d1e947de7224b1b9477aaf9014"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a05f6ea80a4577097b2614fc8e98b06d2">SetCollapsed</a> (Object cell, bool collapsed)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a5ea04a022893866cffcbb53044c5171c" title="Sets the collapsed state of the given cell.">com.mxgraph.mxIGraphModel.SetCollapsed(Object, bool)</a>  <a href="#a05f6ea80a4577097b2614fc8e98b06d2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ab56861ed391e6f4a47ecc2f844a5d02d">BeginUpdate</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a201180e5435be27e37666fe724cb810b" title="Increments the updateLevel by one. The event notification is queued until updateLevel...">com.mxgraph.mxIGraphModel.BeginUpdate()</a>  <a href="#ab56861ed391e6f4a47ecc2f844a5d02d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaf217675b10e484a5579be55ca97d402">EndUpdate</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ac0f0b916828467fbcde0e140f5384da3" title="Decrements the updateLevel by one and fires a notification event if the updateLevel...">com.mxgraph.mxIGraphModel.EndUpdate()</a>  <a href="#aaf217675b10e484a5579be55ca97d402"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afad8a9d1b1be0fd85281c2a31b1a74e0">MergeChildren</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> from, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> to, bool cloneAllEdges)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Merges the children of the given cell into the given target cell inside this model. All cells are cloned unless there is a corresponding cell in the model with the same id, in which case the source cell is ignored and all edges are connected to the corresponding cell in this model. Edges are considered to have no identity and are always cloned unless the cloneAllEdges flag is set to false, in which case edges with the same id in the target model are reconnected to reflect the terminals of the source edges.  <a href="#afad8a9d1b1be0fd85281c2a31b1a74e0"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6c912d6529f16564373895566abcd254">GetDirectedEdgeCount</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object cell, bool outgoing)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of incoming or outgoing edges.  <a href="#a6c912d6529f16564373895566abcd254"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a58ee9a7ac4e8fa2bb62714752096b5be">GetDirectedEdgeCount</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object cell, bool outgoing, Object ignoredEdge)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of incoming or outgoing edges, ignoring the given edge.  <a href="#a58ee9a7ac4e8fa2bb62714752096b5be"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a07977778052726940b0877913bafbcf9">GetEdges</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all edges connected to this cell including loops.  <a href="#a07977778052726940b0877913bafbcf9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acf2499827661d10d689a5b18cc6b5932">GetConnections</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all edges connected to this cell without loops.  <a href="#acf2499827661d10d689a5b18cc6b5932"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a073880bd062bfba172b8fdd0ff722013">GetIncomingEdges</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the incoming edges of the given cell without loops.  <a href="#a073880bd062bfba172b8fdd0ff722013"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a094b9e0cceb1a81fdca855205a049484">GetOutgoingEdges</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the outgoing edges of the given cell without loops.  <a href="#a094b9e0cceb1a81fdca855205a049484"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a62fa392e2e593a62b10640dfa9b42e05">GetEdges</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object cell, bool incoming, bool outgoing, bool includeLoops)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all distinct edges connected to this cell. If at least one of incoming or outgoing is true, then loops are ignored, otherwise if both are false, then all edges connected to the given cell are returned including loops.  <a href="#a62fa392e2e593a62b10640dfa9b42e05"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acb693807ec1617511fac53c3512b57a4">GetEdgesBetween</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object source, Object target)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all edges between the given source and target mxCells. If the optional boolean directed argument is false, then a matching edge is returned regardless of its direction.  <a href="#acb693807ec1617511fac53c3512b57a4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a324685eb7e4cee9a75c65f71129e19d6">GetEdgesBetween</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object source, Object target, bool directed)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all edges between the given source and target mxCells. If the optional boolean directed argument is false, then a matching edge is returned regardless of its direction.  <a href="#a324685eb7e4cee9a75c65f71129e19d6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6952674f7dfa52535bbffc6f5f35c276">GetOpposites</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object[] edges, Object terminal, bool sources, bool targets)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns all opposite vertices wrt terminal for the given edges, only$ returning sources and/or targets as specified. The result is returned as an array of mxCells.  <a href="#a6952674f7dfa52535bbffc6f5f35c276"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a9980a787ac66f3a9c8586e155699b2c2">SetTerminals</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object edge, Object source, Object target)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the source and target of the given edge in a single atomic change.  <a href="#a9980a787ac66f3a9c8586e155699b2c2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ac7bef691abcdbd54307f3848075f4d91">getChildVertices</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the child vertices of the given parent.  <a href="#ac7bef691abcdbd54307f3848075f4d91"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a638548b1f8d3025faab5e3549e44bbc4">getChildEdges</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the child edges of the given parent.  <a href="#a638548b1f8d3025faab5e3549e44bbc4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afc0e95ba7217a76435d2144012a8bea7">getChildCells</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object parent, bool vertices, bool edges)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the children of the given cell that are vertices and/or edges depending on the arguments.  <a href="#afc0e95ba7217a76435d2144012a8bea7"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#abe24b1fd2e8bac0e8e5fce1b761c06d9">CloneCell</a> (Object cell, Hashtable mapping, bool includeChildren)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inner helper method for cloning cells recursively.  <a href="#abe24b1fd2e8bac0e8e5fce1b761c06d9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a60713556b96f3500044c0842aa29c58d">RestoreClone</a> (Object clone, Object cell, Hashtable mapping)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inner helper method for restoring the connections in a network of cloned cells.  <a href="#a60713556b96f3500044c0842aa29c58d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4e6d214045580295f508d94ddb121268">CellAdded</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invoked after a cell has been added to a parent. This recursively creates an Id for the new cell and/or resolves Id collisions.  <a href="#a4e6d214045580295f508d94ddb121268"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a29c373be3c557e7f4b0489d69954c2c8">CellRemoved</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invoked after a cell has been removed from the model. This recursively removes the cell from its terminals and removes the mapping from the Id to the cell.  <a href="#a29c373be3c557e7f4b0489d69954c2c8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#abf108384d5234690497fff50c730b1d3">MergeChildrenImpl</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> from, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> to, bool cloneAllEdges, Dictionary&lt; Object, Object &gt; mapping)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clones the children of the source cell into the given target cell in this model and adds an entry to the mapping that maps from the source cell to the target cell with the same id or the clone of the source cell that was inserted into this model.  <a href="#abf108384d5234690497fff50c730b1d3"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1c799c216f6ee4d379aeb3161d04462c">root</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells. That is, the actual element of the diagram are supposed to live in the third generation of cells and below.  <a href="#a1c799c216f6ee4d379aeb3161d04462c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; Object, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a11aae87bbc54a67fe354ab8cf95d641d">cells</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from Ids to cells.  <a href="#a11aae87bbc54a67fe354ab8cf95d641d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a912b286b4d318dc633b1e7a28630f309">createIds</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if edges should automatically be moved into the nearest common ancestor of their terminals. Default is true.  <a href="#a912b286b4d318dc633b1e7a28630f309"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4d88460742c510d5dc6ac476bba92ad1">maintainEdgeParent</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if the parent of edges should be automatically change to point to the nearest common ancestor of its terminals. Default is true.  <a href="#a4d88460742c510d5dc6ac476bba92ad1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a22d9376162b40a748beb1058df22cb9c">nextId</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the next Id to be created. Initial value is 0.  <a href="#a22d9376162b40a748beb1058df22cb9c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20904785867391502b5bd953f14cbf1c">updateLevel</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Counter for the depth of nested transactions. Each call to beginUpdate increments this counter and each call to endUpdate decrements it. When the counter reaches 0, the transaction is closed and the respective events are fired. Initial value is 0.  <a href="#a20904785867391502b5bd953f14cbf1c"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4f55cfe5f9b3904db74ad352192a4157">IsMaintainEdgeParent</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets of returns if edges should automatically be moved into the nearest common ancestor of their terminals.  <a href="#a4f55cfe5f9b3904db74ad352192a4157"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae53c41ce3c1bbfcdd1512fb863867841">IsCreateIds</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns if the model automatically creates Ids and resolves Id collisions.  <a href="#ae53c41ce3c1bbfcdd1512fb863867841"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1e682481294b64ba2e7859da9760008e">Root</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the root cell.  <a href="#a1e682481294b64ba2e7859da9760008e"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Events</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">mxGraphModelChangeEventHandler&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0d3f6bf19b8c13b0d1445d3d4adf9b6e">GraphModelChange</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fires when the graph model has changed.  <a href="#a0d3f6bf19b8c13b0d1445d3d4adf9b6e"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a graph model. The graph model acts as a wrapper around the cells which are in charge of storing the actual graph datastructure. The model acts as a transactional wrapper with event notification for all changes, whereas the cells contain the atomic operations for updating the actual datastructure. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a7c444bb29a58faaa378c880da3774970"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::mxGraphModel" ref="a7c444bb29a58faaa378c880da3774970" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphModel::mxGraphModel </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new empty graph model. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aad91ceecf69a011e28e8e002c9c543f9"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::mxGraphModel" ref="aad91ceecf69a011e28e8e002c9c543f9" args="(Object root)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphModel::mxGraphModel </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>root</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new graph model. If no root is specified then a new root <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> with a default layer is created. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>root</em>&nbsp;</td><td>Cell that represents the root cell.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a6a9df7876d2ca6179d58a9b3be663a1c"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::Add" ref="a6a9df7876d2ca6179d58a9b3be663a1c" args="(Object parent, Object child, int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::Add </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>child</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds the specified child to the parent at the given index. If no index is specified then the child is appended to the parent's array of children. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell that specifies the parent to contain the child.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell that specifies the child to be inserted.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index of the child.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the inserted child.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ab18ea07aec23bfbce6c7489269c0985c">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab56861ed391e6f4a47ecc2f844a5d02d"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::BeginUpdate" ref="ab56861ed391e6f4a47ecc2f844a5d02d" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::BeginUpdate </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a201180e5435be27e37666fe724cb810b" title="Increments the updateLevel by one. The event notification is queued until updateLevel...">com.mxgraph.mxIGraphModel.BeginUpdate()</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a201180e5435be27e37666fe724cb810b">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4e6d214045580295f508d94ddb121268"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::CellAdded" ref="a4e6d214045580295f508d94ddb121268" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::CellAdded </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Invoked after a cell has been added to a parent. This recursively creates an Id for the new cell and/or resolves Id collisions. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell that has been added.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a29c373be3c557e7f4b0489d69954c2c8"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::CellRemoved" ref="a29c373be3c557e7f4b0489d69954c2c8" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::CellRemoved </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Invoked after a cell has been removed from the model. This recursively removes the cell from its terminals and removes the mapping from the Id to the cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell that has been removed.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a65b3f3bb8af1d71cacf71420564b7bae"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::Clear" ref="a65b3f3bb8af1d71cacf71420564b7bae" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::Clear </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets a new root using createRoot. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abe24b1fd2e8bac0e8e5fce1b761c06d9"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::CloneCell" ref="abe24b1fd2e8bac0e8e5fce1b761c06d9" args="(Object cell, Hashtable mapping, bool includeChildren)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::CloneCell </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Hashtable&nbsp;</td>
    +          <td class="paramname"> <em>mapping</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeChildren</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Inner helper method for cloning cells recursively. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adb5ffb8b1a05c3c77b26a04f06594a29"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::CloneCells" ref="adb5ffb8b1a05c3c77b26a04f06594a29" args="(Object[] cells, bool includeChildren)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxGraphModel::CloneCells </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeChildren</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns an array of clones for the given array of cells. Depending on the value of includeChildren, a deep clone is created for each cell. Connections are restored based if the corresponding cell is contained in the passed in array. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cells</em>&nbsp;</td><td>Array of cells to be cloned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>includeChildren</em>&nbsp;</td><td>Boolean indicating if the cells should be cloned with all descendants.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a cloned array of cells.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a6457526895ee16775a43819bbdc3b713">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa9ba8b0716a8662bcedbdfb56166b4af"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::Contains" ref="aa9ba8b0716a8662bcedbdfb56166b4af" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::Contains </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the model contains the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell to be checked.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the cell is in the model.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a831a9721313f6770e6af7dc418d9ee39">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae7c6fc9bc3f23dbad10b2cd624116ff6"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::CreateId" ref="ae7c6fc9bc3f23dbad10b2cd624116ff6" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGraphModel::CreateId </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates a new Id for the given cell and increments the global counter for creating new Ids. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell for which a new Id should be created.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new Id for the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad28b035282fccfb73511cf9faae6202f"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::CreateRoot" ref="ad28b035282fccfb73511cf9faae6202f" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::CreateRoot </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates a new root cell with a default layer (child 0). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aaf217675b10e484a5579be55ca97d402"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::EndUpdate" ref="aaf217675b10e484a5579be55ca97d402" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::EndUpdate </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ac0f0b916828467fbcde0e140f5384da3" title="Decrements the updateLevel by one and fires a notification event if the updateLevel...">com.mxgraph.mxIGraphModel.EndUpdate()</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ac0f0b916828467fbcde0e140f5384da3">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9de276da9dd69f4249e80b798a317f2e"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetCell" ref="a9de276da9dd69f4249e80b798a317f2e" args="(string id)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::GetCell </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a68c9439005fe5fb515743065bf555f57"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetChildAt" ref="a68c9439005fe5fb515743065bf555f57" args="(Object parent, int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::GetChildAt </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the child of the given parent at the given index. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell that represents the parent.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index of the child to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child at index in parent.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a34bc3935f8286a91f53a32fd20da8288">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afc0e95ba7217a76435d2144012a8bea7"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::getChildCells" ref="afc0e95ba7217a76435d2144012a8bea7" args="(mxIGraphModel model, Object parent, bool vertices, bool edges)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::getChildCells </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>vertices</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>edges</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the children of the given cell that are vertices and/or edges depending on the arguments. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model that contains the hierarchical information.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell whose child vertices or edges should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>vertices</em>&nbsp;</td><td>Boolean indicating if child vertices should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>edges</em>&nbsp;</td><td>Boolean indicating if child edges should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child vertices and/or edges of the given parent.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a29a48f5ced94431792f2d476bb154c4e"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetChildCount" ref="a29a48f5ced94431792f2d476bb154c4e" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxGraphModel::GetChildCount </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of children in the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose number of children should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of children in the given cell.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff7c4cd19bcb91cd264bcb586ccc37b0">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a638548b1f8d3025faab5e3549e44bbc4"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::getChildEdges" ref="a638548b1f8d3025faab5e3549e44bbc4" args="(mxIGraphModel model, Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::getChildEdges </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the child edges of the given parent. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model that contains the hierarchical information.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell whose child edges should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child edges of the given parent.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac7bef691abcdbd54307f3848075f4d91"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::getChildVertices" ref="ac7bef691abcdbd54307f3848075f4d91" args="(mxIGraphModel model, Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::getChildVertices </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the child vertices of the given parent. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model that contains the hierarchical information.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell whose child vertices should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child vertices of the given parent.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acf2499827661d10d689a5b18cc6b5932"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetConnections" ref="acf2499827661d10d689a5b18cc6b5932" args="(mxIGraphModel model, Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::GetConnections </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all edges connected to this cell without loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model that contains the connection information</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose connections should be returned</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the array of connected edges for the given cell</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a58ee9a7ac4e8fa2bb62714752096b5be"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetDirectedEdgeCount" ref="a58ee9a7ac4e8fa2bb62714752096b5be" args="(mxIGraphModel model, Object cell, bool outgoing, Object ignoredEdge)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static int com::mxgraph::mxGraphModel::GetDirectedEdgeCount </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>outgoing</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>ignoredEdge</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of incoming or outgoing edges, ignoring the given edge. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Graph model that contains the connection data.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose edges should be counted.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>outgoing</em>&nbsp;</td><td>Boolean that specifies if the number of outgoing or incoming edges should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>ignoredEdge</em>&nbsp;</td><td>Object that represents an edge to be ignored.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of incoming or outgoing edges.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6c912d6529f16564373895566abcd254"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetDirectedEdgeCount" ref="a6c912d6529f16564373895566abcd254" args="(mxIGraphModel model, Object cell, bool outgoing)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static int com::mxgraph::mxGraphModel::GetDirectedEdgeCount </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>outgoing</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of incoming or outgoing edges. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Graph model that contains the connection data.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose edges should be counted.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>outgoing</em>&nbsp;</td><td>Boolean that specifies if the number of outgoing or incoming edges should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of incoming or outgoing edges.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5d0e2e8782724472c7aef4257730e075"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetEdgeAt" ref="a5d0e2e8782724472c7aef4257730e075" args="(Object parent, int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::GetEdgeAt </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ae2824a854e3533480e819f9056e4bb91" title="Returns the edge of cell at the given index.">com.mxgraph.mxIGraphModel.GetEdgeAt(Object, int)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ae2824a854e3533480e819f9056e4bb91">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aaeec9051d010a0f4e94d83e15ecad4ee"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetEdgeCount" ref="aaeec9051d010a0f4e94d83e15ecad4ee" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxGraphModel::GetEdgeCount </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d58a0dafc0e77a7a3f207f5815ef245" title="Returns the number of distinct edges connected to the given cell.">com.mxgraph.mxIGraphModel.GetEdgeCount(Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d58a0dafc0e77a7a3f207f5815ef245">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a62fa392e2e593a62b10640dfa9b42e05"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetEdges" ref="a62fa392e2e593a62b10640dfa9b42e05" args="(mxIGraphModel model, Object cell, bool incoming, bool outgoing, bool includeLoops)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::GetEdges </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>incoming</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>outgoing</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeLoops</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all distinct edges connected to this cell. If at least one of incoming or outgoing is true, then loops are ignored, otherwise if both are false, then all edges connected to the given cell are returned including loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model that contains the connection information</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose connections should be returned</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>incoming</em>&nbsp;</td><td>Specifies if incoming edges should be returned</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>outgoing</em>&nbsp;</td><td>Specifies if outgoing edges should be returned</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>includeLoops</em>&nbsp;</td><td>Specifies if loops should be returned</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the array of connected edges for the given cell</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a07977778052726940b0877913bafbcf9"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetEdges" ref="a07977778052726940b0877913bafbcf9" args="(mxIGraphModel model, Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::GetEdges </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all edges connected to this cell including loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model that contains the connection information</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose connections should be returned</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a324685eb7e4cee9a75c65f71129e19d6"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetEdgesBetween" ref="a324685eb7e4cee9a75c65f71129e19d6" args="(mxIGraphModel model, Object source, Object target, bool directed)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::GetEdgesBetween </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>target</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>directed</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all edges between the given source and target mxCells. If the optional boolean directed argument is false, then a matching edge is returned regardless of its direction. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>The graph model that contains the graph.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> that defines the source terminal of the edge to be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> that defines the target terminal of the edge to be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>directed</em>&nbsp;</td><td>Optional boolean that specifies if the direction of the edge should be taken into account. Default is true.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acb693807ec1617511fac53c3512b57a4"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetEdgesBetween" ref="acb693807ec1617511fac53c3512b57a4" args="(mxIGraphModel model, Object source, Object target)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::GetEdgesBetween </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all edges between the given source and target mxCells. If the optional boolean directed argument is false, then a matching edge is returned regardless of its direction. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8d4e41dafd2e678786375489e3a7c2c6"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetGeometry" ref="a8d4e41dafd2e678786375489e3a7c2c6" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> com::mxgraph::mxGraphModel::GetGeometry </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad79ee951c1a46d126d1f714bd77b5331" title="Returns the geometry of the given cell.">com.mxgraph.mxIGraphModel.GetGeometry(Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad79ee951c1a46d126d1f714bd77b5331">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a073880bd062bfba172b8fdd0ff722013"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetIncomingEdges" ref="a073880bd062bfba172b8fdd0ff722013" args="(mxIGraphModel model, Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::GetIncomingEdges </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the incoming edges of the given cell without loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Graphmodel that contains the edges</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose incoming edges should be returned</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the incoming edges for the given cell</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7489dd878b15a7d2413b0dac26fff89e"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetNearestCommonAncestor" ref="a7489dd878b15a7d2413b0dac26fff89e" args="(Object cell1, Object cell2)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::GetNearestCommonAncestor </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell2</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the nearest common ancestor for the specified cells. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell1</em>&nbsp;</td><td>Cell that specifies the first cell in the tree.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell2</em>&nbsp;</td><td>Cell that specifies the second cell in the tree.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the nearest common ancestor of the given cells.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6952674f7dfa52535bbffc6f5f35c276"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetOpposites" ref="a6952674f7dfa52535bbffc6f5f35c276" args="(mxIGraphModel model, Object[] edges, Object terminal, bool sources, bool targets)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::GetOpposites </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>edges</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>sources</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>targets</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns all opposite vertices wrt terminal for the given edges, only$ returning sources and/or targets as specified. The result is returned as an array of mxCells. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model that contains the graph.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>edges</em>&nbsp;</td><td>Array of edges to be examined.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td>Cell that specifies the known end of the edges.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>sources</em>&nbsp;</td><td>Boolean that specifies if source terminals should be contained in the result. Default is true.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>targets</em>&nbsp;</td><td>Boolean that specifies if target terminals should be contained in the result. Default is true.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the array of opposite terminals for the given edges.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acaeea26b9d46e48a4df676fb0ea263f3"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetOrigin" ref="acaeea26b9d46e48a4df676fb0ea263f3" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraphModel::GetOrigin </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the absolute, cummulated origin for the children inside the given parent. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a094b9e0cceb1a81fdca855205a049484"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetOutgoingEdges" ref="a094b9e0cceb1a81fdca855205a049484" args="(mxIGraphModel model, Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object [] com::mxgraph::mxGraphModel::GetOutgoingEdges </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the outgoing edges of the given cell without loops. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Graphmodel that contains the edges</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose outgoing edges should be returned</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the outgoing edges for the given cell</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a49cfdcb77a6fd6882c643c325e3d914b"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetParent" ref="a49cfdcb77a6fd6882c643c325e3d914b" args="(Object child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::GetParent </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the parent of the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell whose parent should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the parent of the given cell.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af29849ffb09c0e0b75e77bda332f4d31">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a21d37523be9a952040d58b9ea968a43e"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetStyle" ref="a21d37523be9a952040d58b9ea968a43e" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGraphModel::GetStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad63404d0f7af96acee601960b8cc4963" title="Returns the style of the given cell.">com.mxgraph.mxIGraphModel.GetStyle(Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad63404d0f7af96acee601960b8cc4963">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8fd2e93ac9f300a20140a828eecbfbac"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetTerminal" ref="a8fd2e93ac9f300a20140a828eecbfbac" args="(Object edge, bool isSource)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::GetTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the source or target terminal of the given edge depending on the value of the boolean parameter. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell that specifies the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean indicating which end of the edge should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the source or target of the given edge.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a1d8a16d05ca148439990b10f3c6a27c5">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aafb18bf952de87baba5a3453e222677b"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GetValue" ref="aafb18bf952de87baba5a3453e222677b" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::GetValue </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a77a36629de99d4d6a14236ed0c1666e3" title="Returns the user object of the given cell.">com.mxgraph.mxIGraphModel.GetValue(Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a77a36629de99d4d6a14236ed0c1666e3">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad07cda5ced546c2b04a34120a779c8ca"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::IsAncestor" ref="ad07cda5ced546c2b04a34120a779c8ca" args="(Object parent, Object child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::IsAncestor </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given parent is an ancestor of child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell that specifies the parent.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell that specifies the child.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if child is an ancestor of parent.</dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a57eec23a248ff711df8aa868f2228640">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a20cd81d1e947de7224b1b9477aaf9014"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::IsCollapsed" ref="a20cd81d1e947de7224b1b9477aaf9014" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::IsCollapsed </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a18315c42e0fe1cc594a956342c2dda9a" title="Returns true if the given cell is collapsed.">com.mxgraph.mxIGraphModel.IsCollapsed(Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a18315c42e0fe1cc594a956342c2dda9a">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afd31c7bec1b0dd657cfd9a6f638a9a20"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::IsConnectable" ref="afd31c7bec1b0dd657cfd9a6f638a9a20" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::IsConnectable </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a3db1b6eda5906acbb5114361c91968c0" title="Returns true if the given cell is connectable.">com.mxgraph.mxIGraphModel.IsConnectable(Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a3db1b6eda5906acbb5114361c91968c0">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3ef44b271e5419fb4a5c6997cb78f26d"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::IsEdge" ref="a3ef44b271e5419fb4a5c6997cb78f26d" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::IsEdge </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff2fb4b36db5ee3a101feba394436b86" title="Returns true if the given cell is an edge.">com.mxgraph.mxIGraphModel.IsEdge(Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff2fb4b36db5ee3a101feba394436b86">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae0421f7bbf1eeb7b1363ad00274b4eb4"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::IsVertex" ref="ae0421f7bbf1eeb7b1363ad00274b4eb4" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::IsVertex </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af30f07add01ec93144ffc00d843828fc" title="Returns true if the given cell is a vertex.">com.mxgraph.mxIGraphModel.IsVertex(Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af30f07add01ec93144ffc00d843828fc">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4cb43b44cd6b8c48b48b6c16e82f3d07"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::IsVisible" ref="a4cb43b44cd6b8c48b48b6c16e82f3d07" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::IsVisible </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d6b5254a9a124ef7e82b49eb9d4209b" title="Returns true if the given cell is visible.">com.mxgraph.mxIGraphModel.IsVisible(Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d6b5254a9a124ef7e82b49eb9d4209b">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afad8a9d1b1be0fd85281c2a31b1a74e0"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::MergeChildren" ref="afad8a9d1b1be0fd85281c2a31b1a74e0" args="(mxICell from, mxICell to, bool cloneAllEdges)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::MergeChildren </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>from</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>to</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>cloneAllEdges</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Merges the children of the given cell into the given target cell inside this model. All cells are cloned unless there is a corresponding cell in the model with the same id, in which case the source cell is ignored and all edges are connected to the corresponding cell in this model. Edges are considered to have no identity and are always cloned unless the cloneAllEdges flag is set to false, in which case edges with the same id in the target model are reconnected to reflect the terminals of the source edges. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>from</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cloneAllEdges</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abf108384d5234690497fff50c730b1d3"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::MergeChildrenImpl" ref="abf108384d5234690497fff50c730b1d3" args="(mxICell from, mxICell to, bool cloneAllEdges, Dictionary&lt; Object, Object &gt; mapping)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::MergeChildrenImpl </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>from</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>to</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>cloneAllEdges</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; Object, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>mapping</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Clones the children of the source cell into the given target cell in this model and adds an entry to the mapping that maps from the source cell to the target cell with the same id or the clone of the source cell that was inserted into this model. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>from</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cloneAllEdges</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>mapping</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3db316aa8f0a092e8a93a75235c6a24f"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::Remove" ref="a3db316aa8f0a092e8a93a75235c6a24f" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::Remove </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a7c47f2459ce0dcdae38c35afa4ed1ffc" title="Removes the specified cell from the model. This operation will remove the cell and...">com.mxgraph.mxIGraphModel.Remove(Object)</a> </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a7c47f2459ce0dcdae38c35afa4ed1ffc">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a60713556b96f3500044c0842aa29c58d"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::RestoreClone" ref="a60713556b96f3500044c0842aa29c58d" args="(Object clone, Object cell, Hashtable mapping)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::RestoreClone </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>clone</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Hashtable&nbsp;</td>
    +          <td class="paramname"> <em>mapping</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Inner helper method for restoring the connections in a network of cloned cells. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a05f6ea80a4577097b2614fc8e98b06d2"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::SetCollapsed" ref="a05f6ea80a4577097b2614fc8e98b06d2" args="(Object cell, bool collapsed)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::SetCollapsed </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>collapsed</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a5ea04a022893866cffcbb53044c5171c" title="Sets the collapsed state of the given cell.">com.mxgraph.mxIGraphModel.SetCollapsed(Object, bool)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a5ea04a022893866cffcbb53044c5171c">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a78ccddb2f444c5eb701916d9ca052028"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::SetGeometry" ref="a78ccddb2f444c5eb701916d9ca052028" args="(Object cell, mxGeometry geometry)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> com::mxgraph::mxGraphModel::SetGeometry </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td>
    +          <td class="paramname"> <em>geometry</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a80f4bfe3ebd152ee3d77ec20a70bcc9d" title="Sets the geometry of the given cell.">com.mxgraph.mxIGraphModel.SetGeometry(Object, mxGeometry)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a80f4bfe3ebd152ee3d77ec20a70bcc9d">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a93a1ced4d1eed980881c3223b5b34b03"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::SetStyle" ref="a93a1ced4d1eed980881c3223b5b34b03" args="(Object cell, string style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGraphModel::SetStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a960ffa631d4199d149b4e889b480db48" title="Sets the style of the given cell.">com.mxgraph.mxIGraphModel.SetStyle(Object, string)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a960ffa631d4199d149b4e889b480db48">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0285540160fcf7de39a997c6f6a201ff"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::SetTerminal" ref="a0285540160fcf7de39a997c6f6a201ff" args="(Object edge, Object terminal, bool isSource)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::SetTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the source or target terminal of the given edge using. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell that specifies the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td>Cell that specifies the new terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean indicating if the terminal is the new source or target terminal of the edge.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a74a5bb3bea62d4c8382f15a323d326dc">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9980a787ac66f3a9c8586e155699b2c2"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::SetTerminals" ref="a9980a787ac66f3a9c8586e155699b2c2" args="(mxIGraphModel model, Object edge, Object source, Object target)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static void com::mxgraph::mxGraphModel::SetTerminals </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the source and target of the given edge in a single atomic change. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model that contains the graph.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell that specifies the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Cell that specifies the new source terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>Cell that specifies the new target terminal.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a73ee199d8b3dd322e97eb4fb07ca407f"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::SetValue" ref="a73ee199d8b3dd322e97eb4fb07ca407f" args="(Object cell, Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::SetValue </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#afd9cac91d73998f8457285bae5c95689" title="Sets the user object of then given cell.">com.mxgraph.mxIGraphModel.SetValue(Object, Object)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#afd9cac91d73998f8457285bae5c95689">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad3c76b19d99dd08f2f5aa96e8e1ba52b"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::SetVisible" ref="ad3c76b19d99dd08f2f5aa96e8e1ba52b" args="(Object cell, bool visible)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::SetVisible </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>visible</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a681fede1578933f051041b3ba4f01129" title="Sets the visible state of the given cell.">com.mxgraph.mxIGraphModel.SetVisible(Object, bool)</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a681fede1578933f051041b3ba4f01129">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af87d0672edad8ddd5bf2444d18b9dd5e"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::UpdateEdgeParent" ref="af87d0672edad8ddd5bf2444d18b9dd5e" args="(Object edge, Object root)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::UpdateEdgeParent </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>root</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Inner helper method to update the parent of the specified edge to the nearest-common-ancestor of its two terminals. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Specifies the edge to be updated.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>root</em>&nbsp;</td><td>Current root of the model.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a488034701fa7abbd3af217b4e36ef21d"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::UpdateEdgeParents" ref="a488034701fa7abbd3af217b4e36ef21d" args="(Object cell, Object root)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::UpdateEdgeParents </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>root</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Updates the parents of the edges connected to the given cell and all its descendants so that the edge is contained in the nearest-common-ancestor. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose edges should be checked and updated.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>root</em>&nbsp;</td><td>Root of the cell hierarchy that contains all cells.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2953504aaaf27b03084ae77e4c1ca892"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::UpdateEdgeParents" ref="a2953504aaaf27b03084ae77e4c1ca892" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphModel::UpdateEdgeParents </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Updates the parents of the edges connected to the given cell and all its descendants so that each edge is contained in the nearest common ancestor. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose edges should be checked and updated.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a11aae87bbc54a67fe354ab8cf95d641d"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::cells" ref="a11aae87bbc54a67fe354ab8cf95d641d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;Object, Object&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a11aae87bbc54a67fe354ab8cf95d641d">com::mxgraph::mxGraphModel::cells</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from Ids to cells. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a912b286b4d318dc633b1e7a28630f309"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::createIds" ref="a912b286b4d318dc633b1e7a28630f309" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a912b286b4d318dc633b1e7a28630f309">com::mxgraph::mxGraphModel::createIds</a> = true<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if edges should automatically be moved into the nearest common ancestor of their terminals. Default is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4d88460742c510d5dc6ac476bba92ad1"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::maintainEdgeParent" ref="a4d88460742c510d5dc6ac476bba92ad1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4d88460742c510d5dc6ac476bba92ad1">com::mxgraph::mxGraphModel::maintainEdgeParent</a> = true<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if the parent of edges should be automatically change to point to the nearest common ancestor of its terminals. Default is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a22d9376162b40a748beb1058df22cb9c"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::nextId" ref="a22d9376162b40a748beb1058df22cb9c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a22d9376162b40a748beb1058df22cb9c">com::mxgraph::mxGraphModel::nextId</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the next Id to be created. Initial value is 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1c799c216f6ee4d379aeb3161d04462c"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::root" ref="a1c799c216f6ee4d379aeb3161d04462c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1c799c216f6ee4d379aeb3161d04462c">com::mxgraph::mxGraphModel::root</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the root cell, which in turn contains the cells that represent the layers of the diagram as child cells. That is, the actual element of the diagram are supposed to live in the third generation of cells and below. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a20904785867391502b5bd953f14cbf1c"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::updateLevel" ref="a20904785867391502b5bd953f14cbf1c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20904785867391502b5bd953f14cbf1c">com::mxgraph::mxGraphModel::updateLevel</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Counter for the depth of nested transactions. Each call to beginUpdate increments this counter and each call to endUpdate decrements it. When the counter reaches 0, the transaction is closed and the respective events are fired. Initial value is 0. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="ae53c41ce3c1bbfcdd1512fb863867841"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::IsCreateIds" ref="ae53c41ce3c1bbfcdd1512fb863867841" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::IsCreateIds<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns if the model automatically creates Ids and resolves Id collisions. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4f55cfe5f9b3904db74ad352192a4157"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::IsMaintainEdgeParent" ref="a4f55cfe5f9b3904db74ad352192a4157" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphModel::IsMaintainEdgeParent<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets of returns if edges should automatically be moved into the nearest common ancestor of their terminals. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1e682481294b64ba2e7859da9760008e"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::Root" ref="a1e682481294b64ba2e7859da9760008e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphModel::Root<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the root cell. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a42b487c0d42d77170d5c0ce002a0a2ca">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Event Documentation</h2>
    +<a class="anchor" id="a0d3f6bf19b8c13b0d1445d3d4adf9b6e"></a><!-- doxytag: member="com::mxgraph::mxGraphModel::GraphModelChange" ref="a0d3f6bf19b8c13b0d1445d3d4adf9b6e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxGraphModelChangeEventHandler com::mxgraph::mxGraphModel::GraphModelChange</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Fires when the graph model has changed. </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a26dacf83c2ca35265f1f667b4d94adf0">com::mxgraph::mxIGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/model/mxGraphModel.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphModel.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphModel.png
    new file mode 100644
    index 000000000..47c6c6d25
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphModel.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphView-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphView-members.html
    new file mode 100644
    index 000000000..7ab30e037
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphView-members.html
    @@ -0,0 +1,84 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraphView Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a7a73f5b6d84de487270c6fdb191fa223">childMoved</a>(mxCellState parent, mxCellState child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa29a0f2d160d44de6d41998d76d5c7ea">CreateState</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9d96063f2d1f05fdb16428addba6570d">eventsEnabled</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af1a162bc91b52a3cdab8b0c38399950b">GetBoundingBox</a>(Object[] cells)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a4375f43fcce52c94589fb7be99809c52">GetBounds</a>(Object[] cells)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac6a3a393f9d0ef1325e6a04ef13fcbc0">GetBounds</a>(Object[] cells, bool boundingBox)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a30b9bbb3e31ac38f1922d144713f5fbe">GetCellStates</a>(Object[] cells)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9ef84d935516b526c422acc3d1afe03a">GetEdgeStyle</a>(mxCellState edge, List&lt; mxPoint &gt; points, Object source, Object target)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#abf5b7f79cc0901a516b186963dce01ea">GetNextPoint</a>(mxCellState edge, mxCellState opposite, bool source)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae371a456ebeaf2841d7d775137af4256">GetPerimeterBounds</a>(mxCellState terminal, double border)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a95447fe4f19faa6f997d346c26f51f39">GetPerimeterFunction</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac61ef3afb8b1c4801fe2ea559c090efe">GetPerimeterPoint</a>(mxCellState terminal, mxPoint next, bool orthogonal)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af27cb930ee9f4b23614b226712165bad">GetPerimeterPoint</a>(mxCellState terminal, mxPoint next, bool orthogonal, double border)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a1eea9cbda637577b8afd0e2fc52e111b">GetPoint</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a3dc869a8af413959f9db365ef94a24e8">GetPoint</a>(mxCellState state, mxGeometry geometry)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a990d0d7646260a442b3c0a6f6f2ba13c">GetRoutingCenterX</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a75404c30319e149e155b3ec75b2075b7">GetRoutingCenterY</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aae0270c38bde606f39794a2d02ce63c2">GetState</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#affe6e3dce4d456aa083c9ec24cb9f8fb">GetState</a>(Object cell, bool create)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af85a373249eba5fb569b544c560b5b61">GetStates</a>(Object[] cells)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5650a7827fc374d4572c167f929d919b">GetTerminalPort</a>(mxCellState state, mxCellState terminal, bool source)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae4f9f0101bb0cc752ce844d8203c4221">GetVisibleTerminal</a>(Object edge, bool source)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa4760138aec50d456efd6b3af72443a9">Graph</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5272c48a60291f84f9f5be6144760315">graph</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa17e78fb01f9979bd752171fb60fd354">GraphBounds</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a70f795d0bc251e089395cf30086ec650">graphBounds</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a4fba56e7781c1a247d7f912b335ee7f5">Invalidate</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a03901697d2c95d30a106bfebfbba6c80">IsEventsEnabled</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a218453e14bd940ab8b4e4a1187905039">mxGraphView</a>(mxGraph graph)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a03a3832e8028db0e80b56f16a0a9bc35">RemoveState</a>(Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae484b71ee1fae22ae48b65fe4762e9fb">Revalidate</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a1136bf1e5ad245c928a0c679a997afba">scale</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a49b12c63fc32378462d8084bdf4a7fcf">Scale</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a2e693ca3997bb8e68080f5dc051f115d">States</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#abb3859aeb516eacf2c04d08b5c1a2f04">states</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac4ef4f1681df71f677a6d03d42897755">TransformControlPoint</a>(mxCellState state, mxPoint pt)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a752a1c2cec1d85598f4201144a3e7187">translate</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af0d1303b88f287f460adae16b7f8792a">Translate</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a0115ba2a4339e05c6db9d8164f30f150">UpdateBoundingBox</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5f4bddee7b3fedc69c0a441c6a2ce48e">UpdateEdgeBounds</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a252b4249e2ca0e630df6c331135b9644">UpdateFixedTerminalPoint</a>(mxCellState edge, mxCellState terminal, bool source, mxConnectionConstraint constraint)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae50a6fcd0b60ca7b624fd97d49a68fd9">UpdateFixedTerminalPoints</a>(mxCellState edge, mxCellState source, mxCellState target)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a7dc5b5936190891544dd32e3765b82e0">UpdateFloatingTerminalPoint</a>(mxCellState edge, mxCellState start, mxCellState end, bool source)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a86037fb40a256d0280cddc4810b95dd0">UpdateFloatingTerminalPoints</a>(mxCellState state, mxCellState source, mxCellState target)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae6104810b628d9e78fea76d84b4a0023">UpdateLabelBounds</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9ad21a066eb270f9da5de1394458e20d">UpdatePoints</a>(mxCellState edge, List&lt; mxPoint &gt; points, mxCellState source, mxCellState target)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ade92841dd809516fc118f4e4985a96f1">UpdateVertexLabelOffset</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa6a54e897ab3a93c94573e88a8959124">Validate</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac1ec1d93fd59cdbfc1530ba986007267">ValidateBounds</a>(mxCellState parentState, Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa635e78c6d4660166e57257079b0d9ce">ValidatePoints</a>(mxCellState parentState, Object cell)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></td><td><code> [inline]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphView.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphView.html
    new file mode 100644
    index 000000000..998d5d329
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphView.html
    @@ -0,0 +1,1517 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxGraphView Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraphView Class Reference</h1><!-- doxytag: class="com::mxgraph::mxGraphView" -->
    +<p>Implements a view for the graph. This class is in charge of computing the absolute coordinates for the relative child geometries, the points for perimeters and edge styles and keeping them cached in mxCellStates for faster retrieval. The states are updated whenever the model or the view state (translate, scale) changes. The scale and translate are honoured in the bounds.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxGraphView-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a218453e14bd940ab8b4e4a1187905039">mxGraphView</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5272c48a60291f84f9f5be6144760315">graph</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new view for the given graph.  <a href="#a218453e14bd940ab8b4e4a1187905039"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a4375f43fcce52c94589fb7be99809c52">GetBounds</a> (Object[] cells)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounding box for an array of cells or null, if no cells are specified.  <a href="#a4375f43fcce52c94589fb7be99809c52"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af1a162bc91b52a3cdab8b0c38399950b">GetBoundingBox</a> (Object[] cells)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounding box for an array of cells or null, if no cells are specified.  <a href="#af1a162bc91b52a3cdab8b0c38399950b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac6a3a393f9d0ef1325e6a04ef13fcbc0">GetBounds</a> (Object[] cells, bool boundingBox)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounding box for an array of cells or null, if no cells are specified.  <a href="#ac6a3a393f9d0ef1325e6a04ef13fcbc0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae484b71ee1fae22ae48b65fe4762e9fb">Revalidate</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">First invalidates, then validates all cell states.  <a href="#ae484b71ee1fae22ae48b65fe4762e9fb"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a4fba56e7781c1a247d7f912b335ee7f5">Invalidate</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalidates all cell states.  <a href="#a4fba56e7781c1a247d7f912b335ee7f5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa6a54e897ab3a93c94573e88a8959124">Validate</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">First validates all bounds and then validates all points recursively on all visible cells.  <a href="#aa6a54e897ab3a93c94573e88a8959124"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac1ec1d93fd59cdbfc1530ba986007267">ValidateBounds</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> parentState, Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Validates the bounds of the given parent's child using the given parent state as the origin for the child. The validation is carried out recursively for all non-collapsed descendants.  <a href="#ac1ec1d93fd59cdbfc1530ba986007267"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ade92841dd809516fc118f4e4985a96f1">UpdateVertexLabelOffset</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the absoluteOffset of the given vertex cell state. This takes into account the label position styles.  <a href="#ade92841dd809516fc118f4e4985a96f1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa635e78c6d4660166e57257079b0d9ce">ValidatePoints</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> parentState, Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Validates the points for the state of the given cell recursively if the cell is not collapsed and returns the bounding box of all visited states as a rectangle.  <a href="#aa635e78c6d4660166e57257079b0d9ce"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a7a73f5b6d84de487270c6fdb191fa223">childMoved</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> parent, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invoked when a child state was moved as a result of late evaluation of its position. This is invoked for relative edge children whose position can only be determined after the points of the parent edge are updated in validatePoints, and validates the bounds of all descendants of the child using validateBounds.  <a href="#a7a73f5b6d84de487270c6fdb191fa223"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae6104810b628d9e78fea76d84b4a0023">UpdateLabelBounds</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the label bounds in the given state.  <a href="#ae6104810b628d9e78fea76d84b4a0023"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a0115ba2a4339e05c6db9d8164f30f150">UpdateBoundingBox</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the bounding box in the given cell state.  <a href="#a0115ba2a4339e05c6db9d8164f30f150"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae50a6fcd0b60ca7b624fd97d49a68fd9">UpdateFixedTerminalPoints</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> edge, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> source, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> target)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the initial absolute terminal points in the given state before the edge style is computed.  <a href="#ae50a6fcd0b60ca7b624fd97d49a68fd9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a252b4249e2ca0e630df6c331135b9644">UpdateFixedTerminalPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> edge, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> terminal, bool source, <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">mxConnectionConstraint</a> constraint)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the fixed source or target terminal point on the given edge.  <a href="#a252b4249e2ca0e630df6c331135b9644"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9ad21a066eb270f9da5de1394458e20d">UpdatePoints</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> edge, List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt; points, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> source, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> target)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the absolute points in the given state using the specified array of points as the relative points.  <a href="#a9ad21a066eb270f9da5de1394458e20d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac4ef4f1681df71f677a6d03d42897755">TransformControlPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> pt)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms the given control point to an absolute point.  <a href="#ac4ef4f1681df71f677a6d03d42897755"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">mxEdgeStyleFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9ef84d935516b526c422acc3d1afe03a">GetEdgeStyle</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> edge, List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt; points, Object source, Object target)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the edge style function to be used to render the given edge state.  <a href="#a9ef84d935516b526c422acc3d1afe03a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a86037fb40a256d0280cddc4810b95dd0">UpdateFloatingTerminalPoints</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> source, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> target)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the terminal points in the given state after the edge style was computed for the edge.  <a href="#a86037fb40a256d0280cddc4810b95dd0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a7dc5b5936190891544dd32e3765b82e0">UpdateFloatingTerminalPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> edge, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> start, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> end, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.  <a href="#a7dc5b5936190891544dd32e3765b82e0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5650a7827fc374d4572c167f929d919b">GetTerminalPort</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> terminal, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the given terminal or the port defined in the given edge state if a cell state exists for that port.  <a href="#a5650a7827fc374d4572c167f929d919b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac61ef3afb8b1c4801fe2ea559c090efe">GetPerimeterPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> terminal, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> next, bool orthogonal)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a point that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.  <a href="#ac61ef3afb8b1c4801fe2ea559c090efe"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af27cb930ee9f4b23614b226712165bad">GetPerimeterPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> terminal, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> next, bool orthogonal, double border)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a point that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.  <a href="#af27cb930ee9f4b23614b226712165bad"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a990d0d7646260a442b3c0a6f6f2ba13c">GetRoutingCenterX</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the x-coordinate of the center point for automatic routing.  <a href="#a990d0d7646260a442b3c0a6f6f2ba13c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a75404c30319e149e155b3ec75b2075b7">GetRoutingCenterY</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the y-coordinate of the center point for automatic routing.  <a href="#a75404c30319e149e155b3ec75b2075b7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae371a456ebeaf2841d7d775137af4256">GetPerimeterBounds</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> terminal, double border)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the perimeter bounds for the given terminal, edge pair.  <a href="#ae371a456ebeaf2841d7d775137af4256"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">mxPerimeterFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a95447fe4f19faa6f997d346c26f51f39">GetPerimeterFunction</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the perimeter function for the given state.  <a href="#a95447fe4f19faa6f997d346c26f51f39"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#abf5b7f79cc0901a516b186963dce01ea">GetNextPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> edge, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> opposite, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the nearest point in the list of absolute points or the center of the opposite terminal.  <a href="#abf5b7f79cc0901a516b186963dce01ea"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae4f9f0101bb0cc752ce844d8203c4221">GetVisibleTerminal</a> (Object edge, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the nearest ancestor terminal that is visible. The edge appears to be connected to this terminal on the display.  <a href="#ae4f9f0101bb0cc752ce844d8203c4221"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5f4bddee7b3fedc69c0a441c6a2ce48e">UpdateEdgeBounds</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the given state using the bounding box of the absolute points. Also updates terminal distance, length and segments.  <a href="#a5f4bddee7b3fedc69c0a441c6a2ce48e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a1eea9cbda637577b8afd0e2fc52e111b">GetPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute center point along the given edge.  <a href="#a1eea9cbda637577b8afd0e2fc52e111b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a3dc869a8af413959f9db365ef94a24e8">GetPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> geometry)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute point on the edge for the given relative geometry as a point. The edge is represented by the given cell state.  <a href="#a3dc869a8af413959f9db365ef94a24e8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aae0270c38bde606f39794a2d02ce63c2">GetState</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the state for the given cell or null if no state is defined for the cell.  <a href="#aae0270c38bde606f39794a2d02ce63c2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; Object, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af85a373249eba5fb569b544c560b5b61">GetStates</a> (Object[] cells)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the object that maps from cells to states.  <a href="#af85a373249eba5fb569b544c560b5b61"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a30b9bbb3e31ac38f1922d144713f5fbe">GetCellStates</a> (Object[] cells)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the states for the given array of cells. The array contains all states that are not null, that is, the returned array may have less elements than the given array.  <a href="#a30b9bbb3e31ac38f1922d144713f5fbe"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#affe6e3dce4d456aa083c9ec24cb9f8fb">GetState</a> (Object cell, bool create)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the cell state for the given cell. If create is true, then the state is created if it does not yet exist.  <a href="#affe6e3dce4d456aa083c9ec24cb9f8fb"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a03a3832e8028db0e80b56f16a0a9bc35">RemoveState</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes and returns the <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html" title="Represents the current state of a cell in a given graph view.">mxCellState</a> for the given cell.  <a href="#a03a3832e8028db0e80b56f16a0a9bc35"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa29a0f2d160d44de6d41998d76d5c7ea">CreateState</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates and returns a cell state for the given cell.  <a href="#aa29a0f2d160d44de6d41998d76d5c7ea"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5272c48a60291f84f9f5be6144760315">graph</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference to the enclosing graph.  <a href="#a5272c48a60291f84f9f5be6144760315"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a70f795d0bc251e089395cf30086ec650">graphBounds</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Caches the current bounds of the graph.  <a href="#a70f795d0bc251e089395cf30086ec650"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a1136bf1e5ad245c928a0c679a997afba">scale</a> = 1</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the scale. Default is 1 (100%).  <a href="#a1136bf1e5ad245c928a0c679a997afba"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a752a1c2cec1d85598f4201144a3e7187">translate</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>(0, 0)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Point that specifies the current translation. Default is a new empty point.  <a href="#a752a1c2cec1d85598f4201144a3e7187"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; Object, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#abb3859aeb516eacf2c04d08b5c1a2f04">states</a> = new Dictionary&lt;Object, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from cells to cell states.  <a href="#abb3859aeb516eacf2c04d08b5c1a2f04"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9d96063f2d1f05fdb16428addba6570d">eventsEnabled</a> = true</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies if the view should be revalidated if the scale or translation changes.  <a href="#a9d96063f2d1f05fdb16428addba6570d"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa4760138aec50d456efd6b3af72443a9">Graph</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the enclosing graph.  <a href="#aa4760138aec50d456efd6b3af72443a9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa17e78fb01f9979bd752171fb60fd354">GraphBounds</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the cached diagram bounds.  <a href="#aa17e78fb01f9979bd752171fb60fd354"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a49b12c63fc32378462d8084bdf4a7fcf">Scale</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the current scale.  <a href="#a49b12c63fc32378462d8084bdf4a7fcf"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af0d1303b88f287f460adae16b7f8792a">Translate</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the current translation.  <a href="#af0d1303b88f287f460adae16b7f8792a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; Object, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a2e693ca3997bb8e68080f5dc051f115d">States</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the current translation.  <a href="#a2e693ca3997bb8e68080f5dc051f115d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a03901697d2c95d30a106bfebfbba6c80">IsEventsEnabled</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the current scale.  <a href="#a03901697d2c95d30a106bfebfbba6c80"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a view for the graph. This class is in charge of computing the absolute coordinates for the relative child geometries, the points for perimeters and edge styles and keeping them cached in mxCellStates for faster retrieval. The states are updated whenever the model or the view state (translate, scale) changes. The scale and translate are honoured in the bounds. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a218453e14bd940ab8b4e4a1187905039"></a><!-- doxytag: member="com::mxgraph::mxGraphView::mxGraphView" ref="a218453e14bd940ab8b4e4a1187905039" args="(mxGraph graph)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphView::mxGraphView </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a>&nbsp;</td>
    +          <td class="paramname"> <em>graph</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new view for the given graph. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>graph</em>&nbsp;</td><td>Reference to the enclosing graph.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a7a73f5b6d84de487270c6fdb191fa223"></a><!-- doxytag: member="com::mxgraph::mxGraphView::childMoved" ref="a7a73f5b6d84de487270c6fdb191fa223" args="(mxCellState parent, mxCellState child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::childMoved </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Invoked when a child state was moved as a result of late evaluation of its position. This is invoked for relative edge children whose position can only be determined after the points of the parent edge are updated in validatePoints, and validates the bounds of all descendants of the child using validateBounds. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>State that represents the parent.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>State that represents the child.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa29a0f2d160d44de6d41998d76d5c7ea"></a><!-- doxytag: member="com::mxgraph::mxGraphView::CreateState" ref="aa29a0f2d160d44de6d41998d76d5c7ea" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> com::mxgraph::mxGraphView::CreateState </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates and returns a cell state for the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell for which a new state should be created.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new state for the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af1a162bc91b52a3cdab8b0c38399950b"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetBoundingBox" ref="af1a162bc91b52a3cdab8b0c38399950b" args="(Object[] cells)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraphView::GetBoundingBox </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounding box for an array of cells or null, if no cells are specified. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cells</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac6a3a393f9d0ef1325e6a04ef13fcbc0"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetBounds" ref="ac6a3a393f9d0ef1325e6a04ef13fcbc0" args="(Object[] cells, bool boundingBox)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraphView::GetBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>boundingBox</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounding box for an array of cells or null, if no cells are specified. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4375f43fcce52c94589fb7be99809c52"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetBounds" ref="a4375f43fcce52c94589fb7be99809c52" args="(Object[] cells)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraphView::GetBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounding box for an array of cells or null, if no cells are specified. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cells</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a30b9bbb3e31ac38f1922d144713f5fbe"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetCellStates" ref="a30b9bbb3e31ac38f1922d144713f5fbe" args="(Object[] cells)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> [] com::mxgraph::mxGraphView::GetCellStates </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the states for the given array of cells. The array contains all states that are not null, that is, the returned array may have less elements than the given array. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9ef84d935516b526c422acc3d1afe03a"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetEdgeStyle" ref="a9ef84d935516b526c422acc3d1afe03a" args="(mxCellState edge, List&lt; mxPoint &gt; points, Object source, Object target)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxEdgeStyleFunction com::mxgraph::mxGraphView::GetEdgeStyle </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td>
    +          <td class="paramname"> <em>points</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the edge style function to be used to render the given edge state. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abf5b7f79cc0901a516b186963dce01ea"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetNextPoint" ref="abf5b7f79cc0901a516b186963dce01ea" args="(mxCellState edge, mxCellState opposite, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraphView::GetNextPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>opposite</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the nearest point in the list of absolute points or the center of the opposite terminal. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>State that represents the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>opposite</em>&nbsp;</td><td>State that represents the opposite terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean indicating if the next point for the source or target should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae371a456ebeaf2841d7d775137af4256"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetPerimeterBounds" ref="ae371a456ebeaf2841d7d775137af4256" args="(mxCellState terminal, double border)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraphView::GetPerimeterBounds </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>border</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the perimeter bounds for the given terminal, edge pair. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a95447fe4f19faa6f997d346c26f51f39"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetPerimeterFunction" ref="a95447fe4f19faa6f997d346c26f51f39" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxPerimeterFunction com::mxgraph::mxGraphView::GetPerimeterFunction </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the perimeter function for the given state. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af27cb930ee9f4b23614b226712165bad"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetPerimeterPoint" ref="af27cb930ee9f4b23614b226712165bad" args="(mxCellState terminal, mxPoint next, bool orthogonal, double border)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraphView::GetPerimeterPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>next</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>orthogonal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>border</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a point that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td>State for the source or target terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>next</em>&nbsp;</td><td>Point that lies outside of the given terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>orthogonal</em>&nbsp;</td><td>Specifies if the orthogonal projection onto the perimeter should be returned. If this is false then the intersection of the perimeter and the line between the next and the center point is returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>border</em>&nbsp;</td><td>Optional border between the perimeter and the shape.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac61ef3afb8b1c4801fe2ea559c090efe"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetPerimeterPoint" ref="ac61ef3afb8b1c4801fe2ea559c090efe" args="(mxCellState terminal, mxPoint next, bool orthogonal)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraphView::GetPerimeterPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>next</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>orthogonal</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a point that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3dc869a8af413959f9db365ef94a24e8"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetPoint" ref="a3dc869a8af413959f9db365ef94a24e8" args="(mxCellState state, mxGeometry geometry)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraphView::GetPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td>
    +          <td class="paramname"> <em>geometry</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the absolute point on the edge for the given relative geometry as a point. The edge is represented by the given cell state. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td>Represents the state of the parent edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>geometry</em>&nbsp;</td><td>Represents the relative location.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1eea9cbda637577b8afd0e2fc52e111b"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetPoint" ref="a1eea9cbda637577b8afd0e2fc52e111b" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraphView::GetPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the absolute center point along the given edge. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a990d0d7646260a442b3c0a6f6f2ba13c"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetRoutingCenterX" ref="a990d0d7646260a442b3c0a6f6f2ba13c" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGraphView::GetRoutingCenterX </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the x-coordinate of the center point for automatic routing. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the x-coordinate of the routing center point.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a75404c30319e149e155b3ec75b2075b7"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetRoutingCenterY" ref="a75404c30319e149e155b3ec75b2075b7" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGraphView::GetRoutingCenterY </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the y-coordinate of the center point for automatic routing. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the y-coordinate of the routing center point.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="affe6e3dce4d456aa083c9ec24cb9f8fb"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetState" ref="affe6e3dce4d456aa083c9ec24cb9f8fb" args="(Object cell, bool create)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> com::mxgraph::mxGraphView::GetState </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>create</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the cell state for the given cell. If create is true, then the state is created if it does not yet exist. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell for which a new state should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>create</em>&nbsp;</td><td>Boolean indicating if a new state should be created if it does not yet exist.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the state for the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aae0270c38bde606f39794a2d02ce63c2"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetState" ref="aae0270c38bde606f39794a2d02ce63c2" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> com::mxgraph::mxGraphView::GetState </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the state for the given cell or null if no state is defined for the cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose state should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the state for the given cell.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af85a373249eba5fb569b544c560b5b61"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetStates" ref="af85a373249eba5fb569b544c560b5b61" args="(Object[] cells)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;Object, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&gt; com::mxgraph::mxGraphView::GetStates </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the object that maps from cells to states. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5650a7827fc374d4572c167f929d919b"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetTerminalPort" ref="a5650a7827fc374d4572c167f929d919b" args="(mxCellState state, mxCellState terminal, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> com::mxgraph::mxGraphView::GetTerminalPort </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the given terminal or the port defined in the given edge state if a cell state exists for that port. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae4f9f0101bb0cc752ce844d8203c4221"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GetVisibleTerminal" ref="ae4f9f0101bb0cc752ce844d8203c4221" args="(Object edge, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxGraphView::GetVisibleTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the nearest ancestor terminal that is visible. The edge appears to be connected to this terminal on the display. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell whose visible terminal should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean that specifies if the source or target terminal should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the visible source or target terminal.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4fba56e7781c1a247d7f912b335ee7f5"></a><!-- doxytag: member="com::mxgraph::mxGraphView::Invalidate" ref="a4fba56e7781c1a247d7f912b335ee7f5" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::Invalidate </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Invalidates all cell states. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a03a3832e8028db0e80b56f16a0a9bc35"></a><!-- doxytag: member="com::mxgraph::mxGraphView::RemoveState" ref="a03a3832e8028db0e80b56f16a0a9bc35" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> com::mxgraph::mxGraphView::RemoveState </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes and returns the <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html" title="Represents the current state of a cell in a given graph view.">mxCellState</a> for the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html" title="Cells are the elements of the graph model. They represent the state of the groups...">mxCell</a> for which the <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html" title="Represents the current state of a cell in a given graph view.">mxCellState</a> should be removed.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html" title="Represents the current state of a cell in a given graph view.">mxCellState</a> that has been removed.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae484b71ee1fae22ae48b65fe4762e9fb"></a><!-- doxytag: member="com::mxgraph::mxGraphView::Revalidate" ref="ae484b71ee1fae22ae48b65fe4762e9fb" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::Revalidate </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>First invalidates, then validates all cell states. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac4ef4f1681df71f677a6d03d42897755"></a><!-- doxytag: member="com::mxgraph::mxGraphView::TransformControlPoint" ref="ac4ef4f1681df71f677a6d03d42897755" args="(mxCellState state, mxPoint pt)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraphView::TransformControlPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>pt</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Transforms the given control point to an absolute point. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0115ba2a4339e05c6db9d8164f30f150"></a><!-- doxytag: member="com::mxgraph::mxGraphView::UpdateBoundingBox" ref="a0115ba2a4339e05c6db9d8164f30f150" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraphView::UpdateBoundingBox </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Updates the bounding box in the given cell state. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td>Cell state whose bounding box should be updated.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5f4bddee7b3fedc69c0a441c6a2ce48e"></a><!-- doxytag: member="com::mxgraph::mxGraphView::UpdateEdgeBounds" ref="a5f4bddee7b3fedc69c0a441c6a2ce48e" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::UpdateEdgeBounds </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Updates the given state using the bounding box of the absolute points. Also updates terminal distance, length and segments. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td>Cell state whose bounds should be updated.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a252b4249e2ca0e630df6c331135b9644"></a><!-- doxytag: member="com::mxgraph::mxGraphView::UpdateFixedTerminalPoint" ref="a252b4249e2ca0e630df6c331135b9644" args="(mxCellState edge, mxCellState terminal, bool source, mxConnectionConstraint constraint)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::UpdateFixedTerminalPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">mxConnectionConstraint</a>&nbsp;</td>
    +          <td class="paramname"> <em>constraint</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the fixed source or target terminal point on the given edge. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>State whose terminal point should be updated.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td>State which represents the actual terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean that specifies if the terminal is the source.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>constraint</em>&nbsp;</td><td>Constraint that specifies the connection.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae50a6fcd0b60ca7b624fd97d49a68fd9"></a><!-- doxytag: member="com::mxgraph::mxGraphView::UpdateFixedTerminalPoints" ref="ae50a6fcd0b60ca7b624fd97d49a68fd9" args="(mxCellState edge, mxCellState source, mxCellState target)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::UpdateFixedTerminalPoints </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the initial absolute terminal points in the given state before the edge style is computed. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell state whose initial terminal points should be updated.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Cell state which represents the source terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>Cell state which represents the target terminal.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7dc5b5936190891544dd32e3765b82e0"></a><!-- doxytag: member="com::mxgraph::mxGraphView::UpdateFloatingTerminalPoint" ref="a7dc5b5936190891544dd32e3765b82e0" args="(mxCellState edge, mxCellState start, mxCellState end, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::UpdateFloatingTerminalPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>start</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>end</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>State whose terminal point should be updated.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>for the terminal on "this" side of the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>for the terminal on the other side of the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean indicating if start is the source terminal state.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a86037fb40a256d0280cddc4810b95dd0"></a><!-- doxytag: member="com::mxgraph::mxGraphView::UpdateFloatingTerminalPoints" ref="a86037fb40a256d0280cddc4810b95dd0" args="(mxCellState state, mxCellState source, mxCellState target)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::UpdateFloatingTerminalPoints </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Updates the terminal points in the given state after the edge style was computed for the edge. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td>State whose terminal points should be updated.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>State that represents the source terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>State that represents the target terminal.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae6104810b628d9e78fea76d84b4a0023"></a><!-- doxytag: member="com::mxgraph::mxGraphView::UpdateLabelBounds" ref="ae6104810b628d9e78fea76d84b4a0023" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::UpdateLabelBounds </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Updates the label bounds in the given state. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9ad21a066eb270f9da5de1394458e20d"></a><!-- doxytag: member="com::mxgraph::mxGraphView::UpdatePoints" ref="a9ad21a066eb270f9da5de1394458e20d" args="(mxCellState edge, List&lt; mxPoint &gt; points, mxCellState source, mxCellState target)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::UpdatePoints </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td>
    +          <td class="paramname"> <em>points</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>source</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Updates the absolute points in the given state using the specified array of points as the relative points. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell state whose absolute points should be updated.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>points</em>&nbsp;</td><td>Array of points that constitute the relative points.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Cell that represents the source terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>Cell that represents the target terminal.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ade92841dd809516fc118f4e4985a96f1"></a><!-- doxytag: member="com::mxgraph::mxGraphView::UpdateVertexLabelOffset" ref="ade92841dd809516fc118f4e4985a96f1" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::UpdateVertexLabelOffset </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Updates the absoluteOffset of the given vertex cell state. This takes into account the label position styles. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td>Cell state whose absolute offset should be updated.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa6a54e897ab3a93c94573e88a8959124"></a><!-- doxytag: member="com::mxgraph::mxGraphView::Validate" ref="aa6a54e897ab3a93c94573e88a8959124" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::Validate </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>First validates all bounds and then validates all points recursively on all visible cells. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac1ec1d93fd59cdbfc1530ba986007267"></a><!-- doxytag: member="com::mxgraph::mxGraphView::ValidateBounds" ref="ac1ec1d93fd59cdbfc1530ba986007267" args="(mxCellState parentState, Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphView::ValidateBounds </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>parentState</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Validates the bounds of the given parent's child using the given parent state as the origin for the child. The validation is carried out recursively for all non-collapsed descendants. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parentState</em>&nbsp;</td><td>Cell state for the given parent.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell for which the bounds in the state should be updated.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa635e78c6d4660166e57257079b0d9ce"></a><!-- doxytag: member="com::mxgraph::mxGraphView::ValidatePoints" ref="aa635e78c6d4660166e57257079b0d9ce" args="(mxCellState parentState, Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraphView::ValidatePoints </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>parentState</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Validates the points for the state of the given cell recursively if the cell is not collapsed and returns the bounding box of all visited states as a rectangle. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a9d96063f2d1f05fdb16428addba6570d"></a><!-- doxytag: member="com::mxgraph::mxGraphView::eventsEnabled" ref="a9d96063f2d1f05fdb16428addba6570d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9d96063f2d1f05fdb16428addba6570d">com::mxgraph::mxGraphView::eventsEnabled</a> = true<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies if the view should be revalidated if the scale or translation changes. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5272c48a60291f84f9f5be6144760315"></a><!-- doxytag: member="com::mxgraph::mxGraphView::graph" ref="a5272c48a60291f84f9f5be6144760315" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5272c48a60291f84f9f5be6144760315">com::mxgraph::mxGraphView::graph</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reference to the enclosing graph. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a70f795d0bc251e089395cf30086ec650"></a><!-- doxytag: member="com::mxgraph::mxGraphView::graphBounds" ref="a70f795d0bc251e089395cf30086ec650" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a70f795d0bc251e089395cf30086ec650">com::mxgraph::mxGraphView::graphBounds</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Caches the current bounds of the graph. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1136bf1e5ad245c928a0c679a997afba"></a><!-- doxytag: member="com::mxgraph::mxGraphView::scale" ref="a1136bf1e5ad245c928a0c679a997afba" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a1136bf1e5ad245c928a0c679a997afba">com::mxgraph::mxGraphView::scale</a> = 1<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the scale. Default is 1 (100%). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abb3859aeb516eacf2c04d08b5c1a2f04"></a><!-- doxytag: member="com::mxgraph::mxGraphView::states" ref="abb3859aeb516eacf2c04d08b5c1a2f04" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;Object, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#abb3859aeb516eacf2c04d08b5c1a2f04">com::mxgraph::mxGraphView::states</a> = new Dictionary&lt;Object, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&gt;()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from cells to cell states. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a752a1c2cec1d85598f4201144a3e7187"></a><!-- doxytag: member="com::mxgraph::mxGraphView::translate" ref="a752a1c2cec1d85598f4201144a3e7187" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a752a1c2cec1d85598f4201144a3e7187">com::mxgraph::mxGraphView::translate</a> = new <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>(0, 0)<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Point that specifies the current translation. Default is a new empty point. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="aa4760138aec50d456efd6b3af72443a9"></a><!-- doxytag: member="com::mxgraph::mxGraphView::Graph" ref="aa4760138aec50d456efd6b3af72443a9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a> com::mxgraph::mxGraphView::Graph<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the enclosing graph. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa17e78fb01f9979bd752171fb60fd354"></a><!-- doxytag: member="com::mxgraph::mxGraphView::GraphBounds" ref="aa17e78fb01f9979bd752171fb60fd354" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraphView::GraphBounds<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the cached diagram bounds. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a03901697d2c95d30a106bfebfbba6c80"></a><!-- doxytag: member="com::mxgraph::mxGraphView::IsEventsEnabled" ref="a03901697d2c95d30a106bfebfbba6c80" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphView::IsEventsEnabled<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the current scale. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a49b12c63fc32378462d8084bdf4a7fcf"></a><!-- doxytag: member="com::mxgraph::mxGraphView::Scale" ref="a49b12c63fc32378462d8084bdf4a7fcf" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxGraphView::Scale<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the current scale. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2e693ca3997bb8e68080f5dc051f115d"></a><!-- doxytag: member="com::mxgraph::mxGraphView::States" ref="a2e693ca3997bb8e68080f5dc051f115d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;Object, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&gt; com::mxgraph::mxGraphView::States<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the current translation. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af0d1303b88f287f460adae16b7f8792a"></a><!-- doxytag: member="com::mxgraph::mxGraphView::Translate" ref="af0d1303b88f287f460adae16b7f8792a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxGraphView::Translate<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the current translation. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/view/mxGraphView.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewImageReader-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewImageReader-members.html
    new file mode 100644
    index 000000000..4393a025c
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewImageReader-members.html
    @@ -0,0 +1,60 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraphViewImageReader Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6d9801aae801ca3503ab23f5f7ff06cd">antiAlias</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a1dc79898cc116600a6322fb83d13a4b1">AntiAlias</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aed5809860eb0645637557fca52728c88">background</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a86163e41e964450a012d38a97954921f">Background</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aff0fe532ec2953fdd42f95a77b39eaf6">border</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#abbc386cb9f33f2f3328ce945d355e09b">Border</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#af130379cf2af3dd403a3c32d88101ecc">Canvas</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a4ead1c024b80b0157e323050b273e402">canvas</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a0d0ca19582bd5c2b329ebcf456736100">clip</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a17d2074a21622207e42044624cf957be">Clip</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6ce1023a33d6eac6bc4abb5219110d89">Convert</a>(mxGraphViewImageReader viewReader)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#ac8356063dfd38867d0a9941c4211d57d">CreateCanvas</a>(Dictionary&lt; string, Object &gt; attrs)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af50cf355de821b22f1139224b7ab960b">cropping</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af3964c9aa47942ad27136fe899abf542">Cropping</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a5c2f0f08cef339f6498c1eed95a9295b">mxGraphViewImageReader</a>(XmlReader reader)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a95325f9666af7bdd8bf1cbe6ba931f01">mxGraphViewImageReader</a>(XmlReader reader, Color?background)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#ac2e1fcb9f0d3547fe75227924cd4f442">mxGraphViewImageReader</a>(XmlReader reader, Color?background, int border)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a871b36b68a84b5af6134bdaa37067876">mxGraphViewImageReader</a>(XmlReader reader, Color?background, int border, bool antiAlias)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#affaf1f7e3e1c8d44d928438a0dcaae9f">mxGraphViewImageReader</a>(XmlReader reader, Color?background, int border, bool antiAlias, bool cropping)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a5e70037f507dd7a5b0c7ca075b58a494">mxGraphViewReader</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a67e55eda51751f24e7006792976abbdf">mxGraphViewReader</a>(XmlReader reader)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a78ed8a118dbce9e2638954de73a9304d">ParseElement</a>(string tagName, Dictionary&lt; string, Object &gt; attrs)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a9e04e66ca4cdf297abee69ef68baaa04">ParsePoints</a>(string pts)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ac83438fd2f9c2a4f13498192aa068140">ParseState</a>(mxCellState state, bool edge)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a27c8f5379f6aaa9e751eef7f716d9cc7">Read</a>(XmlReader reader)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a667a53ffe35f9601f814c2708d87de5e">scale</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewImageReader.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewImageReader.html
    new file mode 100644
    index 000000000..1aefe1a2d
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewImageReader.html
    @@ -0,0 +1,483 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxGraphViewImageReader Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">mxGraphViewImageReader</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraphViewImageReader Class Reference</h1><!-- doxytag: class="com::mxgraph::mxGraphViewImageReader" --><!-- doxytag: inherits="com::mxgraph::mxGraphViewReader" -->
    +<p>A converter that renders display XML data onto a GDI canvas.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxGraphViewImageReader:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxGraphViewImageReader.png" usemap="#com::mxgraph::mxGraphViewImageReader_map" alt=""/>
    +  <map id="com::mxgraph::mxGraphViewImageReader_map" name="com::mxgraph::mxGraphViewImageReader_map">
    +<area href="classcom_1_1mxgraph_1_1mxGraphViewReader.html" alt="com::mxgraph::mxGraphViewReader" shape="rect" coords="0,0,247,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxGraphViewImageReader-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a5c2f0f08cef339f6498c1eed95a9295b">mxGraphViewImageReader</a> (XmlReader reader)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new GDI reader for the given display XML reader.  <a href="#a5c2f0f08cef339f6498c1eed95a9295b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a95325f9666af7bdd8bf1cbe6ba931f01">mxGraphViewImageReader</a> (XmlReader reader, Color?<a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aed5809860eb0645637557fca52728c88">background</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new GDI reader for the given display XML reader.  <a href="#a95325f9666af7bdd8bf1cbe6ba931f01"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#ac2e1fcb9f0d3547fe75227924cd4f442">mxGraphViewImageReader</a> (XmlReader reader, Color?<a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aed5809860eb0645637557fca52728c88">background</a>, int <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aff0fe532ec2953fdd42f95a77b39eaf6">border</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new GDI reader for the given display XML reader.  <a href="#ac2e1fcb9f0d3547fe75227924cd4f442"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a871b36b68a84b5af6134bdaa37067876">mxGraphViewImageReader</a> (XmlReader reader, Color?<a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aed5809860eb0645637557fca52728c88">background</a>, int <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aff0fe532ec2953fdd42f95a77b39eaf6">border</a>, bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6d9801aae801ca3503ab23f5f7ff06cd">antiAlias</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new GDI reader for the given display XML reader.  <a href="#a871b36b68a84b5af6134bdaa37067876"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#affaf1f7e3e1c8d44d928438a0dcaae9f">mxGraphViewImageReader</a> (XmlReader reader, Color?<a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aed5809860eb0645637557fca52728c88">background</a>, int <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aff0fe532ec2953fdd42f95a77b39eaf6">border</a>, bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6d9801aae801ca3503ab23f5f7ff06cd">antiAlias</a>, bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af50cf355de821b22f1139224b7ab960b">cropping</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new GDI reader for the given display XML reader.  <a href="#affaf1f7e3e1c8d44d928438a0dcaae9f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">override <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#ac8356063dfd38867d0a9941c4211d57d">CreateCanvas</a> (Dictionary&lt; string, Object &gt; attrs)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the canvas to be used for rendering.  <a href="#ac8356063dfd38867d0a9941c4211d57d"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6ce1023a33d6eac6bc4abb5219110d89">Convert</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">mxGraphViewImageReader</a> viewReader)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates the image for the given display XML reader. For a given XmlReader, use the following code to create the view reader: new mxGraphViewImageReader(xmlReader, background, border, antiAlias);.  <a href="#a6ce1023a33d6eac6bc4abb5219110d89"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Color&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aed5809860eb0645637557fca52728c88">background</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the background color.  <a href="#aed5809860eb0645637557fca52728c88"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aff0fe532ec2953fdd42f95a77b39eaf6">border</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the border size. Default is 0.  <a href="#aff0fe532ec2953fdd42f95a77b39eaf6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6d9801aae801ca3503ab23f5f7ff06cd">antiAlias</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default is true.  <a href="#a6d9801aae801ca3503ab23f5f7ff06cd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af50cf355de821b22f1139224b7ab960b">cropping</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default is true.  <a href="#af50cf355de821b22f1139224b7ab960b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a0d0ca19582bd5c2b329ebcf456736100">clip</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies the optional clipping rectangle.  <a href="#a0d0ca19582bd5c2b329ebcf456736100"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Color&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a86163e41e964450a012d38a97954921f">Background</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors for the background property.  <a href="#a86163e41e964450a012d38a97954921f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#abbc386cb9f33f2f3328ce945d355e09b">Border</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors for the border property.  <a href="#abbc386cb9f33f2f3328ce945d355e09b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a1dc79898cc116600a6322fb83d13a4b1">AntiAlias</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors for the background property.  <a href="#a1dc79898cc116600a6322fb83d13a4b1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af3964c9aa47942ad27136fe899abf542">Cropping</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors for the cropping property.  <a href="#af3964c9aa47942ad27136fe899abf542"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a17d2074a21622207e42044624cf957be">Clip</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors for the clip property.  <a href="#a17d2074a21622207e42044624cf957be"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>A converter that renders display XML data onto a GDI canvas. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a5c2f0f08cef339f6498c1eed95a9295b"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader" ref="a5c2f0f08cef339f6498c1eed95a9295b" args="(XmlReader reader)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlReader&nbsp;</td>
    +          <td class="paramname"> <em>reader</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new GDI reader for the given display XML reader. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>reader</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a95325f9666af7bdd8bf1cbe6ba931f01"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader" ref="a95325f9666af7bdd8bf1cbe6ba931f01" args="(XmlReader reader, Color?background)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlReader&nbsp;</td>
    +          <td class="paramname"> <em>reader</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>background</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new GDI reader for the given display XML reader. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac2e1fcb9f0d3547fe75227924cd4f442"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader" ref="ac2e1fcb9f0d3547fe75227924cd4f442" args="(XmlReader reader, Color?background, int border)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlReader&nbsp;</td>
    +          <td class="paramname"> <em>reader</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>background</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>border</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new GDI reader for the given display XML reader. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a871b36b68a84b5af6134bdaa37067876"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader" ref="a871b36b68a84b5af6134bdaa37067876" args="(XmlReader reader, Color?background, int border, bool antiAlias)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlReader&nbsp;</td>
    +          <td class="paramname"> <em>reader</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>background</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>border</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>antiAlias</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new GDI reader for the given display XML reader. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="affaf1f7e3e1c8d44d928438a0dcaae9f"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader" ref="affaf1f7e3e1c8d44d928438a0dcaae9f" args="(XmlReader reader, Color?background, int border, bool antiAlias, bool cropping)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphViewImageReader::mxGraphViewImageReader </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlReader&nbsp;</td>
    +          <td class="paramname"> <em>reader</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>background</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>border</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>antiAlias</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>cropping</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new GDI reader for the given display XML reader. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a6ce1023a33d6eac6bc4abb5219110d89"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::Convert" ref="a6ce1023a33d6eac6bc4abb5219110d89" args="(mxGraphViewImageReader viewReader)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Image com::mxgraph::mxGraphViewImageReader::Convert </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">mxGraphViewImageReader</a>&nbsp;</td>
    +          <td class="paramname"> <em>viewReader</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates the image for the given display XML reader. For a given XmlReader, use the following code to create the view reader: new mxGraphViewImageReader(xmlReader, background, border, antiAlias);. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>viewReader</em>&nbsp;</td><td>Reader that contains the display XML.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns an image representing the display XML reader.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac8356063dfd38867d0a9941c4211d57d"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::CreateCanvas" ref="ac8356063dfd38867d0a9941c4211d57d" args="(Dictionary&lt; string, Object &gt; attrs)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">override <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> com::mxgraph::mxGraphViewImageReader::CreateCanvas </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>attrs</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the canvas to be used for rendering. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>attrs</em>&nbsp;</td><td>Specifies the attributes of the new canvas.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new canvas.</dd></dl>
    +
    +<p>Implements <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ae5c444871b99317d1d27268430a9016f">com::mxgraph::mxGraphViewReader</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a6d9801aae801ca3503ab23f5f7ff06cd"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::antiAlias" ref="a6d9801aae801ca3503ab23f5f7ff06cd" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6d9801aae801ca3503ab23f5f7ff06cd">com::mxgraph::mxGraphViewImageReader::antiAlias</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default is true. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aed5809860eb0645637557fca52728c88"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::background" ref="aed5809860eb0645637557fca52728c88" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Color <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aed5809860eb0645637557fca52728c88">com::mxgraph::mxGraphViewImageReader::background</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the background color. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aff0fe532ec2953fdd42f95a77b39eaf6"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::border" ref="aff0fe532ec2953fdd42f95a77b39eaf6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aff0fe532ec2953fdd42f95a77b39eaf6">com::mxgraph::mxGraphViewImageReader::border</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the border size. Default is 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0d0ca19582bd5c2b329ebcf456736100"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::clip" ref="a0d0ca19582bd5c2b329ebcf456736100" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a0d0ca19582bd5c2b329ebcf456736100">com::mxgraph::mxGraphViewImageReader::clip</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Specifies the optional clipping rectangle. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af50cf355de821b22f1139224b7ab960b"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::cropping" ref="af50cf355de821b22f1139224b7ab960b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af50cf355de821b22f1139224b7ab960b">com::mxgraph::mxGraphViewImageReader::cropping</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default is true. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a1dc79898cc116600a6322fb83d13a4b1"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::AntiAlias" ref="a1dc79898cc116600a6322fb83d13a4b1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphViewImageReader::AntiAlias<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Accessors for the background property. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a86163e41e964450a012d38a97954921f"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::Background" ref="a86163e41e964450a012d38a97954921f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Color com::mxgraph::mxGraphViewImageReader::Background<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Accessors for the background property. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abbc386cb9f33f2f3328ce945d355e09b"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::Border" ref="abbc386cb9f33f2f3328ce945d355e09b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxGraphViewImageReader::Border<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Accessors for the border property. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a17d2074a21622207e42044624cf957be"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::Clip" ref="a17d2074a21622207e42044624cf957be" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxGraphViewImageReader::Clip<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Accessors for the clip property. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af3964c9aa47942ad27136fe899abf542"></a><!-- doxytag: member="com::mxgraph::mxGraphViewImageReader::Cropping" ref="af3964c9aa47942ad27136fe899abf542" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxGraphViewImageReader::Cropping<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Accessors for the cropping property. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/reader/mxGraphViewImageReader.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewImageReader.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewImageReader.png
    new file mode 100644
    index 000000000..8269ddcce
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewImageReader.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewReader-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewReader-members.html
    new file mode 100644
    index 000000000..a75d9a6e4
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewReader-members.html
    @@ -0,0 +1,44 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraphViewReader Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a4ead1c024b80b0157e323050b273e402">canvas</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#af130379cf2af3dd403a3c32d88101ecc">Canvas</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ae5c444871b99317d1d27268430a9016f">CreateCanvas</a>(Dictionary&lt; string, Object &gt; attrs)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [pure virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a5e70037f507dd7a5b0c7ca075b58a494">mxGraphViewReader</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a67e55eda51751f24e7006792976abbdf">mxGraphViewReader</a>(XmlReader reader)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a78ed8a118dbce9e2638954de73a9304d">ParseElement</a>(string tagName, Dictionary&lt; string, Object &gt; attrs)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a9e04e66ca4cdf297abee69ef68baaa04">ParsePoints</a>(string pts)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ac83438fd2f9c2a4f13498192aa068140">ParseState</a>(mxCellState state, bool edge)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a27c8f5379f6aaa9e751eef7f716d9cc7">Read</a>(XmlReader reader)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a667a53ffe35f9601f814c2708d87de5e">scale</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewReader.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewReader.html
    new file mode 100644
    index 000000000..53fbf88e4
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewReader.html
    @@ -0,0 +1,322 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxGraphViewReader Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">mxGraphViewReader</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxGraphViewReader Class Reference</h1><!-- doxytag: class="com::mxgraph::mxGraphViewReader" -->
    +<p>An abstract converter that renders display XML data onto a canvas.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxGraphViewReader:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxGraphViewReader.png" usemap="#com::mxgraph::mxGraphViewReader_map" alt=""/>
    +  <map id="com::mxgraph::mxGraphViewReader_map" name="com::mxgraph::mxGraphViewReader_map">
    +<area href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html" alt="com::mxgraph::mxGraphViewImageReader" shape="rect" coords="0,56,247,80"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxGraphViewReader-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a5e70037f507dd7a5b0c7ca075b58a494">mxGraphViewReader</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new graph view reader.  <a href="#a5e70037f507dd7a5b0c7ca075b58a494"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a67e55eda51751f24e7006792976abbdf">mxGraphViewReader</a> (XmlReader reader)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new graph view reader and reads the given display XML data.  <a href="#a67e55eda51751f24e7006792976abbdf"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">abstract <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ae5c444871b99317d1d27268430a9016f">CreateCanvas</a> (Dictionary&lt; string, Object &gt; attrs)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the canvas to be used for rendering.  <a href="#ae5c444871b99317d1d27268430a9016f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a27c8f5379f6aaa9e751eef7f716d9cc7">Read</a> (XmlReader reader)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads the given display XML data and parses all elements.  <a href="#a27c8f5379f6aaa9e751eef7f716d9cc7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a78ed8a118dbce9e2638954de73a9304d">ParseElement</a> (string tagName, Dictionary&lt; string, Object &gt; attrs)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parses the given element and paints it onto the canvas.  <a href="#a78ed8a118dbce9e2638954de73a9304d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ac83438fd2f9c2a4f13498192aa068140">ParseState</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, bool edge)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parses the bounds, absolute points and label information from the style of the state into its respective fields and returns the label of the cell.  <a href="#ac83438fd2f9c2a4f13498192aa068140"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a9e04e66ca4cdf297abee69ef68baaa04">ParsePoints</a> (string pts)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parses the list of points into an object-oriented representation.  <a href="#a9e04e66ca4cdf297abee69ef68baaa04"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a4ead1c024b80b0157e323050b273e402">canvas</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the canvas to be used for rendering the graph.  <a href="#a4ead1c024b80b0157e323050b273e402"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a667a53ffe35f9601f814c2708d87de5e">scale</a> = 1</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the global scale of the graph. This is set just before createCanvas is called.  <a href="#a667a53ffe35f9601f814c2708d87de5e"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#af130379cf2af3dd403a3c32d88101ecc">Canvas</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the canvas that is used for rendering the graph.  <a href="#af130379cf2af3dd403a3c32d88101ecc"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>An abstract converter that renders display XML data onto a canvas. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a5e70037f507dd7a5b0c7ca075b58a494"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::mxGraphViewReader" ref="a5e70037f507dd7a5b0c7ca075b58a494" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphViewReader::mxGraphViewReader </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new graph view reader. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a67e55eda51751f24e7006792976abbdf"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::mxGraphViewReader" ref="a67e55eda51751f24e7006792976abbdf" args="(XmlReader reader)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxGraphViewReader::mxGraphViewReader </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlReader&nbsp;</td>
    +          <td class="paramname"> <em>reader</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new graph view reader and reads the given display XML data. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>reader</em>&nbsp;</td><td>Reader that represents the display XML data.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="ae5c444871b99317d1d27268430a9016f"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::CreateCanvas" ref="ae5c444871b99317d1d27268430a9016f" args="(Dictionary&lt; string, Object &gt; attrs)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">abstract <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> com::mxgraph::mxGraphViewReader::CreateCanvas </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>attrs</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [pure virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the canvas to be used for rendering. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>attrs</em>&nbsp;</td><td>Specifies the attributes of the new canvas.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new canvas.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#ac8356063dfd38867d0a9941c4211d57d">com::mxgraph::mxGraphViewImageReader</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a78ed8a118dbce9e2638954de73a9304d"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::ParseElement" ref="a78ed8a118dbce9e2638954de73a9304d" args="(string tagName, Dictionary&lt; string, Object &gt; attrs)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphViewReader::ParseElement </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>tagName</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>attrs</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Parses the given element and paints it onto the canvas. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>tagName</em>&nbsp;</td><td>Name of the node to be parsed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attrs</em>&nbsp;</td><td>Attributes of the node to be parsed.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9e04e66ca4cdf297abee69ef68baaa04"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::ParsePoints" ref="a9e04e66ca4cdf297abee69ef68baaa04" args="(string pts)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&gt; com::mxgraph::mxGraphViewReader::ParsePoints </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>pts</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Parses the list of points into an object-oriented representation. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>pts</em>&nbsp;</td><td>String containing a list of points.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the points as a list of mxPoints.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac83438fd2f9c2a4f13498192aa068140"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::ParseState" ref="ac83438fd2f9c2a4f13498192aa068140" args="(mxCellState state, bool edge)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxGraphViewReader::ParseState </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>edge</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Parses the bounds, absolute points and label information from the style of the state into its respective fields and returns the label of the cell. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a27c8f5379f6aaa9e751eef7f716d9cc7"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::Read" ref="a27c8f5379f6aaa9e751eef7f716d9cc7" args="(XmlReader reader)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxGraphViewReader::Read </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlReader&nbsp;</td>
    +          <td class="paramname"> <em>reader</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reads the given display XML data and parses all elements. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>reader</em>&nbsp;</td><td>Reader that represents the display XML data.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a4ead1c024b80b0157e323050b273e402"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::canvas" ref="a4ead1c024b80b0157e323050b273e402" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a4ead1c024b80b0157e323050b273e402">com::mxgraph::mxGraphViewReader::canvas</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the canvas to be used for rendering the graph. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a667a53ffe35f9601f814c2708d87de5e"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::scale" ref="a667a53ffe35f9601f814c2708d87de5e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a667a53ffe35f9601f814c2708d87de5e">com::mxgraph::mxGraphViewReader::scale</a> = 1<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the global scale of the graph. This is set just before createCanvas is called. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="af130379cf2af3dd403a3c32d88101ecc"></a><!-- doxytag: member="com::mxgraph::mxGraphViewReader::Canvas" ref="af130379cf2af3dd403a3c32d88101ecc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> com::mxgraph::mxGraphViewReader::Canvas<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the canvas that is used for rendering the graph. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/reader/mxGraphViewReader.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewReader.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewReader.png
    new file mode 100644
    index 000000000..6cb911dd0
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxGraphViewReader.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageBundle-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageBundle-members.html
    new file mode 100644
    index 000000000..82def99c5
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageBundle-members.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxImageBundle Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">com::mxgraph::mxImageBundle</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a2eb0c5995f3ae3ce1b6bb68eeb48f72b">GetImage</a>(String key)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">com::mxgraph::mxImageBundle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a171163596816aff46c669d5bb167b4b6">Images</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">com::mxgraph::mxImageBundle</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a8bfb4d67c74602df82b8b9b6e4ee6967">images</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">com::mxgraph::mxImageBundle</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#ad60ca8c5a514a3864cac932a6b2d64cc">PutImage</a>(String key, String value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">com::mxgraph::mxImageBundle</a></td><td><code> [inline]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageBundle.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageBundle.html
    new file mode 100644
    index 000000000..2781cf21a
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageBundle.html
    @@ -0,0 +1,146 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxImageBundle Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxImageBundle Class Reference</h1><!-- doxytag: class="com::mxgraph::mxImageBundle" -->
    +<p>Maps from keys to base64 encoded images or file locations. All values must be URLs or use the format data:image/format followed by a comma and the base64 encoded image data, eg. "data:image/gif,XYZ", where XYZ is the base64 encoded image data.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxImageBundle-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#ad60ca8c5a514a3864cac932a6b2d64cc">PutImage</a> (String key, String value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the specified entry to the map.  <a href="#ad60ca8c5a514a3864cac932a6b2d64cc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a2eb0c5995f3ae3ce1b6bb68eeb48f72b">GetImage</a> (String key)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for the given key.  <a href="#a2eb0c5995f3ae3ce1b6bb68eeb48f72b"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; String, String &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a8bfb4d67c74602df82b8b9b6e4ee6967">images</a> = new Dictionary&lt;String, String&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from keys to images.  <a href="#a8bfb4d67c74602df82b8b9b6e4ee6967"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; String, String &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a171163596816aff46c669d5bb167b4b6">Images</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the images.  <a href="#a171163596816aff46c669d5bb167b4b6"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Maps from keys to base64 encoded images or file locations. All values must be URLs or use the format data:image/format followed by a comma and the base64 encoded image data, eg. "data:image/gif,XYZ", where XYZ is the base64 encoded image data. </p>
    +<p>To add a new image bundle to an existing graph, the following code is used:</p>
    +<p><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html" title="Maps from keys to base64 encoded images or file locations. All values must be URLs...">mxImageBundle</a> bundle = new mxImageBundle(); bundle.PutImage("myImage", "data:image/gif,R0lGODlhEAAQAMIGAAAAAICAAICAgP" + "//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAA" + "EAAQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hi" + "laSSASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs="); graph.AddImageBundle(bundle);</p>
    +<p>The image can then be referenced in any cell style using image=myImage.</p>
    +<p>To convert a given Image to a base64 encoded String, the following code can be used:</p>
    +<p>MemoryStream ms = new System.IO.MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); byte[] data = ms.ToArray(); Console.WriteLine("base64="+Convert.ToBase64String(data));</p>
    +<p>The value is decoded in <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a30ccc3180a67c12649dbba8212918215" title="Loads an image from the local filesystem, a data URI or any other URL.">mxUtils.LoadImage</a>. The keys for images are resolved and the short format above is converted to a data URI in mxGraph.postProcessCellStyle. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a2eb0c5995f3ae3ce1b6bb68eeb48f72b"></a><!-- doxytag: member="com::mxgraph::mxImageBundle::GetImage" ref="a2eb0c5995f3ae3ce1b6bb68eeb48f72b" args="(String key)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String com::mxgraph::mxImageBundle::GetImage </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>key</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for the given key. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad60ca8c5a514a3864cac932a6b2d64cc"></a><!-- doxytag: member="com::mxgraph::mxImageBundle::PutImage" ref="ad60ca8c5a514a3864cac932a6b2d64cc" args="(String key, String value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxImageBundle::PutImage </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds the specified entry to the map. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a8bfb4d67c74602df82b8b9b6e4ee6967"></a><!-- doxytag: member="com::mxgraph::mxImageBundle::images" ref="a8bfb4d67c74602df82b8b9b6e4ee6967" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;String, String&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a8bfb4d67c74602df82b8b9b6e4ee6967">com::mxgraph::mxImageBundle::images</a> = new Dictionary&lt;String, String&gt;()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from keys to images. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a171163596816aff46c669d5bb167b4b6"></a><!-- doxytag: member="com::mxgraph::mxImageBundle::Images" ref="a171163596816aff46c669d5bb167b4b6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;String, String&gt; com::mxgraph::mxImageBundle::Images<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the images. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/utils/mxImageBundle.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageCanvas-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageCanvas-members.html
    new file mode 100644
    index 000000000..3efdb7951
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageCanvas-members.html
    @@ -0,0 +1,45 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxImageCanvas Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a25a1291905e89f24bc2c8258d9fb8b7e">canvas</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a10051aedcb8f9e1adb76f165757fcdbb">Destroy</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a141e199ea658499f9ee7cb614312de73">DrawCell</a>(mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a8009e58f10e849bc7bb8fb0b22b9d67e">DrawLabel</a>(string text, mxCellState state, bool html)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#adb99fa4c94b668fe11279378016f8bfc">GdiCanvas</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a2bde172bcc4451686701176cf8917c9d">Image</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a64ac8f6c83af2274c4729a6df9878eba">image</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#ac47f0aafa425843b1af72f4a574964ee">mxImageCanvas</a>(mxGdiCanvas canvas, int width, int height, Color?background, bool antiAlias)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a058a4a22257f9f098f05c37772edb489">previousGraphics</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a32476a0f95314df5178d7336fde35349">Scale</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a2267bc84051cea13c3285d29804b8fc7">Translate</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageCanvas.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageCanvas.html
    new file mode 100644
    index 000000000..fab6da72f
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageCanvas.html
    @@ -0,0 +1,327 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxImageCanvas Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">mxImageCanvas</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxImageCanvas Class Reference</h1><!-- doxytag: class="com::mxgraph::mxImageCanvas" --><!-- doxytag: inherits="com::mxgraph::mxICanvas" -->
    +<p>Implements a canvas that draws onto an image.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxImageCanvas:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxImageCanvas.png" usemap="#com::mxgraph::mxImageCanvas_map" alt=""/>
    +  <map id="com::mxgraph::mxImageCanvas_map" name="com::mxgraph::mxImageCanvas_map">
    +<area href="interfacecom_1_1mxgraph_1_1mxICanvas.html" alt="com::mxgraph::mxICanvas" shape="rect" coords="0,0,186,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxImageCanvas-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#ac47f0aafa425843b1af72f4a574964ee">mxImageCanvas</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a> <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a25a1291905e89f24bc2c8258d9fb8b7e">canvas</a>, int width, int height, Color?background, bool antiAlias)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a141e199ea658499f9ee7cb614312de73">DrawCell</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f" title="Draws the given cell.">com.mxgraph.mxICanvas.DrawCell()</a>  <a href="#a141e199ea658499f9ee7cb614312de73"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a8009e58f10e849bc7bb8fb0b22b9d67e">DrawLabel</a> (string text, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, bool html)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79" title="Draws the given label.">com.mxgraph.mxICanvas.DrawLabel()</a>  <a href="#a8009e58f10e849bc7bb8fb0b22b9d67e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a10051aedcb8f9e1adb76f165757fcdbb">Destroy</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroys this canvas and all allocated resources.  <a href="#a10051aedcb8f9e1adb76f165757fcdbb"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a25a1291905e89f24bc2c8258d9fb8b7e">canvas</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inner canvas used for the actual rendering.  <a href="#a25a1291905e89f24bc2c8258d9fb8b7e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Graphics&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a058a4a22257f9f098f05c37772edb489">previousGraphics</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stores the previous graphics reference of the inner canvas.  <a href="#a058a4a22257f9f098f05c37772edb489"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a64ac8f6c83af2274c4729a6df9878eba">image</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stores the image that holds the graphics.  <a href="#a64ac8f6c83af2274c4729a6df9878eba"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#adb99fa4c94b668fe11279378016f8bfc">GdiCanvas</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the inner canvas.  <a href="#adb99fa4c94b668fe11279378016f8bfc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a2bde172bcc4451686701176cf8917c9d">Image</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the image that hold the graphics.  <a href="#a2bde172bcc4451686701176cf8917c9d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Point&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a2267bc84051cea13c3285d29804b8fc7">Translate</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488" title="Sets or returns the user object of the cell.">com.mxgraph.mxICanvas.Translate</a>  <a href="#a2267bc84051cea13c3285d29804b8fc7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a32476a0f95314df5178d7336fde35349">Scale</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488" title="Sets or returns the user object of the cell.">com.mxgraph.mxICanvas.Translate</a>  <a href="#a32476a0f95314df5178d7336fde35349"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a canvas that draws onto an image. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="ac47f0aafa425843b1af72f4a574964ee"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::mxImageCanvas" ref="ac47f0aafa425843b1af72f4a574964ee" args="(mxGdiCanvas canvas, int width, int height, Color?background, bool antiAlias)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxImageCanvas::mxImageCanvas </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a>&nbsp;</td>
    +          <td class="paramname"> <em>canvas</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>height</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>background</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>antiAlias</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>canvas</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>background</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>antiAlias</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a10051aedcb8f9e1adb76f165757fcdbb"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::Destroy" ref="a10051aedcb8f9e1adb76f165757fcdbb" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Image com::mxgraph::mxImageCanvas::Destroy </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Destroys this canvas and all allocated resources. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a141e199ea658499f9ee7cb614312de73"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::DrawCell" ref="a141e199ea658499f9ee7cb614312de73" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxImageCanvas::DrawCell </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f" title="Draws the given cell.">com.mxgraph.mxICanvas.DrawCell()</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f">com::mxgraph::mxICanvas</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8009e58f10e849bc7bb8fb0b22b9d67e"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::DrawLabel" ref="a8009e58f10e849bc7bb8fb0b22b9d67e" args="(string text, mxCellState state, bool html)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxImageCanvas::DrawLabel </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>html</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79" title="Draws the given label.">com.mxgraph.mxICanvas.DrawLabel()</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79">com::mxgraph::mxICanvas</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a25a1291905e89f24bc2c8258d9fb8b7e"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::canvas" ref="a25a1291905e89f24bc2c8258d9fb8b7e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a> <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a25a1291905e89f24bc2c8258d9fb8b7e">com::mxgraph::mxImageCanvas::canvas</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Inner canvas used for the actual rendering. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a64ac8f6c83af2274c4729a6df9878eba"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::image" ref="a64ac8f6c83af2274c4729a6df9878eba" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Image <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a64ac8f6c83af2274c4729a6df9878eba">com::mxgraph::mxImageCanvas::image</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Stores the image that holds the graphics. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a058a4a22257f9f098f05c37772edb489"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::previousGraphics" ref="a058a4a22257f9f098f05c37772edb489" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Graphics <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a058a4a22257f9f098f05c37772edb489">com::mxgraph::mxImageCanvas::previousGraphics</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Stores the previous graphics reference of the inner canvas. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="adb99fa4c94b668fe11279378016f8bfc"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::GdiCanvas" ref="adb99fa4c94b668fe11279378016f8bfc" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a> com::mxgraph::mxImageCanvas::GdiCanvas<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the inner canvas. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2bde172bcc4451686701176cf8917c9d"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::Image" ref="a2bde172bcc4451686701176cf8917c9d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Image com::mxgraph::mxImageCanvas::Image<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the image that hold the graphics. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a32476a0f95314df5178d7336fde35349"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::Scale" ref="a32476a0f95314df5178d7336fde35349" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxImageCanvas::Scale<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488" title="Sets or returns the user object of the cell.">com.mxgraph.mxICanvas.Translate</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ab393f94448d87517dae0133e57100045">com::mxgraph::mxICanvas</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2267bc84051cea13c3285d29804b8fc7"></a><!-- doxytag: member="com::mxgraph::mxImageCanvas::Translate" ref="a2267bc84051cea13c3285d29804b8fc7" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Point com::mxgraph::mxImageCanvas::Translate<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>see <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488" title="Sets or returns the user object of the cell.">com.mxgraph.mxICanvas.Translate</a> </p>
    +
    +<p>Implements <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488">com::mxgraph::mxICanvas</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/canvas/mxImageCanvas.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageCanvas.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageCanvas.png
    new file mode 100644
    index 000000000..f9aced3e0
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxImageCanvas.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxModelCodec-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxModelCodec-members.html
    new file mode 100644
    index 000000000..c10005e28
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxModelCodec-members.html
    @@ -0,0 +1,78 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxModelCodec Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">com::mxgraph::mxModelCodec</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a400b8c95027f3e65c8f6bb7365346e31">AddObjectValue</a>(Object obj, String fieldname, Object value, Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af52418b7e8af59ebf7892725dfda0c99">AfterDecode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a190fb06cd2ebe7953a6766f71f0f4a5d">AfterEncode</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a64513ab4228e528bfd216c08def3ec6c">BeforeDecode</a>(mxCodec dec, XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">com::mxgraph::mxModelCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa58c9db1a76eca9a93196b3d618560a5">BeforeEncode</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a9916f40c70806d0f2dbce90d2bc0a228">CloneTemplate</a>(XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af10ffcb1ec0726e3ce520e450eddd1a9">ConvertValueFromXml</a>(Type type, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a668ec4f16b4018010b78dfac5da202a1">ConvertValueToXml</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#add2542d39061256bd5652925cd14ed99">Decode</a>(mxCodec dec, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a121ba530f191fa675cef1199783d3b4c">Decode</a>(mxCodec dec, XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a3995ca8eb8b49ea3369ce78784da6886">DecodeAttribute</a>(mxCodec dec, XmlNode attr, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6c43995dfa09e94c15237bb5bcb956bd">DecodeAttributes</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a26402e6fab4b83efae915a1d241a9139">DecodeChild</a>(mxCodec dec, XmlNode child, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a0fae9f4253f6b903b13a0342d27b654d">DecodeChildren</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8d19152cfe1b7a65a613ecc823c0ff6c">DecodeNode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa8e373e16bb59c00a573b1bebe1a3934">Encode</a>(mxCodec enc, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac044bc0648d29bbde6a826c22ca84a1b">EncodeElements</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afe487cf09d38efd8cbfbbf92810419fa">EncodeFields</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#abe01c87a42e5568047c44c78ba0b2a2d">EncodeObject</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">com::mxgraph::mxModelCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac0fe160b3b14184206fb33abda5b6c20">EncodeValue</a>(mxCodec enc, Object obj, string fieldname, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">exclude</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7a33b05e10c507d6d47fcf1c152e51d4">GetAttributeName</a>(string fieldname)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a234002bf9a84ccc51210cbf2744d1dbf">GetFieldName</a>(string attributename)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a414f565a39689bd929124c2003dd41aa">GetFieldTemplate</a>(Object obj, String fieldname, XmlNode child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ab4c4b9a8a57ef55d3923da107289a05e">GetFieldValue</a>(Object obj, string name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a62ea0063541fd986ab33a1b098780abf">GetName</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">idrefs</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a58410c644edac27eb89acd3f3be8c6b3">IsExcluded</a>(Object obj, string attr, Object value, bool write)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af3ef76d421c61dfe849f6e09252fc630">IsPrimitiveValue</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a369877eb840c88cb3b321c93e22a373b">IsReference</a>(Object obj, string attr, Object value, bool write)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">mapping</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a0f08ae910decb08326e279aa15253329">mxModelCodec</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">com::mxgraph::mxModelCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a127ded19ebb7d5efeacfce244f0f751a">mxModelCodec</a>(Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">com::mxgraph::mxModelCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a3954e4835954a01b46671fd802a13d42">mxModelCodec</a>(Object template, String[] exclude, String[] idrefs, Dictionary&lt; string, string &gt; mapping)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">com::mxgraph::mxModelCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abbddb3957b955b41d4fbcd6e63bbb42d">mxObjectCodec</a>(Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a38b4f86b0ffb810f94f1864c6f386a8f">mxObjectCodec</a>(Object template, string[] exclude, string[] idrefs, Dictionary&lt; string, string &gt; mapping)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afd7f23ec8879f314b0729ac866201683">ProcessInclude</a>(mxCodec dec, XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a897b6935339cdb9a47f12b5f926b58f9">reverse</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a66dc2344eab9b42aac159cdd3967cd8c">SetFieldValue</a>(Object obj, string name, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6dbad90a78d8e5d2bc3dd6fbec6d4841">Template</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#addeb537a505b24d8fd813e4d05df4595">WriteAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abc3bef1feb53dc34ed9e8ba93da5edd1">WriteComplexAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7831f956126ef0b5da4920824d9b9bb5">WritePrimitiveAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxModelCodec.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxModelCodec.html
    new file mode 100644
    index 000000000..c23da6dd7
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxModelCodec.html
    @@ -0,0 +1,225 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxModelCodec Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">mxModelCodec</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxModelCodec Class Reference</h1><!-- doxytag: class="com::mxgraph::mxModelCodec" --><!-- doxytag: inherits="com::mxgraph::mxObjectCodec" -->
    +<p>Codec for mxGraphModels. This class is created and registered dynamically at load time and used implicitely via <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> and the <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a>.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxModelCodec:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxModelCodec.png" usemap="#com::mxgraph::mxModelCodec_map" alt=""/>
    +  <map id="com::mxgraph::mxModelCodec_map" name="com::mxgraph::mxModelCodec_map">
    +<area href="classcom_1_1mxgraph_1_1mxObjectCodec.html" alt="com::mxgraph::mxObjectCodec" shape="rect" coords="0,0,184,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxModelCodec-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a0f08ae910decb08326e279aa15253329">mxModelCodec</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new model codec.  <a href="#a0f08ae910decb08326e279aa15253329"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a127ded19ebb7d5efeacfce244f0f751a">mxModelCodec</a> (Object <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new model codec for the given template.  <a href="#a127ded19ebb7d5efeacfce244f0f751a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a3954e4835954a01b46671fd802a13d42">mxModelCodec</a> (Object <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a>, String[] <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">exclude</a>, String[] <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">idrefs</a>, Dictionary&lt; string, string &gt; <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">mapping</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new model codec for the given arguments.  <a href="#a3954e4835954a01b46671fd802a13d42"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">override XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a64513ab4228e528bfd216c08def3ec6c">BeforeDecode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node, Object into)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads the cells into the graph model. All cells are children of the root element in the node.  <a href="#a64513ab4228e528bfd216c08def3ec6c"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">override void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#abe01c87a42e5568047c44c78ba0b2a2d">EncodeObject</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encodes the given <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html" title="Implements a graph model. The graph model acts as a wrapper around the cells which...">mxGraphModel</a> by writing a (flat) XML sequence of cell nodes as produced by the <a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html" title="Codec for mxCells. This class is created and registered dynamically at load time...">mxCellCodec</a>. The sequence is wrapped-up in a node with the name root.  <a href="#abe01c87a42e5568047c44c78ba0b2a2d"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Codec for mxGraphModels. This class is created and registered dynamically at load time and used implicitely via <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> and the <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a>. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a0f08ae910decb08326e279aa15253329"></a><!-- doxytag: member="com::mxgraph::mxModelCodec::mxModelCodec" ref="a0f08ae910decb08326e279aa15253329" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxModelCodec::mxModelCodec </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new model codec. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a127ded19ebb7d5efeacfce244f0f751a"></a><!-- doxytag: member="com::mxgraph::mxModelCodec::mxModelCodec" ref="a127ded19ebb7d5efeacfce244f0f751a" args="(Object template)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxModelCodec::mxModelCodec </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>template</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new model codec for the given template. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3954e4835954a01b46671fd802a13d42"></a><!-- doxytag: member="com::mxgraph::mxModelCodec::mxModelCodec" ref="a3954e4835954a01b46671fd802a13d42" args="(Object template, String[] exclude, String[] idrefs, Dictionary&lt; string, string &gt; mapping)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxModelCodec::mxModelCodec </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>template</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String[]&nbsp;</td>
    +          <td class="paramname"> <em>exclude</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String[]&nbsp;</td>
    +          <td class="paramname"> <em>idrefs</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, string &gt;&nbsp;</td>
    +          <td class="paramname"> <em>mapping</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new model codec for the given arguments. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a64513ab4228e528bfd216c08def3ec6c"></a><!-- doxytag: member="com::mxgraph::mxModelCodec::BeforeDecode" ref="a64513ab4228e528bfd216c08def3ec6c" args="(mxCodec dec, XmlNode node, Object into)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">override XmlNode com::mxgraph::mxModelCodec::BeforeDecode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>into</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reads the cells into the graph model. All cells are children of the root element in the node. </p>
    +
    +<p>Reimplemented from <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aef2e78e13b8dd5895ac272a0542ce4f2">com::mxgraph::mxObjectCodec</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abe01c87a42e5568047c44c78ba0b2a2d"></a><!-- doxytag: member="com::mxgraph::mxModelCodec::EncodeObject" ref="abe01c87a42e5568047c44c78ba0b2a2d" args="(mxCodec enc, Object obj, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">override void com::mxgraph::mxModelCodec::EncodeObject </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Encodes the given <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html" title="Implements a graph model. The graph model acts as a wrapper around the cells which...">mxGraphModel</a> by writing a (flat) XML sequence of cell nodes as produced by the <a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html" title="Codec for mxCells. This class is created and registered dynamically at load time...">mxCellCodec</a>. The sequence is wrapped-up in a node with the name root. </p>
    +
    +<p>Reimplemented from <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ade4c4a85d7ed2162f9566c8df931d250">com::mxgraph::mxObjectCodec</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/io/mxModelCodec.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxModelCodec.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxModelCodec.png
    new file mode 100644
    index 000000000..8e5f0f308
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxModelCodec.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxObjectCodec-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxObjectCodec-members.html
    new file mode 100644
    index 000000000..0ef1e76bc
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxObjectCodec-members.html
    @@ -0,0 +1,75 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxObjectCodec Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a400b8c95027f3e65c8f6bb7365346e31">AddObjectValue</a>(Object obj, String fieldname, Object value, Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af52418b7e8af59ebf7892725dfda0c99">AfterDecode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a190fb06cd2ebe7953a6766f71f0f4a5d">AfterEncode</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aef2e78e13b8dd5895ac272a0542ce4f2">BeforeDecode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa58c9db1a76eca9a93196b3d618560a5">BeforeEncode</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a9916f40c70806d0f2dbce90d2bc0a228">CloneTemplate</a>(XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af10ffcb1ec0726e3ce520e450eddd1a9">ConvertValueFromXml</a>(Type type, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a668ec4f16b4018010b78dfac5da202a1">ConvertValueToXml</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#add2542d39061256bd5652925cd14ed99">Decode</a>(mxCodec dec, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a121ba530f191fa675cef1199783d3b4c">Decode</a>(mxCodec dec, XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a3995ca8eb8b49ea3369ce78784da6886">DecodeAttribute</a>(mxCodec dec, XmlNode attr, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6c43995dfa09e94c15237bb5bcb956bd">DecodeAttributes</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a26402e6fab4b83efae915a1d241a9139">DecodeChild</a>(mxCodec dec, XmlNode child, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a0fae9f4253f6b903b13a0342d27b654d">DecodeChildren</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8d19152cfe1b7a65a613ecc823c0ff6c">DecodeNode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa8e373e16bb59c00a573b1bebe1a3934">Encode</a>(mxCodec enc, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac044bc0648d29bbde6a826c22ca84a1b">EncodeElements</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afe487cf09d38efd8cbfbbf92810419fa">EncodeFields</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ade4c4a85d7ed2162f9566c8df931d250">EncodeObject</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac0fe160b3b14184206fb33abda5b6c20">EncodeValue</a>(mxCodec enc, Object obj, string fieldname, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">exclude</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7a33b05e10c507d6d47fcf1c152e51d4">GetAttributeName</a>(string fieldname)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a234002bf9a84ccc51210cbf2744d1dbf">GetFieldName</a>(string attributename)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a414f565a39689bd929124c2003dd41aa">GetFieldTemplate</a>(Object obj, String fieldname, XmlNode child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ab4c4b9a8a57ef55d3923da107289a05e">GetFieldValue</a>(Object obj, string name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a62ea0063541fd986ab33a1b098780abf">GetName</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">idrefs</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a58410c644edac27eb89acd3f3be8c6b3">IsExcluded</a>(Object obj, string attr, Object value, bool write)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af3ef76d421c61dfe849f6e09252fc630">IsPrimitiveValue</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a369877eb840c88cb3b321c93e22a373b">IsReference</a>(Object obj, string attr, Object value, bool write)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">mapping</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abbddb3957b955b41d4fbcd6e63bbb42d">mxObjectCodec</a>(Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a38b4f86b0ffb810f94f1864c6f386a8f">mxObjectCodec</a>(Object template, string[] exclude, string[] idrefs, Dictionary&lt; string, string &gt; mapping)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afd7f23ec8879f314b0729ac866201683">ProcessInclude</a>(mxCodec dec, XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a897b6935339cdb9a47f12b5f926b58f9">reverse</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a66dc2344eab9b42aac159cdd3967cd8c">SetFieldValue</a>(Object obj, string name, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6dbad90a78d8e5d2bc3dd6fbec6d4841">Template</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#addeb537a505b24d8fd813e4d05df4595">WriteAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abc3bef1feb53dc34ed9e8ba93da5edd1">WriteComplexAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7831f956126ef0b5da4920824d9b9bb5">WritePrimitiveAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxObjectCodec.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxObjectCodec.html
    new file mode 100644
    index 000000000..70a230876
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxObjectCodec.html
    @@ -0,0 +1,1544 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxObjectCodec Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxObjectCodec Class Reference</h1><!-- doxytag: class="com::mxgraph::mxObjectCodec" -->
    +<p>Generic codec for C# objects. See below for a detailed description of the encoding/decoding scheme. Note: Since booleans are numbers in JavaScript, all boolean values are encoded into 1 for true and 0 for false.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxObjectCodec:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxObjectCodec.png" usemap="#com::mxgraph::mxObjectCodec_map" alt=""/>
    +  <map id="com::mxgraph::mxObjectCodec_map" name="com::mxgraph::mxObjectCodec_map">
    +<area href="classcom_1_1mxgraph_1_1mxCellCodec.html" alt="com::mxgraph::mxCellCodec" shape="rect" coords="0,56,205,80"/>
    +<area href="classcom_1_1mxgraph_1_1mxModelCodec.html" alt="com::mxgraph::mxModelCodec" shape="rect" coords="215,56,420,80"/>
    +<area href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html" alt="com::mxgraph::mxStylesheetCodec" shape="rect" coords="430,56,635,80"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxObjectCodec-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abbddb3957b955b41d4fbcd6e63bbb42d">mxObjectCodec</a> (Object <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new codec for the specified template object.  <a href="#abbddb3957b955b41d4fbcd6e63bbb42d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a38b4f86b0ffb810f94f1864c6f386a8f">mxObjectCodec</a> (Object <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a>, string[] <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">exclude</a>, string[] <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">idrefs</a>, Dictionary&lt; string, string &gt; <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">mapping</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new codec for the specified template object. The variables in the optional exclude array are ignored by the codec. Variables in the optional idrefs array are turned into references in the XML. The optional mapping may be used to map from variable names to XML attributes.  <a href="#a38b4f86b0ffb810f94f1864c6f386a8f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a62ea0063541fd986ab33a1b098780abf">GetName</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the name used for the nodenames and lookup of the codec when classes are encoded and nodes are decoded. For classes to work with this the codec registry automatically adds an alias for the classname if that is different than what this returns. The default implementation returns the classname of the template class.  <a href="#a62ea0063541fd986ab33a1b098780abf"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a58410c644edac27eb89acd3f3be8c6b3">IsExcluded</a> (Object obj, string attr, Object value, bool write)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given attribute is to be ignored by the codec. This implementation returns true if the given fieldname is in exclude.  <a href="#a58410c644edac27eb89acd3f3be8c6b3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a369877eb840c88cb3b321c93e22a373b">IsReference</a> (Object obj, string attr, Object value, bool write)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given fieldname is to be treated as a textual reference (ID). This implementation returns true if the given fieldname is in idrefs.  <a href="#a369877eb840c88cb3b321c93e22a373b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa8e373e16bb59c00a573b1bebe1a3934">Encode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encodes the specified object and returns a node representing then given object. Calls beforeEncode after creating the node and afterEncode with the resulting node after processing. Enc is a reference to the calling encoder. It is used to encode complex objects and create references.  <a href="#aa8e373e16bb59c00a573b1bebe1a3934"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa58c9db1a76eca9a93196b3d618560a5">BeforeEncode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hook for subclassers to pre-process the object before encoding. This returns the input object. The return value of this function is used in encode to perform the default encoding into the given node.  <a href="#aa58c9db1a76eca9a93196b3d618560a5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a190fb06cd2ebe7953a6766f71f0f4a5d">AfterEncode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hook for subclassers to Receive-process the node for the given object after encoding and return the Receive-processed node. This implementation returns the input node. The return value of this method is returned to the encoder from encode.  <a href="#a190fb06cd2ebe7953a6766f71f0f4a5d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#add2542d39061256bd5652925cd14ed99">Decode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parses the given node into the object or returns a new object representing the given node.  <a href="#add2542d39061256bd5652925cd14ed99"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a121ba530f191fa675cef1199783d3b4c">Decode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node, Object into)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parses the given node into the object or returns a new object representing the given node. Dec is a reference to the calling decoder. It is used to decode complex objects and resolve references. If a node has an id attribute then the object cache is checked for the object. If the object is not yet in the cache then it is constructed using the constructor of template and cached in <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a9f983ce7275a1005de496ee15093a6f0" title="Maps from IDs to objects.">mxCodec.objects</a>. This implementation decodes all attributes and childs of a node according to the following rules:</p>
    +<ul>
    +<li>If the variable name is in exclude or if the attribute name is "id" or "as" then it is ignored.</li>
    +<li>If the variable name is in idrefs then mxCodec.getObject is used to replace the reference with an object.</li>
    +<li>The variable name is mapped using a reverse mapping.</li>
    +<li>If the value has a child node, then the codec is used to create a child object with the variable name taken from the "as" attribute.</li>
    +<li>If the object is an array and the variable name is empty then the value or child object is appended to the array.</li>
    +<li>If an add child has no value or the object is not an array then the child text content is evaluated using mxUtils.eval. If no object exists for an ID in idrefs a warning is issued using mxLog.warn. Returns the resulting object that represents the given XML node or the configured given object. </li>
    +</ul>
    + <a href="#a121ba530f191fa675cef1199783d3b4c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afd7f23ec8879f314b0729ac866201683">ProcessInclude</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node, Object into)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aef2e78e13b8dd5895ac272a0542ce4f2">BeforeDecode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode. The object is created based on the template in the calling method and is never null. This implementation returns the input node. The return value of this function is used in decode to perform the default decoding into the given object.  <a href="#aef2e78e13b8dd5895ac272a0542ce4f2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af52418b7e8af59ebf7892725dfda0c99">AfterDecode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hook for subclassers to Receive-process the object after decoding. This implementation returns the given object without any changes. The return value of this method is returned to the decoder from decode.  <a href="#af52418b7e8af59ebf7892725dfda0c99"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a9916f40c70806d0f2dbce90d2bc0a228">CloneTemplate</a> (XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a new instance of the template object for representing the given node.  <a href="#a9916f40c70806d0f2dbce90d2bc0a228"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ade4c4a85d7ed2162f9566c8df931d250">EncodeObject</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encodes the value of each member in then given obj into the given node using encodeFields and encodeElements.  <a href="#ade4c4a85d7ed2162f9566c8df931d250"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afe487cf09d38efd8cbfbbf92810419fa">EncodeFields</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encodes the members of the given object into the given node.  <a href="#afe487cf09d38efd8cbfbbf92810419fa"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac044bc0648d29bbde6a826c22ca84a1b">EncodeElements</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encodes the child objects of arrays, dictionaries and enumerables.  <a href="#ac044bc0648d29bbde6a826c22ca84a1b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac0fe160b3b14184206fb33abda5b6c20">EncodeValue</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, string fieldname, Object value, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node.  <a href="#ac0fe160b3b14184206fb33abda5b6c20"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af3ef76d421c61dfe849f6e09252fc630">IsPrimitiveValue</a> (Object value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given object is a primitive value.  <a href="#af3ef76d421c61dfe849f6e09252fc630"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="addeb537a505b24d8fd813e4d05df4595"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::WriteAttribute" ref="addeb537a505b24d8fd813e4d05df4595" args="(mxCodec enc, Object obj, string attr, Object value, XmlNode node)" -->
    +void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#addeb537a505b24d8fd813e4d05df4595">WriteAttribute</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, string attr, Object value, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes the given value into node using writePrimitiveAttribute or writeComplexAttribute depending on the type of the value. <br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7831f956126ef0b5da4920824d9b9bb5">WritePrimitiveAttribute</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, string attr, Object value, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes the given value as an attribute of the given node.  <a href="#a7831f956126ef0b5da4920824d9b9bb5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abc3bef1feb53dc34ed9e8ba93da5edd1">WriteComplexAttribute</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj, string attr, Object value, XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes the given value as a child node of the given node.  <a href="#abc3bef1feb53dc34ed9e8ba93da5edd1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a668ec4f16b4018010b78dfac5da202a1">ConvertValueToXml</a> (Object value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts true to "1" and false to "0". All other values are ignored.  <a href="#a668ec4f16b4018010b78dfac5da202a1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">virtual Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af10ffcb1ec0726e3ce520e450eddd1a9">ConvertValueFromXml</a> (Type type, Object value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts XML attribute values to object of the given type.  <a href="#af10ffcb1ec0726e3ce520e450eddd1a9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7a33b05e10c507d6d47fcf1c152e51d4">GetAttributeName</a> (string fieldname)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the XML node attribute name for the given C# field name. That is, it returns the mapping of the field name.  <a href="#a7a33b05e10c507d6d47fcf1c152e51d4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a234002bf9a84ccc51210cbf2744d1dbf">GetFieldName</a> (string attributename)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the C# field name for the given XML attribute name. That is, it returns the reverse mapping of the attribute name.  <a href="#a234002bf9a84ccc51210cbf2744d1dbf"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ab4c4b9a8a57ef55d3923da107289a05e">GetFieldValue</a> (Object obj, string name)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of the field with the specified name in the specified object instance.  <a href="#ab4c4b9a8a57ef55d3923da107289a05e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a66dc2344eab9b42aac159cdd3967cd8c">SetFieldValue</a> (Object obj, string name, Object value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the value of the field with the specified name in the specified object instance.  <a href="#a66dc2344eab9b42aac159cdd3967cd8c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8d19152cfe1b7a65a613ecc823c0ff6c">DecodeNode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calls decodeAttributes and decodeChildren for the given node.  <a href="#a8d19152cfe1b7a65a613ecc823c0ff6c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6c43995dfa09e94c15237bb5bcb956bd">DecodeAttributes</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decodes all attributes of the given node using decodeAttribute.  <a href="#a6c43995dfa09e94c15237bb5bcb956bd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a3995ca8eb8b49ea3369ce78784da6886">DecodeAttribute</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode attr, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads the given attribute into the specified object.  <a href="#a3995ca8eb8b49ea3369ce78784da6886"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a0fae9f4253f6b903b13a0342d27b654d">DecodeChildren</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads the given attribute into the specified object.  <a href="#a0fae9f4253f6b903b13a0342d27b654d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a26402e6fab4b83efae915a1d241a9139">DecodeChild</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode child, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads the specified child into the given object.  <a href="#a26402e6fab4b83efae915a1d241a9139"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a414f565a39689bd929124c2003dd41aa">GetFieldTemplate</a> (Object obj, String fieldname, XmlNode child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the template instance for the given field. This returns the value of the field, null if the value is an array or an empty collection if the value is a collection. The value is then used to populate the field for a new instance. For strongly typed languages it may be required to override this to return the correct collection instance based on the encoded child.  <a href="#a414f565a39689bd929124c2003dd41aa"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a400b8c95027f3e65c8f6bb7365346e31">AddObjectValue</a> (Object obj, String fieldname, Object value, Object <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the decoded child node as a value of the given object. If the object is a map, then the value is added with the given fieldname as a key. If the fieldname is not empty, then setFieldValue is called or else, if the object is a collection, the value is added to the collection. For strongly typed languages it may be required to override this with the correct code to add an entry to an object.  <a href="#a400b8c95027f3e65c8f6bb7365346e31"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the template object associated with this codec.  <a href="#a24bdd53b1c6af9edab63a37cbd52533e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">exclude</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Array containing the variable names that should be ignored by the codec.  <a href="#ae4e8b08be01d379f6a84cfe28235b94e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">List&lt; string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">idrefs</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Array containing the variable names that should be turned into or converted from references. See mxCodec.getId and mxCodec.getObject.  <a href="#abef71a12c34e290072c9a9daeea34429"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">mapping</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from from fieldnames to XML attribute names.  <a href="#a8cf9b1b0429e7340911953750d361cf1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a897b6935339cdb9a47f12b5f926b58f9">reverse</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from from XML attribute names to fieldnames.  <a href="#a897b6935339cdb9a47f12b5f926b58f9"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6dbad90a78d8e5d2bc3dd6fbec6d4841">Template</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the template object associated with this codec.  <a href="#a6dbad90a78d8e5d2bc3dd6fbec6d4841"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Generic codec for C# objects. See below for a detailed description of the encoding/decoding scheme. Note: Since booleans are numbers in JavaScript, all boolean values are encoded into 1 for true and 0 for false. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="abbddb3957b955b41d4fbcd6e63bbb42d"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::mxObjectCodec" ref="abbddb3957b955b41d4fbcd6e63bbb42d" args="(Object template)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxObjectCodec::mxObjectCodec </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>template</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new codec for the specified template object. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>template</em>&nbsp;</td><td>Prototypical instance of the object to be encoded/decoded.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a38b4f86b0ffb810f94f1864c6f386a8f"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::mxObjectCodec" ref="a38b4f86b0ffb810f94f1864c6f386a8f" args="(Object template, string[] exclude, string[] idrefs, Dictionary&lt; string, string &gt; mapping)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxObjectCodec::mxObjectCodec </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>template</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string[]&nbsp;</td>
    +          <td class="paramname"> <em>exclude</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string[]&nbsp;</td>
    +          <td class="paramname"> <em>idrefs</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, string &gt;&nbsp;</td>
    +          <td class="paramname"> <em>mapping</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new codec for the specified template object. The variables in the optional exclude array are ignored by the codec. Variables in the optional idrefs array are turned into references in the XML. The optional mapping may be used to map from variable names to XML attributes. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>template</em>&nbsp;</td><td>Prototypical instance of the object to be encoded/decoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>exclude</em>&nbsp;</td><td>Optional array of fieldnames to be ignored.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>idrefs</em>&nbsp;</td><td>Optional array of fieldnames to be converted to/from references.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>mapping</em>&nbsp;</td><td>Optional mapping from field- to attributenames.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a400b8c95027f3e65c8f6bb7365346e31"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::AddObjectValue" ref="a400b8c95027f3e65c8f6bb7365346e31" args="(Object obj, String fieldname, Object value, Object template)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::AddObjectValue </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>fieldname</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>template</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the decoded child node as a value of the given object. If the object is a map, then the value is added with the given fieldname as a key. If the fieldname is not empty, then setFieldValue is called or else, if the object is a collection, the value is added to the collection. For strongly typed languages it may be required to override this with the correct code to add an entry to an object. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af52418b7e8af59ebf7892725dfda0c99"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::AfterDecode" ref="af52418b7e8af59ebf7892725dfda0c99" args="(mxCodec dec, XmlNode node, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual Object com::mxgraph::mxObjectCodec::AfterDecode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Hook for subclassers to Receive-process the object after decoding. This implementation returns the given object without any changes. The return value of this method is returned to the decoder from decode. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dec</em>&nbsp;</td><td>Codec that controls the decoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node to be decoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object that represents the default decoding.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the result of the decoding process.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a190fb06cd2ebe7953a6766f71f0f4a5d"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::AfterEncode" ref="a190fb06cd2ebe7953a6766f71f0f4a5d" args="(mxCodec enc, Object obj, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual XmlNode com::mxgraph::mxObjectCodec::AfterEncode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Hook for subclassers to Receive-process the node for the given object after encoding and return the Receive-processed node. This implementation returns the input node. The return value of this method is returned to the encoder from encode. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>enc</em>&nbsp;</td><td>Codec that controls the encoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object to be encoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node that represents the default encoding.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the resulting node of the encoding.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aef2e78e13b8dd5895ac272a0542ce4f2"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::BeforeDecode" ref="aef2e78e13b8dd5895ac272a0542ce4f2" args="(mxCodec dec, XmlNode node, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual XmlNode com::mxgraph::mxObjectCodec::BeforeDecode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Hook for subclassers to pre-process the node for the specified object and return the node to be used for further processing by decode. The object is created based on the template in the calling method and is never null. This implementation returns the input node. The return value of this function is used in decode to perform the default decoding into the given object. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dec</em>&nbsp;</td><td>Codec that controls the decoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node to be decoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object to encode the node into.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the node used for the default decoding.</dd></dl>
    +
    +<p>Reimplemented in <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a64513ab4228e528bfd216c08def3ec6c">com::mxgraph::mxModelCodec</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa58c9db1a76eca9a93196b3d618560a5"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::BeforeEncode" ref="aa58c9db1a76eca9a93196b3d618560a5" args="(mxCodec enc, Object obj, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual Object com::mxgraph::mxObjectCodec::BeforeEncode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Hook for subclassers to pre-process the object before encoding. This returns the input object. The return value of this function is used in encode to perform the default encoding into the given node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>enc</em>&nbsp;</td><td>Codec that controls the encoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object to be encoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node to encode the object into.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the object to be encoded by the default encoding.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9916f40c70806d0f2dbce90d2bc0a228"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::CloneTemplate" ref="a9916f40c70806d0f2dbce90d2bc0a228" args="(XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual Object com::mxgraph::mxObjectCodec::CloneTemplate </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a new instance of the template object for representing the given node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node that the object is going to represent.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new template instance.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af10ffcb1ec0726e3ce520e450eddd1a9"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::ConvertValueFromXml" ref="af10ffcb1ec0726e3ce520e450eddd1a9" args="(Type type, Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual Object com::mxgraph::mxObjectCodec::ConvertValueFromXml </td>
    +          <td>(</td>
    +          <td class="paramtype">Type&nbsp;</td>
    +          <td class="paramname"> <em>type</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Converts XML attribute values to object of the given type. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a668ec4f16b4018010b78dfac5da202a1"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::ConvertValueToXml" ref="a668ec4f16b4018010b78dfac5da202a1" args="(Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual Object com::mxgraph::mxObjectCodec::ConvertValueToXml </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Converts true to "1" and false to "0". All other values are ignored. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a121ba530f191fa675cef1199783d3b4c"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::Decode" ref="a121ba530f191fa675cef1199783d3b4c" args="(mxCodec dec, XmlNode node, Object into)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual Object com::mxgraph::mxObjectCodec::Decode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>into</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Parses the given node into the object or returns a new object representing the given node. Dec is a reference to the calling decoder. It is used to decode complex objects and resolve references. If a node has an id attribute then the object cache is checked for the object. If the object is not yet in the cache then it is constructed using the constructor of template and cached in <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a9f983ce7275a1005de496ee15093a6f0" title="Maps from IDs to objects.">mxCodec.objects</a>. This implementation decodes all attributes and childs of a node according to the following rules:</p>
    +<ul>
    +<li>If the variable name is in exclude or if the attribute name is "id" or "as" then it is ignored.</li>
    +<li>If the variable name is in idrefs then mxCodec.getObject is used to replace the reference with an object.</li>
    +<li>The variable name is mapped using a reverse mapping.</li>
    +<li>If the value has a child node, then the codec is used to create a child object with the variable name taken from the "as" attribute.</li>
    +<li>If the object is an array and the variable name is empty then the value or child object is appended to the array.</li>
    +<li>If an add child has no value or the object is not an array then the child text content is evaluated using mxUtils.eval. If no object exists for an ID in idrefs a warning is issued using mxLog.warn. Returns the resulting object that represents the given XML node or the configured given object. </li>
    +</ul>
    +</p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dec</em>&nbsp;</td><td>Codec that controls the encoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node to be decoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>into</em>&nbsp;</td><td>Optional objec to encode the node into.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the resulting object that represents the given XML node or the object given to the method as the into parameter.</dd></dl>
    +
    +<p>Reimplemented in <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a79090b06efe74f3805ec252138012431">com::mxgraph::mxStylesheetCodec</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="add2542d39061256bd5652925cd14ed99"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::Decode" ref="add2542d39061256bd5652925cd14ed99" args="(mxCodec dec, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual Object com::mxgraph::mxObjectCodec::Decode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Parses the given node into the object or returns a new object representing the given node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dec</em>&nbsp;</td><td>Codec that controls the encoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node to be decoded.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the resulting object that represents the given XML node.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3995ca8eb8b49ea3369ce78784da6886"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::DecodeAttribute" ref="a3995ca8eb8b49ea3369ce78784da6886" args="(mxCodec dec, XmlNode attr, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::DecodeAttribute </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>attr</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reads the given attribute into the specified object. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6c43995dfa09e94c15237bb5bcb956bd"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::DecodeAttributes" ref="a6c43995dfa09e94c15237bb5bcb956bd" args="(mxCodec dec, XmlNode node, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::DecodeAttributes </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Decodes all attributes of the given node using decodeAttribute. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a26402e6fab4b83efae915a1d241a9139"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::DecodeChild" ref="a26402e6fab4b83efae915a1d241a9139" args="(mxCodec dec, XmlNode child, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::DecodeChild </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>child</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reads the specified child into the given object. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0fae9f4253f6b903b13a0342d27b654d"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::DecodeChildren" ref="a0fae9f4253f6b903b13a0342d27b654d" args="(mxCodec dec, XmlNode node, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::DecodeChildren </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reads the given attribute into the specified object. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8d19152cfe1b7a65a613ecc823c0ff6c"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::DecodeNode" ref="a8d19152cfe1b7a65a613ecc823c0ff6c" args="(mxCodec dec, XmlNode node, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::DecodeNode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Calls decodeAttributes and decodeChildren for the given node. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa8e373e16bb59c00a573b1bebe1a3934"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::Encode" ref="aa8e373e16bb59c00a573b1bebe1a3934" args="(mxCodec enc, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual XmlNode com::mxgraph::mxObjectCodec::Encode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Encodes the specified object and returns a node representing then given object. Calls beforeEncode after creating the node and afterEncode with the resulting node after processing. Enc is a reference to the calling encoder. It is used to encode complex objects and create references. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>enc</em>&nbsp;</td><td>Codec that controls the encoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object to be encoded.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the resulting XML node that represents the given object.</dd></dl>
    +
    +<p>Reimplemented in <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a4a7f48050d530e5b64e7bc98de0eab0b">com::mxgraph::mxStylesheetCodec</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac044bc0648d29bbde6a826c22ca84a1b"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::EncodeElements" ref="ac044bc0648d29bbde6a826c22ca84a1b" args="(mxCodec enc, Object obj, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::EncodeElements </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Encodes the child objects of arrays, dictionaries and enumerables. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>enc</em>&nbsp;</td><td>Codec that controls the encoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object whose child objects should be encoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node that contains the encoded object.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afe487cf09d38efd8cbfbbf92810419fa"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::EncodeFields" ref="afe487cf09d38efd8cbfbbf92810419fa" args="(mxCodec enc, Object obj, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::EncodeFields </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Encodes the members of the given object into the given node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>enc</em>&nbsp;</td><td>Codec that controls the encoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object whose fields should be encoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node that contains the encoded object.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ade4c4a85d7ed2162f9566c8df931d250"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::EncodeObject" ref="ade4c4a85d7ed2162f9566c8df931d250" args="(mxCodec enc, Object obj, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual void com::mxgraph::mxObjectCodec::EncodeObject </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Encodes the value of each member in then given obj into the given node using encodeFields and encodeElements. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>enc</em>&nbsp;</td><td>Codec that controls the encoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object to be encoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node that contains the encoded object.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Reimplemented in <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#abe01c87a42e5568047c44c78ba0b2a2d">com::mxgraph::mxModelCodec</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac0fe160b3b14184206fb33abda5b6c20"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::EncodeValue" ref="ac0fe160b3b14184206fb33abda5b6c20" args="(mxCodec enc, Object obj, string fieldname, Object value, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::EncodeValue </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>fieldname</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Converts the given value according to the mappings and id-refs in this codec and uses writeAttribute to write the attribute into the given node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>enc</em>&nbsp;</td><td>Codec that controls the encoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object whose member is going to be encoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>fieldname</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Value of the property to be encoded.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node that contains the encoded object.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7a33b05e10c507d6d47fcf1c152e51d4"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::GetAttributeName" ref="a7a33b05e10c507d6d47fcf1c152e51d4" args="(string fieldname)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxObjectCodec::GetAttributeName </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>fieldname</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the XML node attribute name for the given C# field name. That is, it returns the mapping of the field name. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a234002bf9a84ccc51210cbf2744d1dbf"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::GetFieldName" ref="a234002bf9a84ccc51210cbf2744d1dbf" args="(string attributename)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxObjectCodec::GetFieldName </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attributename</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the C# field name for the given XML attribute name. That is, it returns the reverse mapping of the attribute name. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>attributename</em>&nbsp;</td><td>The attribute name to be mapped.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>String that represents the mapped field name.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a414f565a39689bd929124c2003dd41aa"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::GetFieldTemplate" ref="a414f565a39689bd929124c2003dd41aa" args="(Object obj, String fieldname, XmlNode child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxObjectCodec::GetFieldTemplate </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>fieldname</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the template instance for the given field. This returns the value of the field, null if the value is an array or an empty collection if the value is a collection. The value is then used to populate the field for a new instance. For strongly typed languages it may be required to override this to return the correct collection instance based on the encoded child. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab4c4b9a8a57ef55d3923da107289a05e"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::GetFieldValue" ref="ab4c4b9a8a57ef55d3923da107289a05e" args="(Object obj, string name)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxObjectCodec::GetFieldValue </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value of the field with the specified name in the specified object instance. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a62ea0063541fd986ab33a1b098780abf"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::GetName" ref="a62ea0063541fd986ab33a1b098780abf" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxObjectCodec::GetName </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the name used for the nodenames and lookup of the codec when classes are encoded and nodes are decoded. For classes to work with this the codec registry automatically adds an alias for the classname if that is different than what this returns. The default implementation returns the classname of the template class. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a58410c644edac27eb89acd3f3be8c6b3"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::IsExcluded" ref="a58410c644edac27eb89acd3f3be8c6b3" args="(Object obj, string attr, Object value, bool write)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual bool com::mxgraph::mxObjectCodec::IsExcluded </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attr</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>write</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given attribute is to be ignored by the codec. This implementation returns true if the given fieldname is in exclude. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object instance that contains the field.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>Fieldname of the field.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Value of the field.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>write</em>&nbsp;</td><td>Boolean indicating if the field is being encoded or decoded. write is true if the field is being encoded, else it is being decoded.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the given attribute should be ignored.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af3ef76d421c61dfe849f6e09252fc630"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::IsPrimitiveValue" ref="af3ef76d421c61dfe849f6e09252fc630" args="(Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxObjectCodec::IsPrimitiveValue </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given object is a primitive value. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Object that should be checked.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the given object is a primitive value.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a369877eb840c88cb3b321c93e22a373b"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::IsReference" ref="a369877eb840c88cb3b321c93e22a373b" args="(Object obj, string attr, Object value, bool write)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">virtual bool com::mxgraph::mxObjectCodec::IsReference </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attr</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>write</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given fieldname is to be treated as a textual reference (ID). This implementation returns true if the given fieldname is in idrefs. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>Object instance that contains the field.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>Fieldname of the field.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Value of the field.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>write</em>&nbsp;</td><td>Boolean indicating if the field is being encoded or decoded. write is true if the field is being encoded, else it is being decoded.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the given attribute should be handled as a reference.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afd7f23ec8879f314b0729ac866201683"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::ProcessInclude" ref="afd7f23ec8879f314b0729ac866201683" args="(mxCodec dec, XmlNode node, Object into)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxObjectCodec::ProcessInclude </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>into</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dec</em>&nbsp;</td><td>Codec that controls the encoding/decoding process.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>XML node to be checked.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>into</em>&nbsp;</td><td>Optional object to pass-thru to the codec.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the given node was processed as an include.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a66dc2344eab9b42aac159cdd3967cd8c"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::SetFieldValue" ref="a66dc2344eab9b42aac159cdd3967cd8c" args="(Object obj, string name, Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::SetFieldValue </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>name</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the value of the field with the specified name in the specified object instance. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abc3bef1feb53dc34ed9e8ba93da5edd1"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::WriteComplexAttribute" ref="abc3bef1feb53dc34ed9e8ba93da5edd1" args="(mxCodec enc, Object obj, string attr, Object value, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::WriteComplexAttribute </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attr</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Writes the given value as a child node of the given node. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7831f956126ef0b5da4920824d9b9bb5"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::WritePrimitiveAttribute" ref="a7831f956126ef0b5da4920824d9b9bb5" args="(mxCodec enc, Object obj, string attr, Object value, XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxObjectCodec::WritePrimitiveAttribute </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attr</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Writes the given value as an attribute of the given node. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="ae4e8b08be01d379f6a84cfe28235b94e"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::exclude" ref="ae4e8b08be01d379f6a84cfe28235b94e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;string&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">com::mxgraph::mxObjectCodec::exclude</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Array containing the variable names that should be ignored by the codec. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abef71a12c34e290072c9a9daeea34429"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::idrefs" ref="abef71a12c34e290072c9a9daeea34429" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">List&lt;string&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">com::mxgraph::mxObjectCodec::idrefs</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Array containing the variable names that should be turned into or converted from references. See mxCodec.getId and mxCodec.getObject. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8cf9b1b0429e7340911953750d361cf1"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::mapping" ref="a8cf9b1b0429e7340911953750d361cf1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, string&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">com::mxgraph::mxObjectCodec::mapping</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from from fieldnames to XML attribute names. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a897b6935339cdb9a47f12b5f926b58f9"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::reverse" ref="a897b6935339cdb9a47f12b5f926b58f9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, string&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a897b6935339cdb9a47f12b5f926b58f9">com::mxgraph::mxObjectCodec::reverse</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from from XML attribute names to fieldnames. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a24bdd53b1c6af9edab63a37cbd52533e"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::template" ref="a24bdd53b1c6af9edab63a37cbd52533e" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">com::mxgraph::mxObjectCodec::template</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the template object associated with this codec. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a6dbad90a78d8e5d2bc3dd6fbec6d4841"></a><!-- doxytag: member="com::mxgraph::mxObjectCodec::Template" ref="a6dbad90a78d8e5d2bc3dd6fbec6d4841" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxObjectCodec::Template<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the template object associated with this codec. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the template object.</dd></dl>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/io/mxObjectCodec.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxObjectCodec.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxObjectCodec.png
    new file mode 100644
    index 000000000..eaec70b6f
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxObjectCodec.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPerimeter-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPerimeter-members.html
    new file mode 100644
    index 000000000..476518ce5
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPerimeter-members.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxPerimeter Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html">com::mxgraph::mxPerimeter</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a7fc483d8669cd5ccd098a548c5375290">EllipsePerimeter</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html">com::mxgraph::mxPerimeter</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a4ca38a12f0ad16114fae26f8fff91e14">RectanglePerimeter</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html">com::mxgraph::mxPerimeter</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a0157ffa1dbc7195ceac6c4dd4b3d99b0">RhombusPerimeter</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html">com::mxgraph::mxPerimeter</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a70cf801c1d6b94d19d83e70fa7d3ec15">TrianglePerimeter</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html">com::mxgraph::mxPerimeter</a></td><td><code> [static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPerimeter.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPerimeter.html
    new file mode 100644
    index 000000000..f63f81ac7
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPerimeter.html
    @@ -0,0 +1,117 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxPerimeter Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html">mxPerimeter</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxPerimeter Class Reference</h1><!-- doxytag: class="com::mxgraph::mxPerimeter" -->
    +<p>Provides various perimeter functions to be used in a style as the value of <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab7a751a8bd80d3c041b88752ef5e94f5" title="Defines the key for the perimeter style. Possible values are the functions defined...">mxConstants.STYLE_PERIMETER</a>.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxPerimeter-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static mxPerimeterFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a4ca38a12f0ad16114fae26f8fff91e14">RectanglePerimeter</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Describes a rectangular perimeter for the given bounds.  <a href="#a4ca38a12f0ad16114fae26f8fff91e14"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static mxPerimeterFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a7fc483d8669cd5ccd098a548c5375290">EllipsePerimeter</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Describes an elliptic perimeter.  <a href="#a7fc483d8669cd5ccd098a548c5375290"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static mxPerimeterFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a0157ffa1dbc7195ceac6c4dd4b3d99b0">RhombusPerimeter</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Describes a rhombus (aka diamond) perimeter.  <a href="#a0157ffa1dbc7195ceac6c4dd4b3d99b0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static mxPerimeterFunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a70cf801c1d6b94d19d83e70fa7d3ec15">TrianglePerimeter</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Describes a triangle perimeter.  <a href="#a70cf801c1d6b94d19d83e70fa7d3ec15"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Provides various perimeter functions to be used in a style as the value of <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab7a751a8bd80d3c041b88752ef5e94f5" title="Defines the key for the perimeter style. Possible values are the functions defined...">mxConstants.STYLE_PERIMETER</a>. </p>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a7fc483d8669cd5ccd098a548c5375290"></a><!-- doxytag: member="com::mxgraph::mxPerimeter::EllipsePerimeter" ref="a7fc483d8669cd5ccd098a548c5375290" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxPerimeterFunction <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a7fc483d8669cd5ccd098a548c5375290">com::mxgraph::mxPerimeter::EllipsePerimeter</a><code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Describes an elliptic perimeter. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4ca38a12f0ad16114fae26f8fff91e14"></a><!-- doxytag: member="com::mxgraph::mxPerimeter::RectanglePerimeter" ref="a4ca38a12f0ad16114fae26f8fff91e14" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxPerimeterFunction <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a4ca38a12f0ad16114fae26f8fff91e14">com::mxgraph::mxPerimeter::RectanglePerimeter</a><code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Describes a rectangular perimeter for the given bounds. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0157ffa1dbc7195ceac6c4dd4b3d99b0"></a><!-- doxytag: member="com::mxgraph::mxPerimeter::RhombusPerimeter" ref="a0157ffa1dbc7195ceac6c4dd4b3d99b0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxPerimeterFunction <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a0157ffa1dbc7195ceac6c4dd4b3d99b0">com::mxgraph::mxPerimeter::RhombusPerimeter</a><code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Describes a rhombus (aka diamond) perimeter. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a70cf801c1d6b94d19d83e70fa7d3ec15"></a><!-- doxytag: member="com::mxgraph::mxPerimeter::TrianglePerimeter" ref="a70cf801c1d6b94d19d83e70fa7d3ec15" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxPerimeterFunction <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a70cf801c1d6b94d19d83e70fa7d3ec15">com::mxgraph::mxPerimeter::TrianglePerimeter</a><code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Describes a triangle perimeter. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/view/mxPerimeter.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPoint-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPoint-members.html
    new file mode 100644
    index 000000000..0197e8589
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPoint-members.html
    @@ -0,0 +1,45 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxPoint Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8c6344af8fbe69d3432fbb6018011a27">Clone</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a6a68cb2cfd1256e32bd4add2c5fc9aa1">Equals</a>(Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a45f04749b99d031c57c707f505cc5290">GetPoint</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8943bd2fe6aff4d841581e33fb33c8bc">mxPoint</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#af513f614c1d5d3aa402d7919d49b8667">mxPoint</a>(Point point)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a1911916b08fe58a430eb20efc5b89b10">mxPoint</a>(mxPoint point)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#acf10031952dfe1a9281b6d2db60366c8">mxPoint</a>(double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a47119ed72239e13dec2d0d196f408158">X</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a67b180bcd4e2e691c9a0c7ed38c16c38">Y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPoint.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPoint.html
    new file mode 100644
    index 000000000..8b85d8f32
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPoint.html
    @@ -0,0 +1,320 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxPoint Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxPoint Class Reference</h1><!-- doxytag: class="com::mxgraph::mxPoint" -->
    +<p>Implements a 2-dimensional point with double precision coordinates.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxPoint:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxPoint.png" usemap="#com::mxgraph::mxPoint_map" alt=""/>
    +  <map id="com::mxgraph::mxPoint_map" name="com::mxgraph::mxPoint_map">
    +<area href="classcom_1_1mxgraph_1_1mxRectangle.html" alt="com::mxgraph::mxRectangle" shape="rect" coords="88,56,254,80"/>
    +<area href="classcom_1_1mxgraph_1_1mxCellState.html" alt="com::mxgraph::mxCellState" shape="rect" coords="0,112,166,136"/>
    +<area href="classcom_1_1mxgraph_1_1mxGeometry.html" alt="com::mxgraph::mxGeometry" shape="rect" coords="176,112,342,136"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxPoint-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8943bd2fe6aff4d841581e33fb33c8bc">mxPoint</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new point at (0, 0).  <a href="#a8943bd2fe6aff4d841581e33fb33c8bc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#af513f614c1d5d3aa402d7919d49b8667">mxPoint</a> (Point point)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new point at the location of the given point.  <a href="#af513f614c1d5d3aa402d7919d49b8667"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a1911916b08fe58a430eb20efc5b89b10">mxPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> point)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new point at the location of the given point.  <a href="#a1911916b08fe58a430eb20efc5b89b10"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#acf10031952dfe1a9281b6d2db60366c8">mxPoint</a> (double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a>, double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new point at (x, y).  <a href="#acf10031952dfe1a9281b6d2db60366c8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Point&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a45f04749b99d031c57c707f505cc5290">GetPoint</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the coordinates as a new point.  <a href="#a45f04749b99d031c57c707f505cc5290"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">new Boolean&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a6a68cb2cfd1256e32bd4add2c5fc9aa1">Equals</a> (Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given object equals this point.  <a href="#a6a68cb2cfd1256e32bd4add2c5fc9aa1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8c6344af8fbe69d3432fbb6018011a27">Clone</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a new instance of the same point.  <a href="#a8c6344af8fbe69d3432fbb6018011a27"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the x-coordinate of the point. Default is 0.  <a href="#afc249ce7075359af93ac0001d719ff06"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the y-coordinate of the point. Default is 0.  <a href="#a48641b42a2187e4d6fedca61c359be77"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a47119ed72239e13dec2d0d196f408158">X</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the x-coordinate of the point.  <a href="#a47119ed72239e13dec2d0d196f408158"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a67b180bcd4e2e691c9a0c7ed38c16c38">Y</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the y-coordinate of the point.  <a href="#a67b180bcd4e2e691c9a0c7ed38c16c38"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a 2-dimensional point with double precision coordinates. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a8943bd2fe6aff4d841581e33fb33c8bc"></a><!-- doxytag: member="com::mxgraph::mxPoint::mxPoint" ref="a8943bd2fe6aff4d841581e33fb33c8bc" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxPoint::mxPoint </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new point at (0, 0). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af513f614c1d5d3aa402d7919d49b8667"></a><!-- doxytag: member="com::mxgraph::mxPoint::mxPoint" ref="af513f614c1d5d3aa402d7919d49b8667" args="(Point point)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxPoint::mxPoint </td>
    +          <td>(</td>
    +          <td class="paramtype">Point&nbsp;</td>
    +          <td class="paramname"> <em>point</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new point at the location of the given point. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>point</em>&nbsp;</td><td>Point that specifies the location.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1911916b08fe58a430eb20efc5b89b10"></a><!-- doxytag: member="com::mxgraph::mxPoint::mxPoint" ref="a1911916b08fe58a430eb20efc5b89b10" args="(mxPoint point)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxPoint::mxPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>point</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new point at the location of the given point. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>point</em>&nbsp;</td><td>Point that specifies the location.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acf10031952dfe1a9281b6d2db60366c8"></a><!-- doxytag: member="com::mxgraph::mxPoint::mxPoint" ref="acf10031952dfe1a9281b6d2db60366c8" args="(double x, double y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxPoint::mxPoint </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new point at (x, y). </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the point to be created.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the point to be created.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a8c6344af8fbe69d3432fbb6018011a27"></a><!-- doxytag: member="com::mxgraph::mxPoint::Clone" ref="a8c6344af8fbe69d3432fbb6018011a27" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxPoint::Clone </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a new instance of the same point. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a clone of the point.</dd></dl>
    +
    +<p>Reimplemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a1bc5e0feb17c50f9bab5853af0e089f0">com::mxgraph::mxGeometry</a>, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa9e9e649efa5ad7239db970ec735e846">com::mxgraph::mxRectangle</a>, and <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7a357573a28f227b884eb6a798b1c2df">com::mxgraph::mxCellState</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6a68cb2cfd1256e32bd4add2c5fc9aa1"></a><!-- doxytag: member="com::mxgraph::mxPoint::Equals" ref="a6a68cb2cfd1256e32bd4add2c5fc9aa1" args="(Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">new Boolean com::mxgraph::mxPoint::Equals </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given object equals this point. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if obj is equal.</dd></dl>
    +
    +<p>Reimplemented in <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa2600d85162a1db0129650b4e636448">com::mxgraph::mxRectangle</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a45f04749b99d031c57c707f505cc5290"></a><!-- doxytag: member="com::mxgraph::mxPoint::GetPoint" ref="a45f04749b99d031c57c707f505cc5290" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Point com::mxgraph::mxPoint::GetPoint </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the coordinates as a new point. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new point for the location.</dd></dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="afc249ce7075359af93ac0001d719ff06"></a><!-- doxytag: member="com::mxgraph::mxPoint::x" ref="afc249ce7075359af93ac0001d719ff06" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">com::mxgraph::mxPoint::x</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the x-coordinate of the point. Default is 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a48641b42a2187e4d6fedca61c359be77"></a><!-- doxytag: member="com::mxgraph::mxPoint::y" ref="a48641b42a2187e4d6fedca61c359be77" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">com::mxgraph::mxPoint::y</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the y-coordinate of the point. Default is 0. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a47119ed72239e13dec2d0d196f408158"></a><!-- doxytag: member="com::mxgraph::mxPoint::X" ref="a47119ed72239e13dec2d0d196f408158" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxPoint::X<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the x-coordinate of the point. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a67b180bcd4e2e691c9a0c7ed38c16c38"></a><!-- doxytag: member="com::mxgraph::mxPoint::Y" ref="a67b180bcd4e2e691c9a0c7ed38c16c38" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxPoint::Y<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the y-coordinate of the point. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/utils/mxPoint.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPoint.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPoint.png
    new file mode 100644
    index 000000000..d33223b11
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxPoint.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxRectangle-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxRectangle-members.html
    new file mode 100644
    index 000000000..197fc5892
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxRectangle-members.html
    @@ -0,0 +1,60 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxRectangle Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a5e971cdff92e9e53071232dc80cbc8b0">Add</a>(mxRectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa9e9e649efa5ad7239db970ec735e846">Clone</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a3f76585b333bf7fe2d58ed38e8296b26">Contains</a>(double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa2600d85162a1db0129650b4e636448">Equals</a>(Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a4c133c9e19ff56d3ee55aca15e93cdf0">GetCenterX</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a94596cde2d663cd1746088eea215493f">GetCenterY</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a45f04749b99d031c57c707f505cc5290">GetPoint</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#acdc68e90b0b634aacf6f3054ed71a97a">GetRectangle</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#ad499030b067d0ee6e87af68542ec7115">Grow</a>(double amount)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a32c0d49b1279c27fec655cb831240975">Height</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adb1bfc2cc3f1215b9357bdeda242a062">height</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8943bd2fe6aff4d841581e33fb33c8bc">mxPoint</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#af513f614c1d5d3aa402d7919d49b8667">mxPoint</a>(Point point)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a1911916b08fe58a430eb20efc5b89b10">mxPoint</a>(mxPoint point)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#acf10031952dfe1a9281b6d2db60366c8">mxPoint</a>(double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa0520bc151eeecd7884c59fd7d5a4cd5">mxRectangle</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adad36fd17b2a6b569340abaf0114d673">mxRectangle</a>(mxRectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa9fda9798994a6c2e1319878598b792">mxRectangle</a>(Rectangle rect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a0de5be785fd18e109ff7eb9aed6ef2e9">mxRectangle</a>(double x, double y, double width, double height)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adbcd79c0023233969be1e4ee0626118b">setRect</a>(double x, double y, double w, double h)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a62c3f92da547c942f319b6aecd71765c">width</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa76b4b8e9c6d7a4f6e6cecaf8c71b3d">Width</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a47119ed72239e13dec2d0d196f408158">X</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a67b180bcd4e2e691c9a0c7ed38c16c38">Y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxRectangle.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxRectangle.html
    new file mode 100644
    index 000000000..10f869de2
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxRectangle.html
    @@ -0,0 +1,512 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxRectangle Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxRectangle Class Reference</h1><!-- doxytag: class="com::mxgraph::mxRectangle" --><!-- doxytag: inherits="com::mxgraph::mxPoint" -->
    +<p>Implements a 2-dimensional rectangle with double precision coordinates.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxRectangle:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxRectangle.png" usemap="#com::mxgraph::mxRectangle_map" alt=""/>
    +  <map id="com::mxgraph::mxRectangle_map" name="com::mxgraph::mxRectangle_map">
    +<area href="classcom_1_1mxgraph_1_1mxPoint.html" alt="com::mxgraph::mxPoint" shape="rect" coords="88,0,254,24"/>
    +<area href="classcom_1_1mxgraph_1_1mxCellState.html" alt="com::mxgraph::mxCellState" shape="rect" coords="0,112,166,136"/>
    +<area href="classcom_1_1mxgraph_1_1mxGeometry.html" alt="com::mxgraph::mxGeometry" shape="rect" coords="176,112,342,136"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxRectangle-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa0520bc151eeecd7884c59fd7d5a4cd5">mxRectangle</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new rectangle at (0, 0) with the width and height set to 0.  <a href="#aa0520bc151eeecd7884c59fd7d5a4cd5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adad36fd17b2a6b569340abaf0114d673">mxRectangle</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> rect)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a copy of the given rectangle.  <a href="#adad36fd17b2a6b569340abaf0114d673"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa9fda9798994a6c2e1319878598b792">mxRectangle</a> (Rectangle rect)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a copy of the given rectangle.  <a href="#afa9fda9798994a6c2e1319878598b792"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a0de5be785fd18e109ff7eb9aed6ef2e9">mxRectangle</a> (double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a>, double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a>, double <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a62c3f92da547c942f319b6aecd71765c">width</a>, double <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adb1bfc2cc3f1215b9357bdeda242a062">height</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a rectangle using the given parameters.  <a href="#a0de5be785fd18e109ff7eb9aed6ef2e9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adbcd79c0023233969be1e4ee0626118b">setRect</a> (double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a>, double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a>, double w, double h)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets this rectangle to the specified values.  <a href="#adbcd79c0023233969be1e4ee0626118b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a4c133c9e19ff56d3ee55aca15e93cdf0">GetCenterX</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the x-coordinate of the center.  <a href="#a4c133c9e19ff56d3ee55aca15e93cdf0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a94596cde2d663cd1746088eea215493f">GetCenterY</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the y-coordinate of the center.  <a href="#a94596cde2d663cd1746088eea215493f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a5e971cdff92e9e53071232dc80cbc8b0">Add</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> rect)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the given rectangle to this rectangle.  <a href="#a5e971cdff92e9e53071232dc80cbc8b0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#ad499030b067d0ee6e87af68542ec7115">Grow</a> (double amount)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height.  <a href="#ad499030b067d0ee6e87af68542ec7115"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a3f76585b333bf7fe2d58ed38e8296b26">Contains</a> (double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">x</a>, double <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">y</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if this rectangle contains the given point (x, y).  <a href="#a3f76585b333bf7fe2d58ed38e8296b26"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Rectangle&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#acdc68e90b0b634aacf6f3054ed71a97a">GetRectangle</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds as a new rectangle.  <a href="#acdc68e90b0b634aacf6f3054ed71a97a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">new Boolean&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa2600d85162a1db0129650b4e636448">Equals</a> (Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given object equals this rectangle.  <a href="#afa2600d85162a1db0129650b4e636448"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">new <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa9e9e649efa5ad7239db970ec735e846">Clone</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a new instance of the same rectangle.  <a href="#aa9e9e649efa5ad7239db970ec735e846"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a62c3f92da547c942f319b6aecd71765c">width</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the width. Default is 0.  <a href="#a62c3f92da547c942f319b6aecd71765c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adb1bfc2cc3f1215b9357bdeda242a062">height</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the height. Default is 0.  <a href="#adb1bfc2cc3f1215b9357bdeda242a062"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa76b4b8e9c6d7a4f6e6cecaf8c71b3d">Width</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the width of the rectangle.  <a href="#afa76b4b8e9c6d7a4f6e6cecaf8c71b3d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a32c0d49b1279c27fec655cb831240975">Height</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the height of the rectangle.  <a href="#a32c0d49b1279c27fec655cb831240975"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a 2-dimensional rectangle with double precision coordinates. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="aa0520bc151eeecd7884c59fd7d5a4cd5"></a><!-- doxytag: member="com::mxgraph::mxRectangle::mxRectangle" ref="aa0520bc151eeecd7884c59fd7d5a4cd5" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxRectangle::mxRectangle </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new rectangle at (0, 0) with the width and height set to 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adad36fd17b2a6b569340abaf0114d673"></a><!-- doxytag: member="com::mxgraph::mxRectangle::mxRectangle" ref="adad36fd17b2a6b569340abaf0114d673" args="(mxRectangle rect)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxRectangle::mxRectangle </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>rect</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a copy of the given rectangle. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>rect</em>&nbsp;</td><td>Rectangle to construct a copy of.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afa9fda9798994a6c2e1319878598b792"></a><!-- doxytag: member="com::mxgraph::mxRectangle::mxRectangle" ref="afa9fda9798994a6c2e1319878598b792" args="(Rectangle rect)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxRectangle::mxRectangle </td>
    +          <td>(</td>
    +          <td class="paramtype">Rectangle&nbsp;</td>
    +          <td class="paramname"> <em>rect</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a copy of the given rectangle. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>rect</em>&nbsp;</td><td>Rectangle to construct a copy of.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0de5be785fd18e109ff7eb9aed6ef2e9"></a><!-- doxytag: member="com::mxgraph::mxRectangle::mxRectangle" ref="a0de5be785fd18e109ff7eb9aed6ef2e9" args="(double x, double y, double width, double height)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxRectangle::mxRectangle </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>height</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a rectangle using the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the new rectangle.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the new rectangle.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>Width of the new rectangle.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td>Height of the new rectangle.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a5e971cdff92e9e53071232dc80cbc8b0"></a><!-- doxytag: member="com::mxgraph::mxRectangle::Add" ref="a5e971cdff92e9e53071232dc80cbc8b0" args="(mxRectangle rect)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxRectangle::Add </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>rect</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds the given rectangle to this rectangle. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa9e9e649efa5ad7239db970ec735e846"></a><!-- doxytag: member="com::mxgraph::mxRectangle::Clone" ref="aa9e9e649efa5ad7239db970ec735e846" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">new <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxRectangle::Clone </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a new instance of the same rectangle. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a clone of the rectangle.</dd></dl>
    +
    +<p>Reimplemented from <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8c6344af8fbe69d3432fbb6018011a27">com::mxgraph::mxPoint</a>.</p>
    +
    +<p>Reimplemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a1bc5e0feb17c50f9bab5853af0e089f0">com::mxgraph::mxGeometry</a>, and <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7a357573a28f227b884eb6a798b1c2df">com::mxgraph::mxCellState</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3f76585b333bf7fe2d58ed38e8296b26"></a><!-- doxytag: member="com::mxgraph::mxRectangle::Contains" ref="a3f76585b333bf7fe2d58ed38e8296b26" args="(double x, double y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxRectangle::Contains </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if this rectangle contains the given point (x, y). </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the point.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the point.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if (x, y) lies within the given area.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afa2600d85162a1db0129650b4e636448"></a><!-- doxytag: member="com::mxgraph::mxRectangle::Equals" ref="afa2600d85162a1db0129650b4e636448" args="(Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">new Boolean com::mxgraph::mxRectangle::Equals </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given object equals this rectangle. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if obj is equal.</dd></dl>
    +
    +<p>Reimplemented from <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a6a68cb2cfd1256e32bd4add2c5fc9aa1">com::mxgraph::mxPoint</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4c133c9e19ff56d3ee55aca15e93cdf0"></a><!-- doxytag: member="com::mxgraph::mxRectangle::GetCenterX" ref="a4c133c9e19ff56d3ee55aca15e93cdf0" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxRectangle::GetCenterX </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the x-coordinate of the center. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the x-coordinate of the center.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a94596cde2d663cd1746088eea215493f"></a><!-- doxytag: member="com::mxgraph::mxRectangle::GetCenterY" ref="a94596cde2d663cd1746088eea215493f" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxRectangle::GetCenterY </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the y-coordinate of the center. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the y-coordinate of the center.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acdc68e90b0b634aacf6f3054ed71a97a"></a><!-- doxytag: member="com::mxgraph::mxRectangle::GetRectangle" ref="acdc68e90b0b634aacf6f3054ed71a97a" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Rectangle com::mxgraph::mxRectangle::GetRectangle </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds as a new rectangle. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new rectangle for the bounds.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad499030b067d0ee6e87af68542ec7115"></a><!-- doxytag: member="com::mxgraph::mxRectangle::Grow" ref="ad499030b067d0ee6e87af68542ec7115" args="(double amount)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxRectangle::Grow </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>amount</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Grows the rectangle by the given amount, that is, this method subtracts the given amount from the x- and y-coordinates and adds twice the amount to the width and height. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>amount</em>&nbsp;</td><td>Amount by which the rectangle should be grown.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adbcd79c0023233969be1e4ee0626118b"></a><!-- doxytag: member="com::mxgraph::mxRectangle::setRect" ref="adbcd79c0023233969be1e4ee0626118b" args="(double x, double y, double w, double h)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxRectangle::setRect </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets this rectangle to the specified values. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="adb1bfc2cc3f1215b9357bdeda242a062"></a><!-- doxytag: member="com::mxgraph::mxRectangle::height" ref="adb1bfc2cc3f1215b9357bdeda242a062" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adb1bfc2cc3f1215b9357bdeda242a062">com::mxgraph::mxRectangle::height</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the height. Default is 0. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a62c3f92da547c942f319b6aecd71765c"></a><!-- doxytag: member="com::mxgraph::mxRectangle::width" ref="a62c3f92da547c942f319b6aecd71765c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a62c3f92da547c942f319b6aecd71765c">com::mxgraph::mxRectangle::width</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the width. Default is 0. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a32c0d49b1279c27fec655cb831240975"></a><!-- doxytag: member="com::mxgraph::mxRectangle::Height" ref="a32c0d49b1279c27fec655cb831240975" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxRectangle::Height<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the height of the rectangle. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afa76b4b8e9c6d7a4f6e6cecaf8c71b3d"></a><!-- doxytag: member="com::mxgraph::mxRectangle::Width" ref="afa76b4b8e9c6d7a4f6e6cecaf8c71b3d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxRectangle::Width<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the width of the rectangle. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/utils/mxRectangle.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxRectangle.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxRectangle.png
    new file mode 100644
    index 000000000..c1907ef05
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxRectangle.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSaxOutputHandler-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSaxOutputHandler-members.html
    new file mode 100644
    index 000000000..560619514
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSaxOutputHandler-members.html
    @@ -0,0 +1,50 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxSaxOutputHandler Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a56892081b94e26a8e0a30479f7be4138">canvas</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a480dc9414a3f3f33eac65c2c34a8616f">Canvas</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a9f9f2f0a5243b568ac6e8de2e2647039">ElementHandler</a>(Dictionary&lt; string, string &gt; atts)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td></td></tr>
    +  <tr bgcolor="#f0f0f0"><td><b>GetDouble</b>(Dictionary&lt; string, string &gt; atts, string key) (defined in <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a>)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr bgcolor="#f0f0f0"><td><b>GetDouble</b>(Dictionary&lt; string, string &gt; atts, string key, double defaultValue) (defined in <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a>)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr bgcolor="#f0f0f0"><td><b>GetInt</b>(Dictionary&lt; string, string &gt; atts, string key) (defined in <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a>)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr bgcolor="#f0f0f0"><td><b>GetInt</b>(Dictionary&lt; string, string &gt; atts, string key, int defaultValue) (defined in <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a>)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr bgcolor="#f0f0f0"><td><b>GetString</b>(Dictionary&lt; string, string &gt; atts, string key) (defined in <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a>)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr bgcolor="#f0f0f0"><td><b>GetString</b>(Dictionary&lt; string, string &gt; atts, string key, string defaultValue) (defined in <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a>)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a7a96643ffe5efc1c5443fc3e84de5d7a">handlers</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#aa07ba987b0f6a422e035f19d41c2f1ae">InitHandlers</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr bgcolor="#f0f0f0"><td><b>IsTrue</b>(Dictionary&lt; string, string &gt; atts, string key) (defined in <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a>)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr bgcolor="#f0f0f0"><td><b>IsTrue</b>(Dictionary&lt; string, string &gt; atts, string key, bool defaultValue) (defined in <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a>)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a77a3d0762140846abd5cad1722c265c8">mxSaxOutputHandler</a>(mxICanvas2D canvas)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a045e64337ad2560628dbe1a53243c0bc">ParseElement</a>(string tagName, Dictionary&lt; string, string &gt; atts)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a34629d7d36006a014933bba3fbc005a3">Read</a>(XmlReader reader)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></td><td><code> [inline]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSaxOutputHandler.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSaxOutputHandler.html
    new file mode 100644
    index 000000000..098e0dd5f
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSaxOutputHandler.html
    @@ -0,0 +1,246 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxSaxOutputHandler Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">mxSaxOutputHandler</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxSaxOutputHandler Class Reference</h1><!-- doxytag: class="com::mxgraph::mxSaxOutputHandler" -->
    +<p><a href="classcom_1_1mxgraph_1_1mxSaxOutputHandler-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">delegate void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a9f9f2f0a5243b568ac6e8de2e2647039">ElementHandler</a> (Dictionary&lt; string, string &gt; atts)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the requirements for an object that parses a node.  <a href="#a9f9f2f0a5243b568ac6e8de2e2647039"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a77a3d0762140846abd5cad1722c265c8">mxSaxOutputHandler</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">mxICanvas2D</a> <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a56892081b94e26a8e0a30479f7be4138">canvas</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new sax output handler for the given canvas.  <a href="#a77a3d0762140846abd5cad1722c265c8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a34629d7d36006a014933bba3fbc005a3">Read</a> (XmlReader reader)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads the given display XML data and parses all elements.  <a href="#a34629d7d36006a014933bba3fbc005a3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a045e64337ad2560628dbe1a53243c0bc">ParseElement</a> (string tagName, Dictionary&lt; string, string &gt; atts)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parses the given element and paints it onto the canvas.  <a href="#a045e64337ad2560628dbe1a53243c0bc"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7c657c0f6bc7048d5be20e5e7141f9a"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::GetString" ref="ab7c657c0f6bc7048d5be20e5e7141f9a" args="(Dictionary&lt; string, string &gt; atts, string key)" -->
    +string&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetString</b> (Dictionary&lt; string, string &gt; atts, string key)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8658d72b2524b33e409de3d00a2a307"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::GetString" ref="ad8658d72b2524b33e409de3d00a2a307" args="(Dictionary&lt; string, string &gt; atts, string key, string defaultValue)" -->
    +string&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetString</b> (Dictionary&lt; string, string &gt; atts, string key, string defaultValue)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad67f95e70ca0de2ddc00bcfd32c919d6"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::GetDouble" ref="ad67f95e70ca0de2ddc00bcfd32c919d6" args="(Dictionary&lt; string, string &gt; atts, string key)" -->
    +double&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetDouble</b> (Dictionary&lt; string, string &gt; atts, string key)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9da66e0bffe8914772cbbd4fa2188de5"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::GetDouble" ref="a9da66e0bffe8914772cbbd4fa2188de5" args="(Dictionary&lt; string, string &gt; atts, string key, double defaultValue)" -->
    +double&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetDouble</b> (Dictionary&lt; string, string &gt; atts, string key, double defaultValue)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acaad5f16b06acf3f5bd6df9d211a8739"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::GetInt" ref="acaad5f16b06acf3f5bd6df9d211a8739" args="(Dictionary&lt; string, string &gt; atts, string key)" -->
    +int&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt</b> (Dictionary&lt; string, string &gt; atts, string key)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a063874c39f9c00bf4a63791c31e48e3c"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::GetInt" ref="a063874c39f9c00bf4a63791c31e48e3c" args="(Dictionary&lt; string, string &gt; atts, string key, int defaultValue)" -->
    +int&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt</b> (Dictionary&lt; string, string &gt; atts, string key, int defaultValue)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5aa4661ef411b71ddae169361acc5f4b"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::IsTrue" ref="a5aa4661ef411b71ddae169361acc5f4b" args="(Dictionary&lt; string, string &gt; atts, string key)" -->
    +bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>IsTrue</b> (Dictionary&lt; string, string &gt; atts, string key)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafd64966ff85a8904342606a5478bf49"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::IsTrue" ref="aafd64966ff85a8904342606a5478bf49" args="(Dictionary&lt; string, string &gt; atts, string key, bool defaultValue)" -->
    +bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>IsTrue</b> (Dictionary&lt; string, string &gt; atts, string key, bool defaultValue)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#aa07ba987b0f6a422e035f19d41c2f1ae">InitHandlers</a> ()</td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">mxICanvas2D</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a56892081b94e26a8e0a30479f7be4138">canvas</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the current canvas.  <a href="#a56892081b94e26a8e0a30479f7be4138"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, <br class="typebreak"/>
    +ElementHandler &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a7a96643ffe5efc1c5443fc3e84de5d7a">handlers</a> = new Dictionary&lt;string, ElementHandler&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the handlers for specific XML nodes.  <a href="#a7a96643ffe5efc1c5443fc3e84de5d7a"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">mxICanvas2D</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a480dc9414a3f3f33eac65c2c34a8616f">Canvas</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the current canvas.  <a href="#a480dc9414a3f3f33eac65c2c34a8616f"></a><br/></td></tr>
    +</table>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a77a3d0762140846abd5cad1722c265c8"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::mxSaxOutputHandler" ref="a77a3d0762140846abd5cad1722c265c8" args="(mxICanvas2D canvas)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxSaxOutputHandler::mxSaxOutputHandler </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">mxICanvas2D</a>&nbsp;</td>
    +          <td class="paramname"> <em>canvas</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new sax output handler for the given canvas. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a9f9f2f0a5243b568ac6e8de2e2647039"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::ElementHandler" ref="a9f9f2f0a5243b568ac6e8de2e2647039" args="(Dictionary&lt; string, string &gt; atts)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">delegate void com::mxgraph::mxSaxOutputHandler::ElementHandler </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, string &gt;&nbsp;</td>
    +          <td class="paramname"> <em>atts</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Defines the requirements for an object that parses a node. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa07ba987b0f6a422e035f19d41c2f1ae"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::InitHandlers" ref="aa07ba987b0f6a422e035f19d41c2f1ae" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxSaxOutputHandler::InitHandlers </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +</div>
    +</div>
    +<a class="anchor" id="a045e64337ad2560628dbe1a53243c0bc"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::ParseElement" ref="a045e64337ad2560628dbe1a53243c0bc" args="(string tagName, Dictionary&lt; string, string &gt; atts)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxSaxOutputHandler::ParseElement </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>tagName</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, string &gt;&nbsp;</td>
    +          <td class="paramname"> <em>atts</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Parses the given element and paints it onto the canvas. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>tagName</em>&nbsp;</td><td>Name of the node to be parsed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attrs</em>&nbsp;</td><td>Attributes of the node to be parsed.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a34629d7d36006a014933bba3fbc005a3"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::Read" ref="a34629d7d36006a014933bba3fbc005a3" args="(XmlReader reader)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxSaxOutputHandler::Read </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlReader&nbsp;</td>
    +          <td class="paramname"> <em>reader</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reads the given display XML data and parses all elements. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>reader</em>&nbsp;</td><td>Reader that represents the display XML data.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a56892081b94e26a8e0a30479f7be4138"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::canvas" ref="a56892081b94e26a8e0a30479f7be4138" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">mxICanvas2D</a> <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a56892081b94e26a8e0a30479f7be4138">com::mxgraph::mxSaxOutputHandler::canvas</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the current canvas. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7a96643ffe5efc1c5443fc3e84de5d7a"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::handlers" ref="a7a96643ffe5efc1c5443fc3e84de5d7a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, ElementHandler&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a7a96643ffe5efc1c5443fc3e84de5d7a">com::mxgraph::mxSaxOutputHandler::handlers</a> = new Dictionary&lt;string, ElementHandler&gt;()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the handlers for specific XML nodes. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a480dc9414a3f3f33eac65c2c34a8616f"></a><!-- doxytag: member="com::mxgraph::mxSaxOutputHandler::Canvas" ref="a480dc9414a3f3f33eac65c2c34a8616f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">mxICanvas2D</a> com::mxgraph::mxSaxOutputHandler::Canvas<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the current canvas. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/reader/mxSaxOutputHandler.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSession-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSession-members.html
    new file mode 100644
    index 000000000..a2522f962
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSession-members.html
    @@ -0,0 +1,49 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxSession Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a67c9f110e62aa2417ffe28decef0d462">buffer</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa12b929541f6a5a68b73d2a48133f40c">DEFAULT_TIMEOUT</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a435f6fac66560ec4c38a9f0cdf101a1a">Destroy</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#ad1c81c4f7d9e14d47e2abcaeed7d2537">diagram</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a8e4a0cb888cd971989859ac593fa9b5a">DiagramChanged</a>(Object sender, string xml)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a509f4e15b46aaa9c3430e7e7fff7e529">GetInitialMessage</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a5b93137a33bc765be42be673de5abc4b">id</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aacafca1659c347daa5756352e34e8776">Id</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a26506ed45699525b39a3140d5721f501">InactiveTimeMillis</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#af45decd662d3d2eba53103718b5fb3cb">Init</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa61c27d2f2bc6c4a6c9813083b80bf8b">lastTimeMillis</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a742d17a2f7b65e4ca58287ab87a1bbed">mxSession</a>(string id, mxSharedDiagram diagram)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a602341adc9d083af3c799bf1249d8903">Poll</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a6c6fa3d1fce445afbf3b1b98821aa4d5">Poll</a>(int timeout)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#abb3efdea7640145a0c45c3d867db6843">Receive</a>(XmlNode message)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></td><td><code> [inline]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSession.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSession.html
    new file mode 100644
    index 000000000..00ff2839f
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSession.html
    @@ -0,0 +1,397 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxSession Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">mxSession</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxSession Class Reference</h1><!-- doxytag: class="com::mxgraph::mxSession" -->
    +<p>Implements a session that may be attached to a shared diagram.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxSession-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a742d17a2f7b65e4ca58287ab87a1bbed">mxSession</a> (string <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a5b93137a33bc765be42be673de5abc4b">id</a>, <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">mxSharedDiagram</a> <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#ad1c81c4f7d9e14d47e2abcaeed7d2537">diagram</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new session with the given ID.  <a href="#a742d17a2f7b65e4ca58287ab87a1bbed"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#af45decd662d3d2eba53103718b5fb3cb">Init</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the session buffer and returns a string that represents the state of the session.  <a href="#af45decd662d3d2eba53103718b5fb3cb"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a509f4e15b46aaa9c3430e7e7fff7e529">GetInitialMessage</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an XML string that represents the current state of the session and the shared diagram. A globally unique ID is used as the session's namespace, which is used on the client side to prefix IDs of newly created cells.  <a href="#a509f4e15b46aaa9c3430e7e7fff7e529"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#abb3efdea7640145a0c45c3d867db6843">Receive</a> (XmlNode message)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Posts the change represented by the given XML string to the shared diagram.  <a href="#abb3efdea7640145a0c45c3d867db6843"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a602341adc9d083af3c799bf1249d8903">Poll</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the changes received by other sessions for the shared diagram. The method returns an empty XML node if no change was received within 10 seconds.  <a href="#a602341adc9d083af3c799bf1249d8903"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a6c6fa3d1fce445afbf3b1b98821aa4d5">Poll</a> (int timeout)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the changes received by other sessions for the shared diagram. The method returns an empty XML node if no change was received within the given timeout.  <a href="#a6c6fa3d1fce445afbf3b1b98821aa4d5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a8e4a0cb888cd971989859ac593fa9b5a">DiagramChanged</a> (Object sender, string xml)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invoked when the shared diagram has changed.  <a href="#a8e4a0cb888cd971989859ac593fa9b5a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a26506ed45699525b39a3140d5721f501">InactiveTimeMillis</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of milliseconds this session has been inactive.  <a href="#a26506ed45699525b39a3140d5721f501"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a435f6fac66560ec4c38a9f0cdf101a1a">Destroy</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroys the session and removes its listener from the shared diagram.  <a href="#a435f6fac66560ec4c38a9f0cdf101a1a"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa12b929541f6a5a68b73d2a48133f40c">DEFAULT_TIMEOUT</a> = 10000</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default timeout is 10000 ms.  <a href="#aa12b929541f6a5a68b73d2a48133f40c"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a5b93137a33bc765be42be673de5abc4b">id</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the session ID.  <a href="#a5b93137a33bc765be42be673de5abc4b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">mxSharedDiagram</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#ad1c81c4f7d9e14d47e2abcaeed7d2537">diagram</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference to the shared diagram.  <a href="#ad1c81c4f7d9e14d47e2abcaeed7d2537"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">StringBuilder&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a67c9f110e62aa2417ffe28decef0d462">buffer</a> = new StringBuilder()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the send buffer for this session.  <a href="#a67c9f110e62aa2417ffe28decef0d462"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa61c27d2f2bc6c4a6c9813083b80bf8b">lastTimeMillis</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the last active time millis.  <a href="#aa61c27d2f2bc6c4a6c9813083b80bf8b"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aacafca1659c347daa5756352e34e8776">Id</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the session ID.  <a href="#aacafca1659c347daa5756352e34e8776"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a session that may be attached to a shared diagram. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a742d17a2f7b65e4ca58287ab87a1bbed"></a><!-- doxytag: member="com::mxgraph::mxSession::mxSession" ref="a742d17a2f7b65e4ca58287ab87a1bbed" args="(string id, mxSharedDiagram diagram)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxSession::mxSession </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>id</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">mxSharedDiagram</a>&nbsp;</td>
    +          <td class="paramname"> <em>diagram</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new session with the given ID. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>Specifies the session ID to be used.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>diagram</em>&nbsp;</td><td>Reference to the shared diagram.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a435f6fac66560ec4c38a9f0cdf101a1a"></a><!-- doxytag: member="com::mxgraph::mxSession::Destroy" ref="a435f6fac66560ec4c38a9f0cdf101a1a" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxSession::Destroy </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Destroys the session and removes its listener from the shared diagram. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8e4a0cb888cd971989859ac593fa9b5a"></a><!-- doxytag: member="com::mxgraph::mxSession::DiagramChanged" ref="a8e4a0cb888cd971989859ac593fa9b5a" args="(Object sender, string xml)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxSession::DiagramChanged </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>sender</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>xml</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Invoked when the shared diagram has changed. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>Session where the change was received from.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>xml</em>&nbsp;</td><td>XML string that represents the change.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a509f4e15b46aaa9c3430e7e7fff7e529"></a><!-- doxytag: member="com::mxgraph::mxSession::GetInitialMessage" ref="a509f4e15b46aaa9c3430e7e7fff7e529" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxSession::GetInitialMessage </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns an XML string that represents the current state of the session and the shared diagram. A globally unique ID is used as the session's namespace, which is used on the client side to prefix IDs of newly created cells. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a26506ed45699525b39a3140d5721f501"></a><!-- doxytag: member="com::mxgraph::mxSession::InactiveTimeMillis" ref="a26506ed45699525b39a3140d5721f501" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">long com::mxgraph::mxSession::InactiveTimeMillis </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of milliseconds this session has been inactive. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af45decd662d3d2eba53103718b5fb3cb"></a><!-- doxytag: member="com::mxgraph::mxSession::Init" ref="af45decd662d3d2eba53103718b5fb3cb" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxSession::Init </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Initializes the session buffer and returns a string that represents the state of the session. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the initial state of the session.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6c6fa3d1fce445afbf3b1b98821aa4d5"></a><!-- doxytag: member="com::mxgraph::mxSession::Poll" ref="a6c6fa3d1fce445afbf3b1b98821aa4d5" args="(int timeout)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxSession::Poll </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>timeout</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the changes received by other sessions for the shared diagram. The method returns an empty XML node if no change was received within the given timeout. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>timeout</em>&nbsp;</td><td>Time in milliseconds to wait for changes.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a string representing the changes to the shared diagram.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a602341adc9d083af3c799bf1249d8903"></a><!-- doxytag: member="com::mxgraph::mxSession::Poll" ref="a602341adc9d083af3c799bf1249d8903" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxSession::Poll </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the changes received by other sessions for the shared diagram. The method returns an empty XML node if no change was received within 10 seconds. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a string representing the changes to the shared diagram.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abb3efdea7640145a0c45c3d867db6843"></a><!-- doxytag: member="com::mxgraph::mxSession::Receive" ref="abb3efdea7640145a0c45c3d867db6843" args="(XmlNode message)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxSession::Receive </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>message</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Posts the change represented by the given XML string to the shared diagram. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>xml</em>&nbsp;</td><td>XML string that represents the change.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a67c9f110e62aa2417ffe28decef0d462"></a><!-- doxytag: member="com::mxgraph::mxSession::buffer" ref="a67c9f110e62aa2417ffe28decef0d462" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">StringBuilder <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a67c9f110e62aa2417ffe28decef0d462">com::mxgraph::mxSession::buffer</a> = new StringBuilder()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the send buffer for this session. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa12b929541f6a5a68b73d2a48133f40c"></a><!-- doxytag: member="com::mxgraph::mxSession::DEFAULT_TIMEOUT" ref="aa12b929541f6a5a68b73d2a48133f40c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa12b929541f6a5a68b73d2a48133f40c">com::mxgraph::mxSession::DEFAULT_TIMEOUT</a> = 10000<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default timeout is 10000 ms. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad1c81c4f7d9e14d47e2abcaeed7d2537"></a><!-- doxytag: member="com::mxgraph::mxSession::diagram" ref="ad1c81c4f7d9e14d47e2abcaeed7d2537" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">mxSharedDiagram</a> <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#ad1c81c4f7d9e14d47e2abcaeed7d2537">com::mxgraph::mxSession::diagram</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reference to the shared diagram. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5b93137a33bc765be42be673de5abc4b"></a><!-- doxytag: member="com::mxgraph::mxSession::id" ref="a5b93137a33bc765be42be673de5abc4b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a5b93137a33bc765be42be673de5abc4b">com::mxgraph::mxSession::id</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the session ID. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa61c27d2f2bc6c4a6c9813083b80bf8b"></a><!-- doxytag: member="com::mxgraph::mxSession::lastTimeMillis" ref="aa61c27d2f2bc6c4a6c9813083b80bf8b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">long <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa61c27d2f2bc6c4a6c9813083b80bf8b">com::mxgraph::mxSession::lastTimeMillis</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the last active time millis. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="aacafca1659c347daa5756352e34e8776"></a><!-- doxytag: member="com::mxgraph::mxSession::Id" ref="aacafca1659c347daa5756352e34e8776" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxSession::Id<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the session ID. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/sharing/mxSession.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSharedDiagram-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSharedDiagram-members.html
    new file mode 100644
    index 000000000..934800454
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSharedDiagram-members.html
    @@ -0,0 +1,44 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxSharedDiagram Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a867955350b3463cdc7af92727deebbd1">AddDelta</a>(String xml)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ac528a7daa6452e26c1e3517f1ef68963">delta</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a3db17c895284a0a4b835c5b6628b5923">DiagramChange</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a3d4597a1b1750ced88c2085768447325">GetDelta</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a06bae16c4c4a61675e16771577681ff8">mxSharedDiagram</a>(string state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a32bb33bee6914b00860028737dfafb9d">ProcessDelta</a>(Object sender, XmlNode delta)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a337f383a39ccfff3a7b27acee9fc763c">ProcessEdit</a>(XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ae303ea16e8a3290b7f46f8be39d0941c">ResetDelta</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#aab9d909873c0071a530d71b88ea729e2">state</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a32a05151825a4c51445535a690fe549d">State</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSharedDiagram.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSharedDiagram.html
    new file mode 100644
    index 000000000..03e4093a6
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxSharedDiagram.html
    @@ -0,0 +1,280 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxSharedDiagram Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">mxSharedDiagram</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxSharedDiagram Class Reference</h1><!-- doxytag: class="com::mxgraph::mxSharedDiagram" -->
    +<p>Implements a diagram that may be shared among multiple sessions.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxSharedDiagram-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a06bae16c4c4a61675e16771577681ff8">mxSharedDiagram</a> (string <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#aab9d909873c0071a530d71b88ea729e2">state</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new diagram with the given initial state.  <a href="#a06bae16c4c4a61675e16771577681ff8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a3d4597a1b1750ced88c2085768447325">GetDelta</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the delta of all changes as a string.  <a href="#a3d4597a1b1750ced88c2085768447325"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a32bb33bee6914b00860028737dfafb9d">ProcessDelta</a> (Object sender, XmlNode <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ac528a7daa6452e26c1e3517f1ef68963">delta</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Appends the given string to the history and dispatches the change to all sessions that are listening to this shared diagram.  <a href="#a32bb33bee6914b00860028737dfafb9d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a337f383a39ccfff3a7b27acee9fc763c">ProcessEdit</a> (XmlNode node)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a867955350b3463cdc7af92727deebbd1">AddDelta</a> (String xml)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the delta of all changes.  <a href="#a867955350b3463cdc7af92727deebbd1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ae303ea16e8a3290b7f46f8be39d0941c">ResetDelta</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the delta of all changes.  <a href="#ae303ea16e8a3290b7f46f8be39d0941c"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#aab9d909873c0071a530d71b88ea729e2">state</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the initial state of the diagram.  <a href="#aab9d909873c0071a530d71b88ea729e2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">StringBuilder&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ac528a7daa6452e26c1e3517f1ef68963">delta</a> = new StringBuilder()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the delta of all changes of initial state.  <a href="#ac528a7daa6452e26c1e3517f1ef68963"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a32a05151825a4c51445535a690fe549d">State</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the initial state of the diagram.  <a href="#a32a05151825a4c51445535a690fe549d"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Events</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">mxDiagramChangeEventHandler&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a3db17c895284a0a4b835c5b6628b5923">DiagramChange</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fires when the diagram was changed.  <a href="#a3db17c895284a0a4b835c5b6628b5923"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a diagram that may be shared among multiple sessions. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a06bae16c4c4a61675e16771577681ff8"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::mxSharedDiagram" ref="a06bae16c4c4a61675e16771577681ff8" args="(string state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxSharedDiagram::mxSharedDiagram </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new diagram with the given initial state. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td>Initial state of the diagram.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a867955350b3463cdc7af92727deebbd1"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::AddDelta" ref="a867955350b3463cdc7af92727deebbd1" args="(String xml)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxSharedDiagram::AddDelta </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>xml</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Clears the delta of all changes. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3d4597a1b1750ced88c2085768447325"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::GetDelta" ref="a3d4597a1b1750ced88c2085768447325" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxSharedDiagram::GetDelta </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the delta of all changes as a string. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a32bb33bee6914b00860028737dfafb9d"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::ProcessDelta" ref="a32bb33bee6914b00860028737dfafb9d" args="(Object sender, XmlNode delta)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxSharedDiagram::ProcessDelta </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>sender</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>delta</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Appends the given string to the history and dispatches the change to all sessions that are listening to this shared diagram. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>delta</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a337f383a39ccfff3a7b27acee9fc763c"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::ProcessEdit" ref="a337f383a39ccfff3a7b27acee9fc763c" args="(XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxSharedDiagram::ProcessEdit </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae303ea16e8a3290b7f46f8be39d0941c"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::ResetDelta" ref="ae303ea16e8a3290b7f46f8be39d0941c" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxSharedDiagram::ResetDelta </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Clears the delta of all changes. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="ac528a7daa6452e26c1e3517f1ef68963"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::delta" ref="ac528a7daa6452e26c1e3517f1ef68963" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">StringBuilder <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ac528a7daa6452e26c1e3517f1ef68963">com::mxgraph::mxSharedDiagram::delta</a> = new StringBuilder()<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the delta of all changes of initial state. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aab9d909873c0071a530d71b88ea729e2"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::state" ref="aab9d909873c0071a530d71b88ea729e2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#aab9d909873c0071a530d71b88ea729e2">com::mxgraph::mxSharedDiagram::state</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the initial state of the diagram. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a32a05151825a4c51445535a690fe549d"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::State" ref="a32a05151825a4c51445535a690fe549d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxSharedDiagram::State<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the initial state of the diagram. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Event Documentation</h2>
    +<a class="anchor" id="a3db17c895284a0a4b835c5b6628b5923"></a><!-- doxytag: member="com::mxgraph::mxSharedDiagram::DiagramChange" ref="a3db17c895284a0a4b835c5b6628b5923" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxDiagramChangeEventHandler com::mxgraph::mxSharedDiagram::DiagramChange</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Fires when the diagram was changed. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/sharing/mxSharedState.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencil-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencil-members.html
    new file mode 100644
    index 000000000..88f58c96e
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencil-members.html
    @@ -0,0 +1,57 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStencil Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a99acd943034d5503bf048c2574a431d0">aspect</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ad5bc3a0e9ac020f3def014201dcafe9c">bgNode</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a7dc9504d6a515d7f348c95464deb95e0">ComputeAspect</a>(mxCellState state, mxRectangle bounds, string direction)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a8522152762d9f475a48a3169d01b4229">CreateCanvas</a>(mxGdiCanvas gc)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af121843569f520d2a1d165d4e9da41f7">desc</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a31e0ce00ec08d00aef2059e5fc5504fa">Description</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a27e9d15a0078eb7864efa8b394f350b9">DrawElement</a>(mxGdiCanvas2D canvas, mxCellState state, XmlElement node, mxRectangle aspect)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a43b08f91f8143d818d982a91ff075fe9">DrawShadow</a>(mxGdiCanvas2D canvas, mxCellState state, double rotation, bool flipH, bool flipV, mxRectangle bounds, double alpha, bool filled)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ae038ad2567e18841f53e1c526dc8d732">DrawShape</a>(mxGdiCanvas2D canvas, mxCellState state, mxRectangle bounds, bool background)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a58bc6c170859115aaa5dee655934da71">EvaluateAttribute</a>(XmlElement elt, string attribute, mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ae4a6453b92f7c388e21662116bdc4965">fgNode</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ad642b6a5d0fce4c0ca2c4b40e5f87a3b">GetDouble</a>(XmlElement elt, String attribute)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a800889e108a399ee0cdfa16489718296">GetDouble</a>(XmlElement elt, String attribute, double defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#aee36f48dc2d2bba4c6e2a053dfba80a7">GetInt</a>(XmlElement elt, string attribute, int defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a26ab5c8df26dfd12e3535a4a0533d63a">GetString</a>(XmlElement elt, string attribute, string defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ab119e79baf1f2fd94de73f2e53cfde62">h0</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af9ada374b25ca21d16765642e32515b1">lastMoveX</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a37b57288c72c862106e9f4ed7fbc46b0">lastMoveY</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#aca520171898bbe4c3086c87f84793a7a">mxStencil</a>(XmlElement description)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ac90b17ce50b78ee5966c399a9ec374db">PaintShape</a>(mxGdiCanvas gc, mxCellState state)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#addff93bc760640f2c47b5c06c13f7dc4">ParseDescription</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a5353f336150a306f765c11d19d3a576a">strokewidth</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af575fda1428e1ed270cf88e2cb009a91">w0</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></td><td><code> [protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencil.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencil.html
    new file mode 100644
    index 000000000..e494dc0f0
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencil.html
    @@ -0,0 +1,767 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxStencil Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">mxStencil</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStencil Class Reference</h1><!-- doxytag: class="com::mxgraph::mxStencil" -->
    +<p>Implements a stencil for the given XML definition. This class implements the <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a> stencil schema.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxStencil-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#aca520171898bbe4c3086c87f84793a7a">mxStencil</a> (XmlElement description)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new stencil for the given <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a> shape description.  <a href="#aca520171898bbe4c3086c87f84793a7a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ac90b17ce50b78ee5966c399a9ec374db">PaintShape</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a> gc, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Paints the stencil for the given state.  <a href="#ac90b17ce50b78ee5966c399a9ec374db"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ae038ad2567e18841f53e1c526dc8d732">DrawShape</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a> canvas, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> bounds, bool background)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a58bc6c170859115aaa5dee655934da71">EvaluateAttribute</a> (XmlElement elt, string attribute, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the attribute for the given name from the given node. If the attribute.  <a href="#a58bc6c170859115aaa5dee655934da71"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a8522152762d9f475a48a3169d01b4229">CreateCanvas</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a> gc)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates the canvas for rendering the stencil.  <a href="#a8522152762d9f475a48a3169d01b4229"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a43b08f91f8143d818d982a91ff075fe9">DrawShadow</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a> canvas, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, double rotation, bool flipH, bool flipV, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> bounds, double alpha, bool filled)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the shadow.  <a href="#a43b08f91f8143d818d982a91ff075fe9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a7dc9504d6a515d7f348c95464deb95e0">ComputeAspect</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> bounds, string direction)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a rectangle that contains the offset in x and y and the horizontal.  <a href="#a7dc9504d6a515d7f348c95464deb95e0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a27e9d15a0078eb7864efa8b394f350b9">DrawElement</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a> canvas, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, XmlElement node, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a99acd943034d5503bf048c2574a431d0">aspect</a>)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#aee36f48dc2d2bba4c6e2a053dfba80a7">GetInt</a> (XmlElement elt, string attribute, int defaultValue)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ad642b6a5d0fce4c0ca2c4b40e5f87a3b">GetDouble</a> (XmlElement elt, String attribute)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a800889e108a399ee0cdfa16489718296">GetDouble</a> (XmlElement elt, String attribute, double defaultValue)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a26ab5c8df26dfd12e3535a4a0533d63a">GetString</a> (XmlElement elt, string attribute, string defaultValue)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the given attribute or the default value.  <a href="#a26ab5c8df26dfd12e3535a4a0533d63a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#addff93bc760640f2c47b5c06c13f7dc4">ParseDescription</a> ()</td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">XmlElement&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af121843569f520d2a1d165d4e9da41f7">desc</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the top-level node of the stencil definition.  <a href="#af121843569f520d2a1d165d4e9da41f7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a99acd943034d5503bf048c2574a431d0">aspect</a> = null</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the aspect of the shape. Default is "auto".  <a href="#a99acd943034d5503bf048c2574a431d0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af575fda1428e1ed270cf88e2cb009a91">w0</a> = 100</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the width of the shape. Default is 100.  <a href="#af575fda1428e1ed270cf88e2cb009a91"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ab119e79baf1f2fd94de73f2e53cfde62">h0</a> = 100</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the height of the shape. Default is 100.  <a href="#ab119e79baf1f2fd94de73f2e53cfde62"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">XmlElement&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ad5bc3a0e9ac020f3def014201dcafe9c">bgNode</a> = null</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the XML node with the stencil description.  <a href="#ad5bc3a0e9ac020f3def014201dcafe9c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">XmlElement&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ae4a6453b92f7c388e21662116bdc4965">fgNode</a> = null</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the XML node with the stencil description.  <a href="#ae4a6453b92f7c388e21662116bdc4965"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a5353f336150a306f765c11d19d3a576a">strokewidth</a> = null</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the strokewidth direction from the description.  <a href="#a5353f336150a306f765c11d19d3a576a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af9ada374b25ca21d16765642e32515b1">lastMoveX</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the last x-position of the cursor.  <a href="#af9ada374b25ca21d16765642e32515b1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a37b57288c72c862106e9f4ed7fbc46b0">lastMoveY</a> = 0</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the last y-position of the cursor.  <a href="#a37b57288c72c862106e9f4ed7fbc46b0"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">XmlElement&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a31e0ce00ec08d00aef2059e5fc5504fa">Description</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the description.  <a href="#a31e0ce00ec08d00aef2059e5fc5504fa"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Implements a stencil for the given XML definition. This class implements the <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a> stencil schema. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="aca520171898bbe4c3086c87f84793a7a"></a><!-- doxytag: member="com::mxgraph::mxStencil::mxStencil" ref="aca520171898bbe4c3086c87f84793a7a" args="(XmlElement description)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxStencil::mxStencil </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlElement&nbsp;</td>
    +          <td class="paramname"> <em>description</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new stencil for the given <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a> shape description. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>description</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a7dc9504d6a515d7f348c95464deb95e0"></a><!-- doxytag: member="com::mxgraph::mxStencil::ComputeAspect" ref="a7dc9504d6a515d7f348c95464deb95e0" args="(mxCellState state, mxRectangle bounds, string direction)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxStencil::ComputeAspect </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>bounds</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>direction</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a rectangle that contains the offset in x and y and the horizontal. </p>
    +<p>and vertical scale in width and height used to draw this shape inside the given rectangle. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>bounds</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>direction</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8522152762d9f475a48a3169d01b4229"></a><!-- doxytag: member="com::mxgraph::mxStencil::CreateCanvas" ref="a8522152762d9f475a48a3169d01b4229" args="(mxGdiCanvas gc)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a> com::mxgraph::mxStencil::CreateCanvas </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a>&nbsp;</td>
    +          <td class="paramname"> <em>gc</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates the canvas for rendering the stencil. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>gc</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a27e9d15a0078eb7864efa8b394f350b9"></a><!-- doxytag: member="com::mxgraph::mxStencil::DrawElement" ref="a27e9d15a0078eb7864efa8b394f350b9" args="(mxGdiCanvas2D canvas, mxCellState state, XmlElement node, mxRectangle aspect)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxStencil::DrawElement </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a>&nbsp;</td>
    +          <td class="paramname"> <em>canvas</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlElement&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>aspect</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Draws the given element. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>canvas</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>aspect</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a43b08f91f8143d818d982a91ff075fe9"></a><!-- doxytag: member="com::mxgraph::mxStencil::DrawShadow" ref="a43b08f91f8143d818d982a91ff075fe9" args="(mxGdiCanvas2D canvas, mxCellState state, double rotation, bool flipH, bool flipV, mxRectangle bounds, double alpha, bool filled)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxStencil::DrawShadow </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a>&nbsp;</td>
    +          <td class="paramname"> <em>canvas</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>rotation</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipH</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipV</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>bounds</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>alpha</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>filled</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the shadow. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>canvas</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>rotation</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>flipH</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>flipV</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>bounds</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>alpha</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae038ad2567e18841f53e1c526dc8d732"></a><!-- doxytag: member="com::mxgraph::mxStencil::DrawShape" ref="ae038ad2567e18841f53e1c526dc8d732" args="(mxGdiCanvas2D canvas, mxCellState state, mxRectangle bounds, bool background)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxStencil::DrawShape </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a>&nbsp;</td>
    +          <td class="paramname"> <em>canvas</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>bounds</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>background</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Draws this stencil inside the given bounds. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a58bc6c170859115aaa5dee655934da71"></a><!-- doxytag: member="com::mxgraph::mxStencil::EvaluateAttribute" ref="a58bc6c170859115aaa5dee655934da71" args="(XmlElement elt, string attribute, mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxStencil::EvaluateAttribute </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlElement&nbsp;</td>
    +          <td class="paramname"> <em>elt</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attribute</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Gets the attribute for the given name from the given node. If the attribute. </p>
    +<p>does not exist then the text content of the node is evaluated and if it is a function it is invoked with &lt;state&gt; as the only argument and the return value is used as the attribute value to be returned. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>elt</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attribute</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a800889e108a399ee0cdfa16489718296"></a><!-- doxytag: member="com::mxgraph::mxStencil::GetDouble" ref="a800889e108a399ee0cdfa16489718296" args="(XmlElement elt, String attribute, double defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxStencil::GetDouble </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlElement&nbsp;</td>
    +          <td class="paramname"> <em>elt</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>attribute</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Returns the given attribute or the default value. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>elt</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attribute</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad642b6a5d0fce4c0ca2c4b40e5f87a3b"></a><!-- doxytag: member="com::mxgraph::mxStencil::GetDouble" ref="ad642b6a5d0fce4c0ca2c4b40e5f87a3b" args="(XmlElement elt, String attribute)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxStencil::GetDouble </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlElement&nbsp;</td>
    +          <td class="paramname"> <em>elt</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>attribute</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Returns the given attribute or 0. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>elt</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attribute</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aee36f48dc2d2bba4c6e2a053dfba80a7"></a><!-- doxytag: member="com::mxgraph::mxStencil::GetInt" ref="aee36f48dc2d2bba4c6e2a053dfba80a7" args="(XmlElement elt, string attribute, int defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxStencil::GetInt </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlElement&nbsp;</td>
    +          <td class="paramname"> <em>elt</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attribute</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Returns the given attribute or the default value. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>elt</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attribute</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a26ab5c8df26dfd12e3535a4a0533d63a"></a><!-- doxytag: member="com::mxgraph::mxStencil::GetString" ref="a26ab5c8df26dfd12e3535a4a0533d63a" args="(XmlElement elt, string attribute, string defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxStencil::GetString </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlElement&nbsp;</td>
    +          <td class="paramname"> <em>elt</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>attribute</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the given attribute or the default value. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>elt</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attribute</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac90b17ce50b78ee5966c399a9ec374db"></a><!-- doxytag: member="com::mxgraph::mxStencil::PaintShape" ref="ac90b17ce50b78ee5966c399a9ec374db" args="(mxGdiCanvas gc, mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxStencil::PaintShape </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a>&nbsp;</td>
    +          <td class="paramname"> <em>gc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Paints the stencil for the given state. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="addff93bc760640f2c47b5c06c13f7dc4"></a><!-- doxytag: member="com::mxgraph::mxStencil::ParseDescription" ref="addff93bc760640f2c47b5c06c13f7dc4" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxStencil::ParseDescription </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<p>Parses the description of this shape. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a99acd943034d5503bf048c2574a431d0"></a><!-- doxytag: member="com::mxgraph::mxStencil::aspect" ref="a99acd943034d5503bf048c2574a431d0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a99acd943034d5503bf048c2574a431d0">com::mxgraph::mxStencil::aspect</a> = null<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the aspect of the shape. Default is "auto". </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad5bc3a0e9ac020f3def014201dcafe9c"></a><!-- doxytag: member="com::mxgraph::mxStencil::bgNode" ref="ad5bc3a0e9ac020f3def014201dcafe9c" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">XmlElement <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ad5bc3a0e9ac020f3def014201dcafe9c">com::mxgraph::mxStencil::bgNode</a> = null<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the XML node with the stencil description. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af121843569f520d2a1d165d4e9da41f7"></a><!-- doxytag: member="com::mxgraph::mxStencil::desc" ref="af121843569f520d2a1d165d4e9da41f7" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">XmlElement <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af121843569f520d2a1d165d4e9da41f7">com::mxgraph::mxStencil::desc</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the top-level node of the stencil definition. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae4a6453b92f7c388e21662116bdc4965"></a><!-- doxytag: member="com::mxgraph::mxStencil::fgNode" ref="ae4a6453b92f7c388e21662116bdc4965" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">XmlElement <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ae4a6453b92f7c388e21662116bdc4965">com::mxgraph::mxStencil::fgNode</a> = null<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the XML node with the stencil description. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab119e79baf1f2fd94de73f2e53cfde62"></a><!-- doxytag: member="com::mxgraph::mxStencil::h0" ref="ab119e79baf1f2fd94de73f2e53cfde62" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ab119e79baf1f2fd94de73f2e53cfde62">com::mxgraph::mxStencil::h0</a> = 100<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the height of the shape. Default is 100. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af9ada374b25ca21d16765642e32515b1"></a><!-- doxytag: member="com::mxgraph::mxStencil::lastMoveX" ref="af9ada374b25ca21d16765642e32515b1" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af9ada374b25ca21d16765642e32515b1">com::mxgraph::mxStencil::lastMoveX</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the last x-position of the cursor. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a37b57288c72c862106e9f4ed7fbc46b0"></a><!-- doxytag: member="com::mxgraph::mxStencil::lastMoveY" ref="a37b57288c72c862106e9f4ed7fbc46b0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a37b57288c72c862106e9f4ed7fbc46b0">com::mxgraph::mxStencil::lastMoveY</a> = 0<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the last y-position of the cursor. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5353f336150a306f765c11d19d3a576a"></a><!-- doxytag: member="com::mxgraph::mxStencil::strokewidth" ref="a5353f336150a306f765c11d19d3a576a" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a5353f336150a306f765c11d19d3a576a">com::mxgraph::mxStencil::strokewidth</a> = null<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the strokewidth direction from the description. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af575fda1428e1ed270cf88e2cb009a91"></a><!-- doxytag: member="com::mxgraph::mxStencil::w0" ref="af575fda1428e1ed270cf88e2cb009a91" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af575fda1428e1ed270cf88e2cb009a91">com::mxgraph::mxStencil::w0</a> = 100<code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the width of the shape. Default is 100. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a31e0ce00ec08d00aef2059e5fc5504fa"></a><!-- doxytag: member="com::mxgraph::mxStencil::Description" ref="a31e0ce00ec08d00aef2059e5fc5504fa" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">XmlElement com::mxgraph::mxStencil::Description<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the description. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/canvas/mxStencil.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencilRegistry-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencilRegistry-members.html
    new file mode 100644
    index 000000000..a7f3ffdba
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencilRegistry-members.html
    @@ -0,0 +1,37 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStencilRegistry Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html">com::mxgraph::mxStencilRegistry</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html#a2a8321f136c7a514dc755824d6302032">AddStencil</a>(string name, mxStencil stencil)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html">com::mxgraph::mxStencilRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html#a03d67ba6966f732d1faa8f927819e754">GetStencil</a>(string name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html">com::mxgraph::mxStencilRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr bgcolor="#f0f0f0"><td><b>stencils</b> (defined in <a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html">com::mxgraph::mxStencilRegistry</a>)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html">com::mxgraph::mxStencilRegistry</a></td><td><code> [protected, static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencilRegistry.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencilRegistry.html
    new file mode 100644
    index 000000000..7b5be2404
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStencilRegistry.html
    @@ -0,0 +1,115 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxStencilRegistry Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html">mxStencilRegistry</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStencilRegistry Class Reference</h1><!-- doxytag: class="com::mxgraph::mxStencilRegistry" -->
    +<p><a href="classcom_1_1mxgraph_1_1mxStencilRegistry-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html#a2a8321f136c7a514dc755824d6302032">AddStencil</a> (string name, <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">mxStencil</a> stencil)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the given stencil.  <a href="#a2a8321f136c7a514dc755824d6302032"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">mxStencil</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html#a03d67ba6966f732d1faa8f927819e754">GetStencil</a> (string name)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the stencil for the given name.  <a href="#a03d67ba6966f732d1faa8f927819e754"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a26f0c9a5145132f7d9af7dbba8ae2daf"></a><!-- doxytag: member="com::mxgraph::mxStencilRegistry::stencils" ref="a26f0c9a5145132f7d9af7dbba8ae2daf" args="" -->
    +static Dictionary&lt; string, <br class="typebreak"/>
    +<a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">mxStencil</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>stencils</b> = new Dictionary&lt;string, <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">mxStencil</a>&gt;()</td></tr>
    +</table>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a2a8321f136c7a514dc755824d6302032"></a><!-- doxytag: member="com::mxgraph::mxStencilRegistry::AddStencil" ref="a2a8321f136c7a514dc755824d6302032" args="(string name, mxStencil stencil)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static void com::mxgraph::mxStencilRegistry::AddStencil </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>name</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">mxStencil</a>&nbsp;</td>
    +          <td class="paramname"> <em>stencil</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds the given stencil. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>stencil</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a03d67ba6966f732d1faa8f927819e754"></a><!-- doxytag: member="com::mxgraph::mxStencilRegistry::GetStencil" ref="a03d67ba6966f732d1faa8f927819e754" args="(string name)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">mxStencil</a> com::mxgraph::mxStencilRegistry::GetStencil </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>name</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the stencil for the given name. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/canvas/mxStencilRegistry.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStyleRegistry-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStyleRegistry-members.html
    new file mode 100644
    index 000000000..ae536e3f9
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStyleRegistry-members.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStyleRegistry Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html">com::mxgraph::mxStyleRegistry</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a1667ab563793cc2b36c6014b48ec74f8">GetName</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html">com::mxgraph::mxStyleRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a3689d9cc958022accbb06bccb3d6502c">GetValue</a>(String name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html">com::mxgraph::mxStyleRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#ae867348aa79960560ef57ec6179358ee">PutValue</a>(String name, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html">com::mxgraph::mxStyleRegistry</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a45d02688cdf739206cb4452da8ae85e3">values</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html">com::mxgraph::mxStyleRegistry</a></td><td><code> [protected, static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStyleRegistry.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStyleRegistry.html
    new file mode 100644
    index 000000000..812d63a60
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStyleRegistry.html
    @@ -0,0 +1,143 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxStyleRegistry Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html">mxStyleRegistry</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStyleRegistry Class Reference</h1><!-- doxytag: class="com::mxgraph::mxStyleRegistry" -->
    +<p>Static class that acts as a global registry for codecs. See <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> for an example of using this class.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxStyleRegistry-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#ae867348aa79960560ef57ec6179358ee">PutValue</a> (String name, Object value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Puts the given object into the registry under the given name.  <a href="#ae867348aa79960560ef57ec6179358ee"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a3689d9cc958022accbb06bccb3d6502c">GetValue</a> (String name)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value associated with the given name.  <a href="#a3689d9cc958022accbb06bccb3d6502c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a1667ab563793cc2b36c6014b48ec74f8">GetName</a> (Object value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value associated with the given name.  <a href="#a1667ab563793cc2b36c6014b48ec74f8"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a45d02688cdf739206cb4452da8ae85e3">values</a> = new Dictionary&lt;string, Object&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from strings to objects.  <a href="#a45d02688cdf739206cb4452da8ae85e3"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Static class that acts as a global registry for codecs. See <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> for an example of using this class. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a1667ab563793cc2b36c6014b48ec74f8"></a><!-- doxytag: member="com::mxgraph::mxStyleRegistry::GetName" ref="a1667ab563793cc2b36c6014b48ec74f8" args="(Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static String com::mxgraph::mxStyleRegistry::GetName </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value associated with the given name. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3689d9cc958022accbb06bccb3d6502c"></a><!-- doxytag: member="com::mxgraph::mxStyleRegistry::GetValue" ref="a3689d9cc958022accbb06bccb3d6502c" args="(String name)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object com::mxgraph::mxStyleRegistry::GetValue </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>name</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value associated with the given name. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae867348aa79960560ef57ec6179358ee"></a><!-- doxytag: member="com::mxgraph::mxStyleRegistry::PutValue" ref="ae867348aa79960560ef57ec6179358ee" args="(String name, Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static void com::mxgraph::mxStyleRegistry::PutValue </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>name</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Puts the given object into the registry under the given name. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="a45d02688cdf739206cb4452da8ae85e3"></a><!-- doxytag: member="com::mxgraph::mxStyleRegistry::values" ref="a45d02688cdf739206cb4452da8ae85e3" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a45d02688cdf739206cb4452da8ae85e3">com::mxgraph::mxStyleRegistry::values</a> = new Dictionary&lt;string, Object&gt;()<code> [static, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Maps from strings to objects. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/view/mxStyleRegistry.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheet-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheet-members.html
    new file mode 100644
    index 000000000..2cc5c2257
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheet-members.html
    @@ -0,0 +1,44 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStylesheet Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ae65aab6b8095dbff81674b19a3d717ed">CreateDefaultEdgeStyle</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a6d347145ac52be5640d705a15d86bf54">CreateDefaultVertexStyle</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a55e72a75f417b6c0b29d548cc958c4b4">DefaultEdgeStyle</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a8bea54671a04717f6d96d06427b5edd0">DefaultVertexStyle</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#acda54608747d0d86a2fc5140cf8c1ff2">EMPTY_STYLE</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td><code> [static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#afc38d23edbde813698159ed5d62bf3b0">GetCellStyle</a>(string name, Dictionary&lt; string, Object &gt; defaultStyle)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a574c49950df28b41e2c3ea218acc2a3a">mxStylesheet</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ab349fa703d0689a6783a95ecc911324d">PutCellStyle</a>(string name, Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ac216dfa766b6ee9101d1cf00bc623f23">styles</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#aff79a561ec698762bb9eda9d883a4b88">Styles</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheet.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheet.html
    new file mode 100644
    index 000000000..d4a725d8b
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheet.html
    @@ -0,0 +1,287 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxStylesheet Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStylesheet Class Reference</h1><!-- doxytag: class="com::mxgraph::mxStylesheet" -->
    +<p>Defines the appearance of the cells in a graph.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxStylesheet-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a574c49950df28b41e2c3ea218acc2a3a">mxStylesheet</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new stylesheet and assigns default styles.  <a href="#a574c49950df28b41e2c3ea218acc2a3a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ab349fa703d0689a6783a95ecc911324d">PutCellStyle</a> (string name, Dictionary&lt; string, Object &gt; style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stores the specified style under the given name.  <a href="#ab349fa703d0689a6783a95ecc911324d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#afc38d23edbde813698159ed5d62bf3b0">GetCellStyle</a> (string name, Dictionary&lt; string, Object &gt; defaultStyle)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the cell style for the specified cell or the given defaultStyle if no style can be found for the given stylename.  <a href="#afc38d23edbde813698159ed5d62bf3b0"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#acda54608747d0d86a2fc5140cf8c1ff2">EMPTY_STYLE</a> = new Dictionary&lt;string, Object&gt;()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shared immutable empty dictionary (for undefined cell styles).  <a href="#acda54608747d0d86a2fc5140cf8c1ff2"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a6d347145ac52be5640d705a15d86bf54">CreateDefaultVertexStyle</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates and returns the default vertex style.  <a href="#a6d347145ac52be5640d705a15d86bf54"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ae65aab6b8095dbff81674b19a3d717ed">CreateDefaultEdgeStyle</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates and returns the default edge style.  <a href="#ae65aab6b8095dbff81674b19a3d717ed"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Dictionary<br class="typebreak"/>
    +&lt; string, Object &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ac216dfa766b6ee9101d1cf00bc623f23">styles</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps from names to styles.  <a href="#ac216dfa766b6ee9101d1cf00bc623f23"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Dictionary<br class="typebreak"/>
    +&lt; string, Object &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#aff79a561ec698762bb9eda9d883a4b88">Styles</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the map that contains the styles.  <a href="#aff79a561ec698762bb9eda9d883a4b88"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a8bea54671a04717f6d96d06427b5edd0">DefaultVertexStyle</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the default style for vertices.  <a href="#a8bea54671a04717f6d96d06427b5edd0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Dictionary&lt; string, Object &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a55e72a75f417b6c0b29d548cc958c4b4">DefaultEdgeStyle</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the default style for edges.  <a href="#a55e72a75f417b6c0b29d548cc958c4b4"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Defines the appearance of the cells in a graph. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a574c49950df28b41e2c3ea218acc2a3a"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::mxStylesheet" ref="a574c49950df28b41e2c3ea218acc2a3a" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxStylesheet::mxStylesheet </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new stylesheet and assigns default styles. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="ae65aab6b8095dbff81674b19a3d717ed"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::CreateDefaultEdgeStyle" ref="ae65aab6b8095dbff81674b19a3d717ed" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; com::mxgraph::mxStylesheet::CreateDefaultEdgeStyle </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates and returns the default edge style. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the default edge style.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6d347145ac52be5640d705a15d86bf54"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::CreateDefaultVertexStyle" ref="a6d347145ac52be5640d705a15d86bf54" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; com::mxgraph::mxStylesheet::CreateDefaultVertexStyle </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates and returns the default vertex style. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the default vertex style.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afc38d23edbde813698159ed5d62bf3b0"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::GetCellStyle" ref="afc38d23edbde813698159ed5d62bf3b0" args="(string name, Dictionary&lt; string, Object &gt; defaultStyle)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; com::mxgraph::mxStylesheet::GetCellStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>name</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>defaultStyle</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the cell style for the specified cell or the given defaultStyle if no style can be found for the given stylename. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>String of the form [(stylename|key=value);] that represents the style.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultStyle</em>&nbsp;</td><td>Default style to be returned if no style can be found.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the style for the given formatted cell style.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab349fa703d0689a6783a95ecc911324d"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::PutCellStyle" ref="ab349fa703d0689a6783a95ecc911324d" args="(string name, Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxStylesheet::PutCellStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>name</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Stores the specified style under the given name. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name for the style to be stored.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>Key, value pairs that define the style.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Data Documentation</h2>
    +<a class="anchor" id="acda54608747d0d86a2fc5140cf8c1ff2"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::EMPTY_STYLE" ref="acda54608747d0d86a2fc5140cf8c1ff2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#acda54608747d0d86a2fc5140cf8c1ff2">com::mxgraph::mxStylesheet::EMPTY_STYLE</a> = new Dictionary&lt;string, Object&gt;()<code> [static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Shared immutable empty dictionary (for undefined cell styles). </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac216dfa766b6ee9101d1cf00bc623f23"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::styles" ref="ac216dfa766b6ee9101d1cf00bc623f23" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Dictionary&lt;string, Object&gt; &gt; <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ac216dfa766b6ee9101d1cf00bc623f23">com::mxgraph::mxStylesheet::styles</a><code> [protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<b>Initial value:</b><div class="fragment"><pre class="fragment">
    +            <span class="keyword">new</span> Dictionary&lt;string, Dictionary&lt;string, Object&gt;&gt;()
    +</pre></div>
    +<p>Maps from names to styles. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a55e72a75f417b6c0b29d548cc958c4b4"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::DefaultEdgeStyle" ref="a55e72a75f417b6c0b29d548cc958c4b4" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; com::mxgraph::mxStylesheet::DefaultEdgeStyle<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the default style for edges. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8bea54671a04717f6d96d06427b5edd0"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::DefaultVertexStyle" ref="a8bea54671a04717f6d96d06427b5edd0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Object&gt; com::mxgraph::mxStylesheet::DefaultVertexStyle<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the default style for vertices. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aff79a561ec698762bb9eda9d883a4b88"></a><!-- doxytag: member="com::mxgraph::mxStylesheet::Styles" ref="aff79a561ec698762bb9eda9d883a4b88" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Dictionary&lt;string, Dictionary&lt;string, Object&gt; &gt; com::mxgraph::mxStylesheet::Styles<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the map that contains the styles. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/view/mxStylesheet.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheetCodec-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheetCodec-members.html
    new file mode 100644
    index 000000000..4a9666bbb
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheetCodec-members.html
    @@ -0,0 +1,79 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStylesheetCodec Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">com::mxgraph::mxStylesheetCodec</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a400b8c95027f3e65c8f6bb7365346e31">AddObjectValue</a>(Object obj, String fieldname, Object value, Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af52418b7e8af59ebf7892725dfda0c99">AfterDecode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a190fb06cd2ebe7953a6766f71f0f4a5d">AfterEncode</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aef2e78e13b8dd5895ac272a0542ce4f2">BeforeDecode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa58c9db1a76eca9a93196b3d618560a5">BeforeEncode</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a9916f40c70806d0f2dbce90d2bc0a228">CloneTemplate</a>(XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af10ffcb1ec0726e3ce520e450eddd1a9">ConvertValueFromXml</a>(Type type, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a668ec4f16b4018010b78dfac5da202a1">ConvertValueToXml</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a79090b06efe74f3805ec252138012431">Decode</a>(mxCodec dec, XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">com::mxgraph::mxStylesheetCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#add2542d39061256bd5652925cd14ed99">com::mxgraph::mxObjectCodec::Decode</a>(mxCodec dec, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a3995ca8eb8b49ea3369ce78784da6886">DecodeAttribute</a>(mxCodec dec, XmlNode attr, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6c43995dfa09e94c15237bb5bcb956bd">DecodeAttributes</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a26402e6fab4b83efae915a1d241a9139">DecodeChild</a>(mxCodec dec, XmlNode child, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a0fae9f4253f6b903b13a0342d27b654d">DecodeChildren</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8d19152cfe1b7a65a613ecc823c0ff6c">DecodeNode</a>(mxCodec dec, XmlNode node, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a4a7f48050d530e5b64e7bc98de0eab0b">Encode</a>(mxCodec enc, Object obj)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">com::mxgraph::mxStylesheetCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac044bc0648d29bbde6a826c22ca84a1b">EncodeElements</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afe487cf09d38efd8cbfbbf92810419fa">EncodeFields</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ade4c4a85d7ed2162f9566c8df931d250">EncodeObject</a>(mxCodec enc, Object obj, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac0fe160b3b14184206fb33abda5b6c20">EncodeValue</a>(mxCodec enc, Object obj, string fieldname, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">exclude</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7a33b05e10c507d6d47fcf1c152e51d4">GetAttributeName</a>(string fieldname)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a234002bf9a84ccc51210cbf2744d1dbf">GetFieldName</a>(string attributename)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a414f565a39689bd929124c2003dd41aa">GetFieldTemplate</a>(Object obj, String fieldname, XmlNode child)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ab4c4b9a8a57ef55d3923da107289a05e">GetFieldValue</a>(Object obj, string name)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a62ea0063541fd986ab33a1b098780abf">GetName</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a0b34a45979b6f494498467509bf5ee39">getStringValue</a>(KeyValuePair&lt; string, Object &gt; entry)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">com::mxgraph::mxStylesheetCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">idrefs</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a58410c644edac27eb89acd3f3be8c6b3">IsExcluded</a>(Object obj, string attr, Object value, bool write)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af3ef76d421c61dfe849f6e09252fc630">IsPrimitiveValue</a>(Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a369877eb840c88cb3b321c93e22a373b">IsReference</a>(Object obj, string attr, Object value, bool write)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, virtual]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">mapping</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abbddb3957b955b41d4fbcd6e63bbb42d">mxObjectCodec</a>(Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a38b4f86b0ffb810f94f1864c6f386a8f">mxObjectCodec</a>(Object template, string[] exclude, string[] idrefs, Dictionary&lt; string, string &gt; mapping)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a29a81ab0d165d2f64fa092aed45bad7d">mxStylesheetCodec</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">com::mxgraph::mxStylesheetCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#af5089ec0b65370bcf7cfea5be3aa6976">mxStylesheetCodec</a>(Object template)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">com::mxgraph::mxStylesheetCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a1598c7b839bebda4f18dcc6ad55ae61c">mxStylesheetCodec</a>(Object template, String[] exclude, String[] idrefs, Dictionary&lt; string, string &gt; mapping)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">com::mxgraph::mxStylesheetCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afd7f23ec8879f314b0729ac866201683">ProcessInclude</a>(mxCodec dec, XmlNode node, Object into)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a897b6935339cdb9a47f12b5f926b58f9">reverse</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a66dc2344eab9b42aac159cdd3967cd8c">SetFieldValue</a>(Object obj, string name, Object value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6dbad90a78d8e5d2bc3dd6fbec6d4841">Template</a></td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#addeb537a505b24d8fd813e4d05df4595">WriteAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abc3bef1feb53dc34ed9e8ba93da5edd1">WriteComplexAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7831f956126ef0b5da4920824d9b9bb5">WritePrimitiveAttribute</a>(mxCodec enc, Object obj, string attr, Object value, XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a></td><td><code> [inline, protected]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheetCodec.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheetCodec.html
    new file mode 100644
    index 000000000..7f0c483fb
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheetCodec.html
    @@ -0,0 +1,241 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxStylesheetCodec Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">mxStylesheetCodec</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxStylesheetCodec Class Reference</h1><!-- doxytag: class="com::mxgraph::mxStylesheetCodec" --><!-- doxytag: inherits="com::mxgraph::mxObjectCodec" -->
    +<p>Codec for mxStylesheets. This class is created and registered dynamically at load time and used implicitely via <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> and the <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a>.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxStylesheetCodec:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="classcom_1_1mxgraph_1_1mxStylesheetCodec.png" usemap="#com::mxgraph::mxStylesheetCodec_map" alt=""/>
    +  <map id="com::mxgraph::mxStylesheetCodec_map" name="com::mxgraph::mxStylesheetCodec_map">
    +<area href="classcom_1_1mxgraph_1_1mxObjectCodec.html" alt="com::mxgraph::mxObjectCodec" shape="rect" coords="0,0,205,24"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxStylesheetCodec-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a29a81ab0d165d2f64fa092aed45bad7d">mxStylesheetCodec</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new stylesheet codec.  <a href="#a29a81ab0d165d2f64fa092aed45bad7d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#af5089ec0b65370bcf7cfea5be3aa6976">mxStylesheetCodec</a> (Object <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new stylesheet codec for the given template.  <a href="#af5089ec0b65370bcf7cfea5be3aa6976"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a1598c7b839bebda4f18dcc6ad55ae61c">mxStylesheetCodec</a> (Object <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">template</a>, String[] <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">exclude</a>, String[] <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">idrefs</a>, Dictionary&lt; string, string &gt; <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">mapping</a>)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs a new stylesheet codec for the given arguments.  <a href="#a1598c7b839bebda4f18dcc6ad55ae61c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">override XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a4a7f48050d530e5b64e7bc98de0eab0b">Encode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> enc, Object obj)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode the given <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html" title="Defines the appearance of the cells in a graph.">mxStylesheet</a>.  <a href="#a4a7f48050d530e5b64e7bc98de0eab0b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">override Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a79090b06efe74f3805ec252138012431">Decode</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> dec, XmlNode node, Object into)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decodes the given <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html" title="Defines the appearance of the cells in a graph.">mxStylesheet</a>.  <a href="#a79090b06efe74f3805ec252138012431"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a0b34a45979b6f494498467509bf5ee39">getStringValue</a> (KeyValuePair&lt; string, Object &gt; entry)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the string for encoding the given value.  <a href="#a0b34a45979b6f494498467509bf5ee39"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Codec for mxStylesheets. This class is created and registered dynamically at load time and used implicitely via <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html" title="XML codec for .NET object graphs. In order to resolve forward references when reading...">mxCodec</a> and the <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a>. </p>
    +<hr/><h2>Constructor &amp; Destructor Documentation</h2>
    +<a class="anchor" id="a29a81ab0d165d2f64fa092aed45bad7d"></a><!-- doxytag: member="com::mxgraph::mxStylesheetCodec::mxStylesheetCodec" ref="a29a81ab0d165d2f64fa092aed45bad7d" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxStylesheetCodec::mxStylesheetCodec </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new stylesheet codec. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af5089ec0b65370bcf7cfea5be3aa6976"></a><!-- doxytag: member="com::mxgraph::mxStylesheetCodec::mxStylesheetCodec" ref="af5089ec0b65370bcf7cfea5be3aa6976" args="(Object template)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxStylesheetCodec::mxStylesheetCodec </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>template</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new stylesheet codec for the given template. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1598c7b839bebda4f18dcc6ad55ae61c"></a><!-- doxytag: member="com::mxgraph::mxStylesheetCodec::mxStylesheetCodec" ref="a1598c7b839bebda4f18dcc6ad55ae61c" args="(Object template, String[] exclude, String[] idrefs, Dictionary&lt; string, string &gt; mapping)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">com::mxgraph::mxStylesheetCodec::mxStylesheetCodec </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>template</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String[]&nbsp;</td>
    +          <td class="paramname"> <em>exclude</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String[]&nbsp;</td>
    +          <td class="paramname"> <em>idrefs</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, string &gt;&nbsp;</td>
    +          <td class="paramname"> <em>mapping</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Constructs a new stylesheet codec for the given arguments. </p>
    +
    +</div>
    +</div>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a79090b06efe74f3805ec252138012431"></a><!-- doxytag: member="com::mxgraph::mxStylesheetCodec::Decode" ref="a79090b06efe74f3805ec252138012431" args="(mxCodec dec, XmlNode node, Object into)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">override Object com::mxgraph::mxStylesheetCodec::Decode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>dec</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>into</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Decodes the given <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html" title="Defines the appearance of the cells in a graph.">mxStylesheet</a>. </p>
    +
    +<p>Reimplemented from <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a121ba530f191fa675cef1199783d3b4c">com::mxgraph::mxObjectCodec</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4a7f48050d530e5b64e7bc98de0eab0b"></a><!-- doxytag: member="com::mxgraph::mxStylesheetCodec::Encode" ref="a4a7f48050d530e5b64e7bc98de0eab0b" args="(mxCodec enc, Object obj)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">override XmlNode com::mxgraph::mxStylesheetCodec::Encode </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a>&nbsp;</td>
    +          <td class="paramname"> <em>enc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, virtual]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Encode the given <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html" title="Defines the appearance of the cells in a graph.">mxStylesheet</a>. </p>
    +
    +<p>Reimplemented from <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa8e373e16bb59c00a573b1bebe1a3934">com::mxgraph::mxObjectCodec</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0b34a45979b6f494498467509bf5ee39"></a><!-- doxytag: member="com::mxgraph::mxStylesheetCodec::getStringValue" ref="a0b34a45979b6f494498467509bf5ee39" args="(KeyValuePair&lt; string, Object &gt; entry)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxStylesheetCodec::getStringValue </td>
    +          <td>(</td>
    +          <td class="paramtype">KeyValuePair&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>entry</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, protected]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the string for encoding the given value. </p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/io/mxStylesheetCodec.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheetCodec.png b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheetCodec.png
    new file mode 100644
    index 000000000..d441339d1
    Binary files /dev/null and b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxStylesheetCodec.png differ
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxUtils-members.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxUtils-members.html
    new file mode 100644
    index 000000000..a27db01ed
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxUtils-members.html
    @@ -0,0 +1,88 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxUtils Member List</h1>This is the complete list of members for <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a4fb003dac4ebb72fc3e59dbce67fd330">AddStylename</a>(String style, String stylename)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a91f005028c32d0d614b4c5fe1f955b82">ArcToCurves</a>(double x0, double y0, double r1, double r2, double angle, double largeArcFlag, double sweepFlag, double x, double y)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aca3ccaa055624b04567bc4f5c29eefc4">CreateDocument</a>()</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a346009f6c841efa8c5d3da4cc4ed651c">CreateImage</a>(int width, int height, Color?background)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a19dd3e8cbbaef8f0163b5538fecd3ba5">Eval</a>(string expression)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7f4b312d1ea700cf0618096c725cd884">FillClippedRect</a>(Graphics g, Brush brush, int x, int y, int width, int height)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ad1ec4d7bd832972f29957a769180836e">FindNode</a>(XmlNode node, String attr, String value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7678eac208e920d7c59081dd40df4c91">GetBoundingBox</a>(mxRectangle rect, double rotation)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2b2248a0d09775e466c6e4c3e399fc53">GetColor</a>(Dictionary&lt; string, Object &gt; dict, string key)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ac3eee1430397445f391e7b04b0d225e1">GetColor</a>(Dictionary&lt; string, Object &gt; dict, string key, Color?defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a9fa84bb70acb657b281e18474c4eadfa">GetDouble</a>(Dictionary&lt; string, Object &gt; dict, string key)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a82673d3eaa385f504068f3251802c2e3">GetDouble</a>(Dictionary&lt; string, Object &gt; dict, string key, double defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a871ab56f1ba48411c148841bd49e5da9">GetFloat</a>(Dictionary&lt; string, Object &gt; dict, string key)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a26baf14d68bc1c72536549374295f661">GetFloat</a>(Dictionary&lt; string, Object &gt; dict, string key, float defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#af1262698755703ccd84bc183cccac6a3">GetFont</a>(Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a502b2393c697ec47272e2d4cb668c18e">GetFont</a>(Dictionary&lt; string, Object &gt; style, double scale)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a265f08aea1ab863f5c0c242d0d1e3247">GetInt</a>(Dictionary&lt; string, Object &gt; dict, string key)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ad1d1460c3e03182e6351c285ec9a33b4">GetInt</a>(Dictionary&lt; string, Object &gt; dict, string key, int defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a44a44358539513830ac55c64e7ffd67d">GetLabelPaintBounds</a>(String label, Dictionary&lt; string, Object &gt; style, bool isHtml, mxPoint offset, mxRectangle vertexBounds, double scale)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a661de39da15520dccd375cdebf2bf402">GetLabelSize</a>(string label, Dictionary&lt; string, Object &gt; style, int width)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aa23c24c33302d884dacd7ddbd1b16543">GetMd5Hash</a>(string text)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a6ba7fb8e71bc6a5ba2476c9bf43842c1">GetPrettyXml</a>(XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a8585d2006c43042e999d8cbc7eb40c90">GetRotatedPoint</a>(mxPoint pt, double cos, double sin)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a514a598b4574635ab264a90cfe00a64f">GetRotatedPoint</a>(mxPoint pt, double cos, double sin, mxPoint c)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a3ed4a7861d42064c2be9f26b07a814cc">GetScaledLabelBounds</a>(double x, double y, mxRectangle size, double outerWidth, double outerHeight, Dictionary&lt; string, Object &gt; style, double scale)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a8318d3c09f55d0317bd87b088b1822dd">GetSizeForString</a>(String text, Font font)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a08d855b0f40c6c60b395db790a6c74b4">GetSizeForString</a>(String text, Font font, int width)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a6b6e56618094460153fdfa34670c4766">GetString</a>(Dictionary&lt; string, Object &gt; dict, string key)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aeef9a4e1c8524de7f4b0c6093ef4be3b">GetString</a>(Dictionary&lt; string, Object &gt; dict, string key, string defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a79b1654dd953191778bbcd6ceae9f79c">GetStringFormat</a>(Dictionary&lt; string, Object &gt; style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a81ed5a92ad1cec4300cc4c63d882ec9d">GetStylename</a>(String style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a857d2f7e3ecd002353e3ad256308b188">GetStylenames</a>(String style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a28735717582ed6a547f32e8effd11e29">GetXml</a>(XmlNode node)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7eb91229c8f8d962843711abe2756200">GetXml</a>(XmlNode node, Formatting formatting)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a1c88dfc8675db06225f91b3afa0f030f">HtmlEntities</a>(String text)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ac3ddde679f9ad7f78edb3f9e842e2d7f">IndexOfStylename</a>(String style, String stylename)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aca4150c2dba3683cde96ce2016cc18a5">Intersection</a>(double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a5208100e48892f64e627a85ec30f7f32">IsNode</a>(Object value, String nodeName)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#abcedc5601014b98a220faaf9ce3c1798">IsNode</a>(Object value, String nodeName, String attributeName, String attributeValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a0e1981e448a4bf8f245f6472ddb3f131">IsTrue</a>(Dictionary&lt; string, Object &gt; dict, string key)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ab40d46f2ffb86a859c209d13e44bf4cd">IsTrue</a>(Dictionary&lt; string, Object &gt; dict, string key, bool defaultValue)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ae722c7c569219d667a4c970f3dcfb6bf">LoadDocument</a>(string uri)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a30ccc3180a67c12649dbba8212918215">LoadImage</a>(String url)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a18122413c99206306bc0cca8ee7bbd0a">ParseXml</a>(string xml)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a90cc8f0f221f2add5a31cfa47bea9b3f">ReadFile</a>(string filename)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#abe003f6e64b3ae245257d0447bc890d6">RemoveAllStylenames</a>(String style)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2fa96b662336bd34cb73951607bc9e2b">RemoveStylename</a>(String style, String stylename)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aae4b27f9a279780ebbd795bbd851cb46">SelectSingleNode</a>(XmlDocument doc, string expression)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2eeb7bc9dd011e47b035cf4f4b6de579">SetCellStyleFlags</a>(mxIGraphModel model, Object[] cells, String key, int flag, Boolean value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ab7b5cd3313e3e1feaa5f366b18d2c435">SetCellStyles</a>(mxIGraphModel model, Object[] cells, String key, String value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a0f13701bf4dc70c43f0f1ab408e97bea">SetStyle</a>(String style, String key, String value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a9789a2adaf33eabe8aa8856df3aca807">SetStyleFlag</a>(String style, String key, int flag, bool?value)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a1a0c2f4fe1c1c17c445c396a1b158ccb">ToRadians</a>(double deg)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +  <tr class="memlist"><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a23b4c460761c0715762964202ebe2e26">TranslatePoints</a>(List&lt; mxPoint &gt; pts, double dx, double dy)</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></td><td><code> [inline, static]</code></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classcom_1_1mxgraph_1_1mxUtils.html b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxUtils.html
    new file mode 100644
    index 000000000..11f2000f1
    --- /dev/null
    +++ b/dotnet/docs/html/classcom_1_1mxgraph_1_1mxUtils.html
    @@ -0,0 +1,2244 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxUtils Class Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">mxUtils</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxUtils Class Reference</h1><!-- doxytag: class="com::mxgraph::mxUtils" -->
    +<p>Contains various helper methods for use with <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a>.  
    +<a href="#_details">More...</a></p>
    +
    +<p><a href="classcom_1_1mxgraph_1_1mxUtils-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a4fb003dac4ebb72fc3e59dbce67fd330">AddStylename</a> (String style, String stylename)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the specified stylename to the given style if it does not already contain the stylename.  <a href="#a4fb003dac4ebb72fc3e59dbce67fd330"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2fa96b662336bd34cb73951607bc9e2b">RemoveStylename</a> (String style, String stylename)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes all occurrences of the specified stylename in the given style and returns the updated style.  <a href="#a2fa96b662336bd34cb73951607bc9e2b"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a661de39da15520dccd375cdebf2bf402">GetLabelSize</a> (string label, Dictionary&lt; string, Object &gt; style, int width)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the size of the given label.  <a href="#a661de39da15520dccd375cdebf2bf402"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a44a44358539513830ac55c64e7ffd67d">GetLabelPaintBounds</a> (String label, Dictionary&lt; string, Object &gt; style, bool isHtml, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> offset, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> vertexBounds, double scale)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the paint bounds for the given label.  <a href="#a44a44358539513830ac55c64e7ffd67d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a3ed4a7861d42064c2be9f26b07a814cc">GetScaledLabelBounds</a> (double x, double y, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> size, double outerWidth, double outerHeight, Dictionary&lt; string, Object &gt; style, double scale)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounds for a label for the given location and size, taking into account the alignment and spacing in the specified style, as well as the width and height of the rectangle that contains the label. (For edge labels this width and height is 0.) The scale is used to scale the given size and the spacings in the specified style.  <a href="#a3ed4a7861d42064c2be9f26b07a814cc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a8318d3c09f55d0317bd87b088b1822dd">GetSizeForString</a> (String text, Font font)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the size of the given text.  <a href="#a8318d3c09f55d0317bd87b088b1822dd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a08d855b0f40c6c60b395db790a6c74b4">GetSizeForString</a> (String text, Font font, int width)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html" title="Implements a 2-dimensional rectangle with double precision coordinates.">mxRectangle</a> with the size (width and height in pixels) of the given text.  <a href="#a08d855b0f40c6c60b395db790a6c74b4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a1a0c2f4fe1c1c17c445c396a1b158ccb">ToRadians</a> (double deg)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts the given degree to radians.  <a href="#a1a0c2f4fe1c1c17c445c396a1b158ccb"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static double[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a91f005028c32d0d614b4c5fe1f955b82">ArcToCurves</a> (double x0, double y0, double r1, double r2, double angle, double largeArcFlag, double sweepFlag, double x, double y)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts the given arc to a series of curves.  <a href="#a91f005028c32d0d614b4c5fe1f955b82"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7678eac208e920d7c59081dd40df4c91">GetBoundingBox</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> rect, double rotation)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bounding box of the rotated rectangle.  <a href="#a7678eac208e920d7c59081dd40df4c91"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a8585d2006c43042e999d8cbc7eb40c90">GetRotatedPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> pt, double cos, double sin)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the given point by the given cos and sin.  <a href="#a8585d2006c43042e999d8cbc7eb40c90"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a514a598b4574635ab264a90cfe00a64f">GetRotatedPoint</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> pt, double cos, double sin, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> c)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the given point by the given cos and sin.  <a href="#a514a598b4574635ab264a90cfe00a64f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7f4b312d1ea700cf0618096c725cd884">FillClippedRect</a> (Graphics g, Brush brush, int x, int y, int width, int height)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a346009f6c841efa8c5d3da4cc4ed651c">CreateImage</a> (int width, int height, Color?background)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an image for the given parameters.  <a href="#a346009f6c841efa8c5d3da4cc4ed651c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a23b4c460761c0715762964202ebe2e26">TranslatePoints</a> (List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt; pts, double dx, double dy)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new list of new points obtained by translating the points in the given list by the given vector. Elements that are not mxPoints are added to the result as-is.  <a href="#a23b4c460761c0715762964202ebe2e26"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aca4150c2dba3683cde96ce2016cc18a5">Intersection</a> (double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the intersection of two lines as an <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html" title="Implements a 2-dimensional point with double precision coordinates.">mxPoint</a>.  <a href="#aca4150c2dba3683cde96ce2016cc18a5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a81ed5a92ad1cec4300cc4c63d882ec9d">GetStylename</a> (String style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the stylename in a style of the form stylename[;key=value] or an empty string if the given style does not contain a stylename.  <a href="#a81ed5a92ad1cec4300cc4c63d882ec9d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a857d2f7e3ecd002353e3ad256308b188">GetStylenames</a> (String style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the stylenames in a style of the form stylename[;key=value] or an empty array if the given style does not contain any stylenames.  <a href="#a857d2f7e3ecd002353e3ad256308b188"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ac3ddde679f9ad7f78edb3f9e842e2d7f">IndexOfStylename</a> (String style, String stylename)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the index of the given stylename in the given style. This returns -1 if the given stylename does not occur (as a stylename) in the given style, otherwise it returns the index of the first character.  <a href="#ac3ddde679f9ad7f78edb3f9e842e2d7f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#abe003f6e64b3ae245257d0447bc890d6">RemoveAllStylenames</a> (String style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes all stylenames from the given style and returns the updated style.  <a href="#abe003f6e64b3ae245257d0447bc890d6"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ab7b5cd3313e3e1feaa5f366b18d2c435">SetCellStyles</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object[] cells, String key, String value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null.  <a href="#ab7b5cd3313e3e1feaa5f366b18d2c435"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a0f13701bf4dc70c43f0f1ab408e97bea">SetStyle</a> (String style, String key, String value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds or removes the given key, value pair to the style and returns the new style. If value is null or zero length then the key is removed from the style.  <a href="#a0f13701bf4dc70c43f0f1ab408e97bea"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2eeb7bc9dd011e47b035cf4f4b6de579">SetCellStyleFlags</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> model, Object[] cells, String key, int flag, Boolean value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or toggles the flag bit for the given key in the cell's styles. If value is null then the flag is toggled.  <a href="#a2eeb7bc9dd011e47b035cf4f4b6de579"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a9789a2adaf33eabe8aa8856df3aca807">SetStyleFlag</a> (String style, String key, int flag, bool?value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or removes the given key from the specified style and returns the new style. If value is null then the flag is toggled.  <a href="#a9789a2adaf33eabe8aa8856df3aca807"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a0e1981e448a4bf8f245f6472ddb3f131">IsTrue</a> (Dictionary&lt; string, Object &gt; dict, string key)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the dictionary contains true for the given key or false if no value is defined for the key.  <a href="#a0e1981e448a4bf8f245f6472ddb3f131"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ab40d46f2ffb86a859c209d13e44bf4cd">IsTrue</a> (Dictionary&lt; string, Object &gt; dict, string key, bool defaultValue)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the dictionary contains true for the given key or the given default value if no value is defined for the key.  <a href="#ab40d46f2ffb86a859c209d13e44bf4cd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a265f08aea1ab863f5c0c242d0d1e3247">GetInt</a> (Dictionary&lt; string, Object &gt; dict, string key)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as an int or 0 if no value is defined for the key.  <a href="#a265f08aea1ab863f5c0c242d0d1e3247"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ad1d1460c3e03182e6351c285ec9a33b4">GetInt</a> (Dictionary&lt; string, Object &gt; dict, string key, int defaultValue)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as an int or the given default value if no value is defined for the key.  <a href="#ad1d1460c3e03182e6351c285ec9a33b4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a871ab56f1ba48411c148841bd49e5da9">GetFloat</a> (Dictionary&lt; string, Object &gt; dict, string key)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as a float or 0 if no value is defined for the key.  <a href="#a871ab56f1ba48411c148841bd49e5da9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a26baf14d68bc1c72536549374295f661">GetFloat</a> (Dictionary&lt; string, Object &gt; dict, string key, float defaultValue)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as a float or the given default value if no value is defined for the key.  <a href="#a26baf14d68bc1c72536549374295f661"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a9fa84bb70acb657b281e18474c4eadfa">GetDouble</a> (Dictionary&lt; string, Object &gt; dict, string key)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as a double or 0 if no value is defined for the key.  <a href="#a9fa84bb70acb657b281e18474c4eadfa"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a82673d3eaa385f504068f3251802c2e3">GetDouble</a> (Dictionary&lt; string, Object &gt; dict, string key, double defaultValue)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as a double or the given default value if no value is defined for the key.  <a href="#a82673d3eaa385f504068f3251802c2e3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a6b6e56618094460153fdfa34670c4766">GetString</a> (Dictionary&lt; string, Object &gt; dict, string key)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as a string or null if no value is defined for the key.  <a href="#a6b6e56618094460153fdfa34670c4766"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aeef9a4e1c8524de7f4b0c6093ef4be3b">GetString</a> (Dictionary&lt; string, Object &gt; dict, string key, string defaultValue)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as a string or the given default value if no value is defined for the key.  <a href="#aeef9a4e1c8524de7f4b0c6093ef4be3b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Color&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2b2248a0d09775e466c6e4c3e399fc53">GetColor</a> (Dictionary&lt; string, Object &gt; dict, string key)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as a color or null if no value is defined for the key.  <a href="#a2b2248a0d09775e466c6e4c3e399fc53"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Color&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ac3eee1430397445f391e7b04b0d225e1">GetColor</a> (Dictionary&lt; string, Object &gt; dict, string key, Color?defaultValue)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value for key in dictionary as a color or the given default value if no value is defined for the key.  <a href="#ac3eee1430397445f391e7b04b0d225e1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Font&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#af1262698755703ccd84bc183cccac6a3">GetFont</a> (Dictionary&lt; string, Object &gt; style)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Font&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a502b2393c697ec47272e2d4cb668c18e">GetFont</a> (Dictionary&lt; string, Object &gt; style, double scale)</td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static StringFormat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a79b1654dd953191778bbcd6ceae9f79c">GetStringFormat</a> (Dictionary&lt; string, Object &gt; style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new StringFormat object for the given style.  <a href="#a79b1654dd953191778bbcd6ceae9f79c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a90cc8f0f221f2add5a31cfa47bea9b3f">ReadFile</a> (string filename)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads the given filename into a string.  <a href="#a90cc8f0f221f2add5a31cfa47bea9b3f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aa23c24c33302d884dacd7ddbd1b16543">GetMd5Hash</a> (string text)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the Md5 hash for the given text.  <a href="#aa23c24c33302d884dacd7ddbd1b16543"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a5208100e48892f64e627a85ec30f7f32">IsNode</a> (Object value, String nodeName)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given value is an XML node with the specified nodename. specified.  <a href="#a5208100e48892f64e627a85ec30f7f32"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#abcedc5601014b98a220faaf9ce3c1798">IsNode</a> (Object value, String nodeName, String attributeName, String attributeValue)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the user object is an XML node with the specified type and and the optional attribute has the specified value or is not specified.  <a href="#abcedc5601014b98a220faaf9ce3c1798"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a30ccc3180a67c12649dbba8212918215">LoadImage</a> (String url)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Loads an image from the local filesystem, a data URI or any other URL.  <a href="#a30ccc3180a67c12649dbba8212918215"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static XmlDocument&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aca3ccaa055624b04567bc4f5c29eefc4">CreateDocument</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a new, empty DOM document.  <a href="#aca3ccaa055624b04567bc4f5c29eefc4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static XmlDocument&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ae722c7c569219d667a4c970f3dcfb6bf">LoadDocument</a> (string uri)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a new DOM document for the given URI.  <a href="#ae722c7c569219d667a4c970f3dcfb6bf"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static XmlDocument&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a18122413c99206306bc0cca8ee7bbd0a">ParseXml</a> (string xml)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a document that represents the given XML string.  <a href="#a18122413c99206306bc0cca8ee7bbd0a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ad1ec4d7bd832972f29957a769180836e">FindNode</a> (XmlNode node, String attr, String value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the first node where attr equals value. This implementation does not use XPath.  <a href="#ad1ec4d7bd832972f29957a769180836e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static XmlNode&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aae4b27f9a279780ebbd795bbd851cb46">SelectSingleNode</a> (XmlDocument doc, string expression)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a single node that matches the given XPath expression.  <a href="#aae4b27f9a279780ebbd795bbd851cb46"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a19dd3e8cbbaef8f0163b5538fecd3ba5">Eval</a> (string expression)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluates a Java expression to a class member using <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a>. The range of supported expressions is limited to static class members such as <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a92f5012b34ca2e03ce23139b36d59d2a" title="Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell...">mxEdgeStyle.ElbowConnector</a>.  <a href="#a19dd3e8cbbaef8f0163b5538fecd3ba5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static String&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a1c88dfc8675db06225f91b3afa0f030f">HtmlEntities</a> (String text)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts the ampersand, quote, prime, less-than and greater-than characters to their corresponding HTML entities in the given string.  <a href="#a1c88dfc8675db06225f91b3afa0f030f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a28735717582ed6a547f32e8effd11e29">GetXml</a> (XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a string that represents the given node.  <a href="#a28735717582ed6a547f32e8effd11e29"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a6ba7fb8e71bc6a5ba2476c9bf43842c1">GetPrettyXml</a> (XmlNode node)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a pretty-printed XML string for the given node.  <a href="#a6ba7fb8e71bc6a5ba2476c9bf43842c1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7eb91229c8f8d962843711abe2756200">GetXml</a> (XmlNode node, Formatting formatting)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a pretty-printed XML string for the given node.  <a href="#a7eb91229c8f8d962843711abe2756200"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Contains various helper methods for use with <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a>. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a4fb003dac4ebb72fc3e59dbce67fd330"></a><!-- doxytag: member="com::mxgraph::mxUtils::AddStylename" ref="a4fb003dac4ebb72fc3e59dbce67fd330" args="(String style, String stylename)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String com::mxgraph::mxUtils::AddStylename </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>stylename</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds the specified stylename to the given style if it does not already contain the stylename. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>stylename</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a91f005028c32d0d614b4c5fe1f955b82"></a><!-- doxytag: member="com::mxgraph::mxUtils::ArcToCurves" ref="a91f005028c32d0d614b4c5fe1f955b82" args="(double x0, double y0, double r1, double r2, double angle, double largeArcFlag, double sweepFlag, double x, double y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static double [] com::mxgraph::mxUtils::ArcToCurves </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x0</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y0</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>r1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>r2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>angle</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>largeArcFlag</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>sweepFlag</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Converts the given arc to a series of curves. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x0</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y0</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>r1</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>r2</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>angle</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>largeArcFlag</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>sweepFlag</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aca3ccaa055624b04567bc4f5c29eefc4"></a><!-- doxytag: member="com::mxgraph::mxUtils::CreateDocument" ref="aca3ccaa055624b04567bc4f5c29eefc4" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static XmlDocument com::mxgraph::mxUtils::CreateDocument </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a new, empty DOM document. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new DOM document.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a346009f6c841efa8c5d3da4cc4ed651c"></a><!-- doxytag: member="com::mxgraph::mxUtils::CreateImage" ref="a346009f6c841efa8c5d3da4cc4ed651c" args="(int width, int height, Color?background)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Image com::mxgraph::mxUtils::CreateImage </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>height</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>background</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates an image for the given parameters. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>background</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a19dd3e8cbbaef8f0163b5538fecd3ba5"></a><!-- doxytag: member="com::mxgraph::mxUtils::Eval" ref="a19dd3e8cbbaef8f0163b5538fecd3ba5" args="(string expression)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Object com::mxgraph::mxUtils::Eval </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>expression</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Evaluates a Java expression to a class member using <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html" title="Static class that acts as a global registry for codecs. See mxCodec for an example...">mxCodecRegistry</a>. The range of supported expressions is limited to static class members such as <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a92f5012b34ca2e03ce23139b36d59d2a" title="Uses either SideToSide or TopToBottom depending on the horizontal flag in the cell...">mxEdgeStyle.ElbowConnector</a>. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>expression</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7f4b312d1ea700cf0618096c725cd884"></a><!-- doxytag: member="com::mxgraph::mxUtils::FillClippedRect" ref="a7f4b312d1ea700cf0618096c725cd884" args="(Graphics g, Brush brush, int x, int y, int width, int height)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static void com::mxgraph::mxUtils::FillClippedRect </td>
    +          <td>(</td>
    +          <td class="paramtype">Graphics&nbsp;</td>
    +          <td class="paramname"> <em>g</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Brush&nbsp;</td>
    +          <td class="paramname"> <em>brush</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>width</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>height</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>g</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>brush</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad1ec4d7bd832972f29957a769180836e"></a><!-- doxytag: member="com::mxgraph::mxUtils::FindNode" ref="ad1ec4d7bd832972f29957a769180836e" args="(XmlNode node, String attr, String value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static XmlNode com::mxgraph::mxUtils::FindNode </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>attr</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the first node where attr equals value. This implementation does not use XPath. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7678eac208e920d7c59081dd40df4c91"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetBoundingBox" ref="a7678eac208e920d7c59081dd40df4c91" args="(mxRectangle rect, double rotation)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxUtils::GetBoundingBox </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>rect</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>rotation</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounding box of the rotated rectangle. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac3eee1430397445f391e7b04b0d225e1"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetColor" ref="ac3eee1430397445f391e7b04b0d225e1" args="(Dictionary&lt; string, Object &gt; dict, string key, Color?defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Color com::mxgraph::mxUtils::GetColor </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Color?&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as a color or the given default value if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td>Default value to return if the key is undefined.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the color value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2b2248a0d09775e466c6e4c3e399fc53"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetColor" ref="a2b2248a0d09775e466c6e4c3e399fc53" args="(Dictionary&lt; string, Object &gt; dict, string key)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Color com::mxgraph::mxUtils::GetColor </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as a color or null if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the color value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a82673d3eaa385f504068f3251802c2e3"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetDouble" ref="a82673d3eaa385f504068f3251802c2e3" args="(Dictionary&lt; string, Object &gt; dict, string key, double defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static double com::mxgraph::mxUtils::GetDouble </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as a double or the given default value if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td>Default value to return if the key is undefined.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the double value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9fa84bb70acb657b281e18474c4eadfa"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetDouble" ref="a9fa84bb70acb657b281e18474c4eadfa" args="(Dictionary&lt; string, Object &gt; dict, string key)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static double com::mxgraph::mxUtils::GetDouble </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as a double or 0 if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the double value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a26baf14d68bc1c72536549374295f661"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetFloat" ref="a26baf14d68bc1c72536549374295f661" args="(Dictionary&lt; string, Object &gt; dict, string key, float defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static float com::mxgraph::mxUtils::GetFloat </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">float&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as a float or the given default value if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td>Default value to return if the key is undefined.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the float value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a871ab56f1ba48411c148841bd49e5da9"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetFloat" ref="a871ab56f1ba48411c148841bd49e5da9" args="(Dictionary&lt; string, Object &gt; dict, string key)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static float com::mxgraph::mxUtils::GetFloat </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as a float or 0 if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the float value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a502b2393c697ec47272e2d4cb668c18e"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetFont" ref="a502b2393c697ec47272e2d4cb668c18e" args="(Dictionary&lt; string, Object &gt; style, double scale)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Font com::mxgraph::mxUtils::GetFont </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>scale</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>scale</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af1262698755703ccd84bc183cccac6a3"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetFont" ref="af1262698755703ccd84bc183cccac6a3" args="(Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Font com::mxgraph::mxUtils::GetFont </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad1d1460c3e03182e6351c285ec9a33b4"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetInt" ref="ad1d1460c3e03182e6351c285ec9a33b4" args="(Dictionary&lt; string, Object &gt; dict, string key, int defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static int com::mxgraph::mxUtils::GetInt </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as an int or the given default value if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td>Default value to return if the key is undefined.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the integer value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a265f08aea1ab863f5c0c242d0d1e3247"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetInt" ref="a265f08aea1ab863f5c0c242d0d1e3247" args="(Dictionary&lt; string, Object &gt; dict, string key)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static int com::mxgraph::mxUtils::GetInt </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as an int or 0 if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the integer value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a44a44358539513830ac55c64e7ffd67d"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetLabelPaintBounds" ref="a44a44358539513830ac55c64e7ffd67d" args="(String label, Dictionary&lt; string, Object &gt; style, bool isHtml, mxPoint offset, mxRectangle vertexBounds, double scale)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxUtils::GetLabelPaintBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>label</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>isHtml</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>offset</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>vertexBounds</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>scale</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the paint bounds for the given label. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a661de39da15520dccd375cdebf2bf402"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetLabelSize" ref="a661de39da15520dccd375cdebf2bf402" args="(string label, Dictionary&lt; string, Object &gt; style, int width)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxUtils::GetLabelSize </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>label</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>width</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the size of the given label. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa23c24c33302d884dacd7ddbd1b16543"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetMd5Hash" ref="aa23c24c33302d884dacd7ddbd1b16543" args="(string text)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static string com::mxgraph::mxUtils::GetMd5Hash </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>text</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the Md5 hash for the given text. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>String whose Md5 hash should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the Md5 hash for the given text.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6ba7fb8e71bc6a5ba2476c9bf43842c1"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetPrettyXml" ref="a6ba7fb8e71bc6a5ba2476c9bf43842c1" args="(XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static string com::mxgraph::mxUtils::GetPrettyXml </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a pretty-printed XML string for the given node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>Node to return the XML for.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a formatted XML string.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a514a598b4574635ab264a90cfe00a64f"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetRotatedPoint" ref="a514a598b4574635ab264a90cfe00a64f" args="(mxPoint pt, double cos, double sin, mxPoint c)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxUtils::GetRotatedPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>pt</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>cos</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>sin</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Rotates the given point by the given cos and sin. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8585d2006c43042e999d8cbc7eb40c90"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetRotatedPoint" ref="a8585d2006c43042e999d8cbc7eb40c90" args="(mxPoint pt, double cos, double sin)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxUtils::GetRotatedPoint </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&nbsp;</td>
    +          <td class="paramname"> <em>pt</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>cos</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>sin</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Rotates the given point by the given cos and sin. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3ed4a7861d42064c2be9f26b07a814cc"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetScaledLabelBounds" ref="a3ed4a7861d42064c2be9f26b07a814cc" args="(double x, double y, mxRectangle size, double outerWidth, double outerHeight, Dictionary&lt; string, Object &gt; style, double scale)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxUtils::GetScaledLabelBounds </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a>&nbsp;</td>
    +          <td class="paramname"> <em>size</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>outerWidth</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>outerHeight</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>scale</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the bounds for a label for the given location and size, taking into account the alignment and spacing in the specified style, as well as the width and height of the rectangle that contains the label. (For edge labels this width and height is 0.) The scale is used to scale the given size and the spacings in the specified style. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a08d855b0f40c6c60b395db790a6c74b4"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetSizeForString" ref="a08d855b0f40c6c60b395db790a6c74b4" args="(String text, Font font, int width)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxUtils::GetSizeForString </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Font&nbsp;</td>
    +          <td class="paramname"> <em>font</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>width</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns an <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html" title="Implements a 2-dimensional rectangle with double precision coordinates.">mxRectangle</a> with the size (width and height in pixels) of the given text. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>String whose size should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>font</em>&nbsp;</td><td>Specifies the font that should be used.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>Specifies the width of the text block for word wrapping.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the size of the given text.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8318d3c09f55d0317bd87b088b1822dd"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetSizeForString" ref="a8318d3c09f55d0317bd87b088b1822dd" args="(String text, Font font)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> com::mxgraph::mxUtils::GetSizeForString </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Font&nbsp;</td>
    +          <td class="paramname"> <em>font</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the size of the given text. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>String whose size should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>font</em>&nbsp;</td><td>Specifies the font that should be used.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the size of the given text.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aeef9a4e1c8524de7f4b0c6093ef4be3b"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetString" ref="aeef9a4e1c8524de7f4b0c6093ef4be3b" args="(Dictionary&lt; string, Object &gt; dict, string key, string defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static string com::mxgraph::mxUtils::GetString </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as a string or the given default value if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td>Default value to return if the key is undefined.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the string value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6b6e56618094460153fdfa34670c4766"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetString" ref="a6b6e56618094460153fdfa34670c4766" args="(Dictionary&lt; string, Object &gt; dict, string key)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static string com::mxgraph::mxUtils::GetString </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the value for key in dictionary as a string or null if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the string value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a79b1654dd953191778bbcd6ceae9f79c"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetStringFormat" ref="a79b1654dd953191778bbcd6ceae9f79c" args="(Dictionary&lt; string, Object &gt; style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static StringFormat com::mxgraph::mxUtils::GetStringFormat </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates a new StringFormat object for the given style. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a81ed5a92ad1cec4300cc4c63d882ec9d"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetStylename" ref="a81ed5a92ad1cec4300cc4c63d882ec9d" args="(String style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static String com::mxgraph::mxUtils::GetStylename </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the stylename in a style of the form stylename[;key=value] or an empty string if the given style does not contain a stylename. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>String of the form stylename[;key=value].</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the stylename from the given formatted string.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a857d2f7e3ecd002353e3ad256308b188"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetStylenames" ref="a857d2f7e3ecd002353e3ad256308b188" args="(String style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static String [] com::mxgraph::mxUtils::GetStylenames </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the stylenames in a style of the form stylename[;key=value] or an empty array if the given style does not contain any stylenames. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>String of the form stylename[;stylename][;key=value].</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the stylename from the given formatted string.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7eb91229c8f8d962843711abe2756200"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetXml" ref="a7eb91229c8f8d962843711abe2756200" args="(XmlNode node, Formatting formatting)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static string com::mxgraph::mxUtils::GetXml </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Formatting&nbsp;</td>
    +          <td class="paramname"> <em>formatting</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a pretty-printed XML string for the given node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>Node to return the XML for.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>formatting</em>&nbsp;</td><td>Formatting of the string to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a formatted XML string.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a28735717582ed6a547f32e8effd11e29"></a><!-- doxytag: member="com::mxgraph::mxUtils::GetXml" ref="a28735717582ed6a547f32e8effd11e29" args="(XmlNode node)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static string com::mxgraph::mxUtils::GetXml </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlNode&nbsp;</td>
    +          <td class="paramname"> <em>node</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a string that represents the given node. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>Node to return the XML for.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns an XML string.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1c88dfc8675db06225f91b3afa0f030f"></a><!-- doxytag: member="com::mxgraph::mxUtils::HtmlEntities" ref="a1c88dfc8675db06225f91b3afa0f030f" args="(String text)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static String com::mxgraph::mxUtils::HtmlEntities </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>text</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Converts the ampersand, quote, prime, less-than and greater-than characters to their corresponding HTML entities in the given string. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac3ddde679f9ad7f78edb3f9e842e2d7f"></a><!-- doxytag: member="com::mxgraph::mxUtils::IndexOfStylename" ref="ac3ddde679f9ad7f78edb3f9e842e2d7f" args="(String style, String stylename)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static int com::mxgraph::mxUtils::IndexOfStylename </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>stylename</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the index of the given stylename in the given style. This returns -1 if the given stylename does not occur (as a stylename) in the given style, otherwise it returns the index of the first character. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>stylename</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aca4150c2dba3683cde96ce2016cc18a5"></a><!-- doxytag: member="com::mxgraph::mxUtils::Intersection" ref="aca4150c2dba3683cde96ce2016cc18a5" args="(double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> com::mxgraph::mxUtils::Intersection </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x0</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y0</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x3</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y3</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the intersection of two lines as an <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html" title="Implements a 2-dimensional point with double precision coordinates.">mxPoint</a>. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>x0</em>&nbsp;</td><td>X-coordinate of the first line's startpoint.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y0</em>&nbsp;</td><td>Y-coordinate of the first line's startpoint.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>x1</em>&nbsp;</td><td>X-coordinate of the first line's endpoint.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y1</em>&nbsp;</td><td>Y-coordinate of the first line's endpoint.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>x2</em>&nbsp;</td><td>X-coordinate of the second line's startpoint.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y2</em>&nbsp;</td><td>Y-coordinate of the second line's startpoint.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>x3</em>&nbsp;</td><td>X-coordinate of the second line's endpoint.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y3</em>&nbsp;</td><td>Y-coordinate of the second line's endpoint.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abcedc5601014b98a220faaf9ce3c1798"></a><!-- doxytag: member="com::mxgraph::mxUtils::IsNode" ref="abcedc5601014b98a220faaf9ce3c1798" args="(Object value, String nodeName, String attributeName, String attributeValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static bool com::mxgraph::mxUtils::IsNode </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>nodeName</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>attributeName</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>attributeValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the user object is an XML node with the specified type and and the optional attribute has the specified value or is not specified. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Object that represents the value to be tested.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>nodeName</em>&nbsp;</td><td>String that specifies the node name.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attributeName</em>&nbsp;</td><td>Optional attribute name to check.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>attributeValue</em>&nbsp;</td><td>Optional attribute value to check.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the cell matches the given conditions.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5208100e48892f64e627a85ec30f7f32"></a><!-- doxytag: member="com::mxgraph::mxUtils::IsNode" ref="a5208100e48892f64e627a85ec30f7f32" args="(Object value, String nodeName)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static bool com::mxgraph::mxUtils::IsNode </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>nodeName</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given value is an XML node with the specified nodename. specified. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Object that represents the value to be tested.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>nodeName</em>&nbsp;</td><td>String that specifies the node name.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the node name of the user object is equal to the given type.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab40d46f2ffb86a859c209d13e44bf4cd"></a><!-- doxytag: member="com::mxgraph::mxUtils::IsTrue" ref="ab40d46f2ffb86a859c209d13e44bf4cd" args="(Dictionary&lt; string, Object &gt; dict, string key, bool defaultValue)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static bool com::mxgraph::mxUtils::IsTrue </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>defaultValue</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the dictionary contains true for the given key or the given default value if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>defaultValue</em>&nbsp;</td><td>Default value to return if the key is undefined.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the boolean value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0e1981e448a4bf8f245f6472ddb3f131"></a><!-- doxytag: member="com::mxgraph::mxUtils::IsTrue" ref="a0e1981e448a4bf8f245f6472ddb3f131" args="(Dictionary&lt; string, Object &gt; dict, string key)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static bool com::mxgraph::mxUtils::IsTrue </td>
    +          <td>(</td>
    +          <td class="paramtype">Dictionary&lt; string, Object &gt;&nbsp;</td>
    +          <td class="paramname"> <em>dict</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the dictionary contains true for the given key or false if no value is defined for the key. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dict</em>&nbsp;</td><td>Dictionary that contains the key, value pairs.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key whose value should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the boolean value for key in dict.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae722c7c569219d667a4c970f3dcfb6bf"></a><!-- doxytag: member="com::mxgraph::mxUtils::LoadDocument" ref="ae722c7c569219d667a4c970f3dcfb6bf" args="(string uri)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static XmlDocument com::mxgraph::mxUtils::LoadDocument </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>uri</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a new DOM document for the given URI. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>URI to parse into the document.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a new DOM document for the given URI.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a30ccc3180a67c12649dbba8212918215"></a><!-- doxytag: member="com::mxgraph::mxUtils::LoadImage" ref="a30ccc3180a67c12649dbba8212918215" args="(String url)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static Image com::mxgraph::mxUtils::LoadImage </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>url</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Loads an image from the local filesystem, a data URI or any other URL. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a18122413c99206306bc0cca8ee7bbd0a"></a><!-- doxytag: member="com::mxgraph::mxUtils::ParseXml" ref="a18122413c99206306bc0cca8ee7bbd0a" args="(string xml)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static XmlDocument com::mxgraph::mxUtils::ParseXml </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>xml</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a document that represents the given XML string. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>xml</em>&nbsp;</td><td>String that contains the XML markup.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns an XML document.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a90cc8f0f221f2add5a31cfa47bea9b3f"></a><!-- doxytag: member="com::mxgraph::mxUtils::ReadFile" ref="a90cc8f0f221f2add5a31cfa47bea9b3f" args="(string filename)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static string com::mxgraph::mxUtils::ReadFile </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>filename</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Reads the given filename into a string. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>Name of the file to be read.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a string representing the file contents.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="abe003f6e64b3ae245257d0447bc890d6"></a><!-- doxytag: member="com::mxgraph::mxUtils::RemoveAllStylenames" ref="abe003f6e64b3ae245257d0447bc890d6" args="(String style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static String com::mxgraph::mxUtils::RemoveAllStylenames </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes all stylenames from the given style and returns the updated style. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2fa96b662336bd34cb73951607bc9e2b"></a><!-- doxytag: member="com::mxgraph::mxUtils::RemoveStylename" ref="a2fa96b662336bd34cb73951607bc9e2b" args="(String style, String stylename)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">String com::mxgraph::mxUtils::RemoveStylename </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>stylename</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes all occurrences of the specified stylename in the given style and returns the updated style. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>stylename</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aae4b27f9a279780ebbd795bbd851cb46"></a><!-- doxytag: member="com::mxgraph::mxUtils::SelectSingleNode" ref="aae4b27f9a279780ebbd795bbd851cb46" args="(XmlDocument doc, string expression)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static XmlNode com::mxgraph::mxUtils::SelectSingleNode </td>
    +          <td>(</td>
    +          <td class="paramtype">XmlDocument&nbsp;</td>
    +          <td class="paramname"> <em>doc</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>expression</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a single node that matches the given XPath expression. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>doc</em>&nbsp;</td><td>Document that contains the nodes.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>expression</em>&nbsp;</td><td>XPath expression to be matched.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a single node matching the given expression.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a2eeb7bc9dd011e47b035cf4f4b6de579"></a><!-- doxytag: member="com::mxgraph::mxUtils::SetCellStyleFlags" ref="a2eeb7bc9dd011e47b035cf4f4b6de579" args="(mxIGraphModel model, Object[] cells, String key, int flag, Boolean value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static void com::mxgraph::mxUtils::SetCellStyleFlags </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>flag</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Boolean&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or toggles the flag bit for the given key in the cell's styles. If value is null then the flag is toggled. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model that contains the cells.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cells</em>&nbsp;</td><td>Array of cells to change the style for.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key of the style to be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>flag</em>&nbsp;</td><td>Integer for the bit to be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Optional boolean value for the flag.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ab7b5cd3313e3e1feaa5f366b18d2c435"></a><!-- doxytag: member="com::mxgraph::mxUtils::SetCellStyles" ref="ab7b5cd3313e3e1feaa5f366b18d2c435" args="(mxIGraphModel model, Object[] cells, String key, String value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static void com::mxgraph::mxUtils::SetCellStyles </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>&nbsp;</td>
    +          <td class="paramname"> <em>model</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Assigns the value for the given key in the styles of the given cells, or removes the key from the styles if the value is null. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>model</em>&nbsp;</td><td>Model to execute the transaction in.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cells</em>&nbsp;</td><td>Array of cells to be updated.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key of the style to be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>New value for the given key.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0f13701bf4dc70c43f0f1ab408e97bea"></a><!-- doxytag: member="com::mxgraph::mxUtils::SetStyle" ref="a0f13701bf4dc70c43f0f1ab408e97bea" args="(String style, String key, String value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static String com::mxgraph::mxUtils::SetStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds or removes the given key, value pair to the style and returns the new style. If value is null or zero length then the key is removed from the style. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>String of the form stylename[;key=value].</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key of the style to be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>New value for the given key.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the new style.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9789a2adaf33eabe8aa8856df3aca807"></a><!-- doxytag: member="com::mxgraph::mxUtils::SetStyleFlag" ref="a9789a2adaf33eabe8aa8856df3aca807" args="(String style, String key, int flag, bool?value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static String com::mxgraph::mxUtils::SetStyleFlag </td>
    +          <td>(</td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>style</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">String&nbsp;</td>
    +          <td class="paramname"> <em>key</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>flag</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool?&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or removes the given key from the specified style and returns the new style. If value is null then the flag is toggled. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>String of the form stylename[;key=value].</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key of the style to be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>flag</em>&nbsp;</td><td>Integer for the bit to be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Optional boolean value for the given flag.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the new style.</dd></dl>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1a0c2f4fe1c1c17c445c396a1b158ccb"></a><!-- doxytag: member="com::mxgraph::mxUtils::ToRadians" ref="a1a0c2f4fe1c1c17c445c396a1b158ccb" args="(double deg)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static double com::mxgraph::mxUtils::ToRadians </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>deg</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Converts the given degree to radians. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a23b4c460761c0715762964202ebe2e26"></a><!-- doxytag: member="com::mxgraph::mxUtils::TranslatePoints" ref="a23b4c460761c0715762964202ebe2e26" args="(List&lt; mxPoint &gt; pts, double dx, double dy)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">static List&lt;<a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a>&gt; com::mxgraph::mxUtils::TranslatePoints </td>
    +          <td>(</td>
    +          <td class="paramtype">List&lt; <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> &gt;&nbsp;</td>
    +          <td class="paramname"> <em>pts</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dx</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dy</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td><code> [inline, static]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Creates a new list of new points obtained by translating the points in the given list by the given vector. Elements that are not mxPoints are added to the result as-is. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>pts</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>dx</em>&nbsp;</td><td></td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>dy</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this class was generated from the following file:<ul>
    +<li>src/utils/mxUtils.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/classes.html b/dotnet/docs/html/classes.html
    new file mode 100644
    index 000000000..25e81c96b
    --- /dev/null
    +++ b/dotnet/docs/html/classes.html
    @@ -0,0 +1,39 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Alphabetical List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a></div>
    +<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
    +<tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
    +</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">mxCellRenderer</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html">mxIGraphLayout</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">mxSaxOutputHandler</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html">mxCellRenderer::CanvasFactory</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">mxGraph</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">mxSession</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">mxGdiCanvas2D::CanvasState</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">mxCodec</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">mxGraphModel</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">mxImageBundle</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">mxSharedDiagram</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
    +</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">mxCodecRegistry</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">mxGraphView</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">mxImageCanvas</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">mxStencil</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">mxCellRenderer::ImageCanvasFactory</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">mxConnectionConstraint</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">mxGraphViewImageReader</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">mxModelCodec</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html">mxStencilRegistry</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</div></td></tr></table>
    +</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">mxConstants</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">mxGraphViewReader</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">mxObjectCodec</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html">mxStyleRegistry</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">mxBasicCanvas</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">mxEdgeStyle</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html">mxPerimeter</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">mxStylesheet</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">mxCell</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">mxFastOrganicLayout</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">mxICanvas2D</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">mxPoint</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">mxStylesheetCodec</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html">mxCellCodec</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">mxGdiCanvas</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">mxRectangle</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">mxUtils</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html">mxCellPath</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">mxGdiCanvas2D</a> (com::mxgraph)&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a></div>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:16 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dir_076bd82ce662d881076a1cef27897574.html b/dotnet/docs/html/dir_076bd82ce662d881076a1cef27897574.html
    new file mode 100644
    index 000000000..52f8833cf
    --- /dev/null
    +++ b/dotnet/docs/html/dir_076bd82ce662d881076a1cef27897574.html
    @@ -0,0 +1,39 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: src/ Directory Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>src Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Directories</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_89fb00df7b0bd6e59270739349fd7e29.html">canvas</a></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_9de224b8d1047b035ff591c383ca5b6c.html">io</a></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_53079388f6b2f56b0cf96293cbdbd4dd.html">layout</a></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_5558b9564b742ba2739ce7f04f555d67.html">model</a></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_cbd2de944759f97f7c6829731ff5b9c6.html">reader</a></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_82472a1b8eb52b1af79e1e9c0c794121.html">sharing</a></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_33ded66be5e3e8fa9e621cf728f55de8.html">utils</a></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_7212130a4bc77558633083b9be9f7e18.html">view</a></td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dir_33ded66be5e3e8fa9e621cf728f55de8.html b/dotnet/docs/html/dir_33ded66be5e3e8fa9e621cf728f55de8.html
    new file mode 100644
    index 000000000..dd0e7b140
    --- /dev/null
    +++ b/dotnet/docs/html/dir_33ded66be5e3e8fa9e621cf728f55de8.html
    @@ -0,0 +1,37 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: src/utils/ Directory Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a>&nbsp;&raquo;&nbsp;<a class="el" href="dir_33ded66be5e3e8fa9e621cf728f55de8.html">utils</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>utils Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Files</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxCellRenderer.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxConstants.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxImageBundle.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxPoint.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxRectangle.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxUtils.cs</b></td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dir_53079388f6b2f56b0cf96293cbdbd4dd.html b/dotnet/docs/html/dir_53079388f6b2f56b0cf96293cbdbd4dd.html
    new file mode 100644
    index 000000000..be8a13f22
    --- /dev/null
    +++ b/dotnet/docs/html/dir_53079388f6b2f56b0cf96293cbdbd4dd.html
    @@ -0,0 +1,33 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: src/layout/ Directory Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a>&nbsp;&raquo;&nbsp;<a class="el" href="dir_53079388f6b2f56b0cf96293cbdbd4dd.html">layout</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>layout Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Files</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxFastOrganicLayout.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxIGraphLayout.cs</b></td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dir_5558b9564b742ba2739ce7f04f555d67.html b/dotnet/docs/html/dir_5558b9564b742ba2739ce7f04f555d67.html
    new file mode 100644
    index 000000000..950369bc4
    --- /dev/null
    +++ b/dotnet/docs/html/dir_5558b9564b742ba2739ce7f04f555d67.html
    @@ -0,0 +1,37 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: src/model/ Directory Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a>&nbsp;&raquo;&nbsp;<a class="el" href="dir_5558b9564b742ba2739ce7f04f555d67.html">model</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>model Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Files</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxCell.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxCellPath.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxGeometry.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxGraphModel.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxICell.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxIGraphModel.cs</b></td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dir_7212130a4bc77558633083b9be9f7e18.html b/dotnet/docs/html/dir_7212130a4bc77558633083b9be9f7e18.html
    new file mode 100644
    index 000000000..5b37ff9e6
    --- /dev/null
    +++ b/dotnet/docs/html/dir_7212130a4bc77558633083b9be9f7e18.html
    @@ -0,0 +1,39 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: src/view/ Directory Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a>&nbsp;&raquo;&nbsp;<a class="el" href="dir_7212130a4bc77558633083b9be9f7e18.html">view</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>view Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Files</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxCellState.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxConnectionConstraint.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxEdgeStyle.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxGraph.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxGraphView.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxPerimeter.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxStyleRegistry.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxStylesheet.cs</b></td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dir_82472a1b8eb52b1af79e1e9c0c794121.html b/dotnet/docs/html/dir_82472a1b8eb52b1af79e1e9c0c794121.html
    new file mode 100644
    index 000000000..c0548517a
    --- /dev/null
    +++ b/dotnet/docs/html/dir_82472a1b8eb52b1af79e1e9c0c794121.html
    @@ -0,0 +1,33 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: src/sharing/ Directory Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a>&nbsp;&raquo;&nbsp;<a class="el" href="dir_82472a1b8eb52b1af79e1e9c0c794121.html">sharing</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>sharing Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Files</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxSession.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxSharedState.cs</b></td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dir_89fb00df7b0bd6e59270739349fd7e29.html b/dotnet/docs/html/dir_89fb00df7b0bd6e59270739349fd7e29.html
    new file mode 100644
    index 000000000..132c9a597
    --- /dev/null
    +++ b/dotnet/docs/html/dir_89fb00df7b0bd6e59270739349fd7e29.html
    @@ -0,0 +1,39 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: src/canvas/ Directory Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a>&nbsp;&raquo;&nbsp;<a class="el" href="dir_89fb00df7b0bd6e59270739349fd7e29.html">canvas</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>canvas Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Files</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxBasicCanvas.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxGdiCanvas.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxGdiCanvas2D.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxICanvas.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxICanvas2D.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxImageCanvas.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxStencil.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxStencilRegistry.cs</b></td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dir_9de224b8d1047b035ff591c383ca5b6c.html b/dotnet/docs/html/dir_9de224b8d1047b035ff591c383ca5b6c.html
    new file mode 100644
    index 000000000..bdc537169
    --- /dev/null
    +++ b/dotnet/docs/html/dir_9de224b8d1047b035ff591c383ca5b6c.html
    @@ -0,0 +1,37 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: src/io/ Directory Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a>&nbsp;&raquo;&nbsp;<a class="el" href="dir_9de224b8d1047b035ff591c383ca5b6c.html">io</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>io Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Files</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxCellCodec.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxCodec.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxCodecRegistry.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxModelCodec.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxObjectCodec.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxStylesheetCodec.cs</b></td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dir_cbd2de944759f97f7c6829731ff5b9c6.html b/dotnet/docs/html/dir_cbd2de944759f97f7c6829731ff5b9c6.html
    new file mode 100644
    index 000000000..3d636e141
    --- /dev/null
    +++ b/dotnet/docs/html/dir_cbd2de944759f97f7c6829731ff5b9c6.html
    @@ -0,0 +1,34 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: src/reader/ Directory Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a>&nbsp;&raquo;&nbsp;<a class="el" href="dir_cbd2de944759f97f7c6829731ff5b9c6.html">reader</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>reader Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Files</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxGraphViewImageReader.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxGraphViewReader.cs</b></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>mxSaxOutputHandler.cs</b></td></tr>
    +</table>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/dirs.html b/dotnet/docs/html/dirs.html
    new file mode 100644
    index 000000000..2b2691165
    --- /dev/null
    +++ b/dotnet/docs/html/dirs.html
    @@ -0,0 +1,39 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Directory Hierarchy</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li class="current"><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>Directories</h1>This directory hierarchy is sorted roughly, but not completely, alphabetically:<ul>
    +<li><a class="el" href="dir_076bd82ce662d881076a1cef27897574.html">src</a><ul>
    +<li><a class="el" href="dir_89fb00df7b0bd6e59270739349fd7e29.html">canvas</a></li>
    +<li><a class="el" href="dir_9de224b8d1047b035ff591c383ca5b6c.html">io</a></li>
    +<li><a class="el" href="dir_53079388f6b2f56b0cf96293cbdbd4dd.html">layout</a></li>
    +<li><a class="el" href="dir_5558b9564b742ba2739ce7f04f555d67.html">model</a></li>
    +<li><a class="el" href="dir_cbd2de944759f97f7c6829731ff5b9c6.html">reader</a></li>
    +<li><a class="el" href="dir_82472a1b8eb52b1af79e1e9c0c794121.html">sharing</a></li>
    +<li><a class="el" href="dir_33ded66be5e3e8fa9e621cf728f55de8.html">utils</a></li>
    +<li><a class="el" href="dir_7212130a4bc77558633083b9be9f7e18.html">view</a></li>
    +</ul>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/doxygen.css b/dotnet/docs/html/doxygen.css
    new file mode 100644
    index 000000000..d6aaf2804
    --- /dev/null
    +++ b/dotnet/docs/html/doxygen.css
    @@ -0,0 +1,545 @@
    +/* The standard CSS for doxygen */
    +
    +body, table, div, p, dl {
    +	font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
    +	font-size: 12px;
    +}
    +
    +/* @group Heading Levels */
    +
    +h1 {
    +	text-align: center;
    +	font-size: 150%;
    +}
    +
    +h2 {
    +	font-size: 120%;
    +}
    +
    +h3 {
    +	font-size: 100%;
    +}
    +
    +dt {
    +	font-weight: bold;
    +}
    +
    +div.multicol {
    +	-moz-column-gap: 1em;
    +	-webkit-column-gap: 1em;
    +	-moz-column-count: 3;
    +	-webkit-column-count: 3;
    +}
    +
    +p.startli, p.startdd, p.starttd {
    +	margin-top: 2px;
    +}
    +
    +p.endli {
    +	margin-bottom: 0px;
    +}
    +
    +p.enddd {
    +	margin-bottom: 4px;
    +}
    +
    +p.endtd {
    +	margin-bottom: 2px;
    +}
    +
    +/* @end */
    +
    +caption {
    +	font-weight: bold;
    +}
    +
    +span.legend {
    +        font-size: 70%;
    +        text-align: center;
    +}
    +
    +h3.version {
    +        font-size: 90%;
    +        text-align: center;
    +}
    +
    +div.qindex, div.navtab{
    +	background-color: #e8eef2;
    +	border: 1px solid #84b0c7;
    +	text-align: center;
    +	margin: 2px;
    +	padding: 2px;
    +}
    +
    +div.qindex, div.navpath {
    +	width: 100%;
    +	line-height: 140%;
    +}
    +
    +div.navtab {
    +	margin-right: 15px;
    +}
    +
    +/* @group Link Styling */
    +
    +a {
    +	color: #153788;
    +	font-weight: normal;
    +	text-decoration: none;
    +}
    +
    +.contents a:visited {
    +	color: #1b77c5;
    +}
    +
    +a:hover {
    +	text-decoration: underline;
    +}
    +
    +a.qindex {
    +	font-weight: bold;
    +}
    +
    +a.qindexHL {
    +	font-weight: bold;
    +	background-color: #6666cc;
    +	color: #ffffff;
    +	border: 1px double #9295C2;
    +}
    +
    +.contents a.qindexHL:visited {
    +        color: #ffffff;
    +}
    +
    +a.el {
    +	font-weight: bold;
    +}
    +
    +a.elRef {
    +}
    +
    +a.code {
    +	color: #3030f0;
    +}
    +
    +a.codeRef {
    +	color: #3030f0;
    +}
    +
    +/* @end */
    +
    +dl.el {
    +	margin-left: -1cm;
    +}
    +
    +.fragment {
    +	font-family: monospace, fixed;
    +	font-size: 105%;
    +}
    +
    +pre.fragment {
    +	border: 1px solid #CCCCCC;
    +	background-color: #f5f5f5;
    +	padding: 4px 6px;
    +	margin: 4px 8px 4px 2px;
    +	overflow: auto;
    +	word-wrap: break-word;
    +	font-size:  9pt;
    +	line-height: 125%;
    +}
    +
    +div.ah {
    +	background-color: black;
    +	font-weight: bold;
    +	color: #ffffff;
    +	margin-bottom: 3px;
    +	margin-top: 3px
    +}
    +
    +div.groupHeader {
    +	margin-left: 16px;
    +	margin-top: 12px;
    +	margin-bottom: 6px;
    +	font-weight: bold;
    +}
    +
    +div.groupText {
    +	margin-left: 16px;
    +	font-style: italic;
    +}
    +
    +body {
    +	background: white;
    +	color: black;
    +	margin-right: 20px;
    +	margin-left: 20px;
    +}
    +
    +td.indexkey {
    +	background-color: #e8eef2;
    +	font-weight: bold;
    +	border: 1px solid #CCCCCC;
    +	margin: 2px 0px 2px 0;
    +	padding: 2px 10px;
    +}
    +
    +td.indexvalue {
    +	background-color: #e8eef2;
    +	border: 1px solid #CCCCCC;
    +	padding: 2px 10px;
    +	margin: 2px 0px;
    +}
    +
    +tr.memlist {
    +	background-color: #f0f0f0;
    +}
    +
    +p.formulaDsp {
    +	text-align: center;
    +}
    +
    +img.formulaDsp {
    +	
    +}
    +
    +img.formulaInl {
    +	vertical-align: middle;
    +}
    +
    +div.center {
    +	text-align: center;
    +        margin-top: 0px;
    +        margin-bottom: 0px;
    +        padding: 0px;
    +}
    +
    +div.center img {
    +	border: 0px;
    +}
    +
    +img.footer {
    +	border: 0px;
    +	vertical-align: middle;
    +}
    +
    +/* @group Code Colorization */
    +
    +span.keyword {
    +	color: #008000
    +}
    +
    +span.keywordtype {
    +	color: #604020
    +}
    +
    +span.keywordflow {
    +	color: #e08000
    +}
    +
    +span.comment {
    +	color: #800000
    +}
    +
    +span.preprocessor {
    +	color: #806020
    +}
    +
    +span.stringliteral {
    +	color: #002080
    +}
    +
    +span.charliteral {
    +	color: #008080
    +}
    +
    +span.vhdldigit { 
    +	color: #ff00ff 
    +}
    +
    +span.vhdlchar { 
    +	color: #000000 
    +}
    +
    +span.vhdlkeyword { 
    +	color: #700070 
    +}
    +
    +span.vhdllogic { 
    +	color: #ff0000 
    +}
    +
    +/* @end */
    +
    +.search {
    +	color: #003399;
    +	font-weight: bold;
    +}
    +
    +form.search {
    +	margin-bottom: 0px;
    +	margin-top: 0px;
    +}
    +
    +input.search {
    +	font-size: 75%;
    +	color: #000080;
    +	font-weight: normal;
    +	background-color: #e8eef2;
    +}
    +
    +td.tiny {
    +	font-size: 75%;
    +}
    +
    +.dirtab {
    +	padding: 4px;
    +	border-collapse: collapse;
    +	border: 1px solid #84b0c7;
    +}
    +
    +th.dirtab {
    +	background: #e8eef2;
    +	font-weight: bold;
    +}
    +
    +hr {
    +	height: 0px;
    +	border: none;
    +	border-top: 1px solid #666;
    +}
    +
    +hr.footer {
    +	height: 1px;
    +}
    +
    +/* @group Member Descriptions */
    +
    +.mdescLeft, .mdescRight,
    +.memItemLeft, .memItemRight,
    +.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
    +	background-color: #FAFAFA;
    +	border: none;
    +	margin: 4px;
    +	padding: 1px 0 0 8px;
    +}
    +
    +.mdescLeft, .mdescRight {
    +	padding: 0px 8px 4px 8px;
    +	color: #555;
    +}
    +
    +.memItemLeft, .memItemRight, .memTemplParams {
    +	border-top: 1px solid #ccc;
    +}
    +
    +.memItemLeft, .memTemplItemLeft {
    +        white-space: nowrap;
    +}
    +
    +.memTemplParams {
    +	color: #606060;
    +        white-space: nowrap;
    +}
    +
    +/* @end */
    +
    +/* @group Member Details */
    +
    +/* Styles for detailed member documentation */
    +
    +.memtemplate {
    +	font-size: 80%;
    +	color: #606060;
    +	font-weight: normal;
    +	margin-left: 3px;
    +}
    +
    +.memnav {
    +	background-color: #e8eef2;
    +	border: 1px solid #84b0c7;
    +	text-align: center;
    +	margin: 2px;
    +	margin-right: 15px;
    +	padding: 2px;
    +}
    +
    +.memitem {
    +	padding: 0;
    +	margin-bottom: 10px;
    +}
    +
    +.memname {
    +        white-space: nowrap;
    +        font-weight: bold;
    +        margin-left: 6px;
    +}
    +
    +.memproto {
    +        border-top: 1px solid #84b0c7;          
    +        border-left: 1px solid #84b0c7;         
    +        border-right: 1px solid #84b0c7; 
    +        padding: 0;
    +        background-color: #d5e1e8;
    +        font-weight: bold;
    +        /* firefox specific markup */
    +        background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
    +        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
    +        -moz-border-radius-topright: 8px;
    +        -moz-border-radius-topleft: 8px;
    +        /* webkit specific markup */
    +        background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
    +        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
    +        -webkit-border-top-right-radius: 8px;
    +        -webkit-border-top-left-radius: 8px;
    +
    +}
    +
    +.memdoc {
    +        border-bottom: 1px solid #84b0c7;      
    +        border-left: 1px solid #84b0c7;      
    +        border-right: 1px solid #84b0c7; 
    +        padding: 2px 5px;
    +        background-color: #eef3f5;
    +        border-top-width: 0;
    +        /* firefox specific markup */
    +        -moz-border-radius-bottomleft: 8px;
    +        -moz-border-radius-bottomright: 8px;
    +        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
    +        /* webkit specific markup */
    +        -webkit-border-bottom-left-radius: 8px;
    +        -webkit-border-bottom-right-radius: 8px;
    +        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
    +}
    +
    +.paramkey {
    +	text-align: right;
    +}
    +
    +.paramtype {
    +	white-space: nowrap;
    +}
    +
    +.paramname {
    +	color: #602020;
    +	white-space: nowrap;
    +}
    +.paramname em {
    +	font-style: normal;
    +}
    +
    +/* @end */
    +
    +/* @group Directory (tree) */
    +
    +/* for the tree view */
    +
    +.ftvtree {
    +	font-family: sans-serif;
    +	margin: 0.5em;
    +}
    +
    +/* these are for tree view when used as main index */
    +
    +.directory {
    +	font-size: 9pt;
    +	font-weight: bold;
    +}
    +
    +.directory h3 {
    +	margin: 0px;
    +	margin-top: 1em;
    +	font-size: 11pt;
    +}
    +
    +/*
    +The following two styles can be used to replace the root node title
    +with an image of your choice.  Simply uncomment the next two styles,
    +specify the name of your image and be sure to set 'height' to the
    +proper pixel height of your image.
    +*/
    +
    +/*
    +.directory h3.swap {
    +	height: 61px;
    +	background-repeat: no-repeat;
    +	background-image: url("yourimage.gif");
    +}
    +.directory h3.swap span {
    +	display: none;
    +}
    +*/
    +
    +.directory > h3 {
    +	margin-top: 0;
    +}
    +
    +.directory p {
    +	margin: 0px;
    +	white-space: nowrap;
    +}
    +
    +.directory div {
    +	display: none;
    +	margin: 0px;
    +}
    +
    +.directory img {
    +	vertical-align: -30%;
    +}
    +
    +/* these are for tree view when not used as main index */
    +
    +.directory-alt {
    +	font-size: 100%;
    +	font-weight: bold;
    +}
    +
    +.directory-alt h3 {
    +	margin: 0px;
    +	margin-top: 1em;
    +	font-size: 11pt;
    +}
    +
    +.directory-alt > h3 {
    +	margin-top: 0;
    +}
    +
    +.directory-alt p {
    +	margin: 0px;
    +	white-space: nowrap;
    +}
    +
    +.directory-alt div {
    +	display: none;
    +	margin: 0px;
    +}
    +
    +.directory-alt img {
    +	vertical-align: -30%;
    +}
    +
    +/* @end */
    +
    +address {
    +	font-style: normal;
    +	color: #333;
    +}
    +
    +table.doxtable {
    +	border-collapse:collapse;
    +}
    +
    +table.doxtable td, table.doxtable th {
    +	border: 1px solid #153788;
    +	padding: 3px 7px 2px;
    +}
    +
    +table.doxtable th {
    +	background-color: #254798;
    +	color: #FFFFFF;
    +	font-size: 110%;
    +	padding-bottom: 4px;
    +	padding-top: 5px;
    +	text-align:left;
    +}
    +
    diff --git a/dotnet/docs/html/doxygen.png b/dotnet/docs/html/doxygen.png
    new file mode 100644
    index 000000000..f0a274bba
    Binary files /dev/null and b/dotnet/docs/html/doxygen.png differ
    diff --git a/dotnet/docs/html/functions.html b/dotnet/docs/html/functions.html
    new file mode 100644
    index 000000000..dfe34225b
    --- /dev/null
    +++ b/dotnet/docs/html/functions.html
    @@ -0,0 +1,193 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
    +<li>absoluteOffset
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8e67a5772b7ae9b43b1a587de61f79a6">com::mxgraph::mxCellState</a>
    +</li>
    +<li>AbsoluteOffset
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a067cc7b395e53d99d755d37d3bfbc748">com::mxgraph::mxCellState</a>
    +</li>
    +<li>AbsolutePointCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a81b27f5da2d725dd02a4c3cb3a9dad20">com::mxgraph::mxCellState</a>
    +</li>
    +<li>absolutePoints
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aab5a826bcec2f7134cbc9e8b4142eb49">com::mxgraph::mxCellState</a>
    +</li>
    +<li>AbsolutePoints
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a57f270c174f616ff5df3fc9614323f32">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Add()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a5e971cdff92e9e53071232dc80cbc8b0">com::mxgraph::mxRectangle</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6a9df7876d2ca6179d58a9b3be663a1c">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ab18ea07aec23bfbce6c7489269c0985c">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>AddAlias()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a2f52b12270d43eff03f58a059dbd9c67">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>AddDelta()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a867955350b3463cdc7af92727deebbd1">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>AddImageBundle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aa057b90ab131f4662a7f402d006a73bf">com::mxgraph::mxGraph</a>
    +</li>
    +<li>AddNamespace()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#ae9e172ad864056f7d8a6d3a3dee9a536">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>AddObjectValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a400b8c95027f3e65c8f6bb7365346e31">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>AddStencil()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html#a2a8321f136c7a514dc755824d6302032">com::mxgraph::mxStencilRegistry</a>
    +</li>
    +<li>AddStylename()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a4fb003dac4ebb72fc3e59dbce67fd330">com::mxgraph::mxUtils</a>
    +</li>
    +<li>AfterDecode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af52418b7e8af59ebf7892725dfda0c99">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>AfterEncode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a190fb06cd2ebe7953a6766f71f0f4a5d">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>aliases
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a052379e3e095439ba6dcc63e0c1df0ea">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>ALIGN_BOTTOM
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1232be429b6c5cbd6bbbfe9f8f94a8">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_CENTER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a671d1091ad0216097f171e35721407be">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_LEFT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a581f2bde5ccd9a5e4d34dee1d22b9e2f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_MIDDLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae3911ed6204528cdbbe551c4d0ff90fa">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_RIGHT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4e34648d83cd7460d0cb20ee0403d8a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_TOP
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e3b58384536c29db72b8b6e0766fe5b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>allowedToRun
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8fc7192201e0c121dd01024dc1793b79">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>Alpha
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a6e78d631c45ea341b6e82ae2d2ae747f">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad30fb99f1065da8fb956ceb519884381">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>alternateBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a8475ccf174c3897a4a9df74cd95be8">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>AlternateBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a50d84d2d9ed0cf6f083d31bd4794f18b">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>antiAlias
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad2a3c5a4e3486545a7b0178ae64ce8dc">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +</li>
    +<li>AntiAlias
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a1dc79898cc116600a6322fb83d13a4b1">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>antiAlias
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6d9801aae801ca3503ab23f5f7ff06cd">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>ArcToCurves()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a91f005028c32d0d614b4c5fe1f955b82">com::mxgraph::mxUtils</a>
    +</li>
    +<li>ARROW_BLOCK
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97bae058e18a204853e81ef523c27cbe">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_CLASSIC
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bc3c5c7fd2dc102d59e667c9648ebfc">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_DIAMOND
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adabfcaff7df74535caf6c51ea2823139">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_OPEN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ccb95f20cf9ad4f620356ba5c85613c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_OVAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5f89ad5538a6009a1c76e3b8cd3979df">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_SIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad42ffebd7848e9a459db4542fb931be9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6cc6975b57bdba6d460539a237557082">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_WIDTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6fdb559821134de6b14cb4f6e7b6df8e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>aspect
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a99acd943034d5503bf048c2574a431d0">com::mxgraph::mxStencil</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:16 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x62.html b/dotnet/docs/html/functions_0x62.html
    new file mode 100644
    index 000000000..701eef155
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x62.html
    @@ -0,0 +1,113 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li class="current"><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
    +<li>Background
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a86163e41e964450a012d38a97954921f">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>background
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aed5809860eb0645637557fca52728c88">com::mxgraph::mxGraphViewImageReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a2090497ead27f7669fae5d72ba7f0ce7">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +</li>
    +<li>BeforeDecode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a64513ab4228e528bfd216c08def3ec6c">com::mxgraph::mxModelCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aef2e78e13b8dd5895ac272a0542ce4f2">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>BeforeEncode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa58c9db1a76eca9a93196b3d618560a5">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>Begin()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af2b8668d5b175b816c51951a61bfa02a">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a912799fcd5815fe7ef01cffa09db2df4">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>BeginUpdate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ab56861ed391e6f4a47ecc2f844a5d02d">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a201180e5435be27e37666fe724cb810b">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>bgNode
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ad5bc3a0e9ac020f3def014201dcafe9c">com::mxgraph::mxStencil</a>
    +</li>
    +<li>Border
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#abbc386cb9f33f2f3328ce945d355e09b">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>border
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aff0fe532ec2953fdd42f95a77b39eaf6">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>boundingBox
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a88557f12649c9250415a6754f41ee6fd">com::mxgraph::mxCellState</a>
    +</li>
    +<li>BoundingBox
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aa05783514f4ba432ce3ca31bf81837df">com::mxgraph::mxCellState</a>
    +</li>
    +<li>buffer
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a67c9f110e62aa2417ffe28decef0d462">com::mxgraph::mxSession</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:16 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x63.html b/dotnet/docs/html/functions_0x63.html
    new file mode 100644
    index 000000000..6e6201e93
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x63.html
    @@ -0,0 +1,269 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li class="current"><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
    +<li>calcAttraction()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aab8b33a938819900649672628d79fcc3">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>calcPositions()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab1ec482cc537816e5edd99cd3229c8c8">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>calcRepulsion()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8d5678f4bc6e2143d8cd39f81edc7f3c">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>Canvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#af130379cf2af3dd403a3c32d88101ecc">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>canvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a56892081b94e26a8e0a30479f7be4138">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>Canvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a480dc9414a3f3f33eac65c2c34a8616f">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>canvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a25a1291905e89f24bc2c8258d9fb8b7e">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a4ead1c024b80b0157e323050b273e402">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>cell
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0b0d02a595bcdb5afc69658d9a0c508e">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Cell
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a4e67168c04ec620edcabffc4506e51a3">com::mxgraph::mxCellState</a>
    +</li>
    +<li>CellAdded()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4e6d214045580295f508d94ddb121268">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>cellLocation
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ae974dc7272a8a74d0c9abec809e543bd">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>CellRemoved()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a29c373be3c557e7f4b0489d69954c2c8">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>cells
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a11aae87bbc54a67fe354ab8cf95d641d">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>ChildCount()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a44df3fed3473e1d55bc384e1d5c6468d">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa516a234836e32415529e8ff2f8be92f">com::mxgraph::mxCell</a>
    +</li>
    +<li>childMoved()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a7a73f5b6d84de487270c6fdb191fa223">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>children
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a1c2fb190cdcd3491244fa2139d251e95">com::mxgraph::mxCell</a>
    +</li>
    +<li>Clear()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a65b3f3bb8af1d71cacf71420564b7bae">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>clip
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a0d0ca19582bd5c2b329ebcf456736100">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>Clip
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a17d2074a21622207e42044624cf957be">com::mxgraph::mxGraphViewImageReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac7b2da6955b71fa92e0acdb540d27644">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7422851f67a552d9ec84bf5ed06214d6">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>Clone()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html#a2af4c4098c9d976033aebeb693208633">com::mxgraph::mxGdiCanvas2D::CanvasState</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab1926c27e8b8c97d98a2f6567686101c">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a1bc5e0feb17c50f9bab5853af0e089f0">com::mxgraph::mxGeometry</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#acd581748b2068e2309253cc70f78aa9e">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8c6344af8fbe69d3432fbb6018011a27">com::mxgraph::mxPoint</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa9e9e649efa5ad7239db970ec735e846">com::mxgraph::mxRectangle</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7a357573a28f227b884eb6a798b1c2df">com::mxgraph::mxCellState</a>
    +</li>
    +<li>CloneCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#abe24b1fd2e8bac0e8e5fce1b761c06d9">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>CloneCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#adb5ffb8b1a05c3c77b26a04f06594a29">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a6457526895ee16775a43819bbdc3b713">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>CloneTemplate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a9916f40c70806d0f2dbce90d2bc0a228">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>Close()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a74b61843c65431397481572da60234c9">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac4ec8848dd2d583be1589103f2e00560">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>codecs
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a86f950b4c672dfaff0656c22bf4a64e6">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>Collapsed
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aca613934c56c8f69cb432db7faf19bf6">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa81ab5ecd3876b35ceae096eba788648">com::mxgraph::mxICell</a>
    +</li>
    +<li>collapsed
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a0d9fb7116c8ac4c8e1bedc88dbfabef1">com::mxgraph::mxCell</a>
    +</li>
    +<li>ComputeAspect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a7dc9504d6a515d7f348c95464deb95e0">com::mxgraph::mxStencil</a>
    +</li>
    +<li>ConfigureImageGraphics()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#afbf738dda3e2f5dcb3814f2a3b8342af">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>Connectable
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a47d8ff40770b1bdd107de01b61399087">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#af6db22ef27fd0f9b264ca003f09f07c8">com::mxgraph::mxICell</a>
    +</li>
    +<li>connectable
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a99130172e0a3b5043450904c3e629800">com::mxgraph::mxCell</a>
    +</li>
    +<li>Contains()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a831a9721313f6770e6af7dc418d9ee39">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aa9ba8b0716a8662bcedbdfb56166b4af">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a3f76585b333bf7fe2d58ed38e8296b26">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>Convert()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6ce1023a33d6eac6bc4abb5219110d89">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>ConvertValueFromXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af10ffcb1ec0726e3ce520e450eddd1a9">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>ConvertValueToString()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a33ae6b392d4a1eba9b7821e272a8c152">com::mxgraph::mxGraph</a>
    +</li>
    +<li>ConvertValueToXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a668ec4f16b4018010b78dfac5da202a1">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>Create()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a5d6ef3ddf18cdcf7250bb4eb47f930a9">com::mxgraph::mxCellPath</a>
    +</li>
    +<li>CreateCanvas()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a8522152762d9f475a48a3169d01b4229">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html#acae5f43ac3665c8cd4b4d22c555bca75">com::mxgraph::mxCellRenderer::CanvasFactory</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ae5c444871b99317d1d27268430a9016f">com::mxgraph::mxGraphViewReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a7f26f04ba96c4beb8fc8edfb1ffa066a">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#ac8356063dfd38867d0a9941c4211d57d">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>CreateDefaultEdgeStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ae65aab6b8095dbff81674b19a3d717ed">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>CreateDefaultVertexStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a6d347145ac52be5640d705a15d86bf54">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>CreateDocument()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aca3ccaa055624b04567bc4f5c29eefc4">com::mxgraph::mxUtils</a>
    +</li>
    +<li>CreateEdge()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6d2d6a53c4a23cb8ebbb144db1fcf568">com::mxgraph::mxGraph</a>
    +</li>
    +<li>CreateFont()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae1eb2fce0a82af1bacd9232a99edd63c">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>CreateGraphView()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac1b8b9fdccf032cb2c58d16bf7bda8ba">com::mxgraph::mxGraph</a>
    +</li>
    +<li>CreateId()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae7c6fc9bc3f23dbad10b2cd624116ff6">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>createIds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a912b286b4d318dc633b1e7a28630f309">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>CreateImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a346009f6c841efa8c5d3da4cc4ed651c">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#afc487aac0fb7931ae14c2e0c0d62704b">com::mxgraph::mxCellRenderer</a>
    +</li>
    +<li>CreateRoot()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad28b035282fccfb73511cf9faae6202f">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>CreateState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa29a0f2d160d44de6d41998d76d5c7ea">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>CreateStringFormat()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a1d76c9e4f021f98578088e536c2cb50a">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>CreateStylesheet()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6b360d188b285a440a858ff69a162dea">com::mxgraph::mxGraph</a>
    +</li>
    +<li>CreateVertex()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a80157aca4b0dda9252be5139b197c4f6">com::mxgraph::mxGraph</a>
    +</li>
    +<li>cropping
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af50cf355de821b22f1139224b7ab960b">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>Cropping
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af3964c9aa47942ad27136fe899abf542">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>currentPath
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a72fef5bf7f66445b934a21caab5e7742">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>currentShadowColor
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa3055da45b5c778072dddd4071a03f1d">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>currentShadowValue
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a3fc5d5d55bffc42a02714b23d46c4f18">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>CurveTo()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad913dc5a8030d5f802d6c62662a53969">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaa2904f7cac79881913fe04c1a209181">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:16 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x64.html b/dotnet/docs/html/functions_0x64.html
    new file mode 100644
    index 000000000..02ae3055c
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x64.html
    @@ -0,0 +1,272 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li class="current"><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
    +<li>Dashed
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa77ee2108750ef5c2e4e60306feb1a0d">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae8633458a4a93fb3bd354b130f0d4d7">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>DashPattern
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aadab1f5cdf6ddc97b6dc8da9224c9f3d">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a92aaa9ef4ad6f542db277e988bcc41b5">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>Decode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a121ba530f191fa675cef1199783d3b4c">com::mxgraph::mxObjectCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a79090b06efe74f3805ec252138012431">com::mxgraph::mxStylesheetCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a270c02410861862c8c08e0d45c4b4dbf">com::mxgraph::mxCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#add2542d39061256bd5652925cd14ed99">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a3995ca8eb8b49ea3369ce78784da6886">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeAttributes()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6c43995dfa09e94c15237bb5bcb956bd">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a2e31c56e464eabd8fe784f93ebf45b78">com::mxgraph::mxCodec</a>
    +</li>
    +<li>DecodeChild()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a26402e6fab4b83efae915a1d241a9139">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeChildren()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a0fae9f4253f6b903b13a0342d27b654d">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeNode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8d19152cfe1b7a65a613ecc823c0ff6c">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DEFAULT_FONTFAMILY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa8f6be2c9e0c22d5a3fc3e7ffb78e091">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_FONTSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e51abdecb7408a419abc5dc1add483d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_HOTSPOT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4681077d65955938ae5f0a1d92cf4d9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_IMAGEBASEPATH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a14c54203435c3e2880be1724bfe7a091">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>DEFAULT_IMAGESIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a501de491da4bfaca8212c186c0dd5010">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_MARKERSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afcaa2814121d0790947f213d58b4259e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_STARTSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afff87a571af579f46ec2c3862704a58a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_TIMEOUT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa12b929541f6a5a68b73d2a48133f40c">com::mxgraph::mxSession</a>
    +</li>
    +<li>DefaultEdgeStyle
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a55e72a75f417b6c0b29d548cc958c4b4">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>defaultLoopStyle
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad407060f46936743606c381fee294f58">com::mxgraph::mxGraph</a>
    +</li>
    +<li>DefaultLoopStyle
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a857ea173f7f385dae314598f99878639">com::mxgraph::mxGraph</a>
    +</li>
    +<li>DefaultVertexStyle
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a8bea54671a04717f6d96d06427b5edd0">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>delta
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ac528a7daa6452e26c1e3517f1ef68963">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>desc
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af121843569f520d2a1d165d4e9da41f7">com::mxgraph::mxStencil</a>
    +</li>
    +<li>Description
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a31e0ce00ec08d00aef2059e5fc5504fa">com::mxgraph::mxStencil</a>
    +</li>
    +<li>Destroy()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a10051aedcb8f9e1adb76f165757fcdbb">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a435f6fac66560ec4c38a9f0cdf101a1a">com::mxgraph::mxSession</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4e953fd9c08480d3bf94ab9a4cfa5ee5">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>diagram
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#ad1c81c4f7d9e14d47e2abcaeed7d2537">com::mxgraph::mxSession</a>
    +</li>
    +<li>DiagramChange
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a3db17c895284a0a4b835c5b6628b5923">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>DiagramChanged()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a8e4a0cb888cd971989859ac593fa9b5a">com::mxgraph::mxSession</a>
    +</li>
    +<li>DIRECTION_EAST
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a46965709b8201a793fd44e0d247d20f0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DIRECTION_NORTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aae4487ca29086764e8e5b38540f1df95">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DIRECTION_SOUTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad87d063a90714a2f565ac4d74a0ba309">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DIRECTION_WEST
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0523a6e826d22b0b050a037e16096785">com::mxgraph::mxConstants</a>
    +</li>
    +<li>dispX
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab622ac3cab6a511c09c9bc9c31dbc3f8">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>dispY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a10d7ba367f8af2dc03be88cf8f955c21">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>document
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a91caf2d5796965cfeae55e748ae1d438">com::mxgraph::mxCodec</a>
    +</li>
    +<li>Document
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a3c424b0a7288e6e8a4029c06ec358009">com::mxgraph::mxCodec</a>
    +</li>
    +<li>DrawActor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aafd04d8ceb82b55fc66d9e981ca50cb2">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a8d7fa4bb190ff786d64bf4b08a3d1c24">com::mxgraph::mxGdiCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ae3632533a1518faf4a0283e31e40bb6f">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f">com::mxgraph::mxICanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a141e199ea658499f9ee7cb614312de73">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#af6fc42eaa1eb3a49c08562938490b532">com::mxgraph::mxGraph</a>
    +</li>
    +<li>DrawCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#a2008e95a7cd828b21771613316fe8f37">com::mxgraph::mxCellRenderer</a>
    +</li>
    +<li>DrawCloud()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0b728e530315de862d80ad5084c0adbf">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawCylinder()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ab29840b550d4e8e7ce810756e31bd253">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawElement()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a27e9d15a0078eb7864efa8b394f350b9">com::mxgraph::mxStencil</a>
    +</li>
    +<li>DrawGlassEffect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#af37625a04f9f7d8ed9da18f102b5aeb5">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawGraph()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5a945c74c4398d4c86e16a18c9324b2">com::mxgraph::mxGraph</a>
    +</li>
    +<li>DrawHexagon()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abd6590a03ffb103ce52e56c7efba53df">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#acf425d50d39e240b84152f5548848d36">com::mxgraph::mxGdiCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a807941de776f8e92b7c73639c0abe815">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>DrawLabel()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79">com::mxgraph::mxICanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a8009e58f10e849bc7bb8fb0b22b9d67e">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a105ec52cceacc015399516e8451248b2">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0f874cdb7c36e7ea41f8c5099d598c8b">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>drawLabels
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a7cd23491208e3140dad748b6a7939d6e">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>DrawLabels
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a58b28e3540f378026b3ddc633ed48be0">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>DrawLine()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4364c3768a269869b078890cd7341397">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawMarker()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a21d332b458c681d0af7492d679722bb3">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawOval()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a06a77b51925696ff6d2f4702e71b9af1">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawPath()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a3a68ca8e3f7a86021498925900927b79">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawPolygon()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abaf2255b6c98e42889e870439ef0fc26">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawRect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ac5f846defe137723729aef143f7d1259">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawRhombus()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a000fc6507f6faf2afa3665ce0936acd7">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawShadow()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a43b08f91f8143d818d982a91ff075fe9">com::mxgraph::mxStencil</a>
    +</li>
    +<li>DrawShape()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ae038ad2567e18841f53e1c526dc8d732">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#add14dc3bfb5bf6b79f39f3683562de5d">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a83ba7a3c31f5dee4474ec5daa0e64143">com::mxgraph::mxGraph</a>
    +</li>
    +<li>DrawText()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4ef438995740da54702f38b343bd99f6">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawTriangle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a3c467a694ed0b8dd1577befaa3d853fa">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:16 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x65.html b/dotnet/docs/html/functions_0x65.html
    new file mode 100644
    index 000000000..07ea6da2c
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x65.html
    @@ -0,0 +1,178 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li class="current"><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
    +<li>Edge
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ae63470bb0cce48a707ef1755403628bc">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aadef1ce3fe1dc603d43381b2602d30b5">com::mxgraph::mxICell</a>
    +</li>
    +<li>edge
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a21789506573a48e8d29fc6dfd2f329d8">com::mxgraph::mxCell</a>
    +</li>
    +<li>EdgeCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab6a337054ab9ba260c8ac7936400ef41">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a828788dc75c335c2a073902d23bccd03">com::mxgraph::mxICell</a>
    +</li>
    +<li>edges
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a3a7bf8563718df5d6a116c22b588d14b">com::mxgraph::mxCell</a>
    +</li>
    +<li>EDGESTYLE_ELBOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeecc6e2dc1dbc264179acd4681f83a6b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EDGESTYLE_ENTITY_RELATION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a422ba84582422f22deb1f0d896161f2d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EDGESTYLE_LOOP
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1fe6d038ca967a9fc70d4aa35d363aff">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EDGESTYLE_SIDETOSIDE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4e5ff3580d1f5c565e973229f42ad2c4">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EDGESTYLE_TOPTOBOTTOM
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adb64f29e53c3b1cc0d597eb4172cef1a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ELBOW_HORIZONTAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac428d7bb10c30afea58b55092c6e8299">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ELBOW_VERTICAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a017feb6b31cc6ab8d3aaaf8fb8636f46">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ElbowConnector
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a92f5012b34ca2e03ce23139b36d59d2a">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +<li>ElementHandler()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a9f9f2f0a5243b568ac6e8de2e2647039">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>Ellipse()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a23449cbcc3027e256de3ce5f2bbcd816">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a83b9df27f2fe4806e71e5664b39ac556">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>EllipsePerimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a7fc483d8669cd5ccd098a548c5375290">com::mxgraph::mxPerimeter</a>
    +</li>
    +<li>EMPTY_STYLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#acda54608747d0d86a2fc5140cf8c1ff2">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>Encode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#aed5b7fe6bb0431767d3a0303822d092e">com::mxgraph::mxCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa8e373e16bb59c00a573b1bebe1a3934">com::mxgraph::mxObjectCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a4a7f48050d530e5b64e7bc98de0eab0b">com::mxgraph::mxStylesheetCodec</a>
    +</li>
    +<li>EncodeCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a063a0154505235fab267d75f87d1d94e">com::mxgraph::mxCodec</a>
    +</li>
    +<li>encodeDefaults
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a955dde36b094d0845613ff7b7b0abdb9">com::mxgraph::mxCodec</a>
    +</li>
    +<li>EncodeElements()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac044bc0648d29bbde6a826c22ca84a1b">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>EncodeFields()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afe487cf09d38efd8cbfbbf92810419fa">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>EncodeObject()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#abe01c87a42e5568047c44c78ba0b2a2d">com::mxgraph::mxModelCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ade4c4a85d7ed2162f9566c8df931d250">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>EncodeValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac0fe160b3b14184206fb33abda5b6c20">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>EndUpdate()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ac0f0b916828467fbcde0e140f5384da3">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaf217675b10e484a5579be55ca97d402">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>ENTITY_SEGMENT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a440e1f7c83e8e1d5d6ae0dbacd2562f6">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EntityRelation
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a0941ebe2ed707190810ac007e7d2db65">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +<li>Equals()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa2600d85162a1db0129650b4e636448">com::mxgraph::mxRectangle</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a6a68cb2cfd1256e32bd4add2c5fc9aa1">com::mxgraph::mxPoint</a>
    +</li>
    +<li>Eval()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a19dd3e8cbbaef8f0163b5538fecd3ba5">com::mxgraph::mxUtils</a>
    +</li>
    +<li>EvaluateAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a58bc6c170859115aaa5dee655934da71">com::mxgraph::mxStencil</a>
    +</li>
    +<li>eventsEnabled
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9d96063f2d1f05fdb16428addba6570d">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>exclude
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>execute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af9dae378277ec3bd6c780e66e653b127">com::mxgraph::mxFastOrganicLayout</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#a02f76b81716fa481fa9758cebb9f3c57">com::mxgraph::mxIGraphLayout</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:16 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x66.html b/dotnet/docs/html/functions_0x66.html
    new file mode 100644
    index 000000000..af3283558
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x66.html
    @@ -0,0 +1,137 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li class="current"><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
    +<li>fgNode
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ae4a6453b92f7c388e21662116bdc4965">com::mxgraph::mxStencil</a>
    +</li>
    +<li>Fill()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae53d52437c829ca4f99b9302a5fc4864">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a97896c948354d29ad6036ec6882c7367">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>FillAndStroke()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a5dd3031fb89d6f1d18e7433249a3fdd3">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#adeb889eb1d1c5c1a0e00a0ce3dee9178">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>FillClippedRect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7f4b312d1ea700cf0618096c725cd884">com::mxgraph::mxUtils</a>
    +</li>
    +<li>FillColor
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4f488eea5fb315298333229d26b246cd">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a192122f8dd7753b20c59cb33458c2e4b">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>FindNode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ad1ec4d7bd832972f29957a769180836e">com::mxgraph::mxUtils</a>
    +</li>
    +<li>FindTreeRoots()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae0f56dfe6a0da5de04f4b1c04287a204">com::mxgraph::mxGraph</a>
    +</li>
    +<li>FONT_BOLD
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5611c5488a8a90543df8259ae5a038cb">com::mxgraph::mxConstants</a>
    +</li>
    +<li>FONT_ITALIC
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa06301a225a73f6f3b794eff609e8025">com::mxgraph::mxConstants</a>
    +</li>
    +<li>FONT_SHADOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a62bfee4263ad5c201c79256c117cd1b4">com::mxgraph::mxConstants</a>
    +</li>
    +<li>FONT_SIZEFACTOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0d46345b5eb967100c37513709cbf4d9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>FONT_UNDERLINE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d1d4f95f78df944b58e33dadb6434e0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>FontColor
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a3aa4add33b9fcef3c6e81c20f76781ea">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac6f30b477f76d920c5597edd1d687e10">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>FontFamily
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae983110302f114c65645fadd6be63a9">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae19b4bee4c6caca4f578037ba3d341d2">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>FontSize
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad71b4013cd083413c542e53818d32ef3">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a69f663bd9c909c261b33d151574f7d55">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>FontStyle
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a709d43365adf4cb4c00726e83840a13d">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9e4c081acdb7fc0b363adbfa345f0671">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>ForceConstant
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a12d4bcd993ca7d09c179c9bd6235e7c6">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>forceConstant
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7f82df0c8421273c5134517403580514">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>forceConstantSquared
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aa598941798201a1fa8830f6598478340">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x67.html b/dotnet/docs/html/functions_0x67.html
    new file mode 100644
    index 000000000..2bc5efaf8
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x67.html
    @@ -0,0 +1,469 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li class="current"><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
    +<li>g
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a85bc82f5001ec06221efb9bccc70e84d">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>GdiCanvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#adb99fa4c94b668fe11279378016f8bfc">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>Geometry
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a087a9707e46db471c5bfd382728a73ec">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a6ec04f5ca6911ce35abed62f342949c3">com::mxgraph::mxICell</a>
    +</li>
    +<li>geometry
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a33cbc795bf87553265989e5c46c8bde2">com::mxgraph::mxCell</a>
    +</li>
    +<li>getArcSize()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abc62e1f0350b94362408ba2a3ef206fe">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>GetAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#afbfaa08a12be96b1b798dcb3c99086a1">com::mxgraph::mxCell</a>
    +</li>
    +<li>GetAttributeName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7a33b05e10c507d6d47fcf1c152e51d4">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>GetBoundingBox()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7678eac208e920d7c59081dd40df4c91">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5bfc7198e1b2eaa3b200bac52175cc6">com::mxgraph::mxGraph</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af1a162bc91b52a3cdab8b0c38399950b">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac6a3a393f9d0ef1325e6a04ef13fcbc0">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetBoundsForCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad75723b57736652d78475e16bf758fd9">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a9de276da9dd69f4249e80b798a317f2e">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetCellAt()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8784492393271fbe739867a9e107a66b">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCellBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a357c8ab34cdb207613a9d652e51b2a73">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCellGeometry()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2c1b1d989e1d49d1bfb16ea1c80bb123">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCellStates()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a30b9bbb3e31ac38f1922d144713f5fbe">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetCellStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7b51ce1952768c396f8a087f4b3134ba">com::mxgraph::mxGraph</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#afc38d23edbde813698159ed5d62bf3b0">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>GetCenterX()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a4c133c9e19ff56d3ee55aca15e93cdf0">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>GetCenterY()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a94596cde2d663cd1746088eea215493f">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>GetChildAt()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8599a87aa169b0ad17f3d36bf2e49973">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a68c9439005fe5fb515743065bf555f57">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a90dc0ac25974c7359e9ad05b045d1190">com::mxgraph::mxICell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a34bc3935f8286a91f53a32fd20da8288">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>getChildCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afc0e95ba7217a76435d2144012a8bea7">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetChildCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6e8cb72e242fbe156060b1e8347acefd">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetChildCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a29a48f5ced94431792f2d476bb154c4e">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff7c4cd19bcb91cd264bcb586ccc37b0">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>getChildEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a638548b1f8d3025faab5e3549e44bbc4">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetChildEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab334c710f4cbe99934f5162721c42899">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetChildOffsetForCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a1ddeb1fc6c41024bbe7a186971f10049">com::mxgraph::mxGraph</a>
    +</li>
    +<li>getChildVertices()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ac7bef691abcdbd54307f3848075f4d91">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetChildVertices()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a083156b76650d2db1f0832e578b991fd">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a520ada8bb24cd8265fe269c0c9b57a5b">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>GetColor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2b2248a0d09775e466c6e4c3e399fc53">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetConnectionConstraint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a241389af570d0de4d40c0508c7651f61">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetConnectionPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#addc468117a4ba03126039f434a02dd3b">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetConnections()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acf2499827661d10d689a5b18cc6b5932">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3cc8dacc0f73c8331ca491c8ef8e2b8e">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetDefaultParent()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad16bde2a0549353cc07eb274da9016e0">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetDelta()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a3d4597a1b1750ced88c2085768447325">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>GetDirectedEdgeCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6c912d6529f16564373895566abcd254">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetDouble()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ad642b6a5d0fce4c0ca2c4b40e5f87a3b">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a9fa84bb70acb657b281e18474c4eadfa">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetEdgeAt()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a9f6a89b37ef63dd55f5b859c5a5b44d4">com::mxgraph::mxICell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ae2824a854e3533480e819f9056e4bb91">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5fc7a8013b5b155d68d88975bb90da23">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a5d0e2e8782724472c7aef4257730e075">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetEdgeCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaeec9051d010a0f4e94d83e15ecad4ee">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d58a0dafc0e77a7a3f207f5815ef245">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetEdgeIndex()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a453ffcc5de7e2904223a6e6629af95c3">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a55174b508ba695d8dcccaf76b3ef4b4c">com::mxgraph::mxICell</a>
    +</li>
    +<li>GetEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a07977778052726940b0877913bafbcf9">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6bdc9bdec69f488a773bbd2595f900be">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetEdgesBetween()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acb693807ec1617511fac53c3512b57a4">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8f9b6d3aac9900437eca491f38742dde">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetEdgeStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9ef84d935516b526c422acc3d1afe03a">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetElementById()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ab75670c8e89934b2f45cb202a95598b8">com::mxgraph::mxCodec</a>
    +</li>
    +<li>GetFieldName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a234002bf9a84ccc51210cbf2744d1dbf">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>GetFieldTemplate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a414f565a39689bd929124c2003dd41aa">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>GetFieldValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ab4c4b9a8a57ef55d3923da107289a05e">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>GetFloat()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a871ab56f1ba48411c148841bd49e5da9">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetFont()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#af1262698755703ccd84bc183cccac6a3">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetGeometry()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8d4e41dafd2e678786375489e3a7c2c6">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad79ee951c1a46d126d1f714bd77b5331">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetGraphBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a62fd93e7cf81eef6a3be100f7b0d80e3">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetHorizontalTextPosition()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a96ecfe8d425f793da3b646b48be02d35">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetId()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#af13936ced2b0da9ad4f088db31ca2007">com::mxgraph::mxCodec</a>
    +</li>
    +<li>GetImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a2eb0c5995f3ae3ce1b6bb68eeb48f72b">com::mxgraph::mxImageBundle</a>
    +</li>
    +<li>GetImageBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a7c7c5e074e3f8fee151e0ce7be4ea240">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetImageForStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aaa43dbca294eab07d9c3d6dbbea7ac1b">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>GetImageFromBundles()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a92aeba26d19e93c8114e6c198fdab341">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetImageSize()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a74865ef852d7c4b6f05163c95ddb4785">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetIncomingEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a073880bd062bfba172b8fdd0ff722013">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abd1949f247709d9cf32958d50520b703">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetIndex()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a68dba23f856145c4cd0943aa3f58bce1">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a144f5ab6985bdd6cb841fa3a09156ef5">com::mxgraph::mxICell</a>
    +</li>
    +<li>GetInitialMessage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a509f4e15b46aaa9c3430e7e7fff7e529">com::mxgraph::mxSession</a>
    +</li>
    +<li>GetInstanceForName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a6f360b981789d155fdc8e6cefd895bca">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>GetInt()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#aee36f48dc2d2bba4c6e2a053dfba80a7">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a265f08aea1ab863f5c0c242d0d1e3247">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetLabel()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a527defcf3188cf4d934742589cc6a370">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetLabelPaintBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a44a44358539513830ac55c64e7ffd67d">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetLabelSize()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a661de39da15520dccd375cdebf2bf402">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetMd5Hash()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aa23c24c33302d884dacd7ddbd1b16543">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a4398e1da710fb68c428ad5314c02f560">com::mxgraph::mxCodecRegistry</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a62ea0063541fd986ab33a1b098780abf">com::mxgraph::mxObjectCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a1667ab563793cc2b36c6014b48ec74f8">com::mxgraph::mxStyleRegistry</a>
    +</li>
    +<li>GetNearestCommonAncestor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a7489dd878b15a7d2413b0dac26fff89e">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetNextPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#abf5b7f79cc0901a516b186963dce01ea">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetObject()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ac4c7937c86766f1cf44f12d4023d706d">com::mxgraph::mxCodec</a>
    +</li>
    +<li>GetOpposites()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6952674f7dfa52535bbffc6f5f35c276">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7a168c862d71bda051212c32e6f0592e">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetOrigin()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acaeea26b9d46e48a4df676fb0ea263f3">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetOutgoingEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a094b9e0cceb1a81fdca855205a049484">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#af2aa1581fda566b5add1879fd7e9fbb5">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetPaintBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae68c3f63c612cae292b5209f891e2103">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetParent()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a49cfdcb77a6fd6882c643c325e3d914b">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af29849ffb09c0e0b75e77bda332f4d31">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetParentPath()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a0f50a9dd6e3983bc5a5e867d200faa52">com::mxgraph::mxCellPath</a>
    +</li>
    +<li>GetPerimeterBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7855bb1127d2691a3a9ea4c30fee6d49">com::mxgraph::mxCellState</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae371a456ebeaf2841d7d775137af4256">com::mxgraph::mxGraphView</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a24bcc5b3b3db9c0a59a65cf425909d48">com::mxgraph::mxCellState</a>
    +</li>
    +<li>GetPerimeterFunction()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a95447fe4f19faa6f997d346c26f51f39">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetPerimeterPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af27cb930ee9f4b23614b226712165bad">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a3dc869a8af413959f9db365ef94a24e8">com::mxgraph::mxGraphView</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a45f04749b99d031c57c707f505cc5290">com::mxgraph::mxPoint</a>
    +</li>
    +<li>GetPrettyXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a6ba7fb8e71bc6a5ba2476c9bf43842c1">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetRectangle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#acdc68e90b0b634aacf6f3054ed71a97a">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>GetRotatedPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a8585d2006c43042e999d8cbc7eb40c90">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetRoutingCenterX()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a990d0d7646260a442b3c0a6f6f2ba13c">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetRoutingCenterY()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a75404c30319e149e155b3ec75b2075b7">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetScaledLabelBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a3ed4a7861d42064c2be9f26b07a814cc">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetSizeForString()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a08d855b0f40c6c60b395db790a6c74b4">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aae0270c38bde606f39794a2d02ce63c2">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetStates()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af85a373249eba5fb569b544c560b5b61">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetStencil()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html#a03d67ba6966f732d1faa8f927819e754">com::mxgraph::mxStencilRegistry</a>
    +</li>
    +<li>GetString()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a6b6e56618094460153fdfa34670c4766">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a26ab5c8df26dfd12e3535a4a0533d63a">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aeef9a4e1c8524de7f4b0c6093ef4be3b">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetStringFormat()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a79b1654dd953191778bbcd6ceae9f79c">com::mxgraph::mxUtils</a>
    +</li>
    +<li>getStringValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a0b34a45979b6f494498467509bf5ee39">com::mxgraph::mxStylesheetCodec</a>
    +</li>
    +<li>GetStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a21d37523be9a952040d58b9ea968a43e">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad63404d0f7af96acee601960b8cc4963">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetStylename()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a81ed5a92ad1cec4300cc4c63d882ec9d">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetStylenames()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a857d2f7e3ecd002353e3ad256308b188">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetTerminal()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a1d8a16d05ca148439990b10f3c6a27c5">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a734794247296f21c0b2aa729ff35541e">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8fd2e93ac9f300a20140a828eecbfbac">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a88a090c546cd51e0d249243d209c6b11">com::mxgraph::mxCell</a>
    +</li>
    +<li>GetTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a7410a68725e48357de2989449068c407">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>GetTerminalPort()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5650a7827fc374d4572c167f929d919b">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetTextWidth()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a02e23930cf57f18fa376d0c868e39d61">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetTypeForName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#aa06091c0531ebe18f2c69225f0f419ae">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>GetValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a3689d9cc958022accbb06bccb3d6502c">com::mxgraph::mxStyleRegistry</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aafb18bf952de87baba5a3453e222677b">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a77a36629de99d4d6a14236ed0c1666e3">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetVerticalTextPosition()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a833a10444fd1ced3ee9e3fb36e12851d">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetVisibleTerminal()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae4f9f0101bb0cc752ce844d8203c4221">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7eb91229c8f8d962843711abe2756200">com::mxgraph::mxUtils</a>
    +</li>
    +<li>graph
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a99a53986be7fee5b602032be1e5f51d4">com::mxgraph::mxFastOrganicLayout</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5272c48a60291f84f9f5be6144760315">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>Graph
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa4760138aec50d456efd6b3af72443a9">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>graphBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a70f795d0bc251e089395cf30086ec650">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GraphBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa17e78fb01f9979bd752171fb60fd354">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>graphics
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aee6c39db9b3b2a0de38834f3b269bfc3">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>Graphics
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aa478f6bf5a460b175342e1b61c321ec2">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>graphicsCanvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ab7ce28796bb23a7bc25e99255f7faa02">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +</li>
    +<li>GraphModelChange
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0d3f6bf19b8c13b0d1445d3d4adf9b6e">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a26dacf83c2ca35265f1f667b4d94adf0">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GraphModelChanged()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3bb8f37de70854711542b9f1ebaaf85e">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GridEnabled
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2492e35122e5edcc08d5ad164c492415">com::mxgraph::mxGraph</a>
    +</li>
    +<li>gridEnabled
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a664aa375d8f1b67216fc3e281bea9e55">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GridSize
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a19e7d16278a7fd29510832c6c6fa6378">com::mxgraph::mxGraph</a>
    +</li>
    +<li>gridSize
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a64c20d87e6b6082a1262095881807d27">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Grow()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#ad499030b067d0ee6e87af68542ec7115">com::mxgraph::mxRectangle</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x68.html b/dotnet/docs/html/functions_0x68.html
    new file mode 100644
    index 000000000..29c744db2
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x68.html
    @@ -0,0 +1,91 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li class="current"><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
    +<li>h0
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ab119e79baf1f2fd94de73f2e53cfde62">com::mxgraph::mxStencil</a>
    +</li>
    +<li>handlers
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a7a96643ffe5efc1c5443fc3e84de5d7a">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>Height
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a32c0d49b1279c27fec655cb831240975">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>height
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adb1bfc2cc3f1215b9357bdeda242a062">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>HitsSwimlaneContent()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6d5855a06621ece63f7c0833d0dd54c8">com::mxgraph::mxGraph</a>
    +</li>
    +<li>HtmlEntities()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a1c88dfc8675db06225f91b3afa0f030f">com::mxgraph::mxUtils</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x69.html b/dotnet/docs/html/functions_0x69.html
    new file mode 100644
    index 000000000..78dfabb18
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x69.html
    @@ -0,0 +1,246 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li class="current"><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
    +<li>id
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#abf05efba60ca503ace3dcdfd3a7885a7">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a5b93137a33bc765be42be673de5abc4b">com::mxgraph::mxSession</a>
    +</li>
    +<li>Id
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5ef2d884860acb7b0b1386506a8e8a99">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aacafca1659c347daa5756352e34e8776">com::mxgraph::mxSession</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a163926756b42d66b33db6bf6fa15b0e4">com::mxgraph::mxCell</a>
    +</li>
    +<li>idrefs
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>Image
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a2bde172bcc4451686701176cf8917c9d">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaece05317ab22246d7be9221d7e30ed3">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4c05a8cdbd96edbe00bcecc52b8d6e93">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>image
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a64ac8f6c83af2274c4729a6df9878eba">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>ImageBasePath
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#af418e32f21afd6c4f3dd72f333e4d737">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>imageBasePath
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a750bd6bc1df65eb9966655b446df9776">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>imageBundles
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a715f872e532ab585e8ec45b2d375d014">com::mxgraph::mxGraph</a>
    +</li>
    +<li>ImageBundles
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6de2d696c85750fafc8d10600d3d7fe8">com::mxgraph::mxGraph</a>
    +</li>
    +<li>imageCache
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a5c377564f1931be090a0cf75176b70d2">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>ImageCanvasFactory()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad81144814ab6cdc9664eb28cd63f8373">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +</li>
    +<li>images
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a8bfb4d67c74602df82b8b9b6e4ee6967">com::mxgraph::mxImageBundle</a>
    +</li>
    +<li>Images
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a171163596816aff46c669d5bb167b4b6">com::mxgraph::mxImageBundle</a>
    +</li>
    +<li>InactiveTimeMillis()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a26506ed45699525b39a3140d5721f501">com::mxgraph::mxSession</a>
    +</li>
    +<li>IndexOfStylename()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ac3ddde679f9ad7f78edb3f9e842e2d7f">com::mxgraph::mxUtils</a>
    +</li>
    +<li>indices
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a777007999207d81a1a737ef92777a408">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>Init()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#af45decd662d3d2eba53103718b5fb3cb">com::mxgraph::mxSession</a>
    +</li>
    +<li>InitHandlers()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#aa07ba987b0f6a422e035f19d41c2f1ae">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>initialTemp
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acde3bbda33df34ebcf72bb51b24c0fd2">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>InitialTemp
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ac2659499c12a2967694b2bcec28dcb48">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>Insert()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ed5d9b7c09fe2fe55e1c0678a8ddf13">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aafa67a81d45b05767470e811300836db">com::mxgraph::mxICell</a>
    +</li>
    +<li>InsertEdge()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae4dddcdc914f145d111a36611e0dae3c">com::mxgraph::mxGraph</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab46383e5589e5ab052da16f7ad765aad">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5a394317ecfcab21eb6709b388ccf132">com::mxgraph::mxICell</a>
    +</li>
    +<li>InsertIntoGraph()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a0c731bec8adf1279a5813e9334b37319">com::mxgraph::mxCodec</a>
    +</li>
    +<li>InsertVertex()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a33e4556565e3ec020dc177cdceb1ce57">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Intersection()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aca4150c2dba3683cde96ce2016cc18a5">com::mxgraph::mxUtils</a>
    +</li>
    +<li>Intersects()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae580f6fc2dd563d367b0efb19a6914c2">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Invalidate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a4fba56e7781c1a247d7f912b335ee7f5">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>IsAllowedToRun
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab926409f7f7f7022b5e12ca5225c0e7d">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>IsAncestor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad07cda5ced546c2b04a34120a779c8ca">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a57eec23a248ff711df8aa868f2228640">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>IsCellCollapsed()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac60178c6697ce833fa2f64d7e1f49669">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsCellConnectable()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a4f07dee4b9958154ecc3945de97f41af">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsCellIgnored()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acb90e90ba2f0620618d223ee518420fa">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>IsCellMovable()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3f095589a40b8012cff674389f5f584b">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsCellVisible()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8f643dbb69496ce22adeaea030368479">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsCollapsed()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20cd81d1e947de7224b1b9477aaf9014">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a18315c42e0fe1cc594a956342c2dda9a">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>IsConnectable()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afd31c7bec1b0dd657cfd9a6f638a9a20">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a3db1b6eda5906acbb5114361c91968c0">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>IsCreateIds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae53c41ce3c1bbfcdd1512fb863867841">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>IsEdge()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff2fb4b36db5ee3a101feba394436b86">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3ef44b271e5419fb4a5c6997cb78f26d">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>IsEncodeDefaults
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a3f063598603020bfdd63c9b3a24ebe97">com::mxgraph::mxCodec</a>
    +</li>
    +<li>IsEventsEnabled
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a03901697d2c95d30a106bfebfbba6c80">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>IsExcluded()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a58410c644edac27eb89acd3f3be8c6b3">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>IsMaintainEdgeParent
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4f55cfe5f9b3904db74ad352192a4157">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>isMoveable
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab68c9139dbaa98a8e3307c7b0f35a7e0">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>IsNode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#abcedc5601014b98a220faaf9ce3c1798">com::mxgraph::mxUtils</a>
    +</li>
    +<li>IsOrthogonal()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab0146d0411dd28fb371e19e06b5f8b84">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsPrimitiveValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af3ef76d421c61dfe849f6e09252fc630">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>IsReference()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a369877eb840c88cb3b321c93e22a373b">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>IsSwimlane()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9e426bb8a46d02750d6010ab670d9277">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsTrue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ab40d46f2ffb86a859c209d13e44bf4cd">com::mxgraph::mxUtils</a>
    +</li>
    +<li>IsValidAncestor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aeee992401f26eeeb965610425c1cb852">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsVertex()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af30f07add01ec93144ffc00d843828fc">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae0421f7bbf1eeb7b1363ad00274b4eb4">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>IsVisible()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4cb43b44cd6b8c48b48b6c16e82f3d07">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d6b5254a9a124ef7e82b49eb9d4209b">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>iteration
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7912d316ac33da47579fdd3b6a590abc">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x6c.html b/dotnet/docs/html/functions_0x6c.html
    new file mode 100644
    index 000000000..8de00a9c1
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x6c.html
    @@ -0,0 +1,138 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li class="current"><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
    +<li>LABEL_INSET
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada723b1431e72dcb83ade63bbb01f73a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>labelBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a3a4a13aa6990f4cb18d4581844e22465">com::mxgraph::mxCellState</a>
    +</li>
    +<li>LabelBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a40fceec936fe37fd869471c22d091e8e">com::mxgraph::mxCellState</a>
    +</li>
    +<li>labelsVisible
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a27c89a48e8ee870e7802378fabc41782">com::mxgraph::mxGraph</a>
    +</li>
    +<li>LabelsVisible
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abb96d6cfde89d87c098bd1d7c78f6010">com::mxgraph::mxGraph</a>
    +</li>
    +<li>lastMoveX
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af9ada374b25ca21d16765642e32515b1">com::mxgraph::mxStencil</a>
    +</li>
    +<li>lastMoveY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a37b57288c72c862106e9f4ed7fbc46b0">com::mxgraph::mxStencil</a>
    +</li>
    +<li>lastPoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2f594bc974a37b0838751ae67f9ce8d1">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>lastTimeMillis
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa61c27d2f2bc6c4a6c9813083b80bf8b">com::mxgraph::mxSession</a>
    +</li>
    +<li>length
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad7cfcdd37247cdfb73ce22ef89519680">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Length
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0a9fc2277de8539e5007e86a00e990c0">com::mxgraph::mxCellState</a>
    +</li>
    +<li>LINE_ARCSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a54c593c784f39e9ff7c6b30a85b9636f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>LineCap
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb5e8e776beb7049c86cd225748033e4">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a829ab2cbd41e4777ea46657a6da7ffd9">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>LineJoin
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#add41832e54a6a952a9e9e7a344593acd">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb7383d17e4ae8c2d90798ae06a22c94">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>LINESPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab5f4a464bcb289fb32e0b4673b4d44df">com::mxgraph::mxConstants</a>
    +</li>
    +<li>LineTo()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2be519434efaeb4663cd9ae7cc31d49d">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7a86b49a5799e06a6545b2ef470051d0">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>LoadDocument()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ae722c7c569219d667a4c970f3dcfb6bf">com::mxgraph::mxUtils</a>
    +</li>
    +<li>LoadImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a30ccc3180a67c12649dbba8212918215">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a691ee852a7a0fe38907842e405d7e20a">com::mxgraph::mxGdiCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a990c73e19081acbb58bdb0edbe313d1f">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>Lookup()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#adcf61362787457dc4ed50811871571f8">com::mxgraph::mxCodec</a>
    +</li>
    +<li>Loop
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#abccfcbe9600ba65c750d9334c2e6a36c">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x6d.html b/dotnet/docs/html/functions_0x6d.html
    new file mode 100644
    index 000000000..8115c81cd
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x6d.html
    @@ -0,0 +1,196 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li class="current"><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
    +<li>maintainEdgeParent
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4d88460742c510d5dc6ac476bba92ad1">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>mapping
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>maxIterations
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af4757aacb4d721e8700c5b940d57c6a8">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>MaxIterations
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ade1c6ceb16929e0736db8419222752cd">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>MergeChildren()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afad8a9d1b1be0fd85281c2a31b1a74e0">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>MergeChildrenImpl()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#abf108384d5234690497fff50c730b1d3">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>MIN_HOTSPOT_SIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acbb9f2ff860f1f615001f00475c26357">com::mxgraph::mxConstants</a>
    +</li>
    +<li>MinDistanceLimit
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8e19280f5a5c4748dbba27db9b62dfc6">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>minDistanceLimit
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#abb7b555da3232233b8d88605ec8a3065">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>minDistanceLimitSquared
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7eee165d1cd46198cd0afd3683846dc0">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>MiterLimit
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9eb9a243faf69d55a94862f93f5aa985">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a991c36d1f078c3af31928fc485ef95e5">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>model
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9f368b71dccff0fa2e24f6ce685902ac">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Model
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a59458bde9c7951ace31f86dbd2c4bb68">com::mxgraph::mxGraph</a>
    +</li>
    +<li>move()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#aa7f61ebc0e14a39947ae016393501309">com::mxgraph::mxIGraphLayout</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a3a6d6b7697d013125bef0acaadd7d179">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>MoveTo()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a1311082c50b96983ef88056f0f924be4">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad6739b41b41e978ab6966d981d31ccc2">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>mxCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ad1e7683542934e55fe047eee2fc30f11">com::mxgraph::mxCell</a>
    +</li>
    +<li>mxCellCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html#af538accfd699400f44f48e4174bb04a2">com::mxgraph::mxCellCodec</a>
    +</li>
    +<li>mxCellState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#abe55dd3e49f689b212b76e3707fc5fee">com::mxgraph::mxCellState</a>
    +</li>
    +<li>mxCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a08aed19305c14248949292a713588056">com::mxgraph::mxCodec</a>
    +</li>
    +<li>mxConnectionConstraint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#a2594d83443414fae6bcb8728713bbef1">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>mxFastOrganicLayout()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a0cdd8ebebc894870a02f213ea17fceeb">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>mxGdiCanvas()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a90acc90de62813c3b24bba07ab0c84f8">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>mxGdiCanvas2D()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#af68a0bc9a8655aa30db90e8d230e9c9b">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>mxGeometry()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a9a6d8132f6e53e9d0447b9a4aed47565">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>mxGraph()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a64e10ad86550fa900179459d6f783677">com::mxgraph::mxGraph</a>
    +</li>
    +<li>mxGraphModel()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a7c444bb29a58faaa378c880da3774970">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>mxGraphView()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a218453e14bd940ab8b4e4a1187905039">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>mxGraphViewImageReader()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a5c2f0f08cef339f6498c1eed95a9295b">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>mxGraphViewReader()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a5e70037f507dd7a5b0c7ca075b58a494">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>mxImageCanvas()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#ac47f0aafa425843b1af72f4a574964ee">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>mxModelCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a3954e4835954a01b46671fd802a13d42">com::mxgraph::mxModelCodec</a>
    +</li>
    +<li>mxObjectCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abbddb3957b955b41d4fbcd6e63bbb42d">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>mxPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8943bd2fe6aff4d841581e33fb33c8bc">com::mxgraph::mxPoint</a>
    +</li>
    +<li>mxRectangle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a0de5be785fd18e109ff7eb9aed6ef2e9">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>mxSaxOutputHandler()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a77a3d0762140846abd5cad1722c265c8">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>mxSession()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a742d17a2f7b65e4ca58287ab87a1bbed">com::mxgraph::mxSession</a>
    +</li>
    +<li>mxSharedDiagram()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a06bae16c4c4a61675e16771577681ff8">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>mxStencil()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#aca520171898bbe4c3086c87f84793a7a">com::mxgraph::mxStencil</a>
    +</li>
    +<li>mxStylesheet()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a574c49950df28b41e2c3ea218acc2a3a">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>mxStylesheetCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a29a81ab0d165d2f64fa092aed45bad7d">com::mxgraph::mxStylesheetCodec</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x6e.html b/dotnet/docs/html/functions_0x6e.html
    new file mode 100644
    index 000000000..d2b7f5b8e
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x6e.html
    @@ -0,0 +1,94 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li class="current"><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
    +<li>namespaces
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a705daf930467bc4a397c31a97f735449">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>neighbours
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a9d25658bf242ccfd7f261c4b849fd6c1">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>nextId
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a22d9376162b40a748beb1058df22cb9c">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>NONE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1adacf0fd058343aa49474e68b2e9bc0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>NS_SVG
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a28b704112d40b5bc8ec0a25036519461">com::mxgraph::mxConstants</a>
    +</li>
    +<li>NS_XHTML
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a57bbcd46e2282a8a8f3e5efd009f326f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>NS_XLINK
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac215c18933e00eea92bb5bce420b6164">com::mxgraph::mxConstants</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x6f.html b/dotnet/docs/html/functions_0x6f.html
    new file mode 100644
    index 000000000..cbc90a739
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x6f.html
    @@ -0,0 +1,91 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li class="current"><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
    +<li>objects
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a9f983ce7275a1005de496ee15093a6f0">com::mxgraph::mxCodec</a>
    +</li>
    +<li>Objects
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#aed4c1e1287432ab7f8213ee5a729dcd6">com::mxgraph::mxCodec</a>
    +</li>
    +<li>offset
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a8412ed3eca1c001d8c40eac2f9ce758b">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>Offset
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a4769c76d47f7a3281a42b5a6581c1785">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>origin
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad4cdb7a0d7074b16ceee123e4904da66">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Origin
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ac3734bb15dd9dbfd6b9f4d182e5c2df1">com::mxgraph::mxCellState</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x70.html b/dotnet/docs/html/functions_0x70.html
    new file mode 100644
    index 000000000..da281fa9c
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x70.html
    @@ -0,0 +1,170 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li class="current"><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
    +<li>PaintShape()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ac90b17ce50b78ee5966c399a9ec374db">com::mxgraph::mxStencil</a>
    +</li>
    +<li>Parent
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa2e16e11504aca0ff7d83699b801fd11">com::mxgraph::mxCell</a>
    +</li>
    +<li>parent
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#adaaec96af4af506642844f3752c3efc0">com::mxgraph::mxCell</a>
    +</li>
    +<li>Parent
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a46e6502b14270fcc1c470a0f52cdfbb6">com::mxgraph::mxICell</a>
    +</li>
    +<li>ParseColor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a49a2d9c26dd1afc66aeaf0be3972bba3">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>ParseDescription()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#addff93bc760640f2c47b5c06c13f7dc4">com::mxgraph::mxStencil</a>
    +</li>
    +<li>ParseElement()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a045e64337ad2560628dbe1a53243c0bc">com::mxgraph::mxSaxOutputHandler</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a78ed8a118dbce9e2638954de73a9304d">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>ParsePoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a9e04e66ca4cdf297abee69ef68baaa04">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>ParseState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ac83438fd2f9c2a4f13498192aa068140">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>ParseXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a18122413c99206306bc0cca8ee7bbd0a">com::mxgraph::mxUtils</a>
    +</li>
    +<li>PATH_SEPARATOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a8308de65cdb622585ffdf7a5cb05a8a8">com::mxgraph::mxCellPath</a>
    +</li>
    +<li>Perimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#abd093f6a4dcf97fcc040304a1c27ed4f">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>perimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae84d172008422f7f0dcbfb44865f9a18">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>PERIMETER_ELLIPSE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98221a8b8eda10e6d8f5537369f7aaa5">com::mxgraph::mxConstants</a>
    +</li>
    +<li>PERIMETER_RECTANGLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae0998d20af28656c081cf969afb40b99">com::mxgraph::mxConstants</a>
    +</li>
    +<li>PERIMETER_RHOMBUS
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9246707b04824ac40c547a28dc703549">com::mxgraph::mxConstants</a>
    +</li>
    +<li>PERIMETER_TRIANGLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a976f981a543eef57ee02bd91adad6519">com::mxgraph::mxConstants</a>
    +</li>
    +<li>point
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae0735f826168921bcf66d7ee7617bf62">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>Point
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#a1032705c081348cc5b1f07f20d1508ef">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>points
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a45677db05c67d751857181b2c06025f8">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>Points
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#ae5575c4397373faa269ef9914e135951">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>Poll()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a6c6fa3d1fce445afbf3b1b98821aa4d5">com::mxgraph::mxSession</a>
    +</li>
    +<li>PostProcessCellStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7b6ba38dbc5c8d3794d191e9dc58d5b9">com::mxgraph::mxGraph</a>
    +</li>
    +<li>PRESERVE_IMAGE_ASPECT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aa2aeea2c29b35fbd1e9c101d0299f466">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>previousGraphics
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a058a4a22257f9f098f05c37772edb489">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>ProcessDelta()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a32bb33bee6914b00860028737dfafb9d">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>ProcessEdit()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a337f383a39ccfff3a7b27acee9fc763c">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>ProcessInclude()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afd7f23ec8879f314b0729ac866201683">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>PutCellStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ab349fa703d0689a6783a95ecc911324d">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>PutImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#ad60ca8c5a514a3864cac932a6b2d64cc">com::mxgraph::mxImageBundle</a>
    +</li>
    +<li>PutObject()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ab7189e0c130a648ef15541f2be790bd9">com::mxgraph::mxCodec</a>
    +</li>
    +<li>PutValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#ae867348aa79960560ef57ec6179358ee">com::mxgraph::mxStyleRegistry</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x71.html b/dotnet/docs/html/functions_0x71.html
    new file mode 100644
    index 000000000..453533690
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x71.html
    @@ -0,0 +1,77 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li class="current"><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_q">- q -</a></h3><ul>
    +<li>QuadTo()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#adbef5129943b03e4e349f36139926f6e">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a54d04210f84a725f6cf59336745c886a">com::mxgraph::mxICanvas2D</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x72.html b/dotnet/docs/html/functions_0x72.html
    new file mode 100644
    index 000000000..4198a9f07
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x72.html
    @@ -0,0 +1,184 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li class="current"><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
    +<li>radius
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab408033234dd280872595012e1bbf1e2">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>radiusSquared
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acb1741efc08f1bc825dc98ae4877fe92">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>random
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aeb4135bb0af32e37eccdf4d9602ac884">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>Read()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a27c8f5379f6aaa9e751eef7f716d9cc7">com::mxgraph::mxGraphViewReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a34629d7d36006a014933bba3fbc005a3">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>ReadFile()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a90cc8f0f221f2add5a31cfa47bea9b3f">com::mxgraph::mxUtils</a>
    +</li>
    +<li>Receive()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#abb3efdea7640145a0c45c3d867db6843">com::mxgraph::mxSession</a>
    +</li>
    +<li>Rect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abf1749074624b5f849b8b12c85d81233">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aba609b7d44a5ae5b4a391b5799a2f3ca">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>RECTANGLE_ROUNDING_FACTOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aabfe6def9b50358da2531c4d60dab841">com::mxgraph::mxConstants</a>
    +</li>
    +<li>RectanglePerimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a4ca38a12f0ad16114fae26f8fff91e14">com::mxgraph::mxPerimeter</a>
    +</li>
    +<li>reduceTemperature()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#adf96f4af2d6db40d8440c45c88a8eb42">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>Reference()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a65dacbf11b9be370b293b8256ef116fe">com::mxgraph::mxCodec</a>
    +</li>
    +<li>Register()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#acb79fb9e18c8c61e45eb1c698252a3e3">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>relative
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a64c3ea353de129f7f6dbd76506f5bb">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>Relative
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a0fc8a94f3ef17260c5b456018999cec4">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>Remove()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a79ec0fea93a81fc482020e010faf928c">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3db316aa8f0a092e8a93a75235c6a24f">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa6986d9d010d246e844a4443723f390d">com::mxgraph::mxICell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a7c47f2459ce0dcdae38c35afa4ed1ffc">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>RemoveAllStylenames()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#abe003f6e64b3ae245257d0447bc890d6">com::mxgraph::mxUtils</a>
    +</li>
    +<li>RemoveEdge()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab4c1f70e744e50d33a9d6c0174877ead">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a11ea99ed0ab26b204111e23167431273">com::mxgraph::mxICell</a>
    +</li>
    +<li>RemoveFromParent()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5bf0176d9d12329e4b092633c4022310">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9af735a9deb670fc9a65ad69694212ff">com::mxgraph::mxCell</a>
    +</li>
    +<li>RemoveFromTerminal()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a18eba4e3a1ff29735fcad45439aa340a">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a7bd60ecba9b833e9157d8b330a963182">com::mxgraph::mxICell</a>
    +</li>
    +<li>RemoveImageBundle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#afe6eeab8462dfb48f5dec50a8f3aa902">com::mxgraph::mxGraph</a>
    +</li>
    +<li>RemoveState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a03a3832e8028db0e80b56f16a0a9bc35">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>RemoveStylename()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2fa96b662336bd34cb73951607bc9e2b">com::mxgraph::mxUtils</a>
    +</li>
    +<li>ResetDelta()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ae303ea16e8a3290b7f46f8be39d0941c">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>Resolve()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#ad5059bd5081b1a2f127eb95cc63b51dd">com::mxgraph::mxCellPath</a>
    +</li>
    +<li>Restore()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4d2d8898cae7d385e87e471f968f835f">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aef706f844a586f48ef3c96731dbb687d">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>RestoreClone()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a60713556b96f3500044c0842aa29c58d">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>Revalidate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae484b71ee1fae22ae48b65fe4762e9fb">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>reverse
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a897b6935339cdb9a47f12b5f926b58f9">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>RhombusPerimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a0157ffa1dbc7195ceac6c4dd4b3d99b0">com::mxgraph::mxPerimeter</a>
    +</li>
    +<li>root
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1c799c216f6ee4d379aeb3161d04462c">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>Root
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1e682481294b64ba2e7859da9760008e">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a42b487c0d42d77170d5c0ce002a0a2ca">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>Rotate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac5af10b7d8e1f0f9c163da14cd51eb9e">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae99cad30f6516ca9faeafd4af4cb1ec5">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>Roundrect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad4fccac39e1182fade708caf0a57eaf3">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac93807c8770627c3aec3c92d46383c45">com::mxgraph::mxICanvas2D</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x73.html b/dotnet/docs/html/functions_0x73.html
    new file mode 100644
    index 000000000..f5bb382af
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x73.html
    @@ -0,0 +1,533 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li class="current"><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
    +<li>Save()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ace20f35dae70d42164f3d5aa422eee9c">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#acb028c15edb7471d8df2c9b4b288a2dc">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>scale
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a667a53ffe35f9601f814c2708d87de5e">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>Scale
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a32476a0f95314df5178d7336fde35349">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a49b12c63fc32378462d8084bdf4a7fcf">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>scale
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a1136bf1e5ad245c928a0c679a997afba">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>Scale()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a427ec8105550a274f1a08ff8113d687d">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af281d95936e45eb668c516b56bd0bde8">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>scale
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aac3fc24bb030cf38538f6848e275beeb">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>Scale
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ace635b44380cd9079dcb359c366bbf64">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ab393f94448d87517dae0133e57100045">com::mxgraph::mxICanvas</a>
    +</li>
    +<li>segments
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a6feac0cf487505657aea93ce7553e31e">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Segments
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a05e1a6d791c19a8d963216f32723511c">com::mxgraph::mxCellState</a>
    +</li>
    +<li>SelectSingleNode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aae4b27f9a279780ebbd795bbd851cb46">com::mxgraph::mxUtils</a>
    +</li>
    +<li>SetAbsoluteTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aa0ea29da7675e21e7ed7ca7dcc3abd04">com::mxgraph::mxCellState</a>
    +</li>
    +<li>SetAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a155ebb610b21e83dfc28eb30ace11dfa">com::mxgraph::mxCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a0f86db625fe9cefdadf4b42a4eb1a863">com::mxgraph::mxCell</a>
    +</li>
    +<li>SetCellStyleFlags()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2eeb7bc9dd011e47b035cf4f4b6de579">com::mxgraph::mxUtils</a>
    +</li>
    +<li>SetCellStyles()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ab7b5cd3313e3e1feaa5f366b18d2c435">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a0d130a6228092758ec584a9d594b1446">com::mxgraph::mxGraph</a>
    +</li>
    +<li>SetCollapsed()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a05f6ea80a4577097b2614fc8e98b06d2">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a5ea04a022893866cffcbb53044c5171c">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>SetFieldValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a66dc2344eab9b42aac159cdd3967cd8c">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>SetGeometry()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a78ccddb2f444c5eb701916d9ca052028">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a80f4bfe3ebd152ee3d77ec20a70bcc9d">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>SetGlassGradient()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeac7fbfd34479f1b994cc8b4ecf0bc5e">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a454419025bbd42ae392a5cd4d7d49163">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>SetGradient()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a0e38c2ec1e182a78480140a676a49e06">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af04887740790c4849e649f91b142d5b2">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>setRect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adbcd79c0023233969be1e4ee0626118b">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>SetStyle()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a960ffa631d4199d149b4e889b480db48">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a0f13701bf4dc70c43f0f1ab408e97bea">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a93a1ced4d1eed980881c3223b5b34b03">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>SetStyleFlag()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a9789a2adaf33eabe8aa8856df3aca807">com::mxgraph::mxUtils</a>
    +</li>
    +<li>SetTerminal()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a538315083698deeeaad366624ea83dd8">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0285540160fcf7de39a997c6f6a201ff">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a1f9617dfb062f2388c00b961a8b2bad1">com::mxgraph::mxICell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a74a5bb3bea62d4c8382f15a323d326dc">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>SetTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a93895db7f9dbc2e2b38b87ad229d5d85">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>SetTerminals()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a9980a787ac66f3a9c8586e155699b2c2">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>SetValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a73ee199d8b3dd322e97eb4fb07ca407f">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#afd9cac91d73998f8457285bae5c95689">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>SetVisible()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad3c76b19d99dd08f2f5aa96e8e1ba52b">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a681fede1578933f051041b3ba4f01129">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>Shadow()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abeccbac84e25abacd71e4059521a37bf">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a807a0eae6f0574aa2b4f236a0b76d2cc">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>SHADOW_OFFSETX
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a01f9ce3eb19c4a4ba0cfddc329a2699a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHADOW_OFFSETY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2678e4921f6a202f3587442383abcbc6">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHADOWCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7148385e3441968e5d15aa58ee2f665">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_ACTOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72ed28d6c0495c8c7a920ae3c12b3688">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_ARROW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac31197f8da77804a029048b7c9d3cad9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_CLOUD
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada54fd2aa9d7f5c90c070aaa0506b77c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_CONNECTOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab600b420af02458e82b7258f496cfb6d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_CYLINDER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1f63bac0e7097a58663dc80da5f9b4a2">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_DOUBLE_ELLIPSE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea8932b267794b48cd6951efa11df7fa">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_ELLIPSE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a946407c9bf9eef6f921b7723899bad78">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_HEXAGON
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3b6043b72e0e58c69ed4a1323cd1b166">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_IMAGE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aec3c70fb4c28da7bc4f50c35dcec6c88">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_LABEL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1dfdd4b69e8d8b195d90fbe13314c542">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_LINE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fd007b2ccee5aa697cf29fb021a0583">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_RECTANGLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2acf2ee5738a15bde35078e86269e45b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_RHOMBUS
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea7159f2588d2ac58bc9159d5d4d03df">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_SWIMLANE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6c82fb9d8b61d4d54bf26941203065a6">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_TRIANGLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a96dcc90c9e5cd652bf6c4b36f5c5494b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SideToSide
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a67fb360a6331b9ec3b65f0f1cfcb161d">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +<li>Snap()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a40232c253fa2c15e858dec290f45c8ad">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Source
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a38f1bc3601c41a8dd4576bf78ed84666">com::mxgraph::mxCell</a>
    +</li>
    +<li>source
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a60fb78a3ea85690d6596b67f8c5b9e3a">com::mxgraph::mxCell</a>
    +</li>
    +<li>SourcePoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a0b3f7faefd09d648c47c7cae92153c59">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>sourcePoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a9b70c28ce0b587261639b11fc2854d24">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>stack
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abc5fcb884643bbea7bc7ef6234a37859">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>State
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a32a05151825a4c51445535a690fe549d">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>state
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a303fe4863af0b0682531e41a0a86c2b2">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#aab9d909873c0071a530d71b88ea729e2">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>states
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#abb3859aeb516eacf2c04d08b5c1a2f04">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>States
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a2e693ca3997bb8e68080f5dc051f115d">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>STENCIL_SHADOW_OPACITY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aff2785f47c407555c479638d61236485">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STENCIL_SHADOWCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2ad8d18c2859195ee32682ddeb78ee45">com::mxgraph::mxConstants</a>
    +</li>
    +<li>Stroke()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a0278180b14e6ed4bf0075855c73f074b">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a801550a1789580c509257bc6ad8e8385">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>StrokeColor
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#addc63fa18ad55a6d496137c52c2f6410">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae67622bf2792d623c672d4a8b57f86e2">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>strokewidth
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a5353f336150a306f765c11d19d3a576a">com::mxgraph::mxStencil</a>
    +</li>
    +<li>StrokeWidth
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac45d24fb89674db75ee34825bfe8739e">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a56b6cf5694eb108521750e4187415660">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>style
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4aa563833237d77522acd9c17fd9f86e">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8cd7abe7f737756a0453e70d8a59eeae">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Style
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ec99d9ad8df482d8cf649047fb9dc8e">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a07ad177f489a0f98a219de8c38383c91">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a306769e8a5e8517111a00226b11d79a5">com::mxgraph::mxCellState</a>
    +</li>
    +<li>STYLE_ALIGN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bf2ade1d2e0f403d277f6f8fbfab04c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_DASHED
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72282dc7b4403879583e92429f59408c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_DIRECTION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a622b5e7e3ca2cb86085df0cd3d5e26c1">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_EDGE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8861eab51bc7b08c6275a70f2f4172cb">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ELBOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aee1f5bfab933c72838a55bb4e73b3e7f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENDARROW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1088d6100e39467aedbcaf6b5062317a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENDSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeb6c0f3b0eb4303fb1d84494261148d8">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENTRY_PERIMETER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97c58e9edf1fbcb66728d41f3f3e921b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENTRY_X
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa33b112c7630d445fb16560f941b460b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENTRY_Y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac9c08ec34c37cd6367b2c6c61a8d040d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_EXIT_PERIMETER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7aa69b39575100511568fc5d062b7c28">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_EXIT_X
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98d483b298c714fc1d4f86e9dea1d6f3">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_EXIT_Y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1216d1b2c024ab902cb5be3f0c16692b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FILLCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3dc99c9389e68fcccf1c2b9251dff65e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FONTCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5a347e065f8c5005963216973e2a9115">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FONTFAMILY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3aa95b051c6493fa620c6b0c1cd3b4dd">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FONTSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad212fbdc79fc097012001bad8d884503">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FONTSTYLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad7f0c932b0e6155f8941e3de4550cb7a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_GLASS
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7a5d296e06edc4895e68f1032d0eb21">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_GRADIENT_DIRECTION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa5ce6cef515cd3b980ba2c16efddcb84">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_GRADIENTCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a89ed61c1c831f8fdbbb73cb61a4b0893">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_HORIZONTAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a09777af53361249d4cdb30f2124c216f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae7fbf6ef9404b878005cf8ae4a7c6d69">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_ALIGN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9c9b30a365244f1ead9c4376ff939278">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_BACKGROUND
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a479c79822f87ac0ff75a3b737920dd74">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_BORDER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a27ad421ddf299ead3c232023968ce10a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_FLIPH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af855ae060582a396e363384564417408">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_FLIPV
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad90975559c0881df119c6415572bfa29">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_HEIGHT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9d501f96487c4aed5ac589b57535e8f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_VERTICAL_ALIGN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a68508a8687f386ad2fdbf87ef62918f8">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_WIDTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a823b225d4fcaecddb244454299157f37">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_COLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ca8def77e2cad483ff73adf2be9f5da">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_GRADIENTCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a655de664089013fda98ea8f564a8797e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_HEIGHT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a25ee53b3944aa45d184526765cd42a5f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_IMAGE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0827a50f8caa7929bae0e54967431f52">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_SHAPE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3a5dec5b1000f428d731f6dbbf36bb87">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abcf58d30cf605976114a3fbe549a0594">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_WIDTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fa4b8c068da7b8dc03347042688b887">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_LABEL_BACKGROUNDCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acae9ee1e73cc8263b2a28c790037c053">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_LABEL_BORDERCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a669dd03f58985bfbf157dfb397aa1f75">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_LABEL_POSITION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a34c4987af659c3fc8dfbce5403103b17">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_LOOP
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a150d6d5f6ee8fdeca8ef3c03fc554b81">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_NOEDGESTYLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad4f96676ce52fc7c0cff35c27ce58a82">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_NOLABEL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab18fffbf5731e09783b758e97c92add1">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_OPACITY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a859d1d0076703ae134d89a14e671e7b8">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ORTHOGONAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a81c71c639ddc4cfea45fc09adf8e2318">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_OVERFLOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a05412f8771176e5291b46f68a927ed80">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_PERIMETER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab7a751a8bd80d3c041b88752ef5e94f5">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_PERIMETER_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab72f25cea7e25d73ade53f50c4b5cece">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ROTATION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae890fd04c116f3a040ba5f3b97d57ddc">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ROUNDED
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7ed5ee486bcb6c268a6db2d8e2db1d3a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ROUTING_CENTER_X
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae4a649d907b8a4f9eb7915d0232a0052">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ROUTING_CENTER_Y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2090b3fa05fc8a9b9584039656b3d59d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SEGMENT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2d77891c86546ce52398037d0afe3ef2">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SEPARATORCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad640efc5948adbd18008c5383f214b85">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SHADOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7fded7aaee86f7fec85c24eb990bd916">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SHAPE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af98dc98bd5924306a17ea59f72a1fc3b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SOURCE_PERIMETER_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6bbe32f287e9b7a4bcd56df3de63b144">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SOURCE_PORT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a61e8c4cd1ed9d08c68bdce687431f3b5">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1988defb25af7887b4c5968af10525">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING_BOTTOM
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9f99069bf0e43bc91b86782829e305a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING_LEFT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac22ee8a630a6114a3e05f9f0c1a13c1c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING_RIGHT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a311f21a164824043c00dd88d0faabca7">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING_TOP
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8109d6144dd0fb35545f36d02b2d05d9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STARTARROW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98530d392eebdd03085cf1e59e9211d3">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STARTSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a502552e236735b56632bbbd7c4429be0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STENCIL_FLIPH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4896c3e6b34377ddeb7e473ea02d943e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STENCIL_FLIPV
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a137b1f6080c7cb03281eb5acc7442bcc">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STROKECOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5695d983892290ee811e51516d54dd36">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STROKEWIDTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8a4a968f4647b3d56a1dc10f0c23a4b0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_TARGET_PERIMETER_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abc457a97c7a4cc991f2ca65982bcab86">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_TARGET_PORT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6ceeb7c7b3ec66986d192d8eb68d199b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_TEXT_OPACITY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab409504a46643de9d90248a961f397ff">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_VERTICAL_ALIGN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4f940125631e1ab3cf4e30a8eb104878">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_VERTICAL_LABEL_POSITION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2e89648ff34b47ee38e7faccd4c594fc">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_WHITE_SPACE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d76138f18fdcaeb174ee0409644ddf1">com::mxgraph::mxConstants</a>
    +</li>
    +<li>styles
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ac216dfa766b6ee9101d1cf00bc623f23">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>Styles
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#aff79a561ec698762bb9eda9d883a4b88">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>Stylesheet
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#acfa0196cd28096cd25a8087095f3a9e0">com::mxgraph::mxGraph</a>
    +</li>
    +<li>stylesheet
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae3e7da2a26f75a889980c53fefaa3467">com::mxgraph::mxGraph</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x74.html b/dotnet/docs/html/functions_0x74.html
    new file mode 100644
    index 000000000..80848cb67
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x74.html
    @@ -0,0 +1,140 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li class="current"><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
    +<li>Target
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a23831c55f022ad691faf6d29021b7430">com::mxgraph::mxCell</a>
    +</li>
    +<li>target
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8b5bbb4cabfc6feeaa977ffdd5b80ec6">com::mxgraph::mxCell</a>
    +</li>
    +<li>TargetPoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#aaa5aa1dc09c6ae8828bc19bed208790f">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>targetPoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a4db1948b24f7d359a33d2d7db61ee673">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>temperature
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab361f5308d1d48d3de5f5f4520a37b58">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>Template
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6dbad90a78d8e5d2bc3dd6fbec6d4841">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>template
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>terminalDistance
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aee68fcb4facbe8a40f10fa2b1ab64311">com::mxgraph::mxCellState</a>
    +</li>
    +<li>TerminalDistance
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a9fba495d01201cdd42ab878093e12cae">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Text()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a083e98246802e087c999f16a4f8b7407">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#afcf4c07955c595bfd332186cd6fa8be3">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>tolerance
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae02f4752e2cd75d188861a9ff7cd562d">com::mxgraph::mxGraph</a>
    +</li>
    +<li>TopToBottom
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a9c046cb096d401b3665d2ccc096bf145">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +<li>ToRadians()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a1a0c2f4fe1c1c17c445c396a1b158ccb">com::mxgraph::mxUtils</a>
    +</li>
    +<li>TransformControlPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac4ef4f1681df71f677a6d03d42897755">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>Translate
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af0d1303b88f287f460adae16b7f8792a">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>translate
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aa71888f9cebf04ac84e71c302f4124f8">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a752a1c2cec1d85598f4201144a3e7187">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>Translate
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a2267bc84051cea13c3285d29804b8fc7">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ab95273a90d8165c4925b4141754bc730">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488">com::mxgraph::mxICanvas</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a82fad15cca1deb74e81ac504924f91d0">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a541aa4694c566326143ffb5492674719">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a861eafb9b9f70d9e846851f81d11c924">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>TRANSLATE_CONTROL_POINTS
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a415957366c509818f37d3641c61ad62a">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>TranslatePoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a23b4c460761c0715762964202ebe2e26">com::mxgraph::mxUtils</a>
    +</li>
    +<li>TrianglePerimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a70cf801c1d6b94d19d83e70fa7d3ec15">com::mxgraph::mxPerimeter</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x75.html b/dotnet/docs/html/functions_0x75.html
    new file mode 100644
    index 000000000..eaeb634a5
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x75.html
    @@ -0,0 +1,115 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li class="current"><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
    +<li>UpdateBoundingBox()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a0115ba2a4339e05c6db9d8164f30f150">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateEdgeBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5f4bddee7b3fedc69c0a441c6a2ce48e">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateEdgeParent()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#af87d0672edad8ddd5bf2444d18b9dd5e">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>UpdateEdgeParents()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a2953504aaaf27b03084ae77e4c1ca892">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>UpdateFixedTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a252b4249e2ca0e630df6c331135b9644">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateFixedTerminalPoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae50a6fcd0b60ca7b624fd97d49a68fd9">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateFloatingTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a7dc5b5936190891544dd32e3765b82e0">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateFloatingTerminalPoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a86037fb40a256d0280cddc4810b95dd0">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateFont()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a8f3187310e70282e8d2c9a662e8ea92b">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>UpdateLabelBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae6104810b628d9e78fea76d84b4a0023">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>updateLevel
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20904785867391502b5bd953f14cbf1c">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>UpdatePen()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a97a780d6f3b4b24f6bc62ad524cccca4">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>UpdatePoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9ad21a066eb270f9da5de1394458e20d">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateVertexLabelOffset()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ade92841dd809516fc118f4e4985a96f1">com::mxgraph::mxGraphView</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x76.html b/dotnet/docs/html/functions_0x76.html
    new file mode 100644
    index 000000000..b792fb8c5
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x76.html
    @@ -0,0 +1,122 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li class="current"><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_v">- v -</a></h3><ul>
    +<li>Validate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa6a54e897ab3a93c94573e88a8959124">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>ValidateBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac1ec1d93fd59cdbfc1530ba986007267">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>ValidatePoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa635e78c6d4660166e57257079b0d9ce">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>value
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9209b3c4788fd77d0ebe253a7f8e4553">com::mxgraph::mxCell</a>
    +</li>
    +<li>Value
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5ad4a37116bc172cf16d7956551606ac">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a0904b5cab7cb4daa0261eac00f37739b">com::mxgraph::mxICell</a>
    +</li>
    +<li>values
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a45d02688cdf739206cb4452da8ae85e3">com::mxgraph::mxStyleRegistry</a>
    +</li>
    +<li>VERSION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a71f768c91c8a0f04776f0470bc5e18ef">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Vertex
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9587ee53135f8ed718b8c3f6d65d68cc">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#addd27dbb6c0c31fefdc7f4b306b7aa69">com::mxgraph::mxICell</a>
    +</li>
    +<li>vertex
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5798deeacdfd221f124e5b66ef3f296c">com::mxgraph::mxCell</a>
    +</li>
    +<li>vertexArray
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a46527e41184476f1b59fe00ca1218dd1">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>View
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a94f8ab737cef3c01e56cfd9242a7fc95">com::mxgraph::mxCellState</a>
    +</li>
    +<li>view
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a756e72806b199dc1c15120b0fe3c2a19">com::mxgraph::mxCellState</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac140b77f977a37470ce7cba0f9302898">com::mxgraph::mxGraph</a>
    +</li>
    +<li>View
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab13ec7954a48c952bb8e03ee9c3ba943">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Visible
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4ff3745efccdf976c50c60440110384e">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a172b8415c63a0dc7d7a7b151f1bae849">com::mxgraph::mxICell</a>
    +</li>
    +<li>visible
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ac5c3eb4463bdcef39e0bc28a71647e49">com::mxgraph::mxCell</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x77.html b/dotnet/docs/html/functions_0x77.html
    new file mode 100644
    index 000000000..e4b3409b1
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x77.html
    @@ -0,0 +1,94 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li class="current"><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
    +<li>w0
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af575fda1428e1ed270cf88e2cb009a91">com::mxgraph::mxStencil</a>
    +</li>
    +<li>W3C_SHADOWCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a386f9b5690337d6a92bf57b7672ab492">com::mxgraph::mxConstants</a>
    +</li>
    +<li>width
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a62c3f92da547c942f319b6aecd71765c">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>Width
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa76b4b8e9c6d7a4f6e6cecaf8c71b3d">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>WriteAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#addeb537a505b24d8fd813e4d05df4595">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>WriteComplexAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abc3bef1feb53dc34ed9e8ba93da5edd1">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>WritePrimitiveAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7831f956126ef0b5da4920824d9b9bb5">com::mxgraph::mxObjectCodec</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x78.html b/dotnet/docs/html/functions_0x78.html
    new file mode 100644
    index 000000000..a34a223ac
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x78.html
    @@ -0,0 +1,79 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li class="current"><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_x">- x -</a></h3><ul>
    +<li>x
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">com::mxgraph::mxPoint</a>
    +</li>
    +<li>X
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a47119ed72239e13dec2d0d196f408158">com::mxgraph::mxPoint</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_0x79.html b/dotnet/docs/html/functions_0x79.html
    new file mode 100644
    index 000000000..930c94226
    --- /dev/null
    +++ b/dotnet/docs/html/functions_0x79.html
    @@ -0,0 +1,79 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
    +      <li class="current"><a href="functions_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +Here is a list of all documented class members with links to the class documentation for each member:
    +
    +<h3><a class="anchor" id="index_y">- y -</a></h3><ul>
    +<li>Y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a67b180bcd4e2e691c9a0c7ed38c16c38">com::mxgraph::mxPoint</a>
    +</li>
    +<li>y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">com::mxgraph::mxPoint</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_evnt.html b/dotnet/docs/html/functions_evnt.html
    new file mode 100644
    index 000000000..050fc228b
    --- /dev/null
    +++ b/dotnet/docs/html/functions_evnt.html
    @@ -0,0 +1,51 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Events</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li class="current"><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;<ul>
    +<li>DiagramChange
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a3db17c895284a0a4b835c5b6628b5923">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>GraphModelChange
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0d3f6bf19b8c13b0d1445d3d4adf9b6e">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a26dacf83c2ca35265f1f667b4d94adf0">com::mxgraph::mxIGraphModel</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func.html b/dotnet/docs/html/functions_func.html
    new file mode 100644
    index 000000000..7b8d85db0
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func.html
    @@ -0,0 +1,107 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
    +<li>AbsolutePointCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a81b27f5da2d725dd02a4c3cb3a9dad20">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Add()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6a9df7876d2ca6179d58a9b3be663a1c">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a5e971cdff92e9e53071232dc80cbc8b0">com::mxgraph::mxRectangle</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ab18ea07aec23bfbce6c7489269c0985c">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>AddAlias()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a2f52b12270d43eff03f58a059dbd9c67">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>AddDelta()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a867955350b3463cdc7af92727deebbd1">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>AddImageBundle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aa057b90ab131f4662a7f402d006a73bf">com::mxgraph::mxGraph</a>
    +</li>
    +<li>AddNamespace()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#ae9e172ad864056f7d8a6d3a3dee9a536">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>AddObjectValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a400b8c95027f3e65c8f6bb7365346e31">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>AddStencil()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html#a2a8321f136c7a514dc755824d6302032">com::mxgraph::mxStencilRegistry</a>
    +</li>
    +<li>AddStylename()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a4fb003dac4ebb72fc3e59dbce67fd330">com::mxgraph::mxUtils</a>
    +</li>
    +<li>AfterDecode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af52418b7e8af59ebf7892725dfda0c99">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>AfterEncode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a190fb06cd2ebe7953a6766f71f0f4a5d">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>ArcToCurves()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a91f005028c32d0d614b4c5fe1f955b82">com::mxgraph::mxUtils</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x62.html b/dotnet/docs/html/functions_func_0x62.html
    new file mode 100644
    index 000000000..6c742e71b
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x62.html
    @@ -0,0 +1,84 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li class="current"><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
    +<li>BeforeDecode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a64513ab4228e528bfd216c08def3ec6c">com::mxgraph::mxModelCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aef2e78e13b8dd5895ac272a0542ce4f2">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>BeforeEncode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa58c9db1a76eca9a93196b3d618560a5">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>Begin()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af2b8668d5b175b816c51951a61bfa02a">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a912799fcd5815fe7ef01cffa09db2df4">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>BeginUpdate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ab56861ed391e6f4a47ecc2f844a5d02d">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a201180e5435be27e37666fe724cb810b">com::mxgraph::mxIGraphModel</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x63.html b/dotnet/docs/html/functions_func_0x63.html
    new file mode 100644
    index 000000000..45cdb67c2
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x63.html
    @@ -0,0 +1,198 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li class="current"><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
    +<li>calcAttraction()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aab8b33a938819900649672628d79fcc3">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>calcPositions()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab1ec482cc537816e5edd99cd3229c8c8">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>calcRepulsion()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8d5678f4bc6e2143d8cd39f81edc7f3c">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>CellAdded()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4e6d214045580295f508d94ddb121268">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>CellRemoved()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a29c373be3c557e7f4b0489d69954c2c8">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>ChildCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa516a234836e32415529e8ff2f8be92f">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a44df3fed3473e1d55bc384e1d5c6468d">com::mxgraph::mxICell</a>
    +</li>
    +<li>childMoved()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a7a73f5b6d84de487270c6fdb191fa223">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>Clear()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a65b3f3bb8af1d71cacf71420564b7bae">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>Clip()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac7b2da6955b71fa92e0acdb540d27644">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7422851f67a552d9ec84bf5ed06214d6">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>Clone()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a8c6344af8fbe69d3432fbb6018011a27">com::mxgraph::mxPoint</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#aa9e9e649efa5ad7239db970ec735e846">com::mxgraph::mxRectangle</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7a357573a28f227b884eb6a798b1c2df">com::mxgraph::mxCellState</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html#a2af4c4098c9d976033aebeb693208633">com::mxgraph::mxGdiCanvas2D::CanvasState</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab1926c27e8b8c97d98a2f6567686101c">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a1bc5e0feb17c50f9bab5853af0e089f0">com::mxgraph::mxGeometry</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#acd581748b2068e2309253cc70f78aa9e">com::mxgraph::mxICell</a>
    +</li>
    +<li>CloneCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#abe24b1fd2e8bac0e8e5fce1b761c06d9">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>CloneCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#adb5ffb8b1a05c3c77b26a04f06594a29">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a6457526895ee16775a43819bbdc3b713">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>CloneTemplate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a9916f40c70806d0f2dbce90d2bc0a228">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>Close()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a74b61843c65431397481572da60234c9">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac4ec8848dd2d583be1589103f2e00560">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>ComputeAspect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a7dc9504d6a515d7f348c95464deb95e0">com::mxgraph::mxStencil</a>
    +</li>
    +<li>ConfigureImageGraphics()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#afbf738dda3e2f5dcb3814f2a3b8342af">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>Contains()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aa9ba8b0716a8662bcedbdfb56166b4af">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a831a9721313f6770e6af7dc418d9ee39">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a3f76585b333bf7fe2d58ed38e8296b26">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>Convert()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6ce1023a33d6eac6bc4abb5219110d89">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>ConvertValueFromXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af10ffcb1ec0726e3ce520e450eddd1a9">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>ConvertValueToString()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a33ae6b392d4a1eba9b7821e272a8c152">com::mxgraph::mxGraph</a>
    +</li>
    +<li>ConvertValueToXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a668ec4f16b4018010b78dfac5da202a1">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>Create()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a5d6ef3ddf18cdcf7250bb4eb47f930a9">com::mxgraph::mxCellPath</a>
    +</li>
    +<li>CreateCanvas()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a8522152762d9f475a48a3169d01b4229">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#ac8356063dfd38867d0a9941c4211d57d">com::mxgraph::mxGraphViewImageReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ae5c444871b99317d1d27268430a9016f">com::mxgraph::mxGraphViewReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html#acae5f43ac3665c8cd4b4d22c555bca75">com::mxgraph::mxCellRenderer::CanvasFactory</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a7f26f04ba96c4beb8fc8edfb1ffa066a">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +</li>
    +<li>CreateDefaultEdgeStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ae65aab6b8095dbff81674b19a3d717ed">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>CreateDefaultVertexStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a6d347145ac52be5640d705a15d86bf54">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>CreateDocument()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aca3ccaa055624b04567bc4f5c29eefc4">com::mxgraph::mxUtils</a>
    +</li>
    +<li>CreateEdge()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6d2d6a53c4a23cb8ebbb144db1fcf568">com::mxgraph::mxGraph</a>
    +</li>
    +<li>CreateFont()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae1eb2fce0a82af1bacd9232a99edd63c">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>CreateGraphView()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac1b8b9fdccf032cb2c58d16bf7bda8ba">com::mxgraph::mxGraph</a>
    +</li>
    +<li>CreateId()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae7c6fc9bc3f23dbad10b2cd624116ff6">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>CreateImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#ac494a984bd69e39b6ec2cf79cc49ca44">com::mxgraph::mxCellRenderer</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a346009f6c841efa8c5d3da4cc4ed651c">com::mxgraph::mxUtils</a>
    +</li>
    +<li>CreateRoot()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad28b035282fccfb73511cf9faae6202f">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>CreateState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa29a0f2d160d44de6d41998d76d5c7ea">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>CreateStringFormat()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a1d76c9e4f021f98578088e536c2cb50a">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>CreateStylesheet()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6b360d188b285a440a858ff69a162dea">com::mxgraph::mxGraph</a>
    +</li>
    +<li>CreateVertex()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a80157aca4b0dda9252be5139b197c4f6">com::mxgraph::mxGraph</a>
    +</li>
    +<li>CurveTo()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad913dc5a8030d5f802d6c62662a53969">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaa2904f7cac79881913fe04c1a209181">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x64.html b/dotnet/docs/html/functions_func_0x64.html
    new file mode 100644
    index 000000000..f4d9aadb8
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x64.html
    @@ -0,0 +1,179 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li class="current"><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
    +<li>Decode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a270c02410861862c8c08e0d45c4b4dbf">com::mxgraph::mxCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a121ba530f191fa675cef1199783d3b4c">com::mxgraph::mxObjectCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a79090b06efe74f3805ec252138012431">com::mxgraph::mxStylesheetCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#add2542d39061256bd5652925cd14ed99">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a3995ca8eb8b49ea3369ce78784da6886">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeAttributes()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6c43995dfa09e94c15237bb5bcb956bd">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a2e31c56e464eabd8fe784f93ebf45b78">com::mxgraph::mxCodec</a>
    +</li>
    +<li>DecodeChild()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a26402e6fab4b83efae915a1d241a9139">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeChildren()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a0fae9f4253f6b903b13a0342d27b654d">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>DecodeNode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8d19152cfe1b7a65a613ecc823c0ff6c">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>Destroy()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4e953fd9c08480d3bf94ab9a4cfa5ee5">com::mxgraph::mxGdiCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a10051aedcb8f9e1adb76f165757fcdbb">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a435f6fac66560ec4c38a9f0cdf101a1a">com::mxgraph::mxSession</a>
    +</li>
    +<li>DiagramChanged()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a8e4a0cb888cd971989859ac593fa9b5a">com::mxgraph::mxSession</a>
    +</li>
    +<li>DrawActor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aafd04d8ceb82b55fc66d9e981ca50cb2">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ae3632533a1518faf4a0283e31e40bb6f">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a8d7fa4bb190ff786d64bf4b08a3d1c24">com::mxgraph::mxGdiCanvas</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f">com::mxgraph::mxICanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a141e199ea658499f9ee7cb614312de73">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#af6fc42eaa1eb3a49c08562938490b532">com::mxgraph::mxGraph</a>
    +</li>
    +<li>DrawCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html#a2008e95a7cd828b21771613316fe8f37">com::mxgraph::mxCellRenderer</a>
    +</li>
    +<li>DrawCloud()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0b728e530315de862d80ad5084c0adbf">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawCylinder()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ab29840b550d4e8e7ce810756e31bd253">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawElement()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a27e9d15a0078eb7864efa8b394f350b9">com::mxgraph::mxStencil</a>
    +</li>
    +<li>DrawGlassEffect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#af37625a04f9f7d8ed9da18f102b5aeb5">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawGraph()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5a945c74c4398d4c86e16a18c9324b2">com::mxgraph::mxGraph</a>
    +</li>
    +<li>DrawHexagon()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abd6590a03ffb103ce52e56c7efba53df">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a807941de776f8e92b7c73639c0abe815">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abe12b70a40a05bb43d4d06559a28e020">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawLabel()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a105ec52cceacc015399516e8451248b2">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0f874cdb7c36e7ea41f8c5099d598c8b">com::mxgraph::mxGdiCanvas</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79">com::mxgraph::mxICanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a8009e58f10e849bc7bb8fb0b22b9d67e">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>DrawLine()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4364c3768a269869b078890cd7341397">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawMarker()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a21d332b458c681d0af7492d679722bb3">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawOval()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a06a77b51925696ff6d2f4702e71b9af1">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawPath()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a3a68ca8e3f7a86021498925900927b79">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawPolygon()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abaf2255b6c98e42889e870439ef0fc26">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawRect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ac5f846defe137723729aef143f7d1259">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawRhombus()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a000fc6507f6faf2afa3665ce0936acd7">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawShadow()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a43b08f91f8143d818d982a91ff075fe9">com::mxgraph::mxStencil</a>
    +</li>
    +<li>DrawShape()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ae038ad2567e18841f53e1c526dc8d732">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#add14dc3bfb5bf6b79f39f3683562de5d">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a83ba7a3c31f5dee4474ec5daa0e64143">com::mxgraph::mxGraph</a>
    +</li>
    +<li>DrawText()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a4ef438995740da54702f38b343bd99f6">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>DrawTriangle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a3c467a694ed0b8dd1577befaa3d853fa">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x65.html b/dotnet/docs/html/functions_func_0x65.html
    new file mode 100644
    index 000000000..3b161ade8
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x65.html
    @@ -0,0 +1,119 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li class="current"><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
    +<li>EdgeCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab6a337054ab9ba260c8ac7936400ef41">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a828788dc75c335c2a073902d23bccd03">com::mxgraph::mxICell</a>
    +</li>
    +<li>ElementHandler()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a9f9f2f0a5243b568ac6e8de2e2647039">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>Ellipse()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a23449cbcc3027e256de3ce5f2bbcd816">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a83b9df27f2fe4806e71e5664b39ac556">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>Encode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a4a7f48050d530e5b64e7bc98de0eab0b">com::mxgraph::mxStylesheetCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#aed5b7fe6bb0431767d3a0303822d092e">com::mxgraph::mxCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#aa8e373e16bb59c00a573b1bebe1a3934">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>EncodeCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a063a0154505235fab267d75f87d1d94e">com::mxgraph::mxCodec</a>
    +</li>
    +<li>EncodeElements()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac044bc0648d29bbde6a826c22ca84a1b">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>EncodeFields()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afe487cf09d38efd8cbfbbf92810419fa">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>EncodeObject()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#abe01c87a42e5568047c44c78ba0b2a2d">com::mxgraph::mxModelCodec</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ade4c4a85d7ed2162f9566c8df931d250">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>EncodeValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ac0fe160b3b14184206fb33abda5b6c20">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>EndUpdate()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ac0f0b916828467fbcde0e140f5384da3">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaf217675b10e484a5579be55ca97d402">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>Equals()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a6a68cb2cfd1256e32bd4add2c5fc9aa1">com::mxgraph::mxPoint</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa2600d85162a1db0129650b4e636448">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>Eval()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a19dd3e8cbbaef8f0163b5538fecd3ba5">com::mxgraph::mxUtils</a>
    +</li>
    +<li>EvaluateAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a58bc6c170859115aaa5dee655934da71">com::mxgraph::mxStencil</a>
    +</li>
    +<li>execute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af9dae378277ec3bd6c780e66e653b127">com::mxgraph::mxFastOrganicLayout</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#a02f76b81716fa481fa9758cebb9f3c57">com::mxgraph::mxIGraphLayout</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x66.html b/dotnet/docs/html/functions_func_0x66.html
    new file mode 100644
    index 000000000..b8d03ee46
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x66.html
    @@ -0,0 +1,86 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li class="current"><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
    +<li>Fill()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae53d52437c829ca4f99b9302a5fc4864">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a97896c948354d29ad6036ec6882c7367">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>FillAndStroke()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#adeb889eb1d1c5c1a0e00a0ce3dee9178">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a5dd3031fb89d6f1d18e7433249a3fdd3">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>FillClippedRect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7f4b312d1ea700cf0618096c725cd884">com::mxgraph::mxUtils</a>
    +</li>
    +<li>FindNode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ad1ec4d7bd832972f29957a769180836e">com::mxgraph::mxUtils</a>
    +</li>
    +<li>FindTreeRoots()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9c857361773ff4f9b91f00456a37c0e7">com::mxgraph::mxGraph</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x67.html b/dotnet/docs/html/functions_func_0x67.html
    new file mode 100644
    index 000000000..bc7d2a76f
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x67.html
    @@ -0,0 +1,415 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li class="current"><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
    +<li>getArcSize()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#abc62e1f0350b94362408ba2a3ef206fe">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>GetAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a22d9f737f8b8a747c87e4670e2974b8e">com::mxgraph::mxCell</a>
    +</li>
    +<li>GetAttributeName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7a33b05e10c507d6d47fcf1c152e51d4">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>GetBoundingBox()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a71bd876fffa35a8b50525718997bdb1f">com::mxgraph::mxGraph</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af1a162bc91b52a3cdab8b0c38399950b">com::mxgraph::mxGraphView</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7678eac208e920d7c59081dd40df4c91">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac5bfc7198e1b2eaa3b200bac52175cc6">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a4375f43fcce52c94589fb7be99809c52">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetBoundsForCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad75723b57736652d78475e16bf758fd9">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a9de276da9dd69f4249e80b798a317f2e">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetCellAt()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a5bc8a1bceb3786185efd4ad9c5aa75f4">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCellBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a357c8ab34cdb207613a9d652e51b2a73">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCellGeometry()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2c1b1d989e1d49d1bfb16ea1c80bb123">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCellStates()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a30b9bbb3e31ac38f1922d144713f5fbe">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetCellStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7b51ce1952768c396f8a087f4b3134ba">com::mxgraph::mxGraph</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#afc38d23edbde813698159ed5d62bf3b0">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>GetCenterX()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a4c133c9e19ff56d3ee55aca15e93cdf0">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>GetCenterY()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a94596cde2d663cd1746088eea215493f">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>GetChildAt()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8599a87aa169b0ad17f3d36bf2e49973">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a68c9439005fe5fb515743065bf555f57">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a90dc0ac25974c7359e9ad05b045d1190">com::mxgraph::mxICell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a34bc3935f8286a91f53a32fd20da8288">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetChildCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6e8cb72e242fbe156060b1e8347acefd">com::mxgraph::mxGraph</a>
    +</li>
    +<li>getChildCells()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afc0e95ba7217a76435d2144012a8bea7">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetChildCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a29a48f5ced94431792f2d476bb154c4e">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff7c4cd19bcb91cd264bcb586ccc37b0">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>getChildEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a638548b1f8d3025faab5e3549e44bbc4">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetChildEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab334c710f4cbe99934f5162721c42899">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetChildOffsetForCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a1ddeb1fc6c41024bbe7a186971f10049">com::mxgraph::mxGraph</a>
    +</li>
    +<li>getChildVertices()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ac7bef691abcdbd54307f3848075f4d91">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetChildVertices()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a083156b76650d2db1f0832e578b991fd">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a520ada8bb24cd8265fe269c0c9b57a5b">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>GetColor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2b2248a0d09775e466c6e4c3e399fc53">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetConnectionConstraint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a241389af570d0de4d40c0508c7651f61">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetConnectionPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#addc468117a4ba03126039f434a02dd3b">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetConnections()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acf2499827661d10d689a5b18cc6b5932">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3cc8dacc0f73c8331ca491c8ef8e2b8e">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetDefaultParent()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad16bde2a0549353cc07eb274da9016e0">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetDelta()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a3d4597a1b1750ced88c2085768447325">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>GetDirectedEdgeCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6c912d6529f16564373895566abcd254">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetDouble()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ad642b6a5d0fce4c0ca2c4b40e5f87a3b">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a9fa84bb70acb657b281e18474c4eadfa">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetEdgeAt()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5fc7a8013b5b155d68d88975bb90da23">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a5d0e2e8782724472c7aef4257730e075">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a9f6a89b37ef63dd55f5b859c5a5b44d4">com::mxgraph::mxICell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ae2824a854e3533480e819f9056e4bb91">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetEdgeCount()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaeec9051d010a0f4e94d83e15ecad4ee">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d58a0dafc0e77a7a3f207f5815ef245">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetEdgeIndex()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a55174b508ba695d8dcccaf76b3ef4b4c">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a453ffcc5de7e2904223a6e6629af95c3">com::mxgraph::mxCell</a>
    +</li>
    +<li>GetEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a07977778052726940b0877913bafbcf9">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6bdc9bdec69f488a773bbd2595f900be">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetEdgesBetween()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acb693807ec1617511fac53c3512b57a4">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8f9b6d3aac9900437eca491f38742dde">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetEdgeStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9ef84d935516b526c422acc3d1afe03a">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetElementById()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ab75670c8e89934b2f45cb202a95598b8">com::mxgraph::mxCodec</a>
    +</li>
    +<li>GetFieldName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a234002bf9a84ccc51210cbf2744d1dbf">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>GetFieldTemplate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a414f565a39689bd929124c2003dd41aa">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>GetFieldValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ab4c4b9a8a57ef55d3923da107289a05e">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>GetFloat()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a871ab56f1ba48411c148841bd49e5da9">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetFont()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#af1262698755703ccd84bc183cccac6a3">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetGeometry()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8d4e41dafd2e678786375489e3a7c2c6">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad79ee951c1a46d126d1f714bd77b5331">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetGraphBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a62fd93e7cf81eef6a3be100f7b0d80e3">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetHorizontalTextPosition()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a96ecfe8d425f793da3b646b48be02d35">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetId()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#af13936ced2b0da9ad4f088db31ca2007">com::mxgraph::mxCodec</a>
    +</li>
    +<li>GetImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a2eb0c5995f3ae3ce1b6bb68eeb48f72b">com::mxgraph::mxImageBundle</a>
    +</li>
    +<li>GetImageBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a7c7c5e074e3f8fee151e0ce7be4ea240">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetImageForStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aaa43dbca294eab07d9c3d6dbbea7ac1b">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>GetImageFromBundles()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a92aeba26d19e93c8114e6c198fdab341">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetImageSize()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a74865ef852d7c4b6f05163c95ddb4785">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetIncomingEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a073880bd062bfba172b8fdd0ff722013">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abd1949f247709d9cf32958d50520b703">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetIndex()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a68dba23f856145c4cd0943aa3f58bce1">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a144f5ab6985bdd6cb841fa3a09156ef5">com::mxgraph::mxICell</a>
    +</li>
    +<li>GetInitialMessage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a509f4e15b46aaa9c3430e7e7fff7e529">com::mxgraph::mxSession</a>
    +</li>
    +<li>GetInstanceForName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a6f360b981789d155fdc8e6cefd895bca">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>GetInt()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a265f08aea1ab863f5c0c242d0d1e3247">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#aee36f48dc2d2bba4c6e2a053dfba80a7">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ad1d1460c3e03182e6351c285ec9a33b4">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetLabel()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a527defcf3188cf4d934742589cc6a370">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetLabelPaintBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a44a44358539513830ac55c64e7ffd67d">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetLabelSize()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a661de39da15520dccd375cdebf2bf402">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetMd5Hash()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aa23c24c33302d884dacd7ddbd1b16543">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a1667ab563793cc2b36c6014b48ec74f8">com::mxgraph::mxStyleRegistry</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a4398e1da710fb68c428ad5314c02f560">com::mxgraph::mxCodecRegistry</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a62ea0063541fd986ab33a1b098780abf">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>GetNearestCommonAncestor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a7489dd878b15a7d2413b0dac26fff89e">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetNextPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#abf5b7f79cc0901a516b186963dce01ea">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetObject()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ac4c7937c86766f1cf44f12d4023d706d">com::mxgraph::mxCodec</a>
    +</li>
    +<li>GetOpposites()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7a168c862d71bda051212c32e6f0592e">com::mxgraph::mxGraph</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6952674f7dfa52535bbffc6f5f35c276">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetOrigin()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#acaeea26b9d46e48a4df676fb0ea263f3">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetOutgoingEdges()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7bbc3f8c9b25ded19ac36ada2f2d1018">com::mxgraph::mxGraph</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a094b9e0cceb1a81fdca855205a049484">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetPaintBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae68c3f63c612cae292b5209f891e2103">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GetParent()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a49cfdcb77a6fd6882c643c325e3d914b">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af29849ffb09c0e0b75e77bda332f4d31">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetParentPath()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a0f50a9dd6e3983bc5a5e867d200faa52">com::mxgraph::mxCellPath</a>
    +</li>
    +<li>GetPerimeterBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae371a456ebeaf2841d7d775137af4256">com::mxgraph::mxGraphView</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a7855bb1127d2691a3a9ea4c30fee6d49">com::mxgraph::mxCellState</a>
    +</li>
    +<li>GetPerimeterFunction()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a95447fe4f19faa6f997d346c26f51f39">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetPerimeterPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac61ef3afb8b1c4801fe2ea559c090efe">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a45f04749b99d031c57c707f505cc5290">com::mxgraph::mxPoint</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a1eea9cbda637577b8afd0e2fc52e111b">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetPrettyXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a6ba7fb8e71bc6a5ba2476c9bf43842c1">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetRectangle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#acdc68e90b0b634aacf6f3054ed71a97a">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>GetRotatedPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a514a598b4574635ab264a90cfe00a64f">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetRoutingCenterX()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a990d0d7646260a442b3c0a6f6f2ba13c">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetRoutingCenterY()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a75404c30319e149e155b3ec75b2075b7">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetScaledLabelBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a3ed4a7861d42064c2be9f26b07a814cc">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetSizeForString()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a08d855b0f40c6c60b395db790a6c74b4">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aae0270c38bde606f39794a2d02ce63c2">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetStates()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af85a373249eba5fb569b544c560b5b61">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetStencil()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html#a03d67ba6966f732d1faa8f927819e754">com::mxgraph::mxStencilRegistry</a>
    +</li>
    +<li>GetString()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a6b6e56618094460153fdfa34670c4766">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a26ab5c8df26dfd12e3535a4a0533d63a">com::mxgraph::mxStencil</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aeef9a4e1c8524de7f4b0c6093ef4be3b">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetStringFormat()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a79b1654dd953191778bbcd6ceae9f79c">com::mxgraph::mxUtils</a>
    +</li>
    +<li>getStringValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a0b34a45979b6f494498467509bf5ee39">com::mxgraph::mxStylesheetCodec</a>
    +</li>
    +<li>GetStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a21d37523be9a952040d58b9ea968a43e">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad63404d0f7af96acee601960b8cc4963">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>GetStylename()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a81ed5a92ad1cec4300cc4c63d882ec9d">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetStylenames()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a857d2f7e3ecd002353e3ad256308b188">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GetTerminal()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a734794247296f21c0b2aa729ff35541e">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a88a090c546cd51e0d249243d209c6b11">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a1d8a16d05ca148439990b10f3c6a27c5">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8fd2e93ac9f300a20140a828eecbfbac">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>GetTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a7410a68725e48357de2989449068c407">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>GetTerminalPort()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5650a7827fc374d4572c167f929d919b">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetTextWidth()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a02e23930cf57f18fa376d0c868e39d61">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetTypeForName()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#aa06091c0531ebe18f2c69225f0f419ae">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>GetValue()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a77a36629de99d4d6a14236ed0c1666e3">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aafb18bf952de87baba5a3453e222677b">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a3689d9cc958022accbb06bccb3d6502c">com::mxgraph::mxStyleRegistry</a>
    +</li>
    +<li>GetVerticalTextPosition()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a833a10444fd1ced3ee9e3fb36e12851d">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>GetVisibleTerminal()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae4f9f0101bb0cc752ce844d8203c4221">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GetXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a7eb91229c8f8d962843711abe2756200">com::mxgraph::mxUtils</a>
    +</li>
    +<li>GraphModelChanged()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3bb8f37de70854711542b9f1ebaaf85e">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Grow()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#ad499030b067d0ee6e87af68542ec7115">com::mxgraph::mxRectangle</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x68.html b/dotnet/docs/html/functions_func_0x68.html
    new file mode 100644
    index 000000000..da87697ec
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x68.html
    @@ -0,0 +1,75 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li class="current"><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
    +<li>HitsSwimlaneContent()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6d5855a06621ece63f7c0833d0dd54c8">com::mxgraph::mxGraph</a>
    +</li>
    +<li>HtmlEntities()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a1c88dfc8675db06225f91b3afa0f030f">com::mxgraph::mxUtils</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x69.html b/dotnet/docs/html/functions_func_0x69.html
    new file mode 100644
    index 000000000..de2b31a5a
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x69.html
    @@ -0,0 +1,175 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li class="current"><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
    +<li>Image()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaece05317ab22246d7be9221d7e30ed3">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4c05a8cdbd96edbe00bcecc52b8d6e93">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>ImageCanvasFactory()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad81144814ab6cdc9664eb28cd63f8373">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +</li>
    +<li>InactiveTimeMillis()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a26506ed45699525b39a3140d5721f501">com::mxgraph::mxSession</a>
    +</li>
    +<li>IndexOfStylename()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ac3ddde679f9ad7f78edb3f9e842e2d7f">com::mxgraph::mxUtils</a>
    +</li>
    +<li>Init()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#af45decd662d3d2eba53103718b5fb3cb">com::mxgraph::mxSession</a>
    +</li>
    +<li>InitHandlers()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#aa07ba987b0f6a422e035f19d41c2f1ae">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>Insert()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ed5d9b7c09fe2fe55e1c0678a8ddf13">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aafa67a81d45b05767470e811300836db">com::mxgraph::mxICell</a>
    +</li>
    +<li>InsertEdge()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab46383e5589e5ab052da16f7ad765aad">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5a394317ecfcab21eb6709b388ccf132">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae4dddcdc914f145d111a36611e0dae3c">com::mxgraph::mxGraph</a>
    +</li>
    +<li>InsertIntoGraph()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a0c731bec8adf1279a5813e9334b37319">com::mxgraph::mxCodec</a>
    +</li>
    +<li>InsertVertex()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a33e4556565e3ec020dc177cdceb1ce57">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Intersection()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aca4150c2dba3683cde96ce2016cc18a5">com::mxgraph::mxUtils</a>
    +</li>
    +<li>Intersects()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae580f6fc2dd563d367b0efb19a6914c2">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Invalidate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a4fba56e7781c1a247d7f912b335ee7f5">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>IsAncestor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad07cda5ced546c2b04a34120a779c8ca">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a57eec23a248ff711df8aa868f2228640">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>IsCellCollapsed()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac60178c6697ce833fa2f64d7e1f49669">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsCellConnectable()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a4f07dee4b9958154ecc3945de97f41af">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsCellIgnored()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acb90e90ba2f0620618d223ee518420fa">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>IsCellMovable()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a3f095589a40b8012cff674389f5f584b">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsCellVisible()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a8f643dbb69496ce22adeaea030368479">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsCollapsed()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a18315c42e0fe1cc594a956342c2dda9a">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20cd81d1e947de7224b1b9477aaf9014">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>IsConnectable()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afd31c7bec1b0dd657cfd9a6f638a9a20">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a3db1b6eda5906acbb5114361c91968c0">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>IsEdge()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3ef44b271e5419fb4a5c6997cb78f26d">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff2fb4b36db5ee3a101feba394436b86">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>IsExcluded()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a58410c644edac27eb89acd3f3be8c6b3">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>IsNode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a5208100e48892f64e627a85ec30f7f32">com::mxgraph::mxUtils</a>
    +</li>
    +<li>IsOrthogonal()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab0146d0411dd28fb371e19e06b5f8b84">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsPrimitiveValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#af3ef76d421c61dfe849f6e09252fc630">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>IsReference()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a369877eb840c88cb3b321c93e22a373b">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>IsSwimlane()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9e426bb8a46d02750d6010ab670d9277">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsTrue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a0e1981e448a4bf8f245f6472ddb3f131">com::mxgraph::mxUtils</a>
    +</li>
    +<li>IsValidAncestor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#aeee992401f26eeeb965610425c1cb852">com::mxgraph::mxGraph</a>
    +</li>
    +<li>IsVertex()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af30f07add01ec93144ffc00d843828fc">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae0421f7bbf1eeb7b1363ad00274b4eb4">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>IsVisible()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d6b5254a9a124ef7e82b49eb9d4209b">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4cb43b44cd6b8c48b48b6c16e82f3d07">com::mxgraph::mxGraphModel</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x6c.html b/dotnet/docs/html/functions_func_0x6c.html
    new file mode 100644
    index 000000000..cc84e78c5
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x6c.html
    @@ -0,0 +1,84 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li class="current"><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
    +<li>LineTo()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2be519434efaeb4663cd9ae7cc31d49d">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7a86b49a5799e06a6545b2ef470051d0">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>LoadDocument()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ae722c7c569219d667a4c970f3dcfb6bf">com::mxgraph::mxUtils</a>
    +</li>
    +<li>LoadImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a990c73e19081acbb58bdb0edbe313d1f">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a691ee852a7a0fe38907842e405d7e20a">com::mxgraph::mxGdiCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a30ccc3180a67c12649dbba8212918215">com::mxgraph::mxUtils</a>
    +</li>
    +<li>Lookup()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#adcf61362787457dc4ed50811871571f8">com::mxgraph::mxCodec</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x6d.html b/dotnet/docs/html/functions_func_0x6d.html
    new file mode 100644
    index 000000000..e1a48cb43
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x6d.html
    @@ -0,0 +1,158 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li class="current"><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
    +<li>MergeChildren()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afad8a9d1b1be0fd85281c2a31b1a74e0">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>MergeChildrenImpl()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#abf108384d5234690497fff50c730b1d3">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>move()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#aa7f61ebc0e14a39947ae016393501309">com::mxgraph::mxIGraphLayout</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a3a6d6b7697d013125bef0acaadd7d179">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>MoveTo()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a1311082c50b96983ef88056f0f924be4">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad6739b41b41e978ab6966d981d31ccc2">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>mxCell()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a33540edbbd96ad16a149dd605cde4c37">com::mxgraph::mxCell</a>
    +</li>
    +<li>mxCellCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html#af538accfd699400f44f48e4174bb04a2">com::mxgraph::mxCellCodec</a>
    +</li>
    +<li>mxCellState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#abe55dd3e49f689b212b76e3707fc5fee">com::mxgraph::mxCellState</a>
    +</li>
    +<li>mxCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a08aed19305c14248949292a713588056">com::mxgraph::mxCodec</a>
    +</li>
    +<li>mxConnectionConstraint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#af44a749758838408cbc29600523d465e">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>mxFastOrganicLayout()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a0cdd8ebebc894870a02f213ea17fceeb">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>mxGdiCanvas()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#ade50e4054fabc7b34d872a388c6dc164">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>mxGdiCanvas2D()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#af68a0bc9a8655aa30db90e8d230e9c9b">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>mxGeometry()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a9a6d8132f6e53e9d0447b9a4aed47565">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>mxGraph()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a41f3676a508eba5fa0f30f1958da9aa8">com::mxgraph::mxGraph</a>
    +</li>
    +<li>mxGraphModel()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a7c444bb29a58faaa378c880da3774970">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>mxGraphView()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a218453e14bd940ab8b4e4a1187905039">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>mxGraphViewImageReader()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a5c2f0f08cef339f6498c1eed95a9295b">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>mxGraphViewReader()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a5e70037f507dd7a5b0c7ca075b58a494">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>mxImageCanvas()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#ac47f0aafa425843b1af72f4a574964ee">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>mxModelCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html#a0f08ae910decb08326e279aa15253329">com::mxgraph::mxModelCodec</a>
    +</li>
    +<li>mxObjectCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a38b4f86b0ffb810f94f1864c6f386a8f">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>mxPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a1911916b08fe58a430eb20efc5b89b10">com::mxgraph::mxPoint</a>
    +</li>
    +<li>mxRectangle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa9fda9798994a6c2e1319878598b792">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>mxSaxOutputHandler()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a77a3d0762140846abd5cad1722c265c8">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>mxSession()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a742d17a2f7b65e4ca58287ab87a1bbed">com::mxgraph::mxSession</a>
    +</li>
    +<li>mxSharedDiagram()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a06bae16c4c4a61675e16771577681ff8">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>mxStencil()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#aca520171898bbe4c3086c87f84793a7a">com::mxgraph::mxStencil</a>
    +</li>
    +<li>mxStylesheet()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a574c49950df28b41e2c3ea218acc2a3a">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>mxStylesheetCodec()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html#a29a81ab0d165d2f64fa092aed45bad7d">com::mxgraph::mxStylesheetCodec</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x70.html b/dotnet/docs/html/functions_func_0x70.html
    new file mode 100644
    index 000000000..523f504b0
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x70.html
    @@ -0,0 +1,118 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li class="current"><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
    +<li>PaintShape()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ac90b17ce50b78ee5966c399a9ec374db">com::mxgraph::mxStencil</a>
    +</li>
    +<li>ParseColor()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a49a2d9c26dd1afc66aeaf0be3972bba3">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>ParseDescription()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#addff93bc760640f2c47b5c06c13f7dc4">com::mxgraph::mxStencil</a>
    +</li>
    +<li>ParseElement()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a78ed8a118dbce9e2638954de73a9304d">com::mxgraph::mxGraphViewReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a045e64337ad2560628dbe1a53243c0bc">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>ParsePoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a9e04e66ca4cdf297abee69ef68baaa04">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>ParseState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#ac83438fd2f9c2a4f13498192aa068140">com::mxgraph::mxGraphViewReader</a>
    +</li>
    +<li>ParseXml()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a18122413c99206306bc0cca8ee7bbd0a">com::mxgraph::mxUtils</a>
    +</li>
    +<li>Poll()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a602341adc9d083af3c799bf1249d8903">com::mxgraph::mxSession</a>
    +</li>
    +<li>PostProcessCellStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a7b6ba38dbc5c8d3794d191e9dc58d5b9">com::mxgraph::mxGraph</a>
    +</li>
    +<li>ProcessDelta()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a32bb33bee6914b00860028737dfafb9d">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>ProcessEdit()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a337f383a39ccfff3a7b27acee9fc763c">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>ProcessInclude()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#afd7f23ec8879f314b0729ac866201683">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>PutCellStyle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ab349fa703d0689a6783a95ecc911324d">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>PutImage()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#ad60ca8c5a514a3864cac932a6b2d64cc">com::mxgraph::mxImageBundle</a>
    +</li>
    +<li>PutObject()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#ab7189e0c130a648ef15541f2be790bd9">com::mxgraph::mxCodec</a>
    +</li>
    +<li>PutValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#ae867348aa79960560ef57ec6179358ee">com::mxgraph::mxStyleRegistry</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x71.html b/dotnet/docs/html/functions_func_0x71.html
    new file mode 100644
    index 000000000..bd6749651
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x71.html
    @@ -0,0 +1,73 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li class="current"><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_q">- q -</a></h3><ul>
    +<li>QuadTo()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#adbef5129943b03e4e349f36139926f6e">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a54d04210f84a725f6cf59336745c886a">com::mxgraph::mxICanvas2D</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x72.html b/dotnet/docs/html/functions_func_0x72.html
    new file mode 100644
    index 000000000..e8af9ec5e
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x72.html
    @@ -0,0 +1,146 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li class="current"><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
    +<li>Read()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a27c8f5379f6aaa9e751eef7f716d9cc7">com::mxgraph::mxGraphViewReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a34629d7d36006a014933bba3fbc005a3">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>ReadFile()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a90cc8f0f221f2add5a31cfa47bea9b3f">com::mxgraph::mxUtils</a>
    +</li>
    +<li>Receive()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#abb3efdea7640145a0c45c3d867db6843">com::mxgraph::mxSession</a>
    +</li>
    +<li>Rect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abf1749074624b5f849b8b12c85d81233">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aba609b7d44a5ae5b4a391b5799a2f3ca">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>reduceTemperature()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#adf96f4af2d6db40d8440c45c88a8eb42">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>Reference()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a65dacbf11b9be370b293b8256ef116fe">com::mxgraph::mxCodec</a>
    +</li>
    +<li>Register()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#acb79fb9e18c8c61e45eb1c698252a3e3">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>Remove()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a79ec0fea93a81fc482020e010faf928c">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3db316aa8f0a092e8a93a75235c6a24f">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa6986d9d010d246e844a4443723f390d">com::mxgraph::mxICell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a7c47f2459ce0dcdae38c35afa4ed1ffc">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>RemoveAllStylenames()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#abe003f6e64b3ae245257d0447bc890d6">com::mxgraph::mxUtils</a>
    +</li>
    +<li>RemoveEdge()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab4c1f70e744e50d33a9d6c0174877ead">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a11ea99ed0ab26b204111e23167431273">com::mxgraph::mxICell</a>
    +</li>
    +<li>RemoveFromParent()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9af735a9deb670fc9a65ad69694212ff">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5bf0176d9d12329e4b092633c4022310">com::mxgraph::mxICell</a>
    +</li>
    +<li>RemoveFromTerminal()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a18eba4e3a1ff29735fcad45439aa340a">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a7bd60ecba9b833e9157d8b330a963182">com::mxgraph::mxICell</a>
    +</li>
    +<li>RemoveImageBundle()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#afe6eeab8462dfb48f5dec50a8f3aa902">com::mxgraph::mxGraph</a>
    +</li>
    +<li>RemoveState()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a03a3832e8028db0e80b56f16a0a9bc35">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>RemoveStylename()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2fa96b662336bd34cb73951607bc9e2b">com::mxgraph::mxUtils</a>
    +</li>
    +<li>ResetDelta()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ae303ea16e8a3290b7f46f8be39d0941c">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>Resolve()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#ad5059bd5081b1a2f127eb95cc63b51dd">com::mxgraph::mxCellPath</a>
    +</li>
    +<li>Restore()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4d2d8898cae7d385e87e471f968f835f">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aef706f844a586f48ef3c96731dbb687d">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>RestoreClone()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a60713556b96f3500044c0842aa29c58d">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>Revalidate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae484b71ee1fae22ae48b65fe4762e9fb">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>Rotate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac5af10b7d8e1f0f9c163da14cd51eb9e">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae99cad30f6516ca9faeafd4af4cb1ec5">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>Roundrect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad4fccac39e1182fade708caf0a57eaf3">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac93807c8770627c3aec3c92d46383c45">com::mxgraph::mxICanvas2D</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x73.html b/dotnet/docs/html/functions_func_0x73.html
    new file mode 100644
    index 000000000..385b132b9
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x73.html
    @@ -0,0 +1,155 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li class="current"><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
    +<li>Save()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ace20f35dae70d42164f3d5aa422eee9c">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#acb028c15edb7471d8df2c9b4b288a2dc">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>Scale()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af281d95936e45eb668c516b56bd0bde8">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a427ec8105550a274f1a08ff8113d687d">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>SelectSingleNode()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#aae4b27f9a279780ebbd795bbd851cb46">com::mxgraph::mxUtils</a>
    +</li>
    +<li>SetAbsoluteTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aa0ea29da7675e21e7ed7ca7dcc3abd04">com::mxgraph::mxCellState</a>
    +</li>
    +<li>SetAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a0f86db625fe9cefdadf4b42a4eb1a863">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a155ebb610b21e83dfc28eb30ace11dfa">com::mxgraph::mxCodec</a>
    +</li>
    +<li>SetCellStyleFlags()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a2eeb7bc9dd011e47b035cf4f4b6de579">com::mxgraph::mxUtils</a>
    +</li>
    +<li>SetCellStyles()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#ab7b5cd3313e3e1feaa5f366b18d2c435">com::mxgraph::mxUtils</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a0d130a6228092758ec584a9d594b1446">com::mxgraph::mxGraph</a>
    +</li>
    +<li>SetCollapsed()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a05f6ea80a4577097b2614fc8e98b06d2">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a5ea04a022893866cffcbb53044c5171c">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>SetFieldValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a66dc2344eab9b42aac159cdd3967cd8c">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>SetGeometry()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a80f4bfe3ebd152ee3d77ec20a70bcc9d">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a78ccddb2f444c5eb701916d9ca052028">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>SetGlassGradient()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeac7fbfd34479f1b994cc8b4ecf0bc5e">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a454419025bbd42ae392a5cd4d7d49163">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>SetGradient()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a0e38c2ec1e182a78480140a676a49e06">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af04887740790c4849e649f91b142d5b2">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>setRect()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adbcd79c0023233969be1e4ee0626118b">com::mxgraph::mxRectangle</a>
    +</li>
    +<li>SetStyle()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a960ffa631d4199d149b4e889b480db48">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a93a1ced4d1eed980881c3223b5b34b03">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a0f13701bf4dc70c43f0f1ab408e97bea">com::mxgraph::mxUtils</a>
    +</li>
    +<li>SetStyleFlag()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a9789a2adaf33eabe8aa8856df3aca807">com::mxgraph::mxUtils</a>
    +</li>
    +<li>SetTerminal()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0285540160fcf7de39a997c6f6a201ff">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a74a5bb3bea62d4c8382f15a323d326dc">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a538315083698deeeaad366624ea83dd8">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a1f9617dfb062f2388c00b961a8b2bad1">com::mxgraph::mxICell</a>
    +</li>
    +<li>SetTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a93895db7f9dbc2e2b38b87ad229d5d85">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>SetTerminals()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a9980a787ac66f3a9c8586e155699b2c2">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>SetValue()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a73ee199d8b3dd322e97eb4fb07ca407f">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#afd9cac91d73998f8457285bae5c95689">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>SetVisible()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad3c76b19d99dd08f2f5aa96e8e1ba52b">com::mxgraph::mxGraphModel</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a681fede1578933f051041b3ba4f01129">com::mxgraph::mxIGraphModel</a>
    +</li>
    +<li>Shadow()
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a807a0eae6f0574aa2b4f236a0b76d2cc">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abeccbac84e25abacd71e4059521a37bf">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>Snap()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a40232c253fa2c15e858dec290f45c8ad">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Stroke()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a0278180b14e6ed4bf0075855c73f074b">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a801550a1789580c509257bc6ad8e8385">com::mxgraph::mxICanvas2D</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x74.html b/dotnet/docs/html/functions_func_0x74.html
    new file mode 100644
    index 000000000..b31d783d6
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x74.html
    @@ -0,0 +1,87 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li class="current"><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
    +<li>Text()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a083e98246802e087c999f16a4f8b7407">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#afcf4c07955c595bfd332186cd6fa8be3">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>ToRadians()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a1a0c2f4fe1c1c17c445c396a1b158ccb">com::mxgraph::mxUtils</a>
    +</li>
    +<li>TransformControlPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac4ef4f1681df71f677a6d03d42897755">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>Translate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a541aa4694c566326143ffb5492674719">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a82fad15cca1deb74e81ac504924f91d0">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a861eafb9b9f70d9e846851f81d11c924">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>TranslatePoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html#a23b4c460761c0715762964202ebe2e26">com::mxgraph::mxUtils</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x75.html b/dotnet/docs/html/functions_func_0x75.html
    new file mode 100644
    index 000000000..693345dde
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x75.html
    @@ -0,0 +1,108 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li class="current"><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
    +<li>UpdateBoundingBox()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a0115ba2a4339e05c6db9d8164f30f150">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateEdgeBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5f4bddee7b3fedc69c0a441c6a2ce48e">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateEdgeParent()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#af87d0672edad8ddd5bf2444d18b9dd5e">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>UpdateEdgeParents()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a2953504aaaf27b03084ae77e4c1ca892">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>UpdateFixedTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a252b4249e2ca0e630df6c331135b9644">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateFixedTerminalPoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae50a6fcd0b60ca7b624fd97d49a68fd9">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateFloatingTerminalPoint()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a7dc5b5936190891544dd32e3765b82e0">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateFloatingTerminalPoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a86037fb40a256d0280cddc4810b95dd0">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateFont()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a8f3187310e70282e8d2c9a662e8ea92b">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>UpdateLabelBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ae6104810b628d9e78fea76d84b4a0023">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdatePen()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a97a780d6f3b4b24f6bc62ad524cccca4">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>UpdatePoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9ad21a066eb270f9da5de1394458e20d">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>UpdateVertexLabelOffset()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ade92841dd809516fc118f4e4985a96f1">com::mxgraph::mxGraphView</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x76.html b/dotnet/docs/html/functions_func_0x76.html
    new file mode 100644
    index 000000000..e4e1f8cb0
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x76.html
    @@ -0,0 +1,78 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li class="current"><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_v">- v -</a></h3><ul>
    +<li>Validate()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa6a54e897ab3a93c94573e88a8959124">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>ValidateBounds()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#ac1ec1d93fd59cdbfc1530ba986007267">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>ValidatePoints()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa635e78c6d4660166e57257079b0d9ce">com::mxgraph::mxGraphView</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_func_0x77.html b/dotnet/docs/html/functions_func_0x77.html
    new file mode 100644
    index 000000000..5a062d66a
    --- /dev/null
    +++ b/dotnet/docs/html/functions_func_0x77.html
    @@ -0,0 +1,78 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Functions</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_func_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_func_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_func_0x71.html#index_q"><span>q</span></a></li>
    +      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
    +      <li class="current"><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
    +<li>WriteAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#addeb537a505b24d8fd813e4d05df4595">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>WriteComplexAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abc3bef1feb53dc34ed9e8ba93da5edd1">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>WritePrimitiveAttribute()
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a7831f956126ef0b5da4920824d9b9bb5">com::mxgraph::mxObjectCodec</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_prop.html b/dotnet/docs/html/functions_prop.html
    new file mode 100644
    index 000000000..b7ab51cb8
    --- /dev/null
    +++ b/dotnet/docs/html/functions_prop.html
    @@ -0,0 +1,447 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Properties</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li class="current"><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="#index_a"><span>a</span></a></li>
    +      <li><a href="#index_b"><span>b</span></a></li>
    +      <li><a href="#index_c"><span>c</span></a></li>
    +      <li><a href="#index_d"><span>d</span></a></li>
    +      <li><a href="#index_e"><span>e</span></a></li>
    +      <li><a href="#index_f"><span>f</span></a></li>
    +      <li><a href="#index_g"><span>g</span></a></li>
    +      <li><a href="#index_h"><span>h</span></a></li>
    +      <li><a href="#index_i"><span>i</span></a></li>
    +      <li><a href="#index_l"><span>l</span></a></li>
    +      <li><a href="#index_m"><span>m</span></a></li>
    +      <li><a href="#index_o"><span>o</span></a></li>
    +      <li><a href="#index_p"><span>p</span></a></li>
    +      <li><a href="#index_r"><span>r</span></a></li>
    +      <li><a href="#index_s"><span>s</span></a></li>
    +      <li><a href="#index_t"><span>t</span></a></li>
    +      <li><a href="#index_v"><span>v</span></a></li>
    +      <li><a href="#index_w"><span>w</span></a></li>
    +      <li><a href="#index_x"><span>x</span></a></li>
    +      <li><a href="#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
    +<li>AbsoluteOffset
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a067cc7b395e53d99d755d37d3bfbc748">com::mxgraph::mxCellState</a>
    +</li>
    +<li>AbsolutePoints
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a57f270c174f616ff5df3fc9614323f32">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Alpha
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a6e78d631c45ea341b6e82ae2d2ae747f">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad30fb99f1065da8fb956ceb519884381">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>AlternateBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a50d84d2d9ed0cf6f083d31bd4794f18b">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>AntiAlias
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a1dc79898cc116600a6322fb83d13a4b1">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
    +<li>Background
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a86163e41e964450a012d38a97954921f">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>Border
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#abbc386cb9f33f2f3328ce945d355e09b">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>BoundingBox
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aa05783514f4ba432ce3ca31bf81837df">com::mxgraph::mxCellState</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
    +<li>Canvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#af130379cf2af3dd403a3c32d88101ecc">com::mxgraph::mxGraphViewReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a480dc9414a3f3f33eac65c2c34a8616f">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>Cell
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a4e67168c04ec620edcabffc4506e51a3">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Clip
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a17d2074a21622207e42044624cf957be">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>Collapsed
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aca613934c56c8f69cb432db7faf19bf6">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa81ab5ecd3876b35ceae096eba788648">com::mxgraph::mxICell</a>
    +</li>
    +<li>Connectable
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#af6db22ef27fd0f9b264ca003f09f07c8">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a47d8ff40770b1bdd107de01b61399087">com::mxgraph::mxCell</a>
    +</li>
    +<li>Cropping
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af3964c9aa47942ad27136fe899abf542">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
    +<li>Dashed
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa77ee2108750ef5c2e4e60306feb1a0d">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae8633458a4a93fb3bd354b130f0d4d7">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>DashPattern
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aadab1f5cdf6ddc97b6dc8da9224c9f3d">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a92aaa9ef4ad6f542db277e988bcc41b5">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>DefaultEdgeStyle
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a55e72a75f417b6c0b29d548cc958c4b4">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>DefaultLoopStyle
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a857ea173f7f385dae314598f99878639">com::mxgraph::mxGraph</a>
    +</li>
    +<li>DefaultVertexStyle
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#a8bea54671a04717f6d96d06427b5edd0">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>Description
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a31e0ce00ec08d00aef2059e5fc5504fa">com::mxgraph::mxStencil</a>
    +</li>
    +<li>Document
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a3c424b0a7288e6e8a4029c06ec358009">com::mxgraph::mxCodec</a>
    +</li>
    +<li>DrawLabels
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a58b28e3540f378026b3ddc633ed48be0">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
    +<li>Edge
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ae63470bb0cce48a707ef1755403628bc">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aadef1ce3fe1dc603d43381b2602d30b5">com::mxgraph::mxICell</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
    +<li>FillColor
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a192122f8dd7753b20c59cb33458c2e4b">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4f488eea5fb315298333229d26b246cd">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>FontColor
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a3aa4add33b9fcef3c6e81c20f76781ea">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac6f30b477f76d920c5597edd1d687e10">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>FontFamily
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae19b4bee4c6caca4f578037ba3d341d2">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae983110302f114c65645fadd6be63a9">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>FontSize
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a69f663bd9c909c261b33d151574f7d55">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad71b4013cd083413c542e53818d32ef3">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>FontStyle
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9e4c081acdb7fc0b363adbfa345f0671">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a709d43365adf4cb4c00726e83840a13d">com::mxgraph::mxICanvas2D</a>
    +</li>
    +<li>ForceConstant
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a12d4bcd993ca7d09c179c9bd6235e7c6">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
    +<li>GdiCanvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#adb99fa4c94b668fe11279378016f8bfc">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>Geometry
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a087a9707e46db471c5bfd382728a73ec">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a6ec04f5ca6911ce35abed62f342949c3">com::mxgraph::mxICell</a>
    +</li>
    +<li>Graph
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa4760138aec50d456efd6b3af72443a9">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>GraphBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#aa17e78fb01f9979bd752171fb60fd354">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>Graphics
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aa478f6bf5a460b175342e1b61c321ec2">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>GridEnabled
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a2492e35122e5edcc08d5ad164c492415">com::mxgraph::mxGraph</a>
    +</li>
    +<li>GridSize
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a19e7d16278a7fd29510832c6c6fa6378">com::mxgraph::mxGraph</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
    +<li>Height
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a32c0d49b1279c27fec655cb831240975">com::mxgraph::mxRectangle</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
    +<li>Id
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a163926756b42d66b33db6bf6fa15b0e4">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5ef2d884860acb7b0b1386506a8e8a99">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aacafca1659c347daa5756352e34e8776">com::mxgraph::mxSession</a>
    +</li>
    +<li>Image
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a2bde172bcc4451686701176cf8917c9d">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>ImageBasePath
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#af418e32f21afd6c4f3dd72f333e4d737">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>ImageBundles
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a6de2d696c85750fafc8d10600d3d7fe8">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Images
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a171163596816aff46c669d5bb167b4b6">com::mxgraph::mxImageBundle</a>
    +</li>
    +<li>InitialTemp
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ac2659499c12a2967694b2bcec28dcb48">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>IsAllowedToRun
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab926409f7f7f7022b5e12ca5225c0e7d">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>IsCreateIds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae53c41ce3c1bbfcdd1512fb863867841">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>IsEncodeDefaults
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a3f063598603020bfdd63c9b3a24ebe97">com::mxgraph::mxCodec</a>
    +</li>
    +<li>IsEventsEnabled
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a03901697d2c95d30a106bfebfbba6c80">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>IsMaintainEdgeParent
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4f55cfe5f9b3904db74ad352192a4157">com::mxgraph::mxGraphModel</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
    +<li>LabelBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a40fceec936fe37fd869471c22d091e8e">com::mxgraph::mxCellState</a>
    +</li>
    +<li>LabelsVisible
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#abb96d6cfde89d87c098bd1d7c78f6010">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Length
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0a9fc2277de8539e5007e86a00e990c0">com::mxgraph::mxCellState</a>
    +</li>
    +<li>LineCap
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a829ab2cbd41e4777ea46657a6da7ffd9">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb5e8e776beb7049c86cd225748033e4">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>LineJoin
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb7383d17e4ae8c2d90798ae06a22c94">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#add41832e54a6a952a9e9e7a344593acd">com::mxgraph::mxICanvas2D</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
    +<li>MaxIterations
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ade1c6ceb16929e0736db8419222752cd">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>MinDistanceLimit
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8e19280f5a5c4748dbba27db9b62dfc6">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>MiterLimit
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a991c36d1f078c3af31928fc485ef95e5">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9eb9a243faf69d55a94862f93f5aa985">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>Model
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a59458bde9c7951ace31f86dbd2c4bb68">com::mxgraph::mxGraph</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
    +<li>Objects
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#aed4c1e1287432ab7f8213ee5a729dcd6">com::mxgraph::mxCodec</a>
    +</li>
    +<li>Offset
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a4769c76d47f7a3281a42b5a6581c1785">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>Origin
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ac3734bb15dd9dbfd6b9f4d182e5c2df1">com::mxgraph::mxCellState</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
    +<li>Parent
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa2e16e11504aca0ff7d83699b801fd11">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a46e6502b14270fcc1c470a0f52cdfbb6">com::mxgraph::mxICell</a>
    +</li>
    +<li>Perimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#abd093f6a4dcf97fcc040304a1c27ed4f">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>Point
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#a1032705c081348cc5b1f07f20d1508ef">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>Points
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#ae5575c4397373faa269ef9914e135951">com::mxgraph::mxGeometry</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
    +<li>Relative
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a0fc8a94f3ef17260c5b456018999cec4">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>Root
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a42b487c0d42d77170d5c0ce002a0a2ca">com::mxgraph::mxIGraphModel</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1e682481294b64ba2e7859da9760008e">com::mxgraph::mxGraphModel</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
    +<li>Scale
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ace635b44380cd9079dcb359c366bbf64">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ab393f94448d87517dae0133e57100045">com::mxgraph::mxICanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a49b12c63fc32378462d8084bdf4a7fcf">com::mxgraph::mxGraphView</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a32476a0f95314df5178d7336fde35349">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>Segments
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a05e1a6d791c19a8d963216f32723511c">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Source
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a38f1bc3601c41a8dd4576bf78ed84666">com::mxgraph::mxCell</a>
    +</li>
    +<li>SourcePoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a0b3f7faefd09d648c47c7cae92153c59">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>State
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#a32a05151825a4c51445535a690fe549d">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>States
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a2e693ca3997bb8e68080f5dc051f115d">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>StrokeColor
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae67622bf2792d623c672d4a8b57f86e2">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#addc63fa18ad55a6d496137c52c2f6410">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>StrokeWidth
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a56b6cf5694eb108521750e4187415660">com::mxgraph::mxICanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac45d24fb89674db75ee34825bfe8739e">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>Style
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a07ad177f489a0f98a219de8c38383c91">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a306769e8a5e8517111a00226b11d79a5">com::mxgraph::mxCellState</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ec99d9ad8df482d8cf649047fb9dc8e">com::mxgraph::mxCell</a>
    +</li>
    +<li>Styles
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#aff79a561ec698762bb9eda9d883a4b88">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>Stylesheet
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#acfa0196cd28096cd25a8087095f3a9e0">com::mxgraph::mxGraph</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
    +<li>Target
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a23831c55f022ad691faf6d29021b7430">com::mxgraph::mxCell</a>
    +</li>
    +<li>TargetPoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#aaa5aa1dc09c6ae8828bc19bed208790f">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>Template
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a6dbad90a78d8e5d2bc3dd6fbec6d4841">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>TerminalDistance
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a9fba495d01201cdd42ab878093e12cae">com::mxgraph::mxCellState</a>
    +</li>
    +<li>Translate
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ab95273a90d8165c4925b4141754bc730">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#af0d1303b88f287f460adae16b7f8792a">com::mxgraph::mxGraphView</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a2267bc84051cea13c3285d29804b8fc7">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488">com::mxgraph::mxICanvas</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_v">- v -</a></h3><ul>
    +<li>Value
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5ad4a37116bc172cf16d7956551606ac">com::mxgraph::mxCell</a>
    +, <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a0904b5cab7cb4daa0261eac00f37739b">com::mxgraph::mxICell</a>
    +</li>
    +<li>Vertex
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#addd27dbb6c0c31fefdc7f4b306b7aa69">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9587ee53135f8ed718b8c3f6d65d68cc">com::mxgraph::mxCell</a>
    +</li>
    +<li>View
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a94f8ab737cef3c01e56cfd9242a7fc95">com::mxgraph::mxCellState</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ab13ec7954a48c952bb8e03ee9c3ba943">com::mxgraph::mxGraph</a>
    +</li>
    +<li>Visible
    +: <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a172b8415c63a0dc7d7a7b151f1bae849">com::mxgraph::mxICell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4ff3745efccdf976c50c60440110384e">com::mxgraph::mxCell</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
    +<li>Width
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#afa76b4b8e9c6d7a4f6e6cecaf8c71b3d">com::mxgraph::mxRectangle</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_x">- x -</a></h3><ul>
    +<li>X
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a47119ed72239e13dec2d0d196f408158">com::mxgraph::mxPoint</a>
    +</li>
    +</ul>
    +
    +
    +<h3><a class="anchor" id="index_y">- y -</a></h3><ul>
    +<li>Y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a67b180bcd4e2e691c9a0c7ed38c16c38">com::mxgraph::mxPoint</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars.html b/dotnet/docs/html/functions_vars.html
    new file mode 100644
    index 000000000..5cea08649
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars.html
    @@ -0,0 +1,136 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
    +<li>absoluteOffset
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8e67a5772b7ae9b43b1a587de61f79a6">com::mxgraph::mxCellState</a>
    +</li>
    +<li>absolutePoints
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aab5a826bcec2f7134cbc9e8b4142eb49">com::mxgraph::mxCellState</a>
    +</li>
    +<li>aliases
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a052379e3e095439ba6dcc63e0c1df0ea">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>ALIGN_BOTTOM
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1232be429b6c5cbd6bbbfe9f8f94a8">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_CENTER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a671d1091ad0216097f171e35721407be">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_LEFT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a581f2bde5ccd9a5e4d34dee1d22b9e2f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_MIDDLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae3911ed6204528cdbbe551c4d0ff90fa">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_RIGHT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4e34648d83cd7460d0cb20ee0403d8a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ALIGN_TOP
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e3b58384536c29db72b8b6e0766fe5b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>allowedToRun
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a8fc7192201e0c121dd01024dc1793b79">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>alternateBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a8475ccf174c3897a4a9df74cd95be8">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>antiAlias
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a6d9801aae801ca3503ab23f5f7ff06cd">com::mxgraph::mxGraphViewImageReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ad2a3c5a4e3486545a7b0178ae64ce8dc">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +</li>
    +<li>ARROW_BLOCK
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97bae058e18a204853e81ef523c27cbe">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_CLASSIC
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bc3c5c7fd2dc102d59e667c9648ebfc">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_DIAMOND
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adabfcaff7df74535caf6c51ea2823139">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_OPEN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ccb95f20cf9ad4f620356ba5c85613c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_OVAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5f89ad5538a6009a1c76e3b8cd3979df">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_SIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad42ffebd7848e9a459db4542fb931be9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6cc6975b57bdba6d460539a237557082">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ARROW_WIDTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6fdb559821134de6b14cb4f6e7b6df8e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>aspect
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a99acd943034d5503bf048c2574a431d0">com::mxgraph::mxStencil</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x62.html b/dotnet/docs/html/functions_vars_0x62.html
    new file mode 100644
    index 000000000..afb679957
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x62.html
    @@ -0,0 +1,88 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li class="current"><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
    +<li>background
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aed5809860eb0645637557fca52728c88">com::mxgraph::mxGraphViewImageReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#a2090497ead27f7669fae5d72ba7f0ce7">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +</li>
    +<li>bgNode
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ad5bc3a0e9ac020f3def014201dcafe9c">com::mxgraph::mxStencil</a>
    +</li>
    +<li>border
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#aff0fe532ec2953fdd42f95a77b39eaf6">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>boundingBox
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a88557f12649c9250415a6754f41ee6fd">com::mxgraph::mxCellState</a>
    +</li>
    +<li>buffer
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a67c9f110e62aa2417ffe28decef0d462">com::mxgraph::mxSession</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x63.html b/dotnet/docs/html/functions_vars_0x63.html
    new file mode 100644
    index 000000000..f6b868b79
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x63.html
    @@ -0,0 +1,116 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li class="current"><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
    +<li>canvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a25a1291905e89f24bc2c8258d9fb8b7e">com::mxgraph::mxImageCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a4ead1c024b80b0157e323050b273e402">com::mxgraph::mxGraphViewReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a56892081b94e26a8e0a30479f7be4138">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>cell
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a0b0d02a595bcdb5afc69658d9a0c508e">com::mxgraph::mxCellState</a>
    +</li>
    +<li>cellLocation
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ae974dc7272a8a74d0c9abec809e543bd">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>cells
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a11aae87bbc54a67fe354ab8cf95d641d">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>children
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a1c2fb190cdcd3491244fa2139d251e95">com::mxgraph::mxCell</a>
    +</li>
    +<li>clip
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#a0d0ca19582bd5c2b329ebcf456736100">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>codecs
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a86f950b4c672dfaff0656c22bf4a64e6">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>collapsed
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a0d9fb7116c8ac4c8e1bedc88dbfabef1">com::mxgraph::mxCell</a>
    +</li>
    +<li>connectable
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a99130172e0a3b5043450904c3e629800">com::mxgraph::mxCell</a>
    +</li>
    +<li>createIds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a912b286b4d318dc633b1e7a28630f309">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>cropping
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html#af50cf355de821b22f1139224b7ab960b">com::mxgraph::mxGraphViewImageReader</a>
    +</li>
    +<li>currentPath
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a72fef5bf7f66445b934a21caab5e7742">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>currentShadowColor
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa3055da45b5c778072dddd4071a03f1d">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>currentShadowValue
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a3fc5d5d55bffc42a02714b23d46c4f18">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x64.html b/dotnet/docs/html/functions_vars_0x64.html
    new file mode 100644
    index 000000000..bd83252ad
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x64.html
    @@ -0,0 +1,132 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li class="current"><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
    +<li>DEFAULT_FONTFAMILY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa8f6be2c9e0c22d5a3fc3e7ffb78e091">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_FONTSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e51abdecb7408a419abc5dc1add483d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_HOTSPOT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa4681077d65955938ae5f0a1d92cf4d9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_IMAGEBASEPATH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a14c54203435c3e2880be1724bfe7a091">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>DEFAULT_IMAGESIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a501de491da4bfaca8212c186c0dd5010">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_MARKERSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afcaa2814121d0790947f213d58b4259e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_STARTSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#afff87a571af579f46ec2c3862704a58a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DEFAULT_TIMEOUT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa12b929541f6a5a68b73d2a48133f40c">com::mxgraph::mxSession</a>
    +</li>
    +<li>defaultLoopStyle
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ad407060f46936743606c381fee294f58">com::mxgraph::mxGraph</a>
    +</li>
    +<li>delta
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#ac528a7daa6452e26c1e3517f1ef68963">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>desc
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af121843569f520d2a1d165d4e9da41f7">com::mxgraph::mxStencil</a>
    +</li>
    +<li>diagram
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#ad1c81c4f7d9e14d47e2abcaeed7d2537">com::mxgraph::mxSession</a>
    +</li>
    +<li>DIRECTION_EAST
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a46965709b8201a793fd44e0d247d20f0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DIRECTION_NORTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aae4487ca29086764e8e5b38540f1df95">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DIRECTION_SOUTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad87d063a90714a2f565ac4d74a0ba309">com::mxgraph::mxConstants</a>
    +</li>
    +<li>DIRECTION_WEST
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0523a6e826d22b0b050a037e16096785">com::mxgraph::mxConstants</a>
    +</li>
    +<li>dispX
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab622ac3cab6a511c09c9bc9c31dbc3f8">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>dispY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a10d7ba367f8af2dc03be88cf8f955c21">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>document
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a91caf2d5796965cfeae55e748ae1d438">com::mxgraph::mxCodec</a>
    +</li>
    +<li>drawLabels
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a7cd23491208e3140dad748b6a7939d6e">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x65.html b/dotnet/docs/html/functions_vars_0x65.html
    new file mode 100644
    index 000000000..b24f3f3db
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x65.html
    @@ -0,0 +1,123 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li class="current"><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
    +<li>edge
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a21789506573a48e8d29fc6dfd2f329d8">com::mxgraph::mxCell</a>
    +</li>
    +<li>edges
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a3a7bf8563718df5d6a116c22b588d14b">com::mxgraph::mxCell</a>
    +</li>
    +<li>EDGESTYLE_ELBOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeecc6e2dc1dbc264179acd4681f83a6b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EDGESTYLE_ENTITY_RELATION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a422ba84582422f22deb1f0d896161f2d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EDGESTYLE_LOOP
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1fe6d038ca967a9fc70d4aa35d363aff">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EDGESTYLE_SIDETOSIDE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4e5ff3580d1f5c565e973229f42ad2c4">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EDGESTYLE_TOPTOBOTTOM
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#adb64f29e53c3b1cc0d597eb4172cef1a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ELBOW_HORIZONTAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac428d7bb10c30afea58b55092c6e8299">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ELBOW_VERTICAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a017feb6b31cc6ab8d3aaaf8fb8636f46">com::mxgraph::mxConstants</a>
    +</li>
    +<li>ElbowConnector
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a92f5012b34ca2e03ce23139b36d59d2a">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +<li>EllipsePerimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a7fc483d8669cd5ccd098a548c5375290">com::mxgraph::mxPerimeter</a>
    +</li>
    +<li>EMPTY_STYLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#acda54608747d0d86a2fc5140cf8c1ff2">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>encodeDefaults
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a955dde36b094d0845613ff7b7b0abdb9">com::mxgraph::mxCodec</a>
    +</li>
    +<li>ENTITY_SEGMENT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a440e1f7c83e8e1d5d6ae0dbacd2562f6">com::mxgraph::mxConstants</a>
    +</li>
    +<li>EntityRelation
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a0941ebe2ed707190810ac007e7d2db65">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +<li>eventsEnabled
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a9d96063f2d1f05fdb16428addba6570d">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>exclude
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#ae4e8b08be01d379f6a84cfe28235b94e">com::mxgraph::mxObjectCodec</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x66.html b/dotnet/docs/html/functions_vars_0x66.html
    new file mode 100644
    index 000000000..a800c4733
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x66.html
    @@ -0,0 +1,96 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li class="current"><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
    +<li>fgNode
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ae4a6453b92f7c388e21662116bdc4965">com::mxgraph::mxStencil</a>
    +</li>
    +<li>FONT_BOLD
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5611c5488a8a90543df8259ae5a038cb">com::mxgraph::mxConstants</a>
    +</li>
    +<li>FONT_ITALIC
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa06301a225a73f6f3b794eff609e8025">com::mxgraph::mxConstants</a>
    +</li>
    +<li>FONT_SHADOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a62bfee4263ad5c201c79256c117cd1b4">com::mxgraph::mxConstants</a>
    +</li>
    +<li>FONT_SIZEFACTOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0d46345b5eb967100c37513709cbf4d9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>FONT_UNDERLINE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d1d4f95f78df944b58e33dadb6434e0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>forceConstant
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7f82df0c8421273c5134517403580514">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>forceConstantSquared
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aa598941798201a1fa8830f6598478340">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x67.html b/dotnet/docs/html/functions_vars_0x67.html
    new file mode 100644
    index 000000000..22c111e30
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x67.html
    @@ -0,0 +1,97 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li class="current"><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
    +<li>g
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a85bc82f5001ec06221efb9bccc70e84d">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>geometry
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a33cbc795bf87553265989e5c46c8bde2">com::mxgraph::mxCell</a>
    +</li>
    +<li>graph
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a5272c48a60291f84f9f5be6144760315">com::mxgraph::mxGraphView</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a99a53986be7fee5b602032be1e5f51d4">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>graphBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a70f795d0bc251e089395cf30086ec650">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>graphics
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aee6c39db9b3b2a0de38834f3b269bfc3">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>graphicsCanvas
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html#ab7ce28796bb23a7bc25e99255f7faa02">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a>
    +</li>
    +<li>gridEnabled
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a664aa375d8f1b67216fc3e281bea9e55">com::mxgraph::mxGraph</a>
    +</li>
    +<li>gridSize
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a64c20d87e6b6082a1262095881807d27">com::mxgraph::mxGraph</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x68.html b/dotnet/docs/html/functions_vars_0x68.html
    new file mode 100644
    index 000000000..a4fc4340d
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x68.html
    @@ -0,0 +1,81 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li class="current"><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_h">- h -</a></h3><ul>
    +<li>h0
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#ab119e79baf1f2fd94de73f2e53cfde62">com::mxgraph::mxStencil</a>
    +</li>
    +<li>handlers
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html#a7a96643ffe5efc1c5443fc3e84de5d7a">com::mxgraph::mxSaxOutputHandler</a>
    +</li>
    +<li>height
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#adb1bfc2cc3f1215b9357bdeda242a062">com::mxgraph::mxRectangle</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x69.html b/dotnet/docs/html/functions_vars_0x69.html
    new file mode 100644
    index 000000000..62f3ad1ae
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x69.html
    @@ -0,0 +1,106 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li class="current"><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
    +<li>id
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#abf05efba60ca503ace3dcdfd3a7885a7">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#a5b93137a33bc765be42be673de5abc4b">com::mxgraph::mxSession</a>
    +</li>
    +<li>idrefs
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#abef71a12c34e290072c9a9daeea34429">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>image
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a64ac8f6c83af2274c4729a6df9878eba">com::mxgraph::mxImageCanvas</a>
    +</li>
    +<li>imageBasePath
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a750bd6bc1df65eb9966655b446df9776">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>imageBundles
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a715f872e532ab585e8ec45b2d375d014">com::mxgraph::mxGraph</a>
    +</li>
    +<li>imageCache
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a5c377564f1931be090a0cf75176b70d2">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>images
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html#a8bfb4d67c74602df82b8b9b6e4ee6967">com::mxgraph::mxImageBundle</a>
    +</li>
    +<li>indices
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a777007999207d81a1a737ef92777a408">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>initialTemp
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acde3bbda33df34ebcf72bb51b24c0fd2">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>isMoveable
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab68c9139dbaa98a8e3307c7b0f35a7e0">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>iteration
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7912d316ac33da47579fdd3b6a590abc">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x6c.html b/dotnet/docs/html/functions_vars_0x6c.html
    new file mode 100644
    index 000000000..afec66198
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x6c.html
    @@ -0,0 +1,105 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li class="current"><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
    +<li>LABEL_INSET
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada723b1431e72dcb83ade63bbb01f73a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>labelBounds
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a3a4a13aa6990f4cb18d4581844e22465">com::mxgraph::mxCellState</a>
    +</li>
    +<li>labelsVisible
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a27c89a48e8ee870e7802378fabc41782">com::mxgraph::mxGraph</a>
    +</li>
    +<li>lastMoveX
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af9ada374b25ca21d16765642e32515b1">com::mxgraph::mxStencil</a>
    +</li>
    +<li>lastMoveY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a37b57288c72c862106e9f4ed7fbc46b0">com::mxgraph::mxStencil</a>
    +</li>
    +<li>lastPoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2f594bc974a37b0838751ae67f9ce8d1">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>lastTimeMillis
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxSession.html#aa61c27d2f2bc6c4a6c9813083b80bf8b">com::mxgraph::mxSession</a>
    +</li>
    +<li>length
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad7cfcdd37247cdfb73ce22ef89519680">com::mxgraph::mxCellState</a>
    +</li>
    +<li>LINE_ARCSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a54c593c784f39e9ff7c6b30a85b9636f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>LINESPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab5f4a464bcb289fb32e0b4673b4d44df">com::mxgraph::mxConstants</a>
    +</li>
    +<li>Loop
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#abccfcbe9600ba65c750d9334c2e6a36c">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x6d.html b/dotnet/docs/html/functions_vars_0x6d.html
    new file mode 100644
    index 000000000..58a6f1dc1
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x6d.html
    @@ -0,0 +1,93 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li class="current"><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
    +<li>maintainEdgeParent
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4d88460742c510d5dc6ac476bba92ad1">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>mapping
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a8cf9b1b0429e7340911953750d361cf1">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>maxIterations
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af4757aacb4d721e8700c5b940d57c6a8">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>MIN_HOTSPOT_SIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acbb9f2ff860f1f615001f00475c26357">com::mxgraph::mxConstants</a>
    +</li>
    +<li>minDistanceLimit
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#abb7b555da3232233b8d88605ec8a3065">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>minDistanceLimitSquared
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a7eee165d1cd46198cd0afd3683846dc0">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>model
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a9f368b71dccff0fa2e24f6ce685902ac">com::mxgraph::mxGraph</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x6e.html b/dotnet/docs/html/functions_vars_0x6e.html
    new file mode 100644
    index 000000000..ff621f91c
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x6e.html
    @@ -0,0 +1,93 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li class="current"><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
    +<li>namespaces
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html#a705daf930467bc4a397c31a97f735449">com::mxgraph::mxCodecRegistry</a>
    +</li>
    +<li>neighbours
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a9d25658bf242ccfd7f261c4b849fd6c1">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>nextId
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a22d9376162b40a748beb1058df22cb9c">com::mxgraph::mxGraphModel</a>
    +</li>
    +<li>NONE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1adacf0fd058343aa49474e68b2e9bc0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>NS_SVG
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a28b704112d40b5bc8ec0a25036519461">com::mxgraph::mxConstants</a>
    +</li>
    +<li>NS_XHTML
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a57bbcd46e2282a8a8f3e5efd009f326f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>NS_XLINK
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac215c18933e00eea92bb5bce420b6164">com::mxgraph::mxConstants</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x6f.html b/dotnet/docs/html/functions_vars_0x6f.html
    new file mode 100644
    index 000000000..80f092eb7
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x6f.html
    @@ -0,0 +1,81 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li class="current"><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
    +<li>objects
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html#a9f983ce7275a1005de496ee15093a6f0">com::mxgraph::mxCodec</a>
    +</li>
    +<li>offset
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a8412ed3eca1c001d8c40eac2f9ce758b">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>origin
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#ad4cdb7a0d7074b16ceee123e4904da66">com::mxgraph::mxCellState</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x70.html b/dotnet/docs/html/functions_vars_0x70.html
    new file mode 100644
    index 000000000..0d2838478
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x70.html
    @@ -0,0 +1,105 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li class="current"><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
    +<li>parent
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#adaaec96af4af506642844f3752c3efc0">com::mxgraph::mxCell</a>
    +</li>
    +<li>PATH_SEPARATOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html#a8308de65cdb622585ffdf7a5cb05a8a8">com::mxgraph::mxCellPath</a>
    +</li>
    +<li>perimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae84d172008422f7f0dcbfb44865f9a18">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>PERIMETER_ELLIPSE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98221a8b8eda10e6d8f5537369f7aaa5">com::mxgraph::mxConstants</a>
    +</li>
    +<li>PERIMETER_RECTANGLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae0998d20af28656c081cf969afb40b99">com::mxgraph::mxConstants</a>
    +</li>
    +<li>PERIMETER_RHOMBUS
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9246707b04824ac40c547a28dc703549">com::mxgraph::mxConstants</a>
    +</li>
    +<li>PERIMETER_TRIANGLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a976f981a543eef57ee02bd91adad6519">com::mxgraph::mxConstants</a>
    +</li>
    +<li>point
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html#ae0735f826168921bcf66d7ee7617bf62">com::mxgraph::mxConnectionConstraint</a>
    +</li>
    +<li>points
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a45677db05c67d751857181b2c06025f8">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>PRESERVE_IMAGE_ASPECT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#aa2aeea2c29b35fbd1e9c101d0299f466">com::mxgraph::mxGdiCanvas</a>
    +</li>
    +<li>previousGraphics
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a058a4a22257f9f098f05c37772edb489">com::mxgraph::mxImageCanvas</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x72.html b/dotnet/docs/html/functions_vars_0x72.html
    new file mode 100644
    index 000000000..a6b2b1694
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x72.html
    @@ -0,0 +1,99 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li class="current"><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
    +<li>radius
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab408033234dd280872595012e1bbf1e2">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>radiusSquared
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#acb1741efc08f1bc825dc98ae4877fe92">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>random
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#aeb4135bb0af32e37eccdf4d9602ac884">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>RECTANGLE_ROUNDING_FACTOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aabfe6def9b50358da2531c4d60dab841">com::mxgraph::mxConstants</a>
    +</li>
    +<li>RectanglePerimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a4ca38a12f0ad16114fae26f8fff91e14">com::mxgraph::mxPerimeter</a>
    +</li>
    +<li>relative
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a2a64c3ea353de129f7f6dbd76506f5bb">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>reverse
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a897b6935339cdb9a47f12b5f926b58f9">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>RhombusPerimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a0157ffa1dbc7195ceac6c4dd4b3d99b0">com::mxgraph::mxPerimeter</a>
    +</li>
    +<li>root
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1c799c216f6ee4d379aeb3161d04462c">com::mxgraph::mxGraphModel</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x73.html b/dotnet/docs/html/functions_vars_0x73.html
    new file mode 100644
    index 000000000..6009f25f1
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x73.html
    @@ -0,0 +1,400 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li class="current"><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
    +<li>scale
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aac3fc24bb030cf38538f6848e275beeb">com::mxgraph::mxBasicCanvas</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html#a667a53ffe35f9601f814c2708d87de5e">com::mxgraph::mxGraphViewReader</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a1136bf1e5ad245c928a0c679a997afba">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>segments
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a6feac0cf487505657aea93ce7553e31e">com::mxgraph::mxCellState</a>
    +</li>
    +<li>SHADOW_OFFSETX
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a01f9ce3eb19c4a4ba0cfddc329a2699a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHADOW_OFFSETY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2678e4921f6a202f3587442383abcbc6">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHADOWCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7148385e3441968e5d15aa58ee2f665">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_ACTOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72ed28d6c0495c8c7a920ae3c12b3688">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_ARROW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac31197f8da77804a029048b7c9d3cad9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_CLOUD
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ada54fd2aa9d7f5c90c070aaa0506b77c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_CONNECTOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab600b420af02458e82b7258f496cfb6d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_CYLINDER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1f63bac0e7097a58663dc80da5f9b4a2">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_DOUBLE_ELLIPSE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea8932b267794b48cd6951efa11df7fa">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_ELLIPSE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a946407c9bf9eef6f921b7723899bad78">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_HEXAGON
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3b6043b72e0e58c69ed4a1323cd1b166">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_IMAGE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aec3c70fb4c28da7bc4f50c35dcec6c88">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_LABEL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1dfdd4b69e8d8b195d90fbe13314c542">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_LINE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fd007b2ccee5aa697cf29fb021a0583">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_RECTANGLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2acf2ee5738a15bde35078e86269e45b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_RHOMBUS
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aea7159f2588d2ac58bc9159d5d4d03df">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_SWIMLANE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6c82fb9d8b61d4d54bf26941203065a6">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SHAPE_TRIANGLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a96dcc90c9e5cd652bf6c4b36f5c5494b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>SideToSide
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a67fb360a6331b9ec3b65f0f1cfcb161d">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +<li>source
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a60fb78a3ea85690d6596b67f8c5b9e3a">com::mxgraph::mxCell</a>
    +</li>
    +<li>sourcePoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a9b70c28ce0b587261639b11fc2854d24">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>stack
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abc5fcb884643bbea7bc7ef6234a37859">com::mxgraph::mxGdiCanvas2D</a>
    +</li>
    +<li>state
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a303fe4863af0b0682531e41a0a86c2b2">com::mxgraph::mxGdiCanvas2D</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html#aab9d909873c0071a530d71b88ea729e2">com::mxgraph::mxSharedDiagram</a>
    +</li>
    +<li>states
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#abb3859aeb516eacf2c04d08b5c1a2f04">com::mxgraph::mxGraphView</a>
    +</li>
    +<li>STENCIL_SHADOW_OPACITY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aff2785f47c407555c479638d61236485">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STENCIL_SHADOWCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2ad8d18c2859195ee32682ddeb78ee45">com::mxgraph::mxConstants</a>
    +</li>
    +<li>strokewidth
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#a5353f336150a306f765c11d19d3a576a">com::mxgraph::mxStencil</a>
    +</li>
    +<li>style
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4aa563833237d77522acd9c17fd9f86e">com::mxgraph::mxCell</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a8cd7abe7f737756a0453e70d8a59eeae">com::mxgraph::mxCellState</a>
    +</li>
    +<li>STYLE_ALIGN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0bf2ade1d2e0f403d277f6f8fbfab04c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_DASHED
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a72282dc7b4403879583e92429f59408c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_DIRECTION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a622b5e7e3ca2cb86085df0cd3d5e26c1">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_EDGE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8861eab51bc7b08c6275a70f2f4172cb">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ELBOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aee1f5bfab933c72838a55bb4e73b3e7f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENDARROW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1088d6100e39467aedbcaf6b5062317a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENDSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aeb6c0f3b0eb4303fb1d84494261148d8">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENTRY_PERIMETER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a97c58e9edf1fbcb66728d41f3f3e921b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENTRY_X
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa33b112c7630d445fb16560f941b460b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ENTRY_Y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac9c08ec34c37cd6367b2c6c61a8d040d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_EXIT_PERIMETER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7aa69b39575100511568fc5d062b7c28">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_EXIT_X
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98d483b298c714fc1d4f86e9dea1d6f3">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_EXIT_Y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1216d1b2c024ab902cb5be3f0c16692b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FILLCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3dc99c9389e68fcccf1c2b9251dff65e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FONTCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5a347e065f8c5005963216973e2a9115">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FONTFAMILY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3aa95b051c6493fa620c6b0c1cd3b4dd">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FONTSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad212fbdc79fc097012001bad8d884503">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_FONTSTYLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad7f0c932b0e6155f8941e3de4550cb7a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_GLASS
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af7a5d296e06edc4895e68f1032d0eb21">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_GRADIENT_DIRECTION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa5ce6cef515cd3b980ba2c16efddcb84">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_GRADIENTCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a89ed61c1c831f8fdbbb73cb61a4b0893">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_HORIZONTAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a09777af53361249d4cdb30f2124c216f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae7fbf6ef9404b878005cf8ae4a7c6d69">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_ALIGN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a9c9b30a365244f1ead9c4376ff939278">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_BACKGROUND
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a479c79822f87ac0ff75a3b737920dd74">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_BORDER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a27ad421ddf299ead3c232023968ce10a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_FLIPH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af855ae060582a396e363384564417408">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_FLIPV
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad90975559c0881df119c6415572bfa29">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_HEIGHT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9d501f96487c4aed5ac589b57535e8f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_VERTICAL_ALIGN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a68508a8687f386ad2fdbf87ef62918f8">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_IMAGE_WIDTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a823b225d4fcaecddb244454299157f37">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_COLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3ca8def77e2cad483ff73adf2be9f5da">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_GRADIENTCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a655de664089013fda98ea8f564a8797e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_HEIGHT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a25ee53b3944aa45d184526765cd42a5f">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_IMAGE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a0827a50f8caa7929bae0e54967431f52">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_SHAPE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3a5dec5b1000f428d731f6dbbf36bb87">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abcf58d30cf605976114a3fbe549a0594">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_INDICATOR_WIDTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2fa4b8c068da7b8dc03347042688b887">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_LABEL_BACKGROUNDCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#acae9ee1e73cc8263b2a28c790037c053">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_LABEL_BORDERCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a669dd03f58985bfbf157dfb397aa1f75">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_LABEL_POSITION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a34c4987af659c3fc8dfbce5403103b17">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_LOOP
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a150d6d5f6ee8fdeca8ef3c03fc554b81">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_NOEDGESTYLE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad4f96676ce52fc7c0cff35c27ce58a82">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_NOLABEL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab18fffbf5731e09783b758e97c92add1">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_OPACITY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a859d1d0076703ae134d89a14e671e7b8">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ORTHOGONAL
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a81c71c639ddc4cfea45fc09adf8e2318">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_OVERFLOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a05412f8771176e5291b46f68a927ed80">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_PERIMETER
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab7a751a8bd80d3c041b88752ef5e94f5">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_PERIMETER_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab72f25cea7e25d73ade53f50c4b5cece">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ROTATION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae890fd04c116f3a040ba5f3b97d57ddc">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ROUNDED
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7ed5ee486bcb6c268a6db2d8e2db1d3a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ROUTING_CENTER_X
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae4a649d907b8a4f9eb7915d0232a0052">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_ROUTING_CENTER_Y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2090b3fa05fc8a9b9584039656b3d59d">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SEGMENT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2d77891c86546ce52398037d0afe3ef2">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SEPARATORCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad640efc5948adbd18008c5383f214b85">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SHADOW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a7fded7aaee86f7fec85c24eb990bd916">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SHAPE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#af98dc98bd5924306a17ea59f72a1fc3b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SOURCE_PERIMETER_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6bbe32f287e9b7a4bcd56df3de63b144">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SOURCE_PORT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a61e8c4cd1ed9d08c68bdce687431f3b5">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aed1988defb25af7887b4c5968af10525">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING_BOTTOM
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ae9f99069bf0e43bc91b86782829e305a">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING_LEFT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ac22ee8a630a6114a3e05f9f0c1a13c1c">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING_RIGHT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a311f21a164824043c00dd88d0faabca7">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_SPACING_TOP
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8109d6144dd0fb35545f36d02b2d05d9">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STARTARROW
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a98530d392eebdd03085cf1e59e9211d3">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STARTSIZE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a502552e236735b56632bbbd7c4429be0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STENCIL_FLIPH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4896c3e6b34377ddeb7e473ea02d943e">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STENCIL_FLIPV
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a137b1f6080c7cb03281eb5acc7442bcc">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STROKECOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a5695d983892290ee811e51516d54dd36">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_STROKEWIDTH
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a8a4a968f4647b3d56a1dc10f0c23a4b0">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_TARGET_PERIMETER_SPACING
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#abc457a97c7a4cc991f2ca65982bcab86">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_TARGET_PORT
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6ceeb7c7b3ec66986d192d8eb68d199b">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_TEXT_OPACITY
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ab409504a46643de9d90248a961f397ff">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_VERTICAL_ALIGN
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a4f940125631e1ab3cf4e30a8eb104878">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_VERTICAL_LABEL_POSITION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a2e89648ff34b47ee38e7faccd4c594fc">com::mxgraph::mxConstants</a>
    +</li>
    +<li>STYLE_WHITE_SPACE
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a6d76138f18fdcaeb174ee0409644ddf1">com::mxgraph::mxConstants</a>
    +</li>
    +<li>styles
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html#ac216dfa766b6ee9101d1cf00bc623f23">com::mxgraph::mxStylesheet</a>
    +</li>
    +<li>stylesheet
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae3e7da2a26f75a889980c53fefaa3467">com::mxgraph::mxGraph</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x74.html b/dotnet/docs/html/functions_vars_0x74.html
    new file mode 100644
    index 000000000..a1b44c877
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x74.html
    @@ -0,0 +1,103 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li class="current"><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
    +<li>target
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8b5bbb4cabfc6feeaa977ffdd5b80ec6">com::mxgraph::mxCell</a>
    +</li>
    +<li>targetPoint
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a4db1948b24f7d359a33d2d7db61ee673">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>temperature
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#ab361f5308d1d48d3de5f5f4520a37b58">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>template
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html#a24bdd53b1c6af9edab63a37cbd52533e">com::mxgraph::mxObjectCodec</a>
    +</li>
    +<li>terminalDistance
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#aee68fcb4facbe8a40f10fa2b1ab64311">com::mxgraph::mxCellState</a>
    +</li>
    +<li>tolerance
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ae02f4752e2cd75d188861a9ff7cd562d">com::mxgraph::mxGraph</a>
    +</li>
    +<li>TopToBottom
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html#a9c046cb096d401b3665d2ccc096bf145">com::mxgraph::mxEdgeStyle</a>
    +</li>
    +<li>translate
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html#a752a1c2cec1d85598f4201144a3e7187">com::mxgraph::mxGraphView</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#aa71888f9cebf04ac84e71c302f4124f8">com::mxgraph::mxBasicCanvas</a>
    +</li>
    +<li>TRANSLATE_CONTROL_POINTS
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html#a415957366c509818f37d3641c61ad62a">com::mxgraph::mxGeometry</a>
    +</li>
    +<li>TrianglePerimeter
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html#a70cf801c1d6b94d19d83e70fa7d3ec15">com::mxgraph::mxPerimeter</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x75.html b/dotnet/docs/html/functions_vars_0x75.html
    new file mode 100644
    index 000000000..a779b77a5
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x75.html
    @@ -0,0 +1,75 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li class="current"><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
    +<li>updateLevel
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20904785867391502b5bd953f14cbf1c">com::mxgraph::mxGraphModel</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x76.html b/dotnet/docs/html/functions_vars_0x76.html
    new file mode 100644
    index 000000000..ceb74f16a
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x76.html
    @@ -0,0 +1,94 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li class="current"><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_v">- v -</a></h3><ul>
    +<li>value
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9209b3c4788fd77d0ebe253a7f8e4553">com::mxgraph::mxCell</a>
    +</li>
    +<li>values
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html#a45d02688cdf739206cb4452da8ae85e3">com::mxgraph::mxStyleRegistry</a>
    +</li>
    +<li>VERSION
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#a71f768c91c8a0f04776f0470bc5e18ef">com::mxgraph::mxGraph</a>
    +</li>
    +<li>vertex
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5798deeacdfd221f124e5b66ef3f296c">com::mxgraph::mxCell</a>
    +</li>
    +<li>vertexArray
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a46527e41184476f1b59fe00ca1218dd1">com::mxgraph::mxFastOrganicLayout</a>
    +</li>
    +<li>view
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html#a756e72806b199dc1c15120b0fe3c2a19">com::mxgraph::mxCellState</a>
    +, <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html#ac140b77f977a37470ce7cba0f9302898">com::mxgraph::mxGraph</a>
    +</li>
    +<li>visible
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ac5c3eb4463bdcef39e0bc28a71647e49">com::mxgraph::mxCell</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x77.html b/dotnet/docs/html/functions_vars_0x77.html
    new file mode 100644
    index 000000000..1165f85ed
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x77.html
    @@ -0,0 +1,81 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li class="current"><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
    +<li>w0
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html#af575fda1428e1ed270cf88e2cb009a91">com::mxgraph::mxStencil</a>
    +</li>
    +<li>W3C_SHADOWCOLOR
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a386f9b5690337d6a92bf57b7672ab492">com::mxgraph::mxConstants</a>
    +</li>
    +<li>width
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html#a62c3f92da547c942f319b6aecd71765c">com::mxgraph::mxRectangle</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x78.html b/dotnet/docs/html/functions_vars_0x78.html
    new file mode 100644
    index 000000000..3c6e8fb27
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x78.html
    @@ -0,0 +1,75 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li class="current"><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_x">- x -</a></h3><ul>
    +<li>x
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#afc249ce7075359af93ac0001d719ff06">com::mxgraph::mxPoint</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/functions_vars_0x79.html b/dotnet/docs/html/functions_vars_0x79.html
    new file mode 100644
    index 000000000..765d1b2fe
    --- /dev/null
    +++ b/dotnet/docs/html/functions_vars_0x79.html
    @@ -0,0 +1,75 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Class Members - Variables</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions.html"><span>All</span></a></li>
    +      <li><a href="functions_func.html"><span>Functions</span></a></li>
    +      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
    +      <li><a href="functions_prop.html"><span>Properties</span></a></li>
    +      <li><a href="functions_evnt.html"><span>Events</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="functions_vars.html#index_a"><span>a</span></a></li>
    +      <li><a href="functions_vars_0x62.html#index_b"><span>b</span></a></li>
    +      <li><a href="functions_vars_0x63.html#index_c"><span>c</span></a></li>
    +      <li><a href="functions_vars_0x64.html#index_d"><span>d</span></a></li>
    +      <li><a href="functions_vars_0x65.html#index_e"><span>e</span></a></li>
    +      <li><a href="functions_vars_0x66.html#index_f"><span>f</span></a></li>
    +      <li><a href="functions_vars_0x67.html#index_g"><span>g</span></a></li>
    +      <li><a href="functions_vars_0x68.html#index_h"><span>h</span></a></li>
    +      <li><a href="functions_vars_0x69.html#index_i"><span>i</span></a></li>
    +      <li><a href="functions_vars_0x6c.html#index_l"><span>l</span></a></li>
    +      <li><a href="functions_vars_0x6d.html#index_m"><span>m</span></a></li>
    +      <li><a href="functions_vars_0x6e.html#index_n"><span>n</span></a></li>
    +      <li><a href="functions_vars_0x6f.html#index_o"><span>o</span></a></li>
    +      <li><a href="functions_vars_0x70.html#index_p"><span>p</span></a></li>
    +      <li><a href="functions_vars_0x72.html#index_r"><span>r</span></a></li>
    +      <li><a href="functions_vars_0x73.html#index_s"><span>s</span></a></li>
    +      <li><a href="functions_vars_0x74.html#index_t"><span>t</span></a></li>
    +      <li><a href="functions_vars_0x75.html#index_u"><span>u</span></a></li>
    +      <li><a href="functions_vars_0x76.html#index_v"><span>v</span></a></li>
    +      <li><a href="functions_vars_0x77.html#index_w"><span>w</span></a></li>
    +      <li><a href="functions_vars_0x78.html#index_x"><span>x</span></a></li>
    +      <li class="current"><a href="functions_vars_0x79.html#index_y"><span>y</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +&nbsp;
    +
    +<h3><a class="anchor" id="index_y">- y -</a></h3><ul>
    +<li>y
    +: <a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html#a48641b42a2187e4d6fedca61c359be77">com::mxgraph::mxPoint</a>
    +</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:17 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/hierarchy.html b/dotnet/docs/html/hierarchy.html
    new file mode 100644
    index 000000000..55a97879d
    --- /dev/null
    +++ b/dotnet/docs/html/hierarchy.html
    @@ -0,0 +1,101 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Hierarchical Index</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li class="current"><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1CanvasFactory.html">com::mxgraph::mxCellRenderer::CanvasFactory</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer_1_1ImageCanvasFactory.html">com::mxgraph::mxCellRenderer::ImageCanvasFactory</a></li>
    +</ul>
    +</li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D_1_1CanvasState.html">com::mxgraph::mxGdiCanvas2D::CanvasState</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxCellPath.html">com::mxgraph::mxCellPath</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxCellRenderer.html">com::mxgraph::mxCellRenderer</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxCodec.html">com::mxgraph::mxCodec</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxCodecRegistry.html">com::mxgraph::mxCodecRegistry</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxConnectionConstraint.html">com::mxgraph::mxConnectionConstraint</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html">com::mxgraph::mxConstants</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxEdgeStyle.html">com::mxgraph::mxEdgeStyle</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html">com::mxgraph::mxGraph</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxGraphView.html">com::mxgraph::mxGraphView</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewReader.html">com::mxgraph::mxGraphViewReader</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxGraphViewImageReader.html">com::mxgraph::mxGraphViewImageReader</a></li>
    +</ul>
    +</li>
    +<li><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">com::mxgraph::mxICanvas</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html">com::mxgraph::mxBasicCanvas</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html">com::mxgraph::mxGdiCanvas</a></li>
    +</ul>
    +</li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html">com::mxgraph::mxImageCanvas</a></li>
    +</ul>
    +</li>
    +<li><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html">com::mxgraph::mxGdiCanvas2D</a></li>
    +</ul>
    +</li>
    +<li><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxCell.html">com::mxgraph::mxCell</a></li>
    +</ul>
    +</li>
    +<li><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html">com::mxgraph::mxIGraphLayout</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html">com::mxgraph::mxFastOrganicLayout</a></li>
    +</ul>
    +</li>
    +<li><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html">com::mxgraph::mxGraphModel</a></li>
    +</ul>
    +</li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxImageBundle.html">com::mxgraph::mxImageBundle</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxObjectCodec.html">com::mxgraph::mxObjectCodec</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxCellCodec.html">com::mxgraph::mxCellCodec</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxModelCodec.html">com::mxgraph::mxModelCodec</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheetCodec.html">com::mxgraph::mxStylesheetCodec</a></li>
    +</ul>
    +</li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxPerimeter.html">com::mxgraph::mxPerimeter</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxPoint.html">com::mxgraph::mxPoint</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxRectangle.html">com::mxgraph::mxRectangle</a><ul>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">com::mxgraph::mxCellState</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">com::mxgraph::mxGeometry</a></li>
    +</ul>
    +</li>
    +</ul>
    +</li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxSaxOutputHandler.html">com::mxgraph::mxSaxOutputHandler</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxSession.html">com::mxgraph::mxSession</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxSharedDiagram.html">com::mxgraph::mxSharedDiagram</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxStencil.html">com::mxgraph::mxStencil</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxStencilRegistry.html">com::mxgraph::mxStencilRegistry</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxStyleRegistry.html">com::mxgraph::mxStyleRegistry</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxStylesheet.html">com::mxgraph::mxStylesheet</a></li>
    +<li><a class="el" href="classcom_1_1mxgraph_1_1mxUtils.html">com::mxgraph::mxUtils</a></li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:16 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/index.html b/dotnet/docs/html/index.html
    new file mode 100644
    index 000000000..bfcae6687
    --- /dev/null
    +++ b/dotnet/docs/html/index.html
    @@ -0,0 +1,26 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Main Page</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>mxGraph Documentation</h1></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:16 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas-members.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas-members.html
    new file mode 100644
    index 000000000..3bab5791d
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas-members.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxICanvas Member List</h1>This is the complete list of members for <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">com::mxgraph::mxICanvas</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f">DrawCell</a>(mxCellState state)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">com::mxgraph::mxICanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79">DrawLabel</a>(string text, mxCellState state, bool html)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">com::mxgraph::mxICanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ab393f94448d87517dae0133e57100045">Scale</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">com::mxgraph::mxICanvas</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488">Translate</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">com::mxgraph::mxICanvas</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas.html
    new file mode 100644
    index 000000000..9204fc3e9
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas.html
    @@ -0,0 +1,180 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxICanvas Interface Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html">mxICanvas</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxICanvas Interface Reference</h1><!-- doxytag: class="com::mxgraph::mxICanvas" -->
    +<p>Defines the requirements for a canvas that paints the vertices and edges of a graph.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxICanvas:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="interfacecom_1_1mxgraph_1_1mxICanvas.png" usemap="#com::mxgraph::mxICanvas_map" alt=""/>
    +  <map id="com::mxgraph::mxICanvas_map" name="com::mxgraph::mxICanvas_map">
    +<area href="classcom_1_1mxgraph_1_1mxBasicCanvas.html" alt="com::mxgraph::mxBasicCanvas" shape="rect" coords="0,56,186,80"/>
    +<area href="classcom_1_1mxgraph_1_1mxImageCanvas.html" alt="com::mxgraph::mxImageCanvas" shape="rect" coords="196,56,382,80"/>
    +<area href="classcom_1_1mxgraph_1_1mxGdiCanvas.html" alt="com::mxgraph::mxGdiCanvas" shape="rect" coords="0,112,186,136"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="interfacecom_1_1mxgraph_1_1mxICanvas-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad6a830f2b73a62cc62dd56353a20976f">DrawCell</a> (<a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the given cell.  <a href="#ad6a830f2b73a62cc62dd56353a20976f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#a21514c420483b391edb7a482c88f5a79">DrawLabel</a> (string text, <a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a> state, bool html)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the given label.  <a href="#a21514c420483b391edb7a482c88f5a79"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Point&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ad811ebd65f646526f01f63db8f023488">Translate</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the user object of the cell.  <a href="#ad811ebd65f646526f01f63db8f023488"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas.html#ab393f94448d87517dae0133e57100045">Scale</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the user object of the cell.  <a href="#ab393f94448d87517dae0133e57100045"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Defines the requirements for a canvas that paints the vertices and edges of a graph. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="ad6a830f2b73a62cc62dd56353a20976f"></a><!-- doxytag: member="com::mxgraph::mxICanvas::DrawCell" ref="ad6a830f2b73a62cc62dd56353a20976f" args="(mxCellState state)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxICanvas::DrawCell </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td>State of the cell to be painted.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Object that represents the vertex.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ae3632533a1518faf4a0283e31e40bb6f">com::mxgraph::mxBasicCanvas</a>, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a8d7fa4bb190ff786d64bf4b08a3d1c24">com::mxgraph::mxGdiCanvas</a>, and <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a141e199ea658499f9ee7cb614312de73">com::mxgraph::mxImageCanvas</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a21514c420483b391edb7a482c88f5a79"></a><!-- doxytag: member="com::mxgraph::mxICanvas::DrawLabel" ref="a21514c420483b391edb7a482c88f5a79" args="(string text, mxCellState state, bool html)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxICanvas::DrawLabel </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>text</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxCellState.html">mxCellState</a>&nbsp;</td>
    +          <td class="paramname"> <em>state</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>html</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the given label. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>String that represents the label.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td>State of the cell whose label is to be painted.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>html</em>&nbsp;</td><td>Specifies if the label contains HTML markup.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Object that represents the label.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#a105ec52cceacc015399516e8451248b2">com::mxgraph::mxBasicCanvas</a>, <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas.html#a0f874cdb7c36e7ea41f8c5099d598c8b">com::mxgraph::mxGdiCanvas</a>, and <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a8009e58f10e849bc7bb8fb0b22b9d67e">com::mxgraph::mxImageCanvas</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="ab393f94448d87517dae0133e57100045"></a><!-- doxytag: member="com::mxgraph::mxICanvas::Scale" ref="ab393f94448d87517dae0133e57100045" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxICanvas::Scale<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the user object of the cell. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ace635b44380cd9079dcb359c366bbf64">com::mxgraph::mxBasicCanvas</a>, and <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a32476a0f95314df5178d7336fde35349">com::mxgraph::mxImageCanvas</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad811ebd65f646526f01f63db8f023488"></a><!-- doxytag: member="com::mxgraph::mxICanvas::Translate" ref="ad811ebd65f646526f01f63db8f023488" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Point com::mxgraph::mxICanvas::Translate<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the user object of the cell. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxBasicCanvas.html#ab95273a90d8165c4925b4141754bc730">com::mxgraph::mxBasicCanvas</a>, and <a class="el" href="classcom_1_1mxgraph_1_1mxImageCanvas.html#a2267bc84051cea13c3285d29804b8fc7">com::mxgraph::mxImageCanvas</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this interface was generated from the following file:<ul>
    +<li>src/canvas/mxICanvas.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas.png b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas.png
    new file mode 100644
    index 000000000..880142fa7
    Binary files /dev/null and b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas.png differ
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas2D-members.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas2D-members.html
    new file mode 100644
    index 000000000..70b5c76ba
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas2D-members.html
    @@ -0,0 +1,70 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxICanvas2D Member List</h1>This is the complete list of members for <a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a6e78d631c45ea341b6e82ae2d2ae747f">Alpha</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af2b8668d5b175b816c51951a61bfa02a">Begin</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7422851f67a552d9ec84bf5ed06214d6">Clip</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac4ec8848dd2d583be1589103f2e00560">Close</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad913dc5a8030d5f802d6c62662a53969">CurveTo</a>(double x1, double y1, double x2, double y2, double x3, double y3)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae8633458a4a93fb3bd354b130f0d4d7">Dashed</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aadab1f5cdf6ddc97b6dc8da9224c9f3d">DashPattern</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a83b9df27f2fe4806e71e5664b39ac556">Ellipse</a>(double x, double y, double w, double h)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a97896c948354d29ad6036ec6882c7367">Fill</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#adeb889eb1d1c5c1a0e00a0ce3dee9178">FillAndStroke</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4f488eea5fb315298333229d26b246cd">FillColor</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a3aa4add33b9fcef3c6e81c20f76781ea">FontColor</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae983110302f114c65645fadd6be63a9">FontFamily</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a69f663bd9c909c261b33d151574f7d55">FontSize</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a709d43365adf4cb4c00726e83840a13d">FontStyle</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4c05a8cdbd96edbe00bcecc52b8d6e93">Image</a>(double x, double y, double w, double h, string src, bool aspect, bool flipH, bool flipV)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a829ab2cbd41e4777ea46657a6da7ffd9">LineCap</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#add41832e54a6a952a9e9e7a344593acd">LineJoin</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7a86b49a5799e06a6545b2ef470051d0">LineTo</a>(double x, double y)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a991c36d1f078c3af31928fc485ef95e5">MiterLimit</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad6739b41b41e978ab6966d981d31ccc2">MoveTo</a>(double x, double y)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a54d04210f84a725f6cf59336745c886a">QuadTo</a>(double x1, double y1, double x2, double y2)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aba609b7d44a5ae5b4a391b5799a2f3ca">Rect</a>(double x, double y, double w, double h)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4d2d8898cae7d385e87e471f968f835f">Restore</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae99cad30f6516ca9faeafd4af4cb1ec5">Rotate</a>(double theta, bool flipH, bool flipV, double cx, double cy)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac93807c8770627c3aec3c92d46383c45">Roundrect</a>(double x, double y, double w, double h, double dx, double dy)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#acb028c15edb7471d8df2c9b4b288a2dc">Save</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af281d95936e45eb668c516b56bd0bde8">Scale</a>(double value)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a454419025bbd42ae392a5cd4d7d49163">SetGlassGradient</a>(double x, double y, double w, double h)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af04887740790c4849e649f91b142d5b2">SetGradient</a>(string color1, string color2, double x, double y, double w, double h, string direction)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a807a0eae6f0574aa2b4f236a0b76d2cc">Shadow</a>(string value, bool filled)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a801550a1789580c509257bc6ad8e8385">Stroke</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae67622bf2792d623c672d4a8b57f86e2">StrokeColor</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a56b6cf5694eb108521750e4187415660">StrokeWidth</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#afcf4c07955c595bfd332186cd6fa8be3">Text</a>(double x, double y, double w, double h, string str, string align, string valign, bool vertical, bool wrap, string format)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a82fad15cca1deb74e81ac504924f91d0">Translate</a>(double dx, double dy)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">com::mxgraph::mxICanvas2D</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas2D.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas2D.html
    new file mode 100644
    index 000000000..21d2ba1ae
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas2D.html
    @@ -0,0 +1,1223 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxICanvas2D Interface Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html">mxICanvas2D</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxICanvas2D Interface Reference</h1><!-- doxytag: class="com::mxgraph::mxICanvas2D" -->
    +<p>Defines the requirements for a canvas that paints the vertices and edges of a graph.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxICanvas2D:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="interfacecom_1_1mxgraph_1_1mxICanvas2D.png" usemap="#com::mxgraph::mxICanvas2D_map" alt=""/>
    +  <map id="com::mxgraph::mxICanvas2D_map" name="com::mxgraph::mxICanvas2D_map">
    +<area href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html" alt="com::mxgraph::mxGdiCanvas2D" shape="rect" coords="0,56,188,80"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="interfacecom_1_1mxgraph_1_1mxICanvas2D-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#acb028c15edb7471d8df2c9b4b288a2dc">Save</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Saves the current state of the canvas.  <a href="#acb028c15edb7471d8df2c9b4b288a2dc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4d2d8898cae7d385e87e471f968f835f">Restore</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Restores the previous state of the canvas.  <a href="#a4d2d8898cae7d385e87e471f968f835f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af281d95936e45eb668c516b56bd0bde8">Scale</a> (double value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Uniformaly scales the canvas by the given amount.  <a href="#af281d95936e45eb668c516b56bd0bde8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a82fad15cca1deb74e81ac504924f91d0">Translate</a> (double dx, double dy)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates the canvas by the given amount.  <a href="#a82fad15cca1deb74e81ac504924f91d0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae99cad30f6516ca9faeafd4af4cb1ec5">Rotate</a> (double theta, bool flipH, bool flipV, double cx, double cy)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the canvas by the given angle around the given center. This method may add rendering overhead and should be used with care.  <a href="#ae99cad30f6516ca9faeafd4af4cb1ec5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af04887740790c4849e649f91b142d5b2">SetGradient</a> (string color1, string color2, double x, double y, double w, double h, string direction)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prepares the canvas to draw a gradient.  <a href="#af04887740790c4849e649f91b142d5b2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a454419025bbd42ae392a5cd4d7d49163">SetGlassGradient</a> (double x, double y, double w, double h)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prepares the canvas to draw a glass gradient.  <a href="#a454419025bbd42ae392a5cd4d7d49163"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aba609b7d44a5ae5b4a391b5799a2f3ca">Rect</a> (double x, double y, double w, double h)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Next fill or stroke should draw a rectangle.  <a href="#aba609b7d44a5ae5b4a391b5799a2f3ca"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac93807c8770627c3aec3c92d46383c45">Roundrect</a> (double x, double y, double w, double h, double dx, double dy)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Next fill or stroke should draw a round rectangle.  <a href="#ac93807c8770627c3aec3c92d46383c45"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a83b9df27f2fe4806e71e5664b39ac556">Ellipse</a> (double x, double y, double w, double h)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Next fill or stroke should draw an ellipse.  <a href="#a83b9df27f2fe4806e71e5664b39ac556"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4c05a8cdbd96edbe00bcecc52b8d6e93">Image</a> (double x, double y, double w, double h, string src, bool aspect, bool flipH, bool flipV)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the given image.  <a href="#a4c05a8cdbd96edbe00bcecc52b8d6e93"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#afcf4c07955c595bfd332186cd6fa8be3">Text</a> (double x, double y, double w, double h, string str, string align, string valign, bool vertical, bool wrap, string format)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws the given string. Possible values for format are empty string for.  <a href="#afcf4c07955c595bfd332186cd6fa8be3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#af2b8668d5b175b816c51951a61bfa02a">Begin</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Begins a new path.  <a href="#af2b8668d5b175b816c51951a61bfa02a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad6739b41b41e978ab6966d981d31ccc2">MoveTo</a> (double x, double y)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Moves to the given path.  <a href="#ad6739b41b41e978ab6966d981d31ccc2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7a86b49a5799e06a6545b2ef470051d0">LineTo</a> (double x, double y)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a line to the given path.  <a href="#a7a86b49a5799e06a6545b2ef470051d0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a54d04210f84a725f6cf59336745c886a">QuadTo</a> (double x1, double y1, double x2, double y2)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a quadratic curve to the given point.  <a href="#a54d04210f84a725f6cf59336745c886a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ad913dc5a8030d5f802d6c62662a53969">CurveTo</a> (double x1, double y1, double x2, double y2, double x3, double y3)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Draws a bezier curve to the given point.  <a href="#ad913dc5a8030d5f802d6c62662a53969"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ac4ec8848dd2d583be1589103f2e00560">Close</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Closes the current path.  <a href="#ac4ec8848dd2d583be1589103f2e00560"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a801550a1789580c509257bc6ad8e8385">Stroke</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Paints the outline of the current path.  <a href="#a801550a1789580c509257bc6ad8e8385"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a97896c948354d29ad6036ec6882c7367">Fill</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills the current path.  <a href="#a97896c948354d29ad6036ec6882c7367"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#adeb889eb1d1c5c1a0e00a0ce3dee9178">FillAndStroke</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills and paints the outline of the current path.  <a href="#adeb889eb1d1c5c1a0e00a0ce3dee9178"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a807a0eae6f0574aa2b4f236a0b76d2cc">Shadow</a> (string value, bool filled)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Paints the current path as a shadow.  <a href="#a807a0eae6f0574aa2b4f236a0b76d2cc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a7422851f67a552d9ec84bf5ed06214d6">Clip</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Uses the current path for clipping.  <a href="#a7422851f67a552d9ec84bf5ed06214d6"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a56b6cf5694eb108521750e4187415660">StrokeWidth</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the stroke width. This should default to 1 if unset.  <a href="#a56b6cf5694eb108521750e4187415660"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#ae67622bf2792d623c672d4a8b57f86e2">StrokeColor</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the stroke color. This should default to <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1adacf0fd058343aa49474e68b2e9bc0" title="Defines the value for none. Default is &quot;none&quot;.">mxConstants.NONE</a> if unset.  <a href="#ae67622bf2792d623c672d4a8b57f86e2"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae8633458a4a93fb3bd354b130f0d4d7">Dashed</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the dashed state. This should default to false if unset.  <a href="#aae8633458a4a93fb3bd354b130f0d4d7"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aadab1f5cdf6ddc97b6dc8da9224c9f3d">DashPattern</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the dash pattern. This should default to "3 3" if unset.  <a href="#aadab1f5cdf6ddc97b6dc8da9224c9f3d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a829ab2cbd41e4777ea46657a6da7ffd9">LineCap</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the linecap. This should default to "flat" if unset.  <a href="#a829ab2cbd41e4777ea46657a6da7ffd9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#add41832e54a6a952a9e9e7a344593acd">LineJoin</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the linejoin. This should default to "miter" if unset.  <a href="#add41832e54a6a952a9e9e7a344593acd"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a991c36d1f078c3af31928fc485ef95e5">MiterLimit</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the miterlimit. This should default to 10 if unset.  <a href="#a991c36d1f078c3af31928fc485ef95e5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a69f663bd9c909c261b33d151574f7d55">FontSize</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default value <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e51abdecb7408a419abc5dc1add483d" title="Default size for fonts. Value is 11.">mxConstants.DEFAULT_FONTSIZE</a>.  <a href="#a69f663bd9c909c261b33d151574f7d55"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a3aa4add33b9fcef3c6e81c20f76781ea">FontColor</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default value "#000000".  <a href="#a3aa4add33b9fcef3c6e81c20f76781ea"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#aae983110302f114c65645fadd6be63a9">FontFamily</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default value <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa8f6be2c9e0c22d5a3fc3e7ffb78e091">mxConstants#DEFAULT_FONTFAMILY</a>.  <a href="#aae983110302f114c65645fadd6be63a9"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a709d43365adf4cb4c00726e83840a13d">FontStyle</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default value 0. See <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad7f0c932b0e6155f8941e3de4550cb7a">mxConstants#STYLE_FONTSTYLE</a>.  <a href="#a709d43365adf4cb4c00726e83840a13d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a6e78d631c45ea341b6e82ae2d2ae747f">Alpha</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default value 1. This method may add rendering overhead and should be used with care.  <a href="#a6e78d631c45ea341b6e82ae2d2ae747f"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICanvas2D.html#a4f488eea5fb315298333229d26b246cd">FillColor</a><code> [set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default value <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1adacf0fd058343aa49474e68b2e9bc0">mxConstants#NONE</a>.  <a href="#a4f488eea5fb315298333229d26b246cd"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Defines the requirements for a canvas that paints the vertices and edges of a graph. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="af2b8668d5b175b816c51951a61bfa02a"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Begin" ref="af2b8668d5b175b816c51951a61bfa02a" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Begin </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Begins a new path. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a912799fcd5815fe7ef01cffa09db2df4">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7422851f67a552d9ec84bf5ed06214d6"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Clip" ref="a7422851f67a552d9ec84bf5ed06214d6" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Clip </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Uses the current path for clipping. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac7b2da6955b71fa92e0acdb540d27644">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac4ec8848dd2d583be1589103f2e00560"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Close" ref="ac4ec8848dd2d583be1589103f2e00560" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Close </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Closes the current path. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a74b61843c65431397481572da60234c9">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad913dc5a8030d5f802d6c62662a53969"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::CurveTo" ref="ad913dc5a8030d5f802d6c62662a53969" args="(double x1, double y1, double x2, double y2, double x3, double y3)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::CurveTo </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x3</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y3</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a bezier curve to the given point. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aaa2904f7cac79881913fe04c1a209181">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a83b9df27f2fe4806e71e5664b39ac556"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Ellipse" ref="a83b9df27f2fe4806e71e5664b39ac556" args="(double x, double y, double w, double h)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Ellipse </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Next fill or stroke should draw an ellipse. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a23449cbcc3027e256de3ce5f2bbcd816">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a97896c948354d29ad6036ec6882c7367"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Fill" ref="a97896c948354d29ad6036ec6882c7367" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Fill </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Fills the current path. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae53d52437c829ca4f99b9302a5fc4864">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="adeb889eb1d1c5c1a0e00a0ce3dee9178"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::FillAndStroke" ref="adeb889eb1d1c5c1a0e00a0ce3dee9178" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::FillAndStroke </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Fills and paints the outline of the current path. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a5dd3031fb89d6f1d18e7433249a3fdd3">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4c05a8cdbd96edbe00bcecc52b8d6e93"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Image" ref="a4c05a8cdbd96edbe00bcecc52b8d6e93" args="(double x, double y, double w, double h, string src, bool aspect, bool flipH, bool flipV)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Image </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>src</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>aspect</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipH</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipV</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the given image. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7a86b49a5799e06a6545b2ef470051d0"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::LineTo" ref="a7a86b49a5799e06a6545b2ef470051d0" args="(double x, double y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::LineTo </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a line to the given path. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a2be519434efaeb4663cd9ae7cc31d49d">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad6739b41b41e978ab6966d981d31ccc2"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::MoveTo" ref="ad6739b41b41e978ab6966d981d31ccc2" args="(double x, double y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::MoveTo </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Moves to the given path. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a1311082c50b96983ef88056f0f924be4">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a54d04210f84a725f6cf59336745c886a"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::QuadTo" ref="a54d04210f84a725f6cf59336745c886a" args="(double x1, double y1, double x2, double y2)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::QuadTo </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y2</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws a quadratic curve to the given point. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#adbef5129943b03e4e349f36139926f6e">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aba609b7d44a5ae5b4a391b5799a2f3ca"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Rect" ref="aba609b7d44a5ae5b4a391b5799a2f3ca" args="(double x, double y, double w, double h)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Rect </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Next fill or stroke should draw a rectangle. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#abf1749074624b5f849b8b12c85d81233">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4d2d8898cae7d385e87e471f968f835f"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Restore" ref="a4d2d8898cae7d385e87e471f968f835f" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Restore </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Restores the previous state of the canvas. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aef706f844a586f48ef3c96731dbb687d">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae99cad30f6516ca9faeafd4af4cb1ec5"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Rotate" ref="ae99cad30f6516ca9faeafd4af4cb1ec5" args="(double theta, bool flipH, bool flipV, double cx, double cy)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Rotate </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>theta</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipH</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>flipV</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>cx</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>cy</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Rotates the canvas by the given angle around the given center. This method may add rendering overhead and should be used with care. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>theta</em>&nbsp;</td><td>Rotation angle in degrees (0 - 360).</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>flipH</em>&nbsp;</td><td>Specifies if drawing should be flipped horizontally.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>flipV</em>&nbsp;</td><td>Specifies if drawing should be flipped vertically.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cx</em>&nbsp;</td><td>X-coordinate of the center point.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>cy</em>&nbsp;</td><td>Y-coordinate of the center point.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac5af10b7d8e1f0f9c163da14cd51eb9e">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac93807c8770627c3aec3c92d46383c45"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Roundrect" ref="ac93807c8770627c3aec3c92d46383c45" args="(double x, double y, double w, double h, double dx, double dy)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Roundrect </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dx</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dy</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Next fill or stroke should draw a round rectangle. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad4fccac39e1182fade708caf0a57eaf3">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acb028c15edb7471d8df2c9b4b288a2dc"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Save" ref="acb028c15edb7471d8df2c9b4b288a2dc" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Save </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Saves the current state of the canvas. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ace20f35dae70d42164f3d5aa422eee9c">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af281d95936e45eb668c516b56bd0bde8"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Scale" ref="af281d95936e45eb668c516b56bd0bde8" args="(double value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Scale </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Uniformaly scales the canvas by the given amount. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The new scale value.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a427ec8105550a274f1a08ff8113d687d">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a454419025bbd42ae392a5cd4d7d49163"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::SetGlassGradient" ref="a454419025bbd42ae392a5cd4d7d49163" args="(double x, double y, double w, double h)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::SetGlassGradient </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Prepares the canvas to draw a glass gradient. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeac7fbfd34479f1b994cc8b4ecf0bc5e">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af04887740790c4849e649f91b142d5b2"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::SetGradient" ref="af04887740790c4849e649f91b142d5b2" args="(string color1, string color2, double x, double y, double w, double h, string direction)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::SetGradient </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>color1</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>color2</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>direction</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Prepares the canvas to draw a gradient. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a807a0eae6f0574aa2b4f236a0b76d2cc"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Shadow" ref="a807a0eae6f0574aa2b4f236a0b76d2cc" args="(string value, bool filled)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Shadow </td>
    +          <td>(</td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>value</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>filled</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Paints the current path as a shadow. </p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a801550a1789580c509257bc6ad8e8385"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Stroke" ref="a801550a1789580c509257bc6ad8e8385" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Stroke </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Paints the outline of the current path. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a0278180b14e6ed4bf0075855c73f074b">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afcf4c07955c595bfd332186cd6fa8be3"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Text" ref="afcf4c07955c595bfd332186cd6fa8be3" args="(double x, double y, double w, double h, string str, string align, string valign, bool vertical, bool wrap, string format)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Text </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>w</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>h</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>str</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>align</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>valign</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>vertical</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>wrap</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>format</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Draws the given string. Possible values for format are empty string for. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a083e98246802e087c999f16a4f8b7407">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a82fad15cca1deb74e81ac504924f91d0"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Translate" ref="a82fad15cca1deb74e81ac504924f91d0" args="(double dx, double dy)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICanvas2D::Translate </td>
    +          <td>(</td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dx</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>dy</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Translates the canvas by the given amount. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>dx</em>&nbsp;</td><td>X-coordinate of the translation.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>dy</em>&nbsp;</td><td>Y-coordinate of the translation.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a541aa4694c566326143ffb5492674719">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a6e78d631c45ea341b6e82ae2d2ae747f"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Alpha" ref="a6e78d631c45ea341b6e82ae2d2ae747f" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxICanvas2D::Alpha<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default value 1. This method may add rendering overhead and should be used with care. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad30fb99f1065da8fb956ceb519884381">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aae8633458a4a93fb3bd354b130f0d4d7"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::Dashed" ref="aae8633458a4a93fb3bd354b130f0d4d7" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxICanvas2D::Dashed<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the dashed state. This should default to false if unset. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aa77ee2108750ef5c2e4e60306feb1a0d">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aadab1f5cdf6ddc97b6dc8da9224c9f3d"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::DashPattern" ref="aadab1f5cdf6ddc97b6dc8da9224c9f3d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxICanvas2D::DashPattern<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the dash pattern. This should default to "3 3" if unset. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a92aaa9ef4ad6f542db277e988bcc41b5">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a4f488eea5fb315298333229d26b246cd"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::FillColor" ref="a4f488eea5fb315298333229d26b246cd" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxICanvas2D::FillColor<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default value <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1adacf0fd058343aa49474e68b2e9bc0">mxConstants#NONE</a>. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a192122f8dd7753b20c59cb33458c2e4b">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3aa4add33b9fcef3c6e81c20f76781ea"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::FontColor" ref="a3aa4add33b9fcef3c6e81c20f76781ea" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxICanvas2D::FontColor<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default value "#000000". </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac6f30b477f76d920c5597edd1d687e10">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aae983110302f114c65645fadd6be63a9"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::FontFamily" ref="aae983110302f114c65645fadd6be63a9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxICanvas2D::FontFamily<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default value <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#aa8f6be2c9e0c22d5a3fc3e7ffb78e091">mxConstants#DEFAULT_FONTFAMILY</a>. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ae19b4bee4c6caca4f578037ba3d341d2">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a69f663bd9c909c261b33d151574f7d55"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::FontSize" ref="a69f663bd9c909c261b33d151574f7d55" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxICanvas2D::FontSize<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default value <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a3e51abdecb7408a419abc5dc1add483d" title="Default size for fonts. Value is 11.">mxConstants.DEFAULT_FONTSIZE</a>. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ad71b4013cd083413c542e53818d32ef3">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a709d43365adf4cb4c00726e83840a13d"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::FontStyle" ref="a709d43365adf4cb4c00726e83840a13d" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxICanvas2D::FontStyle<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Default value 0. See <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#ad7f0c932b0e6155f8941e3de4550cb7a">mxConstants#STYLE_FONTSTYLE</a>. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9e4c081acdb7fc0b363adbfa345f0671">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a829ab2cbd41e4777ea46657a6da7ffd9"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::LineCap" ref="a829ab2cbd41e4777ea46657a6da7ffd9" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxICanvas2D::LineCap<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the linecap. This should default to "flat" if unset. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb5e8e776beb7049c86cd225748033e4">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="add41832e54a6a952a9e9e7a344593acd"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::LineJoin" ref="add41832e54a6a952a9e9e7a344593acd" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxICanvas2D::LineJoin<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the linejoin. This should default to "miter" if unset. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#aeb7383d17e4ae8c2d90798ae06a22c94">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a991c36d1f078c3af31928fc485ef95e5"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::MiterLimit" ref="a991c36d1f078c3af31928fc485ef95e5" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxICanvas2D::MiterLimit<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the miterlimit. This should default to 10 if unset. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#a9eb9a243faf69d55a94862f93f5aa985">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae67622bf2792d623c672d4a8b57f86e2"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::StrokeColor" ref="ae67622bf2792d623c672d4a8b57f86e2" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxICanvas2D::StrokeColor<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the stroke color. This should default to <a class="el" href="classcom_1_1mxgraph_1_1mxConstants.html#a1adacf0fd058343aa49474e68b2e9bc0" title="Defines the value for none. Default is &quot;none&quot;.">mxConstants.NONE</a> if unset. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#addc63fa18ad55a6d496137c52c2f6410">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a56b6cf5694eb108521750e4187415660"></a><!-- doxytag: member="com::mxgraph::mxICanvas2D::StrokeWidth" ref="a56b6cf5694eb108521750e4187415660" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">double com::mxgraph::mxICanvas2D::StrokeWidth<code> [set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the stroke width. This should default to 1 if unset. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGdiCanvas2D.html#ac45d24fb89674db75ee34825bfe8739e">com::mxgraph::mxGdiCanvas2D</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this interface was generated from the following file:<ul>
    +<li>src/canvas/mxICanvas2D.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas2D.png b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas2D.png
    new file mode 100644
    index 000000000..8f725f260
    Binary files /dev/null and b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICanvas2D.png differ
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICell-members.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICell-members.html
    new file mode 100644
    index 000000000..035eab1c7
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICell-members.html
    @@ -0,0 +1,61 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxICell Member List</h1>This is the complete list of members for <a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a44df3fed3473e1d55bc384e1d5c6468d">ChildCount</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#acd581748b2068e2309253cc70f78aa9e">Clone</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa81ab5ecd3876b35ceae096eba788648">Collapsed</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#af6db22ef27fd0f9b264ca003f09f07c8">Connectable</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aadef1ce3fe1dc603d43381b2602d30b5">Edge</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a828788dc75c335c2a073902d23bccd03">EdgeCount</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a6ec04f5ca6911ce35abed62f342949c3">Geometry</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a90dc0ac25974c7359e9ad05b045d1190">GetChildAt</a>(int index)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a9f6a89b37ef63dd55f5b859c5a5b44d4">GetEdgeAt</a>(int index)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a55174b508ba695d8dcccaf76b3ef4b4c">GetEdgeIndex</a>(mxICell edge)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a144f5ab6985bdd6cb841fa3a09156ef5">GetIndex</a>(mxICell child)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a734794247296f21c0b2aa729ff35541e">GetTerminal</a>(bool source)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5ef2d884860acb7b0b1386506a8e8a99">Id</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aafa67a81d45b05767470e811300836db">Insert</a>(mxICell child)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa8045711110e26d63178e10e3491ef41">Insert</a>(mxICell child, int index)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5a394317ecfcab21eb6709b388ccf132">InsertEdge</a>(mxICell edge, bool isOutgoing)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a46e6502b14270fcc1c470a0f52cdfbb6">Parent</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa6986d9d010d246e844a4443723f390d">Remove</a>(int index)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a02a754371b8afc0dba9af484bd05a062">Remove</a>(mxICell child)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a11ea99ed0ab26b204111e23167431273">RemoveEdge</a>(mxICell edge, bool isOutgoing)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5bf0176d9d12329e4b092633c4022310">RemoveFromParent</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a7bd60ecba9b833e9157d8b330a963182">RemoveFromTerminal</a>(bool isSource)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a1f9617dfb062f2388c00b961a8b2bad1">SetTerminal</a>(mxICell terminal, bool source)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a07ad177f489a0f98a219de8c38383c91">Style</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a0904b5cab7cb4daa0261eac00f37739b">Value</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#addd27dbb6c0c31fefdc7f4b306b7aa69">Vertex</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a172b8415c63a0dc7d7a7b151f1bae849">Visible</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">com::mxgraph::mxICell</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICell.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICell.html
    new file mode 100644
    index 000000000..783140f5b
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICell.html
    @@ -0,0 +1,788 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxICell Interface Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxICell Interface Reference</h1><!-- doxytag: class="com::mxgraph::mxICell" -->
    +<p>Defines the requirements for a cell that can be used in an <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html" title="Implements a graph model. The graph model acts as a wrapper around the cells which...">mxGraphModel</a>.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxICell:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="interfacecom_1_1mxgraph_1_1mxICell.png" usemap="#com::mxgraph::mxICell_map" alt=""/>
    +  <map id="com::mxgraph::mxICell_map" name="com::mxgraph::mxICell_map">
    +<area href="classcom_1_1mxgraph_1_1mxCell.html" alt="com::mxgraph::mxCell" shape="rect" coords="0,56,135,80"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="interfacecom_1_1mxgraph_1_1mxICell-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a734794247296f21c0b2aa729ff35541e">GetTerminal</a> (bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the source or target terminal of the cell.  <a href="#a734794247296f21c0b2aa729ff35541e"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a1f9617dfb062f2388c00b961a8b2bad1">SetTerminal</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> terminal, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the source or target terminal.  <a href="#a1f9617dfb062f2388c00b961a8b2bad1"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a44df3fed3473e1d55bc384e1d5c6468d">ChildCount</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of child cells.  <a href="#a44df3fed3473e1d55bc384e1d5c6468d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a144f5ab6985bdd6cb841fa3a09156ef5">GetIndex</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the index of the specified child in the child array.  <a href="#a144f5ab6985bdd6cb841fa3a09156ef5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a90dc0ac25974c7359e9ad05b045d1190">GetChildAt</a> (int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the child at the specified index.  <a href="#a90dc0ac25974c7359e9ad05b045d1190"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aafa67a81d45b05767470e811300836db">Insert</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Appends the specified child into the child array and updates the parent reference of the child.  <a href="#aafa67a81d45b05767470e811300836db"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa8045711110e26d63178e10e3491ef41">Insert</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> child, int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inserts the specified child into the child array at the specified index and updates the parent reference of the child.  <a href="#aa8045711110e26d63178e10e3491ef41"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa6986d9d010d246e844a4443723f390d">Remove</a> (int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the child at the specified index from the child array and returns the child that was removed. Will remove the parent reference of the child.  <a href="#aa6986d9d010d246e844a4443723f390d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a02a754371b8afc0dba9af484bd05a062">Remove</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the given child from the child array. Will remove the parent reference of the child.  <a href="#a02a754371b8afc0dba9af484bd05a062"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5bf0176d9d12329e4b092633c4022310">RemoveFromParent</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the cell from its parent.  <a href="#a5bf0176d9d12329e4b092633c4022310"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a828788dc75c335c2a073902d23bccd03">EdgeCount</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of edges in the edge array.  <a href="#a828788dc75c335c2a073902d23bccd03"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a55174b508ba695d8dcccaf76b3ef4b4c">GetEdgeIndex</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> edge)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the index of the specified edge in the edge array.  <a href="#a55174b508ba695d8dcccaf76b3ef4b4c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a9f6a89b37ef63dd55f5b859c5a5b44d4">GetEdgeAt</a> (int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the edge at the specified index in the edge array.  <a href="#a9f6a89b37ef63dd55f5b859c5a5b44d4"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5a394317ecfcab21eb6709b388ccf132">InsertEdge</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> edge, bool isOutgoing)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inserts the specified edge into the edge array and returns the edge. Will update the respective terminal reference of the edge.  <a href="#a5a394317ecfcab21eb6709b388ccf132"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a11ea99ed0ab26b204111e23167431273">RemoveEdge</a> (<a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> edge, bool isOutgoing)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the specified edge from the edge array and returns the edge. Will remove the respective terminal reference from the edge.  <a href="#a11ea99ed0ab26b204111e23167431273"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a7bd60ecba9b833e9157d8b330a963182">RemoveFromTerminal</a> (bool isSource)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the edge from its source or target terminal.  <a href="#a7bd60ecba9b833e9157d8b330a963182"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#acd581748b2068e2309253cc70f78aa9e">Clone</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a clone of this cell.  <a href="#acd581748b2068e2309253cc70f78aa9e"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a5ef2d884860acb7b0b1386506a8e8a99">Id</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the Id of the cell.  <a href="#a5ef2d884860acb7b0b1386506a8e8a99"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a0904b5cab7cb4daa0261eac00f37739b">Value</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the user object of the cell.  <a href="#a0904b5cab7cb4daa0261eac00f37739b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a6ec04f5ca6911ce35abed62f342949c3">Geometry</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the geometry of the cell.  <a href="#a6ec04f5ca6911ce35abed62f342949c3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a07ad177f489a0f98a219de8c38383c91">Style</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the string that describes the style.  <a href="#a07ad177f489a0f98a219de8c38383c91"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#addd27dbb6c0c31fefdc7f4b306b7aa69">Vertex</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the cell is a vertex.  <a href="#addd27dbb6c0c31fefdc7f4b306b7aa69"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aadef1ce3fe1dc603d43381b2602d30b5">Edge</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the cell is an edge.  <a href="#aadef1ce3fe1dc603d43381b2602d30b5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#af6db22ef27fd0f9b264ca003f09f07c8">Connectable</a><code> [get]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the cell is connectable.  <a href="#af6db22ef27fd0f9b264ca003f09f07c8"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a172b8415c63a0dc7d7a7b151f1bae849">Visible</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the visible state of the cell.  <a href="#a172b8415c63a0dc7d7a7b151f1bae849"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#aa81ab5ecd3876b35ceae096eba788648">Collapsed</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the collapsed state of the cell.  <a href="#aa81ab5ecd3876b35ceae096eba788648"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html#a46e6502b14270fcc1c470a0f52cdfbb6">Parent</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or returns the parent of the cell.  <a href="#a46e6502b14270fcc1c470a0f52cdfbb6"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Defines the requirements for a cell that can be used in an <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html" title="Implements a graph model. The graph model acts as a wrapper around the cells which...">mxGraphModel</a>. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a44df3fed3473e1d55bc384e1d5c6468d"></a><!-- doxytag: member="com::mxgraph::mxICell::ChildCount" ref="a44df3fed3473e1d55bc384e1d5c6468d" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxICell::ChildCount </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of child cells. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of child cells.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa516a234836e32415529e8ff2f8be92f">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="acd581748b2068e2309253cc70f78aa9e"></a><!-- doxytag: member="com::mxgraph::mxICell::Clone" ref="acd581748b2068e2309253cc70f78aa9e" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxICell::Clone </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns a clone of this cell. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a clone of this cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab1926c27e8b8c97d98a2f6567686101c">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a828788dc75c335c2a073902d23bccd03"></a><!-- doxytag: member="com::mxgraph::mxICell::EdgeCount" ref="a828788dc75c335c2a073902d23bccd03" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxICell::EdgeCount </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of edges in the edge array. </p>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of edges.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab6a337054ab9ba260c8ac7936400ef41">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a90dc0ac25974c7359e9ad05b045d1190"></a><!-- doxytag: member="com::mxgraph::mxICell::GetChildAt" ref="a90dc0ac25974c7359e9ad05b045d1190" args="(int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::GetChildAt </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the child at the specified index. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the child to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child at the specified index.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a8599a87aa169b0ad17f3d36bf2e49973">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a9f6a89b37ef63dd55f5b859c5a5b44d4"></a><!-- doxytag: member="com::mxgraph::mxICell::GetEdgeAt" ref="a9f6a89b37ef63dd55f5b859c5a5b44d4" args="(int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::GetEdgeAt </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the edge at the specified index in the edge array. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index of the edge to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the edge at the specified index.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5fc7a8013b5b155d68d88975bb90da23">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a55174b508ba695d8dcccaf76b3ef4b4c"></a><!-- doxytag: member="com::mxgraph::mxICell::GetEdgeIndex" ref="a55174b508ba695d8dcccaf76b3ef4b4c" args="(mxICell edge)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxICell::GetEdgeIndex </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the index of the specified edge in the edge array. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell whose index should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the index of the given edge.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a453ffcc5de7e2904223a6e6629af95c3">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a144f5ab6985bdd6cb841fa3a09156ef5"></a><!-- doxytag: member="com::mxgraph::mxICell::GetIndex" ref="a144f5ab6985bdd6cb841fa3a09156ef5" args="(mxICell child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxICell::GetIndex </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the index of the specified child in the child array. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Child whose index should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the index of the specified child.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a68dba23f856145c4cd0943aa3f58bce1">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a734794247296f21c0b2aa729ff35541e"></a><!-- doxytag: member="com::mxgraph::mxICell::GetTerminal" ref="a734794247296f21c0b2aa729ff35541e" args="(bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::GetTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the source or target terminal of the cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean that specifies if the source terminal should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the source or target terminal.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a88a090c546cd51e0d249243d209c6b11">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa8045711110e26d63178e10e3491ef41"></a><!-- doxytag: member="com::mxgraph::mxICell::Insert" ref="aa8045711110e26d63178e10e3491ef41" args="(mxICell child, int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::Insert </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>child</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Inserts the specified child into the child array at the specified index and updates the parent reference of the child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell to be inserted into the child array.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index at which the child should be inserted into the child array.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the inserted child.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a2ef296de0e040c680902e314b9b199c0">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aafa67a81d45b05767470e811300836db"></a><!-- doxytag: member="com::mxgraph::mxICell::Insert" ref="aafa67a81d45b05767470e811300836db" args="(mxICell child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::Insert </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Appends the specified child into the child array and updates the parent reference of the child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell to be appended to the child array.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the appended child.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ed5d9b7c09fe2fe55e1c0678a8ddf13">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5a394317ecfcab21eb6709b388ccf132"></a><!-- doxytag: member="com::mxgraph::mxICell::InsertEdge" ref="a5a394317ecfcab21eb6709b388ccf132" args="(mxICell edge, bool isOutgoing)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::InsertEdge </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>isOutgoing</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Inserts the specified edge into the edge array and returns the edge. Will update the respective terminal reference of the edge. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell to be inserted into the edge array.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>isOutgoing</em>&nbsp;</td><td>Boolean that specifies if the edge is outgoing.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the inserted edge.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab46383e5589e5ab052da16f7ad765aad">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a02a754371b8afc0dba9af484bd05a062"></a><!-- doxytag: member="com::mxgraph::mxICell::Remove" ref="a02a754371b8afc0dba9af484bd05a062" args="(mxICell child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::Remove </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the given child from the child array. Will remove the parent reference of the child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td></td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child that was removed.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7913d4ce0c65be899d01e2426db706ef">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa6986d9d010d246e844a4443723f390d"></a><!-- doxytag: member="com::mxgraph::mxICell::Remove" ref="aa6986d9d010d246e844a4443723f390d" args="(int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::Remove </td>
    +          <td>(</td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the child at the specified index from the child array and returns the child that was removed. Will remove the parent reference of the child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index of the child to be removed.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child that was removed.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a79ec0fea93a81fc482020e010faf928c">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a11ea99ed0ab26b204111e23167431273"></a><!-- doxytag: member="com::mxgraph::mxICell::RemoveEdge" ref="a11ea99ed0ab26b204111e23167431273" args="(mxICell edge, bool isOutgoing)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::RemoveEdge </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>isOutgoing</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the specified edge from the edge array and returns the edge. Will remove the respective terminal reference from the edge. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell to be removed from the edge array.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>isOutgoing</em>&nbsp;</td><td>Boolean that specifies if the edge is outgoing.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the edge that was removed.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ab4c1f70e744e50d33a9d6c0174877ead">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5bf0176d9d12329e4b092633c4022310"></a><!-- doxytag: member="com::mxgraph::mxICell::RemoveFromParent" ref="a5bf0176d9d12329e4b092633c4022310" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICell::RemoveFromParent </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the cell from its parent. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9af735a9deb670fc9a65ad69694212ff">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7bd60ecba9b833e9157d8b330a963182"></a><!-- doxytag: member="com::mxgraph::mxICell::RemoveFromTerminal" ref="a7bd60ecba9b833e9157d8b330a963182" args="(bool isSource)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxICell::RemoveFromTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>isSource</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the edge from its source or target terminal. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>isSource</em>&nbsp;</td><td>Boolean that specifies if the edge should be removed from its source or target terminal.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a18eba4e3a1ff29735fcad45439aa340a">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1f9617dfb062f2388c00b961a8b2bad1"></a><!-- doxytag: member="com::mxgraph::mxICell::SetTerminal" ref="a1f9617dfb062f2388c00b961a8b2bad1" args="(mxICell terminal, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::SetTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a>&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the source or target terminal. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td>Cell that represents the new source or target terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean that specifies if the source or target terminal should be set.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the new terminal.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a538315083698deeeaad366624ea83dd8">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="aa81ab5ecd3876b35ceae096eba788648"></a><!-- doxytag: member="com::mxgraph::mxICell::Collapsed" ref="aa81ab5ecd3876b35ceae096eba788648" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxICell::Collapsed<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the collapsed state of the cell. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aca613934c56c8f69cb432db7faf19bf6">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af6db22ef27fd0f9b264ca003f09f07c8"></a><!-- doxytag: member="com::mxgraph::mxICell::Connectable" ref="af6db22ef27fd0f9b264ca003f09f07c8" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxICell::Connectable<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the cell is connectable. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a47d8ff40770b1bdd107de01b61399087">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aadef1ce3fe1dc603d43381b2602d30b5"></a><!-- doxytag: member="com::mxgraph::mxICell::Edge" ref="aadef1ce3fe1dc603d43381b2602d30b5" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxICell::Edge<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the cell is an edge. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#ae63470bb0cce48a707ef1755403628bc">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6ec04f5ca6911ce35abed62f342949c3"></a><!-- doxytag: member="com::mxgraph::mxICell::Geometry" ref="a6ec04f5ca6911ce35abed62f342949c3" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> com::mxgraph::mxICell::Geometry<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the geometry of the cell. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a087a9707e46db471c5bfd382728a73ec">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5ef2d884860acb7b0b1386506a8e8a99"></a><!-- doxytag: member="com::mxgraph::mxICell::Id" ref="a5ef2d884860acb7b0b1386506a8e8a99" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxICell::Id<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the Id of the cell. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a163926756b42d66b33db6bf6fa15b0e4">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a46e6502b14270fcc1c470a0f52cdfbb6"></a><!-- doxytag: member="com::mxgraph::mxICell::Parent" ref="a46e6502b14270fcc1c470a0f52cdfbb6" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="interfacecom_1_1mxgraph_1_1mxICell.html">mxICell</a> com::mxgraph::mxICell::Parent<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the parent of the cell. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#aa2e16e11504aca0ff7d83699b801fd11">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a07ad177f489a0f98a219de8c38383c91"></a><!-- doxytag: member="com::mxgraph::mxICell::Style" ref="a07ad177f489a0f98a219de8c38383c91" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxICell::Style<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the string that describes the style. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a7ec99d9ad8df482d8cf649047fb9dc8e">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a0904b5cab7cb4daa0261eac00f37739b"></a><!-- doxytag: member="com::mxgraph::mxICell::Value" ref="a0904b5cab7cb4daa0261eac00f37739b" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxICell::Value<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the user object of the cell. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a5ad4a37116bc172cf16d7956551606ac">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="addd27dbb6c0c31fefdc7f4b306b7aa69"></a><!-- doxytag: member="com::mxgraph::mxICell::Vertex" ref="addd27dbb6c0c31fefdc7f4b306b7aa69" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxICell::Vertex<code> [get]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the cell is a vertex. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a9587ee53135f8ed718b8c3f6d65d68cc">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a172b8415c63a0dc7d7a7b151f1bae849"></a><!-- doxytag: member="com::mxgraph::mxICell::Visible" ref="a172b8415c63a0dc7d7a7b151f1bae849" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxICell::Visible<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets or returns the visible state of the cell. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxCell.html#a4ff3745efccdf976c50c60440110384e">com::mxgraph::mxCell</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this interface was generated from the following file:<ul>
    +<li>src/model/mxICell.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICell.png b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICell.png
    new file mode 100644
    index 000000000..df34a39e7
    Binary files /dev/null and b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxICell.png differ
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphLayout-members.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphLayout-members.html
    new file mode 100644
    index 000000000..e4e45a70c
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphLayout-members.html
    @@ -0,0 +1,36 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxIGraphLayout Member List</h1>This is the complete list of members for <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html">com::mxgraph::mxIGraphLayout</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#a02f76b81716fa481fa9758cebb9f3c57">execute</a>(Object parent)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html">com::mxgraph::mxIGraphLayout</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#aa7f61ebc0e14a39947ae016393501309">move</a>(Object cell, double x, double y)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html">com::mxgraph::mxIGraphLayout</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphLayout.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphLayout.html
    new file mode 100644
    index 000000000..4b7f54967
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphLayout.html
    @@ -0,0 +1,136 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxIGraphLayout Interface Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html">mxIGraphLayout</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxIGraphLayout Interface Reference</h1><!-- doxytag: class="com::mxgraph::mxIGraphLayout" -->
    +<p>Defines the requirements for an object that implements a graph layout.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxIGraphLayout:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="interfacecom_1_1mxgraph_1_1mxIGraphLayout.png" usemap="#com::mxgraph::mxIGraphLayout_map" alt=""/>
    +  <map id="com::mxgraph::mxIGraphLayout_map" name="com::mxgraph::mxIGraphLayout_map">
    +<area href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html" alt="com::mxgraph::mxFastOrganicLayout" shape="rect" coords="0,56,218,80"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="interfacecom_1_1mxgraph_1_1mxIGraphLayout-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#a02f76b81716fa481fa9758cebb9f3c57">execute</a> (Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Executes the layout for the children of the specified parent.  <a href="#a02f76b81716fa481fa9758cebb9f3c57"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphLayout.html#aa7f61ebc0e14a39947ae016393501309">move</a> (Object cell, double x, double y)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg. index) so that the outcome of the layout will position the vertex as close to the point (x, y) as possible.  <a href="#aa7f61ebc0e14a39947ae016393501309"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Defines the requirements for an object that implements a graph layout. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="a02f76b81716fa481fa9758cebb9f3c57"></a><!-- doxytag: member="com::mxgraph::mxIGraphLayout::execute" ref="a02f76b81716fa481fa9758cebb9f3c57" args="(Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxIGraphLayout::execute </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Executes the layout for the children of the specified parent. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Parent cell that contains the children to be layed out.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#af9dae378277ec3bd6c780e66e653b127">com::mxgraph::mxFastOrganicLayout</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aa7f61ebc0e14a39947ae016393501309"></a><!-- doxytag: member="com::mxgraph::mxIGraphLayout::move" ref="aa7f61ebc0e14a39947ae016393501309" args="(Object cell, double x, double y)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxIGraphLayout::move </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>x</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">double&nbsp;</td>
    +          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg. index) so that the outcome of the layout will position the vertex as close to the point (x, y) as possible. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell which is being moved.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>X-coordinate of the new cell location.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y-coordinate of the new cell location.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxFastOrganicLayout.html#a3a6d6b7697d013125bef0acaadd7d179">com::mxgraph::mxFastOrganicLayout</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this interface was generated from the following file:<ul>
    +<li>src/layout/mxIGraphLayout.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphLayout.png b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphLayout.png
    new file mode 100644
    index 000000000..efadd2660
    Binary files /dev/null and b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphLayout.png differ
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphModel-members.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphModel-members.html
    new file mode 100644
    index 000000000..a706bf71d
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphModel-members.html
    @@ -0,0 +1,63 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: Member List</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxIGraphModel Member List</h1>This is the complete list of members for <a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a>, including all inherited members.<table>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ab18ea07aec23bfbce6c7489269c0985c">Add</a>(Object parent, Object child, int index)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a201180e5435be27e37666fe724cb810b">BeginUpdate</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a6457526895ee16775a43819bbdc3b713">CloneCells</a>(Object[] cells, bool includeChildren)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a831a9721313f6770e6af7dc418d9ee39">Contains</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ac0f0b916828467fbcde0e140f5384da3">EndUpdate</a>()</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a34bc3935f8286a91f53a32fd20da8288">GetChildAt</a>(Object parent, int index)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff7c4cd19bcb91cd264bcb586ccc37b0">GetChildCount</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ae2824a854e3533480e819f9056e4bb91">GetEdgeAt</a>(Object cell, int index)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d58a0dafc0e77a7a3f207f5815ef245">GetEdgeCount</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad79ee951c1a46d126d1f714bd77b5331">GetGeometry</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af29849ffb09c0e0b75e77bda332f4d31">GetParent</a>(Object child)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad63404d0f7af96acee601960b8cc4963">GetStyle</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a1d8a16d05ca148439990b10f3c6a27c5">GetTerminal</a>(Object edge, bool source)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a77a36629de99d4d6a14236ed0c1666e3">GetValue</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a26dacf83c2ca35265f1f667b4d94adf0">GraphModelChange</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a57eec23a248ff711df8aa868f2228640">IsAncestor</a>(Object parent, Object child)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a18315c42e0fe1cc594a956342c2dda9a">IsCollapsed</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a3db1b6eda5906acbb5114361c91968c0">IsConnectable</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff2fb4b36db5ee3a101feba394436b86">IsEdge</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af30f07add01ec93144ffc00d843828fc">IsVertex</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d6b5254a9a124ef7e82b49eb9d4209b">IsVisible</a>(Object cell)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a7c47f2459ce0dcdae38c35afa4ed1ffc">Remove</a>(Object parent)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a42b487c0d42d77170d5c0ce002a0a2ca">Root</a></td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a5ea04a022893866cffcbb53044c5171c">SetCollapsed</a>(Object cell, bool collapsed)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a80f4bfe3ebd152ee3d77ec20a70bcc9d">SetGeometry</a>(Object cell, mxGeometry geometry)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a960ffa631d4199d149b4e889b480db48">SetStyle</a>(Object cell, string style)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a74a5bb3bea62d4c8382f15a323d326dc">SetTerminal</a>(Object edge, Object terminal, bool source)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#afd9cac91d73998f8457285bae5c95689">SetValue</a>(Object cell, Object value)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +  <tr class="memlist"><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a681fede1578933f051041b3ba4f01129">SetVisible</a>(Object cell, bool visible)</td><td><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">com::mxgraph::mxIGraphModel</a></td><td></td></tr>
    +</table></div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphModel.html b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphModel.html
    new file mode 100644
    index 000000000..5e2e9c10c
    --- /dev/null
    +++ b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphModel.html
    @@ -0,0 +1,1050 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml">
    +<head>
    +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    +<title>mxGraph: com::mxgraph::mxIGraphModel Interface Reference</title>
    +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    +<link href="doxygen.css" rel="stylesheet" type="text/css"/>
    +</head>
    +<body>
    +<!-- Generated by Doxygen 1.6.3 -->
    +<div class="navigation" id="top">
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    +      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    +      <li><a href="dirs.html"><span>Directories</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="tabs">
    +    <ul>
    +      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    +      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    +      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    +    </ul>
    +  </div>
    +  <div class="navpath"><b>com</b>::<b>mxgraph</b>::<a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html">mxIGraphModel</a>
    +  </div>
    +</div>
    +<div class="contents">
    +<h1>com::mxgraph::mxIGraphModel Interface Reference</h1><!-- doxytag: class="com::mxgraph::mxIGraphModel" -->
    +<p>Defines the requirements for a graph model to be used with <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a>.  
    +<a href="#_details">More...</a></p>
    +<div class="dynheader">
    +Inheritance diagram for com::mxgraph::mxIGraphModel:</div>
    +<div class="dynsection">
    + <div class="center">
    +  <img src="interfacecom_1_1mxgraph_1_1mxIGraphModel.png" usemap="#com::mxgraph::mxIGraphModel_map" alt=""/>
    +  <map id="com::mxgraph::mxIGraphModel_map" name="com::mxgraph::mxIGraphModel_map">
    +<area href="classcom_1_1mxgraph_1_1mxGraphModel.html" alt="com::mxgraph::mxGraphModel" shape="rect" coords="0,56,183,80"/>
    +</map>
    + </div>
    +</div>
    +
    +<p><a href="interfacecom_1_1mxgraph_1_1mxIGraphModel-members.html">List of all members.</a></p>
    +<table border="0" cellpadding="0" cellspacing="0">
    +<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a6457526895ee16775a43819bbdc3b713">CloneCells</a> (Object[] cells, bool includeChildren)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an array of clones for the given array of cells. Depending on the value of includeChildren, a deep clone is created for each cell. Connections are restored based if the corresponding cell is contained in the passed in array.  <a href="#a6457526895ee16775a43819bbdc3b713"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a57eec23a248ff711df8aa868f2228640">IsAncestor</a> (Object parent, Object child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given parent is an ancestor of child.  <a href="#a57eec23a248ff711df8aa868f2228640"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a831a9721313f6770e6af7dc418d9ee39">Contains</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the model contains the given cell.  <a href="#a831a9721313f6770e6af7dc418d9ee39"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af29849ffb09c0e0b75e77bda332f4d31">GetParent</a> (Object child)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the parent of the given cell.  <a href="#af29849ffb09c0e0b75e77bda332f4d31"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ab18ea07aec23bfbce6c7489269c0985c">Add</a> (Object parent, Object child, int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the specified child to the parent at the given index. If no index is specified then the child is appended to the parent's array of children.  <a href="#ab18ea07aec23bfbce6c7489269c0985c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a7c47f2459ce0dcdae38c35afa4ed1ffc">Remove</a> (Object parent)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes the specified cell from the model. This operation will remove the cell and all of its children from the model.  <a href="#a7c47f2459ce0dcdae38c35afa4ed1ffc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff7c4cd19bcb91cd264bcb586ccc37b0">GetChildCount</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of children in the given cell.  <a href="#aff7c4cd19bcb91cd264bcb586ccc37b0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a34bc3935f8286a91f53a32fd20da8288">GetChildAt</a> (Object parent, int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the child of the given parent at the given index.  <a href="#a34bc3935f8286a91f53a32fd20da8288"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a1d8a16d05ca148439990b10f3c6a27c5">GetTerminal</a> (Object edge, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the source or target terminal of the given edge depending on the value of the boolean parameter.  <a href="#a1d8a16d05ca148439990b10f3c6a27c5"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a74a5bb3bea62d4c8382f15a323d326dc">SetTerminal</a> (Object edge, Object terminal, bool source)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the source or target terminal of the given edge using.  <a href="#a74a5bb3bea62d4c8382f15a323d326dc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d58a0dafc0e77a7a3f207f5815ef245">GetEdgeCount</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of distinct edges connected to the given cell.  <a href="#a8d58a0dafc0e77a7a3f207f5815ef245"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ae2824a854e3533480e819f9056e4bb91">GetEdgeAt</a> (Object cell, int index)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the edge of cell at the given index.  <a href="#ae2824a854e3533480e819f9056e4bb91"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#af30f07add01ec93144ffc00d843828fc">IsVertex</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is a vertex.  <a href="#af30f07add01ec93144ffc00d843828fc"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#aff2fb4b36db5ee3a101feba394436b86">IsEdge</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is an edge.  <a href="#aff2fb4b36db5ee3a101feba394436b86"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a3db1b6eda5906acbb5114361c91968c0">IsConnectable</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is connectable.  <a href="#a3db1b6eda5906acbb5114361c91968c0"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a77a36629de99d4d6a14236ed0c1666e3">GetValue</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the user object of the given cell.  <a href="#a77a36629de99d4d6a14236ed0c1666e3"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#afd9cac91d73998f8457285bae5c95689">SetValue</a> (Object cell, Object value)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the user object of then given cell.  <a href="#afd9cac91d73998f8457285bae5c95689"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad79ee951c1a46d126d1f714bd77b5331">GetGeometry</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the geometry of the given cell.  <a href="#ad79ee951c1a46d126d1f714bd77b5331"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a80f4bfe3ebd152ee3d77ec20a70bcc9d">SetGeometry</a> (Object cell, <a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> geometry)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the geometry of the given cell.  <a href="#a80f4bfe3ebd152ee3d77ec20a70bcc9d"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ad63404d0f7af96acee601960b8cc4963">GetStyle</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the style of the given cell.  <a href="#ad63404d0f7af96acee601960b8cc4963"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a960ffa631d4199d149b4e889b480db48">SetStyle</a> (Object cell, string style)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the style of the given cell.  <a href="#a960ffa631d4199d149b4e889b480db48"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a18315c42e0fe1cc594a956342c2dda9a">IsCollapsed</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is collapsed.  <a href="#a18315c42e0fe1cc594a956342c2dda9a"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a5ea04a022893866cffcbb53044c5171c">SetCollapsed</a> (Object cell, bool collapsed)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the collapsed state of the given cell.  <a href="#a5ea04a022893866cffcbb53044c5171c"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a8d6b5254a9a124ef7e82b49eb9d4209b">IsVisible</a> (Object cell)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the given cell is visible.  <a href="#a8d6b5254a9a124ef7e82b49eb9d4209b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a681fede1578933f051041b3ba4f01129">SetVisible</a> (Object cell, bool visible)</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the visible state of the given cell.  <a href="#a681fede1578933f051041b3ba4f01129"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a201180e5435be27e37666fe724cb810b">BeginUpdate</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increments the updateLevel by one. The event notification is queued until updateLevel reaches 0 by use of endUpdate.  <a href="#a201180e5435be27e37666fe724cb810b"></a><br/></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#ac0f0b916828467fbcde0e140f5384da3">EndUpdate</a> ()</td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decrements the updateLevel by one and fires a notification event if the updateLevel reaches 0.  <a href="#ac0f0b916828467fbcde0e140f5384da3"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Properties</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">Object&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a42b487c0d42d77170d5c0ce002a0a2ca">Root</a><code> [get, set]</code></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds the root cell.  <a href="#a42b487c0d42d77170d5c0ce002a0a2ca"></a><br/></td></tr>
    +<tr><td colspan="2"><h2>Events</h2></td></tr>
    +<tr><td class="memItemLeft" align="right" valign="top">mxGraphModelChangeEventHandler&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacecom_1_1mxgraph_1_1mxIGraphModel.html#a26dacf83c2ca35265f1f667b4d94adf0">GraphModelChange</a></td></tr>
    +<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called when the graph model has changed.  <a href="#a26dacf83c2ca35265f1f667b4d94adf0"></a><br/></td></tr>
    +</table>
    +<hr/><a name="_details"></a><h2>Detailed Description</h2>
    +<p>Defines the requirements for a graph model to be used with <a class="el" href="classcom_1_1mxgraph_1_1mxGraph.html" title="Implements a graph object that allows to create diagrams from a graph model and stylesheet...">mxGraph</a>. </p>
    +<hr/><h2>Member Function Documentation</h2>
    +<a class="anchor" id="ab18ea07aec23bfbce6c7489269c0985c"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::Add" ref="ab18ea07aec23bfbce6c7489269c0985c" args="(Object parent, Object child, int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::Add </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>child</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Adds the specified child to the parent at the given index. If no index is specified then the child is appended to the parent's array of children. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell that specifies the parent to contain the child.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell that specifies the child to be inserted.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index of the child.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the inserted child.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a6a9df7876d2ca6179d58a9b3be663a1c">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a201180e5435be27e37666fe724cb810b"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::BeginUpdate" ref="a201180e5435be27e37666fe724cb810b" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxIGraphModel::BeginUpdate </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Increments the updateLevel by one. The event notification is queued until updateLevel reaches 0 by use of endUpdate. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ab56861ed391e6f4a47ecc2f844a5d02d">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a6457526895ee16775a43819bbdc3b713"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::CloneCells" ref="a6457526895ee16775a43819bbdc3b713" args="(Object[] cells, bool includeChildren)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object [] com::mxgraph::mxIGraphModel::CloneCells </td>
    +          <td>(</td>
    +          <td class="paramtype">Object[]&nbsp;</td>
    +          <td class="paramname"> <em>cells</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>includeChildren</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns an array of clones for the given array of cells. Depending on the value of includeChildren, a deep clone is created for each cell. Connections are restored based if the corresponding cell is contained in the passed in array. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cells</em>&nbsp;</td><td>Array of cells to be cloned.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>includeChildren</em>&nbsp;</td><td>Boolean indicating if the cells should be cloned with all descendants.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns a cloned array of cells.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#adb5ffb8b1a05c3c77b26a04f06594a29">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a831a9721313f6770e6af7dc418d9ee39"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::Contains" ref="a831a9721313f6770e6af7dc418d9ee39" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxIGraphModel::Contains </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the model contains the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell to be checked.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the cell is in the model.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aa9ba8b0716a8662bcedbdfb56166b4af">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ac0f0b916828467fbcde0e140f5384da3"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::EndUpdate" ref="ac0f0b916828467fbcde0e140f5384da3" args="()" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">void com::mxgraph::mxIGraphModel::EndUpdate </td>
    +          <td>(</td>
    +          <td class="paramname"></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Decrements the updateLevel by one and fires a notification event if the updateLevel reaches 0. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaf217675b10e484a5579be55ca97d402">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a34bc3935f8286a91f53a32fd20da8288"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GetChildAt" ref="a34bc3935f8286a91f53a32fd20da8288" args="(Object parent, int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::GetChildAt </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the child of the given parent at the given index. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell that represents the parent.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index of the child to be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the child at index in parent.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a68c9439005fe5fb515743065bf555f57">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aff7c4cd19bcb91cd264bcb586ccc37b0"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GetChildCount" ref="aff7c4cd19bcb91cd264bcb586ccc37b0" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxIGraphModel::GetChildCount </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of children in the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose number of children should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of children in the given cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a29a48f5ced94431792f2d476bb154c4e">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ae2824a854e3533480e819f9056e4bb91"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GetEdgeAt" ref="ae2824a854e3533480e819f9056e4bb91" args="(Object cell, int index)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::GetEdgeAt </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">int&nbsp;</td>
    +          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the edge of cell at the given index. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell that specifies the vertex.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Integer that specifies the index of the edge to return.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the edge at the given index.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a5d0e2e8782724472c7aef4257730e075">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8d58a0dafc0e77a7a3f207f5815ef245"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GetEdgeCount" ref="a8d58a0dafc0e77a7a3f207f5815ef245" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">int com::mxgraph::mxIGraphModel::GetEdgeCount </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the number of distinct edges connected to the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell that represents the vertex.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of edges connected to cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aaeec9051d010a0f4e94d83e15ecad4ee">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad79ee951c1a46d126d1f714bd77b5331"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GetGeometry" ref="ad79ee951c1a46d126d1f714bd77b5331" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> com::mxgraph::mxIGraphModel::GetGeometry </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the geometry of the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose geometry should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the geometry of the given cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8d4e41dafd2e678786375489e3a7c2c6">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af29849ffb09c0e0b75e77bda332f4d31"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GetParent" ref="af29849ffb09c0e0b75e77bda332f4d31" args="(Object child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::GetParent </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the parent of the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell whose parent should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the parent of the given cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a49cfdcb77a6fd6882c643c325e3d914b">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="ad63404d0f7af96acee601960b8cc4963"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GetStyle" ref="ad63404d0f7af96acee601960b8cc4963" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxIGraphModel::GetStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the style of the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose style should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the style of the given cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a21d37523be9a952040d58b9ea968a43e">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a1d8a16d05ca148439990b10f3c6a27c5"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GetTerminal" ref="a1d8a16d05ca148439990b10f3c6a27c5" args="(Object edge, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::GetTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the source or target terminal of the given edge depending on the value of the boolean parameter. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell that specifies the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean indicating which end of the edge should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the source or target of the given edge.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a8fd2e93ac9f300a20140a828eecbfbac">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a77a36629de99d4d6a14236ed0c1666e3"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GetValue" ref="a77a36629de99d4d6a14236ed0c1666e3" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::GetValue </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns the user object of the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose user object should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the user object of the given cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#aafb18bf952de87baba5a3453e222677b">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a57eec23a248ff711df8aa868f2228640"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::IsAncestor" ref="a57eec23a248ff711df8aa868f2228640" args="(Object parent, Object child)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxIGraphModel::IsAncestor </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>child</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given parent is an ancestor of child. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell that specifies the parent.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>Cell that specifies the child.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if child is an ancestor of parent.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad07cda5ced546c2b04a34120a779c8ca">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a18315c42e0fe1cc594a956342c2dda9a"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::IsCollapsed" ref="a18315c42e0fe1cc594a956342c2dda9a" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxIGraphModel::IsCollapsed </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is collapsed. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose collapsed state should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the collapsed state of the given cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a20cd81d1e947de7224b1b9477aaf9014">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a3db1b6eda5906acbb5114361c91968c0"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::IsConnectable" ref="a3db1b6eda5906acbb5114361c91968c0" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxIGraphModel::IsConnectable </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is connectable. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose connectable state should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the connectable state of the given cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#afd31c7bec1b0dd657cfd9a6f638a9a20">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="aff2fb4b36db5ee3a101feba394436b86"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::IsEdge" ref="aff2fb4b36db5ee3a101feba394436b86" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxIGraphModel::IsEdge </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is an edge. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell that represents the possible edge.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the given cell is an edge.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3ef44b271e5419fb4a5c6997cb78f26d">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="af30f07add01ec93144ffc00d843828fc"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::IsVertex" ref="af30f07add01ec93144ffc00d843828fc" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxIGraphModel::IsVertex </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is a vertex. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell that represents the possible vertex.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the given cell is a vertex.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ae0421f7bbf1eeb7b1363ad00274b4eb4">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a8d6b5254a9a124ef7e82b49eb9d4209b"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::IsVisible" ref="a8d6b5254a9a124ef7e82b49eb9d4209b" args="(Object cell)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxIGraphModel::IsVisible </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Returns true if the given cell is visible. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose visible state should be returned.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the visible state of the given cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a4cb43b44cd6b8c48b48b6c16e82f3d07">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a7c47f2459ce0dcdae38c35afa4ed1ffc"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::Remove" ref="a7c47f2459ce0dcdae38c35afa4ed1ffc" args="(Object parent)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::Remove </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>parent</em></td>
    +          <td>&nbsp;)&nbsp;</td>
    +          <td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Removes the specified cell from the model. This operation will remove the cell and all of its children from the model. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>Cell that should be removed.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the removed cell.</dd></dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a3db316aa8f0a092e8a93a75235c6a24f">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a5ea04a022893866cffcbb53044c5171c"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::SetCollapsed" ref="a5ea04a022893866cffcbb53044c5171c" args="(Object cell, bool collapsed)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxIGraphModel::SetCollapsed </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>collapsed</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the collapsed state of the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose collapsed state should be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>collapsed</em>&nbsp;</td><td>Boolean that specifies the new collpased state.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a05f6ea80a4577097b2614fc8e98b06d2">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a80f4bfe3ebd152ee3d77ec20a70bcc9d"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::SetGeometry" ref="a80f4bfe3ebd152ee3d77ec20a70bcc9d" args="(Object cell, mxGeometry geometry)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a> com::mxgraph::mxIGraphModel::SetGeometry </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype"><a class="el" href="classcom_1_1mxgraph_1_1mxGeometry.html">mxGeometry</a>&nbsp;</td>
    +          <td class="paramname"> <em>geometry</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the geometry of the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose geometry should be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>geometry</em>&nbsp;</td><td>Object that defines the new geometry.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a78ccddb2f444c5eb701916d9ca052028">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a960ffa631d4199d149b4e889b480db48"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::SetStyle" ref="a960ffa631d4199d149b4e889b480db48" args="(Object cell, string style)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">string com::mxgraph::mxIGraphModel::SetStyle </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">string&nbsp;</td>
    +          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the style of the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose style should be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>String of the form stylename[;key=value] to specify the new cell style.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a93a1ced4d1eed980881c3223b5b34b03">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a74a5bb3bea62d4c8382f15a323d326dc"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::SetTerminal" ref="a74a5bb3bea62d4c8382f15a323d326dc" args="(Object edge, Object terminal, bool source)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::SetTerminal </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>edge</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>terminal</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the source or target terminal of the given edge using. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>edge</em>&nbsp;</td><td>Cell that specifies the edge.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>terminal</em>&nbsp;</td><td>Cell that specifies the new terminal.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Boolean indicating if the terminal is the new source or target terminal of the edge.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0285540160fcf7de39a997c6f6a201ff">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="afd9cac91d73998f8457285bae5c95689"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::SetValue" ref="afd9cac91d73998f8457285bae5c95689" args="(Object cell, Object value)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::SetValue </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the user object of then given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose user object should be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Object that defines the new user object.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a73ee199d8b3dd322e97eb4fb07ca407f">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<a class="anchor" id="a681fede1578933f051041b3ba4f01129"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::SetVisible" ref="a681fede1578933f051041b3ba4f01129" args="(Object cell, bool visible)" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">bool com::mxgraph::mxIGraphModel::SetVisible </td>
    +          <td>(</td>
    +          <td class="paramtype">Object&nbsp;</td>
    +          <td class="paramname"> <em>cell</em>, </td>
    +        </tr>
    +        <tr>
    +          <td class="paramkey"></td>
    +          <td></td>
    +          <td class="paramtype">bool&nbsp;</td>
    +          <td class="paramname"> <em>visible</em></td><td>&nbsp;</td>
    +        </tr>
    +        <tr>
    +          <td></td>
    +          <td>)</td>
    +          <td></td><td></td><td></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Sets the visible state of the given cell. </p>
    +<dl><dt><b>Parameters:</b></dt><dd>
    +  <table border="0" cellspacing="2" cellpadding="0">
    +    <tr><td valign="top"></td><td valign="top"><em>cell</em>&nbsp;</td><td>Cell whose visible state should be changed.</td></tr>
    +    <tr><td valign="top"></td><td valign="top"><em>visible</em>&nbsp;</td><td>Boolean that specifies the new visible state.</td></tr>
    +  </table>
    +  </dd>
    +</dl>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#ad3c76b19d99dd08f2f5aa96e8e1ba52b">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Property Documentation</h2>
    +<a class="anchor" id="a42b487c0d42d77170d5c0ce002a0a2ca"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::Root" ref="a42b487c0d42d77170d5c0ce002a0a2ca" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">Object com::mxgraph::mxIGraphModel::Root<code> [get, set]</code></td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Holds the root cell. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a1e682481294b64ba2e7859da9760008e">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<hr/><h2>Event Documentation</h2>
    +<a class="anchor" id="a26dacf83c2ca35265f1f667b4d94adf0"></a><!-- doxytag: member="com::mxgraph::mxIGraphModel::GraphModelChange" ref="a26dacf83c2ca35265f1f667b4d94adf0" args="" -->
    +<div class="memitem">
    +<div class="memproto">
    +      <table class="memname">
    +        <tr>
    +          <td class="memname">mxGraphModelChangeEventHandler com::mxgraph::mxIGraphModel::GraphModelChange</td>
    +        </tr>
    +      </table>
    +</div>
    +<div class="memdoc">
    +
    +<p>Called when the graph model has changed. </p>
    +
    +<p>Implemented in <a class="el" href="classcom_1_1mxgraph_1_1mxGraphModel.html#a0d3f6bf19b8c13b0d1445d3d4adf9b6e">com::mxgraph::mxGraphModel</a>.</p>
    +
    +</div>
    +</div>
    +<hr/>The documentation for this interface was generated from the following file:<ul>
    +<li>src/model/mxIGraphModel.cs</li>
    +</ul>
    +</div>
    +<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 21 08:06:18 2012 for mxGraph by&nbsp;
    +<a href="http://www.doxygen.org/index.html">
    +<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
    +</body>
    +</html>
    diff --git a/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphModel.png b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphModel.png
    new file mode 100644
    index 000000000..77d77dae5
    Binary files /dev/null and b/dotnet/docs/html/interfacecom_1_1mxgraph_1_1mxIGraphModel.png differ
    diff --git a/dotnet/docs/html/tab_b.gif b/dotnet/docs/html/tab_b.gif
    new file mode 100644
    index 000000000..0d623483f
    Binary files /dev/null and b/dotnet/docs/html/tab_b.gif differ
    diff --git a/dotnet/docs/html/tab_l.gif b/dotnet/docs/html/tab_l.gif
    new file mode 100644
    index 000000000..9b1e6337c
    Binary files /dev/null and b/dotnet/docs/html/tab_l.gif differ
    diff --git a/dotnet/docs/html/tab_r.gif b/dotnet/docs/html/tab_r.gif
    new file mode 100644
    index 000000000..ce9dd9f53
    Binary files /dev/null and b/dotnet/docs/html/tab_r.gif differ
    diff --git a/dotnet/docs/html/tabs.css b/dotnet/docs/html/tabs.css
    new file mode 100644
    index 000000000..a44416341
    --- /dev/null
    +++ b/dotnet/docs/html/tabs.css
    @@ -0,0 +1,105 @@
    +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
    +
    +DIV.tabs
    +{
    +   float            : left;
    +   width            : 100%;
    +   background       : url("tab_b.gif") repeat-x bottom;
    +   margin-bottom    : 4px;
    +}
    +
    +DIV.tabs UL
    +{
    +   margin           : 0px;
    +   padding-left     : 10px;
    +   list-style       : none;
    +}
    +
    +DIV.tabs LI, DIV.tabs FORM
    +{
    +   display          : inline;
    +   margin           : 0px;
    +   padding          : 0px;
    +}
    +
    +DIV.tabs FORM
    +{
    +   float            : right;
    +}
    +
    +DIV.tabs A
    +{
    +   float            : left;
    +   background       : url("tab_r.gif") no-repeat right top;
    +   border-bottom    : 1px solid #84B0C7;
    +   font-size        : 80%;
    +   font-weight      : bold;
    +   text-decoration  : none;
    +}
    +
    +DIV.tabs A:hover
    +{
    +   background-position: 100% -150px;
    +}
    +
    +DIV.tabs A:link, DIV.tabs A:visited,
    +DIV.tabs A:active, DIV.tabs A:hover
    +{
    +       color: #1A419D;
    +}
    +
    +DIV.tabs SPAN
    +{
    +   float            : left;
    +   display          : block;
    +   background       : url("tab_l.gif") no-repeat left top;
    +   padding          : 5px 9px;
    +   white-space      : nowrap;
    +}
    +
    +DIV.tabs #MSearchBox
    +{
    +   float            : right;
    +   display          : inline;
    +   font-size        : 1em;
    +}
    +
    +DIV.tabs TD
    +{
    +   font-size        : 80%;
    +   font-weight      : bold;
    +   text-decoration  : none;
    +}
    +
    +
    +
    +/* Commented Backslash Hack hides rule from IE5-Mac \*/
    +DIV.tabs SPAN {float : none;}
    +/* End IE5-Mac hack */
    +
    +DIV.tabs A:hover SPAN
    +{
    +   background-position: 0% -150px;
    +}
    +
    +DIV.tabs LI.current A
    +{
    +   background-position: 100% -150px;
    +   border-width     : 0px;
    +}
    +
    +DIV.tabs LI.current SPAN
    +{
    +   background-position: 0% -150px;
    +   padding-bottom   : 6px;
    +}
    +
    +DIV.navpath
    +{
    +   background       : none;
    +   border           : none;
    +   border-bottom    : 1px solid #84B0C7;
    +   text-align       : center;
    +   margin           : 2px;
    +   padding          : 2px;
    +}
    diff --git a/dotnet/examples/Properties/AssemblyInfo.cs b/dotnet/examples/Properties/AssemblyInfo.cs
    new file mode 100644
    index 000000000..423e6118d
    --- /dev/null
    +++ b/dotnet/examples/Properties/AssemblyInfo.cs
    @@ -0,0 +1,36 @@
    +using System.Reflection;
    +using System.Runtime.CompilerServices;
    +using System.Runtime.InteropServices;
    +
    +// General Information about an assembly is controlled through the following 
    +// set of attributes. Change these attribute values to modify the information
    +// associated with an assembly.
    +[assembly: AssemblyTitle("examples")]
    +[assembly: AssemblyDescription("")]
    +[assembly: AssemblyConfiguration("")]
    +[assembly: AssemblyCompany("Microsoft")]
    +[assembly: AssemblyProduct("examples")]
    +[assembly: AssemblyCopyright("Copyright © Microsoft 2009")]
    +[assembly: AssemblyTrademark("")]
    +[assembly: AssemblyCulture("")]
    +
    +// Setting ComVisible to false makes the types in this assembly not visible 
    +// to COM components.  If you need to access a type in this assembly from 
    +// COM, set the ComVisible attribute to true on that type.
    +[assembly: ComVisible(false)]
    +
    +// The following GUID is for the ID of the typelib if this project is exposed to COM
    +[assembly: Guid("a0b07bc3-1b9f-4790-8edc-5d4559b8f2e5")]
    +
    +// Version information for an assembly consists of the following four values:
    +//
    +//      Major Version
    +//      Minor Version 
    +//      Build Number
    +//      Revision
    +//
    +// You can specify all the values or you can default the Build and Revision Numbers 
    +// by using the '*' as shown below:
    +// [assembly: AssemblyVersion("1.0.*")]
    +[assembly: AssemblyVersion("1.0.0.0")]
    +[assembly: AssemblyFileVersion("1.0.0.0")]
    diff --git a/dotnet/examples/examples.csproj b/dotnet/examples/examples.csproj
    new file mode 100644
    index 000000000..aa8313f8a
    --- /dev/null
    +++ b/dotnet/examples/examples.csproj
    @@ -0,0 +1,74 @@
    +<?xml version="1.0" encoding="utf-8"?>
    +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    +  <PropertyGroup>
    +    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    +    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    +    <ProductVersion>9.0.30729</ProductVersion>
    +    <SchemaVersion>2.0</SchemaVersion>
    +    <ProjectGuid>{C10B6142-CE9A-4391-A1B0-422B562D5C7D}</ProjectGuid>
    +    <OutputType>WinExe</OutputType>
    +    <AppDesignerFolder>Properties</AppDesignerFolder>
    +    <RootNamespace>examples</RootNamespace>
    +    <AssemblyName>examples</AssemblyName>
    +    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    +    <FileAlignment>512</FileAlignment>
    +    <StartupObject>examples.GraphExamples</StartupObject>
    +  </PropertyGroup>
    +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    +    <DebugSymbols>true</DebugSymbols>
    +    <DebugType>full</DebugType>
    +    <Optimize>false</Optimize>
    +    <OutputPath>bin\Debug\</OutputPath>
    +    <DefineConstants>DEBUG;TRACE</DefineConstants>
    +    <ErrorReport>prompt</ErrorReport>
    +    <WarningLevel>4</WarningLevel>
    +  </PropertyGroup>
    +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    +    <DebugType>pdbonly</DebugType>
    +    <Optimize>true</Optimize>
    +    <OutputPath>bin\Release\</OutputPath>
    +    <DefineConstants>TRACE</DefineConstants>
    +    <ErrorReport>prompt</ErrorReport>
    +    <WarningLevel>4</WarningLevel>
    +  </PropertyGroup>
    +  <ItemGroup>
    +    <Reference Include="System" />
    +    <Reference Include="System.Core">
    +      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    +    </Reference>
    +    <Reference Include="System.Drawing" />
    +    <Reference Include="System.Windows.Forms" />
    +    <Reference Include="System.Xml.Linq">
    +      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    +    </Reference>
    +    <Reference Include="System.Data.DataSetExtensions">
    +      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    +    </Reference>
    +    <Reference Include="System.Data" />
    +    <Reference Include="System.Xml" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Compile Include="src\Examples.cs" />
    +    <Compile Include="src\Form.cs">
    +      <SubType>Form</SubType>
    +    </Compile>
    +    <Compile Include="src\Layout.cs">
    +      <SubType>Form</SubType>
    +    </Compile>
    +    <Compile Include="Properties\AssemblyInfo.cs" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <ProjectReference Include="..\mxgraph-dotnet.csproj">
    +      <Project>{741CF907-C7CF-4965-94C9-59BAEC072101}</Project>
    +      <Name>mxgraph-dotnet</Name>
    +    </ProjectReference>
    +  </ItemGroup>
    +  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    +  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
    +       Other similar extension points exist, see Microsoft.Common.targets.
    +  <Target Name="BeforeBuild">
    +  </Target>
    +  <Target Name="AfterBuild">
    +  </Target>
    +  -->
    +</Project>
    \ No newline at end of file
    diff --git a/dotnet/examples/src/Examples.cs b/dotnet/examples/src/Examples.cs
    new file mode 100644
    index 000000000..f448a1a30
    --- /dev/null
    +++ b/dotnet/examples/src/Examples.cs
    @@ -0,0 +1,91 @@
    +// $Id: Examples.cs,v 1.3 2012-03-23 09:06:52 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Windows.Forms;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Web;
    +using System.Xml;
    +using System.IO;
    +using System.Drawing;
    +using System.Drawing.Imaging;
    +using System.Drawing.Drawing2D;
    +using com.mxgraph;
    +
    +namespace examples
    +{
    +    public class GraphExamples
    +    {
    +
    +        static void Main(string[] args)
    +        {
    +            example1();
    +            example2();
    +            example3();
    +            example4();
    +            example5();
    +        }
    +
    +        static void example1()
    +        {
    +            // Creates graph with model
    +            mxGraph graph = new mxGraph();
    +            Object parent = graph.GetDefaultParent();
    +
    +            // Adds cells into the graph
    +            graph.Model.BeginUpdate();
    +            try
    +            {
    +                Object v1 = graph.InsertVertex(parent, null, "Hello", 20, 20, 80, 30);
    +                Object v2 = graph.InsertVertex(parent, null, "World!", 200, 150, 80, 30);
    +                Object e1 = graph.InsertEdge(parent, null, "e1", v1, v2);
    +            }
    +            finally
    +            {
    +                graph.Model.EndUpdate();
    +            }
    +
    +            // Example to save the graph in multiple images
    +            //Image img = mxCellRenderer.CreateImage(graph, null, 1, Color.White, true, new mxRectangle(0, 0, 150, 200));
    +            //img.Save("example1.png", ImageFormat.Png);
    +
    +            //Image img2 = mxCellRenderer.CreateImage(graph, null, 1, (Color?)BackColor, true, new mxRectangle(150, 0, 150, 200));
    +            //img2.Save("example2.png", ImageFormat.Png);
    +        }
    +
    +        static void example2()
    +        {
    +            //XmlTextReader xmlReader = new XmlTextReader(new StringReader(mxUtils.ReadFile("../../../php/examples/diagrams/graphview.xml")));
    +            //mxGraphViewImageReader viewReader = new mxGraphViewImageReader(
    +            //    xmlReader, Color.White, 4, true, false);
    +            //Image image = mxGraphViewImageReader.Convert(viewReader);
    +            //image.Save("C:/example1.png", System.Drawing.Imaging.ImageFormat.Png);
    +        }
    +
    +        static void example3()
    +        {
    +            GraphForm form = new GraphForm();
    +            Application.Run(form);
    +        }
    +
    +        static void example4()
    +        {
    +            LayoutForm form = new LayoutForm();
    +            Application.Run(form);
    +        }
    +
    +        // New image export from file
    +        static void example5()
    +        {
    +            /*XmlTextReader xmlReader = new XmlTextReader(new StringReader(mxUtils.ReadFile("../../../../export.xml")));
    +            Image image = mxUtils.CreateImage(800, 800, Color.White);
    +            Graphics g = Graphics.FromImage(image);
    +            g.SmoothingMode = SmoothingMode.HighQuality;
    +            mxSaxOutputHandler handler = new mxSaxOutputHandler(new mxGdiCanvas2D(g));
    +            handler.Read(xmlReader);
    +
    +            image.Save("C:/example1.png", System.Drawing.Imaging.ImageFormat.Png);*/
    +        }
    +    }
    +
    +}
    diff --git a/dotnet/examples/src/Form.cs b/dotnet/examples/src/Form.cs
    new file mode 100644
    index 000000000..a633be1a8
    --- /dev/null
    +++ b/dotnet/examples/src/Form.cs
    @@ -0,0 +1,128 @@
    +// $Id: Form.cs,v 1.2 2012-03-24 11:58:09 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Windows.Forms;
    +using System.Drawing;
    +using System.Threading;
    +using System.Diagnostics;
    +using System.Drawing.Imaging;
    +using System.Xml;
    +using com.mxgraph;
    +
    +namespace examples
    +{
    +
    +    public class GraphForm : Form
    +    {
    +        private GraphControl graphControl;
    +
    +        public GraphForm()
    +        {
    +            // Registers custom shapes
    +            XmlDocument doc = mxUtils.ParseXml(mxUtils.ReadFile("../../../../java/examples/com/mxgraph/examples/swing/shapes.xml"));
    +            XmlNodeList list = doc.DocumentElement.GetElementsByTagName("shape");
    +
    +            for (int i = 0; i < list.Count; i++)
    +            {
    +                XmlElement shape = (XmlElement)list.Item(i);
    +                mxStencilRegistry.AddStencil(shape.GetAttribute("name"),
    +                        new mxStencil(shape));
    +            }
    +
    +            // Creates graph with model
    +            mxGraph graph = new mxGraph();
    +            Object parent = graph.GetDefaultParent();
    +
    +            // Adds cells into the graph
    +            graph.Model.BeginUpdate();
    +            try
    +            {
    +                Object v1 = graph.InsertVertex(parent, null, "Hello", 20, 20, 80, 30, "shape=and;fillColor=#ff0000;gradientColor=#ffffff;shadow=1");
    +                Object v2 = graph.InsertVertex(parent, null, "World!", 200, 150, 80, 30, "shape=or;shadow=1");
    +                Object e1 = graph.InsertEdge(parent, null, "e1", v1, v2);
    +            }
    +            finally
    +            {
    +                graph.Model.EndUpdate();
    +            }
    +            
    +            // Creates a component for the graph
    +            graphControl = new GraphControl(graph);
    +            graphControl.Dock = DockStyle.Fill;
    +
    +            Controls.Add(graphControl);
    +            Size = new Size(320, 200);
    +        }
    +    }
    +
    +    class GraphControl : Panel
    +    {
    +
    +        mxGraph graph;
    +
    +        Image buffer;
    +
    +        public GraphControl(mxGraph graph)
    +        {
    +            this.graph = graph;
    +            this.AutoScroll = true;
    +            this.Paint += new PaintEventHandler(PaintBuffer);
    +            this.graph.Model.GraphModelChange += new mxGraphModelChangeEventHandler(RefreshBuffer);
    +        }
    +
    +        public mxGraph Graph
    +        {
    +            get { return graph; }
    +        }
    +
    +        protected void PaintBuffer(object sender, PaintEventArgs e)
    +        {
    +            Graphics graphics = e.Graphics;
    +            graphics.DrawImageUnscaled(Buffer, AutoScrollPosition);
    +        }
    +
    +        public Image Buffer
    +        {
    +            get {
    +                if (buffer == null)
    +                {
    +                    UpdateBuffer();
    +                }
    +                return buffer;
    +            }
    +        }
    +
    +        protected void UpdateBuffer()
    +        {
    +            buffer = CreateBuffer();
    +            int width = buffer.Width;
    +            int height = buffer.Height;
    +
    +            if (AutoScrollMinSize.Width != width ||
    +                AutoScrollMinSize.Height != height)
    +            {
    +                AutoScrollMinSize = new Size(width, height);
    +            }
    +        }
    +
    +        protected Image CreateBuffer()
    +        {
    +            return mxCellRenderer.CreateImage(graph, null, 1, (Color?) BackColor, true, null);
    +        }
    +
    +        protected void ClearBuffer()
    +        {
    +            buffer = null;
    +        }
    +
    +        public void RefreshBuffer()
    +        {
    +            ClearBuffer();
    +            Refresh();
    +        }
    +    }
    +
    +}
    diff --git a/dotnet/examples/src/Layout.cs b/dotnet/examples/src/Layout.cs
    new file mode 100644
    index 000000000..e67563a77
    --- /dev/null
    +++ b/dotnet/examples/src/Layout.cs
    @@ -0,0 +1,65 @@
    +// $Id: Layout.cs,v 1.1 2009-11-14 14:56:03 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Windows.Forms;
    +using System.Drawing;
    +using System.Threading;
    +using com.mxgraph;
    +
    +namespace examples
    +{
    +
    +    public class LayoutForm : Form
    +    {
    +
    +        private GraphControl graphControl;
    +
    +        public LayoutForm()
    +        {
    +            mxGraph graph = new mxGraph();
    +            Object parent = graph.GetDefaultParent();
    +
    +            graph.Model.BeginUpdate();
    +            try
    +            {
    +                int nodeCount = 100;
    +                int edgeCount = 100;
    +
    +                Object[] nodes = new Object[nodeCount];
    +
    +                for (int i = 0; i < nodeCount; i++)
    +                {
    +                    nodes[i] = graph.InsertVertex(parent, null, 'N' + i, 0, 0, 30, 30);
    +                }
    +
    +                Random r = new Random();
    +
    +                for (int i = 0; i < edgeCount; i++)
    +                {
    +                    int r1 = (int)(r.NextDouble() * nodeCount);
    +                    int r2 = (int)(r.NextDouble() * nodeCount);
    +                    graph.InsertEdge(parent, null, r1 + '-' + r2,
    +                            nodes[r1], nodes[r2]);
    +                }
    +
    +                mxIGraphLayout layout = new mxFastOrganicLayout(graph);
    +                layout.execute(parent);
    +            }
    +            finally
    +            {
    +                graph.Model.EndUpdate();
    +            }
    +
    +            graph.View.Scale = 0.2;
    +
    +            graphControl = new GraphControl(graph);
    +            graphControl.Dock = DockStyle.Fill;
    +            Controls.Add(graphControl);
    +            Size = new Size(320, 200);
    +        }
    +
    +    }
    +}
    diff --git a/dotnet/index.html b/dotnet/index.html
    new file mode 100644
    index 000000000..51280fb11
    --- /dev/null
    +++ b/dotnet/index.html
    @@ -0,0 +1,58 @@
    +<html>
    +<head>
    +	<title>mxGraph .NET</title>
    +	<link rel="stylesheet" HREF="../docs/css/html.css" CHARSET="ISO-8859-1" TYPE="text/css">
    +</head>
    +<body>
    +<h1>mxGraph .NET</h1>
    +<h2>Installation</h2>
    +<p>
    +	The following assumes that <a href="http://www.microsoft.com/express/vwd/">Microsoft Visual Web Developer 2008</a>
    +	(Express Edition) is used for development. To start development, open the
    +	solution file <code>mxgraph-dotnet.sln</code> in Visual Web Developer by
    +	choosing File, Open File.
    +</p>
    +<p>
    +	To run the ASP.NET examples in IIS, a virtual directory must be created
    +	that maps /mxgraph to the top-level directory of this distribution.
    +</p>
    +<p>
    +	Note that web.config defines a text/plain MIME type for the
    +	<code>.properties</code> extension. This extension should always be
    +	registered for use with mxGraph resource files.
    +</p>
    +<h2>Examples</h2>
    +<h3>Clients</h3>
    +<p>
    +	The <i>examples</i> project demonstrates various aspects of the API, such
    +	as creating images, using input/output or placing a graph image in a form.
    +	Go to Debug, Start without Debugging (Ctrl-F5) to run the examples in this
    +	project.
    +</p>
    +<h3>Servers</h3>
    +<p>
    +	The <i>aspnet</i> project demonstrates various scenarios using mxGraph,
    +	ASP.NET and IIS. Go to Build, Publish to deploy these examples and point
    +	your browser to <a href="http://localhost/">http://localhost/</a> for all
    +	examples in this project. (You may have to use the application name you
    +	specified in the Deploy dialog in the URL.)
    +</p>
    +<p>
    +	Note that the Server examples require a virtual directory to be created in
    +	IIS. The directory should map /mxgraph to the top-level directory of the
    +	distribution and needs to define a mime type of text/plain for .properties
    +	files.
    +</p>
    +<p>
    +	In order to publish the example to IIS, you must run Visual Studio in the
    +	context of an administrator account.
    +</p>
    +<p>
    +	This example requires a managed runtime version of 4.0 in Visual Web
    +	Developer 2010. See <a href="http://technet.microsoft.com/en-us/library/cc754523(WS.10).aspx">here</a>
    +	on how to change the managed runtime version in IIS.
    +</p>
    +<hr size="1">
    +&copy; 2006-2010 by JGraph Ltd.
    +</body>
    +</html>
    diff --git a/dotnet/mxgraph-dotnet.csproj b/dotnet/mxgraph-dotnet.csproj
    new file mode 100644
    index 000000000..93598f59c
    --- /dev/null
    +++ b/dotnet/mxgraph-dotnet.csproj
    @@ -0,0 +1,142 @@
    +<?xml version="1.0" encoding="utf-8"?>
    +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    +  <PropertyGroup>
    +    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    +    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    +    <ProductVersion>9.0.30729</ProductVersion>
    +    <SchemaVersion>2.0</SchemaVersion>
    +    <ProjectGuid>{741CF907-C7CF-4965-94C9-59BAEC072101}</ProjectGuid>
    +    <OutputType>Library</OutputType>
    +    <AppDesignerFolder>Properties</AppDesignerFolder>
    +    <RootNamespace>mxgraph</RootNamespace>
    +    <AssemblyName>mxgraph</AssemblyName>
    +    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    +    <FileAlignment>512</FileAlignment>
    +    <StartupObject>
    +    </StartupObject>
    +    <IsWebBootstrapper>false</IsWebBootstrapper>
    +    <PublishUrl>publish\</PublishUrl>
    +    <Install>true</Install>
    +    <InstallFrom>Disk</InstallFrom>
    +    <UpdateEnabled>false</UpdateEnabled>
    +    <UpdateMode>Foreground</UpdateMode>
    +    <UpdateInterval>7</UpdateInterval>
    +    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    +    <UpdatePeriodically>false</UpdatePeriodically>
    +    <UpdateRequired>false</UpdateRequired>
    +    <MapFileExtensions>true</MapFileExtensions>
    +    <ApplicationRevision>0</ApplicationRevision>
    +    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    +    <UseApplicationTrust>false</UseApplicationTrust>
    +    <BootstrapperEnabled>true</BootstrapperEnabled>
    +  </PropertyGroup>
    +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    +    <DebugSymbols>true</DebugSymbols>
    +    <DebugType>full</DebugType>
    +    <Optimize>false</Optimize>
    +    <OutputPath>bin\Debug\</OutputPath>
    +    <DefineConstants>DEBUG;TRACE</DefineConstants>
    +    <ErrorReport>prompt</ErrorReport>
    +    <WarningLevel>4</WarningLevel>
    +  </PropertyGroup>
    +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    +    <DebugType>pdbonly</DebugType>
    +    <Optimize>true</Optimize>
    +    <OutputPath>bin\Release\</OutputPath>
    +    <DefineConstants>TRACE</DefineConstants>
    +    <ErrorReport>prompt</ErrorReport>
    +    <WarningLevel>4</WarningLevel>
    +  </PropertyGroup>
    +  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    +  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
    +       Other similar extension points exist, see Microsoft.Common.targets.
    +  <Target Name="BeforeBuild">
    +  </Target>
    +  <Target Name="AfterBuild">
    +  </Target>
    +  -->
    +  <ItemGroup>
    +    <Compile Include="src\canvas\mxGdiCanvas2D.cs" />
    +    <Compile Include="src\canvas\mxICanvas2D.cs" />
    +    <Compile Include="src\canvas\mxBasicCanvas.cs" />
    +    <Compile Include="src\canvas\mxGdiCanvas.cs" />
    +    <Compile Include="src\canvas\mxICanvas.cs" />
    +    <Compile Include="src\canvas\mxImageCanvas.cs" />
    +    <Compile Include="src\canvas\mxStencil.cs" />
    +    <Compile Include="src\canvas\mxStencilRegistry.cs" />
    +    <Compile Include="src\io\mxCellCodec.cs" />
    +    <Compile Include="src\io\mxCodec.cs" />
    +    <Compile Include="src\io\mxCodecRegistry.cs" />
    +    <Compile Include="src\io\mxModelCodec.cs" />
    +    <Compile Include="src\io\mxObjectCodec.cs" />
    +    <Compile Include="src\io\mxStylesheetCodec.cs" />
    +    <Compile Include="src\layout\mxFastOrganicLayout.cs" />
    +    <Compile Include="src\layout\mxIGraphLayout.cs" />
    +    <Compile Include="src\model\mxCell.cs" />
    +    <Compile Include="src\model\mxCellPath.cs" />
    +    <Compile Include="src\model\mxGeometry.cs" />
    +    <Compile Include="src\model\mxGraphModel.cs" />
    +    <Compile Include="src\model\mxICell.cs" />
    +    <Compile Include="src\model\mxIGraphModel.cs" />
    +    <Compile Include="src\reader\mxGraphViewImageReader.cs" />
    +    <Compile Include="src\reader\mxGraphViewReader.cs" />
    +    <Compile Include="src\reader\mxSaxOutputHandler.cs" />
    +    <Compile Include="src\sharing\mxSession.cs" />
    +    <Compile Include="src\sharing\mxSharedState.cs" />
    +    <Compile Include="src\utils\mxImageBundle.cs" />
    +    <Compile Include="src\utils\mxCellRenderer.cs" />
    +    <Compile Include="src\utils\mxConstants.cs" />
    +    <Compile Include="src\utils\mxPoint.cs" />
    +    <Compile Include="src\utils\mxRectangle.cs" />
    +    <Compile Include="src\utils\mxUtils.cs" />
    +    <Compile Include="src\view\mxConnectionConstraint.cs" />
    +    <Compile Include="src\view\mxCellState.cs" />
    +    <Compile Include="src\view\mxStyleRegistry.cs" />
    +    <Compile Include="src\view\mxEdgeStyle.cs" />
    +    <Compile Include="src\view\mxGraph.cs" />
    +    <Compile Include="src\view\mxGraphView.cs" />
    +    <Compile Include="src\view\mxPerimeter.cs" />
    +    <Compile Include="src\view\mxStylesheet.cs" />
    +    <Compile Include="test\mxCodecTest.cs" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <Reference Include="System" />
    +    <Reference Include="System.Data" />
    +    <Reference Include="System.Drawing" />
    +    <Reference Include="System.Web" />
    +    <Reference Include="System.Windows.Forms" />
    +    <Reference Include="System.XML" />
    +  </ItemGroup>
    +  <ItemGroup>
    +    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
    +      <Visible>False</Visible>
    +      <ProductName>.NET Framework Client Profile</ProductName>
    +      <Install>false</Install>
    +    </BootstrapperPackage>
    +    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
    +      <Visible>False</Visible>
    +      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
    +      <Install>false</Install>
    +    </BootstrapperPackage>
    +    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
    +      <Visible>False</Visible>
    +      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
    +      <Install>false</Install>
    +    </BootstrapperPackage>
    +    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
    +      <Visible>False</Visible>
    +      <ProductName>.NET Framework 3.5</ProductName>
    +      <Install>false</Install>
    +    </BootstrapperPackage>
    +    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
    +      <Visible>False</Visible>
    +      <ProductName>.NET Framework 3.5 SP1</ProductName>
    +      <Install>true</Install>
    +    </BootstrapperPackage>
    +    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
    +      <Visible>False</Visible>
    +      <ProductName>Windows Installer 3.1</ProductName>
    +      <Install>true</Install>
    +    </BootstrapperPackage>
    +  </ItemGroup>
    +</Project>
    \ No newline at end of file
    diff --git a/dotnet/src/canvas/mxBasicCanvas.cs b/dotnet/src/canvas/mxBasicCanvas.cs
    new file mode 100644
    index 000000000..c64453dc7
    --- /dev/null
    +++ b/dotnet/src/canvas/mxBasicCanvas.cs
    @@ -0,0 +1,105 @@
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Basic implementation of a canvas that draws a graph.
    +    /// </summary>
    +    public abstract class mxBasicCanvas : mxICanvas
    +    {
    +        /// <summary>
    +        /// Defines the default value for the imageBasePath in all GDI canvases.
    +        /// Default is an empty string.
    +        /// </summary>
    +        public static string DEFAULT_IMAGEBASEPATH = "";
    +
    +        /// <summary>
    +        /// Defines the base path for images with relative paths. Trailing slash
    +        /// is required. Default value is DEFAULT_IMAGEBASEPATH.
    +        /// </summary>
    +        protected string imageBasePath = DEFAULT_IMAGEBASEPATH;
    +
    +        /// <summary>
    +        /// Specifies the current translation. Default is (0,0).
    +        /// </summary>
    +        protected Point translate = new Point(0, 0);
    +
    +        /// <summary>
    +        /// Specifies the current scale. Default is 1.
    +        /// </summary>
    +        protected double scale;
    +
    +        /// <summary>
    +        /// Specifies whether labels should be painted. Default is true.
    +        /// </summary>
    +        protected bool drawLabels = true;
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.Translate
    +        /// </summary>
    +        public Point Translate
    +        {
    +            get { return translate; }
    +            set { translate = value; }
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.Scale
    +        /// </summary>
    +        public double Scale
    +        {
    +            get { return scale; }
    +            set { scale = value; }
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.DrawCell()
    +        /// </summary>
    +        public abstract Object DrawCell(mxCellState state);
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.DrawLabel()
    +        /// </summary>
    +        public abstract Object DrawLabel(string text, mxCellState state, bool html);
    +
    +        /// <summary>
    +        /// Sets if labels should be visible.
    +        /// </summary>
    +        public bool DrawLabels
    +        {
    +            get { return drawLabels; }
    +            set { drawLabels = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or gets the image base path.
    +        /// </summary>
    +        public string ImageBasePath
    +        {
    +            get { return imageBasePath; }
    +            set { imageBasePath = value; }
    +        }
    +
    +        /// <summary>
    +        /// Gets the image path from the given style.  If the path is relative (does
    +        /// not start with a slash) then it is appended to the imageBasePath.
    +        /// </summary>
    +        /// <param name="style"></param>
    +        /// <returns></returns>
    +        protected string GetImageForStyle(Dictionary<string, Object> style)
    +        {
    +            string filename = mxUtils.GetString(style, mxConstants.STYLE_IMAGE);
    +
    +            if (filename != null && !filename.StartsWith("/"))
    +            {
    +                filename = imageBasePath + filename;
    +            }
    +
    +            return filename;
    +        }
    +
    +    }
    +}
    diff --git a/dotnet/src/canvas/mxGdiCanvas.cs b/dotnet/src/canvas/mxGdiCanvas.cs
    new file mode 100644
    index 000000000..cb72d4cbd
    --- /dev/null
    +++ b/dotnet/src/canvas/mxGdiCanvas.cs
    @@ -0,0 +1,1390 @@
    +// $Id: mxGdiCanvas.cs,v 1.88 2012-03-24 11:58:09 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Drawing;
    +using System.Drawing.Drawing2D;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.IO;
    +using System.Diagnostics;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Implementation of a canvas that uses GDI for painting.
    +    /// </summary>
    +    public class mxGdiCanvas : mxBasicCanvas
    +    {
    +
    +        /// <summary>
    +        /// Specifies if image aspect should be preserved in drawImage.
    +        /// </summary>
    +        public static bool PRESERVE_IMAGE_ASPECT = true;
    +
    +        /// <summary>
    +        /// Cache for loading images.
    +        /// </summary>
    +        protected Dictionary<string, Image> imageCache = new Dictionary<string, Image>();
    +
    +        /// <summary>
    +        /// Global graphics handle to the image.
    +        /// </summary>
    +        protected Graphics g;
    +
    +        /// <summary>
    +        /// Constructs a new GDI canvas.
    +        /// </summary>
    +        public mxGdiCanvas(): this(null) {}
    +
    +        /// <summary>
    +        /// Constructs a new GDI canvas for the given graphics instance.
    +        /// </summary>
    +        public mxGdiCanvas(Graphics g)
    +        {
    +            this.g = g;
    +        }
    +
    +        /// <summary>
    +        /// Sets or gets the graphics object to paint the canvas.
    +        /// </summary>
    +        public Graphics Graphics
    +        {
    +            get { return g; }
    +            set { g = value; }
    +        }
    +
    +        /// <summary>
    +        /// Returns an image instance for the given URL. If the URL has
    +        /// been loaded before than an instance of the same instance is
    +        /// returned as in the previous call.
    +        /// </summary>
    +        protected Image LoadImage(String image)
    +        {
    +            Image img = (imageCache.ContainsKey(image)) ? imageCache[image] : null;
    +
    +            if (img == null)
    +            {
    +                img = mxUtils.LoadImage(image);
    +
    +                if (img != null)
    +                {
    +                    imageCache[image] = img;
    +                }
    +            }
    +
    +            return img;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.DrawCell()
    +        /// </summary>
    +        public override Object DrawCell(mxCellState state)
    +        {
    +            Dictionary<string, object> style = state.Style;
    +            GraphicsState graphicsState = g.Save();
    +
    +            // Applies the local translation
    +            g.TranslateTransform(translate.X, translate.Y);
    +
    +            // Checks if the cell is an edge
    +            if (state.AbsolutePointCount() > 1)
    +            {
    +                DrawLine(state.AbsolutePoints, style);
    +            }
    +            else
    +            {
    +                Rectangle bounds = state.GetRectangle();
    +                int x = bounds.X;
    +                int y = bounds.Y;
    +                int w = bounds.Width;
    +                int h = bounds.Height;
    +
    +                // Applies the rotation on the graphics object and stores
    +                // the previous transform so that it can be restored
    +                float rotation = mxUtils.GetFloat(style, mxConstants.STYLE_ROTATION);
    +
    +                if (rotation != 0)
    +                {
    +                    int cx = x + w / 2;
    +                    int cy = y + h / 2;
    +
    +                    g.TranslateTransform(cx, cy);
    +                    g.RotateTransform(rotation);
    +                    g.TranslateTransform(-cx, -cy);
    +                }
    +
    +                // Draws a swimlane if start is > 0
    +                string shape = mxUtils.GetString(style, mxConstants.STYLE_SHAPE, "");
    +
    +                if (!shape.Equals(mxConstants.SHAPE_SWIMLANE))
    +                {
    +                    // NOTE: Should draw built-in shapes first
    +                    mxStencil stencil = mxStencilRegistry.GetStencil(shape);
    +
    +                    if (stencil != null)
    +                    {
    +                        stencil.PaintShape(this, state);
    +                    }
    +                    else
    +                    {
    +                        DrawShape(x, y, w, h, style);
    +                    }
    +                }
    +                else
    +                {
    +                    int start = (int)Math.Round(mxUtils.GetDouble(style,
    +                        mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE) * scale);
    +
    +                    // Removes some styles to draw the content area
    +                    Dictionary<string, Object> cloned = new Dictionary<string, Object>(style);
    +                    cloned.Remove(mxConstants.STYLE_FILLCOLOR);
    +                    cloned.Remove(mxConstants.STYLE_ROUNDED);
    +
    +                    if (mxUtils.IsTrue(style, mxConstants.STYLE_HORIZONTAL, true))
    +                    {
    +                        DrawShape(x, y, w, Math.Min(h, start), style);
    +                        DrawShape(x, y + start, w, h - start, cloned);
    +                    }
    +                    else
    +                    {
    +                        DrawShape(x, y, Math.Min(w, start), h, style);
    +                        DrawShape(x + start, y, w - start, h, cloned);
    +                    }
    +                }
    +            }
    +
    +            // Resets all changes to the graphics configuration
    +            g.Restore(graphicsState);
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.DrawLabel()
    +        /// </summary>
    +        public override Object DrawLabel(string text, mxCellState state, bool html)
    +        {
    +            Dictionary<string, object> style = state.Style;
    +            GraphicsState graphicsState = g.Save();
    +
    +            // Applies the local translation
    +            g.TranslateTransform(translate.X, translate.Y);
    +
    +            Rectangle bounds = (state.LabelBounds != null) ? state.LabelBounds.GetRectangle() : state.GetRectangle();
    +            DrawText(text, bounds.X, bounds.Y, bounds.Width, bounds.Height, style);
    +
    +            // Resets all changes to the graphics configuration
    +            g.Restore(graphicsState);
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Draws the shape specified with the STYLE_SHAPE key in the given style.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the shape.</param>
    +        /// <param name="y">Y-coordinate of the shape.</param>
    +        /// <param name="w">Width of the shape.</param>
    +        /// <param name="h">Height of the shape.</param>
    +        /// <param name="style">Style of the the shape.</param>
    +        public void DrawShape(int x, int y, int w, int h,
    +                Dictionary<string, Object> style)
    +        {
    +            // Draws the shape
    +            string shape = mxUtils.GetString(style, mxConstants.STYLE_SHAPE, "");
    +            bool image = shape.Equals(mxConstants.STYLE_IMAGE);
    +
    +            // Redirects background styles for image shapes
    +            string fillStyle = (image) ? mxConstants.STYLE_IMAGE_BACKGROUND : mxConstants.STYLE_FILLCOLOR;
    +            string strokeStyle = (image) ? mxConstants.STYLE_IMAGE_BORDER : mxConstants.STYLE_STROKECOLOR;
    +
    +            // Prepares the background and foreground
    +            Pen pen = null;
    +            Color? penColor = mxUtils.GetColor(style, strokeStyle);
    +            float penWidth = mxUtils.GetFloat(style, mxConstants.STYLE_STROKEWIDTH, 1);
    +
    +            Brush brush = null;
    +            Color? fillColor = mxUtils.GetColor(style, fillStyle);
    +            float opacity = mxUtils.GetFloat(style, mxConstants.STYLE_OPACITY, 100);
    +            int alpha = (int)(255 * opacity / 100);
    +
    +            bool shadow = mxUtils.IsTrue(style, mxConstants.STYLE_SHADOW, false);
    +
    +            if (fillColor != null)
    +            {
    +                Color fill = (Color)fillColor;
    +
    +                if (opacity != 100)
    +                {
    +                    fill = Color.FromArgb(alpha, fill.R, fill.G, fill.B);
    +                }
    +
    +                Color? gradientColor = mxUtils.GetColor(style, mxConstants.STYLE_GRADIENTCOLOR);
    +
    +                if (gradientColor != null)
    +                {
    +                    String gradientDirection = mxUtils.GetString(style,
    +                            mxConstants.STYLE_GRADIENT_DIRECTION,
    +                            mxConstants.DIRECTION_SOUTH);
    +                    LinearGradientMode mode = LinearGradientMode.Vertical;
    +                    Color start = fill;
    +                    Color stop = (Color)gradientColor;
    +
    +                    if (gradientDirection.Equals(mxConstants.DIRECTION_EAST))
    +                    {
    +                        Color tmp = start;
    +                        start = stop;
    +                        stop = tmp;
    +
    +                        mode = LinearGradientMode.Horizontal;
    +                    }
    +                    else if (gradientDirection.Equals(mxConstants.DIRECTION_NORTH))
    +                    {
    +                        Color tmp = start;
    +                        start = stop;
    +                        stop = tmp;
    +                    }
    +                    else if (gradientDirection.Equals(mxConstants.DIRECTION_WEST))
    +                    {
    +                        mode = LinearGradientMode.Horizontal;
    +                    }
    +
    +                    Rectangle area = new Rectangle(x, y, w, h);
    +                    brush = new LinearGradientBrush(area, start, stop, mode);
    +                }
    +                else
    +                {
    +                    brush = new SolidBrush(fill);
    +                }
    +            }
    +
    +            // Prepares the foreground
    +            if (penColor != null && penWidth > 0)
    +            {
    +                pen = new Pen((Color)penColor, (float) (penWidth * scale));
    +
    +                if (mxUtils.IsTrue(style, mxConstants.STYLE_DASHED, false))
    +                {
    +                    pen.DashPattern = new float[] { (float)(3 * scale), (float)(3 * scale) };
    +                }
    +            }
    +
    +            switch (shape)
    +            {
    +                 case (mxConstants.SHAPE_ELLIPSE):
    +                {
    +                    DrawOval(x, y, w, h, brush, pen, shadow);
    +                    break;
    +                }
    +                case (mxConstants.SHAPE_LINE):
    +                {
    +                    string direction = mxUtils
    +                            .GetString(style, mxConstants.STYLE_DIRECTION,
    +                                    mxConstants.DIRECTION_EAST);
    +
    +                    if (direction.Equals(mxConstants.DIRECTION_EAST)
    +                            || direction.Equals(mxConstants.DIRECTION_WEST))
    +                    {
    +                        int mid = (int)(y + h / 2);
    +                        g.DrawLine(pen, x, mid, x + w, mid);
    +                    }
    +                    else
    +                    {
    +                        int mid = (int)(x + w / 2);
    +                        g.DrawLine(pen, mid, y, mid, y + h);
    +                    }
    +
    +                    break;
    +                }
    +                case (mxConstants.SHAPE_DOUBLE_ELLIPSE):
    +                {
    +                    DrawOval(x, y, w, h, brush, pen, shadow);
    +
    +                    int inset = (int)(3 + penWidth * scale);
    +                    x += inset;
    +                    y += inset;
    +                    w -= 2 * inset;
    +                    h -= 2 * inset;
    +                    DrawOval(x, y, w, h, null, pen, false);
    +                    break;
    +                }
    +                case (mxConstants.SHAPE_RHOMBUS):
    +                {
    +                    DrawRhombus(x, y, w, h, brush, pen, shadow);
    +                    break;
    +                }
    +                case (mxConstants.SHAPE_CYLINDER):
    +                {
    +                    DrawCylinder(x, y, w, h, brush, pen, shadow);
    +                    break;
    +                }
    +                case (mxConstants.SHAPE_ACTOR):
    +                {
    +                    DrawActor(x, y, w, h, brush, pen, shadow);
    +                    break;
    +                }
    +                case (mxConstants.SHAPE_CLOUD):
    +                {
    +                    DrawCloud(x, y, w, h, brush, pen, shadow);
    +                    break;
    +                }
    +                case (mxConstants.SHAPE_TRIANGLE):
    +                {
    +                    string direction = mxUtils.GetString(style, mxConstants.STYLE_DIRECTION, "");
    +                    DrawTriangle(x, y, w, h, brush, pen, shadow, direction);
    +                    break;
    +                }
    +                case (mxConstants.SHAPE_HEXAGON):
    +                {
    +                    string direction = mxUtils.GetString(style, mxConstants.STYLE_DIRECTION, "");
    +                    DrawHexagon(x, y, w, h, brush, pen, shadow, direction);
    +                    break;
    +                }
    +                default:
    +                {
    +                    bool rounded = mxUtils.IsTrue(style, mxConstants.STYLE_ROUNDED);
    +                    DrawRect(x, y, w, h, brush, pen, shadow, rounded);
    +
    +                    bool flipH = mxUtils.IsTrue(style, mxConstants.STYLE_IMAGE_FLIPH, false);
    +                    bool flipV = mxUtils.IsTrue(style, mxConstants.STYLE_IMAGE_FLIPV, false);
    +
    +                    // Draws the image as a shape
    +                    if (image)
    +                    {
    +                        string img = GetImageForStyle(style);
    +
    +                        if (img != null)
    +                        {
    +                            DrawImage(x, y, w, h, img, PRESERVE_IMAGE_ASPECT, flipH, flipV);
    +                        }
    +                    }
    +
    +                    // Draws the image of the label inside the label shape
    +                    if (shape.Equals(mxConstants.SHAPE_LABEL))
    +                    {
    +                        string img = GetImageForStyle(style);
    +
    +                        if (img != null)
    +                        {
    +                            string imgAlign = mxUtils.GetString(style,
    +                                    mxConstants.STYLE_IMAGE_ALIGN,
    +                                    mxConstants.ALIGN_LEFT);
    +                            string imgValign = mxUtils.GetString(style,
    +                                    mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,
    +                                    mxConstants.ALIGN_MIDDLE);
    +                            int imgWidth = (int)(mxUtils.GetInt(style,
    +                                    mxConstants.STYLE_IMAGE_WIDTH,
    +                                    mxConstants.DEFAULT_IMAGESIZE) * scale);
    +                            int imgHeight = (int)(mxUtils.GetInt(style,
    +                                    mxConstants.STYLE_IMAGE_HEIGHT,
    +                                    mxConstants.DEFAULT_IMAGESIZE) * scale);
    +                            int spacing = (int)(mxUtils.GetInt(style,
    +                                    mxConstants.STYLE_SPACING, 2) * scale);
    +
    +                            int imgX = x;
    +
    +                            if (imgAlign.Equals(mxConstants.ALIGN_CENTER))
    +                            {
    +                                imgX += (w - imgWidth) / 2;
    +                            }
    +                            else if (imgAlign.Equals(mxConstants.ALIGN_RIGHT))
    +                            {
    +                                imgX += w - imgWidth - spacing;
    +                            }
    +                            else // LEFT
    +                            {
    +                                imgX += spacing;
    +                            }
    +
    +                            int imgY = y;
    +
    +                            if (imgValign.Equals(mxConstants.ALIGN_TOP))
    +                            {
    +                                imgY += spacing;
    +                            }
    +                            else if (imgValign.Equals(mxConstants.ALIGN_BOTTOM))
    +                            {
    +                                imgY += h - imgHeight - spacing;
    +                            }
    +                            else // MIDDLE
    +                            {
    +                                imgY += (h - imgHeight) / 2;
    +                            }
    +
    +                            DrawImage(imgX, imgY, imgWidth, imgHeight, img);
    +                        }
    +
    +                        // Paints the glass effect for labels
    +                        if (mxUtils.IsTrue(style, mxConstants.STYLE_GLASS, false))
    +                        {
    +                            DrawGlassEffect(x, y, w, h, style);
    +                        }
    +                    }
    +
    +                    break;
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Draws the glass effect.
    +        /// </summary>
    +        protected void DrawGlassEffect(int x, int y, int w, int h,
    +                Dictionary<string, Object> style)
    +        {
    +            double size = 0.4;
    +            int sw = (int)Math.Ceiling(mxUtils.GetFloat(style,
    +                mxConstants.STYLE_STROKEWIDTH, 1) * scale / 2); 
    +
    +            Rectangle area = new Rectangle(x - sw - 1,
    +                y - sw - 1, w + 2 * sw + 1, (int)(h * 0.9));
    +            Brush brush = new LinearGradientBrush(area, Color.FromArgb((int)(255 * 0.9), 255, 255, 255),
    +                Color.FromArgb(0, 255, 255, 255), LinearGradientMode.Vertical);
    +
    +            GraphicsPath path = new GraphicsPath();
    +            
    +            path.AddLine(x - sw, y - sw,
    +                x - sw, (int)Math.Ceiling(y + h * size));
    +            // FIXME: Use quadratic curve here via x + w / 2, y + h * 0.7
    +            path.AddBezier(x - sw, (int)(y + h * size),
    +                (int)(x + w * 0.3), (int)(y + h * 0.6),
    +                (int)(x + w * 0.7), (int)(y + h * 0.6),
    +                x + w + sw, (int)(y + h * size));
    +            path.AddLine(x + w + sw, (int)(y + h * size),
    +                x + w + sw, y - sw);
    +            path.CloseFigure();
    +
    +            g.FillPath(brush, path);
    +        }
    +
    +        /// <summary>
    +        /// Draws a a polygon for the given parameters.
    +        /// </summary>
    +        /// <param name="polygon">Points of the polygon.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        protected void DrawPolygon(Point[] polygon, Brush brush, Pen pen, bool shadow)
    +        {
    +            if (brush != null)
    +            {
    +                if (shadow)
    +                {
    +                    g.TranslateTransform(mxConstants.SHADOW_OFFSETX, mxConstants.SHADOW_OFFSETY);
    +                    Brush shadowBrush = new SolidBrush(mxConstants.SHADOWCOLOR);
    +                    g.FillPolygon(shadowBrush, polygon);
    +                    g.TranslateTransform(-mxConstants.SHADOW_OFFSETX, -mxConstants.SHADOW_OFFSETY);
    +                }
    +
    +                g.FillPolygon(brush, polygon);
    +            }
    +
    +            if (pen != null)
    +            {
    +                g.DrawPolygon(pen, polygon);
    +            }
    +        }
    +        /// <summary>
    +        /// Draws a path for the given parameters.
    +        /// </summary>
    +        /// <param name="path">Path object to be drawn.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        protected void DrawPath(GraphicsPath path, Brush brush, Pen pen, bool shadow)
    +        {
    +            if (brush != null)
    +            {
    +                if (shadow)
    +                {
    +                    g.TranslateTransform(mxConstants.SHADOW_OFFSETX, mxConstants.SHADOW_OFFSETY);
    +                    Brush shadowBrush = new SolidBrush(mxConstants.SHADOWCOLOR);
    +                    g.FillPath(shadowBrush, path);
    +                    g.TranslateTransform(-mxConstants.SHADOW_OFFSETX, -mxConstants.SHADOW_OFFSETY);
    +                }
    +
    +                g.FillPath(brush, path);
    +            }
    +
    +            if (pen != null)
    +            {
    +                g.DrawPath(pen, path);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Draws a rectangle for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the shape.</param>
    +        /// <param name="y">Y-coordinate of the shape.</param>
    +        /// <param name="w">Width of the shape.</param>
    +        /// <param name="h">Height of the shape.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        /// <param name="rounded">Boolean indicating if the rectangle is rounded.</param>
    +        protected void DrawRect(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow,
    +            bool rounded)
    +        {
    +            if (rounded)
    +            {
    +                GraphicsPath path = new GraphicsPath();
    +                int radius = getArcSize(w, h);
    +                path.AddLine(x + radius, y, x + w - radius, y);
    +                path.AddArc(x + w - radius, y, radius, radius, 270, 90);
    +                path.AddLine(x + w, y + radius, x + w, y + h - radius);
    +                path.AddArc(x + w - radius, y + h - radius, radius, radius, 0, 90);
    +                path.AddLine(x + w - radius, y + h, x + radius, y + h);
    +                path.AddArc(x, y + h - radius, radius, radius, 90, 90);
    +                path.AddLine(x, y + h - radius, x, y + radius);
    +                path.AddArc(x, y, radius, radius, 180, 90);
    +                path.CloseFigure();
    +
    +                DrawPath(path, brush, pen, shadow);
    +            }
    +            else
    +            {
    +                if (brush != null)
    +                {
    +                    if (shadow)
    +                    {
    +                        Brush shadowBrush = new SolidBrush(mxConstants.SHADOWCOLOR);
    +                        g.FillRectangle(shadowBrush, x + mxConstants.SHADOW_OFFSETX,
    +                            y + mxConstants.SHADOW_OFFSETY, w, h);
    +                    }
    +
    +                    g.FillRectangle(brush, x, y, w, h);
    +                }
    +
    +                if (pen != null)
    +                {
    +                    g.DrawRectangle(pen, x, y, w, h);
    +                }
    +            }
    +        }
    +        
    +        /// <summary>
    +        /// Draws an image for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the image.</param>
    +        /// <param name="y">Y-coordinate of the image.</param>
    +        /// <param name="w">Width of the image.</param>
    +        /// <param name="h">Height of the image.</param>
    +        /// <param name="image">URL of the image.</param>
    +        protected void DrawImage(int x, int y, int w, int h, String image)
    +        {
    +            DrawImage(x, y, w, h, image, PRESERVE_IMAGE_ASPECT, false, false);
    +        }
    +
    +        /// <summary>
    +        /// Draws an image for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the image.</param>
    +        /// <param name="y">Y-coordinate of the image.</param>
    +        /// <param name="w">Width of the image.</param>
    +        /// <param name="h">Height of the image.</param>
    +        /// <param name="image">URL of the image.</param>
    +        protected void DrawImage(int x, int y, int w, int h, String image,
    +            bool preserveAspect, bool flipH, bool flipV)
    +        {
    +            Image img = LoadImage(image);
    +
    +            if (img != null)
    +            {
    +                if (preserveAspect)
    +                {
    +                    double iw = img.Width;
    +                    double ih = img.Height;
    +                    double s = Math.Min(w / iw, h / ih);
    +                    x += (int)(w - iw * s) / 2;
    +                    y += (int)(h - ih * s) / 2;
    +                    w = (int)(iw * s);
    +                    h = (int)(ih * s);
    +                }
    +
    +                if (flipH || flipV)
    +                {
    +                    img = (Image) img.Clone();
    +                }
    +
    +                if (flipH && flipV)
    +                {
    +                    img.RotateFlip(RotateFlipType.RotateNoneFlipXY);
    +                }
    +                else if (flipH)
    +                {
    +                    img.RotateFlip(RotateFlipType.RotateNoneFlipX);
    +                }
    +                else if (flipV)
    +                {
    +                    img.RotateFlip(RotateFlipType.RotateNoneFlipY);
    +                }
    +
    +                g.DrawImage(img, x, y, w, h);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Draws an oval for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the shape.</param>
    +        /// <param name="y">Y-coordinate of the shape.</param>
    +        /// <param name="w">Width of the shape.</param>
    +        /// <param name="h">Height of the shape.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        protected void DrawOval(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)
    +        {
    +            if (brush != null)
    +            {
    +                if (shadow)
    +                {
    +                    Brush shadowBrush = new SolidBrush(mxConstants.SHADOWCOLOR);
    +                    g.FillEllipse(shadowBrush, x + mxConstants.SHADOW_OFFSETX,
    +                        y + mxConstants.SHADOW_OFFSETY, w, h);
    +                }
    +
    +                g.FillEllipse(brush, x, y, w, h);
    +            }
    +
    +            if (pen != null)
    +            {
    +                g.DrawEllipse(pen, x, y, w, h);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Draws an rhombus (aka. diamond) for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the shape.</param>
    +        /// <param name="y">Y-coordinate of the shape.</param>
    +        /// <param name="w">Width of the shape.</param>
    +        /// <param name="h">Height of the shape.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        protected void DrawRhombus(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)
    +        {
    +            int halfWidth = w / 2;
    +            int halfHeight = h / 2;
    +            Point[] diamond = new Point[]{new Point(x+halfWidth, y),
    +                        new Point(x+w, y+halfHeight), new Point(x+halfWidth, y+h),
    +                        new Point(x, y+halfHeight)};
    +
    +            DrawPolygon(diamond, brush, pen, shadow);
    +        }
    +
    +        /// <summary>
    +        /// Draws a cylinder for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the shape.</param>
    +        /// <param name="y">Y-coordinate of the shape.</param>
    +        /// <param name="w">Width of the shape.</param>
    +        /// <param name="h">Height of the shape.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        protected void DrawCylinder(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)
    +        {
    +            int h4 = h / 4;
    +            int r = w - 1;
    +
    +            if (brush != null)
    +            {
    +                GraphicsPath path = new GraphicsPath(FillMode.Winding);
    +                path.AddRectangle(new Rectangle(x,
    +                    y + h4 / 2, r, h - h4));
    +                path.AddEllipse(new Rectangle(x, y, r, h4));
    +                path.AddEllipse(new Rectangle(x, y + h - h4, r, h4));
    +
    +                DrawPath(path, brush, null, shadow);
    +            }
    +
    +            if (pen != null)
    +            {
    +                int h2 = h4 / 2;
    +                g.DrawEllipse(pen, x, y, r, h4);
    +                g.DrawLine(pen, x, y + h2, x, y + h - h2);
    +                g.DrawLine(pen, x + w - 1, y + h2, x + w - 1,
    +                        y + h - h2);
    +                g.DrawArc(pen, x, y + h - h4, r, h4, 0, 180);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Draws an actor shape for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the shape.</param>
    +        /// <param name="y">Y-coordinate of the shape.</param>
    +        /// <param name="w">Width of the shape.</param>
    +        /// <param name="h">Height of the shape.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        protected void DrawActor(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)
    +        {
    +            int width = w * 2 / 6;
    +
    +            GraphicsPath path = new GraphicsPath(FillMode.Winding);
    +
    +            path.StartFigure();
    +            path.AddBezier(new Point(x, y + h), new Point(x, y + 3 * h / 5), new Point(x, y + 2 * h / 5), new Point(x + w / 2, y + 2 * h
    +                    / 5));
    +            path.AddBezier(new Point(x + w / 2, y + 2 * h
    +                    / 5), new Point(x + w / 2 - width, y + 2 * h / 5), new Point(x + w / 2 - width, y), new Point(x
    +                    + w / 2, y));
    +            path.AddBezier(new Point(x + w / 2, y), new Point(x + w / 2 + width, y), new Point(x + w / 2 + width, y + 2 * h / 5), new Point(x
    +                    + w / 2, y + 2 * h / 5));
    +            path.AddBezier(new Point(x
    +                    + w / 2, y + 2 * h / 5), new Point(x + w, y + 2 * h / 5), new Point(x + w, y + 3 * h / 5), new Point(x + w, y + h));
    +            path.CloseFigure();
    +
    +            DrawPath(path, brush, pen, shadow);
    +        }
    +
    +        /// <summary>
    +        /// Draws a cloud shape for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the shape.</param>
    +        /// <param name="y">Y-coordinate of the shape.</param>
    +        /// <param name="w">Width of the shape.</param>
    +        /// <param name="h">Height of the shape.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        protected void DrawCloud(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow)
    +        {
    +            GraphicsPath path = new GraphicsPath(FillMode.Winding);
    +
    +            path.StartFigure();
    +            path.AddBezier(new Point((int)(x + 0.25 * w), (int)(y + 0.25 * h)), new Point((int)(x + 0.05 * w),
    +                    (int)(y + 0.25 * h)), new Point((int)x, (int)(y + 0.5 * h)), new Point((int)(x + 0.16 * w),
    +                    (int)(y + 0.55 * h)));
    +            path.AddBezier(new Point((int)(x + 0.16 * w),
    +                    (int)(y + 0.6 * h)), new Point((int)x, (int)(y + 0.66 * h)), new Point((int)(x + 0.18 * w),
    +                    (int)(y + 0.9 * h)), new Point((int)(x + 0.31 * w),
    +                    (int)(y + 0.8 * h)));
    +            path.AddBezier(new Point((int)(x + 0.31 * w),
    +                    (int)(y + 0.8 * h)), new Point((int)(x + 0.4 * w), (int)(y + h)), new Point((int)(x + 0.7 * w),
    +                    (int)(y + h)), new Point((int)(x + 0.8 * w),
    +                    (int)(y + 0.8 * h)));
    +            path.AddBezier(new Point((int)(x + 0.8 * w),
    +                    (int)(y + 0.8 * h)), new Point((int)(x + w), (int)(y + 0.8 * h)), new Point((int)(x + w),
    +                    (int)(y + 0.6 * h)), new Point((int)(x + 0.875 * w),
    +                    (int)(y + 0.5 * h)));
    +            path.AddBezier(new Point((int)(x + 0.875 * w),
    +                    (int)(y + 0.5 * h)), new Point((int)(x + w), (int)(y + 0.3 * h)), new Point((int)(x + 0.8 * w),
    +                    (int)(y + 0.1 * h)), new Point((int)(x + 0.625 * w), (int)(y + 0.2 * h)));
    +            path.AddBezier(new Point((int)(x + 0.625 * w), (int)(y + 0.2 * h)), new Point((int)(x + 0.5 * w),
    +                    (int)(y + 0.05 * h)), new Point((int)(x + 0.3 * w), (int)(y + 0.05 * h)),
    +                    new Point((int)(x + 0.25 * w), (int)(y + 0.25 * h)));
    +            path.CloseFigure();
    +
    +            DrawPath(path, brush, pen, shadow);
    +        }
    +
    +        /// <summary>
    +        /// Draws a triangle shape for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the shape.</param>
    +        /// <param name="y">Y-coordinate of the shape.</param>
    +        /// <param name="w">Width of the shape.</param>
    +        /// <param name="h">Height of the shape.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        /// <param name="direction">Specifies the direction of the triangle.</param>
    +        protected void DrawTriangle(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, string direction)
    +        {
    +            Point[] triangle = null;
    +
    +            if (direction.Equals(mxConstants.DIRECTION_NORTH))
    +            {
    +                triangle = new Point[]{
    +                    new Point(x, y + h),
    +                    new Point(x+w/2, y),
    +                    new Point(x+w, y+h)};
    +            }
    +            else if (direction.Equals(mxConstants.DIRECTION_SOUTH))
    +            {
    +                triangle = new Point[]{
    +                    new Point(x, y),
    +                    new Point(x+w/2, y+h),
    +                    new Point(x+w, y)};
    +            }
    +            else if (direction.Equals(mxConstants.DIRECTION_WEST))
    +            {
    +                triangle = new Point[]{
    +                    new Point(x + w, y),
    +                    new Point(x, y+h/2),
    +                    new Point(x + w, y+h)};
    +            }
    +            else // east
    +            {
    +                triangle = new Point[]{
    +                    new Point(x, y),
    +                    new Point(x+w, y+h/2),
    +                    new Point(x, y+h)};
    +            }
    +
    +            DrawPolygon(triangle, brush, pen, shadow);
    +        }
    +
    +        /// <summary>
    +        /// Draws a hexagon shape for the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the shape.</param>
    +        /// <param name="y">Y-coordinate of the shape.</param>
    +        /// <param name="w">Width of the shape.</param>
    +        /// <param name="h">Height of the shape.</param>
    +        /// <param name="brush">Optional brush for painting the background.</param>
    +        /// <param name="pen">Optional pen for painting the border.</param>
    +        /// <param name="shadow">Boolean indicating if a shadow should be painted.</param>
    +        /// <param name="direction">Specifies the direction of the hexagon.</param>
    +        protected void DrawHexagon(int x, int y, int w, int h, Brush brush, Pen pen, bool shadow, string direction)
    +        {
    +            Point[] hexagon = null;
    +
    +            if (direction.Equals(mxConstants.DIRECTION_NORTH) ||
    +                direction.Equals(mxConstants.DIRECTION_SOUTH))
    +            {
    +                hexagon = new Point[]{
    +                    new Point(x + (int)(0.5 * w), y),
    +                    new Point(x + w, y + (int)(0.25 * h)),
    +                    new Point(x + w, y + (int)(0.75 * h)),
    +                    new Point(x + (int)(0.5 * w), y + h),
    +                    new Point(x, y + (int)(0.75 * h)),
    +                    new Point(x, y + (int)(0.25 * h))};
    +            }
    +            else
    +            {
    +                hexagon = new Point[]{
    +                    new Point(x + (int) (0.25 * w), y),
    +                    new Point(x + (int)(0.75 * w), y),
    +                    new Point(x + w, y + (int)(0.5 * h)),
    +                    new Point(x + (int)(0.75 * w), y + h),
    +                    new Point(x + (int)(0.25 * w), y + h),
    +                    new Point(x, y + (int)(0.5 * h))};
    +            }
    +
    +            DrawPolygon(hexagon, brush, pen, shadow);
    +        }
    +
    +        /// <summary>
    +        /// Computes the arc size for the given dimension.
    +        /// </summary>
    +        /// <param name="w">Width of the rectangle.</param>
    +        /// <param name="h">Height of the rectangle.</param>
    +        /// <returns>Returns the arc size for the given dimension.</returns>
    +        public static int getArcSize(int w, int h)
    +        {
    +            int arcSize;
    +
    +            if (w <= h)
    +            {
    +                arcSize = h / 5;
    +                if (arcSize > (w / 2))
    +                {
    +                    arcSize = w / 2;
    +                }
    +            }
    +            else
    +            {
    +                arcSize = w / 5;
    +                if (arcSize > (h / 2))
    +                {
    +                    arcSize = h / 2;
    +                }
    +            }
    +            return arcSize;
    +        }
    +
    +        /// <summary>
    +        /// Draws the given lines as segments between all points of the given list
    +        /// of mxPoints.
    +        /// </summary>
    +        /// <param name="pts">List of points that define the line.</param>
    +        /// <param name="style">Style to be used for painting the line.</param>
    +        public void DrawLine(List<mxPoint> pts, Dictionary<string, Object> style)
    +        {
    +            Color? penColor = mxUtils.GetColor(style, mxConstants.STYLE_STROKECOLOR, Color.Black);
    +            float penWidth = mxUtils.GetFloat(style, mxConstants.STYLE_STROKEWIDTH, 1);
    +            Boolean rounded = mxUtils.IsTrue(style, mxConstants.STYLE_ROUNDED, false);
    +
    +            if (penColor != null && penWidth > 0)
    +            {
    +                Pen pen = new Pen((Color)penColor, (float)(penWidth * scale));
    +
    +                if (mxUtils.IsTrue(style, mxConstants.STYLE_DASHED, false))
    +                {
    +                    float[] tmp = { (float)(3 * scale), (float)(3 * scale) };
    +                    pen.DashPattern = tmp;
    +                }
    +
    +                // Draws the shape
    +                string shape = mxUtils.GetString(style, mxConstants.STYLE_SHAPE, "");
    +
    +                switch (shape)
    +                {
    +                    case (mxConstants.SHAPE_ARROW):
    +                    {
    +                        // Base vector (between end points)
    +                        mxPoint p0 = pts[0];
    +                        mxPoint pe = pts[pts.Count - 1];
    +
    +                        int x = (int) Math.Min(p0.X, pe.X);
    +                        int y = (int) Math.Min(p0.Y, pe.Y);
    +                        int x1 = (int) Math.Max(p0.X, pe.X);
    +                        int y1 = (int) Math.Max(p0.Y, pe.Y);
    +                        int w = x1 - x;
    +                        int h = y1 - y;
    +
    +                        Rectangle bounds = new Rectangle(x, y, w, h);
    +                        
    +                        bool shadow = mxUtils.IsTrue(style, mxConstants.STYLE_SHADOW, false);
    +                        Color? fillColor = mxUtils.GetColor(style, mxConstants.STYLE_FILLCOLOR);
    +                        float opacity = mxUtils.GetFloat(style, mxConstants.STYLE_OPACITY, 100);
    +                        int alpha = (int)(255 * opacity / 100);
    +                        Brush brush = null;
    +
    +                        if (fillColor != null)
    +                        {
    +                            Color fill = (Color)fillColor;
    +
    +                            if (opacity != 100)
    +                            {
    +                                fill = Color.FromArgb(alpha, fill.R, fill.G, fill.B);
    +                            }
    +
    +                            Color? gradientColor = mxUtils.GetColor(style, mxConstants.STYLE_GRADIENTCOLOR);
    +
    +                            if (gradientColor != null)
    +                            {
    +                                String gradientDirection = mxUtils.GetString(style,
    +                                        mxConstants.STYLE_GRADIENT_DIRECTION);
    +                                LinearGradientMode mode = LinearGradientMode.ForwardDiagonal;
    +
    +                                if (gradientDirection != null
    +                                        && !gradientDirection
    +                                                .Equals(mxConstants.DIRECTION_SOUTH))
    +                                {
    +                                    if (gradientDirection.Equals(mxConstants.DIRECTION_EAST))
    +                                    {
    +                                        mode = LinearGradientMode.BackwardDiagonal;
    +                                    }
    +                                    else if (gradientDirection.Equals(mxConstants.DIRECTION_NORTH))
    +                                    {
    +                                        mode = LinearGradientMode.Horizontal;
    +                                    }
    +                                    else if (gradientDirection.Equals(mxConstants.DIRECTION_WEST))
    +                                    {
    +                                        mode = LinearGradientMode.Vertical;
    +                                    }
    +                                }
    +
    +                                brush = new LinearGradientBrush(bounds, fill, (Color)gradientColor, mode);
    +                            }
    +                            else
    +                            {
    +                                brush = new SolidBrush(fill);
    +                            }
    +                        }
    +
    +                        // Geometry of arrow
    +                        double spacing = mxConstants.ARROW_SPACING * scale;
    +                        double width = mxConstants.ARROW_WIDTH * scale;
    +                        double arrow = mxConstants.ARROW_SIZE * scale;
    +
    +                        double dx = pe.X - p0.X;
    +                        double dy = pe.Y - p0.Y;
    +                        double dist = Math.Sqrt(dx * dx + dy * dy);
    +                        double length = dist - 2 * spacing - arrow;
    +
    +                        // Computes the norm and the inverse norm
    +                        double nx = dx / dist;
    +                        double ny = dy / dist;
    +                        double basex = length * nx;
    +                        double basey = length * ny;
    +                        double floorx = width * ny / 3;
    +                        double floory = -width * nx / 3;
    +
    +                        // Computes points
    +                        double p0x = p0.X - floorx / 2 + spacing * nx;
    +                        double p0y = p0.Y - floory / 2 + spacing * ny;
    +                        double p1x = p0x + floorx;
    +                        double p1y = p0y + floory;
    +                        double p2x = p1x + basex;
    +                        double p2y = p1y + basey;
    +                        double p3x = p2x + floorx;
    +                        double p3y = p2y + floory;
    +                        // p4 not necessary
    +                        double p5x = p3x - 3 * floorx;
    +                        double p5y = p3y - 3 * floory;
    +
    +                        Point[] poly = new Point[]{
    +                            new Point((int) p0x, (int) p0y),
    +                            new Point((int) p1x, (int) p1y),
    +                            new Point((int) p2x, (int) p2y),
    +                            new Point((int) p3x, (int) p3y),
    +                            new Point((int) (pe.X - spacing * nx), (int) (pe
    +                                .Y - spacing * ny)),
    +                            new Point((int) p5x, (int) p5y),
    +                            new Point((int) (p5x + floorx), (int) (p5y + floory))};
    +                        DrawPolygon(poly, brush, pen, shadow);
    +
    +                        break;
    +                    }
    +                    default:
    +                    {
    +                        // TODO: Move code into DrawConnector method
    +
    +                        // Draws the start marker
    +                        Object marker = mxUtils.GetString(style, mxConstants.STYLE_STARTARROW);
    +
    +                        mxPoint p0 = pts[0];
    +                        mxPoint pt = pts[1];
    +                        mxPoint offset = null;
    +
    +                        if (marker != null)
    +                        {
    +                            float size = (float) (mxUtils.GetFloat(style, mxConstants.STYLE_STARTSIZE,
    +                                mxConstants.DEFAULT_MARKERSIZE));
    +                            offset = DrawMarker(marker, pt, p0, size, pen);
    +                        }
    +                        else
    +                        {
    +                            double dx = pt.X - p0.X;
    +                            double dy = pt.Y - p0.Y;
    +
    +                            double dist = Math.Max(1, Math.Sqrt(dx * dx + dy * dy));
    +                            double nx = dx * penWidth * scale / dist;
    +                            double ny = dy * penWidth * scale / dist;
    +
    +                            offset = new mxPoint(nx / 2, ny / 2);
    +                        }
    +
    +                        // Applies offset to point
    +                        if (offset != null)
    +                        {
    +                            p0 = p0.Clone();
    +                            p0.X += offset.X;
    +                            p0.Y += offset.Y;
    +
    +                            offset = null;
    +                        }
    +
    +                        // Draws the end marker
    +                        marker = mxUtils.GetString(style, mxConstants.STYLE_ENDARROW);
    +
    +                        mxPoint pe = pts[pts.Count - 1];
    +                        pt = pts[pts.Count - 2];
    +
    +                        if (marker != null)
    +                        {
    +                            float size = (float) (mxUtils.GetFloat(style, mxConstants.STYLE_ENDSIZE,
    +                                 mxConstants.DEFAULT_MARKERSIZE));
    +                            offset = DrawMarker(marker, pt, pe, size, pen);
    +                        }
    +                        else
    +                        {
    +                            double dx = pt.X - p0.X;
    +                            double dy = pt.Y - p0.Y;
    +
    +                            double dist = Math.Max(1, Math.Sqrt(dx * dx + dy * dy));
    +                            double nx = dx * penWidth * scale / dist;
    +                            double ny = dy * penWidth * scale / dist;
    +
    +                            offset = new mxPoint(nx / 2, ny / 2);
    +                        }
    +
    +                        // Applies offset to the point
    +                        if (offset != null)
    +                        {
    +                            pe = pe.Clone();
    +                            pe.X += offset.X;
    +                            pe.Y += offset.Y;
    +
    +                            offset = null;
    +                        }
    +
    +                        // Draws the line using a GraphicsPath
    +                        GraphicsPath path = new GraphicsPath();
    +                        double arcSize = mxConstants.LINE_ARCSIZE * scale;
    +                        pt = p0;
    +
    +                        for (int i = 1; i < pts.Count - 1; i++)
    +                        {
    +                            mxPoint tmp = pts[i];
    +                            double dx = pt.X - tmp.X;
    +                            double dy = pt.Y - tmp.Y;
    +
    +                            if ((rounded && i < pts.Count - 1) && (dx != 0 || dy != 0)
    +                                    && scale > 0.3)
    +                            {
    +                                // Draws a line from the last point to the current point with a
    +                                // spacing of size off the current point into direction of the
    +                                // last point
    +                                double dist = Math.Sqrt(dx * dx + dy * dy);
    +                                double nx1 = dx * Math.Min(arcSize, dist / 2) / dist;
    +                                double ny1 = dy * Math.Min(arcSize, dist / 2) / dist;
    +                                path.AddLine((float)(pt.X), (float)(pt.Y),
    +                                    (float)(tmp.X + nx1), (float)(tmp.Y + ny1));
    +
    +                                // Draws a line from the last point to the current point with a
    +                                // spacing of size off the current point into direction of the
    +                                // last point
    +                                mxPoint next = pts[i + 1];
    +                                dx = next.X - tmp.X;
    +                                dy = next.Y - tmp.Y;
    +                                dist = Math.Max(1, Math.Sqrt(dx * dx + dy * dy));
    +                                double nx2 = dx * Math.Min(arcSize, dist / 2) / dist;
    +                                double ny2 = dy * Math.Min(arcSize, dist / 2) / dist;
    +                                path.AddBezier(
    +                                    (float)(tmp.X + nx1), (float)(tmp.Y + ny1),
    +                                    (float)(tmp.X), (float)(tmp.Y),
    +                                    (float)(tmp.X), (float)(tmp.Y),
    +                                    (float)(tmp.X + nx2), (float)(tmp.Y + ny2));
    +                                tmp = new mxPoint(tmp.X + nx2, tmp.Y + ny2);
    +                            }
    +                            else
    +                            {
    +                                path.AddLine((float)(pt.X), (float)(pt.Y), (float)(tmp.X), (float)(tmp.Y));
    +                            }
    +
    +                            pt = tmp;
    +                        }
    +
    +                        path.AddLine((float)(pt.X), (float)(pt.Y), (float)(pe.X), (float)(pe.Y));
    +                        g.DrawPath(pen, path);
    +
    +                        break;
    +                    }
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Draws the given type of marker.
    +        /// </summary>
    +        /// <param name="type"></param>
    +        /// <param name="p0"></param>
    +        /// <param name="pe"></param>
    +        /// <param name="size"></param>
    +        /// <param name="pen"></param>
    +        /// <returns></returns>
    +        public mxPoint DrawMarker(Object type, mxPoint p0, mxPoint pe, float size, Pen pen)
    +        {
    +            Brush brush = new SolidBrush(pen.Color);
    +            float strokeWidth = (float) (pen.Width / scale);
    +            mxPoint offset = null;
    +
    +            // Computes the norm and the inverse norm
    +            double dx = pe.X - p0.X;
    +            double dy = pe.Y - p0.Y;
    +
    +            double dist = Math.Max(1, Math.Sqrt(dx * dx + dy * dy));
    +            double absSize = size * scale;
    +            double nx = dx * absSize / dist;
    +            double ny = dy * absSize / dist;
    +
    +            pe = (mxPoint)pe.Clone();
    +            pe.X -= nx * strokeWidth / (2 * size);
    +            pe.Y -= ny * strokeWidth / (2 * size);
    +
    +            nx *= 0.5 + strokeWidth / 2;
    +            ny *= 0.5 + strokeWidth / 2;
    +
    +            if (type.Equals(mxConstants.ARROW_CLASSIC))
    +            {
    +                GraphicsPath path = new GraphicsPath();
    +                path.AddLines(new Point[]{
    +                    new Point((int)Math.Round(pe.X), (int)Math.Round(pe.Y)),
    +                    new Point((int)Math.Round(pe.X - nx - ny / 2),
    +                        (int)Math.Round(pe.Y - ny + nx / 2)),
    +                    new Point((int)Math.Round(pe.X - nx * 3 / 4),
    +                        (int)Math.Round(pe.Y - ny * 3 / 4)),
    +                    new Point((int)Math.Round(pe.X + ny / 2 - nx),
    +                        (int)Math.Round(pe.Y - ny - nx / 2))});
    +                path.CloseFigure();
    +
    +                g.FillPath(brush, path);
    +                g.DrawPath(pen, path);
    +
    +                offset = new mxPoint(-nx * 3 / 4, -ny * 3 / 4);
    +            }
    +            else if (type.Equals(mxConstants.ARROW_BLOCK))
    +            {
    +                GraphicsPath path = new GraphicsPath();
    +                path.AddLines(new Point[]{
    +                    new Point((int)Math.Round(pe.X), (int)Math.Round(pe.Y)),
    +                    new Point((int)Math.Round(pe.X - nx - ny / 2),
    +                        (int)Math.Round(pe.Y - ny + nx / 2)),
    +                    new Point((int)Math.Round(pe.X + ny / 2 - nx),
    +                        (int)Math.Round(pe.Y - ny - nx / 2))});
    +                path.CloseFigure();
    +
    +                g.FillPath(brush, path);
    +                g.DrawPath(pen, path);
    +
    +                offset = new mxPoint(-nx * 3 / 4, -ny * 3 / 4);
    +            }
    +            else if (type.Equals(mxConstants.ARROW_OPEN))
    +            {
    +                nx *= 1.2;
    +                ny *= 1.2;
    +
    +                g.DrawLine(pen, (int)Math.Round(pe.X - nx - ny / 2),
    +                        (int)Math.Round(pe.Y - ny + nx / 2),
    +                        (int)Math.Round(pe.X - nx / 6),
    +                        (int)Math.Round(pe.Y - ny / 6));
    +                g.DrawLine(pen, (int)Math.Round(pe.X - nx / 6),
    +                        (int)Math.Round(pe.Y - ny / 6),
    +                        (int)Math.Round(pe.X + ny / 2 - nx),
    +                        (int)Math.Round(pe.Y - ny - nx / 2));
    +
    +                offset = new mxPoint(-nx / 4, -ny / 4);
    +            }
    +            else if (type.Equals(mxConstants.ARROW_OVAL))
    +            {
    +                nx *= 1.2;
    +                ny *= 1.2;
    +                absSize *= 1.2;
    +
    +                int cx = (int)Math.Round(pe.X - nx / 2);
    +                int cy = (int)Math.Round(pe.Y - ny / 2);
    +                int a = (int)Math.Round(absSize / 2);
    +                int a2 = (int)Math.Round(absSize);
    +
    +                g.FillEllipse(brush, cx - a, cy - a, a2, a2);
    +                g.DrawEllipse(pen, cx - a, cy - a, a2, a2);
    +
    +                offset = new mxPoint(-nx / 2, -ny / 2);
    +            }
    +            else if (type.Equals(mxConstants.ARROW_DIAMOND))
    +            {
    +                nx *= 1.2;
    +                ny *= 1.2;
    +
    +                Point[] poly = new Point[]{
    +                    new Point((int)Math.Round(pe.X + nx / 2),
    +                        (int)Math.Round(pe.Y + ny / 2)),
    +                    new Point((int)Math.Round(pe.X - ny / 2),
    +                        (int)Math.Round(pe.Y + nx / 2)),
    +                    new Point((int)Math.Round(pe.X - nx / 2),
    +                        (int)Math.Round(pe.Y - ny / 2)),
    +                    new Point((int)Math.Round(pe.X + ny / 2),
    +                        (int)Math.Round(pe.Y - nx / 2))};
    +
    +                g.FillPolygon(brush, poly);
    +                g.DrawPolygon(pen, poly);
    +            }
    +
    +            return offset;
    +        }
    +
    +        /// <summary>
    +        /// Draws the specified text either using drawHtmlString or using drawString.
    +        /// </summary>
    +        /// <param name="text"></param>
    +        /// <param name="x">X-coordinate of the text.</param>
    +        /// <param name="y">Y-coordinate of the text.</param>
    +        /// <param name="w">Width of the text.</param>
    +        /// <param name="h">Height of the text.</param>
    +        /// <param name="style">Style to be used for painting the text.</param>
    +        public void DrawText(string text, int x, int y, int w, int h,
    +                Dictionary<string, Object> style)
    +        {
    +            if (text != null && text.Length > 0)
    +            {
    +                Font font = mxUtils.GetFont(style, scale);
    +
    +                if (font.Size > 0)
    +                {
    +                    // Draws the label background and border
    +                    Color? labelBackground = mxUtils.GetColor(style, mxConstants.STYLE_LABEL_BACKGROUNDCOLOR);
    +                    Color? labelBorder = mxUtils.GetColor(style, mxConstants.STYLE_LABEL_BORDERCOLOR);
    +                    Color? fontColor = mxUtils.GetColor(style, mxConstants.STYLE_FONTCOLOR, Color.Black);
    +
    +                    float opacity = mxUtils.GetFloat(style, mxConstants.STYLE_OPACITY, 100);
    +                    int alpha = (int)(255 * opacity / 100);
    +
    +                    if (opacity < 100)
    +                    {
    +                        if (labelBackground != null)
    +                        {
    +                            Color tmp = (Color)labelBackground;
    +                            labelBackground = Color.FromArgb(alpha, tmp.R, tmp.G, tmp.B);
    +                        }
    +
    +                        if (labelBorder != null)
    +                        {
    +                            Color tmp = (Color)labelBorder;
    +                            labelBorder = Color.FromArgb(alpha, tmp.R, tmp.G, tmp.B);
    +                        }
    +
    +                        if (fontColor != null)
    +                        {
    +                            Color tmp = (Color)fontColor;
    +                            fontColor = Color.FromArgb(alpha, tmp.R, tmp.G, tmp.B);
    +                        }
    +                    }
    +
    +
    +                    // Draws the label background
    +                    if (labelBackground != null)
    +                    {
    +                        Brush bg = new SolidBrush((Color)labelBackground);
    +                        g.FillRectangle(bg, x, y, w, h);
    +                    }
    +
    +                    // Draws the label border
    +                    if (labelBorder != null)
    +                    {
    +                        Pen pen = new Pen((Color)labelBorder, (float)(1 * scale));
    +                        g.DrawRectangle(pen, x, y, w, h);
    +                    }
    +
    +                    Brush brush = new SolidBrush((Color)fontColor);
    +                    StringFormat format = mxUtils.GetStringFormat(style);
    +
    +                    // Rotates the graphics for vertical labels
    +                    RectangleF rect = new Rectangle(x, y, w, h);
    +                    bool horizontal = mxUtils.IsTrue(style, mxConstants.STYLE_HORIZONTAL, true);
    +
    +                    if (!horizontal)
    +                    {
    +                        Matrix mat = new Matrix();
    +                        mat.RotateAt(-90f, new PointF(x + w / 2, y + h / 2), MatrixOrder.Append);
    +                        g.Transform = mat;
    +
    +                        // Rotates the rectangle again to match the drawing as it
    +                        // is already rotated and will be rotated again in the
    +                        // drawString call according to the transform above
    +                        GraphicsPath path = new GraphicsPath();
    +                        path.AddRectangle(rect);
    +                        path.Transform(mat);
    +                        rect = path.GetBounds();
    +                    }
    +
    +                    // Draws the text
    +                    g.DrawString(text, font, brush, rect, format);
    +
    +                    // Resets the rotation
    +                    g.ResetTransform();
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Destroys the canvas and frees all allocated resources.
    +        /// </summary>
    +        public void Destroy()
    +        {
    +            g.Dispose();
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/canvas/mxGdiCanvas2D.cs b/dotnet/src/canvas/mxGdiCanvas2D.cs
    new file mode 100644
    index 000000000..f36874366
    --- /dev/null
    +++ b/dotnet/src/canvas/mxGdiCanvas2D.cs
    @@ -0,0 +1,1112 @@
    +// $Id: mxGdiCanvas2D.cs,v 1.13 2012-04-24 13:56:56 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Drawing;
    +using System.Drawing.Drawing2D;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.IO;
    +using System.Diagnostics;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Used for exporting images.
    +    /// <example>To render to an image from a given XML string, graph size and
    +    /// and background color, the following code is used:
    +    /// <code>
    +    /// Image image = mxUtils.CreateImage(width, height, background);
    +    /// Graphics g = Graphics.FromImage(image);
    +    /// g.SmoothingMode = SmoothingMode.HighQuality;
    +    /// mxSaxOutputHandler handler = new mxSaxOutputHandler(new mxGdiCanvas2D(g));
    +    /// handler.Read(new XmlTextReader(new StringReader(xml)));
    +    /// </code>
    +    /// </example>
    +    /// Text rendering is available for plain text only, with optional word wrapping.
    +    /// </summary>
    +    public class mxGdiCanvas2D : mxICanvas2D
    +    {
    +	    /// <summary>
    +        /// Reference to the graphics instance for painting.
    +	    /// </summary>
    +	    protected Graphics graphics;
    +
    +	    /// <summary>
    +        /// Represents the current state of the canvas.
    +	    /// </summary>
    +	    protected CanvasState state = new CanvasState();
    +
    +	    /// <summary>
    +        /// Stack of states for save/restore.
    +	    /// </summary>
    +	    protected Stack<CanvasState> stack = new Stack<CanvasState>();
    +
    +	    /// <summary>
    +        /// Holds the current path.
    +	    /// </summary>
    +	    protected GraphicsPath currentPath;
    +
    +	    /// <summary>
    +	    /// Holds the last point of a moveTo or lineTo operation to determine if the
    +        /// current path is orthogonal.
    +	    /// </summary>
    +	    protected mxPoint lastPoint;
    +
    +	    /// <summary>
    +	    /// Holds the current value for the shadow color. This is used to hold the
    +        /// input value of a shadow operation. The parsing result of this value is
    +        /// cached in the global scope as it should be repeating.
    +	    /// </summary>
    +	    protected string currentShadowValue;
    +
    +	    /// <summary>
    +	    /// Holds the current parsed shadow color. This holds the result of parsing
    +        /// the currentShadowValue, which is an expensive operation.
    +	    /// </summary>
    +	    protected Color currentShadowColor;
    +
    +	    /// <summary>
    +        /// Constructs a new graphics export canvas.
    +	    /// </summary>
    +	    public mxGdiCanvas2D(Graphics g)
    +	    {
    +            Graphics = g;
    +	    }
    +
    +	    /// <summary>
    +        /// Sets the graphics instance.
    +	    /// </summary>
    +        Graphics Graphics
    +        {
    +            get { return graphics; }
    +            set { graphics = value; }
    +        }
    +
    +	    /// <summary>
    +        /// Saves the current canvas state.
    +	    /// </summary>
    +	    public void Save()
    +	    {
    +            state.state = graphics.Save();
    +		    stack.Push(state);
    +		    state = (CanvasState) state.Clone();
    +	    }
    +
    +	    /// <summary>
    +        /// Restores the last canvas state.
    +	    /// </summary>
    +	    public void Restore()
    +	    {
    +		    state = stack.Pop();
    +            graphics.Restore(state.state);
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the given scale.
    +	    /// </summary>
    +	    /// <param name="value"></param>
    +	    public void Scale(double value)
    +	    {
    +		    // This implementation uses custom scale/translate and built-in rotation
    +		    state.scale = state.scale * value;
    +            state.strokeWidth *= value;
    +	    }
    +
    +	    /// <summary>
    +	    /// Translates the canvas.
    +	    /// </summary>
    +	    /// <param name="dx"></param>
    +	    /// <param name="dy"></param>
    +	    public void Translate(double dx, double dy)
    +	    {
    +		    // This implementation uses custom scale/translate and built-in rotation
    +		    state.dx += dx;
    +		    state.dy += dy;
    +	    }
    +
    +	    /// <summary>
    +	    /// Rotates the canvas.
    +	    /// </summary>
    +	    public void Rotate(double theta, bool flipH, bool flipV, double cx,
    +			    double cy)
    +	    {
    +		    cx += state.dx;
    +		    cy += state.dy;
    +
    +		    cx *= state.scale;
    +		    cy *= state.scale;
    +
    +		    // This implementation uses custom scale/translate and built-in rotation
    +		    // Rotation state is part of the AffineTransform in state.transform
    +		    if (flipH ^ flipV)
    +		    {
    +			    double tx = (flipH) ? cx : 0;
    +			    int sx = (flipH) ? -1 : 1;
    +
    +			    double ty = (flipV) ? cy : 0;
    +			    int sy = (flipV) ? -1 : 1;
    +
    +                graphics.TranslateTransform((float)tx, (float)ty, MatrixOrder.Append);
    +                graphics.ScaleTransform(sx, sy, MatrixOrder.Append);
    +                graphics.TranslateTransform((float)-tx, (float)-ty, MatrixOrder.Append);
    +		    }
    +
    +            graphics.TranslateTransform((float)-cx, (float)-cy, MatrixOrder.Append);
    +            graphics.RotateTransform((float)theta, MatrixOrder.Append);
    +            graphics.TranslateTransform((float)cx, (float)cy, MatrixOrder.Append);
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the strokewidth.
    +	    /// </summary>
    +        public double StrokeWidth
    +        {
    +            set
    +            {
    +                // Lazy and cached instantiation strategy for all stroke properties
    +		        if (value * state.scale != state.strokeWidth)
    +		        {
    +			        state.strokeWidth = value * state.scale;
    +
    +			        // Invalidates cached pen
    +                    state.pen = null;
    +		        }
    +            }
    +        }
    +
    +	    /// <summary>
    +        /// Caches color conversion as it is expensive.
    +	    /// </summary>
    +        public string StrokeColor
    +        {
    +            set
    +            {
    +                // Lazy and cached instantiation strategy for all stroke properties
    +		        if (!state.strokeColorValue.Equals(value))
    +		        {
    +			        state.strokeColorValue = value;
    +			        state.strokeColor = null;
    +                    state.pen = null;
    +		        }
    +            }
    +        }
    +
    +	    /// <summary>
    +	    /// Specifies if lines are dashed.
    +	    /// </summary>
    +        public bool Dashed
    +        {
    +            set
    +            {
    +                // Lazy and cached instantiation strategy for all stroke properties
    +		        if (value != state.dashed)
    +		        {
    +			        state.dashed = value;
    +
    +			        // Invalidates cached pen
    +                    state.pen = null;
    +		        }
    +            }
    +        }
    +
    +	    /// <summary>
    +	    /// Sets the dashpattern.
    +	    /// </summary>
    +        public string DashPattern
    +        {
    +            set
    +            {
    +		        if (!state.dashPattern.Equals(value))
    +		        {
    +			        float[] dashpattern = null;
    +
    +			        if (state.dashed && state.dashPattern != null)
    +			        {
    +				        String[] tokens = value.Split(' ');
    +				        dashpattern = new float[tokens.Length];
    +
    +				        for (int i = 0; i < tokens.Length; i++)
    +				        {
    +					        dashpattern[i] = (float) (float.Parse(tokens[i]));
    +				        }
    +			        }
    +
    +			        state.dashPattern = dashpattern;
    +                    state.pen = null;
    +		        }
    +            }
    +        }
    +
    +	    /// <summary>
    +	    /// Sets the linecap.
    +	    /// </summary>
    +        public string LineCap
    +        {
    +            set
    +            {
    +		        if (!state.lineCap.Equals(value))
    +		        {
    +			        state.lineCap = value;
    +                    state.pen = null;
    +		        }
    +            }
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the linejoin.
    +	    /// </summary>
    +        public string LineJoin
    +        {
    +            set
    +            {
    +		        if (!state.lineJoin.Equals(value))
    +		        {
    +			        state.lineJoin = value;
    +                    state.pen = null;
    +		        }
    +            }
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the miterlimit.
    +	    /// </summary>
    +        public double MiterLimit
    +        {
    +            set
    +            {
    +		        if (value != state.miterLimit)
    +		        {
    +			        state.miterLimit = value;
    +                    state.pen = null;
    +		        }
    +            }
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the fontsize.
    +	    /// </summary>
    +        public double FontSize
    +        {
    +            set
    +            {
    +		        if (value != state.fontSize)
    +		        {
    +			        state.fontSize = value * state.scale;
    +			        state.font = null;
    +		        }
    +            }
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the fontcolor.
    +	    /// </summary>
    +        public string FontColor
    +        {
    +            set
    +            {
    +		        if (!state.fontColorValue.Equals(value))
    +		        {
    +			        state.fontColorValue = value;
    +			        state.fontBrush = null;
    +		        }
    +            }
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the font family.
    +	    /// </summary>
    +        public string FontFamily
    +        {
    +            set
    +            {
    +		        if (!state.fontFamily.Equals(value))
    +		        {
    +			        state.fontFamily = value;
    +			        state.font = null;
    +		        }
    +            }
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the given fontstyle.
    +	    /// </summary>
    +        public int FontStyle
    +        {
    +            set
    +            {
    +		        if (value != state.fontStyle)
    +		        {
    +			        state.fontStyle = value;
    +			        state.font = null;
    +		        }
    +            }
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the given alpha.
    +	    /// </summary>
    +        public double Alpha
    +        {
    +            set
    +            {
    +                state.alpha = value;
    +            }
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the given fillcolor.
    +	    /// </summary>
    +        public string FillColor
    +        {
    +            set
    +            {
    +                state.brush = new SolidBrush(ParseColor(value));
    +            }
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the given gradient.
    +	    /// </summary>
    +	    public void SetGradient(String color1, String color2, double x, double y,
    +			    double w, double h, String direction)
    +	    {
    +		    // LATER: Add lazy instantiation and check if paint already created
    +            x = state.dx + x * state.scale;
    +		    y = state.dy + y * state.scale;
    +		    h *= state.scale;
    +		    w *= state.scale;
    +
    +            // FIXME: Needs to swap colors and use only horizontal and vertical
    +            LinearGradientMode mode = LinearGradientMode.ForwardDiagonal;
    +
    +            if (direction != null && direction.Length > 0
    +                    && !direction.Equals(mxConstants.DIRECTION_SOUTH))
    +            {
    +                if (direction.Equals(mxConstants.DIRECTION_EAST))
    +                {
    +                    mode = LinearGradientMode.BackwardDiagonal;
    +                }
    +                else if (direction.Equals(mxConstants.DIRECTION_NORTH))
    +                {
    +                    mode = LinearGradientMode.Horizontal;
    +                }
    +                else if (direction.Equals(mxConstants.DIRECTION_WEST))
    +                {
    +                    mode = LinearGradientMode.Vertical;
    +                }
    +            }
    +
    +            state.brush = new LinearGradientBrush(new RectangleF((float) x, (float) y,
    +                (float) w, (float) h), ParseColor(color1), ParseColor(color2), mode);
    +	    }
    +
    +	    /// <summary>
    +	    /// Helper method that uses {@link mxUtils#parseColor(String)}. Subclassers
    +        /// can override this to implement caching for frequently used colors.
    +	    /// </summary>
    +	    protected Color ParseColor(string hex)
    +	    {
    +            Color color = ColorTranslator.FromHtml(hex);
    +
    +            // Poor man's setAlpha
    +            color = Color.FromArgb((int) (state.alpha * 255), color.R, color.G, color.B);
    +
    +            return color;
    +	    }
    +
    +	    /// <summary>
    +	    /// Sets the given glass gradient.
    +	    /// </summary>
    +	    public void SetGlassGradient(double x, double y, double w, double h)
    +	    {
    +		    double size = 0.6;
    +		    x = state.dx + x * state.scale;
    +		    y = state.dy + y * state.scale;
    +		    h *= state.scale;
    +		    w *= state.scale;
    +
    +            state.brush = new LinearGradientBrush(new RectangleF((float) x, (float) y,
    +                (float) w, (float) (size * h)), Color.FromArgb((int)(0.9 * 255), 255, 255, 255),
    +                Color.FromArgb((int)(0.15 * 255), 255, 255, 255), LinearGradientMode.Vertical);
    +	    }
    +
    +	    /// <summary>
    +	    /// Draws a rectangle.
    +	    /// </summary>
    +	    public void Rect(double x, double y, double w, double h)
    +	    {
    +		    currentPath = new GraphicsPath();
    +		    currentPath.AddRectangle(new RectangleF((float) (state.dx + x * state.scale),
    +                    (float) (state.dy + y * state.scale), (float) (w * state.scale),
    +                    (float) (h * state.scale)));
    +	    }
    +
    +	    /// <summary>
    +        /// Draws a rounded rectangle.
    +	    /// </summary>
    +	    public void Roundrect(double x, double y, double w, double h, double dx,
    +			    double dy)
    +	    {
    +		    Begin();
    +		    MoveTo(x + dx, y);
    +		    LineTo(x + w - dx, y);
    +		    QuadTo(x + w, y, x + w, y + dy);
    +		    LineTo(x + w, y + h - dy);
    +		    QuadTo(x + w, y + h, x + w - dx, y + h);
    +		    LineTo(x + dx, y + h);
    +		    QuadTo(x, y + h, x, y + h - dy);
    +		    LineTo(x, y + dy);
    +		    QuadTo(x, y, x + dx, y);
    +	    }
    +
    +	    /// <summary>
    +	    /// Draws an ellipse.
    +	    /// </summary>
    +	    public void Ellipse(double x, double y, double w, double h)
    +	    {
    +		    currentPath = new GraphicsPath();
    +		    currentPath.AddEllipse((float) (state.dx + x * state.scale),
    +                    (float) (state.dy + y * state.scale), (float) (w * state.scale),
    +                    (float) (h * state.scale));
    +	    }
    +
    +	    /// <summary>
    +	    /// Draws an image.
    +	    /// </summary>
    +	    public void Image(double x, double y, double w, double h, String src,
    +			    bool aspect, bool flipH, bool flipV)
    +	    {
    +		    if (src != null && w > 0 && h > 0)
    +		    {
    +			    Image image = LoadImage(src);
    +
    +                if (image != null)
    +			    {
    +                    GraphicsState previous = graphics.Save();
    +                    Rectangle bounds = GetImageBounds(image, x, y, w, h, aspect);
    +                    ConfigureImageGraphics(bounds.X, bounds.Y, bounds.Width,
    +                        bounds.Height, flipH, flipV);
    +                    DrawImage(image, bounds);
    +                    graphics.Restore(previous);
    +			    }
    +		    }
    +	    }
    +
    +        /// <summary>
    +        /// Implements the call to the graphics API.
    +        /// </summary>
    +        protected void DrawImage(Image image, Rectangle bounds)
    +        {
    +            graphics.DrawImage(image, bounds);
    +        }
    +
    +	    /// <summary>
    +	    /// Loads the specified image.
    +	    /// </summary>
    +	    protected Image LoadImage(String src)
    +	    {
    +		    return mxUtils.LoadImage(src);
    +	    }
    +
    +	    /// <summary>
    +	    /// Returns the bounds for the given image.
    +	    /// </summary>
    +	    protected Rectangle GetImageBounds(Image img, double x, double y,
    +			    double w, double h, bool aspect)
    +	    {
    +		    x = state.dx + x * state.scale;
    +		    y = state.dy + y * state.scale;
    +		    w *= state.scale;
    +		    h *= state.scale;
    +
    +		    if (aspect)
    +		    {
    +                Size size = GetImageSize(img);
    +                double s = Math.Min(w / size.Width, h / size.Height);
    +                int sw = (int)Math.Round(size.Width * s);
    +                int sh = (int)Math.Round(size.Height * s);
    +                x += (w - sw) / 2;
    +                y += (h - sh) / 2;
    +                w = sw;
    +                h = sh;
    +		    }
    +		    else
    +		    {
    +			    w = Math.Round(w);
    +			    h = Math.Round(h);
    +		    }
    +
    +		    return new Rectangle((int) x, (int) y, (int) w, (int) h);
    +	    }
    +
    +        /// <summary>
    +        /// Returns the size for the given image.
    +        /// </summary>
    +        protected Size GetImageSize(Image image)
    +        {
    +            return new Size(image.Width, image.Height);
    +        }
    +
    +	    /// <summary>
    +        /// Creates a graphic instance for rendering an image.
    +	    /// </summary>
    +	    protected void ConfigureImageGraphics(double x, double y,
    +			    double w, double h, bool flipH, bool flipV)
    +	    {
    +		    if (flipH || flipV)
    +		    {
    +			    int sx = 1;
    +			    int sy = 1;
    +			    int dx = 0;
    +			    int dy = 0;
    +
    +			    if (flipH)
    +			    {
    +				    sx = -1;
    +				    dx = (int) (-w - 2 * x);
    +			    }
    +
    +			    if (flipV)
    +			    {
    +				    sy = -1;
    +				    dy = (int) (-h - 2 * y);
    +			    }
    +
    +                graphics.ScaleTransform(sx, sy, MatrixOrder.Append);
    +                graphics.TranslateTransform(dx, dy, MatrixOrder.Append);
    +            }
    +	    }
    +
    +	    /// <summary>
    +        /// Draws the given text.
    +	    /// </summary>
    +	    public void Text(double x, double y, double w, double h, string str, string align,
    +                string valign, bool vertical, bool wrap, string format)
    +	    {
    +		    if (!state.fontColorValue.Equals(mxConstants.NONE))
    +		    {
    +                // HTML format is currently not supported so all BR are
    +                // replaced with linefeeds for minimal support
    +                if (format != null && format.Equals("html"))
    +                {
    +                    str = str.Replace("<br/>", "\n");
    +                    str = str.Replace("<br/>", "\n");
    +                    str = str.Replace("<br>", "\n");
    +                }
    +
    +			    x = state.dx + x * state.scale;
    +			    y = state.dy + y * state.scale;
    +			    w *= state.scale;
    +			    h *= state.scale;
    +
    +			    // Font-metrics needed below this line
    +                GraphicsState previous = graphics.Save();
    +                UpdateFont();
    +
    +                if (vertical)
    +                {
    +                    graphics.TranslateTransform((float)-(x + w / 2), (float)-(y + h / 2), MatrixOrder.Append);
    +                    graphics.RotateTransform(-90F, MatrixOrder.Append);
    +                    graphics.TranslateTransform((float)(x + w / 2), (float)(y + h / 2), MatrixOrder.Append);
    +                }
    +
    +                if (state.fontBrush == null)
    +                {
    +                    state.fontBrush = new SolidBrush(ParseColor(state.fontColorValue));
    +                }
    +
    +			    y = GetVerticalTextPosition(x, y, w, h, align, valign, vertical, state.font, str, wrap, format);
    +                x = GetHorizontalTextPosition(x, y, w, h, align, valign, vertical, state.font, str, wrap, format);
    +                w = GetTextWidth(x, y, w, h, align, valign, vertical, state.font, str, wrap, format);
    +
    +                RectangleF bounds = new RectangleF((float)x, (float)y, (float)w, (float)h);
    +                StringFormat fmt = CreateStringFormat(align, valign, wrap);
    +
    +                // Needed for custom linespacing
    +                string[] lines = str.Split('\n');
    +
    +                for (int i = 0; i < lines.Length; i++)
    +                {
    +                    graphics.DrawString(lines[i], state.font, state.fontBrush, bounds, fmt);
    +                    bounds.Y += state.font.Height + mxConstants.LINESPACING;
    +                }
    +
    +                graphics.Restore(previous);
    +		    }
    +	    }
    +
    +        /// <summary>
    +        /// Returns the width to be used to render the specifies text.
    +        /// </summary>
    +        protected double GetTextWidth(double x, double y, double w, double h, string align,
    +            string valign, bool vertical, Font font, string text, bool wrap, string format)
    +        {
    +            if (wrap)
    +            {
    +                w += 10;
    +            }
    +
    +            return w;
    +        }
    +
    +        /// <summary>
    +        /// Default alignment is top.
    +        /// </summary>
    +        protected double GetVerticalTextPosition(double x, double y, double w, double h, string align,
    +            string valign, bool vertical, Font font, string text, bool wrap, string format)
    +        {
    +            return y - 2;
    +        }
    +
    +        /// <summary>
    +        /// Default alignment is left.
    +        /// </summary>
    +        protected double GetHorizontalTextPosition(double x, double y, double w,
    +                double h, string align, string valign, bool vertical,
    +                Font font, string text, bool wrap, string format)
    +        {
    +            // Left is default
    +            if (align == null)
    +            {
    +                x -= 2;
    +            }
    +            else if (align.Equals(mxConstants.ALIGN_CENTER))
    +            {
    +                x -= 6;
    +            }
    +            else if (align.Equals(mxConstants.ALIGN_RIGHT))
    +            {
    +                x -= 10;
    +            }
    +
    +            return x;
    +        }
    +
    +        /// <summary>
    +        /// Creates the specified string format.
    +        /// </summary>
    +        public static StringFormat CreateStringFormat(string align, string valign, bool wrap)
    +        {
    +            StringFormat format = new StringFormat(StringFormatFlags.NoClip);
    +            format.Trimming = StringTrimming.None;
    +
    +            // This is not required as the rectangle for the text will take this flag into account.
    +            // However, we want to avoid any possible word-wrap unless explicitely specified.
    +            if (!wrap)
    +            {
    +                format.FormatFlags |= StringFormatFlags.NoWrap;
    +            }
    +
    +            if (align == null || align.Equals(mxConstants.ALIGN_LEFT))
    +            {
    +                format.Alignment = StringAlignment.Near;
    +            }
    +            else if (align.Equals(mxConstants.ALIGN_CENTER))
    +            {
    +                format.Alignment = StringAlignment.Center;                
    +            }
    +            else if (align.Equals(mxConstants.ALIGN_RIGHT))
    +            {
    +                format.Alignment = StringAlignment.Far;
    +            }
    +
    +            if (valign == null || valign.Equals(mxConstants.ALIGN_TOP))
    +            {
    +                format.LineAlignment = StringAlignment.Near;
    +            }
    +            else if (valign.Equals(mxConstants.ALIGN_MIDDLE))
    +            {
    +                format.LineAlignment = StringAlignment.Center;
    +            }
    +            else if (valign.Equals(mxConstants.ALIGN_BOTTOM))
    +            {
    +                format.LineAlignment = StringAlignment.Far;
    +            }
    +
    +            return format;
    +        }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    public void Begin()
    +	    {
    +		    currentPath = new GraphicsPath();
    +		    lastPoint = null;
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    public void MoveTo(double x, double y)
    +	    {
    +		    if (currentPath != null)
    +		    {
    +                // StartFigure avoids connection between last figure and new figure
    +                currentPath.StartFigure();
    +                lastPoint = new mxPoint(state.dx + x * state.scale, state.dy + y * state.scale);
    +		    }
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    public void LineTo(double x, double y)
    +	    {
    +		    if (currentPath != null)
    +		    {
    +                mxPoint nextPoint = new mxPoint(state.dx + x * state.scale, state.dy + y * state.scale);
    +
    +                if (lastPoint != null)
    +                {
    +			        currentPath.AddLine((float) lastPoint.X, (float) lastPoint.Y,
    +                            (float) nextPoint.X, (float) nextPoint.Y);
    +                }
    +
    +                lastPoint = nextPoint;
    +		    }
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    public void QuadTo(double x1, double y1, double x2, double y2)
    +	    {
    +		    if (currentPath != null)
    +		    {
    +                mxPoint nextPoint = new mxPoint(state.dx + x2 * state.scale,
    +                    state.dy + y2 * state.scale);
    +
    +                if (lastPoint != null)
    +                {
    +            	    double cpx0 = lastPoint.X;
    +				    double cpy0 = lastPoint.Y;
    +				    double qpx1 = state.dx + x1 * state.scale;
    +				    double qpy1 = state.dy + y1 * state.scale;
    +    				
    +				    double cpx1 = cpx0 + 2f/3f * (qpx1 - cpx0);
    +				    double cpy1 = cpy0 + 2f/3f * (qpy1 - cpy0);
    +    				
    +				    double cpx2 = nextPoint.X + 2f/3f * (qpx1 - nextPoint.X);
    +				    double cpy2 = nextPoint.Y + 2f/3f * (qpy1 - nextPoint.Y);
    +
    +                    currentPath.AddBezier((float)cpx0, (float)cpy0,
    +                        (float)cpx1, (float)cpy1, (float)cpx2, (float)cpy2,
    +                        (float)nextPoint.X, (float)nextPoint.Y);
    +                }
    +
    +                lastPoint = nextPoint;
    +		    }
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    public void CurveTo(double x1, double y1, double x2, double y2, double x3,
    +			    double y3)
    +	    {
    +		    if (currentPath != null)
    +		    {
    +                mxPoint nextPoint = new mxPoint(state.dx + x3 * state.scale, state.dy + y3 * state.scale);
    +
    +                if (lastPoint != null)
    +                {
    +                    currentPath.AddBezier((float)lastPoint.X, (float)lastPoint.Y,
    +                        (float)(state.dx + x1 * state.scale),
    +                        (float)(state.dy + y1 * state.scale),
    +                        (float)(state.dx + x2 * state.scale),
    +                        (float)(state.dy + y2 * state.scale),
    +                        (float)nextPoint.X, (float)nextPoint.Y);
    +                }
    +
    +                lastPoint = nextPoint;
    +		    }
    +	    }
    +
    +	    /// <summary>
    +        /// Closes the current path.
    +	    /// </summary>
    +	    public void Close()
    +	    {
    +		    if (currentPath != null)
    +		    {
    +			    currentPath.CloseFigure();
    +		    }
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    public void Stroke()
    +	    {
    +		    if (currentPath != null
    +				    && !state.strokeColorValue.Equals(mxConstants.NONE))
    +		    {
    +			    if (state.strokeColor == null)
    +			    {
    +				    state.strokeColor = ParseColor(state.strokeColorValue);
    +			    }
    +
    +			    UpdatePen();
    +                graphics.DrawPath(state.pen, currentPath);
    +		    }
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    public void Fill()
    +	    {
    +		    if (currentPath != null && state.brush != null)
    +		    {
    +			    graphics.FillPath(state.brush, currentPath);
    +		    }
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    public void FillAndStroke()
    +	    {
    +		    Fill();
    +		    Stroke();
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    /// <param name="value"></param>
    +	    public void Shadow(String value, bool filled)
    +	    {
    +		    if (value != null && currentPath != null)
    +		    {
    +			    if (currentShadowColor == null || currentShadowValue == null
    +					    || !currentShadowValue.Equals(value))
    +			    {
    +				    currentShadowColor = ParseColor(value);
    +				    currentShadowValue = value;
    +			    }
    +
    +                // LATER: Cache shadowPen and shadowBrush
    +                if (filled)
    +                {
    +                    Brush shadowBrush = new SolidBrush(currentShadowColor);
    +                    graphics.FillPath(shadowBrush, currentPath);
    +                }
    +
    +                Pen shadowPen = new Pen(currentShadowColor, (float)state.strokeWidth);
    +                graphics.DrawPath(shadowPen, currentPath);
    +		    }
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    public void Clip()
    +	    {
    +		    if (currentPath != null)
    +		    {
    +                graphics.Clip = new Region(currentPath);
    +		    }
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    protected void UpdateFont()
    +	    {
    +		    if (state.font == null)
    +		    {
    +                FontStyle style = ((state.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD) ?
    +                    System.Drawing.FontStyle.Bold : System.Drawing.FontStyle.Regular;
    +                style |= ((state.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC) ?
    +                    System.Drawing.FontStyle.Italic : System.Drawing.FontStyle.Regular;
    +                style |= ((state.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE) ?
    +                    System.Drawing.FontStyle.Underline : System.Drawing.FontStyle.Regular;
    +
    +                int size = (int)Math.Floor(state.fontSize * mxConstants.FONT_SIZEFACTOR);
    +
    +			    state.font = CreateFont(state.fontFamily, style, size);
    +		    }
    +	    }
    +
    +	    /// <summary>
    +        /// Hook for subclassers to implement font caching.
    +	    /// </summary>
    +        protected Font CreateFont(String family, FontStyle style, int size)
    +	    {
    +            return new Font(family, size, style);
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    protected void UpdatePen()
    +	    {
    +		    if (state.pen == null)
    +		    {
    +                state.pen = new Pen((Color)state.strokeColor, (float)state.strokeWidth);
    +
    +                System.Drawing.Drawing2D.LineCap cap = System.Drawing.Drawing2D.LineCap.Flat;
    +
    +			    if (state.lineCap.Equals("round"))
    +			    {
    +				    cap = System.Drawing.Drawing2D.LineCap.Round;
    +			    }
    +			    else if (state.lineCap.Equals("square"))
    +			    {
    +                    cap = System.Drawing.Drawing2D.LineCap.Square;
    +			    }
    +
    +                state.pen.StartCap = cap;
    +                state.pen.EndCap = cap;
    +
    +                System.Drawing.Drawing2D.LineJoin join = System.Drawing.Drawing2D.LineJoin.Miter;
    +
    +			    if (state.lineJoin.Equals("round"))
    +			    {
    +                    join = System.Drawing.Drawing2D.LineJoin.Round;
    +			    }
    +			    else if (state.lineJoin.Equals("bevel"))
    +			    {
    +                    join = System.Drawing.Drawing2D.LineJoin.Bevel;
    +			    }
    +
    +                state.pen.LineJoin = join;
    +                state.pen.MiterLimit = (float) state.miterLimit;
    +
    +                if (state.dashed)
    +                {
    +                    float[] dash = new float[state.dashPattern.Length];
    +
    +                    for (int i = 0; i < dash.Length; i++)
    +                    {
    +                        dash[i] = (float)(state.dashPattern[i] * state.strokeWidth);
    +                    }
    +
    +                    state.pen.DashPattern = dash;
    +                }
    +		    }
    +	    }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    protected class CanvasState : ICloneable
    +	    {
    +		    /// <summary>
    +		    /// 
    +		    /// </summary>
    +		    internal double alpha = 1;
    +
    +		    /// <summary>
    +		    /// 
    +		    /// </summary>
    +		    internal double scale = 1;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal double dx = 0;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal double dy = 0;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal double miterLimit = 10;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal int fontStyle = 0;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal double fontSize = mxConstants.DEFAULT_FONTSIZE;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal string fontFamily = mxConstants.DEFAULT_FONTFAMILY;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal string fontColorValue = "#000000";
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +            internal Brush fontBrush = new SolidBrush(Color.Black);
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal string lineCap = "flat";
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal string lineJoin = "miter";
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal double strokeWidth = 1;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal string strokeColorValue = mxConstants.NONE;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal Color? strokeColor;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal Brush brush;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +            internal Pen pen;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +            internal Font font;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal bool dashed = false;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    internal float[] dashPattern = { 3, 3 };
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +            internal GraphicsState state;
    +
    +            /// <summary>
    +            /// 
    +            /// </summary>
    +		    public Object Clone()
    +		    {
    +			    return MemberwiseClone();
    +		    }
    +	    }
    +    }
    +}
    diff --git a/dotnet/src/canvas/mxICanvas.cs b/dotnet/src/canvas/mxICanvas.cs
    new file mode 100644
    index 000000000..e0967fe50
    --- /dev/null
    +++ b/dotnet/src/canvas/mxICanvas.cs
    @@ -0,0 +1,55 @@
    +// $Id: mxICanvas.cs,v 1.16 2010-05-31 08:49:27 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Drawing;
    +using System.Drawing.Drawing2D;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines the requirements for a canvas that paints the vertices and
    +    /// edges of a graph.
    +    /// </summary>
    +    public interface mxICanvas
    +    {
    +
    +        /// <summary>
    +        /// Sets or returns the user object of the cell.
    +        /// </summary>
    +        Point Translate
    +        {
    +            get;
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the user object of the cell.
    +        /// </summary>
    +        double Scale
    +        {
    +            get;
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Draws the given cell.
    +        /// </summary>
    +        /// <param name="state">State of the cell to be painted.</param>
    +        /// <returns>Object that represents the vertex.</returns>
    +        Object DrawCell(mxCellState state);
    +
    +        /// <summary>
    +        /// Draws the given label.
    +        /// </summary>
    +        /// <param name="text">String that represents the label.</param>
    +        /// <param name="state">State of the cell whose label is to be painted.</param>
    +        /// <param name="html">Specifies if the label contains HTML markup.</param>
    +        /// <returns>Object that represents the label.</returns>
    +        Object DrawLabel(string text, mxCellState state, bool html);
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/canvas/mxICanvas2D.cs b/dotnet/src/canvas/mxICanvas2D.cs
    new file mode 100644
    index 000000000..3e8e15ab2
    --- /dev/null
    +++ b/dotnet/src/canvas/mxICanvas2D.cs
    @@ -0,0 +1,254 @@
    +// $Id: mxICanvas2D.cs,v 1.4 2012-04-24 13:56:56 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Drawing;
    +using System.Drawing.Drawing2D;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines the requirements for a canvas that paints the vertices and
    +    /// edges of a graph.
    +    /// </summary>
    +    public interface mxICanvas2D
    +    {
    +        /// <summary>
    +        /// Saves the current state of the canvas.
    +        /// </summary>
    +        void Save();
    +
    +        /// <summary>
    +        /// Restores the previous state of the canvas.
    +        /// </summary>
    +        void Restore();
    +
    +        /// <summary>
    +        /// Uniformaly scales the canvas by the given amount.
    +        /// </summary>
    +        /// <param name="value">The new scale value.</param>
    +        void Scale(double value);
    +
    +        /// <summary>
    +        /// Translates the canvas by the given amount.
    +        /// </summary>
    +        /// <param name="dx">X-coordinate of the translation.</param>
    +        /// <param name="dy">Y-coordinate of the translation.</param>
    +        void Translate(double dx, double dy);
    +
    +        /// <summary>
    +        /// Rotates the canvas by the given angle around the given center. This
    +        /// method may add rendering overhead and should be used with care.
    +        /// </summary>
    +        /// <param name="theta">Rotation angle in degrees (0 - 360).</param>
    +        /// <param name="flipH">Specifies if drawing should be flipped horizontally.</param>
    +        /// <param name="flipV">Specifies if drawing should be flipped vertically.</param>
    +        /// <param name="cx">X-coordinate of the center point.</param>
    +        /// <param name="cy">Y-coordinate of the center point.</param>
    +        void Rotate(double theta, bool flipH, bool flipV, double cx, double cy);
    +
    +        /// <summary>
    +        /// Sets the stroke width. This should default to 1 if unset.
    +        /// </summary>
    +        double StrokeWidth
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets the stroke color. This should default to mxConstants.NONE if unset.
    +        /// </summary>
    +        string StrokeColor
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets the dashed state. This should default to false if unset.
    +        /// </summary>
    +        bool Dashed
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets the dash pattern. This should default to "3 3" if unset.
    +        /// </summary>
    +        string DashPattern
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets the linecap. This should default to "flat" if unset.
    +        /// </summary>
    +        string LineCap
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets the linejoin. This should default to "miter" if unset.
    +        /// </summary>
    +        string LineJoin
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets the miterlimit. This should default to 10 if unset.
    +        /// </summary>
    +        double MiterLimit
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Default value mxConstants.DEFAULT_FONTSIZE.
    +        /// </summary>
    +        double FontSize
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Default value "#000000".
    +        /// </summary>
    +        string FontColor
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Default value {@link mxConstants#DEFAULT_FONTFAMILY}.
    +        /// </summary>
    +        string FontFamily
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Default value 0. See {@link mxConstants#STYLE_FONTSTYLE}.
    +        /// </summary>
    +        int FontStyle
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Default value 1. This method may add rendering overhead and should be
    +        /// used with care.
    +        /// </summary>
    +        double Alpha
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Default value {@link mxConstants#NONE}.
    +        /// </summary>
    +        string FillColor
    +        {
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Prepares the canvas to draw a gradient.
    +        /// </summary>
    +        void SetGradient(string color1, string color2, double x, double y,
    +                double w, double h, string direction);
    +
    +        /// <summary>
    +        /// Prepares the canvas to draw a glass gradient.
    +        /// </summary>
    +        void SetGlassGradient(double x, double y, double w, double h);
    +
    +        /// <summary>
    +        /// Next fill or stroke should draw a rectangle.
    +        /// </summary>
    +        void Rect(double x, double y, double w, double h);
    +
    +        /// <summary>
    +        /// Next fill or stroke should draw a round rectangle.
    +        /// </summary>
    +        void Roundrect(double x, double y, double w, double h, double dx, double dy);
    +
    +        /// <summary>
    +        /// Next fill or stroke should draw an ellipse.
    +        /// </summary>
    +        void Ellipse(double x, double y, double w, double h);
    +
    +        /// <summary>
    +        /// Draws the given image.
    +        /// </summary>
    +        void Image(double x, double y, double w, double h, string src,
    +                bool aspect, bool flipH, bool flipV);
    +
    +        /// <summary>
    +        /// Draws the given string. Possible values for format are empty string for
    +        // plain text and html for HTML markup.
    +        /// </summary>
    +        void Text(double x, double y, double w, double h, string str, string align,
    +                string valign, bool vertical, bool wrap, string format);
    +
    +        /// <summary>
    +        /// Begins a new path.
    +        /// </summary>
    +        void Begin();
    +
    +        /// <summary>
    +        /// Moves to the given path.
    +        /// </summary>
    +        void MoveTo(double x, double y);
    +
    +        /// <summary>
    +        /// Draws a line to the given path.
    +        /// </summary>
    +        void LineTo(double x, double y);
    +
    +        /// <summary>
    +        /// Draws a quadratic curve to the given point.
    +        /// </summary>
    +        void QuadTo(double x1, double y1, double x2, double y2);
    +
    +        /// <summary>
    +        /// Draws a bezier curve to the given point.
    +        /// </summary>
    +        void CurveTo(double x1, double y1, double x2, double y2, double x3,
    +                double y3);
    +
    +        /// <summary>
    +        /// Closes the current path.
    +        /// </summary>
    +        void Close();
    +
    +        /// <summary>
    +        /// Paints the outline of the current path.
    +        /// </summary>
    +        void Stroke();
    +
    +        /// <summary>
    +        /// Fills the current path.
    +        /// </summary>
    +        void Fill();
    +
    +        /// <summary>
    +        /// Fills and paints the outline of the current path.
    +        /// </summary>
    +        void FillAndStroke();
    +
    +        /// <summary>
    +        /// Paints the current path as a shadow.
    +        /// </summary>
    +        void Shadow(string value, bool filled);
    +
    +        /// <summary>
    +        /// Uses the current path for clipping.
    +        /// </summary>
    +        void Clip();
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/canvas/mxImageCanvas.cs b/dotnet/src/canvas/mxImageCanvas.cs
    new file mode 100644
    index 000000000..0ba6adb47
    --- /dev/null
    +++ b/dotnet/src/canvas/mxImageCanvas.cs
    @@ -0,0 +1,125 @@
    +using System;
    +using System.Collections.Generic;
    +using System.Drawing;
    +using System.Drawing.Drawing2D;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Implements a canvas that draws onto an image.
    +    /// </summary>
    +    class mxImageCanvas : mxICanvas
    +    {
    +        /// <summary>
    +        /// Inner canvas used for the actual rendering.
    +        /// </summary>
    +        protected mxGdiCanvas canvas;
    +
    +        /// <summary>
    +        /// Stores the previous graphics reference of the inner canvas.
    +        /// </summary>
    +        protected Graphics previousGraphics;
    +
    +        /// <summary>
    +        /// Stores the image that holds the graphics.
    +        /// </summary>
    +        protected Image image;
    +
    +        /// <summary>
    +        /// 
    +        /// </summary>
    +        /// <param name="canvas"></param>
    +        /// <param name="width"></param>
    +        /// <param name="height"></param>
    +        /// <param name="background"></param>
    +        /// <param name="antiAlias"></param>
    +        public mxImageCanvas(mxGdiCanvas canvas, int width, int height,
    +            Color? background, bool antiAlias)
    +        {
    +            this.canvas = canvas;
    +            previousGraphics = canvas.Graphics;
    +            image = mxUtils.CreateImage(width, height, background);
    +
    +            if (image != null)
    +            {
    +                Graphics g = Graphics.FromImage(image);
    +
    +                if (antiAlias)
    +                {
    +                    g.SmoothingMode = SmoothingMode.HighQuality;
    +                }
    +
    +                canvas.Graphics = g;
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the inner canvas.
    +        /// </summary>
    +        public mxGdiCanvas GdiCanvas
    +        {
    +            get { return canvas; }
    +        }
    +
    +        /// <summary>
    +        /// Returns the image that hold the graphics.
    +        /// </summary>
    +        public Image Image
    +        {
    +            get { return image; }
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.Translate
    +        /// </summary>
    +        public Point Translate
    +        {
    +            get { return canvas.Translate; }
    +            set { canvas.Translate = value; }
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.Translate
    +        /// </summary>
    +        public double Scale
    +        {
    +            get { return canvas.Scale; }
    +            set { canvas.Scale = value; }
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.DrawCell()
    +        /// </summary>
    +        public Object DrawCell(mxCellState state)
    +        {
    +            return canvas.DrawCell(state);
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxICanvas.DrawLabel()
    +        /// </summary>
    +        public Object DrawLabel(string text, mxCellState state, bool html)
    +        {
    +            return canvas.DrawLabel(text, state, html);
    +        }
    +
    +        /// <summary>
    +        /// Destroys this canvas and all allocated resources.
    +        /// </summary>
    +        public Image Destroy()
    +        {
    +            Image tmp = image;
    +
    +            canvas.Graphics.Dispose();
    +            canvas.Graphics = previousGraphics;
    +
    +            previousGraphics = null;
    +            canvas = null;
    +            image = null;
    +
    +            return tmp;
    +        }
    +
    +    }
    +}
    diff --git a/dotnet/src/canvas/mxStencil.cs b/dotnet/src/canvas/mxStencil.cs
    new file mode 100644
    index 000000000..47d477133
    --- /dev/null
    +++ b/dotnet/src/canvas/mxStencil.cs
    @@ -0,0 +1,739 @@
    +using System;
    +using System.ComponentModel;
    +using System.Diagnostics;
    +using System.Xml;
    +using System.Reflection;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +
    +    /// <summary>
    +    /// Implements a stencil for the given XML definition. This class implements the mxGraph
    +    /// stencil schema.
    +    /// </summary>
    +    public class mxStencil
    +    {
    +        /// <summary>
    +        /// Holds the top-level node of the stencil definition.
    +        /// </summary>
    +        protected XmlElement desc;
    +
    +        /// <summary>
    +        /// Holds the aspect of the shape. Default is "auto".
    +        /// </summary>
    +        protected string aspect = null;
    +
    +        /// <summary>
    +        /// Holds the width of the shape. Default is 100.
    +        /// </summary>
    +        protected double w0 = 100;
    +
    +        /// <summary>
    +        /// Holds the height of the shape. Default is 100.
    +        /// </summary>
    +        protected double h0 = 100;
    +
    +        /// <summary>
    +        /// Holds the XML node with the stencil description.
    +        /// </summary>
    +        protected XmlElement bgNode = null;
    +
    +        /// <summary>
    +        /// Holds the XML node with the stencil description.
    +        /// </summary>
    +        protected XmlElement fgNode = null;
    +
    +        /// <summary>
    +        /// Holds the strokewidth direction from the description.
    +        /// </summary>
    +        protected string strokewidth = null;
    +
    +        /// <summary>
    +        /// Holds the last x-position of the cursor.
    +        /// </summary>
    +        protected double lastMoveX = 0;
    +
    +        /// <summary>
    +        /// Holds the last y-position of the cursor.
    +        /// </summary>
    +        protected double lastMoveY = 0;
    +
    +        /// <summary>
    +        /// Constructs a new stencil for the given mxGraph shape description.
    +        /// </summary>
    +        /// <param name="description"></param>
    +        public mxStencil(XmlElement description)
    +        {
    +            Description = description;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the description.
    +        /// </summary>
    +        public XmlElement Description
    +        {
    +            get { return desc; }
    +            set
    +            {
    +                desc = value;
    +                ParseDescription();
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Creates the canvas for rendering the stencil.
    +        /// </summary>
    +        /// <param name="gc"></param>
    +        /// <returns></returns>
    +        protected mxGdiCanvas2D CreateCanvas(mxGdiCanvas gc)
    +        {
    +            return new mxGdiCanvas2D(gc.Graphics);
    +        }
    +        
    +	    /// <summary>
    +	    /// Paints the stencil for the given state.
    +	    /// </summary>
    +	    public void PaintShape(mxGdiCanvas gc, mxCellState state)
    +	    {
    +            mxGdiCanvas2D canvas = CreateCanvas(gc);
    +            Dictionary<string, object> style = state.Style;
    +
    +		    double rotation = mxUtils.GetDouble(style, mxConstants.STYLE_ROTATION,
    +				    0);
    +		    String direction = mxUtils.GetString(style,
    +				    mxConstants.STYLE_DIRECTION, null);
    +
    +		    // Default direction is east (ignored if rotation exists)
    +		    if (direction != null)
    +		    {
    +			    if (direction.Equals("north"))
    +			    {
    +				    rotation += 270;
    +			    }
    +			    else if (direction.Equals("west"))
    +			    {
    +				    rotation += 180;
    +			    }
    +			    else if (direction.Equals("south"))
    +			    {
    +				    rotation += 90;
    +			    }
    +		    }
    +
    +		    // New styles for shape flipping the stencil
    +		    bool flipH = mxUtils.IsTrue(style, mxConstants.STYLE_STENCIL_FLIPH,
    +				    false);
    +		    bool flipV = mxUtils.IsTrue(style, mxConstants.STYLE_STENCIL_FLIPV,
    +				    false);
    +
    +		    if (flipH && flipV)
    +		    {
    +			    rotation += 180;
    +			    flipH = false;
    +			    flipV = false;
    +		    }
    +
    +		    // Saves the global state for each cell
    +		    canvas.Save();
    +
    +		    // Adds rotation and horizontal/vertical flipping
    +		    rotation = rotation % 360;
    +
    +		    if (rotation != 0 || flipH || flipV)
    +		    {
    +			    canvas.Rotate(rotation, flipH, flipV, state.GetCenterX(),
    +					    state.GetCenterY());
    +		    }
    +
    +		    // Note: Overwritten in mxStencil.paintShape (can depend on aspect)
    +		    double scale = state.View.Scale;
    +		    double sw = mxUtils.GetDouble(style, mxConstants.STYLE_STROKEWIDTH, 1)
    +				    * scale;
    +		    canvas.StrokeWidth = sw;
    +
    +		    double alpha = mxUtils.GetDouble(style, mxConstants.STYLE_OPACITY, 100) / 100;
    +		    String gradientColor = mxUtils.GetString(style,
    +				    mxConstants.STYLE_GRADIENTCOLOR, null);
    +
    +		    // Converts colors with special keyword none to null
    +		    if (gradientColor != null && gradientColor.Equals(mxConstants.NONE))
    +		    {
    +			    gradientColor = null;
    +		    }
    +
    +		    String fillColor = mxUtils.GetString(style,
    +				    mxConstants.STYLE_FILLCOLOR, null);
    +
    +		    if (fillColor != null && fillColor.Equals(mxConstants.NONE))
    +		    {
    +			    fillColor = null;
    +		    }
    +
    +		    String strokeColor = mxUtils.GetString(style,
    +				    mxConstants.STYLE_STROKECOLOR, null);
    +
    +		    if (strokeColor != null && strokeColor.Equals(mxConstants.NONE))
    +		    {
    +			    strokeColor = null;
    +		    }
    +
    +		    // Draws the shadow if the fillColor is not transparent
    +		    if (mxUtils.IsTrue(style, mxConstants.STYLE_SHADOW, false))
    +		    {
    +			    DrawShadow(canvas, state, rotation, flipH, flipV, state, alpha, fillColor != null);
    +		    }
    +
    +		    canvas.Alpha = alpha;
    +
    +		    // Sets the dashed state
    +		    if (mxUtils.IsTrue(style, mxConstants.STYLE_DASHED, false))
    +		    {
    +			    canvas.Dashed = true;
    +		    }
    +
    +		    // Draws background and foreground
    +		    if (strokeColor != null || fillColor != null)
    +		    {
    +			    if (strokeColor != null)
    +			    {
    +				    canvas.StrokeColor = strokeColor;
    +			    }
    +
    +			    if (fillColor != null)
    +			    {
    +				    if (gradientColor != null
    +						    && !gradientColor.Equals("transparent"))
    +				    {
    +					    canvas.SetGradient(fillColor, gradientColor, state.X,
    +							    state.Y, state.Width, state.Height,
    +							    direction);
    +				    }
    +				    else
    +				    {
    +					    canvas.FillColor = fillColor;
    +				    }
    +			    }
    +
    +			    // Draws background and foreground of shape
    +			    DrawShape(canvas, state, state, true);
    +			    DrawShape(canvas, state, state, false);
    +		    }
    +	    }
    +    	
    +	    /// <summary>
    +	    /// Draws the shadow.
    +	    /// </summary>
    +	    /// <param name="canvas"></param>
    +	    /// <param name="state"></param>
    +	    /// <param name="rotation"></param>
    +	    /// <param name="flipH"></param>
    +	    /// <param name="flipV"></param>
    +	    /// <param name="bounds"></param>
    +	    /// <param name="alpha"></param>
    +	    protected void DrawShadow(mxGdiCanvas2D canvas, mxCellState state, double rotation, bool flipH,
    +			    bool flipV, mxRectangle bounds, double alpha, bool filled)
    +	    {
    +		    // Requires background in generic shape for shadow, looks like only one
    +		    // fillAndStroke is allowed per current path, try working around that
    +		    // Computes rotated shadow offset
    +		    double rad = rotation * Math.PI / 180;
    +		    double cos = Math.Cos(-rad);
    +		    double sin = Math.Sin(-rad);
    +		    mxPoint offset = mxUtils.GetRotatedPoint(new mxPoint(mxConstants.SHADOW_OFFSETX, mxConstants.SHADOW_OFFSETY), cos, sin);
    +    		
    +		    if (flipH)
    +		    {
    +			    offset.X *= -1;
    +		    }
    +    		
    +		    if (flipV)
    +		    {
    +			    offset.Y *= -1;
    +		    }
    +    		
    +		    // TODO: Use save/restore instead of negative offset to restore (requires fix for HTML canvas)
    +		    canvas.Translate(offset.X, offset.Y);
    +    		
    +		    // Returns true if a shadow has been painted (path has been created)
    +		    if (DrawShape(canvas, state, bounds, true))
    +		    {
    +			    canvas.Alpha = mxConstants.STENCIL_SHADOW_OPACITY * alpha;
    +			    canvas.Shadow(mxConstants.STENCIL_SHADOWCOLOR, filled);
    +		    }
    +
    +		    canvas.Translate(-offset.X, -offset.Y);
    +	    }
    +    			
    +	    /**
    +	     * Draws this stencil inside the given bounds.
    +	     */
    +	    public bool DrawShape(mxGdiCanvas2D canvas, mxCellState state,
    +			    mxRectangle bounds, bool background)
    +	    {
    +		    XmlNode elt = (background) ? bgNode : fgNode;
    +
    +		    if (elt != null)
    +		    {
    +			    String direction = mxUtils.GetString(state.Style,
    +					    mxConstants.STYLE_DIRECTION, null);
    +			    mxRectangle aspect = ComputeAspect(state, bounds, direction);
    +			    double minScale = Math.Min(aspect.Width, aspect.Height);
    +			    double sw = strokewidth.Equals("inherit") ? mxUtils.GetDouble(
    +					    state.Style, mxConstants.STYLE_STROKEWIDTH, 1)
    +					    * state.View.Scale : double
    +					    .Parse(strokewidth) * minScale;
    +			    lastMoveX = 0;
    +			    lastMoveY = 0;
    +			    canvas.StrokeWidth = sw;
    +
    +			    XmlNode tmp = elt.FirstChild;
    +
    +			    while (tmp != null)
    +			    {
    +				    if (tmp.NodeType == XmlNodeType.Element)
    +				    {
    +					    DrawElement(canvas, state, (XmlElement) tmp, aspect);
    +				    }
    +
    +				    tmp = tmp.NextSibling;
    +			    }
    +
    +			    return true;
    +		    }
    +
    +		    return false;
    +	    }
    +
    +	    /// <summary>
    +	    /// Returns a rectangle that contains the offset in x and y and the horizontal
    +        /// and vertical scale in width and height used to draw this shape inside the
    +        /// given rectangle.
    +	    /// </summary>
    +	    /// <param name="state"></param>
    +	    /// <param name="bounds"></param>
    +	    /// <param name="direction"></param>
    +	    /// <returns></returns>
    +	    protected mxRectangle ComputeAspect(mxCellState state, mxRectangle bounds,
    +			    string direction)
    +	    {
    +		    double x0 = bounds.X;
    +		    double y0 = bounds.Y;
    +		    double sx = bounds.Width / w0;
    +		    double sy = bounds.Height / h0;
    +
    +		    bool inverse = (direction != null && (direction.Equals("north") || direction
    +				    .Equals("south")));
    +
    +		    if (inverse)
    +		    {
    +			    sy = bounds.Width / h0;
    +			    sx = bounds.Height / w0;
    +
    +			    double delta = (bounds.Width - bounds.Height) / 2;
    +
    +			    x0 += delta;
    +			    y0 -= delta;
    +		    }
    +
    +		    if (aspect.Equals("fixed"))
    +		    {
    +			    sy = Math.Min(sx, sy);
    +			    sx = sy;
    +
    +			    // Centers the shape inside the available space
    +			    if (inverse)
    +			    {
    +				    x0 += (bounds.Height - this.w0 * sx) / 2;
    +				    y0 += (bounds.Width - this.h0 * sy) / 2;
    +			    }
    +			    else
    +			    {
    +				    x0 += (bounds.Width - this.w0 * sx) / 2;
    +				    y0 += (bounds.Height - this.h0 * sy) / 2;
    +			    }
    +		    }
    +
    +		    return new mxRectangle(x0, y0, sx, sy);
    +	    }
    +
    +	    /// <summary>
    +        /// Draws the given element.
    +	    /// </summary>
    +	    /// <param name="canvas"></param>
    +	    /// <param name="state"></param>
    +	    /// <param name="node"></param>
    +	    /// <param name="aspect"></param>
    +	    protected void DrawElement(mxGdiCanvas2D canvas, mxCellState state,
    +                XmlElement node, mxRectangle aspect)
    +	    {
    +            string name = node.Name;
    +		    double x0 = aspect.X;
    +		    double y0 = aspect.Y;
    +		    double sx = aspect.Width;
    +		    double sy = aspect.Height;
    +		    double minScale = Math.Min(sx, sy);
    +
    +		    // LATER: Move to lookup table
    +		    if (name.Equals("save"))
    +		    {
    +			    canvas.Save();
    +		    }
    +		    else if (name.Equals("restore"))
    +		    {
    +			    canvas.Restore();
    +		    }
    +		    else if (name.Equals("path"))
    +		    {
    +			    canvas.Begin();
    +
    +			    // Renders the elements inside the given path
    +			    XmlNode childNode = node.FirstChild;
    +
    +			    while (childNode != null)
    +			    {
    +				    if (childNode.NodeType == XmlNodeType.Element)
    +				    {
    +                        DrawElement(canvas, state, (XmlElement) childNode, aspect);
    +				    }
    +
    +				    childNode = childNode.NextSibling;
    +			    }
    +		    }
    +		    else if (name.Equals("close"))
    +		    {
    +			    canvas.Close();
    +		    }
    +		    else if (name.Equals("move"))
    +		    {
    +			    lastMoveX = x0 + GetDouble(node, "x") * sx;
    +			    lastMoveY = y0 + GetDouble(node, "y") * sy;
    +			    canvas.MoveTo(lastMoveX, lastMoveY);
    +		    }
    +		    else if (name.Equals("line"))
    +		    {
    +			    lastMoveX = x0 + GetDouble(node, "x") * sx;
    +			    lastMoveY = y0 + GetDouble(node, "y") * sy;
    +			    canvas.LineTo(lastMoveX, lastMoveY);
    +		    }
    +		    else if (name.Equals("quad"))
    +		    {
    +			    lastMoveX = x0 + GetDouble(node, "x2") * sx;
    +			    lastMoveY = y0 + GetDouble(node, "y2") * sy;
    +			    canvas.QuadTo(x0 + GetDouble(node, "x1") * sx,
    +					    y0 + GetDouble(node, "y1") * sy, lastMoveX, lastMoveY);
    +		    }
    +		    else if (name.Equals("curve"))
    +		    {
    +			    lastMoveX = x0 + GetDouble(node, "x3") * sx;
    +			    lastMoveY = y0 + GetDouble(node, "y3") * sy;
    +			    canvas.CurveTo(x0 + GetDouble(node, "x1") * sx,
    +					    y0 + GetDouble(node, "y1") * sy, x0 + GetDouble(node, "x2")
    +							    * sx, y0 + GetDouble(node, "y2") * sy, lastMoveX,
    +					    lastMoveY);
    +		    }
    +		    else if (name.Equals("arc"))
    +		    {
    +			    // Arc from stencil is turned into curves in image output
    +			    double r1 = GetDouble(node, "rx") * sx;
    +			    double r2 = GetDouble(node, "ry") * sy;
    +			    double angle = GetDouble(node, "x-axis-rotation");
    +			    double largeArcFlag = GetDouble(node, "large-arc-flag");
    +			    double sweepFlag = GetDouble(node, "sweep-flag");
    +			    double x = x0 + GetDouble(node, "x") * sx;
    +			    double y = y0 + GetDouble(node, "y") * sy;
    +
    +			    double[] curves = mxUtils.ArcToCurves(this.lastMoveX,
    +					    this.lastMoveY, r1, r2, angle, largeArcFlag, sweepFlag, x,
    +					    y);
    +
    +			    for (int i = 0; i < curves.Length; i += 6)
    +			    {
    +				    canvas.CurveTo(curves[i], curves[i + 1], curves[i + 2],
    +						    curves[i + 3], curves[i + 4], curves[i + 5]);
    +
    +				    lastMoveX = curves[i + 4];
    +				    lastMoveY = curves[i + 5];
    +			    }
    +		    }
    +		    else if (name.Equals("rect"))
    +		    {
    +			    canvas.Rect(x0 + GetDouble(node, "x") * sx,
    +					    y0 + GetDouble(node, "y") * sy, GetDouble(node, "w") * sx,
    +					    GetDouble(node, "h") * sy);
    +		    }
    +		    else if (name.Equals("roundrect"))
    +		    {
    +			    double arcsize = GetDouble(node, "arcsize");
    +
    +			    if (arcsize == 0)
    +			    {
    +				    arcsize = mxConstants.RECTANGLE_ROUNDING_FACTOR * 100;
    +			    }
    +
    +			    double w = GetDouble(node, "w") * sx;
    +			    double h = GetDouble(node, "h") * sy;
    +			    double factor = arcsize / 100;
    +			    double r = Math.Min(w * factor, h * factor);
    +
    +			    canvas.Roundrect(x0 + GetDouble(node, "x") * sx,
    +					    y0 + GetDouble(node, "y") * sy, GetDouble(node, "w") * sx,
    +					    GetDouble(node, "h") * sy, r, r);
    +		    }
    +		    else if (name.Equals("ellipse"))
    +		    {
    +			    canvas.Ellipse(x0 + GetDouble(node, "x") * sx,
    +					    y0 + GetDouble(node, "y") * sy, GetDouble(node, "w") * sx,
    +					    GetDouble(node, "h") * sy);
    +		    }
    +		    else if (name.Equals("image"))
    +		    {
    +			    string src = EvaluateAttribute(node, "src", state);
    +
    +			    canvas.Image(x0 + GetDouble(node, "x") * sx,
    +					    y0 + GetDouble(node, "y") * sy, GetDouble(node, "w") * sx,
    +					    GetDouble(node, "h") * sy, src, false,
    +					    GetString(node, "flipH", "0").Equals("1"),
    +					    GetString(node, "flipV", "0").Equals("1"));
    +		    }
    +		    else if (name.Equals("text"))
    +		    {
    +			    String str = EvaluateAttribute(node, "str", state);
    +
    +			    canvas.Text(x0 + GetDouble(node, "x") * sx,
    +					    y0 + GetDouble(node, "y") * sy, 0, 0, str,
    +					    node.GetAttribute("align"), node.GetAttribute("valign"),
    +					    GetString(node, "vertical", "0").Equals("1"), false, "");
    +		    }
    +		    else if (name.Equals("include-shape"))
    +		    {
    +			    mxStencil stencil = mxStencilRegistry.GetStencil(node
    +					    .GetAttribute("name"));
    +
    +			    if (stencil != null)
    +			    {
    +				    double x = x0 + GetDouble(node, "x") * sx;
    +				    double y = y0 + GetDouble(node, "y") * sy;
    +				    double w = GetDouble(node, "w") * sx;
    +				    double h = GetDouble(node, "h") * sy;
    +
    +				    mxRectangle tmp = new mxRectangle(x, y, w, h);
    +				    stencil.DrawShape(canvas, state, tmp, true);
    +				    stencil.DrawShape(canvas, state, tmp, false);
    +			    }
    +		    }
    +		    else if (name.Equals("fillstroke"))
    +		    {
    +			    canvas.FillAndStroke();
    +		    }
    +		    else if (name.Equals("fill"))
    +		    {
    +			    canvas.Fill();
    +		    }
    +		    else if (name.Equals("stroke"))
    +		    {
    +			    canvas.Stroke();
    +		    }
    +		    else if (name.Equals("strokewidth"))
    +		    {
    +			    canvas.StrokeWidth = GetDouble(node, "width") * minScale;
    +		    }
    +		    else if (name.Equals("dashed"))
    +		    {
    +			    canvas.Dashed = node.GetAttribute("dashed") == "1";
    +		    }
    +		    else if (name.Equals("dashpattern"))
    +		    {
    +			    string value = node.GetAttribute("pattern");
    +
    +			    if (value != null)
    +			    {
    +				    string[] tmp = value.Split(' ');
    +                    StringBuilder pat = new StringBuilder();
    +
    +				    for (int i = 0; i < tmp.Length; i++)
    +				    {
    +					    if (tmp[i].Length > 0)
    +					    {
    +						    pat.Append(double.Parse(tmp[i]) * minScale);
    +						    pat.Append(" ");
    +					    }
    +				    }
    +
    +				    value = pat.ToString();
    +			    }
    +
    +			    canvas.DashPattern = value;
    +		    }
    +		    else if (name.Equals("strokecolor"))
    +		    {
    +			    canvas.StrokeColor = node.GetAttribute("color");
    +		    }
    +		    else if (name.Equals("linecap"))
    +		    {
    +			    canvas.LineCap = node.GetAttribute("cap");
    +		    }
    +		    else if (name.Equals("linejoin"))
    +		    {
    +			    canvas.LineJoin = node.GetAttribute("join");
    +		    }
    +		    else if (name.Equals("miterlimit"))
    +		    {
    +			    canvas.MiterLimit = GetDouble(node, "limit");
    +		    }
    +		    else if (name.Equals("fillcolor"))
    +		    {
    +			    canvas.FillColor = node.GetAttribute("color");
    +		    }
    +		    else if (name.Equals("fontcolor"))
    +		    {
    +			    canvas.FontColor = node.GetAttribute("color");
    +		    }
    +		    else if (name.Equals("fontstyle"))
    +		    {
    +			    canvas.FontStyle = GetInt(node, "style", 0);
    +		    }
    +		    else if (name.Equals("fontfamily"))
    +		    {
    +			    canvas.FontFamily = node.GetAttribute("family");
    +		    }
    +		    else if (name.Equals("fontsize"))
    +		    {
    +			    canvas.FontSize = GetDouble(node, "size") * minScale;
    +		    }
    +	    }
    +
    +	    /// <summary>
    +        /// Returns the given attribute or the default value.
    +	    /// </summary>
    +	    /// <param name="elt"></param>
    +	    /// <param name="attribute"></param>
    +	    /// <param name="defaultValue"></param>
    +	    /// <returns></returns>
    +        protected int GetInt(XmlElement elt, string attribute, int defaultValue)
    +	    {
    +            string value = elt.GetAttribute(attribute);
    +
    +		    if (value != null && value.Length > 0)
    +		    {
    +			    try
    +			    {
    +				    defaultValue = (int) Math.Round(float.Parse(value));
    +			    }
    +			    catch (Exception e)
    +			    {
    +				    // ignore
    +			    }
    +		    }
    +
    +		    return defaultValue;
    +	    }
    +
    +	    /// <summary>
    +        /// Returns the given attribute or 0.
    +	    /// </summary>
    +	    /// <param name="elt"></param>
    +	    /// <param name="attribute"></param>
    +	    /// <returns></returns>
    +        protected double GetDouble(XmlElement elt, String attribute)
    +	    {
    +		    return GetDouble(elt, attribute, 0);
    +	    }
    +
    +	    /// <summary>
    +        /// Returns the given attribute or the default value.
    +	    /// </summary>
    +	    /// <param name="elt"></param>
    +	    /// <param name="attribute"></param>
    +	    /// <param name="defaultValue"></param>
    +	    /// <returns></returns>
    +        protected double GetDouble(XmlElement elt, String attribute,
    +			    double defaultValue)
    +	    {
    +            string value = elt.GetAttribute(attribute);
    +
    +		    if (value != null && value.Length > 0)
    +		    {
    +			    try
    +			    {
    +				    defaultValue = double.Parse(value);
    +			    }
    +			    catch (Exception e)
    +			    {
    +				    // ignore
    +			    }
    +		    }
    +
    +		    return defaultValue;
    +	    }
    +
    +	    /// <summary>
    +	    /// Returns the given attribute or the default value.
    +	    /// </summary>
    +	    /// <param name="elt"></param>
    +	    /// <param name="attribute"></param>
    +	    /// <param name="defaultValue"></param>
    +	    /// <returns></returns>
    +        protected string GetString(XmlElement elt, string attribute,
    +			    string defaultValue)
    +	    {
    +		    string value = elt.GetAttribute(attribute);
    +
    +		    if (value != null && value.Length > 0)
    +		    {
    +			    defaultValue = value;
    +		    }
    +
    +		    return defaultValue;
    +	    }
    +
    +	    /// <summary>
    +        /// Parses the description of this shape.
    +	    /// </summary>
    +	    protected void ParseDescription()
    +	    {
    +		    // LATER: Preprocess nodes for faster painting
    +		    fgNode = (XmlElement) desc.GetElementsByTagName("foreground")[0];
    +            bgNode = (XmlElement) desc.GetElementsByTagName("background")[0];
    +		    w0 = GetDouble(desc, "w", w0);
    +            h0 = GetDouble(desc, "h", h0);
    +
    +		    // Possible values for aspect are: variable and fixed where
    +		    // variable means fill the available space and fixed means
    +		    // use w0 and h0 to compute the aspect.
    +		    aspect = GetString(desc, "aspect", "variable");
    +
    +		    // Possible values for strokewidth are all numbers and "inherit"
    +		    // where the inherit means take the value from the style (ie. the
    +		    // user-defined stroke-width). Note that the strokewidth is scaled
    +		    // by the minimum scaling that is used to draw the shape (sx, sy).
    +		    strokewidth = GetString(desc, "strokewidth", "1");
    +	    }
    +
    +	    /// <summary>
    +	    /// Gets the attribute for the given name from the given node. If the attribute
    +        /// does not exist then the text content of the node is evaluated and if it is
    +        /// a function it is invoked with <state> as the only argument and the return
    +        /// value is used as the attribute value to be returned.
    +	    /// </summary>
    +	    /// <param name="elt"></param>
    +	    /// <param name="attribute"></param>
    +	    /// <param name="state"></param>
    +	    /// <returns></returns>
    +	    public string EvaluateAttribute(XmlElement elt, string attribute,
    +			    mxCellState state)
    +	    {
    +		    string result = elt.GetAttribute(attribute);
    +
    +		    if (result == null)
    +		    {
    +			    // JS functions as text content are currently not supported in .NET
    +		    }
    +
    +		    return result;
    +	    }
    +
    +    }
    +}
    diff --git a/dotnet/src/canvas/mxStencilRegistry.cs b/dotnet/src/canvas/mxStencilRegistry.cs
    new file mode 100644
    index 000000000..af91db4ed
    --- /dev/null
    +++ b/dotnet/src/canvas/mxStencilRegistry.cs
    @@ -0,0 +1,37 @@
    +using System;
    +using System.Collections.Generic;
    +
    +namespace com.mxgraph
    +{
    +    public class mxStencilRegistry
    +    {
    +
    +        protected static Dictionary<string, mxStencil> stencils = new Dictionary<string, mxStencil>();
    +
    +        /// <summary>
    +        /// Adds the given stencil.
    +        /// </summary>
    +        /// <param name="name"></param>
    +        /// <param name="stencil"></param>
    +        public static void AddStencil(string name, mxStencil stencil)
    +        {
    +            stencils[name] = stencil;
    +        }
    +
    +        /// <summary>
    +        /// Returns the stencil for the given name.
    +        /// </summary>
    +        /// <param name="name"></param>
    +        /// <returns></returns>
    +        public static mxStencil GetStencil(string name)
    +        {
    +            if (stencils.ContainsKey(name))
    +            {
    +                return stencils[name];
    +            }
    +
    +            return null;
    +        }
    +
    +    }
    +}
    diff --git a/dotnet/src/io/mxCellCodec.cs b/dotnet/src/io/mxCellCodec.cs
    new file mode 100644
    index 000000000..26fb7afd5
    --- /dev/null
    +++ b/dotnet/src/io/mxCellCodec.cs
    @@ -0,0 +1,208 @@
    +// $Id: mxCellCodec.cs,v 1.14 2010-04-30 07:28:15 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Codec for mxCells. This class is created and registered
    +    /// dynamically at load time and used implicitely via mxCodec
    +    /// and the mxCodecRegistry.
    +    /// </summary>
    +    public class mxCellCodec : mxObjectCodec
    +    {
    +        /// <summary>
    +        /// Constructs a new cell codec.
    +        /// </summary>
    +        public mxCellCodec()
    +            : this(new mxCell(), new string[] { "children", "edges" }, new string[] { "parent", "source", "target" },
    +                    null) { }
    +
    +        /// <summary>
    +        /// Constructs a new cell codec for the given template.
    +        /// </summary>
    +        public mxCellCodec(Object template) : this(template, null, null, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new cell codec for the given arguments.
    +        /// </summary>
    +        public mxCellCodec(Object template, string[] exclude, string[] idrefs,
    +                Dictionary<string, string> mapping)
    +            : base(template, exclude, idrefs, mapping) { }
    +
    +        /// <summary>
    +        /// Excludes user objects that are XML nodes.
    +        /// </summary>
    +        public override bool IsExcluded(Object obj, string attr, Object value,
    +                bool isWrite)
    +        {
    +            return exclude.Contains(attr)
    +                    || (isWrite && attr.Equals("value") && value is XmlNode && ((XmlNode)value)
    +                            .NodeType == XmlNodeType.Element);
    +        }
    +
    +        /// <summary>
    +        /// Encodes an mxCell and wraps the XML up inside the
    +        /// XML of the user object (inversion).
    +        /// </summary>
    +        public override XmlNode AfterEncode(mxCodec enc, Object obj, XmlNode node)
    +        {
    +            if (obj is mxCell && node is XmlElement)
    +            {
    +                mxCell cell = (mxCell)obj;
    +
    +                if (cell.Value != null)
    +                {
    +                    if (cell.Value is XmlNode)
    +                    {
    +                        // Wraps the graphical annotation up in the
    +                        // user object (inversion) by putting the
    +                        // result of the default encoding into
    +                        // a clone of the user object (node type 1)
    +                        // and returning this cloned user object.
    +                        XmlElement tmp = (XmlElement)node;
    +                        node = enc.Document.ImportNode((XmlNode)cell.Value, true);
    +                        node.AppendChild(tmp);
    +
    +                        // Moves the id attribute to the outermost
    +                        // XML node, namely the node which denotes
    +                        // the object boundaries in the file.
    +                        String id = tmp.GetAttribute("id");
    +                        ((XmlElement)node).SetAttribute("id", id);
    +                        tmp.RemoveAttribute("id");
    +                    }
    +                }
    +            }
    +
    +            return node;
    +        }
    +
    +        /// <summary>
    +        /// Decodes an mxCell and uses the enclosing XML node as
    +        /// the user object for the cell (inversion).
    +        /// </summary>
    +        public override XmlNode BeforeDecode(mxCodec dec, XmlNode node, Object obj)
    +        {
    +            XmlElement inner = (XmlElement)node;
    +
    +            if (obj is mxCell)
    +            {
    +                mxCell cell = (mxCell)obj;
    +                String classname = GetName();
    +
    +                if (!node.Name.Equals(classname))
    +                {
    +                    // Passes the inner graphical annotation node to the
    +                    // object codec for further processing of the cell.
    +                    XmlNode tmp = inner.GetElementsByTagName(classname)[0];
    +
    +                    if (tmp != null && tmp.ParentNode == node)
    +                    {
    +                        inner = (XmlElement)tmp;
    +
    +                        // Removes annotation and whitespace from node
    +                        XmlNode tmp2 = tmp.PreviousSibling;
    +
    +                        while (tmp2 != null && tmp2.NodeType == XmlNodeType.Text)
    +                        {
    +                            XmlNode tmp3 = tmp2.PreviousSibling;
    +
    +                            if (tmp2.Value.Trim().Length == 0)
    +                            {
    +                                tmp2.ParentNode.RemoveChild(tmp2);
    +                            }
    +
    +                            tmp2 = tmp3;
    +                        }
    +
    +                        // Removes more whitespace
    +                        tmp2 = tmp.NextSibling;
    +
    +                        while (tmp2 != null && tmp2.NodeType == XmlNodeType.Text)
    +                        {
    +                            XmlNode tmp3 = tmp2.PreviousSibling;
    +
    +                            if (tmp2.Value.Trim().Length == 0)
    +                            {
    +                                tmp2.ParentNode.RemoveChild(tmp2);
    +                            }
    +
    +                            tmp2 = tmp3;
    +                        }
    +
    +                        tmp.ParentNode.RemoveChild(tmp);
    +                    }
    +                    else
    +                    {
    +                        inner = null;
    +                    }
    +
    +                    // Creates the user object out of the XML node
    +                    XmlElement value = (XmlElement)node.CloneNode(true);
    +                    cell.Value = value;
    +                    String id = value.GetAttribute("id");
    +
    +                    if (id != null)
    +                    {
    +                        cell.Id = id;
    +                        value.RemoveAttribute("id");
    +                    }
    +                }
    +                else
    +                {
    +                    cell.Id = ((XmlElement)node).GetAttribute("id");
    +                }
    +
    +                // Preprocesses and removes all Id-references
    +                // in order to use the correct encoder (this)
    +                // for the known references to cells (all).
    +                if (inner != null && idrefs != null)
    +                {
    +                    foreach (string attr in idrefs)
    +                    {
    +                        string rf = inner.GetAttribute(attr);
    +
    +                        if (rf != null && rf.Length > 0)
    +                        {
    +                            inner.RemoveAttribute(attr);
    +                            Object tmp = (dec.Objects.ContainsKey(rf)) ? dec.Objects[rf] : null;
    +
    +                            if (tmp == null)
    +                            {
    +                                tmp = dec.Lookup(rf);
    +                            }
    +
    +                            if (tmp == null)
    +                            {
    +                                // Needs to decode forward reference
    +                                XmlNode element = dec.GetElementById(rf);
    +
    +                                if (element != null)
    +                                {
    +                                    mxObjectCodec decoder = mxCodecRegistry
    +                                            .GetCodec(element.Name);
    +
    +                                    if (decoder == null)
    +                                    {
    +                                        decoder = this;
    +                                    }
    +
    +                                    tmp = decoder.Decode(dec, element);
    +                                }
    +                            }
    +
    +                            SetFieldValue(obj, attr, tmp);
    +                        }
    +                    }
    +                }
    +            }
    +
    +            return inner;
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/io/mxCodec.cs b/dotnet/src/io/mxCodec.cs
    new file mode 100644
    index 000000000..8bb77775a
    --- /dev/null
    +++ b/dotnet/src/io/mxCodec.cs
    @@ -0,0 +1,437 @@
    +// $Id: mxCodec.cs,v 1.26 2010-09-20 06:21:37 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// XML codec for .NET object graphs. In order to resolve forward references
    +    /// when reading files the XML document that contains the data must be passed
    +    /// to the constructor.
    +    /// </summary>
    +    public class mxCodec
    +    {
    +
    +        /// <summary>
    +        /// Holds the owner document of the codec.
    +        /// </summary>
    +        protected XmlDocument document;
    +
    +        /// <summary>
    +        /// Maps from IDs to objects.
    +        /// </summary>
    +        protected Dictionary<string, object> objects = new Dictionary<string, Object>();
    +
    +        /// <summary>
    +        /// Specifies if default values should be encoded. Default is false.
    +        /// </summary>
    +        protected bool encodeDefaults = false;
    +
    +        /// <summary>
    +        /// Constructs an XML encoder/decoder with a new owner document.
    +        /// </summary>
    +        public mxCodec() : this(mxUtils.CreateDocument()) { }
    +
    +        /// <summary>
    +        /// Constructs an XML encoder/decoder for the specified owner document. The document is
    +        /// required to resolve forward ID references. This means if you parse a graphmodel that
    +        /// is represented in XML you must also pass the document that contains the XML to the
    +        /// constructor, otherwise forward references will not be resolved.
    +        /// </summary>
    +        /// <param name="document">Optional XML document that contains the data. If no document
    +        /// is specified then a new document is created using mxUtils.createDocument</param>
    +        public mxCodec(XmlDocument document)
    +        {
    +            if (document == null)
    +            {
    +                document = mxUtils.CreateDocument();
    +            }
    +
    +            this.document = document;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the owner document of the codec.
    +        /// </summary>
    +        /// <returns>Returns the owner document.</returns>
    +        public XmlDocument Document
    +        {
    +            get { return document; }
    +            set { document = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns if default values of member variables should be encoded.
    +        /// </summary>
    +        public bool IsEncodeDefaults
    +        {
    +            get { return encodeDefaults; }
    +            set { encodeDefaults = value; }
    +        }
    +
    +        /// <summary>
    +        /// Returns the object lookup table.
    +        /// </summary>
    +        public Dictionary<string, object> Objects
    +        {
    +            get { return objects; }
    +        }
    +
    +        /// <summary>
    +        /// Assoiates the given object with the given ID.
    +        /// </summary>
    +        /// <param name="id">ID for the object to be associated with.</param>
    +        /// <param name="obj">Object to be associated with the ID.</param>
    +        /// <returns>Returns the given object.</returns>
    +        public Object PutObject(string id, Object obj)
    +        {
    +            return objects[id] = obj;
    +        }
    +
    +        /// <summary>
    +        /// Returns the decoded object for the element with the specified ID in
    +        /// document. If the object is not known then lookup is used to find an
    +        /// object. If no object is found, then the element with the respective ID
    +        /// from the document is parsed using decode.
    +        /// </summary>
    +        /// <param name="id">ID of the object to be returned.</param>
    +        /// <returns>Returns the object for the given ID.</returns>
    +        public Object GetObject(string id)
    +        {
    +            Object obj = null;
    +
    +            if (id != null)
    +            {
    +                obj = (objects.ContainsKey(id)) ? objects[id] : null;
    +
    +                if (obj == null)
    +                {
    +                    obj = Lookup(id);
    +
    +                    if (obj == null)
    +                    {
    +                        XmlNode node = GetElementById(id);
    +
    +                        if (node != null)
    +                        {
    +                            obj = Decode(node);
    +                        }
    +                    }
    +                }
    +            }
    +
    +            return obj;
    +        }
    +
    +        /// <summary>
    +        /// Hook for subclassers to implement a custom lookup mechanism for cell IDs.
    +        /// This implementation always returns null.
    +        /// </summary>
    +        /// <param name="id">ID of the object to be returned.</param>
    +        /// <returns>Returns the object for the given ID.</returns>
    +        public Object Lookup(string id)
    +        {
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Returns the element with the given ID from the document.
    +        /// </summary>
    +        /// <param name="id">ID of the element to be returned.</param>
    +        /// <returns>Returns the element for the given ID.</returns>
    +        public XmlNode GetElementById(string id)
    +        {
    +            return GetElementById(id, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns the element with the given ID from document. The optional attr
    +        /// argument specifies the name of the ID attribute. Default is id. The
    +        /// XPath expression used to find the element is //*[\@id='arg'] where id
    +        /// is the name of the ID attribute (attributeName) and arg is the given id.
    +        /// </summary>
    +        /// <param name="id">ID of the element to be returned.</param>
    +        /// <param name="attributeName">Optional string for the attributename. Default is id.</param>
    +        /// <returns>Returns the element for the given ID.</returns>
    +        public XmlNode GetElementById(string id, string attributeName)
    +        {
    +            if (attributeName == null)
    +            {
    +                attributeName = "id";
    +            }
    +
    +            string expr = "//*[@" + attributeName + "='" + id + "']";
    +
    +            return mxUtils.SelectSingleNode(document, expr);
    +        }
    +
    +        /// <summary>
    +        /// Returns the ID of the specified object. This implementation calls
    +        /// reference first and if that returns null handles the object as an
    +        /// mxCell by returning their IDs using mxCell.getId. If no ID exists for
    +        /// the given cell, then an on-the-fly ID is generated using
    +        /// mxCellPath.create.
    +        /// </summary>
    +        /// <param name="obj">Object to return the ID for.</param>
    +        /// <returns>Returns the ID for the given object.</returns>
    +        public string GetId(Object obj)
    +        {
    +            string id = null;
    +
    +            if (obj != null)
    +            {
    +                id = Reference(obj);
    +
    +                if (id == null && obj is mxICell)
    +                {
    +                    id = ((mxICell)obj).Id;
    +
    +                    if (id == null)
    +                    {
    +                        // Uses an on-the-fly Id
    +                        id = mxCellPath.Create((mxICell)obj);
    +
    +                        if (id.Length == 0)
    +                        {
    +                            id = "root";
    +                        }
    +                    }
    +                }
    +            }
    +
    +            return id;
    +        }
    +
    +        /// <summary>
    +        /// Hook for subclassers to implement a custom method for retrieving IDs from
    +        /// objects. This implementation always returns null.
    +        /// </summary>
    +        /// <param name="obj">Object whose ID should be returned.</param>
    +        /// <returns>Returns the ID for the given object.</returns>
    +        public string Reference(Object obj)
    +        {
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Encodes the specified object and returns the resulting XML node.
    +        /// </summary>
    +        /// <param name="obj">Object to be encoded.</param>
    +        /// <returns>Returns an XML node that represents the given object.</returns>
    +        public XmlNode Encode(Object obj)
    +        {
    +            XmlNode node = null;
    +
    +            if (obj != null)
    +            {
    +                string name = mxCodecRegistry.GetName(obj);
    +                mxObjectCodec enc = mxCodecRegistry.GetCodec(name);
    +
    +                if (enc != null)
    +                {
    +                    node = enc.Encode(this, obj);
    +                }
    +                else
    +                {
    +                    if (obj is XmlNode)
    +                    {
    +                        node = ((XmlNode)obj).CloneNode(true);
    +                    }
    +                    else
    +                    {
    +                        Console.WriteLine("No codec for " + name);
    +                    }
    +                }
    +            }
    +
    +            return node;
    +        }
    +
    +        /// <summary>
    +        /// Decodes the given XML node using decode(XmlNode, Object).
    +        /// </summary>
    +        /// <param name="node">XML node to be decoded.</param>
    +        /// <returns>Returns an object that represents the given node.</returns>
    +        public Object Decode(XmlNode node)
    +        {
    +            return Decode(node, null);
    +        }
    +
    +        /// <summary>
    +        /// Decodes the given XML node. The optional "into" argument specifies an
    +        /// existing object to be used. If no object is given, then a new
    +        /// instance is created using the constructor from the codec.
    +        /// The function returns the passed in object or the new instance if no
    +        /// object was given.
    +        /// </summary>
    +        /// <param name="node">XML node to be decoded.</param>
    +        /// <param name="into">Optional object to be decodec into.</param>
    +        /// <returns>Returns an object that represents the given node.</returns>
    +        public Object Decode(XmlNode node, Object into)
    +        {
    +            Object obj = null;
    +
    +            if (node != null && node.NodeType == XmlNodeType.Element)
    +            {
    +                mxObjectCodec codec = mxCodecRegistry.GetCodec(node.Name);
    +
    +                try
    +                {
    +                    if (codec != null)
    +                    {
    +                        obj = codec.Decode(this, node, into);
    +                    }
    +                    else
    +                    {
    +                        obj = node.CloneNode(true);
    +                        ((XmlElement)obj).RemoveAttribute("as");
    +                    }
    +                }
    +                catch (Exception e)
    +                {
    +                    Console.WriteLine("Cannot decode " + node.Name + ": "
    +                            + e.Message);
    +                }
    +            }
    +
    +            return obj;
    +        }
    +
    +        /// <summary>
    +        /// Encoding of cell hierarchies is built-into the core, but is a
    +        /// higher-level function that needs to be explicitely used by the
    +        /// respective object encoders (eg. mxModelCodec, mxChildChangeCodec
    +        /// and mxRootChangeCodec). This implementation writes the given cell
    +        /// and its children as a (flat) sequence into the given node. The
    +        /// children are not encoded if the optional includeChildren is false.
    +        /// The function is in charge of adding the result into the given node
    +        /// and has no return value.
    +        /// </summary>
    +        /// <param name="cell">mxCell to be encoded.</param>
    +        /// <param name="node">Parent XML node to add the encoded cell into.</param>
    +        /// <param name="includeChildren">Boolean indicating if the method should
    +        /// include all descendents</param>
    +        public void EncodeCell(mxICell cell, XmlNode node, bool includeChildren)
    +        {
    +            node.AppendChild(Encode(cell));
    +
    +            if (includeChildren)
    +            {
    +                int childCount = cell.ChildCount();
    +
    +                for (int i = 0; i < childCount; i++)
    +                {
    +                    EncodeCell(cell.GetChildAt(i), node, includeChildren);
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Decodes cells that have been encoded using inversion, ie. where the
    +        /// user object is the enclosing node in the XML, and restores the group
    +        /// and graph structure in the cells. Returns a new mxCell instance
    +        /// that represents the given node.
    +        /// </summary>
    +        /// <param name="node">XML node that contains the cell data.</param>
    +        /// <param name="restoreStructures">Boolean indicating whether the graph
    +        /// structure should be restored by calling insert and insertEdge on the
    +        /// parent and terminals, respectively.
    +        /// </param>
    +        /// <returns>Graph cell that represents the given node.</returns>
    +        public mxICell DecodeCell(XmlNode node, bool restoreStructures)
    +        {
    +            mxICell cell = null;
    +
    +            if (node != null &&
    +                node.NodeType == XmlNodeType.Element)
    +            {
    +			    // Tries to find a codec for the given node name. If that does
    +			    // not return a codec then the node is the user object (an XML node
    +			    // that contains the mxCell, aka inversion).
    +			    mxObjectCodec decoder = mxCodecRegistry.GetCodec(node.Name);
    +
    +                // Tries to find the codec for the cell inside the user object.
    +                // This assumes all node names inside the user object are either
    +                // not registered or they correspond to a class for cells.
    +                if (decoder == null)
    +			    {
    +                    XmlNode child = node.FirstChild;
    +					
    +					while (child != null &&
    +						!(decoder is mxCellCodec))
    +					{
    +						decoder = mxCodecRegistry.GetCodec(child.Name);
    +						child = child.NextSibling;
    +					}
    +			    }
    +
    +                if (!(decoder is mxCellCodec))
    +                {
    +                    decoder = mxCodecRegistry.GetCodec("mxCell");
    +                }
    +
    +                cell = (mxICell)decoder.Decode(this, node);
    +
    +                if (restoreStructures)
    +                {
    +                    InsertIntoGraph(cell);
    +                }
    +            }
    +
    +            return cell;
    +        }
    +
    +        /// <summary>
    +        /// Inserts the given cell into its parent and terminal cells.
    +        /// </summary>
    +        /// <param name="cell"></param>
    +        public void InsertIntoGraph(mxICell cell)
    +        {
    +            mxICell parent = cell.Parent;
    +            mxICell source = cell.GetTerminal(true);
    +            mxICell target = cell.GetTerminal(false);
    +
    +            // Fixes possible inconsistencies during insert into graph
    +            cell.SetTerminal(null, false);
    +            cell.SetTerminal(null, true);
    +            cell.Parent = null;
    +
    +            if (parent != null)
    +            {
    +                parent.Insert(cell);
    +            }
    +
    +            if (source != null)
    +            {
    +                source.InsertEdge(cell, true);
    +            }
    +
    +            if (target != null)
    +            {
    +                target.InsertEdge(cell, false);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Sets the attribute on the specified node to value. This is a
    +        /// helper method that makes sure the attribute and value arguments
    +        /// are not null.
    +        /// </summary>
    +        /// <param name="node">XML node to set the attribute for.</param>
    +        /// <param name="attribute">Attributename to be set.</param>
    +        /// <param name="value">New value of the attribute.</param>
    +        public static void SetAttribute(XmlNode node, string attribute, Object value)
    +        {
    +            if (node.NodeType == XmlNodeType.Element && attribute != null
    +                    && value != null)
    +            {
    +                ((XmlElement)node).SetAttribute(attribute, value.ToString());
    +            }
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/io/mxCodecRegistry.cs b/dotnet/src/io/mxCodecRegistry.cs
    new file mode 100644
    index 000000000..9a376c14e
    --- /dev/null
    +++ b/dotnet/src/io/mxCodecRegistry.cs
    @@ -0,0 +1,218 @@
    +// $Id: mxCodecRegistry.cs,v 1.15 2011-06-09 14:43:08 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Diagnostics;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Static class that acts as a global registry for codecs. See mxCodec for
    +    /// an example of using this class.
    +    /// </summary>
    +    public class mxCodecRegistry
    +    {
    +
    +        /// <summary>
    +        /// Maps from constructor names to codecs.
    +        /// </summary>
    +        protected static Dictionary<string, mxObjectCodec> codecs = new Dictionary<string, mxObjectCodec>();
    +
    +        /// <summary>
    +        /// Maps from classnames to codecnames.
    +        /// </summary>
    +        protected static Dictionary<string, string> aliases = new Dictionary<string, string>();
    +
    +        /// <summary>
    +        /// Holds the list of known namespaces. Packages are used to prefix short
    +        /// class names (eg. mxCell) in XML markup.
    +        /// </summary>
    +        protected static List<string> namespaces = new List<string>();
    +
    +        // Registers the known codecs and package names
    +        static mxCodecRegistry()
    +        {
    +            AddNamespace("com.mxgraph");
    +            AddNamespace("System.Collections.Generic");
    +
    +            Register(new mxObjectCodec(new ArrayList()));
    +            Register(new mxModelCodec());
    +            Register(new mxCellCodec());
    +            Register(new mxStylesheetCodec());
    +        }
    +
    +        /// <summary>
    +        /// Registers a new codec and associates the name of the template constructor
    +        /// in the codec with the codec object. Automatically creates an alias if the
    +        /// codename and the classname are not equal.
    +        /// </summary>
    +        public static mxObjectCodec Register(mxObjectCodec codec)
    +        {
    +            if (codec != null)
    +            {
    +                string name = codec.GetName();
    +                codecs[name] = codec;
    +
    +                string classname = GetName(codec.Template);
    +
    +                if (!classname.Equals(name))
    +                {
    +                    AddAlias(classname, name);
    +                }
    +            }
    +
    +            return codec;
    +        }
    +
    +        /// <summary>
    +        /// Adds an alias for mapping a classname to a codecname.
    +        /// </summary>
    +        public static void AddAlias(string classname, string codecname)
    +        {
    +            aliases[classname] = codecname;
    +        }
    +
    +        /// <summary>
    +        /// Returns a codec that handles the given object, which can be an object
    +        /// instance or an XML node.
    +        /// </summary>
    +        /// <param name="name">C# type name.</param>
    +        /// <returns></returns>
    +        public static mxObjectCodec GetCodec(String name)
    +        {
    +            if (aliases.ContainsKey(name))
    +            {
    +                name = aliases[name];
    +            }
    +
    +            mxObjectCodec codec = (codecs.ContainsKey(name)) ? codecs[name] : null;
    +
    +            if (codec == null)
    +            {
    +                Object instance = GetInstanceForName(name);
    +
    +                if (instance != null)
    +                {
    +                    try
    +                    {
    +                        codec = new mxObjectCodec(instance);
    +                        Register(codec);
    +                    }
    +                    catch (Exception e)
    +                    {
    +                        Trace.WriteLine("mxCodecRegistry.GetCodec(" + name + "): " + e.Message);
    +                    }
    +                }
    +            }
    +
    +            return codec;
    +        }
    +
    +        /// <summary>
    +        /// Adds the given namespace to the list of known namespaces.
    +        /// </summary>
    +        /// <param name="ns">Name of the namespace to be added.</param>
    +        public static void AddNamespace(String ns)
    +        {
    +            namespaces.Add(ns);
    +        }
    +
    +        /// <summary>
    +        /// Creates and returns a new instance for the given class name.
    +        /// </summary>
    +        /// <param name="name">Name of the class to be instantiated.</param>
    +        /// <returns>Returns a new instance of the given class.</returns>
    +        public static Object GetInstanceForName(String name)
    +        {
    +            Type type = GetTypeForName(name);
    +
    +            if (type != null)
    +            {
    +                try
    +                {
    +                    return Activator.CreateInstance(type);
    +                }
    +                catch (Exception e)
    +                {
    +                    Trace.WriteLine("mxCodecRegistry.GetInstanceForName(" + name + "): " + e.Message);
    +                }
    +            }
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Returns a class that corresponds to the given name.
    +        /// </summary>
    +        /// <param name="name"></param>
    +        /// <returns></returns>
    +        public static Type GetTypeForName(String name)
    +        {
    +            try
    +            {
    +                Type type = Type.GetType(name);
    +
    +                if (type != null)
    +                {
    +                    return type;
    +                }
    +            }
    +            catch (Exception e)
    +            {
    +                Trace.WriteLine("mxCodecRegistry.GetTypeForName(" + name + "): " + e.Message);
    +            }
    +
    +            foreach (string ns in namespaces)
    +            {
    +                try
    +                {
    +                    Type type = Type.GetType(ns + "." + name);
    +
    +                    if (type != null)
    +                    {
    +                        return type;
    +                    }
    +                }
    +                catch (Exception e)
    +                {
    +                    Trace.WriteLine("mxCodecRegistry.GetTypeForName(" + ns + "." + name + "): " + e.Message);
    +                }
    +            }
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Returns the name that identifies the codec associated
    +        /// with the given instance.
    +        /// The I/O system uses unqualified classnames, eg. for a
    +        /// com.mxgraph.model.mxCell this returns mxCell.
    +        /// </summary>
    +        /// <param name="instance">Instance whose node name should be returned.</param>
    +        /// <returns>Returns a string that identifies the codec.</returns>
    +        public static String GetName(Object instance)
    +        {
    +            Type type = instance.GetType();
    +
    +            if (type.IsArray || typeof(IEnumerable).IsAssignableFrom(type))
    +            {
    +                return "Array";
    +            }
    +            else
    +            {
    +                if (namespaces.Contains(type.Namespace))
    +                {
    +                    return type.Name;
    +                }
    +                else
    +                {
    +                    return type.FullName;
    +                }
    +            }
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/io/mxModelCodec.cs b/dotnet/src/io/mxModelCodec.cs
    new file mode 100644
    index 000000000..68ee3a395
    --- /dev/null
    +++ b/dotnet/src/io/mxModelCodec.cs
    @@ -0,0 +1,107 @@
    +// $Id: mxModelCodec.cs,v 1.8 2010-11-23 08:46:40 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Codec for mxGraphModels. This class is created and registered
    +    /// dynamically at load time and used implicitely via mxCodec
    +    /// and the mxCodecRegistry.
    +    /// </summary>
    +    public class mxModelCodec : mxObjectCodec
    +    {
    +
    +        /// <summary>
    +        /// Constructs a new model codec.
    +        /// </summary>
    +        public mxModelCodec() : this(new mxGraphModel(), null, null, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new model codec for the given template.
    +        /// </summary>
    +        public mxModelCodec(Object template) : this(template, null, null, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new model codec for the given arguments.
    +        /// </summary>
    +        public mxModelCodec(Object template, String[] exclude, String[] idrefs,
    +                Dictionary<string, string> mapping)
    +            : base(template, exclude, idrefs, mapping) { }
    +
    +        /// <summary>
    +        /// Encodes the given mxGraphModel by writing a (flat) XML sequence
    +        /// of cell nodes as produced by the mxCellCodec. The sequence is
    +        /// wrapped-up in a node with the name root.
    +        /// </summary>
    +        protected override void EncodeObject(mxCodec enc, Object obj, XmlNode node)
    +        {
    +            if (obj is mxGraphModel)
    +            {
    +                XmlNode rootNode = enc.Document.CreateElement("root");
    +                mxGraphModel model = (mxGraphModel)obj;
    +                enc.EncodeCell((mxICell)model.Root, rootNode, true);
    +                node.AppendChild(rootNode);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Reads the cells into the graph model. All cells are children of the root
    +        /// element in the node.
    +        /// </summary>
    +        public override XmlNode BeforeDecode(mxCodec dec, XmlNode node, Object into)
    +        {
    +            if (node is XmlElement)
    +            {
    +                XmlElement elt = (XmlElement)node;
    +                mxGraphModel model = null;
    +
    +                if (into is mxGraphModel)
    +                {
    +                    model = (mxGraphModel)into;
    +                }
    +                else
    +                {
    +                    model = new mxGraphModel();
    +                }
    +
    +                // Reads the cells into the graph model. All cells
    +                // are children of the root element in the node.
    +                XmlNode root = elt.GetElementsByTagName("root")[0];
    +                mxICell rootCell = null;
    +
    +                if (root != null)
    +                {
    +                    XmlNode tmp = root.FirstChild;
    +
    +                    while (tmp != null)
    +                    {
    +                        mxICell cell = dec.DecodeCell(tmp, true);
    +
    +                        if (cell != null && cell.Parent == null)
    +                        {
    +                            rootCell = cell;
    +                        }
    +
    +                        tmp = tmp.NextSibling;
    +                    }
    +
    +                    root.ParentNode.RemoveChild(root);
    +                }
    +
    +                // Sets the root on the model if one has been decoded
    +                if (rootCell != null)
    +                {
    +                    model.Root = rootCell;
    +                }
    +            }
    +
    +            return node;
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/io/mxObjectCodec.cs b/dotnet/src/io/mxObjectCodec.cs
    new file mode 100644
    index 000000000..7c0007823
    --- /dev/null
    +++ b/dotnet/src/io/mxObjectCodec.cs
    @@ -0,0 +1,925 @@
    +// $Id: mxObjectCodec.cs,v 1.24 2010-12-01 09:19:58 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.ComponentModel;
    +using System.Diagnostics;
    +using System.Xml;
    +using System.Reflection;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Generic codec for C# objects. See below for a detailed description of
    +    /// the encoding/decoding scheme.
    +    /// Note: Since booleans are numbers in JavaScript, all boolean values are
    +    /// encoded into 1 for true and 0 for false.
    +    /// </summary>
    +    public class mxObjectCodec
    +    {
    +        /// <summary>
    +        /// Immutable empty set.
    +        /// </summary>
    +        private static List<string> EMPTY_SET = new List<string>();
    +
    +        /// <summary>
    +        /// Holds the template object associated with this codec.
    +        /// </summary>
    +        protected Object template;
    +
    +        /// <summary>
    +        /// Array containing the variable names that should be
    +        /// ignored by the codec.
    +        /// </summary>
    +        protected List<string> exclude;
    +
    +        /// <summary>
    +        /// Array containing the variable names that should be
    +        /// turned into or converted from references. See
    +        /// mxCodec.getId and mxCodec.getObject.
    +        /// </summary>
    +        protected List<string> idrefs;
    +
    +        /// <summary>
    +        /// Maps from from fieldnames to XML attribute names.
    +        /// </summary>
    +        protected Dictionary<string, string> mapping;
    +
    +        /// <summary>
    +        /// Maps from from XML attribute names to fieldnames.
    +        /// </summary>
    +        protected Dictionary<string, string> reverse;
    +
    +        /// <summary>
    +        /// Constructs a new codec for the specified template object.
    +        /// </summary>
    +        /// <param name="template">Prototypical instance of the object to be encoded/decoded.</param>
    +        public mxObjectCodec(Object template) : this(template, null, null, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new codec for the specified template object.
    +        /// The variables in the optional exclude array are ignored by
    +        /// the codec. Variables in the optional idrefs array are
    +        /// turned into references in the XML. The optional mapping
    +        /// may be used to map from variable names to XML attributes.
    +        /// </summary>
    +        /// <param name="template">Prototypical instance of the object to be encoded/decoded.</param>
    +        /// <param name="exclude">Optional array of fieldnames to be ignored.</param>
    +        /// <param name="idrefs">Optional array of fieldnames to be converted to/from references.</param>
    +        /// <param name="mapping">Optional mapping from field- to attributenames.</param>
    +        public mxObjectCodec(Object template, string[] exclude, string[] idrefs,
    +                Dictionary<string, string> mapping)
    +        {
    +            this.template = template;
    +
    +            if (exclude != null)
    +            {
    +                this.exclude = new List<string>();
    +                foreach (string s in exclude)
    +                {
    +                    this.exclude.Add(s);
    +                }
    +            }
    +            else
    +            {
    +                this.exclude = EMPTY_SET;
    +            }
    +
    +            if (idrefs != null)
    +            {
    +                this.idrefs = new List<String>();
    +                foreach (string s in idrefs)
    +                {
    +                    this.idrefs.Add(s);
    +                }
    +            }
    +            else
    +            {
    +                this.idrefs = EMPTY_SET;
    +            }
    +
    +            if (mapping == null)
    +            {
    +                mapping = new Dictionary<string, string>();
    +            }
    +            this.mapping = mapping;
    +            reverse = new Dictionary<string, string>();
    +
    +            foreach (KeyValuePair<string, string> entry in mapping)
    +            {
    +                reverse[entry.Value] = entry.Key;
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the name used for the nodenames and lookup of the codec when
    +        /// classes are encoded and nodes are decoded. For classes to work with
    +        /// this the codec registry automatically adds an alias for the classname
    +        /// if that is different than what this returns. The default implementation
    +        /// returns the classname of the template class.
    +        /// </summary>
    +        public string GetName()
    +        {
    +            return mxCodecRegistry.GetName(Template);
    +        }
    +
    +        /// <summary>
    +        /// Returns the template object associated with this codec.
    +        /// </summary>
    +        /// <returns>Returns the template object.</returns>
    +        public Object Template
    +        {
    +            get { return template; }
    +        }
    +
    +        /// <summary>
    +        /// Returns a new instance of the template object for representing the given
    +        /// node.
    +        /// </summary>
    +        /// <param name="node">XML node that the object is going to represent.</param>
    +        /// <returns>Returns a new template instance.</returns>
    +        protected virtual Object CloneTemplate(XmlNode node)
    +        {
    +            Object obj = null;
    +
    +            try
    +            {
    +                obj = Activator.CreateInstance(template.GetType());
    +
    +                // Special case: Check if the collection
    +                // should be a map. This is if the first
    +                // child has an "as"-attribute. This
    +                // assumes that all childs will have
    +                // as attributes in this case. This is
    +                // required because in JavaScript, the
    +                // map and array object are the same.
    +                if (obj is ICollection)
    +                {
    +                    node = node.FirstChild;
    +
    +                    if (node.Attributes["as"] != null)
    +                    {
    +                        obj = new Hashtable();
    +                    }
    +                }
    +            }
    +            catch (Exception e)
    +            {
    +                Trace.WriteLine(this + ".CloneTemplate(" + node + "): " + e.Message + " for " + template);
    +            }
    +
    +            return obj;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given attribute is to be ignored
    +        /// by the codec. This implementation returns true if the
    +        /// given fieldname is in exclude.
    +        /// </summary>
    +        /// <param name="obj">Object instance that contains the field.</param>
    +        /// <param name="attr">Fieldname of the field.</param>
    +        /// <param name="value">Value of the field.</param>
    +        /// <param name="write">Boolean indicating if the field is being encoded or
    +        /// decoded. write is true if the field is being encoded, else it is
    +        /// being decoded.</param>
    +        /// <returns>Returns true if the given attribute should be ignored.</returns>
    +        public virtual bool IsExcluded(Object obj, string attr, Object value,
    +                bool write)
    +        {
    +            return exclude.Contains(attr);
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given fieldname is to be treated
    +        /// as a textual reference (ID). This implementation returns
    +        /// true if the given fieldname is in idrefs.
    +        /// </summary>
    +        /// <param name="obj">Object instance that contains the field.</param>
    +        /// <param name="attr">Fieldname of the field.</param>
    +        /// <param name="value">Value of the field.</param>
    +        /// <param name="write">Boolean indicating if the field is being encoded or
    +        /// decoded. write is true if the field is being encoded, else it is being
    +        /// decoded.</param>
    +        /// <returns>Returns true if the given attribute should be handled as a
    +        /// reference.</returns>
    +        public virtual bool IsReference(Object obj, string attr, Object value,
    +                bool write)
    +        {
    +            return idrefs.Contains(attr);
    +        }
    +
    +        /// <summary>
    +        /// Encodes the specified object and returns a node
    +        /// representing then given object. Calls beforeEncode
    +        /// after creating the node and afterEncode with the 
    +        /// resulting node after processing.
    +        /// Enc is a reference to the calling encoder. It is used
    +        /// to encode complex objects and create references.
    +        /// </summary>
    +        /// <param name="enc">Codec that controls the encoding process.</param>
    +        /// <param name="obj">Object to be encoded.</param>
    +        /// <returns>Returns the resulting XML node that represents the given object.</returns>
    +        public virtual XmlNode Encode(mxCodec enc, Object obj)
    +        {
    +            XmlNode node = enc.Document.CreateElement(GetName());
    +
    +            obj = BeforeEncode(enc, obj, node);
    +            EncodeObject(enc, obj, node);
    +
    +            return AfterEncode(enc, obj, node);
    +        }
    +
    +        /// <summary>
    +        ///  Encodes the value of each member in then given obj
    +        ///  into the given node using encodeFields and encodeElements.
    +        /// </summary>
    +        /// <param name="enc">Codec that controls the encoding process.</param>
    +        /// <param name="obj">Object to be encoded.</param>
    +        /// <param name="node">XML node that contains the encoded object.</param>
    +        protected virtual void EncodeObject(mxCodec enc, Object obj, XmlNode node)
    +        {
    +            mxCodec.SetAttribute(node, "id", enc.GetId(obj));
    +            EncodeFields(enc, obj, node);
    +            EncodeElements(enc, obj, node);
    +        }
    +
    +        /// <summary>
    +        /// Encodes the members of the given object into the given node.
    +        /// </summary>
    +        /// <param name="enc">Codec that controls the encoding process.</param>
    +        /// <param name="obj">Object whose fields should be encoded.</param>
    +        /// <param name="node">XML node that contains the encoded object.</param>
    +        protected void EncodeFields(mxCodec enc, Object obj, XmlNode node)
    +        {
    +            Type type = obj.GetType();
    +            PropertyInfo[] properties = type.GetProperties();
    +
    +            foreach (PropertyInfo property in properties)
    +            {
    +                if (property.CanRead && property.CanWrite)
    +                {
    +                    string name = property.Name;
    +                    Object value = GetFieldValue(obj, name);
    +
    +                    // Removes Is-Prefix from bool properties
    +                    if (value is bool && name.StartsWith("Is"))
    +                    {
    +                        name = name.Substring(2);
    +                    }
    +
    +                    name = name.Substring(0, 1).ToLower() + name.Substring(1);
    +                    EncodeValue(enc, obj, name, value, node);
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Encodes the child objects of arrays, dictionaries and enumerables.
    +        /// </summary>
    +        /// <param name="enc">Codec that controls the encoding process.</param>
    +        /// <param name="obj">Object whose child objects should be encoded.</param>
    +        /// <param name="node">XML node that contains the encoded object.</param>
    +        protected void EncodeElements(mxCodec enc, Object obj, XmlNode node)
    +        {
    +            if (obj.GetType().IsArray)
    +            {
    +                foreach (Object o in ((Object[])obj))
    +                {
    +                    EncodeValue(enc, obj, null, o, node);
    +                }
    +            }
    +            else if (obj is IDictionary)
    +            {
    +                foreach (KeyValuePair<string, string> entry in ((IDictionary)mapping))
    +                {
    +                    EncodeValue(enc, obj, entry.Key, entry.Value, node);
    +                }
    +            }
    +            else if (obj is IEnumerable)
    +            {
    +                foreach (Object value in ((IEnumerable)obj))
    +                {
    +                    EncodeValue(enc, obj, null, value, node);
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Converts the given value according to the mappings and id-refs in
    +        /// this codec and uses writeAttribute to write the attribute into the
    +        /// given node.
    +        /// </summary>
    +        /// <param name="enc">Codec that controls the encoding process.</param>
    +        /// <param name="obj">Object whose member is going to be encoded.</param>
    +        /// <param name="fieldname"></param>
    +        /// <param name="value">Value of the property to be encoded.</param>
    +        /// <param name="node">XML node that contains the encoded object.</param>
    +        protected void EncodeValue(mxCodec enc, Object obj, string fieldname,
    +                Object value, XmlNode node)
    +        {
    +            if (value != null && !IsExcluded(obj, fieldname, value, true))
    +            {
    +                if (IsReference(obj, fieldname, value, true))
    +                {
    +                    Object tmp = enc.GetId(value);
    +
    +                    if (tmp == null)
    +                    {
    +                        Trace.WriteLine("mxObjectCodec.encode: No ID for " +
    +                            GetName() + "." + fieldname + "=" + value);
    +                        return; // exit
    +                    }
    +
    +                    value = tmp;
    +                }
    +
    +                Object defaultValue = GetFieldValue(template, fieldname);
    +
    +                if (fieldname == null || enc.IsEncodeDefaults
    +                        || defaultValue == null || !defaultValue.Equals(value))
    +                {
    +                    WriteAttribute(enc, obj, GetAttributeName(fieldname), value,
    +                            node);
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given object is a primitive value.
    +        /// </summary>
    +        /// <param name="value">Object that should be checked.</param>
    +        /// <returns>Returns true if the given object is a primitive value.</returns>
    +        protected bool IsPrimitiveValue(Object value)
    +        {
    +            return value is string || value is Boolean
    +                    || value is Char || value is Byte
    +                    || value is Int16 || value is Int32
    +                    || value is Int64 || value is Single
    +                    || value is Double || value.GetType().IsPrimitive;
    +        }
    +
    +        /// <summary>
    +        /// Writes the given value into node using writePrimitiveAttribute
    +        /// or writeComplexAttribute depending on the type of the value.
    +        /// </summary>
    +        /// 
    +        protected void WriteAttribute(mxCodec enc, Object obj, string attr,
    +                Object value, XmlNode node)
    +        {
    +            value = ConvertValueToXml(value);
    +
    +            if (IsPrimitiveValue(value))
    +            {
    +                WritePrimitiveAttribute(enc, obj, attr, value, node);
    +            }
    +            else
    +            {
    +                WriteComplexAttribute(enc, obj, attr, value, node);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Writes the given value as an attribute of the given node.
    +        /// </summary>
    +        protected void WritePrimitiveAttribute(mxCodec enc, Object obj,
    +                string attr, Object value, XmlNode node)
    +        {
    +            if (attr == null || obj is IDictionary)
    +            {
    +                XmlNode child = enc.Document.CreateElement("add");
    +
    +                if (attr != null)
    +                {
    +                    mxCodec.SetAttribute(child, "as", attr);
    +                }
    +
    +                mxCodec.SetAttribute(child, "value", value);
    +                node.AppendChild(child);
    +            }
    +            else
    +            {
    +                mxCodec.SetAttribute(node, attr, value);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Writes the given value as a child node of the given node.
    +        /// </summary>
    +        protected void WriteComplexAttribute(mxCodec enc, Object obj, string attr,
    +                Object value, XmlNode node)
    +        {
    +            XmlNode child = enc.Encode(value);
    +
    +            if (child != null)
    +            {
    +                if (attr != null)
    +                {
    +                    mxCodec.SetAttribute(child, "as", attr);
    +                }
    +
    +                node.AppendChild(child);
    +            }
    +            else
    +            {
    +                Trace.WriteLine("mxObjectCodec.encode: No node for " +
    +                    GetName() + "." + attr + ": " + value);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Converts true to "1" and false to "0". All other values are ignored.
    +        /// </summary>
    +        protected virtual Object ConvertValueToXml(Object value)
    +        {
    +            if (value is Boolean)
    +            {
    +                value = ((bool)value) ? "1" : "0";
    +            }
    +
    +            return value;
    +        }
    +
    +        /// <summary>
    +        /// Converts XML attribute values to object of the given type.
    +        /// </summary>
    +        protected virtual Object ConvertValueFromXml(Type type, Object value)
    +        {
    +            // Special case: Booleans are stored as numeric values   
    +            if (type == true.GetType()) // TODO: static type reference
    +            {
    +                value = value.Equals("1");
    +            }
    +            else
    +            {
    +                TypeConverter tc = TypeDescriptor.GetConverter(type);
    +
    +                if (tc.CanConvertFrom(value.GetType()))
    +                {
    +                    value = tc.ConvertFrom(value);
    +                }
    +            }
    +
    +            return value;
    +        }
    +
    +        /// <summary>
    +        /// Returns the XML node attribute name for the given C# field name.
    +        /// That is, it returns the mapping of the field name.
    +        /// </summary>
    +        protected string GetAttributeName(string fieldname)
    +        {
    +            if (fieldname != null)
    +            {
    +                string mapped = (mapping.ContainsKey(fieldname)) ? mapping[fieldname] : null;
    +
    +                if (mapped != null)
    +                {
    +                    fieldname = mapped;
    +                }
    +            }
    +
    +            return fieldname;
    +        }
    +
    +        /// <summary>
    +        /// Returns the C# field name for the given XML attribute
    +        /// name. That is, it returns the reverse mapping of the
    +        /// attribute name.
    +        /// </summary>
    +        /// <param name="attributename">The attribute name to be mapped.</param>
    +        /// <returns>String that represents the mapped field name.</returns>
    +        protected string GetFieldName(string attributename)
    +        {
    +            if (attributename != null)
    +            {
    +                string mapped = (reverse.ContainsKey(attributename)) ? reverse[attributename] : null;
    +
    +                if (mapped != null)
    +                {
    +                    attributename = mapped;
    +                }
    +            }
    +
    +            return attributename;
    +        }
    +
    +        /// <summary>
    +        /// Returns the value of the field with the specified name
    +        /// in the specified object instance.
    +        /// </summary>
    +        protected Object GetFieldValue(Object obj, string name)
    +        {
    +            Object value = null;
    +
    +            if (obj != null && name != null && name.Length > 0)
    +            {
    +                name = name.Substring(0, 1).ToUpper() + name.Substring(1);
    +                PropertyInfo property = obj.GetType().GetProperty(name);
    +
    +                // Gets a boolean property by adding Is-Prefix
    +                if (property == null)
    +                {
    +                    property = obj.GetType().GetProperty("Is"+name);
    +                }
    +
    +                try
    +                {
    +                    value = property.GetValue(obj, null);
    +                }
    +                catch (Exception e)
    +                {
    +                    Trace.WriteLine(this + ".GetFieldValue(" + obj + ", " + name + "): " + e.Message);
    +                }
    +            }
    +
    +            return value;
    +        }
    +
    +        /// <summary>
    +        /// Sets the value of the field with the specified name
    +        /// in the specified object instance.
    +        /// </summary>
    +        protected void SetFieldValue(Object obj, string name, Object value)
    +        {
    +            try
    +            {
    +                name = name.Substring(0, 1).ToUpper() + name.Substring(1);
    +                PropertyInfo property = obj.GetType().GetProperty(name);
    +
    +                // Finds a boolean property by adding Is-Prefix
    +                if (property == null)
    +                {
    +                    property = obj.GetType().GetProperty("Is"+name);
    +
    +                    if ((!value.Equals("1") && !value.Equals("0")) ||
    +                        property.PropertyType != true.GetType())
    +                    {
    +                        property = null;
    +                    }
    +                }
    +
    +                if (property != null)
    +                {
    +                    value = ConvertValueFromXml(property.PropertyType, value);
    +
    +					// Converts collection to a typed array before setting
    +                    if (property.PropertyType.IsArray &&
    +                        value is ArrayList)
    +                    {
    +                        ArrayList list = (ArrayList)value;
    +                        value = list.ToArray(property.PropertyType.GetElementType());
    +                    }
    +
    +                    property.SetValue(obj, value, null);
    +                }
    +                else
    +                {
    +                    Console.WriteLine("Cannot set field " + name);
    +                }
    +            }
    +            catch (Exception e)
    +            {
    +                Trace.WriteLine(this + ".SetFieldValue(" + obj + ", " + name + ", " + value + "): " + e.Message);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Hook for subclassers to pre-process the object before
    +        /// encoding. This returns the input object. The return
    +        /// value of this function is used in encode to perform
    +        /// the default encoding into the given node.
    +        /// </summary>
    +        /// <param name="enc">Codec that controls the encoding process.</param>
    +        /// <param name="obj">Object to be encoded.</param>
    +        /// <param name="node">XML node to encode the object into.</param>
    +        /// <returns>Returns the object to be encoded by the default encoding.</returns>
    +        public virtual Object BeforeEncode(mxCodec enc, Object obj, XmlNode node)
    +        {
    +            return obj;
    +        }
    +
    +        /// <summary>
    +        /// Hook for subclassers to Receive-process the node
    +        /// for the given object after encoding and return the
    +        /// Receive-processed node. This implementation returns
    +        /// the input node. The return value of this method
    +        /// is returned to the encoder from encode.
    +        /// </summary>
    +        /// <param name="enc">Codec that controls the encoding process.</param>
    +        /// <param name="obj">Object to be encoded.</param>
    +        /// <param name="node">XML node that represents the default encoding.</param>
    +        /// <returns>Returns the resulting node of the encoding.</returns>
    +        public virtual XmlNode AfterEncode(mxCodec enc, Object obj, XmlNode node)
    +        {
    +            return node;
    +        }
    +
    +        /// <summary>
    +        /// Parses the given node into the object or returns a new object
    +        /// representing the given node.
    +        /// </summary>
    +        /// <param name="dec">Codec that controls the encoding process.</param>
    +        /// <param name="node">XML node to be decoded.</param>
    +        /// <returns>Returns the resulting object that represents the given XML node.</returns>
    +        public virtual Object Decode(mxCodec dec, XmlNode node)
    +        {
    +            return Decode(dec, node, null);
    +        }
    +
    +        /// <summary>
    +        /// Parses the given node into the object or returns a new object
    +        /// representing the given node.
    +        /// Dec is a reference to the calling decoder. It is used to decode
    +        /// complex objects and resolve references.
    +        /// If a node has an id attribute then the object cache is checked for the
    +        /// object. If the object is not yet in the cache then it is constructed
    +        /// using the constructor of template and cached in mxCodec.objects.
    +        /// This implementation decodes all attributes and childs of a node
    +        /// according to the following rules:
    +        /// - If the variable name is in exclude or if the attribute name is "id"
    +        /// or "as" then it is ignored.
    +        /// - If the variable name is in idrefs then mxCodec.getObject is used
    +        /// to replace the reference with an object.
    +        /// - The variable name is mapped using a reverse mapping.
    +        /// - If the value has a child node, then the codec is used to create a
    +        /// child object with the variable name taken from the "as" attribute.
    +        /// - If the object is an array and the variable name is empty then the
    +        /// value or child object is appended to the array.
    +        /// - If an add child has no value or the object is not an array then
    +        /// the child text content is evaluated using mxUtils.eval.
    +        /// If no object exists for an ID in idrefs a warning is issued
    +        /// using mxLog.warn.
    +        /// Returns the resulting object that represents the given XML
    +        /// node or the configured given object.
    +        /// </summary>
    +        /// <param name="dec">Codec that controls the encoding process.</param>
    +        /// <param name="node">XML node to be decoded.</param>
    +        /// <param name="into">Optional objec to encode the node into.</param>
    +        /// <returns>Returns the resulting object that represents the given XML node
    +        /// or the object given to the method as the into parameter.</returns>
    +        public virtual Object Decode(mxCodec dec, XmlNode node, Object into)
    +        {
    +            Object obj = null;
    +
    +            if (node is XmlElement)
    +            {
    +                string id = ((XmlElement)node).GetAttribute("id");
    +                obj = (dec.Objects.ContainsKey(id)) ? dec.Objects[id] : null;
    +
    +                if (obj == null)
    +                {
    +                    obj = into;
    +
    +                    if (obj == null)
    +                    {
    +                        obj = CloneTemplate(node);
    +                    }
    +
    +                    if (id != null && id.Length > 0)
    +                    {
    +                        dec.PutObject(id, obj);
    +                    }
    +                }
    +
    +                node = BeforeDecode(dec, node, obj);
    +                DecodeNode(dec, node, obj);
    +                obj = AfterDecode(dec, node, obj);
    +            }
    +
    +            return obj;
    +        }
    +
    +        /// <summary>
    +        /// Calls decodeAttributes and decodeChildren for the given node.
    +        /// </summary>
    +        protected void DecodeNode(mxCodec dec, XmlNode node, Object obj)
    +        {
    +            if (node != null)
    +            {
    +                DecodeAttributes(dec, node, obj);
    +                DecodeChildren(dec, node, obj);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Decodes all attributes of the given node using decodeAttribute.
    +        /// </summary>
    +        protected void DecodeAttributes(mxCodec dec, XmlNode node, Object obj)
    +        {
    +            XmlAttributeCollection attrs = node.Attributes;
    +            if (attrs != null)
    +            {
    +                foreach (XmlAttribute attr in attrs)
    +                {
    +                    DecodeAttribute(dec, attr, obj);
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Reads the given attribute into the specified object.
    +        /// </summary>
    +        protected void DecodeAttribute(mxCodec dec, XmlNode attr, Object obj)
    +        {
    +            string name = attr.Name;
    +
    +            if (!name.ToLower().Equals("as") &&
    +                !name.ToLower().Equals("id"))
    +            {
    +                Object value = attr.Value;
    +                string fieldname = GetFieldName(name);
    +
    +                if (IsReference(obj, fieldname, value, false))
    +                {
    +                    Object tmp = dec.GetObject(value.ToString());
    +
    +                    if (tmp == null)
    +                    {
    +                        Trace.WriteLine("mxObjectCodec.decode: No object for " +
    +                            GetName() + "." + fieldname + "=" + value);
    +                        return; // exit
    +                    }
    +
    +                    value = tmp;
    +                }
    +
    +                if (!IsExcluded(obj, fieldname, value, false))
    +                {
    +                    SetFieldValue(obj, fieldname, value);
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Reads the given attribute into the specified object.
    +        /// </summary>
    +        protected void DecodeChildren(mxCodec dec, XmlNode node, Object obj)
    +        {
    +            XmlNode child = node.FirstChild;
    +
    +            while (child != null)
    +            {
    +                if (child.NodeType == XmlNodeType.Element
    +                        && !ProcessInclude(dec, child, obj))
    +                {
    +                    DecodeChild(dec, child, obj);
    +                }
    +
    +                child = child.NextSibling;
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Reads the specified child into the given object.
    +        /// </summary>
    +        protected void DecodeChild(mxCodec dec, XmlNode child, Object obj)
    +        {
    +            string fieldname = GetFieldName(((XmlElement)child).GetAttribute("as"));
    +
    +            if (fieldname == null || !IsExcluded(obj, fieldname, child, false))
    +            {
    +                Object template = GetFieldTemplate(obj, fieldname, child);
    +                Object value = null;
    +                
    +                if (child.Name.Equals("add"))
    +                {
    +                    value = ((XmlElement)child).GetAttribute("value");
    +
    +                    if (value == null)
    +                    {
    +                        value = child.InnerText;
    +                    }
    +                }
    +                else
    +                {
    +                    value = dec.Decode(child, template);
    +                }
    +
    +                AddObjectValue(obj, fieldname, value, template);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the template instance for the given field. This returns the
    +        /// value of the field, null if the value is an array or an empty collection
    +        /// if the value is a collection. The value is then used to populate the
    +        /// field for a new instance. For strongly typed languages it may be
    +        /// required to override this to return the correct collection instance
    +        /// based on the encoded child.
    +        /// </summary>
    +        protected Object GetFieldTemplate(Object obj, String fieldname, XmlNode child)
    +	    {
    +		    Object template = GetFieldValue(obj, fieldname);
    +
    +            // Arrays are replaced completely
    +            if (template != null && template.GetType().IsArray)
    +            {
    +                template = null;
    +            }
    +            // Collections are cleared
    +            else if (template is IList)
    +            {
    +                ((IList)template).Clear();
    +            }
    +    		
    +		    return template;
    +	    }
    +
    +        /// <summary>
    +        /// Sets the decoded child node as a value of the given object. If the
    +        /// object is a map, then the value is added with the given fieldname as a
    +        /// key. If the fieldname is not empty, then setFieldValue is called or
    +        /// else, if the object is a collection, the value is added to the
    +        /// collection. For strongly typed languages it may be required to
    +        /// override this with the correct code to add an entry to an object.
    +        /// </summary>
    +        protected void AddObjectValue(Object obj, String fieldname, Object value, Object template)
    +	    {
    +            if (value != null && !value.Equals(template))
    +            {
    +                if (fieldname != null && obj is IDictionary)
    +                {
    +                    ((IDictionary)obj).Add(fieldname, value);
    +                }
    +                else if (fieldname != null && fieldname.Length > 0)
    +                {
    +                    SetFieldValue(obj, fieldname, value);
    +                }
    +                // Arrays are treated as collections and
    +                // converted in setFieldValue
    +                else if (obj is IList)
    +                {
    +                    ((IList)obj).Add(value);
    +                }
    +            }
    +	    }
    +
    +        /// <summary>
    +        /// 
    +        /// </summary>
    +        /// <param name="dec">Codec that controls the encoding/decoding process.</param>
    +        /// <param name="node">XML node to be checked.</param>
    +        /// <param name="into">Optional object to pass-thru to the codec.</param>
    +        /// <returns>Returns true if the given node was processed as an include.</returns>
    +        public bool ProcessInclude(mxCodec dec, XmlNode node, Object into)
    +        {
    +            if (node.NodeType == XmlNodeType.Element
    +                    && node.Name.ToLower().Equals("include"))
    +            {
    +                string name = ((XmlElement)node).GetAttribute("name");
    +
    +                if (name != null)
    +                {
    +                    XmlNode xml = mxUtils.LoadDocument(name).DocumentElement;
    +
    +                    if (xml != null)
    +                    {
    +                        dec.Decode(xml, into);
    +                    }
    +                }
    +
    +                return true;
    +            }
    +
    +            return false;
    +        }
    +
    +        /// <summary>
    +        /// Hook for subclassers to pre-process the node for
    +        /// the specified object and return the node to be
    +        /// used for further processing by decode.
    +        /// The object is created based on the template in the
    +        /// calling method and is never null. This implementation
    +        /// returns the input node. The return value of this
    +        /// function is used in decode to perform
    +        /// the default decoding into the given object.
    +        /// </summary>
    +        /// <param name="dec">Codec that controls the decoding process.</param>
    +        /// <param name="node">XML node to be decoded.</param>
    +        /// <param name="obj">Object to encode the node into.</param>
    +        /// <returns>Returns the node used for the default decoding.</returns>
    +        public virtual XmlNode BeforeDecode(mxCodec dec, XmlNode node, Object obj)
    +        {
    +            return node;
    +        }
    +
    +        /// <summary>
    +        /// Hook for subclassers to Receive-process the object after
    +        /// decoding. This implementation returns the given object
    +        /// without any changes. The return value of this method
    +        /// is returned to the decoder from decode.
    +        /// </summary>
    +        /// <param name="dec">Codec that controls the decoding process.</param>
    +        /// <param name="node">XML node to be decoded.</param>
    +        /// <param name="obj">Object that represents the default decoding.</param>
    +        /// <returns>Returns the result of the decoding process.</returns>
    +        public virtual Object AfterDecode(mxCodec dec, XmlNode node, Object obj)
    +        {
    +            return obj;
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/io/mxStylesheetCodec.cs b/dotnet/src/io/mxStylesheetCodec.cs
    new file mode 100644
    index 000000000..1ecd4dab0
    --- /dev/null
    +++ b/dotnet/src/io/mxStylesheetCodec.cs
    @@ -0,0 +1,181 @@
    +// $Id: mxStylesheetCodec.cs,v 1.9 2011-06-13 08:18:42 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Codec for mxStylesheets. This class is created and registered
    +    /// dynamically at load time and used implicitely via mxCodec
    +    /// and the mxCodecRegistry.
    +    /// </summary>
    +    public class mxStylesheetCodec : mxObjectCodec
    +    {
    +
    +        /// <summary>
    +        /// Constructs a new stylesheet codec.
    +        /// </summary>
    +        public mxStylesheetCodec() : this(new mxStylesheet(), null, null, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new stylesheet codec for the given template.
    +        /// </summary>
    +        public mxStylesheetCodec(Object template) : this(template, null, null, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new stylesheet codec for the given arguments.
    +        /// </summary>
    +        public mxStylesheetCodec(Object template, String[] exclude, String[] idrefs,
    +                Dictionary<string, string> mapping)
    +            : base(template, exclude, idrefs, mapping) { }
    +
    +        /// <summary>
    +        /// Encode the given mxStylesheet.
    +        /// </summary>
    +        public override XmlNode Encode(mxCodec enc, Object obj)
    +        {
    +            XmlElement node = enc.Document.CreateElement(GetName());
    +    		
    +		    if (obj is mxStylesheet)
    +		    {
    +			    mxStylesheet stylesheet = (mxStylesheet) obj;
    +
    +                foreach (KeyValuePair<string, Dictionary<string, Object>> entry in stylesheet.Styles)
    +                {
    +                    XmlElement styleNode = enc.Document.CreateElement("add");
    +                    styleNode.SetAttribute("as", entry.Key);
    +
    +                    foreach (KeyValuePair<string, Object> entry2 in entry.Value)
    +                    {
    +                        XmlElement entryNode = enc.Document.CreateElement("add");
    +					    entryNode.SetAttribute("as", entry2.Key);
    +                        entryNode.SetAttribute("value", getStringValue(entry2));
    +					    styleNode.AppendChild(entryNode);
    +                    }
    +
    +				    if (styleNode.ChildNodes.Count > 0)
    +				    {
    +					    node.AppendChild(styleNode);
    +				    }
    +			    }
    +		    }
    +    		
    +		    return node;
    +        }
    +
    +        /// <summary>
    +        /// Returns the string for encoding the given value.
    +        /// </summary>
    +        protected string getStringValue(KeyValuePair<string, Object> entry)
    +        {
    +            if (entry.Value is Boolean)
    +            {
    +                return ((Boolean)entry.Value) ? "1" : "0";
    +            }
    +
    +            return entry.Value.ToString();
    +        }
    +
    +        /// <summary>
    +        /// Decodes the given mxStylesheet.
    +        /// </summary>
    +        public override Object Decode(mxCodec dec, XmlNode node, Object into)
    +        {
    +            Object obj = null;
    +
    +            if (node is XmlElement)
    +            {
    +                string id = ((XmlElement)node).GetAttribute("id");
    +                obj = (dec.Objects.ContainsKey(id)) ? dec.Objects[id] : null;
    +
    +                if (obj == null)
    +                {
    +                    obj = into;
    +
    +                    if (obj == null)
    +                    {
    +                        obj = CloneTemplate(node);
    +                    }
    +
    +                    if (id != null && id.Length > 0)
    +                    {
    +                        dec.PutObject(id, obj);
    +                    }
    +                }
    +
    +                node = node.FirstChild;
    +
    +                while (node != null)
    +                {
    +                    if (!ProcessInclude(dec, node, obj) && node.Name.Equals("add") && node is XmlElement)
    +                    {
    +                        string name = ((XmlElement) node).GetAttribute("as");
    +
    +                        if (name != null && name.Length > 0)
    +                        {
    +                            string extend = ((XmlElement) node).GetAttribute("extend");
    +                            Dictionary<string, Object> style = (extend != null && ((mxStylesheet)obj).Styles.ContainsKey(extend)) ?
    +                                    ((mxStylesheet)obj).Styles[extend] : null;
    +
    +                            if (style == null)
    +                            {
    +                                style = new Dictionary<string, Object>();
    +                            }
    +                            else
    +                            {
    +                                style = new Dictionary<string, Object>(style);
    +                            }
    +
    +                            XmlNode entry = node.FirstChild;
    +
    +                            while (entry != null)
    +                            {
    +                                if (entry is XmlElement)
    +                                {
    +                                    XmlElement entryElement = (XmlElement)entry;
    +                                    string key = entryElement.GetAttribute("as");
    +
    +                                    if (entry.Name.Equals("add"))
    +                                    {
    +                                        string text = entryElement.Value;
    +                                        Object value = null;
    +
    +                                        if (text != null && text.Length > 0)
    +                                        {
    +                                            value = mxUtils.Eval(text);
    +                                        }
    +                                        else
    +                                        {
    +                                            value = entryElement.GetAttribute("value");
    +                                        }
    +
    +                                        if (value != null)
    +                                        {
    +                                            style[key] = value;
    +                                        }
    +                                    }
    +                                    else if (entry.Name.Equals("remove"))
    +                                    {
    +                                        style.Remove(key);
    +                                    }
    +                                }
    +
    +                                entry = entry.NextSibling;
    +                            }
    +
    +                            ((mxStylesheet) obj).PutCellStyle(name, style);
    +                        }
    +                    }
    +
    +                    node = node.NextSibling;
    +                }
    +            }
    +
    +            return obj;
    +        }
    +    }
    +
    +}
    diff --git a/dotnet/src/layout/mxFastOrganicLayout.cs b/dotnet/src/layout/mxFastOrganicLayout.cs
    new file mode 100644
    index 000000000..cfea91a88
    --- /dev/null
    +++ b/dotnet/src/layout/mxFastOrganicLayout.cs
    @@ -0,0 +1,579 @@
    +// $Id: mxFastOrganicLayout.cs,v 1.12 2009-11-12 19:36:59 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Fast organic layout algorithm.
    +    /// </summary>
    +    public class mxFastOrganicLayout: mxIGraphLayout
    +    {
    +
    +        /// <summary>
    +        /// Holds the enclosing graph.
    +        /// </summary>
    +        protected mxGraph graph;
    +
    +        /// <summary>
    +        /// The force constant by which the attractive forces are divided and the
    +        /// replusive forces are multiple by the square of. The value equates to the
    +        /// average radius there is of free space around each node. Default is 50.
    +        /// </summary>
    +        protected double forceConstant = 50;
    +
    +        /// <summary>
    +        /// Cache of forceConstant^2 for performance.
    +        /// </summary>
    +        protected double forceConstantSquared = 0;
    +
    +        /// <summary>
    +        /// Minimal distance limit. Default is 2. Prevents of
    +        /// dividing by zero.
    +        /// </summary>
    +        protected double minDistanceLimit = 2;
    +
    +        /// <summary>
    +        /// Cached version of minDistanceLimit squared.
    +        /// </summary>
    +        protected double minDistanceLimitSquared = 0;
    +
    +        /// <summary>
    +        /// Start value of temperature. Default is 200.
    +        /// </summary>
    +        protected double initialTemp = 200;
    +
    +        /// <summary>
    +        /// Temperature to limit displacement at later stages of layout.
    +        /// </summary>
    +        protected double temperature = 0;
    +
    +        /// <summary>
    +        /// Total number of iterations to run the layout though.
    +        /// </summary>
    +        protected int maxIterations = 0;
    +
    +        /// <summary>
    +        /// Current iteration count.
    +        /// </summary>
    +        protected int iteration = 0;
    +
    +        /// <summary>
    +        /// An array of all vertices to be laid out.
    +        /// </summary>
    +        protected Object[] vertexArray;
    +
    +        /// <summary>
    +        /// An array of locally stored X co-ordinate displacements for the vertices.
    +        /// </summary>
    +        protected double[] dispX;
    +
    +        /// <summary>
    +        /// An array of locally stored Y co-ordinate displacements for the vertices.
    +        /// </summary>
    +        protected double[] dispY;
    +
    +        /// <summary>
    +        /// An array of locally stored co-ordinate positions for the vertices.
    +        /// </summary>
    +        protected double[][] cellLocation;
    +
    +        /// <summary>
    +        /// The approximate radius of each cell, nodes only.
    +        /// </summary>
    +        protected double[] radius;
    +
    +        /// <summary>
    +        /// The approximate radius squared of each cell, nodes only.
    +        /// </summary>
    +        protected double[] radiusSquared;
    +
    +        /// <summary>
    +        /// Array of booleans representing the movable states of the vertices.
    +        /// </summary>
    +        protected bool[] isMoveable;
    +
    +        /// <summary>
    +        /// Local copy of cell neighbours.
    +        /// </summary>
    +        protected int[][] neighbours;
    +
    +        /// <summary>
    +        /// Boolean flag that specifies if the layout is allowed to run. If this is
    +        /// set to false, then the layout exits in the following iteration.
    +        /// </summary>
    +        protected bool allowedToRun = true;
    +
    +        /// <summary>
    +        /// Maps from vertices to indices.
    +        /// </summary>
    +        protected Dictionary<object, int> indices = new Dictionary<object, int>();
    +
    +        /// <summary>
    +        /// Random number generator.
    +        /// </summary>
    +        protected Random random = new Random();
    +
    +        /// <summary>
    +        /// Constructs a new fast organic layout for the specified graph.
    +        /// </summary>
    +        /// <param name="graph"></param>
    +        public mxFastOrganicLayout(mxGraph graph)
    +        {
    +            this.graph = graph;
    +        }
    +
    +        /// <summary>
    +        /// Flag to stop a running layout run.
    +        /// </summary>
    +        public bool IsAllowedToRun
    +        {
    +            get { return allowedToRun; }
    +            set { allowedToRun = value; }
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given cell should be ignored by the layout algorithm.
    +        /// This implementation returns false if the cell is a vertex and has at least
    +        /// one connected edge.
    +        /// </summary>
    +        /// <param name="cell">Object that represents the cell.</param>
    +        /// <returns>Returns true if the given cell should be ignored.</returns>
    +        public bool IsCellIgnored(Object cell)
    +        {
    +            return !graph.Model.IsVertex(cell) ||
    +                graph.Model.GetEdgeCount(cell) == 0;
    +        }
    +
    +        /// <summary>
    +        /// Maximum number of iterations.
    +        /// </summary>
    +        public int MaxIterations
    +        {
    +            get { return maxIterations; }
    +            set { maxIterations = value; }
    +        }
    +
    +        /// <summary>
    +        /// Force constant to be used for the springs.
    +        /// </summary>
    +        public double ForceConstant
    +        {
    +            get { return forceConstant; }
    +            set { forceConstant = value; }
    +        }
    +
    +        /// <summary>
    +        /// Minimum distance between nodes.
    +        /// </summary>
    +        public double MinDistanceLimit
    +        {
    +            get { return minDistanceLimit; }
    +            set { minDistanceLimit = value; }
    +        }
    +
    +        /// <summary>
    +        /// Initial temperature.
    +        /// </summary>
    +        public double InitialTemp
    +        {
    +            get { return initialTemp; }
    +            set { initialTemp = value; }
    +        }
    +
    +        /// <summary>
    +        /// Reduces the temperature of the layout from an initial setting in a linear
    +        /// fashion to zero.
    +        /// </summary>
    +        protected void reduceTemperature()
    +        {
    +            temperature = initialTemp * (1.0 - iteration / maxIterations);
    +        }
    +
    +        /// <summary>
    +        /// Notified when a cell is being moved in a parent
    +        /// that has automatic layout to update the cell
    +        /// state (eg. index) so that the outcome of the
    +        /// layou will position the vertex as close to the
    +        /// point (x, y) as possible.
    +        /// 
    +        /// Not yet implemented.
    +        /// </summary>
    +        /// <param name="cell"></param>
    +        /// <param name="x"></param>
    +        /// <param name="y"></param>
    +        public void move(Object cell, double x, double y)
    +        {
    +            // TODO: Map the position to a child index for
    +            // the cell to be placed closest to the position
    +        }
    +
    +        /// <summary>
    +        /// Executes the fast organic layout.
    +        /// </summary>
    +        /// <param name="parent"></param>
    +        public void execute(Object parent)
    +        {
    +            mxIGraphModel model = graph.Model;
    +
    +            // Finds the relevant vertices for the layout
    +            int childCount = model.GetChildCount(parent);
    +            List<Object> tmp = new List<Object>(childCount);
    +
    +            for (int i = 0; i < childCount; i++)
    +            {
    +                Object child = model.GetChildAt(parent, i);
    +
    +                if (!IsCellIgnored(child))
    +                {
    +                    tmp.Add(child);
    +                }
    +            }
    +
    +            vertexArray = tmp.ToArray();
    +            int n = vertexArray.Length;
    +
    +            dispX = new double[n];
    +            dispY = new double[n];
    +            cellLocation = new double[n][];
    +            isMoveable = new bool[n];
    +            neighbours = new int[n][];
    +            radius = new double[n];
    +            radiusSquared = new double[n];
    +
    +            minDistanceLimitSquared = minDistanceLimit * minDistanceLimit;
    +
    +            if (forceConstant < 0.001)
    +            {
    +                forceConstant = 0.001;
    +            }
    +
    +            forceConstantSquared = forceConstant * forceConstant;
    +
    +            // Create a map of vertices first. This is required for the array of
    +            // arrays called neighbours which holds, for each vertex, a list of
    +            // ints which represents the neighbours cells to that vertex as
    +            // the indices into vertexArray
    +            for (int i = 0; i < vertexArray.Length; i++)
    +            {
    +                Object vertex = vertexArray[i];
    +                cellLocation[i] = new double[2];
    +
    +                // Set up the mapping from array indices to cells
    +                indices[vertex] = i;
    +                mxGeometry bounds = model.GetGeometry(vertex);
    +
    +                // Set the X,Y value of the internal version of the cell to
    +                // the center point of the vertex for better positioning
    +                double width = bounds.Width;
    +                double height = bounds.Height;
    +
    +                // Randomize (0, 0) locations
    +                double x = bounds.X;
    +                double y = bounds.Y;
    +
    +                cellLocation[i][0] = x + width / 2.0;
    +                cellLocation[i][1] = y + height / 2.0;
    +
    +                radius[i] = Math.Min(width, height);
    +                radiusSquared[i] = radius[i] * radius[i];
    +            }
    +
    +            for (int i = 0; i < n; i++)
    +            {
    +                dispX[i] = 0;
    +                dispY[i] = 0;
    +                isMoveable[i] = graph.IsCellMovable(vertexArray[i]);
    +
    +                // Get lists of neighbours to all vertices, translate the cells
    +                // obtained in indices into vertexArray and store as an array
    +                // against the orginial cell index
    +                Object[] edges = mxGraphModel.GetEdges(model, vertexArray[i]);
    +                Object[] cells = mxGraphModel.GetOpposites(model, edges,
    +                        vertexArray[i], true, true);
    +
    +                neighbours[i] = new int[cells.Length];
    +
    +                for (int j = 0; j < cells.Length; j++)
    +                {
    +                    int? index = indices[cells[j]];
    +
    +                    // Check the connected cell in part of the vertex list to be
    +                    // acted on by this layout
    +                    if (index != null)
    +                    {
    +                        neighbours[i][j] = (int) index;
    +                    }
    +
    +                    // Else if index of the other cell doesn't correspond to
    +                    // any cell listed to be acted upon in this layout. Set
    +                    // the index to the value of this vertex (a dummy self-loop)
    +                    // so the attraction force of the edge is not calculated
    +                    else
    +                    {
    +                        neighbours[i][j] = i;
    +                    }
    +                }
    +            }
    +            temperature = initialTemp;
    +
    +            // If max number of iterations has not been set, guess it
    +            if (maxIterations == 0)
    +            {
    +                maxIterations = (int)(20 * Math.Sqrt(n));
    +            }
    +
    +            // Main iteration loop
    +            for (iteration = 0; iteration < maxIterations; iteration++)
    +            {
    +                if (!allowedToRun)
    +                {
    +                    return;
    +                }
    +
    +                // Calculate repulsive forces on all vertices
    +                calcRepulsion();
    +
    +                // Calculate attractive forces through edges
    +                calcAttraction();
    +
    +                calcPositions();
    +                reduceTemperature();
    +            }
    +
    +            // Moved cell location back to top-left from center locations used in
    +            // algorithm
    +            model.BeginUpdate();
    +            try
    +            {
    +                double? minx = null;
    +                double? miny = null;
    +
    +                for (int i = 0; i < vertexArray.Length; i++)
    +                {
    +                    Object vertex = vertexArray[i];
    +                    mxGeometry geo = model.GetGeometry(vertex);
    +
    +                    if (geo != null)
    +                    {
    +                        cellLocation[i][0] -= geo.Width / 2.0;
    +                        cellLocation[i][1] -= geo.Height / 2.0;
    +
    +                        geo = geo.Clone();
    +
    +                        geo.X = graph.Snap(cellLocation[i][0]);
    +                        geo.Y = graph.Snap(cellLocation[i][1]);
    +
    +                        model.SetGeometry(vertex, geo);
    +
    +                        if (minx == null)
    +                        {
    +                            minx = geo.X;
    +                        }
    +                        else
    +                        {
    +                            minx = Math.Min((double) minx, geo.X);
    +                        }
    +
    +                        if (miny == null)
    +                        {
    +                            miny = geo.Y;
    +                        }
    +                        else
    +                        {
    +                            miny = Math.Min((double) miny, geo.Y);
    +                        }
    +                    }
    +                }
    +
    +                // Modifies the cloned geometries in-place. Not needed
    +                // to clone the geometries again as we're in the same
    +                // undoable change.
    +                if (minx != null || miny != null)
    +                {
    +                    for (int i = 0; i < vertexArray.Length; i++)
    +                    {
    +                        Object vertex = vertexArray[i];
    +                        mxGeometry geo = model.GetGeometry(vertex);
    +
    +                        if (geo != null)
    +                        {
    +                            if (minx != null)
    +                            {
    +                                geo.X -= ((double) minx) - 1;
    +                            }
    +
    +                            if (miny != null)
    +                            {
    +                                geo.Y -= ((double) miny) - 1;
    +                            }
    +                        }
    +                    }
    +                }
    +            }
    +            finally
    +            {
    +                model.EndUpdate();
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Takes the displacements calculated for each cell and applies them to the
    +        /// local cache of cell positions. Limits the displacement to the current
    +        /// temperature.
    +        /// </summary>
    +        protected void calcPositions()
    +        {
    +            for (int index = 0; index < vertexArray.Length; index++)
    +            {
    +                if (isMoveable[index])
    +                {
    +                    // Get the distance of displacement for this node for this
    +                    // iteration
    +                    double deltaLength = Math.Sqrt(dispX[index] * dispX[index]
    +                            + dispY[index] * dispY[index]);
    +
    +                    if (deltaLength < 0.001)
    +                    {
    +                        deltaLength = 0.001;
    +                    }
    +
    +                    // Scale down by the current temperature if less than the
    +                    // displacement distance
    +                    double newXDisp = dispX[index] / deltaLength
    +                            * Math.Min(deltaLength, temperature);
    +                    double newYDisp = dispY[index] / deltaLength
    +                            * Math.Min(deltaLength, temperature);
    +
    +                    // reset displacements
    +                    dispX[index] = 0;
    +                    dispY[index] = 0;
    +
    +                    // Update the cached cell locations
    +                    cellLocation[index][0] += newXDisp;
    +                    cellLocation[index][1] += newYDisp;
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Calculates the attractive forces between all laid out nodes linked by
    +        /// edges
    +        /// </summary>
    +        protected void calcAttraction()
    +        {
    +            // Check the neighbours of each vertex and calculate the attractive
    +            // force of the edge connecting them
    +            for (int i = 0; i < vertexArray.Length; i++)
    +            {
    +                for (int k = 0; k < neighbours[i].Length; k++)
    +                {
    +                    // Get the index of the othe cell in the vertex array
    +                    int j = neighbours[i][k];
    +
    +                    // Do not proceed self-loops
    +                    if (i != j)
    +                    {
    +                        double xDelta = cellLocation[i][0] - cellLocation[j][0];
    +                        double yDelta = cellLocation[i][1] - cellLocation[j][1];
    +
    +                        // The distance between the nodes
    +                        double deltaLengthSquared = xDelta * xDelta + yDelta
    +                                * yDelta - radiusSquared[i] - radiusSquared[j];
    +
    +                        if (deltaLengthSquared < minDistanceLimitSquared)
    +                        {
    +                            deltaLengthSquared = minDistanceLimitSquared;
    +                        }
    +
    +                        double deltaLength = Math.Sqrt(deltaLengthSquared);
    +                        double force = (deltaLengthSquared) / forceConstant;
    +
    +                        double displacementX = (xDelta / deltaLength) * force;
    +                        double displacementY = (yDelta / deltaLength) * force;
    +
    +                        if (isMoveable[i])
    +                        {
    +                            this.dispX[i] -= displacementX;
    +                            this.dispY[i] -= displacementY;
    +                        }
    +
    +                        if (isMoveable[j])
    +                        {
    +                            dispX[j] += displacementX;
    +                            dispY[j] += displacementY;
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Calculates the repulsive forces between all laid out nodes
    +        /// </summary>
    +        protected void calcRepulsion()
    +        {
    +            int vertexCount = vertexArray.Length;
    +
    +            for (int i = 0; i < vertexCount; i++)
    +            {
    +                for (int j = i; j < vertexCount; j++)
    +                {
    +                    // Exits if the layout is no longer allowed to run
    +                    if (!allowedToRun)
    +                    {
    +                        return;
    +                    }
    +
    +                    if (j != i)
    +                    {
    +                        double xDelta = cellLocation[i][0] - cellLocation[j][0];
    +                        double yDelta = cellLocation[i][1] - cellLocation[j][1];
    +
    +                        if (xDelta == 0)
    +                        {
    +                            xDelta = 0.01 + random.NextDouble();
    +                        }
    +
    +                        if (yDelta == 0)
    +                        {
    +                            yDelta = 0.01 + random.NextDouble();
    +                        }
    +
    +                        // Distance between nodes
    +                        double deltaLength = Math.Sqrt((xDelta * xDelta)
    +                                + (yDelta * yDelta));
    +
    +                        double deltaLengthWithRadius = deltaLength - radius[i]
    +                                - radius[j];
    +
    +                        if (deltaLengthWithRadius < minDistanceLimit)
    +                        {
    +                            deltaLengthWithRadius = minDistanceLimit;
    +                        }
    +
    +                        double force = forceConstantSquared / deltaLengthWithRadius;
    +
    +                        double displacementX = (xDelta / deltaLength) * force;
    +                        double displacementY = (yDelta / deltaLength) * force;
    +
    +                        if (isMoveable[i])
    +                        {
    +                            dispX[i] += displacementX;
    +                            dispY[i] += displacementY;
    +                        }
    +
    +                        if (isMoveable[j])
    +                        {
    +                            dispX[j] -= displacementX;
    +                            dispY[j] -= displacementY;
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +
    +    }
    +}
    diff --git a/dotnet/src/layout/mxIGraphLayout.cs b/dotnet/src/layout/mxIGraphLayout.cs
    new file mode 100644
    index 000000000..320f05d01
    --- /dev/null
    +++ b/dotnet/src/layout/mxIGraphLayout.cs
    @@ -0,0 +1,33 @@
    +// $Id: mxIGraphLayout.cs,v 1.3 2008-03-11 15:46:13 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines the requirements for an object that implements a graph layout.
    +    /// </summary>
    +    public interface mxIGraphLayout
    +    {
    +
    +        /// <summary>
    +        /// Executes the layout for the children of the specified parent.
    +        /// </summary>
    +        /// <param name="parent">Parent cell that contains the children to be layed out.</param>
    +        void execute(Object parent);
    +
    +        /// <summary>
    +        /// Notified when a cell is being moved in a parent that has automatic
    +        /// layout to update the cell state (eg. index) so that the outcome of the
    +        /// layout will position the vertex as close to the point (x, y) as
    +        /// possible.
    +        /// </summary>
    +        /// <param name="cell">Cell which is being moved.</param>
    +        /// <param name="x">X-coordinate of the new cell location.</param>
    +        /// <param name="y">Y-coordinate of the new cell location.</param>
    +        void move(Object cell, double x, double y);
    +
    +    }
    +}
    diff --git a/dotnet/src/model/mxCell.cs b/dotnet/src/model/mxCell.cs
    new file mode 100644
    index 000000000..94f0bb787
    --- /dev/null
    +++ b/dotnet/src/model/mxCell.cs
    @@ -0,0 +1,518 @@
    +// $Id: mxCell.cs,v 1.25 2010-08-31 12:33:02 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Cells are the elements of the graph model. They represent the state
    +    /// of the groups, vertices and edges in a graph.
    +    /// </summary>
    +    public class mxCell : mxICell
    +    {
    +
    +        /// <summary>
    +        /// Holds the Id. Default is null.
    +        /// </summary>
    +        protected string id;
    +
    +        /// <summary>
    +        /// Holds the user object. Default is null.
    +        /// </summary>
    +        protected Object value;
    +
    +        /// <summary>
    +        /// Holds the geometry. Default is null.
    +        /// </summary>
    +        protected mxGeometry geometry;
    +
    +        /// <summary>
    +        /// Holds the geometry. Default is null.
    +        /// </summary>
    +        protected string style;
    +
    +        /// <summary>
    +        /// Specifies whether the cell is a vertex. Default value is false.
    +        /// </summary>
    +        protected bool vertex = false;
    +
    +        /// <summary>
    +        /// Specifies whether the cell is an edge. Default value is false.
    +        /// </summary>
    +        protected bool edge = false;
    +
    +        /// <summary>
    +        /// Specifies whether the cell connectable. Default value is true.
    +        /// </summary>
    +        protected bool connectable = true;
    +
    +        /// <summary>
    +        /// Specifies whether the cell is visible. Default value is true.
    +        /// </summary>
    +        protected bool visible = true;
    +
    +        /// <summary>
    +        /// Specifies whether the cell is collapsed. Default value is false.
    +        /// </summary>
    +        protected bool collapsed = false;
    +
    +        /// <summary>
    +        /// Reference to the parent cell.
    +        /// </summary>
    +        protected mxICell parent;
    +
    +        /// <summary>
    +        /// Reference to the source terminal of an edge.
    +        /// </summary>
    +        protected mxICell source;
    +
    +        /// <summary>
    +        /// Reference to the target terminal of an edge.
    +        /// </summary>
    +        protected mxICell target;
    +
    +        /// <summary>
    +        /// Holds the child cells.
    +        /// </summary>
    +        protected /* transient */ List<mxICell> children;
    +
    +        /// <summary>
    +        /// Holds the connected edges.
    +        /// </summary>
    +        protected /* transient */ List<mxICell> edges;
    +
    +        /// <summary>
    +        /// Constructs a new empty cell.
    +        /// </summary>
    +        public mxCell() : this(null) { }
    +
    +        /// <summary>
    +        /// Constructs a new cell for the given value.
    +        /// </summary>
    +        /// <param name="value">Value that represents the user object.</param>
    +        public mxCell(Object value) : this(value, null, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new cell for the given value, geometry and style.
    +        /// </summary>
    +        /// <param name="value">Value that represents the user object.</param>
    +        /// <param name="geometry">Geometry of the cell to be created.</param>
    +        /// <param name="style">Style of the cell to be created.</param>
    +        public mxCell(Object value, mxGeometry geometry, string style)
    +        {
    +            Value = value;
    +            Geometry = geometry;
    +            Style = style;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Id
    +         */
    +        public string Id
    +        {
    +            get { return id; }
    +            set { id = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Value
    +         */
    +        public Object Value
    +        {
    +            get { return value; }
    +            set { this.value = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Geometry
    +         */
    +        public mxGeometry Geometry
    +        {
    +            get { return geometry; }
    +            set { geometry = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Style
    +         */
    +        public string Style
    +        {
    +            get { return style; }
    +            set { style = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.IsVertex
    +         */
    +        public bool Vertex
    +        {
    +            get { return vertex; }
    +            set { vertex = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.IsEdge
    +         */
    +        public bool Edge
    +        {
    +            get { return edge; }
    +            set { edge = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.IsConnectable
    +         */
    +        public bool Connectable
    +        {
    +            get { return connectable; }
    +            set { connectable = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.IsVisible
    +         */
    +        public bool Visible
    +        {
    +            get { return visible; }
    +            set { visible = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.IsCollapsed
    +         */
    +        public bool Collapsed
    +        {
    +            get { return collapsed; }
    +            set { collapsed = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Parent
    +         */
    +        public mxICell Parent
    +        {
    +            get { return parent; }
    +            set { parent = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the source terminal of the cell.
    +        /// </summary>
    +        public mxICell Source
    +        {
    +            get { return source; }
    +            set { source = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the target terminal of the cell.
    +        /// </summary>
    +        public mxICell Target
    +        {
    +            get { return target; }
    +            set { target = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.GetTerminal(bool)
    +         */
    +        public mxICell GetTerminal(bool source)
    +        {
    +            return (source) ? Source : Target;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.SetTerminal(mxICell, bool)
    +         */
    +        public mxICell SetTerminal(mxICell terminal, bool isSource)
    +        {
    +            if (isSource)
    +            {
    +                Source = terminal;
    +            }
    +            else
    +            {
    +                Target = terminal;
    +            }
    +
    +            return terminal;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.ChildCount()
    +         */
    +        public int ChildCount()
    +        {
    +            return (children != null) ? children.Count : 0;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.GetIndex(mxICell)
    +         */
    +        public int GetIndex(mxICell child)
    +        {
    +            return (children != null) ? children.IndexOf(child) : -1;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.GetChildAt(int)
    +         */
    +        public mxICell GetChildAt(int index)
    +        {
    +            return (children != null) ? (mxICell)children[index] : null;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Insert(mxICell)
    +         */
    +        public mxICell Insert(mxICell child)
    +        {
    +            int index = ChildCount();
    +
    +            if (child.Parent == this)
    +            {
    +                index--;
    +            }
    +
    +            return Insert(child, index);
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Insert(mxICell, int)
    +         */
    +        public mxICell Insert(mxICell child, int index)
    +        {
    +            if (child != null)
    +            {
    +                child.RemoveFromParent();
    +                child.Parent = this;
    +
    +                if (children == null)
    +                {
    +                    children = new List<mxICell>();
    +                    children.Add(child);
    +                }
    +                else
    +                {
    +                    children.Insert(index, child);
    +                }
    +            }
    +
    +            return child;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Remove(int)
    +         */
    +        public mxICell Remove(int index)
    +        {
    +            mxICell child = null;
    +
    +            if (children != null && index >= 0)
    +            {
    +                child = GetChildAt(index);
    +                Remove(child);
    +            }
    +
    +            return child;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Remove(mxICell)
    +         */
    +        public mxICell Remove(mxICell child)
    +        {
    +            if (child != null && children != null)
    +            {
    +                children.Remove(child);
    +                child.Parent = null;
    +            }
    +
    +            return child;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.RemoveFromParent()
    +         */
    +        public void RemoveFromParent()
    +        {
    +            if (parent != null)
    +            {
    +                parent.Remove(this);
    +            }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.EdgeCount()
    +         */
    +        public int EdgeCount()
    +        {
    +            return (edges != null) ? edges.Count : 0;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.GetEdgeIndex(mxICell)
    +         */
    +        public int GetEdgeIndex(mxICell edge)
    +        {
    +            return (edges != null) ? edges.IndexOf(edge) : -1;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.GetEdgeAt(int)
    +         */
    +        public mxICell GetEdgeAt(int index)
    +        {
    +            return (edges != null) ? edges[index] : null;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.InsertEdge(mxICell, bool)
    +         */
    +        public mxICell InsertEdge(mxICell edge, bool isOutgoing)
    +        {
    +            if (edge != null)
    +            {
    +                edge.RemoveFromTerminal(isOutgoing);
    +                edge.SetTerminal(this, isOutgoing);
    +
    +                if (edges == null ||
    +                    edge.GetTerminal(!isOutgoing) != this ||
    +                    !edges.Contains(edge))
    +                {
    +                    if (edges == null)
    +                    {
    +                        edges = new List<mxICell>();
    +                    }
    +
    +                    edges.Add(edge);
    +                }
    +            }
    +
    +            return edge;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.RemoveEdge(mxICell, bool)
    +         */
    +        public mxICell RemoveEdge(mxICell edge, bool isOutgoing)
    +        {
    +            if (edge != null)
    +            {
    +                if (edge.GetTerminal(!isOutgoing) != this &&
    +                    edges != null)
    +                {
    +                    edges.Remove(edge);
    +                }
    +
    +                edge.SetTerminal(null, isOutgoing);
    +            }
    +            return edge;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.RemoveFromTerminal(bool)
    +         */
    +        public void RemoveFromTerminal(bool isSource)
    +        {
    +            mxICell terminal = GetTerminal(isSource);
    +
    +            if (terminal != null)
    +            {
    +                terminal.RemoveEdge(this, isSource);
    +            }
    +        }
    +
    +	    /// <summary>
    +	    /// Returns the specified attribute from the user object if it is an XML
    +        /// node.
    +	    /// </summary>
    +        /// <param name="name">Name of the attribute whose value should be returned.</param>
    +        /// <returns>Returns the value of the given attribute or null.</returns>
    +	    public String GetAttribute(String name)
    +	    {
    +		    return GetAttribute(name, null);
    +	    }
    +    	
    +	    /// <summary>
    +	    /// Returns the specified attribute from the user object if it is an XML
    +        /// node.
    +	    /// </summary>
    +        /// <param name="name">Name of the attribute whose value should be returned.</param>
    +        /// <param name="defaultValue">Default value to use if the attribute has no value.</param>
    +        /// <returns>Returns the value of the given attribute or defaultValue.</returns>
    +	    public String GetAttribute(String name, String defaultValue)
    +	    {
    +            Object userObject = Value;
    +            String val = null;
    +
    +            if (userObject is XmlElement)
    +		    {
    +                XmlElement element = (XmlElement)userObject;
    +                val = element.GetAttribute(name);
    +		    }
    +
    +            if (val == null)
    +		    {
    +                val = defaultValue;
    +		    }
    +
    +            return val;
    +	    }
    +    	
    +	    /// <summary>
    +        /// Sets the specified attribute on the user object if it is an XML node.
    +	    /// </summary>
    +        /// <param name="name">Name of the attribute whose value should be set.</param>
    +        /// <param name="value">New value of the attribute.</param>
    +	    public void SetAttribute(String name, String value)
    +	    {
    +		    Object userObject = Value;
    +    		
    +		    if (userObject is XmlElement)
    +		    {
    +                XmlElement element = (XmlElement)userObject;
    +			    element.SetAttribute(name, value);
    +		    }
    +	    }
    +    	
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxICell.Clone()
    +         */
    +        public Object Clone()
    +        {
    +            mxCell cell = new mxCell();
    +            cell.Collapsed = Collapsed;
    +            cell.Connectable = Connectable;
    +            cell.Edge = Edge;
    +            cell.Style = Style;
    +            cell.Vertex = Vertex;
    +            cell.Visible = Visible;
    +
    +            mxGeometry geometry = Geometry;
    +
    +            if (geometry != null)
    +            {
    +                cell.Geometry = geometry.Clone();
    +            }
    +
    +            Object value = Value;
    +
    +            if (value is XmlNode)
    +            {
    +                cell.Value = ((XmlNode)value).CloneNode(true);
    +            }
    +            else
    +            {
    +                cell.Value = Value;
    +            }
    +
    +            return cell;
    +        }
    +    }
    +
    +}
    diff --git a/dotnet/src/model/mxCellPath.cs b/dotnet/src/model/mxCellPath.cs
    new file mode 100644
    index 000000000..3b06b86bf
    --- /dev/null
    +++ b/dotnet/src/model/mxCellPath.cs
    @@ -0,0 +1,91 @@
    +// $Id: mxCellPath.cs,v 1.6 2008-08-29 14:29:39 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Implements a mechanism for temporary cell Ids.
    +    /// </summary>
    +    public class mxCellPath
    +    {
    +
    +        /// <summary>
    +        /// Defines the separator between the path components. Default is ".".
    +        /// </summary>
    +        public static char PATH_SEPARATOR = '.';
    +
    +        /// <summary>
    +        /// Creates the cell path for the given cell. The cell path is a
    +        /// concatenation of the indices of all cells on the (finite) path to
    +        /// the root, eg. "0.0.0.1".
    +        /// </summary>
    +        /// <param name="cell">Cell whose path should be returned.</param>
    +        /// <returns>Returns the string that represents the path.</returns>
    +        public static string Create(mxICell cell)
    +        {
    +            string result = "";
    +            mxICell parent = cell.Parent;
    +
    +            while (parent != null)
    +            {
    +                int index = parent.GetIndex(cell);
    +                result = index.ToString() + mxCellPath.PATH_SEPARATOR + result;
    +
    +                cell = parent;
    +                parent = cell.Parent;
    +            }
    +
    +            return (result.Length > 1) ? result.Substring(0, result.Length - 1)
    +                    : "";
    +        }
    +
    +        /// <summary>
    +        /// Returns the path for the parent of the cell represented by the given
    +        /// path. Returns null if the given path has no parent.
    +        /// </summary>
    +        /// <param name="path">Path whose parent path should be returned.</param>
    +        public static string GetParentPath(string path)
    +        {
    +            if (path != null)
    +            {
    +                int index = path.LastIndexOf(mxCellPath.PATH_SEPARATOR);
    +
    +                if (index >= 0)
    +                {
    +                    return path.Substring(0, index);
    +                }
    +                else if (path.Length > 0)
    +                {
    +                    return "";
    +                }
    +            }
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Returns the cell for the specified cell path using the given root as the
    +        /// root of the path.
    +        /// </summary>
    +        /// <param name="root">Root cell of the path to be resolved.</param>
    +        /// <param name="path">String that defines the path.</param>
    +        /// <returns>Returns the cell that is defined by the path.</returns>
    +        public static mxICell Resolve(mxICell root, string path)
    +        {
    +            mxICell parent = root;
    +            string[] tokens = path.Split(PATH_SEPARATOR);
    +
    +            for (int i = 0; i < tokens.Length; i++)
    +            {
    +                parent = parent.GetChildAt(int.Parse(tokens[i]));
    +            }
    +
    +            return parent;
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/model/mxGeometry.cs b/dotnet/src/model/mxGeometry.cs
    new file mode 100644
    index 000000000..73dc54d41
    --- /dev/null
    +++ b/dotnet/src/model/mxGeometry.cs
    @@ -0,0 +1,270 @@
    +// $Id: mxGeometry.cs,v 1.20 2010-04-30 12:58:23 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Represents the geometry of a cell. For vertices, the geometry consists
    +    /// of the x- and y-location, as well as the width and height. For edges,
    +    /// the edge either defines the source- and target-terminal, or the geometry
    +    /// defines the respective terminal points.
    +    /// </summary>
    +    public class mxGeometry : mxRectangle
    +    {
    +
    +        /// <summary>
    +        /// Global switch to translate the points in translate. Default is true.
    +        /// </summary>
    +        public static bool TRANSLATE_CONTROL_POINTS = true;
    +
    +        /// <summary>
    +        /// Stores alternate values for x, y, width and height in a rectangle.
    +        /// Default is null.
    +        /// </summary>
    +        protected mxRectangle alternateBounds;
    +
    +        /// <summary>
    +        /// Defines the source-point of the edge. This is used if the
    +        /// corresponding edge does not have a source vertex. Otherwise it is
    +        /// ignored. Default is null.
    +        /// </summary>
    +        protected mxPoint sourcePoint;
    +
    +        /// <summary>
    +        /// Defines the target-point of the edge. This is used if the
    +        /// corresponding edge does not have a source vertex. Otherwise it is
    +        /// ignored. Default is null.
    +        /// </summary>
    +        protected mxPoint targetPoint;
    +
    +        /// <summary>
    +        /// Holds the offset of the label for edges. This is the absolute vector
    +        /// between the center of the edge and the top, left point of the label.
    +        /// Default is null.
    +        /// </summary>
    +        protected mxPoint offset;
    +
    +        /// <summary>
    +        /// List of mxPoints which specifies the control points along the edge.
    +        /// These points are the intermediate points on the edge, for the endpoints
    +        /// use targetPoint and sourcePoint or set the terminals of the edge to
    +        /// a non-null value. Default is null.
    +        /// </summary>
    +        protected List<mxPoint> points;
    +
    +        /// <summary>
    +        /// Specifies if the coordinates in the geometry are to be interpreted as
    +        /// relative coordinates. Default is false. This is used to mark a geometry
    +        /// with an x- and y-coordinate that is used to describe an edge label
    +        /// position.
    +        /// </summary>
    +        protected bool relative = false;
    +
    +        /// <summary>
    +        /// Constructs a new geometry at (0, 0) with the width and height set to 0.
    +        /// </summary>
    +        public mxGeometry() : this(0, 0, 0, 0) { }
    +
    +        /// <summary>
    +        /// Constructs a geometry using the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the new geometry.</param>
    +        /// <param name="y">Y-coordinate of the new geometry.</param>
    +        /// <param name="width">Width of the new geometry.</param>
    +        /// <param name="height">Height of the new geometry.</param>
    +        public mxGeometry(double x, double y, double width, double height) : base(x, y, width, height) { }
    +
    +        /// <summary>
    +        /// Constructs a copy of the given geometry.
    +        /// </summary>
    +        /// <param name="geometry">Geometry to construct a copy of.</param>
    +        public mxGeometry(mxGeometry geometry)
    +            : base(geometry.X, geometry.Y, geometry.Width, geometry
    +                    .Height)
    +        {
    +            if (geometry.points != null)
    +            {
    +                points = new List<mxPoint>(geometry.points.Count);
    +
    +                foreach (mxPoint pt in geometry.points)
    +                {
    +                    points.Add(pt.Clone());
    +                }
    +            }
    +
    +            if (geometry.sourcePoint != null)
    +            {
    +                sourcePoint = geometry.sourcePoint.Clone();
    +            }
    +
    +            if (geometry.targetPoint != null)
    +            {
    +                targetPoint = geometry.targetPoint.Clone();
    +            }
    +
    +            if (geometry.offset != null)
    +            {
    +                offset = geometry.offset.Clone();
    +            }
    +
    +            if (geometry.alternateBounds != null)
    +            {
    +                alternateBounds = geometry.alternateBounds.Clone();
    +            }
    +
    +            relative = geometry.relative;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the alternate bounds.
    +        /// </summary>
    +        public mxRectangle AlternateBounds
    +        {
    +            get { return alternateBounds; }
    +            set { alternateBounds = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the source point.
    +        /// </summary>
    +        public mxPoint SourcePoint
    +        {
    +            get { return sourcePoint; }
    +            set { sourcePoint = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the target point.
    +        /// </summary>
    +        public mxPoint TargetPoint
    +        {
    +            get { return targetPoint; }
    +            set { targetPoint = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the list of control points.
    +        /// </summary>
    +        public List<mxPoint> Points
    +        {
    +            get { return points; }
    +            set { points = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the offset.
    +        /// </summary>
    +        public mxPoint Offset
    +        {
    +            get { return offset; }
    +            set { offset = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns if the geometry is relative.
    +        /// </summary>
    +        public bool Relative
    +        {
    +            get { return relative; }
    +            set { relative = value; }
    +        }
    +
    +        /// <summary>
    +        /// Returns the point representing the source or target point of this edge.
    +        /// This is only used if the edge has no source or target vertex.
    +        /// </summary>
    +        /// <param name="source">Boolean that specifies if the source or target point
    +        /// should be returned.</param>
    +        /// <returns>Returns the source or target point.</returns>
    +        public mxPoint GetTerminalPoint(bool source)
    +        {
    +            return (source) ? sourcePoint : targetPoint;
    +        }
    +
    +        /// <summary>
    +        /// Sets the sourcePoint or targetPoint to the given point and returns the
    +        /// new point.
    +        /// </summary>
    +        /// <param name="point">Point to be used as the new source or target point.</param>
    +        /// <param name="source">Boolean that specifies if the source or target point
    +        /// should be set.</param>
    +        /// <returns>Returns the new point.</returns>
    +        public mxPoint SetTerminalPoint(mxPoint point, bool source)
    +        {
    +            if (source)
    +            {
    +                sourcePoint = point;
    +            }
    +            else
    +            {
    +                targetPoint = point;
    +            }
    +
    +            return point;
    +        }
    +
    +        /// <summary>
    +        /// Translates the geometry by the specified amount. That is, x and y of the
    +        /// geometry, the sourcePoint, targetPoint and all elements of points are
    +        /// translated by the given amount. X and y are only translated if the
    +        /// geometry is not relative. If TRANSLATE_CONTROL_POINTS is false, then
    +        /// are not modified by this function.
    +        /// </summary>
    +        /// <param name="dx">Integer that specifies the x-coordinate of the translation.</param>
    +        /// <param name="dy">Integer that specifies the y-coordinate of the translation.</param>
    +        public void Translate(double dx, double dy)
    +        {
    +            // Translates the geometry
    +            if (!Relative)
    +            {
    +                x += dx;
    +                y += dy;
    +            }
    +
    +            // Translates the source point
    +            if (sourcePoint != null)
    +            {
    +                sourcePoint.X += dx;
    +                sourcePoint.Y += dy;
    +            }
    +
    +            // Translates the target point
    +            if (targetPoint != null)
    +            {
    +                targetPoint.X += dx;
    +                targetPoint.Y += dy;
    +            }
    +
    +            // Translate the control points
    +            if (TRANSLATE_CONTROL_POINTS &&
    +                points != null)
    +            {
    +                int count = points.Count;
    +
    +                for (int i = 0; i < count; i++)
    +                {
    +                    mxPoint pt = points[i];
    +
    +                    pt.X += dx;
    +                    pt.Y += dy;
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns a new instance of the same geometry.
    +        /// </summary>
    +        /// <returns>Returns a clone of the geometry.</returns>
    +        public new mxGeometry Clone()
    +        {
    +            return new mxGeometry(this);
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/model/mxGraphModel.cs b/dotnet/src/model/mxGraphModel.cs
    new file mode 100644
    index 000000000..c7dd56c88
    --- /dev/null
    +++ b/dotnet/src/model/mxGraphModel.cs
    @@ -0,0 +1,1287 @@
    +// $Id: mxGraphModel.cs,v 1.51 2012-04-16 10:52:38 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Threading;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Diagnostics;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Implements a graph model. The graph model acts as a wrapper around the
    +    /// cells which are in charge of storing the actual graph datastructure.
    +    /// The model acts as a transactional wrapper with event notification for
    +    /// all changes, whereas the cells contain the atomic operations for
    +    /// updating the actual datastructure.
    +    /// </summary>
    +    public class mxGraphModel: mxIGraphModel
    +    {
    +        /// <summary>
    +        /// Fires when the graph model has changed.
    +        /// </summary>
    +        public event mxGraphModelChangeEventHandler GraphModelChange;
    +
    +        /// <summary>
    +        /// Holds the root cell, which in turn contains the cells that represent the
    +        /// layers of the diagram as child cells. That is, the actual element of the
    +        /// diagram are supposed to live in the third generation of cells and below.
    +        /// </summary>
    +        protected mxICell root;
    +
    +        /// <summary>
    +        /// Maps from Ids to cells.
    +        /// </summary>
    +        protected Dictionary<Object, Object> cells;
    +
    +        /// <summary>
    +        /// Specifies if edges should automatically be moved into the nearest common
    +        /// ancestor of their terminals. Default is true.
    +        /// </summary>
    +        protected bool createIds = true;
    +
    +        /// <summary>
    +        /// Specifies if the parent of edges should be automatically change to point
    +        /// to the nearest common ancestor of its terminals. Default is true.
    +        /// </summary>
    +        protected bool maintainEdgeParent = true;
    +
    +        /// <summary>
    +        /// Specifies the next Id to be created. Initial value is 0.
    +        /// </summary>
    +        protected int nextId = 0;
    +
    +        /// <summary>
    +        /// Counter for the depth of nested transactions. Each call to beginUpdate
    +        /// increments this counter and each call to endUpdate decrements it. When
    +        /// the counter reaches 0, the transaction is closed and the respective
    +        /// events are fired. Initial value is 0.
    +        /// </summary>
    +        protected int updateLevel = 0;
    +
    +        /// <summary>
    +        /// Constructs a new empty graph model.
    +        /// </summary>
    +        public mxGraphModel(): this(null) {}
    +
    +        /// <summary>
    +        /// Constructs a new graph model. If no root is specified
    +        /// then a new root mxCell with a default layer is created.
    +        /// </summary>
    +        /// <param name="root">Cell that represents the root cell.</param>
    +        public mxGraphModel(Object root)
    +        {
    +            if (root != null)
    +            {
    +                Root = root;
    +            }
    +            else
    +            {
    +                Clear();
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Sets a new root using createRoot.
    +        /// </summary>
    +        public void Clear()
    +        {
    +            Root = CreateRoot();
    +        }
    +
    +        /// <summary>
    +        /// Creates a new root cell with a default layer (child 0).
    +        /// </summary>
    +        public Object CreateRoot()
    +        {
    +            mxCell root = new mxCell();
    +            root.Insert(new mxCell());
    +
    +            return root;
    +        }
    +
    +        /// <summary>
    +        /// 
    +        /// </summary>
    +        /// <param name="id"></param>
    +        /// <returns></returns>
    +        public Object GetCell(string id)
    +        {
    +            Object result = null;
    +
    +            if (cells != null)
    +            {
    +                cells.TryGetValue(id, out result);
    +            }
    +
    +            return result;
    +        }
    +
    +        /// <summary>
    +        /// Sets of returns if edges should automatically be moved into the
    +        /// nearest common ancestor of their terminals.
    +        /// </summary>
    +        public bool IsMaintainEdgeParent
    +        {
    +            get { return maintainEdgeParent; }
    +            set { maintainEdgeParent = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns if the model automatically creates Ids and resolves Id
    +        /// collisions.
    +        /// </summary>
    +        public bool IsCreateIds
    +        {
    +            get { return createIds; }
    +            set { createIds = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.Root
    +         */
    +        public Object Root
    +        {
    +            get { return root; }
    +            set {
    +                BeginUpdate();
    +                try
    +                {
    +                    root = (mxICell) value;
    +                    this.nextId = 0;
    +                    this.cells = null;
    +                    CellAdded(root);
    +                }
    +                finally
    +                {
    +                    EndUpdate();
    +                }
    +            }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.IsAncestor(Object[], bool)
    +         */
    +        public Object[] CloneCells(Object[] cells, bool includeChildren)
    +        {
    +            Hashtable mapping = new Hashtable();
    +            Object[] clones = new Object[cells.Length];
    +
    +            for (int i = 0; i < cells.Length; i++)
    +            {
    +                clones[i] = CloneCell(cells[i], mapping, includeChildren);
    +            }
    +
    +            for (int i = 0; i < cells.Length; i++)
    +            {
    +                RestoreClone(clones[i], cells[i], mapping);
    +            }
    +
    +            return clones;
    +        }
    +
    +        /// <summary>
    +        /// Inner helper method for cloning cells recursively.
    +        /// </summary>
    +        protected Object CloneCell(Object cell, Hashtable mapping, bool includeChildren)
    +	    {
    +		    if (cell is mxICell)
    +		    {
    +			    mxICell mxc = (mxICell) ((mxICell) cell).Clone();
    +			    mapping[cell] = mxc;
    +
    +			    if (includeChildren)
    +			    {
    +				    int childCount = GetChildCount(cell);
    +
    +				    for (int i = 0; i < childCount; i++)
    +				    {
    +					    Object clone = CloneCell(GetChildAt(cell, i), mapping, true);
    +					    mxc.Insert((mxICell) clone);
    +				    }
    +			    }
    +
    +			    return mxc;
    +		    }
    +
    +		    return null;
    +	    }
    +
    +        /// <summary>
    +        /// Inner helper method for restoring the connections in
    +        /// a network of cloned cells.
    +        /// </summary>
    +        protected void RestoreClone(Object clone, Object cell, Hashtable mapping)
    +	    {
    +		    if (clone is mxICell)
    +		    {
    +			    mxICell mxc = (mxICell) clone;
    +			    Object source = GetTerminal(cell, true);
    +
    +			    if (source is mxICell)
    +			    {
    +				    mxICell tmp = (mxICell) mapping[source];
    +
    +				    if (tmp != null)
    +				    {
    +					    tmp.InsertEdge(mxc, true);
    +				    }
    +			    }
    +
    +			    Object target = GetTerminal(cell, false);
    +
    +			    if (target is mxICell)
    +			    {
    +				    mxICell tmp = (mxICell) mapping[target];
    +
    +				    if (tmp != null)
    +				    {
    +					    tmp.InsertEdge(mxc, false);
    +				    }
    +			    }
    +		    }
    +    		
    +		    int childCount = GetChildCount(clone);
    +
    +		    for (int i = 0; i < childCount; i++)
    +		    {
    +			    RestoreClone(GetChildAt(clone, i), GetChildAt(cell, i), mapping);
    +		    }
    +	    }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.IsAncestor(Object, Object)
    +         */
    +        public bool IsAncestor(Object parent, Object child)
    +        {
    +            while (child != null && child != parent)
    +            {
    +                child = GetParent(child);
    +            }
    +            return child == parent;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.Contains(Object)
    +         */
    +        public bool Contains(Object cell)
    +        {
    +            return IsAncestor(Root, cell);
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.GetParent(Object)
    +         */
    +        public Object GetParent(Object child)
    +        {
    +            return (child is mxICell) ? ((mxICell)child).Parent : null;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.Add(Object, Object, int)
    +         */
    +        public Object Add(Object parent, Object child, int index)
    +        {
    +            if (child != parent && parent is mxICell && child is mxICell)
    +            {
    +                bool parentChanged = parent != GetParent(child);
    +
    +                BeginUpdate();
    +                try
    +                {
    +                    ((mxICell)parent).Insert((mxICell)child, index);
    +                    CellAdded(child);
    +                }
    +                finally
    +                {
    +                    EndUpdate();
    +                }
    +
    +                if (IsMaintainEdgeParent &&
    +                    parentChanged)
    +                {
    +                    UpdateEdgeParents(child);
    +                }
    +            }
    +
    +            return child;
    +        }
    +
    +        /// <summary>
    +        /// Invoked after a cell has been added to a parent. This recursively
    +        /// creates an Id for the new cell and/or resolves Id collisions.
    +        /// </summary>
    +        /// <param name="cell">Cell that has been added.</param>
    +        protected void CellAdded(Object cell)
    +        {
    +            if (cell is mxICell)
    +            {
    +                mxICell mxc = (mxICell)cell;
    +
    +                if (mxc.Id == null && IsCreateIds)
    +                {
    +                    mxc.Id = CreateId(cell);
    +                }
    +
    +                if (mxc.Id != null)
    +                {
    +                    Object collision = GetCell(mxc.Id);
    +
    +                    if (collision != cell)
    +                    {
    +                        while (collision != null)
    +                        {
    +                            mxc.Id = CreateId(cell);
    +                            collision = GetCell(mxc.Id);
    +                        }
    +
    +                        if (cells == null)
    +                        {
    +                            cells = new Dictionary<Object, Object>();
    +                        }
    +
    +                        cells[mxc.Id] = cell;
    +                    }
    +                }
    +
    +                // Makes sure IDs of deleted cells are not reused
    +                try
    +                {
    +                    int id = Convert.ToInt32(mxc.Id);
    +                    nextId = Math.Max(nextId, id + 1);
    +                }
    +                catch (FormatException e)
    +                {
    +                    Trace.WriteLine(this + ".CellAdded(" + cell + "): " + e.Message);
    +                }
    +
    +                int childCount = mxc.ChildCount();
    +
    +                for (int i = 0; i < childCount; i++)
    +                {
    +                    CellAdded(mxc.GetChildAt(i));
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Creates a new Id for the given cell and increments the global counter
    +        /// for creating new Ids.
    +        /// </summary>
    +        /// <param name="cell">Cell for which a new Id should be created.</param>
    +        /// <returns>Returns a new Id for the given cell.</returns>
    +        public string CreateId(Object cell)
    +        {
    +            string id = nextId.ToString();
    +            nextId++;
    +
    +            return id;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.Remove(Object)
    +        /// </summary>
    +        /// <param name="cell"></param>
    +        /// <returns></returns>
    +        public Object Remove(Object cell)
    +        {
    +            if (cell is mxICell)
    +            {
    +                mxICell mx = (mxICell)cell;
    +
    +                BeginUpdate();
    +                try
    +                {
    +                    if (cell == root)
    +                    {
    +                        Root = null;
    +                    }
    +                    else
    +                    {
    +                        mx.RemoveFromParent();
    +                    }
    +
    +                    CellRemoved(cell);
    +                }
    +                finally
    +                {
    +                    EndUpdate();
    +                }
    +            }
    +
    +            return cell;
    +        }
    +
    +        /// <summary>
    +        /// Invoked after a cell has been removed from the model. This recursively
    +        /// removes the cell from its terminals and removes the mapping from the Id
    +        /// to the cell.
    +        /// </summary>
    +        /// <param name="cell">Cell that has been removed.</param>
    +        protected void CellRemoved(Object cell)
    +        {
    +            if (cell is mxICell)
    +            {
    +                mxICell mxc = (mxICell)cell;
    +                int childCount = mxc.ChildCount();
    +
    +                for (int i = 0; i < childCount; i++)
    +                {
    +                    CellRemoved(mxc.GetChildAt(i));
    +                }
    +
    +                mxc.RemoveFromTerminal(true);
    +                mxc.RemoveFromTerminal(false);
    +
    +                if (cells != null && mxc.Id != null)
    +                {
    +                    cells.Remove(mxc.Id);
    +                }
    +            }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.GetChildCount(Object)
    +         */
    +        public int GetChildCount(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).ChildCount() : 0;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.GetChildAt(Object, int)
    +         */
    +        public Object GetChildAt(Object parent, int index)
    +        {
    +            return (parent is mxICell) ? ((mxICell)parent).GetChildAt(index) : null;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.GetTerminal(Object, bool)
    +         */
    +        public Object GetTerminal(Object edge, bool isSource)
    +        {
    +            return (edge is mxICell) ? ((mxICell)edge).GetTerminal(isSource) : null;
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxIGraphModel.SetTerminal(Object, Object, bool)
    +         */
    +        public Object SetTerminal(Object edge, Object terminal, bool isSource)
    +        {
    +            mxICell mxe = (mxICell)edge;
    +            mxICell previous = mxe.GetTerminal(isSource);
    +
    +            BeginUpdate();
    +            try
    +            {
    +                if (terminal != null)
    +                {
    +                    ((mxICell)terminal).InsertEdge(mxe, isSource);
    +                }
    +                else if (previous != null)
    +                {
    +                    previous.RemoveEdge(mxe, isSource);
    +                }
    +            }
    +            finally
    +            {
    +                EndUpdate();
    +            }
    +
    +            if (IsMaintainEdgeParent)
    +            {
    +                UpdateEdgeParent(edge, Root);
    +            }
    +
    +            return terminal;
    +        }
    +
    +        /// <summary>
    +        /// Updates the parents of the edges connected to the given cell and all its
    +        /// descendants so that each edge is contained in the nearest common ancestor.
    +        /// </summary>
    +        /// <param name="cell">Cell whose edges should be checked and updated.</param>
    +        public void UpdateEdgeParents(Object cell)
    +        {
    +            UpdateEdgeParents(cell, Root);
    +        }
    +
    +        /// <summary>
    +        /// Updates the parents of the edges connected to the given cell and all its
    +        /// descendants so that the edge is contained in the nearest-common-ancestor.
    +        /// </summary>
    +        /// <param name="cell">Cell whose edges should be checked and updated.</param>
    +        /// <param name="root">Root of the cell hierarchy that contains all cells.</param>
    +        public void UpdateEdgeParents(Object cell, Object root)
    +        {
    +            // Updates edges on children first
    +            int childCount = GetChildCount(cell);
    +
    +            for (int i = 0; i < childCount; i++)
    +            {
    +                Object child = GetChildAt(cell, i);
    +                UpdateEdgeParents(child, root);
    +            }
    +
    +            // Updates the parents of all connected edges
    +            int edgeCount = GetEdgeCount(cell);
    +            List<Object> edges = new List<Object>();
    +
    +            for (int i = 0; i < edgeCount; i++)
    +            {
    +                edges.Add(GetEdgeAt(cell, i));
    +            }
    +
    +            foreach (Object edge in edges)
    +            {
    +                // Updates edge parent if edge and child have
    +                // a common root node (does not need to be the
    +                // model root node)
    +                if (IsAncestor(root, edge))
    +                {
    +                    UpdateEdgeParent(edge, root);
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Inner helper method to update the parent of the specified edge to the
    +        /// nearest-common-ancestor of its two terminals.
    +        /// </summary>
    +        /// <param name="edge">Specifies the edge to be updated.</param>
    +        /// <param name="root">Current root of the model.</param>
    +        public void UpdateEdgeParent(Object edge, Object root)
    +        {
    +            Object source = GetTerminal(edge, true);
    +            Object target = GetTerminal(edge, false);
    +            Object cell = null;
    +           
    +            // Uses the first non-relative descendants of the source terminal
    +            while (source != null && !IsEdge(source) &&
    +                GetGeometry(source) != null && GetGeometry(source).Relative)
    +            {
    +                source = GetParent(source);
    +            }
    +
    +            // Uses the first non-relative descendants of the target terminal
    +            while (target != null && !IsEdge(target) &&
    +                GetGeometry(target) != null && GetGeometry(target).Relative)
    +            {
    +                target = GetParent(target);
    +            }
    +		
    +            if (IsAncestor(root, source) &&
    +                IsAncestor(root, target))
    +            {
    +                if (source == target)
    +                {
    +                    cell = GetParent(source);
    +                }
    +                else
    +                {
    +                    cell = GetNearestCommonAncestor(source, target);
    +                }
    +
    +                if (cell != null &&
    +                    GetParent(cell) != root &&
    +                    GetParent(edge) != cell)
    +                {
    +                    mxGeometry geo = GetGeometry(edge);
    +
    +                    if (geo != null)
    +                    {
    +                        mxPoint origin1 = GetOrigin(GetParent(edge));
    +                        mxPoint origin2 = GetOrigin(cell);
    +
    +                        double dx = origin2.X - origin1.X;
    +                        double dy = origin2.Y - origin1.Y;
    +
    +                        geo = (mxGeometry) geo.Clone();
    +                        geo.Translate(-dx, -dy);
    +                        SetGeometry(edge, geo);
    +                    }
    +
    +                    Add(cell, edge, GetChildCount(cell));
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the absolute, cummulated origin for the children inside the
    +        /// given parent.
    +        /// </summary>
    +        public mxPoint GetOrigin(Object cell)
    +        {
    +            mxPoint result = null;
    +
    +            if (cell != null)
    +            {
    +                result = GetOrigin(GetParent(cell));
    +
    +                if (!IsEdge(cell))
    +                {
    +                    mxGeometry geo = GetGeometry(cell);
    +
    +                    if (geo != null)
    +                    {
    +                        result.X += geo.X;
    +                        result.Y += geo.Y;
    +                    }
    +                }
    +            }
    +            else
    +            {
    +                result = new mxPoint();
    +            }
    +
    +            return result;
    +        }
    +
    +        /// <summary>
    +        /// Returns the nearest common ancestor for the specified cells.
    +        /// </summary>
    +        /// <param name="cell1">Cell that specifies the first cell in the tree.</param>
    +        /// <param name="cell2">Cell that specifies the second cell in the tree.</param>
    +        /// <returns>Returns the nearest common ancestor of the given cells.</returns>
    +        public Object GetNearestCommonAncestor(Object cell1, Object cell2)
    +        {
    +            if (cell1 != null && cell2 != null)
    +            {
    +                // Creates the cell path for the second cell
    +                String path = mxCellPath.Create((mxICell)cell2);
    +
    +                if (path != null && path.Length > 0)
    +                {
    +                    // Bubbles through the ancestors of the target
    +                    // cell to find the nearest common ancestor.
    +                    Object cell = cell1;
    +                    String current = mxCellPath.Create((mxICell)cell);
    +
    +                    while (cell != null)
    +                    {
    +                        Object parent = GetParent(cell);
    +
    +                        // Checks if the cell path is equal to the beginning
    +                        // of the given cell path
    +                        if (path.IndexOf(current + mxCellPath.PATH_SEPARATOR) == 0 &&
    +                            parent != null)
    +                        {
    +                            return cell;
    +                        }
    +
    +                        current = mxCellPath.GetParentPath(current);
    +                        cell = parent;
    +                    }
    +                }
    +            }
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.GetEdgeCount(Object)
    +        /// </summary>
    +        public int GetEdgeCount(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).EdgeCount() : 0;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.GetEdgeAt(Object, int)
    +        /// </summary>
    +        public Object GetEdgeAt(Object parent, int index)
    +        {
    +            return (parent is mxICell) ? ((mxICell)parent).GetEdgeAt(index) : null;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.IsVertex(Object)
    +        /// </summary>
    +        public bool IsVertex(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).Vertex : false;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.IsEdge(Object)
    +        /// </summary>
    +        public bool IsEdge(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).Edge : false;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.IsConnectable(Object)
    +        /// </summary>
    +        public bool IsConnectable(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).Connectable : false;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.GetValue(Object)
    +        /// </summary>
    +        public Object GetValue(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).Value : null;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.SetValue(Object, Object)
    +        /// </summary>
    +        public Object SetValue(Object cell, Object value)
    +        {
    +            BeginUpdate();
    +            try
    +            {
    +                ((mxICell) cell).Value = value;
    +            }
    +            finally
    +            {
    +                EndUpdate();
    +            }
    +
    +            return value;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.GetGeometry(Object)
    +        /// </summary>
    +        public mxGeometry GetGeometry(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).Geometry : null;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.SetGeometry(Object, mxGeometry)
    +        /// </summary>
    +        public mxGeometry SetGeometry(Object cell, mxGeometry geometry)
    +        {
    +            BeginUpdate();
    +            try
    +            {
    +                ((mxICell)cell).Geometry = geometry;
    +            }
    +            finally
    +            {
    +                EndUpdate();
    +            }
    +
    +            return geometry;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.GetStyle(Object)
    +        /// </summary>
    +        public string GetStyle(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).Style : null;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.SetStyle(Object, string)
    +        /// </summary>
    +        public string SetStyle(Object cell, string style)
    +        {
    +            BeginUpdate();
    +            try
    +            {
    +                ((mxICell)cell).Style = style;
    +            }
    +            finally
    +            {
    +                EndUpdate();
    +            }
    +
    +            return style;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.IsVisible(Object)
    +        /// </summary>
    +        public bool IsVisible(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).Visible : false;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.SetVisible(Object, bool)
    +        /// </summary>
    +        public bool SetVisible(Object cell, bool visible)
    +        {
    +            BeginUpdate();
    +            try
    +            {
    +                ((mxICell)cell).Visible = visible;
    +            }
    +            finally
    +            {
    +                EndUpdate();
    +            }
    +
    +            return visible;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.IsCollapsed(Object)
    +        /// </summary>
    +        public bool IsCollapsed(Object cell)
    +        {
    +            return (cell is mxICell) ? ((mxICell)cell).Collapsed : false;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.SetCollapsed(Object, bool)
    +        /// </summary>
    +        public bool SetCollapsed(Object cell, bool collapsed)
    +        {
    +            BeginUpdate();
    +            try
    +            {
    +                ((mxICell)cell).Collapsed = collapsed;
    +            }
    +            finally
    +            {
    +                EndUpdate();
    +            }
    +
    +            return collapsed;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.BeginUpdate()
    +        /// </summary>
    +        public void BeginUpdate()
    +        {
    +            updateLevel++;
    +        }
    +
    +        /// <summary>
    +        /// see com.mxgraph.mxIGraphModel.EndUpdate()
    +        /// </summary>
    +        public void EndUpdate()
    +        {
    +            updateLevel--;
    +
    +            if (updateLevel == 0 && GraphModelChange != null)
    +            {
    +                GraphModelChange();
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Merges the children of the given cell into the given target cell inside
    +        /// this model. All cells are cloned unless there is a corresponding cell in
    +        /// the model with the same id, in which case the source cell is ignored and
    +        /// all edges are connected to the corresponding cell in this model. Edges
    +        /// are considered to have no identity and are always cloned unless the
    +        /// cloneAllEdges flag is set to false, in which case edges with the same
    +        /// id in the target model are reconnected to reflect the terminals of the
    +        /// source edges.
    +        /// </summary>
    +        /// <param name="from"></param>
    +        /// <param name="to"></param>
    +        /// <param name="cloneAllEdges"></param>
    +        public void MergeChildren(mxICell from, mxICell to, bool cloneAllEdges)
    +        {
    +            BeginUpdate();
    +            try
    +            {
    +                Dictionary<Object, Object> mapping = new Dictionary<Object, Object>();
    +                MergeChildrenImpl(from, to, cloneAllEdges, mapping);
    +
    +                // Post-processes all edges in the mapping and
    +                // reconnects the terminals to the corresponding
    +                // cells in the target model
    +                foreach (KeyValuePair<Object, Object> kvp in mapping)
    +                {
    +                    Object edge = kvp.Key;
    +                    Object cell = kvp.Value;
    +                    Object terminal = GetTerminal(edge, true);
    +
    +                    if (terminal != null)
    +                    {
    +                        terminal = mapping[terminal];
    +                        SetTerminal(cell, terminal, true);
    +                    }
    +
    +                    terminal = GetTerminal(edge, false);
    +
    +                    if (terminal != null)
    +                    {
    +                        terminal = mapping[terminal];
    +                        SetTerminal(cell, terminal, false);
    +                    }
    +                }
    +            }
    +            finally
    +            {
    +                EndUpdate();
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Clones the children of the source cell into the given target cell in
    +        /// this model and adds an entry to the mapping that maps from the source
    +        /// cell to the target cell with the same id or the clone of the source cell
    +        /// that was inserted into this model.
    +        /// </summary>
    +        /// <param name="from"></param>
    +        /// <param name="to"></param>
    +        /// <param name="cloneAllEdges"></param>
    +        /// <param name="mapping"></param>
    +        protected void MergeChildrenImpl(mxICell from, mxICell to, bool cloneAllEdges, Dictionary<Object, Object> mapping)
    +        {
    +            BeginUpdate();
    +		    try
    +		    {
    +                int childCount = from.ChildCount();
    +
    +			    for (int i = 0; i < childCount; i++)
    +			    {
    +                    mxICell cell = from.GetChildAt(i);
    +				    String id = cell.Id;
    +                    mxICell target = (mxICell) ((id != null && (!IsEdge(cell) || !cloneAllEdges)) ? GetCell(id)
    +						    : null);
    +
    +				    // Clones and adds the child if no cell exists for the id
    +				    if (target == null)
    +				    {
    +					    mxCell clone = (mxCell) cell.Clone();
    +					    clone.Id = id;
    +
    +                        // Do *NOT* use model.add as this will move the edge away
    +                        // from the parent in updateEdgeParent if maintainEdgeParent
    +                        // is enabled in the target model
    +                        target = to.Insert(clone);
    +                        CellAdded(target);
    +				    }
    +
    +				    // Stores the mapping for later reconnecting edges
    +				    mapping[cell] = target;
    +
    +				    // Recurses
    +				    MergeChildrenImpl(cell, target, cloneAllEdges, mapping);
    +			    }
    +		    }
    +		    finally
    +		    {
    +			    EndUpdate();
    +		    }
    +        }
    +
    +        /// <summary>
    +        /// Returns the number of incoming or outgoing edges.
    +        /// </summary>
    +        /// <param name="model">Graph model that contains the connection data.</param>
    +        /// <param name="cell">Cell whose edges should be counted.</param>
    +        /// <param name="outgoing">Boolean that specifies if the number of outgoing or
    +        /// incoming edges should be returned.</param>
    +        /// <returns>Returns the number of incoming or outgoing edges.</returns>
    +        public static int GetDirectedEdgeCount(mxIGraphModel model, Object cell, bool outgoing)
    +        {
    +            return GetDirectedEdgeCount(model, cell, outgoing, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns the number of incoming or outgoing edges, ignoring the given
    +        /// edge.
    +        /// </summary>
    +        /// <param name="model">Graph model that contains the connection data.</param>
    +        /// <param name="cell">Cell whose edges should be counted.</param>
    +        /// <param name="outgoing">Boolean that specifies if the number of outgoing or
    +        /// incoming edges should be returned.</param>
    +        /// <param name="ignoredEdge">Object that represents an edge to be ignored.</param>
    +        /// <returns>Returns the number of incoming or outgoing edges.</returns>
    +        public static int GetDirectedEdgeCount(mxIGraphModel model, Object cell, bool outgoing, Object ignoredEdge)
    +        {
    +            int count = 0;
    +            int edgeCount = model.GetEdgeCount(cell);
    +
    +            for (int i = 0; i < edgeCount; i++)
    +            {
    +                Object edge = model.GetEdgeAt(cell, i);
    +
    +                if (edge != ignoredEdge
    +                        && model.GetTerminal(edge, outgoing) == cell)
    +                {
    +                    count++;
    +                }
    +            }
    +
    +            return count;
    +        }
    +
    +        /// <summary>
    +        /// Returns all edges connected to this cell including loops.
    +        /// </summary>
    +        /// <param name="model">Model that contains the connection information</param>
    +        /// <param name="cell">Cell whose connections should be returned</param>
    +        /// <returns></returns>
    +        public static Object[] GetEdges(mxIGraphModel model, Object cell)
    +        {
    +            return GetEdges(model, cell, true, true, true);
    +        }
    +
    +        /// <summary>
    +        /// Returns all edges connected to this cell without loops.
    +        /// </summary>
    +        /// <param name="model">Model that contains the connection information</param>
    +        /// <param name="cell">Cell whose connections should be returned</param>
    +        /// <returns>Returns the array of connected edges for the given cell</returns>
    +        public static Object[] GetConnections(mxIGraphModel model, Object cell)
    +        {
    +            return GetEdges(model, cell, true, true, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the incoming edges of the given cell without loops.
    +        /// </summary>
    +        /// <param name="model">Graphmodel that contains the edges</param>
    +        /// <param name="cell">Cell whose incoming edges should be returned</param>
    +        /// <returns>Returns the incoming edges for the given cell</returns>
    +        public static Object[] GetIncomingEdges(mxIGraphModel model, Object cell)
    +        {
    +            return GetEdges(model, cell, true, false, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the outgoing edges of the given cell without loops.
    +        /// </summary>
    +        /// <param name="model">Graphmodel that contains the edges</param>
    +        /// <param name="cell">Cell whose outgoing edges should be returned</param>
    +        /// <returns>Returns the outgoing edges for the given cell</returns>
    +        public static Object[] GetOutgoingEdges(mxIGraphModel model, Object cell)
    +        {
    +            return GetEdges(model, cell, false, true, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns all distinct edges connected to this cell. If at least one of
    +        /// incoming or outgoing is true, then loops are ignored, otherwise if both
    +        /// are false, then all edges connected to the given cell are returned
    +        /// including loops.
    +        /// </summary>
    +        /// <param name="model">Model that contains the connection information</param>
    +        /// <param name="cell">Cell whose connections should be returned</param>
    +        /// <param name="incoming">Specifies if incoming edges should be returned</param>
    +        /// <param name="outgoing">Specifies if outgoing edges should be returned</param>
    +        /// <param name="includeLoops">Specifies if loops should be returned</param>
    +        /// <returns>Returns the array of connected edges for the given cell</returns>
    +        public static Object[] GetEdges(mxIGraphModel model, Object cell,
    +                bool incoming, bool outgoing, bool includeLoops)
    +        {
    +            int edgeCount = model.GetEdgeCount(cell);
    +            List<Object> result = new List<Object>(edgeCount);
    +
    +            for (int i = 0; i < edgeCount; i++)
    +            {
    +                Object edge = model.GetEdgeAt(cell, i);
    +                Object source = model.GetTerminal(edge, true);
    +                Object target = model.GetTerminal(edge, false);
    +
    +                if ((includeLoops && source == target) ||
    +                    ((source != target) &&
    +                   ((incoming && target == cell) ||
    +                   (outgoing && source == cell))))
    +                {
    +                    result.Add(edge);
    +                }
    +            }
    +
    +            return result.ToArray();
    +        }
    +
    +        /// <summary>
    +        /// Returns all edges between the given source and target mxCells. If the
    +        /// optional boolean directed argument is false, then a matching edge is
    +        /// returned regardless of its direction.
    +        /// </summary>
    +        /// <param name="model"></param>
    +        /// <param name="source"></param>
    +        /// <param name="target"></param>
    +        /// <returns></returns>
    +        public static Object[] GetEdgesBetween(mxIGraphModel model, Object source,
    +                Object target)
    +        {
    +            return GetEdgesBetween(model, source, target, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns all edges between the given source and target mxCells. If the
    +        /// optional boolean directed argument is false, then a matching edge is
    +        /// returned regardless of its direction.
    +        /// </summary>
    +        /// <param name="model">The graph model that contains the graph.</param>
    +        /// <param name="source">mxCell that defines the source terminal of the edge to be
    +        /// returned.</param>
    +        /// <param name="target">mxCell that defines the target terminal of the edge to be
    +        /// returned.</param>
    +        /// <param name="directed">Optional boolean that specifies if the direction of the
    +        /// edge should be taken into account. Default is true.</param>
    +        /// <returns></returns>
    +        public static Object[] GetEdgesBetween(mxIGraphModel model, Object source,
    +                Object target, bool directed)
    +        {
    +            int tmp1 = model.GetEdgeCount(source);
    +            int tmp2 = model.GetEdgeCount(target);
    +
    +            // Assumes the source has less connected edges
    +            Object terminal = source;
    +            int edgeCount = tmp1;
    +
    +            // Uses the smaller array of connected edges
    +            // for searching the edge
    +            if (tmp2 < tmp1)
    +            {
    +                edgeCount = tmp2;
    +                terminal = target;
    +            }
    +
    +            List<Object> result = new List<Object>();
    +
    +            // Checks if the edge is connected to the correct
    +            // cell and returns the first match
    +            for (int i = 0; i < edgeCount; i++)
    +            {
    +                Object edge = model.GetEdgeAt(terminal, i);
    +                Object src = model.GetTerminal(edge, true);
    +                Object trg = model.GetTerminal(edge, false);
    +                bool isSource = src == source;
    +
    +                if (isSource
    +                        && trg == target
    +                        || (!directed && model.GetTerminal(edge, !isSource) == target))
    +                {
    +                    result.Add(edge);
    +                }
    +            }
    +
    +            return result.ToArray();
    +        }
    +
    +        /// <summary>
    +        /// Returns all opposite vertices wrt terminal for the given edges, only$
    +        /// returning sources and/or targets as specified. The result is returned as
    +        /// an array of mxCells.
    +        /// </summary>
    +        /// <param name="model">Model that contains the graph.</param>
    +        /// <param name="edges">Array of edges to be examined.</param>
    +        /// <param name="terminal">Cell that specifies the known end of the edges.</param>
    +        /// <param name="sources">Boolean that specifies if source terminals should
    +        /// be contained in the result. Default is true.</param>
    +        /// <param name="targets">Boolean that specifies if target terminals should
    +        /// be contained in the result. Default is true.</param>
    +        /// <returns>Returns the array of opposite terminals for the given edges.</returns>
    +        public static Object[] GetOpposites(mxIGraphModel model, Object[] edges,
    +                Object terminal, bool sources, bool targets)
    +        {
    +            List<Object> terminals = new List<Object>();
    +
    +            if (edges != null)
    +            {
    +                for (int i = 0; i < edges.Length; i++)
    +                {
    +                    Object source = model.GetTerminal(edges[i], true);
    +                    Object target = model.GetTerminal(edges[i], false);
    +
    +                    // Checks if the terminal is the source of
    +                    // the edge and if the target should be
    +                    // stored in the result
    +                    if (source == terminal && target != null && target != terminal
    +                            && targets)
    +                    {
    +                        terminals.Add(target);
    +                    }
    +
    +                    // Checks if the terminal is the taget of
    +                    // the edge and if the source should be
    +                    // stored in the result
    +                    else if (target == terminal && source != null
    +                            && source != terminal && sources)
    +                    {
    +                        terminals.Add(source);
    +                    }
    +                }
    +            }
    +
    +            return terminals.ToArray();
    +        }
    +
    +        /// <summary>
    +        /// Sets the source and target of the given edge in a single atomic change.
    +        /// </summary>
    +        /// <param name="model">Model that contains the graph.</param>
    +        /// <param name="edge">Cell that specifies the edge.</param>
    +        /// <param name="source">Cell that specifies the new source terminal.</param>
    +        /// <param name="target">Cell that specifies the new target terminal.</param>
    +        public static void SetTerminals(mxIGraphModel model, Object edge, Object source, Object target)
    +        {
    +            model.BeginUpdate();
    +            try
    +            {
    +                model.SetTerminal(edge, source, true);
    +                model.SetTerminal(edge, target, false);
    +            }
    +            finally
    +            {
    +                model.EndUpdate();
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the child vertices of the given parent.
    +        /// </summary>
    +        /// <param name="model">Model that contains the hierarchical information.</param>
    +        /// <param name="parent">Cell whose child vertices should be returned.</param>
    +        /// <returns>Returns the child vertices of the given parent.</returns>
    +        public static Object[] getChildVertices(mxIGraphModel model, Object parent)
    +        {
    +            return getChildCells(model, parent, true, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the child edges of the given parent.
    +        /// </summary>
    +        /// <param name="model">Model that contains the hierarchical information.</param>
    +        /// <param name="parent">Cell whose child edges should be returned.</param>
    +        /// <returns>Returns the child edges of the given parent.</returns>
    +        public static Object[] getChildEdges(mxIGraphModel model, Object parent)
    +        {
    +            return getChildCells(model, parent, false, true);
    +        }
    +
    +        /// <summary>
    +        /// Returns the children of the given cell that are vertices and/or edges
    +        /// depending on the arguments.
    +        /// </summary>
    +        /// <param name="model">Model that contains the hierarchical information.</param>
    +        /// <param name="parent">Cell whose child vertices or edges should be returned.</param>
    +        /// <param name="vertices">Boolean indicating if child vertices should be returned.</param>
    +        /// <param name="edges">Boolean indicating if child edges should be returned.</param>
    +        /// <returns>Returns the child vertices and/or edges of the given parent.</returns>
    +        public static Object[] getChildCells(mxIGraphModel model, Object parent,
    +                bool vertices, bool edges)
    +        {
    +            int childCount = model.GetChildCount(parent);
    +            List<Object> result = new List<Object>(childCount);
    +
    +            for (int i = 0; i < childCount; i++)
    +            {
    +                Object child = model.GetChildAt(parent, i);
    +
    +                if ((edges && model.IsEdge(child))
    +                        || (vertices && model.IsVertex(child)))
    +                {
    +                    result.Add(child);
    +                }
    +            }
    +
    +            return result.ToArray();
    +        }
    +
    +    }
    +}
    diff --git a/dotnet/src/model/mxICell.cs b/dotnet/src/model/mxICell.cs
    new file mode 100644
    index 000000000..e1581d33a
    --- /dev/null
    +++ b/dotnet/src/model/mxICell.cs
    @@ -0,0 +1,234 @@
    +// $Id: mxICell.cs,v 1.11 2010-08-19 11:58:19 david Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines the requirements for a cell that can be used in an mxGraphModel.
    +    /// </summary>
    +    public interface mxICell
    +    {
    +        /// <summary>
    +        /// Sets or returns the Id of the cell.
    +        /// </summary>
    +        string Id
    +        {
    +            get;
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the user object of the cell.
    +        /// </summary>
    +        Object Value
    +        {
    +            get;
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the geometry of the cell.
    +        /// </summary>
    +        mxGeometry Geometry
    +        {
    +            get;
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the string that describes the style.
    +        /// </summary>
    +        string Style
    +        {
    +            get;
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the cell is a vertex.
    +        /// </summary>
    +        bool Vertex
    +        {
    +            get;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the cell is an edge.
    +        /// </summary>
    +        bool Edge
    +        {
    +            get;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the cell is connectable.
    +        /// </summary>
    +        bool Connectable
    +        {
    +            get;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the visible state of the cell.
    +        /// </summary>
    +        bool Visible
    +        {
    +            get;
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the collapsed state of the cell.
    +        /// </summary>
    +        bool Collapsed
    +        {
    +            get;
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the parent of the cell.
    +        /// </summary>
    +        mxICell Parent
    +        {
    +            get;
    +            set;
    +        }
    +
    +        /// <summary>
    +        /// Returns the source or target terminal of the cell.
    +        /// </summary>
    +        /// <param name="source">Boolean that specifies if the source terminal should be
    +        /// returned.</param>
    +        /// <returns>Returns the source or target terminal.</returns>
    +        mxICell GetTerminal(bool source);
    +
    +        /// <summary>
    +        /// Sets the source or target terminal.
    +        /// </summary>
    +        /// <param name="terminal">Cell that represents the new source or target terminal.</param>
    +        /// <param name="source">Boolean that specifies if the source or target terminal
    +        /// should be set.</param>
    +        /// <returns>Returns the new terminal.</returns>
    +        mxICell SetTerminal(mxICell terminal, bool source);
    +
    +        /// <summary>
    +        /// Returns the number of child cells.
    +        /// </summary>
    +        /// <returns>Returns the number of child cells.</returns>
    +        int ChildCount();
    +
    +        /// <summary>
    +        /// Returns the index of the specified child in the child array.
    +        /// </summary>
    +        /// <param name="child">Child whose index should be returned.</param>
    +        /// <returns>Returns the index of the specified child.</returns>
    +        int GetIndex(mxICell child);
    +
    +        /// <summary>
    +        /// Returns the child at the specified index.
    +        /// </summary>
    +        /// <param name="index">Integer that specifies the child to be returned.</param>
    +        /// <returns>Returns the child at the specified index.</returns>
    +        mxICell GetChildAt(int index);
    +
    +        /// <summary>
    +        /// Appends the specified child into the child array and updates the parent
    +        /// reference of the child.
    +        /// </summary>
    +        /// <param name="child">Cell to be appended to the child array.</param>
    +        /// <returns>Returns the appended child.</returns>
    +        mxICell Insert(mxICell child);
    +
    +        /// <summary>
    +        /// Inserts the specified child into the child array at the specified index
    +        /// and updates the parent reference of the child.
    +        /// </summary>
    +        /// <param name="child">Cell to be inserted into the child array.</param>
    +        /// <param name="index">Integer that specifies the index at which the child should
    +        /// be inserted into the child array.</param>
    +        /// <returns>Returns the inserted child.</returns>
    +        mxICell Insert(mxICell child, int index);
    +
    +        /// <summary>
    +        /// Removes the child at the specified index from the child array and
    +        /// returns the child that was removed. Will remove the parent reference of
    +        /// the child.
    +        /// </summary>
    +        /// <param name="index">Integer that specifies the index of the child to be
    +        /// removed.</param>
    +        /// <returns>Returns the child that was removed.</returns>
    +        mxICell Remove(int index);
    +
    +        /// <summary>
    +        /// Removes the given child from the child array. Will remove the parent
    +        /// reference of the child.
    +        /// </summary>
    +        /// <param name="child"></param>
    +        /// <returns>Returns the child that was removed.</returns>
    +        mxICell Remove(mxICell child);
    +
    +        /// <summary>
    +        /// Removes the cell from its parent.
    +        /// </summary>
    +        void RemoveFromParent();
    +
    +        /// <summary>
    +        /// Returns the number of edges in the edge array.
    +        /// </summary>
    +        /// <returns>Returns the number of edges.</returns>
    +        int EdgeCount();
    +
    +        /// <summary>
    +        /// Returns the index of the specified edge in the edge array.
    +        /// </summary>
    +        /// <param name="edge">Cell whose index should be returned.</param>
    +        /// <returns>Returns the index of the given edge.</returns>
    +        int GetEdgeIndex(mxICell edge);
    +
    +        /// <summary>
    +        /// Returns the edge at the specified index in the edge array.
    +        /// </summary>
    +        /// <param name="index">Integer that specifies the index of the edge to be
    +        /// returned.</param>
    +        /// <returns>Returns the edge at the specified index.</returns>
    +        mxICell GetEdgeAt(int index);
    +
    +        /// <summary>
    +        /// Inserts the specified edge into the edge array and returns the edge.
    +        /// Will update the respective terminal reference of the edge.
    +        /// </summary>
    +        /// <param name="edge">Cell to be inserted into the edge array.</param>
    +        /// <param name="isOutgoing">Boolean that specifies if the edge is outgoing.</param>
    +        /// <returns>Returns the inserted edge.</returns>
    +        mxICell InsertEdge(mxICell edge, bool isOutgoing);
    +
    +        /// <summary>
    +        /// Removes the specified edge from the edge array and returns the edge.
    +        /// Will remove the respective terminal reference from the edge.
    +        /// </summary>
    +        /// <param name="edge">Cell to be removed from the edge array.</param>
    +        /// <param name="isOutgoing">Boolean that specifies if the edge is outgoing.</param>
    +        /// <returns>Returns the edge that was removed.</returns>
    +        mxICell RemoveEdge(mxICell edge, bool isOutgoing);
    +
    +        /// <summary>
    +        /// Removes the edge from its source or target terminal.
    +        /// </summary>
    +        /// <param name="isSource">Boolean that specifies if the edge should be removed
    +        /// from its source or target terminal.</param>
    +        void RemoveFromTerminal(bool isSource);
    +        
    +        /// <summary>
    +        /// Returns a clone of this cell.
    +        /// </summary>
    +        /// <returns>Returns a clone of this cell.</returns>
    +	    Object Clone();
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/model/mxIGraphModel.cs b/dotnet/src/model/mxIGraphModel.cs
    new file mode 100644
    index 000000000..f0ed365d6
    --- /dev/null
    +++ b/dotnet/src/model/mxIGraphModel.cs
    @@ -0,0 +1,245 @@
    +// $Id: mxIGraphModel.cs,v 1.13 2010-04-30 12:58:23 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Threading;
    +using System.Collections;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines the requirements for an object that listens to a graph model.
    +    /// </summary>
    +    public delegate void mxGraphModelChangeEventHandler();
    +
    +    /// <summary>
    +    /// Defines the requirements for a graph model to be used with mxGraph.
    +    /// </summary>
    +    public interface mxIGraphModel
    +    {
    +
    +        /// <summary>
    +        /// Called when the graph model has changed.
    +        /// </summary>
    +        event mxGraphModelChangeEventHandler GraphModelChange;
    +
    +        /// <summary>
    +        /// Holds the root cell.
    +        /// </summary>
    +        Object Root
    +        {
    +            get;
    +            set;
    +        }
    +        
    +        /// <summary>
    +        /// Returns an array of clones for the given array of cells.
    +        /// Depending on the value of includeChildren, a deep clone is created for
    +        /// each cell. Connections are restored based if the corresponding
    +        /// cell is contained in the passed in array.
    +        /// </summary>
    +        /// <param name="cells">Array of cells to be cloned.</param>
    +        /// <param name="includeChildren">Boolean indicating if the cells should be cloned
    +        /// with all descendants.</param>
    +        /// <returns>Returns a cloned array of cells.</returns>
    +        Object[] CloneCells(Object[] cells, bool includeChildren);
    +
    +        /// <summary>
    +        /// Returns true if the given parent is an ancestor of child.
    +        /// </summary>
    +        /// <param name="parent">Cell that specifies the parent.</param>
    +        /// <param name="child">Cell that specifies the child.</param>
    +        /// <returns>Returns true if child is an ancestor of parent.</returns>
    +        bool IsAncestor(Object parent, Object child);
    +
    +        /// <summary>
    +        /// Returns true if the model contains the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell to be checked.</param>
    +        /// <returns>Returns true if the cell is in the model.</returns>
    +        bool Contains(Object cell);
    +
    +        /// <summary>
    +        /// Returns the parent of the given cell.
    +        /// </summary>
    +        /// <param name="child">Cell whose parent should be returned.</param>
    +        /// <returns>Returns the parent of the given cell.</returns>
    +        Object GetParent(Object child);
    +
    +        /// <summary>
    +        /// Adds the specified child to the parent at the given index. If no index
    +        /// is specified then the child is appended to the parent's array of
    +        /// children.
    +        /// </summary>
    +        /// <param name="parent">Cell that specifies the parent to contain the child.</param>
    +        /// <param name="child">Cell that specifies the child to be inserted.</param>
    +        /// <param name="index">Integer that specifies the index of the child.</param>
    +        /// <returns>Returns the inserted child.</returns>
    +        Object Add(Object parent, Object child, int index);
    +
    +        /// <summary>
    +        /// Removes the specified cell from the model. This operation will remove
    +        /// the cell and all of its children from the model.
    +        /// </summary>
    +        /// <param name="parent">Cell that should be removed.</param>
    +        /// <returns>Returns the removed cell.</returns>
    +        Object Remove(Object parent);
    +
    +        /// <summary>
    +        /// Returns the number of children in the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose number of children should be returned.</param>
    +        /// <returns>Returns the number of children in the given cell.</returns>
    +        int GetChildCount(Object cell);
    +
    +        /// <summary>
    +        /// Returns the child of the given parent at the given index.
    +        /// </summary>
    +        /// <param name="parent">Cell that represents the parent.</param>
    +        /// <param name="index">Integer that specifies the index of the child to be
    +        /// returned.</param>
    +        /// <returns>Returns the child at index in parent.</returns>
    +        Object GetChildAt(Object parent, int index);
    +
    +        /// <summary>
    +        /// Returns the source or target terminal of the given edge depending on the
    +        /// value of the boolean parameter.
    +        /// </summary>
    +        /// <param name="edge">Cell that specifies the edge.</param>
    +        /// <param name="source">Boolean indicating which end of the edge should be
    +        /// returned.</param>
    +        /// <returns>Returns the source or target of the given edge.</returns>
    +        Object GetTerminal(Object edge, bool source);
    +
    +        /// <summary>
    +        /// Sets the source or target terminal of the given edge using.
    +        /// </summary>
    +        /// <param name="edge">Cell that specifies the edge.</param>
    +        /// <param name="terminal">Cell that specifies the new terminal.</param>
    +        /// <param name="source">Boolean indicating if the terminal is the new source or
    +        /// target terminal of the edge.</param>
    +        Object SetTerminal(Object edge, Object terminal, bool source);
    +
    +        /// <summary>
    +        /// Returns the number of distinct edges connected to the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell that represents the vertex.</param>
    +        /// <returns>Returns the number of edges connected to cell.</returns>
    +        int GetEdgeCount(Object cell);
    +
    +        /// <summary>
    +        /// Returns the edge of cell at the given index.
    +        /// </summary>
    +        /// <param name="cell">Cell that specifies the vertex.</param>
    +        /// <param name="index">Integer that specifies the index of the edge to return.</param>
    +        /// <returns>Returns the edge at the given index.</returns>
    +        Object GetEdgeAt(Object cell, int index);
    +
    +        /// <summary>
    +        /// Returns true if the given cell is a vertex.
    +        /// </summary>
    +        /// <param name="cell">Cell that represents the possible vertex.</param>
    +        /// <returns>Returns true if the given cell is a vertex.</returns>
    +        bool IsVertex(Object cell);
    +
    +        /// <summary>
    +        /// Returns true if the given cell is an edge.
    +        /// </summary>
    +        /// <param name="cell">Cell that represents the possible edge.</param>
    +        /// <returns>Returns true if the given cell is an edge.</returns>
    +        bool IsEdge(Object cell);
    +
    +        /// <summary>
    +        /// Returns true if the given cell is connectable.
    +        /// </summary>
    +        /// <param name="cell">Cell whose connectable state should be returned.</param>
    +        /// <returns>Returns the connectable state of the given cell.</returns>
    +        bool IsConnectable(Object cell);
    +
    +        /// <summary>
    +        /// Returns the user object of the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose user object should be returned.</param>
    +        /// <returns>Returns the user object of the given cell.</returns>
    +        Object GetValue(Object cell);
    +
    +        /// <summary>
    +        /// Sets the user object of then given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose user object should be changed.</param>
    +        /// <param name="value">Object that defines the new user object.</param>
    +        Object SetValue(Object cell, Object value);
    +
    +        /// <summary>
    +        /// Returns the geometry of the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose geometry should be returned.</param>
    +        /// <returns>Returns the geometry of the given cell.</returns>
    +        mxGeometry GetGeometry(Object cell);
    +
    +        /// <summary>
    +        /// Sets the geometry of the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose geometry should be changed.</param>
    +        /// <param name="geometry">Object that defines the new geometry.</param>
    +        mxGeometry SetGeometry(Object cell, mxGeometry geometry);
    +
    +        /// <summary>
    +        /// Returns the style of the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose style should be returned.</param>
    +        /// <returns>Returns the style of the given cell.</returns>
    +        string GetStyle(Object cell);
    +
    +        /// <summary>
    +        /// Sets the style of the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose style should be changed.</param>
    +        /// <param name="style">String of the form stylename[;key=value] to specify
    +        /// the new cell style.</param>
    +        string SetStyle(Object cell, string style);
    +
    +        /// <summary>
    +        /// Returns true if the given cell is collapsed.
    +        /// </summary>
    +        /// <param name="cell">Cell whose collapsed state should be returned.</param>
    +        /// <returns>Returns the collapsed state of the given cell.</returns>
    +        bool IsCollapsed(Object cell);
    +
    +        /// <summary>
    +        /// Sets the collapsed state of the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose collapsed state should be changed.</param>
    +        /// <param name="collapsed">Boolean that specifies the new collpased state.</param>
    +        bool SetCollapsed(Object cell, bool collapsed);
    +
    +        /// <summary>
    +        /// Returns true if the given cell is visible.
    +        /// </summary>
    +        /// <param name="cell">Cell whose visible state should be returned.</param>
    +        /// <returns>Returns the visible state of the given cell.</returns>
    +        bool IsVisible(Object cell);
    +
    +        /// <summary>
    +        /// Sets the visible state of the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose visible state should be changed.</param>
    +        /// <param name="visible">Boolean that specifies the new visible state.</param>
    +        bool SetVisible(Object cell, bool visible);
    +
    +        /// <summary>
    +        /// Increments the updateLevel by one. The event notification is queued
    +        /// until updateLevel reaches 0 by use of endUpdate.
    +        /// </summary>
    +        void BeginUpdate();
    +
    +        /// <summary>
    +        /// Decrements the updateLevel by one and fires a notification event if the
    +        /// updateLevel reaches 0.
    +        /// </summary>
    +        void EndUpdate();
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/reader/mxGraphViewImageReader.cs b/dotnet/src/reader/mxGraphViewImageReader.cs
    new file mode 100644
    index 000000000..372dc2d18
    --- /dev/null
    +++ b/dotnet/src/reader/mxGraphViewImageReader.cs
    @@ -0,0 +1,190 @@
    +// $Id: mxGraphViewImageReader.cs,v 1.7 2009-11-13 09:28:03 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Drawing;
    +using System.Drawing.Drawing2D;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// A converter that renders display XML data onto a GDI canvas.
    +    /// </summary>
    +    public class mxGraphViewImageReader : mxGraphViewReader
    +    {
    +
    +        /// <summary>
    +        /// Specifies the background color.
    +        /// </summary>
    +        protected Color? background;
    +
    +        /// <summary>
    +        /// Specifies the border size. Default is 0.
    +        /// </summary>
    +        protected int border;
    +
    +        /// <summary>
    +        /// Default is true.
    +        /// </summary>
    +        protected bool antiAlias;
    +
    +        /// <summary>
    +        /// Default is true.
    +        /// </summary>
    +        protected bool cropping;
    +
    +        /// <summary>
    +        /// Specifies the optional clipping rectangle.
    +        /// </summary>
    +        protected mxRectangle clip;
    +
    +        /// <summary>
    +        /// Constructs a new GDI reader for the given display XML reader.
    +        /// </summary>
    +        /// <param name="reader"></param>
    +        public mxGraphViewImageReader(XmlReader reader) : this(reader, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new GDI reader for the given display XML reader.
    +        /// </summary>
    +        public mxGraphViewImageReader(XmlReader reader, Color? background) : this(reader, background, 0) { }
    +
    +        /// <summary>
    +        /// Constructs a new GDI reader for the given display XML reader.
    +        /// </summary>
    +        public mxGraphViewImageReader(XmlReader reader, Color? background, int border)
    +            : this(reader, background, border, true) { }
    +
    +        /// <summary>
    +        /// Constructs a new GDI reader for the given display XML reader.
    +        /// </summary>
    +        public mxGraphViewImageReader(XmlReader reader, Color? background, int border, bool antiAlias)
    +            : this(reader, background, border, antiAlias, true) { }
    +
    +        /// <summary>
    +        /// Constructs a new GDI reader for the given display XML reader.
    +        /// </summary>
    +        public mxGraphViewImageReader(XmlReader reader, Color? background, int border, bool antiAlias, bool cropping)
    +        {
    +            Background = background;
    +            Border = border;
    +            AntiAlias = antiAlias;
    +            Cropping = cropping;
    +            Read(reader);
    +        }
    +
    +        /// <summary>
    +        /// Accessors for the background property.
    +        /// </summary>
    +        public Color? Background
    +        {
    +            get { return background; }
    +            set { background = value; }
    +        }
    +
    +        /// <summary>
    +        /// Accessors for the border property.
    +        /// </summary>
    +        public int Border
    +        {
    +            get { return border; }
    +            set { border = value; }
    +        }
    +
    +        /// <summary>
    +        /// Accessors for the background property.
    +        /// </summary>
    +        public bool AntiAlias
    +        {
    +            get { return antiAlias; }
    +            set { antiAlias = value; }
    +        }
    +
    +        /// <summary>
    +        /// Accessors for the cropping property.
    +        /// </summary>
    +        public bool Cropping
    +        {
    +            get { return cropping; }
    +            set { cropping = value; }
    +        }
    +
    +        /// <summary>
    +        /// Accessors for the clip property.
    +        /// </summary>
    +        public mxRectangle Clip
    +        {
    +            get { return clip; }
    +            set { clip = value; }
    +        }
    +
    +        /* (non-Dotnetdoc)
    +         * see com.mxgraph.mxGraphViewReader.CreateCanvas()
    +         */
    +        override public mxICanvas CreateCanvas(Dictionary<string, Object> attrs)
    +        {
    +            int width = 0;
    +            int height = 0;
    +            int dx = 0;
    +            int dy = 0;
    +
    +            mxRectangle tmp = Clip;
    +
    +            if (tmp != null)
    +            {
    +                dx -= (int)tmp.X;
    +                dy -= (int)tmp.Y;
    +                width = (int)tmp.Width;
    +                height = (int)tmp.Height;
    +            }
    +            else
    +            {
    +                int x = (int)Math.Round(mxUtils.GetDouble(attrs, "x"));
    +                int y = (int)Math.Round(mxUtils.GetDouble(attrs, "y"));
    +                width = (int)(Math.Round(mxUtils.GetDouble(attrs, "width")))
    +                    + border + 3;
    +                height = (int)(Math.Round(mxUtils.GetDouble(attrs, "height")))
    +                    + border + 3;
    +
    +                if (cropping)
    +                {
    +                    dx = -x + 3;
    +                    dy = -y + 3;
    +                }
    +                else
    +                {
    +                    width += x;
    +                    height += y;
    +                }
    +            }
    +
    +            mxImageCanvas canvas = new mxImageCanvas(new mxGdiCanvas(),
    +                    width, height, Background, AntiAlias);
    +            canvas.Translate = new Point(dx, dy);
    +
    +            return canvas;
    +        }
    +
    +        /// <summary>
    +        /// Creates the image for the given display XML reader. For a given XmlReader,
    +        /// use the following code to create the view reader:
    +        /// new mxGraphViewImageReader(xmlReader, background, border, antiAlias);
    +        /// </summary>
    +        /// <param name="viewReader">Reader that contains the display XML.</param>
    +        /// <returns>Returns an image representing the display XML reader.</returns>
    +        public static Image Convert(mxGraphViewImageReader viewReader)
    +        {
    +            if (viewReader.Canvas is mxImageCanvas)
    +            {
    +                return ((mxImageCanvas) viewReader.Canvas).Destroy();
    +            }
    +
    +            return null;
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/reader/mxGraphViewReader.cs b/dotnet/src/reader/mxGraphViewReader.cs
    new file mode 100644
    index 000000000..915805cc1
    --- /dev/null
    +++ b/dotnet/src/reader/mxGraphViewReader.cs
    @@ -0,0 +1,215 @@
    +// $Id: mxGraphViewReader.cs,v 1.19 2010-07-22 08:49:28 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Drawing;
    +using System.Drawing.Drawing2D;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// An abstract converter that renders display XML data onto a canvas.
    +    /// </summary>
    +    public abstract class mxGraphViewReader
    +    {
    +
    +        /// <summary>
    +        /// Holds the canvas to be used for rendering the graph.
    +        /// </summary>
    +        protected mxICanvas canvas;
    +
    +        /// <summary>
    +        /// Holds the global scale of the graph. This is set just before
    +        /// createCanvas is called.
    +        /// </summary>
    +        protected double scale = 1;
    +
    +        /// <summary>
    +        /// Constructs a new graph view reader.
    +        /// </summary>
    +        public mxGraphViewReader(): this(null) { }
    +
    +        /// <summary>
    +        /// Constructs a new graph view reader and reads the given display XML data.
    +        /// </summary>
    +        /// <param name="reader">Reader that represents the display XML data.</param>
    +        public mxGraphViewReader(XmlReader reader)
    +        {
    +            Read(reader);
    +        }
    +
    +        /// <summary>
    +        /// Returns the canvas to be used for rendering.
    +        /// </summary>
    +        /// <param name="attrs">Specifies the attributes of the new canvas.</param>
    +        /// <returns>Returns a new canvas.</returns>
    +        public abstract mxICanvas CreateCanvas(Dictionary<string, Object> attrs);
    +
    +        /// <summary>
    +        /// Returns the canvas that is used for rendering the graph.
    +        /// </summary>
    +        public mxICanvas Canvas
    +        {
    +            get { return canvas; }
    +        }
    +
    +        /// <summary>
    +        /// Reads the given display XML data and parses all elements.
    +        /// </summary>
    +        /// <param name="reader">Reader that represents the display XML data.</param>
    +        public void Read(XmlReader reader)
    +        {
    +            if (reader != null)
    +            {
    +                while (reader.Read())
    +                {
    +                    if (reader.NodeType == XmlNodeType.Element)
    +                    {
    +                        string tagName = reader.LocalName.ToUpper();
    +                        Dictionary<string, Object> attrs =
    +                                new Dictionary<string, Object>();
    +
    +                        if (reader.MoveToFirstAttribute())
    +                        {
    +                            do
    +                            {
    +                                attrs[reader.LocalName] = reader.Value;
    +                            } while (reader.MoveToNextAttribute());
    +                        }
    +
    +                        ParseElement(tagName, attrs);
    +                    }
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Parses the given element and paints it onto the canvas.
    +        /// </summary>
    +        /// <param name="tagName">Name of the node to be parsed.</param>
    +        /// <param name="attrs">Attributes of the node to be parsed.</param>
    +        public void ParseElement(string tagName, Dictionary<string, Object> attrs)
    +        {
    +            if (canvas == null && tagName.ToLower().Equals("graph"))
    +            {
    +                scale = mxUtils.GetDouble(attrs, "scale", 1);
    +                canvas = CreateCanvas(attrs);
    +
    +                if (canvas != null)
    +                {
    +                    canvas.Scale = scale;
    +                }
    +            }
    +            else if (canvas != null)
    +            {
    +                bool edge = tagName.ToLower().Equals("edge");
    +                bool group = tagName.ToLower().Equals("group");
    +                bool vertex = tagName.ToLower().Equals("vertex");
    +
    +                if ((edge && attrs.ContainsKey("points")) ||
    +                    ((vertex || group) && attrs.ContainsKey("x") &&
    +                    attrs.ContainsKey("y") && attrs.ContainsKey("width") &&
    +                    attrs.ContainsKey("height")))
    +                {
    +                    mxCellState state = new mxCellState(null, null, attrs);
    +
    +                    string label = ParseState(state, edge);
    +                    canvas.DrawCell(state);
    +                    canvas.DrawLabel(label, state, false);
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Parses the bounds, absolute points and label information from the style
    +        /// of the state into its respective fields and returns the label of the
    +        /// cell.
    +        /// </summary>
    +        public string ParseState(mxCellState state, bool edge)
    +        {
    +            Dictionary<string, object> style = state.Style;
    +
    +            // Parses the bounds
    +            state.X = mxUtils.GetDouble(style, "x");
    +            state.Y = mxUtils.GetDouble(style, "y");
    +            state.Width = mxUtils.GetDouble(style, "width");
    +            state.Height = mxUtils.GetDouble(style, "height");
    +
    +            // Parses the absolute points list
    +            List<mxPoint> pts = ParsePoints(mxUtils.GetString(style, "points"));
    +
    +            if (pts.Count > 0)
    +            {
    +                state.AbsolutePoints = pts;
    +            }
    +
    +            // Parses the label and label bounds
    +            string label = mxUtils.GetString(style, "label");
    +
    +            if (label != null && label.Length > 0)
    +            {
    +                mxPoint offset = new mxPoint(mxUtils.GetDouble(style, "dx"),
    +                    mxUtils.GetDouble(style, "dy"));
    +                mxRectangle vertexBounds = (!edge) ? state : null;
    +                state.LabelBounds = mxUtils.GetLabelPaintBounds(label, style,
    +                    mxUtils.IsTrue(style, "html", false), offset, vertexBounds,
    +                    scale);
    +            }
    +
    +            return label;
    +        }
    +
    +        /// <summary>
    +        /// Parses the list of points into an object-oriented representation.
    +        /// </summary>
    +        /// <param name="pts">String containing a list of points.</param>
    +        /// <returns>Returns the points as a list of mxPoints.</returns>
    +        public static List<mxPoint> ParsePoints(string pts)
    +        {
    +            List<mxPoint> result = new List<mxPoint>();
    +
    +            if (pts != null)
    +            {
    +                int len = pts.Length;
    +                string tmp = "";
    +                string x = null;
    +
    +                for (int i = 0; i < len; i++)
    +                {
    +                    char c = pts[i];
    +
    +                    if (c == ',' ||
    +                        c == ' ')
    +                    {
    +                        if (x == null)
    +                        {
    +                            x = tmp;
    +                        }
    +                        else
    +                        {
    +                            result.Add(new mxPoint(double.Parse(x),
    +                                    double.Parse(tmp)));
    +                            x = null;
    +                        }
    +
    +                        tmp = "";
    +                    }
    +                    else
    +                    {
    +                        tmp += c;
    +                    }
    +                }
    +
    +                result.Add(new mxPoint(double.Parse(x),
    +                    double.Parse(tmp)));
    +            }
    +
    +            return result;
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/reader/mxSaxOutputHandler.cs b/dotnet/src/reader/mxSaxOutputHandler.cs
    new file mode 100644
    index 000000000..0ece772a7
    --- /dev/null
    +++ b/dotnet/src/reader/mxSaxOutputHandler.cs
    @@ -0,0 +1,352 @@
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    public class mxSaxOutputHandler
    +    {
    +        /// <summary>
    +        /// Holds the current canvas.
    +        /// </summary>
    +        protected mxICanvas2D canvas;
    +            
    +	    /// <summary>
    +	    /// Holds the handlers for specific XML nodes.
    +	    /// </summary>
    +	    protected Dictionary<string, ElementHandler> handlers = new Dictionary<string, ElementHandler>();
    +                
    +        /// <summary>
    +        /// Defines the requirements for an object that parses a node.
    +        /// </summary>
    +        public delegate void ElementHandler(Dictionary<string, string> atts);
    +
    +        /// <summary>
    +        /// Constructs a new sax output handler for the given canvas.
    +        /// </summary>
    +        public mxSaxOutputHandler(mxICanvas2D canvas)
    +        {
    +            Canvas = canvas;
    +            InitHandlers();
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the current canvas.
    +        /// </summary>
    +        public mxICanvas2D Canvas
    +        {
    +            get { return canvas; }
    +            set { canvas = value; }
    +        }
    +
    +        /// <summary>
    +        /// Reads the given display XML data and parses all elements.
    +        /// </summary>
    +        /// <param name="reader">Reader that represents the display XML data.</param>
    +        public void Read(XmlReader reader)
    +        {
    +            if (reader != null)
    +            {
    +                while (reader.Read())
    +                {
    +                    if (reader.NodeType == XmlNodeType.Element)
    +                    {
    +                        string tagName = reader.LocalName.ToUpper();
    +                        Dictionary<string, string> attrs =
    +                                new Dictionary<string, string>();
    +
    +                        if (reader.MoveToFirstAttribute())
    +                        {
    +                            do
    +                            {
    +                                attrs[reader.LocalName] = reader.Value;
    +                            } while (reader.MoveToNextAttribute());
    +                        }
    +
    +                        ParseElement(tagName, attrs);
    +                    }
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Parses the given element and paints it onto the canvas.
    +        /// </summary>
    +        /// <param name="tagName">Name of the node to be parsed.</param>
    +        /// <param name="attrs">Attributes of the node to be parsed.</param>
    +        public void ParseElement(string tagName, Dictionary<string, string> atts)
    +        {
    +            string key = tagName.ToLower();
    +
    +            if (handlers.ContainsKey(key))
    +            {
    +                handlers[key](atts);
    +            }
    +        }
    +
    +        protected string GetString(Dictionary<string, string> atts, string key)
    +        {
    +            return GetString(atts, key, null);
    +        }
    +
    +        protected string GetString(Dictionary<string, string> atts, string key, string defaultValue)
    +        {
    +            if (atts.ContainsKey(key))
    +            {
    +                defaultValue = atts[key];
    +            }
    +
    +            return defaultValue;
    +        }
    +
    +        protected double GetDouble(Dictionary<string, string> atts, string key)
    +        {
    +            return GetDouble(atts, key, 0);
    +        }
    +
    +        protected double GetDouble(Dictionary<string, string> atts, string key, double defaultValue)
    +        {
    +            if (atts.ContainsKey(key))
    +            {
    +                defaultValue = double.Parse(atts[key]);
    +            }
    +
    +            return defaultValue;
    +        }
    +
    +        protected int GetInt(Dictionary<string, string> atts, string key)
    +        {
    +            return GetInt(atts, key, 0);
    +        }
    +
    +        protected int GetInt(Dictionary<string, string> atts, string key, int defaultValue)
    +        {
    +            if (atts.ContainsKey(key))
    +            {
    +                defaultValue = int.Parse(atts[key]);
    +            }
    +
    +            return defaultValue;
    +        }
    +
    +        protected bool IsTrue(Dictionary<string, string> atts, string key)
    +        {
    +            return IsTrue(atts, key, false);
    +        }
    +
    +        protected bool IsTrue(Dictionary<string, string> atts, string key, bool defaultValue)
    +        {
    +            if (atts.ContainsKey(key))
    +            {
    +                defaultValue = atts[key].Equals("1");
    +            }
    +
    +            return defaultValue;
    +        }
    +
    +	    /// <summary>
    +	    /// 
    +	    /// </summary>
    +	    protected void InitHandlers()
    +	    {
    +		    handlers["save"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Save();
    +		    };
    +
    +		    handlers["restore"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Restore();
    +		    };
    +
    +		    handlers["scale"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Scale(GetDouble(atts, "scale"));
    +		    };
    +
    +		    handlers["translate"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.Translate(GetDouble(atts, "dx"), GetDouble(atts, "dy"));
    +		    };
    +
    +		    handlers["rotate"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Rotate(GetDouble(atts, "theta"), IsTrue(atts, "flipH"),
    +                    IsTrue(atts, "flipV"), GetDouble(atts, "cx"), GetDouble(atts, "cy"));
    +		    };
    +
    +		    handlers["strokewidth"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.StrokeWidth = GetDouble(atts, "width");
    +		    };
    +            
    +            handlers["strokecolor"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.StrokeColor = GetString(atts, "color");
    +		    };
    +
    +            handlers["dashed"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Dashed = IsTrue(atts, "dashed");
    +		    };
    +
    +            handlers["dashpattern"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.DashPattern = GetString(atts, "pattern");
    +		    };
    +
    +            handlers["linecap"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.LineCap = GetString(atts, "cap");
    +		    };
    +
    +            handlers["linejoin"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.LineJoin = GetString(atts, "join");
    +		    };
    +
    +            handlers["miterlimit"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.MiterLimit = GetDouble(atts, "limit");
    +		    };
    +
    +            handlers["fontsize"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.FontSize = GetDouble(atts, "size");
    +		    };
    +
    +            handlers["fontcolor"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.FontColor = GetString(atts, "color");
    +		    };
    +
    +            handlers["fontfamily"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.FontFamily = GetString(atts, "family");
    +		    };
    +
    +            handlers["fontstyle"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.FontStyle = GetInt(atts, "style");
    +		    };
    +
    +            handlers["alpha"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.Alpha = GetDouble(atts, "alpha");
    +		    };
    +
    +            handlers["fillcolor"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.FillColor = GetString(atts, "color");
    +		    };
    +
    +            handlers["gradient"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.SetGradient(GetString(atts, "c1"), GetString(atts, "c2"),
    +                    GetDouble(atts, "x"), GetDouble(atts, "y"),
    +				    GetDouble(atts, "w"), GetDouble(atts, "h"),
    +				    GetString(atts, "direction"));
    +		    };
    +
    +            handlers["glass"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.SetGlassGradient(GetDouble(atts, "x"), GetDouble(atts, "y"),
    +				    GetDouble(atts, "w"), GetDouble(atts, "h"));
    +		    };
    +
    +            handlers["rect"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.Rect(GetDouble(atts, "x"), GetDouble(atts, "y"),
    +                    GetDouble(atts, "w"), GetDouble(atts, "h"));
    +		    };
    +
    +            handlers["roundrect"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.Roundrect(GetDouble(atts, "x"), GetDouble(atts, "y"),
    +                    GetDouble(atts, "w"), GetDouble(atts, "h"),
    +                    GetDouble(atts, "dx"), GetDouble(atts, "dy"));
    +		    };
    +
    +            handlers["ellipse"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.Ellipse(GetDouble(atts, "x"), GetDouble(atts, "y"),
    +                    GetDouble(atts, "w"), GetDouble(atts, "h"));
    +		    };
    +
    +            handlers["image"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.Image(GetDouble(atts, "x"), GetDouble(atts, "y"),
    +                    GetDouble(atts, "w"), GetDouble(atts, "h"),
    +                    GetString(atts, "src"), IsTrue(atts, "aspect"),
    +                    IsTrue(atts, "flipH"), IsTrue(atts, "flipV"));
    +		    };
    +
    +            handlers["text"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.Text(GetDouble(atts, "x"), GetDouble(atts, "y"),
    +                    GetDouble(atts, "w"), GetDouble(atts, "h"),
    +                    GetString(atts, "str"), GetString(atts, "align"),
    +                    GetString(atts, "valign"), IsTrue(atts, "vertical"),
    +                    IsTrue(atts, "wrap"), GetString(atts, "format"));
    +		    };
    +
    +            handlers["begin"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Begin();
    +		    };
    +
    +            handlers["move"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.MoveTo(GetDouble(atts, "x"), GetDouble(atts, "y"));
    +		    };
    +
    +            handlers["line"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.LineTo(GetDouble(atts, "x"), GetDouble(atts, "y"));
    +		    };
    +
    +            handlers["quad"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.QuadTo(GetDouble(atts, "x1"), GetDouble(atts, "y1"),
    +                    GetDouble(atts, "x2"), GetDouble(atts, "y2"));
    +		    };
    +
    +            handlers["curve"] = delegate(Dictionary<string, string> atts)
    +		    {
    +                canvas.CurveTo(GetDouble(atts, "x1"), GetDouble(atts, "y1"),
    +                    GetDouble(atts, "x2"), GetDouble(atts, "y2"),
    +                    GetDouble(atts, "x3"), GetDouble(atts, "y3"));
    +		    };
    +
    +            handlers["close"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Close();
    +		    };
    +
    +            handlers["stroke"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Stroke();
    +		    };
    +            handlers["fill"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Fill();
    +		    };
    +
    +            handlers["fillstroke"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.FillAndStroke();
    +		    };
    +
    +            handlers["shadow"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Shadow(GetString(atts, "value"), IsTrue(atts, "filled", true));
    +		    };
    +
    +            handlers["clip"] = delegate(Dictionary<string, string> atts)
    +		    {
    +			    canvas.Clip();
    +		    };
    +	    }
    +    }
    +}
    diff --git a/dotnet/src/sharing/mxSession.cs b/dotnet/src/sharing/mxSession.cs
    new file mode 100644
    index 000000000..31b42c6c5
    --- /dev/null
    +++ b/dotnet/src/sharing/mxSession.cs
    @@ -0,0 +1,200 @@
    +// $Id: mxSession.cs,v 1.13 2010-09-30 09:34:09 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Threading;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Implements a session that may be attached to a shared diagram.
    +    /// </summary>
    +    public class mxSession
    +    {
    +        /// <summary>
    +        /// Default timeout is 10000 ms.
    +        /// </summary>
    +        public static int DEFAULT_TIMEOUT = 10000;
    +
    +        /// <summary>
    +        /// Holds the session ID.
    +        /// </summary>
    +        protected string id;
    +
    +        /// <summary>
    +        /// Reference to the shared diagram.
    +        /// </summary>
    +        protected mxSharedDiagram diagram;
    +
    +        /// <summary>
    +        /// Holds the send buffer for this session.
    +        /// </summary>
    +        protected StringBuilder buffer = new StringBuilder();
    +
    +        /// <summary>
    +        /// Holds the last active time millis.
    +        /// </summary>
    +        protected long lastTimeMillis = 0;
    +
    +        /// <summary>
    +        /// Constructs a new session with the given ID.
    +        /// </summary>
    +        /// <param name="id">Specifies the session ID to be used.</param>
    +        /// <param name="diagram">Reference to the shared diagram.</param>
    +        public mxSession(string id, mxSharedDiagram diagram)
    +        {
    +            this.id = id;
    +            this.diagram = diagram;
    +            this.diagram.DiagramChange += new mxDiagramChangeEventHandler(DiagramChanged);
    +
    +            lastTimeMillis = System.DateTime.Now.Millisecond;
    +        }
    +
    +        /// <summary>
    +        /// Returns the session ID.
    +        /// </summary>
    +        public string Id
    +        {
    +            get { return id; }
    +        }
    +
    +        /// <summary>
    +        /// Initializes the session buffer and returns a string that represents the
    +        /// state of the session.
    +        /// </summary>
    +        /// <returns>Returns the initial state of the session.</returns>
    +        public string Init()
    +        {
    +            Monitor.Enter(this);
    +            buffer = new StringBuilder();
    +            Monitor.Pulse(this);
    +            Monitor.Exit(this);
    +
    +            return GetInitialMessage();
    +        }
    +
    +        /// <summary>
    +        /// Returns an XML string that represents the current state of the session
    +        /// and the shared diagram. A globally unique ID is used as the session's
    +        /// namespace, which is used on the client side to prefix IDs of newly
    +        /// created cells.
    +        /// </summary>
    +        public string GetInitialMessage()
    +        {
    +            String ns = Guid.NewGuid().ToString();
    +
    +            StringBuilder result = new StringBuilder("<message namespace=\"" + ns + "\">");
    +            result.Append("<state>");
    +            result.Append(diagram.State);
    +            result.Append("</state>");
    +            result.Append("<delta>");
    +            result.Append(diagram.GetDelta());
    +            result.Append("</delta>");
    +            result.Append("</message>");
    +
    +            return result.ToString();
    +        }
    +
    +        /// <summary>
    +        /// Posts the change represented by the given XML string to the shared diagram.
    +        /// </summary>
    +        /// <param name="xml">XML string that represents the change.</param>
    +        public void Receive(XmlNode message)
    +        {
    +            XmlNode child = message.FirstChild;
    +
    +		    while (child != null)
    +		    {
    +			    if (child.Name.Equals("delta"))
    +			    {
    +				    diagram.ProcessDelta(this, child);
    +			    }
    +
    +			    child = child.NextSibling;
    +		    }
    +        }
    +
    +        /// <summary>
    +        /// Returns the changes received by other sessions for the shared diagram.
    +        /// The method returns an empty XML node if no change was received within
    +        /// 10 seconds.
    +        /// </summary>
    +        /// <returns>Returns a string representing the changes to the shared diagram.</returns>
    +        public string Poll()
    +        {
    +            return Poll(DEFAULT_TIMEOUT);
    +        }
    +
    +        /// <summary>
    +        /// Returns the changes received by other sessions for the shared diagram.
    +        /// The method returns an empty XML node if no change was received within
    +        /// the given timeout.
    +        /// </summary>
    +        /// <param name="timeout">Time in milliseconds to wait for changes.</param>
    +        /// <returns>Returns a string representing the changes to the shared diagram.</returns>
    +        public string Poll(int timeout)
    +        {
    +            lastTimeMillis = System.DateTime.Now.Millisecond;
    +            StringBuilder result = new StringBuilder("<message>");
    +
    +            Monitor.Enter(this);
    +
    +            if (buffer.Length == 0)
    +            {
    +                Monitor.Wait(this, timeout);
    +            }
    +
    +            if (buffer.Length > 0)
    +            {
    +                result.Append("<delta>");
    +                result.Append(buffer.ToString());
    +                result.Append("</delta>");
    +
    +                buffer = new StringBuilder();
    +            }
    +
    +            Monitor.Pulse(this);
    +            Monitor.Exit(this);
    +
    +            result.Append("</message>");
    +
    +            return result.ToString();
    +        }
    +
    +        /// <summary>
    +        /// Invoked when the shared diagram has changed.
    +        /// </summary>
    +        /// <param name="sender">Session where the change was received from.</param>
    +        /// <param name="xml">XML string that represents the change.</param>
    +        public void DiagramChanged(Object sender, string xml)
    +        {
    +            // FIXME: Check if sender != this can be used here
    +            if (sender is mxSession && !((mxSession)sender).Id.Equals(Id))
    +            {
    +                Monitor.Enter(this);
    +                buffer.Append(xml);
    +                Monitor.Pulse(this);
    +                Monitor.Exit(this);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the number of milliseconds this session has been inactive.
    +        /// </summary>
    +        public long InactiveTimeMillis()
    +        {
    +            return System.DateTime.Now.Millisecond - lastTimeMillis;
    +        }
    +
    +        /// <summary>
    +        /// Destroys the session and removes its listener from the shared diagram.
    +        /// </summary>
    +        public void Destroy()
    +        {
    +            this.diagram.DiagramChange -= new mxDiagramChangeEventHandler(DiagramChanged);
    +        }
    +
    +    }
    +}
    diff --git a/dotnet/src/sharing/mxSharedState.cs b/dotnet/src/sharing/mxSharedState.cs
    new file mode 100644
    index 000000000..4cfdd7053
    --- /dev/null
    +++ b/dotnet/src/sharing/mxSharedState.cs
    @@ -0,0 +1,127 @@
    +// $Id: mxSharedState.cs,v 1.1 2010-09-20 06:21:37 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Threading;
    +using System.Xml;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines the requirementns for an object that listens to changes on the
    +    /// shared diagram.
    +    /// </summary>
    +    public delegate void mxDiagramChangeEventHandler(Object sender, string xml);
    +
    +    /// <summary>
    +    /// Implements a diagram that may be shared among multiple sessions.
    +    /// </summary>
    +    public class mxSharedDiagram
    +    {
    +        /// <summary>
    +        /// Fires when the diagram was changed.
    +        /// </summary>
    +        public event mxDiagramChangeEventHandler DiagramChange;
    +
    +        /// <summary>
    +        /// Holds the initial state of the diagram.
    +        /// </summary>
    +        protected string state;
    +
    +        /// <summary>
    +        /// Holds the delta of all changes of initial state.
    +        /// </summary>
    +        protected StringBuilder delta = new StringBuilder();
    +
    +        /// <summary>
    +        /// Constructs a new diagram with the given initial state.
    +        /// </summary>
    +        /// <param name="state">Initial state of the diagram.</param>
    +        public mxSharedDiagram(string state)
    +        {
    +            this.state = state;
    +        }
    +
    +        /// <summary>
    +        /// Returns the initial state of the diagram.
    +        /// </summary>
    +        public string State
    +        {
    +            get { return state; }
    +        }
    +
    +        /// <summary>
    +        /// Returns the delta of all changes as a string.
    +        /// </summary>
    +        public string GetDelta()
    +        {
    +            Monitor.Enter(this);
    +            string tmp = delta.ToString();
    +            Monitor.Exit(this);
    +
    +            return tmp;
    +        }
    +
    +        /// <summary>
    +        /// Appends the given string to the history and dispatches the change to all
    +        /// sessions that are listening to this shared diagram.
    +        /// </summary>
    +        /// <param name="sender"></param>
    +        /// <param name="delta"></param>
    +        public void ProcessDelta(Object sender, XmlNode delta)
    +	    {
    +            StringBuilder edits = new StringBuilder();
    +
    +            Monitor.Enter(this);
    +            XmlNode edit = delta.FirstChild;
    +
    +		    while (edit != null)
    +		    {
    +			    if (edit.Name.Equals("edit"))
    +			    {
    +				    edits.Append(ProcessEdit(edit));
    +			    }
    +
    +			    edit = edit.NextSibling;
    +		    }
    +            Monitor.Exit(this);
    +
    +            string xml = edits.ToString();
    +		    AddDelta(xml);
    +		    DiagramChange(sender, xml);
    +	    }
    +
    +        /// <summary>
    +        /// 
    +        /// </summary>
    +        /// <param name="node"></param>
    +        /// <returns></returns>
    +        public string ProcessEdit(XmlNode node)
    +        {
    +            return mxUtils.GetXml(node);
    +        }
    +
    +        /// <summary>
    +        /// Clears the delta of all changes.
    +        /// </summary>
    +        public void AddDelta(String xml)
    +        {
    +            Monitor.Enter(this);
    +            delta.Append(xml);
    +            Monitor.Exit(this);
    +        }
    +
    +        /// <summary>
    +        /// Clears the delta of all changes.
    +        /// </summary>
    +        public void ResetDelta()
    +        {
    +            Monitor.Enter(this);
    +            delta = new StringBuilder();
    +            Monitor.Exit(this);
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/utils/mxCellRenderer.cs b/dotnet/src/utils/mxCellRenderer.cs
    new file mode 100644
    index 000000000..ef873773b
    --- /dev/null
    +++ b/dotnet/src/utils/mxCellRenderer.cs
    @@ -0,0 +1,189 @@
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Class that can draw an independent array of cells.
    +    /// </summary>
    +    public class mxCellRenderer
    +    {
    +
    +        private mxCellRenderer()
    +        {
    +            // static class
    +        }
    +
    +        /// <summary>
    +        /// Draws the given cells using a Graphics2D canvas and returns the buffered image
    +        /// that represents the cells.
    +        /// </summary>
    +        public static mxICanvas DrawCells(mxGraph graph, Object[] cells, double scale,
    +                mxRectangle clip, CanvasFactory factory)
    +        {
    +            mxICanvas canvas = null;
    +
    +            if (cells == null)
    +            {
    +                cells = new Object[] { graph.Model.Root };
    +            }
    +
    +            if (cells != null)
    +            {
    +                // Gets the current state of the view
    +                mxGraphView view = graph.View;
    +                Dictionary<Object, mxCellState> states = view.States;
    +                double oldScale = view.Scale;
    +
    +                // Keeps the existing translation as the cells might
    +                // be aligned to the grid in a different way in a graph
    +                // that has a translation other than zero
    +                bool eventsEnabled = view.IsEventsEnabled;
    +
    +                // Disables firing of scale events so that there is no
    +                // repaint or update of the original graph
    +                view.IsEventsEnabled = false;
    +
    +                try
    +                {
    +                    // TODO: Factor-out into mxTemporaryCellStates class
    +                    view.States = new Dictionary<Object, mxCellState>();
    +                    view.Scale = scale;
    +
    +                    // Creates virtual parent state for validation
    +                    mxCellState state = view.CreateState(new mxCell());
    +
    +                    // Validates the vertices and edges without adding them to
    +                    // the model so that the original cells are not modified
    +                    for (int i = 0; i < cells.Length; i++)
    +                    {
    +                        view.ValidateBounds(state, cells[i]);
    +                    }
    +
    +                    for (int i = 0; i < cells.Length; i++)
    +                    {
    +                        view.ValidatePoints(state, cells[i]);
    +                    }
    +
    +                    if (clip == null)
    +                    {
    +                        clip = graph.GetPaintBounds(cells);
    +                    }
    +
    +                    if (clip != null && clip.Width > 0 && clip.Height > 0)
    +                    {
    +                        Rectangle rect = clip.GetRectangle();
    +                        canvas = factory.CreateCanvas(rect.Width + 1,
    +                                rect.Height + 1);
    +
    +                        if (canvas != null)
    +                        {
    +                            double previousScale = canvas.Scale;
    +                            Point previousTranslate = canvas.Translate;
    +
    +                            try
    +                            {
    +                                canvas.Translate = new Point(-rect.X, -rect.Y);
    +                                canvas.Scale = view.Scale;
    +
    +                                for (int i = 0; i < cells.Length; i++)
    +                                {
    +                                    graph.DrawCell(canvas, cells[i]);
    +                                }
    +                            }
    +                            finally
    +                            {
    +                                canvas.Scale = previousScale;
    +                                canvas.Translate = previousTranslate;
    +                            }
    +                        }
    +                    }
    +                }
    +                finally
    +                {
    +                    view.Scale = oldScale;
    +                    view.States = states;
    +                    view.IsEventsEnabled = eventsEnabled;
    +                }
    +            }
    +
    +            return canvas;
    +        }
    +
    +        /// <summary>
    +        /// Creates an image for the given arguments.
    +        /// </summary>
    +        public static Image CreateImage(mxGraph graph, Object[] cells, double scale, Color? background,
    +            bool antiAlias, mxRectangle clip)
    +        {
    +            return CreateImage(graph, cells, scale, background, antiAlias, clip, new mxGdiCanvas());
    +        }
    +
    +        /// <summary>
    +        /// Creates an image for the given arguments.
    +        /// </summary>
    +        public static Image CreateImage(mxGraph graph, Object[] cells, double scale, Color? background,
    +            bool antiAlias, mxRectangle clip, mxGdiCanvas graphicsCanvas)
    +        {
    +            mxImageCanvas canvas = (mxImageCanvas) DrawCells(graph, cells, scale, clip,
    +                new ImageCanvasFactory(graphicsCanvas, background, antiAlias));
    +
    +            return canvas.Destroy();
    +        }
    +
    +        /// <summary>
    +        /// Defines the requirements for a class that can create canvases.
    +        /// </summary>
    +        public abstract class CanvasFactory
    +        {
    +            /// <summary>
    +            /// Returns a new canvas for the given dimension.
    +            /// </summary>
    +            public abstract mxICanvas CreateCanvas(int width, int height);
    +        }
    +
    +        /// <summary>
    +        /// FIXME: Use anonymous class in CreateImage with invocation parameters
    +        /// in factory method code.
    +        /// </summary>
    +        public class ImageCanvasFactory : CanvasFactory
    +        {
    +            /// <summary>
    +            /// Holds the graphics canvas to be used for painting.
    +            /// </summary>
    +            protected mxGdiCanvas graphicsCanvas;
    +
    +            /// <summary>
    +            /// Specifies the background color.
    +            /// </summary>
    +            protected Color? background;
    +
    +            /// <summary>
    +            /// Specifies if antialiasing should be enabled.
    +            /// </summary>
    +            protected bool antiAlias;
    +
    +            /// <summary>
    +            /// Constructs a new image canvas factors.
    +            /// </summary>
    +            /// <param name="graphicsCanvas">Specifies the graphics canvas for painting.</param>
    +            /// <param name="background">Specifies the background color of the image.</param>
    +            /// <param name="antiAlias">Specifies if antialiasing should be enabled.</param>
    +            public ImageCanvasFactory(mxGdiCanvas graphicsCanvas, Color? background, bool antiAlias)
    +            {
    +                this.graphicsCanvas = graphicsCanvas;
    +                this.background = background;
    +                this.antiAlias = antiAlias;
    +            }
    +
    +            public override mxICanvas CreateCanvas(int width, int height)
    +            {
    +                return new mxImageCanvas(graphicsCanvas, width, height, background, antiAlias);
    +            }
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/utils/mxConstants.cs b/dotnet/src/utils/mxConstants.cs
    new file mode 100644
    index 000000000..546b46221
    --- /dev/null
    +++ b/dotnet/src/utils/mxConstants.cs
    @@ -0,0 +1,971 @@
    +// $Id: mxConstants.cs,v 1.59 2012-03-24 11:58:09 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Drawing;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines various global constants.
    +    /// </summary>
    +    public class mxConstants
    +    {
    +        /// <summary>
    +        /// Defines the portion of the cell which is
    +	    /// to be used as a connectable region.
    +        /// </summary>
    +        public static double DEFAULT_HOTSPOT = 0.3;
    +
    +        /// <summary>
    +        /// Defines the minimum size in pixels of the 
    +	    /// portion of the cell cell which is to be 
    +	    /// used as a connectable region.
    +        /// </summary>
    +        public static double MIN_HOTSPOT_SIZE = 8;
    +
    +        /// <summary>
    +        /// Defines the SVG namespace.
    +        /// </summary>
    +	    public static string NS_SVG = "http://www.w3.org/2000/svg";
    +
    +        /// <summary>
    +        /// Defines the XHTML namespace.
    +        /// </summary>
    +        public static string NS_XHTML = "http://www.w3.org/1999/xhtml";
    +
    +        /// <summary>
    +        /// Defines the XLink namespace.
    +        /// </summary>
    +	    public static string NS_XLINK = "http://www.w3.org/1999/xlink";
    +
    +        /// <summary>
    +        /// Default family for fonts. Default is Arial.
    +        /// </summary>
    +        public static String DEFAULT_FONTFAMILY = "Arial";
    +
    +        /// <summary>
    +        /// Default size for fonts. Value is 11.
    +        /// </summary>
    +        public static float DEFAULT_FONTSIZE = 11;
    +
    +        /// <summary>
    +        /// Defines the default start size for swimlanes. Default is 40.
    +        /// </summary>
    +        public static float DEFAULT_STARTSIZE = 40;
    +
    +        /// <summary>
    +        /// Specifies the line spacing. Default is 2.
    +        /// </summary>
    +        public static int LINESPACING = 2;
    +
    +        /// <summary>
    +        /// Defines the factor to multiply font sizes in
    +        /// points to be used as font sizes in em. Default
    +        /// is 1/1.33 = 0.75.
    +        /// </summary>
    +        public static double FONT_SIZEFACTOR = 0.75;
    +
    +        /// <summary>
    +        /// Defines the inset in absolute pixels between the label
    +        /// bounding box and the label text. Default is 3.
    +        /// </summary>
    +        public static int LABEL_INSET = 3;
    +
    +        /// <summary>
    +        /// Default size for markers. Value is 6.
    +        /// </summary>
    +        public static float DEFAULT_MARKERSIZE = 6;
    +
    +        /// <summary>
    +        /// Defines the default width and height for images used in the
    +        /// label shape. Default is 24.
    +        /// </summary>
    +        public static int DEFAULT_IMAGESIZE = 24;
    +
    +        /// <summary>
    +        /// Defines the default opacity for stencils shadows. Default is 1.
    +        /// </summary>
    +        public static int STENCIL_SHADOW_OPACITY = 1;
    +
    +        /// <summary>
    +        /// Defines the default shadow color for stencils. Default is "gray".
    +        /// </summary>
    +        public static String STENCIL_SHADOWCOLOR = "gray";
    +
    +        /// <summary>
    +        /// Defines the color to be used to draw shadows. Default is gray.
    +        /// </summary>
    +        public static Color SHADOWCOLOR = Color.Gray;
    +
    +        /// <summary>
    +        /// Defines the x-offset to be used for shadows. Default is 2.
    +        /// </summary>
    +        public static int SHADOW_OFFSETX = 2;
    +
    +        /// <summary>
    +        /// Defines the y-offset to be used for shadows. Default is 3.
    +        /// </summary>
    +        public static int SHADOW_OFFSETY = 3;
    +
    +        /// <summary>
    +        /// Defines the color to be used to draw shadows in W3C standards. Default
    +        /// is gray.
    +        /// </summary>
    +        public static string W3C_SHADOWCOLOR = "gray";
    +
    +        /// <summary>
    +        /// Defines the length of the horizontal segment of an Entity Relation.
    +        /// This can be overridden using mxConstants.STYLE_SEGMENT style.
    +        /// Default is 30.
    +        /// </summary>
    +        public static int ENTITY_SEGMENT = 30;
    +
    +        /// <summary>
    +        /// Defines the rounding factor for rounded rectangles in percent between
    +        /// 0 and 1. Values should be smaller than 0.5. Default is 0.15.
    +        /// </summary>
    +        public static double RECTANGLE_ROUNDING_FACTOR = 0.15;
    +
    +        /// <summary>
    +        /// Defines the size of the arcs for rounded edges. Default is 10.
    +        /// </summary>
    +        public static double LINE_ARCSIZE = 10;
    +	
    +        /// <summary>
    +        /// Defines the spacing between the arrow shape and its terminals. Default
    +        /// is 10.
    +        /// </summary>
    +        public static int ARROW_SPACING = 10;
    +
    +        /// <summary>
    +        /// Defines the width of the arrow shape. Default is 30.
    +        /// </summary>
    +        public static int ARROW_WIDTH = 30;
    +
    +        /// <summary>
    +        /// Defines the size of the arrowhead in the arrow shape. Default is 30.
    +        /// </summary>
    +        public static int ARROW_SIZE = 30;
    +
    +        /// <summary>
    +        /// Defines the value for none. Default is "none".
    +        /// </summary>
    +        public static string NONE = "none";
    +
    +        /// <summary>
    +        /// Defines the key for the perimeter style.
    +        /// Possible values are the functions defined
    +        /// in mxPerimeter.
    +        /// </summary>
    +	    public static string STYLE_PERIMETER = "perimeter";
    +
    +        /// <summary>
    +        /// Defines the ID of the cell that should be used for computing the
    +        /// perimeter point of the source for an edge. This allows for graphically
    +        /// connecting to a cell while keeping the actual terminal of the edge.
    +        /// </summary>
    +        public static string STYLE_SOURCE_PORT = "sourcePort";
    +
    +        /// <summary>
    +        /// Defines the ID of the cell that should be used for computing the
    +        /// perimeter point of the target for an edge. This allows for graphically
    +        /// connecting to a cell while keeping the actual terminal of the edge.
    +        /// </summary>
    +        public static string STYLE_TARGET_PORT = "targetPort";
    +
    +        /// <summary>
    +        /// Defines the key for the opacity style (0-100).
    +        /// </summary>
    +	    public static string STYLE_OPACITY = "opacity";
    +
    +        /// <summary>
    +        /// Defines the key for the text opacity style (0-100).
    +        /// </summary>
    +        public static string STYLE_TEXT_OPACITY = "textOpacity";
    +
    +        /// <summary>
    +        /// Defines the key for the overflow style. Possible values are "visible",
    +        /// "hidden" and "fill". The default value is "visible". This value
    +        /// specifies how overlapping vertex labels are handles. A value of
    +        /// "visible" will show the complete label. A value of "hidden" will clip
    +        /// the label so that it does not overlap the vertex bounds. A value of
    +        /// "fill" will use the vertex bounds for the label.
    +        /// </summary>
    +        public static string STYLE_OVERFLOW = "overflow";
    +
    +	    /// <summary>
    +	    /// Defines if the connection points on either end of the edge should be
    +        /// computed so that the edge is vertical or horizontal if possible and
    +        /// if the point is not at a fixed location. Default is false. This is
    +        /// used in mxGraph.IsOrthogonal, which also returns true if the edgeStyle
    +        /// of the edge is an elbow or entity.
    +	    /// </summary>
    +	    public static string STYLE_ORTHOGONAL = "orthogonal";
    +
    +	    /// <summary>
    +	    /// Defines the key for the horizontal relative coordinate connection point
    +        /// of an edge with its source terminal.
    +	    /// </summary>
    +	    public static string STYLE_EXIT_X = "exitX";
    +
    +	    /// <summary>
    +	    /// Defines the key for the vertical relative coordinate connection point
    +        /// of an edge with its source terminal.
    +	    /// </summary>
    +	    public static string STYLE_EXIT_Y = "exitY";
    +
    +	    /// <summary>
    +	    /// Defines if the perimeter should be used to find the exact entry point
    +        /// along the perimeter of the source. Possible values are 0 (false) and
    +        /// 1 (true). Default is 1 (true).
    +	    /// </summary>
    +	    public static string STYLE_EXIT_PERIMETER = "exitPerimeter";
    +
    +	    /// <summary>
    +	    /// Defines the key for the horizontal relative coordinate connection point
    +        /// of an edge with its target terminal.
    +	    /// </summary>
    +	    public static string STYLE_ENTRY_X = "entryX";
    +
    +	    /// <summary>
    +	    /// Defines the key for the vertical relative coordinate connection point
    +        /// of an edge with its target terminal.
    +	    /// </summary>
    +	    public static string STYLE_ENTRY_Y = "entryY";
    +
    +	    /// <summary>
    +	    /// Defines if the perimeter should be used to find the exact entry point
    +        /// along the perimeter of the target. Possible values are 0 (false) and
    +        /// 1 (true). Default is 1 (true).
    +	    /// </summary>
    +        public static string STYLE_ENTRY_PERIMETER = "entryPerimeter";
    +
    +        /// <summary>
    +        /// Defines the key for the white-space style. Possible values are "nowrap"
    +        /// and "wrap". The default value is "nowrap". This value specifies how
    +        /// white-space inside a HTML vertex label should be handled. A value of
    +        /// "nowrap" means the text will never wrap to the next line until a
    +        /// linefeed is encountered. A value of "wrap" means text will wrap when
    +        /// necessary.
    +        /// </summary>
    +        public static string STYLE_WHITE_SPACE = "whiteSpace";
    +
    +        /// <summary>
    +        /// Defines the key for the rotation style (0-360).
    +        /// </summary>
    +        public static string STYLE_ROTATION = "rotation";
    +
    +        /// <summary>
    +        /// Defines the key for the fillColor style. The value is a string
    +        /// expression supported by ColorTranslator.FromHtml.
    +        /// </summary>
    +	    public static string STYLE_FILLCOLOR = "fillColor";
    +
    +        /// <summary>
    +        /// Defines the key for the gradientColor style. The value is a string
    +        /// expression supported by ColorTranslator.FromHtml. This is ignored
    +        /// if no fill color is defined.
    +        /// </summary>
    +	    public static string STYLE_GRADIENTCOLOR = "gradientColor";
    +
    +        /// <summary>
    +        /// Defines the key for the gradient direction. Possible values are
    +        /// <i>DIRECTION_EAST</i>, <i>DIRECTION_WEST</i>,
    +        /// <i>DIRECTION_NORTH</i> and <i>DIRECTION_SOUTH</i>. Default
    +        /// is <i>DIRECTION_SOUTH</i>. Generally, and by default in mxGraph,
    +        /// gradient painting is done from the value of <i>STYLE_FILLCOLOR</i>
    +        /// to the value of <i>STYLE_GRADIENTCOLOR</i>. Taking the example of
    +        /// <i>DIRECTION_NORTH</i>, this means <i>STYLE_FILLCOLOR</i>
    +        /// color at the bottom of paint pattern and
    +        /// <i>STYLE_GRADIENTCOLOR</i> at top, with a gradient in-between.
    +        /// </summary>
    +        public static string STYLE_GRADIENT_DIRECTION = "gradientDirection";
    +
    +        /// <summary>
    +        /// Defines the key for the strokeColor style. The value is a string
    +        /// expression supported by ColorTranslator.FromHtml.
    +        /// </summary>
    +	    public static string STYLE_STROKECOLOR = "strokeColor";
    +
    +        /// <summary>
    +        /// Defines the key for the separatorColor style. The value is a string
    +        /// expression supported by ColorTranslator.FromHtml. This style is only
    +        /// used for SHAPE_SWIMLANE shapes.
    +        /// </summary>
    +	    public static string STYLE_SEPARATORCOLOR = "separatorColor";
    +
    +        /// <summary>
    +        /// Defines the key for the strokeWidth style. The type of the value is
    +        /// <i>float</i> and the possible range is any non-negative value.
    +        /// The value reflects the stroke width in pixels.
    +        /// </summary>
    +	    public static string STYLE_STROKEWIDTH = "strokeWidth";
    +
    +        /// <summary>
    +        /// Defines the key for the align style. Possible values are
    +        /// <i>ALIGN_LEFT</i>, <i>ALIGN_CENTER</i> and
    +        /// <i>ALIGN_RIGHT</i>. This value defines how the lines of the label
    +        /// are horizontally aligned. <i>ALIGN_LEFT</i> mean label text lines
    +        /// are aligned to left of the label bounds, <i>ALIGN_RIGHT</i> to the
    +        /// right of the label bounds and <i>ALIGN_CENTER</i> means the
    +        /// center of the text lines are aligned in the center of the label bounds.
    +        /// Note this value doesn't affect the positioning of the overall label
    +        /// bounds relative to the vertex, to move the label bounds horizontally, use
    +        /// <i>STYLE_LABEL_POSITION</i>
    +        /// </summary>
    +	    public static string STYLE_ALIGN = "align";
    +
    +        /// <summary>
    +        /// Defines the key for the verticalAlign style. Possible values are
    +        /// <i>ALIGN_TOP</i>, <i>ALIGN_MIDDLE</i> and
    +        /// <i>ALIGN_BOTTOM</i>. This value defines how the lines of the label
    +        /// are vertically aligned. <i>ALIGN_TOP</i> means the topmost label
    +        /// text line is aligned against the top of the label bounds,
    +        /// <i>ALIGN_BOTTOM</i> means the bottom-most label text line is
    +        /// aligned against the bottom of the label bounds and
    +        /// <i>ALIGN_MIDDLE</i> means there is equal spacing between the
    +        /// topmost text label line and the top of the label bounds and the
    +        /// bottom-most text label line and the bottom of the label bounds. Note
    +        /// this value doesn't affect the positioning of the overall label bounds
    +        /// relative to the vertex, to move the label bounds vertically, use
    +        /// <i>STYLE_VERTICAL_LABEL_POSITION</i>.
    +        /// </summary>
    +	    public static string STYLE_VERTICAL_ALIGN = "verticalAlign";
    +
    +        /// <summary>
    +        /// Defines the key for the horizontal label position of vertices. Possible
    +        /// values are <i>ALIGN_LEFT</i>, <i>ALIGN_CENTER</i> and
    +        /// <i>ALIGN_RIGHT</i>. Default is <i>ALIGN_CENTER</i>. The
    +        /// label align defines the position of the label relative to the cell.
    +        /// <i>ALIGN_LEFT</i> means the entire label bounds is placed
    +        /// completely just to the left of the vertex, <i>ALIGN_RIGHT</i>
    +        /// means adjust to the right and <i>ALIGN_CENTER</i> means the label
    +        /// bounds are vertically aligned with the bounds of the vertex. Note this
    +        /// value doesn't affect the positioning of label within the label bounds,
    +        /// to move the label horizontally within the label bounds, use
    +        /// <i>STYLE_ALIGN</i>.
    +        /// </summary>
    +		public static String STYLE_LABEL_POSITION = "labelPosition";
    +
    +	    /// <summary>
    +	    /// Defines the key for the vertical label position of vertices. Possible
    +        /// values are <i>ALIGN_TOP</i>, <i>ALIGN_BOTTOM</i> and
    +        /// <i>ALIGN_MIDDLE</i>. Default is <i>ALIGN_MIDDLE</i>. The
    +        /// label align defines the position of the label relative to the cell.
    +        /// <i>ALIGN_TOP</i> means the entire label bounds is placed
    +        /// completely just on the top of the vertex, <i>ALIGN_BOTTOM</i>
    +        /// means adjust on the bottom and <i>ALIGN_MIDDLE</i> means the label
    +        /// bounds are horizontally aligned with the bounds of the vertex. Note
    +        /// this value doesn't affect the positioning of label within the label
    +        /// bounds, to move the label vertically within the label bounds, use
    +        /// <i>STYLE_VERTICAL_ALIGN</i>.
    +        /// </summary>
    +		public static String STYLE_VERTICAL_LABEL_POSITION = "verticalLabelPosition";
    +
    +        /// <summary>
    +        /// Defines the key for the align style. Possible values are
    +        /// <i>ALIGN_LEFT</i>, <i>ALIGN_CENTER</i> and
    +        /// <i>ALIGN_RIGHT</i>. The value defines how any image in the vertex
    +        /// label is aligned horizontally within the label bounds of a SHAPE_LABEL
    +        /// shape.
    +        /// </summary>
    +        public static string STYLE_IMAGE_ALIGN = "imageAlign";
    +
    +        /// <summary>
    +        /// Defines the key for the verticalAlign style. Possible values are
    +        /// <i>ALIGN_TOP</i>, <i>ALIGN_MIDDLE</i> and
    +        /// <i>ALIGN_BOTTOM</i>. The value defines how any image in the vertex
    +        /// label is aligned vertically within the label bounds of a SHAPE_LABEL
    +        /// shape.
    +        /// </summary>
    +        public static string STYLE_IMAGE_VERTICAL_ALIGN = "imageVerticalAlign";
    +
    +        /// <summary>
    +        /// Defines the key for the glass style. Possible values are 0 (disabled) and
    +        /// 1(enabled). The default value is 0. This is used in mxLabel.
    +        /// </summary>
    +        public static String STYLE_GLASS = "glass";
    +
    +        /// <summary>
    +        /// Defines the key for the image style. Possible values are any image URL,
    +        /// registered key in mxImageResources or short data URI as defined in
    +        /// mxImageBundle.
    +        /// The type of the value is <i>String</i>. This is the path to the
    +        /// image to image that is to be displayed within the label of a vertex. See
    +        /// mxGraphics2DCanvas.getImageForStyle, loadImage and setImageBasePath on
    +        /// how the image URL is resolved. Finally, mxUtils.loadImage is used for
    +        /// loading the image for a given URL.
    +        /// </summary>
    +	    public static string STYLE_IMAGE = "image";
    +
    +        /// <summary>
    +        /// Defines the key for the imageWidth style. The type of this value is
    +        /// <i>int</i>, the value is the image width in pixels and must be
    +        /// greated than 0.
    +        /// </summary>
    +	    public static string STYLE_IMAGE_WIDTH = "imageWidth";
    +
    +        /// <summary>
    +        /// Defines the key for the imageHeight style The type of this value is
    +        /// <i>int</i>, the value is the image height in pixels and must be
    +        /// greater than 0.
    +        /// </summary>
    +	    public static string STYLE_IMAGE_HEIGHT = "imageHeight";
    +
    +		/// <summary>
    +		/// Defines the key for the image background color. This style is only used
    +        /// for image shapes. Possible values are all HTML color names or HEX codes.
    +		/// </summary>
    +		public static string STYLE_IMAGE_BACKGROUND = "imageBackground";
    +
    +		/// <summary>
    +		/// Defines the key for the image border color. This style is only used for
    +        /// image shapes. Possible values are all HTML color names or HEX codes.
    +		/// </summary>
    +		public static string STYLE_IMAGE_BORDER = "imageBorder";
    +
    +        /// <summary>
    +        /// Defines the key for the horizontal image flip. This style is only used
    +        /// in mxImageShape. Possible values are 0 and 1. Default is 0.
    +        /// </summary>
    +        public static string STYLE_IMAGE_FLIPH = "imageFlipH";
    +
    +        /// <summary>
    +        /// Defines the key for the vertical image flip. This style is only used
    +        /// in mxImageShape. Possible values are 0 and 1. Default is 0.
    +        /// </summary>
    +        public static string STYLE_IMAGE_FLIPV = "imageFlipV";
    +
    +        /// <summary>
    +        /// Defines the key for the horizontal stencil flip. This style is only used
    +        /// for <mxStencilShape>. Possible values are 0 and 1. Default is 0.
    +        /// </summary>
    +        public static String STYLE_STENCIL_FLIPH = "stencilFlipH";
    +
    +        /// <summary>
    +        /// Defines the key for the vertical stencil flip. This style is only used
    +        /// for <mxStencilShape>. Possible values are 0 and 1. Default is 0.
    +        /// </summary>
    +        public static String STYLE_STENCIL_FLIPV = "stencilFlipV";
    +
    +        /// <summary>
    +        /// Defines the key for the noLabel style. If this is true then no
    +        /// label is visible for a given cell. Possible values are true or
    +        /// false (1 or 0). Default is false (0).
    +        /// </summary>
    +        public static String STYLE_NOLABEL = "noLabel";
    +
    +        /// <summary>
    +        /// Defines the key for the noEdgeStyle style. If this is
    +        /// true then no edge style is applied for a given edge.
    +        /// Possible values are true or false (1 or 0).
    +        /// Default is false.
    +        /// </summary>
    +        public static String STYLE_NOEDGESTYLE = "noEdgeStyle";
    +
    +        /// <summary>
    +        /// Defines the key for the label background color. The value is a string
    +        /// expression supported by ColorTranslator.FromHtml.
    +        /// </summary>
    +        public static String STYLE_LABEL_BACKGROUNDCOLOR = "labelBackgroundColor";
    +
    +        /// <summary>
    +        /// Defines the key for the label border color. The value is a string
    +        /// expression supported by ColorTranslator.FromHtml.
    +        /// </summary>
    +        public static String STYLE_LABEL_BORDERCOLOR = "labelBorderColor";
    +
    +        /// <summary>
    +        /// Defines the key for the indicatorShape style.
    +        /// Possible values are any of the SHAPE_*
    +        /// constants.
    +        /// </summary>
    +	    public static string STYLE_INDICATOR_SHAPE = "indicatorShape";
    +
    +        /// <summary>
    +        /// Defines the key for the indicatorImage style.
    +        /// Possible values are any image URL, the type of the value is
    +        /// <i>String</i>.
    +        /// </summary>
    +	    public static string STYLE_INDICATOR_IMAGE = "indicatorImage";
    +
    +        /// <summary>
    +        /// Defines the key for the indicatorColor style. The value is a string
    +        /// expression supported by ColorTranslator.FromHtml.
    +        /// </summary>
    +	    public static string STYLE_INDICATOR_COLOR = "indicatorColor";
    +
    +        /// <summary>
    +        /// Defines the key for the indicatorGradientColor style. The value is a
    +        /// string expression supported byColorTranslator.FromHtml. This style is
    +        /// only supported in SHAPE_LABEL shapes.
    +        /// </summary>
    +	    public static string STYLE_INDICATOR_GRADIENTCOLOR = "indicatorGradientColor";
    +
    +        /// <summary>
    +        /// Defines the key for the indicatorSpacing style (in px).
    +        /// </summary>
    +	    public static string STYLE_INDICATOR_SPACING = "indicatorSpacing";
    +
    +        /// <summary>
    +        /// Defines the key for the indicatorWidth style (in px).
    +        /// </summary>
    +	    public static string STYLE_INDICATOR_WIDTH = "indicatorWidth";
    +
    +        /// <summary>
    +        /// Defines the key for the indicatorHeight style (in px).
    +        /// </summary>
    +	    public static string STYLE_INDICATOR_HEIGHT = "indicatorHeight";
    +
    +        /// <summary>
    +        /// Defines the key for the shadow style. The type of the value is
    +        /// <i>boolean</i>. This style applies to vertices and arrow style
    +        /// edges.
    +        /// </summary>
    +	    public static string STYLE_SHADOW = "shadow";
    +
    +        /// <summary>
    +        /// Defines the key for the segment style. The type of this value is
    +        /// <i>float</i> and the value represents the size of the horizontal
    +        /// segment of the entity relation style. Default is ENTITY_SEGMENT.
    +        /// </summary>
    +        public static String STYLE_SEGMENT = "segment";
    +
    +        /// <summary>
    +        /// Defines the key for the endArrow style.
    +        /// Possible values are all constants in this
    +        /// class that start with ARROW_. This style is
    +        /// supported in the mxConnector shape.
    +        /// </summary>
    +	    public static string STYLE_ENDARROW = "endArrow";
    +
    +        /// <summary>
    +        /// Defines the key for the startArrow style.
    +        /// Possible values are all constants in this
    +        /// class that start with ARROW_.
    +        /// See STYLE_ENDARROW.
    +        /// This style is supported in the mxConnector shape.
    +        /// </summary>
    +	    public static string STYLE_STARTARROW = "startArrow";
    +
    +        /// <summary>
    +        /// Defines the key for the endSize style. The type of this value is
    +        /// <i>float</i> and the value represents the size of the end
    +        /// marker in pixels.
    +        /// </summary>
    +	    public static string STYLE_ENDSIZE = "endSize";
    +
    +        /// <summary>
    +        /// Defines the key for the startSize style. The type of this value is
    +        /// <i>float</i> and the value represents the size of the start marker
    +        /// or the size of the swimlane title region depending on the shape it is
    +        /// used for.
    +        /// </summary>
    +	    public static string STYLE_STARTSIZE = "startSize";
    +
    +        /// <summary>
    +        /// Defines the key for the dashed style. The type of this value is
    +        /// <i>boolean</i> and the value determines whether or not an edge or
    +        /// border is drawn with a dashed pattern along the line.
    +        /// </summary>
    +	    public static string STYLE_DASHED = "dashed";
    +
    +        /// <summary>
    +        /// Defines the key for the rounded style. The type of this value is
    +        /// <i>boolean</i>. For edges this determines whether or not joins
    +        /// between edges segments are smoothed to a rounded finish. For vertices
    +        /// that have the rectangle shape, this determines whether or not the
    +        /// rectangle is rounded.
    +        /// </summary>
    +	    public static string STYLE_ROUNDED = "rounded";
    +
    +        /// <summary>
    +        /// Defines the key for the source perimeter spacing. The type of this value
    +        /// is <i>double</i>. This is the distance between the source connection
    +        /// point of an edge and the perimeter of the source vertex in pixels. This
    +        /// style only applies to edges.
    +        /// </summary>
    +        public static string STYLE_SOURCE_PERIMETER_SPACING = "sourcePerimeterSpacing";
    +
    +        /// <summary>
    +        /// Defines the key for the target perimeter spacing. The type of this value
    +        /// is <i>double</i>. This is the distance between the target connection
    +        /// point of an edge and the perimeter of the target vertex in pixels. This
    +        /// style only applies to edges.
    +        /// </summary>
    +        public static string STYLE_TARGET_PERIMETER_SPACING = "targetPerimeterSpacing";
    +
    +        /// <summary>
    +        /// Defines the key for the perimeter spacing. This is the distance between
    +        /// the connection point and the perimeter in pixels. When used in a vertex
    +        /// style, this applies to all incoming edges to floating ports (edges that
    +        /// terminate on the perimeter of the vertex). When used in an edge style,
    +        /// this spacing applies to the source and target separately, if they
    +        /// terminate in floating ports (on the perimeter of the vertex).
    +        /// </summary>
    +	    public static string STYLE_PERIMETER_SPACING = "perimeterSpacing";
    +
    +        /// <summary>
    +        /// Defines the key for the spacing. The value represents the spacing, in
    +        /// pixels, added to each side of a label in a vertex (style applies to
    +        /// vertices only).
    +        /// </summary>
    +	    public static string STYLE_SPACING = "spacing";
    +
    +        /// <summary>
    +        /// Defines the key for the spacingTop style. The value represents the
    +        /// spacing, in pixels, added to the top side of a label in a vertex (style
    +        /// applies to vertices only).
    +        /// </summary>
    +	    public static string STYLE_SPACING_TOP = "spacingTop";
    +
    +        /// <summary>
    +        /// Defines the key for the spacingLeft style. The value represents the
    +        /// spacing, in pixels, added to the left side of a label in a vertex (style
    +        /// applies to vertices only).
    +        /// </summary>
    +        public static string STYLE_SPACING_LEFT = "spacingLeft";
    +
    +        /// <summary>
    +        /// Defines the key for the spacingBottom style The value represents the
    +        /// spacing, in pixels, added to the bottom side of a label in a vertex
    +        /// (style applies to vertices only).
    +        /// </summary>
    +        public static string STYLE_SPACING_BOTTOM = "spacingBottom";
    +
    +        /// <summary>
    +        /// Defines the key for the spacingRight style The value represents the
    +        /// spacing, in pixels, added to the right side of a label in a vertex (style
    +        /// applies to vertices only).
    +        /// </summary>
    +        public static string STYLE_SPACING_RIGHT = "spacingRight";
    +
    +        /// <summary>
    +        /// Defines the key for the horizontal style. Possible values are
    +        /// <i>true</i> or <i>false</i>. This value only applies to
    +        /// vertices. If the <i>STYLE_SHAPE</i> is <i>SHAPE_SWIMLANE</i>
    +        /// a value of <i>false</i> indicates that the swimlane should be drawn
    +        /// vertically, <i>true</i> indicates to draw it horizontally. If the
    +        /// shape style does not indicate that this vertex is a swimlane, this value
    +        /// affects only whether the label is drawn horizontally or vertically.
    +        /// </summary>
    +	    public static string STYLE_HORIZONTAL = "horizontal";
    +
    +        /// <summary>
    +        /// Defines the key for the direction style. The direction style is used to
    +        /// specify the direction of certain shapes (eg. <i>mxTriangle</i>).
    +        /// Possible values are <i>DIRECTION_EAST</i> (default),
    +        /// <i>DIRECTION_WEST</i>, <i>DIRECTION_NORTH</i> and
    +        /// <i>DIRECTION_SOUTH</i>. This value only applies to vertices.
    +        /// </summary>
    +        public static string STYLE_DIRECTION = "direction";
    +
    +        /// <summary>
    +        /// Defines the key for the elbow style. Possible values are
    +        /// <i>ELBOW_HORIZONTAL</i> and <i>ELBOW_VERTICAL</i>. Default is
    +        /// <i>ELBOW_HORIZONTAL</i>. This defines how the three segment
    +        /// orthogonal edge style leaves its terminal vertices. The vertical style
    +        /// leaves the terminal vertices at the top and bottom sides.
    +        /// </summary>
    +        public static string STYLE_ELBOW = "elbow";
    +
    +        /// <summary>
    +        /// Defines the key for the fontColor style. The value is type
    +        /// <i>String</i> and of the expression supported by
    +        /// ColorTranslator.FromHtml.
    +        /// </summary>
    +	    public static string STYLE_FONTCOLOR = "fontColor";
    +
    +        /// <summary>
    +        /// Defines the key for the fontFamily style. Possible values are names such
    +        /// as Arial; Dialog; Verdana; Times New Roman. The value is of type
    +        /// <i>String</i>.
    +        /// </summary>
    +	    public static string STYLE_FONTFAMILY = "fontFamily";
    +
    +        /// <summary>
    +        /// Defines the key for the fontSize style (in points). The type of the value
    +        /// is <i>int</i>.
    +        /// </summary>
    +	    public static string STYLE_FONTSIZE = "fontSize";
    +
    +        /// <summary>
    +        /// Defines the key for the fontStyle style. Values may be any logical AND
    +        /// (sum) of FONT_BOLD, FONT_ITALIC, FONT_UNDERLINE and FONT_SHADOW. The type
    +        /// of the value is <i>int</i>.
    +        /// </summary>
    +	    public static string STYLE_FONTSTYLE = "fontStyle";
    +
    +        /// <summary>
    +        /// Defines the key for the shape style.
    +        /// Possible values are any of the SHAPE_*
    +        /// constants.
    +        /// </summary>
    +	    public static string STYLE_SHAPE = "shape";
    +
    +        /// <summary>
    +        /// Takes a function that creates points. Possible values are the
    +        /// functions defined in mxEdgeStyle.
    +        /// </summary>
    +	    public static string STYLE_EDGE = "edgeStyle";
    +
    +        /// <summary>
    +        /// Defines the key for the loop style. Possible values are the
    +        /// functions defined in mxEdgeStyle.
    +        /// </summary>
    +        public static string STYLE_LOOP = "loopStyle";
    +
    +        /// <summary>
    +        /// Defines the key for the horizontal routing center. Possible values are
    +        /// between -0.5 and 0.5. This is the relative offset from the center used
    +        /// for connecting edges. The type of this value is <i>float</i>.
    +        /// </summary>
    +        public static String STYLE_ROUTING_CENTER_X = "routingCenterX";
    +
    +        /// <summary>
    +        /// Defines the key for the vertical routing center. Possible values are
    +        /// between -0.5 and 0.5. This is the relative offset from the center used
    +        /// for connecting edges. The type of this value is <i>float</i>.
    +        /// </summary>
    +        public static String STYLE_ROUTING_CENTER_Y = "routingCenterY";
    +
    +        /// <summary>
    +        /// FONT_BOLD
    +        /// </summary>
    +        public const int FONT_BOLD = 1;
    +
    +        /// <summary>
    +        /// FONT_ITALIC
    +        /// </summary>
    +        public const int FONT_ITALIC = 2;
    +
    +        /// <summary>
    +        /// FONT_UNDERLINE
    +        /// </summary>
    +        public const int FONT_UNDERLINE = 4;
    +
    +        /// <summary>
    +        /// FONT_SHADOW
    +        /// </summary>
    +        public const int FONT_SHADOW = 8;
    +
    +        /// <summary>
    +        /// SHAPE_RECTANGLE
    +        /// </summary>
    +        public const string SHAPE_RECTANGLE = "rectangle";
    +
    +        /// <summary>
    +        /// SHAPE_ELLIPSE
    +        /// </summary>
    +        public const string SHAPE_ELLIPSE = "ellipse";
    +
    +        /// <summary>
    +        /// SHAPE_DOUBLE_ELLIPSE
    +        /// </summary>
    +        public const string SHAPE_DOUBLE_ELLIPSE = "doubleEllipse";
    +
    +        /// <summary>
    +        /// SHAPE_RHOMBUS
    +        /// </summary>
    +        public const string SHAPE_RHOMBUS = "rhombus";
    +
    +        /// <summary>
    +        /// SHAPE_LINE
    +        /// </summary>
    +        public const string SHAPE_LINE = "line";
    +
    +        /// <summary>
    +        /// SHAPE_IMAGE
    +        /// </summary>
    +        public const string SHAPE_IMAGE = "image";
    +    	
    +        /// <summary>
    +        /// SHAPE_ARROW
    +        /// </summary>
    +        public const string SHAPE_ARROW = "arrow";
    +    	
    +        /// <summary>
    +        /// SHAPE_LABEL
    +        /// </summary>
    +        public const string SHAPE_LABEL = "label";
    +    	
    +        /// <summary>
    +        /// SHAPE_CYLINDER
    +        /// </summary>
    +        public const string SHAPE_CYLINDER = "cylinder";
    +    	
    +        /// <summary>
    +        /// SHAPE_SWIMLANE
    +        /// </summary>
    +        public const string SHAPE_SWIMLANE = "swimlane";
    +    		
    +        /// <summary>
    +        /// SHAPE_CONNECTOR
    +        /// </summary>
    +        public const string SHAPE_CONNECTOR = "connector";
    +    		
    +        /// <summary>
    +        /// SHAPE_ACTOR
    +        /// </summary>
    +        public const string SHAPE_ACTOR = "actor";
    +
    +        /// <summary>
    +        /// SHAPE_CLOUD
    +        /// </summary>
    +        public const string SHAPE_CLOUD = "cloud";
    +
    +        /// <summary>
    +        /// SHAPE_TRIANGLE
    +        /// </summary>
    +        public const string SHAPE_TRIANGLE = "triangle";
    +
    +        /// <summary>
    +        /// SHAPE_HEXAGON
    +        /// </summary>
    +        public const string SHAPE_HEXAGON = "hexagon";
    +
    +        /// <summary>
    +        /// ARROW_CLASSIC
    +        /// </summary>
    +        public const string ARROW_CLASSIC = "classic";
    +
    +        /// <summary>
    +        /// ARROW_BLOCK
    +        /// </summary>
    +        public const string ARROW_BLOCK = "block";
    +
    +        /// <summary>
    +        /// ARROW_OPEN
    +        /// </summary>
    +        public const string ARROW_OPEN = "open";
    +
    +        /// <summary>
    +        /// ARROW_BLOCK
    +        /// </summary>
    +        public const string ARROW_OVAL = "oval";
    +
    +        /// <summary>
    +        /// ARROW_OPEN
    +        /// </summary>
    +        public const string ARROW_DIAMOND = "diamond";
    +
    +        /// <summary>
    +        /// ALIGN_LEFT
    +        /// </summary>
    +        public const string ALIGN_LEFT = "left";
    +
    +        /// <summary>
    +        /// ALIGN_CENTER
    +        /// </summary>
    +        public const string ALIGN_CENTER = "center";
    +
    +        /// <summary>
    +        /// ALIGN_RIGHT
    +        /// </summary>
    +        public const string ALIGN_RIGHT = "right";
    +
    +        /// <summary>
    +        /// ALIGN_TOP
    +        /// </summary>
    +        public const string ALIGN_TOP = "top";
    +
    +        /// <summary>
    +        /// ALIGN_MIDDLE
    +        /// </summary>
    +        public const string ALIGN_MIDDLE = "middle";
    +
    +        /// <summary>
    +        /// ALIGN_BOTTOM
    +        /// </summary>
    +	    public const string ALIGN_BOTTOM = "bottom";
    +
    +	    /// <summary>
    +        /// DIRECTION_NORTH
    +	    /// </summary>
    +	    public const string DIRECTION_NORTH = "north";
    +
    +	    /// <summary>
    +        /// DIRECTION_SOUTH
    +	    /// </summary>
    +	    public const string DIRECTION_SOUTH = "south";
    +
    +	    /// <summary>
    +        /// DIRECTION_EAST
    +	    /// </summary>
    +	    public const string DIRECTION_EAST = "east";
    +
    +	    /// <summary>
    +        /// DIRECTION_WEST
    +	    /// </summary>
    +        public const string DIRECTION_WEST = "west";
    +
    +        /// <summary>
    +        /// ELBOW_VERTICAL
    +        /// </summary>
    +        public const string ELBOW_VERTICAL = "vertical";
    +
    +        /// <summary>
    +        /// ELBOW_HORIZONTAL
    +        /// </summary>
    +        public const string ELBOW_HORIZONTAL = "horizontal";
    +
    +	    /// <summary>
    +	    /// Name of the elbow edge style. Can be used as a string value
    +        /// for the STYLE_EDGE style.
    +	    /// </summary>
    +	    public const string EDGESTYLE_ELBOW = "elbowEdgeStyle";
    +
    +	    /// <summary>
    +	    /// Name of the entity relation edge style. Can be used as a string value
    +        /// for the STYLE_EDGE style.
    +	    /// </summary>
    +	    public const string EDGESTYLE_ENTITY_RELATION = "entityRelationEdgeStyle";
    +
    +	    /// <summary>
    +	    /// Name of the loop edge style. Can be used as a string value
    +        /// for the STYLE_EDGE style.
    +	    /// </summary>
    +	    public const string EDGESTYLE_LOOP = "loopEdgeStyle";
    +
    +	    /// <summary>
    +	    /// Name of the side to side edge style. Can be used as a string value
    +        /// for the STYLE_EDGE style.
    +	    /// </summary>
    +	    public const string EDGESTYLE_SIDETOSIDE = "sideToSideEdgeStyle";
    +
    +	    /// <summary>
    +	    /// Name of the top to bottom edge style. Can be used as a string value
    +        /// for the STYLE_EDGE style.
    +	    /// </summary>
    +	    public const string EDGESTYLE_TOPTOBOTTOM = "topToBottomEdgeStyle";
    +
    +	    /// <summary>
    +	    /// Name of the ellipse perimeter. Can be used as a string value
    +        /// for the STYLE_PERIMETER style.
    +	    /// </summary>
    +	    public const string PERIMETER_ELLIPSE = "ellipsePerimeter";
    +
    +	    /// <summary>
    +	    /// Name of the rectangle perimeter. Can be used as a string value
    +        /// for the STYLE_PERIMETER style.
    +	    /// </summary>
    +	    public const string PERIMETER_RECTANGLE = "rectanglePerimeter";
    +
    +	    /// <summary>
    +	    /// Name of the rhombus perimeter. Can be used as a string value
    +        /// for the STYLE_PERIMETER style.
    +	    /// </summary>
    +	    public const string PERIMETER_RHOMBUS = "rhombusPerimeter";
    +
    +	    /// <summary>
    +	    /// Name of the triangle perimeter. Can be used as a string value
    +        /// for the STYLE_PERIMETER style.
    +	    /// </summary>
    +        public const string PERIMETER_TRIANGLE = "trianglePerimeter";
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/utils/mxImageBundle.cs b/dotnet/src/utils/mxImageBundle.cs
    new file mode 100644
    index 000000000..b3bb14591
    --- /dev/null
    +++ b/dotnet/src/utils/mxImageBundle.cs
    @@ -0,0 +1,79 @@
    +// $Id: mxImageBundle.cs,v 1.3 2010-12-01 11:48:46 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Maps from keys to base64 encoded images or file locations. All values must
    +    /// be URLs or use the format data:image/format followed by a comma and the base64
    +    /// encoded image data, eg. "data:image/gif,XYZ", where XYZ is the base64 encoded
    +    /// image data.
    +    /// 
    +    /// To add a new image bundle to an existing graph, the following code is used:
    +    /// 
    +    /// mxImageBundle bundle = new mxImageBundle();
    +    /// bundle.PutImage("myImage", "data:image/gif,R0lGODlhEAAQAMIGAAAAAICAAICAgP" +
    +    ///   "//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAA" +
    +    ///   "EAAQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hi" +
    +    ///   "laSSASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs=");
    +    /// graph.AddImageBundle(bundle);
    +    /// 
    +    /// The image can then be referenced in any cell style using image=myImage.
    +    /// 
    +    /// To convert a given Image to a base64 encoded String, the following
    +    /// code can be used:
    +    ///
    +    /// MemoryStream ms = new System.IO.MemoryStream();
    +    /// image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
    +    /// byte[] data = ms.ToArray();
    +    /// Console.WriteLine("base64="+Convert.ToBase64String(data));
    +    /// 
    +    /// The value is decoded in mxUtils.LoadImage. The keys for images are
    +    /// resolved and the short format above is converted to a data URI in
    +    /// mxGraph.postProcessCellStyle.
    +    /// </summary>
    +    public class mxImageBundle
    +    {
    +
    +        /// <summary>
    +        /// Maps from keys to images.
    +        /// </summary>
    +        protected Dictionary<String, String> images = new Dictionary<String, String>();
    +
    +        /// <summary>
    +        /// Returns the images.
    +        /// </summary>
    +        public Dictionary<String, String> Images
    +        {
    +            get { return images; }
    +        }
    +
    +        /// <summary>
    +        /// Adds the specified entry to the map.
    +        /// </summary>
    +        public void PutImage(String key, String value)
    +        {
    +            images[key] = value;
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for the given key.
    +        /// </summary>
    +        public String GetImage(String key)
    +        {
    +            if (images.ContainsKey(key))
    +            {
    +                return images[key];
    +            }
    +
    +            return null;
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/utils/mxPoint.cs b/dotnet/src/utils/mxPoint.cs
    new file mode 100644
    index 000000000..a2ce4b2af
    --- /dev/null
    +++ b/dotnet/src/utils/mxPoint.cs
    @@ -0,0 +1,108 @@
    +// $Id: mxPoint.cs,v 1.12 2009-11-13 09:28:03 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Implements a 2-dimensional point with double precision coordinates.
    +    /// </summary>
    +    public class mxPoint
    +    {
    +
    +        /// <summary>
    +        /// Holds the x-coordinate of the point. Default is 0.
    +        /// </summary>
    +        protected double x;
    +
    +        /// <summary>
    +        /// Holds the y-coordinate of the point. Default is 0.
    +        /// </summary>
    +        protected double y;
    +
    +        /// <summary>
    +        /// Constructs a new point at (0, 0).
    +        /// </summary>
    +        public mxPoint(): this(0, 0) {}
    +
    +        /// <summary>
    +        /// Constructs a new point at the location of the given point.
    +        /// </summary>
    +        /// <param name="point">Point that specifies the location.</param>
    +        public mxPoint(Point point) : this(point.X, point.Y) { }
    +
    +        /// <summary>
    +        /// Constructs a new point at the location of the given point.
    +        /// </summary>
    +        /// <param name="point">Point that specifies the location.</param>
    +        public mxPoint(mxPoint point): this(point.X, point.Y) {}
    +
    +        /// <summary>
    +        /// Constructs a new point at (x, y).
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the point to be created.</param>
    +        /// <param name="y">Y-coordinate of the point to be created.</param>
    +        public mxPoint(double x, double y)
    +        {
    +            X = x;
    +            Y = y;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the x-coordinate of the point.
    +        /// </summary>
    +        public double X
    +        {
    +            get { return x; }
    +            set { x = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the y-coordinate of the point.
    +        /// </summary>
    +        public double Y
    +        {
    +            get { return y; }
    +            set { y = value; }
    +        }
    +
    +        /// <summary>
    +        /// Returns the coordinates as a new point.
    +        /// </summary>
    +        /// <returns>Returns a new point for the location.</returns>
    +        public Point GetPoint()
    +        {
    +            return new Point((int) Math.Round(x), (int) Math.Round(y));
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given object equals this point.
    +        /// </summary>
    +        /// <returns>Returns true if obj is equal.</returns>
    +        new public Boolean Equals(Object obj)
    +        {
    +            if (obj is mxPoint)
    +            {
    +                mxPoint pt = (mxPoint)obj;
    +
    +                return pt.X == X &&
    +                    pt.Y == Y;
    +            }
    +
    +            return false;
    +        }
    +        /// <summary>
    +        /// Returns a new instance of the same point.
    +        /// </summary>
    +        /// <returns>Returns a clone of the point.</returns>
    +        public mxPoint Clone()
    +        {
    +            return new mxPoint(this);
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/utils/mxRectangle.cs b/dotnet/src/utils/mxRectangle.cs
    new file mode 100644
    index 000000000..86982e9ae
    --- /dev/null
    +++ b/dotnet/src/utils/mxRectangle.cs
    @@ -0,0 +1,196 @@
    +// $Id: mxRectangle.cs,v 1.19 2010-12-08 12:46:03 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Implements a 2-dimensional rectangle with double precision coordinates.
    +    /// </summary>
    +    public class mxRectangle : mxPoint
    +    {
    +
    +        /// <summary>
    +        /// Holds the width. Default is 0.
    +        /// </summary>
    +        protected double width;
    +
    +        /// <summary>
    +        /// Holds the height. Default is 0.
    +        /// </summary>
    +        protected double height;
    +
    +        /// <summary>
    +        /// Constructs a new rectangle at (0, 0) with the width and height set to 0.
    +        /// </summary>
    +        public mxRectangle(): this(0, 0, 0, 0) {}
    +
    +        /// <summary>
    +        /// Constructs a copy of the given rectangle.
    +        /// </summary>
    +        /// <param name="rect">Rectangle to construct a copy of.</param>
    +        public mxRectangle(mxRectangle rect)
    +            : this(rect.X, rect.Y, rect.Width, rect.Height) { }
    +
    +        /// <summary>
    +        /// Constructs a copy of the given rectangle.
    +        /// </summary>
    +        /// <param name="rect">Rectangle to construct a copy of.</param>
    +        public mxRectangle(Rectangle rect)
    +            : this(rect.X, rect.Y, rect.Width, rect.Height) { }
    +
    +        /// <summary>
    +        /// Constructs a rectangle using the given parameters.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the new rectangle.</param>
    +        /// <param name="y">Y-coordinate of the new rectangle.</param>
    +        /// <param name="width">Width of the new rectangle.</param>
    +        /// <param name="height">Height of the new rectangle.</param>
    +        public mxRectangle(double x, double y, double width, double height): base(x, y)
    +        {
    +            Width = width;
    +            Height = height;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the width of the rectangle.
    +        /// </summary>
    +        public double Width
    +        {
    +            get { return width; }
    +            set { width = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the height of the rectangle.
    +        /// </summary>
    +        public double Height
    +        {
    +            get { return height; }
    +            set { height = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets this rectangle to the specified values
    +        /// </summary>
    +        public void setRect(double x, double y, double w, double h)
    +        {
    +            this.x = x;
    +            this.y = y;
    +            this.width = w;
    +            this.height = h;
    +        }
    +
    +        /// <summary>
    +        /// Returns the x-coordinate of the center.
    +        /// </summary>
    +        /// <returns>Returns the x-coordinate of the center.</returns>
    +        public double GetCenterX()
    +        {
    +            return X + Width / 2;
    +        }
    +
    +        /// <summary>
    +        /// Returns the y-coordinate of the center.
    +        /// </summary>
    +        /// <returns>Returns the y-coordinate of the center.</returns>
    +        public double GetCenterY()
    +        {
    +            return Y + Height / 2;
    +        }
    +
    +        /// <summary>
    +        /// Adds the given rectangle to this rectangle.
    +        /// </summary>
    +        public void Add(mxRectangle rect)
    +        {
    +            if (rect != null)
    +            {
    +                double minX = Math.Min(x, rect.x);
    +                double minY = Math.Min(y, rect.y);
    +                double maxX = Math.Max(x + width, rect.x + rect.width);
    +                double maxY = Math.Max(y + height, rect.y + rect.height);
    +
    +                x = minX;
    +                y = minY;
    +                width = maxX - minX;
    +                height = maxY - minY;
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Grows the rectangle by the given amount, that is, this method subtracts
    +        /// the given amount from the x- and y-coordinates and adds twice the amount
    +        /// to the width and height.
    +        /// </summary>
    +        /// <param name="amount">Amount by which the rectangle should be grown.</param>
    +        public void Grow(double amount)
    +        {
    +            x -= amount;
    +            y -= amount;
    +            width += 2 * amount;
    +            height += 2 * amount;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if this rectangle contains the given point (x, y).
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the point.</param>
    +        /// <param name="y">Y-coordinate of the point.</param>
    +        /// <returns>Returns true if (x, y) lies within the given area.</returns>
    +        public bool Contains(double x, double y)
    +        {
    +            return (this.x <= x &&
    +                    this.x + width >= x &&
    +                    this.y <= y &&
    +                    this.y + height >= y);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounds as a new rectangle.
    +        /// </summary>
    +        /// <returns>Returns a new rectangle for the bounds.</returns>
    +        public Rectangle GetRectangle()
    +        {
    +            int ix = (int)Math.Round(x);
    +            int iy = (int)Math.Round(y);
    +            int iw = (int)Math.Round(width - ix + x);
    +            int ih = (int)Math.Round(height - iy + y);
    +
    +            return new Rectangle(ix, iy, iw, ih);
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given object equals this rectangle.
    +        /// </summary>
    +        /// <returns>Returns true if obj is equal.</returns>
    +        new public Boolean Equals(Object obj)
    +        {
    +            if (obj is mxRectangle)
    +            {
    +                mxRectangle rect = (mxRectangle) obj;
    +
    +                return rect.X == X &&
    +                    rect.Y == Y &&
    +                    rect.Width == Width &&
    +                    rect.Height == height;
    +            }
    +
    +            return false;
    +        }
    +
    +        /// <summary>
    +        /// Returns a new instance of the same rectangle.
    +        /// </summary>
    +        /// <returns>Returns a clone of the rectangle.</returns>
    +        new public mxRectangle Clone()
    +        {
    +            return new mxRectangle(this);
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/utils/mxUtils.cs b/dotnet/src/utils/mxUtils.cs
    new file mode 100644
    index 000000000..838e2fbda
    --- /dev/null
    +++ b/dotnet/src/utils/mxUtils.cs
    @@ -0,0 +1,1450 @@
    +// $Id: mxUtils.cs,v 1.60 2012-03-24 11:58:09 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Diagnostics;
    +using System.IO;
    +using System.Net;
    +using System.Xml;
    +using System.Text;
    +using System.Drawing;
    +using System.Security.Cryptography;
    +using System.Windows.Forms;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Contains various helper methods for use with mxGraph.
    +    /// </summary>
    +    public class mxUtils
    +    {
    +
    +        /// <summary>
    +        /// Returns the size of the given label.
    +        /// </summary>
    +        public static mxRectangle GetLabelSize(string label, Dictionary<string, Object> style, int width)
    +        {
    +            return GetSizeForString(label, GetFont(style), width);
    +        }
    +
    +        /// <summary>
    +        /// Returns the paint bounds for the given label.
    +        /// </summary>
    +        /// <returns></returns>
    +        public static mxRectangle GetLabelPaintBounds(String label,
    +            Dictionary<string, Object> style, bool isHtml, mxPoint offset,
    +            mxRectangle vertexBounds, double scale)
    +        {
    +            bool horizontal = mxUtils.IsTrue(style, mxConstants.STYLE_HORIZONTAL, true);
    +            int w = 0;
    +
    +            if (vertexBounds != null &&
    +                GetString(style, mxConstants.STYLE_WHITE_SPACE, "nowrap").Equals("wrap"))
    +            {
    +                if (horizontal)
    +                {
    +                    w = (int)(vertexBounds.Width / scale);
    +                }
    +                else
    +                {
    +                    w = (int)(vertexBounds.Height / scale);
    +                }
    +            }
    +
    +            mxRectangle size = mxUtils.GetLabelSize(label, style, w);
    +
    +            double x = offset.X;
    +            double y = offset.Y;
    +            double width = 0;
    +            double height = 0;
    +
    +            if (vertexBounds != null)
    +            {
    +                x += vertexBounds.X;
    +                y += vertexBounds.Y;
    +
    +                // Limits the label to the swimlane title
    +                if (mxUtils.GetString(style, mxConstants.STYLE_SHAPE, "").Equals(
    +                    mxConstants.SHAPE_SWIMLANE))
    +                {
    +                    double start = mxUtils.GetDouble(style, mxConstants.STYLE_STARTSIZE,
    +                        mxConstants.DEFAULT_STARTSIZE) * scale;
    +
    +                    if (horizontal)
    +                    {
    +                        width += vertexBounds.Width;
    +                        height += start;
    +                    }
    +                    else
    +                    {
    +                        width += start;
    +                        height += vertexBounds.Height;
    +                    }
    +                }
    +                else
    +                {
    +                    width += vertexBounds.Width;
    +                    height += vertexBounds.Height;
    +                }
    +            }
    +
    +            return mxUtils.GetScaledLabelBounds(x, y,
    +                size, width, height, style, scale);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounds for a label for the given location and size, taking
    +        /// into account the alignment and spacing in the specified style, as well
    +        /// as the width and height of the rectangle that contains the label.
    +        /// (For edge labels this width and height is 0.) The scale is used to scale
    +        /// the given size and the spacings in the specified style.
    +        /// </summary>
    +        public static mxRectangle GetScaledLabelBounds(double x, double y, mxRectangle size,
    +            double outerWidth, double outerHeight, Dictionary<string, Object> style, double scale)
    +        {
    +            // Adds an inset of 3 pixels
    +            double inset = mxConstants.LABEL_INSET* scale;
    +
    +            // Scales the size of the label
    +            double width = size.Width * scale + 2 * inset;
    +            double height = size.Height * scale;
    +
    +            // Gets the global spacing and orientation
    +            bool horizontal = IsTrue(style, mxConstants.STYLE_HORIZONTAL, true);
    +            int spacing = (int)(GetInt(style, mxConstants.STYLE_SPACING) * scale);
    +
    +            // Gets the alignment settings
    +            Object align = GetString(style, mxConstants.STYLE_ALIGN,
    +                    mxConstants.ALIGN_CENTER);
    +            Object valign = GetString(style, mxConstants.STYLE_VERTICAL_ALIGN,
    +                    mxConstants.ALIGN_MIDDLE);
    +
    +            // Gets the vertical spacing
    +            int top = (int)(GetInt(style, mxConstants.STYLE_SPACING_TOP) * scale);
    +            int bottom = (int)(GetInt(style,
    +                    mxConstants.STYLE_SPACING_BOTTOM) * scale);
    +
    +            // Gets the horizontal spacing
    +            int left = (int)(GetInt(style, mxConstants.STYLE_SPACING_LEFT) * scale);
    +            int right = (int)(GetInt(style,
    +                    mxConstants.STYLE_SPACING_RIGHT) * scale);
    +
    +            // Applies the orientation to the spacings
    +            if (!horizontal)
    +            {
    +                int tmp = top;
    +                top = right;
    +                right = bottom;
    +                bottom = left;
    +                left = tmp;
    +
    +                double tmp2 = width;
    +                width = height;
    +                height = tmp2;
    +            }
    +
    +            // Computes the position of the label for the horizontal alignment
    +            if ((horizontal && align.Equals(mxConstants.ALIGN_CENTER))
    +                    || (!horizontal && valign.Equals(mxConstants.ALIGN_MIDDLE)))
    +            {
    +                x += (outerWidth - width) / 2 + left - right;
    +            }
    +            else if ((horizontal && align.Equals(mxConstants.ALIGN_RIGHT))
    +                    || (!horizontal && valign.Equals(mxConstants.ALIGN_BOTTOM)))
    +            {
    +                x += outerWidth - width - spacing - right;
    +            }
    +            else
    +            {
    +                x += spacing + left;
    +            }
    +
    +            // Computes the position of the label for the vertical alignment
    +            if ((!horizontal && align.Equals(mxConstants.ALIGN_CENTER))
    +                    || (horizontal && valign.Equals(mxConstants.ALIGN_MIDDLE)))
    +            {
    +                y += (outerHeight - height) / 2 + top - bottom;
    +            }
    +            else if ((!horizontal && align.Equals(mxConstants.ALIGN_LEFT))
    +                    || (horizontal && valign.Equals(mxConstants.ALIGN_BOTTOM)))
    +            {
    +                y += outerHeight - height - spacing - bottom;
    +            }
    +            else
    +            {
    +                y += spacing + top;
    +            }
    +
    +            return new mxRectangle(x, y, width, height);
    +        }
    +
    +        /// <summary>
    +        /// Returns the size of the given text.
    +        /// </summary>
    +        /// <param name="text">String whose size should be returned.</param>
    +        /// <param name="font">Specifies the font that should be used.</param>
    +        /// <returns>Returns the size of the given text.</returns>
    +        public static mxRectangle GetSizeForString(String text, Font font)
    +        {
    +            return GetSizeForString(text, font, 0);
    +        }
    +
    +        /// <summary>
    +        /// Returns an mxRectangle with the size (width and height in pixels) of
    +        /// the given text.
    +        /// </summary>
    +        /// <param name="text">String whose size should be returned.</param>
    +        /// <param name="font">Specifies the font that should be used.</param>
    +        /// <param name="width">Specifies the width of the text block for word wrapping.</param>
    +        /// <returns>Returns the size of the given text.</returns>
    +        public static mxRectangle GetSizeForString(String text, Font font, int width)
    +        {
    +            TextFormatFlags flags = TextFormatFlags.Default;
    +
    +            if (width > 0)
    +            {
    +                flags |= TextFormatFlags.WordBreak;
    +            }
    +
    +            Size proposedSize = new Size(width, 0);
    +            Size result = TextRenderer.MeasureText(text, font, proposedSize, flags);
    +
    +            return new mxRectangle(0, 0, result.Width, result.Height);
    +        }
    +
    +        /// <summary>
    +        /// Converts the given degree to radians.
    +        /// </summary>
    +        public static double ToRadians(double deg)
    +        {
    +            return Math.PI * deg / 180.0;
    +        }
    +
    +        /// <summary>
    +        /// Converts the given arc to a series of curves.
    +        /// </summary>
    +        /// <param name="x0"></param>
    +        /// <param name="y0"></param>
    +        /// <param name="r1"></param>
    +        /// <param name="r2"></param>
    +        /// <param name="angle"></param>
    +        /// <param name="largeArcFlag"></param>
    +        /// <param name="sweepFlag"></param>
    +        /// <param name="x"></param>
    +        /// <param name="y"></param>
    +        /// <returns></returns>
    +        public static double[] ArcToCurves(double x0, double y0, double r1, double r2, double angle, double largeArcFlag, double sweepFlag, double x, double y)
    +        {
    +            x -= x0;
    +            y -= y0;
    +
    +            if (r1 == 0 || r2 == 0)
    +            {
    +                return new double[0];
    +            }
    +
    +            double fS = sweepFlag;
    +            double psai = angle;
    +            r1 = Math.Abs(r1);
    +            r2 = Math.Abs(r2);
    +            double ctx = -x / 2;
    +            double cty = -y / 2;
    +            double cpsi = Math.Cos(psai * Math.PI / 180);
    +            double spsi = Math.Sin(psai * Math.PI / 180);
    +            double rxd = cpsi * ctx + spsi * cty;
    +            double ryd = -1 * spsi * ctx + cpsi * cty;
    +            double rxdd = rxd * rxd;
    +            double rydd = ryd * ryd;
    +            double r1x = r1 * r1;
    +            double r2y = r2 * r2;
    +            double lamda = rxdd / r1x + rydd / r2y;
    +            double sds;
    +
    +            if (lamda > 1)
    +            {
    +                r1 = Math.Sqrt(lamda) * r1;
    +                r2 = Math.Sqrt(lamda) * r2;
    +                sds = 0;
    +            }
    +            else
    +            {
    +                double seif = 1;
    +
    +                if (largeArcFlag == fS)
    +                {
    +                    seif = -1;
    +                }
    +
    +                sds = seif * Math.Sqrt((r1x * r2y - r1x * rydd - r2y * rxdd) / (r1x * rydd + r2y * rxdd));
    +            }
    +
    +            double txd = sds * r1 * ryd / r2;
    +            double tyd = -1 * sds * r2 * rxd / r1;
    +            double tx = cpsi * txd - spsi * tyd + x / 2;
    +            double ty = spsi * txd + cpsi * tyd + y / 2;
    +            double rad = Math.Atan2((ryd - tyd) / r2, (rxd - txd) / r1) - Math.Atan2(0, 1);
    +            double s1 = (rad >= 0) ? rad : 2 * Math.PI + rad;
    +            rad = Math.Atan2((-ryd - tyd) / r2, (-rxd - txd) / r1) - Math.Atan2((ryd - tyd) / r2, (rxd - txd) / r1);
    +            double dr = (rad >= 0) ? rad : 2 * Math.PI + rad;
    +
    +            if (fS == 0 && dr > 0)
    +            {
    +                dr -= 2 * Math.PI;
    +            }
    +            else if (fS != 0 && dr < 0)
    +            {
    +                dr += 2 * Math.PI;
    +            }
    +
    +            double sse = dr * 2 / Math.PI;
    +            int seg = (int)Math.Ceiling(sse < 0 ? -1 * sse : sse);
    +            double segr = dr / seg;
    +            double t = 8 / 3 * Math.Sin(segr / 4) * Math.Sin(segr / 4) / Math.Sin(segr / 2);
    +            double cpsir1 = cpsi * r1;
    +            double cpsir2 = cpsi * r2;
    +            double spsir1 = spsi * r1;
    +            double spsir2 = spsi * r2;
    +            double mc = Math.Cos(s1);
    +            double ms = Math.Sin(s1);
    +            double x2 = -t * (cpsir1 * ms + spsir2 * mc);
    +            double y2 = -t * (spsir1 * ms - cpsir2 * mc);
    +            double x3 = 0;
    +            double y3 = 0;
    +
    +            double[] result = new double[seg * 6];
    +
    +            for (int n = 0; n < seg; ++n)
    +            {
    +                s1 += segr;
    +                mc = Math.Cos(s1);
    +                ms = Math.Sin(s1);
    +
    +                x3 = cpsir1 * mc - spsir2 * ms + tx;
    +                y3 = spsir1 * mc + cpsir2 * ms + ty;
    +                double dx = -t * (cpsir1 * ms + spsir2 * mc);
    +                double dy = -t * (spsir1 * ms - cpsir2 * mc);
    +
    +                // CurveTo updates x0, y0 so need to restore it
    +                int index = n * 6;
    +                result[index] = x2 + x0;
    +                result[index + 1] = y2 + y0;
    +                result[index + 2] = x3 - dx + x0;
    +                result[index + 3] = y3 - dy + y0;
    +                result[index + 4] = x3 + x0;
    +                result[index + 5] = y3 + y0;
    +
    +                x2 = x3 + dx;
    +                y2 = y3 + dy;
    +            }
    +
    +            return result;
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounding box of the rotated rectangle.
    +        /// </summary>
    +        public static mxRectangle GetBoundingBox(mxRectangle rect, double rotation)
    +        {
    +            // TODO: Check use of GraphicsPath (see mxGdiCanvas.DrawText)
    +            mxRectangle result = null;
    +
    +            if (rect != null && rotation != 0)
    +            {
    +                double rad = ToRadians(rotation);
    +                double cos = Math.Cos(rad);
    +                double sin = Math.Sin(rad);
    +
    +                mxPoint cx = new mxPoint(rect.X + rect.Width / 2,
    +                    rect.Y + rect.Height / 2);
    +
    +                mxPoint p1 = new mxPoint(rect.X, rect.Y);
    +                mxPoint p2 = new mxPoint(rect.X + rect.Width, rect.Y);
    +                mxPoint p3 = new mxPoint(p2.X, rect.Y + rect.Height);
    +                mxPoint p4 = new mxPoint(rect.X, p3.Y);
    +
    +                p1 = GetRotatedPoint(p1, cos, sin, cx);
    +                p2 = GetRotatedPoint(p2, cos, sin, cx);
    +                p3 = GetRotatedPoint(p3, cos, sin, cx);
    +                p4 = GetRotatedPoint(p4, cos, sin, cx);
    +
    +                result = new mxRectangle((int)p1.X, (int)p1.Y, 0,
    +                        0);
    +                result.Add(new mxRectangle(p2.X, p2.Y, 0, 0));
    +                result.Add(new mxRectangle(p3.X, p3.Y, 0, 0));
    +                result.Add(new mxRectangle(p4.X, p4.Y, 0, 0));
    +            }
    +
    +            return result;
    +        }
    +
    +        /// <summary>
    +        /// Rotates the given point by the given cos and sin.
    +        /// </summary>
    +        public static mxPoint GetRotatedPoint(mxPoint pt, double cos, double sin)
    +        {
    +            return GetRotatedPoint(pt, cos, sin, new mxPoint());
    +        }
    +
    +        /// <summary>
    +        /// Rotates the given point by the given cos and sin.
    +        /// </summary>
    +        public static mxPoint GetRotatedPoint(mxPoint pt, double cos, double sin,
    +                mxPoint c)
    +        {
    +            double x = pt.X - c.X;
    +            double y = pt.Y - c.Y;
    +
    +            double x1 = x * cos - y * sin;
    +            double y1 = y * cos + x * sin;
    +
    +            return new mxPoint(x1 + c.X, y1 + c.Y);
    +        }
    +
    +        /// <summary>
    +        /// 
    +        /// </summary>
    +        /// <param name="g"></param>
    +        /// <param name="brush"></param>
    +        /// <param name="x"></param>
    +        /// <param name="y"></param>
    +        /// <param name="width"></param>
    +        /// <param name="height"></param>
    +        public static void FillClippedRect(Graphics g, Brush brush, int x, int y, int width, int height)
    +        {
    +		    RectangleF bg = new RectangleF(x, y, width, height);
    +
    +		    if (g.ClipBounds != null)
    +		    {
    +                bg.Intersect(g.ClipBounds);
    +		    }
    +
    +		    g.FillRectangle(brush, bg.X, bg.Y, bg.Width, bg.Height);
    +        }
    +
    +        /// <summary>
    +        /// Creates an image for the given parameters.
    +        /// </summary>
    +        /// <param name="width"></param>
    +        /// <param name="height"></param>
    +        /// <param name="background"></param>
    +        /// <returns></returns>
    +        public static Image CreateImage(int width, int height, Color? background)
    +        {
    +            Image image = new Bitmap(width, height);
    +            Graphics g = Graphics.FromImage(image);
    +
    +            if (background != null)
    +            {
    +                g.FillRectangle(new SolidBrush((Color)background),
    +                        0, 0, width, height);
    +            }
    +            else
    +            {
    +                g.Clear(Color.Transparent);
    +            }
    +
    +            return image;
    +        }
    +
    +        /// <summary>
    +        /// Creates a new list of new points obtained by translating the points in
    +        /// the given list by the given vector. Elements that are not mxPoints are
    +        /// added to the result as-is.
    +        /// </summary>
    +        /// <param name="pts"></param>
    +        /// <param name="dx"></param>
    +        /// <param name="dy"></param>
    +        /// <returns></returns>
    +        public static List<mxPoint> TranslatePoints(List<mxPoint> pts, double dx, double dy)
    +	    {
    +		    List<mxPoint> result = null;
    +
    +		    if (pts != null)
    +		    {
    +                result = new List<mxPoint>(pts.Count);
    +
    +                foreach (mxPoint point in pts)
    +                {
    +                    mxPoint pt = point.Clone();
    +
    +                    pt.X += dx;
    +                    pt.Y += dy;
    +
    +                    result.Add(pt);
    +                }
    +		    }
    +
    +		    return result;
    +	    }
    +
    +        /// <summary>
    +        /// Returns the intersection of two lines as an mxPoint.
    +        /// </summary>
    +        /// <param name="x0">X-coordinate of the first line's startpoint.</param>
    +        /// <param name="y0">Y-coordinate of the first line's startpoint.</param>
    +        /// <param name="x1">X-coordinate of the first line's endpoint.</param>
    +        /// <param name="y1">Y-coordinate of the first line's endpoint.</param>
    +        /// <param name="x2">X-coordinate of the second line's startpoint.</param>
    +        /// <param name="y2">Y-coordinate of the second line's startpoint.</param>
    +        /// <param name="x3">X-coordinate of the second line's endpoint.</param>
    +        /// <param name="y3">Y-coordinate of the second line's endpoint.</param>
    +        /// <returns></returns>
    +        public static mxPoint Intersection(double x0, double y0, double x1,
    +                double y1, double x2, double y2, double x3, double y3)
    +        {
    +            double denom = ((y3 - y2) * (x1 - x0)) - ((x3 - x2) * (y1 - y0));
    +            double nume_a = ((x3 - x2) * (y0 - y2)) - ((y3 - y2) * (x0 - x2));
    +            double nume_b = ((x1 - x0) * (y0 - y2)) - ((y1 - y0) * (x0 - x2));
    +
    +            double ua = nume_a / denom;
    +            double ub = nume_b / denom;
    +
    +            if (ua >= 0.0 && ua <= 1.0 && ub >= 0.0 && ub <= 1.0)
    +            {
    +                // Get the intersection point
    +                double intersectionX = x0 + ua * (x1 - x0);
    +                double intersectionY = y0 + ua * (y1 - y0);
    +
    +                return new mxPoint(intersectionX, intersectionY);
    +            }
    +
    +            // No intersection
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Returns the stylename in a style of the form stylename[;key=value] or an
    +        /// empty string if the given style does not contain a stylename.
    +        /// </summary>
    +        /// <param name="style">String of the form stylename[;key=value].</param>
    +        /// <returns>Returns the stylename from the given formatted string.</returns>
    +        public static String GetStylename(String style)
    +        {
    +            if (style != null)
    +            {
    +                String[] pairs = style.Split(';');
    +                String stylename = pairs[0];
    +
    +                if (stylename.IndexOf("=") < 0)
    +                {
    +                    return stylename;
    +                }
    +            }
    +
    +            return "";
    +        }
    +
    +        /// <summary>
    +        /// Returns the stylenames in a style of the form stylename[;key=value] or an
    +        /// empty array if the given style does not contain any stylenames.
    +        /// </summary>
    +        /// <param name="style">String of the form stylename[;stylename][;key=value].</param>
    +        /// <returns>Returns the stylename from the given formatted string.</returns>
    +        public static String[] GetStylenames(String style)
    +        {
    +            ArrayList result = new ArrayList();
    +
    +            if (style != null)
    +            {
    +                String[] pairs = style.Split(';');
    +
    +                for (int i = 0; i < pairs.Length; i++)
    +                {
    +                    if (pairs[i].IndexOf("=") < 0)
    +                    {
    +                        result.Add(pairs[i]);
    +                    }
    +                }
    +            }
    +
    +            return (String[]) result.ToArray();
    +        }
    +
    +        /// <summary>
    +        /// Returns the index of the given stylename in the given style. This
    +        /// returns -1 if the given stylename does not occur (as a stylename) in the
    +        /// given style, otherwise it returns the index of the first character.
    +        /// </summary>
    +        /// <param name="style"></param>
    +        /// <param name="stylename"></param>
    +        /// <returns></returns>
    +        public static int IndexOfStylename(String style, String stylename)
    +        {
    +            if (style != null && stylename != null)
    +            {
    +                String[] tokens = style.Split(';');
    +                int pos = 0;
    +
    +                for (int i = 0; i < tokens.Length; i++)
    +                {
    +                    if (tokens[i].Equals(stylename))
    +                    {
    +                        return pos;
    +                    }
    +
    +                    pos += tokens[i].Length + 1;
    +                }
    +            }
    +
    +            return -1;
    +        }
    +
    +        /// <summary>
    +        /// Adds the specified stylename to the given style if it does not already
    +        /// contain the stylename.
    +        /// </summary>
    +        /// <param name="style"></param>
    +        /// <param name="stylename"></param>
    +        /// <returns></returns>
    +        public String AddStylename(String style, String stylename)
    +        {
    +            if (IndexOfStylename(style, stylename) < 0)
    +            {
    +                if (style == null)
    +                {
    +                    style = "";
    +                }
    +                else if (style.Length > 0 && style[style.Length] != ';')
    +                {
    +                    style += ';';
    +                }
    +
    +                style += stylename;
    +            }
    +
    +            return style;
    +        }
    +
    +        /// <summary>
    +        /// Removes all occurrences of the specified stylename in the given style
    +        /// and returns the updated style.
    +        /// </summary>
    +        /// <param name="style"></param>
    +        /// <param name="stylename"></param>
    +        /// <returns></returns>
    +        public String RemoveStylename(String style, String stylename)
    +        {
    +            StringBuilder buffer = new StringBuilder();
    +
    +            if (style != null)
    +            {
    +                String[] tokens = style.Split(';');
    +
    +                for (int i = 0; i < tokens.Length; i++)
    +                {
    +                    if (!tokens[i].Equals(stylename))
    +                    {
    +                        buffer.Append(tokens[i] + ";");
    +                    }
    +                }
    +            }
    +
    +            String result = buffer.ToString();
    +
    +            return (result.Length > 1) ? result.Substring(0, result.Length - 1)
    +                    : result;
    +        }
    +
    +        /// <summary>
    +        /// Removes all stylenames from the given style and returns the updated
    +        /// style.
    +        /// </summary>
    +        /// <param name="style"></param>
    +        /// <returns></returns>
    +        public static String RemoveAllStylenames(String style)
    +        {
    +            StringBuilder buffer = new StringBuilder();
    +
    +            if (style != null)
    +            {
    +                String[] tokens = style.Split(';');
    +
    +                for (int i = 0; i < tokens.Length; i++)
    +                {
    +                    if (tokens[i].IndexOf('=') >= 0)
    +                    {
    +                        buffer.Append(tokens[i] + ";");
    +                    }
    +                }
    +            }
    +
    +            String result = buffer.ToString();
    +
    +            return (result.Length > 1) ? result.Substring(0, result.Length - 1)
    +                    : result;
    +        }
    +
    +        /// <summary>
    +        /// Assigns the value for the given key in the styles of the given cells, or
    +        /// removes the key from the styles if the value is null.
    +        /// </summary>
    +        /// <param name="model">Model to execute the transaction in.</param>
    +        /// <param name="cells">Array of cells to be updated.</param>
    +        /// <param name="key">Key of the style to be changed.</param>
    +        /// <param name="value">New value for the given key.</param>
    +        public static void SetCellStyles(mxIGraphModel model, Object[] cells, String key, String value)
    +        {
    +            if (cells != null && cells.Length > 0)
    +            {
    +                model.BeginUpdate();
    +                try
    +                {
    +                    for (int i = 0; i < cells.Length; i++)
    +                    {
    +                        if (cells[i] != null)
    +                        {
    +                            String style = SetStyle(
    +                                model.GetStyle(cells[i]),
    +                                key, value);
    +                            model.SetStyle(cells[i], style);
    +                        }
    +                    }
    +                }
    +                finally
    +                {
    +                    model.EndUpdate();
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Adds or removes the given key, value pair to the style and returns the
    +        /// new style. If value is null or zero length then the key is removed from
    +        /// the style.
    +        /// </summary>
    +        /// <param name="style">String of the form stylename[;key=value].</param>
    +        /// <param name="key">Key of the style to be changed.</param>
    +        /// <param name="value">New value for the given key.</param>
    +        /// <returns>Returns the new style.</returns>
    +        public static String SetStyle(String style, String key, String value)
    +        {
    +            bool isValue = value != null && value.Length > 0;
    +
    +            if (style == null || style.Length == 0)
    +            {
    +                if (isValue)
    +                {
    +                    style = key + "=" + value;
    +                }
    +            }
    +            else
    +            {
    +                int index = style.IndexOf(key + "=");
    +
    +                if (index < 0)
    +                {
    +                    String sep = (style.EndsWith(";")) ? "" : ";";
    +
    +                    if (isValue)
    +                    {
    +                        style = style + sep + key + '=' + value;
    +                    }
    +                    else
    +                    {
    +                        style = style + sep + key + "=0";
    +                    }
    +                }
    +                else
    +                {
    +                    String tmp = (isValue) ? key + "=" + value : "";
    +                    int cont = style.IndexOf(";", index);
    +
    +                    if (!isValue)
    +                    {
    +                        cont++;
    +                    }
    +
    +                    style = style.Substring(0, index) + tmp +
    +                        ((cont > index) ? style.Substring(cont) : "");
    +                }
    +            }
    +
    +            return style;
    +        }
    +
    +        /// <summary>
    +        /// Sets or toggles the flag bit for the given key in the cell's styles.
    +        /// If value is null then the flag is toggled.
    +        /// </summary>
    +        /// <param name="model">Model that contains the cells.</param>
    +        /// <param name="cells">Array of cells to change the style for.</param>
    +        /// <param name="key">Key of the style to be changed.</param>
    +        /// <param name="flag">Integer for the bit to be changed.</param>
    +        /// <param name="value">Optional boolean value for the flag.</param>
    +        public static void SetCellStyleFlags(mxIGraphModel model, Object[] cells, String key, int flag, Boolean value)
    +        {
    +            if (cells != null && cells.Length > 0)
    +            {
    +                model.BeginUpdate();
    +
    +                try
    +                {
    +                    for (int i = 0; i < cells.Length; i++)
    +                    {
    +                        if (cells[i] != null)
    +                        {
    +                            String style = SetStyleFlag(
    +                                model.GetStyle(cells[i]),
    +                                key, flag, value);
    +                            model.SetStyle(cells[i], style);
    +                        }
    +                    }
    +                }
    +                finally
    +                {
    +                    model.EndUpdate();
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Sets or removes the given key from the specified style and returns the
    +        /// new style. If value is null then the flag is toggled.
    +        /// </summary>
    +        /// <param name="style">String of the form stylename[;key=value].</param>
    +        /// <param name="key">Key of the style to be changed.</param>
    +        /// <param name="flag">Integer for the bit to be changed.</param>
    +        /// <param name="value">Optional boolean value for the given flag.</param>
    +        /// <returns>Returns the new style.</returns>
    +        public static String SetStyleFlag(String style, String key, int flag, bool? value)
    +        {
    +            if (style == null || style.Length == 0)
    +            {
    +                if (value == null || (bool)value)
    +                {
    +                    style = key + "=" + flag;
    +                }
    +                else
    +                {
    +                    style = key + "=0";
    +                }
    +            }
    +            else
    +            {
    +                int index = style.IndexOf(key + '=');
    +
    +                if (index < 0)
    +                {
    +                    if (value == null || (bool) value)
    +                    {
    +                        String sep = (style.EndsWith(";")) ? "" : ";";
    +                        style = style + sep + key + "=" + flag;
    +                    }
    +                }
    +                else
    +                {
    +                    int cont = style.IndexOf(";", index);
    +                    String tmp = "";
    +                    int result = 0;
    +
    +                    if (cont < 0)
    +                    {
    +                        tmp = style.Substring(index + key.Length + 1);
    +                    }
    +                    else
    +                    {
    +                        tmp = style.Substring(index + key.Length + 1, cont);
    +                    }
    +
    +                    if (value == null)
    +                    {
    +                        result = int.Parse(tmp) ^ flag;
    +                    }
    +                    else if ((bool) value)
    +                    {
    +                        result = int.Parse(tmp) | flag;
    +                    }
    +                    else
    +                    {
    +                        result = int.Parse(tmp) & ~flag;
    +                    }
    +
    +                    style = style.Substring(0, index) + key + "=" + result +
    +                        ((cont >= 0) ? style.Substring(cont) : "");
    +
    +                }
    +            }
    +
    +            return style;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the dictionary contains true for the given key or
    +        /// false if no value is defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <returns>Returns the boolean value for key in dict.</returns>
    +        public static bool IsTrue(Dictionary<string, Object> dict, string key)
    +        {
    +            return IsTrue(dict, key, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the dictionary contains true for the given key or the
    +        /// given default value if no value is defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <param name="defaultValue">Default value to return if the key is undefined.</param>
    +        /// <returns>Returns the boolean value for key in dict.</returns>
    +        public static bool IsTrue(Dictionary<string, Object> dict, string key, bool defaultValue)
    +        {
    +            object value = null;
    +            dict.TryGetValue(key, out value);
    +
    +            if (value == null)
    +            {
    +                return defaultValue;
    +            }
    +            else
    +            {
    +                return value.Equals("1") || value.ToString().ToLower().Equals("true");
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as an int or 0 if no value is
    +        /// defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <returns>Returns the integer value for key in dict.</returns>
    +        public static int GetInt(Dictionary<string, Object> dict, string key)
    +        {
    +            return GetInt(dict, key, 0);
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as an int or the given default
    +        /// value if no value is defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <param name="defaultValue">Default value to return if the key is undefined.</param>
    +        /// <returns>Returns the integer value for key in dict.</returns>
    +        public static int GetInt(Dictionary<string, Object> dict, string key, int defaultValue)
    +        {
    +            object value = null;
    +            dict.TryGetValue(key, out value);
    +
    +            if (value == null)
    +            {
    +                return defaultValue;
    +            }
    +            else
    +            {
    +                return int.Parse(value.ToString());
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as a float or 0 if no value is
    +        /// defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <returns>Returns the float value for key in dict.</returns>
    +        public static float GetFloat(Dictionary<string, Object> dict, string key)
    +        {
    +            return GetFloat(dict, key, 0);
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as a float or the given default
    +        /// value if no value is defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <param name="defaultValue">Default value to return if the key is undefined.</param>
    +        /// <returns>Returns the float value for key in dict.</returns>
    +        public static float GetFloat(Dictionary<string, Object> dict, string key, float defaultValue)
    +        {
    +            object value = null;
    +            dict.TryGetValue(key, out value);
    +
    +            if (value == null)
    +            {
    +                return defaultValue;
    +            }
    +            else
    +            {
    +                return float.Parse(value.ToString());
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as a double or 0 if no value is
    +        /// defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <returns>Returns the double value for key in dict.</returns>
    +        public static double GetDouble(Dictionary<string, Object> dict, string key)
    +        {
    +            return GetDouble(dict, key, 0);
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as a double or the given default
    +        /// value if no value is defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <param name="defaultValue">Default value to return if the key is undefined.</param>
    +        /// <returns>Returns the double value for key in dict.</returns>
    +        public static double GetDouble(Dictionary<string, Object> dict, string key, double defaultValue)
    +        {
    +            object value = null;
    +            dict.TryGetValue(key, out value);
    +
    +            if (value == null)
    +            {
    +                return defaultValue;
    +            }
    +            else
    +            {
    +                return double.Parse(value.ToString());
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as a string or null if no value
    +        /// is defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <returns>Returns the string value for key in dict.</returns>
    +        public static string GetString(Dictionary<string, Object> dict, string key)
    +        {
    +            return GetString(dict, key, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as a string or the given default
    +        /// value if no value is defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <param name="defaultValue">Default value to return if the key is undefined.</param>
    +        /// <returns>Returns the string value for key in dict.</returns>
    +        public static string GetString(Dictionary<string, Object> dict, string key, string defaultValue)
    +        {
    +            object value = null;
    +            dict.TryGetValue(key, out value);
    +
    +            if (value == null)
    +            {
    +                return defaultValue;
    +            }
    +            else
    +            {
    +                return value.ToString();
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as a color or null if no value
    +        /// is defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <returns>Returns the color value for key in dict.</returns>
    +        public static Color? GetColor(Dictionary<string, Object> dict, string key)
    +        {
    +            return GetColor(dict, key, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns the value for key in dictionary as a color or the given default
    +        /// value if no value is defined for the key.
    +        /// </summary>
    +        /// <param name="dict">Dictionary that contains the key, value pairs.</param>
    +        /// <param name="key">Key whose value should be returned.</param>
    +        /// <param name="defaultValue">Default value to return if the key is undefined.</param>
    +        /// <returns>Returns the color value for key in dict.</returns>
    +        public static Color? GetColor(Dictionary<string, Object> dict, string key, Color? defaultValue)
    +        {
    +            object value = null;
    +            dict.TryGetValue(key, out value);
    +
    +            if (value == null)
    +            {
    +                return defaultValue;
    +            }
    +            else
    +            {
    +                if (value.ToString().Equals("none"))
    +                {
    +                    return null;
    +                }
    +
    +                return ColorTranslator.FromHtml(value.ToString());
    +            }
    +        }
    +
    +        /// <summary>
    +        /// 
    +        /// 
    +        /// </summary>
    +        /// <param name="style"></param>
    +        /// <returns></returns>
    +        public static Font GetFont(Dictionary<string, Object> style)
    +        {
    +            return GetFont(style, 1);
    +        }
    +
    +        /// <summary>
    +        /// 
    +        /// </summary>
    +        /// <param name="style"></param>
    +        /// <param name="scale"></param>
    +        /// <returns></returns>
    +        public static Font GetFont(Dictionary<string, Object> style, double scale)
    +        {
    +            float fontSize = (float)(GetDouble(style, mxConstants.STYLE_FONTSIZE, mxConstants.DEFAULT_FONTSIZE) * scale);
    +            string fontFamily = GetString(style, mxConstants.STYLE_FONTFAMILY, mxConstants.DEFAULT_FONTFAMILY);
    +            int fontStyle = GetInt(style, mxConstants.STYLE_FONTSTYLE);
    +
    +            FontStyle tmp = ((fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD) ? FontStyle.Bold
    +                : FontStyle.Regular;
    +            tmp |= ((fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC) ? FontStyle.Italic
    +                : FontStyle.Regular;
    +            tmp |= ((fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE) ? FontStyle.Underline
    +                : FontStyle.Regular;
    +
    +            return new Font(fontFamily, (float)(fontSize * mxConstants.FONT_SIZEFACTOR), tmp);
    +        }
    +
    +        /// <summary>
    +        /// Creates a new StringFormat object for the given style.
    +        /// </summary>
    +        /// <param name="style"></param>
    +        /// <returns></returns>
    +        public static StringFormat GetStringFormat(Dictionary<string, Object> style)
    +        {
    +            StringFormat format = new StringFormat(StringFormatFlags.NoClip);
    +            format.Trimming = StringTrimming.None;
    +
    +            // This is not required as the rectangle for the text will take this flag into account.
    +            // However, we want to avoid any possible word-wrap unless explicitely specified.
    +            if (!mxUtils.GetString(style, mxConstants.STYLE_WHITE_SPACE, "").Equals("wrap"))
    +            {
    +                format.FormatFlags |= StringFormatFlags.NoWrap;
    +            }
    +
    +            // Sets the horizontal alignment
    +            string align = GetString(style, mxConstants.STYLE_ALIGN);
    +
    +            if (align == null || align.Equals(mxConstants.ALIGN_CENTER))
    +            {
    +                format.Alignment = StringAlignment.Center;
    +            }
    +            else if (align.Equals(mxConstants.ALIGN_LEFT))
    +            {
    +                format.Alignment = StringAlignment.Near;
    +            }
    +            else if (align.Equals(mxConstants.ALIGN_RIGHT))
    +            {
    +                format.Alignment = StringAlignment.Far;
    +            }
    +
    +            // Sets the vertical alignment
    +            string vAlign = GetString(style, mxConstants.STYLE_VERTICAL_ALIGN);
    +
    +            if (vAlign == null || vAlign.Equals(mxConstants.ALIGN_MIDDLE))
    +            {
    +                format.LineAlignment = StringAlignment.Center;
    +            }
    +            else if (vAlign.Equals(mxConstants.ALIGN_TOP))
    +            {
    +                format.LineAlignment = StringAlignment.Near;
    +            }
    +            else if (vAlign.Equals(mxConstants.ALIGN_BOTTOM))
    +            {
    +                format.LineAlignment = StringAlignment.Far;
    +            }
    +
    +            return format;
    +        }
    +
    +        /// <summary>
    +        /// Reads the given filename into a string.
    +        /// </summary>
    +        /// <param name="filename">Name of the file to be read.</param>
    +        /// <returns>Returns a string representing the file contents.</returns>
    +        public static string ReadFile(string filename)
    +        {
    +            return File.ReadAllText(filename);
    +        }
    +
    +        /// <summary>
    +        /// Returns the Md5 hash for the given text.
    +        /// </summary>
    +        /// <param name="text">String whose Md5 hash should be returned.</param>
    +        /// <returns>Returns the Md5 hash for the given text.</returns>
    +        public static string GetMd5Hash(string text)
    +        {
    +            MD5 md5Hasher = new MD5CryptoServiceProvider();
    +            byte[] data = md5Hasher.ComputeHash(Encoding.ASCII.GetBytes(text));
    +
    +            return Convert.ToBase64String(data);
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given value is an XML node with the specified nodename.
    +        /// specified.
    +        /// </summary>
    +        /// <param name="value">Object that represents the value to be tested.</param>
    +        /// <param name="nodeName">String that specifies the node name.</param>
    +        /// <returns>Returns true if the node name of the user object is equal to the
    +        /// given type.</returns>
    +        public static bool IsNode(Object value, String nodeName)
    +        {
    +            return IsNode(value, nodeName, null, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the user object is an XML node with the specified type
    +        /// and and the optional attribute has the specified value or is not
    +        /// specified.
    +        /// </summary>
    +        /// <param name="value">Object that represents the value to be tested.</param>
    +        /// <param name="nodeName">String that specifies the node name.</param>
    +        /// <param name="attributeName">Optional attribute name to check.</param>
    +        /// <param name="attributeValue">Optional attribute value to check.</param>
    +        /// <returns>Returns true if the cell matches the given conditions.</returns>
    +        public static bool IsNode(Object value, String nodeName, String attributeName, String attributeValue)
    +        {
    +            if (value is XmlElement)
    +            {
    +                XmlElement element = (XmlElement)value;
    +
    +                if (String.Compare(element.Name, attributeName, true) == 0)
    +                {
    +                    return attributeName == null ||
    +                        String.Compare(element.GetAttribute(attributeName),
    +                        attributeValue, true) == 0;
    +                }
    +            }
    +
    +            return false;
    +        }
    +
    +        /// <summary>
    +        /// Loads an image from the local filesystem, a data URI or any other URL.
    +        /// </summary>
    +        public static Image LoadImage(String url)
    +        {
    +            Image img = null;
    +
    +            if (url != null)
    +            {
    +                try
    +                {
    +                    img = Image.FromFile(url);
    +                }
    +                catch (Exception)
    +                {
    +                    Stream stream = null;
    +
    +                    // Parses data URIs of the form data:image/format;base64,xxx
    +                    if (url.StartsWith("data:image/"))
    +                    {
    +                        int comma = url.IndexOf(',');
    +                        byte[] data = Convert.FromBase64String(url.Substring(comma + 1));
    +                        stream = new MemoryStream(data);
    +                    }
    +                    else
    +                    {
    +                        try
    +                        {
    +                            WebClient wc = new WebClient();
    +                            stream = wc.OpenRead(url);
    +                        }
    +                        catch (Exception)
    +                        {
    +                            // ignore
    +                        }
    +                    }
    +
    +                    if (stream != null)
    +                    {
    +                        try
    +                        {
    +                            img = Image.FromStream(stream);
    +                        }
    +                        catch (Exception e)
    +                        {
    +                            // ignore
    +                        }
    +                    }
    +                }
    +            }
    +
    +            return img;
    +        }
    +
    +        /// <summary>
    +        /// Returns a new, empty DOM document.
    +        /// </summary>
    +        /// <returns>Returns a new DOM document.</returns>
    +        public static XmlDocument CreateDocument()
    +        {
    +            return new XmlDocument();
    +        }
    +
    +        /// <summary>
    +        /// Returns a new DOM document for the given URI.
    +        /// </summary>
    +        /// <param name="uri">URI to parse into the document.</param>
    +        /// <returns>Returns a new DOM document for the given URI.</returns>
    +        public static XmlDocument LoadDocument(string uri)
    +        {
    +            XmlDocument doc = CreateDocument();
    +            doc.Load(uri);
    +
    +            return doc;
    +        }
    +
    +        /// <summary>
    +        /// Returns a document that represents the given XML string.
    +        /// </summary>
    +        /// <param name="xml">String that contains the XML markup.</param>
    +        /// <returns>Returns an XML document.</returns>
    +        public static XmlDocument ParseXml(string xml)
    +        {
    +            XmlDocument doc = CreateDocument();
    +            doc.LoadXml(xml);
    +
    +            return doc;
    +        }
    +
    +        /// <summary>
    +        /// Returns the first node where attr equals value.
    +        /// This implementation does not use XPath.
    +        /// </summary>
    +        public static XmlNode FindNode(XmlNode node, String attr, String value)
    +	    {
    +            Object tmp = node.Attributes[attr];
    +    		
    +		    if (tmp != null &&
    +			    tmp.ToString().Equals(value))
    +		    {
    +			    return node;
    +		    }
    +    		
    +		    node = node.FirstChild;
    +    		
    +		    while (node != null)
    +		    {
    +			    XmlNode result = FindNode(node, attr, value);
    +    			
    +			    if (result != null)
    +			    {
    +				    return result;
    +			    }
    +    			
    +			    node = node.NextSibling;
    +		    }
    +    		
    +		    return null;
    +	    }
    +
    +        /// <summary>
    +        /// Returns a single node that matches the given XPath expression.
    +        /// </summary>
    +        /// <param name="doc">Document that contains the nodes.</param>
    +        /// <param name="expression">XPath expression to be matched.</param>
    +        /// <returns>Returns a single node matching the given expression.</returns>
    +        public static XmlNode SelectSingleNode(XmlDocument doc, string expression)
    +        {
    +            return doc.SelectSingleNode(expression);
    +        }
    +
    +        /// <summary>
    +        /// Evaluates a Java expression to a class member using mxCodecRegistry.
    +        /// The range of supported expressions is limited to static class
    +        /// members such as mxEdgeStyle.ElbowConnector.
    +        /// </summary>
    +        /// <param name="expression"></param>
    +        /// <returns></returns>
    +        public static Object Eval(string expression)
    +        {
    +            int dot = expression.LastIndexOf(".");
    +
    +            if (dot > 0)
    +            {
    +                Type type = mxCodecRegistry.GetTypeForName(expression.Substring(0, dot));
    +
    +                if (type != null)
    +                {
    +                    try
    +                    {
    +                        return type.GetField(expression.Substring(dot + 1)).GetValue(null);
    +                    }
    +                    catch (Exception e)
    +                    {
    +                        Trace.WriteLine("mxUtils.Eval(" + expression + "): " + e.Message);
    +                    }
    +                }
    +            }
    +
    +            return expression;
    +        }
    +
    +        /// <summary>
    +        /// Converts the ampersand, quote, prime, less-than and greater-than characters
    +        /// to their corresponding HTML entities in the given string.
    +        /// </summary>
    +        /// <param name="text"></param>
    +        /// <returns></returns>
    +        public static String HtmlEntities(String text)
    +        {
    +            return text.Replace("&", "&amp;").Replace("\"", "&quot;")
    +                    .Replace("'", "&prime;").Replace("<", "&lt;").Replace(
    +                            ">", "&gt;");
    +        }
    +
    +        /// <summary>
    +        /// Returns a string that represents the given node.
    +        /// </summary>
    +        /// <param name="node">Node to return the XML for.</param>
    +        /// <returns>Returns an XML string.</returns>
    +        public static string GetXml(XmlNode node)
    +        {
    +            return GetXml(node, Formatting.None);
    +        }
    +
    +        /// <summary>
    +        /// Returns a pretty-printed XML string for the given node.
    +        /// </summary>
    +        /// <param name="node">Node to return the XML for.</param>
    +        /// <returns>Returns a formatted XML string.</returns>
    +        public static string GetPrettyXml(XmlNode node)
    +        {
    +            return GetXml(node, Formatting.Indented);
    +        }
    +
    +        /// <summary>
    +        /// Returns a pretty-printed XML string for the given node.
    +        /// </summary>
    +        /// <param name="node">Node to return the XML for.</param>
    +        /// <param name="formatting">Formatting of the string to be returned.</param>
    +        /// <returns>Returns a formatted XML string.</returns>
    +        public static string GetXml(XmlNode node, Formatting formatting)
    +        {
    +            StringWriter stringWriter = new StringWriter();
    +            XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter);
    +
    +            xmlTextWriter.Formatting = formatting;
    +            node.WriteTo(xmlTextWriter);
    +            xmlTextWriter.Flush();
    +
    +            return stringWriter.ToString();
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/view/mxCellState.cs b/dotnet/src/view/mxCellState.cs
    new file mode 100644
    index 000000000..75bb6ec2f
    --- /dev/null
    +++ b/dotnet/src/view/mxCellState.cs
    @@ -0,0 +1,326 @@
    +// $Id: mxCellState.cs,v 1.25 2010-06-09 17:32:14 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Represents the current state of a cell in a given graph view.
    +    /// </summary>
    +    public class mxCellState : mxRectangle
    +    {
    +        /// <summary>
    +        /// Reference to the enclosing graph view.
    +        /// </summary>
    +        protected mxGraphView view;
    +
    +        /// <summary>
    +        /// Reference to the cell that is represented by this state.
    +        /// </summary>
    +        protected Object cell;
    +
    +        /// <summary>
    +        /// Contains an array of key, value pairs that represent the style of the
    +        /// cell.
    +        /// </summary>
    +        protected Dictionary<string, Object> style;
    +
    +        /// <summary>
    +        /// Holds the origin for all child cells.
    +        /// </summary>
    +        protected mxPoint origin = new mxPoint();
    +
    +        /// <summary>
    +        /// List of mxPoints that represent the absolute points of an edge.
    +        /// </summary>
    +        protected List<mxPoint> absolutePoints;
    +
    +        /// <summary>
    +        /// Holds the absolute offset. For edges, this is the absolute coordinates
    +        /// of the label position. For vertices, this is the offset of the label
    +        /// relative to the top, left corner of the vertex.
    +        /// </summary>
    +        protected mxPoint absoluteOffset = new mxPoint();
    +
    +        /// <summary>
    +        /// Caches the distance between the end points of an edge.
    +        /// </summary>
    +        protected double terminalDistance;
    +
    +        /// <summary>
    +        /// Caches the length of an edge.
    +        /// </summary>
    +        protected double length;
    +
    +        /// <summary>
    +        /// Array of numbers that represent the cached length of each segment of the
    +        /// edge.
    +        /// </summary>
    +        protected double[] segments;
    +
    +        /// <summary>
    +        /// Holds the rectangle which contains the label.
    +        /// </summary>
    +        protected mxRectangle labelBounds;
    +
    +        /// <summary>
    +        /// Holds the largest rectangle which contains all rendering for this cell.
    +        /// </summary>
    +        protected mxRectangle boundingBox;
    +
    +        /// <summary>
    +        /// Constructs an empty cell state.
    +        /// </summary>
    +        public mxCellState() : this(null, null, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new object that represents the current state of the given
    +        /// cell in the specified view.
    +        /// </summary>
    +        /// <param name="view">Graph view that contains the state.</param>
    +        /// <param name="cell">Cell that this state represents.</param>
    +        /// <param name="style">Array of key, value pairs that constitute the style.</param>
    +        public mxCellState(mxGraphView view, Object cell, Dictionary<string, Object> style)
    +        {
    +            View = view;
    +            Cell = cell;
    +            Style = style;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the enclosing graph view.
    +        /// </summary>
    +        public mxGraphView View
    +        {
    +            get { return view; }
    +            set { view = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the cell that is represented by this state.
    +        /// </summary>
    +        public Object Cell
    +        {
    +            get { return cell; }
    +            set { cell = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the cell style as a map of key, value pairs.
    +        /// </summary>
    +        public Dictionary<string, Object> Style
    +        {
    +            get { return style; }
    +            set { style = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the origin for the children.
    +        /// </summary>
    +        public mxPoint Origin
    +        {
    +            get { return origin; }
    +            set { origin = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the absolute points.
    +        /// </summary>
    +        public List<mxPoint> AbsolutePoints
    +        {
    +            get { return absolutePoints; }
    +            set { absolutePoints = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the absolute offset.
    +        /// </summary>
    +        public mxPoint AbsoluteOffset
    +        {
    +            get { return absoluteOffset; }
    +            set { absoluteOffset = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the terminal distance.
    +        /// </summary>
    +        public double TerminalDistance
    +        {
    +            get { return terminalDistance; }
    +            set { terminalDistance = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the length.
    +        /// </summary>
    +        public double Length
    +        {
    +            get { return length; }
    +            set { length = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the length of the segments.
    +        /// </summary>
    +        public double[] Segments
    +        {
    +            get { return segments; }
    +            set { segments = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the label bounds.
    +        /// </summary>
    +        public mxRectangle LabelBounds
    +        {
    +            get { return labelBounds; }
    +            set { labelBounds = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the bounding box.
    +        /// </summary>
    +        public mxRectangle BoundingBox
    +        {
    +            get { return boundingBox; }
    +            set { boundingBox = value; }
    +        }
    +
    +        /// <summary>
    +        /// Returns the number of absolute points.
    +        /// </summary>
    +        /// <returns></returns>
    +        public int AbsolutePointCount()
    +        {
    +            return (absolutePoints != null) ? absolutePoints.Count : 0;
    +        }
    +
    +        /// <summary>
    +        /// Returns the rectangle that should be used as the perimeter of the cell.
    +        /// This implementation adds the perimeter spacing to the rectangle
    +        /// defined by this cell state.
    +        /// </summary>
    +        /// <returns>Returns the rectangle that defines the perimeter.</returns>
    +        public mxRectangle GetPerimeterBounds()
    +        {
    +            return GetPerimeterBounds(0);
    +        }
    +
    +        /// <summary>
    +        /// Returns the rectangle that should be used as the perimeter of the cell.
    +        /// </summary>
    +        /// <param name="border"></param>
    +        /// <returns>Returns the rectangle that defines the perimeter.</returns>
    +        public mxRectangle GetPerimeterBounds(double border)
    +        {
    +            mxRectangle bounds = new mxRectangle(this);
    +
    +            if (border != 0)
    +            {
    +                bounds.Grow(border);
    +            }
    +
    +            return bounds;
    +        }
    +
    +        /// <summary>
    +        /// Sets the first or last point in the list of points depending on source.
    +        /// </summary>
    +        /// <param name="point">Point that represents the terminal point.</param>
    +        /// <param name="source">Boolean that specifies if the first or last point should
    +        /// be assigned.</param>
    +        public void SetAbsoluteTerminalPoint(mxPoint point, bool source)
    +        {
    +            if (source)
    +            {
    +                if (absolutePoints == null)
    +                {
    +                    absolutePoints = new List<mxPoint>();
    +                }
    +
    +                if (absolutePoints == null ||
    +                    absolutePoints.Count == 0)
    +                {
    +                    absolutePoints.Add(point);
    +                }
    +                else
    +                {
    +                    absolutePoints[0] = point;
    +                }
    +            }
    +            else
    +            {
    +                if (absolutePoints == null)
    +                {
    +                    absolutePoints = new List<mxPoint>();
    +                    absolutePoints.Add(null);
    +                    absolutePoints.Add(point);
    +                }
    +                else if (absolutePoints.Count == 1)
    +                {
    +                    absolutePoints.Add(point);
    +                }
    +                else
    +                {
    +                    absolutePoints[absolutePoints.Count - 1] = point;
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Returns a clone of this state where all members are deeply cloned
    +        /// except the view and cell references, which are copied with no
    +        /// cloning to the new instance.
    +        /// </summary>
    +        /// <returns></returns>
    +        new public mxCellState Clone()
    +        {
    +            mxCellState clone = new mxCellState(view, cell, style);
    +
    +            if (absolutePoints != null)
    +            {
    +                clone.absolutePoints = new List<mxPoint>();
    +
    +                foreach (mxPoint pt in absolutePoints)
    +                {
    +                    clone.absolutePoints.Add(pt.Clone());
    +                }
    +            }
    +
    +            if (origin != null)
    +            {
    +                clone.origin = origin.Clone();
    +            }
    +
    +            if (absoluteOffset != null)
    +            {
    +                clone.absoluteOffset = absoluteOffset.Clone();
    +            }
    +
    +            if (labelBounds != null)
    +            {
    +                clone.labelBounds = labelBounds.Clone();
    +            }
    +
    +            if (boundingBox != null)
    +            {
    +                clone.boundingBox = boundingBox.Clone();
    +            }
    +
    +            clone.terminalDistance = terminalDistance;
    +            clone.segments = segments;
    +            clone.length = length;
    +            clone.x = x;
    +            clone.y = y;
    +            clone.width = width;
    +            clone.height = height;
    +
    +            return clone;
    +        }
    +
    +    }
    +}
    diff --git a/dotnet/src/view/mxConnectionConstraint.cs b/dotnet/src/view/mxConnectionConstraint.cs
    new file mode 100644
    index 000000000..c5fc0ce5a
    --- /dev/null
    +++ b/dotnet/src/view/mxConnectionConstraint.cs
    @@ -0,0 +1,66 @@
    +// $Id: mxConnectionConstraint.cs,v 1.2 2010-04-29 09:33:53 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines an object that contains the constraints about how to connect one
    +    /// side of an edge to its terminal.
    +    /// </summary>
    +    public class mxConnectionConstraint
    +    {
    +        /// <summary>
    +        /// Point that specifies the fixed location of the connection point.
    +        /// </summary>
    +        protected mxPoint point;
    +
    +        /// <summary>
    +        /// Boolean that specifies if the point should be projected onto the perimeter
    +        /// of the terminal.
    +        /// </summary>
    +        protected bool perimeter;
    +
    +        /// <summary>
    +        /// Constructs an empty connection constraint.
    +        /// </summary>
    +        public mxConnectionConstraint() : this(null) { }
    +
    +        /// <summary>
    +        /// Constructs a connection constraint for the given point.
    +        /// </summary>
    +        public mxConnectionConstraint(mxPoint point) : this(point, true) { }
    +
    +        /// <summary>
    +        /// Constructs a new connection constraint for the given point and boolean
    +        /// arguments.
    +        /// </summary>
    +        /// <param name="point">Optional mxPoint that specifies the fixed location of the point
    +        /// in relative coordinates. Default is null.</param>
    +        /// <param name="perimeter">Optional boolean that specifies if the fixed point should be
    +        /// projected onto the perimeter of the terminal. Default is true.</param>
    +        public mxConnectionConstraint(mxPoint point, bool perimeter)
    +        {
    +            Point = point;
    +            Perimeter = perimeter;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the point.
    +        /// </summary>
    +        public mxPoint Point
    +        {
    +            get { return point; }
    +            set { point = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns perimeter.
    +        /// </summary>
    +        public bool Perimeter
    +        {
    +            get { return perimeter; }
    +            set { perimeter = value; }
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/view/mxEdgeStyle.cs b/dotnet/src/view/mxEdgeStyle.cs
    new file mode 100644
    index 000000000..41b89070d
    --- /dev/null
    +++ b/dotnet/src/view/mxEdgeStyle.cs
    @@ -0,0 +1,472 @@
    +// $Id: mxEdgeStyle.cs,v 1.28 2010-06-10 08:57:30 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines the requirements for an edge style function.  At the time
    +    /// the function is called, the result array contains a placeholder (null)
    +    /// for the first absolute point, that is, the point where the edge and
    +    /// source terminal are connected. The implementation of the style then
    +    /// adds all intermediate waypoints except for the last point, that is,
    +    /// the connection point between the edge and the target terminal. The
    +    /// first ant the last point in the result array are then replaced with
    +    /// mxPoints that take into account the terminal's perimeter and next point
    +    /// on the edge.
    +    /// </summary>
    +    /// <param name="state">Cell state that represents the edge to be updated.</param>
    +    /// <param name="source">Cell state that represents the source terminal.</param>
    +    /// <param name="target">Cell state that represents the target terminal.</param>
    +    /// <param name="points">List of relative control points.</param>
    +    /// <param name="result">Array of points that represent the actual points of the
    +    /// edge.</param>
    +    public delegate void mxEdgeStyleFunction(mxCellState state, mxCellState source,
    +        mxCellState target, List<mxPoint> points, List<mxPoint> result);
    +
    +    /// <summary>
    +    /// Provides various edge styles to be used as the values for
    +    /// mxConstants.STYLE_EDGE in a cell style.
    +    /// </summary>
    +    public class mxEdgeStyle
    +    {
    +
    +        /// <summary>
    +        /// Implements an entity relation style for edges (as used in database
    +        /// schema diagrams).
    +        /// </summary>
    +        public static mxEdgeStyleFunction EntityRelation = delegate(
    +            mxCellState state, mxCellState source,
    +            mxCellState target, List<mxPoint> points,
    +            List<mxPoint> result)
    +        {
    +            mxGraphView view = state.View;
    +            mxIGraphModel model = view.Graph.Model;
    +            double segment = mxUtils.GetDouble(state.Style,
    +                mxConstants.STYLE_SEGMENT, mxConstants.ENTITY_SEGMENT) *
    +                state.View.Scale;
    +
    +            mxPoint p0 = state.AbsolutePoints[0];
    +            mxPoint pe = state.AbsolutePoints[state.AbsolutePointCount() - 1];
    +
    +            bool isSourceLeft = false;
    +
    +            if (p0 != null)
    +            {
    +                source = new mxCellState();
    +                source.X = p0.X;
    +                source.Y = p0.Y;
    +            }
    +            else if (source != null)
    +            {
    +                mxGeometry sourceGeometry = model.GetGeometry(source.Cell);
    +
    +                if (sourceGeometry.Relative)
    +                {
    +                    isSourceLeft = sourceGeometry.X <= 0.5;
    +                }
    +                else if (target != null)
    +                {
    +                    isSourceLeft = target.X + target.Width < source
    +                            .X;
    +                }
    +            }
    +
    +			bool isTargetLeft = true;
    +
    +            if (pe != null)
    +            {
    +                target = new mxCellState();
    +                target.X = pe.X;
    +                target.Y = pe.Y;
    +            }
    +            else if (target != null)
    +            {
    +                mxGeometry targetGeometry = model.GetGeometry(target.Cell);
    +
    +                if (targetGeometry.Relative)
    +                {
    +                    isTargetLeft = targetGeometry.X <= 0.5;
    +                }
    +                else if (source != null)
    +                {
    +                    isTargetLeft = source.X + source.Width < target
    +                            .X;
    +                }
    +            }
    +
    +            if (source != null && target != null)
    +            {
    +                double x0 = (isSourceLeft) ? source.X : source.X
    +                        + source.Width;
    +                double y0 = view.GetRoutingCenterY(source);
    +
    +                double xe = (isTargetLeft) ? target.X : target.X
    +                        + target.Width;
    +                double ye = view.GetRoutingCenterY(target);
    +
    +                double seg = segment;
    +
    +                double dx = (isSourceLeft) ? -seg : seg;
    +                mxPoint dep = new mxPoint(x0 + dx, y0);
    +                result.Add(dep);
    +
    +                dx = (isTargetLeft) ? -seg : seg;
    +                mxPoint arr = new mxPoint(xe + dx, ye);
    +
    +                // Adds intermediate points if both go out on same side
    +                if (isSourceLeft == isTargetLeft)
    +                {
    +                    double x = (isSourceLeft) ? Math.Min(x0, xe) - segment : Math
    +                            .Max(x0, xe)
    +                            + segment;
    +                    result.Add(new mxPoint(x, y0));
    +                    result.Add(new mxPoint(x, ye));
    +                }
    +                else if ((dep.X < arr.X) == isSourceLeft)
    +                {
    +                    double midY = y0 + (ye - y0) / 2;
    +                    result.Add(new mxPoint(dep.X, midY));
    +                    result.Add(new mxPoint(arr.X, midY));
    +                }
    +
    +                result.Add(arr);
    +            }
    +		};
    +
    +        /// <summary>
    +        /// Implements a self-reference, aka. loop.
    +        /// </summary>
    +        public static mxEdgeStyleFunction Loop = delegate(
    +            mxCellState state, mxCellState source,
    +            mxCellState target, List<mxPoint> points,
    +            List<mxPoint> result)
    +        {
    +            if (source != null)
    +            {
    +                mxGraphView view = state.View;
    +                mxGraph graph = view.Graph;
    +                mxPoint pt = (points != null && points.Count > 0) ? points[0] : null;
    +
    +                if (pt != null)
    +                {
    +                    pt = view.TransformControlPoint(state, pt);
    +
    +                    if (source.Contains(pt.X, pt.Y))
    +                    {
    +                        pt = null;
    +                    }
    +                }
    +
    +                double x = 0;
    +                double dx = 0;
    +                double y = 0;
    +                double dy = 0;
    +
    +                double seg = mxUtils.GetDouble(state.Style,
    +                    mxConstants.STYLE_SEGMENT, graph.GridSize)
    +                    * view.Scale;
    +                String dir = mxUtils.GetString(state.Style,
    +                                mxConstants.STYLE_DIRECTION,
    +                                mxConstants.DIRECTION_WEST);
    +                if (dir.Equals(mxConstants.DIRECTION_NORTH)
    +                   || dir.Equals(mxConstants.DIRECTION_SOUTH))
    +                {
    +                    x = view.GetRoutingCenterX(source);
    +                    dx = seg;
    +                }
    +                else
    +                {
    +                    y = view.GetRoutingCenterY(source);
    +                    dy = seg;
    +                }
    +
    +                if (pt == null ||
    +                    pt.X < source.X ||
    +                    pt.X > source.X + source.Width)
    +                {
    +                    if (pt != null)
    +                    {
    +                        x = pt.X;
    +                        dy = Math.Max(Math.Abs(y - pt.Y), dy);
    +                    }
    +                    else
    +                    {
    +                        if (dir.Equals(mxConstants.DIRECTION_NORTH))
    +                        {
    +                            y = source.Y - 2 * dx;
    +                        }
    +                        else if (dir.Equals(mxConstants.DIRECTION_SOUTH))
    +                        {
    +                            y = source.Y + source.Height + 2 * dx;
    +                        }
    +                        else if (dir.Equals(mxConstants.DIRECTION_EAST))
    +                        {
    +                            x = source.X - 2 * dy;
    +                        }
    +                        else
    +                        {
    +                            x = source.X + source.Width + 2 * dy;
    +                        }
    +                    }
    +                }
    +                else if (pt != null)
    +                {
    +                    x = view.GetRoutingCenterX(source);
    +                    dx = Math.Max(Math.Abs(x - pt.X), dy);
    +                    y = pt.Y;
    +                    dy = 0;
    +                }
    +
    +                result.Add(new mxPoint(x - dx, y - dy));
    +                result.Add(new mxPoint(x + dx, y + dy));
    +            }
    +	    };
    +
    +        /// <summary>
    +        /// Uses either SideToSide or TopToBottom depending on the horizontal
    +        /// flag in the cell style. SideToSide is used if horizontal is true or
    +        /// unspecified.
    +        /// </summary>
    +        public static mxEdgeStyleFunction ElbowConnector = delegate(
    +            mxCellState state, mxCellState source,
    +            mxCellState target, List<mxPoint> points,
    +            List<mxPoint> result)
    +        {
    +            mxPoint pt = (points != null && points.Count > 0) ? points[0] : null;
    +
    +            bool vertical = false;
    +    		bool horizontal = false;
    +
    +            if (source != null && target != null)
    +		    {
    +                if (pt != null)
    +                {
    +                    double left = Math.Min(source.X, target.X);
    +                    double right = Math.Max(source.X + source.Width,
    +                        target.X + target.Width);
    +
    +                    double top = Math.Min(source.Y, target.Y);
    +                    double bottom = Math.Max(source.Y + source.Height,
    +                        target.Y + target.Height);
    +
    +                    pt = state.View.TransformControlPoint(state, pt);
    +
    +                    vertical = pt.Y < top || pt.Y > bottom;
    +                    horizontal = pt.X < left || pt.X > right;
    +                }
    +                else
    +                {
    +                    double left = Math.Max(source.X, target.X);
    +                    double right = Math.Min(source.X + source.Width,
    +                            target.X + target.Width);
    +
    +                    vertical = left == right;
    +
    +                    if (!vertical)
    +                    {
    +                        double top = Math.Max(source.Y, target.Y);
    +                        double bottom = Math.Min(source.Y
    +                                + source.Height, target.Y
    +                                + target.Height);
    +
    +                        horizontal = top == bottom;
    +                    } 
    +                }
    +		    }
    +
    +		    if (!horizontal && (vertical ||
    +			    mxUtils.GetString(state.Style, mxConstants.STYLE_ELBOW, "").Equals(mxConstants.ELBOW_VERTICAL)))
    +		    {
    +			    mxEdgeStyle.TopToBottom(state, source, target, points, result);
    +		    }
    +		    else
    +		    {
    +			    mxEdgeStyle.SideToSide(state, source, target, points, result);
    +		    }
    +        };
    +
    +        /// <summary>
    +        /// Implements a vertical elbow edge.
    +        /// </summary>
    +        public static mxEdgeStyleFunction SideToSide = delegate(
    +            mxCellState state, mxCellState source,
    +            mxCellState target, List<mxPoint> points,
    +            List<mxPoint> result)
    +        {
    +            mxGraphView view = state.View;
    +            mxPoint pt = (points != null && points.Count > 0) ? points[0] : null;
    +            mxPoint p0 = state.AbsolutePoints[0];
    +            mxPoint pe = state.AbsolutePoints[state.AbsolutePointCount() - 1];
    +
    +            if (pt != null)
    +            {
    +                pt = view.TransformControlPoint(state, pt);
    +            }
    +
    +            if (p0 != null)
    +            {
    +                source = new mxCellState();
    +                source.X = p0.X;
    +                source.Y = p0.Y;
    +            }
    +
    +            if (pe != null)
    +            {
    +                target = new mxCellState();
    +                target.X = pe.X;
    +                target.Y = pe.Y;
    +            }
    +
    +            if (source != null && target != null)
    +            {
    +                double l = Math.Max(source.X, target.X);
    +                double r = Math.Min(source.X + source.Width,
    +                                 target.X + target.Width);
    +
    +                double x = (pt != null) ? pt.X : r + (l - r) / 2;
    +
    +                double y1 = view.GetRoutingCenterY(source);
    +                double y2 = view.GetRoutingCenterY(target);
    +
    +                if (pt != null)
    +                {
    +                    if (pt.Y >= source.Y &&
    +                        pt.Y <= source.Y + source.Height)
    +                    {
    +                        y1 = pt.Y;
    +                    }
    +
    +                    if (pt.Y >= target.Y &&
    +                        pt.Y <= target.Y + target.Height)
    +                    {
    +                        y2 = pt.Y;
    +                    }
    +                }
    +
    +                if (!target.Contains(x, y1) &&
    +                    !source.Contains(x, y1))
    +                {
    +                    result.Add(new mxPoint(x, y1));
    +                }
    +
    +                if (!target.Contains(x, y2) &&
    +                    !source.Contains(x, y2))
    +                {
    +                    result.Add(new mxPoint(x, y2));
    +                }
    +
    +                if (result.Count == 1)
    +                {
    +                    if (pt != null)
    +                    {
    +                        result.Add(new mxPoint(x, pt.Y));
    +                    }
    +                    else
    +                    {
    +                        double t = Math.Max(source.Y, target.Y);
    +                        double b = Math.Min(source.Y + source.Height,
    +                                target.Y + target.Height);
    +
    +                        result.Add(new mxPoint(x, t + (b - t) / 2));
    +                    }
    +                }
    +            }
    +        };
    +
    +        /// <summary>
    +        /// Implements a horizontal elbow edge.
    +        /// </summary>
    +        public static mxEdgeStyleFunction TopToBottom = delegate(
    +            mxCellState state, mxCellState source,
    +            mxCellState target, List<mxPoint> points,
    +            List<mxPoint> result)
    +        {
    +            mxGraphView view = state.View;
    +            mxPoint pt = (points != null && points.Count > 0) ? points[0] : null;
    +            mxPoint p0 = state.AbsolutePoints[0];
    +            mxPoint pe = state.AbsolutePoints[state.AbsolutePointCount() - 1];
    +
    +            if (pt != null)
    +            {
    +                pt = view.TransformControlPoint(state, pt);
    +            }
    +
    +            if (p0 != null)
    +            {
    +                source = new mxCellState();
    +                source.X = p0.X;
    +                source.Y = p0.Y;
    +            }
    +
    +            if (pe != null)
    +            {
    +                target = new mxCellState();
    +                target.X = pe.X;
    +                target.Y = pe.Y;
    +            }
    +
    +            if (source != null && target != null)
    +            {
    +                double t = Math.Max(source.Y, target.Y);
    +                double b = Math.Min(source.Y + source.Height,
    +                                 target.Y + target.Height);
    +
    +                double x = view.GetRoutingCenterX(source);
    +
    +                if (pt != null &&
    +                    pt.X >= source.X &&
    +                    pt.X <= source.X + source.Width)
    +                {
    +                    x = pt.X;
    +                }
    +
    +                double y = (pt != null) ? pt.Y : b + (t - b) / 2;
    +
    +                if (!target.Contains(x, y) &&
    +                    !source.Contains(x, y))
    +                {
    +                    result.Add(new mxPoint(x, y));
    +                }
    +
    +                if (pt != null &&
    +                    pt.X >= target.X &&
    +                    pt.X <= target.X + target.Width)
    +                {
    +                    x = pt.X;
    +                }
    +                else
    +                {
    +                    x = view.GetRoutingCenterX(target);
    +                }
    +
    +                if (!target.Contains(x, y) &&
    +                    !source.Contains(x, y))
    +                {
    +                    result.Add(new mxPoint(x, y));
    +                }
    +
    +                if (result.Count == 1)
    +                {
    +                    if (pt != null)
    +                    {
    +                        result.Add(new mxPoint(pt.X, y));
    +                    }
    +                    else
    +                    {
    +                        double l = Math.Max(source.X, target.X);
    +                        double r = Math.Min(source.X + source.Width,
    +                                target.X + target.Width);
    +
    +                        result.Add(new mxPoint(l + (r - l) / 2, y));
    +                    }
    +                }
    +            }
    +        };
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/view/mxGraph.cs b/dotnet/src/view/mxGraph.cs
    new file mode 100644
    index 000000000..fac7ce54c
    --- /dev/null
    +++ b/dotnet/src/view/mxGraph.cs
    @@ -0,0 +1,1560 @@
    +// $Id: mxGraph.cs,v 1.105 2012-04-18 09:05:49 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Implements a graph object that allows to create diagrams from a graph model
    +    /// and stylesheet.
    +    /// </summary>
    +    public class mxGraph
    +    {
    +        /// <summary>
    +        /// Holds the version number of this release. Current version
    +        /// is 1.10.0.5.
    +        /// </summary>
    +        public const String VERSION = "1.10.0.5";
    +
    +        /// <summary>
    +        /// Holds the model that contains the cells to be displayed.
    +        /// </summary>
    +        protected mxIGraphModel model;
    +
    +        /// <summary>
    +        /// Holds the stylesheet that defines the appearance of the cells.
    +        /// </summary>
    +        protected mxStylesheet stylesheet;
    +
    +        /// <summary>
    +        /// Holds the view that caches the cell states.
    +        /// </summary>
    +        protected mxGraphView view;
    +
    +        /// <summary>
    +        /// Specifies the default style for loops.
    +        /// </summary>
    +        protected mxEdgeStyleFunction defaultLoopStyle = mxEdgeStyle.Loop;
    +
    +        /// <summary>
    +        /// Specifies the tolerance for mouse clicks. Default is 4.
    +        /// </summary>
    +        protected int tolerance = 4;
    +
    +        /// <summary>
    +        /// Specifies if labels should be visible. This is used in
    +        /// GetLabel. Default is true.
    +        /// </summary>
    +        protected bool labelsVisible = true;
    +
    +        /// <summary>
    +        /// Specifies the grid size. Default is 10.
    +        /// </summary>
    +        protected int gridSize = 10;
    +
    +        /// <summary>
    +        /// Specifies if the grid is enabled. Default is true.
    +        /// </summary>
    +        protected bool gridEnabled = true;
    +
    +        /// <summary>
    +        /// Holds the list of image bundles.
    +        /// </summary>
    +        protected List<mxImageBundle> imageBundles = new List<mxImageBundle>();
    +
    +        /// <summary>
    +        /// Constructs a new graph with an empty graph model.
    +        /// </summary>
    +        public mxGraph() : this(null, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new graph for the specified model. If no model is
    +        /// specified, then a new, empty graph model is used.
    +        /// </summary>
    +        public mxGraph(mxIGraphModel model) : this(model, null) { }
    +
    +        /// <summary>
    +        /// Constructs a new graph for the specified model. If no model is
    +        /// specified, then a new, empty graph model is used.
    +        /// </summary>
    +        public mxGraph(mxStylesheet stylesheet) : this(null, stylesheet) { }
    +
    +        /// <summary>
    +        /// Constructs a new graph for the specified model. If no model is
    +        /// specified, then a new, empty graph model is used.
    +        /// </summary>
    +        public mxGraph(mxIGraphModel model, mxStylesheet stylesheet)
    +        {
    +            this.Model = (model != null) ? model : new mxGraphModel();
    +            this.Stylesheet = (stylesheet != null) ? stylesheet : CreateStylesheet();
    +            this.View = CreateGraphView();
    +        }
    +
    +        /// <summary>
    +        /// Constructs a new stylesheet to be used in this graph.
    +        /// </summary>
    +        /// <returns></returns>
    +        protected mxStylesheet CreateStylesheet()
    +        {
    +            return new mxStylesheet();
    +        }
    +
    +        /// <summary>
    +        /// Constructs a new view to be used in this graph.
    +        /// </summary>
    +        /// <returns></returns>
    +        protected mxGraphView CreateGraphView()
    +        {
    +            return new mxGraphView(this);
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the graph model that contains the graph data.
    +        /// </summary>
    +        public mxIGraphModel Model
    +        {
    +            get { return model; }
    +            set
    +            {
    +                // TODO: Remove listener from old model
    +                model = value;
    +                model.GraphModelChange += new mxGraphModelChangeEventHandler(GraphModelChanged);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the stylesheet that provides the style.
    +        /// </summary>
    +        public mxStylesheet Stylesheet
    +        {
    +            get { return stylesheet; }
    +            set { stylesheet = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the view that contains the cell states.
    +        /// </summary>
    +        public mxGraphView View
    +        {
    +            get { return view; }
    +            set
    +            {
    +                view = value;
    +
    +                if (view != null)
    +                {
    +                    view.Revalidate();
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the default edge style for loops.
    +        /// </summary>
    +        public mxEdgeStyleFunction DefaultLoopStyle
    +        {
    +            get { return defaultLoopStyle; }
    +            set { defaultLoopStyle = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the enabled state of the grid.
    +        /// </summary>
    +        public bool GridEnabled
    +        {
    +            get { return gridEnabled; }
    +            set { gridEnabled = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the grid size.
    +        /// </summary>
    +        public int GridSize
    +        {
    +            get { return gridSize; }
    +            set { gridSize = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns if labels are visible
    +        /// </summary>
    +        public bool LabelsVisible
    +        {
    +            get { return labelsVisible; }
    +            set { labelsVisible = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the image bundles.
    +        /// </summary>
    +        public List<mxImageBundle> ImageBundles
    +        {
    +            get { return imageBundles; }
    +            set { imageBundles = value; }
    +        }
    +
    +        /// <summary>
    +        /// Snaps the given numeric value to the grid if gridEnabled is true.
    +        /// </summary>
    +        /// <param name="value">Numeric value to be snapped to the grid.</param>
    +        /// <returns>Returns the value aligned to the grid.</returns>
    +        public double Snap(double value)
    +        {
    +            if (GridEnabled)
    +            {
    +                value = Math.Round(value / gridSize) * gridSize;
    +            }
    +
    +            return value;
    +        }
    +
    +        /// <summary>
    +        /// Returns the first child of the root in the model, that is, the first or
    +        /// default layer of the diagram.
    +        /// </summary>
    +        /// <returns>Returns the default parent for new cells.</returns>
    +        public Object GetDefaultParent()
    +        {
    +            return model.GetChildAt(model.Root, 0);
    +        }
    +
    +        /// <summary>
    +        /// Returns the textual representation for the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell to be converted to a string.</param>
    +        /// <returns>Returns the textual representation of the cell.</returns>
    +        public string ConvertValueToString(Object cell)
    +        {
    +            Object result = model.GetValue(cell);
    +
    +            return (result != null) ? result.ToString() : "";
    +        }
    +
    +        /// <summary>
    +        /// Returns a string or markup that represents the label for the given
    +        /// cell. This implementation uses ConvertValueToString if labelsVisible
    +        /// is true. Otherwise it returns an empty string.
    +        /// </summary>
    +        /// <param name="cell"></param>
    +        /// <returns></returns>
    +        public string GetLabel(Object cell)
    +        {
    +            string result = "";
    +
    +            if (cell != null)
    +            {
    +                mxCellState state = View.GetState(cell);
    +                Dictionary<string, Object> style = (state != null) ?
    +                    state.Style : GetCellStyle(cell);
    +
    +                if (labelsVisible &&
    +                    !mxUtils.IsTrue(style, mxConstants.STYLE_NOLABEL, false))
    +                {
    +                    result = ConvertValueToString(cell);
    +                }
    +            }
    +
    +            return result;
    +        }
    +
    +        /// <summary>
    +        /// Returns the offset to be used for the cells inside the given cell. The
    +        /// root and layer cells may be identified using mxGraphModel.isRoot and
    +        /// mxGraphModel.isLayer. This implementation returns null.
    +        /// </summary>
    +        /// <param name="cell">Cell whose offset should be returned.</param>
    +        /// <returns>Returns the child offset for the given cell.</returns>
    +        public mxPoint GetChildOffsetForCell(Object cell)
    +        {
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if perimeter points should be computed such that the
    +        /// resulting edge has only horizontal or vertical segments. 
    +        /// </summary>
    +        /// <param name="edge">Cell state that represents the edge.</param>
    +        /// <returns>True if the edge is orthogonal.</returns>
    +        public bool IsOrthogonal(mxCellState edge)
    +        {
    +            if (edge.Style.ContainsKey(mxConstants.STYLE_ORTHOGONAL))
    +            {
    +                return mxUtils.IsTrue(edge.Style, mxConstants.STYLE_ORTHOGONAL);
    +            }
    +
    +            mxEdgeStyleFunction tmp = view.GetEdgeStyle(edge, null, null, null);
    +
    +            return tmp == mxEdgeStyle.ElbowConnector ||
    +                tmp == mxEdgeStyle.SideToSide ||
    +                tmp == mxEdgeStyle.TopToBottom ||
    +                tmp == mxEdgeStyle.EntityRelation;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given cell is a swimlane.
    +        /// </summary>
    +        /// <param name="cell">Cell that should be checked.</param>
    +        /// <returns>Returns true if the cell is a swimlane.</returns>
    +        public bool IsSwimlane(Object cell)
    +        {
    +            if (cell != null)
    +            {
    +                if (Model.GetParent(cell) != Model.Root)
    +                {
    +                    mxCellState state = View.GetState(cell);
    +                    Dictionary<string, Object> style = (state != null) ?
    +                        state.Style : GetCellStyle(cell);
    +
    +                    if (style != null &&
    +                        !Model.IsEdge(cell))
    +                    {
    +                        return mxUtils.GetString(style, mxConstants.STYLE_SHAPE, "").
    +                            Equals(mxConstants.SHAPE_SWIMLANE);
    +                    }
    +                }
    +            }
    +
    +            return false;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given cell is movable. This implementation always
    +        /// returns true.
    +        /// </summary>
    +        /// <param name="cell">Cell whose movable state should be returned.</param>
    +        /// <returns>Returns true if the cell is movable.</returns>
    +        public bool IsCellMovable(Object cell)
    +        {
    +            return true;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given cell is visible. This implementation returns
    +        /// true if the visible state of the cell in the model is true.
    +        /// </summary>
    +        /// <param name="cell">Cell whose visible state should be returned.</param>
    +        /// <returns>Returns the visible state of the cell.</returns>
    +        public bool IsCellVisible(Object cell)
    +        {
    +            return model.IsVisible(cell);
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given cell is collapsed. This implementation returns
    +        /// true if the collapsed state of the cell in the model is true.
    +        /// </summary>
    +        /// <param name="cell">Cell whose collapsed state should be returned.</param>
    +        /// <returns>Returns the collapsed state of the cell.</returns>
    +        public bool IsCellCollapsed(Object cell)
    +        {
    +            return model.IsCollapsed(cell);
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given cell is connectable. This implementation returns
    +        /// true if the connectable state of the cell in the model is true.
    +        /// </summary>
    +        /// <param name="cell">Cell whose connectable state should be returned.</param>
    +        /// <returns>Returns the connectable state of the cell.</returns>
    +        public bool IsCellConnectable(Object cell)
    +        {
    +            return model.IsConnectable(cell);
    +        }
    +
    +        /// <summary>
    +        /// Returns the geometry for the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose geometry should be returned.</param>
    +        /// <returns>Returns the geometry of the cell.</returns>
    +        public mxGeometry GetCellGeometry(Object cell)
    +        {
    +            return model.GetGeometry(cell);
    +        }
    +
    +        /// <summary>
    +        /// Returns the style for the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose style should be returned.</param>
    +        /// <returns>Returns the style of the cell.</returns>
    +        public Dictionary<string, Object> GetCellStyle(Object cell)
    +        {
    +            Dictionary<string, Object> style = (model.IsEdge(cell)) ?
    +                stylesheet.DefaultEdgeStyle :
    +                stylesheet.DefaultVertexStyle;
    +
    +            string name = model.GetStyle(cell);
    +
    +            if (name != null)
    +            {
    +                style = PostProcessCellStyle(stylesheet.GetCellStyle(name, style));
    +            }
    +
    +            if (style == null)
    +            {
    +                style = mxStylesheet.EMPTY_STYLE;
    +            }
    +
    +            return style;
    +        }
    +
    +        /// <summary>
    +        /// Tries to resolve the value for the image style in the image bundles
    +        /// and turns short data URIs as defined in mxImageBundle to data URIs
    +        /// as defined in RFC 2397 of the IETF.
    +        /// </summary>
    +        protected Dictionary<string, Object> PostProcessCellStyle(Dictionary<string, Object> style)
    +        {
    +            if (style != null)
    +            {
    +                String key = mxUtils.GetString(style, mxConstants.STYLE_IMAGE);
    +                String image = GetImageFromBundles(key);
    +
    +                if (image != null)
    +                {
    +                    style[mxConstants.STYLE_IMAGE] = image;
    +                }
    +                else
    +                {
    +                    image = key;
    +                }
    +
    +                // Converts short data uris to normal data uris
    +                if (image != null && image.StartsWith("data:image/"))
    +                {
    +                    int comma = image.IndexOf(',');
    +
    +                    if (comma > 0)
    +                    {
    +                        image = image.Substring(0, comma) + ";base64," +
    +                            image.Substring(comma + 1);
    +                    }
    +
    +                    style[mxConstants.STYLE_IMAGE] = image;
    +                }
    +            }
    +
    +            return style;
    +        }
    +
    +        /// <summary>
    +        /// Adds the specified bundle.
    +        /// </summary>
    +        public void AddImageBundle(mxImageBundle bundle)
    +        {
    +            imageBundles.Add(bundle);
    +        }
    +
    +        /// <summary>
    +        /// Removes the specified bundle.
    +        /// </summary>
    +        public void RemoveImageBundle(mxImageBundle bundle)
    +        {
    +            imageBundles.Remove(bundle);
    +        }
    +
    +        /// <summary>
    +        /// Searches all bundles for the specified key and returns the value for the
    +        /// first match or null if the key is not found.
    +        /// </summary>
    +        /// <param name="key"></param>
    +        /// <returns></returns>
    +        public String GetImageFromBundles(String key)
    +        {
    +            if (key != null)
    +            {
    +                foreach (mxImageBundle bundle in imageBundles)
    +                {
    +                    String value = bundle.GetImage(key);
    +
    +                    if (value != null)
    +                    {
    +                        return value;
    +                    }
    +                }
    +            }
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Sets the key to value in the styles of the given cells. This will modify
    +        /// the existing cell styles in-place and override any existing assignment
    +        /// for the given key. If no cells are specified, then the selection cells
    +        /// are changed. If no value is specified, then the respective key is
    +        /// removed from the styles.
    +        /// </summary>
    +        /// <param name="key">String representing the key to be assigned.</param>
    +        /// <param name="value">String representing the new value for the key.</param>
    +        /// <param name="cells">Array of cells to change the style for.</param>
    +        public void SetCellStyles(String key, String value, Object[] cells)
    +        {
    +            mxUtils.SetCellStyles(model, cells, key, value);
    +        }
    +
    +        /// <summary>
    +        /// Creates and adds a new vertex with an empty style, see AddVertex.
    +        /// </summary>
    +        public Object InsertVertex(Object parent, string id, Object value, double x, double y,
    +            double width, double height)
    +        {
    +            return InsertVertex(parent, id, value, x, y, width, height, null);
    +        }
    +
    +        /// <summary>
    +        /// Creates and adds a new vertex with an empty style, see AddVertex.
    +        /// </summary>
    +        public Object InsertVertex(Object parent, string id, Object value, double x, double y,
    +            double width, double height, string style)
    +        {
    +            return InsertVertex(parent, id, value, x, y, width, height, style, false);
    +        }
    +
    +        /// <summary>
    +        /// Adds a new vertex into the given parent using value as the user object
    +        /// and the given coordinates as the geometry of the new vertex. The id and
    +        /// style are used for the respective properties of the new cell, which is
    +        /// returned.
    +        /// </summary>
    +        /// <param name="parent">Cell that specifies the parent of the new vertex.</param>
    +        /// <param name="id">Optional string that defines the Id of the new vertex.</param>
    +        /// <param name="value">Object to be used as the user object.</param>
    +        /// <param name="x">Integer that defines the x coordinate of the vertex.</param>
    +        /// <param name="y">Integer that defines the y coordinate of the vertex.</param>
    +        /// <param name="width">Integer that defines the width of the vertex.</param>
    +        /// <param name="height">Integer that defines the height of the vertex.</param>
    +        /// <param name="style">Optional string that defines the cell style.</param>
    +        /// <returns>Returns the new vertex that has been inserted.</returns>
    +        public Object InsertVertex(Object parent, string id, Object value, double x, double y,
    +            double width, double height, string style, bool relative)
    +        {
    +            if (parent == null)
    +            {
    +                parent = GetDefaultParent();
    +            }
    +
    +            Object vertex = CreateVertex(parent, id, value, x, y, width, height, style, relative);
    +            int index = model.GetChildCount(parent);
    +
    +            return model.Add(parent, vertex, index);
    +        }
    +        
    +        /// <summary>
    +        /// Creates a new vertex to be used in insertVertex.
    +        /// </summary>
    +        public Object CreateVertex(Object parent, string id, Object value, double x, double y,
    +            double width, double height, string style)
    +        {
    +            return CreateVertex(parent, id, value, x, y, width, height, style, false);
    +        }
    +
    +        /// <summary>
    +        /// Creates a new vertex to be used in insertVertex.
    +        /// </summary>
    +        public Object CreateVertex(Object parent, string id, Object value, double x, double y,
    +            double width, double height, string style, bool relative)
    +        {
    +            mxGeometry geometry = new mxGeometry(x, y, width, height);
    +            geometry.Relative = relative;
    +
    +            mxCell vertex = new mxCell(value, geometry, style);
    +            vertex.Id = id;
    +            vertex.Vertex = true;
    +            vertex.Connectable = true;
    +
    +            return vertex;
    +        }
    +
    +        /// <summary>
    +        /// Creates and adds a new edge with an empty style.
    +        /// </summary>
    +        public Object InsertEdge(Object parent, string id, Object value, Object source, Object target)
    +        {
    +            return InsertEdge(parent, id, value, source, target, null);
    +        }
    +
    +        /// <summary>
    +        /// Adds a new edge into the given parent using value as the user object and
    +        /// the given source and target as the terminals of the new edge. The Id and
    +        /// style are used for the respective properties of the new cell, which is
    +        /// returned.
    +        /// </summary>
    +        /// <param name="parent">Cell that specifies the parent of the new edge.</param>
    +        /// <param name="id">Optional string that defines the Id of the new edge.</param>
    +        /// <param name="value">Object to be used as the user object.</param>
    +        /// <param name="source">Cell that defines the source of the edge.</param>
    +        /// <param name="target">Cell that defines the target of the edge.</param>
    +        /// <param name="style">Optional string that defines the cell style.</param>
    +        /// <returns>Returns the new edge that has been inserted.</returns>
    +        public Object InsertEdge(Object parent, string id, Object value, Object source, Object target, string style)
    +        {
    +            if (parent == null)
    +            {
    +                parent = GetDefaultParent();
    +            }
    +
    +            Object edge = CreateEdge(parent, id, value, source, target, style);
    +
    +            // Appends the edge to the given parent and sets
    +            // the edge terminals in a single transaction
    +            int index = model.GetChildCount(parent);
    +
    +            model.BeginUpdate();
    +            try
    +            {
    +                model.Add(parent, edge, index);
    +                model.SetTerminal(edge, source, true);
    +                model.SetTerminal(edge, target, false);
    +            }
    +            finally
    +            {
    +                model.EndUpdate();
    +            }
    +
    +            return edge;
    +        }
    +
    +        /// <summary>
    +        /// Creates the edge to be used in insertEdge. This implementation does
    +        /// not set the source and target of the edge, these are set when the
    +        /// edge is added to the model.
    +        /// </summary>
    +        public Object CreateEdge(Object parent, string id, Object value, Object source, Object target, string style)
    +        {
    +            mxCell edge = new mxCell(value, new mxGeometry(), style);
    +
    +            edge.Id = id;
    +            edge.Edge = true;
    +            edge.Geometry.Relative = true;
    +
    +            return edge;
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounds of the visible graph.
    +        /// </summary>
    +        public mxRectangle GetGraphBounds()
    +        {
    +            return view.GraphBounds;
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounds of the given cell.
    +        /// </summary>
    +        public mxRectangle GetCellBounds(Object cell)
    +        {
    +            return GetCellBounds(cell, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounds of the given cell including all connected edges
    +        /// if includeEdge is true.
    +        /// </summary>
    +        public mxRectangle GetCellBounds(Object cell, bool includeEdges)
    +        {
    +            return GetCellBounds(cell, includeEdges, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounds of the given cell including all connected edges
    +        /// if includeEdge is true.
    +        /// </summary>
    +        public mxRectangle GetCellBounds(Object cell, bool includeEdges, bool includeDescendants)
    +        {
    +            return GetCellBounds(cell, includeEdges, includeDescendants, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounds of the given cell.
    +        /// </summary>
    +        public mxRectangle GetBoundingBox(Object cell)
    +        {
    +            return GetBoundingBox(cell, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounding box of the given cell including all connected edges
    +        /// if includeEdge is true.
    +        /// </summary>
    +        public mxRectangle GetBoundingBox(Object cell, bool includeEdges)
    +        {
    +            return GetCellBounds(cell, includeEdges, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounding box of the given cell including all connected edges
    +        /// if includeEdge is true.
    +        /// </summary>
    +        public mxRectangle GetBoundingBox(Object cell, bool includeEdges, bool includeDescendants)
    +        {
    +            return GetCellBounds(cell, includeEdges, includeDescendants, true);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounding box of the given cells and their descendants.
    +        /// </summary>
    +        public mxRectangle GetPaintBounds(Object[] cells)
    +        {
    +            return GetBoundsForCells(cells, false, true, true);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounds for the given cells.
    +        /// </summary>
    +        public mxRectangle GetBoundsForCells(Object[] cells, bool includeEdges,
    +                bool includeDescendants, bool boundingBox)
    +        {
    +            mxRectangle result = null;
    +
    +            if (cells != null && cells.Length > 0)
    +            {
    +                for (int i = 0; i < cells.Length; i++)
    +                {
    +                    mxRectangle tmp = GetCellBounds(cells[i], includeEdges,
    +                        includeDescendants, boundingBox);
    +
    +                    if (tmp != null)
    +                    {
    +                        if (result == null)
    +                        {
    +                            result = new mxRectangle(tmp);
    +                        }
    +                        else
    +                        {
    +                            result.Add(tmp);
    +                        }
    +                    }
    +                }
    +            }
    +
    +            return result;
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounds of the given cell including all connected edges
    +        /// if includeEdge is true.
    +        /// </summary>
    +        public mxRectangle GetCellBounds(Object cell, bool includeEdges,
    +                bool includeDescendants, bool boundingBox)
    +        {
    +            Object[] cells = null;
    +
    +            // Includes the connected edges
    +            if (includeEdges)
    +            {
    +                int edgeCount = model.GetEdgeCount(cell);
    +                cells = new Object[edgeCount + 1];
    +                cells[0] = cell;
    +
    +                for (int i = 0; i < edgeCount; i++)
    +                {
    +                    cells[i + 1] = model.GetEdgeAt(cell, i);
    +                }
    +            }
    +            else
    +            {
    +                cells = new Object[] { cell };
    +            }
    +
    +            mxRectangle result = null;
    +
    +            if (boundingBox)
    +            {
    +                result = view.GetBoundingBox(cells);
    +            }
    +            else
    +            {
    +                result = view.GetBounds(cells);
    +            }
    +
    +            // Recursively includes the bounds of the children
    +            if (includeDescendants)
    +            {
    +                int childCount = model.GetChildCount(cell);
    +
    +                for (int i = 0; i < childCount; i++)
    +                {
    +                    mxRectangle tmp = GetCellBounds(model.GetChildAt(cell, i),
    +                            includeEdges, true, boundingBox);
    +
    +                    if (result != null)
    +                    {
    +                        result.Add(tmp);
    +                    }
    +                    else
    +                    {
    +                        result = tmp;
    +                    }
    +                }
    +            }
    +
    +            return result;
    +        }
    +
    +        /// <summary>
    +        /// Returns a connection constraint that describes the given connection
    +        /// point. This result can then be passed to getConnectionPoint.
    +        /// </summary>
    +        /// <param name="edge">Cell state that represents the edge.</param>
    +        /// <param name="terminal">Cell state that represents the terminal.</param>
    +        /// <param name="source">Boolean indicating if the terminal is the source or target.</param>
    +        /// <returns></returns>
    +		public mxConnectionConstraint GetConnectionConstraint(mxCellState edge, mxCellState terminal, bool source)
    +		{
    +            mxPoint point = null;
    +            string key = (source) ? mxConstants.STYLE_EXIT_X : mxConstants.STYLE_ENTRY_X;
    +
    +            if (edge.Style.ContainsKey(key))
    +            {
    +                double x = mxUtils.GetDouble(edge.Style, key);
    +                key = (source) ? mxConstants.STYLE_EXIT_Y : mxConstants.STYLE_ENTRY_Y;
    +
    +                if (edge.Style.ContainsKey(key))
    +                {
    +                    double y = mxUtils.GetDouble(edge.Style, key);
    +					point = new mxPoint(x, y);
    +				}
    +			}
    +			
    +			bool perimeter = false;
    +			
    +			if (point != null)
    +			{
    +				perimeter = mxUtils.IsTrue(edge.Style, (source) ?
    +					mxConstants.STYLE_EXIT_PERIMETER :
    +					mxConstants.STYLE_ENTRY_PERIMETER, true);
    +			}
    +			
    +			return new mxConnectionConstraint(point, perimeter);
    +		}
    +
    +        /// <summary>
    +        /// Returns the nearest point in the list of absolute points or the center
    +        /// of the opposite terminal.
    +        /// </summary>
    +        /// <param name="vertex">Cell state that represents the vertex.</param>
    +        /// <param name="constraint">Connection constraint that represents the connection
    +        /// point constraint as returned by getConnectionConstraint.</param>
    +		public mxPoint GetConnectionPoint(mxCellState vertex, mxConnectionConstraint constraint)
    +		{
    +            mxPoint point = null;
    +			
    +			if (vertex != null &&
    +				constraint.Point != null)
    +			{
    +				point = new mxPoint(vertex.X + constraint.Point.X * vertex.Width,
    +						vertex.Y + constraint.Point.Y * vertex.Height);
    +			}
    +			
    +			if (point != null &&
    +				constraint.Perimeter)
    +			{
    +				point = View.GetPerimeterPoint(vertex, point, false);
    +			}
    +			
    +			return point;
    +		}
    +
    +        /// <summary>
    +        /// Returns the cell at the given location.
    +        /// </summary>
    +        public Object GetCellAt(int x, int y)
    +        {
    +            return GetCellAt(x, y, true);
    +        }
    +
    +        /// <summary>
    +        /// Returns the cell at the given location.
    +        /// </summary>
    +        public Object GetCellAt(int x, int y, bool hitSwimlaneContent)
    +        {
    +            return GetCellAt(x, y, hitSwimlaneContent, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bottom-most cell that intersects the given point (x, y) in
    +        /// the cell hierarchy starting at the given parent.
    +        /// </summary>
    +        /// <param name="x">X-coordinate of the location to be checked.</param>
    +        /// <param name="y">Y-coordinate of the location to be checked.</param>
    +        /// <param name="hitSwimlaneContent"></param>
    +        /// <param name="parent">that should be used as the root of the recursion.</param>
    +        /// <returns>Returns the child at the given location.</returns>
    +        public Object GetCellAt(int x, int y, bool hitSwimlaneContent,
    +                Object parent)
    +        {
    +            if (parent == null)
    +            {
    +                parent = GetDefaultParent();
    +            }
    +
    +            if (parent != null)
    +            {
    +                Rectangle hit = new Rectangle(x, y, 1, 1);
    +                int childCount = model.GetChildCount(parent);
    +
    +                for (int i = childCount - 1; i >= 0; i--)
    +                {
    +                    Object cell = model.GetChildAt(parent, i);
    +                    Object result = GetCellAt(x, y, hitSwimlaneContent, cell);
    +
    +                    if (result != null)
    +                    {
    +                        return result;
    +                    }
    +                    else if (IsCellVisible(cell)
    +                            && Intersects(view.GetState(cell), hit)
    +                            && (!IsSwimlane(cell) || hitSwimlaneContent || !HitsSwimlaneContent(
    +                                    cell, x, y)))
    +                    {
    +                        return cell;
    +                    }
    +                }
    +            }
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Returns the bottom-most cell that intersects the given point (x, y) in
    +        /// the cell hierarchy that starts at the given parent.
    +        /// </summary>
    +        /// <param name="state"></param>
    +        /// <param name="rect"></param>
    +        /// <returns>Returns true if the given cell state and rectangle intersect.</returns>
    +        public bool Intersects(mxCellState state, Rectangle rect)
    +        {
    +            if (state != null)
    +            {
    +                // Checks if the label intersects
    +                if (state.LabelBounds != null
    +                        && state.LabelBounds.GetRectangle().IntersectsWith(rect))
    +                {
    +                    return true;
    +                }
    +
    +                int pointCount = state.AbsolutePointCount();
    +
    +                // Checks if the segments of the edge intersect
    +                if (pointCount > 0)
    +                {
    +                    mxRectangle tmp = new mxRectangle(rect);
    +                    tmp.Grow(tolerance);
    +                    rect = tmp.GetRectangle();
    +
    +                    mxPoint p0 = state.AbsolutePoints[0];
    +
    +                    for (int i = 0; i < pointCount; i++)
    +                    {
    +                        mxPoint p1 = state.AbsolutePoints[i];
    +
    +                        // FIXME: Implement line intersection check
    +                        //if (rect.IntersectsLine(p0.X, p0.Y, p1.X, p1
    +                        //        .Y))
    +                        //    return true;
    +
    +                        p0 = p1;
    +                    }
    +                }
    +                else
    +                {
    +                    // Checks if the bounds of the shape intersect
    +                    return state.GetRectangle().IntersectsWith(rect);
    +                }
    +            }
    +
    +            return false;
    +        }
    +
    +        /// <summary>
    +        /// Returns true if the given point is inside the content area of the given
    +        /// swimlane. (The content area of swimlanes is transparent to events.) This
    +        /// implementation does not check if the given state is a swimlane, it is
    +        /// assumed that the caller has checked this before using this method.
    +        /// </summary>
    +        public bool HitsSwimlaneContent(Object swimlane, int x, int y)
    +        {
    +            // FIXME: Add global switch
    +            if (true) //transparentSwimlaneContent)
    +            {
    +                mxCellState state = view.GetState(swimlane);
    +
    +                if (state != null)
    +                {
    +                    int start = (int)  Math.Max(2, Math.Round(mxUtils.GetDouble(state.Style,
    +                            mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE)
    +                            * view.Scale));
    +                    Rectangle rect = state.GetRectangle();
    +
    +                    if (mxUtils.IsTrue(state.Style,
    +                            mxConstants.STYLE_HORIZONTAL, true))
    +                    {
    +                        rect.Y += start;
    +                        rect.Height -= start;
    +                    }
    +                    else
    +                    {
    +                        rect.X += start;
    +                        rect.Width -= start;
    +                    }
    +
    +                    return rect.Contains(x, y);
    +                }
    +            }
    +
    +            return false;
    +        }
    +
    +        /// <summary>
    +        /// Returns the visible child vertices of the given parent.
    +        /// </summary>
    +        /// <param name="parent">Cell whose children should be returned.</param>
    +        /// <returns></returns>
    +        public Object[] GetChildVertices(Object parent)
    +        {
    +            return GetChildCells(parent, true, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the visible child edges of the given parent.
    +        /// </summary>
    +        /// <param name="parent">Cell whose children should be returned.</param>
    +        /// <returns></returns>
    +        public Object[] GetChildEdges(Object parent)
    +        {
    +            return GetChildCells(parent, false, true);
    +        }
    +
    +        /// <summary>
    +        /// Returns the visible children of the given parent.
    +        /// </summary>
    +        public Object[] GetChildCells(Object parent)
    +        {
    +            return GetChildCells(parent, false, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the visible child vertices or edges in the given parent. If
    +        /// vertices and edges is false, then all children are returned.
    +        /// </summary>
    +        /// <param name="parent">Cell whose children should be returned.</param>
    +        /// <param name="vertices">Specifies if child vertices should be returned.</param>
    +        /// <param name="edges">Specifies if child edges should be returned.</param>
    +        /// <returns></returns>
    +        public Object[] GetChildCells(Object parent, bool vertices, bool edges)
    +        {
    +            Object[] cells = mxGraphModel.getChildCells(model, parent, vertices,
    +                    edges);
    +            List<Object> result = new List<Object>(cells.Length);
    +
    +            // Filters out the non-visible child cells
    +            for (int i = 0; i < cells.Length; i++)
    +            {
    +                if (IsCellVisible(cells[i]))
    +                {
    +                    result.Add(cells[i]);
    +                }
    +            }
    +
    +            return result.ToArray();
    +        }
    +
    +        /// <summary>
    +        /// Returns all visible edges connected to the given cell without loops.
    +        /// </summary>
    +        /// <param name="cell">Cell whose connections should be returned.</param>
    +        /// <returns>Returns the connected edges for the given cell.</returns>
    +        public Object[] GetConnections(Object cell)
    +        {
    +            return GetConnections(cell, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns all visible edges connected to the given cell without loops.
    +        /// </summary>
    +        /// <param name="cell">Cell whose connections should be returned.</param>
    +        /// <param name="parent">Optional parent of the opposite end for a connection
    +        /// to be returned.</param>
    +        /// <returns>Returns the connected edges for the given cell.</returns>
    +        public Object[] GetConnections(Object cell, Object parent)
    +        {
    +            return GetEdges(cell, parent, true, true, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns all incoming visible edges connected to the given cell without
    +        /// loops.
    +        /// </summary>
    +        /// <param name="cell">Cell whose incoming edges should be returned.</param>
    +        /// <returns>Returns the incoming edges of the given cell.</returns>
    +        public Object[] GetIncomingEdges(Object cell)
    +        {
    +            return GetIncomingEdges(cell, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns the visible incoming edges for the given cell. If the optional
    +        /// parent argument is specified, then only child edges of the given parent
    +        /// are returned.
    +        /// </summary>
    +        /// <param name="cell">Cell whose incoming edges should be returned.</param>
    +        /// <param name="parent">Optional parent of the opposite end for a connection
    +        /// to be returned.</param>
    +        /// <returns>Returns the incoming edges of the given cell.</returns>
    +        public Object[] GetIncomingEdges(Object cell, Object parent)
    +        {
    +            return GetEdges(cell, parent, true, false, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns all outgoing visible edges connected to the given cell without
    +        /// loops.
    +        /// </summary>
    +        /// <param name="cell">Cell whose outgoing edges should be returned.</param>
    +        /// <returns>Returns the outgoing edges of the given cell.</returns>
    +        public Object[] GetOutgoingEdges(Object cell)
    +        {
    +            return GetOutgoingEdges(cell, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns the visible outgoing edges for the given cell. If the optional
    +        /// parent argument is specified, then only child edges of the given parent
    +        /// are returned.
    +        /// </summary>
    +        /// <param name="cell">Cell whose outgoing edges should be returned.</param>
    +        /// <param name="parent">Optional parent of the opposite end for a connection
    +        /// to be returned.</param>
    +        /// <returns>Returns the outgoing edges of the given cell.</returns>
    +        public Object[] GetOutgoingEdges(Object cell, Object parent)
    +        {
    +            return GetEdges(cell, parent, false, true, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns all visible edges connected to the given cell including loops.
    +        /// </summary>
    +        /// <param name="cell">Cell whose edges should be returned.</param>
    +        /// <returns>Returns the edges of the given cell.</returns>
    +        public Object[] GetEdges(Object cell)
    +        {
    +            return GetEdges(cell, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns all visible edges connected to the given cell including loops.
    +        /// </summary>
    +        /// <param name="cell">Cell whose edges should be returned.</param>
    +        /// <param name="parent">Optional parent of the opposite end for an edge
    +        /// to be returned.</param>
    +        /// <returns>Returns the edges of the given cell.</returns>
    +        public Object[] GetEdges(Object cell, Object parent)
    +        {
    +            return GetEdges(cell, parent, true, true, true);
    +        }
    +        
    +        /// <summary>
    +        /// Returns the incoming and/or outgoing edges for the given cell.
    +        /// If the optional parent argument is specified, then only edges are returned
    +        /// where the opposite is in the given parent cell. If at least one of incoming
    +        /// or outgoing is true, then loops are ignored, if both are false, then all
    +        /// edges connected to the given cell are returned including loops.
    +        /// </summary>
    +        /// <param name="cell">Cell whose edges should be returned.</param>
    +        /// <param name="parent">Optional parent of the opposite end for an edge to be
    +        /// returned.</param>
    +        /// <param name="incoming">Specifies if incoming edges should be included in the
    +        /// result.</param>
    +        /// <param name="outgoing">Specifies if outgoing edges should be included in the
    +        /// result.</param>
    +        /// <param name="includeLoops">Specifies if loops should be included in the
    +        /// result.</param>
    +        /// <returns>Returns the edges connected to the given cell.</returns>
    +        public Object[] GetEdges(Object cell, Object parent, bool incoming,
    +                bool outgoing, bool includeLoops)
    +        {
    +            return GetEdges(cell, parent, incoming, outgoing, includeLoops, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the incoming and/or outgoing edges for the given cell.
    +        /// If the optional parent argument is specified, then only edges are returned
    +        /// where the opposite is in the given parent cell. If at least one of incoming
    +        /// or outgoing is true, then loops are ignored, if both are false, then all
    +        /// edges connected to the given cell are returned including loops.
    +        /// </summary>
    +        /// <param name="cell">Cell whose edges should be returned.</param>
    +        /// <param name="parent">Optional parent of the opposite end for an edge to be
    +        /// returned.</param>
    +        /// <param name="incoming">Specifies if incoming edges should be included in the
    +        /// result.</param>
    +        /// <param name="outgoing">Specifies if outgoing edges should be included in the
    +        /// result.</param>
    +        /// <param name="includeLoops">Specifies if loops should be included in the
    +        /// result.</param>
    +        /// <param name="recurse">Boolean the specifies if the parent specified only 
    +        /// need be an ancestral parent, true, or the direct parent, false.</param>
    +        /// <returns>Returns the edges connected to the given cell.</returns>
    +        public Object[] GetEdges(Object cell, Object parent, bool incoming,
    +                bool outgoing, bool includeLoops, bool recurse)
    +        {
    +            bool isCollapsed = IsCellCollapsed(cell);
    +            List<Object> edges = new List<Object>();
    +            int childCount = model.GetChildCount(cell);
    +
    +            for (int i = 0; i < childCount; i++)
    +            {
    +                Object child = model.GetChildAt(cell, i);
    +
    +                if (isCollapsed || !IsCellVisible(child))
    +                {
    +                    edges.AddRange(mxGraphModel.GetEdges(model, child,
    +                            incoming, outgoing, includeLoops));
    +                }
    +            }
    +
    +            edges.AddRange(mxGraphModel.GetEdges(model, cell, incoming,
    +                    outgoing, includeLoops));
    +            List<Object> result = new List<Object>(edges.Count);
    +
    +            foreach (Object edge in edges)
    +            {
    +                Object source = view.GetVisibleTerminal(edge, true);
    +                Object target = view.GetVisibleTerminal(edge, false);
    +
    +                if ((includeLoops && source == target) || ((source != target) &&
    +                    (incoming && target == cell && (parent == null ||
    +                        IsValidAncestor(source, parent, recurse)))
    +                        || (outgoing && source == cell && (parent == null ||
    +                        IsValidAncestor(target, parent, recurse)))))
    +                {
    +                    result.Add(edge);
    +                }
    +            }
    +
    +            return result.ToArray();
    +        }
    +
    +        /// <summary>
    +        /// Returns whether or not the specified parent is a valid
    +        /// ancestor of the specified cell, either direct or indirectly
    +        /// based on whether ancestor recursion is enabled.
    +        /// </summary>
    +        /// <param name="cell">The possible child cell</param>
    +        /// <param name="parent">The possible parent cell</param>
    +        /// <param name="recurse">boolean whether or not to recurse the child ancestors</param>
    +        public bool IsValidAncestor(Object cell, Object parent, bool recurse)
    +        {
    +            return (recurse ? model.IsAncestor(parent, cell) : model
    +			    .GetParent(cell) == parent);
    +        }
    +
    +        /// <summary>
    +        /// Returns all distinct visible opposite cells of the terminal on the
    +        /// given edges.
    +        /// </summary>
    +        /// <param name="edges"></param>
    +        /// <param name="terminal"></param>
    +        /// <returns></returns>
    +        public Object[] GetOpposites(Object[] edges, Object terminal)
    +        {
    +            return GetOpposites(edges, terminal, true, true);
    +        }
    +
    +        /// <summary>
    +        /// Returns all distincts visible opposite cells for the specified
    +        /// terminal on the given edges.
    +        /// </summary>
    +        /// <param name="edges">Edges whose opposite terminals should be returned.</param>
    +        /// <param name="terminal">Terminal that specifies the end whose opposite should be
    +        /// returned.</param>
    +        /// <param name="sources">Specifies if source terminals should be included in the
    +        /// result.</param>
    +        /// <param name="targets">Specifies if targer terminals should be included in the
    +        /// result.</param>
    +        /// <returns></returns>
    +        public Object[] GetOpposites(Object[] edges, Object terminal,
    +                bool sources, bool targets)
    +        {
    +            List<Object> terminals = new List<Object>();
    +
    +            // Uses dictionary to implement a set semantic in the result
    +            Dictionary<Object, Object> hash = new Dictionary<Object, Object>();
    +
    +            if (edges != null)
    +            {
    +                for (int i = 0; i < edges.Length; i++)
    +                {
    +                    Object source = view.GetVisibleTerminal(edges[i], true);
    +                    Object target = view.GetVisibleTerminal(edges[i], false);
    +
    +                    // Checks if the terminal is the source of
    +                    // the edge and if the target should be
    +                    // stored in the result
    +                    if (source == terminal && target != null && target != terminal
    +                            && targets)
    +                    {
    +                        if (!hash.ContainsKey(target))
    +                        {
    +                            hash[target] = target;
    +                            terminals.Add(target);
    +                        }
    +                    }
    +
    +                    // Checks if the terminal is the taget of
    +                    // the edge and if the source should be
    +                    // stored in the result
    +                    else if (target == terminal && source != null
    +                            && source != terminal && sources)
    +                    {
    +                        if (!hash.ContainsKey(source))
    +                        {
    +                            hash[source] = source;
    +                            terminals.Add(source);
    +                        }
    +                    }
    +                }
    +            }
    +
    +            return terminals.ToArray();
    +        }
    +
    +        /// <summary>
    +        /// Returns the edges between the given source and target. This takes into
    +        /// account collapsed and invisible cells and returns the connected edges
    +        /// as displayed on the screen.
    +        /// </summary>
    +        /// <param name="source"></param>
    +        /// <param name="target"></param>
    +        /// <returns></returns>
    +        public Object[] GetEdgesBetween(Object source, Object target)
    +        {
    +            return GetEdgesBetween(source, target, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the edges between the given source and target. This takes into
    +        /// account collapsed and invisible cells and returns the connected edges
    +        /// as displayed on the screen.
    +        /// </summary>
    +        /// <param name="source"></param>
    +        /// <param name="target"></param>
    +        /// <param name="directed"></param>
    +        /// <returns></returns>
    +        public Object[] GetEdgesBetween(Object source, Object target,
    +                bool directed)
    +        {
    +            Object[] edges = GetEdges(source);
    +            List<Object> result = new List<Object>(edges.Length);
    +
    +            // Checks if the edge is connected to the correct
    +            // cell and returns the first match
    +            for (int i = 0; i < edges.Length; i++)
    +            {
    +                Object src = view.GetVisibleTerminal(edges[i], true);
    +                Object trg = view.GetVisibleTerminal(edges[i], false);
    +
    +                if ((src == source && trg == target) ||
    +                    (!directed && src == target && trg == source))
    +                {
    +                    result.Add(edges[i]);
    +                }
    +            }
    +
    +            return result.ToArray();
    +        }
    +
    +        /// <summary>
    +        /// Returns all children in the given parent which do not have incoming
    +        /// edges. If the result is empty then the with the greatest difference
    +        /// between incoming and outgoing edges is returned.
    +        /// </summary>
    +        /// <param name="parent">Cell whose children should be checked.</param>
    +        /// <returns></returns>
    +        public List<Object> FindTreeRoots(Object parent)
    +        {
    +            return FindTreeRoots(parent, false);
    +        }
    +        
    +        /// <summary>
    +        /// Returns all children in the given parent which do not have incoming
    +        /// edges. If the result is empty then the with the greatest difference
    +        /// between incoming and outgoing edges is returned.
    +        /// </summary>
    +        /// <param name="parent">Cell whose children should be checked.</param>
    +        /// <param name="isolate">Specifies if edges should be ignored if the opposite
    +        /// end is not a child of the given parent cell.</param>
    +        /// <returns>Array of tree roots in parent.</returns>
    +        public List<Object> FindTreeRoots(Object parent, bool isolate)
    +        {
    +            return FindTreeRoots(parent, isolate, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns all children in the given parent which do not have incoming
    +        /// edges. If the result is empty then the with the greatest difference
    +        /// between incoming and outgoing edges is returned.
    +        /// </summary>
    +        /// <param name="parent">Cell whose children should be checked.</param>
    +        /// <param name="isolate">Specifies if edges should be ignored if the opposite
    +        /// end is not a child of the given parent cell.</param>
    +        /// <param name="invert">Specifies if outgoing or incoming edges should be counted
    +        /// for a tree root. If false then outgoing edges will be counted.</param>
    +        /// <returns>Array of tree roots in parent.</returns>
    +        public List<Object> FindTreeRoots(Object parent, bool isolate, bool invert)
    +        {
    +            List<Object> roots = new List<Object>();
    +
    +            if (parent != null)
    +            {
    +                int childCount = model.GetChildCount(parent);
    +                Object best = null;
    +                int maxDiff = 0;
    +
    +                for (int i = 0; i < childCount; i++)
    +                {
    +                    Object cell = model.GetChildAt(parent, i);
    +
    +                    if (model.IsVertex(cell) && IsCellVisible(cell))
    +                    {
    +                        Object[] conns = GetConnections(cell, (isolate) ? parent : null);
    +                        int fanOut = 0;
    +                        int fanIn = 0;
    +
    +                        for (int j = 0; j < conns.Length; j++)
    +                        {
    +                            Object src = view.GetVisibleTerminal(conns[j], true);
    +
    +                            if (src == cell)
    +                            {
    +                                fanOut++;
    +                            }
    +                            else
    +                            {
    +                                fanIn++;
    +                            }
    +                        }
    +
    +                        if ((invert && fanOut == 0 && fanIn > 0)
    +                                || (!invert && fanIn == 0 && fanOut > 0))
    +                        {
    +                            roots.Add(cell);
    +                        }
    +
    +                        int diff = (invert) ? fanIn - fanOut : fanOut - fanIn;
    +
    +                        if (diff > maxDiff)
    +                        {
    +                            maxDiff = diff;
    +                            best = cell;
    +                        }
    +                    }
    +                }
    +
    +                if (roots.Count == 0 &&
    +                    best != null)
    +                {
    +                    roots.Add(best);
    +                }
    +            }
    +
    +            return roots;
    +        }
    +
    +        /// <summary>
    +        /// Draws the graph onto the given canvas.
    +        /// </summary>
    +        /// <param name="canvas">Canvas onto which the graph should be drawn.</param>
    +        public void DrawGraph(mxICanvas canvas)
    +        {
    +            DrawCell(canvas, model.Root);
    +        }
    +
    +        /// <summary>
    +        /// Draws the given cell onto the specified canvas.
    +        /// </summary>
    +        /// <param name="canvas">Canvas onto which the cell should be drawn.</param>
    +        /// <param name="cell">Cell that should be drawn onto the canvas.</param>
    +        public void DrawCell(mxICanvas canvas, Object cell)
    +        {
    +            DrawState(canvas, view.GetState(cell), GetLabel(cell));
    +
    +            // Draws the children on top
    +            int childCount = model.GetChildCount(cell);
    +
    +            for (int i = 0; i < childCount; i++)
    +            {
    +                DrawCell(canvas, model.GetChildAt(cell, i));
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Draws the given cell and label onto the specified canvas. No
    +        /// children or descendants are painted.
    +        /// </summary>
    +        public void DrawState(mxICanvas canvas, mxCellState state, String label)
    +        {
    +            Object cell = (state != null) ? state.Cell : null;
    +
    +            if (cell != null && cell != model.Root && (model.IsVertex(cell) || model.IsEdge(cell)))
    +            {
    +                Object obj = canvas.DrawCell(state);
    +                Object lab = null;
    +
    +			    // Holds the current clipping region in case the label will
    +			    // be clipped
    +                Region clip = null;
    +                Region newClip = new Region(state.GetRectangle());
    +
    +			    // Indirection for image canvas that contains a graphics canvas
    +                mxICanvas clippedCanvas = (mxUtils.GetString(state.Style, mxConstants.
    +                    STYLE_OVERFLOW, "").Equals("hidden")) ? canvas : null;
    +
    +			    if (clippedCanvas is mxImageCanvas)
    +			    {
    +				    clippedCanvas = ((mxImageCanvas) clippedCanvas).GdiCanvas;
    +				    Point pt = ((mxImageCanvas) canvas).Translate;
    +                    newClip.Translate(pt.X, pt.Y);
    +			    }
    +
    +			    if (clippedCanvas is mxGdiCanvas)
    +			    {
    +				    Graphics g = ((mxGdiCanvas) clippedCanvas).Graphics;
    +				    clip = g.Clip;
    +                    g.Clip = newClip;
    +			    }
    +
    +                if (label != null && state.LabelBounds != null)
    +                {
    +                    lab = canvas.DrawLabel(label, state, false);
    +                }
    +                    
    +			    // Restores the previous clipping region
    +			    if (clippedCanvas is mxGdiCanvas)
    +			    {
    +                    ((mxGdiCanvas)clippedCanvas).Graphics.Clip = clip;
    +			    }
    +
    +                // Invokes the cellDrawn callback with the object which was created
    +                // by the canvas to represent the cell graphically
    +                if (obj != null)
    +                {
    +                    // LATER: Add inner callback for rendering
    +                    //CellDrawn(cell, obj, lab);
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Called when the graph model has changed to invalidate the view.
    +        /// </summary>
    +        public void GraphModelChanged()
    +        {
    +            view.Revalidate();
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/view/mxGraphView.cs b/dotnet/src/view/mxGraphView.cs
    new file mode 100644
    index 000000000..24d95de73
    --- /dev/null
    +++ b/dotnet/src/view/mxGraphView.cs
    @@ -0,0 +1,1291 @@
    +// $Id: mxGraphView.cs,v 1.112 2011-11-17 14:10:53 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Diagnostics;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Drawing;
    +using System.Drawing.Imaging;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Implements a view for the graph. This class is in charge of computing the
    +    /// absolute coordinates for the relative child geometries, the points for
    +    /// perimeters and edge styles and keeping them cached in mxCellStates for
    +    /// faster retrieval. The states are updated whenever the model or the view
    +    /// state (translate, scale) changes. The scale and translate are honoured in
    +    /// the bounds.
    +    /// </summary>
    +    public class mxGraphView
    +    {
    +        /// <summary>
    +        /// Shared instance of an empty point.
    +        /// </summary>
    +        private static mxPoint EMPTY_POINT = new mxPoint();
    +
    +        /// <summary>
    +        /// Reference to the enclosing graph.
    +        /// </summary>
    +        protected mxGraph graph;
    +
    +        /// <summary>
    +        /// Caches the current bounds of the graph.
    +        /// </summary>
    +        protected mxRectangle graphBounds = new mxRectangle();
    +
    +        /// <summary>
    +        /// Specifies the scale. Default is 1 (100%).
    +        /// </summary>
    +        protected double scale = 1;
    +
    +        /// <summary>
    +        /// Point that specifies the current translation. Default is a new
    +        /// empty point.
    +        /// </summary>
    +        protected mxPoint translate = new mxPoint(0, 0);
    +
    +        /// <summary>
    +        /// Maps from cells to cell states.
    +        /// </summary>
    +        protected Dictionary<Object, mxCellState> states = new Dictionary<Object, mxCellState>();
    +
    +        /// <summary>
    +        /// Specifies if the view should be revalidated if the scale or
    +        /// translation changes.
    +        /// </summary>
    +        protected bool eventsEnabled = true;
    +
    +        /// <summary>
    +        /// Constructs a new view for the given graph.
    +        /// </summary>
    +        /// <param name="graph">Reference to the enclosing graph.</param>
    +        public mxGraphView(mxGraph graph)
    +        {
    +            this.graph = graph;
    +        }
    +
    +        /// <summary>
    +        /// Returns the enclosing graph.
    +        /// </summary>
    +        public mxGraph Graph
    +        {
    +            get { return graph; }
    +        }
    +
    +        /// <summary>
    +        /// Returns the cached diagram bounds.
    +        /// </summary>
    +        public mxRectangle GraphBounds
    +        {
    +            get { return graphBounds; }
    +            set { graphBounds = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the current scale.
    +        /// </summary>
    +        public double Scale
    +        {
    +            get { return scale; }
    +            set
    +            {
    +                if (scale != value)
    +                {
    +                    scale = value;
    +                    Revalidate();
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the current translation.
    +        /// </summary>
    +        public mxPoint Translate
    +        {
    +            get { return translate; }
    +            set
    +            {
    +                if (translate.X != value.X ||
    +                    translate.Y != value.Y)
    +                {
    +                    translate = value;
    +                    Revalidate();
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the current translation.
    +        /// </summary>
    +        public Dictionary<Object, mxCellState> States
    +        {
    +            get { return states; }
    +            set { states = value; }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the current scale.
    +        /// </summary>
    +        public bool IsEventsEnabled
    +        {
    +            get { return eventsEnabled; }
    +            set { eventsEnabled = value; }
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounding box for an array of cells or null, if no cells are
    +        /// specified.
    +        /// </summary>
    +        /// <param name="cells"></param>
    +        /// <returns></returns>
    +        public mxRectangle GetBounds(Object[] cells)
    +        {
    +            return GetBounds(cells, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounding box for an array of cells or null, if no cells are
    +        /// specified.
    +        /// </summary>
    +        /// <param name="cells"></param>
    +        /// <returns></returns>
    +        public mxRectangle GetBoundingBox(Object[] cells)
    +        {
    +            return GetBounds(cells, true);
    +        }
    +
    +        /// <summary>
    +        /// Returns the bounding box for an array of cells or null, if no cells are
    +        /// specified.
    +        /// </summary>
    +        public mxRectangle GetBounds(Object[] cells, bool boundingBox)
    +        {
    +            mxRectangle result = null;
    +
    +            if (cells != null && cells.Length > 0)
    +            {
    +                mxIGraphModel model = graph.Model;
    +
    +                for (int i = 0; i < cells.Length; i++)
    +                {
    +                    if (model.IsVertex(cells[i]) || model.IsEdge(cells[i]))
    +                    {
    +                        mxCellState state = GetState(cells[i]);
    +
    +                        if (state != null)
    +                        {
    +                            mxRectangle tmp = (boundingBox) ? state.BoundingBox : state;
    +
    +                            if (tmp != null)
    +                            {
    +                                if (result == null)
    +                                {
    +                                    result = new mxRectangle(tmp);
    +                                }
    +                                else
    +                                {
    +                                    result.Add(tmp);
    +                                }
    +                            }
    +                        }
    +                    }
    +                }
    +            }
    +
    +            return result;
    +        }
    +
    +        /// <summary>
    +        /// First invalidates, then validates all cell states.
    +        /// </summary>
    +        public void Revalidate()
    +        {
    +            Invalidate();
    +            Validate();
    +        }
    +
    +        /// <summary>
    +        /// Invalidates all cell states.
    +        /// </summary>
    +        public void Invalidate()
    +        {
    +            // LATER: Invalidate cell states recursively
    +            states.Clear();
    +        }
    +
    +        /// <summary>
    +        /// First validates all bounds and then validates all points recursively on
    +        /// all visible cells.
    +        /// </summary>
    +        public void Validate()
    +        {
    +            Object cell = graph.Model.Root;
    +
    +            if (cell != null && states.Count == 0)
    +            {
    +                ValidateBounds(null, cell);
    +                GraphBounds = ValidatePoints(null, cell);
    +
    +                if (GraphBounds == null)
    +                {
    +                    GraphBounds = new mxRectangle();
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Validates the bounds of the given parent's child using the given parent
    +        /// state as the origin for the child. The validation is carried out
    +        /// recursively for all non-collapsed descendants.
    +        /// </summary>
    +        /// <param name="parentState">Cell state for the given parent.</param>
    +        /// <param name="cell">Cell for which the bounds in the state should be updated.</param>
    +        public void ValidateBounds(mxCellState parentState, Object cell)
    +        {
    +            mxIGraphModel model = graph.Model;
    +            mxCellState state = GetState(cell, true);
    +
    +            if (state != null)
    +            {
    +                if (!graph.IsCellVisible(cell))
    +                {
    +                    RemoveState(cell);
    +                }
    +                else if (parentState != null)
    +                {
    +                    state.AbsoluteOffset.X = 0;
    +                    state.AbsoluteOffset.Y = 0;
    +                    state.Origin = new mxPoint(parentState.Origin.X,
    +                            parentState.Origin.Y);
    +                    mxGeometry geo = graph.GetCellGeometry(cell);
    +
    +                    if (geo != null)
    +                    {
    +                        if (!model.IsEdge(cell))
    +                        {
    +                            mxPoint origin = state.Origin;
    +                            mxPoint offset = geo.Offset;
    +
    +                            if (offset == null)
    +                            {
    +                                offset = EMPTY_POINT;
    +                            }
    +
    +                            if (geo.Relative)
    +                            {
    +                                origin.X += geo.X * parentState.Width /
    +                                    Scale + offset.X;
    +                                origin.Y += geo.Y * parentState.Height /
    +                                    Scale + offset.Y;
    +                            }
    +                            else
    +                            {
    +                                state.AbsoluteOffset = new mxPoint(
    +                                    scale * offset.X,
    +                                    scale * offset.Y);
    +                                origin.X += geo.X;
    +                                origin.Y += geo.Y;
    +                            }
    +                        }
    +
    +                        // Updates the cell state's bounds
    +                        state.X = scale * (translate.X + state.Origin.X);
    +                        state.Y = scale * (translate.Y + state.Origin.Y);
    +                        state.Width = scale * geo.Width;
    +                        state.Height = scale * geo.Height;
    +                        
    +                        if (model.IsVertex(cell))
    +                        {
    +                        	UpdateVertexLabelOffset(state);
    +                        }
    +                    }
    +                }
    +
    +                // Applies child offset to origin
    +                mxPoint childOffset = graph.GetChildOffsetForCell(cell);
    +
    +                if (childOffset != null)
    +                {
    +                    state.Origin.X += childOffset.X;
    +                    state.Origin.Y += childOffset.Y;
    +                }
    +            }
    +
    +            // Recursively validates the child bounds
    +            if (state != null &&
    +                !graph.IsCellCollapsed(cell))
    +            {
    +                int childCount = model.GetChildCount(cell);
    +
    +                for (int i = 0; i < childCount; i++)
    +                {
    +                    ValidateBounds(state, model.GetChildAt(cell, i));
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Updates the absoluteOffset of the given vertex cell state. This takes
    +        /// into account the label position styles.
    +        /// </summary>
    +        /// <param name="state">Cell state whose absolute offset should be updated.</param>
    +		public void UpdateVertexLabelOffset(mxCellState state)
    +		{
    +			string horizontal = mxUtils.GetString(state.Style,
    +					mxConstants.STYLE_LABEL_POSITION,
    +					mxConstants.ALIGN_CENTER);
    +			
    +			if (horizontal.Equals(mxConstants.ALIGN_LEFT))
    +			{
    +				state.AbsoluteOffset.X -= state.Width;
    +			}
    +			else if (horizontal.Equals(mxConstants.ALIGN_RIGHT))
    +			{
    +				state.AbsoluteOffset.X += state.Width;
    +			}
    +			
    +			string vertical = mxUtils.GetString(state.Style,
    +					mxConstants.STYLE_VERTICAL_LABEL_POSITION,
    +					mxConstants.ALIGN_MIDDLE);
    +			
    +			if (vertical.Equals(mxConstants.ALIGN_TOP))
    +			{
    +				state.AbsoluteOffset.Y -= state.Height;
    +			}
    +			else if (vertical.Equals(mxConstants.ALIGN_BOTTOM))
    +			{
    +				state.AbsoluteOffset.Y += state.Height;
    +			}
    +		}
    +
    +        /// <summary>
    +        /// Validates the points for the state of the given cell recursively if the
    +        /// cell is not collapsed and returns the bounding box of all visited states
    +        /// as a rectangle.
    +        /// </summary>
    +        public mxRectangle ValidatePoints(mxCellState parentState, Object cell)
    +        {
    +            mxIGraphModel model = graph.Model;
    +            mxCellState state = GetState(cell);
    +            mxRectangle bbox = null;
    +
    +            if (state != null)
    +            {
    +                mxGeometry geo = graph.GetCellGeometry(cell);
    +
    +                if (geo != null && model.IsEdge(cell))
    +                {
    +                    // Updates the points on the source terminal if its an edge
    +                    mxCellState source = GetState(GetVisibleTerminal(cell, true));
    +
    +                    if (source != null && model.IsEdge(source.Cell) &&
    +                        !model.IsAncestor(source, cell))
    +                    {
    +                        mxCellState tmp = GetState(model.GetParent(source.Cell));
    +                        ValidatePoints(tmp, source.Cell);
    +                    }
    +
    +                    // Updates the points on the target terminal if its an edge
    +                    mxCellState target = GetState(GetVisibleTerminal(cell, false));
    +
    +                    if (target != null && model.IsEdge(target.Cell) &&
    +                        !model.IsAncestor(target.Cell, cell))
    +                    {
    +                        mxCellState tmp = GetState(model.GetParent(target.Cell));
    +                        ValidatePoints(tmp, target.Cell);
    +                    }
    +
    +                    UpdateFixedTerminalPoints(state, source, target);
    +                    UpdatePoints(state, geo.Points, source, target);
    +                    UpdateFloatingTerminalPoints(state, source, target);
    +                    UpdateEdgeBounds(state);
    +                    state.AbsoluteOffset = GetPoint(state, geo);
    +                }
    +                else if (geo != null &&
    +                    geo.Relative &&
    +                    parentState != null &&
    +                    model.IsEdge(parentState.Cell))
    +                {
    +                    mxPoint origin = GetPoint(parentState, geo);
    +
    +                    if (origin != null)
    +                    {
    +                        state.X = origin.X;
    +                        state.Y = origin.Y;
    +
    +                        origin.X = (origin.X / scale) - translate.X;
    +                        origin.Y = (origin.Y / scale) - translate.Y;
    +                        state.Origin = origin;
    +
    +                        childMoved(parentState, state);
    +                    }
    +                }
    +
    +                if (model.IsEdge(cell) || model.IsVertex(cell))
    +                {
    +                    UpdateLabelBounds(state);
    +                    bbox = new mxRectangle(UpdateBoundingBox(state));
    +                }
    +            }
    +
    +            if (state != null && !graph.IsCellCollapsed(cell))
    +            {
    +                int childCount = model.GetChildCount(cell);
    +
    +                for (int i = 0; i < childCount; i++)
    +                {
    +                    Object child = model.GetChildAt(cell, i);
    +                    mxRectangle bounds = ValidatePoints(state, child);
    +
    +                    if (bounds != null)
    +                    {
    +                        if (bbox == null)
    +                        {
    +                            bbox = bounds;
    +                        }
    +                        else
    +                        {
    +                            bbox.Add(bounds);
    +                        }
    +                    }
    +                }
    +            }
    +
    +            return bbox;
    +        }
    +        
    +        /// <summary>
    +        /// Invoked when a child state was moved as a result of late evaluation
    +        /// of its position. This is invoked for relative edge children whose
    +        /// position can only be determined after the points of the parent edge
    +        /// are updated in validatePoints, and validates the bounds of all
    +        /// descendants of the child using validateBounds.
    +        /// </summary>
    +        /// <param name="parent">State that represents the parent.</param>
    +        /// <param name="child">State that represents the child.</param>
    +        public void childMoved(mxCellState parent, mxCellState child)
    +        {
    +            Object cell = child.Cell;
    +
    +            // Children of relative edge children need to validate
    +            // their bounds after their parent state was updated
    +            if (!graph.IsCellCollapsed(cell))
    +            {
    +                mxIGraphModel model = graph.Model;
    +                int childCount = model.GetChildCount(cell);
    +
    +                for (int i = 0; i < childCount; i++)
    +                {
    +                    ValidateBounds(child, model.GetChildAt(cell, i));
    +                }
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Updates the label bounds in the given state.
    +        /// </summary>
    +        /// <param name="state"></param>
    +        public void UpdateLabelBounds(mxCellState state)
    +        {
    +            Object cell = state.Cell;
    +            Dictionary<string, Object> style = state.Style;
    +
    +            if (mxUtils.GetString(style, mxConstants.STYLE_OVERFLOW, "").Equals("fill"))
    +            {
    +                state.LabelBounds = new mxRectangle(state);
    +            }
    +            else
    +            {
    +                string label = graph.GetLabel(cell);
    +                mxRectangle vertexBounds = (!graph.Model.IsEdge(cell)) ?
    +                    state : null;
    +                state.LabelBounds = mxUtils.GetLabelPaintBounds(label,
    +                    style, false, state.AbsoluteOffset, vertexBounds,
    +                    scale);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Updates the bounding box in the given cell state.
    +        /// </summary>
    +        /// <param name="state">Cell state whose bounding box should be
    +        /// updated.</param>
    +        /// <returns></returns>
    +        public mxRectangle UpdateBoundingBox(mxCellState state)
    +        {
    +            // Gets the cell bounds and adds shadows and markers
    +            mxRectangle rect = new mxRectangle(state.GetRectangle());
    +            Dictionary<string, Object> style = state.Style;
    +
    +            // Adds extra pixels for the marker and stroke assuming
    +            // that the border stroke is centered around the bounds
    +            // and the first pixel is drawn inside the bounds
    +            double strokeWidth = Math.Max(1, Math.Round(mxUtils.GetInt(style,
    +                    mxConstants.STYLE_STROKEWIDTH, 1)
    +                    * scale));
    +            strokeWidth -= Math.Max(1, strokeWidth / 2);
    +
    +            if (graph.Model.IsEdge(state.Cell))
    +            {
    +                int ms = 0;
    +
    +                if (style.ContainsKey(mxConstants.STYLE_ENDARROW)
    +                        || style.ContainsKey(mxConstants.STYLE_STARTARROW))
    +                {
    +                    ms = (int) Math.Round(mxConstants.DEFAULT_MARKERSIZE * scale);
    +                }
    +
    +                // Adds the strokewidth
    +                rect.Grow(ms + strokeWidth);
    +
    +                // Adds worst case border for an arrow shape
    +                if (mxUtils.GetString(style, mxConstants.STYLE_SHAPE, "").Equals(
    +                        mxConstants.SHAPE_ARROW))
    +                {
    +                    rect.Grow(mxConstants.ARROW_WIDTH / 2);
    +                }
    +            }
    +            else
    +            {
    +                rect.Grow(strokeWidth);
    +            }
    +
    +            // Adds extra pixels for the shadow
    +            if (mxUtils.IsTrue(style, mxConstants.STYLE_SHADOW))
    +            {
    +                rect.Width += mxConstants.SHADOW_OFFSETX;
    +                rect.Height += mxConstants.SHADOW_OFFSETY;
    +            }
    +
    +            // Adds oversize images in labels
    +            if (mxUtils.GetString(style, mxConstants.STYLE_SHAPE, "").Equals(
    +                    mxConstants.SHAPE_LABEL))
    +            {
    +                if (mxUtils.GetString(style, mxConstants.STYLE_IMAGE) != null)
    +                {
    +                    double w = mxUtils.GetInt(style,
    +                            mxConstants.STYLE_IMAGE_WIDTH,
    +                            mxConstants.DEFAULT_IMAGESIZE) * scale;
    +                    double h = mxUtils.GetInt(style,
    +                            mxConstants.STYLE_IMAGE_HEIGHT,
    +                            mxConstants.DEFAULT_IMAGESIZE) * scale;
    +
    +                    double x = state.X;
    +                    double y = 0;
    +
    +                    string imgAlign = mxUtils
    +                            .GetString(style, mxConstants.STYLE_IMAGE_ALIGN,
    +                                    mxConstants.ALIGN_LEFT);
    +                    string imgValign = mxUtils.GetString(style,
    +                            mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,
    +                            mxConstants.ALIGN_MIDDLE);
    +
    +                    if (imgAlign.Equals(mxConstants.ALIGN_RIGHT))
    +                    {
    +                        x += state.Width - w;
    +                    }
    +                    else if (imgAlign.Equals(mxConstants.ALIGN_CENTER))
    +                    {
    +                        x += (state.Width - w) / 2;
    +                    }
    +
    +                    if (imgValign.Equals(mxConstants.ALIGN_TOP))
    +                    {
    +                        y = state.Y;
    +                    }
    +                    else if (imgValign.Equals(mxConstants.ALIGN_BOTTOM))
    +                    {
    +                        y = state.Y + state.Height - h;
    +                    }
    +                    else
    +                    {
    +                        y = state.Y + (state.Height - h) / 2;
    +                    }
    +
    +                    rect.Add(new mxRectangle(x, y, w, h));
    +                }
    +            }
    +
    +            // Adds the rotated bounds to the bounding box if the
    +            // shape is rotated
    +            double rotation = mxUtils.GetDouble(style, mxConstants.STYLE_ROTATION);
    +            mxRectangle bbox = mxUtils.GetBoundingBox(rect, rotation);
    +
    +            // Add the rotated bounding box to the non-rotated so
    +            // that all handles are also covered
    +            if (bbox != null)
    +            {
    +                rect.Add(bbox);
    +            }
    +
    +            // Unifies the cell bounds and the label bounds
    +            if (!mxUtils.GetString(style, mxConstants.STYLE_OVERFLOW, "").Equals("hidden"))
    +            {
    +                rect.Add(state.LabelBounds);
    +            }
    +
    +            state.BoundingBox = rect;
    +
    +            return rect;
    +        }
    +
    +        /// <summary>
    +        /// Sets the initial absolute terminal points in the given state before the edge
    +        /// style is computed.
    +        /// </summary>
    +        /// <param name="edge">Cell state whose initial terminal points should be updated.</param>
    +        /// <param name="source">Cell state which represents the source terminal.</param>
    +        /// <param name="target">Cell state which represents the target terminal.</param>
    +        public void UpdateFixedTerminalPoints(mxCellState edge, mxCellState source, mxCellState target)
    +        {
    +            UpdateFixedTerminalPoint(edge, source, true,
    +                graph.GetConnectionConstraint(edge, source, true));
    +            UpdateFixedTerminalPoint(edge, target, false,
    +                graph.GetConnectionConstraint(edge, target, false));
    +        }
    +
    +        /// <summary>
    +        /// Sets the fixed source or target terminal point on the given edge.
    +        /// </summary>
    +        /// <param name="edge">State whose terminal point should be updated.</param>
    +        /// <param name="terminal">State which represents the actual terminal.</param>
    +        /// <param name="source">Boolean that specifies if the terminal is the source.</param>
    +        /// <param name="constraint">Constraint that specifies the connection.</param>
    +        public void UpdateFixedTerminalPoint(mxCellState edge, mxCellState terminal,
    +            bool source, mxConnectionConstraint constraint)
    +        {
    +            mxPoint pt = null;
    +
    +            if (constraint != null)
    +            {
    +                pt = graph.GetConnectionPoint(terminal, constraint);
    +            }
    +            
    +            if (pt == null && terminal == null)
    +            {
    +                mxPoint orig = edge.Origin;
    +                mxGeometry geo = graph.GetCellGeometry(edge.Cell);
    +                pt = geo.GetTerminalPoint(source);
    +
    +                if (pt != null)
    +                {
    +                    pt = new mxPoint(scale * (translate.X + pt.X + orig.X),
    +                                     scale * (translate.Y + pt.Y + orig.Y));
    +                }
    +            }
    +
    +            edge.SetAbsoluteTerminalPoint(pt, source);
    +        }
    +
    +        /// <summary>
    +        /// Updates the absolute points in the given state using the specified array
    +        /// of points as the relative points.
    +        /// </summary>
    +        /// <param name="edge">Cell state whose absolute points should be updated.</param>
    +        /// <param name="points">Array of points that constitute the relative points.</param>
    +        /// <param name="source">Cell that represents the source terminal.</param>
    +        /// <param name="target">Cell that represents the target terminal.</param>
    +        public void UpdatePoints(mxCellState edge, List<mxPoint> points, mxCellState source, mxCellState target)
    +        {
    +            if (edge != null)
    +            {
    +                List<mxPoint> pts = new List<mxPoint>();
    +                pts.Add(edge.AbsolutePoints[0]);
    +                mxEdgeStyleFunction edgeStyle = GetEdgeStyle(edge, points, source, target);
    +
    +                if (edgeStyle != null)
    +                {
    +                    mxCellState src = GetTerminalPort(edge, source, true);
    +                    mxCellState trg = GetTerminalPort(edge, target, false);
    +                    
    +                    ((mxEdgeStyleFunction)edgeStyle)(edge, src, trg, points, pts);
    +                }
    +                else if (points != null)
    +                {
    +                    for (int i = 0; i < points.Count; i++)
    +                    {
    +                        if (points[i] is mxPoint)
    +                        {
    +                            mxPoint pt = points[i].Clone();
    +                            pts.Add(TransformControlPoint(edge, pt));
    +                        }
    +                    }
    +                }
    +
    +                List<mxPoint> tmp = edge.AbsolutePoints;
    +                pts.Add(tmp[tmp.Count - 1]);
    +
    +                edge.AbsolutePoints = pts;
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Transforms the given control point to an absolute point.
    +        /// </summary>
    +        public mxPoint TransformControlPoint(mxCellState state, mxPoint pt)
    +        {
    +        	mxPoint orig = state.Origin;
    +
    +            return new mxPoint(scale * (pt.X + translate.X + orig.X),
    +                scale * (pt.Y + translate.Y + orig.Y));
    +        }
    +
    +
    +        /// <summary>
    +        /// Returns the edge style function to be used to render the given edge
    +        /// state.
    +        /// </summary>
    +        public mxEdgeStyleFunction GetEdgeStyle(mxCellState edge, List<mxPoint> points,
    +            Object source, Object target)
    +        {
    +            object edgeStyle = null;
    +
    +            if (source != null && source == target)
    +            {
    +                edge.Style.TryGetValue(mxConstants.STYLE_LOOP, out edgeStyle);
    +
    +                if (edgeStyle == null)
    +                {
    +                    edgeStyle = graph.DefaultLoopStyle;
    +                }
    +            }
    +            else if (!mxUtils.IsTrue(edge.Style,
    +                mxConstants.STYLE_NOEDGESTYLE, false))
    +            {
    +                edge.Style.TryGetValue(mxConstants.STYLE_EDGE, out edgeStyle);
    +            }
    +
    +		    // Converts string values to objects
    +		    if (edgeStyle is String)
    +		    {
    +                string str = edgeStyle.ToString();
    +			    Object tmp = mxStyleRegistry.GetValue(str);
    +    			
    +			    if (tmp == null)
    +			    {
    +				    tmp = mxUtils.Eval(str);
    +			    }
    +    			
    +			    edgeStyle = tmp;
    +		    }
    +
    +		    if (edgeStyle is mxEdgeStyleFunction)
    +		    {
    +			    return (mxEdgeStyleFunction) edgeStyle;
    +		    }
    +
    +		    return null;
    +        }
    +
    +        /// <summary>
    +        /// Updates the terminal points in the given state after the edge style was
    +        /// computed for the edge.
    +        /// </summary>
    +        /// <param name="state">State whose terminal points should be updated.</param>
    +        /// <param name="source">State that represents the source terminal.</param>
    +        /// <param name="target">State that represents the target terminal.</param>
    +        public void UpdateFloatingTerminalPoints(mxCellState state, mxCellState source, mxCellState target)
    +        {
    +            mxPoint p0 = state.AbsolutePoints[0];
    +            mxPoint pe = state.AbsolutePoints[state.AbsolutePointCount() - 1];
    +
    +            if (pe == null && target != null)
    +            {
    +                UpdateFloatingTerminalPoint(state, target, source, false);
    +            }
    +
    +            if (p0 == null && source != null)
    +            {
    +                UpdateFloatingTerminalPoint(state, source, target, true);
    +            }
    +        }
    +
    +        /// <summary>
    +        /// Updates the absolute terminal point in the given state for the given
    +        /// start and end state, where start is the source if source is true.
    +        /// </summary>
    +        /// <param name="edge">State whose terminal point should be updated.</param>
    +        /// <param name="start">for the terminal on "this" side of the edge.</param>
    +        /// <param name="end">for the terminal on the other side of the edge.</param>
    +        /// <param name="source">Boolean indicating if start is the source terminal state.</param>
    +        public void UpdateFloatingTerminalPoint(mxCellState edge, mxCellState start,
    +            mxCellState end, bool source)
    +        {
    +			start = GetTerminalPort(edge, start, source);
    +			mxPoint next = GetNextPoint(edge, end, source);
    +			double border = mxUtils.GetDouble(edge.Style, mxConstants.STYLE_PERIMETER_SPACING);
    +			border += mxUtils.GetDouble(edge.Style, (source) ?
    +				mxConstants.STYLE_SOURCE_PERIMETER_SPACING :
    +				mxConstants.STYLE_TARGET_PERIMETER_SPACING);
    +			mxPoint pt = GetPerimeterPoint(start, next, graph.IsOrthogonal(edge), border);
    +			edge.SetAbsoluteTerminalPoint(pt, source);
    +        }
    +
    +        /// <summary>
    +        /// Returns the given terminal or the port defined in the given edge state if a
    +        /// cell state exists for that port.
    +        /// </summary>
    +        public mxCellState GetTerminalPort(mxCellState state, mxCellState terminal, bool source)
    +        {
    +            string key = (source) ? mxConstants.STYLE_SOURCE_PORT
    +                    : mxConstants.STYLE_TARGET_PORT;
    +            string id = mxUtils.GetString(state.Style, key);
    +
    +            if (id != null && graph.Model is mxGraphModel)
    +            {
    +                mxCellState tmp = GetState(((mxGraphModel)graph.Model).GetCell(id));
    +
    +                // Only uses ports where a cell state exists
    +                if (tmp != null)
    +                {
    +                    terminal = tmp;
    +                }
    +            }
    +
    +            return terminal;
    +        }
    +
    +        /// <summary>
    +        /// Returns a point that defines the location of the intersection point between
    +        /// the perimeter and the line between the center of the shape and the given point.
    +        /// </summary>
    +        public mxPoint GetPerimeterPoint(mxCellState terminal, mxPoint next, bool orthogonal)
    +        {
    +            return GetPerimeterPoint(terminal, next, orthogonal, 0);
    +        }
    +
    +        /// <summary>
    +        /// Returns a point that defines the location of the intersection point between
    +        /// the perimeter and the line between the center of the shape and the given point.
    +        /// </summary>
    +        /// <param name="terminal">State for the source or target terminal.</param>
    +        /// <param name="next">Point that lies outside of the given terminal.</param>
    +        /// <param name="orthogonal">Specifies if the orthogonal projection onto
    +        /// the perimeter should be returned. If this is false then the intersection
    +        /// of the perimeter and the line between the next and the center point is
    +        /// returned.</param>
    +        /// <param name="border">Optional border between the perimeter and the shape.</param>
    +        public mxPoint GetPerimeterPoint(mxCellState terminal, mxPoint next, bool orthogonal, double border)
    +        {
    +            mxPoint point = null;
    +
    +            if (terminal != null)
    +            {
    +                mxPerimeterFunction perimeter = GetPerimeterFunction(terminal);
    +
    +                if (perimeter != null && next != null)
    +                {
    +                    mxRectangle bounds = GetPerimeterBounds(terminal, border);
    +
    +                    if (bounds.Width > 0 || bounds.Height > 0)
    +                    {
    +                        point = perimeter(bounds, terminal, next, orthogonal);
    +                    }
    +                }
    +                
    +                if (point == null)
    +                {
    +                    point = GetPoint(terminal);
    +                }
    +            }
    +
    +            return point;
    +        }
    +
    +        /// <summary>
    +        /// Returns the x-coordinate of the center point for automatic routing.
    +        /// </summary>
    +        /// <returns>Returns the x-coordinate of the routing center point.</returns>
    +        public double GetRoutingCenterX(mxCellState state)
    +        {
    +            float f = (state.Style != null) ? mxUtils.GetFloat(state.
    +                Style, mxConstants.STYLE_ROUTING_CENTER_X) : 0;
    +
    +            return state.GetCenterX() + f * state.Width;
    +        }
    +
    +        /// <summary>
    +        /// Returns the y-coordinate of the center point for automatic routing.
    +        /// </summary>
    +        /// <returns>Returns the y-coordinate of the routing center point.</returns>
    +        public double GetRoutingCenterY(mxCellState state)
    +        {
    +            float f = (state.Style != null) ? mxUtils.GetFloat(state.
    +                Style, mxConstants.STYLE_ROUTING_CENTER_Y) : 0;
    +
    +            return state.GetCenterY() + f * state.Height;
    +        }
    +
    +        /// <summary>
    +        /// Returns the perimeter bounds for the given terminal, edge pair.
    +        /// </summary>
    +        public mxRectangle GetPerimeterBounds(mxCellState terminal, double border)
    +        {
    +            if (terminal != null)
    +            {
    +                border += mxUtils.GetDouble(terminal.Style, mxConstants.STYLE_PERIMETER_SPACING);
    +            }
    +
    +            return terminal.GetPerimeterBounds(border * scale);
    +        }
    +
    +        /// <summary>
    +        /// Returns the perimeter function for the given state.
    +        /// </summary>
    +        public mxPerimeterFunction GetPerimeterFunction(mxCellState state)
    +        {
    +            object perimeter = null;
    +            state.Style.TryGetValue(mxConstants.STYLE_PERIMETER, out perimeter);
    +
    +            // Converts string values to objects
    +            if (perimeter is String)
    +            {
    +                string str = perimeter.ToString();
    +                Object tmp = mxStyleRegistry.GetValue(str);
    +
    +                if (tmp == null)
    +                {
    +                    tmp = mxUtils.Eval(str);
    +                }
    +
    +                perimeter = tmp;
    +            }
    +
    +            if (perimeter is mxPerimeterFunction)
    +            {
    +                return (mxPerimeterFunction)perimeter;
    +            }
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Returns the nearest point in the list of absolute points or the center
    +        /// of the opposite terminal.
    +        /// </summary>
    +        /// <param name="edge">State that represents the edge.</param>
    +        /// <param name="opposite">State that represents the opposite terminal.</param>
    +        /// <param name="source">Boolean indicating if the next point for the source or target
    +        /// should be returned.</param>
    +        public mxPoint GetNextPoint(mxCellState edge, mxCellState opposite, bool source)
    +        {
    +            List<mxPoint> pts = edge.AbsolutePoints;
    +            mxPoint point = null;
    +
    +            if (pts != null && (source || pts.Count > 2 || opposite == null))
    +            {
    +                int count = pts.Count;
    +                int index = (source) ? Math.Min(1, count - 1) : Math.Max(0, count - 2);
    +                point = pts[index];
    +            }
    +
    +            if (point == null && opposite != null)
    +            {
    +                point = new mxPoint(opposite.GetCenterX(), opposite.GetCenterY());
    +            }
    +
    +            return point;
    +        }
    +
    +        /// <summary>
    +        /// Returns the nearest ancestor terminal that is visible. The edge appears
    +        /// to be connected to this terminal on the display.
    +        /// </summary>
    +        /// <param name="edge">Cell whose visible terminal should be returned.</param>
    +        /// <param name="source">Boolean that specifies if the source or target terminal
    +        /// should be returned.</param>
    +        /// <returns>Returns the visible source or target terminal.</returns>
    +        public Object GetVisibleTerminal(Object edge, bool source)
    +        {
    +            mxIGraphModel model = graph.Model;
    +            Object result = model.GetTerminal(edge, source);
    +            Object best = result;
    +
    +            while (result != null)
    +            {
    +                if (!graph.IsCellVisible(best) ||
    +                    graph.IsCellCollapsed(result))
    +                {
    +                    best = result;
    +                }
    +
    +                result = model.GetParent(result);
    +            }
    +
    +            // Checks if the result is not a layer
    +            if (model.GetParent(best) == model.Root)
    +            {
    +                best = null;
    +            }
    +		
    +            return best;
    +        }
    +
    +        /// <summary>
    +        /// Updates the given state using the bounding box of the absolute points.
    +        /// Also updates terminal distance, length and segments.
    +        /// </summary>
    +        /// <param name="state">Cell state whose bounds should be updated.</param>
    +        public void UpdateEdgeBounds(mxCellState state)
    +        {
    +            List<mxPoint> points = state.AbsolutePoints;
    +
    +            if (points != null && points.Count > 0)
    +            {
    +                mxPoint p0 = points[0];
    +                mxPoint pe = points[points.Count - 1];
    +
    +                if (p0 == null || pe == null)
    +                {
    +
    +                    // Note: This is an error that normally occurs
    +                    // if a connected edge has a null-terminal, ie.
    +                    // edge.source == null or edge.target == null.
    +                    states.Remove(state.Cell);
    +                }
    +                else
    +                {
    +                    if (p0.X != pe.X || p0.Y != pe.Y)
    +                    {
    +                        double dx = pe.X - p0.X;
    +                        double dy = pe.Y - p0.Y;
    +                        state.TerminalDistance = Math.Sqrt(dx * dx + dy * dy);
    +                    }
    +                    else
    +                    {
    +                        state.TerminalDistance = 0;
    +                    }
    +
    +                    double length = 0;
    +                    double[] segments = new double[points.Count - 1];
    +                    mxPoint pt = p0;
    +
    +                    if (pt != null)
    +                    {
    +                        double minX = pt.X;
    +                        double minY = pt.Y;
    +                        double maxX = minX;
    +                        double maxY = minY;
    +
    +                        for (int i = 1; i < points.Count; i++)
    +                        {
    +                            mxPoint tmp = points[i];
    +                            if (tmp != null)
    +                            {
    +                                double dx = pt.X - tmp.X;
    +                                double dy = pt.Y - tmp.Y;
    +
    +                                double segment = Math.Sqrt(dx * dx + dy * dy);
    +                                segments[i - 1] = segment;
    +                                length += segment;
    +                                pt = tmp;
    +
    +                                minX = Math.Min(pt.X, minX);
    +                                minY = Math.Min(pt.Y, minY);
    +                                maxX = Math.Max(pt.X, maxX);
    +                                maxY = Math.Max(pt.Y, maxY);
    +                            }
    +                        }
    +
    +                        state.Length = length;
    +                        state.Segments = segments;
    +                        double markerSize = 1; // TODO: include marker size
    +
    +                        state.X = minX;
    +                        state.Y = minY;
    +                        state.Width = Math.Max(markerSize, maxX - minX);
    +                        state.Height = Math.Max(markerSize, maxY - minY);
    +                    }
    +                    else
    +                    {
    +                        state.Length = 0;
    +                    }
    +                }
    +            }
    +        }
    +        
    +        /// <summary>
    +        /// Returns the absolute center point along the given edge.
    +        /// </summary>
    +        public mxPoint GetPoint(mxCellState state)
    +        {
    +            return GetPoint(state, null);
    +        }
    +
    +        /// <summary>
    +        /// Returns the absolute point on the edge for the given relative
    +        /// geometry as a point. The edge is represented by the given cell state.
    +        /// </summary>
    +        /// <param name="state">Represents the state of the parent edge.</param>
    +        /// <param name="geometry">Represents the relative location.</param>
    +        public mxPoint GetPoint(mxCellState state, mxGeometry geometry)
    +        {
    +            double x = state.GetCenterX();
    +            double y = state.GetCenterY();
    +
    +            if (state.Segments != null && (geometry == null || geometry.Relative))
    +            {
    +                double gx = (geometry != null) ? geometry.X / 2 : 0;
    +                int pointCount = state.AbsolutePoints.Count;
    +                double dist = (gx + 0.5) * state.Length;
    +                double[] segments = state.Segments;
    +                double segment = segments[0];
    +                double length = 0;
    +                int index = 1;
    +
    +                while (dist > length + segment && index < pointCount - 1)
    +                {
    +                    length += segment;
    +                    segment = segments[index++];
    +                }
    +
    +                double factor = (segment == 0) ? 0 : (dist - length) / segment;
    +                mxPoint p0 = state.AbsolutePoints[index - 1];
    +                mxPoint pe = state.AbsolutePoints[index];
    +
    +                if (p0 != null &&
    +                    pe != null)
    +                {
    +                    double gy = 0;
    +                    double offsetX = 0;
    +                    double offsetY = 0;
    +
    +                    if (geometry != null)
    +                    {
    +                        gy = geometry.Y;
    +                        mxPoint offset = geometry.Offset;
    +
    +                        if (offset != null)
    +                        {
    +                            offsetX = offset.X;
    +                            offsetY = offset.Y;
    +                        }
    +                    }
    +
    +                    double dx = pe.X - p0.X;
    +                    double dy = pe.Y - p0.Y;
    +                    double nx = (segment == 0) ? 0 : dy / segment;
    +                    double ny = (segment == 0) ? 0 : dx / segment;
    +
    +                    x = p0.X + dx * factor + (nx * gy + offsetX) * scale;
    +                    y = p0.Y + dy * factor - (ny * gy - offsetY) * scale;
    +                }
    +            }
    +            else if (geometry != null)
    +            {
    +                mxPoint offset = geometry.Offset;
    +
    +                if (offset != null)
    +                {
    +                    x += offset.X;
    +                    y += offset.Y;
    +                }
    +            }
    +
    +            return new mxPoint(x, y);
    +        }
    +
    +        /// <summary>
    +        /// Returns the state for the given cell or null if no state is defined for
    +        /// the cell.
    +        /// </summary>
    +        /// <param name="cell">Cell whose state should be returned.</param>
    +        /// <returns>Returns the state for the given cell.</returns>
    +        public mxCellState GetState(Object cell)
    +        {
    +            return GetState(cell, false);
    +        }
    +
    +        /// <summary>
    +        /// Returns the object that maps from cells to states.
    +        /// </summary>
    +        public Dictionary<Object, mxCellState> GetStates(Object[] cells)
    +        {
    +            return states;
    +        }
    +
    +        /// <summary>
    +        /// Returns the states for the given array of cells. The array contains
    +        /// all states that are not null, that is, the returned array may have
    +        /// less elements than the given array.
    +        /// </summary>
    +        public mxCellState[] GetCellStates(Object[] cells)
    +        {
    +            List<mxCellState> result = new List<mxCellState>(cells.Length);
    +
    +            for (int i = 0; i < cells.Length; i++)
    +            {
    +                mxCellState state = GetState(cells[i]);
    +
    +                if (state != null)
    +                {
    +                    result.Add(state);
    +                }
    +            }
    +
    +            return result.ToArray();
    +        }
    +
    +        /// <summary>
    +        /// Returns the cell state for the given cell. If create is true, then
    +        /// the state is created if it does not yet exist.
    +        /// </summary>
    +        /// <param name="cell">Cell for which a new state should be returned.</param>
    +        /// <param name="create">Boolean indicating if a new state should be created if it
    +        /// does not yet exist.</param>
    +        /// <returns>Returns the state for the given cell.</returns>
    +        public mxCellState GetState(Object cell, bool create)
    +        {
    +            mxCellState state = null;
    +
    +            if (cell != null)
    +            {
    +                if (states.ContainsKey(cell))
    +                {
    +                    state = states[cell];
    +                }
    +                else if (create && graph.IsCellVisible(cell))
    +                {
    +                    state = CreateState(cell);
    +                    states[cell] = state;
    +                }
    +            }
    +
    +            return state;
    +        }
    +
    +        /// <summary>
    +        /// Removes and returns the mxCellState for the given cell.
    +        /// </summary>
    +        /// <param name="cell">mxCell for which the mxCellState should be removed.</param>
    +        /// <returns>Returns the mxCellState that has been removed.</returns>
    +        public mxCellState RemoveState(Object cell)
    +        {
    +            mxCellState state = null;
    +
    +            if (states.ContainsKey(cell))
    +            {
    +                state = states[cell];
    +                states.Remove(cell);
    +            }
    +
    +            return state;
    +        }
    +
    +        /// <summary>
    +        /// Creates and returns a cell state for the given cell.
    +        /// </summary>
    +        /// <param name="cell">Cell for which a new state should be created.</param>
    +        /// <returns>Returns a new state for the given cell.</returns>
    +        public mxCellState CreateState(Object cell)
    +        {
    +            Dictionary<string, Object> style = graph.GetCellStyle(cell);
    +
    +            return new mxCellState(this, cell, style);
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/view/mxPerimeter.cs b/dotnet/src/view/mxPerimeter.cs
    new file mode 100644
    index 000000000..5fabcb16f
    --- /dev/null
    +++ b/dotnet/src/view/mxPerimeter.cs
    @@ -0,0 +1,462 @@
    +// $Id: mxPerimeter.cs,v 1.17 2012-01-11 09:06:56 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines the requirements for a perimeter function.
    +    /// </summary>
    +    /// <param name="bounds">Rectangle that represents the absolute bounds of the
    +    /// vertex.</param>
    +    /// <param name="vertex">Cell state that represents the vertex.</param>
    +    /// <param name="next">Point that represents the nearest neighbour point on the
    +    /// given edge.</param>
    +    /// <param name="orthogonal">Boolean that specifies if the orthogonal projection onto
    +    /// the perimeter should be returned. If this is false then the intersection
    +    /// of the perimeter and the line between the next and the center point is
    +    /// returned.</param>
    +    public delegate mxPoint mxPerimeterFunction(mxRectangle bounds, mxCellState vertex, mxPoint next, bool orthogonal);
    +
    +    /// <summary>
    +    /// Provides various perimeter functions to be used in a style
    +    /// as the value of mxConstants.STYLE_PERIMETER.
    +    /// </summary>
    +    public class mxPerimeter
    +    {
    +
    +        /// <summary>
    +        /// Describes a rectangular perimeter for the given bounds.
    +        /// </summary>
    +        public static mxPerimeterFunction RectanglePerimeter = delegate(
    +            mxRectangle bounds, mxCellState vertex, mxPoint next, bool orthogonal)
    +        {
    +            double cx = bounds.GetCenterX();
    +            double cy = bounds.GetCenterY();
    +            double dx = next.X - cx;
    +            double dy = next.Y - cy;
    +            double alpha = Math.Atan2(dy, dx);
    +
    +            mxPoint p = new mxPoint();
    +            double pi = Math.PI;
    +            double pi2 = Math.PI / 2;
    +            double beta = pi2 - alpha;
    +            double t = Math.Atan2(bounds.Height, bounds.Width);
    +
    +            if (alpha < -pi + t || alpha > pi - t)
    +            {
    +                // Left edge
    +                p.X = bounds.X;
    +                p.Y = cy - bounds.Width * Math.Tan(alpha) / 2;
    +            }
    +            else if (alpha < -t)
    +            {
    +                // Top Edge
    +                p.Y = bounds.Y;
    +                p.X = cx - bounds.Height * Math.Tan(beta) / 2;
    +            }
    +            else if (alpha < t)
    +            {
    +                // Right Edge
    +                p.X = bounds.X + bounds.Width;
    +                p.Y = cy + bounds.Width * Math.Tan(alpha) / 2;
    +            }
    +            else
    +            {
    +                // Bottom Edge
    +                p.Y = bounds.Y + bounds.Height;
    +                p.X = cx + bounds.Height * Math.Tan(beta) / 2;
    +            }
    +
    +            if (orthogonal)
    +            {
    +                if (next.X >= bounds.X &&
    +                    next.X <= bounds.X + bounds.Width)
    +                {
    +                    p.X = next.X;
    +                }
    +                else if (next.Y >= bounds.Y &&
    +                           next.Y <= bounds.Y + bounds.Height)
    +                {
    +                    p.Y = next.Y;
    +                }
    +
    +                if (next.X < bounds.X)
    +                {
    +                    p.X = bounds.X;
    +                }
    +                else if (next.X > bounds.X + bounds.Width)
    +                {
    +                    p.X = bounds.X + bounds.Width;
    +                }
    +
    +                if (next.Y < bounds.Y)
    +                {
    +                    p.Y = bounds.Y;
    +                }
    +                else if (next.Y > bounds.Y + bounds.Height)
    +                {
    +                    p.Y = bounds.Y + bounds.Height;
    +                }
    +            }
    +
    +            return p;
    +        };
    +
    +        /// <summary>
    +        /// Describes an elliptic perimeter.
    +        /// </summary>
    +        public static mxPerimeterFunction EllipsePerimeter = delegate(
    +            mxRectangle bounds, mxCellState vertex, mxPoint next, bool orthogonal)
    +        {
    +            double x = bounds.X;
    +            double y = bounds.Y;
    +            double a = bounds.Width / 2;
    +            double b = bounds.Height / 2;
    +            double cx = x + a;
    +            double cy = y + b;
    +            double px = next.X;
    +            double py = next.Y;
    +
    +            // Calculates straight line equation through
    +            // point and ellipse center y = d * x + h
    +            long dx = (long)(px - cx);
    +            long dy = (long)(py - cy);
    +
    +            if (dx == 0 && dy != 0)
    +            {
    +                return new mxPoint(cx, cy + b * dy / Math.Abs(dy));
    +            }
    +            else if (dx == 0 && dy == 0)
    +            {
    +                return new mxPoint(px, py);
    +            }
    +
    +            if (orthogonal)
    +            {
    +                if (py >= y && py <= y + bounds.Height)
    +                {
    +                    double ty = py - cy;
    +                    double tx = Math.Sqrt(a * a * (1 - (ty * ty) / (b * b)));
    +
    +                    if (Double.IsNaN(tx))
    +                    {
    +                        tx = 0;
    +                    }
    +
    +                    if (px <= x)
    +                    {
    +                        tx = -tx;
    +                    }
    +
    +                    return new mxPoint(cx + tx, py);
    +                }
    +
    +                if (px >= x && px <= x + bounds.Width)
    +                {
    +                    double tx = px - cx;
    +                    double ty = Math.Sqrt(b * b * (1 - (tx * tx) / (a * a)));
    +
    +                    if (Double.IsNaN(ty))
    +                    {
    +                        ty = 0;
    +                    }
    +
    +                    if (py <= y)
    +                    {
    +                        ty = -ty;
    +                    }
    +
    +                    return new mxPoint(px, cy + ty);
    +                }
    +            }
    +
    +            // Calculates intersection
    +            double d = dy / dx;
    +            double h = cy - d * cx;
    +            double e = a * a * d * d + b * b;
    +            double f = -2 * cx * e;
    +            double g = a * a * d * d * cx * cx +
    +                    b * b * cx * cx -
    +                    a * a * b * b;
    +            double det = Math.Sqrt(f * f - 4 * e * g);
    +
    +            // Two solutions (perimeter points)
    +            double xout1 = (-f + det) / (2 * e);
    +            double xout2 = (-f - det) / (2 * e);
    +            double yout1 = d * xout1 + h;
    +            double yout2 = d * xout2 + h;
    +            double dist1 = Math.Sqrt(Math.Pow((xout1 - px), 2)
    +                        + Math.Pow((yout1 - py), 2));
    +            double dist2 = Math.Sqrt(Math.Pow((xout2 - px), 2)
    +                        + Math.Pow((yout2 - py), 2));
    +
    +            // Correct solution
    +            double xout = 0;
    +            double yout = 0;
    +            
    +            if (dist1 < dist2)
    +            {
    +                xout = xout1;
    +                yout = yout1;
    +            }
    +            else
    +            {
    +                xout = xout2;
    +                yout = yout2;
    +            }
    +            
    +            return new mxPoint(xout, yout);
    +        };
    +
    +        /// <summary>
    +        /// Describes a rhombus (aka diamond) perimeter.
    +        /// </summary>
    +        public static mxPerimeterFunction RhombusPerimeter = delegate(
    +            mxRectangle bounds, mxCellState vertex, mxPoint next, bool orthogonal)
    +        {
    +            double x = bounds.X;
    +            double y = bounds.Y;
    +            double w = bounds.Width;
    +            double h = bounds.Height;
    +
    +            double cx = x + w / 2;
    +            double cy = y + h / 2;
    +
    +            double px = next.X;
    +            double py = next.Y;
    +
    +            // Special case for intersecting the diamond's corners
    +            if (cx == px)
    +            {
    +                if (cy > py)
    +                {
    +                    return new mxPoint(cx, y); // top
    +                }
    +                else
    +                {
    +                    return new mxPoint(cx, y + h); // bottom
    +                }
    +            }
    +            else if (cy == py)
    +            {
    +                if (cx > px)
    +                {
    +                    return new mxPoint(x, cy); // left
    +                }
    +                else
    +                {
    +                    return new mxPoint(x + w, cy); // right
    +                }
    +            }
    +
    +            double tx = cx;
    +            double ty = cy;
    +
    +            if (orthogonal)
    +            {
    +                if (px >= x &&
    +                    px <= x + w)
    +                {
    +                    tx = px;
    +                }
    +                else if (py >= y &&
    +                          py <= y + h)
    +                {
    +                    ty = py;
    +                }
    +            }
    +
    +            // In which quadrant will the intersection be?
    +            // set the slope and offset of the border line accordingly
    +            if (px < cx)
    +            {
    +                if (py < cy)
    +                {
    +                    return mxUtils.Intersection(px, py, tx, ty, cx, y,
    +                            x, cy);
    +                }
    +                else
    +                {
    +                    return mxUtils.Intersection(px, py, tx, ty, cx, y
    +                            + h, x, cy);
    +                }
    +            }
    +            else if (py < cy)
    +            {
    +                return mxUtils.Intersection(px, py, tx, ty, cx, y,
    +                        x + w, cy);
    +            }
    +            else
    +            {
    +                return mxUtils.Intersection(px, py, tx, ty, cx, y + h, x
    +                        + w, cy);
    +            }
    +        };
    +    
    +        /// <summary>
    +        /// Describes a triangle perimeter.
    +        /// </summary>
    +        public static mxPerimeterFunction TrianglePerimeter = delegate(
    +            mxRectangle bounds, mxCellState vertex, mxPoint next, bool orthogonal)
    +        {
    +            string direction = (vertex != null) ? mxUtils.GetString(
    +                vertex.Style, mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_EAST) :
    +                mxConstants.DIRECTION_EAST;
    +            bool vertical = direction.Equals(mxConstants.DIRECTION_NORTH) ||
    +                direction.Equals(mxConstants.DIRECTION_SOUTH);
    +
    +			double x = bounds.X;
    +			double y = bounds.Y;
    +			double w = bounds.Width;
    +			double h = bounds.Height;
    +
    +			double cx = x + w / 2;
    +			double cy = y + h / 2;
    +
    +			mxPoint start = new mxPoint(x, y);
    +			mxPoint corner = new mxPoint(x + w, cy);
    +			mxPoint end = new mxPoint(x, y + h);
    +
    +            if (direction.Equals(mxConstants.DIRECTION_NORTH))
    +            {
    +                start = end;
    +                corner = new mxPoint(cx, y);
    +                end = new mxPoint(x + w, y + h);
    +            }
    +            else if (direction.Equals(mxConstants.DIRECTION_SOUTH))
    +            {
    +                corner = new mxPoint(cx, y + h);
    +                end = new mxPoint(x + w, y);
    +            }
    +            else if (direction.Equals(mxConstants.DIRECTION_WEST))
    +            {
    +                start = new mxPoint(x + w, y);
    +                corner = new mxPoint(x, cy);
    +                end = new mxPoint(x + w, y + h);
    +            }
    +
    +			// Compute angle
    +			double dx = next.X - cx;
    +			double dy = next.Y - cy;
    +
    +			double alpha = (vertical) ? Math.Atan2(dx, dy) : Math.Atan2(dy, dx);
    +			double t = (vertical) ? Math.Atan2(w, h) : Math.Atan2(h, w);
    +			
    +            bool baseSide = false;
    +			
    +			if (direction.Equals(mxConstants.DIRECTION_NORTH) ||
    +				direction.Equals(mxConstants.DIRECTION_WEST))
    +			{
    +				baseSide = alpha > -t && alpha < t;
    +			}
    +			else
    +			{
    +				baseSide = alpha < -Math.PI + t || alpha > Math.PI - t;	
    +			}
    +
    +            mxPoint result = null;
    +
    +			if (baseSide)
    +			{
    +				if (orthogonal &&
    +					((vertical &&
    +					next.X >= start.X &&
    +					next.X <= end.X) ||
    +					(!vertical &&
    +					next.Y >= start.Y &&
    +					next.Y <= end.Y)))
    +				{
    +					if (vertical)
    +					{
    +						result = new mxPoint(next.X, start.Y);
    +					}
    +					else
    +					{
    +						result = new mxPoint(start.X, next.Y);
    +					}
    +				}
    +				else
    +				{
    +                    if (direction.Equals(mxConstants.DIRECTION_EAST))
    +                    {
    +                        result = new mxPoint(x, y + h / 2 -
    +                            w * Math.Tan(alpha) / 2);
    +                    }
    +                    else if (direction.Equals(mxConstants.DIRECTION_NORTH))
    +					{
    +						result = new mxPoint(x + w / 2 + h * Math.Tan(alpha) / 2,
    +							y + h);
    +					}
    +                    else if (direction.Equals(mxConstants.DIRECTION_SOUTH))
    +					{
    +						result = new mxPoint(x + w / 2 - h * Math.Tan(alpha) / 2,
    +							y);
    +					}
    +					else if (direction.Equals(mxConstants.DIRECTION_WEST))
    +					{
    +						result = new mxPoint(x + w, y + h / 2 +
    +							w * Math.Tan(alpha) / 2);
    +					}
    +					else
    +					{
    +						
    +					}
    +				}
    +			}
    +			else
    +			{
    +				if (orthogonal)
    +				{
    +					mxPoint pt = new mxPoint(cx, cy);
    +			
    +					if (next.Y >= y && next.Y <= y + h)
    +					{
    +						pt.X = (vertical) ? cx : (
    +                            (direction.Equals(mxConstants.DIRECTION_WEST)) ?
    +								x + w : x);
    +						pt.Y = next.Y;
    +					}
    +					else if (next.X >= x && next.X <= x + w)
    +					{
    +						pt.X = next.X;
    +						pt.Y = (!vertical) ? cy : (
    +                            (direction.Equals(mxConstants.DIRECTION_NORTH)) ?
    +								y + h : y);
    +					}
    +					
    +					// Compute angle
    +					dx = next.X - pt.X;
    +					dy = next.Y - pt.Y;
    +					
    +					cx = pt.X;
    +					cy = pt.Y;
    +				}
    +
    +				if ((vertical && next.X <= x + w / 2) ||
    +					(!vertical && next.Y <= y + h / 2))
    +				{
    +					result = mxUtils.Intersection(next.X, next.Y, cx, cy,
    +						start.X, start.Y, corner.X, corner.Y);
    +				}
    +				else
    +				{
    +					result = mxUtils.Intersection(next.X, next.Y, cx, cy,
    +						corner.X, corner.Y, end.X, end.Y);
    +				}
    +			}
    +
    +			if (result == null)
    +			{
    +				result = new mxPoint(cx, cy);
    +			}
    +
    +			return result;
    +        };
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/view/mxStyleRegistry.cs b/dotnet/src/view/mxStyleRegistry.cs
    new file mode 100644
    index 000000000..a38c1a52f
    --- /dev/null
    +++ b/dotnet/src/view/mxStyleRegistry.cs
    @@ -0,0 +1,77 @@
    +// $Id: mxStyleRegistry.cs,v 1.3 2010-01-29 09:56:50 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Diagnostics;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Static class that acts as a global registry for codecs. See mxCodec for
    +    /// an example of using this class.
    +    /// </summary>
    +    public class mxStyleRegistry
    +    {
    +
    +        /// <summary>
    +        /// Maps from strings to objects.
    +        /// </summary>
    +        protected static Dictionary<string, Object> values = new Dictionary<string, Object>();
    +
    +        // Registers the known codecs and package names
    +        static mxStyleRegistry()
    +        {
    +            PutValue(mxConstants.EDGESTYLE_ELBOW, mxEdgeStyle.ElbowConnector);
    +            PutValue(mxConstants.EDGESTYLE_ENTITY_RELATION, mxEdgeStyle.EntityRelation);
    +            PutValue(mxConstants.EDGESTYLE_LOOP, mxEdgeStyle.Loop);
    +            PutValue(mxConstants.EDGESTYLE_SIDETOSIDE, mxEdgeStyle.SideToSide);
    +            PutValue(mxConstants.EDGESTYLE_TOPTOBOTTOM, mxEdgeStyle.TopToBottom);
    +
    +            PutValue(mxConstants.PERIMETER_ELLIPSE, mxPerimeter.EllipsePerimeter);
    +            PutValue(mxConstants.PERIMETER_RECTANGLE, mxPerimeter.RectanglePerimeter);
    +            PutValue(mxConstants.PERIMETER_RHOMBUS, mxPerimeter.RhombusPerimeter);
    +            PutValue(mxConstants.PERIMETER_TRIANGLE, mxPerimeter.TrianglePerimeter);
    +        }
    +
    +        /// <summary>
    +        /// Puts the given object into the registry under the given name.
    +        /// </summary>
    +        public static void PutValue(String name, Object value)
    +        {
    +            values[name] = value;
    +        }
    +
    +        /// <summary>
    +        /// Returns the value associated with the given name.
    +        /// </summary>
    +        public static Object GetValue(String name)
    +        {
    +            if (values.ContainsKey(name))
    +            {
    +                return values[name];
    +            }
    +
    +            return null;
    +        }
    +
    +        /// <summary>
    +        /// Returns the value associated with the given name.
    +        /// </summary>
    +        public static String GetName(Object value)
    +        {
    +            foreach (String key in values.Keys)
    +            {
    +                if (values[key] == value)
    +                {
    +                    return key;
    +                }
    +            }
    +
    +            return null;
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/src/view/mxStylesheet.cs b/dotnet/src/view/mxStylesheet.cs
    new file mode 100644
    index 000000000..9234801ad
    --- /dev/null
    +++ b/dotnet/src/view/mxStylesheet.cs
    @@ -0,0 +1,176 @@
    +// $Id: mxStylesheet.cs,v 1.21 2011-06-09 12:07:55 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Drawing;
    +
    +namespace com.mxgraph
    +{
    +    /// <summary>
    +    /// Defines the appearance of the cells in a graph.
    +    /// </summary>
    +    public class mxStylesheet
    +    {
    +
    +        /// <summary>
    +        /// Shared immutable empty dictionary (for undefined cell styles).
    +        /// </summary>
    +        public static Dictionary<string, Object> EMPTY_STYLE = new Dictionary<string, Object>();
    +
    +        /// <summary>
    +        /// Maps from names to styles.
    +        /// </summary>
    +        protected Dictionary<string, Dictionary<string, Object>> styles =
    +            new Dictionary<string, Dictionary<string, Object>>();
    +
    +        /// <summary>
    +        /// Constructs a new stylesheet and assigns default styles.
    +        /// </summary>
    +        public mxStylesheet()
    +        {
    +            DefaultVertexStyle = CreateDefaultVertexStyle();
    +            DefaultEdgeStyle = CreateDefaultEdgeStyle();
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the map that contains the styles.
    +        /// </summary>
    +        public Dictionary<string, Dictionary<string, Object>> Styles
    +        {
    +            get { return styles; }
    +            set { styles = value; }
    +        }
    +
    +        /// <summary>
    +        /// Creates and returns the default vertex style.
    +        /// </summary>
    +        /// <returns>Returns the default vertex style.</returns>
    +        protected Dictionary<string, Object> CreateDefaultVertexStyle()
    +        {
    +            Dictionary<string, Object> style = new Dictionary<string, Object>();
    +
    +            style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    +            style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +            style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +            style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +            style[mxConstants.STYLE_FILLCOLOR] = "#C3D9FF";
    +            style[mxConstants.STYLE_STROKECOLOR] = "#6482B9";
    +            style[mxConstants.STYLE_FONTCOLOR] = "#774400";
    +
    +            return style;
    +        }
    +
    +        /// <summary>
    +        /// Creates and returns the default edge style.
    +        /// </summary>
    +        /// <returns>Returns the default edge style.</returns>
    +        protected Dictionary<string, Object> CreateDefaultEdgeStyle()
    +        {
    +            Dictionary<string, Object> style = new Dictionary<string, Object>();
    +
    +            style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_CONNECTOR;
    +            style[mxConstants.STYLE_ENDARROW] = mxConstants.ARROW_CLASSIC;
    +            style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +            style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +            style[mxConstants.STYLE_STROKECOLOR] = "#6482B9";
    +            style[mxConstants.STYLE_FONTCOLOR] = "#446299";
    +
    +            return style;
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the default style for vertices.
    +        /// </summary>
    +        public Dictionary<string, Object> DefaultVertexStyle
    +        {
    +            get { return styles["defaultVertex"]; }
    +            set { PutCellStyle("defaultVertex", value); }
    +        }
    +
    +        /// <summary>
    +        /// Sets or returns the default style for edges.
    +        /// </summary>
    +        public Dictionary<string, Object> DefaultEdgeStyle
    +        {
    +            get { return styles["defaultEdge"]; }
    +            set { PutCellStyle("defaultEdge", value); }
    +        }
    +
    +        /// <summary>
    +        /// Stores the specified style under the given name.
    +        /// </summary>
    +        /// <param name="name">Name for the style to be stored.</param>
    +        /// <param name="style">Key, value pairs that define the style.</param>
    +        public void PutCellStyle(string name, Dictionary<string, Object> style)
    +        {
    +            styles[name] = style;
    +        }
    +
    +        /// <summary>
    +        /// Returns the cell style for the specified cell or the given defaultStyle
    +        /// if no style can be found for the given stylename.
    +        /// </summary>
    +        /// <param name="name">String of the form [(stylename|key=value);] that represents the
    +        /// style.</param>
    +        /// <param name="defaultStyle">Default style to be returned if no style can be found.</param>
    +        /// <returns>Returns the style for the given formatted cell style.</returns>
    +        public Dictionary<string, Object> GetCellStyle(string name,
    +            Dictionary<string, Object> defaultStyle)
    +        {
    +		    Dictionary<string, Object> style = defaultStyle;
    +
    +		    if (name != null && name.Length > 0)
    +            {
    +                string[] pairs = name.Split(';');
    +
    +			    if (pairs != null)
    +                {
    +                    if (style != null && !name.StartsWith(";"))
    +                    {
    +                        style = new Dictionary<string, Object>(style);
    +                    }
    +                    else
    +                    {
    +                        style = new Dictionary<string, Object>();
    +                    }
    +
    +			 	    for (int i = 0; i < pairs.Length; i++)
    +                    {
    +                        string tmp = pairs[i];
    +                        int c = tmp.IndexOf('=');
    +
    +                        if (c >= 0)
    +                        {
    +                            string key = tmp.Substring(0, c);
    +                            string value = tmp.Substring(c + 1);
    +
    +                            if (value.Equals(mxConstants.NONE))
    +                            {
    +                                style.Remove(key);
    +                            }
    +                            else
    +                            {
    +                                style[key] = value;
    +                            }
    +                        }
    +                        else if (styles.ContainsKey(tmp))
    +                        {
    +                            Dictionary<string, Object> tmpStyle = styles[tmp];
    +
    +                            foreach (KeyValuePair<string, Object> entry in tmpStyle)
    +                            {
    +                                style[entry.Key] = entry.Value;
    +                            }
    +                        }
    +				    }
    +			    }
    +		    }
    +
    +		    return style;
    +        }
    +
    +    }
    +
    +}
    diff --git a/dotnet/test/mxCodecTest.cs b/dotnet/test/mxCodecTest.cs
    new file mode 100644
    index 000000000..fa4b524be
    --- /dev/null
    +++ b/dotnet/test/mxCodecTest.cs
    @@ -0,0 +1,52 @@
    +// $Id: mxCodecTest.cs,v 1.8 2008-03-11 15:46:13 gaudenz Exp $
    +// Copyright (c) 2007-2008, Gaudenz Alder
    +using System;
    +using System.Collections.Generic;
    +using System.Text;
    +using System.Xml;
    +using System.Threading;
    +using com.mxgraph;
    +
    +namespace test
    +{
    +    public class mxCodecTest
    +    {
    +
    +        public static void Main()
    +        {
    +            // Creates graph with model
    +            mxGraph graph = new mxGraph();
    +
    +            // Adds cells into the model
    +            Object parent = graph.GetDefaultParent();
    +            graph.Model.BeginUpdate();
    +            Object v1, v2, e1;
    +            try
    +            {
    +                v1 = graph.InsertVertex(parent, null, "Hello", 20, 20, 80, 30);
    +                v2 = graph.InsertVertex(parent, null, "World!", 200, 150, 80, 30);
    +                e1 = graph.InsertEdge(parent, null, "e1", v1, v2);
    +            }
    +            finally
    +            {
    +                graph.Model.EndUpdate();
    +            }
    +
    +            mxCodec codec = new mxCodec();
    +            XmlNode node = codec.Encode(graph.Model);
    +            string xml1 = mxUtils.GetPrettyXml(node);
    +
    +            codec = new mxCodec();
    +            Object model = codec.Decode(node);
    +
    +            codec = new mxCodec();
    +            node = codec.Encode(model);
    +            string xml2 = mxUtils.GetPrettyXml(node);
    +
    +            Console.WriteLine("mxCodecTest Passed: "+(xml1.Equals(xml2)));
    +            Thread.Sleep(100000);
    +        }
    +
    +    }
    +
    +}
    diff --git a/index.html b/index.html
    new file mode 100644
    index 000000000..9fd3573e9
    --- /dev/null
    +++ b/index.html
    @@ -0,0 +1,97 @@
    +<html>
    +<head>
    +	<title>mxGraph 1.10.0.5</title>
    +	<link rel="stylesheet" HREF="docs/css/html.css" CHARSET="ISO-8859-1" TYPE="text/css">
    +</head>
    +<body>
    +<br/>
    +<center>
    +<img src="docs/images/mxgraph_logo.gif" alt="mxGraph"/><br/>
    +<font size="-1"><i>
    +Version 1.10.0.5 &ndash; 21. May 2012
    +</i></font>
    +</center>
    +<br/>
    +<br/>
    +<h1>mxGraph 1.10.0.5</h1>
    +<p>
    +	mxGraph combines Ajax and latest browser technologies to implement a graph
    +	component that does not require any browser configuration or plugin
    +	installation.
    +</p>
    +<h2>Documentation</h2>
    +<p>
    +	This documentation is designed for people familiar with JavaScript programming
    +	and object-oriented programming concepts. You should also be familiar with
    +	mxGraph from a user's point of view. There are many
    +	<a href="http://www.google.com/search?q=javascript+tutorials">JavaScript
    +	tutorials</a> available on the Web.
    +</p>
    +<h3>General Information</h3>
    +<ul>
    +	<li><a href="docs/tutorial.html">Tutorial</a></li>
    +	<li><a href="docs/manual.html">User Manual (JavaScript)</a></li>
    +	<li><a href="docs/manual_javavis.html">User Manual (Java)</a></li>
    +	<li><a href="docs/known-issues.html">Known Issues</a></li>
    +</ul>
    +<h3>Installation &amp; Examples</h3>
    +<ul>
    +	<li><a href="php/index.html">PHP</a></li>
    +	<li><a href="dotnet/index.html">.NET</a></li>
    +	<li><a href="java/index.html">Java</a></li>
    +	<li><a href="javascript/index.html">JavaScript</a></li>
    +</ul>
    +<h3>API Specifications</h3>
    +<ul>
    +	<li><a href="docs/php-api/index.html">PHP</a></li>
    +	<li><a href="dotnet/docs/html/index.html">.NET</a></li>
    +	<li><a href="java/docs/index.html">Java</a></li>
    +	<li><a href="docs/js-api/index.html">JavaScript</a></li>
    +</ul>
    +<h2>Support</h2>
    +<p>
    +	You can obtain technical support with using mxGraph at the
    +	<a href="http://www.jgraph.org/forum/viewforum.php?f=12">mxGraph forum</a>
    +	or via the commercial support as agreed with JGraph Ltd. Please also read the
    +	<a href="docs/known-issues.html">Known Issues</a> before contacting support.
    +</p>
    +<h2>License</h2>
    +<p>
    +	Please read the	<a href="license.txt">license</a> carefully. The evaluation
    +	version ships without the JavaScript code. The code is loaded from our
    +	servers using a special link. The full JavaScript code is included in the
    +	commercial distribution. Please read the 
    +	<a href="http://www.jgraph.com/purchase.html">licensing details and pricing 
    +	information.</a>
    +</p>
    +<h2>Source Code</h2>
    +<p>
    +	The source code for all backends is included in all distributions. The
    +	<code>mxClient.js</code> file is included in the non-evaluation versions.
    +	The source distribution also contains the formatted JavaScript source code.
    +</p>
    +<h2>Requirements</h2>
    +<p>
    +  	The JavaScript client requires Firefox 1.5 and later, Microsoft Internet
    +  	Explorer 6.0 and later, Safari 3.0 and later, Camino 1.0.2 and later,
    +  	Opera 9.0 and later, Iceape 1.0 and later, Epiphany 2.0 and later, Galeon
    +  	2.0 and later or Google Chrome.
    +</p>
    +<p>
    +  	The servers require Java 5.0 or later, .NET 1.1 or later, or PHP 5.0 or
    +  	later. The I/O module for PHP requires libxml. The mxGdCanvas class and the
    +  	update of the label bounding box in mxUtils for PHP require the GD Graphics
    +  	Library, however, it is not required for the PHP backend to work. Support
    +  	for TrueType fonts in PHP is also optional, but recommended.
    +</p>
    +<h2>Updates</h2>
    +<p>
    +	To be notified of available updates, please subscribe
    +	to the respective <a href="http://www.jgraph.com/lists/">mailing list</a>
    +	or check the <a href="http://www.jgraph.com/mxgraphlog.html">changelog</a>
    +	on a regular basis.
    +</p>
    +<hr size="1">
    +&copy; 2006-2010 by JGraph Ltd.
    +</body>
    +</html>
    diff --git a/java/build.xml b/java/build.xml
    new file mode 100644
    index 000000000..b8771b2cc
    --- /dev/null
    +++ b/java/build.xml
    @@ -0,0 +1,134 @@
    +<!--
    + $Id: build.xml,v 1.25 2010-08-23 15:19:57 gaudenz Exp $
    + Copyright (c) 2008-2010 Gaudenz Alder, David Benson
    +-->
    +
    +<!-- ===================== Project Properties =========================== -->
    +
    +<project name="mxgraph" default="all" basedir=".">
    +
    +	<property name="product.name"    value="mxGraph"/>
    +	<property name="product.version" value="1.10.0.5"/>
    +	<property name="all.jar"         value="mxgraph-all.jar"/>
    +	<property name="core.jar"        value="mxgraph-core.jar"/>
    +	<property name="swing.jar"       value="mxgraph-swing.jar"/>
    +
    +<!-- ===================== Project Environment =========================== -->
    +
    +	<property name="source.home"    value="${basedir}/src"/>
    +	<property name="example.home"   value="${basedir}/examples"/>
    +	<property name="test.home"      value="${basedir}/test"/>
    +
    +<!-- ==================== Compilation Options ==================== -->
    +
    +	<property name="compile.debug"       value="false"/>
    +	<property name="compile.deprecation" value="false"/>
    +	<property name="compile.optimize"    value="true"/>
    +
    +<!-- ==================== All ==================== -->
    +
    +	<target name="all" depends="build"
    +		description="Clean up and build the project"/>
    +
    +<!-- ==================== Clean ==================== -->
    +
    +	<target name="clean" description="Deletes all generated files and directories">
    +		<delete dir="${basedir}/classes"/>
    +		<delete dir="${basedir}/docs"/>
    +		<delete dir="${basedir}/lib"/>
    +	</target>
    +
    +<!-- ==================== Init ==================== -->
    +
    +	<target name="init" description="Initializes the build">
    +		<tstamp/>
    +		<mkdir dir="${basedir}/classes"/>
    +		<mkdir dir="${basedir}/docs"/>
    +		<mkdir dir="${basedir}/lib"/>
    +	</target>
    +
    +<!-- ==================== Compile ==================== -->
    +
    +	<target name="compile" depends="init" description="Compiles the source tree">
    +		<javac srcdir="${source.home}"
    +			debug="${compile.debug}"
    +			deprecation="${compile.deprecation}"
    +			optimize="${compile.optimize}"
    +			destdir="${basedir}/classes">
    +			<classpath>
    +				<pathelement path="${basedir}/classes"/>
    +			</classpath>
    +		</javac>
    +	</target>
    +
    +<!-- ==================== Doc ==================== -->
    +
    +	<target name="doc" depends="compile" description="Generates the API specification (javadoc)">
    +		<javadoc packagenames="com.mxgraph.*"
    +				 sourcepath="${source.home}"
    +				 classpath="${basedir}/classes" 
    +				 destdir="${basedir}/docs"
    +				 use="true"
    +				 author="false"
    +				 version="false"
    +				 windowtitle="${product.name} ${product.version} API Specification"
    +				 doctitle="${product.name} ${product.version} API Specification">
    +			<header><![CDATA[<p><b>${product.name} ${product.version}</b></p>]]></header>
    +			<bottom><![CDATA[<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>]]></bottom>
    +			<link href="http://download.oracle.com/javase/1.5.0/docs/api/"/>
    +		</javadoc>
    +	</target>
    +
    +<!-- ==================== Build ==================== -->
    +
    +	<target name="build" depends="doc" description="Builds all Java archives (JARs)">
    +		<jar jarfile="${basedir}/lib/${all.jar}">
    +			<manifest>
    +				<attribute name="Vendor" value="JGraph Ltd"/>
    +				<attribute name="Bundle-Version" value="${product.version}"/>
    +				<attribute name="Bundle-SymbolicName" value="com.mxgraph"/>
    +				<attribute name="Main-Class" value="com.mxgraph.view.mxGraph"/>
    +			</manifest>
    +			<fileset dir="${source.home}">
    +				<exclude name="**/*.java"/>
    +			</fileset>
    +			<fileset dir="${basedir}/classes">
    +				<include name="com/mxgraph/**"/>
    +			</fileset>
    +		</jar>
    +		<jar jarfile="${basedir}/lib/${core.jar}">
    +			<manifest>
    +				<attribute name="Vendor" value="JGraph Ltd"/>
    +				<attribute name="Bundle-Version" value="${product.version}"/>
    +				<attribute name="Bundle-SymbolicName" value="com.mxgraph"/>
    +				<attribute name="Main-Class" value="com.mxgraph.view.mxGraph"/>
    +			</manifest>
    +			<fileset dir="${source.home}">
    +				<exclude name="com/mxgraph/swing/**"/>
    +				<exclude name="**/*.java"/>
    +				<include name="com/mxgraph/**"/>
    +			</fileset>
    +			<fileset dir="${basedir}/classes">
    +				<exclude name="com/mxgraph/swing/**"/>
    +				<include name="com/mxgraph/**"/>
    +			</fileset>
    +		</jar>
    +		<jar jarfile="${basedir}/lib/${swing.jar}">
    +			<manifest>
    +				<attribute name="Vendor" value="JGraph Ltd"/>
    +				<attribute name="Bundle-Version" value="${product.version}"/>
    +				<attribute name="Bundle-SymbolicName" value="com.mxgraph"/>
    +			</manifest>
    +			<fileset dir="${source.home}">
    +				<include name="com/mxgraph/swing/**"/>
    +				<exclude name="**/*.java"/>
    +			</fileset>
    +			<fileset dir="${basedir}/classes">
    +				<include name="com/mxgraph/swing/**"/>
    +			</fileset>
    +		</jar>
    +		<delete dir="${basedir}/classes"/>
    +	</target>
    +
    +</project>
    diff --git a/java/docs/allclasses-frame.html b/java/docs/allclasses-frame.html
    new file mode 100644
    index 000000000..7617e502d
    --- /dev/null
    +++ b/java/docs/allclasses-frame.html
    @@ -0,0 +1,509 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +All Classes (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameHeadingFont">
    +<B>All Classes</B></FONT>
    +<BR>
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg" target="classFrame">AbstractParser</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg" target="classFrame">AWTPathProducer</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg" target="classFrame">AWTPolygonProducer</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg" target="classFrame">AWTPolylineProducer</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>CSSConstants</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg" target="classFrame">DefaultErrorHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>ErrorHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg" target="classFrame">ExtendedGeneralPath</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>ExtendedPathIterator</I></A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape" target="classFrame">mxActorShape</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util" target="classFrame">mxAnimation</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape" target="classFrame">mxArrowShape</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util" target="classFrame">mxBase64</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxBasicCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape" target="classFrame">mxBasicShape</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model" target="classFrame">mxCell</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io" target="classFrame">mxCellCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view" target="classFrame">mxCellEditor</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxCellHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxCellMarker</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util" target="classFrame">mxCellOverlay</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model" target="classFrame">mxCellPath</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util" target="classFrame">mxCellRenderer</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util" target="classFrame">mxCellRenderer.CanvasFactory</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view" target="classFrame">mxCellState</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view" target="classFrame">mxCellStatePreview</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxCellTracker</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io" target="classFrame">mxChildChangeCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxCircleLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape" target="classFrame">mxCloudShape</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io" target="classFrame">mxCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io" target="classFrame">mxCodecRegistry</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxCompactTreeLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout" target="classFrame">mxCompactTreeLayout.Polygon</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout" target="classFrame">mxCompactTreeLayout.Polyline</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout" target="classFrame">mxCompactTreeLayout.TreeNode</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view" target="classFrame">mxConnectionConstraint</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxConnectionHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape" target="classFrame">mxConnectorShape</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxConnectPreview</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis" target="classFrame">mxConstantCostFunction</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util" target="classFrame">mxConstants</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage" target="classFrame">mxCoordinateAssignment</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util" target="classFrame">mxCurve</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape" target="classFrame">mxCurveLabelShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape" target="classFrame">mxCurveShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape" target="classFrame">mxCylinderShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape" target="classFrame">mxDefaultTextShape</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis" target="classFrame">mxDistanceCostFunction</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader" target="classFrame">mxDomOutputParser</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader" target="classFrame"><I>mxDomOutputParser.IElementHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util" target="classFrame">mxDomUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape" target="classFrame">mxDoubleEllipseShape</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxEdgeHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxEdgeLabelLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view" target="classFrame">mxEdgeStyle</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view" target="classFrame"><I>mxEdgeStyle.mxEdgeStyleFunction</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxElbowEdgeHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape" target="classFrame">mxEllipseShape</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util" target="classFrame">mxEvent</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util" target="classFrame">mxEventObject</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util" target="classFrame">mxEventSource</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util" target="classFrame"><I>mxEventSource.mxIEventListener</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxFastOrganicLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis" target="classFrame">mxFibonacciHeap</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis" target="classFrame">mxFibonacciHeap.Node</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io" target="classFrame">mxGdCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd" target="classFrame">mxGdDocument</A>
    +<BR>
    +<A HREF="com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd" target="classFrame">mxGdDocument.mxGDParseState</A>
    +<BR>
    +<A HREF="com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd" target="classFrame">mxGdEdge</A>
    +<BR>
    +<A HREF="com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd" target="classFrame">mxGdNode</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io" target="classFrame">mxGenericChangeCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model" target="classFrame">mxGeometry</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view" target="classFrame">mxGraph</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view" target="classFrame"><I>mxGraph.mxICellVisitor</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphAbstractHierarchyCell</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.DeleteAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.DrillAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.EditAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.FoldAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.GroupAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.LayerAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.RemoveFromParentAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.SelectAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.UngroupAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.UpdateGroupBoundsAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.ZoomAction</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis" target="classFrame">mxGraphAnalysis</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing" target="classFrame">mxGraphComponent</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing" target="classFrame">mxGraphComponent.mxMouseRedirector</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxGraphHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphHierarchyEdge</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphHierarchyModel</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model" target="classFrame"><I>mxGraphHierarchyModel.CellVisitor</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphHierarchyNode</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphHierarchyRank</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxGraphics2DCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas" target="classFrame">mxGraphicsCanvas2D</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxGraphLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io" target="classFrame">mxGraphMlCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlConstants</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlData</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlEdge</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlGraph</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlKey</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml" target="classFrame">mxGraphMlKey.keyForValues</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml" target="classFrame">mxGraphMlKey.keyTypeValues</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlKeyManager</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlNode</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlPort</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlShapeEdge</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlShapeNode</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model" target="classFrame"><I>mxGraphModel.Filter</I></A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxChildChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxCollapseChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxGeometryChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxRootChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxStyleChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxTerminalChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxValueChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxVisibleChange</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing" target="classFrame">mxGraphOutline</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view" target="classFrame">mxGraphSelectionModel</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view" target="classFrame">mxGraphSelectionModel.mxSelectionChange</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphTransferable</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxGraphTransferHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view" target="classFrame">mxGraphView</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view" target="classFrame">mxGraphView.mxCurrentRootChange</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader" target="classFrame">mxGraphViewImageReader</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader" target="classFrame">mxGraphViewReader</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape" target="classFrame">mxHexagonShape</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical" target="classFrame">mxHierarchicalLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage" target="classFrame"><I>mxHierarchicalLayoutStage</I></A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxHtmlCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape" target="classFrame">mxHtmlTextShape</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas" target="classFrame"><I>mxICanvas</I></A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas" target="classFrame"><I>mxICanvas2D</I></A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model" target="classFrame"><I>mxICell</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view" target="classFrame"><I>mxICellEditor</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util" target="classFrame"><I>mxICellOverlay</I></A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis" target="classFrame"><I>mxICostFunction</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout" target="classFrame"><I>mxIGraphLayout</I></A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model" target="classFrame"><I>mxIGraphModel</I></A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model" target="classFrame">mxIGraphModel.mxAtomicGraphModelChange</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util" target="classFrame">mxImage</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util" target="classFrame">mxImageBundle</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxImageCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape" target="classFrame">mxImageShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape" target="classFrame"><I>mxIMarker</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxInsertHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view" target="classFrame">mxInteractiveCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape" target="classFrame"><I>mxIShape</I></A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape" target="classFrame"><I>mxITextShape</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxKeyboardHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape" target="classFrame">mxLabelShape</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view" target="classFrame">mxLayoutManager</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util" target="classFrame">mxLightweightLabel</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util" target="classFrame">mxLine</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape" target="classFrame">mxLineShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape" target="classFrame">mxMarkerRegistry</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage" target="classFrame">mxMedianHybridCrossingReduction</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage" target="classFrame">mxMinimumCycleRemover</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io" target="classFrame">mxModelCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util" target="classFrame">mxMorphing</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util" target="classFrame">mxMouseAdapter</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxMovePreview</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view" target="classFrame">mxMultiplicity</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io" target="classFrame">mxObjectCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxOrganicLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal" target="classFrame">mxOrthogonalLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model" target="classFrame">mxOrthogonalModel</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxPanningHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxParallelEdgeLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxPartitionLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view" target="classFrame">mxPerimeter</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view" target="classFrame"><I>mxPerimeter.mxPerimeterFunction</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngEncodeParam</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngEncodeParam.Gray</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngEncodeParam.Palette</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngEncodeParam.RGB</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngImageEncoder</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngSuggestedPaletteEntry</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngTextDecoder</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util" target="classFrame">mxPoint</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model" target="classFrame">mxPointPair</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model" target="classFrame">mxPointSequence</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util" target="classFrame">mxRectangle</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape" target="classFrame">mxRectangleShape</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util" target="classFrame">mxResources</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape" target="classFrame">mxRhombusShape</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io" target="classFrame">mxRootChangeCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxRotationHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxRubberband</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader" target="classFrame">mxSaxOutputHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader" target="classFrame"><I>mxSaxOutputHandler.IElementHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model" target="classFrame">mxSegment</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxSelectionCellsHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing" target="classFrame">mxSession</A>
    +<BR>
    +<A HREF="com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing" target="classFrame">mxSharedGraphModel</A>
    +<BR>
    +<A HREF="com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing" target="classFrame">mxSharedState</A>
    +<BR>
    +<A HREF="com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing" target="classFrame"><I>mxSharedState.mxDiagramChangeListener</I></A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view" target="classFrame">mxSpaceManager</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util" target="classFrame">mxSpline</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util" target="classFrame">mxSpline1D</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxStackLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape" target="classFrame">mxStencil</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape" target="classFrame">mxStencilRegistry</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape" target="classFrame">mxStencilShape</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view" target="classFrame">mxStyleRegistry</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view" target="classFrame">mxStylesheet</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io" target="classFrame">mxStylesheetCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util" target="classFrame">mxStyleUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxSvgCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view" target="classFrame">mxSwimlaneManager</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape" target="classFrame">mxSwimlaneShape</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util" target="classFrame">mxSwingConstants</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view" target="classFrame">mxTemporaryCellStates</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io" target="classFrame">mxTerminalChangeCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape" target="classFrame">mxTriangleShape</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util" target="classFrame">mxUndoableEdit</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util" target="classFrame"><I>mxUndoableEdit.mxUndoableChange</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util" target="classFrame">mxUndoManager</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis" target="classFrame">mxUnionFind</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util" target="classFrame">mxUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxVertexHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxVmlCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util" target="classFrame">mxXmlUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg" target="classFrame">NormalizingReader</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg" target="classFrame">NumberParser</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg" target="classFrame">ParseException</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>Parser</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>PathHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg" target="classFrame">PathParser</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>PointsHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg" target="classFrame">PointsParser</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>ShapeProducer</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg" target="classFrame">StringNormalizingReader</A>
    +<BR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/allclasses-noframe.html b/java/docs/allclasses-noframe.html
    new file mode 100644
    index 000000000..69c7ee014
    --- /dev/null
    +++ b/java/docs/allclasses-noframe.html
    @@ -0,0 +1,509 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +All Classes (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameHeadingFont">
    +<B>All Classes</B></FONT>
    +<BR>
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><I>CSSConstants</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg">DefaultErrorHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><I>ErrorHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><I>ExtendedPathIterator</I></A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape">mxActorShape</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape">mxArrowShape</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model">mxCellPath</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util">mxCellRenderer</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape">mxCloudShape</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis">mxConstantCostFunction</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape">mxCylinderShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape">mxDefaultTextShape</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis">mxDistanceCostFunction</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader">mxDomOutputParser</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><I>mxDomOutputParser.IElementHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util">mxDomUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape">mxDoubleEllipseShape</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><I>mxEdgeStyle.mxEdgeStyleFunction</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><I>mxEventSource.mxIEventListener</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io">mxGdCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>
    +<BR>
    +<A HREF="com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A>
    +<BR>
    +<A HREF="com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>
    +<BR>
    +<A HREF="com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io">mxGenericChangeCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><I>mxGraph.mxICellVisitor</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DeleteAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DrillAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.EditAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.FoldAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.GroupAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.LayerAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.RemoveFromParentAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.SelectAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UngroupAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UpdateGroupBoundsAction</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.ZoomAction</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><I>mxGraphHierarchyModel.CellVisitor</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyRank</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io">mxGraphMlCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<BR>
    +<A HREF="com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><I>mxGraphModel.Filter</I></A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape">mxHexagonShape</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><I>mxHierarchicalLayoutStage</I></A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><I>mxICanvas</I></A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><I>mxICanvas2D</I></A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><I>mxICell</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><I>mxICellEditor</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><I>mxICellOverlay</I></A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><I>mxICostFunction</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><I>mxIGraphLayout</I></A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><I>mxIGraphModel</I></A>
    +<BR>
    +<A HREF="com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><I>mxIMarker</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><I>mxIShape</I></A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><I>mxITextShape</I></A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler">mxKeyboardHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape">mxLineShape</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape">mxMarkerRegistry</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMinimumCycleRemover</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io">mxModelCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model">mxOrthogonalModel</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view">mxPerimeter</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><I>mxPerimeter.mxPerimeterFunction</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png">mxPngImageEncoder</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>
    +<BR>
    +<A HREF="com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png">mxPngTextDecoder</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model">mxPointPair</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model">mxPointSequence</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape">mxRhombusShape</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io">mxRootChangeCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader"><I>mxSaxOutputHandler.IElementHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model">mxSegment</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<BR>
    +<A HREF="com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<BR>
    +<A HREF="com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<BR>
    +<A HREF="com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing"><I>mxSharedState.mxDiagramChangeListener</I></A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<BR>
    +<A HREF="com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape">mxStencilRegistry</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view">mxStyleRegistry</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape">mxSwimlaneShape</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<BR>
    +<A HREF="com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A>
    +<BR>
    +<A HREF="com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io">mxTerminalChangeCodec</A>
    +<BR>
    +<A HREF="com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape">mxTriangleShape</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><I>mxUndoableEdit.mxUndoableChange</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<BR>
    +<A HREF="com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<BR>
    +<A HREF="com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<BR>
    +<A HREF="com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util">mxXmlUtils</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><I>Parser</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><I>PathHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><I>PointsHandler</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><I>ShapeProducer</I></A>
    +<BR>
    +<A HREF="com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<BR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/class-use/mxConstantCostFunction.html b/java/docs/com/mxgraph/analysis/class-use/mxConstantCostFunction.html
    new file mode 100644
    index 000000000..027803978
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/class-use/mxConstantCostFunction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.analysis.mxConstantCostFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.analysis.mxConstantCostFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxConstantCostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConstantCostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.analysis.mxConstantCostFunction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.analysis.mxConstantCostFunction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxConstantCostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConstantCostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/class-use/mxDistanceCostFunction.html b/java/docs/com/mxgraph/analysis/class-use/mxDistanceCostFunction.html
    new file mode 100644
    index 000000000..fcc2ac908
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/class-use/mxDistanceCostFunction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.analysis.mxDistanceCostFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.analysis.mxDistanceCostFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxDistanceCostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDistanceCostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.analysis.mxDistanceCostFunction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.analysis.mxDistanceCostFunction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxDistanceCostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDistanceCostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/class-use/mxFibonacciHeap.Node.html b/java/docs/com/mxgraph/analysis/class-use/mxFibonacciHeap.Node.html
    new file mode 100644
    index 000000000..6094097e8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/class-use/mxFibonacciHeap.Node.html
    @@ -0,0 +1,291 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.analysis.mxFibonacciHeap.Node (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.analysis.mxFibonacciHeap.Node (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxFibonacciHeap.Node.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFibonacciHeap.Node.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.analysis.mxFibonacciHeap.Node</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A> in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> declared as <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#min">min</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> with type parameters of type <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#nodes">nodes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from elements to nodes</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> that return <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#getNode(java.lang.Object, boolean)">getNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element,
    +        boolean&nbsp;create)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the node that represents element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#min()">min</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the smallest element in the heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#removeMin()">removeMin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the smallest element from the heap.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> with parameters of type <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#cascadingCut(com.mxgraph.analysis.mxFibonacciHeap.Node)">cascadingCut</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a cascading cut operation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#cut(com.mxgraph.analysis.mxFibonacciHeap.Node, com.mxgraph.analysis.mxFibonacciHeap.Node)">cut</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x,
    +    <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The reverse of the link operation: removes x from the child list of y.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#decreaseKey(com.mxgraph.analysis.mxFibonacciHeap.Node, double)">decreaseKey</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x,
    +            double&nbsp;k)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decreases the key value for a heap node, given the new value to take on.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#delete(com.mxgraph.analysis.mxFibonacciHeap.Node)">delete</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deletes a node from the heap given the reference to the node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#insert(com.mxgraph.analysis.mxFibonacciHeap.Node, double)">insert</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;node,
    +       double&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new data element into the heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#link(com.mxgraph.analysis.mxFibonacciHeap.Node, com.mxgraph.analysis.mxFibonacciHeap.Node)">link</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;y,
    +     <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make node y a child of node x.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxFibonacciHeap.Node.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFibonacciHeap.Node.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/class-use/mxFibonacciHeap.html b/java/docs/com/mxgraph/analysis/class-use/mxFibonacciHeap.html
    new file mode 100644
    index 000000000..c36155de9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/class-use/mxFibonacciHeap.html
    @@ -0,0 +1,208 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.analysis.mxFibonacciHeap (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.analysis.mxFibonacciHeap (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxFibonacciHeap.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFibonacciHeap.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.analysis.mxFibonacciHeap</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A> in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> that return <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#createPriorityQueue()">createPriorityQueue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to provide a custom fibonacci heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#union(com.mxgraph.analysis.mxFibonacciHeap, com.mxgraph.analysis.mxFibonacciHeap)">union</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>&nbsp;h1,
    +      <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>&nbsp;h2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Joins two Fibonacci heaps into a new one.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> with parameters of type <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></CODE></FONT></TD>
    +<TD><CODE><B>mxFibonacciHeap.</B><B><A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html#union(com.mxgraph.analysis.mxFibonacciHeap, com.mxgraph.analysis.mxFibonacciHeap)">union</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>&nbsp;h1,
    +      <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>&nbsp;h2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Joins two Fibonacci heaps into a new one.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxFibonacciHeap.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFibonacciHeap.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/class-use/mxGraphAnalysis.html b/java/docs/com/mxgraph/analysis/class-use/mxGraphAnalysis.html
    new file mode 100644
    index 000000000..0a95a6200
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/class-use/mxGraphAnalysis.html
    @@ -0,0 +1,214 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.analysis.mxGraphAnalysis (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.analysis.mxGraphAnalysis (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxGraphAnalysis.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphAnalysis.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.analysis.mxGraphAnalysis</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A> in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> declared as <A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#instance">instance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the shared instance of this class.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> that return <A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#getInstance()">getInstance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> with parameters of type <A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#setInstance(com.mxgraph.analysis.mxGraphAnalysis)">setInstance</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>&nbsp;instance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the shared instance of this class.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxGraphAnalysis.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphAnalysis.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/class-use/mxICostFunction.html b/java/docs/com/mxgraph/analysis/class-use/mxICostFunction.html
    new file mode 100644
    index 000000000..fdcf26bad
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/class-use/mxICostFunction.html
    @@ -0,0 +1,254 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.analysis.mxICostFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.analysis.mxICostFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxICostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.analysis.mxICostFunction</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A> in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> that implement <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis">mxConstantCostFunction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a cost function for a constant cost per traversed cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis">mxDistanceCostFunction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a cost function for the Euclidean length of an edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> with parameters of type <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], com.mxgraph.analysis.mxICostFunction, boolean)">getMinimumSpanningTree</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                       <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf,
    +                       boolean&nbsp;directed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[], com.mxgraph.analysis.mxICostFunction)">getMinimumSpanningTree</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e,
    +                       <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#getShortestPath(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, com.mxgraph.analysis.mxICostFunction, int, boolean)">getShortestPath</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;from,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;to,
    +                <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf,
    +                int&nbsp;steps,
    +                boolean&nbsp;directed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the shortest path between two cells or their descendants
    + represented as an array of edges in order of traversal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#sort(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)">sort</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]&nbsp;states,
    +     <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a sorted set for <code>cells</code> with respect to
    + <code>cf</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#sum(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)">sum</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]&nbsp;states,
    +    <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the sum of all cost for <code>cells</code> with respect to
    + <code>cf</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxICostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/class-use/mxUnionFind.Node.html b/java/docs/com/mxgraph/analysis/class-use/mxUnionFind.Node.html
    new file mode 100644
    index 000000000..0709fb252
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/class-use/mxUnionFind.Node.html
    @@ -0,0 +1,264 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.analysis.mxUnionFind.Node (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.analysis.mxUnionFind.Node (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxUnionFind.Node.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUnionFind.Node.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.analysis.mxUnionFind.Node</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A> in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> declared as <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUnionFind.Node.</B><B><A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html#parent">parent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the parent node.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> with type parameters of type <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxUnionFind.</B><B><A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html#nodes">nodes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from elements to nodes</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> that return <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUnionFind.</B><B><A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html#find(com.mxgraph.analysis.mxUnionFind.Node)">find</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the set that contains <code>node</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUnionFind.</B><B><A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html#getNode(java.lang.Object)">getNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the node that represents element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUnionFind.Node.</B><B><A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html#getParent()">getParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> with parameters of type <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUnionFind.</B><B><A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html#find(com.mxgraph.analysis.mxUnionFind.Node)">find</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the set that contains <code>node</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxUnionFind.Node.</B><B><A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html#setParent(com.mxgraph.analysis.mxUnionFind.Node)">setParent</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxUnionFind.</B><B><A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html#union(com.mxgraph.analysis.mxUnionFind.Node, com.mxgraph.analysis.mxUnionFind.Node)">union</A></B>(<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;a,
    +      <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;b)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unifies the sets <code>a</code> and <code>b</code> in constant time
    + using a union by rank on the tree size.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxUnionFind.Node.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUnionFind.Node.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/class-use/mxUnionFind.html b/java/docs/com/mxgraph/analysis/class-use/mxUnionFind.html
    new file mode 100644
    index 000000000..188eabf5e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/class-use/mxUnionFind.html
    @@ -0,0 +1,193 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.analysis.mxUnionFind (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.analysis.mxUnionFind (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxUnionFind.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUnionFind.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.analysis.mxUnionFind</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A> in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> that return <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#createUnionFind(java.lang.Object[])">createUnionFind</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to provide a custom union find structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#getConnectionComponents(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[])">getConnectionComponents</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a union find structure representing the connection components of
    + G=(E,V).</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/analysis//class-usemxUnionFind.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUnionFind.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/mxConstantCostFunction.html b/java/docs/com/mxgraph/analysis/mxConstantCostFunction.html
    new file mode 100644
    index 000000000..60878c517
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/mxConstantCostFunction.html
    @@ -0,0 +1,305 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:01 CEST 2012 -->
    +<TITLE>
    +mxConstantCostFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxConstantCostFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConstantCostFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxConstantCostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConstantCostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.analysis</FONT>
    +<BR>
    +Class mxConstantCostFunction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.analysis.mxConstantCostFunction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxConstantCostFunction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a cost function for a constant cost per traversed cell.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxConstantCostFunction.html#cost">cost</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxConstantCostFunction.html#mxConstantCostFunction(double)">mxConstantCostFunction</A></B>(double&nbsp;cost)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxConstantCostFunction.html#getCost(com.mxgraph.view.mxCellState)">getCost</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluates the cost of the given cell state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cost"><!-- --></A><H3>
    +cost</H3>
    +<PRE>
    +protected double <B>cost</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxConstantCostFunction(double)"><!-- --></A><H3>
    +mxConstantCostFunction</H3>
    +<PRE>
    +public <B>mxConstantCostFunction</B>(double&nbsp;cost)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>cost</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getCost(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getCost</H3>
    +<PRE>
    +public double <B>getCost</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html#getCost(com.mxgraph.view.mxCellState)">mxICostFunction</A></CODE></B></DD>
    +<DD>Evaluates the cost of the given cell state.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html#getCost(com.mxgraph.view.mxCellState)">getCost</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - The cell state to be evaluated
    +<DT><B>Returns:</B><DD>Returns the cost to traverse the given cell state.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConstantCostFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxConstantCostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConstantCostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/mxDistanceCostFunction.html b/java/docs/com/mxgraph/analysis/mxDistanceCostFunction.html
    new file mode 100644
    index 000000000..5c119625a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/mxDistanceCostFunction.html
    @@ -0,0 +1,268 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:01 CEST 2012 -->
    +<TITLE>
    +mxDistanceCostFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxDistanceCostFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDistanceCostFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxDistanceCostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDistanceCostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.analysis</FONT>
    +<BR>
    +Class mxDistanceCostFunction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.analysis.mxDistanceCostFunction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxDistanceCostFunction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a cost function for the Euclidean length of an edge.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxDistanceCostFunction.html#mxDistanceCostFunction()">mxDistanceCostFunction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxDistanceCostFunction.html#getCost(com.mxgraph.view.mxCellState)">getCost</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Euclidean length of the edge defined by the absolute
    + points in the given state or 0 if no points are defined.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxDistanceCostFunction()"><!-- --></A><H3>
    +mxDistanceCostFunction</H3>
    +<PRE>
    +public <B>mxDistanceCostFunction</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getCost(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getCost</H3>
    +<PRE>
    +public double <B>getCost</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the Euclidean length of the edge defined by the absolute
    + points in the given state or 0 if no points are defined.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html#getCost(com.mxgraph.view.mxCellState)">getCost</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - The cell state to be evaluated
    +<DT><B>Returns:</B><DD>Returns the cost to traverse the given cell state.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDistanceCostFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxDistanceCostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDistanceCostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/mxFibonacciHeap.Node.html b/java/docs/com/mxgraph/analysis/mxFibonacciHeap.Node.html
    new file mode 100644
    index 000000000..dd442155b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/mxFibonacciHeap.Node.html
    @@ -0,0 +1,312 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:01 CEST 2012 -->
    +<TITLE>
    +mxFibonacciHeap.Node (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxFibonacciHeap.Node (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxFibonacciHeap.Node.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxFibonacciHeap.Node.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFibonacciHeap.Node.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.analysis</FONT>
    +<BR>
    +Class mxFibonacciHeap.Node</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.analysis.mxFibonacciHeap.Node</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxFibonacciHeap.Node</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a node of the Fibonacci heap. It holds the information
    + necessary for maintaining the structure of the heap. It also holds the
    + reference to the key value (which is used to determine the heap
    + structure). Additional Node data should be stored in a subclass.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html#mxFibonacciHeap.Node(java.lang.Object, double)">mxFibonacciHeap.Node</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;userObject,
    +                     double&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default constructor.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html#getKey()">getKey</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtain the key for this node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html#getUserObject()">getUserObject</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html#setUserObject(java.lang.Object)">setUserObject</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;userObject)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxFibonacciHeap.Node(java.lang.Object, double)"><!-- --></A><H3>
    +mxFibonacciHeap.Node</H3>
    +<PRE>
    +public <B>mxFibonacciHeap.Node</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;userObject,
    +                            double&nbsp;key)</PRE>
    +<DL>
    +<DD>Default constructor. Initializes the right and left pointers, making
    + this a circular doubly-linked list.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - The initial key for node.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getKey()"><!-- --></A><H3>
    +getKey</H3>
    +<PRE>
    +public final double <B>getKey</B>()</PRE>
    +<DL>
    +<DD>Obtain the key for this node.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the key</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getUserObject()"><!-- --></A><H3>
    +getUserObject</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getUserObject</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the userObject.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setUserObject(java.lang.Object)"><!-- --></A><H3>
    +setUserObject</H3>
    +<PRE>
    +public void <B>setUserObject</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;userObject)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>userObject</CODE> - The userObject to set.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxFibonacciHeap.Node.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxFibonacciHeap.Node.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFibonacciHeap.Node.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/mxFibonacciHeap.html b/java/docs/com/mxgraph/analysis/mxFibonacciHeap.html
    new file mode 100644
    index 000000000..866cf53ad
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/mxFibonacciHeap.html
    @@ -0,0 +1,680 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:01 CEST 2012 -->
    +<TITLE>
    +mxFibonacciHeap (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxFibonacciHeap (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxFibonacciHeap.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxFibonacciHeap.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFibonacciHeap.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.analysis</FONT>
    +<BR>
    +Class mxFibonacciHeap</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.analysis.mxFibonacciHeap</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxFibonacciHeap</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +This class implements a priority queue.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a node of the Fibonacci heap.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#min">min</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#nodes">nodes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from elements to nodes</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#size">size</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#mxFibonacciHeap()">mxFibonacciHeap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#cascadingCut(com.mxgraph.analysis.mxFibonacciHeap.Node)">cascadingCut</A></B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a cascading cut operation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#consolidate()">consolidate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Consolidates the trees in the heap by joining trees of equal degree until
    + there are no more trees of equal degree in the root list.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#cut(com.mxgraph.analysis.mxFibonacciHeap.Node, com.mxgraph.analysis.mxFibonacciHeap.Node)">cut</A></B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x,
    +    <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The reverse of the link operation: removes x from the child list of y.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#decreaseKey(com.mxgraph.analysis.mxFibonacciHeap.Node, double)">decreaseKey</A></B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x,
    +            double&nbsp;k)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decreases the key value for a heap node, given the new value to take on.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#delete(com.mxgraph.analysis.mxFibonacciHeap.Node)">delete</A></B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deletes a node from the heap given the reference to the node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#getNode(java.lang.Object, boolean)">getNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element,
    +        boolean&nbsp;create)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the node that represents element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#insert(com.mxgraph.analysis.mxFibonacciHeap.Node, double)">insert</A></B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;node,
    +       double&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new data element into the heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#isEmpty()">isEmpty</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the queue is empty.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#link(com.mxgraph.analysis.mxFibonacciHeap.Node, com.mxgraph.analysis.mxFibonacciHeap.Node)">link</A></B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;y,
    +     <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make node y a child of node x.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#min()">min</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the smallest element in the heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#removeMin()">removeMin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the smallest element from the heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#size()">size</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size of the heap which is measured in the number of elements
    + contained in the heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html#union(com.mxgraph.analysis.mxFibonacciHeap, com.mxgraph.analysis.mxFibonacciHeap)">union</A></B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>&nbsp;h1,
    +      <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>&nbsp;h2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Joins two Fibonacci heaps into a new one.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="nodes"><!-- --></A><H3>
    +nodes</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&gt; <B>nodes</B></PRE>
    +<DL>
    +<DD>Maps from elements to nodes
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="min"><!-- --></A><H3>
    +min</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A> <B>min</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="size"><!-- --></A><H3>
    +size</H3>
    +<PRE>
    +protected int <B>size</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxFibonacciHeap()"><!-- --></A><H3>
    +mxFibonacciHeap</H3>
    +<PRE>
    +public <B>mxFibonacciHeap</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getNode(java.lang.Object, boolean)"><!-- --></A><H3>
    +getNode</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A> <B>getNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element,
    +                                    boolean&nbsp;create)</PRE>
    +<DL>
    +<DD>Returns the node that represents element.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEmpty()"><!-- --></A><H3>
    +isEmpty</H3>
    +<PRE>
    +public boolean <B>isEmpty</B>()</PRE>
    +<DL>
    +<DD>Returns true if the queue is empty.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decreaseKey(com.mxgraph.analysis.mxFibonacciHeap.Node, double)"><!-- --></A><H3>
    +decreaseKey</H3>
    +<PRE>
    +public void <B>decreaseKey</B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x,
    +                        double&nbsp;k)</PRE>
    +<DL>
    +<DD>Decreases the key value for a heap node, given the new value to take on.
    + The structure of the heap may be changed and will not be consolidated.
    + 
    + <p>
    + Running time: O(1) amortized
    + </p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - Node whose value should be decreased.<DD><CODE>k</CODE> - New key value for node x.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - Thrown if k is larger than x.key value.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="delete(com.mxgraph.analysis.mxFibonacciHeap.Node)"><!-- --></A><H3>
    +delete</H3>
    +<PRE>
    +public void <B>delete</B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x)</PRE>
    +<DL>
    +<DD>Deletes a node from the heap given the reference to the node. The trees
    + in the heap will be consolidated, if necessary. This operation may fail
    + to remove the correct element if there are nodes with key value
    + -Infinity.
    + 
    + <p>
    + Running time: O(log n) amortized
    + </p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - The node to remove from the heap.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insert(com.mxgraph.analysis.mxFibonacciHeap.Node, double)"><!-- --></A><H3>
    +insert</H3>
    +<PRE>
    +public void <B>insert</B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;node,
    +                   double&nbsp;key)</PRE>
    +<DL>
    +<DD>Inserts a new data element into the heap. No heap consolidation is
    + performed at this time, the new node is simply inserted into the root
    + list of this heap.
    + 
    + <p>
    + Running time: O(1) actual
    + </p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - new node to insert into heap<DD><CODE>key</CODE> - key value associated with data object</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="min()"><!-- --></A><H3>
    +min</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A> <B>min</B>()</PRE>
    +<DL>
    +<DD>Returns the smallest element in the heap. This smallest element is the
    + one with the minimum key value.
    + 
    + <p>
    + Running time: O(1) actual
    + </p>
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the heap node with the smallest key.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeMin()"><!-- --></A><H3>
    +removeMin</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A> <B>removeMin</B>()</PRE>
    +<DL>
    +<DD>Removes the smallest element from the heap. This will cause the trees in
    + the heap to be consolidated, if necessary.
    + Does not remove the data node so that the current key remains stored.
    + 
    + <p>
    + Running time: O(log n) amortized
    + </p>
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the node with the smallest key.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="size()"><!-- --></A><H3>
    +size</H3>
    +<PRE>
    +public int <B>size</B>()</PRE>
    +<DL>
    +<DD>Returns the size of the heap which is measured in the number of elements
    + contained in the heap.
    + 
    + <p>
    + Running time: O(1) actual
    + </p>
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the number of elements in the heap.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="union(com.mxgraph.analysis.mxFibonacciHeap, com.mxgraph.analysis.mxFibonacciHeap)"><!-- --></A><H3>
    +union</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A> <B>union</B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>&nbsp;h1,
    +                                    <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>&nbsp;h2)</PRE>
    +<DL>
    +<DD>Joins two Fibonacci heaps into a new one. No heap consolidation is
    + performed at this time. The two root lists are simply joined together.
    + 
    + <p>
    + Running time: O(1) actual
    + </p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>h1</CODE> - The first heap.<DD><CODE>h2</CODE> - The second heap.
    +<DT><B>Returns:</B><DD>Returns a new heap containing h1 and h2.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cascadingCut(com.mxgraph.analysis.mxFibonacciHeap.Node)"><!-- --></A><H3>
    +cascadingCut</H3>
    +<PRE>
    +protected void <B>cascadingCut</B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;y)</PRE>
    +<DL>
    +<DD>Performs a cascading cut operation. This cuts y from its parent and then
    + does the same for its parent, and so on up the tree.
    + 
    + <p>
    + Running time: O(log n); O(1) excluding the recursion
    + </p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>y</CODE> - The node to perform cascading cut on.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="consolidate()"><!-- --></A><H3>
    +consolidate</H3>
    +<PRE>
    +protected void <B>consolidate</B>()</PRE>
    +<DL>
    +<DD>Consolidates the trees in the heap by joining trees of equal degree until
    + there are no more trees of equal degree in the root list.
    + 
    + <p>
    + Running time: O(log n) amortized
    + </p>
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cut(com.mxgraph.analysis.mxFibonacciHeap.Node, com.mxgraph.analysis.mxFibonacciHeap.Node)"><!-- --></A><H3>
    +cut</H3>
    +<PRE>
    +protected void <B>cut</B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x,
    +                   <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;y)</PRE>
    +<DL>
    +<DD>The reverse of the link operation: removes x from the child list of y.
    + This method assumes that min is non-null.
    + 
    + <p>
    + Running time: O(1)
    + </p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - The child of y to be removed from y's child list.<DD><CODE>y</CODE> - The parent of x about to lose a child.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="link(com.mxgraph.analysis.mxFibonacciHeap.Node, com.mxgraph.analysis.mxFibonacciHeap.Node)"><!-- --></A><H3>
    +link</H3>
    +<PRE>
    +protected void <B>link</B>(<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;y,
    +                    <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>&nbsp;x)</PRE>
    +<DL>
    +<DD>Make node y a child of node x.
    + 
    + <p>
    + Running time: O(1) actual
    + </p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>y</CODE> - The node to become child.<DD><CODE>x</CODE> - The node to become parent.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxFibonacciHeap.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxFibonacciHeap.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFibonacciHeap.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/mxGraphAnalysis.html b/java/docs/com/mxgraph/analysis/mxGraphAnalysis.html
    new file mode 100644
    index 000000000..2e8d8393c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/mxGraphAnalysis.html
    @@ -0,0 +1,580 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:01 CEST 2012 -->
    +<TITLE>
    +mxGraphAnalysis (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphAnalysis (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphAnalysis.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxGraphAnalysis.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphAnalysis.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.analysis</FONT>
    +<BR>
    +Class mxGraphAnalysis</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.analysis.mxGraphAnalysis</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphAnalysis</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +A singleton class that provides algorithms for graphs. Assume these
    + variables for the following examples:<br>
    + <code>
    + mxICostFunction cf = mxDistanceCostFunction();
    + Object[] v = graph.getChildVertices(graph.getDefaultParent());
    + Object[] e = graph.getChildEdges(graph.getDefaultParent());
    + mxGraphAnalysis mga = mxGraphAnalysis.getInstance();
    + </code>
    + 
    + <h3>Shortest Path (Dijkstra)</h3>
    + 
    + For example, to find the shortest path between the first and the second
    + selected cell in a graph use the following code: <br>
    + <br>
    + <code>Object[] path = mga.getShortestPath(graph, from, to, cf, v.length, true);</code>
    + 
    + <h3>Minimum Spanning Tree</h3>
    + 
    + This algorithm finds the set of edges with the minimal length that connect
    + all vertices. This algorithm can be used as follows:
    + <h5>Prim</h5>
    + <code>mga.getMinimumSpanningTree(graph, v, cf, true))</code>
    + <h5>Kruskal</h5>
    + <code>mga.getMinimumSpanningTree(graph, v, e, cf))</code>
    + 
    + <h3>Connection Components</h3>
    + 
    + The union find may be used as follows to determine whether two cells are
    + connected: <code>boolean connected = uf.differ(vertex1, vertex2)</code>.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><CODE>mxICostFunction</CODE></A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#instance">instance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the shared instance of this class.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected </CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#mxGraphAnalysis()">mxGraphAnalysis</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#createPriorityQueue()">createPriorityQueue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to provide a custom fibonacci heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#createUnionFind(java.lang.Object[])">createUnionFind</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to provide a custom union find structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#getConnectionComponents(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[])">getConnectionComponents</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a union find structure representing the connection components of
    + G=(E,V).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#getInstance()">getInstance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], com.mxgraph.analysis.mxICostFunction, boolean)">getMinimumSpanningTree</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                       <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf,
    +                       boolean&nbsp;directed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[], com.mxgraph.analysis.mxICostFunction)">getMinimumSpanningTree</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e,
    +                       <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#getShortestPath(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, com.mxgraph.analysis.mxICostFunction, int, boolean)">getShortestPath</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;from,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;to,
    +                <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf,
    +                int&nbsp;steps,
    +                boolean&nbsp;directed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the shortest path between two cells or their descendants
    + represented as an array of edges in order of traversal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#setInstance(com.mxgraph.analysis.mxGraphAnalysis)">setInstance</A></B>(<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>&nbsp;instance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the shared instance of this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#sort(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)">sort</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]&nbsp;states,
    +     <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a sorted set for <code>cells</code> with respect to
    + <code>cf</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#sum(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)">sum</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]&nbsp;states,
    +    <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the sum of all cost for <code>cells</code> with respect to
    + <code>cf</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="instance"><!-- --></A><H3>
    +instance</H3>
    +<PRE>
    +protected static <A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A> <B>instance</B></PRE>
    +<DL>
    +<DD>Holds the shared instance of this class.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphAnalysis()"><!-- --></A><H3>
    +mxGraphAnalysis</H3>
    +<PRE>
    +protected <B>mxGraphAnalysis</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getInstance()"><!-- --></A><H3>
    +getInstance</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A> <B>getInstance</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the sharedInstance.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInstance(com.mxgraph.analysis.mxGraphAnalysis)"><!-- --></A><H3>
    +setInstance</H3>
    +<PRE>
    +public static void <B>setInstance</B>(<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>&nbsp;instance)</PRE>
    +<DL>
    +<DD>Sets the shared instance of this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>instance</CODE> - The instance to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getShortestPath(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, com.mxgraph.analysis.mxICostFunction, int, boolean)"><!-- --></A><H3>
    +getShortestPath</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getShortestPath</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;from,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;to,
    +                                <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf,
    +                                int&nbsp;steps,
    +                                boolean&nbsp;directed)</PRE>
    +<DL>
    +<DD>Returns the shortest path between two cells or their descendants
    + represented as an array of edges in order of traversal. <br>
    + This implementation is based on the Dijkstra algorithm.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - The object that defines the graph structure<DD><CODE>from</CODE> - The source cell.<DD><CODE>to</CODE> - The target cell (aka sink).<DD><CODE>cf</CODE> - The cost function that defines the edge length.<DD><CODE>steps</CODE> - The maximum number of edges to traverse.<DD><CODE>directed</CODE> - If edge directions should be taken into account.
    +<DT><B>Returns:</B><DD>Returns the shortest path as an alternating array of vertices
    + and edges, starting with <code>from</code> and ending with
    + <code>to</code>.<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#createPriorityQueue()"><CODE>createPriorityQueue()</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], com.mxgraph.analysis.mxICostFunction, boolean)"><!-- --></A><H3>
    +getMinimumSpanningTree</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getMinimumSpanningTree</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                                       <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf,
    +                                       boolean&nbsp;directed)</PRE>
    +<DL>
    +<DD>Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).
    + The MST is defined as the set of all vertices with minimal lengths that
    + forms no cycles in G.<br>
    + This implementation is based on the algorihm by Prim-Jarnik. It uses
    + O(|E|+|V|log|V|) time when used with a Fibonacci heap and a graph whith a
    + double linked-list datastructure, as is the case with the default
    + implementation.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - the object that describes the graph<DD><CODE>v</CODE> - the vertices of the graph<DD><CODE>cf</CODE> - the cost function that defines the edge length
    +<DT><B>Returns:</B><DD>Returns the MST as an array of edges<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#createPriorityQueue()"><CODE>createPriorityQueue()</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[], com.mxgraph.analysis.mxICostFunction)"><!-- --></A><H3>
    +getMinimumSpanningTree</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getMinimumSpanningTree</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e,
    +                                       <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</PRE>
    +<DL>
    +<DD>Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).
    + The MST is defined as the set of all vertices with minimal lenths that
    + forms no cycles in G.<br>
    + This implementation is based on the algorihm by Kruskal. It uses
    + O(|E|log|E|)=O(|E|log|V|) time for sorting the edges, O(|V|) create sets,
    + O(|E|) find and O(|V|) union calls on the union find structure, thus
    + yielding no more than O(|E|log|V|) steps. For a faster implementatin
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - The object that contains the graph.<DD><CODE>v</CODE> - The vertices of the graph.<DD><CODE>e</CODE> - The edges of the graph.<DD><CODE>cf</CODE> - The cost function that defines the edge length.
    +<DT><B>Returns:</B><DD>Returns the MST as an array of edges.<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], com.mxgraph.analysis.mxICostFunction, boolean)"><CODE>getMinimumSpanningTree(mxGraph, Object[], mxICostFunction,
    +      boolean)</CODE></A>, 
    +<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#createUnionFind(java.lang.Object[])"><CODE>createUnionFind(Object[])</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnectionComponents(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[])"><!-- --></A><H3>
    +getConnectionComponents</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A> <B>getConnectionComponents</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e)</PRE>
    +<DL>
    +<DD>Returns a union find structure representing the connection components of
    + G=(E,V).
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - The object that contains the graph.<DD><CODE>v</CODE> - The vertices of the graph.<DD><CODE>e</CODE> - The edges of the graph.
    +<DT><B>Returns:</B><DD>Returns the connection components in G=(E,V)<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html#createUnionFind(java.lang.Object[])"><CODE>createUnionFind(Object[])</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="sort(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)"><!-- --></A><H3>
    +sort</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[] <B>sort</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]&nbsp;states,
    +                          <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</PRE>
    +<DL>
    +<DD>Returns a sorted set for <code>cells</code> with respect to
    + <code>cf</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>states</CODE> - the cell states to sort<DD><CODE>cf</CODE> - the cost function that defines the order
    +<DT><B>Returns:</B><DD>Returns an ordered set of <code>cells</code> wrt.
    +         <code>cf</code></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="sum(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)"><!-- --></A><H3>
    +sum</H3>
    +<PRE>
    +public double <B>sum</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]&nbsp;states,
    +                  <A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</PRE>
    +<DL>
    +<DD>Returns the sum of all cost for <code>cells</code> with respect to
    + <code>cf</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>states</CODE> - the cell states to use for the sum<DD><CODE>cf</CODE> - the cost function that defines the costs
    +<DT><B>Returns:</B><DD>Returns the sum of all cell cost</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createUnionFind(java.lang.Object[])"><!-- --></A><H3>
    +createUnionFind</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A> <B>createUnionFind</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v)</PRE>
    +<DL>
    +<DD>Hook for subclassers to provide a custom union find structure.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>v</CODE> - the array of all elements
    +<DT><B>Returns:</B><DD>Returns a union find structure for <code>v</code></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createPriorityQueue()"><!-- --></A><H3>
    +createPriorityQueue</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A> <B>createPriorityQueue</B>()</PRE>
    +<DL>
    +<DD>Hook for subclassers to provide a custom fibonacci heap.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphAnalysis.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxGraphAnalysis.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphAnalysis.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/mxICostFunction.html b/java/docs/com/mxgraph/analysis/mxICostFunction.html
    new file mode 100644
    index 000000000..c4589e4ed
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/mxICostFunction.html
    @@ -0,0 +1,221 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:01 CEST 2012 -->
    +<TITLE>
    +mxICostFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxICostFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICostFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxICostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.analysis</FONT>
    +<BR>
    +Interface mxICostFunction</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis">mxConstantCostFunction</A>, <A HREF="../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis">mxDistanceCostFunction</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxICostFunction</B></DL>
    +</PRE>
    +
    +<P>
    +The cost function takes a cell and returns it's cost as a double. Two typical
    + examples of cost functions are the euclidian length of edges or a constant
    + number for each edge. To use one of the built-in cost functions, use either
    + <code>new mxDistanceCostFunction(graph)</code> or
    + <code>new mxConstantCostFunction(1)</code>.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html#getCost(com.mxgraph.view.mxCellState)">getCost</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluates the cost of the given cell state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getCost(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getCost</H3>
    +<PRE>
    +double <B>getCost</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Evaluates the cost of the given cell state.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - The cell state to be evaluated
    +<DT><B>Returns:</B><DD>Returns the cost to traverse the given cell state.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICostFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxICostFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICostFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/mxUnionFind.Node.html b/java/docs/com/mxgraph/analysis/mxUnionFind.Node.html
    new file mode 100644
    index 000000000..9592f288b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/mxUnionFind.Node.html
    @@ -0,0 +1,377 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:01 CEST 2012 -->
    +<TITLE>
    +mxUnionFind.Node (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxUnionFind.Node (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUnionFind.Node.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxUnionFind.Node.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUnionFind.Node.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.analysis</FONT>
    +<BR>
    +Class mxUnionFind.Node</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.analysis.mxUnionFind.Node</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxUnionFind.Node</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +A class that defines the identity of a set.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html#parent">parent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the parent node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html#size">size</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The size of the tree.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html#mxUnionFind.Node()">mxUnionFind.Node</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html#getParent()">getParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html#getSize()">getSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html#setParent(com.mxgraph.analysis.mxUnionFind.Node)">setParent</A></B>(<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html#setSize(int)">setSize</A></B>(int&nbsp;size)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="parent"><!-- --></A><H3>
    +parent</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A> <B>parent</B></PRE>
    +<DL>
    +<DD>Reference to the parent node. Root nodes point to themselves.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="size"><!-- --></A><H3>
    +size</H3>
    +<PRE>
    +protected int <B>size</B></PRE>
    +<DL>
    +<DD>The size of the tree. Initial value is 1.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxUnionFind.Node()"><!-- --></A><H3>
    +mxUnionFind.Node</H3>
    +<PRE>
    +public <B>mxUnionFind.Node</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getParent()"><!-- --></A><H3>
    +getParent</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A> <B>getParent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the parent node</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setParent(com.mxgraph.analysis.mxUnionFind.Node)"><!-- --></A><H3>
    +setParent</H3>
    +<PRE>
    +public void <B>setParent</B>(<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - The parent node to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSize()"><!-- --></A><H3>
    +getSize</H3>
    +<PRE>
    +public int <B>getSize</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the size.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSize(int)"><!-- --></A><H3>
    +setSize</H3>
    +<PRE>
    +public void <B>setSize</B>(int&nbsp;size)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>size</CODE> - The size to set.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUnionFind.Node.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxUnionFind.Node.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUnionFind.Node.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/mxUnionFind.html b/java/docs/com/mxgraph/analysis/mxUnionFind.html
    new file mode 100644
    index 000000000..60aab0982
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/mxUnionFind.html
    @@ -0,0 +1,399 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:01 CEST 2012 -->
    +<TITLE>
    +mxUnionFind (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxUnionFind (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUnionFind.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxUnionFind.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUnionFind.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.analysis</FONT>
    +<BR>
    +Class mxUnionFind</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.analysis.mxUnionFind</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxUnionFind</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a union find structure that uses union by rank and path
    + compression. The union by rank guarantees worst case find time of O(log N),
    + while Tarjan shows that in combination with path compression (halving) the
    + average time for an arbitrary sequence of m >= n operations is
    + O(m*alpha(m,n)), where alpha is the inverse of the Ackermann function,
    + defined as follows:
    + <code>alpha(m,n) = min{i &gt;= 1 | A(i, floor(m/n)) &gt; log n} for m &gt;= n &gt;= 1</code>
    + Which yields almost constant time for each individual operation.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A class that defines the identity of a set.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.html#nodes">nodes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from elements to nodes</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.html#mxUnionFind(java.lang.Object[])">mxUnionFind</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;elements)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a union find structure and initializes it with the specified
    + elements.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.html#differ(java.lang.Object, java.lang.Object)">differ</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;a,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;b)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if element a and element b are not in the same set.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.html#find(com.mxgraph.analysis.mxUnionFind.Node)">find</A></B>(<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the set that contains <code>node</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.html#getNode(java.lang.Object)">getNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the node that represents element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.html#union(com.mxgraph.analysis.mxUnionFind.Node, com.mxgraph.analysis.mxUnionFind.Node)">union</A></B>(<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;a,
    +      <A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;b)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unifies the sets <code>a</code> and <code>b</code> in constant time
    + using a union by rank on the tree size.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="nodes"><!-- --></A><H3>
    +nodes</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&gt; <B>nodes</B></PRE>
    +<DL>
    +<DD>Maps from elements to nodes
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxUnionFind(java.lang.Object[])"><!-- --></A><H3>
    +mxUnionFind</H3>
    +<PRE>
    +public <B>mxUnionFind</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;elements)</PRE>
    +<DL>
    +<DD>Constructs a union find structure and initializes it with the specified
    + elements.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>elements</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getNode(java.lang.Object)"><!-- --></A><H3>
    +getNode</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A> <B>getNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element)</PRE>
    +<DL>
    +<DD>Returns the node that represents element.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="find(com.mxgraph.analysis.mxUnionFind.Node)"><!-- --></A><H3>
    +find</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A> <B>find</B>(<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Returns the set that contains <code>node</code>. This implementation
    + provides path compression by halving.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="union(com.mxgraph.analysis.mxUnionFind.Node, com.mxgraph.analysis.mxUnionFind.Node)"><!-- --></A><H3>
    +union</H3>
    +<PRE>
    +public void <B>union</B>(<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;a,
    +                  <A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>&nbsp;b)</PRE>
    +<DL>
    +<DD>Unifies the sets <code>a</code> and <code>b</code> in constant time
    + using a union by rank on the tree size.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="differ(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +differ</H3>
    +<PRE>
    +public boolean <B>differ</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;a,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;b)</PRE>
    +<DL>
    +<DD>Returns true if element a and element b are not in the same set. This
    + uses getNode and then find to determine the elements set.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>a</CODE> - The first element to compare.<DD><CODE>b</CODE> - The second element to compare.
    +<DT><B>Returns:</B><DD>Returns true if a and b are in the same set.<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/analysis/mxUnionFind.html#getNode(java.lang.Object)"><CODE>getNode(Object)</CODE></A></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUnionFind.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/mxUnionFind.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUnionFind.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/package-frame.html b/java/docs/com/mxgraph/analysis/package-frame.html
    new file mode 100644
    index 000000000..cb1a2ec24
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/package-frame.html
    @@ -0,0 +1,53 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.analysis (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/analysis/package-summary.html" target="classFrame">com.mxgraph.analysis</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxICostFunction.html" title="interface in com.mxgraph.analysis" target="classFrame"><I>mxICostFunction</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxConstantCostFunction.html" title="class in com.mxgraph.analysis" target="classFrame">mxConstantCostFunction</A>
    +<BR>
    +<A HREF="mxDistanceCostFunction.html" title="class in com.mxgraph.analysis" target="classFrame">mxDistanceCostFunction</A>
    +<BR>
    +<A HREF="mxFibonacciHeap.html" title="class in com.mxgraph.analysis" target="classFrame">mxFibonacciHeap</A>
    +<BR>
    +<A HREF="mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis" target="classFrame">mxFibonacciHeap.Node</A>
    +<BR>
    +<A HREF="mxGraphAnalysis.html" title="class in com.mxgraph.analysis" target="classFrame">mxGraphAnalysis</A>
    +<BR>
    +<A HREF="mxUnionFind.html" title="class in com.mxgraph.analysis" target="classFrame">mxUnionFind</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/package-summary.html b/java/docs/com/mxgraph/analysis/package-summary.html
    new file mode 100644
    index 000000000..c2a6ef865
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/package-summary.html
    @@ -0,0 +1,210 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.analysis (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.analysis (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV PACKAGE&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.analysis
    +</H2>
    +This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A></B></TD>
    +<TD>The cost function takes a cell and returns it's cost as a double.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis">mxConstantCostFunction</A></B></TD>
    +<TD>Implements a cost function for a constant cost per traversed cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis">mxDistanceCostFunction</A></B></TD>
    +<TD>Implements a cost function for the Euclidean length of an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A></B></TD>
    +<TD>This class implements a priority queue.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A></B></TD>
    +<TD>Implements a node of the Fibonacci heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A></B></TD>
    +<TD>A singleton class that provides algorithms for graphs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A></B></TD>
    +<TD>Implements a union find structure that uses union by rank and path
    + compression.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.analysis Description
    +</H2>
    +
    +<P>
    +This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV PACKAGE&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/package-tree.html b/java/docs/com/mxgraph/analysis/package-tree.html
    new file mode 100644
    index 000000000..2e2f9986e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/package-tree.html
    @@ -0,0 +1,161 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.analysis Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.analysis Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.analysis
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis"><B>mxConstantCostFunction</B></A> (implements com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>)
    +<LI TYPE="circle">com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis"><B>mxDistanceCostFunction</B></A> (implements com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>)
    +<LI TYPE="circle">com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis"><B>mxFibonacciHeap</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis"><B>mxFibonacciHeap.Node</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis"><B>mxGraphAnalysis</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis"><B>mxUnionFind</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis"><B>mxUnionFind.Node</B></A></UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.analysis.<A HREF="../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><B>mxICostFunction</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/analysis/package-use.html b/java/docs/com/mxgraph/analysis/package-use.html
    new file mode 100644
    index 000000000..bc90d828a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/analysis/package-use.html
    @@ -0,0 +1,203 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.analysis (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.analysis (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.analysis</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> used by <A HREF="../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/analysis/class-use/mxFibonacciHeap.html#com.mxgraph.analysis"><B>mxFibonacciHeap</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class implements a priority queue.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/analysis/class-use/mxFibonacciHeap.Node.html#com.mxgraph.analysis"><B>mxFibonacciHeap.Node</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a node of the Fibonacci heap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/analysis/class-use/mxGraphAnalysis.html#com.mxgraph.analysis"><B>mxGraphAnalysis</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A singleton class that provides algorithms for graphs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/analysis/class-use/mxICostFunction.html#com.mxgraph.analysis"><B>mxICostFunction</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The cost function takes a cell and returns it's cost as a double.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/analysis/class-use/mxUnionFind.html#com.mxgraph.analysis"><B>mxUnionFind</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a union find structure that uses union by rank and path
    + compression.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/analysis/class-use/mxUnionFind.Node.html#com.mxgraph.analysis"><B>mxUnionFind.Node</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A class that defines the identity of a set.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/analysis/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxBasicCanvas.html b/java/docs/com/mxgraph/canvas/class-use/mxBasicCanvas.html
    new file mode 100644
    index 000000000..7d74c1795
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxBasicCanvas.html
    @@ -0,0 +1,237 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.canvas.mxBasicCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.canvas.mxBasicCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxBasicCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBasicCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.canvas.mxBasicCanvas</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses HTML for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses SVG for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses VML for painting.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A> in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A> in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxBasicCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBasicCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html b/java/docs/com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html
    new file mode 100644
    index 000000000..a646dae03
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html
    @@ -0,0 +1,895 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.canvas.mxGraphics2DCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.canvas.mxGraphics2DCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxGraphics2DCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphics2DCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.canvas.mxGraphics2DCanvas</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> declared as <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxImageCanvas.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> that return <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxImageCanvas.html#getGraphicsCanvas()">getGraphicsCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxImageCanvas.html#mxImageCanvas(com.mxgraph.canvas.mxGraphics2DCanvas, int, int, java.awt.Color, boolean)">mxImageCanvas</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +              int&nbsp;width,
    +              int&nbsp;height,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +              boolean&nbsp;antiAlias)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> that return <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewImageReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html#createGraphicsCanvas()">createGraphicsCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook that creates the graphics canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  boolean&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configures the graphics object ready to paint.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#createCanvas(com.mxgraph.canvas.mxGraphics2DCanvas)">createCanvas</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;gc)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the canvas for rendering the stencil.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxLineShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLineShape.html#createPoints(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createPoints</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxActorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxActorShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxTriangleShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxTriangleShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRhombusShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxRhombusShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxHexagonShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxHexagonShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEllipseShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxEllipseShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCloudShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCloudShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxArrowShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxArrowShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#drawGlassEffect(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">drawGlassEffect</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the glass effect</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxSwimlaneShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#getImageForStyle(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageForStyle</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                 <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">paintMarker</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the marker for the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxIMarker.</B><B><A HREF="../../../../com/mxgraph/shape/mxIMarker.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, java.lang.String, com.mxgraph.util.mxPoint, double, double, double, boolean)">paintMarker</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +            <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +            double&nbsp;nx,
    +            double&nbsp;ny,
    +            double&nbsp;size,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencilShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html#paintNode(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, com.mxgraph.shape.mxStencilShape.svgShape, double, double)">paintNode</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&nbsp;shape,
    +          double&nbsp;widthRatio,
    +          double&nbsp;heightRatio)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)">paintPolyline</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html#paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)">paintPolyline</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxDoubleEllipseShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxDoubleEllipseShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxSwimlaneShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencilShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;gc,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the stencil for the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLineShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLineShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxRectangleShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxRectangleShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCylinderShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCylinderShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws a cylinder for the given parameters.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxIShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxHtmlTextShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxHtmlTextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxDefaultTextShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxDefaultTextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxITextShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxITextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxDefaultTextShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxDefaultTextShape.html#postProcessLine(java.lang.String, java.lang.String, java.awt.FontMetrics, com.mxgraph.canvas.mxGraphics2DCanvas, int, int)">postProcessLine</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;line,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A>&nbsp;fm,
    +                <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                int&nbsp;x,
    +                int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to add functionality after a line has been drawn</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.mxGraphControl.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#hitClip(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hitClip</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +        <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#paintPreview(com.mxgraph.canvas.mxGraphics2DCanvas)">paintPreview</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the preview using the graphics canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#paintPreview(com.mxgraph.canvas.mxGraphics2DCanvas)">paintPreview</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the preview using the graphics canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#paintPreviewState(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintPreviewState</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the preview using the graphics canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle, com.mxgraph.canvas.mxGraphics2DCanvas)">createBufferedImage</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    double&nbsp;scale,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                    boolean&nbsp;antiAlias,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +                    <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;graphicsCanvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxGraphics2DCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphics2DCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxGraphicsCanvas2D.CanvasState.html b/java/docs/com/mxgraph/canvas/class-use/mxGraphicsCanvas2D.CanvasState.html
    new file mode 100644
    index 000000000..7301efda4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxGraphicsCanvas2D.CanvasState.html
    @@ -0,0 +1,230 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.canvas.mxGraphicsCanvas2D.CanvasState (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.canvas.mxGraphicsCanvas2D.CanvasState (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxGraphicsCanvas2D.CanvasState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphicsCanvas2D.CanvasState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.canvas.mxGraphicsCanvas2D.CanvasState</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> declared as <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphicsCanvas2D.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#state">state</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of the canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with type parameters of type <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Stack.html?is-external=true" title="class or interface in java.util">Stack</A>&lt;<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphicsCanvas2D.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#stack">stack</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack of states for save/restore.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> that return <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphicsCanvas2D.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#cloneState(com.mxgraph.canvas.mxGraphicsCanvas2D.CanvasState)">cloneState</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a clone of thec given state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphicsCanvas2D.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#cloneState(com.mxgraph.canvas.mxGraphicsCanvas2D.CanvasState)">cloneState</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a clone of thec given state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxGraphicsCanvas2D.CanvasState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphicsCanvas2D.CanvasState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxGraphicsCanvas2D.html b/java/docs/com/mxgraph/canvas/class-use/mxGraphicsCanvas2D.html
    new file mode 100644
    index 000000000..7560722b6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxGraphicsCanvas2D.html
    @@ -0,0 +1,226 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.canvas.mxGraphicsCanvas2D (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.canvas.mxGraphicsCanvas2D (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxGraphicsCanvas2D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphicsCanvas2D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.canvas.mxGraphicsCanvas2D</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that return <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#createCanvas(com.mxgraph.canvas.mxGraphics2DCanvas)">createCanvas</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;gc)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the canvas for rendering the stencil.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#drawElement(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, org.w3c.dom.Element, com.mxgraph.util.mxRectangle)">drawElement</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node,
    +            <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;aspect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drawsthe given element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#drawShadow(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, double, boolean, boolean, com.mxgraph.util.mxRectangle, double, boolean)">drawShadow</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           double&nbsp;rotation,
    +           boolean&nbsp;flipH,
    +           boolean&nbsp;flipV,
    +           <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +           double&nbsp;alpha,
    +           boolean&nbsp;filled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the shadow.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#drawShape(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, boolean)">drawShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +          boolean&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws this stencil inside the given bounds.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxGraphicsCanvas2D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphicsCanvas2D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxHtmlCanvas.html b/java/docs/com/mxgraph/canvas/class-use/mxHtmlCanvas.html
    new file mode 100644
    index 000000000..530609d90
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxHtmlCanvas.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.canvas.mxHtmlCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.canvas.mxHtmlCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxHtmlCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHtmlCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.canvas.mxHtmlCanvas</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.canvas.mxHtmlCanvas
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxHtmlCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHtmlCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxICanvas.html b/java/docs/com/mxgraph/canvas/class-use/mxICanvas.html
    new file mode 100644
    index 000000000..f1ee7829d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxICanvas.html
    @@ -0,0 +1,462 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.canvas.mxICanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.canvas.mxICanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxICanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.canvas.mxICanvas</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> that implement <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses HTML for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses SVG for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses VML for painting.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> declared as <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the canvas to be used for rendering the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> that return <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewImageReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html#createCanvas(java.util.Map)">createCanvas</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;attrs)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html#createCanvas(java.util.Map)">createCanvas</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;attrs)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the canvas to be used for rendering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html#getCanvas()">getCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the canvas that is used for rendering the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.mxGraphControl.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState)">cellDrawn</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.mxGraphControl.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#drawCell(com.mxgraph.canvas.mxICanvas, java.lang.Object)">drawCell</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell onto the specified canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> that implement <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> that return <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.CanvasFactory.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html#createCanvas(int, int)">createCanvas</A></B>(int&nbsp;width,
    +             int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Separates the creation of the canvas from its initialization, when the
    + size of the required graphics buffer / document / container is known.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#drawCells(com.mxgraph.view.mxGraph, java.lang.Object[], double, com.mxgraph.util.mxRectangle, com.mxgraph.util.mxCellRenderer.CanvasFactory)">drawCells</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;scale,
    +          <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +          <A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A>&nbsp;factory)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cells using a Graphics2D canvas and returns the buffered image
    + that represents the cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, java.lang.Object, java.lang.Object)">cellDrawn</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;labelElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a cell has been painted as the specified object, typically a
    + DOM node that represents the given cell graphically in a document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#drawCell(com.mxgraph.canvas.mxICanvas, java.lang.Object)">drawCell</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell and its descendants onto the specified canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#drawGraph(com.mxgraph.canvas.mxICanvas)">drawGraph</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the graph onto the given canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#drawState(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, boolean)">drawState</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;drawLabel)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the cell state with the given label onto the canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxICanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxICanvas2D.html b/java/docs/com/mxgraph/canvas/class-use/mxICanvas2D.html
    new file mode 100644
    index 000000000..d3154537a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxICanvas2D.html
    @@ -0,0 +1,272 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.canvas.mxICanvas2D (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.canvas.mxICanvas2D (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxICanvas2D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICanvas2D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.canvas.mxICanvas2D</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> that implement <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used for exporting images.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> declared as <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSaxOutputHandler.</B><B><A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></FONT></TD>
    +<TD><CODE><B>mxDomOutputParser.</B><B><A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> that return <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSaxOutputHandler.</B><B><A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.html#getCanvas()">getCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the canvas for rendering.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxSaxOutputHandler.</B><B><A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.html#setCanvas(com.mxgraph.canvas.mxICanvas2D)">setCanvas</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the canvas for rendering.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> with parameters of type <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.html#mxDomOutputParser(com.mxgraph.canvas.mxICanvas2D)">mxDomOutputParser</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.html#mxSaxOutputHandler(com.mxgraph.canvas.mxICanvas2D)">mxSaxOutputHandler</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxICanvas2D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICanvas2D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxImageCanvas.html b/java/docs/com/mxgraph/canvas/class-use/mxImageCanvas.html
    new file mode 100644
    index 000000000..d9c2c84bc
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxImageCanvas.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.canvas.mxImageCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.canvas.mxImageCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxImageCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.canvas.mxImageCanvas</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.canvas.mxImageCanvas
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxImageCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxSvgCanvas.html b/java/docs/com/mxgraph/canvas/class-use/mxSvgCanvas.html
    new file mode 100644
    index 000000000..c2aecc008
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxSvgCanvas.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.canvas.mxSvgCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.canvas.mxSvgCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxSvgCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSvgCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.canvas.mxSvgCanvas</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.canvas.mxSvgCanvas
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxSvgCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSvgCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/class-use/mxVmlCanvas.html b/java/docs/com/mxgraph/canvas/class-use/mxVmlCanvas.html
    new file mode 100644
    index 000000000..8dfa767eb
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/class-use/mxVmlCanvas.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.canvas.mxVmlCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.canvas.mxVmlCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxVmlCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxVmlCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.canvas.mxVmlCanvas</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.canvas.mxVmlCanvas
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/canvas//class-usemxVmlCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxVmlCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxBasicCanvas.html b/java/docs/com/mxgraph/canvas/mxBasicCanvas.html
    new file mode 100644
    index 000000000..1b5b8241c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxBasicCanvas.html
    @@ -0,0 +1,671 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxBasicCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxBasicCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxBasicCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxBasicCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBasicCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Class mxBasicCanvas</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.canvas.mxBasicCanvas</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>, <A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>, <A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>, <A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract class <B>mxBasicCanvas</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#DEFAULT_IMAGEBASEPATH">DEFAULT_IMAGEBASEPATH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default value for the imageBasePath in all GDI canvases.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#drawLabels">drawLabels</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies whether labels should be painted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageBasePath">imageBasePath</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the base path for images with relative paths.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageCache">imageCache</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache for images.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#PRESERVE_IMAGE_ASPECT">PRESERVE_IMAGE_ASPECT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if image aspect should be preserved in drawImage.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#scale">scale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the current scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#translate">translate</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the current translation.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#mxBasicCanvas()">mxBasicCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#flushImageCache()">flushImageCache</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageBasePath()">getImageBasePath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageForStyle(java.util.Map)">getImageForStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the image path from the given style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getScale()">getScale</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getTranslate()">getTranslate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current translate.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#isDrawLabels()">isDrawLabels</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#loadImage(java.lang.String)">loadImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;image)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an image instance for the given URL.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setDrawLabels(boolean)">setDrawLabels</A></B>(boolean&nbsp;drawLabels)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setImageBasePath(java.lang.String)">setImageBasePath</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;imageBasePath)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setScale(double)">setScale</A></B>(double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the scale for the following drawing requests.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setTranslate(int, int)">setTranslate</A></B>(int&nbsp;dx,
    +             int&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the current translate.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.canvas.mxICanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from interface com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A>, <A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="PRESERVE_IMAGE_ASPECT"><!-- --></A><H3>
    +PRESERVE_IMAGE_ASPECT</H3>
    +<PRE>
    +public static boolean <B>PRESERVE_IMAGE_ASPECT</B></PRE>
    +<DL>
    +<DD>Specifies if image aspect should be preserved in drawImage. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_IMAGEBASEPATH"><!-- --></A><H3>
    +DEFAULT_IMAGEBASEPATH</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DEFAULT_IMAGEBASEPATH</B></PRE>
    +<DL>
    +<DD>Defines the default value for the imageBasePath in all GDI canvases.
    + Default is an empty string.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="imageBasePath"><!-- --></A><H3>
    +imageBasePath</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>imageBasePath</B></PRE>
    +<DL>
    +<DD>Defines the base path for images with relative paths. Trailing slash
    + is required. Default value is DEFAULT_IMAGEBASEPATH.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="translate"><!-- --></A><H3>
    +translate</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>translate</B></PRE>
    +<DL>
    +<DD>Specifies the current translation. Default is (0,0).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="scale"><!-- --></A><H3>
    +scale</H3>
    +<PRE>
    +protected double <B>scale</B></PRE>
    +<DL>
    +<DD>Specifies the current scale. Default is 1.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLabels"><!-- --></A><H3>
    +drawLabels</H3>
    +<PRE>
    +protected boolean <B>drawLabels</B></PRE>
    +<DL>
    +<DD>Specifies whether labels should be painted. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="imageCache"><!-- --></A><H3>
    +imageCache</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A>&gt; <B>imageCache</B></PRE>
    +<DL>
    +<DD>Cache for images.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxBasicCanvas()"><!-- --></A><H3>
    +mxBasicCanvas</H3>
    +<PRE>
    +public <B>mxBasicCanvas</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setTranslate(int, int)"><!-- --></A><H3>
    +setTranslate</H3>
    +<PRE>
    +public void <B>setTranslate</B>(int&nbsp;dx,
    +                         int&nbsp;dy)</PRE>
    +<DL>
    +<DD>Sets the current translate.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#setTranslate(int, int)">setTranslate</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTranslate()"><!-- --></A><H3>
    +getTranslate</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>getTranslate</B>()</PRE>
    +<DL>
    +<DD>Returns the current translate.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#getTranslate()">getTranslate</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the current translation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setScale(double)"><!-- --></A><H3>
    +setScale</H3>
    +<PRE>
    +public void <B>setScale</B>(double&nbsp;scale)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#setScale(double)">mxICanvas</A></CODE></B></DD>
    +<DD>Sets the scale for the following drawing requests.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#setScale(double)">setScale</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getScale()"><!-- --></A><H3>
    +getScale</H3>
    +<PRE>
    +public double <B>getScale</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#getScale()">mxICanvas</A></CODE></B></DD>
    +<DD>Returns the scale.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#getScale()">getScale</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDrawLabels(boolean)"><!-- --></A><H3>
    +setDrawLabels</H3>
    +<PRE>
    +public void <B>setDrawLabels</B>(boolean&nbsp;drawLabels)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageBasePath()"><!-- --></A><H3>
    +getImageBasePath</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getImageBasePath</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setImageBasePath(java.lang.String)"><!-- --></A><H3>
    +setImageBasePath</H3>
    +<PRE>
    +public void <B>setImageBasePath</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;imageBasePath)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDrawLabels()"><!-- --></A><H3>
    +isDrawLabels</H3>
    +<PRE>
    +public boolean <B>isDrawLabels</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="loadImage(java.lang.String)"><!-- --></A><H3>
    +loadImage</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>loadImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;image)</PRE>
    +<DL>
    +<DD>Returns an image instance for the given URL. If the URL has
    + been loaded before than an instance of the same instance is
    + returned as in the previous call.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="flushImageCache()"><!-- --></A><H3>
    +flushImageCache</H3>
    +<PRE>
    +public void <B>flushImageCache</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageForStyle(java.util.Map)"><!-- --></A><H3>
    +getImageForStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getImageForStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Gets the image path from the given style. If the path is relative (does
    + not start with a slash) then it is appended to the imageBasePath.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxBasicCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxBasicCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBasicCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxGraphics2DCanvas.html b/java/docs/com/mxgraph/canvas/mxGraphics2DCanvas.html
    new file mode 100644
    index 000000000..0e5125b4f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxGraphics2DCanvas.html
    @@ -0,0 +1,870 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxGraphics2DCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphics2DCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphics2DCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxGraphics2DCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphics2DCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Class mxGraphics2DCanvas</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">com.mxgraph.canvas.mxBasicCanvas</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.canvas.mxGraphics2DCanvas</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphics2DCanvas</B><DT>extends <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></DL>
    +</PRE>
    +
    +<P>
    +An implementation of a canvas that uses Graphics2D for painting.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#g">g</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Global graphics handle to the image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#IMAGE_SCALING">IMAGE_SCALING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the image scaling quality.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/CellRendererPane.html?is-external=true" title="class or interface in javax.swing">CellRendererPane</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#rendererPane">rendererPane</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional renderer pane to be used for HTML label rendering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#shapes">shapes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from names to mxIVertexShape instances.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#TEXT_SHAPE_DEFAULT">TEXT_SHAPE_DEFAULT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#TEXT_SHAPE_HTML">TEXT_SHAPE_HTML</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#textShapes">textShapes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from names to mxITextShape instances.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#DEFAULT_IMAGEBASEPATH">DEFAULT_IMAGEBASEPATH</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#drawLabels">drawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageBasePath">imageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageCache">imageCache</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#PRESERVE_IMAGE_ASPECT">PRESERVE_IMAGE_ASPECT</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#scale">scale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#translate">translate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#mxGraphics2DCanvas()">mxGraphics2DCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graphics canvas with an empty graphics object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#mxGraphics2DCanvas(java.awt.Graphics2D)">mxGraphics2DCanvas</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graphics canvas for the given graphics object.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Paint.html?is-external=true" title="class or interface in java.awt">Paint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#createFillPaint(com.mxgraph.util.mxRectangle, java.util.Map)">createFillPaint</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#createStroke(java.util.Map)">createStroke</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#createTemporaryGraphics(java.util.Map, float, com.mxgraph.util.mxRectangle)">createTemporaryGraphics</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                        float&nbsp;opacity,
    +                        <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawImage(java.awt.Rectangle, java.lang.String)">drawImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;imageUrl)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawImage(java.awt.Rectangle, java.lang.String, boolean, boolean, boolean)">drawImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;imageUrl,
    +          boolean&nbsp;preserveAspect,
    +          boolean&nbsp;flipH,
    +          boolean&nbsp;flipV)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawImageImpl(java.awt.Image, int, int)">drawImageImpl</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image,
    +              int&nbsp;x,
    +              int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements the actual graphics call.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#fillShape(java.awt.Shape)">fillShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;shape)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#fillShape(java.awt.Shape, boolean)">fillShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;shape,
    +          boolean&nbsp;shadow)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getGraphics()">getGraphics</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the graphics object for this canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getImageSize(java.awt.Image)">getImageSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size for the given image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/CellRendererPane.html?is-external=true" title="class or interface in javax.swing">CellRendererPane</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getRendererPane()">getRendererPane</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getShape(java.util.Map)">getShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getTextShape(java.util.Map, boolean)">getTextShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +             boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#paintPolyline(com.mxgraph.util.mxPoint[], boolean)">paintPolyline</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]&nbsp;points,
    +              boolean&nbsp;rounded)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#paintRectangle(java.awt.Rectangle, java.awt.Color, java.awt.Color)">paintRectangle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#putShape(java.lang.String, com.mxgraph.shape.mxIShape)">putShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +         <A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>&nbsp;shape)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#putTextShape(java.lang.String, com.mxgraph.shape.mxITextShape)">putTextShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +             <A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>&nbsp;shape)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#setGraphics(java.awt.Graphics2D)">setGraphics</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the graphics object for this canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#flushImageCache()">flushImageCache</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageBasePath()">getImageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageForStyle(java.util.Map)">getImageForStyle</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getScale()">getScale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getTranslate()">getTranslate</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#isDrawLabels()">isDrawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#loadImage(java.lang.String)">loadImage</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setDrawLabels(boolean)">setDrawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setImageBasePath(java.lang.String)">setImageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setScale(double)">setScale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setTranslate(int, int)">setTranslate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="TEXT_SHAPE_DEFAULT"><!-- --></A><H3>
    +TEXT_SHAPE_DEFAULT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>TEXT_SHAPE_DEFAULT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.canvas.mxGraphics2DCanvas.TEXT_SHAPE_DEFAULT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TEXT_SHAPE_HTML"><!-- --></A><H3>
    +TEXT_SHAPE_HTML</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>TEXT_SHAPE_HTML</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.canvas.mxGraphics2DCanvas.TEXT_SHAPE_HTML">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="IMAGE_SCALING"><!-- --></A><H3>
    +IMAGE_SCALING</H3>
    +<PRE>
    +public static int <B>IMAGE_SCALING</B></PRE>
    +<DL>
    +<DD>Specifies the image scaling quality. Default is Image.SCALE_SMOOTH.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="shapes"><!-- --></A><H3>
    +shapes</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>&gt; <B>shapes</B></PRE>
    +<DL>
    +<DD>Maps from names to mxIVertexShape instances.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="textShapes"><!-- --></A><H3>
    +textShapes</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>&gt; <B>textShapes</B></PRE>
    +<DL>
    +<DD>Maps from names to mxITextShape instances. There are currently three different
    + hardcoded text shapes available here: default, html and wrapped.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rendererPane"><!-- --></A><H3>
    +rendererPane</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/CellRendererPane.html?is-external=true" title="class or interface in javax.swing">CellRendererPane</A> <B>rendererPane</B></PRE>
    +<DL>
    +<DD>Optional renderer pane to be used for HTML label rendering.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="g"><!-- --></A><H3>
    +g</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>g</B></PRE>
    +<DL>
    +<DD>Global graphics handle to the image.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphics2DCanvas()"><!-- --></A><H3>
    +mxGraphics2DCanvas</H3>
    +<PRE>
    +public <B>mxGraphics2DCanvas</B>()</PRE>
    +<DL>
    +<DD>Constructs a new graphics canvas with an empty graphics object.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphics2DCanvas(java.awt.Graphics2D)"><!-- --></A><H3>
    +mxGraphics2DCanvas</H3>
    +<PRE>
    +public <B>mxGraphics2DCanvas</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g)</PRE>
    +<DL>
    +<DD>Constructs a new graphics canvas for the given graphics object.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="putShape(java.lang.String, com.mxgraph.shape.mxIShape)"><!-- --></A><H3>
    +putShape</H3>
    +<PRE>
    +public static void <B>putShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                            <A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>&nbsp;shape)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getShape(java.util.Map)"><!-- --></A><H3>
    +getShape</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A> <B>getShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="putTextShape(java.lang.String, com.mxgraph.shape.mxITextShape)"><!-- --></A><H3>
    +putTextShape</H3>
    +<PRE>
    +public static void <B>putTextShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                                <A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>&nbsp;shape)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTextShape(java.util.Map, boolean)"><!-- --></A><H3>
    +getTextShape</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A> <B>getTextShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                 boolean&nbsp;html)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRendererPane()"><!-- --></A><H3>
    +getRendererPane</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/CellRendererPane.html?is-external=true" title="class or interface in javax.swing">CellRendererPane</A> <B>getRendererPane</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphics()"><!-- --></A><H3>
    +getGraphics</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>getGraphics</B>()</PRE>
    +<DL>
    +<DD>Returns the graphics object for this canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGraphics(java.awt.Graphics2D)"><!-- --></A><H3>
    +setGraphics</H3>
    +<PRE>
    +public void <B>setGraphics</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g)</PRE>
    +<DL>
    +<DD>Sets the graphics object for this canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawCell(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +drawCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawCell</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - State of the cell to be painted.
    +<DT><B>Returns:</B><DD>Object that represents the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +drawLabel</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                        boolean&nbsp;html)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given label.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - String that represents the label.<DD><CODE>state</CODE> - State of the cell whose label is to be painted.<DD><CODE>html</CODE> - Specifies if the label contains HTML markup.
    +<DT><B>Returns:</B><DD>Object that represents the label.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawImage(java.awt.Rectangle, java.lang.String)"><!-- --></A><H3>
    +drawImage</H3>
    +<PRE>
    +public void <B>drawImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;imageUrl)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawImage(java.awt.Rectangle, java.lang.String, boolean, boolean, boolean)"><!-- --></A><H3>
    +drawImage</H3>
    +<PRE>
    +public void <B>drawImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;imageUrl,
    +                      boolean&nbsp;preserveAspect,
    +                      boolean&nbsp;flipH,
    +                      boolean&nbsp;flipV)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawImageImpl(java.awt.Image, int, int)"><!-- --></A><H3>
    +drawImageImpl</H3>
    +<PRE>
    +protected void <B>drawImageImpl</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image,
    +                             int&nbsp;x,
    +                             int&nbsp;y)</PRE>
    +<DL>
    +<DD>Implements the actual graphics call.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageSize(java.awt.Image)"><!-- --></A><H3>
    +getImageSize</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A> <B>getImageSize</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image)</PRE>
    +<DL>
    +<DD>Returns the size for the given image.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintPolyline(com.mxgraph.util.mxPoint[], boolean)"><!-- --></A><H3>
    +paintPolyline</H3>
    +<PRE>
    +public void <B>paintPolyline</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]&nbsp;points,
    +                          boolean&nbsp;rounded)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintRectangle(java.awt.Rectangle, java.awt.Color, java.awt.Color)"><!-- --></A><H3>
    +paintRectangle</H3>
    +<PRE>
    +public void <B>paintRectangle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;border)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fillShape(java.awt.Shape)"><!-- --></A><H3>
    +fillShape</H3>
    +<PRE>
    +public void <B>fillShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;shape)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fillShape(java.awt.Shape, boolean)"><!-- --></A><H3>
    +fillShape</H3>
    +<PRE>
    +public void <B>fillShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;shape,
    +                      boolean&nbsp;shadow)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createStroke(java.util.Map)"><!-- --></A><H3>
    +createStroke</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A> <B>createStroke</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createFillPaint(com.mxgraph.util.mxRectangle, java.util.Map)"><!-- --></A><H3>
    +createFillPaint</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Paint.html?is-external=true" title="class or interface in java.awt">Paint</A> <B>createFillPaint</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTemporaryGraphics(java.util.Map, float, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +createTemporaryGraphics</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>createTemporaryGraphics</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                          float&nbsp;opacity,
    +                                          <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphics2DCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxGraphics2DCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphics2DCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html b/java/docs/com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html
    new file mode 100644
    index 000000000..d91a8f4db
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html
    @@ -0,0 +1,665 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxGraphicsCanvas2D.CanvasState (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphicsCanvas2D.CanvasState (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphicsCanvas2D.CanvasState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphicsCanvas2D.CanvasState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Class mxGraphicsCanvas2D.CanvasState</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.canvas.mxGraphicsCanvas2D.CanvasState</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected class <B>mxGraphicsCanvas2D.CanvasState</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#alpha">alpha</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#dashed">dashed</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#dashPattern">dashPattern</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#dx">dx</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#dy">dy</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fillColor">fillColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fillColorValue">fillColorValue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontColor">fontColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontColorValue">fontColorValue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontFamily">fontFamily</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontSize">fontSize</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontStyle">fontStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#g">g</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores the actual state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#lineCap">lineCap</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#lineJoin">lineJoin</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#miterLimit">miterLimit</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Paint.html?is-external=true" title="class or interface in java.awt">Paint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#paint">paint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#scale">scale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#strokeColor">strokeColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#strokeColorValue">strokeColorValue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#strokeWidth">strokeWidth</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected </CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#mxGraphicsCanvas2D.CanvasState()">mxGraphicsCanvas2D.CanvasState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#clone()">clone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="alpha"><!-- --></A><H3>
    +alpha</H3>
    +<PRE>
    +protected double <B>alpha</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="scale"><!-- --></A><H3>
    +scale</H3>
    +<PRE>
    +protected double <B>scale</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dx"><!-- --></A><H3>
    +dx</H3>
    +<PRE>
    +protected double <B>dx</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dy"><!-- --></A><H3>
    +dy</H3>
    +<PRE>
    +protected double <B>dy</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="miterLimit"><!-- --></A><H3>
    +miterLimit</H3>
    +<PRE>
    +protected double <B>miterLimit</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fontStyle"><!-- --></A><H3>
    +fontStyle</H3>
    +<PRE>
    +protected int <B>fontStyle</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fontSize"><!-- --></A><H3>
    +fontSize</H3>
    +<PRE>
    +protected double <B>fontSize</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fontFamily"><!-- --></A><H3>
    +fontFamily</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>fontFamily</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fontColorValue"><!-- --></A><H3>
    +fontColorValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>fontColorValue</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fontColor"><!-- --></A><H3>
    +fontColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>fontColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lineCap"><!-- --></A><H3>
    +lineCap</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>lineCap</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lineJoin"><!-- --></A><H3>
    +lineJoin</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>lineJoin</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="strokeWidth"><!-- --></A><H3>
    +strokeWidth</H3>
    +<PRE>
    +protected double <B>strokeWidth</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="strokeColorValue"><!-- --></A><H3>
    +strokeColorValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>strokeColorValue</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="strokeColor"><!-- --></A><H3>
    +strokeColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>strokeColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fillColorValue"><!-- --></A><H3>
    +fillColorValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>fillColorValue</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fillColor"><!-- --></A><H3>
    +fillColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>fillColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="paint"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Paint.html?is-external=true" title="class or interface in java.awt">Paint</A> <B>paint</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dashed"><!-- --></A><H3>
    +dashed</H3>
    +<PRE>
    +protected boolean <B>dashed</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dashPattern"><!-- --></A><H3>
    +dashPattern</H3>
    +<PRE>
    +protected float[] <B>dashPattern</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="g"><!-- --></A><H3>
    +g</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>g</B></PRE>
    +<DL>
    +<DD>Stores the actual state.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphicsCanvas2D.CanvasState()"><!-- --></A><H3>
    +mxGraphicsCanvas2D.CanvasState</H3>
    +<PRE>
    +protected <B>mxGraphicsCanvas2D.CanvasState</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="clone()"><!-- --></A><H3>
    +clone</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>clone</B>()
    +             throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphicsCanvas2D.CanvasState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphicsCanvas2D.CanvasState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxGraphicsCanvas2D.html b/java/docs/com/mxgraph/canvas/mxGraphicsCanvas2D.html
    new file mode 100644
    index 000000000..f218b0aba
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxGraphicsCanvas2D.html
    @@ -0,0 +1,2095 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxGraphicsCanvas2D (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphicsCanvas2D (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphicsCanvas2D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxGraphicsCanvas2D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphicsCanvas2D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Class mxGraphicsCanvas2D</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.canvas.mxGraphicsCanvas2D</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphicsCanvas2D</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></DL>
    +</PRE>
    +
    +<P>
    +Used for exporting images. To render to an image from a given XML string,
    + graph size and background color, the following code is used:
    + 
    + <code>
    + BufferedImage image = mxUtils.createBufferedImage(width, height, background);
    + Graphics2D g2 = image.createGraphics();
    + mxUtils.setAntiAlias(g2, true, true);
    + XMLReader reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
    + reader.setContentHandler(new mxSaxOutputHandler(new mxGraphicsCanvas2D(g2)));
    + reader.parse(new InputSource(new StringReader(xml)));
    + </code>
    + 
    + Text rendering is available for plain text and HTML markup, the latter with optional
    + word wrapping. CSS support is limited to the following:
    + http://docs.oracle.com/javase/6/docs/api/index.html?javax/swing/text/html/CSS.html
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#autoAntiAlias">autoAntiAlias</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if anti aliasing should be disabled for rectangles
    + and orthogonal paths.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentFont">currentFont</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current font.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/GeneralPath.html?is-external=true" title="class or interface in java.awt.geom">GeneralPath</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentPath">currentPath</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentPathIsOrthogonal">currentPathIsOrthogonal</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current state for crisp rendering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentShadowColor">currentShadowColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current parsed shadow color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentShadowValue">currentShadowValue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current value for the shadow color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentStroke">currentStroke</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current stroke.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#graphics">graphics</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the graphics instance for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#IMAGE_SCALING">IMAGE_SCALING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the image scaling quality.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Point2D.html?is-external=true" title="class or interface in java.awt.geom">Point2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#lastPoint">lastPoint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the last point of a moveTo or lineTo operation to determine if the
    + current path is orthogonal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/CellRendererPane.html?is-external=true" title="class or interface in javax.swing">CellRendererPane</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#rendererPane">rendererPane</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional renderer pane to be used for HTML label rendering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Stack.html?is-external=true" title="class or interface in java.util">Stack</A>&lt;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#stack">stack</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack of states for save/restore.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#state">state</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of the canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#mxGraphicsCanvas2D(java.awt.Graphics2D)">mxGraphicsCanvas2D</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graphics export canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#begin()">begin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Begins a new path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#clip()">clip</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses the current path for clipping.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#cloneState(com.mxgraph.canvas.mxGraphicsCanvas2D.CanvasState)">cloneState</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a clone of thec given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#close()">close</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Closes the current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#createFont(java.lang.String, int, int)">createFont</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;family,
    +           int&nbsp;style,
    +           int&nbsp;size)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to implement font caching.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#createHtmlDocument(java.lang.String, java.lang.String, java.lang.String, int, int)">createHtmlDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +                   int&nbsp;w,
    +                   int&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a HTML document around the given markup.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#createImageGraphics(double, double, double, double, boolean, boolean)">createImageGraphics</A></B>(double&nbsp;x,
    +                    double&nbsp;y,
    +                    double&nbsp;w,
    +                    double&nbsp;h,
    +                    boolean&nbsp;flipH,
    +                    boolean&nbsp;flipV)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a graphic instance for rendering an image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#createTextGraphics(double, double, double, double, boolean)">createTextGraphics</A></B>(double&nbsp;x,
    +                   double&nbsp;y,
    +                   double&nbsp;w,
    +                   double&nbsp;h,
    +                   boolean&nbsp;vertical)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new graphics instance with the correct color and font for
    + text rendering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#curveTo(double, double, double, double, double, double)">curveTo</A></B>(double&nbsp;x1,
    +        double&nbsp;y1,
    +        double&nbsp;x2,
    +        double&nbsp;y2,
    +        double&nbsp;x3,
    +        double&nbsp;y3)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws a bezier curve to the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#drawImage(java.awt.Graphics2D, java.awt.Image, int, int)">drawImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;graphics,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image,
    +          int&nbsp;x,
    +          int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#ellipse(double, double, double, double)">ellipse</A></B>(double&nbsp;x,
    +        double&nbsp;y,
    +        double&nbsp;w,
    +        double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next fill or stroke should draw an ellipse.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#fill()">fill</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fills the current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#fillAndStroke()">fillAndStroke</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fills and paints the outline of the current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#getGraphics()">getGraphics</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the graphics instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#getHorizontalTextPosition(double, double, double, double, java.lang.String, java.lang.String, boolean, java.awt.FontMetrics, java.lang.String[])">getHorizontalTextPosition</A></B>(double&nbsp;x,
    +                          double&nbsp;y,
    +                          double&nbsp;w,
    +                          double&nbsp;h,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +                          boolean&nbsp;vertical,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A>&nbsp;fm,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;lines)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This implementation returns x.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#getImageBounds(java.awt.Image, double, double, double, double, boolean)">getImageBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;img,
    +               double&nbsp;x,
    +               double&nbsp;y,
    +               double&nbsp;w,
    +               double&nbsp;h,
    +               boolean&nbsp;aspect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#getImageSize(java.awt.Image)">getImageSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size for the given image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#getVerticalTextPosition(double, double, double, double, java.lang.String, java.lang.String, boolean, java.awt.FontMetrics, java.lang.String[])">getVerticalTextPosition</A></B>(double&nbsp;x,
    +                        double&nbsp;y,
    +                        double&nbsp;w,
    +                        double&nbsp;h,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +                        boolean&nbsp;vertical,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A>&nbsp;fm,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;lines)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#image(double, double, double, double, java.lang.String, boolean, boolean, boolean)">image</A></B>(double&nbsp;x,
    +      double&nbsp;y,
    +      double&nbsp;w,
    +      double&nbsp;h,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src,
    +      boolean&nbsp;aspect,
    +      boolean&nbsp;flipH,
    +      boolean&nbsp;flipV)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#isAutoAntiAlias()">isAutoAntiAlias</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if automatic anti aliasing is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#lineTo(double, double)">lineTo</A></B>(double&nbsp;x,
    +       double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws a line to the given path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#loadImage(java.lang.String)">loadImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for image caching.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#moveTo(double, double)">moveTo</A></B>(double&nbsp;x,
    +       double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves to the given path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#parseColor(java.lang.String)">parseColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;hex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Helper method that uses <A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#quadTo(double, double, double, double)">quadTo</A></B>(double&nbsp;x1,
    +       double&nbsp;y1,
    +       double&nbsp;x2,
    +       double&nbsp;y2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws a quadratic curve to the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#rect(double, double, double, double)">rect</A></B>(double&nbsp;x,
    +     double&nbsp;y,
    +     double&nbsp;w,
    +     double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next fill or stroke should draw a rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#restore()">restore</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restores the last canvas state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#rotate(double, boolean, boolean, double, double)">rotate</A></B>(double&nbsp;theta,
    +       boolean&nbsp;flipH,
    +       boolean&nbsp;flipV,
    +       double&nbsp;cx,
    +       double&nbsp;cy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotates the canvas by the given angle around the given center.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#roundrect(double, double, double, double, double, double)">roundrect</A></B>(double&nbsp;x,
    +          double&nbsp;y,
    +          double&nbsp;w,
    +          double&nbsp;h,
    +          double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a rounded rectangle using a path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#save()">save</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Saves the current canvas state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#scale(double)">scale</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uniformaly scales the canvas by the given amount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#scaleImage(java.awt.Image, int, int)">scaleImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;img,
    +           int&nbsp;w,
    +           int&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses <A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#IMAGE_SCALING"><CODE>IMAGE_SCALING</CODE></A> to scale the given image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setAlpha(double)">setAlpha</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value 1.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setAutoAntiAlias(boolean)">setAutoAntiAlias</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disabled or enabled automatic anti aliasing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setDashed(boolean)">setDashed</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the dashed state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setDashPattern(java.lang.String)">setDashPattern</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the dash pattern.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFillColor(java.lang.String)">setFillColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFontColor(java.lang.String)">setFontColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value "#000000".</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFontFamily(java.lang.String)">setFontFamily</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTFAMILY"><CODE>mxConstants.DEFAULT_FONTFAMILY</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFontSize(double)">setFontSize</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTSIZE"><CODE>mxConstants.DEFAULT_FONTSIZE</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFontStyle(int)">setFontStyle</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value 0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setGlassGradient(double, double, double, double)">setGlassGradient</A></B>(double&nbsp;x,
    +                 double&nbsp;y,
    +                 double&nbsp;w,
    +                 double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepares the canvas to draw a glass gradient.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setGradient(java.lang.String, java.lang.String, double, double, double, double, java.lang.String)">setGradient</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color1,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color2,
    +            double&nbsp;x,
    +            double&nbsp;y,
    +            double&nbsp;w,
    +            double&nbsp;h,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepares the canvas to draw a gradient.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setGraphics(java.awt.Graphics2D)">setGraphics</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the graphics instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setLineCap(java.lang.String)">setLineCap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the linecap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setLineJoin(java.lang.String)">setLineJoin</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the linejoin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setMiterLimit(double)">setMiterLimit</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the miterlimit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setStrokeColor(java.lang.String)">setStrokeColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches color conversion as it is expensive.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#setStrokeWidth(double)">setStrokeWidth</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the stroke width.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#shadow(java.lang.String, boolean)">shadow</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value,
    +       boolean&nbsp;filled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the current path as a shadow.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#stroke()">stroke</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the outline of the current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#text(double, double, double, double, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.lang.String)">text</A></B>(double&nbsp;x,
    +     double&nbsp;y,
    +     double&nbsp;w,
    +     double&nbsp;h,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;str,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +     boolean&nbsp;vertical,
    +     boolean&nbsp;wrap,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;format)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given text.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#translate(double, double)">translate</A></B>(double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Translates the canvas by the given amount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#updateFont()">updateFont</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#updateStroke()">updateStroke</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="IMAGE_SCALING"><!-- --></A><H3>
    +IMAGE_SCALING</H3>
    +<PRE>
    +public static int <B>IMAGE_SCALING</B></PRE>
    +<DL>
    +<DD>Specifies the image scaling quality. Default is Image.SCALE_SMOOTH.
    + See <A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#scaleImage(java.awt.Image, int, int)"><CODE>scaleImage(Image, int, int)</CODE></A>
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphics"><!-- --></A><H3>
    +graphics</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>graphics</B></PRE>
    +<DL>
    +<DD>Reference to the graphics instance for painting.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="autoAntiAlias"><!-- --></A><H3>
    +autoAntiAlias</H3>
    +<PRE>
    +protected boolean <B>autoAntiAlias</B></PRE>
    +<DL>
    +<DD>Specifies if anti aliasing should be disabled for rectangles
    + and orthogonal paths. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="state"><!-- --></A><H3>
    +state</H3>
    +<PRE>
    +protected transient <A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A> <B>state</B></PRE>
    +<DL>
    +<DD>Represents the current state of the canvas.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="stack"><!-- --></A><H3>
    +stack</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Stack.html?is-external=true" title="class or interface in java.util">Stack</A>&lt;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>&gt; <B>stack</B></PRE>
    +<DL>
    +<DD>Stack of states for save/restore.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentPath"><!-- --></A><H3>
    +currentPath</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/GeneralPath.html?is-external=true" title="class or interface in java.awt.geom">GeneralPath</A> <B>currentPath</B></PRE>
    +<DL>
    +<DD>Holds the current path.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentPathIsOrthogonal"><!-- --></A><H3>
    +currentPathIsOrthogonal</H3>
    +<PRE>
    +protected transient boolean <B>currentPathIsOrthogonal</B></PRE>
    +<DL>
    +<DD>Holds the current state for crisp rendering. This should be true while
    + a subsequent stroke operation should be rendering without anti aliasing.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lastPoint"><!-- --></A><H3>
    +lastPoint</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Point2D.html?is-external=true" title="class or interface in java.awt.geom">Point2D</A> <B>lastPoint</B></PRE>
    +<DL>
    +<DD>Holds the last point of a moveTo or lineTo operation to determine if the
    + current path is orthogonal.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentStroke"><!-- --></A><H3>
    +currentStroke</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A> <B>currentStroke</B></PRE>
    +<DL>
    +<DD>Holds the current stroke.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentFont"><!-- --></A><H3>
    +currentFont</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A> <B>currentFont</B></PRE>
    +<DL>
    +<DD>Holds the current font.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentShadowValue"><!-- --></A><H3>
    +currentShadowValue</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>currentShadowValue</B></PRE>
    +<DL>
    +<DD>Holds the current value for the shadow color. This is used to hold the
    + input value of a shadow operation. The parsing result of this value is
    + cached in the global scope as it should be repeating.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentShadowColor"><!-- --></A><H3>
    +currentShadowColor</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>currentShadowColor</B></PRE>
    +<DL>
    +<DD>Holds the current parsed shadow color. This holds the result of parsing
    + the currentShadowValue, which is an expensive operation.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rendererPane"><!-- --></A><H3>
    +rendererPane</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/CellRendererPane.html?is-external=true" title="class or interface in javax.swing">CellRendererPane</A> <B>rendererPane</B></PRE>
    +<DL>
    +<DD>Optional renderer pane to be used for HTML label rendering.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphicsCanvas2D(java.awt.Graphics2D)"><!-- --></A><H3>
    +mxGraphicsCanvas2D</H3>
    +<PRE>
    +public <B>mxGraphicsCanvas2D</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g)</PRE>
    +<DL>
    +<DD>Constructs a new graphics export canvas.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setGraphics(java.awt.Graphics2D)"><!-- --></A><H3>
    +setGraphics</H3>
    +<PRE>
    +public void <B>setGraphics</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the graphics instance.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphics()"><!-- --></A><H3>
    +getGraphics</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>getGraphics</B>()</PRE>
    +<DL>
    +<DD>Returns the graphics instance.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAutoAntiAlias()"><!-- --></A><H3>
    +isAutoAntiAlias</H3>
    +<PRE>
    +public boolean <B>isAutoAntiAlias</B>()</PRE>
    +<DL>
    +<DD>Returns true if automatic anti aliasing is enabled.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAutoAntiAlias(boolean)"><!-- --></A><H3>
    +setAutoAntiAlias</H3>
    +<PRE>
    +public void <B>setAutoAntiAlias</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Disabled or enabled automatic anti aliasing.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="save()"><!-- --></A><H3>
    +save</H3>
    +<PRE>
    +public void <B>save</B>()</PRE>
    +<DL>
    +<DD>Saves the current canvas state.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#save()">save</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="restore()"><!-- --></A><H3>
    +restore</H3>
    +<PRE>
    +public void <B>restore</B>()</PRE>
    +<DL>
    +<DD>Restores the last canvas state.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#restore()">restore</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneState(com.mxgraph.canvas.mxGraphicsCanvas2D.CanvasState)"><!-- --></A><H3>
    +cloneState</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A> <B>cloneState</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns a clone of thec given state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="scale(double)"><!-- --></A><H3>
    +scale</H3>
    +<PRE>
    +public void <B>scale</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#scale(double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Uniformaly scales the canvas by the given amount.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#scale(double)">scale</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - The new scale value.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="translate(double, double)"><!-- --></A><H3>
    +translate</H3>
    +<PRE>
    +public void <B>translate</B>(double&nbsp;dx,
    +                      double&nbsp;dy)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#translate(double, double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Translates the canvas by the given amount.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#translate(double, double)">translate</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dx</CODE> - X-coordinate of the translation.<DD><CODE>dy</CODE> - Y-coordinate of the translation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="rotate(double, boolean, boolean, double, double)"><!-- --></A><H3>
    +rotate</H3>
    +<PRE>
    +public void <B>rotate</B>(double&nbsp;theta,
    +                   boolean&nbsp;flipH,
    +                   boolean&nbsp;flipV,
    +                   double&nbsp;cx,
    +                   double&nbsp;cy)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#rotate(double, boolean, boolean, double, double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Rotates the canvas by the given angle around the given center. This
    + method may add rendering overhead and should be used with care.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#rotate(double, boolean, boolean, double, double)">rotate</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>theta</CODE> - Rotation angle in degrees (0 - 360).<DD><CODE>flipH</CODE> - Specifies if drawing should be flipped horizontally.<DD><CODE>flipV</CODE> - Specifies if drawing should be flipped vertically.<DD><CODE>cx</CODE> - X-coordinate of the center point.<DD><CODE>cy</CODE> - Y-coordinate of the center point.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStrokeWidth(double)"><!-- --></A><H3>
    +setStrokeWidth</H3>
    +<PRE>
    +public void <B>setStrokeWidth</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setStrokeWidth(double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Sets the stroke width. This should default to 1 if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setStrokeWidth(double)">setStrokeWidth</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Width of the stroke. The value should be multiplied by the
    + current scale.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStrokeColor(java.lang.String)"><!-- --></A><H3>
    +setStrokeColor</H3>
    +<PRE>
    +public void <B>setStrokeColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Caches color conversion as it is expensive.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setStrokeColor(java.lang.String)">setStrokeColor</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Hex representation of the color or <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDashed(boolean)"><!-- --></A><H3>
    +setDashed</H3>
    +<PRE>
    +public void <B>setDashed</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setDashed(boolean)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Sets the dashed state. This should default to false if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setDashed(boolean)">setDashed</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Boolean representing the dashed state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDashPattern(java.lang.String)"><!-- --></A><H3>
    +setDashPattern</H3>
    +<PRE>
    +public void <B>setDashPattern</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setDashPattern(java.lang.String)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Sets the dash pattern. This should default to "3 3" if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setDashPattern(java.lang.String)">setDashPattern</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Space separated list of floats representing the dash
    + pattern. The value should be multiplied by the current scale.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLineCap(java.lang.String)"><!-- --></A><H3>
    +setLineCap</H3>
    +<PRE>
    +public void <B>setLineCap</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setLineCap(java.lang.String)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Sets the linecap. This should default to "flat" if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setLineCap(java.lang.String)">setLineCap</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - "flat", "square" or "round".</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLineJoin(java.lang.String)"><!-- --></A><H3>
    +setLineJoin</H3>
    +<PRE>
    +public void <B>setLineJoin</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setLineJoin(java.lang.String)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Sets the linejoin. This should default to "miter" if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setLineJoin(java.lang.String)">setLineJoin</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - "miter", "round" or "bevel".</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMiterLimit(double)"><!-- --></A><H3>
    +setMiterLimit</H3>
    +<PRE>
    +public void <B>setMiterLimit</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setMiterLimit(double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Sets the miterlimit. This should default to 10 if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setMiterLimit(double)">setMiterLimit</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFontSize(double)"><!-- --></A><H3>
    +setFontSize</H3>
    +<PRE>
    +public void <B>setFontSize</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontSize(double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTSIZE"><CODE>mxConstants.DEFAULT_FONTSIZE</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontSize(double)">setFontSize</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFontColor(java.lang.String)"><!-- --></A><H3>
    +setFontColor</H3>
    +<PRE>
    +public void <B>setFontColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontColor(java.lang.String)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Default value "#000000".
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontColor(java.lang.String)">setFontColor</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Hex representation of the color or <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFontFamily(java.lang.String)"><!-- --></A><H3>
    +setFontFamily</H3>
    +<PRE>
    +public void <B>setFontFamily</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontFamily(java.lang.String)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTFAMILY"><CODE>mxConstants.DEFAULT_FONTFAMILY</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontFamily(java.lang.String)">setFontFamily</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFontStyle(int)"><!-- --></A><H3>
    +setFontStyle</H3>
    +<PRE>
    +public void <B>setFontStyle</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontStyle(int)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Default value 0. See <A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_FONTSTYLE"><CODE>mxConstants.STYLE_FONTSTYLE</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontStyle(int)">setFontStyle</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAlpha(double)"><!-- --></A><H3>
    +setAlpha</H3>
    +<PRE>
    +public void <B>setAlpha</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setAlpha(double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Default value 1. This method may add rendering overhead and should be
    + used with care.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setAlpha(double)">setAlpha</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFillColor(java.lang.String)"><!-- --></A><H3>
    +setFillColor</H3>
    +<PRE>
    +public void <B>setFillColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFillColor(java.lang.String)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFillColor(java.lang.String)">setFillColor</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Hex representation of the color or <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGradient(java.lang.String, java.lang.String, double, double, double, double, java.lang.String)"><!-- --></A><H3>
    +setGradient</H3>
    +<PRE>
    +public void <B>setGradient</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color1,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color2,
    +                        double&nbsp;x,
    +                        double&nbsp;y,
    +                        double&nbsp;w,
    +                        double&nbsp;h,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setGradient(java.lang.String, java.lang.String, double, double, double, double, java.lang.String)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Prepares the canvas to draw a gradient.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setGradient(java.lang.String, java.lang.String, double, double, double, double, java.lang.String)">setGradient</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DD><CODE>direction</CODE> - Direction may be null. Use default value
    +                <A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_SOUTH"><CODE>mxConstants.DIRECTION_SOUTH</CODE></A>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseColor(java.lang.String)"><!-- --></A><H3>
    +parseColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>parseColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;hex)</PRE>
    +<DL>
    +<DD>Helper method that uses <A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A>. Subclassers
    + can override this to implement caching for frequently used colors.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGlassGradient(double, double, double, double)"><!-- --></A><H3>
    +setGlassGradient</H3>
    +<PRE>
    +public void <B>setGlassGradient</B>(double&nbsp;x,
    +                             double&nbsp;y,
    +                             double&nbsp;w,
    +                             double&nbsp;h)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setGlassGradient(double, double, double, double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Prepares the canvas to draw a glass gradient.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setGlassGradient(double, double, double, double)">setGlassGradient</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="rect(double, double, double, double)"><!-- --></A><H3>
    +rect</H3>
    +<PRE>
    +public void <B>rect</B>(double&nbsp;x,
    +                 double&nbsp;y,
    +                 double&nbsp;w,
    +                 double&nbsp;h)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#rect(double, double, double, double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Next fill or stroke should draw a rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#rect(double, double, double, double)">rect</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="roundrect(double, double, double, double, double, double)"><!-- --></A><H3>
    +roundrect</H3>
    +<PRE>
    +public void <B>roundrect</B>(double&nbsp;x,
    +                      double&nbsp;y,
    +                      double&nbsp;w,
    +                      double&nbsp;h,
    +                      double&nbsp;dx,
    +                      double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Implements a rounded rectangle using a path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#roundrect(double, double, double, double, double, double)">roundrect</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="ellipse(double, double, double, double)"><!-- --></A><H3>
    +ellipse</H3>
    +<PRE>
    +public void <B>ellipse</B>(double&nbsp;x,
    +                    double&nbsp;y,
    +                    double&nbsp;w,
    +                    double&nbsp;h)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#ellipse(double, double, double, double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Next fill or stroke should draw an ellipse.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#ellipse(double, double, double, double)">ellipse</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="image(double, double, double, double, java.lang.String, boolean, boolean, boolean)"><!-- --></A><H3>
    +image</H3>
    +<PRE>
    +public void <B>image</B>(double&nbsp;x,
    +                  double&nbsp;y,
    +                  double&nbsp;w,
    +                  double&nbsp;h,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src,
    +                  boolean&nbsp;aspect,
    +                  boolean&nbsp;flipH,
    +                  boolean&nbsp;flipV)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#image(double, double, double, double, java.lang.String, boolean, boolean, boolean)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Draws the given image.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#image(double, double, double, double, java.lang.String, boolean, boolean, boolean)">image</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawImage(java.awt.Graphics2D, java.awt.Image, int, int)"><!-- --></A><H3>
    +drawImage</H3>
    +<PRE>
    +protected void <B>drawImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;graphics,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image,
    +                         int&nbsp;x,
    +                         int&nbsp;y)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="loadImage(java.lang.String)"><!-- --></A><H3>
    +loadImage</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A> <B>loadImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</PRE>
    +<DL>
    +<DD>Hook for image caching.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageBounds(java.awt.Image, double, double, double, double, boolean)"><!-- --></A><H3>
    +getImageBounds</H3>
    +<PRE>
    +protected final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getImageBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;img,
    +                                         double&nbsp;x,
    +                                         double&nbsp;y,
    +                                         double&nbsp;w,
    +                                         double&nbsp;h,
    +                                         boolean&nbsp;aspect)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageSize(java.awt.Image)"><!-- --></A><H3>
    +getImageSize</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A> <B>getImageSize</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image)</PRE>
    +<DL>
    +<DD>Returns the size for the given image.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="scaleImage(java.awt.Image, int, int)"><!-- --></A><H3>
    +scaleImage</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A> <B>scaleImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;img,
    +                           int&nbsp;w,
    +                           int&nbsp;h)</PRE>
    +<DL>
    +<DD>Uses <A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html#IMAGE_SCALING"><CODE>IMAGE_SCALING</CODE></A> to scale the given image.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createImageGraphics(double, double, double, double, boolean, boolean)"><!-- --></A><H3>
    +createImageGraphics</H3>
    +<PRE>
    +protected final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>createImageGraphics</B>(double&nbsp;x,
    +                                               double&nbsp;y,
    +                                               double&nbsp;w,
    +                                               double&nbsp;h,
    +                                               boolean&nbsp;flipH,
    +                                               boolean&nbsp;flipV)</PRE>
    +<DL>
    +<DD>Creates a graphic instance for rendering an image.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocument(java.lang.String, java.lang.String, java.lang.String, int, int)"><!-- --></A><H3>
    +createHtmlDocument</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>createHtmlDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +                                    int&nbsp;w,
    +                                    int&nbsp;h)</PRE>
    +<DL>
    +<DD>Creates a HTML document around the given markup.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="text(double, double, double, double, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.lang.String)"><!-- --></A><H3>
    +text</H3>
    +<PRE>
    +public void <B>text</B>(double&nbsp;x,
    +                 double&nbsp;y,
    +                 double&nbsp;w,
    +                 double&nbsp;h,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;str,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +                 boolean&nbsp;vertical,
    +                 boolean&nbsp;wrap,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;format)</PRE>
    +<DL>
    +<DD>Draws the given text.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#text(double, double, double, double, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.lang.String)">text</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTextGraphics(double, double, double, double, boolean)"><!-- --></A><H3>
    +createTextGraphics</H3>
    +<PRE>
    +protected final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>createTextGraphics</B>(double&nbsp;x,
    +                                              double&nbsp;y,
    +                                              double&nbsp;w,
    +                                              double&nbsp;h,
    +                                              boolean&nbsp;vertical)</PRE>
    +<DL>
    +<DD>Returns a new graphics instance with the correct color and font for
    + text rendering.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getVerticalTextPosition(double, double, double, double, java.lang.String, java.lang.String, boolean, java.awt.FontMetrics, java.lang.String[])"><!-- --></A><H3>
    +getVerticalTextPosition</H3>
    +<PRE>
    +protected double <B>getVerticalTextPosition</B>(double&nbsp;x,
    +                                         double&nbsp;y,
    +                                         double&nbsp;w,
    +                                         double&nbsp;h,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +                                         boolean&nbsp;vertical,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A>&nbsp;fm,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;lines)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHorizontalTextPosition(double, double, double, double, java.lang.String, java.lang.String, boolean, java.awt.FontMetrics, java.lang.String[])"><!-- --></A><H3>
    +getHorizontalTextPosition</H3>
    +<PRE>
    +protected double <B>getHorizontalTextPosition</B>(double&nbsp;x,
    +                                           double&nbsp;y,
    +                                           double&nbsp;w,
    +                                           double&nbsp;h,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +                                           boolean&nbsp;vertical,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A>&nbsp;fm,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;lines)</PRE>
    +<DL>
    +<DD>This implementation returns x.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="begin()"><!-- --></A><H3>
    +begin</H3>
    +<PRE>
    +public void <B>begin</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#begin()">mxICanvas2D</A></CODE></B></DD>
    +<DD>Begins a new path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#begin()">begin</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveTo(double, double)"><!-- --></A><H3>
    +moveTo</H3>
    +<PRE>
    +public void <B>moveTo</B>(double&nbsp;x,
    +                   double&nbsp;y)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#moveTo(double, double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Moves to the given path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#moveTo(double, double)">moveTo</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="lineTo(double, double)"><!-- --></A><H3>
    +lineTo</H3>
    +<PRE>
    +public void <B>lineTo</B>(double&nbsp;x,
    +                   double&nbsp;y)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#lineTo(double, double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Draws a line to the given path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#lineTo(double, double)">lineTo</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="quadTo(double, double, double, double)"><!-- --></A><H3>
    +quadTo</H3>
    +<PRE>
    +public void <B>quadTo</B>(double&nbsp;x1,
    +                   double&nbsp;y1,
    +                   double&nbsp;x2,
    +                   double&nbsp;y2)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#quadTo(double, double, double, double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Draws a quadratic curve to the given point.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#quadTo(double, double, double, double)">quadTo</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curveTo(double, double, double, double, double, double)"><!-- --></A><H3>
    +curveTo</H3>
    +<PRE>
    +public void <B>curveTo</B>(double&nbsp;x1,
    +                    double&nbsp;y1,
    +                    double&nbsp;x2,
    +                    double&nbsp;y2,
    +                    double&nbsp;x3,
    +                    double&nbsp;y3)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#curveTo(double, double, double, double, double, double)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Draws a bezier curve to the given point.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#curveTo(double, double, double, double, double, double)">curveTo</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="close()"><!-- --></A><H3>
    +close</H3>
    +<PRE>
    +public void <B>close</B>()</PRE>
    +<DL>
    +<DD>Closes the current path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#close()">close</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stroke()"><!-- --></A><H3>
    +stroke</H3>
    +<PRE>
    +public void <B>stroke</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#stroke()">mxICanvas2D</A></CODE></B></DD>
    +<DD>Paints the outline of the current path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#stroke()">stroke</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fill()"><!-- --></A><H3>
    +fill</H3>
    +<PRE>
    +public void <B>fill</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#fill()">mxICanvas2D</A></CODE></B></DD>
    +<DD>Fills the current path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#fill()">fill</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fillAndStroke()"><!-- --></A><H3>
    +fillAndStroke</H3>
    +<PRE>
    +public void <B>fillAndStroke</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#fillAndStroke()">mxICanvas2D</A></CODE></B></DD>
    +<DD>Fills and paints the outline of the current path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#fillAndStroke()">fillAndStroke</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="shadow(java.lang.String, boolean)"><!-- --></A><H3>
    +shadow</H3>
    +<PRE>
    +public void <B>shadow</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value,
    +                   boolean&nbsp;filled)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#shadow(java.lang.String, boolean)">mxICanvas2D</A></CODE></B></DD>
    +<DD>Paints the current path as a shadow.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#shadow(java.lang.String, boolean)">shadow</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clip()"><!-- --></A><H3>
    +clip</H3>
    +<PRE>
    +public void <B>clip</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#clip()">mxICanvas2D</A></CODE></B></DD>
    +<DD>Uses the current path for clipping.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#clip()">clip</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateFont()"><!-- --></A><H3>
    +updateFont</H3>
    +<PRE>
    +protected void <B>updateFont</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createFont(java.lang.String, int, int)"><!-- --></A><H3>
    +createFont</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A> <B>createFont</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;family,
    +                          int&nbsp;style,
    +                          int&nbsp;size)</PRE>
    +<DL>
    +<DD>Hook for subclassers to implement font caching.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateStroke()"><!-- --></A><H3>
    +updateStroke</H3>
    +<PRE>
    +protected void <B>updateStroke</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphicsCanvas2D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxGraphicsCanvas2D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphicsCanvas2D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxHtmlCanvas.html b/java/docs/com/mxgraph/canvas/mxHtmlCanvas.html
    new file mode 100644
    index 000000000..6cbaf79b1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxHtmlCanvas.html
    @@ -0,0 +1,544 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxHtmlCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxHtmlCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHtmlCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxHtmlCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHtmlCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Class mxHtmlCanvas</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">com.mxgraph.canvas.mxBasicCanvas</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.canvas.mxHtmlCanvas</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxHtmlCanvas</B><DT>extends <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></DL>
    +</PRE>
    +
    +<P>
    +An implementation of a canvas that uses HTML for painting.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#document">document</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the HTML document that represents the canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#DEFAULT_IMAGEBASEPATH">DEFAULT_IMAGEBASEPATH</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#drawLabels">drawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageBasePath">imageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageCache">imageCache</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#PRESERVE_IMAGE_ASPECT">PRESERVE_IMAGE_ASPECT</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#scale">scale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#translate">translate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#mxHtmlCanvas()">mxHtmlCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new HTML canvas for the specified dimension and scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#mxHtmlCanvas(org.w3c.dom.Document)">mxHtmlCanvas</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new HTML canvas for the specified bounds, scale and
    + background color.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#appendHtmlElement(org.w3c.dom.Element)">appendHtmlElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#drawLine(java.util.List, java.util.Map)">drawLine</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given lines as segments between all points of the given list
    + of mxPoints.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#drawSegment(int, int, int, int, java.lang.String, int)">drawSegment</A></B>(int&nbsp;x0,
    +            int&nbsp;y0,
    +            int&nbsp;x1,
    +            int&nbsp;y1,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;strokeColor,
    +            int&nbsp;strokeWidth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the specified segment of a line.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#drawShape(int, int, int, int, java.util.Map)">drawShape</A></B>(int&nbsp;x,
    +          int&nbsp;y,
    +          int&nbsp;w,
    +          int&nbsp;h,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the shape specified with the STYLE_SHAPE key in the given style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#drawText(java.lang.String, int, int, int, int, java.util.Map)">drawText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +         int&nbsp;x,
    +         int&nbsp;y,
    +         int&nbsp;w,
    +         int&nbsp;h,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the specified text either using drawHtmlString or using drawString.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#getDocument()">getDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a reference to the document that represents the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html#setDocument(org.w3c.dom.Document)">setDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#flushImageCache()">flushImageCache</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageBasePath()">getImageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageForStyle(java.util.Map)">getImageForStyle</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getScale()">getScale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getTranslate()">getTranslate</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#isDrawLabels()">isDrawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#loadImage(java.lang.String)">loadImage</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setDrawLabels(boolean)">setDrawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setImageBasePath(java.lang.String)">setImageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setScale(double)">setScale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setTranslate(int, int)">setTranslate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="document"><!-- --></A><H3>
    +document</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>document</B></PRE>
    +<DL>
    +<DD>Holds the HTML document that represents the canvas.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxHtmlCanvas()"><!-- --></A><H3>
    +mxHtmlCanvas</H3>
    +<PRE>
    +public <B>mxHtmlCanvas</B>()</PRE>
    +<DL>
    +<DD>Constructs a new HTML canvas for the specified dimension and scale.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxHtmlCanvas(org.w3c.dom.Document)"><!-- --></A><H3>
    +mxHtmlCanvas</H3>
    +<PRE>
    +public <B>mxHtmlCanvas</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Constructs a new HTML canvas for the specified bounds, scale and
    + background color.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="appendHtmlElement(org.w3c.dom.Element)"><!-- --></A><H3>
    +appendHtmlElement</H3>
    +<PRE>
    +public void <B>appendHtmlElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDocument(org.w3c.dom.Document)"><!-- --></A><H3>
    +setDocument</H3>
    +<PRE>
    +public void <B>setDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDocument()"><!-- --></A><H3>
    +getDocument</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>getDocument</B>()</PRE>
    +<DL>
    +<DD>Returns a reference to the document that represents the canvas.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawCell(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +drawCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawCell</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - State of the cell to be painted.
    +<DT><B>Returns:</B><DD>Object that represents the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +drawLabel</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                        boolean&nbsp;html)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given label.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>label</CODE> - String that represents the label.<DD><CODE>state</CODE> - State of the cell whose label is to be painted.<DD><CODE>html</CODE> - Specifies if the label contains HTML markup.
    +<DT><B>Returns:</B><DD>Object that represents the label.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawShape(int, int, int, int, java.util.Map)"><!-- --></A><H3>
    +drawShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>drawShape</B>(int&nbsp;x,
    +                         int&nbsp;y,
    +                         int&nbsp;w,
    +                         int&nbsp;h,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Draws the shape specified with the STYLE_SHAPE key in the given style.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - X-coordinate of the shape.<DD><CODE>y</CODE> - Y-coordinate of the shape.<DD><CODE>w</CODE> - Width of the shape.<DD><CODE>h</CODE> - Height of the shape.<DD><CODE>style</CODE> - Style of the the shape.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLine(java.util.List, java.util.Map)"><!-- --></A><H3>
    +drawLine</H3>
    +<PRE>
    +public void <B>drawLine</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Draws the given lines as segments between all points of the given list
    + of mxPoints.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>pts</CODE> - List of points that define the line.<DD><CODE>style</CODE> - Style to be used for painting the line.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawSegment(int, int, int, int, java.lang.String, int)"><!-- --></A><H3>
    +drawSegment</H3>
    +<PRE>
    +protected void <B>drawSegment</B>(int&nbsp;x0,
    +                           int&nbsp;y0,
    +                           int&nbsp;x1,
    +                           int&nbsp;y1,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;strokeColor,
    +                           int&nbsp;strokeWidth)</PRE>
    +<DL>
    +<DD>Draws the specified segment of a line.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x0</CODE> - X-coordinate of the start point.<DD><CODE>y0</CODE> - Y-coordinate of the start point.<DD><CODE>x1</CODE> - X-coordinate of the end point.<DD><CODE>y1</CODE> - Y-coordinate of the end point.<DD><CODE>strokeColor</CODE> - Color of the stroke to be painted.<DD><CODE>strokeWidth</CODE> - Width of the stroke to be painted.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawText(java.lang.String, int, int, int, int, java.util.Map)"><!-- --></A><H3>
    +drawText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>drawText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                        int&nbsp;x,
    +                        int&nbsp;y,
    +                        int&nbsp;w,
    +                        int&nbsp;h,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Draws the specified text either using drawHtmlString or using drawString.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - Text to be painted.<DD><CODE>x</CODE> - X-coordinate of the text.<DD><CODE>y</CODE> - Y-coordinate of the text.<DD><CODE>w</CODE> - Width of the text.<DD><CODE>h</CODE> - Height of the text.<DD><CODE>style</CODE> - Style to be used for painting the text.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHtmlCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxHtmlCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHtmlCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxICanvas.html b/java/docs/com/mxgraph/canvas/mxICanvas.html
    new file mode 100644
    index 000000000..950b438da
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxICanvas.html
    @@ -0,0 +1,331 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxICanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxICanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxICanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Interface mxICanvas</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>, <A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>, <A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>, <A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>, <A HREF="../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>, <A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>, <A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxICanvas</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the requirements for a canvas that paints the vertices and edges of
    + a graph.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#getScale()">getScale</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#getTranslate()">getTranslate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current translation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#setScale(double)">setScale</A></B>(double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the scale for the following drawing requests.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#setTranslate(int, int)">setTranslate</A></B>(int&nbsp;x,
    +             int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the translation for the following drawing requests.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setTranslate(int, int)"><!-- --></A><H3>
    +setTranslate</H3>
    +<PRE>
    +void <B>setTranslate</B>(int&nbsp;x,
    +                  int&nbsp;y)</PRE>
    +<DL>
    +<DD>Sets the translation for the following drawing requests.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTranslate()"><!-- --></A><H3>
    +getTranslate</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>getTranslate</B>()</PRE>
    +<DL>
    +<DD>Returns the current translation.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the current translation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setScale(double)"><!-- --></A><H3>
    +setScale</H3>
    +<PRE>
    +void <B>setScale</B>(double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Sets the scale for the following drawing requests.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getScale()"><!-- --></A><H3>
    +getScale</H3>
    +<PRE>
    +double <B>getScale</B>()</PRE>
    +<DL>
    +<DD>Returns the scale.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawCell(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +drawCell</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawCell</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Draws the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - State of the cell to be painted.
    +<DT><B>Returns:</B><DD>Object that represents the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +drawLabel</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                 <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                 boolean&nbsp;html)</PRE>
    +<DL>
    +<DD>Draws the given label.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - String that represents the label.<DD><CODE>state</CODE> - State of the cell whose label is to be painted.<DD><CODE>html</CODE> - Specifies if the label contains HTML markup.
    +<DT><B>Returns:</B><DD>Object that represents the label.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxICanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxICanvas2D.html b/java/docs/com/mxgraph/canvas/mxICanvas2D.html
    new file mode 100644
    index 000000000..d8eef6a83
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxICanvas2D.html
    @@ -0,0 +1,1073 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxICanvas2D (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxICanvas2D (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICanvas2D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxICanvas2D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICanvas2D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Interface mxICanvas2D</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxICanvas2D</B></DL>
    +</PRE>
    +
    +<P>
    +Requirements for implementing technologies:
    + 
    + - Path rendering (move, line, quad, curve, arc)
    + - Images, flip v/h, aspect, alpha (PNG, JPG, GIF)
    + - Linear gradients (in all four directions)
    + - Transparency, fill and stroke
    + - Rotation, flip v/h
    + - Font rendering
    + - Dash patterns
    + - Clipping by path (not just rectangle)
    + - Alpha gradients (for glass effect)
    + - Encode result as image (PNG, JPG)
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#begin()">begin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Begins a new path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#clip()">clip</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses the current path for clipping.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#close()">close</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Closes the current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#curveTo(double, double, double, double, double, double)">curveTo</A></B>(double&nbsp;x1,
    +        double&nbsp;y1,
    +        double&nbsp;x2,
    +        double&nbsp;y2,
    +        double&nbsp;x3,
    +        double&nbsp;y3)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws a bezier curve to the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#ellipse(double, double, double, double)">ellipse</A></B>(double&nbsp;x,
    +        double&nbsp;y,
    +        double&nbsp;w,
    +        double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next fill or stroke should draw an ellipse.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#fill()">fill</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fills the current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#fillAndStroke()">fillAndStroke</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fills and paints the outline of the current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#image(double, double, double, double, java.lang.String, boolean, boolean, boolean)">image</A></B>(double&nbsp;x,
    +      double&nbsp;y,
    +      double&nbsp;w,
    +      double&nbsp;h,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src,
    +      boolean&nbsp;aspect,
    +      boolean&nbsp;flipH,
    +      boolean&nbsp;flipV)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#lineTo(double, double)">lineTo</A></B>(double&nbsp;x,
    +       double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws a line to the given path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#moveTo(double, double)">moveTo</A></B>(double&nbsp;x,
    +       double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves to the given path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#quadTo(double, double, double, double)">quadTo</A></B>(double&nbsp;x1,
    +       double&nbsp;y1,
    +       double&nbsp;x2,
    +       double&nbsp;y2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws a quadratic curve to the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#rect(double, double, double, double)">rect</A></B>(double&nbsp;x,
    +     double&nbsp;y,
    +     double&nbsp;w,
    +     double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next fill or stroke should draw a rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#restore()">restore</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restores the previous state of the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#rotate(double, boolean, boolean, double, double)">rotate</A></B>(double&nbsp;theta,
    +       boolean&nbsp;flipH,
    +       boolean&nbsp;flipV,
    +       double&nbsp;cx,
    +       double&nbsp;cy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotates the canvas by the given angle around the given center.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#roundrect(double, double, double, double, double, double)">roundrect</A></B>(double&nbsp;x,
    +          double&nbsp;y,
    +          double&nbsp;w,
    +          double&nbsp;h,
    +          double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next fill or stroke should draw a round rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#save()">save</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Saves the current state of the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#scale(double)">scale</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uniformaly scales the canvas by the given amount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setAlpha(double)">setAlpha</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value 1.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setDashed(boolean)">setDashed</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the dashed state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setDashPattern(java.lang.String)">setDashPattern</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the dash pattern.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFillColor(java.lang.String)">setFillColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontColor(java.lang.String)">setFontColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value "#000000".</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontFamily(java.lang.String)">setFontFamily</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTFAMILY"><CODE>mxConstants.DEFAULT_FONTFAMILY</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontSize(double)">setFontSize</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTSIZE"><CODE>mxConstants.DEFAULT_FONTSIZE</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setFontStyle(int)">setFontStyle</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default value 0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setGlassGradient(double, double, double, double)">setGlassGradient</A></B>(double&nbsp;x,
    +                 double&nbsp;y,
    +                 double&nbsp;w,
    +                 double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepares the canvas to draw a glass gradient.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setGradient(java.lang.String, java.lang.String, double, double, double, double, java.lang.String)">setGradient</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color1,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color2,
    +            double&nbsp;x,
    +            double&nbsp;y,
    +            double&nbsp;w,
    +            double&nbsp;h,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepares the canvas to draw a gradient.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setLineCap(java.lang.String)">setLineCap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the linecap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setLineJoin(java.lang.String)">setLineJoin</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the linejoin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setMiterLimit(double)">setMiterLimit</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the miterlimit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setStrokeColor(java.lang.String)">setStrokeColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the stroke color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#setStrokeWidth(double)">setStrokeWidth</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the stroke width.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#shadow(java.lang.String, boolean)">shadow</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value,
    +       boolean&nbsp;filled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the current path as a shadow.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#stroke()">stroke</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the outline of the current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#text(double, double, double, double, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.lang.String)">text</A></B>(double&nbsp;x,
    +     double&nbsp;y,
    +     double&nbsp;w,
    +     double&nbsp;h,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;str,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +     boolean&nbsp;vertical,
    +     boolean&nbsp;wrap,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;format)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html#translate(double, double)">translate</A></B>(double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Translates the canvas by the given amount.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="save()"><!-- --></A><H3>
    +save</H3>
    +<PRE>
    +void <B>save</B>()</PRE>
    +<DL>
    +<DD>Saves the current state of the canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="restore()"><!-- --></A><H3>
    +restore</H3>
    +<PRE>
    +void <B>restore</B>()</PRE>
    +<DL>
    +<DD>Restores the previous state of the canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="scale(double)"><!-- --></A><H3>
    +scale</H3>
    +<PRE>
    +void <B>scale</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Uniformaly scales the canvas by the given amount.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - The new scale value.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="translate(double, double)"><!-- --></A><H3>
    +translate</H3>
    +<PRE>
    +void <B>translate</B>(double&nbsp;dx,
    +               double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Translates the canvas by the given amount.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dx</CODE> - X-coordinate of the translation.<DD><CODE>dy</CODE> - Y-coordinate of the translation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="rotate(double, boolean, boolean, double, double)"><!-- --></A><H3>
    +rotate</H3>
    +<PRE>
    +void <B>rotate</B>(double&nbsp;theta,
    +            boolean&nbsp;flipH,
    +            boolean&nbsp;flipV,
    +            double&nbsp;cx,
    +            double&nbsp;cy)</PRE>
    +<DL>
    +<DD>Rotates the canvas by the given angle around the given center. This
    + method may add rendering overhead and should be used with care.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>theta</CODE> - Rotation angle in degrees (0 - 360).<DD><CODE>flipH</CODE> - Specifies if drawing should be flipped horizontally.<DD><CODE>flipV</CODE> - Specifies if drawing should be flipped vertically.<DD><CODE>cx</CODE> - X-coordinate of the center point.<DD><CODE>cy</CODE> - Y-coordinate of the center point.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStrokeWidth(double)"><!-- --></A><H3>
    +setStrokeWidth</H3>
    +<PRE>
    +void <B>setStrokeWidth</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the stroke width. This should default to 1 if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Width of the stroke. The value should be multiplied by the
    + current scale.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStrokeColor(java.lang.String)"><!-- --></A><H3>
    +setStrokeColor</H3>
    +<PRE>
    +void <B>setStrokeColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the stroke color. This should default to <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>
    + if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Hex representation of the color or <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDashed(boolean)"><!-- --></A><H3>
    +setDashed</H3>
    +<PRE>
    +void <B>setDashed</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the dashed state. This should default to false if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Boolean representing the dashed state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDashPattern(java.lang.String)"><!-- --></A><H3>
    +setDashPattern</H3>
    +<PRE>
    +void <B>setDashPattern</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the dash pattern. This should default to "3 3" if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Space separated list of floats representing the dash
    + pattern. The value should be multiplied by the current scale.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLineCap(java.lang.String)"><!-- --></A><H3>
    +setLineCap</H3>
    +<PRE>
    +void <B>setLineCap</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the linecap. This should default to "flat" if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - "flat", "square" or "round".</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLineJoin(java.lang.String)"><!-- --></A><H3>
    +setLineJoin</H3>
    +<PRE>
    +void <B>setLineJoin</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the linejoin. This should default to "miter" if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - "miter", "round" or "bevel".</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMiterLimit(double)"><!-- --></A><H3>
    +setMiterLimit</H3>
    +<PRE>
    +void <B>setMiterLimit</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the miterlimit. This should default to 10 if unset.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFontSize(double)"><!-- --></A><H3>
    +setFontSize</H3>
    +<PRE>
    +void <B>setFontSize</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTSIZE"><CODE>mxConstants.DEFAULT_FONTSIZE</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFontColor(java.lang.String)"><!-- --></A><H3>
    +setFontColor</H3>
    +<PRE>
    +void <B>setFontColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Default value "#000000".
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Hex representation of the color or <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFontFamily(java.lang.String)"><!-- --></A><H3>
    +setFontFamily</H3>
    +<PRE>
    +void <B>setFontFamily</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTFAMILY"><CODE>mxConstants.DEFAULT_FONTFAMILY</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFontStyle(int)"><!-- --></A><H3>
    +setFontStyle</H3>
    +<PRE>
    +void <B>setFontStyle</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD>Default value 0. See <A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_FONTSTYLE"><CODE>mxConstants.STYLE_FONTSTYLE</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAlpha(double)"><!-- --></A><H3>
    +setAlpha</H3>
    +<PRE>
    +void <B>setAlpha</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Default value 1. This method may add rendering overhead and should be
    + used with care.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFillColor(java.lang.String)"><!-- --></A><H3>
    +setFillColor</H3>
    +<PRE>
    +void <B>setFillColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Default value <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Hex representation of the color or <A HREF="../../../com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGradient(java.lang.String, java.lang.String, double, double, double, double, java.lang.String)"><!-- --></A><H3>
    +setGradient</H3>
    +<PRE>
    +void <B>setGradient</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color1,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color2,
    +                 double&nbsp;x,
    +                 double&nbsp;y,
    +                 double&nbsp;w,
    +                 double&nbsp;h,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</PRE>
    +<DL>
    +<DD>Prepares the canvas to draw a gradient.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>color1</CODE> - <DD><CODE>color2</CODE> - <DD><CODE>x</CODE> - <DD><CODE>y</CODE> - <DD><CODE>w</CODE> - <DD><CODE>h</CODE> - <DD><CODE>direction</CODE> - Direction may be null. Use default value
    +                <A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_SOUTH"><CODE>mxConstants.DIRECTION_SOUTH</CODE></A>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGlassGradient(double, double, double, double)"><!-- --></A><H3>
    +setGlassGradient</H3>
    +<PRE>
    +void <B>setGlassGradient</B>(double&nbsp;x,
    +                      double&nbsp;y,
    +                      double&nbsp;w,
    +                      double&nbsp;h)</PRE>
    +<DL>
    +<DD>Prepares the canvas to draw a glass gradient.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - <DD><CODE>w</CODE> - <DD><CODE>h</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="rect(double, double, double, double)"><!-- --></A><H3>
    +rect</H3>
    +<PRE>
    +void <B>rect</B>(double&nbsp;x,
    +          double&nbsp;y,
    +          double&nbsp;w,
    +          double&nbsp;h)</PRE>
    +<DL>
    +<DD>Next fill or stroke should draw a rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - <DD><CODE>w</CODE> - <DD><CODE>h</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="roundrect(double, double, double, double, double, double)"><!-- --></A><H3>
    +roundrect</H3>
    +<PRE>
    +void <B>roundrect</B>(double&nbsp;x,
    +               double&nbsp;y,
    +               double&nbsp;w,
    +               double&nbsp;h,
    +               double&nbsp;dx,
    +               double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Next fill or stroke should draw a round rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - <DD><CODE>w</CODE> - <DD><CODE>h</CODE> - <DD><CODE>dx</CODE> - <DD><CODE>dy</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="ellipse(double, double, double, double)"><!-- --></A><H3>
    +ellipse</H3>
    +<PRE>
    +void <B>ellipse</B>(double&nbsp;x,
    +             double&nbsp;y,
    +             double&nbsp;w,
    +             double&nbsp;h)</PRE>
    +<DL>
    +<DD>Next fill or stroke should draw an ellipse.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - <DD><CODE>w</CODE> - <DD><CODE>h</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="image(double, double, double, double, java.lang.String, boolean, boolean, boolean)"><!-- --></A><H3>
    +image</H3>
    +<PRE>
    +void <B>image</B>(double&nbsp;x,
    +           double&nbsp;y,
    +           double&nbsp;w,
    +           double&nbsp;h,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src,
    +           boolean&nbsp;aspect,
    +           boolean&nbsp;flipH,
    +           boolean&nbsp;flipV)</PRE>
    +<DL>
    +<DD>Draws the given image.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - <DD><CODE>w</CODE> - <DD><CODE>h</CODE> - <DD><CODE>src</CODE> - <DD><CODE>aspect</CODE> - <DD><CODE>flipH</CODE> - <DD><CODE>flipV</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="text(double, double, double, double, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.lang.String)"><!-- --></A><H3>
    +text</H3>
    +<PRE>
    +void <B>text</B>(double&nbsp;x,
    +          double&nbsp;y,
    +          double&nbsp;w,
    +          double&nbsp;h,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;str,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;valign,
    +          boolean&nbsp;vertical,
    +          boolean&nbsp;wrap,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;format)</PRE>
    +<DL>
    +<DD>Draws the given string.  Possible values for format are empty string for
    + plain text and html for HTML markup.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - <DD><CODE>w</CODE> - <DD><CODE>h</CODE> - <DD><CODE>str</CODE> - <DD><CODE>align</CODE> - <DD><CODE>valign</CODE> - <DD><CODE>vertical</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="begin()"><!-- --></A><H3>
    +begin</H3>
    +<PRE>
    +void <B>begin</B>()</PRE>
    +<DL>
    +<DD>Begins a new path.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveTo(double, double)"><!-- --></A><H3>
    +moveTo</H3>
    +<PRE>
    +void <B>moveTo</B>(double&nbsp;x,
    +            double&nbsp;y)</PRE>
    +<DL>
    +<DD>Moves to the given path.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="lineTo(double, double)"><!-- --></A><H3>
    +lineTo</H3>
    +<PRE>
    +void <B>lineTo</B>(double&nbsp;x,
    +            double&nbsp;y)</PRE>
    +<DL>
    +<DD>Draws a line to the given path.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="quadTo(double, double, double, double)"><!-- --></A><H3>
    +quadTo</H3>
    +<PRE>
    +void <B>quadTo</B>(double&nbsp;x1,
    +            double&nbsp;y1,
    +            double&nbsp;x2,
    +            double&nbsp;y2)</PRE>
    +<DL>
    +<DD>Draws a quadratic curve to the given point.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - <DD><CODE>y1</CODE> - <DD><CODE>x2</CODE> - <DD><CODE>y2</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curveTo(double, double, double, double, double, double)"><!-- --></A><H3>
    +curveTo</H3>
    +<PRE>
    +void <B>curveTo</B>(double&nbsp;x1,
    +             double&nbsp;y1,
    +             double&nbsp;x2,
    +             double&nbsp;y2,
    +             double&nbsp;x3,
    +             double&nbsp;y3)</PRE>
    +<DL>
    +<DD>Draws a bezier curve to the given point.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - <DD><CODE>y1</CODE> - <DD><CODE>x2</CODE> - <DD><CODE>y2</CODE> - <DD><CODE>x3</CODE> - <DD><CODE>y3</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="close()"><!-- --></A><H3>
    +close</H3>
    +<PRE>
    +void <B>close</B>()</PRE>
    +<DL>
    +<DD>Closes the current path.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stroke()"><!-- --></A><H3>
    +stroke</H3>
    +<PRE>
    +void <B>stroke</B>()</PRE>
    +<DL>
    +<DD>Paints the outline of the current path.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fill()"><!-- --></A><H3>
    +fill</H3>
    +<PRE>
    +void <B>fill</B>()</PRE>
    +<DL>
    +<DD>Fills the current path.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fillAndStroke()"><!-- --></A><H3>
    +fillAndStroke</H3>
    +<PRE>
    +void <B>fillAndStroke</B>()</PRE>
    +<DL>
    +<DD>Fills and paints the outline of the current path.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="shadow(java.lang.String, boolean)"><!-- --></A><H3>
    +shadow</H3>
    +<PRE>
    +void <B>shadow</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value,
    +            boolean&nbsp;filled)</PRE>
    +<DL>
    +<DD>Paints the current path as a shadow.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clip()"><!-- --></A><H3>
    +clip</H3>
    +<PRE>
    +void <B>clip</B>()</PRE>
    +<DL>
    +<DD>Uses the current path for clipping.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICanvas2D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxICanvas2D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICanvas2D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxImageCanvas.html b/java/docs/com/mxgraph/canvas/mxImageCanvas.html
    new file mode 100644
    index 000000000..7ab1b282c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxImageCanvas.html
    @@ -0,0 +1,550 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxImageCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxImageCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxImageCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxImageCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Class mxImageCanvas</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.canvas.mxImageCanvas</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxImageCanvas</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></DL>
    +</PRE>
    +
    +<P>
    +An implementation of a canvas that uses Graphics2D for painting. To use an
    + image canvas for an existing graphics canvas and create an image the
    + following code is used:
    + 
    + <code>BufferedImage image = mxCellRenderer.createBufferedImage(graph, cells, 1, Color.white, true, null, canvas);</code>
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#image">image</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#previousGraphics">previousGraphics</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#mxImageCanvas(com.mxgraph.canvas.mxGraphics2DCanvas, int, int, java.awt.Color, boolean)">mxImageCanvas</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +              int&nbsp;width,
    +              int&nbsp;height,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +              boolean&nbsp;antiAlias)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#destroy()">destroy</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#getGraphicsCanvas()">getGraphicsCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#getImage()">getImage</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#getScale()">getScale</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#getTranslate()">getTranslate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current translation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#setScale(double)">setScale</A></B>(double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the scale for the following drawing requests.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html#setTranslate(int, int)">setTranslate</A></B>(int&nbsp;dx,
    +             int&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the translation for the following drawing requests.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="canvas"><!-- --></A><H3>
    +canvas</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> <B>canvas</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previousGraphics"><!-- --></A><H3>
    +previousGraphics</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>previousGraphics</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="image"><!-- --></A><H3>
    +image</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>image</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxImageCanvas(com.mxgraph.canvas.mxGraphics2DCanvas, int, int, java.awt.Color, boolean)"><!-- --></A><H3>
    +mxImageCanvas</H3>
    +<PRE>
    +public <B>mxImageCanvas</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                     int&nbsp;width,
    +                     int&nbsp;height,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                     boolean&nbsp;antiAlias)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getGraphicsCanvas()"><!-- --></A><H3>
    +getGraphicsCanvas</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> <B>getGraphicsCanvas</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImage()"><!-- --></A><H3>
    +getImage</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>getImage</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawCell(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +drawCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawCell</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - State of the cell to be painted.
    +<DT><B>Returns:</B><DD>Object that represents the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +drawLabel</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                        boolean&nbsp;html)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given label.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>label</CODE> - String that represents the label.<DD><CODE>state</CODE> - State of the cell whose label is to be painted.<DD><CODE>html</CODE> - Specifies if the label contains HTML markup.
    +<DT><B>Returns:</B><DD>Object that represents the label.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getScale()"><!-- --></A><H3>
    +getScale</H3>
    +<PRE>
    +public double <B>getScale</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#getScale()">mxICanvas</A></CODE></B></DD>
    +<DD>Returns the scale.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#getScale()">getScale</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTranslate()"><!-- --></A><H3>
    +getTranslate</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>getTranslate</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#getTranslate()">mxICanvas</A></CODE></B></DD>
    +<DD>Returns the current translation.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#getTranslate()">getTranslate</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the current translation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setScale(double)"><!-- --></A><H3>
    +setScale</H3>
    +<PRE>
    +public void <B>setScale</B>(double&nbsp;scale)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#setScale(double)">mxICanvas</A></CODE></B></DD>
    +<DD>Sets the scale for the following drawing requests.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#setScale(double)">setScale</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTranslate(int, int)"><!-- --></A><H3>
    +setTranslate</H3>
    +<PRE>
    +public void <B>setTranslate</B>(int&nbsp;dx,
    +                         int&nbsp;dy)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#setTranslate(int, int)">mxICanvas</A></CODE></B></DD>
    +<DD>Sets the translation for the following drawing requests.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#setTranslate(int, int)">setTranslate</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="destroy()"><!-- --></A><H3>
    +destroy</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>destroy</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxImageCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxImageCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxSvgCanvas.html b/java/docs/com/mxgraph/canvas/mxSvgCanvas.html
    new file mode 100644
    index 000000000..790116322
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxSvgCanvas.html
    @@ -0,0 +1,848 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxSvgCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSvgCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSvgCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxSvgCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSvgCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Class mxSvgCanvas</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">com.mxgraph.canvas.mxBasicCanvas</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.canvas.mxSvgCanvas</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSvgCanvas</B><DT>extends <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></DL>
    +</PRE>
    +
    +<P>
    +An implementation of a canvas that uses SVG for painting. This canvas
    + ignores the STYLE_LABEL_BACKGROUNDCOLOR and
    + STYLE_LABEL_BORDERCOLOR styles due to limitations of SVG.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#defs">defs</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#document">document</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the HTML document that represents the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#embedded">embedded</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if images should be embedded as base64 encoded strings.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#DEFAULT_IMAGEBASEPATH">DEFAULT_IMAGEBASEPATH</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#drawLabels">drawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageBasePath">imageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageCache">imageCache</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#PRESERVE_IMAGE_ASPECT">PRESERVE_IMAGE_ASPECT</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#scale">scale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#translate">translate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#mxSvgCanvas()">mxSvgCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new SVG canvas for the specified dimension and scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#mxSvgCanvas(org.w3c.dom.Document)">mxSvgCanvas</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new SVG canvas for the specified bounds, scale and
    + background color.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#appendSvgElement(org.w3c.dom.Element)">appendSvgElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#createDataUrl(java.lang.String)">createDataUrl</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#createGradientElement(java.lang.String, java.lang.String, java.lang.String)">createGradientElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;start,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;end,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#createImageElement(double, double, double, double, java.lang.String, boolean, boolean, boolean, boolean)">createImageElement</A></B>(double&nbsp;x,
    +                   double&nbsp;y,
    +                   double&nbsp;w,
    +                   double&nbsp;h,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src,
    +                   boolean&nbsp;aspect,
    +                   boolean&nbsp;flipH,
    +                   boolean&nbsp;flipV,
    +                   boolean&nbsp;embedded)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#drawLine(java.util.List, java.util.Map)">drawLine</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given lines as segments between all points of the given list
    + of mxPoints.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#drawMarker(org.w3c.dom.Element, java.lang.Object, com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint, float, float, java.lang.String)">drawMarker</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;type,
    +           <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;p0,
    +           <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +           float&nbsp;size,
    +           float&nbsp;strokeWidth,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the specified marker as a child path in the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#drawShape(int, int, int, int, java.util.Map)">drawShape</A></B>(int&nbsp;x,
    +          int&nbsp;y,
    +          int&nbsp;w,
    +          int&nbsp;h,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the shape specified with the STYLE_SHAPE key in the given style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#drawText(java.lang.String, int, int, int, int, java.util.Map)">drawText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +         int&nbsp;x,
    +         int&nbsp;y,
    +         int&nbsp;w,
    +         int&nbsp;h,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the specified text either using drawHtmlString or using drawString.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#getDefsElement()">getDefsElement</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#getDocument()">getDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a reference to the document that represents the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#getEmbeddedImageElement(java.lang.String)">getEmbeddedImageElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#getGlassGradientElement()">getGlassGradientElement</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#getGradientElement(java.lang.String, java.lang.String, java.lang.String)">getGradientElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;start,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;end,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#getGradientId(java.lang.String, java.lang.String, java.lang.String)">getGradientId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;start,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;end,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#getResource(java.lang.String)">getResource</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#isEmbedded()">isEmbedded</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#isImageResource(java.lang.String)">isImageResource</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given string ends with .png, .jpg or .gif.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#setDocument(org.w3c.dom.Document)">setDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html#setEmbedded(boolean)">setEmbedded</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#flushImageCache()">flushImageCache</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageBasePath()">getImageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageForStyle(java.util.Map)">getImageForStyle</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getScale()">getScale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getTranslate()">getTranslate</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#isDrawLabels()">isDrawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#loadImage(java.lang.String)">loadImage</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setDrawLabels(boolean)">setDrawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setImageBasePath(java.lang.String)">setImageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setScale(double)">setScale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setTranslate(int, int)">setTranslate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="document"><!-- --></A><H3>
    +document</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>document</B></PRE>
    +<DL>
    +<DD>Holds the HTML document that represents the canvas.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="defs"><!-- --></A><H3>
    +defs</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>defs</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="embedded"><!-- --></A><H3>
    +embedded</H3>
    +<PRE>
    +protected boolean <B>embedded</B></PRE>
    +<DL>
    +<DD>Specifies if images should be embedded as base64 encoded strings.
    + Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSvgCanvas()"><!-- --></A><H3>
    +mxSvgCanvas</H3>
    +<PRE>
    +public <B>mxSvgCanvas</B>()</PRE>
    +<DL>
    +<DD>Constructs a new SVG canvas for the specified dimension and scale.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxSvgCanvas(org.w3c.dom.Document)"><!-- --></A><H3>
    +mxSvgCanvas</H3>
    +<PRE>
    +public <B>mxSvgCanvas</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Constructs a new SVG canvas for the specified bounds, scale and
    + background color.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="appendSvgElement(org.w3c.dom.Element)"><!-- --></A><H3>
    +appendSvgElement</H3>
    +<PRE>
    +public void <B>appendSvgElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDefsElement()"><!-- --></A><H3>
    +getDefsElement</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>getDefsElement</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGradientElement(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getGradientElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>getGradientElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;start,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;end,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGlassGradientElement()"><!-- --></A><H3>
    +getGlassGradientElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>getGlassGradientElement</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createGradientElement(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +createGradientElement</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>createGradientElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;start,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;end,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGradientId(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getGradientId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getGradientId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;start,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;end,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isImageResource(java.lang.String)"><!-- --></A><H3>
    +isImageResource</H3>
    +<PRE>
    +protected boolean <B>isImageResource</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</PRE>
    +<DL>
    +<DD>Returns true if the given string ends with .png, .jpg or .gif.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getResource(java.lang.String)"><!-- --></A><H3>
    +getResource</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A> <B>getResource</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createDataUrl(java.lang.String)"><!-- --></A><H3>
    +createDataUrl</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>createDataUrl</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)
    +                        throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEmbeddedImageElement(java.lang.String)"><!-- --></A><H3>
    +getEmbeddedImageElement</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>getEmbeddedImageElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createImageElement(double, double, double, double, java.lang.String, boolean, boolean, boolean, boolean)"><!-- --></A><H3>
    +createImageElement</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>createImageElement</B>(double&nbsp;x,
    +                                     double&nbsp;y,
    +                                     double&nbsp;w,
    +                                     double&nbsp;h,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src,
    +                                     boolean&nbsp;aspect,
    +                                     boolean&nbsp;flipH,
    +                                     boolean&nbsp;flipV,
    +                                     boolean&nbsp;embedded)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDocument(org.w3c.dom.Document)"><!-- --></A><H3>
    +setDocument</H3>
    +<PRE>
    +public void <B>setDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDocument()"><!-- --></A><H3>
    +getDocument</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>getDocument</B>()</PRE>
    +<DL>
    +<DD>Returns a reference to the document that represents the canvas.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEmbedded(boolean)"><!-- --></A><H3>
    +setEmbedded</H3>
    +<PRE>
    +public void <B>setEmbedded</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEmbedded()"><!-- --></A><H3>
    +isEmbedded</H3>
    +<PRE>
    +public boolean <B>isEmbedded</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawCell(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +drawCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawCell</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - State of the cell to be painted.
    +<DT><B>Returns:</B><DD>Object that represents the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +drawLabel</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                        boolean&nbsp;html)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given label.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>label</CODE> - String that represents the label.<DD><CODE>state</CODE> - State of the cell whose label is to be painted.<DD><CODE>html</CODE> - Specifies if the label contains HTML markup.
    +<DT><B>Returns:</B><DD>Object that represents the label.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawShape(int, int, int, int, java.util.Map)"><!-- --></A><H3>
    +drawShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>drawShape</B>(int&nbsp;x,
    +                         int&nbsp;y,
    +                         int&nbsp;w,
    +                         int&nbsp;h,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Draws the shape specified with the STYLE_SHAPE key in the given style.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - X-coordinate of the shape.<DD><CODE>y</CODE> - Y-coordinate of the shape.<DD><CODE>w</CODE> - Width of the shape.<DD><CODE>h</CODE> - Height of the shape.<DD><CODE>style</CODE> - Style of the the shape.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLine(java.util.List, java.util.Map)"><!-- --></A><H3>
    +drawLine</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>drawLine</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Draws the given lines as segments between all points of the given list
    + of mxPoints.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>pts</CODE> - List of points that define the line.<DD><CODE>style</CODE> - Style to be used for painting the line.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawMarker(org.w3c.dom.Element, java.lang.Object, com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint, float, float, java.lang.String)"><!-- --></A><H3>
    +drawMarker</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>drawMarker</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;parent,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;type,
    +                          <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;p0,
    +                          <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +                          float&nbsp;size,
    +                          float&nbsp;strokeWidth,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color)</PRE>
    +<DL>
    +<DD>Draws the specified marker as a child path in the given parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawText(java.lang.String, int, int, int, int, java.util.Map)"><!-- --></A><H3>
    +drawText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                       int&nbsp;x,
    +                       int&nbsp;y,
    +                       int&nbsp;w,
    +                       int&nbsp;h,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Draws the specified text either using drawHtmlString or using drawString.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - Text to be painted.<DD><CODE>x</CODE> - X-coordinate of the text.<DD><CODE>y</CODE> - Y-coordinate of the text.<DD><CODE>w</CODE> - Width of the text.<DD><CODE>h</CODE> - Height of the text.<DD><CODE>style</CODE> - Style to be used for painting the text.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSvgCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxSvgCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSvgCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/mxVmlCanvas.html b/java/docs/com/mxgraph/canvas/mxVmlCanvas.html
    new file mode 100644
    index 000000000..bfd4f8ec3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/mxVmlCanvas.html
    @@ -0,0 +1,513 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxVmlCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxVmlCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxVmlCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxVmlCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxVmlCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.canvas</FONT>
    +<BR>
    +Class mxVmlCanvas</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">com.mxgraph.canvas.mxBasicCanvas</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.canvas.mxVmlCanvas</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxVmlCanvas</B><DT>extends <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></DL>
    +</PRE>
    +
    +<P>
    +An implementation of a canvas that uses VML for painting.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#document">document</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the HTML document that represents the canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#DEFAULT_IMAGEBASEPATH">DEFAULT_IMAGEBASEPATH</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#drawLabels">drawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageBasePath">imageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#imageCache">imageCache</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#PRESERVE_IMAGE_ASPECT">PRESERVE_IMAGE_ASPECT</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#scale">scale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#translate">translate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#mxVmlCanvas()">mxVmlCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new VML canvas for the specified dimension and scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#mxVmlCanvas(org.w3c.dom.Document)">mxVmlCanvas</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new VML canvas for the specified bounds, scale and
    + background color.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#appendVmlElement(org.w3c.dom.Element)">appendVmlElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#drawLine(java.util.List, java.util.Map)">drawLine</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given lines as segments between all points of the given list
    + of mxPoints.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#drawShape(int, int, int, int, java.util.Map)">drawShape</A></B>(int&nbsp;x,
    +          int&nbsp;y,
    +          int&nbsp;w,
    +          int&nbsp;h,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the shape specified with the STYLE_SHAPE key in the given style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#drawText(java.lang.String, int, int, int, int, java.util.Map)">drawText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +         int&nbsp;x,
    +         int&nbsp;y,
    +         int&nbsp;w,
    +         int&nbsp;h,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the specified text either using drawHtmlString or using drawString.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#getDocument()">getDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a reference to the document that represents the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html#setDocument(org.w3c.dom.Document)">setDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#flushImageCache()">flushImageCache</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageBasePath()">getImageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageForStyle(java.util.Map)">getImageForStyle</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getScale()">getScale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#getTranslate()">getTranslate</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#isDrawLabels()">isDrawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#loadImage(java.lang.String)">loadImage</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setDrawLabels(boolean)">setDrawLabels</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setImageBasePath(java.lang.String)">setImageBasePath</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setScale(double)">setScale</A>, <A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html#setTranslate(int, int)">setTranslate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="document"><!-- --></A><H3>
    +document</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>document</B></PRE>
    +<DL>
    +<DD>Holds the HTML document that represents the canvas.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxVmlCanvas()"><!-- --></A><H3>
    +mxVmlCanvas</H3>
    +<PRE>
    +public <B>mxVmlCanvas</B>()</PRE>
    +<DL>
    +<DD>Constructs a new VML canvas for the specified dimension and scale.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxVmlCanvas(org.w3c.dom.Document)"><!-- --></A><H3>
    +mxVmlCanvas</H3>
    +<PRE>
    +public <B>mxVmlCanvas</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Constructs a new VML canvas for the specified bounds, scale and
    + background color.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setDocument(org.w3c.dom.Document)"><!-- --></A><H3>
    +setDocument</H3>
    +<PRE>
    +public void <B>setDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDocument()"><!-- --></A><H3>
    +getDocument</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>getDocument</B>()</PRE>
    +<DL>
    +<DD>Returns a reference to the document that represents the canvas.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="appendVmlElement(org.w3c.dom.Element)"><!-- --></A><H3>
    +appendVmlElement</H3>
    +<PRE>
    +public void <B>appendVmlElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawCell(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +drawCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawCell</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - State of the cell to be painted.
    +<DT><B>Returns:</B><DD>Object that represents the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +drawLabel</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>drawLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                        boolean&nbsp;html)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">mxICanvas</A></CODE></B></DD>
    +<DD>Draws the given label.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>label</CODE> - String that represents the label.<DD><CODE>state</CODE> - State of the cell whose label is to be painted.<DD><CODE>html</CODE> - Specifies if the label contains HTML markup.
    +<DT><B>Returns:</B><DD>Object that represents the label.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawShape(int, int, int, int, java.util.Map)"><!-- --></A><H3>
    +drawShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>drawShape</B>(int&nbsp;x,
    +                         int&nbsp;y,
    +                         int&nbsp;w,
    +                         int&nbsp;h,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Draws the shape specified with the STYLE_SHAPE key in the given style.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - X-coordinate of the shape.<DD><CODE>y</CODE> - Y-coordinate of the shape.<DD><CODE>w</CODE> - Width of the shape.<DD><CODE>h</CODE> - Height of the shape.<DD><CODE>style</CODE> - Style of the the shape.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLine(java.util.List, java.util.Map)"><!-- --></A><H3>
    +drawLine</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>drawLine</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Draws the given lines as segments between all points of the given list
    + of mxPoints.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>pts</CODE> - List of points that define the line.<DD><CODE>style</CODE> - Style to be used for painting the line.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawText(java.lang.String, int, int, int, int, java.util.Map)"><!-- --></A><H3>
    +drawText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>drawText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                        int&nbsp;x,
    +                        int&nbsp;y,
    +                        int&nbsp;w,
    +                        int&nbsp;h,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Draws the specified text either using drawHtmlString or using drawString.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - Text to be painted.<DD><CODE>x</CODE> - X-coordinate of the text.<DD><CODE>y</CODE> - Y-coordinate of the text.<DD><CODE>w</CODE> - Width of the text.<DD><CODE>h</CODE> - Height of the text.<DD><CODE>style</CODE> - Style to be used for painting the text.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxVmlCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/mxVmlCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxVmlCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/package-frame.html b/java/docs/com/mxgraph/canvas/package-frame.html
    new file mode 100644
    index 000000000..a0c2d4eca
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/package-frame.html
    @@ -0,0 +1,57 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.canvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/canvas/package-summary.html" target="classFrame">com.mxgraph.canvas</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxICanvas.html" title="interface in com.mxgraph.canvas" target="classFrame"><I>mxICanvas</I></A>
    +<BR>
    +<A HREF="mxICanvas2D.html" title="interface in com.mxgraph.canvas" target="classFrame"><I>mxICanvas2D</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxBasicCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxBasicCanvas</A>
    +<BR>
    +<A HREF="mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxGraphics2DCanvas</A>
    +<BR>
    +<A HREF="mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas" target="classFrame">mxGraphicsCanvas2D</A>
    +<BR>
    +<A HREF="mxHtmlCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxHtmlCanvas</A>
    +<BR>
    +<A HREF="mxImageCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxImageCanvas</A>
    +<BR>
    +<A HREF="mxSvgCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxSvgCanvas</A>
    +<BR>
    +<A HREF="mxVmlCanvas.html" title="class in com.mxgraph.canvas" target="classFrame">mxVmlCanvas</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/package-summary.html b/java/docs/com/mxgraph/canvas/package-summary.html
    new file mode 100644
    index 000000000..b26ac3ad1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/package-summary.html
    @@ -0,0 +1,229 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.canvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.canvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.canvas
    +</H2>
    +This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></B></TD>
    +<TD>Defines the requirements for a canvas that paints the vertices and edges of
    + a graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></B></TD>
    +<TD>Requirements for implementing technologies:
    + 
    + - Path rendering (move, line, quad, curve, arc)
    + - Images, flip v/h, aspect, alpha (PNG, JPG, GIF)
    + - Linear gradients (in all four directions)
    + - Transparency, fill and stroke
    + - Rotation, flip v/h
    + - Font rendering
    + - Dash patterns
    + - Clipping by path (not just rectangle)
    + - Alpha gradients (for glass effect)
    + - Encode result as image (PNG, JPG)</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></B></TD>
    +<TD>An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></B></TD>
    +<TD>Used for exporting images.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A></B></TD>
    +<TD>An implementation of a canvas that uses HTML for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A></B></TD>
    +<TD>An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A></B></TD>
    +<TD>An implementation of a canvas that uses SVG for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A></B></TD>
    +<TD>An implementation of a canvas that uses VML for painting.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.canvas Description
    +</H2>
    +
    +<P>
    +This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/package-tree.html b/java/docs/com/mxgraph/canvas/package-tree.html
    new file mode 100644
    index 000000000..61add727a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/package-tree.html
    @@ -0,0 +1,165 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.canvas Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.canvas Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.canvas
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas"><B>mxBasicCanvas</B></A> (implements com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><B>mxGraphics2DCanvas</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas"><B>mxHtmlCanvas</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas"><B>mxSvgCanvas</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas"><B>mxVmlCanvas</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas"><B>mxGraphicsCanvas2D</B></A> (implements com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>)
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas"><B>mxGraphicsCanvas2D.CanvasState</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>)
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas"><B>mxImageCanvas</B></A> (implements com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>)
    +</UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><B>mxICanvas</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><B>mxICanvas2D</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/analysis/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/canvas/package-use.html b/java/docs/com/mxgraph/canvas/package-use.html
    new file mode 100644
    index 000000000..e5eef6619
    --- /dev/null
    +++ b/java/docs/com/mxgraph/canvas/package-use.html
    @@ -0,0 +1,407 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.canvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.canvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.canvas</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> used by <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxBasicCanvas.html#com.mxgraph.canvas"><B>mxBasicCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html#com.mxgraph.canvas"><B>mxGraphics2DCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxGraphicsCanvas2D.CanvasState.html#com.mxgraph.canvas"><B>mxGraphicsCanvas2D.CanvasState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxICanvas.html#com.mxgraph.canvas"><B>mxICanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a canvas that paints the vertices and edges of
    + a graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxICanvas2D.html#com.mxgraph.canvas"><B>mxICanvas2D</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Requirements for implementing technologies:
    + 
    + - Path rendering (move, line, quad, curve, arc)
    + - Images, flip v/h, aspect, alpha (PNG, JPG, GIF)
    + - Linear gradients (in all four directions)
    + - Transparency, fill and stroke
    + - Rotation, flip v/h
    + - Font rendering
    + - Dash patterns
    + - Clipping by path (not just rectangle)
    + - Alpha gradients (for glass effect)
    + - Encode result as image (PNG, JPG)</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> used by <A HREF="../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html#com.mxgraph.reader"><B>mxGraphics2DCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxICanvas.html#com.mxgraph.reader"><B>mxICanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a canvas that paints the vertices and edges of
    + a graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxICanvas2D.html#com.mxgraph.reader"><B>mxICanvas2D</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Requirements for implementing technologies:
    + 
    + - Path rendering (move, line, quad, curve, arc)
    + - Images, flip v/h, aspect, alpha (PNG, JPG, GIF)
    + - Linear gradients (in all four directions)
    + - Transparency, fill and stroke
    + - Rotation, flip v/h
    + - Font rendering
    + - Dash patterns
    + - Clipping by path (not just rectangle)
    + - Alpha gradients (for glass effect)
    + - Encode result as image (PNG, JPG)</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> used by <A HREF="../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html#com.mxgraph.shape"><B>mxGraphics2DCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxGraphicsCanvas2D.html#com.mxgraph.shape"><B>mxGraphicsCanvas2D</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used for exporting images.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> used by <A HREF="../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html#com.mxgraph.swing"><B>mxGraphics2DCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxICanvas.html#com.mxgraph.swing"><B>mxICanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a canvas that paints the vertices and edges of
    + a graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> used by <A HREF="../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html#com.mxgraph.swing.handler"><B>mxGraphics2DCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> used by <A HREF="../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxBasicCanvas.html#com.mxgraph.swing.view"><B>mxBasicCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html#com.mxgraph.swing.view"><B>mxGraphics2DCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxICanvas.html#com.mxgraph.swing.view"><B>mxICanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a canvas that paints the vertices and edges of
    + a graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> used by <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxGraphics2DCanvas.html#com.mxgraph.util"><B>mxGraphics2DCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a canvas that uses Graphics2D for painting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxICanvas.html#com.mxgraph.util"><B>mxICanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a canvas that paints the vertices and edges of
    + a graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> used by <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/canvas/class-use/mxICanvas.html#com.mxgraph.view"><B>mxICanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a canvas that paints the vertices and edges of
    + a graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/canvas/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxCellCodec.html b/java/docs/com/mxgraph/io/class-use/mxCellCodec.html
    new file mode 100644
    index 000000000..bd3510e91
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxCellCodec.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxCellCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxCellCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxCellCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxCellCodec</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxCellCodec
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxCellCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxChildChangeCodec.html b/java/docs/com/mxgraph/io/class-use/mxChildChangeCodec.html
    new file mode 100644
    index 000000000..8702d8fc6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxChildChangeCodec.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxChildChangeCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxChildChangeCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxChildChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxChildChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxChildChangeCodec</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxChildChangeCodec
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxChildChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxChildChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxCodec.html b/java/docs/com/mxgraph/io/class-use/mxCodec.html
    new file mode 100644
    index 000000000..db3f646bd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxCodec.html
    @@ -0,0 +1,564 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxCodec</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A> in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with parameters of type <A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxTerminalChangeCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxTerminalChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRootChangeCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxRootChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGenericChangeCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxGenericChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxChildChangeCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxChildChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the object after decoding.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxCellCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes an mxCell and wraps the XML up inside the
    + XML of the user object (inversion).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRootChangeCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxRootChangeCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxChildChangeCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxChildChangeCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the node for the given object after
    + encoding and return the post-processed node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxCellCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes an mxCell and uses the enclosing XML node as
    + the user object for the cell (inversion).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRootChangeCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxRootChangeCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the cells into the graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxModelCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxModelCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the cells into the graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxChildChangeCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxChildChangeCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the cells into the graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to pre-process the node for the specified object
    + and return the node to be used for further processing by
    + <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>mxObjectCodec.decode(mxCodec, Node)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">beforeEncode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to pre-process the object before encoding.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)">decode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the given node into the object or returns a new object
    + representing the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStylesheetCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxStylesheetCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes the given mxStylesheet.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the given node into the object or returns a new object
    + representing the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttribute</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;attr,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the given attribute into the specified object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttributes</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes all attributes of the given node using decodeAttribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChild</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;child,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the specified child into the given object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChildren</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodec all children of the given node using decodeChild.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeNode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calls decodeAttributes and decodeChildren for the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStylesheetCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxStylesheetCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the given mxStylesheet.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the specified object and returns a node representing then given
    + object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeElements</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the child objects of arrays, maps and collections.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeFields</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the declared fields of the given object into the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxModelCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxModelCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the given mxGraphModel by writing a (flat) XML sequence
    + of cell nodes as produced by the mxCellCodec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the value of each member in then given obj
    + into the given node using <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><CODE>mxObjectCodec.encodeFields(mxCodec, Object, Node)</CODE></A>
    + and <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><CODE>mxObjectCodec.encodeElements(mxCodec, Object, Node)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">encodeValue</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts the given value according to the mappings
    + and id-refs in this codec and uses
    + <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><CODE>mxObjectCodec.writeAttribute(mxCodec, Object, String, Object, Node)</CODE></A>
    + to write the attribute into the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">processInclude</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given node is an include directive and executes the
    + include by decoding the XML document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeAttribute</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the given value into node using writePrimitiveAttribute
    + or writeComplexAttribute depending on the type of the value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeComplexAttribute</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the given value as a child node of the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxObjectCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writePrimitiveAttribute</A></B>(<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the given value as an attribute of the given node.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A> in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> declared as <A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSharedGraphModel.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html#codec">codec</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxCodecRegistry.html b/java/docs/com/mxgraph/io/class-use/mxCodecRegistry.html
    new file mode 100644
    index 000000000..139686ff6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxCodecRegistry.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxCodecRegistry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxCodecRegistry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxCodecRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCodecRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxCodecRegistry</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxCodecRegistry
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxCodecRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCodecRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxGdCodec.html b/java/docs/com/mxgraph/io/class-use/mxGdCodec.html
    new file mode 100644
    index 000000000..fa217c43a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxGdCodec.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxGdCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxGdCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxGdCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxGdCodec</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxGdCodec
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxGdCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxGenericChangeCodec.html b/java/docs/com/mxgraph/io/class-use/mxGenericChangeCodec.html
    new file mode 100644
    index 000000000..5b3a665ba
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxGenericChangeCodec.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxGenericChangeCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxGenericChangeCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxGenericChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGenericChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxGenericChangeCodec</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxGenericChangeCodec
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxGenericChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGenericChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxGraphMlCodec.html b/java/docs/com/mxgraph/io/class-use/mxGraphMlCodec.html
    new file mode 100644
    index 000000000..37852893a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxGraphMlCodec.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxGraphMlCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxGraphMlCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxGraphMlCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxGraphMlCodec</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxGraphMlCodec
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxGraphMlCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxModelCodec.html b/java/docs/com/mxgraph/io/class-use/mxModelCodec.html
    new file mode 100644
    index 000000000..1d868e6d9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxModelCodec.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxModelCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxModelCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxModelCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxModelCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxModelCodec</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxModelCodec
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxModelCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxModelCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxObjectCodec.html b/java/docs/com/mxgraph/io/class-use/mxObjectCodec.html
    new file mode 100644
    index 000000000..4d23bc630
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxObjectCodec.html
    @@ -0,0 +1,288 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxObjectCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxObjectCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxObjectCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxObjectCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxObjectCodec</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A> in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A> in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Codec for mxCells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Codec for mxChildChanges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io">mxGenericChangeCodec</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Codec for mxChildChanges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io">mxModelCodec</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Codec for mxGraphModels.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io">mxRootChangeCodec</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Codec for mxChildChanges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Codec for mxStylesheets.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io">mxTerminalChangeCodec</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Codec for mxChildChanges.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with type parameters of type <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCodecRegistry.</B><B><A HREF="../../../../com/mxgraph/io/mxCodecRegistry.html#codecs">codecs</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from constructor names to codecs.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> that return <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCodecRegistry.</B><B><A HREF="../../../../com/mxgraph/io/mxCodecRegistry.html#getCodec(java.lang.String)">getCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a codec that handles the given object, which can be an object
    + instance or an XML node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCodecRegistry.</B><B><A HREF="../../../../com/mxgraph/io/mxCodecRegistry.html#register(com.mxgraph.io.mxObjectCodec)">register</A></B>(<A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>&nbsp;codec)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers a new codec and associates the name of the template constructor
    + in the codec with the codec object.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with parameters of type <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCodecRegistry.</B><B><A HREF="../../../../com/mxgraph/io/mxCodecRegistry.html#register(com.mxgraph.io.mxObjectCodec)">register</A></B>(<A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>&nbsp;codec)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers a new codec and associates the name of the template constructor
    + in the codec with the codec object.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxObjectCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxObjectCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxRootChangeCodec.html b/java/docs/com/mxgraph/io/class-use/mxRootChangeCodec.html
    new file mode 100644
    index 000000000..9ced3959e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxRootChangeCodec.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxRootChangeCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxRootChangeCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxRootChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRootChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxRootChangeCodec</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxRootChangeCodec
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxRootChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRootChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxStylesheetCodec.html b/java/docs/com/mxgraph/io/class-use/mxStylesheetCodec.html
    new file mode 100644
    index 000000000..b9280eed4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxStylesheetCodec.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxStylesheetCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxStylesheetCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxStylesheetCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStylesheetCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxStylesheetCodec</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxStylesheetCodec
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxStylesheetCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStylesheetCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/class-use/mxTerminalChangeCodec.html b/java/docs/com/mxgraph/io/class-use/mxTerminalChangeCodec.html
    new file mode 100644
    index 000000000..8f96b1110
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/class-use/mxTerminalChangeCodec.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.mxTerminalChangeCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.mxTerminalChangeCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxTerminalChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTerminalChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.mxTerminalChangeCodec</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.mxTerminalChangeCodec
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io//class-usemxTerminalChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTerminalChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/class-use/mxGdDocument.html b/java/docs/com/mxgraph/io/gd/class-use/mxGdDocument.html
    new file mode 100644
    index 000000000..ff84a2d95
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/class-use/mxGdDocument.html
    @@ -0,0 +1,198 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.gd.mxGdDocument (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.gd.mxGdDocument (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/gd//class-usemxGdDocument.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdDocument.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.gd.mxGdDocument</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A> in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> that return <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGdCodec.</B><B><A HREF="../../../../../com/mxgraph/io/mxGdCodec.html#encode(com.mxgraph.view.mxGraph)">encode</A></B>(<A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a GD document with the cells in the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGdCodec.</B><B><A HREF="../../../../../com/mxgraph/io/mxGdCodec.html#decode(com.mxgraph.io.gd.mxGdDocument, com.mxgraph.view.mxGraph)">decode</A></B>(<A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>&nbsp;document,
    +       <A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Recieves a mxGDDocument document and parses it generating a new graph that is inserted in graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/gd//class-usemxGdDocument.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdDocument.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/class-use/mxGdDocument.mxGDParseState.html b/java/docs/com/mxgraph/io/gd/class-use/mxGdDocument.mxGDParseState.html
    new file mode 100644
    index 000000000..780910e7b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/class-use/mxGdDocument.mxGDParseState.html
    @@ -0,0 +1,190 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.gd.mxGdDocument.mxGDParseState (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.gd.mxGdDocument.mxGDParseState (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/gd//class-usemxGdDocument.mxGDParseState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdDocument.mxGDParseState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.gd.mxGdDocument.mxGDParseState</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.gd"><B>com.mxgraph.io.gd</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.gd"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A> in <A HREF="../../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> that return <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGdDocument.mxGDParseState.</B><B><A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html#valueOf(java.lang.String)">valueOf</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGdDocument.mxGDParseState.</B><B><A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html#values()">values</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
    +the order they are declared.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/gd//class-usemxGdDocument.mxGDParseState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdDocument.mxGDParseState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/class-use/mxGdEdge.html b/java/docs/com/mxgraph/io/gd/class-use/mxGdEdge.html
    new file mode 100644
    index 000000000..1f26c1adc
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/class-use/mxGdEdge.html
    @@ -0,0 +1,197 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.gd.mxGdEdge (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.gd.mxGdEdge (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/gd//class-usemxGdEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.gd.mxGdEdge</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.gd"><B>com.mxgraph.io.gd</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.gd"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A> in <A HREF="../../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> that return types with arguments of type <A HREF="../../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGdDocument.</B><B><A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html#getEdges()">getEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> with type arguments of type <A HREF="../../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGdDocument.</B><B><A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html#setEdges(java.util.List)">setEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>&gt;&nbsp;edges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/gd//class-usemxGdEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/class-use/mxGdNode.html b/java/docs/com/mxgraph/io/gd/class-use/mxGdNode.html
    new file mode 100644
    index 000000000..e0a913ef5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/class-use/mxGdNode.html
    @@ -0,0 +1,197 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.gd.mxGdNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.gd.mxGdNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/gd//class-usemxGdNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.gd.mxGdNode</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.gd"><B>com.mxgraph.io.gd</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.gd"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A> in <A HREF="../../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> that return types with arguments of type <A HREF="../../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGdDocument.</B><B><A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html#getNodes()">getNodes</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> with type arguments of type <A HREF="../../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGdDocument.</B><B><A HREF="../../../../../com/mxgraph/io/gd/mxGdDocument.html#setNodes(java.util.List)">setNodes</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>&gt;&nbsp;nodes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/gd//class-usemxGdNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/mxGdDocument.html b/java/docs/com/mxgraph/io/gd/mxGdDocument.html
    new file mode 100644
    index 000000000..3cd933439
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/mxGdDocument.html
    @@ -0,0 +1,377 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGdDocument (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGdDocument (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdDocument.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/mxGdDocument.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdDocument.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.gd</FONT>
    +<BR>
    +Class mxGdDocument</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.gd.mxGdDocument</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGdDocument</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +This class is a representation of a GD file.<br/>
    + Allows access to the nodes and edges of the graph.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the different states in the parse of a file.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html#mxGdDocument()">mxGdDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html#getDocumentString()">getDocumentString</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html#getEdges()">getEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html#getNodes()">getNodes</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html#parse(java.lang.String)">parse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;gd)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the String with the file content and loads into the document,
    + the data of nodes and edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html#setEdges(java.util.List)">setEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>&gt;&nbsp;edges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html#setNodes(java.util.List)">setNodes</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>&gt;&nbsp;nodes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGdDocument()"><!-- --></A><H3>
    +mxGdDocument</H3>
    +<PRE>
    +public <B>mxGdDocument</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getEdges()"><!-- --></A><H3>
    +getEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>&gt; <B>getEdges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the list of edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodes()"><!-- --></A><H3>
    +getNodes</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>&gt; <B>getNodes</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the list of nodes.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdges(java.util.List)"><!-- --></A><H3>
    +setEdges</H3>
    +<PRE>
    +public void <B>setEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>&gt;&nbsp;edges)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setNodes(java.util.List)"><!-- --></A><H3>
    +setNodes</H3>
    +<PRE>
    +public void <B>setNodes</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>&gt;&nbsp;nodes)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parse(java.lang.String)"><!-- --></A><H3>
    +parse</H3>
    +<PRE>
    +public void <B>parse</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;gd)</PRE>
    +<DL>
    +<DD>Parses the String with the file content and loads into the document,
    + the data of nodes and edges.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>gd</CODE> - String with the file content.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDocumentString()"><!-- --></A><H3>
    +getDocumentString</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDocumentString</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the String representation of the document.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdDocument.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/mxGdDocument.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdDocument.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html b/java/docs/com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html
    new file mode 100644
    index 000000000..08b7dae58
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html
    @@ -0,0 +1,346 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGdDocument.mxGDParseState (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGdDocument.mxGDParseState (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdDocument.mxGDParseState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdDocument.mxGDParseState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.gd</FONT>
    +<BR>
    +Enum mxGdDocument.mxGDParseState</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A>&gt;
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.gd.mxGdDocument.mxGDParseState</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A>&gt;</DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static enum <B>mxGdDocument.mxGDParseState</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</A>&lt;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A>&gt;</DL>
    +</PRE>
    +
    +<P>
    +Represents the different states in the parse of a file.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== ENUM CONSTANT SUMMARY =========== -->
    +
    +<A NAME="enum_constant_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Enum Constant Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html#PARSING_EDGES">PARSING_EDGES</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html#PARSING_NODES">PARSING_NODES</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html#START">START</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html#valueOf(java.lang.String)">valueOf</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html#values()">values</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
    +the order they are declared.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang">compareTo</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang">getDeclaringClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang">name</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang">ordinal</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class, java.lang.String)" title="class or interface in java.lang">valueOf</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ ENUM CONSTANT DETAIL =========== -->
    +
    +<A NAME="enum_constant_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Enum Constant Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="START"><!-- --></A><H3>
    +START</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A> <B>START</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PARSING_NODES"><!-- --></A><H3>
    +PARSING_NODES</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A> <B>PARSING_NODES</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PARSING_EDGES"><!-- --></A><H3>
    +PARSING_EDGES</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A> <B>PARSING_EDGES</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="values()"><!-- --></A><H3>
    +values</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A>[] <B>values</B>()</PRE>
    +<DL>
    +<DD>Returns an array containing the constants of this enum type, in
    +the order they are declared.  This method may be used to iterate
    +over the constants as follows:
    +<pre>
    +for (mxGdDocument.mxGDParseState c : mxGdDocument.mxGDParseState.values())
    +&nbsp;   System.out.println(c);
    +</pre>
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
    +the order they are declared</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
    +valueOf</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A> <B>valueOf</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Returns the enum constant of this type with the specified name.
    +The string must match <I>exactly</I> an identifier used to declare an
    +enum constant in this type.  (Extraneous whitespace characters are 
    +not permitted.)
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
    +<DT><B>Returns:</B><DD>the enum constant with the specified name
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if this enum type has no constant
    +with the specified name
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</A></CODE> - if the argument is null</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdDocument.mxGDParseState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdDocument.mxGDParseState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/mxGdEdge.html b/java/docs/com/mxgraph/io/gd/mxGdEdge.html
    new file mode 100644
    index 000000000..a6bb1f3e1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/mxGdEdge.html
    @@ -0,0 +1,335 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGdEdge (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGdEdge (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdEdge.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/mxGdEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.gd</FONT>
    +<BR>
    +Class mxGdEdge</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.gd.mxGdEdge</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGdEdge</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Represents an Edge entry in the file.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html#mxGdEdge(java.lang.String, java.lang.String)">mxGdEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;sourceName,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;targetName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html#getEdgeString()">getEdgeString</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html#getSourceName()">getSourceName</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html#getTargetName()">getTargetName</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html#setSourceName(java.lang.String)">setSourceName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;sourceName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html#setTargetName(java.lang.String)">setTargetName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;targetName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGdEdge(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +mxGdEdge</H3>
    +<PRE>
    +public <B>mxGdEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;sourceName,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;targetName)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getSourceName()"><!-- --></A><H3>
    +getSourceName</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getSourceName</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSourceName(java.lang.String)"><!-- --></A><H3>
    +setSourceName</H3>
    +<PRE>
    +public void <B>setSourceName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;sourceName)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTargetName()"><!-- --></A><H3>
    +getTargetName</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getTargetName</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTargetName(java.lang.String)"><!-- --></A><H3>
    +setTargetName</H3>
    +<PRE>
    +public void <B>setTargetName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;targetName)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeString()"><!-- --></A><H3>
    +getEdgeString</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeString</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdEdge.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/mxGdEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/mxGdNode.html b/java/docs/com/mxgraph/io/gd/mxGdNode.html
    new file mode 100644
    index 000000000..8d463cb4a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/mxGdNode.html
    @@ -0,0 +1,375 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGdNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGdNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/mxGdNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.gd</FONT>
    +<BR>
    +Class mxGdNode</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.gd.mxGdNode</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGdNode</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Represents a Node entry in the file.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#mxGdNode(java.lang.String, com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)">mxGdNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +         <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;coordinates,
    +         <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;dimentions)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#getCoordinates()">getCoordinates</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#getDimentions()">getDimentions</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#getName()">getName</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#getNodeString()">getNodeString</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#setCoordinates(com.mxgraph.util.mxPoint)">setCoordinates</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;coordinates)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#setDimentions(com.mxgraph.util.mxPoint)">setDimentions</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;dimentions)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#setName(java.lang.String)">setName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGdNode(java.lang.String, com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +mxGdNode</H3>
    +<PRE>
    +public <B>mxGdNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;coordinates,
    +                <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;dimentions)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getCoordinates()"><!-- --></A><H3>
    +getCoordinates</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getCoordinates</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCoordinates(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setCoordinates</H3>
    +<PRE>
    +public void <B>setCoordinates</B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;coordinates)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDimentions()"><!-- --></A><H3>
    +getDimentions</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getDimentions</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDimentions(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setDimentions</H3>
    +<PRE>
    +public void <B>setDimentions</B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;dimentions)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getName()"><!-- --></A><H3>
    +getName</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getName</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setName(java.lang.String)"><!-- --></A><H3>
    +setName</H3>
    +<PRE>
    +public void <B>setName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodeString()"><!-- --></A><H3>
    +getNodeString</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getNodeString</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/mxGdNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/package-frame.html b/java/docs/com/mxgraph/io/gd/package-frame.html
    new file mode 100644
    index 000000000..962dfc369
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/package-frame.html
    @@ -0,0 +1,47 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.io.gd (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../com/mxgraph/io/gd/package-summary.html" target="classFrame">com.mxgraph.io.gd</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxGdDocument.html" title="class in com.mxgraph.io.gd" target="classFrame">mxGdDocument</A>
    +<BR>
    +<A HREF="mxGdEdge.html" title="class in com.mxgraph.io.gd" target="classFrame">mxGdEdge</A>
    +<BR>
    +<A HREF="mxGdNode.html" title="class in com.mxgraph.io.gd" target="classFrame">mxGdNode</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Enums</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd" target="classFrame">mxGdDocument.mxGDParseState</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/package-summary.html b/java/docs/com/mxgraph/io/gd/package-summary.html
    new file mode 100644
    index 000000000..f9887f5b3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/package-summary.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.io.gd (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.io.gd (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.io.gd
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A></B></TD>
    +<TD>This class is a representation of a GD file.<br/>
    + Allows access to the nodes and edges of the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A></B></TD>
    +<TD>Represents an Edge entry in the file.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A></B></TD>
    +<TD>Represents a Node entry in the file.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Enum Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A></B></TD>
    +<TD>Represents the different states in the parse of a file.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/package-tree.html b/java/docs/com/mxgraph/io/gd/package-tree.html
    new file mode 100644
    index 000000000..4938ebe2c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/package-tree.html
    @@ -0,0 +1,164 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.io.gd Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.io.gd Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.io.gd
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.io.gd.<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd"><B>mxGdDocument</B></A><LI TYPE="circle">com.mxgraph.io.gd.<A HREF="../../../../com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd"><B>mxGdEdge</B></A><LI TYPE="circle">com.mxgraph.io.gd.<A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd"><B>mxGdNode</B></A></UL>
    +</UL>
    +<H2>
    +Enum Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><B>Enum</B></A>&lt;E&gt; (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;T&gt;, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.io.gd.<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd"><B>mxGdDocument.mxGDParseState</B></A></UL>
    +</UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/gd/package-use.html b/java/docs/com/mxgraph/io/gd/package-use.html
    new file mode 100644
    index 000000000..3f405ef6b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/gd/package-use.html
    @@ -0,0 +1,203 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.io.gd (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.io.gd (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.io.gd</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.gd"><B>com.mxgraph.io.gd</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> used by <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/gd/class-use/mxGdDocument.html#com.mxgraph.io"><B>mxGdDocument</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class is a representation of a GD file.<br/>
    + Allows access to the nodes and edges of the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.gd"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> used by <A HREF="../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/gd/class-use/mxGdDocument.mxGDParseState.html#com.mxgraph.io.gd"><B>mxGdDocument.mxGDParseState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the different states in the parse of a file.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/gd/class-use/mxGdEdge.html#com.mxgraph.io.gd"><B>mxGdEdge</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents an Edge entry in the file.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/gd/class-use/mxGdNode.html#com.mxgraph.io.gd"><B>mxGdNode</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Node entry in the file.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/gd/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlConstants.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlConstants.html
    new file mode 100644
    index 000000000..aa9c12ab3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlConstants.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlConstants (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlConstants (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlConstants</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.graphml.mxGraphMlConstants
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlData.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlData.html
    new file mode 100644
    index 000000000..9caa9bdd1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlData.html
    @@ -0,0 +1,310 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlData (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlData (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlData</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#dataEdgeKey(com.mxgraph.io.graphml.mxGraphMlEdge)">dataEdgeKey</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the data element inside the edge that references to the key element
    + with name = KEY_EDGE_NAME.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#dataNodeKey(com.mxgraph.io.graphml.mxGraphMlNode)">dataNodeKey</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the data element inside the node that references to the key element
    + with name = KEY_NODE_NAME.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlEdge.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeData()">getEdgeData</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlNode.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeData()">getNodeData</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return types with arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlEdge.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeDataMap()">getEdgeDataMap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlNode.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeDataMap()">getNodeDataMap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlPort.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html#getPortDataMap()">getPortDataMap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlEdge.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeData(com.mxgraph.io.graphml.mxGraphMlData)">setEdgeData</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&nbsp;egdeData)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlNode.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeData(com.mxgraph.io.graphml.mxGraphMlData)">setNodeData</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&nbsp;nodeData)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with type arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlEdge.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeDataMap(java.util.HashMap)">setEdgeDataMap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;&nbsp;nodeEdgeMap)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlNode.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeDataMap(java.util.HashMap)">setNodeDataMap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;&nbsp;nodeDataMap)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlPort.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html#setPortDataMap(java.util.HashMap)">setPortDataMap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;&nbsp;nodeDataMap)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#mxGraphMlNode(java.lang.String, com.mxgraph.io.graphml.mxGraphMlData)">mxGraphMlNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;nodeId,
    +              <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&nbsp;nodeData)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a node with Id and one data element</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlEdge.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlEdge.html
    new file mode 100644
    index 000000000..687833071
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlEdge.html
    @@ -0,0 +1,244 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlEdge (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlEdge (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlEdge</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A> in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../../com/mxgraph/io/mxGraphMlCodec.html#addEdgeData(com.mxgraph.io.graphml.mxGraphMlEdge, com.mxgraph.model.mxCell)">addEdgeData</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&nbsp;gmlEdge,
    +            <A HREF="../../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>&nbsp;v)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the edge data in the gmlEdge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return types with arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#getEdges()">getEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#dataEdgeKey(com.mxgraph.io.graphml.mxGraphMlEdge)">dataEdgeKey</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the data element inside the edge that references to the key element
    + with name = KEY_EDGE_NAME.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with type arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#setEdges(java.util.List)">setEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&gt;&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlGraph.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlGraph.html
    new file mode 100644
    index 000000000..e508b096e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlGraph.html
    @@ -0,0 +1,254 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlGraph (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlGraph (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlGraph.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlGraph.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlGraph</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A> in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> that return <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../../com/mxgraph/io/mxGraphMlCodec.html#decodeGraph(com.mxgraph.view.mxGraph, java.lang.Object, com.mxgraph.io.graphml.mxGraphMlGraph)">decodeGraph</A></B>(<A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +            <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&nbsp;gmlGraph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Gml graph with the data of the vertexes and edges in the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../../com/mxgraph/io/mxGraphMlCodec.html#decodeGraph(com.mxgraph.view.mxGraph, java.lang.Object, com.mxgraph.io.graphml.mxGraphMlGraph)">decodeGraph</A></B>(<A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +            <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&nbsp;gmlGraph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Gml graph with the data of the vertexes and edges in the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../../com/mxgraph/io/mxGraphMlCodec.html#encodeXML(com.mxgraph.io.graphml.mxGraphMlGraph)">encodeXML</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&nbsp;gmlGraph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Xml document with the gmlGraph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return types with arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlNode.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeGraph()">getNodeGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with type arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlNode.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeGraph(java.util.List)">setNodeGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&gt;&nbsp;nodeGraph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlGraph.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlGraph.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKey.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKey.html
    new file mode 100644
    index 000000000..3bbac1f96
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKey.html
    @@ -0,0 +1,197 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlKey (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlKey (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlKey.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlKey</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return types with arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKeyManager.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html#getKeyMap()">getKeyMap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with type arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKeyManager.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html#setKeyMap(java.util.HashMap)">setKeyMap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>&gt;&nbsp;keyMap)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlKey.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKey.keyForValues.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKey.keyForValues.html
    new file mode 100644
    index 000000000..e05fd104e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKey.keyForValues.html
    @@ -0,0 +1,249 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlKey.keyForValues (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlKey.keyForValues (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlKey.keyForValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.keyForValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlKey.keyForValues</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#enumForValue(java.lang.String)">enumForValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a String value in its corresponding enum value for the
    + keyFor attribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyFor()">getKeyFor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.keyForValues.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#valueOf(java.lang.String)">valueOf</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.keyForValues.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#values()">values</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
    +the order they are declared.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyFor(com.mxgraph.io.graphml.mxGraphMlKey.keyForValues)">setKeyFor</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;keyFor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#stringForValue(com.mxgraph.io.graphml.mxGraphMlKey.keyForValues)">stringForValue</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a enum value in its corresponding String value for the
    + keyFor attribute.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#mxGraphMlKey(java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyForValues, java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)">mxGraphMlKey</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyId,
    +             <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;keyFor,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyName,
    +             <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;keyType)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a key with the given parameters.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlKey.keyForValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.keyForValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKey.keyTypeValues.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKey.keyTypeValues.html
    new file mode 100644
    index 000000000..60097611d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKey.keyTypeValues.html
    @@ -0,0 +1,249 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlKey.keyTypeValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.keyTypeValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#enumTypeValue(java.lang.String)">enumTypeValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a String value in its corresponding enum value for the
    + keyType attribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyType()">getKeyType</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.keyTypeValues.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#valueOf(java.lang.String)">valueOf</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.keyTypeValues.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#values()">values</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
    +the order they are declared.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyType(com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)">setKeyType</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;keyType)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKey.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#stringTypeValue(com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)">stringTypeValue</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a enum value in its corresponding string value for the
    + keyType attribute.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#mxGraphMlKey(java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyForValues, java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)">mxGraphMlKey</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyId,
    +             <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;keyFor,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyName,
    +             <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;keyType)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a key with the given parameters.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlKey.keyTypeValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.keyTypeValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKeyManager.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKeyManager.html
    new file mode 100644
    index 000000000..43a16d7c4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlKeyManager.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlKeyManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlKeyManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlKeyManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKeyManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlKeyManager</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlKeyManager.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html#getInstance()">getInstance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the instance of mxGmlKeyManager.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlKeyManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKeyManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlNode.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlNode.html
    new file mode 100644
    index 000000000..01fb04af4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlNode.html
    @@ -0,0 +1,252 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlNode</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A> in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../../com/mxgraph/io/mxGraphMlCodec.html#addNodeData(com.mxgraph.io.graphml.mxGraphMlNode, com.mxgraph.model.mxCell)">addNodeData</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;gmlNode,
    +            <A HREF="../../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>&nbsp;v)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the node data in the gmlNode.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return types with arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#getNodes()">getNodes</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#dataNodeKey(com.mxgraph.io.graphml.mxGraphMlNode)">dataNodeKey</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the data element inside the node that references to the key element
    + with name = KEY_NODE_NAME.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#hasData(com.mxgraph.io.graphml.mxGraphMlNode)">hasData</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the node has data elements inside.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with type arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#setNodes(java.util.List)">setNodes</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&gt;&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlPort.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlPort.html
    new file mode 100644
    index 000000000..0ad2ef7cd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlPort.html
    @@ -0,0 +1,197 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlPort (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlPort (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlPort</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return types with arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlNode.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#getNodePort()">getNodePort</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with type arguments of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlNode.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#setNodePort(java.util.HashMap)">setNodePort</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>&gt;&nbsp;nodePort)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlShapeEdge.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlShapeEdge.html
    new file mode 100644
    index 000000000..4b7598bb2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlShapeEdge.html
    @@ -0,0 +1,215 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlShapeEdge (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlShapeEdge (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlShapeEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlShapeEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlShapeEdge</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlData.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html#getDataShapeEdge()">getDataShapeEdge</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlData.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html#setDataShapeEdge(com.mxgraph.io.graphml.mxGraphMlShapeEdge)">setDataShapeEdge</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>&nbsp;dataShapeEdge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html#mxGraphMlData(java.lang.String, java.lang.String, java.lang.String, com.mxgraph.io.graphml.mxGraphMlShapeEdge, com.mxgraph.io.graphml.mxGraphMlShapeNode)">mxGraphMlData</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataId,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataKey,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataValue,
    +              <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>&nbsp;dataShapeEdge,
    +              <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>&nbsp;dataShapeNode)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a data with the params values.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlShapeEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlShapeEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlShapeNode.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlShapeNode.html
    new file mode 100644
    index 000000000..a5ce56ad5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlShapeNode.html
    @@ -0,0 +1,215 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlShapeNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlShapeNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlShapeNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlShapeNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlShapeNode</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A> in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> that return <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlData.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html#getDataShapeNode()">getDataShapeNode</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlData.</B><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html#setDataShapeNode(com.mxgraph.io.graphml.mxGraphMlShapeNode)">setDataShapeNode</A></B>(<A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>&nbsp;dataShapeNode)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlData.html#mxGraphMlData(java.lang.String, java.lang.String, java.lang.String, com.mxgraph.io.graphml.mxGraphMlShapeEdge, com.mxgraph.io.graphml.mxGraphMlShapeNode)">mxGraphMlData</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataId,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataKey,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataValue,
    +              <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>&nbsp;dataShapeEdge,
    +              <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>&nbsp;dataShapeNode)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a data with the params values.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlShapeNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlShapeNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlUtils.html b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlUtils.html
    new file mode 100644
    index 000000000..bf8e4ed64
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/class-use/mxGraphMlUtils.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.io.graphml.mxGraphMlUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.io.graphml.mxGraphMlUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.io.graphml.mxGraphMlUtils</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.io.graphml.mxGraphMlUtils
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/io/graphml//class-usemxGraphMlUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlConstants.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlConstants.html
    new file mode 100644
    index 000000000..cbeb96ec0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlConstants.html
    @@ -0,0 +1,1021 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlConstants (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlConstants (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlConstants</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlConstants</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlConstants</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +This class contains constants used in the Import of gml documents.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#ALL">ALL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#DATA">DATA</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE">EDGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_DEFAULT">EDGE_DEFAULT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_DIRECTED">EDGE_DIRECTED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_SOURCE">EDGE_SOURCE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_SOURCE_PORT">EDGE_SOURCE_PORT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_TARGET">EDGE_TARGET</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_TARGET_PORT">EDGE_TARGET_PORT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_UNDIRECTED">EDGE_UNDIRECTED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#ENDPOINT">ENDPOINT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#FILL">FILL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#GEOMETRY">GEOMETRY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#GRAPH">GRAPH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#GRAPHML">GRAPHML</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#HEIGHT">HEIGHT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#HYPEREDGE">HYPEREDGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#ID">ID</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#JGRAPH">JGRAPH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#JGRAPH_URL">JGRAPH_URL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY">KEY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_EDGE_ID">KEY_EDGE_ID</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_EDGE_NAME">KEY_EDGE_NAME</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_FOR">KEY_FOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_NAME">KEY_NAME</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_NODE_ID">KEY_NODE_ID</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_NODE_NAME">KEY_NODE_NAME</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_TYPE">KEY_TYPE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#LABEL">LABEL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#NODE">NODE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#PORT">PORT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#PORT_NAME">PORT_NAME</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#PROPERTIES">PROPERTIES</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#SHAPE">SHAPE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#SHAPEEDGE">SHAPEEDGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#SHAPENODE">SHAPENODE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#SOURCETARGET">SOURCETARGET</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#STYLE">STYLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#TEXT">TEXT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#TYPE">TYPE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#WIDTH">WIDTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#X">X</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#Y">Y</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html#mxGraphMlConstants()">mxGraphMlConstants</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="ID"><!-- --></A><H3>
    +ID</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ID</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="KEY_FOR"><!-- --></A><H3>
    +KEY_FOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>KEY_FOR</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="KEY_NAME"><!-- --></A><H3>
    +KEY_NAME</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>KEY_NAME</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="KEY_TYPE"><!-- --></A><H3>
    +KEY_TYPE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>KEY_TYPE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="GRAPH"><!-- --></A><H3>
    +GRAPH</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>GRAPH</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="GRAPHML"><!-- --></A><H3>
    +GRAPHML</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>GRAPHML</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="NODE"><!-- --></A><H3>
    +NODE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>NODE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE"><!-- --></A><H3>
    +EDGE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="HYPEREDGE"><!-- --></A><H3>
    +HYPEREDGE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>HYPEREDGE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PORT"><!-- --></A><H3>
    +PORT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PORT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ENDPOINT"><!-- --></A><H3>
    +ENDPOINT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ENDPOINT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="KEY"><!-- --></A><H3>
    +KEY</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>KEY</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DATA"><!-- --></A><H3>
    +DATA</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DATA</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ALL"><!-- --></A><H3>
    +ALL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ALL</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE_SOURCE"><!-- --></A><H3>
    +EDGE_SOURCE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGE_SOURCE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE_SOURCE_PORT"><!-- --></A><H3>
    +EDGE_SOURCE_PORT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGE_SOURCE_PORT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE_TARGET"><!-- --></A><H3>
    +EDGE_TARGET</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGE_TARGET</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE_TARGET_PORT"><!-- --></A><H3>
    +EDGE_TARGET_PORT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGE_TARGET_PORT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE_DIRECTED"><!-- --></A><H3>
    +EDGE_DIRECTED</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGE_DIRECTED</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE_UNDIRECTED"><!-- --></A><H3>
    +EDGE_UNDIRECTED</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGE_UNDIRECTED</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE_DEFAULT"><!-- --></A><H3>
    +EDGE_DEFAULT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGE_DEFAULT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PORT_NAME"><!-- --></A><H3>
    +PORT_NAME</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PORT_NAME</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="HEIGHT"><!-- --></A><H3>
    +HEIGHT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>HEIGHT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="WIDTH"><!-- --></A><H3>
    +WIDTH</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>WIDTH</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="X"><!-- --></A><H3>
    +X</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>X</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="Y"><!-- --></A><H3>
    +Y</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>Y</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="JGRAPH"><!-- --></A><H3>
    +JGRAPH</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>JGRAPH</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="GEOMETRY"><!-- --></A><H3>
    +GEOMETRY</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>GEOMETRY</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FILL"><!-- --></A><H3>
    +FILL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>FILL</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPENODE"><!-- --></A><H3>
    +SHAPENODE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPENODE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPEEDGE"><!-- --></A><H3>
    +SHAPEEDGE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPEEDGE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="JGRAPH_URL"><!-- --></A><H3>
    +JGRAPH_URL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>JGRAPH_URL</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="KEY_NODE_ID"><!-- --></A><H3>
    +KEY_NODE_ID</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>KEY_NODE_ID</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="KEY_NODE_NAME"><!-- --></A><H3>
    +KEY_NODE_NAME</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>KEY_NODE_NAME</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="KEY_EDGE_ID"><!-- --></A><H3>
    +KEY_EDGE_ID</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>KEY_EDGE_ID</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="KEY_EDGE_NAME"><!-- --></A><H3>
    +KEY_EDGE_NAME</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>KEY_EDGE_NAME</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE"><!-- --></A><H3>
    +STYLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE"><!-- --></A><H3>
    +SHAPE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TYPE"><!-- --></A><H3>
    +TYPE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>TYPE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LABEL"><!-- --></A><H3>
    +LABEL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>LABEL</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TEXT"><!-- --></A><H3>
    +TEXT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>TEXT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PROPERTIES"><!-- --></A><H3>
    +PROPERTIES</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PROPERTIES</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SOURCETARGET"><!-- --></A><H3>
    +SOURCETARGET</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SOURCETARGET</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlConstants()"><!-- --></A><H3>
    +mxGraphMlConstants</H3>
    +<PRE>
    +public <B>mxGraphMlConstants</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlData.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlData.html
    new file mode 100644
    index 000000000..261d444f2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlData.html
    @@ -0,0 +1,518 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlData (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlData (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlData.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlData</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlData</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlData</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Represents a Data element in the GML Structure.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#mxGraphMlData()">mxGraphMlData</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct an empty data.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#mxGraphMlData(org.w3c.dom.Element)">mxGraphMlData</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;dataElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a data from one xml data element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#mxGraphMlData(java.lang.String, java.lang.String, java.lang.String, com.mxgraph.io.graphml.mxGraphMlShapeEdge, com.mxgraph.io.graphml.mxGraphMlShapeNode)">mxGraphMlData</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataId,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataKey,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataValue,
    +              <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>&nbsp;dataShapeEdge,
    +              <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>&nbsp;dataShapeNode)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a data with the params values.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#generateEdgeElement(org.w3c.dom.Document)">generateEdgeElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates an Edge Data Element from this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#generateNodeElement(org.w3c.dom.Document)">generateNodeElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates an Node Data Element from this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#getDataId()">getDataId</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#getDataKey()">getDataKey</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#getDataShapeEdge()">getDataShapeEdge</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#getDataShapeNode()">getDataShapeNode</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#getDataValue()">getDataValue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#setDataId(java.lang.String)">setDataId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataId)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#setDataKey(java.lang.String)">setDataKey</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataKey)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#setDataShapeEdge(com.mxgraph.io.graphml.mxGraphMlShapeEdge)">setDataShapeEdge</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>&nbsp;dataShapeEdge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#setDataShapeNode(com.mxgraph.io.graphml.mxGraphMlShapeNode)">setDataShapeNode</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>&nbsp;dataShapeNode)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html#setDataValue(java.lang.String)">setDataValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlData(java.lang.String, java.lang.String, java.lang.String, com.mxgraph.io.graphml.mxGraphMlShapeEdge, com.mxgraph.io.graphml.mxGraphMlShapeNode)"><!-- --></A><H3>
    +mxGraphMlData</H3>
    +<PRE>
    +public <B>mxGraphMlData</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataId,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataKey,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataValue,
    +                     <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>&nbsp;dataShapeEdge,
    +                     <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>&nbsp;dataShapeNode)</PRE>
    +<DL>
    +<DD>Construct a data with the params values.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>dataId</CODE> - Data's ID<DD><CODE>dataKey</CODE> - Reference to a Key Element ID<DD><CODE>dataValue</CODE> - Value of the data Element<DD><CODE>dataShapeEdge</CODE> - JGraph specific edge properties.<DD><CODE>dataShapeNode</CODE> - JGraph specific node properties.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlData(org.w3c.dom.Element)"><!-- --></A><H3>
    +mxGraphMlData</H3>
    +<PRE>
    +public <B>mxGraphMlData</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;dataElement)</PRE>
    +<DL>
    +<DD>Construct a data from one xml data element.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>dataElement</CODE> - Xml Data Element.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlData()"><!-- --></A><H3>
    +mxGraphMlData</H3>
    +<PRE>
    +public <B>mxGraphMlData</B>()</PRE>
    +<DL>
    +<DD>Construct an empty data.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getDataId()"><!-- --></A><H3>
    +getDataId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataId</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataId(java.lang.String)"><!-- --></A><H3>
    +setDataId</H3>
    +<PRE>
    +public void <B>setDataId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataId)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataKey()"><!-- --></A><H3>
    +getDataKey</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataKey</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataKey(java.lang.String)"><!-- --></A><H3>
    +setDataKey</H3>
    +<PRE>
    +public void <B>setDataKey</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataKey)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataValue()"><!-- --></A><H3>
    +getDataValue</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataValue</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataValue(java.lang.String)"><!-- --></A><H3>
    +setDataValue</H3>
    +<PRE>
    +public void <B>setDataValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataValue)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataShapeNode()"><!-- --></A><H3>
    +getDataShapeNode</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A> <B>getDataShapeNode</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataShapeNode(com.mxgraph.io.graphml.mxGraphMlShapeNode)"><!-- --></A><H3>
    +setDataShapeNode</H3>
    +<PRE>
    +public void <B>setDataShapeNode</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>&nbsp;dataShapeNode)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataShapeEdge()"><!-- --></A><H3>
    +getDataShapeEdge</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A> <B>getDataShapeEdge</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataShapeEdge(com.mxgraph.io.graphml.mxGraphMlShapeEdge)"><!-- --></A><H3>
    +setDataShapeEdge</H3>
    +<PRE>
    +public void <B>setDataShapeEdge</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>&nbsp;dataShapeEdge)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="generateNodeElement(org.w3c.dom.Document)"><!-- --></A><H3>
    +generateNodeElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>generateNodeElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Generates an Node Data Element from this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Document where the key Element will be inserted.
    +<DT><B>Returns:</B><DD>Returns the generated Elements.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="generateEdgeElement(org.w3c.dom.Document)"><!-- --></A><H3>
    +generateEdgeElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>generateEdgeElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Generates an Edge Data Element from this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Document where the key Element will be inserted.
    +<DT><B>Returns:</B><DD>Returns the generated Elements.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlData.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlEdge.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlEdge.html
    new file mode 100644
    index 000000000..66dba62a3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlEdge.html
    @@ -0,0 +1,614 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlEdge (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlEdge (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlEdge.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlEdge</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlEdge</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlEdge</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Represents a Data element in the GML Structure.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#mxGraphMlEdge(org.w3c.dom.Element)">mxGraphMlEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;edgeElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct an edge from a xml edge element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#mxGraphMlEdge(java.lang.String, java.lang.String, java.lang.String, java.lang.String)">mxGraphMlEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSource,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTarget,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSourcePort,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTargetPort)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct an edge with source and target.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#generateElement(org.w3c.dom.Document)">generateElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Edge Element from this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeData()">getEdgeData</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeDataMap()">getEdgeDataMap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeDirected()">getEdgeDirected</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeId()">getEdgeId</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeSource()">getEdgeSource</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeSourcePort()">getEdgeSourcePort</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeStyle()">getEdgeStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns if the edge has end arrow.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeTarget()">getEdgeTarget</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeTargetPort()">getEdgeTargetPort</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeData(com.mxgraph.io.graphml.mxGraphMlData)">setEdgeData</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&nbsp;egdeData)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeDataMap(java.util.HashMap)">setEdgeDataMap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;&nbsp;nodeEdgeMap)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeDirected(java.lang.String)">setEdgeDirected</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeDirected)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeId(java.lang.String)">setEdgeId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeId)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeSource(java.lang.String)">setEdgeSource</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeSourcePort(java.lang.String)">setEdgeSourcePort</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSourcePort)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeTarget(java.lang.String)">setEdgeTarget</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTarget)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeTargetPort(java.lang.String)">setEdgeTargetPort</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTargetPort)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlEdge(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +mxGraphMlEdge</H3>
    +<PRE>
    +public <B>mxGraphMlEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSource,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTarget,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSourcePort,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTargetPort)</PRE>
    +<DL>
    +<DD>Construct an edge with source and target.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>edgeSource</CODE> - Source Node's ID.<DD><CODE>edgeTarget</CODE> - Target Node's ID.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlEdge(org.w3c.dom.Element)"><!-- --></A><H3>
    +mxGraphMlEdge</H3>
    +<PRE>
    +public <B>mxGraphMlEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;edgeElement)</PRE>
    +<DL>
    +<DD>Construct an edge from a xml edge element.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>edgeElement</CODE> - Xml edge element.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getEdgeDirected()"><!-- --></A><H3>
    +getEdgeDirected</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeDirected</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeDirected(java.lang.String)"><!-- --></A><H3>
    +setEdgeDirected</H3>
    +<PRE>
    +public void <B>setEdgeDirected</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeDirected)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeId()"><!-- --></A><H3>
    +getEdgeId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeId</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeId(java.lang.String)"><!-- --></A><H3>
    +setEdgeId</H3>
    +<PRE>
    +public void <B>setEdgeId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeId)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeSource()"><!-- --></A><H3>
    +getEdgeSource</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeSource</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeSource(java.lang.String)"><!-- --></A><H3>
    +setEdgeSource</H3>
    +<PRE>
    +public void <B>setEdgeSource</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSource)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeSourcePort()"><!-- --></A><H3>
    +getEdgeSourcePort</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeSourcePort</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeSourcePort(java.lang.String)"><!-- --></A><H3>
    +setEdgeSourcePort</H3>
    +<PRE>
    +public void <B>setEdgeSourcePort</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSourcePort)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeTarget()"><!-- --></A><H3>
    +getEdgeTarget</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeTarget</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeTarget(java.lang.String)"><!-- --></A><H3>
    +setEdgeTarget</H3>
    +<PRE>
    +public void <B>setEdgeTarget</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTarget)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeTargetPort()"><!-- --></A><H3>
    +getEdgeTargetPort</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeTargetPort</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeTargetPort(java.lang.String)"><!-- --></A><H3>
    +setEdgeTargetPort</H3>
    +<PRE>
    +public void <B>setEdgeTargetPort</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTargetPort)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeDataMap()"><!-- --></A><H3>
    +getEdgeDataMap</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt; <B>getEdgeDataMap</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeDataMap(java.util.HashMap)"><!-- --></A><H3>
    +setEdgeDataMap</H3>
    +<PRE>
    +public void <B>setEdgeDataMap</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;&nbsp;nodeEdgeMap)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeData()"><!-- --></A><H3>
    +getEdgeData</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A> <B>getEdgeData</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeData(com.mxgraph.io.graphml.mxGraphMlData)"><!-- --></A><H3>
    +setEdgeData</H3>
    +<PRE>
    +public void <B>setEdgeData</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&nbsp;egdeData)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="generateElement(org.w3c.dom.Document)"><!-- --></A><H3>
    +generateElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>generateElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Generates a Edge Element from this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Document where the key Element will be inserted.
    +<DT><B>Returns:</B><DD>Returns the generated Elements.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeStyle()"><!-- --></A><H3>
    +getEdgeStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeStyle</B>()</PRE>
    +<DL>
    +<DD>Returns if the edge has end arrow.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>style that indicates the end arrow type(CLASSIC or NONE).</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlEdge.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlGraph.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlGraph.html
    new file mode 100644
    index 000000000..fb068cf25
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlGraph.html
    @@ -0,0 +1,567 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlGraph (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlGraph (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlGraph.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlGraph.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlGraph.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlGraph</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlGraph</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlGraph</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Represents a Graph element in the GML Structure.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#mxGraphMlGraph()">mxGraphMlGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an empty graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#mxGraphMlGraph(org.w3c.dom.Element)">mxGraphMlGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;graphElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a graph from a xml graph element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#mxGraphMlGraph(java.lang.String, java.lang.String)">mxGraphMlGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgedefault)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a graph with id and edge default direction.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#addGraph(com.mxgraph.view.mxGraph, java.lang.Object)">addGraph</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the elements represented for this graph model into the given graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#dataEdgeKey(com.mxgraph.io.graphml.mxGraphMlEdge)">dataEdgeKey</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the data element inside the edge that references to the key element
    + with name = KEY_EDGE_NAME.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#dataNodeKey(com.mxgraph.io.graphml.mxGraphMlNode)">dataNodeKey</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the data element inside the node that references to the key element
    + with name = KEY_NODE_NAME.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#generateElement(org.w3c.dom.Document)">generateElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Key Element from this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#getEdgedefault()">getEdgedefault</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#getEdges()">getEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#getId()">getId</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#getNodes()">getNodes</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#hasData(com.mxgraph.io.graphml.mxGraphMlNode)">hasData</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the node has data elements inside.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#isEmpty()">isEmpty</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the graph has child nodes or edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#setEdgedefault(java.lang.String)">setEdgedefault</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgedefault)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#setEdges(java.util.List)">setEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&gt;&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#setId(java.lang.String)">setId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#setNodes(java.util.List)">setNodes</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&gt;&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlGraph(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +mxGraphMlGraph</H3>
    +<PRE>
    +public <B>mxGraphMlGraph</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgedefault)</PRE>
    +<DL>
    +<DD>Constructs a graph with id and edge default direction.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>id</CODE> - Graph's ID<DD><CODE>edgedefault</CODE> - Edge Default direction.("directed" or "undirected")</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlGraph()"><!-- --></A><H3>
    +mxGraphMlGraph</H3>
    +<PRE>
    +public <B>mxGraphMlGraph</B>()</PRE>
    +<DL>
    +<DD>Constructs an empty graph.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlGraph(org.w3c.dom.Element)"><!-- --></A><H3>
    +mxGraphMlGraph</H3>
    +<PRE>
    +public <B>mxGraphMlGraph</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;graphElement)</PRE>
    +<DL>
    +<DD>Constructs a graph from a xml graph element.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphElement</CODE> - Xml graph element.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="addGraph(com.mxgraph.view.mxGraph, java.lang.Object)"><!-- --></A><H3>
    +addGraph</H3>
    +<PRE>
    +public void <B>addGraph</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Adds the elements represented for this graph model into the given graph.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - Graph where the elements will be located<DD><CODE>parent</CODE> - Parent of the cells to be added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hasData(com.mxgraph.io.graphml.mxGraphMlNode)"><!-- --></A><H3>
    +hasData</H3>
    +<PRE>
    +public static boolean <B>hasData</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Checks if the node has data elements inside.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - Gml node element.
    +<DT><B>Returns:</B><DD>Returns <code>true</code> if the node has data elements inside.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="dataNodeKey(com.mxgraph.io.graphml.mxGraphMlNode)"><!-- --></A><H3>
    +dataNodeKey</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A> <B>dataNodeKey</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Returns the data element inside the node that references to the key element
    + with name = KEY_NODE_NAME.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - Gml Node element.
    +<DT><B>Returns:</B><DD>The required data. null if not found.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="dataEdgeKey(com.mxgraph.io.graphml.mxGraphMlEdge)"><!-- --></A><H3>
    +dataEdgeKey</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A> <B>dataEdgeKey</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD>Returns the data element inside the edge that references to the key element
    + with name = KEY_EDGE_NAME.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Gml Edge element.
    +<DT><B>Returns:</B><DD>The required data. null if not found.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgedefault()"><!-- --></A><H3>
    +getEdgedefault</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgedefault</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgedefault(java.lang.String)"><!-- --></A><H3>
    +setEdgedefault</H3>
    +<PRE>
    +public void <B>setEdgedefault</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgedefault)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getId()"><!-- --></A><H3>
    +getId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getId</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setId(java.lang.String)"><!-- --></A><H3>
    +setId</H3>
    +<PRE>
    +public void <B>setId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodes()"><!-- --></A><H3>
    +getNodes</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&gt; <B>getNodes</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setNodes(java.util.List)"><!-- --></A><H3>
    +setNodes</H3>
    +<PRE>
    +public void <B>setNodes</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&gt;&nbsp;node)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdges()"><!-- --></A><H3>
    +getEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&gt; <B>getEdges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdges(java.util.List)"><!-- --></A><H3>
    +setEdges</H3>
    +<PRE>
    +public void <B>setEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&gt;&nbsp;edge)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEmpty()"><!-- --></A><H3>
    +isEmpty</H3>
    +<PRE>
    +public boolean <B>isEmpty</B>()</PRE>
    +<DL>
    +<DD>Checks if the graph has child nodes or edges.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns <code>true</code> if the graph hasn't child nodes or edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="generateElement(org.w3c.dom.Document)"><!-- --></A><H3>
    +generateElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>generateElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Generates a Key Element from this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Document where the key Element will be inserted.
    +<DT><B>Returns:</B><DD>Returns the generated Elements.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlGraph.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlGraph.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlGraph.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlKey.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlKey.html
    new file mode 100644
    index 000000000..4da14cb76
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlKey.html
    @@ -0,0 +1,599 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlKey (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlKey (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlKey.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlKey.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlKey</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlKey</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlKey</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Represents a Key element in the GML Structure.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Possibles values for the keyFor Attribute</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Possibles values for the keyType Attribute.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#mxGraphMlKey(org.w3c.dom.Element)">mxGraphMlKey</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;keyElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a key from a xml key element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#mxGraphMlKey(java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyForValues, java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)">mxGraphMlKey</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyId,
    +             <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;keyFor,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyName,
    +             <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;keyType)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a key with the given parameters.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#enumForValue(java.lang.String)">enumForValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a String value in its corresponding enum value for the
    + keyFor attribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#enumTypeValue(java.lang.String)">enumTypeValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a String value in its corresponding enum value for the
    + keyType attribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#generateElement(org.w3c.dom.Document)">generateElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Key Element from this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyDefault()">getKeyDefault</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyFor()">getKeyFor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyId()">getKeyId</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyName()">getKeyName</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyType()">getKeyType</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyDefault(java.lang.String)">setKeyDefault</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyDefault)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyFor(com.mxgraph.io.graphml.mxGraphMlKey.keyForValues)">setKeyFor</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;keyFor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyId(java.lang.String)">setKeyId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyId)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyName(java.lang.String)">setKeyName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyType(com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)">setKeyType</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;keyType)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#stringForValue(com.mxgraph.io.graphml.mxGraphMlKey.keyForValues)">stringForValue</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a enum value in its corresponding String value for the
    + keyFor attribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html#stringTypeValue(com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)">stringTypeValue</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a enum value in its corresponding string value for the
    + keyType attribute.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlKey(java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyForValues, java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)"><!-- --></A><H3>
    +mxGraphMlKey</H3>
    +<PRE>
    +public <B>mxGraphMlKey</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyId,
    +                    <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;keyFor,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyName,
    +                    <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;keyType)</PRE>
    +<DL>
    +<DD>Construct a key with the given parameters.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>keyId</CODE> - Key's ID<DD><CODE>keyFor</CODE> - Scope of the key.<DD><CODE>keyName</CODE> - Key Name<DD><CODE>keyType</CODE> - Type of the values represented for this key.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlKey(org.w3c.dom.Element)"><!-- --></A><H3>
    +mxGraphMlKey</H3>
    +<PRE>
    +public <B>mxGraphMlKey</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;keyElement)</PRE>
    +<DL>
    +<DD>Construct a key from a xml key element.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>keyElement</CODE> - Xml key element.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getKeyDefault()"><!-- --></A><H3>
    +getKeyDefault</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getKeyDefault</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeyDefault(java.lang.String)"><!-- --></A><H3>
    +setKeyDefault</H3>
    +<PRE>
    +public void <B>setKeyDefault</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyDefault)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getKeyFor()"><!-- --></A><H3>
    +getKeyFor</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>getKeyFor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeyFor(com.mxgraph.io.graphml.mxGraphMlKey.keyForValues)"><!-- --></A><H3>
    +setKeyFor</H3>
    +<PRE>
    +public void <B>setKeyFor</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;keyFor)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getKeyId()"><!-- --></A><H3>
    +getKeyId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getKeyId</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeyId(java.lang.String)"><!-- --></A><H3>
    +setKeyId</H3>
    +<PRE>
    +public void <B>setKeyId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyId)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getKeyName()"><!-- --></A><H3>
    +getKeyName</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getKeyName</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeyName(java.lang.String)"><!-- --></A><H3>
    +setKeyName</H3>
    +<PRE>
    +public void <B>setKeyName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;keyName)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getKeyType()"><!-- --></A><H3>
    +getKeyType</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> <B>getKeyType</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeyType(com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)"><!-- --></A><H3>
    +setKeyType</H3>
    +<PRE>
    +public void <B>setKeyType</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;keyType)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="generateElement(org.w3c.dom.Document)"><!-- --></A><H3>
    +generateElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>generateElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Generates a Key Element from this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Document where the key Element will be inserted.
    +<DT><B>Returns:</B><DD>Returns the generated Elements.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="enumForValue(java.lang.String)"><!-- --></A><H3>
    +enumForValue</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>enumForValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Converts a String value in its corresponding enum value for the
    + keyFor attribute.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Value in String representation.
    +<DT><B>Returns:</B><DD>Returns the value in its enum representation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stringForValue(com.mxgraph.io.graphml.mxGraphMlKey.keyForValues)"><!-- --></A><H3>
    +stringForValue</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>stringForValue</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Converts a enum value in its corresponding String value for the
    + keyFor attribute.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Value in enum representation.
    +<DT><B>Returns:</B><DD>Returns the value in its String representation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="enumTypeValue(java.lang.String)"><!-- --></A><H3>
    +enumTypeValue</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> <B>enumTypeValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Converts a String value in its corresponding enum value for the
    + keyType attribute.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Value in String representation.
    +<DT><B>Returns:</B><DD>Returns the value in its enum representation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stringTypeValue(com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)"><!-- --></A><H3>
    +stringTypeValue</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>stringTypeValue</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Converts a enum value in its corresponding string value for the
    + keyType attribute.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Value in enum representation.
    +<DT><B>Returns:</B><DD>Returns the value in its String representation.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlKey.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlKey.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html
    new file mode 100644
    index 000000000..b44875540
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html
    @@ -0,0 +1,410 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlKey.keyForValues (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlKey.keyForValues (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlKey.keyForValues.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.keyForValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Enum mxGraphMlKey.keyForValues</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&gt;
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlKey.keyForValues</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&gt;</DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static enum <B>mxGraphMlKey.keyForValues</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>&gt;</DL>
    +</PRE>
    +
    +<P>
    +Possibles values for the keyFor Attribute
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== ENUM CONSTANT SUMMARY =========== -->
    +
    +<A NAME="enum_constant_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Enum Constant Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#ALL">ALL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#EDGE">EDGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#ENDPOINT">ENDPOINT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#GRAPH">GRAPH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#HYPEREDGE">HYPEREDGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#NODE">NODE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#PORT">PORT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#valueOf(java.lang.String)">valueOf</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#values()">values</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
    +the order they are declared.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang">compareTo</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang">getDeclaringClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang">name</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang">ordinal</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class, java.lang.String)" title="class or interface in java.lang">valueOf</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ ENUM CONSTANT DETAIL =========== -->
    +
    +<A NAME="enum_constant_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Enum Constant Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="GRAPH"><!-- --></A><H3>
    +GRAPH</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>GRAPH</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="NODE"><!-- --></A><H3>
    +NODE</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>NODE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE"><!-- --></A><H3>
    +EDGE</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>EDGE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="HYPEREDGE"><!-- --></A><H3>
    +HYPEREDGE</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>HYPEREDGE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PORT"><!-- --></A><H3>
    +PORT</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>PORT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ENDPOINT"><!-- --></A><H3>
    +ENDPOINT</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>ENDPOINT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ALL"><!-- --></A><H3>
    +ALL</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>ALL</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="values()"><!-- --></A><H3>
    +values</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>[] <B>values</B>()</PRE>
    +<DL>
    +<DD>Returns an array containing the constants of this enum type, in
    +the order they are declared.  This method may be used to iterate
    +over the constants as follows:
    +<pre>
    +for (mxGraphMlKey.keyForValues c : mxGraphMlKey.keyForValues.values())
    +&nbsp;   System.out.println(c);
    +</pre>
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
    +the order they are declared</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
    +valueOf</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A> <B>valueOf</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Returns the enum constant of this type with the specified name.
    +The string must match <I>exactly</I> an identifier used to declare an
    +enum constant in this type.  (Extraneous whitespace characters are 
    +not permitted.)
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
    +<DT><B>Returns:</B><DD>the enum constant with the specified name
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if this enum type has no constant
    +with the specified name
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</A></CODE> - if the argument is null</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlKey.keyForValues.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.keyForValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html
    new file mode 100644
    index 000000000..944db4c34
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html
    @@ -0,0 +1,394 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlKey.keyTypeValues (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlKey.keyTypeValues (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlKey.keyTypeValues.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.keyTypeValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Enum mxGraphMlKey.keyTypeValues</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&gt;
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&gt;</DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static enum <B>mxGraphMlKey.keyTypeValues</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>&gt;</DL>
    +</PRE>
    +
    +<P>
    +Possibles values for the keyType Attribute.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== ENUM CONSTANT SUMMARY =========== -->
    +
    +<A NAME="enum_constant_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Enum Constant Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#BOOLEAN">BOOLEAN</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#DOUBLE">DOUBLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#FLOAT">FLOAT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#INT">INT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#LONG">LONG</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#STRING">STRING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#valueOf(java.lang.String)">valueOf</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#values()">values</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
    +the order they are declared.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang">compareTo</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang">getDeclaringClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang">name</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang">ordinal</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class, java.lang.String)" title="class or interface in java.lang">valueOf</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ ENUM CONSTANT DETAIL =========== -->
    +
    +<A NAME="enum_constant_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Enum Constant Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="BOOLEAN"><!-- --></A><H3>
    +BOOLEAN</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> <B>BOOLEAN</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="INT"><!-- --></A><H3>
    +INT</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> <B>INT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LONG"><!-- --></A><H3>
    +LONG</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> <B>LONG</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FLOAT"><!-- --></A><H3>
    +FLOAT</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> <B>FLOAT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DOUBLE"><!-- --></A><H3>
    +DOUBLE</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> <B>DOUBLE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STRING"><!-- --></A><H3>
    +STRING</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> <B>STRING</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="values()"><!-- --></A><H3>
    +values</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>[] <B>values</B>()</PRE>
    +<DL>
    +<DD>Returns an array containing the constants of this enum type, in
    +the order they are declared.  This method may be used to iterate
    +over the constants as follows:
    +<pre>
    +for (mxGraphMlKey.keyTypeValues c : mxGraphMlKey.keyTypeValues.values())
    +&nbsp;   System.out.println(c);
    +</pre>
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
    +the order they are declared</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
    +valueOf</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A> <B>valueOf</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Returns the enum constant of this type with the specified name.
    +The string must match <I>exactly</I> an identifier used to declare an
    +enum constant in this type.  (Extraneous whitespace characters are 
    +not permitted.)
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
    +<DT><B>Returns:</B><DD>the enum constant with the specified name
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if this enum type has no constant
    +with the specified name
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</A></CODE> - if the argument is null</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlKey.keyTypeValues.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKey.keyTypeValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlKeyManager.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlKeyManager.html
    new file mode 100644
    index 000000000..546b29c35
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlKeyManager.html
    @@ -0,0 +1,293 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlKeyManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlKeyManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlKeyManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlKeyManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKeyManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlKeyManager</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlKeyManager</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlKeyManager</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +This is a singleton class that contains a map with the key elements of the
    + document. The key elements are wrapped in instances of mxGmlKey and
    + may to be access by ID.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html#getInstance()">getInstance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the instance of mxGmlKeyManager.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html#getKeyMap()">getKeyMap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html#initialise(org.w3c.dom.Document)">initialise</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;doc)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the map with the key elements in the document.<br/>
    + The keys are wrapped for instances of mxGmlKey.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html#setKeyMap(java.util.HashMap)">setKeyMap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>&gt;&nbsp;keyMap)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getInstance()"><!-- --></A><H3>
    +getInstance</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A> <B>getInstance</B>()</PRE>
    +<DL>
    +<DD>Returns the instance of mxGmlKeyManager.
    + If no instance has been created until the moment, a new instance is
    + returned.
    + This method don't load the map.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>An instance of mxGmlKeyManager.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="initialise(org.w3c.dom.Document)"><!-- --></A><H3>
    +initialise</H3>
    +<PRE>
    +public void <B>initialise</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;doc)</PRE>
    +<DL>
    +<DD>Load the map with the key elements in the document.<br/>
    + The keys are wrapped for instances of mxGmlKey.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>doc</CODE> - Document with the keys.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getKeyMap()"><!-- --></A><H3>
    +getKeyMap</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>&gt; <B>getKeyMap</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeyMap(java.util.HashMap)"><!-- --></A><H3>
    +setKeyMap</H3>
    +<PRE>
    +public void <B>setKeyMap</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>&gt;&nbsp;keyMap)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlKeyManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlKeyManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlKeyManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlNode.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlNode.html
    new file mode 100644
    index 000000000..3d0c1c2e7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlNode.html
    @@ -0,0 +1,474 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlNode</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlNode</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlNode</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Represents a Data element in the GML Structure.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#mxGraphMlNode(org.w3c.dom.Element)">mxGraphMlNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;nodeElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a Node from a xml Node Element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#mxGraphMlNode(java.lang.String, com.mxgraph.io.graphml.mxGraphMlData)">mxGraphMlNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;nodeId,
    +              <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&nbsp;nodeData)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a node with Id and one data element</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#generateElement(org.w3c.dom.Document)">generateElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Key Element from this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeData()">getNodeData</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeDataMap()">getNodeDataMap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeGraph()">getNodeGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeId()">getNodeId</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#getNodePort()">getNodePort</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeData(com.mxgraph.io.graphml.mxGraphMlData)">setNodeData</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&nbsp;nodeData)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeDataMap(java.util.HashMap)">setNodeDataMap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;&nbsp;nodeDataMap)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeGraph(java.util.List)">setNodeGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&gt;&nbsp;nodeGraph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeId(java.lang.String)">setNodeId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;nodeId)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html#setNodePort(java.util.HashMap)">setNodePort</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>&gt;&nbsp;nodePort)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlNode(java.lang.String, com.mxgraph.io.graphml.mxGraphMlData)"><!-- --></A><H3>
    +mxGraphMlNode</H3>
    +<PRE>
    +public <B>mxGraphMlNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;nodeId,
    +                     <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&nbsp;nodeData)</PRE>
    +<DL>
    +<DD>Construct a node with Id and one data element
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>nodeId</CODE> - Node`s ID<DD><CODE>nodeData</CODE> - Gml Data.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlNode(org.w3c.dom.Element)"><!-- --></A><H3>
    +mxGraphMlNode</H3>
    +<PRE>
    +public <B>mxGraphMlNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;nodeElement)</PRE>
    +<DL>
    +<DD>Construct a Node from a xml Node Element.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>nodeElement</CODE> - Xml Node Element.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getNodeId()"><!-- --></A><H3>
    +getNodeId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getNodeId</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setNodeId(java.lang.String)"><!-- --></A><H3>
    +setNodeId</H3>
    +<PRE>
    +public void <B>setNodeId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;nodeId)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodeDataMap()"><!-- --></A><H3>
    +getNodeDataMap</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt; <B>getNodeDataMap</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setNodeDataMap(java.util.HashMap)"><!-- --></A><H3>
    +setNodeDataMap</H3>
    +<PRE>
    +public void <B>setNodeDataMap</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;&nbsp;nodeDataMap)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodeGraph()"><!-- --></A><H3>
    +getNodeGraph</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&gt; <B>getNodeGraph</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setNodeGraph(java.util.List)"><!-- --></A><H3>
    +setNodeGraph</H3>
    +<PRE>
    +public void <B>setNodeGraph</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&gt;&nbsp;nodeGraph)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodePort()"><!-- --></A><H3>
    +getNodePort</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>&gt; <B>getNodePort</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setNodePort(java.util.HashMap)"><!-- --></A><H3>
    +setNodePort</H3>
    +<PRE>
    +public void <B>setNodePort</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>&gt;&nbsp;nodePort)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="generateElement(org.w3c.dom.Document)"><!-- --></A><H3>
    +generateElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>generateElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Generates a Key Element from this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Document where the key Element will be inserted.
    +<DT><B>Returns:</B><DD>Returns the generated Elements.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodeData()"><!-- --></A><H3>
    +getNodeData</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A> <B>getNodeData</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setNodeData(com.mxgraph.io.graphml.mxGraphMlData)"><!-- --></A><H3>
    +setNodeData</H3>
    +<PRE>
    +public void <B>setNodeData</B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&nbsp;nodeData)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlPort.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlPort.html
    new file mode 100644
    index 000000000..8747d7e6a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlPort.html
    @@ -0,0 +1,358 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlPort (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlPort (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlPort.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlPort</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlPort</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlPort</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Represents a Port element in the GML Structure.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html#mxGraphMlPort(org.w3c.dom.Element)">mxGraphMlPort</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;portElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a Port from a xml port Element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html#mxGraphMlPort(java.lang.String)">mxGraphMlPort</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a Port with name.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html#generateElement(org.w3c.dom.Document)">generateElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Key Element from this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html#getName()">getName</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html#getPortDataMap()">getPortDataMap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html#setName(java.lang.String)">setName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html#setPortDataMap(java.util.HashMap)">setPortDataMap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;&nbsp;nodeDataMap)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlPort(java.lang.String)"><!-- --></A><H3>
    +mxGraphMlPort</H3>
    +<PRE>
    +public <B>mxGraphMlPort</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Construct a Port with name.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - Port Name</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlPort(org.w3c.dom.Element)"><!-- --></A><H3>
    +mxGraphMlPort</H3>
    +<PRE>
    +public <B>mxGraphMlPort</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;portElement)</PRE>
    +<DL>
    +<DD>Construct a Port from a xml port Element.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>portElement</CODE> - Xml port Element.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getName()"><!-- --></A><H3>
    +getName</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getName</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setName(java.lang.String)"><!-- --></A><H3>
    +setName</H3>
    +<PRE>
    +public void <B>setName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPortDataMap()"><!-- --></A><H3>
    +getPortDataMap</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt; <B>getPortDataMap</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPortDataMap(java.util.HashMap)"><!-- --></A><H3>
    +setPortDataMap</H3>
    +<PRE>
    +public void <B>setPortDataMap</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>&gt;&nbsp;nodeDataMap)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="generateElement(org.w3c.dom.Document)"><!-- --></A><H3>
    +generateElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>generateElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Generates a Key Element from this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Document where the key Element will be inserted.
    +<DT><B>Returns:</B><DD>Returns the generated Elements.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlPort.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlShapeEdge.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlShapeEdge.html
    new file mode 100644
    index 000000000..6f0bdfde0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlShapeEdge.html
    @@ -0,0 +1,452 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlShapeEdge (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlShapeEdge (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlShapeEdge.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlShapeEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlShapeEdge</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlShapeEdge</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlShapeEdge</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +This class represents the properties of a JGraph edge.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#mxGraphMlShapeEdge()">mxGraphMlShapeEdge</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct an empty Shape Edge Element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#mxGraphMlShapeEdge(org.w3c.dom.Element)">mxGraphMlShapeEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;shapeEdgeElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a ShapeEdge from a xml shapeEdgeElement.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#mxGraphMlShapeEdge(java.lang.String, java.lang.String)">mxGraphMlShapeEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a Shape Edge with text and style.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#generateElement(org.w3c.dom.Document)">generateElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a ShapeEdge Element from this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#getEdgeSource()">getEdgeSource</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#getEdgeTarget()">getEdgeTarget</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#getStyle()">getStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#getText()">getText</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#setEdgeSource(java.lang.String)">setEdgeSource</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#setEdgeTarget(java.lang.String)">setEdgeTarget</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTarget)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#setStyle(java.lang.String)">setStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#setText(java.lang.String)">setText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlShapeEdge(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +mxGraphMlShapeEdge</H3>
    +<PRE>
    +public <B>mxGraphMlShapeEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Construct a Shape Edge with text and style.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - <DD><CODE>style</CODE> - </DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlShapeEdge(org.w3c.dom.Element)"><!-- --></A><H3>
    +mxGraphMlShapeEdge</H3>
    +<PRE>
    +public <B>mxGraphMlShapeEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;shapeEdgeElement)</PRE>
    +<DL>
    +<DD>Constructs a ShapeEdge from a xml shapeEdgeElement.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>shapeEdgeElement</CODE> - </DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlShapeEdge()"><!-- --></A><H3>
    +mxGraphMlShapeEdge</H3>
    +<PRE>
    +public <B>mxGraphMlShapeEdge</B>()</PRE>
    +<DL>
    +<DD>Construct an empty Shape Edge Element.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="generateElement(org.w3c.dom.Document)"><!-- --></A><H3>
    +generateElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>generateElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Generates a ShapeEdge Element from this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Document where the key Element will be inserted.
    +<DT><B>Returns:</B><DD>Returns the generated Elements.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getText()"><!-- --></A><H3>
    +getText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getText</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setText(java.lang.String)"><!-- --></A><H3>
    +setText</H3>
    +<PRE>
    +public void <B>setText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStyle()"><!-- --></A><H3>
    +getStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStyle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyle(java.lang.String)"><!-- --></A><H3>
    +setStyle</H3>
    +<PRE>
    +public void <B>setStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeSource()"><!-- --></A><H3>
    +getEdgeSource</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeSource</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeSource(java.lang.String)"><!-- --></A><H3>
    +setEdgeSource</H3>
    +<PRE>
    +public void <B>setEdgeSource</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeSource)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeTarget()"><!-- --></A><H3>
    +getEdgeTarget</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeTarget</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeTarget(java.lang.String)"><!-- --></A><H3>
    +setEdgeTarget</H3>
    +<PRE>
    +public void <B>setEdgeTarget</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edgeTarget)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlShapeEdge.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlShapeEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlShapeNode.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlShapeNode.html
    new file mode 100644
    index 000000000..105acddf3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlShapeNode.html
    @@ -0,0 +1,530 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlShapeNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlShapeNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlShapeNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlShapeNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlShapeNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlShapeNode</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlShapeNode</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlShapeNode</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#mxGraphMlShapeNode()">mxGraphMlShapeNode</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct an empty shape Node</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#mxGraphMlShapeNode(org.w3c.dom.Element)">mxGraphMlShapeNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;shapeNodeElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a Shape Node from a xml Shape Node Element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#mxGraphMlShapeNode(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)">mxGraphMlShapeNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataHeight,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataWidth,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataX,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataY,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataStyle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a shape Node with the given parameters</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#generateElement(org.w3c.dom.Document)">generateElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Shape Node Element from this class.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataHeight()">getDataHeight</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataLabel()">getDataLabel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataStyle()">getDataStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataWidth()">getDataWidth</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataX()">getDataX</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataY()">getDataY</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataHeight(java.lang.String)">setDataHeight</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataHeight)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataLabel(java.lang.String)">setDataLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataLabel)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataStyle(java.lang.String)">setDataStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataStyle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataWidth(java.lang.String)">setDataWidth</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataWidth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataX(java.lang.String)">setDataX</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataX)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataY(java.lang.String)">setDataY</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataY)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlShapeNode(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +mxGraphMlShapeNode</H3>
    +<PRE>
    +public <B>mxGraphMlShapeNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataHeight,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataWidth,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataX,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataY,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataStyle)</PRE>
    +<DL>
    +<DD>Construct a shape Node with the given parameters
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>dataHeight</CODE> - Node's Height<DD><CODE>dataWidth</CODE> - Node's Width<DD><CODE>dataX</CODE> - Node's X coordinate.<DD><CODE>dataY</CODE> - Node's Y coordinate.<DD><CODE>dataStyle</CODE> - Node's style.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlShapeNode()"><!-- --></A><H3>
    +mxGraphMlShapeNode</H3>
    +<PRE>
    +public <B>mxGraphMlShapeNode</B>()</PRE>
    +<DL>
    +<DD>Construct an empty shape Node
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphMlShapeNode(org.w3c.dom.Element)"><!-- --></A><H3>
    +mxGraphMlShapeNode</H3>
    +<PRE>
    +public <B>mxGraphMlShapeNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;shapeNodeElement)</PRE>
    +<DL>
    +<DD>Construct a Shape Node from a xml Shape Node Element.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>shapeNodeElement</CODE> - Xml Shape Node Element.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="generateElement(org.w3c.dom.Document)"><!-- --></A><H3>
    +generateElement</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>generateElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Generates a Shape Node Element from this class.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Document where the key Element will be inserted.
    +<DT><B>Returns:</B><DD>Returns the generated Elements.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataHeight()"><!-- --></A><H3>
    +getDataHeight</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataHeight</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataHeight(java.lang.String)"><!-- --></A><H3>
    +setDataHeight</H3>
    +<PRE>
    +public void <B>setDataHeight</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataHeight)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataWidth()"><!-- --></A><H3>
    +getDataWidth</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataWidth</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataWidth(java.lang.String)"><!-- --></A><H3>
    +setDataWidth</H3>
    +<PRE>
    +public void <B>setDataWidth</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataWidth)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataX()"><!-- --></A><H3>
    +getDataX</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataX</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataX(java.lang.String)"><!-- --></A><H3>
    +setDataX</H3>
    +<PRE>
    +public void <B>setDataX</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataX)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataY()"><!-- --></A><H3>
    +getDataY</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataY</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataY(java.lang.String)"><!-- --></A><H3>
    +setDataY</H3>
    +<PRE>
    +public void <B>setDataY</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataY)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataLabel()"><!-- --></A><H3>
    +getDataLabel</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataLabel</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataLabel(java.lang.String)"><!-- --></A><H3>
    +setDataLabel</H3>
    +<PRE>
    +public void <B>setDataLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataLabel)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDataStyle()"><!-- --></A><H3>
    +getDataStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataStyle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDataStyle(java.lang.String)"><!-- --></A><H3>
    +setDataStyle</H3>
    +<PRE>
    +public void <B>setDataStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;dataStyle)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlShapeNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlShapeNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlShapeNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/mxGraphMlUtils.html b/java/docs/com/mxgraph/io/graphml/mxGraphMlUtils.html
    new file mode 100644
    index 000000000..c97855f0c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/mxGraphMlUtils.html
    @@ -0,0 +1,454 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io.graphml</FONT>
    +<BR>
    +Class mxGraphMlUtils</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.graphml.mxGraphMlUtils</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlUtils</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +This class implements several GML utility methods.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#mxGraphMlUtils()">mxGraphMlUtils</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#childsHasTag(org.w3c.dom.Element, java.lang.String)">childsHasTag</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;element,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the childrens of element has a Node with name = tag.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#childsTag(org.w3c.dom.Element, java.lang.String)">childsTag</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;element,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the first Element that has name = tag in the childrens of element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#childsTags(org.w3c.dom.Element, java.lang.String)">childsTags</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;element,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a list with the elements included in the childrens of element
    + that have name = tag.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#copyNodeList(org.w3c.dom.NodeList)">copyNodeList</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/NodeList.html?is-external=true" title="class or interface in org.w3c.dom">NodeList</A>&nbsp;nodeList)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy a given NodeList into a List<Element></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#getStyleMap(java.lang.String, java.lang.String)">getStyleMap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;asig)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a style map from a String with style definitions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#getStyleString(java.util.Map, java.lang.String)">getStyleString</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;styleMap,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;asig)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the string that represents the content of a given style map.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#nodeListHasTag(org.w3c.dom.NodeList, java.lang.String)">nodeListHasTag</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/NodeList.html?is-external=true" title="class or interface in org.w3c.dom">NodeList</A>&nbsp;nl,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the NodeList has a Node with name = tag.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#nodeListTag(org.w3c.dom.NodeList, java.lang.String)">nodeListTag</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/NodeList.html?is-external=true" title="class or interface in org.w3c.dom">NodeList</A>&nbsp;nl,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the first Element that has name = tag in Node List.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html#nodeListTags(org.w3c.dom.NodeList, java.lang.String)">nodeListTags</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/NodeList.html?is-external=true" title="class or interface in org.w3c.dom">NodeList</A>&nbsp;nl,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a list with the elements included in the Node List that have name = tag.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlUtils()"><!-- --></A><H3>
    +mxGraphMlUtils</H3>
    +<PRE>
    +public <B>mxGraphMlUtils</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="nodeListHasTag(org.w3c.dom.NodeList, java.lang.String)"><!-- --></A><H3>
    +nodeListHasTag</H3>
    +<PRE>
    +public static boolean <B>nodeListHasTag</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/NodeList.html?is-external=true" title="class or interface in org.w3c.dom">NodeList</A>&nbsp;nl,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</PRE>
    +<DL>
    +<DD>Checks if the NodeList has a Node with name = tag.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>nl</CODE> - NodeList<DD><CODE>tag</CODE> - Name of the node.
    +<DT><B>Returns:</B><DD>Returns <code>true</code> if the Node List has a Node with name = tag.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="nodeListTag(org.w3c.dom.NodeList, java.lang.String)"><!-- --></A><H3>
    +nodeListTag</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>nodeListTag</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/NodeList.html?is-external=true" title="class or interface in org.w3c.dom">NodeList</A>&nbsp;nl,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</PRE>
    +<DL>
    +<DD>Returns the first Element that has name = tag in Node List.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>nl</CODE> - NodeList<DD><CODE>tag</CODE> - Name of the Element
    +<DT><B>Returns:</B><DD>Element with name = 'tag'.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="nodeListTags(org.w3c.dom.NodeList, java.lang.String)"><!-- --></A><H3>
    +nodeListTags</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&gt; <B>nodeListTags</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/NodeList.html?is-external=true" title="class or interface in org.w3c.dom">NodeList</A>&nbsp;nl,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</PRE>
    +<DL>
    +<DD>Returns a list with the elements included in the Node List that have name = tag.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>nl</CODE> - NodeList<DD><CODE>tag</CODE> - name of the Element.
    +<DT><B>Returns:</B><DD>List with the indicated elements.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="childsHasTag(org.w3c.dom.Element, java.lang.String)"><!-- --></A><H3>
    +childsHasTag</H3>
    +<PRE>
    +public static boolean <B>childsHasTag</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;element,
    +                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</PRE>
    +<DL>
    +<DD>Checks if the childrens of element has a Node with name = tag.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>element</CODE> - Element<DD><CODE>tag</CODE> - Name of the node.
    +<DT><B>Returns:</B><DD>Returns <code>true</code> if the childrens of element has a Node with name = tag.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="childsTag(org.w3c.dom.Element, java.lang.String)"><!-- --></A><H3>
    +childsTag</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>childsTag</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;element,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</PRE>
    +<DL>
    +<DD>Returns the first Element that has name = tag in the childrens of element.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>element</CODE> - Element<DD><CODE>tag</CODE> - Name of the Element
    +<DT><B>Returns:</B><DD>Element with name = 'tag'.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="childsTags(org.w3c.dom.Element, java.lang.String)"><!-- --></A><H3>
    +childsTags</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&gt; <B>childsTags</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;element,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tag)</PRE>
    +<DL>
    +<DD>Returns a list with the elements included in the childrens of element
    + that have name = tag.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>element</CODE> - Element<DD><CODE>tag</CODE> - name of the Element.
    +<DT><B>Returns:</B><DD>List with the indicated elements.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="copyNodeList(org.w3c.dom.NodeList)"><!-- --></A><H3>
    +copyNodeList</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&gt; <B>copyNodeList</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/NodeList.html?is-external=true" title="class or interface in org.w3c.dom">NodeList</A>&nbsp;nodeList)</PRE>
    +<DL>
    +<DD>Copy a given NodeList into a List<Element>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>nodeList</CODE> - Node List.
    +<DT><B>Returns:</B><DD>List with the elements of nodeList.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStyleMap(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getStyleMap</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getStyleMap</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;asig)</PRE>
    +<DL>
    +<DD>Create a style map from a String with style definitions.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - Definition of the style.<DD><CODE>asig</CODE> - Asignation simbol used in 'style'.
    +<DT><B>Returns:</B><DD>Map with the style properties.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStyleString(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +getStyleString</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStyleString</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;styleMap,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;asig)</PRE>
    +<DL>
    +<DD>Returns the string that represents the content of a given style map.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>styleMap</CODE> - Map with the styles values
    +<DT><B>Returns:</B><DD>string that represents the style.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/mxGraphMlUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/package-frame.html b/java/docs/com/mxgraph/io/graphml/package-frame.html
    new file mode 100644
    index 000000000..dbbd3ce5e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/package-frame.html
    @@ -0,0 +1,65 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.io.graphml (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../com/mxgraph/io/graphml/package-summary.html" target="classFrame">com.mxgraph.io.graphml</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlConstants</A>
    +<BR>
    +<A HREF="mxGraphMlData.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlData</A>
    +<BR>
    +<A HREF="mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlEdge</A>
    +<BR>
    +<A HREF="mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlGraph</A>
    +<BR>
    +<A HREF="mxGraphMlKey.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlKey</A>
    +<BR>
    +<A HREF="mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlKeyManager</A>
    +<BR>
    +<A HREF="mxGraphMlNode.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlNode</A>
    +<BR>
    +<A HREF="mxGraphMlPort.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlPort</A>
    +<BR>
    +<A HREF="mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlShapeEdge</A>
    +<BR>
    +<A HREF="mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlShapeNode</A>
    +<BR>
    +<A HREF="mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml" target="classFrame">mxGraphMlUtils</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Enums</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml" target="classFrame">mxGraphMlKey.keyForValues</A>
    +<BR>
    +<A HREF="mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml" target="classFrame">mxGraphMlKey.keyTypeValues</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/package-summary.html b/java/docs/com/mxgraph/io/graphml/package-summary.html
    new file mode 100644
    index 000000000..a18e491d4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/package-summary.html
    @@ -0,0 +1,217 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.io.graphml (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.io.graphml (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.io.graphml
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A></B></TD>
    +<TD>This class contains constants used in the Import of gml documents.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A></B></TD>
    +<TD>Represents a Data element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A></B></TD>
    +<TD>Represents a Data element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></B></TD>
    +<TD>Represents a Graph element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A></B></TD>
    +<TD>Represents a Key element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A></B></TD>
    +<TD>This is a singleton class that contains a map with the key elements of the
    + document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A></B></TD>
    +<TD>Represents a Data element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A></B></TD>
    +<TD>Represents a Port element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A></B></TD>
    +<TD>This class represents the properties of a JGraph edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A></B></TD>
    +<TD>This class implements several GML utility methods.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Enum Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A></B></TD>
    +<TD>Possibles values for the keyFor Attribute</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A></B></TD>
    +<TD>Possibles values for the keyType Attribute.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/package-tree.html b/java/docs/com/mxgraph/io/graphml/package-tree.html
    new file mode 100644
    index 000000000..ad8377e3b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/package-tree.html
    @@ -0,0 +1,164 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.io.graphml Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.io.graphml Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.io.graphml
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlConstants</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlData</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlEdge</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlGraph</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlKey</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlKeyManager</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlNode</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlPort</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlShapeEdge</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlShapeNode</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlUtils</B></A></UL>
    +</UL>
    +<H2>
    +Enum Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><B>Enum</B></A>&lt;E&gt; (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;T&gt;, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml"><B>mxGraphMlKey.keyForValues</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml"><B>mxGraphMlKey.keyTypeValues</B></A></UL>
    +</UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/io/gd/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/graphml/package-use.html b/java/docs/com/mxgraph/io/graphml/package-use.html
    new file mode 100644
    index 000000000..a9bbf7d71
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/graphml/package-use.html
    @@ -0,0 +1,263 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.io.graphml (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.io.graphml (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.io.graphml</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> used by <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlEdge.html#com.mxgraph.io"><B>mxGraphMlEdge</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Data element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlGraph.html#com.mxgraph.io"><B>mxGraphMlGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Graph element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlNode.html#com.mxgraph.io"><B>mxGraphMlNode</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Data element in the GML Structure.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> used by <A HREF="../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlData.html#com.mxgraph.io.graphml"><B>mxGraphMlData</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Data element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlEdge.html#com.mxgraph.io.graphml"><B>mxGraphMlEdge</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Data element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlGraph.html#com.mxgraph.io.graphml"><B>mxGraphMlGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Graph element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlKey.html#com.mxgraph.io.graphml"><B>mxGraphMlKey</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Key element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlKey.keyForValues.html#com.mxgraph.io.graphml"><B>mxGraphMlKey.keyForValues</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Possibles values for the keyFor Attribute</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlKey.keyTypeValues.html#com.mxgraph.io.graphml"><B>mxGraphMlKey.keyTypeValues</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Possibles values for the keyType Attribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlKeyManager.html#com.mxgraph.io.graphml"><B>mxGraphMlKeyManager</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is a singleton class that contains a map with the key elements of the
    + document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlNode.html#com.mxgraph.io.graphml"><B>mxGraphMlNode</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Data element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlPort.html#com.mxgraph.io.graphml"><B>mxGraphMlPort</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a Port element in the GML Structure.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlShapeEdge.html#com.mxgraph.io.graphml"><B>mxGraphMlShapeEdge</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class represents the properties of a JGraph edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/io/graphml/class-use/mxGraphMlShapeNode.html#com.mxgraph.io.graphml"><B>mxGraphMlShapeNode</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/io/graphml/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxCellCodec.html b/java/docs/com/mxgraph/io/mxCellCodec.html
    new file mode 100644
    index 000000000..21d275d4b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxCellCodec.html
    @@ -0,0 +1,403 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxCellCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxCellCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxCellCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">com.mxgraph.io.mxObjectCodec</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxCellCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellCodec</B><DT>extends <A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></DL>
    +</PRE>
    +
    +<P>
    +Codec for mxCells. This class is created and registered
    + dynamically at load time and used implicitely via mxCodec
    + and the mxCodecRegistry.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#accessors">accessors</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude">exclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#fields">fields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs">idrefs</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mapping">mapping</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#reverse">reverse</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#template">template</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCellCodec.html#mxCellCodec()">mxCellCodec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCellCodec.html#mxCellCodec(java.lang.Object)">mxCellCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell codec for the given template.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCellCodec.html#mxCellCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)">mxCellCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell codec for the given arguments.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCellCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes an mxCell and wraps the XML up inside the
    + XML of the user object (inversion).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCellCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes an mxCell and uses the enclosing XML node as
    + the user object for the cell (inversion).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCellCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isExcluded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +           boolean&nbsp;write)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Excludes user objects that are XML nodes.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)">addObjectValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">beforeEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#cloneTemplate(org.w3c.dom.Node)">cloneTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueFromXml(java.lang.Class, java.lang.Object)">convertValueFromXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueToXml(java.lang.Object)">convertValueToXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttributes</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChild</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChildren</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeNode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeElements</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeFields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">encodeValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)">getAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAttributeName(java.lang.String)">getAttributeName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getField(java.lang.Object, java.lang.String)">getField</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldName(java.lang.String)">getFieldName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)">getFieldTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValue(java.lang.Object, java.lang.String)">getFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)">getFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getMethod(java.lang.Object, java.lang.String, java.lang.Class[])">getMethod</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getName()">getName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getTemplate()">getTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isPrimitiveValue(java.lang.Object)">isPrimitiveValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isReference</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">processInclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)">setFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)">setFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeComplexAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writePrimitiveAttribute</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellCodec()"><!-- --></A><H3>
    +mxCellCodec</H3>
    +<PRE>
    +public <B>mxCellCodec</B>()</PRE>
    +<DL>
    +<DD>Constructs a new cell codec.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCellCodec(java.lang.Object)"><!-- --></A><H3>
    +mxCellCodec</H3>
    +<PRE>
    +public <B>mxCellCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</PRE>
    +<DL>
    +<DD>Constructs a new cell codec for the given template.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCellCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><!-- --></A><H3>
    +mxCellCodec</H3>
    +<PRE>
    +public <B>mxCellCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</PRE>
    +<DL>
    +<DD>Constructs a new cell codec for the given arguments.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)"><!-- --></A><H3>
    +isExcluded</H3>
    +<PRE>
    +public boolean <B>isExcluded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                          boolean&nbsp;write)</PRE>
    +<DL>
    +<DD>Excludes user objects that are XML nodes.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isExcluded</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>obj</CODE> - Object instance that contains the field.<DD><CODE>attr</CODE> - Fieldname of the field.<DD><CODE>value</CODE> - Value of the field.<DD><CODE>write</CODE> - Boolean indicating if the field is being encoded or
    + decoded. write is true if the field is being encoded, else it is
    + being decoded.
    +<DT><B>Returns:</B><DD>Returns true if the given attribute should be ignored.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +afterEncode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>afterEncode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Encodes an mxCell and wraps the XML up inside the
    + XML of the user object (inversion).
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object to be encoded.<DD><CODE>node</CODE> - XML node that represents the default encoding.
    +<DT><B>Returns:</B><DD>Returns the resulting node of the encoding.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +beforeDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>beforeDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Decodes an mxCell and uses the enclosing XML node as
    + the user object for the cell (inversion).
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>obj</CODE> - Object to encode the node into.
    +<DT><B>Returns:</B><DD>Returns the node used for the default decoding.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxCellCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxChildChangeCodec.html b/java/docs/com/mxgraph/io/mxChildChangeCodec.html
    new file mode 100644
    index 000000000..44d26d6e5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxChildChangeCodec.html
    @@ -0,0 +1,429 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxChildChangeCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxChildChangeCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxChildChangeCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxChildChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxChildChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxChildChangeCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">com.mxgraph.io.mxObjectCodec</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxChildChangeCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxChildChangeCodec</B><DT>extends <A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></DL>
    +</PRE>
    +
    +<P>
    +Codec for mxChildChanges. This class is created and registered
    + dynamically at load time and used implicitely via mxCodec
    + and the mxCodecRegistry.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#accessors">accessors</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude">exclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#fields">fields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs">idrefs</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mapping">mapping</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#reverse">reverse</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#template">template</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html#mxChildChangeCodec()">mxChildChangeCodec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html#mxChildChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)">mxChildChangeCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec for the given arguments.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the object after decoding.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the node for the given object after
    + encoding and return the post-processed node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the cells into the graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isReference</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +            boolean&nbsp;isWrite)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given fieldname is to be treated as a textual
    + reference (ID).</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)">addObjectValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">beforeEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#cloneTemplate(org.w3c.dom.Node)">cloneTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueFromXml(java.lang.Class, java.lang.Object)">convertValueFromXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueToXml(java.lang.Object)">convertValueToXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttributes</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChild</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChildren</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeNode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeElements</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeFields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">encodeValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)">getAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAttributeName(java.lang.String)">getAttributeName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getField(java.lang.Object, java.lang.String)">getField</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldName(java.lang.String)">getFieldName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)">getFieldTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValue(java.lang.Object, java.lang.String)">getFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)">getFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getMethod(java.lang.Object, java.lang.String, java.lang.Class[])">getMethod</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getName()">getName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getTemplate()">getTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isExcluded</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isPrimitiveValue(java.lang.Object)">isPrimitiveValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">processInclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)">setFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)">setFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeComplexAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writePrimitiveAttribute</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxChildChangeCodec()"><!-- --></A><H3>
    +mxChildChangeCodec</H3>
    +<PRE>
    +public <B>mxChildChangeCodec</B>()</PRE>
    +<DL>
    +<DD>Constructs a new model codec.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxChildChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><!-- --></A><H3>
    +mxChildChangeCodec</H3>
    +<PRE>
    +public <B>mxChildChangeCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</PRE>
    +<DL>
    +<DD>Constructs a new model codec for the given arguments.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)"><!-- --></A><H3>
    +isReference</H3>
    +<PRE>
    +public boolean <B>isReference</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                           boolean&nbsp;isWrite)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">mxObjectCodec</A></CODE></B></DD>
    +<DD>Returns true if the given fieldname is to be treated as a textual
    + reference (ID). This implementation returns true if the given fieldname
    + is in <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs"><CODE>mxObjectCodec.idrefs</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isReference</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>obj</CODE> - Object instance that contains the field.<DD><CODE>attr</CODE> - Fieldname of the field.<DD><CODE>value</CODE> - Value of the field.<DD><CODE>isWrite</CODE> - Boolean indicating if the field is being encoded or
    + decoded. isWrite is true if the field is being encoded, else it is being
    + decoded.
    +<DT><B>Returns:</B><DD>Returns true if the given attribute should be handled as a
    + reference.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +afterEncode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>afterEncode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">mxObjectCodec</A></CODE></B></DD>
    +<DD>Hook for subclassers to post-process the node for the given object after
    + encoding and return the post-processed node. This implementation returns
    + the input node. The return value of this method is returned to the
    + encoder from <encode>.
    + 
    + Parameters:
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object to be encoded.<DD><CODE>node</CODE> - XML node that represents the default encoding.
    +<DT><B>Returns:</B><DD>Returns the resulting node of the encoding.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +beforeDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>beforeDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</PRE>
    +<DL>
    +<DD>Reads the cells into the graph model. All cells are children of the root
    + element in the node.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>into</CODE> - Object to encode the node into.
    +<DT><B>Returns:</B><DD>Returns the node used for the default decoding.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +afterDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>afterDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">mxObjectCodec</A></CODE></B></DD>
    +<DD>Hook for subclassers to post-process the object after decoding. This
    + implementation returns the given object without any changes. The return
    + value of this method is returned to the decoder from
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>mxObjectCodec.decode(mxCodec, Node)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>obj</CODE> - Object that represents the default decoding.
    +<DT><B>Returns:</B><DD>Returns the result of the decoding process.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxChildChangeCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxChildChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxChildChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxCodec.html b/java/docs/com/mxgraph/io/mxCodec.html
    new file mode 100644
    index 000000000..ad9ca2671
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxCodec.html
    @@ -0,0 +1,806 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCodec</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +XML codec for Java object graphs. In order to resolve forward references
    + when reading files the XML document that contains the data must be passed
    + to the constructor.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#document">document</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the owner document of the codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#encodeDefaults">encodeDefaults</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if default values should be encoded.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#objects">objects</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from IDs to objects.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#mxCodec()">mxCodec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an XML encoder/decoder with a new owner document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#mxCodec(org.w3c.dom.Document)">mxCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an XML encoder/decoder for the specified owner document.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#decode(org.w3c.dom.Node)">decode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes the given XML node using <A HREF="../../../com/mxgraph/io/mxCodec.html#decode(org.w3c.dom.Node, java.lang.Object)"><CODE>decode(Node, Object)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#decode(org.w3c.dom.Node, java.lang.Object)">decode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes the given XML node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#decodeCell(org.w3c.dom.Node, boolean)">decodeCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +           boolean&nbsp;restoreStructures)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes cells that have been encoded using inversion, ie.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#encode(java.lang.Object)">encode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the specified object and returns the resulting XML node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#encodeCell(com.mxgraph.model.mxICell, org.w3c.dom.Node, boolean)">encodeCell</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;cell,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +           boolean&nbsp;includeChildren)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encoding of cell hierarchies is built-into the core, but is a
    + higher-level function that needs to be explicitely used by the
    + respective object encoders (eg.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#getDocument()">getDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the owner document of the codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#getElementById(java.lang.String)">getElementById</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the element with the given ID from the document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#getElementById(java.lang.String, java.lang.String)">getElementById</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the element with the given ID from document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#getId(java.lang.Object)">getId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the ID of the specified object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#getObject(java.lang.String)">getObject</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the decoded object for the element with the specified ID in
    + <A HREF="../../../com/mxgraph/io/mxCodec.html#document"><CODE>document</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#getObjects()">getObjects</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the object lookup table.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#insertIntoGraph(com.mxgraph.model.mxICell)">insertIntoGraph</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the given cell into its parent and terminal cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#isEncodeDefaults()">isEncodeDefaults</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns if default values of member variables should be encoded.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#lookup(java.lang.String)">lookup</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to implement a custom lookup mechanism for cell IDs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#putObject(java.lang.String, java.lang.Object)">putObject</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;object)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assoiates the given object with the given ID.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#reference(java.lang.Object)">reference</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to implement a custom method for retrieving IDs from
    + objects.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#setAttribute(org.w3c.dom.Node, java.lang.String, java.lang.Object)">setAttribute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the attribute on the specified node to value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#setDocument(org.w3c.dom.Document)">setDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the owner document of the codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodec.html#setEncodeDefaults(boolean)">setEncodeDefaults</A></B>(boolean&nbsp;encodeDefaults)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets if default values of member variables should be encoded.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="document"><!-- --></A><H3>
    +document</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>document</B></PRE>
    +<DL>
    +<DD>Holds the owner document of the codec.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="objects"><!-- --></A><H3>
    +objects</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>objects</B></PRE>
    +<DL>
    +<DD>Maps from IDs to objects.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="encodeDefaults"><!-- --></A><H3>
    +encodeDefaults</H3>
    +<PRE>
    +protected boolean <B>encodeDefaults</B></PRE>
    +<DL>
    +<DD>Specifies if default values should be encoded. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCodec()"><!-- --></A><H3>
    +mxCodec</H3>
    +<PRE>
    +public <B>mxCodec</B>()</PRE>
    +<DL>
    +<DD>Constructs an XML encoder/decoder with a new owner document.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCodec(org.w3c.dom.Document)"><!-- --></A><H3>
    +mxCodec</H3>
    +<PRE>
    +public <B>mxCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +<DD>Constructs an XML encoder/decoder for the specified owner document.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - Optional XML document that contains the data. If no document
    + is specified then a new document is created using mxUtils.createDocument</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getDocument()"><!-- --></A><H3>
    +getDocument</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>getDocument</B>()</PRE>
    +<DL>
    +<DD>Returns the owner document of the codec.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the owner document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDocument(org.w3c.dom.Document)"><!-- --></A><H3>
    +setDocument</H3>
    +<PRE>
    +public void <B>setDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the owner document of the codec.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEncodeDefaults()"><!-- --></A><H3>
    +isEncodeDefaults</H3>
    +<PRE>
    +public boolean <B>isEncodeDefaults</B>()</PRE>
    +<DL>
    +<DD>Returns if default values of member variables should be encoded.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEncodeDefaults(boolean)"><!-- --></A><H3>
    +setEncodeDefaults</H3>
    +<PRE>
    +public void <B>setEncodeDefaults</B>(boolean&nbsp;encodeDefaults)</PRE>
    +<DL>
    +<DD>Sets if default values of member variables should be encoded.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getObjects()"><!-- --></A><H3>
    +getObjects</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getObjects</B>()</PRE>
    +<DL>
    +<DD>Returns the object lookup table.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="putObject(java.lang.String, java.lang.Object)"><!-- --></A><H3>
    +putObject</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>putObject</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;object)</PRE>
    +<DL>
    +<DD>Assoiates the given object with the given ID.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>id</CODE> - ID for the object to be associated with.<DD><CODE>object</CODE> - Object to be associated with the ID.
    +<DT><B>Returns:</B><DD>Returns the given object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getObject(java.lang.String)"><!-- --></A><H3>
    +getObject</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getObject</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
    +<DL>
    +<DD>Returns the decoded object for the element with the specified ID in
    + <A HREF="../../../com/mxgraph/io/mxCodec.html#document"><CODE>document</CODE></A>. If the object is not known then <A HREF="../../../com/mxgraph/io/mxCodec.html#lookup(java.lang.String)"><CODE>lookup(String)</CODE></A>
    + is used to find an object. If no object is found, then the element with
    + the respective ID from the document is parsed using <A HREF="../../../com/mxgraph/io/mxCodec.html#decode(org.w3c.dom.Node)"><CODE>decode(Node)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>id</CODE> - ID of the object to be returned.
    +<DT><B>Returns:</B><DD>Returns the object for the given ID.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="lookup(java.lang.String)"><!-- --></A><H3>
    +lookup</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>lookup</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
    +<DL>
    +<DD>Hook for subclassers to implement a custom lookup mechanism for cell IDs.
    + This implementation always returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>id</CODE> - ID of the object to be returned.
    +<DT><B>Returns:</B><DD>Returns the object for the given ID.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getElementById(java.lang.String)"><!-- --></A><H3>
    +getElementById</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>getElementById</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
    +<DL>
    +<DD>Returns the element with the given ID from the document.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>id</CODE> - ID of the element to be returned.
    +<DT><B>Returns:</B><DD>Returns the element for the given ID.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getElementById(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getElementById</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>getElementById</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr)</PRE>
    +<DL>
    +<DD>Returns the element with the given ID from document. The optional attr
    + argument specifies the name of the ID attribute. Default is "id". The
    + XPath expression used to find the element is //*[@attr='arg'] where attr
    + is the name of the ID attribute and arg is the given id.
    + 
    + Parameters:
    + 
    + id - String that contains the ID.
    + attr - Optional string for the attributename. Default is id.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getId(java.lang.Object)"><!-- --></A><H3>
    +getId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Returns the ID of the specified object. This implementation calls
    + reference first and if that returns null handles the object as an
    + mxCell by returning their IDs using mxCell.getId. If no ID exists for
    + the given cell, then an on-the-fly ID is generated using
    + mxCellPath.create.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>obj</CODE> - Object to return the ID for.
    +<DT><B>Returns:</B><DD>Returns the ID for the given object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reference(java.lang.Object)"><!-- --></A><H3>
    +reference</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>reference</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Hook for subclassers to implement a custom method for retrieving IDs from
    + objects. This implementation always returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>obj</CODE> - Object whose ID should be returned.
    +<DT><B>Returns:</B><DD>Returns the ID for the given object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encode(java.lang.Object)"><!-- --></A><H3>
    +encode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>encode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Encodes the specified object and returns the resulting XML node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>obj</CODE> - Object to be encoded.
    +<DT><B>Returns:</B><DD>Returns an XML node that represents the given object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decode(org.w3c.dom.Node)"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>decode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Decodes the given XML node using <A HREF="../../../com/mxgraph/io/mxCodec.html#decode(org.w3c.dom.Node, java.lang.Object)"><CODE>decode(Node, Object)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - XML node to be decoded.
    +<DT><B>Returns:</B><DD>Returns an object that represents the given node.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decode(org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>decode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</PRE>
    +<DL>
    +<DD>Decodes the given XML node. The optional "into" argument specifies an
    + existing object to be used. If no object is given, then a new
    + instance is created using the constructor from the codec.
    + 
    + The function returns the passed in object or the new instance if no
    + object was given.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>into</CODE> - Optional object to be decodec into.
    +<DT><B>Returns:</B><DD>Returns an object that represents the given node.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encodeCell(com.mxgraph.model.mxICell, org.w3c.dom.Node, boolean)"><!-- --></A><H3>
    +encodeCell</H3>
    +<PRE>
    +public void <B>encodeCell</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;cell,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                       boolean&nbsp;includeChildren)</PRE>
    +<DL>
    +<DD>Encoding of cell hierarchies is built-into the core, but is a
    + higher-level function that needs to be explicitely used by the
    + respective object encoders (eg. mxModelCodec, mxChildChangeCodec
    + and mxRootChangeCodec). This implementation writes the given cell
    + and its children as a (flat) sequence into the given node. The
    + children are not encoded if the optional includeChildren is false.
    + The function is in charge of adding the result into the given node
    + and has no return value.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - mxCell to be encoded.<DD><CODE>node</CODE> - Parent XML node to add the encoded cell into.<DD><CODE>includeChildren</CODE> - Boolean indicating if the method
    + should include all descendents.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeCell(org.w3c.dom.Node, boolean)"><!-- --></A><H3>
    +decodeCell</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>decodeCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                          boolean&nbsp;restoreStructures)</PRE>
    +<DL>
    +<DD>Decodes cells that have been encoded using inversion, ie. where the
    + user object is the enclosing node in the XML, and restores the group
    + and graph structure in the cells. Returns a new <mxCell> instance
    + that represents the given node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - XML node that contains the cell data.<DD><CODE>restoreStructures</CODE> - Boolean indicating whether the graph
    + structure should be restored by calling insert and insertEdge on the
    + parent and terminals, respectively.
    +<DT><B>Returns:</B><DD>Graph cell that represents the given node.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertIntoGraph(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +insertIntoGraph</H3>
    +<PRE>
    +public void <B>insertIntoGraph</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Inserts the given cell into its parent and terminal cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAttribute(org.w3c.dom.Node, java.lang.String, java.lang.Object)"><!-- --></A><H3>
    +setAttribute</H3>
    +<PRE>
    +public static void <B>setAttribute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the attribute on the specified node to value. This is a
    + helper method that makes sure the attribute and value arguments
    + are not null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - XML node to set the attribute for.<DD><CODE>attribute</CODE> - Name of the attribute whose value should be set.<DD><CODE>value</CODE> - New value of the attribute.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxCodecRegistry.html b/java/docs/com/mxgraph/io/mxCodecRegistry.html
    new file mode 100644
    index 000000000..89efcf065
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxCodecRegistry.html
    @@ -0,0 +1,481 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxCodecRegistry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCodecRegistry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCodecRegistry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxCodecRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCodecRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxCodecRegistry</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxCodecRegistry</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCodecRegistry</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Singleton class that acts as a global registry for codecs. See
    + <A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><CODE>mxCodec</CODE></A> for an example.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#aliases">aliases</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from classnames to codecnames.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#codecs">codecs</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from constructor names to codecs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#packages">packages</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the list of known packages.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#mxCodecRegistry()">mxCodecRegistry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#addAlias(java.lang.String, java.lang.String)">addAlias</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;classname,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;codecname)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds an alias for mapping a classname to a codecname.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#addPackage(java.lang.String)">addPackage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;packagename)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given package name to the list of known package names.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#getClassForName(java.lang.String)">getClassForName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a class that corresponds to the given name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#getCodec(java.lang.String)">getCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a codec that handles the given object, which can be an object
    + instance or an XML node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#getInstanceForName(java.lang.String)">getInstanceForName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new instance for the given class name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#getName(java.lang.Object)">getName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;instance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the name that identifies the codec associated
    + with the given instance..</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html#register(com.mxgraph.io.mxObjectCodec)">register</A></B>(<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>&nbsp;codec)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers a new codec and associates the name of the template constructor
    + in the codec with the codec object.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="codecs"><!-- --></A><H3>
    +codecs</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>&gt; <B>codecs</B></PRE>
    +<DL>
    +<DD>Maps from constructor names to codecs.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="aliases"><!-- --></A><H3>
    +aliases</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>aliases</B></PRE>
    +<DL>
    +<DD>Maps from classnames to codecnames.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="packages"><!-- --></A><H3>
    +packages</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>packages</B></PRE>
    +<DL>
    +<DD>Holds the list of known packages. Packages are used to prefix short
    + class names (eg. mxCell) in XML markup.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCodecRegistry()"><!-- --></A><H3>
    +mxCodecRegistry</H3>
    +<PRE>
    +public <B>mxCodecRegistry</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="register(com.mxgraph.io.mxObjectCodec)"><!-- --></A><H3>
    +register</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A> <B>register</B>(<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>&nbsp;codec)</PRE>
    +<DL>
    +<DD>Registers a new codec and associates the name of the template constructor
    + in the codec with the codec object. Automatically creates an alias if the
    + codename and the classname are not equal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addAlias(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +addAlias</H3>
    +<PRE>
    +public static void <B>addAlias</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;classname,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;codecname)</PRE>
    +<DL>
    +<DD>Adds an alias for mapping a classname to a codecname.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCodec(java.lang.String)"><!-- --></A><H3>
    +getCodec</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A> <B>getCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Returns a codec that handles the given object, which can be an object
    + instance or an XML node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - Java class name.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addPackage(java.lang.String)"><!-- --></A><H3>
    +addPackage</H3>
    +<PRE>
    +public static void <B>addPackage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;packagename)</PRE>
    +<DL>
    +<DD>Adds the given package name to the list of known package names.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>packagename</CODE> - Name of the package to be added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInstanceForName(java.lang.String)"><!-- --></A><H3>
    +getInstanceForName</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getInstanceForName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Creates and returns a new instance for the given class name.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name of the class to be instantiated.
    +<DT><B>Returns:</B><DD>Returns a new instance of the given class.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getClassForName(java.lang.String)"><!-- --></A><H3>
    +getClassForName</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt; <B>getClassForName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Returns a class that corresponds to the given name.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the class for the given name.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getName(java.lang.Object)"><!-- --></A><H3>
    +getName</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;instance)</PRE>
    +<DL>
    +<DD>Returns the name that identifies the codec associated
    + with the given instance..
    +
    + The I/O system uses unqualified classnames, eg. for a
    + <code>com.mxgraph.model.mxCell</code> this returns
    + <code>mxCell</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>instance</CODE> - Instance whose node name should be returned.
    +<DT><B>Returns:</B><DD>Returns a string that identifies the codec.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCodecRegistry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxCodecRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCodecRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxGdCodec.html b/java/docs/com/mxgraph/io/mxGdCodec.html
    new file mode 100644
    index 000000000..3b608110a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxGdCodec.html
    @@ -0,0 +1,286 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxGdCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGdCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxGdCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxGdCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxGdCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGdCodec</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Parses a GD .txt file and imports it in the given graph.<br/>
    + This class depends from the classes contained in
    + com.mxgraph.io.gd.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGdCodec.html#mxGdCodec()">mxGdCodec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGdCodec.html#decode(com.mxgraph.io.gd.mxGdDocument, com.mxgraph.view.mxGraph)">decode</A></B>(<A HREF="../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>&nbsp;document,
    +       <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Recieves a mxGDDocument document and parses it generating a new graph that is inserted in graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGdCodec.html#encode(com.mxgraph.view.mxGraph)">encode</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a GD document with the cells in the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGdCodec()"><!-- --></A><H3>
    +mxGdCodec</H3>
    +<PRE>
    +public <B>mxGdCodec</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="decode(com.mxgraph.io.gd.mxGdDocument, com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public static void <B>decode</B>(<A HREF="../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>&nbsp;document,
    +                          <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Recieves a mxGDDocument document and parses it generating a new graph that is inserted in graph.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - GD to be parsed<DD><CODE>graph</CODE> - Graph where the parsed graph is included.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encode(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +encode</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A> <B>encode</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Generates a GD document with the cells in the graph.
    + The actual implementation only uses the cells located in the first level.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - Graph with the cells.
    +<DT><B>Returns:</B><DD>The GD document generated.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGdCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxGdCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGdCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxGenericChangeCodec.html b/java/docs/com/mxgraph/io/mxGenericChangeCodec.html
    new file mode 100644
    index 000000000..6a8bf394f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxGenericChangeCodec.html
    @@ -0,0 +1,356 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:02 CEST 2012 -->
    +<TITLE>
    +mxGenericChangeCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGenericChangeCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGenericChangeCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxGenericChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGenericChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxGenericChangeCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">com.mxgraph.io.mxObjectCodec</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxGenericChangeCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGenericChangeCodec</B><DT>extends <A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></DL>
    +</PRE>
    +
    +<P>
    +Codec for mxChildChanges. This class is created and registered
    + dynamically at load time and used implicitely via mxCodec
    + and the mxCodecRegistry.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html#fieldname">fieldname</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#accessors">accessors</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude">exclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#fields">fields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs">idrefs</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mapping">mapping</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#reverse">reverse</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#template">template</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html#mxGenericChangeCodec(java.lang.Object, java.lang.String)">mxGenericChangeCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html#mxGenericChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map, java.lang.String)">mxGenericChangeCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec for the given arguments.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the object after decoding.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)">addObjectValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">beforeEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#cloneTemplate(org.w3c.dom.Node)">cloneTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueFromXml(java.lang.Class, java.lang.Object)">convertValueFromXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueToXml(java.lang.Object)">convertValueToXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttributes</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChild</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChildren</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeNode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeElements</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeFields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">encodeValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)">getAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAttributeName(java.lang.String)">getAttributeName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getField(java.lang.Object, java.lang.String)">getField</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldName(java.lang.String)">getFieldName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)">getFieldTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValue(java.lang.Object, java.lang.String)">getFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)">getFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getMethod(java.lang.Object, java.lang.String, java.lang.Class[])">getMethod</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getName()">getName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getTemplate()">getTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isExcluded</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isPrimitiveValue(java.lang.Object)">isPrimitiveValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isReference</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">processInclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)">setFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)">setFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeComplexAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writePrimitiveAttribute</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="fieldname"><!-- --></A><H3>
    +fieldname</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>fieldname</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGenericChangeCodec(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +mxGenericChangeCodec</H3>
    +<PRE>
    +public <B>mxGenericChangeCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</PRE>
    +<DL>
    +<DD>Constructs a new model codec.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGenericChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map, java.lang.String)"><!-- --></A><H3>
    +mxGenericChangeCodec</H3>
    +<PRE>
    +public <B>mxGenericChangeCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</PRE>
    +<DL>
    +<DD>Constructs a new model codec for the given arguments.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +afterDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>afterDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">mxObjectCodec</A></CODE></B></DD>
    +<DD>Hook for subclassers to post-process the object after decoding. This
    + implementation returns the given object without any changes. The return
    + value of this method is returned to the decoder from
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>mxObjectCodec.decode(mxCodec, Node)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>obj</CODE> - Object that represents the default decoding.
    +<DT><B>Returns:</B><DD>Returns the result of the decoding process.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGenericChangeCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxGenericChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGenericChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxGraphMlCodec.html b/java/docs/com/mxgraph/io/mxGraphMlCodec.html
    new file mode 100644
    index 000000000..570116293
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxGraphMlCodec.html
    @@ -0,0 +1,382 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxGraphMlCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphMlCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxGraphMlCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxGraphMlCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxGraphMlCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphMlCodec</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Parses a GraphML .graphml file and imports it in the given graph.<br/>
    + 
    + See wikipedia.org/wiki/GraphML for more on GraphML.
    + 
    + This class depends from the classes contained in
    + com.mxgraph.io.gmlImplements.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html#mxGraphMlCodec()">mxGraphMlCodec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html#addEdgeData(com.mxgraph.io.graphml.mxGraphMlEdge, com.mxgraph.model.mxCell)">addEdgeData</A></B>(<A HREF="../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&nbsp;gmlEdge,
    +            <A HREF="../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>&nbsp;v)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the edge data in the gmlEdge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html#addNodeData(com.mxgraph.io.graphml.mxGraphMlNode, com.mxgraph.model.mxCell)">addNodeData</A></B>(<A HREF="../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;gmlNode,
    +            <A HREF="../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>&nbsp;v)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the node data in the gmlNode.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html#decode(org.w3c.dom.Document, com.mxgraph.view.mxGraph)">decode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document,
    +       <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Receives a GraphMl document and parses it generating a new graph that is inserted in graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html#decodeGraph(com.mxgraph.view.mxGraph, java.lang.Object, com.mxgraph.io.graphml.mxGraphMlGraph)">decodeGraph</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +            <A HREF="../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&nbsp;gmlGraph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Gml graph with the data of the vertexes and edges in the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html#encode(com.mxgraph.view.mxGraph)">encode</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Xml document with the cells in the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html#encodeXML(com.mxgraph.io.graphml.mxGraphMlGraph)">encodeXML</A></B>(<A HREF="../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&nbsp;gmlGraph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Xml document with the gmlGraph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphMlCodec()"><!-- --></A><H3>
    +mxGraphMlCodec</H3>
    +<PRE>
    +public <B>mxGraphMlCodec</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="decode(org.w3c.dom.Document, com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public static void <B>decode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document,
    +                          <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Receives a GraphMl document and parses it generating a new graph that is inserted in graph.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>document</CODE> - XML to be parsed<DD><CODE>graph</CODE> - Graph where the parsed graph is included.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encodeXML(com.mxgraph.io.graphml.mxGraphMlGraph)"><!-- --></A><H3>
    +encodeXML</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>encodeXML</B>(<A HREF="../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&nbsp;gmlGraph)</PRE>
    +<DL>
    +<DD>Generates a Xml document with the gmlGraph.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>gmlGraph</CODE> - Graph model.
    +<DT><B>Returns:</B><DD>The Xml document generated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encode(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +encode</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>encode</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Generates a Xml document with the cells in the graph.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - Graph with the cells.
    +<DT><B>Returns:</B><DD>The Xml document generated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeGraph(com.mxgraph.view.mxGraph, java.lang.Object, com.mxgraph.io.graphml.mxGraphMlGraph)"><!-- --></A><H3>
    +decodeGraph</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A> <B>decodeGraph</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                         <A HREF="../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&nbsp;gmlGraph)</PRE>
    +<DL>
    +<DD>Returns a Gml graph with the data of the vertexes and edges in the graph.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>gmlGraph</CODE> - Gml document where the elements are put.<DD><CODE>parent</CODE> - Parent cell of the vertexes and edges to be added.<DD><CODE>graph</CODE> - Graph that contains the vertexes and edges.
    +<DT><B>Returns:</B><DD>Returns the document with the elements added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addNodeData(com.mxgraph.io.graphml.mxGraphMlNode, com.mxgraph.model.mxCell)"><!-- --></A><H3>
    +addNodeData</H3>
    +<PRE>
    +public static void <B>addNodeData</B>(<A HREF="../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;gmlNode,
    +                               <A HREF="../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>&nbsp;v)</PRE>
    +<DL>
    +<DD>Add the node data in the gmlNode.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>gmlNode</CODE> - Gml node where the data add.<DD><CODE>v</CODE> - mxCell where data are obtained.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addEdgeData(com.mxgraph.io.graphml.mxGraphMlEdge, com.mxgraph.model.mxCell)"><!-- --></A><H3>
    +addEdgeData</H3>
    +<PRE>
    +public static void <B>addEdgeData</B>(<A HREF="../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&nbsp;gmlEdge,
    +                               <A HREF="../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>&nbsp;v)</PRE>
    +<DL>
    +<DD>Add the edge data in the gmlEdge.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>gmlEdge</CODE> - Gml edge where the data add.<DD><CODE>v</CODE> - mxCell where data are obtained.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphMlCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxGraphMlCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphMlCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxModelCodec.html b/java/docs/com/mxgraph/io/mxModelCodec.html
    new file mode 100644
    index 000000000..8f442f091
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxModelCodec.html
    @@ -0,0 +1,369 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxModelCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxModelCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxModelCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxModelCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxModelCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxModelCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">com.mxgraph.io.mxObjectCodec</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxModelCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxModelCodec</B><DT>extends <A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></DL>
    +</PRE>
    +
    +<P>
    +Codec for mxGraphModels. This class is created and registered
    + dynamically at load time and used implicitly via mxCodec
    + and the mxCodecRegistry.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#accessors">accessors</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude">exclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#fields">fields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs">idrefs</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mapping">mapping</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#reverse">reverse</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#template">template</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxModelCodec.html#mxModelCodec()">mxModelCodec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxModelCodec.html#mxModelCodec(java.lang.Object)">mxModelCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec for the given template.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxModelCodec.html#mxModelCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)">mxModelCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec for the given arguments.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxModelCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the cells into the graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxModelCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the given mxGraphModel by writing a (flat) XML sequence
    + of cell nodes as produced by the mxCellCodec.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)">addObjectValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">beforeEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#cloneTemplate(org.w3c.dom.Node)">cloneTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueFromXml(java.lang.Class, java.lang.Object)">convertValueFromXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueToXml(java.lang.Object)">convertValueToXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttributes</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChild</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChildren</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeNode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeElements</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeFields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">encodeValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)">getAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAttributeName(java.lang.String)">getAttributeName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getField(java.lang.Object, java.lang.String)">getField</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldName(java.lang.String)">getFieldName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)">getFieldTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValue(java.lang.Object, java.lang.String)">getFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)">getFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getMethod(java.lang.Object, java.lang.String, java.lang.Class[])">getMethod</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getName()">getName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getTemplate()">getTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isExcluded</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isPrimitiveValue(java.lang.Object)">isPrimitiveValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isReference</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">processInclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)">setFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)">setFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeComplexAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writePrimitiveAttribute</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxModelCodec()"><!-- --></A><H3>
    +mxModelCodec</H3>
    +<PRE>
    +public <B>mxModelCodec</B>()</PRE>
    +<DL>
    +<DD>Constructs a new model codec.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxModelCodec(java.lang.Object)"><!-- --></A><H3>
    +mxModelCodec</H3>
    +<PRE>
    +public <B>mxModelCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</PRE>
    +<DL>
    +<DD>Constructs a new model codec for the given template.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxModelCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><!-- --></A><H3>
    +mxModelCodec</H3>
    +<PRE>
    +public <B>mxModelCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</PRE>
    +<DL>
    +<DD>Constructs a new model codec for the given arguments.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +encodeObject</H3>
    +<PRE>
    +protected void <B>encodeObject</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Encodes the given mxGraphModel by writing a (flat) XML sequence
    + of cell nodes as produced by the mxCellCodec. The sequence is
    + wrapped-up in a node with the name root.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object to be encoded.<DD><CODE>node</CODE> - XML node that contains the encoded object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +beforeDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>beforeDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</PRE>
    +<DL>
    +<DD>Reads the cells into the graph model. All cells are children of the root
    + element in the node.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>into</CODE> - Object to encode the node into.
    +<DT><B>Returns:</B><DD>Returns the node used for the default decoding.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxModelCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxModelCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxModelCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxObjectCodec.html b/java/docs/com/mxgraph/io/mxObjectCodec.html
    new file mode 100644
    index 000000000..e7c1d9b84
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxObjectCodec.html
    @@ -0,0 +1,1546 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxObjectCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxObjectCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxObjectCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxObjectCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxObjectCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxObjectCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxObjectCodec</B>
    +</PRE>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A>, <A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A>, <A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io">mxGenericChangeCodec</A>, <A HREF="../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io">mxModelCodec</A>, <A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io">mxRootChangeCodec</A>, <A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A>, <A HREF="../../../com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io">mxTerminalChangeCodec</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxObjectCodec</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Generic codec for Java objects. See below for a detailed description of
    + the encoding/decoding scheme.
    + 
    + Note: Since booleans are numbers in JavaScript, all boolean values are
    + encoded into 1 for true and 0 for false.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#accessors">accessors</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches accessors for the given method names.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude">exclude</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array containing the variable names that should be ignored by the codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A>&gt;&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#fields">fields</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches fields for faster access.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs">idrefs</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array containing the variable names that should be turned into or
    + converted from references.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mapping">mapping</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from from fieldnames to XML attribute names.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#reverse">reverse</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from from XML attribute names to fieldnames.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#template">template</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the template object associated with this codec.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mxObjectCodec(java.lang.Object)">mxObjectCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new codec for the specified template object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mxObjectCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)">mxObjectCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new codec for the specified template object.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)">addObjectValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the decoded child node as a value of the given object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the object after decoding.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the node for the given object after
    + encoding and return the post-processed node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to pre-process the node for the specified object
    + and return the node to be used for further processing by
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>decode(mxCodec, Node)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">beforeEncode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to pre-process the object before encoding.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#cloneTemplate(org.w3c.dom.Node)">cloneTemplate</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new instance of the template object for representing the given
    + node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueFromXml(java.lang.Class, java.lang.Object)">convertValueFromXml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;type,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts XML attribute values to object of the given type.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueToXml(java.lang.Object)">convertValueToXml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts true to "1" and false to "0".</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)">decode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the given node into the object or returns a new object
    + representing the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the given node into the object or returns a new object
    + representing the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttribute</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;attr,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the given attribute into the specified object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttributes</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes all attributes of the given node using decodeAttribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChild</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;child,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the specified child into the given object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChildren</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodec all children of the given node using decodeChild.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeNode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calls decodeAttributes and decodeChildren for the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the specified object and returns a node representing then given
    + object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeElements</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the child objects of arrays, maps and collections.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeFields</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the declared fields of the given object into the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the value of each member in then given obj
    + into the given node using <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><CODE>encodeFields(mxCodec, Object, Node)</CODE></A>
    + and <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><CODE>encodeElements(mxCodec, Object, Node)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">encodeValue</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts the given value according to the mappings
    + and id-refs in this codec and uses
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><CODE>writeAttribute(mxCodec, Object, String, Object, Node)</CODE></A>
    + to write the attribute into the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)">getAccessor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A>&nbsp;field,
    +            boolean&nbsp;isGetter)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the accessor (getter, setter) for the specified field.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAttributeName(java.lang.String)">getAttributeName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the XML node attribute name for the given Java field name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getField(java.lang.Object, java.lang.String)">getField</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the field with the specified name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldName(java.lang.String)">getFieldName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attributename)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Java field name for the given XML attribute name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)">getFieldTemplate</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the template instance for the given field.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValue(java.lang.Object, java.lang.String)">getFieldValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the field with the specified name in the specified
    + object instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)">getFieldValueWithAccessor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A>&nbsp;field)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the field using the accessor for the field if one exists.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getMethod(java.lang.Object, java.lang.String, java.lang.Class[])">getMethod</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;methodname,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>[]&nbsp;params)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the method with the specified signature.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getName()">getName</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the name used for the nodenames and lookup of the codec when
    + classes are encoded and nodes are decoded.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getTemplate()">getTemplate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the template object associated with this codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isExcluded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +           boolean&nbsp;write)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given attribute is to be ignored by the codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isPrimitiveValue(java.lang.Object)">isPrimitiveValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given object is a primitive value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isReference</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +            boolean&nbsp;isWrite)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given fieldname is to be treated as a textual
    + reference (ID).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">processInclude</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given node is an include directive and executes the
    + include by decoding the XML document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)">setFieldValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the field with the specified name
    + in the specified object instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)">setFieldValueWithAccessor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A>&nbsp;field,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the given field using the accessor if one exists.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeAttribute</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the given value into node using writePrimitiveAttribute
    + or writeComplexAttribute depending on the type of the value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeComplexAttribute</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the given value as a child node of the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writePrimitiveAttribute</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the given value as an attribute of the given node.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="template"><!-- --></A><H3>
    +template</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>template</B></PRE>
    +<DL>
    +<DD>Holds the template object associated with this codec.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="exclude"><!-- --></A><H3>
    +exclude</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>exclude</B></PRE>
    +<DL>
    +<DD>Array containing the variable names that should be ignored by the codec.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="idrefs"><!-- --></A><H3>
    +idrefs</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>idrefs</B></PRE>
    +<DL>
    +<DD>Array containing the variable names that should be turned into or
    + converted from references. See <mxCodec.getId> and <mxCodec.getObject>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mapping"><!-- --></A><H3>
    +mapping</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>mapping</B></PRE>
    +<DL>
    +<DD>Maps from from fieldnames to XML attribute names.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="reverse"><!-- --></A><H3>
    +reverse</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>reverse</B></PRE>
    +<DL>
    +<DD>Maps from from XML attribute names to fieldnames.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="accessors"><!-- --></A><H3>
    +accessors</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A>&gt; <B>accessors</B></PRE>
    +<DL>
    +<DD>Caches accessors for the given method names.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fields"><!-- --></A><H3>
    +fields</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A>&gt;&gt; <B>fields</B></PRE>
    +<DL>
    +<DD>Caches fields for faster access.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxObjectCodec(java.lang.Object)"><!-- --></A><H3>
    +mxObjectCodec</H3>
    +<PRE>
    +public <B>mxObjectCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</PRE>
    +<DL>
    +<DD>Constructs a new codec for the specified template object.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxObjectCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><!-- --></A><H3>
    +mxObjectCodec</H3>
    +<PRE>
    +public <B>mxObjectCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</PRE>
    +<DL>
    +<DD>Constructs a new codec for the specified template object. The variables
    + in the optional exclude array are ignored by the codec. Variables in the
    + optional idrefs array are turned into references in the XML. The
    + optional mapping may be used to map from variable names to XML
    + attributes. The argument is created as follows:
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>template</CODE> - Prototypical instance of the object to be encoded/decoded.<DD><CODE>exclude</CODE> - Optional array of fieldnames to be ignored.<DD><CODE>idrefs</CODE> - Optional array of fieldnames to be converted to/from references.<DD><CODE>mapping</CODE> - Optional mapping from field- to attributenames.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getName()"><!-- --></A><H3>
    +getName</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getName</B>()</PRE>
    +<DL>
    +<DD>Returns the name used for the nodenames and lookup of the codec when
    + classes are encoded and nodes are decoded. For classes to work with
    + this the codec registry automatically adds an alias for the classname
    + if that is different than what this returns. The default implementation
    + returns the classname of the template class.
    + 
    + Here is an example on how to use this for renaming mxCell nodes:
    + <code>
    + mxCodecRegistry.register(new mxCellCodec()
    + {
    +   public String getName()
    +   {
    +     return "anotherName";
    +   }
    + });
    + </code>
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTemplate()"><!-- --></A><H3>
    +getTemplate</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getTemplate</B>()</PRE>
    +<DL>
    +<DD>Returns the template object associated with this codec.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the template object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneTemplate(org.w3c.dom.Node)"><!-- --></A><H3>
    +cloneTemplate</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cloneTemplate</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Returns a new instance of the template object for representing the given
    + node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - XML node that the object is going to represent.
    +<DT><B>Returns:</B><DD>Returns a new template instance.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)"><!-- --></A><H3>
    +isExcluded</H3>
    +<PRE>
    +public boolean <B>isExcluded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                          boolean&nbsp;write)</PRE>
    +<DL>
    +<DD>Returns true if the given attribute is to be ignored by the codec. This
    + implementation returns true if the given fieldname is in
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude"><CODE>exclude</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>obj</CODE> - Object instance that contains the field.<DD><CODE>attr</CODE> - Fieldname of the field.<DD><CODE>value</CODE> - Value of the field.<DD><CODE>write</CODE> - Boolean indicating if the field is being encoded or
    + decoded. write is true if the field is being encoded, else it is
    + being decoded.
    +<DT><B>Returns:</B><DD>Returns true if the given attribute should be ignored.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)"><!-- --></A><H3>
    +isReference</H3>
    +<PRE>
    +public boolean <B>isReference</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                           boolean&nbsp;isWrite)</PRE>
    +<DL>
    +<DD>Returns true if the given fieldname is to be treated as a textual
    + reference (ID). This implementation returns true if the given fieldname
    + is in <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs"><CODE>idrefs</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>obj</CODE> - Object instance that contains the field.<DD><CODE>attr</CODE> - Fieldname of the field.<DD><CODE>value</CODE> - Value of the field.<DD><CODE>isWrite</CODE> - Boolean indicating if the field is being encoded or
    + decoded. isWrite is true if the field is being encoded, else it is being
    + decoded.
    +<DT><B>Returns:</B><DD>Returns true if the given attribute should be handled as a
    + reference.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encode(com.mxgraph.io.mxCodec, java.lang.Object)"><!-- --></A><H3>
    +encode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>encode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Encodes the specified object and returns a node representing then given
    + object. Calls beforeEncode after creating the node and afterEncode
    + with the resulting node after processing.
    + 
    + Enc is a reference to the calling encoder. It is used to encode complex
    + objects and create references.
    + 
    + This implementation encodes all variables of an object according to the
    + following rules:
    + 
    + <ul>
    + <li>If the variable name is in <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude"><CODE>exclude</CODE></A> then it is ignored.</li>
    + <li>If the variable name is in <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs"><CODE>idrefs</CODE></A> then
    + <A HREF="../../../com/mxgraph/io/mxCodec.html#getId(java.lang.Object)"><CODE>mxCodec.getId(Object)</CODE></A> is used to replace the object with its ID.
    + </li>
    + <li>The variable name is mapped using <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mapping"><CODE>mapping</CODE></A>.</li>
    + <li>If obj is an array and the variable name is numeric (ie. an index) then it
    + is not encoded.</li>
    + <li>If the value is an object, then the codec is used to create a child
    + node with the variable name encoded into the "as" attribute.</li>
    + <li>Else, if <A HREF="../../../com/mxgraph/io/mxCodec.html#isEncodeDefaults()"><CODE>mxCodec.isEncodeDefaults()</CODE></A> is true or
    + the value differs from the template value, then ...
    + <ul>
    + <li>... if obj is not an array, then the value is mapped to an
    + attribute.</li>
    + <li>... else if obj is an array, the value is mapped to an add child
    + with a value attribute or a text child node, if the value is a function.
    + </li>
    + </ul>
    + </li>
    + </ul>
    + 
    + If no ID exists for a variable in <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs"><CODE>idrefs</CODE></A> or if an object cannot be
    + encoded, a warning is printed to System.err.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object to be encoded.
    +<DT><B>Returns:</B><DD>Returns the resulting XML node that represents the given object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +encodeObject</H3>
    +<PRE>
    +protected void <B>encodeObject</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Encodes the value of each member in then given obj
    + into the given node using <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><CODE>encodeFields(mxCodec, Object, Node)</CODE></A>
    + and <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><CODE>encodeElements(mxCodec, Object, Node)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object to be encoded.<DD><CODE>node</CODE> - XML node that contains the encoded object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +encodeFields</H3>
    +<PRE>
    +protected void <B>encodeFields</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Encodes the declared fields of the given object into the given node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object whose fields should be encoded.<DD><CODE>node</CODE> - XML node that contains the encoded object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +encodeElements</H3>
    +<PRE>
    +protected void <B>encodeElements</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Encodes the child objects of arrays, maps and collections.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object whose child objects should be encoded.<DD><CODE>node</CODE> - XML node that contains the encoded object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +encodeValue</H3>
    +<PRE>
    +protected void <B>encodeValue</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Converts the given value according to the mappings
    + and id-refs in this codec and uses
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><CODE>writeAttribute(mxCodec, Object, String, Object, Node)</CODE></A>
    + to write the attribute into the given node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object whose field is going to be encoded.<DD><CODE>fieldname</CODE> - Name if the field to be encoded.<DD><CODE>value</CODE> - Value of the property to be encoded.<DD><CODE>node</CODE> - XML node that contains the encoded object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPrimitiveValue(java.lang.Object)"><!-- --></A><H3>
    +isPrimitiveValue</H3>
    +<PRE>
    +protected boolean <B>isPrimitiveValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Returns true if the given object is a primitive value.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Object that should be checked.
    +<DT><B>Returns:</B><DD>Returns true if the given object is a primitive value.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +writeAttribute</H3>
    +<PRE>
    +protected void <B>writeAttribute</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Writes the given value into node using writePrimitiveAttribute
    + or writeComplexAttribute depending on the type of the value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +writePrimitiveAttribute</H3>
    +<PRE>
    +protected void <B>writePrimitiveAttribute</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Writes the given value as an attribute of the given node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +writeComplexAttribute</H3>
    +<PRE>
    +protected void <B>writeComplexAttribute</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Writes the given value as a child node of the given node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="convertValueToXml(java.lang.Object)"><!-- --></A><H3>
    +convertValueToXml</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>convertValueToXml</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Converts true to "1" and false to "0". All other values are ignored.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="convertValueFromXml(java.lang.Class, java.lang.Object)"><!-- --></A><H3>
    +convertValueFromXml</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>convertValueFromXml</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;type,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Converts XML attribute values to object of the given type.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAttributeName(java.lang.String)"><!-- --></A><H3>
    +getAttributeName</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getAttributeName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</PRE>
    +<DL>
    +<DD>Returns the XML node attribute name for the given Java field name. That
    + is, it returns the mapping of the field name.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFieldName(java.lang.String)"><!-- --></A><H3>
    +getFieldName</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getFieldName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attributename)</PRE>
    +<DL>
    +<DD>Returns the Java field name for the given XML attribute name. That is, it
    + returns the reverse mapping of the attribute name.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>attributename</CODE> - The attribute name to be mapped.
    +<DT><B>Returns:</B><DD>String that represents the mapped field name.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getField(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +getField</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A> <B>getField</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</PRE>
    +<DL>
    +<DD>Returns the field with the specified name.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)"><!-- --></A><H3>
    +getAccessor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A> <B>getAccessor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A>&nbsp;field,
    +                             boolean&nbsp;isGetter)</PRE>
    +<DL>
    +<DD>Returns the accessor (getter, setter) for the specified field.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMethod(java.lang.Object, java.lang.String, java.lang.Class[])"><!-- --></A><H3>
    +getMethod</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A> <B>getMethod</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;methodname,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>[]&nbsp;params)</PRE>
    +<DL>
    +<DD>Returns the method with the specified signature.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFieldValue(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +getFieldValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getFieldValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname)</PRE>
    +<DL>
    +<DD>Returns the value of the field with the specified name in the specified
    + object instance.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)"><!-- --></A><H3>
    +getFieldValueWithAccessor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getFieldValueWithAccessor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A>&nbsp;field)</PRE>
    +<DL>
    +<DD>Returns the value of the field using the accessor for the field if one exists.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)"><!-- --></A><H3>
    +setFieldValue</H3>
    +<PRE>
    +protected void <B>setFieldValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the value of the field with the specified name
    + in the specified object instance.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)"><!-- --></A><H3>
    +setFieldValueWithAccessor</H3>
    +<PRE>
    +protected void <B>setFieldValueWithAccessor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A>&nbsp;field,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the value of the given field using the accessor if one exists.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +beforeEncode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>beforeEncode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Hook for subclassers to pre-process the object before encoding. This
    + returns the input object. The return value of this function is used in
    + encode to perform the default encoding into the given node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object to be encoded.<DD><CODE>node</CODE> - XML node to encode the object into.
    +<DT><B>Returns:</B><DD>Returns the object to be encoded by the default encoding.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +afterEncode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>afterEncode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Hook for subclassers to post-process the node for the given object after
    + encoding and return the post-processed node. This implementation returns
    + the input node. The return value of this method is returned to the
    + encoder from <encode>.
    + 
    + Parameters:
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object to be encoded.<DD><CODE>node</CODE> - XML node that represents the default encoding.
    +<DT><B>Returns:</B><DD>Returns the resulting node of the encoding.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>decode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Parses the given node into the object or returns a new object
    + representing the given node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the encoding process.<DD><CODE>node</CODE> - XML node to be decoded.
    +<DT><B>Returns:</B><DD>Returns the resulting object that represents the given XML node.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>decode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</PRE>
    +<DL>
    +<DD>Parses the given node into the object or returns a new object
    + representing the given node.
    + 
    + Dec is a reference to the calling decoder. It is used to decode complex
    + objects and resolve references.
    + 
    + If a node has an id attribute then the object cache is checked for the
    + object. If the object is not yet in the cache then it is constructed
    + using the constructor of <template> and cached in <mxCodec.objects>.
    + 
    + This implementation decodes all attributes and childs of a node according
    + to the following rules:
    +  - If the variable name is in <exclude> or if the attribute name is "id"
    + or "as" then it is ignored. - If the variable name is in <idrefs> then
    + <mxCodec.getObject> is used to replace the reference with an object. -
    + The variable name is mapped using a reverse <mapping>. - If the value has
    + a child node, then the codec is used to create a child object with the
    + variable name taken from the "as" attribute. - If the object is an array
    + and the variable name is empty then the value or child object is appended
    + to the array. - If an add child has no value or the object is not an
    + array then the child text content is evaluated using <mxUtils.eval>.
    + 
    + If no object exists for an ID in <idrefs> a warning is issued in
    + System.err.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the encoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>into</CODE> - Optional object to encode the node into.
    +<DT><B>Returns:</B><DD>Returns the resulting object that represents the given XML node
    + or the object given to the method as the into parameter.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +decodeNode</H3>
    +<PRE>
    +protected void <B>decodeNode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Calls decodeAttributes and decodeChildren for the given node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +decodeAttributes</H3>
    +<PRE>
    +protected void <B>decodeAttributes</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Decodes all attributes of the given node using decodeAttribute.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +decodeAttribute</H3>
    +<PRE>
    +protected void <B>decodeAttribute</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;attr,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Reads the given attribute into the specified object.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +decodeChildren</H3>
    +<PRE>
    +protected void <B>decodeChildren</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Decodec all children of the given node using decodeChild.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +decodeChild</H3>
    +<PRE>
    +protected void <B>decodeChild</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;child,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Reads the specified child into the given object.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)"><!-- --></A><H3>
    +getFieldTemplate</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getFieldTemplate</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;child)</PRE>
    +<DL>
    +<DD>Returns the template instance for the given field. This returns the
    + value of the field, null if the value is an array or an empty collection
    + if the value is a collection. The value is then used to populate the
    + field for a new instance. For strongly typed languages it may be
    + required to override this to return the correct collection instance
    + based on the encoded child.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +addObjectValue</H3>
    +<PRE>
    +protected void <B>addObjectValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;fieldname,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</PRE>
    +<DL>
    +<DD>Sets the decoded child node as a value of the given object. If the
    + object is a map, then the value is added with the given fieldname as a
    + key. If the fieldname is not empty, then setFieldValue is called or
    + else, if the object is a collection, the value is added to the
    + collection. For strongly typed languages it may be required to
    + override this with the correct code to add an entry to an object.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +processInclude</H3>
    +<PRE>
    +public boolean <B>processInclude</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</PRE>
    +<DL>
    +<DD>Returns true if the given node is an include directive and executes the
    + include by decoding the XML document. Returns false if the given node is
    + not an include directive.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the encoding/decoding process.<DD><CODE>node</CODE> - XML node to be checked.<DD><CODE>into</CODE> - Optional object to pass-thru to the codec.
    +<DT><B>Returns:</B><DD>Returns true if the given node was processed as an include.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +beforeDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>beforeDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Hook for subclassers to pre-process the node for the specified object
    + and return the node to be used for further processing by
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>decode(mxCodec, Node)</CODE></A>. The object is created based on the
    + template in the calling method and is never null.
    + 
    + This implementation returns the input node. The return value of this
    + function is used in <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>decode(mxCodec, Node)</CODE></A> to perform the
    + default decoding into the given object.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>obj</CODE> - Object to encode the node into.
    +<DT><B>Returns:</B><DD>Returns the node used for the default decoding.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +afterDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>afterDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Hook for subclassers to post-process the object after decoding. This
    + implementation returns the given object without any changes. The return
    + value of this method is returned to the decoder from
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>decode(mxCodec, Node)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>obj</CODE> - Object that represents the default decoding.
    +<DT><B>Returns:</B><DD>Returns the result of the decoding process.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxObjectCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxObjectCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxObjectCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxRootChangeCodec.html b/java/docs/com/mxgraph/io/mxRootChangeCodec.html
    new file mode 100644
    index 000000000..35852a6f4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxRootChangeCodec.html
    @@ -0,0 +1,391 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxRootChangeCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxRootChangeCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRootChangeCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxRootChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRootChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxRootChangeCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">com.mxgraph.io.mxObjectCodec</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxRootChangeCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxRootChangeCodec</B><DT>extends <A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></DL>
    +</PRE>
    +
    +<P>
    +Codec for mxChildChanges. This class is created and registered
    + dynamically at load time and used implicitly via mxCodec
    + and the mxCodecRegistry.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#accessors">accessors</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude">exclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#fields">fields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs">idrefs</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mapping">mapping</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#reverse">reverse</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#template">template</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html#mxRootChangeCodec()">mxRootChangeCodec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html#mxRootChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)">mxRootChangeCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec for the given arguments.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the object after decoding.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the node for the given object after
    + encoding and return the post-processed node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the cells into the graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)">addObjectValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">beforeEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#cloneTemplate(org.w3c.dom.Node)">cloneTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueFromXml(java.lang.Class, java.lang.Object)">convertValueFromXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueToXml(java.lang.Object)">convertValueToXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttributes</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChild</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChildren</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeNode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeElements</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeFields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">encodeValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)">getAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAttributeName(java.lang.String)">getAttributeName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getField(java.lang.Object, java.lang.String)">getField</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldName(java.lang.String)">getFieldName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)">getFieldTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValue(java.lang.Object, java.lang.String)">getFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)">getFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getMethod(java.lang.Object, java.lang.String, java.lang.Class[])">getMethod</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getName()">getName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getTemplate()">getTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isExcluded</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isPrimitiveValue(java.lang.Object)">isPrimitiveValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isReference</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">processInclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)">setFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)">setFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeComplexAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writePrimitiveAttribute</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxRootChangeCodec()"><!-- --></A><H3>
    +mxRootChangeCodec</H3>
    +<PRE>
    +public <B>mxRootChangeCodec</B>()</PRE>
    +<DL>
    +<DD>Constructs a new model codec.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxRootChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><!-- --></A><H3>
    +mxRootChangeCodec</H3>
    +<PRE>
    +public <B>mxRootChangeCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</PRE>
    +<DL>
    +<DD>Constructs a new model codec for the given arguments.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +afterEncode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>afterEncode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">mxObjectCodec</A></CODE></B></DD>
    +<DD>Hook for subclassers to post-process the node for the given object after
    + encoding and return the post-processed node. This implementation returns
    + the input node. The return value of this method is returned to the
    + encoder from <encode>.
    + 
    + Parameters:
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object to be encoded.<DD><CODE>node</CODE> - XML node that represents the default encoding.
    +<DT><B>Returns:</B><DD>Returns the resulting node of the encoding.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +beforeDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>beforeDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</PRE>
    +<DL>
    +<DD>Reads the cells into the graph model. All cells are children of the root
    + element in the node.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>into</CODE> - Object to encode the node into.
    +<DT><B>Returns:</B><DD>Returns the node used for the default decoding.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +afterDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>afterDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">mxObjectCodec</A></CODE></B></DD>
    +<DD>Hook for subclassers to post-process the object after decoding. This
    + implementation returns the given object without any changes. The return
    + value of this method is returned to the decoder from
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>mxObjectCodec.decode(mxCodec, Node)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>obj</CODE> - Object that represents the default decoding.
    +<DT><B>Returns:</B><DD>Returns the result of the decoding process.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRootChangeCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxRootChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRootChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxStylesheetCodec.html b/java/docs/com/mxgraph/io/mxStylesheetCodec.html
    new file mode 100644
    index 000000000..f1f570a76
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxStylesheetCodec.html
    @@ -0,0 +1,386 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxStylesheetCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxStylesheetCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStylesheetCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxStylesheetCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStylesheetCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxStylesheetCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">com.mxgraph.io.mxObjectCodec</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxStylesheetCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxStylesheetCodec</B><DT>extends <A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></DL>
    +</PRE>
    +
    +<P>
    +Codec for mxStylesheets. This class is created and registered
    + dynamically at load time and used implicitely via mxCodec
    + and the mxCodecRegistry.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#accessors">accessors</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude">exclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#fields">fields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs">idrefs</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mapping">mapping</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#reverse">reverse</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#template">template</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html#mxStylesheetCodec()">mxStylesheetCodec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html#mxStylesheetCodec(java.lang.Object)">mxStylesheetCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stylesheet codec for the given template.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html#mxStylesheetCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)">mxStylesheetCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec for the given arguments.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes the given mxStylesheet.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes the given mxStylesheet.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html#getStringValue(java.util.Map.Entry)">getStringValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;entry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the string for encoding the given value.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)">addObjectValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">beforeEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#cloneTemplate(org.w3c.dom.Node)">cloneTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueFromXml(java.lang.Class, java.lang.Object)">convertValueFromXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueToXml(java.lang.Object)">convertValueToXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttributes</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChild</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChildren</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeNode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeElements</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeFields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">encodeValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)">getAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAttributeName(java.lang.String)">getAttributeName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getField(java.lang.Object, java.lang.String)">getField</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldName(java.lang.String)">getFieldName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)">getFieldTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValue(java.lang.Object, java.lang.String)">getFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)">getFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getMethod(java.lang.Object, java.lang.String, java.lang.Class[])">getMethod</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getName()">getName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getTemplate()">getTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isExcluded</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isPrimitiveValue(java.lang.Object)">isPrimitiveValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isReference</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">processInclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)">setFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)">setFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeComplexAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writePrimitiveAttribute</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxStylesheetCodec()"><!-- --></A><H3>
    +mxStylesheetCodec</H3>
    +<PRE>
    +public <B>mxStylesheetCodec</B>()</PRE>
    +<DL>
    +<DD>Constructs a new model codec.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxStylesheetCodec(java.lang.Object)"><!-- --></A><H3>
    +mxStylesheetCodec</H3>
    +<PRE>
    +public <B>mxStylesheetCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template)</PRE>
    +<DL>
    +<DD>Constructs a new stylesheet codec for the given template.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxStylesheetCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><!-- --></A><H3>
    +mxStylesheetCodec</H3>
    +<PRE>
    +public <B>mxStylesheetCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</PRE>
    +<DL>
    +<DD>Constructs a new model codec for the given arguments.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="encode(com.mxgraph.io.mxCodec, java.lang.Object)"><!-- --></A><H3>
    +encode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>encode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;enc,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Encodes the given mxStylesheet.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enc</CODE> - Codec that controls the encoding process.<DD><CODE>obj</CODE> - Object to be encoded.
    +<DT><B>Returns:</B><DD>Returns the resulting XML node that represents the given object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStringValue(java.util.Map.Entry)"><!-- --></A><H3>
    +getStringValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStringValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;entry)</PRE>
    +<DL>
    +<DD>Returns the string for encoding the given value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>decode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;into)</PRE>
    +<DL>
    +<DD>Decodes the given mxStylesheet.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the encoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>into</CODE> - Optional object to encode the node into.
    +<DT><B>Returns:</B><DD>Returns the resulting object that represents the given XML node
    + or the object given to the method as the into parameter.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStylesheetCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxStylesheetCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStylesheetCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/mxTerminalChangeCodec.html b/java/docs/com/mxgraph/io/mxTerminalChangeCodec.html
    new file mode 100644
    index 000000000..abc439907
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/mxTerminalChangeCodec.html
    @@ -0,0 +1,325 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxTerminalChangeCodec (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxTerminalChangeCodec (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxTerminalChangeCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxTerminalChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTerminalChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.io</FONT>
    +<BR>
    +Class mxTerminalChangeCodec</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">com.mxgraph.io.mxObjectCodec</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.io.mxTerminalChangeCodec</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxTerminalChangeCodec</B><DT>extends <A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></DL>
    +</PRE>
    +
    +<P>
    +Codec for mxChildChanges. This class is created and registered
    + dynamically at load time and used implicitely via mxCodec
    + and the mxCodecRegistry.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#accessors">accessors</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#exclude">exclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#fields">fields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#idrefs">idrefs</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#mapping">mapping</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#reverse">reverse</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#template">template</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxTerminalChangeCodec.html#mxTerminalChangeCodec()">mxTerminalChangeCodec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxTerminalChangeCodec.html#mxTerminalChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)">mxTerminalChangeCodec</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new model codec for the given arguments.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/io/mxTerminalChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to post-process the object after decoding.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.io.mxObjectCodec"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)">addObjectValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">afterEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">beforeDecode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">beforeEncode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#cloneTemplate(org.w3c.dom.Node)">cloneTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueFromXml(java.lang.Class, java.lang.Object)">convertValueFromXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#convertValueToXml(java.lang.Object)">convertValueToXml</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeAttributes</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChild</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeChildren</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">decodeNode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)">encode</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeElements</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeFields</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)">encodeObject</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">encodeValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)">getAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getAttributeName(java.lang.String)">getAttributeName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getField(java.lang.Object, java.lang.String)">getField</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldName(java.lang.String)">getFieldName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)">getFieldTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValue(java.lang.Object, java.lang.String)">getFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)">getFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getMethod(java.lang.Object, java.lang.String, java.lang.Class[])">getMethod</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getName()">getName</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#getTemplate()">getTemplate</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isExcluded</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isPrimitiveValue(java.lang.Object)">isPrimitiveValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)">isReference</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">processInclude</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)">setFieldValue</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)">setFieldValueWithAccessor</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writeComplexAttribute</A>, <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)">writePrimitiveAttribute</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxTerminalChangeCodec()"><!-- --></A><H3>
    +mxTerminalChangeCodec</H3>
    +<PRE>
    +public <B>mxTerminalChangeCodec</B>()</PRE>
    +<DL>
    +<DD>Constructs a new model codec.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxTerminalChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><!-- --></A><H3>
    +mxTerminalChangeCodec</H3>
    +<PRE>
    +public <B>mxTerminalChangeCodec</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;template,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;exclude,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;idrefs,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;mapping)</PRE>
    +<DL>
    +<DD>Constructs a new model codec for the given arguments.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><!-- --></A><H3>
    +afterDecode</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>afterDecode</B>(<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>&nbsp;dec,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">mxObjectCodec</A></CODE></B></DD>
    +<DD>Hook for subclassers to post-process the object after decoding. This
    + implementation returns the given object without any changes. The return
    + value of this method is returned to the decoder from
    + <A HREF="../../../com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>mxObjectCodec.decode(mxCodec, Node)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)">afterDecode</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dec</CODE> - Codec that controls the decoding process.<DD><CODE>node</CODE> - XML node to be decoded.<DD><CODE>obj</CODE> - Object that represents the default decoding.
    +<DT><B>Returns:</B><DD>Returns the result of the decoding process.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxTerminalChangeCodec.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/mxTerminalChangeCodec.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTerminalChangeCodec.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.io.mxObjectCodec">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/package-frame.html b/java/docs/com/mxgraph/io/package-frame.html
    new file mode 100644
    index 000000000..782b3682c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/package-frame.html
    @@ -0,0 +1,54 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.io (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/io/package-summary.html" target="classFrame">com.mxgraph.io</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxCellCodec.html" title="class in com.mxgraph.io" target="classFrame">mxCellCodec</A>
    +<BR>
    +<A HREF="mxChildChangeCodec.html" title="class in com.mxgraph.io" target="classFrame">mxChildChangeCodec</A>
    +<BR>
    +<A HREF="mxCodec.html" title="class in com.mxgraph.io" target="classFrame">mxCodec</A>
    +<BR>
    +<A HREF="mxCodecRegistry.html" title="class in com.mxgraph.io" target="classFrame">mxCodecRegistry</A>
    +<BR>
    +<A HREF="mxGdCodec.html" title="class in com.mxgraph.io" target="classFrame">mxGdCodec</A>
    +<BR>
    +<A HREF="mxGenericChangeCodec.html" title="class in com.mxgraph.io" target="classFrame">mxGenericChangeCodec</A>
    +<BR>
    +<A HREF="mxGraphMlCodec.html" title="class in com.mxgraph.io" target="classFrame">mxGraphMlCodec</A>
    +<BR>
    +<A HREF="mxModelCodec.html" title="class in com.mxgraph.io" target="classFrame">mxModelCodec</A>
    +<BR>
    +<A HREF="mxObjectCodec.html" title="class in com.mxgraph.io" target="classFrame">mxObjectCodec</A>
    +<BR>
    +<A HREF="mxRootChangeCodec.html" title="class in com.mxgraph.io" target="classFrame">mxRootChangeCodec</A>
    +<BR>
    +<A HREF="mxStylesheetCodec.html" title="class in com.mxgraph.io" target="classFrame">mxStylesheetCodec</A>
    +<BR>
    +<A HREF="mxTerminalChangeCodec.html" title="class in com.mxgraph.io" target="classFrame">mxTerminalChangeCodec</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/package-summary.html b/java/docs/com/mxgraph/io/package-summary.html
    new file mode 100644
    index 000000000..f2b7e4cd6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/package-summary.html
    @@ -0,0 +1,221 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.io (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.io (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/gd/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.io
    +</H2>
    +This package contains all classes for input/output.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A></B></TD>
    +<TD>Codec for mxCells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A></B></TD>
    +<TD>Codec for mxChildChanges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A></B></TD>
    +<TD>XML codec for Java object graphs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A></B></TD>
    +<TD>Singleton class that acts as a global registry for codecs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io">mxGdCodec</A></B></TD>
    +<TD>Parses a GD .txt file and imports it in the given graph.<br/>
    + This class depends from the classes contained in
    + com.mxgraph.io.gd.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io">mxGenericChangeCodec</A></B></TD>
    +<TD>Codec for mxChildChanges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io">mxGraphMlCodec</A></B></TD>
    +<TD>Parses a GraphML .graphml file and imports it in the given graph.<br/>
    + 
    + See wikipedia.org/wiki/GraphML for more on GraphML.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io">mxModelCodec</A></B></TD>
    +<TD>Codec for mxGraphModels.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A></B></TD>
    +<TD>Generic codec for Java objects.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io">mxRootChangeCodec</A></B></TD>
    +<TD>Codec for mxChildChanges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A></B></TD>
    +<TD>Codec for mxStylesheets.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io">mxTerminalChangeCodec</A></B></TD>
    +<TD>Codec for mxChildChanges.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.io Description
    +</H2>
    +
    +<P>
    +This package contains all classes for input/output.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/gd/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/package-tree.html b/java/docs/com/mxgraph/io/package-tree.html
    new file mode 100644
    index 000000000..1c5c97a21
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/package-tree.html
    @@ -0,0 +1,156 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.io Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.io Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/gd/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.io
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><B>mxCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io"><B>mxCodecRegistry</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io"><B>mxGdCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io"><B>mxGraphMlCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io"><B>mxObjectCodec</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io"><B>mxCellCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io"><B>mxChildChangeCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io"><B>mxGenericChangeCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io"><B>mxModelCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io"><B>mxRootChangeCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io"><B>mxStylesheetCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="../../../com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io"><B>mxTerminalChangeCodec</B></A></UL>
    +</UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/canvas/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/io/gd/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/io/package-use.html b/java/docs/com/mxgraph/io/package-use.html
    new file mode 100644
    index 000000000..23cabcb9d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/io/package-use.html
    @@ -0,0 +1,197 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.io (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.io (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.io</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> used by <A HREF="../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/io/class-use/mxCodec.html#com.mxgraph.io"><B>mxCodec</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XML codec for Java object graphs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/io/class-use/mxObjectCodec.html#com.mxgraph.io"><B>mxObjectCodec</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generic codec for Java objects.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> used by <A HREF="../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/io/class-use/mxCodec.html#com.mxgraph.sharing"><B>mxCodec</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XML codec for Java object graphs.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/io/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxCircleLayout.html b/java/docs/com/mxgraph/layout/class-use/mxCircleLayout.html
    new file mode 100644
    index 000000000..b3175642c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxCircleLayout.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxCircleLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxCircleLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCircleLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCircleLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxCircleLayout</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.mxCircleLayout
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCircleLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCircleLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.Polygon.html b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.Polygon.html
    new file mode 100644
    index 000000000..b60fa1a91
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.Polygon.html
    @@ -0,0 +1,198 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxCompactTreeLayout.Polygon (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxCompactTreeLayout.Polygon (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.Polygon.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.Polygon.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxCompactTreeLayout.Polygon</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> declared as <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.TreeNode.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#contour">contour</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with parameters of type <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#merge(com.mxgraph.layout.mxCompactTreeLayout.Polygon, com.mxgraph.layout.mxCompactTreeLayout.Polygon)">merge</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>&nbsp;p1,
    +      <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>&nbsp;p2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.Polygon.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.Polygon.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.Polyline.html b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.Polyline.html
    new file mode 100644
    index 000000000..a0a08635d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.Polyline.html
    @@ -0,0 +1,291 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxCompactTreeLayout.Polyline (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxCompactTreeLayout.Polyline (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.Polyline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.Polyline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxCompactTreeLayout.Polyline</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> declared as <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.Polygon.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#lowerHead">lowerHead</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.Polygon.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#lowerTail">lowerTail</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.Polyline.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#next">next</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.Polygon.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#upperHead">upperHead</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.Polygon.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#upperTail">upperTail</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> that return <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#bridge(com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double)">bridge</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;line1,
    +       double&nbsp;x1,
    +       double&nbsp;y1,
    +       <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;line2,
    +       double&nbsp;x2,
    +       double&nbsp;y2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#createLine(double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline)">createLine</A></B>(double&nbsp;dx,
    +           double&nbsp;dy,
    +           <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;next)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with parameters of type <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#bridge(com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double)">bridge</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;line1,
    +       double&nbsp;x1,
    +       double&nbsp;y1,
    +       <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;line2,
    +       double&nbsp;x2,
    +       double&nbsp;y2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#createLine(double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline)">createLine</A></B>(double&nbsp;dx,
    +           double&nbsp;dy,
    +           <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;next)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with parameters of type <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#mxCompactTreeLayout.Polyline(double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline)">mxCompactTreeLayout.Polyline</A></B>(double&nbsp;dx,
    +                             double&nbsp;dy,
    +                             <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;next)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.Polyline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.Polyline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.TreeNode.html b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.TreeNode.html
    new file mode 100644
    index 000000000..1b9c75a27
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.TreeNode.html
    @@ -0,0 +1,338 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxCompactTreeLayout.TreeNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxCompactTreeLayout.TreeNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.TreeNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.TreeNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxCompactTreeLayout.TreeNode</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> declared as <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.WeightedCellSorter.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The cell whose median value is being calculated</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.TreeNode.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#child">child</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.TreeNode.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#next">next</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> that return <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#createNode(java.lang.Object)">createNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#dfs(java.lang.Object, java.lang.Object, java.util.Set)">dfs</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;visited)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Does a depth first search starting at the specified cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with parameters of type <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#apply(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, com.mxgraph.util.mxRectangle)">apply</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +      <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#attachParent(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double)">attachParent</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +             double&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#horizontalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double, com.mxgraph.util.mxRectangle)">horizontalLayout</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +                 double&nbsp;x0,
    +                 double&nbsp;y0,
    +                 <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#join(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">join</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#layout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">layout</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starts the actual compact tree layout algorithm
    + at the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#layoutLeaf(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">layoutLeaf</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#localEdgeProcessing(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">localEdgeProcessing</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the specified node and all of its children by the given amount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#moveNode(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double)">moveNode</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +         double&nbsp;dx,
    +         double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the specified node and all of its children by the given amount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#processNodeOutgoing(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">processNodeOutgoing</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Separates the x position of edges as they connect to vertices</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#verticalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, java.lang.Object, double, double, com.mxgraph.util.mxRectangle)">verticalLayout</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +               double&nbsp;x0,
    +               double&nbsp;y0,
    +               <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with parameters of type <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#mxCompactTreeLayout.WeightedCellSorter(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, int)">mxCompactTreeLayout.WeightedCellSorter</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;cell,
    +                                       int&nbsp;weightedValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.TreeNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.TreeNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.WeightedCellSorter.html b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.WeightedCellSorter.html
    new file mode 100644
    index 000000000..03ee15ffa
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.WeightedCellSorter.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxCompactTreeLayout.WeightedCellSorter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxCompactTreeLayout.WeightedCellSorter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.WeightedCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.WeightedCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxCompactTreeLayout.WeightedCellSorter</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.mxCompactTreeLayout.WeightedCellSorter
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.WeightedCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.WeightedCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.html b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.html
    new file mode 100644
    index 000000000..edd0f4caf
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxCompactTreeLayout.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxCompactTreeLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxCompactTreeLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxCompactTreeLayout</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.mxCompactTreeLayout
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxCompactTreeLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxEdgeLabelLayout.html b/java/docs/com/mxgraph/layout/class-use/mxEdgeLabelLayout.html
    new file mode 100644
    index 000000000..aea986af9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxEdgeLabelLayout.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxEdgeLabelLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxEdgeLabelLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxEdgeLabelLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeLabelLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxEdgeLabelLayout</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.mxEdgeLabelLayout
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxEdgeLabelLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeLabelLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxFastOrganicLayout.html b/java/docs/com/mxgraph/layout/class-use/mxFastOrganicLayout.html
    new file mode 100644
    index 000000000..fa9fe5bbb
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxFastOrganicLayout.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxFastOrganicLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxFastOrganicLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxFastOrganicLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFastOrganicLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxFastOrganicLayout</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.mxFastOrganicLayout
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxFastOrganicLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFastOrganicLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxGraphLayout.html b/java/docs/com/mxgraph/layout/class-use/mxGraphLayout.html
    new file mode 100644
    index 000000000..a6f686177
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxGraphLayout.html
    @@ -0,0 +1,296 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxGraphLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxGraphLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxGraphLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxGraphLayout</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical"><B>com.mxgraph.layout.hierarchical</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.orthogonal"><B>com.mxgraph.layout.orthogonal</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fast organic layout algorithm.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a simulated annealing layout, based on "Drawing Graphs
    + Nicely Using Simulated Annealing" by Davidson and Harel (1996).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A> in <A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A> in <A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The top level compound layout of the hierarchical layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.orthogonal"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A> in <A HREF="../../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A> in <A HREF="../../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxGraphLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxIGraphLayout.html b/java/docs/com/mxgraph/layout/class-use/mxIGraphLayout.html
    new file mode 100644
    index 000000000..9240eec49
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxIGraphLayout.html
    @@ -0,0 +1,351 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.layout.mxIGraphLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.layout.mxIGraphLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxIGraphLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.layout.mxIGraphLayout</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical"><B>com.mxgraph.layout.hierarchical</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.orthogonal"><B>com.mxgraph.layout.orthogonal</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> that implement <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fast organic layout algorithm.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Abstract bass class for layouts</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of a simulated annealing layout, based on "Drawing Graphs
    + Nicely Using Simulated Annealing" by Davidson and Harel (1996).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A> in <A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A> that implement <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The top level compound layout of the hierarchical layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.orthogonal"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A> in <A HREF="../../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A> that implement <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#getLayout(java.lang.Object)">getLayout</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#executeLayout(com.mxgraph.layout.mxIGraphLayout, java.lang.Object)">executeLayout</A></B>(<A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A>&nbsp;layout,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxIGraphLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxOrganicLayout.CellWrapper.html b/java/docs/com/mxgraph/layout/class-use/mxOrganicLayout.CellWrapper.html
    new file mode 100644
    index 000000000..4ba14d89f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxOrganicLayout.CellWrapper.html
    @@ -0,0 +1,189 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxOrganicLayout.CellWrapper (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxOrganicLayout.CellWrapper (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxOrganicLayout.CellWrapper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrganicLayout.CellWrapper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxOrganicLayout.CellWrapper</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> declared as <A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxOrganicLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.html#e">e</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal models collection of edges to be laid out</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxOrganicLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.html#v">v</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal models collection of nodes ( vertices ) to be laid out</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxOrganicLayout.CellWrapper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrganicLayout.CellWrapper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxOrganicLayout.html b/java/docs/com/mxgraph/layout/class-use/mxOrganicLayout.html
    new file mode 100644
    index 000000000..cd423aad2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxOrganicLayout.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxOrganicLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxOrganicLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxOrganicLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrganicLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxOrganicLayout</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.mxOrganicLayout
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxOrganicLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrganicLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxParallelEdgeLayout.html b/java/docs/com/mxgraph/layout/class-use/mxParallelEdgeLayout.html
    new file mode 100644
    index 000000000..e11e2bf88
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxParallelEdgeLayout.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxParallelEdgeLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxParallelEdgeLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxParallelEdgeLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxParallelEdgeLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxParallelEdgeLayout</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.mxParallelEdgeLayout
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxParallelEdgeLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxParallelEdgeLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxPartitionLayout.html b/java/docs/com/mxgraph/layout/class-use/mxPartitionLayout.html
    new file mode 100644
    index 000000000..2b3a0f9f4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxPartitionLayout.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxPartitionLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxPartitionLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxPartitionLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPartitionLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxPartitionLayout</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.mxPartitionLayout
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxPartitionLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPartitionLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/class-use/mxStackLayout.html b/java/docs/com/mxgraph/layout/class-use/mxStackLayout.html
    new file mode 100644
    index 000000000..bff2d9ec3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/class-use/mxStackLayout.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.mxStackLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.mxStackLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxStackLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStackLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.mxStackLayout</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.mxStackLayout
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout//class-usemxStackLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStackLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/class-use/mxHierarchicalLayout.html b/java/docs/com/mxgraph/layout/hierarchical/class-use/mxHierarchicalLayout.html
    new file mode 100644
    index 000000000..33b898764
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/class-use/mxHierarchicalLayout.html
    @@ -0,0 +1,289 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.mxHierarchicalLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.mxHierarchicalLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical//class-usemxHierarchicalLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHierarchicalLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.mxHierarchicalLayout</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.model"><B>com.mxgraph.layout.hierarchical.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A> in <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with parameters of type <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#createInternalCells(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[])">createInternalCells</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>[]&nbsp;internalVertices)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates all edges in the internal model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#formOrderedHierarchy(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], java.lang.Object)">formOrderedHierarchy</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an internal ordered graph model using the vertices passed in.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with parameters of type <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#mxGraphHierarchyModel(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], java.util.List, java.lang.Object, boolean, boolean, boolean)">mxGraphHierarchyModel</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;roots,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                      boolean&nbsp;ordered,
    +                      boolean&nbsp;deterministic,
    +                      boolean&nbsp;scanRanksFromSinks)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an internal ordered graph model using the vertices passed in.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A> in <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> declared as <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMinimumCycleRemover.</B><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html#layout">layout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing layout algorithm</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMedianHybridCrossingReduction.</B><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#layout">layout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing layout algorithm</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#layout">layout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing layout algorithm</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> with parameters of type <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#mxCoordinateAssignment(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, double, double, int, double, double)">mxCoordinateAssignment</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                       double&nbsp;intraCellSpacing,
    +                       double&nbsp;interRankCellSpacing,
    +                       int&nbsp;orientation,
    +                       double&nbsp;initialX,
    +                       double&nbsp;parallelEdgeSpacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a coordinate assignment.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#mxMedianHybridCrossingReduction(com.mxgraph.layout.hierarchical.mxHierarchicalLayout)">mxMedianHybridCrossingReduction</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor that has the roots specified</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html#mxMinimumCycleRemover(com.mxgraph.layout.hierarchical.mxHierarchicalLayout)">mxMinimumCycleRemover</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor that has the roots specified</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical//class-usemxHierarchicalLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHierarchicalLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphAbstractHierarchyCell.html b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphAbstractHierarchyCell.html
    new file mode 100644
    index 000000000..abc251cdf
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphAbstractHierarchyCell.html
    @@ -0,0 +1,350 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphAbstractHierarchyCell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphAbstractHierarchyCell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.model"><B>com.mxgraph.layout.hierarchical.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstraction of a hierarchical edge for the hierarchy layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstraction of an internal node in the hierarchy layout</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> that return types with arguments of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyNode.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getNextLayerConnectedCells(int)">getNextLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer up</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyEdge.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#getNextLayerConnectedCells(int)">getNextLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer up</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAbstractHierarchyCell.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getNextLayerConnectedCells(int)">getNextLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer up</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyNode.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getPreviousLayerConnectedCells(int)">getPreviousLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer down</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyEdge.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#getPreviousLayerConnectedCells(int)">getPreviousLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer down</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAbstractHierarchyCell.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getPreviousLayerConnectedCells(int)">getPreviousLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer down</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> declared as <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.WeightedCellSorter.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The cell whose median value is being calculated</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>[][]</CODE></FONT></TD>
    +<TD><CODE><B>mxMedianHybridCrossingReduction.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#nestedBestRanks">nestedBestRanks</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores each rank as a collection of cells in the best order found for
    + each layer so far</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>[][]</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#nextLayerConnectedCache">nextLayerConnectedCache</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A store of connections to the layer above for speed</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>[][]</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#previousLayerConnectedCache">previousLayerConnectedCache</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A store of connections to the layer below for speed</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> with parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#repositionValid(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel, com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell, int, double)">repositionValid</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model,
    +                <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell,
    +                int&nbsp;rank,
    +                double&nbsp;position)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines whether or not a node may be moved to the specified x 
    + position on the specified rank</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setEdgePosition(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell)">setEdgePosition</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fixes the control points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setVertexLocation(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell)">setVertexLocation</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fixes the position of the specified vertex</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> with parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#mxCoordinateAssignment.WeightedCellSorter(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell, int)">mxCoordinateAssignment.WeightedCellSorter</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell,
    +                                          int&nbsp;weightedValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphAbstractHierarchyCell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphAbstractHierarchyCell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyEdge.html b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyEdge.html
    new file mode 100644
    index 000000000..06f338eca
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyEdge.html
    @@ -0,0 +1,333 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.model"><B>com.mxgraph.layout.hierarchical.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with type parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyNode.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#connectsAsSource">connectsAsSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collection of hierarchy edges that have this node as a source</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyNode.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#connectsAsTarget">connectsAsTarget</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collection of hierarchy edges that have this node as a target</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#edgeMapper">edgeMapper</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map from graph edges to internal model edges</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyNode.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#emptyConnectionMap">emptyConnectionMap</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shared empty connection map to return instead of null in applyMap.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> that return types with arguments of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#getEdgeMapper()">getEdgeMapper</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int)">dfs</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int[], int, int)">dfs</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int[]&nbsp;ancestors,
    +    int&nbsp;childHash,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.CellVisitor.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html#visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, int, int)">visit</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +      <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;cell,
    +      <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +      int&nbsp;layer,
    +      int&nbsp;seen)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The method within which the visitor will perform operations upon the
    + graph model</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with type arguments of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setEdgeMapper(java.util.Map)">setEdgeMapper</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;&nbsp;edgeMapper)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> with type parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>,double[]&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#jettyPositions">jettyPositions</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map of internal edges and (x,y) pair of positions of the start and end jetty
    + for that edge where it connects to the source and target vertices.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> with parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#processReversedEdge(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, java.lang.Object)">processReversedEdge</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;edge,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;realEdge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to add additional processing</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyModel.CellVisitor.html b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyModel.CellVisitor.html
    new file mode 100644
    index 000000000..79fc7299d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyModel.CellVisitor.html
    @@ -0,0 +1,212 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyModel.CellVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyModel.CellVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.model"><B>com.mxgraph.layout.hierarchical.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int)">dfs</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int[], int, int)">dfs</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int[]&nbsp;ancestors,
    +    int&nbsp;childHash,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[], boolean, java.util.Set)">visit</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +      <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>[]&nbsp;dfsRoots,
    +      boolean&nbsp;trackAncestors,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seenNodes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A depth first search through the internal hierarchy model</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyModel.CellVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyModel.CellVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyModel.html b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyModel.html
    new file mode 100644
    index 000000000..114ad656d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyModel.html
    @@ -0,0 +1,295 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical"><B>com.mxgraph.layout.hierarchical</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A> declared as <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxHierarchicalLayout.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The internal model formed of the layout</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A> that return <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxHierarchicalLayout.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getModel()">getModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the model for this layout algorithm.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> with parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxMedianHybridCrossingReduction.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#calculateRankCrossing(int, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">calculateRankCrossing</A></B>(int&nbsp;i,
    +                      <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the number of edges crossings between the specified rank and
    + the rank below it</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#calculateWidestRank(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">calculateWidestRank</A></B>(<A HREF="../../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the width rank in the hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#localEdgeProcessing(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">localEdgeProcessing</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Separates the x position of edges as they connect to vertices</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#minPath(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">minPath</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Straightens out chains of virtual nodes where possible</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankCoordinates(int, com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">rankCoordinates</A></B>(int&nbsp;rankValue,
    +                <A HREF="../../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets up the layout in an initial positioning.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankMedianPosition(int, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel, int)">rankMedianPosition</A></B>(int&nbsp;rankValue,
    +                   <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model,
    +                   int&nbsp;nextRankValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs median minimisation over one rank.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#repositionValid(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel, com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell, int, double)">repositionValid</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model,
    +                <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell,
    +                int&nbsp;rank,
    +                double&nbsp;position)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines whether or not a node may be moved to the specified x 
    + position on the specified rank</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setCellLocations(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">setCellLocations</A></B>(<A HREF="../../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                 <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the cell locations in the facade to those stored after this layout
    + processing step has completed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyNode.html b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyNode.html
    new file mode 100644
    index 000000000..624878ee3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyNode.html
    @@ -0,0 +1,354 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.model"><B>com.mxgraph.layout.hierarchical.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> declared as <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyEdge.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The node this edge is sourced at</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyEdge.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#target">target</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The node this edge targets</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with type parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#vertexMapper">vertexMapper</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map from graph vertices to internal model nodes</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> that return types with arguments of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#getVertexMapper()">getVertexMapper</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#createInternalCells(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[])">createInternalCells</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>[]&nbsp;internalVertices)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates all edges in the internal model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int)">dfs</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int[], int, int)">dfs</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int[]&nbsp;ancestors,
    +    int&nbsp;childHash,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyNode.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#isAncestor(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode)">isAncestor</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;otherNode)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[], boolean, java.util.Set)">visit</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +      <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>[]&nbsp;dfsRoots,
    +      boolean&nbsp;trackAncestors,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seenNodes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A depth first search through the internal hierarchy model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.CellVisitor.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html#visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, int, int)">visit</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +      <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;cell,
    +      <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +      int&nbsp;layer,
    +      int&nbsp;seen)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The method within which the visitor will perform operations upon the
    + graph model</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with type arguments of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int)">dfs</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int[], int, int)">dfs</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int[]&nbsp;ancestors,
    +    int&nbsp;childHash,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setVertexMapper(java.util.Map)">setVertexMapper</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;vertexMapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[], boolean, java.util.Set)">visit</A></B>(<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +      <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>[]&nbsp;dfsRoots,
    +      boolean&nbsp;trackAncestors,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seenNodes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A depth first search through the internal hierarchy model</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyRank.html b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyRank.html
    new file mode 100644
    index 000000000..5a42d31fc
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyRank.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphHierarchyRank (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.model.mxGraphHierarchyRank (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyRank.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyRank.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.model.mxGraphHierarchyRank</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyRank</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.model"><B>com.mxgraph.layout.hierarchical.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyRank</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> with type parameters of type <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyRank</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>,<A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyRank</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHierarchyModel.</B><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#ranks">ranks</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mapping from rank number to actual rank</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/model//class-usemxGraphHierarchyRank.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyRank.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html
    new file mode 100644
    index 000000000..fb77d6576
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html
    @@ -0,0 +1,641 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphAbstractHierarchyCell (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphAbstractHierarchyCell (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphAbstractHierarchyCell.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphAbstractHierarchyCell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.model</FONT>
    +<BR>
    +Class mxGraphAbstractHierarchyCell</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell</B>
    +</PRE>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract class <B>mxGraphAbstractHierarchyCell</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +An abstraction of an internal hierarchy node or edge
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#height">height</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The height of this cell</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#maxRank">maxRank</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The maximum rank this cell occupies</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#minRank">minRank</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The minimum rank this cell occupies</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#nextLayerConnectedCells">nextLayerConnectedCells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A cached version of the cells this cell connects to on the next layer up</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#previousLayerConnectedCells">previousLayerConnectedCells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A cached version of the cells this cell connects to on the next layer down</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#temp">temp</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Temporary variable for general use.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#width">width</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The width of this cell</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#x">x</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The x position of this cell for each layer it occupies</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#y">y</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The y position of this cell for each layer it occupies</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#mxGraphAbstractHierarchyCell()">mxGraphAbstractHierarchyCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getGeneralPurposeVariable(int)">getGeneralPurposeVariable</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of temp for the specified layer</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getNextLayerConnectedCells(int)">getNextLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer up</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getPreviousLayerConnectedCells(int)">getPreviousLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer down</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getX(int)">getX</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of x on the specified layer</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#isEdge()">isEdge</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#isVertex()">isVertex</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setGeneralPurposeVariable(int, int)">setGeneralPurposeVariable</A></B>(int&nbsp;layer,
    +                          int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the value of temp for the specified layer</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setX(int, double)">setX</A></B>(int&nbsp;layer,
    +     double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the value of x for the specified layer</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setY(int, double)">setY</A></B>(int&nbsp;layer,
    +     double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the value of y for the specified layer</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="maxRank"><!-- --></A><H3>
    +maxRank</H3>
    +<PRE>
    +public int <B>maxRank</B></PRE>
    +<DL>
    +<DD>The maximum rank this cell occupies
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minRank"><!-- --></A><H3>
    +minRank</H3>
    +<PRE>
    +public int <B>minRank</B></PRE>
    +<DL>
    +<DD>The minimum rank this cell occupies
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="x"><!-- --></A><H3>
    +x</H3>
    +<PRE>
    +public double[] <B>x</B></PRE>
    +<DL>
    +<DD>The x position of this cell for each layer it occupies
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="y"><!-- --></A><H3>
    +y</H3>
    +<PRE>
    +public double[] <B>y</B></PRE>
    +<DL>
    +<DD>The y position of this cell for each layer it occupies
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="width"><!-- --></A><H3>
    +width</H3>
    +<PRE>
    +public double <B>width</B></PRE>
    +<DL>
    +<DD>The width of this cell
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="height"><!-- --></A><H3>
    +height</H3>
    +<PRE>
    +public double <B>height</B></PRE>
    +<DL>
    +<DD>The height of this cell
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="nextLayerConnectedCells"><!-- --></A><H3>
    +nextLayerConnectedCells</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;[] <B>nextLayerConnectedCells</B></PRE>
    +<DL>
    +<DD>A cached version of the cells this cell connects to on the next layer up
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previousLayerConnectedCells"><!-- --></A><H3>
    +previousLayerConnectedCells</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;[] <B>previousLayerConnectedCells</B></PRE>
    +<DL>
    +<DD>A cached version of the cells this cell connects to on the next layer down
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="temp"><!-- --></A><H3>
    +temp</H3>
    +<PRE>
    +public int[] <B>temp</B></PRE>
    +<DL>
    +<DD>Temporary variable for general use. Generally, try to avoid
    + carrying information between stages. Currently, the longest
    + path layering sets temp to the rank position in fixRanks()
    + and the crossing reduction uses this. This meant temp couldn't
    + be used for hashing the nodes in the model dfs and so hashCode
    + was created
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphAbstractHierarchyCell()"><!-- --></A><H3>
    +mxGraphAbstractHierarchyCell</H3>
    +<PRE>
    +public <B>mxGraphAbstractHierarchyCell</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getNextLayerConnectedCells(int)"><!-- --></A><H3>
    +getNextLayerConnectedCells</H3>
    +<PRE>
    +public abstract <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt; <B>getNextLayerConnectedCells</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Returns the cells this cell connects to on the next layer up
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer this cell is on
    +<DT><B>Returns:</B><DD>the cells this cell connects to on the next layer up</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreviousLayerConnectedCells(int)"><!-- --></A><H3>
    +getPreviousLayerConnectedCells</H3>
    +<PRE>
    +public abstract <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt; <B>getPreviousLayerConnectedCells</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Returns the cells this cell connects to on the next layer down
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer this cell is on
    +<DT><B>Returns:</B><DD>the cells this cell connects to on the next layer down</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdge()"><!-- --></A><H3>
    +isEdge</H3>
    +<PRE>
    +public abstract boolean <B>isEdge</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>whether or not this cell is an edge</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertex()"><!-- --></A><H3>
    +isVertex</H3>
    +<PRE>
    +public abstract boolean <B>isVertex</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>whether or not this cell is a node</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGeneralPurposeVariable(int)"><!-- --></A><H3>
    +getGeneralPurposeVariable</H3>
    +<PRE>
    +public abstract int <B>getGeneralPurposeVariable</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Gets the value of temp for the specified layer
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer relating to a specific entry into temp
    +<DT><B>Returns:</B><DD>the value for that layer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGeneralPurposeVariable(int, int)"><!-- --></A><H3>
    +setGeneralPurposeVariable</H3>
    +<PRE>
    +public abstract void <B>setGeneralPurposeVariable</B>(int&nbsp;layer,
    +                                               int&nbsp;value)</PRE>
    +<DL>
    +<DD>Set the value of temp for the specified layer
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer relating to a specific entry into temp<DD><CODE>value</CODE> - the value for that layer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setX(int, double)"><!-- --></A><H3>
    +setX</H3>
    +<PRE>
    +public void <B>setX</B>(int&nbsp;layer,
    +                 double&nbsp;value)</PRE>
    +<DL>
    +<DD>Set the value of x for the specified layer
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer relating to a specific entry into x[]<DD><CODE>value</CODE> - the x value for that layer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getX(int)"><!-- --></A><H3>
    +getX</H3>
    +<PRE>
    +public double <B>getX</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Gets the value of x on the specified layer
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer to obtain x for
    +<DT><B>Returns:</B><DD>the value of x on the specified layer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setY(int, double)"><!-- --></A><H3>
    +setY</H3>
    +<PRE>
    +public void <B>setY</B>(int&nbsp;layer,
    +                 double&nbsp;value)</PRE>
    +<DL>
    +<DD>Set the value of y for the specified layer
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer relating to a specific entry into y[]<DD><CODE>value</CODE> - the y value for that layer</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphAbstractHierarchyCell.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphAbstractHierarchyCell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html
    new file mode 100644
    index 000000000..9b0fa94cc
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html
    @@ -0,0 +1,569 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphHierarchyEdge (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphHierarchyEdge (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyEdge.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.model</FONT>
    +<BR>
    +Class mxGraphHierarchyEdge</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell</A>
    +      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphHierarchyEdge</B><DT>extends <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></DL>
    +</PRE>
    +
    +<P>
    +An abstraction of a hierarchical edge for the hierarchy layout
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#edges">edges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The graph edge(s) this object represents.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#isReversed">isReversed</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not the direction of this edge has been reversed
    + internally to create a DAG for the hierarchical layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The node this edge is sourced at</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#target">target</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The node this edge targets</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#height">height</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#maxRank">maxRank</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#minRank">minRank</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#nextLayerConnectedCells">nextLayerConnectedCells</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#previousLayerConnectedCells">previousLayerConnectedCells</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#temp">temp</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#width">width</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#x">x</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#y">y</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#mxGraphHierarchyEdge(java.util.List)">mxGraphHierarchyEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;edges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a hierarchy edge</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#getGeneralPurposeVariable(int)">getGeneralPurposeVariable</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of temp for the specified layer</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#getNextLayerConnectedCells(int)">getNextLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer up</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#getPreviousLayerConnectedCells(int)">getPreviousLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer down</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#invert()">invert</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inverts the direction of this internal edge(s)</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#isEdge()">isEdge</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#isReversed()">isReversed</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#isVertex()">isVertex</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#setGeneralPurposeVariable(int, int)">setGeneralPurposeVariable</A></B>(int&nbsp;layer,
    +                          int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the value of temp for the specified layer</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#setReversed(boolean)">setReversed</A></B>(boolean&nbsp;isReversed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getX(int)">getX</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setX(int, double)">setX</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setY(int, double)">setY</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="edges"><!-- --></A><H3>
    +edges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>edges</B></PRE>
    +<DL>
    +<DD>The graph edge(s) this object represents. Parallel edges are all grouped
    + together within one hierarchy edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="source"><!-- --></A><H3>
    +source</H3>
    +<PRE>
    +public <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A> <B>source</B></PRE>
    +<DL>
    +<DD>The node this edge is sourced at
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="target"><!-- --></A><H3>
    +target</H3>
    +<PRE>
    +public <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A> <B>target</B></PRE>
    +<DL>
    +<DD>The node this edge targets
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="isReversed"><!-- --></A><H3>
    +isReversed</H3>
    +<PRE>
    +protected boolean <B>isReversed</B></PRE>
    +<DL>
    +<DD>Whether or not the direction of this edge has been reversed
    + internally to create a DAG for the hierarchical layout
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphHierarchyEdge(java.util.List)"><!-- --></A><H3>
    +mxGraphHierarchyEdge</H3>
    +<PRE>
    +public <B>mxGraphHierarchyEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;edges)</PRE>
    +<DL>
    +<DD>Constructs a hierarchy edge
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>edges</CODE> - a list of real graph edges this abstraction represents</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="invert()"><!-- --></A><H3>
    +invert</H3>
    +<PRE>
    +public void <B>invert</B>()</PRE>
    +<DL>
    +<DD>Inverts the direction of this internal edge(s)
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isReversed()"><!-- --></A><H3>
    +isReversed</H3>
    +<PRE>
    +public boolean <B>isReversed</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the isReversed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setReversed(boolean)"><!-- --></A><H3>
    +setReversed</H3>
    +<PRE>
    +public void <B>setReversed</B>(boolean&nbsp;isReversed)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isReversed</CODE> - The isReversed to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNextLayerConnectedCells(int)"><!-- --></A><H3>
    +getNextLayerConnectedCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt; <B>getNextLayerConnectedCells</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Returns the cells this cell connects to on the next layer up
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getNextLayerConnectedCells(int)">getNextLayerConnectedCells</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer this cell is on
    +<DT><B>Returns:</B><DD>the cells this cell connects to on the next layer up</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreviousLayerConnectedCells(int)"><!-- --></A><H3>
    +getPreviousLayerConnectedCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt; <B>getPreviousLayerConnectedCells</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Returns the cells this cell connects to on the next layer down
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getPreviousLayerConnectedCells(int)">getPreviousLayerConnectedCells</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer this cell is on
    +<DT><B>Returns:</B><DD>the cells this cell connects to on the next layer down</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdge()"><!-- --></A><H3>
    +isEdge</H3>
    +<PRE>
    +public boolean <B>isEdge</B>()</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#isEdge()">isEdge</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>whether or not this cell is an edge</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertex()"><!-- --></A><H3>
    +isVertex</H3>
    +<PRE>
    +public boolean <B>isVertex</B>()</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#isVertex()">isVertex</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>whether or not this cell is a node</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGeneralPurposeVariable(int)"><!-- --></A><H3>
    +getGeneralPurposeVariable</H3>
    +<PRE>
    +public int <B>getGeneralPurposeVariable</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Gets the value of temp for the specified layer
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getGeneralPurposeVariable(int)">getGeneralPurposeVariable</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer relating to a specific entry into temp
    +<DT><B>Returns:</B><DD>the value for that layer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGeneralPurposeVariable(int, int)"><!-- --></A><H3>
    +setGeneralPurposeVariable</H3>
    +<PRE>
    +public void <B>setGeneralPurposeVariable</B>(int&nbsp;layer,
    +                                      int&nbsp;value)</PRE>
    +<DL>
    +<DD>Set the value of temp for the specified layer
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setGeneralPurposeVariable(int, int)">setGeneralPurposeVariable</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer relating to a specific entry into temp<DD><CODE>value</CODE> - the value for that layer</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyEdge.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyEdge.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html
    new file mode 100644
    index 000000000..5dec48c36
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html
    @@ -0,0 +1,229 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphHierarchyModel.CellVisitor (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphHierarchyModel.CellVisitor (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyModel.CellVisitor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyModel.CellVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.model</FONT>
    +<BR>
    +Interface mxGraphHierarchyModel.CellVisitor</H2>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static interface <B>mxGraphHierarchyModel.CellVisitor</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the interface that visitors use to perform operations upon the
    + graph information during depth first search (dfs) or other tree-traversal
    + strategies implemented by subclassers.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html#visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, int, int)">visit</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +      <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;cell,
    +      <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +      int&nbsp;layer,
    +      int&nbsp;seen)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The method within which the visitor will perform operations upon the
    + graph model</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, int, int)"><!-- --></A><H3>
    +visit</H3>
    +<PRE>
    +void <B>visit</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +           <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;cell,
    +           <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +           int&nbsp;layer,
    +           int&nbsp;seen)</PRE>
    +<DL>
    +<DD>The method within which the visitor will perform operations upon the
    + graph model
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - the parent cell the current cell<DD><CODE>cell</CODE> - the current cell visited<DD><CODE>connectingEdge</CODE> - the edge that led the last cell visited to this cell<DD><CODE>layer</CODE> - the current layer of the tree<DD><CODE>seen</CODE> - an int indicating whether this cell has been seen
    +            previously</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyModel.CellVisitor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyModel.CellVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html
    new file mode 100644
    index 000000000..421be879d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html
    @@ -0,0 +1,839 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphHierarchyModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphHierarchyModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.model</FONT>
    +<BR>
    +Class mxGraphHierarchyModel</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphHierarchyModel</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Internal model of a hierarchical graph. This model stores nodes and edges
    + equivalent to the real graph nodes and edges, but also stores the rank of the
    + cells, the order within the ranks and the new candidate locations of cells.
    + The internal model also reverses edge direction were appropriate , ignores
    + self-loop and groups parallels together under one edge object.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the interface that visitors use to perform operations upon the
    + graph information during depth first search (dfs) or other tree-traversal
    + strategies implemented by subclassers.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#deterministic">deterministic</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not cells are ordered according to the order in the graph
    + model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfsCount">dfsCount</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Count of the number of times the ancestor dfs has been used</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#edgeMapper">edgeMapper</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map from graph edges to internal model edges</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#maxRank">maxRank</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores the largest rank number allocated</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#parent">parent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The parent cell whose children are being laid out</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyRank</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#ranks">ranks</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mapping from rank number to actual rank</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#roots">roots</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Store of roots of this hierarchy model, these are real graph cells, not
    + internal cells</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#scanRanksFromSinks">scanRanksFromSinks</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the rank assignment is done from the sinks or sources.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#vertexMapper">vertexMapper</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map from graph vertices to internal model nodes</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#mxGraphHierarchyModel(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], java.util.List, java.lang.Object, boolean, boolean, boolean)">mxGraphHierarchyModel</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;roots,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                      boolean&nbsp;ordered,
    +                      boolean&nbsp;deterministic,
    +                      boolean&nbsp;scanRanksFromSinks)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an internal ordered graph model using the vertices passed in.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#createInternalCells(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[])">createInternalCells</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>[]&nbsp;internalVertices)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates all edges in the internal model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int)">dfs</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int[], int, int)">dfs</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +    int[]&nbsp;ancestors,
    +    int&nbsp;childHash,
    +    int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a depth first search on the internal hierarchy model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#fixRanks()">fixRanks</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fixes the layer assignments to the values stored in the nodes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#formOrderedHierarchy(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], java.lang.Object)">formOrderedHierarchy</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an internal ordered graph model using the vertices passed in.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#getDfsCount()">getDfsCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#getEdgeMapper()">getEdgeMapper</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#getVertexMapper()">getVertexMapper</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#initialRank()">initialRank</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basic determination of minimum layer ranking by working from from sources
    + or sinks and working through each node in the relevant edge direction.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#isDeterministic()">isDeterministic</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setDeterministic(boolean)">setDeterministic</A></B>(boolean&nbsp;deterministic)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setDfsCount(int)">setDfsCount</A></B>(int&nbsp;dfsCount)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setEdgeMapper(java.util.Map)">setEdgeMapper</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;&nbsp;edgeMapper)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setVertexMapper(java.util.Map)">setVertexMapper</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;vertexMapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[], boolean, java.util.Set)">visit</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +      <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>[]&nbsp;dfsRoots,
    +      boolean&nbsp;trackAncestors,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seenNodes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A depth first search through the internal hierarchy model</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="scanRanksFromSinks"><!-- --></A><H3>
    +scanRanksFromSinks</H3>
    +<PRE>
    +protected boolean <B>scanRanksFromSinks</B></PRE>
    +<DL>
    +<DD>Whether the rank assignment is done from the sinks or sources.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxRank"><!-- --></A><H3>
    +maxRank</H3>
    +<PRE>
    +public int <B>maxRank</B></PRE>
    +<DL>
    +<DD>Stores the largest rank number allocated
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="vertexMapper"><!-- --></A><H3>
    +vertexMapper</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt; <B>vertexMapper</B></PRE>
    +<DL>
    +<DD>Map from graph vertices to internal model nodes
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="edgeMapper"><!-- --></A><H3>
    +edgeMapper</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt; <B>edgeMapper</B></PRE>
    +<DL>
    +<DD>Map from graph edges to internal model edges
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ranks"><!-- --></A><H3>
    +ranks</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyRank</A>&gt; <B>ranks</B></PRE>
    +<DL>
    +<DD>Mapping from rank number to actual rank
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="roots"><!-- --></A><H3>
    +roots</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>roots</B></PRE>
    +<DL>
    +<DD>Store of roots of this hierarchy model, these are real graph cells, not
    + internal cells
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="parent"><!-- --></A><H3>
    +parent</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>parent</B></PRE>
    +<DL>
    +<DD>The parent cell whose children are being laid out
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dfsCount"><!-- --></A><H3>
    +dfsCount</H3>
    +<PRE>
    +protected int <B>dfsCount</B></PRE>
    +<DL>
    +<DD>Count of the number of times the ancestor dfs has been used
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="deterministic"><!-- --></A><H3>
    +deterministic</H3>
    +<PRE>
    +protected boolean <B>deterministic</B></PRE>
    +<DL>
    +<DD>Whether or not cells are ordered according to the order in the graph
    + model. Defaults to false since sorting usually produces quadratic
    + performance. Note that since JGraph 6 returns edges in a deterministic
    + order, it might be that this layout is always deterministic using that
    + JGraph regardless of this flag setting (i.e. leave it false in that case)
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphHierarchyModel(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], java.util.List, java.lang.Object, boolean, boolean, boolean)"><!-- --></A><H3>
    +mxGraphHierarchyModel</H3>
    +<PRE>
    +public <B>mxGraphHierarchyModel</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;roots,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                             boolean&nbsp;ordered,
    +                             boolean&nbsp;deterministic,
    +                             boolean&nbsp;scanRanksFromSinks)</PRE>
    +<DL>
    +<DD>Creates an internal ordered graph model using the vertices passed in. If
    + there are any, leftward edge need to be inverted in the internal model
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>layout</CODE> - the enclosing layout object<DD><CODE>vertices</CODE> - the vertices for this hierarchy<DD><CODE>ordered</CODE> - whether or not the vertices are already ordered<DD><CODE>deterministic</CODE> - whether or not this layout should be deterministic on each<DD><CODE>scanRanksFromSinks</CODE> - Whether the rank assignment is done from the sinks or sources.
    +            usage</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="formOrderedHierarchy(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], java.lang.Object)"><!-- --></A><H3>
    +formOrderedHierarchy</H3>
    +<PRE>
    +public void <B>formOrderedHierarchy</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Creates an internal ordered graph model using the vertices passed in. If
    + there are any, leftward edge need to be inverted in the internal model
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layout</CODE> - reference to the layout algorithm<DD><CODE>vertices</CODE> - the vertices to be laid out</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createInternalCells(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[])"><!-- --></A><H3>
    +createInternalCells</H3>
    +<PRE>
    +protected void <B>createInternalCells</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                                   <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>[]&nbsp;internalVertices)</PRE>
    +<DL>
    +<DD>Creates all edges in the internal model
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layout</CODE> - reference to the layout algorithm<DD><CODE>vertices</CODE> - the vertices whom are to have an internal representation
    +            created<DD><CODE>internalVertices</CODE> - the blank internal vertices to have their information filled
    +            in using the real vertices</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="initialRank()"><!-- --></A><H3>
    +initialRank</H3>
    +<PRE>
    +public void <B>initialRank</B>()</PRE>
    +<DL>
    +<DD>Basic determination of minimum layer ranking by working from from sources
    + or sinks and working through each node in the relevant edge direction.
    + Starting at the sinks is basically a longest path layering algorithm.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fixRanks()"><!-- --></A><H3>
    +fixRanks</H3>
    +<PRE>
    +public void <B>fixRanks</B>()</PRE>
    +<DL>
    +<DD>Fixes the layer assignments to the values stored in the nodes. Also needs
    + to create dummy nodes for edges that cross layers.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[], boolean, java.util.Set)"><!-- --></A><H3>
    +visit</H3>
    +<PRE>
    +public void <B>visit</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +                  <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>[]&nbsp;dfsRoots,
    +                  boolean&nbsp;trackAncestors,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seenNodes)</PRE>
    +<DL>
    +<DD>A depth first search through the internal hierarchy model
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>visitor</CODE> - the visitor pattern to be called for each node<DD><CODE>trackAncestors</CODE> - whether or not the search is to keep track all nodes directly
    +            above this one in the search path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int)"><!-- --></A><H3>
    +dfs</H3>
    +<PRE>
    +public void <B>dfs</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +                <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +                <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +                <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +                int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Performs a depth first search on the internal hierarchy model
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - the parent internal node of the current internal node<DD><CODE>root</CODE> - the current internal node<DD><CODE>connectingEdge</CODE> - the internal edge connecting the internal node and the parent
    +            internal node, if any<DD><CODE>visitor</CODE> - the visitor pattern to be called for each node<DD><CODE>seen</CODE> - a set of all nodes seen by this dfs a set of all of the
    +            ancestor node of the current node<DD><CODE>layer</CODE> - the layer on the dfs tree ( not the same as the model ranks )</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int[], int, int)"><!-- --></A><H3>
    +dfs</H3>
    +<PRE>
    +public void <B>dfs</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;parent,
    +                <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;root,
    +                <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;connectingEdge,
    +                <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>&nbsp;visitor,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;seen,
    +                int[]&nbsp;ancestors,
    +                int&nbsp;childHash,
    +                int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Performs a depth first search on the internal hierarchy model. This dfs
    + extends the default version by keeping track of cells ancestors, but it
    + should be only used when necessary because of it can be computationally
    + intensive for deep searches.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - the parent internal node of the current internal node<DD><CODE>root</CODE> - the current internal node<DD><CODE>connectingEdge</CODE> - the internal edge connecting the internal node and the parent
    +            internal node, if any<DD><CODE>visitor</CODE> - the visitor pattern to be called for each node<DD><CODE>seen</CODE> - a set of all nodes seen by this dfs<DD><CODE>ancestors</CODE> - the parent hash code<DD><CODE>childHash</CODE> - the new hash code for this node<DD><CODE>layer</CODE> - the layer on the dfs tree ( not the same as the model ranks )</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getVertexMapper()"><!-- --></A><H3>
    +getVertexMapper</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt; <B>getVertexMapper</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the vertexMapping.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVertexMapper(java.util.Map)"><!-- --></A><H3>
    +setVertexMapper</H3>
    +<PRE>
    +public void <B>setVertexMapper</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&gt;&nbsp;vertexMapping)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertexMapping</CODE> - The vertexMapping to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeMapper()"><!-- --></A><H3>
    +getEdgeMapper</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt; <B>getEdgeMapper</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the edgeMapper.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeMapper(java.util.Map)"><!-- --></A><H3>
    +setEdgeMapper</H3>
    +<PRE>
    +public void <B>setEdgeMapper</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;&nbsp;edgeMapper)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edgeMapper</CODE> - The edgeMapper to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDfsCount()"><!-- --></A><H3>
    +getDfsCount</H3>
    +<PRE>
    +public int <B>getDfsCount</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the dfsCount.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDfsCount(int)"><!-- --></A><H3>
    +setDfsCount</H3>
    +<PRE>
    +public void <B>setDfsCount</B>(int&nbsp;dfsCount)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dfsCount</CODE> - The dfsCount to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDeterministic()"><!-- --></A><H3>
    +isDeterministic</H3>
    +<PRE>
    +public boolean <B>isDeterministic</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the deterministic.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDeterministic(boolean)"><!-- --></A><H3>
    +setDeterministic</H3>
    +<PRE>
    +public void <B>setDeterministic</B>(boolean&nbsp;deterministic)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>deterministic</CODE> - The deterministic to set.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html
    new file mode 100644
    index 000000000..0dfaca339
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html
    @@ -0,0 +1,568 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphHierarchyNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphHierarchyNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.model</FONT>
    +<BR>
    +Class mxGraphHierarchyNode</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell</A>
    +      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphHierarchyNode</B><DT>extends <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></DL>
    +</PRE>
    +
    +<P>
    +An abstraction of an internal node in the hierarchy layout
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The graph cell this object represents.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#connectsAsSource">connectsAsSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collection of hierarchy edges that have this node as a source</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#connectsAsTarget">connectsAsTarget</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collection of hierarchy edges that have this node as a target</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#emptyConnectionMap">emptyConnectionMap</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shared empty connection map to return instead of null in applyMap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#hashCode">hashCode</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns a unique hashcode for each node.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#height">height</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#maxRank">maxRank</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#minRank">minRank</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#nextLayerConnectedCells">nextLayerConnectedCells</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#previousLayerConnectedCells">previousLayerConnectedCells</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#temp">temp</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#width">width</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#x">x</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#y">y</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#mxGraphHierarchyNode(java.lang.Object)">mxGraphHierarchyNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an internal node to represent the specified real graph cell</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getGeneralPurposeVariable(int)">getGeneralPurposeVariable</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of temp for the specified layer</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getNextLayerConnectedCells(int)">getNextLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer up</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getPreviousLayerConnectedCells(int)">getPreviousLayerConnectedCells</A></B>(int&nbsp;layer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells this cell connects to on the next layer down</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getRankValue()">getRankValue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the integer value of the layer that this node resides in</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#isAncestor(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode)">isAncestor</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;otherNode)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#isEdge()">isEdge</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#isVertex()">isVertex</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#setGeneralPurposeVariable(int, int)">setGeneralPurposeVariable</A></B>(int&nbsp;layer,
    +                          int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the value of temp for the specified layer</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getX(int)">getX</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setX(int, double)">setX</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setY(int, double)">setY</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="emptyConnectionMap"><!-- --></A><H3>
    +emptyConnectionMap</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt; <B>emptyConnectionMap</B></PRE>
    +<DL>
    +<DD>Shared empty connection map to return instead of null in applyMap.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DD>The graph cell this object represents.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="connectsAsTarget"><!-- --></A><H3>
    +connectsAsTarget</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt; <B>connectsAsTarget</B></PRE>
    +<DL>
    +<DD>Collection of hierarchy edges that have this node as a target
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="connectsAsSource"><!-- --></A><H3>
    +connectsAsSource</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&gt; <B>connectsAsSource</B></PRE>
    +<DL>
    +<DD>Collection of hierarchy edges that have this node as a source
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="hashCode"><!-- --></A><H3>
    +hashCode</H3>
    +<PRE>
    +public int[] <B>hashCode</B></PRE>
    +<DL>
    +<DD>Assigns a unique hashcode for each node. Used by the model dfs instead
    + of copying HashSets
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphHierarchyNode(java.lang.Object)"><!-- --></A><H3>
    +mxGraphHierarchyNode</H3>
    +<PRE>
    +public <B>mxGraphHierarchyNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Constructs an internal node to represent the specified real graph cell
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - the real graph cell this node represents</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getRankValue()"><!-- --></A><H3>
    +getRankValue</H3>
    +<PRE>
    +public int <B>getRankValue</B>()</PRE>
    +<DL>
    +<DD>Returns the integer value of the layer that this node resides in
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the integer value of the layer that this node resides in</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNextLayerConnectedCells(int)"><!-- --></A><H3>
    +getNextLayerConnectedCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt; <B>getNextLayerConnectedCells</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Returns the cells this cell connects to on the next layer up
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getNextLayerConnectedCells(int)">getNextLayerConnectedCells</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer this cell is on
    +<DT><B>Returns:</B><DD>the cells this cell connects to on the next layer up</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreviousLayerConnectedCells(int)"><!-- --></A><H3>
    +getPreviousLayerConnectedCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt; <B>getPreviousLayerConnectedCells</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Returns the cells this cell connects to on the next layer down
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getPreviousLayerConnectedCells(int)">getPreviousLayerConnectedCells</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer this cell is on
    +<DT><B>Returns:</B><DD>the cells this cell connects to on the next layer down</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdge()"><!-- --></A><H3>
    +isEdge</H3>
    +<PRE>
    +public boolean <B>isEdge</B>()</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#isEdge()">isEdge</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>whether or not this cell is an edge</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertex()"><!-- --></A><H3>
    +isVertex</H3>
    +<PRE>
    +public boolean <B>isVertex</B>()</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#isVertex()">isVertex</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>whether or not this cell is a node</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGeneralPurposeVariable(int)"><!-- --></A><H3>
    +getGeneralPurposeVariable</H3>
    +<PRE>
    +public int <B>getGeneralPurposeVariable</B>(int&nbsp;layer)</PRE>
    +<DL>
    +<DD>Gets the value of temp for the specified layer
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getGeneralPurposeVariable(int)">getGeneralPurposeVariable</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer relating to a specific entry into temp
    +<DT><B>Returns:</B><DD>the value for that layer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGeneralPurposeVariable(int, int)"><!-- --></A><H3>
    +setGeneralPurposeVariable</H3>
    +<PRE>
    +public void <B>setGeneralPurposeVariable</B>(int&nbsp;layer,
    +                                      int&nbsp;value)</PRE>
    +<DL>
    +<DD>Set the value of temp for the specified layer
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setGeneralPurposeVariable(int, int)">setGeneralPurposeVariable</A></CODE> in class <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>layer</CODE> - the layer relating to a specific entry into temp<DD><CODE>value</CODE> - the value for that layer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAncestor(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode)"><!-- --></A><H3>
    +isAncestor</H3>
    +<PRE>
    +public boolean <B>isAncestor</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>&nbsp;otherNode)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html
    new file mode 100644
    index 000000000..69f785230
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html
    @@ -0,0 +1,275 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphHierarchyRank (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphHierarchyRank (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyRank.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyRank.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.util.HashSet">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.model</FONT>
    +<BR>
    +Class mxGraphHierarchyRank</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util">java.util.AbstractCollection</A>&lt;E&gt;
    +      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractSet.html?is-external=true" title="class or interface in java.util">java.util.AbstractSet</A>&lt;E&gt;
    +          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">java.util.HashSet</A>&lt;E&gt;
    +              <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedHashSet.html?is-external=true" title="class or interface in java.util">java.util.LinkedHashSet</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;
    +                  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.model.mxGraphHierarchyRank</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphHierarchyRank</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedHashSet.html?is-external=true" title="class or interface in java.util">LinkedHashSet</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt;</DL>
    +</PRE>
    +
    +<P>
    +An abstraction of a rank in the hierarchy layout. Should be ordered, perform
    + remove in constant time and contains in constant time
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.mxgraph.layout.hierarchical.model.mxGraphHierarchyRank">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html#mxGraphHierarchyRank()">mxGraphHierarchyRank</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.util.HashSet"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true#add(E)" title="class or interface in java.util">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true#clear()" title="class or interface in java.util">clear</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true#clone()" title="class or interface in java.util">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true#contains(java.lang.Object)" title="class or interface in java.util">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true#isEmpty()" title="class or interface in java.util">isEmpty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true#iterator()" title="class or interface in java.util">iterator</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true#size()" title="class or interface in java.util">size</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.util.AbstractSet"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractSet.html?is-external=true" title="class or interface in java.util">AbstractSet</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractSet.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractSet.html?is-external=true#hashCode()" title="class or interface in java.util">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractSet.html?is-external=true#removeAll(java.util.Collection)" title="class or interface in java.util">removeAll</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.util.AbstractCollection"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util">AbstractCollection</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true#addAll(java.util.Collection)" title="class or interface in java.util">addAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true#containsAll(java.util.Collection)" title="class or interface in java.util">containsAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true#retainAll(java.util.Collection)" title="class or interface in java.util">retainAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true#toArray()" title="class or interface in java.util">toArray</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true#toArray(T[])" title="class or interface in java.util">toArray</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true#toString()" title="class or interface in java.util">toString</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.util.Set"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from interface java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#add(E)" title="class or interface in java.util">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#addAll(java.util.Collection)" title="class or interface in java.util">addAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#clear()" title="class or interface in java.util">clear</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#contains(java.lang.Object)" title="class or interface in java.util">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#containsAll(java.util.Collection)" title="class or interface in java.util">containsAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#hashCode()" title="class or interface in java.util">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#isEmpty()" title="class or interface in java.util">isEmpty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#iterator()" title="class or interface in java.util">iterator</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#removeAll(java.util.Collection)" title="class or interface in java.util">removeAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#retainAll(java.util.Collection)" title="class or interface in java.util">retainAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#size()" title="class or interface in java.util">size</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#toArray()" title="class or interface in java.util">toArray</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true#toArray(T[])" title="class or interface in java.util">toArray</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphHierarchyRank()"><!-- --></A><H3>
    +mxGraphHierarchyRank</H3>
    +<PRE>
    +public <B>mxGraphHierarchyRank</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHierarchyRank.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHierarchyRank.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.util.HashSet">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/package-frame.html b/java/docs/com/mxgraph/layout/hierarchical/model/package-frame.html
    new file mode 100644
    index 000000000..e8933690e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/package-frame.html
    @@ -0,0 +1,51 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.hierarchical.model (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html" target="classFrame">com.mxgraph.layout.hierarchical.model</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model" target="classFrame"><I>mxGraphHierarchyModel.CellVisitor</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphAbstractHierarchyCell</A>
    +<BR>
    +<A HREF="mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphHierarchyEdge</A>
    +<BR>
    +<A HREF="mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphHierarchyModel</A>
    +<BR>
    +<A HREF="mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphHierarchyNode</A>
    +<BR>
    +<A HREF="mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model" target="classFrame">mxGraphHierarchyRank</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/package-summary.html b/java/docs/com/mxgraph/layout/hierarchical/model/package-summary.html
    new file mode 100644
    index 000000000..e2b3ed9a2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/package-summary.html
    @@ -0,0 +1,190 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.hierarchical.model (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.hierarchical.model (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.layout.hierarchical.model
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A></B></TD>
    +<TD>Defines the interface that visitors use to perform operations upon the
    + graph information during depth first search (dfs) or other tree-traversal
    + strategies implemented by subclassers.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></B></TD>
    +<TD>An abstraction of an internal hierarchy node or edge</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A></B></TD>
    +<TD>An abstraction of a hierarchical edge for the hierarchy layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></B></TD>
    +<TD>Internal model of a hierarchical graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A></B></TD>
    +<TD>An abstraction of an internal node in the hierarchy layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyRank</A></B></TD>
    +<TD>An abstraction of a rank in the hierarchy layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/package-tree.html b/java/docs/com/mxgraph/layout/hierarchical/model/package-tree.html
    new file mode 100644
    index 000000000..7664d9557
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/package-tree.html
    @@ -0,0 +1,173 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.hierarchical.model Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.hierarchical.model Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.layout.hierarchical.model
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util"><B>AbstractCollection</B></A>&lt;E&gt; (implements java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;E&gt;)
    +<UL>
    +<LI TYPE="circle">java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractSet.html?is-external=true" title="class or interface in java.util"><B>AbstractSet</B></A>&lt;E&gt; (implements java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;E&gt;)
    +<UL>
    +<LI TYPE="circle">java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util"><B>HashSet</B></A>&lt;E&gt; (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;E&gt;)
    +<UL>
    +<LI TYPE="circle">java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedHashSet.html?is-external=true" title="class or interface in java.util"><B>LinkedHashSet</B></A>&lt;E&gt; (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;E&gt;)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyRank</B></A></UL>
    +</UL>
    +</UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphAbstractHierarchyCell</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyEdge</B></A><LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyNode</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyModel</B></A></UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyModel.CellVisitor</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/model/package-use.html b/java/docs/com/mxgraph/layout/hierarchical/model/package-use.html
    new file mode 100644
    index 000000000..59c2c9d4d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/model/package-use.html
    @@ -0,0 +1,247 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.layout.hierarchical.model (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.layout.hierarchical.model (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.layout.hierarchical.model</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical"><B>com.mxgraph.layout.hierarchical</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.model"><B>com.mxgraph.layout.hierarchical.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> used by <A HREF="../../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyModel.html#com.mxgraph.layout.hierarchical"><B>mxGraphHierarchyModel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal model of a hierarchical graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> used by <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/class-use/mxGraphAbstractHierarchyCell.html#com.mxgraph.layout.hierarchical.model"><B>mxGraphAbstractHierarchyCell</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstraction of an internal hierarchy node or edge</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyEdge.html#com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyEdge</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstraction of a hierarchical edge for the hierarchy layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyModel.CellVisitor.html#com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyModel.CellVisitor</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the interface that visitors use to perform operations upon the
    + graph information during depth first search (dfs) or other tree-traversal
    + strategies implemented by subclassers.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyNode.html#com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyNode</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstraction of an internal node in the hierarchy layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyRank.html#com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyRank</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstraction of a rank in the hierarchy layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A> used by <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/class-use/mxGraphAbstractHierarchyCell.html#com.mxgraph.layout.hierarchical.stage"><B>mxGraphAbstractHierarchyCell</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstraction of an internal hierarchy node or edge</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyEdge.html#com.mxgraph.layout.hierarchical.stage"><B>mxGraphHierarchyEdge</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstraction of a hierarchical edge for the hierarchy layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/model/class-use/mxGraphHierarchyModel.html#com.mxgraph.layout.hierarchical.stage"><B>mxGraphHierarchyModel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal model of a hierarchical graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/model/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html b/java/docs/com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html
    new file mode 100644
    index 000000000..031e7bed5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html
    @@ -0,0 +1,1368 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxHierarchicalLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxHierarchicalLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHierarchicalLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHierarchicalLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical</FONT>
    +<BR>
    +Class mxHierarchicalLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.mxHierarchicalLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxHierarchicalLayout</B><DT>extends <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +The top level compound layout of the hierarchical layout. The individual
    + elements of the layout are called in sequence.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#deterministic">deterministic</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not cells are ordered according to the order in the graph
    + model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#disableEdgeStyle">disableEdgeStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#fineTuning">fineTuning</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to perform local optimisations and iterate multiple times
    + through the algorithm</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#fixRoots">fixRoots</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to fix the position of the root cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#interHierarchySpacing">interHierarchySpacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The spacing buffer between unconnected hierarchies</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#interRankCellSpacing">interRankCellSpacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The spacing buffer added between cell on adjacent layers</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#intraCellSpacing">intraCellSpacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The spacing buffer added between cells on the same layer</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#layoutFromSinks">layoutFromSinks</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not the initial scan of the graph to determine the layer
    + assigned to each vertex starts from the sinks or source (the sinks
    + being vertices with the fewest, preferable zero, outgoing edges and
    + sources same with incoming edges).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The internal model formed of the layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#moveParent">moveParent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the parnent should be moved if resizeParent is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#orientation">orientation</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The position of the root node(s) relative to the laid out graph in.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#parallelEdgeSpacing">parallelEdgeSpacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The distance between each parallel edge on each ranks for long edges</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#parentBorder">parentBorder</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The border to be added around the children if the parent is to be
    + resized using resizeParent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#resizeParent">resizeParent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the parent should be resized after the layout so that it
    + contains all the child cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#roots">roots</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The root nodes of the layout</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#mxHierarchicalLayout(com.mxgraph.view.mxGraph)">mxHierarchicalLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a hierarchical layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#mxHierarchicalLayout(com.mxgraph.view.mxGraph, int)">mxHierarchicalLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                     int&nbsp;orientation)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a hierarchical layout</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#crossingStage(java.lang.Object)">crossingStage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the crossing stage using mxMedianHybridCrossingReduction.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#cycleStage(java.lang.Object)">cycleStage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the cycle stage.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#execute(java.lang.Object, java.util.List)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;roots)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getInterHierarchySpacing()">getInterHierarchySpacing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getInterRankCellSpacing()">getInterRankCellSpacing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getIntraCellSpacing()">getIntraCellSpacing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getModel()">getModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the model for this layout algorithm.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getOrientation()">getOrientation</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getParallelEdgeSpacing()">getParallelEdgeSpacing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getParentBorder()">getParentBorder</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns parentBorder.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isDeterministic()">isDeterministic</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isDisableEdgeStyle()">isDisableEdgeStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isFineTuning()">isFineTuning</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isFixRoots()">isFixRoots</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isLayoutFromSinks()">isLayoutFromSinks</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isMoveParent()">isMoveParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the moveParent flag.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isResizeParent()">isResizeParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the resizeParent flag.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#layeringStage()">layeringStage</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements first stage of a Sugiyama layout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#placementStage(double, java.lang.Object)">placementStage</A></B>(double&nbsp;initialX,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the placement stage using mxCoordinateAssignment.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#run(java.lang.Object)">run</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The API method used to exercise the layout upon the graph description
    + and produce a separate description of the vertex position and edge
    + routing changes made.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setDeterministic(boolean)">setDeterministic</A></B>(boolean&nbsp;deterministic)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setDisableEdgeStyle(boolean)">setDisableEdgeStyle</A></B>(boolean&nbsp;disableEdgeStyle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setFineTuning(boolean)">setFineTuning</A></B>(boolean&nbsp;fineTuning)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setFixRoots(boolean)">setFixRoots</A></B>(boolean&nbsp;fixRoots)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setInterHierarchySpacing(double)">setInterHierarchySpacing</A></B>(double&nbsp;interHierarchySpacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setInterRankCellSpacing(double)">setInterRankCellSpacing</A></B>(double&nbsp;interRankCellSpacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setIntraCellSpacing(double)">setIntraCellSpacing</A></B>(double&nbsp;intraCellSpacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setLayoutFromSinks(boolean)">setLayoutFromSinks</A></B>(boolean&nbsp;layoutFromSinks)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setLoggerLevel(java.util.logging.Level)">setLoggerLevel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/logging/Level.html?is-external=true" title="class or interface in java.util.logging">Level</A>&nbsp;level)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the logging level of this class</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setMoveParent(boolean)">setMoveParent</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the moveParent flag.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setOrientation(int)">setOrientation</A></B>(int&nbsp;orientation)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setParallelEdgeSpacing(double)">setParallelEdgeSpacing</A></B>(double&nbsp;parallelEdgeSpacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setParentBorder(int)">setParentBorder</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets parentBorder.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setResizeParent(boolean)">setResizeParent</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the resizeParent flag.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#toString()">toString</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>Hierarchical</code>, the name of this algorithm.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="roots"><!-- --></A><H3>
    +roots</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>roots</B></PRE>
    +<DL>
    +<DD>The root nodes of the layout
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeParent"><!-- --></A><H3>
    +resizeParent</H3>
    +<PRE>
    +protected boolean <B>resizeParent</B></PRE>
    +<DL>
    +<DD>Specifies if the parent should be resized after the layout so that it
    + contains all the child cells. Default is false. @See parentBorder.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="moveParent"><!-- --></A><H3>
    +moveParent</H3>
    +<PRE>
    +protected boolean <B>moveParent</B></PRE>
    +<DL>
    +<DD>Specifies if the parnent should be moved if resizeParent is enabled.
    + Default is false. @See resizeParent.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="parentBorder"><!-- --></A><H3>
    +parentBorder</H3>
    +<PRE>
    +protected int <B>parentBorder</B></PRE>
    +<DL>
    +<DD>The border to be added around the children if the parent is to be
    + resized using resizeParent. Default is 0. @See resizeParent.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="intraCellSpacing"><!-- --></A><H3>
    +intraCellSpacing</H3>
    +<PRE>
    +protected double <B>intraCellSpacing</B></PRE>
    +<DL>
    +<DD>The spacing buffer added between cells on the same layer
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="interRankCellSpacing"><!-- --></A><H3>
    +interRankCellSpacing</H3>
    +<PRE>
    +protected double <B>interRankCellSpacing</B></PRE>
    +<DL>
    +<DD>The spacing buffer added between cell on adjacent layers
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="interHierarchySpacing"><!-- --></A><H3>
    +interHierarchySpacing</H3>
    +<PRE>
    +protected double <B>interHierarchySpacing</B></PRE>
    +<DL>
    +<DD>The spacing buffer between unconnected hierarchies
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="parallelEdgeSpacing"><!-- --></A><H3>
    +parallelEdgeSpacing</H3>
    +<PRE>
    +protected double <B>parallelEdgeSpacing</B></PRE>
    +<DL>
    +<DD>The distance between each parallel edge on each ranks for long edges
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="orientation"><!-- --></A><H3>
    +orientation</H3>
    +<PRE>
    +protected int <B>orientation</B></PRE>
    +<DL>
    +<DD>The position of the root node(s) relative to the laid out graph in. 
    + Default is <code>SwingConstants.NORTH</code>, i.e. top-down.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="disableEdgeStyle"><!-- --></A><H3>
    +disableEdgeStyle</H3>
    +<PRE>
    +protected boolean <B>disableEdgeStyle</B></PRE>
    +<DL>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fineTuning"><!-- --></A><H3>
    +fineTuning</H3>
    +<PRE>
    +protected boolean <B>fineTuning</B></PRE>
    +<DL>
    +<DD>Whether or not to perform local optimisations and iterate multiple times
    + through the algorithm
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="deterministic"><!-- --></A><H3>
    +deterministic</H3>
    +<PRE>
    +protected boolean <B>deterministic</B></PRE>
    +<DL>
    +<DD>Whether or not cells are ordered according to the order in the graph
    + model. Defaults to false since sorting usually produces quadratic
    + performance. Note that since mxGraph returns edges in a deterministic
    + order, it might be that this layout is always deterministic using that
    + JGraph regardless of this flag setting (i.e. leave it false in that
    + case). Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fixRoots"><!-- --></A><H3>
    +fixRoots</H3>
    +<PRE>
    +protected boolean <B>fixRoots</B></PRE>
    +<DL>
    +<DD>Whether or not to fix the position of the root cells. Keep in mind to
    + turn off features such as move to origin when fixing the roots, move
    + to origin usually overrides this flag (in JGraph it does).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="layoutFromSinks"><!-- --></A><H3>
    +layoutFromSinks</H3>
    +<PRE>
    +protected boolean <B>layoutFromSinks</B></PRE>
    +<DL>
    +<DD>Whether or not the initial scan of the graph to determine the layer
    + assigned to each vertex starts from the sinks or source (the sinks
    + being vertices with the fewest, preferable zero, outgoing edges and
    + sources same with incoming edges). Starting from either direction
    + can tight the layout up and also produce better results for certain
    + types of graphs. If the result for the default is not good enough
    + try a few sample layouts with the value false to see if they improve
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="model"><!-- --></A><H3>
    +model</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A> <B>model</B></PRE>
    +<DL>
    +<DD>The internal model formed of the layout
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxHierarchicalLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxHierarchicalLayout</H3>
    +<PRE>
    +public <B>mxHierarchicalLayout</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a hierarchical layout
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - the graph to lay out</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxHierarchicalLayout(com.mxgraph.view.mxGraph, int)"><!-- --></A><H3>
    +mxHierarchicalLayout</H3>
    +<PRE>
    +public <B>mxHierarchicalLayout</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                            int&nbsp;orientation)</PRE>
    +<DL>
    +<DD>Constructs a hierarchical layout
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - the graph to lay out<DD><CODE>orientation</CODE> - <code>SwingConstants.NORTH, SwingConstants.EAST, SwingConstants.SOUTH</code> or <code> SwingConstants.WEST</code></DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getModel()"><!-- --></A><H3>
    +getModel</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A> <B>getModel</B>()</PRE>
    +<DL>
    +<DD>Returns the model for this layout algorithm.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be laid out.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(java.lang.Object, java.util.List)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;roots)</PRE>
    +<DL>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be laid out.<DD><CODE>roots</CODE> - the starting roots of the layout</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="run(java.lang.Object)"><!-- --></A><H3>
    +run</H3>
    +<PRE>
    +public void <B>run</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>The API method used to exercise the layout upon the graph description
    + and produce a separate description of the vertex position and edge
    + routing changes made.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cycleStage(java.lang.Object)"><!-- --></A><H3>
    +cycleStage</H3>
    +<PRE>
    +public void <B>cycleStage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Executes the cycle stage. This implementation uses the
    + mxMinimumCycleRemover.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="layeringStage()"><!-- --></A><H3>
    +layeringStage</H3>
    +<PRE>
    +public void <B>layeringStage</B>()</PRE>
    +<DL>
    +<DD>Implements first stage of a Sugiyama layout.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="crossingStage(java.lang.Object)"><!-- --></A><H3>
    +crossingStage</H3>
    +<PRE>
    +public void <B>crossingStage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Executes the crossing stage using mxMedianHybridCrossingReduction.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="placementStage(double, java.lang.Object)"><!-- --></A><H3>
    +placementStage</H3>
    +<PRE>
    +public double <B>placementStage</B>(double&nbsp;initialX,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Executes the placement stage using mxCoordinateAssignment.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResizeParent()"><!-- --></A><H3>
    +isResizeParent</H3>
    +<PRE>
    +public boolean <B>isResizeParent</B>()</PRE>
    +<DL>
    +<DD>Returns the resizeParent flag.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResizeParent(boolean)"><!-- --></A><H3>
    +setResizeParent</H3>
    +<PRE>
    +public void <B>setResizeParent</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the resizeParent flag.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isMoveParent()"><!-- --></A><H3>
    +isMoveParent</H3>
    +<PRE>
    +public boolean <B>isMoveParent</B>()</PRE>
    +<DL>
    +<DD>Returns the moveParent flag.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMoveParent(boolean)"><!-- --></A><H3>
    +setMoveParent</H3>
    +<PRE>
    +public void <B>setMoveParent</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the moveParent flag.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParentBorder()"><!-- --></A><H3>
    +getParentBorder</H3>
    +<PRE>
    +public int <B>getParentBorder</B>()</PRE>
    +<DL>
    +<DD>Returns parentBorder.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setParentBorder(int)"><!-- --></A><H3>
    +setParentBorder</H3>
    +<PRE>
    +public void <B>setParentBorder</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets parentBorder.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIntraCellSpacing()"><!-- --></A><H3>
    +getIntraCellSpacing</H3>
    +<PRE>
    +public double <B>getIntraCellSpacing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the intraCellSpacing.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setIntraCellSpacing(double)"><!-- --></A><H3>
    +setIntraCellSpacing</H3>
    +<PRE>
    +public void <B>setIntraCellSpacing</B>(double&nbsp;intraCellSpacing)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>intraCellSpacing</CODE> - The intraCellSpacing to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInterRankCellSpacing()"><!-- --></A><H3>
    +getInterRankCellSpacing</H3>
    +<PRE>
    +public double <B>getInterRankCellSpacing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the interRankCellSpacing.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInterRankCellSpacing(double)"><!-- --></A><H3>
    +setInterRankCellSpacing</H3>
    +<PRE>
    +public void <B>setInterRankCellSpacing</B>(double&nbsp;interRankCellSpacing)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>interRankCellSpacing</CODE> - The interRankCellSpacing to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOrientation()"><!-- --></A><H3>
    +getOrientation</H3>
    +<PRE>
    +public int <B>getOrientation</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the orientation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOrientation(int)"><!-- --></A><H3>
    +setOrientation</H3>
    +<PRE>
    +public void <B>setOrientation</B>(int&nbsp;orientation)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>orientation</CODE> - The orientation to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInterHierarchySpacing()"><!-- --></A><H3>
    +getInterHierarchySpacing</H3>
    +<PRE>
    +public double <B>getInterHierarchySpacing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the interHierarchySpacing.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInterHierarchySpacing(double)"><!-- --></A><H3>
    +setInterHierarchySpacing</H3>
    +<PRE>
    +public void <B>setInterHierarchySpacing</B>(double&nbsp;interHierarchySpacing)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>interHierarchySpacing</CODE> - The interHierarchySpacing to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParallelEdgeSpacing()"><!-- --></A><H3>
    +getParallelEdgeSpacing</H3>
    +<PRE>
    +public double <B>getParallelEdgeSpacing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setParallelEdgeSpacing(double)"><!-- --></A><H3>
    +setParallelEdgeSpacing</H3>
    +<PRE>
    +public void <B>setParallelEdgeSpacing</B>(double&nbsp;parallelEdgeSpacing)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isFineTuning()"><!-- --></A><H3>
    +isFineTuning</H3>
    +<PRE>
    +public boolean <B>isFineTuning</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the fineTuning.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFineTuning(boolean)"><!-- --></A><H3>
    +setFineTuning</H3>
    +<PRE>
    +public void <B>setFineTuning</B>(boolean&nbsp;fineTuning)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>fineTuning</CODE> - The fineTuning to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDisableEdgeStyle()"><!-- --></A><H3>
    +isDisableEdgeStyle</H3>
    +<PRE>
    +public boolean <B>isDisableEdgeStyle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDisableEdgeStyle(boolean)"><!-- --></A><H3>
    +setDisableEdgeStyle</H3>
    +<PRE>
    +public void <B>setDisableEdgeStyle</B>(boolean&nbsp;disableEdgeStyle)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>disableEdgeStyle</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDeterministic()"><!-- --></A><H3>
    +isDeterministic</H3>
    +<PRE>
    +public boolean <B>isDeterministic</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the deterministic.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDeterministic(boolean)"><!-- --></A><H3>
    +setDeterministic</H3>
    +<PRE>
    +public void <B>setDeterministic</B>(boolean&nbsp;deterministic)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>deterministic</CODE> - The deterministic to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isFixRoots()"><!-- --></A><H3>
    +isFixRoots</H3>
    +<PRE>
    +public boolean <B>isFixRoots</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the fixRoots.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFixRoots(boolean)"><!-- --></A><H3>
    +setFixRoots</H3>
    +<PRE>
    +public void <B>setFixRoots</B>(boolean&nbsp;fixRoots)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>fixRoots</CODE> - The fixRoots to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLayoutFromSinks()"><!-- --></A><H3>
    +isLayoutFromSinks</H3>
    +<PRE>
    +public boolean <B>isLayoutFromSinks</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLayoutFromSinks(boolean)"><!-- --></A><H3>
    +setLayoutFromSinks</H3>
    +<PRE>
    +public void <B>setLayoutFromSinks</B>(boolean&nbsp;layoutFromSinks)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLoggerLevel(java.util.logging.Level)"><!-- --></A><H3>
    +setLoggerLevel</H3>
    +<PRE>
    +public void <B>setLoggerLevel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/logging/Level.html?is-external=true" title="class or interface in java.util.logging">Level</A>&nbsp;level)</PRE>
    +<DL>
    +<DD>Sets the logging level of this class
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>level</CODE> - the logging level to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toString()"><!-- --></A><H3>
    +toString</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
    +<DL>
    +<DD>Returns <code>Hierarchical</code>, the name of this algorithm.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHierarchicalLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHierarchicalLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/package-frame.html b/java/docs/com/mxgraph/layout/hierarchical/package-frame.html
    new file mode 100644
    index 000000000..ba1a41e82
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/package-frame.html
    @@ -0,0 +1,32 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.hierarchical (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html" target="classFrame">com.mxgraph.layout.hierarchical</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical" target="classFrame">mxHierarchicalLayout</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/package-summary.html b/java/docs/com/mxgraph/layout/hierarchical/package-summary.html
    new file mode 100644
    index 000000000..d601933ec
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/package-summary.html
    @@ -0,0 +1,158 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.hierarchical (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.hierarchical (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/model/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/hierarchical/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.layout.hierarchical
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></B></TD>
    +<TD>The top level compound layout of the hierarchical layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/model/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/hierarchical/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/package-tree.html b/java/docs/com/mxgraph/layout/hierarchical/package-tree.html
    new file mode 100644
    index 000000000..4bc290260
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/package-tree.html
    @@ -0,0 +1,157 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.hierarchical Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.hierarchical Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/model/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/hierarchical/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.layout.hierarchical
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><B>mxGraphLayout</B></A> (implements com.mxgraph.layout.<A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.<A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical"><B>mxHierarchicalLayout</B></A></UL>
    +</UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/model/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/hierarchical/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/package-use.html b/java/docs/com/mxgraph/layout/hierarchical/package-use.html
    new file mode 100644
    index 000000000..f73f1d2a5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/package-use.html
    @@ -0,0 +1,190 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.layout.hierarchical (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.layout.hierarchical (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/hierarchical/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.layout.hierarchical</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.model"><B>com.mxgraph.layout.hierarchical.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A> used by <A HREF="../../../../com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/layout/hierarchical/class-use/mxHierarchicalLayout.html#com.mxgraph.layout.hierarchical.model"><B>mxHierarchicalLayout</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The top level compound layout of the hierarchical layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A> used by <A HREF="../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/layout/hierarchical/class-use/mxHierarchicalLayout.html#com.mxgraph.layout.hierarchical.stage"><B>mxHierarchicalLayout</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The top level compound layout of the hierarchical layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/hierarchical/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxCoordinateAssignment.AreaSpatialCache.html b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxCoordinateAssignment.AreaSpatialCache.html
    new file mode 100644
    index 000000000..a0e156465
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxCoordinateAssignment.AreaSpatialCache.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.AreaSpatialCache (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.AreaSpatialCache (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxCoordinateAssignment.AreaSpatialCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.AreaSpatialCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.AreaSpatialCache</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.AreaSpatialCache
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxCoordinateAssignment.AreaSpatialCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.AreaSpatialCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxCoordinateAssignment.WeightedCellSorter.html b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxCoordinateAssignment.WeightedCellSorter.html
    new file mode 100644
    index 000000000..ff2c5dd49
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxCoordinateAssignment.WeightedCellSorter.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.WeightedCellSorter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.WeightedCellSorter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxCoordinateAssignment.WeightedCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.WeightedCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.WeightedCellSorter</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.WeightedCellSorter
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxCoordinateAssignment.WeightedCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.WeightedCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxCoordinateAssignment.html b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxCoordinateAssignment.html
    new file mode 100644
    index 000000000..1e2a0bf13
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxCoordinateAssignment.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxCoordinateAssignment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxCoordinateAssignment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxHierarchicalLayoutStage.html b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxHierarchicalLayoutStage.html
    new file mode 100644
    index 000000000..bcc290a32
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxHierarchicalLayoutStage.html
    @@ -0,0 +1,197 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.layout.hierarchical.stage.mxHierarchicalLayoutStage (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.layout.hierarchical.stage.mxHierarchicalLayoutStage (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxHierarchicalLayoutStage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHierarchicalLayoutStage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.layout.hierarchical.stage.mxHierarchicalLayoutStage</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A> in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> that implement <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the horizontal locations of node and edge dummy nodes on each layer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a vertex ordering within ranks as described by Gansner et al 1993</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMinimumCycleRemover</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of the first stage of the Sugiyama layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxHierarchicalLayoutStage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHierarchicalLayoutStage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxMedianHybridCrossingReduction.MedianCellSorter.html b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxMedianHybridCrossingReduction.MedianCellSorter.html
    new file mode 100644
    index 000000000..7f26e284d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxMedianHybridCrossingReduction.MedianCellSorter.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction.MedianCellSorter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction.MedianCellSorter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxMedianHybridCrossingReduction.MedianCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMedianHybridCrossingReduction.MedianCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction.MedianCellSorter</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction.MedianCellSorter
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxMedianHybridCrossingReduction.MedianCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMedianHybridCrossingReduction.MedianCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxMedianHybridCrossingReduction.html b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxMedianHybridCrossingReduction.html
    new file mode 100644
    index 000000000..0eac1b676
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxMedianHybridCrossingReduction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxMedianHybridCrossingReduction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMedianHybridCrossingReduction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxMedianHybridCrossingReduction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMedianHybridCrossingReduction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxMinimumCycleRemover.html b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxMinimumCycleRemover.html
    new file mode 100644
    index 000000000..fa6a6ce9c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/class-use/mxMinimumCycleRemover.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.hierarchical.stage.mxMinimumCycleRemover (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.hierarchical.stage.mxMinimumCycleRemover (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxMinimumCycleRemover.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMinimumCycleRemover.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.hierarchical.stage.mxMinimumCycleRemover</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.hierarchical.stage.mxMinimumCycleRemover
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/hierarchical/stage//class-usemxMinimumCycleRemover.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMinimumCycleRemover.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html b/java/docs/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html
    new file mode 100644
    index 000000000..fc3039a74
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html
    @@ -0,0 +1,343 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxCoordinateAssignment.AreaSpatialCache (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCoordinateAssignment.AreaSpatialCache (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCoordinateAssignment.AreaSpatialCache.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.AreaSpatialCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_java.awt.geom.Rectangle2D">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.awt.geom.Rectangle2D.Double">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.stage</FONT>
    +<BR>
    +Class mxCoordinateAssignment.AreaSpatialCache</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true" title="class or interface in java.awt.geom">java.awt.geom.RectangularShape</A>
    +      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">java.awt.geom.Rectangle2D</A>
    +          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true" title="class or interface in java.awt.geom">java.awt.geom.Rectangle2D.Double</A>
    +              <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.AreaSpatialCache</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected class <B>mxCoordinateAssignment.AreaSpatialCache</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D.Double</A></DL>
    +</PRE>
    +
    +<P>
    +Utility class that stores a collection of vertices and edge points within
    + a certain area. This area includes the buffer lengths of cells.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.AreaSpatialCache">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_java.awt.geom.Rectangle2D"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D.Double</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Float.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D.Float</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html#cells">cells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.geom.Rectangle2D.Double"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D.Double</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#height" title="class or interface in java.awt.geom">height</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#width" title="class or interface in java.awt.geom">width</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#x" title="class or interface in java.awt.geom">x</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#y" title="class or interface in java.awt.geom">y</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.geom.Rectangle2D"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#OUT_BOTTOM" title="class or interface in java.awt.geom">OUT_BOTTOM</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#OUT_LEFT" title="class or interface in java.awt.geom">OUT_LEFT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#OUT_RIGHT" title="class or interface in java.awt.geom">OUT_RIGHT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#OUT_TOP" title="class or interface in java.awt.geom">OUT_TOP</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected </CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html#mxCoordinateAssignment.AreaSpatialCache()">mxCoordinateAssignment.AreaSpatialCache</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.geom.Rectangle2D.Double"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D.Double</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#createIntersection(java.awt.geom.Rectangle2D)" title="class or interface in java.awt.geom">createIntersection</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#createUnion(java.awt.geom.Rectangle2D)" title="class or interface in java.awt.geom">createUnion</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#getBounds2D()" title="class or interface in java.awt.geom">getBounds2D</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#getHeight()" title="class or interface in java.awt.geom">getHeight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#getWidth()" title="class or interface in java.awt.geom">getWidth</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#getX()" title="class or interface in java.awt.geom">getX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#getY()" title="class or interface in java.awt.geom">getY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#isEmpty()" title="class or interface in java.awt.geom">isEmpty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#outcode(double, double)" title="class or interface in java.awt.geom">outcode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#setRect(double, double, double, double)" title="class or interface in java.awt.geom">setRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#setRect(java.awt.geom.Rectangle2D)" title="class or interface in java.awt.geom">setRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true#toString()" title="class or interface in java.awt.geom">toString</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.geom.Rectangle2D"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#add(double, double)" title="class or interface in java.awt.geom">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#add(java.awt.geom.Point2D)" title="class or interface in java.awt.geom">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#add(java.awt.geom.Rectangle2D)" title="class or interface in java.awt.geom">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#contains(double, double)" title="class or interface in java.awt.geom">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#contains(double, double, double, double)" title="class or interface in java.awt.geom">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.awt.geom">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#getPathIterator(java.awt.geom.AffineTransform)" title="class or interface in java.awt.geom">getPathIterator</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#getPathIterator(java.awt.geom.AffineTransform, double)" title="class or interface in java.awt.geom">getPathIterator</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#hashCode()" title="class or interface in java.awt.geom">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#intersect(java.awt.geom.Rectangle2D, java.awt.geom.Rectangle2D, java.awt.geom.Rectangle2D)" title="class or interface in java.awt.geom">intersect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#intersects(double, double, double, double)" title="class or interface in java.awt.geom">intersects</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#intersectsLine(double, double, double, double)" title="class or interface in java.awt.geom">intersectsLine</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#intersectsLine(java.awt.geom.Line2D)" title="class or interface in java.awt.geom">intersectsLine</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#outcode(java.awt.geom.Point2D)" title="class or interface in java.awt.geom">outcode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#setFrame(double, double, double, double)" title="class or interface in java.awt.geom">setFrame</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true#union(java.awt.geom.Rectangle2D, java.awt.geom.Rectangle2D, java.awt.geom.Rectangle2D)" title="class or interface in java.awt.geom">union</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.geom.RectangularShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true" title="class or interface in java.awt.geom">RectangularShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#clone()" title="class or interface in java.awt.geom">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#contains(java.awt.geom.Point2D)" title="class or interface in java.awt.geom">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#contains(java.awt.geom.Rectangle2D)" title="class or interface in java.awt.geom">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#getBounds()" title="class or interface in java.awt.geom">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#getCenterX()" title="class or interface in java.awt.geom">getCenterX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#getCenterY()" title="class or interface in java.awt.geom">getCenterY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#getFrame()" title="class or interface in java.awt.geom">getFrame</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#getMaxX()" title="class or interface in java.awt.geom">getMaxX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#getMaxY()" title="class or interface in java.awt.geom">getMaxY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#getMinX()" title="class or interface in java.awt.geom">getMinX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#getMinY()" title="class or interface in java.awt.geom">getMinY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#intersects(java.awt.geom.Rectangle2D)" title="class or interface in java.awt.geom">intersects</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#setFrame(java.awt.geom.Point2D, java.awt.geom.Dimension2D)" title="class or interface in java.awt.geom">setFrame</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#setFrame(java.awt.geom.Rectangle2D)" title="class or interface in java.awt.geom">setFrame</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#setFrameFromCenter(double, double, double, double)" title="class or interface in java.awt.geom">setFrameFromCenter</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#setFrameFromCenter(java.awt.geom.Point2D, java.awt.geom.Point2D)" title="class or interface in java.awt.geom">setFrameFromCenter</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#setFrameFromDiagonal(double, double, double, double)" title="class or interface in java.awt.geom">setFrameFromDiagonal</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true#setFrameFromDiagonal(java.awt.geom.Point2D, java.awt.geom.Point2D)" title="class or interface in java.awt.geom">setFrameFromDiagonal</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cells"><!-- --></A><H3>
    +cells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>cells</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCoordinateAssignment.AreaSpatialCache()"><!-- --></A><H3>
    +mxCoordinateAssignment.AreaSpatialCache</H3>
    +<PRE>
    +protected <B>mxCoordinateAssignment.AreaSpatialCache</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCoordinateAssignment.AreaSpatialCache.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.AreaSpatialCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_java.awt.geom.Rectangle2D">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.awt.geom.Rectangle2D.Double">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html b/java/docs/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html
    new file mode 100644
    index 000000000..c9e15313a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html
    @@ -0,0 +1,406 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxCoordinateAssignment.WeightedCellSorter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCoordinateAssignment.WeightedCellSorter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCoordinateAssignment.WeightedCellSorter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.WeightedCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.stage</FONT>
    +<BR>
    +Class mxCoordinateAssignment.WeightedCellSorter</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.WeightedCellSorter</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected class <B>mxCoordinateAssignment.WeightedCellSorter</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</DL>
    +</PRE>
    +
    +<P>
    +A utility class used to track cells whilst sorting occurs on the weighted
    + sum of their connected edges. Does not violate (x.compareTo(y)==0) ==
    + (x.equals(y))
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The cell whose median value is being calculated</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#nudge">nudge</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to flip equal weight values.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#rankIndex">rankIndex</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The index this cell is in the model rank</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#visited">visited</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not this cell has been visited in the current assignment</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#weightedValue">weightedValue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The weighted value of the cell stored</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#mxCoordinateAssignment.WeightedCellSorter()">mxCoordinateAssignment.WeightedCellSorter</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#mxCoordinateAssignment.WeightedCellSorter(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell, int)">mxCoordinateAssignment.WeightedCellSorter</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell,
    +                                          int&nbsp;weightedValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#compareTo(java.lang.Object)">compareTo</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comparator on the medianValue</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="weightedValue"><!-- --></A><H3>
    +weightedValue</H3>
    +<PRE>
    +public int <B>weightedValue</B></PRE>
    +<DL>
    +<DD>The weighted value of the cell stored
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="nudge"><!-- --></A><H3>
    +nudge</H3>
    +<PRE>
    +public boolean <B>nudge</B></PRE>
    +<DL>
    +<DD>Whether or not to flip equal weight values.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="visited"><!-- --></A><H3>
    +visited</H3>
    +<PRE>
    +public boolean <B>visited</B></PRE>
    +<DL>
    +<DD>Whether or not this cell has been visited in the current assignment
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rankIndex"><!-- --></A><H3>
    +rankIndex</H3>
    +<PRE>
    +public int <B>rankIndex</B></PRE>
    +<DL>
    +<DD>The index this cell is in the model rank
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +public <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A> <B>cell</B></PRE>
    +<DL>
    +<DD>The cell whose median value is being calculated
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCoordinateAssignment.WeightedCellSorter()"><!-- --></A><H3>
    +mxCoordinateAssignment.WeightedCellSorter</H3>
    +<PRE>
    +public <B>mxCoordinateAssignment.WeightedCellSorter</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCoordinateAssignment.WeightedCellSorter(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell, int)"><!-- --></A><H3>
    +mxCoordinateAssignment.WeightedCellSorter</H3>
    +<PRE>
    +public <B>mxCoordinateAssignment.WeightedCellSorter</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell,
    +                                                 int&nbsp;weightedValue)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
    +compareTo</H3>
    +<PRE>
    +public int <B>compareTo</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD>comparator on the medianValue
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true#compareTo(T)" title="class or interface in java.lang">compareTo</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>arg0</CODE> - the object to be compared to
    +<DT><B>Returns:</B><DD>the standard return you would expect when comparing two
    +         double</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCoordinateAssignment.WeightedCellSorter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.WeightedCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html b/java/docs/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html
    new file mode 100644
    index 000000000..277a4ce88
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html
    @@ -0,0 +1,1380 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxCoordinateAssignment (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCoordinateAssignment (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCoordinateAssignment.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.stage</FONT>
    +<BR>
    +Class mxCoordinateAssignment</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCoordinateAssignment</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></DL>
    +</PRE>
    +
    +<P>
    +Sets the horizontal locations of node and edge dummy nodes on each layer.
    + Uses median down and up weighings as well as heuristics to straighten edges as
    + far as possible.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.AreaSpatialCache</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility class that stores a collection of vertices and edge points within
    + a certain area.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.WeightedCellSorter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A utility class used to track cells whilst sorting occurs on the weighted
    + sum of their connected edges.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#channelBuffer">channelBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The size of the vertical buffer in the center of inter-rank channels
    + where edge control points should not be placed</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#currentXDelta">currentXDelta</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The sum of x-displacements for the current iteration</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#disableEdgeStyle">disableEdgeStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.HierarchicalEdgeStyle</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#edgeStyle">edgeStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The style to apply between cell layers to edge segments</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#fineTuning">fineTuning</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to perform local optimisations and iterate multiple times
    + through the algorithm</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#initialX">initialX</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The minimum x position node placement starts at</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#interRankCellSpacing">interRankCellSpacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The minimum distance between cells on adjacent ranks</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#intraCellSpacing">intraCellSpacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The minimum buffer between cells on the same rank</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>,double[]&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#jettyPositions">jettyPositions</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map of internal edges and (x,y) pair of positions of the start and end jetty
    + for that edge where it connects to the source and target vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#layout">layout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing layout algorithm</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#limitX">limitX</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The maximum x value this positioning lays up to</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#maxIterations">maxIterations</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The number of heuristic iterations to run</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#minEdgeJetty">minEdgeJetty</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The minimum distance for an edge jetty from a vertex</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>[][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#nextLayerConnectedCache">nextLayerConnectedCache</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A store of connections to the layer above for speed</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#orientation">orientation</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The position of the root ( start ) node(s) relative to the rest of the
    + laid out graph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#parallelEdgeSpacing">parallelEdgeSpacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The distance between each parallel edge on each ranks for long edges</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#prefHozEdgeSep">prefHozEdgeSep</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The preferred horizontal distance between edges exiting a vertex</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#prefVertEdgeOff">prefVertEdgeOff</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The preferred vertical offset between edges exiting a vertex</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>[][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#previousLayerConnectedCache">previousLayerConnectedCache</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A store of connections to the layer below for speed</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankBottomY">rankBottomY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal cache of bottom-most value of Y for each rank</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankTopY">rankTopY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal cache of top-most values of Y for each rank</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankWidths">rankWidths</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The width of all the ranks</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankY">rankY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The Y-coordinate of all the ranks</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#vertexConnectionBuffer">vertexConnectionBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The buffer on either side of a vertex where edges must not connect.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#widestRank">widestRank</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The rank that has the widest x position</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#widestRankValue">widestRankValue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The X-coordinate of the edge of the widest rank</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#mxCoordinateAssignment(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, double, double, int, double, double)">mxCoordinateAssignment</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                       double&nbsp;intraCellSpacing,
    +                       double&nbsp;interRankCellSpacing,
    +                       int&nbsp;orientation,
    +                       double&nbsp;initialX,
    +                       double&nbsp;parallelEdgeSpacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a coordinate assignment.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#calculateWidestRank(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">calculateWidestRank</A></B>(<A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the width rank in the hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A basic horizontal coordinate assignment algorithm</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#getInterRankCellSpacing()">getInterRankCellSpacing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#getIntraCellSpacing()">getIntraCellSpacing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#getLimitX()">getLimitX</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#getOrientation()">getOrientation</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#isFineTuning()">isFineTuning</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#localEdgeProcessing(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">localEdgeProcessing</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Separates the x position of edges as they connect to vertices</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#minPath(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">minPath</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Straightens out chains of virtual nodes where possible</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#processReversedEdge(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, java.lang.Object)">processReversedEdge</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;edge,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;realEdge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to add additional processing</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankCoordinates(int, com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">rankCoordinates</A></B>(int&nbsp;rankValue,
    +                <A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets up the layout in an initial positioning.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankMedianPosition(int, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel, int)">rankMedianPosition</A></B>(int&nbsp;rankValue,
    +                   <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model,
    +                   int&nbsp;nextRankValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs median minimisation over one rank.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#repositionValid(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel, com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell, int, double)">repositionValid</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model,
    +                <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell,
    +                int&nbsp;rank,
    +                double&nbsp;position)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines whether or not a node may be moved to the specified x 
    + position on the specified rank</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setCellLocations(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">setCellLocations</A></B>(<A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                 <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the cell locations in the facade to those stored after this layout
    + processing step has completed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setEdgePosition(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell)">setEdgePosition</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fixes the control points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setFineTuning(boolean)">setFineTuning</A></B>(boolean&nbsp;fineTuning)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setInterRankCellSpacing(double)">setInterRankCellSpacing</A></B>(double&nbsp;interRankCellSpacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setIntraCellSpacing(double)">setIntraCellSpacing</A></B>(double&nbsp;intraCellSpacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setLimitX(double)">setLimitX</A></B>(double&nbsp;limitX)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setLoggerLevel(java.util.logging.Level)">setLoggerLevel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/logging/Level.html?is-external=true" title="class or interface in java.util.logging">Level</A>&nbsp;level)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the logging level of this class</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setOrientation(int)">setOrientation</A></B>(int&nbsp;orientation)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setVertexLocation(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell)">setVertexLocation</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fixes the position of the specified vertex</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="layout"><!-- --></A><H3>
    +layout</H3>
    +<PRE>
    +protected <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A> <B>layout</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing layout algorithm
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="intraCellSpacing"><!-- --></A><H3>
    +intraCellSpacing</H3>
    +<PRE>
    +protected double <B>intraCellSpacing</B></PRE>
    +<DL>
    +<DD>The minimum buffer between cells on the same rank
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="interRankCellSpacing"><!-- --></A><H3>
    +interRankCellSpacing</H3>
    +<PRE>
    +protected double <B>interRankCellSpacing</B></PRE>
    +<DL>
    +<DD>The minimum distance between cells on adjacent ranks
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="parallelEdgeSpacing"><!-- --></A><H3>
    +parallelEdgeSpacing</H3>
    +<PRE>
    +protected double <B>parallelEdgeSpacing</B></PRE>
    +<DL>
    +<DD>The distance between each parallel edge on each ranks for long edges
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="vertexConnectionBuffer"><!-- --></A><H3>
    +vertexConnectionBuffer</H3>
    +<PRE>
    +protected double <B>vertexConnectionBuffer</B></PRE>
    +<DL>
    +<DD>The buffer on either side of a vertex where edges must not connect.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxIterations"><!-- --></A><H3>
    +maxIterations</H3>
    +<PRE>
    +protected int <B>maxIterations</B></PRE>
    +<DL>
    +<DD>The number of heuristic iterations to run
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="prefHozEdgeSep"><!-- --></A><H3>
    +prefHozEdgeSep</H3>
    +<PRE>
    +protected int <B>prefHozEdgeSep</B></PRE>
    +<DL>
    +<DD>The preferred horizontal distance between edges exiting a vertex
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="prefVertEdgeOff"><!-- --></A><H3>
    +prefVertEdgeOff</H3>
    +<PRE>
    +protected int <B>prefVertEdgeOff</B></PRE>
    +<DL>
    +<DD>The preferred vertical offset between edges exiting a vertex
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minEdgeJetty"><!-- --></A><H3>
    +minEdgeJetty</H3>
    +<PRE>
    +protected int <B>minEdgeJetty</B></PRE>
    +<DL>
    +<DD>The minimum distance for an edge jetty from a vertex
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="channelBuffer"><!-- --></A><H3>
    +channelBuffer</H3>
    +<PRE>
    +protected int <B>channelBuffer</B></PRE>
    +<DL>
    +<DD>The size of the vertical buffer in the center of inter-rank channels
    + where edge control points should not be placed
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="jettyPositions"><!-- --></A><H3>
    +jettyPositions</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>,double[]&gt; <B>jettyPositions</B></PRE>
    +<DL>
    +<DD>Map of internal edges and (x,y) pair of positions of the start and end jetty
    + for that edge where it connects to the source and target vertices.
    + Note this should technically be a WeakHashMap, but since JS does not
    + have an equivalent, housekeeping must be performed before using.
    + i.e. check all edges are still in the model and clear the values.
    + Note that the y co-ord is the offset of the jetty, not the
    + absolute point
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="orientation"><!-- --></A><H3>
    +orientation</H3>
    +<PRE>
    +protected int <B>orientation</B></PRE>
    +<DL>
    +<DD>The position of the root ( start ) node(s) relative to the rest of the
    + laid out graph
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="initialX"><!-- --></A><H3>
    +initialX</H3>
    +<PRE>
    +protected double <B>initialX</B></PRE>
    +<DL>
    +<DD>The minimum x position node placement starts at
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="limitX"><!-- --></A><H3>
    +limitX</H3>
    +<PRE>
    +protected double <B>limitX</B></PRE>
    +<DL>
    +<DD>The maximum x value this positioning lays up to
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentXDelta"><!-- --></A><H3>
    +currentXDelta</H3>
    +<PRE>
    +protected double <B>currentXDelta</B></PRE>
    +<DL>
    +<DD>The sum of x-displacements for the current iteration
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="widestRank"><!-- --></A><H3>
    +widestRank</H3>
    +<PRE>
    +protected int <B>widestRank</B></PRE>
    +<DL>
    +<DD>The rank that has the widest x position
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rankTopY"><!-- --></A><H3>
    +rankTopY</H3>
    +<PRE>
    +protected double[] <B>rankTopY</B></PRE>
    +<DL>
    +<DD>Internal cache of top-most values of Y for each rank
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rankBottomY"><!-- --></A><H3>
    +rankBottomY</H3>
    +<PRE>
    +protected double[] <B>rankBottomY</B></PRE>
    +<DL>
    +<DD>Internal cache of bottom-most value of Y for each rank
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="widestRankValue"><!-- --></A><H3>
    +widestRankValue</H3>
    +<PRE>
    +protected double <B>widestRankValue</B></PRE>
    +<DL>
    +<DD>The X-coordinate of the edge of the widest rank
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rankWidths"><!-- --></A><H3>
    +rankWidths</H3>
    +<PRE>
    +protected double[] <B>rankWidths</B></PRE>
    +<DL>
    +<DD>The width of all the ranks
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rankY"><!-- --></A><H3>
    +rankY</H3>
    +<PRE>
    +protected double[] <B>rankY</B></PRE>
    +<DL>
    +<DD>The Y-coordinate of all the ranks
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fineTuning"><!-- --></A><H3>
    +fineTuning</H3>
    +<PRE>
    +protected boolean <B>fineTuning</B></PRE>
    +<DL>
    +<DD>Whether or not to perform local optimisations and iterate multiple times
    + through the algorithm
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="disableEdgeStyle"><!-- --></A><H3>
    +disableEdgeStyle</H3>
    +<PRE>
    +protected boolean <B>disableEdgeStyle</B></PRE>
    +<DL>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="edgeStyle"><!-- --></A><H3>
    +edgeStyle</H3>
    +<PRE>
    +protected com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.HierarchicalEdgeStyle <B>edgeStyle</B></PRE>
    +<DL>
    +<DD>The style to apply between cell layers to edge segments
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="nextLayerConnectedCache"><!-- --></A><H3>
    +nextLayerConnectedCache</H3>
    +<PRE>
    +protected <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>[][] <B>nextLayerConnectedCache</B></PRE>
    +<DL>
    +<DD>A store of connections to the layer above for speed
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previousLayerConnectedCache"><!-- --></A><H3>
    +previousLayerConnectedCache</H3>
    +<PRE>
    +protected <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>[][] <B>previousLayerConnectedCache</B></PRE>
    +<DL>
    +<DD>A store of connections to the layer below for speed
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCoordinateAssignment(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, double, double, int, double, double)"><!-- --></A><H3>
    +mxCoordinateAssignment</H3>
    +<PRE>
    +public <B>mxCoordinateAssignment</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout,
    +                              double&nbsp;intraCellSpacing,
    +                              double&nbsp;interRankCellSpacing,
    +                              int&nbsp;orientation,
    +                              double&nbsp;initialX,
    +                              double&nbsp;parallelEdgeSpacing)</PRE>
    +<DL>
    +<DD>Creates a coordinate assignment.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>intraCellSpacing</CODE> - the minimum buffer between cells on the same rank<DD><CODE>interRankCellSpacing</CODE> - the minimum distance between cells on adjacent ranks<DD><CODE>orientation</CODE> - the position of the root node(s) relative to the graph<DD><CODE>initialX</CODE> - the leftmost coordinate node placement starts at</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>A basic horizontal coordinate assignment algorithm
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="rankMedianPosition(int, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel, int)"><!-- --></A><H3>
    +rankMedianPosition</H3>
    +<PRE>
    +protected void <B>rankMedianPosition</B>(int&nbsp;rankValue,
    +                                  <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model,
    +                                  int&nbsp;nextRankValue)</PRE>
    +<DL>
    +<DD>Performs median minimisation over one rank.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rankValue</CODE> - the layer number of this rank<DD><CODE>model</CODE> - an internal model of the hierarchical layout<DD><CODE>nextRankValue</CODE> - the layer number whose connected cels are to be laid out
    +            relative to</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="rankCoordinates(int, com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><!-- --></A><H3>
    +rankCoordinates</H3>
    +<PRE>
    +protected void <B>rankCoordinates</B>(int&nbsp;rankValue,
    +                               <A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                               <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Sets up the layout in an initial positioning. All the first cells in each
    + rank are moved to the left and the rest of the rank inserted as close
    + together as their size and buffering permits. This method works on just
    + the specified rank.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rankValue</CODE> - the current rank being processed<DD><CODE>graph</CODE> - the facade describing the input graph<DD><CODE>model</CODE> - an internal model of the hierarchical layout</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="calculateWidestRank(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><!-- --></A><H3>
    +calculateWidestRank</H3>
    +<PRE>
    +protected void <B>calculateWidestRank</B>(<A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                   <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Calculates the width rank in the hierarchy. Also set the y value of each
    + rank whilst performing the calculation
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - the facade describing the input graph<DD><CODE>model</CODE> - an internal model of the hierarchical layout</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="minPath(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><!-- --></A><H3>
    +minPath</H3>
    +<PRE>
    +protected void <B>minPath</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Straightens out chains of virtual nodes where possible
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - an internal model of the hierarchical layout</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="repositionValid(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel, com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell, int, double)"><!-- --></A><H3>
    +repositionValid</H3>
    +<PRE>
    +protected boolean <B>repositionValid</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model,
    +                                  <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell,
    +                                  int&nbsp;rank,
    +                                  double&nbsp;position)</PRE>
    +<DL>
    +<DD>Determines whether or not a node may be moved to the specified x 
    + position on the specified rank
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - the layout model<DD><CODE>cell</CODE> - the cell being analysed<DD><CODE>rank</CODE> - the layer of the cell<DD><CODE>position</CODE> - the x position being sought
    +<DT><B>Returns:</B><DD>whether or not the virtual node can be moved to this position</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellLocations(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><!-- --></A><H3>
    +setCellLocations</H3>
    +<PRE>
    +protected void <B>setCellLocations</B>(<A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Sets the cell locations in the facade to those stored after this layout
    + processing step has completed.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - the facade describing the input graph<DD><CODE>model</CODE> - an internal model of the hierarchical layout</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="localEdgeProcessing(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><!-- --></A><H3>
    +localEdgeProcessing</H3>
    +<PRE>
    +protected void <B>localEdgeProcessing</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Separates the x position of edges as they connect to vertices
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - an internal model of the hierarchical layout</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgePosition(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell)"><!-- --></A><H3>
    +setEdgePosition</H3>
    +<PRE>
    +protected void <B>setEdgePosition</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Fixes the control points
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVertexLocation(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell)"><!-- --></A><H3>
    +setVertexLocation</H3>
    +<PRE>
    +protected void <B>setVertexLocation</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Fixes the position of the specified vertex
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - the vertex to position</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="processReversedEdge(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, java.lang.Object)"><!-- --></A><H3>
    +processReversedEdge</H3>
    +<PRE>
    +protected void <B>processReversedEdge</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>&nbsp;edge,
    +                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;realEdge)</PRE>
    +<DL>
    +<DD>Hook to add additional processing
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - The hierarchical model edge<DD><CODE>realEdge</CODE> - The real edge in the graph</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInterRankCellSpacing()"><!-- --></A><H3>
    +getInterRankCellSpacing</H3>
    +<PRE>
    +public double <B>getInterRankCellSpacing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the interRankCellSpacing.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInterRankCellSpacing(double)"><!-- --></A><H3>
    +setInterRankCellSpacing</H3>
    +<PRE>
    +public void <B>setInterRankCellSpacing</B>(double&nbsp;interRankCellSpacing)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>interRankCellSpacing</CODE> - The interRankCellSpacing to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIntraCellSpacing()"><!-- --></A><H3>
    +getIntraCellSpacing</H3>
    +<PRE>
    +public double <B>getIntraCellSpacing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the intraCellSpacing.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setIntraCellSpacing(double)"><!-- --></A><H3>
    +setIntraCellSpacing</H3>
    +<PRE>
    +public void <B>setIntraCellSpacing</B>(double&nbsp;intraCellSpacing)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>intraCellSpacing</CODE> - The intraCellSpacing to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOrientation()"><!-- --></A><H3>
    +getOrientation</H3>
    +<PRE>
    +public int <B>getOrientation</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the orientation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOrientation(int)"><!-- --></A><H3>
    +setOrientation</H3>
    +<PRE>
    +public void <B>setOrientation</B>(int&nbsp;orientation)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>orientation</CODE> - The orientation to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLimitX()"><!-- --></A><H3>
    +getLimitX</H3>
    +<PRE>
    +public double <B>getLimitX</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the limitX.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLimitX(double)"><!-- --></A><H3>
    +setLimitX</H3>
    +<PRE>
    +public void <B>setLimitX</B>(double&nbsp;limitX)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>limitX</CODE> - The limitX to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isFineTuning()"><!-- --></A><H3>
    +isFineTuning</H3>
    +<PRE>
    +public boolean <B>isFineTuning</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the fineTuning.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFineTuning(boolean)"><!-- --></A><H3>
    +setFineTuning</H3>
    +<PRE>
    +public void <B>setFineTuning</B>(boolean&nbsp;fineTuning)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>fineTuning</CODE> - The fineTuning to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLoggerLevel(java.util.logging.Level)"><!-- --></A><H3>
    +setLoggerLevel</H3>
    +<PRE>
    +public void <B>setLoggerLevel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/logging/Level.html?is-external=true" title="class or interface in java.util.logging">Level</A>&nbsp;level)</PRE>
    +<DL>
    +<DD>Sets the logging level of this class
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>level</CODE> - the logging level to set</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCoordinateAssignment.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCoordinateAssignment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html b/java/docs/com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html
    new file mode 100644
    index 000000000..65a71728a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html
    @@ -0,0 +1,222 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxHierarchicalLayoutStage (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxHierarchicalLayoutStage (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHierarchicalLayoutStage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHierarchicalLayoutStage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.stage</FONT>
    +<BR>
    +Interface mxHierarchicalLayoutStage</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>, <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMinimumCycleRemover</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxHierarchicalLayoutStage</B></DL>
    +</PRE>
    +
    +<P>
    +The specific layout interface for hierarchical layouts. It adds a
    + <code>run</code> method with a parameter for the hierarchical layout model
    + that is shared between the layout stages.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes the graph detail and configuration information within the facade
    + and creates the resulting laid out graph within that facade for further
    + use.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Takes the graph detail and configuration information within the facade
    + and creates the resulting laid out graph within that facade for further
    + use.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHierarchicalLayoutStage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHierarchicalLayoutStage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html b/java/docs/com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html
    new file mode 100644
    index 000000000..d9f39482c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html
    @@ -0,0 +1,311 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxMedianHybridCrossingReduction.MedianCellSorter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxMedianHybridCrossingReduction.MedianCellSorter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMedianHybridCrossingReduction.MedianCellSorter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMedianHybridCrossingReduction.MedianCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.stage</FONT>
    +<BR>
    +Class mxMedianHybridCrossingReduction.MedianCellSorter</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction.MedianCellSorter</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected class <B>mxMedianHybridCrossingReduction.MedianCellSorter</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</DL>
    +</PRE>
    +
    +<P>
    +A utility class used to track cells whilst sorting occurs on the median
    + values. Does not violate (x.compareTo(y)==0) == (x.equals(y))
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html#medianValue">medianValue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The median value of the cell stored</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected </CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html#mxMedianHybridCrossingReduction.MedianCellSorter()">mxMedianHybridCrossingReduction.MedianCellSorter</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html#compareTo(java.lang.Object)">compareTo</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comparator on the medianValue</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="medianValue"><!-- --></A><H3>
    +medianValue</H3>
    +<PRE>
    +public double <B>medianValue</B></PRE>
    +<DL>
    +<DD>The median value of the cell stored
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxMedianHybridCrossingReduction.MedianCellSorter()"><!-- --></A><H3>
    +mxMedianHybridCrossingReduction.MedianCellSorter</H3>
    +<PRE>
    +protected <B>mxMedianHybridCrossingReduction.MedianCellSorter</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
    +compareTo</H3>
    +<PRE>
    +public int <B>compareTo</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD>comparator on the medianValue
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true#compareTo(T)" title="class or interface in java.lang">compareTo</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>arg0</CODE> - the object to be compared to
    +<DT><B>Returns:</B><DD>the standard return you would expect when comparing two
    +         double</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMedianHybridCrossingReduction.MedianCellSorter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMedianHybridCrossingReduction.MedianCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html b/java/docs/com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html
    new file mode 100644
    index 000000000..60cba584e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html
    @@ -0,0 +1,454 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxMedianHybridCrossingReduction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxMedianHybridCrossingReduction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMedianHybridCrossingReduction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMedianHybridCrossingReduction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.stage</FONT>
    +<BR>
    +Class mxMedianHybridCrossingReduction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxMedianHybridCrossingReduction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></DL>
    +</PRE>
    +
    +<P>
    +Performs a vertex ordering within ranks as described by Gansner et al 1993
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction.MedianCellSorter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A utility class used to track cells whilst sorting occurs on the median
    + values.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#currentBestCrossings">currentBestCrossings</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The total number of crossings found in the best configuration so far</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#iterationsWithoutImprovement">iterationsWithoutImprovement</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#layout">layout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing layout algorithm</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#maxIterations">maxIterations</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The maximum number of iterations to perform whilst reducing edge
    + crossings</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#maxNoImprovementIterations">maxNoImprovementIterations</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>[][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#nestedBestRanks">nestedBestRanks</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores each rank as a collection of cells in the best order found for
    + each layer so far</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#mxMedianHybridCrossingReduction(com.mxgraph.layout.hierarchical.mxHierarchicalLayout)">mxMedianHybridCrossingReduction</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor that has the roots specified</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#calculateRankCrossing(int, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">calculateRankCrossing</A></B>(int&nbsp;i,
    +                      <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the number of edges crossings between the specified rank and
    + the rank below it</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a vertex ordering within ranks as described by Gansner et al
    + 1993</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="layout"><!-- --></A><H3>
    +layout</H3>
    +<PRE>
    +protected <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A> <B>layout</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing layout algorithm
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxIterations"><!-- --></A><H3>
    +maxIterations</H3>
    +<PRE>
    +protected int <B>maxIterations</B></PRE>
    +<DL>
    +<DD>The maximum number of iterations to perform whilst reducing edge
    + crossings
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="nestedBestRanks"><!-- --></A><H3>
    +nestedBestRanks</H3>
    +<PRE>
    +protected <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>[][] <B>nestedBestRanks</B></PRE>
    +<DL>
    +<DD>Stores each rank as a collection of cells in the best order found for
    + each layer so far
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentBestCrossings"><!-- --></A><H3>
    +currentBestCrossings</H3>
    +<PRE>
    +protected int <B>currentBestCrossings</B></PRE>
    +<DL>
    +<DD>The total number of crossings found in the best configuration so far
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="iterationsWithoutImprovement"><!-- --></A><H3>
    +iterationsWithoutImprovement</H3>
    +<PRE>
    +protected int <B>iterationsWithoutImprovement</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxNoImprovementIterations"><!-- --></A><H3>
    +maxNoImprovementIterations</H3>
    +<PRE>
    +protected int <B>maxNoImprovementIterations</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxMedianHybridCrossingReduction(com.mxgraph.layout.hierarchical.mxHierarchicalLayout)"><!-- --></A><H3>
    +mxMedianHybridCrossingReduction</H3>
    +<PRE>
    +public <B>mxMedianHybridCrossingReduction</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout)</PRE>
    +<DL>
    +<DD>Constructor that has the roots specified
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Performs a vertex ordering within ranks as described by Gansner et al
    + 1993
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="calculateRankCrossing(int, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><!-- --></A><H3>
    +calculateRankCrossing</H3>
    +<PRE>
    +protected int <B>calculateRankCrossing</B>(int&nbsp;i,
    +                                    <A HREF="../../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Calculates the number of edges crossings between the specified rank and
    + the rank below it
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>i</CODE> - the topmost rank of the pair ( higher rank value )<DD><CODE>model</CODE> - the internal hierarchy model of the graph
    +<DT><B>Returns:</B><DD>the number of edges crossings with the rank beneath</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMedianHybridCrossingReduction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMedianHybridCrossingReduction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html b/java/docs/com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html
    new file mode 100644
    index 000000000..71293cdc1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html
    @@ -0,0 +1,306 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxMinimumCycleRemover (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxMinimumCycleRemover (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMinimumCycleRemover.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMinimumCycleRemover.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.hierarchical.stage</FONT>
    +<BR>
    +Class mxMinimumCycleRemover</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.hierarchical.stage.mxMinimumCycleRemover</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxMinimumCycleRemover</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></DL>
    +</PRE>
    +
    +<P>
    +An implementation of the first stage of the Sugiyama layout. Straightforward
    + longest path calculation of layer assignment
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html#layout">layout</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing layout algorithm</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html#mxMinimumCycleRemover(com.mxgraph.layout.hierarchical.mxHierarchicalLayout)">mxMinimumCycleRemover</A></B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor that has the roots specified</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Produces the layer assignmment using the graph information specified</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="layout"><!-- --></A><H3>
    +layout</H3>
    +<PRE>
    +protected <A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A> <B>layout</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing layout algorithm
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxMinimumCycleRemover(com.mxgraph.layout.hierarchical.mxHierarchicalLayout)"><!-- --></A><H3>
    +mxMinimumCycleRemover</H3>
    +<PRE>
    +public <B>mxMinimumCycleRemover</B>(<A HREF="../../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>&nbsp;layout)</PRE>
    +<DL>
    +<DD>Constructor that has the roots specified
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Produces the layer assignmment using the graph information specified
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMinimumCycleRemover.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMinimumCycleRemover.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/package-frame.html b/java/docs/com/mxgraph/layout/hierarchical/stage/package-frame.html
    new file mode 100644
    index 000000000..f90bc38f5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/package-frame.html
    @@ -0,0 +1,47 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.hierarchical.stage (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html" target="classFrame">com.mxgraph.layout.hierarchical.stage</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage" target="classFrame"><I>mxHierarchicalLayoutStage</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage" target="classFrame">mxCoordinateAssignment</A>
    +<BR>
    +<A HREF="mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage" target="classFrame">mxMedianHybridCrossingReduction</A>
    +<BR>
    +<A HREF="mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage" target="classFrame">mxMinimumCycleRemover</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/package-summary.html b/java/docs/com/mxgraph/layout/hierarchical/stage/package-summary.html
    new file mode 100644
    index 000000000..73790087f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/package-summary.html
    @@ -0,0 +1,180 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.hierarchical.stage (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.hierarchical.stage (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.layout.hierarchical.stage
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A></B></TD>
    +<TD>The specific layout interface for hierarchical layouts.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A></B></TD>
    +<TD>Sets the horizontal locations of node and edge dummy nodes on each layer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A></B></TD>
    +<TD>Performs a vertex ordering within ranks as described by Gansner et al 1993</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMinimumCycleRemover</A></B></TD>
    +<TD>An implementation of the first stage of the Sugiyama layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/package-tree.html b/java/docs/com/mxgraph/layout/hierarchical/stage/package-tree.html
    new file mode 100644
    index 000000000..bf828f0a0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/package-tree.html
    @@ -0,0 +1,172 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.hierarchical.stage Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.hierarchical.stage Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.layout.hierarchical.stage
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxCoordinateAssignment</B></A> (implements com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A>)
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxCoordinateAssignment.WeightedCellSorter</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;T&gt;)
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxMedianHybridCrossingReduction</B></A> (implements com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A>)
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxMedianHybridCrossingReduction.MedianCellSorter</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;T&gt;)
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxMinimumCycleRemover</B></A> (implements com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A>)
    +<LI TYPE="circle">java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true" title="class or interface in java.awt.geom"><B>RectangularShape</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>)
    +<UL>
    +<LI TYPE="circle">java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom"><B>Rectangle2D</B></A><UL>
    +<LI TYPE="circle">java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true" title="class or interface in java.awt.geom"><B>Rectangle2D.Double</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxCoordinateAssignment.AreaSpatialCache</B></A></UL>
    +</UL>
    +</UL>
    +</UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><B>mxHierarchicalLayoutStage</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/hierarchical/model/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/hierarchical/stage/package-use.html b/java/docs/com/mxgraph/layout/hierarchical/stage/package-use.html
    new file mode 100644
    index 000000000..6d9eeea12
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/hierarchical/stage/package-use.html
    @@ -0,0 +1,171 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.layout.hierarchical.stage (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.layout.hierarchical.stage (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.layout.hierarchical.stage</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> used by <A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/hierarchical/stage/class-use/mxHierarchicalLayoutStage.html#com.mxgraph.layout.hierarchical.stage"><B>mxHierarchicalLayoutStage</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The specific layout interface for hierarchical layouts.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/hierarchical/stage/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxCircleLayout.html b/java/docs/com/mxgraph/layout/mxCircleLayout.html
    new file mode 100644
    index 000000000..b5e7b506a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxCircleLayout.html
    @@ -0,0 +1,713 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxCircleLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCircleLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCircleLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCircleLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCircleLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxCircleLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxCircleLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCircleLayout</B><DT>extends <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#disableEdgeStyle">disableEdgeStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#moveCircle">moveCircle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean specifying if the circle should be moved to the top,
    + left corner specified by x0 and y0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#radius">radius</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer specifying the size of the radius.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#resetEdges">resetEdges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if all edge points of traversed edges should be removed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#x0">x0</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer specifying the left coordinate of the circle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#y0">y0</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer specifying the top coordinate of the circle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#mxCircleLayout(com.mxgraph.view.mxGraph)">mxCircleLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#mxCircleLayout(com.mxgraph.view.mxGraph, double)">mxCircleLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +               double&nbsp;radius)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#circle(java.lang.Object[], double, double, double)">circle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +       double&nbsp;r,
    +       double&nbsp;left,
    +       double&nbsp;top)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the circular layout for the specified array
    + of vertices and the given radius.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#getRadius()">getRadius</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#getX0()">getX0</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#getY0()">getY0</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#isDisableEdgeStyle()">isDisableEdgeStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#isMoveCircle()">isMoveCircle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#isResetEdges()">isResetEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#setDisableEdgeStyle(boolean)">setDisableEdgeStyle</A></B>(boolean&nbsp;disableEdgeStyle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#setMoveCircle(boolean)">setMoveCircle</A></B>(boolean&nbsp;moveCircle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#setRadius(double)">setRadius</A></B>(double&nbsp;radius)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#setResetEdges(boolean)">setResetEdges</A></B>(boolean&nbsp;resetEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#setX0(double)">setX0</A></B>(double&nbsp;x0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html#setY0(double)">setY0</A></B>(double&nbsp;y0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="radius"><!-- --></A><H3>
    +radius</H3>
    +<PRE>
    +protected double <B>radius</B></PRE>
    +<DL>
    +<DD>Integer specifying the size of the radius. Default is 100.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="moveCircle"><!-- --></A><H3>
    +moveCircle</H3>
    +<PRE>
    +protected boolean <B>moveCircle</B></PRE>
    +<DL>
    +<DD>Boolean specifying if the circle should be moved to the top,
    + left corner specified by x0 and y0. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="x0"><!-- --></A><H3>
    +x0</H3>
    +<PRE>
    +protected double <B>x0</B></PRE>
    +<DL>
    +<DD>Integer specifying the left coordinate of the circle.
    + Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="y0"><!-- --></A><H3>
    +y0</H3>
    +<PRE>
    +protected double <B>y0</B></PRE>
    +<DL>
    +<DD>Integer specifying the top coordinate of the circle.
    + Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resetEdges"><!-- --></A><H3>
    +resetEdges</H3>
    +<PRE>
    +protected boolean <B>resetEdges</B></PRE>
    +<DL>
    +<DD>Specifies if all edge points of traversed edges should be removed.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="disableEdgeStyle"><!-- --></A><H3>
    +disableEdgeStyle</H3>
    +<PRE>
    +protected boolean <B>disableEdgeStyle</B></PRE>
    +<DL>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCircleLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxCircleLayout</H3>
    +<PRE>
    +public <B>mxCircleLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCircleLayout(com.mxgraph.view.mxGraph, double)"><!-- --></A><H3>
    +mxCircleLayout</H3>
    +<PRE>
    +public <B>mxCircleLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                      double&nbsp;radius)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getRadius()"><!-- --></A><H3>
    +getRadius</H3>
    +<PRE>
    +public double <B>getRadius</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the radius</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRadius(double)"><!-- --></A><H3>
    +setRadius</H3>
    +<PRE>
    +public void <B>setRadius</B>(double&nbsp;radius)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>radius</CODE> - the radius to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isMoveCircle()"><!-- --></A><H3>
    +isMoveCircle</H3>
    +<PRE>
    +public boolean <B>isMoveCircle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the moveCircle</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMoveCircle(boolean)"><!-- --></A><H3>
    +setMoveCircle</H3>
    +<PRE>
    +public void <B>setMoveCircle</B>(boolean&nbsp;moveCircle)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>moveCircle</CODE> - the moveCircle to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getX0()"><!-- --></A><H3>
    +getX0</H3>
    +<PRE>
    +public double <B>getX0</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the x0</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setX0(double)"><!-- --></A><H3>
    +setX0</H3>
    +<PRE>
    +public void <B>setX0</B>(double&nbsp;x0)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x0</CODE> - the x0 to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getY0()"><!-- --></A><H3>
    +getY0</H3>
    +<PRE>
    +public double <B>getY0</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the y0</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setY0(double)"><!-- --></A><H3>
    +setY0</H3>
    +<PRE>
    +public void <B>setY0</B>(double&nbsp;y0)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>y0</CODE> - the y0 to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResetEdges()"><!-- --></A><H3>
    +isResetEdges</H3>
    +<PRE>
    +public boolean <B>isResetEdges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the resetEdges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResetEdges(boolean)"><!-- --></A><H3>
    +setResetEdges</H3>
    +<PRE>
    +public void <B>setResetEdges</B>(boolean&nbsp;resetEdges)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>resetEdges</CODE> - the resetEdges to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDisableEdgeStyle()"><!-- --></A><H3>
    +isDisableEdgeStyle</H3>
    +<PRE>
    +public boolean <B>isDisableEdgeStyle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the disableEdgeStyle</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDisableEdgeStyle(boolean)"><!-- --></A><H3>
    +setDisableEdgeStyle</H3>
    +<PRE>
    +public void <B>setDisableEdgeStyle</B>(boolean&nbsp;disableEdgeStyle)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>disableEdgeStyle</CODE> - the disableEdgeStyle to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="circle(java.lang.Object[], double, double, double)"><!-- --></A><H3>
    +circle</H3>
    +<PRE>
    +public void <B>circle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;vertices,
    +                   double&nbsp;r,
    +                   double&nbsp;left,
    +                   double&nbsp;top)</PRE>
    +<DL>
    +<DD>Executes the circular layout for the specified array
    + of vertices and the given radius.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCircleLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCircleLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCircleLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxCompactTreeLayout.Polygon.html b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.Polygon.html
    new file mode 100644
    index 000000000..8c0f68e79
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.Polygon.html
    @@ -0,0 +1,320 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxCompactTreeLayout.Polygon (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCompactTreeLayout.Polygon (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.Polygon.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.Polygon.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxCompactTreeLayout.Polygon</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxCompactTreeLayout.Polygon</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected static class <B>mxCompactTreeLayout.Polygon</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#lowerHead">lowerHead</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#lowerTail">lowerTail</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#upperHead">upperHead</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#upperTail">upperTail</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected </CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#mxCompactTreeLayout.Polygon()">mxCompactTreeLayout.Polygon</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="lowerHead"><!-- --></A><H3>
    +lowerHead</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A> <B>lowerHead</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lowerTail"><!-- --></A><H3>
    +lowerTail</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A> <B>lowerTail</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="upperHead"><!-- --></A><H3>
    +upperHead</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A> <B>upperHead</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="upperTail"><!-- --></A><H3>
    +upperTail</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A> <B>upperTail</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCompactTreeLayout.Polygon()"><!-- --></A><H3>
    +mxCompactTreeLayout.Polygon</H3>
    +<PRE>
    +protected <B>mxCompactTreeLayout.Polygon</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.Polygon.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.Polygon.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxCompactTreeLayout.Polyline.html b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.Polyline.html
    new file mode 100644
    index 000000000..75685432e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.Polyline.html
    @@ -0,0 +1,306 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxCompactTreeLayout.Polyline (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCompactTreeLayout.Polyline (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.Polyline.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.Polyline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxCompactTreeLayout.Polyline</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxCompactTreeLayout.Polyline</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected static class <B>mxCompactTreeLayout.Polyline</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#dx">dx</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#dy">dy</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#next">next</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected </CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#mxCompactTreeLayout.Polyline(double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline)">mxCompactTreeLayout.Polyline</A></B>(double&nbsp;dx,
    +                             double&nbsp;dy,
    +                             <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;next)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="dx"><!-- --></A><H3>
    +dx</H3>
    +<PRE>
    +protected double <B>dx</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dy"><!-- --></A><H3>
    +dy</H3>
    +<PRE>
    +protected double <B>dy</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="next"><!-- --></A><H3>
    +next</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A> <B>next</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCompactTreeLayout.Polyline(double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline)"><!-- --></A><H3>
    +mxCompactTreeLayout.Polyline</H3>
    +<PRE>
    +protected <B>mxCompactTreeLayout.Polyline</B>(double&nbsp;dx,
    +                                       double&nbsp;dy,
    +                                       <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;next)</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.Polyline.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.Polyline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html
    new file mode 100644
    index 000000000..1c6a0204a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html
    @@ -0,0 +1,426 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxCompactTreeLayout.TreeNode (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCompactTreeLayout.TreeNode (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.TreeNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.TreeNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxCompactTreeLayout.TreeNode</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxCompactTreeLayout.TreeNode</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected static class <B>mxCompactTreeLayout.TreeNode</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#child">child</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#contour">contour</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#height">height</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#next">next</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#offsetX">offsetX</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#offsetY">offsetY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#width">width</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#x">x</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#y">y</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#mxCompactTreeLayout.TreeNode(java.lang.Object)">mxCompactTreeLayout.TreeNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="x"><!-- --></A><H3>
    +x</H3>
    +<PRE>
    +protected double <B>x</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="y"><!-- --></A><H3>
    +y</H3>
    +<PRE>
    +protected double <B>y</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="width"><!-- --></A><H3>
    +width</H3>
    +<PRE>
    +protected double <B>width</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="height"><!-- --></A><H3>
    +height</H3>
    +<PRE>
    +protected double <B>height</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="offsetX"><!-- --></A><H3>
    +offsetX</H3>
    +<PRE>
    +protected double <B>offsetX</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="offsetY"><!-- --></A><H3>
    +offsetY</H3>
    +<PRE>
    +protected double <B>offsetY</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="child"><!-- --></A><H3>
    +child</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A> <B>child</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="next"><!-- --></A><H3>
    +next</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A> <B>next</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="contour"><!-- --></A><H3>
    +contour</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A> <B>contour</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCompactTreeLayout.TreeNode(java.lang.Object)"><!-- --></A><H3>
    +mxCompactTreeLayout.TreeNode</H3>
    +<PRE>
    +public <B>mxCompactTreeLayout.TreeNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.TreeNode.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.TreeNode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html
    new file mode 100644
    index 000000000..00eb2a014
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html
    @@ -0,0 +1,386 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxCompactTreeLayout.WeightedCellSorter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCompactTreeLayout.WeightedCellSorter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.WeightedCellSorter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.WeightedCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxCompactTreeLayout.WeightedCellSorter</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxCompactTreeLayout.WeightedCellSorter</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected class <B>mxCompactTreeLayout.WeightedCellSorter</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</DL>
    +</PRE>
    +
    +<P>
    +A utility class used to track cells whilst sorting occurs on the weighted
    + sum of their connected edges. Does not violate (x.compareTo(y)==0) ==
    + (x.equals(y))
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The cell whose median value is being calculated</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#nudge">nudge</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to flip equal weight values.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#visited">visited</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not this cell has been visited in the current assignment</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#weightedValue">weightedValue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The weighted value of the cell stored</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#mxCompactTreeLayout.WeightedCellSorter()">mxCompactTreeLayout.WeightedCellSorter</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#mxCompactTreeLayout.WeightedCellSorter(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, int)">mxCompactTreeLayout.WeightedCellSorter</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;cell,
    +                                       int&nbsp;weightedValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#compareTo(java.lang.Object)">compareTo</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comparator on the medianValue</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="weightedValue"><!-- --></A><H3>
    +weightedValue</H3>
    +<PRE>
    +public int <B>weightedValue</B></PRE>
    +<DL>
    +<DD>The weighted value of the cell stored
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="nudge"><!-- --></A><H3>
    +nudge</H3>
    +<PRE>
    +public boolean <B>nudge</B></PRE>
    +<DL>
    +<DD>Whether or not to flip equal weight values.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="visited"><!-- --></A><H3>
    +visited</H3>
    +<PRE>
    +public boolean <B>visited</B></PRE>
    +<DL>
    +<DD>Whether or not this cell has been visited in the current assignment
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A> <B>cell</B></PRE>
    +<DL>
    +<DD>The cell whose median value is being calculated
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCompactTreeLayout.WeightedCellSorter()"><!-- --></A><H3>
    +mxCompactTreeLayout.WeightedCellSorter</H3>
    +<PRE>
    +public <B>mxCompactTreeLayout.WeightedCellSorter</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCompactTreeLayout.WeightedCellSorter(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, int)"><!-- --></A><H3>
    +mxCompactTreeLayout.WeightedCellSorter</H3>
    +<PRE>
    +public <B>mxCompactTreeLayout.WeightedCellSorter</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;cell,
    +                                              int&nbsp;weightedValue)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
    +compareTo</H3>
    +<PRE>
    +public int <B>compareTo</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD>comparator on the medianValue
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true#compareTo(T)" title="class or interface in java.lang">compareTo</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>arg0</CODE> - the object to be compared to
    +<DT><B>Returns:</B><DD>the standard return you would expect when comparing two
    +         double</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.WeightedCellSorter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.WeightedCellSorter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxCompactTreeLayout.html b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.html
    new file mode 100644
    index 000000000..2ddc188f9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxCompactTreeLayout.html
    @@ -0,0 +1,1493 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxCompactTreeLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCompactTreeLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxCompactTreeLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxCompactTreeLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCompactTreeLayout</B><DT>extends <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.WeightedCellSorter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A utility class used to track cells whilst sorting occurs on the weighted
    + sum of their connected edges.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#channelBuffer">channelBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The size of the vertical buffer in the center of inter-rank channels
    + where edge control points should not be placed</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#edgeRouting">edgeRouting</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to apply the internal tree edge routing</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#groupPadding">groupPadding</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Padding added to resized parents</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#horizontal">horizontal</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the orientation of the layout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#invert">invert</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edge directions should be inverted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#levelDistance">levelDistance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the levelDistance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#minEdgeJetty">minEdgeJetty</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The minimum distance for an edge jetty from a vertex</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#moveTree">moveTree</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the tree should be moved to the top, left corner
    + if it is inside a top-level layer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#nodeDistance">nodeDistance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the nodeDistance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#parentsChanged">parentsChanged</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A set of the parents that need updating based on children
    + process as part of the layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#prefHozEdgeSep">prefHozEdgeSep</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The preferred horizontal distance between edges exiting a vertex</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#prefVertEdgeOff">prefVertEdgeOff</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The preferred vertical offset between edges exiting a vertex</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#resetEdges">resetEdges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if all edge points of traversed edges should be removed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#resizeParent">resizeParent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the parents should be resized to match the width/height of the
    + children.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#mxCompactTreeLayout(com.mxgraph.view.mxGraph)">mxCompactTreeLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#mxCompactTreeLayout(com.mxgraph.view.mxGraph, boolean)">mxCompactTreeLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    boolean&nbsp;horizontal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#mxCompactTreeLayout(com.mxgraph.view.mxGraph, boolean, boolean)">mxCompactTreeLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    boolean&nbsp;horizontal,
    +                    boolean&nbsp;invert)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#adjustParents()">adjustParents</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#apply(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, com.mxgraph.util.mxRectangle)">apply</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +      <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#attachParent(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double)">attachParent</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +             double&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#bridge(com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double)">bridge</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;line1,
    +       double&nbsp;x1,
    +       double&nbsp;y1,
    +       <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;line2,
    +       double&nbsp;x2,
    +       double&nbsp;y2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#createLine(double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline)">createLine</A></B>(double&nbsp;dx,
    +           double&nbsp;dy,
    +           <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;next)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#createNode(java.lang.Object)">createNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#dfs(java.lang.Object, java.lang.Object, java.util.Set)">dfs</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;visited)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Does a depth first search starting at the specified cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#execute(java.lang.Object, java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <mxGraphLayout.execute>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#findTreeRoots(java.lang.Object, boolean)">findTreeRoots</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +              boolean&nbsp;invert)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all visible children in the given parent which do not have
    + incoming edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#getGroupPadding()">getGroupPadding</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#getLevelDistance()">getLevelDistance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#getNodeDistance()">getNodeDistance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#horizontalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double, com.mxgraph.util.mxRectangle)">horizontalLayout</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +                 double&nbsp;x0,
    +                 double&nbsp;y0,
    +                 <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#isEdgeRouting()">isEdgeRouting</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#isHorizontal()">isHorizontal</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#isInvert()">isInvert</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#isMoveTree()">isMoveTree</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#isResetEdges()">isResetEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#isResizeParent()">isResizeParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a boolean indicating if the given <mxCell> should be ignored as a
    + vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#join(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">join</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#layout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">layout</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starts the actual compact tree layout algorithm
    + at the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#layoutLeaf(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">layoutLeaf</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#localEdgeProcessing(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">localEdgeProcessing</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the specified node and all of its children by the given amount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#merge(com.mxgraph.layout.mxCompactTreeLayout.Polygon, com.mxgraph.layout.mxCompactTreeLayout.Polygon)">merge</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>&nbsp;p1,
    +      <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>&nbsp;p2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#moveNode(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double)">moveNode</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +         double&nbsp;dx,
    +         double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the specified node and all of its children by the given amount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#offset(double, double, double, double, double, double)">offset</A></B>(double&nbsp;p1,
    +       double&nbsp;p2,
    +       double&nbsp;a1,
    +       double&nbsp;a2,
    +       double&nbsp;b1,
    +       double&nbsp;b2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#processNodeOutgoing(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)">processNodeOutgoing</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Separates the x position of edges as they connect to vertices</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#setEdgeRouting(boolean)">setEdgeRouting</A></B>(boolean&nbsp;edgeRouting)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#setGroupPadding(int)">setGroupPadding</A></B>(int&nbsp;groupPadding)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#setHorizontal(boolean)">setHorizontal</A></B>(boolean&nbsp;horizontal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#setInvert(boolean)">setInvert</A></B>(boolean&nbsp;invert)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#setLevelDistance(int)">setLevelDistance</A></B>(int&nbsp;levelDistance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#setMoveTree(boolean)">setMoveTree</A></B>(boolean&nbsp;moveTree)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#setNodeDistance(int)">setNodeDistance</A></B>(int&nbsp;nodeDistance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#setResetEdges(boolean)">setResetEdges</A></B>(boolean&nbsp;resetEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#setResizeParent(boolean)">setResizeParent</A></B>(boolean&nbsp;resizeParent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html#verticalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, java.lang.Object, double, double, com.mxgraph.util.mxRectangle)">verticalLayout</A></B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +               double&nbsp;x0,
    +               double&nbsp;y0,
    +               <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="horizontal"><!-- --></A><H3>
    +horizontal</H3>
    +<PRE>
    +protected boolean <B>horizontal</B></PRE>
    +<DL>
    +<DD>Specifies the orientation of the layout. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="invert"><!-- --></A><H3>
    +invert</H3>
    +<PRE>
    +protected boolean <B>invert</B></PRE>
    +<DL>
    +<DD>Specifies if edge directions should be inverted. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeParent"><!-- --></A><H3>
    +resizeParent</H3>
    +<PRE>
    +protected boolean <B>resizeParent</B></PRE>
    +<DL>
    +<DD>If the parents should be resized to match the width/height of the
    + children. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="groupPadding"><!-- --></A><H3>
    +groupPadding</H3>
    +<PRE>
    +protected int <B>groupPadding</B></PRE>
    +<DL>
    +<DD>Padding added to resized parents
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="parentsChanged"><!-- --></A><H3>
    +parentsChanged</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>parentsChanged</B></PRE>
    +<DL>
    +<DD>A set of the parents that need updating based on children
    + process as part of the layout
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="moveTree"><!-- --></A><H3>
    +moveTree</H3>
    +<PRE>
    +protected boolean <B>moveTree</B></PRE>
    +<DL>
    +<DD>Specifies if the tree should be moved to the top, left corner
    + if it is inside a top-level layer. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resetEdges"><!-- --></A><H3>
    +resetEdges</H3>
    +<PRE>
    +protected boolean <B>resetEdges</B></PRE>
    +<DL>
    +<DD>Specifies if all edge points of traversed edges should be removed.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="levelDistance"><!-- --></A><H3>
    +levelDistance</H3>
    +<PRE>
    +protected int <B>levelDistance</B></PRE>
    +<DL>
    +<DD>Holds the levelDistance. Default is 10.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="nodeDistance"><!-- --></A><H3>
    +nodeDistance</H3>
    +<PRE>
    +protected int <B>nodeDistance</B></PRE>
    +<DL>
    +<DD>Holds the nodeDistance. Default is 20.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="prefHozEdgeSep"><!-- --></A><H3>
    +prefHozEdgeSep</H3>
    +<PRE>
    +protected int <B>prefHozEdgeSep</B></PRE>
    +<DL>
    +<DD>The preferred horizontal distance between edges exiting a vertex
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="prefVertEdgeOff"><!-- --></A><H3>
    +prefVertEdgeOff</H3>
    +<PRE>
    +protected int <B>prefVertEdgeOff</B></PRE>
    +<DL>
    +<DD>The preferred vertical offset between edges exiting a vertex
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minEdgeJetty"><!-- --></A><H3>
    +minEdgeJetty</H3>
    +<PRE>
    +protected int <B>minEdgeJetty</B></PRE>
    +<DL>
    +<DD>The minimum distance for an edge jetty from a vertex
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="channelBuffer"><!-- --></A><H3>
    +channelBuffer</H3>
    +<PRE>
    +protected int <B>channelBuffer</B></PRE>
    +<DL>
    +<DD>The size of the vertical buffer in the center of inter-rank channels
    + where edge control points should not be placed
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="edgeRouting"><!-- --></A><H3>
    +edgeRouting</H3>
    +<PRE>
    +protected boolean <B>edgeRouting</B></PRE>
    +<DL>
    +<DD>Whether or not to apply the internal tree edge routing
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCompactTreeLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxCompactTreeLayout</H3>
    +<PRE>
    +public <B>mxCompactTreeLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - </DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCompactTreeLayout(com.mxgraph.view.mxGraph, boolean)"><!-- --></A><H3>
    +mxCompactTreeLayout</H3>
    +<PRE>
    +public <B>mxCompactTreeLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                           boolean&nbsp;horizontal)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - <DD><CODE>horizontal</CODE> - </DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCompactTreeLayout(com.mxgraph.view.mxGraph, boolean, boolean)"><!-- --></A><H3>
    +mxCompactTreeLayout</H3>
    +<PRE>
    +public <B>mxCompactTreeLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                           boolean&nbsp;horizontal,
    +                           boolean&nbsp;invert)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - <DD><CODE>horizontal</CODE> - <DD><CODE>invert</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isVertexIgnored(java.lang.Object)"><!-- --></A><H3>
    +isVertexIgnored</H3>
    +<PRE>
    +public boolean <B>isVertexIgnored</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</PRE>
    +<DL>
    +<DD>Returns a boolean indicating if the given <mxCell> should be ignored as a
    + vertex. This returns true if the cell has no connections.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - Object that represents the vertex to be tested.
    +<DT><B>Returns:</B><DD>Returns true if the vertex should be ignored.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHorizontal()"><!-- --></A><H3>
    +isHorizontal</H3>
    +<PRE>
    +public boolean <B>isHorizontal</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the horizontal</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHorizontal(boolean)"><!-- --></A><H3>
    +setHorizontal</H3>
    +<PRE>
    +public void <B>setHorizontal</B>(boolean&nbsp;horizontal)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>horizontal</CODE> - the horizontal to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isInvert()"><!-- --></A><H3>
    +isInvert</H3>
    +<PRE>
    +public boolean <B>isInvert</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the invert</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInvert(boolean)"><!-- --></A><H3>
    +setInvert</H3>
    +<PRE>
    +public void <B>setInvert</B>(boolean&nbsp;invert)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>invert</CODE> - the invert to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResizeParent()"><!-- --></A><H3>
    +isResizeParent</H3>
    +<PRE>
    +public boolean <B>isResizeParent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the resizeParent</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResizeParent(boolean)"><!-- --></A><H3>
    +setResizeParent</H3>
    +<PRE>
    +public void <B>setResizeParent</B>(boolean&nbsp;resizeParent)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>resizeParent</CODE> - the resizeParent to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isMoveTree()"><!-- --></A><H3>
    +isMoveTree</H3>
    +<PRE>
    +public boolean <B>isMoveTree</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the moveTree</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMoveTree(boolean)"><!-- --></A><H3>
    +setMoveTree</H3>
    +<PRE>
    +public void <B>setMoveTree</B>(boolean&nbsp;moveTree)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>moveTree</CODE> - the moveTree to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResetEdges()"><!-- --></A><H3>
    +isResetEdges</H3>
    +<PRE>
    +public boolean <B>isResetEdges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the resetEdges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResetEdges(boolean)"><!-- --></A><H3>
    +setResetEdges</H3>
    +<PRE>
    +public void <B>setResetEdges</B>(boolean&nbsp;resetEdges)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>resetEdges</CODE> - the resetEdges to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdgeRouting()"><!-- --></A><H3>
    +isEdgeRouting</H3>
    +<PRE>
    +public boolean <B>isEdgeRouting</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeRouting(boolean)"><!-- --></A><H3>
    +setEdgeRouting</H3>
    +<PRE>
    +public void <B>setEdgeRouting</B>(boolean&nbsp;edgeRouting)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLevelDistance()"><!-- --></A><H3>
    +getLevelDistance</H3>
    +<PRE>
    +public int <B>getLevelDistance</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the levelDistance</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLevelDistance(int)"><!-- --></A><H3>
    +setLevelDistance</H3>
    +<PRE>
    +public void <B>setLevelDistance</B>(int&nbsp;levelDistance)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>levelDistance</CODE> - the levelDistance to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodeDistance()"><!-- --></A><H3>
    +getNodeDistance</H3>
    +<PRE>
    +public int <B>getNodeDistance</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the nodeDistance</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setNodeDistance(int)"><!-- --></A><H3>
    +setNodeDistance</H3>
    +<PRE>
    +public void <B>setNodeDistance</B>(int&nbsp;nodeDistance)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>nodeDistance</CODE> - the nodeDistance to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGroupPadding()"><!-- --></A><H3>
    +getGroupPadding</H3>
    +<PRE>
    +public double <B>getGroupPadding</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGroupPadding(int)"><!-- --></A><H3>
    +setGroupPadding</H3>
    +<PRE>
    +public void <B>setGroupPadding</B>(int&nbsp;groupPadding)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +<DD>Implements <mxGraphLayout.execute>.
    + 
    + If the parent has any connected edges, then it is used as the root of
    + the tree. Else, <mxGraph.findTreeRoots> will be used to find a suitable
    + root node within the set of children of the given parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="findTreeRoots(java.lang.Object, boolean)"><!-- --></A><H3>
    +findTreeRoots</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>findTreeRoots</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                  boolean&nbsp;invert)</PRE>
    +<DL>
    +<DD>Returns all visible children in the given parent which do not have
    + incoming edges. If the result is empty then the children with the
    + maximum difference between incoming and outgoing edges are returned.
    + This takes into account edges that are being promoted to the given
    + root due to invisible children or collapsed cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell whose children should be checked.<DD><CODE>invert</CODE> - Specifies if outgoing or incoming edges should be counted
    + for a tree root. If false then outgoing edges will be counted.
    +<DT><B>Returns:</B><DD>List of tree roots in parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveNode(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double)"><!-- --></A><H3>
    +moveNode</H3>
    +<PRE>
    +protected void <B>moveNode</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +                        double&nbsp;dx,
    +                        double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Moves the specified node and all of its children by the given amount.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="dfs(java.lang.Object, java.lang.Object, java.util.Set)"><!-- --></A><H3>
    +dfs</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A> <B>dfs</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;visited)</PRE>
    +<DL>
    +<DD>Does a depth first search starting at the specified cell.
    + Makes sure the specified parent is never left by the
    + algorithm.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="layout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><!-- --></A><H3>
    +layout</H3>
    +<PRE>
    +protected void <B>layout</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Starts the actual compact tree layout algorithm
    + at the given node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="horizontalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +horizontalLayout</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>horizontalLayout</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +                                       double&nbsp;x0,
    +                                       double&nbsp;y0,
    +                                       <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="verticalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, java.lang.Object, double, double, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +verticalLayout</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>verticalLayout</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                     double&nbsp;x0,
    +                                     double&nbsp;y0,
    +                                     <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="attachParent(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double)"><!-- --></A><H3>
    +attachParent</H3>
    +<PRE>
    +protected void <B>attachParent</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +                            double&nbsp;height)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="layoutLeaf(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><!-- --></A><H3>
    +layoutLeaf</H3>
    +<PRE>
    +protected void <B>layoutLeaf</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="join(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><!-- --></A><H3>
    +join</H3>
    +<PRE>
    +protected double <B>join</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="merge(com.mxgraph.layout.mxCompactTreeLayout.Polygon, com.mxgraph.layout.mxCompactTreeLayout.Polygon)"><!-- --></A><H3>
    +merge</H3>
    +<PRE>
    +protected double <B>merge</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>&nbsp;p1,
    +                       <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>&nbsp;p2)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="offset(double, double, double, double, double, double)"><!-- --></A><H3>
    +offset</H3>
    +<PRE>
    +protected double <B>offset</B>(double&nbsp;p1,
    +                        double&nbsp;p2,
    +                        double&nbsp;a1,
    +                        double&nbsp;a2,
    +                        double&nbsp;b1,
    +                        double&nbsp;b2)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="bridge(com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double)"><!-- --></A><H3>
    +bridge</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A> <B>bridge</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;line1,
    +                                              double&nbsp;x1,
    +                                              double&nbsp;y1,
    +                                              <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;line2,
    +                                              double&nbsp;x2,
    +                                              double&nbsp;y2)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createNode(java.lang.Object)"><!-- --></A><H3>
    +createNode</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A> <B>createNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="apply(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +apply</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>apply</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +                            <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - <DD><CODE>bounds</CODE> - 
    +<DT><B>Returns:</B><DD></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createLine(double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline)"><!-- --></A><H3>
    +createLine</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A> <B>createLine</B>(double&nbsp;dx,
    +                                                  double&nbsp;dy,
    +                                                  <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>&nbsp;next)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="adjustParents()"><!-- --></A><H3>
    +adjustParents</H3>
    +<PRE>
    +protected void <B>adjustParents</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="localEdgeProcessing(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><!-- --></A><H3>
    +localEdgeProcessing</H3>
    +<PRE>
    +protected void <B>localEdgeProcessing</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Moves the specified node and all of its children by the given amount.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="processNodeOutgoing(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><!-- --></A><H3>
    +processNodeOutgoing</H3>
    +<PRE>
    +protected void <B>processNodeOutgoing</B>(<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Separates the x position of edges as they connect to vertices
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - the root node of the tree</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCompactTreeLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxCompactTreeLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCompactTreeLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxEdgeLabelLayout.html b/java/docs/com/mxgraph/layout/mxEdgeLabelLayout.html
    new file mode 100644
    index 000000000..56c67945a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxEdgeLabelLayout.html
    @@ -0,0 +1,336 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxEdgeLabelLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxEdgeLabelLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEdgeLabelLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxEdgeLabelLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeLabelLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxEdgeLabelLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxEdgeLabelLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxEdgeLabelLayout</B><DT>extends <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html#mxEdgeLabelLayout(com.mxgraph.view.mxGraph)">mxEdgeLabelLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html#avoid(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">avoid</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +      <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html#placeLabels(java.lang.Object[], java.lang.Object[])">placeLabels</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxEdgeLabelLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxEdgeLabelLayout</H3>
    +<PRE>
    +public <B>mxEdgeLabelLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="placeLabels(java.lang.Object[], java.lang.Object[])"><!-- --></A><H3>
    +placeLabels</H3>
    +<PRE>
    +protected void <B>placeLabels</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="avoid(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +avoid</H3>
    +<PRE>
    +protected void <B>avoid</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                     <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEdgeLabelLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxEdgeLabelLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeLabelLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxFastOrganicLayout.html b/java/docs/com/mxgraph/layout/mxFastOrganicLayout.html
    new file mode 100644
    index 000000000..d7068971d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxFastOrganicLayout.html
    @@ -0,0 +1,1213 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:03 CEST 2012 -->
    +<TITLE>
    +mxFastOrganicLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxFastOrganicLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxFastOrganicLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxFastOrganicLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFastOrganicLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxFastOrganicLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxFastOrganicLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxFastOrganicLayout</B><DT>extends <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +Fast organic layout algorithm.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#allowedToRun">allowedToRun</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean flag that specifies if the layout is allowed to run.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#cellLocation">cellLocation</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An array of locally stored co-ordinate positions for the vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#disableEdgeStyle">disableEdgeStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#dispX">dispX</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An array of locally stored X co-ordinate displacements for the vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#dispY">dispY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An array of locally stored Y co-ordinate displacements for the vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#forceConstant">forceConstant</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The force constant by which the attractive forces are divided and the
    + replusive forces are multiple by the square of.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#forceConstantSquared">forceConstantSquared</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of <forceConstant>^2 for performance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#indices">indices</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from vertices to indices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#initialTemp">initialTemp</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start value of temperature.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#isMoveable">isMoveable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array of booleans representing the movable states of the vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#iteration">iteration</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Current iteration count.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#maxDistanceLimit">maxDistanceLimit</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The maximum distance between vertices, beyond which their
    + repulsion no longer has an effect</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#maxIterations">maxIterations</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total number of iterations to run the layout though.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#minDistanceLimit">minDistanceLimit</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Minimal distance limit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#minDistanceLimitSquared">minDistanceLimitSquared</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cached version of <minDistanceLimit> squared.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int[][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#neighbours">neighbours</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Local copy of cell neighbours.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#radius">radius</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The approximate radius of each cell, nodes only.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#radiusSquared">radiusSquared</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The approximate radius squared of each cell, nodes only.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#resetEdges">resetEdges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if all edge points of traversed edges should be removed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#temperature">temperature</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Temperature to limit displacement at later stages of layout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#useInputOrigin">useInputOrigin</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the top left corner of the input cells should be the origin
    + of the layout result.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#vertexArray">vertexArray</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An array of all vertices to be laid out.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#mxFastOrganicLayout(com.mxgraph.view.mxGraph)">mxFastOrganicLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new fast organic layout for the specified graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#calcAttraction()">calcAttraction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the attractive forces between all laid out nodes linked by
    + edges</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#calcPositions()">calcPositions</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes the displacements calculated for each cell and applies them to the
    + local cache of cell positions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#calcRepulsion()">calcRepulsion</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the repulsive forces between all laid out nodes</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#getForceConstant()">getForceConstant</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#getInitialTemp()">getInitialTemp</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#getMaxDistanceLimit()">getMaxDistanceLimit</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#getMaxIterations()">getMaxIterations</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#getMinDistanceLimit()">getMinDistanceLimit</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#isDisableEdgeStyle()">isDisableEdgeStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#isResetEdges()">isResetEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#isUseInputOrigin()">isUseInputOrigin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a boolean indicating if the given <mxCell> should be ignored as a
    + vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         double&nbsp;x,
    +         double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#reduceTemperature()">reduceTemperature</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reduces the temperature of the layout from an initial setting in a linear
    + fashion to zero.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#setDisableEdgeStyle(boolean)">setDisableEdgeStyle</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#setForceConstant(double)">setForceConstant</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#setInitialTemp(double)">setInitialTemp</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#setMaxDistanceLimit(double)">setMaxDistanceLimit</A></B>(double&nbsp;maxDistanceLimit)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#setMaxIterations(int)">setMaxIterations</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#setMinDistanceLimit(double)">setMinDistanceLimit</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#setResetEdges(boolean)">setResetEdges</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html#setUseInputOrigin(boolean)">setUseInputOrigin</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="useInputOrigin"><!-- --></A><H3>
    +useInputOrigin</H3>
    +<PRE>
    +protected boolean <B>useInputOrigin</B></PRE>
    +<DL>
    +<DD>Specifies if the top left corner of the input cells should be the origin
    + of the layout result. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resetEdges"><!-- --></A><H3>
    +resetEdges</H3>
    +<PRE>
    +protected boolean <B>resetEdges</B></PRE>
    +<DL>
    +<DD>Specifies if all edge points of traversed edges should be removed.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="disableEdgeStyle"><!-- --></A><H3>
    +disableEdgeStyle</H3>
    +<PRE>
    +protected boolean <B>disableEdgeStyle</B></PRE>
    +<DL>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="forceConstant"><!-- --></A><H3>
    +forceConstant</H3>
    +<PRE>
    +protected double <B>forceConstant</B></PRE>
    +<DL>
    +<DD>The force constant by which the attractive forces are divided and the
    + replusive forces are multiple by the square of. The value equates to the
    + average radius there is of free space around each node. Default is 50.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="forceConstantSquared"><!-- --></A><H3>
    +forceConstantSquared</H3>
    +<PRE>
    +protected double <B>forceConstantSquared</B></PRE>
    +<DL>
    +<DD>Cache of <forceConstant>^2 for performance.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minDistanceLimit"><!-- --></A><H3>
    +minDistanceLimit</H3>
    +<PRE>
    +protected double <B>minDistanceLimit</B></PRE>
    +<DL>
    +<DD>Minimal distance limit. Default is 2. Prevents of
    + dividing by zero.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minDistanceLimitSquared"><!-- --></A><H3>
    +minDistanceLimitSquared</H3>
    +<PRE>
    +protected double <B>minDistanceLimitSquared</B></PRE>
    +<DL>
    +<DD>Cached version of <minDistanceLimit> squared.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxDistanceLimit"><!-- --></A><H3>
    +maxDistanceLimit</H3>
    +<PRE>
    +protected double <B>maxDistanceLimit</B></PRE>
    +<DL>
    +<DD>The maximum distance between vertices, beyond which their
    + repulsion no longer has an effect
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="initialTemp"><!-- --></A><H3>
    +initialTemp</H3>
    +<PRE>
    +protected double <B>initialTemp</B></PRE>
    +<DL>
    +<DD>Start value of temperature. Default is 200.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="temperature"><!-- --></A><H3>
    +temperature</H3>
    +<PRE>
    +protected double <B>temperature</B></PRE>
    +<DL>
    +<DD>Temperature to limit displacement at later stages of layout.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxIterations"><!-- --></A><H3>
    +maxIterations</H3>
    +<PRE>
    +protected int <B>maxIterations</B></PRE>
    +<DL>
    +<DD>Total number of iterations to run the layout though.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="iteration"><!-- --></A><H3>
    +iteration</H3>
    +<PRE>
    +protected int <B>iteration</B></PRE>
    +<DL>
    +<DD>Current iteration count.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="vertexArray"><!-- --></A><H3>
    +vertexArray</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>vertexArray</B></PRE>
    +<DL>
    +<DD>An array of all vertices to be laid out.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dispX"><!-- --></A><H3>
    +dispX</H3>
    +<PRE>
    +protected double[] <B>dispX</B></PRE>
    +<DL>
    +<DD>An array of locally stored X co-ordinate displacements for the vertices.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dispY"><!-- --></A><H3>
    +dispY</H3>
    +<PRE>
    +protected double[] <B>dispY</B></PRE>
    +<DL>
    +<DD>An array of locally stored Y co-ordinate displacements for the vertices.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellLocation"><!-- --></A><H3>
    +cellLocation</H3>
    +<PRE>
    +protected double[][] <B>cellLocation</B></PRE>
    +<DL>
    +<DD>An array of locally stored co-ordinate positions for the vertices.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="radius"><!-- --></A><H3>
    +radius</H3>
    +<PRE>
    +protected double[] <B>radius</B></PRE>
    +<DL>
    +<DD>The approximate radius of each cell, nodes only.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="radiusSquared"><!-- --></A><H3>
    +radiusSquared</H3>
    +<PRE>
    +protected double[] <B>radiusSquared</B></PRE>
    +<DL>
    +<DD>The approximate radius squared of each cell, nodes only.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="isMoveable"><!-- --></A><H3>
    +isMoveable</H3>
    +<PRE>
    +protected boolean[] <B>isMoveable</B></PRE>
    +<DL>
    +<DD>Array of booleans representing the movable states of the vertices.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="neighbours"><!-- --></A><H3>
    +neighbours</H3>
    +<PRE>
    +protected int[][] <B>neighbours</B></PRE>
    +<DL>
    +<DD>Local copy of cell neighbours.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="allowedToRun"><!-- --></A><H3>
    +allowedToRun</H3>
    +<PRE>
    +protected boolean <B>allowedToRun</B></PRE>
    +<DL>
    +<DD>Boolean flag that specifies if the layout is allowed to run. If this is
    + set to false, then the layout exits in the following iteration.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="indices"><!-- --></A><H3>
    +indices</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&gt; <B>indices</B></PRE>
    +<DL>
    +<DD>Maps from vertices to indices.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxFastOrganicLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxFastOrganicLayout</H3>
    +<PRE>
    +public <B>mxFastOrganicLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a new fast organic layout for the specified graph.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isVertexIgnored(java.lang.Object)"><!-- --></A><H3>
    +isVertexIgnored</H3>
    +<PRE>
    +public boolean <B>isVertexIgnored</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</PRE>
    +<DL>
    +<DD>Returns a boolean indicating if the given <mxCell> should be ignored as a
    + vertex. This returns true if the cell has no connections.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - Object that represents the vertex to be tested.
    +<DT><B>Returns:</B><DD>Returns true if the vertex should be ignored.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isUseInputOrigin()"><!-- --></A><H3>
    +isUseInputOrigin</H3>
    +<PRE>
    +public boolean <B>isUseInputOrigin</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setUseInputOrigin(boolean)"><!-- --></A><H3>
    +setUseInputOrigin</H3>
    +<PRE>
    +public void <B>setUseInputOrigin</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResetEdges()"><!-- --></A><H3>
    +isResetEdges</H3>
    +<PRE>
    +public boolean <B>isResetEdges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResetEdges(boolean)"><!-- --></A><H3>
    +setResetEdges</H3>
    +<PRE>
    +public void <B>setResetEdges</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDisableEdgeStyle()"><!-- --></A><H3>
    +isDisableEdgeStyle</H3>
    +<PRE>
    +public boolean <B>isDisableEdgeStyle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDisableEdgeStyle(boolean)"><!-- --></A><H3>
    +setDisableEdgeStyle</H3>
    +<PRE>
    +public void <B>setDisableEdgeStyle</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMaxIterations()"><!-- --></A><H3>
    +getMaxIterations</H3>
    +<PRE>
    +public int <B>getMaxIterations</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMaxIterations(int)"><!-- --></A><H3>
    +setMaxIterations</H3>
    +<PRE>
    +public void <B>setMaxIterations</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getForceConstant()"><!-- --></A><H3>
    +getForceConstant</H3>
    +<PRE>
    +public double <B>getForceConstant</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setForceConstant(double)"><!-- --></A><H3>
    +setForceConstant</H3>
    +<PRE>
    +public void <B>setForceConstant</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMinDistanceLimit()"><!-- --></A><H3>
    +getMinDistanceLimit</H3>
    +<PRE>
    +public double <B>getMinDistanceLimit</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMinDistanceLimit(double)"><!-- --></A><H3>
    +setMinDistanceLimit</H3>
    +<PRE>
    +public void <B>setMinDistanceLimit</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMaxDistanceLimit()"><!-- --></A><H3>
    +getMaxDistanceLimit</H3>
    +<PRE>
    +public double <B>getMaxDistanceLimit</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the maxDistanceLimit</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMaxDistanceLimit(double)"><!-- --></A><H3>
    +setMaxDistanceLimit</H3>
    +<PRE>
    +public void <B>setMaxDistanceLimit</B>(double&nbsp;maxDistanceLimit)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>maxDistanceLimit</CODE> - the maxDistanceLimit to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInitialTemp()"><!-- --></A><H3>
    +getInitialTemp</H3>
    +<PRE>
    +public double <B>getInitialTemp</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInitialTemp(double)"><!-- --></A><H3>
    +setInitialTemp</H3>
    +<PRE>
    +public void <B>setInitialTemp</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reduceTemperature()"><!-- --></A><H3>
    +reduceTemperature</H3>
    +<PRE>
    +protected void <B>reduceTemperature</B>()</PRE>
    +<DL>
    +<DD>Reduces the temperature of the layout from an initial setting in a linear
    + fashion to zero.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveCell(java.lang.Object, double, double)"><!-- --></A><H3>
    +moveCell</H3>
    +<PRE>
    +public void <B>moveCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     double&nbsp;x,
    +                     double&nbsp;y)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg. index) so that the outcome of the
    + layout will position the vertex as close to the point (x, y) as
    + possible.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell which is being moved.<DD><CODE>x</CODE> - X-coordinate of the new cell location.<DD><CODE>y</CODE> - Y-coordinate of the new cell location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="calcPositions()"><!-- --></A><H3>
    +calcPositions</H3>
    +<PRE>
    +protected void <B>calcPositions</B>()</PRE>
    +<DL>
    +<DD>Takes the displacements calculated for each cell and applies them to the
    + local cache of cell positions. Limits the displacement to the current
    + temperature.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="calcAttraction()"><!-- --></A><H3>
    +calcAttraction</H3>
    +<PRE>
    +protected void <B>calcAttraction</B>()</PRE>
    +<DL>
    +<DD>Calculates the attractive forces between all laid out nodes linked by
    + edges
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="calcRepulsion()"><!-- --></A><H3>
    +calcRepulsion</H3>
    +<PRE>
    +protected void <B>calcRepulsion</B>()</PRE>
    +<DL>
    +<DD>Calculates the repulsive forces between all laid out nodes
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxFastOrganicLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxFastOrganicLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxFastOrganicLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxGraphLayout.html b/java/docs/com/mxgraph/layout/mxGraphLayout.html
    new file mode 100644
    index 000000000..29370bff4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxGraphLayout.html
    @@ -0,0 +1,829 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxGraphLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxGraphLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxGraphLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>, <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>, <A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A>, <A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>, <A HREF="../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>, <A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>, <A HREF="../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A>, <A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>, <A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>, <A HREF="../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract class <B>mxGraphLayout</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +Abstract bass class for layouts
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the enclosing graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The parent cell of the layout, if any</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean indicating if the bounding box of the label should be used if
    + its available.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#mxGraphLayout(com.mxgraph.view.mxGraph)">mxGraphLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new fast organic layout for the specified graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;groups,
    +              int&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the bounds of the given groups to include all children.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the constraint for the given key and cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +              boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the constraint for the given key and cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the associated graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an <mxRectangle> that defines the bounds of the given cell
    + or the bounding box if <useBoundingBox> is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given edge has no source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given vertex has no connected edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given vertex may be moved by the layout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         double&nbsp;x,
    +         double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the control points of the given edge to the given
    + list of mxPoints.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                    boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disables or enables the edge style of the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                  boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disables or enables orthogonal end segments of the given edge</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A></B>(boolean&nbsp;useBoundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +                  double&nbsp;x,
    +                  double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the new position of the given cell taking into account the size of
    + the bounding box if <useBoundingBox> is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +         boolean&nbsp;directed,
    +         <A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>&nbsp;visitor,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;visited)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traverses the (directed) graph invoking the given function for each
    + visited vertex and edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graph"><!-- --></A><H3>
    +graph</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>graph</B></PRE>
    +<DL>
    +<DD>Holds the enclosing graph.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="parent"><!-- --></A><H3>
    +parent</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>parent</B></PRE>
    +<DL>
    +<DD>The parent cell of the layout, if any
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="useBoundingBox"><!-- --></A><H3>
    +useBoundingBox</H3>
    +<PRE>
    +protected boolean <B>useBoundingBox</B></PRE>
    +<DL>
    +<DD>Boolean indicating if the bounding box of the label should be used if
    + its available. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxGraphLayout</H3>
    +<PRE>
    +public <B>mxGraphLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a new fast organic layout for the specified graph.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveCell(java.lang.Object, double, double)"><!-- --></A><H3>
    +moveCell</H3>
    +<PRE>
    +public void <B>moveCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     double&nbsp;x,
    +                     double&nbsp;y)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg. index) so that the outcome of the
    + layout will position the vertex as close to the point (x, y) as
    + possible.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell which is being moved.<DD><CODE>x</CODE> - X-coordinate of the new cell location.<DD><CODE>y</CODE> - Y-coordinate of the new cell location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraph()"><!-- --></A><H3>
    +getGraph</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>getGraph</B>()</PRE>
    +<DL>
    +<DD>Returns the associated graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConstraint(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getConstraint</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getConstraint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the constraint for the given key and cell. This implementation
    + always returns the value for the given key in the style of the given
    + cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - Key of the constraint to be returned.<DD><CODE>cell</CODE> - Cell whose constraint should be returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +getConstraint</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getConstraint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                            boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns the constraint for the given key and cell. The optional edge and
    + source arguments are used to return inbound and outgoing routing-
    + constraints for the given edge and vertex. This implementation always
    + returns the value for the given key in the style of the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - Key of the constraint to be returned.<DD><CODE>cell</CODE> - Cell whose constraint should be returned.<DD><CODE>edge</CODE> - Optional cell that represents the connection whose constraint
    + should be returned. Default is null.<DD><CODE>source</CODE> - Optional boolean that specifies if the connection is incoming
    + or outgoing. Default is false.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)"><!-- --></A><H3>
    +traverse</H3>
    +<PRE>
    +public void <B>traverse</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +                     boolean&nbsp;directed,
    +                     <A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>&nbsp;visitor,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;visited)</PRE>
    +<DL>
    +<DD>Traverses the (directed) graph invoking the given function for each
    + visited vertex and edge. The function is invoked with the current vertex
    + and the incoming edge as a parameter. This implementation makes sure
    + each vertex is only visited once. The function may return false if the
    + traversal should stop at the given vertex.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - <mxCell> that represents the vertex where the traversal starts.<DD><CODE>directed</CODE> - Optional boolean indicating if edges should only be traversed
    + from source to target. Default is true.<DD><CODE>visitor</CODE> - Visitor that takes the current vertex and the incoming edge.
    + The traversal stops if the function returns false.<DD><CODE>edge</CODE> - Optional <mxCell> that represents the incoming edge. This is
    + null for the first step of the traversal.<DD><CODE>visited</CODE> - Optional array of cell paths for the visited cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isUseBoundingBox()"><!-- --></A><H3>
    +isUseBoundingBox</H3>
    +<PRE>
    +public boolean <B>isUseBoundingBox</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the useBoundingBox</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setUseBoundingBox(boolean)"><!-- --></A><H3>
    +setUseBoundingBox</H3>
    +<PRE>
    +public void <B>setUseBoundingBox</B>(boolean&nbsp;useBoundingBox)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>useBoundingBox</CODE> - the useBoundingBox to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertexMovable(java.lang.Object)"><!-- --></A><H3>
    +isVertexMovable</H3>
    +<PRE>
    +public boolean <B>isVertexMovable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</PRE>
    +<DL>
    +<DD>Returns true if the given vertex may be moved by the layout.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - Object that represents the vertex to be tested.
    +<DT><B>Returns:</B><DD>Returns true if the vertex can be moved.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertexIgnored(java.lang.Object)"><!-- --></A><H3>
    +isVertexIgnored</H3>
    +<PRE>
    +public boolean <B>isVertexIgnored</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</PRE>
    +<DL>
    +<DD>Returns true if the given vertex has no connected edges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - Object that represents the vertex to be tested.
    +<DT><B>Returns:</B><DD>Returns true if the vertex should be ignored.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdgeIgnored(java.lang.Object)"><!-- --></A><H3>
    +isEdgeIgnored</H3>
    +<PRE>
    +public boolean <B>isEdgeIgnored</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD>Returns true if the given edge has no source or target terminal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Object that represents the edge to be tested.
    +<DT><B>Returns:</B><DD>Returns true if the edge should be ignored.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeStyleEnabled(java.lang.Object, boolean)"><!-- --></A><H3>
    +setEdgeStyleEnabled</H3>
    +<PRE>
    +public void <B>setEdgeStyleEnabled</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                                boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Disables or enables the edge style of the given edge.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOrthogonalEdge(java.lang.Object, boolean)"><!-- --></A><H3>
    +setOrthogonalEdge</H3>
    +<PRE>
    +public void <B>setOrthogonalEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                              boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Disables or enables orthogonal end segments of the given edge
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParentOffset(java.lang.Object)"><!-- --></A><H3>
    +getParentOffset</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getParentOffset</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgePoints(java.lang.Object, java.util.List)"><!-- --></A><H3>
    +setEdgePoints</H3>
    +<PRE>
    +public void <B>setEdgePoints</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points)</PRE>
    +<DL>
    +<DD>Sets the control points of the given edge to the given
    + list of mxPoints. Set the points to null to remove all
    + existing points for an edge.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getVertexBounds(java.lang.Object)"><!-- --></A><H3>
    +getVertexBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getVertexBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</PRE>
    +<DL>
    +<DD>Returns an <mxRectangle> that defines the bounds of the given cell
    + or the bounding box if <useBoundingBox> is true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVertexLocation(java.lang.Object, double, double)"><!-- --></A><H3>
    +setVertexLocation</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>setVertexLocation</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +                                     double&nbsp;x,
    +                                     double&nbsp;y)</PRE>
    +<DL>
    +<DD>Sets the new position of the given cell taking into account the size of
    + the bounding box if <useBoundingBox> is true. The change is only carried
    + out if the new location is not equal to the existing location, otherwise
    + the geometry is not replaced with an updated instance. The new or old
    + bounds are returned (including overlapping labels).
    + 
    + Parameters:
    + 
    + cell - <mxCell> whose geometry is to be set.
    + x - Integer that defines the x-coordinate of the new location.
    + y - Integer that defines the y-coordinate of the new location.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="arrangeGroups(java.lang.Object[], int)"><!-- --></A><H3>
    +arrangeGroups</H3>
    +<PRE>
    +public void <B>arrangeGroups</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;groups,
    +                          int&nbsp;border)</PRE>
    +<DL>
    +<DD>Updates the bounds of the given groups to include all children. Call
    + this with the groups in parent to child order, top-most group first, eg.
    + 
    + arrangeGroups(graph, mxUtils.sortCells(Arrays.asList(
    +   new Object[] { v1, v3 }), true).toArray(), 10);
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>groups</CODE> - the groups to adjust<DD><CODE>border</CODE> - the border applied to the adjusted groups</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxGraphLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxIGraphLayout.html b/java/docs/com/mxgraph/layout/mxIGraphLayout.html
    new file mode 100644
    index 000000000..835fc71a2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxIGraphLayout.html
    @@ -0,0 +1,245 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxIGraphLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxIGraphLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIGraphLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxIGraphLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Interface mxIGraphLayout</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>, <A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>, <A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A>, <A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>, <A HREF="../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>, <A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>, <A HREF="../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A>, <A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>, <A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>, <A HREF="../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxIGraphLayout</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the requirements for an object that implements a graph layout.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         double&nbsp;x,
    +         double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveCell(java.lang.Object, double, double)"><!-- --></A><H3>
    +moveCell</H3>
    +<PRE>
    +void <B>moveCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              double&nbsp;x,
    +              double&nbsp;y)</PRE>
    +<DL>
    +<DD>Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg. index) so that the outcome of the
    + layout will position the vertex as close to the point (x, y) as
    + possible.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell which is being moved.<DD><CODE>x</CODE> - X-coordinate of the new cell location.<DD><CODE>y</CODE> - Y-coordinate of the new cell location.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIGraphLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxIGraphLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxOrganicLayout.CellWrapper.html b/java/docs/com/mxgraph/layout/mxOrganicLayout.CellWrapper.html
    new file mode 100644
    index 000000000..a283b4ffc
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxOrganicLayout.CellWrapper.html
    @@ -0,0 +1,783 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxOrganicLayout.CellWrapper (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxOrganicLayout.CellWrapper (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxOrganicLayout.CellWrapper.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrganicLayout.CellWrapper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxOrganicLayout.CellWrapper</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxOrganicLayout.CellWrapper</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxOrganicLayout.CellWrapper</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Internal representation of a node or edge that holds cached information
    + to enable the layout to perform more quickly and to simplify the code
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The actual graph cell this wrapper represents</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#connectedEdges">connectedEdges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the index of all connected edges in the <code>e</code> array
    + to this node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#heightSquared">heightSquared</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The height of the node squared, only used if approxNodeDimensions
    + is set to true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#radiusSquared">radiusSquared</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The approximate radius squared of this cell, nodes only.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#relevantEdges">relevantEdges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;All edge that repel this cell, only used for nodes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The index of the node attached to this edge as source, edges only</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#target">target</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The index of the node attached to this edge as target, edges only</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#x">x</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The x-coordinate position of this cell, nodes only</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#y">y</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The y-coordinate position of this cell, nodes only</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#mxOrganicLayout.CellWrapper(java.lang.Object)">mxOrganicLayout.CellWrapper</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new CellWrapper</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getCell()">getCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getConnectedEdges()">getConnectedEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getHeightSquared()">getHeightSquared</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getRadiusSquared()">getRadiusSquared</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getRelevantEdges()">getRelevantEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getSource()">getSource</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getTarget()">getTarget</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getX()">getX</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getY()">getY</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setConnectedEdges(int[])">setConnectedEdges</A></B>(int[]&nbsp;connectedEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setHeightSquared(double)">setHeightSquared</A></B>(double&nbsp;heightSquared)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setRadiusSquared(double)">setRadiusSquared</A></B>(double&nbsp;radiusSquared)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setRelevantEdges(int[])">setRelevantEdges</A></B>(int[]&nbsp;relevantEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setSource(int)">setSource</A></B>(int&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setTarget(int)">setTarget</A></B>(int&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setX(double)">setX</A></B>(double&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setY(double)">setY</A></B>(double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DD>The actual graph cell this wrapper represents
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="relevantEdges"><!-- --></A><H3>
    +relevantEdges</H3>
    +<PRE>
    +protected int[] <B>relevantEdges</B></PRE>
    +<DL>
    +<DD>All edge that repel this cell, only used for nodes. This array
    + is equivalent to all edges unconnected to this node
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="connectedEdges"><!-- --></A><H3>
    +connectedEdges</H3>
    +<PRE>
    +protected int[] <B>connectedEdges</B></PRE>
    +<DL>
    +<DD>the index of all connected edges in the <code>e</code> array
    + to this node. This is only used for nodes.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="x"><!-- --></A><H3>
    +x</H3>
    +<PRE>
    +protected double <B>x</B></PRE>
    +<DL>
    +<DD>The x-coordinate position of this cell, nodes only
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="y"><!-- --></A><H3>
    +y</H3>
    +<PRE>
    +protected double <B>y</B></PRE>
    +<DL>
    +<DD>The y-coordinate position of this cell, nodes only
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="radiusSquared"><!-- --></A><H3>
    +radiusSquared</H3>
    +<PRE>
    +protected double <B>radiusSquared</B></PRE>
    +<DL>
    +<DD>The approximate radius squared of this cell, nodes only. If
    + approxNodeDimensions is true on the layout this value holds the
    + width of the node squared
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="heightSquared"><!-- --></A><H3>
    +heightSquared</H3>
    +<PRE>
    +protected double <B>heightSquared</B></PRE>
    +<DL>
    +<DD>The height of the node squared, only used if approxNodeDimensions
    + is set to true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="source"><!-- --></A><H3>
    +source</H3>
    +<PRE>
    +protected int <B>source</B></PRE>
    +<DL>
    +<DD>The index of the node attached to this edge as source, edges only
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="target"><!-- --></A><H3>
    +target</H3>
    +<PRE>
    +protected int <B>target</B></PRE>
    +<DL>
    +<DD>The index of the node attached to this edge as target, edges only
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxOrganicLayout.CellWrapper(java.lang.Object)"><!-- --></A><H3>
    +mxOrganicLayout.CellWrapper</H3>
    +<PRE>
    +public <B>mxOrganicLayout.CellWrapper</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Constructs a new CellWrapper
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - the graph cell this wrapper represents</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getRelevantEdges()"><!-- --></A><H3>
    +getRelevantEdges</H3>
    +<PRE>
    +public int[] <B>getRelevantEdges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the relevantEdges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRelevantEdges(int[])"><!-- --></A><H3>
    +setRelevantEdges</H3>
    +<PRE>
    +public void <B>setRelevantEdges</B>(int[]&nbsp;relevantEdges)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>relevantEdges</CODE> - the relevantEdges to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnectedEdges()"><!-- --></A><H3>
    +getConnectedEdges</H3>
    +<PRE>
    +public int[] <B>getConnectedEdges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the connectedEdges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setConnectedEdges(int[])"><!-- --></A><H3>
    +setConnectedEdges</H3>
    +<PRE>
    +public void <B>setConnectedEdges</B>(int[]&nbsp;connectedEdges)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>connectedEdges</CODE> - the connectedEdges to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getX()"><!-- --></A><H3>
    +getX</H3>
    +<PRE>
    +public double <B>getX</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the x</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setX(double)"><!-- --></A><H3>
    +setX</H3>
    +<PRE>
    +public void <B>setX</B>(double&nbsp;x)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getY()"><!-- --></A><H3>
    +getY</H3>
    +<PRE>
    +public double <B>getY</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the y</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setY(double)"><!-- --></A><H3>
    +setY</H3>
    +<PRE>
    +public void <B>setY</B>(double&nbsp;y)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>y</CODE> - the y to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRadiusSquared()"><!-- --></A><H3>
    +getRadiusSquared</H3>
    +<PRE>
    +public double <B>getRadiusSquared</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the radiusSquared</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRadiusSquared(double)"><!-- --></A><H3>
    +setRadiusSquared</H3>
    +<PRE>
    +public void <B>setRadiusSquared</B>(double&nbsp;radiusSquared)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>radiusSquared</CODE> - the radiusSquared to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHeightSquared()"><!-- --></A><H3>
    +getHeightSquared</H3>
    +<PRE>
    +public double <B>getHeightSquared</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the heightSquared</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHeightSquared(double)"><!-- --></A><H3>
    +setHeightSquared</H3>
    +<PRE>
    +public void <B>setHeightSquared</B>(double&nbsp;heightSquared)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>heightSquared</CODE> - the heightSquared to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSource()"><!-- --></A><H3>
    +getSource</H3>
    +<PRE>
    +public int <B>getSource</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the source</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSource(int)"><!-- --></A><H3>
    +setSource</H3>
    +<PRE>
    +public void <B>setSource</B>(int&nbsp;source)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>source</CODE> - the source to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTarget()"><!-- --></A><H3>
    +getTarget</H3>
    +<PRE>
    +public int <B>getTarget</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the target</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTarget(int)"><!-- --></A><H3>
    +setTarget</H3>
    +<PRE>
    +public void <B>setTarget</B>(int&nbsp;target)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>target</CODE> - the target to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell()"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the cell</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxOrganicLayout.CellWrapper.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrganicLayout.CellWrapper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxOrganicLayout.html b/java/docs/com/mxgraph/layout/mxOrganicLayout.html
    new file mode 100644
    index 000000000..be1ef2aef
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxOrganicLayout.html
    @@ -0,0 +1,2589 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxOrganicLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxOrganicLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxOrganicLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxOrganicLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrganicLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxOrganicLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxOrganicLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxOrganicLayout</B><DT>extends <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +An implementation of a simulated annealing layout, based on "Drawing Graphs
    + Nicely Using Simulated Annealing" by Davidson and Harel (1996). This
    + paper describes these criteria as being favourable in a graph layout: (1)
    + distributing nodes evenly, (2) making edge-lengths uniform, (3)
    + minimizing cross-crossings, and (4) keeping nodes from coming too close
    + to edges. These criteria are translated into energy cost functions in the
    + layout. Nodes or edges breaking these criteria create a larger cost function
    + , the total cost they contribute related to the extent that they break it.
    + The idea of the algorithm is to minimise the total system energy. Factors
    + are assigned to each of the criteria describing how important that
    + criteria is. Higher factors mean that those criteria are deemed to be
    + relatively preferable in the final layout. Most of  the criteria conflict
    + with the others to some extent and so the setting of the factors determines
    + the general look of the resulting graph.
    + <p>
    + In addition to the four aesthetic criteria the concept of a border line
    + which induces an energy cost to nodes in proximity to the graph bounds is
    + introduced to attempt to restrain the graph. All of the 5 factors can be
    + switched on or off using the <code>isOptimize...</code> variables.
    + <p>
    + Simulated Annealing is a force-directed layout and is one of the more
    + expensive, but generally effective layouts of this type. Layouts like
    + the spring layout only really factor in edge length and inter-node
    + distance being the lowest CPU intensive for the most aesthetic gain. The
    + additional factors are more expensive but can have very attractive results.
    + <p>
    + The main loop of the algorithm consist of processing the nodes in a 
    + deterministic order. During the processing of each node a circle of radius
    + <code>moveRadius</code> is made around the node and split into
    + <code>triesPerCell</code> equal segments. Each point between neighbour
    + segments is determined and the new energy of the system if the node were
    + moved to that position calculated. Only the necessary nodes and edges are
    + processed new energy values resulting in quadratic performance, O(VE),
    + whereas calculating the total system energy would be cubic. The default
    + implementation only checks 8 points around the radius of the circle, as
    + opposed to the suggested 30 in the paper. Doubling the number of points
    + double the CPU load and 8 works almost as well as 30.
    + <p>
    + The <code>moveRadius</code> replaces the temperature as the influencing
    + factor in the way the graph settles in later iterations. If the user does
    + not set the initial move radius it is set to half the maximum dimension
    + of the graph. Thus, in 2 iterations a node may traverse the entire graph,
    + and it is more sensible to find minima this way that uphill moves, which
    + are little more than an expensive 'tilt' method. The factor by which
    + the radius is multiplied by after each iteration is important, lowering
    + it improves performance but raising it towards 1.0 can improve the
    + resulting graph aesthetics. When the radius hits the minimum move radius
    + defined, the layout terminates. The minimum move radius should be set
    + a value where the move distance is too minor to be of interest.
    + <p>
    + Also, the idea of a fine tuning phase is used, as described in the paper.
    + This involves only calculating the edge to node distance energy cost
    + at the end of the algorithm since it is an expensive calculation and
    + it really an 'optimizating' function. <code>fineTuningRadius</code>
    + defines the radius value that, when reached, causes the edge to node
    + distance to be calculated.
    + <p>
    + There are other special cases that are processed after each iteration.
    + <code>unchangedEnergyRoundTermination</code> defines the number of
    + iterations, after which the layout terminates. If nothing is being moved
    + it is assumed a good layout has been found. In addition to this if
    + no nodes are moved during an iteration the move radius is halved, presuming
    + that a finer granularity is required.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal representation of a node or edge that holds cached information
    + to enable the layout to perform more quickly and to simplify the code</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#approxNodeDimensions">approxNodeDimensions</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to use approximate node dimensions or not.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#averageNodeArea">averageNodeArea</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The average amount of area allocated per node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#borderLineCostFactor">borderLineCostFactor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cost factor applied to energy calculations for node promixity to the
    + notional border of the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#boundsHeight">boundsHeight</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The height coordinate of the final graph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#boundsWidth">boundsWidth</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The width coordinate of the final graph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#boundsX">boundsX</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The x coordinate of the final graph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#boundsY">boundsY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The y coordinate of the final graph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#disableEdgeStyle">disableEdgeStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#e">e</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal models collection of edges to be laid out</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#edgeCrossingCostFactor">edgeCrossingCostFactor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cost factor applied to energy calculations involving edges that cross
    + over one another.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#edgeDistanceCostFactor">edgeDistanceCostFactor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cost factor applied to energy calculations involving the distance
    + nodes and edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#edgeLengthCostFactor">edgeLengthCostFactor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cost factor applied to energy calculations for the edge lengths.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#fineTuningRadius">fineTuningRadius</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The radius below which fine tuning of the layout should start
    + This involves allowing the distance between nodes and edges to be
    + taken into account in the total energy calculation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#initialMoveRadius">initialMoveRadius</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The initial value of <code>moveRadius</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isFineTuning">isFineTuning</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not fine tuning is on.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeBorderLine">isOptimizeBorderLine</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not nodes will contribute an energy cost as they approach
    + the bound of the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeCrossing">isOptimizeEdgeCrossing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not edges crosses will be calculated as an energy cost
    + function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeDistance">isOptimizeEdgeDistance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not the distance between edge and nodes will be calculated
    + as an energy cost function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeLength">isOptimizeEdgeLength</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not edge lengths will be calculated as an energy cost
    + function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeNodeDistribution">isOptimizeNodeDistribution</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not node distribute will contribute an energy cost where
    + nodes are close together.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#iteration">iteration</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;current iteration number of the layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#maxDistanceLimit">maxDistanceLimit</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;distance limit beyond which energy costs due to object repulsive is
    + not calculated as it would be too insignificant</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#maxDistanceLimitSquared">maxDistanceLimitSquared</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cached version of <code>maxDistanceLimit</code> squared</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#maxIterations">maxIterations</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Limit to the number of iterations that may take place.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#minDistanceLimit">minDistanceLimit</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prevents from dividing with zero and from creating excessive energy
    + values</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#minDistanceLimitSquared">minDistanceLimitSquared</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cached version of <code>minDistanceLimit</code> squared</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#minMoveRadius">minMoveRadius</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when <A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#moveRadius"><CODE>moveRadius</CODE></A>reaches this value, the algorithm is terminated</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#moveRadius">moveRadius</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The current radius around each node where the next position energy
    + values will be calculated for a possible move</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#nodeDistributionCostFactor">nodeDistributionCostFactor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cost factor applied to energy calculations involving the general node
    + distribution of the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#radiusScaleFactor">radiusScaleFactor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The factor by which the <code>moveRadius</code> is multiplied by after
    + every iteration.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#resetEdges">resetEdges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if all edge points of traversed edges should be removed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#triesPerCell">triesPerCell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;determines, in how many segments the circle around cells is divided, to
    + find a new position for the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#unchangedEnergyRoundCount">unchangedEnergyRoundCount</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keeps track of how many consecutive round have passed without any energy
    + changes</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#unchangedEnergyRoundTermination">unchangedEnergyRoundTermination</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The number of round of no node moves taking placed that the layout
    + terminates</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#v">v</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal models collection of nodes ( vertices ) to be laid out</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#xNormTry">xNormTry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array of the x portion of the normalised test vectors that 
    + are tested for a lower energy around each vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#yNormTry">yNormTry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array of the y portion of the normalised test vectors that 
    + are tested for a lower energy around each vertex.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#mxOrganicLayout(com.mxgraph.view.mxGraph)">mxOrganicLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for mxOrganicLayout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#mxOrganicLayout(com.mxgraph.view.mxGraph, java.awt.geom.Rectangle2D)">mxOrganicLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for mxOrganicLayout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#calcEnergyDelta(int, double, double, double, double, double, double)">calcEnergyDelta</A></B>(int&nbsp;index,
    +                double&nbsp;oldNodeDistribution,
    +                double&nbsp;oldEdgeDistance,
    +                double&nbsp;oldEdgeCrossing,
    +                double&nbsp;oldBorderLine,
    +                double&nbsp;oldEdgeLength,
    +                double&nbsp;oldAdditionalFactorsEnergy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the change in energy for the specified node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <mxGraphLayout.execute>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getAdditionFactorsEnergy(int)">getAdditionFactorsEnergy</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook method to adding additional energy factors into the layout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getAverageNodeArea()">getAverageNodeArea</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getBorderline(int)">getBorderline</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method calculates the energy of the distance of the specified
    + node to the notional border of the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getBorderLineCostFactor()">getBorderLineCostFactor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getConnectedEdges(int)">getConnectedEdges</A></B>(int&nbsp;cellIndex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all Edges that are connected with the specified cell</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeCrossing(int)">getEdgeCrossing</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method calculates the energy of the distance from the specified
    + edge crossing any other edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeCrossingAffectedEdges(int)">getEdgeCrossingAffectedEdges</A></B>(int&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtains the energy cost function for the specified node being moved.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeCrossingCostFactor()">getEdgeCrossingCostFactor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeDistanceAffectedNodes(int)">getEdgeDistanceAffectedNodes</A></B>(int&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtains the energy cost function for the specified node being moved.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeDistanceCostFactor()">getEdgeDistanceCostFactor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeDistanceFromEdge(int)">getEdgeDistanceFromEdge</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method calculates the energy of the distance between Cells and
    + Edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeDistanceFromNode(int)">getEdgeDistanceFromNode</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method calculates the energy of the distance between Cells and
    + Edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeLength(int)">getEdgeLength</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method calculates the energy due to the length of the specified
    + edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeLengthAffectedEdges(int)">getEdgeLengthAffectedEdges</A></B>(int&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtains the energy cost function for the specified node being moved.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getEdgeLengthCostFactor()">getEdgeLengthCostFactor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getFineTuningRadius()">getFineTuningRadius</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getInitialMoveRadius()">getInitialMoveRadius</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getMaxDistanceLimit()">getMaxDistanceLimit</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getMaxIterations()">getMaxIterations</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getMinDistanceLimit()">getMinDistanceLimit</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getMinMoveRadius()">getMinMoveRadius</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getNodeDistribution(int)">getNodeDistribution</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the energy cost of the specified node relative to all other
    + nodes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getNodeDistributionCostFactor()">getNodeDistributionCostFactor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getRadiusScaleFactor()">getRadiusScaleFactor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getRelevantEdges(int)">getRelevantEdges</A></B>(int&nbsp;cellIndex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all Edges that are not connected to the specified cell</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getTriesPerCell()">getTriesPerCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#getUnchangedEnergyRoundTermination()">getUnchangedEnergyRoundTermination</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isApproxNodeDimensions()">isApproxNodeDimensions</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isDisableEdgeStyle()">isDisableEdgeStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isFineTuning()">isFineTuning</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeBorderLine()">isOptimizeBorderLine</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeCrossing()">isOptimizeEdgeCrossing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeDistance()">isOptimizeEdgeDistance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeLength()">isOptimizeEdgeLength</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isOptimizeNodeDistribution()">isOptimizeNodeDistribution</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isResetEdges()">isResetEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given vertex has no connected edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#performRound()">performRound</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The main round of the algorithm.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setApproxNodeDimensions(boolean)">setApproxNodeDimensions</A></B>(boolean&nbsp;approxNodeDimensions)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setAverageNodeArea(double)">setAverageNodeArea</A></B>(double&nbsp;averageNodeArea)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setBorderLineCostFactor(double)">setBorderLineCostFactor</A></B>(double&nbsp;borderLineCostFactor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setDisableEdgeStyle(boolean)">setDisableEdgeStyle</A></B>(boolean&nbsp;disableEdgeStyle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setEdgeCrossingCostFactor(double)">setEdgeCrossingCostFactor</A></B>(double&nbsp;edgeCrossingCostFactor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setEdgeDistanceCostFactor(double)">setEdgeDistanceCostFactor</A></B>(double&nbsp;edgeDistanceCostFactor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setEdgeLengthCostFactor(double)">setEdgeLengthCostFactor</A></B>(double&nbsp;edgeLengthCostFactor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setFineTuning(boolean)">setFineTuning</A></B>(boolean&nbsp;isFineTuning)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setFineTuningRadius(double)">setFineTuningRadius</A></B>(double&nbsp;fineTuningRadius)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setInitialMoveRadius(double)">setInitialMoveRadius</A></B>(double&nbsp;initialMoveRadius)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setMaxDistanceLimit(double)">setMaxDistanceLimit</A></B>(double&nbsp;maxDistanceLimit)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setMaxIterations(int)">setMaxIterations</A></B>(int&nbsp;maxIterations)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setMinDistanceLimit(double)">setMinDistanceLimit</A></B>(double&nbsp;minDistanceLimit)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setMinMoveRadius(double)">setMinMoveRadius</A></B>(double&nbsp;minMoveRadius)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setNodeDistributionCostFactor(double)">setNodeDistributionCostFactor</A></B>(double&nbsp;nodeDistributionCostFactor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setOptimizeBorderLine(boolean)">setOptimizeBorderLine</A></B>(boolean&nbsp;isOptimizeBorderLine)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setOptimizeEdgeCrossing(boolean)">setOptimizeEdgeCrossing</A></B>(boolean&nbsp;isOptimizeEdgeCrossing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setOptimizeEdgeDistance(boolean)">setOptimizeEdgeDistance</A></B>(boolean&nbsp;isOptimizeEdgeDistance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setOptimizeEdgeLength(boolean)">setOptimizeEdgeLength</A></B>(boolean&nbsp;isOptimizeEdgeLength)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setOptimizeNodeDistribution(boolean)">setOptimizeNodeDistribution</A></B>(boolean&nbsp;isOptimizeNodeDistribution)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setRadiusScaleFactor(double)">setRadiusScaleFactor</A></B>(double&nbsp;radiusScaleFactor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setResetEdges(boolean)">setResetEdges</A></B>(boolean&nbsp;resetEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setTriesPerCell(int)">setTriesPerCell</A></B>(int&nbsp;triesPerCell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#setUnchangedEnergyRoundTermination(int)">setUnchangedEnergyRoundTermination</A></B>(int&nbsp;unchangedEnergyRoundTermination)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#toString()">toString</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>Organic</code>, the name of this algorithm.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isOptimizeEdgeDistance"><!-- --></A><H3>
    +isOptimizeEdgeDistance</H3>
    +<PRE>
    +protected boolean <B>isOptimizeEdgeDistance</B></PRE>
    +<DL>
    +<DD>Whether or not the distance between edge and nodes will be calculated
    + as an energy cost function. This function is CPU intensive and is best
    + only used in the fine tuning phase.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="isOptimizeEdgeCrossing"><!-- --></A><H3>
    +isOptimizeEdgeCrossing</H3>
    +<PRE>
    +protected boolean <B>isOptimizeEdgeCrossing</B></PRE>
    +<DL>
    +<DD>Whether or not edges crosses will be calculated as an energy cost
    + function. This function is CPU intensive, though if some iterations
    + without it are required, it is best to have a few cycles at the start
    + of the algorithm using it, then use it intermittantly through the rest
    + of the layout.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="isOptimizeEdgeLength"><!-- --></A><H3>
    +isOptimizeEdgeLength</H3>
    +<PRE>
    +protected boolean <B>isOptimizeEdgeLength</B></PRE>
    +<DL>
    +<DD>Whether or not edge lengths will be calculated as an energy cost
    + function. This function not CPU intensive.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="isOptimizeBorderLine"><!-- --></A><H3>
    +isOptimizeBorderLine</H3>
    +<PRE>
    +protected boolean <B>isOptimizeBorderLine</B></PRE>
    +<DL>
    +<DD>Whether or not nodes will contribute an energy cost as they approach
    + the bound of the graph. The cost increases to a limit close to the
    + border and stays constant outside the bounds of the graph. This function
    + is not CPU intensive
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="isOptimizeNodeDistribution"><!-- --></A><H3>
    +isOptimizeNodeDistribution</H3>
    +<PRE>
    +protected boolean <B>isOptimizeNodeDistribution</B></PRE>
    +<DL>
    +<DD>Whether or not node distribute will contribute an energy cost where
    + nodes are close together. The function is moderately CPU intensive.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minMoveRadius"><!-- --></A><H3>
    +minMoveRadius</H3>
    +<PRE>
    +protected double <B>minMoveRadius</B></PRE>
    +<DL>
    +<DD>when <A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html#moveRadius"><CODE>moveRadius</CODE></A>reaches this value, the algorithm is terminated
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="moveRadius"><!-- --></A><H3>
    +moveRadius</H3>
    +<PRE>
    +protected double <B>moveRadius</B></PRE>
    +<DL>
    +<DD>The current radius around each node where the next position energy
    + values will be calculated for a possible move
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="initialMoveRadius"><!-- --></A><H3>
    +initialMoveRadius</H3>
    +<PRE>
    +protected double <B>initialMoveRadius</B></PRE>
    +<DL>
    +<DD>The initial value of <code>moveRadius</code>. If this is set to zero
    + the layout will automatically determine a suitable value.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="radiusScaleFactor"><!-- --></A><H3>
    +radiusScaleFactor</H3>
    +<PRE>
    +protected double <B>radiusScaleFactor</B></PRE>
    +<DL>
    +<DD>The factor by which the <code>moveRadius</code> is multiplied by after
    + every iteration. A value of 0.75 is a good balance between performance
    + and aesthetics. Increasing the value provides more chances to find
    + minimum energy positions and decreasing it causes the minimum radius
    + termination condition to occur more quickly.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="averageNodeArea"><!-- --></A><H3>
    +averageNodeArea</H3>
    +<PRE>
    +protected double <B>averageNodeArea</B></PRE>
    +<DL>
    +<DD>The average amount of area allocated per node. If <code> bounds</code>
    + is not set this value mutiplied by the number of nodes to find
    + the total graph area. The graph is assumed square.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fineTuningRadius"><!-- --></A><H3>
    +fineTuningRadius</H3>
    +<PRE>
    +protected double <B>fineTuningRadius</B></PRE>
    +<DL>
    +<DD>The radius below which fine tuning of the layout should start
    + This involves allowing the distance between nodes and edges to be
    + taken into account in the total energy calculation. If this is set to
    + zero, the layout will automatically determine a suitable value
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxIterations"><!-- --></A><H3>
    +maxIterations</H3>
    +<PRE>
    +protected int <B>maxIterations</B></PRE>
    +<DL>
    +<DD>Limit to the number of iterations that may take place. This is only
    + reached if one of the termination conditions does not occur first.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="edgeDistanceCostFactor"><!-- --></A><H3>
    +edgeDistanceCostFactor</H3>
    +<PRE>
    +protected double <B>edgeDistanceCostFactor</B></PRE>
    +<DL>
    +<DD>Cost factor applied to energy calculations involving the distance
    + nodes and edges. Increasing this value tends to cause nodes to move away
    + from edges, at the partial cost of other graph aesthetics.
    + <code>isOptimizeEdgeDistance</code> must be true for edge to nodes
    + distances to be taken into account.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="edgeCrossingCostFactor"><!-- --></A><H3>
    +edgeCrossingCostFactor</H3>
    +<PRE>
    +protected double <B>edgeCrossingCostFactor</B></PRE>
    +<DL>
    +<DD>Cost factor applied to energy calculations involving edges that cross
    + over one another. Increasing this value tends to result in fewer edge
    + crossings, at the partial cost of other graph aesthetics.
    + <code>isOptimizeEdgeCrossing</code> must be true for edge crossings
    + to be taken into account.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="nodeDistributionCostFactor"><!-- --></A><H3>
    +nodeDistributionCostFactor</H3>
    +<PRE>
    +protected double <B>nodeDistributionCostFactor</B></PRE>
    +<DL>
    +<DD>Cost factor applied to energy calculations involving the general node
    + distribution of the graph. Increasing this value tends to result in
    + a better distribution of nodes across the available space, at the
    + partial cost of other graph aesthetics.
    + <code>isOptimizeNodeDistribution</code> must be true for this general
    + distribution to be applied.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="borderLineCostFactor"><!-- --></A><H3>
    +borderLineCostFactor</H3>
    +<PRE>
    +protected double <B>borderLineCostFactor</B></PRE>
    +<DL>
    +<DD>Cost factor applied to energy calculations for node promixity to the
    + notional border of the graph. Increasing this value results in
    + nodes tending towards the centre of the drawing space, at the
    + partial cost of other graph aesthetics.
    + <code>isOptimizeBorderLine</code> must be true for border
    + repulsion to be applied.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="edgeLengthCostFactor"><!-- --></A><H3>
    +edgeLengthCostFactor</H3>
    +<PRE>
    +protected double <B>edgeLengthCostFactor</B></PRE>
    +<DL>
    +<DD>Cost factor applied to energy calculations for the edge lengths.
    + Increasing this value results in the layout attempting to shorten all
    + edges to the minimum edge length, at the partial cost of other graph
    + aesthetics.
    + <code>isOptimizeEdgeLength</code> must be true for edge length
    + shortening to be applied.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="boundsX"><!-- --></A><H3>
    +boundsX</H3>
    +<PRE>
    +protected double <B>boundsX</B></PRE>
    +<DL>
    +<DD>The x coordinate of the final graph
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="boundsY"><!-- --></A><H3>
    +boundsY</H3>
    +<PRE>
    +protected double <B>boundsY</B></PRE>
    +<DL>
    +<DD>The y coordinate of the final graph
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="boundsWidth"><!-- --></A><H3>
    +boundsWidth</H3>
    +<PRE>
    +protected double <B>boundsWidth</B></PRE>
    +<DL>
    +<DD>The width coordinate of the final graph
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="boundsHeight"><!-- --></A><H3>
    +boundsHeight</H3>
    +<PRE>
    +protected double <B>boundsHeight</B></PRE>
    +<DL>
    +<DD>The height coordinate of the final graph
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="iteration"><!-- --></A><H3>
    +iteration</H3>
    +<PRE>
    +protected int <B>iteration</B></PRE>
    +<DL>
    +<DD>current iteration number of the layout
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="triesPerCell"><!-- --></A><H3>
    +triesPerCell</H3>
    +<PRE>
    +protected int <B>triesPerCell</B></PRE>
    +<DL>
    +<DD>determines, in how many segments the circle around cells is divided, to
    + find a new position for the cell. Doubling this value doubles the CPU
    + load. Increasing it beyond 16 might mean a change to the
    + <code>performRound</code> method might further improve accuracy for a
    + small performance hit. The change is described in the method comment.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minDistanceLimit"><!-- --></A><H3>
    +minDistanceLimit</H3>
    +<PRE>
    +protected double <B>minDistanceLimit</B></PRE>
    +<DL>
    +<DD>prevents from dividing with zero and from creating excessive energy
    + values
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minDistanceLimitSquared"><!-- --></A><H3>
    +minDistanceLimitSquared</H3>
    +<PRE>
    +protected double <B>minDistanceLimitSquared</B></PRE>
    +<DL>
    +<DD>cached version of <code>minDistanceLimit</code> squared
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxDistanceLimit"><!-- --></A><H3>
    +maxDistanceLimit</H3>
    +<PRE>
    +protected double <B>maxDistanceLimit</B></PRE>
    +<DL>
    +<DD>distance limit beyond which energy costs due to object repulsive is
    + not calculated as it would be too insignificant
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxDistanceLimitSquared"><!-- --></A><H3>
    +maxDistanceLimitSquared</H3>
    +<PRE>
    +protected double <B>maxDistanceLimitSquared</B></PRE>
    +<DL>
    +<DD>cached version of <code>maxDistanceLimit</code> squared
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="unchangedEnergyRoundCount"><!-- --></A><H3>
    +unchangedEnergyRoundCount</H3>
    +<PRE>
    +protected int <B>unchangedEnergyRoundCount</B></PRE>
    +<DL>
    +<DD>Keeps track of how many consecutive round have passed without any energy
    + changes
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="unchangedEnergyRoundTermination"><!-- --></A><H3>
    +unchangedEnergyRoundTermination</H3>
    +<PRE>
    +protected int <B>unchangedEnergyRoundTermination</B></PRE>
    +<DL>
    +<DD>The number of round of no node moves taking placed that the layout
    + terminates
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="approxNodeDimensions"><!-- --></A><H3>
    +approxNodeDimensions</H3>
    +<PRE>
    +protected boolean <B>approxNodeDimensions</B></PRE>
    +<DL>
    +<DD>Whether or not to use approximate node dimensions or not. Set to true
    + the radius squared of the smaller dimension is used. Set to false the
    + radiusSquared variable of the CellWrapper contains the width squared
    + and heightSquared is used in the obvious manner.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="v"><!-- --></A><H3>
    +v</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>[] <B>v</B></PRE>
    +<DL>
    +<DD>Internal models collection of nodes ( vertices ) to be laid out
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="e"><!-- --></A><H3>
    +e</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>[] <B>e</B></PRE>
    +<DL>
    +<DD>Internal models collection of edges to be laid out
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="xNormTry"><!-- --></A><H3>
    +xNormTry</H3>
    +<PRE>
    +protected double[] <B>xNormTry</B></PRE>
    +<DL>
    +<DD>Array of the x portion of the normalised test vectors that 
    + are tested for a lower energy around each vertex. The vector 
    + of the combined x and y normals are multipled by the current 
    + radius to obtain test points for each vector in the array.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="yNormTry"><!-- --></A><H3>
    +yNormTry</H3>
    +<PRE>
    +protected double[] <B>yNormTry</B></PRE>
    +<DL>
    +<DD>Array of the y portion of the normalised test vectors that 
    + are tested for a lower energy around each vertex. The vector 
    + of the combined x and y normals are multipled by the current 
    + radius to obtain test points for each vector in the array.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="isFineTuning"><!-- --></A><H3>
    +isFineTuning</H3>
    +<PRE>
    +protected boolean <B>isFineTuning</B></PRE>
    +<DL>
    +<DD>Whether or not fine tuning is on. The determines whether or not
    + node to edge distances are calculated in the total system energy.
    + This cost function , besides detecting line intersection, is a
    + performance intensive component of this algorithm and best left
    + to optimization phase. <code>isFineTuning</code> is switched to
    + <code>true</code> if and when the <code>fineTuningRadius</code>
    + radius is reached. Switching this variable to <code>true</code>
    + before the algorithm runs mean the node to edge cost function
    + is always calculated.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="disableEdgeStyle"><!-- --></A><H3>
    +disableEdgeStyle</H3>
    +<PRE>
    +protected boolean <B>disableEdgeStyle</B></PRE>
    +<DL>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resetEdges"><!-- --></A><H3>
    +resetEdges</H3>
    +<PRE>
    +protected boolean <B>resetEdges</B></PRE>
    +<DL>
    +<DD>Specifies if all edge points of traversed edges should be removed.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxOrganicLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxOrganicLayout</H3>
    +<PRE>
    +public <B>mxOrganicLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructor for mxOrganicLayout.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxOrganicLayout(com.mxgraph.view.mxGraph, java.awt.geom.Rectangle2D)"><!-- --></A><H3>
    +mxOrganicLayout</H3>
    +<PRE>
    +public <B>mxOrganicLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;bounds)</PRE>
    +<DL>
    +<DD>Constructor for mxOrganicLayout.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isVertexIgnored(java.lang.Object)"><!-- --></A><H3>
    +isVertexIgnored</H3>
    +<PRE>
    +public boolean <B>isVertexIgnored</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</PRE>
    +<DL>
    +<DD>Returns true if the given vertex has no connected edges.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - Object that represents the vertex to be tested.
    +<DT><B>Returns:</B><DD>Returns true if the vertex should be ignored.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Implements <mxGraphLayout.execute>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="performRound()"><!-- --></A><H3>
    +performRound</H3>
    +<PRE>
    +protected void <B>performRound</B>()</PRE>
    +<DL>
    +<DD>The main round of the algorithm. Firstly, a permutation of nodes
    + is created and worked through in that random order. Then, for each node
    + a number of point of a circle of radius <code>moveRadius</code> are
    + selected and the total energy of the system calculated if that node
    + were moved to that new position. If a lower energy position is found
    + this is accepted and the algorithm moves onto the next node. There
    + may be a slightly lower energy value yet to be found, but forcing
    + the loop to check all possible positions adds nearly the current
    + processing time again, and for little benefit. Another possible
    + strategy would be to take account of the fact that the energy values
    + around the circle decrease for half the loop and increase for the
    + other, as a general rule. If part of the decrease were seen, then
    + when the energy of a node increased, the previous node position was
    + almost always the lowest energy position. This adds about two loop
    + iterations to the inner loop and only makes sense with 16 tries or more.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="calcEnergyDelta(int, double, double, double, double, double, double)"><!-- --></A><H3>
    +calcEnergyDelta</H3>
    +<PRE>
    +protected double <B>calcEnergyDelta</B>(int&nbsp;index,
    +                                 double&nbsp;oldNodeDistribution,
    +                                 double&nbsp;oldEdgeDistance,
    +                                 double&nbsp;oldEdgeCrossing,
    +                                 double&nbsp;oldBorderLine,
    +                                 double&nbsp;oldEdgeLength,
    +                                 double&nbsp;oldAdditionalFactorsEnergy)</PRE>
    +<DL>
    +<DD>Calculates the change in energy for the specified node. The new energy is
    + calculated from the cost function methods and the old energy values for
    + each cost function are passed in as parameters
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - The index of the node in the <code>vertices</code> array<DD><CODE>oldNodeDistribution</CODE> - The previous node distribution energy cost of this node<DD><CODE>oldEdgeDistance</CODE> - The previous edge distance energy cost of this node<DD><CODE>oldEdgeCrossing</CODE> - The previous edge crossing energy cost for edges connected to
    +            this node<DD><CODE>oldBorderLine</CODE> - The previous border line energy cost for this node<DD><CODE>oldEdgeLength</CODE> - The previous edge length energy cost for edges connected to
    +            this node<DD><CODE>oldAdditionalFactorsEnergy</CODE> - The previous energy cost for additional factors from
    +            sub-classes
    +<DT><B>Returns:</B><DD>the delta of the new energy cost to the old energy cost</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodeDistribution(int)"><!-- --></A><H3>
    +getNodeDistribution</H3>
    +<PRE>
    +protected double <B>getNodeDistribution</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>Calculates the energy cost of the specified node relative to all other
    + nodes. Basically produces a higher energy the closer nodes are together.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the node in the array <code>v</code>
    +<DT><B>Returns:</B><DD>the total node distribution energy of the specified node</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBorderline(int)"><!-- --></A><H3>
    +getBorderline</H3>
    +<PRE>
    +protected double <B>getBorderline</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>This method calculates the energy of the distance of the specified
    + node to the notional border of the graph. The energy increases up to
    + a limited maximum close to the border and stays at that maximum
    + up to and over the border.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the node in the array <code>v</code>
    +<DT><B>Returns:</B><DD>the total border line energy of the specified node</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeLengthAffectedEdges(int)"><!-- --></A><H3>
    +getEdgeLengthAffectedEdges</H3>
    +<PRE>
    +protected double <B>getEdgeLengthAffectedEdges</B>(int&nbsp;node)</PRE>
    +<DL>
    +<DD>Obtains the energy cost function for the specified node being moved.
    + This involves calling <code>getEdgeLength</code> for all
    + edges connected to the specified node
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - the node whose connected edges cost functions are to be
    +                                calculated
    +<DT><B>Returns:</B><DD>the total edge length energy of the connected edges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeLength(int)"><!-- --></A><H3>
    +getEdgeLength</H3>
    +<PRE>
    +protected double <B>getEdgeLength</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>This method calculates the energy due to the length of the specified
    + edge. The energy is proportional to the length of the edge, making
    + shorter edges preferable in the layout.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the edge in the array <code>e</code>
    +<DT><B>Returns:</B><DD>the total edge length energy of the specified edge</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeCrossingAffectedEdges(int)"><!-- --></A><H3>
    +getEdgeCrossingAffectedEdges</H3>
    +<PRE>
    +protected double <B>getEdgeCrossingAffectedEdges</B>(int&nbsp;node)</PRE>
    +<DL>
    +<DD>Obtains the energy cost function for the specified node being moved.
    + This involves calling <code>getEdgeCrossing</code> for all
    + edges connected to the specified node
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - the node whose connected edges cost functions are to be
    +                                calculated
    +<DT><B>Returns:</B><DD>the total edge crossing energy of the connected edges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeCrossing(int)"><!-- --></A><H3>
    +getEdgeCrossing</H3>
    +<PRE>
    +protected double <B>getEdgeCrossing</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>This method calculates the energy of the distance from the specified
    + edge crossing any other edges. Each crossing add a constant factor
    + to the total energy
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the edge in the array <code>e</code>
    +<DT><B>Returns:</B><DD>the total edge crossing energy of the specified edge</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeDistanceFromNode(int)"><!-- --></A><H3>
    +getEdgeDistanceFromNode</H3>
    +<PRE>
    +protected double <B>getEdgeDistanceFromNode</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>This method calculates the energy of the distance between Cells and
    + Edges. This version of the edge distance cost calculates the energy
    + cost from a specified <strong>node</strong>. The distance cost to all
    + unconnected edges is calculated and the total returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the node in the array <code>v</code>
    +<DT><B>Returns:</B><DD>the total edge distance energy of the node</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeDistanceAffectedNodes(int)"><!-- --></A><H3>
    +getEdgeDistanceAffectedNodes</H3>
    +<PRE>
    +protected double <B>getEdgeDistanceAffectedNodes</B>(int&nbsp;node)</PRE>
    +<DL>
    +<DD>Obtains the energy cost function for the specified node being moved.
    + This involves calling <code>getEdgeDistanceFromEdge</code> for all
    + edges connected to the specified node
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - the node whose connected edges cost functions are to be
    +                                calculated
    +<DT><B>Returns:</B><DD>the total edge distance energy of the connected edges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeDistanceFromEdge(int)"><!-- --></A><H3>
    +getEdgeDistanceFromEdge</H3>
    +<PRE>
    +protected double <B>getEdgeDistanceFromEdge</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>This method calculates the energy of the distance between Cells and
    + Edges. This version of the edge distance cost calculates the energy
    + cost from a specified <strong>edge</strong>. The distance cost to all
    + unconnected nodes is calculated and the total returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the edge in the array <code>e</code>
    +<DT><B>Returns:</B><DD>the total edge distance energy of the edge</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAdditionFactorsEnergy(int)"><!-- --></A><H3>
    +getAdditionFactorsEnergy</H3>
    +<PRE>
    +protected double <B>getAdditionFactorsEnergy</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>Hook method to adding additional energy factors into the layout.
    + Calculates the energy just for the specified node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>i</CODE> - the nodes whose energy is being calculated
    +<DT><B>Returns:</B><DD>the energy of this node caused by the additional factors</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRelevantEdges(int)"><!-- --></A><H3>
    +getRelevantEdges</H3>
    +<PRE>
    +protected int[] <B>getRelevantEdges</B>(int&nbsp;cellIndex)</PRE>
    +<DL>
    +<DD>Returns all Edges that are not connected to the specified cell
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cellIndex</CODE> - the cell index to which the edges are not connected
    +<DT><B>Returns:</B><DD>Array of all interesting Edges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnectedEdges(int)"><!-- --></A><H3>
    +getConnectedEdges</H3>
    +<PRE>
    +protected int[] <B>getConnectedEdges</B>(int&nbsp;cellIndex)</PRE>
    +<DL>
    +<DD>Returns all Edges that are connected with the specified cell
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cellIndex</CODE> - the cell index to which the edges are connected
    +<DT><B>Returns:</B><DD>Array of all connected Edges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toString()"><!-- --></A><H3>
    +toString</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
    +<DL>
    +<DD>Returns <code>Organic</code>, the name of this algorithm.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAverageNodeArea()"><!-- --></A><H3>
    +getAverageNodeArea</H3>
    +<PRE>
    +public double <B>getAverageNodeArea</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the averageNodeArea.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAverageNodeArea(double)"><!-- --></A><H3>
    +setAverageNodeArea</H3>
    +<PRE>
    +public void <B>setAverageNodeArea</B>(double&nbsp;averageNodeArea)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>averageNodeArea</CODE> - The averageNodeArea to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBorderLineCostFactor()"><!-- --></A><H3>
    +getBorderLineCostFactor</H3>
    +<PRE>
    +public double <B>getBorderLineCostFactor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the borderLineCostFactor.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBorderLineCostFactor(double)"><!-- --></A><H3>
    +setBorderLineCostFactor</H3>
    +<PRE>
    +public void <B>setBorderLineCostFactor</B>(double&nbsp;borderLineCostFactor)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>borderLineCostFactor</CODE> - The borderLineCostFactor to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeCrossingCostFactor()"><!-- --></A><H3>
    +getEdgeCrossingCostFactor</H3>
    +<PRE>
    +public double <B>getEdgeCrossingCostFactor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the edgeCrossingCostFactor.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeCrossingCostFactor(double)"><!-- --></A><H3>
    +setEdgeCrossingCostFactor</H3>
    +<PRE>
    +public void <B>setEdgeCrossingCostFactor</B>(double&nbsp;edgeCrossingCostFactor)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edgeCrossingCostFactor</CODE> - The edgeCrossingCostFactor to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeDistanceCostFactor()"><!-- --></A><H3>
    +getEdgeDistanceCostFactor</H3>
    +<PRE>
    +public double <B>getEdgeDistanceCostFactor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the edgeDistanceCostFactor.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeDistanceCostFactor(double)"><!-- --></A><H3>
    +setEdgeDistanceCostFactor</H3>
    +<PRE>
    +public void <B>setEdgeDistanceCostFactor</B>(double&nbsp;edgeDistanceCostFactor)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edgeDistanceCostFactor</CODE> - The edgeDistanceCostFactor to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeLengthCostFactor()"><!-- --></A><H3>
    +getEdgeLengthCostFactor</H3>
    +<PRE>
    +public double <B>getEdgeLengthCostFactor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the edgeLengthCostFactor.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeLengthCostFactor(double)"><!-- --></A><H3>
    +setEdgeLengthCostFactor</H3>
    +<PRE>
    +public void <B>setEdgeLengthCostFactor</B>(double&nbsp;edgeLengthCostFactor)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edgeLengthCostFactor</CODE> - The edgeLengthCostFactor to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFineTuningRadius()"><!-- --></A><H3>
    +getFineTuningRadius</H3>
    +<PRE>
    +public double <B>getFineTuningRadius</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the fineTuningRadius.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFineTuningRadius(double)"><!-- --></A><H3>
    +setFineTuningRadius</H3>
    +<PRE>
    +public void <B>setFineTuningRadius</B>(double&nbsp;fineTuningRadius)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>fineTuningRadius</CODE> - The fineTuningRadius to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInitialMoveRadius()"><!-- --></A><H3>
    +getInitialMoveRadius</H3>
    +<PRE>
    +public double <B>getInitialMoveRadius</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the initialMoveRadius.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInitialMoveRadius(double)"><!-- --></A><H3>
    +setInitialMoveRadius</H3>
    +<PRE>
    +public void <B>setInitialMoveRadius</B>(double&nbsp;initialMoveRadius)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>initialMoveRadius</CODE> - The initialMoveRadius to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isFineTuning()"><!-- --></A><H3>
    +isFineTuning</H3>
    +<PRE>
    +public boolean <B>isFineTuning</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the isFineTuning.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFineTuning(boolean)"><!-- --></A><H3>
    +setFineTuning</H3>
    +<PRE>
    +public void <B>setFineTuning</B>(boolean&nbsp;isFineTuning)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isFineTuning</CODE> - The isFineTuning to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isOptimizeBorderLine()"><!-- --></A><H3>
    +isOptimizeBorderLine</H3>
    +<PRE>
    +public boolean <B>isOptimizeBorderLine</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the isOptimizeBorderLine.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOptimizeBorderLine(boolean)"><!-- --></A><H3>
    +setOptimizeBorderLine</H3>
    +<PRE>
    +public void <B>setOptimizeBorderLine</B>(boolean&nbsp;isOptimizeBorderLine)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isOptimizeBorderLine</CODE> - The isOptimizeBorderLine to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isOptimizeEdgeCrossing()"><!-- --></A><H3>
    +isOptimizeEdgeCrossing</H3>
    +<PRE>
    +public boolean <B>isOptimizeEdgeCrossing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the isOptimizeEdgeCrossing.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOptimizeEdgeCrossing(boolean)"><!-- --></A><H3>
    +setOptimizeEdgeCrossing</H3>
    +<PRE>
    +public void <B>setOptimizeEdgeCrossing</B>(boolean&nbsp;isOptimizeEdgeCrossing)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isOptimizeEdgeCrossing</CODE> - The isOptimizeEdgeCrossing to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isOptimizeEdgeDistance()"><!-- --></A><H3>
    +isOptimizeEdgeDistance</H3>
    +<PRE>
    +public boolean <B>isOptimizeEdgeDistance</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the isOptimizeEdgeDistance.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOptimizeEdgeDistance(boolean)"><!-- --></A><H3>
    +setOptimizeEdgeDistance</H3>
    +<PRE>
    +public void <B>setOptimizeEdgeDistance</B>(boolean&nbsp;isOptimizeEdgeDistance)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isOptimizeEdgeDistance</CODE> - The isOptimizeEdgeDistance to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isOptimizeEdgeLength()"><!-- --></A><H3>
    +isOptimizeEdgeLength</H3>
    +<PRE>
    +public boolean <B>isOptimizeEdgeLength</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the isOptimizeEdgeLength.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOptimizeEdgeLength(boolean)"><!-- --></A><H3>
    +setOptimizeEdgeLength</H3>
    +<PRE>
    +public void <B>setOptimizeEdgeLength</B>(boolean&nbsp;isOptimizeEdgeLength)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isOptimizeEdgeLength</CODE> - The isOptimizeEdgeLength to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isOptimizeNodeDistribution()"><!-- --></A><H3>
    +isOptimizeNodeDistribution</H3>
    +<PRE>
    +public boolean <B>isOptimizeNodeDistribution</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the isOptimizeNodeDistribution.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOptimizeNodeDistribution(boolean)"><!-- --></A><H3>
    +setOptimizeNodeDistribution</H3>
    +<PRE>
    +public void <B>setOptimizeNodeDistribution</B>(boolean&nbsp;isOptimizeNodeDistribution)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isOptimizeNodeDistribution</CODE> - The isOptimizeNodeDistribution to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMaxIterations()"><!-- --></A><H3>
    +getMaxIterations</H3>
    +<PRE>
    +public int <B>getMaxIterations</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the maxIterations.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMaxIterations(int)"><!-- --></A><H3>
    +setMaxIterations</H3>
    +<PRE>
    +public void <B>setMaxIterations</B>(int&nbsp;maxIterations)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>maxIterations</CODE> - The maxIterations to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMinDistanceLimit()"><!-- --></A><H3>
    +getMinDistanceLimit</H3>
    +<PRE>
    +public double <B>getMinDistanceLimit</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the minDistanceLimit.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMinDistanceLimit(double)"><!-- --></A><H3>
    +setMinDistanceLimit</H3>
    +<PRE>
    +public void <B>setMinDistanceLimit</B>(double&nbsp;minDistanceLimit)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>minDistanceLimit</CODE> - The minDistanceLimit to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMinMoveRadius()"><!-- --></A><H3>
    +getMinMoveRadius</H3>
    +<PRE>
    +public double <B>getMinMoveRadius</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the minMoveRadius.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMinMoveRadius(double)"><!-- --></A><H3>
    +setMinMoveRadius</H3>
    +<PRE>
    +public void <B>setMinMoveRadius</B>(double&nbsp;minMoveRadius)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>minMoveRadius</CODE> - The minMoveRadius to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNodeDistributionCostFactor()"><!-- --></A><H3>
    +getNodeDistributionCostFactor</H3>
    +<PRE>
    +public double <B>getNodeDistributionCostFactor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the nodeDistributionCostFactor.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setNodeDistributionCostFactor(double)"><!-- --></A><H3>
    +setNodeDistributionCostFactor</H3>
    +<PRE>
    +public void <B>setNodeDistributionCostFactor</B>(double&nbsp;nodeDistributionCostFactor)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>nodeDistributionCostFactor</CODE> - The nodeDistributionCostFactor to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRadiusScaleFactor()"><!-- --></A><H3>
    +getRadiusScaleFactor</H3>
    +<PRE>
    +public double <B>getRadiusScaleFactor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the radiusScaleFactor.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRadiusScaleFactor(double)"><!-- --></A><H3>
    +setRadiusScaleFactor</H3>
    +<PRE>
    +public void <B>setRadiusScaleFactor</B>(double&nbsp;radiusScaleFactor)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>radiusScaleFactor</CODE> - The radiusScaleFactor to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTriesPerCell()"><!-- --></A><H3>
    +getTriesPerCell</H3>
    +<PRE>
    +public int <B>getTriesPerCell</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the triesPerCell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTriesPerCell(int)"><!-- --></A><H3>
    +setTriesPerCell</H3>
    +<PRE>
    +public void <B>setTriesPerCell</B>(int&nbsp;triesPerCell)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>triesPerCell</CODE> - The triesPerCell to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getUnchangedEnergyRoundTermination()"><!-- --></A><H3>
    +getUnchangedEnergyRoundTermination</H3>
    +<PRE>
    +public int <B>getUnchangedEnergyRoundTermination</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the unchangedEnergyRoundTermination.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setUnchangedEnergyRoundTermination(int)"><!-- --></A><H3>
    +setUnchangedEnergyRoundTermination</H3>
    +<PRE>
    +public void <B>setUnchangedEnergyRoundTermination</B>(int&nbsp;unchangedEnergyRoundTermination)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>unchangedEnergyRoundTermination</CODE> - The unchangedEnergyRoundTermination to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMaxDistanceLimit()"><!-- --></A><H3>
    +getMaxDistanceLimit</H3>
    +<PRE>
    +public double <B>getMaxDistanceLimit</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the maxDistanceLimit.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMaxDistanceLimit(double)"><!-- --></A><H3>
    +setMaxDistanceLimit</H3>
    +<PRE>
    +public void <B>setMaxDistanceLimit</B>(double&nbsp;maxDistanceLimit)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>maxDistanceLimit</CODE> - The maxDistanceLimit to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isApproxNodeDimensions()"><!-- --></A><H3>
    +isApproxNodeDimensions</H3>
    +<PRE>
    +public boolean <B>isApproxNodeDimensions</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the approxNodeDimensions</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setApproxNodeDimensions(boolean)"><!-- --></A><H3>
    +setApproxNodeDimensions</H3>
    +<PRE>
    +public void <B>setApproxNodeDimensions</B>(boolean&nbsp;approxNodeDimensions)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>approxNodeDimensions</CODE> - the approxNodeDimensions to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDisableEdgeStyle()"><!-- --></A><H3>
    +isDisableEdgeStyle</H3>
    +<PRE>
    +public boolean <B>isDisableEdgeStyle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the disableEdgeStyle</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDisableEdgeStyle(boolean)"><!-- --></A><H3>
    +setDisableEdgeStyle</H3>
    +<PRE>
    +public void <B>setDisableEdgeStyle</B>(boolean&nbsp;disableEdgeStyle)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>disableEdgeStyle</CODE> - the disableEdgeStyle to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResetEdges()"><!-- --></A><H3>
    +isResetEdges</H3>
    +<PRE>
    +public boolean <B>isResetEdges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the resetEdges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResetEdges(boolean)"><!-- --></A><H3>
    +setResetEdges</H3>
    +<PRE>
    +public void <B>setResetEdges</B>(boolean&nbsp;resetEdges)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>resetEdges</CODE> - the resetEdges to set</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxOrganicLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxOrganicLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrganicLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxParallelEdgeLayout.html b/java/docs/com/mxgraph/layout/mxParallelEdgeLayout.html
    new file mode 100644
    index 000000000..572e74a15
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxParallelEdgeLayout.html
    @@ -0,0 +1,423 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxParallelEdgeLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxParallelEdgeLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxParallelEdgeLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxParallelEdgeLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxParallelEdgeLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxParallelEdgeLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxParallelEdgeLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxParallelEdgeLayout</B><DT>extends <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html#spacing">spacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the spacing between the edges.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html#mxParallelEdgeLayout(com.mxgraph.view.mxGraph)">mxParallelEdgeLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html#mxParallelEdgeLayout(com.mxgraph.view.mxGraph, int)">mxParallelEdgeLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                     int&nbsp;spacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html#findParallels(java.lang.Object)">findParallels</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html#getEdgeId(java.lang.Object)">getEdgeId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html#layout(java.util.List)">layout</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;parallels)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html#route(java.lang.Object, double, double)">route</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +      double&nbsp;x,
    +      double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="spacing"><!-- --></A><H3>
    +spacing</H3>
    +<PRE>
    +protected int <B>spacing</B></PRE>
    +<DL>
    +<DD>Specifies the spacing between the edges. Default is 20.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxParallelEdgeLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxParallelEdgeLayout</H3>
    +<PRE>
    +public <B>mxParallelEdgeLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxParallelEdgeLayout(com.mxgraph.view.mxGraph, int)"><!-- --></A><H3>
    +mxParallelEdgeLayout</H3>
    +<PRE>
    +public <B>mxParallelEdgeLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                            int&nbsp;spacing)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="findParallels(java.lang.Object)"><!-- --></A><H3>
    +findParallels</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&gt; <B>findParallels</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeId(java.lang.Object)"><!-- --></A><H3>
    +getEdgeId</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="layout(java.util.List)"><!-- --></A><H3>
    +layout</H3>
    +<PRE>
    +protected void <B>layout</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;parallels)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="route(java.lang.Object, double, double)"><!-- --></A><H3>
    +route</H3>
    +<PRE>
    +protected void <B>route</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                     double&nbsp;x,
    +                     double&nbsp;y)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxParallelEdgeLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxParallelEdgeLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxParallelEdgeLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxPartitionLayout.html b/java/docs/com/mxgraph/layout/mxPartitionLayout.html
    new file mode 100644
    index 000000000..751fbbd68
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxPartitionLayout.html
    @@ -0,0 +1,508 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxPartitionLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPartitionLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPartitionLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxPartitionLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPartitionLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxPartitionLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxPartitionLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxPartitionLayout</B><DT>extends <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#border">border</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer that specifies the absolute inset in pixels for the parent that
    + contains the children.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#horizontal">horizontal</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean indicating the direction in which the space is partitioned.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#resizeVertices">resizeVertices</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean that specifies if vertices should be resized.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#spacing">spacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer that specifies the absolute spacing in pixels between the
    + children.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph)">mxPartitionLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph, boolean)">mxPartitionLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  boolean&nbsp;horizontal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph, boolean, int)">mxPartitionLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  boolean&nbsp;horizontal,
    +                  int&nbsp;spacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph, boolean, int, int)">mxPartitionLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  boolean&nbsp;horizontal,
    +                  int&nbsp;spacing,
    +                  int&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#getContainerSize()">getContainerSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to return the container size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         double&nbsp;x,
    +         double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="horizontal"><!-- --></A><H3>
    +horizontal</H3>
    +<PRE>
    +protected boolean <B>horizontal</B></PRE>
    +<DL>
    +<DD>Boolean indicating the direction in which the space is partitioned.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="spacing"><!-- --></A><H3>
    +spacing</H3>
    +<PRE>
    +protected int <B>spacing</B></PRE>
    +<DL>
    +<DD>Integer that specifies the absolute spacing in pixels between the
    + children. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="border"><!-- --></A><H3>
    +border</H3>
    +<PRE>
    +protected int <B>border</B></PRE>
    +<DL>
    +<DD>Integer that specifies the absolute inset in pixels for the parent that
    + contains the children. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeVertices"><!-- --></A><H3>
    +resizeVertices</H3>
    +<PRE>
    +protected boolean <B>resizeVertices</B></PRE>
    +<DL>
    +<DD>Boolean that specifies if vertices should be resized. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPartitionLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxPartitionLayout</H3>
    +<PRE>
    +public <B>mxPartitionLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxPartitionLayout(com.mxgraph.view.mxGraph, boolean)"><!-- --></A><H3>
    +mxPartitionLayout</H3>
    +<PRE>
    +public <B>mxPartitionLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                         boolean&nbsp;horizontal)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxPartitionLayout(com.mxgraph.view.mxGraph, boolean, int)"><!-- --></A><H3>
    +mxPartitionLayout</H3>
    +<PRE>
    +public <B>mxPartitionLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                         boolean&nbsp;horizontal,
    +                         int&nbsp;spacing)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxPartitionLayout(com.mxgraph.view.mxGraph, boolean, int, int)"><!-- --></A><H3>
    +mxPartitionLayout</H3>
    +<PRE>
    +public <B>mxPartitionLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                         boolean&nbsp;horizontal,
    +                         int&nbsp;spacing,
    +                         int&nbsp;border)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="moveCell(java.lang.Object, double, double)"><!-- --></A><H3>
    +moveCell</H3>
    +<PRE>
    +public void <B>moveCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     double&nbsp;x,
    +                     double&nbsp;y)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg. index) so that the outcome of the
    + layout will position the vertex as close to the point (x, y) as
    + possible.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell which is being moved.<DD><CODE>x</CODE> - X-coordinate of the new cell location.<DD><CODE>y</CODE> - Y-coordinate of the new cell location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getContainerSize()"><!-- --></A><H3>
    +getContainerSize</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getContainerSize</B>()</PRE>
    +<DL>
    +<DD>Hook for subclassers to return the container size.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPartitionLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxPartitionLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPartitionLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/mxStackLayout.html b/java/docs/com/mxgraph/layout/mxStackLayout.html
    new file mode 100644
    index 000000000..68af84699
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/mxStackLayout.html
    @@ -0,0 +1,610 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxStackLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxStackLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStackLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxStackLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStackLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout</FONT>
    +<BR>
    +Class mxStackLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.mxStackLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxStackLayout</B><DT>extends <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#border">border</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Border to be added if fill is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#fill">fill</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean indicating if dimension should be changed to fill out the parent
    + cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#horizontal">horizontal</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the orientation of the layout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#resizeParent">resizeParent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the parent should be resized to match the width/height of the
    + stack.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#spacing">spacing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the spacing between the cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#wrap">wrap</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value at which a new column or row should be created.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#x0">x0</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the horizontal origin of the layout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#y0">y0</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the vertical origin of the layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph)">mxStackLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph, boolean)">mxStackLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +              boolean&nbsp;horizontal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph, boolean, int)">mxStackLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +              boolean&nbsp;horizontal,
    +              int&nbsp;spacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph, boolean, int, int, int, int)">mxStackLayout</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +              boolean&nbsp;horizontal,
    +              int&nbsp;spacing,
    +              int&nbsp;x0,
    +              int&nbsp;y0,
    +              int&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#getContainerSize()">getContainerSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to return the container size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#isHorizontal()">isHorizontal</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         double&nbsp;x,
    +         double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="horizontal"><!-- --></A><H3>
    +horizontal</H3>
    +<PRE>
    +protected boolean <B>horizontal</B></PRE>
    +<DL>
    +<DD>Specifies the orientation of the layout. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="spacing"><!-- --></A><H3>
    +spacing</H3>
    +<PRE>
    +protected int <B>spacing</B></PRE>
    +<DL>
    +<DD>Specifies the spacing between the cells. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="x0"><!-- --></A><H3>
    +x0</H3>
    +<PRE>
    +protected int <B>x0</B></PRE>
    +<DL>
    +<DD>Specifies the horizontal origin of the layout. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="y0"><!-- --></A><H3>
    +y0</H3>
    +<PRE>
    +protected int <B>y0</B></PRE>
    +<DL>
    +<DD>Specifies the vertical origin of the layout. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="border"><!-- --></A><H3>
    +border</H3>
    +<PRE>
    +protected int <B>border</B></PRE>
    +<DL>
    +<DD>Border to be added if fill is true. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fill"><!-- --></A><H3>
    +fill</H3>
    +<PRE>
    +protected boolean <B>fill</B></PRE>
    +<DL>
    +<DD>Boolean indicating if dimension should be changed to fill out the parent
    + cell. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeParent"><!-- --></A><H3>
    +resizeParent</H3>
    +<PRE>
    +protected boolean <B>resizeParent</B></PRE>
    +<DL>
    +<DD>If the parent should be resized to match the width/height of the
    + stack. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="wrap"><!-- --></A><H3>
    +wrap</H3>
    +<PRE>
    +protected int <B>wrap</B></PRE>
    +<DL>
    +<DD>Value at which a new column or row should be created. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxStackLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxStackLayout</H3>
    +<PRE>
    +public <B>mxStackLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxStackLayout(com.mxgraph.view.mxGraph, boolean)"><!-- --></A><H3>
    +mxStackLayout</H3>
    +<PRE>
    +public <B>mxStackLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                     boolean&nbsp;horizontal)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxStackLayout(com.mxgraph.view.mxGraph, boolean, int)"><!-- --></A><H3>
    +mxStackLayout</H3>
    +<PRE>
    +public <B>mxStackLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                     boolean&nbsp;horizontal,
    +                     int&nbsp;spacing)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxStackLayout(com.mxgraph.view.mxGraph, boolean, int, int, int, int)"><!-- --></A><H3>
    +mxStackLayout</H3>
    +<PRE>
    +public <B>mxStackLayout</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                     boolean&nbsp;horizontal,
    +                     int&nbsp;spacing,
    +                     int&nbsp;x0,
    +                     int&nbsp;y0,
    +                     int&nbsp;border)</PRE>
    +<DL>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isHorizontal()"><!-- --></A><H3>
    +isHorizontal</H3>
    +<PRE>
    +public boolean <B>isHorizontal</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveCell(java.lang.Object, double, double)"><!-- --></A><H3>
    +moveCell</H3>
    +<PRE>
    +public void <B>moveCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     double&nbsp;x,
    +                     double&nbsp;y)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg. index) so that the outcome of the
    + layout will position the vertex as close to the point (x, y) as
    + possible.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell which is being moved.<DD><CODE>x</CODE> - X-coordinate of the new cell location.<DD><CODE>y</CODE> - Y-coordinate of the new cell location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getContainerSize()"><!-- --></A><H3>
    +getContainerSize</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getContainerSize</B>()</PRE>
    +<DL>
    +<DD>Hook for subclassers to return the container size.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStackLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/mxStackLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStackLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/class-use/mxOrthogonalLayout.html b/java/docs/com/mxgraph/layout/orthogonal/class-use/mxOrthogonalLayout.html
    new file mode 100644
    index 000000000..3b2779ac0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/class-use/mxOrthogonalLayout.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.orthogonal.mxOrthogonalLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.orthogonal.mxOrthogonalLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal//class-usemxOrthogonalLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrthogonalLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.orthogonal.mxOrthogonalLayout</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.orthogonal.mxOrthogonalLayout
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal//class-usemxOrthogonalLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrthogonalLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxOrthogonalModel.html b/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxOrthogonalModel.html
    new file mode 100644
    index 000000000..e041ce958
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxOrthogonalModel.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.orthogonal.model.mxOrthogonalModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.orthogonal.model.mxOrthogonalModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/orthogonal/model//class-usemxOrthogonalModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrthogonalModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.orthogonal.model.mxOrthogonalModel</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model">mxOrthogonalModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.orthogonal"><B>com.mxgraph.layout.orthogonal</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.orthogonal"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model">mxOrthogonalModel</A> in <A HREF="../../../../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A> declared as <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model">mxOrthogonalModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model">mxOrthogonalModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxOrthogonalLayout.</B><B><A HREF="../../../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#orthModel">orthModel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/orthogonal/model//class-usemxOrthogonalModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrthogonalModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxPointPair.html b/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxPointPair.html
    new file mode 100644
    index 000000000..14e08f9ea
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxPointPair.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.orthogonal.model.mxPointPair (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.orthogonal.model.mxPointPair (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/orthogonal/model//class-usemxPointPair.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPointPair.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.orthogonal.model.mxPointPair</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.orthogonal.model.mxPointPair
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/orthogonal/model//class-usemxPointPair.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPointPair.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxPointSequence.html b/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxPointSequence.html
    new file mode 100644
    index 000000000..b82174eb0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxPointSequence.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.orthogonal.model.mxPointSequence (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.orthogonal.model.mxPointSequence (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/orthogonal/model//class-usemxPointSequence.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPointSequence.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.orthogonal.model.mxPointSequence</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.orthogonal.model.mxPointSequence
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/orthogonal/model//class-usemxPointSequence.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPointSequence.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxSegment.html b/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxSegment.html
    new file mode 100644
    index 000000000..410bd4bd2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/class-use/mxSegment.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.layout.orthogonal.model.mxSegment (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.layout.orthogonal.model.mxSegment (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/orthogonal/model//class-usemxSegment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSegment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.layout.orthogonal.model.mxSegment</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.orthogonal.model.mxSegment
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../../index.html?com/mxgraph/layout/orthogonal/model//class-usemxSegment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSegment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html b/java/docs/com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html
    new file mode 100644
    index 000000000..1ff7f85fe
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html
    @@ -0,0 +1,229 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxOrthogonalModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxOrthogonalModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxOrthogonalModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrthogonalModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.orthogonal.model</FONT>
    +<BR>
    +Class mxOrthogonalModel</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.orthogonal.model.mxOrthogonalModel</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxOrthogonalModel</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +A custom graph model
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html#mxOrthogonalModel(com.mxgraph.view.mxGraph)">mxOrthogonalModel</A></B>(<A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxOrthogonalModel(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxOrthogonalModel</H3>
    +<PRE>
    +public <B>mxOrthogonalModel</B>(<A HREF="../../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxOrthogonalModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrthogonalModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/mxPointPair.html b/java/docs/com/mxgraph/layout/orthogonal/model/mxPointPair.html
    new file mode 100644
    index 000000000..52e22bccb
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/mxPointPair.html
    @@ -0,0 +1,225 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxPointPair (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPointPair (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPointPair.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/mxPointPair.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPointPair.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.orthogonal.model</FONT>
    +<BR>
    +Class mxPointPair</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.orthogonal.model.mxPointPair</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxPointPair</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointPair.html#mxPointPair()">mxPointPair</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPointPair()"><!-- --></A><H3>
    +mxPointPair</H3>
    +<PRE>
    +public <B>mxPointPair</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPointPair.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/mxPointPair.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPointPair.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/mxPointSequence.html b/java/docs/com/mxgraph/layout/orthogonal/model/mxPointSequence.html
    new file mode 100644
    index 000000000..8416301c8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/mxPointSequence.html
    @@ -0,0 +1,225 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxPointSequence (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPointSequence (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPointSequence.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/mxPointSequence.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPointSequence.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.orthogonal.model</FONT>
    +<BR>
    +Class mxPointSequence</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.orthogonal.model.mxPointSequence</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxPointSequence</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointSequence.html#mxPointSequence()">mxPointSequence</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPointSequence()"><!-- --></A><H3>
    +mxPointSequence</H3>
    +<PRE>
    +public <B>mxPointSequence</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPointSequence.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/mxPointSequence.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPointSequence.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/mxSegment.html b/java/docs/com/mxgraph/layout/orthogonal/model/mxSegment.html
    new file mode 100644
    index 000000000..10856fed2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/mxSegment.html
    @@ -0,0 +1,225 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxSegment (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSegment (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSegment.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/mxSegment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSegment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.orthogonal.model</FONT>
    +<BR>
    +Class mxSegment</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.orthogonal.model.mxSegment</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSegment</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxSegment.html#mxSegment()">mxSegment</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSegment()"><!-- --></A><H3>
    +mxSegment</H3>
    +<PRE>
    +public <B>mxSegment</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSegment.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/mxSegment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSegment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/package-frame.html b/java/docs/com/mxgraph/layout/orthogonal/model/package-frame.html
    new file mode 100644
    index 000000000..fe6a73655
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/package-frame.html
    @@ -0,0 +1,38 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.orthogonal.model (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/package-summary.html" target="classFrame">com.mxgraph.layout.orthogonal.model</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model" target="classFrame">mxOrthogonalModel</A>
    +<BR>
    +<A HREF="mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model" target="classFrame">mxPointPair</A>
    +<BR>
    +<A HREF="mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model" target="classFrame">mxPointSequence</A>
    +<BR>
    +<A HREF="mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model" target="classFrame">mxSegment</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/package-summary.html b/java/docs/com/mxgraph/layout/orthogonal/model/package-summary.html
    new file mode 100644
    index 000000000..41df3786a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/package-summary.html
    @@ -0,0 +1,170 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.orthogonal.model (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.orthogonal.model (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/model/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.layout.orthogonal.model
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model">mxOrthogonalModel</A></B></TD>
    +<TD>A custom graph model</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model">mxPointPair</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model">mxPointSequence</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model">mxSegment</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/model/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/package-tree.html b/java/docs/com/mxgraph/layout/orthogonal/model/package-tree.html
    new file mode 100644
    index 000000000..28720aef1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/package-tree.html
    @@ -0,0 +1,154 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.orthogonal.model Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.orthogonal.model Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/model/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.layout.orthogonal.model
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.layout.orthogonal.model.<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxOrthogonalModel</B></A><LI TYPE="circle">com.mxgraph.layout.orthogonal.model.<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxPointPair</B></A><LI TYPE="circle">com.mxgraph.layout.orthogonal.model.<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxPointSequence</B></A><LI TYPE="circle">com.mxgraph.layout.orthogonal.model.<A HREF="../../../../../com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxSegment</B></A></UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../../com/mxgraph/layout/orthogonal/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../../com/mxgraph/model/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/model/package-use.html b/java/docs/com/mxgraph/layout/orthogonal/model/package-use.html
    new file mode 100644
    index 000000000..29749ef1e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/model/package-use.html
    @@ -0,0 +1,171 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.layout.orthogonal.model (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.layout.orthogonal.model (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.layout.orthogonal.model</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.orthogonal"><B>com.mxgraph.layout.orthogonal</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.orthogonal"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../../com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A> used by <A HREF="../../../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../../com/mxgraph/layout/orthogonal/model/class-use/mxOrthogonalModel.html#com.mxgraph.layout.orthogonal"><B>mxOrthogonalModel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A custom graph model</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/layout/orthogonal/model/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html b/java/docs/com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html
    new file mode 100644
    index 000000000..5b081e8fd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html
    @@ -0,0 +1,339 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxOrthogonalLayout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxOrthogonalLayout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxOrthogonalLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrthogonalLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.layout.orthogonal</FONT>
    +<BR>
    +Class mxOrthogonalLayout</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.layout.orthogonal.mxOrthogonalLayout</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxOrthogonalLayout</B><DT>extends <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model">mxOrthogonalModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#orthModel">orthModel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#routeToGrid">routeToGrid</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to route the edges along grid lines only, if the grid
    + is enabled.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.layout.<A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#parent">parent</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#useBoundingBox">useBoundingBox</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#mxOrthogonalLayout(com.mxgraph.view.mxGraph)">mxOrthogonalLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#execute(java.lang.Object)">execute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the layout for the children of the specified parent.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.layout.mxGraphLayout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.layout.<A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)">arrangeGroups</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)">getConstraint</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)">getConstraint</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)">moveCell</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)">setEdgeStyleEnabled</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)">setOrthogonalEdge</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A>, <A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="orthModel"><!-- --></A><H3>
    +orthModel</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model">mxOrthogonalModel</A> <B>orthModel</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="routeToGrid"><!-- --></A><H3>
    +routeToGrid</H3>
    +<PRE>
    +protected boolean <B>routeToGrid</B></PRE>
    +<DL>
    +<DD>Whether or not to route the edges along grid lines only, if the grid
    + is enabled. Default is false
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxOrthogonalLayout(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxOrthogonalLayout</H3>
    +<PRE>
    +public <B>mxOrthogonalLayout</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</A></CODE></B></DD>
    +<DD>Executes the layout for the children of the specified parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)">execute</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Parent cell that contains the children to be layed out.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxOrthogonalLayout.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxOrthogonalLayout.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/package-frame.html b/java/docs/com/mxgraph/layout/orthogonal/package-frame.html
    new file mode 100644
    index 000000000..76fc582e2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/package-frame.html
    @@ -0,0 +1,32 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.orthogonal (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../com/mxgraph/layout/orthogonal/package-summary.html" target="classFrame">com.mxgraph.layout.orthogonal</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal" target="classFrame">mxOrthogonalLayout</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/package-summary.html b/java/docs/com/mxgraph/layout/orthogonal/package-summary.html
    new file mode 100644
    index 000000000..96c182402
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/package-summary.html
    @@ -0,0 +1,158 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.orthogonal (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.orthogonal (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/orthogonal/model/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/orthogonal/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.layout.orthogonal
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/orthogonal/model/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/orthogonal/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/package-tree.html b/java/docs/com/mxgraph/layout/orthogonal/package-tree.html
    new file mode 100644
    index 000000000..d13bca9e4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/package-tree.html
    @@ -0,0 +1,157 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout.orthogonal Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout.orthogonal Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/stage/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/orthogonal/model/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/orthogonal/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.layout.orthogonal
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><B>mxGraphLayout</B></A> (implements com.mxgraph.layout.<A HREF="../../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.orthogonal.<A HREF="../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal"><B>mxOrthogonalLayout</B></A></UL>
    +</UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/hierarchical/stage/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/layout/orthogonal/model/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/orthogonal/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/orthogonal/package-use.html b/java/docs/com/mxgraph/layout/orthogonal/package-use.html
    new file mode 100644
    index 000000000..55a364527
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/orthogonal/package-use.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.layout.orthogonal (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.layout.orthogonal (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/orthogonal/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.layout.orthogonal</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.layout.orthogonal
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/layout/orthogonal/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/package-frame.html b/java/docs/com/mxgraph/layout/package-frame.html
    new file mode 100644
    index 000000000..074b3f67b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/package-frame.html
    @@ -0,0 +1,65 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/layout/package-summary.html" target="classFrame">com.mxgraph.layout</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxIGraphLayout.html" title="interface in com.mxgraph.layout" target="classFrame"><I>mxIGraphLayout</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxCircleLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxCircleLayout</A>
    +<BR>
    +<A HREF="mxCompactTreeLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxCompactTreeLayout</A>
    +<BR>
    +<A HREF="mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout" target="classFrame">mxCompactTreeLayout.Polygon</A>
    +<BR>
    +<A HREF="mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout" target="classFrame">mxCompactTreeLayout.Polyline</A>
    +<BR>
    +<A HREF="mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout" target="classFrame">mxCompactTreeLayout.TreeNode</A>
    +<BR>
    +<A HREF="mxEdgeLabelLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxEdgeLabelLayout</A>
    +<BR>
    +<A HREF="mxFastOrganicLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxFastOrganicLayout</A>
    +<BR>
    +<A HREF="mxGraphLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxGraphLayout</A>
    +<BR>
    +<A HREF="mxOrganicLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxOrganicLayout</A>
    +<BR>
    +<A HREF="mxParallelEdgeLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxParallelEdgeLayout</A>
    +<BR>
    +<A HREF="mxPartitionLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxPartitionLayout</A>
    +<BR>
    +<A HREF="mxStackLayout.html" title="class in com.mxgraph.layout" target="classFrame">mxStackLayout</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/package-summary.html b/java/docs/com/mxgraph/layout/package-summary.html
    new file mode 100644
    index 000000000..4a2881255
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/package-summary.html
    @@ -0,0 +1,232 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/graphml/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/hierarchical/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.layout
    +</H2>
    +This package contains various graph layouts.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></B></TD>
    +<TD>Defines the requirements for an object that implements a graph layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A></B></TD>
    +<TD>Fast organic layout algorithm.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A></B></TD>
    +<TD>Abstract bass class for layouts</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A></B></TD>
    +<TD>An implementation of a simulated annealing layout, based on "Drawing Graphs
    + Nicely Using Simulated Annealing" by Davidson and Harel (1996).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.layout Description
    +</H2>
    +
    +<P>
    +This package contains various graph layouts.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/graphml/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/hierarchical/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/package-tree.html b/java/docs/com/mxgraph/layout/package-tree.html
    new file mode 100644
    index 000000000..903f1abdd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/package-tree.html
    @@ -0,0 +1,163 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.layout Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.layout Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/graphml/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/hierarchical/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.layout
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.Polygon</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.Polyline</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.TreeNode</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.WeightedCellSorter</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;T&gt;)
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><B>mxGraphLayout</B></A> (implements com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout"><B>mxCircleLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout"><B>mxEdgeLabelLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout"><B>mxFastOrganicLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout"><B>mxOrganicLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout"><B>mxParallelEdgeLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout"><B>mxPartitionLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout"><B>mxStackLayout</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout"><B>mxOrganicLayout.CellWrapper</B></A></UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><B>mxIGraphLayout</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/io/graphml/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/layout/hierarchical/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/layout/package-use.html b/java/docs/com/mxgraph/layout/package-use.html
    new file mode 100644
    index 000000000..39a2d1b79
    --- /dev/null
    +++ b/java/docs/com/mxgraph/layout/package-use.html
    @@ -0,0 +1,272 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.layout (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.layout (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.layout</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical"><B>com.mxgraph.layout.hierarchical</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.orthogonal"><B>com.mxgraph.layout.orthogonal</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> used by <A HREF="../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxCompactTreeLayout.Polygon.html#com.mxgraph.layout"><B>mxCompactTreeLayout.Polygon</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxCompactTreeLayout.Polyline.html#com.mxgraph.layout"><B>mxCompactTreeLayout.Polyline</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxCompactTreeLayout.TreeNode.html#com.mxgraph.layout"><B>mxCompactTreeLayout.TreeNode</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxGraphLayout.html#com.mxgraph.layout"><B>mxGraphLayout</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Abstract bass class for layouts</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxIGraphLayout.html#com.mxgraph.layout"><B>mxIGraphLayout</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that implements a graph layout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxOrganicLayout.CellWrapper.html#com.mxgraph.layout"><B>mxOrganicLayout.CellWrapper</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal representation of a node or edge that holds cached information
    + to enable the layout to perform more quickly and to simplify the code</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> used by <A HREF="../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxGraphLayout.html#com.mxgraph.layout.hierarchical"><B>mxGraphLayout</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Abstract bass class for layouts</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxIGraphLayout.html#com.mxgraph.layout.hierarchical"><B>mxIGraphLayout</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that implements a graph layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.orthogonal"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> used by <A HREF="../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxGraphLayout.html#com.mxgraph.layout.orthogonal"><B>mxGraphLayout</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Abstract bass class for layouts</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxIGraphLayout.html#com.mxgraph.layout.orthogonal"><B>mxIGraphLayout</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that implements a graph layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> used by <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/layout/class-use/mxIGraphLayout.html#com.mxgraph.view"><B>mxIGraphLayout</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that implements a graph layout.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/layout/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxCell.html b/java/docs/com/mxgraph/model/class-use/mxCell.html
    new file mode 100644
    index 000000000..1e6a1c761
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxCell.html
    @@ -0,0 +1,191 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxCell (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxCell (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxCell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxCell</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A> in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxGraphMlCodec.html#addEdgeData(com.mxgraph.io.graphml.mxGraphMlEdge, com.mxgraph.model.mxCell)">addEdgeData</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>&nbsp;gmlEdge,
    +            <A HREF="../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>&nbsp;v)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the edge data in the gmlEdge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxGraphMlCodec.html#addNodeData(com.mxgraph.io.graphml.mxGraphMlNode, com.mxgraph.model.mxCell)">addNodeData</A></B>(<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>&nbsp;gmlNode,
    +            <A HREF="../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>&nbsp;v)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the node data in the gmlNode.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxCell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxCellPath.html b/java/docs/com/mxgraph/model/class-use/mxCellPath.html
    new file mode 100644
    index 000000000..cb912e191
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxCellPath.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxCellPath (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxCellPath (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxCellPath.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellPath.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxCellPath</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.model.mxCellPath
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxCellPath.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellPath.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGeometry.html b/java/docs/com/mxgraph/model/class-use/mxGeometry.html
    new file mode 100644
    index 000000000..4c62ac4c4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGeometry.html
    @@ -0,0 +1,432 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGeometry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGeometry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGeometry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGeometry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGeometry</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> declared as <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.mxGeometryChange.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#geometry">geometry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#geometry">geometry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the geometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.mxGeometryChange.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that return <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#geometryForCellChanged(java.lang.Object, com.mxgraph.model.mxGeometry)">geometryForCellChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                       <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner callback to update the mxGeometry of the given mxCell using
    + mxCell.setGeometry and return the previous mxGeometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.mxGeometryChange.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#getGeometry()">getGeometry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#getGeometry()">getGeometry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#getGeometry()">getGeometry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the object that describes the geometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getGeometry(java.lang.Object)">getGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxIGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.html#getGeometry(java.lang.Object)">getGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the geometry of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.mxGeometryChange.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxIGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the geometry of the given cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#geometryForCellChanged(java.lang.Object, com.mxgraph.model.mxGeometry)">geometryForCellChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                       <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner callback to update the mxGeometry of the given mxCell using
    + mxCell.setGeometry and return the previous mxGeometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.mxGeometryChange.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#setGeometry(com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#setGeometry(com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#setGeometry(com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the object to be used as the geometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxIGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the geometry of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.mxGeometryChange.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#setPrevious(com.mxgraph.model.mxGeometry)">setPrevious</A></B>(<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxCell.html#mxCell(java.lang.Object, com.mxgraph.model.mxGeometry, java.lang.String)">mxCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +       <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell for the given parameters.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#mxGraphModel.mxGeometryChange(com.mxgraph.model.mxGraphModel, java.lang.Object, com.mxgraph.model.mxGeometry)">mxGraphModel.mxGeometryChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getCellGeometry(java.lang.Object)">getCellGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the geometry for the given cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPoint(com.mxgraph.view.mxCellState, com.mxgraph.model.mxGeometry)">getPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +         <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute point on the edge for the given relative
    + geometry as a point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#updateAlternateBounds(java.lang.Object, com.mxgraph.model.mxGeometry, boolean)">updateAlternateBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                      <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geo,
    +                      boolean&nbsp;willCollapse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates or sets the alternate bounds in the given geometry for the given
    + cell depending on whether the cell is going to be collapsed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGeometry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGeometry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.Filter.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.Filter.html
    new file mode 100644
    index 000000000..81c29dbce
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.Filter.html
    @@ -0,0 +1,201 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.model.mxGraphModel.Filter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.model.mxGraphModel.Filter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.Filter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.Filter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.model.mxGraphModel.Filter</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#filterCells(java.lang.Object[], com.mxgraph.model.mxGraphModel.Filter)">filterCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +            <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter)">filterDescendants</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a collection of cells using the visitor pattern.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter, java.lang.Object)">filterDescendants</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a collection of cells using the visitor pattern.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.Filter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.Filter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.html
    new file mode 100644
    index 000000000..fb1811993
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.html
    @@ -0,0 +1,306 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGraphModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGraphModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGraphModel</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#mxGraphModel.mxChildChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object)">mxGraphModel.mxChildChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#mxGraphModel.mxChildChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object, int)">mxGraphModel.mxChildChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child,
    +                           int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#mxGraphModel.mxCollapseChange(com.mxgraph.model.mxGraphModel, java.lang.Object, boolean)">mxGraphModel.mxCollapseChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              boolean&nbsp;collapsed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#mxGraphModel.mxGeometryChange(com.mxgraph.model.mxGraphModel, java.lang.Object, com.mxgraph.model.mxGeometry)">mxGraphModel.mxGeometryChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#mxGraphModel.mxRootChange(com.mxgraph.model.mxGraphModel, java.lang.Object)">mxGraphModel.mxRootChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#mxGraphModel.mxStyleChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.String)">mxGraphModel.mxStyleChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#mxGraphModel.mxTerminalChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object, boolean)">mxGraphModel.mxTerminalChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                              boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#mxGraphModel.mxValueChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object)">mxGraphModel.mxValueChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#mxGraphModel.mxVisibleChange(com.mxgraph.model.mxGraphModel, java.lang.Object, boolean)">mxGraphModel.mxVisibleChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                             boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A> in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> declared as <A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSharedGraphModel.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> that return <A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSharedGraphModel.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html#getModel()">getModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html#mxSharedGraphModel(com.mxgraph.model.mxGraphModel)">mxSharedGraphModel</A></B>(<A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new diagram with the given model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxChildChange.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxChildChange.html
    new file mode 100644
    index 000000000..926c92d09
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxChildChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGraphModel.mxChildChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGraphModel.mxChildChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxChildChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxChildChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGraphModel.mxChildChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.model.mxGraphModel.mxChildChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxChildChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxChildChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxCollapseChange.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxCollapseChange.html
    new file mode 100644
    index 000000000..f354fd002
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxCollapseChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGraphModel.mxCollapseChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGraphModel.mxCollapseChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxCollapseChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxCollapseChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGraphModel.mxCollapseChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.model.mxGraphModel.mxCollapseChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxCollapseChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxCollapseChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxGeometryChange.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxGeometryChange.html
    new file mode 100644
    index 000000000..43864feb7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxGeometryChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGraphModel.mxGeometryChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGraphModel.mxGeometryChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxGeometryChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxGeometryChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGraphModel.mxGeometryChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.model.mxGraphModel.mxGeometryChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxGeometryChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxGeometryChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxRootChange.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxRootChange.html
    new file mode 100644
    index 000000000..6f87edc28
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxRootChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGraphModel.mxRootChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGraphModel.mxRootChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxRootChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxRootChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGraphModel.mxRootChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.model.mxGraphModel.mxRootChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxRootChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxRootChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxStyleChange.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxStyleChange.html
    new file mode 100644
    index 000000000..eb7af77be
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxStyleChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGraphModel.mxStyleChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGraphModel.mxStyleChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxStyleChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxStyleChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGraphModel.mxStyleChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.model.mxGraphModel.mxStyleChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxStyleChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxStyleChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxTerminalChange.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxTerminalChange.html
    new file mode 100644
    index 000000000..aa7e0f477
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxTerminalChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGraphModel.mxTerminalChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGraphModel.mxTerminalChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxTerminalChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxTerminalChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGraphModel.mxTerminalChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.model.mxGraphModel.mxTerminalChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxTerminalChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxTerminalChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxValueChange.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxValueChange.html
    new file mode 100644
    index 000000000..433a5dd5e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxValueChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGraphModel.mxValueChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGraphModel.mxValueChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxValueChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxValueChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGraphModel.mxValueChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.model.mxGraphModel.mxValueChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxValueChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxValueChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxVisibleChange.html b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxVisibleChange.html
    new file mode 100644
    index 000000000..7ead7d617
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxGraphModel.mxVisibleChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxGraphModel.mxVisibleChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxGraphModel.mxVisibleChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxVisibleChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxVisibleChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxGraphModel.mxVisibleChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.model.mxGraphModel.mxVisibleChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxGraphModel.mxVisibleChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxVisibleChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxICell.html b/java/docs/com/mxgraph/model/class-use/mxICell.html
    new file mode 100644
    index 000000000..c1961b898
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxICell.html
    @@ -0,0 +1,722 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.model.mxICell (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.model.mxICell (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxICell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.model.mxICell</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> that return <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxCodec.html#decodeCell(org.w3c.dom.Node, boolean)">decodeCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +           boolean&nbsp;restoreStructures)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes cells that have been encoded using inversion, ie.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxCodec.html#encodeCell(com.mxgraph.model.mxICell, org.w3c.dom.Node, boolean)">encodeCell</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;cell,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +           boolean&nbsp;includeChildren)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encoding of cell hierarchies is built-into the core, but is a
    + higher-level function that needs to be explicitely used by the
    + respective object encoders (eg.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxCodec.html#insertIntoGraph(com.mxgraph.model.mxICell)">insertIntoGraph</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the given cell into its parent and terminal cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that implement <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cells are the elements of the graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> declared as <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#parent">parent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the parent cell and source and target terminals for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#root">root</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the root cell, which in turn contains the cells that represent the
    + layers of the diagram as child cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the parent cell and source and target terminals for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#target">target</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the parent cell and source and target terminals for edges.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that return <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#getChildAt(int)">getChildAt</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#getChildAt(int)">getChildAt</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child at the specified index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#getEdgeAt(int)">getEdgeAt</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#getEdgeAt(int)">getEdgeAt</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edge at the specified index in the edge array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#getParent()">getParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#getParent()">getParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell's parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#getSource()">getSource</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the source terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#getTarget()">getTarget</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#getTerminal(boolean)">getTerminal</A></B>(boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#getTerminal(boolean)">getTerminal</A></B>(boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#insert(com.mxgraph.model.mxICell)">insert</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell)">insert</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appends the specified child into the child array and updates the parent
    + reference of the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#insert(com.mxgraph.model.mxICell, int)">insert</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child,
    +       int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell, int)">insert</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child,
    +       int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the specified child into the child array at the specified index
    + and updates the parent reference of the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#insertEdge(com.mxgraph.model.mxICell, boolean)">insertEdge</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#insertEdge(com.mxgraph.model.mxICell, boolean)">insertEdge</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the specified edge into the edge array and returns the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#remove(int)">remove</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#remove(int)">remove</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the child at the specified index from the child array and
    + returns the child that was removed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#remove(com.mxgraph.model.mxICell)">remove</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#remove(com.mxgraph.model.mxICell)">remove</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given child from the child array and returns it.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#removeEdge(com.mxgraph.model.mxICell, boolean)">removeEdge</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#removeEdge(com.mxgraph.model.mxICell, boolean)">removeEdge</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified edge from the edge array and returns the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellPath.</B><B><A HREF="../../../../com/mxgraph/model/mxCellPath.html#resolve(com.mxgraph.model.mxICell, java.lang.String)">resolve</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;root,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;path)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell for the specified cell path using the given root as the
    + root of the path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#setTerminal(com.mxgraph.model.mxICell, boolean)">setTerminal</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;terminal,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#setTerminal(com.mxgraph.model.mxICell, boolean)">setTerminal</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;terminal,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source or target terminal and returns the new terminal.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellPath.</B><B><A HREF="../../../../com/mxgraph/model/mxCellPath.html#create(com.mxgraph.model.mxICell)">create</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the cell path for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#getEdgeIndex(com.mxgraph.model.mxICell)">getEdgeIndex</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#getEdgeIndex(com.mxgraph.model.mxICell)">getEdgeIndex</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the specified edge in the edge array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#getIndex(com.mxgraph.model.mxICell)">getIndex</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#getIndex(com.mxgraph.model.mxICell)">getIndex</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the specified child in the child array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#insert(com.mxgraph.model.mxICell)">insert</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell)">insert</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appends the specified child into the child array and updates the parent
    + reference of the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#insert(com.mxgraph.model.mxICell, int)">insert</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child,
    +       int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell, int)">insert</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child,
    +       int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the specified child into the child array at the specified index
    + and updates the parent reference of the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#insertEdge(com.mxgraph.model.mxICell, boolean)">insertEdge</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#insertEdge(com.mxgraph.model.mxICell, boolean)">insertEdge</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the specified edge into the edge array and returns the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#mergeChildren(com.mxgraph.model.mxICell, com.mxgraph.model.mxICell, boolean)">mergeChildren</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;from,
    +              <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;to,
    +              boolean&nbsp;cloneAllEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Merges the children of the given cell into the given target cell inside
    + this model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#mergeChildrenImpl(com.mxgraph.model.mxICell, com.mxgraph.model.mxICell, boolean, java.util.Hashtable)">mergeChildrenImpl</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;from,
    +                  <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;to,
    +                  boolean&nbsp;cloneAllEdges,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clones the children of the source cell into the given target cell in
    + this model and adds an entry to the mapping that maps from the source
    + cell to the target cell with the same id or the clone of the source cell
    + that was inserted into this model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#remove(com.mxgraph.model.mxICell)">remove</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#remove(com.mxgraph.model.mxICell)">remove</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given child from the child array and returns it.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#removeEdge(com.mxgraph.model.mxICell, boolean)">removeEdge</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#removeEdge(com.mxgraph.model.mxICell, boolean)">removeEdge</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified edge from the edge array and returns the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellPath.</B><B><A HREF="../../../../com/mxgraph/model/mxCellPath.html#resolve(com.mxgraph.model.mxICell, java.lang.String)">resolve</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;root,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;path)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell for the specified cell path using the given root as the
    + root of the path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#setParent(com.mxgraph.model.mxICell)">setParent</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#setParent(com.mxgraph.model.mxICell)">setParent</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the parent cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#setSource(com.mxgraph.model.mxICell)">setSource</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#setTarget(com.mxgraph.model.mxICell)">setTarget</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCell.</B><B><A HREF="../../../../com/mxgraph/model/mxCell.html#setTerminal(com.mxgraph.model.mxICell, boolean)">setTerminal</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;terminal,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICell.</B><B><A HREF="../../../../com/mxgraph/model/mxICell.html#setTerminal(com.mxgraph.model.mxICell, boolean)">setTerminal</A></B>(<A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;terminal,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source or target terminal and returns the new terminal.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxICell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxIGraphModel.html b/java/docs/com/mxgraph/model/class-use/mxIGraphModel.html
    new file mode 100644
    index 000000000..1fbf3330b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxIGraphModel.html
    @@ -0,0 +1,620 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.model.mxIGraphModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.model.mxIGraphModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxIGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.model.mxIGraphModel</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that implement <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extends mxEventSource to implement a graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> declared as <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxIGraphModel.mxAtomicGraphModelChange.</B><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the model where the change happened.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that return <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxIGraphModel.mxAtomicGraphModelChange.</B><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the model where the change happened.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter)">filterDescendants</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a collection of cells using the visitor pattern.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter, java.lang.Object)">filterDescendants</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="../../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a collection of cells using the visitor pattern.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getChildCells(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, boolean)">getChildCells</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +              boolean&nbsp;vertices,
    +              boolean&nbsp;edges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the children of the given cell that are vertices and/or edges
    + depending on the arguments.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getChildEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getChildEdges</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child edges of the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getChildren(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getChildren</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all children of the given cell regardless of their type.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getChildVertices(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getChildVertices</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child vertices of the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getConnections(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getConnections</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all edges connected to this cell without loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getDescendants(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getDescendants</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a all descendants of the given cell and the cell itself
    + as a collection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getDirectedEdgeCount(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean)">getDirectedEdgeCount</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     boolean&nbsp;outgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of incoming or outgoing edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getDirectedEdgeCount(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, java.lang.Object)">getDirectedEdgeCount</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     boolean&nbsp;outgoing,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;ignoredEdge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of incoming or outgoing edges, ignoring the given
    + edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getEdges</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all edges connected to this cell including loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, boolean, boolean)">getEdges</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         boolean&nbsp;incoming,
    +         boolean&nbsp;outgoing,
    +         boolean&nbsp;includeLoops)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all distinct edges connected to this cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getEdgesBetween(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object)">getEdgesBetween</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all edges from the given source to the given target.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getEdgesBetween(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object, boolean)">getEdgesBetween</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                boolean&nbsp;directed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all edges between the given source and target pair.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getIncomingEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getIncomingEdges</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the incoming edges of the given cell without loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getOpposites(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.Object)">getOpposites</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all opposite cells of terminal for the given edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getOpposites(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.Object, boolean, boolean)">getOpposites</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +             boolean&nbsp;sources,
    +             boolean&nbsp;targets)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all opposite vertices wrt terminal for the given edges, only
    + returning sources and/or targets as specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getOutgoingEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getOutgoingEdges</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the outgoing edges of the given cell without loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getParents(com.mxgraph.model.mxIGraphModel, java.lang.Object[])">getParents</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getTopmostCells(com.mxgraph.model.mxIGraphModel, java.lang.Object[])">getTopmostCells</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: getTopmostCells
    + 
    + Returns the topmost cells of the hierarchy in an array that contains no
    + desceandants for each <mxCell> that it contains.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxIGraphModel.mxAtomicGraphModelChange.</B><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the model where the change is to be carried out.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#setTerminals(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object, java.lang.Object)">setTerminals</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source and target of the given edge in a single atomic change.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#mxIGraphModel.mxAtomicGraphModelChange(com.mxgraph.model.mxIGraphModel)">mxIGraphModel.mxAtomicGraphModelChange</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an atomic graph model change for the given model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#setCellStyleFlags(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, int, java.lang.Boolean)">setCellStyleFlags</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                  int&nbsp;flag,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setCellStyleFlags(mxIGraphModel, Object[],String, int, Boolean)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStyleUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxStyleUtils.html#setCellStyleFlags(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, int, java.lang.Boolean)">setCellStyleFlags</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                  int&nbsp;flag,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets or toggles the flag bit for the given key in the cell's styles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#setCellStyles(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, java.lang.String)">setCellStyles</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setCellStyles(mxIGraphModel, Object[], String, String)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStyleUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxStyleUtils.html#setCellStyles(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, java.lang.String)">setCellStyles</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns the value for the given key in the styles of the given cells, or
    + removes the key from the styles if the value is null.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the model that contains the cells to be displayed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getModel()">getModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the graph model that contains the graph data.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#graphModelChanged(com.mxgraph.model.mxIGraphModel, java.util.List)">graphModelChanged</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;sender,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when the graph model changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the graph model that contains the data, and fires an
    + mxEvent.CHANGE followed by an mxEvent.REPAINT event.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.model.mxIGraphModel)">mxGraph</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graph for the specified model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.model.mxIGraphModel, com.mxgraph.view.mxStylesheet)">mxGraph</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +        <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;stylesheet)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graph for the specified model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxIGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/class-use/mxIGraphModel.mxAtomicGraphModelChange.html b/java/docs/com/mxgraph/model/class-use/mxIGraphModel.mxAtomicGraphModelChange.html
    new file mode 100644
    index 000000000..d5bba145b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/class-use/mxIGraphModel.mxAtomicGraphModelChange.html
    @@ -0,0 +1,301 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxIGraphModel.mxAtomicGraphModelChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphModel.mxAtomicGraphModelChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#execute(com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange)">execute</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>&nbsp;change)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the given atomic change and adds it to the current edit.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A> in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> that return <A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxSharedGraphModel.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html#decodeChanges(org.w3c.dom.Node)">decodeChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds removed cells to the codec object lookup for references to the removed
    + cells after this point in time.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> with parameters of type <A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSharedGraphModel.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html#createUndoableEdit(com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange[])">createUndoableEdit</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>[]&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new mxUndoableEdit that implements the notify function to fire
    + a change and notify event via the model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/model//class-usemxIGraphModel.mxAtomicGraphModelChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphModel.mxAtomicGraphModelChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxCell.html b/java/docs/com/mxgraph/model/mxCell.html
    new file mode 100644
    index 000000000..01f6a091c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxCell.html
    @@ -0,0 +1,1791 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxCell (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCell (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCell.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxCell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxCell</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxCell</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCell</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DL>
    +</PRE>
    +
    +<P>
    +Cells are the elements of the graph model. They represent the state
    + of the groups, vertices and edges in a graph.
    +
    + <h4>Edge Labels</h4>
    + 
    + Using the x- and y-coordinates of a cell's geometry it is
    + possible to position the label on edges on a specific location
    + on the actual edge shape as it appears on the screen. The
    + x-coordinate of an edge's geometry is used to describe the
    + distance from the center of the edge from -1 to 1 with 0
    + being the center of the edge and the default value. The
    + y-coordinate of an edge's geometry is used to describe
    + the absolute, orthogonal distance in pixels from that
    + point. In addition, the mxGeometry.offset is used
    + as a absolute offset vector from the resulting point.
    + 
    + The width and height of an edge geometry are ignored.
    + 
    + To add more than one edge label, add a child vertex with
    + a relative geometry. The x- and y-coordinates of that
    + geometry will have the same semantiv as the above for
    + edge labels.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.model.mxCell">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#children">children</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the child cells and connected edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#collapsed">collapsed</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#connectable">connectable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#edge">edge</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#edges">edges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the child cells and connected edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#geometry">geometry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the geometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#id">id</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the Id.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#parent">parent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the parent cell and source and target terminals for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the parent cell and source and target terminals for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#style">style</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the style as a string of the form
    + stylename[;key=value].</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#target">target</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the parent cell and source and target terminals for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#value">value</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the user object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#vertex">vertex</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#visible">visible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#mxCell()">mxCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell with an empty user object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#mxCell(java.lang.Object)">mxCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell for the given user object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#mxCell(java.lang.Object, com.mxgraph.model.mxGeometry, java.lang.String)">mxCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +       <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell for the given parameters.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#clone()">clone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a clone of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#cloneValue()">cloneValue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a clone of the user object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getAttribute(java.lang.String)">getAttribute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the specified attribute from the user object if it is an XML
    + node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getAttribute(java.lang.String, java.lang.String)">getAttribute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the specified attribute from the user object if it is an XML
    + node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getChildAt(int)">getChildAt</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child at the specified index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getChildCount()">getChildCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of child cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getEdgeAt(int)">getEdgeAt</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edge at the specified index in the edge array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getEdgeCount()">getEdgeCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of edges in the edge array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getEdgeIndex(com.mxgraph.model.mxICell)">getEdgeIndex</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the specified edge in the edge array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getGeometry()">getGeometry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the object that describes the geometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getId()">getId</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Id of the cell as a string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getIndex(com.mxgraph.model.mxICell)">getIndex</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the specified child in the child array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getParent()">getParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell's parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getSource()">getSource</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the source terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getStyle()">getStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the string that describes the style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getTarget()">getTarget</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getTerminal(boolean)">getTerminal</A></B>(boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#getValue()">getValue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the user object of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#insert(com.mxgraph.model.mxICell)">insert</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appends the specified child into the child array and updates the parent
    + reference of the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#insert(com.mxgraph.model.mxICell, int)">insert</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child,
    +       int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the specified child into the child array at the specified index
    + and updates the parent reference of the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#insertEdge(com.mxgraph.model.mxICell, boolean)">insertEdge</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the specified edge into the edge array and returns the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#isCollapsed()">isCollapsed</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#isConnectable()">isConnectable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is connectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#isEdge()">isEdge</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#isVertex()">isVertex</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is a vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#isVisible()">isVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is visibile.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#remove(int)">remove</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the child at the specified index from the child array and
    + returns the child that was removed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#remove(com.mxgraph.model.mxICell)">remove</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given child from the child array and returns it.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#removeEdge(com.mxgraph.model.mxICell, boolean)">removeEdge</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified edge from the edge array and returns the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#removeFromParent()">removeFromParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the cell from its parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#removeFromTerminal(boolean)">removeFromTerminal</A></B>(boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the edge from its source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setAttribute(java.lang.String, java.lang.String)">setAttribute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the specified attribute on the user object if it is an XML node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setCollapsed(boolean)">setCollapsed</A></B>(boolean&nbsp;collapsed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the collapsed state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setConnectable(boolean)">setConnectable</A></B>(boolean&nbsp;connectable)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setEdge(boolean)">setEdge</A></B>(boolean&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setGeometry(com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the object to be used as the geometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setId(java.lang.String)">setId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the Id of the cell to the given string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setParent(com.mxgraph.model.mxICell)">setParent</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the parent cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setSource(com.mxgraph.model.mxICell)">setSource</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setStyle(java.lang.String)">setStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the string to be used as the style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setTarget(com.mxgraph.model.mxICell)">setTarget</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setTerminal(com.mxgraph.model.mxICell, boolean)">setTerminal</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;terminal,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source or target terminal and returns the new terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setValue(java.lang.Object)">setValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the user object of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setVertex(boolean)">setVertex</A></B>(boolean&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCell.html#setVisible(boolean)">setVisible</A></B>(boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the cell is visible.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="id"><!-- --></A><H3>
    +id</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>id</B></PRE>
    +<DL>
    +<DD>Holds the Id. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="value"><!-- --></A><H3>
    +value</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>value</B></PRE>
    +<DL>
    +<DD>Holds the user object. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="geometry"><!-- --></A><H3>
    +geometry</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>geometry</B></PRE>
    +<DL>
    +<DD>Holds the geometry. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="style"><!-- --></A><H3>
    +style</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>style</B></PRE>
    +<DL>
    +<DD>Holds the style as a string of the form
    + stylename[;key=value]. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="vertex"><!-- --></A><H3>
    +vertex</H3>
    +<PRE>
    +protected boolean <B>vertex</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="edge"><!-- --></A><H3>
    +edge</H3>
    +<PRE>
    +protected boolean <B>edge</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="connectable"><!-- --></A><H3>
    +connectable</H3>
    +<PRE>
    +protected boolean <B>connectable</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="visible"><!-- --></A><H3>
    +visible</H3>
    +<PRE>
    +protected boolean <B>visible</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="collapsed"><!-- --></A><H3>
    +collapsed</H3>
    +<PRE>
    +protected boolean <B>collapsed</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="parent"><!-- --></A><H3>
    +parent</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>parent</B></PRE>
    +<DL>
    +<DD>Reference to the parent cell and source and target terminals for edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="source"><!-- --></A><H3>
    +source</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>source</B></PRE>
    +<DL>
    +<DD>Reference to the parent cell and source and target terminals for edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="target"><!-- --></A><H3>
    +target</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>target</B></PRE>
    +<DL>
    +<DD>Reference to the parent cell and source and target terminals for edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="children"><!-- --></A><H3>
    +children</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>children</B></PRE>
    +<DL>
    +<DD>Holds the child cells and connected edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="edges"><!-- --></A><H3>
    +edges</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>edges</B></PRE>
    +<DL>
    +<DD>Holds the child cells and connected edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCell()"><!-- --></A><H3>
    +mxCell</H3>
    +<PRE>
    +public <B>mxCell</B>()</PRE>
    +<DL>
    +<DD>Constructs a new cell with an empty user object.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCell(java.lang.Object)"><!-- --></A><H3>
    +mxCell</H3>
    +<PRE>
    +public <B>mxCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Constructs a new cell for the given user object.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Object that represents the value of the cell.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCell(java.lang.Object, com.mxgraph.model.mxGeometry, java.lang.String)"><!-- --></A><H3>
    +mxCell</H3>
    +<PRE>
    +public <B>mxCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +              <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Constructs a new cell for the given parameters.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Object that represents the value of the cell.<DD><CODE>geometry</CODE> - Specifies the geometry of the cell.<DD><CODE>style</CODE> - Specifies the style as a formatted string.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getId()"><!-- --></A><H3>
    +getId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getId</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getId()">mxICell</A></CODE></B></DD>
    +<DD>Returns the Id of the cell as a string.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getId()">getId</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the Id.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setId(java.lang.String)"><!-- --></A><H3>
    +setId</H3>
    +<PRE>
    +public void <B>setId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setId(java.lang.String)">mxICell</A></CODE></B></DD>
    +<DD>Sets the Id of the cell to the given string.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setId(java.lang.String)">setId</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>id</CODE> - String that represents the new Id.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValue()"><!-- --></A><H3>
    +getValue</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getValue</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getValue()">mxICell</A></CODE></B></DD>
    +<DD>Returns the user object of the cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getValue()">getValue</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the user object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setValue(java.lang.Object)"><!-- --></A><H3>
    +setValue</H3>
    +<PRE>
    +public void <B>setValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setValue(java.lang.Object)">mxICell</A></CODE></B></DD>
    +<DD>Sets the user object of the cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setValue(java.lang.Object)">setValue</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Object that represents the new value.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGeometry()"><!-- --></A><H3>
    +getGeometry</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>getGeometry</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getGeometry()">mxICell</A></CODE></B></DD>
    +<DD>Returns the object that describes the geometry.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getGeometry()">getGeometry</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the cell geometry.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGeometry(com.mxgraph.model.mxGeometry)"><!-- --></A><H3>
    +setGeometry</H3>
    +<PRE>
    +public void <B>setGeometry</B>(<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setGeometry(com.mxgraph.model.mxGeometry)">mxICell</A></CODE></B></DD>
    +<DD>Sets the object to be used as the geometry.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setGeometry(com.mxgraph.model.mxGeometry)">setGeometry</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStyle()"><!-- --></A><H3>
    +getStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStyle</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getStyle()">mxICell</A></CODE></B></DD>
    +<DD>Returns the string that describes the style.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getStyle()">getStyle</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the cell style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyle(java.lang.String)"><!-- --></A><H3>
    +setStyle</H3>
    +<PRE>
    +public void <B>setStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setStyle(java.lang.String)">mxICell</A></CODE></B></DD>
    +<DD>Sets the string to be used as the style.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setStyle(java.lang.String)">setStyle</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertex()"><!-- --></A><H3>
    +isVertex</H3>
    +<PRE>
    +public boolean <B>isVertex</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isVertex()">mxICell</A></CODE></B></DD>
    +<DD>Returns true if the cell is a vertex.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isVertex()">isVertex</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if the cell is a vertex.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVertex(boolean)"><!-- --></A><H3>
    +setVertex</H3>
    +<PRE>
    +public void <B>setVertex</B>(boolean&nbsp;vertex)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdge()"><!-- --></A><H3>
    +isEdge</H3>
    +<PRE>
    +public boolean <B>isEdge</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isEdge()">mxICell</A></CODE></B></DD>
    +<DD>Returns true if the cell is an edge.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isEdge()">isEdge</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if the cell is an edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdge(boolean)"><!-- --></A><H3>
    +setEdge</H3>
    +<PRE>
    +public void <B>setEdge</B>(boolean&nbsp;edge)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConnectable()"><!-- --></A><H3>
    +isConnectable</H3>
    +<PRE>
    +public boolean <B>isConnectable</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isConnectable()">mxICell</A></CODE></B></DD>
    +<DD>Returns true if the cell is connectable.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isConnectable()">isConnectable</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the connectable state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setConnectable(boolean)"><!-- --></A><H3>
    +setConnectable</H3>
    +<PRE>
    +public void <B>setConnectable</B>(boolean&nbsp;connectable)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVisible()"><!-- --></A><H3>
    +isVisible</H3>
    +<PRE>
    +public boolean <B>isVisible</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isVisible()">mxICell</A></CODE></B></DD>
    +<DD>Returns true if the cell is visibile.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isVisible()">isVisible</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the visible state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVisible(boolean)"><!-- --></A><H3>
    +setVisible</H3>
    +<PRE>
    +public void <B>setVisible</B>(boolean&nbsp;visible)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setVisible(boolean)">mxICell</A></CODE></B></DD>
    +<DD>Specifies if the cell is visible.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setVisible(boolean)">setVisible</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>visible</CODE> - Boolean that specifies the new visible state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCollapsed()"><!-- --></A><H3>
    +isCollapsed</H3>
    +<PRE>
    +public boolean <B>isCollapsed</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isCollapsed()">mxICell</A></CODE></B></DD>
    +<DD>Returns true if the cell is collapsed.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#isCollapsed()">isCollapsed</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the collapsed state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCollapsed(boolean)"><!-- --></A><H3>
    +setCollapsed</H3>
    +<PRE>
    +public void <B>setCollapsed</B>(boolean&nbsp;collapsed)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setCollapsed(boolean)">mxICell</A></CODE></B></DD>
    +<DD>Sets the collapsed state.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setCollapsed(boolean)">setCollapsed</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>collapsed</CODE> - Boolean that specifies the new collapsed state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParent()"><!-- --></A><H3>
    +getParent</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getParent</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getParent()">mxICell</A></CODE></B></DD>
    +<DD>Returns the cell's parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getParent()">getParent</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the parent cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setParent(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +setParent</H3>
    +<PRE>
    +public void <B>setParent</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setParent(com.mxgraph.model.mxICell)">mxICell</A></CODE></B></DD>
    +<DD>Sets the parent cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setParent(com.mxgraph.model.mxICell)">setParent</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that represents the new parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSource()"><!-- --></A><H3>
    +getSource</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getSource</B>()</PRE>
    +<DL>
    +<DD>Returns the source terminal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSource(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +setSource</H3>
    +<PRE>
    +public void <B>setSource</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;source)</PRE>
    +<DL>
    +<DD>Sets the source terminal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>source</CODE> - Cell that represents the new source terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTarget()"><!-- --></A><H3>
    +getTarget</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getTarget</B>()</PRE>
    +<DL>
    +<DD>Returns the target terminal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTarget(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +setTarget</H3>
    +<PRE>
    +public void <B>setTarget</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Sets the target terminal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>target</CODE> - Cell that represents the new target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminal(boolean)"><!-- --></A><H3>
    +getTerminal</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getTerminal</B>(boolean&nbsp;source)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getTerminal(boolean)">mxICell</A></CODE></B></DD>
    +<DD>Returns the source or target terminal.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getTerminal(boolean)">getTerminal</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>source</CODE> - Boolean that specifies if the source terminal should be
    + returned.
    +<DT><B>Returns:</B><DD>Returns the source or target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTerminal(com.mxgraph.model.mxICell, boolean)"><!-- --></A><H3>
    +setTerminal</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>setTerminal</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;terminal,
    +                           boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setTerminal(com.mxgraph.model.mxICell, boolean)">mxICell</A></CODE></B></DD>
    +<DD>Sets the source or target terminal and returns the new terminal.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#setTerminal(com.mxgraph.model.mxICell, boolean)">setTerminal</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>terminal</CODE> - Cell that represents the new source or target terminal.<DD><CODE>isSource</CODE> - Boolean that specifies if the source or target terminal
    + should be set.
    +<DT><B>Returns:</B><DD>Returns the new terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildCount()"><!-- --></A><H3>
    +getChildCount</H3>
    +<PRE>
    +public int <B>getChildCount</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getChildCount()">mxICell</A></CODE></B></DD>
    +<DD>Returns the number of child cells.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getChildCount()">getChildCount</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the number of children.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIndex(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +getIndex</H3>
    +<PRE>
    +public int <B>getIndex</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getIndex(com.mxgraph.model.mxICell)">mxICell</A></CODE></B></DD>
    +<DD>Returns the index of the specified child in the child array.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getIndex(com.mxgraph.model.mxICell)">getIndex</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Child whose index should be returned.
    +<DT><B>Returns:</B><DD>Returns the index of the given child.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildAt(int)"><!-- --></A><H3>
    +getChildAt</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getChildAt</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getChildAt(int)">mxICell</A></CODE></B></DD>
    +<DD>Returns the child at the specified index.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getChildAt(int)">getChildAt</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - Integer that specifies the child to be returned.
    +<DT><B>Returns:</B><DD>Returns the child at the given index.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insert(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +insert</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>insert</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell)">mxICell</A></CODE></B></DD>
    +<DD>Appends the specified child into the child array and updates the parent
    + reference of the child. Returns the appended child.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell)">insert</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Cell to be appended to the child array.
    +<DT><B>Returns:</B><DD>Returns the new child.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insert(com.mxgraph.model.mxICell, int)"><!-- --></A><H3>
    +insert</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>insert</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child,
    +                      int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell, int)">mxICell</A></CODE></B></DD>
    +<DD>Inserts the specified child into the child array at the specified index
    + and updates the parent reference of the child. Returns the inserted child.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell, int)">insert</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Cell to be inserted into the child array.<DD><CODE>index</CODE> - Integer that specifies the index at which the child should
    + be inserted into the child array.
    +<DT><B>Returns:</B><DD>Returns the new child.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="remove(int)"><!-- --></A><H3>
    +remove</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>remove</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#remove(int)">mxICell</A></CODE></B></DD>
    +<DD>Removes the child at the specified index from the child array and
    + returns the child that was removed. Will remove the parent reference of
    + the child.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#remove(int)">remove</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - Integer that specifies the index of the child to be
    + removed.
    +<DT><B>Returns:</B><DD>Returns the child that was removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="remove(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +remove</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>remove</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#remove(com.mxgraph.model.mxICell)">mxICell</A></CODE></B></DD>
    +<DD>Removes the given child from the child array and returns it. Will remove
    + the parent reference of the child.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#remove(com.mxgraph.model.mxICell)">remove</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Cell that represents the child to be removed.
    +<DT><B>Returns:</B><DD>Returns the child that was removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeFromParent()"><!-- --></A><H3>
    +removeFromParent</H3>
    +<PRE>
    +public void <B>removeFromParent</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#removeFromParent()">mxICell</A></CODE></B></DD>
    +<DD>Removes the cell from its parent.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#removeFromParent()">removeFromParent</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeCount()"><!-- --></A><H3>
    +getEdgeCount</H3>
    +<PRE>
    +public int <B>getEdgeCount</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getEdgeCount()">mxICell</A></CODE></B></DD>
    +<DD>Returns the number of edges in the edge array.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getEdgeCount()">getEdgeCount</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the number of edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeIndex(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +getEdgeIndex</H3>
    +<PRE>
    +public int <B>getEdgeIndex</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getEdgeIndex(com.mxgraph.model.mxICell)">mxICell</A></CODE></B></DD>
    +<DD>Returns the index of the specified edge in the edge array.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getEdgeIndex(com.mxgraph.model.mxICell)">getEdgeIndex</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell whose index should be returned.
    +<DT><B>Returns:</B><DD>Returns the index of the given edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeAt(int)"><!-- --></A><H3>
    +getEdgeAt</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getEdgeAt</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getEdgeAt(int)">mxICell</A></CODE></B></DD>
    +<DD>Returns the edge at the specified index in the edge array.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#getEdgeAt(int)">getEdgeAt</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - Integer that specifies the index of the edge to be
    + returned.
    +<DT><B>Returns:</B><DD>Returns the edge at the given index.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertEdge(com.mxgraph.model.mxICell, boolean)"><!-- --></A><H3>
    +insertEdge</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>insertEdge</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +                          boolean&nbsp;isOutgoing)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#insertEdge(com.mxgraph.model.mxICell, boolean)">mxICell</A></CODE></B></DD>
    +<DD>Inserts the specified edge into the edge array and returns the edge.
    + Will update the respective terminal reference of the edge.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#insertEdge(com.mxgraph.model.mxICell, boolean)">insertEdge</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell to be inserted into the edge array.<DD><CODE>isOutgoing</CODE> - Boolean that specifies if the edge is outgoing.
    +<DT><B>Returns:</B><DD>Returns the new edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeEdge(com.mxgraph.model.mxICell, boolean)"><!-- --></A><H3>
    +removeEdge</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>removeEdge</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +                          boolean&nbsp;isOutgoing)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#removeEdge(com.mxgraph.model.mxICell, boolean)">mxICell</A></CODE></B></DD>
    +<DD>Removes the specified edge from the edge array and returns the edge.
    + Will remove the respective terminal reference from the edge.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#removeEdge(com.mxgraph.model.mxICell, boolean)">removeEdge</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell to be removed from the edge array.<DD><CODE>isOutgoing</CODE> - Boolean that specifies if the edge is outgoing.
    +<DT><B>Returns:</B><DD>Returns the edge that was removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeFromTerminal(boolean)"><!-- --></A><H3>
    +removeFromTerminal</H3>
    +<PRE>
    +public void <B>removeFromTerminal</B>(boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxICell.html#removeFromTerminal(boolean)">mxICell</A></CODE></B></DD>
    +<DD>Removes the edge from its source or target terminal.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#removeFromTerminal(boolean)">removeFromTerminal</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isSource</CODE> - Boolean that specifies if the edge should be removed
    + from its source or target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAttribute(java.lang.String)"><!-- --></A><H3>
    +getAttribute</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getAttribute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Returns the specified attribute from the user object if it is an XML
    + node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name of the attribute whose value should be returned.
    +<DT><B>Returns:</B><DD>Returns the value of the given attribute or null.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAttribute(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getAttribute</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getAttribute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the specified attribute from the user object if it is an XML
    + node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name of the attribute whose value should be returned.<DD><CODE>defaultValue</CODE> - Default value to use if the attribute has no value.
    +<DT><B>Returns:</B><DD>Returns the value of the given attribute or defaultValue.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAttribute(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +setAttribute</H3>
    +<PRE>
    +public void <B>setAttribute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the specified attribute on the user object if it is an XML node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name of the attribute whose value should be set.<DD><CODE>value</CODE> - New value of the attribute.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clone()"><!-- --></A><H3>
    +clone</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>clone</B>()
    +             throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></PRE>
    +<DL>
    +<DD>Returns a clone of the cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxICell.html#clone()">clone</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a clone of this cell.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneValue()"><!-- --></A><H3>
    +cloneValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cloneValue</B>()</PRE>
    +<DL>
    +<DD>Returns a clone of the user object. This implementation clones any XML
    + nodes or otherwise returns the same user object instance.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCell.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxCell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxCellPath.html b/java/docs/com/mxgraph/model/mxCellPath.html
    new file mode 100644
    index 000000000..0fe2302da
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxCellPath.html
    @@ -0,0 +1,375 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxCellPath (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellPath (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellPath.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxCellPath.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellPath.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxCellPath</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxCellPath</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellPath</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a mechanism for temporary cell Ids.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCellPath.html#PATH_SEPARATOR">PATH_SEPARATOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the separator between the path components.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCellPath.html#mxCellPath()">mxCellPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCellPath.html#compare(java.lang.String, java.lang.String)">compare</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;cp1,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;cp2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compares the given cell paths and returns -1 if cp1 is smaller, 0 if
    + cp1 is equal and 1 if cp1 is greater than cp2.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCellPath.html#create(com.mxgraph.model.mxICell)">create</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the cell path for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCellPath.html#getParentPath(java.lang.String)">getParentPath</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;path)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the path for the parent of the cell represented by the given
    + path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxCellPath.html#resolve(com.mxgraph.model.mxICell, java.lang.String)">resolve</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;root,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;path)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell for the specified cell path using the given root as the
    + root of the path.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="PATH_SEPARATOR"><!-- --></A><H3>
    +PATH_SEPARATOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PATH_SEPARATOR</B></PRE>
    +<DL>
    +<DD>Defines the separator between the path components. Default is
    + <code>.</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellPath()"><!-- --></A><H3>
    +mxCellPath</H3>
    +<PRE>
    +public <B>mxCellPath</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="create(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +create</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>create</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Creates the cell path for the given cell. The cell path is a
    + concatenation of the indices of all cells on the (finite) path to
    + the root, eg. "0.0.0.1".
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose path should be returned.
    +<DT><B>Returns:</B><DD>Returns the string that represents the path.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParentPath(java.lang.String)"><!-- --></A><H3>
    +getParentPath</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getParentPath</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;path)</PRE>
    +<DL>
    +<DD>Returns the path for the parent of the cell represented by the given
    + path. Returns null if the given path has no parent.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>path</CODE> - Path whose parent path should be returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="resolve(com.mxgraph.model.mxICell, java.lang.String)"><!-- --></A><H3>
    +resolve</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>resolve</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;root,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;path)</PRE>
    +<DL>
    +<DD>Returns the cell for the specified cell path using the given root as the
    + root of the path.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>root</CODE> - Root cell of the path to be resolved.<DD><CODE>path</CODE> - String that defines the path.
    +<DT><B>Returns:</B><DD>Returns the cell that is defined by the path.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="compare(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +compare</H3>
    +<PRE>
    +public static int <B>compare</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;cp1,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;cp2)</PRE>
    +<DL>
    +<DD>Compares the given cell paths and returns -1 if cp1 is smaller, 0 if
    + cp1 is equal and 1 if cp1 is greater than cp2.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellPath.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxCellPath.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellPath.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGeometry.html b/java/docs/com/mxgraph/model/mxGeometry.html
    new file mode 100644
    index 000000000..e1ac07802
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGeometry.html
    @@ -0,0 +1,875 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGeometry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGeometry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGeometry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGeometry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGeometry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGeometry</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">com.mxgraph.util.mxPoint</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">com.mxgraph.util.mxRectangle</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGeometry</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGeometry</B><DT>extends <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></DL>
    +</PRE>
    +
    +<P>
    +Represents the geometry of a cell. For vertices, the geometry consists
    + of the x- and y-location, as well as the width and height. For edges,
    + the geometry either defines the source- and target-terminal, or it
    + defines the respective terminal points.
    + 
    + For edges, if the geometry is relative (default), then the x-coordinate
    + is used to describe the distance from the center of the edge from -1 to 1
    + with 0 being the center of the edge and the default value, and the
    + y-coordinate is used to describe the absolute, orthogonal distance in
    + pixels from that point. In addition, the offset is used as an absolute
    + offset vector from the resulting point.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.model.mxGeometry">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#alternateBounds">alternateBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores alternate values for x, y, width and height in a rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#offset">offset</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the offset of the label for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#points">points</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List of mxPoints which specifies the control points along the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#relative">relative</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the coordinates in the geometry are to be interpreted as
    + relative coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#sourcePoint">sourcePoint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the source- and target-point of the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#targetPoint">targetPoint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the source- and target-point of the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#TRANSLATE_CONTROL_POINTS">TRANSLATE_CONTROL_POINTS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Global switch to translate the points in translate.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxRectangle"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxRectangle.html#height">height</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#width">width</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxPoint"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#x">x</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#y">y</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#mxGeometry()">mxGeometry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new geometry at (0, 0) with the width and height set to 0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#mxGeometry(double, double, double, double)">mxGeometry</A></B>(double&nbsp;x,
    +           double&nbsp;y,
    +           double&nbsp;width,
    +           double&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a geometry using the given parameters.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#clone()">clone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a clone of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#getAlternateBounds()">getAlternateBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the alternate bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#getOffset()">getOffset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#getPoints()">getPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the list of control points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#getSourcePoint()">getSourcePoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the source point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#getTargetPoint()">getTargetPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the target point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#getTerminalPoint(boolean)">getTerminalPoint</A></B>(boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point representing the source or target point of this edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#isRelative()">isRelative</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true of the geometry is relative.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#setAlternateBounds(com.mxgraph.util.mxRectangle)">setAlternateBounds</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the alternate bounds to the given rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#setOffset(com.mxgraph.util.mxPoint)">setOffset</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;offset)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the offset to the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#setPoints(java.util.List)">setPoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the list of control points to the given list.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#setRelative(boolean)">setRelative</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the relative state of the geometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#setSourcePoint(com.mxgraph.util.mxPoint)">setSourcePoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;sourcePoint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#setTargetPoint(com.mxgraph.util.mxPoint)">setTargetPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;targetPoint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the target point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#setTerminalPoint(com.mxgraph.util.mxPoint, boolean)">setTerminalPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                 boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the sourcePoint or targetPoint to the given point and returns the
    + new point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#swap()">swap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Swaps the x, y, width and height with the values stored in
    + alternateBounds and puts the previous values into alternateBounds as
    + a rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGeometry.html#translate(double, double)">translate</A></B>(double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Translates the geometry by the specified amount.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxRectangle"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxRectangle.html#add(com.mxgraph.util.mxRectangle)">add</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#contains(double, double)">contains</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getCenterX()">getCenterX</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getCenterY()">getCenterY</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getHeight()">getHeight</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getRectangle()">getRectangle</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getWidth()">getWidth</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#grow(double)">grow</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#intersectLine(double, double, double, double)">intersectLine</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#setHeight(double)">setHeight</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#setRect(double, double, double, double)">setRect</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#setWidth(double)">setWidth</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#toString()">toString</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxPoint"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#getPoint()">getPoint</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#getX()">getX</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#getY()">getY</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#setX(double)">setX</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#setY(double)">setY</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="TRANSLATE_CONTROL_POINTS"><!-- --></A><H3>
    +TRANSLATE_CONTROL_POINTS</H3>
    +<PRE>
    +public static transient boolean <B>TRANSLATE_CONTROL_POINTS</B></PRE>
    +<DL>
    +<DD>Global switch to translate the points in translate. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="alternateBounds"><!-- --></A><H3>
    +alternateBounds</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>alternateBounds</B></PRE>
    +<DL>
    +<DD>Stores alternate values for x, y, width and height in a rectangle.
    + Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="sourcePoint"><!-- --></A><H3>
    +sourcePoint</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>sourcePoint</B></PRE>
    +<DL>
    +<DD>Defines the source- and target-point of the edge. This is used if the
    + corresponding edge does not have a source vertex. Otherwise it is
    + ignored. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="targetPoint"><!-- --></A><H3>
    +targetPoint</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>targetPoint</B></PRE>
    +<DL>
    +<DD>Defines the source- and target-point of the edge. This is used if the
    + corresponding edge does not have a source vertex. Otherwise it is
    + ignored. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="points"><!-- --></A><H3>
    +points</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>points</B></PRE>
    +<DL>
    +<DD>List of mxPoints which specifies the control points along the edge.
    + These points are the intermediate points on the edge, for the endpoints
    + use targetPoint and sourcePoint or set the terminals of the edge to
    + a non-null value. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="offset"><!-- --></A><H3>
    +offset</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>offset</B></PRE>
    +<DL>
    +<DD>Holds the offset of the label for edges. This is the absolute vector
    + between the center of the edge and the top, left point of the label.
    + Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="relative"><!-- --></A><H3>
    +relative</H3>
    +<PRE>
    +protected boolean <B>relative</B></PRE>
    +<DL>
    +<DD>Specifies if the coordinates in the geometry are to be interpreted as
    + relative coordinates. Default is false. This is used to mark a geometry
    + with an x- and y-coordinate that is used to describe an edge label
    + position, or a relative location with respect to a parent cell's
    + width and height.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGeometry()"><!-- --></A><H3>
    +mxGeometry</H3>
    +<PRE>
    +public <B>mxGeometry</B>()</PRE>
    +<DL>
    +<DD>Constructs a new geometry at (0, 0) with the width and height set to 0.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGeometry(double, double, double, double)"><!-- --></A><H3>
    +mxGeometry</H3>
    +<PRE>
    +public <B>mxGeometry</B>(double&nbsp;x,
    +                  double&nbsp;y,
    +                  double&nbsp;width,
    +                  double&nbsp;height)</PRE>
    +<DL>
    +<DD>Constructs a geometry using the given parameters.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - X-coordinate of the new geometry.<DD><CODE>y</CODE> - Y-coordinate of the new geometry.<DD><CODE>width</CODE> - Width of the new geometry.<DD><CODE>height</CODE> - Height of the new geometry.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getAlternateBounds()"><!-- --></A><H3>
    +getAlternateBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getAlternateBounds</B>()</PRE>
    +<DL>
    +<DD>Returns the alternate bounds.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAlternateBounds(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +setAlternateBounds</H3>
    +<PRE>
    +public void <B>setAlternateBounds</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Sets the alternate bounds to the given rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rect</CODE> - Rectangle to be used for the alternate bounds.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSourcePoint()"><!-- --></A><H3>
    +getSourcePoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getSourcePoint</B>()</PRE>
    +<DL>
    +<DD>Returns the source point.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the source point.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSourcePoint(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setSourcePoint</H3>
    +<PRE>
    +public void <B>setSourcePoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;sourcePoint)</PRE>
    +<DL>
    +<DD>Sets the source point.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sourcePoint</CODE> - Source point to be used.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTargetPoint()"><!-- --></A><H3>
    +getTargetPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getTargetPoint</B>()</PRE>
    +<DL>
    +<DD>Returns the target point.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the target point.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTargetPoint(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setTargetPoint</H3>
    +<PRE>
    +public void <B>setTargetPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;targetPoint)</PRE>
    +<DL>
    +<DD>Sets the target point.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>targetPoint</CODE> - Target point to be used.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPoints()"><!-- --></A><H3>
    +getPoints</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>getPoints</B>()</PRE>
    +<DL>
    +<DD>Returns the list of control points.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPoints(java.util.List)"><!-- --></A><H3>
    +setPoints</H3>
    +<PRE>
    +public void <B>setPoints</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the list of control points to the given list.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - List that contains the new control points.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOffset()"><!-- --></A><H3>
    +getOffset</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getOffset</B>()</PRE>
    +<DL>
    +<DD>Returns the offset.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOffset(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setOffset</H3>
    +<PRE>
    +public void <B>setOffset</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;offset)</PRE>
    +<DL>
    +<DD>Sets the offset to the given point.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>offset</CODE> - Point to be used for the offset.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isRelative()"><!-- --></A><H3>
    +isRelative</H3>
    +<PRE>
    +public boolean <B>isRelative</B>()</PRE>
    +<DL>
    +<DD>Returns true of the geometry is relative.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRelative(boolean)"><!-- --></A><H3>
    +setRelative</H3>
    +<PRE>
    +public void <B>setRelative</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the relative state of the geometry.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Boolean value to be used as the new relative state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="swap()"><!-- --></A><H3>
    +swap</H3>
    +<PRE>
    +public void <B>swap</B>()</PRE>
    +<DL>
    +<DD>Swaps the x, y, width and height with the values stored in
    + alternateBounds and puts the previous values into alternateBounds as
    + a rectangle. This operation is carried-out in-place, that is, using the
    + existing geometry instance. If this operation is called during a graph
    + model transactional change, then the geometry should be cloned before
    + calling this method and setting the geometry of the cell using
    + mxGraphModel.setGeometry.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminalPoint(boolean)"><!-- --></A><H3>
    +getTerminalPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getTerminalPoint</B>(boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD>Returns the point representing the source or target point of this edge.
    + This is only used if the edge has no source or target vertex.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isSource</CODE> - Boolean that specifies if the source or target point
    + should be returned.
    +<DT><B>Returns:</B><DD>Returns the source or target point.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTerminalPoint(com.mxgraph.util.mxPoint, boolean)"><!-- --></A><H3>
    +setTerminalPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>setTerminalPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                                boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD>Sets the sourcePoint or targetPoint to the given point and returns the
    + new point.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>point</CODE> - Point to be used as the new source or target point.<DD><CODE>isSource</CODE> - Boolean that specifies if the source or target point
    + should be set.
    +<DT><B>Returns:</B><DD>Returns the new point.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="translate(double, double)"><!-- --></A><H3>
    +translate</H3>
    +<PRE>
    +public void <B>translate</B>(double&nbsp;dx,
    +                      double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Translates the geometry by the specified amount. That is, x and y of the
    + geometry, the sourcePoint, targetPoint and all elements of points are
    + translated by the given amount. X and y are only translated if the
    + geometry is not relative. If TRANSLATE_CONTROL_POINTS is false, then
    + are not modified by this function.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dx</CODE> - Integer that specifies the x-coordinate of the translation.<DD><CODE>dy</CODE> - Integer that specifies the y-coordinate of the translation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clone()"><!-- --></A><H3>
    +clone</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>clone</B>()</PRE>
    +<DL>
    +<DD>Returns a clone of the cell.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxRectangle.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGeometry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGeometry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGeometry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.Filter.html b/java/docs/com/mxgraph/model/mxGraphModel.Filter.html
    new file mode 100644
    index 000000000..5869f3578
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.Filter.html
    @@ -0,0 +1,210 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel.Filter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel.Filter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.Filter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.Filter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.Filter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Interface mxGraphModel.Filter</H2>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static interface <B>mxGraphModel.Filter</B></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html#filter(java.lang.Object)">filter</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="filter(java.lang.Object)"><!-- --></A><H3>
    +filter</H3>
    +<PRE>
    +boolean <B>filter</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.Filter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.Filter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.Filter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.html b/java/docs/com/mxgraph/model/mxGraphModel.html
    new file mode 100644
    index 000000000..cfa37bcb2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.html
    @@ -0,0 +1,2924 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGraphModel</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGraphModel</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphModel</B><DT>extends <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A><DT>implements <A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DL>
    +</PRE>
    +
    +<P>
    +Extends mxEventSource to implement a graph model. The graph model acts as
    + a wrapper around the cells which are in charge of storing the actual graph
    + datastructure. The model acts as a transactional wrapper with event
    + notification for all changes, whereas the cells contain the atomic
    + operations for updating the actual datastructure.
    + 
    + Layers:
    + 
    + The cell hierarchy in the model must have a top-level root cell which
    + contains the layers (typically one default layer), which in turn contain the
    + top-level cells of the layers. This means each cell is contained in a layer.
    + If no layers are required, then all new cells should be added to the default
    + layer.
    + 
    + Layers are useful for hiding and showing groups of cells, or for placing
    + groups of cells on top of other cells in the display. To identify a layer,
    + the <isLayer> function is used. It returns true if the parent of the given
    + cell is the root of the model.
    + 
    + This class fires the following events:
    + 
    + mxEvent.CHANGE fires when an undoable edit is dispatched. The <code>edit</code>
    + property contains the mxUndoableEdit. The <code>changes</code> property
    + contains the list of undoable changes inside the undoable edit. The changes
    + property is deprecated, please use edit.getChanges() instead.
    + 
    + mxEvent.EXECUTE fires between begin- and endUpdate and after an atomic
    + change was executed in the model. The <code>change</code> property contains
    + the atomic change that was executed.
    + 
    + mxEvent.BEGIN_UPDATE fires after the updateLevel was incremented in
    + beginUpdate. This event contains no properties.
    + 
    + mxEvent.END_UPDATE fires after the updateLevel was decreased in endUpdate
    + but before any notification or change dispatching. The <code>edit</code>
    + property contains the current mxUndoableEdit.
    + 
    + mxEvent.BEFORE_UNDO fires before the change is dispatched after the update
    + level has reached 0 in endUpdate. The <code>edit</code> property contains
    + the current mxUndoableEdit.
    + 
    + mxEvent.UNDO fires after the change was dispatched in endUpdate. The
    + <code>edit</code> property contains the current mxUndoableEdit.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.model.mxGraphModel">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_com.mxgraph.model.mxIGraphModel"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from interface com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#cells">cells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from Ids to cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#createIds">createIds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the model should automatically create Ids for new cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#currentEdit">currentEdit</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the changes for the current transaction.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#endingUpdate">endingUpdate</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#maintainEdgeParent">maintainEdgeParent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edges should automatically be moved into the nearest common
    + ancestor of their terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#nextId">nextId</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the next Id to be created.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#root">root</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the root cell, which in turn contains the cells that represent the
    + layers of the diagram as child cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#updateLevel">updateLevel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Counter for the depth of nested transactions.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#mxGraphModel()">mxGraphModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new empty graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#mxGraphModel(java.lang.Object)">mxGraphModel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#add(java.lang.Object, java.lang.Object, int)">add</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child,
    +    int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified child to the parent at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#beginUpdate()">beginUpdate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Increments the updateLevel by one.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#cellAdded(java.lang.Object)">cellAdded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked after a cell has been added to a parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#cellRemoved(java.lang.Object)">cellRemoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked after a cell has been removed from the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#clear()">clear</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets a new root using createRoot.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#cloneCell(java.lang.Object, java.util.Map, boolean)">cloneCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;mapping,
    +          boolean&nbsp;includeChildren)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner helper method for cloning cells recursively.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#cloneCells(java.lang.Object[], boolean)">cloneCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +           boolean&nbsp;includeChildren)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of clones for the given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#collapsedStateForCellChanged(java.lang.Object, boolean)">collapsedStateForCellChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                             boolean&nbsp;collapsed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner callback to update the collapsed state of the
    + given mxCell using mxCell.setCollapsed and return
    + the previous collapsed state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#contains(java.lang.Object)">contains</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the model contains the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#createId(java.lang.Object)">createId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new Id for the given cell and increments the global counter
    + for creating new Ids.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#createRoot()">createRoot</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new root cell with a default layer (child 0).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#createUndoableEdit()">createUndoableEdit</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new undoable edit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#endUpdate()">endUpdate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decrements the updateLevel by one and fires a notification event if the
    + updateLevel reaches 0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#execute(com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange)">execute</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>&nbsp;change)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the given atomic change and adds it to the current edit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#filterCells(java.lang.Object[], com.mxgraph.model.mxGraphModel.Filter)">filterCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +            <A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter)">filterDescendants</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a collection of cells using the visitor pattern.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter, java.lang.Object)">filterDescendants</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a collection of cells using the visitor pattern.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#geometryForCellChanged(java.lang.Object, com.mxgraph.model.mxGeometry)">geometryForCellChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                       <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner callback to update the mxGeometry of the given mxCell using
    + mxCell.setGeometry and return the previous mxGeometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getCell(java.lang.String)">getCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell for the specified Id or null if no cell can be
    + found for the given Id.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getCells()">getCells</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the internal lookup table that is used to map from Ids to cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getChildAt(java.lang.Object, int)">getChildAt</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +           int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child of the given parent at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getChildCells(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, boolean)">getChildCells</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +              boolean&nbsp;vertices,
    +              boolean&nbsp;edges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the children of the given cell that are vertices and/or edges
    + depending on the arguments.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getChildCount(java.lang.Object)">getChildCount</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of children in the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getChildEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getChildEdges</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child edges of the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getChildren(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getChildren</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all children of the given cell regardless of their type.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getChildVertices(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getChildVertices</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child vertices of the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getConnections(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getConnections</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all edges connected to this cell without loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getDescendants(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getDescendants</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a all descendants of the given cell and the cell itself
    + as a collection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getDirectedEdgeCount(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean)">getDirectedEdgeCount</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     boolean&nbsp;outgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of incoming or outgoing edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getDirectedEdgeCount(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, java.lang.Object)">getDirectedEdgeCount</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     boolean&nbsp;outgoing,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;ignoredEdge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of incoming or outgoing edges, ignoring the given
    + edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getEdgeAt(java.lang.Object, int)">getEdgeAt</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +          int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edge of cell at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getEdgeCount(java.lang.Object)">getEdgeCount</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of distinct edges connected to the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getEdges</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all edges connected to this cell including loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, boolean, boolean)">getEdges</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         boolean&nbsp;incoming,
    +         boolean&nbsp;outgoing,
    +         boolean&nbsp;includeLoops)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all distinct edges connected to this cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getEdgesBetween(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object)">getEdgesBetween</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all edges from the given source to the given target.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getEdgesBetween(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object, boolean)">getEdgesBetween</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                boolean&nbsp;directed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all edges between the given source and target pair.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getGeometry(java.lang.Object)">getGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the geometry of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getIncomingEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getIncomingEdges</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the incoming edges of the given cell without loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getNearestCommonAncestor(java.lang.Object, java.lang.Object)">getNearestCommonAncestor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell1,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the nearest common ancestor for the specified cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getOpposites(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.Object)">getOpposites</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all opposite cells of terminal for the given edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getOpposites(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.Object, boolean, boolean)">getOpposites</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +             boolean&nbsp;sources,
    +             boolean&nbsp;targets)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all opposite vertices wrt terminal for the given edges, only
    + returning sources and/or targets as specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getOrigin(java.lang.Object)">getOrigin</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute, accumulated origin for the children inside the
    + given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getOutgoingEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)">getOutgoingEdges</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the outgoing edges of the given cell without loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getParent(java.lang.Object)">getParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the parent of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getParents(com.mxgraph.model.mxIGraphModel, java.lang.Object[])">getParents</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getRoot()">getRoot</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the root of the model or the topmost parent of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getStyle(java.lang.Object)">getStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the style of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getTerminal(java.lang.Object, boolean)">getTerminal</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the source or target terminal of the given edge depending on the
    + value of the boolean parameter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getTopmostCells(com.mxgraph.model.mxIGraphModel, java.lang.Object[])">getTopmostCells</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: getTopmostCells
    + 
    + Returns the topmost cells of the hierarchy in an array that contains no
    + desceandants for each <mxCell> that it contains.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getUpdateLevel()">getUpdateLevel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#getValue(java.lang.Object)">getValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the user object of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#isAncestor(java.lang.Object, java.lang.Object)">isAncestor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given parent is an ancestor of the given child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#isCollapsed(java.lang.Object)">isCollapsed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#isConnectable(java.lang.Object)">isConnectable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is connectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#isCreateIds()">isCreateIds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the model automatically creates Ids and resolves Id
    + collisions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#isEdge(java.lang.Object)">isEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#isMaintainEdgeParent()">isMaintainEdgeParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the model automatically update parents of edges so that
    + the edge is contained in the nearest-common-ancestor of its terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#isVertex(java.lang.Object)">isVertex</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is a vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#isVisible(java.lang.Object)">isVisible</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is visible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#mergeChildren(com.mxgraph.model.mxICell, com.mxgraph.model.mxICell, boolean)">mergeChildren</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;from,
    +              <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;to,
    +              boolean&nbsp;cloneAllEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Merges the children of the given cell into the given target cell inside
    + this model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#mergeChildrenImpl(com.mxgraph.model.mxICell, com.mxgraph.model.mxICell, boolean, java.util.Hashtable)">mergeChildrenImpl</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;from,
    +                  <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;to,
    +                  boolean&nbsp;cloneAllEdges,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clones the children of the source cell into the given target cell in
    + this model and adds an entry to the mapping that maps from the source
    + cell to the target cell with the same id or the clone of the source cell
    + that was inserted into this model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#parentForCellChanged(java.lang.Object, java.lang.Object, int)">parentForCellChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                     int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner callback to update the parent of a cell using mxCell.insert
    + on the parent and return the previous parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#remove(java.lang.Object)">remove</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified cell from the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#restoreClone(java.lang.Object, java.lang.Object, java.util.Map)">restoreClone</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;clone,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;mapping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner helper method for restoring the connections in
    + a network of cloned cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#rootChanged(java.lang.Object)">rootChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner callback to change the root of the model and update the internal
    + datastructures, such as cells and nextId.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setCollapsed(java.lang.Object, boolean)">setCollapsed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +             boolean&nbsp;collapsed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the collapsed state of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setCreateIds(boolean)">setCreateIds</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the model automatically creates Ids for new cells and
    + resolves Id collisions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the geometry of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setMaintainEdgeParent(boolean)">setMaintainEdgeParent</A></B>(boolean&nbsp;maintainEdgeParent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the model automatically updates parents of edges so that
    + the edge is contained in the nearest-common-ancestor of its terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setRoot(java.lang.Object)">setRoot</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the root of the model and resets all structures.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setStyle(java.lang.Object, java.lang.String)">setStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the style of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setTerminal(java.lang.Object, java.lang.Object, boolean)">setTerminal</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source or target terminal of the given edge using.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setTerminals(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object, java.lang.Object)">setTerminals</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source and target of the given edge in a single atomic change.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setValue(java.lang.Object, java.lang.Object)">setValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the user object of then given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#setVisible(java.lang.Object, boolean)">setVisible</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +           boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the visible state of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#styleForCellChanged(java.lang.Object, java.lang.String)">styleForCellChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner callback to update the style of the given mxCell
    + using mxCell.setStyle and return the previous style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#terminalForCellChanged(java.lang.Object, java.lang.Object, boolean)">terminalForCellChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                       boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner helper function to update the terminal of the edge using
    + mxCell.insertEdge and return the previous terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#updateEdgeParent(java.lang.Object, java.lang.Object)">updateEdgeParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner helper method to update the parent of the specified edge to the
    + nearest-common-ancestor of its two terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#updateEdgeParents(java.lang.Object)">updateEdgeParents</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the parents of the edges connected to the given cell and all its
    + descendants so that each edge is contained in the nearest common
    + ancestor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#updateEdgeParents(java.lang.Object, java.lang.Object)">updateEdgeParents</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the parents of the edges connected to the given cell and all its
    + descendants so that the edge is contained in the nearest-common-ancestor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#valueForCellChanged(java.lang.Object, java.lang.Object)">valueForCellChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner callback to update the user object of the given mxCell
    + using mxCell.setValue and return the previous value,
    + that is, the return value of mxCell.getValue.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html#visibleStateForCellChanged(java.lang.Object, boolean)">visibleStateForCellChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                           boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the visible state of the given mxCell using mxVisibleChange and
    + adds the change to the current transaction.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.model.mxIGraphModel"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from interface com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="root"><!-- --></A><H3>
    +root</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>root</B></PRE>
    +<DL>
    +<DD>Holds the root cell, which in turn contains the cells that represent the
    + layers of the diagram as child cells. That is, the actual element of the
    + diagram are supposed to live in the third generation of cells and below.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cells"><!-- --></A><H3>
    +cells</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>cells</B></PRE>
    +<DL>
    +<DD>Maps from Ids to cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maintainEdgeParent"><!-- --></A><H3>
    +maintainEdgeParent</H3>
    +<PRE>
    +protected boolean <B>maintainEdgeParent</B></PRE>
    +<DL>
    +<DD>Specifies if edges should automatically be moved into the nearest common
    + ancestor of their terminals. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="createIds"><!-- --></A><H3>
    +createIds</H3>
    +<PRE>
    +protected boolean <B>createIds</B></PRE>
    +<DL>
    +<DD>Specifies if the model should automatically create Ids for new cells.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="nextId"><!-- --></A><H3>
    +nextId</H3>
    +<PRE>
    +protected int <B>nextId</B></PRE>
    +<DL>
    +<DD>Specifies the next Id to be created. Initial value is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentEdit"><!-- --></A><H3>
    +currentEdit</H3>
    +<PRE>
    +protected transient <A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A> <B>currentEdit</B></PRE>
    +<DL>
    +<DD>Holds the changes for the current transaction. If the transaction is
    + closed then a new object is created for this variable using
    + createUndoableEdit.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="updateLevel"><!-- --></A><H3>
    +updateLevel</H3>
    +<PRE>
    +protected transient int <B>updateLevel</B></PRE>
    +<DL>
    +<DD>Counter for the depth of nested transactions. Each call to beginUpdate
    + increments this counter and each call to endUpdate decrements it. When
    + the counter reaches 0, the transaction is closed and the respective
    + events are fired. Initial value is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="endingUpdate"><!-- --></A><H3>
    +endingUpdate</H3>
    +<PRE>
    +protected transient boolean <B>endingUpdate</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphModel()"><!-- --></A><H3>
    +mxGraphModel</H3>
    +<PRE>
    +public <B>mxGraphModel</B>()</PRE>
    +<DL>
    +<DD>Constructs a new empty graph model.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel(java.lang.Object)"><!-- --></A><H3>
    +mxGraphModel</H3>
    +<PRE>
    +public <B>mxGraphModel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +<DD>Constructs a new graph model. If no root is specified
    + then a new root mxCell with a default layer is created.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>root</CODE> - Cell that represents the root cell.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="clear()"><!-- --></A><H3>
    +clear</H3>
    +<PRE>
    +public void <B>clear</B>()</PRE>
    +<DL>
    +<DD>Sets a new root using createRoot.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getUpdateLevel()"><!-- --></A><H3>
    +getUpdateLevel</H3>
    +<PRE>
    +public int <B>getUpdateLevel</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createRoot()"><!-- --></A><H3>
    +createRoot</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>createRoot</B>()</PRE>
    +<DL>
    +<DD>Creates a new root cell with a default layer (child 0).
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCells()"><!-- --></A><H3>
    +getCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getCells</B>()</PRE>
    +<DL>
    +<DD>Returns the internal lookup table that is used to map from Ids to cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell(java.lang.String)"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
    +<DL>
    +<DD>Returns the cell for the specified Id or null if no cell can be
    + found for the given Id.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>id</CODE> - A string representing the Id of the cell.
    +<DT><B>Returns:</B><DD>Returns the cell for the given Id.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isMaintainEdgeParent()"><!-- --></A><H3>
    +isMaintainEdgeParent</H3>
    +<PRE>
    +public boolean <B>isMaintainEdgeParent</B>()</PRE>
    +<DL>
    +<DD>Returns true if the model automatically update parents of edges so that
    + the edge is contained in the nearest-common-ancestor of its terminals.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if the model maintains edge parents.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMaintainEdgeParent(boolean)"><!-- --></A><H3>
    +setMaintainEdgeParent</H3>
    +<PRE>
    +public void <B>setMaintainEdgeParent</B>(boolean&nbsp;maintainEdgeParent)</PRE>
    +<DL>
    +<DD>Specifies if the model automatically updates parents of edges so that
    + the edge is contained in the nearest-common-ancestor of its terminals.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>maintainEdgeParent</CODE> - Boolean indicating if the model should
    + maintain edge parents.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCreateIds()"><!-- --></A><H3>
    +isCreateIds</H3>
    +<PRE>
    +public boolean <B>isCreateIds</B>()</PRE>
    +<DL>
    +<DD>Returns true if the model automatically creates Ids and resolves Id
    + collisions.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if the model creates Ids.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCreateIds(boolean)"><!-- --></A><H3>
    +setCreateIds</H3>
    +<PRE>
    +public void <B>setCreateIds</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Specifies if the model automatically creates Ids for new cells and
    + resolves Id collisions.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Boolean indicating if the model should created Ids.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRoot()"><!-- --></A><H3>
    +getRoot</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getRoot</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getRoot()">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the root of the model or the topmost parent of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getRoot()">getRoot</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the root cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRoot(java.lang.Object)"><!-- --></A><H3>
    +setRoot</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>setRoot</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setRoot(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Sets the root of the model and resets all structures.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setRoot(java.lang.Object)">setRoot</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>root</CODE> - Cell that specifies the new root.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="rootChanged(java.lang.Object)"><!-- --></A><H3>
    +rootChanged</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>rootChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +<DD>Inner callback to change the root of the model and update the internal
    + datastructures, such as cells and nextId. Returns the previous root.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createUndoableEdit()"><!-- --></A><H3>
    +createUndoableEdit</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A> <B>createUndoableEdit</B>()</PRE>
    +<DL>
    +<DD>Creates a new undoable edit.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneCells(java.lang.Object[], boolean)"><!-- --></A><H3>
    +cloneCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>cloneCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                           boolean&nbsp;includeChildren)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#cloneCells(java.lang.Object[], boolean)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns an array of clones for the given array of cells.
    + Depending on the value of includeChildren, a deep clone is created for
    + each cell. Connections are restored based if the corresponding
    + cell is contained in the passed in array.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#cloneCells(java.lang.Object[], boolean)">cloneCells</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to be cloned.<DD><CODE>includeChildren</CODE> - Boolean indicating if the cells should be cloned
    + with all descendants.
    +<DT><B>Returns:</B><DD>Returns a cloned array of cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneCell(java.lang.Object, java.util.Map, boolean)"><!-- --></A><H3>
    +cloneCell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cloneCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;mapping,
    +                           boolean&nbsp;includeChildren)
    +                    throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></PRE>
    +<DL>
    +<DD>Inner helper method for cloning cells recursively.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="restoreClone(java.lang.Object, java.lang.Object, java.util.Map)"><!-- --></A><H3>
    +restoreClone</H3>
    +<PRE>
    +protected void <B>restoreClone</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;clone,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;mapping)</PRE>
    +<DL>
    +<DD>Inner helper method for restoring the connections in
    + a network of cloned cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAncestor(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +isAncestor</H3>
    +<PRE>
    +public boolean <B>isAncestor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isAncestor(java.lang.Object, java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns true if the given parent is an ancestor of the given child.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isAncestor(java.lang.Object, java.lang.Object)">isAncestor</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent.<DD><CODE>child</CODE> - Cell that specifies the child.
    +<DT><B>Returns:</B><DD>Returns true if child is an ancestor of parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="contains(java.lang.Object)"><!-- --></A><H3>
    +contains</H3>
    +<PRE>
    +public boolean <B>contains</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#contains(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns true if the model contains the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#contains(java.lang.Object)">contains</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell to be checked.
    +<DT><B>Returns:</B><DD>Returns true if the cell is in the model.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParent(java.lang.Object)"><!-- --></A><H3>
    +getParent</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getParent(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the parent of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getParent(java.lang.Object)">getParent</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Cell whose parent should be returned.
    +<DT><B>Returns:</B><DD>Returns the parent of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="add(java.lang.Object, java.lang.Object, int)"><!-- --></A><H3>
    +add</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>add</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child,
    +                  int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#add(java.lang.Object, java.lang.Object, int)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Adds the specified child to the parent at the given index. If no index
    + is specified then the child is appended to the parent's array of
    + children.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#add(java.lang.Object, java.lang.Object, int)">add</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent to contain the child.<DD><CODE>child</CODE> - Cell that specifies the child to be inserted.<DD><CODE>index</CODE> - Integer that specifies the index of the child.
    +<DT><B>Returns:</B><DD>Returns the inserted child.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellAdded(java.lang.Object)"><!-- --></A><H3>
    +cellAdded</H3>
    +<PRE>
    +protected void <B>cellAdded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Invoked after a cell has been added to a parent. This recursively
    + creates an Id for the new cell and/or resolves Id collisions.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that has been added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createId(java.lang.Object)"><!-- --></A><H3>
    +createId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>createId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Creates a new Id for the given cell and increments the global counter
    + for creating new Ids.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell for which a new Id should be created.
    +<DT><B>Returns:</B><DD>Returns a new Id for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="remove(java.lang.Object)"><!-- --></A><H3>
    +remove</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>remove</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#remove(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Removes the specified cell from the model. This operation will remove
    + the cell and all of its children from the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#remove(java.lang.Object)">remove</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that should be removed.
    +<DT><B>Returns:</B><DD>Returns the removed cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellRemoved(java.lang.Object)"><!-- --></A><H3>
    +cellRemoved</H3>
    +<PRE>
    +protected void <B>cellRemoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Invoked after a cell has been removed from the model. This recursively
    + removes the cell from its terminals and removes the mapping from the Id
    + to the cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that has been removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parentForCellChanged(java.lang.Object, java.lang.Object, int)"><!-- --></A><H3>
    +parentForCellChanged</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>parentForCellChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                      int&nbsp;index)</PRE>
    +<DL>
    +<DD>Inner callback to update the parent of a cell using mxCell.insert
    + on the parent and return the previous parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildCount(java.lang.Object)"><!-- --></A><H3>
    +getChildCount</H3>
    +<PRE>
    +public int <B>getChildCount</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getChildCount(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the number of children in the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getChildCount(java.lang.Object)">getChildCount</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose number of children should be returned.
    +<DT><B>Returns:</B><DD>Returns the number of children in the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildAt(java.lang.Object, int)"><!-- --></A><H3>
    +getChildAt</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getChildAt</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                         int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getChildAt(java.lang.Object, int)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the child of the given parent at the given index.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getChildAt(java.lang.Object, int)">getChildAt</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that represents the parent.<DD><CODE>index</CODE> - Integer that specifies the index of the child to be
    + returned.
    +<DT><B>Returns:</B><DD>Returns the child at index in parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminal(java.lang.Object, boolean)"><!-- --></A><H3>
    +getTerminal</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getTerminal</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                          boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getTerminal(java.lang.Object, boolean)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the source or target terminal of the given edge depending on the
    + value of the boolean parameter.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getTerminal(java.lang.Object, boolean)">getTerminal</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that specifies the edge.<DD><CODE>isSource</CODE> - Boolean indicating which end of the edge should be
    + returned.
    +<DT><B>Returns:</B><DD>Returns the source or target of the given edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTerminal(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +setTerminal</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>setTerminal</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                          boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setTerminal(java.lang.Object, java.lang.Object, boolean)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Sets the source or target terminal of the given edge using.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setTerminal(java.lang.Object, java.lang.Object, boolean)">setTerminal</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that specifies the edge.<DD><CODE>terminal</CODE> - Cell that specifies the new terminal.<DD><CODE>isSource</CODE> - Boolean indicating if the terminal is the new source or
    + target terminal of the edge.
    +<DT><B>Returns:</B><DD>Returns the new terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="terminalForCellChanged(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +terminalForCellChanged</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>terminalForCellChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                                        boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD>Inner helper function to update the terminal of the edge using
    + mxCell.insertEdge and return the previous terminal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateEdgeParents(java.lang.Object)"><!-- --></A><H3>
    +updateEdgeParents</H3>
    +<PRE>
    +public void <B>updateEdgeParents</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Updates the parents of the edges connected to the given cell and all its
    + descendants so that each edge is contained in the nearest common
    + ancestor.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose edges should be checked and updated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateEdgeParents(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +updateEdgeParents</H3>
    +<PRE>
    +public void <B>updateEdgeParents</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +<DD>Updates the parents of the edges connected to the given cell and all its
    + descendants so that the edge is contained in the nearest-common-ancestor.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose edges should be checked and updated.<DD><CODE>root</CODE> - Root of the cell hierarchy that contains all cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateEdgeParent(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +updateEdgeParent</H3>
    +<PRE>
    +public void <B>updateEdgeParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +<DD>Inner helper method to update the parent of the specified edge to the
    + nearest-common-ancestor of its two terminals.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Specifies the edge to be updated.<DD><CODE>root</CODE> - Current root of the model.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOrigin(java.lang.Object)"><!-- --></A><H3>
    +getOrigin</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getOrigin</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the absolute, accumulated origin for the children inside the
    + given parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNearestCommonAncestor(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getNearestCommonAncestor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getNearestCommonAncestor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell1,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell2)</PRE>
    +<DL>
    +<DD>Returns the nearest common ancestor for the specified cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell1</CODE> - Cell that specifies the first cell in the tree.<DD><CODE>cell2</CODE> - Cell that specifies the second cell in the tree.
    +<DT><B>Returns:</B><DD>Returns the nearest common ancestor of the given cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeCount(java.lang.Object)"><!-- --></A><H3>
    +getEdgeCount</H3>
    +<PRE>
    +public int <B>getEdgeCount</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getEdgeCount(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the number of distinct edges connected to the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getEdgeCount(java.lang.Object)">getEdgeCount</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the vertex.
    +<DT><B>Returns:</B><DD>Returns the number of edges connected to cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeAt(java.lang.Object, int)"><!-- --></A><H3>
    +getEdgeAt</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getEdgeAt</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                        int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getEdgeAt(java.lang.Object, int)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the edge of cell at the given index.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getEdgeAt(java.lang.Object, int)">getEdgeAt</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the vertex.<DD><CODE>index</CODE> - Integer that specifies the index of the edge to return.
    +<DT><B>Returns:</B><DD>Returns the edge at the given index.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertex(java.lang.Object)"><!-- --></A><H3>
    +isVertex</H3>
    +<PRE>
    +public boolean <B>isVertex</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isVertex(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns true if the given cell is a vertex.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isVertex(java.lang.Object)">isVertex</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the possible vertex.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is a vertex.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdge(java.lang.Object)"><!-- --></A><H3>
    +isEdge</H3>
    +<PRE>
    +public boolean <B>isEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isEdge(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns true if the given cell is an edge.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isEdge(java.lang.Object)">isEdge</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the possible edge.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is an edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConnectable(java.lang.Object)"><!-- --></A><H3>
    +isConnectable</H3>
    +<PRE>
    +public boolean <B>isConnectable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isConnectable(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns true if the given cell is connectable.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isConnectable(java.lang.Object)">isConnectable</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose connectable state should be returned.
    +<DT><B>Returns:</B><DD>Returns the connectable state of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValue(java.lang.Object)"><!-- --></A><H3>
    +getValue</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getValue(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the user object of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getValue(java.lang.Object)">getValue</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose user object should be returned.
    +<DT><B>Returns:</B><DD>Returns the user object of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setValue(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +setValue</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>setValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setValue(java.lang.Object, java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Sets the user object of then given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setValue(java.lang.Object, java.lang.Object)">setValue</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose user object should be changed.<DD><CODE>value</CODE> - Object that defines the new user object.
    +<DT><B>Returns:</B><DD>Returns the new value.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="valueForCellChanged(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +valueForCellChanged</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>valueForCellChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Inner callback to update the user object of the given mxCell
    + using mxCell.setValue and return the previous value,
    + that is, the return value of mxCell.getValue.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGeometry(java.lang.Object)"><!-- --></A><H3>
    +getGeometry</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>getGeometry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getGeometry(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the geometry of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getGeometry(java.lang.Object)">getGeometry</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose geometry should be returned.
    +<DT><B>Returns:</B><DD>Returns the geometry of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)"><!-- --></A><H3>
    +setGeometry</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>setGeometry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Sets the geometry of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)">setGeometry</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose geometry should be changed.<DD><CODE>geometry</CODE> - Object that defines the new geometry.
    +<DT><B>Returns:</B><DD>Returns the new geometry.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="geometryForCellChanged(java.lang.Object, com.mxgraph.model.mxGeometry)"><!-- --></A><H3>
    +geometryForCellChanged</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>geometryForCellChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                            <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</PRE>
    +<DL>
    +<DD>Inner callback to update the mxGeometry of the given mxCell using
    + mxCell.setGeometry and return the previous mxGeometry.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStyle(java.lang.Object)"><!-- --></A><H3>
    +getStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getStyle(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns the style of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getStyle(java.lang.Object)">getStyle</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose style should be returned.
    +<DT><B>Returns:</B><DD>Returns the style of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyle(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +setStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>setStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setStyle(java.lang.Object, java.lang.String)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Sets the style of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setStyle(java.lang.Object, java.lang.String)">setStyle</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose style should be changed.<DD><CODE>style</CODE> - String of the form stylename[;key=value] to specify
    + the new cell style.
    +<DT><B>Returns:</B><DD>Returns the new style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="styleForCellChanged(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +styleForCellChanged</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>styleForCellChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Inner callback to update the style of the given mxCell
    + using mxCell.setStyle and return the previous style.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCollapsed(java.lang.Object)"><!-- --></A><H3>
    +isCollapsed</H3>
    +<PRE>
    +public boolean <B>isCollapsed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isCollapsed(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns true if the given cell is collapsed.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isCollapsed(java.lang.Object)">isCollapsed</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose collapsed state should be returned.
    +<DT><B>Returns:</B><DD>Returns the collapsed state of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCollapsed(java.lang.Object, boolean)"><!-- --></A><H3>
    +setCollapsed</H3>
    +<PRE>
    +public boolean <B>setCollapsed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                            boolean&nbsp;collapsed)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setCollapsed(java.lang.Object, boolean)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Sets the collapsed state of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setCollapsed(java.lang.Object, boolean)">setCollapsed</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose collapsed state should be changed.<DD><CODE>collapsed</CODE> - Boolean that specifies the new collpased state.
    +<DT><B>Returns:</B><DD>Returns the new collapsed state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="collapsedStateForCellChanged(java.lang.Object, boolean)"><!-- --></A><H3>
    +collapsedStateForCellChanged</H3>
    +<PRE>
    +protected boolean <B>collapsedStateForCellChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                               boolean&nbsp;collapsed)</PRE>
    +<DL>
    +<DD>Inner callback to update the collapsed state of the
    + given mxCell using mxCell.setCollapsed and return
    + the previous collapsed state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVisible(java.lang.Object)"><!-- --></A><H3>
    +isVisible</H3>
    +<PRE>
    +public boolean <B>isVisible</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isVisible(java.lang.Object)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Returns true if the given cell is visible.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isVisible(java.lang.Object)">isVisible</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose visible state should be returned.
    +<DT><B>Returns:</B><DD>Returns the visible state of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVisible(java.lang.Object, boolean)"><!-- --></A><H3>
    +setVisible</H3>
    +<PRE>
    +public boolean <B>setVisible</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                          boolean&nbsp;visible)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setVisible(java.lang.Object, boolean)">mxIGraphModel</A></CODE></B></DD>
    +<DD>Sets the visible state of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setVisible(java.lang.Object, boolean)">setVisible</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose visible state should be changed.<DD><CODE>visible</CODE> - Boolean that specifies the new visible state.
    +<DT><B>Returns:</B><DD>Returns the new visible state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="visibleStateForCellChanged(java.lang.Object, boolean)"><!-- --></A><H3>
    +visibleStateForCellChanged</H3>
    +<PRE>
    +protected boolean <B>visibleStateForCellChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                             boolean&nbsp;visible)</PRE>
    +<DL>
    +<DD>Sets the visible state of the given mxCell using mxVisibleChange and
    + adds the change to the current transaction.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute(com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange)"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>&nbsp;change)</PRE>
    +<DL>
    +<DD>Executes the given atomic change and adds it to the current edit.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>change</CODE> - Atomic change to be executed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="beginUpdate()"><!-- --></A><H3>
    +beginUpdate</H3>
    +<PRE>
    +public void <B>beginUpdate</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#beginUpdate()">mxIGraphModel</A></CODE></B></DD>
    +<DD>Increments the updateLevel by one. The event notification is queued
    + until updateLevel reaches 0 by use of endUpdate.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#beginUpdate()">beginUpdate</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="endUpdate()"><!-- --></A><H3>
    +endUpdate</H3>
    +<PRE>
    +public void <B>endUpdate</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#endUpdate()">mxIGraphModel</A></CODE></B></DD>
    +<DD>Decrements the updateLevel by one and fires a notification event if the
    + updateLevel reaches 0.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#endUpdate()">endUpdate</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mergeChildren(com.mxgraph.model.mxICell, com.mxgraph.model.mxICell, boolean)"><!-- --></A><H3>
    +mergeChildren</H3>
    +<PRE>
    +public void <B>mergeChildren</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;from,
    +                          <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;to,
    +                          boolean&nbsp;cloneAllEdges)
    +                   throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></PRE>
    +<DL>
    +<DD>Merges the children of the given cell into the given target cell inside
    + this model. All cells are cloned unless there is a corresponding cell in
    + the model with the same id, in which case the source cell is ignored and
    + all edges are connected to the corresponding cell in this model. Edges
    + are considered to have no identity and are always cloned unless the
    + cloneAllEdges flag is set to false, in which case edges with the same
    + id in the target model are reconnected to reflect the terminals of the
    + source edges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>from</CODE> - <DD><CODE>to</CODE> - <DD><CODE>cloneAllEdges</CODE> - 
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mergeChildrenImpl(com.mxgraph.model.mxICell, com.mxgraph.model.mxICell, boolean, java.util.Hashtable)"><!-- --></A><H3>
    +mergeChildrenImpl</H3>
    +<PRE>
    +protected void <B>mergeChildrenImpl</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;from,
    +                                 <A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;to,
    +                                 boolean&nbsp;cloneAllEdges,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;mapping)
    +                          throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></PRE>
    +<DL>
    +<DD>Clones the children of the source cell into the given target cell in
    + this model and adds an entry to the mapping that maps from the source
    + cell to the target cell with the same id or the clone of the source cell
    + that was inserted into this model.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDirectedEdgeCount(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean)"><!-- --></A><H3>
    +getDirectedEdgeCount</H3>
    +<PRE>
    +public static int <B>getDirectedEdgeCount</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                       boolean&nbsp;outgoing)</PRE>
    +<DL>
    +<DD>Returns the number of incoming or outgoing edges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Graph model that contains the connection data.<DD><CODE>cell</CODE> - Cell whose edges should be counted.<DD><CODE>outgoing</CODE> - Boolean that specifies if the number of outgoing or
    + incoming edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the number of incoming or outgoing edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDirectedEdgeCount(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, java.lang.Object)"><!-- --></A><H3>
    +getDirectedEdgeCount</H3>
    +<PRE>
    +public static int <B>getDirectedEdgeCount</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                       boolean&nbsp;outgoing,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;ignoredEdge)</PRE>
    +<DL>
    +<DD>Returns the number of incoming or outgoing edges, ignoring the given
    + edge.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Graph model that contains the connection data.<DD><CODE>cell</CODE> - Cell whose edges should be counted.<DD><CODE>outgoing</CODE> - Boolean that specifies if the number of outgoing or
    + incoming edges should be returned.<DD><CODE>ignoredEdge</CODE> - Object that represents an edge to be ignored.
    +<DT><B>Returns:</B><DD>Returns the number of incoming or outgoing edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><!-- --></A><H3>
    +getEdges</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdges</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns all edges connected to this cell including loops.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the connection information.<DD><CODE>cell</CODE> - Cell whose connections should be returned.
    +<DT><B>Returns:</B><DD>Returns the array of connected edges for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnections(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><!-- --></A><H3>
    +getConnections</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getConnections</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns all edges connected to this cell without loops.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the connection information.<DD><CODE>cell</CODE> - Cell whose connections should be returned.
    +<DT><B>Returns:</B><DD>Returns the connected edges for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIncomingEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><!-- --></A><H3>
    +getIncomingEdges</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getIncomingEdges</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the incoming edges of the given cell without loops.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Graphmodel that contains the edges.<DD><CODE>cell</CODE> - Cell whose incoming edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the incoming edges for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOutgoingEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><!-- --></A><H3>
    +getOutgoingEdges</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getOutgoingEdges</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the outgoing edges of the given cell without loops.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Graphmodel that contains the edges.<DD><CODE>cell</CODE> - Cell whose outgoing edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the outgoing edges for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, boolean, boolean)"><!-- --></A><H3>
    +getEdges</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdges</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                boolean&nbsp;incoming,
    +                                boolean&nbsp;outgoing,
    +                                boolean&nbsp;includeLoops)</PRE>
    +<DL>
    +<DD>Returns all distinct edges connected to this cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the connection information.<DD><CODE>cell</CODE> - Cell whose connections should be returned.<DD><CODE>incoming</CODE> - Specifies if incoming edges should be returned.<DD><CODE>outgoing</CODE> - Specifies if outgoing edges should be returned.<DD><CODE>includeLoops</CODE> - Specifies if loops should be returned.
    +<DT><B>Returns:</B><DD>Returns the array of connected edges for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgesBetween(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getEdgesBetween</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdgesBetween</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Returns all edges from the given source to the given target.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - The graph model that contains the graph.<DD><CODE>source</CODE> - Object that defines the source cell.<DD><CODE>target</CODE> - Object that defines the target cell.
    +<DT><B>Returns:</B><DD>Returns all edges from source to target.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgesBetween(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +getEdgesBetween</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdgesBetween</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                                       boolean&nbsp;directed)</PRE>
    +<DL>
    +<DD>Returns all edges between the given source and target pair. If directed
    + is true, then only edges from the source to the target are returned,
    + otherwise, all edges between the two cells are returned.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - The graph model that contains the graph.<DD><CODE>source</CODE> - Object that defines the source cell.<DD><CODE>target</CODE> - Object that defines the target cell.<DD><CODE>directed</CODE> - Boolean that specifies if the direction of the edge
    + should be taken into account.
    +<DT><B>Returns:</B><DD>Returns all edges between the given source and target.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOpposites(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.Object)"><!-- --></A><H3>
    +getOpposites</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getOpposites</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal)</PRE>
    +<DL>
    +<DD>Returns all opposite cells of terminal for the given edges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the connection information.<DD><CODE>edges</CODE> - Array of edges to be examined.<DD><CODE>terminal</CODE> - Cell that specifies the known end of the edges.
    +<DT><B>Returns:</B><DD>Returns the opposite cells of the given terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOpposites(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +getOpposites</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getOpposites</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                                    boolean&nbsp;sources,
    +                                    boolean&nbsp;targets)</PRE>
    +<DL>
    +<DD>Returns all opposite vertices wrt terminal for the given edges, only
    + returning sources and/or targets as specified. The result is returned as
    + an array of mxCells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the connection information.<DD><CODE>edges</CODE> - Array of edges to be examined.<DD><CODE>terminal</CODE> - Cell that specifies the known end of the edges.<DD><CODE>sources</CODE> - Boolean that specifies if source terminals should
    + be contained in the result. Default is true.<DD><CODE>targets</CODE> - Boolean that specifies if target terminals should
    + be contained in the result. Default is true.
    +<DT><B>Returns:</B><DD>Returns the array of opposite terminals for the given edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTerminals(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +setTerminals</H3>
    +<PRE>
    +public static void <B>setTerminals</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Sets the source and target of the given edge in a single atomic change.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that specifies the edge.<DD><CODE>source</CODE> - Cell that specifies the new source terminal.<DD><CODE>target</CODE> - Cell that specifies the new target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildren(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><!-- --></A><H3>
    +getChildren</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getChildren</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns all children of the given cell regardless of their type.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the hierarchical information.<DD><CODE>parent</CODE> - Cell whose child vertices or edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the child vertices and/or edges of the given parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildVertices(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><!-- --></A><H3>
    +getChildVertices</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getChildVertices</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns the child vertices of the given parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the hierarchical information.<DD><CODE>parent</CODE> - Cell whose child vertices should be returned.
    +<DT><B>Returns:</B><DD>Returns the child vertices of the given parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><!-- --></A><H3>
    +getChildEdges</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getChildEdges</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns the child edges of the given parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the hierarchical information.<DD><CODE>parent</CODE> - Cell whose child edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the child edges of the given parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildCells(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +getChildCells</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getChildCells</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                     boolean&nbsp;vertices,
    +                                     boolean&nbsp;edges)</PRE>
    +<DL>
    +<DD>Returns the children of the given cell that are vertices and/or edges
    + depending on the arguments. If both arguments are false then all
    + children are returned regardless of their type.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the hierarchical information.<DD><CODE>parent</CODE> - Cell whose child vertices or edges should be returned.<DD><CODE>vertices</CODE> - Boolean indicating if child vertices should be returned.<DD><CODE>edges</CODE> - Boolean indicating if child edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the child vertices and/or edges of the given parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParents(com.mxgraph.model.mxIGraphModel, java.lang.Object[])"><!-- --></A><H3>
    +getParents</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getParents</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="filterCells(java.lang.Object[], com.mxgraph.model.mxGraphModel.Filter)"><!-- --></A><H3>
    +filterCells</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>filterCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                   <A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDescendants(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><!-- --></A><H3>
    +getDescendants</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getDescendants</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns a all descendants of the given cell and the cell itself
    + as a collection.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter)"><!-- --></A><H3>
    +filterDescendants</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>filterDescendants</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                                   <A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter)</PRE>
    +<DL>
    +<DD>Creates a collection of cells using the visitor pattern.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter, java.lang.Object)"><!-- --></A><H3>
    +filterDescendants</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>filterDescendants</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                                   <A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>&nbsp;filter,
    +                                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Creates a collection of cells using the visitor pattern.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTopmostCells(com.mxgraph.model.mxIGraphModel, java.lang.Object[])"><!-- --></A><H3>
    +getTopmostCells</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getTopmostCells</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Function: getTopmostCells
    + 
    + Returns the topmost cells of the hierarchy in an array that contains no
    + desceandants for each <mxCell> that it contains. Duplicates should be
    + removed in the cells array to improve performance.
    + 
    + Parameters:
    + 
    + cells - Array of <mxCells> whose topmost ancestors should be returned.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.mxChildChange.html b/java/docs/com/mxgraph/model/mxGraphModel.mxChildChange.html
    new file mode 100644
    index 000000000..db2db2e10
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.mxChildChange.html
    @@ -0,0 +1,724 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel.mxChildChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel.mxChildChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxChildChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxChildChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxChildChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGraphModel.mxChildChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGraphModel.mxChildChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphModel.mxChildChange</B><DT>extends <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#child">child</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#index">index</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#parent">parent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#previousIndex">previousIndex</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#mxGraphModel.mxChildChange()">mxGraphModel.mxChildChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#mxGraphModel.mxChildChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object)">mxGraphModel.mxChildChange</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#mxGraphModel.mxChildChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object, int)">mxGraphModel.mxChildChange</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child,
    +                           int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#connect(java.lang.Object, boolean)">connect</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +        boolean&nbsp;isConnect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#getChild()">getChild</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#getChildIndex(java.lang.Object, java.lang.Object)">getChildIndex</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the given child inside the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#getIndex()">getIndex</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#getParent()">getParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#getPreviousIndex()">getPreviousIndex</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#getTerminal(java.lang.Object, boolean)">getTerminal</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the source or target terminal field for the given
    + edge even if the edge is not stored as an incoming or
    + outgoing edge in the respective terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#setChild(java.lang.Object)">setChild</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#setIndex(int)">setIndex</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#setParent(java.lang.Object)">setParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#setPrevious(java.lang.Object)">setPrevious</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#setPreviousIndex(int)">setPreviousIndex</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html#setTerminal(java.lang.Object, java.lang.Object, boolean)">setTerminal</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source or target terminal field for the given edge
    + without inserting an incoming or outgoing edge in the
    + respective terminal.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="parent"><!-- --></A><H3>
    +parent</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>parent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previous"><!-- --></A><H3>
    +previous</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>previous</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="child"><!-- --></A><H3>
    +child</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>child</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="index"><!-- --></A><H3>
    +index</H3>
    +<PRE>
    +protected int <B>index</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previousIndex"><!-- --></A><H3>
    +previousIndex</H3>
    +<PRE>
    +protected int <B>previousIndex</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphModel.mxChildChange()"><!-- --></A><H3>
    +mxGraphModel.mxChildChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxChildChange</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel.mxChildChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +mxGraphModel.mxChildChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxChildChange</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel.mxChildChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object, int)"><!-- --></A><H3>
    +mxGraphModel.mxChildChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxChildChange</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child,
    +                                  int&nbsp;index)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setParent(java.lang.Object)"><!-- --></A><H3>
    +setParent</H3>
    +<PRE>
    +public void <B>setParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParent()"><!-- --></A><H3>
    +getParent</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getParent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the parent</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPrevious(java.lang.Object)"><!-- --></A><H3>
    +setPrevious</H3>
    +<PRE>
    +public void <B>setPrevious</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrevious()"><!-- --></A><H3>
    +getPrevious</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getPrevious</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the previous</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setChild(java.lang.Object)"><!-- --></A><H3>
    +setChild</H3>
    +<PRE>
    +public void <B>setChild</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChild()"><!-- --></A><H3>
    +getChild</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getChild</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the child</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setIndex(int)"><!-- --></A><H3>
    +setIndex</H3>
    +<PRE>
    +public void <B>setIndex</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIndex()"><!-- --></A><H3>
    +getIndex</H3>
    +<PRE>
    +public int <B>getIndex</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the index</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPreviousIndex(int)"><!-- --></A><H3>
    +setPreviousIndex</H3>
    +<PRE>
    +public void <B>setPreviousIndex</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreviousIndex()"><!-- --></A><H3>
    +getPreviousIndex</H3>
    +<PRE>
    +public int <B>getPreviousIndex</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the previousIndex</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminal(java.lang.Object, boolean)"><!-- --></A><H3>
    +getTerminal</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getTerminal</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                             boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Gets the source or target terminal field for the given
    + edge even if the edge is not stored as an incoming or
    + outgoing edge in the respective terminal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTerminal(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +setTerminal</H3>
    +<PRE>
    +protected void <B>setTerminal</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                           boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Sets the source or target terminal field for the given edge
    + without inserting an incoming or outgoing edge in the
    + respective terminal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="connect(java.lang.Object, boolean)"><!-- --></A><H3>
    +connect</H3>
    +<PRE>
    +protected void <B>connect</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                       boolean&nbsp;isConnect)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildIndex(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getChildIndex</H3>
    +<PRE>
    +protected int <B>getChildIndex</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</PRE>
    +<DL>
    +<DD>Returns the index of the given child inside the given parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Changes the root of the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxChildChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxChildChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxChildChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.mxCollapseChange.html b/java/docs/com/mxgraph/model/mxGraphModel.mxCollapseChange.html
    new file mode 100644
    index 000000000..8374cd974
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.mxCollapseChange.html
    @@ -0,0 +1,490 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel.mxCollapseChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel.mxCollapseChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxCollapseChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxCollapseChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxCollapseChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGraphModel.mxCollapseChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGraphModel.mxCollapseChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphModel.mxCollapseChange</B><DT>extends <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#collapsed">collapsed</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#mxGraphModel.mxCollapseChange()">mxGraphModel.mxCollapseChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#mxGraphModel.mxCollapseChange(com.mxgraph.model.mxGraphModel, java.lang.Object, boolean)">mxGraphModel.mxCollapseChange</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              boolean&nbsp;collapsed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#getCell()">getCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#isCollapsed()">isCollapsed</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#setCell(java.lang.Object)">setCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#setCollapsed(boolean)">setCollapsed</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html#setPrevious(boolean)">setPrevious</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="collapsed"><!-- --></A><H3>
    +collapsed</H3>
    +<PRE>
    +protected boolean <B>collapsed</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previous"><!-- --></A><H3>
    +previous</H3>
    +<PRE>
    +protected boolean <B>previous</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphModel.mxCollapseChange()"><!-- --></A><H3>
    +mxGraphModel.mxCollapseChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxCollapseChange</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel.mxCollapseChange(com.mxgraph.model.mxGraphModel, java.lang.Object, boolean)"><!-- --></A><H3>
    +mxGraphModel.mxCollapseChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxCollapseChange</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                     boolean&nbsp;collapsed)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setCell(java.lang.Object)"><!-- --></A><H3>
    +setCell</H3>
    +<PRE>
    +public void <B>setCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell()"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the cell</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCollapsed(boolean)"><!-- --></A><H3>
    +setCollapsed</H3>
    +<PRE>
    +public void <B>setCollapsed</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCollapsed()"><!-- --></A><H3>
    +isCollapsed</H3>
    +<PRE>
    +public boolean <B>isCollapsed</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the collapsed</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPrevious(boolean)"><!-- --></A><H3>
    +setPrevious</H3>
    +<PRE>
    +public void <B>setPrevious</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrevious()"><!-- --></A><H3>
    +getPrevious</H3>
    +<PRE>
    +public boolean <B>getPrevious</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the previous</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Changes the root of the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxCollapseChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxCollapseChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxCollapseChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.mxGeometryChange.html b/java/docs/com/mxgraph/model/mxGraphModel.mxGeometryChange.html
    new file mode 100644
    index 000000000..467afc37e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.mxGeometryChange.html
    @@ -0,0 +1,490 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel.mxGeometryChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel.mxGeometryChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxGeometryChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxGeometryChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxGeometryChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGraphModel.mxGeometryChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGraphModel.mxGeometryChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphModel.mxGeometryChange</B><DT>extends <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#geometry">geometry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#mxGraphModel.mxGeometryChange()">mxGraphModel.mxGeometryChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#mxGraphModel.mxGeometryChange(com.mxgraph.model.mxGraphModel, java.lang.Object, com.mxgraph.model.mxGeometry)">mxGraphModel.mxGeometryChange</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#getCell()">getCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#getGeometry()">getGeometry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#setCell(java.lang.Object)">setCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#setGeometry(com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html#setPrevious(com.mxgraph.model.mxGeometry)">setPrevious</A></B>(<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="geometry"><!-- --></A><H3>
    +geometry</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>geometry</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previous"><!-- --></A><H3>
    +previous</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>previous</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphModel.mxGeometryChange()"><!-- --></A><H3>
    +mxGraphModel.mxGeometryChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxGeometryChange</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel.mxGeometryChange(com.mxgraph.model.mxGraphModel, java.lang.Object, com.mxgraph.model.mxGeometry)"><!-- --></A><H3>
    +mxGraphModel.mxGeometryChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxGeometryChange</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                     <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setCell(java.lang.Object)"><!-- --></A><H3>
    +setCell</H3>
    +<PRE>
    +public void <B>setCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell()"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the cell</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGeometry(com.mxgraph.model.mxGeometry)"><!-- --></A><H3>
    +setGeometry</H3>
    +<PRE>
    +public void <B>setGeometry</B>(<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGeometry()"><!-- --></A><H3>
    +getGeometry</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>getGeometry</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the geometry</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPrevious(com.mxgraph.model.mxGeometry)"><!-- --></A><H3>
    +setPrevious</H3>
    +<PRE>
    +public void <B>setPrevious</B>(<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrevious()"><!-- --></A><H3>
    +getPrevious</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>getPrevious</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the previous</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Changes the root of the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxGeometryChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxGeometryChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxGeometryChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.mxRootChange.html b/java/docs/com/mxgraph/model/mxGraphModel.mxRootChange.html
    new file mode 100644
    index 000000000..04ed730e7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.mxRootChange.html
    @@ -0,0 +1,435 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel.mxRootChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel.mxRootChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxRootChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxRootChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxRootChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGraphModel.mxRootChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGraphModel.mxRootChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphModel.mxRootChange</B><DT>extends <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the new and previous root cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#root">root</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the new and previous root cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#mxGraphModel.mxRootChange()">mxGraphModel.mxRootChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#mxGraphModel.mxRootChange(com.mxgraph.model.mxGraphModel, java.lang.Object)">mxGraphModel.mxRootChange</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#getRoot()">getRoot</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#setPrevious(java.lang.Object)">setPrevious</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html#setRoot(java.lang.Object)">setRoot</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="root"><!-- --></A><H3>
    +root</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>root</B></PRE>
    +<DL>
    +<DD>Holds the new and previous root cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previous"><!-- --></A><H3>
    +previous</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>previous</B></PRE>
    +<DL>
    +<DD>Holds the new and previous root cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphModel.mxRootChange()"><!-- --></A><H3>
    +mxGraphModel.mxRootChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxRootChange</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel.mxRootChange(com.mxgraph.model.mxGraphModel, java.lang.Object)"><!-- --></A><H3>
    +mxGraphModel.mxRootChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxRootChange</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setRoot(java.lang.Object)"><!-- --></A><H3>
    +setRoot</H3>
    +<PRE>
    +public void <B>setRoot</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRoot()"><!-- --></A><H3>
    +getRoot</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getRoot</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the root</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPrevious(java.lang.Object)"><!-- --></A><H3>
    +setPrevious</H3>
    +<PRE>
    +public void <B>setPrevious</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrevious()"><!-- --></A><H3>
    +getPrevious</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getPrevious</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the previous</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Changes the root of the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxRootChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxRootChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxRootChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.mxStyleChange.html b/java/docs/com/mxgraph/model/mxGraphModel.mxStyleChange.html
    new file mode 100644
    index 000000000..6c8c718e7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.mxStyleChange.html
    @@ -0,0 +1,490 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel.mxStyleChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel.mxStyleChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxStyleChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxStyleChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxStyleChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGraphModel.mxStyleChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGraphModel.mxStyleChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphModel.mxStyleChange</B><DT>extends <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#style">style</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#mxGraphModel.mxStyleChange()">mxGraphModel.mxStyleChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#mxGraphModel.mxStyleChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.String)">mxGraphModel.mxStyleChange</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#getCell()">getCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#getStyle()">getStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#setCell(java.lang.Object)">setCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#setPrevious(java.lang.String)">setPrevious</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html#setStyle(java.lang.String)">setStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="style"><!-- --></A><H3>
    +style</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>style</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previous"><!-- --></A><H3>
    +previous</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>previous</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphModel.mxStyleChange()"><!-- --></A><H3>
    +mxGraphModel.mxStyleChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxStyleChange</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel.mxStyleChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +mxGraphModel.mxStyleChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxStyleChange</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setCell(java.lang.Object)"><!-- --></A><H3>
    +setCell</H3>
    +<PRE>
    +public void <B>setCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell()"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the cell</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyle(java.lang.String)"><!-- --></A><H3>
    +setStyle</H3>
    +<PRE>
    +public void <B>setStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStyle()"><!-- --></A><H3>
    +getStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStyle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the style</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPrevious(java.lang.String)"><!-- --></A><H3>
    +setPrevious</H3>
    +<PRE>
    +public void <B>setPrevious</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrevious()"><!-- --></A><H3>
    +getPrevious</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getPrevious</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the previous</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Changes the root of the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxStyleChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxStyleChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxStyleChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.mxTerminalChange.html b/java/docs/com/mxgraph/model/mxGraphModel.mxTerminalChange.html
    new file mode 100644
    index 000000000..f191ab70d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.mxTerminalChange.html
    @@ -0,0 +1,549 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel.mxTerminalChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel.mxTerminalChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxTerminalChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxTerminalChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxTerminalChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGraphModel.mxTerminalChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGraphModel.mxTerminalChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphModel.mxTerminalChange</B><DT>extends <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#terminal">terminal</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#mxGraphModel.mxTerminalChange()">mxGraphModel.mxTerminalChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#mxGraphModel.mxTerminalChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object, boolean)">mxGraphModel.mxTerminalChange</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                              boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#getCell()">getCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#getTerminal()">getTerminal</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#isSource()">isSource</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#setCell(java.lang.Object)">setCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#setPrevious(java.lang.Object)">setPrevious</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#setSource(boolean)">setSource</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html#setTerminal(java.lang.Object)">setTerminal</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="terminal"><!-- --></A><H3>
    +terminal</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>terminal</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previous"><!-- --></A><H3>
    +previous</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>previous</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="source"><!-- --></A><H3>
    +source</H3>
    +<PRE>
    +protected boolean <B>source</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphModel.mxTerminalChange()"><!-- --></A><H3>
    +mxGraphModel.mxTerminalChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxTerminalChange</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel.mxTerminalChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +mxGraphModel.mxTerminalChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxTerminalChange</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                                     boolean&nbsp;source)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setCell(java.lang.Object)"><!-- --></A><H3>
    +setCell</H3>
    +<PRE>
    +public void <B>setCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell()"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the cell</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTerminal(java.lang.Object)"><!-- --></A><H3>
    +setTerminal</H3>
    +<PRE>
    +public void <B>setTerminal</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminal()"><!-- --></A><H3>
    +getTerminal</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getTerminal</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the terminal</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPrevious(java.lang.Object)"><!-- --></A><H3>
    +setPrevious</H3>
    +<PRE>
    +public void <B>setPrevious</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrevious()"><!-- --></A><H3>
    +getPrevious</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getPrevious</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the previous</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSource(boolean)"><!-- --></A><H3>
    +setSource</H3>
    +<PRE>
    +public void <B>setSource</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSource()"><!-- --></A><H3>
    +isSource</H3>
    +<PRE>
    +public boolean <B>isSource</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the isSource</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Changes the root of the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxTerminalChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxTerminalChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxTerminalChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.mxValueChange.html b/java/docs/com/mxgraph/model/mxGraphModel.mxValueChange.html
    new file mode 100644
    index 000000000..a43b7eefd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.mxValueChange.html
    @@ -0,0 +1,490 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel.mxValueChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel.mxValueChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxValueChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxValueChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxValueChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGraphModel.mxValueChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGraphModel.mxValueChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphModel.mxValueChange</B><DT>extends <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#value">value</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#mxGraphModel.mxValueChange()">mxGraphModel.mxValueChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#mxGraphModel.mxValueChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object)">mxGraphModel.mxValueChange</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#getCell()">getCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#getValue()">getValue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#setCell(java.lang.Object)">setCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#setPrevious(java.lang.Object)">setPrevious</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html#setValue(java.lang.Object)">setValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="value"><!-- --></A><H3>
    +value</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>value</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previous"><!-- --></A><H3>
    +previous</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>previous</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphModel.mxValueChange()"><!-- --></A><H3>
    +mxGraphModel.mxValueChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxValueChange</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel.mxValueChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +mxGraphModel.mxValueChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxValueChange</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setCell(java.lang.Object)"><!-- --></A><H3>
    +setCell</H3>
    +<PRE>
    +public void <B>setCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell()"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the cell</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setValue(java.lang.Object)"><!-- --></A><H3>
    +setValue</H3>
    +<PRE>
    +public void <B>setValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValue()"><!-- --></A><H3>
    +getValue</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getValue</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the value</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPrevious(java.lang.Object)"><!-- --></A><H3>
    +setPrevious</H3>
    +<PRE>
    +public void <B>setPrevious</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrevious()"><!-- --></A><H3>
    +getPrevious</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getPrevious</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the previous</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Changes the root of the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxValueChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxValueChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxValueChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxGraphModel.mxVisibleChange.html b/java/docs/com/mxgraph/model/mxGraphModel.mxVisibleChange.html
    new file mode 100644
    index 000000000..a10cd8dbd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxGraphModel.mxVisibleChange.html
    @@ -0,0 +1,490 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxGraphModel.mxVisibleChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphModel.mxVisibleChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxVisibleChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxVisibleChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxVisibleChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxGraphModel.mxVisibleChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxGraphModel.mxVisibleChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphModel.mxVisibleChange</B><DT>extends <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#visible">visible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#mxGraphModel.mxVisibleChange()">mxGraphModel.mxVisibleChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#mxGraphModel.mxVisibleChange(com.mxgraph.model.mxGraphModel, java.lang.Object, boolean)">mxGraphModel.mxVisibleChange</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                             boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#getCell()">getCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#isVisible()">isVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#setCell(java.lang.Object)">setCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#setPrevious(boolean)">setPrevious</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html#setVisible(boolean)">setVisible</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="visible"><!-- --></A><H3>
    +visible</H3>
    +<PRE>
    +protected boolean <B>visible</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previous"><!-- --></A><H3>
    +previous</H3>
    +<PRE>
    +protected boolean <B>previous</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphModel.mxVisibleChange()"><!-- --></A><H3>
    +mxGraphModel.mxVisibleChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxVisibleChange</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphModel.mxVisibleChange(com.mxgraph.model.mxGraphModel, java.lang.Object, boolean)"><!-- --></A><H3>
    +mxGraphModel.mxVisibleChange</H3>
    +<PRE>
    +public <B>mxGraphModel.mxVisibleChange</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                    boolean&nbsp;visible)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setCell(java.lang.Object)"><!-- --></A><H3>
    +setCell</H3>
    +<PRE>
    +public void <B>setCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell()"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the cell</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVisible(boolean)"><!-- --></A><H3>
    +setVisible</H3>
    +<PRE>
    +public void <B>setVisible</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVisible()"><!-- --></A><H3>
    +isVisible</H3>
    +<PRE>
    +public boolean <B>isVisible</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the visible</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPrevious(boolean)"><!-- --></A><H3>
    +setPrevious</H3>
    +<PRE>
    +public void <B>setPrevious</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrevious()"><!-- --></A><H3>
    +getPrevious</H3>
    +<PRE>
    +public boolean <B>getPrevious</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the previous</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Changes the root of the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()">execute</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphModel.mxVisibleChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxGraphModel.mxVisibleChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphModel.mxVisibleChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxICell.html b/java/docs/com/mxgraph/model/mxICell.html
    new file mode 100644
    index 000000000..1a35b9dc2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxICell.html
    @@ -0,0 +1,961 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:04 CEST 2012 -->
    +<TITLE>
    +mxICell (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxICell (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICell.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxICell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Interface mxICell</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxICell</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the requirements for a cell that can be used in an mxGraphModel.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#clone()">clone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a clone of this cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getChildAt(int)">getChildAt</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child at the specified index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getChildCount()">getChildCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of child cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getEdgeAt(int)">getEdgeAt</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edge at the specified index in the edge array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getEdgeCount()">getEdgeCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of edges in the edge array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getEdgeIndex(com.mxgraph.model.mxICell)">getEdgeIndex</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the specified edge in the edge array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getGeometry()">getGeometry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the object that describes the geometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getId()">getId</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Id of the cell as a string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getIndex(com.mxgraph.model.mxICell)">getIndex</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the specified child in the child array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getParent()">getParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell's parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getStyle()">getStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the string that describes the style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getTerminal(boolean)">getTerminal</A></B>(boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#getValue()">getValue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the user object of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell)">insert</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appends the specified child into the child array and updates the parent
    + reference of the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell, int)">insert</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child,
    +       int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the specified child into the child array at the specified index
    + and updates the parent reference of the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#insertEdge(com.mxgraph.model.mxICell, boolean)">insertEdge</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the specified edge into the edge array and returns the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#isCollapsed()">isCollapsed</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#isConnectable()">isConnectable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is connectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#isEdge()">isEdge</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#isVertex()">isVertex</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is a vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#isVisible()">isVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cell is visibile.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#remove(int)">remove</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the child at the specified index from the child array and
    + returns the child that was removed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#remove(com.mxgraph.model.mxICell)">remove</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given child from the child array and returns it.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#removeEdge(com.mxgraph.model.mxICell, boolean)">removeEdge</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +           boolean&nbsp;isOutgoing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified edge from the edge array and returns the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#removeFromParent()">removeFromParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the cell from its parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#removeFromTerminal(boolean)">removeFromTerminal</A></B>(boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the edge from its source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#setCollapsed(boolean)">setCollapsed</A></B>(boolean&nbsp;collapsed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the collapsed state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#setGeometry(com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the object to be used as the geometry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#setId(java.lang.String)">setId</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the Id of the cell to the given string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#setParent(com.mxgraph.model.mxICell)">setParent</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the parent cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#setStyle(java.lang.String)">setStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the string to be used as the style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#setTerminal(com.mxgraph.model.mxICell, boolean)">setTerminal</A></B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;terminal,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source or target terminal and returns the new terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#setValue(java.lang.Object)">setValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the user object of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxICell.html#setVisible(boolean)">setVisible</A></B>(boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the cell is visible.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getId()"><!-- --></A><H3>
    +getId</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getId</B>()</PRE>
    +<DL>
    +<DD>Returns the Id of the cell as a string.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the Id.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setId(java.lang.String)"><!-- --></A><H3>
    +setId</H3>
    +<PRE>
    +void <B>setId</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
    +<DL>
    +<DD>Sets the Id of the cell to the given string.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>id</CODE> - String that represents the new Id.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValue()"><!-- --></A><H3>
    +getValue</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getValue</B>()</PRE>
    +<DL>
    +<DD>Returns the user object of the cell.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the user object.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setValue(java.lang.Object)"><!-- --></A><H3>
    +setValue</H3>
    +<PRE>
    +void <B>setValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the user object of the cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Object that represents the new value.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGeometry()"><!-- --></A><H3>
    +getGeometry</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>getGeometry</B>()</PRE>
    +<DL>
    +<DD>Returns the object that describes the geometry.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the cell geometry.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGeometry(com.mxgraph.model.mxGeometry)"><!-- --></A><H3>
    +setGeometry</H3>
    +<PRE>
    +void <B>setGeometry</B>(<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</PRE>
    +<DL>
    +<DD>Sets the object to be used as the geometry.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStyle()"><!-- --></A><H3>
    +getStyle</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStyle</B>()</PRE>
    +<DL>
    +<DD>Returns the string that describes the style.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the cell style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyle(java.lang.String)"><!-- --></A><H3>
    +setStyle</H3>
    +<PRE>
    +void <B>setStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Sets the string to be used as the style.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertex()"><!-- --></A><H3>
    +isVertex</H3>
    +<PRE>
    +boolean <B>isVertex</B>()</PRE>
    +<DL>
    +<DD>Returns true if the cell is a vertex.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if the cell is a vertex.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdge()"><!-- --></A><H3>
    +isEdge</H3>
    +<PRE>
    +boolean <B>isEdge</B>()</PRE>
    +<DL>
    +<DD>Returns true if the cell is an edge.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if the cell is an edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConnectable()"><!-- --></A><H3>
    +isConnectable</H3>
    +<PRE>
    +boolean <B>isConnectable</B>()</PRE>
    +<DL>
    +<DD>Returns true if the cell is connectable.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the connectable state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVisible()"><!-- --></A><H3>
    +isVisible</H3>
    +<PRE>
    +boolean <B>isVisible</B>()</PRE>
    +<DL>
    +<DD>Returns true if the cell is visibile.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the visible state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVisible(boolean)"><!-- --></A><H3>
    +setVisible</H3>
    +<PRE>
    +void <B>setVisible</B>(boolean&nbsp;visible)</PRE>
    +<DL>
    +<DD>Specifies if the cell is visible.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>visible</CODE> - Boolean that specifies the new visible state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCollapsed()"><!-- --></A><H3>
    +isCollapsed</H3>
    +<PRE>
    +boolean <B>isCollapsed</B>()</PRE>
    +<DL>
    +<DD>Returns true if the cell is collapsed.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the collapsed state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCollapsed(boolean)"><!-- --></A><H3>
    +setCollapsed</H3>
    +<PRE>
    +void <B>setCollapsed</B>(boolean&nbsp;collapsed)</PRE>
    +<DL>
    +<DD>Sets the collapsed state.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>collapsed</CODE> - Boolean that specifies the new collapsed state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParent()"><!-- --></A><H3>
    +getParent</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getParent</B>()</PRE>
    +<DL>
    +<DD>Returns the cell's parent.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the parent cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setParent(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +setParent</H3>
    +<PRE>
    +void <B>setParent</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Sets the parent cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that represents the new parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminal(boolean)"><!-- --></A><H3>
    +getTerminal</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getTerminal</B>(boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns the source or target terminal.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>source</CODE> - Boolean that specifies if the source terminal should be
    + returned.
    +<DT><B>Returns:</B><DD>Returns the source or target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTerminal(com.mxgraph.model.mxICell, boolean)"><!-- --></A><H3>
    +setTerminal</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>setTerminal</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;terminal,
    +                    boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD>Sets the source or target terminal and returns the new terminal.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>terminal</CODE> - Cell that represents the new source or target terminal.<DD><CODE>isSource</CODE> - Boolean that specifies if the source or target terminal
    + should be set.
    +<DT><B>Returns:</B><DD>Returns the new terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildCount()"><!-- --></A><H3>
    +getChildCount</H3>
    +<PRE>
    +int <B>getChildCount</B>()</PRE>
    +<DL>
    +<DD>Returns the number of child cells.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the number of children.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIndex(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +getIndex</H3>
    +<PRE>
    +int <B>getIndex</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</PRE>
    +<DL>
    +<DD>Returns the index of the specified child in the child array.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Child whose index should be returned.
    +<DT><B>Returns:</B><DD>Returns the index of the given child.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildAt(int)"><!-- --></A><H3>
    +getChildAt</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getChildAt</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the child at the specified index.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - Integer that specifies the child to be returned.
    +<DT><B>Returns:</B><DD>Returns the child at the given index.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insert(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +insert</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>insert</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</PRE>
    +<DL>
    +<DD>Appends the specified child into the child array and updates the parent
    + reference of the child. Returns the appended child.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Cell to be appended to the child array.
    +<DT><B>Returns:</B><DD>Returns the new child.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insert(com.mxgraph.model.mxICell, int)"><!-- --></A><H3>
    +insert</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>insert</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child,
    +               int&nbsp;index)</PRE>
    +<DL>
    +<DD>Inserts the specified child into the child array at the specified index
    + and updates the parent reference of the child. Returns the inserted child.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Cell to be inserted into the child array.<DD><CODE>index</CODE> - Integer that specifies the index at which the child should
    + be inserted into the child array.
    +<DT><B>Returns:</B><DD>Returns the new child.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="remove(int)"><!-- --></A><H3>
    +remove</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>remove</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Removes the child at the specified index from the child array and
    + returns the child that was removed. Will remove the parent reference of
    + the child.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - Integer that specifies the index of the child to be
    + removed.
    +<DT><B>Returns:</B><DD>Returns the child that was removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="remove(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +remove</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>remove</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;child)</PRE>
    +<DL>
    +<DD>Removes the given child from the child array and returns it. Will remove
    + the parent reference of the child.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Cell that represents the child to be removed.
    +<DT><B>Returns:</B><DD>Returns the child that was removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeFromParent()"><!-- --></A><H3>
    +removeFromParent</H3>
    +<PRE>
    +void <B>removeFromParent</B>()</PRE>
    +<DL>
    +<DD>Removes the cell from its parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeCount()"><!-- --></A><H3>
    +getEdgeCount</H3>
    +<PRE>
    +int <B>getEdgeCount</B>()</PRE>
    +<DL>
    +<DD>Returns the number of edges in the edge array.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the number of edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeIndex(com.mxgraph.model.mxICell)"><!-- --></A><H3>
    +getEdgeIndex</H3>
    +<PRE>
    +int <B>getEdgeIndex</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD>Returns the index of the specified edge in the edge array.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell whose index should be returned.
    +<DT><B>Returns:</B><DD>Returns the index of the given edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeAt(int)"><!-- --></A><H3>
    +getEdgeAt</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>getEdgeAt</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the edge at the specified index in the edge array.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - Integer that specifies the index of the edge to be
    + returned.
    +<DT><B>Returns:</B><DD>Returns the edge at the given index.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertEdge(com.mxgraph.model.mxICell, boolean)"><!-- --></A><H3>
    +insertEdge</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>insertEdge</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +                   boolean&nbsp;isOutgoing)</PRE>
    +<DL>
    +<DD>Inserts the specified edge into the edge array and returns the edge.
    + Will update the respective terminal reference of the edge.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell to be inserted into the edge array.<DD><CODE>isOutgoing</CODE> - Boolean that specifies if the edge is outgoing.
    +<DT><B>Returns:</B><DD>Returns the new edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeEdge(com.mxgraph.model.mxICell, boolean)"><!-- --></A><H3>
    +removeEdge</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>removeEdge</B>(<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>&nbsp;edge,
    +                   boolean&nbsp;isOutgoing)</PRE>
    +<DL>
    +<DD>Removes the specified edge from the edge array and returns the edge.
    + Will remove the respective terminal reference from the edge.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell to be removed from the edge array.<DD><CODE>isOutgoing</CODE> - Boolean that specifies if the edge is outgoing.
    +<DT><B>Returns:</B><DD>Returns the edge that was removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeFromTerminal(boolean)"><!-- --></A><H3>
    +removeFromTerminal</H3>
    +<PRE>
    +void <B>removeFromTerminal</B>(boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD>Removes the edge from its source or target terminal.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isSource</CODE> - Boolean that specifies if the edge should be removed
    + from its source or target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clone()"><!-- --></A><H3>
    +clone</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>clone</B>()
    +             throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></PRE>
    +<DL>
    +<DD>Returns a clone of this cell.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a clone of this cell.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/CloneNotSupportedException.html?is-external=true" title="class or interface in java.lang">CloneNotSupportedException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICell.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxICell.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICell.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxIGraphModel.html b/java/docs/com/mxgraph/model/mxIGraphModel.html
    new file mode 100644
    index 000000000..a14d0c1bf
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxIGraphModel.html
    @@ -0,0 +1,967 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxIGraphModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxIGraphModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIGraphModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxIGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Interface mxIGraphModel</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxIGraphModel</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the requirements for a graph model to be used with mxGraph.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the interface for an atomic change of the graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#add(java.lang.Object, java.lang.Object, int)">add</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child,
    +    int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified child to the parent at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Binds the specified function to the given event name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#beginUpdate()">beginUpdate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Increments the updateLevel by one.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#cloneCells(java.lang.Object[], boolean)">cloneCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +           boolean&nbsp;includeChildren)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of clones for the given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#contains(java.lang.Object)">contains</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the model contains the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#endUpdate()">endUpdate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decrements the updateLevel by one and fires a notification event if the
    + updateLevel reaches 0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getChildAt(java.lang.Object, int)">getChildAt</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +           int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child of the given parent at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getChildCount(java.lang.Object)">getChildCount</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of children in the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getEdgeAt(java.lang.Object, int)">getEdgeAt</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +          int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edge of cell at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getEdgeCount(java.lang.Object)">getEdgeCount</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of distinct edges connected to the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getGeometry(java.lang.Object)">getGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the geometry of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getParent(java.lang.Object)">getParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the parent of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getRoot()">getRoot</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the root of the model or the topmost parent of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getStyle(java.lang.Object)">getStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the style of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getTerminal(java.lang.Object, boolean)">getTerminal</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the source or target terminal of the given edge depending on the
    + value of the boolean parameter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#getValue(java.lang.Object)">getValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the user object of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isAncestor(java.lang.Object, java.lang.Object)">isAncestor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given parent is an ancestor of the given child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isCollapsed(java.lang.Object)">isCollapsed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isConnectable(java.lang.Object)">isConnectable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is connectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isEdge(java.lang.Object)">isEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isVertex(java.lang.Object)">isVertex</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is a vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#isVisible(java.lang.Object)">isVisible</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is visible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#remove(java.lang.Object)">remove</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified cell from the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: removeListener
    +
    + Removes the given listener from the list of listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: removeListener
    +
    + Removes the given listener from the list of listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setCollapsed(java.lang.Object, boolean)">setCollapsed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +             boolean&nbsp;collapsed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the collapsed state of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)">setGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the geometry of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setRoot(java.lang.Object)">setRoot</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the root of the model and resets all structures.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setStyle(java.lang.Object, java.lang.String)">setStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the style of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setTerminal(java.lang.Object, java.lang.Object, boolean)">setTerminal</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +            boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source or target terminal of the given edge using.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setValue(java.lang.Object, java.lang.Object)">setValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the user object of then given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html#setVisible(java.lang.Object, boolean)">setVisible</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +           boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the visible state of the given cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getRoot()"><!-- --></A><H3>
    +getRoot</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getRoot</B>()</PRE>
    +<DL>
    +<DD>Returns the root of the model or the topmost parent of the given cell.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the root cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRoot(java.lang.Object)"><!-- --></A><H3>
    +setRoot</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>setRoot</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +<DD>Sets the root of the model and resets all structures.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>root</CODE> - Cell that specifies the new root.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneCells(java.lang.Object[], boolean)"><!-- --></A><H3>
    +cloneCells</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>cloneCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    boolean&nbsp;includeChildren)</PRE>
    +<DL>
    +<DD>Returns an array of clones for the given array of cells.
    + Depending on the value of includeChildren, a deep clone is created for
    + each cell. Connections are restored based if the corresponding
    + cell is contained in the passed in array.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to be cloned.<DD><CODE>includeChildren</CODE> - Boolean indicating if the cells should be cloned
    + with all descendants.
    +<DT><B>Returns:</B><DD>Returns a cloned array of cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAncestor(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +isAncestor</H3>
    +<PRE>
    +boolean <B>isAncestor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</PRE>
    +<DL>
    +<DD>Returns true if the given parent is an ancestor of the given child.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent.<DD><CODE>child</CODE> - Cell that specifies the child.
    +<DT><B>Returns:</B><DD>Returns true if child is an ancestor of parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="contains(java.lang.Object)"><!-- --></A><H3>
    +contains</H3>
    +<PRE>
    +boolean <B>contains</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the model contains the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell to be checked.
    +<DT><B>Returns:</B><DD>Returns true if the cell is in the model.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getParent(java.lang.Object)"><!-- --></A><H3>
    +getParent</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child)</PRE>
    +<DL>
    +<DD>Returns the parent of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>child</CODE> - Cell whose parent should be returned.
    +<DT><B>Returns:</B><DD>Returns the parent of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="add(java.lang.Object, java.lang.Object, int)"><!-- --></A><H3>
    +add</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>add</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;child,
    +           int&nbsp;index)</PRE>
    +<DL>
    +<DD>Adds the specified child to the parent at the given index. If no index
    + is specified then the child is appended to the parent's array of
    + children.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent to contain the child.<DD><CODE>child</CODE> - Cell that specifies the child to be inserted.<DD><CODE>index</CODE> - Integer that specifies the index of the child.
    +<DT><B>Returns:</B><DD>Returns the inserted child.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="remove(java.lang.Object)"><!-- --></A><H3>
    +remove</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>remove</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Removes the specified cell from the model. This operation will remove
    + the cell and all of its children from the model.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that should be removed.
    +<DT><B>Returns:</B><DD>Returns the removed cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildCount(java.lang.Object)"><!-- --></A><H3>
    +getChildCount</H3>
    +<PRE>
    +int <B>getChildCount</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the number of children in the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose number of children should be returned.
    +<DT><B>Returns:</B><DD>Returns the number of children in the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildAt(java.lang.Object, int)"><!-- --></A><H3>
    +getChildAt</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getChildAt</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                  int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the child of the given parent at the given index.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that represents the parent.<DD><CODE>index</CODE> - Integer that specifies the index of the child to be
    + returned.
    +<DT><B>Returns:</B><DD>Returns the child at index in parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminal(java.lang.Object, boolean)"><!-- --></A><H3>
    +getTerminal</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getTerminal</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                   boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD>Returns the source or target terminal of the given edge depending on the
    + value of the boolean parameter.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that specifies the edge.<DD><CODE>isSource</CODE> - Boolean indicating which end of the edge should be
    + returned.
    +<DT><B>Returns:</B><DD>Returns the source or target of the given edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTerminal(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +setTerminal</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>setTerminal</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                   boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD>Sets the source or target terminal of the given edge using.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that specifies the edge.<DD><CODE>terminal</CODE> - Cell that specifies the new terminal.<DD><CODE>isSource</CODE> - Boolean indicating if the terminal is the new source or
    + target terminal of the edge.
    +<DT><B>Returns:</B><DD>Returns the new terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeCount(java.lang.Object)"><!-- --></A><H3>
    +getEdgeCount</H3>
    +<PRE>
    +int <B>getEdgeCount</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the number of distinct edges connected to the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the vertex.
    +<DT><B>Returns:</B><DD>Returns the number of edges connected to cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeAt(java.lang.Object, int)"><!-- --></A><H3>
    +getEdgeAt</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getEdgeAt</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                 int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the edge of cell at the given index.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that specifies the vertex.<DD><CODE>index</CODE> - Integer that specifies the index of the edge to return.
    +<DT><B>Returns:</B><DD>Returns the edge at the given index.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertex(java.lang.Object)"><!-- --></A><H3>
    +isVertex</H3>
    +<PRE>
    +boolean <B>isVertex</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is a vertex.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the possible vertex.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is a vertex.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdge(java.lang.Object)"><!-- --></A><H3>
    +isEdge</H3>
    +<PRE>
    +boolean <B>isEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is an edge.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the possible edge.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is an edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConnectable(java.lang.Object)"><!-- --></A><H3>
    +isConnectable</H3>
    +<PRE>
    +boolean <B>isConnectable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is connectable.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose connectable state should be returned.
    +<DT><B>Returns:</B><DD>Returns the connectable state of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValue(java.lang.Object)"><!-- --></A><H3>
    +getValue</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the user object of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose user object should be returned.
    +<DT><B>Returns:</B><DD>Returns the user object of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setValue(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +setValue</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>setValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the user object of then given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose user object should be changed.<DD><CODE>value</CODE> - Object that defines the new user object.
    +<DT><B>Returns:</B><DD>Returns the new value.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGeometry(java.lang.Object)"><!-- --></A><H3>
    +getGeometry</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>getGeometry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the geometry of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose geometry should be returned.
    +<DT><B>Returns:</B><DD>Returns the geometry of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)"><!-- --></A><H3>
    +setGeometry</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>setGeometry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                       <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</PRE>
    +<DL>
    +<DD>Sets the geometry of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose geometry should be changed.<DD><CODE>geometry</CODE> - Object that defines the new geometry.
    +<DT><B>Returns:</B><DD>Returns the new geometry.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStyle(java.lang.Object)"><!-- --></A><H3>
    +getStyle</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the style of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose style should be returned.
    +<DT><B>Returns:</B><DD>Returns the style of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyle(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +setStyle</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>setStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Sets the style of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose style should be changed.<DD><CODE>style</CODE> - String of the form stylename[;key=value] to specify
    + the new cell style.
    +<DT><B>Returns:</B><DD>Returns the new style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCollapsed(java.lang.Object)"><!-- --></A><H3>
    +isCollapsed</H3>
    +<PRE>
    +boolean <B>isCollapsed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is collapsed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose collapsed state should be returned.
    +<DT><B>Returns:</B><DD>Returns the collapsed state of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCollapsed(java.lang.Object, boolean)"><!-- --></A><H3>
    +setCollapsed</H3>
    +<PRE>
    +boolean <B>setCollapsed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     boolean&nbsp;collapsed)</PRE>
    +<DL>
    +<DD>Sets the collapsed state of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose collapsed state should be changed.<DD><CODE>collapsed</CODE> - Boolean that specifies the new collpased state.
    +<DT><B>Returns:</B><DD>Returns the new collapsed state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVisible(java.lang.Object)"><!-- --></A><H3>
    +isVisible</H3>
    +<PRE>
    +boolean <B>isVisible</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is visible.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose visible state should be returned.
    +<DT><B>Returns:</B><DD>Returns the visible state of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVisible(java.lang.Object, boolean)"><!-- --></A><H3>
    +setVisible</H3>
    +<PRE>
    +boolean <B>setVisible</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                   boolean&nbsp;visible)</PRE>
    +<DL>
    +<DD>Sets the visible state of the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose visible state should be changed.<DD><CODE>visible</CODE> - Boolean that specifies the new visible state.
    +<DT><B>Returns:</B><DD>Returns the new visible state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="beginUpdate()"><!-- --></A><H3>
    +beginUpdate</H3>
    +<PRE>
    +void <B>beginUpdate</B>()</PRE>
    +<DL>
    +<DD>Increments the updateLevel by one. The event notification is queued
    + until updateLevel reaches 0 by use of endUpdate.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="endUpdate()"><!-- --></A><H3>
    +endUpdate</H3>
    +<PRE>
    +void <B>endUpdate</B>()</PRE>
    +<DL>
    +<DD>Decrements the updateLevel by one and fires a notification event if the
    + updateLevel reaches 0.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +addListener</H3>
    +<PRE>
    +void <B>addListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +                 <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Binds the specified function to the given event name. If no event name
    + is given, then the listener is registered for all events.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +void <B>removeListener</B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Function: removeListener
    +
    + Removes the given listener from the list of listeners.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +void <B>removeListener</B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</PRE>
    +<DL>
    +<DD>Function: removeListener
    +
    + Removes the given listener from the list of listeners.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIGraphModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxIGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html b/java/docs/com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html
    new file mode 100644
    index 000000000..4b519c5ef
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html
    @@ -0,0 +1,375 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxIGraphModel.mxAtomicGraphModelChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxIGraphModel.mxAtomicGraphModelChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIGraphModel.mxAtomicGraphModelChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphModel.mxAtomicGraphModelChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.model</FONT>
    +<BR>
    +Class mxIGraphModel.mxAtomicGraphModelChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing interface:</B><DD><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract static class <B>mxIGraphModel.mxAtomicGraphModelChange</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DL>
    +</PRE>
    +
    +<P>
    +Defines the interface for an atomic change of the graph model.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the model where the change happened.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#mxIGraphModel.mxAtomicGraphModelChange()">mxIGraphModel.mxAtomicGraphModelChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an empty atomic graph model change.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#mxIGraphModel.mxAtomicGraphModelChange(com.mxgraph.model.mxIGraphModel)">mxIGraphModel.mxAtomicGraphModelChange</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an atomic graph model change for the given model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the change on the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()">getModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the model where the change happened.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the model where the change is to be carried out.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="model"><!-- --></A><H3>
    +model</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A> <B>model</B></PRE>
    +<DL>
    +<DD>Holds the model where the change happened.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxIGraphModel.mxAtomicGraphModelChange()"><!-- --></A><H3>
    +mxIGraphModel.mxAtomicGraphModelChange</H3>
    +<PRE>
    +public <B>mxIGraphModel.mxAtomicGraphModelChange</B>()</PRE>
    +<DL>
    +<DD>Constructs an empty atomic graph model change.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxIGraphModel.mxAtomicGraphModelChange(com.mxgraph.model.mxIGraphModel)"><!-- --></A><H3>
    +mxIGraphModel.mxAtomicGraphModelChange</H3>
    +<PRE>
    +public <B>mxIGraphModel.mxAtomicGraphModelChange</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Constructs an atomic graph model change for the given model.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getModel()"><!-- --></A><H3>
    +getModel</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A> <B>getModel</B>()</PRE>
    +<DL>
    +<DD>Returns the model where the change happened.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setModel(com.mxgraph.model.mxIGraphModel)"><!-- --></A><H3>
    +setModel</H3>
    +<PRE>
    +public void <B>setModel</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Sets the model where the change is to be carried out.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public abstract void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Executes the change on the model.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIGraphModel.mxAtomicGraphModelChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIGraphModel.mxAtomicGraphModelChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/package-frame.html b/java/docs/com/mxgraph/model/package-frame.html
    new file mode 100644
    index 000000000..660617183
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/package-frame.html
    @@ -0,0 +1,71 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.model (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/model/package-summary.html" target="classFrame">com.mxgraph.model</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxGraphModel.Filter.html" title="interface in com.mxgraph.model" target="classFrame"><I>mxGraphModel.Filter</I></A>
    +<BR>
    +<A HREF="mxICell.html" title="interface in com.mxgraph.model" target="classFrame"><I>mxICell</I></A>
    +<BR>
    +<A HREF="mxIGraphModel.html" title="interface in com.mxgraph.model" target="classFrame"><I>mxIGraphModel</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxCell.html" title="class in com.mxgraph.model" target="classFrame">mxCell</A>
    +<BR>
    +<A HREF="mxCellPath.html" title="class in com.mxgraph.model" target="classFrame">mxCellPath</A>
    +<BR>
    +<A HREF="mxGeometry.html" title="class in com.mxgraph.model" target="classFrame">mxGeometry</A>
    +<BR>
    +<A HREF="mxGraphModel.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel</A>
    +<BR>
    +<A HREF="mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxChildChange</A>
    +<BR>
    +<A HREF="mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxCollapseChange</A>
    +<BR>
    +<A HREF="mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxGeometryChange</A>
    +<BR>
    +<A HREF="mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxRootChange</A>
    +<BR>
    +<A HREF="mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxStyleChange</A>
    +<BR>
    +<A HREF="mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxTerminalChange</A>
    +<BR>
    +<A HREF="mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxValueChange</A>
    +<BR>
    +<A HREF="mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model" target="classFrame">mxGraphModel.mxVisibleChange</A>
    +<BR>
    +<A HREF="mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model" target="classFrame">mxIGraphModel.mxAtomicGraphModelChange</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/package-summary.html b/java/docs/com/mxgraph/model/package-summary.html
    new file mode 100644
    index 000000000..3bb277d71
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/package-summary.html
    @@ -0,0 +1,243 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.model (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.model (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/orthogonal/model/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.model
    +</H2>
    +This package contains the classes that define a graph model.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A></B></TD>
    +<TD>Defines the requirements for a cell that can be used in an mxGraphModel.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></B></TD>
    +<TD>Defines the requirements for a graph model to be used with mxGraph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A></B></TD>
    +<TD>Cells are the elements of the graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model">mxCellPath</A></B></TD>
    +<TD>Implements a mechanism for temporary cell Ids.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></B></TD>
    +<TD>Represents the geometry of a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></B></TD>
    +<TD>Extends mxEventSource to implement a graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></TD>
    +<TD>Defines the interface for an atomic change of the graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.model Description
    +</H2>
    +
    +<P>
    +This package contains the classes that define a graph model.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/orthogonal/model/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/package-tree.html b/java/docs/com/mxgraph/model/package-tree.html
    new file mode 100644
    index 000000000..86c332143
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/package-tree.html
    @@ -0,0 +1,171 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.model Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.model Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/orthogonal/model/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.model
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model"><B>mxCell</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model"><B>mxCellPath</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>mxEventSource</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><B>mxGraphModel</B></A> (implements com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +</UL>
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model"><B>mxIGraphModel.mxAtomicGraphModelChange</B></A> (implements com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxChildChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxCollapseChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxGeometryChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxRootChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxStyleChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxTerminalChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxValueChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxVisibleChange</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><B>mxPoint</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><B>mxRectangle</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model"><B>mxGeometry</B></A></UL>
    +</UL>
    +</UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><B>mxGraphModel.Filter</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><B>mxICell</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><B>mxIGraphModel</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/layout/orthogonal/model/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/model/package-use.html b/java/docs/com/mxgraph/model/package-use.html
    new file mode 100644
    index 000000000..6cf2400cc
    --- /dev/null
    +++ b/java/docs/com/mxgraph/model/package-use.html
    @@ -0,0 +1,299 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.model (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.model (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.model</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> used by <A HREF="../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxCell.html#com.mxgraph.io"><B>mxCell</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cells are the elements of the graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxICell.html#com.mxgraph.io"><B>mxICell</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a cell that can be used in an mxGraphModel.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> used by <A HREF="../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxGeometry.html#com.mxgraph.model"><B>mxGeometry</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the geometry of a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxGraphModel.html#com.mxgraph.model"><B>mxGraphModel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extends mxEventSource to implement a graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxGraphModel.Filter.html#com.mxgraph.model"><B>mxGraphModel.Filter</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxICell.html#com.mxgraph.model"><B>mxICell</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a cell that can be used in an mxGraphModel.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxIGraphModel.html#com.mxgraph.model"><B>mxIGraphModel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a graph model to be used with mxGraph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxIGraphModel.mxAtomicGraphModelChange.html#com.mxgraph.model"><B>mxIGraphModel.mxAtomicGraphModelChange</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the interface for an atomic change of the graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> used by <A HREF="../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxGraphModel.html#com.mxgraph.sharing"><B>mxGraphModel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extends mxEventSource to implement a graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxIGraphModel.mxAtomicGraphModelChange.html#com.mxgraph.sharing"><B>mxIGraphModel.mxAtomicGraphModelChange</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the interface for an atomic change of the graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> used by <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxIGraphModel.html#com.mxgraph.util"><B>mxIGraphModel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a graph model to be used with mxGraph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> used by <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxGeometry.html#com.mxgraph.view"><B>mxGeometry</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the geometry of a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/model/class-use/mxIGraphModel.html#com.mxgraph.view"><B>mxIGraphModel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a graph model to be used with mxGraph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/model/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/class-use/mxDomOutputParser.IElementHandler.html b/java/docs/com/mxgraph/reader/class-use/mxDomOutputParser.IElementHandler.html
    new file mode 100644
    index 000000000..cd7f2b6d8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/class-use/mxDomOutputParser.IElementHandler.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.reader.mxDomOutputParser.IElementHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.reader.mxDomOutputParser.IElementHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxDomOutputParser.IElementHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomOutputParser.IElementHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.reader.mxDomOutputParser.IElementHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader">mxDomOutputParser.IElementHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader">mxDomOutputParser.IElementHandler</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> with type parameters of type <A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader">mxDomOutputParser.IElementHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader">mxDomOutputParser.IElementHandler</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxDomOutputParser.</B><B><A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.html#handlers">handlers</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxDomOutputParser.IElementHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomOutputParser.IElementHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/class-use/mxDomOutputParser.html b/java/docs/com/mxgraph/reader/class-use/mxDomOutputParser.html
    new file mode 100644
    index 000000000..662599e19
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/class-use/mxDomOutputParser.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.reader.mxDomOutputParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.reader.mxDomOutputParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxDomOutputParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomOutputParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.reader.mxDomOutputParser</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.reader.mxDomOutputParser
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxDomOutputParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomOutputParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/class-use/mxGraphViewImageReader.html b/java/docs/com/mxgraph/reader/class-use/mxGraphViewImageReader.html
    new file mode 100644
    index 000000000..d7fb18304
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/class-use/mxGraphViewImageReader.html
    @@ -0,0 +1,192 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.reader.mxGraphViewImageReader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.reader.mxGraphViewImageReader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxGraphViewImageReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphViewImageReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.reader.mxGraphViewImageReader</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> with parameters of type <A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewImageReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html#convert(org.xml.sax.InputSource, com.mxgraph.reader.mxGraphViewImageReader)">convert</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/InputSource.html?is-external=true" title="class or interface in org.xml.sax">InputSource</A>&nbsp;inputSource,
    +        <A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>&nbsp;viewReader)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the image for the given display XML input source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewImageReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html#convert(java.lang.String, com.mxgraph.reader.mxGraphViewImageReader)">convert</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;filename,
    +        <A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>&nbsp;viewReader)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the image for the given display XML file.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxGraphViewImageReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphViewImageReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/class-use/mxGraphViewReader.html b/java/docs/com/mxgraph/reader/class-use/mxGraphViewReader.html
    new file mode 100644
    index 000000000..17e11859f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/class-use/mxGraphViewReader.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.reader.mxGraphViewReader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.reader.mxGraphViewReader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxGraphViewReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphViewReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.reader.mxGraphViewReader</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A converter that renders display XML data onto a graphics canvas.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxGraphViewReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphViewReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/class-use/mxSaxOutputHandler.IElementHandler.html b/java/docs/com/mxgraph/reader/class-use/mxSaxOutputHandler.IElementHandler.html
    new file mode 100644
    index 000000000..e55db3866
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/class-use/mxSaxOutputHandler.IElementHandler.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.reader.mxSaxOutputHandler.IElementHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.reader.mxSaxOutputHandler.IElementHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxSaxOutputHandler.IElementHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSaxOutputHandler.IElementHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.reader.mxSaxOutputHandler.IElementHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader">mxSaxOutputHandler.IElementHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader">mxSaxOutputHandler.IElementHandler</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> with type parameters of type <A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader">mxSaxOutputHandler.IElementHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader">mxSaxOutputHandler.IElementHandler</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxSaxOutputHandler.</B><B><A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.html#handlers">handlers</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxSaxOutputHandler.IElementHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSaxOutputHandler.IElementHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/class-use/mxSaxOutputHandler.html b/java/docs/com/mxgraph/reader/class-use/mxSaxOutputHandler.html
    new file mode 100644
    index 000000000..a356f5550
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/class-use/mxSaxOutputHandler.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.reader.mxSaxOutputHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.reader.mxSaxOutputHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxSaxOutputHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSaxOutputHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.reader.mxSaxOutputHandler</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.reader.mxSaxOutputHandler
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/reader//class-usemxSaxOutputHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSaxOutputHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/mxDomOutputParser.IElementHandler.html b/java/docs/com/mxgraph/reader/mxDomOutputParser.IElementHandler.html
    new file mode 100644
    index 000000000..af4b09d85
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/mxDomOutputParser.IElementHandler.html
    @@ -0,0 +1,210 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxDomOutputParser.IElementHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxDomOutputParser.IElementHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDomOutputParser.IElementHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomOutputParser.IElementHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.reader</FONT>
    +<BR>
    +Interface mxDomOutputParser.IElementHandler</H2>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader">mxDomOutputParser</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected static interface <B>mxDomOutputParser.IElementHandler</B></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html#parseElement(org.w3c.dom.Element)">parseElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="parseElement(org.w3c.dom.Element)"><!-- --></A><H3>
    +parseElement</H3>
    +<PRE>
    +void <B>parseElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDomOutputParser.IElementHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomOutputParser.IElementHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/mxDomOutputParser.html b/java/docs/com/mxgraph/reader/mxDomOutputParser.html
    new file mode 100644
    index 000000000..8c8bcddb6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/mxDomOutputParser.html
    @@ -0,0 +1,410 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxDomOutputParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxDomOutputParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDomOutputParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxDomOutputParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomOutputParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.reader</FONT>
    +<BR>
    +Class mxDomOutputParser</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.reader.mxDomOutputParser</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxDomOutputParser</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +public static void main(String[] args)
    +        {
    +                try
    +                {
    +                        String filename = Test.class.getResource(
    +                                        "/com/mxgraph/online/exported.xml").getPath();
    +                        String xml = mxUtils.readFile(filename);
    +                        System.out.println("xml=" + xml);
    +
    +                        Document doc = mxUtils.parseXml(xml);
    +                        Element root = doc.getDocumentElement();
    +                        int width = Integer.parseInt(root.getAttribute("width"));
    +                        int height = Integer.parseInt(root.getAttribute("height"));
    +
    +                        System.out.println("width=" + width + " height=" + height);
    +
    +                        BufferedImage img = mxUtils.createBufferedImage(width, height,
    +                                        Color.WHITE);
    +                        Graphics2D g2 = img.createGraphics();
    +                        mxUtils.setAntiAlias(g2, true, true);
    +                        mxDomOutputParser reader = new mxDomOutputParser(
    +                                        new mxGraphicsExportCanvas(g2));
    +                        reader.read((Element) root.getFirstChild().getNextSibling());
    +
    +                        ImageIO.write(img, "PNG", new File(
    +                                        "C:\\Users\\Gaudenz\\Desktop\\test.png"));
    +                }
    +                catch (Exception e)
    +                {
    +                        e.printStackTrace();
    +                }
    +        }
    +
    +        // -------------
    +
    +        Document doc = mxUtils.parseXml(xml);
    +        Element root = doc.getDocumentElement();
    +        mxDomOutputParser reader = new mxDomOutputParser(canvas);
    +        reader.read(root.getFirstChild());
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader">mxDomOutputParser.IElementHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader">mxDomOutputParser.IElementHandler</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html#handlers">handlers</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html#mxDomOutputParser(com.mxgraph.canvas.mxICanvas2D)">mxDomOutputParser</A></B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html#getValue(org.w3c.dom.Element, java.lang.String, java.lang.String)">getValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the given attribute value or an empty string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html#initHandlers()">initHandlers</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html#read(org.w3c.dom.Node)">read</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="canvas"><!-- --></A><H3>
    +canvas</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A> <B>canvas</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="handlers"><!-- --></A><H3>
    +handlers</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader">mxDomOutputParser.IElementHandler</A>&gt; <B>handlers</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxDomOutputParser(com.mxgraph.canvas.mxICanvas2D)"><!-- --></A><H3>
    +mxDomOutputParser</H3>
    +<PRE>
    +public <B>mxDomOutputParser</B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>&nbsp;canvas)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="read(org.w3c.dom.Node)"><!-- --></A><H3>
    +read</H3>
    +<PRE>
    +public void <B>read</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="initHandlers()"><!-- --></A><H3>
    +initHandlers</H3>
    +<PRE>
    +protected void <B>initHandlers</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValue(org.w3c.dom.Element, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the given attribute value or an empty string.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDomOutputParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxDomOutputParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomOutputParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/mxGraphViewImageReader.html b/java/docs/com/mxgraph/reader/mxGraphViewImageReader.html
    new file mode 100644
    index 000000000..bb5f77cfb
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/mxGraphViewImageReader.html
    @@ -0,0 +1,772 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxGraphViewImageReader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphViewImageReader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphViewImageReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxGraphViewImageReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphViewImageReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.reader</FONT>
    +<BR>
    +Class mxGraphViewImageReader</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">org.xml.sax.helpers.DefaultHandler</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">com.mxgraph.reader.mxGraphViewReader</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.reader.mxGraphViewImageReader</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphViewImageReader</B><DT>extends <A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A></DL>
    +</PRE>
    +
    +<P>
    +A converter that renders display XML data onto a graphics canvas. This
    + reader can only be used to generate images for encoded graph views.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#antiAlias">antiAlias</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the image should be anti-aliased.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#background">background</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the background color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#border">border</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the border which is added to the size of the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#clip">clip</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the clip to be drawn.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#cropping">cropping</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the border which is added to the size of the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.reader.mxGraphViewReader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.reader.<A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#canvas">canvas</A>, <A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#htmlLabels">htmlLabels</A>, <A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#scale">scale</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader()">mxGraphViewImageReader</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new reader with a transparent background.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader(java.awt.Color)">mxGraphViewImageReader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new reader with the given background color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader(java.awt.Color, int)">mxGraphViewImageReader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                       int&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new reader with a transparent background.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader(java.awt.Color, int, boolean)">mxGraphViewImageReader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                       int&nbsp;border,
    +                       boolean&nbsp;antiAlias)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new reader with a transparent background.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader(java.awt.Color, int, boolean, boolean)">mxGraphViewImageReader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                       int&nbsp;border,
    +                       boolean&nbsp;antiAlias,
    +                       boolean&nbsp;cropping)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new reader with a transparent background.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#convert(org.xml.sax.InputSource, com.mxgraph.reader.mxGraphViewImageReader)">convert</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/InputSource.html?is-external=true" title="class or interface in org.xml.sax">InputSource</A>&nbsp;inputSource,
    +        <A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>&nbsp;viewReader)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the image for the given display XML input source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#convert(java.lang.String, com.mxgraph.reader.mxGraphViewImageReader)">convert</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;filename,
    +        <A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>&nbsp;viewReader)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the image for the given display XML file.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#createCanvas(java.util.Map)">createCanvas</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;attrs)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the canvas to be used for rendering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#createGraphicsCanvas()">createGraphicsCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook that creates the graphics canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#getBackground()">getBackground</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#getBorder()">getBorder</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#getClip()">getClip</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#isAntiAlias()">isAntiAlias</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#isCropping()">isCropping</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the optional clipping rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#setAntiAlias(boolean)">setAntiAlias</A></B>(boolean&nbsp;antiAlias)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#setBackground(java.awt.Color)">setBackground</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#setBorder(int)">setBorder</A></B>(int&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#setClip(com.mxgraph.util.mxRectangle)">setClip</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html#setCropping(boolean)">setCropping</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.reader.mxGraphViewReader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.reader.<A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#getCanvas()">getCanvas</A>, <A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#isHtmlLabels()">isHtmlLabels</A>, <A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#parseElement(java.lang.String, java.util.Map)">parseElement</A>, <A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#parsePoints(java.lang.String)">parsePoints</A>, <A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#parseState(com.mxgraph.view.mxCellState, boolean)">parseState</A>, <A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#setHtmlLabels(boolean)">setHtmlLabels</A>, <A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)">startElement</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.helpers.DefaultHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class org.xml.sax.helpers.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">DefaultHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#characters(char[], int, int)" title="class or interface in org.xml.sax.helpers">characters</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#endDocument()" title="class or interface in org.xml.sax.helpers">endDocument</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#endElement(java.lang.String, java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">endElement</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#endPrefixMapping(java.lang.String)" title="class or interface in org.xml.sax.helpers">endPrefixMapping</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#error(org.xml.sax.SAXParseException)" title="class or interface in org.xml.sax.helpers">error</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#fatalError(org.xml.sax.SAXParseException)" title="class or interface in org.xml.sax.helpers">fatalError</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#ignorableWhitespace(char[], int, int)" title="class or interface in org.xml.sax.helpers">ignorableWhitespace</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#notationDecl(java.lang.String, java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">notationDecl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#processingInstruction(java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">processingInstruction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#resolveEntity(java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">resolveEntity</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#setDocumentLocator(org.xml.sax.Locator)" title="class or interface in org.xml.sax.helpers">setDocumentLocator</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#skippedEntity(java.lang.String)" title="class or interface in org.xml.sax.helpers">skippedEntity</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#startDocument()" title="class or interface in org.xml.sax.helpers">startDocument</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#startPrefixMapping(java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">startPrefixMapping</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">unparsedEntityDecl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#warning(org.xml.sax.SAXParseException)" title="class or interface in org.xml.sax.helpers">warning</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="background"><!-- --></A><H3>
    +background</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>background</B></PRE>
    +<DL>
    +<DD>Specifies the background color. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="antiAlias"><!-- --></A><H3>
    +antiAlias</H3>
    +<PRE>
    +protected boolean <B>antiAlias</B></PRE>
    +<DL>
    +<DD>Specifies if the image should be anti-aliased. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="border"><!-- --></A><H3>
    +border</H3>
    +<PRE>
    +protected int <B>border</B></PRE>
    +<DL>
    +<DD>Specifies the border which is added to the size of the graph. Default is
    + 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cropping"><!-- --></A><H3>
    +cropping</H3>
    +<PRE>
    +protected boolean <B>cropping</B></PRE>
    +<DL>
    +<DD>Specifies the border which is added to the size of the graph. Default is
    + true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="clip"><!-- --></A><H3>
    +clip</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>clip</B></PRE>
    +<DL>
    +<DD>Defines the clip to be drawn. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphViewImageReader()"><!-- --></A><H3>
    +mxGraphViewImageReader</H3>
    +<PRE>
    +public <B>mxGraphViewImageReader</B>()</PRE>
    +<DL>
    +<DD>Constructs a new reader with a transparent background.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphViewImageReader(java.awt.Color)"><!-- --></A><H3>
    +mxGraphViewImageReader</H3>
    +<PRE>
    +public <B>mxGraphViewImageReader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background)</PRE>
    +<DL>
    +<DD>Constructs a new reader with the given background color.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphViewImageReader(java.awt.Color, int)"><!-- --></A><H3>
    +mxGraphViewImageReader</H3>
    +<PRE>
    +public <B>mxGraphViewImageReader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                              int&nbsp;border)</PRE>
    +<DL>
    +<DD>Constructs a new reader with a transparent background.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphViewImageReader(java.awt.Color, int, boolean)"><!-- --></A><H3>
    +mxGraphViewImageReader</H3>
    +<PRE>
    +public <B>mxGraphViewImageReader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                              int&nbsp;border,
    +                              boolean&nbsp;antiAlias)</PRE>
    +<DL>
    +<DD>Constructs a new reader with a transparent background.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphViewImageReader(java.awt.Color, int, boolean, boolean)"><!-- --></A><H3>
    +mxGraphViewImageReader</H3>
    +<PRE>
    +public <B>mxGraphViewImageReader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                              int&nbsp;border,
    +                              boolean&nbsp;antiAlias,
    +                              boolean&nbsp;cropping)</PRE>
    +<DL>
    +<DD>Constructs a new reader with a transparent background.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getBackground()"><!-- --></A><H3>
    +getBackground</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getBackground</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBackground(java.awt.Color)"><!-- --></A><H3>
    +setBackground</H3>
    +<PRE>
    +public void <B>setBackground</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBorder()"><!-- --></A><H3>
    +getBorder</H3>
    +<PRE>
    +public int <B>getBorder</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBorder(int)"><!-- --></A><H3>
    +setBorder</H3>
    +<PRE>
    +public void <B>setBorder</B>(int&nbsp;border)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAntiAlias()"><!-- --></A><H3>
    +isAntiAlias</H3>
    +<PRE>
    +public boolean <B>isAntiAlias</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAntiAlias(boolean)"><!-- --></A><H3>
    +setAntiAlias</H3>
    +<PRE>
    +public void <B>setAntiAlias</B>(boolean&nbsp;antiAlias)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCropping()"><!-- --></A><H3>
    +isCropping</H3>
    +<PRE>
    +public boolean <B>isCropping</B>()</PRE>
    +<DL>
    +<DD>Specifies the optional clipping rectangle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCropping(boolean)"><!-- --></A><H3>
    +setCropping</H3>
    +<PRE>
    +public void <B>setCropping</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getClip()"><!-- --></A><H3>
    +getClip</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getClip</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setClip(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +setClip</H3>
    +<PRE>
    +public void <B>setClip</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createCanvas(java.util.Map)"><!-- --></A><H3>
    +createCanvas</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> <B>createCanvas</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;attrs)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#createCanvas(java.util.Map)">mxGraphViewReader</A></CODE></B></DD>
    +<DD>Returns the canvas to be used for rendering.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#createCanvas(java.util.Map)">createCanvas</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>attrs</CODE> - Specifies the attributes of the new canvas.
    +<DT><B>Returns:</B><DD>Returns a new canvas.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createGraphicsCanvas()"><!-- --></A><H3>
    +createGraphicsCanvas</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A> <B>createGraphicsCanvas</B>()</PRE>
    +<DL>
    +<DD>Hook that creates the graphics canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="convert(java.lang.String, com.mxgraph.reader.mxGraphViewImageReader)"><!-- --></A><H3>
    +convert</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>convert</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;filename,
    +                                    <A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>&nbsp;viewReader)
    +                             throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/xml/parsers/ParserConfigurationException.html?is-external=true" title="class or interface in javax.xml.parsers">ParserConfigurationException</A>,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</A>,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Creates the image for the given display XML file. (Note: The XML file is
    + an encoded mxGraphView, not mxGraphModel.)
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>filename</CODE> - Filename of the display XML file.
    +<DT><B>Returns:</B><DD>Returns an image representing the display XML file.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/xml/parsers/ParserConfigurationException.html?is-external=true" title="class or interface in javax.xml.parsers">ParserConfigurationException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="convert(org.xml.sax.InputSource, com.mxgraph.reader.mxGraphViewImageReader)"><!-- --></A><H3>
    +convert</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>convert</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/InputSource.html?is-external=true" title="class or interface in org.xml.sax">InputSource</A>&nbsp;inputSource,
    +                                    <A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>&nbsp;viewReader)
    +                             throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/xml/parsers/ParserConfigurationException.html?is-external=true" title="class or interface in javax.xml.parsers">ParserConfigurationException</A>,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</A>,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Creates the image for the given display XML input source. (Note: The XML
    + is an encoded mxGraphView, not mxGraphModel.)
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>inputSource</CODE> - Input source that contains the display XML.
    +<DT><B>Returns:</B><DD>Returns an image representing the display XML input source.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/xml/parsers/ParserConfigurationException.html?is-external=true" title="class or interface in javax.xml.parsers">ParserConfigurationException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphViewImageReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxGraphViewImageReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphViewImageReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/mxGraphViewReader.html b/java/docs/com/mxgraph/reader/mxGraphViewReader.html
    new file mode 100644
    index 000000000..b2cb91f26
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/mxGraphViewReader.html
    @@ -0,0 +1,522 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxGraphViewReader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphViewReader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphViewReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxGraphViewReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphViewReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.reader</FONT>
    +<BR>
    +Class mxGraphViewReader</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">org.xml.sax.helpers.DefaultHandler</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.reader.mxGraphViewReader</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract class <B>mxGraphViewReader</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">DefaultHandler</A></DL>
    +</PRE>
    +
    +<P>
    +An abstract converter that renders display XML data onto a canvas.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the canvas to be used for rendering the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#htmlLabels">htmlLabels</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if labels should be rendered as HTML markup.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#scale">scale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the global scale of the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#mxGraphViewReader()">mxGraphViewReader</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#createCanvas(java.util.Map)">createCanvas</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;attrs)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the canvas to be used for rendering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#getCanvas()">getCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the canvas that is used for rendering the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#isHtmlLabels()">isHtmlLabels</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the htmlLabels switch.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#parseElement(java.lang.String, java.util.Map)">parseElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tagName,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;attrs)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the given element and paints it onto the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#parsePoints(java.lang.String)">parsePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;pts)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the list of points into an object-oriented representation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#parseState(com.mxgraph.view.mxCellState, boolean)">parseState</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           boolean&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the bounds, absolute points and label information from the style
    + of the state into its respective fields and returns the label of the
    + cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#setHtmlLabels(boolean)">setHtmlLabels</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the htmlLabels switch.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)">startElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;uri,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;localName,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;qName,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</A>&nbsp;atts)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.helpers.DefaultHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class org.xml.sax.helpers.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">DefaultHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#characters(char[], int, int)" title="class or interface in org.xml.sax.helpers">characters</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#endDocument()" title="class or interface in org.xml.sax.helpers">endDocument</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#endElement(java.lang.String, java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">endElement</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#endPrefixMapping(java.lang.String)" title="class or interface in org.xml.sax.helpers">endPrefixMapping</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#error(org.xml.sax.SAXParseException)" title="class or interface in org.xml.sax.helpers">error</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#fatalError(org.xml.sax.SAXParseException)" title="class or interface in org.xml.sax.helpers">fatalError</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#ignorableWhitespace(char[], int, int)" title="class or interface in org.xml.sax.helpers">ignorableWhitespace</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#notationDecl(java.lang.String, java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">notationDecl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#processingInstruction(java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">processingInstruction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#resolveEntity(java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">resolveEntity</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#setDocumentLocator(org.xml.sax.Locator)" title="class or interface in org.xml.sax.helpers">setDocumentLocator</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#skippedEntity(java.lang.String)" title="class or interface in org.xml.sax.helpers">skippedEntity</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#startDocument()" title="class or interface in org.xml.sax.helpers">startDocument</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#startPrefixMapping(java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">startPrefixMapping</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">unparsedEntityDecl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#warning(org.xml.sax.SAXParseException)" title="class or interface in org.xml.sax.helpers">warning</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="canvas"><!-- --></A><H3>
    +canvas</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> <B>canvas</B></PRE>
    +<DL>
    +<DD>Holds the canvas to be used for rendering the graph.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="scale"><!-- --></A><H3>
    +scale</H3>
    +<PRE>
    +protected double <B>scale</B></PRE>
    +<DL>
    +<DD>Holds the global scale of the graph. This is set just before
    + createCanvas is called.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="htmlLabels"><!-- --></A><H3>
    +htmlLabels</H3>
    +<PRE>
    +protected boolean <B>htmlLabels</B></PRE>
    +<DL>
    +<DD>Specifies if labels should be rendered as HTML markup.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphViewReader()"><!-- --></A><H3>
    +mxGraphViewReader</H3>
    +<PRE>
    +public <B>mxGraphViewReader</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setHtmlLabels(boolean)"><!-- --></A><H3>
    +setHtmlLabels</H3>
    +<PRE>
    +public void <B>setHtmlLabels</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the htmlLabels switch.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHtmlLabels()"><!-- --></A><H3>
    +isHtmlLabels</H3>
    +<PRE>
    +public boolean <B>isHtmlLabels</B>()</PRE>
    +<DL>
    +<DD>Returns the htmlLabels switch.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createCanvas(java.util.Map)"><!-- --></A><H3>
    +createCanvas</H3>
    +<PRE>
    +public abstract <A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> <B>createCanvas</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;attrs)</PRE>
    +<DL>
    +<DD>Returns the canvas to be used for rendering.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>attrs</CODE> - Specifies the attributes of the new canvas.
    +<DT><B>Returns:</B><DD>Returns a new canvas.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCanvas()"><!-- --></A><H3>
    +getCanvas</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> <B>getCanvas</B>()</PRE>
    +<DL>
    +<DD>Returns the canvas that is used for rendering the graph.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the canvas.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><!-- --></A><H3>
    +startElement</H3>
    +<PRE>
    +public void <B>startElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;uri,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;localName,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;qName,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</A>&nbsp;atts)
    +                  throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</A></PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ContentHandler.html?is-external=true#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)" title="class or interface in org.xml.sax">startElement</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)" title="class or interface in org.xml.sax.helpers">startElement</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">DefaultHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseElement(java.lang.String, java.util.Map)"><!-- --></A><H3>
    +parseElement</H3>
    +<PRE>
    +public void <B>parseElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tagName,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;attrs)</PRE>
    +<DL>
    +<DD>Parses the given element and paints it onto the canvas.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>tagName</CODE> - Name of the node to be parsed.<DD><CODE>attrs</CODE> - Attributes of the node to be parsed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseState(com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +parseState</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>parseState</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                         boolean&nbsp;edge)</PRE>
    +<DL>
    +<DD>Parses the bounds, absolute points and label information from the style
    + of the state into its respective fields and returns the label of the
    + cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parsePoints(java.lang.String)"><!-- --></A><H3>
    +parsePoints</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>parsePoints</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;pts)</PRE>
    +<DL>
    +<DD>Parses the list of points into an object-oriented representation.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>pts</CODE> - String containing a list of points.
    +<DT><B>Returns:</B><DD>Returns the points as a list of mxPoints.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphViewReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxGraphViewReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphViewReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html b/java/docs/com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html
    new file mode 100644
    index 000000000..15e9c8fee
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html
    @@ -0,0 +1,210 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxSaxOutputHandler.IElementHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSaxOutputHandler.IElementHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSaxOutputHandler.IElementHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSaxOutputHandler.IElementHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.reader</FONT>
    +<BR>
    +Interface mxSaxOutputHandler.IElementHandler</H2>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected static interface <B>mxSaxOutputHandler.IElementHandler</B></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html#parseElement(org.xml.sax.Attributes)">parseElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</A>&nbsp;atts)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="parseElement(org.xml.sax.Attributes)"><!-- --></A><H3>
    +parseElement</H3>
    +<PRE>
    +void <B>parseElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</A>&nbsp;atts)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSaxOutputHandler.IElementHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSaxOutputHandler.IElementHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/mxSaxOutputHandler.html b/java/docs/com/mxgraph/reader/mxSaxOutputHandler.html
    new file mode 100644
    index 000000000..adf7c7acf
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/mxSaxOutputHandler.html
    @@ -0,0 +1,443 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxSaxOutputHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSaxOutputHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSaxOutputHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxSaxOutputHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSaxOutputHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.reader</FONT>
    +<BR>
    +Class mxSaxOutputHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">org.xml.sax.helpers.DefaultHandler</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.reader.mxSaxOutputHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSaxOutputHandler</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">DefaultHandler</A></DL>
    +</PRE>
    +
    +<P>
    +XMLReader reader = SAXParserFactory.newInstance().newSAXParser()
    +                        .getXMLReader();
    +        reader.setContentHandler(new mxSaxExportHandler(
    +                        new mxGraphicsExportCanvas(g2)));
    +        reader.parse(new InputSource(new StringReader(xml)));
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader">mxSaxOutputHandler.IElementHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader">mxSaxOutputHandler.IElementHandler</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html#handlers">handlers</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html#mxSaxOutputHandler(com.mxgraph.canvas.mxICanvas2D)">mxSaxOutputHandler</A></B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html#getCanvas()">getCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the canvas for rendering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html#getValue(org.xml.sax.Attributes, java.lang.String, java.lang.String)">getValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</A>&nbsp;atts,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the given attribute value or an empty string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html#initHandlers()">initHandlers</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html#setCanvas(com.mxgraph.canvas.mxICanvas2D)">setCanvas</A></B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the canvas for rendering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)">startElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;uri,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;localName,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;qName,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</A>&nbsp;atts)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.helpers.DefaultHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class org.xml.sax.helpers.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">DefaultHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#characters(char[], int, int)" title="class or interface in org.xml.sax.helpers">characters</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#endDocument()" title="class or interface in org.xml.sax.helpers">endDocument</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#endElement(java.lang.String, java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">endElement</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#endPrefixMapping(java.lang.String)" title="class or interface in org.xml.sax.helpers">endPrefixMapping</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#error(org.xml.sax.SAXParseException)" title="class or interface in org.xml.sax.helpers">error</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#fatalError(org.xml.sax.SAXParseException)" title="class or interface in org.xml.sax.helpers">fatalError</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#ignorableWhitespace(char[], int, int)" title="class or interface in org.xml.sax.helpers">ignorableWhitespace</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#notationDecl(java.lang.String, java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">notationDecl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#processingInstruction(java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">processingInstruction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#resolveEntity(java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">resolveEntity</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#setDocumentLocator(org.xml.sax.Locator)" title="class or interface in org.xml.sax.helpers">setDocumentLocator</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#skippedEntity(java.lang.String)" title="class or interface in org.xml.sax.helpers">skippedEntity</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#startDocument()" title="class or interface in org.xml.sax.helpers">startDocument</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#startPrefixMapping(java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">startPrefixMapping</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)" title="class or interface in org.xml.sax.helpers">unparsedEntityDecl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#warning(org.xml.sax.SAXParseException)" title="class or interface in org.xml.sax.helpers">warning</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="canvas"><!-- --></A><H3>
    +canvas</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A> <B>canvas</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="handlers"><!-- --></A><H3>
    +handlers</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader">mxSaxOutputHandler.IElementHandler</A>&gt; <B>handlers</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSaxOutputHandler(com.mxgraph.canvas.mxICanvas2D)"><!-- --></A><H3>
    +mxSaxOutputHandler</H3>
    +<PRE>
    +public <B>mxSaxOutputHandler</B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>&nbsp;canvas)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setCanvas(com.mxgraph.canvas.mxICanvas2D)"><!-- --></A><H3>
    +setCanvas</H3>
    +<PRE>
    +public void <B>setCanvas</B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the canvas for rendering.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCanvas()"><!-- --></A><H3>
    +getCanvas</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A> <B>getCanvas</B>()</PRE>
    +<DL>
    +<DD>Returns the canvas for rendering.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><!-- --></A><H3>
    +startElement</H3>
    +<PRE>
    +public void <B>startElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;uri,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;localName,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;qName,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</A>&nbsp;atts)
    +                  throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</A></PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ContentHandler.html?is-external=true#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)" title="class or interface in org.xml.sax">startElement</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)" title="class or interface in org.xml.sax.helpers">startElement</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers">DefaultHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="initHandlers()"><!-- --></A><H3>
    +initHandlers</H3>
    +<PRE>
    +protected void <B>initHandlers</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValue(org.xml.sax.Attributes, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</A>&nbsp;atts,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the given attribute value or an empty string.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSaxOutputHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/mxSaxOutputHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSaxOutputHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/package-frame.html b/java/docs/com/mxgraph/reader/package-frame.html
    new file mode 100644
    index 000000000..a4bf9c350
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/package-frame.html
    @@ -0,0 +1,51 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.reader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/reader/package-summary.html" target="classFrame">com.mxgraph.reader</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader" target="classFrame"><I>mxDomOutputParser.IElementHandler</I></A>
    +<BR>
    +<A HREF="mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader" target="classFrame"><I>mxSaxOutputHandler.IElementHandler</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxDomOutputParser.html" title="class in com.mxgraph.reader" target="classFrame">mxDomOutputParser</A>
    +<BR>
    +<A HREF="mxGraphViewImageReader.html" title="class in com.mxgraph.reader" target="classFrame">mxGraphViewImageReader</A>
    +<BR>
    +<A HREF="mxGraphViewReader.html" title="class in com.mxgraph.reader" target="classFrame">mxGraphViewReader</A>
    +<BR>
    +<A HREF="mxSaxOutputHandler.html" title="class in com.mxgraph.reader" target="classFrame">mxSaxOutputHandler</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/package-summary.html b/java/docs/com/mxgraph/reader/package-summary.html
    new file mode 100644
    index 000000000..6f3efb146
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/package-summary.html
    @@ -0,0 +1,247 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.reader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.reader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.reader
    +</H2>
    +This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader">mxDomOutputParser.IElementHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader">mxSaxOutputHandler.IElementHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader">mxDomOutputParser</A></B></TD>
    +<TD>public static void main(String[] args)
    +        {
    +                try
    +                {
    +                        String filename = Test.class.getResource(
    +                                        "/com/mxgraph/online/exported.xml").getPath();
    +                        String xml = mxUtils.readFile(filename);
    +                        System.out.println("xml=" + xml);
    +
    +                        Document doc = mxUtils.parseXml(xml);
    +                        Element root = doc.getDocumentElement();
    +                        int width = Integer.parseInt(root.getAttribute("width"));
    +                        int height = Integer.parseInt(root.getAttribute("height"));
    +
    +                        System.out.println("width=" + width + " height=" + height);
    +
    +                        BufferedImage img = mxUtils.createBufferedImage(width, height,
    +                                        Color.WHITE);
    +                        Graphics2D g2 = img.createGraphics();
    +                        mxUtils.setAntiAlias(g2, true, true);
    +                        mxDomOutputParser reader = new mxDomOutputParser(
    +                                        new mxGraphicsExportCanvas(g2));
    +                        reader.read((Element) root.getFirstChild().getNextSibling());
    +
    +                        ImageIO.write(img, "PNG", new File(
    +                                        "C:\\Users\\Gaudenz\\Desktop\\test.png"));
    +                }
    +                catch (Exception e)
    +                {
    +                        e.printStackTrace();
    +                }
    +        }
    +
    +        // -------------
    +
    +        Document doc = mxUtils.parseXml(xml);
    +        Element root = doc.getDocumentElement();
    +        mxDomOutputParser reader = new mxDomOutputParser(canvas);
    +        reader.read(root.getFirstChild());</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A></B></TD>
    +<TD>A converter that renders display XML data onto a graphics canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A></B></TD>
    +<TD>An abstract converter that renders display XML data onto a canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A></B></TD>
    +<TD>XMLReader reader = SAXParserFactory.newInstance().newSAXParser()
    +                        .getXMLReader();
    +        reader.setContentHandler(new mxSaxExportHandler(
    +                        new mxGraphicsExportCanvas(g2)));
    +        reader.parse(new InputSource(new StringReader(xml)));</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.reader Description
    +</H2>
    +
    +<P>
    +This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/package-tree.html b/java/docs/com/mxgraph/reader/package-tree.html
    new file mode 100644
    index 000000000..bb98a487c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/package-tree.html
    @@ -0,0 +1,164 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.reader Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.reader Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.reader
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">org.xml.sax.helpers.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers"><B>DefaultHandler</B></A> (implements org.xml.sax.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</A>, org.xml.sax.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</A>, org.xml.sax.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</A>, org.xml.sax.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.reader.<A HREF="../../../com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader"><B>mxGraphViewReader</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.reader.<A HREF="../../../com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader"><B>mxGraphViewImageReader</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.reader.<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader"><B>mxSaxOutputHandler</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.reader.<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader"><B>mxDomOutputParser</B></A></UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.reader.<A HREF="../../../com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><B>mxDomOutputParser.IElementHandler</B></A><LI TYPE="circle">com.mxgraph.reader.<A HREF="../../../com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader"><B>mxSaxOutputHandler.IElementHandler</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/model/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/reader/package-use.html b/java/docs/com/mxgraph/reader/package-use.html
    new file mode 100644
    index 000000000..4cf1a187b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/reader/package-use.html
    @@ -0,0 +1,190 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.reader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.reader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.reader</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> used by <A HREF="../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/reader/class-use/mxDomOutputParser.IElementHandler.html#com.mxgraph.reader"><B>mxDomOutputParser.IElementHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/reader/class-use/mxGraphViewImageReader.html#com.mxgraph.reader"><B>mxGraphViewImageReader</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A converter that renders display XML data onto a graphics canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/reader/class-use/mxGraphViewReader.html#com.mxgraph.reader"><B>mxGraphViewReader</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract converter that renders display XML data onto a canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/reader/class-use/mxSaxOutputHandler.IElementHandler.html#com.mxgraph.reader"><B>mxSaxOutputHandler.IElementHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/reader/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxActorShape.html b/java/docs/com/mxgraph/shape/class-use/mxActorShape.html
    new file mode 100644
    index 000000000..5548e041e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxActorShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxActorShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxActorShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxActorShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxActorShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxActorShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxActorShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxActorShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxActorShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxArrowShape.html b/java/docs/com/mxgraph/shape/class-use/mxArrowShape.html
    new file mode 100644
    index 000000000..555d7181f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxArrowShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxArrowShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxArrowShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxArrowShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxArrowShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxArrowShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxArrowShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxArrowShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxArrowShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxBasicShape.html b/java/docs/com/mxgraph/shape/class-use/mxBasicShape.html
    new file mode 100644
    index 000000000..611f6cbe7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxBasicShape.html
    @@ -0,0 +1,310 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxBasicShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxBasicShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxBasicShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBasicShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxBasicShape</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape">mxActorShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape">mxArrowShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape">mxCloudShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape">mxCylinderShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape">mxDoubleEllipseShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape">mxHexagonShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A rectangular shape that contains a single image</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape">mxLineShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape">mxRhombusShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stencil shape drawing that takes an XML definition of the shape and renders
    + it.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape">mxSwimlaneShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape">mxTriangleShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxBasicShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBasicShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxCloudShape.html b/java/docs/com/mxgraph/shape/class-use/mxCloudShape.html
    new file mode 100644
    index 000000000..bd1601cfb
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxCloudShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxCloudShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxCloudShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCloudShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCloudShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxCloudShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxCloudShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCloudShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCloudShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxConnectorShape.html b/java/docs/com/mxgraph/shape/class-use/mxConnectorShape.html
    new file mode 100644
    index 000000000..8f05cda08
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxConnectorShape.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxConnectorShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxConnectorShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxConnectorShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectorShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxConnectorShape</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxConnectorShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectorShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxCurveLabelShape.LabelGlyphCache.html b/java/docs/com/mxgraph/shape/class-use/mxCurveLabelShape.LabelGlyphCache.html
    new file mode 100644
    index 000000000..4917f8c79
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxCurveLabelShape.LabelGlyphCache.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxCurveLabelShape.LabelGlyphCache (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxCurveLabelShape.LabelGlyphCache (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCurveLabelShape.LabelGlyphCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.LabelGlyphCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxCurveLabelShape.LabelGlyphCache</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> declared as <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#labelGlyphs">labelGlyphs</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of information describing characteristics relating to drawing 
    + each glyph of this label</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCurveLabelShape.LabelGlyphCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.LabelGlyphCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxCurveLabelShape.LabelPosition.html b/java/docs/com/mxgraph/shape/class-use/mxCurveLabelShape.LabelPosition.html
    new file mode 100644
    index 000000000..b92d9cf7d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxCurveLabelShape.LabelPosition.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxCurveLabelShape.LabelPosition (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxCurveLabelShape.LabelPosition (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCurveLabelShape.LabelPosition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.LabelPosition.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxCurveLabelShape.LabelPosition</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> declared as <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#labelPosition">labelPosition</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADT to encapsulate label positioning information</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCurveLabelShape.LabelPosition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.LabelPosition.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxCurveLabelShape.html b/java/docs/com/mxgraph/shape/class-use/mxCurveLabelShape.html
    new file mode 100644
    index 000000000..70b7613e7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxCurveLabelShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxCurveLabelShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxCurveLabelShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCurveLabelShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxCurveLabelShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxCurveLabelShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCurveLabelShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxCurveShape.html b/java/docs/com/mxgraph/shape/class-use/mxCurveShape.html
    new file mode 100644
    index 000000000..2dda8727f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxCurveShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxCurveShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxCurveShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCurveShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxCurveShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxCurveShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCurveShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxCylinderShape.html b/java/docs/com/mxgraph/shape/class-use/mxCylinderShape.html
    new file mode 100644
    index 000000000..766a3be70
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxCylinderShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxCylinderShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxCylinderShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCylinderShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCylinderShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxCylinderShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxCylinderShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxCylinderShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCylinderShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxDefaultTextShape.html b/java/docs/com/mxgraph/shape/class-use/mxDefaultTextShape.html
    new file mode 100644
    index 000000000..9b937f5af
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxDefaultTextShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxDefaultTextShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxDefaultTextShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxDefaultTextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDefaultTextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxDefaultTextShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxDefaultTextShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxDefaultTextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDefaultTextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxDoubleEllipseShape.html b/java/docs/com/mxgraph/shape/class-use/mxDoubleEllipseShape.html
    new file mode 100644
    index 000000000..61c97bb2e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxDoubleEllipseShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxDoubleEllipseShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxDoubleEllipseShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxDoubleEllipseShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDoubleEllipseShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxDoubleEllipseShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxDoubleEllipseShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxDoubleEllipseShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDoubleEllipseShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxEllipseShape.html b/java/docs/com/mxgraph/shape/class-use/mxEllipseShape.html
    new file mode 100644
    index 000000000..fb1720c63
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxEllipseShape.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxEllipseShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxEllipseShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxEllipseShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEllipseShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxEllipseShape</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape">mxDoubleEllipseShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxEllipseShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEllipseShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxHexagonShape.html b/java/docs/com/mxgraph/shape/class-use/mxHexagonShape.html
    new file mode 100644
    index 000000000..d2247ef1d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxHexagonShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxHexagonShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxHexagonShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxHexagonShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHexagonShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxHexagonShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxHexagonShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxHexagonShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHexagonShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxHtmlTextShape.html b/java/docs/com/mxgraph/shape/class-use/mxHtmlTextShape.html
    new file mode 100644
    index 000000000..ab6074bab
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxHtmlTextShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxHtmlTextShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxHtmlTextShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxHtmlTextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHtmlTextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxHtmlTextShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxHtmlTextShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxHtmlTextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHtmlTextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxIMarker.html b/java/docs/com/mxgraph/shape/class-use/mxIMarker.html
    new file mode 100644
    index 000000000..91a81457e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxIMarker.html
    @@ -0,0 +1,214 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.shape.mxIMarker (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.shape.mxIMarker (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxIMarker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIMarker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.shape.mxIMarker</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with type parameters of type <A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxMarkerRegistry.</B><B><A HREF="../../../../com/mxgraph/shape/mxMarkerRegistry.html#markers">markers</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that return <A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMarkerRegistry.</B><B><A HREF="../../../../com/mxgraph/shape/mxMarkerRegistry.html#getMarker(java.lang.String)">getMarker</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxMarkerRegistry.</B><B><A HREF="../../../../com/mxgraph/shape/mxMarkerRegistry.html#registerMarker(java.lang.String, com.mxgraph.shape.mxIMarker)">registerMarker</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +               <A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A>&nbsp;marker)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxIMarker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIMarker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxIShape.html b/java/docs/com/mxgraph/shape/class-use/mxIShape.html
    new file mode 100644
    index 000000000..44cb52f5c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxIShape.html
    @@ -0,0 +1,389 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.shape.mxIShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.shape.mxIShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxIShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.shape.mxIShape</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with type parameters of type <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#shapes">shapes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from names to mxIVertexShape instances.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> that return <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getShape(java.util.Map)">getShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with parameters of type <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#putShape(java.lang.String, com.mxgraph.shape.mxIShape)">putShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +         <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>&nbsp;shape)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that implement <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape">mxActorShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape">mxArrowShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape">mxCloudShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape">mxCylinderShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape">mxDoubleEllipseShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape">mxHexagonShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A rectangular shape that contains a single image</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape">mxLineShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape">mxRhombusShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a stencil for the given XML definition.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stencil shape drawing that takes an XML definition of the shape and renders
    + it.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape">mxSwimlaneShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape">mxTriangleShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxIShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxITextShape.html b/java/docs/com/mxgraph/shape/class-use/mxITextShape.html
    new file mode 100644
    index 000000000..d1582abe5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxITextShape.html
    @@ -0,0 +1,262 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.shape.mxITextShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.shape.mxITextShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxITextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxITextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.shape.mxITextShape</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with type parameters of type <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#textShapes">textShapes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from names to mxITextShape instances.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> that return <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getTextShape(java.util.Map, boolean)">getTextShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +             boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with parameters of type <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#putTextShape(java.lang.String, com.mxgraph.shape.mxITextShape)">putTextShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +             <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>&nbsp;shape)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that implement <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the edge label along a curve derived from the curve describing
    + the edge's path</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape">mxDefaultTextShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To set global CSS for all HTML labels, use the following code:</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxITextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxITextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxImageShape.html b/java/docs/com/mxgraph/shape/class-use/mxImageShape.html
    new file mode 100644
    index 000000000..46e0f0801
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxImageShape.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxImageShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxImageShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxImageShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxImageShape</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxImageShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxLabelShape.html b/java/docs/com/mxgraph/shape/class-use/mxLabelShape.html
    new file mode 100644
    index 000000000..4c56051f5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxLabelShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxLabelShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxLabelShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxLabelShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLabelShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxLabelShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxLabelShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxLabelShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLabelShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxLineShape.html b/java/docs/com/mxgraph/shape/class-use/mxLineShape.html
    new file mode 100644
    index 000000000..0471c4f53
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxLineShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxLineShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxLineShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxLineShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLineShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxLineShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxLineShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxLineShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLineShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxMarkerRegistry.html b/java/docs/com/mxgraph/shape/class-use/mxMarkerRegistry.html
    new file mode 100644
    index 000000000..5331570a0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxMarkerRegistry.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxMarkerRegistry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxMarkerRegistry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxMarkerRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMarkerRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxMarkerRegistry</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxMarkerRegistry
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxMarkerRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMarkerRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxRectangleShape.html b/java/docs/com/mxgraph/shape/class-use/mxRectangleShape.html
    new file mode 100644
    index 000000000..6ad84c96c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxRectangleShape.html
    @@ -0,0 +1,189 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxRectangleShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxRectangleShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxRectangleShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRectangleShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxRectangleShape</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A rectangular shape that contains a single image</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxRectangleShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRectangleShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxRhombusShape.html b/java/docs/com/mxgraph/shape/class-use/mxRhombusShape.html
    new file mode 100644
    index 000000000..d2eccd35b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxRhombusShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxRhombusShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxRhombusShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxRhombusShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRhombusShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxRhombusShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxRhombusShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxRhombusShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRhombusShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxStencil.html b/java/docs/com/mxgraph/shape/class-use/mxStencil.html
    new file mode 100644
    index 000000000..c30eda3fa
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxStencil.html
    @@ -0,0 +1,214 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxStencil (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxStencil (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxStencil.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencil.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxStencil</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with type parameters of type <A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxStencilRegistry.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilRegistry.html#stencils">stencils</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that return <A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStencilRegistry.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilRegistry.html#getStencil(java.lang.String)">getStencil</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stencil for the given name.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencilRegistry.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilRegistry.html#addStencil(java.lang.String, com.mxgraph.shape.mxStencil)">addStencil</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +           <A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>&nbsp;stencil)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given stencil.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxStencil.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencil.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxStencilRegistry.html b/java/docs/com/mxgraph/shape/class-use/mxStencilRegistry.html
    new file mode 100644
    index 000000000..7b53e51a9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxStencilRegistry.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxStencilRegistry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxStencilRegistry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxStencilRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxStencilRegistry</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxStencilRegistry
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxStencilRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxStencilShape.html b/java/docs/com/mxgraph/shape/class-use/mxStencilShape.html
    new file mode 100644
    index 000000000..9c03c1f4b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxStencilShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxStencilShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxStencilShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxStencilShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxStencilShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxStencilShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxStencilShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxStencilShape.svgShape.html b/java/docs/com/mxgraph/shape/class-use/mxStencilShape.svgShape.html
    new file mode 100644
    index 000000000..c56c59a1f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxStencilShape.svgShape.html
    @@ -0,0 +1,243 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxStencilShape.svgShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxStencilShape.svgShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxStencilShape.svgShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilShape.svgShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxStencilShape.svgShape</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> declared as <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStencilShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html#rootShape">rootShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with type parameters of type <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxStencilShape.svgShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html#subShapes">subShapes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that return <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStencilShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html#createElement(org.w3c.dom.Node)">createElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Forms an internal representation of the specified SVG element and returns
    + that representation</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencilShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html#createShape(org.w3c.dom.Node, com.mxgraph.shape.mxStencilShape.svgShape)">createShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;root,
    +            <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&nbsp;shape)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencilShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html#paintNode(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, com.mxgraph.shape.mxStencilShape.svgShape, double, double)">paintNode</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&nbsp;shape,
    +          double&nbsp;widthRatio,
    +          double&nbsp;heightRatio)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxStencilShape.svgShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilShape.svgShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxSwimlaneShape.html b/java/docs/com/mxgraph/shape/class-use/mxSwimlaneShape.html
    new file mode 100644
    index 000000000..02721e408
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxSwimlaneShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxSwimlaneShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxSwimlaneShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxSwimlaneShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwimlaneShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxSwimlaneShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxSwimlaneShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxSwimlaneShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwimlaneShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/class-use/mxTriangleShape.html b/java/docs/com/mxgraph/shape/class-use/mxTriangleShape.html
    new file mode 100644
    index 000000000..b6e7870f8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/class-use/mxTriangleShape.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.shape.mxTriangleShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.shape.mxTriangleShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxTriangleShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTriangleShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.shape.mxTriangleShape</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.shape.mxTriangleShape
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/shape//class-usemxTriangleShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTriangleShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxActorShape.html b/java/docs/com/mxgraph/shape/mxActorShape.html
    new file mode 100644
    index 000000000..563fcacde
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxActorShape.html
    @@ -0,0 +1,271 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxActorShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxActorShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxActorShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxActorShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxActorShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxActorShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxActorShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxActorShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxActorShape.html#mxActorShape()">mxActorShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxActorShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxActorShape()"><!-- --></A><H3>
    +mxActorShape</H3>
    +<PRE>
    +public <B>mxActorShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxActorShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxActorShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxActorShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxArrowShape.html b/java/docs/com/mxgraph/shape/mxArrowShape.html
    new file mode 100644
    index 000000000..64eadc088
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxArrowShape.html
    @@ -0,0 +1,271 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxArrowShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxArrowShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxArrowShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxArrowShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxArrowShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxArrowShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxArrowShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxArrowShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxArrowShape.html#mxArrowShape()">mxArrowShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxArrowShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxArrowShape()"><!-- --></A><H3>
    +mxArrowShape</H3>
    +<PRE>
    +public <B>mxArrowShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxArrowShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxArrowShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxArrowShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxBasicShape.html b/java/docs/com/mxgraph/shape/mxBasicShape.html
    new file mode 100644
    index 000000000..c6ecec090
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxBasicShape.html
    @@ -0,0 +1,438 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxBasicShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxBasicShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxBasicShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxBasicShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBasicShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxBasicShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxBasicShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape">mxActorShape</A>, <A HREF="../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape">mxArrowShape</A>, <A HREF="../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape">mxCloudShape</A>, <A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A>, <A HREF="../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape">mxCylinderShape</A>, <A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A>, <A HREF="../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape">mxHexagonShape</A>, <A HREF="../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape">mxLineShape</A>, <A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A>, <A HREF="../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape">mxRhombusShape</A>, <A HREF="../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>, <A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape">mxSwimlaneShape</A>, <A HREF="../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape">mxTriangleShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxBasicShape</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#mxBasicShape()">mxBasicShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  boolean&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configures the graphics object ready to paint.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxBasicShape()"><!-- --></A><H3>
    +mxBasicShape</H3>
    +<PRE>
    +public <B>mxBasicShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +configureGraphics</H3>
    +<PRE>
    +protected boolean <B>configureGraphics</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                                    <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                    boolean&nbsp;background)</PRE>
    +<DL>
    +<DD>Configures the graphics object ready to paint.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>canvas</CODE> - the canvas to be painted to<DD><CODE>state</CODE> - the state of cell to be painted<DD><CODE>background</CODE> - whether or not this is the background stage of 
    +                        the shape paint
    +<DT><B>Returns:</B><DD>whether or not the shape is ready to be drawn</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getGradientBounds</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getGradientBounds</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +hasGradient</H3>
    +<PRE>
    +public boolean <B>hasGradient</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +hasShadow</H3>
    +<PRE>
    +public boolean <B>hasShadow</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getFillColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getFillColor</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getStrokeColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getStrokeColor</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxBasicShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxBasicShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBasicShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxCloudShape.html b/java/docs/com/mxgraph/shape/mxCloudShape.html
    new file mode 100644
    index 000000000..c4d019f2e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxCloudShape.html
    @@ -0,0 +1,271 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxCloudShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCloudShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCloudShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCloudShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCloudShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxCloudShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxCloudShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCloudShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCloudShape.html#mxCloudShape()">mxCloudShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCloudShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCloudShape()"><!-- --></A><H3>
    +mxCloudShape</H3>
    +<PRE>
    +public <B>mxCloudShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCloudShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCloudShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCloudShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxConnectorShape.html b/java/docs/com/mxgraph/shape/mxConnectorShape.html
    new file mode 100644
    index 000000000..09223e3b2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxConnectorShape.html
    @@ -0,0 +1,372 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxConnectorShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxConnectorShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConnectorShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxConnectorShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectorShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxConnectorShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxConnectorShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxConnectorShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#mxConnectorShape()">mxConnectorShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#getMarkerVector(java.util.List, boolean, double)">getMarkerVector</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                boolean&nbsp;source,
    +                double&nbsp;markerSize)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#isRounded(java.util.Map)">isRounded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">paintMarker</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the marker for the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)">paintPolyline</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxConnectorShape()"><!-- --></A><H3>
    +mxConnectorShape</H3>
    +<PRE>
    +public <B>mxConnectorShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)"><!-- --></A><H3>
    +paintPolyline</H3>
    +<PRE>
    +protected void <B>paintPolyline</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isRounded(java.util.Map)"><!-- --></A><H3>
    +isRounded</H3>
    +<PRE>
    +public boolean <B>isRounded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +paintMarker</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>paintMarker</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                           boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Draws the marker for the given edge.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the offset of the marker from the end of the line</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMarkerVector(java.util.List, boolean, double)"><!-- --></A><H3>
    +getMarkerVector</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A> <B>getMarkerVector</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                                 boolean&nbsp;source,
    +                                 double&nbsp;markerSize)</PRE>
    +<DL>
    +<DD>Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>points</CODE> - the guide points of the connector<DD><CODE>source</CODE> - whether the marker is at the source end<DD><CODE>markerSize</CODE> - the scaled maximum length of the marker
    +<DT><B>Returns:</B><DD>a line describing the vector the marker should be drawn along</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConnectorShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxConnectorShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectorShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html b/java/docs/com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html
    new file mode 100644
    index 000000000..927d767f5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html
    @@ -0,0 +1,376 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxCurveLabelShape.LabelGlyphCache (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCurveLabelShape.LabelGlyphCache (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurveLabelShape.LabelGlyphCache.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.LabelGlyphCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxCurveLabelShape.LabelGlyphCache</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxCurveLabelShape.LabelGlyphCache</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCurveLabelShape.LabelGlyphCache</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Utility class to describe the characteristics of each glyph of a branch
    + branch label. Each instance represents one glyph
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#drawingBounds">drawingBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The un-rotated rectangle that just bounds this character</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#glyph">glyph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The glyph being drawn</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#glyphGeometry">glyphGeometry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A line parallel to the curve segment at which the element is to be
    + drawn</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#glyphShape">glyphShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The cached shape of the glyph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#labelGlyphBounds">labelGlyphBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the bounds of the individual element of the label of this 
    + edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#visible">visible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not the glyph should be drawn</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#mxCurveLabelShape.LabelGlyphCache()">mxCurveLabelShape.LabelGlyphCache</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="labelGlyphBounds"><!-- --></A><H3>
    +labelGlyphBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>labelGlyphBounds</B></PRE>
    +<DL>
    +<DD>Cache of the bounds of the individual element of the label of this 
    + edge. Note that these are the unrotated values used to determine the 
    + width of each glyph.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="drawingBounds"><!-- --></A><H3>
    +drawingBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>drawingBounds</B></PRE>
    +<DL>
    +<DD>The un-rotated rectangle that just bounds this character
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="glyph"><!-- --></A><H3>
    +glyph</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>glyph</B></PRE>
    +<DL>
    +<DD>The glyph being drawn
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="glyphGeometry"><!-- --></A><H3>
    +glyphGeometry</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A> <B>glyphGeometry</B></PRE>
    +<DL>
    +<DD>A line parallel to the curve segment at which the element is to be
    + drawn
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="glyphShape"><!-- --></A><H3>
    +glyphShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>glyphShape</B></PRE>
    +<DL>
    +<DD>The cached shape of the glyph
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="visible"><!-- --></A><H3>
    +visible</H3>
    +<PRE>
    +public boolean <B>visible</B></PRE>
    +<DL>
    +<DD>Whether or not the glyph should be drawn
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCurveLabelShape.LabelGlyphCache()"><!-- --></A><H3>
    +mxCurveLabelShape.LabelGlyphCache</H3>
    +<PRE>
    +public <B>mxCurveLabelShape.LabelGlyphCache</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurveLabelShape.LabelGlyphCache.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.LabelGlyphCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html b/java/docs/com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html
    new file mode 100644
    index 000000000..d23035387
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html
    @@ -0,0 +1,305 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxCurveLabelShape.LabelPosition (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCurveLabelShape.LabelPosition (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurveLabelShape.LabelPosition.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.LabelPosition.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxCurveLabelShape.LabelPosition</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxCurveLabelShape.LabelPosition</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCurveLabelShape.LabelPosition</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Utility class that stores details of how the label is positioned
    + on the curve
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html#defaultInterGlyphSpace">defaultInterGlyphSpace</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html#endBuffer">endBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html#startBuffer">startBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html#mxCurveLabelShape.LabelPosition()">mxCurveLabelShape.LabelPosition</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="startBuffer"><!-- --></A><H3>
    +startBuffer</H3>
    +<PRE>
    +public double <B>startBuffer</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="endBuffer"><!-- --></A><H3>
    +endBuffer</H3>
    +<PRE>
    +public double <B>endBuffer</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="defaultInterGlyphSpace"><!-- --></A><H3>
    +defaultInterGlyphSpace</H3>
    +<PRE>
    +public double <B>defaultInterGlyphSpace</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCurveLabelShape.LabelPosition()"><!-- --></A><H3>
    +mxCurveLabelShape.LabelPosition</H3>
    +<PRE>
    +public <B>mxCurveLabelShape.LabelPosition</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurveLabelShape.LabelPosition.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.LabelPosition.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxCurveLabelShape.html b/java/docs/com/mxgraph/shape/mxCurveLabelShape.html
    new file mode 100644
    index 000000000..beb3d8ebf
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxCurveLabelShape.html
    @@ -0,0 +1,908 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxCurveLabelShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCurveLabelShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurveLabelShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCurveLabelShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxCurveLabelShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxCurveLabelShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCurveLabelShape</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></DL>
    +</PRE>
    +
    +<P>
    +Draws the edge label along a curve derived from the curve describing
    + the edge's path
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility class to describe the characteristics of each glyph of a branch
    + branch label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility class that stores details of how the label is positioned
    + on the curve</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#centerVisibleIndex">centerVisibleIndex</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The index of the central glyph of the label that is visible</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#curve">curve</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the points between which drawing straight lines views as a
    + curve</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#CURVE_TEXT_STRETCH_FACTOR">CURVE_TEXT_STRETCH_FACTOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Factor by which text on the inside of curve is stretched</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#FONT_FRACTIONALMETRICS">FONT_FRACTIONALMETRICS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if image aspect should be preserved in drawImage.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/font/FontRenderContext.html?is-external=true" title="class or interface in java.awt.font">FontRenderContext</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#frc">frc</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shared FRC for font size calculations</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#INVALID_GLYPH_BOUNDS">INVALID_GLYPH_BOUNDS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates that a glyph does not have valid drawing bounds, usually 
    + because it is not visible</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#LABEL_BUFFER">LABEL_BUFFER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buffer at both ends of the label</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#labelBounds">labelBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the bounds of the label</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#labelGlyphs">labelGlyphs</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of information describing characteristics relating to drawing 
    + each glyph of this label</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#labelPosition">labelPosition</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADT to encapsulate label positioning information</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#labelSize">labelSize</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the total length of the branch label</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#lastFont">lastFont</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the label font</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#lastPoints">lastPoints</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the last set of guide points that this label was calculated for</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#lastValue">lastValue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the label text</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#rotationEnabled">rotationEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/font/GlyphVector.html?is-external=true" title="class or interface in java.awt.font">GlyphVector</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#rtlGlyphVectors">rtlGlyphVectors</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of BIDI glyph vectors</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#state">state</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache the state associated with this shape</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#mxCurveLabelShape(com.mxgraph.view.mxCellState, com.mxgraph.util.mxCurve)">mxCurveLabelShape</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  <A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#calculationLabelPosition(java.util.Map, java.lang.String)">calculationLabelPosition</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook method to override how the label is positioned on the curve</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#getCenterVisiblePosition()">getCenterVisiblePosition</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the drawing bounds of the central indexed visible glyph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#getCurve()">getCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#getLabelBounds()">getLabelBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#getRotationEnabled()">getRotationEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#intersectsRect(java.awt.Rectangle)">intersectsRect</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether or not the rectangle passed in hits any part of this
    + curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#postprocessGlyph(com.mxgraph.util.mxCurve, java.lang.String, int, double)">postprocessGlyph</A></B>(<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;curve,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                 int&nbsp;j,
    +                 double&nbsp;currentPos)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for sub-classers to perform additional processing on
    + each glyph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#setCurve(com.mxgraph.util.mxCurve)">setCurve</A></B>(<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;curve)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#setRotationEnabled(boolean)">setRotationEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html#updateLabelBounds(java.lang.String, java.util.Map)">updateLabelBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the cached position and size of each glyph in the edge label.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="lastValue"><!-- --></A><H3>
    +lastValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>lastValue</B></PRE>
    +<DL>
    +<DD>Cache of the label text
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lastFont"><!-- --></A><H3>
    +lastFont</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A> <B>lastFont</B></PRE>
    +<DL>
    +<DD>Cache of the label font
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lastPoints"><!-- --></A><H3>
    +lastPoints</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>lastPoints</B></PRE>
    +<DL>
    +<DD>Cache of the last set of guide points that this label was calculated for
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="curve"><!-- --></A><H3>
    +curve</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A> <B>curve</B></PRE>
    +<DL>
    +<DD>Cache of the points between which drawing straight lines views as a
    + curve
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="state"><!-- --></A><H3>
    +state</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>state</B></PRE>
    +<DL>
    +<DD>Cache the state associated with this shape
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="labelGlyphs"><!-- --></A><H3>
    +labelGlyphs</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>[] <B>labelGlyphs</B></PRE>
    +<DL>
    +<DD>Cache of information describing characteristics relating to drawing 
    + each glyph of this label
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="labelSize"><!-- --></A><H3>
    +labelSize</H3>
    +<PRE>
    +protected double <B>labelSize</B></PRE>
    +<DL>
    +<DD>Cache of the total length of the branch label
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="labelBounds"><!-- --></A><H3>
    +labelBounds</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>labelBounds</B></PRE>
    +<DL>
    +<DD>Cache of the bounds of the label
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="labelPosition"><!-- --></A><H3>
    +labelPosition</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A> <B>labelPosition</B></PRE>
    +<DL>
    +<DD>ADT to encapsulate label positioning information
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LABEL_BUFFER"><!-- --></A><H3>
    +LABEL_BUFFER</H3>
    +<PRE>
    +public static double <B>LABEL_BUFFER</B></PRE>
    +<DL>
    +<DD>Buffer at both ends of the label
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CURVE_TEXT_STRETCH_FACTOR"><!-- --></A><H3>
    +CURVE_TEXT_STRETCH_FACTOR</H3>
    +<PRE>
    +public static double <B>CURVE_TEXT_STRETCH_FACTOR</B></PRE>
    +<DL>
    +<DD>Factor by which text on the inside of curve is stretched
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="INVALID_GLYPH_BOUNDS"><!-- --></A><H3>
    +INVALID_GLYPH_BOUNDS</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>INVALID_GLYPH_BOUNDS</B></PRE>
    +<DL>
    +<DD>Indicates that a glyph does not have valid drawing bounds, usually 
    + because it is not visible
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="centerVisibleIndex"><!-- --></A><H3>
    +centerVisibleIndex</H3>
    +<PRE>
    +public int <B>centerVisibleIndex</B></PRE>
    +<DL>
    +<DD>The index of the central glyph of the label that is visible
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FONT_FRACTIONALMETRICS"><!-- --></A><H3>
    +FONT_FRACTIONALMETRICS</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>FONT_FRACTIONALMETRICS</B></PRE>
    +<DL>
    +<DD>Specifies if image aspect should be preserved in drawImage. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rtlGlyphVectors"><!-- --></A><H3>
    +rtlGlyphVectors</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/font/GlyphVector.html?is-external=true" title="class or interface in java.awt.font">GlyphVector</A>[] <B>rtlGlyphVectors</B></PRE>
    +<DL>
    +<DD>Cache of BIDI glyph vectors
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="frc"><!-- --></A><H3>
    +frc</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/font/FontRenderContext.html?is-external=true" title="class or interface in java.awt.font">FontRenderContext</A> <B>frc</B></PRE>
    +<DL>
    +<DD>Shared FRC for font size calculations
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rotationEnabled"><!-- --></A><H3>
    +rotationEnabled</H3>
    +<PRE>
    +protected boolean <B>rotationEnabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCurveLabelShape(com.mxgraph.view.mxCellState, com.mxgraph.util.mxCurve)"><!-- --></A><H3>
    +mxCurveLabelShape</H3>
    +<PRE>
    +public <B>mxCurveLabelShape</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                         <A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;value)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getRotationEnabled()"><!-- --></A><H3>
    +getRotationEnabled</H3>
    +<PRE>
    +public boolean <B>getRotationEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRotationEnabled(boolean)"><!-- --></A><H3>
    +setRotationEnabled</H3>
    +<PRE>
    +public void <B>setRotationEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxITextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateLabelBounds(java.lang.String, java.util.Map)"><!-- --></A><H3>
    +updateLabelBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>updateLabelBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Updates the cached position and size of each glyph in the edge label.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>label</CODE> - the entire string of the label.<DD><CODE>style</CODE> - the edge style</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="postprocessGlyph(com.mxgraph.util.mxCurve, java.lang.String, int, double)"><!-- --></A><H3>
    +postprocessGlyph</H3>
    +<PRE>
    +protected void <B>postprocessGlyph</B>(<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;curve,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                                int&nbsp;j,
    +                                double&nbsp;currentPos)</PRE>
    +<DL>
    +<DD>Hook for sub-classers to perform additional processing on
    + each glyph
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>curve</CODE> - The curve object holding the label curve<DD><CODE>label</CODE> - the text label of the curve<DD><CODE>j</CODE> - the index of the label<DD><CODE>currentPos</CODE> - the distance along the label curve the glyph is</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectsRect(java.awt.Rectangle)"><!-- --></A><H3>
    +intersectsRect</H3>
    +<PRE>
    +public boolean <B>intersectsRect</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Returns whether or not the rectangle passed in hits any part of this
    + curve.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rect</CODE> - the rectangle to detect for a hit
    +<DT><B>Returns:</B><DD>whether or not the rectangle hits this curve</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="calculationLabelPosition(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +calculationLabelPosition</H3>
    +<PRE>
    +protected void <B>calculationLabelPosition</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label)</PRE>
    +<DL>
    +<DD>Hook method to override how the label is positioned on the curve
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - the style of the curve<DD><CODE>label</CODE> - the string label to be displayed on the curve</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurve()"><!-- --></A><H3>
    +getCurve</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A> <B>getCurve</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the curve</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCurve(com.mxgraph.util.mxCurve)"><!-- --></A><H3>
    +setCurve</H3>
    +<PRE>
    +public void <B>setCurve</B>(<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;curve)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>curve</CODE> - the curve to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLabelBounds()"><!-- --></A><H3>
    +getLabelBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getLabelBounds</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCenterVisiblePosition()"><!-- --></A><H3>
    +getCenterVisiblePosition</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getCenterVisiblePosition</B>()</PRE>
    +<DL>
    +<DD>Returns the drawing bounds of the central indexed visible glyph
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the centerVisibleIndex</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurveLabelShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCurveLabelShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveLabelShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxCurveShape.html b/java/docs/com/mxgraph/shape/mxCurveShape.html
    new file mode 100644
    index 000000000..cc3f216a0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxCurveShape.html
    @@ -0,0 +1,438 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxCurveShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCurveShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurveShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCurveShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxCurveShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxConnectorShape</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxCurveShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCurveShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveShape.html#curve">curve</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the points between which drawing straight lines views as a
    + curve</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveShape.html#mxCurveShape()">mxCurveShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveShape.html#mxCurveShape(com.mxgraph.util.mxCurve)">mxCurveShape</A></B>(<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;curve)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveShape.html#getCurve()">getCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveShape.html#getMarkerVector(java.util.List, boolean, double)">getMarkerVector</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                boolean&nbsp;source,
    +                double&nbsp;markerSize)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveShape.html#paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)">paintPolyline</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCurveShape.html#validateCurve(java.util.List, double, java.util.Map)">validateCurve</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +              double&nbsp;scale,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Forces underlying curve to a valid state</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxConnectorShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#isRounded(java.util.Map)">isRounded</A>, <A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">paintMarker</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="curve"><!-- --></A><H3>
    +curve</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A> <B>curve</B></PRE>
    +<DL>
    +<DD>Cache of the points between which drawing straight lines views as a
    + curve
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCurveShape()"><!-- --></A><H3>
    +mxCurveShape</H3>
    +<PRE>
    +public <B>mxCurveShape</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCurveShape(com.mxgraph.util.mxCurve)"><!-- --></A><H3>
    +mxCurveShape</H3>
    +<PRE>
    +public <B>mxCurveShape</B>(<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;curve)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getCurve()"><!-- --></A><H3>
    +getCurve</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A> <B>getCurve</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)"><!-- --></A><H3>
    +paintPolyline</H3>
    +<PRE>
    +protected void <B>paintPolyline</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)">paintPolyline</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validateCurve(java.util.List, double, java.util.Map)"><!-- --></A><H3>
    +validateCurve</H3>
    +<PRE>
    +public void <B>validateCurve</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                          double&nbsp;scale,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Forces underlying curve to a valid state
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>points</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMarkerVector(java.util.List, boolean, double)"><!-- --></A><H3>
    +getMarkerVector</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A> <B>getMarkerVector</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                                 boolean&nbsp;source,
    +                                 double&nbsp;markerSize)</PRE>
    +<DL>
    +<DD>Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html#getMarkerVector(java.util.List, boolean, double)">getMarkerVector</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>points</CODE> - the guide points of the connector<DD><CODE>source</CODE> - whether the marker is at the source end<DD><CODE>markerSize</CODE> - the scaled maximum length of the marker
    +<DT><B>Returns:</B><DD>a line describing the vector the marker should be drawn along</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurveShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCurveShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurveShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxCylinderShape.html b/java/docs/com/mxgraph/shape/mxCylinderShape.html
    new file mode 100644
    index 000000000..a9a84a655
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxCylinderShape.html
    @@ -0,0 +1,273 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxCylinderShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCylinderShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCylinderShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCylinderShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCylinderShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxCylinderShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxCylinderShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCylinderShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCylinderShape.html#mxCylinderShape()">mxCylinderShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxCylinderShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws a cylinder for the given parameters.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCylinderShape()"><!-- --></A><H3>
    +mxCylinderShape</H3>
    +<PRE>
    +public <B>mxCylinderShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Draws a cylinder for the given parameters.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCylinderShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxCylinderShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCylinderShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxDefaultTextShape.html b/java/docs/com/mxgraph/shape/mxDefaultTextShape.html
    new file mode 100644
    index 000000000..c125a1f2e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxDefaultTextShape.html
    @@ -0,0 +1,299 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxDefaultTextShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxDefaultTextShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDefaultTextShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxDefaultTextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDefaultTextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxDefaultTextShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxDefaultTextShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxDefaultTextShape</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html#mxDefaultTextShape()">mxDefaultTextShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html#postProcessLine(java.lang.String, java.lang.String, java.awt.FontMetrics, com.mxgraph.canvas.mxGraphics2DCanvas, int, int)">postProcessLine</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;line,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A>&nbsp;fm,
    +                <A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                int&nbsp;x,
    +                int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to add functionality after a line has been drawn</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxDefaultTextShape()"><!-- --></A><H3>
    +mxDefaultTextShape</H3>
    +<PRE>
    +public <B>mxDefaultTextShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxITextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="postProcessLine(java.lang.String, java.lang.String, java.awt.FontMetrics, com.mxgraph.canvas.mxGraphics2DCanvas, int, int)"><!-- --></A><H3>
    +postProcessLine</H3>
    +<PRE>
    +protected void <B>postProcessLine</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;line,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A>&nbsp;fm,
    +                               <A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                               int&nbsp;x,
    +                               int&nbsp;y)</PRE>
    +<DL>
    +<DD>Hook to add functionality after a line has been drawn
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - the entire label text<DD><CODE>line</CODE> - the line at the specified location<DD><CODE>fm</CODE> - the text font metrics<DD><CODE>canvas</CODE> - the canvas object currently being painted to<DD><CODE>x</CODE> - the x co-ord of the baseline of the text line<DD><CODE>y</CODE> - the y co-ord of the baseline of the text line</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDefaultTextShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxDefaultTextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDefaultTextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxDoubleEllipseShape.html b/java/docs/com/mxgraph/shape/mxDoubleEllipseShape.html
    new file mode 100644
    index 000000000..ead1e824a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxDoubleEllipseShape.html
    @@ -0,0 +1,281 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxDoubleEllipseShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxDoubleEllipseShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDoubleEllipseShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxDoubleEllipseShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDoubleEllipseShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxDoubleEllipseShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxEllipseShape</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxDoubleEllipseShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxDoubleEllipseShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html#mxDoubleEllipseShape()">mxDoubleEllipseShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxEllipseShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxEllipseShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxDoubleEllipseShape()"><!-- --></A><H3>
    +mxDoubleEllipseShape</H3>
    +<PRE>
    +public <B>mxDoubleEllipseShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDoubleEllipseShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxDoubleEllipseShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDoubleEllipseShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxEllipseShape.html b/java/docs/com/mxgraph/shape/mxEllipseShape.html
    new file mode 100644
    index 000000000..01535c49d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxEllipseShape.html
    @@ -0,0 +1,274 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxEllipseShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxEllipseShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEllipseShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxEllipseShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEllipseShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxEllipseShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxEllipseShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape">mxDoubleEllipseShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxEllipseShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxEllipseShape.html#mxEllipseShape()">mxEllipseShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxEllipseShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxEllipseShape()"><!-- --></A><H3>
    +mxEllipseShape</H3>
    +<PRE>
    +public <B>mxEllipseShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEllipseShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxEllipseShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEllipseShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxHexagonShape.html b/java/docs/com/mxgraph/shape/mxHexagonShape.html
    new file mode 100644
    index 000000000..60fa5c010
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxHexagonShape.html
    @@ -0,0 +1,271 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxHexagonShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxHexagonShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHexagonShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxHexagonShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHexagonShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxHexagonShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxHexagonShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxHexagonShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxHexagonShape.html#mxHexagonShape()">mxHexagonShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxHexagonShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxHexagonShape()"><!-- --></A><H3>
    +mxHexagonShape</H3>
    +<PRE>
    +public <B>mxHexagonShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHexagonShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxHexagonShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHexagonShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxHtmlTextShape.html b/java/docs/com/mxgraph/shape/mxHtmlTextShape.html
    new file mode 100644
    index 000000000..152c02acb
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxHtmlTextShape.html
    @@ -0,0 +1,394 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxHtmlTextShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxHtmlTextShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHtmlTextShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxHtmlTextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHtmlTextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxHtmlTextShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxHtmlTextShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxHtmlTextShape</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></DL>
    +</PRE>
    +
    +<P>
    +To set global CSS for all HTML labels, use the following code:
    + 
    + <pre>
    + mxGraphics2DCanvas.putTextShape(mxGraphics2DCanvas.TEXT_SHAPE_HTML,
    +   new mxHtmlTextShape()
    +   {
    +     protected String createHtmlDocument(Map<String, Object> style, String text)
    +     {
    +       return mxUtils.createHtmlDocument(style, text, 1, 0,
    +           "<style type=\"text/css\">.selectRef { " +
    +           "font-size:9px;font-weight:normal; }</style>");
    +     }
    +   }
    + );
    + </pre>
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html#replaceHtmlLinefeeds">replaceHtmlLinefeeds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if linefeeds should be replaced with breaks in HTML markup.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html#mxHtmlTextShape()">mxHtmlTextShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html#createHtmlDocument(java.util.Map, java.lang.String)">createHtmlDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html#isReplaceHtmlLinefeeds()">isReplaceHtmlLinefeeds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns replaceHtmlLinefeeds</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html#setReplaceHtmlLinefeeds(boolean)">setReplaceHtmlLinefeeds</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns replaceHtmlLinefeeds</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="replaceHtmlLinefeeds"><!-- --></A><H3>
    +replaceHtmlLinefeeds</H3>
    +<PRE>
    +protected boolean <B>replaceHtmlLinefeeds</B></PRE>
    +<DL>
    +<DD>Specifies if linefeeds should be replaced with breaks in HTML markup.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxHtmlTextShape()"><!-- --></A><H3>
    +mxHtmlTextShape</H3>
    +<PRE>
    +public <B>mxHtmlTextShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isReplaceHtmlLinefeeds()"><!-- --></A><H3>
    +isReplaceHtmlLinefeeds</H3>
    +<PRE>
    +public boolean <B>isReplaceHtmlLinefeeds</B>()</PRE>
    +<DL>
    +<DD>Returns replaceHtmlLinefeeds
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setReplaceHtmlLinefeeds(boolean)"><!-- --></A><H3>
    +setReplaceHtmlLinefeeds</H3>
    +<PRE>
    +public void <B>setReplaceHtmlLinefeeds</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Returns replaceHtmlLinefeeds
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocument(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +createHtmlDocument</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>createHtmlDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxITextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxHtmlTextShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxHtmlTextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxHtmlTextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxIMarker.html b/java/docs/com/mxgraph/shape/mxIMarker.html
    new file mode 100644
    index 000000000..aec91e604
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxIMarker.html
    @@ -0,0 +1,221 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxIMarker (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxIMarker (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIMarker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxIMarker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIMarker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Interface mxIMarker</H2>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxIMarker</B></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxIMarker.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, java.lang.String, com.mxgraph.util.mxPoint, double, double, double, boolean)">paintMarker</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +            <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +            double&nbsp;nx,
    +            double&nbsp;ny,
    +            double&nbsp;size,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, java.lang.String, com.mxgraph.util.mxPoint, double, double, double, boolean)"><!-- --></A><H3>
    +paintMarker</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>paintMarker</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                    <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +                    <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +                    double&nbsp;nx,
    +                    double&nbsp;ny,
    +                    double&nbsp;size,
    +                    boolean&nbsp;source)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIMarker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxIMarker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIMarker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxIShape.html b/java/docs/com/mxgraph/shape/mxIShape.html
    new file mode 100644
    index 000000000..aabefcf78
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxIShape.html
    @@ -0,0 +1,212 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxIShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxIShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxIShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Interface mxIShape</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape">mxActorShape</A>, <A HREF="../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape">mxArrowShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>, <A HREF="../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape">mxCloudShape</A>, <A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A>, <A HREF="../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>, <A HREF="../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape">mxCylinderShape</A>, <A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape">mxDoubleEllipseShape</A>, <A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A>, <A HREF="../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape">mxHexagonShape</A>, <A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A>, <A HREF="../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A>, <A HREF="../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape">mxLineShape</A>, <A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A>, <A HREF="../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape">mxRhombusShape</A>, <A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>, <A HREF="../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>, <A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape">mxSwimlaneShape</A>, <A HREF="../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape">mxTriangleShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxIShape</B></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxIShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxIShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxIShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxITextShape.html b/java/docs/com/mxgraph/shape/mxITextShape.html
    new file mode 100644
    index 000000000..bcacae49c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxITextShape.html
    @@ -0,0 +1,216 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxITextShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxITextShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxITextShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxITextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxITextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Interface mxITextShape</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>, <A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape">mxDefaultTextShape</A>, <A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxITextShape</B></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxITextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxITextShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxITextShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxITextShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxImageShape.html b/java/docs/com/mxgraph/shape/mxImageShape.html
    new file mode 100644
    index 000000000..1a939a8c6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxImageShape.html
    @@ -0,0 +1,402 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxImageShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxImageShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxImageShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxImageShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxImageShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxRectangleShape</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxImageShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxImageShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A></DL>
    +</PRE>
    +
    +<P>
    +A rectangular shape that contains a single image
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxImageShape.html#mxImageShape()">mxImageShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxImageShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxImageShape.html#getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageBounds</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxImageShape.html#getImageForStyle(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageForStyle</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                 <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxImageShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxImageShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxImageShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxRectangleShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html#getArcSize(int, int)">getArcSize</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxImageShape()"><!-- --></A><H3>
    +mxImageShape</H3>
    +<PRE>
    +public <B>mxImageShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getImageBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getImageBounds</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                                <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +hasGradient</H3>
    +<PRE>
    +public boolean <B>hasGradient</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageForStyle(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getImageForStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getImageForStyle</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                               <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getFillColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getFillColor</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getStrokeColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getStrokeColor</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxImageShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxImageShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxLabelShape.html b/java/docs/com/mxgraph/shape/mxLabelShape.html
    new file mode 100644
    index 000000000..c476e9377
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxLabelShape.html
    @@ -0,0 +1,410 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxLabelShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxLabelShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLabelShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxLabelShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLabelShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxLabelShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxRectangleShape</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxImageShape</A>
    +              <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxLabelShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxLabelShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLabelShape.html#mxLabelShape()">mxLabelShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLabelShape.html#drawGlassEffect(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">drawGlassEffect</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the glass effect</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLabelShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLabelShape.html#getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageBounds</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLabelShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLabelShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLabelShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxImageShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html#getImageForStyle(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageForStyle</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxRectangleShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html#getArcSize(int, int)">getArcSize</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxLabelShape()"><!-- --></A><H3>
    +mxLabelShape</H3>
    +<PRE>
    +public <B>mxLabelShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawGlassEffect(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +drawGlassEffect</H3>
    +<PRE>
    +public static void <B>drawGlassEffect</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                                   <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Draws the glass effect
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getImageBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getImageBounds</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                                <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html#getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageBounds</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getFillColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getFillColor</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getStrokeColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getStrokeColor</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +hasGradient</H3>
    +<PRE>
    +public boolean <B>hasGradient</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLabelShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxLabelShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLabelShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxLineShape.html b/java/docs/com/mxgraph/shape/mxLineShape.html
    new file mode 100644
    index 000000000..0723666f1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxLineShape.html
    @@ -0,0 +1,292 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxLineShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxLineShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLineShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxLineShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLineShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxLineShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxLineShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxLineShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLineShape.html#mxLineShape()">mxLineShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLineShape.html#createPoints(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createPoints</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxLineShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxLineShape()"><!-- --></A><H3>
    +mxLineShape</H3>
    +<PRE>
    +public <B>mxLineShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createPoints(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createPoints</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[] <B>createPoints</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                              <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLineShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxLineShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLineShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxMarkerRegistry.html b/java/docs/com/mxgraph/shape/mxMarkerRegistry.html
    new file mode 100644
    index 000000000..6fb90953a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxMarkerRegistry.html
    @@ -0,0 +1,310 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxMarkerRegistry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxMarkerRegistry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMarkerRegistry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxMarkerRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMarkerRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxMarkerRegistry</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxMarkerRegistry</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxMarkerRegistry</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html#markers">markers</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html#mxMarkerRegistry()">mxMarkerRegistry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html#getMarker(java.lang.String)">getMarker</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html#registerMarker(java.lang.String, com.mxgraph.shape.mxIMarker)">registerMarker</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +               <A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A>&nbsp;marker)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="markers"><!-- --></A><H3>
    +markers</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A>&gt; <B>markers</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxMarkerRegistry()"><!-- --></A><H3>
    +mxMarkerRegistry</H3>
    +<PRE>
    +public <B>mxMarkerRegistry</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getMarker(java.lang.String)"><!-- --></A><H3>
    +getMarker</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A> <B>getMarker</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="registerMarker(java.lang.String, com.mxgraph.shape.mxIMarker)"><!-- --></A><H3>
    +registerMarker</H3>
    +<PRE>
    +public static void <B>registerMarker</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                                  <A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A>&nbsp;marker)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMarkerRegistry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxMarkerRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMarkerRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxRectangleShape.html b/java/docs/com/mxgraph/shape/mxRectangleShape.html
    new file mode 100644
    index 000000000..02066087b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxRectangleShape.html
    @@ -0,0 +1,298 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxRectangleShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxRectangleShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRectangleShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxRectangleShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRectangleShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxRectangleShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxRectangleShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxRectangleShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html#mxRectangleShape()">mxRectangleShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html#getArcSize(int, int)">getArcSize</A></B>(int&nbsp;w,
    +           int&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Computes the arc size for the given dimension.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxRectangleShape()"><!-- --></A><H3>
    +mxRectangleShape</H3>
    +<PRE>
    +public <B>mxRectangleShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getArcSize(int, int)"><!-- --></A><H3>
    +getArcSize</H3>
    +<PRE>
    +public int <B>getArcSize</B>(int&nbsp;w,
    +                      int&nbsp;h)</PRE>
    +<DL>
    +<DD>Computes the arc size for the given dimension.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>w</CODE> - Width of the rectangle.<DD><CODE>h</CODE> - Height of the rectangle.
    +<DT><B>Returns:</B><DD>Returns the arc size for the given dimension.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRectangleShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxRectangleShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRectangleShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxRhombusShape.html b/java/docs/com/mxgraph/shape/mxRhombusShape.html
    new file mode 100644
    index 000000000..e3237c871
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxRhombusShape.html
    @@ -0,0 +1,271 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxRhombusShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxRhombusShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRhombusShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxRhombusShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRhombusShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxRhombusShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxRhombusShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxRhombusShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxRhombusShape.html#mxRhombusShape()">mxRhombusShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxRhombusShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxRhombusShape()"><!-- --></A><H3>
    +mxRhombusShape</H3>
    +<PRE>
    +public <B>mxRhombusShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRhombusShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxRhombusShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRhombusShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxStencil.html b/java/docs/com/mxgraph/shape/mxStencil.html
    new file mode 100644
    index 000000000..36b524e1e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxStencil.html
    @@ -0,0 +1,835 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxStencil (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxStencil (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStencil.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxStencil.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencil.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxStencil</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxStencil</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxStencil</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a stencil for the given XML definition. This class implements the mxGraph
    + stencil schema.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#aspect">aspect</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the aspect of the shape.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#bgNode">bgNode</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the XML node with the stencil description.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#desc">desc</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the top-level node of the stencil definition.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#fgNode">fgNode</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the XML node with the stencil description.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#h0">h0</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the height of the shape.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#lastMoveX">lastMoveX</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the last x-position of the cursor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#lastMoveY">lastMoveY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the last y-position of the cursor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#strokewidth">strokewidth</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the strokewidth direction from the description.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#w0">w0</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the width of the shape.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#mxStencil(org.w3c.dom.Element)">mxStencil</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;description)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stencil for the given mxGraph shape description.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#computeAspect(com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, java.lang.String)">computeAspect</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +              <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a rectangle that contains the offset in x and y and the horizontal
    + and vertical scale in width and height used to draw this shape inside the
    + given rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#createCanvas(com.mxgraph.canvas.mxGraphics2DCanvas)">createCanvas</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;gc)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the canvas for rendering the stencil.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#drawElement(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, org.w3c.dom.Element, com.mxgraph.util.mxRectangle)">drawElement</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node,
    +            <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;aspect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drawsthe given element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#drawShadow(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, double, boolean, boolean, com.mxgraph.util.mxRectangle, double, boolean)">drawShadow</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           double&nbsp;rotation,
    +           boolean&nbsp;flipH,
    +           boolean&nbsp;flipV,
    +           <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +           double&nbsp;alpha,
    +           boolean&nbsp;filled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the shadow.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#drawShape(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, boolean)">drawShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +          boolean&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws this stencil inside the given bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#evaluateAttribute(org.w3c.dom.Element, java.lang.String, com.mxgraph.view.mxCellState)">evaluateAttribute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +                  <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the attribute for the given name from the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#getDescription()">getDescription</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the description.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#getDouble(org.w3c.dom.Element, java.lang.String)">getDouble</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the given attribute or 0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#getDouble(org.w3c.dom.Element, java.lang.String, double)">getDouble</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +          double&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the given attribute or the default value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#getInt(org.w3c.dom.Element, java.lang.String, int)">getInt</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +       int&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the given attribute or the default value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#getString(org.w3c.dom.Element, java.lang.String, java.lang.String)">getString</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the given attribute or the default value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;gc,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the stencil for the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#parseDescription()">parseDescription</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the description of this shape.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencil.html#setDescription(org.w3c.dom.Element)">setDescription</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the description.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="desc"><!-- --></A><H3>
    +desc</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>desc</B></PRE>
    +<DL>
    +<DD>Holds the top-level node of the stencil definition.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="aspect"><!-- --></A><H3>
    +aspect</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>aspect</B></PRE>
    +<DL>
    +<DD>Holds the aspect of the shape. Default is "auto".
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="w0"><!-- --></A><H3>
    +w0</H3>
    +<PRE>
    +protected double <B>w0</B></PRE>
    +<DL>
    +<DD>Holds the width of the shape. Default is 100.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="h0"><!-- --></A><H3>
    +h0</H3>
    +<PRE>
    +protected double <B>h0</B></PRE>
    +<DL>
    +<DD>Holds the height of the shape. Default is 100.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bgNode"><!-- --></A><H3>
    +bgNode</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>bgNode</B></PRE>
    +<DL>
    +<DD>Holds the XML node with the stencil description.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fgNode"><!-- --></A><H3>
    +fgNode</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>fgNode</B></PRE>
    +<DL>
    +<DD>Holds the XML node with the stencil description.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="strokewidth"><!-- --></A><H3>
    +strokewidth</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>strokewidth</B></PRE>
    +<DL>
    +<DD>Holds the strokewidth direction from the description.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lastMoveX"><!-- --></A><H3>
    +lastMoveX</H3>
    +<PRE>
    +protected double <B>lastMoveX</B></PRE>
    +<DL>
    +<DD>Holds the last x-position of the cursor.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lastMoveY"><!-- --></A><H3>
    +lastMoveY</H3>
    +<PRE>
    +protected double <B>lastMoveY</B></PRE>
    +<DL>
    +<DD>Holds the last y-position of the cursor.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxStencil(org.w3c.dom.Element)"><!-- --></A><H3>
    +mxStencil</H3>
    +<PRE>
    +public <B>mxStencil</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;description)</PRE>
    +<DL>
    +<DD>Constructs a new stencil for the given mxGraph shape description.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getDescription()"><!-- --></A><H3>
    +getDescription</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>getDescription</B>()</PRE>
    +<DL>
    +<DD>Returns the description.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDescription(org.w3c.dom.Element)"><!-- --></A><H3>
    +setDescription</H3>
    +<PRE>
    +public void <B>setDescription</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the description.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createCanvas(com.mxgraph.canvas.mxGraphics2DCanvas)"><!-- --></A><H3>
    +createCanvas</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A> <B>createCanvas</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;gc)</PRE>
    +<DL>
    +<DD>Creates the canvas for rendering the stencil.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;gc,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Paints the stencil for the given state.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawShadow(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, double, boolean, boolean, com.mxgraph.util.mxRectangle, double, boolean)"><!-- --></A><H3>
    +drawShadow</H3>
    +<PRE>
    +protected void <B>drawShadow</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +                          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                          double&nbsp;rotation,
    +                          boolean&nbsp;flipH,
    +                          boolean&nbsp;flipV,
    +                          <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                          double&nbsp;alpha,
    +                          boolean&nbsp;filled)</PRE>
    +<DL>
    +<DD>Draws the shadow.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawShape(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, boolean)"><!-- --></A><H3>
    +drawShape</H3>
    +<PRE>
    +public boolean <B>drawShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                         <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                         boolean&nbsp;background)</PRE>
    +<DL>
    +<DD>Draws this stencil inside the given bounds.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="computeAspect(com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, java.lang.String)"><!-- --></A><H3>
    +computeAspect</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>computeAspect</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                    <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</PRE>
    +<DL>
    +<DD>Returns a rectangle that contains the offset in x and y and the horizontal
    + and vertical scale in width and height used to draw this shape inside the
    + given rectangle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawElement(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, org.w3c.dom.Element, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +drawElement</H3>
    +<PRE>
    +protected void <B>drawElement</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +                           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node,
    +                           <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;aspect)</PRE>
    +<DL>
    +<DD>Drawsthe given element.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInt(org.w3c.dom.Element, java.lang.String, int)"><!-- --></A><H3>
    +getInt</H3>
    +<PRE>
    +protected int <B>getInt</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +                     int&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the given attribute or the default value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDouble(org.w3c.dom.Element, java.lang.String)"><!-- --></A><H3>
    +getDouble</H3>
    +<PRE>
    +protected double <B>getDouble</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute)</PRE>
    +<DL>
    +<DD>Returns the given attribute or 0.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDouble(org.w3c.dom.Element, java.lang.String, double)"><!-- --></A><H3>
    +getDouble</H3>
    +<PRE>
    +protected double <B>getDouble</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +                           double&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the given attribute or the default value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getString(org.w3c.dom.Element, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getString</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getString</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the given attribute or the default value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseDescription()"><!-- --></A><H3>
    +parseDescription</H3>
    +<PRE>
    +protected void <B>parseDescription</B>()</PRE>
    +<DL>
    +<DD>Parses the description of this shape.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="evaluateAttribute(org.w3c.dom.Element, java.lang.String, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +evaluateAttribute</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>evaluateAttribute</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +                                <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Gets the attribute for the given name from the given node. If the attribute
    + does not exist then the text content of the node is evaluated and if it is
    + a function it is invoked with <state> as the only argument and the return
    + value is used as the attribute value to be returned.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStencil.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxStencil.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencil.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxStencilRegistry.html b/java/docs/com/mxgraph/shape/mxStencilRegistry.html
    new file mode 100644
    index 000000000..43f05afda
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxStencilRegistry.html
    @@ -0,0 +1,314 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxStencilRegistry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxStencilRegistry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStencilRegistry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxStencilRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxStencilRegistry</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxStencilRegistry</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxStencilRegistry</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html#stencils">stencils</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html#mxStencilRegistry()">mxStencilRegistry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html#addStencil(java.lang.String, com.mxgraph.shape.mxStencil)">addStencil</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +           <A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>&nbsp;stencil)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given stencil.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html#getStencil(java.lang.String)">getStencil</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stencil for the given name.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="stencils"><!-- --></A><H3>
    +stencils</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>&gt; <B>stencils</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxStencilRegistry()"><!-- --></A><H3>
    +mxStencilRegistry</H3>
    +<PRE>
    +public <B>mxStencilRegistry</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="addStencil(java.lang.String, com.mxgraph.shape.mxStencil)"><!-- --></A><H3>
    +addStencil</H3>
    +<PRE>
    +public static void <B>addStencil</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                              <A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>&nbsp;stencil)</PRE>
    +<DL>
    +<DD>Adds the given stencil.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStencil(java.lang.String)"><!-- --></A><H3>
    +getStencil</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A> <B>getStencil</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Returns the stencil for the given name.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStencilRegistry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxStencilRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxStencilShape.html b/java/docs/com/mxgraph/shape/mxStencilShape.html
    new file mode 100644
    index 000000000..a53e31e69
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxStencilShape.html
    @@ -0,0 +1,715 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxStencilShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxStencilShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStencilShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxStencilShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxStencilShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxStencilShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxStencilShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +Stencil shape drawing that takes an XML definition of the shape and renders
    + it.
    + 
    + See http://projects.gnome.org/dia/custom-shapes for specs. See
    + http://dia-installer.de/shapes_de.html for shapes.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#boundingBox">boundingBox</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#cachedTransform">cachedTransform</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform cached to save instance created.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#iconPath">iconPath</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#name">name</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#root">root</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the root node of the Dia shape description.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#rootShape">rootShape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/GeneralPath.html?is-external=true" title="class or interface in java.awt.geom">GeneralPath</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#shapePath">shapePath</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#mxStencilShape()">mxStencilShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#mxStencilShape(org.w3c.dom.Document)">mxStencilShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#mxStencilShape(java.lang.String)">mxStencilShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;shapeXml)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stencil for the given Dia shape description.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#createElement(org.w3c.dom.Node)">createElement</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Forms an internal representation of the specified SVG element and returns
    + that representation</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#createShape(org.w3c.dom.Node, com.mxgraph.shape.mxStencilShape.svgShape)">createShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;root,
    +            <A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&nbsp;shape)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#getBoundingBox()">getBoundingBox</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#getIconPath()">getIconPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#getName()">getName</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#getStylenames(java.lang.String)">getStylenames</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stylenames in a style of the form stylename[;key=value] or an
    + empty array if the given style does not contain any stylenames.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#paintNode(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, com.mxgraph.shape.mxStencilShape.svgShape, double, double)">paintNode</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&nbsp;shape,
    +          double&nbsp;widthRatio,
    +          double&nbsp;heightRatio)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#setBoundingBox(java.awt.geom.Rectangle2D)">setBoundingBox</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;boundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#setIconPath(java.lang.String)">setIconPath</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;iconPath)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#setName(java.lang.String)">setName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html#transformShape(java.awt.Shape, double, double, double, double)">transformShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;shape,
    +               double&nbsp;transX,
    +               double&nbsp;transY,
    +               double&nbsp;widthRatio,
    +               double&nbsp;heightRatio)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scales the points composing this shape by the x and y ratios specified</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="shapePath"><!-- --></A><H3>
    +shapePath</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/GeneralPath.html?is-external=true" title="class or interface in java.awt.geom">GeneralPath</A> <B>shapePath</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="root"><!-- --></A><H3>
    +root</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>root</B></PRE>
    +<DL>
    +<DD>Reference to the root node of the Dia shape description.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rootShape"><!-- --></A><H3>
    +rootShape</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A> <B>rootShape</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="boundingBox"><!-- --></A><H3>
    +boundingBox</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A> <B>boundingBox</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="name"><!-- --></A><H3>
    +name</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>name</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="iconPath"><!-- --></A><H3>
    +iconPath</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>iconPath</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cachedTransform"><!-- --></A><H3>
    +cachedTransform</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A> <B>cachedTransform</B></PRE>
    +<DL>
    +<DD>Transform cached to save instance created. Used to scale the internal
    + path of shapes where possible
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxStencilShape()"><!-- --></A><H3>
    +mxStencilShape</H3>
    +<PRE>
    +public <B>mxStencilShape</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxStencilShape(java.lang.String)"><!-- --></A><H3>
    +mxStencilShape</H3>
    +<PRE>
    +public <B>mxStencilShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;shapeXml)</PRE>
    +<DL>
    +<DD>Constructs a new stencil for the given Dia shape description.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxStencilShape(org.w3c.dom.Document)"><!-- --></A><H3>
    +mxStencilShape</H3>
    +<PRE>
    +public <B>mxStencilShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintNode(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, com.mxgraph.shape.mxStencilShape.svgShape, double, double)"><!-- --></A><H3>
    +paintNode</H3>
    +<PRE>
    +public void <B>paintNode</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                      <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                      <A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&nbsp;shape,
    +                      double&nbsp;widthRatio,
    +                      double&nbsp;heightRatio)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="transformShape(java.awt.Shape, double, double, double, double)"><!-- --></A><H3>
    +transformShape</H3>
    +<PRE>
    +protected void <B>transformShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;shape,
    +                              double&nbsp;transX,
    +                              double&nbsp;transY,
    +                              double&nbsp;widthRatio,
    +                              double&nbsp;heightRatio)</PRE>
    +<DL>
    +<DD>Scales the points composing this shape by the x and y ratios specified
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>shape</CODE> - the shape to scale<DD><CODE>transX</CODE> - the x translation<DD><CODE>transY</CODE> - the y translation<DD><CODE>widthRatio</CODE> - the x co-ordinate scale<DD><CODE>heightRatio</CODE> - the y co-ordinate scale</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createShape(org.w3c.dom.Node, com.mxgraph.shape.mxStencilShape.svgShape)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public void <B>createShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;root,
    +                        <A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&nbsp;shape)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createElement(org.w3c.dom.Node)"><!-- --></A><H3>
    +createElement</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A> <B>createElement</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;root)</PRE>
    +<DL>
    +<DD>Forms an internal representation of the specified SVG element and returns
    + that representation
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>root</CODE> - the SVG element to represent
    +<DT><B>Returns:</B><DD>the internal representation of the element, or null if an error
    +         occurs</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStylenames(java.lang.String)"><!-- --></A><H3>
    +getStylenames</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getStylenames</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Returns the stylenames in a style of the form stylename[;key=value] or an
    + empty array if the given style does not contain any stylenames.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String of the form stylename[;stylename][;key=value].
    +<DT><B>Returns:</B><DD>Returns the stylename from the given formatted string.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getName()"><!-- --></A><H3>
    +getName</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getName</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setName(java.lang.String)"><!-- --></A><H3>
    +setName</H3>
    +<PRE>
    +public void <B>setName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIconPath()"><!-- --></A><H3>
    +getIconPath</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getIconPath</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setIconPath(java.lang.String)"><!-- --></A><H3>
    +setIconPath</H3>
    +<PRE>
    +public void <B>setIconPath</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;iconPath)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundingBox()"><!-- --></A><H3>
    +getBoundingBox</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A> <B>getBoundingBox</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBoundingBox(java.awt.geom.Rectangle2D)"><!-- --></A><H3>
    +setBoundingBox</H3>
    +<PRE>
    +public void <B>setBoundingBox</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;boundingBox)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStencilShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxStencilShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxStencilShape.svgShape.html b/java/docs/com/mxgraph/shape/mxStencilShape.svgShape.html
    new file mode 100644
    index 000000000..64ef98c95
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxStencilShape.svgShape.html
    @@ -0,0 +1,431 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxStencilShape.svgShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxStencilShape.svgShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStencilShape.svgShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxStencilShape.svgShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilShape.svgShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxStencilShape.svgShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxStencilShape.svgShape</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>protected class <B>mxStencilShape.svgShape</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#currentXScale">currentXScale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current value to which the shape is scaled in X</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#currentYScale">currentYScale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current value to which the shape is scaled in Y</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#shape">shape</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#style">style</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contains an array of key, value pairs that represent the style of the
    + cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#subShapes">subShapes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#mxStencilShape.svgShape(java.awt.Shape, java.util.Map)">mxStencilShape.svgShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;shape,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#getCurrentXScale()">getCurrentXScale</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#getCurrentYScale()">getCurrentYScale</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#setCurrentXScale(double)">setCurrentXScale</A></B>(double&nbsp;currentXScale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html#setCurrentYScale(double)">setCurrentYScale</A></B>(double&nbsp;currentYScale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="shape"><!-- --></A><H3>
    +shape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>shape</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="style"><!-- --></A><H3>
    +style</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>style</B></PRE>
    +<DL>
    +<DD>Contains an array of key, value pairs that represent the style of the
    + cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="subShapes"><!-- --></A><H3>
    +subShapes</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&gt; <B>subShapes</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentXScale"><!-- --></A><H3>
    +currentXScale</H3>
    +<PRE>
    +protected double <B>currentXScale</B></PRE>
    +<DL>
    +<DD>Holds the current value to which the shape is scaled in X
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentYScale"><!-- --></A><H3>
    +currentYScale</H3>
    +<PRE>
    +protected double <B>currentYScale</B></PRE>
    +<DL>
    +<DD>Holds the current value to which the shape is scaled in Y
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxStencilShape.svgShape(java.awt.Shape, java.util.Map)"><!-- --></A><H3>
    +mxStencilShape.svgShape</H3>
    +<PRE>
    +public <B>mxStencilShape.svgShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;shape,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getCurrentXScale()"><!-- --></A><H3>
    +getCurrentXScale</H3>
    +<PRE>
    +public double <B>getCurrentXScale</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCurrentXScale(double)"><!-- --></A><H3>
    +setCurrentXScale</H3>
    +<PRE>
    +public void <B>setCurrentXScale</B>(double&nbsp;currentXScale)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurrentYScale()"><!-- --></A><H3>
    +getCurrentYScale</H3>
    +<PRE>
    +public double <B>getCurrentYScale</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCurrentYScale(double)"><!-- --></A><H3>
    +setCurrentYScale</H3>
    +<PRE>
    +public void <B>setCurrentYScale</B>(double&nbsp;currentYScale)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStencilShape.svgShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxStencilShape.svgShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStencilShape.svgShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxSwimlaneShape.html b/java/docs/com/mxgraph/shape/mxSwimlaneShape.html
    new file mode 100644
    index 000000000..7fc28b4a1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxSwimlaneShape.html
    @@ -0,0 +1,295 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxSwimlaneShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSwimlaneShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSwimlaneShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxSwimlaneShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwimlaneShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxSwimlaneShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxSwimlaneShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSwimlaneShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html#mxSwimlaneShape()">mxSwimlaneShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSwimlaneShape()"><!-- --></A><H3>
    +mxSwimlaneShape</H3>
    +<PRE>
    +public <B>mxSwimlaneShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintShape</H3>
    +<PRE>
    +public void <B>paintShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                       <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getGradientBounds</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getGradientBounds</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSwimlaneShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxSwimlaneShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwimlaneShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/mxTriangleShape.html b/java/docs/com/mxgraph/shape/mxTriangleShape.html
    new file mode 100644
    index 000000000..cb113874a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/mxTriangleShape.html
    @@ -0,0 +1,271 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxTriangleShape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxTriangleShape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxTriangleShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxTriangleShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTriangleShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.shape</FONT>
    +<BR>
    +Class mxTriangleShape</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">com.mxgraph.shape.mxBasicShape</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.shape.mxTriangleShape</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxTriangleShape</B><DT>extends <A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxTriangleShape.html#mxTriangleShape()">mxTriangleShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/shape/mxTriangleShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.shape.mxBasicShape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A>, <A HREF="../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxTriangleShape()"><!-- --></A><H3>
    +mxTriangleShape</H3>
    +<PRE>
    +public <B>mxTriangleShape</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxTriangleShape.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/mxTriangleShape.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTriangleShape.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/package-frame.html b/java/docs/com/mxgraph/shape/package-frame.html
    new file mode 100644
    index 000000000..e516c8872
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/package-frame.html
    @@ -0,0 +1,93 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.shape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/shape/package-summary.html" target="classFrame">com.mxgraph.shape</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxIMarker.html" title="interface in com.mxgraph.shape" target="classFrame"><I>mxIMarker</I></A>
    +<BR>
    +<A HREF="mxIShape.html" title="interface in com.mxgraph.shape" target="classFrame"><I>mxIShape</I></A>
    +<BR>
    +<A HREF="mxITextShape.html" title="interface in com.mxgraph.shape" target="classFrame"><I>mxITextShape</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxActorShape.html" title="class in com.mxgraph.shape" target="classFrame">mxActorShape</A>
    +<BR>
    +<A HREF="mxArrowShape.html" title="class in com.mxgraph.shape" target="classFrame">mxArrowShape</A>
    +<BR>
    +<A HREF="mxBasicShape.html" title="class in com.mxgraph.shape" target="classFrame">mxBasicShape</A>
    +<BR>
    +<A HREF="mxCloudShape.html" title="class in com.mxgraph.shape" target="classFrame">mxCloudShape</A>
    +<BR>
    +<A HREF="mxConnectorShape.html" title="class in com.mxgraph.shape" target="classFrame">mxConnectorShape</A>
    +<BR>
    +<A HREF="mxCurveLabelShape.html" title="class in com.mxgraph.shape" target="classFrame">mxCurveLabelShape</A>
    +<BR>
    +<A HREF="mxCurveShape.html" title="class in com.mxgraph.shape" target="classFrame">mxCurveShape</A>
    +<BR>
    +<A HREF="mxCylinderShape.html" title="class in com.mxgraph.shape" target="classFrame">mxCylinderShape</A>
    +<BR>
    +<A HREF="mxDefaultTextShape.html" title="class in com.mxgraph.shape" target="classFrame">mxDefaultTextShape</A>
    +<BR>
    +<A HREF="mxDoubleEllipseShape.html" title="class in com.mxgraph.shape" target="classFrame">mxDoubleEllipseShape</A>
    +<BR>
    +<A HREF="mxEllipseShape.html" title="class in com.mxgraph.shape" target="classFrame">mxEllipseShape</A>
    +<BR>
    +<A HREF="mxHexagonShape.html" title="class in com.mxgraph.shape" target="classFrame">mxHexagonShape</A>
    +<BR>
    +<A HREF="mxHtmlTextShape.html" title="class in com.mxgraph.shape" target="classFrame">mxHtmlTextShape</A>
    +<BR>
    +<A HREF="mxImageShape.html" title="class in com.mxgraph.shape" target="classFrame">mxImageShape</A>
    +<BR>
    +<A HREF="mxLabelShape.html" title="class in com.mxgraph.shape" target="classFrame">mxLabelShape</A>
    +<BR>
    +<A HREF="mxLineShape.html" title="class in com.mxgraph.shape" target="classFrame">mxLineShape</A>
    +<BR>
    +<A HREF="mxMarkerRegistry.html" title="class in com.mxgraph.shape" target="classFrame">mxMarkerRegistry</A>
    +<BR>
    +<A HREF="mxRectangleShape.html" title="class in com.mxgraph.shape" target="classFrame">mxRectangleShape</A>
    +<BR>
    +<A HREF="mxRhombusShape.html" title="class in com.mxgraph.shape" target="classFrame">mxRhombusShape</A>
    +<BR>
    +<A HREF="mxStencil.html" title="class in com.mxgraph.shape" target="classFrame">mxStencil</A>
    +<BR>
    +<A HREF="mxStencilRegistry.html" title="class in com.mxgraph.shape" target="classFrame">mxStencilRegistry</A>
    +<BR>
    +<A HREF="mxStencilShape.html" title="class in com.mxgraph.shape" target="classFrame">mxStencilShape</A>
    +<BR>
    +<A HREF="mxSwimlaneShape.html" title="class in com.mxgraph.shape" target="classFrame">mxSwimlaneShape</A>
    +<BR>
    +<A HREF="mxTriangleShape.html" title="class in com.mxgraph.shape" target="classFrame">mxTriangleShape</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/package-summary.html b/java/docs/com/mxgraph/shape/package-summary.html
    new file mode 100644
    index 000000000..ec6d073ee
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/package-summary.html
    @@ -0,0 +1,274 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.shape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.shape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.shape
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape">mxActorShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape">mxArrowShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape">mxCloudShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A></B></TD>
    +<TD>Draws the edge label along a curve derived from the curve describing
    + the edge's path</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape">mxCylinderShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape">mxDefaultTextShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape">mxDoubleEllipseShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape">mxHexagonShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A></B></TD>
    +<TD>To set global CSS for all HTML labels, use the following code:</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A></B></TD>
    +<TD>A rectangular shape that contains a single image</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape">mxLineShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape">mxMarkerRegistry</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape">mxRhombusShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A></B></TD>
    +<TD>Implements a stencil for the given XML definition.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape">mxStencilRegistry</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A></B></TD>
    +<TD>Stencil shape drawing that takes an XML definition of the shape and renders
    + it.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape">mxSwimlaneShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape">mxTriangleShape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/package-tree.html b/java/docs/com/mxgraph/shape/package-tree.html
    new file mode 100644
    index 000000000..c3053a1a7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/package-tree.html
    @@ -0,0 +1,174 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.shape Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.shape Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.shape
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape"><B>mxBasicShape</B></A> (implements com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape"><B>mxActorShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape"><B>mxArrowShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape"><B>mxCloudShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape"><B>mxConnectorShape</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape"><B>mxCurveShape</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape"><B>mxCylinderShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape"><B>mxEllipseShape</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape"><B>mxDoubleEllipseShape</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape"><B>mxHexagonShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape"><B>mxLineShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape"><B>mxRectangleShape</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape"><B>mxImageShape</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape"><B>mxLabelShape</B></A></UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape"><B>mxRhombusShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape"><B>mxStencilShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape"><B>mxSwimlaneShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape"><B>mxTriangleShape</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape"><B>mxCurveLabelShape</B></A> (implements com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>)
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape"><B>mxCurveLabelShape.LabelGlyphCache</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape"><B>mxCurveLabelShape.LabelPosition</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape"><B>mxDefaultTextShape</B></A> (implements com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>)
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape"><B>mxHtmlTextShape</B></A> (implements com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>)
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape"><B>mxMarkerRegistry</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape"><B>mxStencil</B></A> (implements com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>)
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape"><B>mxStencilRegistry</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape"><B>mxStencilShape.svgShape</B></A></UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><B>mxIMarker</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><B>mxIShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="../../../com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><B>mxITextShape</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/reader/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/shape/package-use.html b/java/docs/com/mxgraph/shape/package-use.html
    new file mode 100644
    index 000000000..4d5351ae0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/shape/package-use.html
    @@ -0,0 +1,265 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.shape (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.shape (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.shape</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> used by <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxIShape.html#com.mxgraph.canvas"><B>mxIShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxITextShape.html#com.mxgraph.canvas"><B>mxITextShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> used by <A HREF="../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxBasicShape.html#com.mxgraph.shape"><B>mxBasicShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxConnectorShape.html#com.mxgraph.shape"><B>mxConnectorShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxCurveLabelShape.LabelGlyphCache.html#com.mxgraph.shape"><B>mxCurveLabelShape.LabelGlyphCache</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility class to describe the characteristics of each glyph of a branch
    + branch label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxCurveLabelShape.LabelPosition.html#com.mxgraph.shape"><B>mxCurveLabelShape.LabelPosition</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility class that stores details of how the label is positioned
    + on the curve</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxEllipseShape.html#com.mxgraph.shape"><B>mxEllipseShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxImageShape.html#com.mxgraph.shape"><B>mxImageShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A rectangular shape that contains a single image</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxIMarker.html#com.mxgraph.shape"><B>mxIMarker</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxIShape.html#com.mxgraph.shape"><B>mxIShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxITextShape.html#com.mxgraph.shape"><B>mxITextShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxRectangleShape.html#com.mxgraph.shape"><B>mxRectangleShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxStencil.html#com.mxgraph.shape"><B>mxStencil</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a stencil for the given XML definition.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/shape/class-use/mxStencilShape.svgShape.html#com.mxgraph.shape"><B>mxStencilShape.svgShape</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/shape/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/class-use/mxSession.html b/java/docs/com/mxgraph/sharing/class-use/mxSession.html
    new file mode 100644
    index 000000000..87fd77ed6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/class-use/mxSession.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.sharing.mxSession (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.sharing.mxSession (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/sharing//class-usemxSession.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSession.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.sharing.mxSession</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.sharing.mxSession
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/sharing//class-usemxSession.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSession.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/class-use/mxSharedGraphModel.html b/java/docs/com/mxgraph/sharing/class-use/mxSharedGraphModel.html
    new file mode 100644
    index 000000000..ec6b0e15a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/class-use/mxSharedGraphModel.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.sharing.mxSharedGraphModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.sharing.mxSharedGraphModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/sharing//class-usemxSharedGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.sharing.mxSharedGraphModel</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.sharing.mxSharedGraphModel
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/sharing//class-usemxSharedGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/class-use/mxSharedState.html b/java/docs/com/mxgraph/sharing/class-use/mxSharedState.html
    new file mode 100644
    index 000000000..42cbae620
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/class-use/mxSharedState.html
    @@ -0,0 +1,213 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.sharing.mxSharedState (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.sharing.mxSharedState (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/sharing//class-usemxSharedState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.sharing.mxSharedState</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A> in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A> in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a diagram that may be shared among multiple sessions.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> declared as <A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSession.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSession.html#diagram">diagram</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the shared diagram.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> with parameters of type <A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/sharing/mxSession.html#mxSession(java.lang.String, com.mxgraph.sharing.mxSharedState)">mxSession</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +          <A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>&nbsp;diagram)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new session with the given ID.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/sharing//class-usemxSharedState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/class-use/mxSharedState.mxDiagramChangeListener.html b/java/docs/com/mxgraph/sharing/class-use/mxSharedState.mxDiagramChangeListener.html
    new file mode 100644
    index 000000000..617150a5e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/class-use/mxSharedState.mxDiagramChangeListener.html
    @@ -0,0 +1,222 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/sharing//class-usemxSharedState.mxDiagramChangeListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedState.mxDiagramChangeListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A> in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> that implement <A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a session that may be attached to a shared diagram.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> with type parameters of type <A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxSharedState.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSharedState.html#diagramChangeListeners">diagramChangeListeners</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds a list of diagram change listeners.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> with parameters of type <A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxSharedState.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSharedState.html#addDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)">addDiagramChangeListener</A></B>(<A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given listener to the list of diagram change listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxSharedState.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSharedState.html#removeDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)">removeDiagramChangeListener</A></B>(<A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given listener from the list of diagram change listeners.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/sharing//class-usemxSharedState.mxDiagramChangeListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedState.mxDiagramChangeListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/mxSession.html b/java/docs/com/mxgraph/sharing/mxSession.html
    new file mode 100644
    index 000000000..3e078aad9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/mxSession.html
    @@ -0,0 +1,608 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxSession (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSession (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSession.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/mxSession.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSession.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.sharing</FONT>
    +<BR>
    +Class mxSession</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.sharing.mxSession</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSession</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a session that may be attached to a shared diagram. The session
    + contains a synchronized buffer which is used to hold the pending edits which
    + are to be sent to a specific client. The update mechnism between the server
    + and the client uses HTTP requests (polling). The request is kept on the server
    + for an amount of time or wakes up / returns immediately if the buffer is no
    + longer empty.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#buffer">buffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the send buffer for this session.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#DEFAULT_TIMEOUT">DEFAULT_TIMEOUT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default timeout is 10000 ms.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#diagram">diagram</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the shared diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#id">id</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the session ID.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;long</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#lastTimeMillis">lastTimeMillis</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the last active time millis.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#mxSession(java.lang.String, com.mxgraph.sharing.mxSharedState)">mxSession</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +          <A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>&nbsp;diagram)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new session with the given ID.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#destroy()">destroy</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destroys the session and removes its listener from the shared diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#diagramChanged(java.lang.Object, java.lang.String)">diagramChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edits)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires when the shared diagram was changed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#getId()">getId</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the session ID.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#getInitialMessage()">getInitialMessage</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an XML string that represents the current state of the session
    + and the shared diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;long</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#inactiveTimeMillis()">inactiveTimeMillis</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of milliseconds this session has been inactive.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#init()">init</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initializes the session buffer and returns a string that represents the
    + state of the session.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#poll()">poll</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the changes received by other sessions for the shared diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#poll(long)">poll</A></B>(long&nbsp;timeout)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the changes received by other sessions for the shared diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSession.html#receive(org.w3c.dom.Node)">receive</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;message)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Posts the change represented by the given XML string to the shared diagram.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="DEFAULT_TIMEOUT"><!-- --></A><H3>
    +DEFAULT_TIMEOUT</H3>
    +<PRE>
    +public static int <B>DEFAULT_TIMEOUT</B></PRE>
    +<DL>
    +<DD>Default timeout is 10000 ms.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="id"><!-- --></A><H3>
    +id</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>id</B></PRE>
    +<DL>
    +<DD>Holds the session ID.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="diagram"><!-- --></A><H3>
    +diagram</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A> <B>diagram</B></PRE>
    +<DL>
    +<DD>Reference to the shared diagram.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="buffer"><!-- --></A><H3>
    +buffer</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A> <B>buffer</B></PRE>
    +<DL>
    +<DD>Holds the send buffer for this session.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lastTimeMillis"><!-- --></A><H3>
    +lastTimeMillis</H3>
    +<PRE>
    +protected long <B>lastTimeMillis</B></PRE>
    +<DL>
    +<DD>Holds the last active time millis.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSession(java.lang.String, com.mxgraph.sharing.mxSharedState)"><!-- --></A><H3>
    +mxSession</H3>
    +<PRE>
    +public <B>mxSession</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                 <A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>&nbsp;diagram)</PRE>
    +<DL>
    +<DD>Constructs a new session with the given ID.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>id</CODE> - Specifies the session ID to be used.<DD><CODE>diagram</CODE> - Reference to the shared diagram.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getId()"><!-- --></A><H3>
    +getId</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getId</B>()</PRE>
    +<DL>
    +<DD>Returns the session ID.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="init()"><!-- --></A><H3>
    +init</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>init</B>()</PRE>
    +<DL>
    +<DD>Initializes the session buffer and returns a string that represents the
    + state of the session.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the initial state of the session.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInitialMessage()"><!-- --></A><H3>
    +getInitialMessage</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getInitialMessage</B>()</PRE>
    +<DL>
    +<DD>Returns an XML string that represents the current state of the session
    + and the shared diagram. A globally unique ID is used as the session's
    + namespace, which is used on the client side to prefix IDs of newly
    + created cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="receive(org.w3c.dom.Node)"><!-- --></A><H3>
    +receive</H3>
    +<PRE>
    +public void <B>receive</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;message)</PRE>
    +<DL>
    +<DD>Posts the change represented by the given XML string to the shared diagram.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>message</CODE> - XML that represents the change.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="poll()"><!-- --></A><H3>
    +poll</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>poll</B>()
    +            throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</A></PRE>
    +<DL>
    +<DD>Returns the changes received by other sessions for the shared diagram.
    + The method returns an empty XML node if no change was received within
    + 10 seconds.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a string representing the changes to the shared diagram.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="poll(long)"><!-- --></A><H3>
    +poll</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>poll</B>(long&nbsp;timeout)
    +            throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</A></PRE>
    +<DL>
    +<DD>Returns the changes received by other sessions for the shared diagram.
    + The method returns an empty XML node if no change was received within
    + the given timeout.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>timeout</CODE> - Time in milliseconds to wait for changes.
    +<DT><B>Returns:</B><DD>Returns a string representing the changes to the shared diagram.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="diagramChanged(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +diagramChanged</H3>
    +<PRE>
    +public void <B>diagramChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edits)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html#diagramChanged(java.lang.Object, java.lang.String)">mxSharedState.mxDiagramChangeListener</A></CODE></B></DD>
    +<DD>Fires when the shared diagram was changed.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html#diagramChanged(java.lang.Object, java.lang.String)">diagramChanged</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sender</CODE> - Session where the change was received from.<DD><CODE>edits</CODE> - String that represents the edits.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="inactiveTimeMillis()"><!-- --></A><H3>
    +inactiveTimeMillis</H3>
    +<PRE>
    +public long <B>inactiveTimeMillis</B>()</PRE>
    +<DL>
    +<DD>Returns the number of milliseconds this session has been inactive.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="destroy()"><!-- --></A><H3>
    +destroy</H3>
    +<PRE>
    +public void <B>destroy</B>()</PRE>
    +<DL>
    +<DD>Destroys the session and removes its listener from the shared diagram.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSession.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/mxSession.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSession.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/mxSharedGraphModel.html b/java/docs/com/mxgraph/sharing/mxSharedGraphModel.html
    new file mode 100644
    index 000000000..9e6593cfe
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/mxSharedGraphModel.html
    @@ -0,0 +1,581 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxSharedGraphModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSharedGraphModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSharedGraphModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/mxSharedGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.sharing.mxSharedState">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.sharing</FONT>
    +<BR>
    +Class mxSharedGraphModel</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">com.mxgraph.sharing.mxSharedState</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.sharing.mxSharedGraphModel</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSharedGraphModel</B><DT>extends <A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a diagram that may be shared among multiple sessions.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.sharing.mxSharedState"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.sharing.<A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#codec">codec</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#significantRemoteChanges">significantRemoteChanges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether remote changes should be significant in the
    + local command history.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.sharing.mxSharedState"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.sharing.<A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#delta">delta</A>, <A HREF="../../../com/mxgraph/sharing/mxSharedState.html#diagramChangeListeners">diagramChangeListeners</A>, <A HREF="../../../com/mxgraph/sharing/mxSharedState.html#state">state</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#mxSharedGraphModel(com.mxgraph.model.mxGraphModel)">mxSharedGraphModel</A></B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new diagram with the given model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#addDelta(java.lang.String)">addDelta</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edits)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#cellRemoved(java.lang.Object)">cellRemoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds removed cells to the codec object lookup for references to the removed
    + cells after this point in time.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#createUndoableEdit(com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange[])">createUndoableEdit</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>[]&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new mxUndoableEdit that implements the notify function to fire
    + a change and notify event via the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#decodeChanges(org.w3c.dom.Node)">decodeChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds removed cells to the codec object lookup for references to the removed
    + cells after this point in time.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#getModel()">getModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#getState()">getState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the initial state of the diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#isSignificantRemoteChanges()">isSignificantRemoteChanges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#processEdit(org.w3c.dom.Node)">processEdit</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html#setSignificantRemoteChanges(boolean)">setSignificantRemoteChanges</A></B>(boolean&nbsp;significantRemoteChanges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.sharing.mxSharedState"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.sharing.<A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#addDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)">addDiagramChangeListener</A>, <A HREF="../../../com/mxgraph/sharing/mxSharedState.html#getDelta()">getDelta</A>, <A HREF="../../../com/mxgraph/sharing/mxSharedState.html#processDelta(java.lang.Object, org.w3c.dom.Node)">processDelta</A>, <A HREF="../../../com/mxgraph/sharing/mxSharedState.html#removeDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)">removeDiagramChangeListener</A>, <A HREF="../../../com/mxgraph/sharing/mxSharedState.html#resetDelta()">resetDelta</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="model"><!-- --></A><H3>
    +model</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A> <B>model</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="codec"><!-- --></A><H3>
    +codec</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A> <B>codec</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="significantRemoteChanges"><!-- --></A><H3>
    +significantRemoteChanges</H3>
    +<PRE>
    +protected boolean <B>significantRemoteChanges</B></PRE>
    +<DL>
    +<DD>Whether remote changes should be significant in the
    + local command history. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSharedGraphModel(com.mxgraph.model.mxGraphModel)"><!-- --></A><H3>
    +mxSharedGraphModel</H3>
    +<PRE>
    +public <B>mxSharedGraphModel</B>(<A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Constructs a new diagram with the given model.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Initial model of the diagram.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getModel()"><!-- --></A><H3>
    +getModel</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A> <B>getModel</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the model</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSignificantRemoteChanges()"><!-- --></A><H3>
    +isSignificantRemoteChanges</H3>
    +<PRE>
    +public boolean <B>isSignificantRemoteChanges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the significantRemoteChanges</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSignificantRemoteChanges(boolean)"><!-- --></A><H3>
    +setSignificantRemoteChanges</H3>
    +<PRE>
    +public void <B>setSignificantRemoteChanges</B>(boolean&nbsp;significantRemoteChanges)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>significantRemoteChanges</CODE> - the significantRemoteChanges to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getState()"><!-- --></A><H3>
    +getState</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getState</B>()</PRE>
    +<DL>
    +<DD>Returns the initial state of the diagram.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#getState()">getState</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addDelta(java.lang.String)"><!-- --></A><H3>
    +addDelta</H3>
    +<PRE>
    +public void <B>addDelta</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edits)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#addDelta(java.lang.String)">addDelta</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="processEdit(org.w3c.dom.Node)"><!-- --></A><H3>
    +processEdit</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>processEdit</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#processEdit(org.w3c.dom.Node)">processEdit</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createUndoableEdit(com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange[])"><!-- --></A><H3>
    +createUndoableEdit</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A> <B>createUndoableEdit</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>[]&nbsp;changes)</PRE>
    +<DL>
    +<DD>Creates a new mxUndoableEdit that implements the notify function to fire
    + a change and notify event via the model.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeChanges(org.w3c.dom.Node)"><!-- --></A><H3>
    +decodeChanges</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>[] <B>decodeChanges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Adds removed cells to the codec object lookup for references to the removed
    + cells after this point in time.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellRemoved(java.lang.Object)"><!-- --></A><H3>
    +cellRemoved</H3>
    +<PRE>
    +public void <B>cellRemoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Adds removed cells to the codec object lookup for references to the removed
    + cells after this point in time.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSharedGraphModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/mxSharedGraphModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedGraphModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.sharing.mxSharedState">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/mxSharedState.html b/java/docs/com/mxgraph/sharing/mxSharedState.html
    new file mode 100644
    index 000000000..9d3f5734d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/mxSharedState.html
    @@ -0,0 +1,541 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxSharedState (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSharedState (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSharedState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/mxSharedState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.sharing</FONT>
    +<BR>
    +Class mxSharedState</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.sharing.mxSharedState</B>
    +</PRE>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSharedState</B><DT>extends <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a diagram that may be shared among multiple sessions. This
    + implementation is based only on string, it does not have a model instance.
    + The diagram is represented by its initial state and the sequence of edits
    + as applied to the diagram.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that listens to changes on the
    + shared diagram.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#delta">delta</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the history of all changes of initial state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#diagramChangeListeners">diagramChangeListeners</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds a list of diagram change listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#state">state</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the initial state of the diagram.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#mxSharedState(java.lang.String)">mxSharedState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new diagram with the given state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#addDelta(java.lang.String)">addDelta</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;xml)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#addDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)">addDiagramChangeListener</A></B>(<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given listener to the list of diagram change listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#getDelta()">getDelta</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the history of all changes as a string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#getState()">getState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the initial state of the diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#processDelta(java.lang.Object, org.w3c.dom.Node)">processDelta</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;delta)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appends the given string to the history and dispatches the change to all
    + sessions that are listening to this shared diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#processEdit(org.w3c.dom.Node)">processEdit</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#removeDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)">removeDiagramChangeListener</A></B>(<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given listener from the list of diagram change listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html#resetDelta()">resetDelta</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the history of all changes.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="diagramChangeListeners"><!-- --></A><H3>
    +diagramChangeListeners</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>&gt; <B>diagramChangeListeners</B></PRE>
    +<DL>
    +<DD>Holds a list of diagram change listeners.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="state"><!-- --></A><H3>
    +state</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>state</B></PRE>
    +<DL>
    +<DD>Holds the initial state of the diagram.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="delta"><!-- --></A><H3>
    +delta</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A> <B>delta</B></PRE>
    +<DL>
    +<DD>Holds the history of all changes of initial state.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSharedState(java.lang.String)"><!-- --></A><H3>
    +mxSharedState</H3>
    +<PRE>
    +public <B>mxSharedState</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Constructs a new diagram with the given state.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - Initial state of the diagram.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getState()"><!-- --></A><H3>
    +getState</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getState</B>()</PRE>
    +<DL>
    +<DD>Returns the initial state of the diagram.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDelta()"><!-- --></A><H3>
    +getDelta</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDelta</B>()</PRE>
    +<DL>
    +<DD>Returns the history of all changes as a string.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="processDelta(java.lang.Object, org.w3c.dom.Node)"><!-- --></A><H3>
    +processDelta</H3>
    +<PRE>
    +public void <B>processDelta</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;delta)</PRE>
    +<DL>
    +<DD>Appends the given string to the history and dispatches the change to all
    + sessions that are listening to this shared diagram.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sender</CODE> - Session where the change originated from.<DD><CODE>delta</CODE> - XML that represents the change.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="processEdit(org.w3c.dom.Node)"><!-- --></A><H3>
    +processEdit</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>processEdit</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addDelta(java.lang.String)"><!-- --></A><H3>
    +addDelta</H3>
    +<PRE>
    +public void <B>addDelta</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;xml)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="resetDelta()"><!-- --></A><H3>
    +resetDelta</H3>
    +<PRE>
    +public void <B>resetDelta</B>()</PRE>
    +<DL>
    +<DD>Clears the history of all changes.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)"><!-- --></A><H3>
    +addDiagramChangeListener</H3>
    +<PRE>
    +public void <B>addDiagramChangeListener</B>(<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Adds the given listener to the list of diagram change listeners.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>listener</CODE> - Diagram change listener to be added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)"><!-- --></A><H3>
    +removeDiagramChangeListener</H3>
    +<PRE>
    +public void <B>removeDiagramChangeListener</B>(<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Removes the given listener from the list of diagram change listeners.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>listener</CODE> - Diagram change listener to be removed.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSharedState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/mxSharedState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html b/java/docs/com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html
    new file mode 100644
    index 000000000..5dc62c809
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html
    @@ -0,0 +1,222 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxSharedState.mxDiagramChangeListener (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSharedState.mxDiagramChangeListener (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSharedState.mxDiagramChangeListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedState.mxDiagramChangeListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.sharing</FONT>
    +<BR>
    +Interface mxSharedState.mxDiagramChangeListener</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static interface <B>mxSharedState.mxDiagramChangeListener</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the requirements for an object that listens to changes on the
    + shared diagram.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html#diagramChanged(java.lang.Object, java.lang.String)">diagramChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edits)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires when the shared diagram was changed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="diagramChanged(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +diagramChanged</H3>
    +<PRE>
    +void <B>diagramChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;edits)</PRE>
    +<DL>
    +<DD>Fires when the shared diagram was changed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sender</CODE> - Session where the change was received from.<DD><CODE>edits</CODE> - String that represents the edits.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSharedState.mxDiagramChangeListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSharedState.mxDiagramChangeListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/package-frame.html b/java/docs/com/mxgraph/sharing/package-frame.html
    new file mode 100644
    index 000000000..dd1949c91
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/package-frame.html
    @@ -0,0 +1,47 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.sharing (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/sharing/package-summary.html" target="classFrame">com.mxgraph.sharing</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing" target="classFrame"><I>mxSharedState.mxDiagramChangeListener</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxSession.html" title="class in com.mxgraph.sharing" target="classFrame">mxSession</A>
    +<BR>
    +<A HREF="mxSharedGraphModel.html" title="class in com.mxgraph.sharing" target="classFrame">mxSharedGraphModel</A>
    +<BR>
    +<A HREF="mxSharedState.html" title="class in com.mxgraph.sharing" target="classFrame">mxSharedState</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/package-summary.html b/java/docs/com/mxgraph/sharing/package-summary.html
    new file mode 100644
    index 000000000..382416e55
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/package-summary.html
    @@ -0,0 +1,198 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.sharing (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.sharing (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.sharing
    +</H2>
    +This package contains all classes required for concurrent diagram editing
    +  by multiple clients.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A></B></TD>
    +<TD>Defines the requirements for an object that listens to changes on the
    + shared diagram.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A></B></TD>
    +<TD>Implements a session that may be attached to a shared diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A></B></TD>
    +<TD>Implements a diagram that may be shared among multiple sessions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></B></TD>
    +<TD>Implements a diagram that may be shared among multiple sessions.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.sharing Description
    +</H2>
    +
    +<P>
    +This package contains all classes required for concurrent diagram editing
    +  by multiple clients.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/package-tree.html b/java/docs/com/mxgraph/sharing/package-tree.html
    new file mode 100644
    index 000000000..a773aa14f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/package-tree.html
    @@ -0,0 +1,164 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.sharing Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.sharing Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.sharing
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>mxEventSource</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.sharing.<A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing"><B>mxSharedState</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.sharing.<A HREF="../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing"><B>mxSharedGraphModel</B></A></UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.sharing.<A HREF="../../../com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing"><B>mxSession</B></A> (implements com.mxgraph.sharing.<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>)
    +</UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.sharing.<A HREF="../../../com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing"><B>mxSharedState.mxDiagramChangeListener</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/shape/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/sharing/package-use.html b/java/docs/com/mxgraph/sharing/package-use.html
    new file mode 100644
    index 000000000..9069642b9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/sharing/package-use.html
    @@ -0,0 +1,179 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.sharing (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.sharing (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.sharing</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> used by <A HREF="../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/sharing/class-use/mxSharedState.html#com.mxgraph.sharing"><B>mxSharedState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a diagram that may be shared among multiple sessions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/sharing/class-use/mxSharedState.mxDiagramChangeListener.html#com.mxgraph.sharing"><B>mxSharedState.mxDiagramChangeListener</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that listens to changes on the
    + shared diagram.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/sharing/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/class-use/mxGraphComponent.html b/java/docs/com/mxgraph/swing/class-use/mxGraphComponent.html
    new file mode 100644
    index 000000000..829fec6fd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/class-use/mxGraphComponent.html
    @@ -0,0 +1,782 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.mxGraphComponent (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.mxGraphComponent (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphComponent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.mxGraphComponent</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphOutline.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphOutline.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.mxMouseRedirector.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphOutline.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphOutline.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.mxGraphControl.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getGraphContainer()">getGraphContainer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphOutline.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphOutline.html#setGraphComponent(com.mxgraph.swing.mxGraphComponent)">setGraphComponent</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>graphComponent</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mxGraphComponent.mxMouseRedirector(com.mxgraph.swing.mxGraphComponent)">mxGraphComponent.mxMouseRedirector</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/mxGraphOutline.html#mxGraphOutline(com.mxgraph.swing.mxGraphComponent)">mxGraphOutline</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRubberband.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph container.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRotationHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxInsertHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSelectionCellsHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPanningHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRotationHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxInsertHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSelectionCellsHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], javax.swing.ImageIcon)">createGraphTransferable</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)">createGraphTransferable</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createTransferableImage(com.mxgraph.swing.mxGraphComponent, java.lang.Object[])">createTransferableImage</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#getDropTarget(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)">getDropTarget</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the drop target for the given transferable and location.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#importCells(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable, double, double)">importCells</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +            <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt,
    +            double&nbsp;dx,
    +            double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets a drop target using getDropTarget and imports the cells using
    + mxGraph.splitEdge or mxGraphComponent.importCells depending on the
    + drop target and the return values of mxGraph.isSplitEnabled and
    + mxGraph.isSplitTarget.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#importGraphTransferable(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)">importGraphTransferable</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cells have been imported using importCells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxKeyboardHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html#installKeyboardActions(com.mxgraph.swing.mxGraphComponent)">installKeyboardActions</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked as part from the boilerplate install block.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#removeCells(com.mxgraph.swing.mxGraphComponent, java.lang.Object[])">removeCells</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mxCellHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxCellHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell handler for the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent)">mxCellMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new marker for the given graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color)">mxCellMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;validColor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new marker for the given graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color, java.awt.Color)">mxCellMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;validColor,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;invalidColor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new marker for the given graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color, java.awt.Color, double)">mxCellMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;validColor,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;invalidColor,
    +             double&nbsp;hotspot)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new marker for the given graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#mxCellTracker(com.mxgraph.swing.mxGraphComponent, java.awt.Color)">mxCellTracker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an event handler that highlights cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#mxConnectionHandler(com.mxgraph.swing.mxGraphComponent)">mxConnectionHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#mxConnectPreview(com.mxgraph.swing.mxGraphComponent)">mxConnectPreview</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#mxEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxEdgeHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html#mxElbowEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxElbowEdgeHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                   <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#mxGraphHandler(com.mxgraph.swing.mxGraphComponent)">mxGraphHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#mxInsertHandler(com.mxgraph.swing.mxGraphComponent, java.lang.String)">mxInsertHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html#mxKeyboardHandler(com.mxgraph.swing.mxGraphComponent)">mxKeyboardHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#mxMovePreview(com.mxgraph.swing.mxGraphComponent)">mxMovePreview</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new rubberband selection for the given graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#mxPanningHandler(com.mxgraph.swing.mxGraphComponent)">mxPanningHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#mxRotationHandler(com.mxgraph.swing.mxGraphComponent)">mxRotationHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new rotation handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#mxRubberband(com.mxgraph.swing.mxGraphComponent)">mxRubberband</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new rubberband selection for the given graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mxSelectionCellsHandler(com.mxgraph.swing.mxGraphComponent)">mxSelectionCellsHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#mxVertexHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxVertexHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> declared as <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph instance.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> with parameters of type <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#mxMorphing(com.mxgraph.swing.mxGraphComponent)">mxMorphing</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new morphing instance for the given graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#mxMorphing(com.mxgraph.swing.mxGraphComponent, int, double, int)">mxMorphing</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +           int&nbsp;steps,
    +           double&nbsp;ease,
    +           int&nbsp;delay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new morphing instance for the given graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> declared as <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellEditor.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> with parameters of type <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxInteractiveCanvas.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#contains(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)">contains</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +         <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxInteractiveCanvas.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#hitSwimlaneContent(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState, int, int)">hitSwimlaneContent</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                   <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;swimlane,
    +                   int&nbsp;x,
    +                   int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given point is inside the content area of the given
    + swimlane.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxInteractiveCanvas.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#intersects(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)">intersects</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> with parameters of type <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#mxCellEditor(com.mxgraph.swing.mxGraphComponent)">mxCellEditor</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#mxCellStatePreview(com.mxgraph.swing.mxGraphComponent, boolean)">mxCellStatePreview</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                   boolean&nbsp;cloned)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new state preview.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphComponent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/class-use/mxGraphComponent.mxGraphControl.html b/java/docs/com/mxgraph/swing/class-use/mxGraphComponent.mxGraphControl.html
    new file mode 100644
    index 000000000..391de2c82
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/class-use/mxGraphComponent.mxGraphControl.html
    @@ -0,0 +1,207 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.mxGraphComponent.mxGraphControl (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.mxGraphComponent.mxGraphControl (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphComponent.mxGraphControl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.mxGraphControl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.mxGraphComponent.mxGraphControl</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#graphControl">graphControl</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#createGraphControl()">createGraphControl</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the inner control that handles tooltips, preferred size and can
    + draw cells onto a canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#getGraphControl()">getGraphControl</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphComponent.mxGraphControl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.mxGraphControl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/class-use/mxGraphComponent.mxMouseRedirector.html b/java/docs/com/mxgraph/swing/class-use/mxGraphComponent.mxMouseRedirector.html
    new file mode 100644
    index 000000000..81c1f76b7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/class-use/mxGraphComponent.mxMouseRedirector.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.mxGraphComponent.mxMouseRedirector (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.mxGraphComponent.mxMouseRedirector (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphComponent.mxMouseRedirector.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.mxMouseRedirector.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.mxGraphComponent.mxMouseRedirector</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.mxGraphComponent.mxMouseRedirector
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphComponent.mxMouseRedirector.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.mxMouseRedirector.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/class-use/mxGraphOutline.MouseTracker.html b/java/docs/com/mxgraph/swing/class-use/mxGraphOutline.MouseTracker.html
    new file mode 100644
    index 000000000..e2b804bea
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/class-use/mxGraphOutline.MouseTracker.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.mxGraphOutline.MouseTracker (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.mxGraphOutline.MouseTracker (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphOutline.MouseTracker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphOutline.MouseTracker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.mxGraphOutline.MouseTracker</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphOutline.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphOutline.html#tracker">tracker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphOutline.MouseTracker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphOutline.MouseTracker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/class-use/mxGraphOutline.html b/java/docs/com/mxgraph/swing/class-use/mxGraphOutline.html
    new file mode 100644
    index 000000000..a719429da
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/class-use/mxGraphOutline.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.mxGraphOutline (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.mxGraphOutline (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphOutline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphOutline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.mxGraphOutline</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.mxGraphOutline
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing//class-usemxGraphOutline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphOutline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxCellHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxCellHandler.html
    new file mode 100644
    index 000000000..9090e5277
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxCellHandler.html
    @@ -0,0 +1,260 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxCellHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxCellHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxCellHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxCellHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A> in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#createHandler(com.mxgraph.view.mxCellState)">createHandler</A></B>(<A HREF="../../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with type parameters of type <A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxSelectionCellsHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#handlers">handlers</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from cells to handlers in the order of the selection cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSelectionCellsHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getHandler(java.lang.Object)">getHandler</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxCellHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxCellMarker.html b/java/docs/com/mxgraph/swing/handler/class-use/mxCellMarker.html
    new file mode 100644
    index 000000000..4468010ac
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxCellMarker.html
    @@ -0,0 +1,270 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxCellMarker (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxCellMarker (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxCellMarker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellMarker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxCellMarker</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event handler that highlights cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html#marker">marker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#marker">marker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#marker">marker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html#createMarker()">createMarker</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getMarker()">getMarker</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#getMarker()">getMarker</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setMarker(com.mxgraph.swing.handler.mxCellMarker)">setMarker</A></B>(<A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setMarker(com.mxgraph.swing.handler.mxCellMarker)">setMarker</A></B>(<A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxCellMarker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellMarker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxCellTracker.html b/java/docs/com/mxgraph/swing/handler/class-use/mxCellTracker.html
    new file mode 100644
    index 000000000..9163c3a96
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxCellTracker.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxCellTracker (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxCellTracker (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxCellTracker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellTracker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxCellTracker</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.handler.mxCellTracker
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxCellTracker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellTracker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxConnectPreview.html b/java/docs/com/mxgraph/swing/handler/class-use/mxConnectPreview.html
    new file mode 100644
    index 000000000..f79daea63
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxConnectPreview.html
    @@ -0,0 +1,222 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxConnectPreview (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxConnectPreview (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxConnectPreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectPreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxConnectPreview</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#connectPreview">connectPreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#createConnectPreview()">createConnectPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#getConnectPreview()">getConnectPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setConnectPreview(com.mxgraph.swing.handler.mxConnectPreview)">setConnectPreview</A></B>(<A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxConnectPreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectPreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxConnectionHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxConnectionHandler.html
    new file mode 100644
    index 000000000..804c31bff
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxConnectionHandler.html
    @@ -0,0 +1,206 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxConnectionHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxConnectionHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxConnectionHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectionHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxConnectionHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A> in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#connectionHandler">connectionHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#createConnectionHandler()">createConnectionHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#getConnectionHandler()">getConnectionHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxConnectionHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectionHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxEdgeHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxEdgeHandler.html
    new file mode 100644
    index 000000000..fa8b8e530
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxEdgeHandler.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxEdgeHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxEdgeHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxEdgeHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxEdgeHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxEdgeHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxElbowEdgeHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxElbowEdgeHandler.html
    new file mode 100644
    index 000000000..4ce19e5a9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxElbowEdgeHandler.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxElbowEdgeHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxElbowEdgeHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxElbowEdgeHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxElbowEdgeHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxElbowEdgeHandler</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.handler.mxElbowEdgeHandler
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxElbowEdgeHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxElbowEdgeHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxGraphHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxGraphHandler.html
    new file mode 100644
    index 000000000..6d7033141
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxGraphHandler.html
    @@ -0,0 +1,206 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxGraphHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxGraphHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxGraphHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxGraphHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A> in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#graphHandler">graphHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#createGraphHandler()">createGraphHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#getGraphHandler()">getGraphHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxGraphHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxGraphTransferHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxGraphTransferHandler.html
    new file mode 100644
    index 000000000..b5e22222f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxGraphTransferHandler.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxGraphTransferHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxGraphTransferHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxGraphTransferHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphTransferHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxGraphTransferHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getGraphTransferHandler(java.awt.dnd.DropTargetEvent)">getGraphTransferHandler</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Helper method to return the component for a drop target event.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxGraphTransferHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphTransferHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxInsertHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxInsertHandler.html
    new file mode 100644
    index 000000000..2849122ff
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxInsertHandler.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxInsertHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxInsertHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxInsertHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxInsertHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxInsertHandler</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.handler.mxInsertHandler
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxInsertHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxInsertHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxKeyboardHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxKeyboardHandler.html
    new file mode 100644
    index 000000000..1e759acbe
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxKeyboardHandler.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxKeyboardHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxKeyboardHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxKeyboardHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxKeyboardHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxKeyboardHandler</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.handler.mxKeyboardHandler
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxKeyboardHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxKeyboardHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxMovePreview.html b/java/docs/com/mxgraph/swing/handler/class-use/mxMovePreview.html
    new file mode 100644
    index 000000000..25bf4a31e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxMovePreview.html
    @@ -0,0 +1,206 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxMovePreview (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxMovePreview (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxMovePreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMovePreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxMovePreview</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html#movePreview">movePreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html#createMovePreview()">createMovePreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getMovePreview()">getMovePreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxMovePreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMovePreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxPanningHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxPanningHandler.html
    new file mode 100644
    index 000000000..5eed6bb53
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxPanningHandler.html
    @@ -0,0 +1,206 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxPanningHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxPanningHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxPanningHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPanningHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxPanningHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A> in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#panningHandler">panningHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#createPanningHandler()">createPanningHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#getPanningHandler()">getPanningHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxPanningHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPanningHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxRotationHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxRotationHandler.html
    new file mode 100644
    index 000000000..5692a5a8d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxRotationHandler.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxRotationHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxRotationHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxRotationHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRotationHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxRotationHandler</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.handler.mxRotationHandler
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxRotationHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRotationHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxRubberband.html b/java/docs/com/mxgraph/swing/handler/class-use/mxRubberband.html
    new file mode 100644
    index 000000000..9aa32a846
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxRubberband.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxRubberband (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxRubberband (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxRubberband.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRubberband.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxRubberband</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.handler.mxRubberband
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxRubberband.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRubberband.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxSelectionCellsHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxSelectionCellsHandler.html
    new file mode 100644
    index 000000000..a0f67db13
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxSelectionCellsHandler.html
    @@ -0,0 +1,206 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxSelectionCellsHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxSelectionCellsHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxSelectionCellsHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSelectionCellsHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxSelectionCellsHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A> in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#selectionCellsHandler">selectionCellsHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#createSelectionCellsHandler()">createSelectionCellsHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#getSelectionCellsHandler()">getSelectionCellsHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxSelectionCellsHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSelectionCellsHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/class-use/mxVertexHandler.html b/java/docs/com/mxgraph/swing/handler/class-use/mxVertexHandler.html
    new file mode 100644
    index 000000000..f763e62bb
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/class-use/mxVertexHandler.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.handler.mxVertexHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.handler.mxVertexHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxVertexHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxVertexHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.handler.mxVertexHandler</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.handler.mxVertexHandler
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/handler//class-usemxVertexHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxVertexHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxCellHandler.html b/java/docs/com/mxgraph/swing/handler/mxCellHandler.html
    new file mode 100644
    index 000000000..c8e9766c5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxCellHandler.html
    @@ -0,0 +1,1058 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:08 CEST 2012 -->
    +<TITLE>
    +mxCellHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxCellHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxCellHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxCellHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellHandler</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#bounds">bounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the bounding box of the handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#first">first</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the start location of the mouse gesture.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#handles">handles</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the rectangles that define the handles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#handlesVisible">handlesVisible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the handles should be painted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#index">index</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the index of the handle that was clicked.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#preview">preview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the component that is used for preview.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#state">state</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the cell state associated with this handler.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mxCellHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxCellHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell handler for the given cell state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createHandles()">createHandles</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the rectangles that define the handles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createPreview()">createPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the preview for this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getBounds()">getBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box of this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getCursor(java.awt.event.MouseEvent, int)">getCursor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +          int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cursor for the given event and handle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleBorderColor(int)">getHandleBorderColor</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the border color of the handle at the specified index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleCount()">getHandleCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of handles in this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleFillColor(int)">getHandleFillColor</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the color to be used to fill the handle at the specified index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getIndex()">getIndex</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the current handle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getIndexAt(int, int)">getIndexAt</A></B>(int&nbsp;x,
    +           int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the handle at the given location.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionColor()">getSelectionColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the color used to draw the selection border.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionStroke()">getSelectionStroke</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stroke used to draw the selection border.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getState()">getState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell state that is associated with this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getToolTipText(java.awt.event.MouseEvent)">getToolTipText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to return tooltip texts for certain points on the
    + handle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isActive()">isActive</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandleEnabled(int)">isHandleEnabled</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the handle at the specified index is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandlesVisible()">isHandlesVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the handles should be painted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandleVisible(int)">isHandleVisible</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the handle at the specified index is visible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isIgnoredEvent(java.awt.event.MouseEvent)">isIgnoredEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given event should be ignored.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isLabel(int)">isLabel</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given index is the index of the last handle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isLabelMovable()">isLabelMovable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the label is movable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the visible handles of this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#refresh(com.mxgraph.view.mxCellState)">refresh</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Refreshes the cell handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets the state of the handler and removes the preview.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#setHandlesVisible(boolean)">setHandlesVisible</A></B>(boolean&nbsp;handlesVisible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the handles should be painted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#start(java.awt.event.MouseEvent, int)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +      int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starts handling a gesture at the given handle index.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph component.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="state"><!-- --></A><H3>
    +state</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>state</B></PRE>
    +<DL>
    +<DD>Holds the cell state associated with this handler.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="handles"><!-- --></A><H3>
    +handles</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[] <B>handles</B></PRE>
    +<DL>
    +<DD>Holds the rectangles that define the handles.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="handlesVisible"><!-- --></A><H3>
    +handlesVisible</H3>
    +<PRE>
    +protected boolean <B>handlesVisible</B></PRE>
    +<DL>
    +<DD>Specifies if the handles should be painted. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bounds"><!-- --></A><H3>
    +bounds</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>bounds</B></PRE>
    +<DL>
    +<DD>Holds the bounding box of the handler.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="preview"><!-- --></A><H3>
    +preview</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> <B>preview</B></PRE>
    +<DL>
    +<DD>Holds the component that is used for preview.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="first"><!-- --></A><H3>
    +first</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>first</B></PRE>
    +<DL>
    +<DD>Holds the start location of the mouse gesture.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="index"><!-- --></A><H3>
    +index</H3>
    +<PRE>
    +protected transient int <B>index</B></PRE>
    +<DL>
    +<DD>Holds the index of the handle that was clicked.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +mxCellHandler</H3>
    +<PRE>
    +public <B>mxCellHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                     <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Constructs a new cell handler for the given cell state.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - Enclosing graph component.<DD><CODE>state</CODE> - Cell state for which the handler is created.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isActive()"><!-- --></A><H3>
    +isActive</H3>
    +<PRE>
    +public boolean <B>isActive</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="refresh(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +refresh</H3>
    +<PRE>
    +public void <B>refresh</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Refreshes the cell handler.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphComponent()"><!-- --></A><H3>
    +getGraphComponent</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>getGraphComponent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getState()"><!-- --></A><H3>
    +getState</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getState</B>()</PRE>
    +<DL>
    +<DD>Returns the cell state that is associated with this handler.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIndex()"><!-- --></A><H3>
    +getIndex</H3>
    +<PRE>
    +public int <B>getIndex</B>()</PRE>
    +<DL>
    +<DD>Returns the index of the current handle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBounds()"><!-- --></A><H3>
    +getBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getBounds</B>()</PRE>
    +<DL>
    +<DD>Returns the bounding box of this handler.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLabelMovable()"><!-- --></A><H3>
    +isLabelMovable</H3>
    +<PRE>
    +public boolean <B>isLabelMovable</B>()</PRE>
    +<DL>
    +<DD>Returns true if the label is movable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHandlesVisible()"><!-- --></A><H3>
    +isHandlesVisible</H3>
    +<PRE>
    +public boolean <B>isHandlesVisible</B>()</PRE>
    +<DL>
    +<DD>Returns true if the handles should be painted.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHandlesVisible(boolean)"><!-- --></A><H3>
    +setHandlesVisible</H3>
    +<PRE>
    +public void <B>setHandlesVisible</B>(boolean&nbsp;handlesVisible)</PRE>
    +<DL>
    +<DD>Specifies if the handles should be painted.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLabel(int)"><!-- --></A><H3>
    +isLabel</H3>
    +<PRE>
    +public boolean <B>isLabel</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns true if the given index is the index of the last handle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHandles()"><!-- --></A><H3>
    +createHandles</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[] <B>createHandles</B>()</PRE>
    +<DL>
    +<DD>Creates the rectangles that define the handles.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHandleCount()"><!-- --></A><H3>
    +getHandleCount</H3>
    +<PRE>
    +protected int <B>getHandleCount</B>()</PRE>
    +<DL>
    +<DD>Returns the number of handles in this handler.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getToolTipText(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +getToolTipText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getToolTipText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Hook for subclassers to return tooltip texts for certain points on the
    + handle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIndexAt(int, int)"><!-- --></A><H3>
    +getIndexAt</H3>
    +<PRE>
    +public int <B>getIndexAt</B>(int&nbsp;x,
    +                      int&nbsp;y)</PRE>
    +<DL>
    +<DD>Returns the index of the handle at the given location.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - X-coordinate of the location.<DD><CODE>y</CODE> - Y-coordinate of the location.
    +<DT><B>Returns:</B><DD>Returns the handle index for the given location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Processes the given event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Processes the given event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Processes the given event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Processes the given event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="start(java.awt.event.MouseEvent, int)"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +public void <B>start</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                  int&nbsp;index)</PRE>
    +<DL>
    +<DD>Starts handling a gesture at the given handle index.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isIgnoredEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isIgnoredEvent</H3>
    +<PRE>
    +protected boolean <B>isIgnoredEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Returns true if the given event should be ignored.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createPreview()"><!-- --></A><H3>
    +createPreview</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> <B>createPreview</B>()</PRE>
    +<DL>
    +<DD>Creates the preview for this handler.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD>Resets the state of the handler and removes the preview.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCursor(java.awt.event.MouseEvent, int)"><!-- --></A><H3>
    +getCursor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A> <B>getCursor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                           int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the cursor for the given event and handle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD>Paints the visible handles of this handler.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionColor()"><!-- --></A><H3>
    +getSelectionColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getSelectionColor</B>()</PRE>
    +<DL>
    +<DD>Returns the color used to draw the selection border. This implementation
    + returns null.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionStroke()"><!-- --></A><H3>
    +getSelectionStroke</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A> <B>getSelectionStroke</B>()</PRE>
    +<DL>
    +<DD>Returns the stroke used to draw the selection border. This implementation
    + returns null.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHandleEnabled(int)"><!-- --></A><H3>
    +isHandleEnabled</H3>
    +<PRE>
    +protected boolean <B>isHandleEnabled</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns true if the handle at the specified index is enabled.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHandleVisible(int)"><!-- --></A><H3>
    +isHandleVisible</H3>
    +<PRE>
    +protected boolean <B>isHandleVisible</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns true if the handle at the specified index is visible.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHandleFillColor(int)"><!-- --></A><H3>
    +getHandleFillColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getHandleFillColor</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the color to be used to fill the handle at the specified index.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHandleBorderColor(int)"><!-- --></A><H3>
    +getHandleBorderColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getHandleBorderColor</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the border color of the handle at the specified index.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxCellHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxCellMarker.html b/java/docs/com/mxgraph/swing/handler/mxCellMarker.html
    new file mode 100644
    index 000000000..98f230aee
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxCellMarker.html
    @@ -0,0 +1,1534 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:08 CEST 2012 -->
    +<TITLE>
    +mxCellMarker (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellMarker (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellMarker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxCellMarker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellMarker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JComponent">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxCellMarker</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">java.awt.Component</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">java.awt.Container</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">javax.swing.JComponent</A>
    +              <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxCellMarker</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellMarker</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a mouse tracker that marks cells under the mouse.
    + 
    + This class fires the following event:
    + 
    + mxEvent.MARK fires in mark and unmark to notify the listener of a new cell
    + under the mouse. The <code>state</code> property contains the mxCellState
    + of the respective cell or null if no cell is under the mouse.
    + 
    + To create a cell marker which highlights cells "in-place", the following
    + code can be used:
    + <code>
    + mxCellMarker highlighter = new mxCellMarker(graphComponent) {
    + 
    +   protected Map<String, Object> lastStyle;
    +   
    +   public mxCellState process(MouseEvent e)
    +   {
    +     mxCellState state = null;
    +     
    +     if (isEnabled())
    +     {
    +       state = getState(e);
    +       boolean isValid = (state != null) ? isValidState(state) : false;
    +       
    +       if (!isValid)
    +       {
    +         state = null;
    +       }
    +       
    +       highlight(state);
    +     }
    +     
    +     return state;
    +   }
    +   
    +   public void highlight(mxCellState state)
    +   {
    +     if (validState != state)
    +     {
    +       Rectangle dirty = null;
    +       
    +       if (validState != null)
    +       {
    +         validState.setStyle(lastStyle);
    +         dirty = validState.getBoundingBox().getRectangle();
    +         dirty.grow(4, 4);
    +       }
    +       
    +       if (state != null)
    +       {
    +         lastStyle = state.getStyle();
    +         state.setStyle(new Hashtable<String, Object>(state.getStyle()));
    +         state.getStyle().put("strokeColor", "#00ff00");
    +         state.getStyle().put("fontColor", "#00ff00");
    +         state.getStyle().put("strokeWidth", "3");
    +          
    +         Rectangle tmp = state.getBoundingBox().getRectangle();
    +         
    +         if (dirty != null)
    +         {
    +           dirty.add(tmp);
    +         }
    +         else
    +         {
    +           dirty = tmp;
    +         }
    +         
    +         dirty.grow(4, 4);
    +       }
    +       
    +       validState = state;
    +       graphComponent.repaint(dirty);
    +     }
    +   }
    +
    +   public void reset()
    +   {
    +     highlight(null);
    +   }
    +
    +   public void paint(Graphics g)
    +   {
    +     // do nothing
    +   }
    + };
    +  
    + graphComponent.getConnectionHandler().setMarker(highlighter);
    + </code>
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.handler.mxCellMarker">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.AccessibleJComponent.html?is-external=true" title="class or interface in javax.swing">JComponent.AccessibleJComponent</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.AccessibleAWTContainer.html?is-external=true" title="class or interface in java.awt">Container.AccessibleAWTContainer</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.AccessibleAWTComponent.html?is-external=true" title="class or interface in java.awt">Component.AccessibleAWTComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BaselineResizeBehavior.html?is-external=true" title="class or interface in java.awt">Component.BaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BltBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.BltBufferStrategy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.FlipBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.FlipBufferStrategy</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#currentColor">currentColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current marker color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#DEFAULT_STROKE">DEFAULT_STROKE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default stroke for the marker.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the marker is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#eventSource">eventSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#hotspot">hotspot</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the portion of the width and height that should trigger
    + a highlight.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#hotspotEnabled">hotspotEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the hotspot is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#invalidColor">invalidColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the valid- and invalidColor for the marker.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#KEEP_ON_TOP">KEEP_ON_TOP</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the highlights should appear on top of everything
    + else in the overlay pane.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#markedState">markedState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the marked state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#swimlaneContentEnabled">swimlaneContentEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the the content area of swimlane should be non-transparent
    + to mouse events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#validColor">validColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the valid- and invalidColor for the marker.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#validState">validState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the marked state if it is valid.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#accessibleContext" title="class or interface in javax.swing">accessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#listenerList" title="class or interface in javax.swing">listenerList</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#TOOL_TIP_TEXT_KEY" title="class or interface in javax.swing">TOOL_TIP_TEXT_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#ui" title="class or interface in javax.swing">ui</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#UNDEFINED_CONDITION" title="class or interface in javax.swing">UNDEFINED_CONDITION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT" title="class or interface in javax.swing">WHEN_ANCESTOR_OF_FOCUSED_COMPONENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_FOCUSED" title="class or interface in javax.swing">WHEN_FOCUSED</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_IN_FOCUSED_WINDOW" title="class or interface in javax.swing">WHEN_IN_FOCUSED_WINDOW</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#BOTTOM_ALIGNMENT" title="class or interface in java.awt">BOTTOM_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#CENTER_ALIGNMENT" title="class or interface in java.awt">CENTER_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#LEFT_ALIGNMENT" title="class or interface in java.awt">LEFT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#RIGHT_ALIGNMENT" title="class or interface in java.awt">RIGHT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#TOP_ALIGNMENT" title="class or interface in java.awt">TOP_ALIGNMENT</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.image.ImageObserver"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ABORT" title="class or interface in java.awt.image">ABORT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ALLBITS" title="class or interface in java.awt.image">ALLBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ERROR" title="class or interface in java.awt.image">ERROR</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#FRAMEBITS" title="class or interface in java.awt.image">FRAMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#HEIGHT" title="class or interface in java.awt.image">HEIGHT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#PROPERTIES" title="class or interface in java.awt.image">PROPERTIES</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#SOMEBITS" title="class or interface in java.awt.image">SOMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#WIDTH" title="class or interface in java.awt.image">WIDTH</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent)">mxCellMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new marker for the given graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color)">mxCellMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;validColor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new marker for the given graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color, java.awt.Color)">mxCellMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;validColor,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;invalidColor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new marker for the given graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color, java.awt.Color, double)">mxCellMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;validColor,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;invalidColor,
    +             double&nbsp;hotspot)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new marker for the given graph component.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given event listener.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getCell(java.awt.event.MouseEvent)">getCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the state at the given location.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getCurrentColor()">getCurrentColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getHotspot()">getHotspot</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the hotspot.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getInvalidColor()">getInvalidColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the color used for invalid highlights.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getMarkedState()">getMarkedState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the marked state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getMarkerColor(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, boolean)">getMarkerColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +               boolean&nbsp;isValid)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the valid- or invalidColor depending on the value of isValid.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getState(java.awt.event.MouseEvent)">getState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses getCell, getMarkedState and intersects to return the state for
    + the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getStateToMark(com.mxgraph.view.mxCellState)">getStateToMark</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the state to be marked for the given state under the mouse.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getValidColor()">getValidColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the color used for valid highlights.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getValidState()">getValidState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the valid state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#hasValidState()">hasValidState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if validState is not null.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#highlight(com.mxgraph.view.mxCellState, java.awt.Color)">highlight</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#highlight(com.mxgraph.view.mxCellState, java.awt.Color, boolean)">highlight</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color,
    +          boolean&nbsp;valid)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#intersects(com.mxgraph.view.mxCellState, java.awt.event.MouseEvent)">intersects</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given mouse event intersects the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the marker is enabled, that is, if it processes events
    + in process.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#isHotspotEnabled()">isHotspotEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if hotspot is used in intersects.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#isSwimlaneContentEnabled()">isSwimlaneContentEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the content area of swimlanes is non-transparent to
    + events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#isValidState(com.mxgraph.view.mxCellState)">isValidState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given state is a valid state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mark()">mark</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marks the markedState and fires a mxEvent.MARK event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the outline of the markedState with the currentColor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#process(java.awt.event.MouseEvent)">process</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event and marks the state returned by getStateAt
    + with the color returned by getMarkerColor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given event listener.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given event listener for the specified event name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets the state of the cell marker.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setCurrentColor(java.awt.Color)">setCurrentColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the current color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;enabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the enabled state of the marker.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setHotspot(double)">setHotspot</A></B>(double&nbsp;hotspot)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the hotspot.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setHotspotEnabled(boolean)">setHotspotEnabled</A></B>(boolean&nbsp;enabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies whether the hotspot should be used in intersects.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setInvalidColor(java.awt.Color)">setInvalidColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the color used for invalid highlights.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setMarkedState(com.mxgraph.view.mxCellState)">setMarkedState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the marked state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setSwimlaneContentEnabled(boolean)">setSwimlaneContentEnabled</A></B>(boolean&nbsp;swimlaneContentEnabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets if the content area of swimlanes should not be transparent to
    + events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setValidColor(java.awt.Color)">setValidColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the color used for valid highlights.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#unmark()">unmark</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hides the marker and fires a mxEvent.MARK event.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">addAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addNotify()" title="class or interface in javax.swing">addNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">addVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#computeVisibleRect(java.awt.Rectangle)" title="class or interface in javax.swing">computeVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#contains(int, int)" title="class or interface in javax.swing">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#createToolTip()" title="class or interface in javax.swing">createToolTip</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#disable()" title="class or interface in javax.swing">disable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#enable()" title="class or interface in javax.swing">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, boolean, boolean)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, char, char)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, int, int)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#fireVetoableChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">fireVetoableChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAccessibleContext()" title="class or interface in javax.swing">getAccessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getActionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionMap()" title="class or interface in javax.swing">getActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentX()" title="class or interface in javax.swing">getAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentY()" title="class or interface in javax.swing">getAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAncestorListeners()" title="class or interface in javax.swing">getAncestorListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAutoscrolls()" title="class or interface in javax.swing">getAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaseline(int, int)" title="class or interface in javax.swing">getBaseline</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaselineResizeBehavior()" title="class or interface in javax.swing">getBaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBorder()" title="class or interface in javax.swing">getBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBounds(java.awt.Rectangle)" title="class or interface in javax.swing">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getClientProperty(java.lang.Object)" title="class or interface in javax.swing">getClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentGraphics(java.awt.Graphics)" title="class or interface in javax.swing">getComponentGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentPopupMenu()" title="class or interface in javax.swing">getComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getConditionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getConditionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDebugGraphicsOptions()" title="class or interface in javax.swing">getDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDefaultLocale()" title="class or interface in javax.swing">getDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getFontMetrics(java.awt.Font)" title="class or interface in javax.swing">getFontMetrics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getGraphics()" title="class or interface in javax.swing">getGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getHeight()" title="class or interface in javax.swing">getHeight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInheritsPopupMenu()" title="class or interface in javax.swing">getInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap()" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap(int)" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputVerifier()" title="class or interface in javax.swing">getInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets()" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets(java.awt.Insets)" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getListeners(java.lang.Class)" title="class or interface in javax.swing">getListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getLocation(java.awt.Point)" title="class or interface in javax.swing">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMaximumSize()" title="class or interface in javax.swing">getMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMinimumSize()" title="class or interface in javax.swing">getMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getNextFocusableComponent()" title="class or interface in javax.swing">getNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPopupLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getPopupLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPreferredSize()" title="class or interface in javax.swing">getPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRegisteredKeyStrokes()" title="class or interface in javax.swing">getRegisteredKeyStrokes</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRootPane()" title="class or interface in javax.swing">getRootPane</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getSize(java.awt.Dimension)" title="class or interface in javax.swing">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText()" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTopLevelAncestor()" title="class or interface in javax.swing">getTopLevelAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTransferHandler()" title="class or interface in javax.swing">getTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getUIClassID()" title="class or interface in javax.swing">getUIClassID</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVerifyInputWhenFocusTarget()" title="class or interface in javax.swing">getVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVetoableChangeListeners()" title="class or interface in javax.swing">getVetoableChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVisibleRect()" title="class or interface in javax.swing">getVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getWidth()" title="class or interface in javax.swing">getWidth</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getX()" title="class or interface in javax.swing">getX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getY()" title="class or interface in javax.swing">getY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#grabFocus()" title="class or interface in javax.swing">grabFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isDoubleBuffered()" title="class or interface in javax.swing">isDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isLightweightComponent(java.awt.Component)" title="class or interface in javax.swing">isLightweightComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isManagingFocus()" title="class or interface in javax.swing">isManagingFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOpaque()" title="class or interface in javax.swing">isOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOptimizedDrawingEnabled()" title="class or interface in javax.swing">isOptimizedDrawingEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingForPrint()" title="class or interface in javax.swing">isPaintingForPrint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingTile()" title="class or interface in javax.swing">isPaintingTile</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isRequestFocusEnabled()" title="class or interface in javax.swing">isRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isValidateRoot()" title="class or interface in javax.swing">isValidateRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintBorder(java.awt.Graphics)" title="class or interface in javax.swing">paintBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintChildren(java.awt.Graphics)" title="class or interface in javax.swing">paintChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintComponent(java.awt.Graphics)" title="class or interface in javax.swing">paintComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(int, int, int, int)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(java.awt.Rectangle)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paramString()" title="class or interface in javax.swing">paramString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#print(java.awt.Graphics)" title="class or interface in javax.swing">print</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printAll(java.awt.Graphics)" title="class or interface in javax.swing">printAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printBorder(java.awt.Graphics)" title="class or interface in javax.swing">printBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printChildren(java.awt.Graphics)" title="class or interface in javax.swing">printChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printComponent(java.awt.Graphics)" title="class or interface in javax.swing">printComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processComponentKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processComponentKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyBinding(javax.swing.KeyStroke, java.awt.event.KeyEvent, int, boolean)" title="class or interface in javax.swing">processKeyBinding</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseMotionEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseMotionEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#putClientProperty(java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">putClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">removeAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeNotify()" title="class or interface in javax.swing">removeNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">removeVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(long, int, int, int, int)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(java.awt.Rectangle)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestDefaultFocus()" title="class or interface in javax.swing">requestDefaultFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus()" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus(boolean)" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow()" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow(boolean)" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#resetKeyboardActions()" title="class or interface in javax.swing">resetKeyboardActions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#reshape(int, int, int, int)" title="class or interface in javax.swing">reshape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#revalidate()" title="class or interface in javax.swing">revalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#scrollRectToVisible(java.awt.Rectangle)" title="class or interface in javax.swing">scrollRectToVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setActionMap(javax.swing.ActionMap)" title="class or interface in javax.swing">setActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentX(float)" title="class or interface in javax.swing">setAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentY(float)" title="class or interface in javax.swing">setAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAutoscrolls(boolean)" title="class or interface in javax.swing">setAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBackground(java.awt.Color)" title="class or interface in javax.swing">setBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBorder(javax.swing.border.Border)" title="class or interface in javax.swing">setBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setComponentPopupMenu(javax.swing.JPopupMenu)" title="class or interface in javax.swing">setComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDebugGraphicsOptions(int)" title="class or interface in javax.swing">setDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDefaultLocale(java.util.Locale)" title="class or interface in javax.swing">setDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDoubleBuffered(boolean)" title="class or interface in javax.swing">setDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFocusTraversalKeys(int, java.util.Set)" title="class or interface in javax.swing">setFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFont(java.awt.Font)" title="class or interface in javax.swing">setFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setForeground(java.awt.Color)" title="class or interface in javax.swing">setForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInheritsPopupMenu(boolean)" title="class or interface in javax.swing">setInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputMap(int, javax.swing.InputMap)" title="class or interface in javax.swing">setInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputVerifier(javax.swing.InputVerifier)" title="class or interface in javax.swing">setInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMaximumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMinimumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setNextFocusableComponent(java.awt.Component)" title="class or interface in javax.swing">setNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setOpaque(boolean)" title="class or interface in javax.swing">setOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setPreferredSize(java.awt.Dimension)" title="class or interface in javax.swing">setPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setRequestFocusEnabled(boolean)" title="class or interface in javax.swing">setRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setToolTipText(java.lang.String)" title="class or interface in javax.swing">setToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setTransferHandler(javax.swing.TransferHandler)" title="class or interface in javax.swing">setTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setUI(javax.swing.plaf.ComponentUI)" title="class or interface in javax.swing">setUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVerifyInputWhenFocusTarget(boolean)" title="class or interface in javax.swing">setVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVisible(boolean)" title="class or interface in javax.swing">setVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#unregisterKeyboardAction(javax.swing.KeyStroke)" title="class or interface in javax.swing">unregisterKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#update(java.awt.Graphics)" title="class or interface in javax.swing">update</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#updateUI()" title="class or interface in javax.swing">updateUI</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.lang.String, java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">addContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addImpl(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">addImpl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#applyComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">applyComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#areFocusTraversalKeysSet(int)" title="class or interface in java.awt">areFocusTraversalKeysSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#countComponents()" title="class or interface in java.awt">countComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#deliverEvent(java.awt.Event)" title="class or interface in java.awt">deliverEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#doLayout()" title="class or interface in java.awt">doLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(int, int)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(java.awt.Point)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponent(int)" title="class or interface in java.awt">getComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(int, int)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(java.awt.Point)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentCount()" title="class or interface in java.awt">getComponentCount</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponents()" title="class or interface in java.awt">getComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentZOrder(java.awt.Component)" title="class or interface in java.awt">getComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getContainerListeners()" title="class or interface in java.awt">getContainerListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalKeys(int)" title="class or interface in java.awt">getFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalPolicy()" title="class or interface in java.awt">getFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getLayout()" title="class or interface in java.awt">getLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getMousePosition(boolean)" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#insets()" title="class or interface in java.awt">insets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#invalidate()" title="class or interface in java.awt">invalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isAncestorOf(java.awt.Component)" title="class or interface in java.awt">isAncestorOf</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot()" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot(java.awt.Container)" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicyProvider()" title="class or interface in java.awt">isFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicySet()" title="class or interface in java.awt">isFocusTraversalPolicySet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#layout()" title="class or interface in java.awt">layout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintStream, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintWriter, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#locate(int, int)" title="class or interface in java.awt">locate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#minimumSize()" title="class or interface in java.awt">minimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#paintComponents(java.awt.Graphics)" title="class or interface in java.awt">paintComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#preferredSize()" title="class or interface in java.awt">preferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#printComponents(java.awt.Graphics)" title="class or interface in java.awt">printComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processContainerEvent(java.awt.event.ContainerEvent)" title="class or interface in java.awt">processContainerEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processEvent(java.awt.AWTEvent)" title="class or interface in java.awt">processEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(java.awt.Component)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(int)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeAll()" title="class or interface in java.awt">removeAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">removeContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setComponentZOrder(java.awt.Component, int)" title="class or interface in java.awt">setComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusCycleRoot(boolean)" title="class or interface in java.awt">setFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)" title="class or interface in java.awt">setFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicyProvider(boolean)" title="class or interface in java.awt">setFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setLayout(java.awt.LayoutManager)" title="class or interface in java.awt">setLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusBackward()" title="class or interface in java.awt">transferFocusBackward</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusDownCycle()" title="class or interface in java.awt">transferFocusDownCycle</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validate()" title="class or interface in java.awt">validate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validateTree()" title="class or interface in java.awt">validateTree</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#action(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">action</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#add(java.awt.PopupMenu)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">addComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">addFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">addHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">addHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">addInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">addKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">addMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">addMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">addMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#bounds()" title="class or interface in java.awt">bounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#coalesceEvents(java.awt.AWTEvent, java.awt.AWTEvent)" title="class or interface in java.awt">coalesceEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#contains(java.awt.Point)" title="class or interface in java.awt">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(java.awt.image.ImageProducer)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(int, int)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int, java.awt.ImageCapabilities)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#disableEvents(long)" title="class or interface in java.awt">disableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#dispatchEvent(java.awt.AWTEvent)" title="class or interface in java.awt">dispatchEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enable(boolean)" title="class or interface in java.awt">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableEvents(long)" title="class or interface in java.awt">enableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableInputMethods(boolean)" title="class or interface in java.awt">enableInputMethods</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, byte, byte)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, double, double)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, float, float)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, long, long)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, short, short)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBackground()" title="class or interface in java.awt">getBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBounds()" title="class or interface in java.awt">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getColorModel()" title="class or interface in java.awt">getColorModel</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentListeners()" title="class or interface in java.awt">getComponentListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentOrientation()" title="class or interface in java.awt">getComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getCursor()" title="class or interface in java.awt">getCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getDropTarget()" title="class or interface in java.awt">getDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusCycleRootAncestor()" title="class or interface in java.awt">getFocusCycleRootAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusListeners()" title="class or interface in java.awt">getFocusListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusTraversalKeysEnabled()" title="class or interface in java.awt">getFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFont()" title="class or interface in java.awt">getFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getForeground()" title="class or interface in java.awt">getForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getGraphicsConfiguration()" title="class or interface in java.awt">getGraphicsConfiguration</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyBoundsListeners()" title="class or interface in java.awt">getHierarchyBoundsListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyListeners()" title="class or interface in java.awt">getHierarchyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getIgnoreRepaint()" title="class or interface in java.awt">getIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputContext()" title="class or interface in java.awt">getInputContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodListeners()" title="class or interface in java.awt">getInputMethodListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodRequests()" title="class or interface in java.awt">getInputMethodRequests</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getKeyListeners()" title="class or interface in java.awt">getKeyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocale()" title="class or interface in java.awt">getLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocation()" title="class or interface in java.awt">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocationOnScreen()" title="class or interface in java.awt">getLocationOnScreen</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseListeners()" title="class or interface in java.awt">getMouseListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseMotionListeners()" title="class or interface in java.awt">getMouseMotionListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMousePosition()" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseWheelListeners()" title="class or interface in java.awt">getMouseWheelListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getName()" title="class or interface in java.awt">getName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getParent()" title="class or interface in java.awt">getParent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPeer()" title="class or interface in java.awt">getPeer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners()" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners(java.lang.String)" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getSize()" title="class or interface in java.awt">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getToolkit()" title="class or interface in java.awt">getToolkit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getTreeLock()" title="class or interface in java.awt">getTreeLock</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#gotFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">gotFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#handleEvent(java.awt.Event)" title="class or interface in java.awt">handleEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hasFocus()" title="class or interface in java.awt">hasFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hide()" title="class or interface in java.awt">hide</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#imageUpdate(java.awt.Image, int, int, int, int, int)" title="class or interface in java.awt">imageUpdate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#inside(int, int)" title="class or interface in java.awt">inside</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isBackgroundSet()" title="class or interface in java.awt">isBackgroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isCursorSet()" title="class or interface in java.awt">isCursorSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isDisplayable()" title="class or interface in java.awt">isDisplayable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusable()" title="class or interface in java.awt">isFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusOwner()" title="class or interface in java.awt">isFocusOwner</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusTraversable()" title="class or interface in java.awt">isFocusTraversable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFontSet()" title="class or interface in java.awt">isFontSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isForegroundSet()" title="class or interface in java.awt">isForegroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isLightweight()" title="class or interface in java.awt">isLightweight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMaximumSizeSet()" title="class or interface in java.awt">isMaximumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMinimumSizeSet()" title="class or interface in java.awt">isMinimumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isPreferredSizeSet()" title="class or interface in java.awt">isPreferredSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isShowing()" title="class or interface in java.awt">isShowing</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isValid()" title="class or interface in java.awt">isValid</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isVisible()" title="class or interface in java.awt">isVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyDown(java.awt.Event, int)" title="class or interface in java.awt">keyDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyUp(java.awt.Event, int)" title="class or interface in java.awt">keyUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list()" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintStream)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintWriter)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#location()" title="class or interface in java.awt">location</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#lostFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">lostFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDown(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDrag(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDrag</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseEnter(java.awt.Event, int, int)" title="class or interface in java.awt">mouseEnter</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseExit(java.awt.Event, int, int)" title="class or interface in java.awt">mouseExit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseMove(java.awt.Event, int, int)" title="class or interface in java.awt">mouseMove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseUp(java.awt.Event, int, int)" title="class or interface in java.awt">mouseUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#move(int, int)" title="class or interface in java.awt">move</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#nextFocus()" title="class or interface in java.awt">nextFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#paintAll(java.awt.Graphics)" title="class or interface in java.awt">paintAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#postEvent(java.awt.Event)" title="class or interface in java.awt">postEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processComponentEvent(java.awt.event.ComponentEvent)" title="class or interface in java.awt">processComponentEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processFocusEvent(java.awt.event.FocusEvent)" title="class or interface in java.awt">processFocusEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyBoundsEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyBoundsEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processInputMethodEvent(java.awt.event.InputMethodEvent)" title="class or interface in java.awt">processInputMethodEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processMouseWheelEvent(java.awt.event.MouseWheelEvent)" title="class or interface in java.awt">processMouseWheelEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#remove(java.awt.MenuComponent)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">removeComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">removeFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">removeHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">removeHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">removeInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">removeKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">removeMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">removeMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">removeMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint()" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(int, int, int, int)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(long)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(java.awt.Dimension)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(int, int)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(int, int, int, int)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(java.awt.Rectangle)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">setComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setCursor(java.awt.Cursor)" title="class or interface in java.awt">setCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setDropTarget(java.awt.dnd.DropTarget)" title="class or interface in java.awt">setDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusable(boolean)" title="class or interface in java.awt">setFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusTraversalKeysEnabled(boolean)" title="class or interface in java.awt">setFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setIgnoreRepaint(boolean)" title="class or interface in java.awt">setIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocale(java.util.Locale)" title="class or interface in java.awt">setLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(int, int)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(java.awt.Point)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setName(java.lang.String)" title="class or interface in java.awt">setName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(java.awt.Dimension)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(int, int)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show()" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show(boolean)" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#size()" title="class or interface in java.awt">size</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#toString()" title="class or interface in java.awt">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocus()" title="class or interface in java.awt">transferFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocusUpCycle()" title="class or interface in java.awt">transferFocusUpCycle</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="KEEP_ON_TOP"><!-- --></A><H3>
    +KEEP_ON_TOP</H3>
    +<PRE>
    +public static boolean <B>KEEP_ON_TOP</B></PRE>
    +<DL>
    +<DD>Specifies if the highlights should appear on top of everything
    + else in the overlay pane. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_STROKE"><!-- --></A><H3>
    +DEFAULT_STROKE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A> <B>DEFAULT_STROKE</B></PRE>
    +<DL>
    +<DD>Specifies the default stroke for the marker.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="eventSource"><!-- --></A><H3>
    +eventSource</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> <B>eventSource</B></PRE>
    +<DL>
    +<DD>Holds the event source.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DD>Holds the enclosing graph component.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Specifies if the marker is enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="hotspot"><!-- --></A><H3>
    +hotspot</H3>
    +<PRE>
    +protected double <B>hotspot</B></PRE>
    +<DL>
    +<DD>Specifies the portion of the width and height that should trigger
    + a highlight. The area around the center of the cell to be marked is used
    + as the hotspot. Possible values are between 0 and 1. Default is
    + mxConstants.DEFAULT_HOTSPOT.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="hotspotEnabled"><!-- --></A><H3>
    +hotspotEnabled</H3>
    +<PRE>
    +protected boolean <B>hotspotEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if the hotspot is enabled. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="swimlaneContentEnabled"><!-- --></A><H3>
    +swimlaneContentEnabled</H3>
    +<PRE>
    +protected boolean <B>swimlaneContentEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if the the content area of swimlane should be non-transparent
    + to mouse events. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="validColor"><!-- --></A><H3>
    +validColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>validColor</B></PRE>
    +<DL>
    +<DD>Specifies the valid- and invalidColor for the marker.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="invalidColor"><!-- --></A><H3>
    +invalidColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>invalidColor</B></PRE>
    +<DL>
    +<DD>Specifies the valid- and invalidColor for the marker.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentColor"><!-- --></A><H3>
    +currentColor</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>currentColor</B></PRE>
    +<DL>
    +<DD>Holds the current marker color.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="validState"><!-- --></A><H3>
    +validState</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>validState</B></PRE>
    +<DL>
    +<DD>Holds the marked state if it is valid.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="markedState"><!-- --></A><H3>
    +markedState</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>markedState</B></PRE>
    +<DL>
    +<DD>Holds the marked state.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellMarker(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxCellMarker</H3>
    +<PRE>
    +public <B>mxCellMarker</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DD>Constructs a new marker for the given graph component.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - </DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color)"><!-- --></A><H3>
    +mxCellMarker</H3>
    +<PRE>
    +public <B>mxCellMarker</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;validColor)</PRE>
    +<DL>
    +<DD>Constructs a new marker for the given graph component.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color, java.awt.Color)"><!-- --></A><H3>
    +mxCellMarker</H3>
    +<PRE>
    +public <B>mxCellMarker</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;validColor,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;invalidColor)</PRE>
    +<DL>
    +<DD>Constructs a new marker for the given graph component.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color, java.awt.Color, double)"><!-- --></A><H3>
    +mxCellMarker</H3>
    +<PRE>
    +public <B>mxCellMarker</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;validColor,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;invalidColor,
    +                    double&nbsp;hotspot)</PRE>
    +<DL>
    +<DD>Constructs a new marker for the given graph component.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;enabled)</PRE>
    +<DL>
    +<DD>Sets the enabled state of the marker.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD>Returns true if the marker is enabled, that is, if it processes events
    + in process.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isEnabled()" title="class or interface in java.awt">isEnabled</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHotspot(double)"><!-- --></A><H3>
    +setHotspot</H3>
    +<PRE>
    +public void <B>setHotspot</B>(double&nbsp;hotspot)</PRE>
    +<DL>
    +<DD>Sets the hotspot.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHotspot()"><!-- --></A><H3>
    +getHotspot</H3>
    +<PRE>
    +public double <B>getHotspot</B>()</PRE>
    +<DL>
    +<DD>Returns the hotspot.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHotspotEnabled(boolean)"><!-- --></A><H3>
    +setHotspotEnabled</H3>
    +<PRE>
    +public void <B>setHotspotEnabled</B>(boolean&nbsp;enabled)</PRE>
    +<DL>
    +<DD>Specifies whether the hotspot should be used in intersects.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHotspotEnabled()"><!-- --></A><H3>
    +isHotspotEnabled</H3>
    +<PRE>
    +public boolean <B>isHotspotEnabled</B>()</PRE>
    +<DL>
    +<DD>Returns true if hotspot is used in intersects.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSwimlaneContentEnabled(boolean)"><!-- --></A><H3>
    +setSwimlaneContentEnabled</H3>
    +<PRE>
    +public void <B>setSwimlaneContentEnabled</B>(boolean&nbsp;swimlaneContentEnabled)</PRE>
    +<DL>
    +<DD>Sets if the content area of swimlanes should not be transparent to
    + events.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSwimlaneContentEnabled()"><!-- --></A><H3>
    +isSwimlaneContentEnabled</H3>
    +<PRE>
    +public boolean <B>isSwimlaneContentEnabled</B>()</PRE>
    +<DL>
    +<DD>Returns true if the content area of swimlanes is non-transparent to
    + events.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setValidColor(java.awt.Color)"><!-- --></A><H3>
    +setValidColor</H3>
    +<PRE>
    +public void <B>setValidColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the color used for valid highlights.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValidColor()"><!-- --></A><H3>
    +getValidColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getValidColor</B>()</PRE>
    +<DL>
    +<DD>Returns the color used for valid highlights.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInvalidColor(java.awt.Color)"><!-- --></A><H3>
    +setInvalidColor</H3>
    +<PRE>
    +public void <B>setInvalidColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the color used for invalid highlights.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInvalidColor()"><!-- --></A><H3>
    +getInvalidColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getInvalidColor</B>()</PRE>
    +<DL>
    +<DD>Returns the color used for invalid highlights.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hasValidState()"><!-- --></A><H3>
    +hasValidState</H3>
    +<PRE>
    +public boolean <B>hasValidState</B>()</PRE>
    +<DL>
    +<DD>Returns true if validState is not null.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValidState()"><!-- --></A><H3>
    +getValidState</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getValidState</B>()</PRE>
    +<DL>
    +<DD>Returns the valid state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCurrentColor(java.awt.Color)"><!-- --></A><H3>
    +setCurrentColor</H3>
    +<PRE>
    +public void <B>setCurrentColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the current color.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurrentColor()"><!-- --></A><H3>
    +getCurrentColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getCurrentColor</B>()</PRE>
    +<DL>
    +<DD>Returns the current color.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMarkedState(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +setMarkedState</H3>
    +<PRE>
    +public void <B>setMarkedState</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the marked state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMarkedState()"><!-- --></A><H3>
    +getMarkedState</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getMarkedState</B>()</PRE>
    +<DL>
    +<DD>Returns the marked state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD>Resets the state of the cell marker.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="process(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +process</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>process</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Processes the given event and marks the state returned by getStateAt
    + with the color returned by getMarkerColor. If the markerColor is not
    + null, then the state is stored in markedState. If isValidState returns
    + true, then the state is stored in validState regardless of the marker
    + color. The state is returned regardless of the marker color and
    + valid state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="highlight(com.mxgraph.view.mxCellState, java.awt.Color)"><!-- --></A><H3>
    +highlight</H3>
    +<PRE>
    +public void <B>highlight</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="highlight(com.mxgraph.view.mxCellState, java.awt.Color, boolean)"><!-- --></A><H3>
    +highlight</H3>
    +<PRE>
    +public void <B>highlight</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color,
    +                      boolean&nbsp;valid)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mark()"><!-- --></A><H3>
    +mark</H3>
    +<PRE>
    +public void <B>mark</B>()</PRE>
    +<DL>
    +<DD>Marks the markedState and fires a mxEvent.MARK event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unmark()"><!-- --></A><H3>
    +unmark</H3>
    +<PRE>
    +public void <B>unmark</B>()</PRE>
    +<DL>
    +<DD>Hides the marker and fires a mxEvent.MARK event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isValidState(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +isValidState</H3>
    +<PRE>
    +protected boolean <B>isValidState</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns true if the given state is a valid state. If this returns true,
    + then the state is stored in validState. The return value of this method
    + is used as the argument for getMarkerColor.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMarkerColor(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +getMarkerColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getMarkerColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                               boolean&nbsp;isValid)</PRE>
    +<DL>
    +<DD>Returns the valid- or invalidColor depending on the value of isValid.
    + The given state is ignored by this implementation.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getState(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +getState</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getState</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Uses getCell, getMarkedState and intersects to return the state for
    + the given event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Returns the state at the given location. This uses mxGraph.getCellAt.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStateToMark(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getStateToMark</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getStateToMark</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the state to be marked for the given state under the mouse. This
    + returns the given state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersects(com.mxgraph.view.mxCellState, java.awt.event.MouseEvent)"><!-- --></A><H3>
    +intersects</H3>
    +<PRE>
    +protected boolean <B>intersects</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Returns true if the given mouse event intersects the given state. This
    + returns true if the hotspot is 0 or the event is inside the hotspot for
    + the given cell state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +addListener</H3>
    +<PRE>
    +public void <B>addListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +                        <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Adds the given event listener.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Removes the given event listener.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</PRE>
    +<DL>
    +<DD>Removes the given event listener for the specified event name.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD>Paints the outline of the markedState with the currentColor.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paint(java.awt.Graphics)" title="class or interface in javax.swing">paint</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellMarker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxCellMarker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellMarker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JComponent">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxCellTracker.html b/java/docs/com/mxgraph/swing/handler/mxCellTracker.html
    new file mode 100644
    index 000000000..80e8d28e4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxCellTracker.html
    @@ -0,0 +1,547 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:08 CEST 2012 -->
    +<TITLE>
    +mxCellTracker (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellTracker (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellTracker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxCellTracker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellTracker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JComponent">NESTED</A>&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.swing.handler.mxCellMarker">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxCellTracker</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">java.awt.Component</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">java.awt.Container</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">javax.swing.JComponent</A>
    +              <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">com.mxgraph.swing.handler.mxCellMarker</A>
    +                  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxCellTracker</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellTracker</B><DT>extends <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></DL>
    +</PRE>
    +
    +<P>
    +Event handler that highlights cells. Inherits from mxCellMarker.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.handler.mxCellTracker">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.AccessibleJComponent.html?is-external=true" title="class or interface in javax.swing">JComponent.AccessibleJComponent</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.AccessibleAWTContainer.html?is-external=true" title="class or interface in java.awt">Container.AccessibleAWTContainer</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.AccessibleAWTComponent.html?is-external=true" title="class or interface in java.awt">Component.AccessibleAWTComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BaselineResizeBehavior.html?is-external=true" title="class or interface in java.awt">Component.BaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BltBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.BltBufferStrategy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.FlipBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.FlipBufferStrategy</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.swing.handler.mxCellMarker"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#currentColor">currentColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#DEFAULT_STROKE">DEFAULT_STROKE</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#enabled">enabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#eventSource">eventSource</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#graphComponent">graphComponent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#hotspot">hotspot</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#hotspotEnabled">hotspotEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#invalidColor">invalidColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#KEEP_ON_TOP">KEEP_ON_TOP</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#markedState">markedState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#swimlaneContentEnabled">swimlaneContentEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#validColor">validColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#validState">validState</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#accessibleContext" title="class or interface in javax.swing">accessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#listenerList" title="class or interface in javax.swing">listenerList</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#TOOL_TIP_TEXT_KEY" title="class or interface in javax.swing">TOOL_TIP_TEXT_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#ui" title="class or interface in javax.swing">ui</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#UNDEFINED_CONDITION" title="class or interface in javax.swing">UNDEFINED_CONDITION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT" title="class or interface in javax.swing">WHEN_ANCESTOR_OF_FOCUSED_COMPONENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_FOCUSED" title="class or interface in javax.swing">WHEN_FOCUSED</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_IN_FOCUSED_WINDOW" title="class or interface in javax.swing">WHEN_IN_FOCUSED_WINDOW</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#BOTTOM_ALIGNMENT" title="class or interface in java.awt">BOTTOM_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#CENTER_ALIGNMENT" title="class or interface in java.awt">CENTER_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#LEFT_ALIGNMENT" title="class or interface in java.awt">LEFT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#RIGHT_ALIGNMENT" title="class or interface in java.awt">RIGHT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#TOP_ALIGNMENT" title="class or interface in java.awt">TOP_ALIGNMENT</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.image.ImageObserver"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ABORT" title="class or interface in java.awt.image">ABORT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ALLBITS" title="class or interface in java.awt.image">ALLBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ERROR" title="class or interface in java.awt.image">ERROR</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#FRAMEBITS" title="class or interface in java.awt.image">FRAMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#HEIGHT" title="class or interface in java.awt.image">HEIGHT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#PROPERTIES" title="class or interface in java.awt.image">PROPERTIES</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#SOMEBITS" title="class or interface in java.awt.image">SOMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#WIDTH" title="class or interface in java.awt.image">WIDTH</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#mxCellTracker(com.mxgraph.swing.mxGraphComponent, java.awt.Color)">mxCellTracker</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an event handler that highlights cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#destroy()">destroy</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.handler.mxCellMarker"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getCell(java.awt.event.MouseEvent)">getCell</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getCurrentColor()">getCurrentColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getHotspot()">getHotspot</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getInvalidColor()">getInvalidColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getMarkedState()">getMarkedState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getMarkerColor(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, boolean)">getMarkerColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getState(java.awt.event.MouseEvent)">getState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getStateToMark(com.mxgraph.view.mxCellState)">getStateToMark</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getValidColor()">getValidColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getValidState()">getValidState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#hasValidState()">hasValidState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#highlight(com.mxgraph.view.mxCellState, java.awt.Color)">highlight</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#highlight(com.mxgraph.view.mxCellState, java.awt.Color, boolean)">highlight</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#intersects(com.mxgraph.view.mxCellState, java.awt.event.MouseEvent)">intersects</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#isEnabled()">isEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#isHotspotEnabled()">isHotspotEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#isSwimlaneContentEnabled()">isSwimlaneContentEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#isValidState(com.mxgraph.view.mxCellState)">isValidState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#mark()">mark</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#paint(java.awt.Graphics)">paint</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#process(java.awt.event.MouseEvent)">process</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#reset()">reset</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setCurrentColor(java.awt.Color)">setCurrentColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setEnabled(boolean)">setEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setHotspot(double)">setHotspot</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setHotspotEnabled(boolean)">setHotspotEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setInvalidColor(java.awt.Color)">setInvalidColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setMarkedState(com.mxgraph.view.mxCellState)">setMarkedState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setSwimlaneContentEnabled(boolean)">setSwimlaneContentEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setValidColor(java.awt.Color)">setValidColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#unmark()">unmark</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">addAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addNotify()" title="class or interface in javax.swing">addNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">addVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#computeVisibleRect(java.awt.Rectangle)" title="class or interface in javax.swing">computeVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#contains(int, int)" title="class or interface in javax.swing">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#createToolTip()" title="class or interface in javax.swing">createToolTip</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#disable()" title="class or interface in javax.swing">disable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#enable()" title="class or interface in javax.swing">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, boolean, boolean)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, char, char)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, int, int)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#fireVetoableChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">fireVetoableChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAccessibleContext()" title="class or interface in javax.swing">getAccessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getActionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionMap()" title="class or interface in javax.swing">getActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentX()" title="class or interface in javax.swing">getAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentY()" title="class or interface in javax.swing">getAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAncestorListeners()" title="class or interface in javax.swing">getAncestorListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAutoscrolls()" title="class or interface in javax.swing">getAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaseline(int, int)" title="class or interface in javax.swing">getBaseline</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaselineResizeBehavior()" title="class or interface in javax.swing">getBaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBorder()" title="class or interface in javax.swing">getBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBounds(java.awt.Rectangle)" title="class or interface in javax.swing">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getClientProperty(java.lang.Object)" title="class or interface in javax.swing">getClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentGraphics(java.awt.Graphics)" title="class or interface in javax.swing">getComponentGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentPopupMenu()" title="class or interface in javax.swing">getComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getConditionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getConditionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDebugGraphicsOptions()" title="class or interface in javax.swing">getDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDefaultLocale()" title="class or interface in javax.swing">getDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getFontMetrics(java.awt.Font)" title="class or interface in javax.swing">getFontMetrics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getGraphics()" title="class or interface in javax.swing">getGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getHeight()" title="class or interface in javax.swing">getHeight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInheritsPopupMenu()" title="class or interface in javax.swing">getInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap()" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap(int)" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputVerifier()" title="class or interface in javax.swing">getInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets()" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets(java.awt.Insets)" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getListeners(java.lang.Class)" title="class or interface in javax.swing">getListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getLocation(java.awt.Point)" title="class or interface in javax.swing">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMaximumSize()" title="class or interface in javax.swing">getMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMinimumSize()" title="class or interface in javax.swing">getMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getNextFocusableComponent()" title="class or interface in javax.swing">getNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPopupLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getPopupLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPreferredSize()" title="class or interface in javax.swing">getPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRegisteredKeyStrokes()" title="class or interface in javax.swing">getRegisteredKeyStrokes</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRootPane()" title="class or interface in javax.swing">getRootPane</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getSize(java.awt.Dimension)" title="class or interface in javax.swing">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText()" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTopLevelAncestor()" title="class or interface in javax.swing">getTopLevelAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTransferHandler()" title="class or interface in javax.swing">getTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getUIClassID()" title="class or interface in javax.swing">getUIClassID</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVerifyInputWhenFocusTarget()" title="class or interface in javax.swing">getVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVetoableChangeListeners()" title="class or interface in javax.swing">getVetoableChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVisibleRect()" title="class or interface in javax.swing">getVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getWidth()" title="class or interface in javax.swing">getWidth</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getX()" title="class or interface in javax.swing">getX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getY()" title="class or interface in javax.swing">getY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#grabFocus()" title="class or interface in javax.swing">grabFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isDoubleBuffered()" title="class or interface in javax.swing">isDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isLightweightComponent(java.awt.Component)" title="class or interface in javax.swing">isLightweightComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isManagingFocus()" title="class or interface in javax.swing">isManagingFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOpaque()" title="class or interface in javax.swing">isOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOptimizedDrawingEnabled()" title="class or interface in javax.swing">isOptimizedDrawingEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingForPrint()" title="class or interface in javax.swing">isPaintingForPrint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingTile()" title="class or interface in javax.swing">isPaintingTile</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isRequestFocusEnabled()" title="class or interface in javax.swing">isRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isValidateRoot()" title="class or interface in javax.swing">isValidateRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintBorder(java.awt.Graphics)" title="class or interface in javax.swing">paintBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintChildren(java.awt.Graphics)" title="class or interface in javax.swing">paintChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintComponent(java.awt.Graphics)" title="class or interface in javax.swing">paintComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(int, int, int, int)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(java.awt.Rectangle)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paramString()" title="class or interface in javax.swing">paramString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#print(java.awt.Graphics)" title="class or interface in javax.swing">print</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printAll(java.awt.Graphics)" title="class or interface in javax.swing">printAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printBorder(java.awt.Graphics)" title="class or interface in javax.swing">printBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printChildren(java.awt.Graphics)" title="class or interface in javax.swing">printChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printComponent(java.awt.Graphics)" title="class or interface in javax.swing">printComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processComponentKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processComponentKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyBinding(javax.swing.KeyStroke, java.awt.event.KeyEvent, int, boolean)" title="class or interface in javax.swing">processKeyBinding</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseMotionEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseMotionEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#putClientProperty(java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">putClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">removeAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeNotify()" title="class or interface in javax.swing">removeNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">removeVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(long, int, int, int, int)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(java.awt.Rectangle)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestDefaultFocus()" title="class or interface in javax.swing">requestDefaultFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus()" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus(boolean)" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow()" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow(boolean)" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#resetKeyboardActions()" title="class or interface in javax.swing">resetKeyboardActions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#reshape(int, int, int, int)" title="class or interface in javax.swing">reshape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#revalidate()" title="class or interface in javax.swing">revalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#scrollRectToVisible(java.awt.Rectangle)" title="class or interface in javax.swing">scrollRectToVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setActionMap(javax.swing.ActionMap)" title="class or interface in javax.swing">setActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentX(float)" title="class or interface in javax.swing">setAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentY(float)" title="class or interface in javax.swing">setAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAutoscrolls(boolean)" title="class or interface in javax.swing">setAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBackground(java.awt.Color)" title="class or interface in javax.swing">setBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBorder(javax.swing.border.Border)" title="class or interface in javax.swing">setBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setComponentPopupMenu(javax.swing.JPopupMenu)" title="class or interface in javax.swing">setComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDebugGraphicsOptions(int)" title="class or interface in javax.swing">setDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDefaultLocale(java.util.Locale)" title="class or interface in javax.swing">setDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDoubleBuffered(boolean)" title="class or interface in javax.swing">setDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFocusTraversalKeys(int, java.util.Set)" title="class or interface in javax.swing">setFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFont(java.awt.Font)" title="class or interface in javax.swing">setFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setForeground(java.awt.Color)" title="class or interface in javax.swing">setForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInheritsPopupMenu(boolean)" title="class or interface in javax.swing">setInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputMap(int, javax.swing.InputMap)" title="class or interface in javax.swing">setInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputVerifier(javax.swing.InputVerifier)" title="class or interface in javax.swing">setInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMaximumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMinimumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setNextFocusableComponent(java.awt.Component)" title="class or interface in javax.swing">setNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setOpaque(boolean)" title="class or interface in javax.swing">setOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setPreferredSize(java.awt.Dimension)" title="class or interface in javax.swing">setPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setRequestFocusEnabled(boolean)" title="class or interface in javax.swing">setRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setToolTipText(java.lang.String)" title="class or interface in javax.swing">setToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setTransferHandler(javax.swing.TransferHandler)" title="class or interface in javax.swing">setTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setUI(javax.swing.plaf.ComponentUI)" title="class or interface in javax.swing">setUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVerifyInputWhenFocusTarget(boolean)" title="class or interface in javax.swing">setVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVisible(boolean)" title="class or interface in javax.swing">setVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#unregisterKeyboardAction(javax.swing.KeyStroke)" title="class or interface in javax.swing">unregisterKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#update(java.awt.Graphics)" title="class or interface in javax.swing">update</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#updateUI()" title="class or interface in javax.swing">updateUI</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.lang.String, java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">addContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addImpl(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">addImpl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#applyComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">applyComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#areFocusTraversalKeysSet(int)" title="class or interface in java.awt">areFocusTraversalKeysSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#countComponents()" title="class or interface in java.awt">countComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#deliverEvent(java.awt.Event)" title="class or interface in java.awt">deliverEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#doLayout()" title="class or interface in java.awt">doLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(int, int)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(java.awt.Point)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponent(int)" title="class or interface in java.awt">getComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(int, int)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(java.awt.Point)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentCount()" title="class or interface in java.awt">getComponentCount</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponents()" title="class or interface in java.awt">getComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentZOrder(java.awt.Component)" title="class or interface in java.awt">getComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getContainerListeners()" title="class or interface in java.awt">getContainerListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalKeys(int)" title="class or interface in java.awt">getFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalPolicy()" title="class or interface in java.awt">getFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getLayout()" title="class or interface in java.awt">getLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getMousePosition(boolean)" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#insets()" title="class or interface in java.awt">insets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#invalidate()" title="class or interface in java.awt">invalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isAncestorOf(java.awt.Component)" title="class or interface in java.awt">isAncestorOf</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot()" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot(java.awt.Container)" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicyProvider()" title="class or interface in java.awt">isFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicySet()" title="class or interface in java.awt">isFocusTraversalPolicySet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#layout()" title="class or interface in java.awt">layout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintStream, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintWriter, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#locate(int, int)" title="class or interface in java.awt">locate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#minimumSize()" title="class or interface in java.awt">minimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#paintComponents(java.awt.Graphics)" title="class or interface in java.awt">paintComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#preferredSize()" title="class or interface in java.awt">preferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#printComponents(java.awt.Graphics)" title="class or interface in java.awt">printComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processContainerEvent(java.awt.event.ContainerEvent)" title="class or interface in java.awt">processContainerEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processEvent(java.awt.AWTEvent)" title="class or interface in java.awt">processEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(java.awt.Component)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(int)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeAll()" title="class or interface in java.awt">removeAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">removeContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setComponentZOrder(java.awt.Component, int)" title="class or interface in java.awt">setComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusCycleRoot(boolean)" title="class or interface in java.awt">setFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)" title="class or interface in java.awt">setFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicyProvider(boolean)" title="class or interface in java.awt">setFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setLayout(java.awt.LayoutManager)" title="class or interface in java.awt">setLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusBackward()" title="class or interface in java.awt">transferFocusBackward</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusDownCycle()" title="class or interface in java.awt">transferFocusDownCycle</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validate()" title="class or interface in java.awt">validate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validateTree()" title="class or interface in java.awt">validateTree</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#action(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">action</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#add(java.awt.PopupMenu)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">addComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">addFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">addHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">addHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">addInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">addKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">addMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">addMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">addMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#bounds()" title="class or interface in java.awt">bounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#coalesceEvents(java.awt.AWTEvent, java.awt.AWTEvent)" title="class or interface in java.awt">coalesceEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#contains(java.awt.Point)" title="class or interface in java.awt">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(java.awt.image.ImageProducer)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(int, int)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int, java.awt.ImageCapabilities)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#disableEvents(long)" title="class or interface in java.awt">disableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#dispatchEvent(java.awt.AWTEvent)" title="class or interface in java.awt">dispatchEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enable(boolean)" title="class or interface in java.awt">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableEvents(long)" title="class or interface in java.awt">enableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableInputMethods(boolean)" title="class or interface in java.awt">enableInputMethods</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, byte, byte)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, double, double)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, float, float)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, long, long)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, short, short)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBackground()" title="class or interface in java.awt">getBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBounds()" title="class or interface in java.awt">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getColorModel()" title="class or interface in java.awt">getColorModel</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentListeners()" title="class or interface in java.awt">getComponentListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentOrientation()" title="class or interface in java.awt">getComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getCursor()" title="class or interface in java.awt">getCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getDropTarget()" title="class or interface in java.awt">getDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusCycleRootAncestor()" title="class or interface in java.awt">getFocusCycleRootAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusListeners()" title="class or interface in java.awt">getFocusListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusTraversalKeysEnabled()" title="class or interface in java.awt">getFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFont()" title="class or interface in java.awt">getFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getForeground()" title="class or interface in java.awt">getForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getGraphicsConfiguration()" title="class or interface in java.awt">getGraphicsConfiguration</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyBoundsListeners()" title="class or interface in java.awt">getHierarchyBoundsListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyListeners()" title="class or interface in java.awt">getHierarchyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getIgnoreRepaint()" title="class or interface in java.awt">getIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputContext()" title="class or interface in java.awt">getInputContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodListeners()" title="class or interface in java.awt">getInputMethodListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodRequests()" title="class or interface in java.awt">getInputMethodRequests</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getKeyListeners()" title="class or interface in java.awt">getKeyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocale()" title="class or interface in java.awt">getLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocation()" title="class or interface in java.awt">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocationOnScreen()" title="class or interface in java.awt">getLocationOnScreen</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseListeners()" title="class or interface in java.awt">getMouseListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseMotionListeners()" title="class or interface in java.awt">getMouseMotionListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMousePosition()" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseWheelListeners()" title="class or interface in java.awt">getMouseWheelListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getName()" title="class or interface in java.awt">getName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getParent()" title="class or interface in java.awt">getParent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPeer()" title="class or interface in java.awt">getPeer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners()" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners(java.lang.String)" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getSize()" title="class or interface in java.awt">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getToolkit()" title="class or interface in java.awt">getToolkit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getTreeLock()" title="class or interface in java.awt">getTreeLock</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#gotFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">gotFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#handleEvent(java.awt.Event)" title="class or interface in java.awt">handleEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hasFocus()" title="class or interface in java.awt">hasFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hide()" title="class or interface in java.awt">hide</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#imageUpdate(java.awt.Image, int, int, int, int, int)" title="class or interface in java.awt">imageUpdate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#inside(int, int)" title="class or interface in java.awt">inside</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isBackgroundSet()" title="class or interface in java.awt">isBackgroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isCursorSet()" title="class or interface in java.awt">isCursorSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isDisplayable()" title="class or interface in java.awt">isDisplayable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusable()" title="class or interface in java.awt">isFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusOwner()" title="class or interface in java.awt">isFocusOwner</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusTraversable()" title="class or interface in java.awt">isFocusTraversable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFontSet()" title="class or interface in java.awt">isFontSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isForegroundSet()" title="class or interface in java.awt">isForegroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isLightweight()" title="class or interface in java.awt">isLightweight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMaximumSizeSet()" title="class or interface in java.awt">isMaximumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMinimumSizeSet()" title="class or interface in java.awt">isMinimumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isPreferredSizeSet()" title="class or interface in java.awt">isPreferredSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isShowing()" title="class or interface in java.awt">isShowing</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isValid()" title="class or interface in java.awt">isValid</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isVisible()" title="class or interface in java.awt">isVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyDown(java.awt.Event, int)" title="class or interface in java.awt">keyDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyUp(java.awt.Event, int)" title="class or interface in java.awt">keyUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list()" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintStream)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintWriter)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#location()" title="class or interface in java.awt">location</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#lostFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">lostFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDown(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDrag(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDrag</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseEnter(java.awt.Event, int, int)" title="class or interface in java.awt">mouseEnter</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseExit(java.awt.Event, int, int)" title="class or interface in java.awt">mouseExit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseMove(java.awt.Event, int, int)" title="class or interface in java.awt">mouseMove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseUp(java.awt.Event, int, int)" title="class or interface in java.awt">mouseUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#move(int, int)" title="class or interface in java.awt">move</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#nextFocus()" title="class or interface in java.awt">nextFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#paintAll(java.awt.Graphics)" title="class or interface in java.awt">paintAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#postEvent(java.awt.Event)" title="class or interface in java.awt">postEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processComponentEvent(java.awt.event.ComponentEvent)" title="class or interface in java.awt">processComponentEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processFocusEvent(java.awt.event.FocusEvent)" title="class or interface in java.awt">processFocusEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyBoundsEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyBoundsEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processInputMethodEvent(java.awt.event.InputMethodEvent)" title="class or interface in java.awt">processInputMethodEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processMouseWheelEvent(java.awt.event.MouseWheelEvent)" title="class or interface in java.awt">processMouseWheelEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#remove(java.awt.MenuComponent)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">removeComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">removeFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">removeHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">removeHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">removeInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">removeKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">removeMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">removeMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">removeMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint()" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(int, int, int, int)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(long)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(java.awt.Dimension)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(int, int)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(int, int, int, int)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(java.awt.Rectangle)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">setComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setCursor(java.awt.Cursor)" title="class or interface in java.awt">setCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setDropTarget(java.awt.dnd.DropTarget)" title="class or interface in java.awt">setDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusable(boolean)" title="class or interface in java.awt">setFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusTraversalKeysEnabled(boolean)" title="class or interface in java.awt">setFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setIgnoreRepaint(boolean)" title="class or interface in java.awt">setIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocale(java.util.Locale)" title="class or interface in java.awt">setLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(int, int)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(java.awt.Point)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setName(java.lang.String)" title="class or interface in java.awt">setName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(java.awt.Dimension)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(int, int)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show()" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show(boolean)" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#size()" title="class or interface in java.awt">size</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#toString()" title="class or interface in java.awt">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocus()" title="class or interface in java.awt">transferFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocusUpCycle()" title="class or interface in java.awt">transferFocusUpCycle</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellTracker(com.mxgraph.swing.mxGraphComponent, java.awt.Color)"><!-- --></A><H3>
    +mxCellTracker</H3>
    +<PRE>
    +public <B>mxCellTracker</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</PRE>
    +<DL>
    +<DD>Constructs an event handler that highlights cells.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="destroy()"><!-- --></A><H3>
    +destroy</H3>
    +<PRE>
    +public void <B>destroy</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseClicked(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseClicked</H3>
    +<PRE>
    +public void <B>mouseClicked</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseClicked(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseClicked</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseEntered(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseEntered</H3>
    +<PRE>
    +public void <B>mouseEntered</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseEntered(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseEntered</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseExited(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseExited</H3>
    +<PRE>
    +public void <B>mouseExited</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseExited(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseExited</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseMoved(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseMoved</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellTracker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxCellTracker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellTracker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JComponent">NESTED</A>&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.swing.handler.mxCellMarker">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxConnectPreview.html b/java/docs/com/mxgraph/swing/handler/mxConnectPreview.html
    new file mode 100644
    index 000000000..4ec7c9c21
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxConnectPreview.html
    @@ -0,0 +1,678 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxConnectPreview (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxConnectPreview (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConnectPreview.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxConnectPreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectPreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxConnectPreview</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxConnectPreview</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxConnectPreview</B><DT>extends <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Connection handler creates new connections between cells. This control is used to display the connector
    + icon, while the preview is used to draw the line.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#previewState">previewState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#sourceState">sourceState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#startPoint">startPoint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#mxConnectPreview(com.mxgraph.swing.mxGraphComponent)">mxConnectPreview</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#createCell(com.mxgraph.view.mxCellState, java.lang.String)">createCell</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new instance of mxShape for previewing the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#getDirtyRect()">getDirtyRect</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#getDirtyRect(com.mxgraph.util.mxRectangle)">getDirtyRect</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;dirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#getPreviewState()">getPreviewState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#getSourceState()">getSourceState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#getStartPoint()">getStartPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#isActive()">isActive</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#paintPreview(com.mxgraph.canvas.mxGraphics2DCanvas)">paintPreview</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the preview using the graphics canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#revalidate(com.mxgraph.view.mxCellState, java.lang.Object)">revalidate</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;pState,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, java.lang.String)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the style of the edge preview from the incoming edge</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#stop(boolean)">stop</A></B>(boolean&nbsp;commit)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#stop(boolean, java.awt.event.MouseEvent)">stop</A></B>(boolean&nbsp;commit,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#transformScreenPoint(double, double)">transformScreenPoint</A></B>(double&nbsp;x,
    +                     double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#update(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, double, double)">update</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +       <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;targetState,
    +       double&nbsp;x,
    +       double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previewState"><!-- --></A><H3>
    +previewState</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>previewState</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="sourceState"><!-- --></A><H3>
    +sourceState</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>sourceState</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="startPoint"><!-- --></A><H3>
    +startPoint</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>startPoint</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxConnectPreview(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxConnectPreview</H3>
    +<PRE>
    +public <B>mxConnectPreview</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createCell(com.mxgraph.view.mxCellState, java.lang.String)"><!-- --></A><H3>
    +createCell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>createCell</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Creates a new instance of mxShape for previewing the edge.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isActive()"><!-- --></A><H3>
    +isActive</H3>
    +<PRE>
    +public boolean <B>isActive</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSourceState()"><!-- --></A><H3>
    +getSourceState</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getSourceState</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreviewState()"><!-- --></A><H3>
    +getPreviewState</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getPreviewState</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStartPoint()"><!-- --></A><H3>
    +getStartPoint</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getStartPoint</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, java.lang.String)"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +public void <B>start</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Updates the style of the edge preview from the incoming edge
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="update(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, double, double)"><!-- --></A><H3>
    +update</H3>
    +<PRE>
    +public void <B>update</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                   <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;targetState,
    +                   double&nbsp;x,
    +                   double&nbsp;y)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDirtyRect()"><!-- --></A><H3>
    +getDirtyRect</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getDirtyRect</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDirtyRect(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +getDirtyRect</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getDirtyRect</B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;dirty)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="transformScreenPoint(double, double)"><!-- --></A><H3>
    +transformScreenPoint</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>transformScreenPoint</B>(double&nbsp;x,
    +                                       double&nbsp;y)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="revalidate(com.mxgraph.view.mxCellState, java.lang.Object)"><!-- --></A><H3>
    +revalidate</H3>
    +<PRE>
    +public void <B>revalidate</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;pState,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintPreview(com.mxgraph.canvas.mxGraphics2DCanvas)"><!-- --></A><H3>
    +paintPreview</H3>
    +<PRE>
    +protected void <B>paintPreview</B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas)</PRE>
    +<DL>
    +<DD>Draws the preview using the graphics canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stop(boolean)"><!-- --></A><H3>
    +stop</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>stop</B>(boolean&nbsp;commit)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stop(boolean, java.awt.event.MouseEvent)"><!-- --></A><H3>
    +stop</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>stop</B>(boolean&nbsp;commit,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConnectPreview.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxConnectPreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectPreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxConnectionHandler.html b/java/docs/com/mxgraph/swing/handler/mxConnectionHandler.html
    new file mode 100644
    index 000000000..fa5da9965
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxConnectionHandler.html
    @@ -0,0 +1,1407 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxConnectionHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxConnectionHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConnectionHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxConnectionHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectionHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxConnectionHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxMouseAdapter</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxConnectionHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxConnectionHandler</B><DT>extends <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></DL>
    +</PRE>
    +
    +<P>
    +Connection handler creates new connections between cells. This control is used to display the connector
    + icon, while the preview is used to draw the line.
    + 
    + mxEvent.CONNECT fires between begin- and endUpdate in mouseReleased. The <code>cell</code>
    + property contains the inserted edge, the <code>event</code> and <code>target</code> 
    + properties contain the respective arguments that were passed to mouseReleased.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#active">active</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#bounds">bounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#CONNECT_CURSOR">CONNECT_CURSOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#connectIcon">connectIcon</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the icon to be used for creating new connections.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#connectPreview">connectPreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#createTarget">createTarget</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the source should be cloned and used as a target if no
    + target was selected.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#error">error</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#eventSource">eventSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#first">first</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#handleEnabled">handleEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if a handle should be used for creating new connections.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#handleSize">handleSize</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the size of the handle to be used for creating new
    + connections.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#keepOnTop">keepOnTop</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appearance and event handling order wrt subhandles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#marker">marker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#resetHandler">resetHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#select">select</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#mxConnectionHandler(com.mxgraph.swing.mxGraphComponent)">mxConnectionHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#addGraphListeners(com.mxgraph.view.mxGraph)">addGraphListeners</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Installs the listeners to update the handles after any changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given event listener.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#createConnectPreview()">createConnectPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#createTargetVertex(java.awt.event.MouseEvent, java.lang.Object)">createTargetVertex</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#getConnecIcon()">getConnecIcon</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#getConnectPreview()">getConnectPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#getHandleSize()">getHandleSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#getMarker()">getMarker</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isActive()">isActive</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isConnecting()">isConnecting</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the source terminal has been clicked and a new
    + connection is currently being previewed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isCreateTarget()">isCreateTarget</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isHandleEnabled()">isHandleEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isHighlighting()">isHighlighting</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if no connectIcon is specified and handleEnabled is false.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isKeepOnTop()">isKeepOnTop</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isSelect()">isSelect</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isValidSource(java.lang.Object)">isValidSource</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#isValidTarget(java.lang.Object)">isValidTarget</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#removeGraphListeners(com.mxgraph.view.mxGraph)">removeGraphListeners</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all installed listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given event listener.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given event listener for the specified event name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setBounds(java.awt.Rectangle)">setBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setConnectIcon(javax.swing.ImageIcon)">setConnectIcon</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setConnectPreview(com.mxgraph.swing.handler.mxConnectPreview)">setConnectPreview</A></B>(<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setCreateTarget(boolean)">setCreateTarget</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setHandleEnabled(boolean)">setHandleEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setHandleSize(int)">setHandleSize</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setKeepOnTop(boolean)">setKeepOnTop</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setMarker(com.mxgraph.swing.handler.mxCellMarker)">setMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#setSelect(boolean)">setSelect</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#validateConnection(java.lang.Object, java.lang.Object)">validateConnection</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the error message or an empty string if the connection for the
    + given source target pair is not valid.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.util.mxMouseAdapter"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="CONNECT_CURSOR"><!-- --></A><H3>
    +CONNECT_CURSOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A> <B>CONNECT_CURSOR</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="eventSource"><!-- --></A><H3>
    +eventSource</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> <B>eventSource</B></PRE>
    +<DL>
    +<DD>Holds the event source.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="connectPreview"><!-- --></A><H3>
    +connectPreview</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A> <B>connectPreview</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="connectIcon"><!-- --></A><H3>
    +connectIcon</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>connectIcon</B></PRE>
    +<DL>
    +<DD>Specifies the icon to be used for creating new connections. If this is
    + specified then it is used instead of the handle. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="handleSize"><!-- --></A><H3>
    +handleSize</H3>
    +<PRE>
    +protected int <B>handleSize</B></PRE>
    +<DL>
    +<DD>Specifies the size of the handle to be used for creating new
    + connections. Default is mxConstants.CONNECT_HANDLE_SIZE.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="handleEnabled"><!-- --></A><H3>
    +handleEnabled</H3>
    +<PRE>
    +protected boolean <B>handleEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if a handle should be used for creating new connections. This
    + is only used if no connectIcon is specified. If this is false, then the
    + source cell will be highlighted when the mouse is over the hotspot given
    + in the marker. Default is mxConstants.CONNECT_HANDLE_ENABLED.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="select"><!-- --></A><H3>
    +select</H3>
    +<PRE>
    +protected boolean <B>select</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="createTarget"><!-- --></A><H3>
    +createTarget</H3>
    +<PRE>
    +protected boolean <B>createTarget</B></PRE>
    +<DL>
    +<DD>Specifies if the source should be cloned and used as a target if no
    + target was selected. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="keepOnTop"><!-- --></A><H3>
    +keepOnTop</H3>
    +<PRE>
    +protected boolean <B>keepOnTop</B></PRE>
    +<DL>
    +<DD>Appearance and event handling order wrt subhandles.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="first"><!-- --></A><H3>
    +first</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>first</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="active"><!-- --></A><H3>
    +active</H3>
    +<PRE>
    +protected transient boolean <B>active</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bounds"><!-- --></A><H3>
    +bounds</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>bounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="source"><!-- --></A><H3>
    +source</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>source</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="marker"><!-- --></A><H3>
    +marker</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A> <B>marker</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="error"><!-- --></A><H3>
    +error</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>error</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resetHandler"><!-- --></A><H3>
    +resetHandler</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>resetHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxConnectionHandler(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxConnectionHandler</H3>
    +<PRE>
    +public <B>mxConnectionHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="addGraphListeners(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +addGraphListeners</H3>
    +<PRE>
    +protected void <B>addGraphListeners</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Installs the listeners to update the handles after any changes.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeGraphListeners(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +removeGraphListeners</H3>
    +<PRE>
    +protected void <B>removeGraphListeners</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Removes all installed listeners.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createConnectPreview()"><!-- --></A><H3>
    +createConnectPreview</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A> <B>createConnectPreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnectPreview()"><!-- --></A><H3>
    +getConnectPreview</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A> <B>getConnectPreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setConnectPreview(com.mxgraph.swing.handler.mxConnectPreview)"><!-- --></A><H3>
    +setConnectPreview</H3>
    +<PRE>
    +public void <B>setConnectPreview</B>(<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConnecting()"><!-- --></A><H3>
    +isConnecting</H3>
    +<PRE>
    +public boolean <B>isConnecting</B>()</PRE>
    +<DL>
    +<DD>Returns true if the source terminal has been clicked and a new
    + connection is currently being previewed.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isActive()"><!-- --></A><H3>
    +isActive</H3>
    +<PRE>
    +public boolean <B>isActive</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHighlighting()"><!-- --></A><H3>
    +isHighlighting</H3>
    +<PRE>
    +public boolean <B>isHighlighting</B>()</PRE>
    +<DL>
    +<DD>Returns true if no connectIcon is specified and handleEnabled is false.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isKeepOnTop()"><!-- --></A><H3>
    +isKeepOnTop</H3>
    +<PRE>
    +public boolean <B>isKeepOnTop</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeepOnTop(boolean)"><!-- --></A><H3>
    +setKeepOnTop</H3>
    +<PRE>
    +public void <B>setKeepOnTop</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setConnectIcon(javax.swing.ImageIcon)"><!-- --></A><H3>
    +setConnectIcon</H3>
    +<PRE>
    +public void <B>setConnectIcon</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnecIcon()"><!-- --></A><H3>
    +getConnecIcon</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>getConnecIcon</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHandleEnabled(boolean)"><!-- --></A><H3>
    +setHandleEnabled</H3>
    +<PRE>
    +public void <B>setHandleEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHandleEnabled()"><!-- --></A><H3>
    +isHandleEnabled</H3>
    +<PRE>
    +public boolean <B>isHandleEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHandleSize(int)"><!-- --></A><H3>
    +setHandleSize</H3>
    +<PRE>
    +public void <B>setHandleSize</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHandleSize()"><!-- --></A><H3>
    +getHandleSize</H3>
    +<PRE>
    +public int <B>getHandleSize</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMarker()"><!-- --></A><H3>
    +getMarker</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A> <B>getMarker</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMarker(com.mxgraph.swing.handler.mxCellMarker)"><!-- --></A><H3>
    +setMarker</H3>
    +<PRE>
    +public void <B>setMarker</B>(<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCreateTarget(boolean)"><!-- --></A><H3>
    +setCreateTarget</H3>
    +<PRE>
    +public void <B>setCreateTarget</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCreateTarget()"><!-- --></A><H3>
    +isCreateTarget</H3>
    +<PRE>
    +public boolean <B>isCreateTarget</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSelect(boolean)"><!-- --></A><H3>
    +setSelect</H3>
    +<PRE>
    +public void <B>setSelect</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSelect()"><!-- --></A><H3>
    +isSelect</H3>
    +<PRE>
    +public boolean <B>isSelect</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTargetVertex(java.awt.event.MouseEvent, java.lang.Object)"><!-- --></A><H3>
    +createTargetVertex</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>createTargetVertex</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isValidSource(java.lang.Object)"><!-- --></A><H3>
    +isValidSource</H3>
    +<PRE>
    +public boolean <B>isValidSource</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isValidTarget(java.lang.Object)"><!-- --></A><H3>
    +isValidTarget</H3>
    +<PRE>
    +public boolean <B>isValidTarget</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true. The call to mxGraph.isValidTarget is implicit by calling
    + mxGraph.getEdgeValidationError in validateConnection. This is an
    + additional hook for disabling certain targets in this specific handler.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validateConnection(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +validateConnection</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>validateConnection</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Returns the error message or an empty string if the connection for the
    + given source target pair is not valid. Otherwise it returns null.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +public void <B>start</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseMoved(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseMoved</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBounds(java.awt.Rectangle)"><!-- --></A><H3>
    +setBounds</H3>
    +<PRE>
    +public void <B>setBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +addListener</H3>
    +<PRE>
    +public void <B>addListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +                        <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Adds the given event listener.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Removes the given event listener.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</PRE>
    +<DL>
    +<DD>Removes the given event listener for the specified event name.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConnectionHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxConnectionHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectionHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxEdgeHandler.html b/java/docs/com/mxgraph/swing/handler/mxEdgeHandler.html
    new file mode 100644
    index 000000000..022df8938
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxEdgeHandler.html
    @@ -0,0 +1,1065 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxEdgeHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxEdgeHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEdgeHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxEdgeHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxEdgeHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">com.mxgraph.swing.handler.mxCellHandler</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxEdgeHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxEdgeHandler</B><DT>extends <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#cloneEnabled">cloneEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#constrainedEvent">constrainedEvent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Workaround for shift-key-state not correct in mouseReleased.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#error">error</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#gridEnabledEvent">gridEnabledEvent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Workaround for alt-key-state not correct in mouseReleased.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#marker">marker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#p">p</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.swing.handler.mxCellHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#bounds">bounds</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#first">first</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#graphComponent">graphComponent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#handles">handles</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#handlesVisible">handlesVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#index">index</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#preview">preview</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#state">state</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#mxEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxEdgeHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#connect(java.lang.Object, java.lang.Object, boolean, boolean)">connect</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +        boolean&nbsp;isSource,
    +        boolean&nbsp;isClone)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connects the given edge to the given source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#convertPoint(com.mxgraph.util.mxPoint, boolean)">convertPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +             boolean&nbsp;gridEnabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createHandle(java.awt.Point)">createHandle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;center)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createHandle(java.awt.Point, int)">createHandle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;center,
    +             int&nbsp;size)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createHandles()">createHandles</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the rectangles that define the handles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createPoints(com.mxgraph.view.mxCellState)">createPoints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;s)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createPreview()">createPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the preview for this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getCursor(java.awt.event.MouseEvent, int)">getCursor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +          int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cursor for the given event and handle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getHandleFillColor(int)">getHandleFillColor</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the color to be used to fill the handle at the specified index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getIndexAt(int, int)">getIndexAt</A></B>(int&nbsp;x,
    +           int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the handle at the given location.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getPreviewBounds()">getPreviewBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getSelectionColor()">getSelectionColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the color used to draw the selection border.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getSelectionStroke()">getSelectionStroke</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stroke used to draw the selection border.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isCellBendable()">isCellBendable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isCloneEnabled()">isCloneEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isFlipEvent(java.awt.event.MouseEvent)">isFlipEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isHandleVisible(int)">isHandleVisible</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hides the middle handle if the edge is not bendable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isIgnoredEvent(java.awt.event.MouseEvent)">isIgnoredEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No flip event is ignored.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isSource(int)">isSource</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the current index is 0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isTarget(int)">isTarget</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the current index is the last index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#moveLabelTo(com.mxgraph.view.mxCellState, double, double)">moveLabelTo</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edgeState,
    +            double&nbsp;x,
    +            double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the label to the given position.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#movePoint(java.lang.Object, int, com.mxgraph.util.mxPoint)">movePoint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +          int&nbsp;pointIndex,
    +          <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the edges control point with the given index to the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the visible handles of this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extends the implementation to reset the current error and marker.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#setCloneEnabled(boolean)">setCloneEnabled</A></B>(boolean&nbsp;cloneEnabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#validateConnection(java.lang.Object, java.lang.Object)">validateConnection</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the error message or an empty string if the connection for the
    + given source target pair is not valid.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.handler.mxCellHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getBounds()">getBounds</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getGraphComponent()">getGraphComponent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleBorderColor(int)">getHandleBorderColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleCount()">getHandleCount</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getIndex()">getIndex</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getState()">getState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getToolTipText(java.awt.event.MouseEvent)">getToolTipText</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isActive()">isActive</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandleEnabled(int)">isHandleEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandlesVisible()">isHandlesVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isLabel(int)">isLabel</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isLabelMovable()">isLabelMovable</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#refresh(com.mxgraph.view.mxCellState)">refresh</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#setHandlesVisible(boolean)">setHandlesVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#start(java.awt.event.MouseEvent, int)">start</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="cloneEnabled"><!-- --></A><H3>
    +cloneEnabled</H3>
    +<PRE>
    +protected boolean <B>cloneEnabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="p"><!-- --></A><H3>
    +p</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>[] <B>p</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="error"><!-- --></A><H3>
    +error</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>error</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="gridEnabledEvent"><!-- --></A><H3>
    +gridEnabledEvent</H3>
    +<PRE>
    +protected transient boolean <B>gridEnabledEvent</B></PRE>
    +<DL>
    +<DD>Workaround for alt-key-state not correct in mouseReleased.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="constrainedEvent"><!-- --></A><H3>
    +constrainedEvent</H3>
    +<PRE>
    +protected transient boolean <B>constrainedEvent</B></PRE>
    +<DL>
    +<DD>Workaround for shift-key-state not correct in mouseReleased.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="marker"><!-- --></A><H3>
    +marker</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A> <B>marker</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +mxEdgeHandler</H3>
    +<PRE>
    +public <B>mxEdgeHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                     <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - <DD><CODE>state</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setCloneEnabled(boolean)"><!-- --></A><H3>
    +setCloneEnabled</H3>
    +<PRE>
    +public void <B>setCloneEnabled</B>(boolean&nbsp;cloneEnabled)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCloneEnabled()"><!-- --></A><H3>
    +isCloneEnabled</H3>
    +<PRE>
    +public boolean <B>isCloneEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isIgnoredEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isIgnoredEvent</H3>
    +<PRE>
    +protected boolean <B>isIgnoredEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>No flip event is ignored.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isIgnoredEvent(java.awt.event.MouseEvent)">isIgnoredEvent</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isFlipEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isFlipEvent</H3>
    +<PRE>
    +protected boolean <B>isFlipEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validateConnection(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +validateConnection</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>validateConnection</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Returns the error message or an empty string if the connection for the
    + given source target pair is not valid. Otherwise it returns null.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSource(int)"><!-- --></A><H3>
    +isSource</H3>
    +<PRE>
    +public boolean <B>isSource</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns true if the current index is 0.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTarget(int)"><!-- --></A><H3>
    +isTarget</H3>
    +<PRE>
    +public boolean <B>isTarget</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns true if the current index is the last index.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHandleVisible(int)"><!-- --></A><H3>
    +isHandleVisible</H3>
    +<PRE>
    +protected boolean <B>isHandleVisible</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Hides the middle handle if the edge is not bendable.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandleVisible(int)">isHandleVisible</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellBendable()"><!-- --></A><H3>
    +isCellBendable</H3>
    +<PRE>
    +protected boolean <B>isCellBendable</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHandles()"><!-- --></A><H3>
    +createHandles</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[] <B>createHandles</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createHandles()">mxCellHandler</A></CODE></B></DD>
    +<DD>Creates the rectangles that define the handles.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createHandles()">createHandles</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHandleFillColor(int)"><!-- --></A><H3>
    +getHandleFillColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getHandleFillColor</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleFillColor(int)">mxCellHandler</A></CODE></B></DD>
    +<DD>Returns the color to be used to fill the handle at the specified index.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleFillColor(int)">getHandleFillColor</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIndexAt(int, int)"><!-- --></A><H3>
    +getIndexAt</H3>
    +<PRE>
    +public int <B>getIndexAt</B>(int&nbsp;x,
    +                      int&nbsp;y)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getIndexAt(int, int)">mxCellHandler</A></CODE></B></DD>
    +<DD>Returns the index of the handle at the given location.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getIndexAt(int, int)">getIndexAt</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the inde of the handle at the given location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHandle(java.awt.Point)"><!-- --></A><H3>
    +createHandle</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>createHandle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;center)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHandle(java.awt.Point, int)"><!-- --></A><H3>
    +createHandle</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>createHandle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;center,
    +                                 int&nbsp;size)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createPoints(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createPoints</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>[] <B>createPoints</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;s)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createPreview()"><!-- --></A><H3>
    +createPreview</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> <B>createPreview</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createPreview()">mxCellHandler</A></CODE></B></DD>
    +<DD>Creates the preview for this handler.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createPreview()">createPreview</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="convertPoint(com.mxgraph.util.mxPoint, boolean)"><!-- --></A><H3>
    +convertPoint</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>convertPoint</B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                               boolean&nbsp;gridEnabled)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>point</CODE> - <DD><CODE>gridEnabled</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the scaled, translated and grid-aligned point.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreviewBounds()"><!-- --></A><H3>
    +getPreviewBounds</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getPreviewBounds</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the bounds of the preview.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mousePressed(java.awt.event.MouseEvent)">mxCellHandler</A></CODE></B></DD>
    +<DD>Processes the given event.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseDragged(java.awt.event.MouseEvent)">mxCellHandler</A></CODE></B></DD>
    +<DD>Processes the given event.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseReleased(java.awt.event.MouseEvent)">mxCellHandler</A></CODE></B></DD>
    +<DD>Processes the given event.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD>Extends the implementation to reset the current error and marker.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#reset()">reset</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="movePoint(java.lang.Object, int, com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +movePoint</H3>
    +<PRE>
    +protected void <B>movePoint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                         int&nbsp;pointIndex,
    +                         <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</PRE>
    +<DL>
    +<DD>Moves the edges control point with the given index to the given point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="connect(java.lang.Object, java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +connect</H3>
    +<PRE>
    +protected void <B>connect</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                       boolean&nbsp;isSource,
    +                       boolean&nbsp;isClone)</PRE>
    +<DL>
    +<DD>Connects the given edge to the given source or target terminal.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - <DD><CODE>terminal</CODE> - <DD><CODE>isSource</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveLabelTo(com.mxgraph.view.mxCellState, double, double)"><!-- --></A><H3>
    +moveLabelTo</H3>
    +<PRE>
    +protected void <B>moveLabelTo</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edgeState,
    +                           double&nbsp;x,
    +                           double&nbsp;y)</PRE>
    +<DL>
    +<DD>Moves the label to the given position.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCursor(java.awt.event.MouseEvent, int)"><!-- --></A><H3>
    +getCursor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A> <B>getCursor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                           int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getCursor(java.awt.event.MouseEvent, int)">mxCellHandler</A></CODE></B></DD>
    +<DD>Returns the cursor for the given event and handle.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getCursor(java.awt.event.MouseEvent, int)">getCursor</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionColor()"><!-- --></A><H3>
    +getSelectionColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getSelectionColor</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionColor()">mxCellHandler</A></CODE></B></DD>
    +<DD>Returns the color used to draw the selection border. This implementation
    + returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionColor()">getSelectionColor</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionStroke()"><!-- --></A><H3>
    +getSelectionStroke</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A> <B>getSelectionStroke</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionStroke()">mxCellHandler</A></CODE></B></DD>
    +<DD>Returns the stroke used to draw the selection border. This implementation
    + returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionStroke()">getSelectionStroke</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#paint(java.awt.Graphics)">mxCellHandler</A></CODE></B></DD>
    +<DD>Paints the visible handles of this handler.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#paint(java.awt.Graphics)">paint</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEdgeHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxEdgeHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxElbowEdgeHandler.html b/java/docs/com/mxgraph/swing/handler/mxElbowEdgeHandler.html
    new file mode 100644
    index 000000000..9dc9214c2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxElbowEdgeHandler.html
    @@ -0,0 +1,382 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxElbowEdgeHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxElbowEdgeHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxElbowEdgeHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxElbowEdgeHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxElbowEdgeHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.swing.handler.mxEdgeHandler">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxElbowEdgeHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">com.mxgraph.swing.handler.mxCellHandler</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">com.mxgraph.swing.handler.mxEdgeHandler</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxElbowEdgeHandler</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxElbowEdgeHandler</B><DT>extends <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.swing.handler.mxEdgeHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#cloneEnabled">cloneEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#constrainedEvent">constrainedEvent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#error">error</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#gridEnabledEvent">gridEnabledEvent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#marker">marker</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#p">p</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.swing.handler.mxCellHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#bounds">bounds</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#first">first</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#graphComponent">graphComponent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#handles">handles</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#handlesVisible">handlesVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#index">index</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#preview">preview</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#state">state</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html#mxElbowEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxElbowEdgeHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                   <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html#createHandles()">createHandles</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the rectangles that define the handles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html#getToolTipText(java.awt.event.MouseEvent)">getToolTipText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to return tooltip texts for certain points on the
    + handle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html#isFlipEvent(java.awt.event.MouseEvent)">isFlipEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html#isLabel(int)">isLabel</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given index is the index of the last handle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.handler.mxEdgeHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#connect(java.lang.Object, java.lang.Object, boolean, boolean)">connect</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#convertPoint(com.mxgraph.util.mxPoint, boolean)">convertPoint</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createHandle(java.awt.Point)">createHandle</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createHandle(java.awt.Point, int)">createHandle</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createPoints(com.mxgraph.view.mxCellState)">createPoints</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createPreview()">createPreview</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getCursor(java.awt.event.MouseEvent, int)">getCursor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getHandleFillColor(int)">getHandleFillColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getIndexAt(int, int)">getIndexAt</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getPreviewBounds()">getPreviewBounds</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getSelectionColor()">getSelectionColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#getSelectionStroke()">getSelectionStroke</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isCellBendable()">isCellBendable</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isCloneEnabled()">isCloneEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isHandleVisible(int)">isHandleVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isIgnoredEvent(java.awt.event.MouseEvent)">isIgnoredEvent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isSource(int)">isSource</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isTarget(int)">isTarget</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#moveLabelTo(com.mxgraph.view.mxCellState, double, double)">moveLabelTo</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#movePoint(java.lang.Object, int, com.mxgraph.util.mxPoint)">movePoint</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#paint(java.awt.Graphics)">paint</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#reset()">reset</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#setCloneEnabled(boolean)">setCloneEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#validateConnection(java.lang.Object, java.lang.Object)">validateConnection</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.handler.mxCellHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getBounds()">getBounds</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getGraphComponent()">getGraphComponent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleBorderColor(int)">getHandleBorderColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleCount()">getHandleCount</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getIndex()">getIndex</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getState()">getState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isActive()">isActive</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandleEnabled(int)">isHandleEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandlesVisible()">isHandlesVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isLabelMovable()">isLabelMovable</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#refresh(com.mxgraph.view.mxCellState)">refresh</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#setHandlesVisible(boolean)">setHandlesVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#start(java.awt.event.MouseEvent, int)">start</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxElbowEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +mxElbowEdgeHandler</H3>
    +<PRE>
    +public <B>mxElbowEdgeHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - <DD><CODE>state</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getToolTipText(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +getToolTipText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getToolTipText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Hook for subclassers to return tooltip texts for certain points on the
    + handle.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getToolTipText(java.awt.event.MouseEvent)">getToolTipText</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isFlipEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isFlipEvent</H3>
    +<PRE>
    +protected boolean <B>isFlipEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#isFlipEvent(java.awt.event.MouseEvent)">isFlipEvent</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLabel(int)"><!-- --></A><H3>
    +isLabel</H3>
    +<PRE>
    +public boolean <B>isLabel</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns true if the given index is the index of the last handle.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isLabel(int)">isLabel</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHandles()"><!-- --></A><H3>
    +createHandles</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[] <B>createHandles</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createHandles()">mxCellHandler</A></CODE></B></DD>
    +<DD>Creates the rectangles that define the handles.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createHandles()">createHandles</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxElbowEdgeHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxElbowEdgeHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxElbowEdgeHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.swing.handler.mxEdgeHandler">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxGraphHandler.html b/java/docs/com/mxgraph/swing/handler/mxGraphHandler.html
    new file mode 100644
    index 000000000..062a329cf
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxGraphHandler.html
    @@ -0,0 +1,2023 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxGraphHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxGraphHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxMouseAdapter</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxGraphHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphHandler</B><DT>extends <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetListener</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#bbox">bbox</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scaled, translated bounding box of the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#canImport">canImport</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#cellBounds">cellBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scaled, translated bounds of the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#cells">cells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the cells that are being moved by this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#centerPreview">centerPreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the preview should be centered around the mouse cursor if there
    + was no mouse click to define the offset within the shape (eg.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#cloneEnabled">cloneEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if cloning by control-drag is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#constrainedEvent">constrainedEvent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Workaround for shift-key-state not correct in mouseReleased.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTarget.html?is-external=true" title="class or interface in java.awt.dnd">DropTarget</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#currentDropTarget">currentDropTarget</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the current drop target.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#DEFAULT_CURSOR">DEFAULT_CURSOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default is Cursor.DEFAULT_CURSOR.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#dragCells">dragCells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#dragImage">dragImage</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the image that is being used for the preview.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the handler is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#first">first</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the start location of the mouse gesture.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#FOLD_CURSOR">FOLD_CURSOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default is Cursor.HAND_CURSOR.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#imagePreview">imagePreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if an image should be used for preview.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#initialCell">initialCell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#keepOnTop">keepOnTop</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if this handler should be painted on top of all other components.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#livePreview">livePreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if live preview should be used if possible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#marker">marker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#markerEnabled">markerEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the cell marker should be called (for splitting edges and
    + dropping cells into groups).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#MOVE_CURSOR">MOVE_CURSOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default is Cursor.MOVE_CURSOR.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#moveEnabled">moveEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if moving is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#movePreview">movePreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#previewBounds">previewBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#removeCellsFromParent">removeCellsFromParent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if cells may be moved out of their parents.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#selectEnabled">selectEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if moving is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#transferBounds">transferBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unscaled, untranslated bounding box of the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#visible">visible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#mxGraphHandler(com.mxgraph.swing.mxGraphComponent)">mxGraphHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#convertPoint(java.awt.Point)">convertPoint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#createEvent(java.awt.dnd.DropTargetEvent)">createEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#createMarker()">createMarker</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#createMovePreview()">createMovePreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#dragEnter(java.awt.dnd.DropTargetDragEvent)">dragEnter</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetDragEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetDragEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#dragExit(java.awt.dnd.DropTargetEvent)">dragExit</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#dragOver(java.awt.dnd.DropTargetDragEvent)">dragOver</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetDragEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetDragEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#drop(java.awt.dnd.DropTargetDropEvent)">drop</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetDropEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetDropEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#dropActionChanged(java.awt.dnd.DropTargetDragEvent)">dropActionChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetDragEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetDragEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#fold(java.lang.Object)">fold</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getCells(java.lang.Object)">getCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;initialCell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getCursor(java.awt.event.MouseEvent)">getCursor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getDropTarget(java.awt.dnd.DropTargetEvent)">getDropTarget</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Helper method to return the component for a drop target event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getGraphTransferHandler(java.awt.dnd.DropTargetEvent)">getGraphTransferHandler</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Helper method to return the component for a drop target event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getMarker()">getMarker</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getMovePreview()">getMovePreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#getPreviewLocation(java.awt.event.MouseEvent, boolean)">getPreviewLocation</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                   boolean&nbsp;gridEnabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#installDragGestureHandler()">installDragGestureHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#installDropTargetHandler()">installDropTargetHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isCenterPreview()">isCenterPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isCloneEnabled()">isCloneEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isImagePreview()">isImagePreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isLivePreview()">isLivePreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isMarkerEnabled()">isMarkerEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isMoveEnabled()">isMoveEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isRemoveCellsFromParent()">isRemoveCellsFromParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isSelectEnabled()">isSelectEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#isVisible()">isVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#moveCells(java.lang.Object[], double, double, java.lang.Object, java.awt.event.MouseEvent)">moveCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;dx,
    +          double&nbsp;dy,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setCenterPreview(boolean)">setCenterPreview</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setCloneEnabled(boolean)">setCloneEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setImagePreview(boolean)">setImagePreview</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setLivePreview(boolean)">setLivePreview</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setMarker(com.mxgraph.swing.handler.mxCellMarker)">setMarker</A></B>(<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setMarkerEnabled(boolean)">setMarkerEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setMoveEnabled(boolean)">setMoveEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setPreviewBounds(java.awt.Rectangle)">setPreviewBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setRemoveCellsFromParent(boolean)">setRemoveCellsFromParent</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setSelectEnabled(boolean)">setSelectEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#setVisible(boolean)">setVisible</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#shouldRemoveCellFromParent(java.lang.Object, java.lang.Object[], java.awt.event.MouseEvent)">shouldRemoveCellFromParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cells should be removed from the parent for the specified
    + mousereleased event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#start(java.awt.event.MouseEvent)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#updateDragImage(java.lang.Object[])">updateDragImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.util.mxMouseAdapter"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="DEFAULT_CURSOR"><!-- --></A><H3>
    +DEFAULT_CURSOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A> <B>DEFAULT_CURSOR</B></PRE>
    +<DL>
    +<DD>Default is Cursor.DEFAULT_CURSOR.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="MOVE_CURSOR"><!-- --></A><H3>
    +MOVE_CURSOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A> <B>MOVE_CURSOR</B></PRE>
    +<DL>
    +<DD>Default is Cursor.MOVE_CURSOR.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FOLD_CURSOR"><!-- --></A><H3>
    +FOLD_CURSOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A> <B>FOLD_CURSOR</B></PRE>
    +<DL>
    +<DD>Default is Cursor.HAND_CURSOR.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph component.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Specifies if the handler is enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneEnabled"><!-- --></A><H3>
    +cloneEnabled</H3>
    +<PRE>
    +protected boolean <B>cloneEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if cloning by control-drag is enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="moveEnabled"><!-- --></A><H3>
    +moveEnabled</H3>
    +<PRE>
    +protected boolean <B>moveEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if moving is enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="selectEnabled"><!-- --></A><H3>
    +selectEnabled</H3>
    +<PRE>
    +protected boolean <B>selectEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if moving is enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="markerEnabled"><!-- --></A><H3>
    +markerEnabled</H3>
    +<PRE>
    +protected boolean <B>markerEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if the cell marker should be called (for splitting edges and
    + dropping cells into groups). Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCellsFromParent"><!-- --></A><H3>
    +removeCellsFromParent</H3>
    +<PRE>
    +protected boolean <B>removeCellsFromParent</B></PRE>
    +<DL>
    +<DD>Specifies if cells may be moved out of their parents. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="movePreview"><!-- --></A><H3>
    +movePreview</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A> <B>movePreview</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="livePreview"><!-- --></A><H3>
    +livePreview</H3>
    +<PRE>
    +protected boolean <B>livePreview</B></PRE>
    +<DL>
    +<DD>Specifies if live preview should be used if possible. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="imagePreview"><!-- --></A><H3>
    +imagePreview</H3>
    +<PRE>
    +protected boolean <B>imagePreview</B></PRE>
    +<DL>
    +<DD>Specifies if an image should be used for preview. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="centerPreview"><!-- --></A><H3>
    +centerPreview</H3>
    +<PRE>
    +protected boolean <B>centerPreview</B></PRE>
    +<DL>
    +<DD>Specifies if the preview should be centered around the mouse cursor if there
    + was no mouse click to define the offset within the shape (eg. drag from
    + external source). Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="keepOnTop"><!-- --></A><H3>
    +keepOnTop</H3>
    +<PRE>
    +protected boolean <B>keepOnTop</B></PRE>
    +<DL>
    +<DD>Specifies if this handler should be painted on top of all other components.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cells"><!-- --></A><H3>
    +cells</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>cells</B></PRE>
    +<DL>
    +<DD>Holds the cells that are being moved by this handler.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dragImage"><!-- --></A><H3>
    +dragImage</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>dragImage</B></PRE>
    +<DL>
    +<DD>Holds the image that is being used for the preview.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="first"><!-- --></A><H3>
    +first</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>first</B></PRE>
    +<DL>
    +<DD>Holds the start location of the mouse gesture.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="initialCell"><!-- --></A><H3>
    +initialCell</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>initialCell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dragCells"><!-- --></A><H3>
    +dragCells</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>dragCells</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="marker"><!-- --></A><H3>
    +marker</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A> <B>marker</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="canImport"><!-- --></A><H3>
    +canImport</H3>
    +<PRE>
    +protected transient boolean <B>canImport</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellBounds"><!-- --></A><H3>
    +cellBounds</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>cellBounds</B></PRE>
    +<DL>
    +<DD>Scaled, translated bounds of the selection cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bbox"><!-- --></A><H3>
    +bbox</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>bbox</B></PRE>
    +<DL>
    +<DD>Scaled, translated bounding box of the selection cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="transferBounds"><!-- --></A><H3>
    +transferBounds</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>transferBounds</B></PRE>
    +<DL>
    +<DD>Unscaled, untranslated bounding box of the selection cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="visible"><!-- --></A><H3>
    +visible</H3>
    +<PRE>
    +protected transient boolean <B>visible</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previewBounds"><!-- --></A><H3>
    +previewBounds</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>previewBounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="constrainedEvent"><!-- --></A><H3>
    +constrainedEvent</H3>
    +<PRE>
    +protected transient boolean <B>constrainedEvent</B></PRE>
    +<DL>
    +<DD>Workaround for shift-key-state not correct in mouseReleased.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentDropTarget"><!-- --></A><H3>
    +currentDropTarget</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTarget.html?is-external=true" title="class or interface in java.awt.dnd">DropTarget</A> <B>currentDropTarget</B></PRE>
    +<DL>
    +<DD>Reference to the current drop target.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphHandler(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxGraphHandler</H3>
    +<PRE>
    +public <B>mxGraphHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="installDragGestureHandler()"><!-- --></A><H3>
    +installDragGestureHandler</H3>
    +<PRE>
    +protected void <B>installDragGestureHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="installDropTargetHandler()"><!-- --></A><H3>
    +installDropTargetHandler</H3>
    +<PRE>
    +protected void <B>installDropTargetHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVisible()"><!-- --></A><H3>
    +isVisible</H3>
    +<PRE>
    +public boolean <B>isVisible</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVisible(boolean)"><!-- --></A><H3>
    +setVisible</H3>
    +<PRE>
    +public void <B>setVisible</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPreviewBounds(java.awt.Rectangle)"><!-- --></A><H3>
    +setPreviewBounds</H3>
    +<PRE>
    +public void <B>setPreviewBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createMovePreview()"><!-- --></A><H3>
    +createMovePreview</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A> <B>createMovePreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMovePreview()"><!-- --></A><H3>
    +getMovePreview</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A> <B>getMovePreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createMarker()"><!-- --></A><H3>
    +createMarker</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A> <B>createMarker</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphComponent()"><!-- --></A><H3>
    +getGraphComponent</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>getGraphComponent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCloneEnabled()"><!-- --></A><H3>
    +isCloneEnabled</H3>
    +<PRE>
    +public boolean <B>isCloneEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCloneEnabled(boolean)"><!-- --></A><H3>
    +setCloneEnabled</H3>
    +<PRE>
    +public void <B>setCloneEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isMoveEnabled()"><!-- --></A><H3>
    +isMoveEnabled</H3>
    +<PRE>
    +public boolean <B>isMoveEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMoveEnabled(boolean)"><!-- --></A><H3>
    +setMoveEnabled</H3>
    +<PRE>
    +public void <B>setMoveEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isMarkerEnabled()"><!-- --></A><H3>
    +isMarkerEnabled</H3>
    +<PRE>
    +public boolean <B>isMarkerEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMarkerEnabled(boolean)"><!-- --></A><H3>
    +setMarkerEnabled</H3>
    +<PRE>
    +public void <B>setMarkerEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMarker()"><!-- --></A><H3>
    +getMarker</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A> <B>getMarker</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMarker(com.mxgraph.swing.handler.mxCellMarker)"><!-- --></A><H3>
    +setMarker</H3>
    +<PRE>
    +public void <B>setMarker</B>(<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSelectEnabled()"><!-- --></A><H3>
    +isSelectEnabled</H3>
    +<PRE>
    +public boolean <B>isSelectEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSelectEnabled(boolean)"><!-- --></A><H3>
    +setSelectEnabled</H3>
    +<PRE>
    +public void <B>setSelectEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isRemoveCellsFromParent()"><!-- --></A><H3>
    +isRemoveCellsFromParent</H3>
    +<PRE>
    +public boolean <B>isRemoveCellsFromParent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRemoveCellsFromParent(boolean)"><!-- --></A><H3>
    +setRemoveCellsFromParent</H3>
    +<PRE>
    +public void <B>setRemoveCellsFromParent</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLivePreview()"><!-- --></A><H3>
    +isLivePreview</H3>
    +<PRE>
    +public boolean <B>isLivePreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLivePreview(boolean)"><!-- --></A><H3>
    +setLivePreview</H3>
    +<PRE>
    +public void <B>setLivePreview</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isImagePreview()"><!-- --></A><H3>
    +isImagePreview</H3>
    +<PRE>
    +public boolean <B>isImagePreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setImagePreview(boolean)"><!-- --></A><H3>
    +setImagePreview</H3>
    +<PRE>
    +public void <B>setImagePreview</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCenterPreview()"><!-- --></A><H3>
    +isCenterPreview</H3>
    +<PRE>
    +public boolean <B>isCenterPreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCenterPreview(boolean)"><!-- --></A><H3>
    +setCenterPreview</H3>
    +<PRE>
    +public void <B>setCenterPreview</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateDragImage(java.lang.Object[])"><!-- --></A><H3>
    +updateDragImage</H3>
    +<PRE>
    +public void <B>updateDragImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseMoved(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseMoved</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCursor(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +getCursor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A> <B>getCursor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="dragEnter(java.awt.dnd.DropTargetDragEvent)"><!-- --></A><H3>
    +dragEnter</H3>
    +<PRE>
    +public void <B>dragEnter</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetDragEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetDragEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true#dragEnter(java.awt.dnd.DropTargetDragEvent)" title="class or interface in java.awt.dnd">dragEnter</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCells(java.lang.Object)"><!-- --></A><H3>
    +getCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;initialCell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="start(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +public void <B>start</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="dropActionChanged(java.awt.dnd.DropTargetDragEvent)"><!-- --></A><H3>
    +dropActionChanged</H3>
    +<PRE>
    +public void <B>dropActionChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetDragEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetDragEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true#dropActionChanged(java.awt.dnd.DropTargetDragEvent)" title="class or interface in java.awt.dnd">dropActionChanged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="dragOver(java.awt.dnd.DropTargetDragEvent)"><!-- --></A><H3>
    +dragOver</H3>
    +<PRE>
    +public void <B>dragOver</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetDragEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetDragEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true#dragOver(java.awt.dnd.DropTargetDragEvent)" title="class or interface in java.awt.dnd">dragOver</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>e</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="convertPoint(java.awt.Point)"><!-- --></A><H3>
    +convertPoint</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>convertPoint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;pt)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreviewLocation(java.awt.event.MouseEvent, boolean)"><!-- --></A><H3>
    +getPreviewLocation</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>getPreviewLocation</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                                   boolean&nbsp;gridEnabled)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="dragExit(java.awt.dnd.DropTargetEvent)"><!-- --></A><H3>
    +dragExit</H3>
    +<PRE>
    +public void <B>dragExit</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true#dragExit(java.awt.dnd.DropTargetEvent)" title="class or interface in java.awt.dnd">dragExit</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>e</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drop(java.awt.dnd.DropTargetDropEvent)"><!-- --></A><H3>
    +drop</H3>
    +<PRE>
    +public void <B>drop</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetDropEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetDropEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true#drop(java.awt.dnd.DropTargetDropEvent)" title="class or interface in java.awt.dnd">drop</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>e</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fold(java.lang.Object)"><!-- --></A><H3>
    +fold</H3>
    +<PRE>
    +protected void <B>fold</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="shouldRemoveCellFromParent(java.lang.Object, java.lang.Object[], java.awt.event.MouseEvent)"><!-- --></A><H3>
    +shouldRemoveCellFromParent</H3>
    +<PRE>
    +protected boolean <B>shouldRemoveCellFromParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Returns true if the given cells should be removed from the parent for the specified
    + mousereleased event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveCells(java.lang.Object[], double, double, java.lang.Object, java.awt.event.MouseEvent)"><!-- --></A><H3>
    +moveCells</H3>
    +<PRE>
    +protected void <B>moveCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                         double&nbsp;dx,
    +                         double&nbsp;dy,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dx</CODE> - <DD><CODE>dy</CODE> - <DD><CODE>e</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createEvent(java.awt.dnd.DropTargetEvent)"><!-- --></A><H3>
    +createEvent</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A> <B>createEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphTransferHandler(java.awt.dnd.DropTargetEvent)"><!-- --></A><H3>
    +getGraphTransferHandler</H3>
    +<PRE>
    +protected static final <A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A> <B>getGraphTransferHandler</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Helper method to return the component for a drop target event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDropTarget(java.awt.dnd.DropTargetEvent)"><!-- --></A><H3>
    +getDropTarget</H3>
    +<PRE>
    +protected static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> <B>getDropTarget</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetEvent.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Helper method to return the component for a drop target event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxGraphHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxGraphTransferHandler.html b/java/docs/com/mxgraph/swing/handler/mxGraphTransferHandler.html
    new file mode 100644
    index 000000000..c0f9e2fd4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxGraphTransferHandler.html
    @@ -0,0 +1,986 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphTransferHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphTransferHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphTransferHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxGraphTransferHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphTransferHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.TransferHandler">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxGraphTransferHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">javax.swing.TransferHandler</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxGraphTransferHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphTransferHandler</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.handler.mxGraphTransferHandler">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_javax.swing.TransferHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.DropLocation.html?is-external=true" title="class or interface in javax.swing">TransferHandler.DropLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.TransferSupport.html?is-external=true" title="class or interface in javax.swing">TransferHandler.TransferSupport</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#DEFAULT_BACKGROUNDCOLOR">DEFAULT_BACKGROUNDCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the background color of the transfer image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#DEFAULT_TRANSFER_IMAGE_ENABLED">DEFAULT_TRANSFER_IMAGE_ENABLED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean that specifies if an image of the cells should be created for
    + each transferable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#importCount">importCount</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Counter for the last imported cell array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#initialImportCount">initialImportCount</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value for the initialImportCount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#lastImported">lastImported</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the last imported cell array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#location">location</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#offset">offset</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#originalCells">originalCells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the original cells for removal after a move.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#transferImageBackground">transferImageBackground</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the background color for the transfer image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#transferImageEnabled">transferImageEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if a transfer image should be created for the transferable.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.TransferHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#COPY" title="class or interface in javax.swing">COPY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#COPY_OR_MOVE" title="class or interface in javax.swing">COPY_OR_MOVE</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#LINK" title="class or interface in javax.swing">LINK</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#MOVE" title="class or interface in javax.swing">MOVE</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#NONE" title="class or interface in javax.swing">NONE</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#mxGraphTransferHandler()">mxGraphTransferHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#canImport(javax.swing.JComponent, java.awt.datatransfer.DataFlavor[])">canImport</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;comp,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>[]&nbsp;flavors)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], javax.swing.ImageIcon)">createGraphTransferable</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)">createGraphTransferable</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createTransferable(javax.swing.JComponent)">createTransferable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(non-Javadoc)</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createTransferableImage(com.mxgraph.swing.mxGraphComponent, java.lang.Object[])">createTransferableImage</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#exportDone(javax.swing.JComponent, java.awt.datatransfer.Transferable, int)">exportDone</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;c,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>&nbsp;data,
    +           int&nbsp;action)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#getDropTarget(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)">getDropTarget</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the drop target for the given transferable and location.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#getImportCount()">getImportCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#getSourceActions(javax.swing.JComponent)">getSourceActions</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#getTransferImageBackground()">getTransferImageBackground</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#importCells(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable, double, double)">importCells</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +            <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt,
    +            double&nbsp;dx,
    +            double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets a drop target using getDropTarget and imports the cells using
    + mxGraph.splitEdge or mxGraphComponent.importCells depending on the
    + drop target and the return values of mxGraph.isSplitEnabled and
    + mxGraph.isSplitTarget.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#importData(javax.swing.JComponent, java.awt.datatransfer.Transferable)">importData</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;c,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>&nbsp;t)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the mxGraphTransferable data flavour is supported and calls
    + importGraphTransferable if possible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#importGraphTransferable(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)">importGraphTransferable</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cells have been imported using importCells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#isLocalDrag()">isLocalDrag</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the DnD operation started from this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#isTransferImageEnabled()">isTransferImageEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#removeCells(com.mxgraph.swing.mxGraphComponent, java.lang.Object[])">removeCells</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#setImportCount(int)">setImportCount</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#setLocation(java.awt.Point)">setLocation</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#setOffset(java.awt.Point)">setOffset</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#setTransferImageBackground(java.awt.Color)">setTransferImageBackground</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;transferImageBackground)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#setTransferImageEnabled(boolean)">setTransferImageEnabled</A></B>(boolean&nbsp;transferImageEnabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#updateImportCount(java.awt.datatransfer.Transferable)">updateImportCount</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>&nbsp;t)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Counts the number of times that the given transferable has been imported.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.TransferHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#canImport(javax.swing.TransferHandler.TransferSupport)" title="class or interface in javax.swing">canImport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#exportAsDrag(javax.swing.JComponent, java.awt.event.InputEvent, int)" title="class or interface in javax.swing">exportAsDrag</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#exportToClipboard(javax.swing.JComponent, java.awt.datatransfer.Clipboard, int)" title="class or interface in javax.swing">exportToClipboard</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#getCopyAction()" title="class or interface in javax.swing">getCopyAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#getCutAction()" title="class or interface in javax.swing">getCutAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#getPasteAction()" title="class or interface in javax.swing">getPasteAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#getVisualRepresentation(java.awt.datatransfer.Transferable)" title="class or interface in javax.swing">getVisualRepresentation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#importData(javax.swing.TransferHandler.TransferSupport)" title="class or interface in javax.swing">importData</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="DEFAULT_TRANSFER_IMAGE_ENABLED"><!-- --></A><H3>
    +DEFAULT_TRANSFER_IMAGE_ENABLED</H3>
    +<PRE>
    +public static boolean <B>DEFAULT_TRANSFER_IMAGE_ENABLED</B></PRE>
    +<DL>
    +<DD>Boolean that specifies if an image of the cells should be created for
    + each transferable. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_BACKGROUNDCOLOR"><!-- --></A><H3>
    +DEFAULT_BACKGROUNDCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>DEFAULT_BACKGROUNDCOLOR</B></PRE>
    +<DL>
    +<DD>Specifies the background color of the transfer image. If no
    + color is given here then the background color of the enclosing
    + graph component is used. Default is Color.WHITE.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="originalCells"><!-- --></A><H3>
    +originalCells</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>originalCells</B></PRE>
    +<DL>
    +<DD>Reference to the original cells for removal after a move.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lastImported"><!-- --></A><H3>
    +lastImported</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A> <B>lastImported</B></PRE>
    +<DL>
    +<DD>Reference to the last imported cell array.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="initialImportCount"><!-- --></A><H3>
    +initialImportCount</H3>
    +<PRE>
    +protected int <B>initialImportCount</B></PRE>
    +<DL>
    +<DD>Sets the value for the initialImportCount. Default is 1. Updated in
    + exportDone to contain 0 after a cut and 1 after a copy.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="importCount"><!-- --></A><H3>
    +importCount</H3>
    +<PRE>
    +protected int <B>importCount</B></PRE>
    +<DL>
    +<DD>Counter for the last imported cell array.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="transferImageEnabled"><!-- --></A><H3>
    +transferImageEnabled</H3>
    +<PRE>
    +protected boolean <B>transferImageEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if a transfer image should be created for the transferable.
    + Default is DEFAULT_TRANSFER_IMAGE.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="transferImageBackground"><!-- --></A><H3>
    +transferImageBackground</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>transferImageBackground</B></PRE>
    +<DL>
    +<DD>Specifies the background color for the transfer image. Default is
    + DEFAULT_BACKGROUNDCOLOR.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="location"><!-- --></A><H3>
    +location</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>location</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="offset"><!-- --></A><H3>
    +offset</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>offset</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphTransferHandler()"><!-- --></A><H3>
    +mxGraphTransferHandler</H3>
    +<PRE>
    +public <B>mxGraphTransferHandler</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getImportCount()"><!-- --></A><H3>
    +getImportCount</H3>
    +<PRE>
    +public int <B>getImportCount</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setImportCount(int)"><!-- --></A><H3>
    +setImportCount</H3>
    +<PRE>
    +public void <B>setImportCount</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTransferImageEnabled(boolean)"><!-- --></A><H3>
    +setTransferImageEnabled</H3>
    +<PRE>
    +public void <B>setTransferImageEnabled</B>(boolean&nbsp;transferImageEnabled)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTransferImageEnabled()"><!-- --></A><H3>
    +isTransferImageEnabled</H3>
    +<PRE>
    +public boolean <B>isTransferImageEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTransferImageBackground(java.awt.Color)"><!-- --></A><H3>
    +setTransferImageBackground</H3>
    +<PRE>
    +public void <B>setTransferImageBackground</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;transferImageBackground)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTransferImageBackground()"><!-- --></A><H3>
    +getTransferImageBackground</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getTransferImageBackground</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLocalDrag()"><!-- --></A><H3>
    +isLocalDrag</H3>
    +<PRE>
    +public boolean <B>isLocalDrag</B>()</PRE>
    +<DL>
    +<DD>Returns true if the DnD operation started from this handler.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLocation(java.awt.Point)"><!-- --></A><H3>
    +setLocation</H3>
    +<PRE>
    +public void <B>setLocation</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOffset(java.awt.Point)"><!-- --></A><H3>
    +setOffset</H3>
    +<PRE>
    +public void <B>setOffset</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="canImport(javax.swing.JComponent, java.awt.datatransfer.DataFlavor[])"><!-- --></A><H3>
    +canImport</H3>
    +<PRE>
    +public boolean <B>canImport</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;comp,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>[]&nbsp;flavors)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#canImport(javax.swing.JComponent, java.awt.datatransfer.DataFlavor[])" title="class or interface in javax.swing">canImport</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTransferable(javax.swing.JComponent)"><!-- --></A><H3>
    +createTransferable</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A> <B>createTransferable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;c)</PRE>
    +<DL>
    +<DD>(non-Javadoc)
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#createTransferable(javax.swing.JComponent)" title="class or interface in javax.swing">createTransferable</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>See Also:</B><DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#createTransferable(javax.swing.JComponent)" title="class or interface in javax.swing"><CODE>TransferHandler.createTransferable(javax.swing.JComponent)</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], javax.swing.ImageIcon)"><!-- --></A><H3>
    +createGraphTransferable</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A> <B>createGraphTransferable</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)"><!-- --></A><H3>
    +createGraphTransferable</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A> <B>createGraphTransferable</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                                   <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTransferableImage(com.mxgraph.swing.mxGraphComponent, java.lang.Object[])"><!-- --></A><H3>
    +createTransferableImage</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>createTransferableImage</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="exportDone(javax.swing.JComponent, java.awt.datatransfer.Transferable, int)"><!-- --></A><H3>
    +exportDone</H3>
    +<PRE>
    +public void <B>exportDone</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;c,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>&nbsp;data,
    +                       int&nbsp;action)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#exportDone(javax.swing.JComponent, java.awt.datatransfer.Transferable, int)" title="class or interface in javax.swing">exportDone</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCells(com.mxgraph.swing.mxGraphComponent, java.lang.Object[])"><!-- --></A><H3>
    +removeCells</H3>
    +<PRE>
    +protected void <B>removeCells</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSourceActions(javax.swing.JComponent)"><!-- --></A><H3>
    +getSourceActions</H3>
    +<PRE>
    +public int <B>getSourceActions</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;c)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#getSourceActions(javax.swing.JComponent)" title="class or interface in javax.swing">getSourceActions</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="importData(javax.swing.JComponent, java.awt.datatransfer.Transferable)"><!-- --></A><H3>
    +importData</H3>
    +<PRE>
    +public boolean <B>importData</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A>&nbsp;c,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>&nbsp;t)</PRE>
    +<DL>
    +<DD>Checks if the mxGraphTransferable data flavour is supported and calls
    + importGraphTransferable if possible.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true#importData(javax.swing.JComponent, java.awt.datatransfer.Transferable)" title="class or interface in javax.swing">importData</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateImportCount(java.awt.datatransfer.Transferable)"><!-- --></A><H3>
    +updateImportCount</H3>
    +<PRE>
    +protected void <B>updateImportCount</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>&nbsp;t)</PRE>
    +<DL>
    +<DD>Counts the number of times that the given transferable has been imported.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="importGraphTransferable(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)"><!-- --></A><H3>
    +importGraphTransferable</H3>
    +<PRE>
    +protected boolean <B>importGraphTransferable</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                                          <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt)</PRE>
    +<DL>
    +<DD>Returns true if the cells have been imported using importCells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDropTarget(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)"><!-- --></A><H3>
    +getDropTarget</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getDropTarget</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                               <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt)</PRE>
    +<DL>
    +<DD>Returns the drop target for the given transferable and location.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="importCells(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable, double, double)"><!-- --></A><H3>
    +importCells</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>importCells</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                               <A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt,
    +                               double&nbsp;dx,
    +                               double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Gets a drop target using getDropTarget and imports the cells using
    + mxGraph.splitEdge or mxGraphComponent.importCells depending on the
    + drop target and the return values of mxGraph.isSplitEnabled and
    + mxGraph.isSplitTarget. Selects and returns the cells that have been
    + imported.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphTransferHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxGraphTransferHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphTransferHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.TransferHandler">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxInsertHandler.html b/java/docs/com/mxgraph/swing/handler/mxInsertHandler.html
    new file mode 100644
    index 000000000..a4d1091a1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxInsertHandler.html
    @@ -0,0 +1,712 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxInsertHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxInsertHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxInsertHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxInsertHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxInsertHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxInsertHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxMouseAdapter</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxInsertHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxInsertHandler</B><DT>extends <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#current">current</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if this handler is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#eventSource">eventSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#first">first</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#lineColor">lineColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#lineWidth">lineWidth</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#rounded">rounded</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#style">style</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#mxInsertHandler(com.mxgraph.swing.mxGraphComponent, java.lang.String)">mxInsertHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#insertCell(com.mxgraph.util.mxRectangle)">insertCell</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#isStartEvent(java.awt.event.MouseEvent)">isStartEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#start(java.awt.event.MouseEvent)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.util.mxMouseAdapter"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph component.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Specifies if this handler is enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="style"><!-- --></A><H3>
    +style</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>style</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="first"><!-- --></A><H3>
    +first</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>first</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lineWidth"><!-- --></A><H3>
    +lineWidth</H3>
    +<PRE>
    +protected float <B>lineWidth</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lineColor"><!-- --></A><H3>
    +lineColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>lineColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="rounded"><!-- --></A><H3>
    +rounded</H3>
    +<PRE>
    +protected boolean <B>rounded</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="current"><!-- --></A><H3>
    +current</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>current</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="eventSource"><!-- --></A><H3>
    +eventSource</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> <B>eventSource</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxInsertHandler(com.mxgraph.swing.mxGraphComponent, java.lang.String)"><!-- --></A><H3>
    +mxInsertHandler</H3>
    +<PRE>
    +public <B>mxInsertHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getGraphComponent()"><!-- --></A><H3>
    +getGraphComponent</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>getGraphComponent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isStartEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isStartEvent</H3>
    +<PRE>
    +public boolean <B>isStartEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="start(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +public void <B>start</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertCell(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +insertCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>insertCell</B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +addListener</H3>
    +<PRE>
    +public void <B>addListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +                        <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxInsertHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxInsertHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxInsertHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxKeyboardHandler.html b/java/docs/com/mxgraph/swing/handler/mxKeyboardHandler.html
    new file mode 100644
    index 000000000..d7b144282
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxKeyboardHandler.html
    @@ -0,0 +1,299 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxKeyboardHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxKeyboardHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxKeyboardHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxKeyboardHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxKeyboardHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxKeyboardHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxKeyboardHandler</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxKeyboardHandler</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html#mxKeyboardHandler(com.mxgraph.swing.mxGraphComponent)">mxKeyboardHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ActionMap.html?is-external=true" title="class or interface in javax.swing">ActionMap</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html#createActionMap()">createActionMap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the mapping between JTree's input map and JGraph's actions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/InputMap.html?is-external=true" title="class or interface in javax.swing">InputMap</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html#getInputMap(int)">getInputMap</A></B>(int&nbsp;condition)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return JTree's input map.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html#installKeyboardActions(com.mxgraph.swing.mxGraphComponent)">installKeyboardActions</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked as part from the boilerplate install block.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxKeyboardHandler(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxKeyboardHandler</H3>
    +<PRE>
    +public <B>mxKeyboardHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="installKeyboardActions(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +installKeyboardActions</H3>
    +<PRE>
    +protected void <B>installKeyboardActions</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DD>Invoked as part from the boilerplate install block.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInputMap(int)"><!-- --></A><H3>
    +getInputMap</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/InputMap.html?is-external=true" title="class or interface in javax.swing">InputMap</A> <B>getInputMap</B>(int&nbsp;condition)</PRE>
    +<DL>
    +<DD>Return JTree's input map.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createActionMap()"><!-- --></A><H3>
    +createActionMap</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ActionMap.html?is-external=true" title="class or interface in javax.swing">ActionMap</A> <B>createActionMap</B>()</PRE>
    +<DL>
    +<DD>Return the mapping between JTree's input map and JGraph's actions.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxKeyboardHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxKeyboardHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxKeyboardHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxMovePreview.html b/java/docs/com/mxgraph/swing/handler/mxMovePreview.html
    new file mode 100644
    index 000000000..cc6a26882
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxMovePreview.html
    @@ -0,0 +1,1015 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxMovePreview (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxMovePreview (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMovePreview.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxMovePreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMovePreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxMovePreview</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxMovePreview</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxMovePreview</B><DT>extends <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Connection handler creates new connections between cells. This control is used to display the connector
    + icon, while the preview is used to draw the line.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#clonePreview">clonePreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the preview should use clones of the original shapes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#contextPreview">contextPreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if connected, unselected edges should be included in the
    + preview.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#hideSelectionHandler">hideSelectionHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the selection cells handler should be hidden while the
    + preview is visible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#initialPlaceholder">initialPlaceholder</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#lastDirty">lastDirty</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#movingCells">movingCells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#placeholder">placeholder</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#placeholderPreview">placeholderPreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the placeholder rectangle should be used for all
    + previews.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#preview">preview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#previewStates">previewStates</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#startState">startState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#threshold">threshold</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maximum number of cells to preview individually.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#mxMovePreview(com.mxgraph.swing.mxGraphComponent)">mxMovePreview</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new rubberband selection for the given graph component.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#createCellStatePreview()">createCellStatePreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#getCells(com.mxgraph.view.mxCellState)">getCells</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;initialState)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#getMovingCells()">getMovingCells</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIXME: Cells should be assigned outside of getPreviewStates</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#getPlaceholderBounds(com.mxgraph.view.mxCellState)">getPlaceholderBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#getPreviewStates()">getPreviewStates</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the states that are affected by the move operation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#getThreshold()">getThreshold</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#isActive()">isActive</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#isCellOpaque(java.lang.Object)">isCellOpaque</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#isClonePreview()">isClonePreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#isContextPreview()">isContextPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#isHideSelectionHandler()">isHideSelectionHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#isPlaceholderPreview()">isPlaceholderPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#repaint(com.mxgraph.util.mxRectangle)">repaint</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;dirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#setClonePreview(boolean)">setClonePreview</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#setContextPreview(boolean)">setContextPreview</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#setHideSelectionHandler(boolean)">setHideSelectionHandler</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#setPlaceholderPreview(boolean)">setPlaceholderPreview</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#setThreshold(int)">setThreshold</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the translation of the preview.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#stop(boolean, java.awt.event.MouseEvent, double, double, boolean, java.lang.Object)">stop</A></B>(boolean&nbsp;commit,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +     double&nbsp;dx,
    +     double&nbsp;dy,
    +     boolean&nbsp;clone,
    +     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#update(java.awt.event.MouseEvent, double, double, boolean)">update</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +       double&nbsp;dx,
    +       double&nbsp;dy,
    +       boolean&nbsp;clone)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the translation of the preview.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="threshold"><!-- --></A><H3>
    +threshold</H3>
    +<PRE>
    +protected int <B>threshold</B></PRE>
    +<DL>
    +<DD>Maximum number of cells to preview individually. Default is 200.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="placeholderPreview"><!-- --></A><H3>
    +placeholderPreview</H3>
    +<PRE>
    +protected boolean <B>placeholderPreview</B></PRE>
    +<DL>
    +<DD>Specifies if the placeholder rectangle should be used for all
    + previews. Default is false. This overrides all other preview
    + settings if true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="clonePreview"><!-- --></A><H3>
    +clonePreview</H3>
    +<PRE>
    +protected boolean <B>clonePreview</B></PRE>
    +<DL>
    +<DD>Specifies if the preview should use clones of the original shapes.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="contextPreview"><!-- --></A><H3>
    +contextPreview</H3>
    +<PRE>
    +protected boolean <B>contextPreview</B></PRE>
    +<DL>
    +<DD>Specifies if connected, unselected edges should be included in the
    + preview. Default is true. This should not be used if cloning is
    + enabled.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="hideSelectionHandler"><!-- --></A><H3>
    +hideSelectionHandler</H3>
    +<PRE>
    +protected boolean <B>hideSelectionHandler</B></PRE>
    +<DL>
    +<DD>Specifies if the selection cells handler should be hidden while the
    + preview is visible. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="startState"><!-- --></A><H3>
    +startState</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>startState</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previewStates"><!-- --></A><H3>
    +previewStates</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[] <B>previewStates</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="movingCells"><!-- --></A><H3>
    +movingCells</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>movingCells</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="initialPlaceholder"><!-- --></A><H3>
    +initialPlaceholder</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>initialPlaceholder</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="placeholder"><!-- --></A><H3>
    +placeholder</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>placeholder</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lastDirty"><!-- --></A><H3>
    +lastDirty</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>lastDirty</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="preview"><!-- --></A><H3>
    +preview</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A> <B>preview</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxMovePreview(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxMovePreview</H3>
    +<PRE>
    +public <B>mxMovePreview</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DD>Constructs a new rubberband selection for the given graph component.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - Component that contains the rubberband.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getThreshold()"><!-- --></A><H3>
    +getThreshold</H3>
    +<PRE>
    +public int <B>getThreshold</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setThreshold(int)"><!-- --></A><H3>
    +setThreshold</H3>
    +<PRE>
    +public void <B>setThreshold</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPlaceholderPreview()"><!-- --></A><H3>
    +isPlaceholderPreview</H3>
    +<PRE>
    +public boolean <B>isPlaceholderPreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPlaceholderPreview(boolean)"><!-- --></A><H3>
    +setPlaceholderPreview</H3>
    +<PRE>
    +public void <B>setPlaceholderPreview</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isClonePreview()"><!-- --></A><H3>
    +isClonePreview</H3>
    +<PRE>
    +public boolean <B>isClonePreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setClonePreview(boolean)"><!-- --></A><H3>
    +setClonePreview</H3>
    +<PRE>
    +public void <B>setClonePreview</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isContextPreview()"><!-- --></A><H3>
    +isContextPreview</H3>
    +<PRE>
    +public boolean <B>isContextPreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setContextPreview(boolean)"><!-- --></A><H3>
    +setContextPreview</H3>
    +<PRE>
    +public void <B>setContextPreview</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHideSelectionHandler()"><!-- --></A><H3>
    +isHideSelectionHandler</H3>
    +<PRE>
    +public boolean <B>isHideSelectionHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHideSelectionHandler(boolean)"><!-- --></A><H3>
    +setHideSelectionHandler</H3>
    +<PRE>
    +public void <B>setHideSelectionHandler</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isActive()"><!-- --></A><H3>
    +isActive</H3>
    +<PRE>
    +public boolean <B>isActive</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMovingCells()"><!-- --></A><H3>
    +getMovingCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getMovingCells</B>()</PRE>
    +<DL>
    +<DD>FIXME: Cells should be assigned outside of getPreviewStates
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCells(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCells</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;initialState)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreviewStates()"><!-- --></A><H3>
    +getPreviewStates</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[] <B>getPreviewStates</B>()</PRE>
    +<DL>
    +<DD>Returns the states that are affected by the move operation.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellOpaque(java.lang.Object)"><!-- --></A><H3>
    +isCellOpaque</H3>
    +<PRE>
    +protected boolean <B>isCellOpaque</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +public void <B>start</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Sets the translation of the preview.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPlaceholderBounds(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getPlaceholderBounds</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getPlaceholderBounds</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createCellStatePreview()"><!-- --></A><H3>
    +createCellStatePreview</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A> <B>createCellStatePreview</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="update(java.awt.event.MouseEvent, double, double, boolean)"><!-- --></A><H3>
    +update</H3>
    +<PRE>
    +public void <B>update</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                   double&nbsp;dx,
    +                   double&nbsp;dy,
    +                   boolean&nbsp;clone)</PRE>
    +<DL>
    +<DD>Sets the translation of the preview.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="repaint(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +repaint</H3>
    +<PRE>
    +protected void <B>repaint</B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;dirty)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +protected void <B>reset</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stop(boolean, java.awt.event.MouseEvent, double, double, boolean, java.lang.Object)"><!-- --></A><H3>
    +stop</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>stop</B>(boolean&nbsp;commit,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                     double&nbsp;dx,
    +                     double&nbsp;dy,
    +                     boolean&nbsp;clone,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMovePreview.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxMovePreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMovePreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxPanningHandler.html b/java/docs/com/mxgraph/swing/handler/mxPanningHandler.html
    new file mode 100644
    index 000000000..4637487d1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxPanningHandler.html
    @@ -0,0 +1,447 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxPanningHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPanningHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPanningHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxPanningHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPanningHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxPanningHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxMouseAdapter</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxPanningHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxPanningHandler</B><DT>extends <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#start">start</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#mxPanningHandler(com.mxgraph.swing.mxGraphComponent)">mxPanningHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#isActive()">isActive</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not panning is currently active</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.util.mxMouseAdapter"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="start"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>start</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPanningHandler(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxPanningHandler</H3>
    +<PRE>
    +public <B>mxPanningHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isActive()"><!-- --></A><H3>
    +isActive</H3>
    +<PRE>
    +public boolean <B>isActive</B>()</PRE>
    +<DL>
    +<DD>Whether or not panning is currently active
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Whether or not panning is currently active</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPanningHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxPanningHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPanningHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxRotationHandler.html b/java/docs/com/mxgraph/swing/handler/mxRotationHandler.html
    new file mode 100644
    index 000000000..2115169e1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxRotationHandler.html
    @@ -0,0 +1,659 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxRotationHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxRotationHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRotationHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxRotationHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRotationHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxRotationHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxMouseAdapter</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxRotationHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxRotationHandler</B><DT>extends <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></DL>
    +</PRE>
    +
    +<P>
    +Placeholder for rotation handler
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#currentAngle">currentAngle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#currentState">currentState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if this handler is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#first">first</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#handle">handle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#initialAngle">initialAngle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#ROTATE_ICON">ROTATE_ICON</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#mxRotationHandler(com.mxgraph.swing.mxGraphComponent)">mxRotationHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new rotation handler.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#createHandle()">createHandle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#isStateHandled(com.mxgraph.view.mxCellState)">isStateHandled</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#start(java.awt.event.MouseEvent)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.util.mxMouseAdapter"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A>, <A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="ROTATE_ICON"><!-- --></A><H3>
    +ROTATE_ICON</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>ROTATE_ICON</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph component.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Specifies if this handler is enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="handle"><!-- --></A><H3>
    +handle</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> <B>handle</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentState"><!-- --></A><H3>
    +currentState</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>currentState</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="initialAngle"><!-- --></A><H3>
    +initialAngle</H3>
    +<PRE>
    +protected double <B>initialAngle</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentAngle"><!-- --></A><H3>
    +currentAngle</H3>
    +<PRE>
    +protected double <B>currentAngle</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="first"><!-- --></A><H3>
    +first</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>first</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxRotationHandler(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxRotationHandler</H3>
    +<PRE>
    +public <B>mxRotationHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DD>Constructs a new rotation handler.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getGraphComponent()"><!-- --></A><H3>
    +getGraphComponent</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>getGraphComponent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHandle()"><!-- --></A><H3>
    +createHandle</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> <B>createHandle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isStateHandled(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +isStateHandled</H3>
    +<PRE>
    +public boolean <B>isStateHandled</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="start(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +public void <B>start</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseMoved(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseMoved</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRotationHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxRotationHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRotationHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxRubberband.html b/java/docs/com/mxgraph/swing/handler/mxRubberband.html
    new file mode 100644
    index 000000000..605da5e85
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxRubberband.html
    @@ -0,0 +1,801 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxRubberband (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxRubberband (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRubberband.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxRubberband.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRubberband.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxRubberband</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxRubberband</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxRubberband</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a rubberband selection.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#borderColor">borderColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the border color for drawing the rubberband selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#bounds">bounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current rubberband bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the rubberband is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#fillColor">fillColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the color to be used for filling the rubberband selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#first">first</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the point where the selection has started.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph container.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#mxRubberband(com.mxgraph.swing.mxGraphComponent)">mxRubberband</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new rubberband selection for the given graph component.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#getBorderColor()">getBorderColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the border color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#getFillColor()">getFillColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the fill color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enabled state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#isRubberbandTrigger(java.awt.event.MouseEvent)">isRubberbandTrigger</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given event should start the rubberband selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#paintRubberband(java.awt.Graphics)">paintRubberband</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets the rubberband selection without carrying out the selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#select(java.awt.Rectangle, java.awt.event.MouseEvent)">select</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#setBorderColor(java.awt.Color)">setBorderColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the border color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;enabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the enabled state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#setFillColor(java.awt.Color)">setFillColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the fill color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html#start(java.awt.Point)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starts the rubberband selection at the given point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="borderColor"><!-- --></A><H3>
    +borderColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>borderColor</B></PRE>
    +<DL>
    +<DD>Defines the border color for drawing the rubberband selection.
    + Default is mxConstants.RUBBERBAND_BORDERCOLOR.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fillColor"><!-- --></A><H3>
    +fillColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>fillColor</B></PRE>
    +<DL>
    +<DD>Defines the color to be used for filling the rubberband selection.
    + Default is mxConstants.RUBBERBAND_FILLCOLOR.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph container.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Specifies if the rubberband is enabled.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="first"><!-- --></A><H3>
    +first</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>first</B></PRE>
    +<DL>
    +<DD>Holds the point where the selection has started.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bounds"><!-- --></A><H3>
    +bounds</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>bounds</B></PRE>
    +<DL>
    +<DD>Holds the current rubberband bounds.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxRubberband(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxRubberband</H3>
    +<PRE>
    +public <B>mxRubberband</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DD>Constructs a new rubberband selection for the given graph component.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - Component that contains the rubberband.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD>Returns the enabled state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;enabled)</PRE>
    +<DL>
    +<DD>Sets the enabled state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBorderColor()"><!-- --></A><H3>
    +getBorderColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getBorderColor</B>()</PRE>
    +<DL>
    +<DD>Returns the border color.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBorderColor(java.awt.Color)"><!-- --></A><H3>
    +setBorderColor</H3>
    +<PRE>
    +public void <B>setBorderColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the border color.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFillColor()"><!-- --></A><H3>
    +getFillColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getFillColor</B>()</PRE>
    +<DL>
    +<DD>Returns the fill color.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFillColor(java.awt.Color)"><!-- --></A><H3>
    +setFillColor</H3>
    +<PRE>
    +public void <B>setFillColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the fill color.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isRubberbandTrigger(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isRubberbandTrigger</H3>
    +<PRE>
    +public boolean <B>isRubberbandTrigger</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Returns true if the given event should start the rubberband selection.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="start(java.awt.Point)"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +public void <B>start</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;point)</PRE>
    +<DL>
    +<DD>Starts the rubberband selection at the given point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD>Resets the rubberband selection without carrying out the selection.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="select(java.awt.Rectangle, java.awt.event.MouseEvent)"><!-- --></A><H3>
    +select</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>select</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rect</CODE> - <DD><CODE>e</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintRubberband(java.awt.Graphics)"><!-- --></A><H3>
    +paintRubberband</H3>
    +<PRE>
    +public void <B>paintRubberband</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseClicked(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseClicked</H3>
    +<PRE>
    +public void <B>mouseClicked</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseClicked(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseClicked</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseEntered(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseEntered</H3>
    +<PRE>
    +public void <B>mouseEntered</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseEntered(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseEntered</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseExited(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseExited</H3>
    +<PRE>
    +public void <B>mouseExited</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseExited(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseExited</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseMoved(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseMoved</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRubberband.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxRubberband.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRubberband.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxSelectionCellsHandler.html b/java/docs/com/mxgraph/swing/handler/mxSelectionCellsHandler.html
    new file mode 100644
    index 000000000..a41b9148a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxSelectionCellsHandler.html
    @@ -0,0 +1,910 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxSelectionCellsHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSelectionCellsHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSelectionCellsHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxSelectionCellsHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSelectionCellsHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxSelectionCellsHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxSelectionCellsHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSelectionCellsHandler</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#bounds">bounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#DEFAULT_MAX_HANDLERS">DEFAULT_MAX_HANDLERS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default value for maxHandlers.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if this handler is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#handlers">handlers</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from cells to handlers in the order of the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#labelMoveHandler">labelMoveHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#maxHandlers">maxHandlers</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the maximum number of handlers to paint individually.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#refreshHandler">refreshHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#visible">visible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if this handler is visible.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mxSelectionCellsHandler(com.mxgraph.swing.mxGraphComponent)">mxSelectionCellsHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#addGraphListeners(com.mxgraph.view.mxGraph)">addGraphListeners</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Installs the listeners to update the handles after any changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getHandler(java.lang.Object)">getHandler</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getMaxHandlers()">getMaxHandlers</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getToolTipText(java.awt.event.MouseEvent)">getToolTipText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Redirects the tooltip handling of the JComponent to the graph
    + component, which in turn may use getHandleToolTipText in this class to
    + find a tooltip associated with a handle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#isVisible()">isVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispatches the mousepressed event to the subhandles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#paintHandles(java.awt.Graphics)">paintHandles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#refresh()">refresh</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#removeGraphListeners(com.mxgraph.view.mxGraph)">removeGraphListeners</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all installed listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#setMaxHandlers(int)">setMaxHandlers</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#setVisible(boolean)">setVisible</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="DEFAULT_MAX_HANDLERS"><!-- --></A><H3>
    +DEFAULT_MAX_HANDLERS</H3>
    +<PRE>
    +public static int <B>DEFAULT_MAX_HANDLERS</B></PRE>
    +<DL>
    +<DD>Defines the default value for maxHandlers. Default is 100.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph component.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Specifies if this handler is enabled.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="visible"><!-- --></A><H3>
    +visible</H3>
    +<PRE>
    +protected boolean <B>visible</B></PRE>
    +<DL>
    +<DD>Specifies if this handler is visible.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bounds"><!-- --></A><H3>
    +bounds</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>bounds</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph component.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxHandlers"><!-- --></A><H3>
    +maxHandlers</H3>
    +<PRE>
    +protected int <B>maxHandlers</B></PRE>
    +<DL>
    +<DD>Defines the maximum number of handlers to paint individually.
    + Default is DEFAULT_MAX_HANDLES.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="handlers"><!-- --></A><H3>
    +handlers</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>&gt; <B>handlers</B></PRE>
    +<DL>
    +<DD>Maps from cells to handlers in the order of the selection cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="refreshHandler"><!-- --></A><H3>
    +refreshHandler</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>refreshHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="labelMoveHandler"><!-- --></A><H3>
    +labelMoveHandler</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A> <B>labelMoveHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSelectionCellsHandler(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxSelectionCellsHandler</H3>
    +<PRE>
    +public <B>mxSelectionCellsHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="addGraphListeners(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +addGraphListeners</H3>
    +<PRE>
    +protected void <B>addGraphListeners</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Installs the listeners to update the handles after any changes.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeGraphListeners(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +removeGraphListeners</H3>
    +<PRE>
    +protected void <B>removeGraphListeners</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Removes all installed listeners.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphComponent()"><!-- --></A><H3>
    +getGraphComponent</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>getGraphComponent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVisible()"><!-- --></A><H3>
    +isVisible</H3>
    +<PRE>
    +public boolean <B>isVisible</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVisible(boolean)"><!-- --></A><H3>
    +setVisible</H3>
    +<PRE>
    +public void <B>setVisible</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMaxHandlers()"><!-- --></A><H3>
    +getMaxHandlers</H3>
    +<PRE>
    +public int <B>getMaxHandlers</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMaxHandlers(int)"><!-- --></A><H3>
    +setMaxHandlers</H3>
    +<PRE>
    +public void <B>setMaxHandlers</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHandler(java.lang.Object)"><!-- --></A><H3>
    +getHandler</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A> <B>getHandler</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Dispatches the mousepressed event to the subhandles. This is
    + called from the connection handler as subhandles have precedence
    + over the connection handler.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseMoved(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseMoved</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getToolTipText(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +getToolTipText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getToolTipText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Redirects the tooltip handling of the JComponent to the graph
    + component, which in turn may use getHandleToolTipText in this class to
    + find a tooltip associated with a handle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="refresh()"><!-- --></A><H3>
    +refresh</H3>
    +<PRE>
    +public void <B>refresh</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintHandles(java.awt.Graphics)"><!-- --></A><H3>
    +paintHandles</H3>
    +<PRE>
    +public void <B>paintHandles</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseClicked(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseClicked</H3>
    +<PRE>
    +public void <B>mouseClicked</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseClicked(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseClicked</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseEntered(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseEntered</H3>
    +<PRE>
    +public void <B>mouseEntered</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseEntered(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseEntered</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseExited(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseExited</H3>
    +<PRE>
    +public void <B>mouseExited</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;arg0)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseExited(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseExited</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSelectionCellsHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxSelectionCellsHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSelectionCellsHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/mxVertexHandler.html b/java/docs/com/mxgraph/swing/handler/mxVertexHandler.html
    new file mode 100644
    index 000000000..077be129a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/mxVertexHandler.html
    @@ -0,0 +1,600 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxVertexHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxVertexHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxVertexHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxVertexHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxVertexHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.handler</FONT>
    +<BR>
    +Class mxVertexHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">com.mxgraph.swing.handler.mxCellHandler</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.handler.mxVertexHandler</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxVertexHandler</B><DT>extends <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#constrainedEvent">constrainedEvent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Workaround for shift-key-state not correct in mouseReleased.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#CURSORS">CURSORS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#gridEnabledEvent">gridEnabledEvent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Workaround for alt-key-state not correct in mouseReleased.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.swing.handler.mxCellHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#bounds">bounds</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#first">first</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#graphComponent">graphComponent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#handles">handles</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#handlesVisible">handlesVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#index">index</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#preview">preview</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#state">state</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#mxVertexHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxVertexHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#createHandles()">createHandles</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the rectangles that define the handles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#createPreview()">createPreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the preview for this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#getCursor(java.awt.event.MouseEvent, int)">getCursor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +          int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cursor for the given event and handle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#getSelectionColor()">getSelectionColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the color used to draw the selection border.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#getSelectionStroke()">getSelectionStroke</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stroke used to draw the selection border.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#moveLabel(java.awt.event.MouseEvent)">moveLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the visible handles of this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#resizeCell(java.awt.event.MouseEvent)">resizeCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#union(com.mxgraph.util.mxRectangle, double, double, int)">union</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +      double&nbsp;dx,
    +      double&nbsp;dy,
    +      int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.handler.mxCellHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getBounds()">getBounds</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getGraphComponent()">getGraphComponent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleBorderColor(int)">getHandleBorderColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleCount()">getHandleCount</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getHandleFillColor(int)">getHandleFillColor</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getIndex()">getIndex</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getIndexAt(int, int)">getIndexAt</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getState()">getState</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getToolTipText(java.awt.event.MouseEvent)">getToolTipText</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isActive()">isActive</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandleEnabled(int)">isHandleEnabled</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandlesVisible()">isHandlesVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isHandleVisible(int)">isHandleVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isIgnoredEvent(java.awt.event.MouseEvent)">isIgnoredEvent</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isLabel(int)">isLabel</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#isLabelMovable()">isLabelMovable</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#refresh(com.mxgraph.view.mxCellState)">refresh</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#reset()">reset</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#setHandlesVisible(boolean)">setHandlesVisible</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#start(java.awt.event.MouseEvent, int)">start</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="CURSORS"><!-- --></A><H3>
    +CURSORS</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A>[] <B>CURSORS</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="gridEnabledEvent"><!-- --></A><H3>
    +gridEnabledEvent</H3>
    +<PRE>
    +protected transient boolean <B>gridEnabledEvent</B></PRE>
    +<DL>
    +<DD>Workaround for alt-key-state not correct in mouseReleased.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="constrainedEvent"><!-- --></A><H3>
    +constrainedEvent</H3>
    +<PRE>
    +protected transient boolean <B>constrainedEvent</B></PRE>
    +<DL>
    +<DD>Workaround for shift-key-state not correct in mouseReleased.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxVertexHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +mxVertexHandler</H3>
    +<PRE>
    +public <B>mxVertexHandler</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                       <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - <DD><CODE>state</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createHandles()"><!-- --></A><H3>
    +createHandles</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>[] <B>createHandles</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createHandles()">mxCellHandler</A></CODE></B></DD>
    +<DD>Creates the rectangles that define the handles.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createHandles()">createHandles</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createPreview()"><!-- --></A><H3>
    +createPreview</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> <B>createPreview</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createPreview()">mxCellHandler</A></CODE></B></DD>
    +<DD>Creates the preview for this handler.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#createPreview()">createPreview</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseDragged(java.awt.event.MouseEvent)">mxCellHandler</A></CODE></B></DD>
    +<DD>Processes the given event.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseReleased(java.awt.event.MouseEvent)">mxCellHandler</A></CODE></B></DD>
    +<DD>Processes the given event.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveLabel(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +moveLabel</H3>
    +<PRE>
    +protected void <B>moveLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeCell(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +resizeCell</H3>
    +<PRE>
    +protected void <B>resizeCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>e</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCursor(java.awt.event.MouseEvent, int)"><!-- --></A><H3>
    +getCursor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Cursor.html?is-external=true" title="class or interface in java.awt">Cursor</A> <B>getCursor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                           int&nbsp;index)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getCursor(java.awt.event.MouseEvent, int)">mxCellHandler</A></CODE></B></DD>
    +<DD>Returns the cursor for the given event and handle.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getCursor(java.awt.event.MouseEvent, int)">getCursor</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="union(com.mxgraph.util.mxRectangle, double, double, int)"><!-- --></A><H3>
    +union</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>union</B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                            double&nbsp;dx,
    +                            double&nbsp;dy,
    +                            int&nbsp;index)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>bounds</CODE> - <DD><CODE>dx</CODE> - <DD><CODE>dy</CODE> - <DD><CODE>index</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionColor()"><!-- --></A><H3>
    +getSelectionColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getSelectionColor</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionColor()">mxCellHandler</A></CODE></B></DD>
    +<DD>Returns the color used to draw the selection border. This implementation
    + returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionColor()">getSelectionColor</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionStroke()"><!-- --></A><H3>
    +getSelectionStroke</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A> <B>getSelectionStroke</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionStroke()">mxCellHandler</A></CODE></B></DD>
    +<DD>Returns the stroke used to draw the selection border. This implementation
    + returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getSelectionStroke()">getSelectionStroke</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#paint(java.awt.Graphics)">mxCellHandler</A></CODE></B></DD>
    +<DD>Paints the visible handles of this handler.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#paint(java.awt.Graphics)">paint</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxVertexHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/mxVertexHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxVertexHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/package-frame.html b/java/docs/com/mxgraph/swing/handler/package-frame.html
    new file mode 100644
    index 000000000..a6e11accc
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/package-frame.html
    @@ -0,0 +1,64 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing.handler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../com/mxgraph/swing/handler/package-summary.html" target="classFrame">com.mxgraph.swing.handler</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxCellHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxCellHandler</A>
    +<BR>
    +<A HREF="mxCellMarker.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxCellMarker</A>
    +<BR>
    +<A HREF="mxCellTracker.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxCellTracker</A>
    +<BR>
    +<A HREF="mxConnectionHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxConnectionHandler</A>
    +<BR>
    +<A HREF="mxConnectPreview.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxConnectPreview</A>
    +<BR>
    +<A HREF="mxEdgeHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxEdgeHandler</A>
    +<BR>
    +<A HREF="mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxElbowEdgeHandler</A>
    +<BR>
    +<A HREF="mxGraphHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxGraphHandler</A>
    +<BR>
    +<A HREF="mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxGraphTransferHandler</A>
    +<BR>
    +<A HREF="mxInsertHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxInsertHandler</A>
    +<BR>
    +<A HREF="mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxKeyboardHandler</A>
    +<BR>
    +<A HREF="mxMovePreview.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxMovePreview</A>
    +<BR>
    +<A HREF="mxPanningHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxPanningHandler</A>
    +<BR>
    +<A HREF="mxRotationHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxRotationHandler</A>
    +<BR>
    +<A HREF="mxRubberband.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxRubberband</A>
    +<BR>
    +<A HREF="mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxSelectionCellsHandler</A>
    +<BR>
    +<A HREF="mxVertexHandler.html" title="class in com.mxgraph.swing.handler" target="classFrame">mxVertexHandler</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/package-summary.html b/java/docs/com/mxgraph/swing/handler/package-summary.html
    new file mode 100644
    index 000000000..6ab3e7870
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/package-summary.html
    @@ -0,0 +1,241 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing.handler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.swing.handler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.swing.handler
    +</H2>
    +This package contains all classes required for mouse event handling in
    +  JFC/Swing.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A></B></TD>
    +<TD>Implements a mouse tracker that marks cells under the mouse.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A></B></TD>
    +<TD>Event handler that highlights cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></B></TD>
    +<TD>Connection handler creates new connections between cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></B></TD>
    +<TD>Connection handler creates new connections between cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler">mxKeyboardHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></B></TD>
    +<TD>Connection handler creates new connections between cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A></B></TD>
    +<TD>Placeholder for rotation handler</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A></B></TD>
    +<TD>Implements a rubberband selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.swing.handler Description
    +</H2>
    +
    +<P>
    +This package contains all classes required for mouse event handling in
    +  JFC/Swing. The classes implement rubberband selection, mouse tracking,
    +  creating connections, handling vertices and edges, moving cells, panning
    +  and keystroke handling.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/package-tree.html b/java/docs/com/mxgraph/swing/handler/package-tree.html
    new file mode 100644
    index 000000000..fe0a3be33
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/package-tree.html
    @@ -0,0 +1,180 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing.handler Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.swing.handler Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.swing.handler
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt"><B>Component</B></A> (implements java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt"><B>Container</B></A><UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing"><B>JComponent</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler"><B>mxCellMarker</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler"><B>mxCellTracker</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +</UL>
    +</UL>
    +</UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler"><B>mxCellHandler</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>mxEdgeHandler</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>mxElbowEdgeHandler</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler"><B>mxVertexHandler</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>mxEventSource</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler"><B>mxConnectPreview</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler"><B>mxMovePreview</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler"><B>mxKeyboardHandler</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><B>mxMouseAdapter</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler"><B>mxConnectionHandler</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler"><B>mxGraphHandler</B></A> (implements java.awt.dnd.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetListener</A>)
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler"><B>mxInsertHandler</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler"><B>mxPanningHandler</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler"><B>mxRotationHandler</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler"><B>mxRubberband</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler"><B>mxSelectionCellsHandler</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing"><B>TransferHandler</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler"><B>mxGraphTransferHandler</B></A></UL>
    +</UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/handler/package-use.html b/java/docs/com/mxgraph/swing/handler/package-use.html
    new file mode 100644
    index 000000000..06b0b060a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/handler/package-use.html
    @@ -0,0 +1,246 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.swing.handler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.swing.handler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.swing.handler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> used by <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxCellHandler.html#com.mxgraph.swing"><B>mxCellHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxConnectionHandler.html#com.mxgraph.swing"><B>mxConnectionHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection handler creates new connections between cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxGraphHandler.html#com.mxgraph.swing"><B>mxGraphHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxPanningHandler.html#com.mxgraph.swing"><B>mxPanningHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxSelectionCellsHandler.html#com.mxgraph.swing"><B>mxSelectionCellsHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> used by <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxCellHandler.html#com.mxgraph.swing.handler"><B>mxCellHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxCellMarker.html#com.mxgraph.swing.handler"><B>mxCellMarker</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a mouse tracker that marks cells under the mouse.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxConnectPreview.html#com.mxgraph.swing.handler"><B>mxConnectPreview</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection handler creates new connections between cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxEdgeHandler.html#com.mxgraph.swing.handler"><B>mxEdgeHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxGraphTransferHandler.html#com.mxgraph.swing.handler"><B>mxGraphTransferHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/handler/class-use/mxMovePreview.html#com.mxgraph.swing.handler"><B>mxMovePreview</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection handler creates new connections between cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/handler/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/mxGraphComponent.html b/java/docs/com/mxgraph/swing/mxGraphComponent.html
    new file mode 100644
    index 000000000..a02218181
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/mxGraphComponent.html
    @@ -0,0 +1,6399 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:05 CEST 2012 -->
    +<TITLE>
    +mxGraphComponent (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphComponent (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphComponent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphComponent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing</FONT>
    +<BR>
    +Class mxGraphComponent</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">java.awt.Component</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">java.awt.Container</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">javax.swing.JComponent</A>
    +              <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing">javax.swing.JScrollPane</A>
    +                  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.mxGraphComponent</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true" title="class or interface in java.awt.print">Printable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/accessibility/Accessible.html?is-external=true" title="class or interface in javax.accessibility">Accessible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true" title="class or interface in javax.swing">ScrollPaneConstants</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphComponent</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing">JScrollPane</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true" title="class or interface in java.awt.print">Printable</A></DL>
    +</PRE>
    +
    +<P>
    +For setting the preferred size of the viewport for scrolling, use
    + mxGraph.setMinimumGraphSize. This component is a combined scrollpane with an
    + inner mxGraphControl. The control contains the actual graph display.
    + 
    + To set the background color of the graph, use the following code:
    + 
    + <pre>
    + graphComponent.getViewport().setOpaque(true);
    + graphComponent.getViewport().setBackground(newColor);
    + </pre>
    + 
    + This class fires the following events:
    + 
    + mxEvent.START_EDITING fires before starting the in-place editor for an
    + existing cell in startEditingAtCell. The <code>cell</code> property contains
    + the cell that is being edit and the <code>event</code> property contains
    + optional EventObject which was passed to startEditingAtCell.
    + 
    + mxEvent.LABEL_CHANGED fires between begin- and endUpdate after the call to
    + mxGraph.cellLabelChanged in labelChanged. The <code>cell</code> property
    + contains the cell, the <code>value</code> property contains the new value for
    + the cell and the optional <code>event</code> property contains the
    + EventObject that started the edit.
    + 
    + mxEvent.ADD_OVERLAY and mxEvent.REMOVE_OVERLAY fire afer an overlay was added
    + or removed using add-/removeOverlay. The <code>cell</code> property contains
    + the cell for which the overlay was added or removed and the
    + <code>overlay</code> property contain the mxOverlay.
    + 
    + mxEvent.BEFORE_PAINT and mxEvent.AFTER_PAINT fire before and after the paint
    + method is called on the component. The <code>g</code> property contains the
    + graphics context which is used for painting.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.swing.mxGraphComponent">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_javax.swing.JScrollPane"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing">JScrollPane</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.AccessibleJScrollPane.html?is-external=true" title="class or interface in javax.swing">JScrollPane.AccessibleJScrollPane</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.ScrollBar.html?is-external=true" title="class or interface in javax.swing">JScrollPane.ScrollBar</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.AccessibleJComponent.html?is-external=true" title="class or interface in javax.swing">JComponent.AccessibleJComponent</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.AccessibleAWTContainer.html?is-external=true" title="class or interface in java.awt">Container.AccessibleAWTContainer</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.AccessibleAWTComponent.html?is-external=true" title="class or interface in java.awt">Component.AccessibleAWTComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BaselineResizeBehavior.html?is-external=true" title="class or interface in java.awt">Component.BaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BltBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.BltBufferStrategy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.FlipBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.FlipBufferStrategy</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#antiAlias">antiAlias</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#autoExtend">autoExtend</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether to extend the graph bounds and scroll towards the limit of those
    + new bounds in the direction of mouse travel if a handler is active while
    + the mouse leaves the container that the graph exists in.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#autoScroll">autoScroll</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to scroll the scrollable container the graph exists in if
    + a suitable handler is active and the graph bounds already exist extended
    + in the direction of mouse travel.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#backgroundImage">backgroundImage</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the <mxImage> to be returned by <getBackgroundImage>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#cellEditor">cellEditor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#centerPage">centerPage</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the background page should be centered by automatically
    + setting the translate in the view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#centerZoom">centerZoom</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the zoom operations should go into the center of the actual
    + diagram rather than going from top, left.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#collapsedIcon">collapsedIcon</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>[]&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#components">components</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from cells to lists of heavyweights.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#connectionHandler">connectionHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#DEFAULT_COLLAPSED_ICON">DEFAULT_COLLAPSED_ICON</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#DEFAULT_EXPANDED_ICON">DEFAULT_EXPANDED_ICON</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#DEFAULT_PAGESCALE">DEFAULT_PAGESCALE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default page scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#DEFAULT_WARNING_ICON">DEFAULT_WARNING_ICON</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#dragEnabled">dragEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#enterStopsCellEditing">enterStopsCellEditing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If true, pressing the enter key without pressing control will stop
    + editing and accept the new value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#escapeEnabled">escapeEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies <escape> should be invoked when the escape key is pressed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#eventSource">eventSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#expandedIcon">expandedIcon</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#exportEnabled">exportEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#foldingEnabled">foldingEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if folding (collapse and expand via an image icon in the graph
    + should be enabled).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#graphControl">graphControl</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#graphHandler">graphHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_CROSS">GRID_STYLE_CROSS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_DASHED">GRID_STYLE_DASHED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_DOT">GRID_STYLE_DOT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_LINE">GRID_STYLE_LINE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#gridColor">gridColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#gridStyle">gridStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#gridVisible">gridVisible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the grid is visible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#horizontalPageCount">horizontalPageCount</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the number of pages in the horizontal direction.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#importEnabled">importEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#invokesStopCellEditing">invokesStopCellEditing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If true, when editing is to be stopped by way of selection changing, data
    + in diagram changing or other means stopCellEditing is invoked, and
    + changes are saved.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#keepSelectionVisibleOnZoom">keepSelectionVisibleOnZoom</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the viewport should automatically contain the selection
    + cells after a zoom operation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#overlays">overlays</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from cells to lists of overlays.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#pageBackgroundColor">pageBackgroundColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color of the background area if layout view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#pageBorderColor">pageBorderColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#pageBreakColor">pageBreakColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the color of page breaks</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#pageBreaksVisible">pageBreaksVisible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if a dashed line should be drawn between multiple pages.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/PageFormat.html?is-external=true" title="class or interface in java.awt.print">PageFormat</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#pageFormat">pageFormat</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Background page format.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#pageScale">pageScale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the scaling for the background page metrics.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#pageShadowColor">pageShadowColor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#pageVisible">pageVisible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the background page should be visible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#panningHandler">panningHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#preferPageSize">preferPageSize</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the pageFormat should be used to determine the minimal graph bounds
    + even if the page is not visible (see pageVisible).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#previewAlpha">previewAlpha</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The transparency of previewed cells from 0.0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#repaintHandler">repaintHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#scaleHandler">scaleHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets the zoom policy if the scale is changed manually.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#selectionCellsHandler">selectionCellsHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#showDirtyRectangle">showDirtyRectangle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used for debugging the dirty region.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#swimlaneSelectionEnabled">swimlaneSelectionEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if swimlanes are selected when the mouse is released over the
    + swimlanes content area.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#textAntiAlias">textAntiAlias</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#tolerance">tolerance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the tolerance for mouse clicks.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#transparentSwimlaneContent">transparentSwimlaneContent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the content area should be transparent to events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#tripleBuffer">tripleBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#tripleBuffered">tripleBuffered</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if an image buffer should be used for painting the component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#tripleBufferGraphics">tripleBufferGraphics</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#updateHandler">updateHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the heavyweight component structure after any changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#verticalPageCount">verticalPageCount</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the number of pages in the vertical direction.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#viewChangeHandler">viewChangeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#warningIcon">warningIcon</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#ZOOM_POLICY_NONE">ZOOM_POLICY_NONE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#ZOOM_POLICY_PAGE">ZOOM_POLICY_PAGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#ZOOM_POLICY_WIDTH">ZOOM_POLICY_WIDTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#zoomFactor">zoomFactor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the factor used for zoomIn and zoomOut.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#zoomPolicy">zoomPolicy</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the zoom policy.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.JScrollPane"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing">JScrollPane</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#columnHeader" title="class or interface in javax.swing">columnHeader</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#horizontalScrollBar" title="class or interface in javax.swing">horizontalScrollBar</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#horizontalScrollBarPolicy" title="class or interface in javax.swing">horizontalScrollBarPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#lowerLeft" title="class or interface in javax.swing">lowerLeft</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#lowerRight" title="class or interface in javax.swing">lowerRight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#rowHeader" title="class or interface in javax.swing">rowHeader</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#upperLeft" title="class or interface in javax.swing">upperLeft</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#upperRight" title="class or interface in javax.swing">upperRight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#verticalScrollBar" title="class or interface in javax.swing">verticalScrollBar</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#verticalScrollBarPolicy" title="class or interface in javax.swing">verticalScrollBarPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#viewport" title="class or interface in javax.swing">viewport</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#accessibleContext" title="class or interface in javax.swing">accessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#listenerList" title="class or interface in javax.swing">listenerList</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#TOOL_TIP_TEXT_KEY" title="class or interface in javax.swing">TOOL_TIP_TEXT_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#ui" title="class or interface in javax.swing">ui</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#UNDEFINED_CONDITION" title="class or interface in javax.swing">UNDEFINED_CONDITION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT" title="class or interface in javax.swing">WHEN_ANCESTOR_OF_FOCUSED_COMPONENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_FOCUSED" title="class or interface in javax.swing">WHEN_FOCUSED</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_IN_FOCUSED_WINDOW" title="class or interface in javax.swing">WHEN_IN_FOCUSED_WINDOW</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#BOTTOM_ALIGNMENT" title="class or interface in java.awt">BOTTOM_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#CENTER_ALIGNMENT" title="class or interface in java.awt">CENTER_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#LEFT_ALIGNMENT" title="class or interface in java.awt">LEFT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#RIGHT_ALIGNMENT" title="class or interface in java.awt">RIGHT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#TOP_ALIGNMENT" title="class or interface in java.awt">TOP_ALIGNMENT</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.print.Printable"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface java.awt.print.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true" title="class or interface in java.awt.print">Printable</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true#NO_SUCH_PAGE" title="class or interface in java.awt.print">NO_SUCH_PAGE</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true#PAGE_EXISTS" title="class or interface in java.awt.print">PAGE_EXISTS</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.ScrollPaneConstants"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true" title="class or interface in javax.swing">ScrollPaneConstants</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#COLUMN_HEADER" title="class or interface in javax.swing">COLUMN_HEADER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#HORIZONTAL_SCROLLBAR" title="class or interface in javax.swing">HORIZONTAL_SCROLLBAR</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#HORIZONTAL_SCROLLBAR_ALWAYS" title="class or interface in javax.swing">HORIZONTAL_SCROLLBAR_ALWAYS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#HORIZONTAL_SCROLLBAR_AS_NEEDED" title="class or interface in javax.swing">HORIZONTAL_SCROLLBAR_AS_NEEDED</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#HORIZONTAL_SCROLLBAR_NEVER" title="class or interface in javax.swing">HORIZONTAL_SCROLLBAR_NEVER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#HORIZONTAL_SCROLLBAR_POLICY" title="class or interface in javax.swing">HORIZONTAL_SCROLLBAR_POLICY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#LOWER_LEADING_CORNER" title="class or interface in javax.swing">LOWER_LEADING_CORNER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#LOWER_LEFT_CORNER" title="class or interface in javax.swing">LOWER_LEFT_CORNER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#LOWER_RIGHT_CORNER" title="class or interface in javax.swing">LOWER_RIGHT_CORNER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#LOWER_TRAILING_CORNER" title="class or interface in javax.swing">LOWER_TRAILING_CORNER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#ROW_HEADER" title="class or interface in javax.swing">ROW_HEADER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#UPPER_LEADING_CORNER" title="class or interface in javax.swing">UPPER_LEADING_CORNER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#UPPER_LEFT_CORNER" title="class or interface in javax.swing">UPPER_LEFT_CORNER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#UPPER_RIGHT_CORNER" title="class or interface in javax.swing">UPPER_RIGHT_CORNER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#UPPER_TRAILING_CORNER" title="class or interface in javax.swing">UPPER_TRAILING_CORNER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#VERTICAL_SCROLLBAR" title="class or interface in javax.swing">VERTICAL_SCROLLBAR</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#VERTICAL_SCROLLBAR_ALWAYS" title="class or interface in javax.swing">VERTICAL_SCROLLBAR_ALWAYS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#VERTICAL_SCROLLBAR_AS_NEEDED" title="class or interface in javax.swing">VERTICAL_SCROLLBAR_AS_NEEDED</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#VERTICAL_SCROLLBAR_NEVER" title="class or interface in javax.swing">VERTICAL_SCROLLBAR_NEVER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#VERTICAL_SCROLLBAR_POLICY" title="class or interface in javax.swing">VERTICAL_SCROLLBAR_POLICY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true#VIEWPORT" title="class or interface in javax.swing">VIEWPORT</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.image.ImageObserver"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ABORT" title="class or interface in java.awt.image">ABORT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ALLBITS" title="class or interface in java.awt.image">ALLBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ERROR" title="class or interface in java.awt.image">ERROR</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#FRAMEBITS" title="class or interface in java.awt.image">FRAMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#HEIGHT" title="class or interface in java.awt.image">HEIGHT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#PROPERTIES" title="class or interface in java.awt.image">PROPERTIES</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#SOMEBITS" title="class or interface in java.awt.image">SOMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#WIDTH" title="class or interface in java.awt.image">WIDTH</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#mxGraphComponent(com.mxgraph.view.mxGraph)">mxGraphComponent</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#addCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)">addCellOverlay</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds an overlay for the specified cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#canExportCell(java.lang.Object)">canExportCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell can be exported via datatransfer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#canImportCell(java.lang.Object)">canImportCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell can be imported via datatransfer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#checkTripleBuffer()">checkTripleBuffer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the triple buffer exists and creates a new one if it does not.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#clearCellOverlays()">clearCellOverlays</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all overlays in the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#clearCellOverlays(java.lang.Object)">clearCellOverlays</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all overlays in the graph for the given cell and all its
    + descendants.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createCanvas()">createCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to replace the graphics canvas for rendering and and
    + printing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createCellEditor()">createCellEditor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createComponents(com.mxgraph.view.mxCellState)">createComponents</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to create the array of heavyweights for the given
    + state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createConnectionHandler()">createConnectionHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createGraphControl()">createGraphControl</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the inner control that handles tooltips, preferred size and can
    + draw cells onto a canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createGraphHandler()">createGraphHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createHandler(com.mxgraph.view.mxCellState)">createHandler</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createHandlers()">createHandlers</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the connection-, panning and graphhandler (in this order).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createPanningHandler()">createPanningHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createSelectionCellsHandler()">createSelectionCellsHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createTransferHandler()">createTransferHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#createTripleBuffer(int, int)">createTripleBuffer</A></B>(int&nbsp;width,
    +                   int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the tripleBufferGraphics and tripleBuffer for the given dimension
    + and draws the complete graph onto the triplebuffer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#destroyTripleBuffer()">destroyTripleBuffer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destroys the tripleBuffer and tripleBufferGraphics objects.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#escape(java.awt.event.KeyEvent)">escape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/KeyEvent.html?is-external=true" title="class or interface in java.awt.event">KeyEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback to process an escape keystroke.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getBackgroundImage()">getBackgroundImage</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getCanvas()">getCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getCellAt(int, int)">getCellAt</A></B>(int&nbsp;x,
    +          int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getCellAt(int, int, boolean)">getCellAt</A></B>(int&nbsp;x,
    +          int&nbsp;y,
    +          boolean&nbsp;hitSwimlaneContent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getCellAt(int, int, boolean, java.lang.Object)">getCellAt</A></B>(int&nbsp;x,
    +          int&nbsp;y,
    +          boolean&nbsp;hitSwimlaneContent,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bottom-most cell that intersects the given point (x, y) in
    + the cell hierarchy starting at the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getCellEditor()">getCellEditor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getCellOverlays(java.lang.Object)">getCellOverlays</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the array of overlays for the given cell or null, if no overlays
    + are defined.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getCells(java.awt.Rectangle)">getCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells inside the given rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getCells(java.awt.Rectangle, java.lang.Object)">getCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the children of the given parent that are contained in the given
    + rectangle (x, y, width, height).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getConnectionHandler()">getConnectionHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getEditingValue(java.lang.Object, java.util.EventObject)">getEditingValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;trigger)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getExportableCells(java.lang.Object[])">getExportableCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all cells which may be exported via datatransfer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getFoldingIcon(com.mxgraph.view.mxCellState)">getFoldingIcon</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the icon used to display the collapsed state of the specified
    + cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getFoldingIconBounds(com.mxgraph.view.mxCellState, javax.swing.ImageIcon)">getFoldingIconBounds</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getGraphControl()">getGraphControl</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getGraphHandler()">getGraphHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getGridColor()">getGridColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getGridStyle()">getGridStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getHorizontalPageBorder()">getHorizontalPageBorder</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the horizontal border between the page and the control.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getHorizontalPageCount()">getHorizontalPageCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getImportableCells(java.lang.Object[])">getImportableCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all cells which may be imported via datatransfer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getLayoutAreaSize()">getLayoutAreaSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size of the area that layouts can operate in.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPageBackgroundColor()">getPageBackgroundColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPageBorderColor()">getPageBorderColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPageBreakColor()">getPageBreakColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/PageFormat.html?is-external=true" title="class or interface in java.awt.print">PageFormat</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPageFormat()">getPageFormat</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPageScale()">getPageScale</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPageShadowColor()">getPageShadowColor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPageTranslate(double)">getPageTranslate</A></B>(double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Should be called by a hook inside mxGraphView/mxGraph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPanningHandler()">getPanningHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPointForEvent(java.awt.event.MouseEvent)">getPointForEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an mxPoint representing the given event in the unscaled,
    + non-translated coordinate space and applies the grid.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPointForEvent(java.awt.event.MouseEvent, boolean)">getPointForEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                 boolean&nbsp;addOffset)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an mxPoint representing the given event in the unscaled,
    + non-translated coordinate space and applies the grid.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPreferredSizeForPage()">getPreferredSizeForPage</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the (unscaled) preferred size for the current page format (scaled
    + by pageScale).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getPreviewAlpha()">getPreviewAlpha</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getScaledPreferredSizeForGraph()">getScaledPreferredSizeForGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the scaled preferred size for the current graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getSelectionCellsHandler()">getSelectionCellsHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getTolerance()">getTolerance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getTripleBuffer()">getTripleBuffer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getVerticalPageBorder()">getVerticalPageBorder</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the vertical border between the page and the control.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getVerticalPageCount()">getVerticalPageCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getZoomFactor()">getZoomFactor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#getZoomPolicy()">getZoomPolicy</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#hitFoldingIcon(java.lang.Object, int, int)">hitFoldingIcon</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               int&nbsp;x,
    +               int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#importCells(java.lang.Object[], double, double, java.lang.Object, java.awt.Point)">importCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +            double&nbsp;dx,
    +            double&nbsp;dy,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;location)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clones and inserts the given cells into the graph using the move method
    + and returns the inserted cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#insertComponent(com.mxgraph.view.mxCellState, java.awt.Component)">insertComponent</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#installDoubleClickHandler()">installDoubleClickHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds handling of edit and stop-edit events after all other handlers have
    + been installed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#installFocusHandler()">installFocusHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;installs a handler to set the focus to the container.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#installKeyHandler()">installKeyHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handles escape keystrokes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#installResizeHandler()">installResizeHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Applies the zoom policy if the size of the component changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isAntiAlias()">isAntiAlias</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isAutoExtend()">isAutoExtend</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isAutoScroll()">isAutoScroll</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isCenterPage()">isCenterPage</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isCenterZoom()">isCenterZoom</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isCloneEvent(java.awt.event.MouseEvent)">isCloneEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isConnectable()">isConnectable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isConstrainedEvent(java.awt.event.MouseEvent)">isConstrainedEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Note: This is not used during drag and drop operations due to limitations
    + of the underlying API.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isDragEnabled()">isDragEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isEditEvent(java.awt.event.MouseEvent)">isEditEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isEditing()">isEditing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isEnterStopsCellEditing()">isEnterStopsCellEditing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isEscapeEnabled()">isEscapeEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isEventsEnabled()">isEventsEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isExportEnabled()">isExportEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isFoldingEnabled()">isFoldingEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isForceMarqueeEvent(java.awt.event.MouseEvent)">isForceMarqueeEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Note: This is not used during drag and drop operations due to limitations
    + of the underlying API.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isForceTripleBuffered()">isForceTripleBuffered</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for dynamic triple buffering condition.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isGridEnabledEvent(java.awt.event.MouseEvent)">isGridEnabledEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isGridVisible()">isGridVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isImportEnabled()">isImportEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns importEnabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isInvokesStopCellEditing()">isInvokesStopCellEditing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isKeepSelectionVisibleOnZoom()">isKeepSelectionVisibleOnZoom</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isPageBreaksVisible()">isPageBreaksVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isPageVisible()">isPageVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isPanning()">isPanning</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isPanningEvent(java.awt.event.MouseEvent)">isPanningEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Note: This is not used during drag and drop operations due to limitations
    + of the underlying API.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isPreferPageSize()">isPreferPageSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isSignificant(double, double)">isSignificant</A></B>(double&nbsp;dx,
    +              double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the absolute value of one of the given parameters is
    + greater than the tolerance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isSwimlaneSelectionEnabled()">isSwimlaneSelectionEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isTextAntiAlias()">isTextAntiAlias</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isToggleEvent(java.awt.event.MouseEvent)">isToggleEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#isTripleBuffered()">isTripleBuffered</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#labelChanged(java.lang.Object, java.lang.Object, java.util.EventObject)">labelChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;evt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the label of the specified cell to the given value using
    + mxGraph.cellLabelChanged and fires mxEvent.LABEL_CHANGED while the
    + transaction is in progress.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#maintainScrollBar(boolean, double, boolean)">maintainScrollBar</A></B>(boolean&nbsp;horizontal,
    +                  double&nbsp;factor,
    +                  boolean&nbsp;center)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#paintBackground(java.awt.Graphics)">paintBackground</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#paintBackgroundImage(java.awt.Graphics)">paintBackgroundImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#paintBackgroundPage(java.awt.Graphics)">paintBackgroundPage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#paintGrid(java.awt.Graphics)">paintGrid</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the grid onto the given graphics object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#print(java.awt.Graphics, java.awt.print.PageFormat, int)">print</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/PageFormat.html?is-external=true" title="class or interface in java.awt.print">PageFormat</A>&nbsp;printFormat,
    +      int&nbsp;page)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prints the specified page on the specified graphics using
    + <code>pageFormat</code> for the page format.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#redraw(com.mxgraph.view.mxCellState)">redraw</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the buffer (if one exists) and repaints the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#refresh()">refresh</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Refreshes the display and handles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#removeAllComponents(java.util.Hashtable)">removeAllComponents</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>[]&gt;&nbsp;map)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#removeAllOverlays(java.util.Hashtable)">removeAllOverlays</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]&gt;&nbsp;map)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#removeCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)">removeCellOverlay</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                  <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes and returns the given overlay from the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#removeCellOverlayComponent(com.mxgraph.swing.util.mxICellOverlay, java.lang.Object)">removeCellOverlayComponent</A></B>(<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when an overlay has been removed from the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#removeCellOverlays(java.lang.Object)">removeCellOverlays</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all overlays from the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#removeComponent(java.awt.Component, java.lang.Object)">removeComponent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>&nbsp;c,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#repaintTripleBuffer(java.awt.Rectangle)">repaintTripleBuffer</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;dirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears and repaints the triple buffer at the given rectangle or repaints
    + the complete buffer if no rectangle is specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#scrollCellToVisible(java.lang.Object)">scrollCellToVisible</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scrolls the graph so that it shows the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#scrollCellToVisible(java.lang.Object, boolean)">scrollCellToVisible</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                    boolean&nbsp;center)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scrolls the graph so that it shows the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#scrollToCenter(boolean)">scrollToCenter</A></B>(boolean&nbsp;horizontal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#selectCellForEvent(java.lang.Object, java.awt.event.MouseEvent)">selectCellForEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects the cell for the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#selectCellsForEvent(java.lang.Object[], java.awt.event.MouseEvent)">selectCellsForEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects the cells for the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#selectRegion(java.awt.Rectangle, java.awt.event.MouseEvent)">selectRegion</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setAntiAlias(boolean)">setAntiAlias</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>antiAlias</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setAutoExtend(boolean)">setAutoExtend</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setAutoScroll(boolean)">setAutoScroll</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setBackgroundImage(javax.swing.ImageIcon)">setBackgroundImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setCellEditor(com.mxgraph.swing.view.mxICellEditor)">setCellEditor</A></B>(<A HREF="../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setCellWarning(java.lang.Object, java.lang.String)">setCellWarning</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setCellWarning(java.lang.Object, java.lang.String, javax.swing.ImageIcon)">setCellWarning</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setCellWarning(java.lang.Object, java.lang.String, javax.swing.ImageIcon, boolean)">setCellWarning</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon,
    +               boolean&nbsp;select)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setCenterPage(boolean)">setCenterPage</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zoomAndCenter should be called if this is set to true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setCenterZoom(boolean)">setCenterZoom</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setConnectable(boolean)">setConnectable</A></B>(boolean&nbsp;connectable)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setDragEnabled(boolean)">setDragEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setEnterStopsCellEditing(boolean)">setEnterStopsCellEditing</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setEscapeEnabled(boolean)">setEscapeEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setEventsEnabled(boolean)">setEventsEnabled</A></B>(boolean&nbsp;eventsEnabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setExportEnabled(boolean)">setExportEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setFoldingEnabled(boolean)">setFoldingEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setGraph(com.mxgraph.view.mxGraph)">setGraph</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setGridColor(java.awt.Color)">setGridColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>gridColor</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setGridStyle(int)">setGridStyle</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>gridStyle</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setGridVisible(boolean)">setGridVisible</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>gridVisible</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setHorizontalPageCount(int)">setHorizontalPageCount</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setImportEnabled(boolean)">setImportEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets importEnabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setInvokesStopCellEditing(boolean)">setInvokesStopCellEditing</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setKeepSelectionVisibleOnZoom(boolean)">setKeepSelectionVisibleOnZoom</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPageBackgroundColor(java.awt.Color)">setPageBackgroundColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the color that appears behind the page.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPageBorderColor(java.awt.Color)">setPageBorderColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPageBreakColor(java.awt.Color)">setPageBreakColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;pageBreakColor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPageBreaksVisible(boolean)">setPageBreaksVisible</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPageFormat(java.awt.print.PageFormat)">setPageFormat</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/PageFormat.html?is-external=true" title="class or interface in java.awt.print">PageFormat</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPageScale(double)">setPageScale</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPageShadowColor(java.awt.Color)">setPageShadowColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPageVisible(boolean)">setPageVisible</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>pageVisible</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPanning(boolean)">setPanning</A></B>(boolean&nbsp;enabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPreferPageSize(boolean)">setPreferPageSize</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>preferPageSize</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setPreviewAlpha(float)">setPreviewAlpha</A></B>(float&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setSwimlaneSelectionEnabled(boolean)">setSwimlaneSelectionEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setTextAntiAlias(boolean)">setTextAntiAlias</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>textAntiAlias</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setTolerance(int)">setTolerance</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setToolTips(boolean)">setToolTips</A></B>(boolean&nbsp;enabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setTripleBuffered(boolean)">setTripleBuffered</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setVerticalPageCount(int)">setVerticalPageCount</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setZoomFactor(double)">setZoomFactor</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#setZoomPolicy(int)">setZoomPolicy</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#snapScaledPoint(com.mxgraph.util.mxPoint)">snapScaledPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#snapScaledPoint(com.mxgraph.util.mxPoint, double, double)">snapScaledPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                double&nbsp;dx,
    +                double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#startEditing()">startEditing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#startEditingAtCell(java.lang.Object)">startEditingAtCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#startEditingAtCell(java.lang.Object, java.util.EventObject)">startEditingAtCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;evt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#stopEditing(boolean)">stopEditing</A></B>(boolean&nbsp;cancel)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#updateCellOverlayComponent(com.mxgraph.view.mxCellState, com.mxgraph.swing.util.mxICellOverlay)">updateCellOverlayComponent</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                           <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when an overlay has been removed from the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#updateCellOverlays(java.lang.Object)">updateCellOverlays</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a hashtable with all entries from the overlays variable where a
    + cell still exists in the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#updateComponent(com.mxgraph.view.mxCellState, java.awt.Component)">updateComponent</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#updateComponents()">updateComponents</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>[]&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#updateComponents(java.lang.Object)">updateComponents</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#validateGraph()">validateGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validates the graph by validating each descendant of the given cell or
    + the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#validateGraph(java.lang.Object, java.util.Hashtable)">validateGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;context)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validates the graph by validating each descendant of the given cell or
    + the root of the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#zoom(boolean, boolean)">zoom</A></B>(boolean&nbsp;page,
    +     boolean&nbsp;center)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#zoom(double)">zoom</A></B>(double&nbsp;factor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#zoomActual()">zoomActual</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: zoomActual
    + 
    + Resets the zoom and panning in the view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#zoomAndCenter()">zoomAndCenter</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked after the component was resized to update the zoom if the zoom
    + policy is not none and/or update the translation of the diagram if
    + pageVisible and centerPage are true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#zoomIn()">zoomIn</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zooms into the graph by zoomFactor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#zoomOut()">zoomOut</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: zoomOut
    + 
    + Zooms out of the graph by <zoomFactor>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#zoomTo(double, boolean)">zoomTo</A></B>(double&nbsp;newScale,
    +       boolean&nbsp;center)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.JScrollPane"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing">JScrollPane</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#createHorizontalScrollBar()" title="class or interface in javax.swing">createHorizontalScrollBar</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#createVerticalScrollBar()" title="class or interface in javax.swing">createVerticalScrollBar</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#createViewport()" title="class or interface in javax.swing">createViewport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getAccessibleContext()" title="class or interface in javax.swing">getAccessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getColumnHeader()" title="class or interface in javax.swing">getColumnHeader</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getCorner(java.lang.String)" title="class or interface in javax.swing">getCorner</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getHorizontalScrollBar()" title="class or interface in javax.swing">getHorizontalScrollBar</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getHorizontalScrollBarPolicy()" title="class or interface in javax.swing">getHorizontalScrollBarPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getRowHeader()" title="class or interface in javax.swing">getRowHeader</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getUI()" title="class or interface in javax.swing">getUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getUIClassID()" title="class or interface in javax.swing">getUIClassID</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getVerticalScrollBar()" title="class or interface in javax.swing">getVerticalScrollBar</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getVerticalScrollBarPolicy()" title="class or interface in javax.swing">getVerticalScrollBarPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getViewport()" title="class or interface in javax.swing">getViewport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getViewportBorder()" title="class or interface in javax.swing">getViewportBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#getViewportBorderBounds()" title="class or interface in javax.swing">getViewportBorderBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#isValidateRoot()" title="class or interface in javax.swing">isValidateRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#isWheelScrollingEnabled()" title="class or interface in javax.swing">isWheelScrollingEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#paramString()" title="class or interface in javax.swing">paramString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setColumnHeader(javax.swing.JViewport)" title="class or interface in javax.swing">setColumnHeader</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setColumnHeaderView(java.awt.Component)" title="class or interface in javax.swing">setColumnHeaderView</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in javax.swing">setComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setCorner(java.lang.String, java.awt.Component)" title="class or interface in javax.swing">setCorner</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setHorizontalScrollBar(javax.swing.JScrollBar)" title="class or interface in javax.swing">setHorizontalScrollBar</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setHorizontalScrollBarPolicy(int)" title="class or interface in javax.swing">setHorizontalScrollBarPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setLayout(java.awt.LayoutManager)" title="class or interface in javax.swing">setLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setRowHeader(javax.swing.JViewport)" title="class or interface in javax.swing">setRowHeader</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setRowHeaderView(java.awt.Component)" title="class or interface in javax.swing">setRowHeaderView</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setUI(javax.swing.plaf.ScrollPaneUI)" title="class or interface in javax.swing">setUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setVerticalScrollBar(javax.swing.JScrollBar)" title="class or interface in javax.swing">setVerticalScrollBar</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setVerticalScrollBarPolicy(int)" title="class or interface in javax.swing">setVerticalScrollBarPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setViewport(javax.swing.JViewport)" title="class or interface in javax.swing">setViewport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setViewportBorder(javax.swing.border.Border)" title="class or interface in javax.swing">setViewportBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setViewportView(java.awt.Component)" title="class or interface in javax.swing">setViewportView</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#setWheelScrollingEnabled(boolean)" title="class or interface in javax.swing">setWheelScrollingEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true#updateUI()" title="class or interface in javax.swing">updateUI</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">addAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addNotify()" title="class or interface in javax.swing">addNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">addVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#computeVisibleRect(java.awt.Rectangle)" title="class or interface in javax.swing">computeVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#contains(int, int)" title="class or interface in javax.swing">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#createToolTip()" title="class or interface in javax.swing">createToolTip</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#disable()" title="class or interface in javax.swing">disable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#enable()" title="class or interface in javax.swing">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, boolean, boolean)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, char, char)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, int, int)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#fireVetoableChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">fireVetoableChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getActionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionMap()" title="class or interface in javax.swing">getActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentX()" title="class or interface in javax.swing">getAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentY()" title="class or interface in javax.swing">getAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAncestorListeners()" title="class or interface in javax.swing">getAncestorListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAutoscrolls()" title="class or interface in javax.swing">getAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaseline(int, int)" title="class or interface in javax.swing">getBaseline</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaselineResizeBehavior()" title="class or interface in javax.swing">getBaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBorder()" title="class or interface in javax.swing">getBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBounds(java.awt.Rectangle)" title="class or interface in javax.swing">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getClientProperty(java.lang.Object)" title="class or interface in javax.swing">getClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentGraphics(java.awt.Graphics)" title="class or interface in javax.swing">getComponentGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentPopupMenu()" title="class or interface in javax.swing">getComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getConditionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getConditionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDebugGraphicsOptions()" title="class or interface in javax.swing">getDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDefaultLocale()" title="class or interface in javax.swing">getDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getFontMetrics(java.awt.Font)" title="class or interface in javax.swing">getFontMetrics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getGraphics()" title="class or interface in javax.swing">getGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getHeight()" title="class or interface in javax.swing">getHeight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInheritsPopupMenu()" title="class or interface in javax.swing">getInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap()" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap(int)" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputVerifier()" title="class or interface in javax.swing">getInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets()" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets(java.awt.Insets)" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getListeners(java.lang.Class)" title="class or interface in javax.swing">getListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getLocation(java.awt.Point)" title="class or interface in javax.swing">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMaximumSize()" title="class or interface in javax.swing">getMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMinimumSize()" title="class or interface in javax.swing">getMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getNextFocusableComponent()" title="class or interface in javax.swing">getNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPopupLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getPopupLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPreferredSize()" title="class or interface in javax.swing">getPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRegisteredKeyStrokes()" title="class or interface in javax.swing">getRegisteredKeyStrokes</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRootPane()" title="class or interface in javax.swing">getRootPane</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getSize(java.awt.Dimension)" title="class or interface in javax.swing">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText()" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTopLevelAncestor()" title="class or interface in javax.swing">getTopLevelAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTransferHandler()" title="class or interface in javax.swing">getTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVerifyInputWhenFocusTarget()" title="class or interface in javax.swing">getVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVetoableChangeListeners()" title="class or interface in javax.swing">getVetoableChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVisibleRect()" title="class or interface in javax.swing">getVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getWidth()" title="class or interface in javax.swing">getWidth</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getX()" title="class or interface in javax.swing">getX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getY()" title="class or interface in javax.swing">getY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#grabFocus()" title="class or interface in javax.swing">grabFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isDoubleBuffered()" title="class or interface in javax.swing">isDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isLightweightComponent(java.awt.Component)" title="class or interface in javax.swing">isLightweightComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isManagingFocus()" title="class or interface in javax.swing">isManagingFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOpaque()" title="class or interface in javax.swing">isOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOptimizedDrawingEnabled()" title="class or interface in javax.swing">isOptimizedDrawingEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingForPrint()" title="class or interface in javax.swing">isPaintingForPrint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingTile()" title="class or interface in javax.swing">isPaintingTile</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isRequestFocusEnabled()" title="class or interface in javax.swing">isRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paint(java.awt.Graphics)" title="class or interface in javax.swing">paint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintBorder(java.awt.Graphics)" title="class or interface in javax.swing">paintBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintChildren(java.awt.Graphics)" title="class or interface in javax.swing">paintChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintComponent(java.awt.Graphics)" title="class or interface in javax.swing">paintComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(int, int, int, int)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(java.awt.Rectangle)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#print(java.awt.Graphics)" title="class or interface in javax.swing">print</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printAll(java.awt.Graphics)" title="class or interface in javax.swing">printAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printBorder(java.awt.Graphics)" title="class or interface in javax.swing">printBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printChildren(java.awt.Graphics)" title="class or interface in javax.swing">printChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printComponent(java.awt.Graphics)" title="class or interface in javax.swing">printComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processComponentKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processComponentKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyBinding(javax.swing.KeyStroke, java.awt.event.KeyEvent, int, boolean)" title="class or interface in javax.swing">processKeyBinding</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseMotionEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseMotionEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#putClientProperty(java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">putClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">removeAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeNotify()" title="class or interface in javax.swing">removeNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">removeVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(long, int, int, int, int)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(java.awt.Rectangle)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestDefaultFocus()" title="class or interface in javax.swing">requestDefaultFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus()" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus(boolean)" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow()" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow(boolean)" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#resetKeyboardActions()" title="class or interface in javax.swing">resetKeyboardActions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#reshape(int, int, int, int)" title="class or interface in javax.swing">reshape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#revalidate()" title="class or interface in javax.swing">revalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#scrollRectToVisible(java.awt.Rectangle)" title="class or interface in javax.swing">scrollRectToVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setActionMap(javax.swing.ActionMap)" title="class or interface in javax.swing">setActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentX(float)" title="class or interface in javax.swing">setAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentY(float)" title="class or interface in javax.swing">setAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAutoscrolls(boolean)" title="class or interface in javax.swing">setAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBackground(java.awt.Color)" title="class or interface in javax.swing">setBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBorder(javax.swing.border.Border)" title="class or interface in javax.swing">setBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setComponentPopupMenu(javax.swing.JPopupMenu)" title="class or interface in javax.swing">setComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDebugGraphicsOptions(int)" title="class or interface in javax.swing">setDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDefaultLocale(java.util.Locale)" title="class or interface in javax.swing">setDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDoubleBuffered(boolean)" title="class or interface in javax.swing">setDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFocusTraversalKeys(int, java.util.Set)" title="class or interface in javax.swing">setFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFont(java.awt.Font)" title="class or interface in javax.swing">setFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setForeground(java.awt.Color)" title="class or interface in javax.swing">setForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInheritsPopupMenu(boolean)" title="class or interface in javax.swing">setInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputMap(int, javax.swing.InputMap)" title="class or interface in javax.swing">setInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputVerifier(javax.swing.InputVerifier)" title="class or interface in javax.swing">setInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMaximumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMinimumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setNextFocusableComponent(java.awt.Component)" title="class or interface in javax.swing">setNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setOpaque(boolean)" title="class or interface in javax.swing">setOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setPreferredSize(java.awt.Dimension)" title="class or interface in javax.swing">setPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setRequestFocusEnabled(boolean)" title="class or interface in javax.swing">setRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setToolTipText(java.lang.String)" title="class or interface in javax.swing">setToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setTransferHandler(javax.swing.TransferHandler)" title="class or interface in javax.swing">setTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setUI(javax.swing.plaf.ComponentUI)" title="class or interface in javax.swing">setUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVerifyInputWhenFocusTarget(boolean)" title="class or interface in javax.swing">setVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVisible(boolean)" title="class or interface in javax.swing">setVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#unregisterKeyboardAction(javax.swing.KeyStroke)" title="class or interface in javax.swing">unregisterKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#update(java.awt.Graphics)" title="class or interface in javax.swing">update</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.lang.String, java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">addContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addImpl(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">addImpl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#applyComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">applyComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#areFocusTraversalKeysSet(int)" title="class or interface in java.awt">areFocusTraversalKeysSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#countComponents()" title="class or interface in java.awt">countComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#deliverEvent(java.awt.Event)" title="class or interface in java.awt">deliverEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#doLayout()" title="class or interface in java.awt">doLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(int, int)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(java.awt.Point)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponent(int)" title="class or interface in java.awt">getComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(int, int)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(java.awt.Point)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentCount()" title="class or interface in java.awt">getComponentCount</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponents()" title="class or interface in java.awt">getComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentZOrder(java.awt.Component)" title="class or interface in java.awt">getComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getContainerListeners()" title="class or interface in java.awt">getContainerListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalKeys(int)" title="class or interface in java.awt">getFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalPolicy()" title="class or interface in java.awt">getFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getLayout()" title="class or interface in java.awt">getLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getMousePosition(boolean)" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#insets()" title="class or interface in java.awt">insets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#invalidate()" title="class or interface in java.awt">invalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isAncestorOf(java.awt.Component)" title="class or interface in java.awt">isAncestorOf</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot()" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot(java.awt.Container)" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicyProvider()" title="class or interface in java.awt">isFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicySet()" title="class or interface in java.awt">isFocusTraversalPolicySet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#layout()" title="class or interface in java.awt">layout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintStream, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintWriter, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#locate(int, int)" title="class or interface in java.awt">locate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#minimumSize()" title="class or interface in java.awt">minimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#paintComponents(java.awt.Graphics)" title="class or interface in java.awt">paintComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#preferredSize()" title="class or interface in java.awt">preferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#printComponents(java.awt.Graphics)" title="class or interface in java.awt">printComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processContainerEvent(java.awt.event.ContainerEvent)" title="class or interface in java.awt">processContainerEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processEvent(java.awt.AWTEvent)" title="class or interface in java.awt">processEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(java.awt.Component)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(int)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeAll()" title="class or interface in java.awt">removeAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">removeContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setComponentZOrder(java.awt.Component, int)" title="class or interface in java.awt">setComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusCycleRoot(boolean)" title="class or interface in java.awt">setFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)" title="class or interface in java.awt">setFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicyProvider(boolean)" title="class or interface in java.awt">setFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusBackward()" title="class or interface in java.awt">transferFocusBackward</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusDownCycle()" title="class or interface in java.awt">transferFocusDownCycle</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validate()" title="class or interface in java.awt">validate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validateTree()" title="class or interface in java.awt">validateTree</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#action(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">action</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#add(java.awt.PopupMenu)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">addComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">addFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">addHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">addHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">addInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">addKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">addMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">addMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">addMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#bounds()" title="class or interface in java.awt">bounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#coalesceEvents(java.awt.AWTEvent, java.awt.AWTEvent)" title="class or interface in java.awt">coalesceEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#contains(java.awt.Point)" title="class or interface in java.awt">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(java.awt.image.ImageProducer)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(int, int)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int, java.awt.ImageCapabilities)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#disableEvents(long)" title="class or interface in java.awt">disableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#dispatchEvent(java.awt.AWTEvent)" title="class or interface in java.awt">dispatchEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enable(boolean)" title="class or interface in java.awt">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableEvents(long)" title="class or interface in java.awt">enableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableInputMethods(boolean)" title="class or interface in java.awt">enableInputMethods</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, byte, byte)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, double, double)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, float, float)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, long, long)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, short, short)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBackground()" title="class or interface in java.awt">getBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBounds()" title="class or interface in java.awt">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getColorModel()" title="class or interface in java.awt">getColorModel</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentListeners()" title="class or interface in java.awt">getComponentListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentOrientation()" title="class or interface in java.awt">getComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getCursor()" title="class or interface in java.awt">getCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getDropTarget()" title="class or interface in java.awt">getDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusCycleRootAncestor()" title="class or interface in java.awt">getFocusCycleRootAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusListeners()" title="class or interface in java.awt">getFocusListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusTraversalKeysEnabled()" title="class or interface in java.awt">getFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFont()" title="class or interface in java.awt">getFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getForeground()" title="class or interface in java.awt">getForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getGraphicsConfiguration()" title="class or interface in java.awt">getGraphicsConfiguration</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyBoundsListeners()" title="class or interface in java.awt">getHierarchyBoundsListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyListeners()" title="class or interface in java.awt">getHierarchyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getIgnoreRepaint()" title="class or interface in java.awt">getIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputContext()" title="class or interface in java.awt">getInputContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodListeners()" title="class or interface in java.awt">getInputMethodListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodRequests()" title="class or interface in java.awt">getInputMethodRequests</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getKeyListeners()" title="class or interface in java.awt">getKeyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocale()" title="class or interface in java.awt">getLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocation()" title="class or interface in java.awt">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocationOnScreen()" title="class or interface in java.awt">getLocationOnScreen</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseListeners()" title="class or interface in java.awt">getMouseListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseMotionListeners()" title="class or interface in java.awt">getMouseMotionListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMousePosition()" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseWheelListeners()" title="class or interface in java.awt">getMouseWheelListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getName()" title="class or interface in java.awt">getName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getParent()" title="class or interface in java.awt">getParent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPeer()" title="class or interface in java.awt">getPeer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners()" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners(java.lang.String)" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getSize()" title="class or interface in java.awt">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getToolkit()" title="class or interface in java.awt">getToolkit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getTreeLock()" title="class or interface in java.awt">getTreeLock</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#gotFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">gotFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#handleEvent(java.awt.Event)" title="class or interface in java.awt">handleEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hasFocus()" title="class or interface in java.awt">hasFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hide()" title="class or interface in java.awt">hide</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#imageUpdate(java.awt.Image, int, int, int, int, int)" title="class or interface in java.awt">imageUpdate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#inside(int, int)" title="class or interface in java.awt">inside</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isBackgroundSet()" title="class or interface in java.awt">isBackgroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isCursorSet()" title="class or interface in java.awt">isCursorSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isDisplayable()" title="class or interface in java.awt">isDisplayable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isEnabled()" title="class or interface in java.awt">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusable()" title="class or interface in java.awt">isFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusOwner()" title="class or interface in java.awt">isFocusOwner</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusTraversable()" title="class or interface in java.awt">isFocusTraversable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFontSet()" title="class or interface in java.awt">isFontSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isForegroundSet()" title="class or interface in java.awt">isForegroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isLightweight()" title="class or interface in java.awt">isLightweight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMaximumSizeSet()" title="class or interface in java.awt">isMaximumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMinimumSizeSet()" title="class or interface in java.awt">isMinimumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isPreferredSizeSet()" title="class or interface in java.awt">isPreferredSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isShowing()" title="class or interface in java.awt">isShowing</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isValid()" title="class or interface in java.awt">isValid</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isVisible()" title="class or interface in java.awt">isVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyDown(java.awt.Event, int)" title="class or interface in java.awt">keyDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyUp(java.awt.Event, int)" title="class or interface in java.awt">keyUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list()" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintStream)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintWriter)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#location()" title="class or interface in java.awt">location</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#lostFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">lostFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDown(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDrag(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDrag</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseEnter(java.awt.Event, int, int)" title="class or interface in java.awt">mouseEnter</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseExit(java.awt.Event, int, int)" title="class or interface in java.awt">mouseExit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseMove(java.awt.Event, int, int)" title="class or interface in java.awt">mouseMove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseUp(java.awt.Event, int, int)" title="class or interface in java.awt">mouseUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#move(int, int)" title="class or interface in java.awt">move</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#nextFocus()" title="class or interface in java.awt">nextFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#paintAll(java.awt.Graphics)" title="class or interface in java.awt">paintAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#postEvent(java.awt.Event)" title="class or interface in java.awt">postEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processComponentEvent(java.awt.event.ComponentEvent)" title="class or interface in java.awt">processComponentEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processFocusEvent(java.awt.event.FocusEvent)" title="class or interface in java.awt">processFocusEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyBoundsEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyBoundsEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processInputMethodEvent(java.awt.event.InputMethodEvent)" title="class or interface in java.awt">processInputMethodEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processMouseWheelEvent(java.awt.event.MouseWheelEvent)" title="class or interface in java.awt">processMouseWheelEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#remove(java.awt.MenuComponent)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">removeComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">removeFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">removeHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">removeHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">removeInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">removeKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">removeMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">removeMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">removeMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint()" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(int, int, int, int)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(long)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(java.awt.Dimension)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(int, int)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(int, int, int, int)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(java.awt.Rectangle)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setCursor(java.awt.Cursor)" title="class or interface in java.awt">setCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setDropTarget(java.awt.dnd.DropTarget)" title="class or interface in java.awt">setDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusable(boolean)" title="class or interface in java.awt">setFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusTraversalKeysEnabled(boolean)" title="class or interface in java.awt">setFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setIgnoreRepaint(boolean)" title="class or interface in java.awt">setIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocale(java.util.Locale)" title="class or interface in java.awt">setLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(int, int)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(java.awt.Point)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setName(java.lang.String)" title="class or interface in java.awt">setName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(java.awt.Dimension)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(int, int)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show()" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show(boolean)" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#size()" title="class or interface in java.awt">size</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#toString()" title="class or interface in java.awt">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocus()" title="class or interface in java.awt">transferFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocusUpCycle()" title="class or interface in java.awt">transferFocusUpCycle</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="GRID_STYLE_DOT"><!-- --></A><H3>
    +GRID_STYLE_DOT</H3>
    +<PRE>
    +public static final int <B>GRID_STYLE_DOT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.swing.mxGraphComponent.GRID_STYLE_DOT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="GRID_STYLE_CROSS"><!-- --></A><H3>
    +GRID_STYLE_CROSS</H3>
    +<PRE>
    +public static final int <B>GRID_STYLE_CROSS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.swing.mxGraphComponent.GRID_STYLE_CROSS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="GRID_STYLE_LINE"><!-- --></A><H3>
    +GRID_STYLE_LINE</H3>
    +<PRE>
    +public static final int <B>GRID_STYLE_LINE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.swing.mxGraphComponent.GRID_STYLE_LINE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="GRID_STYLE_DASHED"><!-- --></A><H3>
    +GRID_STYLE_DASHED</H3>
    +<PRE>
    +public static final int <B>GRID_STYLE_DASHED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.swing.mxGraphComponent.GRID_STYLE_DASHED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ZOOM_POLICY_NONE"><!-- --></A><H3>
    +ZOOM_POLICY_NONE</H3>
    +<PRE>
    +public static final int <B>ZOOM_POLICY_NONE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.swing.mxGraphComponent.ZOOM_POLICY_NONE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ZOOM_POLICY_PAGE"><!-- --></A><H3>
    +ZOOM_POLICY_PAGE</H3>
    +<PRE>
    +public static final int <B>ZOOM_POLICY_PAGE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.swing.mxGraphComponent.ZOOM_POLICY_PAGE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ZOOM_POLICY_WIDTH"><!-- --></A><H3>
    +ZOOM_POLICY_WIDTH</H3>
    +<PRE>
    +public static final int <B>ZOOM_POLICY_WIDTH</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.swing.mxGraphComponent.ZOOM_POLICY_WIDTH">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_EXPANDED_ICON"><!-- --></A><H3>
    +DEFAULT_EXPANDED_ICON</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>DEFAULT_EXPANDED_ICON</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_COLLAPSED_ICON"><!-- --></A><H3>
    +DEFAULT_COLLAPSED_ICON</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>DEFAULT_COLLAPSED_ICON</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_WARNING_ICON"><!-- --></A><H3>
    +DEFAULT_WARNING_ICON</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>DEFAULT_WARNING_ICON</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_PAGESCALE"><!-- --></A><H3>
    +DEFAULT_PAGESCALE</H3>
    +<PRE>
    +public static final double <B>DEFAULT_PAGESCALE</B></PRE>
    +<DL>
    +<DD>Specifies the default page scale. Default is 1.4
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.swing.mxGraphComponent.DEFAULT_PAGESCALE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graph"><!-- --></A><H3>
    +graph</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>graph</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphControl"><!-- --></A><H3>
    +graphControl</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A> <B>graphControl</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="eventSource"><!-- --></A><H3>
    +eventSource</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> <B>eventSource</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellEditor"><!-- --></A><H3>
    +cellEditor</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A> <B>cellEditor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="connectionHandler"><!-- --></A><H3>
    +connectionHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A> <B>connectionHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="panningHandler"><!-- --></A><H3>
    +panningHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A> <B>panningHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="selectionCellsHandler"><!-- --></A><H3>
    +selectionCellsHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A> <B>selectionCellsHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphHandler"><!-- --></A><H3>
    +graphHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A> <B>graphHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previewAlpha"><!-- --></A><H3>
    +previewAlpha</H3>
    +<PRE>
    +protected float <B>previewAlpha</B></PRE>
    +<DL>
    +<DD>The transparency of previewed cells from 0.0. to 0.1. 0.0 indicates
    + transparent, 1.0 indicates opaque. Default is 1.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="backgroundImage"><!-- --></A><H3>
    +backgroundImage</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>backgroundImage</B></PRE>
    +<DL>
    +<DD>Specifies the <mxImage> to be returned by <getBackgroundImage>. Default
    + is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="pageFormat"><!-- --></A><H3>
    +pageFormat</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/PageFormat.html?is-external=true" title="class or interface in java.awt.print">PageFormat</A> <B>pageFormat</B></PRE>
    +<DL>
    +<DD>Background page format.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="canvas"><!-- --></A><H3>
    +canvas</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A> <B>canvas</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="tripleBuffer"><!-- --></A><H3>
    +tripleBuffer</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>tripleBuffer</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="tripleBufferGraphics"><!-- --></A><H3>
    +tripleBufferGraphics</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>tripleBufferGraphics</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="pageScale"><!-- --></A><H3>
    +pageScale</H3>
    +<PRE>
    +protected double <B>pageScale</B></PRE>
    +<DL>
    +<DD>Defines the scaling for the background page metrics. Default is
    + <A HREF="../../../com/mxgraph/swing/mxGraphComponent.html#DEFAULT_PAGESCALE"><CODE>DEFAULT_PAGESCALE</CODE></A>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="pageVisible"><!-- --></A><H3>
    +pageVisible</H3>
    +<PRE>
    +protected boolean <B>pageVisible</B></PRE>
    +<DL>
    +<DD>Specifies if the background page should be visible. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="preferPageSize"><!-- --></A><H3>
    +preferPageSize</H3>
    +<PRE>
    +protected boolean <B>preferPageSize</B></PRE>
    +<DL>
    +<DD>If the pageFormat should be used to determine the minimal graph bounds
    + even if the page is not visible (see pageVisible). Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="pageBreaksVisible"><!-- --></A><H3>
    +pageBreaksVisible</H3>
    +<PRE>
    +protected boolean <B>pageBreaksVisible</B></PRE>
    +<DL>
    +<DD>Specifies if a dashed line should be drawn between multiple pages.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="pageBreakColor"><!-- --></A><H3>
    +pageBreakColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>pageBreakColor</B></PRE>
    +<DL>
    +<DD>Specifies the color of page breaks
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="horizontalPageCount"><!-- --></A><H3>
    +horizontalPageCount</H3>
    +<PRE>
    +protected int <B>horizontalPageCount</B></PRE>
    +<DL>
    +<DD>Specifies the number of pages in the horizontal direction.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="verticalPageCount"><!-- --></A><H3>
    +verticalPageCount</H3>
    +<PRE>
    +protected int <B>verticalPageCount</B></PRE>
    +<DL>
    +<DD>Specifies the number of pages in the vertical direction.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="centerPage"><!-- --></A><H3>
    +centerPage</H3>
    +<PRE>
    +protected boolean <B>centerPage</B></PRE>
    +<DL>
    +<DD>Specifies if the background page should be centered by automatically
    + setting the translate in the view. Default is true. This does only apply
    + if pageVisible is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="pageBackgroundColor"><!-- --></A><H3>
    +pageBackgroundColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>pageBackgroundColor</B></PRE>
    +<DL>
    +<DD>Color of the background area if layout view.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="pageShadowColor"><!-- --></A><H3>
    +pageShadowColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>pageShadowColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="pageBorderColor"><!-- --></A><H3>
    +pageBorderColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>pageBorderColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="gridVisible"><!-- --></A><H3>
    +gridVisible</H3>
    +<PRE>
    +protected boolean <B>gridVisible</B></PRE>
    +<DL>
    +<DD>Specifies if the grid is visible. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="gridColor"><!-- --></A><H3>
    +gridColor</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>gridColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="autoScroll"><!-- --></A><H3>
    +autoScroll</H3>
    +<PRE>
    +protected boolean <B>autoScroll</B></PRE>
    +<DL>
    +<DD>Whether or not to scroll the scrollable container the graph exists in if
    + a suitable handler is active and the graph bounds already exist extended
    + in the direction of mouse travel.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="autoExtend"><!-- --></A><H3>
    +autoExtend</H3>
    +<PRE>
    +protected boolean <B>autoExtend</B></PRE>
    +<DL>
    +<DD>Whether to extend the graph bounds and scroll towards the limit of those
    + new bounds in the direction of mouse travel if a handler is active while
    + the mouse leaves the container that the graph exists in.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dragEnabled"><!-- --></A><H3>
    +dragEnabled</H3>
    +<PRE>
    +protected boolean <B>dragEnabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="importEnabled"><!-- --></A><H3>
    +importEnabled</H3>
    +<PRE>
    +protected boolean <B>importEnabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="exportEnabled"><!-- --></A><H3>
    +exportEnabled</H3>
    +<PRE>
    +protected boolean <B>exportEnabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="foldingEnabled"><!-- --></A><H3>
    +foldingEnabled</H3>
    +<PRE>
    +protected boolean <B>foldingEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if folding (collapse and expand via an image icon in the graph
    + should be enabled). Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="tolerance"><!-- --></A><H3>
    +tolerance</H3>
    +<PRE>
    +protected int <B>tolerance</B></PRE>
    +<DL>
    +<DD>Specifies the tolerance for mouse clicks. Default is 4.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="swimlaneSelectionEnabled"><!-- --></A><H3>
    +swimlaneSelectionEnabled</H3>
    +<PRE>
    +protected boolean <B>swimlaneSelectionEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if swimlanes are selected when the mouse is released over the
    + swimlanes content area. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="transparentSwimlaneContent"><!-- --></A><H3>
    +transparentSwimlaneContent</H3>
    +<PRE>
    +protected boolean <B>transparentSwimlaneContent</B></PRE>
    +<DL>
    +<DD>Specifies if the content area should be transparent to events. Default is
    + true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="gridStyle"><!-- --></A><H3>
    +gridStyle</H3>
    +<PRE>
    +protected int <B>gridStyle</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="expandedIcon"><!-- --></A><H3>
    +expandedIcon</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>expandedIcon</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="collapsedIcon"><!-- --></A><H3>
    +collapsedIcon</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>collapsedIcon</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="warningIcon"><!-- --></A><H3>
    +warningIcon</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>warningIcon</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="antiAlias"><!-- --></A><H3>
    +antiAlias</H3>
    +<PRE>
    +protected boolean <B>antiAlias</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="textAntiAlias"><!-- --></A><H3>
    +textAntiAlias</H3>
    +<PRE>
    +protected boolean <B>textAntiAlias</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="escapeEnabled"><!-- --></A><H3>
    +escapeEnabled</H3>
    +<PRE>
    +protected boolean <B>escapeEnabled</B></PRE>
    +<DL>
    +<DD>Specifies <escape> should be invoked when the escape key is pressed.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="invokesStopCellEditing"><!-- --></A><H3>
    +invokesStopCellEditing</H3>
    +<PRE>
    +protected boolean <B>invokesStopCellEditing</B></PRE>
    +<DL>
    +<DD>If true, when editing is to be stopped by way of selection changing, data
    + in diagram changing or other means stopCellEditing is invoked, and
    + changes are saved. This is implemented in a mouse listener in this class.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enterStopsCellEditing"><!-- --></A><H3>
    +enterStopsCellEditing</H3>
    +<PRE>
    +protected boolean <B>enterStopsCellEditing</B></PRE>
    +<DL>
    +<DD>If true, pressing the enter key without pressing control will stop
    + editing and accept the new value. This is used in <mxKeyHandler> to stop
    + cell editing. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomPolicy"><!-- --></A><H3>
    +zoomPolicy</H3>
    +<PRE>
    +protected int <B>zoomPolicy</B></PRE>
    +<DL>
    +<DD>Specifies the zoom policy. Default is ZOOM_POLICY_PAGE. The zoom policy
    + does only apply if pageVisible is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomFactor"><!-- --></A><H3>
    +zoomFactor</H3>
    +<PRE>
    +protected double <B>zoomFactor</B></PRE>
    +<DL>
    +<DD>Specifies the factor used for zoomIn and zoomOut. Default is 1.2 (120%).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="keepSelectionVisibleOnZoom"><!-- --></A><H3>
    +keepSelectionVisibleOnZoom</H3>
    +<PRE>
    +protected boolean <B>keepSelectionVisibleOnZoom</B></PRE>
    +<DL>
    +<DD>Specifies if the viewport should automatically contain the selection
    + cells after a zoom operation. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="centerZoom"><!-- --></A><H3>
    +centerZoom</H3>
    +<PRE>
    +protected boolean <B>centerZoom</B></PRE>
    +<DL>
    +<DD>Specifies if the zoom operations should go into the center of the actual
    + diagram rather than going from top, left. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="tripleBuffered"><!-- --></A><H3>
    +tripleBuffered</H3>
    +<PRE>
    +protected boolean <B>tripleBuffered</B></PRE>
    +<DL>
    +<DD>Specifies if an image buffer should be used for painting the component.
    + Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="showDirtyRectangle"><!-- --></A><H3>
    +showDirtyRectangle</H3>
    +<PRE>
    +public boolean <B>showDirtyRectangle</B></PRE>
    +<DL>
    +<DD>Used for debugging the dirty region.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="components"><!-- --></A><H3>
    +components</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>[]&gt; <B>components</B></PRE>
    +<DL>
    +<DD>Maps from cells to lists of heavyweights.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="overlays"><!-- --></A><H3>
    +overlays</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]&gt; <B>overlays</B></PRE>
    +<DL>
    +<DD>Maps from cells to lists of overlays.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="updateHandler"><!-- --></A><H3>
    +updateHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>updateHandler</B></PRE>
    +<DL>
    +<DD>Updates the heavyweight component structure after any changes.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="repaintHandler"><!-- --></A><H3>
    +repaintHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>repaintHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="viewChangeHandler"><!-- --></A><H3>
    +viewChangeHandler</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A> <B>viewChangeHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="scaleHandler"><!-- --></A><H3>
    +scaleHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>scaleHandler</B></PRE>
    +<DL>
    +<DD>Resets the zoom policy if the scale is changed manually.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphComponent(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxGraphComponent</H3>
    +<PRE>
    +public <B>mxGraphComponent</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="installFocusHandler()"><!-- --></A><H3>
    +installFocusHandler</H3>
    +<PRE>
    +protected void <B>installFocusHandler</B>()</PRE>
    +<DL>
    +<DD>installs a handler to set the focus to the container.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="installKeyHandler()"><!-- --></A><H3>
    +installKeyHandler</H3>
    +<PRE>
    +protected void <B>installKeyHandler</B>()</PRE>
    +<DL>
    +<DD>Handles escape keystrokes.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="installResizeHandler()"><!-- --></A><H3>
    +installResizeHandler</H3>
    +<PRE>
    +protected void <B>installResizeHandler</B>()</PRE>
    +<DL>
    +<DD>Applies the zoom policy if the size of the component changes.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="installDoubleClickHandler()"><!-- --></A><H3>
    +installDoubleClickHandler</H3>
    +<PRE>
    +protected void <B>installDoubleClickHandler</B>()</PRE>
    +<DL>
    +<DD>Adds handling of edit and stop-edit events after all other handlers have
    + been installed.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createCellEditor()"><!-- --></A><H3>
    +createCellEditor</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A> <B>createCellEditor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGraph(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +setGraph</H3>
    +<PRE>
    +public void <B>setGraph</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraph()"><!-- --></A><H3>
    +getGraph</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>getGraph</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the object that contains the graph.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createGraphControl()"><!-- --></A><H3>
    +createGraphControl</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A> <B>createGraphControl</B>()</PRE>
    +<DL>
    +<DD>Creates the inner control that handles tooltips, preferred size and can
    + draw cells onto a canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphControl()"><!-- --></A><H3>
    +getGraphControl</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A> <B>getGraphControl</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the control that renders the graph.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHandlers()"><!-- --></A><H3>
    +createHandlers</H3>
    +<PRE>
    +protected void <B>createHandlers</B>()</PRE>
    +<DL>
    +<DD>Creates the connection-, panning and graphhandler (in this order).
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTransferHandler()"><!-- --></A><H3>
    +createTransferHandler</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A> <B>createTransferHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createSelectionCellsHandler()"><!-- --></A><H3>
    +createSelectionCellsHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A> <B>createSelectionCellsHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createGraphHandler()"><!-- --></A><H3>
    +createGraphHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A> <B>createGraphHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionCellsHandler()"><!-- --></A><H3>
    +getSelectionCellsHandler</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A> <B>getSelectionCellsHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphHandler()"><!-- --></A><H3>
    +getGraphHandler</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A> <B>getGraphHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createConnectionHandler()"><!-- --></A><H3>
    +createConnectionHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A> <B>createConnectionHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnectionHandler()"><!-- --></A><H3>
    +getConnectionHandler</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A> <B>getConnectionHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createPanningHandler()"><!-- --></A><H3>
    +createPanningHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A> <B>createPanningHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPanningHandler()"><!-- --></A><H3>
    +getPanningHandler</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A> <B>getPanningHandler</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEditing()"><!-- --></A><H3>
    +isEditing</H3>
    +<PRE>
    +public boolean <B>isEditing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellEditor()"><!-- --></A><H3>
    +getCellEditor</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A> <B>getCellEditor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellEditor(com.mxgraph.swing.view.mxICellEditor)"><!-- --></A><H3>
    +setCellEditor</H3>
    +<PRE>
    +public void <B>setCellEditor</B>(<A HREF="../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTolerance()"><!-- --></A><H3>
    +getTolerance</H3>
    +<PRE>
    +public int <B>getTolerance</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the tolerance</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTolerance(int)"><!-- --></A><H3>
    +setTolerance</H3>
    +<PRE>
    +public void <B>setTolerance</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the tolerance to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPageFormat()"><!-- --></A><H3>
    +getPageFormat</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/PageFormat.html?is-external=true" title="class or interface in java.awt.print">PageFormat</A> <B>getPageFormat</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPageFormat(java.awt.print.PageFormat)"><!-- --></A><H3>
    +setPageFormat</H3>
    +<PRE>
    +public void <B>setPageFormat</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/PageFormat.html?is-external=true" title="class or interface in java.awt.print">PageFormat</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPageScale()"><!-- --></A><H3>
    +getPageScale</H3>
    +<PRE>
    +public double <B>getPageScale</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPageScale(double)"><!-- --></A><H3>
    +setPageScale</H3>
    +<PRE>
    +public void <B>setPageScale</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLayoutAreaSize()"><!-- --></A><H3>
    +getLayoutAreaSize</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getLayoutAreaSize</B>()</PRE>
    +<DL>
    +<DD>Returns the size of the area that layouts can operate in.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBackgroundImage()"><!-- --></A><H3>
    +getBackgroundImage</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>getBackgroundImage</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBackgroundImage(javax.swing.ImageIcon)"><!-- --></A><H3>
    +setBackgroundImage</H3>
    +<PRE>
    +public void <B>setBackgroundImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPageVisible()"><!-- --></A><H3>
    +isPageVisible</H3>
    +<PRE>
    +public boolean <B>isPageVisible</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the pageVisible</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPageVisible(boolean)"><!-- --></A><H3>
    +setPageVisible</H3>
    +<PRE>
    +public void <B>setPageVisible</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>pageVisible</code>. zoomAndCenter
    + should be called if this is set to true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the pageVisible to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPreferPageSize()"><!-- --></A><H3>
    +isPreferPageSize</H3>
    +<PRE>
    +public boolean <B>isPreferPageSize</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the preferPageSize</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPreferPageSize(boolean)"><!-- --></A><H3>
    +setPreferPageSize</H3>
    +<PRE>
    +public void <B>setPreferPageSize</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>preferPageSize</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the preferPageSize to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPageBreaksVisible()"><!-- --></A><H3>
    +isPageBreaksVisible</H3>
    +<PRE>
    +public boolean <B>isPageBreaksVisible</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the pageBreaksVisible</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPageBreaksVisible(boolean)"><!-- --></A><H3>
    +setPageBreaksVisible</H3>
    +<PRE>
    +public void <B>setPageBreaksVisible</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the pageBreaksVisible to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPageBreakColor()"><!-- --></A><H3>
    +getPageBreakColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getPageBreakColor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the pageBreakColor</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPageBreakColor(java.awt.Color)"><!-- --></A><H3>
    +setPageBreakColor</H3>
    +<PRE>
    +public void <B>setPageBreakColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;pageBreakColor)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>pageBreakColor</CODE> - the pageBreakColor to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHorizontalPageCount(int)"><!-- --></A><H3>
    +setHorizontalPageCount</H3>
    +<PRE>
    +public void <B>setHorizontalPageCount</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the horizontalPageCount to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHorizontalPageCount()"><!-- --></A><H3>
    +getHorizontalPageCount</H3>
    +<PRE>
    +public int <B>getHorizontalPageCount</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVerticalPageCount(int)"><!-- --></A><H3>
    +setVerticalPageCount</H3>
    +<PRE>
    +public void <B>setVerticalPageCount</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the verticalPageCount to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getVerticalPageCount()"><!-- --></A><H3>
    +getVerticalPageCount</H3>
    +<PRE>
    +public int <B>getVerticalPageCount</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCenterPage()"><!-- --></A><H3>
    +isCenterPage</H3>
    +<PRE>
    +public boolean <B>isCenterPage</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the centerPage</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCenterPage(boolean)"><!-- --></A><H3>
    +setCenterPage</H3>
    +<PRE>
    +public void <B>setCenterPage</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>zoomAndCenter should be called if this is set to true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the centerPage to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPageBackgroundColor()"><!-- --></A><H3>
    +getPageBackgroundColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getPageBackgroundColor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the pageBackgroundColor</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPageBackgroundColor(java.awt.Color)"><!-- --></A><H3>
    +setPageBackgroundColor</H3>
    +<PRE>
    +public void <B>setPageBackgroundColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the color that appears behind the page.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the pageBackgroundColor to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPageShadowColor()"><!-- --></A><H3>
    +getPageShadowColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getPageShadowColor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the pageShadowColor</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPageShadowColor(java.awt.Color)"><!-- --></A><H3>
    +setPageShadowColor</H3>
    +<PRE>
    +public void <B>setPageShadowColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the pageShadowColor to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPageBorderColor()"><!-- --></A><H3>
    +getPageBorderColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getPageBorderColor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the pageShadowColor</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPageBorderColor(java.awt.Color)"><!-- --></A><H3>
    +setPageBorderColor</H3>
    +<PRE>
    +public void <B>setPageBorderColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the pageBorderColor to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isKeepSelectionVisibleOnZoom()"><!-- --></A><H3>
    +isKeepSelectionVisibleOnZoom</H3>
    +<PRE>
    +public boolean <B>isKeepSelectionVisibleOnZoom</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the keepSelectionVisibleOnZoom</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeepSelectionVisibleOnZoom(boolean)"><!-- --></A><H3>
    +setKeepSelectionVisibleOnZoom</H3>
    +<PRE>
    +public void <B>setKeepSelectionVisibleOnZoom</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the keepSelectionVisibleOnZoom to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getZoomFactor()"><!-- --></A><H3>
    +getZoomFactor</H3>
    +<PRE>
    +public double <B>getZoomFactor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the zoomFactor</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setZoomFactor(double)"><!-- --></A><H3>
    +setZoomFactor</H3>
    +<PRE>
    +public void <B>setZoomFactor</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the zoomFactor to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCenterZoom()"><!-- --></A><H3>
    +isCenterZoom</H3>
    +<PRE>
    +public boolean <B>isCenterZoom</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the centerZoom</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCenterZoom(boolean)"><!-- --></A><H3>
    +setCenterZoom</H3>
    +<PRE>
    +public void <B>setCenterZoom</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the centerZoom to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setZoomPolicy(int)"><!-- --></A><H3>
    +setZoomPolicy</H3>
    +<PRE>
    +public void <B>setZoomPolicy</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getZoomPolicy()"><!-- --></A><H3>
    +getZoomPolicy</H3>
    +<PRE>
    +public int <B>getZoomPolicy</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="escape(java.awt.event.KeyEvent)"><!-- --></A><H3>
    +escape</H3>
    +<PRE>
    +public void <B>escape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/KeyEvent.html?is-external=true" title="class or interface in java.awt.event">KeyEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Callback to process an escape keystroke.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>e</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="importCells(java.lang.Object[], double, double, java.lang.Object, java.awt.Point)"><!-- --></A><H3>
    +importCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>importCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                            double&nbsp;dx,
    +                            double&nbsp;dy,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;location)</PRE>
    +<DL>
    +<DD>Clones and inserts the given cells into the graph using the move method
    + and returns the inserted cells. This shortcut is used if cells are
    + inserted via datatransfer.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="refresh()"><!-- --></A><H3>
    +refresh</H3>
    +<PRE>
    +public void <B>refresh</B>()</PRE>
    +<DL>
    +<DD>Refreshes the display and handles.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPointForEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +getPointForEvent</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getPointForEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Returns an mxPoint representing the given event in the unscaled,
    + non-translated coordinate space and applies the grid.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPointForEvent(java.awt.event.MouseEvent, boolean)"><!-- --></A><H3>
    +getPointForEvent</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getPointForEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                                boolean&nbsp;addOffset)</PRE>
    +<DL>
    +<DD>Returns an mxPoint representing the given event in the unscaled,
    + non-translated coordinate space and applies the grid.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startEditing()"><!-- --></A><H3>
    +startEditing</H3>
    +<PRE>
    +public void <B>startEditing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startEditingAtCell(java.lang.Object)"><!-- --></A><H3>
    +startEditingAtCell</H3>
    +<PRE>
    +public void <B>startEditingAtCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startEditingAtCell(java.lang.Object, java.util.EventObject)"><!-- --></A><H3>
    +startEditingAtCell</H3>
    +<PRE>
    +public void <B>startEditingAtCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;evt)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEditingValue(java.lang.Object, java.util.EventObject)"><!-- --></A><H3>
    +getEditingValue</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEditingValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;trigger)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stopEditing(boolean)"><!-- --></A><H3>
    +stopEditing</H3>
    +<PRE>
    +public void <B>stopEditing</B>(boolean&nbsp;cancel)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="labelChanged(java.lang.Object, java.lang.Object, java.util.EventObject)"><!-- --></A><H3>
    +labelChanged</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>labelChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;evt)</PRE>
    +<DL>
    +<DD>Sets the label of the specified cell to the given value using
    + mxGraph.cellLabelChanged and fires mxEvent.LABEL_CHANGED while the
    + transaction is in progress. Returns the cell whose label was changed.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose label should be changed.<DD><CODE>value</CODE> - New value of the label.<DD><CODE>evt</CODE> - Optional event that triggered the change.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreferredSizeForPage()"><!-- --></A><H3>
    +getPreferredSizeForPage</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A> <B>getPreferredSizeForPage</B>()</PRE>
    +<DL>
    +<DD>Returns the (unscaled) preferred size for the current page format (scaled
    + by pageScale).
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getVerticalPageBorder()"><!-- --></A><H3>
    +getVerticalPageBorder</H3>
    +<PRE>
    +public int <B>getVerticalPageBorder</B>()</PRE>
    +<DL>
    +<DD>Returns the vertical border between the page and the control.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHorizontalPageBorder()"><!-- --></A><H3>
    +getHorizontalPageBorder</H3>
    +<PRE>
    +public int <B>getHorizontalPageBorder</B>()</PRE>
    +<DL>
    +<DD>Returns the horizontal border between the page and the control.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getScaledPreferredSizeForGraph()"><!-- --></A><H3>
    +getScaledPreferredSizeForGraph</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A> <B>getScaledPreferredSizeForGraph</B>()</PRE>
    +<DL>
    +<DD>Returns the scaled preferred size for the current graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPageTranslate(double)"><!-- --></A><H3>
    +getPageTranslate</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getPageTranslate</B>(double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Should be called by a hook inside mxGraphView/mxGraph
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomAndCenter()"><!-- --></A><H3>
    +zoomAndCenter</H3>
    +<PRE>
    +public void <B>zoomAndCenter</B>()</PRE>
    +<DL>
    +<DD>Invoked after the component was resized to update the zoom if the zoom
    + policy is not none and/or update the translation of the diagram if
    + pageVisible and centerPage are true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomIn()"><!-- --></A><H3>
    +zoomIn</H3>
    +<PRE>
    +public void <B>zoomIn</B>()</PRE>
    +<DL>
    +<DD>Zooms into the graph by zoomFactor.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomOut()"><!-- --></A><H3>
    +zoomOut</H3>
    +<PRE>
    +public void <B>zoomOut</B>()</PRE>
    +<DL>
    +<DD>Function: zoomOut
    + 
    + Zooms out of the graph by <zoomFactor>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="zoom(double)"><!-- --></A><H3>
    +zoom</H3>
    +<PRE>
    +public void <B>zoom</B>(double&nbsp;factor)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomTo(double, boolean)"><!-- --></A><H3>
    +zoomTo</H3>
    +<PRE>
    +public void <B>zoomTo</B>(double&nbsp;newScale,
    +                   boolean&nbsp;center)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomActual()"><!-- --></A><H3>
    +zoomActual</H3>
    +<PRE>
    +public void <B>zoomActual</B>()</PRE>
    +<DL>
    +<DD>Function: zoomActual
    + 
    + Resets the zoom and panning in the view.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="zoom(boolean, boolean)"><!-- --></A><H3>
    +zoom</H3>
    +<PRE>
    +public void <B>zoom</B>(boolean&nbsp;page,
    +                 boolean&nbsp;center)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="maintainScrollBar(boolean, double, boolean)"><!-- --></A><H3>
    +maintainScrollBar</H3>
    +<PRE>
    +protected void <B>maintainScrollBar</B>(boolean&nbsp;horizontal,
    +                                 double&nbsp;factor,
    +                                 boolean&nbsp;center)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="scrollToCenter(boolean)"><!-- --></A><H3>
    +scrollToCenter</H3>
    +<PRE>
    +public void <B>scrollToCenter</B>(boolean&nbsp;horizontal)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="scrollCellToVisible(java.lang.Object)"><!-- --></A><H3>
    +scrollCellToVisible</H3>
    +<PRE>
    +public void <B>scrollCellToVisible</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Scrolls the graph so that it shows the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="scrollCellToVisible(java.lang.Object, boolean)"><!-- --></A><H3>
    +scrollCellToVisible</H3>
    +<PRE>
    +public void <B>scrollCellToVisible</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                boolean&nbsp;center)</PRE>
    +<DL>
    +<DD>Scrolls the graph so that it shows the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellAt(int, int)"><!-- --></A><H3>
    +getCellAt</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCellAt</B>(int&nbsp;x,
    +                        int&nbsp;y)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the cell at the given location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellAt(int, int, boolean)"><!-- --></A><H3>
    +getCellAt</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCellAt</B>(int&nbsp;x,
    +                        int&nbsp;y,
    +                        boolean&nbsp;hitSwimlaneContent)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - <DD><CODE>hitSwimlaneContent</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the cell at the given location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellAt(int, int, boolean, java.lang.Object)"><!-- --></A><H3>
    +getCellAt</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCellAt</B>(int&nbsp;x,
    +                        int&nbsp;y,
    +                        boolean&nbsp;hitSwimlaneContent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns the bottom-most cell that intersects the given point (x, y) in
    + the cell hierarchy starting at the given parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - X-coordinate of the location to be checked.<DD><CODE>y</CODE> - Y-coordinate of the location to be checked.<DD><CODE>parent</CODE> - <mxCell> that should be used as the root of the recursion.
    +            Default is <defaultParent>.
    +<DT><B>Returns:</B><DD>Returns the child at the given location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSwimlaneSelectionEnabled(boolean)"><!-- --></A><H3>
    +setSwimlaneSelectionEnabled</H3>
    +<PRE>
    +public void <B>setSwimlaneSelectionEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSwimlaneSelectionEnabled()"><!-- --></A><H3>
    +isSwimlaneSelectionEnabled</H3>
    +<PRE>
    +public boolean <B>isSwimlaneSelectionEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectRegion(java.awt.Rectangle, java.awt.event.MouseEvent)"><!-- --></A><H3>
    +selectRegion</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>selectRegion</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCells(java.awt.Rectangle)"><!-- --></A><H3>
    +getCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Returns the cells inside the given rectangle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the cells inside the given rectangle.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCells(java.awt.Rectangle, java.lang.Object)"><!-- --></A><H3>
    +getCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns the children of the given parent that are contained in the given
    + rectangle (x, y, width, height). The result is added to the optional
    + result array, which is returned from the function. If no result array is
    + specified then a new array is created and returned.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the children inside the given rectangle.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectCellsForEvent(java.lang.Object[], java.awt.event.MouseEvent)"><!-- --></A><H3>
    +selectCellsForEvent</H3>
    +<PRE>
    +public void <B>selectCellsForEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</PRE>
    +<DL>
    +<DD>Selects the cells for the given event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectCellForEvent(java.lang.Object, java.awt.event.MouseEvent)"><!-- --></A><H3>
    +selectCellForEvent</H3>
    +<PRE>
    +public void <B>selectCellForEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Selects the cell for the given event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSignificant(double, double)"><!-- --></A><H3>
    +isSignificant</H3>
    +<PRE>
    +public boolean <B>isSignificant</B>(double&nbsp;dx,
    +                             double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Returns true if the absolute value of one of the given parameters is
    + greater than the tolerance.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFoldingIcon(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getFoldingIcon</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>getFoldingIcon</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the icon used to display the collapsed state of the specified
    + cell state. This returns null for all edges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFoldingIconBounds(com.mxgraph.view.mxCellState, javax.swing.ImageIcon)"><!-- --></A><H3>
    +getFoldingIconBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getFoldingIconBounds</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hitFoldingIcon(java.lang.Object, int, int)"><!-- --></A><H3>
    +hitFoldingIcon</H3>
    +<PRE>
    +public boolean <B>hitFoldingIcon</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              int&nbsp;x,
    +                              int&nbsp;y)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setToolTips(boolean)"><!-- --></A><H3>
    +setToolTips</H3>
    +<PRE>
    +public void <B>setToolTips</B>(boolean&nbsp;enabled)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enabled</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConnectable()"><!-- --></A><H3>
    +isConnectable</H3>
    +<PRE>
    +public boolean <B>isConnectable</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setConnectable(boolean)"><!-- --></A><H3>
    +setConnectable</H3>
    +<PRE>
    +public void <B>setConnectable</B>(boolean&nbsp;connectable)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>connectable</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPanning()"><!-- --></A><H3>
    +isPanning</H3>
    +<PRE>
    +public boolean <B>isPanning</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPanning(boolean)"><!-- --></A><H3>
    +setPanning</H3>
    +<PRE>
    +public void <B>setPanning</B>(boolean&nbsp;enabled)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>enabled</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAutoScroll()"><!-- --></A><H3>
    +isAutoScroll</H3>
    +<PRE>
    +public boolean <B>isAutoScroll</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the autoScroll</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAutoScroll(boolean)"><!-- --></A><H3>
    +setAutoScroll</H3>
    +<PRE>
    +public void <B>setAutoScroll</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the autoScroll to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAutoExtend()"><!-- --></A><H3>
    +isAutoExtend</H3>
    +<PRE>
    +public boolean <B>isAutoExtend</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the autoExtend</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAutoExtend(boolean)"><!-- --></A><H3>
    +setAutoExtend</H3>
    +<PRE>
    +public void <B>setAutoExtend</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the autoExtend to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEscapeEnabled()"><!-- --></A><H3>
    +isEscapeEnabled</H3>
    +<PRE>
    +public boolean <B>isEscapeEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the escapeEnabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEscapeEnabled(boolean)"><!-- --></A><H3>
    +setEscapeEnabled</H3>
    +<PRE>
    +public void <B>setEscapeEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the escapeEnabled to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isInvokesStopCellEditing()"><!-- --></A><H3>
    +isInvokesStopCellEditing</H3>
    +<PRE>
    +public boolean <B>isInvokesStopCellEditing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the escapeEnabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInvokesStopCellEditing(boolean)"><!-- --></A><H3>
    +setInvokesStopCellEditing</H3>
    +<PRE>
    +public void <B>setInvokesStopCellEditing</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the invokesStopCellEditing to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEnterStopsCellEditing()"><!-- --></A><H3>
    +isEnterStopsCellEditing</H3>
    +<PRE>
    +public boolean <B>isEnterStopsCellEditing</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the enterStopsCellEditing</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnterStopsCellEditing(boolean)"><!-- --></A><H3>
    +setEnterStopsCellEditing</H3>
    +<PRE>
    +public void <B>setEnterStopsCellEditing</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the enterStopsCellEditing to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDragEnabled()"><!-- --></A><H3>
    +isDragEnabled</H3>
    +<PRE>
    +public boolean <B>isDragEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the dragEnabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDragEnabled(boolean)"><!-- --></A><H3>
    +setDragEnabled</H3>
    +<PRE>
    +public void <B>setDragEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the dragEnabled to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isGridVisible()"><!-- --></A><H3>
    +isGridVisible</H3>
    +<PRE>
    +public boolean <B>isGridVisible</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the gridVisible</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGridVisible(boolean)"><!-- --></A><H3>
    +setGridVisible</H3>
    +<PRE>
    +public void <B>setGridVisible</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>gridVisible</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the gridVisible to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAntiAlias()"><!-- --></A><H3>
    +isAntiAlias</H3>
    +<PRE>
    +public boolean <B>isAntiAlias</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the gridVisible</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAntiAlias(boolean)"><!-- --></A><H3>
    +setAntiAlias</H3>
    +<PRE>
    +public void <B>setAntiAlias</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>antiAlias</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the antiAlias to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTextAntiAlias()"><!-- --></A><H3>
    +isTextAntiAlias</H3>
    +<PRE>
    +public boolean <B>isTextAntiAlias</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the gridVisible</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTextAntiAlias(boolean)"><!-- --></A><H3>
    +setTextAntiAlias</H3>
    +<PRE>
    +public void <B>setTextAntiAlias</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>textAntiAlias</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the textAntiAlias to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreviewAlpha()"><!-- --></A><H3>
    +getPreviewAlpha</H3>
    +<PRE>
    +public float <B>getPreviewAlpha</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPreviewAlpha(float)"><!-- --></A><H3>
    +setPreviewAlpha</H3>
    +<PRE>
    +public void <B>setPreviewAlpha</B>(float&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTripleBuffered()"><!-- --></A><H3>
    +isTripleBuffered</H3>
    +<PRE>
    +public boolean <B>isTripleBuffered</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the tripleBuffered</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isForceTripleBuffered()"><!-- --></A><H3>
    +isForceTripleBuffered</H3>
    +<PRE>
    +public boolean <B>isForceTripleBuffered</B>()</PRE>
    +<DL>
    +<DD>Hook for dynamic triple buffering condition.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTripleBuffered(boolean)"><!-- --></A><H3>
    +setTripleBuffered</H3>
    +<PRE>
    +public void <B>setTripleBuffered</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the tripleBuffered to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGridColor()"><!-- --></A><H3>
    +getGridColor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getGridColor</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the gridColor</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGridColor(java.awt.Color)"><!-- --></A><H3>
    +setGridColor</H3>
    +<PRE>
    +public void <B>setGridColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>gridColor</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the gridColor to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGridStyle()"><!-- --></A><H3>
    +getGridStyle</H3>
    +<PRE>
    +public int <B>getGridStyle</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the gridStyle</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGridStyle(int)"><!-- --></A><H3>
    +setGridStyle</H3>
    +<PRE>
    +public void <B>setGridStyle</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>gridStyle</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the gridStyle to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isImportEnabled()"><!-- --></A><H3>
    +isImportEnabled</H3>
    +<PRE>
    +public boolean <B>isImportEnabled</B>()</PRE>
    +<DL>
    +<DD>Returns importEnabled.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setImportEnabled(boolean)"><!-- --></A><H3>
    +setImportEnabled</H3>
    +<PRE>
    +public void <B>setImportEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets importEnabled.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImportableCells(java.lang.Object[])"><!-- --></A><H3>
    +getImportableCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getImportableCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns all cells which may be imported via datatransfer.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="canImportCell(java.lang.Object)"><!-- --></A><H3>
    +canImportCell</H3>
    +<PRE>
    +public boolean <B>canImportCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell can be imported via datatransfer. This
    + returns importEnabled.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isExportEnabled()"><!-- --></A><H3>
    +isExportEnabled</H3>
    +<PRE>
    +public boolean <B>isExportEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the exportEnabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setExportEnabled(boolean)"><!-- --></A><H3>
    +setExportEnabled</H3>
    +<PRE>
    +public void <B>setExportEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the exportEnabled to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getExportableCells(java.lang.Object[])"><!-- --></A><H3>
    +getExportableCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getExportableCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns all cells which may be exported via datatransfer.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="canExportCell(java.lang.Object)"><!-- --></A><H3>
    +canExportCell</H3>
    +<PRE>
    +public boolean <B>canExportCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell can be exported via datatransfer.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isFoldingEnabled()"><!-- --></A><H3>
    +isFoldingEnabled</H3>
    +<PRE>
    +public boolean <B>isFoldingEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the foldingEnabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFoldingEnabled(boolean)"><!-- --></A><H3>
    +setFoldingEnabled</H3>
    +<PRE>
    +public void <B>setFoldingEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the foldingEnabled to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEditEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isEditEvent</H3>
    +<PRE>
    +public boolean <B>isEditEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCloneEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isCloneEvent</H3>
    +<PRE>
    +public boolean <B>isCloneEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>event</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given event should toggle selected cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isToggleEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isToggleEvent</H3>
    +<PRE>
    +public boolean <B>isToggleEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>event</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given event should toggle selected cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isGridEnabledEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isGridEnabledEvent</H3>
    +<PRE>
    +public boolean <B>isGridEnabledEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>event</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given event allows the grid to be applied.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPanningEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isPanningEvent</H3>
    +<PRE>
    +public boolean <B>isPanningEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</PRE>
    +<DL>
    +<DD>Note: This is not used during drag and drop operations due to limitations
    + of the underlying API. To enable this for move operations set dragEnabled
    + to false.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>event</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given event is a panning event.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConstrainedEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isConstrainedEvent</H3>
    +<PRE>
    +public boolean <B>isConstrainedEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</PRE>
    +<DL>
    +<DD>Note: This is not used during drag and drop operations due to limitations
    + of the underlying API. To enable this for move operations set dragEnabled
    + to false.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>event</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given event is constrained.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isForceMarqueeEvent(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +isForceMarqueeEvent</H3>
    +<PRE>
    +public boolean <B>isForceMarqueeEvent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;event)</PRE>
    +<DL>
    +<DD>Note: This is not used during drag and drop operations due to limitations
    + of the underlying API. To enable this for move operations set dragEnabled
    + to false.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>event</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given event is constrained.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="snapScaledPoint(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +snapScaledPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>snapScaledPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="snapScaledPoint(com.mxgraph.util.mxPoint, double, double)"><!-- --></A><H3>
    +snapScaledPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>snapScaledPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                               double&nbsp;dx,
    +                               double&nbsp;dy)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="print(java.awt.Graphics, java.awt.print.PageFormat, int)"><!-- --></A><H3>
    +print</H3>
    +<PRE>
    +public int <B>print</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/PageFormat.html?is-external=true" title="class or interface in java.awt.print">PageFormat</A>&nbsp;printFormat,
    +                 int&nbsp;page)</PRE>
    +<DL>
    +<DD>Prints the specified page on the specified graphics using
    + <code>pageFormat</code> for the page format.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true#print(java.awt.Graphics, java.awt.print.PageFormat, int)" title="class or interface in java.awt.print">print</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true" title="class or interface in java.awt.print">Printable</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>g</CODE> - The graphics to paint the graph on.<DD><CODE>printFormat</CODE> - The page format to use for printing.<DD><CODE>page</CODE> - The page to print
    +<DT><B>Returns:</B><DD>Returns <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true#PAGE_EXISTS" title="class or interface in java.awt.print"><CODE>Printable.PAGE_EXISTS</CODE></A> or
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true#NO_SUCH_PAGE" title="class or interface in java.awt.print"><CODE>Printable.NO_SUCH_PAGE</CODE></A>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCanvas()"><!-- --></A><H3>
    +getCanvas</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A> <B>getCanvas</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTripleBuffer()"><!-- --></A><H3>
    +getTripleBuffer</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>getTripleBuffer</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createCanvas()"><!-- --></A><H3>
    +createCanvas</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A> <B>createCanvas</B>()</PRE>
    +<DL>
    +<DD>Hook for subclassers to replace the graphics canvas for rendering and and
    + printing. This must be overridden to return a custom canvas if there are
    + any custom shapes.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHandler(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createHandler</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A> <B>createHandler</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - Cell state for which a handler should be created.
    +<DT><B>Returns:</B><DD>Returns the handler to be used for the given cell state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createComponents(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +createComponents</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>[] <B>createComponents</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Hook for subclassers to create the array of heavyweights for the given
    + state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertComponent(com.mxgraph.view.mxCellState, java.awt.Component)"><!-- --></A><H3>
    +insertComponent</H3>
    +<PRE>
    +public void <B>insertComponent</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>&nbsp;c)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeComponent(java.awt.Component, java.lang.Object)"><!-- --></A><H3>
    +removeComponent</H3>
    +<PRE>
    +public void <B>removeComponent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>&nbsp;c,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateComponent(com.mxgraph.view.mxCellState, java.awt.Component)"><!-- --></A><H3>
    +updateComponent</H3>
    +<PRE>
    +public void <B>updateComponent</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>&nbsp;c)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateComponents()"><!-- --></A><H3>
    +updateComponents</H3>
    +<PRE>
    +public void <B>updateComponents</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeAllComponents(java.util.Hashtable)"><!-- --></A><H3>
    +removeAllComponents</H3>
    +<PRE>
    +public void <B>removeAllComponents</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>[]&gt;&nbsp;map)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeAllOverlays(java.util.Hashtable)"><!-- --></A><H3>
    +removeAllOverlays</H3>
    +<PRE>
    +public void <B>removeAllOverlays</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]&gt;&nbsp;map)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateComponents(java.lang.Object)"><!-- --></A><H3>
    +updateComponents</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>[]&gt; <B>updateComponents</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validateGraph()"><!-- --></A><H3>
    +validateGraph</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>validateGraph</B>()</PRE>
    +<DL>
    +<DD>Validates the graph by validating each descendant of the given cell or
    + the root of the model. Context is an object that contains the validation
    + state for the complete validation run. The validation errors are attached
    + to their cells using <setWarning>. This function returns true if no
    + validation errors exist in the graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validateGraph(java.lang.Object, java.util.Hashtable)"><!-- --></A><H3>
    +validateGraph</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>validateGraph</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;context)</PRE>
    +<DL>
    +<DD>Validates the graph by validating each descendant of the given cell or
    + the root of the model. Context is an object that contains the validation
    + state for the complete validation run. The validation errors are attached
    + to their cells using <setWarning>. This function returns true if no
    + validation errors exist in the graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell to start the validation recursion.<DD><CODE>context</CODE> - Object that represents the global validation state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)"><!-- --></A><H3>
    +addCellOverlay</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A> <B>addCellOverlay</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                     <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</PRE>
    +<DL>
    +<DD>Adds an overlay for the specified cell. This method fires an addoverlay
    + event and returns the new overlay.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell to add the overlay for.<DD><CODE>overlay</CODE> - Overlay to be added for the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellOverlays(java.lang.Object)"><!-- --></A><H3>
    +getCellOverlays</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[] <B>getCellOverlays</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the array of overlays for the given cell or null, if no overlays
    + are defined.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose overlays should be returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)"><!-- --></A><H3>
    +removeCellOverlay</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A> <B>removeCellOverlay</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                        <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</PRE>
    +<DL>
    +<DD>Removes and returns the given overlay from the given cell. This method
    + fires a remove overlay event. If no overlay is given, then all overlays
    + are removed using removeOverlays.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose overlay should be removed.<DD><CODE>overlay</CODE> - Optional overlay to be removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCellOverlays(java.lang.Object)"><!-- --></A><H3>
    +removeCellOverlays</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[] <B>removeCellOverlays</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Removes all overlays from the given cell. This method fires a
    + removeoverlay event for each removed overlay and returns the array of
    + overlays that was removed from the cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose overlays should be removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCellOverlayComponent(com.mxgraph.swing.util.mxICellOverlay, java.lang.Object)"><!-- --></A><H3>
    +removeCellOverlayComponent</H3>
    +<PRE>
    +protected void <B>removeCellOverlayComponent</B>(<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay,
    +                                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Notified when an overlay has been removed from the graph. This
    + implementation removes the given overlay from its parent if it is a
    + component inside a component hierarchy.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateCellOverlayComponent(com.mxgraph.view.mxCellState, com.mxgraph.swing.util.mxICellOverlay)"><!-- --></A><H3>
    +updateCellOverlayComponent</H3>
    +<PRE>
    +protected void <B>updateCellOverlayComponent</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                          <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</PRE>
    +<DL>
    +<DD>Notified when an overlay has been removed from the graph. This
    + implementation removes the given overlay from its parent if it is a
    + component inside a component hierarchy.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clearCellOverlays()"><!-- --></A><H3>
    +clearCellOverlays</H3>
    +<PRE>
    +public void <B>clearCellOverlays</B>()</PRE>
    +<DL>
    +<DD>Removes all overlays in the graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clearCellOverlays(java.lang.Object)"><!-- --></A><H3>
    +clearCellOverlays</H3>
    +<PRE>
    +public void <B>clearCellOverlays</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Removes all overlays in the graph for the given cell and all its
    + descendants. If no cell is specified then all overlays are removed from
    + the graph. This implementation uses removeOverlays to remove the overlays
    + from the individual cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Optional cell that represents the root of the subtree to
    +            remove the overlays from. Default is the root in the model.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellWarning(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +setCellWarning</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A> <B>setCellWarning</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning)</PRE>
    +<DL>
    +<DD>Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay. If the warning is null or a
    + zero length string, then all overlays are removed from the cell instead.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose warning should be set.<DD><CODE>warning</CODE> - String that represents the warning to be displayed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellWarning(java.lang.Object, java.lang.String, javax.swing.ImageIcon)"><!-- --></A><H3>
    +setCellWarning</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A> <B>setCellWarning</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</PRE>
    +<DL>
    +<DD>Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay. If the warning is null or a
    + zero length string, then all overlays are removed from the cell instead.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose warning should be set.<DD><CODE>warning</CODE> - String that represents the warning to be displayed.<DD><CODE>icon</CODE> - Optional image to be used for the overlay. Default is
    +            warningImageBasename.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellWarning(java.lang.Object, java.lang.String, javax.swing.ImageIcon, boolean)"><!-- --></A><H3>
    +setCellWarning</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A> <B>setCellWarning</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon,
    +                                     boolean&nbsp;select)</PRE>
    +<DL>
    +<DD>Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay. If the warning is null or a
    + zero length string, then all overlays are removed from the cell instead.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose warning should be set.<DD><CODE>warning</CODE> - String that represents the warning to be displayed.<DD><CODE>icon</CODE> - Optional image to be used for the overlay. Default is
    +            warningImageBasename.<DD><CODE>select</CODE> - Optional boolean indicating if a click on the overlay should
    +            select the corresponding cell. Default is false.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateCellOverlays(java.lang.Object)"><!-- --></A><H3>
    +updateCellOverlays</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]&gt; <B>updateCellOverlays</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns a hashtable with all entries from the overlays variable where a
    + cell still exists in the model. The entries are removed from the global
    + hashtable so that the remaining entries reflect those whose cell have
    + been removed from the model. If no state is available for a given cell
    + then its overlays are temporarly removed from the rendering control, but
    + kept in the result.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintBackground(java.awt.Graphics)"><!-- --></A><H3>
    +paintBackground</H3>
    +<PRE>
    +protected void <B>paintBackground</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintBackgroundPage(java.awt.Graphics)"><!-- --></A><H3>
    +paintBackgroundPage</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>paintBackgroundPage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintBackgroundImage(java.awt.Graphics)"><!-- --></A><H3>
    +paintBackgroundImage</H3>
    +<PRE>
    +protected void <B>paintBackgroundImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintGrid(java.awt.Graphics)"><!-- --></A><H3>
    +paintGrid</H3>
    +<PRE>
    +protected void <B>paintGrid</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD>Paints the grid onto the given graphics object.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="redraw(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +redraw</H3>
    +<PRE>
    +public void <B>redraw</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Updates the buffer (if one exists) and repaints the given cell state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="checkTripleBuffer()"><!-- --></A><H3>
    +checkTripleBuffer</H3>
    +<PRE>
    +public void <B>checkTripleBuffer</B>()</PRE>
    +<DL>
    +<DD>Checks if the triple buffer exists and creates a new one if it does not.
    + Also compares the size of the buffer with the size of the graph and drops
    + the buffer if it has a different size.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTripleBuffer(int, int)"><!-- --></A><H3>
    +createTripleBuffer</H3>
    +<PRE>
    +protected void <B>createTripleBuffer</B>(int&nbsp;width,
    +                                  int&nbsp;height)</PRE>
    +<DL>
    +<DD>Creates the tripleBufferGraphics and tripleBuffer for the given dimension
    + and draws the complete graph onto the triplebuffer.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>width</CODE> - <DD><CODE>height</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="destroyTripleBuffer()"><!-- --></A><H3>
    +destroyTripleBuffer</H3>
    +<PRE>
    +public void <B>destroyTripleBuffer</B>()</PRE>
    +<DL>
    +<DD>Destroys the tripleBuffer and tripleBufferGraphics objects.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="repaintTripleBuffer(java.awt.Rectangle)"><!-- --></A><H3>
    +repaintTripleBuffer</H3>
    +<PRE>
    +public void <B>repaintTripleBuffer</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;dirty)</PRE>
    +<DL>
    +<DD>Clears and repaints the triple buffer at the given rectangle or repaints
    + the complete buffer if no rectangle is specified.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dirty</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEventsEnabled()"><!-- --></A><H3>
    +isEventsEnabled</H3>
    +<PRE>
    +public boolean <B>isEventsEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if event dispatching is enabled in the event source.<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()"><CODE>mxEventSource.isEventsEnabled()</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEventsEnabled(boolean)"><!-- --></A><H3>
    +setEventsEnabled</H3>
    +<PRE>
    +public void <B>setEventsEnabled</B>(boolean&nbsp;eventsEnabled)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>eventsEnabled</CODE> - <DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)"><CODE>mxEventSource.setEventsEnabled(boolean)</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +addListener</H3>
    +<PRE>
    +public void <B>addListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +                        <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>eventName</CODE> - <DD><CODE>listener</CODE> - <DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><CODE>mxEventSource.addListener(java.lang.String,
    +      com.mxgraph.util.mxEventSource.mxIEventListener)</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>listener</CODE> - Listener instance.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>eventName</CODE> - Name of the event.<DD><CODE>listener</CODE> - Listener instance.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphComponent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphComponent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/mxGraphComponent.mxGraphControl.html b/java/docs/com/mxgraph/swing/mxGraphComponent.mxGraphControl.html
    new file mode 100644
    index 000000000..7174a56ad
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/mxGraphComponent.mxGraphControl.html
    @@ -0,0 +1,757 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:06 CEST 2012 -->
    +<TITLE>
    +mxGraphComponent.mxGraphControl (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphComponent.mxGraphControl (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphComponent.mxGraphControl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.mxGraphControl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JComponent">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing</FONT>
    +<BR>
    +Class mxGraphComponent.mxGraphControl</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">java.awt.Component</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">java.awt.Container</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">javax.swing.JComponent</A>
    +              <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.mxGraphComponent.mxGraphControl</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphComponent.mxGraphControl</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.swing.mxGraphComponent.mxGraphControl">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.AccessibleJComponent.html?is-external=true" title="class or interface in javax.swing">JComponent.AccessibleJComponent</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.AccessibleAWTContainer.html?is-external=true" title="class or interface in java.awt">Container.AccessibleAWTContainer</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.AccessibleAWTComponent.html?is-external=true" title="class or interface in java.awt">Component.AccessibleAWTComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BaselineResizeBehavior.html?is-external=true" title="class or interface in java.awt">Component.BaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BltBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.BltBufferStrategy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.FlipBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.FlipBufferStrategy</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#translate">translate</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies a translation for painting.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#accessibleContext" title="class or interface in javax.swing">accessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#listenerList" title="class or interface in javax.swing">listenerList</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#TOOL_TIP_TEXT_KEY" title="class or interface in javax.swing">TOOL_TIP_TEXT_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#ui" title="class or interface in javax.swing">ui</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#UNDEFINED_CONDITION" title="class or interface in javax.swing">UNDEFINED_CONDITION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT" title="class or interface in javax.swing">WHEN_ANCESTOR_OF_FOCUSED_COMPONENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_FOCUSED" title="class or interface in javax.swing">WHEN_FOCUSED</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_IN_FOCUSED_WINDOW" title="class or interface in javax.swing">WHEN_IN_FOCUSED_WINDOW</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#BOTTOM_ALIGNMENT" title="class or interface in java.awt">BOTTOM_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#CENTER_ALIGNMENT" title="class or interface in java.awt">CENTER_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#LEFT_ALIGNMENT" title="class or interface in java.awt">LEFT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#RIGHT_ALIGNMENT" title="class or interface in java.awt">RIGHT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#TOP_ALIGNMENT" title="class or interface in java.awt">TOP_ALIGNMENT</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.image.ImageObserver"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ABORT" title="class or interface in java.awt.image">ABORT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ALLBITS" title="class or interface in java.awt.image">ALLBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ERROR" title="class or interface in java.awt.image">ERROR</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#FRAMEBITS" title="class or interface in java.awt.image">FRAMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#HEIGHT" title="class or interface in java.awt.image">HEIGHT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#PROPERTIES" title="class or interface in java.awt.image">PROPERTIES</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#SOMEBITS" title="class or interface in java.awt.image">SOMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#WIDTH" title="class or interface in java.awt.image">WIDTH</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#mxGraphComponent.mxGraphControl()">mxGraphComponent.mxGraphControl</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState)">cellDrawn</A></B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#drawCell(com.mxgraph.canvas.mxICanvas, java.lang.Object)">drawCell</A></B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell onto the specified canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#drawChildren(java.lang.Object, boolean, boolean)">drawChildren</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +             boolean&nbsp;edges,
    +             boolean&nbsp;others)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the child edges and/or all other children in the given cell
    + depending on the boolean arguments.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#drawFromRootCell()">drawFromRootCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to draw the root cell into the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#drawGraph(java.awt.Graphics2D, boolean)">drawGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g,
    +          boolean&nbsp;drawLabels)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#extendComponent(java.awt.Rectangle)">extendComponent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements extension of the component in all directions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getExtendedCellBounds(com.mxgraph.view.mxCellState)">getExtendedCellBounds</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getGraphContainer()">getGraphContainer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getToolTipText(java.awt.event.MouseEvent)">getToolTipText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getTranslate()">getTranslate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the translate.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#hitClip(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hitClip</A></B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#isCellDisplayable(java.lang.Object)">isCellDisplayable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is not the current root or the root in
    + the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#paintComponent(java.awt.Graphics)">paintComponent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#scrollRectToVisible(java.awt.Rectangle, boolean)">scrollRectToVisible</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;aRect,
    +                    boolean&nbsp;extend)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overrides parent method to add extend flag for making the control
    + larger during previews.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#setTranslate(java.awt.Point)">setTranslate</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the translate.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#updatePreferredSize()">updatePreferredSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the preferred size for the given scale if the page size
    + should be preferred or the page is visible.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">addAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addNotify()" title="class or interface in javax.swing">addNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">addVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#computeVisibleRect(java.awt.Rectangle)" title="class or interface in javax.swing">computeVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#contains(int, int)" title="class or interface in javax.swing">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#createToolTip()" title="class or interface in javax.swing">createToolTip</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#disable()" title="class or interface in javax.swing">disable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#enable()" title="class or interface in javax.swing">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, boolean, boolean)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, char, char)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, int, int)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#fireVetoableChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">fireVetoableChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAccessibleContext()" title="class or interface in javax.swing">getAccessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getActionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionMap()" title="class or interface in javax.swing">getActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentX()" title="class or interface in javax.swing">getAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentY()" title="class or interface in javax.swing">getAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAncestorListeners()" title="class or interface in javax.swing">getAncestorListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAutoscrolls()" title="class or interface in javax.swing">getAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaseline(int, int)" title="class or interface in javax.swing">getBaseline</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaselineResizeBehavior()" title="class or interface in javax.swing">getBaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBorder()" title="class or interface in javax.swing">getBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBounds(java.awt.Rectangle)" title="class or interface in javax.swing">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getClientProperty(java.lang.Object)" title="class or interface in javax.swing">getClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentGraphics(java.awt.Graphics)" title="class or interface in javax.swing">getComponentGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentPopupMenu()" title="class or interface in javax.swing">getComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getConditionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getConditionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDebugGraphicsOptions()" title="class or interface in javax.swing">getDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDefaultLocale()" title="class or interface in javax.swing">getDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getFontMetrics(java.awt.Font)" title="class or interface in javax.swing">getFontMetrics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getGraphics()" title="class or interface in javax.swing">getGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getHeight()" title="class or interface in javax.swing">getHeight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInheritsPopupMenu()" title="class or interface in javax.swing">getInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap()" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap(int)" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputVerifier()" title="class or interface in javax.swing">getInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets()" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets(java.awt.Insets)" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getListeners(java.lang.Class)" title="class or interface in javax.swing">getListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getLocation(java.awt.Point)" title="class or interface in javax.swing">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMaximumSize()" title="class or interface in javax.swing">getMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMinimumSize()" title="class or interface in javax.swing">getMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getNextFocusableComponent()" title="class or interface in javax.swing">getNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPopupLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getPopupLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPreferredSize()" title="class or interface in javax.swing">getPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRegisteredKeyStrokes()" title="class or interface in javax.swing">getRegisteredKeyStrokes</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRootPane()" title="class or interface in javax.swing">getRootPane</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getSize(java.awt.Dimension)" title="class or interface in javax.swing">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText()" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTopLevelAncestor()" title="class or interface in javax.swing">getTopLevelAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTransferHandler()" title="class or interface in javax.swing">getTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getUIClassID()" title="class or interface in javax.swing">getUIClassID</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVerifyInputWhenFocusTarget()" title="class or interface in javax.swing">getVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVetoableChangeListeners()" title="class or interface in javax.swing">getVetoableChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVisibleRect()" title="class or interface in javax.swing">getVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getWidth()" title="class or interface in javax.swing">getWidth</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getX()" title="class or interface in javax.swing">getX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getY()" title="class or interface in javax.swing">getY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#grabFocus()" title="class or interface in javax.swing">grabFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isDoubleBuffered()" title="class or interface in javax.swing">isDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isLightweightComponent(java.awt.Component)" title="class or interface in javax.swing">isLightweightComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isManagingFocus()" title="class or interface in javax.swing">isManagingFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOpaque()" title="class or interface in javax.swing">isOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOptimizedDrawingEnabled()" title="class or interface in javax.swing">isOptimizedDrawingEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingForPrint()" title="class or interface in javax.swing">isPaintingForPrint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingTile()" title="class or interface in javax.swing">isPaintingTile</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isRequestFocusEnabled()" title="class or interface in javax.swing">isRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isValidateRoot()" title="class or interface in javax.swing">isValidateRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintBorder(java.awt.Graphics)" title="class or interface in javax.swing">paintBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintChildren(java.awt.Graphics)" title="class or interface in javax.swing">paintChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(int, int, int, int)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(java.awt.Rectangle)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paramString()" title="class or interface in javax.swing">paramString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#print(java.awt.Graphics)" title="class or interface in javax.swing">print</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printAll(java.awt.Graphics)" title="class or interface in javax.swing">printAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printBorder(java.awt.Graphics)" title="class or interface in javax.swing">printBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printChildren(java.awt.Graphics)" title="class or interface in javax.swing">printChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printComponent(java.awt.Graphics)" title="class or interface in javax.swing">printComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processComponentKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processComponentKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyBinding(javax.swing.KeyStroke, java.awt.event.KeyEvent, int, boolean)" title="class or interface in javax.swing">processKeyBinding</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseMotionEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseMotionEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#putClientProperty(java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">putClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">removeAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeNotify()" title="class or interface in javax.swing">removeNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">removeVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(long, int, int, int, int)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(java.awt.Rectangle)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestDefaultFocus()" title="class or interface in javax.swing">requestDefaultFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus()" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus(boolean)" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow()" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow(boolean)" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#resetKeyboardActions()" title="class or interface in javax.swing">resetKeyboardActions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#reshape(int, int, int, int)" title="class or interface in javax.swing">reshape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#revalidate()" title="class or interface in javax.swing">revalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#scrollRectToVisible(java.awt.Rectangle)" title="class or interface in javax.swing">scrollRectToVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setActionMap(javax.swing.ActionMap)" title="class or interface in javax.swing">setActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentX(float)" title="class or interface in javax.swing">setAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentY(float)" title="class or interface in javax.swing">setAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAutoscrolls(boolean)" title="class or interface in javax.swing">setAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBackground(java.awt.Color)" title="class or interface in javax.swing">setBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBorder(javax.swing.border.Border)" title="class or interface in javax.swing">setBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setComponentPopupMenu(javax.swing.JPopupMenu)" title="class or interface in javax.swing">setComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDebugGraphicsOptions(int)" title="class or interface in javax.swing">setDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDefaultLocale(java.util.Locale)" title="class or interface in javax.swing">setDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDoubleBuffered(boolean)" title="class or interface in javax.swing">setDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFocusTraversalKeys(int, java.util.Set)" title="class or interface in javax.swing">setFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFont(java.awt.Font)" title="class or interface in javax.swing">setFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setForeground(java.awt.Color)" title="class or interface in javax.swing">setForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInheritsPopupMenu(boolean)" title="class or interface in javax.swing">setInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputMap(int, javax.swing.InputMap)" title="class or interface in javax.swing">setInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputVerifier(javax.swing.InputVerifier)" title="class or interface in javax.swing">setInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMaximumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMinimumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setNextFocusableComponent(java.awt.Component)" title="class or interface in javax.swing">setNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setOpaque(boolean)" title="class or interface in javax.swing">setOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setPreferredSize(java.awt.Dimension)" title="class or interface in javax.swing">setPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setRequestFocusEnabled(boolean)" title="class or interface in javax.swing">setRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setToolTipText(java.lang.String)" title="class or interface in javax.swing">setToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setTransferHandler(javax.swing.TransferHandler)" title="class or interface in javax.swing">setTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setUI(javax.swing.plaf.ComponentUI)" title="class or interface in javax.swing">setUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVerifyInputWhenFocusTarget(boolean)" title="class or interface in javax.swing">setVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVisible(boolean)" title="class or interface in javax.swing">setVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#unregisterKeyboardAction(javax.swing.KeyStroke)" title="class or interface in javax.swing">unregisterKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#update(java.awt.Graphics)" title="class or interface in javax.swing">update</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#updateUI()" title="class or interface in javax.swing">updateUI</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.lang.String, java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">addContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addImpl(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">addImpl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#applyComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">applyComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#areFocusTraversalKeysSet(int)" title="class or interface in java.awt">areFocusTraversalKeysSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#countComponents()" title="class or interface in java.awt">countComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#deliverEvent(java.awt.Event)" title="class or interface in java.awt">deliverEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#doLayout()" title="class or interface in java.awt">doLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(int, int)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(java.awt.Point)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponent(int)" title="class or interface in java.awt">getComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(int, int)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(java.awt.Point)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentCount()" title="class or interface in java.awt">getComponentCount</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponents()" title="class or interface in java.awt">getComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentZOrder(java.awt.Component)" title="class or interface in java.awt">getComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getContainerListeners()" title="class or interface in java.awt">getContainerListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalKeys(int)" title="class or interface in java.awt">getFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalPolicy()" title="class or interface in java.awt">getFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getLayout()" title="class or interface in java.awt">getLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getMousePosition(boolean)" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#insets()" title="class or interface in java.awt">insets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#invalidate()" title="class or interface in java.awt">invalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isAncestorOf(java.awt.Component)" title="class or interface in java.awt">isAncestorOf</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot()" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot(java.awt.Container)" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicyProvider()" title="class or interface in java.awt">isFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicySet()" title="class or interface in java.awt">isFocusTraversalPolicySet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#layout()" title="class or interface in java.awt">layout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintStream, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintWriter, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#locate(int, int)" title="class or interface in java.awt">locate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#minimumSize()" title="class or interface in java.awt">minimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#paintComponents(java.awt.Graphics)" title="class or interface in java.awt">paintComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#preferredSize()" title="class or interface in java.awt">preferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#printComponents(java.awt.Graphics)" title="class or interface in java.awt">printComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processContainerEvent(java.awt.event.ContainerEvent)" title="class or interface in java.awt">processContainerEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processEvent(java.awt.AWTEvent)" title="class or interface in java.awt">processEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(java.awt.Component)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(int)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeAll()" title="class or interface in java.awt">removeAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">removeContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setComponentZOrder(java.awt.Component, int)" title="class or interface in java.awt">setComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusCycleRoot(boolean)" title="class or interface in java.awt">setFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)" title="class or interface in java.awt">setFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicyProvider(boolean)" title="class or interface in java.awt">setFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setLayout(java.awt.LayoutManager)" title="class or interface in java.awt">setLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusBackward()" title="class or interface in java.awt">transferFocusBackward</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusDownCycle()" title="class or interface in java.awt">transferFocusDownCycle</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validate()" title="class or interface in java.awt">validate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validateTree()" title="class or interface in java.awt">validateTree</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#action(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">action</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#add(java.awt.PopupMenu)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">addComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">addFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">addHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">addHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">addInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">addKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">addMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">addMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">addMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#bounds()" title="class or interface in java.awt">bounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#coalesceEvents(java.awt.AWTEvent, java.awt.AWTEvent)" title="class or interface in java.awt">coalesceEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#contains(java.awt.Point)" title="class or interface in java.awt">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(java.awt.image.ImageProducer)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(int, int)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int, java.awt.ImageCapabilities)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#disableEvents(long)" title="class or interface in java.awt">disableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#dispatchEvent(java.awt.AWTEvent)" title="class or interface in java.awt">dispatchEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enable(boolean)" title="class or interface in java.awt">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableEvents(long)" title="class or interface in java.awt">enableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableInputMethods(boolean)" title="class or interface in java.awt">enableInputMethods</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, byte, byte)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, double, double)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, float, float)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, long, long)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, short, short)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBackground()" title="class or interface in java.awt">getBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBounds()" title="class or interface in java.awt">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getColorModel()" title="class or interface in java.awt">getColorModel</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentListeners()" title="class or interface in java.awt">getComponentListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentOrientation()" title="class or interface in java.awt">getComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getCursor()" title="class or interface in java.awt">getCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getDropTarget()" title="class or interface in java.awt">getDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusCycleRootAncestor()" title="class or interface in java.awt">getFocusCycleRootAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusListeners()" title="class or interface in java.awt">getFocusListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusTraversalKeysEnabled()" title="class or interface in java.awt">getFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFont()" title="class or interface in java.awt">getFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getForeground()" title="class or interface in java.awt">getForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getGraphicsConfiguration()" title="class or interface in java.awt">getGraphicsConfiguration</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyBoundsListeners()" title="class or interface in java.awt">getHierarchyBoundsListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyListeners()" title="class or interface in java.awt">getHierarchyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getIgnoreRepaint()" title="class or interface in java.awt">getIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputContext()" title="class or interface in java.awt">getInputContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodListeners()" title="class or interface in java.awt">getInputMethodListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodRequests()" title="class or interface in java.awt">getInputMethodRequests</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getKeyListeners()" title="class or interface in java.awt">getKeyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocale()" title="class or interface in java.awt">getLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocation()" title="class or interface in java.awt">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocationOnScreen()" title="class or interface in java.awt">getLocationOnScreen</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseListeners()" title="class or interface in java.awt">getMouseListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseMotionListeners()" title="class or interface in java.awt">getMouseMotionListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMousePosition()" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseWheelListeners()" title="class or interface in java.awt">getMouseWheelListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getName()" title="class or interface in java.awt">getName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getParent()" title="class or interface in java.awt">getParent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPeer()" title="class or interface in java.awt">getPeer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners()" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners(java.lang.String)" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getSize()" title="class or interface in java.awt">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getToolkit()" title="class or interface in java.awt">getToolkit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getTreeLock()" title="class or interface in java.awt">getTreeLock</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#gotFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">gotFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#handleEvent(java.awt.Event)" title="class or interface in java.awt">handleEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hasFocus()" title="class or interface in java.awt">hasFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hide()" title="class or interface in java.awt">hide</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#imageUpdate(java.awt.Image, int, int, int, int, int)" title="class or interface in java.awt">imageUpdate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#inside(int, int)" title="class or interface in java.awt">inside</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isBackgroundSet()" title="class or interface in java.awt">isBackgroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isCursorSet()" title="class or interface in java.awt">isCursorSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isDisplayable()" title="class or interface in java.awt">isDisplayable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isEnabled()" title="class or interface in java.awt">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusable()" title="class or interface in java.awt">isFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusOwner()" title="class or interface in java.awt">isFocusOwner</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusTraversable()" title="class or interface in java.awt">isFocusTraversable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFontSet()" title="class or interface in java.awt">isFontSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isForegroundSet()" title="class or interface in java.awt">isForegroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isLightweight()" title="class or interface in java.awt">isLightweight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMaximumSizeSet()" title="class or interface in java.awt">isMaximumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMinimumSizeSet()" title="class or interface in java.awt">isMinimumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isPreferredSizeSet()" title="class or interface in java.awt">isPreferredSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isShowing()" title="class or interface in java.awt">isShowing</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isValid()" title="class or interface in java.awt">isValid</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isVisible()" title="class or interface in java.awt">isVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyDown(java.awt.Event, int)" title="class or interface in java.awt">keyDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyUp(java.awt.Event, int)" title="class or interface in java.awt">keyUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list()" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintStream)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintWriter)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#location()" title="class or interface in java.awt">location</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#lostFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">lostFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDown(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDrag(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDrag</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseEnter(java.awt.Event, int, int)" title="class or interface in java.awt">mouseEnter</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseExit(java.awt.Event, int, int)" title="class or interface in java.awt">mouseExit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseMove(java.awt.Event, int, int)" title="class or interface in java.awt">mouseMove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseUp(java.awt.Event, int, int)" title="class or interface in java.awt">mouseUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#move(int, int)" title="class or interface in java.awt">move</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#nextFocus()" title="class or interface in java.awt">nextFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#paintAll(java.awt.Graphics)" title="class or interface in java.awt">paintAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#postEvent(java.awt.Event)" title="class or interface in java.awt">postEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processComponentEvent(java.awt.event.ComponentEvent)" title="class or interface in java.awt">processComponentEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processFocusEvent(java.awt.event.FocusEvent)" title="class or interface in java.awt">processFocusEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyBoundsEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyBoundsEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processInputMethodEvent(java.awt.event.InputMethodEvent)" title="class or interface in java.awt">processInputMethodEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processMouseWheelEvent(java.awt.event.MouseWheelEvent)" title="class or interface in java.awt">processMouseWheelEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#remove(java.awt.MenuComponent)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">removeComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">removeFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">removeHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">removeHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">removeInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">removeKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">removeMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">removeMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">removeMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint()" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(int, int, int, int)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(long)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(java.awt.Dimension)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(int, int)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(int, int, int, int)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(java.awt.Rectangle)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">setComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setCursor(java.awt.Cursor)" title="class or interface in java.awt">setCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setDropTarget(java.awt.dnd.DropTarget)" title="class or interface in java.awt">setDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusable(boolean)" title="class or interface in java.awt">setFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusTraversalKeysEnabled(boolean)" title="class or interface in java.awt">setFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setIgnoreRepaint(boolean)" title="class or interface in java.awt">setIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocale(java.util.Locale)" title="class or interface in java.awt">setLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(int, int)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(java.awt.Point)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setName(java.lang.String)" title="class or interface in java.awt">setName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(java.awt.Dimension)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(int, int)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show()" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show(boolean)" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#size()" title="class or interface in java.awt">size</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#toString()" title="class or interface in java.awt">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocus()" title="class or interface in java.awt">transferFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocusUpCycle()" title="class or interface in java.awt">transferFocusUpCycle</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="translate"><!-- --></A><H3>
    +translate</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>translate</B></PRE>
    +<DL>
    +<DD>Specifies a translation for painting. This should only be used during
    + mouse drags and must be reset after any interactive repaints. Default
    + is (0,0). This should not be null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphComponent.mxGraphControl()"><!-- --></A><H3>
    +mxGraphComponent.mxGraphControl</H3>
    +<PRE>
    +public <B>mxGraphComponent.mxGraphControl</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getTranslate()"><!-- --></A><H3>
    +getTranslate</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>getTranslate</B>()</PRE>
    +<DL>
    +<DD>Returns the translate.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTranslate(java.awt.Point)"><!-- --></A><H3>
    +setTranslate</H3>
    +<PRE>
    +public void <B>setTranslate</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the translate.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphContainer()"><!-- --></A><H3>
    +getGraphContainer</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>getGraphContainer</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="scrollRectToVisible(java.awt.Rectangle, boolean)"><!-- --></A><H3>
    +scrollRectToVisible</H3>
    +<PRE>
    +public void <B>scrollRectToVisible</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;aRect,
    +                                boolean&nbsp;extend)</PRE>
    +<DL>
    +<DD>Overrides parent method to add extend flag for making the control
    + larger during previews.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="extendComponent(java.awt.Rectangle)"><!-- --></A><H3>
    +extendComponent</H3>
    +<PRE>
    +protected void <B>extendComponent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Implements extension of the component in all directions. For
    + extension below the origin (into negative space) the translate will
    + temporaly be used and reset with the next mouse released event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getToolTipText(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +getToolTipText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getToolTipText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipText</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updatePreferredSize()"><!-- --></A><H3>
    +updatePreferredSize</H3>
    +<PRE>
    +public void <B>updatePreferredSize</B>()</PRE>
    +<DL>
    +<DD>Updates the preferred size for the given scale if the page size
    + should be preferred or the page is visible.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paint(java.awt.Graphics)" title="class or interface in javax.swing">paint</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintComponent(java.awt.Graphics)"><!-- --></A><H3>
    +paintComponent</H3>
    +<PRE>
    +public void <B>paintComponent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintComponent(java.awt.Graphics)" title="class or interface in javax.swing">paintComponent</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawGraph(java.awt.Graphics2D, boolean)"><!-- --></A><H3>
    +drawGraph</H3>
    +<PRE>
    +public void <B>drawGraph</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g,
    +                      boolean&nbsp;drawLabels)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawFromRootCell()"><!-- --></A><H3>
    +drawFromRootCell</H3>
    +<PRE>
    +protected void <B>drawFromRootCell</B>()</PRE>
    +<DL>
    +<DD>Hook to draw the root cell into the canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hitClip(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +hitClip</H3>
    +<PRE>
    +protected boolean <B>hitClip</B>(<A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getExtendedCellBounds(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getExtendedCellBounds</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getExtendedCellBounds</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - the cached state of the cell whose extended bounds are to be calculated
    +<DT><B>Returns:</B><DD>the bounds of the cell, including the label and shadow and allowing for rotation</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawCell(com.mxgraph.canvas.mxICanvas, java.lang.Object)"><!-- --></A><H3>
    +drawCell</H3>
    +<PRE>
    +public void <B>drawCell</B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Draws the given cell onto the specified canvas. This is a modified
    + version of mxGraph.drawCell which paints the label only if the
    + corresponding cell is not being edited and invokes the cellDrawn hook
    + after all descendants have been painted.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>canvas</CODE> - Canvas onto which the cell should be drawn.<DD><CODE>cell</CODE> - Cell that should be drawn onto the canvas.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawChildren(java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +drawChildren</H3>
    +<PRE>
    +protected void <B>drawChildren</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                            boolean&nbsp;edges,
    +                            boolean&nbsp;others)</PRE>
    +<DL>
    +<DD>Draws the child edges and/or all other children in the given cell
    + depending on the boolean arguments.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +cellDrawn</H3>
    +<PRE>
    +protected void <B>cellDrawn</B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellDisplayable(java.lang.Object)"><!-- --></A><H3>
    +isCellDisplayable</H3>
    +<PRE>
    +protected boolean <B>isCellDisplayable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is not the current root or the root in
    + the model. This can be overridden to not render certain cells in the
    + graph display.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphComponent.mxGraphControl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.mxGraphControl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JComponent">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html b/java/docs/com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html
    new file mode 100644
    index 000000000..89eb244d8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html
    @@ -0,0 +1,430 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:08 CEST 2012 -->
    +<TITLE>
    +mxGraphComponent.mxMouseRedirector (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphComponent.mxMouseRedirector (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphComponent.mxMouseRedirector.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.mxMouseRedirector.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing</FONT>
    +<BR>
    +Class mxGraphComponent.mxMouseRedirector</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.mxGraphComponent.mxMouseRedirector</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphComponent.mxMouseRedirector</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mxGraphComponent.mxMouseRedirector(com.mxgraph.swing.mxGraphComponent)">mxGraphComponent.mxMouseRedirector</A></B>(<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphComponent.mxMouseRedirector(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxGraphComponent.mxMouseRedirector</H3>
    +<PRE>
    +public <B>mxGraphComponent.mxMouseRedirector</B>(<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mouseClicked(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseClicked</H3>
    +<PRE>
    +public void <B>mouseClicked</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseClicked(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseClicked</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseEntered(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseEntered</H3>
    +<PRE>
    +public void <B>mouseEntered</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseEntered(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseEntered</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseExited(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseExited</H3>
    +<PRE>
    +public void <B>mouseExited</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseExited(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseExited</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseMoved(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseMoved</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphComponent.mxMouseRedirector.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphComponent.mxMouseRedirector.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/mxGraphOutline.MouseTracker.html b/java/docs/com/mxgraph/swing/mxGraphOutline.MouseTracker.html
    new file mode 100644
    index 000000000..b5043d37d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/mxGraphOutline.MouseTracker.html
    @@ -0,0 +1,454 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:08 CEST 2012 -->
    +<TITLE>
    +mxGraphOutline.MouseTracker (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphOutline.MouseTracker (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphOutline.MouseTracker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphOutline.MouseTracker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphOutline.MouseTracker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing</FONT>
    +<BR>
    +Class mxGraphOutline.MouseTracker</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.mxGraphOutline.MouseTracker</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphOutline.MouseTracker</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#start">start</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mxGraphOutline.MouseTracker()">mxGraphOutline.MouseTracker</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#hitZoomHandle(int, int)">hitZoomHandle</A></B>(int&nbsp;x,
    +              int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="start"><!-- --></A><H3>
    +start</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>start</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphOutline.MouseTracker()"><!-- --></A><H3>
    +mxGraphOutline.MouseTracker</H3>
    +<PRE>
    +public <B>mxGraphOutline.MouseTracker</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hitZoomHandle(int, int)"><!-- --></A><H3>
    +hitZoomHandle</H3>
    +<PRE>
    +public boolean <B>hitZoomHandle</B>(int&nbsp;x,
    +                             int&nbsp;y)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseMoved(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseMoved</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseClicked(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseClicked</H3>
    +<PRE>
    +public void <B>mouseClicked</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseClicked(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseClicked</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseEntered(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseEntered</H3>
    +<PRE>
    +public void <B>mouseEntered</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseEntered(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseEntered</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseExited(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseExited</H3>
    +<PRE>
    +public void <B>mouseExited</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseExited(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseExited</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphOutline.MouseTracker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphOutline.MouseTracker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphOutline.MouseTracker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/mxGraphOutline.html b/java/docs/com/mxgraph/swing/mxGraphOutline.html
    new file mode 100644
    index 000000000..7c8f20782
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/mxGraphOutline.html
    @@ -0,0 +1,1298 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:08 CEST 2012 -->
    +<TITLE>
    +mxGraphOutline (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphOutline (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphOutline.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphOutline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphOutline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing</FONT>
    +<BR>
    +Class mxGraphOutline</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">java.awt.Component</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">java.awt.Container</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">javax.swing.JComponent</A>
    +              <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.mxGraphOutline</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphOutline</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></DL>
    +</PRE>
    +
    +<P>
    +An outline view for a specific graph component.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.swing.mxGraphOutline">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.AccessibleJComponent.html?is-external=true" title="class or interface in javax.swing">JComponent.AccessibleJComponent</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.AccessibleAWTContainer.html?is-external=true" title="class or interface in java.awt">Container.AccessibleAWTContainer</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.AccessibleAWTComponent.html?is-external=true" title="class or interface in java.awt">Component.AccessibleAWTComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BaselineResizeBehavior.html?is-external=true" title="class or interface in java.awt">Component.BaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BltBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.BltBufferStrategy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.FlipBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.FlipBufferStrategy</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/AdjustmentListener.html?is-external=true" title="class or interface in java.awt.event">AdjustmentListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#adjustmentHandler">adjustmentHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#antiAlias">antiAlias</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ComponentListener.html?is-external=true" title="class or interface in java.awt.event">ComponentListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#componentHandler">componentHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#DEFAULT_ZOOMHANDLE_FILL">DEFAULT_ZOOMHANDLE_FILL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#drawLabels">drawLabels</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#finderBounds">finderBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#finderVisible">finderVisible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#fitPage">fitPage</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the outline should be zoomed to the page if the graph
    + component is in page layout mode.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#outlineBorder">outlineBorder</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Not yet implemented.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#repaintBuffer">repaintBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the triple buffer needs a full repaint.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#repaintClip">repaintClip</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clip of the triple buffer to be repainted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#repaintHandler">repaintHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#scale">scale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#tracker">tracker</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#translate">translate</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#tripleBuffer">tripleBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO: Not yet implemented.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#tripleBuffered">tripleBuffered</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#tripleBufferGraphics">tripleBufferGraphics</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the graphics of the triple buffer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#useScaledInstance">useScaledInstance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#zoomGesture">zoomGesture</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#zoomHandleLocation">zoomHandleLocation</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#zoomHandleVisible">zoomHandleVisible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#accessibleContext" title="class or interface in javax.swing">accessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#listenerList" title="class or interface in javax.swing">listenerList</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#TOOL_TIP_TEXT_KEY" title="class or interface in javax.swing">TOOL_TIP_TEXT_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#ui" title="class or interface in javax.swing">ui</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#UNDEFINED_CONDITION" title="class or interface in javax.swing">UNDEFINED_CONDITION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT" title="class or interface in javax.swing">WHEN_ANCESTOR_OF_FOCUSED_COMPONENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_FOCUSED" title="class or interface in javax.swing">WHEN_FOCUSED</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_IN_FOCUSED_WINDOW" title="class or interface in javax.swing">WHEN_IN_FOCUSED_WINDOW</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#BOTTOM_ALIGNMENT" title="class or interface in java.awt">BOTTOM_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#CENTER_ALIGNMENT" title="class or interface in java.awt">CENTER_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#LEFT_ALIGNMENT" title="class or interface in java.awt">LEFT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#RIGHT_ALIGNMENT" title="class or interface in java.awt">RIGHT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#TOP_ALIGNMENT" title="class or interface in java.awt">TOP_ALIGNMENT</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.image.ImageObserver"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ABORT" title="class or interface in java.awt.image">ABORT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ALLBITS" title="class or interface in java.awt.image">ALLBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ERROR" title="class or interface in java.awt.image">ERROR</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#FRAMEBITS" title="class or interface in java.awt.image">FRAMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#HEIGHT" title="class or interface in java.awt.image">HEIGHT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#PROPERTIES" title="class or interface in java.awt.image">PROPERTIES</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#SOMEBITS" title="class or interface in java.awt.image">SOMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#WIDTH" title="class or interface in java.awt.image">WIDTH</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#mxGraphOutline(com.mxgraph.swing.mxGraphComponent)">mxGraphOutline</A></B>(<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#checkTripleBuffer()">checkTripleBuffer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the triple buffer exists and creates a new one if
    + it does not.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#createTripleBuffer(int, int)">createTripleBuffer</A></B>(int&nbsp;width,
    +                   int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the tripleBufferGraphics and tripleBuffer for the given
    + dimension and draws the complete graph onto the triplebuffer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#destroyTripleBuffer()">destroyTripleBuffer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destroys the tripleBuffer and tripleBufferGraphics objects.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#getGraphComponent()">getGraphComponent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#isAntiAlias()">isAntiAlias</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#isDrawLabels()">isDrawLabels</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#isFitPage()">isFitPage</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#isTripleBuffered()">isTripleBuffered</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#paintBackground(java.awt.Graphics)">paintBackground</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the background.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#paintComponent(java.awt.Graphics)">paintComponent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#paintForeground(java.awt.Graphics)">paintForeground</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the foreground.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#paintGraph(java.awt.Graphics)">paintGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the graph outline.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#repaintTripleBuffer(java.awt.Rectangle)">repaintTripleBuffer</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears and repaints the triple buffer at the given rectangle or repaints
    + the complete buffer if no rectangle is specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#setAntiAlias(boolean)">setAntiAlias</A></B>(boolean&nbsp;antiAlias)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>antiAlias</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#setDrawLabels(boolean)">setDrawLabels</A></B>(boolean&nbsp;drawLabels)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>drawLabels</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#setFinderVisible(boolean)">setFinderVisible</A></B>(boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#setFitPage(boolean)">setFitPage</A></B>(boolean&nbsp;fitPage)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>fitPage</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#setGraphComponent(com.mxgraph.swing.mxGraphComponent)">setGraphComponent</A></B>(<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>graphComponent</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#setTripleBuffered(boolean)">setTripleBuffered</A></B>(boolean&nbsp;tripleBuffered)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a property change event for <code>tripleBuffered</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#setVisible(boolean)">setVisible</A></B>(boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#setZoomHandleVisible(boolean)">setZoomHandleVisible</A></B>(boolean&nbsp;visible)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#updateFinder(boolean)">updateFinder</A></B>(boolean&nbsp;repaint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#updateFinderBounds(java.awt.Rectangle, boolean)">updateFinderBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds,
    +                   boolean&nbsp;repaint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html#updateScaleAndTranslate()">updateScaleAndTranslate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the scale or translate has changed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">addAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addNotify()" title="class or interface in javax.swing">addNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">addVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#computeVisibleRect(java.awt.Rectangle)" title="class or interface in javax.swing">computeVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#contains(int, int)" title="class or interface in javax.swing">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#createToolTip()" title="class or interface in javax.swing">createToolTip</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#disable()" title="class or interface in javax.swing">disable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#enable()" title="class or interface in javax.swing">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, boolean, boolean)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, char, char)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, int, int)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#fireVetoableChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">fireVetoableChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAccessibleContext()" title="class or interface in javax.swing">getAccessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getActionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionMap()" title="class or interface in javax.swing">getActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentX()" title="class or interface in javax.swing">getAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentY()" title="class or interface in javax.swing">getAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAncestorListeners()" title="class or interface in javax.swing">getAncestorListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAutoscrolls()" title="class or interface in javax.swing">getAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaseline(int, int)" title="class or interface in javax.swing">getBaseline</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaselineResizeBehavior()" title="class or interface in javax.swing">getBaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBorder()" title="class or interface in javax.swing">getBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBounds(java.awt.Rectangle)" title="class or interface in javax.swing">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getClientProperty(java.lang.Object)" title="class or interface in javax.swing">getClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentGraphics(java.awt.Graphics)" title="class or interface in javax.swing">getComponentGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentPopupMenu()" title="class or interface in javax.swing">getComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getConditionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getConditionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDebugGraphicsOptions()" title="class or interface in javax.swing">getDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDefaultLocale()" title="class or interface in javax.swing">getDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getFontMetrics(java.awt.Font)" title="class or interface in javax.swing">getFontMetrics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getGraphics()" title="class or interface in javax.swing">getGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getHeight()" title="class or interface in javax.swing">getHeight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInheritsPopupMenu()" title="class or interface in javax.swing">getInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap()" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap(int)" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputVerifier()" title="class or interface in javax.swing">getInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets()" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets(java.awt.Insets)" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getListeners(java.lang.Class)" title="class or interface in javax.swing">getListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getLocation(java.awt.Point)" title="class or interface in javax.swing">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMaximumSize()" title="class or interface in javax.swing">getMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMinimumSize()" title="class or interface in javax.swing">getMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getNextFocusableComponent()" title="class or interface in javax.swing">getNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPopupLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getPopupLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPreferredSize()" title="class or interface in javax.swing">getPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRegisteredKeyStrokes()" title="class or interface in javax.swing">getRegisteredKeyStrokes</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRootPane()" title="class or interface in javax.swing">getRootPane</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getSize(java.awt.Dimension)" title="class or interface in javax.swing">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText()" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTopLevelAncestor()" title="class or interface in javax.swing">getTopLevelAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTransferHandler()" title="class or interface in javax.swing">getTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getUIClassID()" title="class or interface in javax.swing">getUIClassID</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVerifyInputWhenFocusTarget()" title="class or interface in javax.swing">getVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVetoableChangeListeners()" title="class or interface in javax.swing">getVetoableChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVisibleRect()" title="class or interface in javax.swing">getVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getWidth()" title="class or interface in javax.swing">getWidth</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getX()" title="class or interface in javax.swing">getX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getY()" title="class or interface in javax.swing">getY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#grabFocus()" title="class or interface in javax.swing">grabFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isDoubleBuffered()" title="class or interface in javax.swing">isDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isLightweightComponent(java.awt.Component)" title="class or interface in javax.swing">isLightweightComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isManagingFocus()" title="class or interface in javax.swing">isManagingFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOpaque()" title="class or interface in javax.swing">isOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOptimizedDrawingEnabled()" title="class or interface in javax.swing">isOptimizedDrawingEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingForPrint()" title="class or interface in javax.swing">isPaintingForPrint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingTile()" title="class or interface in javax.swing">isPaintingTile</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isRequestFocusEnabled()" title="class or interface in javax.swing">isRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isValidateRoot()" title="class or interface in javax.swing">isValidateRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paint(java.awt.Graphics)" title="class or interface in javax.swing">paint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintBorder(java.awt.Graphics)" title="class or interface in javax.swing">paintBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintChildren(java.awt.Graphics)" title="class or interface in javax.swing">paintChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(int, int, int, int)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(java.awt.Rectangle)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paramString()" title="class or interface in javax.swing">paramString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#print(java.awt.Graphics)" title="class or interface in javax.swing">print</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printAll(java.awt.Graphics)" title="class or interface in javax.swing">printAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printBorder(java.awt.Graphics)" title="class or interface in javax.swing">printBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printChildren(java.awt.Graphics)" title="class or interface in javax.swing">printChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printComponent(java.awt.Graphics)" title="class or interface in javax.swing">printComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processComponentKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processComponentKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyBinding(javax.swing.KeyStroke, java.awt.event.KeyEvent, int, boolean)" title="class or interface in javax.swing">processKeyBinding</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseMotionEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseMotionEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#putClientProperty(java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">putClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">removeAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeNotify()" title="class or interface in javax.swing">removeNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">removeVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(long, int, int, int, int)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(java.awt.Rectangle)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestDefaultFocus()" title="class or interface in javax.swing">requestDefaultFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus()" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus(boolean)" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow()" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow(boolean)" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#resetKeyboardActions()" title="class or interface in javax.swing">resetKeyboardActions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#reshape(int, int, int, int)" title="class or interface in javax.swing">reshape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#revalidate()" title="class or interface in javax.swing">revalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#scrollRectToVisible(java.awt.Rectangle)" title="class or interface in javax.swing">scrollRectToVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setActionMap(javax.swing.ActionMap)" title="class or interface in javax.swing">setActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentX(float)" title="class or interface in javax.swing">setAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentY(float)" title="class or interface in javax.swing">setAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAutoscrolls(boolean)" title="class or interface in javax.swing">setAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBackground(java.awt.Color)" title="class or interface in javax.swing">setBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBorder(javax.swing.border.Border)" title="class or interface in javax.swing">setBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setComponentPopupMenu(javax.swing.JPopupMenu)" title="class or interface in javax.swing">setComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDebugGraphicsOptions(int)" title="class or interface in javax.swing">setDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDefaultLocale(java.util.Locale)" title="class or interface in javax.swing">setDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDoubleBuffered(boolean)" title="class or interface in javax.swing">setDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFocusTraversalKeys(int, java.util.Set)" title="class or interface in javax.swing">setFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFont(java.awt.Font)" title="class or interface in javax.swing">setFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setForeground(java.awt.Color)" title="class or interface in javax.swing">setForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInheritsPopupMenu(boolean)" title="class or interface in javax.swing">setInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputMap(int, javax.swing.InputMap)" title="class or interface in javax.swing">setInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputVerifier(javax.swing.InputVerifier)" title="class or interface in javax.swing">setInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMaximumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMinimumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setNextFocusableComponent(java.awt.Component)" title="class or interface in javax.swing">setNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setOpaque(boolean)" title="class or interface in javax.swing">setOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setPreferredSize(java.awt.Dimension)" title="class or interface in javax.swing">setPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setRequestFocusEnabled(boolean)" title="class or interface in javax.swing">setRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setToolTipText(java.lang.String)" title="class or interface in javax.swing">setToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setTransferHandler(javax.swing.TransferHandler)" title="class or interface in javax.swing">setTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setUI(javax.swing.plaf.ComponentUI)" title="class or interface in javax.swing">setUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVerifyInputWhenFocusTarget(boolean)" title="class or interface in javax.swing">setVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#unregisterKeyboardAction(javax.swing.KeyStroke)" title="class or interface in javax.swing">unregisterKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#update(java.awt.Graphics)" title="class or interface in javax.swing">update</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#updateUI()" title="class or interface in javax.swing">updateUI</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.lang.String, java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">addContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addImpl(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">addImpl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#applyComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">applyComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#areFocusTraversalKeysSet(int)" title="class or interface in java.awt">areFocusTraversalKeysSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#countComponents()" title="class or interface in java.awt">countComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#deliverEvent(java.awt.Event)" title="class or interface in java.awt">deliverEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#doLayout()" title="class or interface in java.awt">doLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(int, int)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(java.awt.Point)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponent(int)" title="class or interface in java.awt">getComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(int, int)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(java.awt.Point)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentCount()" title="class or interface in java.awt">getComponentCount</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponents()" title="class or interface in java.awt">getComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentZOrder(java.awt.Component)" title="class or interface in java.awt">getComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getContainerListeners()" title="class or interface in java.awt">getContainerListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalKeys(int)" title="class or interface in java.awt">getFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalPolicy()" title="class or interface in java.awt">getFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getLayout()" title="class or interface in java.awt">getLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getMousePosition(boolean)" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#insets()" title="class or interface in java.awt">insets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#invalidate()" title="class or interface in java.awt">invalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isAncestorOf(java.awt.Component)" title="class or interface in java.awt">isAncestorOf</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot()" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot(java.awt.Container)" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicyProvider()" title="class or interface in java.awt">isFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicySet()" title="class or interface in java.awt">isFocusTraversalPolicySet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#layout()" title="class or interface in java.awt">layout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintStream, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintWriter, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#locate(int, int)" title="class or interface in java.awt">locate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#minimumSize()" title="class or interface in java.awt">minimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#paintComponents(java.awt.Graphics)" title="class or interface in java.awt">paintComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#preferredSize()" title="class or interface in java.awt">preferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#printComponents(java.awt.Graphics)" title="class or interface in java.awt">printComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processContainerEvent(java.awt.event.ContainerEvent)" title="class or interface in java.awt">processContainerEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processEvent(java.awt.AWTEvent)" title="class or interface in java.awt">processEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(java.awt.Component)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(int)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeAll()" title="class or interface in java.awt">removeAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">removeContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setComponentZOrder(java.awt.Component, int)" title="class or interface in java.awt">setComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusCycleRoot(boolean)" title="class or interface in java.awt">setFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)" title="class or interface in java.awt">setFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicyProvider(boolean)" title="class or interface in java.awt">setFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setLayout(java.awt.LayoutManager)" title="class or interface in java.awt">setLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusBackward()" title="class or interface in java.awt">transferFocusBackward</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusDownCycle()" title="class or interface in java.awt">transferFocusDownCycle</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validate()" title="class or interface in java.awt">validate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validateTree()" title="class or interface in java.awt">validateTree</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#action(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">action</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#add(java.awt.PopupMenu)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">addComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">addFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">addHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">addHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">addInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">addKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">addMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">addMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">addMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#bounds()" title="class or interface in java.awt">bounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#coalesceEvents(java.awt.AWTEvent, java.awt.AWTEvent)" title="class or interface in java.awt">coalesceEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#contains(java.awt.Point)" title="class or interface in java.awt">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(java.awt.image.ImageProducer)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(int, int)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int, java.awt.ImageCapabilities)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#disableEvents(long)" title="class or interface in java.awt">disableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#dispatchEvent(java.awt.AWTEvent)" title="class or interface in java.awt">dispatchEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enable(boolean)" title="class or interface in java.awt">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableEvents(long)" title="class or interface in java.awt">enableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableInputMethods(boolean)" title="class or interface in java.awt">enableInputMethods</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, byte, byte)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, double, double)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, float, float)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, long, long)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, short, short)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBackground()" title="class or interface in java.awt">getBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBounds()" title="class or interface in java.awt">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getColorModel()" title="class or interface in java.awt">getColorModel</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentListeners()" title="class or interface in java.awt">getComponentListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentOrientation()" title="class or interface in java.awt">getComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getCursor()" title="class or interface in java.awt">getCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getDropTarget()" title="class or interface in java.awt">getDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusCycleRootAncestor()" title="class or interface in java.awt">getFocusCycleRootAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusListeners()" title="class or interface in java.awt">getFocusListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusTraversalKeysEnabled()" title="class or interface in java.awt">getFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFont()" title="class or interface in java.awt">getFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getForeground()" title="class or interface in java.awt">getForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getGraphicsConfiguration()" title="class or interface in java.awt">getGraphicsConfiguration</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyBoundsListeners()" title="class or interface in java.awt">getHierarchyBoundsListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyListeners()" title="class or interface in java.awt">getHierarchyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getIgnoreRepaint()" title="class or interface in java.awt">getIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputContext()" title="class or interface in java.awt">getInputContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodListeners()" title="class or interface in java.awt">getInputMethodListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodRequests()" title="class or interface in java.awt">getInputMethodRequests</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getKeyListeners()" title="class or interface in java.awt">getKeyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocale()" title="class or interface in java.awt">getLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocation()" title="class or interface in java.awt">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocationOnScreen()" title="class or interface in java.awt">getLocationOnScreen</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseListeners()" title="class or interface in java.awt">getMouseListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseMotionListeners()" title="class or interface in java.awt">getMouseMotionListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMousePosition()" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseWheelListeners()" title="class or interface in java.awt">getMouseWheelListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getName()" title="class or interface in java.awt">getName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getParent()" title="class or interface in java.awt">getParent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPeer()" title="class or interface in java.awt">getPeer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners()" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners(java.lang.String)" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getSize()" title="class or interface in java.awt">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getToolkit()" title="class or interface in java.awt">getToolkit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getTreeLock()" title="class or interface in java.awt">getTreeLock</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#gotFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">gotFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#handleEvent(java.awt.Event)" title="class or interface in java.awt">handleEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hasFocus()" title="class or interface in java.awt">hasFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hide()" title="class or interface in java.awt">hide</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#imageUpdate(java.awt.Image, int, int, int, int, int)" title="class or interface in java.awt">imageUpdate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#inside(int, int)" title="class or interface in java.awt">inside</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isBackgroundSet()" title="class or interface in java.awt">isBackgroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isCursorSet()" title="class or interface in java.awt">isCursorSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isDisplayable()" title="class or interface in java.awt">isDisplayable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isEnabled()" title="class or interface in java.awt">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusable()" title="class or interface in java.awt">isFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusOwner()" title="class or interface in java.awt">isFocusOwner</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusTraversable()" title="class or interface in java.awt">isFocusTraversable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFontSet()" title="class or interface in java.awt">isFontSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isForegroundSet()" title="class or interface in java.awt">isForegroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isLightweight()" title="class or interface in java.awt">isLightweight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMaximumSizeSet()" title="class or interface in java.awt">isMaximumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMinimumSizeSet()" title="class or interface in java.awt">isMinimumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isPreferredSizeSet()" title="class or interface in java.awt">isPreferredSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isShowing()" title="class or interface in java.awt">isShowing</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isValid()" title="class or interface in java.awt">isValid</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isVisible()" title="class or interface in java.awt">isVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyDown(java.awt.Event, int)" title="class or interface in java.awt">keyDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyUp(java.awt.Event, int)" title="class or interface in java.awt">keyUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list()" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintStream)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintWriter)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#location()" title="class or interface in java.awt">location</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#lostFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">lostFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDown(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDrag(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDrag</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseEnter(java.awt.Event, int, int)" title="class or interface in java.awt">mouseEnter</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseExit(java.awt.Event, int, int)" title="class or interface in java.awt">mouseExit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseMove(java.awt.Event, int, int)" title="class or interface in java.awt">mouseMove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseUp(java.awt.Event, int, int)" title="class or interface in java.awt">mouseUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#move(int, int)" title="class or interface in java.awt">move</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#nextFocus()" title="class or interface in java.awt">nextFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#paintAll(java.awt.Graphics)" title="class or interface in java.awt">paintAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#postEvent(java.awt.Event)" title="class or interface in java.awt">postEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processComponentEvent(java.awt.event.ComponentEvent)" title="class or interface in java.awt">processComponentEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processFocusEvent(java.awt.event.FocusEvent)" title="class or interface in java.awt">processFocusEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyBoundsEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyBoundsEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processInputMethodEvent(java.awt.event.InputMethodEvent)" title="class or interface in java.awt">processInputMethodEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processMouseWheelEvent(java.awt.event.MouseWheelEvent)" title="class or interface in java.awt">processMouseWheelEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#remove(java.awt.MenuComponent)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">removeComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">removeFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">removeHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">removeHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">removeInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">removeKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">removeMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">removeMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">removeMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint()" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(int, int, int, int)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(long)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(java.awt.Dimension)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(int, int)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(int, int, int, int)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(java.awt.Rectangle)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">setComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setCursor(java.awt.Cursor)" title="class or interface in java.awt">setCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setDropTarget(java.awt.dnd.DropTarget)" title="class or interface in java.awt">setDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusable(boolean)" title="class or interface in java.awt">setFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusTraversalKeysEnabled(boolean)" title="class or interface in java.awt">setFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setIgnoreRepaint(boolean)" title="class or interface in java.awt">setIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocale(java.util.Locale)" title="class or interface in java.awt">setLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(int, int)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(java.awt.Point)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setName(java.lang.String)" title="class or interface in java.awt">setName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(java.awt.Dimension)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(int, int)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show()" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show(boolean)" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#size()" title="class or interface in java.awt">size</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#toString()" title="class or interface in java.awt">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocus()" title="class or interface in java.awt">transferFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocusUpCycle()" title="class or interface in java.awt">transferFocusUpCycle</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="DEFAULT_ZOOMHANDLE_FILL"><!-- --></A><H3>
    +DEFAULT_ZOOMHANDLE_FILL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>DEFAULT_ZOOMHANDLE_FILL</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="tripleBuffer"><!-- --></A><H3>
    +tripleBuffer</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>tripleBuffer</B></PRE>
    +<DL>
    +<DD>TODO: Not yet implemented.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="tripleBufferGraphics"><!-- --></A><H3>
    +tripleBufferGraphics</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>tripleBufferGraphics</B></PRE>
    +<DL>
    +<DD>Holds the graphics of the triple buffer.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="repaintBuffer"><!-- --></A><H3>
    +repaintBuffer</H3>
    +<PRE>
    +protected boolean <B>repaintBuffer</B></PRE>
    +<DL>
    +<DD>True if the triple buffer needs a full repaint.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="repaintClip"><!-- --></A><H3>
    +repaintClip</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>repaintClip</B></PRE>
    +<DL>
    +<DD>Clip of the triple buffer to be repainted.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="tripleBuffered"><!-- --></A><H3>
    +tripleBuffered</H3>
    +<PRE>
    +protected boolean <B>tripleBuffered</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="finderBounds"><!-- --></A><H3>
    +finderBounds</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>finderBounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomHandleLocation"><!-- --></A><H3>
    +zoomHandleLocation</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>zoomHandleLocation</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="finderVisible"><!-- --></A><H3>
    +finderVisible</H3>
    +<PRE>
    +protected boolean <B>finderVisible</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomHandleVisible"><!-- --></A><H3>
    +zoomHandleVisible</H3>
    +<PRE>
    +protected boolean <B>zoomHandleVisible</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="useScaledInstance"><!-- --></A><H3>
    +useScaledInstance</H3>
    +<PRE>
    +protected boolean <B>useScaledInstance</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="antiAlias"><!-- --></A><H3>
    +antiAlias</H3>
    +<PRE>
    +protected boolean <B>antiAlias</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="drawLabels"><!-- --></A><H3>
    +drawLabels</H3>
    +<PRE>
    +protected boolean <B>drawLabels</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fitPage"><!-- --></A><H3>
    +fitPage</H3>
    +<PRE>
    +protected boolean <B>fitPage</B></PRE>
    +<DL>
    +<DD>Specifies if the outline should be zoomed to the page if the graph
    + component is in page layout mode. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="outlineBorder"><!-- --></A><H3>
    +outlineBorder</H3>
    +<PRE>
    +protected int <B>outlineBorder</B></PRE>
    +<DL>
    +<DD>Not yet implemented.
    + 
    + Border to add around the page bounds if wholePage is true.
    + Default is 4.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="tracker"><!-- --></A><H3>
    +tracker</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A> <B>tracker</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="scale"><!-- --></A><H3>
    +scale</H3>
    +<PRE>
    +protected double <B>scale</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="translate"><!-- --></A><H3>
    +translate</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>translate</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="zoomGesture"><!-- --></A><H3>
    +zoomGesture</H3>
    +<PRE>
    +protected transient boolean <B>zoomGesture</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="repaintHandler"><!-- --></A><H3>
    +repaintHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>repaintHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="componentHandler"><!-- --></A><H3>
    +componentHandler</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ComponentListener.html?is-external=true" title="class or interface in java.awt.event">ComponentListener</A> <B>componentHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="adjustmentHandler"><!-- --></A><H3>
    +adjustmentHandler</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/AdjustmentListener.html?is-external=true" title="class or interface in java.awt.event">AdjustmentListener</A> <B>adjustmentHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphOutline(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxGraphOutline</H3>
    +<PRE>
    +public <B>mxGraphOutline</B>(<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setTripleBuffered(boolean)"><!-- --></A><H3>
    +setTripleBuffered</H3>
    +<PRE>
    +public void <B>setTripleBuffered</B>(boolean&nbsp;tripleBuffered)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>tripleBuffered</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>tripleBuffered</CODE> - the tripleBuffered to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTripleBuffered()"><!-- --></A><H3>
    +isTripleBuffered</H3>
    +<PRE>
    +public boolean <B>isTripleBuffered</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDrawLabels(boolean)"><!-- --></A><H3>
    +setDrawLabels</H3>
    +<PRE>
    +public void <B>setDrawLabels</B>(boolean&nbsp;drawLabels)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>drawLabels</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>drawLabels</CODE> - the drawLabels to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDrawLabels()"><!-- --></A><H3>
    +isDrawLabels</H3>
    +<PRE>
    +public boolean <B>isDrawLabels</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAntiAlias(boolean)"><!-- --></A><H3>
    +setAntiAlias</H3>
    +<PRE>
    +public void <B>setAntiAlias</B>(boolean&nbsp;antiAlias)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>antiAlias</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>antiAlias</CODE> - the antiAlias to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAntiAlias()"><!-- --></A><H3>
    +isAntiAlias</H3>
    +<PRE>
    +public boolean <B>isAntiAlias</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the antiAlias</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVisible(boolean)"><!-- --></A><H3>
    +setVisible</H3>
    +<PRE>
    +public void <B>setVisible</B>(boolean&nbsp;visible)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVisible(boolean)" title="class or interface in javax.swing">setVisible</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFinderVisible(boolean)"><!-- --></A><H3>
    +setFinderVisible</H3>
    +<PRE>
    +public void <B>setFinderVisible</B>(boolean&nbsp;visible)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setZoomHandleVisible(boolean)"><!-- --></A><H3>
    +setZoomHandleVisible</H3>
    +<PRE>
    +public void <B>setZoomHandleVisible</B>(boolean&nbsp;visible)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setFitPage(boolean)"><!-- --></A><H3>
    +setFitPage</H3>
    +<PRE>
    +public void <B>setFitPage</B>(boolean&nbsp;fitPage)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>fitPage</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>fitPage</CODE> - the fitPage to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isFitPage()"><!-- --></A><H3>
    +isFitPage</H3>
    +<PRE>
    +public boolean <B>isFitPage</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphComponent()"><!-- --></A><H3>
    +getGraphComponent</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>getGraphComponent</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGraphComponent(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +setGraphComponent</H3>
    +<PRE>
    +public void <B>setGraphComponent</B>(<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DD>Fires a property change event for <code>graphComponent</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graphComponent</CODE> - the graphComponent to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="checkTripleBuffer()"><!-- --></A><H3>
    +checkTripleBuffer</H3>
    +<PRE>
    +public void <B>checkTripleBuffer</B>()</PRE>
    +<DL>
    +<DD>Checks if the triple buffer exists and creates a new one if
    + it does not. Also compares the size of the buffer with the
    + size of the graph and drops the buffer if it has a
    + different size.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTripleBuffer(int, int)"><!-- --></A><H3>
    +createTripleBuffer</H3>
    +<PRE>
    +protected void <B>createTripleBuffer</B>(int&nbsp;width,
    +                                  int&nbsp;height)</PRE>
    +<DL>
    +<DD>Creates the tripleBufferGraphics and tripleBuffer for the given
    + dimension and draws the complete graph onto the triplebuffer.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>width</CODE> - <DD><CODE>height</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="destroyTripleBuffer()"><!-- --></A><H3>
    +destroyTripleBuffer</H3>
    +<PRE>
    +public void <B>destroyTripleBuffer</B>()</PRE>
    +<DL>
    +<DD>Destroys the tripleBuffer and tripleBufferGraphics objects.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="repaintTripleBuffer(java.awt.Rectangle)"><!-- --></A><H3>
    +repaintTripleBuffer</H3>
    +<PRE>
    +public void <B>repaintTripleBuffer</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;clip)</PRE>
    +<DL>
    +<DD>Clears and repaints the triple buffer at the given rectangle or repaints
    + the complete buffer if no rectangle is specified.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>clip</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateFinder(boolean)"><!-- --></A><H3>
    +updateFinder</H3>
    +<PRE>
    +public void <B>updateFinder</B>(boolean&nbsp;repaint)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateFinderBounds(java.awt.Rectangle, boolean)"><!-- --></A><H3>
    +updateFinderBounds</H3>
    +<PRE>
    +public void <B>updateFinderBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;bounds,
    +                               boolean&nbsp;repaint)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintComponent(java.awt.Graphics)"><!-- --></A><H3>
    +paintComponent</H3>
    +<PRE>
    +public void <B>paintComponent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintComponent(java.awt.Graphics)" title="class or interface in javax.swing">paintComponent</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintBackground(java.awt.Graphics)"><!-- --></A><H3>
    +paintBackground</H3>
    +<PRE>
    +protected void <B>paintBackground</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD>Paints the background.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintGraph(java.awt.Graphics)"><!-- --></A><H3>
    +paintGraph</H3>
    +<PRE>
    +public void <B>paintGraph</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD>Paints the graph outline.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintForeground(java.awt.Graphics)"><!-- --></A><H3>
    +paintForeground</H3>
    +<PRE>
    +protected void <B>paintForeground</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD>Paints the foreground. Foreground is dynamic and should never be made
    + part of the triple buffer. It is painted on top of the buffer.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateScaleAndTranslate()"><!-- --></A><H3>
    +updateScaleAndTranslate</H3>
    +<PRE>
    +public boolean <B>updateScaleAndTranslate</B>()</PRE>
    +<DL>
    +<DD>Returns true if the scale or translate has changed.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphOutline.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/mxGraphOutline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphOutline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/package-frame.html b/java/docs/com/mxgraph/swing/package-frame.html
    new file mode 100644
    index 000000000..f4f3d0e7e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/package-frame.html
    @@ -0,0 +1,36 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/swing/package-summary.html" target="classFrame">com.mxgraph.swing</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxGraphComponent.html" title="class in com.mxgraph.swing" target="classFrame">mxGraphComponent</A>
    +<BR>
    +<A HREF="mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing" target="classFrame">mxGraphComponent.mxMouseRedirector</A>
    +<BR>
    +<A HREF="mxGraphOutline.html" title="class in com.mxgraph.swing" target="classFrame">mxGraphOutline</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/package-summary.html b/java/docs/com/mxgraph/swing/package-summary.html
    new file mode 100644
    index 000000000..1d7d1c82b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/package-summary.html
    @@ -0,0 +1,184 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.swing (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/handler/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.swing
    +</H2>
    +This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></B></TD>
    +<TD>For setting the preferred size of the viewport for scrolling, use
    + mxGraph.setMinimumGraphSize.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A></B></TD>
    +<TD>An outline view for a specific graph component.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.swing Description
    +</H2>
    +
    +<P>
    +This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/handler/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/package-tree.html b/java/docs/com/mxgraph/swing/package-tree.html
    new file mode 100644
    index 000000000..edcaa74c1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/package-tree.html
    @@ -0,0 +1,168 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.swing Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/handler/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.swing
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt"><B>Component</B></A> (implements java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt"><B>Container</B></A><UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing"><B>JComponent</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing"><B>JScrollPane</B></A> (implements javax.accessibility.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/accessibility/Accessible.html?is-external=true" title="class or interface in javax.accessibility">Accessible</A>, javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true" title="class or interface in javax.swing">ScrollPaneConstants</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.<A HREF="../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing"><B>mxGraphComponent</B></A> (implements java.awt.print.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true" title="class or interface in java.awt.print">Printable</A>)
    +</UL>
    +<LI TYPE="circle">com.mxgraph.swing.<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing"><B>mxGraphComponent.mxGraphControl</B></A><LI TYPE="circle">com.mxgraph.swing.<A HREF="../../../com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing"><B>mxGraphOutline</B></A></UL>
    +</UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.swing.<A HREF="../../../com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing"><B>mxGraphComponent.mxMouseRedirector</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<LI TYPE="circle">com.mxgraph.swing.<A HREF="../../../com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing"><B>mxGraphOutline.MouseTracker</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +</UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/sharing/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/swing/handler/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/package-use.html b/java/docs/com/mxgraph/swing/package-use.html
    new file mode 100644
    index 000000000..cca4d8669
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/package-use.html
    @@ -0,0 +1,249 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.swing (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.swing (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.swing</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> used by <A HREF="../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/swing/class-use/mxGraphComponent.html#com.mxgraph.swing"><B>mxGraphComponent</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For setting the preferred size of the viewport for scrolling, use
    + mxGraph.setMinimumGraphSize.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/swing/class-use/mxGraphComponent.mxGraphControl.html#com.mxgraph.swing"><B>mxGraphComponent.mxGraphControl</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/swing/class-use/mxGraphOutline.MouseTracker.html#com.mxgraph.swing"><B>mxGraphOutline.MouseTracker</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> used by <A HREF="../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/swing/class-use/mxGraphComponent.html#com.mxgraph.swing.handler"><B>mxGraphComponent</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For setting the preferred size of the viewport for scrolling, use
    + mxGraph.setMinimumGraphSize.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> used by <A HREF="../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/swing/class-use/mxGraphComponent.html#com.mxgraph.swing.util"><B>mxGraphComponent</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For setting the preferred size of the viewport for scrolling, use
    + mxGraph.setMinimumGraphSize.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> used by <A HREF="../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/swing/class-use/mxGraphComponent.html#com.mxgraph.swing.view"><B>mxGraphComponent</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For setting the preferred size of the viewport for scrolling, use
    + mxGraph.setMinimumGraphSize.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/swing/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxAnimation.html b/java/docs/com/mxgraph/swing/util/class-use/mxAnimation.html
    new file mode 100644
    index 000000000..87d0205ac
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxAnimation.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxAnimation (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxAnimation (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxAnimation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxAnimation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxAnimation</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A> in <A HREF="../../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A> in <A HREF="../../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides animation effects.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxAnimation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxAnimation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxCellOverlay.html b/java/docs/com/mxgraph/swing/util/class-use/mxCellOverlay.html
    new file mode 100644
    index 000000000..dd24d314e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxCellOverlay.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxCellOverlay (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxCellOverlay (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxCellOverlay.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellOverlay.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxCellOverlay</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxCellOverlay
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxCellOverlay.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellOverlay.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.DeleteAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.DeleteAction.html
    new file mode 100644
    index 000000000..8ebea23ed
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.DeleteAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.DeleteAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.DeleteAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.DeleteAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.DeleteAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.DeleteAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.DeleteAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.DeleteAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.DeleteAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.DrillAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.DrillAction.html
    new file mode 100644
    index 000000000..48cef887a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.DrillAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.DrillAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.DrillAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.DrillAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.DrillAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.DrillAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.DrillAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.DrillAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.DrillAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.EditAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.EditAction.html
    new file mode 100644
    index 000000000..d3a774416
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.EditAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.EditAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.EditAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.EditAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.EditAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.EditAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.EditAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.EditAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.EditAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.FoldAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.FoldAction.html
    new file mode 100644
    index 000000000..119f945d3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.FoldAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.FoldAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.FoldAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.FoldAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.FoldAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.FoldAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.FoldAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.FoldAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.FoldAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.GroupAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.GroupAction.html
    new file mode 100644
    index 000000000..746ad6687
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.GroupAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.GroupAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.GroupAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.GroupAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.GroupAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.GroupAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.GroupAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.GroupAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.GroupAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.LayerAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.LayerAction.html
    new file mode 100644
    index 000000000..b76689a4c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.LayerAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.LayerAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.LayerAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.LayerAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.LayerAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.LayerAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.LayerAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.LayerAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.LayerAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.RemoveFromParentAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.RemoveFromParentAction.html
    new file mode 100644
    index 000000000..b2f15febe
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.RemoveFromParentAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.RemoveFromParentAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.RemoveFromParentAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.RemoveFromParentAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.RemoveFromParentAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.RemoveFromParentAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.RemoveFromParentAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.RemoveFromParentAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.RemoveFromParentAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.SelectAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.SelectAction.html
    new file mode 100644
    index 000000000..094d16c9e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.SelectAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.SelectAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.SelectAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.SelectAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.SelectAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.SelectAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.SelectAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.SelectAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.SelectAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.UngroupAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.UngroupAction.html
    new file mode 100644
    index 000000000..7943c520a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.UngroupAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.UngroupAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.UngroupAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.UngroupAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.UngroupAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.UngroupAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.UngroupAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.UngroupAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.UngroupAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.UpdateGroupBoundsAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.UpdateGroupBoundsAction.html
    new file mode 100644
    index 000000000..fd2d5d399
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.UpdateGroupBoundsAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.UpdateGroupBoundsAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.UpdateGroupBoundsAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.UpdateGroupBoundsAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.UpdateGroupBoundsAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.UpdateGroupBoundsAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.UpdateGroupBoundsAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.UpdateGroupBoundsAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.UpdateGroupBoundsAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.ZoomAction.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.ZoomAction.html
    new file mode 100644
    index 000000000..c10dcb330
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.ZoomAction.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions.ZoomAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions.ZoomAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.ZoomAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.ZoomAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions.ZoomAction</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions.ZoomAction
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.ZoomAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.ZoomAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.html
    new file mode 100644
    index 000000000..4ac60b3de
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphActions.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphActions (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphActions (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphActions</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxGraphActions
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphActions.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxGraphTransferable.html b/java/docs/com/mxgraph/swing/util/class-use/mxGraphTransferable.html
    new file mode 100644
    index 000000000..fe39d2459
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxGraphTransferable.html
    @@ -0,0 +1,235 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxGraphTransferable (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxGraphTransferable (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphTransferable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphTransferable.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxGraphTransferable</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], javax.swing.ImageIcon)">createGraphTransferable</A></B>(<A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)">createGraphTransferable</A></B>(<A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        <A HREF="../../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#getDropTarget(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)">getDropTarget</A></B>(<A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the drop target for the given transferable and location.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#importCells(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable, double, double)">importCells</A></B>(<A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +            <A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt,
    +            double&nbsp;dx,
    +            double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets a drop target using getDropTarget and imports the cells using
    + mxGraph.splitEdge or mxGraphComponent.importCells depending on the
    + drop target and the return values of mxGraph.isSplitEnabled and
    + mxGraph.isSplitTarget.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#importGraphTransferable(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)">importGraphTransferable</A></B>(<A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>&nbsp;gt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the cells have been imported using importCells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxGraphTransferable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphTransferable.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxICellOverlay.html b/java/docs/com/mxgraph/swing/util/class-use/mxICellOverlay.html
    new file mode 100644
    index 000000000..6bf25ccb9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxICellOverlay.html
    @@ -0,0 +1,316 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.swing.util.mxICellOverlay (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.swing.util.mxICellOverlay (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxICellOverlay.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICellOverlay.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.swing.util.mxICellOverlay</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A> in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#addCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)">addCellOverlay</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds an overlay for the specified cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#getCellOverlays(java.lang.Object)">getCellOverlays</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the array of overlays for the given cell or null, if no overlays
    + are defined.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#removeCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)">removeCellOverlay</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                  <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes and returns the given overlay from the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#removeCellOverlays(java.lang.Object)">removeCellOverlays</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all overlays from the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#setCellWarning(java.lang.Object, java.lang.String)">setCellWarning</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#setCellWarning(java.lang.Object, java.lang.String, javax.swing.ImageIcon)">setCellWarning</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#setCellWarning(java.lang.Object, java.lang.String, javax.swing.ImageIcon, boolean)">setCellWarning</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon,
    +               boolean&nbsp;select)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#addCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)">addCellOverlay</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds an overlay for the specified cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#removeCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)">removeCellOverlay</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                  <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes and returns the given overlay from the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#removeCellOverlayComponent(com.mxgraph.swing.util.mxICellOverlay, java.lang.Object)">removeCellOverlayComponent</A></B>(<A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when an overlay has been removed from the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#updateCellOverlayComponent(com.mxgraph.view.mxCellState, com.mxgraph.swing.util.mxICellOverlay)">updateCellOverlayComponent</A></B>(<A HREF="../../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                           <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when an overlay has been removed from the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A> in <A HREF="../../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> that implement <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxICellOverlay.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICellOverlay.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxMorphing.html b/java/docs/com/mxgraph/swing/util/class-use/mxMorphing.html
    new file mode 100644
    index 000000000..ae66b22c8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxMorphing.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxMorphing (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxMorphing (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxMorphing.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMorphing.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxMorphing</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxMorphing
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxMorphing.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMorphing.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxMouseAdapter.html b/java/docs/com/mxgraph/swing/util/class-use/mxMouseAdapter.html
    new file mode 100644
    index 000000000..7dab3e302
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxMouseAdapter.html
    @@ -0,0 +1,214 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxMouseAdapter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxMouseAdapter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxMouseAdapter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMouseAdapter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxMouseAdapter</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection handler creates new connections between cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Placeholder for rotation handler</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxMouseAdapter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMouseAdapter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/class-use/mxSwingConstants.html b/java/docs/com/mxgraph/swing/util/class-use/mxSwingConstants.html
    new file mode 100644
    index 000000000..6ff40a885
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/class-use/mxSwingConstants.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.util.mxSwingConstants (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.util.mxSwingConstants (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxSwingConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwingConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.util.mxSwingConstants</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.util.mxSwingConstants
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/util//class-usemxSwingConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwingConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxAnimation.html b/java/docs/com/mxgraph/swing/util/mxAnimation.html
    new file mode 100644
    index 000000000..b9d7d8a78
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxAnimation.html
    @@ -0,0 +1,484 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxAnimation (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxAnimation (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxAnimation.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxAnimation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxAnimation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxAnimation</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxAnimation</B>
    +</PRE>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxAnimation</B><DT>extends <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Baseclass for all timer-based animations. Fires mxEvent.DONE when the
    + stopAnimation method is called. Implement updateAnimation for the
    + actual animation or listen to mxEvent.EXECUTE.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#DEFAULT_DELAY">DEFAULT_DELAY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default delay for animations in ms.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#delay">delay</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default is DEFAULT_DELAY.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Timer.html?is-external=true" title="class or interface in javax.swing">Timer</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#timer">timer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time instance that is used for timing the animation.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#mxAnimation()">mxAnimation</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new animation instance with the given repaint delay.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#mxAnimation(int)">mxAnimation</A></B>(int&nbsp;delay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new animation instance with the given repaint delay.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#getDelay()">getDelay</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the delay for the animation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#setDelay(int)">setDelay</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the delay for the animation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#startAnimation()">startAnimation</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starts the animation by repeatedly invoking updateAnimation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#stopAnimation()">stopAnimation</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stops the animation by deleting the timer and fires mxEvent.DONE.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#updateAnimation()">updateAnimation</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to implement the animation.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="DEFAULT_DELAY"><!-- --></A><H3>
    +DEFAULT_DELAY</H3>
    +<PRE>
    +public static int <B>DEFAULT_DELAY</B></PRE>
    +<DL>
    +<DD>Specifies the default delay for animations in ms. Default is 20.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="delay"><!-- --></A><H3>
    +delay</H3>
    +<PRE>
    +protected int <B>delay</B></PRE>
    +<DL>
    +<DD>Default is DEFAULT_DELAY.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="timer"><!-- --></A><H3>
    +timer</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Timer.html?is-external=true" title="class or interface in javax.swing">Timer</A> <B>timer</B></PRE>
    +<DL>
    +<DD>Time instance that is used for timing the animation.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxAnimation()"><!-- --></A><H3>
    +mxAnimation</H3>
    +<PRE>
    +public <B>mxAnimation</B>()</PRE>
    +<DL>
    +<DD>Constructs a new animation instance with the given repaint delay.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxAnimation(int)"><!-- --></A><H3>
    +mxAnimation</H3>
    +<PRE>
    +public <B>mxAnimation</B>(int&nbsp;delay)</PRE>
    +<DL>
    +<DD>Constructs a new animation instance with the given repaint delay.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getDelay()"><!-- --></A><H3>
    +getDelay</H3>
    +<PRE>
    +public int <B>getDelay</B>()</PRE>
    +<DL>
    +<DD>Returns the delay for the animation.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDelay(int)"><!-- --></A><H3>
    +setDelay</H3>
    +<PRE>
    +public void <B>setDelay</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the delay for the animation.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startAnimation()"><!-- --></A><H3>
    +startAnimation</H3>
    +<PRE>
    +public void <B>startAnimation</B>()</PRE>
    +<DL>
    +<DD>Starts the animation by repeatedly invoking updateAnimation.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateAnimation()"><!-- --></A><H3>
    +updateAnimation</H3>
    +<PRE>
    +public void <B>updateAnimation</B>()</PRE>
    +<DL>
    +<DD>Hook for subclassers to implement the animation. Invoke stopAnimation
    + when finished, startAnimation to resume. This is called whenever the
    + timer fires and fires an mxEvent.EXECUTE event with no properties.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stopAnimation()"><!-- --></A><H3>
    +stopAnimation</H3>
    +<PRE>
    +public void <B>stopAnimation</B>()</PRE>
    +<DL>
    +<DD>Stops the animation by deleting the timer and fires mxEvent.DONE.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxAnimation.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxAnimation.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxAnimation.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxCellOverlay.html b/java/docs/com/mxgraph/swing/util/mxCellOverlay.html
    new file mode 100644
    index 000000000..3311eb861
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxCellOverlay.html
    @@ -0,0 +1,575 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxCellOverlay (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellOverlay (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellOverlay.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxCellOverlay.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellOverlay.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JComponent">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxCellOverlay</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">java.awt.Component</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">java.awt.Container</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">javax.swing.JComponent</A>
    +              <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxCellOverlay</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellOverlay</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A><DT>implements <A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxCellOverlay">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.AccessibleJComponent.html?is-external=true" title="class or interface in javax.swing">JComponent.AccessibleJComponent</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.AccessibleAWTContainer.html?is-external=true" title="class or interface in java.awt">Container.AccessibleAWTContainer</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.AccessibleAWTComponent.html?is-external=true" title="class or interface in java.awt">Component.AccessibleAWTComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BaselineResizeBehavior.html?is-external=true" title="class or interface in java.awt">Component.BaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BltBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.BltBufferStrategy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.FlipBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.FlipBufferStrategy</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#align">align</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the horizontal alignment for the overlay.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#defaultOverlap">defaultOverlap</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the overlapping for the overlay, that is,
    + the proportional distance from the origin to the
    + point defined by the alignment.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#imageIcon">imageIcon</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#verticalAlign">verticalAlign</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the vertical alignment for the overlay.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#accessibleContext" title="class or interface in javax.swing">accessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#listenerList" title="class or interface in javax.swing">listenerList</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#TOOL_TIP_TEXT_KEY" title="class or interface in javax.swing">TOOL_TIP_TEXT_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#ui" title="class or interface in javax.swing">ui</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#UNDEFINED_CONDITION" title="class or interface in javax.swing">UNDEFINED_CONDITION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT" title="class or interface in javax.swing">WHEN_ANCESTOR_OF_FOCUSED_COMPONENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_FOCUSED" title="class or interface in javax.swing">WHEN_FOCUSED</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_IN_FOCUSED_WINDOW" title="class or interface in javax.swing">WHEN_IN_FOCUSED_WINDOW</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#BOTTOM_ALIGNMENT" title="class or interface in java.awt">BOTTOM_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#CENTER_ALIGNMENT" title="class or interface in java.awt">CENTER_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#LEFT_ALIGNMENT" title="class or interface in java.awt">LEFT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#RIGHT_ALIGNMENT" title="class or interface in java.awt">RIGHT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#TOP_ALIGNMENT" title="class or interface in java.awt">TOP_ALIGNMENT</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.image.ImageObserver"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ABORT" title="class or interface in java.awt.image">ABORT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ALLBITS" title="class or interface in java.awt.image">ALLBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ERROR" title="class or interface in java.awt.image">ERROR</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#FRAMEBITS" title="class or interface in java.awt.image">FRAMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#HEIGHT" title="class or interface in java.awt.image">HEIGHT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#PROPERTIES" title="class or interface in java.awt.image">PROPERTIES</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#SOMEBITS" title="class or interface in java.awt.image">SOMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#WIDTH" title="class or interface in java.awt.image">WIDTH</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#mxCellOverlay(javax.swing.ImageIcon, java.lang.String)">mxCellOverlay</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#getAlign()">getAlign</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#getBounds(com.mxgraph.view.mxCellState)">getBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#getVerticalAlign()">getVerticalAlign</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#setAlign(java.lang.Object)">setAlign</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#setVerticalAlign(java.lang.Object)">setVerticalAlign</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">addAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addNotify()" title="class or interface in javax.swing">addNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">addVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#computeVisibleRect(java.awt.Rectangle)" title="class or interface in javax.swing">computeVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#contains(int, int)" title="class or interface in javax.swing">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#createToolTip()" title="class or interface in javax.swing">createToolTip</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#disable()" title="class or interface in javax.swing">disable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#enable()" title="class or interface in javax.swing">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, boolean, boolean)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, char, char)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, int, int)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#fireVetoableChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">fireVetoableChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAccessibleContext()" title="class or interface in javax.swing">getAccessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getActionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionMap()" title="class or interface in javax.swing">getActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentX()" title="class or interface in javax.swing">getAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentY()" title="class or interface in javax.swing">getAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAncestorListeners()" title="class or interface in javax.swing">getAncestorListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAutoscrolls()" title="class or interface in javax.swing">getAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaseline(int, int)" title="class or interface in javax.swing">getBaseline</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaselineResizeBehavior()" title="class or interface in javax.swing">getBaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBorder()" title="class or interface in javax.swing">getBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBounds(java.awt.Rectangle)" title="class or interface in javax.swing">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getClientProperty(java.lang.Object)" title="class or interface in javax.swing">getClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentGraphics(java.awt.Graphics)" title="class or interface in javax.swing">getComponentGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentPopupMenu()" title="class or interface in javax.swing">getComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getConditionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getConditionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDebugGraphicsOptions()" title="class or interface in javax.swing">getDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDefaultLocale()" title="class or interface in javax.swing">getDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getFontMetrics(java.awt.Font)" title="class or interface in javax.swing">getFontMetrics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getGraphics()" title="class or interface in javax.swing">getGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getHeight()" title="class or interface in javax.swing">getHeight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInheritsPopupMenu()" title="class or interface in javax.swing">getInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap()" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap(int)" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputVerifier()" title="class or interface in javax.swing">getInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets()" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets(java.awt.Insets)" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getListeners(java.lang.Class)" title="class or interface in javax.swing">getListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getLocation(java.awt.Point)" title="class or interface in javax.swing">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMaximumSize()" title="class or interface in javax.swing">getMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMinimumSize()" title="class or interface in javax.swing">getMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getNextFocusableComponent()" title="class or interface in javax.swing">getNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPopupLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getPopupLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPreferredSize()" title="class or interface in javax.swing">getPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRegisteredKeyStrokes()" title="class or interface in javax.swing">getRegisteredKeyStrokes</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRootPane()" title="class or interface in javax.swing">getRootPane</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getSize(java.awt.Dimension)" title="class or interface in javax.swing">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText()" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTopLevelAncestor()" title="class or interface in javax.swing">getTopLevelAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTransferHandler()" title="class or interface in javax.swing">getTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getUIClassID()" title="class or interface in javax.swing">getUIClassID</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVerifyInputWhenFocusTarget()" title="class or interface in javax.swing">getVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVetoableChangeListeners()" title="class or interface in javax.swing">getVetoableChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVisibleRect()" title="class or interface in javax.swing">getVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getWidth()" title="class or interface in javax.swing">getWidth</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getX()" title="class or interface in javax.swing">getX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getY()" title="class or interface in javax.swing">getY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#grabFocus()" title="class or interface in javax.swing">grabFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isDoubleBuffered()" title="class or interface in javax.swing">isDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isLightweightComponent(java.awt.Component)" title="class or interface in javax.swing">isLightweightComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isManagingFocus()" title="class or interface in javax.swing">isManagingFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOpaque()" title="class or interface in javax.swing">isOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOptimizedDrawingEnabled()" title="class or interface in javax.swing">isOptimizedDrawingEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingForPrint()" title="class or interface in javax.swing">isPaintingForPrint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingTile()" title="class or interface in javax.swing">isPaintingTile</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isRequestFocusEnabled()" title="class or interface in javax.swing">isRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isValidateRoot()" title="class or interface in javax.swing">isValidateRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintBorder(java.awt.Graphics)" title="class or interface in javax.swing">paintBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintChildren(java.awt.Graphics)" title="class or interface in javax.swing">paintChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintComponent(java.awt.Graphics)" title="class or interface in javax.swing">paintComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(int, int, int, int)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(java.awt.Rectangle)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paramString()" title="class or interface in javax.swing">paramString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#print(java.awt.Graphics)" title="class or interface in javax.swing">print</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printAll(java.awt.Graphics)" title="class or interface in javax.swing">printAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printBorder(java.awt.Graphics)" title="class or interface in javax.swing">printBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printChildren(java.awt.Graphics)" title="class or interface in javax.swing">printChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printComponent(java.awt.Graphics)" title="class or interface in javax.swing">printComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processComponentKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processComponentKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyBinding(javax.swing.KeyStroke, java.awt.event.KeyEvent, int, boolean)" title="class or interface in javax.swing">processKeyBinding</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseMotionEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseMotionEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#putClientProperty(java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">putClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">removeAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeNotify()" title="class or interface in javax.swing">removeNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">removeVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(long, int, int, int, int)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(java.awt.Rectangle)" title="class or interface in javax.swing">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestDefaultFocus()" title="class or interface in javax.swing">requestDefaultFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus()" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus(boolean)" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow()" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow(boolean)" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#resetKeyboardActions()" title="class or interface in javax.swing">resetKeyboardActions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#reshape(int, int, int, int)" title="class or interface in javax.swing">reshape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#revalidate()" title="class or interface in javax.swing">revalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#scrollRectToVisible(java.awt.Rectangle)" title="class or interface in javax.swing">scrollRectToVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setActionMap(javax.swing.ActionMap)" title="class or interface in javax.swing">setActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentX(float)" title="class or interface in javax.swing">setAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentY(float)" title="class or interface in javax.swing">setAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAutoscrolls(boolean)" title="class or interface in javax.swing">setAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBackground(java.awt.Color)" title="class or interface in javax.swing">setBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBorder(javax.swing.border.Border)" title="class or interface in javax.swing">setBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setComponentPopupMenu(javax.swing.JPopupMenu)" title="class or interface in javax.swing">setComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDebugGraphicsOptions(int)" title="class or interface in javax.swing">setDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDefaultLocale(java.util.Locale)" title="class or interface in javax.swing">setDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDoubleBuffered(boolean)" title="class or interface in javax.swing">setDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFocusTraversalKeys(int, java.util.Set)" title="class or interface in javax.swing">setFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFont(java.awt.Font)" title="class or interface in javax.swing">setFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setForeground(java.awt.Color)" title="class or interface in javax.swing">setForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInheritsPopupMenu(boolean)" title="class or interface in javax.swing">setInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputMap(int, javax.swing.InputMap)" title="class or interface in javax.swing">setInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputVerifier(javax.swing.InputVerifier)" title="class or interface in javax.swing">setInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMaximumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMinimumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setNextFocusableComponent(java.awt.Component)" title="class or interface in javax.swing">setNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setOpaque(boolean)" title="class or interface in javax.swing">setOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setPreferredSize(java.awt.Dimension)" title="class or interface in javax.swing">setPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setRequestFocusEnabled(boolean)" title="class or interface in javax.swing">setRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setToolTipText(java.lang.String)" title="class or interface in javax.swing">setToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setTransferHandler(javax.swing.TransferHandler)" title="class or interface in javax.swing">setTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setUI(javax.swing.plaf.ComponentUI)" title="class or interface in javax.swing">setUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVerifyInputWhenFocusTarget(boolean)" title="class or interface in javax.swing">setVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVisible(boolean)" title="class or interface in javax.swing">setVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#unregisterKeyboardAction(javax.swing.KeyStroke)" title="class or interface in javax.swing">unregisterKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#update(java.awt.Graphics)" title="class or interface in javax.swing">update</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#updateUI()" title="class or interface in javax.swing">updateUI</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.lang.String, java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">addContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addImpl(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">addImpl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#applyComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">applyComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#areFocusTraversalKeysSet(int)" title="class or interface in java.awt">areFocusTraversalKeysSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#countComponents()" title="class or interface in java.awt">countComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#deliverEvent(java.awt.Event)" title="class or interface in java.awt">deliverEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#doLayout()" title="class or interface in java.awt">doLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(int, int)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(java.awt.Point)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponent(int)" title="class or interface in java.awt">getComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(int, int)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(java.awt.Point)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentCount()" title="class or interface in java.awt">getComponentCount</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponents()" title="class or interface in java.awt">getComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentZOrder(java.awt.Component)" title="class or interface in java.awt">getComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getContainerListeners()" title="class or interface in java.awt">getContainerListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalKeys(int)" title="class or interface in java.awt">getFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalPolicy()" title="class or interface in java.awt">getFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getLayout()" title="class or interface in java.awt">getLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getMousePosition(boolean)" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#insets()" title="class or interface in java.awt">insets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#invalidate()" title="class or interface in java.awt">invalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isAncestorOf(java.awt.Component)" title="class or interface in java.awt">isAncestorOf</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot()" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot(java.awt.Container)" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicyProvider()" title="class or interface in java.awt">isFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicySet()" title="class or interface in java.awt">isFocusTraversalPolicySet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#layout()" title="class or interface in java.awt">layout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintStream, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintWriter, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#locate(int, int)" title="class or interface in java.awt">locate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#minimumSize()" title="class or interface in java.awt">minimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#paintComponents(java.awt.Graphics)" title="class or interface in java.awt">paintComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#preferredSize()" title="class or interface in java.awt">preferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#printComponents(java.awt.Graphics)" title="class or interface in java.awt">printComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processContainerEvent(java.awt.event.ContainerEvent)" title="class or interface in java.awt">processContainerEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processEvent(java.awt.AWTEvent)" title="class or interface in java.awt">processEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(java.awt.Component)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(int)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeAll()" title="class or interface in java.awt">removeAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">removeContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setComponentZOrder(java.awt.Component, int)" title="class or interface in java.awt">setComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusCycleRoot(boolean)" title="class or interface in java.awt">setFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)" title="class or interface in java.awt">setFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicyProvider(boolean)" title="class or interface in java.awt">setFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setLayout(java.awt.LayoutManager)" title="class or interface in java.awt">setLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusBackward()" title="class or interface in java.awt">transferFocusBackward</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusDownCycle()" title="class or interface in java.awt">transferFocusDownCycle</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validate()" title="class or interface in java.awt">validate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validateTree()" title="class or interface in java.awt">validateTree</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#action(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">action</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#add(java.awt.PopupMenu)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">addComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">addFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">addHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">addHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">addInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">addKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">addMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">addMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">addMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#bounds()" title="class or interface in java.awt">bounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#coalesceEvents(java.awt.AWTEvent, java.awt.AWTEvent)" title="class or interface in java.awt">coalesceEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#contains(java.awt.Point)" title="class or interface in java.awt">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(java.awt.image.ImageProducer)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(int, int)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int, java.awt.ImageCapabilities)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#disableEvents(long)" title="class or interface in java.awt">disableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#dispatchEvent(java.awt.AWTEvent)" title="class or interface in java.awt">dispatchEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enable(boolean)" title="class or interface in java.awt">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableEvents(long)" title="class or interface in java.awt">enableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableInputMethods(boolean)" title="class or interface in java.awt">enableInputMethods</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, byte, byte)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, double, double)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, float, float)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, long, long)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, short, short)" title="class or interface in java.awt">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBackground()" title="class or interface in java.awt">getBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBounds()" title="class or interface in java.awt">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getColorModel()" title="class or interface in java.awt">getColorModel</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentListeners()" title="class or interface in java.awt">getComponentListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentOrientation()" title="class or interface in java.awt">getComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getCursor()" title="class or interface in java.awt">getCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getDropTarget()" title="class or interface in java.awt">getDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusCycleRootAncestor()" title="class or interface in java.awt">getFocusCycleRootAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusListeners()" title="class or interface in java.awt">getFocusListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusTraversalKeysEnabled()" title="class or interface in java.awt">getFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFont()" title="class or interface in java.awt">getFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getForeground()" title="class or interface in java.awt">getForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getGraphicsConfiguration()" title="class or interface in java.awt">getGraphicsConfiguration</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyBoundsListeners()" title="class or interface in java.awt">getHierarchyBoundsListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyListeners()" title="class or interface in java.awt">getHierarchyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getIgnoreRepaint()" title="class or interface in java.awt">getIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputContext()" title="class or interface in java.awt">getInputContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodListeners()" title="class or interface in java.awt">getInputMethodListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodRequests()" title="class or interface in java.awt">getInputMethodRequests</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getKeyListeners()" title="class or interface in java.awt">getKeyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocale()" title="class or interface in java.awt">getLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocation()" title="class or interface in java.awt">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocationOnScreen()" title="class or interface in java.awt">getLocationOnScreen</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseListeners()" title="class or interface in java.awt">getMouseListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseMotionListeners()" title="class or interface in java.awt">getMouseMotionListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMousePosition()" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseWheelListeners()" title="class or interface in java.awt">getMouseWheelListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getName()" title="class or interface in java.awt">getName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getParent()" title="class or interface in java.awt">getParent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPeer()" title="class or interface in java.awt">getPeer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners()" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners(java.lang.String)" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getSize()" title="class or interface in java.awt">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getToolkit()" title="class or interface in java.awt">getToolkit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getTreeLock()" title="class or interface in java.awt">getTreeLock</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#gotFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">gotFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#handleEvent(java.awt.Event)" title="class or interface in java.awt">handleEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hasFocus()" title="class or interface in java.awt">hasFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hide()" title="class or interface in java.awt">hide</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#imageUpdate(java.awt.Image, int, int, int, int, int)" title="class or interface in java.awt">imageUpdate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#inside(int, int)" title="class or interface in java.awt">inside</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isBackgroundSet()" title="class or interface in java.awt">isBackgroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isCursorSet()" title="class or interface in java.awt">isCursorSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isDisplayable()" title="class or interface in java.awt">isDisplayable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isEnabled()" title="class or interface in java.awt">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusable()" title="class or interface in java.awt">isFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusOwner()" title="class or interface in java.awt">isFocusOwner</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusTraversable()" title="class or interface in java.awt">isFocusTraversable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFontSet()" title="class or interface in java.awt">isFontSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isForegroundSet()" title="class or interface in java.awt">isForegroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isLightweight()" title="class or interface in java.awt">isLightweight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMaximumSizeSet()" title="class or interface in java.awt">isMaximumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMinimumSizeSet()" title="class or interface in java.awt">isMinimumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isPreferredSizeSet()" title="class or interface in java.awt">isPreferredSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isShowing()" title="class or interface in java.awt">isShowing</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isValid()" title="class or interface in java.awt">isValid</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isVisible()" title="class or interface in java.awt">isVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyDown(java.awt.Event, int)" title="class or interface in java.awt">keyDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyUp(java.awt.Event, int)" title="class or interface in java.awt">keyUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list()" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintStream)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintWriter)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#location()" title="class or interface in java.awt">location</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#lostFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">lostFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDown(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDrag(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDrag</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseEnter(java.awt.Event, int, int)" title="class or interface in java.awt">mouseEnter</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseExit(java.awt.Event, int, int)" title="class or interface in java.awt">mouseExit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseMove(java.awt.Event, int, int)" title="class or interface in java.awt">mouseMove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseUp(java.awt.Event, int, int)" title="class or interface in java.awt">mouseUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#move(int, int)" title="class or interface in java.awt">move</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#nextFocus()" title="class or interface in java.awt">nextFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#paintAll(java.awt.Graphics)" title="class or interface in java.awt">paintAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#postEvent(java.awt.Event)" title="class or interface in java.awt">postEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processComponentEvent(java.awt.event.ComponentEvent)" title="class or interface in java.awt">processComponentEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processFocusEvent(java.awt.event.FocusEvent)" title="class or interface in java.awt">processFocusEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyBoundsEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyBoundsEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processInputMethodEvent(java.awt.event.InputMethodEvent)" title="class or interface in java.awt">processInputMethodEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processMouseWheelEvent(java.awt.event.MouseWheelEvent)" title="class or interface in java.awt">processMouseWheelEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#remove(java.awt.MenuComponent)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">removeComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">removeFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">removeHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">removeHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">removeInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">removeKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">removeMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">removeMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">removeMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint()" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(int, int, int, int)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(long)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(java.awt.Dimension)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(int, int)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(int, int, int, int)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(java.awt.Rectangle)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">setComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setCursor(java.awt.Cursor)" title="class or interface in java.awt">setCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setDropTarget(java.awt.dnd.DropTarget)" title="class or interface in java.awt">setDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusable(boolean)" title="class or interface in java.awt">setFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusTraversalKeysEnabled(boolean)" title="class or interface in java.awt">setFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setIgnoreRepaint(boolean)" title="class or interface in java.awt">setIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocale(java.util.Locale)" title="class or interface in java.awt">setLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(int, int)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(java.awt.Point)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setName(java.lang.String)" title="class or interface in java.awt">setName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(java.awt.Dimension)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(int, int)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show()" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show(boolean)" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#size()" title="class or interface in java.awt">size</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#toString()" title="class or interface in java.awt">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocus()" title="class or interface in java.awt">transferFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocusUpCycle()" title="class or interface in java.awt">transferFocusUpCycle</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="imageIcon"><!-- --></A><H3>
    +imageIcon</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>imageIcon</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="align"><!-- --></A><H3>
    +align</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>align</B></PRE>
    +<DL>
    +<DD>Holds the horizontal alignment for the overlay.
    + Default is ALIGN_RIGHT. For edges, the overlay
    + always appears in the center of the edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="verticalAlign"><!-- --></A><H3>
    +verticalAlign</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>verticalAlign</B></PRE>
    +<DL>
    +<DD>Holds the vertical alignment for the overlay.
    + Default is bottom. For edges, the overlay
    + always appears in the center of the edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="defaultOverlap"><!-- --></A><H3>
    +defaultOverlap</H3>
    +<PRE>
    +protected double <B>defaultOverlap</B></PRE>
    +<DL>
    +<DD>Defines the overlapping for the overlay, that is,
    + the proportional distance from the origin to the
    + point defined by the alignment. Default is 0.5.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellOverlay(javax.swing.ImageIcon, java.lang.String)"><!-- --></A><H3>
    +mxCellOverlay</H3>
    +<PRE>
    +public <B>mxCellOverlay</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;warning)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getAlign()"><!-- --></A><H3>
    +getAlign</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getAlign</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the alignment of the overlay, see <code>mxConstants.ALIGN_*****</code></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAlign(java.lang.Object)"><!-- --></A><H3>
    +setAlign</H3>
    +<PRE>
    +public void <B>setAlign</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the alignment to set, see <code>mxConstants.ALIGN_*****</code></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getVerticalAlign()"><!-- --></A><H3>
    +getVerticalAlign</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getVerticalAlign</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the vertical alignment, see <code>mxConstants.ALIGN_*****</code></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVerticalAlign(java.lang.Object)"><!-- --></A><H3>
    +setVerticalAlign</H3>
    +<PRE>
    +public void <B>setVerticalAlign</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the vertical alignment to set, see <code>mxConstants.ALIGN_*****</code></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paint(java.awt.Graphics)" title="class or interface in javax.swing">paint</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBounds(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getBounds</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBounds</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html#getBounds(com.mxgraph.view.mxCellState)">getBounds</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellOverlay.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxCellOverlay.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellOverlay.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JComponent">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.DeleteAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.DeleteAction.html
    new file mode 100644
    index 000000000..23ac85679
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.DeleteAction.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.DeleteAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.DeleteAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.DeleteAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.DeleteAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.DeleteAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.DeleteAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.DeleteAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.DeleteAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html#mxGraphActions.DeleteAction(java.lang.String)">mxGraphActions.DeleteAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.DeleteAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.DeleteAction</H3>
    +<PRE>
    +public <B>mxGraphActions.DeleteAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.DeleteAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.DeleteAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.DrillAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.DrillAction.html
    new file mode 100644
    index 000000000..705451ba3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.DrillAction.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.DrillAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.DrillAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.DrillAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.DrillAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.DrillAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.DrillAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.DrillAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.DrillAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.DrillAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html#mxGraphActions.DrillAction(java.lang.String)">mxGraphActions.DrillAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.DrillAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.DrillAction</H3>
    +<PRE>
    +public <B>mxGraphActions.DrillAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.DrillAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.DrillAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.DrillAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.EditAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.EditAction.html
    new file mode 100644
    index 000000000..0aeab52b0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.EditAction.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.EditAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.EditAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.EditAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.EditAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.EditAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.EditAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.EditAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.EditAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.EditAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html#mxGraphActions.EditAction(java.lang.String)">mxGraphActions.EditAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.EditAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.EditAction</H3>
    +<PRE>
    +public <B>mxGraphActions.EditAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.EditAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.EditAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.EditAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.FoldAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.FoldAction.html
    new file mode 100644
    index 000000000..554c345ac
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.FoldAction.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.FoldAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.FoldAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.FoldAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.FoldAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.FoldAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.FoldAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.FoldAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.FoldAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.FoldAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html#mxGraphActions.FoldAction(java.lang.String)">mxGraphActions.FoldAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.FoldAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.FoldAction</H3>
    +<PRE>
    +public <B>mxGraphActions.FoldAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.FoldAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.FoldAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.FoldAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.GroupAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.GroupAction.html
    new file mode 100644
    index 000000000..feb09dd85
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.GroupAction.html
    @@ -0,0 +1,319 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.GroupAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.GroupAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.GroupAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.GroupAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.GroupAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.GroupAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.GroupAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.GroupAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.GroupAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html#mxGraphActions.GroupAction(java.lang.String)">mxGraphActions.GroupAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html#getGroupBorder(com.mxgraph.view.mxGraph)">getGroupBorder</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.GroupAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.GroupAction</H3>
    +<PRE>
    +public <B>mxGraphActions.GroupAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getGroupBorder(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +getGroupBorder</H3>
    +<PRE>
    +protected int <B>getGroupBorder</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.GroupAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.GroupAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.GroupAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.LayerAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.LayerAction.html
    new file mode 100644
    index 000000000..47643b447
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.LayerAction.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.LayerAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.LayerAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.LayerAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.LayerAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.LayerAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.LayerAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.LayerAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.LayerAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.LayerAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html#mxGraphActions.LayerAction(java.lang.String)">mxGraphActions.LayerAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.LayerAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.LayerAction</H3>
    +<PRE>
    +public <B>mxGraphActions.LayerAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.LayerAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.LayerAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.LayerAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html
    new file mode 100644
    index 000000000..5a9f19dcd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.RemoveFromParentAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.RemoveFromParentAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.RemoveFromParentAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.RemoveFromParentAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.RemoveFromParentAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.RemoveFromParentAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.RemoveFromParentAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.RemoveFromParentAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html#mxGraphActions.RemoveFromParentAction(java.lang.String)">mxGraphActions.RemoveFromParentAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.RemoveFromParentAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.RemoveFromParentAction</H3>
    +<PRE>
    +public <B>mxGraphActions.RemoveFromParentAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.RemoveFromParentAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.RemoveFromParentAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.SelectAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.SelectAction.html
    new file mode 100644
    index 000000000..955a8082a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.SelectAction.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.SelectAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.SelectAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.SelectAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.SelectAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.SelectAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.SelectAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.SelectAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.SelectAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.SelectAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html#mxGraphActions.SelectAction(java.lang.String)">mxGraphActions.SelectAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.SelectAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.SelectAction</H3>
    +<PRE>
    +public <B>mxGraphActions.SelectAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.SelectAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.SelectAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.SelectAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.UngroupAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.UngroupAction.html
    new file mode 100644
    index 000000000..753e48261
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.UngroupAction.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.UngroupAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.UngroupAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.UngroupAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.UngroupAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.UngroupAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.UngroupAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.UngroupAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.UngroupAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html#mxGraphActions.UngroupAction(java.lang.String)">mxGraphActions.UngroupAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.UngroupAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.UngroupAction</H3>
    +<PRE>
    +public <B>mxGraphActions.UngroupAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.UngroupAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.UngroupAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html
    new file mode 100644
    index 000000000..f82cfe6d4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html
    @@ -0,0 +1,319 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.UpdateGroupBoundsAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.UpdateGroupBoundsAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.UpdateGroupBoundsAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.UpdateGroupBoundsAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.UpdateGroupBoundsAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.UpdateGroupBoundsAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.UpdateGroupBoundsAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.UpdateGroupBoundsAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html#mxGraphActions.UpdateGroupBoundsAction(java.lang.String)">mxGraphActions.UpdateGroupBoundsAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html#getGroupBorder(com.mxgraph.view.mxGraph)">getGroupBorder</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.UpdateGroupBoundsAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.UpdateGroupBoundsAction</H3>
    +<PRE>
    +public <B>mxGraphActions.UpdateGroupBoundsAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getGroupBorder(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +getGroupBorder</H3>
    +<PRE>
    +protected int <B>getGroupBorder</B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.UpdateGroupBoundsAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.UpdateGroupBoundsAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.ZoomAction.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.ZoomAction.html
    new file mode 100644
    index 000000000..48c7d8cb8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.ZoomAction.html
    @@ -0,0 +1,300 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions.ZoomAction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions.ZoomAction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.ZoomAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.ZoomAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions.ZoomAction</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">javax.swing.AbstractAction</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions.ZoomAction</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionListener.html?is-external=true" title="class or interface in java.awt.event">ActionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphActions.ZoomAction</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphActions.ZoomAction">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#changeSupport" title="class or interface in javax.swing">changeSupport</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#enabled" title="class or interface in javax.swing">enabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.Action"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACCELERATOR_KEY" title="class or interface in javax.swing">ACCELERATOR_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#ACTION_COMMAND_KEY" title="class or interface in javax.swing">ACTION_COMMAND_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DEFAULT" title="class or interface in javax.swing">DEFAULT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#DISPLAYED_MNEMONIC_INDEX_KEY" title="class or interface in javax.swing">DISPLAYED_MNEMONIC_INDEX_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LARGE_ICON_KEY" title="class or interface in javax.swing">LARGE_ICON_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#LONG_DESCRIPTION" title="class or interface in javax.swing">LONG_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#MNEMONIC_KEY" title="class or interface in javax.swing">MNEMONIC_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#NAME" title="class or interface in javax.swing">NAME</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SELECTED_KEY" title="class or interface in javax.swing">SELECTED_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SHORT_DESCRIPTION" title="class or interface in javax.swing">SHORT_DESCRIPTION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true#SMALL_ICON" title="class or interface in javax.swing">SMALL_ICON</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html#mxGraphActions.ZoomAction(java.lang.String)">mxGraphActions.ZoomAction</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html#actionPerformed(java.awt.event.ActionEvent)">actionPerformed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.AbstractAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#clone()" title="class or interface in javax.swing">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">firePropertyChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getKeys()" title="class or interface in javax.swing">getKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getPropertyChangeListeners()" title="class or interface in javax.swing">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#getValue(java.lang.String)" title="class or interface in javax.swing">getValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#isEnabled()" title="class or interface in javax.swing">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#putValue(java.lang.String, java.lang.Object)" title="class or interface in javax.swing">putValue</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in javax.swing">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions.ZoomAction(java.lang.String)"><!-- --></A><H3>
    +mxGraphActions.ZoomAction</H3>
    +<PRE>
    +public <B>mxGraphActions.ZoomAction</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="actionPerformed(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +actionPerformed</H3>
    +<PRE>
    +public void <B>actionPerformed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.ZoomAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.ZoomAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_javax.swing.AbstractAction">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphActions.html b/java/docs/com/mxgraph/swing/util/mxGraphActions.html
    new file mode 100644
    index 000000000..d7850b41c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphActions.html
    @@ -0,0 +1,831 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphActions (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphActions (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphActions</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphActions</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphActions</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DeleteAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DrillAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.EditAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.FoldAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.GroupAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.LayerAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.RemoveFromParentAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.SelectAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UngroupAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UpdateGroupBoundsAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.ZoomAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#mxGraphActions()">mxGraphActions</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getCollapseAction()">getCollapseAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getDeleteAction()">getDeleteAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getEditAction()">getEditAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getEnterGroupAction()">getEnterGroupAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getExitGroupAction()">getExitGroupAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getExpandAction()">getExpandAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getGraph(java.awt.event.ActionEvent)">getGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getGroupAction()">getGroupAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getHomeAction()">getHomeAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getRemoveFromParentAction()">getRemoveFromParentAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getSelectAllAction()">getSelectAllAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getSelectChildAction()">getSelectChildAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getSelectEdgesAction()">getSelectEdgesAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getSelectNextAction()">getSelectNextAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getSelectNoneAction()">getSelectNoneAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getSelectParentAction()">getSelectParentAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getSelectPreviousAction()">getSelectPreviousAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getSelectVerticesAction()">getSelectVerticesAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getToBackAction()">getToBackAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getToFrontAction()">getToFrontAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getUngroupAction()">getUngroupAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getUpdateGroupBoundsAction()">getUpdateGroupBoundsAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getZoomActualAction()">getZoomActualAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getZoomInAction()">getZoomInAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getZoomOutAction()">getZoomOutAction</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphActions()"><!-- --></A><H3>
    +mxGraphActions</H3>
    +<PRE>
    +public <B>mxGraphActions</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getDeleteAction()"><!-- --></A><H3>
    +getDeleteAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getDeleteAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the delete action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEditAction()"><!-- --></A><H3>
    +getEditAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getEditAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the edit action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGroupAction()"><!-- --></A><H3>
    +getGroupAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getGroupAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the edit action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getUngroupAction()"><!-- --></A><H3>
    +getUngroupAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getUngroupAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the edit action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRemoveFromParentAction()"><!-- --></A><H3>
    +getRemoveFromParentAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getRemoveFromParentAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the edit action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getUpdateGroupBoundsAction()"><!-- --></A><H3>
    +getUpdateGroupBoundsAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getUpdateGroupBoundsAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the edit action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectAllAction()"><!-- --></A><H3>
    +getSelectAllAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getSelectAllAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the select all action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectVerticesAction()"><!-- --></A><H3>
    +getSelectVerticesAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getSelectVerticesAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the select vertices action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectEdgesAction()"><!-- --></A><H3>
    +getSelectEdgesAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getSelectEdgesAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the select edges action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectNoneAction()"><!-- --></A><H3>
    +getSelectNoneAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getSelectNoneAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the select none action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectNextAction()"><!-- --></A><H3>
    +getSelectNextAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getSelectNextAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the select next action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectPreviousAction()"><!-- --></A><H3>
    +getSelectPreviousAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getSelectPreviousAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the select previous action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectParentAction()"><!-- --></A><H3>
    +getSelectParentAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getSelectParentAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the select parent action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectChildAction()"><!-- --></A><H3>
    +getSelectChildAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getSelectChildAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the select child action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEnterGroupAction()"><!-- --></A><H3>
    +getEnterGroupAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getEnterGroupAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the go into action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getExitGroupAction()"><!-- --></A><H3>
    +getExitGroupAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getExitGroupAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the go up action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHomeAction()"><!-- --></A><H3>
    +getHomeAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getHomeAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the home action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCollapseAction()"><!-- --></A><H3>
    +getCollapseAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getCollapseAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the collapse action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getExpandAction()"><!-- --></A><H3>
    +getExpandAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getExpandAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the expand action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getZoomActualAction()"><!-- --></A><H3>
    +getZoomActualAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getZoomActualAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the zoom actual action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getZoomInAction()"><!-- --></A><H3>
    +getZoomInAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getZoomInAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the zoom in action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getZoomOutAction()"><!-- --></A><H3>
    +getZoomOutAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getZoomOutAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the zoom out action</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getToBackAction()"><!-- --></A><H3>
    +getToBackAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getToBackAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the action that moves cell(s) to the backmost layer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getToFrontAction()"><!-- --></A><H3>
    +getToFrontAction</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A> <B>getToFrontAction</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the action that moves cell(s) to the frontmost layer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraph(java.awt.event.ActionEvent)"><!-- --></A><H3>
    +getGraph</H3>
    +<PRE>
    +public static final <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>getGraph</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>e</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the graph for the given action event.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphActions.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphActions.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphActions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxGraphTransferable.html b/java/docs/com/mxgraph/swing/util/mxGraphTransferable.html
    new file mode 100644
    index 000000000..3aad39522
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxGraphTransferable.html
    @@ -0,0 +1,822 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxGraphTransferable (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphTransferable (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphTransferable.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphTransferable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphTransferable.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxGraphTransferable</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxGraphTransferable</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/plaf/UIResource.html?is-external=true" title="class or interface in javax.swing.plaf">UIResource</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphTransferable</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/plaf/UIResource.html?is-external=true" title="class or interface in javax.swing.plaf">UIResource</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.swing.util.mxGraphTransferable">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#bounds">bounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#cells">cells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#dataFlavor">dataFlavor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serialized Data Flavor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#image">image</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#mxGraphTransferable(java.lang.Object[], com.mxgraph.util.mxRectangle)">mxGraphTransferable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#mxGraphTransferable(java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)">mxGraphTransferable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;image)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getBounds()">getBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the unscaled, untranslated bounding box of the cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getCells()">getCells</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getHtmlData()">getHtmlData</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fetch the data in a text/html format</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getImage()">getImage</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getPlainData()">getPlainData</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fetch the data in a text/plain format.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getRicherData(java.awt.datatransfer.DataFlavor)">getRicherData</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getRicherFlavors()">getRicherFlavors</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Some subclasses will have flavors that are more descriptive than HTML or
    + plain text.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getTransferData(java.awt.datatransfer.DataFlavor)">getTransferData</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an object which represents the data to be transferred.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getTransferDataFlavors()">getTransferDataFlavors</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#isDataFlavorSupported(java.awt.datatransfer.DataFlavor)">isDataFlavorSupported</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether or not the specified data flavor is supported for this
    + object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#isHtmlFlavor(java.awt.datatransfer.DataFlavor)">isHtmlFlavor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether or not the specified data flavor is an HTML flavor that
    + is supported.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#isHtmlSupported()">isHtmlSupported</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the HTML flavors are offered.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#isImageFlavor(java.awt.datatransfer.DataFlavor)">isImageFlavor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#isImageSupported()">isImageSupported</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#isPlainFlavor(java.awt.datatransfer.DataFlavor)">isPlainFlavor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether or not the specified data flavor is an plain flavor that
    + is supported.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#isPlainSupported()">isPlainSupported</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the plain text flavors are offered.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#isRicherFlavor(java.awt.datatransfer.DataFlavor)">isRicherFlavor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#isStringFlavor(java.awt.datatransfer.DataFlavor)">isStringFlavor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether or not the specified data flavor is a String flavor that
    + is supported.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="dataFlavor"><!-- --></A><H3>
    +dataFlavor</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A> <B>dataFlavor</B></PRE>
    +<DL>
    +<DD>Serialized Data Flavor. Use the following code to switch to local 
    + reference flavor:
    + <code>
    + try
    + {
    +   mxGraphTransferable.dataFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType
    +     + "; class=com.mxgraph.swing.util.mxGraphTransferable");
    + }
    + catch (ClassNotFoundException cnfe)
    + {
    +   // do nothing
    + }
    + </code>
    + 
    + If you get a class not found exception, try the following instead:
    + <code>
    + mxGraphTransferable.dataFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType
    +   + "; class=com.mxgraph.swing.util.mxGraphTransferable", null,
    +   new com.mxgraph.swing.util.mxGraphTransferable(null, null).getClass().getClassLoader());
    + </code>
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cells"><!-- --></A><H3>
    +cells</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>cells</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bounds"><!-- --></A><H3>
    +bounds</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>bounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="image"><!-- --></A><H3>
    +image</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>image</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphTransferable(java.lang.Object[], com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +mxGraphTransferable</H3>
    +<PRE>
    +public <B>mxGraphTransferable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                           <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraphTransferable(java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)"><!-- --></A><H3>
    +mxGraphTransferable</H3>
    +<PRE>
    +public <B>mxGraphTransferable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                           <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;image)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getCells()"><!-- --></A><H3>
    +getCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCells</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBounds()"><!-- --></A><H3>
    +getBounds</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBounds</B>()</PRE>
    +<DL>
    +<DD>Returns the unscaled, untranslated bounding box of the cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImage()"><!-- --></A><H3>
    +getImage</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>getImage</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTransferDataFlavors()"><!-- --></A><H3>
    +getTransferDataFlavors</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>[] <B>getTransferDataFlavors</B>()</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true#getTransferDataFlavors()" title="class or interface in java.awt.datatransfer">getTransferDataFlavors</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRicherFlavors()"><!-- --></A><H3>
    +getRicherFlavors</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>[] <B>getRicherFlavors</B>()</PRE>
    +<DL>
    +<DD>Some subclasses will have flavors that are more descriptive than HTML or
    + plain text. If this method returns a non-null value, it will be placed at
    + the start of the array of supported flavors.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDataFlavorSupported(java.awt.datatransfer.DataFlavor)"><!-- --></A><H3>
    +isDataFlavorSupported</H3>
    +<PRE>
    +public boolean <B>isDataFlavorSupported</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</PRE>
    +<DL>
    +<DD>Returns whether or not the specified data flavor is supported for this
    + object.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true#isDataFlavorSupported(java.awt.datatransfer.DataFlavor)" title="class or interface in java.awt.datatransfer">isDataFlavorSupported</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>flavor</CODE> - the requested flavor for the data
    +<DT><B>Returns:</B><DD>boolean indicating whether or not the data flavor is supported</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTransferData(java.awt.datatransfer.DataFlavor)"><!-- --></A><H3>
    +getTransferData</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getTransferData</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)
    +                       throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/UnsupportedFlavorException.html?is-external=true" title="class or interface in java.awt.datatransfer">UnsupportedFlavorException</A>,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Returns an object which represents the data to be transferred. The class
    + of the object returned is defined by the representation class of the
    + flavor.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true#getTransferData(java.awt.datatransfer.DataFlavor)" title="class or interface in java.awt.datatransfer">getTransferData</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>flavor</CODE> - the requested flavor for the data
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE> - if the data is no longer available in the requested
    +                flavor.
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/UnsupportedFlavorException.html?is-external=true" title="class or interface in java.awt.datatransfer">UnsupportedFlavorException</A></CODE> - if the requested data flavor is not supported.<DT><B>See Also:</B><DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true#getRepresentationClass()" title="class or interface in java.awt.datatransfer"><CODE>DataFlavor.getRepresentationClass()</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isRicherFlavor(java.awt.datatransfer.DataFlavor)"><!-- --></A><H3>
    +isRicherFlavor</H3>
    +<PRE>
    +protected boolean <B>isRicherFlavor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>flavor</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given flavor is a richer flavor of this
    + transferable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRicherData(java.awt.datatransfer.DataFlavor)"><!-- --></A><H3>
    +getRicherData</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getRicherData</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)
    +                     throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/UnsupportedFlavorException.html?is-external=true" title="class or interface in java.awt.datatransfer">UnsupportedFlavorException</A></PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>flavor</CODE> - 
    +<DT><B>Returns:</B><DD>the richer data flavor of this and the specified
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/UnsupportedFlavorException.html?is-external=true" title="class or interface in java.awt.datatransfer">UnsupportedFlavorException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHtmlFlavor(java.awt.datatransfer.DataFlavor)"><!-- --></A><H3>
    +isHtmlFlavor</H3>
    +<PRE>
    +protected boolean <B>isHtmlFlavor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</PRE>
    +<DL>
    +<DD>Returns whether or not the specified data flavor is an HTML flavor that
    + is supported.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>flavor</CODE> - the requested flavor for the data
    +<DT><B>Returns:</B><DD>boolean indicating whether or not the data flavor is supported</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHtmlSupported()"><!-- --></A><H3>
    +isHtmlSupported</H3>
    +<PRE>
    +protected boolean <B>isHtmlSupported</B>()</PRE>
    +<DL>
    +<DD>Whether the HTML flavors are offered. If so, the method getHTMLData
    + should be implemented to provide something reasonable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHtmlData()"><!-- --></A><H3>
    +getHtmlData</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getHtmlData</B>()</PRE>
    +<DL>
    +<DD>Fetch the data in a text/html format
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isImageFlavor(java.awt.datatransfer.DataFlavor)"><!-- --></A><H3>
    +isImageFlavor</H3>
    +<PRE>
    +protected boolean <B>isImageFlavor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>flavor</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given flavor is an image flavor of this
    + transferable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isImageSupported()"><!-- --></A><H3>
    +isImageSupported</H3>
    +<PRE>
    +public boolean <B>isImageSupported</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPlainFlavor(java.awt.datatransfer.DataFlavor)"><!-- --></A><H3>
    +isPlainFlavor</H3>
    +<PRE>
    +protected boolean <B>isPlainFlavor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</PRE>
    +<DL>
    +<DD>Returns whether or not the specified data flavor is an plain flavor that
    + is supported.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>flavor</CODE> - the requested flavor for the data
    +<DT><B>Returns:</B><DD>boolean indicating whether or not the data flavor is supported</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPlainSupported()"><!-- --></A><H3>
    +isPlainSupported</H3>
    +<PRE>
    +protected boolean <B>isPlainSupported</B>()</PRE>
    +<DL>
    +<DD>Whether the plain text flavors are offered. If so, the method
    + getPlainData should be implemented to provide something reasonable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPlainData()"><!-- --></A><H3>
    +getPlainData</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getPlainData</B>()</PRE>
    +<DL>
    +<DD>Fetch the data in a text/plain format.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isStringFlavor(java.awt.datatransfer.DataFlavor)"><!-- --></A><H3>
    +isStringFlavor</H3>
    +<PRE>
    +protected boolean <B>isStringFlavor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/DataFlavor.html?is-external=true" title="class or interface in java.awt.datatransfer">DataFlavor</A>&nbsp;flavor)</PRE>
    +<DL>
    +<DD>Returns whether or not the specified data flavor is a String flavor that
    + is supported.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>flavor</CODE> - the requested flavor for the data
    +<DT><B>Returns:</B><DD>boolean indicating whether or not the data flavor is supported</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphTransferable.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxGraphTransferable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphTransferable.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxICellOverlay.html b/java/docs/com/mxgraph/swing/util/mxICellOverlay.html
    new file mode 100644
    index 000000000..d0f050830
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxICellOverlay.html
    @@ -0,0 +1,210 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxICellOverlay (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxICellOverlay (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICellOverlay.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxICellOverlay.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICellOverlay.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Interface mxICellOverlay</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxICellOverlay</B></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html#getBounds(com.mxgraph.view.mxCellState)">getBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getBounds(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getBounds</H3>
    +<PRE>
    +<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBounds</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICellOverlay.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxICellOverlay.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICellOverlay.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxMorphing.html b/java/docs/com/mxgraph/swing/util/mxMorphing.html
    new file mode 100644
    index 000000000..0e281e316
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxMorphing.html
    @@ -0,0 +1,785 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxMorphing (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxMorphing (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMorphing.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxMorphing.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMorphing.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxMorphing</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxAnimation</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxMorphing</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxMorphing</B><DT>extends <A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A></DL>
    +</PRE>
    +
    +<P>
    +Provides animation effects.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#cells">cells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional array of cells to limit the animation to.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#dirty">dirty</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#ease">ease</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ease-off for movement towards the given vector.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#origins">origins</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from cells to origins.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#preview">preview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#step">step</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Counts the current number of steps of the animation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#steps">steps</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the maximum number of steps for the morphing.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.swing.util.mxAnimation"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#DEFAULT_DELAY">DEFAULT_DELAY</A>, <A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#delay">delay</A>, <A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#timer">timer</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#mxMorphing(com.mxgraph.swing.mxGraphComponent)">mxMorphing</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new morphing instance for the given graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#mxMorphing(com.mxgraph.swing.mxGraphComponent, int, double, int)">mxMorphing</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +           int&nbsp;steps,
    +           double&nbsp;ease,
    +           int&nbsp;delay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new morphing instance for the given graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#animateCell(java.lang.Object, com.mxgraph.swing.view.mxCellStatePreview, boolean)">animateCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>&nbsp;move,
    +            boolean&nbsp;recurse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Animates the given cell state using moveState.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#getDelta(com.mxgraph.view.mxCellState)">getDelta</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the vector between the current rendered state and the future
    + location of the state after the display will be updated.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#getEase()">getEase</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the easing for the movements.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#getOriginForCell(java.lang.Object)">getOriginForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the top, left corner of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#getSteps()">getSteps</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of steps for the animation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#setCells(java.lang.Object[])">setCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional array of cells to be animated.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#setEase(double)">setEase</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the easing for the movements.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#setSteps(int)">setSteps</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the number of steps for the animation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#show(com.mxgraph.swing.view.mxCellStatePreview)">show</A></B>(<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>&nbsp;preview)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shows the changes in the given mxCellStatePreview.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#stopAnimation()">stopAnimation</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stops the animation by deleting the timer and fires mxEvent.DONE.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#stopRecursion(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)">stopRecursion</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +              <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;delta)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the animation should not recursively find more
    + deltas for children if the given parent state has been animated.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#updateAnimation()">updateAnimation</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Animation step.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.swing.util.mxAnimation"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#getDelay()">getDelay</A>, <A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#setDelay(int)">setDelay</A>, <A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#startAnimation()">startAnimation</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph instance.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="steps"><!-- --></A><H3>
    +steps</H3>
    +<PRE>
    +protected int <B>steps</B></PRE>
    +<DL>
    +<DD>Specifies the maximum number of steps for the morphing. Default is
    + 6.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="step"><!-- --></A><H3>
    +step</H3>
    +<PRE>
    +protected int <B>step</B></PRE>
    +<DL>
    +<DD>Counts the current number of steps of the animation.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ease"><!-- --></A><H3>
    +ease</H3>
    +<PRE>
    +protected double <B>ease</B></PRE>
    +<DL>
    +<DD>Ease-off for movement towards the given vector. Larger values are
    + slower and smoother. Default is 1.5.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="origins"><!-- --></A><H3>
    +origins</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>origins</B></PRE>
    +<DL>
    +<DD>Maps from cells to origins.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cells"><!-- --></A><H3>
    +cells</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>cells</B></PRE>
    +<DL>
    +<DD>Optional array of cells to limit the animation to.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dirty"><!-- --></A><H3>
    +dirty</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>dirty</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="preview"><!-- --></A><H3>
    +preview</H3>
    +<PRE>
    +protected transient <A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A> <B>preview</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxMorphing(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxMorphing</H3>
    +<PRE>
    +public <B>mxMorphing</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +<DD>Constructs a new morphing instance for the given graph.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxMorphing(com.mxgraph.swing.mxGraphComponent, int, double, int)"><!-- --></A><H3>
    +mxMorphing</H3>
    +<PRE>
    +public <B>mxMorphing</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                  int&nbsp;steps,
    +                  double&nbsp;ease,
    +                  int&nbsp;delay)</PRE>
    +<DL>
    +<DD>Constructs a new morphing instance for the given graph.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getSteps()"><!-- --></A><H3>
    +getSteps</H3>
    +<PRE>
    +public int <B>getSteps</B>()</PRE>
    +<DL>
    +<DD>Returns the number of steps for the animation.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSteps(int)"><!-- --></A><H3>
    +setSteps</H3>
    +<PRE>
    +public void <B>setSteps</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the number of steps for the animation.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEase()"><!-- --></A><H3>
    +getEase</H3>
    +<PRE>
    +public double <B>getEase</B>()</PRE>
    +<DL>
    +<DD>Returns the easing for the movements.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEase(double)"><!-- --></A><H3>
    +setEase</H3>
    +<PRE>
    +public void <B>setEase</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the easing for the movements.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCells(java.lang.Object[])"><!-- --></A><H3>
    +setCells</H3>
    +<PRE>
    +public void <B>setCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;value)</PRE>
    +<DL>
    +<DD>Optional array of cells to be animated. If this is not specified
    + then all cells are checked and animated if they have been moved
    + in the current transaction.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateAnimation()"><!-- --></A><H3>
    +updateAnimation</H3>
    +<PRE>
    +public void <B>updateAnimation</B>()</PRE>
    +<DL>
    +<DD>Animation step.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#updateAnimation()">updateAnimation</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stopAnimation()"><!-- --></A><H3>
    +stopAnimation</H3>
    +<PRE>
    +public void <B>stopAnimation</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#stopAnimation()">mxAnimation</A></CODE></B></DD>
    +<DD>Stops the animation by deleting the timer and fires mxEvent.DONE.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html#stopAnimation()">stopAnimation</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="show(com.mxgraph.swing.view.mxCellStatePreview)"><!-- --></A><H3>
    +show</H3>
    +<PRE>
    +protected void <B>show</B>(<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>&nbsp;preview)</PRE>
    +<DL>
    +<DD>Shows the changes in the given mxCellStatePreview.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="animateCell(java.lang.Object, com.mxgraph.swing.view.mxCellStatePreview, boolean)"><!-- --></A><H3>
    +animateCell</H3>
    +<PRE>
    +protected void <B>animateCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                           <A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>&nbsp;move,
    +                           boolean&nbsp;recurse)</PRE>
    +<DL>
    +<DD>Animates the given cell state using moveState.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stopRecursion(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +stopRecursion</H3>
    +<PRE>
    +protected boolean <B>stopRecursion</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;delta)</PRE>
    +<DL>
    +<DD>Returns true if the animation should not recursively find more
    + deltas for children if the given parent state has been animated.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDelta(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getDelta</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getDelta</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the vector between the current rendered state and the future
    + location of the state after the display will be updated.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOriginForCell(java.lang.Object)"><!-- --></A><H3>
    +getOriginForCell</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getOriginForCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the top, left corner of the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMorphing.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxMorphing.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMorphing.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxMouseAdapter.html b/java/docs/com/mxgraph/swing/util/mxMouseAdapter.html
    new file mode 100644
    index 000000000..1513ab58b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxMouseAdapter.html
    @@ -0,0 +1,394 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxMouseAdapter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxMouseAdapter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMouseAdapter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxMouseAdapter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMouseAdapter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxMouseAdapter</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxMouseAdapter</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>, <A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxMouseAdapter</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mxMouseAdapter()">mxMouseAdapter</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseClicked(java.awt.event.MouseEvent)">mouseClicked</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseDragged(java.awt.event.MouseEvent)">mouseDragged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseEntered(java.awt.event.MouseEvent)">mouseEntered</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseExited(java.awt.event.MouseEvent)">mouseExited</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseMoved(java.awt.event.MouseEvent)">mouseMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mousePressed(java.awt.event.MouseEvent)">mousePressed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html#mouseReleased(java.awt.event.MouseEvent)">mouseReleased</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxMouseAdapter()"><!-- --></A><H3>
    +mxMouseAdapter</H3>
    +<PRE>
    +public <B>mxMouseAdapter</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mouseDragged(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseDragged</H3>
    +<PRE>
    +public void <B>mouseDragged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseDragged(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseDragged</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mousePressed(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mousePressed</H3>
    +<PRE>
    +public void <B>mousePressed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mousePressed(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mousePressed</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseReleased(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseReleased</H3>
    +<PRE>
    +public void <B>mouseReleased</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseReleased(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseReleased</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseMoved(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseMoved</H3>
    +<PRE>
    +public void <B>mouseMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true#mouseMoved(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseMoved</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseClicked(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseClicked</H3>
    +<PRE>
    +public void <B>mouseClicked</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseClicked(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseClicked</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseEntered(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseEntered</H3>
    +<PRE>
    +public void <B>mouseEntered</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseEntered(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseEntered</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="mouseExited(java.awt.event.MouseEvent)"><!-- --></A><H3>
    +mouseExited</H3>
    +<PRE>
    +public void <B>mouseExited</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true#mouseExited(java.awt.event.MouseEvent)" title="class or interface in java.awt.event">mouseExited</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMouseAdapter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxMouseAdapter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMouseAdapter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/mxSwingConstants.html b/java/docs/com/mxgraph/swing/util/mxSwingConstants.html
    new file mode 100644
    index 000000000..fad4c869b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/mxSwingConstants.html
    @@ -0,0 +1,589 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxSwingConstants (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSwingConstants (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSwingConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxSwingConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwingConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.util</FONT>
    +<BR>
    +Class mxSwingConstants</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.util.mxSwingConstants</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSwingConstants</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#CONNECT_HANDLE_FILLCOLOR">CONNECT_HANDLE_FILLCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the connect handle fill color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#DEFAULT_INVALID_COLOR">DEFAULT_INVALID_COLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default invalid color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#DEFAULT_VALID_COLOR">DEFAULT_VALID_COLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default valid color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#EDGE_SELECTION_COLOR">EDGE_SELECTION_COLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the selection color for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#EDGE_SELECTION_STROKE">EDGE_SELECTION_STROKE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the stroke used for painting selected edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#EMPTY_IMAGE">EMPTY_IMAGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contains an empty image of size 1, 1.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#HANDLE_BORDERCOLOR">HANDLE_BORDERCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the handle border color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#HANDLE_FILLCOLOR">HANDLE_FILLCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the handle fill color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#LABEL_HANDLE_FILLCOLOR">LABEL_HANDLE_FILLCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the label handle fill color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#LOCKED_HANDLE_FILLCOLOR">LOCKED_HANDLE_FILLCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the handle fill color for locked handles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/border/Border.html?is-external=true" title="class or interface in javax.swing.border">Border</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#PREVIEW_BORDER">PREVIEW_BORDER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the border used for painting the preview when vertices are being
    + resized, or cells and labels are being moved.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#PREVIEW_STROKE">PREVIEW_STROKE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the stroke used for painting the preview for new and existing edges
    + that are being changed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#RUBBERBAND_BORDERCOLOR">RUBBERBAND_BORDERCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the rubberband border color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#RUBBERBAND_FILLCOLOR">RUBBERBAND_FILLCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the rubberband fill color with an alpha of 80.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#SHADOW_COLOR">SHADOW_COLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the color to be used for shadows.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#VERTEX_SELECTION_COLOR">VERTEX_SELECTION_COLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the selection color for vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#VERTEX_SELECTION_STROKE">VERTEX_SELECTION_STROKE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the stroke used for painting the border of selected vertices.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html#mxSwingConstants()">mxSwingConstants</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="EMPTY_IMAGE"><!-- --></A><H3>
    +EMPTY_IMAGE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>EMPTY_IMAGE</B></PRE>
    +<DL>
    +<DD>Contains an empty image of size 1, 1.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHADOW_COLOR"><!-- --></A><H3>
    +SHADOW_COLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>SHADOW_COLOR</B></PRE>
    +<DL>
    +<DD>Defines the color to be used for shadows. Default is gray.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_VALID_COLOR"><!-- --></A><H3>
    +DEFAULT_VALID_COLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>DEFAULT_VALID_COLOR</B></PRE>
    +<DL>
    +<DD>Specifies the default valid color. Default is green.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_INVALID_COLOR"><!-- --></A><H3>
    +DEFAULT_INVALID_COLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>DEFAULT_INVALID_COLOR</B></PRE>
    +<DL>
    +<DD>Specifies the default invalid color. Default is red.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="RUBBERBAND_BORDERCOLOR"><!-- --></A><H3>
    +RUBBERBAND_BORDERCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>RUBBERBAND_BORDERCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the rubberband border color.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="RUBBERBAND_FILLCOLOR"><!-- --></A><H3>
    +RUBBERBAND_FILLCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>RUBBERBAND_FILLCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the rubberband fill color with an alpha of 80.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="HANDLE_BORDERCOLOR"><!-- --></A><H3>
    +HANDLE_BORDERCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>HANDLE_BORDERCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the handle border color. Default is black.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="HANDLE_FILLCOLOR"><!-- --></A><H3>
    +HANDLE_FILLCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>HANDLE_FILLCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the handle fill color. Default is green.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LABEL_HANDLE_FILLCOLOR"><!-- --></A><H3>
    +LABEL_HANDLE_FILLCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>LABEL_HANDLE_FILLCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the label handle fill color. Default is yellow.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CONNECT_HANDLE_FILLCOLOR"><!-- --></A><H3>
    +CONNECT_HANDLE_FILLCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>CONNECT_HANDLE_FILLCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the connect handle fill color. Default is blue.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LOCKED_HANDLE_FILLCOLOR"><!-- --></A><H3>
    +LOCKED_HANDLE_FILLCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>LOCKED_HANDLE_FILLCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the handle fill color for locked handles. Default is red.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE_SELECTION_COLOR"><!-- --></A><H3>
    +EDGE_SELECTION_COLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>EDGE_SELECTION_COLOR</B></PRE>
    +<DL>
    +<DD>Defines the selection color for edges. Default is green.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="VERTEX_SELECTION_COLOR"><!-- --></A><H3>
    +VERTEX_SELECTION_COLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>VERTEX_SELECTION_COLOR</B></PRE>
    +<DL>
    +<DD>Defines the selection color for vertices. Default is green.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGE_SELECTION_STROKE"><!-- --></A><H3>
    +EDGE_SELECTION_STROKE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A> <B>EDGE_SELECTION_STROKE</B></PRE>
    +<DL>
    +<DD>Defines the stroke used for painting selected edges. Default is a dashed
    + line.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="VERTEX_SELECTION_STROKE"><!-- --></A><H3>
    +VERTEX_SELECTION_STROKE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A> <B>VERTEX_SELECTION_STROKE</B></PRE>
    +<DL>
    +<DD>Defines the stroke used for painting the border of selected vertices.
    + Default is a dashed line.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PREVIEW_STROKE"><!-- --></A><H3>
    +PREVIEW_STROKE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Stroke.html?is-external=true" title="class or interface in java.awt">Stroke</A> <B>PREVIEW_STROKE</B></PRE>
    +<DL>
    +<DD>Defines the stroke used for painting the preview for new and existing edges
    + that are being changed. Default is a dashed line.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PREVIEW_BORDER"><!-- --></A><H3>
    +PREVIEW_BORDER</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/border/Border.html?is-external=true" title="class or interface in javax.swing.border">Border</A> <B>PREVIEW_BORDER</B></PRE>
    +<DL>
    +<DD>Defines the border used for painting the preview when vertices are being
    + resized, or cells and labels are being moved.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSwingConstants()"><!-- --></A><H3>
    +mxSwingConstants</H3>
    +<PRE>
    +public <B>mxSwingConstants</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSwingConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/mxSwingConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwingConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/package-frame.html b/java/docs/com/mxgraph/swing/util/package-frame.html
    new file mode 100644
    index 000000000..2d3656739
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/package-frame.html
    @@ -0,0 +1,77 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing.util (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../com/mxgraph/swing/util/package-summary.html" target="classFrame">com.mxgraph.swing.util</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxICellOverlay.html" title="interface in com.mxgraph.swing.util" target="classFrame"><I>mxICellOverlay</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxAnimation.html" title="class in com.mxgraph.swing.util" target="classFrame">mxAnimation</A>
    +<BR>
    +<A HREF="mxCellOverlay.html" title="class in com.mxgraph.swing.util" target="classFrame">mxCellOverlay</A>
    +<BR>
    +<A HREF="mxGraphActions.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions</A>
    +<BR>
    +<A HREF="mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.DeleteAction</A>
    +<BR>
    +<A HREF="mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.DrillAction</A>
    +<BR>
    +<A HREF="mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.EditAction</A>
    +<BR>
    +<A HREF="mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.FoldAction</A>
    +<BR>
    +<A HREF="mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.GroupAction</A>
    +<BR>
    +<A HREF="mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.LayerAction</A>
    +<BR>
    +<A HREF="mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.RemoveFromParentAction</A>
    +<BR>
    +<A HREF="mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.SelectAction</A>
    +<BR>
    +<A HREF="mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.UngroupAction</A>
    +<BR>
    +<A HREF="mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.UpdateGroupBoundsAction</A>
    +<BR>
    +<A HREF="mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphActions.ZoomAction</A>
    +<BR>
    +<A HREF="mxGraphTransferable.html" title="class in com.mxgraph.swing.util" target="classFrame">mxGraphTransferable</A>
    +<BR>
    +<A HREF="mxMorphing.html" title="class in com.mxgraph.swing.util" target="classFrame">mxMorphing</A>
    +<BR>
    +<A HREF="mxMouseAdapter.html" title="class in com.mxgraph.swing.util" target="classFrame">mxMouseAdapter</A>
    +<BR>
    +<A HREF="mxSwingConstants.html" title="class in com.mxgraph.swing.util" target="classFrame">mxSwingConstants</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/package-summary.html b/java/docs/com/mxgraph/swing/util/package-summary.html
    new file mode 100644
    index 000000000..030d26f1c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/package-summary.html
    @@ -0,0 +1,257 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing.util (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.swing.util (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.swing.util
    +</H2>
    +This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A></B></TD>
    +<TD>Baseclass for all timer-based animations.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DeleteAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DrillAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.EditAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.FoldAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.GroupAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.LayerAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.RemoveFromParentAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.SelectAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UngroupAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UpdateGroupBoundsAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.ZoomAction</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A></B></TD>
    +<TD>Provides animation effects.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.swing.util Description
    +</H2>
    +
    +<P>
    +This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/package-tree.html b/java/docs/com/mxgraph/swing/util/package-tree.html
    new file mode 100644
    index 000000000..b34a535ba
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/package-tree.html
    @@ -0,0 +1,177 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing.util Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.swing.util Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.swing.util
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing"><B>AbstractAction</B></A> (implements javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A>, java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.DeleteAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.DrillAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.EditAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.FoldAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.GroupAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.LayerAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.RemoveFromParentAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.SelectAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.UngroupAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.UpdateGroupBoundsAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.ZoomAction</B></A></UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt"><B>Component</B></A> (implements java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt"><B>Container</B></A><UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing"><B>JComponent</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util"><B>mxCellOverlay</B></A> (implements com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>)
    +</UL>
    +</UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>mxEventSource</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util"><B>mxAnimation</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util"><B>mxMorphing</B></A></UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util"><B>mxGraphTransferable</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, java.awt.datatransfer.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>, javax.swing.plaf.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/plaf/UIResource.html?is-external=true" title="class or interface in javax.swing.plaf">UIResource</A>)
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><B>mxMouseAdapter</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util"><B>mxSwingConstants</B></A></UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><B>mxICellOverlay</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/util/package-use.html b/java/docs/com/mxgraph/swing/util/package-use.html
    new file mode 100644
    index 000000000..001a2f05b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/util/package-use.html
    @@ -0,0 +1,224 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.swing.util (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.swing.util (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.swing.util</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> used by <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/util/class-use/mxICellOverlay.html#com.mxgraph.swing"><B>mxICellOverlay</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> used by <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/util/class-use/mxGraphTransferable.html#com.mxgraph.swing.handler"><B>mxGraphTransferable</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/util/class-use/mxMouseAdapter.html#com.mxgraph.swing.handler"><B>mxMouseAdapter</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> used by <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/util/class-use/mxAnimation.html#com.mxgraph.swing.util"><B>mxAnimation</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Baseclass for all timer-based animations.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/util/class-use/mxICellOverlay.html#com.mxgraph.swing.util"><B>mxICellOverlay</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/util/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/class-use/mxCellEditor.html b/java/docs/com/mxgraph/swing/view/class-use/mxCellEditor.html
    new file mode 100644
    index 000000000..79f968c94
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/class-use/mxCellEditor.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.view.mxCellEditor (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.view.mxCellEditor (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/view//class-usemxCellEditor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellEditor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.view.mxCellEditor</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.swing.view.mxCellEditor
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/view//class-usemxCellEditor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellEditor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/class-use/mxCellStatePreview.html b/java/docs/com/mxgraph/swing/view/class-use/mxCellStatePreview.html
    new file mode 100644
    index 000000000..99433463e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/class-use/mxCellStatePreview.html
    @@ -0,0 +1,254 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.view.mxCellStatePreview (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.view.mxCellStatePreview (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/view//class-usemxCellStatePreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellStatePreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.view.mxCellStatePreview</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A> in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html#preview">preview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../../com/mxgraph/swing/handler/mxMovePreview.html#createCellStatePreview()">createCellStatePreview</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A> in <A HREF="../../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> declared as <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../../com/mxgraph/swing/util/mxMorphing.html#preview">preview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> with parameters of type <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../../com/mxgraph/swing/util/mxMorphing.html#animateCell(java.lang.Object, com.mxgraph.swing.view.mxCellStatePreview, boolean)">animateCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>&nbsp;move,
    +            boolean&nbsp;recurse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Animates the given cell state using moveState.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../../com/mxgraph/swing/util/mxMorphing.html#show(com.mxgraph.swing.view.mxCellStatePreview)">show</A></B>(<A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>&nbsp;preview)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shows the changes in the given mxCellStatePreview.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/view//class-usemxCellStatePreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellStatePreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/class-use/mxICellEditor.html b/java/docs/com/mxgraph/swing/view/class-use/mxICellEditor.html
    new file mode 100644
    index 000000000..a718a1410
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/class-use/mxICellEditor.html
    @@ -0,0 +1,253 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.swing.view.mxICellEditor (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.swing.view.mxICellEditor (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/view//class-usemxICellEditor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICellEditor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.swing.view.mxICellEditor</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A> in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#cellEditor">cellEditor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#createCellEditor()">createCellEditor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#getCellEditor()">getCellEditor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#setCellEditor(com.mxgraph.swing.view.mxICellEditor)">setCellEditor</A></B>(<A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A> in <A HREF="../../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> that implement <A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To control this editor, use mxGraph.invokesStopCellEditing, mxGraph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/view//class-usemxICellEditor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICellEditor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/class-use/mxInteractiveCanvas.html b/java/docs/com/mxgraph/swing/view/class-use/mxInteractiveCanvas.html
    new file mode 100644
    index 000000000..5d6ea180a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/class-use/mxInteractiveCanvas.html
    @@ -0,0 +1,207 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.swing.view.mxInteractiveCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.swing.view.mxInteractiveCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/view//class-usemxInteractiveCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxInteractiveCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.swing.view.mxInteractiveCanvas</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A> in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#canvas">canvas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#createCanvas()">createCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to replace the graphics canvas for rendering and and
    + printing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../../com/mxgraph/swing/mxGraphComponent.html#getCanvas()">getCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/swing/view//class-usemxInteractiveCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxInteractiveCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/mxCellEditor.html b/java/docs/com/mxgraph/swing/view/mxCellEditor.html
    new file mode 100644
    index 000000000..a98797d35
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/mxCellEditor.html
    @@ -0,0 +1,1116 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxCellEditor (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellEditor (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellEditor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/mxCellEditor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellEditor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.view</FONT>
    +<BR>
    +Class mxCellEditor</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.view.mxCellEditor</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellEditor</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></DL>
    +</PRE>
    +
    +<P>
    +To control this editor, use mxGraph.invokesStopCellEditing, mxGraph.
    + enterStopsCellEditing and mxGraph.escapeEnabled.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#cancelEditingAction">cancelEditingAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#DEFAULT_MIN_HEIGHT">DEFAULT_MIN_HEIGHT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#DEFAULT_MIN_WIDTH">DEFAULT_MIN_WIDTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#DEFAULT_MINIMUM_EDITOR_SCALE">DEFAULT_MINIMUM_EDITOR_SCALE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#editingCell">editingCell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JEditorPane.html?is-external=true" title="class or interface in javax.swing">JEditorPane</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#editorPane">editorPane</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the editor for HTML editing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#extractHtmlBody">extractHtmlBody</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the text content of the HTML body should be extracted
    + before and after editing for HTML markup.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#minimumEditorScale">minimumEditorScale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the minimum scale to be used for the editor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#minimumHeight">minimumHeight</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#minimumWidth">minimumWidth</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#replaceLinefeeds">replaceLinefeeds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if linefeeds should be replaced with BREAKS before editing,
    + and BREAKS should be replaced with linefeeds after editing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing">JScrollPane</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#scrollPane">scrollPane</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#shiftEnterSubmitsText">shiftEnterSubmitsText</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if shift ENTER should submit text if enterStopsCellEditing
    + is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JTextArea.html?is-external=true" title="class or interface in javax.swing">JTextArea</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#textArea">textArea</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the editor for plain text editing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#textSubmitAction">textSubmitAction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#trigger">trigger</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#mxCellEditor(com.mxgraph.swing.mxGraphComponent)">mxCellEditor</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#configureActionMaps()">configureActionMaps</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Installs the keyListener in the textArea and editorPane
    + for handling the enter keystroke and updating the modified state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getCurrentValue()">getCurrentValue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current editing value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getEditingCell()">getEditingCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell that is currently being edited.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getEditor()">getEditor</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current editor or null if no editing is in progress.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getEditorBounds(com.mxgraph.view.mxCellState, double)">getEditorBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds to be used for the editor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getInitialValue(com.mxgraph.view.mxCellState, java.util.EventObject)">getInitialValue</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;trigger)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the initial editing value for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getMinimumEditorScale()">getMinimumEditorScale</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getMinimumHeight()">getMinimumHeight</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getMinimumWidth()">getMinimumWidth</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#isExtractHtmlBody()">isExtractHtmlBody</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns replaceHtmlLinefeeds</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#isHideLabel(com.mxgraph.view.mxCellState)">isHideLabel</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#isReplaceHtmlLinefeeds()">isReplaceHtmlLinefeeds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns replaceHtmlLinefeeds</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#isShiftEnterSubmitsText()">isShiftEnterSubmitsText</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns shiftEnterSubmitsText</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#setExtractHtmlBody(boolean)">setExtractHtmlBody</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets extractHtmlBody</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#setMinimumEditorScale(double)">setMinimumEditorScale</A></B>(double&nbsp;minimumEditorScale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#setMinimumHeight(int)">setMinimumHeight</A></B>(int&nbsp;minimumHeight)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#setMinimumWidth(int)">setMinimumWidth</A></B>(int&nbsp;minimumWidth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#setReplaceHtmlLinefeeds(boolean)">setReplaceHtmlLinefeeds</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets replaceHtmlLinefeeds</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#setShiftEnterSubmitsText(boolean)">setShiftEnterSubmitsText</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets shiftEnterSubmitsText</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#startEditing(java.lang.Object, java.util.EventObject)">startEditing</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;evt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starts editing the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#stopEditing(boolean)">stopEditing</A></B>(boolean&nbsp;cancel)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stops the current editing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#useLabelBounds(com.mxgraph.view.mxCellState)">useLabelBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the label bounds of the state should be used for the
    + editor.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="DEFAULT_MIN_WIDTH"><!-- --></A><H3>
    +DEFAULT_MIN_WIDTH</H3>
    +<PRE>
    +public static int <B>DEFAULT_MIN_WIDTH</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_MIN_HEIGHT"><!-- --></A><H3>
    +DEFAULT_MIN_HEIGHT</H3>
    +<PRE>
    +public static int <B>DEFAULT_MIN_HEIGHT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_MINIMUM_EDITOR_SCALE"><!-- --></A><H3>
    +DEFAULT_MINIMUM_EDITOR_SCALE</H3>
    +<PRE>
    +public static double <B>DEFAULT_MINIMUM_EDITOR_SCALE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minimumEditorScale"><!-- --></A><H3>
    +minimumEditorScale</H3>
    +<PRE>
    +protected double <B>minimumEditorScale</B></PRE>
    +<DL>
    +<DD>Defines the minimum scale to be used for the editor. Set this to
    + 0 if the font size in the editor
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minimumWidth"><!-- --></A><H3>
    +minimumWidth</H3>
    +<PRE>
    +protected int <B>minimumWidth</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minimumHeight"><!-- --></A><H3>
    +minimumHeight</H3>
    +<PRE>
    +protected int <B>minimumHeight</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="editingCell"><!-- --></A><H3>
    +editingCell</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>editingCell</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="trigger"><!-- --></A><H3>
    +trigger</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A> <B>trigger</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="scrollPane"><!-- --></A><H3>
    +scrollPane</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing">JScrollPane</A> <B>scrollPane</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="textArea"><!-- --></A><H3>
    +textArea</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JTextArea.html?is-external=true" title="class or interface in javax.swing">JTextArea</A> <B>textArea</B></PRE>
    +<DL>
    +<DD>Holds the editor for plain text editing.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="editorPane"><!-- --></A><H3>
    +editorPane</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JEditorPane.html?is-external=true" title="class or interface in javax.swing">JEditorPane</A> <B>editorPane</B></PRE>
    +<DL>
    +<DD>Holds the editor for HTML editing.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="extractHtmlBody"><!-- --></A><H3>
    +extractHtmlBody</H3>
    +<PRE>
    +protected boolean <B>extractHtmlBody</B></PRE>
    +<DL>
    +<DD>Specifies if the text content of the HTML body should be extracted
    + before and after editing for HTML markup. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="replaceLinefeeds"><!-- --></A><H3>
    +replaceLinefeeds</H3>
    +<PRE>
    +protected boolean <B>replaceLinefeeds</B></PRE>
    +<DL>
    +<DD>Specifies if linefeeds should be replaced with BREAKS before editing,
    + and BREAKS should be replaced with linefeeds after editing. This
    + value is ignored if extractHtmlBody is false. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="shiftEnterSubmitsText"><!-- --></A><H3>
    +shiftEnterSubmitsText</H3>
    +<PRE>
    +protected boolean <B>shiftEnterSubmitsText</B></PRE>
    +<DL>
    +<DD>Specifies if shift ENTER should submit text if enterStopsCellEditing
    + is true. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cancelEditingAction"><!-- --></A><H3>
    +cancelEditingAction</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> <B>cancelEditingAction</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="textSubmitAction"><!-- --></A><H3>
    +textSubmitAction</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> <B>textSubmitAction</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellEditor(com.mxgraph.swing.mxGraphComponent)"><!-- --></A><H3>
    +mxCellEditor</H3>
    +<PRE>
    +public <B>mxCellEditor</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isExtractHtmlBody()"><!-- --></A><H3>
    +isExtractHtmlBody</H3>
    +<PRE>
    +public boolean <B>isExtractHtmlBody</B>()</PRE>
    +<DL>
    +<DD>Returns replaceHtmlLinefeeds
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setExtractHtmlBody(boolean)"><!-- --></A><H3>
    +setExtractHtmlBody</H3>
    +<PRE>
    +public void <B>setExtractHtmlBody</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets extractHtmlBody
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isReplaceHtmlLinefeeds()"><!-- --></A><H3>
    +isReplaceHtmlLinefeeds</H3>
    +<PRE>
    +public boolean <B>isReplaceHtmlLinefeeds</B>()</PRE>
    +<DL>
    +<DD>Returns replaceHtmlLinefeeds
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setReplaceHtmlLinefeeds(boolean)"><!-- --></A><H3>
    +setReplaceHtmlLinefeeds</H3>
    +<PRE>
    +public void <B>setReplaceHtmlLinefeeds</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets replaceHtmlLinefeeds
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isShiftEnterSubmitsText()"><!-- --></A><H3>
    +isShiftEnterSubmitsText</H3>
    +<PRE>
    +public boolean <B>isShiftEnterSubmitsText</B>()</PRE>
    +<DL>
    +<DD>Returns shiftEnterSubmitsText
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setShiftEnterSubmitsText(boolean)"><!-- --></A><H3>
    +setShiftEnterSubmitsText</H3>
    +<PRE>
    +public void <B>setShiftEnterSubmitsText</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets shiftEnterSubmitsText
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="configureActionMaps()"><!-- --></A><H3>
    +configureActionMaps</H3>
    +<PRE>
    +protected void <B>configureActionMaps</B>()</PRE>
    +<DL>
    +<DD>Installs the keyListener in the textArea and editorPane
    + for handling the enter keystroke and updating the modified state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEditor()"><!-- --></A><H3>
    +getEditor</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A> <B>getEditor</B>()</PRE>
    +<DL>
    +<DD>Returns the current editor or null if no editing is in progress.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="useLabelBounds(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +useLabelBounds</H3>
    +<PRE>
    +protected boolean <B>useLabelBounds</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns true if the label bounds of the state should be used for the
    + editor.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEditorBounds(com.mxgraph.view.mxCellState, double)"><!-- --></A><H3>
    +getEditorBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getEditorBounds</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                 double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Returns the bounds to be used for the editor.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startEditing(java.lang.Object, java.util.EventObject)"><!-- --></A><H3>
    +startEditing</H3>
    +<PRE>
    +public void <B>startEditing</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;evt)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html#startEditing(java.lang.Object, java.util.EventObject)">mxICellEditor</A></CODE></B></DD>
    +<DD>Starts editing the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html#startEditing(java.lang.Object, java.util.EventObject)">startEditing</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHideLabel(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +isHideLabel</H3>
    +<PRE>
    +protected boolean <B>isHideLabel</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stopEditing(boolean)"><!-- --></A><H3>
    +stopEditing</H3>
    +<PRE>
    +public void <B>stopEditing</B>(boolean&nbsp;cancel)</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html#stopEditing(boolean)">mxICellEditor</A></CODE></B></DD>
    +<DD>Stops the current editing.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html#stopEditing(boolean)">stopEditing</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInitialValue(com.mxgraph.view.mxCellState, java.util.EventObject)"><!-- --></A><H3>
    +getInitialValue</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getInitialValue</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;trigger)</PRE>
    +<DL>
    +<DD>Gets the initial editing value for the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurrentValue()"><!-- --></A><H3>
    +getCurrentValue</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getCurrentValue</B>()</PRE>
    +<DL>
    +<DD>Returns the current editing value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEditingCell()"><!-- --></A><H3>
    +getEditingCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getEditingCell</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html#getEditingCell()">mxICellEditor</A></CODE></B></DD>
    +<DD>Returns the cell that is currently being edited.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html#getEditingCell()">getEditingCell</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMinimumEditorScale()"><!-- --></A><H3>
    +getMinimumEditorScale</H3>
    +<PRE>
    +public double <B>getMinimumEditorScale</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the minimumEditorScale</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMinimumEditorScale(double)"><!-- --></A><H3>
    +setMinimumEditorScale</H3>
    +<PRE>
    +public void <B>setMinimumEditorScale</B>(double&nbsp;minimumEditorScale)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>minimumEditorScale</CODE> - the minimumEditorScale to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMinimumWidth()"><!-- --></A><H3>
    +getMinimumWidth</H3>
    +<PRE>
    +public int <B>getMinimumWidth</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the minimumWidth</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMinimumWidth(int)"><!-- --></A><H3>
    +setMinimumWidth</H3>
    +<PRE>
    +public void <B>setMinimumWidth</B>(int&nbsp;minimumWidth)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>minimumWidth</CODE> - the minimumWidth to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMinimumHeight()"><!-- --></A><H3>
    +getMinimumHeight</H3>
    +<PRE>
    +public int <B>getMinimumHeight</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the minimumHeight</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMinimumHeight(int)"><!-- --></A><H3>
    +setMinimumHeight</H3>
    +<PRE>
    +public void <B>setMinimumHeight</B>(int&nbsp;minimumHeight)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>minimumHeight</CODE> - the minimumHeight to set</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellEditor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/mxCellEditor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellEditor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/mxCellStatePreview.html b/java/docs/com/mxgraph/swing/view/mxCellStatePreview.html
    new file mode 100644
    index 000000000..3c7c930ee
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/mxCellStatePreview.html
    @@ -0,0 +1,785 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxCellStatePreview (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellStatePreview (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellStatePreview.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/mxCellStatePreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellStatePreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.view</FONT>
    +<BR>
    +Class mxCellStatePreview</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.view.mxCellStatePreview</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellStatePreview</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Represents the current state of a cell in a given graph view.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#cellStates">cellStates</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#cloned">cloned</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if cell states should be cloned or changed in-place.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#count">count</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#deltas">deltas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#graphComponent">graphComponent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#opacity">opacity</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#mxCellStatePreview(com.mxgraph.swing.mxGraphComponent, boolean)">mxCellStatePreview</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                   boolean&nbsp;cloned)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new state preview.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#addEdges(com.mxgraph.view.mxCellState)">addEdges</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#getCount()">getCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#getDeltas()">getDeltas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#getOpacity()">getOpacity</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#getOpacityForCell(java.lang.Object)">getOpacityForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#isCloned()">isCloned</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#isEmpty()">isEmpty</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#moveState(com.mxgraph.view.mxCellState, double, double)">moveState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#moveState(com.mxgraph.view.mxCellState, double, double, boolean, boolean)">moveState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          double&nbsp;dx,
    +          double&nbsp;dy,
    +          boolean&nbsp;add,
    +          boolean&nbsp;includeEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#paint(java.awt.Graphics)">paint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#paintPreview(com.mxgraph.canvas.mxGraphics2DCanvas)">paintPreview</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the preview using the graphics canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#paintPreviewState(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintPreviewState</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the preview using the graphics canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#restore(java.util.List)">restore</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;&nbsp;snapshot)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#restoreState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">restoreState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;from)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#revalidateState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, double, double)">revalidateState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                double&nbsp;dx,
    +                double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#setCloned(boolean)">setCloned</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#setOpacity(float)">setOpacity</A></B>(float&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#show()">show</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a dirty rectangle to be repainted in mxGraphControl.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#snapshot(com.mxgraph.view.mxCellState)">snapshot</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#translateState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, double, double)">translateState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +               double&nbsp;dx,
    +               double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="deltas"><!-- --></A><H3>
    +deltas</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>deltas</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="count"><!-- --></A><H3>
    +count</H3>
    +<PRE>
    +protected int <B>count</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphComponent"><!-- --></A><H3>
    +graphComponent</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cloned"><!-- --></A><H3>
    +cloned</H3>
    +<PRE>
    +protected boolean <B>cloned</B></PRE>
    +<DL>
    +<DD>Specifies if cell states should be cloned or changed in-place.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="opacity"><!-- --></A><H3>
    +opacity</H3>
    +<PRE>
    +protected float <B>opacity</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellStates"><!-- --></A><H3>
    +cellStates</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt; <B>cellStates</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellStatePreview(com.mxgraph.swing.mxGraphComponent, boolean)"><!-- --></A><H3>
    +mxCellStatePreview</H3>
    +<PRE>
    +public <B>mxCellStatePreview</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                          boolean&nbsp;cloned)</PRE>
    +<DL>
    +<DD>Constructs a new state preview. The paint handler to invoke the paint
    + method must be installed elsewhere.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isCloned()"><!-- --></A><H3>
    +isCloned</H3>
    +<PRE>
    +public boolean <B>isCloned</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCloned(boolean)"><!-- --></A><H3>
    +setCloned</H3>
    +<PRE>
    +public void <B>setCloned</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEmpty()"><!-- --></A><H3>
    +isEmpty</H3>
    +<PRE>
    +public boolean <B>isEmpty</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCount()"><!-- --></A><H3>
    +getCount</H3>
    +<PRE>
    +public int <B>getCount</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDeltas()"><!-- --></A><H3>
    +getDeltas</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>getDeltas</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOpacity(float)"><!-- --></A><H3>
    +setOpacity</H3>
    +<PRE>
    +public void <B>setOpacity</B>(float&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOpacity()"><!-- --></A><H3>
    +getOpacity</H3>
    +<PRE>
    +public float <B>getOpacity</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveState(com.mxgraph.view.mxCellState, double, double)"><!-- --></A><H3>
    +moveState</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>moveState</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                         double&nbsp;dx,
    +                         double&nbsp;dy)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveState(com.mxgraph.view.mxCellState, double, double, boolean, boolean)"><!-- --></A><H3>
    +moveState</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>moveState</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                         double&nbsp;dx,
    +                         double&nbsp;dy,
    +                         boolean&nbsp;add,
    +                         boolean&nbsp;includeEdges)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="show()"><!-- --></A><H3>
    +show</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>show</B>()</PRE>
    +<DL>
    +<DD>Returns a dirty rectangle to be repainted in mxGraphControl.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="restore(java.util.List)"><!-- --></A><H3>
    +restore</H3>
    +<PRE>
    +public void <B>restore</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;&nbsp;snapshot)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="restoreState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +restoreState</H3>
    +<PRE>
    +public void <B>restoreState</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                         <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;from)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="snapshot(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +snapshot</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt; <B>snapshot</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="translateState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, double, double)"><!-- --></A><H3>
    +translateState</H3>
    +<PRE>
    +protected void <B>translateState</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +                              <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                              double&nbsp;dx,
    +                              double&nbsp;dy)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="revalidateState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, double, double)"><!-- --></A><H3>
    +revalidateState</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>revalidateState</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +                                      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                      double&nbsp;dx,
    +                                      double&nbsp;dy)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addEdges(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +addEdges</H3>
    +<PRE>
    +public void <B>addEdges</B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paint(java.awt.Graphics)"><!-- --></A><H3>
    +paint</H3>
    +<PRE>
    +public void <B>paint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOpacityForCell(java.lang.Object)"><!-- --></A><H3>
    +getOpacityForCell</H3>
    +<PRE>
    +protected float <B>getOpacityForCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintPreview(com.mxgraph.canvas.mxGraphics2DCanvas)"><!-- --></A><H3>
    +paintPreview</H3>
    +<PRE>
    +protected void <B>paintPreview</B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas)</PRE>
    +<DL>
    +<DD>Draws the preview using the graphics canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paintPreviewState(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +paintPreviewState</H3>
    +<PRE>
    +protected void <B>paintPreviewState</B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                                 <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Draws the preview using the graphics canvas.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellStatePreview.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/mxCellStatePreview.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellStatePreview.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/mxICellEditor.html b/java/docs/com/mxgraph/swing/view/mxICellEditor.html
    new file mode 100644
    index 000000000..43d2e90bd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/mxICellEditor.html
    @@ -0,0 +1,256 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxICellEditor (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxICellEditor (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICellEditor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/mxICellEditor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICellEditor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.view</FONT>
    +<BR>
    +Interface mxICellEditor</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>mxICellEditor</B></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html#getEditingCell()">getEditingCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell that is currently being edited.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html#startEditing(java.lang.Object, java.util.EventObject)">startEditing</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;trigger)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starts editing the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html#stopEditing(boolean)">stopEditing</A></B>(boolean&nbsp;cancel)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stops the current editing.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getEditingCell()"><!-- --></A><H3>
    +getEditingCell</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getEditingCell</B>()</PRE>
    +<DL>
    +<DD>Returns the cell that is currently being edited.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startEditing(java.lang.Object, java.util.EventObject)"><!-- --></A><H3>
    +startEditing</H3>
    +<PRE>
    +void <B>startEditing</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;trigger)</PRE>
    +<DL>
    +<DD>Starts editing the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="stopEditing(boolean)"><!-- --></A><H3>
    +stopEditing</H3>
    +<PRE>
    +void <B>stopEditing</B>(boolean&nbsp;cancel)</PRE>
    +<DL>
    +<DD>Stops the current editing.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxICellEditor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/mxICellEditor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxICellEditor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/mxInteractiveCanvas.html b/java/docs/com/mxgraph/swing/view/mxInteractiveCanvas.html
    new file mode 100644
    index 000000000..fe994d9dd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/mxInteractiveCanvas.html
    @@ -0,0 +1,492 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxInteractiveCanvas (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxInteractiveCanvas (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxInteractiveCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/mxInteractiveCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxInteractiveCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.swing.view</FONT>
    +<BR>
    +Class mxInteractiveCanvas</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">com.mxgraph.canvas.mxBasicCanvas</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">com.mxgraph.canvas.mxGraphics2DCanvas</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.swing.view.mxInteractiveCanvas</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxInteractiveCanvas</B><DT>extends <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#imageObserver">imageObserver</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.canvas.mxGraphics2DCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.canvas.<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#g">g</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#IMAGE_SCALING">IMAGE_SCALING</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#rendererPane">rendererPane</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#shapes">shapes</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#TEXT_SHAPE_DEFAULT">TEXT_SHAPE_DEFAULT</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#TEXT_SHAPE_HTML">TEXT_SHAPE_HTML</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#textShapes">textShapes</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.canvas.<A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#DEFAULT_IMAGEBASEPATH">DEFAULT_IMAGEBASEPATH</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#drawLabels">drawLabels</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#imageBasePath">imageBasePath</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#imageCache">imageCache</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#PRESERVE_IMAGE_ASPECT">PRESERVE_IMAGE_ASPECT</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#scale">scale</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#translate">translate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#mxInteractiveCanvas()">mxInteractiveCanvas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#mxInteractiveCanvas(java.awt.image.ImageObserver)">mxInteractiveCanvas</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>&nbsp;imageObserver)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#contains(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)">contains</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +         <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#drawImageImpl(java.awt.Image, int, int)">drawImageImpl</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image,
    +              int&nbsp;x,
    +              int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overrides graphics call to use image observer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#getImageObserver()">getImageObserver</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#getImageSize(java.awt.Image)">getImageSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size for the given image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#hitSwimlaneContent(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState, int, int)">hitSwimlaneContent</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                   <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;swimlane,
    +                   int&nbsp;x,
    +                   int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given point is inside the content area of the given
    + swimlane.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#intersects(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)">intersects</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#setImageObserver(java.awt.image.ImageObserver)">setImageObserver</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.canvas.mxGraphics2DCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.canvas.<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#createFillPaint(com.mxgraph.util.mxRectangle, java.util.Map)">createFillPaint</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#createStroke(java.util.Map)">createStroke</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#createTemporaryGraphics(java.util.Map, float, com.mxgraph.util.mxRectangle)">createTemporaryGraphics</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawImage(java.awt.Rectangle, java.lang.String)">drawImage</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawImage(java.awt.Rectangle, java.lang.String, boolean, boolean, boolean)">drawImage</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#fillShape(java.awt.Shape)">fillShape</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#fillShape(java.awt.Shape, boolean)">fillShape</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getGraphics()">getGraphics</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getRendererPane()">getRendererPane</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getShape(java.util.Map)">getShape</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getTextShape(java.util.Map, boolean)">getTextShape</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#paintPolyline(com.mxgraph.util.mxPoint[], boolean)">paintPolyline</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#paintRectangle(java.awt.Rectangle, java.awt.Color, java.awt.Color)">paintRectangle</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#putShape(java.lang.String, com.mxgraph.shape.mxIShape)">putShape</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#putTextShape(java.lang.String, com.mxgraph.shape.mxITextShape)">putTextShape</A>, <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#setGraphics(java.awt.Graphics2D)">setGraphics</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.canvas.mxBasicCanvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.canvas.<A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#flushImageCache()">flushImageCache</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageBasePath()">getImageBasePath</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#getImageForStyle(java.util.Map)">getImageForStyle</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#getScale()">getScale</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#getTranslate()">getTranslate</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#isDrawLabels()">isDrawLabels</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#loadImage(java.lang.String)">loadImage</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#setDrawLabels(boolean)">setDrawLabels</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#setImageBasePath(java.lang.String)">setImageBasePath</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#setScale(double)">setScale</A>, <A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html#setTranslate(int, int)">setTranslate</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="imageObserver"><!-- --></A><H3>
    +imageObserver</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A> <B>imageObserver</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxInteractiveCanvas()"><!-- --></A><H3>
    +mxInteractiveCanvas</H3>
    +<PRE>
    +public <B>mxInteractiveCanvas</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxInteractiveCanvas(java.awt.image.ImageObserver)"><!-- --></A><H3>
    +mxInteractiveCanvas</H3>
    +<PRE>
    +public <B>mxInteractiveCanvas</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>&nbsp;imageObserver)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setImageObserver(java.awt.image.ImageObserver)"><!-- --></A><H3>
    +setImageObserver</H3>
    +<PRE>
    +public void <B>setImageObserver</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageObserver()"><!-- --></A><H3>
    +getImageObserver</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A> <B>getImageObserver</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawImageImpl(java.awt.Image, int, int)"><!-- --></A><H3>
    +drawImageImpl</H3>
    +<PRE>
    +protected void <B>drawImageImpl</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image,
    +                             int&nbsp;x,
    +                             int&nbsp;y)</PRE>
    +<DL>
    +<DD>Overrides graphics call to use image observer.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawImageImpl(java.awt.Image, int, int)">drawImageImpl</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageSize(java.awt.Image)"><!-- --></A><H3>
    +getImageSize</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Dimension.html?is-external=true" title="class or interface in java.awt">Dimension</A> <B>getImageSize</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Image.html?is-external=true" title="class or interface in java.awt">Image</A>&nbsp;image)</PRE>
    +<DL>
    +<DD>Returns the size for the given image.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#getImageSize(java.awt.Image)">getImageSize</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="contains(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +contains</H3>
    +<PRE>
    +public boolean <B>contains</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +                        <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersects(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +intersects</H3>
    +<PRE>
    +public boolean <B>intersects</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +                          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hitSwimlaneContent(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState, int, int)"><!-- --></A><H3>
    +hitSwimlaneContent</H3>
    +<PRE>
    +public boolean <B>hitSwimlaneContent</B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;swimlane,
    +                                  int&nbsp;x,
    +                                  int&nbsp;y)</PRE>
    +<DL>
    +<DD>Returns true if the given point is inside the content area of the given
    + swimlane. (The content area of swimlanes is transparent to events.) This
    + implementation does not check if the given state is a swimlane, it is
    + assumed that the caller has checked this before using this method.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxInteractiveCanvas.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/mxInteractiveCanvas.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxInteractiveCanvas.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/package-frame.html b/java/docs/com/mxgraph/swing/view/package-frame.html
    new file mode 100644
    index 000000000..63119b456
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/package-frame.html
    @@ -0,0 +1,47 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing.view (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../com/mxgraph/swing/view/package-summary.html" target="classFrame">com.mxgraph.swing.view</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxICellEditor.html" title="interface in com.mxgraph.swing.view" target="classFrame"><I>mxICellEditor</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxCellEditor.html" title="class in com.mxgraph.swing.view" target="classFrame">mxCellEditor</A>
    +<BR>
    +<A HREF="mxCellStatePreview.html" title="class in com.mxgraph.swing.view" target="classFrame">mxCellStatePreview</A>
    +<BR>
    +<A HREF="mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view" target="classFrame">mxInteractiveCanvas</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/package-summary.html b/java/docs/com/mxgraph/swing/view/package-summary.html
    new file mode 100644
    index 000000000..e6ede6e56
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/package-summary.html
    @@ -0,0 +1,199 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing.view (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.swing.view (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.swing.view
    +</H2>
    +This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A></B></TD>
    +<TD>To control this editor, use mxGraph.invokesStopCellEditing, mxGraph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A></B></TD>
    +<TD>Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.swing.view Description
    +</H2>
    +
    +<P>
    +This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/package-tree.html b/java/docs/com/mxgraph/swing/view/package-tree.html
    new file mode 100644
    index 000000000..051dd93e1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/package-tree.html
    @@ -0,0 +1,165 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.swing.view Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.swing.view Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.swing.view
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../../com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas"><B>mxBasicCanvas</B></A> (implements com.mxgraph.canvas.<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><B>mxGraphics2DCanvas</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.view.<A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view"><B>mxInteractiveCanvas</B></A></UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.swing.view.<A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view"><B>mxCellEditor</B></A> (implements com.mxgraph.swing.view.<A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A>)
    +<LI TYPE="circle">com.mxgraph.swing.view.<A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view"><B>mxCellStatePreview</B></A></UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.view.<A HREF="../../../../com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><B>mxICellEditor</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/swing/util/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/swing/view/package-use.html b/java/docs/com/mxgraph/swing/view/package-use.html
    new file mode 100644
    index 000000000..ed210d1af
    --- /dev/null
    +++ b/java/docs/com/mxgraph/swing/view/package-use.html
    @@ -0,0 +1,239 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.swing.view (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.swing.view (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.swing.view</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> used by <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/view/class-use/mxICellEditor.html#com.mxgraph.swing"><B>mxICellEditor</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/view/class-use/mxInteractiveCanvas.html#com.mxgraph.swing"><B>mxInteractiveCanvas</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> used by <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/view/class-use/mxCellStatePreview.html#com.mxgraph.swing.handler"><B>mxCellStatePreview</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> used by <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/view/class-use/mxCellStatePreview.html#com.mxgraph.swing.util"><B>mxCellStatePreview</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> used by <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/swing/view/class-use/mxICellEditor.html#com.mxgraph.swing.view"><B>mxICellEditor</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/swing/view/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxBase64.html b/java/docs/com/mxgraph/util/class-use/mxBase64.html
    new file mode 100644
    index 000000000..26c04c2ec
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxBase64.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxBase64 (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxBase64 (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxBase64.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBase64.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxBase64</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxBase64
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxBase64.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBase64.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxCellRenderer.CanvasFactory.html b/java/docs/com/mxgraph/util/class-use/mxCellRenderer.CanvasFactory.html
    new file mode 100644
    index 000000000..7d8e2ff0a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxCellRenderer.CanvasFactory.html
    @@ -0,0 +1,188 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxCellRenderer.CanvasFactory (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxCellRenderer.CanvasFactory (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxCellRenderer.CanvasFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellRenderer.CanvasFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxCellRenderer.CanvasFactory</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#drawCells(com.mxgraph.view.mxGraph, java.lang.Object[], double, com.mxgraph.util.mxRectangle, com.mxgraph.util.mxCellRenderer.CanvasFactory)">drawCells</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;scale,
    +          <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +          <A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A>&nbsp;factory)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cells using a Graphics2D canvas and returns the buffered image
    + that represents the cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxCellRenderer.CanvasFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellRenderer.CanvasFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxCellRenderer.html b/java/docs/com/mxgraph/util/class-use/mxCellRenderer.html
    new file mode 100644
    index 000000000..a137c28fe
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxCellRenderer.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxCellRenderer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxCellRenderer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxCellRenderer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellRenderer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxCellRenderer</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxCellRenderer
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxCellRenderer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellRenderer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxConstants.html b/java/docs/com/mxgraph/util/class-use/mxConstants.html
    new file mode 100644
    index 000000000..37cbb0fa2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxConstants.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxConstants (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxConstants (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxConstants</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxConstants
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxCurve.html b/java/docs/com/mxgraph/util/class-use/mxCurve.html
    new file mode 100644
    index 000000000..958bd80e1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxCurve.html
    @@ -0,0 +1,264 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxCurve (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxCurve (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxCurve.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurve.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxCurve</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> declared as <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#curve">curve</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the points between which drawing straight lines views as a
    + curve</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#curve">curve</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the points between which drawing straight lines views as a
    + curve</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that return <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#getCurve()">getCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#getCurve()">getCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#postprocessGlyph(com.mxgraph.util.mxCurve, java.lang.String, int, double)">postprocessGlyph</A></B>(<A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;curve,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                 int&nbsp;j,
    +                 double&nbsp;currentPos)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for sub-classers to perform additional processing on
    + each glyph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#setCurve(com.mxgraph.util.mxCurve)">setCurve</A></B>(<A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;curve)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#mxCurveLabelShape(com.mxgraph.view.mxCellState, com.mxgraph.util.mxCurve)">mxCurveLabelShape</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#mxCurveShape(com.mxgraph.util.mxCurve)">mxCurveShape</A></B>(<A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;curve)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxCurve.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurve.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxDomUtils.html b/java/docs/com/mxgraph/util/class-use/mxDomUtils.html
    new file mode 100644
    index 000000000..58b06e031
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxDomUtils.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxDomUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxDomUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxDomUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxDomUtils</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxDomUtils
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxDomUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxEvent.html b/java/docs/com/mxgraph/util/class-use/mxEvent.html
    new file mode 100644
    index 000000000..2d6eacfa6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxEvent.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxEvent (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxEvent (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxEvent</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxEvent
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxEventObject.html b/java/docs/com/mxgraph/util/class-use/mxEventObject.html
    new file mode 100644
    index 000000000..048a8749e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxEventObject.html
    @@ -0,0 +1,202 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxEventObject (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxEventObject (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxEventObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxEventObject</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEventSource.</B><B><A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>&nbsp;evt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispatches the given event name with this object as the event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEventSource.</B><B><A HREF="../../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>&nbsp;evt,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispatches the given event name, passing all arguments after the given
    + name to the registered listeners for the event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEventSource.mxIEventListener.</B><B><A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html#invoke(java.lang.Object, com.mxgraph.util.mxEventObject)">invoke</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender,
    +       <A HREF="../../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>&nbsp;evt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when the graph model has changed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxEventObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxEventSource.html b/java/docs/com/mxgraph/util/class-use/mxEventSource.html
    new file mode 100644
    index 000000000..1a8510fe8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxEventSource.html
    @@ -0,0 +1,462 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxEventSource (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxEventSource (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxEventSource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventSource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxEventSource</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extends mxEventSource to implement a graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a diagram that may be shared among multiple sessions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a diagram that may be shared among multiple sessions.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#eventSource">eventSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection handler creates new connections between cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection handler creates new connections between cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#eventSource">eventSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></CODE></FONT></TD>
    +<TD><CODE><B>mxInsertHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#eventSource">eventSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#eventSource">eventSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the event source.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Baseclass for all timer-based animations.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides animation effects.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements an undo history.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements the selection model for a graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a view for the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a layout manager that updates the layout for a given transaction.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Manager for swimlanes and nested swimlanes that sets the size of newly added
    + swimlanes to that of their siblings, and propagates changes to the size of a
    + swimlane to its siblings, if siblings is true, and its ancestors, if
    + bubbling is true.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxEventSource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventSource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxEventSource.mxIEventListener.html b/java/docs/com/mxgraph/util/class-use/mxEventSource.mxIEventListener.html
    new file mode 100644
    index 000000000..a3d7e6f42
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxEventSource.mxIEventListener.html
    @@ -0,0 +1,554 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.util.mxEventSource.mxIEventListener (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.util.mxEventSource.mxIEventListener (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxEventSource.mxIEventListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventSource.mxIEventListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.util.mxEventSource.mxIEventListener</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxIGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Binds the specified function to the given event name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxIGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: removeListener
    +
    + Removes the given listener from the list of listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxIGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: removeListener
    +
    + Removes the given listener from the list of listeners.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphOutline.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphOutline.html#repaintHandler">repaintHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#repaintHandler">repaintHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#scaleHandler">scaleHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets the zoom policy if the scale is changed manually.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#updateHandler">updateHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the heavyweight component structure after any changes.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSelectionCellsHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#refreshHandler">refreshHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#resetHandler">resetHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given event listener.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxInsertHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given event listener.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given event listener.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxInsertHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given event listener.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given event listener for the specified event name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxInsertHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given event listener for the specified event name.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEventSource.</B><B><A HREF="../../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Binds the specified function to the given event name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEventSource.</B><B><A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: removeListener
    +
    + Removes all occurances of the given listener from the list of listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEventSource.</B><B><A HREF="../../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: removeListener
    +
    + Removes all occurances of the given listener from the list of listeners.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSwimlaneManager.html#addHandler">addHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#fullRepaintHandler">fullRepaintHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires repaint events for full repaints.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#graphModelChangeHandler">graphModelChangeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires repaint events for model changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#moveHandler">moveHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSwimlaneManager.html#resizeHandler">resizeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSpaceManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSpaceManager.html#resizeHandler">resizeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#undoHandler">undoHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#updateOriginHandler">updateOriginHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires repaint events for full repaints.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxEventSource.mxIEventListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventSource.mxIEventListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxImage.html b/java/docs/com/mxgraph/util/class-use/mxImage.html
    new file mode 100644
    index 000000000..3a5bfed07
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxImage.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxImage (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxImage (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxImage</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxImage
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxImageBundle.html b/java/docs/com/mxgraph/util/class-use/mxImageBundle.html
    new file mode 100644
    index 000000000..1dfbee92c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxImageBundle.html
    @@ -0,0 +1,238 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxImageBundle (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxImageBundle (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxImageBundle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageBundle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxImageBundle</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with type parameters of type <A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#imageBundles">imageBundles</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the list of bundles.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return types with arguments of type <A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getImageBundles()">getImageBundles</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the image bundles</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#addImageBundle(com.mxgraph.util.mxImageBundle)">addImageBundle</A></B>(<A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&nbsp;bundle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified bundle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#removeImageBundle(com.mxgraph.util.mxImageBundle)">removeImageBundle</A></B>(<A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&nbsp;bundle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified bundle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with type arguments of type <A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getImageBundles(java.util.List)">getImageBundles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&gt;&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the image bundles</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxImageBundle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageBundle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxLightweightLabel.html b/java/docs/com/mxgraph/util/class-use/mxLightweightLabel.html
    new file mode 100644
    index 000000000..ab6546cbb
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxLightweightLabel.html
    @@ -0,0 +1,199 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxLightweightLabel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxLightweightLabel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxLightweightLabel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLightweightLabel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxLightweightLabel</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> declared as <A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLightweightLabel.</B><B><A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html#sharedInstance">sharedInstance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> that return <A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLightweightLabel.</B><B><A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html#getSharedInstance()">getSharedInstance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxLightweightLabel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLightweightLabel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxLine.html b/java/docs/com/mxgraph/util/class-use/mxLine.html
    new file mode 100644
    index 000000000..ce9da6974
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxLine.html
    @@ -0,0 +1,263 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxLine (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxLine (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxLine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxLine</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> declared as <A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.LabelGlyphCache.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#glyphGeometry">glyphGeometry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A line parallel to the curve segment at which the element is to be
    + drawn</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that return <A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#getMarkerVector(java.util.List, boolean, double)">getMarkerVector</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                boolean&nbsp;source,
    +                double&nbsp;markerSize)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html#getMarkerVector(java.util.List, boolean, double)">getMarkerVector</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                boolean&nbsp;source,
    +                double&nbsp;markerSize)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> declared as <A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#INVALID_POSITION">INVALID_POSITION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates that an invalid position on a curve was requested</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> that return <A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#getCurveParallel(java.lang.String, double)">getCurveParallel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                 double&nbsp;distance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a unit vector parallel to the curve at the specified
    + distance along the curve.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxLine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxPoint.html b/java/docs/com/mxgraph/util/class-use/mxPoint.html
    new file mode 100644
    index 000000000..6a16802d5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxPoint.html
    @@ -0,0 +1,1981 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxPoint (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxPoint (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxPoint</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.gd"><B>com.mxgraph.io.gd</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSvgCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxSvgCanvas.html#drawMarker(org.w3c.dom.Element, java.lang.Object, com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint, float, float, java.lang.String)">drawMarker</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;type,
    +           <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;p0,
    +           <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +           float&nbsp;size,
    +           float&nbsp;strokeWidth,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the specified marker as a child path in the given parent.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSvgCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxSvgCanvas.html#drawMarker(org.w3c.dom.Element, java.lang.Object, com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint, float, float, java.lang.String)">drawMarker</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;type,
    +           <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;p0,
    +           <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +           float&nbsp;size,
    +           float&nbsp;strokeWidth,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;color)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the specified marker as a child path in the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#paintPolyline(com.mxgraph.util.mxPoint[], boolean)">paintPolyline</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]&nbsp;points,
    +              boolean&nbsp;rounded)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with type arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B>mxVmlCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxVmlCanvas.html#drawLine(java.util.List, java.util.Map)">drawLine</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given lines as segments between all points of the given list
    + of mxPoints.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSvgCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxSvgCanvas.html#drawLine(java.util.List, java.util.Map)">drawLine</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given lines as segments between all points of the given list
    + of mxPoints.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxHtmlCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxHtmlCanvas.html#drawLine(java.util.List, java.util.Map)">drawLine</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given lines as segments between all points of the given list
    + of mxPoints.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.gd"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGdNode.</B><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#getCoordinates()">getCoordinates</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGdNode.</B><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#getDimentions()">getDimentions</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGdNode.</B><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#setCoordinates(com.mxgraph.util.mxPoint)">setCoordinates</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;coordinates)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGdNode.</B><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#setDimentions(com.mxgraph.util.mxPoint)">setDimentions</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;dimentions)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/io/gd/mxGdNode.html#mxGdNode(java.lang.String, com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)">mxGdNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +         <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;coordinates,
    +         <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;dimentions)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with type arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)">setEdgePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the control points of the given edge to the given
    + list of mxPoints.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the geometry of a cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> declared as <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#offset">offset</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the offset of the label for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#sourcePoint">sourcePoint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the source- and target-point of the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#targetPoint">targetPoint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the source- and target-point of the edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with type parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#points">points</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List of mxPoints which specifies the control points along the edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#getOffset()">getOffset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#getOrigin(java.lang.Object)">getOrigin</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute, accumulated origin for the children inside the
    + given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#getSourcePoint()">getSourcePoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the source point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#getTargetPoint()">getTargetPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the target point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#getTerminalPoint(boolean)">getTerminalPoint</A></B>(boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point representing the source or target point of this edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#setTerminalPoint(com.mxgraph.util.mxPoint, boolean)">setTerminalPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                 boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the sourcePoint or targetPoint to the given point and returns the
    + new point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that return types with arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#getPoints()">getPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the list of control points.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#setOffset(com.mxgraph.util.mxPoint)">setOffset</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;offset)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the offset to the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#setSourcePoint(com.mxgraph.util.mxPoint)">setSourcePoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;sourcePoint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the source point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#setTargetPoint(com.mxgraph.util.mxPoint)">setTargetPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;targetPoint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the target point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#setTerminalPoint(com.mxgraph.util.mxPoint, boolean)">setTerminalPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                 boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the sourcePoint or targetPoint to the given point and returns the
    + new point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with type arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#setPoints(java.util.List)">setPoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the list of control points to the given list.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> that return types with arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html#parsePoints(java.lang.String)">parsePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;pts)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the list of points into an object-oriented representation.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with type parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#lastPoints">lastPoints</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the last set of guide points that this label was calculated for</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxLineShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLineShape.html#createPoints(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createPoints</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">paintMarker</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the marker for the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxIMarker.</B><B><A HREF="../../../../com/mxgraph/shape/mxIMarker.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, java.lang.String, com.mxgraph.util.mxPoint, double, double, double, boolean)">paintMarker</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +            <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +            double&nbsp;nx,
    +            double&nbsp;ny,
    +            double&nbsp;size,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxIMarker.</B><B><A HREF="../../../../com/mxgraph/shape/mxIMarker.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, java.lang.String, com.mxgraph.util.mxPoint, double, double, double, boolean)">paintMarker</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +            <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +            double&nbsp;nx,
    +            double&nbsp;ny,
    +            double&nbsp;size,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with type arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#getMarkerVector(java.util.List, boolean, double)">getMarkerVector</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                boolean&nbsp;source,
    +                double&nbsp;markerSize)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html#getMarkerVector(java.util.List, boolean, double)">getMarkerVector</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                boolean&nbsp;source,
    +                double&nbsp;markerSize)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)">paintPolyline</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html#paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)">paintPolyline</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#validateCurve(java.util.List, double, java.util.Map)">validateCurve</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +              double&nbsp;scale,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Forces underlying curve to a valid state</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#getPageTranslate(double)">getPageTranslate</A></B>(double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Should be called by a hook inside mxGraphView/mxGraph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#getPointForEvent(java.awt.event.MouseEvent)">getPointForEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an mxPoint representing the given event in the unscaled,
    + non-translated coordinate space and applies the grid.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#getPointForEvent(java.awt.event.MouseEvent, boolean)">getPointForEvent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +                 boolean&nbsp;addOffset)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an mxPoint representing the given event in the unscaled,
    + non-translated coordinate space and applies the grid.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#snapScaledPoint(com.mxgraph.util.mxPoint)">snapScaledPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#snapScaledPoint(com.mxgraph.util.mxPoint, double, double)">snapScaledPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                double&nbsp;dx,
    +                double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#snapScaledPoint(com.mxgraph.util.mxPoint)">snapScaledPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#snapScaledPoint(com.mxgraph.util.mxPoint, double, double)">snapScaledPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                double&nbsp;dx,
    +                double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#startPoint">startPoint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#convertPoint(com.mxgraph.util.mxPoint, boolean)">convertPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +             boolean&nbsp;gridEnabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#getStartPoint()">getStartPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#transformScreenPoint(double, double)">transformScreenPoint</A></B>(double&nbsp;x,
    +                     double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#convertPoint(com.mxgraph.util.mxPoint, boolean)">convertPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +             boolean&nbsp;gridEnabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#movePoint(java.lang.Object, int, com.mxgraph.util.mxPoint)">movePoint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +          int&nbsp;pointIndex,
    +          <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the edges control point with the given index to the given point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> with type parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#origins">origins</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from cells to origins.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#getDelta(com.mxgraph.view.mxCellState)">getDelta</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the vector between the current rendered state and the future
    + location of the state after the display will be updated.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#getOriginForCell(java.lang.Object)">getOriginForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the top, left corner of the given cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#stopRecursion(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)">stopRecursion</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +              <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;delta)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the animation should not recursively find more
    + deltas for children if the given parent state has been animated.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> with type parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#deltas">deltas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#moveState(com.mxgraph.view.mxCellState, double, double)">moveState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#moveState(com.mxgraph.view.mxCellState, double, double, boolean, boolean)">moveState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          double&nbsp;dx,
    +          double&nbsp;dy,
    +          boolean&nbsp;add,
    +          boolean&nbsp;includeEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> that return types with arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#getDeltas()">getDeltas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a line with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> declared as <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLine.</B><B><A HREF="../../../../com/mxgraph/util/mxLine.html#endPoint">endPoint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The end point of the line</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with type parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#guidePoints">guidePoints</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The points this curve is drawn through.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#collisionMove(java.lang.String, com.mxgraph.util.mxRectangle, double)">collisionMove</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +              <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +              double&nbsp;buffer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point to move the input rectangle to, in order to
    + attempt to place the rectangle away from the curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#getBaseLabelCurve()">getBaseLabelCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the curve the label curve is too be based on</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#getCurvePoints(java.lang.String)">getCurvePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtains the points that make up the curve for the specified
    + curve index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#getCurveSection(java.lang.String, double, double)">getCurveSection</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                double&nbsp;start,
    +                double&nbsp;end)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a section of the curve as an array of points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLine.</B><B><A HREF="../../../../com/mxgraph/util/mxLine.html#getEndPoint()">getEndPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the end point of the line.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSpline.</B><B><A HREF="../../../../com/mxgraph/util/mxSpline.html#getPoint(double)">getPoint</A></B>(double&nbsp;t)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getRotatedPoint(com.mxgraph.util.mxPoint, double, double)">getRotatedPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                double&nbsp;cos,
    +                double&nbsp;sin)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotates the given point by the given cos and sin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getRotatedPoint(com.mxgraph.util.mxPoint, double, double, com.mxgraph.util.mxPoint)">getRotatedPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                double&nbsp;cos,
    +                double&nbsp;sin,
    +                <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotates the given point by the given cos and sin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#intersection(double, double, double, double, double, double, double, double)">intersection</A></B>(double&nbsp;x0,
    +             double&nbsp;y0,
    +             double&nbsp;x1,
    +             double&nbsp;y1,
    +             double&nbsp;x2,
    +             double&nbsp;y2,
    +             double&nbsp;x3,
    +             double&nbsp;y3)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the intersection of two lines as an mxPoint.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRectangle.</B><B><A HREF="../../../../com/mxgraph/util/mxRectangle.html#intersectLine(double, double, double, double)">intersectLine</A></B>(double&nbsp;x0,
    +              double&nbsp;y0,
    +              double&nbsp;x1,
    +              double&nbsp;y1)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point at which the specified point intersects the perimeter 
    + of this rectangle or null if there is no intersection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterPoint(java.lang.String, com.mxgraph.util.mxRectangle, int)">intersectRectPerimeterPoint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;curveIndex,
    +                            <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +                            int&nbsp;indexSeg)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point at which this curve segment intersects the boundary 
    + of the given rectangle, if it does so.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#intersectsRectPerimeter(java.lang.String, com.mxgraph.util.mxRectangle)">intersectsRectPerimeter</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                        <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point at which this curve intersects the boundary of 
    + the given rectangle, if it does so.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> that return types with arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#getGuidePoints()">getGuidePoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#translatePoints(java.util.List, double, double)">translatePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +                double&nbsp;dx,
    +                double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new list of new points obtained by translating the points in
    + the given list by the given vector.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getLabelPaintBounds(java.lang.String, java.util.Map, boolean, com.mxgraph.util.mxPoint, com.mxgraph.util.mxRectangle, double)">getLabelPaintBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                    boolean&nbsp;isHtml,
    +                    <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;offset,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;vertexBounds,
    +                    double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the paint bounds for the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#getRelativeFromAbsPoint(com.mxgraph.util.mxPoint, java.lang.String)">getRelativeFromAbsPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;absPoint,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the position of an absolute in terms relative
    + to this curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getRotatedPoint(com.mxgraph.util.mxPoint, double, double)">getRotatedPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                double&nbsp;cos,
    +                double&nbsp;sin)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotates the given point by the given cos and sin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getRotatedPoint(com.mxgraph.util.mxPoint, double, double, com.mxgraph.util.mxPoint)">getRotatedPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                double&nbsp;cos,
    +                double&nbsp;sin,
    +                <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotates the given point by the given cos and sin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxLine.</B><B><A HREF="../../../../com/mxgraph/util/mxLine.html#ptLineDistSq(com.mxgraph.util.mxPoint)">ptLineDistSq</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the square of the shortest distance from a point to this line.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxLine.</B><B><A HREF="../../../../com/mxgraph/util/mxLine.html#ptSegDistSq(com.mxgraph.util.mxPoint)">ptSegDistSq</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the square of the shortest distance from a point to this 
    + line segment.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLine.</B><B><A HREF="../../../../com/mxgraph/util/mxLine.html#setEndPoint(com.mxgraph.util.mxPoint)">setEndPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the end point of the rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLine.</B><B><A HREF="../../../../com/mxgraph/util/mxLine.html#setPoints(com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)">setPoints</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;startPt,
    +          <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;endPt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the start and end points.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with type arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#translatePoints(java.util.List, double, double)">translatePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +                double&nbsp;dx,
    +                double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new list of new points obtained by translating the points in
    + the given list by the given vector.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#updateCurve(java.util.List)">updateCurve</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;newPoints)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the existing curve using the points passed in.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/mxLine.html#mxLine(double, double, com.mxgraph.util.mxPoint)">mxLine</A></B>(double&nbsp;startPtX,
    +       double&nbsp;startPtY,
    +       <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;endPt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new line</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/mxLine.html#mxLine(com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)">mxLine</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;startPt,
    +       <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;endPt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new line</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/mxPoint.html#mxPoint(com.mxgraph.util.mxPoint)">mxPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new point at the location of the given point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructor parameters in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with type arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#mxCurve(java.util.List)">mxCurve</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/mxSpline.html#mxSpline(java.util.List)">mxSpline</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#absoluteOffset">absoluteOffset</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the absolute offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#origin">origin</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the origin for all child cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#origin">origin</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current automatic origin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionConstraint.</B><B><A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html#point">point</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Point that specifies the fixed location of the connection point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#translate">translate</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Point that specifies the current translation.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with type parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#absolutePoints">absolutePoints</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List of mxPoints that represent the absolute points of an edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPerimeter.mxPerimeterFunction.</B><B><A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html#apply(com.mxgraph.util.mxRectangle, com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)">apply</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +      <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +      boolean&nbsp;orthogonal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a perimeter function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getAbsoluteOffset()">getAbsoluteOffset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getAbsolutePoint(int)">getAbsolutePoint</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute point at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getChildOffsetForCell(java.lang.Object)">getChildOffsetForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the offset to be used for the cells inside the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getConnectionPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxConnectionConstraint)">getConnectionPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +                   <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the connection constraint that describes the given connection point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getNextPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getNextPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;opposite,
    +             boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the nearest point in the list of absolute points or the center
    + of the opposite terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getOrigin()">getOrigin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the origin for the children.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getOrigin()">getOrigin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns origin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)">getPerimeterPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                  <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                  boolean&nbsp;orthogonal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean, double)">getPerimeterPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                  <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                  boolean&nbsp;orthogonal,
    +                  double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionConstraint.</B><B><A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html#getPoint()">getPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPoint(com.mxgraph.view.mxCellState)">getPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute center point along the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPoint(com.mxgraph.view.mxCellState, com.mxgraph.model.mxGeometry)">getPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +         <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute point on the edge for the given relative
    + geometry as a point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getRelativePoint(com.mxgraph.view.mxCellState, double, double)">getRelativePoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edgeState,
    +                 double&nbsp;x,
    +                 double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the relative point that describes the given, absolute label
    + position for the given edge state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getTranslate()">getTranslate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current translation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getTranslateForRoot(java.lang.Object)">getTranslateForRoot</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the translation to be used if the given cell is the root cell as
    + an <mxPoint>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setAbsolutePoint(int, com.mxgraph.util.mxPoint)">setAbsolutePoint</A></B>(int&nbsp;index,
    +                 <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute point at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#transformControlPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)">transformControlPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                      <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transforms the given control point to an absolute point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return types with arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getAbsolutePoints()">getAbsolutePoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute points.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPerimeter.mxPerimeterFunction.</B><B><A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html#apply(com.mxgraph.util.mxRectangle, com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)">apply</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +      <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +      boolean&nbsp;orthogonal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a perimeter function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)">getPerimeterPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                  <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                  boolean&nbsp;orthogonal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean, double)">getPerimeterPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                  <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                  boolean&nbsp;orthogonal,
    +                  double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setAbsoluteOffset(com.mxgraph.util.mxPoint)">setAbsoluteOffset</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;absoluteOffset)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setAbsolutePoint(int, com.mxgraph.util.mxPoint)">setAbsolutePoint</A></B>(int&nbsp;index,
    +                 <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute point at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setAbsoluteTerminalPoint(com.mxgraph.util.mxPoint, boolean)">setAbsoluteTerminalPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                         boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the first or last point in the list of points depending on isSource.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setOrigin(com.mxgraph.util.mxPoint)">setOrigin</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;origin)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the origin for the children.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#setOrigin(com.mxgraph.util.mxPoint)">setOrigin</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionConstraint.</B><B><A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html#setPoint(com.mxgraph.util.mxPoint)">setPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#setTranslate(com.mxgraph.util.mxPoint)">setTranslate</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the current translation and invalidates the view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#transformControlPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)">transformControlPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                      <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transforms the given control point to an absolute point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with type arguments of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeStyle.mxEdgeStyleFunction.</B><B><A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)">apply</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;result)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements an edge style function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeStyle.mxEdgeStyleFunction.</B><B><A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)">apply</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;result)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements an edge style function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getEdgeStyle(com.mxgraph.view.mxCellState, java.util.List, java.lang.Object, java.lang.Object)">getEdgeStyle</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edge style function to be used to compute the absolute
    + points for the given state, control points and terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setAbsolutePoints(java.util.List)">setAbsolutePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;absolutePoints)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updatePoints(com.mxgraph.view.mxCellState, java.util.List, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">updatePoints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the absolute points in the given state using the specified array
    + of points as the relative points.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html#mxConnectionConstraint(com.mxgraph.util.mxPoint)">mxConnectionConstraint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a connection constraint for the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html#mxConnectionConstraint(com.mxgraph.util.mxPoint, boolean)">mxConnectionConstraint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                       boolean&nbsp;perimeter)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new connection constraint for the given point and boolean
    + arguments.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxRectangle.html b/java/docs/com/mxgraph/util/class-use/mxRectangle.html
    new file mode 100644
    index 000000000..40501f8b9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxRectangle.html
    @@ -0,0 +1,1771 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxRectangle (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxRectangle (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxRectangle</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Paint.html?is-external=true" title="class or interface in java.awt">Paint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#createFillPaint(com.mxgraph.util.mxRectangle, java.util.Map)">createFillPaint</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#createTemporaryGraphics(java.util.Map, float, com.mxgraph.util.mxRectangle)">createTemporaryGraphics</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                        float&nbsp;opacity,
    +                        <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#apply(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, com.mxgraph.util.mxRectangle)">apply</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +      <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStackLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxStackLayout.html#getContainerSize()">getContainerSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to return the container size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPartitionLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxPartitionLayout.html#getContainerSize()">getContainerSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to return the container size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an <mxRectangle> that defines the bounds of the given cell
    + or the bounding box if <useBoundingBox> is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#horizontalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double, com.mxgraph.util.mxRectangle)">horizontalLayout</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +                 double&nbsp;x0,
    +                 double&nbsp;y0,
    +                 <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)">setVertexLocation</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +                  double&nbsp;x,
    +                  double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the new position of the given cell taking into account the size of
    + the bounding box if <useBoundingBox> is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#verticalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, java.lang.Object, double, double, com.mxgraph.util.mxRectangle)">verticalLayout</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +               double&nbsp;x0,
    +               double&nbsp;y0,
    +               <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#apply(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, com.mxgraph.util.mxRectangle)">apply</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +      <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#horizontalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double, com.mxgraph.util.mxRectangle)">horizontalLayout</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +                 double&nbsp;x0,
    +                 double&nbsp;y0,
    +                 <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCompactTreeLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#verticalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, java.lang.Object, double, double, com.mxgraph.util.mxRectangle)">verticalLayout</A></B>(<A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>&nbsp;node,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +               double&nbsp;x0,
    +               double&nbsp;y0,
    +               <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the geometry of a cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> declared as <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#alternateBounds">alternateBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores alternate values for x, y, width and height in a rectangle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#getAlternateBounds()">getAlternateBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the alternate bounds.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGeometry.</B><B><A HREF="../../../../com/mxgraph/model/mxGeometry.html#setAlternateBounds(com.mxgraph.util.mxRectangle)">setAlternateBounds</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the alternate bounds to the given rectangle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> declared as <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewImageReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html#clip">clip</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the clip to be drawn.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewImageReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html#getClip()">getClip</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewImageReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewImageReader.html#setClip(com.mxgraph.util.mxRectangle)">setClip</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> declared as <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.LabelGlyphCache.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#drawingBounds">drawingBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The un-rotated rectangle that just bounds this character</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#INVALID_GLYPH_BOUNDS">INVALID_GLYPH_BOUNDS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates that a glyph does not have valid drawing bounds, usually 
    + because it is not visible</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#labelBounds">labelBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the bounds of the label</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.LabelGlyphCache.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#labelGlyphBounds">labelGlyphBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache of the bounds of the individual element of the label of this 
    + edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#computeAspect(com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, java.lang.String)">computeAspect</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +              <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a rectangle that contains the offset in x and y and the horizontal
    + and vertical scale in width and height used to draw this shape inside the
    + given rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#getCenterVisiblePosition()">getCenterVisiblePosition</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the drawing bounds of the central indexed visible glyph</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxSwimlaneShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#getLabelBounds()">getLabelBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#updateLabelBounds(java.lang.String, java.util.Map)">updateLabelBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the cached position and size of each glyph in the edge label.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#computeAspect(com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, java.lang.String)">computeAspect</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +              <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a rectangle that contains the offset in x and y and the horizontal
    + and vertical scale in width and height used to draw this shape inside the
    + given rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#drawElement(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, org.w3c.dom.Element, com.mxgraph.util.mxRectangle)">drawElement</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node,
    +            <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;aspect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drawsthe given element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#drawShadow(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, double, boolean, boolean, com.mxgraph.util.mxRectangle, double, boolean)">drawShadow</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           double&nbsp;rotation,
    +           boolean&nbsp;flipH,
    +           boolean&nbsp;flipV,
    +           <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +           double&nbsp;alpha,
    +           boolean&nbsp;filled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the shadow.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#drawShape(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, boolean)">drawShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +          boolean&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws this stencil inside the given bounds.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphOutline.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphOutline.html#repaintClip">repaintClip</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clip of the triple buffer to be repainted.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#getLayoutAreaSize()">getLayoutAreaSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size of the area that layouts can operate in.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#bbox">bbox</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scaled, translated bounding box of the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#cellBounds">cellBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scaled, translated bounds of the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxInsertHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#current">current</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#lastDirty">lastDirty</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphHandler.html#transferBounds">transferBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unscaled, untranslated bounding box of the selection cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#getPlaceholderBounds(com.mxgraph.view.mxCellState)">getPlaceholderBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxVertexHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#union(com.mxgraph.util.mxRectangle, double, double, int)">union</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +      double&nbsp;dx,
    +      double&nbsp;dy,
    +      int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxGraphTransferHandler.html#createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)">createGraphTransferable</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#getDirtyRect(com.mxgraph.util.mxRectangle)">getDirtyRect</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;dirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxInsertHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxInsertHandler.html#insertCell(com.mxgraph.util.mxRectangle)">insertCell</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#repaint(com.mxgraph.util.mxRectangle)">repaint</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;dirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxVertexHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#union(com.mxgraph.util.mxRectangle, double, double, int)">union</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +      double&nbsp;dx,
    +      double&nbsp;dy,
    +      int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> declared as <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferable.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#bounds">bounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#dirty">dirty</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphTransferable.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#getBounds()">getBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the unscaled, untranslated bounding box of the cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellOverlay.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#getBounds(com.mxgraph.view.mxCellState)">getBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICellOverlay.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html#getBounds(com.mxgraph.view.mxCellState)">getBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#mxGraphTransferable(java.lang.Object[], com.mxgraph.util.mxRectangle)">mxGraphTransferable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphTransferable.html#mxGraphTransferable(java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)">mxGraphTransferable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;image)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#revalidateState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, double, double)">revalidateState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                double&nbsp;dx,
    +                double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#show()">show</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a dirty rectangle to be repainted in mxGraphControl.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getBoundingBox(com.mxgraph.util.mxRectangle, double)">getBoundingBox</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +               double&nbsp;rotation)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for the rotated rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#getBounds()">getBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getLabelPaintBounds(java.lang.String, java.util.Map, boolean, com.mxgraph.util.mxPoint, com.mxgraph.util.mxRectangle, double)">getLabelPaintBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                    boolean&nbsp;isHtml,
    +                    <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;offset,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;vertexBounds,
    +                    double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the paint bounds for the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getLabelSize(java.lang.String, java.util.Map, boolean, double)">getLabelSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +             boolean&nbsp;isHtml,
    +             double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size for the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getLabelSize(java.lang.String, java.util.Map, boolean, double, double)">getLabelSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +             boolean&nbsp;isHtml,
    +             double&nbsp;scale,
    +             double&nbsp;htmlWrapWidth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size for the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#getRelativeFromAbsPoint(com.mxgraph.util.mxPoint, java.lang.String)">getRelativeFromAbsPoint</A></B>(<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;absPoint,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the position of an absolute in terms relative
    + to this curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getScaledLabelBounds(double, double, com.mxgraph.util.mxRectangle, double, double, java.util.Map, double)">getScaledLabelBounds</A></B>(double&nbsp;x,
    +                     double&nbsp;y,
    +                     <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;size,
    +                     double&nbsp;outerWidth,
    +                     double&nbsp;outerHeight,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                     double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds for a label for the given location and size, taking
    + into account the alignment and spacing in the specified style, as well as
    + the width and height of the rectangle that contains the label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getSizeForHtml(java.lang.String, java.util.Map, double, double)">getSizeForHtml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;markup,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +               double&nbsp;scale,
    +               double&nbsp;wrapWidth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an mxRectangle with the size (width and height in pixels) of the
    + given HTML markup.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getSizeForString(java.lang.String, java.awt.Font, double)">getSizeForString</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A>&nbsp;font,
    +                 double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an <mxRectangle> with the size (width and height in pixels) of
    + the given string.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxRectangle.</B><B><A HREF="../../../../com/mxgraph/util/mxRectangle.html#add(com.mxgraph.util.mxRectangle)">add</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given rectangle to this rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#collisionMove(java.lang.String, com.mxgraph.util.mxRectangle, double)">collisionMove</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +              <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +              double&nbsp;buffer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point to move the input rectangle to, in order to
    + attempt to place the rectangle away from the curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle)">createBufferedImage</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    double&nbsp;scale,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                    boolean&nbsp;antiAlias,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle, com.mxgraph.canvas.mxGraphics2DCanvas)">createBufferedImage</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    double&nbsp;scale,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                    boolean&nbsp;antiAlias,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +                    <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;graphicsCanvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createHtmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)">createHtmlDocument</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                   double&nbsp;scale,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                   <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createSvgDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)">createSvgDocument</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  double&nbsp;scale,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                  <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createVmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)">createVmlDocument</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  double&nbsp;scale,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                  <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#drawCells(com.mxgraph.view.mxGraph, java.lang.Object[], double, com.mxgraph.util.mxRectangle, com.mxgraph.util.mxCellRenderer.CanvasFactory)">drawCells</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;scale,
    +          <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +          <A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A>&nbsp;factory)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cells using a Graphics2D canvas and returns the buffered image
    + that represents the cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getBoundingBox(com.mxgraph.util.mxRectangle, double)">getBoundingBox</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +               double&nbsp;rotation)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for the rotated rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getLabelPaintBounds(java.lang.String, java.util.Map, boolean, com.mxgraph.util.mxPoint, com.mxgraph.util.mxRectangle, double)">getLabelPaintBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                    boolean&nbsp;isHtml,
    +                    <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;offset,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;vertexBounds,
    +                    double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the paint bounds for the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getScaledLabelBounds(double, double, com.mxgraph.util.mxRectangle, double, double, java.util.Map, double)">getScaledLabelBounds</A></B>(double&nbsp;x,
    +                     double&nbsp;y,
    +                     <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;size,
    +                     double&nbsp;outerWidth,
    +                     double&nbsp;outerHeight,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                     double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds for a label for the given location and size, taking
    + into account the alignment and spacing in the specified style, as well as
    + the width and height of the rectangle that contains the label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterPoint(java.lang.String, com.mxgraph.util.mxRectangle, int)">intersectRectPerimeterPoint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;curveIndex,
    +                            <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +                            int&nbsp;indexSeg)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point at which this curve segment intersects the boundary 
    + of the given rectangle, if it does so.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle)">intersectRectPerimeterSeg</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                          <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method to determine within which segment the specified rectangle
    + intersects the specified curve</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle, int)">intersectRectPerimeterSeg</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                          <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +                          int&nbsp;startSegment)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method to determine within which segment the specified rectangle
    + intersects the specified curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#intersectsRectPerimeter(java.lang.String, com.mxgraph.util.mxRectangle)">intersectsRectPerimeter</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                        <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point at which this curve intersects the boundary of 
    + the given rectangle, if it does so.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxCurve.</B><B><A HREF="../../../../com/mxgraph/util/mxCurve.html#intersectsRectPerimeterDist(java.lang.String, com.mxgraph.util.mxRectangle)">intersectsRectPerimeterDist</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                            <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the distance from the start of the curve at which this 
    + curve intersects the boundary of the given rectangle, if it does 
    + so.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/mxRectangle.html#mxRectangle(com.mxgraph.util.mxRectangle)">mxRectangle</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a copy of the given rectangle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#boundingBox">boundingBox</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the largest rectangle which contains all rendering for this cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#graphBounds">graphBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches the current bounds of the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#labelBounds">labelBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the rectangle which contains the label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#maximumGraphBounds">maximumGraphBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<mxRectangle> that specifies the area in which all cells in the
    + diagram should be placed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#minimumGraphSize">minimumGraphSize</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mxRectangle that specifies the minimum size of the graph canvas inside
    + the scrollpane.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxTemporaryCellStates.</B><B><A HREF="../../../../com/mxgraph/view/mxTemporaryCellStates.html#oldBounds">oldBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getBoundingBox()">getBoundingBox</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getBoundingBox(java.lang.Object)">getBoundingBox</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getBoundingBox(java.lang.Object[])">getBoundingBox</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for an array of cells or null, if no cells are
    + specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getBoundingBox(java.lang.Object, boolean)">getBoundingBox</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               boolean&nbsp;includeEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getBoundingBox(java.lang.Object, boolean, boolean)">getBoundingBox</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               boolean&nbsp;includeEdges,
    +               boolean&nbsp;includeDescendants)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getBoundingBoxFromGeometry(java.lang.Object[])">getBoundingBoxFromGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for the geometries of the vertices in the
    + given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getBounds(java.lang.Object[])">getBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for an array of cells or null, if no cells are
    + specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getBounds(java.lang.Object[], boolean)">getBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          boolean&nbsp;boundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for an array of cells or null, if no cells are
    + specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getBoundsForCells(java.lang.Object[], boolean, boolean, boolean)">getBoundsForCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  boolean&nbsp;includeEdges,
    +                  boolean&nbsp;includeDescendants,
    +                  boolean&nbsp;boundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds for the given cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getBoundsForGroup(java.lang.Object, java.lang.Object[], double)">getBoundsForGroup</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;group,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;children,
    +                  double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds to be used for the given group and children.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object)">getCellBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object, boolean)">getCellBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              boolean&nbsp;includeEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object, boolean, boolean)">getCellBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              boolean&nbsp;includeEdges,
    +              boolean&nbsp;includeDescendants)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object, boolean, boolean, boolean)">getCellBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              boolean&nbsp;includeEdges,
    +              boolean&nbsp;includeDescendants,
    +              boolean&nbsp;boundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getCellContainmentArea(java.lang.Object)">getCellContainmentArea</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the mxRectangle inside which a cell is to be kept.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getGraphBounds()">getGraphBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cached diagram bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getGraphBounds()">getGraphBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the visible graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getLabelBounds()">getLabelBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the label bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getMaximumGraphBounds()">getMaximumGraphBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getMinimumGraphSize()">getMinimumGraphSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the minimum size of the diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getPaintBounds(java.lang.Object[])">getPaintBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box of the given cells and their descendants.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getPerimeterBounds()">getPerimeterBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the rectangle that should be used as the perimeter of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getPerimeterBounds(double)">getPerimeterBounds</A></B>(double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the rectangle that should be used as the perimeter of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterBounds(com.mxgraph.view.mxCellState, double)">getPerimeterBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                   double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the perimeter bounds for the given terminal, edge pair.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getPreferredSizeForCell(java.lang.Object)">getPreferredSizeForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the preferred width and height of the given <mxCell> as an
    + <mxRectangle>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getStartSize(java.lang.Object)">getStartSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;swimlane)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the start size of the given swimlane, that is, the width or
    + height of the part that contains the title, depending on the
    + horizontal style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#graphModelChanged(com.mxgraph.model.mxIGraphModel, java.util.List)">graphModelChanged</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;sender,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when the graph model changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#processChange(com.mxgraph.util.mxUndoableEdit.mxUndoableChange, boolean, boolean)">processChange</A></B>(<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change,
    +              boolean&nbsp;invalidate,
    +              boolean&nbsp;ignoreDirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given change and invalidates the respective cached data
    + in <view>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#processChanges(java.util.List, boolean, boolean)">processChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes,
    +               boolean&nbsp;invalidate,
    +               boolean&nbsp;ignoreDirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the changes and returns the minimal rectangle to be
    + repainted in the buffer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateBoundingBox(com.mxgraph.view.mxCellState)">updateBoundingBox</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the bounding box in the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#validatePoints(com.mxgraph.view.mxCellState, java.lang.Object)">validatePoints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validates the points for the state of the given cell recursively if the
    + cell is not collapsed and returns the bounding box of all visited states
    + as a rectangle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPerimeter.mxPerimeterFunction.</B><B><A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html#apply(com.mxgraph.util.mxRectangle, com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)">apply</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +      <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +      boolean&nbsp;orthogonal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a perimeter function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#cellsResized(java.lang.Object[], com.mxgraph.util.mxRectangle[])">cellsResized</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +             <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>[]&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the bounds of the given cells and fires a <mxEvent.CELLS_RESIZED>
    + event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#repaint(com.mxgraph.util.mxRectangle)">repaint</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;region)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a repaint event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#resizeCell(java.lang.Object, com.mxgraph.util.mxRectangle)">resizeCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +           <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the bounds of the given cell using resizeCells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#resizeCells(java.lang.Object[], com.mxgraph.util.mxRectangle[])">resizeCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +            <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>[]&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS
    + event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setBoundingBox(com.mxgraph.util.mxRectangle)">setBoundingBox</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;boundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the bounding box.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#setGraphBounds(com.mxgraph.util.mxRectangle)">setGraphBounds</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the graph bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setLabelBounds(com.mxgraph.util.mxRectangle)">setLabelBounds</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;labelBounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the label bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#setMaximumGraphBounds(com.mxgraph.util.mxRectangle)">setMaximumGraphBounds</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#setMinimumGraphSize(com.mxgraph.util.mxRectangle)">setMinimumGraphSize</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxResources.html b/java/docs/com/mxgraph/util/class-use/mxResources.html
    new file mode 100644
    index 000000000..315849cc5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxResources.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxResources (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxResources (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxResources.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxResources.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxResources</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxResources
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxResources.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxResources.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxSpline.html b/java/docs/com/mxgraph/util/class-use/mxSpline.html
    new file mode 100644
    index 000000000..89497b503
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxSpline.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxSpline (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxSpline (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxSpline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxSpline</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxSpline
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxSpline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxSpline1D.html b/java/docs/com/mxgraph/util/class-use/mxSpline1D.html
    new file mode 100644
    index 000000000..46e614a0c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxSpline1D.html
    @@ -0,0 +1,191 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxSpline1D (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxSpline1D (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxSpline1D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpline1D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxSpline1D</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> that return <A HREF="../../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSpline.</B><B><A HREF="../../../../com/mxgraph/util/mxSpline.html#getSplineX()">getSplineX</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSpline.</B><B><A HREF="../../../../com/mxgraph/util/mxSpline.html#getSplineY()">getSplineY</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxSpline1D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpline1D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxStyleUtils.html b/java/docs/com/mxgraph/util/class-use/mxStyleUtils.html
    new file mode 100644
    index 000000000..c49441be9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxStyleUtils.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxStyleUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxStyleUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxStyleUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStyleUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxStyleUtils</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxStyleUtils
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxStyleUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStyleUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxUndoManager.html b/java/docs/com/mxgraph/util/class-use/mxUndoManager.html
    new file mode 100644
    index 000000000..d69464ec1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxUndoManager.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxUndoManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxUndoManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxUndoManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxUndoManager</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxUndoManager
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxUndoManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxUndoableEdit.html b/java/docs/com/mxgraph/util/class-use/mxUndoableEdit.html
    new file mode 100644
    index 000000000..ea6996370
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxUndoableEdit.html
    @@ -0,0 +1,305 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxUndoableEdit (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxUndoableEdit (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxUndoableEdit.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoableEdit.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxUndoableEdit</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> declared as <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#currentEdit">currentEdit</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the changes for the current transaction.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that return <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphModel.</B><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.html#createUndoableEdit()">createUndoableEdit</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new undoable edit.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A> in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A> that return <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSharedGraphModel.</B><B><A HREF="../../../../com/mxgraph/sharing/mxSharedGraphModel.html#createUndoableEdit(com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange[])">createUndoableEdit</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>[]&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new mxUndoableEdit that implements the notify function to fire
    + a change and notify event via the model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with type parameters of type <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxUndoManager.</B><B><A HREF="../../../../com/mxgraph/util/mxUndoManager.html#history">history</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List that contains the steps of the command history.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxUndoManager.</B><B><A HREF="../../../../com/mxgraph/util/mxUndoManager.html#undoableEditHappened(com.mxgraph.util.mxUndoableEdit)">undoableEditHappened</A></B>(<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>&nbsp;undoableEdit)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to be called to add new undoable edits to the history.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#beforeUndo(com.mxgraph.util.mxUndoableEdit)">beforeUndo</A></B>(<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>&nbsp;edit)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxUndoableEdit.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoableEdit.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxUndoableEdit.mxUndoableChange.html b/java/docs/com/mxgraph/util/class-use/mxUndoableEdit.mxUndoableChange.html
    new file mode 100644
    index 000000000..2d95ede98
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxUndoableEdit.mxUndoableChange.html
    @@ -0,0 +1,425 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.util.mxUndoableEdit.mxUndoableChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.util.mxUndoableEdit.mxUndoableChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxUndoableEdit.mxUndoableChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoableEdit.mxUndoableChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.util.mxUndoableEdit.mxUndoableChange</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A> in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A> that implement <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the interface for an atomic change of the graph model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with type parameters of type <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxUndoableEdit.</B><B><A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html#changes">changes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the list of changes that make up this undoable edit.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> that return types with arguments of type <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxUndoableEdit.</B><B><A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html#getChanges()">getChanges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxUndoableEdit.</B><B><A HREF="../../../../com/mxgraph/util/mxUndoableEdit.html#add(com.mxgraph.util.mxUndoableEdit.mxUndoableChange)">add</A></B>(<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified change to this edit.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that implement <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Action to change the current root in a view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#getCellsForChange(com.mxgraph.util.mxUndoableEdit.mxUndoableChange)">getCellsForChange</A></B>(<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#processChange(com.mxgraph.util.mxUndoableEdit.mxUndoableChange, boolean, boolean)">processChange</A></B>(<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change,
    +              boolean&nbsp;invalidate,
    +              boolean&nbsp;ignoreDirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given change and invalidates the respective cached data
    + in <view>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with type arguments of type <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#getCellsForChanges(java.util.List)">getCellsForChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getRemovedCellsForChanges(java.util.List)">getRemovedCellsForChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells that have been removed from the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getSelectionCellsForChanges(java.util.List)">getSelectionCellsForChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells to be selected for the given list of changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#graphModelChanged(com.mxgraph.model.mxIGraphModel, java.util.List)">graphModelChanged</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;sender,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when the graph model changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#processChanges(java.util.List, boolean, boolean)">processChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes,
    +               boolean&nbsp;invalidate,
    +               boolean&nbsp;ignoreDirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the changes and returns the minimal rectangle to be
    + repainted in the buffer.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxUndoableEdit.mxUndoableChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoableEdit.mxUndoableChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxUtils.html b/java/docs/com/mxgraph/util/class-use/mxUtils.html
    new file mode 100644
    index 000000000..b70a148aa
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxUtils.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxUtils</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxUtils
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/class-use/mxXmlUtils.html b/java/docs/com/mxgraph/util/class-use/mxXmlUtils.html
    new file mode 100644
    index 000000000..eded0407e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/class-use/mxXmlUtils.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.mxXmlUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.mxXmlUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxXmlUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxXmlUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.mxXmlUtils</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.mxXmlUtils
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util//class-usemxXmlUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxXmlUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxBase64.html b/java/docs/com/mxgraph/util/mxBase64.html
    new file mode 100644
    index 000000000..32b78d7c5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxBase64.html
    @@ -0,0 +1,531 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxBase64 (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxBase64 (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxBase64.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxBase64.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBase64.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxBase64</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxBase64</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxBase64</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +A very fast and memory efficient class to encode and decode to and from BASE64 in full accordance
    + with RFC 2045.<br><br>
    + On Windows XP sp1 with 1.4.2_04 and later ;), this encoder and decoder is about 10 times faster
    + on small arrays (10 - 1000 bytes) and 2-3 times as fast on larger arrays (10000 - 1000000 bytes)
    + compared to <code>sun.misc.Encoder()/Decoder()</code>.<br><br>
    +
    + On byte arrays the encoder is about 20% faster than Jakarta Commons Base64 Codec for encode and
    + about 50% faster for decoding large arrays. This implementation is about twice as fast on very small
    + arrays (&lt 30 bytes). If source/destination is a <code>String</code> this
    + version is about three times as fast due to the fact that the Commons Codec result has to be recoded
    + to a <code>String</code> from <code>byte[]</code>, which is very expensive.<br><br>
    +
    + This encode/decode algorithm doesn't create any temporary arrays as many other codecs do, it only
    + allocates the resulting array. This produces less garbage and it is possible to handle arrays twice
    + as large as algorithms that create a temporary array. (E.g. Jakarta Commons Codec). It is unknown
    + whether Sun's <code>sun.misc.Encoder()/Decoder()</code> produce temporary arrays but since performance
    + is quite low it probably does.<br><br>
    +
    + The encoder produces the same output as the Sun one except that the Sun's encoder appends
    + a trailing line separator if the last character isn't a pad. Unclear why but it only adds to the
    + length and is probably a side effect. Both are in conformance with RFC 2045 though.<br>
    + Commons codec seem to always att a trailing line separator.<br><br>
    +
    + <b>Note!</b>
    + The encode/decode method pairs (types) come in three versions with the <b>exact</b> same algorithm and
    + thus a lot of code redundancy. This is to not create any temporary arrays for transcoding to/from different
    + format types. The methods not used can simply be commented out.<br><br>
    +
    + There is also a "fast" version of all decode methods that works the same way as the normal ones, but
    + har a few demands on the decoded input. Normally though, these fast verions should be used if the source if
    + the input is known and it hasn't bee tampered with.<br><br>
    +
    + If you find the code useful or you find a bug, please send me a note at base64 @ miginfocom . com.
    +
    + Licence (BSD):
    + ==============
    +
    + Copyright (c) 2004, Mikael Grev, MiG InfoCom AB. (base64 @ miginfocom . com)
    + All rights reserved.
    +
    + Redistribution and use in source and binary forms, with or without modification,
    + are permitted provided that the following conditions are met:
    + Redistributions of source code must retain the above copyright notice, this list
    + of conditions and the following disclaimer.
    + Redistributions in binary form must reproduce the above copyright notice, this
    + list of conditions and the following disclaimer in the documentation and/or other
    + materials provided with the distribution.
    + Neither the name of the MiG InfoCom AB nor the names of its contributors may be
    + used to endorse or promote products derived from this software without specific
    + prior written permission.
    +
    + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    + IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
    + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
    + OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
    + OF SUCH DAMAGE.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#mxBase64()">mxBase64</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#decode(byte[])">decode</A></B>(byte[]&nbsp;sArr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes a BASE64 encoded byte array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#decode(char[])">decode</A></B>(char[]&nbsp;sArr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes a BASE64 encoded char array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#decode(java.lang.String)">decode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;str)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes a BASE64 encoded <code>String</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#decodeFast(byte[])">decodeFast</A></B>(byte[]&nbsp;sArr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes a BASE64 encoded byte array that is known to be resonably well formatted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#decodeFast(char[])">decodeFast</A></B>(char[]&nbsp;sArr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes a BASE64 encoded char array that is known to be resonably well formatted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#decodeFast(java.lang.String)">decodeFast</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes a BASE64 encoded string that is known to be resonably well formatted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#encodeToByte(byte[], boolean)">encodeToByte</A></B>(byte[]&nbsp;sArr,
    +             boolean&nbsp;lineSep)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes a raw byte array into a BASE64 <code>byte[]</code> representation i accordance with RFC 2045.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;char[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#encodeToChar(byte[], boolean)">encodeToChar</A></B>(byte[]&nbsp;sArr,
    +             boolean&nbsp;lineSep)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes a raw byte array into a BASE64 <code>char[]</code> representation i accordance with RFC 2045.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxBase64.html#encodeToString(byte[], boolean)">encodeToString</A></B>(byte[]&nbsp;sArr,
    +               boolean&nbsp;lineSep)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encodes a raw byte array into a BASE64 <code>String</code> representation i accordance with RFC 2045.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxBase64()"><!-- --></A><H3>
    +mxBase64</H3>
    +<PRE>
    +public <B>mxBase64</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="encodeToChar(byte[], boolean)"><!-- --></A><H3>
    +encodeToChar</H3>
    +<PRE>
    +public static final char[] <B>encodeToChar</B>(byte[]&nbsp;sArr,
    +                                        boolean&nbsp;lineSep)</PRE>
    +<DL>
    +<DD>Encodes a raw byte array into a BASE64 <code>char[]</code> representation i accordance with RFC 2045.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sArr</CODE> - The bytes to convert. If <code>null</code> or length 0 an empty array will be returned.<DD><CODE>lineSep</CODE> - Optional "\r\n" after 76 characters, unless end of file.<br>
    + No line separator will be in breach of RFC 2045 which specifies max 76 per line but will be a
    + little faster.
    +<DT><B>Returns:</B><DD>A BASE64 encoded array. Never <code>null</code>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decode(char[])"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public static final byte[] <B>decode</B>(char[]&nbsp;sArr)</PRE>
    +<DL>
    +<DD>Decodes a BASE64 encoded char array. All illegal characters will be ignored and can handle both arrays with
    + and without line separators.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sArr</CODE> - The source array. <code>null</code> or length 0 will return an empty array.
    +<DT><B>Returns:</B><DD>The decoded array of bytes. May be of length 0. Will be <code>null</code> if the legal characters
    + (including '=') isn't divideable by 4.  (I.e. definitely corrupted).</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeFast(char[])"><!-- --></A><H3>
    +decodeFast</H3>
    +<PRE>
    +public static final byte[] <B>decodeFast</B>(char[]&nbsp;sArr)</PRE>
    +<DL>
    +<DD>Decodes a BASE64 encoded char array that is known to be resonably well formatted. The method is about twice as
    + fast as <A HREF="../../../com/mxgraph/util/mxBase64.html#decode(char[])"><CODE>decode(char[])</CODE></A>. The preconditions are:<br>
    + + The array must have a line length of 76 chars OR no line separators at all (one line).<br>
    + + Line separator must be "\r\n", as specified in RFC 2045
    + + The array must not contain illegal characters within the encoded string<br>
    + + The array CAN have illegal characters at the beginning and end, those will be dealt with appropriately.<br>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sArr</CODE> - The source array. Length 0 will return an empty array. <code>null</code> will throw an exception.
    +<DT><B>Returns:</B><DD>The decoded array of bytes. May be of length 0.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encodeToByte(byte[], boolean)"><!-- --></A><H3>
    +encodeToByte</H3>
    +<PRE>
    +public static final byte[] <B>encodeToByte</B>(byte[]&nbsp;sArr,
    +                                        boolean&nbsp;lineSep)</PRE>
    +<DL>
    +<DD>Encodes a raw byte array into a BASE64 <code>byte[]</code> representation i accordance with RFC 2045.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sArr</CODE> - The bytes to convert. If <code>null</code> or length 0 an empty array will be returned.<DD><CODE>lineSep</CODE> - Optional "\r\n" after 76 characters, unless end of file.<br>
    + No line separator will be in breach of RFC 2045 which specifies max 76 per line but will be a
    + little faster.
    +<DT><B>Returns:</B><DD>A BASE64 encoded array. Never <code>null</code>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decode(byte[])"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public static final byte[] <B>decode</B>(byte[]&nbsp;sArr)</PRE>
    +<DL>
    +<DD>Decodes a BASE64 encoded byte array. All illegal characters will be ignored and can handle both arrays with
    + and without line separators.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sArr</CODE> - The source array. Length 0 will return an empty array. <code>null</code> will throw an exception.
    +<DT><B>Returns:</B><DD>The decoded array of bytes. May be of length 0. Will be <code>null</code> if the legal characters
    + (including '=') isn't divideable by 4. (I.e. definitely corrupted).</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeFast(byte[])"><!-- --></A><H3>
    +decodeFast</H3>
    +<PRE>
    +public static final byte[] <B>decodeFast</B>(byte[]&nbsp;sArr)</PRE>
    +<DL>
    +<DD>Decodes a BASE64 encoded byte array that is known to be resonably well formatted. The method is about twice as
    + fast as <A HREF="../../../com/mxgraph/util/mxBase64.html#decode(byte[])"><CODE>decode(byte[])</CODE></A>. The preconditions are:<br>
    + + The array must have a line length of 76 chars OR no line separators at all (one line).<br>
    + + Line separator must be "\r\n", as specified in RFC 2045
    + + The array must not contain illegal characters within the encoded string<br>
    + + The array CAN have illegal characters at the beginning and end, those will be dealt with appropriately.<br>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sArr</CODE> - The source array. Length 0 will return an empty array. <code>null</code> will throw an exception.
    +<DT><B>Returns:</B><DD>The decoded array of bytes. May be of length 0.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encodeToString(byte[], boolean)"><!-- --></A><H3>
    +encodeToString</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>encodeToString</B>(byte[]&nbsp;sArr,
    +                                          boolean&nbsp;lineSep)</PRE>
    +<DL>
    +<DD>Encodes a raw byte array into a BASE64 <code>String</code> representation i accordance with RFC 2045.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sArr</CODE> - The bytes to convert. If <code>null</code> or length 0 an empty array will be returned.<DD><CODE>lineSep</CODE> - Optional "\r\n" after 76 characters, unless end of file.<br>
    + No line separator will be in breach of RFC 2045 which specifies max 76 per line but will be a
    + little faster.
    +<DT><B>Returns:</B><DD>A BASE64 encoded array. Never <code>null</code>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decode(java.lang.String)"><!-- --></A><H3>
    +decode</H3>
    +<PRE>
    +public static final byte[] <B>decode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;str)</PRE>
    +<DL>
    +<DD>Decodes a BASE64 encoded <code>String</code>. All illegal characters will be ignored and can handle both strings with
    + and without line separators.<br>
    + <b>Note!</b> It can be up to about 2x the speed to call <code>decode(str.toCharArray())</code> instead. That
    + will create a temporary array though. This version will use <code>str.charAt(i)</code> to iterate the string.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>str</CODE> - The source string. <code>null</code> or length 0 will return an empty array.
    +<DT><B>Returns:</B><DD>The decoded array of bytes. May be of length 0. Will be <code>null</code> if the legal characters
    + (including '=') isn't divideable by 4.  (I.e. definitely corrupted).</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="decodeFast(java.lang.String)"><!-- --></A><H3>
    +decodeFast</H3>
    +<PRE>
    +public static final byte[] <B>decodeFast</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</PRE>
    +<DL>
    +<DD>Decodes a BASE64 encoded string that is known to be resonably well formatted. The method is about twice as
    + fast as <A HREF="../../../com/mxgraph/util/mxBase64.html#decode(java.lang.String)"><CODE>decode(String)</CODE></A>. The preconditions are:<br>
    + + The array must have a line length of 76 chars OR no line separators at all (one line).<br>
    + + Line separator must be "\r\n", as specified in RFC 2045
    + + The array must not contain illegal characters within the encoded string<br>
    + + The array CAN have illegal characters at the beginning and end, those will be dealt with appropriately.<br>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>s</CODE> - The source string. Length 0 will return an empty array. <code>null</code> will throw an exception.
    +<DT><B>Returns:</B><DD>The decoded array of bytes. May be of length 0.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxBase64.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxBase64.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxBase64.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxCellRenderer.CanvasFactory.html b/java/docs/com/mxgraph/util/mxCellRenderer.CanvasFactory.html
    new file mode 100644
    index 000000000..aeed6dea5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxCellRenderer.CanvasFactory.html
    @@ -0,0 +1,262 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxCellRenderer.CanvasFactory (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellRenderer.CanvasFactory (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellRenderer.CanvasFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxCellRenderer.CanvasFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellRenderer.CanvasFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxCellRenderer.CanvasFactory</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxCellRenderer.CanvasFactory</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util">mxCellRenderer</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract static class <B>mxCellRenderer.CanvasFactory</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html#mxCellRenderer.CanvasFactory()">mxCellRenderer.CanvasFactory</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html#createCanvas(int, int)">createCanvas</A></B>(int&nbsp;width,
    +             int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Separates the creation of the canvas from its initialization, when the
    + size of the required graphics buffer / document / container is known.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellRenderer.CanvasFactory()"><!-- --></A><H3>
    +mxCellRenderer.CanvasFactory</H3>
    +<PRE>
    +public <B>mxCellRenderer.CanvasFactory</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createCanvas(int, int)"><!-- --></A><H3>
    +createCanvas</H3>
    +<PRE>
    +public abstract <A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> <B>createCanvas</B>(int&nbsp;width,
    +                                       int&nbsp;height)</PRE>
    +<DL>
    +<DD>Separates the creation of the canvas from its initialization, when the
    + size of the required graphics buffer / document / container is known.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellRenderer.CanvasFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxCellRenderer.CanvasFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellRenderer.CanvasFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxCellRenderer.html b/java/docs/com/mxgraph/util/mxCellRenderer.html
    new file mode 100644
    index 000000000..fa70f2823
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxCellRenderer.html
    @@ -0,0 +1,391 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxCellRenderer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellRenderer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellRenderer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxCellRenderer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellRenderer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxCellRenderer</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxCellRenderer</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellRenderer</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.html#createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle)">createBufferedImage</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    double&nbsp;scale,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                    boolean&nbsp;antiAlias,
    +                    <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.html#createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle, com.mxgraph.canvas.mxGraphics2DCanvas)">createBufferedImage</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    double&nbsp;scale,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                    boolean&nbsp;antiAlias,
    +                    <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +                    <A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;graphicsCanvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.html#createHtmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)">createHtmlDocument</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                   double&nbsp;scale,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                   <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.html#createSvgDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)">createSvgDocument</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  double&nbsp;scale,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                  <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.html#createVmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)">createVmlDocument</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  double&nbsp;scale,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                  <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.html#drawCells(com.mxgraph.view.mxGraph, java.lang.Object[], double, com.mxgraph.util.mxRectangle, com.mxgraph.util.mxCellRenderer.CanvasFactory)">drawCells</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;scale,
    +          <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +          <A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A>&nbsp;factory)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cells using a Graphics2D canvas and returns the buffered image
    + that represents the cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="drawCells(com.mxgraph.view.mxGraph, java.lang.Object[], double, com.mxgraph.util.mxRectangle, com.mxgraph.util.mxCellRenderer.CanvasFactory)"><!-- --></A><H3>
    +drawCells</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A> <B>drawCells</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                  double&nbsp;scale,
    +                                  <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +                                  <A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A>&nbsp;factory)</PRE>
    +<DL>
    +<DD>Draws the given cells using a Graphics2D canvas and returns the buffered image
    + that represents the cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - Graph to be painted onto the canvas.
    +<DT><B>Returns:</B><DD>Returns the image that represents the canvas.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +createBufferedImage</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>createBufferedImage</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                                double&nbsp;scale,
    +                                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                                                boolean&nbsp;antiAlias,
    +                                                <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle, com.mxgraph.canvas.mxGraphics2DCanvas)"><!-- --></A><H3>
    +createBufferedImage</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>createBufferedImage</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                                double&nbsp;scale,
    +                                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                                                boolean&nbsp;antiAlias,
    +                                                <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +                                                <A HREF="../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;graphicsCanvas)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +createHtmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createHtmlDocument</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                          double&nbsp;scale,
    +                                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                                          <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createSvgDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +createSvgDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createSvgDocument</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                         double&nbsp;scale,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                                         <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createVmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +createVmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createVmlDocument</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                         double&nbsp;scale,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                                         <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellRenderer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxCellRenderer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellRenderer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxConstants.html b/java/docs/com/mxgraph/util/mxConstants.html
    new file mode 100644
    index 000000000..1c07cc778
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxConstants.html
    @@ -0,0 +1,4143 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxConstants (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxConstants (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxConstants</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxConstants</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxConstants</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Contains all global constants.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ALIGN_BOTTOM">ALIGN_BOTTOM</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALIGN_BOTTOM</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ALIGN_CENTER">ALIGN_CENTER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALIGN_CENTER</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ALIGN_LEFT">ALIGN_LEFT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALIGN_LEFT</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ALIGN_MIDDLE">ALIGN_MIDDLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALIGN_MIDDLE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ALIGN_RIGHT">ALIGN_RIGHT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALIGN_RIGHT</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ALIGN_TOP">ALIGN_TOP</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALIGN_TOP</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ARROW_BLOCK">ARROW_BLOCK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARROW_BLOCK</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ARROW_CLASSIC">ARROW_CLASSIC</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARROW_CLASSIC</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ARROW_DIAMOND">ARROW_DIAMOND</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARROW_OPEN</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ARROW_OPEN">ARROW_OPEN</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARROW_OPEN</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ARROW_OVAL">ARROW_OVAL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARROW_BLOCK</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ARROW_SIZE">ARROW_SIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the size of the arrowhead in the arrow shape.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ARROW_SPACING">ARROW_SPACING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the spacing between the arrow shape and its terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ARROW_WIDTH">ARROW_WIDTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the width of the arrow shape.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#CONNECT_HANDLE_ENABLED">CONNECT_HANDLE_ENABLED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default value for the connect handle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#CONNECT_HANDLE_SIZE">CONNECT_HANDLE_SIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the connect handle size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;float[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_DASHED_PATTERN">DEFAULT_DASHED_PATTERN</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default dash pattern, 3 pixels solid, 3 pixels clear.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTFAMILIES">DEFAULT_FONTFAMILIES</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comma separated list of default fonts for CSS properties.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTFAMILY">DEFAULT_FONTFAMILY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default font family.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_FONTSIZE">DEFAULT_FONTSIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default font size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_HOTSPOT">DEFAULT_HOTSPOT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the portion of the cell which is to be used as a connectable
    + region.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_IMAGESIZE">DEFAULT_IMAGESIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default image size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_LABEL_BUFFER">DEFAULT_LABEL_BUFFER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default distance at 1.0 scale that the label curve is 
    + created from its base curve</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_MARKERSIZE">DEFAULT_MARKERSIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default marker size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEFAULT_STARTSIZE">DEFAULT_STARTSIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default start size for swimlanes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DEG_PER_RAD">DEG_PER_RAD</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the number of degrees per radian.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_EAST">DIRECTION_EAST</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_EAST</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_MASK_ALL">DIRECTION_MASK_ALL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_MASK_EAST</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_MASK_EAST">DIRECTION_MASK_EAST</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_MASK_EAST</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_MASK_NONE">DIRECTION_MASK_NONE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_MASK_NONE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_MASK_NORTH">DIRECTION_MASK_NORTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_MASK_NORTH</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_MASK_SOUTH">DIRECTION_MASK_SOUTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_MASK_SOUTH</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_MASK_WEST">DIRECTION_MASK_WEST</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_MASK_WEST</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_NORTH">DIRECTION_NORTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_NORTH</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_SOUTH">DIRECTION_SOUTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_SOUTH</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#DIRECTION_WEST">DIRECTION_WEST</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DIRECTION_WEST</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#EDGESTYLE_ELBOW">EDGESTYLE_ELBOW</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the elbow edge style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#EDGESTYLE_ENTITY_RELATION">EDGESTYLE_ENTITY_RELATION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the entity relation edge style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#EDGESTYLE_LOOP">EDGESTYLE_LOOP</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the loop edge style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#EDGESTYLE_ORTHOGONAL">EDGESTYLE_ORTHOGONAL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the orthogonal edge style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#EDGESTYLE_SIDETOSIDE">EDGESTYLE_SIDETOSIDE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the side to side edge style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#EDGESTYLE_TOPTOBOTTOM">EDGESTYLE_TOPTOBOTTOM</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the top to bottom edge style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ELBOW_HORIZONTAL">ELBOW_HORIZONTAL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELBOW_HORIZONTAL</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ELBOW_VERTICAL">ELBOW_VERTICAL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELBOW_VERTICAL</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#ENTITY_SEGMENT">ENTITY_SEGMENT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the length of the horizontal segment of an Entity Relation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#FONT_BOLD">FONT_BOLD</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FONT_BOLD</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#FONT_ITALIC">FONT_ITALIC</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FONT_ITALIC</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#FONT_SHADOW">FONT_SHADOW</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FONT_SHADOW</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#FONT_UNDERLINE">FONT_UNDERLINE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FONT_UNDERLINE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#HANDLE_SIZE">HANDLE_SIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the handle size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#LABEL_HANDLE_SIZE">LABEL_HANDLE_SIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the handle size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#LABEL_INSET">LABEL_INSET</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the inset in absolute pixels between the label bounding box and
    + the label text.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#LABEL_SCALE_BUFFER">LABEL_SCALE_BUFFER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Multiplier to the width that is passed into the word wrapping calculation
    + See mxUtils.wordWrap for details</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#LINE_ARCSIZE">LINE_ARCSIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the size of the arcs for rounded edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#LINESPACING">LINESPACING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the line spacing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#MAX_HOTSPOT_SIZE">MAX_HOTSPOT_SIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the maximum size in pixels of the portion of the cell which is
    + to be used as a connectable region.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#MIN_HOTSPOT_SIZE">MIN_HOTSPOT_SIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the minimum size in pixels of the portion of the cell which is
    + to be used as a connectable region.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#MIN_SCALE_FOR_ROUNDED_LINES">MIN_SCALE_FOR_ROUNDED_LINES</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the minimum scale at which rounded polylines should be painted.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#NONE">NONE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the value for none.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#NS_SVG">NS_SVG</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the SVG namespace.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#NS_XHTML">NS_XHTML</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the XHTML namespace.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#NS_XLINK">NS_XLINK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the XLink namespace.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#PERIMETER_ELLIPSE">PERIMETER_ELLIPSE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the ellipse perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#PERIMETER_HEXAGON">PERIMETER_HEXAGON</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the hexagon perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#PERIMETER_RECTANGLE">PERIMETER_RECTANGLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the rectangle perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#PERIMETER_RHOMBUS">PERIMETER_RHOMBUS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the rhombus perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#PERIMETER_TRIANGLE">PERIMETER_TRIANGLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the triangle perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#PX_PER_PIXEL">PX_PER_PIXEL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the ratio between px units in HTML markup and pixels on screen.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#RAD_PER_DEG">RAD_PER_DEG</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the number of radians per degree.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#RECTANGLE_ROUNDING_FACTOR">RECTANGLE_ROUNDING_FACTOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the rounding factor for rounded rectangles in percent between
    + 0 and 1.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHADOW_OFFSETX">SHADOW_OFFSETX</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the x-offset to be used for shadows.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHADOW_OFFSETY">SHADOW_OFFSETY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the y-offset to be used for shadows.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_ACTOR">SHAPE_ACTOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_ACTOR</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_ARROW">SHAPE_ARROW</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_ARROW</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_CLOUD">SHAPE_CLOUD</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_CLOUD</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_CONNECTOR">SHAPE_CONNECTOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_CONNECTOR</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_CURVE">SHAPE_CURVE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_ARROW</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_CYLINDER">SHAPE_CYLINDER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_CYLINDER</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_DOUBLE_ELLIPSE">SHAPE_DOUBLE_ELLIPSE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_DOUBLE_ELLIPSE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_ELLIPSE">SHAPE_ELLIPSE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_ELLIPSE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_HEXAGON">SHAPE_HEXAGON</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_HEXAGON</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_IMAGE">SHAPE_IMAGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_IMAGE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_LABEL">SHAPE_LABEL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_LABEL</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_LINE">SHAPE_LINE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_LINE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_RECTANGLE">SHAPE_RECTANGLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_RECTANGLE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_RHOMBUS">SHAPE_RHOMBUS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_RHOMBUS</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_SWIMLANE">SHAPE_SWIMLANE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_SWIMLANE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SHAPE_TRIANGLE">SHAPE_TRIANGLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAPE_TRIANGLE</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SPLIT_WORDS">SPLIT_WORDS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not to split whole words when applying word wrapping in mxUtils.wordWrap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STENCIL_SHADOW_OPACITY">STENCIL_SHADOW_OPACITY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default opacity for stencils shadows.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STENCIL_SHADOWCOLOR">STENCIL_SHADOWCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the default shadow color for stencils.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ALIGN">STYLE_ALIGN</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the align style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_AUTOSIZE">STYLE_AUTOSIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the autosize style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_BENDABLE">STYLE_BENDABLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the bendable style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_CLONEABLE">STYLE_CLONEABLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the cloneable style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_DASH_PATTERN">STYLE_DASH_PATTERN</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the dashed pattern style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_DASHED">STYLE_DASHED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the dashed style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_DELETABLE">STYLE_DELETABLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the deletable style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_DIRECTION">STYLE_DIRECTION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the direction style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_EDGE">STYLE_EDGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a function that creates points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_EDITABLE">STYLE_EDITABLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the editable style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ELBOW">STYLE_ELBOW</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the elbow style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ENDARROW">STYLE_ENDARROW</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the endArrow style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ENDFILL">STYLE_ENDFILL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the endFill style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ENDSIZE">STYLE_ENDSIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the endSize style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ENTRY_PERIMETER">STYLE_ENTRY_PERIMETER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines if the perimeter should be used to find the exact entry point
    + along the perimeter of the target.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ENTRY_X">STYLE_ENTRY_X</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the horizontal relative coordinate connection point
    + of an edge with its target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ENTRY_Y">STYLE_ENTRY_Y</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the vertical relative coordinate connection point
    + of an edge with its target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_EXIT_PERIMETER">STYLE_EXIT_PERIMETER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines if the perimeter should be used to find the exact entry point
    + along the perimeter of the source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_EXIT_X">STYLE_EXIT_X</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the horizontal relative coordinate connection point
    + of an edge with its source terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_EXIT_Y">STYLE_EXIT_Y</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the vertical relative coordinate connection point
    + of an edge with its source terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_FILLCOLOR">STYLE_FILLCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the fillColor style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_FOLDABLE">STYLE_FOLDABLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the foldable style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_FONTCOLOR">STYLE_FONTCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the fontColor style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_FONTFAMILY">STYLE_FONTFAMILY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the fontFamily style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_FONTSIZE">STYLE_FONTSIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the fontSize style (in points).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_FONTSTYLE">STYLE_FONTSTYLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the fontStyle style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_GLASS">STYLE_GLASS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the glass style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_GRADIENT_DIRECTION">STYLE_GRADIENT_DIRECTION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the gradient direction.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_GRADIENTCOLOR">STYLE_GRADIENTCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the gradientColor style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_HORIZONTAL">STYLE_HORIZONTAL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the horizontal style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_IMAGE">STYLE_IMAGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the image style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_IMAGE_ALIGN">STYLE_IMAGE_ALIGN</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the align style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_IMAGE_BACKGROUND">STYLE_IMAGE_BACKGROUND</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the image background color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_IMAGE_BORDER">STYLE_IMAGE_BORDER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the image border color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_IMAGE_FLIPH">STYLE_IMAGE_FLIPH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the horizontal image flip.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_IMAGE_FLIPV">STYLE_IMAGE_FLIPV</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the vertical image flip.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_IMAGE_HEIGHT">STYLE_IMAGE_HEIGHT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the imageHeight style The type of this value is
    + <code>int</code>, the value is the image height in pixels and must be
    + greater than 0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_IMAGE_VERTICAL_ALIGN">STYLE_IMAGE_VERTICAL_ALIGN</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the verticalAlign style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_IMAGE_WIDTH">STYLE_IMAGE_WIDTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the imageWidth style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_COLOR">STYLE_INDICATOR_COLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the indicatorColor style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_GRADIENTCOLOR">STYLE_INDICATOR_GRADIENTCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the indicatorGradientColor style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_HEIGHT">STYLE_INDICATOR_HEIGHT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the indicatorHeight style (in px).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_IMAGE">STYLE_INDICATOR_IMAGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the indicatorImage style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_SHAPE">STYLE_INDICATOR_SHAPE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the indicatorShape style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_SPACING">STYLE_INDICATOR_SPACING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the indicatorSpacing style (in px).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_WIDTH">STYLE_INDICATOR_WIDTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the indicatorWidth style (in px).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_LABEL_BACKGROUNDCOLOR">STYLE_LABEL_BACKGROUNDCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the label background color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_LABEL_BORDERCOLOR">STYLE_LABEL_BORDERCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the label border color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_LABEL_POSITION">STYLE_LABEL_POSITION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the horizontal label position of vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_LOOP">STYLE_LOOP</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the loop style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_MOVABLE">STYLE_MOVABLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the movable style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_NOEDGESTYLE">STYLE_NOEDGESTYLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the noEdgeStyle style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_NOLABEL">STYLE_NOLABEL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the noLabel style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_OPACITY">STYLE_OPACITY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the opacity style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ORTHOGONAL">STYLE_ORTHOGONAL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines if the connection points on either end of the edge should be
    + computed so that the edge is vertical or horizontal if possible and
    + if the point is not at a fixed location.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_OVERFLOW">STYLE_OVERFLOW</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the overflow style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_PERIMETER">STYLE_PERIMETER</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the perimeter style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_PERIMETER_SPACING">STYLE_PERIMETER_SPACING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the perimeter spacing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_PORT_CONSTRAINT">STYLE_PORT_CONSTRAINT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the direction(s) that edges are allowed to connect to cells in.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_RESIZABLE">STYLE_RESIZABLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the resizable style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ROTATION">STYLE_ROTATION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the rotation style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ROUNDED">STYLE_ROUNDED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the rounded style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ROUTING_CENTER_X">STYLE_ROUTING_CENTER_X</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the horizontal routing center.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_ROUTING_CENTER_Y">STYLE_ROUTING_CENTER_Y</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the vertical routing center.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SEGMENT">STYLE_SEGMENT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the segment style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SEPARATORCOLOR">STYLE_SEPARATORCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the separatorColor style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SHADOW">STYLE_SHADOW</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the shadow style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SHAPE">STYLE_SHAPE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the shape style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SOURCE_PERIMETER_SPACING">STYLE_SOURCE_PERIMETER_SPACING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the source perimeter spacing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SOURCE_PORT">STYLE_SOURCE_PORT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the ID of the cell that should be used for computing the
    + perimeter point of the source for an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SPACING">STYLE_SPACING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the spacing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SPACING_BOTTOM">STYLE_SPACING_BOTTOM</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the spacingBottom style The value represents the
    + spacing, in pixels, added to the bottom side of a label in a vertex
    + (style applies to vertices only).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SPACING_LEFT">STYLE_SPACING_LEFT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the spacingLeft style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SPACING_RIGHT">STYLE_SPACING_RIGHT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the spacingRight style The value represents the
    + spacing, in pixels, added to the right side of a label in a vertex (style
    + applies to vertices only).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_SPACING_TOP">STYLE_SPACING_TOP</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the spacingTop style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_STARTARROW">STYLE_STARTARROW</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the startArrow style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_STARTFILL">STYLE_STARTFILL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the startFill style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_STARTSIZE">STYLE_STARTSIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the startSize style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_STENCIL_FLIPH">STYLE_STENCIL_FLIPH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the horizontal stencil flip.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_STENCIL_FLIPV">STYLE_STENCIL_FLIPV</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the vertical stencil flip.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_STROKECOLOR">STYLE_STROKECOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the strokeColor style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_STROKEWIDTH">STYLE_STROKEWIDTH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the strokeWidth style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_TARGET_PERIMETER_SPACING">STYLE_TARGET_PERIMETER_SPACING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the target perimeter spacing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_TARGET_PORT">STYLE_TARGET_PORT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the ID of the cell that should be used for computing the
    + perimeter point of the target for an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_TEXT_OPACITY">STYLE_TEXT_OPACITY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the text opacity style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_VERTICAL_ALIGN">STYLE_VERTICAL_ALIGN</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the verticalAlign style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_VERTICAL_LABEL_POSITION">STYLE_VERTICAL_LABEL_POSITION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the vertical label position of vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#STYLE_WHITE_SPACE">STYLE_WHITE_SPACE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the white-space style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#SVG_SHADOWTRANSFORM">SVG_SHADOWTRANSFORM</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the transformation used to draw shadows in SVG.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#W3C_SHADOWCOLOR">W3C_SHADOWCOLOR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the color to be used to draw shadows in W3C standards.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxConstants.html#mxConstants()">mxConstants</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="RAD_PER_DEG"><!-- --></A><H3>
    +RAD_PER_DEG</H3>
    +<PRE>
    +public static double <B>RAD_PER_DEG</B></PRE>
    +<DL>
    +<DD>Defines the number of radians per degree.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEG_PER_RAD"><!-- --></A><H3>
    +DEG_PER_RAD</H3>
    +<PRE>
    +public static double <B>DEG_PER_RAD</B></PRE>
    +<DL>
    +<DD>Defines the number of degrees per radian.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PX_PER_PIXEL"><!-- --></A><H3>
    +PX_PER_PIXEL</H3>
    +<PRE>
    +public static double <B>PX_PER_PIXEL</B></PRE>
    +<DL>
    +<DD>Defines the ratio between px units in HTML markup and pixels on screen.
    + Default is 0.77.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="MIN_SCALE_FOR_ROUNDED_LINES"><!-- --></A><H3>
    +MIN_SCALE_FOR_ROUNDED_LINES</H3>
    +<PRE>
    +public static double <B>MIN_SCALE_FOR_ROUNDED_LINES</B></PRE>
    +<DL>
    +<DD>Defines the minimum scale at which rounded polylines should be painted.
    + Default is 0.05.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_HOTSPOT"><!-- --></A><H3>
    +DEFAULT_HOTSPOT</H3>
    +<PRE>
    +public static double <B>DEFAULT_HOTSPOT</B></PRE>
    +<DL>
    +<DD>Defines the portion of the cell which is to be used as a connectable
    + region. Default is 0.3.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="MIN_HOTSPOT_SIZE"><!-- --></A><H3>
    +MIN_HOTSPOT_SIZE</H3>
    +<PRE>
    +public static int <B>MIN_HOTSPOT_SIZE</B></PRE>
    +<DL>
    +<DD>Defines the minimum size in pixels of the portion of the cell which is
    + to be used as a connectable region. Default is 8.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="MAX_HOTSPOT_SIZE"><!-- --></A><H3>
    +MAX_HOTSPOT_SIZE</H3>
    +<PRE>
    +public static int <B>MAX_HOTSPOT_SIZE</B></PRE>
    +<DL>
    +<DD>Defines the maximum size in pixels of the portion of the cell which is
    + to be used as a connectable region. Use 0 for no maximum. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="NS_SVG"><!-- --></A><H3>
    +NS_SVG</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>NS_SVG</B></PRE>
    +<DL>
    +<DD>Defines the SVG namespace.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="NS_XHTML"><!-- --></A><H3>
    +NS_XHTML</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>NS_XHTML</B></PRE>
    +<DL>
    +<DD>Defines the XHTML namespace.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="NS_XLINK"><!-- --></A><H3>
    +NS_XLINK</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>NS_XLINK</B></PRE>
    +<DL>
    +<DD>Defines the XLink namespace.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_FONTFAMILIES"><!-- --></A><H3>
    +DEFAULT_FONTFAMILIES</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DEFAULT_FONTFAMILIES</B></PRE>
    +<DL>
    +<DD>Comma separated list of default fonts for CSS properties.
    + Default is Arial, Helvetica.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_FONTFAMILY"><!-- --></A><H3>
    +DEFAULT_FONTFAMILY</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DEFAULT_FONTFAMILY</B></PRE>
    +<DL>
    +<DD>Defines the default font family. Default is "Dialog". (To be replaced
    + with Font.DIALOG after EOL of Java 1.5.)
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_FONTSIZE"><!-- --></A><H3>
    +DEFAULT_FONTSIZE</H3>
    +<PRE>
    +public static int <B>DEFAULT_FONTSIZE</B></PRE>
    +<DL>
    +<DD>Defines the default font size. Default is 11.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_STARTSIZE"><!-- --></A><H3>
    +DEFAULT_STARTSIZE</H3>
    +<PRE>
    +public static int <B>DEFAULT_STARTSIZE</B></PRE>
    +<DL>
    +<DD>Defines the default start size for swimlanes. Default is 40.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LINESPACING"><!-- --></A><H3>
    +LINESPACING</H3>
    +<PRE>
    +public static int <B>LINESPACING</B></PRE>
    +<DL>
    +<DD>Specifies the line spacing. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SPLIT_WORDS"><!-- --></A><H3>
    +SPLIT_WORDS</H3>
    +<PRE>
    +public static boolean <B>SPLIT_WORDS</B></PRE>
    +<DL>
    +<DD>Whether or not to split whole words when applying word wrapping in mxUtils.wordWrap.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LABEL_INSET"><!-- --></A><H3>
    +LABEL_INSET</H3>
    +<PRE>
    +public static int <B>LABEL_INSET</B></PRE>
    +<DL>
    +<DD>Defines the inset in absolute pixels between the label bounding box and
    + the label text. Default is 3.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LABEL_SCALE_BUFFER"><!-- --></A><H3>
    +LABEL_SCALE_BUFFER</H3>
    +<PRE>
    +public static double <B>LABEL_SCALE_BUFFER</B></PRE>
    +<DL>
    +<DD>Multiplier to the width that is passed into the word wrapping calculation
    + See mxUtils.wordWrap for details
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_MARKERSIZE"><!-- --></A><H3>
    +DEFAULT_MARKERSIZE</H3>
    +<PRE>
    +public static int <B>DEFAULT_MARKERSIZE</B></PRE>
    +<DL>
    +<DD>Defines the default marker size. Default is 6.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_IMAGESIZE"><!-- --></A><H3>
    +DEFAULT_IMAGESIZE</H3>
    +<PRE>
    +public static int <B>DEFAULT_IMAGESIZE</B></PRE>
    +<DL>
    +<DD>Defines the default image size. Default is 24.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STENCIL_SHADOW_OPACITY"><!-- --></A><H3>
    +STENCIL_SHADOW_OPACITY</H3>
    +<PRE>
    +public static int <B>STENCIL_SHADOW_OPACITY</B></PRE>
    +<DL>
    +<DD>Defines the default opacity for stencils shadows. Default is 1.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STENCIL_SHADOWCOLOR"><!-- --></A><H3>
    +STENCIL_SHADOWCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STENCIL_SHADOWCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the default shadow color for stencils. Default is "gray".
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHADOW_OFFSETX"><!-- --></A><H3>
    +SHADOW_OFFSETX</H3>
    +<PRE>
    +public static int <B>SHADOW_OFFSETX</B></PRE>
    +<DL>
    +<DD>Defines the x-offset to be used for shadows. Default is 2.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHADOW_OFFSETY"><!-- --></A><H3>
    +SHADOW_OFFSETY</H3>
    +<PRE>
    +public static int <B>SHADOW_OFFSETY</B></PRE>
    +<DL>
    +<DD>Defines the y-offset to be used for shadows. Default is 3.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="W3C_SHADOWCOLOR"><!-- --></A><H3>
    +W3C_SHADOWCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>W3C_SHADOWCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the color to be used to draw shadows in W3C standards. Default
    + is gray.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SVG_SHADOWTRANSFORM"><!-- --></A><H3>
    +SVG_SHADOWTRANSFORM</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SVG_SHADOWTRANSFORM</B></PRE>
    +<DL>
    +<DD>Defines the transformation used to draw shadows in SVG.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_DASHED_PATTERN"><!-- --></A><H3>
    +DEFAULT_DASHED_PATTERN</H3>
    +<PRE>
    +public static float[] <B>DEFAULT_DASHED_PATTERN</B></PRE>
    +<DL>
    +<DD>Specifies the default dash pattern, 3 pixels solid, 3 pixels clear.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DEFAULT_LABEL_BUFFER"><!-- --></A><H3>
    +DEFAULT_LABEL_BUFFER</H3>
    +<PRE>
    +public static double <B>DEFAULT_LABEL_BUFFER</B></PRE>
    +<DL>
    +<DD>Specifies the default distance at 1.0 scale that the label curve is 
    + created from its base curve
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="HANDLE_SIZE"><!-- --></A><H3>
    +HANDLE_SIZE</H3>
    +<PRE>
    +public static int <B>HANDLE_SIZE</B></PRE>
    +<DL>
    +<DD>Defines the handle size. Default is 7.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LABEL_HANDLE_SIZE"><!-- --></A><H3>
    +LABEL_HANDLE_SIZE</H3>
    +<PRE>
    +public static int <B>LABEL_HANDLE_SIZE</B></PRE>
    +<DL>
    +<DD>Defines the handle size. Default is 4.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CONNECT_HANDLE_ENABLED"><!-- --></A><H3>
    +CONNECT_HANDLE_ENABLED</H3>
    +<PRE>
    +public static boolean <B>CONNECT_HANDLE_ENABLED</B></PRE>
    +<DL>
    +<DD>Defines the default value for the connect handle. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CONNECT_HANDLE_SIZE"><!-- --></A><H3>
    +CONNECT_HANDLE_SIZE</H3>
    +<PRE>
    +public static int <B>CONNECT_HANDLE_SIZE</B></PRE>
    +<DL>
    +<DD>Defines the connect handle size. Default is 8.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ENTITY_SEGMENT"><!-- --></A><H3>
    +ENTITY_SEGMENT</H3>
    +<PRE>
    +public static int <B>ENTITY_SEGMENT</B></PRE>
    +<DL>
    +<DD>Defines the length of the horizontal segment of an Entity Relation.
    + This can be overridden using mxConstants.STYLE_SEGMENT style.
    + Default is 30.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="RECTANGLE_ROUNDING_FACTOR"><!-- --></A><H3>
    +RECTANGLE_ROUNDING_FACTOR</H3>
    +<PRE>
    +public static double <B>RECTANGLE_ROUNDING_FACTOR</B></PRE>
    +<DL>
    +<DD>Defines the rounding factor for rounded rectangles in percent between
    + 0 and 1. Values should be smaller than 0.5. Default is 0.15.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LINE_ARCSIZE"><!-- --></A><H3>
    +LINE_ARCSIZE</H3>
    +<PRE>
    +public static double <B>LINE_ARCSIZE</B></PRE>
    +<DL>
    +<DD>Defines the size of the arcs for rounded edges. Default is 10.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ARROW_SPACING"><!-- --></A><H3>
    +ARROW_SPACING</H3>
    +<PRE>
    +public static int <B>ARROW_SPACING</B></PRE>
    +<DL>
    +<DD>Defines the spacing between the arrow shape and its terminals. Default
    + is 10.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ARROW_WIDTH"><!-- --></A><H3>
    +ARROW_WIDTH</H3>
    +<PRE>
    +public static int <B>ARROW_WIDTH</B></PRE>
    +<DL>
    +<DD>Defines the width of the arrow shape. Default is 30.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ARROW_SIZE"><!-- --></A><H3>
    +ARROW_SIZE</H3>
    +<PRE>
    +public static int <B>ARROW_SIZE</B></PRE>
    +<DL>
    +<DD>Defines the size of the arrowhead in the arrow shape. Default is 30.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="NONE"><!-- --></A><H3>
    +NONE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>NONE</B></PRE>
    +<DL>
    +<DD>Defines the value for none. Default is "none".
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_PERIMETER"><!-- --></A><H3>
    +STYLE_PERIMETER</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_PERIMETER</B></PRE>
    +<DL>
    +<DD>Defines the key for the perimeter style.
    + This is a function that defines the perimeter around a particular shape.
    + Possible values are the functions defined in mxPerimeter that use the 
    + <code>mxPerimeterFunction</code> interface. Alternatively, the constants
    + in this class that start with <code>PERIMETER_</code> may be used to 
    + access perimeter styles in <code>mxStyleRegistry</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SOURCE_PORT"><!-- --></A><H3>
    +STYLE_SOURCE_PORT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SOURCE_PORT</B></PRE>
    +<DL>
    +<DD>Defines the ID of the cell that should be used for computing the
    + perimeter point of the source for an edge. This allows for graphically
    + connecting to a cell while keeping the actual terminal of the edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_TARGET_PORT"><!-- --></A><H3>
    +STYLE_TARGET_PORT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_TARGET_PORT</B></PRE>
    +<DL>
    +<DD>Defines the ID of the cell that should be used for computing the
    + perimeter point of the target for an edge. This allows for graphically
    + connecting to a cell while keeping the actual terminal of the edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_PORT_CONSTRAINT"><!-- --></A><H3>
    +STYLE_PORT_CONSTRAINT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_PORT_CONSTRAINT</B></PRE>
    +<DL>
    +<DD>Defines the direction(s) that edges are allowed to connect to cells in.
    + Possible values are <code>DIRECTION_NORTH, DIRECTION_SOUTH, 
    + DIRECTION_EAST</code> and <code>DIRECTION_WEST</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_OPACITY"><!-- --></A><H3>
    +STYLE_OPACITY</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_OPACITY</B></PRE>
    +<DL>
    +<DD>Defines the key for the opacity style. The type of the value is 
    + <code>float</code> and the possible range is 0-100.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_TEXT_OPACITY"><!-- --></A><H3>
    +STYLE_TEXT_OPACITY</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_TEXT_OPACITY</B></PRE>
    +<DL>
    +<DD>Defines the key for the text opacity style. The type of the value is 
    + <code>float</code> and the possible range is 0-100.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_OVERFLOW"><!-- --></A><H3>
    +STYLE_OVERFLOW</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_OVERFLOW</B></PRE>
    +<DL>
    +<DD>Defines the key for the overflow style. Possible values are "visible",
    + "hidden" and "fill". The default value is "visible". This value
    + specifies how overlapping vertex labels are handles. A value of
    + "visible" will show the complete label. A value of "hidden" will clip
    + the label so that it does not overlap the vertex bounds. A value of
    + "fill" will use the vertex bounds for the label.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/view/mxGraph.html#isLabelClipped(java.lang.Object)"><CODE>mxGraph.isLabelClipped(Object)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ORTHOGONAL"><!-- --></A><H3>
    +STYLE_ORTHOGONAL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ORTHOGONAL</B></PRE>
    +<DL>
    +<DD>Defines if the connection points on either end of the edge should be
    + computed so that the edge is vertical or horizontal if possible and
    + if the point is not at a fixed location. Default is false. This is
    + used in mxGraph.isOrthogonal, which also returns true if the edgeStyle
    + of the edge is an elbow or entity.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_EXIT_X"><!-- --></A><H3>
    +STYLE_EXIT_X</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_EXIT_X</B></PRE>
    +<DL>
    +<DD>Defines the key for the horizontal relative coordinate connection point
    + of an edge with its source terminal.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_EXIT_Y"><!-- --></A><H3>
    +STYLE_EXIT_Y</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_EXIT_Y</B></PRE>
    +<DL>
    +<DD>Defines the key for the vertical relative coordinate connection point
    + of an edge with its source terminal.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_EXIT_PERIMETER"><!-- --></A><H3>
    +STYLE_EXIT_PERIMETER</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_EXIT_PERIMETER</B></PRE>
    +<DL>
    +<DD>Defines if the perimeter should be used to find the exact entry point
    + along the perimeter of the source. Possible values are 0 (false) and
    + 1 (true). Default is 1 (true).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ENTRY_X"><!-- --></A><H3>
    +STYLE_ENTRY_X</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ENTRY_X</B></PRE>
    +<DL>
    +<DD>Defines the key for the horizontal relative coordinate connection point
    + of an edge with its target terminal.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ENTRY_Y"><!-- --></A><H3>
    +STYLE_ENTRY_Y</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ENTRY_Y</B></PRE>
    +<DL>
    +<DD>Defines the key for the vertical relative coordinate connection point
    + of an edge with its target terminal.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ENTRY_PERIMETER"><!-- --></A><H3>
    +STYLE_ENTRY_PERIMETER</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ENTRY_PERIMETER</B></PRE>
    +<DL>
    +<DD>Defines if the perimeter should be used to find the exact entry point
    + along the perimeter of the target. Possible values are 0 (false) and
    + 1 (true). Default is 1 (true).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_WHITE_SPACE"><!-- --></A><H3>
    +STYLE_WHITE_SPACE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_WHITE_SPACE</B></PRE>
    +<DL>
    +<DD>Defines the key for the white-space style. Possible values are "nowrap"
    + and "wrap". The default value is "nowrap". This value specifies how
    + white-space inside a HTML vertex label should be handled. A value of
    + "nowrap" means the text will never wrap to the next line until a
    + linefeed is encountered. A value of "wrap" means text will wrap when
    + necessary.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ROTATION"><!-- --></A><H3>
    +STYLE_ROTATION</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ROTATION</B></PRE>
    +<DL>
    +<DD>Defines the key for the rotation style. The type of the value is 
    + <code>double</code> and the possible range is 0-360.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_FILLCOLOR"><!-- --></A><H3>
    +STYLE_FILLCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_FILLCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the key for the fillColor style. The value is a string
    + expression supported by mxUtils.parseColor.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_GRADIENTCOLOR"><!-- --></A><H3>
    +STYLE_GRADIENTCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_GRADIENTCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the key for the gradientColor style. The value is a string
    + expression supported by mxUtils.parseColor. This is ignored if no fill
    + color is defined.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_GRADIENT_DIRECTION"><!-- --></A><H3>
    +STYLE_GRADIENT_DIRECTION</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_GRADIENT_DIRECTION</B></PRE>
    +<DL>
    +<DD>Defines the key for the gradient direction. Possible values are
    + <code>DIRECTION_EAST</code>, <code>DIRECTION_WEST</code>,
    + <code>DIRECTION_NORTH</code> and <code>DIRECTION_SOUTH</code>. Default
    + is <code>DIRECTION_SOUTH</code>. Generally, and by default in mxGraph,
    + gradient painting is done from the value of <code>STYLE_FILLCOLOR</code>
    + to the value of <code>STYLE_GRADIENTCOLOR</code>. Taking the example of
    + <code>DIRECTION_NORTH</code>, this means <code>STYLE_FILLCOLOR</code>
    + color at the bottom of paint pattern and
    + <code>STYLE_GRADIENTCOLOR</code> at top, with a gradient in-between.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_STROKECOLOR"><!-- --></A><H3>
    +STYLE_STROKECOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_STROKECOLOR</B></PRE>
    +<DL>
    +<DD>Defines the key for the strokeColor style. The value is a string
    + expression supported by mxUtils.parseColor.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SEPARATORCOLOR"><!-- --></A><H3>
    +STYLE_SEPARATORCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SEPARATORCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the key for the separatorColor style. The value is a string
    + expression supported by mxUtils.parseColor. This style is only used
    + for SHAPE_SWIMLANE shapes.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_STROKEWIDTH"><!-- --></A><H3>
    +STYLE_STROKEWIDTH</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_STROKEWIDTH</B></PRE>
    +<DL>
    +<DD>Defines the key for the strokeWidth style. The type of the value is
    + <code>float</code> and the possible range is any non-negative value.
    + The value reflects the stroke width in pixels.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ALIGN"><!-- --></A><H3>
    +STYLE_ALIGN</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ALIGN</B></PRE>
    +<DL>
    +<DD>Defines the key for the align style. Possible values are
    + <code>ALIGN_LEFT</code>, <code>ALIGN_CENTER</code> and
    + <code>ALIGN_RIGHT</code>. This value defines how the lines of the label
    + are horizontally aligned. <code>ALIGN_LEFT</code> mean label text lines
    + are aligned to left of the label bounds, <code>ALIGN_RIGHT</code> to the
    + right of the label bounds and <code>ALIGN_CENTER</code> means the
    + center of the text lines are aligned in the center of the label bounds.
    + Note this value doesn't affect the positioning of the overall label
    + bounds relative to the vertex, to move the label bounds horizontally, use
    + <code>STYLE_LABEL_POSITION</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_VERTICAL_ALIGN"><!-- --></A><H3>
    +STYLE_VERTICAL_ALIGN</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_VERTICAL_ALIGN</B></PRE>
    +<DL>
    +<DD>Defines the key for the verticalAlign style. Possible values are
    + <code>ALIGN_TOP</code>, <code>ALIGN_MIDDLE</code> and
    + <code>ALIGN_BOTTOM</code>. This value defines how the lines of the label
    + are vertically aligned. <code>ALIGN_TOP</code> means the topmost label
    + text line is aligned against the top of the label bounds,
    + <code>ALIGN_BOTTOM</code> means the bottom-most label text line is
    + aligned against the bottom of the label bounds and
    + <code>ALIGN_MIDDLE</code> means there is equal spacing between the
    + topmost text label line and the top of the label bounds and the
    + bottom-most text label line and the bottom of the label bounds. Note
    + this value doesn't affect the positioning of the overall label bounds
    + relative to the vertex, to move the label bounds vertically, use
    + <code>STYLE_VERTICAL_LABEL_POSITION</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_LABEL_POSITION"><!-- --></A><H3>
    +STYLE_LABEL_POSITION</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_LABEL_POSITION</B></PRE>
    +<DL>
    +<DD>Defines the key for the horizontal label position of vertices. Possible
    + values are <code>ALIGN_LEFT</code>, <code>ALIGN_CENTER</code> and
    + <code>ALIGN_RIGHT</code>. Default is <code>ALIGN_CENTER</code>. The
    + label align defines the position of the label relative to the cell.
    + <code>ALIGN_LEFT</code> means the entire label bounds is placed
    + completely just to the left of the vertex, <code>ALIGN_RIGHT</code>
    + means adjust to the right and <code>ALIGN_CENTER</code> means the label
    + bounds are vertically aligned with the bounds of the vertex. Note this
    + value doesn't affect the positioning of label within the label bounds,
    + to move the label horizontally within the label bounds, use
    + <code>STYLE_ALIGN</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_VERTICAL_LABEL_POSITION"><!-- --></A><H3>
    +STYLE_VERTICAL_LABEL_POSITION</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_VERTICAL_LABEL_POSITION</B></PRE>
    +<DL>
    +<DD>Defines the key for the vertical label position of vertices. Possible
    + values are <code>ALIGN_TOP</code>, <code>ALIGN_BOTTOM</code> and
    + <code>ALIGN_MIDDLE</code>. Default is <code>ALIGN_MIDDLE</code>. The
    + label align defines the position of the label relative to the cell.
    + <code>ALIGN_TOP</code> means the entire label bounds is placed
    + completely just on the top of the vertex, <code>ALIGN_BOTTOM</code>
    + means adjust on the bottom and <code>ALIGN_MIDDLE</code> means the label
    + bounds are horizontally aligned with the bounds of the vertex. Note
    + this value doesn't affect the positioning of label within the label
    + bounds, to move the label vertically within the label bounds, use
    + <code>STYLE_VERTICAL_ALIGN</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_IMAGE_ALIGN"><!-- --></A><H3>
    +STYLE_IMAGE_ALIGN</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_IMAGE_ALIGN</B></PRE>
    +<DL>
    +<DD>Defines the key for the align style. Possible values are
    + <code>ALIGN_LEFT</code>, <code>ALIGN_CENTER</code> and
    + <code>ALIGN_RIGHT</code>. The value defines how any image in the vertex
    + label is aligned horizontally within the label bounds of a SHAPE_LABEL
    + shape.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_IMAGE_VERTICAL_ALIGN"><!-- --></A><H3>
    +STYLE_IMAGE_VERTICAL_ALIGN</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_IMAGE_VERTICAL_ALIGN</B></PRE>
    +<DL>
    +<DD>Defines the key for the verticalAlign style. Possible values are
    + <code>ALIGN_TOP</code>, <code>ALIGN_MIDDLE</code> and
    + <code>ALIGN_BOTTOM</code>. The value defines how any image in the vertex
    + label is aligned vertically within the label bounds of a SHAPE_LABEL
    + shape.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_GLASS"><!-- --></A><H3>
    +STYLE_GLASS</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_GLASS</B></PRE>
    +<DL>
    +<DD>Defines the key for the glass style. Possible values are 0 (disabled) and
    + 1(enabled). The default value is 0. This is used in mxLabel.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_IMAGE"><!-- --></A><H3>
    +STYLE_IMAGE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_IMAGE</B></PRE>
    +<DL>
    +<DD>Defines the key for the image style. Possible values are any image URL,
    + registered key in mxImageResources or short data URI as defined in
    + mxImageBundle.
    + The type of the value is <code>String</code>. This is the path to the
    + image to image that is to be displayed within the label of a vertex. See
    + mxGraphics2DCanvas.getImageForStyle, loadImage and setImageBasePath on
    + how the image URL is resolved. Finally, mxUtils.loadImage is used for
    + loading the image for a given value.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_IMAGE_WIDTH"><!-- --></A><H3>
    +STYLE_IMAGE_WIDTH</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_IMAGE_WIDTH</B></PRE>
    +<DL>
    +<DD>Defines the key for the imageWidth style. The type of this value is
    + <code>int</code>, the value is the image width in pixels and must be
    + greated than 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_IMAGE_HEIGHT"><!-- --></A><H3>
    +STYLE_IMAGE_HEIGHT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_IMAGE_HEIGHT</B></PRE>
    +<DL>
    +<DD>Defines the key for the imageHeight style The type of this value is
    + <code>int</code>, the value is the image height in pixels and must be
    + greater than 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_IMAGE_BACKGROUND"><!-- --></A><H3>
    +STYLE_IMAGE_BACKGROUND</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_IMAGE_BACKGROUND</B></PRE>
    +<DL>
    +<DD>Defines the key for the image background color. This style is only used
    + for image shapes. Possible values are all HTML color names or HEX codes.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_IMAGE_BORDER"><!-- --></A><H3>
    +STYLE_IMAGE_BORDER</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_IMAGE_BORDER</B></PRE>
    +<DL>
    +<DD>Defines the key for the image border color. This style is only used for
    + image shapes. Possible values are all HTML color names or HEX codes.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_IMAGE_FLIPH"><!-- --></A><H3>
    +STYLE_IMAGE_FLIPH</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_IMAGE_FLIPH</B></PRE>
    +<DL>
    +<DD>Defines the key for the horizontal image flip. This style is only used
    + in mxImageShape. Possible values are 0 and 1. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_IMAGE_FLIPV"><!-- --></A><H3>
    +STYLE_IMAGE_FLIPV</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_IMAGE_FLIPV</B></PRE>
    +<DL>
    +<DD>Defines the key for the vertical image flip. This style is only used
    + in mxImageShape. Possible values are 0 and 1. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_STENCIL_FLIPH"><!-- --></A><H3>
    +STYLE_STENCIL_FLIPH</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_STENCIL_FLIPH</B></PRE>
    +<DL>
    +<DD>Defines the key for the horizontal stencil flip. This style is only used
    + for <mxStencilShape>. Possible values are 0 and 1. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_STENCIL_FLIPV"><!-- --></A><H3>
    +STYLE_STENCIL_FLIPV</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_STENCIL_FLIPV</B></PRE>
    +<DL>
    +<DD>Defines the key for the vertical stencil flip. This style is only used
    + for <mxStencilShape>. Possible values are 0 and 1. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_NOLABEL"><!-- --></A><H3>
    +STYLE_NOLABEL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_NOLABEL</B></PRE>
    +<DL>
    +<DD>Defines the key for the noLabel style. If this is
    + true then no label is visible for a given cell.
    + Possible values are true or false (1 or 0).
    + Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_NOEDGESTYLE"><!-- --></A><H3>
    +STYLE_NOEDGESTYLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_NOEDGESTYLE</B></PRE>
    +<DL>
    +<DD>Defines the key for the noEdgeStyle style. If this is
    + true then no edge style is applied for a given edge.
    + Possible values are true or false (1 or 0).
    + Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_LABEL_BACKGROUNDCOLOR"><!-- --></A><H3>
    +STYLE_LABEL_BACKGROUNDCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_LABEL_BACKGROUNDCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the key for the label background color. The value is a string
    + expression supported by mxUtils.parseColor.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_LABEL_BORDERCOLOR"><!-- --></A><H3>
    +STYLE_LABEL_BORDERCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_LABEL_BORDERCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the key for the label border color. The value is a string
    + expression supported by mxUtils.parseColor.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_INDICATOR_SHAPE"><!-- --></A><H3>
    +STYLE_INDICATOR_SHAPE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_INDICATOR_SHAPE</B></PRE>
    +<DL>
    +<DD>Defines the key for the indicatorShape style.
    + Possible values are any of the SHAPE_*
    + constants.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_INDICATOR_IMAGE"><!-- --></A><H3>
    +STYLE_INDICATOR_IMAGE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_INDICATOR_IMAGE</B></PRE>
    +<DL>
    +<DD>Defines the key for the indicatorImage style.
    + Possible values are any image URL, the type of the value is
    + <code>String</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_INDICATOR_COLOR"><!-- --></A><H3>
    +STYLE_INDICATOR_COLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_INDICATOR_COLOR</B></PRE>
    +<DL>
    +<DD>Defines the key for the indicatorColor style. The value is a string
    + expression supported by mxUtils.parseColor.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_INDICATOR_GRADIENTCOLOR"><!-- --></A><H3>
    +STYLE_INDICATOR_GRADIENTCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_INDICATOR_GRADIENTCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the key for the indicatorGradientColor style. The value is a
    + string expression supported by mxUtils.parseColor. This style is only
    + supported in SHAPE_LABEL shapes.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_INDICATOR_SPACING"><!-- --></A><H3>
    +STYLE_INDICATOR_SPACING</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_INDICATOR_SPACING</B></PRE>
    +<DL>
    +<DD>Defines the key for the indicatorSpacing style (in px).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_INDICATOR_WIDTH"><!-- --></A><H3>
    +STYLE_INDICATOR_WIDTH</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_INDICATOR_WIDTH</B></PRE>
    +<DL>
    +<DD>Defines the key for the indicatorWidth style (in px).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_INDICATOR_HEIGHT"><!-- --></A><H3>
    +STYLE_INDICATOR_HEIGHT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_INDICATOR_HEIGHT</B></PRE>
    +<DL>
    +<DD>Defines the key for the indicatorHeight style (in px).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SHADOW"><!-- --></A><H3>
    +STYLE_SHADOW</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SHADOW</B></PRE>
    +<DL>
    +<DD>Defines the key for the shadow style. The type of the value is
    + <code>boolean</code>. This style applies to vertices and arrow style
    + edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SEGMENT"><!-- --></A><H3>
    +STYLE_SEGMENT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SEGMENT</B></PRE>
    +<DL>
    +<DD>Defines the key for the segment style. The type of this value is
    + <code>float</code> and the value represents the size of the horizontal
    + segment of the entity relation style. Default is ENTITY_SEGMENT.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ENDARROW"><!-- --></A><H3>
    +STYLE_ENDARROW</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ENDARROW</B></PRE>
    +<DL>
    +<DD>Defines the key for the endArrow style.
    + Possible values are all constants in this
    + class that start with ARROW_. This style is
    + supported in the <code>mxConnector</code> shape.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_STARTARROW"><!-- --></A><H3>
    +STYLE_STARTARROW</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_STARTARROW</B></PRE>
    +<DL>
    +<DD>Defines the key for the startArrow style.
    + Possible values are all constants in this
    + class that start with ARROW_.
    + See STYLE_ENDARROW.
    + This style is supported in the mxConnector shape.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ENDSIZE"><!-- --></A><H3>
    +STYLE_ENDSIZE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ENDSIZE</B></PRE>
    +<DL>
    +<DD>Defines the key for the endSize style. The type of this value is 
    + <code>float</code> and the value represents the size of the end 
    + marker in pixels.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_STARTSIZE"><!-- --></A><H3>
    +STYLE_STARTSIZE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_STARTSIZE</B></PRE>
    +<DL>
    +<DD>Defines the key for the startSize style. The type of this value is
    + <code>float</code> and the value represents the size of the start marker
    + or the size of the swimlane title region depending on the shape it is
    + used for.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ENDFILL"><!-- --></A><H3>
    +STYLE_ENDFILL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ENDFILL</B></PRE>
    +<DL>
    +<DD>Defines the key for the endFill style. Use 0 for no fill or 1
    + (default) for fill. (This style is only exported via <mxImageExport>.)
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_STARTFILL"><!-- --></A><H3>
    +STYLE_STARTFILL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_STARTFILL</B></PRE>
    +<DL>
    +<DD>Defines the key for the startFill style. Use 0 for no fill or 1
    + (default) for fill. (This style is only exported via <mxImageExport>.)
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_DASHED"><!-- --></A><H3>
    +STYLE_DASHED</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_DASHED</B></PRE>
    +<DL>
    +<DD>Defines the key for the dashed style. The type of this value is
    + <code>boolean</code> and the value determines whether or not an edge or
    + border is drawn with a dashed pattern along the line.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_DASH_PATTERN"><!-- --></A><H3>
    +STYLE_DASH_PATTERN</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_DASH_PATTERN</B></PRE>
    +<DL>
    +<DD>Defines the key for the dashed pattern style. The type of this value
    + is <code>float[]</code> and the value specifies the dashed pattern 
    + to apply to edges drawn with this style.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ROUNDED"><!-- --></A><H3>
    +STYLE_ROUNDED</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ROUNDED</B></PRE>
    +<DL>
    +<DD>Defines the key for the rounded style. The type of this value is
    + <code>boolean</code>. For edges this determines whether or not joins
    + between edges segments are smoothed to a rounded finish. For vertices
    + that have the rectangle shape, this determines whether or not the
    + rectangle is rounded.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SOURCE_PERIMETER_SPACING"><!-- --></A><H3>
    +STYLE_SOURCE_PERIMETER_SPACING</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SOURCE_PERIMETER_SPACING</B></PRE>
    +<DL>
    +<DD>Defines the key for the source perimeter spacing. The type of this value
    + is <code>double</code>. This is the distance between the source
    + connection point of an edge and the perimeter of the source vertex in
    + pixels. This style only applies to edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_TARGET_PERIMETER_SPACING"><!-- --></A><H3>
    +STYLE_TARGET_PERIMETER_SPACING</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_TARGET_PERIMETER_SPACING</B></PRE>
    +<DL>
    +<DD>Defines the key for the target perimeter spacing. The type of this value
    + is <code>double</code>. This is the distance between the target
    + connection point of an edge and the perimeter of the target vertex in
    + pixels. This style only applies to edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_PERIMETER_SPACING"><!-- --></A><H3>
    +STYLE_PERIMETER_SPACING</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_PERIMETER_SPACING</B></PRE>
    +<DL>
    +<DD>Defines the key for the perimeter spacing. This is the distance between
    + the connection point and the perimeter in pixels. When used in a vertex
    + style, this applies to all incoming edges to floating ports (edges that
    + terminate on the perimeter of the vertex). When used in an edge style,
    + this spacing applies to the source and target separately, if they
    + terminate in floating ports (on the perimeter of the vertex).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SPACING"><!-- --></A><H3>
    +STYLE_SPACING</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SPACING</B></PRE>
    +<DL>
    +<DD>Defines the key for the spacing. The value represents the spacing, in
    + pixels, added to each side of a label in a vertex (style applies to
    + vertices only).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SPACING_TOP"><!-- --></A><H3>
    +STYLE_SPACING_TOP</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SPACING_TOP</B></PRE>
    +<DL>
    +<DD>Defines the key for the spacingTop style. The value represents the
    + spacing, in pixels, added to the top side of a label in a vertex (style
    + applies to vertices only).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SPACING_LEFT"><!-- --></A><H3>
    +STYLE_SPACING_LEFT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SPACING_LEFT</B></PRE>
    +<DL>
    +<DD>Defines the key for the spacingLeft style. The value represents the
    + spacing, in pixels, added to the left side of a label in a vertex (style
    + applies to vertices only).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SPACING_BOTTOM"><!-- --></A><H3>
    +STYLE_SPACING_BOTTOM</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SPACING_BOTTOM</B></PRE>
    +<DL>
    +<DD>Defines the key for the spacingBottom style The value represents the
    + spacing, in pixels, added to the bottom side of a label in a vertex
    + (style applies to vertices only).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SPACING_RIGHT"><!-- --></A><H3>
    +STYLE_SPACING_RIGHT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SPACING_RIGHT</B></PRE>
    +<DL>
    +<DD>Defines the key for the spacingRight style The value represents the
    + spacing, in pixels, added to the right side of a label in a vertex (style
    + applies to vertices only).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_HORIZONTAL"><!-- --></A><H3>
    +STYLE_HORIZONTAL</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_HORIZONTAL</B></PRE>
    +<DL>
    +<DD>Defines the key for the horizontal style. Possible values are
    + <code>true</code> or <code>false</code>. This value only applies to
    + vertices. If the <code>STYLE_SHAPE</code> is <code>SHAPE_SWIMLANE</code>
    + a value of <code>false</code> indicates that the swimlane should be drawn
    + vertically, <code>true</code> indicates to draw it horizontally. If the
    + shape style does not indicate that this vertex is a swimlane, this value
    + affects only whether the label is drawn horizontally or vertically.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_DIRECTION"><!-- --></A><H3>
    +STYLE_DIRECTION</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_DIRECTION</B></PRE>
    +<DL>
    +<DD>Defines the key for the direction style. The direction style is used to
    + specify the direction of certain shapes (eg. <code>mxTriangle</code>).
    + Possible values are <code>DIRECTION_EAST</code> (default),
    + <code>DIRECTION_WEST</code>, <code>DIRECTION_NORTH</code> and
    + <code>DIRECTION_SOUTH</code>. This value only applies to vertices.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ELBOW"><!-- --></A><H3>
    +STYLE_ELBOW</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ELBOW</B></PRE>
    +<DL>
    +<DD>Defines the key for the elbow style. Possible values are
    + <code>ELBOW_HORIZONTAL</code> and <code>ELBOW_VERTICAL</code>. Default is
    + <code>ELBOW_HORIZONTAL</code>. This defines how the three segment
    + orthogonal edge style leaves its terminal vertices. The vertical style
    + leaves the terminal vertices at the top and bottom sides.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_FONTCOLOR"><!-- --></A><H3>
    +STYLE_FONTCOLOR</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_FONTCOLOR</B></PRE>
    +<DL>
    +<DD>Defines the key for the fontColor style. The value is type
    + <code>String</code> and of the expression supported by
    + mxUtils.parseColor.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_FONTFAMILY"><!-- --></A><H3>
    +STYLE_FONTFAMILY</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_FONTFAMILY</B></PRE>
    +<DL>
    +<DD>Defines the key for the fontFamily style. Possible values are names such
    + as Arial; Dialog; Verdana; Times New Roman. The value is of type
    + <code>String</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_FONTSIZE"><!-- --></A><H3>
    +STYLE_FONTSIZE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_FONTSIZE</B></PRE>
    +<DL>
    +<DD>Defines the key for the fontSize style (in points). The type of the value
    + is <code>int</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_FONTSTYLE"><!-- --></A><H3>
    +STYLE_FONTSTYLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_FONTSTYLE</B></PRE>
    +<DL>
    +<DD>Defines the key for the fontStyle style. Values may be any logical AND
    + (sum) of FONT_BOLD, FONT_ITALIC, FONT_UNDERLINE and FONT_SHADOW. The type
    + of the value is <code>int</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_AUTOSIZE"><!-- --></A><H3>
    +STYLE_AUTOSIZE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_AUTOSIZE</B></PRE>
    +<DL>
    +<DD>Defines the key for the autosize style. This specifies if a cell should be
    + resized automatically if the value has changed. Possible values are 0 or 1.
    + Default is 0. See mxGraph.isAutoSizeCell. This is normally combined with
    + STYLE_RESIZABLE to disable manual sizing.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_FOLDABLE"><!-- --></A><H3>
    +STYLE_FOLDABLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_FOLDABLE</B></PRE>
    +<DL>
    +<DD>Defines the key for the foldable style. This specifies if a cell is foldable
    + using a folding icon. Possible values are 0 or 1. Default is 1. See
    + mxGraph.isCellFoldable.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_EDITABLE"><!-- --></A><H3>
    +STYLE_EDITABLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_EDITABLE</B></PRE>
    +<DL>
    +<DD>Defines the key for the editable style. This specifies if the value of
    + a cell can be edited using the in-place editor. Possible values are 0 or
    + 1. Default is 1. See mxGraph.isCellEditable.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_BENDABLE"><!-- --></A><H3>
    +STYLE_BENDABLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_BENDABLE</B></PRE>
    +<DL>
    +<DD>Defines the key for the bendable style. This specifies if the control
    + points of an edge can be moved. Possible values are 0 or 1. Default is
    + 1. See mxGraph.isCellBendable.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_MOVABLE"><!-- --></A><H3>
    +STYLE_MOVABLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_MOVABLE</B></PRE>
    +<DL>
    +<DD>Defines the key for the movable style. This specifies if a cell can
    + be moved. Possible values are 0 or 1. Default is 1. See
    + mxGraph.isCellMovable.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_RESIZABLE"><!-- --></A><H3>
    +STYLE_RESIZABLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_RESIZABLE</B></PRE>
    +<DL>
    +<DD>Defines the key for the resizable style. This specifies if a cell can
    + be resized. Possible values are 0 or 1. Default is 1. See
    + mxGraph.isCellResizable.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_CLONEABLE"><!-- --></A><H3>
    +STYLE_CLONEABLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_CLONEABLE</B></PRE>
    +<DL>
    +<DD>Defines the key for the cloneable style. This specifies if a cell can
    + be cloned. Possible values are 0 or 1. Default is 1. See
    + mxGraph.isCellCloneable.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_DELETABLE"><!-- --></A><H3>
    +STYLE_DELETABLE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_DELETABLE</B></PRE>
    +<DL>
    +<DD>Defines the key for the deletable style. This specifies if a cell can be
    + deleted. Possible values are 0 or 1. Default is 1. See
    + mxGraph.isCellDeletable.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_SHAPE"><!-- --></A><H3>
    +STYLE_SHAPE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_SHAPE</B></PRE>
    +<DL>
    +<DD>Defines the key for the shape style.
    + Possible values are any of the SHAPE_*
    + constants.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_EDGE"><!-- --></A><H3>
    +STYLE_EDGE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_EDGE</B></PRE>
    +<DL>
    +<DD>Takes a function that creates points. Possible values are the
    + functions defined in mxEdgeStyle.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_LOOP"><!-- --></A><H3>
    +STYLE_LOOP</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_LOOP</B></PRE>
    +<DL>
    +<DD>Defines the key for the loop style. Possible values are the
    + functions defined in mxEdgeStyle.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ROUTING_CENTER_X"><!-- --></A><H3>
    +STYLE_ROUTING_CENTER_X</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ROUTING_CENTER_X</B></PRE>
    +<DL>
    +<DD>Defines the key for the horizontal routing center. Possible values are
    + between -0.5 and 0.5. This is the relative offset from the center used
    + for connecting edges. The type of this value is <code>float</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STYLE_ROUTING_CENTER_Y"><!-- --></A><H3>
    +STYLE_ROUTING_CENTER_Y</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STYLE_ROUTING_CENTER_Y</B></PRE>
    +<DL>
    +<DD>Defines the key for the vertical routing center. Possible values are
    + between -0.5 and 0.5. This is the relative offset from the center used
    + for connecting edges. The type of this value is <code>float</code>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FONT_BOLD"><!-- --></A><H3>
    +FONT_BOLD</H3>
    +<PRE>
    +public static final int <B>FONT_BOLD</B></PRE>
    +<DL>
    +<DD>FONT_BOLD
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.FONT_BOLD">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FONT_ITALIC"><!-- --></A><H3>
    +FONT_ITALIC</H3>
    +<PRE>
    +public static final int <B>FONT_ITALIC</B></PRE>
    +<DL>
    +<DD>FONT_ITALIC
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.FONT_ITALIC">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FONT_UNDERLINE"><!-- --></A><H3>
    +FONT_UNDERLINE</H3>
    +<PRE>
    +public static final int <B>FONT_UNDERLINE</B></PRE>
    +<DL>
    +<DD>FONT_UNDERLINE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.FONT_UNDERLINE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FONT_SHADOW"><!-- --></A><H3>
    +FONT_SHADOW</H3>
    +<PRE>
    +public static final int <B>FONT_SHADOW</B></PRE>
    +<DL>
    +<DD>FONT_SHADOW
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.FONT_SHADOW">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_RECTANGLE"><!-- --></A><H3>
    +SHAPE_RECTANGLE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_RECTANGLE</B></PRE>
    +<DL>
    +<DD>SHAPE_RECTANGLE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_RECTANGLE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_ELLIPSE"><!-- --></A><H3>
    +SHAPE_ELLIPSE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_ELLIPSE</B></PRE>
    +<DL>
    +<DD>SHAPE_ELLIPSE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_ELLIPSE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_DOUBLE_ELLIPSE"><!-- --></A><H3>
    +SHAPE_DOUBLE_ELLIPSE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_DOUBLE_ELLIPSE</B></PRE>
    +<DL>
    +<DD>SHAPE_DOUBLE_ELLIPSE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_DOUBLE_ELLIPSE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_RHOMBUS"><!-- --></A><H3>
    +SHAPE_RHOMBUS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_RHOMBUS</B></PRE>
    +<DL>
    +<DD>SHAPE_RHOMBUS
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_RHOMBUS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_LINE"><!-- --></A><H3>
    +SHAPE_LINE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_LINE</B></PRE>
    +<DL>
    +<DD>SHAPE_LINE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_LINE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_IMAGE"><!-- --></A><H3>
    +SHAPE_IMAGE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_IMAGE</B></PRE>
    +<DL>
    +<DD>SHAPE_IMAGE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_IMAGE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_ARROW"><!-- --></A><H3>
    +SHAPE_ARROW</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_ARROW</B></PRE>
    +<DL>
    +<DD>SHAPE_ARROW
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_ARROW">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_CURVE"><!-- --></A><H3>
    +SHAPE_CURVE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_CURVE</B></PRE>
    +<DL>
    +<DD>SHAPE_ARROW
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_CURVE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_LABEL"><!-- --></A><H3>
    +SHAPE_LABEL</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_LABEL</B></PRE>
    +<DL>
    +<DD>SHAPE_LABEL
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_LABEL">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_CYLINDER"><!-- --></A><H3>
    +SHAPE_CYLINDER</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_CYLINDER</B></PRE>
    +<DL>
    +<DD>SHAPE_CYLINDER
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_CYLINDER">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_SWIMLANE"><!-- --></A><H3>
    +SHAPE_SWIMLANE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_SWIMLANE</B></PRE>
    +<DL>
    +<DD>SHAPE_SWIMLANE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_SWIMLANE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_CONNECTOR"><!-- --></A><H3>
    +SHAPE_CONNECTOR</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_CONNECTOR</B></PRE>
    +<DL>
    +<DD>SHAPE_CONNECTOR
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_CONNECTOR">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_ACTOR"><!-- --></A><H3>
    +SHAPE_ACTOR</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_ACTOR</B></PRE>
    +<DL>
    +<DD>SHAPE_ACTOR
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_ACTOR">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_CLOUD"><!-- --></A><H3>
    +SHAPE_CLOUD</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_CLOUD</B></PRE>
    +<DL>
    +<DD>SHAPE_CLOUD
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_CLOUD">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_TRIANGLE"><!-- --></A><H3>
    +SHAPE_TRIANGLE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_TRIANGLE</B></PRE>
    +<DL>
    +<DD>SHAPE_TRIANGLE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_TRIANGLE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SHAPE_HEXAGON"><!-- --></A><H3>
    +SHAPE_HEXAGON</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SHAPE_HEXAGON</B></PRE>
    +<DL>
    +<DD>SHAPE_HEXAGON
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.SHAPE_HEXAGON">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ARROW_CLASSIC"><!-- --></A><H3>
    +ARROW_CLASSIC</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ARROW_CLASSIC</B></PRE>
    +<DL>
    +<DD>ARROW_CLASSIC
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ARROW_CLASSIC">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ARROW_BLOCK"><!-- --></A><H3>
    +ARROW_BLOCK</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ARROW_BLOCK</B></PRE>
    +<DL>
    +<DD>ARROW_BLOCK
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ARROW_BLOCK">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ARROW_OPEN"><!-- --></A><H3>
    +ARROW_OPEN</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ARROW_OPEN</B></PRE>
    +<DL>
    +<DD>ARROW_OPEN
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ARROW_OPEN">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ARROW_OVAL"><!-- --></A><H3>
    +ARROW_OVAL</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ARROW_OVAL</B></PRE>
    +<DL>
    +<DD>ARROW_BLOCK
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ARROW_OVAL">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ARROW_DIAMOND"><!-- --></A><H3>
    +ARROW_DIAMOND</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ARROW_DIAMOND</B></PRE>
    +<DL>
    +<DD>ARROW_OPEN
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ARROW_DIAMOND">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ALIGN_LEFT"><!-- --></A><H3>
    +ALIGN_LEFT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ALIGN_LEFT</B></PRE>
    +<DL>
    +<DD>ALIGN_LEFT
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ALIGN_LEFT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ALIGN_CENTER"><!-- --></A><H3>
    +ALIGN_CENTER</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ALIGN_CENTER</B></PRE>
    +<DL>
    +<DD>ALIGN_CENTER
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ALIGN_CENTER">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ALIGN_RIGHT"><!-- --></A><H3>
    +ALIGN_RIGHT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ALIGN_RIGHT</B></PRE>
    +<DL>
    +<DD>ALIGN_RIGHT
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ALIGN_RIGHT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ALIGN_TOP"><!-- --></A><H3>
    +ALIGN_TOP</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ALIGN_TOP</B></PRE>
    +<DL>
    +<DD>ALIGN_TOP
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ALIGN_TOP">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ALIGN_MIDDLE"><!-- --></A><H3>
    +ALIGN_MIDDLE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ALIGN_MIDDLE</B></PRE>
    +<DL>
    +<DD>ALIGN_MIDDLE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ALIGN_MIDDLE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ALIGN_BOTTOM"><!-- --></A><H3>
    +ALIGN_BOTTOM</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ALIGN_BOTTOM</B></PRE>
    +<DL>
    +<DD>ALIGN_BOTTOM
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ALIGN_BOTTOM">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_NORTH"><!-- --></A><H3>
    +DIRECTION_NORTH</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DIRECTION_NORTH</B></PRE>
    +<DL>
    +<DD>DIRECTION_NORTH
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_NORTH">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_SOUTH"><!-- --></A><H3>
    +DIRECTION_SOUTH</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DIRECTION_SOUTH</B></PRE>
    +<DL>
    +<DD>DIRECTION_SOUTH
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_SOUTH">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_EAST"><!-- --></A><H3>
    +DIRECTION_EAST</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DIRECTION_EAST</B></PRE>
    +<DL>
    +<DD>DIRECTION_EAST
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_EAST">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_WEST"><!-- --></A><H3>
    +DIRECTION_WEST</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DIRECTION_WEST</B></PRE>
    +<DL>
    +<DD>DIRECTION_WEST
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_WEST">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_MASK_NONE"><!-- --></A><H3>
    +DIRECTION_MASK_NONE</H3>
    +<PRE>
    +public static final int <B>DIRECTION_MASK_NONE</B></PRE>
    +<DL>
    +<DD>DIRECTION_MASK_NONE
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_MASK_NONE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_MASK_WEST"><!-- --></A><H3>
    +DIRECTION_MASK_WEST</H3>
    +<PRE>
    +public static final int <B>DIRECTION_MASK_WEST</B></PRE>
    +<DL>
    +<DD>DIRECTION_MASK_WEST
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_MASK_WEST">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_MASK_NORTH"><!-- --></A><H3>
    +DIRECTION_MASK_NORTH</H3>
    +<PRE>
    +public static final int <B>DIRECTION_MASK_NORTH</B></PRE>
    +<DL>
    +<DD>DIRECTION_MASK_NORTH
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_MASK_NORTH">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_MASK_SOUTH"><!-- --></A><H3>
    +DIRECTION_MASK_SOUTH</H3>
    +<PRE>
    +public static final int <B>DIRECTION_MASK_SOUTH</B></PRE>
    +<DL>
    +<DD>DIRECTION_MASK_SOUTH
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_MASK_SOUTH">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_MASK_EAST"><!-- --></A><H3>
    +DIRECTION_MASK_EAST</H3>
    +<PRE>
    +public static final int <B>DIRECTION_MASK_EAST</B></PRE>
    +<DL>
    +<DD>DIRECTION_MASK_EAST
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_MASK_EAST">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DIRECTION_MASK_ALL"><!-- --></A><H3>
    +DIRECTION_MASK_ALL</H3>
    +<PRE>
    +public static final int <B>DIRECTION_MASK_ALL</B></PRE>
    +<DL>
    +<DD>DIRECTION_MASK_EAST
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.DIRECTION_MASK_ALL">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ELBOW_VERTICAL"><!-- --></A><H3>
    +ELBOW_VERTICAL</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ELBOW_VERTICAL</B></PRE>
    +<DL>
    +<DD>ELBOW_VERTICAL
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ELBOW_VERTICAL">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ELBOW_HORIZONTAL"><!-- --></A><H3>
    +ELBOW_HORIZONTAL</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ELBOW_HORIZONTAL</B></PRE>
    +<DL>
    +<DD>ELBOW_HORIZONTAL
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.ELBOW_HORIZONTAL">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGESTYLE_ELBOW"><!-- --></A><H3>
    +EDGESTYLE_ELBOW</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGESTYLE_ELBOW</B></PRE>
    +<DL>
    +<DD>Name of the elbow edge style. Can be used as a string value
    + for the STYLE_EDGE style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.EDGESTYLE_ELBOW">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGESTYLE_ENTITY_RELATION"><!-- --></A><H3>
    +EDGESTYLE_ENTITY_RELATION</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGESTYLE_ENTITY_RELATION</B></PRE>
    +<DL>
    +<DD>Name of the entity relation edge style. Can be used as a string value
    + for the STYLE_EDGE style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.EDGESTYLE_ENTITY_RELATION">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGESTYLE_LOOP"><!-- --></A><H3>
    +EDGESTYLE_LOOP</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGESTYLE_LOOP</B></PRE>
    +<DL>
    +<DD>Name of the loop edge style. Can be used as a string value
    + for the STYLE_EDGE style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.EDGESTYLE_LOOP">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGESTYLE_SIDETOSIDE"><!-- --></A><H3>
    +EDGESTYLE_SIDETOSIDE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGESTYLE_SIDETOSIDE</B></PRE>
    +<DL>
    +<DD>Name of the side to side edge style. Can be used as a string value
    + for the STYLE_EDGE style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.EDGESTYLE_SIDETOSIDE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGESTYLE_TOPTOBOTTOM"><!-- --></A><H3>
    +EDGESTYLE_TOPTOBOTTOM</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGESTYLE_TOPTOBOTTOM</B></PRE>
    +<DL>
    +<DD>Name of the top to bottom edge style. Can be used as a string value
    + for the STYLE_EDGE style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.EDGESTYLE_TOPTOBOTTOM">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EDGESTYLE_ORTHOGONAL"><!-- --></A><H3>
    +EDGESTYLE_ORTHOGONAL</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EDGESTYLE_ORTHOGONAL</B></PRE>
    +<DL>
    +<DD>Name of the orthogonal edge style. Can be used as a string value for
    + the STYLE_EDGE style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.EDGESTYLE_ORTHOGONAL">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PERIMETER_ELLIPSE"><!-- --></A><H3>
    +PERIMETER_ELLIPSE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PERIMETER_ELLIPSE</B></PRE>
    +<DL>
    +<DD>Name of the ellipse perimeter. Can be used as a string value
    + for the STYLE_PERIMETER style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.PERIMETER_ELLIPSE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PERIMETER_RECTANGLE"><!-- --></A><H3>
    +PERIMETER_RECTANGLE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PERIMETER_RECTANGLE</B></PRE>
    +<DL>
    +<DD>Name of the rectangle perimeter. Can be used as a string value
    + for the STYLE_PERIMETER style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.PERIMETER_RECTANGLE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PERIMETER_RHOMBUS"><!-- --></A><H3>
    +PERIMETER_RHOMBUS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PERIMETER_RHOMBUS</B></PRE>
    +<DL>
    +<DD>Name of the rhombus perimeter. Can be used as a string value
    + for the STYLE_PERIMETER style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.PERIMETER_RHOMBUS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PERIMETER_TRIANGLE"><!-- --></A><H3>
    +PERIMETER_TRIANGLE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PERIMETER_TRIANGLE</B></PRE>
    +<DL>
    +<DD>Name of the triangle perimeter. Can be used as a string value
    + for the STYLE_PERIMETER style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.PERIMETER_TRIANGLE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PERIMETER_HEXAGON"><!-- --></A><H3>
    +PERIMETER_HEXAGON</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PERIMETER_HEXAGON</B></PRE>
    +<DL>
    +<DD>Name of the hexagon perimeter. Can be used as a string value
    + for the STYLE_PERIMETER style.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxConstants.PERIMETER_HEXAGON">Constant Field Values</A></DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxConstants()"><!-- --></A><H3>
    +mxConstants</H3>
    +<PRE>
    +public <B>mxConstants</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxCurve.html b/java/docs/com/mxgraph/util/mxCurve.html
    new file mode 100644
    index 000000000..44c93403d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxCurve.html
    @@ -0,0 +1,1146 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxCurve (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCurve (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurve.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxCurve.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurve.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxCurve</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxCurve</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCurve</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#CORE_CURVE">CORE_CURVE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the central curve index</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#curveLengths">curveLengths</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The curve lengths of the curves</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#guidePoints">guidePoints</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The points this curve is drawn through.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,double[]&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#intervals">intervals</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An array of arrays of intervals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#INVALID_POSITION">INVALID_POSITION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates that an invalid position on a curve was requested</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#LABEL_CURVE">LABEL_CURVE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the key for the label curve index</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#labelBuffer">labelBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset of the label curve from the curve the label curve is based on.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#maxXBounds">maxXBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#maxYBounds">maxYBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#minXBounds">minXBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#minYBounds">minYBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#points">points</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A collection of arrays of curve points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#valid">valid</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not the curve currently holds valid values</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#mxCurve()">mxCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#mxCurve(java.util.List)">mxCurve</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#collisionMove(java.lang.String, com.mxgraph.util.mxRectangle, double)">collisionMove</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +              <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +              double&nbsp;buffer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point to move the input rectangle to, in order to
    + attempt to place the rectangle away from the curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#createCoreCurve()">createCoreCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the core curve that is based on the guide points passed into
    + this class instance</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#createLabelCurve()">createLabelCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getBaseLabelCurve()">getBaseLabelCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the curve the label curve is too be based on</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getBounds()">getBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getCurveLength(java.lang.String)">getCurveLength</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getCurveParallel(java.lang.String, double)">getCurveParallel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                 double&nbsp;distance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a unit vector parallel to the curve at the specified
    + distance along the curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getCurvePoints(java.lang.String)">getCurvePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtains the points that make up the curve for the specified
    + curve index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getCurveSection(java.lang.String, double, double)">getCurveSection</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                double&nbsp;start,
    +                double&nbsp;end)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a section of the curve as an array of points</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getGuidePoints()">getGuidePoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getIntervals(java.lang.String)">getIntervals</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getLowerIndexOfSegment(java.lang.String, double)">getLowerIndexOfSegment</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                       double&nbsp;distance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the index of the lower point on the segment
    + that contains the point <i>distance</i> along the</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#getRelativeFromAbsPoint(com.mxgraph.util.mxPoint, java.lang.String)">getRelativeFromAbsPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;absPoint,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the position of an absolute in terms relative
    + to this curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterPoint(java.lang.String, com.mxgraph.util.mxRectangle, int)">intersectRectPerimeterPoint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;curveIndex,
    +                            <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +                            int&nbsp;indexSeg)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point at which this curve segment intersects the boundary 
    + of the given rectangle, if it does so.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle)">intersectRectPerimeterSeg</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                          <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method to determine within which segment the specified rectangle
    + intersects the specified curve</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle, int)">intersectRectPerimeterSeg</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                          <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +                          int&nbsp;startSegment)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method to determine within which segment the specified rectangle
    + intersects the specified curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#intersectsRect(java.awt.Rectangle)">intersectsRect</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether or not the rectangle passed in hits any part of this
    + curve.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#intersectsRectPerimeter(java.lang.String, com.mxgraph.util.mxRectangle)">intersectsRectPerimeter</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                        <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point at which this curve intersects the boundary of 
    + the given rectangle, if it does so.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#intersectsRectPerimeterDist(java.lang.String, com.mxgraph.util.mxRectangle)">intersectsRectPerimeterDist</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                            <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the distance from the start of the curve at which this 
    + curve intersects the boundary of the given rectangle, if it does 
    + so.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#isLabelReversed()">isLabelReversed</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not the label curve starts from the end target
    +  and traces to the start of the branch</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#populateIntervals(java.lang.String)">populateIntervals</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#setLabelBuffer(double)">setLabelBuffer</A></B>(double&nbsp;buffer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#updateBounds(double, double)">updateBounds</A></B>(double&nbsp;pointX,
    +             double&nbsp;pointY)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the total bounds of this curve, increasing any dimensions,
    + if necessary, to fit in the specified point</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#updateCurve(java.util.List)">updateCurve</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;newPoints)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the existing curve using the points passed in.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxCurve.html#validateCurve()">validateCurve</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method must be called before any attempt to access curve information</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="points"><!-- --></A><H3>
    +points</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]&gt; <B>points</B></PRE>
    +<DL>
    +<DD>A collection of arrays of curve points
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minXBounds"><!-- --></A><H3>
    +minXBounds</H3>
    +<PRE>
    +protected double <B>minXBounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxXBounds"><!-- --></A><H3>
    +maxXBounds</H3>
    +<PRE>
    +protected double <B>maxXBounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minYBounds"><!-- --></A><H3>
    +minYBounds</H3>
    +<PRE>
    +protected double <B>minYBounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maxYBounds"><!-- --></A><H3>
    +maxYBounds</H3>
    +<PRE>
    +protected double <B>maxYBounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="intervals"><!-- --></A><H3>
    +intervals</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,double[]&gt; <B>intervals</B></PRE>
    +<DL>
    +<DD>An array of arrays of intervals. These intervals define the distance
    + along the edge (0 to 1) that each point lies
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="curveLengths"><!-- --></A><H3>
    +curveLengths</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</A>&gt; <B>curveLengths</B></PRE>
    +<DL>
    +<DD>The curve lengths of the curves
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CORE_CURVE"><!-- --></A><H3>
    +CORE_CURVE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CORE_CURVE</B></PRE>
    +<DL>
    +<DD>Defines the key for the central curve index
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LABEL_CURVE"><!-- --></A><H3>
    +LABEL_CURVE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>LABEL_CURVE</B></PRE>
    +<DL>
    +<DD>Defines the key for the label curve index
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="INVALID_POSITION"><!-- --></A><H3>
    +INVALID_POSITION</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A> <B>INVALID_POSITION</B></PRE>
    +<DL>
    +<DD>Indicates that an invalid position on a curve was requested
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="labelBuffer"><!-- --></A><H3>
    +labelBuffer</H3>
    +<PRE>
    +protected double <B>labelBuffer</B></PRE>
    +<DL>
    +<DD>Offset of the label curve from the curve the label curve is based on.
    + If you wish to set this value, do so directly after creation of the curve.
    + The first time the curve is used the label curve will be created with 
    + whatever value is contained in this variable. Changes to it after that point 
    + will have no effect.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="guidePoints"><!-- --></A><H3>
    +guidePoints</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>guidePoints</B></PRE>
    +<DL>
    +<DD>The points this curve is drawn through. These are typically control
    + points and are at distances from each other that straight lines
    + between them do not describe a smooth curve. This class takes
    + these guiding points and creates a finer set of internal points
    + that visually appears to be a curve when linked by straight lines
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="valid"><!-- --></A><H3>
    +valid</H3>
    +<PRE>
    +protected boolean <B>valid</B></PRE>
    +<DL>
    +<DD>Whether or not the curve currently holds valid values
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCurve()"><!-- --></A><H3>
    +mxCurve</H3>
    +<PRE>
    +public <B>mxCurve</B>()</PRE>
    +<DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCurve(java.util.List)"><!-- --></A><H3>
    +mxCurve</H3>
    +<PRE>
    +public <B>mxCurve</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setLabelBuffer(double)"><!-- --></A><H3>
    +setLabelBuffer</H3>
    +<PRE>
    +public void <B>setLabelBuffer</B>(double&nbsp;buffer)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBounds()"><!-- --></A><H3>
    +getBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBounds</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLowerIndexOfSegment(java.lang.String, double)"><!-- --></A><H3>
    +getLowerIndexOfSegment</H3>
    +<PRE>
    +protected int <B>getLowerIndexOfSegment</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                                     double&nbsp;distance)</PRE>
    +<DL>
    +<DD>Calculates the index of the lower point on the segment
    + that contains the point <i>distance</i> along the
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurveParallel(java.lang.String, double)"><!-- --></A><H3>
    +getCurveParallel</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A> <B>getCurveParallel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                               double&nbsp;distance)</PRE>
    +<DL>
    +<DD>Returns a unit vector parallel to the curve at the specified
    + distance along the curve. To obtain the angle the vector makes
    + with (1,0) perform Math.atan(segVectorY/segVectorX).
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - the curve index specifying the curve to analyse<DD><CODE>distance</CODE> - the distance from start to end of curve (0.0...1.0)
    +<DT><B>Returns:</B><DD>a unit vector at the specified point on the curve represented
    +                as a line, parallel with the curve. If the distance or curve is
    +                invalid, <code>mxCurve.INVALID_POSITION</code> is returned</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurveSection(java.lang.String, double, double)"><!-- --></A><H3>
    +getCurveSection</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[] <B>getCurveSection</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                                 double&nbsp;start,
    +                                 double&nbsp;end)</PRE>
    +<DL>
    +<DD>Returns a section of the curve as an array of points
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - the curve index specifying the curve to analyse<DD><CODE>start</CODE> - the start position of the curve segment (0.0...1.0)<DD><CODE>end</CODE> - the end position of the curve segment (0.0...1.0)
    +<DT><B>Returns:</B><DD>a sequence of point representing the curve section or null
    +                        if it cannot be calculated</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectsRect(java.awt.Rectangle)"><!-- --></A><H3>
    +intersectsRect</H3>
    +<PRE>
    +public boolean <B>intersectsRect</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Returns whether or not the rectangle passed in hits any part of this
    + curve.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rect</CODE> - the rectangle to detect for a hit
    +<DT><B>Returns:</B><DD>whether or not the rectangle hits this curve</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectsRectPerimeter(java.lang.String, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +intersectsRectPerimeter</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>intersectsRectPerimeter</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                                       <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Returns the point at which this curve intersects the boundary of 
    + the given rectangle, if it does so. If it does not intersect, 
    + null is returned. If it intersects multiple times, the first 
    + intersection from the start end of the curve is returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - the curve index specifying the curve to analyse<DD><CODE>rect</CODE> - the whose boundary is to be tested for intersection
    + with this curve
    +<DT><B>Returns:</B><DD>the point at which this curve intersects the boundary of 
    + the given rectangle, if it does so. If it does not intersect, 
    + null is returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectsRectPerimeterDist(java.lang.String, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +intersectsRectPerimeterDist</H3>
    +<PRE>
    +public double <B>intersectsRectPerimeterDist</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                                          <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Returns the distance from the start of the curve at which this 
    + curve intersects the boundary of the given rectangle, if it does 
    + so. If it does not intersect, -1 is returned. 
    + If it intersects multiple times, the first intersection from 
    + the start end of the curve is returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - the curve index specifying the curve to analyse<DD><CODE>rect</CODE> - the whose boundary is to be tested for intersection
    + with this curve
    +<DT><B>Returns:</B><DD>the distance along the curve from the start at which
    + the intersection occurs</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="collisionMove(java.lang.String, com.mxgraph.util.mxRectangle, double)"><!-- --></A><H3>
    +collisionMove</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>collisionMove</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                             <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +                             double&nbsp;buffer)</PRE>
    +<DL>
    +<DD>Returns a point to move the input rectangle to, in order to
    + attempt to place the rectangle away from the curve. NOTE: Curves
    + are scaled, the input rectangle should be also.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - the curve index specifying the curve to analyse<DD><CODE>rect</CODE> - the rectangle that is to be moved<DD><CODE>buffer</CODE> - the amount by which the rectangle is to be moved,
    +                        beyond the dimensions of the rect
    +<DT><B>Returns:</B><DD>the point to move the top left of the input rect to
    +                        , otherwise null if no point can be determined</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +intersectRectPerimeterSeg</H3>
    +<PRE>
    +protected int <B>intersectRectPerimeterSeg</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                                        <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Utility method to determine within which segment the specified rectangle
    + intersects the specified curve
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - the curve index specifying the curve to analyse<DD><CODE>rect</CODE> - the whose boundary is to be tested for intersection
    + with this curve
    +<DT><B>Returns:</B><DD>the point at which this curve intersects the boundary of 
    + the given rectangle, if it does so. If it does not intersect, 
    + -1 is returned</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle, int)"><!-- --></A><H3>
    +intersectRectPerimeterSeg</H3>
    +<PRE>
    +protected int <B>intersectRectPerimeterSeg</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index,
    +                                        <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +                                        int&nbsp;startSegment)</PRE>
    +<DL>
    +<DD>Utility method to determine within which segment the specified rectangle
    + intersects the specified curve. This method specifies which segment to
    + start searching at.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - the curve index specifying the curve to analyse<DD><CODE>rect</CODE> - the whose boundary is to be tested for intersection
    + with this curve<DD><CODE>startSegment</CODE> - the segment to start searching at. To start at the 
    +                        beginning of the curve, use 1, not 0.
    +<DT><B>Returns:</B><DD>the point at which this curve intersects the boundary of 
    + the given rectangle, if it does so. If it does not intersect, 
    + -1 is returned</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectRectPerimeterPoint(java.lang.String, com.mxgraph.util.mxRectangle, int)"><!-- --></A><H3>
    +intersectRectPerimeterPoint</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>intersectRectPerimeterPoint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;curveIndex,
    +                                              <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +                                              int&nbsp;indexSeg)</PRE>
    +<DL>
    +<DD>Returns the point at which this curve segment intersects the boundary 
    + of the given rectangle, if it does so. If it does not intersect, 
    + null is returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>curveIndex</CODE> - the curve index specifying the curve to analyse<DD><CODE>rect</CODE> - the whose boundary is to be tested for intersection
    + with this curve<DD><CODE>indexSeg</CODE> - the segments on this curve being checked
    +<DT><B>Returns:</B><DD>the point at which this curve segment  intersects the boundary 
    + of the given rectangle, if it does so. If it does not intersect, 
    + null is returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRelativeFromAbsPoint(com.mxgraph.util.mxPoint, java.lang.String)"><!-- --></A><H3>
    +getRelativeFromAbsPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getRelativeFromAbsPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;absPoint,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</PRE>
    +<DL>
    +<DD>Calculates the position of an absolute in terms relative
    + to this curve.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>absPoint</CODE> - the point whose relative point is to calculated<DD><CODE>index</CODE> - the index of the curve whom the relative position is to be 
    + calculated from
    +<DT><B>Returns:</B><DD>an mxRectangle where the x is the distance along the curve 
    + (0 to 1), y is the orthogonal offset from the closest segment on the 
    + curve and (width, height) is an additional Cartesian offset applied
    + after the other calculations</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createCoreCurve()"><!-- --></A><H3>
    +createCoreCurve</H3>
    +<PRE>
    +protected void <B>createCoreCurve</B>()</PRE>
    +<DL>
    +<DD>Creates the core curve that is based on the guide points passed into
    + this class instance
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLabelReversed()"><!-- --></A><H3>
    +isLabelReversed</H3>
    +<PRE>
    +public boolean <B>isLabelReversed</B>()</PRE>
    +<DL>
    +<DD>Whether or not the label curve starts from the end target
    +  and traces to the start of the branch
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>whether the label curve is reversed</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createLabelCurve()"><!-- --></A><H3>
    +createLabelCurve</H3>
    +<PRE>
    +protected void <B>createLabelCurve</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBaseLabelCurve()"><!-- --></A><H3>
    +getBaseLabelCurve</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[] <B>getBaseLabelCurve</B>()</PRE>
    +<DL>
    +<DD>Returns the curve the label curve is too be based on
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="populateIntervals(java.lang.String)"><!-- --></A><H3>
    +populateIntervals</H3>
    +<PRE>
    +protected void <B>populateIntervals</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateCurve(java.util.List)"><!-- --></A><H3>
    +updateCurve</H3>
    +<PRE>
    +public void <B>updateCurve</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;newPoints)</PRE>
    +<DL>
    +<DD>Updates the existing curve using the points passed in.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>newPoints</CODE> - the new guide points</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurvePoints(java.lang.String)"><!-- --></A><H3>
    +getCurvePoints</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[] <B>getCurvePoints</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</PRE>
    +<DL>
    +<DD>Obtains the points that make up the curve for the specified
    + curve index. If that curve, or the core curve that other curves
    + are based on have not yet been created, then they are lazily
    + created. If creation is impossible, null is returned
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>index</CODE> - the key specifying the curve
    +<DT><B>Returns:</B><DD>the points making up that curve, or null</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIntervals(java.lang.String)"><!-- --></A><H3>
    +getIntervals</H3>
    +<PRE>
    +public double[] <B>getIntervals</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurveLength(java.lang.String)"><!-- --></A><H3>
    +getCurveLength</H3>
    +<PRE>
    +public double <B>getCurveLength</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;index)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validateCurve()"><!-- --></A><H3>
    +validateCurve</H3>
    +<PRE>
    +protected boolean <B>validateCurve</B>()</PRE>
    +<DL>
    +<DD>Method must be called before any attempt to access curve information
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>whether or not the curve may be used</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateBounds(double, double)"><!-- --></A><H3>
    +updateBounds</H3>
    +<PRE>
    +protected void <B>updateBounds</B>(double&nbsp;pointX,
    +                            double&nbsp;pointY)</PRE>
    +<DL>
    +<DD>Updates the total bounds of this curve, increasing any dimensions,
    + if necessary, to fit in the specified point
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGuidePoints()"><!-- --></A><H3>
    +getGuidePoints</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>getGuidePoints</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the guidePoints</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCurve.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxCurve.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCurve.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxDomUtils.html b/java/docs/com/mxgraph/util/mxDomUtils.html
    new file mode 100644
    index 000000000..3e78632a7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxDomUtils.html
    @@ -0,0 +1,323 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxDomUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxDomUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDomUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxDomUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxDomUtils</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxDomUtils</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxDomUtils</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Contains various DOM API helper methods for use with mxGraph.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxDomUtils.html#mxDomUtils()">mxDomUtils</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxDomUtils.html#createDocument()">createDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new, empty DOM document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxDomUtils.html#createHtmlDocument()">createHtmlDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a document with a HTML node containing a HEAD and BODY node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxDomUtils.html#createSvgDocument(int, int)">createSvgDocument</A></B>(int&nbsp;width,
    +                  int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new SVG document for the given width and height.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxDomUtils.html#createVmlDocument()">createVmlDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxDomUtils()"><!-- --></A><H3>
    +mxDomUtils</H3>
    +<PRE>
    +public <B>mxDomUtils</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createDocument()"><!-- --></A><H3>
    +createDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createDocument</B>()</PRE>
    +<DL>
    +<DD>Returns a new, empty DOM document.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a new DOM document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createSvgDocument(int, int)"><!-- --></A><H3>
    +createSvgDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createSvgDocument</B>(int&nbsp;width,
    +                                         int&nbsp;height)</PRE>
    +<DL>
    +<DD>Creates a new SVG document for the given width and height.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createVmlDocument()"><!-- --></A><H3>
    +createVmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createVmlDocument</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocument()"><!-- --></A><H3>
    +createHtmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createHtmlDocument</B>()</PRE>
    +<DL>
    +<DD>Returns a document with a HTML node containing a HEAD and BODY node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxDomUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxDomUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxDomUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxEvent.html b/java/docs/com/mxgraph/util/mxEvent.html
    new file mode 100644
    index 000000000..8136fcf42
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxEvent.html
    @@ -0,0 +1,1315 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxEvent (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxEvent (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxEvent</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxEvent</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxEvent</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Contains all global constants.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#ADD">ADD</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#ADD_CELLS">ADD_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#ADD_OVERLAY">ADD_OVERLAY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#AFTER_PAINT">AFTER_PAINT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#ALIGN_CELLS">ALIGN_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#BEFORE_PAINT">BEFORE_PAINT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#BEFORE_UNDO">BEFORE_UNDO</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the name for the beforeUndo event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#BEGIN_UPDATE">BEGIN_UPDATE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the name for the beginUpdate event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CELL_CONNECTED">CELL_CONNECTED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CELLS_ADDED">CELLS_ADDED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CELLS_FOLDED">CELLS_FOLDED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CELLS_MOVED">CELLS_MOVED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CELLS_ORDERED">CELLS_ORDERED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CELLS_REMOVED">CELLS_REMOVED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CELLS_RESIZED">CELLS_RESIZED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CELLS_TOGGLED">CELLS_TOGGLED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CHANGE">CHANGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the name for the change event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CLEAR">CLEAR</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CONNECT">CONNECT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CONNECT_CELL">CONNECT_CELL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#CONTINUE">CONTINUE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#DONE">DONE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#DOWN">DOWN</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#END_UPDATE">END_UPDATE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the name for the endUpdate event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#EXECUTE">EXECUTE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the name for the execute event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#FIRED">FIRED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#FLIP_EDGE">FLIP_EDGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#FOLD_CELLS">FOLD_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#GROUP_CELLS">GROUP_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#INSERT">INSERT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#LABEL_CHANGED">LABEL_CHANGED</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#LAYOUT_CELLS">LAYOUT_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#MARK">MARK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the name for the mark event, which fires after a cell has been
    + marked.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#MOVE_CELLS">MOVE_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#NOTIFY">NOTIFY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the name for the norify event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#ORDER_CELLS">ORDER_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#PAINT">PAINT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#REDO">REDO</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#REMOVE_CELLS">REMOVE_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#REMOVE_CELLS_FROM_PARENT">REMOVE_CELLS_FROM_PARENT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#REMOVE_OVERLAY">REMOVE_OVERLAY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#REPAINT">REPAINT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#RESIZE_CELLS">RESIZE_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#ROOT">ROOT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#SCALE">SCALE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#SCALE_AND_TRANSLATE">SCALE_AND_TRANSLATE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#SELECT">SELECT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#SPLIT_EDGE">SPLIT_EDGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#START">START</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#START_EDITING">START_EDITING</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#STOP">STOP</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#TOGGLE_CELLS">TOGGLE_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#TRANSLATE">TRANSLATE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#UNDO">UNDO</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#UNGROUP_CELLS">UNGROUP_CELLS</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#UP">UP</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#UPDATE_CELL_SIZE">UPDATE_CELL_SIZE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEvent.html#mxEvent()">mxEvent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="DONE"><!-- --></A><H3>
    +DONE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DONE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.DONE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ADD_CELLS"><!-- --></A><H3>
    +ADD_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ADD_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.ADD_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CELLS_ADDED"><!-- --></A><H3>
    +CELLS_ADDED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CELLS_ADDED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CELLS_ADDED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ALIGN_CELLS"><!-- --></A><H3>
    +ALIGN_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ALIGN_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.ALIGN_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CONNECT_CELL"><!-- --></A><H3>
    +CONNECT_CELL</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CONNECT_CELL</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CONNECT_CELL">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CONNECT"><!-- --></A><H3>
    +CONNECT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CONNECT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CONNECT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CELL_CONNECTED"><!-- --></A><H3>
    +CELL_CONNECTED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CELL_CONNECTED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CELL_CONNECTED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FLIP_EDGE"><!-- --></A><H3>
    +FLIP_EDGE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>FLIP_EDGE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.FLIP_EDGE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FOLD_CELLS"><!-- --></A><H3>
    +FOLD_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>FOLD_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.FOLD_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CELLS_FOLDED"><!-- --></A><H3>
    +CELLS_FOLDED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CELLS_FOLDED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CELLS_FOLDED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="GROUP_CELLS"><!-- --></A><H3>
    +GROUP_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>GROUP_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.GROUP_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="UNGROUP_CELLS"><!-- --></A><H3>
    +UNGROUP_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>UNGROUP_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.UNGROUP_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="REMOVE_CELLS_FROM_PARENT"><!-- --></A><H3>
    +REMOVE_CELLS_FROM_PARENT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>REMOVE_CELLS_FROM_PARENT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.REMOVE_CELLS_FROM_PARENT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="MOVE_CELLS"><!-- --></A><H3>
    +MOVE_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>MOVE_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.MOVE_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CELLS_MOVED"><!-- --></A><H3>
    +CELLS_MOVED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CELLS_MOVED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CELLS_MOVED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ORDER_CELLS"><!-- --></A><H3>
    +ORDER_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ORDER_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.ORDER_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CELLS_ORDERED"><!-- --></A><H3>
    +CELLS_ORDERED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CELLS_ORDERED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CELLS_ORDERED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="REMOVE_CELLS"><!-- --></A><H3>
    +REMOVE_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>REMOVE_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.REMOVE_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CELLS_REMOVED"><!-- --></A><H3>
    +CELLS_REMOVED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CELLS_REMOVED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CELLS_REMOVED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="REPAINT"><!-- --></A><H3>
    +REPAINT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>REPAINT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.REPAINT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="RESIZE_CELLS"><!-- --></A><H3>
    +RESIZE_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>RESIZE_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.RESIZE_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CELLS_RESIZED"><!-- --></A><H3>
    +CELLS_RESIZED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CELLS_RESIZED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CELLS_RESIZED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SPLIT_EDGE"><!-- --></A><H3>
    +SPLIT_EDGE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SPLIT_EDGE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.SPLIT_EDGE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TOGGLE_CELLS"><!-- --></A><H3>
    +TOGGLE_CELLS</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>TOGGLE_CELLS</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.TOGGLE_CELLS">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CELLS_TOGGLED"><!-- --></A><H3>
    +CELLS_TOGGLED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CELLS_TOGGLED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CELLS_TOGGLED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="UPDATE_CELL_SIZE"><!-- --></A><H3>
    +UPDATE_CELL_SIZE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>UPDATE_CELL_SIZE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.UPDATE_CELL_SIZE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LABEL_CHANGED"><!-- --></A><H3>
    +LABEL_CHANGED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>LABEL_CHANGED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.LABEL_CHANGED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ADD_OVERLAY"><!-- --></A><H3>
    +ADD_OVERLAY</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ADD_OVERLAY</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.ADD_OVERLAY">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="REMOVE_OVERLAY"><!-- --></A><H3>
    +REMOVE_OVERLAY</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>REMOVE_OVERLAY</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.REMOVE_OVERLAY">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="BEFORE_PAINT"><!-- --></A><H3>
    +BEFORE_PAINT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>BEFORE_PAINT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.BEFORE_PAINT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PAINT"><!-- --></A><H3>
    +PAINT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>PAINT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.PAINT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="AFTER_PAINT"><!-- --></A><H3>
    +AFTER_PAINT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>AFTER_PAINT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.AFTER_PAINT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="START_EDITING"><!-- --></A><H3>
    +START_EDITING</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>START_EDITING</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.START_EDITING">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="UNDO"><!-- --></A><H3>
    +UNDO</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>UNDO</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.UNDO">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="REDO"><!-- --></A><H3>
    +REDO</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>REDO</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.REDO">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="UP"><!-- --></A><H3>
    +UP</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>UP</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.UP">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="DOWN"><!-- --></A><H3>
    +DOWN</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DOWN</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.DOWN">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SCALE"><!-- --></A><H3>
    +SCALE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SCALE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.SCALE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TRANSLATE"><!-- --></A><H3>
    +TRANSLATE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>TRANSLATE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.TRANSLATE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SCALE_AND_TRANSLATE"><!-- --></A><H3>
    +SCALE_AND_TRANSLATE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SCALE_AND_TRANSLATE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.SCALE_AND_TRANSLATE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CHANGE"><!-- --></A><H3>
    +CHANGE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CHANGE</B></PRE>
    +<DL>
    +<DD>Holds the name for the change event. First and only argument in the
    + argument array is the list of mxAtomicGraphChanges that have been
    + executed on the model.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CHANGE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EXECUTE"><!-- --></A><H3>
    +EXECUTE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>EXECUTE</B></PRE>
    +<DL>
    +<DD>Holds the name for the execute event. First and only argument in the
    + argument array is the mxAtomicGraphChange that has been executed on the 
    + model. This event fires before the change event.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.EXECUTE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="BEFORE_UNDO"><!-- --></A><H3>
    +BEFORE_UNDO</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>BEFORE_UNDO</B></PRE>
    +<DL>
    +<DD>Holds the name for the beforeUndo event. First and only argument in the
    + argument array is the current edit that is currently in progress in the 
    + model. This event fires before notify is called on the currentEdit in
    + the model.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.BEFORE_UNDO">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="NOTIFY"><!-- --></A><H3>
    +NOTIFY</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>NOTIFY</B></PRE>
    +<DL>
    +<DD>Holds the name for the norify event. First and only argument in the
    + argument array is the list of mxAtomicGraphChanges that have been
    + executed on the model. This event fires after the change event.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.NOTIFY">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="BEGIN_UPDATE"><!-- --></A><H3>
    +BEGIN_UPDATE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>BEGIN_UPDATE</B></PRE>
    +<DL>
    +<DD>Holds the name for the beginUpdate event. This event has no arguments and
    + fires after the updateLevel has been changed in model.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.BEGIN_UPDATE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="END_UPDATE"><!-- --></A><H3>
    +END_UPDATE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>END_UPDATE</B></PRE>
    +<DL>
    +<DD>Holds the name for the endUpdate event. This event has no arguments and fires
    + after the updateLevel has been changed in the model. First argument is the
    + currentEdit.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.END_UPDATE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="INSERT"><!-- --></A><H3>
    +INSERT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>INSERT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.INSERT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ADD"><!-- --></A><H3>
    +ADD</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ADD</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.ADD">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CLEAR"><!-- --></A><H3>
    +CLEAR</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CLEAR</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.CLEAR">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="FIRED"><!-- --></A><H3>
    +FIRED</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>FIRED</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.FIRED">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SELECT"><!-- --></A><H3>
    +SELECT</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SELECT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.util.mxEvent.SELECT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="MARK"><!-- --></A><H3>
    +MARK</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>MARK</B></PRE>
    +<DL>
    +<DD>Holds the name for the mark event, which fires after a cell has been
    + marked. First and only argument in the array is the cell state that has
    + been marked or null, if no state has been marked.
    + 
    + To add a mark listener to the cell marker:
    + 
    + <code>
    + addListener(
    +   mxEvent.MARK, new mxEventListener()
    +   {
    +     public void invoke(Object source, Object[] args)
    +     {
    +       cellMarked((mxCellMarker) source, (mxCellState) args[0]);
    +     }
    +   });
    + </code>
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ROOT"><!-- --></A><H3>
    +ROOT</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ROOT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LAYOUT_CELLS"><!-- --></A><H3>
    +LAYOUT_CELLS</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>LAYOUT_CELLS</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="START"><!-- --></A><H3>
    +START</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>START</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CONTINUE"><!-- --></A><H3>
    +CONTINUE</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CONTINUE</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="STOP"><!-- --></A><H3>
    +STOP</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>STOP</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxEvent()"><!-- --></A><H3>
    +mxEvent</H3>
    +<PRE>
    +public <B>mxEvent</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxEventObject.html b/java/docs/com/mxgraph/util/mxEventObject.html
    new file mode 100644
    index 000000000..cebacc6c1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxEventObject.html
    @@ -0,0 +1,439 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxEventObject (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxEventObject (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEventObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxEventObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxEventObject</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxEventObject</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxEventObject</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Base class for objects that dispatch named events.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#consumed">consumed</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the consumed state of the event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#name">name</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the name of the event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#properties">properties</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the properties of the event.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#mxEventObject(java.lang.String)">mxEventObject</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new event for the given name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#mxEventObject(java.lang.String, java.lang.Object...)">mxEventObject</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>...&nbsp;args)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new event for the given name and properties.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#consume()">consume</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Consumes the event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#getName()">getName</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the name of the event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#getProperties()">getProperties</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#getProperty(java.lang.String)">getProperty</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventObject.html#isConsumed()">isConsumed</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the event has been consumed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="name"><!-- --></A><H3>
    +name</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>name</B></PRE>
    +<DL>
    +<DD>Holds the name of the event.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="properties"><!-- --></A><H3>
    +properties</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>properties</B></PRE>
    +<DL>
    +<DD>Holds the properties of the event.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="consumed"><!-- --></A><H3>
    +consumed</H3>
    +<PRE>
    +protected boolean <B>consumed</B></PRE>
    +<DL>
    +<DD>Holds the consumed state of the event. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxEventObject(java.lang.String)"><!-- --></A><H3>
    +mxEventObject</H3>
    +<PRE>
    +public <B>mxEventObject</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Constructs a new event for the given name.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxEventObject(java.lang.String, java.lang.Object...)"><!-- --></A><H3>
    +mxEventObject</H3>
    +<PRE>
    +public <B>mxEventObject</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>...&nbsp;args)</PRE>
    +<DL>
    +<DD>Constructs a new event for the given name and properties. The optional
    + properties are specified using a sequence of keys and values, eg.
    + <code>new mxEventObject("eventName", key1, val1, .., keyN, valN))</code>
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getName()"><!-- --></A><H3>
    +getName</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getName</B>()</PRE>
    +<DL>
    +<DD>Returns the name of the event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getProperties()"><!-- --></A><H3>
    +getProperties</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getProperties</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getProperty(java.lang.String)"><!-- --></A><H3>
    +getProperty</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getProperty</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConsumed()"><!-- --></A><H3>
    +isConsumed</H3>
    +<PRE>
    +public boolean <B>isConsumed</B>()</PRE>
    +<DL>
    +<DD>Returns true if the event has been consumed.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="consume()"><!-- --></A><H3>
    +consume</H3>
    +<PRE>
    +public void <B>consume</B>()</PRE>
    +<DL>
    +<DD>Consumes the event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEventObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxEventObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxEventSource.html b/java/docs/com/mxgraph/util/mxEventSource.html
    new file mode 100644
    index 000000000..77fbc70d2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxEventSource.html
    @@ -0,0 +1,555 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxEventSource (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxEventSource (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEventSource.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxEventSource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventSource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxEventSource</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxEventSource</B>
    +</PRE>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>, <A HREF="../../../com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>, <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>, <A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>, <A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>, <A HREF="../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>, <A HREF="../../../com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>, <A HREF="../../../com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>, <A HREF="../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>, <A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>, <A HREF="../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxEventSource</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Base class for objects that dispatch named events.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that listens to an event source.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the event names and associated listeners in an array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if events can be fired.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the source object for this event source.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#mxEventSource()">mxEventSource</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new event source using this as the source object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#mxEventSource(java.lang.Object)">mxEventSource</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new event source for the given source object.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +            <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Binds the specified function to the given event name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A></B>(<A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>&nbsp;evt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispatches the given event name with this object as the event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A></B>(<A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>&nbsp;evt,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispatches the given event name, passing all arguments after the given
    + name to the registered listeners for the event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A></B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: removeListener
    +
    + Removes all occurances of the given listener from the list of listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A></B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: removeListener
    +
    + Removes all occurances of the given listener from the list of listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A></B>(boolean&nbsp;eventsEnabled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="eventListeners"><!-- --></A><H3>
    +eventListeners</H3>
    +<PRE>
    +protected transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>eventListeners</B></PRE>
    +<DL>
    +<DD>Holds the event names and associated listeners in an array. The array
    + contains the event name followed by the respective listener for each
    + registered listener.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="eventSource"><!-- --></A><H3>
    +eventSource</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>eventSource</B></PRE>
    +<DL>
    +<DD>Holds the source object for this event source.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="eventsEnabled"><!-- --></A><H3>
    +eventsEnabled</H3>
    +<PRE>
    +protected boolean <B>eventsEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if events can be fired. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxEventSource()"><!-- --></A><H3>
    +mxEventSource</H3>
    +<PRE>
    +public <B>mxEventSource</B>()</PRE>
    +<DL>
    +<DD>Constructs a new event source using this as the source object.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxEventSource(java.lang.Object)"><!-- --></A><H3>
    +mxEventSource</H3>
    +<PRE>
    +public <B>mxEventSource</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source)</PRE>
    +<DL>
    +<DD>Constructs a new event source for the given source object.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getEventSource()"><!-- --></A><H3>
    +getEventSource</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getEventSource</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEventSource(java.lang.Object)"><!-- --></A><H3>
    +setEventSource</H3>
    +<PRE>
    +public void <B>setEventSource</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEventsEnabled()"><!-- --></A><H3>
    +isEventsEnabled</H3>
    +<PRE>
    +public boolean <B>isEventsEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEventsEnabled(boolean)"><!-- --></A><H3>
    +setEventsEnabled</H3>
    +<PRE>
    +public void <B>setEventsEnabled</B>(boolean&nbsp;eventsEnabled)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +addListener</H3>
    +<PRE>
    +public void <B>addListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName,
    +                        <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Binds the specified function to the given event name. If no event name
    + is given, then the listener is registered for all events.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD>Function: removeListener
    +
    + Removes all occurances of the given listener from the list of listeners.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><!-- --></A><H3>
    +removeListener</H3>
    +<PRE>
    +public void <B>removeListener</B>(<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>&nbsp;listener,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;eventName)</PRE>
    +<DL>
    +<DD>Function: removeListener
    +
    + Removes all occurances of the given listener from the list of listeners.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fireEvent(com.mxgraph.util.mxEventObject)"><!-- --></A><H3>
    +fireEvent</H3>
    +<PRE>
    +public void <B>fireEvent</B>(<A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>&nbsp;evt)</PRE>
    +<DL>
    +<DD>Dispatches the given event name with this object as the event source.
    + <code>fireEvent(new mxEventObject("eventName", key1, val1, .., keyN, valN))</code>
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)"><!-- --></A><H3>
    +fireEvent</H3>
    +<PRE>
    +public void <B>fireEvent</B>(<A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>&nbsp;evt,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender)</PRE>
    +<DL>
    +<DD>Dispatches the given event name, passing all arguments after the given
    + name to the registered listeners for the event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEventSource.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxEventSource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventSource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxEventSource.mxIEventListener.html b/java/docs/com/mxgraph/util/mxEventSource.mxIEventListener.html
    new file mode 100644
    index 000000000..017570eb5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxEventSource.mxIEventListener.html
    @@ -0,0 +1,218 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxEventSource.mxIEventListener (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxEventSource.mxIEventListener (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEventSource.mxIEventListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxEventSource.mxIEventListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventSource.mxIEventListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Interface mxEventSource.mxIEventListener</H2>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static interface <B>mxEventSource.mxIEventListener</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the requirements for an object that listens to an event source.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html#invoke(java.lang.Object, com.mxgraph.util.mxEventObject)">invoke</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender,
    +       <A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>&nbsp;evt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when the graph model has changed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="invoke(java.lang.Object, com.mxgraph.util.mxEventObject)"><!-- --></A><H3>
    +invoke</H3>
    +<PRE>
    +void <B>invoke</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;sender,
    +            <A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>&nbsp;evt)</PRE>
    +<DL>
    +<DD>Called when the graph model has changed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>sender</CODE> - Reference to the source of the event.<DD><CODE>evt</CODE> - Event object to be dispatched.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEventSource.mxIEventListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxEventSource.mxIEventListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEventSource.mxIEventListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxImage.html b/java/docs/com/mxgraph/util/mxImage.html
    new file mode 100644
    index 000000000..1be8f4044
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxImage.html
    @@ -0,0 +1,462 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxImage (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxImage (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxImage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxImage</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxImage</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxImage</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a 2-dimensional point with double precision coordinates.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.util.mxImage">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#height">height</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the image width and height.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#src">src</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the path or URL for the image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#width">width</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the image width and height.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#mxImage(java.lang.String, int, int)">mxImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src,
    +        int&nbsp;width,
    +        int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new point at (0, 0).</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#getHeight()">getHeight</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#getSrc()">getSrc</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#getWidth()">getWidth</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#setHeight(int)">setHeight</A></B>(int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#setSrc(java.lang.String)">setSrc</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImage.html#setWidth(int)">setWidth</A></B>(int&nbsp;width)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="src"><!-- --></A><H3>
    +src</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>src</B></PRE>
    +<DL>
    +<DD>Holds the path or URL for the image.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="width"><!-- --></A><H3>
    +width</H3>
    +<PRE>
    +protected int <B>width</B></PRE>
    +<DL>
    +<DD>Holds the image width and height.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="height"><!-- --></A><H3>
    +height</H3>
    +<PRE>
    +protected int <B>height</B></PRE>
    +<DL>
    +<DD>Holds the image width and height.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxImage(java.lang.String, int, int)"><!-- --></A><H3>
    +mxImage</H3>
    +<PRE>
    +public <B>mxImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src,
    +               int&nbsp;width,
    +               int&nbsp;height)</PRE>
    +<DL>
    +<DD>Constructs a new point at (0, 0).
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getSrc()"><!-- --></A><H3>
    +getSrc</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getSrc</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the src</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSrc(java.lang.String)"><!-- --></A><H3>
    +setSrc</H3>
    +<PRE>
    +public void <B>setSrc</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;src)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>src</CODE> - the src to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getWidth()"><!-- --></A><H3>
    +getWidth</H3>
    +<PRE>
    +public int <B>getWidth</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the width</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setWidth(int)"><!-- --></A><H3>
    +setWidth</H3>
    +<PRE>
    +public void <B>setWidth</B>(int&nbsp;width)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>width</CODE> - the width to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHeight()"><!-- --></A><H3>
    +getHeight</H3>
    +<PRE>
    +public int <B>getHeight</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the height</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHeight(int)"><!-- --></A><H3>
    +setHeight</H3>
    +<PRE>
    +public void <B>setHeight</B>(int&nbsp;height)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>height</CODE> - the height to set</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxImage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxImageBundle.html b/java/docs/com/mxgraph/util/mxImageBundle.html
    new file mode 100644
    index 000000000..b078af90d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxImageBundle.html
    @@ -0,0 +1,373 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxImageBundle (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxImageBundle (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxImageBundle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxImageBundle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageBundle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxImageBundle</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxImageBundle</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxImageBundle</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Maps from keys to base64 encoded images or file locations. All values must
    + be URLs or use the format data:image/format followed by a comma and the base64
    + encoded image data, eg. "data:image/gif,XYZ", where XYZ is the base64 encoded
    + image data.
    + 
    + To add a new image bundle to an existing graph, the following code is used:
    + 
    + <code>
    + mxImageBundle bundle = new mxImageBundle();
    + bundle.PutImage("myImage", "data:image/gif,R0lGODlhEAAQAMIGAAAAAICAAICAgP" +
    +    "//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAA" +
    +    "EAAQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hi" +
    +    "laSSASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs=");
    + graph.addImageBundle(bundle);
    + </code>
    + 
    + The image can then be referenced in any cell style using image=myImage.
    + If you are using mxOutline, you should use the same image bundles in the
    + graph that renders the outline.
    + 
    + To convert a given BufferedImage to a base64 encoded String, the following
    + code can be used:
    + 
    + <code>
    + ByteArrayOutputStream bos = new ByteArrayOutputStream();
    + ImageIO.write(image, "png", bos);
    + System.out.println("base64=" + mxBase64.encodeToString(
    +         bos.toByteArray(), false));
    + </code>
    + 
    + The value is decoded in mxUtils.loadImage. The keys for images are resolved
    + and the short format above is converted to a data URI in
    + mxGraph.postProcessCellStyle.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImageBundle.html#images">images</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from keys to images.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImageBundle.html#mxImageBundle()">mxImageBundle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImageBundle.html#getImage(java.lang.String)">getImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for the given key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImageBundle.html#getImages()">getImages</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the images.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxImageBundle.html#putImage(java.lang.String, java.lang.String)">putImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified entry to the map.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="images"><!-- --></A><H3>
    +images</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>images</B></PRE>
    +<DL>
    +<DD>Maps from keys to images.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxImageBundle()"><!-- --></A><H3>
    +mxImageBundle</H3>
    +<PRE>
    +public <B>mxImageBundle</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getImages()"><!-- --></A><H3>
    +getImages</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>getImages</B>()</PRE>
    +<DL>
    +<DD>Returns the images.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="putImage(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +putImage</H3>
    +<PRE>
    +public void <B>putImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Adds the specified entry to the map.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImage(java.lang.String)"><!-- --></A><H3>
    +getImage</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD>Returns the value for the given key.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxImageBundle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxImageBundle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxImageBundle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxLightweightLabel.html b/java/docs/com/mxgraph/util/mxLightweightLabel.html
    new file mode 100644
    index 000000000..0ccae481a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxLightweightLabel.html
    @@ -0,0 +1,784 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:09 CEST 2012 -->
    +<TITLE>
    +mxLightweightLabel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxLightweightLabel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLightweightLabel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxLightweightLabel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLightweightLabel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JLabel">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxLightweightLabel</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">java.awt.Component</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">java.awt.Container</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">javax.swing.JComponent</A>
    +              <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true" title="class or interface in javax.swing">javax.swing.JLabel</A>
    +                  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxLightweightLabel</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/accessibility/Accessible.html?is-external=true" title="class or interface in javax.accessibility">Accessible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true" title="class or interface in javax.swing">SwingConstants</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxLightweightLabel</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true" title="class or interface in javax.swing">JLabel</A></DL>
    +</PRE>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.util.mxLightweightLabel">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_javax.swing.JLabel"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true" title="class or interface in javax.swing">JLabel</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.AccessibleJLabel.html?is-external=true" title="class or interface in javax.swing">JLabel.AccessibleJLabel</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.AccessibleJComponent.html?is-external=true" title="class or interface in javax.swing">JComponent.AccessibleJComponent</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.AccessibleAWTContainer.html?is-external=true" title="class or interface in java.awt">Container.AccessibleAWTContainer</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<A NAME="nested_classes_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.AccessibleAWTComponent.html?is-external=true" title="class or interface in java.awt">Component.AccessibleAWTComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BaselineResizeBehavior.html?is-external=true" title="class or interface in java.awt">Component.BaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.BltBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.BltBufferStrategy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.FlipBufferStrategy.html?is-external=true" title="class or interface in java.awt">Component.FlipBufferStrategy</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#sharedInstance">sharedInstance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.JLabel"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true" title="class or interface in javax.swing">JLabel</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#labelFor" title="class or interface in javax.swing">labelFor</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#accessibleContext" title="class or interface in javax.swing">accessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#listenerList" title="class or interface in javax.swing">listenerList</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#TOOL_TIP_TEXT_KEY" title="class or interface in javax.swing">TOOL_TIP_TEXT_KEY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#ui" title="class or interface in javax.swing">ui</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#UNDEFINED_CONDITION" title="class or interface in javax.swing">UNDEFINED_CONDITION</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT" title="class or interface in javax.swing">WHEN_ANCESTOR_OF_FOCUSED_COMPONENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_FOCUSED" title="class or interface in javax.swing">WHEN_FOCUSED</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#WHEN_IN_FOCUSED_WINDOW" title="class or interface in javax.swing">WHEN_IN_FOCUSED_WINDOW</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#BOTTOM_ALIGNMENT" title="class or interface in java.awt">BOTTOM_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#CENTER_ALIGNMENT" title="class or interface in java.awt">CENTER_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#LEFT_ALIGNMENT" title="class or interface in java.awt">LEFT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#RIGHT_ALIGNMENT" title="class or interface in java.awt">RIGHT_ALIGNMENT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#TOP_ALIGNMENT" title="class or interface in java.awt">TOP_ALIGNMENT</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_javax.swing.SwingConstants"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true" title="class or interface in javax.swing">SwingConstants</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#BOTTOM" title="class or interface in javax.swing">BOTTOM</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#CENTER" title="class or interface in javax.swing">CENTER</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#EAST" title="class or interface in javax.swing">EAST</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#HORIZONTAL" title="class or interface in javax.swing">HORIZONTAL</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#LEADING" title="class or interface in javax.swing">LEADING</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#LEFT" title="class or interface in javax.swing">LEFT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#NEXT" title="class or interface in javax.swing">NEXT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#NORTH" title="class or interface in javax.swing">NORTH</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#NORTH_EAST" title="class or interface in javax.swing">NORTH_EAST</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#NORTH_WEST" title="class or interface in javax.swing">NORTH_WEST</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#PREVIOUS" title="class or interface in javax.swing">PREVIOUS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#RIGHT" title="class or interface in javax.swing">RIGHT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#SOUTH" title="class or interface in javax.swing">SOUTH</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#SOUTH_EAST" title="class or interface in javax.swing">SOUTH_EAST</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#SOUTH_WEST" title="class or interface in javax.swing">SOUTH_WEST</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#TOP" title="class or interface in javax.swing">TOP</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#TRAILING" title="class or interface in javax.swing">TRAILING</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#VERTICAL" title="class or interface in javax.swing">VERTICAL</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true#WEST" title="class or interface in javax.swing">WEST</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.awt.image.ImageObserver"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from interface java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ABORT" title="class or interface in java.awt.image">ABORT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ALLBITS" title="class or interface in java.awt.image">ALLBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#ERROR" title="class or interface in java.awt.image">ERROR</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#FRAMEBITS" title="class or interface in java.awt.image">FRAMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#HEIGHT" title="class or interface in java.awt.image">HEIGHT</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#PROPERTIES" title="class or interface in java.awt.image">PROPERTIES</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#SOMEBITS" title="class or interface in java.awt.image">SOMEBITS</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true#WIDTH" title="class or interface in java.awt.image">WIDTH</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#mxLightweightLabel()">mxLightweightLabel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, boolean, boolean)">firePropertyChange</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                   boolean&nbsp;oldValue,
    +                   boolean&nbsp;newValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, byte, byte)">firePropertyChange</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                   byte&nbsp;oldValue,
    +                   byte&nbsp;newValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, char, char)">firePropertyChange</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                   char&nbsp;oldValue,
    +                   char&nbsp;newValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, double, double)">firePropertyChange</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                   double&nbsp;oldValue,
    +                   double&nbsp;newValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, float, float)">firePropertyChange</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                   float&nbsp;oldValue,
    +                   float&nbsp;newValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, int, int)">firePropertyChange</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                   int&nbsp;oldValue,
    +                   int&nbsp;newValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, long, long)">firePropertyChange</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                   long&nbsp;oldValue,
    +                   long&nbsp;newValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)">firePropertyChange</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;oldValue,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;newValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, short, short)">firePropertyChange</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                   short&nbsp;oldValue,
    +                   short&nbsp;newValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#getSharedInstance()">getSharedInstance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#repaint(long, int, int, int, int)">repaint</A></B>(long&nbsp;tm,
    +        int&nbsp;x,
    +        int&nbsp;y,
    +        int&nbsp;width,
    +        int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#repaint(java.awt.Rectangle)">repaint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;r)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#revalidate()">revalidate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html#validate()">validate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden for performance reasons.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.JLabel"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true" title="class or interface in javax.swing">JLabel</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#checkHorizontalKey(int, java.lang.String)" title="class or interface in javax.swing">checkHorizontalKey</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#checkVerticalKey(int, java.lang.String)" title="class or interface in javax.swing">checkVerticalKey</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getAccessibleContext()" title="class or interface in javax.swing">getAccessibleContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getDisabledIcon()" title="class or interface in javax.swing">getDisabledIcon</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getDisplayedMnemonic()" title="class or interface in javax.swing">getDisplayedMnemonic</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getDisplayedMnemonicIndex()" title="class or interface in javax.swing">getDisplayedMnemonicIndex</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getHorizontalAlignment()" title="class or interface in javax.swing">getHorizontalAlignment</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getHorizontalTextPosition()" title="class or interface in javax.swing">getHorizontalTextPosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getIcon()" title="class or interface in javax.swing">getIcon</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getIconTextGap()" title="class or interface in javax.swing">getIconTextGap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getLabelFor()" title="class or interface in javax.swing">getLabelFor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getText()" title="class or interface in javax.swing">getText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getUI()" title="class or interface in javax.swing">getUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getUIClassID()" title="class or interface in javax.swing">getUIClassID</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getVerticalAlignment()" title="class or interface in javax.swing">getVerticalAlignment</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#getVerticalTextPosition()" title="class or interface in javax.swing">getVerticalTextPosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#imageUpdate(java.awt.Image, int, int, int, int, int)" title="class or interface in javax.swing">imageUpdate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#paramString()" title="class or interface in javax.swing">paramString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setDisabledIcon(javax.swing.Icon)" title="class or interface in javax.swing">setDisabledIcon</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setDisplayedMnemonic(char)" title="class or interface in javax.swing">setDisplayedMnemonic</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setDisplayedMnemonic(int)" title="class or interface in javax.swing">setDisplayedMnemonic</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setDisplayedMnemonicIndex(int)" title="class or interface in javax.swing">setDisplayedMnemonicIndex</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setHorizontalAlignment(int)" title="class or interface in javax.swing">setHorizontalAlignment</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setHorizontalTextPosition(int)" title="class or interface in javax.swing">setHorizontalTextPosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setIcon(javax.swing.Icon)" title="class or interface in javax.swing">setIcon</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setIconTextGap(int)" title="class or interface in javax.swing">setIconTextGap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setLabelFor(java.awt.Component)" title="class or interface in javax.swing">setLabelFor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setText(java.lang.String)" title="class or interface in javax.swing">setText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setUI(javax.swing.plaf.LabelUI)" title="class or interface in javax.swing">setUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setVerticalAlignment(int)" title="class or interface in javax.swing">setVerticalAlignment</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#setVerticalTextPosition(int)" title="class or interface in javax.swing">setVerticalTextPosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true#updateUI()" title="class or interface in javax.swing">updateUI</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_javax.swing.JComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">addAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addNotify()" title="class or interface in javax.swing">addNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#addVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">addVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#computeVisibleRect(java.awt.Rectangle)" title="class or interface in javax.swing">computeVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#contains(int, int)" title="class or interface in javax.swing">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#createToolTip()" title="class or interface in javax.swing">createToolTip</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#disable()" title="class or interface in javax.swing">disable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#enable()" title="class or interface in javax.swing">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#fireVetoableChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">fireVetoableChange</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getActionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getActionMap()" title="class or interface in javax.swing">getActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentX()" title="class or interface in javax.swing">getAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAlignmentY()" title="class or interface in javax.swing">getAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAncestorListeners()" title="class or interface in javax.swing">getAncestorListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getAutoscrolls()" title="class or interface in javax.swing">getAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaseline(int, int)" title="class or interface in javax.swing">getBaseline</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBaselineResizeBehavior()" title="class or interface in javax.swing">getBaselineResizeBehavior</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBorder()" title="class or interface in javax.swing">getBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getBounds(java.awt.Rectangle)" title="class or interface in javax.swing">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getClientProperty(java.lang.Object)" title="class or interface in javax.swing">getClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentGraphics(java.awt.Graphics)" title="class or interface in javax.swing">getComponentGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getComponentPopupMenu()" title="class or interface in javax.swing">getComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getConditionForKeyStroke(javax.swing.KeyStroke)" title="class or interface in javax.swing">getConditionForKeyStroke</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDebugGraphicsOptions()" title="class or interface in javax.swing">getDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getDefaultLocale()" title="class or interface in javax.swing">getDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getFontMetrics(java.awt.Font)" title="class or interface in javax.swing">getFontMetrics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getGraphics()" title="class or interface in javax.swing">getGraphics</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getHeight()" title="class or interface in javax.swing">getHeight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInheritsPopupMenu()" title="class or interface in javax.swing">getInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap()" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputMap(int)" title="class or interface in javax.swing">getInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInputVerifier()" title="class or interface in javax.swing">getInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets()" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getInsets(java.awt.Insets)" title="class or interface in javax.swing">getInsets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getListeners(java.lang.Class)" title="class or interface in javax.swing">getListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getLocation(java.awt.Point)" title="class or interface in javax.swing">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMaximumSize()" title="class or interface in javax.swing">getMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getMinimumSize()" title="class or interface in javax.swing">getMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getNextFocusableComponent()" title="class or interface in javax.swing">getNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPopupLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getPopupLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getPreferredSize()" title="class or interface in javax.swing">getPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRegisteredKeyStrokes()" title="class or interface in javax.swing">getRegisteredKeyStrokes</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getRootPane()" title="class or interface in javax.swing">getRootPane</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getSize(java.awt.Dimension)" title="class or interface in javax.swing">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipLocation(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText()" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getToolTipText(java.awt.event.MouseEvent)" title="class or interface in javax.swing">getToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTopLevelAncestor()" title="class or interface in javax.swing">getTopLevelAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getTransferHandler()" title="class or interface in javax.swing">getTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVerifyInputWhenFocusTarget()" title="class or interface in javax.swing">getVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVetoableChangeListeners()" title="class or interface in javax.swing">getVetoableChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getVisibleRect()" title="class or interface in javax.swing">getVisibleRect</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getWidth()" title="class or interface in javax.swing">getWidth</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getX()" title="class or interface in javax.swing">getX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#getY()" title="class or interface in javax.swing">getY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#grabFocus()" title="class or interface in javax.swing">grabFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isDoubleBuffered()" title="class or interface in javax.swing">isDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isLightweightComponent(java.awt.Component)" title="class or interface in javax.swing">isLightweightComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isManagingFocus()" title="class or interface in javax.swing">isManagingFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOpaque()" title="class or interface in javax.swing">isOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isOptimizedDrawingEnabled()" title="class or interface in javax.swing">isOptimizedDrawingEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingForPrint()" title="class or interface in javax.swing">isPaintingForPrint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isPaintingTile()" title="class or interface in javax.swing">isPaintingTile</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isRequestFocusEnabled()" title="class or interface in javax.swing">isRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#isValidateRoot()" title="class or interface in javax.swing">isValidateRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paint(java.awt.Graphics)" title="class or interface in javax.swing">paint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintBorder(java.awt.Graphics)" title="class or interface in javax.swing">paintBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintChildren(java.awt.Graphics)" title="class or interface in javax.swing">paintChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintComponent(java.awt.Graphics)" title="class or interface in javax.swing">paintComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(int, int, int, int)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#paintImmediately(java.awt.Rectangle)" title="class or interface in javax.swing">paintImmediately</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#print(java.awt.Graphics)" title="class or interface in javax.swing">print</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printAll(java.awt.Graphics)" title="class or interface in javax.swing">printAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printBorder(java.awt.Graphics)" title="class or interface in javax.swing">printBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printChildren(java.awt.Graphics)" title="class or interface in javax.swing">printChildren</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#printComponent(java.awt.Graphics)" title="class or interface in javax.swing">printComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processComponentKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processComponentKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyBinding(javax.swing.KeyStroke, java.awt.event.KeyEvent, int, boolean)" title="class or interface in javax.swing">processKeyBinding</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processKeyEvent(java.awt.event.KeyEvent)" title="class or interface in javax.swing">processKeyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#processMouseMotionEvent(java.awt.event.MouseEvent)" title="class or interface in javax.swing">processMouseMotionEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#putClientProperty(java.lang.Object, java.lang.Object)" title="class or interface in javax.swing">putClientProperty</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)" title="class or interface in javax.swing">registerKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeAncestorListener(javax.swing.event.AncestorListener)" title="class or interface in javax.swing">removeAncestorListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeNotify()" title="class or interface in javax.swing">removeNotify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#removeVetoableChangeListener(java.beans.VetoableChangeListener)" title="class or interface in javax.swing">removeVetoableChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestDefaultFocus()" title="class or interface in javax.swing">requestDefaultFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus()" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocus(boolean)" title="class or interface in javax.swing">requestFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow()" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#requestFocusInWindow(boolean)" title="class or interface in javax.swing">requestFocusInWindow</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#resetKeyboardActions()" title="class or interface in javax.swing">resetKeyboardActions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#reshape(int, int, int, int)" title="class or interface in javax.swing">reshape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#scrollRectToVisible(java.awt.Rectangle)" title="class or interface in javax.swing">scrollRectToVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setActionMap(javax.swing.ActionMap)" title="class or interface in javax.swing">setActionMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentX(float)" title="class or interface in javax.swing">setAlignmentX</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAlignmentY(float)" title="class or interface in javax.swing">setAlignmentY</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setAutoscrolls(boolean)" title="class or interface in javax.swing">setAutoscrolls</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBackground(java.awt.Color)" title="class or interface in javax.swing">setBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setBorder(javax.swing.border.Border)" title="class or interface in javax.swing">setBorder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setComponentPopupMenu(javax.swing.JPopupMenu)" title="class or interface in javax.swing">setComponentPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDebugGraphicsOptions(int)" title="class or interface in javax.swing">setDebugGraphicsOptions</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDefaultLocale(java.util.Locale)" title="class or interface in javax.swing">setDefaultLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setDoubleBuffered(boolean)" title="class or interface in javax.swing">setDoubleBuffered</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setEnabled(boolean)" title="class or interface in javax.swing">setEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFocusTraversalKeys(int, java.util.Set)" title="class or interface in javax.swing">setFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setFont(java.awt.Font)" title="class or interface in javax.swing">setFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setForeground(java.awt.Color)" title="class or interface in javax.swing">setForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInheritsPopupMenu(boolean)" title="class or interface in javax.swing">setInheritsPopupMenu</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputMap(int, javax.swing.InputMap)" title="class or interface in javax.swing">setInputMap</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setInputVerifier(javax.swing.InputVerifier)" title="class or interface in javax.swing">setInputVerifier</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMaximumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMaximumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setMinimumSize(java.awt.Dimension)" title="class or interface in javax.swing">setMinimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setNextFocusableComponent(java.awt.Component)" title="class or interface in javax.swing">setNextFocusableComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setOpaque(boolean)" title="class or interface in javax.swing">setOpaque</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setPreferredSize(java.awt.Dimension)" title="class or interface in javax.swing">setPreferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setRequestFocusEnabled(boolean)" title="class or interface in javax.swing">setRequestFocusEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setToolTipText(java.lang.String)" title="class or interface in javax.swing">setToolTipText</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setTransferHandler(javax.swing.TransferHandler)" title="class or interface in javax.swing">setTransferHandler</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setUI(javax.swing.plaf.ComponentUI)" title="class or interface in javax.swing">setUI</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVerifyInputWhenFocusTarget(boolean)" title="class or interface in javax.swing">setVerifyInputWhenFocusTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#setVisible(boolean)" title="class or interface in javax.swing">setVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#unregisterKeyboardAction(javax.swing.KeyStroke)" title="class or interface in javax.swing">unregisterKeyboardAction</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#update(java.awt.Graphics)" title="class or interface in javax.swing">update</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Container"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#add(java.lang.String, java.awt.Component)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">addContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addImpl(java.awt.Component, java.lang.Object, int)" title="class or interface in java.awt">addImpl</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">addPropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#applyComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">applyComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#areFocusTraversalKeysSet(int)" title="class or interface in java.awt">areFocusTraversalKeysSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#countComponents()" title="class or interface in java.awt">countComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#deliverEvent(java.awt.Event)" title="class or interface in java.awt">deliverEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#doLayout()" title="class or interface in java.awt">doLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(int, int)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#findComponentAt(java.awt.Point)" title="class or interface in java.awt">findComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponent(int)" title="class or interface in java.awt">getComponent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(int, int)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentAt(java.awt.Point)" title="class or interface in java.awt">getComponentAt</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentCount()" title="class or interface in java.awt">getComponentCount</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponents()" title="class or interface in java.awt">getComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getComponentZOrder(java.awt.Component)" title="class or interface in java.awt">getComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getContainerListeners()" title="class or interface in java.awt">getContainerListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalKeys(int)" title="class or interface in java.awt">getFocusTraversalKeys</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getFocusTraversalPolicy()" title="class or interface in java.awt">getFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getLayout()" title="class or interface in java.awt">getLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#getMousePosition(boolean)" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#insets()" title="class or interface in java.awt">insets</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#invalidate()" title="class or interface in java.awt">invalidate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isAncestorOf(java.awt.Component)" title="class or interface in java.awt">isAncestorOf</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot()" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusCycleRoot(java.awt.Container)" title="class or interface in java.awt">isFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicyProvider()" title="class or interface in java.awt">isFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#isFocusTraversalPolicySet()" title="class or interface in java.awt">isFocusTraversalPolicySet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#layout()" title="class or interface in java.awt">layout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintStream, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#list(java.io.PrintWriter, int)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#locate(int, int)" title="class or interface in java.awt">locate</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#minimumSize()" title="class or interface in java.awt">minimumSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#paintComponents(java.awt.Graphics)" title="class or interface in java.awt">paintComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#preferredSize()" title="class or interface in java.awt">preferredSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#printComponents(java.awt.Graphics)" title="class or interface in java.awt">printComponents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processContainerEvent(java.awt.event.ContainerEvent)" title="class or interface in java.awt">processContainerEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#processEvent(java.awt.AWTEvent)" title="class or interface in java.awt">processEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(java.awt.Component)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#remove(int)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeAll()" title="class or interface in java.awt">removeAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#removeContainerListener(java.awt.event.ContainerListener)" title="class or interface in java.awt">removeContainerListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setComponentZOrder(java.awt.Component, int)" title="class or interface in java.awt">setComponentZOrder</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusCycleRoot(boolean)" title="class or interface in java.awt">setFocusCycleRoot</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)" title="class or interface in java.awt">setFocusTraversalPolicy</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setFocusTraversalPolicyProvider(boolean)" title="class or interface in java.awt">setFocusTraversalPolicyProvider</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#setLayout(java.awt.LayoutManager)" title="class or interface in java.awt">setLayout</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusBackward()" title="class or interface in java.awt">transferFocusBackward</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#transferFocusDownCycle()" title="class or interface in java.awt">transferFocusDownCycle</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validateTree()" title="class or interface in java.awt">validateTree</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.awt.Component"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#action(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">action</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#add(java.awt.PopupMenu)" title="class or interface in java.awt">add</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">addComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">addFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">addHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">addHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">addInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">addKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">addMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">addMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#addMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">addMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#bounds()" title="class or interface in java.awt">bounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#checkImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">checkImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#coalesceEvents(java.awt.AWTEvent, java.awt.AWTEvent)" title="class or interface in java.awt">coalesceEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#contains(java.awt.Point)" title="class or interface in java.awt">contains</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(java.awt.image.ImageProducer)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createImage(int, int)" title="class or interface in java.awt">createImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#createVolatileImage(int, int, java.awt.ImageCapabilities)" title="class or interface in java.awt">createVolatileImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#disableEvents(long)" title="class or interface in java.awt">disableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#dispatchEvent(java.awt.AWTEvent)" title="class or interface in java.awt">dispatchEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enable(boolean)" title="class or interface in java.awt">enable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableEvents(long)" title="class or interface in java.awt">enableEvents</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#enableInputMethods(boolean)" title="class or interface in java.awt">enableInputMethods</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBackground()" title="class or interface in java.awt">getBackground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getBounds()" title="class or interface in java.awt">getBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getColorModel()" title="class or interface in java.awt">getColorModel</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentListeners()" title="class or interface in java.awt">getComponentListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getComponentOrientation()" title="class or interface in java.awt">getComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getCursor()" title="class or interface in java.awt">getCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getDropTarget()" title="class or interface in java.awt">getDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusCycleRootAncestor()" title="class or interface in java.awt">getFocusCycleRootAncestor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusListeners()" title="class or interface in java.awt">getFocusListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFocusTraversalKeysEnabled()" title="class or interface in java.awt">getFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getFont()" title="class or interface in java.awt">getFont</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getForeground()" title="class or interface in java.awt">getForeground</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getGraphicsConfiguration()" title="class or interface in java.awt">getGraphicsConfiguration</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyBoundsListeners()" title="class or interface in java.awt">getHierarchyBoundsListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getHierarchyListeners()" title="class or interface in java.awt">getHierarchyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getIgnoreRepaint()" title="class or interface in java.awt">getIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputContext()" title="class or interface in java.awt">getInputContext</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodListeners()" title="class or interface in java.awt">getInputMethodListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getInputMethodRequests()" title="class or interface in java.awt">getInputMethodRequests</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getKeyListeners()" title="class or interface in java.awt">getKeyListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocale()" title="class or interface in java.awt">getLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocation()" title="class or interface in java.awt">getLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getLocationOnScreen()" title="class or interface in java.awt">getLocationOnScreen</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseListeners()" title="class or interface in java.awt">getMouseListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseMotionListeners()" title="class or interface in java.awt">getMouseMotionListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMousePosition()" title="class or interface in java.awt">getMousePosition</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getMouseWheelListeners()" title="class or interface in java.awt">getMouseWheelListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getName()" title="class or interface in java.awt">getName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getParent()" title="class or interface in java.awt">getParent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPeer()" title="class or interface in java.awt">getPeer</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners()" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getPropertyChangeListeners(java.lang.String)" title="class or interface in java.awt">getPropertyChangeListeners</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getSize()" title="class or interface in java.awt">getSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getToolkit()" title="class or interface in java.awt">getToolkit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#getTreeLock()" title="class or interface in java.awt">getTreeLock</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#gotFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">gotFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#handleEvent(java.awt.Event)" title="class or interface in java.awt">handleEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hasFocus()" title="class or interface in java.awt">hasFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#hide()" title="class or interface in java.awt">hide</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#inside(int, int)" title="class or interface in java.awt">inside</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isBackgroundSet()" title="class or interface in java.awt">isBackgroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isCursorSet()" title="class or interface in java.awt">isCursorSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isDisplayable()" title="class or interface in java.awt">isDisplayable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isEnabled()" title="class or interface in java.awt">isEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusable()" title="class or interface in java.awt">isFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusOwner()" title="class or interface in java.awt">isFocusOwner</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFocusTraversable()" title="class or interface in java.awt">isFocusTraversable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isFontSet()" title="class or interface in java.awt">isFontSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isForegroundSet()" title="class or interface in java.awt">isForegroundSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isLightweight()" title="class or interface in java.awt">isLightweight</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMaximumSizeSet()" title="class or interface in java.awt">isMaximumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isMinimumSizeSet()" title="class or interface in java.awt">isMinimumSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isPreferredSizeSet()" title="class or interface in java.awt">isPreferredSizeSet</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isShowing()" title="class or interface in java.awt">isShowing</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isValid()" title="class or interface in java.awt">isValid</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#isVisible()" title="class or interface in java.awt">isVisible</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyDown(java.awt.Event, int)" title="class or interface in java.awt">keyDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#keyUp(java.awt.Event, int)" title="class or interface in java.awt">keyUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list()" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintStream)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#list(java.io.PrintWriter)" title="class or interface in java.awt">list</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#location()" title="class or interface in java.awt">location</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#lostFocus(java.awt.Event, java.lang.Object)" title="class or interface in java.awt">lostFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDown(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDown</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseDrag(java.awt.Event, int, int)" title="class or interface in java.awt">mouseDrag</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseEnter(java.awt.Event, int, int)" title="class or interface in java.awt">mouseEnter</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseExit(java.awt.Event, int, int)" title="class or interface in java.awt">mouseExit</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseMove(java.awt.Event, int, int)" title="class or interface in java.awt">mouseMove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#mouseUp(java.awt.Event, int, int)" title="class or interface in java.awt">mouseUp</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#move(int, int)" title="class or interface in java.awt">move</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#nextFocus()" title="class or interface in java.awt">nextFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#paintAll(java.awt.Graphics)" title="class or interface in java.awt">paintAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#postEvent(java.awt.Event)" title="class or interface in java.awt">postEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver)" title="class or interface in java.awt">prepareImage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processComponentEvent(java.awt.event.ComponentEvent)" title="class or interface in java.awt">processComponentEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processFocusEvent(java.awt.event.FocusEvent)" title="class or interface in java.awt">processFocusEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyBoundsEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyBoundsEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processHierarchyEvent(java.awt.event.HierarchyEvent)" title="class or interface in java.awt">processHierarchyEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processInputMethodEvent(java.awt.event.InputMethodEvent)" title="class or interface in java.awt">processInputMethodEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#processMouseWheelEvent(java.awt.event.MouseWheelEvent)" title="class or interface in java.awt">processMouseWheelEvent</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#remove(java.awt.MenuComponent)" title="class or interface in java.awt">remove</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeComponentListener(java.awt.event.ComponentListener)" title="class or interface in java.awt">removeComponentListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeFocusListener(java.awt.event.FocusListener)" title="class or interface in java.awt">removeFocusListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)" title="class or interface in java.awt">removeHierarchyBoundsListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeHierarchyListener(java.awt.event.HierarchyListener)" title="class or interface in java.awt">removeHierarchyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeInputMethodListener(java.awt.event.InputMethodListener)" title="class or interface in java.awt">removeInputMethodListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeKeyListener(java.awt.event.KeyListener)" title="class or interface in java.awt">removeKeyListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseListener(java.awt.event.MouseListener)" title="class or interface in java.awt">removeMouseListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseMotionListener(java.awt.event.MouseMotionListener)" title="class or interface in java.awt">removeMouseMotionListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removeMouseWheelListener(java.awt.event.MouseWheelListener)" title="class or interface in java.awt">removeMouseWheelListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.awt">removePropertyChangeListener</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint()" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(int, int, int, int)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#repaint(long)" title="class or interface in java.awt">repaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(java.awt.Dimension)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#resize(int, int)" title="class or interface in java.awt">resize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(int, int, int, int)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setBounds(java.awt.Rectangle)" title="class or interface in java.awt">setBounds</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setComponentOrientation(java.awt.ComponentOrientation)" title="class or interface in java.awt">setComponentOrientation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setCursor(java.awt.Cursor)" title="class or interface in java.awt">setCursor</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setDropTarget(java.awt.dnd.DropTarget)" title="class or interface in java.awt">setDropTarget</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusable(boolean)" title="class or interface in java.awt">setFocusable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setFocusTraversalKeysEnabled(boolean)" title="class or interface in java.awt">setFocusTraversalKeysEnabled</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setIgnoreRepaint(boolean)" title="class or interface in java.awt">setIgnoreRepaint</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocale(java.util.Locale)" title="class or interface in java.awt">setLocale</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(int, int)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setLocation(java.awt.Point)" title="class or interface in java.awt">setLocation</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setName(java.lang.String)" title="class or interface in java.awt">setName</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(java.awt.Dimension)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#setSize(int, int)" title="class or interface in java.awt">setSize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show()" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#show(boolean)" title="class or interface in java.awt">show</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#size()" title="class or interface in java.awt">size</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#toString()" title="class or interface in java.awt">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocus()" title="class or interface in java.awt">transferFocus</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#transferFocusUpCycle()" title="class or interface in java.awt">transferFocusUpCycle</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="sharedInstance"><!-- --></A><H3>
    +sharedInstance</H3>
    +<PRE>
    +protected static <A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A> <B>sharedInstance</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxLightweightLabel()"><!-- --></A><H3>
    +mxLightweightLabel</H3>
    +<PRE>
    +public <B>mxLightweightLabel</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getSharedInstance()"><!-- --></A><H3>
    +getSharedInstance</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A> <B>getSharedInstance</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validate()"><!-- --></A><H3>
    +validate</H3>
    +<PRE>
    +public void <B>validate</B>()</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true#validate()" title="class or interface in java.awt">validate</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt">Container</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="revalidate()"><!-- --></A><H3>
    +revalidate</H3>
    +<PRE>
    +public void <B>revalidate</B>()</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#revalidate()" title="class or interface in javax.swing">revalidate</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="repaint(long, int, int, int, int)"><!-- --></A><H3>
    +repaint</H3>
    +<PRE>
    +public void <B>repaint</B>(long&nbsp;tm,
    +                    int&nbsp;x,
    +                    int&nbsp;y,
    +                    int&nbsp;width,
    +                    int&nbsp;height)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(long, int, int, int, int)" title="class or interface in javax.swing">repaint</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="repaint(java.awt.Rectangle)"><!-- --></A><H3>
    +repaint</H3>
    +<PRE>
    +public void <B>repaint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;r)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#repaint(java.awt.Rectangle)" title="class or interface in javax.swing">repaint</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +firePropertyChange</H3>
    +<PRE>
    +protected void <B>firePropertyChange</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;oldValue,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;newValue)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)" title="class or interface in java.awt">firePropertyChange</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firePropertyChange(java.lang.String, byte, byte)"><!-- --></A><H3>
    +firePropertyChange</H3>
    +<PRE>
    +public void <B>firePropertyChange</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                               byte&nbsp;oldValue,
    +                               byte&nbsp;newValue)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, byte, byte)" title="class or interface in java.awt">firePropertyChange</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firePropertyChange(java.lang.String, char, char)"><!-- --></A><H3>
    +firePropertyChange</H3>
    +<PRE>
    +public void <B>firePropertyChange</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                               char&nbsp;oldValue,
    +                               char&nbsp;newValue)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, char, char)" title="class or interface in javax.swing">firePropertyChange</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firePropertyChange(java.lang.String, short, short)"><!-- --></A><H3>
    +firePropertyChange</H3>
    +<PRE>
    +public void <B>firePropertyChange</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                               short&nbsp;oldValue,
    +                               short&nbsp;newValue)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, short, short)" title="class or interface in java.awt">firePropertyChange</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firePropertyChange(java.lang.String, int, int)"><!-- --></A><H3>
    +firePropertyChange</H3>
    +<PRE>
    +public void <B>firePropertyChange</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                               int&nbsp;oldValue,
    +                               int&nbsp;newValue)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, int, int)" title="class or interface in javax.swing">firePropertyChange</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firePropertyChange(java.lang.String, long, long)"><!-- --></A><H3>
    +firePropertyChange</H3>
    +<PRE>
    +public void <B>firePropertyChange</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                               long&nbsp;oldValue,
    +                               long&nbsp;newValue)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, long, long)" title="class or interface in java.awt">firePropertyChange</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firePropertyChange(java.lang.String, float, float)"><!-- --></A><H3>
    +firePropertyChange</H3>
    +<PRE>
    +public void <B>firePropertyChange</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                               float&nbsp;oldValue,
    +                               float&nbsp;newValue)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, float, float)" title="class or interface in java.awt">firePropertyChange</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firePropertyChange(java.lang.String, double, double)"><!-- --></A><H3>
    +firePropertyChange</H3>
    +<PRE>
    +public void <B>firePropertyChange</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                               double&nbsp;oldValue,
    +                               double&nbsp;newValue)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true#firePropertyChange(java.lang.String, double, double)" title="class or interface in java.awt">firePropertyChange</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firePropertyChange(java.lang.String, boolean, boolean)"><!-- --></A><H3>
    +firePropertyChange</H3>
    +<PRE>
    +public void <B>firePropertyChange</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                               boolean&nbsp;oldValue,
    +                               boolean&nbsp;newValue)</PRE>
    +<DL>
    +<DD>Overridden for performance reasons.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true#firePropertyChange(java.lang.String, boolean, boolean)" title="class or interface in javax.swing">firePropertyChange</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLightweightLabel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxLightweightLabel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLightweightLabel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_javax.swing.JLabel">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxLine.html b/java/docs/com/mxgraph/util/mxLine.html
    new file mode 100644
    index 000000000..c692029a9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxLine.html
    @@ -0,0 +1,438 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxLine (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxLine (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLine.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxLine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxLine</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">com.mxgraph.util.mxPoint</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxLine</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxLine</B><DT>extends <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a line with double precision coordinates.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.util.mxLine">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLine.html#endPoint">endPoint</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The end point of the line</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxPoint"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#x">x</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#y">y</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLine.html#mxLine(double, double, com.mxgraph.util.mxPoint)">mxLine</A></B>(double&nbsp;startPtX,
    +       double&nbsp;startPtY,
    +       <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;endPt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new line</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLine.html#mxLine(com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)">mxLine</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;startPt,
    +       <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;endPt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new line</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLine.html#getEndPoint()">getEndPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the end point of the line.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLine.html#ptLineDistSq(com.mxgraph.util.mxPoint)">ptLineDistSq</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the square of the shortest distance from a point to this line.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLine.html#ptSegDistSq(com.mxgraph.util.mxPoint)">ptSegDistSq</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the square of the shortest distance from a point to this 
    + line segment.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLine.html#setEndPoint(com.mxgraph.util.mxPoint)">setEndPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the end point of the rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxLine.html#setPoints(com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)">setPoints</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;startPt,
    +          <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;endPt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the start and end points.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxPoint"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#clone()">clone</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#getPoint()">getPoint</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#getX()">getX</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#getY()">getY</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#setX(double)">setX</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#setY(double)">setY</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#toString()">toString</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="endPoint"><!-- --></A><H3>
    +endPoint</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>endPoint</B></PRE>
    +<DL>
    +<DD>The end point of the line
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxLine(com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +mxLine</H3>
    +<PRE>
    +public <B>mxLine</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;startPt,
    +              <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;endPt)</PRE>
    +<DL>
    +<DD>Creates a new line
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxLine(double, double, com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +mxLine</H3>
    +<PRE>
    +public <B>mxLine</B>(double&nbsp;startPtX,
    +              double&nbsp;startPtY,
    +              <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;endPt)</PRE>
    +<DL>
    +<DD>Creates a new line
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getEndPoint()"><!-- --></A><H3>
    +getEndPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getEndPoint</B>()</PRE>
    +<DL>
    +<DD>Returns the end point of the line.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the end point of the line.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEndPoint(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setEndPoint</H3>
    +<PRE>
    +public void <B>setEndPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the end point of the rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - The new end point of the line</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPoints(com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setPoints</H3>
    +<PRE>
    +public void <B>setPoints</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;startPt,
    +                      <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;endPt)</PRE>
    +<DL>
    +<DD>Sets the start and end points.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="ptLineDistSq(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +ptLineDistSq</H3>
    +<PRE>
    +public double <B>ptLineDistSq</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</PRE>
    +<DL>
    +<DD>Returns the square of the shortest distance from a point to this line.
    + The line is considered extrapolated infinitely in both directions for 
    + the purposes of the calculation.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>pt</CODE> - the point whose distance is being measured
    +<DT><B>Returns:</B><DD>the square of the distance from the specified point to this line.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="ptSegDistSq(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +ptSegDistSq</H3>
    +<PRE>
    +public double <B>ptSegDistSq</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</PRE>
    +<DL>
    +<DD>Returns the square of the shortest distance from a point to this 
    + line segment.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>pt</CODE> - the point whose distance is being measured
    +<DT><B>Returns:</B><DD>the square of the distance from the specified point to this segment.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLine.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxLine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxPoint.html b/java/docs/com/mxgraph/util/mxPoint.html
    new file mode 100644
    index 000000000..1dd6f16a1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxPoint.html
    @@ -0,0 +1,560 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPoint (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPoint (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPoint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxPoint</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxPoint</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxPoint</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a 2-dimensional point with double precision coordinates.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.util.mxPoint">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#x">x</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the x- and y-coordinates of the point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#y">y</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the x- and y-coordinates of the point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#mxPoint()">mxPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new point at (0, 0).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#mxPoint(double, double)">mxPoint</A></B>(double&nbsp;x,
    +        double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new point at (x, y).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#mxPoint(com.mxgraph.util.mxPoint)">mxPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new point at the location of the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#mxPoint(java.awt.geom.Point2D)">mxPoint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Point2D.html?is-external=true" title="class or interface in java.awt.geom">Point2D</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new point at the location of the given point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#clone()">clone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new instance of the same point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#equals(java.lang.Object)">equals</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given object equals this rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#getPoint()">getPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the coordinates as a new point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#getX()">getX</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the x-coordinate of the point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#getY()">getY</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the x-coordinate of the point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#setX(double)">setX</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the x-coordinate of the point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#setY(double)">setY</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the x-coordinate of the point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxPoint.html#toString()">toString</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a <code>String</code> that represents the value
    + of this <code>mxPoint</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="x"><!-- --></A><H3>
    +x</H3>
    +<PRE>
    +protected double <B>x</B></PRE>
    +<DL>
    +<DD>Holds the x- and y-coordinates of the point. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="y"><!-- --></A><H3>
    +y</H3>
    +<PRE>
    +protected double <B>y</B></PRE>
    +<DL>
    +<DD>Holds the x- and y-coordinates of the point. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPoint()"><!-- --></A><H3>
    +mxPoint</H3>
    +<PRE>
    +public <B>mxPoint</B>()</PRE>
    +<DL>
    +<DD>Constructs a new point at (0, 0).
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxPoint(java.awt.geom.Point2D)"><!-- --></A><H3>
    +mxPoint</H3>
    +<PRE>
    +public <B>mxPoint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Point2D.html?is-external=true" title="class or interface in java.awt.geom">Point2D</A>&nbsp;point)</PRE>
    +<DL>
    +<DD>Constructs a new point at the location of the given point.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>point</CODE> - Point that specifies the location.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxPoint(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +mxPoint</H3>
    +<PRE>
    +public <B>mxPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</PRE>
    +<DL>
    +<DD>Constructs a new point at the location of the given point.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>point</CODE> - Point that specifies the location.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxPoint(double, double)"><!-- --></A><H3>
    +mxPoint</H3>
    +<PRE>
    +public <B>mxPoint</B>(double&nbsp;x,
    +               double&nbsp;y)</PRE>
    +<DL>
    +<DD>Constructs a new point at (x, y).
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - X-coordinate of the point to be created.<DD><CODE>y</CODE> - Y-coordinate of the point to be created.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getX()"><!-- --></A><H3>
    +getX</H3>
    +<PRE>
    +public double <B>getX</B>()</PRE>
    +<DL>
    +<DD>Returns the x-coordinate of the point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the x-coordinate.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setX(double)"><!-- --></A><H3>
    +setX</H3>
    +<PRE>
    +public void <B>setX</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the x-coordinate of the point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Double that specifies the new x-coordinate.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getY()"><!-- --></A><H3>
    +getY</H3>
    +<PRE>
    +public double <B>getY</B>()</PRE>
    +<DL>
    +<DD>Returns the x-coordinate of the point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the x-coordinate.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setY(double)"><!-- --></A><H3>
    +setY</H3>
    +<PRE>
    +public void <B>setY</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the x-coordinate of the point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Double that specifies the new x-coordinate.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPoint()"><!-- --></A><H3>
    +getPoint</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>getPoint</B>()</PRE>
    +<DL>
    +<DD>Returns the coordinates as a new point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a new point for the location.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
    +equals</H3>
    +<PRE>
    +public boolean <B>equals</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Returns true if the given object equals this rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clone()"><!-- --></A><H3>
    +clone</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>clone</B>()</PRE>
    +<DL>
    +<DD>Returns a new instance of the same point.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toString()"><!-- --></A><H3>
    +toString</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
    +<DL>
    +<DD>Returns a <code>String</code> that represents the value
    + of this <code>mxPoint</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>a string representation of this <code>mxPoint</code>.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPoint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxRectangle.html b/java/docs/com/mxgraph/util/mxRectangle.html
    new file mode 100644
    index 000000000..d58b17f00
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxRectangle.html
    @@ -0,0 +1,741 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxRectangle (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxRectangle (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRectangle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxRectangle</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">com.mxgraph.util.mxPoint</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxRectangle</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>, <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxRectangle</B><DT>extends <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a 2-dimensional rectangle with double precision coordinates.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.util.mxRectangle">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#height">height</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the width and the height.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#width">width</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the width and the height.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxPoint"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#x">x</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#y">y</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#mxRectangle()">mxRectangle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new rectangle at (0, 0) with the width and height set to 0.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#mxRectangle(double, double, double, double)">mxRectangle</A></B>(double&nbsp;x,
    +            double&nbsp;y,
    +            double&nbsp;width,
    +            double&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a rectangle using the given parameters.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#mxRectangle(com.mxgraph.util.mxRectangle)">mxRectangle</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a copy of the given rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#mxRectangle(java.awt.geom.Rectangle2D)">mxRectangle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a copy of the given rectangle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#add(com.mxgraph.util.mxRectangle)">add</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given rectangle to this rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#clone()">clone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new instance of the same rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#contains(double, double)">contains</A></B>(double&nbsp;x,
    +         double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given point is contained in the rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#equals(java.lang.Object)">equals</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given object equals this rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#getCenterX()">getCenterX</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the x-coordinate of the center.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#getCenterY()">getCenterY</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the y-coordinate of the center.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#getHeight()">getHeight</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the height of the rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#getRectangle()">getRectangle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds as a new rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#getWidth()">getWidth</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the width of the rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#grow(double)">grow</A></B>(double&nbsp;amount)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Grows the rectangle by the given amount, that is, this method subtracts
    + the given amount from the x- and y-coordinates and adds twice the amount
    + to the width and height.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#intersectLine(double, double, double, double)">intersectLine</A></B>(double&nbsp;x0,
    +              double&nbsp;y0,
    +              double&nbsp;x1,
    +              double&nbsp;y1)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point at which the specified point intersects the perimeter 
    + of this rectangle or null if there is no intersection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#setHeight(double)">setHeight</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the height of the rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#setRect(double, double, double, double)">setRect</A></B>(double&nbsp;x,
    +        double&nbsp;y,
    +        double&nbsp;w,
    +        double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets this rectangle to the specified values</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#setWidth(double)">setWidth</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the width of the rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxRectangle.html#toString()">toString</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the <code>String</code> representation of this
    + <code>mxRectangle</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxPoint"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#getPoint()">getPoint</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#getX()">getX</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#getY()">getY</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#setX(double)">setX</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#setY(double)">setY</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="width"><!-- --></A><H3>
    +width</H3>
    +<PRE>
    +protected double <B>width</B></PRE>
    +<DL>
    +<DD>Holds the width and the height. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="height"><!-- --></A><H3>
    +height</H3>
    +<PRE>
    +protected double <B>height</B></PRE>
    +<DL>
    +<DD>Holds the width and the height. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxRectangle()"><!-- --></A><H3>
    +mxRectangle</H3>
    +<PRE>
    +public <B>mxRectangle</B>()</PRE>
    +<DL>
    +<DD>Constructs a new rectangle at (0, 0) with the width and height set to 0.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxRectangle(java.awt.geom.Rectangle2D)"><!-- --></A><H3>
    +mxRectangle</H3>
    +<PRE>
    +public <B>mxRectangle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Constructs a copy of the given rectangle.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>rect</CODE> - Rectangle to construct a copy of.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxRectangle(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +mxRectangle</H3>
    +<PRE>
    +public <B>mxRectangle</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Constructs a copy of the given rectangle.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>rect</CODE> - Rectangle to construct a copy of.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxRectangle(double, double, double, double)"><!-- --></A><H3>
    +mxRectangle</H3>
    +<PRE>
    +public <B>mxRectangle</B>(double&nbsp;x,
    +                   double&nbsp;y,
    +                   double&nbsp;width,
    +                   double&nbsp;height)</PRE>
    +<DL>
    +<DD>Constructs a rectangle using the given parameters.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - X-coordinate of the new rectangle.<DD><CODE>y</CODE> - Y-coordinate of the new rectangle.<DD><CODE>width</CODE> - Width of the new rectangle.<DD><CODE>height</CODE> - Height of the new rectangle.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getWidth()"><!-- --></A><H3>
    +getWidth</H3>
    +<PRE>
    +public double <B>getWidth</B>()</PRE>
    +<DL>
    +<DD>Returns the width of the rectangle.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the width.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setWidth(double)"><!-- --></A><H3>
    +setWidth</H3>
    +<PRE>
    +public void <B>setWidth</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the width of the rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Double that specifies the new width.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHeight()"><!-- --></A><H3>
    +getHeight</H3>
    +<PRE>
    +public double <B>getHeight</B>()</PRE>
    +<DL>
    +<DD>Returns the height of the rectangle.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the height.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHeight(double)"><!-- --></A><H3>
    +setHeight</H3>
    +<PRE>
    +public void <B>setHeight</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the height of the rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Double that specifies the new height.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setRect(double, double, double, double)"><!-- --></A><H3>
    +setRect</H3>
    +<PRE>
    +public void <B>setRect</B>(double&nbsp;x,
    +                    double&nbsp;y,
    +                    double&nbsp;w,
    +                    double&nbsp;h)</PRE>
    +<DL>
    +<DD>Sets this rectangle to the specified values
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the new x-axis position<DD><CODE>y</CODE> - the new y-axis position<DD><CODE>w</CODE> - the new width of the rectangle<DD><CODE>h</CODE> - the new height of the rectangle</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="add(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +add</H3>
    +<PRE>
    +public void <B>add</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect)</PRE>
    +<DL>
    +<DD>Adds the given rectangle to this rectangle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCenterX()"><!-- --></A><H3>
    +getCenterX</H3>
    +<PRE>
    +public double <B>getCenterX</B>()</PRE>
    +<DL>
    +<DD>Returns the x-coordinate of the center.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the x-coordinate of the center.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCenterY()"><!-- --></A><H3>
    +getCenterY</H3>
    +<PRE>
    +public double <B>getCenterY</B>()</PRE>
    +<DL>
    +<DD>Returns the y-coordinate of the center.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the y-coordinate of the center.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="grow(double)"><!-- --></A><H3>
    +grow</H3>
    +<PRE>
    +public void <B>grow</B>(double&nbsp;amount)</PRE>
    +<DL>
    +<DD>Grows the rectangle by the given amount, that is, this method subtracts
    + the given amount from the x- and y-coordinates and adds twice the amount
    + to the width and height.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>amount</CODE> - Amount by which the rectangle should be grown.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="contains(double, double)"><!-- --></A><H3>
    +contains</H3>
    +<PRE>
    +public boolean <B>contains</B>(double&nbsp;x,
    +                        double&nbsp;y)</PRE>
    +<DL>
    +<DD>Returns true if the given point is contained in the rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - X-coordinate of the point.<DD><CODE>y</CODE> - Y-coordinate of the point.
    +<DT><B>Returns:</B><DD>Returns true if the point is contained in the rectangle.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectLine(double, double, double, double)"><!-- --></A><H3>
    +intersectLine</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>intersectLine</B>(double&nbsp;x0,
    +                             double&nbsp;y0,
    +                             double&nbsp;x1,
    +                             double&nbsp;y1)</PRE>
    +<DL>
    +<DD>Returns the point at which the specified point intersects the perimeter 
    + of this rectangle or null if there is no intersection.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x0</CODE> - the x co-ordinate of the first point of the line<DD><CODE>y0</CODE> - the y co-ordinate of the first point of the line<DD><CODE>x1</CODE> - the x co-ordinate of the second point of the line<DD><CODE>y1</CODE> - the y co-ordinate of the second point of the line
    +<DT><B>Returns:</B><DD>the point at which the line intersects this rectangle, or null
    +                        if there is no intersection</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRectangle()"><!-- --></A><H3>
    +getRectangle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getRectangle</B>()</PRE>
    +<DL>
    +<DD>Returns the bounds as a new rectangle.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a new rectangle for the bounds.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
    +equals</H3>
    +<PRE>
    +public boolean <B>equals</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Returns true if the given object equals this rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#equals(java.lang.Object)">equals</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clone()"><!-- --></A><H3>
    +clone</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>clone</B>()</PRE>
    +<DL>
    +<DD>Returns a new instance of the same rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toString()"><!-- --></A><H3>
    +toString</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
    +<DL>
    +<DD>Returns the <code>String</code> representation of this
    + <code>mxRectangle</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#toString()">toString</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>a <code>String</code> representing this
    + <code>mxRectangle</code>.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxRectangle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxResources.html b/java/docs/com/mxgraph/util/mxResources.html
    new file mode 100644
    index 000000000..3dbc2d986
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxResources.html
    @@ -0,0 +1,474 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxResources (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxResources (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxResources.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxResources.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxResources.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxResources</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxResources</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxResources</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util">ResourceBundle</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#bundles">bundles</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ordered list of the inserted resource bundles.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#mxResources()">mxResources</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#add(java.lang.String)">add</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;basename)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a resource bundle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#add(java.lang.String, java.util.Locale)">add</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;basename,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util">Locale</A>&nbsp;locale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a resource bundle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#get(java.lang.String)">get</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#get(java.lang.String, java.lang.String)">get</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#get(java.lang.String, java.lang.String[])">get</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;params)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for the specified resource key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#get(java.lang.String, java.lang.String[], java.lang.String)">get</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;params,
    +    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for the specified resource key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util">ResourceBundle</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#getBundles()">getBundles</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bundles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#getResource(java.lang.String)">getResource</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for <code>key</code> by searching the resource
    + bundles in inverse order or <code>null</code> if no value can be found
    + for <code>key</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxResources.html#setBundles(java.util.LinkedList)">setBundles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util">ResourceBundle</A>&gt;&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the bundles.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="bundles"><!-- --></A><H3>
    +bundles</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util">ResourceBundle</A>&gt; <B>bundles</B></PRE>
    +<DL>
    +<DD>Ordered list of the inserted resource bundles.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxResources()"><!-- --></A><H3>
    +mxResources</H3>
    +<PRE>
    +public <B>mxResources</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getBundles()"><!-- --></A><H3>
    +getBundles</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util">ResourceBundle</A>&gt; <B>getBundles</B>()</PRE>
    +<DL>
    +<DD>Returns the bundles.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the bundles.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBundles(java.util.LinkedList)"><!-- --></A><H3>
    +setBundles</H3>
    +<PRE>
    +public static void <B>setBundles</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util">ResourceBundle</A>&gt;&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the bundles.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - The bundles to set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="add(java.lang.String)"><!-- --></A><H3>
    +add</H3>
    +<PRE>
    +public static void <B>add</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;basename)</PRE>
    +<DL>
    +<DD>Adds a resource bundle. This may throw a MissingResourceException that
    + should be handled in the calling code.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>basename</CODE> - The basename of the resource bundle to add.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="add(java.lang.String, java.util.Locale)"><!-- --></A><H3>
    +add</H3>
    +<PRE>
    +public static void <B>add</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;basename,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util">Locale</A>&nbsp;locale)</PRE>
    +<DL>
    +<DD>Adds a resource bundle. This may throw a MissingResourceException that
    + should be handled in the calling code.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>basename</CODE> - The basename of the resource bundle to add.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="get(java.lang.String)"><!-- --></A><H3>
    +get</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>get</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="get(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +get</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>get</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="get(java.lang.String, java.lang.String[])"><!-- --></A><H3>
    +get</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>get</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;params)</PRE>
    +<DL>
    +<DD>Returns the value for the specified resource key.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="get(java.lang.String, java.lang.String[], java.lang.String)"><!-- --></A><H3>
    +get</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>get</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;params,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the value for the specified resource key.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getResource(java.lang.String)"><!-- --></A><H3>
    +getResource</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getResource</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD>Returns the value for <code>key</code> by searching the resource
    + bundles in inverse order or <code>null</code> if no value can be found
    + for <code>key</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxResources.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxResources.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxResources.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxSpline.html b/java/docs/com/mxgraph/util/mxSpline.html
    new file mode 100644
    index 000000000..fa023e0db
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxSpline.html
    @@ -0,0 +1,413 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxSpline (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSpline (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSpline.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxSpline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxSpline</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxSpline</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSpline</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#mxSpline(java.util.List)">mxSpline</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#checkValues()">checkValues</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used to check the correctness of this spline</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#getDx(double)">getDx</A></B>(double&nbsp;t)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#getDy(double)">getDy</A></B>(double&nbsp;t)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#getLength()">getLength</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#getPoint(double)">getPoint</A></B>(double&nbsp;t)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#getSplineX()">getSplineX</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#getSplineY()">getSplineY</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#init(double[], double[])">init</A></B>(double[]&nbsp;x,
    +     double[]&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline.html#Spline2D(double[], double[])">Spline2D</A></B>(double[]&nbsp;x,
    +         double[]&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new mxSpline.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSpline(java.util.List)"><!-- --></A><H3>
    +mxSpline</H3>
    +<PRE>
    +public <B>mxSpline</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="Spline2D(double[], double[])"><!-- --></A><H3>
    +Spline2D</H3>
    +<PRE>
    +public void <B>Spline2D</B>(double[]&nbsp;x,
    +                     double[]&nbsp;y)</PRE>
    +<DL>
    +<DD>Creates a new mxSpline.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - <DD><CODE>y</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="init(double[], double[])"><!-- --></A><H3>
    +init</H3>
    +<PRE>
    +protected void <B>init</B>(double[]&nbsp;x,
    +                    double[]&nbsp;y)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPoint(double)"><!-- --></A><H3>
    +getPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getPoint</B>(double&nbsp;t)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>t</CODE> - 0 <= t <= 1</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="checkValues()"><!-- --></A><H3>
    +checkValues</H3>
    +<PRE>
    +public boolean <B>checkValues</B>()</PRE>
    +<DL>
    +<DD>Used to check the correctness of this spline
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDx(double)"><!-- --></A><H3>
    +getDx</H3>
    +<PRE>
    +public double <B>getDx</B>(double&nbsp;t)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDy(double)"><!-- --></A><H3>
    +getDy</H3>
    +<PRE>
    +public double <B>getDy</B>(double&nbsp;t)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSplineX()"><!-- --></A><H3>
    +getSplineX</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A> <B>getSplineX</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSplineY()"><!-- --></A><H3>
    +getSplineY</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A> <B>getSplineY</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLength()"><!-- --></A><H3>
    +getLength</H3>
    +<PRE>
    +public double <B>getLength</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSpline.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxSpline.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpline.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxSpline1D.html b/java/docs/com/mxgraph/util/mxSpline1D.html
    new file mode 100644
    index 000000000..21b7a656d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxSpline1D.html
    @@ -0,0 +1,488 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxSpline1D (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSpline1D (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSpline1D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxSpline1D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpline1D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxSpline1D</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxSpline1D</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSpline1D</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +One dimension of a spline curve
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#a">a</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#b">b</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#c">c</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#d">d</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#len">len</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#pos1D">pos1D</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#mxSpline1D(double[], double[])">mxSpline1D</A></B>(double[]&nbsp;controlPointProportions,
    +           double[]&nbsp;positions1D)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new Spline.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#getDx(double)">getDx</A></B>(double&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the first derivation at x.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#getFastValue(double)">getFastValue</A></B>(double&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an interpolated value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#getValue(double)">getValue</A></B>(double&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an interpolated value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#setValues(double[], double[])">setValues</A></B>(double[]&nbsp;controlPointProportions,
    +          double[]&nbsp;positions1D)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set values for this Spline.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html#solve(double[][], double[])">solve</A></B>(double[][]&nbsp;A,
    +      double[]&nbsp;b)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Solves Ax=b and stores the solution in b.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="len"><!-- --></A><H3>
    +len</H3>
    +<PRE>
    +protected double[] <B>len</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="pos1D"><!-- --></A><H3>
    +pos1D</H3>
    +<PRE>
    +protected double[] <B>pos1D</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="a"><!-- --></A><H3>
    +a</H3>
    +<PRE>
    +protected double[] <B>a</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="b"><!-- --></A><H3>
    +b</H3>
    +<PRE>
    +protected double[] <B>b</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="c"><!-- --></A><H3>
    +c</H3>
    +<PRE>
    +protected double[] <B>c</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="d"><!-- --></A><H3>
    +d</H3>
    +<PRE>
    +protected double[] <B>d</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSpline1D(double[], double[])"><!-- --></A><H3>
    +mxSpline1D</H3>
    +<PRE>
    +public <B>mxSpline1D</B>(double[]&nbsp;controlPointProportions,
    +                  double[]&nbsp;positions1D)</PRE>
    +<DL>
    +<DD>Creates a new Spline.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>controlPointProportions</CODE> - the proportion along the curve, from 0->1
    +                        that each control point lies on<DD><CODE>positions1D</CODE> - the co-ordinate position in the current dimension that
    +                        each control point lies on</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setValues(double[], double[])"><!-- --></A><H3>
    +setValues</H3>
    +<PRE>
    +public void <B>setValues</B>(double[]&nbsp;controlPointProportions,
    +                      double[]&nbsp;positions1D)</PRE>
    +<DL>
    +<DD>Set values for this Spline.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>controlPointProportions</CODE> - the proportion along the curve, from 0->1
    +                        that each control point lies on<DD><CODE>positions1D</CODE> - the co-ordinate position in the current dimension that
    +                        each control point lies on</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValue(double)"><!-- --></A><H3>
    +getValue</H3>
    +<PRE>
    +public double <B>getValue</B>(double&nbsp;x)</PRE>
    +<DL>
    +<DD>Returns an interpolated value.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - 
    +<DT><B>Returns:</B><DD>the interpolated value</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFastValue(double)"><!-- --></A><H3>
    +getFastValue</H3>
    +<PRE>
    +public double <B>getFastValue</B>(double&nbsp;x)</PRE>
    +<DL>
    +<DD>Returns an interpolated value. To be used when a long sequence of values
    + are required in order, but ensure checkValues() is called beforehand to
    + ensure the boundary checks from getValue() are made
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - 
    +<DT><B>Returns:</B><DD>the interpolated value</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDx(double)"><!-- --></A><H3>
    +getDx</H3>
    +<PRE>
    +public double <B>getDx</B>(double&nbsp;x)</PRE>
    +<DL>
    +<DD>Returns the first derivation at x.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - 
    +<DT><B>Returns:</B><DD>the first derivation at x</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="solve(double[][], double[])"><!-- --></A><H3>
    +solve</H3>
    +<PRE>
    +public void <B>solve</B>(double[][]&nbsp;A,
    +                  double[]&nbsp;b)</PRE>
    +<DL>
    +<DD>Solves Ax=b and stores the solution in b.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSpline1D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxSpline1D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpline1D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxStyleUtils.html b/java/docs/com/mxgraph/util/mxStyleUtils.html
    new file mode 100644
    index 000000000..0e4bf26ac
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxStyleUtils.html
    @@ -0,0 +1,510 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxStyleUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxStyleUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStyleUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxStyleUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStyleUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxStyleUtils</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxStyleUtils</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxStyleUtils</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Contains various style helper methods for use with mxGraph.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#mxStyleUtils()">mxStyleUtils</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#addStylename(java.lang.String, java.lang.String)">addStylename</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;stylename)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified stylename to the given style if it does not already
    + contain the stylename.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#getStylename(java.lang.String)">getStylename</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stylename in a style of the form stylename[;key=value] or an
    + empty string if the given style does not contain a stylename.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#getStylenames(java.lang.String)">getStylenames</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stylenames in a style of the form stylename[;key=value] or an
    + empty array if the given style does not contain any stylenames.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#indexOfStylename(java.lang.String, java.lang.String)">indexOfStylename</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;stylename)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the given stylename in the given style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#removeAllStylenames(java.lang.String)">removeAllStylenames</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all stylenames from the given style and returns the updated
    + style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#removeStylename(java.lang.String, java.lang.String)">removeStylename</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;stylename)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all occurrences of the specified stylename in the given style and
    + returns the updated style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#setCellStyleFlags(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, int, java.lang.Boolean)">setCellStyleFlags</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                  int&nbsp;flag,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets or toggles the flag bit for the given key in the cell's styles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#setCellStyles(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, java.lang.String)">setCellStyles</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns the value for the given key in the styles of the given cells, or
    + removes the key from the styles if the value is null.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#setStyle(java.lang.String, java.lang.String, java.lang.String)">setStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds or removes the given key, value pair to the style and returns the
    + new style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html#setStyleFlag(java.lang.String, java.lang.String, int, java.lang.Boolean)">setStyleFlag</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +             int&nbsp;flag,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets or removes the given key from the specified style and returns the
    + new style.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxStyleUtils()"><!-- --></A><H3>
    +mxStyleUtils</H3>
    +<PRE>
    +public <B>mxStyleUtils</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getStylename(java.lang.String)"><!-- --></A><H3>
    +getStylename</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStylename</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Returns the stylename in a style of the form stylename[;key=value] or an
    + empty string if the given style does not contain a stylename.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String of the form stylename[;key=value].
    +<DT><B>Returns:</B><DD>Returns the stylename from the given formatted string.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStylenames(java.lang.String)"><!-- --></A><H3>
    +getStylenames</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>getStylenames</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Returns the stylenames in a style of the form stylename[;key=value] or an
    + empty array if the given style does not contain any stylenames.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String of the form stylename[;stylename][;key=value].
    +<DT><B>Returns:</B><DD>Returns the stylename from the given formatted string.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="indexOfStylename(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +indexOfStylename</H3>
    +<PRE>
    +public static int <B>indexOfStylename</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;stylename)</PRE>
    +<DL>
    +<DD>Returns the index of the given stylename in the given style. This returns
    + -1 if the given stylename does not occur (as a stylename) in the given
    + style, otherwise it returns the index of the first character.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addStylename(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +addStylename</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>addStylename</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;stylename)</PRE>
    +<DL>
    +<DD>Adds the specified stylename to the given style if it does not already
    + contain the stylename.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeStylename(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +removeStylename</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>removeStylename</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;stylename)</PRE>
    +<DL>
    +<DD>Removes all occurrences of the specified stylename in the given style and
    + returns the updated style. Trailing semicolons are preserved.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeAllStylenames(java.lang.String)"><!-- --></A><H3>
    +removeAllStylenames</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>removeAllStylenames</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Removes all stylenames from the given style and returns the updated
    + style.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyles(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, java.lang.String)"><!-- --></A><H3>
    +setCellStyles</H3>
    +<PRE>
    +public static void <B>setCellStyles</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Assigns the value for the given key in the styles of the given cells, or
    + removes the key from the styles if the value is null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model to execute the transaction in.<DD><CODE>cells</CODE> - Array of cells to be updated.<DD><CODE>key</CODE> - Key of the style to be changed.<DD><CODE>value</CODE> - New value for the given key.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyle(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +setStyle</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>setStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Adds or removes the given key, value pair to the style and returns the
    + new style. If value is null or zero length then the key is removed from
    + the style.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String of the form <code>stylename[;key=value]</code>.<DD><CODE>key</CODE> - Key of the style to be changed.<DD><CODE>value</CODE> - New value for the given key.
    +<DT><B>Returns:</B><DD>Returns the new style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyleFlags(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, int, java.lang.Boolean)"><!-- --></A><H3>
    +setCellStyleFlags</H3>
    +<PRE>
    +public static void <B>setCellStyleFlags</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                     int&nbsp;flag,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets or toggles the flag bit for the given key in the cell's styles. If
    + value is null then the flag is toggled.
    + 
    + <code>
    + mxUtils.setCellStyleFlags(graph.getModel(),
    +                        cells,
    +                        mxConstants.STYLE_FONTSTYLE,
    +                        mxConstants.FONT_BOLD, null);
    + </code>
    + 
    + Toggles the bold font style.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the cells.<DD><CODE>cells</CODE> - Array of cells to change the style for.<DD><CODE>key</CODE> - Key of the style to be changed.<DD><CODE>flag</CODE> - Integer for the bit to be changed.<DD><CODE>value</CODE> - Optional boolean value for the flag.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyleFlag(java.lang.String, java.lang.String, int, java.lang.Boolean)"><!-- --></A><H3>
    +setStyleFlag</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>setStyleFlag</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                  int&nbsp;flag,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets or removes the given key from the specified style and returns the
    + new style. If value is null then the flag is toggled.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String of the form stylename[;key=value].<DD><CODE>key</CODE> - Key of the style to be changed.<DD><CODE>flag</CODE> - Integer for the bit to be changed.<DD><CODE>value</CODE> - Optional boolean value for the given flag.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStyleUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxStyleUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStyleUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxUndoManager.html b/java/docs/com/mxgraph/util/mxUndoManager.html
    new file mode 100644
    index 000000000..e9a5dfb6a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxUndoManager.html
    @@ -0,0 +1,553 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxUndoManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxUndoManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUndoManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxUndoManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxUndoManager</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxUndoManager</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxUndoManager</B><DT>extends <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Implements an undo history.
    + 
    + This class fires the following events:
    + 
    + mxEvent.CLEAR fires after clear was executed. The event has no properties.
    + 
    + mxEvent.UNDO fires afer a significant edit was undone in undo. The
    + <code>edit</code> property contains the mxUndoableEdit that was undone.
    + 
    + mxEvent.REDO fires afer a significant edit was redone in redo. The
    + <code>edit</code> property contains the mxUndoableEdit that was redone.
    + 
    + mxEvent.ADD fires after an undoable edit was added to the history. The
    + <code>edit</code> property contains the mxUndoableEdit that was added.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#history">history</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List that contains the steps of the command history.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#indexOfNextAdd">indexOfNextAdd</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Index of the element to be added next.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#size">size</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maximum command history size.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#mxUndoManager()">mxUndoManager</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new undo manager with a default history size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#mxUndoManager(int)">mxUndoManager</A></B>(int&nbsp;size)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new undo manager for the specified size.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#canRedo()">canRedo</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a redo is possible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#canUndo()">canUndo</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if an undo is possible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#clear()">clear</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the command history.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#isEmpty()">isEmpty</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#redo()">redo</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Redoes the last change.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#trim()">trim</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all pending steps after indexOfNextAdd from the history,
    + invoking die on each edit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#undo()">undo</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Undoes the last change.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html#undoableEditHappened(com.mxgraph.util.mxUndoableEdit)">undoableEditHappened</A></B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>&nbsp;undoableEdit)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to be called to add new undoable edits to the history.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="size"><!-- --></A><H3>
    +size</H3>
    +<PRE>
    +protected int <B>size</B></PRE>
    +<DL>
    +<DD>Maximum command history size. 0 means unlimited history. Default is 100.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="history"><!-- --></A><H3>
    +history</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>&gt; <B>history</B></PRE>
    +<DL>
    +<DD>List that contains the steps of the command history.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="indexOfNextAdd"><!-- --></A><H3>
    +indexOfNextAdd</H3>
    +<PRE>
    +protected int <B>indexOfNextAdd</B></PRE>
    +<DL>
    +<DD>Index of the element to be added next.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxUndoManager()"><!-- --></A><H3>
    +mxUndoManager</H3>
    +<PRE>
    +public <B>mxUndoManager</B>()</PRE>
    +<DL>
    +<DD>Constructs a new undo manager with a default history size.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxUndoManager(int)"><!-- --></A><H3>
    +mxUndoManager</H3>
    +<PRE>
    +public <B>mxUndoManager</B>(int&nbsp;size)</PRE>
    +<DL>
    +<DD>Constructs a new undo manager for the specified size.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isEmpty()"><!-- --></A><H3>
    +isEmpty</H3>
    +<PRE>
    +public boolean <B>isEmpty</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clear()"><!-- --></A><H3>
    +clear</H3>
    +<PRE>
    +public void <B>clear</B>()</PRE>
    +<DL>
    +<DD>Clears the command history.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="canUndo()"><!-- --></A><H3>
    +canUndo</H3>
    +<PRE>
    +public boolean <B>canUndo</B>()</PRE>
    +<DL>
    +<DD>Returns true if an undo is possible.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="undo()"><!-- --></A><H3>
    +undo</H3>
    +<PRE>
    +public void <B>undo</B>()</PRE>
    +<DL>
    +<DD>Undoes the last change.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="canRedo()"><!-- --></A><H3>
    +canRedo</H3>
    +<PRE>
    +public boolean <B>canRedo</B>()</PRE>
    +<DL>
    +<DD>Returns true if a redo is possible.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="redo()"><!-- --></A><H3>
    +redo</H3>
    +<PRE>
    +public void <B>redo</B>()</PRE>
    +<DL>
    +<DD>Redoes the last change.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="undoableEditHappened(com.mxgraph.util.mxUndoableEdit)"><!-- --></A><H3>
    +undoableEditHappened</H3>
    +<PRE>
    +public void <B>undoableEditHappened</B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>&nbsp;undoableEdit)</PRE>
    +<DL>
    +<DD>Method to be called to add new undoable edits to the history.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="trim()"><!-- --></A><H3>
    +trim</H3>
    +<PRE>
    +protected void <B>trim</B>()</PRE>
    +<DL>
    +<DD>Removes all pending steps after indexOfNextAdd from the history,
    + invoking die on each edit. This is called from undoableEditHappened.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUndoManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxUndoManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxUndoableEdit.html b/java/docs/com/mxgraph/util/mxUndoableEdit.html
    new file mode 100644
    index 000000000..64200faf9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxUndoableEdit.html
    @@ -0,0 +1,620 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxUndoableEdit (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxUndoableEdit (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUndoableEdit.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxUndoableEdit.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoableEdit.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxUndoableEdit</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxUndoableEdit</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxUndoableEdit</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a 2-dimensional rectangle with double precision coordinates.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an undoable change.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#changes">changes</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the list of changes that make up this undoable edit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#redone">redone</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the state of the undoable edit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#significant">significant</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies this undoable edit is significant.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the source of the undoable edit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#undone">undone</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the state of the undoable edit.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#mxUndoableEdit(java.lang.Object)">mxUndoableEdit</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new undoable edit for the given source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#mxUndoableEdit(java.lang.Object, boolean)">mxUndoableEdit</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +               boolean&nbsp;significant)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new undoable edit for the given source.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#add(com.mxgraph.util.mxUndoableEdit.mxUndoableChange)">add</A></B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified change to this edit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#die()">die</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to free resources after the edit has been removed from the command
    + history.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#dispatch()">dispatch</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook to notify any listeners of the changes after an undo or redo
    + has been carried out.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#getChanges()">getChanges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#getSource()">getSource</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#isEmpty()">isEmpty</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the this edit contains no changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#isRedone()">isRedone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#isSignificant()">isSignificant</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#isUndone()">isUndone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#redo()">redo</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html#undo()">undo</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="source"><!-- --></A><H3>
    +source</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>source</B></PRE>
    +<DL>
    +<DD>Holds the source of the undoable edit.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="changes"><!-- --></A><H3>
    +changes</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt; <B>changes</B></PRE>
    +<DL>
    +<DD>Holds the list of changes that make up this undoable edit.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="significant"><!-- --></A><H3>
    +significant</H3>
    +<PRE>
    +protected boolean <B>significant</B></PRE>
    +<DL>
    +<DD>Specifies this undoable edit is significant. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="undone"><!-- --></A><H3>
    +undone</H3>
    +<PRE>
    +protected boolean <B>undone</B></PRE>
    +<DL>
    +<DD>Specifies the state of the undoable edit.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="redone"><!-- --></A><H3>
    +redone</H3>
    +<PRE>
    +protected boolean <B>redone</B></PRE>
    +<DL>
    +<DD>Specifies the state of the undoable edit.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxUndoableEdit(java.lang.Object)"><!-- --></A><H3>
    +mxUndoableEdit</H3>
    +<PRE>
    +public <B>mxUndoableEdit</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source)</PRE>
    +<DL>
    +<DD>Constructs a new undoable edit for the given source.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxUndoableEdit(java.lang.Object, boolean)"><!-- --></A><H3>
    +mxUndoableEdit</H3>
    +<PRE>
    +public <B>mxUndoableEdit</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                      boolean&nbsp;significant)</PRE>
    +<DL>
    +<DD>Constructs a new undoable edit for the given source.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="dispatch()"><!-- --></A><H3>
    +dispatch</H3>
    +<PRE>
    +public void <B>dispatch</B>()</PRE>
    +<DL>
    +<DD>Hook to notify any listeners of the changes after an undo or redo
    + has been carried out. This implementation is empty.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="die()"><!-- --></A><H3>
    +die</H3>
    +<PRE>
    +public void <B>die</B>()</PRE>
    +<DL>
    +<DD>Hook to free resources after the edit has been removed from the command
    + history. This implementation is empty.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSource()"><!-- --></A><H3>
    +getSource</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getSource</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the source</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChanges()"><!-- --></A><H3>
    +getChanges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt; <B>getChanges</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the changes</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSignificant()"><!-- --></A><H3>
    +isSignificant</H3>
    +<PRE>
    +public boolean <B>isSignificant</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the significant</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isUndone()"><!-- --></A><H3>
    +isUndone</H3>
    +<PRE>
    +public boolean <B>isUndone</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the undone</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isRedone()"><!-- --></A><H3>
    +isRedone</H3>
    +<PRE>
    +public boolean <B>isRedone</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the redone</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEmpty()"><!-- --></A><H3>
    +isEmpty</H3>
    +<PRE>
    +public boolean <B>isEmpty</B>()</PRE>
    +<DL>
    +<DD>Returns true if the this edit contains no changes.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="add(com.mxgraph.util.mxUndoableEdit.mxUndoableChange)"><!-- --></A><H3>
    +add</H3>
    +<PRE>
    +public void <B>add</B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change)</PRE>
    +<DL>
    +<DD>Adds the specified change to this edit. The change is an object that is
    + expected to either have an undo and redo, or an execute function.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="undo()"><!-- --></A><H3>
    +undo</H3>
    +<PRE>
    +public void <B>undo</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="redo()"><!-- --></A><H3>
    +redo</H3>
    +<PRE>
    +public void <B>redo</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUndoableEdit.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxUndoableEdit.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoableEdit.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html b/java/docs/com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html
    new file mode 100644
    index 000000000..a2ea538f7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html
    @@ -0,0 +1,219 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxUndoableEdit.mxUndoableChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxUndoableEdit.mxUndoableChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUndoableEdit.mxUndoableChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoableEdit.mxUndoableChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Interface mxUndoableEdit.mxUndoableChange</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>, <A HREF="../../../com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>, <A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A>, <A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>, <A HREF="../../../com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static interface <B>mxUndoableEdit.mxUndoableChange</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the requirements for an undoable change.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Undoes or redoes the change depending on its undo state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Undoes or redoes the change depending on its undo state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUndoableEdit.mxUndoableChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUndoableEdit.mxUndoableChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxUtils.html b/java/docs/com/mxgraph/util/mxUtils.html
    new file mode 100644
    index 000000000..cb3ab5531
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxUtils.html
    @@ -0,0 +1,2483 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxUtils</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxUtils</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxUtils</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Contains various helper methods for use with mxGraph.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#fontGraphics">fontGraphics</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Static Graphics used for Font Metrics.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#IS_MAC">IS_MAC</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the machine is a Mac.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#mxUtils()">mxUtils</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#arcToCurves(double, double, double, double, double, double, double, double, double)">arcToCurves</A></B>(double&nbsp;x0,
    +            double&nbsp;y0,
    +            double&nbsp;r1,
    +            double&nbsp;r2,
    +            double&nbsp;angle,
    +            double&nbsp;largeArcFlag,
    +            double&nbsp;sweepFlag,
    +            double&nbsp;x,
    +            double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: arcToCurves
    + 
    + Converts the given arc to a series of curves.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#clearRect(java.awt.Graphics2D, java.awt.Rectangle, java.awt.Color)">clearRect</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the given area of the specified graphics object with the given
    + color or makes the region transparent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#contains(java.lang.Object[], java.lang.Object)">contains</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;array,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given array contains the given object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createBufferedImage(int, int, java.awt.Color)">createBufferedImage</A></B>(int&nbsp;w,
    +                    int&nbsp;h,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a buffered image for the given parameters.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createDocument()">createDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createDocument</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createHtmlDocument()">createHtmlDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createHtmlDocument</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createHtmlDocument(java.util.Map, java.lang.String)">createHtmlDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new, empty DOM document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createHtmlDocument(java.util.Map, java.lang.String, double)">createHtmlDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                   double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new, empty DOM document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createHtmlDocument(java.util.Map, java.lang.String, double, int)">createHtmlDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                   double&nbsp;scale,
    +                   int&nbsp;width)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new, empty DOM document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createHtmlDocument(java.util.Map, java.lang.String, double, int, java.lang.String)">createHtmlDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                   double&nbsp;scale,
    +                   int&nbsp;width,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;head)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new, empty DOM document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/text/html/HTMLDocument.html?is-external=true" title="class or interface in javax.swing.text.html">HTMLDocument</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createHtmlDocumentObject(java.util.Map, double)">createHtmlDocumentObject</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                         double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new, empty DOM document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createSvgDocument(int, int)">createSvgDocument</A></B>(int&nbsp;width,
    +                  int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createSvgDocument(int, int)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createTable(org.w3c.dom.Document, java.lang.String, int, int, int, int, double, java.util.Map)">createTable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +            int&nbsp;x,
    +            int&nbsp;y,
    +            int&nbsp;w,
    +            int&nbsp;h,
    +            double&nbsp;scale,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a table for the given text using the given document to create the
    + DOM nodes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#createVmlDocument()">createVmlDocument</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createVmlDocument</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#drawImageClip(java.awt.Graphics, java.awt.image.BufferedImage, java.awt.image.ImageObserver)">drawImageClip</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A>&nbsp;image,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>&nbsp;observer)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the image inside the clip bounds to the given graphics object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#eval(java.lang.String)">eval</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;expression)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluates a Java expression as a class member using mxCodecRegistry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#fillClippedRect(java.awt.Graphics, int, int, int, int)">fillClippedRect</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g,
    +                int&nbsp;x,
    +                int&nbsp;y,
    +                int&nbsp;width,
    +                int&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#findNearestSegment(com.mxgraph.view.mxCellState, double, double)">findNearestSegment</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                   double&nbsp;x,
    +                   double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Finds the index of the nearest segment on the given cell state for the
    + specified coordinate pair.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#findNode(org.w3c.dom.Node, java.lang.String, java.lang.String)">findNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the first node where attr equals value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#firstCharAt(java.lang.String, int, int)">firstCharAt</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +            int&nbsp;inputChar,
    +            int&nbsp;fromIndex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find the first character matching the input character in the given
    + string where the character has no letter preceding it.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getBodyMarkup(java.lang.String, boolean)">getBodyMarkup</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;markup,
    +              boolean&nbsp;replaceLinefeeds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the body part of the given HTML markup.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getBoundingBox(com.mxgraph.util.mxRectangle, double)">getBoundingBox</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +               double&nbsp;rotation)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for the rotated rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getColor(java.util.Map, java.lang.String)">getColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as a color or null if no value is
    + defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getColor(java.util.Map, java.lang.String, java.awt.Color)">getColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as a color or the given default
    + value if no value is defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getDouble(java.util.Map, java.lang.String)">getDouble</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as a double or 0 if no value is
    + defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getDouble(java.util.Map, java.lang.String, double)">getDouble</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +          double&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as a double or the given default
    + value if no value is defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getFloat(java.util.Map, java.lang.String)">getFloat</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as a float or 0 if no value is
    + defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getFloat(java.util.Map, java.lang.String, float)">getFloat</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +         float&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as a float or the given default
    + value if no value is defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;float[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getFloatArray(java.util.Map, java.lang.String, float[])">getFloatArray</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +              float[]&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as a float array or the given default
    + value if no value is defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getFont(java.util.Map)">getFont</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getFont(java.util.Map, double)">getFont</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +        double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getFontMetrics(java.awt.Font)">getFontMetrics</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A>&nbsp;font)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the font metrics of the static font graphics instance</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getHexColorString(java.awt.Color)">getHexColorString</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a hex representation for the given color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getInt(java.util.Map, java.lang.String)">getInt</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as an int or 0 if no value is
    + defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getInt(java.util.Map, java.lang.String, int)">getInt</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +       int&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as an int or the given default
    + value if no value is defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getLabelPaintBounds(java.lang.String, java.util.Map, boolean, com.mxgraph.util.mxPoint, com.mxgraph.util.mxRectangle, double)">getLabelPaintBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                    boolean&nbsp;isHtml,
    +                    <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;offset,
    +                    <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;vertexBounds,
    +                    double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the paint bounds for the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getLabelSize(java.lang.String, java.util.Map, boolean, double)">getLabelSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +             boolean&nbsp;isHtml,
    +             double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size for the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getLabelSize(java.lang.String, java.util.Map, boolean, double, double)">getLabelSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +             boolean&nbsp;isHtml,
    +             double&nbsp;scale,
    +             double&nbsp;htmlWrapWidth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the size for the given label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getMd5Hash(java.lang.String)">getMd5Hash</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Md5 hash for the given text.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getPortConstraints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getPortConstraints</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                   <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                   boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an integer mask of the port constraints of the given map</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getPortConstraints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, int)">getPortConstraints</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                   <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                   boolean&nbsp;source,
    +                   int&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an integer mask of the port constraints of the given map</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getPrettyXml(org.w3c.dom.Node)">getPrettyXml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a pretty-printed XML string for the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getPrettyXml(org.w3c.dom.Node, java.lang.String, java.lang.String)">getPrettyXml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tab,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;indent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a pretty-printed XML string for the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getRotatedPoint(com.mxgraph.util.mxPoint, double, double)">getRotatedPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                double&nbsp;cos,
    +                double&nbsp;sin)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotates the given point by the given cos and sin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getRotatedPoint(com.mxgraph.util.mxPoint, double, double, com.mxgraph.util.mxPoint)">getRotatedPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                double&nbsp;cos,
    +                double&nbsp;sin,
    +                <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotates the given point by the given cos and sin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getScaledLabelBounds(double, double, com.mxgraph.util.mxRectangle, double, double, java.util.Map, double)">getScaledLabelBounds</A></B>(double&nbsp;x,
    +                     double&nbsp;y,
    +                     <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;size,
    +                     double&nbsp;outerWidth,
    +                     double&nbsp;outerHeight,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                     double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds for a label for the given location and size, taking
    + into account the alignment and spacing in the specified style, as well as
    + the width and height of the rectangle that contains the label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getSizeForHtml(java.lang.String, java.util.Map, double, double)">getSizeForHtml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;markup,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +               double&nbsp;scale,
    +               double&nbsp;wrapWidth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an mxRectangle with the size (width and height in pixels) of the
    + given HTML markup.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getSizeForString(java.lang.String, java.awt.Font, double)">getSizeForString</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A>&nbsp;font,
    +                 double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an <mxRectangle> with the size (width and height in pixels) of
    + the given string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getString(java.util.Map, java.lang.String)">getString</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as a string or null if no value
    + is defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getString(java.util.Map, java.lang.String, java.lang.String)">getString</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value for key in dictionary as a string or the given default
    + value if no value is defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getStylename(java.lang.String)">getStylename</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.getStylename(String)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getStylenames(java.lang.String)">getStylenames</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.getStylenames(String)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#getXml(org.w3c.dom.Node)">getXml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxXmlUtils.getXml(Node)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#hexString(java.awt.Color)">hexString</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#htmlEntities(java.lang.String)">htmlEntities</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts the ampersand, quote, prime, less-than and greater-than
    + characters to their corresponding HTML entities in the given string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#indexOf(java.lang.Object[], java.lang.Object)">indexOf</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;array,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the index of the given object in the given array of -1 if the
    + object is not contained in the array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#indexOfStylename(java.lang.String, java.lang.String)">indexOfStylename</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;stylename)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.indexOfStylename(String, String)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#intersection(double, double, double, double, double, double, double, double)">intersection</A></B>(double&nbsp;x0,
    +             double&nbsp;y0,
    +             double&nbsp;x1,
    +             double&nbsp;y1,
    +             double&nbsp;x2,
    +             double&nbsp;y2,
    +             double&nbsp;x3,
    +             double&nbsp;y3)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the intersection of two lines as an mxPoint.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#intersectsHotspot(com.mxgraph.view.mxCellState, int, int, double)">intersectsHotspot</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  int&nbsp;x,
    +                  int&nbsp;y,
    +                  double&nbsp;hotspot)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#intersectsHotspot(com.mxgraph.view.mxCellState, int, int, double, int, int)">intersectsHotspot</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  int&nbsp;x,
    +                  int&nbsp;y,
    +                  double&nbsp;hotspot,
    +                  int&nbsp;min,
    +                  int&nbsp;max)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given coordinate pair intersects the hotspot of the
    + given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#isNode(java.lang.Object, java.lang.String)">isNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;nodeName)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the user object is an XML node with the specified type
    + and and the optional attribute has the specified value or is not
    + specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#isNode(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)">isNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;nodeName,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attributeName,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attributeValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given value is an XML node with the node name and if
    + the optional attribute has the specified value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#isTrue(java.util.Map, java.lang.String)">isTrue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the dictionary contains true for the given key or false
    + if no value is defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#isTrue(java.util.Map, java.lang.String, boolean)">isTrue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +       boolean&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the dictionary contains true for the given key or the
    + given default value if no value is defined for the key.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#loadDocument(java.lang.String)">loadDocument</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;uri)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new DOM document for the given URI.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#loadImage(java.lang.String)">loadImage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;url)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loads an image from the local filesystem, a data URI or any other URL.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)">parseColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;colorString)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert a string representing a 24/32bit hex color value into a Color
    + object.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#parseXml(java.lang.String)">parseXml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;xml)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxXmlUtils.parseXml</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#readFile(java.lang.String)">readFile</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;filename)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the given filename into a string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#removeAllStylenames(java.lang.String)">removeAllStylenames</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.removeAllStylenames(String)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#reversePortConstraints(int)">reversePortConstraints</A></B>(int&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#selectSingleNode(org.w3c.dom.Document, java.lang.String)">selectSingleNode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;doc,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;expression)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a single node that matches the given XPath expression.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#setAntiAlias(java.awt.Graphics2D, boolean, boolean)">setAntiAlias</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g,
    +             boolean&nbsp;antiAlias,
    +             boolean&nbsp;textAntiAlias)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#setCellStyleFlags(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, int, java.lang.Boolean)">setCellStyleFlags</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                  int&nbsp;flag,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setCellStyleFlags(mxIGraphModel, Object[],String, int, Boolean)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#setCellStyles(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, java.lang.String)">setCellStyles</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setCellStyles(mxIGraphModel, Object[], String, String)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#setStyle(java.lang.String, java.lang.String, java.lang.String)">setStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setStyle(String, String, String)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#setStyleFlag(java.lang.String, java.lang.String, int, java.lang.Boolean)">setStyleFlag</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +             int&nbsp;flag,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setStyleFlag(String, String, int, Boolean)</code> (Jan 2012)</I></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#sortCells(java.util.Collection, boolean)">sortCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;cells,
    +          boolean&nbsp;ascending)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sorts the given cells according to the order in the cell hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#sortCells(java.lang.Object[], boolean)">sortCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          boolean&nbsp;ascending)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sorts the given cells according to the order in the cell hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#translatePoints(java.util.List, double, double)">translatePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +                double&nbsp;dx,
    +                double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new list of new points obtained by translating the points in
    + the given list by the given vector.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#wordWrap(java.lang.String, java.awt.FontMetrics, double)">wordWrap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A>&nbsp;metrics,
    +         double&nbsp;width)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the specified text in lines that fit within the specified
    + width when the specified font metrics are applied to the text</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxUtils.html#writeFile(java.lang.String, java.lang.String)">writeFile</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;contents,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;filename)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the given string into the given file.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="IS_MAC"><!-- --></A><H3>
    +IS_MAC</H3>
    +<PRE>
    +public static boolean <B>IS_MAC</B></PRE>
    +<DL>
    +<DD>True if the machine is a Mac.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fontGraphics"><!-- --></A><H3>
    +fontGraphics</H3>
    +<PRE>
    +protected static transient <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A> <B>fontGraphics</B></PRE>
    +<DL>
    +<DD>Static Graphics used for Font Metrics.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxUtils()"><!-- --></A><H3>
    +mxUtils</H3>
    +<PRE>
    +public <B>mxUtils</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getLabelSize(java.lang.String, java.util.Map, boolean, double)"><!-- --></A><H3>
    +getLabelSize</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getLabelSize</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                       boolean&nbsp;isHtml,
    +                                       double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Returns the size for the given label. If isHtml is true then any HTML
    + markup in the label is computed as HTML and all newlines inside the HTML
    + body are converted into linebreaks.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLabelSize(java.lang.String, java.util.Map, boolean, double, double)"><!-- --></A><H3>
    +getLabelSize</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getLabelSize</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                       boolean&nbsp;isHtml,
    +                                       double&nbsp;scale,
    +                                       double&nbsp;htmlWrapWidth)</PRE>
    +<DL>
    +<DD>Returns the size for the given label. If isHtml is true then any HTML
    + markup in the label is computed as HTML and all newlines inside the HTML
    + body are converted into linebreaks.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBodyMarkup(java.lang.String, boolean)"><!-- --></A><H3>
    +getBodyMarkup</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getBodyMarkup</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;markup,
    +                                   boolean&nbsp;replaceLinefeeds)</PRE>
    +<DL>
    +<DD>Returns the body part of the given HTML markup.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLabelPaintBounds(java.lang.String, java.util.Map, boolean, com.mxgraph.util.mxPoint, com.mxgraph.util.mxRectangle, double)"><!-- --></A><H3>
    +getLabelPaintBounds</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getLabelPaintBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +                                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                              boolean&nbsp;isHtml,
    +                                              <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;offset,
    +                                              <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;vertexBounds,
    +                                              double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Returns the paint bounds for the given label.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getScaledLabelBounds(double, double, com.mxgraph.util.mxRectangle, double, double, java.util.Map, double)"><!-- --></A><H3>
    +getScaledLabelBounds</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getScaledLabelBounds</B>(double&nbsp;x,
    +                                               double&nbsp;y,
    +                                               <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;size,
    +                                               double&nbsp;outerWidth,
    +                                               double&nbsp;outerHeight,
    +                                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                               double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Returns the bounds for a label for the given location and size, taking
    + into account the alignment and spacing in the specified style, as well as
    + the width and height of the rectangle that contains the label. (For edge
    + labels this width and height is 0.) The scale is used to scale the given
    + size and the spacings in the specified style.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFontMetrics(java.awt.Font)"><!-- --></A><H3>
    +getFontMetrics</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A> <B>getFontMetrics</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A>&nbsp;font)</PRE>
    +<DL>
    +<DD>Returns the font metrics of the static font graphics instance
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>font</CODE> - The font whose metrics are to be returned
    +<DT><B>Returns:</B><DD>the font metrics of the specified font</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSizeForString(java.lang.String, java.awt.Font, double)"><!-- --></A><H3>
    +getSizeForString</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getSizeForString</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A>&nbsp;font,
    +                                           double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Returns an <mxRectangle> with the size (width and height in pixels) of
    + the given string.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - String whose size should be returned.<DD><CODE>font</CODE> - Font to be used for the computation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="wordWrap(java.lang.String, java.awt.FontMetrics, double)"><!-- --></A><H3>
    +wordWrap</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>wordWrap</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/FontMetrics.html?is-external=true" title="class or interface in java.awt">FontMetrics</A>&nbsp;metrics,
    +                                double&nbsp;width)</PRE>
    +<DL>
    +<DD>Returns the specified text in lines that fit within the specified
    + width when the specified font metrics are applied to the text
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - the text to wrap<DD><CODE>metrics</CODE> - the font metrics to calculate the text size for<DD><CODE>width</CODE> - the width that the text must fit within
    +<DT><B>Returns:</B><DD>the input text split in lines that fit the specified width</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSizeForHtml(java.lang.String, java.util.Map, double, double)"><!-- --></A><H3>
    +getSizeForHtml</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getSizeForHtml</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;markup,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                         double&nbsp;scale,
    +                                         double&nbsp;wrapWidth)</PRE>
    +<DL>
    +<DD>Returns an mxRectangle with the size (width and height in pixels) of the
    + given HTML markup.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>markup</CODE> - HTML markup whose size should be returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="arcToCurves(double, double, double, double, double, double, double, double, double)"><!-- --></A><H3>
    +arcToCurves</H3>
    +<PRE>
    +public static double[] <B>arcToCurves</B>(double&nbsp;x0,
    +                                   double&nbsp;y0,
    +                                   double&nbsp;r1,
    +                                   double&nbsp;r2,
    +                                   double&nbsp;angle,
    +                                   double&nbsp;largeArcFlag,
    +                                   double&nbsp;sweepFlag,
    +                                   double&nbsp;x,
    +                                   double&nbsp;y)</PRE>
    +<DL>
    +<DD>Function: arcToCurves
    + 
    + Converts the given arc to a series of curves.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundingBox(com.mxgraph.util.mxRectangle, double)"><!-- --></A><H3>
    +getBoundingBox</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBoundingBox</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;rect,
    +                                         double&nbsp;rotation)</PRE>
    +<DL>
    +<DD>Returns the bounding box for the rotated rectangle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="firstCharAt(java.lang.String, int, int)"><!-- --></A><H3>
    +firstCharAt</H3>
    +<PRE>
    +public static int <B>firstCharAt</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                              int&nbsp;inputChar,
    +                              int&nbsp;fromIndex)</PRE>
    +<DL>
    +<DD>Find the first character matching the input character in the given
    + string where the character has no letter preceding it.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - the string to test for the presence of the input character<DD><CODE>inputChar</CODE> - the test character<DD><CODE>fromIndex</CODE> - the index position of the string to start from
    +<DT><B>Returns:</B><DD>the position of the first character matching the input character
    +                        in the given string where the character has no letter preceding it.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRotatedPoint(com.mxgraph.util.mxPoint, double, double)"><!-- --></A><H3>
    +getRotatedPoint</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getRotatedPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                                      double&nbsp;cos,
    +                                      double&nbsp;sin)</PRE>
    +<DL>
    +<DD>Rotates the given point by the given cos and sin.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="findNearestSegment(com.mxgraph.view.mxCellState, double, double)"><!-- --></A><H3>
    +findNearestSegment</H3>
    +<PRE>
    +public static int <B>findNearestSegment</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                     double&nbsp;x,
    +                                     double&nbsp;y)</PRE>
    +<DL>
    +<DD>Finds the index of the nearest segment on the given cell state for the
    + specified coordinate pair.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRotatedPoint(com.mxgraph.util.mxPoint, double, double, com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +getRotatedPoint</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getRotatedPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt,
    +                                      double&nbsp;cos,
    +                                      double&nbsp;sin,
    +                                      <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;c)</PRE>
    +<DL>
    +<DD>Rotates the given point by the given cos and sin.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPortConstraints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +getPortConstraints</H3>
    +<PRE>
    +public static int <B>getPortConstraints</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                                     <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                                     boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns an integer mask of the port constraints of the given map
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>terminal</CODE> - the cached cell state of the cell to determine the
    +                        port constraints for<DD><CODE>edge</CODE> - the edge connected to the constrained terminal<DD><CODE>source</CODE> - whether or not the edge specified is connected to the
    +                        terminal specified at its source end
    +<DT><B>Returns:</B><DD>the mask of port constraint directions</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPortConstraints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, int)"><!-- --></A><H3>
    +getPortConstraints</H3>
    +<PRE>
    +public static int <B>getPortConstraints</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                                     <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                                     boolean&nbsp;source,
    +                                     int&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns an integer mask of the port constraints of the given map
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>terminal</CODE> - the cached cell state of the cell to determine the
    +                        port constraints for<DD><CODE>edge</CODE> - the edge connected to the constrained terminal<DD><CODE>source</CODE> - whether or not the edge specified is connected to the
    +                        terminal specified at its source end<DD><CODE>defaultValue</CODE> - Default value to return if the key is undefined.
    +<DT><B>Returns:</B><DD>the mask of port constraint directions</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reversePortConstraints(int)"><!-- --></A><H3>
    +reversePortConstraints</H3>
    +<PRE>
    +public static int <B>reversePortConstraints</B>(int&nbsp;constraint)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawImageClip(java.awt.Graphics, java.awt.image.BufferedImage, java.awt.image.ImageObserver)"><!-- --></A><H3>
    +drawImageClip</H3>
    +<PRE>
    +public static void <B>drawImageClip</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A>&nbsp;image,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>&nbsp;observer)</PRE>
    +<DL>
    +<DD>Draws the image inside the clip bounds to the given graphics object.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="fillClippedRect(java.awt.Graphics, int, int, int, int)"><!-- --></A><H3>
    +fillClippedRect</H3>
    +<PRE>
    +public static void <B>fillClippedRect</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html?is-external=true" title="class or interface in java.awt">Graphics</A>&nbsp;g,
    +                                   int&nbsp;x,
    +                                   int&nbsp;y,
    +                                   int&nbsp;width,
    +                                   int&nbsp;height)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="translatePoints(java.util.List, double, double)"><!-- --></A><H3>
    +translatePoints</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>translatePoints</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;pts,
    +                                            double&nbsp;dx,
    +                                            double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Creates a new list of new points obtained by translating the points in
    + the given list by the given vector. Elements that are not mxPoints are
    + added to the result as-is.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersection(double, double, double, double, double, double, double, double)"><!-- --></A><H3>
    +intersection</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>intersection</B>(double&nbsp;x0,
    +                                   double&nbsp;y0,
    +                                   double&nbsp;x1,
    +                                   double&nbsp;y1,
    +                                   double&nbsp;x2,
    +                                   double&nbsp;y2,
    +                                   double&nbsp;x3,
    +                                   double&nbsp;y3)</PRE>
    +<DL>
    +<DD>Returns the intersection of two lines as an mxPoint.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x0</CODE> - X-coordinate of the first line's startpoint.<DD><CODE>y0</CODE> - Y-coordinate of the first line's startpoint.<DD><CODE>x1</CODE> - X-coordinate of the first line's endpoint.<DD><CODE>y1</CODE> - Y-coordinate of the first line's endpoint.<DD><CODE>x2</CODE> - X-coordinate of the second line's startpoint.<DD><CODE>y2</CODE> - Y-coordinate of the second line's startpoint.<DD><CODE>x3</CODE> - X-coordinate of the second line's endpoint.<DD><CODE>y3</CODE> - Y-coordinate of the second line's endpoint.
    +<DT><B>Returns:</B><DD>Returns the intersection between the two lines.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="sortCells(java.lang.Object[], boolean)"><!-- --></A><H3>
    +sortCells</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>sortCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                 boolean&nbsp;ascending)</PRE>
    +<DL>
    +<DD>Sorts the given cells according to the order in the cell hierarchy.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="sortCells(java.util.Collection, boolean)"><!-- --></A><H3>
    +sortCells</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>sortCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;cells,
    +                                           boolean&nbsp;ascending)</PRE>
    +<DL>
    +<DD>Sorts the given cells according to the order in the cell hierarchy.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="contains(java.lang.Object[], java.lang.Object)"><!-- --></A><H3>
    +contains</H3>
    +<PRE>
    +public static boolean <B>contains</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;array,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Returns true if the given array contains the given object.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="indexOf(java.lang.Object[], java.lang.Object)"><!-- --></A><H3>
    +indexOf</H3>
    +<PRE>
    +public static int <B>indexOf</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;array,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
    +<DL>
    +<DD>Returns the index of the given object in the given array of -1 if the
    + object is not contained in the array.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStylename(java.lang.String)"><!-- --></A><H3>
    +getStylename</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStylename</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.getStylename(String)</code> (Jan 2012)</I>
    +<P>
    +<DD>Returns the stylename in a style of the form stylename[;key=value] or an
    + empty string if the given style does not contain a stylename.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String of the form stylename[;key=value].
    +<DT><B>Returns:</B><DD>Returns the stylename from the given formatted string.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStylenames(java.lang.String)"><!-- --></A><H3>
    +getStylenames</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>getStylenames</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.getStylenames(String)</code> (Jan 2012)</I>
    +<P>
    +<DD>Returns the stylenames in a style of the form stylename[;key=value] or an
    + empty array if the given style does not contain any stylenames.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String of the form stylename[;stylename][;key=value].
    +<DT><B>Returns:</B><DD>Returns the stylename from the given formatted string.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="indexOfStylename(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +indexOfStylename</H3>
    +<PRE>
    +public static int <B>indexOfStylename</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;stylename)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.indexOfStylename(String, String)</code> (Jan 2012)</I>
    +<P>
    +<DD>Returns the index of the given stylename in the given style. This returns
    + -1 if the given stylename does not occur (as a stylename) in the given
    + style, otherwise it returns the index of the first character.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeAllStylenames(java.lang.String)"><!-- --></A><H3>
    +removeAllStylenames</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>removeAllStylenames</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.removeAllStylenames(String)</code> (Jan 2012)</I>
    +<P>
    +<DD>Removes all stylenames from the given style and returns the updated
    + style.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyles(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, java.lang.String)"><!-- --></A><H3>
    +setCellStyles</H3>
    +<PRE>
    +public static void <B>setCellStyles</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setCellStyles(mxIGraphModel, Object[], String, String)</code> (Jan 2012)</I>
    +<P>
    +<DD>Assigns the value for the given key in the styles of the given cells, or
    + removes the key from the styles if the value is null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model to execute the transaction in.<DD><CODE>cells</CODE> - Array of cells to be updated.<DD><CODE>key</CODE> - Key of the style to be changed.<DD><CODE>value</CODE> - New value for the given key.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyle(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +setStyle</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>setStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setStyle(String, String, String)</code> (Jan 2012)</I>
    +<P>
    +<DD>Adds or removes the given key, value pair to the style and returns the
    + new style. If value is null or zero length then the key is removed from
    + the style.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String of the form <code>stylename[;key=value]</code>.<DD><CODE>key</CODE> - Key of the style to be changed.<DD><CODE>value</CODE> - New value for the given key.
    +<DT><B>Returns:</B><DD>Returns the new style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyleFlags(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, int, java.lang.Boolean)"><!-- --></A><H3>
    +setCellStyleFlags</H3>
    +<PRE>
    +public static void <B>setCellStyleFlags</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                     int&nbsp;flag,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setCellStyleFlags(mxIGraphModel, Object[],String, int, Boolean)</code> (Jan 2012)</I>
    +<P>
    +<DD>Sets or toggles the flag bit for the given key in the cell's styles. If
    + value is null then the flag is toggled.
    + 
    + <code>
    + mxUtils.setCellStyleFlags(graph.getModel(),
    +                        cells,
    +                        mxConstants.STYLE_FONTSTYLE,
    +                        mxConstants.FONT_BOLD, null);
    + </code>
    + 
    + Toggles the bold font style.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the cells.<DD><CODE>cells</CODE> - Array of cells to change the style for.<DD><CODE>key</CODE> - Key of the style to be changed.<DD><CODE>flag</CODE> - Integer for the bit to be changed.<DD><CODE>value</CODE> - Optional boolean value for the flag.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyleFlag(java.lang.String, java.lang.String, int, java.lang.Boolean)"><!-- --></A><H3>
    +setStyleFlag</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>setStyleFlag</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                  int&nbsp;flag,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setStyleFlag(String, String, int, Boolean)</code> (Jan 2012)</I>
    +<P>
    +<DD>Sets or removes the given key from the specified style and returns the
    + new style. If value is null then the flag is toggled.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String of the form stylename[;key=value].<DD><CODE>key</CODE> - Key of the style to be changed.<DD><CODE>flag</CODE> - Integer for the bit to be changed.<DD><CODE>value</CODE> - Optional boolean value for the given flag.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectsHotspot(com.mxgraph.view.mxCellState, int, int, double)"><!-- --></A><H3>
    +intersectsHotspot</H3>
    +<PRE>
    +public static boolean <B>intersectsHotspot</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                        int&nbsp;x,
    +                                        int&nbsp;y,
    +                                        double&nbsp;hotspot)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersectsHotspot(com.mxgraph.view.mxCellState, int, int, double, int, int)"><!-- --></A><H3>
    +intersectsHotspot</H3>
    +<PRE>
    +public static boolean <B>intersectsHotspot</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                        int&nbsp;x,
    +                                        int&nbsp;y,
    +                                        double&nbsp;hotspot,
    +                                        int&nbsp;min,
    +                                        int&nbsp;max)</PRE>
    +<DL>
    +<DD>Returns true if the given coordinate pair intersects the hotspot of the
    + given state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTrue(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +isTrue</H3>
    +<PRE>
    +public static boolean <B>isTrue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD>Returns true if the dictionary contains true for the given key or false
    + if no value is defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.
    +<DT><B>Returns:</B><DD>Returns the boolean value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTrue(java.util.Map, java.lang.String, boolean)"><!-- --></A><H3>
    +isTrue</H3>
    +<PRE>
    +public static boolean <B>isTrue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                             boolean&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns true if the dictionary contains true for the given key or the
    + given default value if no value is defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.<DD><CODE>defaultValue</CODE> - Default value to return if the key is undefined.
    +<DT><B>Returns:</B><DD>Returns the boolean value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInt(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +getInt</H3>
    +<PRE>
    +public static int <B>getInt</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as an int or 0 if no value is
    + defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.
    +<DT><B>Returns:</B><DD>Returns the integer value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInt(java.util.Map, java.lang.String, int)"><!-- --></A><H3>
    +getInt</H3>
    +<PRE>
    +public static int <B>getInt</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                         int&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as an int or the given default
    + value if no value is defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.<DD><CODE>defaultValue</CODE> - Default value to return if the key is undefined.
    +<DT><B>Returns:</B><DD>Returns the integer value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFloat(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +getFloat</H3>
    +<PRE>
    +public static float <B>getFloat</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as a float or 0 if no value is
    + defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.
    +<DT><B>Returns:</B><DD>Returns the float value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFloat(java.util.Map, java.lang.String, float)"><!-- --></A><H3>
    +getFloat</H3>
    +<PRE>
    +public static float <B>getFloat</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                             float&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as a float or the given default
    + value if no value is defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.<DD><CODE>defaultValue</CODE> - Default value to return if the key is undefined.
    +<DT><B>Returns:</B><DD>Returns the float value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFloatArray(java.util.Map, java.lang.String, float[])"><!-- --></A><H3>
    +getFloatArray</H3>
    +<PRE>
    +public static float[] <B>getFloatArray</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                    float[]&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as a float array or the given default
    + value if no value is defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.<DD><CODE>defaultValue</CODE> - Default value to return if the key is undefined.
    +<DT><B>Returns:</B><DD>Returns the float array value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDouble(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +getDouble</H3>
    +<PRE>
    +public static double <B>getDouble</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as a double or 0 if no value is
    + defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.
    +<DT><B>Returns:</B><DD>Returns the double value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDouble(java.util.Map, java.lang.String, double)"><!-- --></A><H3>
    +getDouble</H3>
    +<PRE>
    +public static double <B>getDouble</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                               double&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as a double or the given default
    + value if no value is defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.<DD><CODE>defaultValue</CODE> - Default value to return if the key is undefined.
    +<DT><B>Returns:</B><DD>Returns the double value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getString(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +getString</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getString</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as a string or null if no value
    + is defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.
    +<DT><B>Returns:</B><DD>Returns the string value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getString(java.util.Map, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getString</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getString</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as a string or the given default
    + value if no value is defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.<DD><CODE>defaultValue</CODE> - Default value to return if the key is undefined.
    +<DT><B>Returns:</B><DD>Returns the string value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getColor(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +getColor</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as a color or null if no value is
    + defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.
    +<DT><B>Returns:</B><DD>Returns the color value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getColor(java.util.Map, java.lang.String, java.awt.Color)"><!-- --></A><H3>
    +getColor</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>getColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;dict,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Returns the value for key in dictionary as a color or the given default
    + value if no value is defined for the key.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>dict</CODE> - Dictionary that contains the key, value pairs.<DD><CODE>key</CODE> - Key whose value should be returned.<DD><CODE>defaultValue</CODE> - Default value to return if the key is undefined.
    +<DT><B>Returns:</B><DD>Returns the color value for key in dict.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFont(java.util.Map)"><!-- --></A><H3>
    +getFont</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A> <B>getFont</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFont(java.util.Map, double)"><!-- --></A><H3>
    +getFont</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Font.html?is-external=true" title="class or interface in java.awt">Font</A> <B>getFont</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                           double&nbsp;scale)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="hexString(java.awt.Color)"><!-- --></A><H3>
    +hexString</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>hexString</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseColor(java.lang.String)"><!-- --></A><H3>
    +parseColor</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>parseColor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;colorString)
    +                        throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/NumberFormatException.html?is-external=true" title="class or interface in java.lang">NumberFormatException</A></PRE>
    +<DL>
    +<DD>Convert a string representing a 24/32bit hex color value into a Color
    + object. The following color names are also supported: white, black, red,
    + green, blue, orange, yellow, pink, turquoise, gray and none (null).
    + Examples of possible hex color values are: #C3D9FF, #6482B9 and #774400,
    + but note that you do not include the "#" in the string passed in
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>colorString</CODE> - the 24/32bit hex string value (ARGB)
    +<DT><B>Returns:</B><DD>java.awt.Color (24bit RGB on JDK 1.1, 24/32bit ARGB on JDK1.2)
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/NumberFormatException.html?is-external=true" title="class or interface in java.lang">NumberFormatException</A></CODE> - if the specified string cannot be interpreted as a
    +                hexidecimal integer</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getHexColorString(java.awt.Color)"><!-- --></A><H3>
    +getHexColorString</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getHexColorString</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</PRE>
    +<DL>
    +<DD>Returns a hex representation for the given color.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>color</CODE> - Color to return the hex string for.
    +<DT><B>Returns:</B><DD>Returns a hex string for the given color.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="readFile(java.lang.String)"><!-- --></A><H3>
    +readFile</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>readFile</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;filename)
    +                       throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Reads the given filename into a string.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>filename</CODE> - Name of the file to be read.
    +<DT><B>Returns:</B><DD>Returns a string representing the file contents.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="writeFile(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +writeFile</H3>
    +<PRE>
    +public static void <B>writeFile</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;contents,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;filename)
    +                      throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Writes the given string into the given file.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>contents</CODE> - String representing the file contents.<DD><CODE>filename</CODE> - Name of the file to be written.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMd5Hash(java.lang.String)"><!-- --></A><H3>
    +getMd5Hash</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getMd5Hash</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</PRE>
    +<DL>
    +<DD>Returns the Md5 hash for the given text.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - String whose Md5 hash should be returned.
    +<DT><B>Returns:</B><DD>Returns the Md5 hash for the given text.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isNode(java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +isNode</H3>
    +<PRE>
    +public static boolean <B>isNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;nodeName)</PRE>
    +<DL>
    +<DD>Returns true if the user object is an XML node with the specified type
    + and and the optional attribute has the specified value or is not
    + specified.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Object that should be examined as a node.<DD><CODE>nodeName</CODE> - String that specifies the node name.
    +<DT><B>Returns:</B><DD>Returns true if the node name of the user object is equal to the
    +         given type.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isNode(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +isNode</H3>
    +<PRE>
    +public static boolean <B>isNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;nodeName,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attributeName,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attributeValue)</PRE>
    +<DL>
    +<DD>Returns true if the given value is an XML node with the node name and if
    + the optional attribute has the specified value.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Object that should be examined as a node.<DD><CODE>nodeName</CODE> - String that specifies the node name.<DD><CODE>attributeName</CODE> - Optional attribute name to check.<DD><CODE>attributeValue</CODE> - Optional attribute value to check.
    +<DT><B>Returns:</B><DD>Returns true if the value matches the given conditions.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAntiAlias(java.awt.Graphics2D, boolean, boolean)"><!-- --></A><H3>
    +setAntiAlias</H3>
    +<PRE>
    +public static void <B>setAntiAlias</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g,
    +                                boolean&nbsp;antiAlias,
    +                                boolean&nbsp;textAntiAlias)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>g</CODE> - <DD><CODE>antiAlias</CODE> - <DD><CODE>textAntiAlias</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clearRect(java.awt.Graphics2D, java.awt.Rectangle, java.awt.Color)"><!-- --></A><H3>
    +clearRect</H3>
    +<PRE>
    +public static void <B>clearRect</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A>&nbsp;g,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background)</PRE>
    +<DL>
    +<DD>Clears the given area of the specified graphics object with the given
    + color or makes the region transparent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createBufferedImage(int, int, java.awt.Color)"><!-- --></A><H3>
    +createBufferedImage</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>createBufferedImage</B>(int&nbsp;w,
    +                                                int&nbsp;h,
    +                                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background)
    +                                         throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/OutOfMemoryError.html?is-external=true" title="class or interface in java.lang">OutOfMemoryError</A></PRE>
    +<DL>
    +<DD>Creates a buffered image for the given parameters. If there is not enough
    + memory to create the image then a OutOfMemoryError is thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/OutOfMemoryError.html?is-external=true" title="class or interface in java.lang">OutOfMemoryError</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="loadImage(java.lang.String)"><!-- --></A><H3>
    +loadImage</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>loadImage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;url)</PRE>
    +<DL>
    +<DD>Loads an image from the local filesystem, a data URI or any other URL.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTable(org.w3c.dom.Document, java.lang.String, int, int, int, int, double, java.util.Map)"><!-- --></A><H3>
    +createTable</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A> <B>createTable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                  int&nbsp;x,
    +                                  int&nbsp;y,
    +                                  int&nbsp;w,
    +                                  int&nbsp;h,
    +                                  double&nbsp;scale,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Creates a table for the given text using the given document to create the
    + DOM nodes. Returns the outermost table node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createDocument()"><!-- --></A><H3>
    +createDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createDocument</B>()</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createDocument</code> (Jan 2012)</I>
    +<P>
    +<DD>Returns a new, empty DOM document.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a new DOM document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createSvgDocument(int, int)"><!-- --></A><H3>
    +createSvgDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createSvgDocument</B>(int&nbsp;width,
    +                                         int&nbsp;height)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createSvgDocument(int, int)</code> (Jan 2012)</I>
    +<P>
    +<DD>Creates a new SVG document for the given width and height.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createVmlDocument()"><!-- --></A><H3>
    +createVmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createVmlDocument</B>()</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createVmlDocument</code> (Jan 2012)</I>
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocument()"><!-- --></A><H3>
    +createHtmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>createHtmlDocument</B>()</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createHtmlDocument</code> (Jan 2012)</I>
    +<P>
    +<DD>Returns a document with a HTML node containing a HEAD and BODY node.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocument(java.util.Map, java.lang.String)"><!-- --></A><H3>
    +createHtmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>createHtmlDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</PRE>
    +<DL>
    +<DD>Returns a new, empty DOM document.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a new DOM document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocument(java.util.Map, java.lang.String, double)"><!-- --></A><H3>
    +createHtmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>createHtmlDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                        double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Returns a new, empty DOM document.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a new DOM document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocument(java.util.Map, java.lang.String, double, int)"><!-- --></A><H3>
    +createHtmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>createHtmlDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                        double&nbsp;scale,
    +                                        int&nbsp;width)</PRE>
    +<DL>
    +<DD>Returns a new, empty DOM document.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a new DOM document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocument(java.util.Map, java.lang.String, double, int, java.lang.String)"><!-- --></A><H3>
    +createHtmlDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>createHtmlDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                        double&nbsp;scale,
    +                                        int&nbsp;width,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;head)</PRE>
    +<DL>
    +<DD>Returns a new, empty DOM document. The head argument can be used to
    + provide an optional HEAD section without the HEAD tags as follows:
    + 
    + <pre>
    + mxUtils.createHtmlDocument(style,  text, 1, 0, "<style type=\"text/css\">.classname { color:red; }</style>")
    + </pre>
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a new DOM document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createHtmlDocumentObject(java.util.Map, double)"><!-- --></A><H3>
    +createHtmlDocumentObject</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/text/html/HTMLDocument.html?is-external=true" title="class or interface in javax.swing.text.html">HTMLDocument</A> <B>createHtmlDocumentObject</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style,
    +                                                    double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Returns a new, empty DOM document.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns a new DOM document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="loadDocument(java.lang.String)"><!-- --></A><H3>
    +loadDocument</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>loadDocument</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;uri)</PRE>
    +<DL>
    +<DD>Returns a new DOM document for the given URI.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>uri</CODE> - URI to parse into the document.
    +<DT><B>Returns:</B><DD>Returns a new DOM document for the given URI.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseXml(java.lang.String)"><!-- --></A><H3>
    +parseXml</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>parseXml</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;xml)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxXmlUtils.parseXml</code> (Jan 2012)</I>
    +<P>
    +<DD>Returns a new document for the given XML string.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>xml</CODE> - String that represents the XML data.
    +<DT><B>Returns:</B><DD>Returns a new XML document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="eval(java.lang.String)"><!-- --></A><H3>
    +eval</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>eval</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;expression)</PRE>
    +<DL>
    +<DD>Evaluates a Java expression as a class member using mxCodecRegistry. The
    + range of supported expressions is limited to static class members such as
    + mxEdgeStyle.ElbowConnector.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="findNode(org.w3c.dom.Node, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +findNode</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>findNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Returns the first node where attr equals value. This implementation does
    + not use XPath.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectSingleNode(org.w3c.dom.Document, java.lang.String)"><!-- --></A><H3>
    +selectSingleNode</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A> <B>selectSingleNode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;doc,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;expression)</PRE>
    +<DL>
    +<DD>Returns a single node that matches the given XPath expression.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>doc</CODE> - Document that contains the nodes.<DD><CODE>expression</CODE> - XPath expression to be matched.
    +<DT><B>Returns:</B><DD>Returns a single node matching the given expression.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="htmlEntities(java.lang.String)"><!-- --></A><H3>
    +htmlEntities</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>htmlEntities</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text)</PRE>
    +<DL>
    +<DD>Converts the ampersand, quote, prime, less-than and greater-than
    + characters to their corresponding HTML entities in the given string.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getXml(org.w3c.dom.Node)"><!-- --></A><H3>
    +getXml</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getXml</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxXmlUtils.getXml(Node)</code> (Jan 2012)</I>
    +<P>
    +<DD>Returns a string that represents the given node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - Node to return the XML for.
    +<DT><B>Returns:</B><DD>Returns an XML string.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrettyXml(org.w3c.dom.Node)"><!-- --></A><H3>
    +getPrettyXml</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getPrettyXml</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Returns a pretty-printed XML string for the given node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - Node to return the XML for.
    +<DT><B>Returns:</B><DD>Returns a formatted XML string.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrettyXml(org.w3c.dom.Node, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +getPrettyXml</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getPrettyXml</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;tab,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;indent)</PRE>
    +<DL>
    +<DD>Returns a pretty-printed XML string for the given node. Note that this
    + string should only be used for humans to read (eg. debug output) but not
    + for further processing as it does not use built-in mechanisms.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - Node to return the XML for.<DD><CODE>tab</CODE> - String to be used for indentation of inner nodes.<DD><CODE>indent</CODE> - Current indentation for the node.
    +<DT><B>Returns:</B><DD>Returns a formatted XML string.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/mxXmlUtils.html b/java/docs/com/mxgraph/util/mxXmlUtils.html
    new file mode 100644
    index 000000000..060f7832d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/mxXmlUtils.html
    @@ -0,0 +1,282 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxXmlUtils (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxXmlUtils (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxXmlUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxXmlUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxXmlUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util</FONT>
    +<BR>
    +Class mxXmlUtils</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.mxXmlUtils</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxXmlUtils</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Contains various XML helper methods for use with mxGraph.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxXmlUtils.html#mxXmlUtils()">mxXmlUtils</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxXmlUtils.html#getXml(org.w3c.dom.Node)">getXml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a string that represents the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/util/mxXmlUtils.html#parseXml(java.lang.String)">parseXml</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;xml)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new document for the given XML string.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxXmlUtils()"><!-- --></A><H3>
    +mxXmlUtils</H3>
    +<PRE>
    +public <B>mxXmlUtils</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="parseXml(java.lang.String)"><!-- --></A><H3>
    +parseXml</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A> <B>parseXml</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;xml)</PRE>
    +<DL>
    +<DD>Returns a new document for the given XML string.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>xml</CODE> - String that represents the XML data.
    +<DT><B>Returns:</B><DD>Returns a new XML document.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getXml(org.w3c.dom.Node)"><!-- --></A><H3>
    +getXml</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getXml</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html?is-external=true" title="class or interface in org.w3c.dom">Node</A>&nbsp;node)</PRE>
    +<DL>
    +<DD>Returns a string that represents the given node.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>node</CODE> - Node to return the XML for.
    +<DT><B>Returns:</B><DD>Returns an XML string.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxXmlUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/mxXmlUtils.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxXmlUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/package-frame.html b/java/docs/com/mxgraph/util/package-frame.html
    new file mode 100644
    index 000000000..21ca72116
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/package-frame.html
    @@ -0,0 +1,89 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.util (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/util/package-summary.html" target="classFrame">com.mxgraph.util</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util" target="classFrame"><I>mxEventSource.mxIEventListener</I></A>
    +<BR>
    +<A HREF="mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util" target="classFrame"><I>mxUndoableEdit.mxUndoableChange</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxBase64.html" title="class in com.mxgraph.util" target="classFrame">mxBase64</A>
    +<BR>
    +<A HREF="mxCellRenderer.html" title="class in com.mxgraph.util" target="classFrame">mxCellRenderer</A>
    +<BR>
    +<A HREF="mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util" target="classFrame">mxCellRenderer.CanvasFactory</A>
    +<BR>
    +<A HREF="mxConstants.html" title="class in com.mxgraph.util" target="classFrame">mxConstants</A>
    +<BR>
    +<A HREF="mxCurve.html" title="class in com.mxgraph.util" target="classFrame">mxCurve</A>
    +<BR>
    +<A HREF="mxDomUtils.html" title="class in com.mxgraph.util" target="classFrame">mxDomUtils</A>
    +<BR>
    +<A HREF="mxEvent.html" title="class in com.mxgraph.util" target="classFrame">mxEvent</A>
    +<BR>
    +<A HREF="mxEventObject.html" title="class in com.mxgraph.util" target="classFrame">mxEventObject</A>
    +<BR>
    +<A HREF="mxEventSource.html" title="class in com.mxgraph.util" target="classFrame">mxEventSource</A>
    +<BR>
    +<A HREF="mxImage.html" title="class in com.mxgraph.util" target="classFrame">mxImage</A>
    +<BR>
    +<A HREF="mxImageBundle.html" title="class in com.mxgraph.util" target="classFrame">mxImageBundle</A>
    +<BR>
    +<A HREF="mxLightweightLabel.html" title="class in com.mxgraph.util" target="classFrame">mxLightweightLabel</A>
    +<BR>
    +<A HREF="mxLine.html" title="class in com.mxgraph.util" target="classFrame">mxLine</A>
    +<BR>
    +<A HREF="mxPoint.html" title="class in com.mxgraph.util" target="classFrame">mxPoint</A>
    +<BR>
    +<A HREF="mxRectangle.html" title="class in com.mxgraph.util" target="classFrame">mxRectangle</A>
    +<BR>
    +<A HREF="mxResources.html" title="class in com.mxgraph.util" target="classFrame">mxResources</A>
    +<BR>
    +<A HREF="mxSpline.html" title="class in com.mxgraph.util" target="classFrame">mxSpline</A>
    +<BR>
    +<A HREF="mxSpline1D.html" title="class in com.mxgraph.util" target="classFrame">mxSpline1D</A>
    +<BR>
    +<A HREF="mxStyleUtils.html" title="class in com.mxgraph.util" target="classFrame">mxStyleUtils</A>
    +<BR>
    +<A HREF="mxUndoableEdit.html" title="class in com.mxgraph.util" target="classFrame">mxUndoableEdit</A>
    +<BR>
    +<A HREF="mxUndoManager.html" title="class in com.mxgraph.util" target="classFrame">mxUndoManager</A>
    +<BR>
    +<A HREF="mxUtils.html" title="class in com.mxgraph.util" target="classFrame">mxUtils</A>
    +<BR>
    +<A HREF="mxXmlUtils.html" title="class in com.mxgraph.util" target="classFrame">mxXmlUtils</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/package-summary.html b/java/docs/com/mxgraph/util/package-summary.html
    new file mode 100644
    index 000000000..164aff15d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/package-summary.html
    @@ -0,0 +1,290 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.util (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.util (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/view/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/png/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.util
    +</H2>
    +This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></B></TD>
    +<TD>Defines the requirements for an object that listens to an event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></B></TD>
    +<TD>Defines the requirements for an undoable change.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A></B></TD>
    +<TD>A very fast and memory efficient class to encode and decode to and from BASE64 in full accordance
    + with RFC 2045.<br><br>
    + On Windows XP sp1 with 1.4.2_04 and later ;), this encoder and decoder is about 10 times faster
    + on small arrays (10 - 1000 bytes) and 2-3 times as fast on larger arrays (10000 - 1000000 bytes)
    + compared to <code>sun.misc.Encoder()/Decoder()</code>.<br><br>
    +
    + On byte arrays the encoder is about 20% faster than Jakarta Commons Base64 Codec for encode and
    + about 50% faster for decoding large arrays.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util">mxCellRenderer</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A></B></TD>
    +<TD>Contains all global constants.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util">mxDomUtils</A></B></TD>
    +<TD>Contains various DOM API helper methods for use with mxGraph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A></B></TD>
    +<TD>Contains all global constants.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A></B></TD>
    +<TD>Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TD>
    +<TD>Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A></B></TD>
    +<TD>Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A></B></TD>
    +<TD>Maps from keys to base64 encoded images or file locations.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A></B></TD>
    +<TD>Implements a line with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></B></TD>
    +<TD>Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></B></TD>
    +<TD>Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A></B></TD>
    +<TD>One dimension of a spline curve</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A></B></TD>
    +<TD>Contains various style helper methods for use with mxGraph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A></B></TD>
    +<TD>Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A></B></TD>
    +<TD>Implements an undo history.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A></B></TD>
    +<TD>Contains various helper methods for use with mxGraph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util">mxXmlUtils</A></B></TD>
    +<TD>Contains various XML helper methods for use with mxGraph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.util Description
    +</H2>
    +
    +<P>
    +This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/view/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/png/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/package-tree.html b/java/docs/com/mxgraph/util/package-tree.html
    new file mode 100644
    index 000000000..1d3640890
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/package-tree.html
    @@ -0,0 +1,176 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.util Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.util Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/view/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/png/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.util
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt"><B>Component</B></A> (implements java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt"><B>Container</B></A><UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing"><B>JComponent</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true" title="class or interface in javax.swing"><B>JLabel</B></A> (implements javax.accessibility.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/accessibility/Accessible.html?is-external=true" title="class or interface in javax.accessibility">Accessible</A>, javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true" title="class or interface in javax.swing">SwingConstants</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util"><B>mxLightweightLabel</B></A></UL>
    +</UL>
    +</UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util"><B>mxBase64</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util"><B>mxCellRenderer</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util"><B>mxCellRenderer.CanvasFactory</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><B>mxConstants</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util"><B>mxCurve</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><B>mxDomUtils</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util"><B>mxEvent</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util"><B>mxEventObject</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>mxEventSource</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util"><B>mxUndoManager</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util"><B>mxImage</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util"><B>mxImageBundle</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><B>mxPoint</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util"><B>mxLine</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><B>mxRectangle</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util"><B>mxResources</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util"><B>mxSpline</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util"><B>mxSpline1D</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util"><B>mxStyleUtils</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util"><B>mxUndoableEdit</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util"><B>mxUtils</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util"><B>mxXmlUtils</B></A></UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><B>mxEventSource.mxIEventListener</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><B>mxUndoableEdit.mxUndoableChange</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/swing/view/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/util/png/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/package-use.html b/java/docs/com/mxgraph/util/package-use.html
    new file mode 100644
    index 000000000..1aee87011
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/package-use.html
    @@ -0,0 +1,632 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.util (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.util (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.util</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.gd"><B>com.mxgraph.io.gd</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.model"><B>com.mxgraph.model</B></A></TD>
    +<TD>This package contains the classes that define a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.sharing"><B>com.mxgraph.sharing</B></A></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.canvas"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.canvas"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.gd"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.io.gd"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.layout"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.layout"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/model/package-summary.html">com.mxgraph.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.html#com.mxgraph.model"><B>mxEventSource</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.mxIEventListener.html#com.mxgraph.model"><B>mxEventSource.mxIEventListener</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that listens to an event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.model"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.model"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxUndoableEdit.html#com.mxgraph.model"><B>mxUndoableEdit</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxUndoableEdit.mxUndoableChange.html#com.mxgraph.model"><B>mxUndoableEdit.mxUndoableChange</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an undoable change.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.reader"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.reader"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxCurve.html#com.mxgraph.shape"><B>mxCurve</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxLine.html#com.mxgraph.shape"><B>mxLine</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a line with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.shape"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.shape"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.sharing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.html#com.mxgraph.sharing"><B>mxEventSource</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxUndoableEdit.html#com.mxgraph.sharing"><B>mxUndoableEdit</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.html#com.mxgraph.swing"><B>mxEventSource</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.mxIEventListener.html#com.mxgraph.swing"><B>mxEventSource.mxIEventListener</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that listens to an event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.swing"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.swing"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.html#com.mxgraph.swing.handler"><B>mxEventSource</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.mxIEventListener.html#com.mxgraph.swing.handler"><B>mxEventSource.mxIEventListener</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that listens to an event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.swing.handler"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.swing.handler"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.html#com.mxgraph.swing.util"><B>mxEventSource</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.swing.util"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.swing.util"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.swing.view"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.swing.view"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxCellRenderer.CanvasFactory.html#com.mxgraph.util"><B>mxCellRenderer.CanvasFactory</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventObject.html#com.mxgraph.util"><B>mxEventObject</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.html#com.mxgraph.util"><B>mxEventSource</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.mxIEventListener.html#com.mxgraph.util"><B>mxEventSource.mxIEventListener</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that listens to an event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxLightweightLabel.html#com.mxgraph.util"><B>mxLightweightLabel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxLine.html#com.mxgraph.util"><B>mxLine</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a line with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.util"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.util"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxSpline1D.html#com.mxgraph.util"><B>mxSpline1D</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;One dimension of a spline curve</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxUndoableEdit.html#com.mxgraph.util"><B>mxUndoableEdit</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxUndoableEdit.mxUndoableChange.html#com.mxgraph.util"><B>mxUndoableEdit.mxUndoableChange</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an undoable change.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> used by <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.html#com.mxgraph.view"><B>mxEventSource</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Base class for objects that dispatch named events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxEventSource.mxIEventListener.html#com.mxgraph.view"><B>mxEventSource.mxIEventListener</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an object that listens to an event source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxImageBundle.html#com.mxgraph.view"><B>mxImageBundle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from keys to base64 encoded images or file locations.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxPoint.html#com.mxgraph.view"><B>mxPoint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional point with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxRectangle.html#com.mxgraph.view"><B>mxRectangle</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxUndoableEdit.html#com.mxgraph.view"><B>mxUndoableEdit</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a 2-dimensional rectangle with double precision coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/util/class-use/mxUndoableEdit.mxUndoableChange.html#com.mxgraph.view"><B>mxUndoableEdit.mxUndoableChange</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an undoable change.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/util/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.Gray.html b/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.Gray.html
    new file mode 100644
    index 000000000..7010fe883
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.Gray.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.png.mxPngEncodeParam.Gray (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.png.mxPngEncodeParam.Gray (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngEncodeParam.Gray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.Gray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.png.mxPngEncodeParam.Gray</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.png.mxPngEncodeParam.Gray
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngEncodeParam.Gray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.Gray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.Palette.html b/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.Palette.html
    new file mode 100644
    index 000000000..307ede549
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.Palette.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.png.mxPngEncodeParam.Palette (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.png.mxPngEncodeParam.Palette (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngEncodeParam.Palette.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.Palette.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.png.mxPngEncodeParam.Palette</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.png.mxPngEncodeParam.Palette
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngEncodeParam.Palette.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.Palette.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.RGB.html b/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.RGB.html
    new file mode 100644
    index 000000000..a8e25c1ed
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.RGB.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.png.mxPngEncodeParam.RGB (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.png.mxPngEncodeParam.RGB (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngEncodeParam.RGB.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.RGB.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.png.mxPngEncodeParam.RGB</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.png.mxPngEncodeParam.RGB
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngEncodeParam.RGB.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.RGB.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.html b/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.html
    new file mode 100644
    index 000000000..24d758d7a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/class-use/mxPngEncodeParam.html
    @@ -0,0 +1,255 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.png.mxPngEncodeParam (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.png.mxPngEncodeParam (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngEncodeParam.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.png.mxPngEncodeParam</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.png"><B>com.mxgraph.util.png</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.png"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A> in <A HREF="../../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A> in <A HREF="../../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A> that return <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPngEncodeParam.</B><B><A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getDefaultEncodeParam(java.awt.image.RenderedImage)">getDefaultEncodeParam</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/RenderedImage.html?is-external=true" title="class or interface in java.awt.image">RenderedImage</A>&nbsp;im)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an instance of <code>PNGEncodeParam.Palette</code>,
    + <code>PNGEncodeParam.Gray</code>, or
    + <code>PNGEncodeParam.RGB</code> appropriate for encoding
    + the given image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPngImageEncoder.</B><B><A HREF="../../../../../com/mxgraph/util/png/mxPngImageEncoder.html#getParam()">getParam</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxPngImageEncoder.</B><B><A HREF="../../../../../com/mxgraph/util/png/mxPngImageEncoder.html#setParam(com.mxgraph.util.png.mxPngEncodeParam)">setParam</A></B>(<A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>&nbsp;param)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/png/mxPngImageEncoder.html#mxPngImageEncoder(java.io.OutputStream, com.mxgraph.util.png.mxPngEncodeParam)">mxPngImageEncoder</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;output,
    +                  <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>&nbsp;param)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngEncodeParam.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/class-use/mxPngImageEncoder.html b/java/docs/com/mxgraph/util/png/class-use/mxPngImageEncoder.html
    new file mode 100644
    index 000000000..f10b6820d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/class-use/mxPngImageEncoder.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.png.mxPngImageEncoder (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.png.mxPngImageEncoder (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngImageEncoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngImageEncoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.png.mxPngImageEncoder</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.png.mxPngImageEncoder
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngImageEncoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngImageEncoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/class-use/mxPngSuggestedPaletteEntry.html b/java/docs/com/mxgraph/util/png/class-use/mxPngSuggestedPaletteEntry.html
    new file mode 100644
    index 000000000..e7708f9bd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/class-use/mxPngSuggestedPaletteEntry.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.png.mxPngSuggestedPaletteEntry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.png.mxPngSuggestedPaletteEntry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngSuggestedPaletteEntry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngSuggestedPaletteEntry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.png.mxPngSuggestedPaletteEntry</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.png"><B>com.mxgraph.util.png</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.png"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A> in <A HREF="../../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxPngEncodeParam.</B><B><A HREF="../../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSuggestedPalette(com.mxgraph.util.png.mxPngSuggestedPaletteEntry[])">setSuggestedPalette</A></B>(<A HREF="../../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>[]&nbsp;palette)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the suggested palette information to be stored with this
    + image.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngSuggestedPaletteEntry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngSuggestedPaletteEntry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/class-use/mxPngTextDecoder.html b/java/docs/com/mxgraph/util/png/class-use/mxPngTextDecoder.html
    new file mode 100644
    index 000000000..e7f8de99c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/class-use/mxPngTextDecoder.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.png.mxPngTextDecoder (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.png.mxPngTextDecoder (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngTextDecoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngTextDecoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.png.mxPngTextDecoder</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.png.mxPngTextDecoder
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/png//class-usemxPngTextDecoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngTextDecoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/mxPngEncodeParam.Gray.html b/java/docs/com/mxgraph/util/png/mxPngEncodeParam.Gray.html
    new file mode 100644
    index 000000000..05f4137b3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/mxPngEncodeParam.Gray.html
    @@ -0,0 +1,584 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPngEncodeParam.Gray (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPngEncodeParam.Gray (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngEncodeParam.Gray.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngEncodeParam.Gray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.Gray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">NESTED</A>&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.png</FONT>
    +<BR>
    +Class mxPngEncodeParam.Gray</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">com.mxgraph.util.png.mxPngEncodeParam</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.png.mxPngEncodeParam.Gray</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxPngEncodeParam.Gray</B><DT>extends <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#bitDepth">bitDepth</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#bitDepthSet">bitDepthSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_ABSOLUTE">INTENT_ABSOLUTE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_PERCEPTUAL">INTENT_PERCEPTUAL</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_RELATIVE">INTENT_RELATIVE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_SATURATION">INTENT_SATURATION</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_AVERAGE">PNG_FILTER_AVERAGE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_NONE">PNG_FILTER_NONE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_PAETH">PNG_FILTER_PAETH</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_SUB">PNG_FILTER_SUB</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_UP">PNG_FILTER_UP</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#mxPngEncodeParam.Gray()">mxPngEncodeParam.Gray</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an instance of <code>PNGEncodeParam.Gray</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#getBackgroundGray()">getBackgroundGray</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the suggested gray level of the background.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#getBitShift()">getBitShift</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the desired bit shift for a grayscale image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#getTransparentGray()">getTransparentGray</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the gray value to be used to denote transparency.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#isBackgroundSet()">isBackgroundSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'bKGD' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#isBitDepthSet()">isBitDepthSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the bit depth has been set.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#isBitShiftSet()">isBitShiftSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the bit shift has been set.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#setBackgroundGray(int)">setBackgroundGray</A></B>(int&nbsp;gray)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the suggested gray level of the background.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#setBitDepth(int)">setBitDepth</A></B>(int&nbsp;bitDepth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the desired bit depth for a grayscale image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#setBitShift(int)">setBitShift</A></B>(int&nbsp;bitShift)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the desired bit shift for a grayscale image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#setTransparentGray(int)">setTransparentGray</A></B>(int&nbsp;transparentGray)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the gray value to be used to denote transparency.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#unsetBackground()">unsetBackground</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'bKGD' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html#unsetBitShift()">unsetBitShift</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the setting of the bit shift of a grayscale image.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#addPrivateChunk(java.lang.String, byte[])">addPrivateChunk</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#filterRow(byte[], byte[], byte[][], int, int)">filterRow</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getBitDepth()">getBitDepth</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getChromaticity()">getChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getCompressedText()">getCompressedText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getDefaultEncodeParam(java.awt.image.RenderedImage)">getDefaultEncodeParam</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getGamma()">getGamma</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getICCProfileData()">getICCProfileData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getInterlacing()">getInterlacing</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getModificationTime()">getModificationTime</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getNumPrivateChunks()">getNumPrivateChunks</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPaletteHistogram()">getPaletteHistogram</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPhysicalDimension()">getPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkData(int)">getPrivateChunkData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkType(int)">getPrivateChunkType</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getSignificantBits()">getSignificantBits</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getSRGBIntent()">getSRGBIntent</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getText()">getText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isChromaticitySet()">isChromaticitySet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isCompressedTextSet()">isCompressedTextSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isGammaSet()">isGammaSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isICCProfileDataSet()">isICCProfileDataSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isModificationTimeSet()">isModificationTimeSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isPaletteHistogramSet()">isPaletteHistogramSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isPhysicalDimensionSet()">isPhysicalDimensionSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSignificantBitsSet()">isSignificantBitsSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSRGBIntentSet()">isSRGBIntentSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSuggestedPaletteSet()">isSuggestedPaletteSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isTextSet()">isTextSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isTransparencySet()">isTransparencySet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#paethPredictor(int, int, int)">paethPredictor</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#removeAllPrivateChunks()">removeAllPrivateChunks</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#removeUnsafeToCopyPrivateChunks()">removeUnsafeToCopyPrivateChunks</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float[])">setChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float, float, float, float, float, float, float, float)">setChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setCompressedText(java.lang.String[])">setCompressedText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setGamma(float)">setGamma</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setICCProfileData(byte[])">setICCProfileData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setInterlacing(boolean)">setInterlacing</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setModificationTime(java.util.Date)">setModificationTime</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPaletteHistogram(int[])">setPaletteHistogram</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int[])">setPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int, int, int)">setPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSignificantBits(int[])">setSignificantBits</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSRGBIntent(int)">setSRGBIntent</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSuggestedPalette(com.mxgraph.util.png.mxPngSuggestedPaletteEntry[])">setSuggestedPalette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setText(java.lang.String[])">setText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetBitDepth()">unsetBitDepth</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetChromaticity()">unsetChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetCompressedText()">unsetCompressedText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetGamma()">unsetGamma</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetICCProfileData()">unsetICCProfileData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetModificationTime()">unsetModificationTime</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetPaletteHistogram()">unsetPaletteHistogram</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetPhysicalDimension()">unsetPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSignificantBits()">unsetSignificantBits</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSRGBIntent()">unsetSRGBIntent</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSuggestedPalette()">unsetSuggestedPalette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetText()">unsetText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetTransparency()">unsetTransparency</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPngEncodeParam.Gray()"><!-- --></A><H3>
    +mxPngEncodeParam.Gray</H3>
    +<PRE>
    +public <B>mxPngEncodeParam.Gray</B>()</PRE>
    +<DL>
    +<DD>Constructs an instance of <code>PNGEncodeParam.Gray</code>.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="unsetBackground()"><!-- --></A><H3>
    +unsetBackground</H3>
    +<PRE>
    +public void <B>unsetBackground</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'bKGD' chunk from being output.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetBackground()">unsetBackground</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isBackgroundSet()"><!-- --></A><H3>
    +isBackgroundSet</H3>
    +<PRE>
    +public boolean <B>isBackgroundSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'bKGD' chunk will be output.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isBackgroundSet()">isBackgroundSet</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBitDepth(int)"><!-- --></A><H3>
    +setBitDepth</H3>
    +<PRE>
    +public void <B>setBitDepth</B>(int&nbsp;bitDepth)</PRE>
    +<DL>
    +<DD>Sets the desired bit depth for a grayscale image.  The bit
    + depth must be one of 1, 2, 4, 8, or 16.
    +
    + <p> When encoding a source image of a greater bit depth,
    + pixel values will be clamped to the smaller range after
    + shifting by the value given by <code>getBitShift()</code>.
    + When encoding a source image of a smaller bit depth, pixel
    + values will be shifted and left-filled with zeroes.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setBitDepth(int)">setBitDepth</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBackgroundGray(int)"><!-- --></A><H3>
    +setBackgroundGray</H3>
    +<PRE>
    +public void <B>setBackgroundGray</B>(int&nbsp;gray)</PRE>
    +<DL>
    +<DD>Sets the suggested gray level of the background.
    +
    + <p> The 'bKGD' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBackgroundGray()"><!-- --></A><H3>
    +getBackgroundGray</H3>
    +<PRE>
    +public int <B>getBackgroundGray</B>()</PRE>
    +<DL>
    +<DD>Returns the suggested gray level of the background.
    +
    + <p> If the background gray level has not previously been
    + set, or has been unset, an
    + <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the background gray level
    +        is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTransparentGray(int)"><!-- --></A><H3>
    +setTransparentGray</H3>
    +<PRE>
    +public void <B>setTransparentGray</B>(int&nbsp;transparentGray)</PRE>
    +<DL>
    +<DD>Sets the gray value to be used to denote transparency.
    +
    + <p> Setting this attribute will cause the alpha channel
    + of the input image to be ignored.
    +
    + <p> The 'tRNS' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTransparentGray()"><!-- --></A><H3>
    +getTransparentGray</H3>
    +<PRE>
    +public int <B>getTransparentGray</B>()</PRE>
    +<DL>
    +<DD>Returns the gray value to be used to denote transparency.
    +
    + <p> If the transparent gray value has not previously been
    + set, or has been unset, an
    + <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the transparent gray value
    +        is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBitShift(int)"><!-- --></A><H3>
    +setBitShift</H3>
    +<PRE>
    +public void <B>setBitShift</B>(int&nbsp;bitShift)</PRE>
    +<DL>
    +<DD>Sets the desired bit shift for a grayscale image.
    + Pixels in the source image will be shifted right by
    + the given amount prior to being clamped to the maximum
    + value given by the encoded image's bit depth.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBitShift()"><!-- --></A><H3>
    +getBitShift</H3>
    +<PRE>
    +public int <B>getBitShift</B>()</PRE>
    +<DL>
    +<DD>Returns the desired bit shift for a grayscale image.
    +
    + <p> If the bit shift has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the bit shift is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetBitShift()"><!-- --></A><H3>
    +unsetBitShift</H3>
    +<PRE>
    +public void <B>unsetBitShift</B>()</PRE>
    +<DL>
    +<DD>Suppresses the setting of the bit shift of a grayscale image.
    + Pixels in the source image will not be shifted prior to encoding.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isBitShiftSet()"><!-- --></A><H3>
    +isBitShiftSet</H3>
    +<PRE>
    +public boolean <B>isBitShiftSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if the bit shift has been set.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isBitDepthSet()"><!-- --></A><H3>
    +isBitDepthSet</H3>
    +<PRE>
    +public boolean <B>isBitDepthSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if the bit depth has been set.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngEncodeParam.Gray.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngEncodeParam.Gray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.Gray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">NESTED</A>&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/mxPngEncodeParam.Palette.html b/java/docs/com/mxgraph/util/png/mxPngEncodeParam.Palette.html
    new file mode 100644
    index 000000000..0c1bcadc6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/mxPngEncodeParam.Palette.html
    @@ -0,0 +1,559 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPngEncodeParam.Palette (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPngEncodeParam.Palette (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngEncodeParam.Palette.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngEncodeParam.Palette.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.Palette.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">NESTED</A>&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.png</FONT>
    +<BR>
    +Class mxPngEncodeParam.Palette</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">com.mxgraph.util.png.mxPngEncodeParam</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.png.mxPngEncodeParam.Palette</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxPngEncodeParam.Palette</B><DT>extends <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#bitDepth">bitDepth</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#bitDepthSet">bitDepthSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_ABSOLUTE">INTENT_ABSOLUTE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_PERCEPTUAL">INTENT_PERCEPTUAL</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_RELATIVE">INTENT_RELATIVE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_SATURATION">INTENT_SATURATION</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_AVERAGE">PNG_FILTER_AVERAGE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_NONE">PNG_FILTER_NONE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_PAETH">PNG_FILTER_PAETH</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_SUB">PNG_FILTER_SUB</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_UP">PNG_FILTER_UP</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#mxPngEncodeParam.Palette()">mxPngEncodeParam.Palette</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an instance of <code>PNGEncodeParam.Palette</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#getBackgroundPaletteIndex()">getBackgroundPaletteIndex</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the palette index of the suggested background color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#getPalette()">getPalette</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current RGB palette.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#getPaletteTransparency()">getPaletteTransparency</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the alpha values associated with each palette entry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#isBackgroundSet()">isBackgroundSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'bKGD' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#isPaletteSet()">isPaletteSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'PLTE' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#setBackgroundPaletteIndex(int)">setBackgroundPaletteIndex</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the palette index of the suggested background color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#setBitDepth(int)">setBitDepth</A></B>(int&nbsp;bitDepth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the desired bit depth for a palette image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#setPalette(int[])">setPalette</A></B>(int[]&nbsp;rgb)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the RGB palette of the image to be encoded.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#setPaletteTransparency(byte[])">setPaletteTransparency</A></B>(byte[]&nbsp;alpha)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the alpha values associated with each palette entry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#unsetBackground()">unsetBackground</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'bKGD' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html#unsetPalette()">unsetPalette</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'PLTE' chunk from being output.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#addPrivateChunk(java.lang.String, byte[])">addPrivateChunk</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#filterRow(byte[], byte[], byte[][], int, int)">filterRow</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getBitDepth()">getBitDepth</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getChromaticity()">getChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getCompressedText()">getCompressedText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getDefaultEncodeParam(java.awt.image.RenderedImage)">getDefaultEncodeParam</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getGamma()">getGamma</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getICCProfileData()">getICCProfileData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getInterlacing()">getInterlacing</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getModificationTime()">getModificationTime</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getNumPrivateChunks()">getNumPrivateChunks</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPaletteHistogram()">getPaletteHistogram</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPhysicalDimension()">getPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkData(int)">getPrivateChunkData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkType(int)">getPrivateChunkType</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getSignificantBits()">getSignificantBits</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getSRGBIntent()">getSRGBIntent</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getText()">getText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isChromaticitySet()">isChromaticitySet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isCompressedTextSet()">isCompressedTextSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isGammaSet()">isGammaSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isICCProfileDataSet()">isICCProfileDataSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isModificationTimeSet()">isModificationTimeSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isPaletteHistogramSet()">isPaletteHistogramSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isPhysicalDimensionSet()">isPhysicalDimensionSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSignificantBitsSet()">isSignificantBitsSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSRGBIntentSet()">isSRGBIntentSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSuggestedPaletteSet()">isSuggestedPaletteSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isTextSet()">isTextSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isTransparencySet()">isTransparencySet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#paethPredictor(int, int, int)">paethPredictor</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#removeAllPrivateChunks()">removeAllPrivateChunks</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#removeUnsafeToCopyPrivateChunks()">removeUnsafeToCopyPrivateChunks</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float[])">setChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float, float, float, float, float, float, float, float)">setChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setCompressedText(java.lang.String[])">setCompressedText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setGamma(float)">setGamma</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setICCProfileData(byte[])">setICCProfileData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setInterlacing(boolean)">setInterlacing</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setModificationTime(java.util.Date)">setModificationTime</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPaletteHistogram(int[])">setPaletteHistogram</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int[])">setPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int, int, int)">setPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSignificantBits(int[])">setSignificantBits</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSRGBIntent(int)">setSRGBIntent</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSuggestedPalette(com.mxgraph.util.png.mxPngSuggestedPaletteEntry[])">setSuggestedPalette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setText(java.lang.String[])">setText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetBitDepth()">unsetBitDepth</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetChromaticity()">unsetChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetCompressedText()">unsetCompressedText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetGamma()">unsetGamma</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetICCProfileData()">unsetICCProfileData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetModificationTime()">unsetModificationTime</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetPaletteHistogram()">unsetPaletteHistogram</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetPhysicalDimension()">unsetPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSignificantBits()">unsetSignificantBits</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSRGBIntent()">unsetSRGBIntent</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSuggestedPalette()">unsetSuggestedPalette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetText()">unsetText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetTransparency()">unsetTransparency</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPngEncodeParam.Palette()"><!-- --></A><H3>
    +mxPngEncodeParam.Palette</H3>
    +<PRE>
    +public <B>mxPngEncodeParam.Palette</B>()</PRE>
    +<DL>
    +<DD>Constructs an instance of <code>PNGEncodeParam.Palette</code>.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="unsetBackground()"><!-- --></A><H3>
    +unsetBackground</H3>
    +<PRE>
    +public void <B>unsetBackground</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'bKGD' chunk from being output.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetBackground()">unsetBackground</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isBackgroundSet()"><!-- --></A><H3>
    +isBackgroundSet</H3>
    +<PRE>
    +public boolean <B>isBackgroundSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'bKGD' chunk will be output.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isBackgroundSet()">isBackgroundSet</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBitDepth(int)"><!-- --></A><H3>
    +setBitDepth</H3>
    +<PRE>
    +public void <B>setBitDepth</B>(int&nbsp;bitDepth)</PRE>
    +<DL>
    +<DD>Sets the desired bit depth for a palette image.  The bit
    + depth must be one of 1, 2, 4, or 8, or else an
    + <code>IllegalArgumentException</code> will be thrown.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setBitDepth(int)">setBitDepth</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPalette(int[])"><!-- --></A><H3>
    +setPalette</H3>
    +<PRE>
    +public void <B>setPalette</B>(int[]&nbsp;rgb)</PRE>
    +<DL>
    +<DD>Sets the RGB palette of the image to be encoded.
    + The <code>rgb</code> parameter contains alternating
    + R, G, B values for each color index used in the image.
    + The number of elements must be a multiple of 3 between
    + 3 and 3*256.
    +
    + <p> The 'PLTE' chunk will encode this information.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rgb</CODE> - An array of <code>int</code>s.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPalette()"><!-- --></A><H3>
    +getPalette</H3>
    +<PRE>
    +public int[] <B>getPalette</B>()</PRE>
    +<DL>
    +<DD>Returns the current RGB palette.
    +
    + <p> If the palette has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>An array of <code>int</code>s.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the palette is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetPalette()"><!-- --></A><H3>
    +unsetPalette</H3>
    +<PRE>
    +public void <B>unsetPalette</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'PLTE' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPaletteSet()"><!-- --></A><H3>
    +isPaletteSet</H3>
    +<PRE>
    +public boolean <B>isPaletteSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'PLTE' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBackgroundPaletteIndex(int)"><!-- --></A><H3>
    +setBackgroundPaletteIndex</H3>
    +<PRE>
    +public void <B>setBackgroundPaletteIndex</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Sets the palette index of the suggested background color.
    +
    + <p> The 'bKGD' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBackgroundPaletteIndex()"><!-- --></A><H3>
    +getBackgroundPaletteIndex</H3>
    +<PRE>
    +public int <B>getBackgroundPaletteIndex</B>()</PRE>
    +<DL>
    +<DD>Returns the palette index of the suggested background color.
    +
    + <p> If the background palette index has not previously been
    + set, or has been unset, an
    + <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the palette index is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPaletteTransparency(byte[])"><!-- --></A><H3>
    +setPaletteTransparency</H3>
    +<PRE>
    +public void <B>setPaletteTransparency</B>(byte[]&nbsp;alpha)</PRE>
    +<DL>
    +<DD>Sets the alpha values associated with each palette entry.
    + The <code>alpha</code> parameter should have as many entries
    + as there are RGB triples in the palette.
    +
    + <p> The 'tRNS' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPaletteTransparency()"><!-- --></A><H3>
    +getPaletteTransparency</H3>
    +<PRE>
    +public byte[] <B>getPaletteTransparency</B>()</PRE>
    +<DL>
    +<DD>Returns the alpha values associated with each palette entry.
    +
    + <p> If the palette transparency has not previously been
    + set, or has been unset, an
    + <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the palette transparency is
    +        not set.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngEncodeParam.Palette.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngEncodeParam.Palette.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.Palette.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">NESTED</A>&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/mxPngEncodeParam.RGB.html b/java/docs/com/mxgraph/util/png/mxPngEncodeParam.RGB.html
    new file mode 100644
    index 000000000..ae158745a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/mxPngEncodeParam.RGB.html
    @@ -0,0 +1,462 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPngEncodeParam.RGB (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPngEncodeParam.RGB (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngEncodeParam.RGB.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngEncodeParam.RGB.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.RGB.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">NESTED</A>&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.png</FONT>
    +<BR>
    +Class mxPngEncodeParam.RGB</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">com.mxgraph.util.png.mxPngEncodeParam</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.png.mxPngEncodeParam.RGB</B>
    +</PRE>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxPngEncodeParam.RGB</B><DT>extends <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#bitDepth">bitDepth</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#bitDepthSet">bitDepthSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_ABSOLUTE">INTENT_ABSOLUTE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_PERCEPTUAL">INTENT_PERCEPTUAL</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_RELATIVE">INTENT_RELATIVE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_SATURATION">INTENT_SATURATION</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_AVERAGE">PNG_FILTER_AVERAGE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_NONE">PNG_FILTER_NONE</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_PAETH">PNG_FILTER_PAETH</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_SUB">PNG_FILTER_SUB</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_UP">PNG_FILTER_UP</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html#mxPngEncodeParam.RGB()">mxPngEncodeParam.RGB</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an instance of <code>PNGEncodeParam.RGB</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html#getBackgroundRGB()">getBackgroundRGB</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the RGB value of the suggested background color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html#getTransparentRGB()">getTransparentRGB</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the RGB value to be used to denote transparency.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html#isBackgroundSet()">isBackgroundSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'bKGD' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html#setBackgroundRGB(int[])">setBackgroundRGB</A></B>(int[]&nbsp;rgb)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the RGB value of the suggested background color.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html#setBitDepth(int)">setBitDepth</A></B>(int&nbsp;bitDepth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the desired bit depth for an RGB image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html#setTransparentRGB(int[])">setTransparentRGB</A></B>(int[]&nbsp;transparentRGB)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the RGB value to be used to denote transparency.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html#unsetBackground()">unsetBackground</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'bKGD' chunk from being output.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#addPrivateChunk(java.lang.String, byte[])">addPrivateChunk</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#filterRow(byte[], byte[], byte[][], int, int)">filterRow</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getBitDepth()">getBitDepth</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getChromaticity()">getChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getCompressedText()">getCompressedText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getDefaultEncodeParam(java.awt.image.RenderedImage)">getDefaultEncodeParam</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getGamma()">getGamma</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getICCProfileData()">getICCProfileData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getInterlacing()">getInterlacing</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getModificationTime()">getModificationTime</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getNumPrivateChunks()">getNumPrivateChunks</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPaletteHistogram()">getPaletteHistogram</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPhysicalDimension()">getPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkData(int)">getPrivateChunkData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkType(int)">getPrivateChunkType</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getSignificantBits()">getSignificantBits</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getSRGBIntent()">getSRGBIntent</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getText()">getText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isChromaticitySet()">isChromaticitySet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isCompressedTextSet()">isCompressedTextSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isGammaSet()">isGammaSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isICCProfileDataSet()">isICCProfileDataSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isModificationTimeSet()">isModificationTimeSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isPaletteHistogramSet()">isPaletteHistogramSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isPhysicalDimensionSet()">isPhysicalDimensionSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSignificantBitsSet()">isSignificantBitsSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSRGBIntentSet()">isSRGBIntentSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSuggestedPaletteSet()">isSuggestedPaletteSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isTextSet()">isTextSet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isTransparencySet()">isTransparencySet</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#paethPredictor(int, int, int)">paethPredictor</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#removeAllPrivateChunks()">removeAllPrivateChunks</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#removeUnsafeToCopyPrivateChunks()">removeUnsafeToCopyPrivateChunks</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float[])">setChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float, float, float, float, float, float, float, float)">setChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setCompressedText(java.lang.String[])">setCompressedText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setGamma(float)">setGamma</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setICCProfileData(byte[])">setICCProfileData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setInterlacing(boolean)">setInterlacing</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setModificationTime(java.util.Date)">setModificationTime</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPaletteHistogram(int[])">setPaletteHistogram</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int[])">setPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int, int, int)">setPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSignificantBits(int[])">setSignificantBits</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSRGBIntent(int)">setSRGBIntent</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSuggestedPalette(com.mxgraph.util.png.mxPngSuggestedPaletteEntry[])">setSuggestedPalette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setText(java.lang.String[])">setText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetBitDepth()">unsetBitDepth</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetChromaticity()">unsetChromaticity</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetCompressedText()">unsetCompressedText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetGamma()">unsetGamma</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetICCProfileData()">unsetICCProfileData</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetModificationTime()">unsetModificationTime</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetPaletteHistogram()">unsetPaletteHistogram</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetPhysicalDimension()">unsetPhysicalDimension</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSignificantBits()">unsetSignificantBits</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSRGBIntent()">unsetSRGBIntent</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSuggestedPalette()">unsetSuggestedPalette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetText()">unsetText</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetTransparency()">unsetTransparency</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPngEncodeParam.RGB()"><!-- --></A><H3>
    +mxPngEncodeParam.RGB</H3>
    +<PRE>
    +public <B>mxPngEncodeParam.RGB</B>()</PRE>
    +<DL>
    +<DD>Constructs an instance of <code>PNGEncodeParam.RGB</code>.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="unsetBackground()"><!-- --></A><H3>
    +unsetBackground</H3>
    +<PRE>
    +public void <B>unsetBackground</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'bKGD' chunk from being output.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetBackground()">unsetBackground</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isBackgroundSet()"><!-- --></A><H3>
    +isBackgroundSet</H3>
    +<PRE>
    +public boolean <B>isBackgroundSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'bKGD' chunk will be output.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isBackgroundSet()">isBackgroundSet</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBitDepth(int)"><!-- --></A><H3>
    +setBitDepth</H3>
    +<PRE>
    +public void <B>setBitDepth</B>(int&nbsp;bitDepth)</PRE>
    +<DL>
    +<DD>Sets the desired bit depth for an RGB image.  The bit
    + depth must be 8 or 16.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setBitDepth(int)">setBitDepth</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBackgroundRGB(int[])"><!-- --></A><H3>
    +setBackgroundRGB</H3>
    +<PRE>
    +public void <B>setBackgroundRGB</B>(int[]&nbsp;rgb)</PRE>
    +<DL>
    +<DD>Sets the RGB value of the suggested background color.
    + The <code>rgb</code> parameter should have 3 entries.
    +
    + <p> The 'bKGD' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBackgroundRGB()"><!-- --></A><H3>
    +getBackgroundRGB</H3>
    +<PRE>
    +public int[] <B>getBackgroundRGB</B>()</PRE>
    +<DL>
    +<DD>Returns the RGB value of the suggested background color.
    +
    + <p> If the background color has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the background color is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTransparentRGB(int[])"><!-- --></A><H3>
    +setTransparentRGB</H3>
    +<PRE>
    +public void <B>setTransparentRGB</B>(int[]&nbsp;transparentRGB)</PRE>
    +<DL>
    +<DD>Sets the RGB value to be used to denote transparency.
    +
    + <p> Setting this attribute will cause the alpha channel
    + of the input image to be ignored.
    +
    + <p> The 'tRNS' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTransparentRGB()"><!-- --></A><H3>
    +getTransparentRGB</H3>
    +<PRE>
    +public int[] <B>getTransparentRGB</B>()</PRE>
    +<DL>
    +<DD>Returns the RGB value to be used to denote transparency.
    +
    + <p> If the transparent color has not previously been set,
    + or has been unset, an <code>IllegalStateException</code>
    + will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the transparent color is not set.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngEncodeParam.RGB.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngEncodeParam.RGB.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.RGB.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">NESTED</A>&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.png.mxPngEncodeParam">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/mxPngEncodeParam.html b/java/docs/com/mxgraph/util/png/mxPngEncodeParam.html
    new file mode 100644
    index 000000000..fbd63f8b6
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/mxPngEncodeParam.html
    @@ -0,0 +1,2089 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPngEncodeParam (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPngEncodeParam (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngEncodeParam.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngEncodeParam.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.png</FONT>
    +<BR>
    +Class mxPngEncodeParam</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.png.mxPngEncodeParam</B>
    +</PRE>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>, <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract class <B>mxPngEncodeParam</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +An instance of <code>ImageEncodeParam</code> for encoding images in
    + the PNG format.
    +
    + <p><b> This class is not a committed part of the JAI API.  It may
    + be removed or changed in future releases of JAI.</b>
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#bitDepth">bitDepth</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#bitDepthSet">bitDepthSet</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_ABSOLUTE">INTENT_ABSOLUTE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant for use with the sRGB chunk.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_PERCEPTUAL">INTENT_PERCEPTUAL</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant for use with the sRGB chunk.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_RELATIVE">INTENT_RELATIVE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant for use with the sRGB chunk.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_SATURATION">INTENT_SATURATION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant for use with the sRGB chunk.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_AVERAGE">PNG_FILTER_AVERAGE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant for use in filtering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_NONE">PNG_FILTER_NONE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant for use in filtering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_PAETH">PNG_FILTER_PAETH</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant for use in filtering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_SUB">PNG_FILTER_SUB</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant for use in filtering.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_UP">PNG_FILTER_UP</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant for use in filtering.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#mxPngEncodeParam()">mxPngEncodeParam</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#addPrivateChunk(java.lang.String, byte[])">addPrivateChunk</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +                byte[]&nbsp;data)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a private chunk, in binary form, to the list of chunks to
    + be stored with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#filterRow(byte[], byte[], byte[][], int, int)">filterRow</A></B>(byte[]&nbsp;currRow,
    +          byte[]&nbsp;prevRow,
    +          byte[][]&nbsp;scratchRows,
    +          int&nbsp;bytesPerRow,
    +          int&nbsp;bytesPerPixel)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs filtering on a row of an image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getBitDepth()">getBitDepth</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the desired bit depth for a grayscale image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;float[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getChromaticity()">getChromaticity</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the white point and primary chromaticities in
    + CIE (x, y) space.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getCompressedText()">getCompressedText</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the text strings to be stored in compressed form with
    + this image as an array of <code>String</code>s.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getDefaultEncodeParam(java.awt.image.RenderedImage)">getDefaultEncodeParam</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/RenderedImage.html?is-external=true" title="class or interface in java.awt.image">RenderedImage</A>&nbsp;im)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an instance of <code>PNGEncodeParam.Palette</code>,
    + <code>PNGEncodeParam.Gray</code>, or
    + <code>PNGEncodeParam.RGB</code> appropriate for encoding
    + the given image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getGamma()">getGamma</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the file gamma value for the image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getICCProfileData()">getICCProfileData</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the ICC profile data to be stored with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getInterlacing()">getInterlacing</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if Adam7 interlacing will be used.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getModificationTime()">getModificationTime</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the modification time to be stored with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getNumPrivateChunks()">getNumPrivateChunks</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of private chunks to be written to the
    + output file.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPaletteHistogram()">getPaletteHistogram</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the palette histogram to be stored with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPhysicalDimension()">getPhysicalDimension</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the physical dimension information to be stored
    + with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;byte[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkData(int)">getPrivateChunkData</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the data associated of the private chunk at a given
    + index, as an array of <code>byte</code>s.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkType(int)">getPrivateChunkType</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the type of the private chunk at a given index, as a
    + 4-character <code>String</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getSignificantBits()">getSignificantBits</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of significant bits for each band of the image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getSRGBIntent()">getSRGBIntent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the sRGB rendering intent to be stored with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#getText()">getText</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the text strings to be stored in uncompressed form with this
    + image as an array of <code>String</code>s.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isBackgroundSet()">isBackgroundSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'bKGD' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isChromaticitySet()">isChromaticitySet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'cHRM' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isCompressedTextSet()">isCompressedTextSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'zTXT' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isGammaSet()">isGammaSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'gAMA' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isICCProfileDataSet()">isICCProfileDataSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'iCCP' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isModificationTimeSet()">isModificationTimeSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'tIME' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isPaletteHistogramSet()">isPaletteHistogramSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'hIST' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isPhysicalDimensionSet()">isPhysicalDimensionSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'pHYS' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSignificantBitsSet()">isSignificantBitsSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if an 'sBIT' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSRGBIntentSet()">isSRGBIntentSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if an 'sRGB' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isSuggestedPaletteSet()">isSuggestedPaletteSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'sPLT' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isTextSet()">isTextSet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'tEXt' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#isTransparencySet()">isTransparencySet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if a 'tRNS' chunk will be output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#paethPredictor(int, int, int)">paethPredictor</A></B>(int&nbsp;a,
    +               int&nbsp;b,
    +               int&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The Paeth predictor routine used in PNG encoding.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#removeAllPrivateChunks()">removeAllPrivateChunks</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all private chunks associated with this parameter instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#removeUnsafeToCopyPrivateChunks()">removeUnsafeToCopyPrivateChunks</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all private chunks associated with this parameter instance
    + whose 'safe-to-copy' bit is not set.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setBitDepth(int)">setBitDepth</A></B>(int&nbsp;bitDepth)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the desired bit depth of an image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float[])">setChromaticity</A></B>(float[]&nbsp;chromaticity)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the white point and primary chromaticities in CIE (x, y)
    + space.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float, float, float, float, float, float, float, float)">setChromaticity</A></B>(float&nbsp;whitePointX,
    +                float&nbsp;whitePointY,
    +                float&nbsp;redX,
    +                float&nbsp;redY,
    +                float&nbsp;greenX,
    +                float&nbsp;greenY,
    +                float&nbsp;blueX,
    +                float&nbsp;blueY)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A convenience method that calls the array version.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setCompressedText(java.lang.String[])">setCompressedText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;text)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the text strings to be stored in compressed form with this
    + image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setGamma(float)">setGamma</A></B>(float&nbsp;gamma)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the file gamma value for the image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setICCProfileData(byte[])">setICCProfileData</A></B>(byte[]&nbsp;ICCProfileData)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the ICC profile data to be stored with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setInterlacing(boolean)">setInterlacing</A></B>(boolean&nbsp;useInterlacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Turns Adam7 interlacing on or off.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setModificationTime(java.util.Date)">setModificationTime</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</A>&nbsp;modificationTime)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the modification time, as a <code>Date</code>, to be
    + stored with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPaletteHistogram(int[])">setPaletteHistogram</A></B>(int[]&nbsp;paletteHistogram)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the palette histogram to be stored with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int[])">setPhysicalDimension</A></B>(int[]&nbsp;physicalDimension)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the physical dimension information to be stored with this
    + image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int, int, int)">setPhysicalDimension</A></B>(int&nbsp;xPixelsPerUnit,
    +                     int&nbsp;yPixelsPerUnit,
    +                     int&nbsp;unitSpecifier)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A convenience method that calls the array version.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSignificantBits(int[])">setSignificantBits</A></B>(int[]&nbsp;significantBits)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the number of significant bits for each band of the image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSRGBIntent(int)">setSRGBIntent</A></B>(int&nbsp;SRGBIntent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the sRGB rendering intent to be stored with this image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setSuggestedPalette(com.mxgraph.util.png.mxPngSuggestedPaletteEntry[])">setSuggestedPalette</A></B>(<A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>[]&nbsp;palette)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the suggested palette information to be stored with this
    + image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#setText(java.lang.String[])">setText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;text)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the textual data to be stored in uncompressed form with this
    + image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetBackground()">unsetBackground</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'bKGD' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetBitDepth()">unsetBitDepth</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the setting of the bit depth of a grayscale image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetChromaticity()">unsetChromaticity</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'cHRM' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetCompressedText()">unsetCompressedText</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'zTXt' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetGamma()">unsetGamma</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'gAMA' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetICCProfileData()">unsetICCProfileData</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'iCCP' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetModificationTime()">unsetModificationTime</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'tIME' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetPaletteHistogram()">unsetPaletteHistogram</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'hIST' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetPhysicalDimension()">unsetPhysicalDimension</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'pHYS' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSignificantBits()">unsetSignificantBits</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'sBIT' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSRGBIntent()">unsetSRGBIntent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'sRGB' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetSuggestedPalette()">unsetSuggestedPalette</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'sPLT' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetText()">unsetText</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'tEXt' chunk from being output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html#unsetTransparency()">unsetTransparency</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the 'tRNS' chunk from being output.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="INTENT_PERCEPTUAL"><!-- --></A><H3>
    +INTENT_PERCEPTUAL</H3>
    +<PRE>
    +public static final int <B>INTENT_PERCEPTUAL</B></PRE>
    +<DL>
    +<DD>Constant for use with the sRGB chunk.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngEncodeParam.INTENT_PERCEPTUAL">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="INTENT_RELATIVE"><!-- --></A><H3>
    +INTENT_RELATIVE</H3>
    +<PRE>
    +public static final int <B>INTENT_RELATIVE</B></PRE>
    +<DL>
    +<DD>Constant for use with the sRGB chunk.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngEncodeParam.INTENT_RELATIVE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="INTENT_SATURATION"><!-- --></A><H3>
    +INTENT_SATURATION</H3>
    +<PRE>
    +public static final int <B>INTENT_SATURATION</B></PRE>
    +<DL>
    +<DD>Constant for use with the sRGB chunk.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngEncodeParam.INTENT_SATURATION">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="INTENT_ABSOLUTE"><!-- --></A><H3>
    +INTENT_ABSOLUTE</H3>
    +<PRE>
    +public static final int <B>INTENT_ABSOLUTE</B></PRE>
    +<DL>
    +<DD>Constant for use with the sRGB chunk.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngEncodeParam.INTENT_ABSOLUTE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PNG_FILTER_NONE"><!-- --></A><H3>
    +PNG_FILTER_NONE</H3>
    +<PRE>
    +public static final int <B>PNG_FILTER_NONE</B></PRE>
    +<DL>
    +<DD>Constant for use in filtering.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_NONE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PNG_FILTER_SUB"><!-- --></A><H3>
    +PNG_FILTER_SUB</H3>
    +<PRE>
    +public static final int <B>PNG_FILTER_SUB</B></PRE>
    +<DL>
    +<DD>Constant for use in filtering.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_SUB">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PNG_FILTER_UP"><!-- --></A><H3>
    +PNG_FILTER_UP</H3>
    +<PRE>
    +public static final int <B>PNG_FILTER_UP</B></PRE>
    +<DL>
    +<DD>Constant for use in filtering.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_UP">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PNG_FILTER_AVERAGE"><!-- --></A><H3>
    +PNG_FILTER_AVERAGE</H3>
    +<PRE>
    +public static final int <B>PNG_FILTER_AVERAGE</B></PRE>
    +<DL>
    +<DD>Constant for use in filtering.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_AVERAGE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PNG_FILTER_PAETH"><!-- --></A><H3>
    +PNG_FILTER_PAETH</H3>
    +<PRE>
    +public static final int <B>PNG_FILTER_PAETH</B></PRE>
    +<DL>
    +<DD>Constant for use in filtering.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_PAETH">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bitDepth"><!-- --></A><H3>
    +bitDepth</H3>
    +<PRE>
    +protected int <B>bitDepth</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bitDepthSet"><!-- --></A><H3>
    +bitDepthSet</H3>
    +<PRE>
    +protected boolean <B>bitDepthSet</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPngEncodeParam()"><!-- --></A><H3>
    +mxPngEncodeParam</H3>
    +<PRE>
    +public <B>mxPngEncodeParam</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getDefaultEncodeParam(java.awt.image.RenderedImage)"><!-- --></A><H3>
    +getDefaultEncodeParam</H3>
    +<PRE>
    +public static <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A> <B>getDefaultEncodeParam</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/RenderedImage.html?is-external=true" title="class or interface in java.awt.image">RenderedImage</A>&nbsp;im)</PRE>
    +<DL>
    +<DD>Returns an instance of <code>PNGEncodeParam.Palette</code>,
    + <code>PNGEncodeParam.Gray</code>, or
    + <code>PNGEncodeParam.RGB</code> appropriate for encoding
    + the given image.
    +
    + <p> If the image has an <code>IndexColorModel</code>, an
    + instance of <code>PNGEncodeParam.Palette</code> is returned.
    + Otherwise, if the image has 1 or 2 bands an instance of
    + <code>PNGEncodeParam.Gray</code> is returned.  In all other
    + cases an instance of <code>PNGEncodeParam.RGB</code> is
    + returned.
    +
    + <p> Note that this method does not provide any guarantee that
    + the given image will be successfully encoded by the PNG
    + encoder, as it only performs a very superficial analysis of
    + the image structure.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBitDepth(int)"><!-- --></A><H3>
    +setBitDepth</H3>
    +<PRE>
    +public abstract void <B>setBitDepth</B>(int&nbsp;bitDepth)</PRE>
    +<DL>
    +<DD>Sets the desired bit depth of an image.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBitDepth()"><!-- --></A><H3>
    +getBitDepth</H3>
    +<PRE>
    +public int <B>getBitDepth</B>()</PRE>
    +<DL>
    +<DD>Returns the desired bit depth for a grayscale image.
    +
    + <p> If the bit depth has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the bit depth is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetBitDepth()"><!-- --></A><H3>
    +unsetBitDepth</H3>
    +<PRE>
    +public void <B>unsetBitDepth</B>()</PRE>
    +<DL>
    +<DD>Suppresses the setting of the bit depth of a grayscale image.
    + The depth of the encoded image will be inferred from the source
    + image bit depth, rounded up to the next power of 2 between 1
    + and 16.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInterlacing(boolean)"><!-- --></A><H3>
    +setInterlacing</H3>
    +<PRE>
    +public void <B>setInterlacing</B>(boolean&nbsp;useInterlacing)</PRE>
    +<DL>
    +<DD>Turns Adam7 interlacing on or off.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getInterlacing()"><!-- --></A><H3>
    +getInterlacing</H3>
    +<PRE>
    +public boolean <B>getInterlacing</B>()</PRE>
    +<DL>
    +<DD>Returns <code>true</code> if Adam7 interlacing will be used.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetBackground()"><!-- --></A><H3>
    +unsetBackground</H3>
    +<PRE>
    +public void <B>unsetBackground</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'bKGD' chunk from being output.
    + For API compatibility with JAI 1.0, the superclass
    + defines this method to throw a <code>RuntimeException</code>;
    + accordingly, subclasses must provide their own implementations.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isBackgroundSet()"><!-- --></A><H3>
    +isBackgroundSet</H3>
    +<PRE>
    +public boolean <B>isBackgroundSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'bKGD' chunk will be output.
    + For API compatibility with JAI 1.0, the superclass
    + defines this method to throw a <code>RuntimeException</code>;
    + accordingly, subclasses must provide their own implementations.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setChromaticity(float[])"><!-- --></A><H3>
    +setChromaticity</H3>
    +<PRE>
    +public void <B>setChromaticity</B>(float[]&nbsp;chromaticity)</PRE>
    +<DL>
    +<DD>Sets the white point and primary chromaticities in CIE (x, y)
    + space.
    +
    + <p> The <code>chromaticity</code> parameter should be a
    + <code>float</code> array of length 8 containing the white point
    + X and Y, red X and Y, green X and Y, and blue X and Y values in
    + order.
    +
    + <p> The 'cHRM' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setChromaticity(float, float, float, float, float, float, float, float)"><!-- --></A><H3>
    +setChromaticity</H3>
    +<PRE>
    +public void <B>setChromaticity</B>(float&nbsp;whitePointX,
    +                            float&nbsp;whitePointY,
    +                            float&nbsp;redX,
    +                            float&nbsp;redY,
    +                            float&nbsp;greenX,
    +                            float&nbsp;greenY,
    +                            float&nbsp;blueX,
    +                            float&nbsp;blueY)</PRE>
    +<DL>
    +<DD>A convenience method that calls the array version.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChromaticity()"><!-- --></A><H3>
    +getChromaticity</H3>
    +<PRE>
    +public float[] <B>getChromaticity</B>()</PRE>
    +<DL>
    +<DD>Returns the white point and primary chromaticities in
    + CIE (x, y) space.
    +
    + <p> See the documentation for the <code>setChromaticity</code>
    + method for the format of the returned data.
    +
    + <p> If the chromaticity has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the chromaticity is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetChromaticity()"><!-- --></A><H3>
    +unsetChromaticity</H3>
    +<PRE>
    +public void <B>unsetChromaticity</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'cHRM' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isChromaticitySet()"><!-- --></A><H3>
    +isChromaticitySet</H3>
    +<PRE>
    +public boolean <B>isChromaticitySet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'cHRM' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGamma(float)"><!-- --></A><H3>
    +setGamma</H3>
    +<PRE>
    +public void <B>setGamma</B>(float&nbsp;gamma)</PRE>
    +<DL>
    +<DD>Sets the file gamma value for the image.
    +
    + <p> The 'gAMA' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGamma()"><!-- --></A><H3>
    +getGamma</H3>
    +<PRE>
    +public float <B>getGamma</B>()</PRE>
    +<DL>
    +<DD>Returns the file gamma value for the image.
    +
    + <p> If the file gamma has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the gamma is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetGamma()"><!-- --></A><H3>
    +unsetGamma</H3>
    +<PRE>
    +public void <B>unsetGamma</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'gAMA' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isGammaSet()"><!-- --></A><H3>
    +isGammaSet</H3>
    +<PRE>
    +public boolean <B>isGammaSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'gAMA' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPaletteHistogram(int[])"><!-- --></A><H3>
    +setPaletteHistogram</H3>
    +<PRE>
    +public void <B>setPaletteHistogram</B>(int[]&nbsp;paletteHistogram)</PRE>
    +<DL>
    +<DD>Sets the palette histogram to be stored with this image.
    + The histogram consists of an array of integers, one per
    + palette entry.
    +
    + <p> The 'hIST' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPaletteHistogram()"><!-- --></A><H3>
    +getPaletteHistogram</H3>
    +<PRE>
    +public int[] <B>getPaletteHistogram</B>()</PRE>
    +<DL>
    +<DD>Returns the palette histogram to be stored with this image.
    +
    + <p> If the histogram has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the histogram is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetPaletteHistogram()"><!-- --></A><H3>
    +unsetPaletteHistogram</H3>
    +<PRE>
    +public void <B>unsetPaletteHistogram</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'hIST' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPaletteHistogramSet()"><!-- --></A><H3>
    +isPaletteHistogramSet</H3>
    +<PRE>
    +public boolean <B>isPaletteHistogramSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'hIST' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setICCProfileData(byte[])"><!-- --></A><H3>
    +setICCProfileData</H3>
    +<PRE>
    +public void <B>setICCProfileData</B>(byte[]&nbsp;ICCProfileData)</PRE>
    +<DL>
    +<DD>Sets the ICC profile data to be stored with this image.
    + The profile is represented in raw binary form.
    +
    + <p> The 'iCCP' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getICCProfileData()"><!-- --></A><H3>
    +getICCProfileData</H3>
    +<PRE>
    +public byte[] <B>getICCProfileData</B>()</PRE>
    +<DL>
    +<DD>Returns the ICC profile data to be stored with this image.
    +
    + <p> If the ICC profile has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the ICC profile is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetICCProfileData()"><!-- --></A><H3>
    +unsetICCProfileData</H3>
    +<PRE>
    +public void <B>unsetICCProfileData</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'iCCP' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isICCProfileDataSet()"><!-- --></A><H3>
    +isICCProfileDataSet</H3>
    +<PRE>
    +public boolean <B>isICCProfileDataSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'iCCP' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPhysicalDimension(int[])"><!-- --></A><H3>
    +setPhysicalDimension</H3>
    +<PRE>
    +public void <B>setPhysicalDimension</B>(int[]&nbsp;physicalDimension)</PRE>
    +<DL>
    +<DD>Sets the physical dimension information to be stored with this
    + image.  The physicalDimension parameter should be a 3-entry
    + array containing the number of pixels per unit in the X
    + direction, the number of pixels per unit in the Y direction,
    + and the unit specifier (0 = unknown, 1 = meters).
    +
    + <p> The 'pHYS' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPhysicalDimension(int, int, int)"><!-- --></A><H3>
    +setPhysicalDimension</H3>
    +<PRE>
    +public void <B>setPhysicalDimension</B>(int&nbsp;xPixelsPerUnit,
    +                                 int&nbsp;yPixelsPerUnit,
    +                                 int&nbsp;unitSpecifier)</PRE>
    +<DL>
    +<DD>A convenience method that calls the array version.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPhysicalDimension()"><!-- --></A><H3>
    +getPhysicalDimension</H3>
    +<PRE>
    +public int[] <B>getPhysicalDimension</B>()</PRE>
    +<DL>
    +<DD>Returns the physical dimension information to be stored
    + with this image.
    +
    + <p> If the physical dimension information has not previously
    + been set, or has been unset, an
    + <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the physical dimension information
    +        is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetPhysicalDimension()"><!-- --></A><H3>
    +unsetPhysicalDimension</H3>
    +<PRE>
    +public void <B>unsetPhysicalDimension</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'pHYS' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPhysicalDimensionSet()"><!-- --></A><H3>
    +isPhysicalDimensionSet</H3>
    +<PRE>
    +public boolean <B>isPhysicalDimensionSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'pHYS' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSuggestedPalette(com.mxgraph.util.png.mxPngSuggestedPaletteEntry[])"><!-- --></A><H3>
    +setSuggestedPalette</H3>
    +<PRE>
    +public void <B>setSuggestedPalette</B>(<A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>[]&nbsp;palette)</PRE>
    +<DL>
    +<DD>Sets the suggested palette information to be stored with this
    + image.  The information is passed to this method as an array of
    + <code>PNGSuggestedPaletteEntry</code> objects.
    +
    + <p> The 'sPLT' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetSuggestedPalette()"><!-- --></A><H3>
    +unsetSuggestedPalette</H3>
    +<PRE>
    +public void <B>unsetSuggestedPalette</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'sPLT' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSuggestedPaletteSet()"><!-- --></A><H3>
    +isSuggestedPaletteSet</H3>
    +<PRE>
    +public boolean <B>isSuggestedPaletteSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'sPLT' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSignificantBits(int[])"><!-- --></A><H3>
    +setSignificantBits</H3>
    +<PRE>
    +public void <B>setSignificantBits</B>(int[]&nbsp;significantBits)</PRE>
    +<DL>
    +<DD>Sets the number of significant bits for each band of the image.
    +
    + <p> The number of entries in the <code>significantBits</code>
    + array must be equal to the number of output bands in the image:
    + 1 for a gray image, 2 for gray+alpha, 3 for index or truecolor,
    + and 4 for truecolor+alpha.
    +
    + <p> The 'sBIT' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSignificantBits()"><!-- --></A><H3>
    +getSignificantBits</H3>
    +<PRE>
    +public int[] <B>getSignificantBits</B>()</PRE>
    +<DL>
    +<DD>Returns the number of significant bits for each band of the image.
    +
    + <p> If the significant bits values have not previously been
    + set, or have been unset, an <code>IllegalStateException</code>
    + will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the significant bits values are
    +        not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetSignificantBits()"><!-- --></A><H3>
    +unsetSignificantBits</H3>
    +<PRE>
    +public void <B>unsetSignificantBits</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'sBIT' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSignificantBitsSet()"><!-- --></A><H3>
    +isSignificantBitsSet</H3>
    +<PRE>
    +public boolean <B>isSignificantBitsSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if an 'sBIT' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSRGBIntent(int)"><!-- --></A><H3>
    +setSRGBIntent</H3>
    +<PRE>
    +public void <B>setSRGBIntent</B>(int&nbsp;SRGBIntent)</PRE>
    +<DL>
    +<DD>Sets the sRGB rendering intent to be stored with this image.
    + The legal values are 0 = Perceptual, 1 = Relative Colorimetric,
    + 2 = Saturation, and 3 = Absolute Colorimetric.  Refer to the
    + PNG specification for information on these values.
    +
    + <p> The 'sRGB' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSRGBIntent()"><!-- --></A><H3>
    +getSRGBIntent</H3>
    +<PRE>
    +public int <B>getSRGBIntent</B>()</PRE>
    +<DL>
    +<DD>Returns the sRGB rendering intent to be stored with this image.
    +
    + <p> If the sRGB intent has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the sRGB intent is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetSRGBIntent()"><!-- --></A><H3>
    +unsetSRGBIntent</H3>
    +<PRE>
    +public void <B>unsetSRGBIntent</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'sRGB' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSRGBIntentSet()"><!-- --></A><H3>
    +isSRGBIntentSet</H3>
    +<PRE>
    +public boolean <B>isSRGBIntentSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if an 'sRGB' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setText(java.lang.String[])"><!-- --></A><H3>
    +setText</H3>
    +<PRE>
    +public void <B>setText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;text)</PRE>
    +<DL>
    +<DD>Sets the textual data to be stored in uncompressed form with this
    + image.  The data is passed to this method as an array of
    + <code>String</code>s.
    +
    + <p> The 'tEXt' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getText()"><!-- --></A><H3>
    +getText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>getText</B>()</PRE>
    +<DL>
    +<DD>Returns the text strings to be stored in uncompressed form with this
    + image as an array of <code>String</code>s.
    +
    + <p> If the text strings have not previously been set, or have been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the text strings are not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetText()"><!-- --></A><H3>
    +unsetText</H3>
    +<PRE>
    +public void <B>unsetText</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'tEXt' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTextSet()"><!-- --></A><H3>
    +isTextSet</H3>
    +<PRE>
    +public boolean <B>isTextSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'tEXt' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setModificationTime(java.util.Date)"><!-- --></A><H3>
    +setModificationTime</H3>
    +<PRE>
    +public void <B>setModificationTime</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</A>&nbsp;modificationTime)</PRE>
    +<DL>
    +<DD>Sets the modification time, as a <code>Date</code>, to be
    + stored with this image.  The internal storage format will use
    + UTC regardless of how the <code>modificationTime</code>
    + parameter was created.
    +
    + <p> The 'tIME' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getModificationTime()"><!-- --></A><H3>
    +getModificationTime</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</A> <B>getModificationTime</B>()</PRE>
    +<DL>
    +<DD>Returns the modification time to be stored with this image.
    +
    + <p> If the bit depth has not previously been set, or has been
    + unset, an <code>IllegalStateException</code> will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the bit depth is not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetModificationTime()"><!-- --></A><H3>
    +unsetModificationTime</H3>
    +<PRE>
    +public void <B>unsetModificationTime</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'tIME' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isModificationTimeSet()"><!-- --></A><H3>
    +isModificationTimeSet</H3>
    +<PRE>
    +public boolean <B>isModificationTimeSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'tIME' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetTransparency()"><!-- --></A><H3>
    +unsetTransparency</H3>
    +<PRE>
    +public void <B>unsetTransparency</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'tRNS' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTransparencySet()"><!-- --></A><H3>
    +isTransparencySet</H3>
    +<PRE>
    +public boolean <B>isTransparencySet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'tRNS' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCompressedText(java.lang.String[])"><!-- --></A><H3>
    +setCompressedText</H3>
    +<PRE>
    +public void <B>setCompressedText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;text)</PRE>
    +<DL>
    +<DD>Sets the text strings to be stored in compressed form with this
    + image.  The data is passed to this method as an array of
    + <code>String</code>s.
    +
    + <p> The 'zTXt' chunk will encode this information.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCompressedText()"><!-- --></A><H3>
    +getCompressedText</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>getCompressedText</B>()</PRE>
    +<DL>
    +<DD>Returns the text strings to be stored in compressed form with
    + this image as an array of <code>String</code>s.
    +
    + <p> If the compressed text strings have not previously been
    + set, or have been unset, an <code>IllegalStateException</code>
    + will be thrown.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the compressed text strings are
    +        not set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="unsetCompressedText()"><!-- --></A><H3>
    +unsetCompressedText</H3>
    +<PRE>
    +public void <B>unsetCompressedText</B>()</PRE>
    +<DL>
    +<DD>Suppresses the 'zTXt' chunk from being output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCompressedTextSet()"><!-- --></A><H3>
    +isCompressedTextSet</H3>
    +<PRE>
    +public boolean <B>isCompressedTextSet</B>()</PRE>
    +<DL>
    +<DD>Returns true if a 'zTXT' chunk will be output.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addPrivateChunk(java.lang.String, byte[])"><!-- --></A><H3>
    +addPrivateChunk</H3>
    +<PRE>
    +public void <B>addPrivateChunk</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +                            byte[]&nbsp;data)</PRE>
    +<DL>
    +<DD>Adds a private chunk, in binary form, to the list of chunks to
    + be stored with this image.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>type</CODE> - a 4-character String giving the chunk type name.<DD><CODE>data</CODE> - an array of <code>byte</code>s containing the
    +        chunk data.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNumPrivateChunks()"><!-- --></A><H3>
    +getNumPrivateChunks</H3>
    +<PRE>
    +public int <B>getNumPrivateChunks</B>()</PRE>
    +<DL>
    +<DD>Returns the number of private chunks to be written to the
    + output file.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrivateChunkType(int)"><!-- --></A><H3>
    +getPrivateChunkType</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getPrivateChunkType</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the type of the private chunk at a given index, as a
    + 4-character <code>String</code>.  The index must be smaller
    + than the return value of <code>getNumPrivateChunks</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrivateChunkData(int)"><!-- --></A><H3>
    +getPrivateChunkData</H3>
    +<PRE>
    +public byte[] <B>getPrivateChunkData</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the data associated of the private chunk at a given
    + index, as an array of <code>byte</code>s.  The index must be
    + smaller than the return value of
    + <code>getNumPrivateChunks</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeUnsafeToCopyPrivateChunks()"><!-- --></A><H3>
    +removeUnsafeToCopyPrivateChunks</H3>
    +<PRE>
    +public void <B>removeUnsafeToCopyPrivateChunks</B>()</PRE>
    +<DL>
    +<DD>Remove all private chunks associated with this parameter instance
    + whose 'safe-to-copy' bit is not set.  This may be advisable when
    + transcoding PNG images.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeAllPrivateChunks()"><!-- --></A><H3>
    +removeAllPrivateChunks</H3>
    +<PRE>
    +public void <B>removeAllPrivateChunks</B>()</PRE>
    +<DL>
    +<DD>Remove all private chunks associated with this parameter instance.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="paethPredictor(int, int, int)"><!-- --></A><H3>
    +paethPredictor</H3>
    +<PRE>
    +public static final int <B>paethPredictor</B>(int&nbsp;a,
    +                                       int&nbsp;b,
    +                                       int&nbsp;c)</PRE>
    +<DL>
    +<DD>The Paeth predictor routine used in PNG encoding.  This routine
    + is included as a convenience to subclasses that override the
    + <code>filterRow</code> method.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="filterRow(byte[], byte[], byte[][], int, int)"><!-- --></A><H3>
    +filterRow</H3>
    +<PRE>
    +public int <B>filterRow</B>(byte[]&nbsp;currRow,
    +                     byte[]&nbsp;prevRow,
    +                     byte[][]&nbsp;scratchRows,
    +                     int&nbsp;bytesPerRow,
    +                     int&nbsp;bytesPerPixel)</PRE>
    +<DL>
    +<DD>Performs filtering on a row of an image.  This method may be
    + overridden in order to provide a custom algorithm for choosing
    + the filter type for a given row.
    +
    + <p> The method is supplied with the current and previous rows
    + of the image.  For the first row of the image, or of an
    + interlacing pass, the previous row array will be filled with
    + zeros as required by the PNG specification.
    +
    + <p> The method is also supplied with five scratch arrays.
    + These arrays may be used within the method for any purpose.
    + At method exit, the array at the index given by the return
    + value of the method should contain the filtered data.  The
    + return value will also be used as the filter type.
    +
    + <p> The default implementation of the method performs a trial
    + encoding with each of the filter types, and computes the sum of
    + absolute values of the differences between the raw bytes of the
    + current row and the predicted values.  The index of the filter
    + producing the smallest result is returned.
    +
    + <p> As an example, to perform only 'sub' filtering, this method
    + could be implemented (non-optimally) as follows:
    +
    + <pre>
    + for (int i = bytesPerPixel; i < bytesPerRow + bytesPerPixel; i++) {
    +     int curr = currRow[i] & 0xff;
    +     int left = currRow[i - bytesPerPixel] & 0xff;
    +     scratchRow[PNG_FILTER_SUB][i] = (byte)(curr - left);
    + }
    + return PNG_FILTER_SUB;
    + </pre>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>currRow</CODE> - The current row as an array of <code>byte</code>s
    +        of length at least <code>bytesPerRow + bytesPerPixel</code>.
    +        The pixel data starts at index <code>bytesPerPixel</code>;
    +        the initial <code>bytesPerPixel</code> bytes are zero.<DD><CODE>prevRow</CODE> - The current row as an array of <code>byte</code>s
    +        The pixel data starts at index <code>bytesPerPixel</code>;
    +        the initial <code>bytesPerPixel</code> bytes are zero.<DD><CODE>scratchRows</CODE> - An array of 5 <code>byte</code> arrays of
    +        length at least <code>bytesPerRow +
    +        bytesPerPixel</code>, useable to hold temporary results.
    +        The filtered row will be returned as one of the entries
    +        of this array.  The returned filtered data should start
    +        at index <code>bytesPerPixel</code>; The initial
    +        <code>bytesPerPixel</code> bytes are not used.<DD><CODE>bytesPerRow</CODE> - The number of bytes in the image row.
    +        This value will always be greater than 0.<DD><CODE>bytesPerPixel</CODE> - The number of bytes representing a single
    +        pixel, rounded up to an integer.  This is the 'bpp' parameter
    +        described in the PNG specification.
    +<DT><B>Returns:</B><DD>The filter type to be used.  The entry of
    +         <code>scratchRows[]</code> at this index holds the
    +         filtered data.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngEncodeParam.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngEncodeParam.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngEncodeParam.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/mxPngImageEncoder.html b/java/docs/com/mxgraph/util/png/mxPngImageEncoder.html
    new file mode 100644
    index 000000000..042dfcf68
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/mxPngImageEncoder.html
    @@ -0,0 +1,368 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPngImageEncoder (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPngImageEncoder (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngImageEncoder.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngImageEncoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngImageEncoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.png</FONT>
    +<BR>
    +Class mxPngImageEncoder</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.png.mxPngImageEncoder</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxPngImageEncoder</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +An ImageEncoder for the PNG file format.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>Since:</B></DT>
    +  <DD>EA4</DD>
    +</DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html#output">output</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The OutputStream associcted with this ImageEncoder.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html#mxPngImageEncoder(java.io.OutputStream, com.mxgraph.util.png.mxPngEncodeParam)">mxPngImageEncoder</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;output,
    +                  <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>&nbsp;param)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html#encode(java.awt.image.RenderedImage)">encode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/RenderedImage.html?is-external=true" title="class or interface in java.awt.image">RenderedImage</A>&nbsp;im)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method encodes a <code>RenderedImage</code> into PNG.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html#getOutputStream()">getOutputStream</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the OutputStream associated with this ImageEncoder.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html#getParam()">getParam</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html#setParam(com.mxgraph.util.png.mxPngEncodeParam)">setParam</A></B>(<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>&nbsp;param)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="output"><!-- --></A><H3>
    +output</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A> <B>output</B></PRE>
    +<DL>
    +<DD>The OutputStream associcted with this ImageEncoder.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPngImageEncoder(java.io.OutputStream, com.mxgraph.util.png.mxPngEncodeParam)"><!-- --></A><H3>
    +mxPngImageEncoder</H3>
    +<PRE>
    +public <B>mxPngImageEncoder</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;output,
    +                         <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>&nbsp;param)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getParam()"><!-- --></A><H3>
    +getParam</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A> <B>getParam</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setParam(com.mxgraph.util.png.mxPngEncodeParam)"><!-- --></A><H3>
    +setParam</H3>
    +<PRE>
    +public void <B>setParam</B>(<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>&nbsp;param)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOutputStream()"><!-- --></A><H3>
    +getOutputStream</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A> <B>getOutputStream</B>()</PRE>
    +<DL>
    +<DD>Returns the OutputStream associated with this ImageEncoder.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="encode(java.awt.image.RenderedImage)"><!-- --></A><H3>
    +encode</H3>
    +<PRE>
    +public void <B>encode</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/RenderedImage.html?is-external=true" title="class or interface in java.awt.image">RenderedImage</A>&nbsp;im)
    +            throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>This method encodes a <code>RenderedImage</code> into PNG.
    + The stream into which the PNG is dumped is not closed at
    + the end of the operation, this should be done if needed
    + by the caller of this method.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngImageEncoder.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngImageEncoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngImageEncoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html b/java/docs/com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html
    new file mode 100644
    index 000000000..f2763f33c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html
    @@ -0,0 +1,395 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPngSuggestedPaletteEntry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPngSuggestedPaletteEntry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngSuggestedPaletteEntry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngSuggestedPaletteEntry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.png</FONT>
    +<BR>
    +Class mxPngSuggestedPaletteEntry</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.png.mxPngSuggestedPaletteEntry</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxPngSuggestedPaletteEntry</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DL>
    +</PRE>
    +
    +<P>
    +A class representing the fields of a PNG suggested palette entry.
    +
    + <p><b> This class is not a committed part of the JAI API.  It may
    + be removed or changed in future releases of JAI.</b>
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.util.png.mxPngSuggestedPaletteEntry">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#alpha">alpha</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The alpha opacity value of the entry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#blue">blue</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The blue color value of the entry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#frequency">frequency</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The probable frequency of the color in the image.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#green">green</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The green color value of the entry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#name">name</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The name of the entry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#red">red</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The red color value of the entry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#sampleDepth">sampleDepth</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The depth of the color samples.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#mxPngSuggestedPaletteEntry()">mxPngSuggestedPaletteEntry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="name"><!-- --></A><H3>
    +name</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>name</B></PRE>
    +<DL>
    +<DD>The name of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="sampleDepth"><!-- --></A><H3>
    +sampleDepth</H3>
    +<PRE>
    +public int <B>sampleDepth</B></PRE>
    +<DL>
    +<DD>The depth of the color samples.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="red"><!-- --></A><H3>
    +red</H3>
    +<PRE>
    +public int <B>red</B></PRE>
    +<DL>
    +<DD>The red color value of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="green"><!-- --></A><H3>
    +green</H3>
    +<PRE>
    +public int <B>green</B></PRE>
    +<DL>
    +<DD>The green color value of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="blue"><!-- --></A><H3>
    +blue</H3>
    +<PRE>
    +public int <B>blue</B></PRE>
    +<DL>
    +<DD>The blue color value of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="alpha"><!-- --></A><H3>
    +alpha</H3>
    +<PRE>
    +public int <B>alpha</B></PRE>
    +<DL>
    +<DD>The alpha opacity value of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="frequency"><!-- --></A><H3>
    +frequency</H3>
    +<PRE>
    +public int <B>frequency</B></PRE>
    +<DL>
    +<DD>The probable frequency of the color in the image.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPngSuggestedPaletteEntry()"><!-- --></A><H3>
    +mxPngSuggestedPaletteEntry</H3>
    +<PRE>
    +public <B>mxPngSuggestedPaletteEntry</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngSuggestedPaletteEntry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngSuggestedPaletteEntry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/mxPngTextDecoder.html b/java/docs/com/mxgraph/util/png/mxPngTextDecoder.html
    new file mode 100644
    index 000000000..64da93cf2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/mxPngTextDecoder.html
    @@ -0,0 +1,313 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPngTextDecoder (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPngTextDecoder (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngTextDecoder.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngTextDecoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngTextDecoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.png</FONT>
    +<BR>
    +Class mxPngTextDecoder</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.png.mxPngTextDecoder</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxPngTextDecoder</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Utility class to extract the compression text portion of a PNG
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngTextDecoder.html#PNG_CHUNK_IEND">PNG_CHUNK_IEND</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngTextDecoder.html#PNG_CHUNK_ZTXT">PNG_CHUNK_ZTXT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngTextDecoder.html#mxPngTextDecoder()">mxPngTextDecoder</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/png/mxPngTextDecoder.html#decodeCompressedText(java.io.InputStream)">decodeCompressedText</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;stream)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decodes the zTXt chunk of the given PNG image stream.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="PNG_CHUNK_ZTXT"><!-- --></A><H3>
    +PNG_CHUNK_ZTXT</H3>
    +<PRE>
    +public static final int <B>PNG_CHUNK_ZTXT</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngTextDecoder.PNG_CHUNK_ZTXT">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="PNG_CHUNK_IEND"><!-- --></A><H3>
    +PNG_CHUNK_IEND</H3>
    +<PRE>
    +public static final int <B>PNG_CHUNK_IEND</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.png.mxPngTextDecoder.PNG_CHUNK_IEND">Constant Field Values</A></DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPngTextDecoder()"><!-- --></A><H3>
    +mxPngTextDecoder</H3>
    +<PRE>
    +public <B>mxPngTextDecoder</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="decodeCompressedText(java.io.InputStream)"><!-- --></A><H3>
    +decodeCompressedText</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>decodeCompressedText</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;stream)</PRE>
    +<DL>
    +<DD>Decodes the zTXt chunk of the given PNG image stream.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPngTextDecoder.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/mxPngTextDecoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPngTextDecoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/package-frame.html b/java/docs/com/mxgraph/util/png/package-frame.html
    new file mode 100644
    index 000000000..d569a47fa
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/package-frame.html
    @@ -0,0 +1,44 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.util.png (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../com/mxgraph/util/png/package-summary.html" target="classFrame">com.mxgraph.util.png</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxPngEncodeParam.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngEncodeParam</A>
    +<BR>
    +<A HREF="mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngEncodeParam.Gray</A>
    +<BR>
    +<A HREF="mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngEncodeParam.Palette</A>
    +<BR>
    +<A HREF="mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngEncodeParam.RGB</A>
    +<BR>
    +<A HREF="mxPngImageEncoder.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngImageEncoder</A>
    +<BR>
    +<A HREF="mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngSuggestedPaletteEntry</A>
    +<BR>
    +<A HREF="mxPngTextDecoder.html" title="class in com.mxgraph.util.png" target="classFrame">mxPngTextDecoder</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/package-summary.html b/java/docs/com/mxgraph/util/png/package-summary.html
    new file mode 100644
    index 000000000..d0bdbbfd5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/package-summary.html
    @@ -0,0 +1,183 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.util.png (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.util.png (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.util.png
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></B></TD>
    +<TD>An instance of <code>ImageEncodeParam</code> for encoding images in
    + the PNG format.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png">mxPngImageEncoder</A></B></TD>
    +<TD>An ImageEncoder for the PNG file format.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A></B></TD>
    +<TD>A class representing the fields of a PNG suggested palette entry.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png">mxPngTextDecoder</A></B></TD>
    +<TD>Utility class to extract the compression text portion of a PNG</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/package-tree.html b/java/docs/com/mxgraph/util/png/package-tree.html
    new file mode 100644
    index 000000000..f9a20eac7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/package-tree.html
    @@ -0,0 +1,157 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.util.png Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.util.png Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.util.png
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam.Gray</B></A><LI TYPE="circle">com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam.Palette</B></A><LI TYPE="circle">com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam.RGB</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png"><B>mxPngImageEncoder</B></A><LI TYPE="circle">com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png"><B>mxPngSuggestedPaletteEntry</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<LI TYPE="circle">com.mxgraph.util.png.<A HREF="../../../../com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png"><B>mxPngTextDecoder</B></A></UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/png/package-use.html b/java/docs/com/mxgraph/util/png/package-use.html
    new file mode 100644
    index 000000000..ebde1789f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/png/package-use.html
    @@ -0,0 +1,178 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.util.png (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.util.png (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.util.png</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.png"><B>com.mxgraph.util.png</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.png"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A> used by <A HREF="../../../../com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/png/class-use/mxPngEncodeParam.html#com.mxgraph.util.png"><B>mxPngEncodeParam</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An instance of <code>ImageEncodeParam</code> for encoding images in
    + the PNG format.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/png/class-use/mxPngSuggestedPaletteEntry.html#com.mxgraph.util.png"><B>mxPngSuggestedPaletteEntry</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A class representing the fields of a PNG suggested palette entry.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/png/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/AWTPathProducer.html b/java/docs/com/mxgraph/util/svg/AWTPathProducer.html
    new file mode 100644
    index 000000000..a57796c81
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/AWTPathProducer.html
    @@ -0,0 +1,1140 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +AWTPathProducer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="AWTPathProducer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AWTPathProducer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/AWTPathProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPathProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class AWTPathProducer</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.AWTPathProducer</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>AWTPathProducer</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></DL>
    +</PRE>
    +
    +<P>
    +This class provides an implementation of the PathHandler that initializes
    + a Shape from the value of a path's 'd' attribute.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#currentX">currentX</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The current x position.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#currentY">currentY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The current y position.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#path">path</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The temporary value of extendedGeneralPath.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#windingRule">windingRule</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The winding rule to use to construct the path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#xCenter">xCenter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The reference x point for smooth arcs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#yCenter">yCenter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The reference y point for smooth arcs.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#AWTPathProducer()">AWTPathProducer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#arcAbs(float, float, float, boolean, boolean, float, float)">arcAbs</A></B>(float&nbsp;rx,
    +       float&nbsp;ry,
    +       float&nbsp;xAxisRotation,
    +       boolean&nbsp;largeArcFlag,
    +       boolean&nbsp;sweepFlag,
    +       float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#arcAbs(float, float, float, boolean, boolean, float, float)"><CODE>PathHandler.arcAbs(float,float,float,boolean,boolean,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#arcRel(float, float, float, boolean, boolean, float, float)">arcRel</A></B>(float&nbsp;rx,
    +       float&nbsp;ry,
    +       float&nbsp;xAxisRotation,
    +       boolean&nbsp;largeArcFlag,
    +       boolean&nbsp;sweepFlag,
    +       float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#arcRel(float, float, float, boolean, boolean, float, float)"><CODE>PathHandler.arcRel(float,float,float,boolean,boolean,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#closePath()">closePath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#closePath()"><CODE>PathHandler.closePath()</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#createShape(java.lang.String, int)">createShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +            int&nbsp;wr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method for creating an ExtendedGeneralPath.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicAbs(float, float, float, float, float, float)">curvetoCubicAbs</A></B>(float&nbsp;x1,
    +                float&nbsp;y1,
    +                float&nbsp;x2,
    +                float&nbsp;y2,
    +                float&nbsp;x,
    +                float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicAbs(float, float, float, float, float, float)"><CODE>PathHandler.curvetoCubicAbs(float,float,float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicRel(float, float, float, float, float, float)">curvetoCubicRel</A></B>(float&nbsp;x1,
    +                float&nbsp;y1,
    +                float&nbsp;x2,
    +                float&nbsp;y2,
    +                float&nbsp;x,
    +                float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicRel(float, float, float, float, float, float)"><CODE>PathHandler.curvetoCubicRel(float,float,float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicSmoothAbs(float, float, float, float)">curvetoCubicSmoothAbs</A></B>(float&nbsp;x2,
    +                      float&nbsp;y2,
    +                      float&nbsp;x,
    +                      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements
    + <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothAbs(float, float, float, float)"><CODE>PathHandler.curvetoCubicSmoothAbs(float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicSmoothRel(float, float, float, float)">curvetoCubicSmoothRel</A></B>(float&nbsp;x2,
    +                      float&nbsp;y2,
    +                      float&nbsp;x,
    +                      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements
    + <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothRel(float, float, float, float)"><CODE>PathHandler.curvetoCubicSmoothRel(float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticAbs(float, float, float, float)">curvetoQuadraticAbs</A></B>(float&nbsp;x1,
    +                    float&nbsp;y1,
    +                    float&nbsp;x,
    +                    float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements
    + <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticAbs(float, float, float, float)"><CODE>PathHandler.curvetoQuadraticAbs(float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticRel(float, float, float, float)">curvetoQuadraticRel</A></B>(float&nbsp;x1,
    +                    float&nbsp;y1,
    +                    float&nbsp;x,
    +                    float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements
    + <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticRel(float, float, float, float)"><CODE>PathHandler.curvetoQuadraticRel(float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticSmoothAbs(float, float)">curvetoQuadraticSmoothAbs</A></B>(float&nbsp;x,
    +                          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothAbs(float, float)"><CODE>PathHandler.curvetoQuadraticSmoothAbs(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticSmoothRel(float, float)">curvetoQuadraticSmoothRel</A></B>(float&nbsp;x,
    +                          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothRel(float, float)"><CODE>PathHandler.curvetoQuadraticSmoothRel(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#endPath()">endPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#endPath()"><CODE>PathHandler.endPath()</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#getShape()">getShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Shape object initialized during the last parsing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#getWindingRule()">getWindingRule</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current winding rule.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoAbs(float, float)">linetoAbs</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoAbs(float, float)"><CODE>PathHandler.linetoAbs(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoHorizontalAbs(float)">linetoHorizontalAbs</A></B>(float&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalAbs(float)"><CODE>PathHandler.linetoHorizontalAbs(float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoHorizontalRel(float)">linetoHorizontalRel</A></B>(float&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalRel(float)"><CODE>PathHandler.linetoHorizontalRel(float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoRel(float, float)">linetoRel</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoRel(float, float)"><CODE>PathHandler.linetoRel(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoVerticalAbs(float)">linetoVerticalAbs</A></B>(float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalAbs(float)"><CODE>PathHandler.linetoVerticalAbs(float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoVerticalRel(float)">linetoVerticalRel</A></B>(float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalRel(float)"><CODE>PathHandler.linetoVerticalRel(float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#movetoAbs(float, float)">movetoAbs</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#movetoAbs(float, float)"><CODE>PathHandler.movetoAbs(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#movetoRel(float, float)">movetoRel</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#movetoRel(float, float)"><CODE>PathHandler.movetoRel(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#setWindingRule(int)">setWindingRule</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the winding rule used to construct the path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html#startPath()">startPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#startPath()"><CODE>PathHandler.startPath()</CODE></A>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="path"><!-- --></A><H3>
    +path</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A> <B>path</B></PRE>
    +<DL>
    +<DD>The temporary value of extendedGeneralPath.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentX"><!-- --></A><H3>
    +currentX</H3>
    +<PRE>
    +protected float <B>currentX</B></PRE>
    +<DL>
    +<DD>The current x position.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentY"><!-- --></A><H3>
    +currentY</H3>
    +<PRE>
    +protected float <B>currentY</B></PRE>
    +<DL>
    +<DD>The current y position.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="xCenter"><!-- --></A><H3>
    +xCenter</H3>
    +<PRE>
    +protected float <B>xCenter</B></PRE>
    +<DL>
    +<DD>The reference x point for smooth arcs.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="yCenter"><!-- --></A><H3>
    +yCenter</H3>
    +<PRE>
    +protected float <B>yCenter</B></PRE>
    +<DL>
    +<DD>The reference y point for smooth arcs.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="windingRule"><!-- --></A><H3>
    +windingRule</H3>
    +<PRE>
    +protected int <B>windingRule</B></PRE>
    +<DL>
    +<DD>The winding rule to use to construct the path.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="AWTPathProducer()"><!-- --></A><H3>
    +AWTPathProducer</H3>
    +<PRE>
    +public <B>AWTPathProducer</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(java.lang.String, int)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                int&nbsp;wr)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Utility method for creating an ExtendedGeneralPath.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - The text representation of the path specification.<DD><CODE>wr</CODE> - The winding rule to use for creating the path.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setWindingRule(int)"><!-- --></A><H3>
    +setWindingRule</H3>
    +<PRE>
    +public void <B>setWindingRule</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>Sets the winding rule used to construct the path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html#setWindingRule(int)">setWindingRule</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getWindingRule()"><!-- --></A><H3>
    +getWindingRule</H3>
    +<PRE>
    +public int <B>getWindingRule</B>()</PRE>
    +<DL>
    +<DD>Returns the current winding rule.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html#getWindingRule()">getWindingRule</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getShape()"><!-- --></A><H3>
    +getShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>getShape</B>()</PRE>
    +<DL>
    +<DD>Returns the Shape object initialized during the last parsing.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html#getShape()">getShape</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the shape or null if this handler has not been used by
    +         a parser.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startPath()"><!-- --></A><H3>
    +startPath</H3>
    +<PRE>
    +public void <B>startPath</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#startPath()"><CODE>PathHandler.startPath()</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#startPath()">startPath</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="endPath()"><!-- --></A><H3>
    +endPath</H3>
    +<PRE>
    +public void <B>endPath</B>()
    +             throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#endPath()"><CODE>PathHandler.endPath()</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#endPath()">endPath</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="movetoRel(float, float)"><!-- --></A><H3>
    +movetoRel</H3>
    +<PRE>
    +public void <B>movetoRel</B>(float&nbsp;x,
    +                      float&nbsp;y)
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#movetoRel(float, float)"><CODE>PathHandler.movetoRel(float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#movetoRel(float, float)">movetoRel</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="movetoAbs(float, float)"><!-- --></A><H3>
    +movetoAbs</H3>
    +<PRE>
    +public void <B>movetoAbs</B>(float&nbsp;x,
    +                      float&nbsp;y)
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#movetoAbs(float, float)"><CODE>PathHandler.movetoAbs(float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#movetoAbs(float, float)">movetoAbs</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="closePath()"><!-- --></A><H3>
    +closePath</H3>
    +<PRE>
    +public void <B>closePath</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#closePath()"><CODE>PathHandler.closePath()</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#closePath()">closePath</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoRel(float, float)"><!-- --></A><H3>
    +linetoRel</H3>
    +<PRE>
    +public void <B>linetoRel</B>(float&nbsp;x,
    +                      float&nbsp;y)
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoRel(float, float)"><CODE>PathHandler.linetoRel(float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoRel(float, float)">linetoRel</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the relative x coordinates for the end point<DD><CODE>y</CODE> - the relative y coordinates for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoAbs(float, float)"><!-- --></A><H3>
    +linetoAbs</H3>
    +<PRE>
    +public void <B>linetoAbs</B>(float&nbsp;x,
    +                      float&nbsp;y)
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoAbs(float, float)"><CODE>PathHandler.linetoAbs(float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoAbs(float, float)">linetoAbs</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoHorizontalRel(float)"><!-- --></A><H3>
    +linetoHorizontalRel</H3>
    +<PRE>
    +public void <B>linetoHorizontalRel</B>(float&nbsp;x)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalRel(float)"><CODE>PathHandler.linetoHorizontalRel(float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalRel(float)">linetoHorizontalRel</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the relative X coordinate of the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoHorizontalAbs(float)"><!-- --></A><H3>
    +linetoHorizontalAbs</H3>
    +<PRE>
    +public void <B>linetoHorizontalAbs</B>(float&nbsp;x)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalAbs(float)"><CODE>PathHandler.linetoHorizontalAbs(float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalAbs(float)">linetoHorizontalAbs</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the absolute X coordinate of the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoVerticalRel(float)"><!-- --></A><H3>
    +linetoVerticalRel</H3>
    +<PRE>
    +public void <B>linetoVerticalRel</B>(float&nbsp;y)
    +                       throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalRel(float)"><CODE>PathHandler.linetoVerticalRel(float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalRel(float)">linetoVerticalRel</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>y</CODE> - the relative Y coordinate of the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoVerticalAbs(float)"><!-- --></A><H3>
    +linetoVerticalAbs</H3>
    +<PRE>
    +public void <B>linetoVerticalAbs</B>(float&nbsp;y)
    +                       throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalAbs(float)"><CODE>PathHandler.linetoVerticalAbs(float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalAbs(float)">linetoVerticalAbs</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>y</CODE> - the absolute Y coordinate of the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoCubicRel(float, float, float, float, float, float)"><!-- --></A><H3>
    +curvetoCubicRel</H3>
    +<PRE>
    +public void <B>curvetoCubicRel</B>(float&nbsp;x1,
    +                            float&nbsp;y1,
    +                            float&nbsp;x2,
    +                            float&nbsp;y2,
    +                            float&nbsp;x,
    +                            float&nbsp;y)
    +                     throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicRel(float, float, float, float, float, float)"><CODE>PathHandler.curvetoCubicRel(float,float,float,float,float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicRel(float, float, float, float, float, float)">curvetoCubicRel</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the relative x coordinate for the first control point<DD><CODE>y1</CODE> - the relative y coordinate for the first control point<DD><CODE>x2</CODE> - the relative x coordinate for the second control point<DD><CODE>y2</CODE> - the relative y coordinate for the second control point<DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoCubicAbs(float, float, float, float, float, float)"><!-- --></A><H3>
    +curvetoCubicAbs</H3>
    +<PRE>
    +public void <B>curvetoCubicAbs</B>(float&nbsp;x1,
    +                            float&nbsp;y1,
    +                            float&nbsp;x2,
    +                            float&nbsp;y2,
    +                            float&nbsp;x,
    +                            float&nbsp;y)
    +                     throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicAbs(float, float, float, float, float, float)"><CODE>PathHandler.curvetoCubicAbs(float,float,float,float,float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicAbs(float, float, float, float, float, float)">curvetoCubicAbs</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the absolute x coordinate for the first control point<DD><CODE>y1</CODE> - the absolute y coordinate for the first control point<DD><CODE>x2</CODE> - the absolute x coordinate for the second control point<DD><CODE>y2</CODE> - the absolute y coordinate for the second control point<DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoCubicSmoothRel(float, float, float, float)"><!-- --></A><H3>
    +curvetoCubicSmoothRel</H3>
    +<PRE>
    +public void <B>curvetoCubicSmoothRel</B>(float&nbsp;x2,
    +                                  float&nbsp;y2,
    +                                  float&nbsp;x,
    +                                  float&nbsp;y)
    +                           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements
    + <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothRel(float, float, float, float)"><CODE>PathHandler.curvetoCubicSmoothRel(float,float,float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothRel(float, float, float, float)">curvetoCubicSmoothRel</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x2</CODE> - the relative x coordinate for the second control point<DD><CODE>y2</CODE> - the relative y coordinate for the second control point<DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoCubicSmoothAbs(float, float, float, float)"><!-- --></A><H3>
    +curvetoCubicSmoothAbs</H3>
    +<PRE>
    +public void <B>curvetoCubicSmoothAbs</B>(float&nbsp;x2,
    +                                  float&nbsp;y2,
    +                                  float&nbsp;x,
    +                                  float&nbsp;y)
    +                           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements
    + <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothAbs(float, float, float, float)"><CODE>PathHandler.curvetoCubicSmoothAbs(float,float,float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothAbs(float, float, float, float)">curvetoCubicSmoothAbs</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x2</CODE> - the absolute x coordinate for the second control point<DD><CODE>y2</CODE> - the absolute y coordinate for the second control point<DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoQuadraticRel(float, float, float, float)"><!-- --></A><H3>
    +curvetoQuadraticRel</H3>
    +<PRE>
    +public void <B>curvetoQuadraticRel</B>(float&nbsp;x1,
    +                                float&nbsp;y1,
    +                                float&nbsp;x,
    +                                float&nbsp;y)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements
    + <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticRel(float, float, float, float)"><CODE>PathHandler.curvetoQuadraticRel(float,float,float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticRel(float, float, float, float)">curvetoQuadraticRel</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the relative x coordinate for the control point<DD><CODE>y1</CODE> - the relative y coordinate for the control point<DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative x coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoQuadraticAbs(float, float, float, float)"><!-- --></A><H3>
    +curvetoQuadraticAbs</H3>
    +<PRE>
    +public void <B>curvetoQuadraticAbs</B>(float&nbsp;x1,
    +                                float&nbsp;y1,
    +                                float&nbsp;x,
    +                                float&nbsp;y)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements
    + <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticAbs(float, float, float, float)"><CODE>PathHandler.curvetoQuadraticAbs(float,float,float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticAbs(float, float, float, float)">curvetoQuadraticAbs</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the absolute x coordinate for the control point<DD><CODE>y1</CODE> - the absolute y coordinate for the control point<DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute x coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoQuadraticSmoothRel(float, float)"><!-- --></A><H3>
    +curvetoQuadraticSmoothRel</H3>
    +<PRE>
    +public void <B>curvetoQuadraticSmoothRel</B>(float&nbsp;x,
    +                                      float&nbsp;y)
    +                               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothRel(float, float)"><CODE>PathHandler.curvetoQuadraticSmoothRel(float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothRel(float, float)">curvetoQuadraticSmoothRel</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoQuadraticSmoothAbs(float, float)"><!-- --></A><H3>
    +curvetoQuadraticSmoothAbs</H3>
    +<PRE>
    +public void <B>curvetoQuadraticSmoothAbs</B>(float&nbsp;x,
    +                                      float&nbsp;y)
    +                               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothAbs(float, float)"><CODE>PathHandler.curvetoQuadraticSmoothAbs(float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothAbs(float, float)">curvetoQuadraticSmoothAbs</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="arcRel(float, float, float, boolean, boolean, float, float)"><!-- --></A><H3>
    +arcRel</H3>
    +<PRE>
    +public void <B>arcRel</B>(float&nbsp;rx,
    +                   float&nbsp;ry,
    +                   float&nbsp;xAxisRotation,
    +                   boolean&nbsp;largeArcFlag,
    +                   boolean&nbsp;sweepFlag,
    +                   float&nbsp;x,
    +                   float&nbsp;y)
    +            throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#arcRel(float, float, float, boolean, boolean, float, float)"><CODE>PathHandler.arcRel(float,float,float,boolean,boolean,float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#arcRel(float, float, float, boolean, boolean, float, float)">arcRel</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rx</CODE> - the X axis radius for the ellipse<DD><CODE>ry</CODE> - the Y axis radius for the ellipse<DD><CODE>xAxisRotation</CODE> - the rotation angle in degrees for the ellipse's
    +                      X-axis relative to the X-axis<DD><CODE>largeArcFlag</CODE> - the value of the large-arc-flag<DD><CODE>sweepFlag</CODE> - the value of the sweep-flag<DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="arcAbs(float, float, float, boolean, boolean, float, float)"><!-- --></A><H3>
    +arcAbs</H3>
    +<PRE>
    +public void <B>arcAbs</B>(float&nbsp;rx,
    +                   float&nbsp;ry,
    +                   float&nbsp;xAxisRotation,
    +                   boolean&nbsp;largeArcFlag,
    +                   boolean&nbsp;sweepFlag,
    +                   float&nbsp;x,
    +                   float&nbsp;y)
    +            throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#arcAbs(float, float, float, boolean, boolean, float, float)"><CODE>PathHandler.arcAbs(float,float,float,boolean,boolean,float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#arcAbs(float, float, float, boolean, boolean, float, float)">arcAbs</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rx</CODE> - the X axis radius for the ellipse<DD><CODE>ry</CODE> - the Y axis radius for the ellipse<DD><CODE>xAxisRotation</CODE> - the rotation angle in degrees for the ellipse's
    +                      X-axis relative to the X-axis<DD><CODE>largeArcFlag</CODE> - the value of the large-arc-flag<DD><CODE>sweepFlag</CODE> - the value of the sweep-flag<DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AWTPathProducer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/AWTPathProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPathProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/AWTPolygonProducer.html b/java/docs/com/mxgraph/util/svg/AWTPolygonProducer.html
    new file mode 100644
    index 000000000..e83fd04c5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/AWTPolygonProducer.html
    @@ -0,0 +1,323 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +AWTPolygonProducer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="AWTPolygonProducer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AWTPolygonProducer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/AWTPolygonProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPolygonProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.svg.AWTPolylineProducer">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class AWTPolygonProducer</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">com.mxgraph.util.svg.AWTPolylineProducer</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.AWTPolygonProducer</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>AWTPolygonProducer</B><DT>extends <A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></DL>
    +</PRE>
    +
    +<P>
    +This class produces a polygon shape from a reader.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.svg.AWTPolylineProducer"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#newPath">newPath</A>, <A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#path">path</A>, <A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#windingRule">windingRule</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html#AWTPolygonProducer()">AWTPolygonProducer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html#createShape(java.lang.String, int)">createShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +            int&nbsp;wr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method for creating an ExtendedGeneralPath.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html#endPoints()">endPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()"><CODE>PointsHandler.endPoints()</CODE></A>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.svg.AWTPolylineProducer"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#getShape()">getShape</A>, <A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#getWindingRule()">getWindingRule</A>, <A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#point(float, float)">point</A>, <A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#setWindingRule(int)">setWindingRule</A>, <A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#startPoints()">startPoints</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="AWTPolygonProducer()"><!-- --></A><H3>
    +AWTPolygonProducer</H3>
    +<PRE>
    +public <B>AWTPolygonProducer</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(java.lang.String, int)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                int&nbsp;wr)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Utility method for creating an ExtendedGeneralPath.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - The text representation of the path specification.<DD><CODE>wr</CODE> - The winding rule to use for creating the path.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="endPoints()"><!-- --></A><H3>
    +endPoints</H3>
    +<PRE>
    +public void <B>endPoints</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()"><CODE>PointsHandler.endPoints()</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()">endPoints</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#endPoints()">endPoints</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the
    +                           points</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AWTPolygonProducer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/AWTPolygonProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPolygonProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.svg.AWTPolylineProducer">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/AWTPolylineProducer.html b/java/docs/com/mxgraph/util/svg/AWTPolylineProducer.html
    new file mode 100644
    index 000000000..d3e1b1d44
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/AWTPolylineProducer.html
    @@ -0,0 +1,511 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +AWTPolylineProducer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="AWTPolylineProducer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AWTPolylineProducer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/AWTPolylineProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPolylineProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class AWTPolylineProducer</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.AWTPolylineProducer</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>AWTPolylineProducer</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></DL>
    +</PRE>
    +
    +<P>
    +This class produces a polyline shape from a reader.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#newPath">newPath</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is the current path a new one?</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/GeneralPath.html?is-external=true" title="class or interface in java.awt.geom">GeneralPath</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#path">path</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The current path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#windingRule">windingRule</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The winding rule to use to construct the path.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#AWTPolylineProducer()">AWTPolylineProducer</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#createShape(java.lang.String, int)">createShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +            int&nbsp;wr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method for creating an ExtendedGeneralPath.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#endPoints()">endPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()"><CODE>PointsHandler.endPoints()</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#getShape()">getShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Shape object initialized during the last parsing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#getWindingRule()">getWindingRule</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current winding rule.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#point(float, float)">point</A></B>(float&nbsp;x,
    +      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#point(float, float)"><CODE>PointsHandler.point(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#setWindingRule(int)">setWindingRule</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the winding rule used to construct the path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#startPoints()">startPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#startPoints()"><CODE>PointsHandler.startPoints()</CODE></A>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="path"><!-- --></A><H3>
    +path</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/GeneralPath.html?is-external=true" title="class or interface in java.awt.geom">GeneralPath</A> <B>path</B></PRE>
    +<DL>
    +<DD>The current path.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="newPath"><!-- --></A><H3>
    +newPath</H3>
    +<PRE>
    +protected boolean <B>newPath</B></PRE>
    +<DL>
    +<DD>Is the current path a new one?
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="windingRule"><!-- --></A><H3>
    +windingRule</H3>
    +<PRE>
    +protected int <B>windingRule</B></PRE>
    +<DL>
    +<DD>The winding rule to use to construct the path.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="AWTPolylineProducer()"><!-- --></A><H3>
    +AWTPolylineProducer</H3>
    +<PRE>
    +public <B>AWTPolylineProducer</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createShape(java.lang.String, int)"><!-- --></A><H3>
    +createShape</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +                                int&nbsp;wr)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Utility method for creating an ExtendedGeneralPath.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>text</CODE> - The text representation of the path specification.<DD><CODE>wr</CODE> - The winding rule to use for creating the path.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setWindingRule(int)"><!-- --></A><H3>
    +setWindingRule</H3>
    +<PRE>
    +public void <B>setWindingRule</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>Sets the winding rule used to construct the path.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html#setWindingRule(int)">setWindingRule</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getWindingRule()"><!-- --></A><H3>
    +getWindingRule</H3>
    +<PRE>
    +public int <B>getWindingRule</B>()</PRE>
    +<DL>
    +<DD>Returns the current winding rule.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html#getWindingRule()">getWindingRule</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getShape()"><!-- --></A><H3>
    +getShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>getShape</B>()</PRE>
    +<DL>
    +<DD>Returns the Shape object initialized during the last parsing.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html#getShape()">getShape</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the shape or null if this handler has not been used by
    +         a parser.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="startPoints()"><!-- --></A><H3>
    +startPoints</H3>
    +<PRE>
    +public void <B>startPoints</B>()
    +                 throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#startPoints()"><CODE>PointsHandler.startPoints()</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#startPoints()">startPoints</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the
    +                           points</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="point(float, float)"><!-- --></A><H3>
    +point</H3>
    +<PRE>
    +public void <B>point</B>(float&nbsp;x,
    +                  float&nbsp;y)
    +           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#point(float, float)"><CODE>PointsHandler.point(float,float)</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#point(float, float)">point</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x coordinate of the point<DD><CODE>y</CODE> - the y coordinate of the point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the
    +                           points</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="endPoints()"><!-- --></A><H3>
    +endPoints</H3>
    +<PRE>
    +public void <B>endPoints</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()"><CODE>PointsHandler.endPoints()</CODE></A>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()">endPoints</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the
    +                           points</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AWTPolylineProducer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/AWTPolylineProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPolylineProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/AbstractParser.html b/java/docs/com/mxgraph/util/svg/AbstractParser.html
    new file mode 100644
    index 000000000..60ba510c3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/AbstractParser.html
    @@ -0,0 +1,643 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +AbstractParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="AbstractParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/AbstractParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AbstractParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class AbstractParser</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.AbstractParser</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract class <B>AbstractParser</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></DL>
    +</PRE>
    +
    +<P>
    +This class is the superclass of all parsers. It provides localization
    + and error handling methods.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#BUNDLE_CLASSNAME">BUNDLE_CLASSNAME</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default resource bundle base name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#current">current</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The current character.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#errorHandler">errorHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The error handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reader">reader</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The normalizing reader.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#AbstractParser()">AbstractParser</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#createErrorMessage(java.lang.String, java.lang.Object[])">createErrorMessage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;args)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a localized error message.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected abstract &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#doParse()">doParse</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method responsible for actually parsing data after AbstractParser
    + has initialized itself.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#getBundleClassName()">getBundleClassName</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the resource bundle base name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#getCurrent()">getCurrent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current character value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#parse(java.lang.String)">parse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the given string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportCharacterExpectedError(char, int)">reportCharacterExpectedError</A></B>(char&nbsp;expectedChar,
    +                             int&nbsp;currentChar)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;simple api to call often reported error.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportError(java.lang.String, java.lang.Object[])">reportError</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;args)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Signals an error to the error handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportUnexpectedCharacterError(int)">reportUnexpectedCharacterError</A></B>(int&nbsp;currentChar)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;simple api to call often reported error.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)">setErrorHandler</A></B>(<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allow an application to register an error event handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#skipCommaSpaces()">skipCommaSpaces</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Skips the whitespaces and an optional comma.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#skipSpaces()">skipSpaces</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Skips the whitespaces in the current reader.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="BUNDLE_CLASSNAME"><!-- --></A><H3>
    +BUNDLE_CLASSNAME</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>BUNDLE_CLASSNAME</B></PRE>
    +<DL>
    +<DD>The default resource bundle base name.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.AbstractParser.BUNDLE_CLASSNAME">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="errorHandler"><!-- --></A><H3>
    +errorHandler</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A> <B>errorHandler</B></PRE>
    +<DL>
    +<DD>The error handler.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="reader"><!-- --></A><H3>
    +reader</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A> <B>reader</B></PRE>
    +<DL>
    +<DD>The normalizing reader.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="current"><!-- --></A><H3>
    +current</H3>
    +<PRE>
    +protected int <B>current</B></PRE>
    +<DL>
    +<DD>The current character.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="AbstractParser()"><!-- --></A><H3>
    +AbstractParser</H3>
    +<PRE>
    +public <B>AbstractParser</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getCurrent()"><!-- --></A><H3>
    +getCurrent</H3>
    +<PRE>
    +public int <B>getCurrent</B>()</PRE>
    +<DL>
    +<DD>Returns the current character value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setErrorHandler(com.mxgraph.util.svg.ErrorHandler)"><!-- --></A><H3>
    +setErrorHandler</H3>
    +<PRE>
    +public void <B>setErrorHandler</B>(<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A>&nbsp;handler)</PRE>
    +<DL>
    +<DD>Allow an application to register an error event handler.
    +
    + <p>If the application does not register an error event handler,
    + all error events reported by the parser will cause an exception
    + to be thrown.
    +
    + <p>Applications may register a new or different handler in the
    + middle of a parse, and the parser must begin using the new
    + handler immediately.</p>
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/Parser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)">setErrorHandler</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>handler</CODE> - The error handler.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parse(java.lang.String)"><!-- --></A><H3>
    +parse</H3>
    +<PRE>
    +public void <B>parse</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)
    +           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Parses the given string.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/Parser.html#parse(java.lang.String)">parse</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="doParse()"><!-- --></A><H3>
    +doParse</H3>
    +<PRE>
    +protected abstract void <B>doParse</B>()
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Method responsible for actually parsing data after AbstractParser
    + has initialized itself.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reportError(java.lang.String, java.lang.Object[])"><!-- --></A><H3>
    +reportError</H3>
    +<PRE>
    +protected void <B>reportError</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;args)
    +                    throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Signals an error to the error handler.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - The message key in the resource bundle.<DD><CODE>args</CODE> - The message arguments.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reportCharacterExpectedError(char, int)"><!-- --></A><H3>
    +reportCharacterExpectedError</H3>
    +<PRE>
    +protected void <B>reportCharacterExpectedError</B>(char&nbsp;expectedChar,
    +                                            int&nbsp;currentChar)</PRE>
    +<DL>
    +<DD>simple api to call often reported error.
    + Just a wrapper for reportError().
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>expectedChar</CODE> - what caller expected<DD><CODE>currentChar</CODE> - what caller found</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reportUnexpectedCharacterError(int)"><!-- --></A><H3>
    +reportUnexpectedCharacterError</H3>
    +<PRE>
    +protected void <B>reportUnexpectedCharacterError</B>(int&nbsp;currentChar)</PRE>
    +<DL>
    +<DD>simple api to call often reported error.
    + Just a wrapper for reportError().
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>currentChar</CODE> - what the caller found and didnt expect</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createErrorMessage(java.lang.String, java.lang.Object[])"><!-- --></A><H3>
    +createErrorMessage</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>createErrorMessage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;args)</PRE>
    +<DL>
    +<DD>Returns a localized error message.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - The message key in the resource bundle.<DD><CODE>args</CODE> - The message arguments.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBundleClassName()"><!-- --></A><H3>
    +getBundleClassName</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getBundleClassName</B>()</PRE>
    +<DL>
    +<DD>Returns the resource bundle base name.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>BUNDLE_CLASSNAME.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="skipSpaces()"><!-- --></A><H3>
    +skipSpaces</H3>
    +<PRE>
    +protected void <B>skipSpaces</B>()
    +                   throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Skips the whitespaces in the current reader.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="skipCommaSpaces()"><!-- --></A><H3>
    +skipCommaSpaces</H3>
    +<PRE>
    +protected void <B>skipCommaSpaces</B>()
    +                        throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Skips the whitespaces and an optional comma.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/AbstractParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AbstractParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/CSSConstants.html b/java/docs/com/mxgraph/util/svg/CSSConstants.html
    new file mode 100644
    index 000000000..cb0ce1ad1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/CSSConstants.html
    @@ -0,0 +1,246 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +CSSConstants (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="CSSConstants (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CSSConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/CSSConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="CSSConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Interface CSSConstants</H2>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>CSSConstants</B></DL>
    +</PRE>
    +
    +<P>
    +This interface defines constants for CSS.
    + Important: Constants must not contain uppercase characters.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/CSSConstants.html#CSS_FILL_PROPERTY">CSS_FILL_PROPERTY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/CSSConstants.html#CSS_NONE_VALUE">CSS_NONE_VALUE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/CSSConstants.html#CSS_STROKE_PROPERTY">CSS_STROKE_PROPERTY</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="CSS_STROKE_PROPERTY"><!-- --></A><H3>
    +CSS_STROKE_PROPERTY</H3>
    +<PRE>
    +static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CSS_STROKE_PROPERTY</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.CSSConstants.CSS_STROKE_PROPERTY">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CSS_FILL_PROPERTY"><!-- --></A><H3>
    +CSS_FILL_PROPERTY</H3>
    +<PRE>
    +static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CSS_FILL_PROPERTY</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.CSSConstants.CSS_FILL_PROPERTY">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CSS_NONE_VALUE"><!-- --></A><H3>
    +CSS_NONE_VALUE</H3>
    +<PRE>
    +static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>CSS_NONE_VALUE</B></PRE>
    +<DL>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.CSSConstants.CSS_NONE_VALUE">Constant Field Values</A></DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CSSConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/CSSConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="CSSConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/DefaultErrorHandler.html b/java/docs/com/mxgraph/util/svg/DefaultErrorHandler.html
    new file mode 100644
    index 000000000..ef44ca80b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/DefaultErrorHandler.html
    @@ -0,0 +1,269 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +DefaultErrorHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="DefaultErrorHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DefaultErrorHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/DefaultErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="DefaultErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class DefaultErrorHandler</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.DefaultErrorHandler</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>DefaultErrorHandler</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></DL>
    +</PRE>
    +
    +<P>
    +This class provides a default implementation of ErrorHandler.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/DefaultErrorHandler.html#DefaultErrorHandler()">DefaultErrorHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/DefaultErrorHandler.html#error(com.mxgraph.util.svg.ParseException)">error</A></B>(<A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)"><CODE>ErrorHandler.error(ParseException)</CODE></A>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="DefaultErrorHandler()"><!-- --></A><H3>
    +DefaultErrorHandler</H3>
    +<PRE>
    +public <B>DefaultErrorHandler</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="error(com.mxgraph.util.svg.ParseException)"><!-- --></A><H3>
    +error</H3>
    +<PRE>
    +public void <B>error</B>(<A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>&nbsp;e)
    +           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Implements <A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)"><CODE>ErrorHandler.error(ParseException)</CODE></A>.
    + Throws the given exception.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)">error</A></CODE> in interface <CODE><A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DefaultErrorHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/DefaultErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="DefaultErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/ErrorHandler.html b/java/docs/com/mxgraph/util/svg/ErrorHandler.html
    new file mode 100644
    index 000000000..3d9b961be
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/ErrorHandler.html
    @@ -0,0 +1,220 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +ErrorHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="ErrorHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ErrorHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Interface ErrorHandler</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg">DefaultErrorHandler</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>ErrorHandler</B></DL>
    +</PRE>
    +
    +<P>
    +This interface must be implemented and then registred as the error handler
    + in order to be notified of parsing errors.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)">error</A></B>(<A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a parse error occurs.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="error(com.mxgraph.util.svg.ParseException)"><!-- --></A><H3>
    +error</H3>
    +<PRE>
    +void <B>error</B>(<A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>&nbsp;e)
    +           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Called when a parse error occurs.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ErrorHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/ExtendedGeneralPath.html b/java/docs/com/mxgraph/util/svg/ExtendedGeneralPath.html
    new file mode 100644
    index 000000000..fc376ab70
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/ExtendedGeneralPath.html
    @@ -0,0 +1,1133 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +ExtendedGeneralPath (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="ExtendedGeneralPath (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ExtendedGeneralPath.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ExtendedGeneralPath.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ExtendedGeneralPath.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class ExtendedGeneralPath</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.ExtendedGeneralPath</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>ExtendedGeneralPath</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DL>
    +</PRE>
    +
    +<P>
    +The <code>ExtendedGeneralPath</code> class represents a geometric
    + path constructed from straight lines, quadratic and cubic (Bezier)
    + curves and elliptical arc. This class delegates lines and curves to
    + an enclosed <code>GeneralPath</code>. Elliptical arc is implemented
    + using an <code>Arc2D</code> in float precision.
    +
    + <p><b>Warning</b> : An elliptical arc may be composed of several
    + path segments. For futher details, see the SVG Appendix&nbsp;F.6
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/GeneralPath.html?is-external=true" title="class or interface in java.awt.geom">GeneralPath</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#path">path</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The enclosed general path.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#ExtendedGeneralPath()">ExtendedGeneralPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new <code>ExtendedGeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#ExtendedGeneralPath(int)">ExtendedGeneralPath</A></B>(int&nbsp;rule)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new <code>ExtendedGeneralPath</code> with the
    + specified winding rule to control operations that require the
    + interior of the path to be defined.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#ExtendedGeneralPath(int, int)">ExtendedGeneralPath</A></B>(int&nbsp;rule,
    +                    int&nbsp;initialCapacity)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new <code>ExtendedGeneralPath</code> object with
    + the specified winding rule and the specified initial capacity
    + to store path coordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#ExtendedGeneralPath(java.awt.Shape)">ExtendedGeneralPath</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;s)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new <code>ExtendedGeneralPath</code> object from
    + an arbitrary <code>Shape</code> object.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#append(com.mxgraph.util.svg.ExtendedPathIterator, boolean)">append</A></B>(<A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>&nbsp;epi,
    +       boolean&nbsp;connect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#append(java.awt.geom.PathIterator, boolean)">append</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/PathIterator.html?is-external=true" title="class or interface in java.awt.geom">PathIterator</A>&nbsp;pi,
    +       boolean&nbsp;connect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#append(java.awt.Shape, boolean)">append</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;s,
    +       boolean&nbsp;connect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#arcTo(float, float, float, boolean, boolean, float, float)">arcTo</A></B>(float&nbsp;rx,
    +      float&nbsp;ry,
    +      float&nbsp;angle,
    +      boolean&nbsp;largeArcFlag,
    +      boolean&nbsp;sweepFlag,
    +      float&nbsp;x,
    +      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds an elliptical arc, defined by two radii, an angle from the
    + x-axis, a flag to choose the large arc or not, a flag to
    + indicate if we increase or decrease the angles and the final
    + point of the arc.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#checkMoveTo()">checkMoveTo</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if previous command was a moveto command,
    + skipping a close command (if present).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#clone()">clone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#closePath()">closePath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Arc2D.html?is-external=true" title="class or interface in java.awt.geom">Arc2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#computeArc(double, double, double, double, double, boolean, boolean, double, double)">computeArc</A></B>(double&nbsp;x0,
    +           double&nbsp;y0,
    +           double&nbsp;rx,
    +           double&nbsp;ry,
    +           double&nbsp;angle,
    +           boolean&nbsp;largeArcFlag,
    +           boolean&nbsp;sweepFlag,
    +           double&nbsp;x,
    +           double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructs an unrotated Arc2D from the SVG specification of an
    + Elliptical arc.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#contains(double, double)">contains</A></B>(double&nbsp;x,
    +         double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#contains(double, double, double, double)">contains</A></B>(double&nbsp;x,
    +         double&nbsp;y,
    +         double&nbsp;w,
    +         double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#contains(java.awt.geom.Point2D)">contains</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Point2D.html?is-external=true" title="class or interface in java.awt.geom">Point2D</A>&nbsp;p)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#contains(java.awt.geom.Rectangle2D)">contains</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;r)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#createTransformedShape(java.awt.geom.AffineTransform)">createTransformedShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A>&nbsp;at)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#curveTo(float, float, float, float, float, float)">curveTo</A></B>(float&nbsp;x1,
    +        float&nbsp;y1,
    +        float&nbsp;x2,
    +        float&nbsp;y2,
    +        float&nbsp;x3,
    +        float&nbsp;y3)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#getBounds()">getBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#getBounds2D()">getBounds2D</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Point2D.html?is-external=true" title="class or interface in java.awt.geom">Point2D</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#getCurrentPoint()">getCurrentPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the current position or <code>null</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#getExtendedPathIterator()">getExtendedPathIterator</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/PathIterator.html?is-external=true" title="class or interface in java.awt.geom">PathIterator</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#getPathIterator(java.awt.geom.AffineTransform)">getPathIterator</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A>&nbsp;at)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/PathIterator.html?is-external=true" title="class or interface in java.awt.geom">PathIterator</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#getPathIterator(java.awt.geom.AffineTransform, double)">getPathIterator</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A>&nbsp;at,
    +                double&nbsp;flatness)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#getWindingRule()">getWindingRule</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#intersects(double, double, double, double)">intersects</A></B>(double&nbsp;x,
    +           double&nbsp;y,
    +           double&nbsp;w,
    +           double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#intersects(java.awt.geom.Rectangle2D)">intersects</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;r)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#lineTo(float, float)">lineTo</A></B>(float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#moveTo(float, float)">moveTo</A></B>(float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#quadTo(float, float, float, float)">quadTo</A></B>(float&nbsp;x1,
    +       float&nbsp;y1,
    +       float&nbsp;x2,
    +       float&nbsp;y2)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#reset()">reset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#setWindingRule(int)">setWindingRule</A></B>(int&nbsp;rule)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#transform(java.awt.geom.AffineTransform)">transform</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A>&nbsp;at)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="path"><!-- --></A><H3>
    +path</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/GeneralPath.html?is-external=true" title="class or interface in java.awt.geom">GeneralPath</A> <B>path</B></PRE>
    +<DL>
    +<DD>The enclosed general path.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="ExtendedGeneralPath()"><!-- --></A><H3>
    +ExtendedGeneralPath</H3>
    +<PRE>
    +public <B>ExtendedGeneralPath</B>()</PRE>
    +<DL>
    +<DD>Constructs a new <code>ExtendedGeneralPath</code>.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="ExtendedGeneralPath(int)"><!-- --></A><H3>
    +ExtendedGeneralPath</H3>
    +<PRE>
    +public <B>ExtendedGeneralPath</B>(int&nbsp;rule)</PRE>
    +<DL>
    +<DD>Constructs a new <code>ExtendedGeneralPath</code> with the
    + specified winding rule to control operations that require the
    + interior of the path to be defined.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="ExtendedGeneralPath(int, int)"><!-- --></A><H3>
    +ExtendedGeneralPath</H3>
    +<PRE>
    +public <B>ExtendedGeneralPath</B>(int&nbsp;rule,
    +                           int&nbsp;initialCapacity)</PRE>
    +<DL>
    +<DD>Constructs a new <code>ExtendedGeneralPath</code> object with
    + the specified winding rule and the specified initial capacity
    + to store path coordinates.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="ExtendedGeneralPath(java.awt.Shape)"><!-- --></A><H3>
    +ExtendedGeneralPath</H3>
    +<PRE>
    +public <B>ExtendedGeneralPath</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;s)</PRE>
    +<DL>
    +<DD>Constructs a new <code>ExtendedGeneralPath</code> object from
    + an arbitrary <code>Shape</code> object.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="arcTo(float, float, float, boolean, boolean, float, float)"><!-- --></A><H3>
    +arcTo</H3>
    +<PRE>
    +public void <B>arcTo</B>(float&nbsp;rx,
    +                  float&nbsp;ry,
    +                  float&nbsp;angle,
    +                  boolean&nbsp;largeArcFlag,
    +                  boolean&nbsp;sweepFlag,
    +                  float&nbsp;x,
    +                  float&nbsp;y)</PRE>
    +<DL>
    +<DD>Adds an elliptical arc, defined by two radii, an angle from the
    + x-axis, a flag to choose the large arc or not, a flag to
    + indicate if we increase or decrease the angles and the final
    + point of the arc.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rx</CODE> - the x radius of the ellipse<DD><CODE>ry</CODE> - the y radius of the ellipse<DD><CODE>angle</CODE> - the angle from the x-axis of the current
    + coordinate system to the x-axis of the ellipse in degrees.<DD><CODE>largeArcFlag</CODE> - the large arc flag. If true the arc
    + spanning less than or equal to 180 degrees is chosen, otherwise
    + the arc spanning greater than 180 degrees is chosen<DD><CODE>sweepFlag</CODE> - the sweep flag. If true the line joining
    + center to arc sweeps through decreasing angles otherwise it
    + sweeps through increasing angles<DD><CODE>x</CODE> - the absolute x coordinate of the final point of the arc.<DD><CODE>y</CODE> - the absolute y coordinate of the final point of the arc.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="computeArc(double, double, double, double, double, boolean, boolean, double, double)"><!-- --></A><H3>
    +computeArc</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Arc2D.html?is-external=true" title="class or interface in java.awt.geom">Arc2D</A> <B>computeArc</B>(double&nbsp;x0,
    +                               double&nbsp;y0,
    +                               double&nbsp;rx,
    +                               double&nbsp;ry,
    +                               double&nbsp;angle,
    +                               boolean&nbsp;largeArcFlag,
    +                               boolean&nbsp;sweepFlag,
    +                               double&nbsp;x,
    +                               double&nbsp;y)</PRE>
    +<DL>
    +<DD>This constructs an unrotated Arc2D from the SVG specification of an
    + Elliptical arc.  To get the final arc you need to apply a rotation
    + transform such as:
    +
    + AffineTransform.getRotateInstance
    +     (angle, arc.getX()+arc.getWidth()/2, arc.getY()+arc.getHeight()/2);
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveTo(float, float)"><!-- --></A><H3>
    +moveTo</H3>
    +<PRE>
    +public void <B>moveTo</B>(float&nbsp;x,
    +                   float&nbsp;y)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="lineTo(float, float)"><!-- --></A><H3>
    +lineTo</H3>
    +<PRE>
    +public void <B>lineTo</B>(float&nbsp;x,
    +                   float&nbsp;y)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="quadTo(float, float, float, float)"><!-- --></A><H3>
    +quadTo</H3>
    +<PRE>
    +public void <B>quadTo</B>(float&nbsp;x1,
    +                   float&nbsp;y1,
    +                   float&nbsp;x2,
    +                   float&nbsp;y2)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curveTo(float, float, float, float, float, float)"><!-- --></A><H3>
    +curveTo</H3>
    +<PRE>
    +public void <B>curveTo</B>(float&nbsp;x1,
    +                    float&nbsp;y1,
    +                    float&nbsp;x2,
    +                    float&nbsp;y2,
    +                    float&nbsp;x3,
    +                    float&nbsp;y3)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="closePath()"><!-- --></A><H3>
    +closePath</H3>
    +<PRE>
    +public void <B>closePath</B>()</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="checkMoveTo()"><!-- --></A><H3>
    +checkMoveTo</H3>
    +<PRE>
    +protected void <B>checkMoveTo</B>()</PRE>
    +<DL>
    +<DD>Checks if previous command was a moveto command,
    + skipping a close command (if present).
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="append(java.awt.Shape, boolean)"><!-- --></A><H3>
    +append</H3>
    +<PRE>
    +public void <B>append</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>&nbsp;s,
    +                   boolean&nbsp;connect)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="append(java.awt.geom.PathIterator, boolean)"><!-- --></A><H3>
    +append</H3>
    +<PRE>
    +public void <B>append</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/PathIterator.html?is-external=true" title="class or interface in java.awt.geom">PathIterator</A>&nbsp;pi,
    +                   boolean&nbsp;connect)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="append(com.mxgraph.util.svg.ExtendedPathIterator, boolean)"><!-- --></A><H3>
    +append</H3>
    +<PRE>
    +public void <B>append</B>(<A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>&nbsp;epi,
    +                   boolean&nbsp;connect)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getWindingRule()"><!-- --></A><H3>
    +getWindingRule</H3>
    +<PRE>
    +public int <B>getWindingRule</B>()</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setWindingRule(int)"><!-- --></A><H3>
    +setWindingRule</H3>
    +<PRE>
    +public void <B>setWindingRule</B>(int&nbsp;rule)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurrentPoint()"><!-- --></A><H3>
    +getCurrentPoint</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Point2D.html?is-external=true" title="class or interface in java.awt.geom">Point2D</A> <B>getCurrentPoint</B>()</PRE>
    +<DL>
    +<DD>get the current position or <code>null</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reset()"><!-- --></A><H3>
    +reset</H3>
    +<PRE>
    +public void <B>reset</B>()</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="transform(java.awt.geom.AffineTransform)"><!-- --></A><H3>
    +transform</H3>
    +<PRE>
    +public void <B>transform</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A>&nbsp;at)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createTransformedShape(java.awt.geom.AffineTransform)"><!-- --></A><H3>
    +createTransformedShape</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>createTransformedShape</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A>&nbsp;at)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBounds()"><!-- --></A><H3>
    +getBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>getBounds</B>()</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#getBounds()" title="class or interface in java.awt">getBounds</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBounds2D()"><!-- --></A><H3>
    +getBounds2D</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A> <B>getBounds2D</B>()</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#getBounds2D()" title="class or interface in java.awt">getBounds2D</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="contains(double, double)"><!-- --></A><H3>
    +contains</H3>
    +<PRE>
    +public boolean <B>contains</B>(double&nbsp;x,
    +                        double&nbsp;y)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#contains(double, double)" title="class or interface in java.awt">contains</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="contains(java.awt.geom.Point2D)"><!-- --></A><H3>
    +contains</H3>
    +<PRE>
    +public boolean <B>contains</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Point2D.html?is-external=true" title="class or interface in java.awt.geom">Point2D</A>&nbsp;p)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#contains(java.awt.geom.Point2D)" title="class or interface in java.awt">contains</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="contains(double, double, double, double)"><!-- --></A><H3>
    +contains</H3>
    +<PRE>
    +public boolean <B>contains</B>(double&nbsp;x,
    +                        double&nbsp;y,
    +                        double&nbsp;w,
    +                        double&nbsp;h)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#contains(double, double, double, double)" title="class or interface in java.awt">contains</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="contains(java.awt.geom.Rectangle2D)"><!-- --></A><H3>
    +contains</H3>
    +<PRE>
    +public boolean <B>contains</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;r)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#contains(java.awt.geom.Rectangle2D)" title="class or interface in java.awt">contains</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersects(double, double, double, double)"><!-- --></A><H3>
    +intersects</H3>
    +<PRE>
    +public boolean <B>intersects</B>(double&nbsp;x,
    +                          double&nbsp;y,
    +                          double&nbsp;w,
    +                          double&nbsp;h)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#intersects(double, double, double, double)" title="class or interface in java.awt">intersects</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="intersects(java.awt.geom.Rectangle2D)"><!-- --></A><H3>
    +intersects</H3>
    +<PRE>
    +public boolean <B>intersects</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;r)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#intersects(java.awt.geom.Rectangle2D)" title="class or interface in java.awt">intersects</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPathIterator(java.awt.geom.AffineTransform)"><!-- --></A><H3>
    +getPathIterator</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/PathIterator.html?is-external=true" title="class or interface in java.awt.geom">PathIterator</A> <B>getPathIterator</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A>&nbsp;at)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#getPathIterator(java.awt.geom.AffineTransform)" title="class or interface in java.awt">getPathIterator</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPathIterator(java.awt.geom.AffineTransform, double)"><!-- --></A><H3>
    +getPathIterator</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/PathIterator.html?is-external=true" title="class or interface in java.awt.geom">PathIterator</A> <B>getPathIterator</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom">AffineTransform</A>&nbsp;at,
    +                                    double&nbsp;flatness)</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true#getPathIterator(java.awt.geom.AffineTransform, double)" title="class or interface in java.awt">getPathIterator</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getExtendedPathIterator()"><!-- --></A><H3>
    +getExtendedPathIterator</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A> <B>getExtendedPathIterator</B>()</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clone()"><!-- --></A><H3>
    +clone</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>clone</B>()</PRE>
    +<DL>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ExtendedGeneralPath.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ExtendedGeneralPath.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ExtendedGeneralPath.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/ExtendedPathIterator.html b/java/docs/com/mxgraph/util/svg/ExtendedPathIterator.html
    new file mode 100644
    index 000000000..e6a0eb329
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/ExtendedPathIterator.html
    @@ -0,0 +1,536 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +ExtendedPathIterator (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="ExtendedPathIterator (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ExtendedPathIterator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ExtendedPathIterator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ExtendedPathIterator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Interface ExtendedPathIterator</H2>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>ExtendedPathIterator</B></DL>
    +</PRE>
    +
    +<P>
    +The <code>ExtendedPathIterator</code> class represents a geometric
    + path constructed from straight lines, quadratic and cubic (Bezier)
    + curves and elliptical arcs.  This interface is identical to that of
    + PathIterator except it can return SEG_ARCTO from currentSegment,
    + also the array of values passed to currentSegment must be of length
    + 7 or an error will be thrown.
    + 
    + This does not extend PathIterator as it would break the interface
    + contract for that class.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_ARCTO">SEG_ARCTO</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The segment type constant for an elliptical arc.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_CLOSE">SEG_CLOSE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The segment type constant that specifies that the preceding
    + subpath should be closed by appending a line segment back to
    + the point corresponding to the most recent SEG_MOVETO.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_CUBICTO">SEG_CUBICTO</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The segment type constant for the set of 3 points that specify
    + a cubic parametric curve to be drawn from the most recently
    + specified point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_LINETO">SEG_LINETO</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The segment type constant for a point that specifies the end
    + point of a line to be drawn from the most recently specified
    + point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_MOVETO">SEG_MOVETO</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The segment type constant for a point that specifies the end
    + point of a line to be drawn from the most recently specified
    + point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_QUADTO">SEG_QUADTO</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The segment type constant for the pair of points that specify a
    + quadratic parametric curve to be drawn from the most recently
    + specified point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#WIND_EVEN_ODD">WIND_EVEN_ODD</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The winding rule constant for specifying an even-odd rule for
    + determining the interior of a path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#WIND_NON_ZERO">WIND_NON_ZERO</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The winding rule constant for specifying a non-zero rule for
    + determining the interior of a path.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#currentSegment()">currentSegment</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#currentSegment(double[])">currentSegment</A></B>(double[]&nbsp;coords)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#currentSegment(float[])">currentSegment</A></B>(float[]&nbsp;coords)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#getWindingRule()">getWindingRule</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#isDone()">isDone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html#next()">next</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="SEG_CLOSE"><!-- --></A><H3>
    +SEG_CLOSE</H3>
    +<PRE>
    +static final int <B>SEG_CLOSE</B></PRE>
    +<DL>
    +<DD>The segment type constant that specifies that the preceding
    + subpath should be closed by appending a line segment back to
    + the point corresponding to the most recent SEG_MOVETO.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.ExtendedPathIterator.SEG_CLOSE">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SEG_MOVETO"><!-- --></A><H3>
    +SEG_MOVETO</H3>
    +<PRE>
    +static final int <B>SEG_MOVETO</B></PRE>
    +<DL>
    +<DD>The segment type constant for a point that specifies the end
    + point of a line to be drawn from the most recently specified
    + point.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.ExtendedPathIterator.SEG_MOVETO">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SEG_LINETO"><!-- --></A><H3>
    +SEG_LINETO</H3>
    +<PRE>
    +static final int <B>SEG_LINETO</B></PRE>
    +<DL>
    +<DD>The segment type constant for a point that specifies the end
    + point of a line to be drawn from the most recently specified
    + point.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.ExtendedPathIterator.SEG_LINETO">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SEG_QUADTO"><!-- --></A><H3>
    +SEG_QUADTO</H3>
    +<PRE>
    +static final int <B>SEG_QUADTO</B></PRE>
    +<DL>
    +<DD>The segment type constant for the pair of points that specify a
    + quadratic parametric curve to be drawn from the most recently
    + specified point. The curve is interpolated by solving the
    + parametric control equation in the range (t=[0..1]) using the
    + most recently specified (current) point (CP), the first control
    + point (P1), and the final interpolated control point (P2).
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.ExtendedPathIterator.SEG_QUADTO">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SEG_CUBICTO"><!-- --></A><H3>
    +SEG_CUBICTO</H3>
    +<PRE>
    +static final int <B>SEG_CUBICTO</B></PRE>
    +<DL>
    +<DD>The segment type constant for the set of 3 points that specify
    + a cubic parametric curve to be drawn from the most recently
    + specified point. The curve is interpolated by solving the
    + parametric control equation in the range (t=[0..1]) using the
    + most recently specified (current) point (CP), the first control
    + point (P1), the second control point (P2), and the final
    + interpolated control point (P3).
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.ExtendedPathIterator.SEG_CUBICTO">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SEG_ARCTO"><!-- --></A><H3>
    +SEG_ARCTO</H3>
    +<PRE>
    +static final int <B>SEG_ARCTO</B></PRE>
    +<DL>
    +<DD>The segment type constant for an elliptical arc.  This consists of
    +  Seven values [rx, ry, angle, largeArcFlag, sweepFlag, x, y].
    +  rx, ry are the radious of the ellipse.
    +  angle is angle of the x axis of the ellipse.
    +  largeArcFlag is zero if the smaller of the two arcs are to be used.
    +  sweepFlag is zero if the 'left' branch is taken one otherwise.
    +  x and y are the destination for the ellipse.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.ExtendedPathIterator.SEG_ARCTO">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="WIND_EVEN_ODD"><!-- --></A><H3>
    +WIND_EVEN_ODD</H3>
    +<PRE>
    +static final int <B>WIND_EVEN_ODD</B></PRE>
    +<DL>
    +<DD>The winding rule constant for specifying an even-odd rule for
    + determining the interior of a path. The even-odd rule specifies
    + that a point lies inside the path if a ray drawn in any
    + direction from that point to infinity is crossed by path
    + segments an odd number of times.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.ExtendedPathIterator.WIND_EVEN_ODD">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="WIND_NON_ZERO"><!-- --></A><H3>
    +WIND_NON_ZERO</H3>
    +<PRE>
    +static final int <B>WIND_NON_ZERO</B></PRE>
    +<DL>
    +<DD>The winding rule constant for specifying a non-zero rule for
    + determining the interior of a path. The non-zero rule specifies
    + that a point lies inside the path if a ray drawn in any
    + direction from that point to infinity is crossed by path
    + segments a different number of times in the counter-clockwise
    + direction than the clockwise direction.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.mxgraph.util.svg.ExtendedPathIterator.WIND_NON_ZERO">Constant Field Values</A></DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="currentSegment()"><!-- --></A><H3>
    +currentSegment</H3>
    +<PRE>
    +int <B>currentSegment</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="currentSegment(double[])"><!-- --></A><H3>
    +currentSegment</H3>
    +<PRE>
    +int <B>currentSegment</B>(double[]&nbsp;coords)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="currentSegment(float[])"><!-- --></A><H3>
    +currentSegment</H3>
    +<PRE>
    +int <B>currentSegment</B>(float[]&nbsp;coords)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getWindingRule()"><!-- --></A><H3>
    +getWindingRule</H3>
    +<PRE>
    +int <B>getWindingRule</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDone()"><!-- --></A><H3>
    +isDone</H3>
    +<PRE>
    +boolean <B>isDone</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="next()"><!-- --></A><H3>
    +next</H3>
    +<PRE>
    +void <B>next</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ExtendedPathIterator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ExtendedPathIterator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ExtendedPathIterator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/NormalizingReader.html b/java/docs/com/mxgraph/util/svg/NormalizingReader.html
    new file mode 100644
    index 000000000..867c57ec4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/NormalizingReader.html
    @@ -0,0 +1,349 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +NormalizingReader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="NormalizingReader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/NormalizingReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/NormalizingReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="NormalizingReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_java.io.Reader">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class NormalizingReader</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">java.io.Reader</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.NormalizingReader</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Readable.html?is-external=true" title="class or interface in java.lang">Readable</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract class <B>NormalizingReader</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</A></DL>
    +</PRE>
    +
    +<P>
    +This class represents a reader which normalizes the line break: \n,
    + \r, \r\n are replaced by \n.  The methods of this reader are not
    + synchronized.  The input is buffered.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.io.Reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#lock" title="class or interface in java.io">lock</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html#NormalizingReader()">NormalizingReader</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html#getColumn()">getColumn</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current column in the stream.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>abstract &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html#getLine()">getLine</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current line in the stream.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html#read(char[], int, int)">read</A></B>(char[]&nbsp;cbuf,
    +     int&nbsp;off,
    +     int&nbsp;len)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read characters into a portion of an array.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.io.Reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#close()" title="class or interface in java.io">close</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#mark(int)" title="class or interface in java.io">mark</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#markSupported()" title="class or interface in java.io">markSupported</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#read()" title="class or interface in java.io">read</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#read(char[])" title="class or interface in java.io">read</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#read(java.nio.CharBuffer)" title="class or interface in java.io">read</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#ready()" title="class or interface in java.io">ready</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#reset()" title="class or interface in java.io">reset</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#skip(long)" title="class or interface in java.io">skip</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="NormalizingReader()"><!-- --></A><H3>
    +NormalizingReader</H3>
    +<PRE>
    +public <B>NormalizingReader</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="read(char[], int, int)"><!-- --></A><H3>
    +read</H3>
    +<PRE>
    +public int <B>read</B>(char[]&nbsp;cbuf,
    +                int&nbsp;off,
    +                int&nbsp;len)
    +         throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Read characters into a portion of an array.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#read(char[], int, int)" title="class or interface in java.io">read</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cbuf</CODE> - Destination buffer<DD><CODE>off</CODE> - Offset at which to start writing characters<DD><CODE>len</CODE> - Maximum number of characters to read
    +<DT><B>Returns:</B><DD>The number of characters read, or -1 if the end of the
    + stream has been reached
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLine()"><!-- --></A><H3>
    +getLine</H3>
    +<PRE>
    +public abstract int <B>getLine</B>()</PRE>
    +<DL>
    +<DD>Returns the current line in the stream.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getColumn()"><!-- --></A><H3>
    +getColumn</H3>
    +<PRE>
    +public abstract int <B>getColumn</B>()</PRE>
    +<DL>
    +<DD>Returns the current column in the stream.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/NormalizingReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/NormalizingReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="NormalizingReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_java.io.Reader">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/NumberParser.html b/java/docs/com/mxgraph/util/svg/NumberParser.html
    new file mode 100644
    index 000000000..9481fc44f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/NumberParser.html
    @@ -0,0 +1,321 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +NumberParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="NumberParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/NumberParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/NumberParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="NumberParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.svg.AbstractParser">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class NumberParser</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">com.mxgraph.util.svg.AbstractParser</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.NumberParser</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>, <A HREF="../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public abstract class <B>NumberParser</B><DT>extends <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></DL>
    +</PRE>
    +
    +<P>
    +This class represents a parser with support for numbers.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.svg.AbstractParser"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#BUNDLE_CLASSNAME">BUNDLE_CLASSNAME</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#current">current</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#errorHandler">errorHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reader">reader</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/NumberParser.html#NumberParser()">NumberParser</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/NumberParser.html#buildFloat(int, int)">buildFloat</A></B>(int&nbsp;mant,
    +           int&nbsp;exp)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Computes a float from mantissa and exponent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/NumberParser.html#parseFloat()">parseFloat</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the content of the buffer and converts it to a float.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.svg.AbstractParser"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#createErrorMessage(java.lang.String, java.lang.Object[])">createErrorMessage</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#doParse()">doParse</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#getBundleClassName()">getBundleClassName</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#getCurrent()">getCurrent</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#parse(java.lang.String)">parse</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportCharacterExpectedError(char, int)">reportCharacterExpectedError</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportError(java.lang.String, java.lang.Object[])">reportError</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportUnexpectedCharacterError(int)">reportUnexpectedCharacterError</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)">setErrorHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#skipCommaSpaces()">skipCommaSpaces</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#skipSpaces()">skipSpaces</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="NumberParser()"><!-- --></A><H3>
    +NumberParser</H3>
    +<PRE>
    +public <B>NumberParser</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="parseFloat()"><!-- --></A><H3>
    +parseFloat</H3>
    +<PRE>
    +protected float <B>parseFloat</B>()
    +                    throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses the content of the buffer and converts it to a float.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="buildFloat(int, int)"><!-- --></A><H3>
    +buildFloat</H3>
    +<PRE>
    +public static float <B>buildFloat</B>(int&nbsp;mant,
    +                               int&nbsp;exp)</PRE>
    +<DL>
    +<DD>Computes a float from mantissa and exponent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/NumberParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/NumberParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="NumberParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_com.mxgraph.util.svg.AbstractParser">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/ParseException.html b/java/docs/com/mxgraph/util/svg/ParseException.html
    new file mode 100644
    index 000000000..341472310
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/ParseException.html
    @@ -0,0 +1,479 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +ParseException (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="ParseException (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ParseException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ParseException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ParseException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class ParseException</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">java.lang.RuntimeException</A>
    +              <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.ParseException</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>ParseException</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</A></DL>
    +</PRE>
    +
    +<P>
    +This class encapsulates a general parse error or warning.
    +
    + <p>This class can contain basic error or warning information from
    + either the parser or the application.
    +
    + <p>If the application needs to pass through other types of
    + exceptions, it must wrap those exceptions in a ParseException.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.mxgraph.util.svg.ParseException">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#columnNumber">columnNumber</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#exception">exception</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#lineNumber">lineNumber</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#ParseException(java.lang.Exception)">ParseException</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new ParseException wrapping an existing exception.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#ParseException(java.lang.String, java.lang.Exception)">ParseException</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;message,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new ParseException from an existing exception.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#ParseException(java.lang.String, int, int)">ParseException</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;message,
    +               int&nbsp;line,
    +               int&nbsp;column)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new ParseException.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#getColumnNumber()">getColumnNumber</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the column of the last parsed character.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#getException()">getException</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the embedded exception, if any.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#getLineNumber()">getLineNumber</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the line of the last parsed character.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html#getMessage()">getMessage</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a detail message for this exception.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang">fillInStackTrace</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang">getCause</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang">getLocalizedMessage</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang">getStackTrace</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang">initCause</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang">printStackTrace</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang">printStackTrace</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang">printStackTrace</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement[])" title="class or interface in java.lang">setStackTrace</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="exception"><!-- --></A><H3>
    +exception</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A> <B>exception</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="lineNumber"><!-- --></A><H3>
    +lineNumber</H3>
    +<PRE>
    +protected int <B>lineNumber</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="columnNumber"><!-- --></A><H3>
    +columnNumber</H3>
    +<PRE>
    +protected int <B>columnNumber</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="ParseException(java.lang.String, int, int)"><!-- --></A><H3>
    +ParseException</H3>
    +<PRE>
    +public <B>ParseException</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;message,
    +                      int&nbsp;line,
    +                      int&nbsp;column)</PRE>
    +<DL>
    +<DD>Creates a new ParseException.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>message</CODE> - The error or warning message.<DD><CODE>line</CODE> - The line of the last parsed character.<DD><CODE>column</CODE> - The column of the last parsed character.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ParseException(java.lang.Exception)"><!-- --></A><H3>
    +ParseException</H3>
    +<PRE>
    +public <B>ParseException</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Creates a new ParseException wrapping an existing exception.
    +
    + <p>The existing exception will be embedded in the new
    + one, and its message will become the default message for
    + the ParseException.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>e</CODE> - The exception to be wrapped in a ParseException.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ParseException(java.lang.String, java.lang.Exception)"><!-- --></A><H3>
    +ParseException</H3>
    +<PRE>
    +public <B>ParseException</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;message,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A>&nbsp;e)</PRE>
    +<DL>
    +<DD>Creates a new ParseException from an existing exception.
    +
    + <p>The existing exception will be embedded in the new
    + one, but the new exception will have its own message.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>message</CODE> - The detail message.<DD><CODE>e</CODE> - The exception to be wrapped in a SAXException.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getMessage()"><!-- --></A><H3>
    +getMessage</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getMessage</B>()</PRE>
    +<DL>
    +<DD>Return a detail message for this exception.
    +
    + <p>If there is a embedded exception, and if the ParseException
    + has no detail message of its own, this method will return
    + the detail message from the embedded exception.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang">getMessage</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>The error or warning message.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getException()"><!-- --></A><H3>
    +getException</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A> <B>getException</B>()</PRE>
    +<DL>
    +<DD>Return the embedded exception, if any.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>The embedded exception, or null if there is none.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLineNumber()"><!-- --></A><H3>
    +getLineNumber</H3>
    +<PRE>
    +public int <B>getLineNumber</B>()</PRE>
    +<DL>
    +<DD>Returns the line of the last parsed character.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getColumnNumber()"><!-- --></A><H3>
    +getColumnNumber</H3>
    +<PRE>
    +public int <B>getColumnNumber</B>()</PRE>
    +<DL>
    +<DD>Returns the column of the last parsed character.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ParseException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ParseException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ParseException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/Parser.html b/java/docs/com/mxgraph/util/svg/Parser.html
    new file mode 100644
    index 000000000..c64528635
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/Parser.html
    @@ -0,0 +1,248 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +Parser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Parser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Parser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/Parser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="Parser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Interface Parser</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>, <A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A>, <A HREF="../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>, <A HREF="../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>Parser</B></DL>
    +</PRE>
    +
    +<P>
    +This interface represents a parser.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/Parser.html#parse(java.lang.String)">parse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the given string</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/Parser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)">setErrorHandler</A></B>(<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows an application to register an error event handler.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="parse(java.lang.String)"><!-- --></A><H3>
    +parse</H3>
    +<PRE>
    +void <B>parse</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)
    +           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Parses the given string
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setErrorHandler(com.mxgraph.util.svg.ErrorHandler)"><!-- --></A><H3>
    +setErrorHandler</H3>
    +<PRE>
    +void <B>setErrorHandler</B>(<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A>&nbsp;handler)</PRE>
    +<DL>
    +<DD>Allows an application to register an error event handler.
    +
    + <p>If the application does not register an error event handler,
    + all error events reported by the parser will cause an exception
    + to be thrown.
    +
    + <p>Applications may register a new or different handler in the
    + middle of a parse, and the parser must begin using the new
    + handler immediately.</p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>handler</CODE> - The error handler.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Parser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/Parser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="Parser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/PathHandler.html b/java/docs/com/mxgraph/util/svg/PathHandler.html
    new file mode 100644
    index 000000000..753ce3ce5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/PathHandler.html
    @@ -0,0 +1,818 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +PathHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="PathHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PathHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/PathHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PathHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Interface PathHandler</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>PathHandler</B></DL>
    +</PRE>
    +
    +<P>
    +This interface must be implemented and then registred as the
    + handler of a <code>PathParser</code> instance in order to be
    + notified of parsing events.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#arcAbs(float, float, float, boolean, boolean, float, float)">arcAbs</A></B>(float&nbsp;rx,
    +       float&nbsp;ry,
    +       float&nbsp;xAxisRotation,
    +       boolean&nbsp;largeArcFlag,
    +       boolean&nbsp;sweepFlag,
    +       float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute elliptical arc command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#arcRel(float, float, float, boolean, boolean, float, float)">arcRel</A></B>(float&nbsp;rx,
    +       float&nbsp;ry,
    +       float&nbsp;xAxisRotation,
    +       boolean&nbsp;largeArcFlag,
    +       boolean&nbsp;sweepFlag,
    +       float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative elliptical arc command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#closePath()">closePath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a closepath has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicAbs(float, float, float, float, float, float)">curvetoCubicAbs</A></B>(float&nbsp;x1,
    +                float&nbsp;y1,
    +                float&nbsp;x2,
    +                float&nbsp;y2,
    +                float&nbsp;x,
    +                float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute cubic bezier curve command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicRel(float, float, float, float, float, float)">curvetoCubicRel</A></B>(float&nbsp;x1,
    +                float&nbsp;y1,
    +                float&nbsp;x2,
    +                float&nbsp;y2,
    +                float&nbsp;x,
    +                float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative cubic bezier curve command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothAbs(float, float, float, float)">curvetoCubicSmoothAbs</A></B>(float&nbsp;x2,
    +                      float&nbsp;y2,
    +                      float&nbsp;x,
    +                      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute smooth cubic bezier curve command has
    + been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothRel(float, float, float, float)">curvetoCubicSmoothRel</A></B>(float&nbsp;x2,
    +                      float&nbsp;y2,
    +                      float&nbsp;x,
    +                      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative smooth cubic bezier curve command has
    + been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticAbs(float, float, float, float)">curvetoQuadraticAbs</A></B>(float&nbsp;x1,
    +                    float&nbsp;y1,
    +                    float&nbsp;x,
    +                    float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute quadratic bezier curve command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticRel(float, float, float, float)">curvetoQuadraticRel</A></B>(float&nbsp;x1,
    +                    float&nbsp;y1,
    +                    float&nbsp;x,
    +                    float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative quadratic bezier curve command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothAbs(float, float)">curvetoQuadraticSmoothAbs</A></B>(float&nbsp;x,
    +                          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute smooth quadratic bezier curve command
    + has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothRel(float, float)">curvetoQuadraticSmoothRel</A></B>(float&nbsp;x,
    +                          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative smooth quadratic bezier curve command
    + has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#endPath()">endPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when the path ends.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoAbs(float, float)">linetoAbs</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalAbs(float)">linetoHorizontalAbs</A></B>(float&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an horizontal absolute line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalRel(float)">linetoHorizontalRel</A></B>(float&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an horizontal relative line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoRel(float, float)">linetoRel</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalAbs(float)">linetoVerticalAbs</A></B>(float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a vertical absolute line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalRel(float)">linetoVerticalRel</A></B>(float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a vertical relative line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#movetoAbs(float, float)">movetoAbs</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute moveto command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#movetoRel(float, float)">movetoRel</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative moveto command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html#startPath()">startPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when the path starts.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="startPath()"><!-- --></A><H3>
    +startPath</H3>
    +<PRE>
    +void <B>startPath</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when the path starts.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="endPath()"><!-- --></A><H3>
    +endPath</H3>
    +<PRE>
    +void <B>endPath</B>()
    +             throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when the path ends.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="movetoRel(float, float)"><!-- --></A><H3>
    +movetoRel</H3>
    +<PRE>
    +void <B>movetoRel</B>(float&nbsp;x,
    +               float&nbsp;y)
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a relative moveto command has been parsed.
    + <p>Command : <b>m</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="movetoAbs(float, float)"><!-- --></A><H3>
    +movetoAbs</H3>
    +<PRE>
    +void <B>movetoAbs</B>(float&nbsp;x,
    +               float&nbsp;y)
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when an absolute moveto command has been parsed.
    + <p>Command : <b>M</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="closePath()"><!-- --></A><H3>
    +closePath</H3>
    +<PRE>
    +void <B>closePath</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a closepath has been parsed.
    + <p>Command : <b>z</b> | <b>Z</b>
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoRel(float, float)"><!-- --></A><H3>
    +linetoRel</H3>
    +<PRE>
    +void <B>linetoRel</B>(float&nbsp;x,
    +               float&nbsp;y)
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a relative line command has been parsed.
    + <p>Command : <b>l</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the relative x coordinates for the end point<DD><CODE>y</CODE> - the relative y coordinates for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoAbs(float, float)"><!-- --></A><H3>
    +linetoAbs</H3>
    +<PRE>
    +void <B>linetoAbs</B>(float&nbsp;x,
    +               float&nbsp;y)
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when an absolute line command has been parsed.
    + <p>Command : <b>L</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoHorizontalRel(float)"><!-- --></A><H3>
    +linetoHorizontalRel</H3>
    +<PRE>
    +void <B>linetoHorizontalRel</B>(float&nbsp;x)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when an horizontal relative line command has been parsed.
    + <p>Command : <b>h</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the relative X coordinate of the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoHorizontalAbs(float)"><!-- --></A><H3>
    +linetoHorizontalAbs</H3>
    +<PRE>
    +void <B>linetoHorizontalAbs</B>(float&nbsp;x)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when an horizontal absolute line command has been parsed.
    + <p>Command : <b>H</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the absolute X coordinate of the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoVerticalRel(float)"><!-- --></A><H3>
    +linetoVerticalRel</H3>
    +<PRE>
    +void <B>linetoVerticalRel</B>(float&nbsp;y)
    +                       throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a vertical relative line command has been parsed.
    + <p>Command : <b>v</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>y</CODE> - the relative Y coordinate of the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="linetoVerticalAbs(float)"><!-- --></A><H3>
    +linetoVerticalAbs</H3>
    +<PRE>
    +void <B>linetoVerticalAbs</B>(float&nbsp;y)
    +                       throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a vertical absolute line command has been parsed.
    + <p>Command : <b>V</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>y</CODE> - the absolute Y coordinate of the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoCubicRel(float, float, float, float, float, float)"><!-- --></A><H3>
    +curvetoCubicRel</H3>
    +<PRE>
    +void <B>curvetoCubicRel</B>(float&nbsp;x1,
    +                     float&nbsp;y1,
    +                     float&nbsp;x2,
    +                     float&nbsp;y2,
    +                     float&nbsp;x,
    +                     float&nbsp;y)
    +                     throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a relative cubic bezier curve command has been parsed.
    + <p>Command : <b>c</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the relative x coordinate for the first control point<DD><CODE>y1</CODE> - the relative y coordinate for the first control point<DD><CODE>x2</CODE> - the relative x coordinate for the second control point<DD><CODE>y2</CODE> - the relative y coordinate for the second control point<DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoCubicAbs(float, float, float, float, float, float)"><!-- --></A><H3>
    +curvetoCubicAbs</H3>
    +<PRE>
    +void <B>curvetoCubicAbs</B>(float&nbsp;x1,
    +                     float&nbsp;y1,
    +                     float&nbsp;x2,
    +                     float&nbsp;y2,
    +                     float&nbsp;x,
    +                     float&nbsp;y)
    +                     throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when an absolute cubic bezier curve command has been parsed.
    + <p>Command : <b>C</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the absolute x coordinate for the first control point<DD><CODE>y1</CODE> - the absolute y coordinate for the first control point<DD><CODE>x2</CODE> - the absolute x coordinate for the second control point<DD><CODE>y2</CODE> - the absolute y coordinate for the second control point<DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoCubicSmoothRel(float, float, float, float)"><!-- --></A><H3>
    +curvetoCubicSmoothRel</H3>
    +<PRE>
    +void <B>curvetoCubicSmoothRel</B>(float&nbsp;x2,
    +                           float&nbsp;y2,
    +                           float&nbsp;x,
    +                           float&nbsp;y)
    +                           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a relative smooth cubic bezier curve command has
    + been parsed. The first control point is assumed to be the
    + reflection of the second control point on the previous command
    + relative to the current point.
    + <p>Command : <b>s</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x2</CODE> - the relative x coordinate for the second control point<DD><CODE>y2</CODE> - the relative y coordinate for the second control point<DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoCubicSmoothAbs(float, float, float, float)"><!-- --></A><H3>
    +curvetoCubicSmoothAbs</H3>
    +<PRE>
    +void <B>curvetoCubicSmoothAbs</B>(float&nbsp;x2,
    +                           float&nbsp;y2,
    +                           float&nbsp;x,
    +                           float&nbsp;y)
    +                           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when an absolute smooth cubic bezier curve command has
    + been parsed. The first control point is assumed to be the
    + reflection of the second control point on the previous command
    + relative to the current point.
    + <p>Command : <b>S</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x2</CODE> - the absolute x coordinate for the second control point<DD><CODE>y2</CODE> - the absolute y coordinate for the second control point<DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoQuadraticRel(float, float, float, float)"><!-- --></A><H3>
    +curvetoQuadraticRel</H3>
    +<PRE>
    +void <B>curvetoQuadraticRel</B>(float&nbsp;x1,
    +                         float&nbsp;y1,
    +                         float&nbsp;x,
    +                         float&nbsp;y)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a relative quadratic bezier curve command has been parsed.
    + <p>Command : <b>q</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the relative x coordinate for the control point<DD><CODE>y1</CODE> - the relative y coordinate for the control point<DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative x coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoQuadraticAbs(float, float, float, float)"><!-- --></A><H3>
    +curvetoQuadraticAbs</H3>
    +<PRE>
    +void <B>curvetoQuadraticAbs</B>(float&nbsp;x1,
    +                         float&nbsp;y1,
    +                         float&nbsp;x,
    +                         float&nbsp;y)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when an absolute quadratic bezier curve command has been parsed.
    + <p>Command : <b>Q</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the absolute x coordinate for the control point<DD><CODE>y1</CODE> - the absolute y coordinate for the control point<DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute x coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoQuadraticSmoothRel(float, float)"><!-- --></A><H3>
    +curvetoQuadraticSmoothRel</H3>
    +<PRE>
    +void <B>curvetoQuadraticSmoothRel</B>(float&nbsp;x,
    +                               float&nbsp;y)
    +                               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a relative smooth quadratic bezier curve command
    + has been parsed. The control point is assumed to be the
    + reflection of the control point on the previous command
    + relative to the current point.
    + <p>Command : <b>t</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="curvetoQuadraticSmoothAbs(float, float)"><!-- --></A><H3>
    +curvetoQuadraticSmoothAbs</H3>
    +<PRE>
    +void <B>curvetoQuadraticSmoothAbs</B>(float&nbsp;x,
    +                               float&nbsp;y)
    +                               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when an absolute smooth quadratic bezier curve command
    + has been parsed. The control point is assumed to be the
    + reflection of the control point on the previous command
    + relative to the current point.
    + <p>Command : <b>T</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="arcRel(float, float, float, boolean, boolean, float, float)"><!-- --></A><H3>
    +arcRel</H3>
    +<PRE>
    +void <B>arcRel</B>(float&nbsp;rx,
    +            float&nbsp;ry,
    +            float&nbsp;xAxisRotation,
    +            boolean&nbsp;largeArcFlag,
    +            boolean&nbsp;sweepFlag,
    +            float&nbsp;x,
    +            float&nbsp;y)
    +            throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a relative elliptical arc command has been parsed. 
    + <p>Command : <b>a</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rx</CODE> - the X axis radius for the ellipse<DD><CODE>ry</CODE> - the Y axis radius for the ellipse<DD><CODE>xAxisRotation</CODE> - the rotation angle in degrees for the ellipse's
    +                      X-axis relative to the X-axis<DD><CODE>largeArcFlag</CODE> - the value of the large-arc-flag<DD><CODE>sweepFlag</CODE> - the value of the sweep-flag<DD><CODE>x</CODE> - the relative x coordinate for the end point<DD><CODE>y</CODE> - the relative y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="arcAbs(float, float, float, boolean, boolean, float, float)"><!-- --></A><H3>
    +arcAbs</H3>
    +<PRE>
    +void <B>arcAbs</B>(float&nbsp;rx,
    +            float&nbsp;ry,
    +            float&nbsp;xAxisRotation,
    +            boolean&nbsp;largeArcFlag,
    +            boolean&nbsp;sweepFlag,
    +            float&nbsp;x,
    +            float&nbsp;y)
    +            throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when an absolute elliptical arc command has been parsed.
    + <p>Command : <b>A</b>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>rx</CODE> - the X axis radius for the ellipse<DD><CODE>ry</CODE> - the Y axis radius for the ellipse<DD><CODE>xAxisRotation</CODE> - the rotation angle in degrees for the ellipse's
    +                      X-axis relative to the X-axis<DD><CODE>largeArcFlag</CODE> - the value of the large-arc-flag<DD><CODE>sweepFlag</CODE> - the value of the sweep-flag<DD><CODE>x</CODE> - the absolute x coordinate for the end point<DD><CODE>y</CODE> - the absolute y coordinate for the end point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the path</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PathHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/PathHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PathHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/PathParser.html b/java/docs/com/mxgraph/util/svg/PathParser.html
    new file mode 100644
    index 000000000..c6e2548a2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/PathParser.html
    @@ -0,0 +1,983 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +PathParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="PathParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PathParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/PathParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PathParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class PathParser</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">com.mxgraph.util.svg.AbstractParser</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">com.mxgraph.util.svg.NumberParser</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.PathParser</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>PathParser</B><DT>extends <A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A></DL>
    +</PRE>
    +
    +<P>
    +This class implements an event-based parser for the SVG path's d
    + attribute values.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#pathHandler">pathHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The path handler used to report parse events.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.svg.AbstractParser"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#BUNDLE_CLASSNAME">BUNDLE_CLASSNAME</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#current">current</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#errorHandler">errorHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reader">reader</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#PathParser(com.mxgraph.util.svg.PathHandler)">PathParser</A></B>(<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new PathParser.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#_parsel(boolean)">_parsel</A></B>(boolean&nbsp;expectNumber)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#_parseL(boolean)">_parseL</A></B>(boolean&nbsp;expectNumber)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#doParse()">doParse</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method responsible for actually parsing data after AbstractParser
    + has initialized itself.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#getPathHandler()">getPathHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the path handler in use.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parsea()">parsea</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'a' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseA()">parseA</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'A' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parsec()">parsec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'c' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseC()">parseC</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'C' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseh()">parseh</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'h' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseH()">parseH</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'H' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parsel()">parsel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'l' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseL()">parseL</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'L' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parsem()">parsem</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'm' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseM()">parseM</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'M' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseq()">parseq</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'q' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseQ()">parseQ</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'Q' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parses()">parses</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 's' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseS()">parseS</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'S' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parset()">parset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 't' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseT()">parseT</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'T' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parsev()">parsev</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'v' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#parseV()">parseV</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'V' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#reportUnexpected(int)">reportUnexpected</A></B>(int&nbsp;ch)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#setPathHandler(com.mxgraph.util.svg.PathHandler)">setPathHandler</A></B>(<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows an application to register a path handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#skipCommaSpaces2()">skipCommaSpaces2</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Skips the whitespaces and an optional comma.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html#skipSubPath()">skipSubPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Skips a sub-path.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.svg.NumberParser"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/NumberParser.html#buildFloat(int, int)">buildFloat</A>, <A HREF="../../../../com/mxgraph/util/svg/NumberParser.html#parseFloat()">parseFloat</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.svg.AbstractParser"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#createErrorMessage(java.lang.String, java.lang.Object[])">createErrorMessage</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#getBundleClassName()">getBundleClassName</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#getCurrent()">getCurrent</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#parse(java.lang.String)">parse</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportCharacterExpectedError(char, int)">reportCharacterExpectedError</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportError(java.lang.String, java.lang.Object[])">reportError</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportUnexpectedCharacterError(int)">reportUnexpectedCharacterError</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)">setErrorHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#skipCommaSpaces()">skipCommaSpaces</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#skipSpaces()">skipSpaces</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="pathHandler"><!-- --></A><H3>
    +pathHandler</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A> <B>pathHandler</B></PRE>
    +<DL>
    +<DD>The path handler used to report parse events.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="PathParser(com.mxgraph.util.svg.PathHandler)"><!-- --></A><H3>
    +PathParser</H3>
    +<PRE>
    +public <B>PathParser</B>(<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>&nbsp;handler)</PRE>
    +<DL>
    +<DD>Creates a new PathParser.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setPathHandler(com.mxgraph.util.svg.PathHandler)"><!-- --></A><H3>
    +setPathHandler</H3>
    +<PRE>
    +public void <B>setPathHandler</B>(<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>&nbsp;handler)</PRE>
    +<DL>
    +<DD>Allows an application to register a path handler.
    +
    + <p>If the application does not register a handler, all
    + events reported by the parser will be silently ignored.
    +
    + <p>Applications may register a new or different handler in the
    + middle of a parse, and the parser must begin using the new
    + handler immediately.</p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>handler</CODE> - The transform list handler.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPathHandler()"><!-- --></A><H3>
    +getPathHandler</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A> <B>getPathHandler</B>()</PRE>
    +<DL>
    +<DD>Returns the path handler in use.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="doParse()"><!-- --></A><H3>
    +doParse</H3>
    +<PRE>
    +protected void <B>doParse</B>()
    +                throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD><B>Description copied from class: <CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#doParse()">AbstractParser</A></CODE></B></DD>
    +<DD>Method responsible for actually parsing data after AbstractParser
    + has initialized itself.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#doParse()">doParse</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parsem()"><!-- --></A><H3>
    +parsem</H3>
    +<PRE>
    +protected void <B>parsem</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'm' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseM()"><!-- --></A><H3>
    +parseM</H3>
    +<PRE>
    +protected void <B>parseM</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'M' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parsel()"><!-- --></A><H3>
    +parsel</H3>
    +<PRE>
    +protected void <B>parsel</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'l' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="_parsel(boolean)"><!-- --></A><H3>
    +_parsel</H3>
    +<PRE>
    +protected void <B>_parsel</B>(boolean&nbsp;expectNumber)
    +                throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseL()"><!-- --></A><H3>
    +parseL</H3>
    +<PRE>
    +protected void <B>parseL</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'L' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="_parseL(boolean)"><!-- --></A><H3>
    +_parseL</H3>
    +<PRE>
    +protected void <B>_parseL</B>(boolean&nbsp;expectNumber)
    +                throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseh()"><!-- --></A><H3>
    +parseh</H3>
    +<PRE>
    +protected void <B>parseh</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'h' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseH()"><!-- --></A><H3>
    +parseH</H3>
    +<PRE>
    +protected void <B>parseH</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'H' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parsev()"><!-- --></A><H3>
    +parsev</H3>
    +<PRE>
    +protected void <B>parsev</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'v' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseV()"><!-- --></A><H3>
    +parseV</H3>
    +<PRE>
    +protected void <B>parseV</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'V' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parsec()"><!-- --></A><H3>
    +parsec</H3>
    +<PRE>
    +protected void <B>parsec</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'c' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseC()"><!-- --></A><H3>
    +parseC</H3>
    +<PRE>
    +protected void <B>parseC</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'C' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseq()"><!-- --></A><H3>
    +parseq</H3>
    +<PRE>
    +protected void <B>parseq</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'q' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseQ()"><!-- --></A><H3>
    +parseQ</H3>
    +<PRE>
    +protected void <B>parseQ</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'Q' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parses()"><!-- --></A><H3>
    +parses</H3>
    +<PRE>
    +protected void <B>parses</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 's' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseS()"><!-- --></A><H3>
    +parseS</H3>
    +<PRE>
    +protected void <B>parseS</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'S' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parset()"><!-- --></A><H3>
    +parset</H3>
    +<PRE>
    +protected void <B>parset</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 't' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseT()"><!-- --></A><H3>
    +parseT</H3>
    +<PRE>
    +protected void <B>parseT</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'T' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parsea()"><!-- --></A><H3>
    +parsea</H3>
    +<PRE>
    +protected void <B>parsea</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'a' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="parseA()"><!-- --></A><H3>
    +parseA</H3>
    +<PRE>
    +protected void <B>parseA</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses a 'A' command.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="skipSubPath()"><!-- --></A><H3>
    +skipSubPath</H3>
    +<PRE>
    +protected void <B>skipSubPath</B>()
    +                    throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Skips a sub-path.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reportUnexpected(int)"><!-- --></A><H3>
    +reportUnexpected</H3>
    +<PRE>
    +protected void <B>reportUnexpected</B>(int&nbsp;ch)
    +                         throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="skipCommaSpaces2()"><!-- --></A><H3>
    +skipCommaSpaces2</H3>
    +<PRE>
    +protected boolean <B>skipCommaSpaces2</B>()
    +                            throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Skips the whitespaces and an optional comma.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>true if comma was skipped.
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PathParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/PathParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PathParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/PointsHandler.html b/java/docs/com/mxgraph/util/svg/PointsHandler.html
    new file mode 100644
    index 000000000..40c87dcce
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/PointsHandler.html
    @@ -0,0 +1,274 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +PointsHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="PointsHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PointsHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/PointsHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PointsHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Interface PointsHandler</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A>, <A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>PointsHandler</B></DL>
    +</PRE>
    +
    +<P>
    +This interface must be implemented and then registred as the
    + handler of a <code>PointsParser</code> instance in order to be
    + notified of parsing events.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()">endPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when the points attribute ends.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#point(float, float)">point</A></B>(float&nbsp;x,
    +      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a point has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html#startPoints()">startPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when the points attribute starts.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="startPoints()"><!-- --></A><H3>
    +startPoints</H3>
    +<PRE>
    +void <B>startPoints</B>()
    +                 throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when the points attribute starts.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the
    +                           points</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="point(float, float)"><!-- --></A><H3>
    +point</H3>
    +<PRE>
    +void <B>point</B>(float&nbsp;x,
    +           float&nbsp;y)
    +           throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when a point has been parsed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x coordinate of the point<DD><CODE>y</CODE> - the y coordinate of the point
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the
    +                           points</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="endPoints()"><!-- --></A><H3>
    +endPoints</H3>
    +<PRE>
    +void <B>endPoints</B>()
    +               throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></PRE>
    +<DL>
    +<DD>Invoked when the points attribute ends.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE> - if an error occured while processing the
    +                           points</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PointsHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/PointsHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PointsHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/PointsParser.html b/java/docs/com/mxgraph/util/svg/PointsParser.html
    new file mode 100644
    index 000000000..4331039ba
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/PointsParser.html
    @@ -0,0 +1,409 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +PointsParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="PointsParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PointsParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/PointsParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PointsParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class PointsParser</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">com.mxgraph.util.svg.AbstractParser</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">com.mxgraph.util.svg.NumberParser</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.PointsParser</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>PointsParser</B><DT>extends <A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A></DL>
    +</PRE>
    +
    +<P>
    +This class implements an event-based parser for the SVG points
    + attribute values (used with polyline and polygon elements).
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PointsParser.html#eRead">eRead</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the last character was a 'e' or 'E'.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PointsParser.html#pointsHandler">pointsHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The points handler used to report parse events.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.svg.AbstractParser"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#BUNDLE_CLASSNAME">BUNDLE_CLASSNAME</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#current">current</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#errorHandler">errorHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reader">reader</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PointsParser.html#PointsParser(com.mxgraph.util.svg.PointsHandler)">PointsParser</A></B>(<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new PointsParser.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PointsParser.html#doParse()">doParse</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the current stream.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PointsParser.html#getPointsHandler()">getPointsHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the points handler in use.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/PointsParser.html#setPointsHandler(com.mxgraph.util.svg.PointsHandler)">setPointsHandler</A></B>(<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows an application to register a points handler.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.svg.NumberParser"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/NumberParser.html#buildFloat(int, int)">buildFloat</A>, <A HREF="../../../../com/mxgraph/util/svg/NumberParser.html#parseFloat()">parseFloat</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.svg.AbstractParser"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#createErrorMessage(java.lang.String, java.lang.Object[])">createErrorMessage</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#getBundleClassName()">getBundleClassName</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#getCurrent()">getCurrent</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#parse(java.lang.String)">parse</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportCharacterExpectedError(char, int)">reportCharacterExpectedError</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportError(java.lang.String, java.lang.Object[])">reportError</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#reportUnexpectedCharacterError(int)">reportUnexpectedCharacterError</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)">setErrorHandler</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#skipCommaSpaces()">skipCommaSpaces</A>, <A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#skipSpaces()">skipSpaces</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="pointsHandler"><!-- --></A><H3>
    +pointsHandler</H3>
    +<PRE>
    +protected <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A> <B>pointsHandler</B></PRE>
    +<DL>
    +<DD>The points handler used to report parse events.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="eRead"><!-- --></A><H3>
    +eRead</H3>
    +<PRE>
    +protected boolean <B>eRead</B></PRE>
    +<DL>
    +<DD>Whether the last character was a 'e' or 'E'.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="PointsParser(com.mxgraph.util.svg.PointsHandler)"><!-- --></A><H3>
    +PointsParser</H3>
    +<PRE>
    +public <B>PointsParser</B>(<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>&nbsp;handler)</PRE>
    +<DL>
    +<DD>Creates a new PointsParser.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="setPointsHandler(com.mxgraph.util.svg.PointsHandler)"><!-- --></A><H3>
    +setPointsHandler</H3>
    +<PRE>
    +public void <B>setPointsHandler</B>(<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>&nbsp;handler)</PRE>
    +<DL>
    +<DD>Allows an application to register a points handler.
    +
    + <p>If the application does not register a handler, all
    + events reported by the parser will be silently ignored.
    +
    + <p>Applications may register a new or different handler in the
    + middle of a parse, and the parser must begin using the new
    + handler immediately.</p>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>handler</CODE> - The transform list handler.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPointsHandler()"><!-- --></A><H3>
    +getPointsHandler</H3>
    +<PRE>
    +public <A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A> <B>getPointsHandler</B>()</PRE>
    +<DL>
    +<DD>Returns the points handler in use.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="doParse()"><!-- --></A><H3>
    +doParse</H3>
    +<PRE>
    +protected void <B>doParse</B>()
    +                throws <A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Parses the current stream.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html#doParse()">doParse</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PointsParser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/PointsParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PointsParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/ShapeProducer.html b/java/docs/com/mxgraph/util/svg/ShapeProducer.html
    new file mode 100644
    index 000000000..408ed7a73
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/ShapeProducer.html
    @@ -0,0 +1,260 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +ShapeProducer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="ShapeProducer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ShapeProducer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ShapeProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ShapeProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Interface ShapeProducer</H2>
    +<DL>
    +<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>, <A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A>, <A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public interface <B>ShapeProducer</B></DL>
    +</PRE>
    +
    +<P>
    +This interface represents objects which creates Shape objects.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html#getShape()">getShape</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Shape object initialized during the last parsing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html#getWindingRule()">getWindingRule</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current winding rule.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html#setWindingRule(int)">setWindingRule</A></B>(int&nbsp;i)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the winding rule used to construct the path.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getShape()"><!-- --></A><H3>
    +getShape</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A> <B>getShape</B>()</PRE>
    +<DL>
    +<DD>Returns the Shape object initialized during the last parsing.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the shape or null if this handler has not been used to
    +         parse a path.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setWindingRule(int)"><!-- --></A><H3>
    +setWindingRule</H3>
    +<PRE>
    +void <B>setWindingRule</B>(int&nbsp;i)</PRE>
    +<DL>
    +<DD>Sets the winding rule used to construct the path.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getWindingRule()"><!-- --></A><H3>
    +getWindingRule</H3>
    +<PRE>
    +int <B>getWindingRule</B>()</PRE>
    +<DL>
    +<DD>Returns the current winding rule.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ShapeProducer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/ShapeProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ShapeProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/StringNormalizingReader.html b/java/docs/com/mxgraph/util/svg/StringNormalizingReader.html
    new file mode 100644
    index 000000000..eebe384cd
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/StringNormalizingReader.html
    @@ -0,0 +1,496 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +StringNormalizingReader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="StringNormalizingReader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringNormalizingReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/StringNormalizingReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="StringNormalizingReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.util.svg</FONT>
    +<BR>
    +Class StringNormalizingReader</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">java.io.Reader</A>
    +      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">com.mxgraph.util.svg.NormalizingReader</A>
    +          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.util.svg.StringNormalizingReader</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Readable.html?is-external=true" title="class or interface in java.lang">Readable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>StringNormalizingReader</B><DT>extends <A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A></DL>
    +</PRE>
    +
    +<P>
    +This class represents a NormalizingReader which handles Strings.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#column">column</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The current column in the stream.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#length">length</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The length of the string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#line">line</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The current line in the stream.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#next">next</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The index of the next character.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#string">string</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The characters.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_java.io.Reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#lock" title="class or interface in java.io">lock</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#StringNormalizingReader(java.lang.String)">StringNormalizingReader</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new StringNormalizingReader.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#close()">close</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close the stream.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#getColumn()">getColumn</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current column in the stream.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#getLine()">getLine</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current line in the stream.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html#read()">read</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read a single character.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.svg.NormalizingReader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html#read(char[], int, int)">read</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.io.Reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#mark(int)" title="class or interface in java.io">mark</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#markSupported()" title="class or interface in java.io">markSupported</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#read(char[])" title="class or interface in java.io">read</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#read(java.nio.CharBuffer)" title="class or interface in java.io">read</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#ready()" title="class or interface in java.io">ready</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#reset()" title="class or interface in java.io">reset</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#skip(long)" title="class or interface in java.io">skip</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="string"><!-- --></A><H3>
    +string</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>string</B></PRE>
    +<DL>
    +<DD>The characters.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="length"><!-- --></A><H3>
    +length</H3>
    +<PRE>
    +protected int <B>length</B></PRE>
    +<DL>
    +<DD>The length of the string.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="next"><!-- --></A><H3>
    +next</H3>
    +<PRE>
    +protected int <B>next</B></PRE>
    +<DL>
    +<DD>The index of the next character.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="line"><!-- --></A><H3>
    +line</H3>
    +<PRE>
    +protected int <B>line</B></PRE>
    +<DL>
    +<DD>The current line in the stream.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="column"><!-- --></A><H3>
    +column</H3>
    +<PRE>
    +protected int <B>column</B></PRE>
    +<DL>
    +<DD>The current column in the stream.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="StringNormalizingReader(java.lang.String)"><!-- --></A><H3>
    +StringNormalizingReader</H3>
    +<PRE>
    +public <B>StringNormalizingReader</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</PRE>
    +<DL>
    +<DD>Creates a new StringNormalizingReader.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>s</CODE> - The string to read.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="read()"><!-- --></A><H3>
    +read</H3>
    +<PRE>
    +public int <B>read</B>()
    +         throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Read a single character.  This method will block until a
    + character is available, an I/O error occurs, or the end of the
    + stream is reached.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#read()" title="class or interface in java.io">read</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLine()"><!-- --></A><H3>
    +getLine</H3>
    +<PRE>
    +public int <B>getLine</B>()</PRE>
    +<DL>
    +<DD>Returns the current line in the stream.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html#getLine()">getLine</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getColumn()"><!-- --></A><H3>
    +getColumn</H3>
    +<PRE>
    +public int <B>getColumn</B>()</PRE>
    +<DL>
    +<DD>Returns the current column in the stream.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html#getColumn()">getColumn</A></CODE> in class <CODE><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="close()"><!-- --></A><H3>
    +close</H3>
    +<PRE>
    +public void <B>close</B>()
    +           throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
    +<DL>
    +<DD>Close the stream.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Closeable.html?is-external=true#close()" title="class or interface in java.io">close</A></CODE> in interface <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true#close()" title="class or interface in java.io">close</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringNormalizingReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/StringNormalizingReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="StringNormalizingReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/AWTPathProducer.html b/java/docs/com/mxgraph/util/svg/class-use/AWTPathProducer.html
    new file mode 100644
    index 000000000..20f615fd2
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/AWTPathProducer.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.AWTPathProducer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.AWTPathProducer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useAWTPathProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPathProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.AWTPathProducer</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.svg.AWTPathProducer
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useAWTPathProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPathProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/AWTPolygonProducer.html b/java/docs/com/mxgraph/util/svg/class-use/AWTPolygonProducer.html
    new file mode 100644
    index 000000000..efe56cde4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/AWTPolygonProducer.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.AWTPolygonProducer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.AWTPolygonProducer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useAWTPolygonProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPolygonProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.AWTPolygonProducer</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.svg.AWTPolygonProducer
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useAWTPolygonProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPolygonProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/AWTPolylineProducer.html b/java/docs/com/mxgraph/util/svg/class-use/AWTPolylineProducer.html
    new file mode 100644
    index 000000000..9db92e7e1
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/AWTPolylineProducer.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.AWTPolylineProducer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.AWTPolylineProducer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useAWTPolylineProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPolylineProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.AWTPolylineProducer</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class produces a polygon shape from a reader.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useAWTPolylineProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AWTPolylineProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/AbstractParser.html b/java/docs/com/mxgraph/util/svg/class-use/AbstractParser.html
    new file mode 100644
    index 000000000..fa9c5fcac
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/AbstractParser.html
    @@ -0,0 +1,199 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.AbstractParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.AbstractParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useAbstractParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AbstractParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.AbstractParser</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class represents a parser with support for numbers.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class implements an event-based parser for the SVG path's d
    + attribute values.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class implements an event-based parser for the SVG points
    + attribute values (used with polyline and polygon elements).</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useAbstractParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="AbstractParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/CSSConstants.html b/java/docs/com/mxgraph/util/svg/class-use/CSSConstants.html
    new file mode 100644
    index 000000000..c6f7ae07c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/CSSConstants.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.util.svg.CSSConstants (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.util.svg.CSSConstants (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useCSSConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="CSSConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.util.svg.CSSConstants</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.svg.CSSConstants
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useCSSConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="CSSConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/DefaultErrorHandler.html b/java/docs/com/mxgraph/util/svg/class-use/DefaultErrorHandler.html
    new file mode 100644
    index 000000000..33f0fa178
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/DefaultErrorHandler.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.DefaultErrorHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.DefaultErrorHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useDefaultErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="DefaultErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.DefaultErrorHandler</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.svg.DefaultErrorHandler
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useDefaultErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="DefaultErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/ErrorHandler.html b/java/docs/com/mxgraph/util/svg/class-use/ErrorHandler.html
    new file mode 100644
    index 000000000..91563fafe
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/ErrorHandler.html
    @@ -0,0 +1,221 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.util.svg.ErrorHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.util.svg.ErrorHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.util.svg.ErrorHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> that implement <A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg">DefaultErrorHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class provides a default implementation of ErrorHandler.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> declared as <A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>AbstractParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html#errorHandler">errorHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The error handler.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>Parser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/Parser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)">setErrorHandler</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows an application to register an error event handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AbstractParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)">setErrorHandler</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allow an application to register an error event handler.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/ExtendedGeneralPath.html b/java/docs/com/mxgraph/util/svg/class-use/ExtendedGeneralPath.html
    new file mode 100644
    index 000000000..86429c1d3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/ExtendedGeneralPath.html
    @@ -0,0 +1,181 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.ExtendedGeneralPath (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.ExtendedGeneralPath (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useExtendedGeneralPath.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ExtendedGeneralPath.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.ExtendedGeneralPath</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> declared as <A HREF="../../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A></CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#path">path</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The temporary value of extendedGeneralPath.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useExtendedGeneralPath.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ExtendedGeneralPath.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/ExtendedPathIterator.html b/java/docs/com/mxgraph/util/svg/class-use/ExtendedPathIterator.html
    new file mode 100644
    index 000000000..7ea71ee1e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/ExtendedPathIterator.html
    @@ -0,0 +1,198 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.util.svg.ExtendedPathIterator (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.util.svg.ExtendedPathIterator (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useExtendedPathIterator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ExtendedPathIterator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.util.svg.ExtendedPathIterator</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> that return <A HREF="../../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A></CODE></FONT></TD>
    +<TD><CODE><B>ExtendedGeneralPath.</B><B><A HREF="../../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#getExtendedPathIterator()">getExtendedPathIterator</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>ExtendedGeneralPath.</B><B><A HREF="../../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html#append(com.mxgraph.util.svg.ExtendedPathIterator, boolean)">append</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>&nbsp;epi,
    +       boolean&nbsp;connect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates to the enclosed <code>GeneralPath</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useExtendedPathIterator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ExtendedPathIterator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/NormalizingReader.html b/java/docs/com/mxgraph/util/svg/class-use/NormalizingReader.html
    new file mode 100644
    index 000000000..60aca7cc8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/NormalizingReader.html
    @@ -0,0 +1,197 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.NormalizingReader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.NormalizingReader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useNormalizingReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="NormalizingReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.NormalizingReader</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class represents a NormalizingReader which handles Strings.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> declared as <A HREF="../../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A></CODE></FONT></TD>
    +<TD><CODE><B>AbstractParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html#reader">reader</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The normalizing reader.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useNormalizingReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="NormalizingReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/NumberParser.html b/java/docs/com/mxgraph/util/svg/class-use/NumberParser.html
    new file mode 100644
    index 000000000..d9bee3727
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/NumberParser.html
    @@ -0,0 +1,191 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.NumberParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.NumberParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useNumberParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="NumberParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.NumberParser</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class implements an event-based parser for the SVG path's d
    + attribute values.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class implements an event-based parser for the SVG points
    + attribute values (used with polyline and polygon elements).</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useNumberParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="NumberParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/ParseException.html b/java/docs/com/mxgraph/util/svg/class-use/ParseException.html
    new file mode 100644
    index 000000000..515fa168c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/ParseException.html
    @@ -0,0 +1,956 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.ParseException (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.ParseException (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useParseException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ParseException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.ParseException</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>DefaultErrorHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/DefaultErrorHandler.html#error(com.mxgraph.util.svg.ParseException)">error</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)"><CODE>ErrorHandler.error(ParseException)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>ErrorHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)">error</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a parse error occurs.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> that throw <A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#_parsel(boolean)">_parsel</A></B>(boolean&nbsp;expectNumber)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#_parseL(boolean)">_parseL</A></B>(boolean&nbsp;expectNumber)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#arcAbs(float, float, float, boolean, boolean, float, float)">arcAbs</A></B>(float&nbsp;rx,
    +       float&nbsp;ry,
    +       float&nbsp;xAxisRotation,
    +       boolean&nbsp;largeArcFlag,
    +       boolean&nbsp;sweepFlag,
    +       float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute elliptical arc command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#arcAbs(float, float, float, boolean, boolean, float, float)">arcAbs</A></B>(float&nbsp;rx,
    +       float&nbsp;ry,
    +       float&nbsp;xAxisRotation,
    +       boolean&nbsp;largeArcFlag,
    +       boolean&nbsp;sweepFlag,
    +       float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#arcAbs(float, float, float, boolean, boolean, float, float)"><CODE>PathHandler.arcAbs(float,float,float,boolean,boolean,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#arcRel(float, float, float, boolean, boolean, float, float)">arcRel</A></B>(float&nbsp;rx,
    +       float&nbsp;ry,
    +       float&nbsp;xAxisRotation,
    +       boolean&nbsp;largeArcFlag,
    +       boolean&nbsp;sweepFlag,
    +       float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative elliptical arc command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#arcRel(float, float, float, boolean, boolean, float, float)">arcRel</A></B>(float&nbsp;rx,
    +       float&nbsp;ry,
    +       float&nbsp;xAxisRotation,
    +       boolean&nbsp;largeArcFlag,
    +       boolean&nbsp;sweepFlag,
    +       float&nbsp;x,
    +       float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#arcRel(float, float, float, boolean, boolean, float, float)"><CODE>PathHandler.arcRel(float,float,float,boolean,boolean,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#closePath()">closePath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a closepath has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#closePath()">closePath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#closePath()"><CODE>PathHandler.closePath()</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>AWTPolygonProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolygonProducer.html#createShape(java.lang.String, int)">createShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +            int&nbsp;wr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method for creating an ExtendedGeneralPath.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>AWTPolylineProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#createShape(java.lang.String, int)">createShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +            int&nbsp;wr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method for creating an ExtendedGeneralPath.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#createShape(java.lang.String, int)">createShape</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +            int&nbsp;wr)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method for creating an ExtendedGeneralPath.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicAbs(float, float, float, float, float, float)">curvetoCubicAbs</A></B>(float&nbsp;x1,
    +                float&nbsp;y1,
    +                float&nbsp;x2,
    +                float&nbsp;y2,
    +                float&nbsp;x,
    +                float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute cubic bezier curve command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicAbs(float, float, float, float, float, float)">curvetoCubicAbs</A></B>(float&nbsp;x1,
    +                float&nbsp;y1,
    +                float&nbsp;x2,
    +                float&nbsp;y2,
    +                float&nbsp;x,
    +                float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicAbs(float, float, float, float, float, float)"><CODE>PathHandler.curvetoCubicAbs(float,float,float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicRel(float, float, float, float, float, float)">curvetoCubicRel</A></B>(float&nbsp;x1,
    +                float&nbsp;y1,
    +                float&nbsp;x2,
    +                float&nbsp;y2,
    +                float&nbsp;x,
    +                float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative cubic bezier curve command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicRel(float, float, float, float, float, float)">curvetoCubicRel</A></B>(float&nbsp;x1,
    +                float&nbsp;y1,
    +                float&nbsp;x2,
    +                float&nbsp;y2,
    +                float&nbsp;x,
    +                float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicRel(float, float, float, float, float, float)"><CODE>PathHandler.curvetoCubicRel(float,float,float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothAbs(float, float, float, float)">curvetoCubicSmoothAbs</A></B>(float&nbsp;x2,
    +                      float&nbsp;y2,
    +                      float&nbsp;x,
    +                      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute smooth cubic bezier curve command has
    + been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicSmoothAbs(float, float, float, float)">curvetoCubicSmoothAbs</A></B>(float&nbsp;x2,
    +                      float&nbsp;y2,
    +                      float&nbsp;x,
    +                      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements
    + <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothAbs(float, float, float, float)"><CODE>PathHandler.curvetoCubicSmoothAbs(float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothRel(float, float, float, float)">curvetoCubicSmoothRel</A></B>(float&nbsp;x2,
    +                      float&nbsp;y2,
    +                      float&nbsp;x,
    +                      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative smooth cubic bezier curve command has
    + been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicSmoothRel(float, float, float, float)">curvetoCubicSmoothRel</A></B>(float&nbsp;x2,
    +                      float&nbsp;y2,
    +                      float&nbsp;x,
    +                      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements
    + <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothRel(float, float, float, float)"><CODE>PathHandler.curvetoCubicSmoothRel(float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticAbs(float, float, float, float)">curvetoQuadraticAbs</A></B>(float&nbsp;x1,
    +                    float&nbsp;y1,
    +                    float&nbsp;x,
    +                    float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute quadratic bezier curve command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticAbs(float, float, float, float)">curvetoQuadraticAbs</A></B>(float&nbsp;x1,
    +                    float&nbsp;y1,
    +                    float&nbsp;x,
    +                    float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements
    + <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticAbs(float, float, float, float)"><CODE>PathHandler.curvetoQuadraticAbs(float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticRel(float, float, float, float)">curvetoQuadraticRel</A></B>(float&nbsp;x1,
    +                    float&nbsp;y1,
    +                    float&nbsp;x,
    +                    float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative quadratic bezier curve command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticRel(float, float, float, float)">curvetoQuadraticRel</A></B>(float&nbsp;x1,
    +                    float&nbsp;y1,
    +                    float&nbsp;x,
    +                    float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements
    + <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticRel(float, float, float, float)"><CODE>PathHandler.curvetoQuadraticRel(float,float,float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothAbs(float, float)">curvetoQuadraticSmoothAbs</A></B>(float&nbsp;x,
    +                          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute smooth quadratic bezier curve command
    + has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticSmoothAbs(float, float)">curvetoQuadraticSmoothAbs</A></B>(float&nbsp;x,
    +                          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothAbs(float, float)"><CODE>PathHandler.curvetoQuadraticSmoothAbs(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothRel(float, float)">curvetoQuadraticSmoothRel</A></B>(float&nbsp;x,
    +                          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative smooth quadratic bezier curve command
    + has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticSmoothRel(float, float)">curvetoQuadraticSmoothRel</A></B>(float&nbsp;x,
    +                          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothRel(float, float)"><CODE>PathHandler.curvetoQuadraticSmoothRel(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PointsParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html#doParse()">doParse</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the current stream.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#doParse()">doParse</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected abstract &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AbstractParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html#doParse()">doParse</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method responsible for actually parsing data after AbstractParser
    + has initialized itself.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#endPath()">endPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when the path ends.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#endPath()">endPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#endPath()"><CODE>PathHandler.endPath()</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPolygonProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolygonProducer.html#endPoints()">endPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()"><CODE>PointsHandler.endPoints()</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PointsHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()">endPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when the points attribute ends.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPolylineProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#endPoints()">endPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html#endPoints()"><CODE>PointsHandler.endPoints()</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>DefaultErrorHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/DefaultErrorHandler.html#error(com.mxgraph.util.svg.ParseException)">error</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)"><CODE>ErrorHandler.error(ParseException)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>ErrorHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)">error</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a parse error occurs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoAbs(float, float)">linetoAbs</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoAbs(float, float)">linetoAbs</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoAbs(float, float)"><CODE>PathHandler.linetoAbs(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalAbs(float)">linetoHorizontalAbs</A></B>(float&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an horizontal absolute line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoHorizontalAbs(float)">linetoHorizontalAbs</A></B>(float&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalAbs(float)"><CODE>PathHandler.linetoHorizontalAbs(float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalRel(float)">linetoHorizontalRel</A></B>(float&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an horizontal relative line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoHorizontalRel(float)">linetoHorizontalRel</A></B>(float&nbsp;x)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoHorizontalRel(float)"><CODE>PathHandler.linetoHorizontalRel(float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoRel(float, float)">linetoRel</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoRel(float, float)">linetoRel</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoRel(float, float)"><CODE>PathHandler.linetoRel(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalAbs(float)">linetoVerticalAbs</A></B>(float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a vertical absolute line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoVerticalAbs(float)">linetoVerticalAbs</A></B>(float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalAbs(float)"><CODE>PathHandler.linetoVerticalAbs(float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalRel(float)">linetoVerticalRel</A></B>(float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a vertical relative line command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#linetoVerticalRel(float)">linetoVerticalRel</A></B>(float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#linetoVerticalRel(float)"><CODE>PathHandler.linetoVerticalRel(float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#movetoAbs(float, float)">movetoAbs</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when an absolute moveto command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#movetoAbs(float, float)">movetoAbs</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#movetoAbs(float, float)"><CODE>PathHandler.movetoAbs(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#movetoRel(float, float)">movetoRel</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a relative moveto command has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#movetoRel(float, float)">movetoRel</A></B>(float&nbsp;x,
    +          float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#movetoRel(float, float)"><CODE>PathHandler.movetoRel(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>Parser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/Parser.html#parse(java.lang.String)">parse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the given string</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AbstractParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html#parse(java.lang.String)">parse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the given string.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parsea()">parsea</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'a' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseA()">parseA</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'A' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parsec()">parsec</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'c' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseC()">parseC</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'C' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;float</CODE></FONT></TD>
    +<TD><CODE><B>NumberParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/NumberParser.html#parseFloat()">parseFloat</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the content of the buffer and converts it to a float.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseh()">parseh</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'h' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseH()">parseH</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'H' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parsel()">parsel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'l' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseL()">parseL</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'L' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parsem()">parsem</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'm' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseM()">parseM</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'M' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseq()">parseq</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'q' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseQ()">parseQ</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'Q' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parses()">parses</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 's' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseS()">parseS</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'S' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parset()">parset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 't' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseT()">parseT</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'T' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parsev()">parsev</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'v' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#parseV()">parseV</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses a 'V' command.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PointsHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html#point(float, float)">point</A></B>(float&nbsp;x,
    +      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a point has been parsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPolylineProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#point(float, float)">point</A></B>(float&nbsp;x,
    +      float&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html#point(float, float)"><CODE>PointsHandler.point(float,float)</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AbstractParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html#reportError(java.lang.String, java.lang.Object[])">reportError</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;args)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Signals an error to the error handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#reportUnexpected(int)">reportUnexpected</A></B>(int&nbsp;ch)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#skipSubPath()">skipSubPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Skips a sub-path.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#startPath()">startPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when the path starts.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPathProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html#startPath()">startPath</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html#startPath()"><CODE>PathHandler.startPath()</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PointsHandler.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html#startPoints()">startPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when the points attribute starts.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>AWTPolylineProducer.</B><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html#startPoints()">startPoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html#startPoints()"><CODE>PointsHandler.startPoints()</CODE></A>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useParseException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ParseException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/Parser.html b/java/docs/com/mxgraph/util/svg/class-use/Parser.html
    new file mode 100644
    index 000000000..f8dfdccaa
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/Parser.html
    @@ -0,0 +1,207 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.util.svg.Parser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.util.svg.Parser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="Parser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.util.svg.Parser</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> that implement <A HREF="../../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class is the superclass of all parsers.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class represents a parser with support for numbers.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class implements an event-based parser for the SVG path's d
    + attribute values.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class implements an event-based parser for the SVG points
    + attribute values (used with polyline and polygon elements).</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="Parser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/PathHandler.html b/java/docs/com/mxgraph/util/svg/class-use/PathHandler.html
    new file mode 100644
    index 000000000..e00ede8ff
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/PathHandler.html
    @@ -0,0 +1,244 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.util.svg.PathHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.util.svg.PathHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-usePathHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PathHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.util.svg.PathHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> that implement <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class provides an implementation of the PathHandler that initializes
    + a Shape from the value of a path's 'd' attribute.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> declared as <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#pathHandler">pathHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The path handler used to report parse events.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> that return <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#getPathHandler()">getPathHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the path handler in use.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PathParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#setPathHandler(com.mxgraph.util.svg.PathHandler)">setPathHandler</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows an application to register a path handler.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/PathParser.html#PathParser(com.mxgraph.util.svg.PathHandler)">PathParser</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new PathParser.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-usePathHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PathHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/PathParser.html b/java/docs/com/mxgraph/util/svg/class-use/PathParser.html
    new file mode 100644
    index 000000000..b3a831731
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/PathParser.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.PathParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.PathParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-usePathParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PathParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.PathParser</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.svg.PathParser
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-usePathParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PathParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/PointsHandler.html b/java/docs/com/mxgraph/util/svg/class-use/PointsHandler.html
    new file mode 100644
    index 000000000..2d636cf63
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/PointsHandler.html
    @@ -0,0 +1,251 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.util.svg.PointsHandler (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.util.svg.PointsHandler (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-usePointsHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PointsHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.util.svg.PointsHandler</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> that implement <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class produces a polygon shape from a reader.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class produces a polyline shape from a reader.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> declared as <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>PointsParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html#pointsHandler">pointsHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The points handler used to report parse events.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> that return <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>PointsParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html#getPointsHandler()">getPointsHandler</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the points handler in use.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>PointsParser.</B><B><A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html#setPointsHandler(com.mxgraph.util.svg.PointsHandler)">setPointsHandler</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows an application to register a points handler.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> with parameters of type <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html#PointsParser(com.mxgraph.util.svg.PointsHandler)">PointsParser</A></B>(<A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>&nbsp;handler)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new PointsParser.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-usePointsHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PointsHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/PointsParser.html b/java/docs/com/mxgraph/util/svg/class-use/PointsParser.html
    new file mode 100644
    index 000000000..7779de51b
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/PointsParser.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.PointsParser (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.PointsParser (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-usePointsParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PointsParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.PointsParser</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.svg.PointsParser
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-usePointsParser.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="PointsParser.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/ShapeProducer.html b/java/docs/com/mxgraph/util/svg/class-use/ShapeProducer.html
    new file mode 100644
    index 000000000..6ca31e1e3
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/ShapeProducer.html
    @@ -0,0 +1,198 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.util.svg.ShapeProducer (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.util.svg.ShapeProducer (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useShapeProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ShapeProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.util.svg.ShapeProducer</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A> in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> that implement <A HREF="../../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class provides an implementation of the PathHandler that initializes
    + a Shape from the value of a path's 'd' attribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class produces a polygon shape from a reader.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class produces a polyline shape from a reader.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useShapeProducer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="ShapeProducer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/class-use/StringNormalizingReader.html b/java/docs/com/mxgraph/util/svg/class-use/StringNormalizingReader.html
    new file mode 100644
    index 000000000..8d5ad1ba7
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/class-use/StringNormalizingReader.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.util.svg.StringNormalizingReader (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.util.svg.StringNormalizingReader (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useStringNormalizingReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="StringNormalizingReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.util.svg.StringNormalizingReader</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.util.svg.StringNormalizingReader
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../../index.html?com/mxgraph/util/svg//class-useStringNormalizingReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="StringNormalizingReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/package-frame.html b/java/docs/com/mxgraph/util/svg/package-frame.html
    new file mode 100644
    index 000000000..1f29533f8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/package-frame.html
    @@ -0,0 +1,86 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.util.svg (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../../com/mxgraph/util/svg/package-summary.html" target="classFrame">com.mxgraph.util.svg</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="CSSConstants.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>CSSConstants</I></A>
    +<BR>
    +<A HREF="ErrorHandler.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>ErrorHandler</I></A>
    +<BR>
    +<A HREF="ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>ExtendedPathIterator</I></A>
    +<BR>
    +<A HREF="Parser.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>Parser</I></A>
    +<BR>
    +<A HREF="PathHandler.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>PathHandler</I></A>
    +<BR>
    +<A HREF="PointsHandler.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>PointsHandler</I></A>
    +<BR>
    +<A HREF="ShapeProducer.html" title="interface in com.mxgraph.util.svg" target="classFrame"><I>ShapeProducer</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="AbstractParser.html" title="class in com.mxgraph.util.svg" target="classFrame">AbstractParser</A>
    +<BR>
    +<A HREF="AWTPathProducer.html" title="class in com.mxgraph.util.svg" target="classFrame">AWTPathProducer</A>
    +<BR>
    +<A HREF="AWTPolygonProducer.html" title="class in com.mxgraph.util.svg" target="classFrame">AWTPolygonProducer</A>
    +<BR>
    +<A HREF="AWTPolylineProducer.html" title="class in com.mxgraph.util.svg" target="classFrame">AWTPolylineProducer</A>
    +<BR>
    +<A HREF="DefaultErrorHandler.html" title="class in com.mxgraph.util.svg" target="classFrame">DefaultErrorHandler</A>
    +<BR>
    +<A HREF="ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg" target="classFrame">ExtendedGeneralPath</A>
    +<BR>
    +<A HREF="NormalizingReader.html" title="class in com.mxgraph.util.svg" target="classFrame">NormalizingReader</A>
    +<BR>
    +<A HREF="NumberParser.html" title="class in com.mxgraph.util.svg" target="classFrame">NumberParser</A>
    +<BR>
    +<A HREF="PathParser.html" title="class in com.mxgraph.util.svg" target="classFrame">PathParser</A>
    +<BR>
    +<A HREF="PointsParser.html" title="class in com.mxgraph.util.svg" target="classFrame">PointsParser</A>
    +<BR>
    +<A HREF="StringNormalizingReader.html" title="class in com.mxgraph.util.svg" target="classFrame">StringNormalizingReader</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Exceptions</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="ParseException.html" title="class in com.mxgraph.util.svg" target="classFrame">ParseException</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/package-summary.html b/java/docs/com/mxgraph/util/svg/package-summary.html
    new file mode 100644
    index 000000000..8c2b2ed75
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/package-summary.html
    @@ -0,0 +1,263 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.util.svg (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.util.svg (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/view/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.util.svg
    +</H2>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg">CSSConstants</A></B></TD>
    +<TD>This interface defines constants for CSS.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A></B></TD>
    +<TD>This interface must be implemented and then registred as the error handler
    + in order to be notified of parsing errors.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A></B></TD>
    +<TD>The <code>ExtendedPathIterator</code> class represents a geometric
    + path constructed from straight lines, quadratic and cubic (Bezier)
    + curves and elliptical arcs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A></B></TD>
    +<TD>This interface represents a parser.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A></B></TD>
    +<TD>This interface must be implemented and then registred as the
    + handler of a <code>PathParser</code> instance in order to be
    + notified of parsing events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A></B></TD>
    +<TD>This interface must be implemented and then registred as the
    + handler of a <code>PointsParser</code> instance in order to be
    + notified of parsing events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A></B></TD>
    +<TD>This interface represents objects which creates Shape objects.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></B></TD>
    +<TD>This class is the superclass of all parsers.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A></B></TD>
    +<TD>This class provides an implementation of the PathHandler that initializes
    + a Shape from the value of a path's 'd' attribute.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A></B></TD>
    +<TD>This class produces a polygon shape from a reader.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A></B></TD>
    +<TD>This class produces a polyline shape from a reader.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg">DefaultErrorHandler</A></B></TD>
    +<TD>This class provides a default implementation of ErrorHandler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A></B></TD>
    +<TD>The <code>ExtendedGeneralPath</code> class represents a geometric
    + path constructed from straight lines, quadratic and cubic (Bezier)
    + curves and elliptical arc.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A></B></TD>
    +<TD>This class represents a reader which normalizes the line break: \n,
    + \r, \r\n are replaced by \n.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A></B></TD>
    +<TD>This class represents a parser with support for numbers.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A></B></TD>
    +<TD>This class implements an event-based parser for the SVG path's d
    + attribute values.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A></B></TD>
    +<TD>This class implements an event-based parser for the SVG points
    + attribute values (used with polyline and polygon elements).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A></B></TD>
    +<TD>This class represents a NormalizingReader which handles Strings.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Exception Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A></B></TD>
    +<TD>This class encapsulates a general parse error or warning.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/view/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/package-tree.html b/java/docs/com/mxgraph/util/svg/package-tree.html
    new file mode 100644
    index 000000000..472332325
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/package-tree.html
    @@ -0,0 +1,182 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.util.svg Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.util.svg Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/view/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.util.svg
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg"><B>AbstractParser</B></A> (implements com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg"><B>NumberParser</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg"><B>PathParser</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg"><B>PointsParser</B></A></UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg"><B>AWTPathProducer</B></A> (implements com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>, com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A>)
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg"><B>AWTPolylineProducer</B></A> (implements com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>, com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg"><B>AWTPolygonProducer</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg"><B>DefaultErrorHandler</B></A> (implements com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A>)
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg"><B>ExtendedGeneralPath</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>)
    +<LI TYPE="circle">java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><B>Reader</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</A>, java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Readable.html?is-external=true" title="class or interface in java.lang">Readable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg"><B>NormalizingReader</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg"><B>StringNormalizingReader</B></A></UL>
    +</UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><B>Throwable</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><B>Exception</B></A><UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang"><B>RuntimeException</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg"><B>ParseException</B></A></UL>
    +</UL>
    +</UL>
    +</UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><B>CSSConstants</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><B>ErrorHandler</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><B>ExtendedPathIterator</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><B>Parser</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><B>PathHandler</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><B>PointsHandler</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="../../../../com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><B>ShapeProducer</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../../com/mxgraph/util/png/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;<A HREF="../../../../com/mxgraph/view/package-tree.html"><B>NEXT</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/util/svg/package-use.html b/java/docs/com/mxgraph/util/svg/package-use.html
    new file mode 100644
    index 000000000..317aa8a30
    --- /dev/null
    +++ b/java/docs/com/mxgraph/util/svg/package-use.html
    @@ -0,0 +1,247 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.util.svg (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.util.svg (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.util.svg</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util.svg"><B>com.mxgraph.util.svg</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util.svg"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A> used by <A HREF="../../../../com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/AbstractParser.html#com.mxgraph.util.svg"><B>AbstractParser</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class is the superclass of all parsers.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/AWTPolylineProducer.html#com.mxgraph.util.svg"><B>AWTPolylineProducer</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class produces a polyline shape from a reader.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/ErrorHandler.html#com.mxgraph.util.svg"><B>ErrorHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This interface must be implemented and then registred as the error handler
    + in order to be notified of parsing errors.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/ExtendedGeneralPath.html#com.mxgraph.util.svg"><B>ExtendedGeneralPath</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The <code>ExtendedGeneralPath</code> class represents a geometric
    + path constructed from straight lines, quadratic and cubic (Bezier)
    + curves and elliptical arc.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/ExtendedPathIterator.html#com.mxgraph.util.svg"><B>ExtendedPathIterator</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The <code>ExtendedPathIterator</code> class represents a geometric
    + path constructed from straight lines, quadratic and cubic (Bezier)
    + curves and elliptical arcs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/NormalizingReader.html#com.mxgraph.util.svg"><B>NormalizingReader</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class represents a reader which normalizes the line break: \n,
    + \r, \r\n are replaced by \n.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/NumberParser.html#com.mxgraph.util.svg"><B>NumberParser</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class represents a parser with support for numbers.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/ParseException.html#com.mxgraph.util.svg"><B>ParseException</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class encapsulates a general parse error or warning.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/Parser.html#com.mxgraph.util.svg"><B>Parser</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This interface represents a parser.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/PathHandler.html#com.mxgraph.util.svg"><B>PathHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This interface must be implemented and then registred as the
    + handler of a <code>PathParser</code> instance in order to be
    + notified of parsing events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/PointsHandler.html#com.mxgraph.util.svg"><B>PointsHandler</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This interface must be implemented and then registred as the
    + handler of a <code>PointsParser</code> instance in order to be
    + notified of parsing events.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../../com/mxgraph/util/svg/class-use/ShapeProducer.html#com.mxgraph.util.svg"><B>ShapeProducer</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This interface represents objects which creates Shape objects.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/util/svg/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxCellState.html b/java/docs/com/mxgraph/view/class-use/mxCellState.html
    new file mode 100644
    index 000000000..8bde10319
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxCellState.html
    @@ -0,0 +1,2402 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxCellState (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxCellState (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxCellState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxCellState</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> that return <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#sort(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)">sort</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]&nbsp;states,
    +     <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a sorted set for <code>cells</code> with respect to
    + <code>cf</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxDistanceCostFunction.</B><B><A HREF="../../../../com/mxgraph/analysis/mxDistanceCostFunction.html#getCost(com.mxgraph.view.mxCellState)">getCost</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Euclidean length of the edge defined by the absolute
    + points in the given state or 0 if no points are defined.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxICostFunction.</B><B><A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html#getCost(com.mxgraph.view.mxCellState)">getCost</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluates the cost of the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxConstantCostFunction.</B><B><A HREF="../../../../com/mxgraph/analysis/mxConstantCostFunction.html#getCost(com.mxgraph.view.mxCellState)">getCost</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#sort(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)">sort</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]&nbsp;states,
    +     <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a sorted set for <code>cells</code> with respect to
    + <code>cf</code>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#sum(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)">sum</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]&nbsp;states,
    +    <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the sum of all cost for <code>cells</code> with respect to
    + <code>cf</code>.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxVmlCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxVmlCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSvgCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxSvgCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxImageCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxHtmlCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxHtmlCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)">drawCell</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxVmlCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxVmlCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSvgCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxSvgCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxImageCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxHtmlCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxHtmlCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;label,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphics2DCanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICanvas.</B><B><A HREF="../../../../com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)">drawLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;html)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given label.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeLabelLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxEdgeLabelLayout.html#avoid(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">avoid</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphViewReader.</B><B><A HREF="../../../../com/mxgraph/reader/mxGraphViewReader.html#parseState(com.mxgraph.view.mxCellState, boolean)">parseState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           boolean&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses the bounds, absolute points and label information from the style
    + of the state into its respective fields and returns the label of the
    + cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> declared as <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#state">state</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache the state associated with this shape</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#computeAspect(com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, java.lang.String)">computeAspect</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +              <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;direction)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a rectangle that contains the offset in x and y and the horizontal
    + and vertical scale in width and height used to draw this shape inside the
    + given rectangle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">configureGraphics</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  boolean&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configures the graphics object ready to paint.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxLineShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLineShape.html#createPoints(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createPoints</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxActorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxActorShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxTriangleShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxTriangleShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRhombusShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxRhombusShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxHexagonShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxHexagonShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEllipseShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxEllipseShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCloudShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCloudShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxArrowShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxArrowShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A></CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">createShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#drawElement(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, org.w3c.dom.Element, com.mxgraph.util.mxRectangle)">drawElement</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;node,
    +            <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;aspect)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drawsthe given element.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#drawGlassEffect(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">drawGlassEffect</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the glass effect</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#drawShadow(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, double, boolean, boolean, com.mxgraph.util.mxRectangle, double, boolean)">drawShadow</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           double&nbsp;rotation,
    +           boolean&nbsp;flipH,
    +           boolean&nbsp;flipV,
    +           <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +           double&nbsp;alpha,
    +           boolean&nbsp;filled)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the shadow.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#drawShape(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, boolean)">drawShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +          boolean&nbsp;background)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws this stencil inside the given bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#evaluateAttribute(org.w3c.dom.Element, java.lang.String, com.mxgraph.view.mxCellState)">evaluateAttribute</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom">Element</A>&nbsp;elt,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attribute,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the attribute for the given name from the given node.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getFillColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxSwimlaneShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getGradientBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageBounds</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#getImageForStyle(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getImageForStyle</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                 <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">getStrokeColor</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasGradient</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hasShadow</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)">paintMarker</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the marker for the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxIMarker.</B><B><A HREF="../../../../com/mxgraph/shape/mxIMarker.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, java.lang.String, com.mxgraph.util.mxPoint, double, double, double, boolean)">paintMarker</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +            <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pe,
    +            double&nbsp;nx,
    +            double&nbsp;ny,
    +            double&nbsp;size,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencilShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html#paintNode(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, com.mxgraph.shape.mxStencilShape.svgShape, double, double)">paintNode</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="../../../../com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>&nbsp;shape,
    +          double&nbsp;widthRatio,
    +          double&nbsp;heightRatio)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLabelShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxImageShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxImageShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxDoubleEllipseShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxDoubleEllipseShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxSwimlaneShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencilShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencilShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxStencil.</B><B><A HREF="../../../../com/mxgraph/shape/mxStencil.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;gc,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paints the stencil for the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLineShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxLineShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxRectangleShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxRectangleShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCylinderShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCylinderShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws a cylinder for the given parameters.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectorShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxConnectorShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxBasicShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxIShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxHtmlTextShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxHtmlTextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxDefaultTextShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxDefaultTextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCurveLabelShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxITextShape.</B><B><A HREF="../../../../com/mxgraph/shape/mxITextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)">paintShape</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;text,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/shape/mxCurveLabelShape.html#mxCurveLabelShape(com.mxgraph.view.mxCellState, com.mxgraph.util.mxCurve)">mxCurveLabelShape</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  <A HREF="../../../../com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.mxGraphControl.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState)">cellDrawn</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#createComponents(com.mxgraph.view.mxCellState)">createComponents</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for subclassers to create the array of heavyweights for the given
    + state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#createHandler(com.mxgraph.view.mxCellState)">createHandler</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.mxGraphControl.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getExtendedCellBounds(com.mxgraph.view.mxCellState)">getExtendedCellBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#getFoldingIcon(com.mxgraph.view.mxCellState)">getFoldingIcon</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the icon used to display the collapsed state of the specified
    + cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#getFoldingIconBounds(com.mxgraph.view.mxCellState, javax.swing.ImageIcon)">getFoldingIconBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A>&nbsp;icon)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.mxGraphControl.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#hitClip(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">hitClip</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +        <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#insertComponent(com.mxgraph.view.mxCellState, java.awt.Component)">insertComponent</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#redraw(com.mxgraph.view.mxCellState)">redraw</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the buffer (if one exists) and repaints the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#updateCellOverlayComponent(com.mxgraph.view.mxCellState, com.mxgraph.swing.util.mxICellOverlay)">updateCellOverlayComponent</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                           <A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>&nbsp;overlay)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notified when an overlay has been removed from the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#updateComponent(com.mxgraph.view.mxCellState, java.awt.Component)">updateComponent</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt">Component</A>&nbsp;c)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> declared as <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxRotationHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#currentState">currentState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#markedState">markedState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the marked state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#previewState">previewState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#previewStates">previewStates</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#sourceState">sourceState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#startState">startState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#state">state</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the cell state associated with this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#validState">validState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the marked state if it is valid.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> that return <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getMarkedState()">getMarkedState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the marked state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#getPreviewState()">getPreviewState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#getPreviewStates()">getPreviewStates</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the states that are affected by the move operation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#getSourceState()">getSourceState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#getState()">getState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell state that is associated with this handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getState(java.awt.event.MouseEvent)">getState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses getCell, getMarkedState and intersects to return the state for
    + the given event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getStateToMark(com.mxgraph.view.mxCellState)">getStateToMark</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the state to be marked for the given state under the mouse.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getValidState()">getValidState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the valid state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#process(java.awt.event.MouseEvent)">process</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given event and marks the state returned by getStateAt
    + with the color returned by getMarkerColor.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#createCell(com.mxgraph.view.mxCellState, java.lang.String)">createCell</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new instance of mxShape for previewing the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#createPoints(com.mxgraph.view.mxCellState)">createPoints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;s)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#getCells(com.mxgraph.view.mxCellState)">getCells</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;initialState)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getMarkerColor(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, boolean)">getMarkerColor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +               boolean&nbsp;isValid)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the valid- or invalidColor depending on the value of isValid.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#getPlaceholderBounds(com.mxgraph.view.mxCellState)">getPlaceholderBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#getStateToMark(com.mxgraph.view.mxCellState)">getStateToMark</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the state to be marked for the given state under the mouse.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#highlight(com.mxgraph.view.mxCellState, java.awt.Color)">highlight</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#highlight(com.mxgraph.view.mxCellState, java.awt.Color, boolean)">highlight</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;color,
    +          boolean&nbsp;valid)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#intersects(com.mxgraph.view.mxCellState, java.awt.event.MouseEvent)">intersects</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given mouse event intersects the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxRotationHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxRotationHandler.html#isStateHandled(com.mxgraph.view.mxCellState)">isStateHandled</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#isValidState(com.mxgraph.view.mxCellState)">isValidState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given state is a valid state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#moveLabelTo(com.mxgraph.view.mxCellState, double, double)">moveLabelTo</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edgeState,
    +            double&nbsp;x,
    +            double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the label to the given position.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#refresh(com.mxgraph.view.mxCellState)">refresh</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Refreshes the cell handler.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#revalidate(com.mxgraph.view.mxCellState, java.lang.Object)">revalidate</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;pState,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellMarker.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellMarker.html#setMarkedState(com.mxgraph.view.mxCellState)">setMarkedState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the marked state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxMovePreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxMovePreview.html#start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the translation of the preview.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, java.lang.String)">start</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;startState,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the style of the edge preview from the incoming edge</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectPreview.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectPreview.html#update(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, double, double)">update</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseEvent.html?is-external=true" title="class or interface in java.awt.event">MouseEvent</A>&nbsp;e,
    +       <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;targetState,
    +       double&nbsp;x,
    +       double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxCellHandler.html#mxCellHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxCellHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new cell handler for the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxEdgeHandler.html#mxEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxEdgeHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +              <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxElbowEdgeHandler.html#mxElbowEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxElbowEdgeHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                   <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/handler/mxVertexHandler.html#mxVertexHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)">mxVertexHandler</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellOverlay.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxCellOverlay.html#getBounds(com.mxgraph.view.mxCellState)">getBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxICellOverlay.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxICellOverlay.html#getBounds(com.mxgraph.view.mxCellState)">getBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#getDelta(com.mxgraph.view.mxCellState)">getDelta</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the vector between the current rendered state and the future
    + location of the state after the display will be updated.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxMorphing.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxMorphing.html#stopRecursion(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)">stopRecursion</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +              <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;delta)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the animation should not recursively find more
    + deltas for children if the given parent state has been animated.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> with type parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#cellStates">cellStates</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#deltas">deltas</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> that return types with arguments of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>,<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#getDeltas()">getDeltas</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#snapshot(com.mxgraph.view.mxCellState)">snapshot</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#addEdges(com.mxgraph.view.mxCellState)">addEdges</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxInteractiveCanvas.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#contains(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)">contains</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +         <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellEditor.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getEditorBounds(com.mxgraph.view.mxCellState, double)">getEditorBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds to be used for the editor.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellEditor.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#getInitialValue(com.mxgraph.view.mxCellState, java.util.EventObject)">getInitialValue</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</A>&nbsp;trigger)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the initial editing value for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxInteractiveCanvas.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#hitSwimlaneContent(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState, int, int)">hitSwimlaneContent</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +                   <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;swimlane,
    +                   int&nbsp;x,
    +                   int&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given point is inside the content area of the given
    + swimlane.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxInteractiveCanvas.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxInteractiveCanvas.html#intersects(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)">intersects</A></B>(<A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>&nbsp;graphComponent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A>&nbsp;rect,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxCellEditor.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#isHideLabel(com.mxgraph.view.mxCellState)">isHideLabel</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#moveState(com.mxgraph.view.mxCellState, double, double)">moveState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#moveState(com.mxgraph.view.mxCellState, double, double, boolean, boolean)">moveState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          double&nbsp;dx,
    +          double&nbsp;dy,
    +          boolean&nbsp;add,
    +          boolean&nbsp;includeEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#paintPreviewState(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)">paintPreviewState</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;canvas,
    +                  <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the preview using the graphics canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#restoreState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">restoreState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;from)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#revalidateState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, double, double)">revalidateState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                double&nbsp;dx,
    +                double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#snapshot(com.mxgraph.view.mxCellState)">snapshot</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#translateState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, double, double)">translateState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +               <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +               double&nbsp;dx,
    +               double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxCellEditor.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellEditor.html#useLabelBounds(com.mxgraph.view.mxCellState)">useLabelBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the label bounds of the state should be used for the
    + editor.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A> with type arguments of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellStatePreview.</B><B><A HREF="../../../../com/mxgraph/swing/view/mxCellStatePreview.html#restore(java.util.List)">restore</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;&nbsp;snapshot)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#findNearestSegment(com.mxgraph.view.mxCellState, double, double)">findNearestSegment</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                   double&nbsp;x,
    +                   double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Finds the index of the nearest segment on the given cell state for the
    + specified coordinate pair.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getPortConstraints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getPortConstraints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                   <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                   boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an integer mask of the port constraints of the given map</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#getPortConstraints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, int)">getPortConstraints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                   <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                   boolean&nbsp;source,
    +                   int&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an integer mask of the port constraints of the given map</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#intersectsHotspot(com.mxgraph.view.mxCellState, int, int, double)">intersectsHotspot</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  int&nbsp;x,
    +                  int&nbsp;y,
    +                  double&nbsp;hotspot)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxUtils.</B><B><A HREF="../../../../com/mxgraph/util/mxUtils.html#intersectsHotspot(com.mxgraph.view.mxCellState, int, int, double, int, int)">intersectsHotspot</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                  int&nbsp;x,
    +                  int&nbsp;y,
    +                  double&nbsp;hotspot,
    +                  int&nbsp;min,
    +                  int&nbsp;max)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given coordinate pair intersects the hotspot of the
    + given state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#visibleSourceState">visibleSourceState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches the visible source and target terminal states.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#visibleTargetState">visibleTargetState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches the visible source and target terminal states.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with type parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxTemporaryCellStates.</B><B><A HREF="../../../../com/mxgraph/view/mxTemporaryCellStates.html#oldStates">oldStates</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#states">states</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from cells to cell states.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#createState(java.lang.Object)">createState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a cell state for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getCellStates(java.lang.Object[])">getCellStates</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the states for the given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getState(java.lang.Object)">getState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the state for the given cell or null if no state is defined for
    + the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getState(java.lang.Object, boolean)">getState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         boolean&nbsp;create)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell state for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getTerminalPort(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getTerminalPort</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a cell state that represents the source or target terminal or
    + port for the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getVisibleTerminalState(boolean)">getVisibleTerminalState</A></B>(boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the visible source or target terminal state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#removeState(java.lang.Object)">removeState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes and returns the mxCellState for the given cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return types with arguments of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getStates()">getStates</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the dictionary that maps from cells to states.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeStyle.mxEdgeStyleFunction.</B><B><A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)">apply</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;result)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements an edge style function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPerimeter.mxPerimeterFunction.</B><B><A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html#apply(com.mxgraph.util.mxRectangle, com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)">apply</A></B>(<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +      <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +      <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +      boolean&nbsp;orthogonal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a perimeter function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, java.lang.Object, java.lang.Object)">cellDrawn</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;labelElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a cell has been painted as the specified object, typically a
    + DOM node that represents the given cell graphically in a document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#childMoved(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">childMoved</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parent,
    +           <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a child state was moved as a result of late evaluation
    + of its position.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#drawState(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, boolean)">drawState</A></B>(<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;drawLabel)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the cell state with the given label onto the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getAllConnectionConstraints(com.mxgraph.view.mxCellState, boolean)">getAllConnectionConstraints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of all constraints for the given terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxSpaceManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSpaceManager.html#getCellsToShift(com.mxgraph.view.mxCellState)">getCellsToShift</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getConnectionConstraint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getConnectionConstraint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                        <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                        boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an connection constraint that describes the given connection
    + point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getConnectionPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxConnectionConstraint)">getConnectionPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +                   <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the connection constraint that describes the given connection point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getEdgeStyle(com.mxgraph.view.mxCellState, java.util.List, java.lang.Object, java.lang.Object)">getEdgeStyle</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edge style function to be used to compute the absolute
    + points for the given state, control points and terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getImage(com.mxgraph.view.mxCellState)">getImage</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the image URL for the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getNextPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getNextPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;opposite,
    +             boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the nearest point in the list of absolute points or the center
    + of the opposite terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterBounds(com.mxgraph.view.mxCellState, double)">getPerimeterBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                   double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the perimeter bounds for the given terminal, edge pair.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterFunction(com.mxgraph.view.mxCellState)">getPerimeterFunction</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the perimeter function for the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)">getPerimeterPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                  <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                  boolean&nbsp;orthogonal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean, double)">getPerimeterPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                  <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                  boolean&nbsp;orthogonal,
    +                  double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPoint(com.mxgraph.view.mxCellState)">getPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute center point along the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPoint(com.mxgraph.view.mxCellState, com.mxgraph.model.mxGeometry)">getPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +         <A HREF="../../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute point on the edge for the given relative
    + geometry as a point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getRelativePoint(com.mxgraph.view.mxCellState, double, double)">getRelativePoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edgeState,
    +                 double&nbsp;x,
    +                 double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the relative point that describes the given, absolute label
    + position for the given edge state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getRoutingCenterX(com.mxgraph.view.mxCellState)">getRoutingCenterX</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the x-coordinate of the center point for automatic routing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getRoutingCenterY(com.mxgraph.view.mxCellState)">getRoutingCenterY</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the y-coordinate of the center point for automatic routing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getTerminalPort(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getTerminalPort</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a cell state that represents the source or target terminal or
    + port for the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getWordWrapWidth(com.mxgraph.view.mxCellState)">getWordWrapWidth</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the width for wrapping the label of the given state at
    + scale 1.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#isLoop(com.mxgraph.view.mxCellState)">isLoop</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell state is a loop.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#isOrthogonal(com.mxgraph.view.mxCellState)">isOrthogonal</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if perimeter points should be computed such that the
    + resulting edge has only horizontal or vertical segments.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setVisibleTerminalState(com.mxgraph.view.mxCellState, boolean)">setVisibleTerminalState</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminalState,
    +                        boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the visible source or target terminal state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#transformControlPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)">transformControlPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                      <A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transforms the given control point to an absolute point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateBoundingBox(com.mxgraph.view.mxCellState)">updateBoundingBox</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the bounding box in the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateEdgeBounds(com.mxgraph.view.mxCellState)">updateEdgeBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the given state using the bounding box of the absolute points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateFixedTerminalPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, com.mxgraph.view.mxConnectionConstraint)">updateFixedTerminalPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                         <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                         boolean&nbsp;source,
    +                         <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the fixed source or target terminal point on the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateFixedTerminalPoints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">updateFixedTerminalPoints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +                          <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the initial absolute terminal points in the given state before the edge
    + style is computed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateFloatingTerminalPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">updateFloatingTerminalPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;start,
    +                            <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;end,
    +                            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the absolute terminal point in the given state for the given
    + start and end state, where start is the source if source is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateFloatingTerminalPoints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">updateFloatingTerminalPoints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +                             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the terminal points in the given state after the edge style was
    + computed for the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateLabel(com.mxgraph.view.mxCellState)">updateLabel</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the label of the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateLabelBounds(com.mxgraph.view.mxCellState)">updateLabelBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the label bounds in the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updatePoints(com.mxgraph.view.mxCellState, java.util.List, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">updatePoints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +             <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the absolute points in the given state using the specified array
    + of points as the relative points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateVertexLabelOffset(com.mxgraph.view.mxCellState)">updateVertexLabelOffset</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the absoluteOffset of the given vertex cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#validateBounds(com.mxgraph.view.mxCellState, java.lang.Object)">validateBounds</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validates the bounds of the given parent's child using the given parent
    + state as the origin for the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#validatePoints(com.mxgraph.view.mxCellState, java.lang.Object)">validatePoints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validates the points for the state of the given cell recursively if the
    + cell is not collapsed and returns the bounding box of all visited states
    + as a rectangle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with type arguments of type <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#setStates(java.util.Hashtable)">setStates</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;&nbsp;states)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the dictionary that maps from cells to states.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxCellState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxConnectionConstraint.html b/java/docs/com/mxgraph/view/class-use/mxConnectionConstraint.html
    new file mode 100644
    index 000000000..3c42ed7c4
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxConnectionConstraint.html
    @@ -0,0 +1,258 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxConnectionConstraint (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxConnectionConstraint (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxConnectionConstraint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectionConstraint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxConnectionConstraint</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getAllConnectionConstraints(com.mxgraph.view.mxCellState, boolean)">getAllConnectionConstraints</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of all constraints for the given terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getConnectionConstraint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getConnectionConstraint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                        <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                        boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an connection constraint that describes the given connection
    + point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#cellConnected(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)">cellConnected</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +              boolean&nbsp;source,
    +              <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the new terminal for the given edge and resets the edge points if
    + isResetEdgesOnConnect returns true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#connectCell(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)">connectCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +            boolean&nbsp;source,
    +            <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connects the specified end of the given edge to the given terminal
    + using cellConnected and fires mxEvent.CONNECT_CELL while the transaction
    + is in progress.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getConnectionPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxConnectionConstraint)">getConnectionPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +                   <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the connection constraint that describes the given connection point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#setConnectionConstraint(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)">setConnectionConstraint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                        boolean&nbsp;source,
    +                        <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the connection constraint that describes the given connection point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#updateFixedTerminalPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, com.mxgraph.view.mxConnectionConstraint)">updateFixedTerminalPoint</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                         <A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                         boolean&nbsp;source,
    +                         <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the fixed source or target terminal point on the given edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxConnectionConstraint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectionConstraint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxEdgeStyle.html b/java/docs/com/mxgraph/view/class-use/mxEdgeStyle.html
    new file mode 100644
    index 000000000..f04aeeab8
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxEdgeStyle.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxEdgeStyle (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxEdgeStyle (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxEdgeStyle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeStyle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxEdgeStyle</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.view.mxEdgeStyle
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxEdgeStyle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeStyle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxEdgeStyle.mxEdgeStyleFunction.html b/java/docs/com/mxgraph/view/class-use/mxEdgeStyle.mxEdgeStyleFunction.html
    new file mode 100644
    index 000000000..3b2200f8d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxEdgeStyle.mxEdgeStyleFunction.html
    @@ -0,0 +1,277 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxEdgeStyle.mxEdgeStyleFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeStyle.mxEdgeStyleFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#defaultLoopStyle">defaultLoopStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default style for loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeStyle.</B><B><A HREF="../../../../com/mxgraph/view/mxEdgeStyle.html#ElbowConnector">ElbowConnector</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses either SideToSide or TopToBottom depending on the horizontal
    + flag in the cell style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeStyle.</B><B><A HREF="../../../../com/mxgraph/view/mxEdgeStyle.html#EntityRelation">EntityRelation</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides an entity relation style for edges (as used in database
    + schema diagrams).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeStyle.</B><B><A HREF="../../../../com/mxgraph/view/mxEdgeStyle.html#Loop">Loop</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides a self-reference, aka.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeStyle.</B><B><A HREF="../../../../com/mxgraph/view/mxEdgeStyle.html#orthConnector">orthConnector</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An orthogonal connector that avoids connecting vertices and 
    + respects port constraints</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeStyle.</B><B><A HREF="../../../../com/mxgraph/view/mxEdgeStyle.html#SideToSide">SideToSide</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides a vertical elbow edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxEdgeStyle.</B><B><A HREF="../../../../com/mxgraph/view/mxEdgeStyle.html#TopToBottom">TopToBottom</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides a horizontal elbow edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getDefaultLoopStyle()">getDefaultLoopStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the default edge style used for loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getEdgeStyle(com.mxgraph.view.mxCellState, java.util.List, java.lang.Object, java.lang.Object)">getEdgeStyle</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edge style function to be used to compute the absolute
    + points for the given state, control points and terminals.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#setDefaultLoopStyle(com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction)">setDefaultLoopStyle</A></B>(<A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the default style used for loops.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxEdgeStyle.mxEdgeStyleFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeStyle.mxEdgeStyleFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxGraph.html b/java/docs/com/mxgraph/view/class-use/mxGraph.html
    new file mode 100644
    index 000000000..58781fd8f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxGraph.html
    @@ -0,0 +1,1174 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxGraph (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxGraph (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraph.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraph.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxGraph</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical"><B>com.mxgraph.layout.hierarchical</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.orthogonal"><B>com.mxgraph.layout.orthogonal</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.orthogonal.model"><B>com.mxgraph.layout.orthogonal.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#getConnectionComponents(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[])">getConnectionComponents</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a union find structure representing the connection components of
    + G=(E,V).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], com.mxgraph.analysis.mxICostFunction, boolean)">getMinimumSpanningTree</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                       <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf,
    +                       boolean&nbsp;directed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[], com.mxgraph.analysis.mxICostFunction)">getMinimumSpanningTree</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;v,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;e,
    +                       <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphAnalysis.</B><B><A HREF="../../../../com/mxgraph/analysis/mxGraphAnalysis.html#getShortestPath(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, com.mxgraph.analysis.mxICostFunction, int, boolean)">getShortestPath</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;from,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;to,
    +                <A HREF="../../../../com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>&nbsp;cf,
    +                int&nbsp;steps,
    +                boolean&nbsp;directed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the shortest path between two cells or their descendants
    + represented as an array of edges in order of traversal.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxGraphMlCodec.html#decode(org.w3c.dom.Document, com.mxgraph.view.mxGraph)">decode</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A>&nbsp;document,
    +       <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Receives a GraphMl document and parses it generating a new graph that is inserted in graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGdCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxGdCodec.html#decode(com.mxgraph.io.gd.mxGdDocument, com.mxgraph.view.mxGraph)">decode</A></B>(<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>&nbsp;document,
    +       <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Recieves a mxGDDocument document and parses it generating a new graph that is inserted in graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxGraphMlCodec.html#decodeGraph(com.mxgraph.view.mxGraph, java.lang.Object, com.mxgraph.io.graphml.mxGraphMlGraph)">decodeGraph</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +            <A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>&nbsp;gmlGraph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Gml graph with the data of the vertexes and edges in the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxGraphMlCodec.html#encode(com.mxgraph.view.mxGraph)">encode</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a Xml document with the cells in the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGdCodec.</B><B><A HREF="../../../../com/mxgraph/io/mxGdCodec.html#encode(com.mxgraph.view.mxGraph)">encode</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a GD document with the cells in the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphMlGraph.</B><B><A HREF="../../../../com/mxgraph/io/graphml/mxGraphMlGraph.html#addGraph(com.mxgraph.view.mxGraph, java.lang.Object)">addGraph</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the elements represented for this graph model into the given graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> declared as <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the enclosing graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> that return <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the associated graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCircleLayout.html#mxCircleLayout(com.mxgraph.view.mxGraph)">mxCircleLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCircleLayout.html#mxCircleLayout(com.mxgraph.view.mxGraph, double)">mxCircleLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +               double&nbsp;radius)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#mxCompactTreeLayout(com.mxgraph.view.mxGraph)">mxCompactTreeLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#mxCompactTreeLayout(com.mxgraph.view.mxGraph, boolean)">mxCompactTreeLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    boolean&nbsp;horizontal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxCompactTreeLayout.html#mxCompactTreeLayout(com.mxgraph.view.mxGraph, boolean, boolean)">mxCompactTreeLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    boolean&nbsp;horizontal,
    +                    boolean&nbsp;invert)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxEdgeLabelLayout.html#mxEdgeLabelLayout(com.mxgraph.view.mxGraph)">mxEdgeLabelLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxFastOrganicLayout.html#mxFastOrganicLayout(com.mxgraph.view.mxGraph)">mxFastOrganicLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new fast organic layout for the specified graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#mxGraphLayout(com.mxgraph.view.mxGraph)">mxGraphLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new fast organic layout for the specified graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.html#mxOrganicLayout(com.mxgraph.view.mxGraph)">mxOrganicLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for mxOrganicLayout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxOrganicLayout.html#mxOrganicLayout(com.mxgraph.view.mxGraph, java.awt.geom.Rectangle2D)">mxOrganicLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for mxOrganicLayout.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxParallelEdgeLayout.html#mxParallelEdgeLayout(com.mxgraph.view.mxGraph)">mxParallelEdgeLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxParallelEdgeLayout.html#mxParallelEdgeLayout(com.mxgraph.view.mxGraph, int)">mxParallelEdgeLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                     int&nbsp;spacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph)">mxPartitionLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph, boolean)">mxPartitionLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  boolean&nbsp;horizontal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph, boolean, int)">mxPartitionLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  boolean&nbsp;horizontal,
    +                  int&nbsp;spacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph, boolean, int, int)">mxPartitionLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  boolean&nbsp;horizontal,
    +                  int&nbsp;spacing,
    +                  int&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph)">mxStackLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph, boolean)">mxStackLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +              boolean&nbsp;horizontal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph, boolean, int)">mxStackLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +              boolean&nbsp;horizontal,
    +              int&nbsp;spacing)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph, boolean, int, int, int, int)">mxStackLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +              boolean&nbsp;horizontal,
    +              int&nbsp;spacing,
    +              int&nbsp;x0,
    +              int&nbsp;y0,
    +              int&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#mxHierarchicalLayout(com.mxgraph.view.mxGraph)">mxHierarchicalLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a hierarchical layout</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#mxHierarchicalLayout(com.mxgraph.view.mxGraph, int)">mxHierarchicalLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                     int&nbsp;orientation)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a hierarchical layout</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#calculateWidestRank(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">calculateWidestRank</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the width rank in the hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankCoordinates(int, com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">rankCoordinates</A></B>(int&nbsp;rankValue,
    +                <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                <A HREF="../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets up the layout in an initial positioning.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCoordinateAssignment.</B><B><A HREF="../../../../com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setCellLocations(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)">setCellLocations</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                 <A HREF="../../../../com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the cell locations in the facade to those stored after this layout
    + processing step has completed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.orthogonal"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#mxOrthogonalLayout(com.mxgraph.view.mxGraph)">mxOrthogonalLayout</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.orthogonal.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html#mxOrthogonalModel(com.mxgraph.view.mxGraph)">mxOrthogonalModel</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> declared as <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> that return <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphComponent.</B><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#setGraph(com.mxgraph.view.mxGraph)">setGraph</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/swing/mxGraphComponent.html#mxGraphComponent(com.mxgraph.view.mxGraph)">mxGraphComponent</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#addGraphListeners(com.mxgraph.view.mxGraph)">addGraphListeners</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Installs the listeners to update the handles after any changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxSelectionCellsHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#addGraphListeners(com.mxgraph.view.mxGraph)">addGraphListeners</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Installs the listeners to update the handles after any changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxConnectionHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxConnectionHandler.html#removeGraphListeners(com.mxgraph.view.mxGraph)">removeGraphListeners</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all installed listeners.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxSelectionCellsHandler.</B><B><A HREF="../../../../com/mxgraph/swing/handler/mxSelectionCellsHandler.html#removeGraphListeners(com.mxgraph.view.mxGraph)">removeGraphListeners</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all installed listeners.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> that return <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphActions.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.html#getGraph(java.awt.event.ActionEvent)">getGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ActionEvent.html?is-external=true" title="class or interface in java.awt.event">ActionEvent</A>&nbsp;e)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphActions.GroupAction.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.GroupAction.html#getGroupBorder(com.mxgraph.view.mxGraph)">getGroupBorder</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphActions.UpdateGroupBoundsAction.</B><B><A HREF="../../../../com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html#getGroupBorder(com.mxgraph.view.mxGraph)">getGroupBorder</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle)">createBufferedImage</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    double&nbsp;scale,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                    boolean&nbsp;antiAlias,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle, com.mxgraph.canvas.mxGraphics2DCanvas)">createBufferedImage</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                    double&nbsp;scale,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                    boolean&nbsp;antiAlias,
    +                    <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +                    <A HREF="../../../../com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>&nbsp;graphicsCanvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createHtmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)">createHtmlDocument</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                   double&nbsp;scale,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                   <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createSvgDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)">createSvgDocument</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  double&nbsp;scale,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                  <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html?is-external=true" title="class or interface in org.w3c.dom">Document</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#createVmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)">createVmlDocument</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  double&nbsp;scale,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A>&nbsp;background,
    +                  <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellRenderer.</B><B><A HREF="../../../../com/mxgraph/util/mxCellRenderer.html#drawCells(com.mxgraph.view.mxGraph, java.lang.Object[], double, com.mxgraph.util.mxRectangle, com.mxgraph.util.mxCellRenderer.CanvasFactory)">drawCells</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;scale,
    +          <A HREF="../../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;clip,
    +          <A HREF="../../../../com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A>&nbsp;factory)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cells using a Graphics2D canvas and returns the buffered image
    + that represents the cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSwimlaneManager.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the type of the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSpaceManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSpaceManager.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the type of the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the type of the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphSelectionModel.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enclosing graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSwimlaneManager.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxSpaceManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSpaceManager.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B>mxMultiplicity.</B><B><A HREF="../../../../com/mxgraph/view/mxMultiplicity.html#check(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, java.lang.Object, int, int)">check</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +      int&nbsp;sourceOut,
    +      int&nbsp;targetIn)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: check
    + 
    + Checks the multiplicity for the given arguments and returns the error
    + for the given connection or null if the multiplicity does not apply.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxMultiplicity.</B><B><A HREF="../../../../com/mxgraph/view/mxMultiplicity.html#checkNeighbors(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, java.lang.Object)">checkNeighbors</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks the type of the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxMultiplicity.</B><B><A HREF="../../../../com/mxgraph/view/mxMultiplicity.html#checkTerminal(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object)">checkTerminal</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks the type of the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxMultiplicity.</B><B><A HREF="../../../../com/mxgraph/view/mxMultiplicity.html#checkType(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.String)">checkType</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks the type of the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B>mxMultiplicity.</B><B><A HREF="../../../../com/mxgraph/view/mxMultiplicity.html#checkType(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.String, java.lang.String, java.lang.String)">checkType</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attrValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks the type of the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxSwimlaneManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSwimlaneManager.html#setGraph(com.mxgraph.view.mxGraph)">setGraph</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxSpaceManager.</B><B><A HREF="../../../../com/mxgraph/view/mxSpaceManager.html#setGraph(com.mxgraph.view.mxGraph)">setGraph</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxLayoutManager.</B><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#setGraph(com.mxgraph.view.mxGraph)">setGraph</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html#mxGraphSelectionModel(com.mxgraph.view.mxGraph)">mxGraphSelectionModel</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new selection model for the specified graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#mxGraphView(com.mxgraph.view.mxGraph)">mxGraphView</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new view for the given graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxLayoutManager.html#mxLayoutManager(com.mxgraph.view.mxGraph)">mxLayoutManager</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxSpaceManager.html#mxSpaceManager(com.mxgraph.view.mxGraph)">mxSpaceManager</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxSwimlaneManager.html#mxSwimlaneManager(com.mxgraph.view.mxGraph)">mxSwimlaneManager</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraph.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraph.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxGraph.mxICellVisitor.html b/java/docs/com/mxgraph/view/class-use/mxGraph.mxICellVisitor.html
    new file mode 100644
    index 000000000..d9fb28164
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxGraph.mxICellVisitor.html
    @@ -0,0 +1,231 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.view.mxGraph.mxICellVisitor (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.view.mxGraph.mxICellVisitor (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraph.mxICellVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraph.mxICellVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.view.mxGraph.mxICellVisitor</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A> in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraphLayout.</B><B><A HREF="../../../../com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +         boolean&nbsp;directed,
    +         <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>&nbsp;visitor,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;visited)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traverses the (directed) graph invoking the given function for each
    + visited vertex and edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor)">traverse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +         boolean&nbsp;directed,
    +         <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>&nbsp;visitor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traverses the tree starting at the given vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +         boolean&nbsp;directed,
    +         <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>&nbsp;visitor,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;visited)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traverses the (directed) graph invoking the given function for each
    + visited vertex and edge.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraph.mxICellVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraph.mxICellVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxGraphSelectionModel.html b/java/docs/com/mxgraph/view/class-use/mxGraphSelectionModel.html
    new file mode 100644
    index 000000000..49d4b8ded
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxGraphSelectionModel.html
    @@ -0,0 +1,230 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxGraphSelectionModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxGraphSelectionModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraphSelectionModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphSelectionModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxGraphSelectionModel</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphSelectionModel.mxSelectionChange.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#selectionModel">selectionModel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the <mxGraphSelection> that models the current selection.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#createSelectionModel()">createSelectionModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new selection model to be used in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getSelectionModel()">getSelectionModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#mxGraphSelectionModel.mxSelectionChange(com.mxgraph.view.mxGraphSelectionModel, java.util.Collection, java.util.Collection)">mxGraphSelectionModel.mxSelectionChange</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>&nbsp;model,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;added,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;removed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraphSelectionModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphSelectionModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxGraphSelectionModel.mxSelectionChange.html b/java/docs/com/mxgraph/view/class-use/mxGraphSelectionModel.mxSelectionChange.html
    new file mode 100644
    index 000000000..3c6de74c0
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxGraphSelectionModel.mxSelectionChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxGraphSelectionModel.mxSelectionChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxGraphSelectionModel.mxSelectionChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraphSelectionModel.mxSelectionChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphSelectionModel.mxSelectionChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxGraphSelectionModel.mxSelectionChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.view.mxGraphSelectionModel.mxSelectionChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraphSelectionModel.mxSelectionChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphSelectionModel.mxSelectionChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxGraphView.html b/java/docs/com/mxgraph/view/class-use/mxGraphView.html
    new file mode 100644
    index 000000000..c43671d6c
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxGraphView.html
    @@ -0,0 +1,315 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxGraphView (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxGraphView (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraphView.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphView.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxGraphView</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.mxCurrentRootChange.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#view">view</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#view">view</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B>mxTemporaryCellStates.</B><B><A HREF="../../../../com/mxgraph/view/mxTemporaryCellStates.html#view">view</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#view">view</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the view that caches the cell states.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#createGraphView()">createGraphView</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new view to be used in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.mxCurrentRootChange.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#getView()">getView</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the graph view where the change happened.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#getView()">getView</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enclosing graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getView()">getView</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the view that contains the cell states.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxCellState.</B><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#setView(com.mxgraph.view.mxGraphView)">setView</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the enclosing graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#setView(com.mxgraph.view.mxGraphView)">setView</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the view that contains the cell states.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxCellState.html#mxCellState(com.mxgraph.view.mxGraphView, java.lang.Object, java.util.Map)">mxCellState</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new object that represents the current state of the given
    + cell in the specified view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#mxGraphView.mxCurrentRootChange(com.mxgraph.view.mxGraphView, java.lang.Object)">mxGraphView.mxCurrentRootChange</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a change of the current root in the given view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxTemporaryCellStates.html#mxTemporaryCellStates(com.mxgraph.view.mxGraphView)">mxTemporaryCellStates</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new temporary cell states instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxTemporaryCellStates.html#mxTemporaryCellStates(com.mxgraph.view.mxGraphView, double)">mxTemporaryCellStates</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                      double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new temporary cell states instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxTemporaryCellStates.html#mxTemporaryCellStates(com.mxgraph.view.mxGraphView, double, java.lang.Object[])">mxTemporaryCellStates</A></B>(<A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                      double&nbsp;scale,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new temporary cell states instance.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraphView.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphView.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxGraphView.mxCurrentRootChange.html b/java/docs/com/mxgraph/view/class-use/mxGraphView.mxCurrentRootChange.html
    new file mode 100644
    index 000000000..cbc457f40
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxGraphView.mxCurrentRootChange.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxGraphView.mxCurrentRootChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxGraphView.mxCurrentRootChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraphView.mxCurrentRootChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphView.mxCurrentRootChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxGraphView.mxCurrentRootChange</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.view.mxGraphView.mxCurrentRootChange
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxGraphView.mxCurrentRootChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphView.mxCurrentRootChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxLayoutManager.html b/java/docs/com/mxgraph/view/class-use/mxLayoutManager.html
    new file mode 100644
    index 000000000..706b8aa35
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxLayoutManager.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxLayoutManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxLayoutManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxLayoutManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLayoutManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxLayoutManager</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.view.mxLayoutManager
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxLayoutManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLayoutManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxMultiplicity.html b/java/docs/com/mxgraph/view/class-use/mxMultiplicity.html
    new file mode 100644
    index 000000000..c8c47940d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxMultiplicity.html
    @@ -0,0 +1,214 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxMultiplicity (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxMultiplicity (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxMultiplicity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMultiplicity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxMultiplicity</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#multiplicities">multiplicities</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the multiplicities to be used for validation of the graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>[]</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getMultiplicities()">getMultiplicities</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#setMultiplicities(com.mxgraph.view.mxMultiplicity[])">setMultiplicities</A></B>(<A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>[]&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxMultiplicity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMultiplicity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxPerimeter.html b/java/docs/com/mxgraph/view/class-use/mxPerimeter.html
    new file mode 100644
    index 000000000..d59f3a1c9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxPerimeter.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxPerimeter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxPerimeter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxPerimeter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPerimeter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxPerimeter</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.view.mxPerimeter
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxPerimeter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPerimeter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxPerimeter.mxPerimeterFunction.html b/java/docs/com/mxgraph/view/class-use/mxPerimeter.mxPerimeterFunction.html
    new file mode 100644
    index 000000000..4f5cfd05f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxPerimeter.mxPerimeterFunction.html
    @@ -0,0 +1,230 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Interface com.mxgraph.view.mxPerimeter.mxPerimeterFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Interface com.mxgraph.view.mxPerimeter.mxPerimeterFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxPerimeter.mxPerimeterFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPerimeter.mxPerimeterFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Interface<br>com.mxgraph.view.mxPerimeter.mxPerimeterFunction</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPerimeter.</B><B><A HREF="../../../../com/mxgraph/view/mxPerimeter.html#EllipsePerimeter">EllipsePerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes an elliptic perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPerimeter.</B><B><A HREF="../../../../com/mxgraph/view/mxPerimeter.html#HexagonPerimeter">HexagonPerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes a hexagon perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPerimeter.</B><B><A HREF="../../../../com/mxgraph/view/mxPerimeter.html#RectanglePerimeter">RectanglePerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes a rectangular perimeter for the given bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPerimeter.</B><B><A HREF="../../../../com/mxgraph/view/mxPerimeter.html#RhombusPerimeter">RhombusPerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes a rhombus (aka diamond) perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxPerimeter.</B><B><A HREF="../../../../com/mxgraph/view/mxPerimeter.html#TrianglePerimeter">TrianglePerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes a triangle perimeter.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraphView.</B><B><A HREF="../../../../com/mxgraph/view/mxGraphView.html#getPerimeterFunction(com.mxgraph.view.mxCellState)">getPerimeterFunction</A></B>(<A HREF="../../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the perimeter function for the given state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxPerimeter.mxPerimeterFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPerimeter.mxPerimeterFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxSpaceManager.html b/java/docs/com/mxgraph/view/class-use/mxSpaceManager.html
    new file mode 100644
    index 000000000..8717d26ee
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxSpaceManager.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxSpaceManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxSpaceManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxSpaceManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpaceManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxSpaceManager</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.view.mxSpaceManager
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxSpaceManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpaceManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxStyleRegistry.html b/java/docs/com/mxgraph/view/class-use/mxStyleRegistry.html
    new file mode 100644
    index 000000000..fe27c6dc5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxStyleRegistry.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxStyleRegistry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxStyleRegistry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxStyleRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStyleRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxStyleRegistry</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.view.mxStyleRegistry
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxStyleRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStyleRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxStylesheet.html b/java/docs/com/mxgraph/view/class-use/mxStylesheet.html
    new file mode 100644
    index 000000000..d52b0cf6e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxStylesheet.html
    @@ -0,0 +1,243 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxStylesheet (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxStylesheet (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxStylesheet.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStylesheet.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxStylesheet</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Uses of <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A> in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> declared as <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#stylesheet">stylesheet</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the stylesheet that defines the appearance of the cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> that return <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#createStylesheet()">createStylesheet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stylesheet to be used in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#getStylesheet()">getStylesheet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stylesheet that provides the style.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B>mxGraph.</B><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#setStylesheet(com.mxgraph.view.mxStylesheet)">setStylesheet</A></B>(<A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the stylesheet that provides the style.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> with parameters of type <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.model.mxIGraphModel, com.mxgraph.view.mxStylesheet)">mxGraph</A></B>(<A HREF="../../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +        <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;stylesheet)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graph for the specified model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../../com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.view.mxStylesheet)">mxGraph</A></B>(<A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;stylesheet)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graph for the specified model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxStylesheet.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStylesheet.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxSwimlaneManager.html b/java/docs/com/mxgraph/view/class-use/mxSwimlaneManager.html
    new file mode 100644
    index 000000000..5c7a73584
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxSwimlaneManager.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxSwimlaneManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxSwimlaneManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxSwimlaneManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwimlaneManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxSwimlaneManager</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.view.mxSwimlaneManager
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxSwimlaneManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwimlaneManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/class-use/mxTemporaryCellStates.html b/java/docs/com/mxgraph/view/class-use/mxTemporaryCellStates.html
    new file mode 100644
    index 000000000..85df1395d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/class-use/mxTemporaryCellStates.html
    @@ -0,0 +1,145 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Class com.mxgraph.view.mxTemporaryCellStates (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Class com.mxgraph.view.mxTemporaryCellStates (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxTemporaryCellStates.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTemporaryCellStates.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Class<br>com.mxgraph.view.mxTemporaryCellStates</B></H2>
    +</CENTER>
    +No usage of com.mxgraph.view.mxTemporaryCellStates
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../../index.html?com/mxgraph/view//class-usemxTemporaryCellStates.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTemporaryCellStates.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxCellState.html b/java/docs/com/mxgraph/view/mxCellState.html
    new file mode 100644
    index 000000000..97c2f9113
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxCellState.html
    @@ -0,0 +1,1423 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxCellState (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxCellState (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxCellState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxCellState</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">com.mxgraph.util.mxPoint</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">com.mxgraph.util.mxRectangle</A>
    +          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxCellState</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxCellState</B><DT>extends <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></DL>
    +</PRE>
    +
    +<P>
    +Represents the current state of a cell in a given graph view.
    +<P>
    +
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#com.mxgraph.view.mxCellState">Serialized Form</A></DL>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#absoluteOffset">absoluteOffset</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the absolute offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#absolutePoints">absolutePoints</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List of mxPoints that represent the absolute points of an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#boundingBox">boundingBox</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the largest rectangle which contains all rendering for this cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#cell">cell</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the cell that is represented by this state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#invalid">invalid</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the state is invalid.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#label">label</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current label value, including newlines which result from
    + word wrapping.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#labelBounds">labelBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the rectangle which contains the label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#length">length</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches the distance between the end points and the length of an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#origin">origin</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the origin for all child cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#segments">segments</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array of numbers that represent the cached length of each segment of the
    + edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#style">style</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contains an array of key, value pairs that represent the style of the
    + cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#terminalDistance">terminalDistance</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches the distance between the end points and the length of an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#view">view</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#visibleSourceState">visibleSourceState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches the visible source and target terminal states.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#visibleTargetState">visibleTargetState</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches the visible source and target terminal states.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxRectangle"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxRectangle.html#height">height</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#width">width</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxPoint"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#x">x</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#y">y</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#mxCellState()">mxCellState</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an empty cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#mxCellState(com.mxgraph.view.mxGraphView, java.lang.Object, java.util.Map)">mxCellState</A></B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new object that represents the current state of the given
    + cell in the specified view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#clone()">clone</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a clone of this state where all members are deeply cloned
    + except the view and cell references, which are copied with no
    + cloning to the new instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getAbsoluteOffset()">getAbsoluteOffset</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getAbsolutePoint(int)">getAbsolutePoint</A></B>(int&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute point at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getAbsolutePointCount()">getAbsolutePointCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of absolute points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getAbsolutePoints()">getAbsolutePoints</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getBoundingBox()">getBoundingBox</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getCell()">getCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell that is represented by this state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getLabel()">getLabel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getLabelBounds()">getLabelBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the label bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getLength()">getLength</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the length.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getOrigin()">getOrigin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the origin for the children.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getPerimeterBounds()">getPerimeterBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the rectangle that should be used as the perimeter of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getPerimeterBounds(double)">getPerimeterBounds</A></B>(double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the rectangle that should be used as the perimeter of the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getSegments()">getSegments</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the length of the segments.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getStyle()">getStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell style as a map of key, value pairs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getTerminalDistance()">getTerminalDistance</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the terminal distance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getView()">getView</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enclosing graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getVisibleTerminal(boolean)">getVisibleTerminal</A></B>(boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the visible source or target terminal cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#getVisibleTerminalState(boolean)">getVisibleTerminalState</A></B>(boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the visible source or target terminal state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#isInvalid()">isInvalid</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the state is invalid.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setAbsoluteOffset(com.mxgraph.util.mxPoint)">setAbsoluteOffset</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;absoluteOffset)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute offset.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setAbsolutePoint(int, com.mxgraph.util.mxPoint)">setAbsolutePoint</A></B>(int&nbsp;index,
    +                 <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute point at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setAbsolutePoints(java.util.List)">setAbsolutePoints</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;absolutePoints)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setAbsoluteTerminalPoint(com.mxgraph.util.mxPoint, boolean)">setAbsoluteTerminalPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                         boolean&nbsp;isSource)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the first or last point in the list of points depending on isSource.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setBoundingBox(com.mxgraph.util.mxRectangle)">setBoundingBox</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;boundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the bounding box.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setCell(java.lang.Object)">setCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the cell that this state represents.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setInvalid(boolean)">setInvalid</A></B>(boolean&nbsp;invalid)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the invalid state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setLabel(java.lang.String)">setLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setLabelBounds(com.mxgraph.util.mxRectangle)">setLabelBounds</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;labelBounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the label bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setLength(double)">setLength</A></B>(double&nbsp;length)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the length.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setOrigin(com.mxgraph.util.mxPoint)">setOrigin</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;origin)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the origin for the children.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setSegments(double[])">setSegments</A></B>(double[]&nbsp;segments)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the length of the segments.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setStyle(java.util.Map)">setStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the cell style as a map of key, value pairs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setTerminalDistance(double)">setTerminalDistance</A></B>(double&nbsp;terminalDistance)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the terminal distance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setView(com.mxgraph.view.mxGraphView)">setView</A></B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the enclosing graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxCellState.html#setVisibleTerminalState(com.mxgraph.view.mxCellState, boolean)">setVisibleTerminalState</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminalState,
    +                        boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the visible source or target terminal state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxRectangle"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxRectangle.html#add(com.mxgraph.util.mxRectangle)">add</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#contains(double, double)">contains</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getCenterX()">getCenterX</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getCenterY()">getCenterY</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getHeight()">getHeight</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getRectangle()">getRectangle</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#getWidth()">getWidth</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#grow(double)">grow</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#intersectLine(double, double, double, double)">intersectLine</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#setHeight(double)">setHeight</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#setRect(double, double, double, double)">setRect</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#setWidth(double)">setWidth</A>, <A HREF="../../../com/mxgraph/util/mxRectangle.html#toString()">toString</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxPoint"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxPoint.html#getPoint()">getPoint</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#getX()">getX</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#getY()">getY</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#setX(double)">setX</A>, <A HREF="../../../com/mxgraph/util/mxPoint.html#setY(double)">setY</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="view"><!-- --></A><H3>
    +view</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> <B>view</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph view.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cell"><!-- --></A><H3>
    +cell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DD>Reference to the cell that is represented by this state.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="label"><!-- --></A><H3>
    +label</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>label</B></PRE>
    +<DL>
    +<DD>Holds the current label value, including newlines which result from
    + word wrapping.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="style"><!-- --></A><H3>
    +style</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>style</B></PRE>
    +<DL>
    +<DD>Contains an array of key, value pairs that represent the style of the
    + cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="origin"><!-- --></A><H3>
    +origin</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>origin</B></PRE>
    +<DL>
    +<DD>Holds the origin for all child cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="absolutePoints"><!-- --></A><H3>
    +absolutePoints</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>absolutePoints</B></PRE>
    +<DL>
    +<DD>List of mxPoints that represent the absolute points of an edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="absoluteOffset"><!-- --></A><H3>
    +absoluteOffset</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>absoluteOffset</B></PRE>
    +<DL>
    +<DD>Holds the absolute offset. For edges, this is the absolute coordinates
    + of the label position. For vertices, this is the offset of the label
    + relative to the top, left corner of the vertex.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="terminalDistance"><!-- --></A><H3>
    +terminalDistance</H3>
    +<PRE>
    +protected double <B>terminalDistance</B></PRE>
    +<DL>
    +<DD>Caches the distance between the end points and the length of an edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="length"><!-- --></A><H3>
    +length</H3>
    +<PRE>
    +protected double <B>length</B></PRE>
    +<DL>
    +<DD>Caches the distance between the end points and the length of an edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="segments"><!-- --></A><H3>
    +segments</H3>
    +<PRE>
    +protected double[] <B>segments</B></PRE>
    +<DL>
    +<DD>Array of numbers that represent the cached length of each segment of the
    + edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="labelBounds"><!-- --></A><H3>
    +labelBounds</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>labelBounds</B></PRE>
    +<DL>
    +<DD>Holds the rectangle which contains the label.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="boundingBox"><!-- --></A><H3>
    +boundingBox</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>boundingBox</B></PRE>
    +<DL>
    +<DD>Holds the largest rectangle which contains all rendering for this cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="invalid"><!-- --></A><H3>
    +invalid</H3>
    +<PRE>
    +protected boolean <B>invalid</B></PRE>
    +<DL>
    +<DD>Specifies if the state is invalid. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="visibleSourceState"><!-- --></A><H3>
    +visibleSourceState</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>visibleSourceState</B></PRE>
    +<DL>
    +<DD>Caches the visible source and target terminal states.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="visibleTargetState"><!-- --></A><H3>
    +visibleTargetState</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>visibleTargetState</B></PRE>
    +<DL>
    +<DD>Caches the visible source and target terminal states.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxCellState()"><!-- --></A><H3>
    +mxCellState</H3>
    +<PRE>
    +public <B>mxCellState</B>()</PRE>
    +<DL>
    +<DD>Constructs an empty cell state.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxCellState(com.mxgraph.view.mxGraphView, java.lang.Object, java.util.Map)"><!-- --></A><H3>
    +mxCellState</H3>
    +<PRE>
    +public <B>mxCellState</B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                   <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Constructs a new object that represents the current state of the given
    + cell in the specified view.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>view</CODE> - Graph view that contains the state.<DD><CODE>cell</CODE> - Cell that this state represents.<DD><CODE>style</CODE> - Array of key, value pairs that constitute the style.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isInvalid()"><!-- --></A><H3>
    +isInvalid</H3>
    +<PRE>
    +public boolean <B>isInvalid</B>()</PRE>
    +<DL>
    +<DD>Returns true if the state is invalid.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setInvalid(boolean)"><!-- --></A><H3>
    +setInvalid</H3>
    +<PRE>
    +public void <B>setInvalid</B>(boolean&nbsp;invalid)</PRE>
    +<DL>
    +<DD>Sets the invalid state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getView()"><!-- --></A><H3>
    +getView</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> <B>getView</B>()</PRE>
    +<DL>
    +<DD>Returns the enclosing graph view.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the view</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setView(com.mxgraph.view.mxGraphView)"><!-- --></A><H3>
    +setView</H3>
    +<PRE>
    +public void <B>setView</B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view)</PRE>
    +<DL>
    +<DD>Sets the enclosing graph view.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>view</CODE> - the view to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLabel()"><!-- --></A><H3>
    +getLabel</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getLabel</B>()</PRE>
    +<DL>
    +<DD>Returns the current label.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLabel(java.lang.String)"><!-- --></A><H3>
    +setLabel</H3>
    +<PRE>
    +public void <B>setLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Returns the current label.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell()"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>()</PRE>
    +<DL>
    +<DD>Returns the cell that is represented by this state.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the cell</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCell(java.lang.Object)"><!-- --></A><H3>
    +setCell</H3>
    +<PRE>
    +public void <B>setCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Sets the cell that this state represents.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - the cell to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStyle()"><!-- --></A><H3>
    +getStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getStyle</B>()</PRE>
    +<DL>
    +<DD>Returns the cell style as a map of key, value pairs.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the style</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyle(java.util.Map)"><!-- --></A><H3>
    +setStyle</H3>
    +<PRE>
    +public void <B>setStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Sets the cell style as a map of key, value pairs.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - the style to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOrigin()"><!-- --></A><H3>
    +getOrigin</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getOrigin</B>()</PRE>
    +<DL>
    +<DD>Returns the origin for the children.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the origin</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOrigin(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setOrigin</H3>
    +<PRE>
    +public void <B>setOrigin</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;origin)</PRE>
    +<DL>
    +<DD>Sets the origin for the children.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>origin</CODE> - the origin to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAbsolutePoint(int)"><!-- --></A><H3>
    +getAbsolutePoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getAbsolutePoint</B>(int&nbsp;index)</PRE>
    +<DL>
    +<DD>Returns the absolute point at the given index.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the mxPoint at the given index</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAbsolutePoint(int, com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setAbsolutePoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>setAbsolutePoint</B>(int&nbsp;index,
    +                                <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</PRE>
    +<DL>
    +<DD>Returns the absolute point at the given index.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the mxPoint at the given index</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAbsolutePointCount()"><!-- --></A><H3>
    +getAbsolutePointCount</H3>
    +<PRE>
    +public int <B>getAbsolutePointCount</B>()</PRE>
    +<DL>
    +<DD>Returns the number of absolute points.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the absolutePoints</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAbsolutePoints()"><!-- --></A><H3>
    +getAbsolutePoints</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt; <B>getAbsolutePoints</B>()</PRE>
    +<DL>
    +<DD>Returns the absolute points.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the absolutePoints</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAbsolutePoints(java.util.List)"><!-- --></A><H3>
    +setAbsolutePoints</H3>
    +<PRE>
    +public void <B>setAbsolutePoints</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;absolutePoints)</PRE>
    +<DL>
    +<DD>Returns the absolute points.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>absolutePoints</CODE> - the absolutePoints to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAbsoluteOffset()"><!-- --></A><H3>
    +getAbsoluteOffset</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getAbsoluteOffset</B>()</PRE>
    +<DL>
    +<DD>Returns the absolute offset.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the absoluteOffset</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAbsoluteOffset(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setAbsoluteOffset</H3>
    +<PRE>
    +public void <B>setAbsoluteOffset</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;absoluteOffset)</PRE>
    +<DL>
    +<DD>Returns the absolute offset.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>absoluteOffset</CODE> - the absoluteOffset to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminalDistance()"><!-- --></A><H3>
    +getTerminalDistance</H3>
    +<PRE>
    +public double <B>getTerminalDistance</B>()</PRE>
    +<DL>
    +<DD>Returns the terminal distance.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the terminalDistance</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTerminalDistance(double)"><!-- --></A><H3>
    +setTerminalDistance</H3>
    +<PRE>
    +public void <B>setTerminalDistance</B>(double&nbsp;terminalDistance)</PRE>
    +<DL>
    +<DD>Sets the terminal distance.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>terminalDistance</CODE> - the terminalDistance to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLength()"><!-- --></A><H3>
    +getLength</H3>
    +<PRE>
    +public double <B>getLength</B>()</PRE>
    +<DL>
    +<DD>Returns the length.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the length</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLength(double)"><!-- --></A><H3>
    +setLength</H3>
    +<PRE>
    +public void <B>setLength</B>(double&nbsp;length)</PRE>
    +<DL>
    +<DD>Sets the length.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>length</CODE> - the length to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSegments()"><!-- --></A><H3>
    +getSegments</H3>
    +<PRE>
    +public double[] <B>getSegments</B>()</PRE>
    +<DL>
    +<DD>Returns the length of the segments.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the segments</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSegments(double[])"><!-- --></A><H3>
    +setSegments</H3>
    +<PRE>
    +public void <B>setSegments</B>(double[]&nbsp;segments)</PRE>
    +<DL>
    +<DD>Sets the length of the segments.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>segments</CODE> - the segments to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLabelBounds()"><!-- --></A><H3>
    +getLabelBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getLabelBounds</B>()</PRE>
    +<DL>
    +<DD>Returns the label bounds.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the label bounds for this state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLabelBounds(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +setLabelBounds</H3>
    +<PRE>
    +public void <B>setLabelBounds</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;labelBounds)</PRE>
    +<DL>
    +<DD>Sets the label bounds.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>labelBounds</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundingBox()"><!-- --></A><H3>
    +getBoundingBox</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBoundingBox</B>()</PRE>
    +<DL>
    +<DD>Returns the bounding box.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the bounding box for this state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBoundingBox(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +setBoundingBox</H3>
    +<PRE>
    +public void <B>setBoundingBox</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;boundingBox)</PRE>
    +<DL>
    +<DD>Sets the bounding box.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>boundingBox</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPerimeterBounds()"><!-- --></A><H3>
    +getPerimeterBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getPerimeterBounds</B>()</PRE>
    +<DL>
    +<DD>Returns the rectangle that should be used as the perimeter of the cell.
    + This implementation adds the perimeter spacing to the rectangle
    + defined by this cell state.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the rectangle that defines the perimeter.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPerimeterBounds(double)"><!-- --></A><H3>
    +getPerimeterBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getPerimeterBounds</B>(double&nbsp;border)</PRE>
    +<DL>
    +<DD>Returns the rectangle that should be used as the perimeter of the cell.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the rectangle that defines the perimeter.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAbsoluteTerminalPoint(com.mxgraph.util.mxPoint, boolean)"><!-- --></A><H3>
    +setAbsoluteTerminalPoint</H3>
    +<PRE>
    +public void <B>setAbsoluteTerminalPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                                     boolean&nbsp;isSource)</PRE>
    +<DL>
    +<DD>Sets the first or last point in the list of points depending on isSource.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>point</CODE> - Point that represents the terminal point.<DD><CODE>isSource</CODE> - Boolean that specifies if the first or last point should
    + be assigned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getVisibleTerminal(boolean)"><!-- --></A><H3>
    +getVisibleTerminal</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getVisibleTerminal</B>(boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns the visible source or target terminal cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>source</CODE> - Boolean that specifies if the source or target cell should be
    + returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getVisibleTerminalState(boolean)"><!-- --></A><H3>
    +getVisibleTerminalState</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getVisibleTerminalState</B>(boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns the visible source or target terminal state.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>Boolean</CODE> - that specifies if the source or target state should be
    + returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVisibleTerminalState(com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +setVisibleTerminalState</H3>
    +<PRE>
    +public void <B>setVisibleTerminalState</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminalState,
    +                                    boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Sets the visible source or target terminal state.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>terminalState</CODE> - Cell state that represents the terminal.<DD><CODE>source</CODE> - Boolean that specifies if the source or target state should be set.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clone()"><!-- --></A><H3>
    +clone</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>clone</B>()</PRE>
    +<DL>
    +<DD>Returns a clone of this state where all members are deeply cloned
    + except the view and cell references, which are copied with no
    + cloning to the new instance.
    +<P>
    +<DD><DL>
    +<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxRectangle.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxCellState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV CLASS&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxCellState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxCellState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxConnectionConstraint.html b/java/docs/com/mxgraph/view/mxConnectionConstraint.html
    new file mode 100644
    index 000000000..7b6094725
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxConnectionConstraint.html
    @@ -0,0 +1,425 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxConnectionConstraint (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxConnectionConstraint (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConnectionConstraint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxConnectionConstraint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectionConstraint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxConnectionConstraint</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxConnectionConstraint</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxConnectionConstraint</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Defines an object that contains the constraints about how to connect one
    + side of an edge to its terminal.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html#perimeter">perimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean that specifies if the point should be projected onto the perimeter
    + of the terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html#point">point</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Point that specifies the fixed location of the connection point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html#mxConnectionConstraint()">mxConnectionConstraint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an empty connection constraint.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html#mxConnectionConstraint(com.mxgraph.util.mxPoint)">mxConnectionConstraint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a connection constraint for the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html#mxConnectionConstraint(com.mxgraph.util.mxPoint, boolean)">mxConnectionConstraint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                       boolean&nbsp;perimeter)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new connection constraint for the given point and boolean
    + arguments.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html#getPoint()">getPoint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html#isPerimeter()">isPerimeter</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html#setPerimeter(boolean)">setPerimeter</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html#setPoint(com.mxgraph.util.mxPoint)">setPoint</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the point.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="point"><!-- --></A><H3>
    +point</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>point</B></PRE>
    +<DL>
    +<DD>Point that specifies the fixed location of the connection point.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="perimeter"><!-- --></A><H3>
    +perimeter</H3>
    +<PRE>
    +protected boolean <B>perimeter</B></PRE>
    +<DL>
    +<DD>Boolean that specifies if the point should be projected onto the perimeter
    + of the terminal.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxConnectionConstraint()"><!-- --></A><H3>
    +mxConnectionConstraint</H3>
    +<PRE>
    +public <B>mxConnectionConstraint</B>()</PRE>
    +<DL>
    +<DD>Constructs an empty connection constraint.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxConnectionConstraint(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +mxConnectionConstraint</H3>
    +<PRE>
    +public <B>mxConnectionConstraint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point)</PRE>
    +<DL>
    +<DD>Constructs a connection constraint for the given point.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxConnectionConstraint(com.mxgraph.util.mxPoint, boolean)"><!-- --></A><H3>
    +mxConnectionConstraint</H3>
    +<PRE>
    +public <B>mxConnectionConstraint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;point,
    +                              boolean&nbsp;perimeter)</PRE>
    +<DL>
    +<DD>Constructs a new connection constraint for the given point and boolean
    + arguments.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>point</CODE> - Optional mxPoint that specifies the fixed location of the point
    + in relative coordinates. Default is null.<DD><CODE>perimeter</CODE> - Optional boolean that specifies if the fixed point should be
    + projected onto the perimeter of the terminal. Default is true.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getPoint()"><!-- --></A><H3>
    +getPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getPoint</B>()</PRE>
    +<DL>
    +<DD>Returns the point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPoint(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setPoint</H3>
    +<PRE>
    +public void <B>setPoint</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPerimeter()"><!-- --></A><H3>
    +isPerimeter</H3>
    +<PRE>
    +public boolean <B>isPerimeter</B>()</PRE>
    +<DL>
    +<DD>Returns perimeter.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setPerimeter(boolean)"><!-- --></A><H3>
    +setPerimeter</H3>
    +<PRE>
    +public void <B>setPerimeter</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets perimeter.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxConnectionConstraint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxConnectionConstraint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxConnectionConstraint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxEdgeStyle.html b/java/docs/com/mxgraph/view/mxEdgeStyle.html
    new file mode 100644
    index 000000000..ab646965a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxEdgeStyle.html
    @@ -0,0 +1,796 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxEdgeStyle (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxEdgeStyle (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEdgeStyle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxEdgeStyle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeStyle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxEdgeStyle</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxEdgeStyle</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxEdgeStyle</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Provides various edge styles to be used as the values for
    + mxConstants.STYLE_EDGE in a cell style. Alternatevly, the mxConstants.
    + EDGESTYLE_* constants can be used to reference an edge style via the
    + mxStyleRegistry.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an edge style function.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#BOTTOM">BOTTOM</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#BOTTOM_MASK">BOTTOM_MASK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#CENTER_MASK">CENTER_MASK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double[][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#dirVectors">dirVectors</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#ElbowConnector">ElbowConnector</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses either SideToSide or TopToBottom depending on the horizontal
    + flag in the cell style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#EntityRelation">EntityRelation</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides an entity relation style for edges (as used in database
    + schema diagrams).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#hozBendProportion">hozBendProportion</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int[][][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#inlineRoutePatterns">inlineRoutePatterns</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overriden routing patterns for orthogonal connections
    + where the vertices have</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#LEFT">LEFT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#LEFT_MASK">LEFT_MASK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double[][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#limits">limits</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#Loop">Loop</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides a self-reference, aka.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#orthBuffer">orthBuffer</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#orthConnector">orthConnector</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An orthogonal connector that avoids connecting vertices and 
    + respects port constraints</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#RIGHT">RIGHT</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#RIGHT_MASK">RIGHT_MASK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int[][][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#routePatterns">routePatterns</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default routing patterns for orthogonal connections</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#SIDE_MASK">SIDE_MASK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#SideToSide">SideToSide</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides a vertical elbow edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#SOURCE_MASK">SOURCE_MASK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#TARGET_MASK">TARGET_MASK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#TOP">TOP</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#TOP_MASK">TOP_MASK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#TopToBottom">TopToBottom</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides a horizontal elbow edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#vertBendProportion">vertBendProportion</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#VERTEX_MASK">VERTEX_MASK</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#vertexSeperations">vertexSeperations</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;double[][]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#wayPoints1">wayPoints1</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html#mxEdgeStyle()">mxEdgeStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="EntityRelation"><!-- --></A><H3>
    +EntityRelation</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> <B>EntityRelation</B></PRE>
    +<DL>
    +<DD>Provides an entity relation style for edges (as used in database
    + schema diagrams).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="Loop"><!-- --></A><H3>
    +Loop</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> <B>Loop</B></PRE>
    +<DL>
    +<DD>Provides a self-reference, aka. loop.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="ElbowConnector"><!-- --></A><H3>
    +ElbowConnector</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> <B>ElbowConnector</B></PRE>
    +<DL>
    +<DD>Uses either SideToSide or TopToBottom depending on the horizontal
    + flag in the cell style. SideToSide is used if horizontal is true or
    + unspecified.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SideToSide"><!-- --></A><H3>
    +SideToSide</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> <B>SideToSide</B></PRE>
    +<DL>
    +<DD>Provides a vertical elbow edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TopToBottom"><!-- --></A><H3>
    +TopToBottom</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> <B>TopToBottom</B></PRE>
    +<DL>
    +<DD>Provides a horizontal elbow edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="orthBuffer"><!-- --></A><H3>
    +orthBuffer</H3>
    +<PRE>
    +public static double <B>orthBuffer</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dirVectors"><!-- --></A><H3>
    +dirVectors</H3>
    +<PRE>
    +public static double[][] <B>dirVectors</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="wayPoints1"><!-- --></A><H3>
    +wayPoints1</H3>
    +<PRE>
    +public static double[][] <B>wayPoints1</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="routePatterns"><!-- --></A><H3>
    +routePatterns</H3>
    +<PRE>
    +public static int[][][] <B>routePatterns</B></PRE>
    +<DL>
    +<DD>The default routing patterns for orthogonal connections
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="inlineRoutePatterns"><!-- --></A><H3>
    +inlineRoutePatterns</H3>
    +<PRE>
    +public static int[][][] <B>inlineRoutePatterns</B></PRE>
    +<DL>
    +<DD>Overriden routing patterns for orthogonal connections
    + where the vertices have
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="vertexSeperations"><!-- --></A><H3>
    +vertexSeperations</H3>
    +<PRE>
    +public static double[] <B>vertexSeperations</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="limits"><!-- --></A><H3>
    +limits</H3>
    +<PRE>
    +public static double[][] <B>limits</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LEFT_MASK"><!-- --></A><H3>
    +LEFT_MASK</H3>
    +<PRE>
    +public static int <B>LEFT_MASK</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TOP_MASK"><!-- --></A><H3>
    +TOP_MASK</H3>
    +<PRE>
    +public static int <B>TOP_MASK</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="RIGHT_MASK"><!-- --></A><H3>
    +RIGHT_MASK</H3>
    +<PRE>
    +public static int <B>RIGHT_MASK</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="BOTTOM_MASK"><!-- --></A><H3>
    +BOTTOM_MASK</H3>
    +<PRE>
    +public static int <B>BOTTOM_MASK</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="LEFT"><!-- --></A><H3>
    +LEFT</H3>
    +<PRE>
    +public static int <B>LEFT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TOP"><!-- --></A><H3>
    +TOP</H3>
    +<PRE>
    +public static int <B>TOP</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="RIGHT"><!-- --></A><H3>
    +RIGHT</H3>
    +<PRE>
    +public static int <B>RIGHT</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="BOTTOM"><!-- --></A><H3>
    +BOTTOM</H3>
    +<PRE>
    +public static int <B>BOTTOM</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SIDE_MASK"><!-- --></A><H3>
    +SIDE_MASK</H3>
    +<PRE>
    +public static int <B>SIDE_MASK</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="CENTER_MASK"><!-- --></A><H3>
    +CENTER_MASK</H3>
    +<PRE>
    +public static int <B>CENTER_MASK</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="SOURCE_MASK"><!-- --></A><H3>
    +SOURCE_MASK</H3>
    +<PRE>
    +public static int <B>SOURCE_MASK</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TARGET_MASK"><!-- --></A><H3>
    +TARGET_MASK</H3>
    +<PRE>
    +public static int <B>TARGET_MASK</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="VERTEX_MASK"><!-- --></A><H3>
    +VERTEX_MASK</H3>
    +<PRE>
    +public static int <B>VERTEX_MASK</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="vertBendProportion"><!-- --></A><H3>
    +vertBendProportion</H3>
    +<PRE>
    +public static double <B>vertBendProportion</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="hozBendProportion"><!-- --></A><H3>
    +hozBendProportion</H3>
    +<PRE>
    +public static double <B>hozBendProportion</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="orthConnector"><!-- --></A><H3>
    +orthConnector</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> <B>orthConnector</B></PRE>
    +<DL>
    +<DD>An orthogonal connector that avoids connecting vertices and 
    + respects port constraints
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxEdgeStyle()"><!-- --></A><H3>
    +mxEdgeStyle</H3>
    +<PRE>
    +public <B>mxEdgeStyle</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEdgeStyle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxEdgeStyle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeStyle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html b/java/docs/com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html
    new file mode 100644
    index 000000000..662db88fa
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html
    @@ -0,0 +1,232 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxEdgeStyle.mxEdgeStyleFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxEdgeStyle.mxEdgeStyleFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEdgeStyle.mxEdgeStyleFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeStyle.mxEdgeStyleFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Interface mxEdgeStyle.mxEdgeStyleFunction</H2>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static interface <B>mxEdgeStyle.mxEdgeStyleFunction</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the requirements for an edge style function.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)">apply</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +      <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +      <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;result)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements an edge style function.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)"><!-- --></A><H3>
    +apply</H3>
    +<PRE>
    +void <B>apply</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;result)</PRE>
    +<DL>
    +<DD>Implements an edge style function. At the time the function is called, the result
    + array contains a placeholder (null) for the first absolute point,
    + that is, the point where the edge and source terminal are connected.
    + The implementation of the style then adds all intermediate waypoints
    + except for the last point, that is, the connection point between the
    + edge and the target terminal. The first ant the last point in the
    + result array are then replaced with mxPoints that take into account
    + the terminal's perimeter and next point on the edge.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - Cell state that represents the edge to be updated.<DD><CODE>source</CODE> - Cell state that represents the source terminal.<DD><CODE>target</CODE> - Cell state that represents the target terminal.<DD><CODE>points</CODE> - List of relative control points.<DD><CODE>result</CODE> - Array of points that represent the actual points of the
    + edge.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxEdgeStyle.mxEdgeStyleFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxEdgeStyle.mxEdgeStyleFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxGraph.html b/java/docs/com/mxgraph/view/mxGraph.html
    new file mode 100644
    index 000000000..a1ae923c5
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxGraph.html
    @@ -0,0 +1,10271 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxGraph (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraph (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraph.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraph.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraph.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxGraph</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxGraph</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraph</B><DT>extends <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.
    + 
    + <h3>Images</h3>
    + To create an image from a graph, use the following code for a given
    + XML document (doc) and File (file):
    + 
    + <code>
    + Image img = mxCellRenderer.createBufferedImage(
    +                graph, null, 1, Color.WHITE, false, null);
    + ImageIO.write(img, "png", file);
    + </code>
    + 
    + If the XML is given as a string rather than a document, the document can
    + be obtained using mxUtils.parse.
    + 
    + This class fires the following events:
    + 
    + mxEvent.ROOT fires if the root in the model has changed. This event has no
    + properties.
    + 
    + mxEvent.ALIGN_CELLS fires between begin- and endUpdate in alignCells. The
    + <code>cells</code> and <code>align</code> properties contain the respective
    + arguments that were passed to alignCells.
    + 
    + mxEvent.FLIP_EDGE fires between begin- and endUpdate in flipEdge. The
    + <code>edge</code> property contains the edge passed to flipEdge.
    + 
    + mxEvent.ORDER_CELLS fires between begin- and endUpdate in orderCells. The
    + <code>cells</code> and <code>back</code> properties contain the respective
    + arguments that were passed to orderCells.
    +
    + mxEvent.CELLS_ORDERED fires between begin- and endUpdate in cellsOrdered.
    + The <code>cells</code> and <code>back</code> arguments contain the
    + respective arguments that were passed to cellsOrdered.
    + 
    + mxEvent.GROUP_CELLS fires between begin- and endUpdate in groupCells. The
    + <code>group</code>, <code>cells</code> and <code>border</code> arguments
    + contain the respective arguments that were passed to groupCells.
    + 
    + mxEvent.UNGROUP_CELLS fires between begin- and endUpdate in ungroupCells.
    + The <code>cells</code> property contains the array of cells that was passed
    + to ungroupCells.
    + 
    + mxEvent.REMOVE_CELLS_FROM_PARENT fires between begin- and endUpdate in
    + removeCellsFromParent. The <code>cells</code> property contains the array of
    + cells that was passed to removeCellsFromParent.
    + 
    + mxEvent.ADD_CELLS fires between begin- and endUpdate in addCells. The
    + <code>cells</code>, <code>parent</code>, <code>index</code>,
    + <code>source</code> and <code>target</code> properties contain the
    + respective arguments that were passed to addCells.
    + 
    + mxEvent.CELLS_ADDED fires between begin- and endUpdate in cellsAdded. The
    + <code>cells</code>, <code>parent</code>, <code>index</code>,
    + <code>source</code>, <code>target</code> and <code>absolute</code>
    + properties contain the respective arguments that were passed to cellsAdded.
    + 
    + mxEvent.REMOVE_CELLS fires between begin- and endUpdate in removeCells. The
    + <code>cells</code> and <code>includeEdges</code> arguments contain the
    + respective arguments that were passed to removeCells.
    + 
    + mxEvent.CELLS_REMOVED fires between begin- and endUpdate in cellsRemoved.
    + The <code>cells</code> argument contains the array of cells that was
    + removed.
    + 
    + mxEvent.SPLIT_EDGE fires between begin- and endUpdate in splitEdge. The
    + <code>edge</code> property contains the edge to be splitted, the
    + <code>cells</code>, <code>newEdge</code>, <code>dx</code> and
    + <code>dy</code> properties contain the respective arguments that were passed
    + to splitEdge.
    + 
    + mxEvent.TOGGLE_CELLS fires between begin- and endUpdate in toggleCells. The
    + <code>show</code>, <code>cells</code> and <code>includeEdges</code>
    + properties contain the respective arguments that were passed to toggleCells.
    + 
    + mxEvent.FOLD_CELLS fires between begin- and endUpdate in foldCells. The
    + <code>collapse</code>, <code>cells</code> and <code>recurse</code>
    + properties contain the respective arguments that were passed to foldCells.
    + 
    + mxEvent.CELLS_FOLDED fires between begin- and endUpdate in cellsFolded. The
    + <code>collapse</code>, <code>cells</code> and <code>recurse</code>
    + properties contain the respective arguments that were passed to cellsFolded.
    + 
    + mxEvent.UPDATE_CELL_SIZE fires between begin- and endUpdate in
    + updateCellSize. The <code>cell</code> and <code>ignoreChildren</code>
    + properties contain the respective arguments that were passed to
    + updateCellSize.
    + 
    + mxEvent.RESIZE_CELLS fires between begin- and endUpdate in resizeCells. The
    + <code>cells</code> and <code>bounds</code> properties contain the respective
    + arguments that were passed to resizeCells.
    + 
    + mxEvent.CELLS_RESIZED fires between begin- and endUpdate in cellsResized.
    + The <code>cells</code> and <code>bounds</code> properties contain the
    + respective arguments that were passed to cellsResized.
    + 
    + mxEvent.MOVE_CELLS fires between begin- and endUpdate in moveCells. The
    + <code>cells</code>, <code>dx</code>, <code>dy</code>, <code>clone</code>,
    + <code>target</code> and <code>location</code> properties contain the
    + respective arguments that were passed to moveCells.
    + 
    + mxEvent.CELLS_MOVED fires between begin- and endUpdate in cellsMoved. The
    + <code>cells</code>, <code>dx</code>, <code>dy</code> and
    + <code>disconnect</code> properties contain the respective arguments that
    + were passed to cellsMoved.
    + 
    + mxEvent.CONNECT_CELL fires between begin- and endUpdate in connectCell. The
    + <code>edge</code>, <code>terminal</code> and <code>source</code> properties
    + contain the respective arguments that were passed to connectCell.
    + 
    + mxEvent.CELL_CONNECTED fires between begin- and endUpdate in cellConnected.
    + The <code>edge</code>, <code>terminal</code> and <code>source</code>
    + properties contain the respective arguments that were passed to
    + cellConnected.
    + 
    + mxEvent.REPAINT fires if a repaint was requested by calling repaint. The
    + <code>region</code> property contains the optional mxRectangle that was
    + passed to repaint to define the dirty region.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#allowDanglingEdges">allowDanglingEdges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edges with disconnected terminals are
    + allowed in the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#allowLoops">allowLoops</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if loops (aka self-references) are allowed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#allowNegativeCoordinates">allowNegativeCoordinates</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if negative coordinates for vertices are allowed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#alternateEdgeStyle">alternateEdgeStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the alternate edge style to be used if the main control point
    + on an edge is being doubleclicked.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#autoOrigin">autoOrigin</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the origin should be automatically updated.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#autoSizeCells">autoSizeCells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the graph should automatically update the cell size
    + after an edit.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#border">border</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Border to be added to the bottom and right side when the container is
    + being resized after the graph has been changed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsBendable">cellsBendable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isCell(s)Bendable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsCloneable">cellsCloneable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isCell(s)Cloneable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsDeletable">cellsDeletable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isCell(s)Deletable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsDisconnectable">cellsDisconnectable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isCellDisconntableFromTerminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsEditable">cellsEditable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isCell(s)Editable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsLocked">cellsLocked</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isCell(s)Locked.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsMovable">cellsMovable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isCell(s)Movable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsResizable">cellsResizable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isCell(s)Sizable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsSelectable">cellsSelectable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isCell(s)Selectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#changesRepaintThreshold">changesRepaintThreshold</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the maximum number of changes that should be processed to find
    + the dirty region.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeSupport.html?is-external=true" title="class or interface in java.beans">PropertyChangeSupport</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#changeSupport">changeSupport</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Property change event handling.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cloneInvalidEdges">cloneInvalidEdges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edges that are cloned should be validated and only inserted
    + if they are valid.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#collapseToPreferredSize">collapseToPreferredSize</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the cell size should be changed to the preferred size when
    + a cell is first collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#connectableEdges">connectableEdges</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edges are connectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#constrainChildren">constrainChildren</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isConstrainChildren.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#defaultLoopStyle">defaultLoopStyle</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default style for loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#defaultOverlap">defaultOverlap</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value returned by getOverlap if isAllowOverlapParent returns
    + true for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#defaultParent">defaultParent</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the default parent to be used to insert new cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#disconnectOnMove">disconnectOnMove</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edges should be disconnected from their terminals when they
    + are moved.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#dropEnabled">dropEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isDropEnabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#edgeLabelsMovable">edgeLabelsMovable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for edges in isLabelMovable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isEnabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#extendParents">extendParents</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if a parent should contain the child bounds after a resize of
    + the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#extendParentsOnAdd">extendParentsOnAdd</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if parents should be extended according to the <extendParents>
    + switch if cells are added.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#fullRepaintHandler">fullRepaintHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires repaint events for full repaints.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#graphModelChangeHandler">graphModelChangeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires repaint events for model changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#gridEnabled">gridEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the grid is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#gridSize">gridSize</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the grid size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#htmlLabels">htmlLabels</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isHtmlLabel.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#imageBundles">imageBundles</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the list of bundles.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#keepEdgesInBackground">keepEdgesInBackground</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edges should appear in the background regardless of their
    + order in the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#keepEdgesInForeground">keepEdgesInForeground</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edges should appear in the foreground regardless of their
    + order in the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#labelsClipped">labelsClipped</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for isLabel(s)Clipped.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#labelsVisible">labelsVisible</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if labels should be visible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#maximumGraphBounds">maximumGraphBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<mxRectangle> that specifies the area in which all cells in the
    + diagram should be placed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#minimumGraphSize">minimumGraphSize</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mxRectangle that specifies the minimum size of the graph canvas inside
    + the scrollpane.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the model that contains the cells to be displayed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#multigraph">multigraph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if multiple edges in the same direction between
    + the same pair of vertices are allowed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#multiplicities">multiplicities</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the multiplicities to be used for validation of the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#origin">origin</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the current automatic origin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#resetEdgesOnConnect">resetEdgesOnConnect</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edge control points should be reset after
    + the the edge has been reconnected.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#resetEdgesOnMove">resetEdgesOnMove</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if edge control points should be reset after
    + the move of a connected cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#resetEdgesOnResize">resetEdgesOnResize</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if loops (aka self-references) are allowed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#resetViewOnRootChange">resetViewOnRootChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the scale and translate should be reset if
    + the root changes in the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectionModel">selectionModel</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the <mxGraphSelection> that models the current selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#splitEnabled">splitEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if dropping onto edges should be enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#stylesheet">stylesheet</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the stylesheet that defines the appearance of the cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#swimlaneNesting">swimlaneNesting</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if nesting of swimlanes is allowed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#updateOriginHandler">updateOriginHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires repaint events for full repaints.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#VERSION">VERSION</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the version number of this release.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#vertexLabelsMovable">vertexLabelsMovable</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the return value for vertices in isLabelMovable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#view">view</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the view that caches the cell states.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#mxGraph()">mxGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graph with an empty
    + <A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><CODE>mxGraphModel</CODE></A>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.model.mxIGraphModel)">mxGraph</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graph for the specified model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.model.mxIGraphModel, com.mxgraph.view.mxStylesheet)">mxGraph</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +        <A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;stylesheet)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graph for the specified model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.view.mxStylesheet)">mxGraph</A></B>(<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;stylesheet)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new graph for the specified model.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addAllEdges(java.lang.Object[])">addAllEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array with the given cells and all edges that are connected
    + to a cell or one of its descendants.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addCell(java.lang.Object)">addCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the cell to the default parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addCell(java.lang.Object, java.lang.Object)">addCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the cell to the parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addCell(java.lang.Object, java.lang.Object, java.lang.Integer, java.lang.Object, java.lang.Object)">addCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the cell to the parent and connects it to the given source and
    + target terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addCells(java.lang.Object[])">addCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the cells to the default parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addCells(java.lang.Object[], java.lang.Object)">addCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the cells to the parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addCells(java.lang.Object[], java.lang.Object, java.lang.Integer)">addCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the cells to the parent at the given index.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addCells(java.lang.Object[], java.lang.Object, java.lang.Integer, java.lang.Object, java.lang.Object)">addCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the cells to the parent at the given index, connecting each cell to
    + the optional source and target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addEdge(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Integer)">addEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the edge to the parent and connects it to the given source and
    + target terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addImageBundle(com.mxgraph.util.mxImageBundle)">addImageBundle</A></B>(<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&nbsp;bundle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified bundle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addPropertyChangeListener(java.beans.PropertyChangeListener)">addPropertyChangeListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)">addPropertyChangeListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addSelectionCell(java.lang.Object)">addSelectionCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#addSelectionCells(java.lang.Object[])">addSelectionCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#alignCells(java.lang.String)">alignCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aligns the selection cells vertically or horizontally according to the
    + given alignment.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#alignCells(java.lang.String, java.lang.Object[])">alignCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aligns the given cells vertically or horizontally according to the given
    + alignment.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#alignCells(java.lang.String, java.lang.Object[], java.lang.Object)">alignCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;param)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aligns the given cells vertically or horizontally according to the given
    + alignment using the optional parameter as the coordinate.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellConnected(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)">cellConnected</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +              boolean&nbsp;source,
    +              <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the new terminal for the given edge and resets the edge points if
    + isResetEdgesOnConnect returns true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, java.lang.Object, java.lang.Object)">cellDrawn</A></B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;labelElement)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when a cell has been painted as the specified object, typically a
    + DOM node that represents the given cell graphically in a document.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellLabelChanged(java.lang.Object, java.lang.Object, boolean)">cellLabelChanged</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                 boolean&nbsp;autoSize)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the new label for a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsAdded(java.lang.Object[], java.lang.Object, java.lang.Integer, java.lang.Object, java.lang.Object, boolean)">cellsAdded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +           boolean&nbsp;absolute)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified cells to the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsFolded(java.lang.Object[], boolean, boolean)">cellsFolded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +            boolean&nbsp;collapse,
    +            boolean&nbsp;recurse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invokes cellsFoldable with checkFoldable set to false.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsFolded(java.lang.Object[], boolean, boolean, boolean)">cellsFolded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +            boolean&nbsp;collapse,
    +            boolean&nbsp;recurse,
    +            boolean&nbsp;checkFoldable)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the collapsed state of the specified cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellSizeUpdated(java.lang.Object, boolean)">cellSizeUpdated</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                boolean&nbsp;ignoreChildren)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the size of the given cell in the model using
    + getPreferredSizeForCell to get the new size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsMoved(java.lang.Object[], double, double, boolean, boolean)">cellsMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +           double&nbsp;dx,
    +           double&nbsp;dy,
    +           boolean&nbsp;disconnect,
    +           boolean&nbsp;constrain)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the specified cells by the given vector, disconnecting the cells
    + using disconnectGraph if disconnect is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsOrdered(java.lang.Object[], boolean)">cellsOrdered</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +             boolean&nbsp;back)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the given cells to the front or back.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsRemoved(java.lang.Object[])">cellsRemoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given cells from the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsResized(java.lang.Object[], com.mxgraph.util.mxRectangle[])">cellsResized</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +             <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>[]&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the bounds of the given cells and fires a <mxEvent.CELLS_RESIZED>
    + event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cellsToggled(java.lang.Object[], boolean)">cellsToggled</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +             boolean&nbsp;show)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the visible state of the specified cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#clearSelection()">clearSelection</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cloneCells(java.lang.Object[])">cloneCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clones all cells in the given array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#cloneCells(java.lang.Object[], boolean)">cloneCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +           boolean&nbsp;allowInvalidEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the clones for the given cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#connectCell(java.lang.Object, java.lang.Object, boolean)">connectCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connects the specified end of the given edge to the given terminal
    + using cellConnected and fires mxEvent.CONNECT_CELL while the transaction
    + is in progress.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#connectCell(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)">connectCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +            boolean&nbsp;source,
    +            <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connects the specified end of the given edge to the given terminal
    + using cellConnected and fires mxEvent.CONNECT_CELL while the transaction
    + is in progress.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#constrainChild(java.lang.Object)">constrainChild</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keeps the given cell inside the bounds returned by
    + getCellContainmentArea for its parent, according to the rules defined by
    + getOverlap and isConstrainChild.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#convertValueToString(java.lang.Object)">convertValueToString</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the textual representation for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#createEdge(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.String)">createEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook method that creates the new edge for insertEdge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#createGraphView()">createGraphView</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new view to be used in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#createGroupCell(java.lang.Object[])">createGroupCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook for creating the group cell to hold the given array of <mxCells> if
    + no group cell was given to the <group> function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#createSelectionModel()">createSelectionModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new selection model to be used in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#createStylesheet()">createStylesheet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stylesheet to be used in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#createVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String)">createVertex</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +             double&nbsp;x,
    +             double&nbsp;y,
    +             double&nbsp;width,
    +             double&nbsp;height,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook method that creates the new vertex for insertVertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#createVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String, boolean)">createVertex</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +             double&nbsp;x,
    +             double&nbsp;y,
    +             double&nbsp;width,
    +             double&nbsp;height,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +             boolean&nbsp;relative)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook method that creates the new vertex for insertVertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#disconnectGraph(java.lang.Object[])">disconnectGraph</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disconnects the given edges from the terminals which are not in the
    + given array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#drawCell(com.mxgraph.canvas.mxICanvas, java.lang.Object)">drawCell</A></B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the given cell and its descendants onto the specified canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#drawGraph(com.mxgraph.canvas.mxICanvas)">drawGraph</A></B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the graph onto the given canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#drawState(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, boolean)">drawState</A></B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +          boolean&nbsp;drawLabel)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws the cell state with the given label onto the canvas.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#enterGroup()">enterGroup</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#enterGroup(java.lang.Object)">enterGroup</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses the given cell as the root of the displayed cell hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#exitGroup()">exitGroup</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the current root to the next valid root in the displayed cell
    + hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#extendParent(java.lang.Object)">extendParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resizes the parents recursively so that they contain the complete area
    + of the resized child cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#findTreeRoots(java.lang.Object)">findTreeRoots</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all visible children in the given parent which do not have
    + incoming edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#findTreeRoots(java.lang.Object, boolean)">findTreeRoots</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +              boolean&nbsp;isolate)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all visible children in the given parent which do not have
    + incoming edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#findTreeRoots(java.lang.Object, boolean, boolean)">findTreeRoots</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +              boolean&nbsp;isolate,
    +              boolean&nbsp;invert)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all visible children in the given parent which do not have
    + incoming edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#flipEdge(java.lang.Object)">flipEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when the main control point of the edge is double-clicked.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#foldCells(boolean)">foldCells</A></B>(boolean&nbsp;collapse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the collapsed state of the selection cells without recursion.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#foldCells(boolean, boolean)">foldCells</A></B>(boolean&nbsp;collapse,
    +          boolean&nbsp;recurse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the collapsed state of the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#foldCells(boolean, boolean, java.lang.Object[])">foldCells</A></B>(boolean&nbsp;collapse,
    +          boolean&nbsp;recurse,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invokes foldCells with checkFoldable set to false.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#foldCells(boolean, boolean, java.lang.Object[], boolean)">foldCells</A></B>(boolean&nbsp;collapse,
    +          boolean&nbsp;recurse,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          boolean&nbsp;checkFoldable)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the collapsed state of the specified cells and all descendants
    + if recurse is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getAllConnectionConstraints(com.mxgraph.view.mxCellState, boolean)">getAllConnectionConstraints</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of all constraints for the given terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getAllEdges(java.lang.Object[])">getAllEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all edges connected to the given cells or their descendants.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getAlternateEdgeStyle()">getAlternateEdgeStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns alternateEdgeStyle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getBorder()">getBorder</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of <border>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getBoundingBox(java.lang.Object)">getBoundingBox</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getBoundingBox(java.lang.Object, boolean)">getBoundingBox</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               boolean&nbsp;includeEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getBoundingBox(java.lang.Object, boolean, boolean)">getBoundingBox</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               boolean&nbsp;includeEdges,
    +               boolean&nbsp;includeDescendants)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getBoundingBoxFromGeometry(java.lang.Object[])">getBoundingBoxFromGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for the geometries of the vertices in the
    + given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getBoundsForCells(java.lang.Object[], boolean, boolean, boolean)">getBoundsForCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  boolean&nbsp;includeEdges,
    +                  boolean&nbsp;includeDescendants,
    +                  boolean&nbsp;boundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds for the given cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getBoundsForGroup(java.lang.Object, java.lang.Object[], double)">getBoundsForGroup</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;group,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;children,
    +                  double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds to be used for the given group and children.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object)">getCellBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object, boolean)">getCellBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              boolean&nbsp;includeEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object, boolean, boolean)">getCellBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              boolean&nbsp;includeEdges,
    +              boolean&nbsp;includeDescendants)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object, boolean, boolean, boolean)">getCellBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              boolean&nbsp;includeEdges,
    +              boolean&nbsp;includeDescendants,
    +              boolean&nbsp;boundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellContainmentArea(java.lang.Object)">getCellContainmentArea</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the mxRectangle inside which a cell is to be kept.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellGeometry(java.lang.Object)">getCellGeometry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the geometry for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellsBeyond(double, double, java.lang.Object, boolean, boolean)">getCellsBeyond</A></B>(double&nbsp;x0,
    +               double&nbsp;y0,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +               boolean&nbsp;rightHalfpane,
    +               boolean&nbsp;bottomHalfpane)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the children of the given parent that are contained in the
    + halfpane from the given point (x0, y0) rightwards and downwards
    + depending on rightHalfpane and bottomHalfpane.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellsForGroup(java.lang.Object[])">getCellsForGroup</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells with the same parent as the first cell
    + in the given array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellStyle(java.lang.Object)">getCellStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of key, value pairs representing the cell style for the
    + given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCellValidationError(java.lang.Object)">getCellValidationError</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks all multiplicities that cannot be enforced while the graph is
    + being modified, namely, all multiplicities that require a minimum of
    + 1 edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getChangesRepaintThreshold()">getChangesRepaintThreshold</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getChildCells(java.lang.Object)">getChildCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the visible children of the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getChildCells(java.lang.Object, boolean, boolean)">getChildCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +              boolean&nbsp;vertices,
    +              boolean&nbsp;edges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the visible child vertices or edges in the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getChildEdges(java.lang.Object)">getChildEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the visible child edges of the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getChildOffsetForCell(java.lang.Object)">getChildOffsetForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the offset to be used for the cells inside the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getChildVertices(java.lang.Object)">getChildVertices</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the visible child vertices of the given parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCloneableCells(java.lang.Object[])">getCloneableCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells which are movable in the given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getConnectionConstraint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getConnectionConstraint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                        boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an connection constraint that describes the given connection
    + point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getConnectionPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxConnectionConstraint)">getConnectionPoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +                   <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the connection constraint that describes the given connection point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getConnections(java.lang.Object)">getConnections</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all visible edges connected to the given cell without loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getConnections(java.lang.Object, java.lang.Object)">getConnections</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all visible edges connected to the given cell without loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getConnections(java.lang.Object, java.lang.Object, boolean)">getConnections</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +               boolean&nbsp;recurse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all visible edges connected to the given cell without loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getCurrentRoot()">getCurrentRoot</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current root of the displayed cell hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getDefaultLoopStyle()">getDefaultLoopStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the default edge style used for loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getDefaultOverlap()">getDefaultOverlap</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets defaultOverlap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getDefaultParent()">getDefaultParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the first child of the root in the model, that is, the first or
    + default layer of the diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getDeletableCells(java.lang.Object[])">getDeletableCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells which are movable in the given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getDropTarget(java.lang.Object[], java.awt.Point, java.lang.Object)">getDropTarget</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;pt,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the given cell if it is a drop target for the given cells or the
    + nearest ancestor that may be used as a drop target for the given cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getEdges(java.lang.Object)">getEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all visible edges connected to the given cell including loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getEdges(java.lang.Object, java.lang.Object)">getEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all visible edges connected to the given cell including loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getEdges(java.lang.Object, java.lang.Object, boolean, boolean, boolean)">getEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +         boolean&nbsp;incoming,
    +         boolean&nbsp;outgoing,
    +         boolean&nbsp;includeLoops)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the incoming and/or outgoing edges for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getEdges(java.lang.Object, java.lang.Object, boolean, boolean, boolean, boolean)">getEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +         boolean&nbsp;incoming,
    +         boolean&nbsp;outgoing,
    +         boolean&nbsp;includeLoops,
    +         boolean&nbsp;recurse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the incoming and/or outgoing edges for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getEdgesBetween(java.lang.Object, java.lang.Object)">getEdgesBetween</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edges between the given source and target.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getEdgesBetween(java.lang.Object, java.lang.Object, boolean)">getEdgesBetween</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                boolean&nbsp;directed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edges between the given source and target.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getEdgeValidationError(java.lang.Object, java.lang.Object, java.lang.Object)">getEdgeValidationError</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the validation error message to be displayed when inserting or
    + changing an edges' connectivity.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getFoldableCells(java.lang.Object[], boolean)">getFoldableCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                 boolean&nbsp;collapse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells which are movable in the given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getGraphBounds()">getGraphBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounds of the visible graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getGridSize()">getGridSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the grid size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getImage(com.mxgraph.view.mxCellState)">getImage</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the image URL for the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getImageBundles()">getImageBundles</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the image bundles</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getImageBundles(java.util.List)">getImageBundles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&gt;&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the image bundles</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getImageFromBundles(java.lang.String)">getImageFromBundles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Searches all bundles for the specified key and returns the value for the
    + first match or null if the key is not found.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getIncomingEdges(java.lang.Object)">getIncomingEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all incoming visible edges connected to the given cell without
    + loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getIncomingEdges(java.lang.Object, java.lang.Object)">getIncomingEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the visible incoming edges for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getLabel(java.lang.Object)">getLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a string or DOM node that represents the label for the given
    + cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getLinkForCell(java.lang.Object)">getLinkForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the hyperlink to be used for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getMaximumGraphBounds()">getMaximumGraphBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getMinimumGraphSize()">getMinimumGraphSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the minimum size of the diagram.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getModel()">getModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the graph model that contains the graph data.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getMovableCells(java.lang.Object[])">getMovableCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells which are movable in the given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getMultiplicities()">getMultiplicities</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getOpposites(java.lang.Object[], java.lang.Object)">getOpposites</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all distinct visible opposite cells of the terminal on the given
    + edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getOpposites(java.lang.Object[], java.lang.Object, boolean, boolean)">getOpposites</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +             boolean&nbsp;sources,
    +             boolean&nbsp;targets)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all distincts visible opposite cells for the specified terminal
    + on the given edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getOrigin()">getOrigin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns origin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getOutgoingEdges(java.lang.Object)">getOutgoingEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all outgoing visible edges connected to the given cell without
    + loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getOutgoingEdges(java.lang.Object, java.lang.Object)">getOutgoingEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the visible outgoing edges for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getOverlap(java.lang.Object)">getOverlap</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a decimal number representing the amount of the width and height
    + of the given cell that is allowed to overlap its parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getPaintBounds(java.lang.Object[])">getPaintBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box of the given cells and their descendants.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getPreferredSizeForCell(java.lang.Object)">getPreferredSizeForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the preferred width and height of the given <mxCell> as an
    + <mxRectangle>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getRemovedCellsForChanges(java.util.List)">getRemovedCellsForChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells that have been removed from the model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getSelectionCell()">getSelectionCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getSelectionCells()">getSelectionCells</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getSelectionCellsForChanges(java.util.List)">getSelectionCellsForChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cells to be selected for the given list of changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getSelectionCount()">getSelectionCount</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getSelectionModel()">getSelectionModel</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getStartSize(java.lang.Object)">getStartSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;swimlane)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the start size of the given swimlane, that is, the width or
    + height of the part that contains the title, depending on the
    + horizontal style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getStylesheet()">getStylesheet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the stylesheet that provides the style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getTargetForCell(java.lang.Object)">getTargetForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the hyperlink to be used for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getTerminalForPort(java.lang.Object, boolean)">getTerminalForPort</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                   boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the terminal to be used for a given port.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getToolTipForCell(java.lang.Object)">getToolTipForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the tooltip to be used for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getTranslateForRoot(java.lang.Object)">getTranslateForRoot</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the translation to be used if the given cell is the root cell as
    + an <mxPoint>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#getView()">getView</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the view that contains the cell states.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#graphModelChanged(com.mxgraph.model.mxIGraphModel, java.util.List)">graphModelChanged</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;sender,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when the graph model changes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#groupCells()">groupCells</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Groups the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#groupCells(java.lang.Object)">groupCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;group)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Groups the selection cells and adds them to the given group.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#groupCells(java.lang.Object, double)">groupCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;group,
    +           double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Groups the selection cells and adds them to the given group.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#groupCells(java.lang.Object, double, java.lang.Object[])">groupCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;group,
    +           double&nbsp;border,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the cells into the given group.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#home()">home</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses the root of the model as the root of the displayed cell hierarchy
    + and selects the previous root.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#insertEdge(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)">insertEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and adds a new edge with an empty style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#insertEdge(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.String)">insertEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a new edge into the given parent using value as the user object and
    + the given source and target as the terminals of the new edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#insertVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double)">insertVertex</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +             double&nbsp;x,
    +             double&nbsp;y,
    +             double&nbsp;width,
    +             double&nbsp;height)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and adds a new vertex with an empty style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#insertVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String)">insertVertex</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +             double&nbsp;x,
    +             double&nbsp;y,
    +             double&nbsp;width,
    +             double&nbsp;height,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a new vertex into the given parent using value as the user object
    + and the given coordinates as the geometry of the new vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#insertVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String, boolean)">insertVertex</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +             double&nbsp;x,
    +             double&nbsp;y,
    +             double&nbsp;width,
    +             double&nbsp;height,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +             boolean&nbsp;relative)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a new vertex into the given parent using value as the user object
    + and the given coordinates as the geometry of the new vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isAllowDanglingEdges()">isAllowDanglingEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns allowDanglingEdges</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isAllowLoops()">isAllowLoops</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns allowLoops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isAllowNegativeCoordinates()">isAllowNegativeCoordinates</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns isAllowNegativeCoordinates.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isAllowOverlapParent(java.lang.Object)">isAllowOverlapParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is allowed to be placed outside of the
    + parents area.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isAutoOrigin()">isAutoOrigin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns autoOrigin.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isAutoSizeCell(java.lang.Object)">isAutoSizeCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the size of the given cell should automatically be
    + updated after a change of the label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isAutoSizeCells()">isAutoSizeCells</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the size of the given cell should automatically be
    + updated after a change of the label.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellBendable(java.lang.Object)">isCellBendable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is bendable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellCloneable(java.lang.Object)">isCellCloneable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the constant true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellCollapsed(java.lang.Object)">isCellCollapsed</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is collapsed in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellConnectable(java.lang.Object)">isCellConnectable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is connectable in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellDeletable(java.lang.Object)">isCellDeletable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is movable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellDisconnectable(java.lang.Object, java.lang.Object, boolean)">isCellDisconnectable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                     boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is disconnectable from the source or
    + target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellEditable(java.lang.Object)">isCellEditable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is movable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellFoldable(java.lang.Object, boolean)">isCellFoldable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               boolean&nbsp;collapse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is expandable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellLocked(java.lang.Object)">isCellLocked</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell may not be moved, sized, bended,
    + disconnected, edited or selected.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellMovable(java.lang.Object)">isCellMovable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is movable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellResizable(java.lang.Object)">isCellResizable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is resizable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellsBendable()">isCellsBendable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns cellsBendable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellsCloneable()">isCellsCloneable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns cellsCloneable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellsDeletable()">isCellsDeletable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns cellsDeletable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellsDisconnectable()">isCellsDisconnectable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns cellsDisconnectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellsEditable()">isCellsEditable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if editing is allowed in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellSelectable(java.lang.Object)">isCellSelectable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is selectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellSelected(java.lang.Object)">isCellSelected</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellsLocked()">isCellsLocked</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns cellsLocked, the default return value for isCellLocked.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellsMovable()">isCellsMovable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns cellsMovable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellsResizable()">isCellsResizable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is resizable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellsSelectable()">isCellsSelectable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns cellsSelectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCellVisible(java.lang.Object)">isCellVisible</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is visible in this graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCloneInvalidEdges()">isCloneInvalidEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns cloneInvalidEdges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isCollapseToPreferredSize()">isCollapseToPreferredSize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns collapseToPreferredSize.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isConnectableEdges()">isConnectableEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns connectableEdges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isConstrainChild(java.lang.Object)">isConstrainChild</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell should be kept inside the bounds of its
    + parent according to the rules defined by getOverlap and
    + isAllowOverlapParent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isConstrainChildren()">isConstrainChildren</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns constrainChildren.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isDisconnectOnMove()">isDisconnectOnMove</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns disconnectOnMove</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isDropEnabled()">isDropEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the graph allows drop into other cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isEdgeLabelsMovable()">isEdgeLabelsMovable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns edgeLabelsMovable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isEdgeValid(java.lang.Object, java.lang.Object, java.lang.Object)">isEdgeValid</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the return value of getEdgeValidationError for the given
    + arguments is null.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the graph is <enabled>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isExtendParent(java.lang.Object)">isExtendParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the parent of the given cell should be extended if the
    + child has been resized so that it overlaps the parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isExtendParents()">isExtendParents</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns extendParents.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isExtendParentsOnAdd()">isExtendParentsOnAdd</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns extendParentsOnAdd.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isGridEnabled()">isGridEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the grid is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isHtmlLabel(java.lang.Object)">isHtmlLabel</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the label must be rendered as HTML markup.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isHtmlLabels()">isHtmlLabels</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isKeepEdgesInBackground()">isKeepEdgesInBackground</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isKeepEdgesInForeground()">isKeepEdgesInForeground</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isLabelClipped(java.lang.Object)">isLabelClipped</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the overflow portion of labels should be hidden.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isLabelMovable(java.lang.Object)">isLabelMovable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given edges's label is moveable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isLabelsClipped()">isLabelsClipped</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns labelsClipped.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isLabelsVisible()">isLabelsVisible</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isLoop(com.mxgraph.view.mxCellState)">isLoop</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell state is a loop.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isMultigraph()">isMultigraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns multigraph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isOrthogonal(com.mxgraph.view.mxCellState)">isOrthogonal</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if perimeter points should be computed such that the
    + resulting edge has only horizontal or vertical segments.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isPort(java.lang.Object)">isPort</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is a "port", that is, when connecting to
    + it, the cell returned by getTerminalForPort should be used as the
    + terminal and the port should be referenced by the ID in either the
    + mxConstants.STYLE_SOURCE_PORT or the or the
    + mxConstants.STYLE_TARGET_PORT.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isResetEdgesOnConnect()">isResetEdgesOnConnect</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns resetEdgesOnConnect.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isResetEdgesOnMove()">isResetEdgesOnMove</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns resetEdgesOnMove.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isResetEdgesOnResize()">isResetEdgesOnResize</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns resetEdgesOnResize.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isResetViewOnRootChange()">isResetViewOnRootChange</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns resetViewOnRootChange.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isSelectionEmpty()">isSelectionEmpty</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isSplitEnabled()">isSplitEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Affects the return values of isValidDropTarget to allow for edges as
    + drop targets.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isSplitTarget(java.lang.Object, java.lang.Object[])">isSplitTarget</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if split is enabled and the given edge may be splitted into
    + two edges with the given cell as a new terminal between the two.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isSwimlane(java.lang.Object)">isSwimlane</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is a swimlane.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isSwimlaneNesting()">isSwimlaneNesting</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns swimlaneNesting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isTerminalPointMovable(java.lang.Object, boolean)">isTerminalPointMovable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                       boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: isTerminalPointMovable
    +
    + Returns true if the given terminal point is movable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isValidAncestor(java.lang.Object, java.lang.Object, boolean)">isValidAncestor</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                boolean&nbsp;recurse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether or not the specified parent is a valid
    + ancestor of the specified cell, either direct or indirectly
    + based on whether ancestor recursion is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isValidConnection(java.lang.Object, java.lang.Object)">isValidConnection</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given target cell is a valid target for source.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isValidDropTarget(java.lang.Object, java.lang.Object[])">isValidDropTarget</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is a valid drop target for the specified
    + cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isValidRoot(java.lang.Object)">isValidRoot</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is a valid root for the cell display
    + hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isValidSource(java.lang.Object)">isValidSource</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is a valid source for new connections.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isValidTarget(java.lang.Object)">isValidTarget</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns isValidSource for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#isVertexLabelsMovable()">isVertexLabelsMovable</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns vertexLabelsMovable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#main(java.lang.String[])">main</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;args)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prints the version number on the console.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#moveCells(java.lang.Object[], double, double)">moveCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cells by the given amount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#moveCells(java.lang.Object[], double, double, boolean)">moveCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;dx,
    +          double&nbsp;dy,
    +          boolean&nbsp;clone)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves or clones the cells and moves the cells or clones by the given
    + amount.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#moveCells(java.lang.Object[], double, double, boolean, java.lang.Object, java.awt.Point)">moveCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;dx,
    +          double&nbsp;dy,
    +          boolean&nbsp;clone,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;location)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves or clones the specified cells and moves the cells or clones by the
    + given amount, adding them to the optional target cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#orderCells(boolean)">orderCells</A></B>(boolean&nbsp;back)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the selection cells to the front or back.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#orderCells(boolean, java.lang.Object[])">orderCells</A></B>(boolean&nbsp;back,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the given cells to the front or back.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#postProcessCellStyle(java.util.Map)">postProcessCellStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tries to resolve the value for the image style in the image bundles and
    + turns short data URIs as defined in mxImageBundle to data URIs as
    + defined in RFC 2397 of the IETF.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#processChange(com.mxgraph.util.mxUndoableEdit.mxUndoableChange, boolean, boolean)">processChange</A></B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change,
    +              boolean&nbsp;invalidate,
    +              boolean&nbsp;ignoreDirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given change and invalidates the respective cached data
    + in <view>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#processChanges(java.util.List, boolean, boolean)">processChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes,
    +               boolean&nbsp;invalidate,
    +               boolean&nbsp;ignoreDirty)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the changes and returns the minimal rectangle to be
    + repainted in the buffer.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#refresh()">refresh</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears all cell states or the states for the hierarchy starting at the
    + given cell and validates the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removeCells()">removeCells</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the selection cells from the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removeCells(java.lang.Object[])">removeCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given cells from the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removeCells(java.lang.Object[], boolean)">removeCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +            boolean&nbsp;includeEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given cells from the graph including all connected edges if
    + includeEdges is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removeCellsFromParent()">removeCellsFromParent</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the selection cells from their parents and adds them to the
    + default parent returned by getDefaultParent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removeCellsFromParent(java.lang.Object[])">removeCellsFromParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified cells from their parents and adds them to the
    + default parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removeImageBundle(com.mxgraph.util.mxImageBundle)">removeImageBundle</A></B>(<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&nbsp;bundle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified bundle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removePropertyChangeListener(java.beans.PropertyChangeListener)">removePropertyChangeListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)">removePropertyChangeListener</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A>&nbsp;listener)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removeSelectionCell(java.lang.Object)">removeSelectionCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removeSelectionCells(java.lang.Object[])">removeSelectionCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#removeStateForCell(java.lang.Object)">removeStateForCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all cached information for the given cell and its descendants.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#repaint()">repaint</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a repaint event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#repaint(com.mxgraph.util.mxRectangle)">repaint</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;region)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a repaint event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#resetEdge(java.lang.Object)">resetEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets the control points of the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#resetEdges(java.lang.Object[])">resetEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets the control points of the edges that are connected to the given
    + cells if not both ends of the edge are in the given cells array.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#resizeCell(java.lang.Object, com.mxgraph.util.mxRectangle)">resizeCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +           <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the bounds of the given cell using resizeCells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#resizeCells(java.lang.Object[], com.mxgraph.util.mxRectangle[])">resizeCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +            <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>[]&nbsp;bounds)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS
    + event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectAll()">selectAll</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectAll(java.lang.Object)">selectAll</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects all children of the given parent cell or the children of the
    + default parent if no parent is specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectCell(boolean, boolean, boolean)">selectCell</A></B>(boolean&nbsp;isNext,
    +           boolean&nbsp;isParent,
    +           boolean&nbsp;isChild)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects the next, parent, first child or previous cell, if all arguments
    + are false.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectCells(boolean, boolean)">selectCells</A></B>(boolean&nbsp;vertices,
    +            boolean&nbsp;edges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects all vertices and/or edges depending on the given boolean
    + arguments recursively, starting at the default parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectCells(boolean, boolean, java.lang.Object)">selectCells</A></B>(boolean&nbsp;vertices,
    +            boolean&nbsp;edges,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects all vertices and/or edges depending on the given boolean
    + arguments recursively, starting at the given parent or the default
    + parent if no parent is specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectChildCell()">selectChildCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects the first child cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectEdges()">selectEdges</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects all vertices inside the default parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectEdges(java.lang.Object)">selectEdges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects all vertices inside the given parent or the default parent
    + if no parent is given.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectNextCell()">selectNextCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects the next cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectParentCell()">selectParentCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects the parent cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectPreviousCell()">selectPreviousCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects the previous cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectVertices()">selectVertices</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects all vertices inside the default parent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#selectVertices(java.lang.Object)">selectVertices</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selects all vertices inside the given parent or the default parent
    + if no parent is given.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setAllowDanglingEdges(boolean)">setAllowDanglingEdges</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets allowDanglingEdges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setAllowLoops(boolean)">setAllowLoops</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets allowLoops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setAllowNegativeCoordinates(boolean)">setAllowNegativeCoordinates</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setAlternateEdgeStyle(java.lang.String)">setAlternateEdgeStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets alternateEdgeStyle.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setAutoOrigin(boolean)">setAutoOrigin</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setAutoSizeCells(boolean)">setAutoSizeCells</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if cell sizes should be automatically updated after a label
    + change.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setBorder(int)">setBorder</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of <border>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellsBendable(boolean)">setCellsBendable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets cellsBendable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellsCloneable(boolean)">setCellsCloneable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the graph should allow cloning of cells by holding down the
    + control key while cells are being moved.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellsDeletable(boolean)">setCellsDeletable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets cellsDeletable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellsDisconnectable(boolean)">setCellsDisconnectable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets cellsDisconnectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellsEditable(boolean)">setCellsEditable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets if the graph is editable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellsLocked(boolean)">setCellsLocked</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets cellsLocked, the default return value for isCellLocked and fires a
    + property change event for cellsLocked.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellsMovable(boolean)">setCellsMovable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets cellsMovable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellsResizable(boolean)">setCellsResizable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets if the graph is resizable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellsSelectable(boolean)">setCellsSelectable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets cellsSelectable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellStyle(java.lang.String)">setCellStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the style of the selection cells to the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellStyle(java.lang.String, java.lang.Object[])">setCellStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the style of the specified cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellStyleFlags(java.lang.String, int, boolean)">setCellStyleFlags</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                  int&nbsp;flag,
    +                  boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets or toggles the given bit for the given key in the styles of the
    + selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellStyleFlags(java.lang.String, int, java.lang.Boolean, java.lang.Object[])">setCellStyleFlags</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                  int&nbsp;flag,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value,
    +                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets or toggles the given bit for the given key in the styles of the
    + specified cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellStyles(java.lang.String, java.lang.String)">setCellStyles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the key to value in the styles of the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCellStyles(java.lang.String, java.lang.String, java.lang.Object[])">setCellStyles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the key to value in the styles of the given cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setChangesRepaintThreshold(int)">setChangesRepaintThreshold</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCloneInvalidEdges(boolean)">setCloneInvalidEdges</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets cloneInvalidEdge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setCollapseToPreferredSize(boolean)">setCollapseToPreferredSize</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setConnectableEdges(boolean)">setConnectableEdges</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets connetableEdges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setConnectionConstraint(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)">setConnectionConstraint</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                        boolean&nbsp;source,
    +                        <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the connection constraint that describes the given connection point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setConstrainChildren(boolean)">setConstrainChildren</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setDefaultLoopStyle(com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction)">setDefaultLoopStyle</A></B>(<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the default style used for loops.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setDefaultOverlap(double)">setDefaultOverlap</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets defaultOverlap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setDefaultParent(java.lang.Object)">setDefaultParent</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the default parent to be returned by getDefaultParent.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setDisconnectOnMove(boolean)">setDisconnectOnMove</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets disconnectOnMove.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setDropEnabled(boolean)">setDropEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets dropEnabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setEdgeLabelsMovable(boolean)">setEdgeLabelsMovable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns edgeLabelsMovable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if the graph should allow any interactions.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setExtendParents(boolean)">setExtendParents</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets extendParents.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setExtendParentsOnAdd(boolean)">setExtendParentsOnAdd</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets extendParentsOnAdd.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setGridEnabled(boolean)">setGridEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets if the grid is enabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setGridSize(int)">setGridSize</A></B>(int&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the grid size and fires a property change event for gridSize.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setHtmlLabels(boolean)">setHtmlLabels</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setKeepEdgesInBackground(boolean)">setKeepEdgesInBackground</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setKeepEdgesInForeground(boolean)">setKeepEdgesInForeground</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setLabelsClipped(boolean)">setLabelsClipped</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets labelsClipped.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setLabelsVisible(boolean)">setLabelsVisible</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setMaximumGraphBounds(com.mxgraph.util.mxRectangle)">setMaximumGraphBounds</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setMinimumGraphSize(com.mxgraph.util.mxRectangle)">setMinimumGraphSize</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setModel(com.mxgraph.model.mxIGraphModel)">setModel</A></B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the graph model that contains the data, and fires an
    + mxEvent.CHANGE followed by an mxEvent.REPAINT event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setMultigraph(boolean)">setMultigraph</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets multigraph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setMultiplicities(com.mxgraph.view.mxMultiplicity[])">setMultiplicities</A></B>(<A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>[]&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setOrigin(com.mxgraph.util.mxPoint)">setOrigin</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setResetEdgesOnConnect(boolean)">setResetEdgesOnConnect</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets resetEdgesOnConnect.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setResetEdgesOnMove(boolean)">setResetEdgesOnMove</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets resetEdgesOnMove.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setResetEdgesOnResize(boolean)">setResetEdgesOnResize</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets resetEdgesOnResize.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setResetViewOnRootChange(boolean)">setResetViewOnRootChange</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets resetEdgesOnResize.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setSelectionCell(java.lang.Object)">setSelectionCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setSelectionCells(java.util.Collection)">setSelectionCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setSelectionCells(java.lang.Object[])">setSelectionCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setSplitEnabled(boolean)">setSplitEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets splitEnabled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setStylesheet(com.mxgraph.view.mxStylesheet)">setStylesheet</A></B>(<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the stylesheet that provides the style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setSwimlaneNesting(boolean)">setSwimlaneNesting</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets swimlaneNesting.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setVertexLabelsMovable(boolean)">setVertexLabelsMovable</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets vertexLabelsMovable.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#setView(com.mxgraph.view.mxGraphView)">setView</A></B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the view that contains the cell states.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#snap(double)">snap</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Snaps the given numeric value to the grid if <gridEnabled> is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#splitEdge(java.lang.Object, java.lang.Object[])">splitEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#splitEdge(java.lang.Object, java.lang.Object[], double, double)">splitEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#splitEdge(java.lang.Object, java.lang.Object[], java.lang.Object, double, double)">splitEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;newEdge,
    +          double&nbsp;dx,
    +          double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Splits the given edge by adding a newEdge between the previous source
    + and the given cell and reconnecting the source of the given edge to the
    + given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#swapBounds(java.lang.Object, boolean)">swapBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +           boolean&nbsp;willCollapse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Swaps the alternate and the actual bounds in the geometry of the given
    + cell invoking updateAlternateBounds before carrying out the swap.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#toggleCells(boolean)">toggleCells</A></B>(boolean&nbsp;show)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the visible state of the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#toggleCells(boolean, java.lang.Object[])">toggleCells</A></B>(boolean&nbsp;show,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the visible state of the specified cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#toggleCells(boolean, java.lang.Object[], boolean)">toggleCells</A></B>(boolean&nbsp;show,
    +            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +            boolean&nbsp;includeEdges)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the visible state of the specified cells and all connected edges
    + if includeEdges is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#toggleCellStyle(java.lang.String, boolean, java.lang.Object)">toggleCellStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                boolean&nbsp;defaultValue,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toggles the boolean value for the given key in the style of the
    + given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#toggleCellStyleFlags(java.lang.String, int)">toggleCellStyleFlags</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                     int&nbsp;flag)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toggles the given bit for the given key in the styles of the selection
    + cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#toggleCellStyleFlags(java.lang.String, int, java.lang.Object[])">toggleCellStyleFlags</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                     int&nbsp;flag,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toggles the given bit for the given key in the styles of the specified
    + cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#toggleCellStyles(java.lang.String, boolean)">toggleCellStyles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                 boolean&nbsp;defaultValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toggles the boolean value for the given key in the style of the
    + selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#toggleCellStyles(java.lang.String, boolean, java.lang.Object[])">toggleCellStyles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                 boolean&nbsp;defaultValue,
    +                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toggles the boolean value for the given key in the style of the given
    + cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#translateCell(java.lang.Object, double, double)">translateCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +              double&nbsp;dx,
    +              double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Translates the geometry of the given cell and stores the new,
    + translated geometry in the model as an atomic change.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor)">traverse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +         boolean&nbsp;directed,
    +         <A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>&nbsp;visitor)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traverses the tree starting at the given vertex.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)">traverse</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +         boolean&nbsp;directed,
    +         <A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>&nbsp;visitor,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;visited)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traverses the (directed) graph invoking the given function for each
    + visited vertex and edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#ungroupCells()">ungroupCells</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ungroups the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#ungroupCells(java.lang.Object[])">ungroupCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ungroups the given cells by moving the children the children to their
    + parents parent and removing the empty groups.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#updateAlternateBounds(java.lang.Object, com.mxgraph.model.mxGeometry, boolean)">updateAlternateBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                      <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geo,
    +                      boolean&nbsp;willCollapse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates or sets the alternate bounds in the given geometry for the given
    + cell depending on whether the cell is going to be collapsed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#updateCellSize(java.lang.Object)">updateCellSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the size of the given cell in the model using
    + getPreferredSizeForCell to get the new size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#updateCellSize(java.lang.Object, boolean)">updateCellSize</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +               boolean&nbsp;ignoreChildren)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the size of the given cell in the model using
    + getPreferredSizeForCell to get the new size.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#updateGroupBounds()">updateGroupBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the bounds of the given array of groups so that it includes
    + all child vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#updateGroupBounds(java.lang.Object[])">updateGroupBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the bounds of the given array of groups so that it includes
    + all child vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#updateGroupBounds(java.lang.Object[], int)">updateGroupBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  int&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the bounds of the given array of groups so that it includes
    + all child vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#updateGroupBounds(java.lang.Object[], int, boolean)">updateGroupBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                  int&nbsp;border,
    +                  boolean&nbsp;moveParent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the bounds of the given array of groups so that it includes
    + all child vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#updateOrigin()">updateOrigin</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extends the canvas by doing another validation with a shifted
    + global translation if the bounds of the graph are below (0,0).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#validateCell(java.lang.Object, java.util.Hashtable)">validateCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;context)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook method for subclassers to return an error message for the given
    + cell and validation context.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.html#validateEdge(java.lang.Object, java.lang.Object, java.lang.Object)">validateEdge</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hook method for subclassers to return an error message for the given
    + edge and terminals.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="VERSION"><!-- --></A><H3>
    +VERSION</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>VERSION</B></PRE>
    +<DL>
    +<DD>Holds the version number of this release. Current version
    + is 1.10.0.5.
    +<P>
    +<DL>
    +<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.mxgraph.view.mxGraph.VERSION">Constant Field Values</A></DL>
    +</DL>
    +<HR>
    +
    +<A NAME="changeSupport"><!-- --></A><H3>
    +changeSupport</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeSupport.html?is-external=true" title="class or interface in java.beans">PropertyChangeSupport</A> <B>changeSupport</B></PRE>
    +<DL>
    +<DD>Property change event handling.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="model"><!-- --></A><H3>
    +model</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A> <B>model</B></PRE>
    +<DL>
    +<DD>Holds the model that contains the cells to be displayed.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="view"><!-- --></A><H3>
    +view</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> <B>view</B></PRE>
    +<DL>
    +<DD>Holds the view that caches the cell states.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="stylesheet"><!-- --></A><H3>
    +stylesheet</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A> <B>stylesheet</B></PRE>
    +<DL>
    +<DD>Holds the stylesheet that defines the appearance of the cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="selectionModel"><!-- --></A><H3>
    +selectionModel</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A> <B>selectionModel</B></PRE>
    +<DL>
    +<DD>Holds the <mxGraphSelection> that models the current selection.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="gridSize"><!-- --></A><H3>
    +gridSize</H3>
    +<PRE>
    +protected int <B>gridSize</B></PRE>
    +<DL>
    +<DD>Specifies the grid size. Default is 10.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="gridEnabled"><!-- --></A><H3>
    +gridEnabled</H3>
    +<PRE>
    +protected boolean <B>gridEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if the grid is enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="defaultOverlap"><!-- --></A><H3>
    +defaultOverlap</H3>
    +<PRE>
    +protected double <B>defaultOverlap</B></PRE>
    +<DL>
    +<DD>Value returned by getOverlap if isAllowOverlapParent returns
    + true for the given cell. getOverlap is used in keepInside if
    + isKeepInsideParentOnMove returns true. The value specifies the
    + portion of the child which is allowed to overlap the parent.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="defaultParent"><!-- --></A><H3>
    +defaultParent</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>defaultParent</B></PRE>
    +<DL>
    +<DD>Specifies the default parent to be used to insert new cells.
    + This is used in getDefaultParent. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="alternateEdgeStyle"><!-- --></A><H3>
    +alternateEdgeStyle</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>alternateEdgeStyle</B></PRE>
    +<DL>
    +<DD>Specifies the alternate edge style to be used if the main control point
    + on an edge is being doubleclicked. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isEnabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsLocked"><!-- --></A><H3>
    +cellsLocked</H3>
    +<PRE>
    +protected boolean <B>cellsLocked</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isCell(s)Locked. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsEditable"><!-- --></A><H3>
    +cellsEditable</H3>
    +<PRE>
    +protected boolean <B>cellsEditable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isCell(s)Editable. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsResizable"><!-- --></A><H3>
    +cellsResizable</H3>
    +<PRE>
    +protected boolean <B>cellsResizable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isCell(s)Sizable. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsMovable"><!-- --></A><H3>
    +cellsMovable</H3>
    +<PRE>
    +protected boolean <B>cellsMovable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isCell(s)Movable. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsBendable"><!-- --></A><H3>
    +cellsBendable</H3>
    +<PRE>
    +protected boolean <B>cellsBendable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isCell(s)Bendable. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsSelectable"><!-- --></A><H3>
    +cellsSelectable</H3>
    +<PRE>
    +protected boolean <B>cellsSelectable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isCell(s)Selectable. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsDeletable"><!-- --></A><H3>
    +cellsDeletable</H3>
    +<PRE>
    +protected boolean <B>cellsDeletable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isCell(s)Deletable. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsCloneable"><!-- --></A><H3>
    +cellsCloneable</H3>
    +<PRE>
    +protected boolean <B>cellsCloneable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isCell(s)Cloneable. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsDisconnectable"><!-- --></A><H3>
    +cellsDisconnectable</H3>
    +<PRE>
    +protected boolean <B>cellsDisconnectable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isCellDisconntableFromTerminal. Default
    + is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="labelsClipped"><!-- --></A><H3>
    +labelsClipped</H3>
    +<PRE>
    +protected boolean <B>labelsClipped</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isLabel(s)Clipped. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="edgeLabelsMovable"><!-- --></A><H3>
    +edgeLabelsMovable</H3>
    +<PRE>
    +protected boolean <B>edgeLabelsMovable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for edges in isLabelMovable. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="vertexLabelsMovable"><!-- --></A><H3>
    +vertexLabelsMovable</H3>
    +<PRE>
    +protected boolean <B>vertexLabelsMovable</B></PRE>
    +<DL>
    +<DD>Specifies the return value for vertices in isLabelMovable. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="dropEnabled"><!-- --></A><H3>
    +dropEnabled</H3>
    +<PRE>
    +protected boolean <B>dropEnabled</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isDropEnabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="splitEnabled"><!-- --></A><H3>
    +splitEnabled</H3>
    +<PRE>
    +protected boolean <B>splitEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if dropping onto edges should be enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="autoSizeCells"><!-- --></A><H3>
    +autoSizeCells</H3>
    +<PRE>
    +protected boolean <B>autoSizeCells</B></PRE>
    +<DL>
    +<DD>Specifies if the graph should automatically update the cell size
    + after an edit. This is used in isAutoSizeCell. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="maximumGraphBounds"><!-- --></A><H3>
    +maximumGraphBounds</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>maximumGraphBounds</B></PRE>
    +<DL>
    +<DD><mxRectangle> that specifies the area in which all cells in the
    + diagram should be placed. Uses in getMaximumGraphBounds. Use a width
    + or height of 0 if you only want to give a upper, left corner.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="minimumGraphSize"><!-- --></A><H3>
    +minimumGraphSize</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>minimumGraphSize</B></PRE>
    +<DL>
    +<DD>mxRectangle that specifies the minimum size of the graph canvas inside
    + the scrollpane.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="border"><!-- --></A><H3>
    +border</H3>
    +<PRE>
    +protected int <B>border</B></PRE>
    +<DL>
    +<DD>Border to be added to the bottom and right side when the container is
    + being resized after the graph has been changed. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="keepEdgesInForeground"><!-- --></A><H3>
    +keepEdgesInForeground</H3>
    +<PRE>
    +protected boolean <B>keepEdgesInForeground</B></PRE>
    +<DL>
    +<DD>Specifies if edges should appear in the foreground regardless of their
    + order in the model. This has precendence over keepEdgeInBackground
    + Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="keepEdgesInBackground"><!-- --></A><H3>
    +keepEdgesInBackground</H3>
    +<PRE>
    +protected boolean <B>keepEdgesInBackground</B></PRE>
    +<DL>
    +<DD>Specifies if edges should appear in the background regardless of their
    + order in the model. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="collapseToPreferredSize"><!-- --></A><H3>
    +collapseToPreferredSize</H3>
    +<PRE>
    +protected boolean <B>collapseToPreferredSize</B></PRE>
    +<DL>
    +<DD>Specifies if the cell size should be changed to the preferred size when
    + a cell is first collapsed. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="allowNegativeCoordinates"><!-- --></A><H3>
    +allowNegativeCoordinates</H3>
    +<PRE>
    +protected boolean <B>allowNegativeCoordinates</B></PRE>
    +<DL>
    +<DD>Specifies if negative coordinates for vertices are allowed. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="constrainChildren"><!-- --></A><H3>
    +constrainChildren</H3>
    +<PRE>
    +protected boolean <B>constrainChildren</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isConstrainChildren. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="extendParents"><!-- --></A><H3>
    +extendParents</H3>
    +<PRE>
    +protected boolean <B>extendParents</B></PRE>
    +<DL>
    +<DD>Specifies if a parent should contain the child bounds after a resize of
    + the child. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="extendParentsOnAdd"><!-- --></A><H3>
    +extendParentsOnAdd</H3>
    +<PRE>
    +protected boolean <B>extendParentsOnAdd</B></PRE>
    +<DL>
    +<DD>Specifies if parents should be extended according to the <extendParents>
    + switch if cells are added. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resetViewOnRootChange"><!-- --></A><H3>
    +resetViewOnRootChange</H3>
    +<PRE>
    +protected boolean <B>resetViewOnRootChange</B></PRE>
    +<DL>
    +<DD>Specifies if the scale and translate should be reset if
    + the root changes in the model. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resetEdgesOnResize"><!-- --></A><H3>
    +resetEdgesOnResize</H3>
    +<PRE>
    +protected boolean <B>resetEdgesOnResize</B></PRE>
    +<DL>
    +<DD>Specifies if loops (aka self-references) are allowed.
    + Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resetEdgesOnMove"><!-- --></A><H3>
    +resetEdgesOnMove</H3>
    +<PRE>
    +protected boolean <B>resetEdgesOnMove</B></PRE>
    +<DL>
    +<DD>Specifies if edge control points should be reset after
    + the move of a connected cell. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resetEdgesOnConnect"><!-- --></A><H3>
    +resetEdgesOnConnect</H3>
    +<PRE>
    +protected boolean <B>resetEdgesOnConnect</B></PRE>
    +<DL>
    +<DD>Specifies if edge control points should be reset after
    + the the edge has been reconnected. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="allowLoops"><!-- --></A><H3>
    +allowLoops</H3>
    +<PRE>
    +protected boolean <B>allowLoops</B></PRE>
    +<DL>
    +<DD>Specifies if loops (aka self-references) are allowed.
    + Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="multiplicities"><!-- --></A><H3>
    +multiplicities</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>[] <B>multiplicities</B></PRE>
    +<DL>
    +<DD>Specifies the multiplicities to be used for validation of the graph.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="defaultLoopStyle"><!-- --></A><H3>
    +defaultLoopStyle</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> <B>defaultLoopStyle</B></PRE>
    +<DL>
    +<DD>Specifies the default style for loops.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="multigraph"><!-- --></A><H3>
    +multigraph</H3>
    +<PRE>
    +protected boolean <B>multigraph</B></PRE>
    +<DL>
    +<DD>Specifies if multiple edges in the same direction between
    + the same pair of vertices are allowed. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="connectableEdges"><!-- --></A><H3>
    +connectableEdges</H3>
    +<PRE>
    +protected boolean <B>connectableEdges</B></PRE>
    +<DL>
    +<DD>Specifies if edges are connectable. Default is false.
    + This overrides the connectable field in edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="allowDanglingEdges"><!-- --></A><H3>
    +allowDanglingEdges</H3>
    +<PRE>
    +protected boolean <B>allowDanglingEdges</B></PRE>
    +<DL>
    +<DD>Specifies if edges with disconnected terminals are
    + allowed in the graph. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneInvalidEdges"><!-- --></A><H3>
    +cloneInvalidEdges</H3>
    +<PRE>
    +protected boolean <B>cloneInvalidEdges</B></PRE>
    +<DL>
    +<DD>Specifies if edges that are cloned should be validated and only inserted
    + if they are valid. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="disconnectOnMove"><!-- --></A><H3>
    +disconnectOnMove</H3>
    +<PRE>
    +protected boolean <B>disconnectOnMove</B></PRE>
    +<DL>
    +<DD>Specifies if edges should be disconnected from their terminals when they
    + are moved. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="labelsVisible"><!-- --></A><H3>
    +labelsVisible</H3>
    +<PRE>
    +protected boolean <B>labelsVisible</B></PRE>
    +<DL>
    +<DD>Specifies if labels should be visible. This is used in
    + getLabel. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="htmlLabels"><!-- --></A><H3>
    +htmlLabels</H3>
    +<PRE>
    +protected boolean <B>htmlLabels</B></PRE>
    +<DL>
    +<DD>Specifies the return value for isHtmlLabel. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="swimlaneNesting"><!-- --></A><H3>
    +swimlaneNesting</H3>
    +<PRE>
    +protected boolean <B>swimlaneNesting</B></PRE>
    +<DL>
    +<DD>Specifies if nesting of swimlanes is allowed. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="changesRepaintThreshold"><!-- --></A><H3>
    +changesRepaintThreshold</H3>
    +<PRE>
    +protected int <B>changesRepaintThreshold</B></PRE>
    +<DL>
    +<DD>Specifies the maximum number of changes that should be processed to find
    + the dirty region. If the number of changes is larger, then the complete
    + grah is repainted. A value of zero will always compute the dirty region
    + for any number of changes. Default is 1000.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="autoOrigin"><!-- --></A><H3>
    +autoOrigin</H3>
    +<PRE>
    +protected boolean <B>autoOrigin</B></PRE>
    +<DL>
    +<DD>Specifies if the origin should be automatically updated.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="origin"><!-- --></A><H3>
    +origin</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>origin</B></PRE>
    +<DL>
    +<DD>Holds the current automatic origin.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="imageBundles"><!-- --></A><H3>
    +imageBundles</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&gt; <B>imageBundles</B></PRE>
    +<DL>
    +<DD>Holds the list of bundles.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="fullRepaintHandler"><!-- --></A><H3>
    +fullRepaintHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>fullRepaintHandler</B></PRE>
    +<DL>
    +<DD>Fires repaint events for full repaints.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="updateOriginHandler"><!-- --></A><H3>
    +updateOriginHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>updateOriginHandler</B></PRE>
    +<DL>
    +<DD>Fires repaint events for full repaints.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphModelChangeHandler"><!-- --></A><H3>
    +graphModelChangeHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>graphModelChangeHandler</B></PRE>
    +<DL>
    +<DD>Fires repaint events for model changes.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraph()"><!-- --></A><H3>
    +mxGraph</H3>
    +<PRE>
    +public <B>mxGraph</B>()</PRE>
    +<DL>
    +<DD>Constructs a new graph with an empty
    + <A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><CODE>mxGraphModel</CODE></A>.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraph(com.mxgraph.model.mxIGraphModel)"><!-- --></A><H3>
    +mxGraph</H3>
    +<PRE>
    +public <B>mxGraph</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model)</PRE>
    +<DL>
    +<DD>Constructs a new graph for the specified model. If no model is
    + specified, then a new, empty <A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><CODE>mxGraphModel</CODE></A> is
    + used.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the graph data</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraph(com.mxgraph.view.mxStylesheet)"><!-- --></A><H3>
    +mxGraph</H3>
    +<PRE>
    +public <B>mxGraph</B>(<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;stylesheet)</PRE>
    +<DL>
    +<DD>Constructs a new graph for the specified model. If no model is
    + specified, then a new, empty <A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><CODE>mxGraphModel</CODE></A> is
    + used.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>stylesheet</CODE> - The stylesheet to use for the graph.</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="mxGraph(com.mxgraph.model.mxIGraphModel, com.mxgraph.view.mxStylesheet)"><!-- --></A><H3>
    +mxGraph</H3>
    +<PRE>
    +public <B>mxGraph</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;model,
    +               <A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;stylesheet)</PRE>
    +<DL>
    +<DD>Constructs a new graph for the specified model. If no model is
    + specified, then a new, empty <A HREF="../../../com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><CODE>mxGraphModel</CODE></A> is
    + used.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - Model that contains the graph data</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="createSelectionModel()"><!-- --></A><H3>
    +createSelectionModel</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A> <B>createSelectionModel</B>()</PRE>
    +<DL>
    +<DD>Constructs a new selection model to be used in this graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createStylesheet()"><!-- --></A><H3>
    +createStylesheet</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A> <B>createStylesheet</B>()</PRE>
    +<DL>
    +<DD>Constructs a new stylesheet to be used in this graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createGraphView()"><!-- --></A><H3>
    +createGraphView</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> <B>createGraphView</B>()</PRE>
    +<DL>
    +<DD>Constructs a new view to be used in this graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getModel()"><!-- --></A><H3>
    +getModel</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A> <B>getModel</B>()</PRE>
    +<DL>
    +<DD>Returns the graph model that contains the graph data.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the model that contains the graph data</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setModel(com.mxgraph.model.mxIGraphModel)"><!-- --></A><H3>
    +setModel</H3>
    +<PRE>
    +public void <B>setModel</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the graph model that contains the data, and fires an
    + mxEvent.CHANGE followed by an mxEvent.REPAINT event.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Model that contains the graph data</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getView()"><!-- --></A><H3>
    +getView</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> <B>getView</B>()</PRE>
    +<DL>
    +<DD>Returns the view that contains the cell states.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the view that contains the cell states</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setView(com.mxgraph.view.mxGraphView)"><!-- --></A><H3>
    +setView</H3>
    +<PRE>
    +public void <B>setView</B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the view that contains the cell states.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - View that contains the cell states</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStylesheet()"><!-- --></A><H3>
    +getStylesheet</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A> <B>getStylesheet</B>()</PRE>
    +<DL>
    +<DD>Returns the stylesheet that provides the style.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the stylesheet that provides the style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStylesheet(com.mxgraph.view.mxStylesheet)"><!-- --></A><H3>
    +setStylesheet</H3>
    +<PRE>
    +public void <B>setStylesheet</B>(<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the stylesheet that provides the style.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Stylesheet that provides the style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionCellsForChanges(java.util.List)"><!-- --></A><H3>
    +getSelectionCellsForChanges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getSelectionCellsForChanges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</PRE>
    +<DL>
    +<DD>Returns the cells to be selected for the given list of changes.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="graphModelChanged(com.mxgraph.model.mxIGraphModel, java.util.List)"><!-- --></A><H3>
    +graphModelChanged</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>graphModelChanged</B>(<A HREF="../../../com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>&nbsp;sender,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</PRE>
    +<DL>
    +<DD>Called when the graph model changes. Invokes processChange on each
    + item of the given array to update the view accordingly.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateOrigin()"><!-- --></A><H3>
    +updateOrigin</H3>
    +<PRE>
    +protected void <B>updateOrigin</B>()</PRE>
    +<DL>
    +<DD>Extends the canvas by doing another validation with a shifted
    + global translation if the bounds of the graph are below (0,0).
    + 
    + The first validation is required to compute the bounds of the graph
    + while the second validation is required to apply the new translate.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRemovedCellsForChanges(java.util.List)"><!-- --></A><H3>
    +getRemovedCellsForChanges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getRemovedCellsForChanges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</PRE>
    +<DL>
    +<DD>Returns the cells that have been removed from the model.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="processChanges(java.util.List, boolean, boolean)"><!-- --></A><H3>
    +processChanges</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>processChanges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes,
    +                                  boolean&nbsp;invalidate,
    +                                  boolean&nbsp;ignoreDirty)</PRE>
    +<DL>
    +<DD>Processes the changes and returns the minimal rectangle to be
    + repainted in the buffer. A return value of null means no repaint
    + is required.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="processChange(com.mxgraph.util.mxUndoableEdit.mxUndoableChange, boolean, boolean)"><!-- --></A><H3>
    +processChange</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>processChange</B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change,
    +                                 boolean&nbsp;invalidate,
    +                                 boolean&nbsp;ignoreDirty)</PRE>
    +<DL>
    +<DD>Processes the given change and invalidates the respective cached data
    + in <view>. This fires a <root> event if the root has changed in the
    + model.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeStateForCell(java.lang.Object)"><!-- --></A><H3>
    +removeStateForCell</H3>
    +<PRE>
    +protected void <B>removeStateForCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Removes all cached information for the given cell and its descendants.
    + This is called when a cell was removed from the model.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that was removed from the model.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellStyle(java.lang.Object)"><!-- --></A><H3>
    +getCellStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getCellStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns an array of key, value pairs representing the cell style for the
    + given cell. If no string is defined in the model that specifies the
    + style, then the default style for the cell is returned or <EMPTY_ARRAY>,
    + if not style can be found.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose style should be returned.
    +<DT><B>Returns:</B><DD>Returns the style of the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="postProcessCellStyle(java.util.Map)"><!-- --></A><H3>
    +postProcessCellStyle</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>postProcessCellStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Tries to resolve the value for the image style in the image bundles and
    + turns short data URIs as defined in mxImageBundle to data URIs as
    + defined in RFC 2397 of the IETF.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyle(java.lang.String)"><!-- --></A><H3>
    +setCellStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>setCellStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Sets the style of the selection cells to the given value.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String representing the new style of the cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyle(java.lang.String, java.lang.Object[])"><!-- --></A><H3>
    +setCellStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>setCellStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Sets the style of the specified cells. If no cells are given, then the
    + selection cells are changed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>style</CODE> - String representing the new style of the cells.<DD><CODE>cells</CODE> - Optional array of <mxCells> to set the style for. Default is the
    + selection cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toggleCellStyle(java.lang.String, boolean, java.lang.Object)"><!-- --></A><H3>
    +toggleCellStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>toggleCellStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                              boolean&nbsp;defaultValue,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Toggles the boolean value for the given key in the style of the
    + given cell. If no cell is specified then the selection cell is
    + used.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - Key for the boolean value to be toggled.<DD><CODE>defaultValue</CODE> - Default boolean value if no value is defined.<DD><CODE>cell</CODE> - Cell whose style should be modified.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toggleCellStyles(java.lang.String, boolean)"><!-- --></A><H3>
    +toggleCellStyles</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>toggleCellStyles</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                 boolean&nbsp;defaultValue)</PRE>
    +<DL>
    +<DD>Toggles the boolean value for the given key in the style of the
    + selection cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - Key for the boolean value to be toggled.<DD><CODE>defaultValue</CODE> - Default boolean value if no value is defined.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toggleCellStyles(java.lang.String, boolean, java.lang.Object[])"><!-- --></A><H3>
    +toggleCellStyles</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>toggleCellStyles</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                 boolean&nbsp;defaultValue,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Toggles the boolean value for the given key in the style of the given
    + cells. If no cells are specified, then the selection cells are used. For
    + example, this can be used to toggle mxConstants.STYLE_ROUNDED or any
    + other style with a boolean value.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - String representing the key of the boolean style to be toggled.<DD><CODE>defaultValue</CODE> - Default boolean value if no value is defined.<DD><CODE>cells</CODE> - Cells whose styles should be modified.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyles(java.lang.String, java.lang.String)"><!-- --></A><H3>
    +setCellStyles</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>setCellStyles</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the key to value in the styles of the selection cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - String representing the key to be assigned.<DD><CODE>value</CODE> - String representing the new value for the key.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyles(java.lang.String, java.lang.String, java.lang.Object[])"><!-- --></A><H3>
    +setCellStyles</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>setCellStyles</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Sets the key to value in the styles of the given cells. This will modify
    + the existing cell styles in-place and override any existing assignment
    + for the given key. If no cells are specified, then the selection cells
    + are changed. If no value is specified, then the respective key is
    + removed from the styles.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - String representing the key to be assigned.<DD><CODE>value</CODE> - String representing the new value for the key.<DD><CODE>cells</CODE> - Array of cells to change the style for.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toggleCellStyleFlags(java.lang.String, int)"><!-- --></A><H3>
    +toggleCellStyleFlags</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>toggleCellStyleFlags</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                     int&nbsp;flag)</PRE>
    +<DL>
    +<DD>Toggles the given bit for the given key in the styles of the selection
    + cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - String representing the key to toggle the flag in.<DD><CODE>flag</CODE> - Integer that represents the bit to be toggled.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toggleCellStyleFlags(java.lang.String, int, java.lang.Object[])"><!-- --></A><H3>
    +toggleCellStyleFlags</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>toggleCellStyleFlags</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                     int&nbsp;flag,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Toggles the given bit for the given key in the styles of the specified
    + cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - String representing the key to toggle the flag in.<DD><CODE>flag</CODE> - Integer that represents the bit to be toggled.<DD><CODE>cells</CODE> - Optional array of <mxCells> to change the style for. Default is
    + the selection cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyleFlags(java.lang.String, int, boolean)"><!-- --></A><H3>
    +setCellStyleFlags</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>setCellStyleFlags</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                  int&nbsp;flag,
    +                                  boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets or toggles the given bit for the given key in the styles of the
    + selection cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - String representing the key to toggle the flag in.<DD><CODE>flag</CODE> - Integer that represents the bit to be toggled.<DD><CODE>value</CODE> - Boolean value to be used or null if the value should be
    + toggled.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellStyleFlags(java.lang.String, int, java.lang.Boolean, java.lang.Object[])"><!-- --></A><H3>
    +setCellStyleFlags</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>setCellStyleFlags</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    +                                  int&nbsp;flag,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;value,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Sets or toggles the given bit for the given key in the styles of the
    + specified cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>key</CODE> - String representing the key to toggle the flag in.<DD><CODE>flag</CODE> - Integer that represents the bit to be toggled.<DD><CODE>value</CODE> - Boolean value to be used or null if the value should be
    + toggled.<DD><CODE>cells</CODE> - Optional array of cells to change the style for. If no
    + cells are specified then the selection cells are used.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addImageBundle(com.mxgraph.util.mxImageBundle)"><!-- --></A><H3>
    +addImageBundle</H3>
    +<PRE>
    +public void <B>addImageBundle</B>(<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&nbsp;bundle)</PRE>
    +<DL>
    +<DD>Adds the specified bundle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeImageBundle(com.mxgraph.util.mxImageBundle)"><!-- --></A><H3>
    +removeImageBundle</H3>
    +<PRE>
    +public void <B>removeImageBundle</B>(<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&nbsp;bundle)</PRE>
    +<DL>
    +<DD>Removes the specified bundle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageFromBundles(java.lang.String)"><!-- --></A><H3>
    +getImageFromBundles</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getImageFromBundles</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
    +<DL>
    +<DD>Searches all bundles for the specified key and returns the value for the
    + first match or null if the key is not found.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageBundles()"><!-- --></A><H3>
    +getImageBundles</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&gt; <B>getImageBundles</B>()</PRE>
    +<DL>
    +<DD>Returns the image bundles
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImageBundles(java.util.List)"><!-- --></A><H3>
    +getImageBundles</H3>
    +<PRE>
    +public void <B>getImageBundles</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>&gt;&nbsp;value)</PRE>
    +<DL>
    +<DD>Returns the image bundles
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="alignCells(java.lang.String)"><!-- --></A><H3>
    +alignCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>alignCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align)</PRE>
    +<DL>
    +<DD>Aligns the selection cells vertically or horizontally according to the
    + given alignment.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>align</CODE> - Specifies the alignment. Possible values are all constants
    + in mxConstants with an ALIGN prefix.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="alignCells(java.lang.String, java.lang.Object[])"><!-- --></A><H3>
    +alignCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>alignCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Aligns the given cells vertically or horizontally according to the given
    + alignment.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>align</CODE> - Specifies the alignment. Possible values are all constants
    + in mxConstants with an ALIGN prefix.<DD><CODE>cells</CODE> - Array of cells to be aligned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="alignCells(java.lang.String, java.lang.Object[], java.lang.Object)"><!-- --></A><H3>
    +alignCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>alignCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;align,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;param)</PRE>
    +<DL>
    +<DD>Aligns the given cells vertically or horizontally according to the given
    + alignment using the optional parameter as the coordinate.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>align</CODE> - Specifies the alignment. Possible values are all constants
    + in mxConstants with an ALIGN prefix.<DD><CODE>cells</CODE> - Array of cells to be aligned.<DD><CODE>param</CODE> - Optional coordinate for the alignment.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="flipEdge(java.lang.Object)"><!-- --></A><H3>
    +flipEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>flipEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD>Called when the main control point of the edge is double-clicked. This
    + implementation switches between null (default) and alternateEdgeStyle
    + and resets the edges control points. Finally, a flip event is fired
    + before endUpdate is called on the model.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that represents the edge to be flipped.
    +<DT><B>Returns:</B><DD>Returns the edge that has been flipped.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="orderCells(boolean)"><!-- --></A><H3>
    +orderCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>orderCells</B>(boolean&nbsp;back)</PRE>
    +<DL>
    +<DD>Moves the selection cells to the front or back. This is a shortcut method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>back</CODE> - Specifies if the cells should be moved to back.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="orderCells(boolean, java.lang.Object[])"><!-- --></A><H3>
    +orderCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>orderCells</B>(boolean&nbsp;back,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Moves the given cells to the front or back. The change is carried out
    + using cellsOrdered. This method fires mxEvent.ORDER_CELLS while the
    + transaction is in progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>back</CODE> - Specifies if the cells should be moved to back.<DD><CODE>cells</CODE> - Array of cells whose order should be changed. If null is
    + specified then the selection cells are used.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsOrdered(java.lang.Object[], boolean)"><!-- --></A><H3>
    +cellsOrdered</H3>
    +<PRE>
    +public void <B>cellsOrdered</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                         boolean&nbsp;back)</PRE>
    +<DL>
    +<DD>Moves the given cells to the front or back. This method fires
    + mxEvent.CELLS_ORDERED while the transaction is in progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells whose order should be changed.<DD><CODE>back</CODE> - Specifies if the cells should be moved to back.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="groupCells()"><!-- --></A><H3>
    +groupCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>groupCells</B>()</PRE>
    +<DL>
    +<DD>Groups the selection cells. This is a shortcut method.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the new group.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="groupCells(java.lang.Object)"><!-- --></A><H3>
    +groupCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>groupCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;group)</PRE>
    +<DL>
    +<DD>Groups the selection cells and adds them to the given group. This is a
    + shortcut method.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the new group.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="groupCells(java.lang.Object, double)"><!-- --></A><H3>
    +groupCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>groupCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;group,
    +                         double&nbsp;border)</PRE>
    +<DL>
    +<DD>Groups the selection cells and adds them to the given group. This is a
    + shortcut method.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the new group.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="groupCells(java.lang.Object, double, java.lang.Object[])"><!-- --></A><H3>
    +groupCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>groupCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;group,
    +                         double&nbsp;border,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Adds the cells into the given group. The change is carried out using
    + cellsAdded, cellsMoved and cellsResized. This method fires
    + mxEvent.GROUP_CELLS while the transaction is in progress. Returns the
    + new group. A group is only created if there is at least one entry in the
    + given array of cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>group</CODE> - Cell that represents the target group. If null is specified
    + then a new group is created using createGroupCell.<DD><CODE>border</CODE> - Integer that specifies the border between the child area
    + and the group bounds.<DD><CODE>cells</CODE> - Optional array of cells to be grouped. If null is specified
    + then the selection cells are used.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellsForGroup(java.lang.Object[])"><!-- --></A><H3>
    +getCellsForGroup</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCellsForGroup</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the cells with the same parent as the first cell
    + in the given array.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundsForGroup(java.lang.Object, java.lang.Object[], double)"><!-- --></A><H3>
    +getBoundsForGroup</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBoundsForGroup</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;group,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;children,
    +                                     double&nbsp;border)</PRE>
    +<DL>
    +<DD>Returns the bounds to be used for the given group and children. This
    + implementation computes the bounding box of the geometries of all
    + vertices in the given children array. Edges are ignored. If the group
    + cell is a swimlane the title region is added to the bounds.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createGroupCell(java.lang.Object[])"><!-- --></A><H3>
    +createGroupCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>createGroupCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Hook for creating the group cell to hold the given array of <mxCells> if
    + no group cell was given to the <group> function. The children are just
    + for informational purpose, they will be added to the returned group
    + later. Note that the returned group should have a geometry. The
    + coordinates of which are later overridden.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - 
    +<DT><B>Returns:</B><DD>Returns a new group cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="ungroupCells()"><!-- --></A><H3>
    +ungroupCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>ungroupCells</B>()</PRE>
    +<DL>
    +<DD>Ungroups the selection cells. This is a shortcut method.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="ungroupCells(java.lang.Object[])"><!-- --></A><H3>
    +ungroupCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>ungroupCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Ungroups the given cells by moving the children the children to their
    + parents parent and removing the empty groups.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to be ungrouped. If null is specified then
    + the selection cells are used.
    +<DT><B>Returns:</B><DD>Returns the children that have been removed from the groups.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCellsFromParent()"><!-- --></A><H3>
    +removeCellsFromParent</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>removeCellsFromParent</B>()</PRE>
    +<DL>
    +<DD>Removes the selection cells from their parents and adds them to the
    + default parent returned by getDefaultParent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCellsFromParent(java.lang.Object[])"><!-- --></A><H3>
    +removeCellsFromParent</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>removeCellsFromParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Removes the specified cells from their parents and adds them to the
    + default parent.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to be removed from their parents.
    +<DT><B>Returns:</B><DD>Returns the cells that were removed from their parents.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateGroupBounds()"><!-- --></A><H3>
    +updateGroupBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>updateGroupBounds</B>()</PRE>
    +<DL>
    +<DD>Updates the bounds of the given array of groups so that it includes
    + all child vertices.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateGroupBounds(java.lang.Object[])"><!-- --></A><H3>
    +updateGroupBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>updateGroupBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Updates the bounds of the given array of groups so that it includes
    + all child vertices.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - The groups whose bounds should be updated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateGroupBounds(java.lang.Object[], int)"><!-- --></A><H3>
    +updateGroupBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>updateGroupBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                  int&nbsp;border)</PRE>
    +<DL>
    +<DD>Updates the bounds of the given array of groups so that it includes
    + all child vertices.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - The groups whose bounds should be updated.<DD><CODE>border</CODE> - The border to be added in the group.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateGroupBounds(java.lang.Object[], int, boolean)"><!-- --></A><H3>
    +updateGroupBounds</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>updateGroupBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                  int&nbsp;border,
    +                                  boolean&nbsp;moveParent)</PRE>
    +<DL>
    +<DD>Updates the bounds of the given array of groups so that it includes
    + all child vertices.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - The groups whose bounds should be updated.<DD><CODE>border</CODE> - The border to be added in the group.<DD><CODE>moveParent</CODE> - Specifies if the group should be moved.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneCells(java.lang.Object[])"><!-- --></A><H3>
    +cloneCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>cloneCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Clones all cells in the given array. To clone all children in a cell and
    + add them to another graph:
    + 
    + <code>
    + graph2.addCells(graph.cloneCells(new Object[] { parent }));
    + </code>
    + 
    + To clone all children in a graph layer if graph g1 and put them into the
    + default parent (typically default layer) of another graph g2, the
    + following code is used:
    + 
    + <code>
    + g2.addCells(g1.cloneCells(g1.cloneCells(g1.getChildCells(g1.getDefaultParent()));
    + </code>
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cloneCells(java.lang.Object[], boolean)"><!-- --></A><H3>
    +cloneCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>cloneCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                           boolean&nbsp;allowInvalidEdges)</PRE>
    +<DL>
    +<DD>Returns the clones for the given cells. If the terminal of an edge is
    + not in the given array, then the respective end is assigned a terminal
    + point and the terminal is removed. If a cloned edge is invalid and
    + allowInvalidEdges is false, then a null pointer will be at this position
    + in the returned array. Use getCloneableCells on the input array to only
    + clone the cells where isCellCloneable returns true.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of mxCells to be cloned.
    +<DT><B>Returns:</B><DD>Returns the clones of the given cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double)"><!-- --></A><H3>
    +insertVertex</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>insertVertex</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                           double&nbsp;x,
    +                           double&nbsp;y,
    +                           double&nbsp;width,
    +                           double&nbsp;height)</PRE>
    +<DL>
    +<DD>Creates and adds a new vertex with an empty style.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String)"><!-- --></A><H3>
    +insertVertex</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>insertVertex</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                           double&nbsp;x,
    +                           double&nbsp;y,
    +                           double&nbsp;width,
    +                           double&nbsp;height,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Adds a new vertex into the given parent using value as the user object
    + and the given coordinates as the geometry of the new vertex. The id and
    + style are used for the respective properties of the new cell, which is
    + returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent of the new vertex.<DD><CODE>id</CODE> - Optional string that defines the Id of the new vertex.<DD><CODE>value</CODE> - Object to be used as the user object.<DD><CODE>x</CODE> - Integer that defines the x coordinate of the vertex.<DD><CODE>y</CODE> - Integer that defines the y coordinate of the vertex.<DD><CODE>width</CODE> - Integer that defines the width of the vertex.<DD><CODE>height</CODE> - Integer that defines the height of the vertex.<DD><CODE>style</CODE> - Optional string that defines the cell style.
    +<DT><B>Returns:</B><DD>Returns the new vertex that has been inserted.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String, boolean)"><!-- --></A><H3>
    +insertVertex</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>insertVertex</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                           double&nbsp;x,
    +                           double&nbsp;y,
    +                           double&nbsp;width,
    +                           double&nbsp;height,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                           boolean&nbsp;relative)</PRE>
    +<DL>
    +<DD>Adds a new vertex into the given parent using value as the user object
    + and the given coordinates as the geometry of the new vertex. The id and
    + style are used for the respective properties of the new cell, which is
    + returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent of the new vertex.<DD><CODE>id</CODE> - Optional string that defines the Id of the new vertex.<DD><CODE>value</CODE> - Object to be used as the user object.<DD><CODE>x</CODE> - Integer that defines the x coordinate of the vertex.<DD><CODE>y</CODE> - Integer that defines the y coordinate of the vertex.<DD><CODE>width</CODE> - Integer that defines the width of the vertex.<DD><CODE>height</CODE> - Integer that defines the height of the vertex.<DD><CODE>style</CODE> - Optional string that defines the cell style.<DD><CODE>relative</CODE> - Specifies if the geometry should be relative.
    +<DT><B>Returns:</B><DD>Returns the new vertex that has been inserted.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String)"><!-- --></A><H3>
    +createVertex</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>createVertex</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                           double&nbsp;x,
    +                           double&nbsp;y,
    +                           double&nbsp;width,
    +                           double&nbsp;height,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Hook method that creates the new vertex for insertVertex.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent of the new vertex.<DD><CODE>id</CODE> - Optional string that defines the Id of the new vertex.<DD><CODE>value</CODE> - Object to be used as the user object.<DD><CODE>x</CODE> - Integer that defines the x coordinate of the vertex.<DD><CODE>y</CODE> - Integer that defines the y coordinate of the vertex.<DD><CODE>width</CODE> - Integer that defines the width of the vertex.<DD><CODE>height</CODE> - Integer that defines the height of the vertex.<DD><CODE>style</CODE> - Optional string that defines the cell style.
    +<DT><B>Returns:</B><DD>Returns the new vertex to be inserted.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String, boolean)"><!-- --></A><H3>
    +createVertex</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>createVertex</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                           double&nbsp;x,
    +                           double&nbsp;y,
    +                           double&nbsp;width,
    +                           double&nbsp;height,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style,
    +                           boolean&nbsp;relative)</PRE>
    +<DL>
    +<DD>Hook method that creates the new vertex for insertVertex.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent of the new vertex.<DD><CODE>id</CODE> - Optional string that defines the Id of the new vertex.<DD><CODE>value</CODE> - Object to be used as the user object.<DD><CODE>x</CODE> - Integer that defines the x coordinate of the vertex.<DD><CODE>y</CODE> - Integer that defines the y coordinate of the vertex.<DD><CODE>width</CODE> - Integer that defines the width of the vertex.<DD><CODE>height</CODE> - Integer that defines the height of the vertex.<DD><CODE>style</CODE> - Optional string that defines the cell style.<DD><CODE>relative</CODE> - Specifies if the geometry should be relative.
    +<DT><B>Returns:</B><DD>Returns the new vertex to be inserted.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertEdge(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +insertEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>insertEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Creates and adds a new edge with an empty style.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="insertEdge(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +insertEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>insertEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Adds a new edge into the given parent using value as the user object and
    + the given source and target as the terminals of the new edge. The Id and
    + style are used for the respective properties of the new cell, which is
    + returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent of the new edge.<DD><CODE>id</CODE> - Optional string that defines the Id of the new edge.<DD><CODE>value</CODE> - Object to be used as the user object.<DD><CODE>source</CODE> - Cell that defines the source of the edge.<DD><CODE>target</CODE> - Cell that defines the target of the edge.<DD><CODE>style</CODE> - Optional string that defines the cell style.
    +<DT><B>Returns:</B><DD>Returns the new edge that has been inserted.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createEdge(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +createEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>createEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;id,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;style)</PRE>
    +<DL>
    +<DD>Hook method that creates the new edge for insertEdge. This
    + implementation does not set the source and target of the edge, these
    + are set when the edge is added to the model.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell that specifies the parent of the new edge.<DD><CODE>id</CODE> - Optional string that defines the Id of the new edge.<DD><CODE>value</CODE> - Object to be used as the user object.<DD><CODE>source</CODE> - Cell that defines the source of the edge.<DD><CODE>target</CODE> - Cell that defines the target of the edge.<DD><CODE>style</CODE> - Optional string that defines the cell style.
    +<DT><B>Returns:</B><DD>Returns the new edge to be inserted.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addEdge(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Integer)"><!-- --></A><H3>
    +addEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>addEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index)</PRE>
    +<DL>
    +<DD>Adds the edge to the parent and connects it to the given source and
    + target terminals. This is a shortcut method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Edge to be inserted into the given parent.<DD><CODE>parent</CODE> - Object that represents the new parent. If no parent is
    + given then the default parent is used.<DD><CODE>source</CODE> - Optional cell that represents the source terminal.<DD><CODE>target</CODE> - Optional cell that represents the target terminal.<DD><CODE>index</CODE> - Optional index to insert the cells at. Default is to append.
    +<DT><B>Returns:</B><DD>Returns the edge that was added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCell(java.lang.Object)"><!-- --></A><H3>
    +addCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>addCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Adds the cell to the default parent. This is a shortcut method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell to be inserted.
    +<DT><B>Returns:</B><DD>Returns the cell that was added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCell(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +addCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>addCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Adds the cell to the parent. This is a shortcut method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell tobe inserted.<DD><CODE>parent</CODE> - Object that represents the new parent. If no parent is
    + given then the default parent is used.
    +<DT><B>Returns:</B><DD>Returns the cell that was added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCell(java.lang.Object, java.lang.Object, java.lang.Integer, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +addCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>addCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Adds the cell to the parent and connects it to the given source and
    + target terminals. This is a shortcut method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell to be inserted into the given parent.<DD><CODE>parent</CODE> - Object that represents the new parent. If no parent is
    + given then the default parent is used.<DD><CODE>index</CODE> - Optional index to insert the cells at. Default is to append.<DD><CODE>source</CODE> - Optional cell that represents the source terminal.<DD><CODE>target</CODE> - Optional cell that represents the target terminal.
    +<DT><B>Returns:</B><DD>Returns the cell that was added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCells(java.lang.Object[])"><!-- --></A><H3>
    +addCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>addCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Adds the cells to the default parent. This is a shortcut method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to be inserted.
    +<DT><B>Returns:</B><DD>Returns the cells that were added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCells(java.lang.Object[], java.lang.Object)"><!-- --></A><H3>
    +addCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>addCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Adds the cells to the parent. This is a shortcut method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to be inserted.<DD><CODE>parent</CODE> - Optional cell that represents the new parent. If no parent
    + is specified then the default parent is used.
    +<DT><B>Returns:</B><DD>Returns the cells that were added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCells(java.lang.Object[], java.lang.Object, java.lang.Integer)"><!-- --></A><H3>
    +addCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>addCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index)</PRE>
    +<DL>
    +<DD>Adds the cells to the parent at the given index. This is a shortcut method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to be inserted.<DD><CODE>parent</CODE> - Optional cell that represents the new parent. If no parent
    + is specified then the default parent is used.<DD><CODE>index</CODE> - Optional index to insert the cells at. Default is to append.
    +<DT><B>Returns:</B><DD>Returns the cells that were added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCells(java.lang.Object[], java.lang.Object, java.lang.Integer, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +addCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>addCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Adds the cells to the parent at the given index, connecting each cell to
    + the optional source and target terminal. The change is carried out using
    + cellsAdded. This method fires mxEvent.ADD_CELLS while the transaction
    + is in progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to be added.<DD><CODE>parent</CODE> - Optional cell that represents the new parent. If no parent
    + is specified then the default parent is used.<DD><CODE>index</CODE> - Optional index to insert the cells at. Default is to append.<DD><CODE>source</CODE> - Optional source terminal for all inserted cells.<DD><CODE>target</CODE> - Optional target terminal for all inserted cells.
    +<DT><B>Returns:</B><DD>Returns the cells that were added.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsAdded(java.lang.Object[], java.lang.Object, java.lang.Integer, java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +cellsAdded</H3>
    +<PRE>
    +public void <B>cellsAdded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;index,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                       boolean&nbsp;absolute)</PRE>
    +<DL>
    +<DD>Adds the specified cells to the given parent. This method fires
    + mxEvent.CELLS_ADDED while the transaction is in progress.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCells()"><!-- --></A><H3>
    +removeCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>removeCells</B>()</PRE>
    +<DL>
    +<DD>Removes the selection cells from the graph.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the cells that have been removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCells(java.lang.Object[])"><!-- --></A><H3>
    +removeCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>removeCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Removes the given cells from the graph.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to remove.
    +<DT><B>Returns:</B><DD>Returns the cells that have been removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCells(java.lang.Object[], boolean)"><!-- --></A><H3>
    +removeCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>removeCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                            boolean&nbsp;includeEdges)</PRE>
    +<DL>
    +<DD>Removes the given cells from the graph including all connected edges if
    + includeEdges is true. The change is carried out using cellsRemoved. This
    + method fires mxEvent.REMOVE_CELLS while the transaction is in progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to remove. If null is specified then the
    + selection cells which are deletable are used.<DD><CODE>includeEdges</CODE> - Specifies if all connected edges should be removed as
    + well.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsRemoved(java.lang.Object[])"><!-- --></A><H3>
    +cellsRemoved</H3>
    +<PRE>
    +public void <B>cellsRemoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Removes the given cells from the model. This method fires
    + mxEvent.CELLS_REMOVED while the transaction is in progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to remove.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="splitEdge(java.lang.Object, java.lang.Object[])"><!-- --></A><H3>
    +splitEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>splitEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="splitEdge(java.lang.Object, java.lang.Object[], double, double)"><!-- --></A><H3>
    +splitEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>splitEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        double&nbsp;dx,
    +                        double&nbsp;dy)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="splitEdge(java.lang.Object, java.lang.Object[], java.lang.Object, double, double)"><!-- --></A><H3>
    +splitEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>splitEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;newEdge,
    +                        double&nbsp;dx,
    +                        double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Splits the given edge by adding a newEdge between the previous source
    + and the given cell and reconnecting the source of the given edge to the
    + given cell. Fires mxEvent.SPLIT_EDGE while the transaction is in
    + progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Object that represents the edge to be splitted.<DD><CODE>cells</CODE> - Array that contains the cells to insert into the edge.<DD><CODE>newEdge</CODE> - Object that represents the edge to be inserted.
    +<DT><B>Returns:</B><DD>Returns the new edge that has been inserted.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toggleCells(boolean)"><!-- --></A><H3>
    +toggleCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>toggleCells</B>(boolean&nbsp;show)</PRE>
    +<DL>
    +<DD>Sets the visible state of the selection cells. This is a shortcut
    + method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>show</CODE> - Boolean that specifies the visible state to be assigned.
    +<DT><B>Returns:</B><DD>Returns the cells whose visible state was changed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toggleCells(boolean, java.lang.Object[])"><!-- --></A><H3>
    +toggleCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>toggleCells</B>(boolean&nbsp;show,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Sets the visible state of the specified cells. This is a shortcut
    + method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>show</CODE> - Boolean that specifies the visible state to be assigned.<DD><CODE>cells</CODE> - Array of cells whose visible state should be changed.
    +<DT><B>Returns:</B><DD>Returns the cells whose visible state was changed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="toggleCells(boolean, java.lang.Object[], boolean)"><!-- --></A><H3>
    +toggleCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>toggleCells</B>(boolean&nbsp;show,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                            boolean&nbsp;includeEdges)</PRE>
    +<DL>
    +<DD>Sets the visible state of the specified cells and all connected edges
    + if includeEdges is true. The change is carried out using cellsToggled.
    + This method fires mxEvent.TOGGLE_CELLS while the transaction is in
    + progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>show</CODE> - Boolean that specifies the visible state to be assigned.<DD><CODE>cells</CODE> - Array of cells whose visible state should be changed. If
    + null is specified then the selection cells are used.
    +<DT><B>Returns:</B><DD>Returns the cells whose visible state was changed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsToggled(java.lang.Object[], boolean)"><!-- --></A><H3>
    +cellsToggled</H3>
    +<PRE>
    +public void <B>cellsToggled</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                         boolean&nbsp;show)</PRE>
    +<DL>
    +<DD>Sets the visible state of the specified cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells whose visible state should be changed.<DD><CODE>show</CODE> - Boolean that specifies the visible state to be assigned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="foldCells(boolean)"><!-- --></A><H3>
    +foldCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>foldCells</B>(boolean&nbsp;collapse)</PRE>
    +<DL>
    +<DD>Sets the collapsed state of the selection cells without recursion.
    + This is a shortcut method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>collapse</CODE> - Boolean that specifies the collapsed state to be
    + assigned.
    +<DT><B>Returns:</B><DD>Returns the cells whose collapsed state was changed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="foldCells(boolean, boolean)"><!-- --></A><H3>
    +foldCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>foldCells</B>(boolean&nbsp;collapse,
    +                          boolean&nbsp;recurse)</PRE>
    +<DL>
    +<DD>Sets the collapsed state of the selection cells. This is a shortcut
    + method.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>collapse</CODE> - Boolean that specifies the collapsed state to be
    + assigned.<DD><CODE>recurse</CODE> - Boolean that specifies if the collapsed state should
    + be assigned to all descendants.
    +<DT><B>Returns:</B><DD>Returns the cells whose collapsed state was changed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="foldCells(boolean, boolean, java.lang.Object[])"><!-- --></A><H3>
    +foldCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>foldCells</B>(boolean&nbsp;collapse,
    +                          boolean&nbsp;recurse,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Invokes foldCells with checkFoldable set to false.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="foldCells(boolean, boolean, java.lang.Object[], boolean)"><!-- --></A><H3>
    +foldCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>foldCells</B>(boolean&nbsp;collapse,
    +                          boolean&nbsp;recurse,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                          boolean&nbsp;checkFoldable)</PRE>
    +<DL>
    +<DD>Sets the collapsed state of the specified cells and all descendants
    + if recurse is true. The change is carried out using cellsFolded.
    + This method fires mxEvent.FOLD_CELLS while the transaction is in
    + progress. Returns the cells whose collapsed state was changed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>collapse</CODE> - Boolean indicating the collapsed state to be assigned.<DD><CODE>recurse</CODE> - Boolean indicating if the collapsed state of all
    + descendants should be set.<DD><CODE>cells</CODE> - Array of cells whose collapsed state should be set. If
    + null is specified then the foldable selection cells are used.<DD><CODE>checkFoldable</CODE> - Boolean indicating of isCellFoldable should be
    + checked. Default is false.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsFolded(java.lang.Object[], boolean, boolean)"><!-- --></A><H3>
    +cellsFolded</H3>
    +<PRE>
    +public void <B>cellsFolded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        boolean&nbsp;collapse,
    +                        boolean&nbsp;recurse)</PRE>
    +<DL>
    +<DD>Invokes cellsFoldable with checkFoldable set to false.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsFolded(java.lang.Object[], boolean, boolean, boolean)"><!-- --></A><H3>
    +cellsFolded</H3>
    +<PRE>
    +public void <B>cellsFolded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                        boolean&nbsp;collapse,
    +                        boolean&nbsp;recurse,
    +                        boolean&nbsp;checkFoldable)</PRE>
    +<DL>
    +<DD>Sets the collapsed state of the specified cells. This method fires
    + mxEvent.CELLS_FOLDED while the transaction is in progress. Returns the
    + cells whose collapsed state was changed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells whose collapsed state should be set.<DD><CODE>collapse</CODE> - Boolean indicating the collapsed state to be assigned.<DD><CODE>recurse</CODE> - Boolean indicating if the collapsed state of all
    + descendants should be set.<DD><CODE>checkFoldable</CODE> - Boolean indicating of isCellFoldable should be
    + checked. Default is false.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="swapBounds(java.lang.Object, boolean)"><!-- --></A><H3>
    +swapBounds</H3>
    +<PRE>
    +public void <B>swapBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                       boolean&nbsp;willCollapse)</PRE>
    +<DL>
    +<DD>Swaps the alternate and the actual bounds in the geometry of the given
    + cell invoking updateAlternateBounds before carrying out the swap.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell for which the bounds should be swapped.<DD><CODE>willCollapse</CODE> - Boolean indicating if the cell is going to be collapsed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateAlternateBounds(java.lang.Object, com.mxgraph.model.mxGeometry, boolean)"><!-- --></A><H3>
    +updateAlternateBounds</H3>
    +<PRE>
    +public void <B>updateAlternateBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                  <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geo,
    +                                  boolean&nbsp;willCollapse)</PRE>
    +<DL>
    +<DD>Updates or sets the alternate bounds in the given geometry for the given
    + cell depending on whether the cell is going to be collapsed. If no
    + alternate bounds are defined in the geometry and
    + collapseToPreferredSize is true, then the preferred size is used for
    + the alternate bounds. The top, left corner is always kept at the same
    + location.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell for which the geometry is being udpated.<DD><CODE>geo</CODE> - Geometry for which the alternate bounds should be updated.<DD><CODE>willCollapse</CODE> - Boolean indicating if the cell is going to be collapsed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addAllEdges(java.lang.Object[])"><!-- --></A><H3>
    +addAllEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>addAllEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns an array with the given cells and all edges that are connected
    + to a cell or one of its descendants.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAllEdges(java.lang.Object[])"><!-- --></A><H3>
    +getAllEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getAllEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns all edges connected to the given cells or their descendants.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateCellSize(java.lang.Object)"><!-- --></A><H3>
    +updateCellSize</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>updateCellSize</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Updates the size of the given cell in the model using
    + getPreferredSizeForCell to get the new size. This function
    + fires beforeUpdateSize and afterUpdateSize events.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> for which the size should be changed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateCellSize(java.lang.Object, boolean)"><!-- --></A><H3>
    +updateCellSize</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>updateCellSize</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                             boolean&nbsp;ignoreChildren)</PRE>
    +<DL>
    +<DD>Updates the size of the given cell in the model using
    + getPreferredSizeForCell to get the new size. This function
    + fires mxEvent.UPDATE_CELL_SIZE.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell for which the size should be changed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellSizeUpdated(java.lang.Object, boolean)"><!-- --></A><H3>
    +cellSizeUpdated</H3>
    +<PRE>
    +public void <B>cellSizeUpdated</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                            boolean&nbsp;ignoreChildren)</PRE>
    +<DL>
    +<DD>Updates the size of the given cell in the model using
    + getPreferredSizeForCell to get the new size.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell for which the size should be changed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPreferredSizeForCell(java.lang.Object)"><!-- --></A><H3>
    +getPreferredSizeForCell</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getPreferredSizeForCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the preferred width and height of the given <mxCell> as an
    + <mxRectangle>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> for which the preferred size should be returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeCell(java.lang.Object, com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +resizeCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>resizeCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                         <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds)</PRE>
    +<DL>
    +<DD>Sets the bounds of the given cell using resizeCells. Returns the
    + cell which was passed to the function.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> whose bounds should be changed.<DD><CODE>bounds</CODE> - <mxRectangle> that represents the new bounds.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeCells(java.lang.Object[], com.mxgraph.util.mxRectangle[])"><!-- --></A><H3>
    +resizeCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>resizeCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                            <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>[]&nbsp;bounds)</PRE>
    +<DL>
    +<DD>Sets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS
    + event. while the transaction is in progress. Returns the cells which
    + have been passed to the function.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells whose bounds should be changed.<DD><CODE>bounds</CODE> - Array of rectangles that represents the new bounds.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsResized(java.lang.Object[], com.mxgraph.util.mxRectangle[])"><!-- --></A><H3>
    +cellsResized</H3>
    +<PRE>
    +public void <B>cellsResized</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                         <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>[]&nbsp;bounds)</PRE>
    +<DL>
    +<DD>Sets the bounds of the given cells and fires a <mxEvent.CELLS_RESIZED>
    + event. If extendParents is true, then the parent is extended if a child
    + size is changed so that it overlaps with the parent.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of <mxCells> whose bounds should be changed.<DD><CODE>bounds</CODE> - Array of <mxRectangles> that represents the new bounds.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="extendParent(java.lang.Object)"><!-- --></A><H3>
    +extendParent</H3>
    +<PRE>
    +public void <B>extendParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Resizes the parents recursively so that they contain the complete area
    + of the resized child cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> that has been resized.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveCells(java.lang.Object[], double, double)"><!-- --></A><H3>
    +moveCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>moveCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                          double&nbsp;dx,
    +                          double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Moves the cells by the given amount. This is a shortcut method.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveCells(java.lang.Object[], double, double, boolean)"><!-- --></A><H3>
    +moveCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>moveCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                          double&nbsp;dx,
    +                          double&nbsp;dy,
    +                          boolean&nbsp;clone)</PRE>
    +<DL>
    +<DD>Moves or clones the cells and moves the cells or clones by the given
    + amount. This is a shortcut method.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="moveCells(java.lang.Object[], double, double, boolean, java.lang.Object, java.awt.Point)"><!-- --></A><H3>
    +moveCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>moveCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                          double&nbsp;dx,
    +                          double&nbsp;dy,
    +                          boolean&nbsp;clone,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;location)</PRE>
    +<DL>
    +<DD>Moves or clones the specified cells and moves the cells or clones by the
    + given amount, adding them to the optional target cell. The location is
    + the position of the mouse pointer as the mouse was released. The change
    + is carried out using cellsMoved. This method fires mxEvent.MOVE_CELLS
    + while the transaction is in progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to be moved, cloned or added to the target.<DD><CODE>dx</CODE> - Integer that specifies the x-coordinate of the vector.<DD><CODE>dy</CODE> - Integer that specifies the y-coordinate of the vector.<DD><CODE>clone</CODE> - Boolean indicating if the cells should be cloned.<DD><CODE>target</CODE> - Cell that represents the new parent of the cells.<DD><CODE>location</CODE> - Location where the mouse was released.
    +<DT><B>Returns:</B><DD>Returns the cells that were moved.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsMoved(java.lang.Object[], double, double, boolean, boolean)"><!-- --></A><H3>
    +cellsMoved</H3>
    +<PRE>
    +public void <B>cellsMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                       double&nbsp;dx,
    +                       double&nbsp;dy,
    +                       boolean&nbsp;disconnect,
    +                       boolean&nbsp;constrain)</PRE>
    +<DL>
    +<DD>Moves the specified cells by the given vector, disconnecting the cells
    + using disconnectGraph if disconnect is true. This method fires
    + mxEvent.CELLS_MOVED while the transaction is in progress.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="translateCell(java.lang.Object, double, double)"><!-- --></A><H3>
    +translateCell</H3>
    +<PRE>
    +public void <B>translateCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                          double&nbsp;dx,
    +                          double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Translates the geometry of the given cell and stores the new,
    + translated geometry in the model as an atomic change.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellContainmentArea(java.lang.Object)"><!-- --></A><H3>
    +getCellContainmentArea</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getCellContainmentArea</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the mxRectangle inside which a cell is to be kept.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMaximumGraphBounds()"><!-- --></A><H3>
    +getMaximumGraphBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getMaximumGraphBounds</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the maximumGraphBounds</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMaximumGraphBounds(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +setMaximumGraphBounds</H3>
    +<PRE>
    +public void <B>setMaximumGraphBounds</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the maximumGraphBounds to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="constrainChild(java.lang.Object)"><!-- --></A><H3>
    +constrainChild</H3>
    +<PRE>
    +public void <B>constrainChild</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Keeps the given cell inside the bounds returned by
    + getCellContainmentArea for its parent, according to the rules defined by
    + getOverlap and isConstrainChild. This modifies the cell's geometry
    + in-place and does not clone it.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell which should be constrained.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="resetEdges(java.lang.Object[])"><!-- --></A><H3>
    +resetEdges</H3>
    +<PRE>
    +public void <B>resetEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Resets the control points of the edges that are connected to the given
    + cells if not both ends of the edge are in the given cells array.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of mxCells for which the connected edges should be
    + reset.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="resetEdge(java.lang.Object)"><!-- --></A><H3>
    +resetEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>resetEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD>Resets the control points of the given edge.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAllConnectionConstraints(com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +getAllConnectionConstraints</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>[] <B>getAllConnectionConstraints</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                                                            boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns an array of all constraints for the given terminal.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>terminal</CODE> - Cell state that represents the terminal.<DD><CODE>source</CODE> - Specifies if the terminal is the source or target.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnectionConstraint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +getConnectionConstraint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A> <B>getConnectionConstraint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                                                      <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                                                      boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns an connection constraint that describes the given connection
    + point. This result can then be passed to getConnectionPoint.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell state that represents the edge.<DD><CODE>terminal</CODE> - Cell state that represents the terminal.<DD><CODE>source</CODE> - Boolean indicating if the terminal is the source or target.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setConnectionConstraint(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)"><!-- --></A><H3>
    +setConnectionConstraint</H3>
    +<PRE>
    +public void <B>setConnectionConstraint</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                                    boolean&nbsp;source,
    +                                    <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</PRE>
    +<DL>
    +<DD>Sets the connection constraint that describes the given connection point.
    + If no constraint is given then nothing is changed. To remove an existing
    + constraint from the given edge, use an empty constraint instead.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that represents the edge.<DD><CODE>terminal</CODE> - Cell that represents the terminal.<DD><CODE>source</CODE> - Boolean indicating if the terminal is the source or target.<DD><CODE>constraint</CODE> - Optional connection constraint to be used for this connection.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnectionPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxConnectionConstraint)"><!-- --></A><H3>
    +getConnectionPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getConnectionPoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +                                  <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</PRE>
    +<DL>
    +<DD>Sets the connection constraint that describes the given connection point.
    + If no constraint is given then nothing is changed. To remove an existing
    + constraint from the given edge, use an empty constraint instead.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - Cell state that represents the vertex.<DD><CODE>constraint</CODE> - Connection constraint that represents the connection point
    + constraint as returned by getConnectionConstraint.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="connectCell(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +connectCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>connectCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                          boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Connects the specified end of the given edge to the given terminal
    + using cellConnected and fires mxEvent.CONNECT_CELL while the transaction
    + is in progress.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="connectCell(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)"><!-- --></A><H3>
    +connectCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>connectCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                          boolean&nbsp;source,
    +                          <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</PRE>
    +<DL>
    +<DD>Connects the specified end of the given edge to the given terminal
    + using cellConnected and fires mxEvent.CONNECT_CELL while the transaction
    + is in progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Edge whose terminal should be updated.<DD><CODE>terminal</CODE> - New terminal to be used.<DD><CODE>source</CODE> - Specifies if the new terminal is the source or target.<DD><CODE>constraint</CODE> - Optional constraint to be used for this connection.
    +<DT><B>Returns:</B><DD>Returns the update edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellConnected(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)"><!-- --></A><H3>
    +cellConnected</H3>
    +<PRE>
    +public void <B>cellConnected</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                          boolean&nbsp;source,
    +                          <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</PRE>
    +<DL>
    +<DD>Sets the new terminal for the given edge and resets the edge points if
    + isResetEdgesOnConnect returns true. This method fires
    + <mxEvent.CELL_CONNECTED> while the transaction is in progress.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Edge whose terminal should be updated.<DD><CODE>terminal</CODE> - New terminal to be used.<DD><CODE>source</CODE> - Specifies if the new terminal is the source or target.<DD><CODE>constraint</CODE> - Constraint to be used for this connection.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="disconnectGraph(java.lang.Object[])"><!-- --></A><H3>
    +disconnectGraph</H3>
    +<PRE>
    +public void <B>disconnectGraph</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Disconnects the given edges from the terminals which are not in the
    + given array.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of <mxCells> to be disconnected.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurrentRoot()"><!-- --></A><H3>
    +getCurrentRoot</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCurrentRoot</B>()</PRE>
    +<DL>
    +<DD>Returns the current root of the displayed cell hierarchy. This is a
    + shortcut to <mxGraphView.currentRoot> in <view>.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the current root in the view.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTranslateForRoot(java.lang.Object)"><!-- --></A><H3>
    +getTranslateForRoot</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getTranslateForRoot</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the translation to be used if the given cell is the root cell as
    + an <mxPoint>. This implementation returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the root of the view.
    +<DT><B>Returns:</B><DD>Returns the translation of the graph for the given root cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isPort(java.lang.Object)"><!-- --></A><H3>
    +isPort</H3>
    +<PRE>
    +public boolean <B>isPort</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is a "port", that is, when connecting to
    + it, the cell returned by getTerminalForPort should be used as the
    + terminal and the port should be referenced by the ID in either the
    + mxConstants.STYLE_SOURCE_PORT or the or the
    + mxConstants.STYLE_TARGET_PORT. Note that a port should not be movable.
    + This implementation always returns false.
    + 
    + A typical implementation of this method looks as follows:
    + 
    + <code>
    + public boolean isPort(Object cell)
    + {
    +   mxGeometry geo = getCellGeometry(cell);
    +   
    +   return (geo != null) ? geo.isRelative() : false;
    + }
    + </code>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the port.
    +<DT><B>Returns:</B><DD>Returns true if the cell is a port.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminalForPort(java.lang.Object, boolean)"><!-- --></A><H3>
    +getTerminalForPort</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getTerminalForPort</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                 boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns the terminal to be used for a given port. This implementation
    + always returns the parent cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the port.<DD><CODE>source</CODE> - If the cell is the source or target port.
    +<DT><B>Returns:</B><DD>Returns the terminal to be used for the given port.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildOffsetForCell(java.lang.Object)"><!-- --></A><H3>
    +getChildOffsetForCell</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getChildOffsetForCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the offset to be used for the cells inside the given cell. The
    + root and layer cells may be identified using mxGraphModel.isRoot and
    + mxGraphModel.isLayer. This implementation returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose offset should be returned.
    +<DT><B>Returns:</B><DD>Returns the child offset for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="enterGroup()"><!-- --></A><H3>
    +enterGroup</H3>
    +<PRE>
    +public void <B>enterGroup</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="enterGroup(java.lang.Object)"><!-- --></A><H3>
    +enterGroup</H3>
    +<PRE>
    +public void <B>enterGroup</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Uses the given cell as the root of the displayed cell hierarchy. If no
    + cell is specified then the selection cell is used. The cell is only used
    + if <isValidRoot> returns true.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="exitGroup()"><!-- --></A><H3>
    +exitGroup</H3>
    +<PRE>
    +public void <B>exitGroup</B>()</PRE>
    +<DL>
    +<DD>Changes the current root to the next valid root in the displayed cell
    + hierarchy.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="home()"><!-- --></A><H3>
    +home</H3>
    +<PRE>
    +public void <B>home</B>()</PRE>
    +<DL>
    +<DD>Uses the root of the model as the root of the displayed cell hierarchy
    + and selects the previous root.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isValidRoot(java.lang.Object)"><!-- --></A><H3>
    +isValidRoot</H3>
    +<PRE>
    +public boolean <B>isValidRoot</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is a valid root for the cell display
    + hierarchy. This implementation returns true for all non-null values.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> which should be checked as a possible root.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is a valid root.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphBounds()"><!-- --></A><H3>
    +getGraphBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getGraphBounds</B>()</PRE>
    +<DL>
    +<DD>Returns the bounds of the visible graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellBounds(java.lang.Object)"><!-- --></A><H3>
    +getCellBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getCellBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the bounds of the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellBounds(java.lang.Object, boolean)"><!-- --></A><H3>
    +getCellBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getCellBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                 boolean&nbsp;includeEdges)</PRE>
    +<DL>
    +<DD>Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellBounds(java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +getCellBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getCellBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                 boolean&nbsp;includeEdges,
    +                                 boolean&nbsp;includeDescendants)</PRE>
    +<DL>
    +<DD>Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundingBoxFromGeometry(java.lang.Object[])"><!-- --></A><H3>
    +getBoundingBoxFromGeometry</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBoundingBoxFromGeometry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the bounding box for the geometries of the vertices in the
    + given array of cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundingBox(java.lang.Object)"><!-- --></A><H3>
    +getBoundingBox</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBoundingBox</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the bounds of the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundingBox(java.lang.Object, boolean)"><!-- --></A><H3>
    +getBoundingBox</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBoundingBox</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                  boolean&nbsp;includeEdges)</PRE>
    +<DL>
    +<DD>Returns the bounding box of the given cell including all connected edges
    + if includeEdge is true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundingBox(java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +getBoundingBox</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBoundingBox</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                  boolean&nbsp;includeEdges,
    +                                  boolean&nbsp;includeDescendants)</PRE>
    +<DL>
    +<DD>Returns the bounding box of the given cell including all connected edges
    + if includeEdge is true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPaintBounds(java.lang.Object[])"><!-- --></A><H3>
    +getPaintBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getPaintBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the bounding box of the given cells and their descendants.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundsForCells(java.lang.Object[], boolean, boolean, boolean)"><!-- --></A><H3>
    +getBoundsForCells</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBoundsForCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                     boolean&nbsp;includeEdges,
    +                                     boolean&nbsp;includeDescendants,
    +                                     boolean&nbsp;boundingBox)</PRE>
    +<DL>
    +<DD>Returns the bounds for the given cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellBounds(java.lang.Object, boolean, boolean, boolean)"><!-- --></A><H3>
    +getCellBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getCellBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                 boolean&nbsp;includeEdges,
    +                                 boolean&nbsp;includeDescendants,
    +                                 boolean&nbsp;boundingBox)</PRE>
    +<DL>
    +<DD>Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="refresh()"><!-- --></A><H3>
    +refresh</H3>
    +<PRE>
    +public void <B>refresh</B>()</PRE>
    +<DL>
    +<DD>Clears all cell states or the states for the hierarchy starting at the
    + given cell and validates the graph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="repaint()"><!-- --></A><H3>
    +repaint</H3>
    +<PRE>
    +public void <B>repaint</B>()</PRE>
    +<DL>
    +<DD>Fires a repaint event.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="repaint(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +repaint</H3>
    +<PRE>
    +public void <B>repaint</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;region)</PRE>
    +<DL>
    +<DD>Fires a repaint event. The optional region is the rectangle that needs
    + to be repainted.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="snap(double)"><!-- --></A><H3>
    +snap</H3>
    +<PRE>
    +public double <B>snap</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Snaps the given numeric value to the grid if <gridEnabled> is true.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Numeric value to be snapped to the grid.
    +<DT><B>Returns:</B><DD>Returns the value aligned to the grid.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellGeometry(java.lang.Object)"><!-- --></A><H3>
    +getCellGeometry</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>getCellGeometry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the geometry for the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose geometry should be returned.
    +<DT><B>Returns:</B><DD>Returns the geometry of the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellVisible(java.lang.Object)"><!-- --></A><H3>
    +isCellVisible</H3>
    +<PRE>
    +public boolean <B>isCellVisible</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is visible in this graph. This
    + implementation uses <mxGraphModel.isVisible>. Subclassers can override
    + this to implement specific visibility for cells in only one graph, that
    + is, without affecting the visible state of the cell.
    + 
    + When using dynamic filter expressions for cell visibility, then the
    + graph should be revalidated after the filter expression has changed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose visible state should be returned.
    +<DT><B>Returns:</B><DD>Returns the visible state of the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellCollapsed(java.lang.Object)"><!-- --></A><H3>
    +isCellCollapsed</H3>
    +<PRE>
    +public boolean <B>isCellCollapsed</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is collapsed in this graph. This
    + implementation uses <mxGraphModel.isCollapsed>. Subclassers can override
    + this to implement specific collapsed states for cells in only one graph,
    + that is, without affecting the collapsed state of the cell.
    + 
    + When using dynamic filter expressions for the collapsed state, then the
    + graph should be revalidated after the filter expression has changed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose collapsed state should be returned.
    +<DT><B>Returns:</B><DD>Returns the collapsed state of the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellConnectable(java.lang.Object)"><!-- --></A><H3>
    +isCellConnectable</H3>
    +<PRE>
    +public boolean <B>isCellConnectable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is connectable in this graph. This
    + implementation uses <mxGraphModel.isConnectable>. Subclassers can override
    + this to implement specific connectable states for cells in only one graph,
    + that is, without affecting the connectable state of the cell in the model.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose connectable state should be returned.
    +<DT><B>Returns:</B><DD>Returns the connectable state of the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isOrthogonal(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +isOrthogonal</H3>
    +<PRE>
    +public boolean <B>isOrthogonal</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD>Returns true if perimeter points should be computed such that the
    + resulting edge has only horizontal or vertical segments.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell state that represents the edge.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLoop(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +isLoop</H3>
    +<PRE>
    +public boolean <B>isLoop</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns true if the given cell state is a loop.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - <mxCellState> that represents a potential loop.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is a loop.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMultiplicities(com.mxgraph.view.mxMultiplicity[])"><!-- --></A><H3>
    +setMultiplicities</H3>
    +<PRE>
    +public void <B>setMultiplicities</B>(<A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>[]&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMultiplicities()"><!-- --></A><H3>
    +getMultiplicities</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>[] <B>getMultiplicities</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdgeValid(java.lang.Object, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +isEdgeValid</H3>
    +<PRE>
    +public boolean <B>isEdgeValid</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Checks if the return value of getEdgeValidationError for the given
    + arguments is null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that represents the edge to validate.<DD><CODE>source</CODE> - Cell that represents the source terminal.<DD><CODE>target</CODE> - Cell that represents the target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeValidationError(java.lang.Object, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getEdgeValidationError</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getEdgeValidationError</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Returns the validation error message to be displayed when inserting or
    + changing an edges' connectivity. A return value of null means the edge
    + is valid, a return value of '' means it's not valid, but do not display
    + an error message. Any other (non-empty) string returned from this method
    + is displayed as an error message when trying to connect an edge to a
    + source and target. This implementation uses the multiplicities, as
    + well as multigraph and allowDanglingEdges to generate validation
    + errors.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that represents the edge to validate.<DD><CODE>source</CODE> - Cell that represents the source terminal.<DD><CODE>target</CODE> - Cell that represents the target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validateEdge(java.lang.Object, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +validateEdge</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>validateEdge</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Hook method for subclassers to return an error message for the given
    + edge and terminals. This implementation returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell that represents the edge to validate.<DD><CODE>source</CODE> - Cell that represents the source terminal.<DD><CODE>target</CODE> - Cell that represents the target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellValidationError(java.lang.Object)"><!-- --></A><H3>
    +getCellValidationError</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getCellValidationError</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Checks all multiplicities that cannot be enforced while the graph is
    + being modified, namely, all multiplicities that require a minimum of
    + 1 edge.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell for which the multiplicities should be checked.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validateCell(java.lang.Object, java.util.Hashtable)"><!-- --></A><H3>
    +validateCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>validateCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;context)</PRE>
    +<DL>
    +<DD>Hook method for subclassers to return an error message for the given
    + cell and validation context. This implementation returns null.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that represents the cell to validate.<DD><CODE>context</CODE> - Hashtable that represents the global validation state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLabelsVisible()"><!-- --></A><H3>
    +isLabelsVisible</H3>
    +<PRE>
    +public boolean <B>isLabelsVisible</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the labelsVisible</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLabelsVisible(boolean)"><!-- --></A><H3>
    +setLabelsVisible</H3>
    +<PRE>
    +public void <B>setLabelsVisible</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the labelsVisible to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHtmlLabels(boolean)"><!-- --></A><H3>
    +setHtmlLabels</H3>
    +<PRE>
    +public void <B>setHtmlLabels</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the htmlLabels to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHtmlLabels()"><!-- --></A><H3>
    +isHtmlLabels</H3>
    +<PRE>
    +public boolean <B>isHtmlLabels</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="convertValueToString(java.lang.Object)"><!-- --></A><H3>
    +convertValueToString</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>convertValueToString</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the textual representation for the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell to be converted to a string.
    +<DT><B>Returns:</B><DD>Returns the textual representation of the cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLabel(java.lang.Object)"><!-- --></A><H3>
    +getLabel</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns a string or DOM node that represents the label for the given
    + cell. This implementation uses <convertValueToString> if <labelsVisible>
    + is true. Otherwise it returns an empty string.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> whose label should be returned.
    +<DT><B>Returns:</B><DD>Returns the label for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellLabelChanged(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +cellLabelChanged</H3>
    +<PRE>
    +public void <B>cellLabelChanged</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                             boolean&nbsp;autoSize)</PRE>
    +<DL>
    +<DD>Sets the new label for a cell. If autoSize is true then
    + <cellSizeUpdated> will be called.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose label should be changed.<DD><CODE>value</CODE> - New label to be assigned.<DD><CODE>autoSize</CODE> - Specifies if cellSizeUpdated should be called.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHtmlLabel(java.lang.Object)"><!-- --></A><H3>
    +isHtmlLabel</H3>
    +<PRE>
    +public boolean <B>isHtmlLabel</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the label must be rendered as HTML markup. The default
    + implementation returns <htmlLabels>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> whose label should be displayed as HTML markup.
    +<DT><B>Returns:</B><DD>Returns true if the given cell label is HTML markup.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getToolTipForCell(java.lang.Object)"><!-- --></A><H3>
    +getToolTipForCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getToolTipForCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the tooltip to be used for the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStartSize(java.lang.Object)"><!-- --></A><H3>
    +getStartSize</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getStartSize</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;swimlane)</PRE>
    +<DL>
    +<DD>Returns the start size of the given swimlane, that is, the width or
    + height of the part that contains the title, depending on the
    + horizontal style. The return value is an <mxRectangle> with either
    + width or height set as appropriate.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>swimlane</CODE> - <mxCell> whose start size should be returned.
    +<DT><B>Returns:</B><DD>Returns the startsize for the given swimlane.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getImage(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getImage</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getImage</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the image URL for the given cell state. This implementation
    + returns the value stored under <mxConstants.STYLE_IMAGE> in the cell
    + style.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the image associated with the given cell state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBorder()"><!-- --></A><H3>
    +getBorder</H3>
    +<PRE>
    +public int <B>getBorder</B>()</PRE>
    +<DL>
    +<DD>Returns the value of <border>.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the border.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBorder(int)"><!-- --></A><H3>
    +setBorder</H3>
    +<PRE>
    +public void <B>setBorder</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the value of <border>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Positive integer that represents the border to be used.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDefaultLoopStyle()"><!-- --></A><H3>
    +getDefaultLoopStyle</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> <B>getDefaultLoopStyle</B>()</PRE>
    +<DL>
    +<DD>Returns the default edge style used for loops.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the default loop style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDefaultLoopStyle(com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction)"><!-- --></A><H3>
    +setDefaultLoopStyle</H3>
    +<PRE>
    +public void <B>setDefaultLoopStyle</B>(<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the default style used for loops.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Default style to be used for loops.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSwimlane(java.lang.Object)"><!-- --></A><H3>
    +isSwimlane</H3>
    +<PRE>
    +public boolean <B>isSwimlane</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is a swimlane. This implementation always
    + returns false.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that should be checked.
    +<DT><B>Returns:</B><DD>Returns true if the cell is a swimlane.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellLocked(java.lang.Object)"><!-- --></A><H3>
    +isCellLocked</H3>
    +<PRE>
    +public boolean <B>isCellLocked</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell may not be moved, sized, bended,
    + disconnected, edited or selected. This implementation returns true for
    + all vertices with a relative geometry if cellsLocked is false.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose locked state should be returned.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is locked.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellsLocked()"><!-- --></A><H3>
    +isCellsLocked</H3>
    +<PRE>
    +public boolean <B>isCellsLocked</B>()</PRE>
    +<DL>
    +<DD>Returns cellsLocked, the default return value for isCellLocked.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellsLocked(boolean)"><!-- --></A><H3>
    +setCellsLocked</H3>
    +<PRE>
    +public void <B>setCellsLocked</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets cellsLocked, the default return value for isCellLocked and fires a
    + property change event for cellsLocked.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellEditable(java.lang.Object)"><!-- --></A><H3>
    +isCellEditable</H3>
    +<PRE>
    +public boolean <B>isCellEditable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is movable. This implementation returns editable.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose editable state should be returned.
    +<DT><B>Returns:</B><DD>Returns true if the cell is editable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellsEditable()"><!-- --></A><H3>
    +isCellsEditable</H3>
    +<PRE>
    +public boolean <B>isCellsEditable</B>()</PRE>
    +<DL>
    +<DD>Returns true if editing is allowed in this graph.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if the graph is editable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellsEditable(boolean)"><!-- --></A><H3>
    +setCellsEditable</H3>
    +<PRE>
    +public void <B>setCellsEditable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets if the graph is editable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellResizable(java.lang.Object)"><!-- --></A><H3>
    +isCellResizable</H3>
    +<PRE>
    +public boolean <B>isCellResizable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is resizable. This implementation returns
    + cellsSizable for all cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose resizable state should be returned.
    +<DT><B>Returns:</B><DD>Returns true if the cell is sizable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellsResizable()"><!-- --></A><H3>
    +isCellsResizable</H3>
    +<PRE>
    +public boolean <B>isCellsResizable</B>()</PRE>
    +<DL>
    +<DD>Returns true if the given cell is resizable. This implementation return sizable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellsResizable(boolean)"><!-- --></A><H3>
    +setCellsResizable</H3>
    +<PRE>
    +public void <B>setCellsResizable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets if the graph is resizable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMovableCells(java.lang.Object[])"><!-- --></A><H3>
    +getMovableCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getMovableCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the cells which are movable in the given array of cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellMovable(java.lang.Object)"><!-- --></A><H3>
    +isCellMovable</H3>
    +<PRE>
    +public boolean <B>isCellMovable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is movable. This implementation
    + returns movable.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose movable state should be returned.
    +<DT><B>Returns:</B><DD>Returns true if the cell is movable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellsMovable()"><!-- --></A><H3>
    +isCellsMovable</H3>
    +<PRE>
    +public boolean <B>isCellsMovable</B>()</PRE>
    +<DL>
    +<DD>Returns cellsMovable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellsMovable(boolean)"><!-- --></A><H3>
    +setCellsMovable</H3>
    +<PRE>
    +public void <B>setCellsMovable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets cellsMovable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isTerminalPointMovable(java.lang.Object, boolean)"><!-- --></A><H3>
    +isTerminalPointMovable</H3>
    +<PRE>
    +public boolean <B>isTerminalPointMovable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                      boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Function: isTerminalPointMovable
    +
    + Returns true if the given terminal point is movable. This is independent
    + from isCellConnectable and isCellDisconnectable and controls if terminal
    + points can be moved in the graph if the edge is not connected. Note that
    + it is required for this to return true to connect unconnected edges.
    + This implementation returns true.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose terminal point should be moved.<DD><CODE>source</CODE> - Boolean indicating if the source or target terminal should be moved.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellBendable(java.lang.Object)"><!-- --></A><H3>
    +isCellBendable</H3>
    +<PRE>
    +public boolean <B>isCellBendable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is bendable. This implementation returns
    + bendable. This is used in mxElbowEdgeHandler to determine if the middle
    + handle should be shown.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose bendable state should be returned.
    +<DT><B>Returns:</B><DD>Returns true if the cell is bendable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellsBendable()"><!-- --></A><H3>
    +isCellsBendable</H3>
    +<PRE>
    +public boolean <B>isCellsBendable</B>()</PRE>
    +<DL>
    +<DD>Returns cellsBendable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellsBendable(boolean)"><!-- --></A><H3>
    +setCellsBendable</H3>
    +<PRE>
    +public void <B>setCellsBendable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets cellsBendable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellSelectable(java.lang.Object)"><!-- --></A><H3>
    +isCellSelectable</H3>
    +<PRE>
    +public boolean <B>isCellSelectable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is selectable. This implementation returns
    + <selectable>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> whose selectable state should be returned.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is selectable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellsSelectable()"><!-- --></A><H3>
    +isCellsSelectable</H3>
    +<PRE>
    +public boolean <B>isCellsSelectable</B>()</PRE>
    +<DL>
    +<DD>Returns cellsSelectable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellsSelectable(boolean)"><!-- --></A><H3>
    +setCellsSelectable</H3>
    +<PRE>
    +public void <B>setCellsSelectable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets cellsSelectable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDeletableCells(java.lang.Object[])"><!-- --></A><H3>
    +getDeletableCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getDeletableCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the cells which are movable in the given array of cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellDeletable(java.lang.Object)"><!-- --></A><H3>
    +isCellDeletable</H3>
    +<PRE>
    +public boolean <B>isCellDeletable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is movable. This implementation always
    + returns true.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose movable state should be returned.
    +<DT><B>Returns:</B><DD>Returns true if the cell is movable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellsDeletable()"><!-- --></A><H3>
    +isCellsDeletable</H3>
    +<PRE>
    +public boolean <B>isCellsDeletable</B>()</PRE>
    +<DL>
    +<DD>Returns cellsDeletable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellsDeletable(boolean)"><!-- --></A><H3>
    +setCellsDeletable</H3>
    +<PRE>
    +public void <B>setCellsDeletable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets cellsDeletable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCloneableCells(java.lang.Object[])"><!-- --></A><H3>
    +getCloneableCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCloneableCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the cells which are movable in the given array of cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellCloneable(java.lang.Object)"><!-- --></A><H3>
    +isCellCloneable</H3>
    +<PRE>
    +public boolean <B>isCellCloneable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the constant true. This does not use the cloneable field to
    + return a value for a given cell, it is simply a hook for subclassers
    + to disallow cloning of individual cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellsCloneable()"><!-- --></A><H3>
    +isCellsCloneable</H3>
    +<PRE>
    +public boolean <B>isCellsCloneable</B>()</PRE>
    +<DL>
    +<DD>Returns cellsCloneable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellsCloneable(boolean)"><!-- --></A><H3>
    +setCellsCloneable</H3>
    +<PRE>
    +public void <B>setCellsCloneable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Specifies if the graph should allow cloning of cells by holding down the
    + control key while cells are being moved. This implementation updates
    + cellsCloneable.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Boolean indicating if the graph should be cloneable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellDisconnectable(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +isCellDisconnectable</H3>
    +<PRE>
    +public boolean <B>isCellDisconnectable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                                    boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is disconnectable from the source or
    + target terminal. This returns <disconnectable> for all given cells if
    + <isLocked> does not return true for the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> whose disconnectable state should be returned.<DD><CODE>terminal</CODE> - <mxCell> that represents the source or target terminal.<DD><CODE>source</CODE> - Boolean indicating if the source or target terminal is to be
    + disconnected.
    +<DT><B>Returns:</B><DD>Returns true if the given edge can be disconnected from the given
    + terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellsDisconnectable()"><!-- --></A><H3>
    +isCellsDisconnectable</H3>
    +<PRE>
    +public boolean <B>isCellsDisconnectable</B>()</PRE>
    +<DL>
    +<DD>Returns cellsDisconnectable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCellsDisconnectable(boolean)"><!-- --></A><H3>
    +setCellsDisconnectable</H3>
    +<PRE>
    +public void <B>setCellsDisconnectable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets cellsDisconnectable.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Boolean indicating if the graph should allow disconnecting of
    + edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLabelClipped(java.lang.Object)"><!-- --></A><H3>
    +isLabelClipped</H3>
    +<PRE>
    +public boolean <B>isLabelClipped</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the overflow portion of labels should be hidden. If this
    + returns true then vertex labels will be clipped to the size of the vertices.
    + This implementation returns true if <mxConstants.STYLE_OVERFLOW> in the
    + style of the given cell is "hidden".
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose label should be clipped.
    +<DT><B>Returns:</B><DD>Returns true if the cell label should be clipped.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLabelsClipped()"><!-- --></A><H3>
    +isLabelsClipped</H3>
    +<PRE>
    +public boolean <B>isLabelsClipped</B>()</PRE>
    +<DL>
    +<DD>Returns labelsClipped.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setLabelsClipped(boolean)"><!-- --></A><H3>
    +setLabelsClipped</H3>
    +<PRE>
    +public void <B>setLabelsClipped</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets labelsClipped.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isLabelMovable(java.lang.Object)"><!-- --></A><H3>
    +isLabelMovable</H3>
    +<PRE>
    +public boolean <B>isLabelMovable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given edges's label is moveable. This returns
    + <movable> for all given cells if <isLocked> does not return true
    + for the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> whose label should be moved.
    +<DT><B>Returns:</B><DD>Returns true if the label of the given cell is movable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isVertexLabelsMovable()"><!-- --></A><H3>
    +isVertexLabelsMovable</H3>
    +<PRE>
    +public boolean <B>isVertexLabelsMovable</B>()</PRE>
    +<DL>
    +<DD>Returns vertexLabelsMovable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setVertexLabelsMovable(boolean)"><!-- --></A><H3>
    +setVertexLabelsMovable</H3>
    +<PRE>
    +public void <B>setVertexLabelsMovable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets vertexLabelsMovable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEdgeLabelsMovable()"><!-- --></A><H3>
    +isEdgeLabelsMovable</H3>
    +<PRE>
    +public boolean <B>isEdgeLabelsMovable</B>()</PRE>
    +<DL>
    +<DD>Returns edgeLabelsMovable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEdgeLabelsMovable(boolean)"><!-- --></A><H3>
    +setEdgeLabelsMovable</H3>
    +<PRE>
    +public void <B>setEdgeLabelsMovable</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Returns edgeLabelsMovable.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD>Returns true if the graph is <enabled>.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if the graph is enabled.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Specifies if the graph should allow any interactions. This
    + implementation updates <enabled>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Boolean indicating if the graph should be enabled.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDropEnabled()"><!-- --></A><H3>
    +isDropEnabled</H3>
    +<PRE>
    +public boolean <B>isDropEnabled</B>()</PRE>
    +<DL>
    +<DD>Returns true if the graph allows drop into other cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDropEnabled(boolean)"><!-- --></A><H3>
    +setDropEnabled</H3>
    +<PRE>
    +public void <B>setDropEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets dropEnabled.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSplitEnabled()"><!-- --></A><H3>
    +isSplitEnabled</H3>
    +<PRE>
    +public boolean <B>isSplitEnabled</B>()</PRE>
    +<DL>
    +<DD>Affects the return values of isValidDropTarget to allow for edges as
    + drop targets. The splitEdge method is called in mxGraphHandler if
    + mxGraphComponent.isSplitEvent returns true for a given configuration.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSplitEnabled(boolean)"><!-- --></A><H3>
    +setSplitEnabled</H3>
    +<PRE>
    +public void <B>setSplitEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets splitEnabled.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isMultigraph()"><!-- --></A><H3>
    +isMultigraph</H3>
    +<PRE>
    +public boolean <B>isMultigraph</B>()</PRE>
    +<DL>
    +<DD>Returns multigraph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMultigraph(boolean)"><!-- --></A><H3>
    +setMultigraph</H3>
    +<PRE>
    +public void <B>setMultigraph</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets multigraph.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSwimlaneNesting()"><!-- --></A><H3>
    +isSwimlaneNesting</H3>
    +<PRE>
    +public boolean <B>isSwimlaneNesting</B>()</PRE>
    +<DL>
    +<DD>Returns swimlaneNesting.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSwimlaneNesting(boolean)"><!-- --></A><H3>
    +setSwimlaneNesting</H3>
    +<PRE>
    +public void <B>setSwimlaneNesting</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets swimlaneNesting.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAllowDanglingEdges()"><!-- --></A><H3>
    +isAllowDanglingEdges</H3>
    +<PRE>
    +public boolean <B>isAllowDanglingEdges</B>()</PRE>
    +<DL>
    +<DD>Returns allowDanglingEdges
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAllowDanglingEdges(boolean)"><!-- --></A><H3>
    +setAllowDanglingEdges</H3>
    +<PRE>
    +public void <B>setAllowDanglingEdges</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets allowDanglingEdges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCloneInvalidEdges()"><!-- --></A><H3>
    +isCloneInvalidEdges</H3>
    +<PRE>
    +public boolean <B>isCloneInvalidEdges</B>()</PRE>
    +<DL>
    +<DD>Returns cloneInvalidEdges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCloneInvalidEdges(boolean)"><!-- --></A><H3>
    +setCloneInvalidEdges</H3>
    +<PRE>
    +public void <B>setCloneInvalidEdges</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets cloneInvalidEdge.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isDisconnectOnMove()"><!-- --></A><H3>
    +isDisconnectOnMove</H3>
    +<PRE>
    +public boolean <B>isDisconnectOnMove</B>()</PRE>
    +<DL>
    +<DD>Returns disconnectOnMove
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDisconnectOnMove(boolean)"><!-- --></A><H3>
    +setDisconnectOnMove</H3>
    +<PRE>
    +public void <B>setDisconnectOnMove</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets disconnectOnMove.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAllowLoops()"><!-- --></A><H3>
    +isAllowLoops</H3>
    +<PRE>
    +public boolean <B>isAllowLoops</B>()</PRE>
    +<DL>
    +<DD>Returns allowLoops.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAllowLoops(boolean)"><!-- --></A><H3>
    +setAllowLoops</H3>
    +<PRE>
    +public void <B>setAllowLoops</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets allowLoops.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConnectableEdges()"><!-- --></A><H3>
    +isConnectableEdges</H3>
    +<PRE>
    +public boolean <B>isConnectableEdges</B>()</PRE>
    +<DL>
    +<DD>Returns connectableEdges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setConnectableEdges(boolean)"><!-- --></A><H3>
    +setConnectableEdges</H3>
    +<PRE>
    +public void <B>setConnectableEdges</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets connetableEdges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResetEdgesOnMove()"><!-- --></A><H3>
    +isResetEdgesOnMove</H3>
    +<PRE>
    +public boolean <B>isResetEdgesOnMove</B>()</PRE>
    +<DL>
    +<DD>Returns resetEdgesOnMove.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResetEdgesOnMove(boolean)"><!-- --></A><H3>
    +setResetEdgesOnMove</H3>
    +<PRE>
    +public void <B>setResetEdgesOnMove</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets resetEdgesOnMove.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResetViewOnRootChange()"><!-- --></A><H3>
    +isResetViewOnRootChange</H3>
    +<PRE>
    +public boolean <B>isResetViewOnRootChange</B>()</PRE>
    +<DL>
    +<DD>Returns resetViewOnRootChange.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResetViewOnRootChange(boolean)"><!-- --></A><H3>
    +setResetViewOnRootChange</H3>
    +<PRE>
    +public void <B>setResetViewOnRootChange</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets resetEdgesOnResize.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResetEdgesOnResize()"><!-- --></A><H3>
    +isResetEdgesOnResize</H3>
    +<PRE>
    +public boolean <B>isResetEdgesOnResize</B>()</PRE>
    +<DL>
    +<DD>Returns resetEdgesOnResize.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResetEdgesOnResize(boolean)"><!-- --></A><H3>
    +setResetEdgesOnResize</H3>
    +<PRE>
    +public void <B>setResetEdgesOnResize</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets resetEdgesOnResize.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResetEdgesOnConnect()"><!-- --></A><H3>
    +isResetEdgesOnConnect</H3>
    +<PRE>
    +public boolean <B>isResetEdgesOnConnect</B>()</PRE>
    +<DL>
    +<DD>Returns resetEdgesOnConnect.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResetEdgesOnConnect(boolean)"><!-- --></A><H3>
    +setResetEdgesOnConnect</H3>
    +<PRE>
    +public void <B>setResetEdgesOnConnect</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets resetEdgesOnConnect.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAutoSizeCell(java.lang.Object)"><!-- --></A><H3>
    +isAutoSizeCell</H3>
    +<PRE>
    +public boolean <B>isAutoSizeCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the size of the given cell should automatically be
    + updated after a change of the label. This implementation returns
    + autoSize for all given cells or checks if the cell style does specify
    + mxConstants.STYLE_AUTOSIZE to be 1.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that should be resized.
    +<DT><B>Returns:</B><DD>Returns true if the size of the given cell should be updated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAutoSizeCells()"><!-- --></A><H3>
    +isAutoSizeCells</H3>
    +<PRE>
    +public boolean <B>isAutoSizeCells</B>()</PRE>
    +<DL>
    +<DD>Returns true if the size of the given cell should automatically be
    + updated after a change of the label. This implementation returns
    + autoSize for all given cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAutoSizeCells(boolean)"><!-- --></A><H3>
    +setAutoSizeCells</H3>
    +<PRE>
    +public void <B>setAutoSizeCells</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Specifies if cell sizes should be automatically updated after a label
    + change. This implementation sets autoSize to the given parameter.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Boolean indicating if cells should be resized
    + automatically.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isExtendParent(java.lang.Object)"><!-- --></A><H3>
    +isExtendParent</H3>
    +<PRE>
    +public boolean <B>isExtendParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the parent of the given cell should be extended if the
    + child has been resized so that it overlaps the parent. This
    + implementation returns ExtendParents if cell is not an edge.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell that has been resized.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isExtendParents()"><!-- --></A><H3>
    +isExtendParents</H3>
    +<PRE>
    +public boolean <B>isExtendParents</B>()</PRE>
    +<DL>
    +<DD>Returns extendParents.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setExtendParents(boolean)"><!-- --></A><H3>
    +setExtendParents</H3>
    +<PRE>
    +public void <B>setExtendParents</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets extendParents.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isExtendParentsOnAdd()"><!-- --></A><H3>
    +isExtendParentsOnAdd</H3>
    +<PRE>
    +public boolean <B>isExtendParentsOnAdd</B>()</PRE>
    +<DL>
    +<DD>Returns extendParentsOnAdd.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setExtendParentsOnAdd(boolean)"><!-- --></A><H3>
    +setExtendParentsOnAdd</H3>
    +<PRE>
    +public void <B>setExtendParentsOnAdd</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets extendParentsOnAdd.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConstrainChild(java.lang.Object)"><!-- --></A><H3>
    +isConstrainChild</H3>
    +<PRE>
    +public boolean <B>isConstrainChild</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell should be kept inside the bounds of its
    + parent according to the rules defined by getOverlap and
    + isAllowOverlapParent. This implementation returns false for all children
    + of edges and isConstrainChildren() otherwise.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isConstrainChildren()"><!-- --></A><H3>
    +isConstrainChildren</H3>
    +<PRE>
    +public boolean <B>isConstrainChildren</B>()</PRE>
    +<DL>
    +<DD>Returns constrainChildren.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the keepInsideParentOnMove</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setConstrainChildren(boolean)"><!-- --></A><H3>
    +setConstrainChildren</H3>
    +<PRE>
    +public void <B>setConstrainChildren</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the constrainChildren to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAutoOrigin()"><!-- --></A><H3>
    +isAutoOrigin</H3>
    +<PRE>
    +public boolean <B>isAutoOrigin</B>()</PRE>
    +<DL>
    +<DD>Returns autoOrigin.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAutoOrigin(boolean)"><!-- --></A><H3>
    +setAutoOrigin</H3>
    +<PRE>
    +public void <B>setAutoOrigin</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the autoOrigin to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOrigin()"><!-- --></A><H3>
    +getOrigin</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getOrigin</B>()</PRE>
    +<DL>
    +<DD>Returns origin.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setOrigin(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setOrigin</H3>
    +<PRE>
    +public void <B>setOrigin</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the origin to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChangesRepaintThreshold()"><!-- --></A><H3>
    +getChangesRepaintThreshold</H3>
    +<PRE>
    +public int <B>getChangesRepaintThreshold</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns changesRepaintThreshold.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setChangesRepaintThreshold(int)"><!-- --></A><H3>
    +setChangesRepaintThreshold</H3>
    +<PRE>
    +public void <B>setChangesRepaintThreshold</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the changesRepaintThreshold to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAllowNegativeCoordinates()"><!-- --></A><H3>
    +isAllowNegativeCoordinates</H3>
    +<PRE>
    +public boolean <B>isAllowNegativeCoordinates</B>()</PRE>
    +<DL>
    +<DD>Returns isAllowNegativeCoordinates.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the allowNegativeCoordinates</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAllowNegativeCoordinates(boolean)"><!-- --></A><H3>
    +setAllowNegativeCoordinates</H3>
    +<PRE>
    +public void <B>setAllowNegativeCoordinates</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the allowNegativeCoordinates to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCollapseToPreferredSize()"><!-- --></A><H3>
    +isCollapseToPreferredSize</H3>
    +<PRE>
    +public boolean <B>isCollapseToPreferredSize</B>()</PRE>
    +<DL>
    +<DD>Returns collapseToPreferredSize.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the collapseToPreferredSize</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCollapseToPreferredSize(boolean)"><!-- --></A><H3>
    +setCollapseToPreferredSize</H3>
    +<PRE>
    +public void <B>setCollapseToPreferredSize</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the collapseToPreferredSize to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isKeepEdgesInForeground()"><!-- --></A><H3>
    +isKeepEdgesInForeground</H3>
    +<PRE>
    +public boolean <B>isKeepEdgesInForeground</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if edges are rendered in the foreground.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeepEdgesInForeground(boolean)"><!-- --></A><H3>
    +setKeepEdgesInForeground</H3>
    +<PRE>
    +public void <B>setKeepEdgesInForeground</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the keepEdgesInForeground to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isKeepEdgesInBackground()"><!-- --></A><H3>
    +isKeepEdgesInBackground</H3>
    +<PRE>
    +public boolean <B>isKeepEdgesInBackground</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if edges are rendered in the background.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setKeepEdgesInBackground(boolean)"><!-- --></A><H3>
    +setKeepEdgesInBackground</H3>
    +<PRE>
    +public void <B>setKeepEdgesInBackground</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the keepEdgesInBackground to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isValidSource(java.lang.Object)"><!-- --></A><H3>
    +isValidSource</H3>
    +<PRE>
    +public boolean <B>isValidSource</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is a valid source for new connections.
    + This implementation returns true for all non-null values and is
    + called by is called by <isValidConnection>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Object that represents a possible source or null.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is a valid source terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isValidTarget(java.lang.Object)"><!-- --></A><H3>
    +isValidTarget</H3>
    +<PRE>
    +public boolean <B>isValidTarget</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns isValidSource for the given cell. This is called by
    + isValidConnection.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Object that represents a possible target or null.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is a valid target.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isValidConnection(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +isValidConnection</H3>
    +<PRE>
    +public boolean <B>isValidConnection</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Returns true if the given target cell is a valid target for source.
    + This is a boolean implementation for not allowing connections between
    + certain pairs of vertices and is called by <getEdgeValidationError>.
    + This implementation returns true if <isValidSource> returns true for
    + the source and <isValidTarget> returns true for the target.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>source</CODE> - Object that represents the source cell.<DD><CODE>target</CODE> - Object that represents the target cell.
    +<DT><B>Returns:</B><DD>Returns true if the the connection between the given terminals
    + is valid.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMinimumGraphSize()"><!-- --></A><H3>
    +getMinimumGraphSize</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getMinimumGraphSize</B>()</PRE>
    +<DL>
    +<DD>Returns the minimum size of the diagram.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the minimum container size.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setMinimumGraphSize(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +setMinimumGraphSize</H3>
    +<PRE>
    +public void <B>setMinimumGraphSize</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the minimumGraphSize to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOverlap(java.lang.Object)"><!-- --></A><H3>
    +getOverlap</H3>
    +<PRE>
    +public double <B>getOverlap</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns a decimal number representing the amount of the width and height
    + of the given cell that is allowed to overlap its parent. A value of 0
    + means all children must stay inside the parent, 1 means the child is
    + allowed to be placed outside of the parent such that it touches one of
    + the parents sides. If <isAllowOverlapParent> returns false for the given
    + cell, then this method returns 0.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the overlapping value for the given cell inside its
    + parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDefaultOverlap()"><!-- --></A><H3>
    +getDefaultOverlap</H3>
    +<PRE>
    +public double <B>getDefaultOverlap</B>()</PRE>
    +<DL>
    +<DD>Gets defaultOverlap.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDefaultOverlap(double)"><!-- --></A><H3>
    +setDefaultOverlap</H3>
    +<PRE>
    +public void <B>setDefaultOverlap</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets defaultOverlap.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAllowOverlapParent(java.lang.Object)"><!-- --></A><H3>
    +isAllowOverlapParent</H3>
    +<PRE>
    +public boolean <B>isAllowOverlapParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is allowed to be placed outside of the
    + parents area.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given cell may overlap its parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFoldableCells(java.lang.Object[], boolean)"><!-- --></A><H3>
    +getFoldableCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getFoldableCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                                 boolean&nbsp;collapse)</PRE>
    +<DL>
    +<DD>Returns the cells which are movable in the given array of cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellFoldable(java.lang.Object, boolean)"><!-- --></A><H3>
    +isCellFoldable</H3>
    +<PRE>
    +public boolean <B>isCellFoldable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                              boolean&nbsp;collapse)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is expandable. This implementation
    + returns true if the cell has at least one child and its style
    + does not specify mxConstants.STYLE_FOLDABLE to be 0.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <mxCell> whose expandable state should be returned.
    +<DT><B>Returns:</B><DD>Returns true if the given cell is expandable.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isGridEnabled()"><!-- --></A><H3>
    +isGridEnabled</H3>
    +<PRE>
    +public boolean <B>isGridEnabled</B>()</PRE>
    +<DL>
    +<DD>Returns true if the grid is enabled.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the enabled state of the grid.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGridEnabled(boolean)"><!-- --></A><H3>
    +setGridEnabled</H3>
    +<PRE>
    +public void <B>setGridEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets if the grid is enabled.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Specifies if the grid should be enabled.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGridSize()"><!-- --></A><H3>
    +getGridSize</H3>
    +<PRE>
    +public int <B>getGridSize</B>()</PRE>
    +<DL>
    +<DD>Returns the grid size.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the grid size</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGridSize(int)"><!-- --></A><H3>
    +setGridSize</H3>
    +<PRE>
    +public void <B>setGridSize</B>(int&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the grid size and fires a property change event for gridSize.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - New grid size to be used.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getAlternateEdgeStyle()"><!-- --></A><H3>
    +getAlternateEdgeStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getAlternateEdgeStyle</B>()</PRE>
    +<DL>
    +<DD>Returns alternateEdgeStyle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAlternateEdgeStyle(java.lang.String)"><!-- --></A><H3>
    +setAlternateEdgeStyle</H3>
    +<PRE>
    +public void <B>setAlternateEdgeStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets alternateEdgeStyle.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isValidDropTarget(java.lang.Object, java.lang.Object[])"><!-- --></A><H3>
    +isValidDropTarget</H3>
    +<PRE>
    +public boolean <B>isValidDropTarget</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is a valid drop target for the specified
    + cells. This returns true if the cell is a swimlane, has children and is
    + not collapsed, or if splitEnabled is true and isSplitTarget returns
    + true for the given arguments
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Object that represents the possible drop target.<DD><CODE>cells</CODE> - Objects that are going to be dropped.
    +<DT><B>Returns:</B><DD>Returns true if the cell is a valid drop target for the given
    + cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSplitTarget(java.lang.Object, java.lang.Object[])"><!-- --></A><H3>
    +isSplitTarget</H3>
    +<PRE>
    +public boolean <B>isSplitTarget</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns true if split is enabled and the given edge may be splitted into
    + two edges with the given cell as a new terminal between the two.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>target</CODE> - Object that represents the edge to be splitted.<DD><CODE>cells</CODE> - Array of cells to add into the given edge.
    +<DT><B>Returns:</B><DD>Returns true if the given edge may be splitted by the given
    + cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDropTarget(java.lang.Object[], java.awt.Point, java.lang.Object)"><!-- --></A><H3>
    +getDropTarget</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getDropTarget</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;pt,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the given cell if it is a drop target for the given cells or the
    + nearest ancestor that may be used as a drop target for the given cells.
    + If the given array contains a swimlane and swimlaneNesting is false
    + then this always returns null. If no cell is given, then the bottommost
    + swimlane at the location of the given event is returned.
    + 
    + This function should only be used if isDropEnabled returns true.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDefaultParent()"><!-- --></A><H3>
    +getDefaultParent</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getDefaultParent</B>()</PRE>
    +<DL>
    +<DD>Returns the first child of the root in the model, that is, the first or
    + default layer of the diagram.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the default parent for new cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDefaultParent(java.lang.Object)"><!-- --></A><H3>
    +setDefaultParent</H3>
    +<PRE>
    +public void <B>setDefaultParent</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the default parent to be returned by getDefaultParent.
    + Set this to null to return the first child of the root in
    + getDefaultParent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildVertices(java.lang.Object)"><!-- --></A><H3>
    +getChildVertices</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getChildVertices</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns the visible child vertices of the given parent.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell whose children should be returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildEdges(java.lang.Object)"><!-- --></A><H3>
    +getChildEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getChildEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns the visible child edges of the given parent.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell whose children should be returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildCells(java.lang.Object)"><!-- --></A><H3>
    +getChildCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getChildCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns the visible children of the given parent.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell whose children should be returned.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getChildCells(java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +getChildCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getChildCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                              boolean&nbsp;vertices,
    +                              boolean&nbsp;edges)</PRE>
    +<DL>
    +<DD>Returns the visible child vertices or edges in the given parent. If
    + vertices and edges is false, then all children are returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell whose children should be returned.<DD><CODE>vertices</CODE> - Specifies if child vertices should be returned.<DD><CODE>edges</CODE> - Specifies if child edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the child vertices and edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnections(java.lang.Object)"><!-- --></A><H3>
    +getConnections</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getConnections</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns all visible edges connected to the given cell without loops.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose connections should be returned.
    +<DT><B>Returns:</B><DD>Returns the connected edges for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnections(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getConnections</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getConnections</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns all visible edges connected to the given cell without loops.
    + If the optional parent argument is specified, then only child
    + edges of the given parent are returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose connections should be returned.<DD><CODE>parent</CODE> - Optional parent of the opposite end for a connection
    + to be returned.
    +<DT><B>Returns:</B><DD>Returns the connected edges for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getConnections(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +getConnections</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getConnections</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                               boolean&nbsp;recurse)</PRE>
    +<DL>
    +<DD>Returns all visible edges connected to the given cell without loops.
    + If the optional parent argument is specified, then only child
    + edges of the given parent are returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose connections should be returned.<DD><CODE>parent</CODE> - Optional parent of the opposite end for a connection
    + to be returned.
    +<DT><B>Returns:</B><DD>Returns the connected edges for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIncomingEdges(java.lang.Object)"><!-- --></A><H3>
    +getIncomingEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getIncomingEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns all incoming visible edges connected to the given cell without
    + loops.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose incoming edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the incoming edges of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getIncomingEdges(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getIncomingEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getIncomingEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns the visible incoming edges for the given cell. If the optional
    + parent argument is specified, then only child edges of the given parent
    + are returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose incoming edges should be returned.<DD><CODE>parent</CODE> - Optional parent of the opposite end for an edge
    + to be returned.
    +<DT><B>Returns:</B><DD>Returns the incoming edges of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOutgoingEdges(java.lang.Object)"><!-- --></A><H3>
    +getOutgoingEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getOutgoingEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns all outgoing visible edges connected to the given cell without
    + loops.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose outgoing edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the outgoing edges of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOutgoingEdges(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getOutgoingEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getOutgoingEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                                 <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns the visible outgoing edges for the given cell. If the optional
    + parent argument is specified, then only child edges of the given parent
    + are returned.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose outgoing edges should be returned.<DD><CODE>parent</CODE> - Optional parent of the opposite end for an edge
    + to be returned.
    +<DT><B>Returns:</B><DD>Returns the outgoing edges of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdges(java.lang.Object)"><!-- --></A><H3>
    +getEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns all visible edges connected to the given cell including loops.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose edges should be returned.
    +<DT><B>Returns:</B><DD>Returns the edges of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdges(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns all visible edges connected to the given cell including loops.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose edges should be returned.<DD><CODE>parent</CODE> - Optional parent of the opposite end for an edge
    + to be returned.
    +<DT><B>Returns:</B><DD>Returns the edges of the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdges(java.lang.Object, java.lang.Object, boolean, boolean, boolean)"><!-- --></A><H3>
    +getEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                         boolean&nbsp;incoming,
    +                         boolean&nbsp;outgoing,
    +                         boolean&nbsp;includeLoops)</PRE>
    +<DL>
    +<DD>Returns the incoming and/or outgoing edges for the given cell.
    + If the optional parent argument is specified, then only edges are returned
    + where the opposite is in the given parent cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose edges should be returned.<DD><CODE>parent</CODE> - Optional parent. If specified the opposite end of any edge
    + must be a direct child of that parent in order for the edge to be returned.<DD><CODE>incoming</CODE> - Specifies if incoming edges should be included in the
    + result.<DD><CODE>outgoing</CODE> - Specifies if outgoing edges should be included in the
    + result.<DD><CODE>includeLoops</CODE> - Specifies if loops should be included in the result.
    +<DT><B>Returns:</B><DD>Returns the edges connected to the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdges(java.lang.Object, java.lang.Object, boolean, boolean, boolean, boolean)"><!-- --></A><H3>
    +getEdges</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                         boolean&nbsp;incoming,
    +                         boolean&nbsp;outgoing,
    +                         boolean&nbsp;includeLoops,
    +                         boolean&nbsp;recurse)</PRE>
    +<DL>
    +<DD>Returns the incoming and/or outgoing edges for the given cell.
    + If the optional parent argument is specified, then only edges are returned
    + where the opposite is in the given parent cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose edges should be returned.<DD><CODE>parent</CODE> - Optional parent. If specified the opposite end of any edge
    + must be a child of that parent in order for the edge to be returned. The
    + recurse parameter specifies whether or not it must be the direct child
    + or the parent just be an ancestral parent.<DD><CODE>incoming</CODE> - Specifies if incoming edges should be included in the
    + result.<DD><CODE>outgoing</CODE> - Specifies if outgoing edges should be included in the
    + result.<DD><CODE>includeLoops</CODE> - Specifies if loops should be included in the result.<DD><CODE>recurse</CODE> - Specifies if the parent specified only need be an ancestral
    + parent, <code>true</code>, or the direct parent, <code>false</code>
    +<DT><B>Returns:</B><DD>Returns the edges connected to the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isValidAncestor(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +isValidAncestor</H3>
    +<PRE>
    +public boolean <B>isValidAncestor</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                               boolean&nbsp;recurse)</PRE>
    +<DL>
    +<DD>Returns whether or not the specified parent is a valid
    + ancestor of the specified cell, either direct or indirectly
    + based on whether ancestor recursion is enabled.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - the possible child cell<DD><CODE>parent</CODE> - the possible parent cell<DD><CODE>recurse</CODE> - whether or not to recurse the child ancestors
    +<DT><B>Returns:</B><DD>whether or not the specified parent is a valid
    + ancestor of the specified cell, either direct or indirectly
    + based on whether ancestor recursion is enabled.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOpposites(java.lang.Object[], java.lang.Object)"><!-- --></A><H3>
    +getOpposites</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getOpposites</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal)</PRE>
    +<DL>
    +<DD>Returns all distinct visible opposite cells of the terminal on the given
    + edges.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edges</CODE> - <DD><CODE>terminal</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the terminals at the opposite ends of the given edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getOpposites(java.lang.Object[], java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +getOpposites</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getOpposites</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;edges,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                             boolean&nbsp;sources,
    +                             boolean&nbsp;targets)</PRE>
    +<DL>
    +<DD>Returns all distincts visible opposite cells for the specified terminal
    + on the given edges.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edges</CODE> - Edges whose opposite terminals should be returned.<DD><CODE>terminal</CODE> - Terminal that specifies the end whose opposite should be
    + returned.<DD><CODE>sources</CODE> - Specifies if source terminals should be included in the
    + result.<DD><CODE>targets</CODE> - Specifies if targer terminals should be included in the
    + result.
    +<DT><B>Returns:</B><DD>Returns the cells at the oppsite ends of the given edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgesBetween(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getEdgesBetween</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdgesBetween</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Returns the edges between the given source and target. This takes into
    + account collapsed and invisible cells and returns the connected edges
    + as displayed on the screen.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>source</CODE> - <DD><CODE>target</CODE> - 
    +<DT><B>Returns:</B><DD>Returns all edges between the given terminals.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgesBetween(java.lang.Object, java.lang.Object, boolean)"><!-- --></A><H3>
    +getEdgesBetween</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getEdgesBetween</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                                boolean&nbsp;directed)</PRE>
    +<DL>
    +<DD>Returns the edges between the given source and target. This takes into
    + account collapsed and invisible cells and returns the connected edges
    + as displayed on the screen.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>source</CODE> - <DD><CODE>target</CODE> - <DD><CODE>directed</CODE> - 
    +<DT><B>Returns:</B><DD>Returns all edges between the given terminals.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellsBeyond(double, double, java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +getCellsBeyond</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCellsBeyond</B>(double&nbsp;x0,
    +                               double&nbsp;y0,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                               boolean&nbsp;rightHalfpane,
    +                               boolean&nbsp;bottomHalfpane)</PRE>
    +<DL>
    +<DD>Returns the children of the given parent that are contained in the
    + halfpane from the given point (x0, y0) rightwards and downwards
    + depending on rightHalfpane and bottomHalfpane.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>x0</CODE> - X-coordinate of the origin.<DD><CODE>y0</CODE> - Y-coordinate of the origin.<DD><CODE>parent</CODE> - <mxCell> whose children should be checked.<DD><CODE>rightHalfpane</CODE> - Boolean indicating if the cells in the right halfpane
    + from the origin should be returned.<DD><CODE>bottomHalfpane</CODE> - Boolean indicating if the cells in the bottom halfpane
    + from the origin should be returned.
    +<DT><B>Returns:</B><DD>Returns the cells beyond the given halfpane.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="findTreeRoots(java.lang.Object)"><!-- --></A><H3>
    +findTreeRoots</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>findTreeRoots</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Returns all visible children in the given parent which do not have
    + incoming edges. If the result is empty then the with the greatest
    + difference between incoming and outgoing edges is returned. This
    + takes into account edges that are being promoted to the given
    + root due to invisible children or collapsed cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell whose children should be checked.
    +<DT><B>Returns:</B><DD>List of tree roots in parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="findTreeRoots(java.lang.Object, boolean)"><!-- --></A><H3>
    +findTreeRoots</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>findTreeRoots</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                  boolean&nbsp;isolate)</PRE>
    +<DL>
    +<DD>Returns all visible children in the given parent which do not have
    + incoming edges. If the result is empty then the children with the
    + maximum difference between incoming and outgoing edges are returned.
    + This takes into account edges that are being promoted to the given
    + root due to invisible children or collapsed cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell whose children should be checked.<DD><CODE>isolate</CODE> - Specifies if edges should be ignored if the opposite
    + end is not a child of the given parent cell.
    +<DT><B>Returns:</B><DD>List of tree roots in parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="findTreeRoots(java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +findTreeRoots</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>findTreeRoots</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent,
    +                                  boolean&nbsp;isolate,
    +                                  boolean&nbsp;invert)</PRE>
    +<DL>
    +<DD>Returns all visible children in the given parent which do not have
    + incoming edges. If the result is empty then the children with the
    + maximum difference between incoming and outgoing edges are returned.
    + This takes into account edges that are being promoted to the given
    + root due to invisible children or collapsed cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Cell whose children should be checked.<DD><CODE>isolate</CODE> - Specifies if edges should be ignored if the opposite
    + end is not a child of the given parent cell.<DD><CODE>invert</CODE> - Specifies if outgoing or incoming edges should be counted
    + for a tree root. If false then outgoing edges will be counted.
    +<DT><B>Returns:</B><DD>List of tree roots in parent.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor)"><!-- --></A><H3>
    +traverse</H3>
    +<PRE>
    +public void <B>traverse</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +                     boolean&nbsp;directed,
    +                     <A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>&nbsp;visitor)</PRE>
    +<DL>
    +<DD>Traverses the tree starting at the given vertex. Here is how to use this
    + method for a given vertex (root) which is typically the root of a tree:
    + <code>
    + graph.traverse(root, true, new mxICellVisitor()
    + {
    +   public boolean visit(Object vertex, Object edge)
    +   {
    +     System.out.println("edge="+graph.convertValueToString(edge)+
    +       " vertex="+graph.convertValueToString(vertex));
    +     
    +     return true;
    +   }
    + });
    + </code>
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - <DD><CODE>directed</CODE> - <DD><CODE>visitor</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)"><!-- --></A><H3>
    +traverse</H3>
    +<PRE>
    +public void <B>traverse</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +                     boolean&nbsp;directed,
    +                     <A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>&nbsp;visitor,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;visited)</PRE>
    +<DL>
    +<DD>Traverses the (directed) graph invoking the given function for each
    + visited vertex and edge. The function is invoked with the current vertex
    + and the incoming edge as a parameter. This implementation makes sure
    + each vertex is only visited once. The function may return false if the
    + traversal should stop at the given vertex.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - <mxCell> that represents the vertex where the traversal starts.<DD><CODE>directed</CODE> - Optional boolean indicating if edges should only be traversed
    + from source to target. Default is true.<DD><CODE>visitor</CODE> - Visitor that takes the current vertex and the incoming edge.
    + The traversal stops if the function returns false.<DD><CODE>edge</CODE> - Optional <mxCell> that represents the incoming edge. This is
    + null for the first step of the traversal.<DD><CODE>visited</CODE> - Optional array of cell paths for the visited cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionModel()"><!-- --></A><H3>
    +getSelectionModel</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A> <B>getSelectionModel</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionCount()"><!-- --></A><H3>
    +getSelectionCount</H3>
    +<PRE>
    +public int <B>getSelectionCount</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellSelected(java.lang.Object)"><!-- --></A><H3>
    +isCellSelected</H3>
    +<PRE>
    +public boolean <B>isCellSelected</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given cell is selected.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSelectionEmpty()"><!-- --></A><H3>
    +isSelectionEmpty</H3>
    +<PRE>
    +public boolean <B>isSelectionEmpty</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns true if the selection is empty.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clearSelection()"><!-- --></A><H3>
    +clearSelection</H3>
    +<PRE>
    +public void <B>clearSelection</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionCell()"><!-- --></A><H3>
    +getSelectionCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getSelectionCell</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the selection cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSelectionCell(java.lang.Object)"><!-- --></A><H3>
    +setSelectionCell</H3>
    +<PRE>
    +public void <B>setSelectionCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getSelectionCells()"><!-- --></A><H3>
    +getSelectionCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getSelectionCells</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the selection cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSelectionCells(java.lang.Object[])"><!-- --></A><H3>
    +setSelectionCells</H3>
    +<PRE>
    +public void <B>setSelectionCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSelectionCells(java.util.Collection)"><!-- --></A><H3>
    +setSelectionCells</H3>
    +<PRE>
    +public void <B>setSelectionCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addSelectionCell(java.lang.Object)"><!-- --></A><H3>
    +addSelectionCell</H3>
    +<PRE>
    +public void <B>addSelectionCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addSelectionCells(java.lang.Object[])"><!-- --></A><H3>
    +addSelectionCells</H3>
    +<PRE>
    +public void <B>addSelectionCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeSelectionCell(java.lang.Object)"><!-- --></A><H3>
    +removeSelectionCell</H3>
    +<PRE>
    +public void <B>removeSelectionCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeSelectionCells(java.lang.Object[])"><!-- --></A><H3>
    +removeSelectionCells</H3>
    +<PRE>
    +public void <B>removeSelectionCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectNextCell()"><!-- --></A><H3>
    +selectNextCell</H3>
    +<PRE>
    +public void <B>selectNextCell</B>()</PRE>
    +<DL>
    +<DD>Selects the next cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectPreviousCell()"><!-- --></A><H3>
    +selectPreviousCell</H3>
    +<PRE>
    +public void <B>selectPreviousCell</B>()</PRE>
    +<DL>
    +<DD>Selects the previous cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectParentCell()"><!-- --></A><H3>
    +selectParentCell</H3>
    +<PRE>
    +public void <B>selectParentCell</B>()</PRE>
    +<DL>
    +<DD>Selects the parent cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectChildCell()"><!-- --></A><H3>
    +selectChildCell</H3>
    +<PRE>
    +public void <B>selectChildCell</B>()</PRE>
    +<DL>
    +<DD>Selects the first child cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectCell(boolean, boolean, boolean)"><!-- --></A><H3>
    +selectCell</H3>
    +<PRE>
    +public void <B>selectCell</B>(boolean&nbsp;isNext,
    +                       boolean&nbsp;isParent,
    +                       boolean&nbsp;isChild)</PRE>
    +<DL>
    +<DD>Selects the next, parent, first child or previous cell, if all arguments
    + are false.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>isNext</CODE> - <DD><CODE>isParent</CODE> - <DD><CODE>isChild</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectVertices()"><!-- --></A><H3>
    +selectVertices</H3>
    +<PRE>
    +public void <B>selectVertices</B>()</PRE>
    +<DL>
    +<DD>Selects all vertices inside the default parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectVertices(java.lang.Object)"><!-- --></A><H3>
    +selectVertices</H3>
    +<PRE>
    +public void <B>selectVertices</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Selects all vertices inside the given parent or the default parent
    + if no parent is given.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectEdges()"><!-- --></A><H3>
    +selectEdges</H3>
    +<PRE>
    +public void <B>selectEdges</B>()</PRE>
    +<DL>
    +<DD>Selects all vertices inside the default parent.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectEdges(java.lang.Object)"><!-- --></A><H3>
    +selectEdges</H3>
    +<PRE>
    +public void <B>selectEdges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Selects all vertices inside the given parent or the default parent
    + if no parent is given.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectCells(boolean, boolean)"><!-- --></A><H3>
    +selectCells</H3>
    +<PRE>
    +public void <B>selectCells</B>(boolean&nbsp;vertices,
    +                        boolean&nbsp;edges)</PRE>
    +<DL>
    +<DD>Selects all vertices and/or edges depending on the given boolean
    + arguments recursively, starting at the default parent. Use
    + <code>selectAll</code> to select all cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertices</CODE> - Boolean indicating if vertices should be selected.<DD><CODE>edges</CODE> - Boolean indicating if edges should be selected.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectCells(boolean, boolean, java.lang.Object)"><!-- --></A><H3>
    +selectCells</H3>
    +<PRE>
    +public void <B>selectCells</B>(boolean&nbsp;vertices,
    +                        boolean&nbsp;edges,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Selects all vertices and/or edges depending on the given boolean
    + arguments recursively, starting at the given parent or the default
    + parent if no parent is specified. Use <code>selectAll</code> to select
    + all cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertices</CODE> - Boolean indicating if vertices should be selected.<DD><CODE>edges</CODE> - Boolean indicating if edges should be selected.<DD><CODE>parent</CODE> - Optional cell that acts as the root of the recursion.
    + Default is <code>defaultParent</code>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectAll()"><!-- --></A><H3>
    +selectAll</H3>
    +<PRE>
    +public void <B>selectAll</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="selectAll(java.lang.Object)"><!-- --></A><H3>
    +selectAll</H3>
    +<PRE>
    +public void <B>selectAll</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD>Selects all children of the given parent cell or the children of the
    + default parent if no parent is specified. To select leaf vertices and/or
    + edges use <selectCells>.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parent</CODE> - Optional <mxCell> whose children should be selected.
    + Default is <defaultParent>.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawGraph(com.mxgraph.canvas.mxICanvas)"><!-- --></A><H3>
    +drawGraph</H3>
    +<PRE>
    +public void <B>drawGraph</B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas)</PRE>
    +<DL>
    +<DD>Draws the graph onto the given canvas.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>canvas</CODE> - Canvas onto which the graph should be drawn.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawCell(com.mxgraph.canvas.mxICanvas, java.lang.Object)"><!-- --></A><H3>
    +drawCell</H3>
    +<PRE>
    +public void <B>drawCell</B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +                     <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Draws the given cell and its descendants onto the specified canvas.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>canvas</CODE> - Canvas onto which the cell should be drawn.<DD><CODE>cell</CODE> - Cell that should be drawn onto the canvas.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="drawState(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +drawState</H3>
    +<PRE>
    +public void <B>drawState</B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +                      <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                      boolean&nbsp;drawLabel)</PRE>
    +<DL>
    +<DD>Draws the cell state with the given label onto the canvas. No
    + children or descendants are painted here. This method invokes
    + cellDrawn after the cell, but not its descendants have been
    + painted.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>canvas</CODE> - Canvas onto which the cell should be drawn.<DD><CODE>state</CODE> - State of the cell to be drawn.<DD><CODE>drawLabel</CODE> - Indicates if the label should be drawn.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +cellDrawn</H3>
    +<PRE>
    +protected void <B>cellDrawn</B>(<A HREF="../../../com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>&nbsp;canvas,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;element,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;labelElement)</PRE>
    +<DL>
    +<DD>Called when a cell has been painted as the specified object, typically a
    + DOM node that represents the given cell graphically in a document.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLinkForCell(java.lang.Object)"><!-- --></A><H3>
    +getLinkForCell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getLinkForCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the hyperlink to be used for the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTargetForCell(java.lang.Object)"><!-- --></A><H3>
    +getTargetForCell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getTargetForCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the hyperlink to be used for the given cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addPropertyChangeListener(java.beans.PropertyChangeListener)"><!-- --></A><H3>
    +addPropertyChangeListener</H3>
    +<PRE>
    +public void <B>addPropertyChangeListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>listener</CODE> - <DT><B>See Also:</B><DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeSupport.html?is-external=true#addPropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.beans"><CODE>PropertyChangeSupport.addPropertyChangeListener(java.beans.PropertyChangeListener)</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)"><!-- --></A><H3>
    +addPropertyChangeListener</H3>
    +<PRE>
    +public void <B>addPropertyChangeListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - <DD><CODE>listener</CODE> - <DT><B>See Also:</B><DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeSupport.html?is-external=true#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.beans"><CODE>PropertyChangeSupport.addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removePropertyChangeListener(java.beans.PropertyChangeListener)"><!-- --></A><H3>
    +removePropertyChangeListener</H3>
    +<PRE>
    +public void <B>removePropertyChangeListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>listener</CODE> - <DT><B>See Also:</B><DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeSupport.html?is-external=true#removePropertyChangeListener(java.beans.PropertyChangeListener)" title="class or interface in java.beans"><CODE>PropertyChangeSupport.removePropertyChangeListener(java.beans.PropertyChangeListener)</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)"><!-- --></A><H3>
    +removePropertyChangeListener</H3>
    +<PRE>
    +public void <B>removePropertyChangeListener</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;propertyName,
    +                                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A>&nbsp;listener)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - <DD><CODE>listener</CODE> - <DT><B>See Also:</B><DD><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeSupport.html?is-external=true#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)" title="class or interface in java.beans"><CODE>PropertyChangeSupport.removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)</CODE></A></DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="main(java.lang.String[])"><!-- --></A><H3>
    +main</H3>
    +<PRE>
    +public static void <B>main</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;args)</PRE>
    +<DL>
    +<DD>Prints the version number on the console.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraph.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraph.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraph.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxGraph.mxICellVisitor.html b/java/docs/com/mxgraph/view/mxGraph.mxICellVisitor.html
    new file mode 100644
    index 000000000..d4878aa05
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxGraph.mxICellVisitor.html
    @@ -0,0 +1,212 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxGraph.mxICellVisitor (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraph.mxICellVisitor (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraph.mxICellVisitor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraph.mxICellVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraph.mxICellVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Interface mxGraph.mxICellVisitor</H2>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static interface <B>mxGraph.mxICellVisitor</B></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html#visit(java.lang.Object, java.lang.Object)">visit</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="visit(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +visit</H3>
    +<PRE>
    +boolean <B>visit</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;vertex,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>vertex</CODE> - <DD><CODE>edge</CODE> - </DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraph.mxICellVisitor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraph.mxICellVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraph.mxICellVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxGraphSelectionModel.html b/java/docs/com/mxgraph/view/mxGraphSelectionModel.html
    new file mode 100644
    index 000000000..2f9c5da21
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxGraphSelectionModel.html
    @@ -0,0 +1,763 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxGraphSelectionModel (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphSelectionModel (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphSelectionModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraphSelectionModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphSelectionModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxGraphSelectionModel</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxGraphSelectionModel</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphSelectionModel</B><DT>extends <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Implements the selection model for a graph.
    + 
    + This class fires the following events:
    + 
    + mxEvent.UNDO fires after the selection was changed in changeSelection. The
    + <code>edit</code> property contains the mxUndoableEdit which contains the
    + mxSelectionChange.
    + 
    + mxEvent.CHANGE fires after the selection changes by executing an
    + mxSelectionChange. The <code>added</code> and <code>removed</code>
    + properties contain Collections of cells that have been added to or removed
    + from the selection, respectively.
    +  
    + To add a change listener to the graph selection model:
    + 
    + <code>
    + addListener(
    +   mxEvent.CHANGE, new mxIEventListener()
    +   {
    +     public void invoke(Object sender, mxEventObject evt)
    +     {
    +       mxGraphSelectionModel model = (mxSelectionModel) sender;
    +       Collection added = (Collection) evt.getProperty("added");
    +       Collection removed = (Collection) evt.getProperty("removed");
    +       selectionChanged(model, added, removed);
    +     }
    +   });
    + </code>
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#cells">cells</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#singleSelection">singleSelection</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if only one selected item at a time is allowed.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#mxGraphSelectionModel(com.mxgraph.view.mxGraph)">mxGraphSelectionModel</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new selection model for the specified graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#addCell(java.lang.Object)">addCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the given cell to the selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#addCells(java.lang.Object[])">addCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#cellAdded(java.lang.Object)">cellAdded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#cellRemoved(java.lang.Object)">cellRemoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#changeSelection(java.util.Collection, java.util.Collection)">changeSelection</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;added,
    +                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;removed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#clear()">clear</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#getCell()">getCell</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the first selected cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#getCells()">getCells</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the selection cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#getFirstSelectableCell(java.lang.Object[])">getFirstSelectableCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the first selectable cell in the given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#isEmpty()">isEmpty</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if no cells are selected.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#isSelected(java.lang.Object)">isSelected</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is selected.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#isSingleSelection()">isSingleSelection</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#removeCell(java.lang.Object)">removeCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the given cell from the selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#removeCells(java.lang.Object[])">removeCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#setCell(java.lang.Object)">setCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the selection and adds the given cell to the selection.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#setCells(java.lang.Object[])">setCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the selection and adds the given cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#setSingleSelection(boolean)">setSingleSelection</A></B>(boolean&nbsp;singleSelection)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html#size()">size</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of selected cells.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graph"><!-- --></A><H3>
    +graph</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>graph</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="singleSelection"><!-- --></A><H3>
    +singleSelection</H3>
    +<PRE>
    +protected boolean <B>singleSelection</B></PRE>
    +<DL>
    +<DD>Specifies if only one selected item at a time is allowed.
    + Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="cells"><!-- --></A><H3>
    +cells</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>cells</B></PRE>
    +<DL>
    +<DD>Holds the selection cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphSelectionModel(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxGraphSelectionModel</H3>
    +<PRE>
    +public <B>mxGraphSelectionModel</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a new selection model for the specified graph.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isSingleSelection()"><!-- --></A><H3>
    +isSingleSelection</H3>
    +<PRE>
    +public boolean <B>isSingleSelection</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the singleSelection</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setSingleSelection(boolean)"><!-- --></A><H3>
    +setSingleSelection</H3>
    +<PRE>
    +public void <B>setSingleSelection</B>(boolean&nbsp;singleSelection)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>singleSelection</CODE> - the singleSelection to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSelected(java.lang.Object)"><!-- --></A><H3>
    +isSelected</H3>
    +<PRE>
    +public boolean <B>isSelected</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is selected.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - 
    +<DT><B>Returns:</B><DD>Returns true if the given cell is selected.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEmpty()"><!-- --></A><H3>
    +isEmpty</H3>
    +<PRE>
    +public boolean <B>isEmpty</B>()</PRE>
    +<DL>
    +<DD>Returns true if no cells are selected.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="size()"><!-- --></A><H3>
    +size</H3>
    +<PRE>
    +public int <B>size</B>()</PRE>
    +<DL>
    +<DD>Returns the number of selected cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clear()"><!-- --></A><H3>
    +clear</H3>
    +<PRE>
    +public void <B>clear</B>()</PRE>
    +<DL>
    +<DD>Clears the selection.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCell()"><!-- --></A><H3>
    +getCell</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCell</B>()</PRE>
    +<DL>
    +<DD>Returns the first selected cell.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCells()"><!-- --></A><H3>
    +getCells</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCells</B>()</PRE>
    +<DL>
    +<DD>Returns the selection cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCell(java.lang.Object)"><!-- --></A><H3>
    +setCell</H3>
    +<PRE>
    +public void <B>setCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Clears the selection and adds the given cell to the selection.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCells(java.lang.Object[])"><!-- --></A><H3>
    +setCells</H3>
    +<PRE>
    +public void <B>setCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Clears the selection and adds the given cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getFirstSelectableCell(java.lang.Object[])"><!-- --></A><H3>
    +getFirstSelectableCell</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getFirstSelectableCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the first selectable cell in the given array of cells.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - Array of cells to return the first selectable cell for.
    +<DT><B>Returns:</B><DD>Returns the first cell that may be selected.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCell(java.lang.Object)"><!-- --></A><H3>
    +addCell</H3>
    +<PRE>
    +public void <B>addCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Adds the given cell to the selection.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="addCells(java.lang.Object[])"><!-- --></A><H3>
    +addCells</H3>
    +<PRE>
    +public void <B>addCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCell(java.lang.Object)"><!-- --></A><H3>
    +removeCell</H3>
    +<PRE>
    +public void <B>removeCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Removes the given cell from the selection.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeCells(java.lang.Object[])"><!-- --></A><H3>
    +removeCells</H3>
    +<PRE>
    +public void <B>removeCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="changeSelection(java.util.Collection, java.util.Collection)"><!-- --></A><H3>
    +changeSelection</H3>
    +<PRE>
    +protected void <B>changeSelection</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;added,
    +                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;removed)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellAdded(java.lang.Object)"><!-- --></A><H3>
    +cellAdded</H3>
    +<PRE>
    +protected void <B>cellAdded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellRemoved(java.lang.Object)"><!-- --></A><H3>
    +cellRemoved</H3>
    +<PRE>
    +protected void <B>cellRemoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphSelectionModel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraphSelectionModel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphSelectionModel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html b/java/docs/com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html
    new file mode 100644
    index 000000000..a19750abc
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html
    @@ -0,0 +1,343 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxGraphSelectionModel.mxSelectionChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphSelectionModel.mxSelectionChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphSelectionModel.mxSelectionChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphSelectionModel.mxSelectionChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxGraphSelectionModel.mxSelectionChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxGraphSelectionModel.mxSelectionChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphSelectionModel.mxSelectionChange</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#added">added</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#model">model</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#removed">removed</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#mxGraphSelectionModel.mxSelectionChange(com.mxgraph.view.mxGraphSelectionModel, java.util.Collection, java.util.Collection)">mxGraphSelectionModel.mxSelectionChange</A></B>(<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>&nbsp;model,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;added,
    +                                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;removed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Undoes or redoes the change depending on its undo state.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="model"><!-- --></A><H3>
    +model</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A> <B>model</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="added"><!-- --></A><H3>
    +added</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>added</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="removed"><!-- --></A><H3>
    +removed</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>removed</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphSelectionModel.mxSelectionChange(com.mxgraph.view.mxGraphSelectionModel, java.util.Collection, java.util.Collection)"><!-- --></A><H3>
    +mxGraphSelectionModel.mxSelectionChange</H3>
    +<PRE>
    +public <B>mxGraphSelectionModel.mxSelectionChange</B>(<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>&nbsp;model,
    +                                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;added,
    +                                               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;removed)</PRE>
    +<DL>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>model</CODE> - <DD><CODE>added</CODE> - <DD><CODE>removed</CODE> - </DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD><B>Description copied from interface: <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">mxUndoableEdit.mxUndoableChange</A></CODE></B></DD>
    +<DD>Undoes or redoes the change depending on its undo state.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphSelectionModel.mxSelectionChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphSelectionModel.mxSelectionChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxGraphView.html b/java/docs/com/mxgraph/view/mxGraphView.html
    new file mode 100644
    index 000000000..71804d68f
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxGraphView.html
    @@ -0,0 +1,1758 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxGraphView (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphView (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphView.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraphView.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphView.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxGraphView</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxGraphView</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxGraphView</B><DT>extends <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a view for the graph. This class is in charge of computing the
    + absolute coordinates for the relative child geometries, the points for
    + perimeters and edge styles and keeping them cached in cell states for
    + faster retrieval. The states are updated whenever the model or the view
    + state (translate, scale) changes. The scale and translate are honoured in
    + the bounds.
    + 
    + This class fires the following events:
    + 
    + mxEvent.UNDO fires after the root was changed in setCurrentRoot. The
    + <code>edit</code> property contains the mxUndoableEdit which contains the
    + mxCurrentRootChange.
    + 
    + mxEvent.SCALE_AND_TRANSLATE fires after the scale and transle have been
    + changed in scaleAndTranslate. The <code>scale</code>, <code>previousScale</code>,
    + <code>translate</code> and <code>previousTranslate</code> properties contain
    + the new and previous scale and translate, respectively.
    + 
    + mxEvent.SCALE fires after the scale was changed in setScale. The
    + <code>scale</code> and <code>previousScale</code> properties contain the
    + new and previous scale.
    + 
    + mxEvent.TRANSLATE fires after the translate was changed in setTranslate. The
    + <code>translate</code> and <code>previousTranslate</code> properties contain
    + the new and previous value for translate.
    + 
    + mxEvent.UP and mxEvent.DOWN fire if the current root is changed by executing
    + a mxCurrentRootChange. The event name depends on the location of the root
    + in the cell hierarchy with respect to the current root. The
    + <code>root</code> and <code>previous</code> properties contain the new and
    + previous root, respectively.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;class</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Action to change the current root in a view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#currentRoot">currentRoot</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mxCell that acts as the root of the displayed cell hierarchy.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reference to the enclosing graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#graphBounds">graphBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches the current bounds of the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#scale">scale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies the scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#states">states</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from cells to cell states.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#translate">translate</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Point that specifies the current translation.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#mxGraphView(com.mxgraph.view.mxGraph)">mxGraphView</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new view for the given graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#childMoved(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">childMoved</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parent,
    +           <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;child)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked when a child state was moved as a result of late evaluation
    + of its position.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#clear(java.lang.Object, boolean, boolean)">clear</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +      boolean&nbsp;force,
    +      boolean&nbsp;recurse)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the state of the given cell and all descendants if the given
    + cell is not the current root.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#createState(java.lang.Object)">createState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a cell state for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getBoundingBox(java.lang.Object[])">getBoundingBox</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for an array of cells or null, if no cells are
    + specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getBounds(java.lang.Object[])">getBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for an array of cells or null, if no cells are
    + specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getBounds(java.lang.Object[], boolean)">getBounds</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +          boolean&nbsp;boundingBox)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the bounding box for an array of cells or null, if no cells are
    + specified.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getCellStates(java.lang.Object[])">getCellStates</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the states for the given array of cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getCurrentRoot()">getCurrentRoot</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current root.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getEdgeStyle(com.mxgraph.view.mxCellState, java.util.List, java.lang.Object, java.lang.Object)">getEdgeStyle</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the edge style function to be used to compute the absolute
    + points for the given state, control points and terminals.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enclosing graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getGraphBounds()">getGraphBounds</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cached diagram bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getNextPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getNextPoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;opposite,
    +             boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the nearest point in the list of absolute points or the center
    + of the opposite terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getPerimeterBounds(com.mxgraph.view.mxCellState, double)">getPerimeterBounds</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                   double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the perimeter bounds for the given terminal, edge pair.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getPerimeterFunction(com.mxgraph.view.mxCellState)">getPerimeterFunction</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the perimeter function for the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)">getPerimeterPoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                  <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                  boolean&nbsp;orthogonal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean, double)">getPerimeterPoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                  <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                  boolean&nbsp;orthogonal,
    +                  double&nbsp;border)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getPoint(com.mxgraph.view.mxCellState)">getPoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute center point along the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getPoint(com.mxgraph.view.mxCellState, com.mxgraph.model.mxGeometry)">getPoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +         <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolute point on the edge for the given relative
    + geometry as a point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getRelativePoint(com.mxgraph.view.mxCellState, double, double)">getRelativePoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edgeState,
    +                 double&nbsp;x,
    +                 double&nbsp;y)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the relative point that describes the given, absolute label
    + position for the given edge state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getRoutingCenterX(com.mxgraph.view.mxCellState)">getRoutingCenterX</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the x-coordinate of the center point for automatic routing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getRoutingCenterY(com.mxgraph.view.mxCellState)">getRoutingCenterY</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the y-coordinate of the center point for automatic routing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getScale()">getScale</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current scale.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getState(java.lang.Object)">getState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the state for the given cell or null if no state is defined for
    + the cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getState(java.lang.Object, boolean)">getState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +         boolean&nbsp;create)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell state for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getStates()">getStates</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the dictionary that maps from cells to states.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getTerminalPort(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">getTerminalPort</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a cell state that represents the source or target terminal or
    + port for the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getTranslate()">getTranslate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current translation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getVisibleTerminal(java.lang.Object, boolean)">getVisibleTerminal</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                   boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the nearest ancestor terminal that is visible.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#getWordWrapWidth(com.mxgraph.view.mxCellState)">getWordWrapWidth</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the width for wrapping the label of the given state at
    + scale 1.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#invalidate()">invalidate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invalidates all cell states.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#invalidate(java.lang.Object)">invalidate</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invalidates the state of the given cell, all its descendants and
    + connected edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#reload()">reload</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all existing cell states and invokes validate.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#removeState(java.lang.Object)">removeState</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes and returns the mxCellState for the given cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#revalidate()">revalidate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#scaleAndTranslate(double, double, double)">scaleAndTranslate</A></B>(double&nbsp;scale,
    +                  double&nbsp;dx,
    +                  double&nbsp;dy)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the scale and translation.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#setCurrentRoot(java.lang.Object)">setCurrentRoot</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets and returns the current root and fires an undo event.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#setGraphBounds(com.mxgraph.util.mxRectangle)">setGraphBounds</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the graph bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#setScale(double)">setScale</A></B>(double&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the current scale and revalidates the view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#setStates(java.util.Hashtable)">setStates</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;&nbsp;states)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the dictionary that maps from cells to states.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#setTranslate(com.mxgraph.util.mxPoint)">setTranslate</A></B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the current translation and invalidates the view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#transformControlPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)">transformControlPoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                      <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transforms the given control point to an absolute point.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updateBoundingBox(com.mxgraph.view.mxCellState)">updateBoundingBox</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the bounding box in the given cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updateEdgeBounds(com.mxgraph.view.mxCellState)">updateEdgeBounds</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the given state using the bounding box of the absolute points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updateFixedTerminalPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, com.mxgraph.view.mxConnectionConstraint)">updateFixedTerminalPoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                         boolean&nbsp;source,
    +                         <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the fixed source or target terminal point on the given edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updateFixedTerminalPoints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">updateFixedTerminalPoints</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +                          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the initial absolute terminal points in the given state before the edge
    + style is computed.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updateFloatingTerminalPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)">updateFloatingTerminalPoint</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;start,
    +                            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;end,
    +                            boolean&nbsp;source)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the absolute terminal point in the given state for the given
    + start and end state, where start is the source if source is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updateFloatingTerminalPoints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">updateFloatingTerminalPoints</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                             <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +                             <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the terminal points in the given state after the edge style was
    + computed for the edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updateLabel(com.mxgraph.view.mxCellState)">updateLabel</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the label of the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updateLabelBounds(com.mxgraph.view.mxCellState)">updateLabelBounds</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the label bounds in the given state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updatePoints(com.mxgraph.view.mxCellState, java.util.List, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)">updatePoints</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +             <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +             <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the absolute points in the given state using the specified array
    + of points as the relative points.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#updateVertexLabelOffset(com.mxgraph.view.mxCellState)">updateVertexLabelOffset</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the absoluteOffset of the given vertex cell state.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#validate()">validate</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;First validates all bounds and then validates all points recursively on
    + all visible cells.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#validateBounds(com.mxgraph.view.mxCellState, java.lang.Object)">validateBounds</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validates the bounds of the given parent's child using the given parent
    + state as the origin for the child.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.html#validatePoints(com.mxgraph.view.mxCellState, java.lang.Object)">validatePoints</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validates the points for the state of the given cell recursively if the
    + cell is not collapsed and returns the bounding box of all visited states
    + as a rectangle.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graph"><!-- --></A><H3>
    +graph</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>graph</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="currentRoot"><!-- --></A><H3>
    +currentRoot</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>currentRoot</B></PRE>
    +<DL>
    +<DD>mxCell that acts as the root of the displayed cell hierarchy.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="graphBounds"><!-- --></A><H3>
    +graphBounds</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>graphBounds</B></PRE>
    +<DL>
    +<DD>Caches the current bounds of the graph.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="scale"><!-- --></A><H3>
    +scale</H3>
    +<PRE>
    +protected double <B>scale</B></PRE>
    +<DL>
    +<DD>Specifies the scale. Default is 1 (100%).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="translate"><!-- --></A><H3>
    +translate</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>translate</B></PRE>
    +<DL>
    +<DD>Point that specifies the current translation. Default is a new
    + empty point.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="states"><!-- --></A><H3>
    +states</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt; <B>states</B></PRE>
    +<DL>
    +<DD>Maps from cells to cell states.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphView(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxGraphView</H3>
    +<PRE>
    +public <B>mxGraphView</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD>Constructs a new view for the given graph.
    +<P>
    +<DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - Reference to the enclosing graph.</DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getGraph()"><!-- --></A><H3>
    +getGraph</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>getGraph</B>()</PRE>
    +<DL>
    +<DD>Returns the enclosing graph.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the enclosing graph.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getStates()"><!-- --></A><H3>
    +getStates</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt; <B>getStates</B>()</PRE>
    +<DL>
    +<DD>Returns the dictionary that maps from cells to states.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStates(java.util.Hashtable)"><!-- --></A><H3>
    +setStates</H3>
    +<PRE>
    +public void <B>setStates</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;&nbsp;states)</PRE>
    +<DL>
    +<DD>Returns the dictionary that maps from cells to states.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraphBounds()"><!-- --></A><H3>
    +getGraphBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getGraphBounds</B>()</PRE>
    +<DL>
    +<DD>Returns the cached diagram bounds.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the diagram bounds.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGraphBounds(com.mxgraph.util.mxRectangle)"><!-- --></A><H3>
    +setGraphBounds</H3>
    +<PRE>
    +public void <B>setGraphBounds</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the graph bounds.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCurrentRoot()"><!-- --></A><H3>
    +getCurrentRoot</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getCurrentRoot</B>()</PRE>
    +<DL>
    +<DD>Returns the current root.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setCurrentRoot(java.lang.Object)"><!-- --></A><H3>
    +setCurrentRoot</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>setCurrentRoot</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +<DD>Sets and returns the current root and fires an undo event.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>root</CODE> - mxCell that specifies the root of the displayed cell hierarchy.
    +<DT><B>Returns:</B><DD>Returns the object that represents the current root.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="scaleAndTranslate(double, double, double)"><!-- --></A><H3>
    +scaleAndTranslate</H3>
    +<PRE>
    +public void <B>scaleAndTranslate</B>(double&nbsp;scale,
    +                              double&nbsp;dx,
    +                              double&nbsp;dy)</PRE>
    +<DL>
    +<DD>Sets the scale and translation. Fires a "scaleAndTranslate"
    + event after calling revalidate. Revalidate is only called if
    + isEventsEnabled.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>scale</CODE> - Decimal value that specifies the new scale (1 is 100%).<DD><CODE>dx</CODE> - X-coordinate of the translation.<DD><CODE>dy</CODE> - Y-coordinate of the translation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getScale()"><!-- --></A><H3>
    +getScale</H3>
    +<PRE>
    +public double <B>getScale</B>()</PRE>
    +<DL>
    +<DD>Returns the current scale.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the scale.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setScale(double)"><!-- --></A><H3>
    +setScale</H3>
    +<PRE>
    +public void <B>setScale</B>(double&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the current scale and revalidates the view. Fires a "scale"
    + event after calling revalidate. Revalidate is only called if
    + isEventsEnabled.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - New scale to be used.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTranslate()"><!-- --></A><H3>
    +getTranslate</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getTranslate</B>()</PRE>
    +<DL>
    +<DD>Returns the current translation.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the translation.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setTranslate(com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +setTranslate</H3>
    +<PRE>
    +public void <B>setTranslate</B>(<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the current translation and invalidates the view. Fires
    + a property change event for "translate" after calling
    + revalidate. Revalidate is only called if isEventsEnabled.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - New translation to be used.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBounds(java.lang.Object[])"><!-- --></A><H3>
    +getBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the bounding box for an array of cells or null, if no cells are
    + specified.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the bounding box for the given cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBoundingBox(java.lang.Object[])"><!-- --></A><H3>
    +getBoundingBox</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBoundingBox</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the bounding box for an array of cells or null, if no cells are
    + specified.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the bounding box for the given cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getBounds(java.lang.Object[], boolean)"><!-- --></A><H3>
    +getBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getBounds</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                             boolean&nbsp;boundingBox)</PRE>
    +<DL>
    +<DD>Returns the bounding box for an array of cells or null, if no cells are
    + specified.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cells</CODE> - 
    +<DT><B>Returns:</B><DD>Returns the bounding box for the given cells.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="reload()"><!-- --></A><H3>
    +reload</H3>
    +<PRE>
    +public void <B>reload</B>()</PRE>
    +<DL>
    +<DD>Removes all existing cell states and invokes validate.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="revalidate()"><!-- --></A><H3>
    +revalidate</H3>
    +<PRE>
    +public void <B>revalidate</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="invalidate()"><!-- --></A><H3>
    +invalidate</H3>
    +<PRE>
    +public void <B>invalidate</B>()</PRE>
    +<DL>
    +<DD>Invalidates all cell states.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="clear(java.lang.Object, boolean, boolean)"><!-- --></A><H3>
    +clear</H3>
    +<PRE>
    +public void <B>clear</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                  boolean&nbsp;force,
    +                  boolean&nbsp;recurse)</PRE>
    +<DL>
    +<DD>Removes the state of the given cell and all descendants if the given
    + cell is not the current root.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - <DD><CODE>force</CODE> - <DD><CODE>recurse</CODE> - </DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="invalidate(java.lang.Object)"><!-- --></A><H3>
    +invalidate</H3>
    +<PRE>
    +public void <B>invalidate</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Invalidates the state of the given cell, all its descendants and
    + connected edges.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validate()"><!-- --></A><H3>
    +validate</H3>
    +<PRE>
    +public void <B>validate</B>()</PRE>
    +<DL>
    +<DD>First validates all bounds and then validates all points recursively on
    + all visible cells.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validateBounds(com.mxgraph.view.mxCellState, java.lang.Object)"><!-- --></A><H3>
    +validateBounds</H3>
    +<PRE>
    +public void <B>validateBounds</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +                           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Validates the bounds of the given parent's child using the given parent
    + state as the origin for the child. The validation is carried out
    + recursively for all non-collapsed descendants.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parentState</CODE> - Object that represents the state of the parent cell.<DD><CODE>cell</CODE> - Cell for which the bounds in the state should be updated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateVertexLabelOffset(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +updateVertexLabelOffset</H3>
    +<PRE>
    +public void <B>updateVertexLabelOffset</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Updates the absoluteOffset of the given vertex cell state. This takes
    + into account the label position styles.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - Cell state whose absolute offset should be updated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="validatePoints(com.mxgraph.view.mxCellState, java.lang.Object)"><!-- --></A><H3>
    +validatePoints</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>validatePoints</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parentState,
    +                                  <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Validates the points for the state of the given cell recursively if the
    + cell is not collapsed and returns the bounding box of all visited states
    + as a rectangle.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>parentState</CODE> - Object that represents the state of the parent cell.<DD><CODE>cell</CODE> - Cell for which the points in the state should be updated.
    +<DT><B>Returns:</B><DD>Returns the bounding box for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="childMoved(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +childMoved</H3>
    +<PRE>
    +protected void <B>childMoved</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;parent,
    +                          <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;child)</PRE>
    +<DL>
    +<DD>Invoked when a child state was moved as a result of late evaluation
    + of its position. This is invoked for relative edge children whose
    + position can only be determined after the points of the parent edge
    + are updated in validatePoints, and validates the bounds of all
    + descendants of the child using validateBounds.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateLabel(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +updateLabel</H3>
    +<PRE>
    +public void <B>updateLabel</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Updates the label of the given state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getWordWrapWidth(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getWordWrapWidth</H3>
    +<PRE>
    +public double <B>getWordWrapWidth</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the width for wrapping the label of the given state at
    + scale 1.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateLabelBounds(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +updateLabelBounds</H3>
    +<PRE>
    +public void <B>updateLabelBounds</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Updates the label bounds in the given state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateBoundingBox(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +updateBoundingBox</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>updateBoundingBox</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Updates the bounding box in the given cell state.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - Cell state whose bounding box should be
    + updated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateFixedTerminalPoints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +updateFixedTerminalPoints</H3>
    +<PRE>
    +public void <B>updateFixedTerminalPoints</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                                      <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +                                      <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Sets the initial absolute terminal points in the given state before the edge
    + style is computed.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell state whose initial terminal points should be updated.<DD><CODE>source</CODE> - Cell state which represents the source terminal.<DD><CODE>target</CODE> - Cell state which represents the target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateFixedTerminalPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, com.mxgraph.view.mxConnectionConstraint)"><!-- --></A><H3>
    +updateFixedTerminalPoint</H3>
    +<PRE>
    +public void <B>updateFixedTerminalPoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                                     <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                                     boolean&nbsp;source,
    +                                     <A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>&nbsp;constraint)</PRE>
    +<DL>
    +<DD>Sets the fixed source or target terminal point on the given edge.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell state whose initial terminal points should be
    + updated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updatePoints(com.mxgraph.view.mxCellState, java.util.List, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +updatePoints</H3>
    +<PRE>
    +public void <B>updatePoints</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Updates the absolute points in the given state using the specified array
    + of points as the relative points.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell state whose absolute points should be updated.<DD><CODE>points</CODE> - Array of points that constitute the relative points.<DD><CODE>source</CODE> - Cell state that represents the source terminal.<DD><CODE>target</CODE> - Cell state that represents the target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="transformControlPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)"><!-- --></A><H3>
    +transformControlPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>transformControlPoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                     <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;pt)</PRE>
    +<DL>
    +<DD>Transforms the given control point to an absolute point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getEdgeStyle(com.mxgraph.view.mxCellState, java.util.List, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +getEdgeStyle</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A> <B>getEdgeStyle</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&gt;&nbsp;points,
    +                                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                                                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Returns the edge style function to be used to compute the absolute
    + points for the given state, control points and terminals.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateFloatingTerminalPoints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +updateFloatingTerminalPoints</H3>
    +<PRE>
    +public void <B>updateFloatingTerminalPoints</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;source,
    +                                         <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Updates the terminal points in the given state after the edge style was
    + computed for the edge.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - Cell state whose terminal points should be updated.<DD><CODE>source</CODE> - Cell state that represents the source terminal.<DD><CODE>target</CODE> - Cell state that represents the target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateFloatingTerminalPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +updateFloatingTerminalPoint</H3>
    +<PRE>
    +public void <B>updateFloatingTerminalPoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;start,
    +                                        <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;end,
    +                                        boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Updates the absolute terminal point in the given state for the given
    + start and end state, where start is the source if source is true.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell state whose terminal point should be updated.<DD><CODE>start</CODE> - Cell state for the terminal on "this" side of the edge.<DD><CODE>end</CODE> - Cell state for the terminal on the other side of the edge.<DD><CODE>source</CODE> - Boolean indicating if start is the source terminal state.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getTerminalPort(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +getTerminalPort</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getTerminalPort</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                                   <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                                   boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns a cell state that represents the source or target terminal or
    + port for the given edge.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)"><!-- --></A><H3>
    +getPerimeterPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getPerimeterPoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                                 <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                                 boolean&nbsp;orthogonal)</PRE>
    +<DL>
    +<DD>Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean, double)"><!-- --></A><H3>
    +getPerimeterPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getPerimeterPoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                                 <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +                                 boolean&nbsp;orthogonal,
    +                                 double&nbsp;border)</PRE>
    +<DL>
    +<DD>Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>terminal</CODE> - Cell state for the source or target terminal.<DD><CODE>next</CODE> - Point that lies outside of the given terminal.<DD><CODE>orthogonal</CODE> - Boolean that specifies if the orthogonal projection onto
    + the perimeter should be returned. If this is false then the intersection
    + of the perimeter and the line between the next and the center point is
    + returned.<DD><CODE>border</CODE> - Optional border between the perimeter and the shape.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRoutingCenterX(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getRoutingCenterX</H3>
    +<PRE>
    +public double <B>getRoutingCenterX</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the x-coordinate of the center point for automatic routing.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the x-coordinate of the routing center point.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRoutingCenterY(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getRoutingCenterY</H3>
    +<PRE>
    +public double <B>getRoutingCenterY</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the y-coordinate of the center point for automatic routing.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the y-coordinate of the routing center point.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPerimeterBounds(com.mxgraph.view.mxCellState, double)"><!-- --></A><H3>
    +getPerimeterBounds</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>getPerimeterBounds</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;terminal,
    +                                      double&nbsp;border)</PRE>
    +<DL>
    +<DD>Returns the perimeter bounds for the given terminal, edge pair.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPerimeterFunction(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getPerimeterFunction</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A> <B>getPerimeterFunction</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the perimeter function for the given state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getNextPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><!-- --></A><H3>
    +getNextPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getNextPoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edge,
    +                            <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;opposite,
    +                            boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns the nearest point in the list of absolute points or the center
    + of the opposite terminal.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell state that represents the edge.<DD><CODE>opposite</CODE> - Cell state that represents the opposite terminal.<DD><CODE>source</CODE> - Boolean indicating if the next point for the source or target
    + should be returned.
    +<DT><B>Returns:</B><DD>Returns the nearest point of the opposite side.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getVisibleTerminal(java.lang.Object, boolean)"><!-- --></A><H3>
    +getVisibleTerminal</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getVisibleTerminal</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                                 boolean&nbsp;source)</PRE>
    +<DL>
    +<DD>Returns the nearest ancestor terminal that is visible. The edge appears
    + to be connected to this terminal on the display.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>edge</CODE> - Cell whose visible terminal should be returned.<DD><CODE>source</CODE> - Boolean that specifies if the source or target terminal
    + should be returned.
    +<DT><B>Returns:</B><DD>Returns the visible source or target terminal.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="updateEdgeBounds(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +updateEdgeBounds</H3>
    +<PRE>
    +public void <B>updateEdgeBounds</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Updates the given state using the bounding box of the absolute points.
    + Also updates terminal distance, length and segments.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - Cell state whose bounds should be updated.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPoint(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getPoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD>Returns the absolute center point along the given edge.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPoint(com.mxgraph.view.mxCellState, com.mxgraph.model.mxGeometry)"><!-- --></A><H3>
    +getPoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getPoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state,
    +                        <A HREF="../../../com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>&nbsp;geometry)</PRE>
    +<DL>
    +<DD>Returns the absolute point on the edge for the given relative
    + geometry as a point. The edge is represented by the given cell state.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>state</CODE> - Represents the state of the parent edge.<DD><CODE>geometry</CODE> - Optional geometry that represents the relative location.
    +<DT><B>Returns:</B><DD>Returns the mxpoint that represents the absolute location
    + of the given relative geometry.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRelativePoint(com.mxgraph.view.mxCellState, double, double)"><!-- --></A><H3>
    +getRelativePoint</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>getRelativePoint</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;edgeState,
    +                                double&nbsp;x,
    +                                double&nbsp;y)</PRE>
    +<DL>
    +<DD>Gets the relative point that describes the given, absolute label
    + position for the given edge state.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellStates(java.lang.Object[])"><!-- --></A><H3>
    +getCellStates</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>[] <B>getCellStates</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Returns the states for the given array of cells. The array contains all
    + states that are not null, that is, the returned array may have less
    + elements than the given array.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getState(java.lang.Object)"><!-- --></A><H3>
    +getState</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getState</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns the state for the given cell or null if no state is defined for
    + the cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell whose state should be returned.
    +<DT><B>Returns:</B><DD>Returns the state for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getState(java.lang.Object, boolean)"><!-- --></A><H3>
    +getState</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>getState</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                            boolean&nbsp;create)</PRE>
    +<DL>
    +<DD>Returns the cell state for the given cell. If create is true, then
    + the state is created if it does not yet exist.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell for which a new state should be returned.<DD><CODE>create</CODE> - Boolean indicating if a new state should be created if it
    + does not yet exist.
    +<DT><B>Returns:</B><DD>Returns the state for the given cell.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="removeState(java.lang.Object)"><!-- --></A><H3>
    +removeState</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>removeState</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Removes and returns the mxCellState for the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - mxCell for which the mxCellState should be removed.
    +<DT><B>Returns:</B><DD>Returns the mxCellState that has been removed.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createState(java.lang.Object)"><!-- --></A><H3>
    +createState</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>createState</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Creates and returns a cell state for the given cell.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>cell</CODE> - Cell for which a new state should be created.
    +<DT><B>Returns:</B><DD>Returns a new state for the given cell.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphView.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraphView.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphView.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxGraphView.mxCurrentRootChange.html b/java/docs/com/mxgraph/view/mxGraphView.mxCurrentRootChange.html
    new file mode 100644
    index 000000000..c6412f961
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxGraphView.mxCurrentRootChange.html
    @@ -0,0 +1,458 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxGraphView.mxCurrentRootChange (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxGraphView.mxCurrentRootChange (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphView.mxCurrentRootChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphView.mxCurrentRootChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxGraphView.mxCurrentRootChange</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxGraphView.mxCurrentRootChange</B>
    +</PRE>
    +<DL>
    +<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DD>
    +</DL>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static class <B>mxGraphView.mxCurrentRootChange</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></DL>
    +</PRE>
    +
    +<P>
    +Action to change the current root in a view.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#previous">previous</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#root">root</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#up">up</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#view">view</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#mxGraphView.mxCurrentRootChange(com.mxgraph.view.mxGraphView, java.lang.Object)">mxGraphView.mxCurrentRootChange</A></B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                                <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a change of the current root in the given view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#execute()">execute</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the current root of the view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#getPrevious()">getPrevious</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the previous root.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#getRoot()">getRoot</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the root.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#getView()">getView</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the graph view where the change happened.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#isUp()">isUp</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the drilling went upwards.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="view"><!-- --></A><H3>
    +view</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> <B>view</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="root"><!-- --></A><H3>
    +root</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>root</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="previous"><!-- --></A><H3>
    +previous</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>previous</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="up"><!-- --></A><H3>
    +up</H3>
    +<PRE>
    +protected boolean <B>up</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxGraphView.mxCurrentRootChange(com.mxgraph.view.mxGraphView, java.lang.Object)"><!-- --></A><H3>
    +mxGraphView.mxCurrentRootChange</H3>
    +<PRE>
    +public <B>mxGraphView.mxCurrentRootChange</B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;root)</PRE>
    +<DL>
    +<DD>Constructs a change of the current root in the given view.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getView()"><!-- --></A><H3>
    +getView</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> <B>getView</B>()</PRE>
    +<DL>
    +<DD>Returns the graph view where the change happened.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getRoot()"><!-- --></A><H3>
    +getRoot</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getRoot</B>()</PRE>
    +<DL>
    +<DD>Returns the root.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getPrevious()"><!-- --></A><H3>
    +getPrevious</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getPrevious</B>()</PRE>
    +<DL>
    +<DD>Returns the previous root.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isUp()"><!-- --></A><H3>
    +isUp</H3>
    +<PRE>
    +public boolean <B>isUp</B>()</PRE>
    +<DL>
    +<DD>Returns true if the drilling went upwards.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="execute()"><!-- --></A><H3>
    +execute</H3>
    +<PRE>
    +public void <B>execute</B>()</PRE>
    +<DL>
    +<DD>Changes the current root of the view.
    +<P>
    +<DD><DL>
    +<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()">execute</A></CODE> in interface <CODE><A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A></CODE></DL>
    +</DD>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxGraphView.mxCurrentRootChange.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxGraphView.mxCurrentRootChange.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxLayoutManager.html b/java/docs/com/mxgraph/view/mxLayoutManager.html
    new file mode 100644
    index 000000000..6148aaf33
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxLayoutManager.html
    @@ -0,0 +1,690 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxLayoutManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxLayoutManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLayoutManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxLayoutManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLayoutManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxLayoutManager</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxLayoutManager</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxLayoutManager</B><DT>extends <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Implements a layout manager that updates the layout for a given transaction.
    + The following example installs an automatic tree layout in a graph:
    + 
    + <code>
    + new mxLayoutManager(graph) {
    + 
    +   mxCompactTreeLayout layout = new mxCompactTreeLayout(graph);
    +   
    +   public mxIGraphLayout getLayout(Object parent)
    +   {
    +     if (graph.getModel().getChildCount(parent) > 0) {
    +       return layout;
    +     }
    +     return null;
    +   }
    + };
    + </code>
    + 
    + This class fires the following event:
    + 
    + mxEvent.LAYOUT_CELLS fires between begin- and endUpdate after all cells have
    + been layouted in layoutCells. The <code>cells</code> property contains all
    + cells that have been passed to layoutCells.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#bubbling">bubbling</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the type of the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#moveHandler">moveHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#undoHandler">undoHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#mxLayoutManager(com.mxgraph.view.mxGraph)">mxLayoutManager</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#beforeUndo(com.mxgraph.util.mxUndoableEdit)">beforeUndo</A></B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>&nbsp;edit)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#cellsMoved(java.lang.Object[], java.awt.Point)">cellsMoved</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +           <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;location)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#destroy()">destroy</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#executeLayout(com.mxgraph.layout.mxIGraphLayout, java.lang.Object)">executeLayout</A></B>(<A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A>&nbsp;layout,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#getCellsForChange(com.mxgraph.util.mxUndoableEdit.mxUndoableChange)">getCellsForChange</A></B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#getCellsForChanges(java.util.List)">getCellsForChanges</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#getLayout(java.lang.Object)">getLayout</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#isBubbling()">isBubbling</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#layoutCells(java.lang.Object[])">layoutCells</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#setBubbling(boolean)">setBubbling</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html#setGraph(com.mxgraph.view.mxGraph)">setGraph</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graph"><!-- --></A><H3>
    +graph</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>graph</B></PRE>
    +<DL>
    +<DD>Defines the type of the source or target terminal. The type is a string
    + passed to mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="bubbling"><!-- --></A><H3>
    +bubbling</H3>
    +<PRE>
    +protected boolean <B>bubbling</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="undoHandler"><!-- --></A><H3>
    +undoHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>undoHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="moveHandler"><!-- --></A><H3>
    +moveHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>moveHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxLayoutManager(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxLayoutManager</H3>
    +<PRE>
    +public <B>mxLayoutManager</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the enabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the enabled to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isBubbling()"><!-- --></A><H3>
    +isBubbling</H3>
    +<PRE>
    +public boolean <B>isBubbling</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the bubbling</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setBubbling(boolean)"><!-- --></A><H3>
    +setBubbling</H3>
    +<PRE>
    +public void <B>setBubbling</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the bubbling to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraph()"><!-- --></A><H3>
    +getGraph</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>getGraph</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the graph</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGraph(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +setGraph</H3>
    +<PRE>
    +public void <B>setGraph</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the graph to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getLayout(java.lang.Object)"><!-- --></A><H3>
    +getLayout</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A> <B>getLayout</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsMoved(java.lang.Object[], java.awt.Point)"><!-- --></A><H3>
    +cellsMoved</H3>
    +<PRE>
    +protected void <B>cellsMoved</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells,
    +                          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A>&nbsp;location)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="beforeUndo(com.mxgraph.util.mxUndoableEdit)"><!-- --></A><H3>
    +beforeUndo</H3>
    +<PRE>
    +protected void <B>beforeUndo</B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>&nbsp;edit)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellsForChanges(java.util.List)"><!-- --></A><H3>
    +getCellsForChanges</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getCellsForChanges</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&gt;&nbsp;changes)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellsForChange(com.mxgraph.util.mxUndoableEdit.mxUndoableChange)"><!-- --></A><H3>
    +getCellsForChange</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getCellsForChange</B>(<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>&nbsp;change)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="layoutCells(java.lang.Object[])"><!-- --></A><H3>
    +layoutCells</H3>
    +<PRE>
    +protected void <B>layoutCells</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="executeLayout(com.mxgraph.layout.mxIGraphLayout, java.lang.Object)"><!-- --></A><H3>
    +executeLayout</H3>
    +<PRE>
    +protected void <B>executeLayout</B>(<A HREF="../../../com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A>&nbsp;layout,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;parent)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="destroy()"><!-- --></A><H3>
    +destroy</H3>
    +<PRE>
    +public void <B>destroy</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxLayoutManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxLayoutManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxLayoutManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxMultiplicity.html b/java/docs/com/mxgraph/view/mxMultiplicity.html
    new file mode 100644
    index 000000000..3eabec3e9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxMultiplicity.html
    @@ -0,0 +1,685 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxMultiplicity (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxMultiplicity (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMultiplicity.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxMultiplicity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMultiplicity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxMultiplicity</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxMultiplicity</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxMultiplicity</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#attr">attr</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#countError">countError</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the localized error message to be displayed if the number of
    + connections for which the rule applies is smaller than min or greater
    + than max.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#max">max</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the maximum number of connections for which this rule applies.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#min">min</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the minimum number of connections for which this rule applies.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#source">source</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean that specifies if the rule is applied to the source or target
    + terminal of an edge.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#type">type</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the type of the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#typeError">typeError</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds the localized error message to be displayed if the type of the
    + neighbor for a connection does not match the rule.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#validNeighbors">validNeighbors</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Holds an array of strings that specify the type of neighbor for which
    + this rule applies.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#validNeighborsAllowed">validNeighborsAllowed</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean indicating if the list of validNeighbors are those that are allowed
    + for this rule or those that are not allowed for this rule.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#value">value</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#mxMultiplicity(boolean, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.util.Collection, java.lang.String, java.lang.String, boolean)">mxMultiplicity</A></B>(boolean&nbsp;source,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value,
    +               int&nbsp;min,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;max,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;validNeighbors,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;countError,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;typeError,
    +               boolean&nbsp;validNeighborsAllowed)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#check(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, java.lang.Object, int, int)">check</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +      int&nbsp;sourceOut,
    +      int&nbsp;targetIn)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function: check
    + 
    + Checks the multiplicity for the given arguments and returns the error
    + for the given connection or null if the multiplicity does not apply.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#checkNeighbors(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, java.lang.Object)">checkNeighbors</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +               <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks the type of the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#checkTerminal(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object)">checkTerminal</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks the type of the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#checkType(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.String)">checkType</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks the type of the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#checkType(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.String, java.lang.String, java.lang.String)">checkType</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +          <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attrValue)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks the type of the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;int</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#getMaxValue()">getMaxValue</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the numeric value of max.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html#isUnlimited()">isUnlimited</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if max is "n" (unlimited).</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="type"><!-- --></A><H3>
    +type</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>type</B></PRE>
    +<DL>
    +<DD>Defines the type of the source or target terminal. The type is a string
    + passed to mxUtils.isNode together with the source or target vertex
    + value as the first argument.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="attr"><!-- --></A><H3>
    +attr</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>attr</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="value"><!-- --></A><H3>
    +value</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>value</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="source"><!-- --></A><H3>
    +source</H3>
    +<PRE>
    +protected boolean <B>source</B></PRE>
    +<DL>
    +<DD>Boolean that specifies if the rule is applied to the source or target
    + terminal of an edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="min"><!-- --></A><H3>
    +min</H3>
    +<PRE>
    +protected int <B>min</B></PRE>
    +<DL>
    +<DD>Defines the minimum number of connections for which this rule applies.
    + Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="max"><!-- --></A><H3>
    +max</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>max</B></PRE>
    +<DL>
    +<DD>Defines the maximum number of connections for which this rule applies.
    + A value of 'n' means unlimited times. Default is 'n'.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="validNeighbors"><!-- --></A><H3>
    +validNeighbors</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>validNeighbors</B></PRE>
    +<DL>
    +<DD>Holds an array of strings that specify the type of neighbor for which
    + this rule applies. The strings are used in mxCell.is on the opposite
    + terminal to check if the rule applies to the connection.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="validNeighborsAllowed"><!-- --></A><H3>
    +validNeighborsAllowed</H3>
    +<PRE>
    +protected boolean <B>validNeighborsAllowed</B></PRE>
    +<DL>
    +<DD>Boolean indicating if the list of validNeighbors are those that are allowed
    + for this rule or those that are not allowed for this rule.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="countError"><!-- --></A><H3>
    +countError</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>countError</B></PRE>
    +<DL>
    +<DD>Holds the localized error message to be displayed if the number of
    + connections for which the rule applies is smaller than min or greater
    + than max.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="typeError"><!-- --></A><H3>
    +typeError</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>typeError</B></PRE>
    +<DL>
    +<DD>Holds the localized error message to be displayed if the type of the
    + neighbor for a connection does not match the rule.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxMultiplicity(boolean, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.util.Collection, java.lang.String, java.lang.String, boolean)"><!-- --></A><H3>
    +mxMultiplicity</H3>
    +<PRE>
    +public <B>mxMultiplicity</B>(boolean&nbsp;source,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;value,
    +                      int&nbsp;min,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;max,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;validNeighbors,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;countError,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;typeError,
    +                      boolean&nbsp;validNeighborsAllowed)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="check(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, java.lang.Object, int, int)"><!-- --></A><H3>
    +check</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>check</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                    <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target,
    +                    int&nbsp;sourceOut,
    +                    int&nbsp;targetIn)</PRE>
    +<DL>
    +<DD>Function: check
    + 
    + Checks the multiplicity for the given arguments and returns the error
    + for the given connection or null if the multiplicity does not apply.
    +  
    + Parameters:
    + 
    + graph - Reference to the enclosing graph instance.
    + edge - Cell that represents the edge to validate.
    + source - Cell that represents the source terminal.
    + target - Cell that represents the target terminal.
    + sourceOut - Number of outgoing edges from the source terminal.
    + targetIn - Number of incoming edges for the target terminal.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="checkNeighbors(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +checkNeighbors</H3>
    +<PRE>
    +public boolean <B>checkNeighbors</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;source,
    +                              <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;target)</PRE>
    +<DL>
    +<DD>Checks the type of the given value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="checkTerminal(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
    +checkTerminal</H3>
    +<PRE>
    +public boolean <B>checkTerminal</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;terminal,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;edge)</PRE>
    +<DL>
    +<DD>Checks the type of the given value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="checkType(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.String)"><!-- --></A><H3>
    +checkType</H3>
    +<PRE>
    +public boolean <B>checkType</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type)</PRE>
    +<DL>
    +<DD>Checks the type of the given value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="checkType(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
    +checkType</H3>
    +<PRE>
    +public boolean <B>checkType</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;type,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attr,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;attrValue)</PRE>
    +<DL>
    +<DD>Checks the type of the given value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isUnlimited()"><!-- --></A><H3>
    +isUnlimited</H3>
    +<PRE>
    +public boolean <B>isUnlimited</B>()</PRE>
    +<DL>
    +<DD>Returns true if max is "n" (unlimited).
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getMaxValue()"><!-- --></A><H3>
    +getMaxValue</H3>
    +<PRE>
    +public int <B>getMaxValue</B>()</PRE>
    +<DL>
    +<DD>Returns the numeric value of max.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxMultiplicity.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxMultiplicity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxMultiplicity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxPerimeter.html b/java/docs/com/mxgraph/view/mxPerimeter.html
    new file mode 100644
    index 000000000..44cd2696a
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxPerimeter.html
    @@ -0,0 +1,369 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPerimeter (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPerimeter (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPerimeter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxPerimeter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPerimeter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxPerimeter</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxPerimeter</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxPerimeter</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Provides various perimeter functions to be used in a style
    + as the value of mxConstants.STYLE_PERIMETER. Alternately, the mxConstants.
    + PERIMETER_* constants can be used to reference a perimeter via the
    + mxStyleRegistry.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;interface</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a perimeter function.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxPerimeter.html#EllipsePerimeter">EllipsePerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes an elliptic perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxPerimeter.html#HexagonPerimeter">HexagonPerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes a hexagon perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxPerimeter.html#RectanglePerimeter">RectanglePerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes a rectangular perimeter for the given bounds.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxPerimeter.html#RhombusPerimeter">RhombusPerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes a rhombus (aka diamond) perimeter.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxPerimeter.html#TrianglePerimeter">TrianglePerimeter</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Describes a triangle perimeter.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxPerimeter.html#mxPerimeter()">mxPerimeter</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="RectanglePerimeter"><!-- --></A><H3>
    +RectanglePerimeter</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A> <B>RectanglePerimeter</B></PRE>
    +<DL>
    +<DD>Describes a rectangular perimeter for the given bounds.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="EllipsePerimeter"><!-- --></A><H3>
    +EllipsePerimeter</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A> <B>EllipsePerimeter</B></PRE>
    +<DL>
    +<DD>Describes an elliptic perimeter.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="RhombusPerimeter"><!-- --></A><H3>
    +RhombusPerimeter</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A> <B>RhombusPerimeter</B></PRE>
    +<DL>
    +<DD>Describes a rhombus (aka diamond) perimeter.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="TrianglePerimeter"><!-- --></A><H3>
    +TrianglePerimeter</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A> <B>TrianglePerimeter</B></PRE>
    +<DL>
    +<DD>Describes a triangle perimeter. See RectanglePerimeter
    + for a description of the parameters.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="HexagonPerimeter"><!-- --></A><H3>
    +HexagonPerimeter</H3>
    +<PRE>
    +public static <A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A> <B>HexagonPerimeter</B></PRE>
    +<DL>
    +<DD>Describes a hexagon perimeter. See RectanglePerimeter
    + for a description of the parameters.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxPerimeter()"><!-- --></A><H3>
    +mxPerimeter</H3>
    +<PRE>
    +public <B>mxPerimeter</B>()</PRE>
    +<DL>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPerimeter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxPerimeter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPerimeter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html b/java/docs/com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html
    new file mode 100644
    index 000000000..d2f52fa31
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html
    @@ -0,0 +1,228 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxPerimeter.mxPerimeterFunction (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxPerimeter.mxPerimeterFunction (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPerimeter.mxPerimeterFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPerimeter.mxPerimeterFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Interface mxPerimeter.mxPerimeterFunction</H2>
    +<DL>
    +<DT><B>Enclosing class:</B><DD><A HREF="../../../com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view">mxPerimeter</A></DD>
    +</DL>
    +<HR>
    +<DL>
    +<DT><PRE>public static interface <B>mxPerimeter.mxPerimeterFunction</B></DL>
    +</PRE>
    +
    +<P>
    +Defines the requirements for a perimeter function.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html#apply(com.mxgraph.util.mxRectangle, com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)">apply</A></B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +      <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +      <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +      boolean&nbsp;orthogonal)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a perimeter function.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="apply(com.mxgraph.util.mxRectangle, com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)"><!-- --></A><H3>
    +apply</H3>
    +<PRE>
    +<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>apply</B>(<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>&nbsp;bounds,
    +              <A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;vertex,
    +              <A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>&nbsp;next,
    +              boolean&nbsp;orthogonal)</PRE>
    +<DL>
    +<DD>Implements a perimeter function.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>bounds</CODE> - Rectangle that represents the absolute bounds of the
    + vertex.<DD><CODE>vertex</CODE> - Cell state that represents the vertex.<DD><CODE>next</CODE> - Point that represents the nearest neighbour point on the
    + given edge.<DD><CODE>orthogonal</CODE> - Boolean that specifies if the orthogonal projection onto
    + the perimeter should be returned. If this is false then the intersection
    + of the perimeter and the line between the next and the center point is
    + returned.
    +<DT><B>Returns:</B><DD>Returns the perimeter point.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxPerimeter.mxPerimeterFunction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxPerimeter.mxPerimeterFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxSpaceManager.html b/java/docs/com/mxgraph/view/mxSpaceManager.html
    new file mode 100644
    index 000000000..20f4b7cc9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxSpaceManager.html
    @@ -0,0 +1,763 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxSpaceManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSpaceManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSpaceManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxSpaceManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpaceManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxSpaceManager</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxSpaceManager</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSpaceManager</B><DT>extends <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#extendParents">extendParents</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the type of the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#resizeHandler">resizeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#shiftDownwards">shiftDownwards</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#shiftRightwards">shiftRightwards</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#mxSpaceManager(com.mxgraph.view.mxGraph)">mxSpaceManager</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#cellResized(java.lang.Object)">cellResized</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#cellsResized(java.lang.Object[])">cellsResized</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#destroy()">destroy</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#getCellsToShift(com.mxgraph.view.mxCellState)">getCellsToShift</A></B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#isCellIgnored(java.lang.Object)">isCellIgnored</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#isCellShiftable(java.lang.Object)">isCellShiftable</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#isExtendParents()">isExtendParents</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#isShiftDownwards()">isShiftDownwards</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#isShiftRightwards()">isShiftRightwards</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#setExtendParents(boolean)">setExtendParents</A></B>(boolean&nbsp;extendParents)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#setGraph(com.mxgraph.view.mxGraph)">setGraph</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#setShiftDownwards(boolean)">setShiftDownwards</A></B>(boolean&nbsp;shiftDownwards)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#setShiftRightwards(boolean)">setShiftRightwards</A></B>(boolean&nbsp;shiftRightwards)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html#shiftCell(java.lang.Object, double, double, double, double, double, double, double, double, boolean)">shiftCell</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +          double&nbsp;dx,
    +          double&nbsp;dy,
    +          double&nbsp;x0,
    +          double&nbsp;y0,
    +          double&nbsp;right,
    +          double&nbsp;bottom,
    +          double&nbsp;fx,
    +          double&nbsp;fy,
    +          boolean&nbsp;extendParent)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graph"><!-- --></A><H3>
    +graph</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>graph</B></PRE>
    +<DL>
    +<DD>Defines the type of the source or target terminal. The type is a string
    + passed to mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="shiftRightwards"><!-- --></A><H3>
    +shiftRightwards</H3>
    +<PRE>
    +protected boolean <B>shiftRightwards</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="shiftDownwards"><!-- --></A><H3>
    +shiftDownwards</H3>
    +<PRE>
    +protected boolean <B>shiftDownwards</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="extendParents"><!-- --></A><H3>
    +extendParents</H3>
    +<PRE>
    +protected boolean <B>extendParents</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeHandler"><!-- --></A><H3>
    +resizeHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>resizeHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSpaceManager(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxSpaceManager</H3>
    +<PRE>
    +public <B>mxSpaceManager</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isCellIgnored(java.lang.Object)"><!-- --></A><H3>
    +isCellIgnored</H3>
    +<PRE>
    +public boolean <B>isCellIgnored</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellShiftable(java.lang.Object)"><!-- --></A><H3>
    +isCellShiftable</H3>
    +<PRE>
    +public boolean <B>isCellShiftable</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the enabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the enabled to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isShiftRightwards()"><!-- --></A><H3>
    +isShiftRightwards</H3>
    +<PRE>
    +public boolean <B>isShiftRightwards</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the shiftRightwards</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setShiftRightwards(boolean)"><!-- --></A><H3>
    +setShiftRightwards</H3>
    +<PRE>
    +public void <B>setShiftRightwards</B>(boolean&nbsp;shiftRightwards)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>shiftRightwards</CODE> - the shiftRightwards to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isShiftDownwards()"><!-- --></A><H3>
    +isShiftDownwards</H3>
    +<PRE>
    +public boolean <B>isShiftDownwards</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the shiftDownwards</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setShiftDownwards(boolean)"><!-- --></A><H3>
    +setShiftDownwards</H3>
    +<PRE>
    +public void <B>setShiftDownwards</B>(boolean&nbsp;shiftDownwards)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>shiftDownwards</CODE> - the shiftDownwards to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isExtendParents()"><!-- --></A><H3>
    +isExtendParents</H3>
    +<PRE>
    +public boolean <B>isExtendParents</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the extendParents</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setExtendParents(boolean)"><!-- --></A><H3>
    +setExtendParents</H3>
    +<PRE>
    +public void <B>setExtendParents</B>(boolean&nbsp;extendParents)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>extendParents</CODE> - the extendParents to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraph()"><!-- --></A><H3>
    +getGraph</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>getGraph</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the graph</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGraph(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +setGraph</H3>
    +<PRE>
    +public void <B>setGraph</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - the graph to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsResized(java.lang.Object[])"><!-- --></A><H3>
    +cellsResized</H3>
    +<PRE>
    +protected void <B>cellsResized</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellResized(java.lang.Object)"><!-- --></A><H3>
    +cellResized</H3>
    +<PRE>
    +protected void <B>cellResized</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="shiftCell(java.lang.Object, double, double, double, double, double, double, double, double, boolean)"><!-- --></A><H3>
    +shiftCell</H3>
    +<PRE>
    +protected void <B>shiftCell</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell,
    +                         double&nbsp;dx,
    +                         double&nbsp;dy,
    +                         double&nbsp;x0,
    +                         double&nbsp;y0,
    +                         double&nbsp;right,
    +                         double&nbsp;bottom,
    +                         double&nbsp;fx,
    +                         double&nbsp;fy,
    +                         boolean&nbsp;extendParent)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellsToShift(com.mxgraph.view.mxCellState)"><!-- --></A><H3>
    +getCellsToShift</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getCellsToShift</B>(<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&nbsp;state)</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="destroy()"><!-- --></A><H3>
    +destroy</H3>
    +<PRE>
    +public void <B>destroy</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSpaceManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxSpaceManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSpaceManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxStyleRegistry.html b/java/docs/com/mxgraph/view/mxStyleRegistry.html
    new file mode 100644
    index 000000000..9b100271d
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxStyleRegistry.html
    @@ -0,0 +1,342 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxStyleRegistry (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxStyleRegistry (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStyleRegistry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxStyleRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStyleRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxStyleRegistry</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxStyleRegistry</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxStyleRegistry</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Singleton class that acts as a global converter from string to object values
    + in a style. This is currently only used to perimeters and edge styles.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStyleRegistry.html#values">values</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from strings to objects.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStyleRegistry.html#mxStyleRegistry()">mxStyleRegistry</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStyleRegistry.html#getName(java.lang.Object)">getName</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the name for the given value.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStyleRegistry.html#getValue(java.lang.String)">getValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value associated with the given name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStyleRegistry.html#putValue(java.lang.String, java.lang.Object)">putValue</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Puts the given object into the registry under the given name.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="values"><!-- --></A><H3>
    +values</H3>
    +<PRE>
    +protected static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>values</B></PRE>
    +<DL>
    +<DD>Maps from strings to objects.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxStyleRegistry()"><!-- --></A><H3>
    +mxStyleRegistry</H3>
    +<PRE>
    +public <B>mxStyleRegistry</B>()</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="putValue(java.lang.String, java.lang.Object)"><!-- --></A><H3>
    +putValue</H3>
    +<PRE>
    +public static void <B>putValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                            <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Puts the given object into the registry under the given name.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getValue(java.lang.String)"><!-- --></A><H3>
    +getValue</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getValue</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
    +<DL>
    +<DD>Returns the value associated with the given name.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getName(java.lang.Object)"><!-- --></A><H3>
    +getName</H3>
    +<PRE>
    +public static <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getName</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
    +<DL>
    +<DD>Returns the name for the given value.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStyleRegistry.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxStyleRegistry.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStyleRegistry.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxStylesheet.html b/java/docs/com/mxgraph/view/mxStylesheet.html
    new file mode 100644
    index 000000000..40199d1c9
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxStylesheet.html
    @@ -0,0 +1,529 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxStylesheet (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxStylesheet (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStylesheet.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxStylesheet.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStylesheet.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxStylesheet</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxStylesheet</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxStylesheet</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +Defines the appearance of the cells in a graph. The following example
    + changes the font size for all vertices by changing the default vertex
    + style in-place:
    + <code>
    + getDefaultVertexStyle().put(mxConstants.STYLE_FONTSIZE, 16);
    + </code>
    + 
    + To change the default font size for all cells, set
    + mxConstants.DEFAULT_FONTSIZE.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#EMPTY_STYLE">EMPTY_STYLE</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shared immutable empty hashtable (for undefined cell styles).</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#styles">styles</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps from names to styles.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#mxStylesheet()">mxStylesheet</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new stylesheet and assigns default styles.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#createDefaultEdgeStyle()">createDefaultEdgeStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns the default edge style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#createDefaultVertexStyle()">createDefaultVertexStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns the default vertex style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#getCellStyle(java.lang.String, java.util.Map)">getCellStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;defaultStyle)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the cell style for the specified cell or the given defaultStyle
    + if no style can be found for the given stylename.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#getDefaultEdgeStyle()">getDefaultEdgeStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the default style for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#getDefaultVertexStyle()">getDefaultVertexStyle</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the default style for vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#getStyles()">getStyles</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all styles as map of name, hashtable pairs.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#putCellStyle(java.lang.String, java.util.Map)">putCellStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores the specified style under the given name.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#setDefaultEdgeStyle(java.util.Map)">setDefaultEdgeStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the default style for edges.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#setDefaultVertexStyle(java.util.Map)">setDefaultVertexStyle</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the default style for vertices.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html#setStyles(java.util.Map)">setStyles</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&gt;&nbsp;styles)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets all styles in the stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="EMPTY_STYLE"><!-- --></A><H3>
    +EMPTY_STYLE</H3>
    +<PRE>
    +public static final <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>EMPTY_STYLE</B></PRE>
    +<DL>
    +<DD>Shared immutable empty hashtable (for undefined cell styles).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="styles"><!-- --></A><H3>
    +styles</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&gt; <B>styles</B></PRE>
    +<DL>
    +<DD>Maps from names to styles.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxStylesheet()"><!-- --></A><H3>
    +mxStylesheet</H3>
    +<PRE>
    +public <B>mxStylesheet</B>()</PRE>
    +<DL>
    +<DD>Constructs a new stylesheet and assigns default styles.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="getStyles()"><!-- --></A><H3>
    +getStyles</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&gt; <B>getStyles</B>()</PRE>
    +<DL>
    +<DD>Returns all styles as map of name, hashtable pairs.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>All styles in this stylesheet.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setStyles(java.util.Map)"><!-- --></A><H3>
    +setStyles</H3>
    +<PRE>
    +public void <B>setStyles</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&gt;&nbsp;styles)</PRE>
    +<DL>
    +<DD>Sets all styles in the stylesheet.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createDefaultVertexStyle()"><!-- --></A><H3>
    +createDefaultVertexStyle</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>createDefaultVertexStyle</B>()</PRE>
    +<DL>
    +<DD>Creates and returns the default vertex style.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the default vertex style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="createDefaultEdgeStyle()"><!-- --></A><H3>
    +createDefaultEdgeStyle</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>createDefaultEdgeStyle</B>()</PRE>
    +<DL>
    +<DD>Creates and returns the default edge style.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the default edge style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDefaultVertexStyle()"><!-- --></A><H3>
    +getDefaultVertexStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getDefaultVertexStyle</B>()</PRE>
    +<DL>
    +<DD>Returns the default style for vertices.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the default vertex style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDefaultVertexStyle(java.util.Map)"><!-- --></A><H3>
    +setDefaultVertexStyle</H3>
    +<PRE>
    +public void <B>setDefaultVertexStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the default style for vertices.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Style to be used for vertices.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getDefaultEdgeStyle()"><!-- --></A><H3>
    +getDefaultEdgeStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getDefaultEdgeStyle</B>()</PRE>
    +<DL>
    +<DD>Returns the default style for edges.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>Returns the default edge style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setDefaultEdgeStyle(java.util.Map)"><!-- --></A><H3>
    +setDefaultEdgeStyle</H3>
    +<PRE>
    +public void <B>setDefaultEdgeStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;value)</PRE>
    +<DL>
    +<DD>Sets the default style for edges.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - Style to be used for edges.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="putCellStyle(java.lang.String, java.util.Map)"><!-- --></A><H3>
    +putCellStyle</H3>
    +<PRE>
    +public void <B>putCellStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                         <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;style)</PRE>
    +<DL>
    +<DD>Stores the specified style under the given name.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name for the style to be stored.<DD><CODE>style</CODE> - Key, value pairs that define the style.</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getCellStyle(java.lang.String, java.util.Map)"><!-- --></A><H3>
    +getCellStyle</H3>
    +<PRE>
    +public <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt; <B>getCellStyle</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
    +                                       <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&gt;&nbsp;defaultStyle)</PRE>
    +<DL>
    +<DD>Returns the cell style for the specified cell or the given defaultStyle
    + if no style can be found for the given stylename.
    +<P>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>name</CODE> - String of the form [(stylename|key=value);] that represents the
    + style.<DD><CODE>defaultStyle</CODE> - Default style to be returned if no style can be found.
    +<DT><B>Returns:</B><DD>Returns the style for the given formatted cell style.</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxStylesheet.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxStylesheet.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxStylesheet.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxSwimlaneManager.html b/java/docs/com/mxgraph/view/mxSwimlaneManager.html
    new file mode 100644
    index 000000000..8a870f94e
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxSwimlaneManager.html
    @@ -0,0 +1,793 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxSwimlaneManager (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxSwimlaneManager (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSwimlaneManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxSwimlaneManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwimlaneManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxSwimlaneManager</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">com.mxgraph.util.mxEventSource</A>
    +      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxSwimlaneManager</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxSwimlaneManager</B><DT>extends <A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></DL>
    +</PRE>
    +
    +<P>
    +Manager for swimlanes and nested swimlanes that sets the size of newly added
    + swimlanes to that of their siblings, and propagates changes to the size of a
    + swimlane to its siblings, if siblings is true, and its ancestors, if
    + bubbling is true.
    +<P>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- ======== NESTED CLASS SUMMARY ======== -->
    +
    +<A NAME="nested_class_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Nested Class Summary</B></FONT></TH>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Nested classes/interfaces inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#addEnabled">addEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if newly added cells should be resized to match the size of their
    + existing siblings.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#addHandler">addHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#enabled">enabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#graph">graph</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the type of the source or target terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#horizontal">horizontal</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#resizeEnabled">resizeEnabled</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifies if resizing of swimlanes should be handled.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#resizeHandler">resizeHandler</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="fields_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Fields inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#eventListeners">eventListeners</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventsEnabled">eventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#eventSource">eventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#mxSwimlaneManager(com.mxgraph.view.mxGraph)">mxSwimlaneManager</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#cellsAdded(java.lang.Object[])">cellsAdded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called if any cells have been added.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#cellsResized(java.lang.Object[])">cellsResized</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called if any cells have been resizes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#destroy()">destroy</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#getGraph()">getGraph</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#isAddEnabled()">isAddEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#isCellHorizontal(java.lang.Object)">isCellHorizontal</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given cell is horizontal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#isEnabled()">isEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#isHorizontal()">isHorizontal</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#isResizeEnabled()">isResizeEnabled</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;boolean</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#isSwimlaneIgnored(java.lang.Object)">isSwimlaneIgnored</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;swimlane)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the given swimlane should be ignored.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#resizeSwimlane(java.lang.Object, double, double)">resizeSwimlane</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;swimlane,
    +               double&nbsp;w,
    +               double&nbsp;h)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the width or height of the given swimlane to the given value depending
    + on <horizontal>.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#setAddEnabled(boolean)">setAddEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#setEnabled(boolean)">setEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#setGraph(com.mxgraph.view.mxGraph)">setGraph</A></B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#setHorizontal(boolean)">setHorizontal</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#setResizeEnabled(boolean)">setResizeEnabled</A></B>(boolean&nbsp;value)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html#swimlaneAdded(java.lang.Object)">swimlaneAdded</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;swimlane)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called for each swimlane which has been added.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_com.mxgraph.util.mxEventSource"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="../../../com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)">addListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)">fireEvent</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#getEventSource()">getEventSource</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#isEventsEnabled()">isEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)">removeListener</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)">setEventsEnabled</A>, <A HREF="../../../com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)">setEventSource</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="graph"><!-- --></A><H3>
    +graph</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>graph</B></PRE>
    +<DL>
    +<DD>Defines the type of the source or target terminal. The type is a string
    + passed to mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="enabled"><!-- --></A><H3>
    +enabled</H3>
    +<PRE>
    +protected boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="horizontal"><!-- --></A><H3>
    +horizontal</H3>
    +<PRE>
    +protected boolean <B>horizontal</B></PRE>
    +<DL>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="addEnabled"><!-- --></A><H3>
    +addEnabled</H3>
    +<PRE>
    +protected boolean <B>addEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if newly added cells should be resized to match the size of their
    + existing siblings. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeEnabled"><!-- --></A><H3>
    +resizeEnabled</H3>
    +<PRE>
    +protected boolean <B>resizeEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if resizing of swimlanes should be handled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="addHandler"><!-- --></A><H3>
    +addHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>addHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeHandler"><!-- --></A><H3>
    +resizeHandler</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>resizeHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxSwimlaneManager(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +mxSwimlaneManager</H3>
    +<PRE>
    +public <B>mxSwimlaneManager</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="isEnabled()"><!-- --></A><H3>
    +isEnabled</H3>
    +<PRE>
    +public boolean <B>isEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the enabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setEnabled(boolean)"><!-- --></A><H3>
    +setEnabled</H3>
    +<PRE>
    +public void <B>setEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the enabled to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isHorizontal()"><!-- --></A><H3>
    +isHorizontal</H3>
    +<PRE>
    +public boolean <B>isHorizontal</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the bubbling</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setHorizontal(boolean)"><!-- --></A><H3>
    +setHorizontal</H3>
    +<PRE>
    +public void <B>setHorizontal</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the bubbling to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isAddEnabled()"><!-- --></A><H3>
    +isAddEnabled</H3>
    +<PRE>
    +public boolean <B>isAddEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the addEnabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setAddEnabled(boolean)"><!-- --></A><H3>
    +setAddEnabled</H3>
    +<PRE>
    +public void <B>setAddEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the addEnabled to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isResizeEnabled()"><!-- --></A><H3>
    +isResizeEnabled</H3>
    +<PRE>
    +public boolean <B>isResizeEnabled</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the resizeEnabled</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setResizeEnabled(boolean)"><!-- --></A><H3>
    +setResizeEnabled</H3>
    +<PRE>
    +public void <B>setResizeEnabled</B>(boolean&nbsp;value)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>value</CODE> - the resizeEnabled to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="getGraph()"><!-- --></A><H3>
    +getGraph</H3>
    +<PRE>
    +public <A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>getGraph</B>()</PRE>
    +<DL>
    +<DD><DL>
    +
    +<DT><B>Returns:</B><DD>the graph</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="setGraph(com.mxgraph.view.mxGraph)"><!-- --></A><H3>
    +setGraph</H3>
    +<PRE>
    +public void <B>setGraph</B>(<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>&nbsp;graph)</PRE>
    +<DL>
    +<DD><DL>
    +<DT><B>Parameters:</B><DD><CODE>graph</CODE> - the graph to set</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isSwimlaneIgnored(java.lang.Object)"><!-- --></A><H3>
    +isSwimlaneIgnored</H3>
    +<PRE>
    +protected boolean <B>isSwimlaneIgnored</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;swimlane)</PRE>
    +<DL>
    +<DD>Returns true if the given swimlane should be ignored.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="isCellHorizontal(java.lang.Object)"><!-- --></A><H3>
    +isCellHorizontal</H3>
    +<PRE>
    +protected boolean <B>isCellHorizontal</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;cell)</PRE>
    +<DL>
    +<DD>Returns true if the given cell is horizontal. If the given cell is not a
    + swimlane, then the <horizontal> value is returned.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsAdded(java.lang.Object[])"><!-- --></A><H3>
    +cellsAdded</H3>
    +<PRE>
    +protected void <B>cellsAdded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Called if any cells have been added. Calls swimlaneAdded for all swimlanes
    + where isSwimlaneIgnored returns false.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="swimlaneAdded(java.lang.Object)"><!-- --></A><H3>
    +swimlaneAdded</H3>
    +<PRE>
    +protected void <B>swimlaneAdded</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;swimlane)</PRE>
    +<DL>
    +<DD>Called for each swimlane which has been added. This finds a reference
    + sibling swimlane and applies its size to the newly added swimlane. If no
    + sibling can be found then the parent swimlane is resized so that the
    + new swimlane fits into the parent swimlane.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="cellsResized(java.lang.Object[])"><!-- --></A><H3>
    +cellsResized</H3>
    +<PRE>
    +protected void <B>cellsResized</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Called if any cells have been resizes. Calls swimlaneResized for all
    + swimlanes where isSwimlaneIgnored returns false.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="resizeSwimlane(java.lang.Object, double, double)"><!-- --></A><H3>
    +resizeSwimlane</H3>
    +<PRE>
    +protected void <B>resizeSwimlane</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;swimlane,
    +                              double&nbsp;w,
    +                              double&nbsp;h)</PRE>
    +<DL>
    +<DD>Sets the width or height of the given swimlane to the given value depending
    + on <horizontal>. If <horizontal> is true, then the width is set, otherwise,
    + the height is set.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<HR>
    +
    +<A NAME="destroy()"><!-- --></A><H3>
    +destroy</H3>
    +<PRE>
    +public void <B>destroy</B>()</PRE>
    +<DL>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxSwimlaneManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view"><B>NEXT CLASS</B></A></FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxSwimlaneManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxSwimlaneManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_com.mxgraph.util.mxEventSource">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/mxTemporaryCellStates.html b/java/docs/com/mxgraph/view/mxTemporaryCellStates.html
    new file mode 100644
    index 000000000..db38423ac
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/mxTemporaryCellStates.html
    @@ -0,0 +1,385 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +mxTemporaryCellStates (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="mxTemporaryCellStates (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxTemporaryCellStates.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxTemporaryCellStates.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTemporaryCellStates.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<!-- ======== START OF CLASS DATA ======== -->
    +<H2>
    +<FONT SIZE="-1">
    +com.mxgraph.view</FONT>
    +<BR>
    +Class mxTemporaryCellStates</H2>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
    +  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.mxgraph.view.mxTemporaryCellStates</B>
    +</PRE>
    +<HR>
    +<DL>
    +<DT><PRE>public class <B>mxTemporaryCellStates</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
    +</PRE>
    +
    +<P>
    +<HR>
    +
    +<P>
    +<!-- =========== FIELD SUMMARY =========== -->
    +
    +<A NAME="field_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Field Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html#oldBounds">oldBounds</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;double</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html#oldScale">oldScale</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt;</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html#oldStates">oldStates</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>protected &nbsp;<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html#view">view</A></B></CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
    +
    +<A NAME="constructor_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Constructor Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html#mxTemporaryCellStates(com.mxgraph.view.mxGraphView)">mxTemporaryCellStates</A></B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new temporary cell states instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html#mxTemporaryCellStates(com.mxgraph.view.mxGraphView, double)">mxTemporaryCellStates</A></B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                      double&nbsp;scale)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new temporary cell states instance.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html#mxTemporaryCellStates(com.mxgraph.view.mxGraphView, double, java.lang.Object[])">mxTemporaryCellStates</A></B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                      double&nbsp;scale,
    +                      <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new temporary cell states instance.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<!-- ========== METHOD SUMMARY =========== -->
    +
    +<A NAME="method_summary"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Method Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    +<CODE>&nbsp;void</CODE></FONT></TD>
    +<TD><CODE><B><A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html#destroy()">destroy</A></B>()</CODE>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destroys the cell states and restores the state of the graph view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +
    +<!-- ============ FIELD DETAIL =========== -->
    +
    +<A NAME="field_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Field Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="view"><!-- --></A><H3>
    +view</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> <B>view</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="oldStates"><!-- --></A><H3>
    +oldStates</H3>
    +<PRE>
    +protected <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>&gt; <B>oldStates</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="oldBounds"><!-- --></A><H3>
    +oldBounds</H3>
    +<PRE>
    +protected <A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>oldBounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +
    +<A NAME="oldScale"><!-- --></A><H3>
    +oldScale</H3>
    +<PRE>
    +protected double <B>oldScale</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +
    +<!-- ========= CONSTRUCTOR DETAIL ======== -->
    +
    +<A NAME="constructor_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Constructor Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="mxTemporaryCellStates(com.mxgraph.view.mxGraphView)"><!-- --></A><H3>
    +mxTemporaryCellStates</H3>
    +<PRE>
    +public <B>mxTemporaryCellStates</B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view)</PRE>
    +<DL>
    +<DD>Constructs a new temporary cell states instance.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxTemporaryCellStates(com.mxgraph.view.mxGraphView, double)"><!-- --></A><H3>
    +mxTemporaryCellStates</H3>
    +<PRE>
    +public <B>mxTemporaryCellStates</B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                             double&nbsp;scale)</PRE>
    +<DL>
    +<DD>Constructs a new temporary cell states instance.
    +<P>
    +</DL>
    +<HR>
    +
    +<A NAME="mxTemporaryCellStates(com.mxgraph.view.mxGraphView, double, java.lang.Object[])"><!-- --></A><H3>
    +mxTemporaryCellStates</H3>
    +<PRE>
    +public <B>mxTemporaryCellStates</B>(<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>&nbsp;view,
    +                             double&nbsp;scale,
    +                             <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;cells)</PRE>
    +<DL>
    +<DD>Constructs a new temporary cell states instance.
    +<P>
    +</DL>
    +
    +<!-- ============ METHOD DETAIL ========== -->
    +
    +<A NAME="method_detail"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Method Detail</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<A NAME="destroy()"><!-- --></A><H3>
    +destroy</H3>
    +<PRE>
    +public void <B>destroy</B>()</PRE>
    +<DL>
    +<DD>Destroys the cell states and restores the state of the graph view.
    +<P>
    +<DD><DL>
    +</DL>
    +</DD>
    +</DL>
    +<!-- ========= END OF CLASS DATA ========= -->
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/mxTemporaryCellStates.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view"><B>PREV CLASS</B></A>&nbsp;
    +&nbsp;NEXT CLASS</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/mxTemporaryCellStates.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="mxTemporaryCellStates.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +<TR>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    +DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/package-frame.html b/java/docs/com/mxgraph/view/package-frame.html
    new file mode 100644
    index 000000000..4a3beaa13
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/package-frame.html
    @@ -0,0 +1,77 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.view (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +<FONT size="+1" CLASS="FrameTitleFont">
    +<A HREF="../../../com/mxgraph/view/package-summary.html" target="classFrame">com.mxgraph.view</A></FONT>
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Interfaces</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view" target="classFrame"><I>mxEdgeStyle.mxEdgeStyleFunction</I></A>
    +<BR>
    +<A HREF="mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view" target="classFrame"><I>mxGraph.mxICellVisitor</I></A>
    +<BR>
    +<A HREF="mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view" target="classFrame"><I>mxPerimeter.mxPerimeterFunction</I></A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
    +Classes</FONT>&nbsp;
    +<FONT CLASS="FrameItemFont">
    +<BR>
    +<A HREF="mxCellState.html" title="class in com.mxgraph.view" target="classFrame">mxCellState</A>
    +<BR>
    +<A HREF="mxConnectionConstraint.html" title="class in com.mxgraph.view" target="classFrame">mxConnectionConstraint</A>
    +<BR>
    +<A HREF="mxEdgeStyle.html" title="class in com.mxgraph.view" target="classFrame">mxEdgeStyle</A>
    +<BR>
    +<A HREF="mxGraph.html" title="class in com.mxgraph.view" target="classFrame">mxGraph</A>
    +<BR>
    +<A HREF="mxGraphSelectionModel.html" title="class in com.mxgraph.view" target="classFrame">mxGraphSelectionModel</A>
    +<BR>
    +<A HREF="mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view" target="classFrame">mxGraphSelectionModel.mxSelectionChange</A>
    +<BR>
    +<A HREF="mxGraphView.html" title="class in com.mxgraph.view" target="classFrame">mxGraphView</A>
    +<BR>
    +<A HREF="mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view" target="classFrame">mxGraphView.mxCurrentRootChange</A>
    +<BR>
    +<A HREF="mxLayoutManager.html" title="class in com.mxgraph.view" target="classFrame">mxLayoutManager</A>
    +<BR>
    +<A HREF="mxMultiplicity.html" title="class in com.mxgraph.view" target="classFrame">mxMultiplicity</A>
    +<BR>
    +<A HREF="mxPerimeter.html" title="class in com.mxgraph.view" target="classFrame">mxPerimeter</A>
    +<BR>
    +<A HREF="mxSpaceManager.html" title="class in com.mxgraph.view" target="classFrame">mxSpaceManager</A>
    +<BR>
    +<A HREF="mxStyleRegistry.html" title="class in com.mxgraph.view" target="classFrame">mxStyleRegistry</A>
    +<BR>
    +<A HREF="mxStylesheet.html" title="class in com.mxgraph.view" target="classFrame">mxStylesheet</A>
    +<BR>
    +<A HREF="mxSwimlaneManager.html" title="class in com.mxgraph.view" target="classFrame">mxSwimlaneManager</A>
    +<BR>
    +<A HREF="mxTemporaryCellStates.html" title="class in com.mxgraph.view" target="classFrame">mxTemporaryCellStates</A></FONT></TD>
    +</TR>
    +</TABLE>
    +
    +
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/package-summary.html b/java/docs/com/mxgraph/view/package-summary.html
    new file mode 100644
    index 000000000..d2e4ce123
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/package-summary.html
    @@ -0,0 +1,268 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.view (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.view (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/svg/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;NEXT PACKAGE</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<H2>
    +Package com.mxgraph.view
    +</H2>
    +This package implements the graph component, represented by the mxGraph
    +  class.
    +<P>
    +<B>See:</B>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Interface Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A></B></TD>
    +<TD>Defines the requirements for an edge style function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A></B></TD>
    +<TD>Defines the requirements for a perimeter function.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class Summary</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A></B></TD>
    +<TD>Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A></B></TD>
    +<TD>Defines an object that contains the constraints about how to connect one
    + side of an edge to its terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A></B></TD>
    +<TD>Provides various edge styles to be used as the values for
    + mxConstants.STYLE_EDGE in a cell style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></B></TD>
    +<TD>Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A></B></TD>
    +<TD>Implements the selection model for a graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A></B></TD>
    +<TD>Implements a view for the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A></B></TD>
    +<TD>Action to change the current root in a view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A></B></TD>
    +<TD>Implements a layout manager that updates the layout for a given transaction.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view">mxPerimeter</A></B></TD>
    +<TD>Provides various perimeter functions to be used in a style
    + as the value of mxConstants.STYLE_PERIMETER.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view">mxStyleRegistry</A></B></TD>
    +<TD>Singleton class that acts as a global converter from string to object values
    + in a style.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A></B></TD>
    +<TD>Defines the appearance of the cells in a graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A></B></TD>
    +<TD>Manager for swimlanes and nested swimlanes that sets the size of newly added
    + swimlanes to that of their siblings, and propagates changes to the size of a
    + swimlane to its siblings, if siblings is true, and its ancestors, if
    + bubbling is true.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="15%"><B><A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +
    +<P>
    +<A NAME="package_description"><!-- --></A><H2>
    +Package com.mxgraph.view Description
    +</H2>
    +
    +<P>
    +This package implements the graph component, represented by the mxGraph
    +  class. The graph holds an mxGraphModel which contains mxCells and caches the
    +  state of the cells in mxGraphView. The cells are painted using a canvas from
    +  the canvas package. The style of the graph is represented by the mxStylesheet
    +  class.
    +<P>
    +
    +<P>
    +<DL>
    +</DL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/svg/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
    +&nbsp;NEXT PACKAGE</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/package-tree.html b/java/docs/com/mxgraph/view/package-tree.html
    new file mode 100644
    index 000000000..74dd0b563
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/package-tree.html
    @@ -0,0 +1,168 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +com.mxgraph.view Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="com.mxgraph.view Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/svg/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For Package com.mxgraph.view
    +</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view"><B>mxConnectionConstraint</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view"><B>mxEdgeStyle</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>mxEventSource</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view"><B>mxGraph</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view"><B>mxGraphSelectionModel</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view"><B>mxGraphView</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view"><B>mxLayoutManager</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view"><B>mxSpaceManager</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view"><B>mxSwimlaneManager</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view"><B>mxGraphSelectionModel.mxSelectionChange</B></A> (implements com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>)
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view"><B>mxGraphView.mxCurrentRootChange</B></A> (implements com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>)
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view"><B>mxMultiplicity</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view"><B>mxPerimeter</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><B>mxPoint</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><B>mxRectangle</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view"><B>mxCellState</B></A></UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view"><B>mxStyleRegistry</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view"><B>mxStylesheet</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view"><B>mxTemporaryCellStates</B></A></UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><B>mxEdgeStyle.mxEdgeStyleFunction</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><B>mxGraph.mxICellVisitor</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="../../../com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><B>mxPerimeter.mxPerimeterFunction</B></A></UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;<A HREF="../../../com/mxgraph/util/svg/package-tree.html"><B>PREV</B></A>&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/com/mxgraph/view/package-use.html b/java/docs/com/mxgraph/view/package-use.html
    new file mode 100644
    index 000000000..6321d7897
    --- /dev/null
    +++ b/java/docs/com/mxgraph/view/package-use.html
    @@ -0,0 +1,596 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Uses of Package com.mxgraph.view (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Uses of Package com.mxgraph.view (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Uses of Package<br>com.mxgraph.view</B></H2>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Packages that use <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.analysis"><B>com.mxgraph.analysis</B></A></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.canvas"><B>com.mxgraph.canvas</B></A></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io"><B>com.mxgraph.io</B></A></TD>
    +<TD>This package contains all classes for input/output.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.io.graphml"><B>com.mxgraph.io.graphml</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout"><B>com.mxgraph.layout</B></A></TD>
    +<TD>This package contains various graph layouts.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical"><B>com.mxgraph.layout.hierarchical</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.hierarchical.stage"><B>com.mxgraph.layout.hierarchical.stage</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.orthogonal"><B>com.mxgraph.layout.orthogonal</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.layout.orthogonal.model"><B>com.mxgraph.layout.orthogonal.model</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.reader"><B>com.mxgraph.reader</B></A></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.shape"><B>com.mxgraph.shape</B></A></TD>
    +<TD>&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing"><B>com.mxgraph.swing</B></A></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.handler"><B>com.mxgraph.swing.handler</B></A></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.util"><B>com.mxgraph.swing.util</B></A></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.swing.view"><B>com.mxgraph.swing.view</B></A></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.util"><B>com.mxgraph.util</B></A></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="#com.mxgraph.view"><B>com.mxgraph.view</B></A></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.analysis"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.analysis"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.analysis"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.canvas"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.canvas"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/io/package-summary.html">com.mxgraph.io</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.io"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.io.graphml"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.io.graphml"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.layout"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.layout"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.mxICellVisitor.html#com.mxgraph.layout"><B>mxGraph.mxICellVisitor</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.layout.hierarchical"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.layout.hierarchical.stage"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.orthogonal"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.layout.orthogonal"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.layout.orthogonal.model"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.layout.orthogonal.model"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.reader"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.reader"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.shape"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.shape"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.swing"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.swing"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.handler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.swing.handler"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.swing.handler"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.swing.util"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.swing.util"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.swing.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.swing.view"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.util"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/util/package-summary.html">com.mxgraph.util</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.util"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.util"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<A NAME="com.mxgraph.view"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +Classes in <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A> used by <A HREF="../../../com/mxgraph/view/package-summary.html">com.mxgraph.view</A></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxCellState.html#com.mxgraph.view"><B>mxCellState</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the current state of a cell in a given graph view.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxConnectionConstraint.html#com.mxgraph.view"><B>mxConnectionConstraint</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines an object that contains the constraints about how to connect one
    + side of an edge to its terminal.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxEdgeStyle.mxEdgeStyleFunction.html#com.mxgraph.view"><B>mxEdgeStyle.mxEdgeStyleFunction</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for an edge style function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.html#com.mxgraph.view"><B>mxGraph</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraph.mxICellVisitor.html#com.mxgraph.view"><B>mxGraph.mxICellVisitor</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraphSelectionModel.html#com.mxgraph.view"><B>mxGraphSelectionModel</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements the selection model for a graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxGraphView.html#com.mxgraph.view"><B>mxGraphView</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a view for the graph.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxMultiplicity.html#com.mxgraph.view"><B>mxMultiplicity</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxPerimeter.mxPerimeterFunction.html#com.mxgraph.view"><B>mxPerimeter.mxPerimeterFunction</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the requirements for a perimeter function.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><B><A HREF="../../../com/mxgraph/view/class-use/mxStylesheet.html#com.mxgraph.view"><B>mxStylesheet</B></A></B>
    +
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the appearance of the cells in a graph.</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="../../../index.html?com/mxgraph/view/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/constant-values.html b/java/docs/constant-values.html
    new file mode 100644
    index 000000000..1e0e7a759
    --- /dev/null
    +++ b/java/docs/constant-values.html
    @@ -0,0 +1,1111 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +Constant Field Values (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Constant Field Values (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H1>
    +Constant Field Values</H1>
    +</CENTER>
    +<HR SIZE="4" NOSHADE>
    +<B>Contents</B><UL>
    +<LI><A HREF="#com.mxgraph">com.mxgraph.*</A>
    +</UL>
    +
    +<A NAME="com.mxgraph"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left"><FONT SIZE="+2">
    +com.mxgraph.*</FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.canvas.mxGraphics2DCanvas.TEXT_SHAPE_DEFAULT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/canvas/mxGraphics2DCanvas.html#TEXT_SHAPE_DEFAULT">TEXT_SHAPE_DEFAULT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"default"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.canvas.mxGraphics2DCanvas.TEXT_SHAPE_HTML"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/canvas/mxGraphics2DCanvas.html#TEXT_SHAPE_HTML">TEXT_SHAPE_HTML</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"html"</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.swing.<A HREF="com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.swing.mxGraphComponent.DEFAULT_PAGESCALE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;double</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/swing/mxGraphComponent.html#DEFAULT_PAGESCALE">DEFAULT_PAGESCALE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1.4</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.swing.mxGraphComponent.GRID_STYLE_CROSS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_CROSS">GRID_STYLE_CROSS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.swing.mxGraphComponent.GRID_STYLE_DASHED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_DASHED">GRID_STYLE_DASHED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>3</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.swing.mxGraphComponent.GRID_STYLE_DOT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_DOT">GRID_STYLE_DOT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>0</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.swing.mxGraphComponent.GRID_STYLE_LINE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_LINE">GRID_STYLE_LINE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>2</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.swing.mxGraphComponent.ZOOM_POLICY_NONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/swing/mxGraphComponent.html#ZOOM_POLICY_NONE">ZOOM_POLICY_NONE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>0</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.swing.mxGraphComponent.ZOOM_POLICY_PAGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/swing/mxGraphComponent.html#ZOOM_POLICY_PAGE">ZOOM_POLICY_PAGE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.swing.mxGraphComponent.ZOOM_POLICY_WIDTH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/swing/mxGraphComponent.html#ZOOM_POLICY_WIDTH">ZOOM_POLICY_WIDTH</A></CODE></TD>
    +<TD ALIGN="right"><CODE>2</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.util.<A HREF="com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ALIGN_BOTTOM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ALIGN_BOTTOM">ALIGN_BOTTOM</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"bottom"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ALIGN_CENTER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ALIGN_CENTER">ALIGN_CENTER</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"center"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ALIGN_LEFT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ALIGN_LEFT">ALIGN_LEFT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"left"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ALIGN_MIDDLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ALIGN_MIDDLE">ALIGN_MIDDLE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"middle"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ALIGN_RIGHT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ALIGN_RIGHT">ALIGN_RIGHT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"right"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ALIGN_TOP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ALIGN_TOP">ALIGN_TOP</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"top"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ARROW_BLOCK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ARROW_BLOCK">ARROW_BLOCK</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"block"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ARROW_CLASSIC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ARROW_CLASSIC">ARROW_CLASSIC</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"classic"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ARROW_DIAMOND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ARROW_DIAMOND">ARROW_DIAMOND</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"diamond"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ARROW_OPEN"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ARROW_OPEN">ARROW_OPEN</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"open"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ARROW_OVAL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ARROW_OVAL">ARROW_OVAL</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"oval"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_EAST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_EAST">DIRECTION_EAST</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"east"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_MASK_ALL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_MASK_ALL">DIRECTION_MASK_ALL</A></CODE></TD>
    +<TD ALIGN="right"><CODE>15</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_MASK_EAST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_MASK_EAST">DIRECTION_MASK_EAST</A></CODE></TD>
    +<TD ALIGN="right"><CODE>8</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_MASK_NONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_MASK_NONE">DIRECTION_MASK_NONE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>0</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_MASK_NORTH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_MASK_NORTH">DIRECTION_MASK_NORTH</A></CODE></TD>
    +<TD ALIGN="right"><CODE>2</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_MASK_SOUTH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_MASK_SOUTH">DIRECTION_MASK_SOUTH</A></CODE></TD>
    +<TD ALIGN="right"><CODE>4</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_MASK_WEST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_MASK_WEST">DIRECTION_MASK_WEST</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_NORTH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_NORTH">DIRECTION_NORTH</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"north"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_SOUTH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_SOUTH">DIRECTION_SOUTH</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"south"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.DIRECTION_WEST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#DIRECTION_WEST">DIRECTION_WEST</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"west"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.EDGESTYLE_ELBOW"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#EDGESTYLE_ELBOW">EDGESTYLE_ELBOW</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"elbowEdgeStyle"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.EDGESTYLE_ENTITY_RELATION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#EDGESTYLE_ENTITY_RELATION">EDGESTYLE_ENTITY_RELATION</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"entityRelationEdgeStyle"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.EDGESTYLE_LOOP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#EDGESTYLE_LOOP">EDGESTYLE_LOOP</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"loopEdgeStyle"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.EDGESTYLE_ORTHOGONAL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#EDGESTYLE_ORTHOGONAL">EDGESTYLE_ORTHOGONAL</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"orthogonalEdgeStyle"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.EDGESTYLE_SIDETOSIDE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#EDGESTYLE_SIDETOSIDE">EDGESTYLE_SIDETOSIDE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"sideToSideEdgeStyle"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.EDGESTYLE_TOPTOBOTTOM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#EDGESTYLE_TOPTOBOTTOM">EDGESTYLE_TOPTOBOTTOM</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"topToBottomEdgeStyle"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ELBOW_HORIZONTAL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ELBOW_HORIZONTAL">ELBOW_HORIZONTAL</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"horizontal"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.ELBOW_VERTICAL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#ELBOW_VERTICAL">ELBOW_VERTICAL</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"vertical"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.FONT_BOLD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#FONT_BOLD">FONT_BOLD</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.FONT_ITALIC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#FONT_ITALIC">FONT_ITALIC</A></CODE></TD>
    +<TD ALIGN="right"><CODE>2</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.FONT_SHADOW"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#FONT_SHADOW">FONT_SHADOW</A></CODE></TD>
    +<TD ALIGN="right"><CODE>8</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.FONT_UNDERLINE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#FONT_UNDERLINE">FONT_UNDERLINE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>4</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.PERIMETER_ELLIPSE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#PERIMETER_ELLIPSE">PERIMETER_ELLIPSE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"ellipsePerimeter"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.PERIMETER_HEXAGON"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#PERIMETER_HEXAGON">PERIMETER_HEXAGON</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"hexagonPerimeter"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.PERIMETER_RECTANGLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#PERIMETER_RECTANGLE">PERIMETER_RECTANGLE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"rectanglePerimeter"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.PERIMETER_RHOMBUS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#PERIMETER_RHOMBUS">PERIMETER_RHOMBUS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"rhombusPerimeter"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.PERIMETER_TRIANGLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#PERIMETER_TRIANGLE">PERIMETER_TRIANGLE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"trianglePerimeter"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_ACTOR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_ACTOR">SHAPE_ACTOR</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"actor"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_ARROW"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_ARROW">SHAPE_ARROW</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"arrow"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_CLOUD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_CLOUD">SHAPE_CLOUD</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cloud"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_CONNECTOR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_CONNECTOR">SHAPE_CONNECTOR</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"connector"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_CURVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_CURVE">SHAPE_CURVE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"curve"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_CYLINDER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_CYLINDER">SHAPE_CYLINDER</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cylinder"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_DOUBLE_ELLIPSE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_DOUBLE_ELLIPSE">SHAPE_DOUBLE_ELLIPSE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"doubleEllipse"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_ELLIPSE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_ELLIPSE">SHAPE_ELLIPSE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"ellipse"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_HEXAGON"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_HEXAGON">SHAPE_HEXAGON</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"hexagon"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_IMAGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_IMAGE">SHAPE_IMAGE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"image"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_LABEL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_LABEL">SHAPE_LABEL</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"label"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_LINE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_LINE">SHAPE_LINE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"line"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_RECTANGLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_RECTANGLE">SHAPE_RECTANGLE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"rectangle"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_RHOMBUS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_RHOMBUS">SHAPE_RHOMBUS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"rhombus"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_SWIMLANE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_SWIMLANE">SHAPE_SWIMLANE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"swimlane"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxConstants.SHAPE_TRIANGLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxConstants.html#SHAPE_TRIANGLE">SHAPE_TRIANGLE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"triangle"</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.util.<A HREF="com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.ADD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#ADD">ADD</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"add"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.ADD_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#ADD_CELLS">ADD_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"addCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.ADD_OVERLAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#ADD_OVERLAY">ADD_OVERLAY</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"addOverlay"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.AFTER_PAINT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#AFTER_PAINT">AFTER_PAINT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"afterPaint"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.ALIGN_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#ALIGN_CELLS">ALIGN_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"alignCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.BEFORE_PAINT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#BEFORE_PAINT">BEFORE_PAINT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"beforePaint"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.BEFORE_UNDO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#BEFORE_UNDO">BEFORE_UNDO</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"beforeUndo"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.BEGIN_UPDATE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#BEGIN_UPDATE">BEGIN_UPDATE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"beginUpdate"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CELL_CONNECTED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CELL_CONNECTED">CELL_CONNECTED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cellConnected"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CELLS_ADDED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CELLS_ADDED">CELLS_ADDED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cellsAdded"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CELLS_FOLDED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CELLS_FOLDED">CELLS_FOLDED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cellsFolded"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CELLS_MOVED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CELLS_MOVED">CELLS_MOVED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cellsMoved"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CELLS_ORDERED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CELLS_ORDERED">CELLS_ORDERED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cellsOrdered"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CELLS_REMOVED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CELLS_REMOVED">CELLS_REMOVED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cellsRemoved"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CELLS_RESIZED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CELLS_RESIZED">CELLS_RESIZED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cellsResized"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CELLS_TOGGLED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CELLS_TOGGLED">CELLS_TOGGLED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"cellsToggled"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CHANGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CHANGE">CHANGE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"change"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CLEAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CLEAR">CLEAR</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"clear"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CONNECT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CONNECT">CONNECT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"connect"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.CONNECT_CELL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#CONNECT_CELL">CONNECT_CELL</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"connectCell"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.DONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#DONE">DONE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"done"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.DOWN"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#DOWN">DOWN</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"down"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.END_UPDATE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#END_UPDATE">END_UPDATE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"endUpdate"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.EXECUTE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#EXECUTE">EXECUTE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"execute"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.FIRED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#FIRED">FIRED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"fired"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.FLIP_EDGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#FLIP_EDGE">FLIP_EDGE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"flipEdge"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.FOLD_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#FOLD_CELLS">FOLD_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"foldCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.GROUP_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#GROUP_CELLS">GROUP_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"groupCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.INSERT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#INSERT">INSERT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"insert"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.LABEL_CHANGED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#LABEL_CHANGED">LABEL_CHANGED</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"labelChanged"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.MOVE_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#MOVE_CELLS">MOVE_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"moveCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.NOTIFY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#NOTIFY">NOTIFY</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"notify"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.ORDER_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#ORDER_CELLS">ORDER_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"orderCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.PAINT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#PAINT">PAINT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"paint"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.REDO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#REDO">REDO</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"redo"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.REMOVE_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#REMOVE_CELLS">REMOVE_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"removeCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.REMOVE_CELLS_FROM_PARENT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#REMOVE_CELLS_FROM_PARENT">REMOVE_CELLS_FROM_PARENT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"removeCellsFromParent"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.REMOVE_OVERLAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#REMOVE_OVERLAY">REMOVE_OVERLAY</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"removeOverlay"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.REPAINT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#REPAINT">REPAINT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"repaint"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.RESIZE_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#RESIZE_CELLS">RESIZE_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"resizeCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.SCALE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#SCALE">SCALE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"scale"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.SCALE_AND_TRANSLATE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#SCALE_AND_TRANSLATE">SCALE_AND_TRANSLATE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"scaleAndTranslate"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.SELECT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#SELECT">SELECT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"select"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.SPLIT_EDGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#SPLIT_EDGE">SPLIT_EDGE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"splitEdge"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.START_EDITING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#START_EDITING">START_EDITING</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"startEditing"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.TOGGLE_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#TOGGLE_CELLS">TOGGLE_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"toggleCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.TRANSLATE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#TRANSLATE">TRANSLATE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"translate"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.UNDO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#UNDO">UNDO</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"undo"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.UNGROUP_CELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#UNGROUP_CELLS">UNGROUP_CELLS</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"ungroupCells"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.UP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#UP">UP</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"up"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.mxEvent.UPDATE_CELL_SIZE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/mxEvent.html#UPDATE_CELL_SIZE">UPDATE_CELL_SIZE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"updateCellSize"</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.util.png.<A HREF="com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngEncodeParam.INTENT_ABSOLUTE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_ABSOLUTE">INTENT_ABSOLUTE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>3</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngEncodeParam.INTENT_PERCEPTUAL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_PERCEPTUAL">INTENT_PERCEPTUAL</A></CODE></TD>
    +<TD ALIGN="right"><CODE>0</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngEncodeParam.INTENT_RELATIVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_RELATIVE">INTENT_RELATIVE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngEncodeParam.INTENT_SATURATION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_SATURATION">INTENT_SATURATION</A></CODE></TD>
    +<TD ALIGN="right"><CODE>2</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_AVERAGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_AVERAGE">PNG_FILTER_AVERAGE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>3</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_NONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_NONE">PNG_FILTER_NONE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>0</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_PAETH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_PAETH">PNG_FILTER_PAETH</A></CODE></TD>
    +<TD ALIGN="right"><CODE>4</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_SUB"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_SUB">PNG_FILTER_SUB</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngEncodeParam.PNG_FILTER_UP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_UP">PNG_FILTER_UP</A></CODE></TD>
    +<TD ALIGN="right"><CODE>2</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.util.png.<A HREF="com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png">mxPngTextDecoder</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngTextDecoder.PNG_CHUNK_IEND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngTextDecoder.html#PNG_CHUNK_IEND">PNG_CHUNK_IEND</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1229278788</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.png.mxPngTextDecoder.PNG_CHUNK_ZTXT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/png/mxPngTextDecoder.html#PNG_CHUNK_ZTXT">PNG_CHUNK_ZTXT</A></CODE></TD>
    +<TD ALIGN="right"><CODE>2052348020</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.AbstractParser.BUNDLE_CLASSNAME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/AbstractParser.html#BUNDLE_CLASSNAME">BUNDLE_CLASSNAME</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"org.apache.batik.parser.resources.Messages"</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg">CSSConstants</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.CSSConstants.CSS_FILL_PROPERTY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/CSSConstants.html#CSS_FILL_PROPERTY">CSS_FILL_PROPERTY</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"fill"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.CSSConstants.CSS_NONE_VALUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/CSSConstants.html#CSS_NONE_VALUE">CSS_NONE_VALUE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"none"</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.CSSConstants.CSS_STROKE_PROPERTY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/CSSConstants.html#CSS_STROKE_PROPERTY">CSS_STROKE_PROPERTY</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"stroke"</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.ExtendedPathIterator.SEG_ARCTO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_ARCTO">SEG_ARCTO</A></CODE></TD>
    +<TD ALIGN="right"><CODE>4321</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.ExtendedPathIterator.SEG_CLOSE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_CLOSE">SEG_CLOSE</A></CODE></TD>
    +<TD ALIGN="right"><CODE>4</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.ExtendedPathIterator.SEG_CUBICTO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_CUBICTO">SEG_CUBICTO</A></CODE></TD>
    +<TD ALIGN="right"><CODE>3</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.ExtendedPathIterator.SEG_LINETO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_LINETO">SEG_LINETO</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.ExtendedPathIterator.SEG_MOVETO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_MOVETO">SEG_MOVETO</A></CODE></TD>
    +<TD ALIGN="right"><CODE>0</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.ExtendedPathIterator.SEG_QUADTO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_QUADTO">SEG_QUADTO</A></CODE></TD>
    +<TD ALIGN="right"><CODE>2</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.ExtendedPathIterator.WIND_EVEN_ODD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html#WIND_EVEN_ODD">WIND_EVEN_ODD</A></CODE></TD>
    +<TD ALIGN="right"><CODE>0</CODE></TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.util.svg.ExtendedPathIterator.WIND_NON_ZERO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html#WIND_NON_ZERO">WIND_NON_ZERO</A></CODE></TD>
    +<TD ALIGN="right"><CODE>1</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +
    +<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="3">com.mxgraph.view.<A HREF="com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<A NAME="com.mxgraph.view.mxGraph.VERSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
    +<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
    +<TD ALIGN="left"><CODE><A HREF="com/mxgraph/view/mxGraph.html#VERSION">VERSION</A></CODE></TD>
    +<TD ALIGN="right"><CODE>"1.10.0.5"</CODE></TD>
    +</TR>
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/deprecated-list.html b/java/docs/deprecated-list.html
    new file mode 100644
    index 000000000..3ea8a9074
    --- /dev/null
    +++ b/java/docs/deprecated-list.html
    @@ -0,0 +1,227 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Deprecated List (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Deprecated List (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +<B>Deprecated API</B></H2>
    +</CENTER>
    +<HR SIZE="4" NOSHADE>
    +<B>Contents</B><UL>
    +<LI><A HREF="#method">Deprecated Methods</A>
    +</UL>
    +
    +<A NAME="method"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Deprecated Methods</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#createDocument()">com.mxgraph.util.mxUtils.createDocument()</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxDomUtils.createDocument</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#createHtmlDocument()">com.mxgraph.util.mxUtils.createHtmlDocument()</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxDomUtils.createHtmlDocument</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#createSvgDocument(int, int)">com.mxgraph.util.mxUtils.createSvgDocument(int, int)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxDomUtils.createSvgDocument(int, int)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#createVmlDocument()">com.mxgraph.util.mxUtils.createVmlDocument()</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxDomUtils.createVmlDocument</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#getStylename(java.lang.String)">com.mxgraph.util.mxUtils.getStylename(String)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxStyleUtils.getStylename(String)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#getStylenames(java.lang.String)">com.mxgraph.util.mxUtils.getStylenames(String)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxStyleUtils.getStylenames(String)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#getXml(org.w3c.dom.Node)">com.mxgraph.util.mxUtils.getXml(Node)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxXmlUtils.getXml(Node)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#indexOfStylename(java.lang.String, java.lang.String)">com.mxgraph.util.mxUtils.indexOfStylename(String, String)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxStyleUtils.indexOfStylename(String, String)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#parseXml(java.lang.String)">com.mxgraph.util.mxUtils.parseXml(String)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxXmlUtils.parseXml</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#removeAllStylenames(java.lang.String)">com.mxgraph.util.mxUtils.removeAllStylenames(String)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxStyleUtils.removeAllStylenames(String)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#setCellStyleFlags(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, int, java.lang.Boolean)">com.mxgraph.util.mxUtils.setCellStyleFlags(mxIGraphModel, Object[], String, int, Boolean)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxStyleUtils.setCellStyleFlags(mxIGraphModel, Object[],String, int, Boolean)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#setCellStyles(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, java.lang.String)">com.mxgraph.util.mxUtils.setCellStyles(mxIGraphModel, Object[], String, String)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxStyleUtils.setCellStyles(mxIGraphModel, Object[], String, String)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#setStyle(java.lang.String, java.lang.String, java.lang.String)">com.mxgraph.util.mxUtils.setStyle(String, String, String)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxStyleUtils.setStyle(String, String, String)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD><A HREF="com/mxgraph/util/mxUtils.html#setStyleFlag(java.lang.String, java.lang.String, int, java.lang.Boolean)">com.mxgraph.util.mxUtils.setStyleFlag(String, String, int, Boolean)</A>
    +<BR>
    +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use <code>mxStyleUtils.setStyleFlag(String, String, int, Boolean)</code> (Jan 2012)</I>&nbsp;</TD>
    +</TR>
    +</TABLE>
    +&nbsp;
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/help-doc.html b/java/docs/help-doc.html
    new file mode 100644
    index 000000000..e2606e597
    --- /dev/null
    +++ b/java/docs/help-doc.html
    @@ -0,0 +1,224 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +API Help (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="API Help (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H1>
    +How This API Document Is Organized</H1>
    +</CENTER>
    +This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
    +Overview</H3>
    +<BLOCKQUOTE>
    +
    +<P>
    +The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
    +<H3>
    +Package</H3>
    +<BLOCKQUOTE>
    +
    +<P>
    +Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
    +<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
    +</BLOCKQUOTE>
    +<H3>
    +Class/Interface</H3>
    +<BLOCKQUOTE>
    +
    +<P>
    +Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
    +<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
    +<P>
    +<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
    +<P>
    +<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
    +Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
    +</BLOCKQUOTE>
    +<H3>
    +Annotation Type</H3>
    +<BLOCKQUOTE>
    +
    +<P>
    +Each annotation type has its own separate page with the following sections:<UL>
    +<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
    +</BLOCKQUOTE>
    +</BLOCKQUOTE>
    +<H3>
    +Enum</H3>
    +<BLOCKQUOTE>
    +
    +<P>
    +Each enum has its own separate page with the following sections:<UL>
    +<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
    +</BLOCKQUOTE>
    +<H3>
    +Use</H3>
    +<BLOCKQUOTE>
    +Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</BLOCKQUOTE>
    +<H3>
    +Tree (Class Hierarchy)</H3>
    +<BLOCKQUOTE>
    +There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
    +<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
    +</BLOCKQUOTE>
    +<H3>
    +Deprecated API</H3>
    +<BLOCKQUOTE>
    +The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
    +<H3>
    +Index</H3>
    +<BLOCKQUOTE>
    +The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
    +<H3>
    +Prev/Next</H3>
    +These links take you to the next or previous class, interface, package, or related page.<H3>
    +Frames/No Frames</H3>
    +These links show and hide the HTML frames.  All pages are available with or without frames.
    +<P>
    +<H3>
    +Serialized Form</H3>
    +Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
    +<P>
    +<H3>
    +Constant Field Values</H3>
    +The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
    +<P>
    +<FONT SIZE="-1">
    +<EM>
    +This help file applies to API documentation generated using the standard doclet.</EM>
    +</FONT>
    +<BR>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/index-all.html b/java/docs/index-all.html
    new file mode 100644
    index 000000000..bc0df347a
    --- /dev/null
    +++ b/java/docs/index-all.html
    @@ -0,0 +1,14645 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Index (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Index (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <A HREF="#_Z_">Z</A> <A HREF="#___">_</A> <HR>
    +<A NAME="_A_"><!-- --></A><H2>
    +<B>A</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#a"><B>a</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#absoluteOffset"><B>absoluteOffset</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Holds the absolute offset.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#absolutePoints"><B>absolutePoints</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>List of mxPoints that represent the absolute points of an edge.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg"><B>AbstractParser</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class is the superclass of all parsers.<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#AbstractParser()"><B>AbstractParser()</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#accessors"><B>accessors</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Caches accessors for the given method names.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.DeleteAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DeleteAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.DrillAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DrillAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.EditAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.EditAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.FoldAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.FoldAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.GroupAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.GroupAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.LayerAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.LayerAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.RemoveFromParentAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.SelectAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.SelectAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.UngroupAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UngroupAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UpdateGroupBoundsAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.ZoomAction.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.ZoomAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#active"><B>active</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#add(java.lang.Object, java.lang.Object, int)"><B>add(Object, Object, int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#add(java.lang.Object, java.lang.Object, int)"><B>add(Object, Object, int)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Adds the specified child to the parent at the given index.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#ADD"><B>ADD</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#add(com.mxgraph.util.mxRectangle)"><B>add(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Adds the given rectangle to this rectangle.
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#add(java.lang.String)"><B>add(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>Adds a resource bundle.
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#add(java.lang.String, java.util.Locale)"><B>add(String, Locale)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>Adds a resource bundle.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#add(com.mxgraph.util.mxUndoableEdit.mxUndoableChange)"><B>add(mxUndoableEdit.mxUndoableChange)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Adds the specified change to this edit.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#ADD_CELLS"><B>ADD_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#ADD_OVERLAY"><B>ADD_OVERLAY</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#addAlias(java.lang.String, java.lang.String)"><B>addAlias(String, String)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Adds an alias for mapping a classname to a codecname.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addAllEdges(java.lang.Object[])"><B>addAllEdges(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns an array with the given cells and all edges that are connected
    + to a cell or one of its descendants.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addCell(java.lang.Object)"><B>addCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the cell to the default parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addCell(java.lang.Object, java.lang.Object)"><B>addCell(Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the cell to the parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addCell(java.lang.Object, java.lang.Object, java.lang.Integer, java.lang.Object, java.lang.Object)"><B>addCell(Object, Object, Integer, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the cell to the parent and connects it to the given source and
    + target terminals.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#addCell(java.lang.Object)"><B>addCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Adds the given cell to the selection.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#addCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)"><B>addCellOverlay(Object, mxICellOverlay)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Adds an overlay for the specified cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addCells(java.lang.Object[])"><B>addCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the cells to the default parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addCells(java.lang.Object[], java.lang.Object)"><B>addCells(Object[], Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the cells to the parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addCells(java.lang.Object[], java.lang.Object, java.lang.Integer)"><B>addCells(Object[], Object, Integer)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the cells to the parent at the given index.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addCells(java.lang.Object[], java.lang.Object, java.lang.Integer, java.lang.Object, java.lang.Object)"><B>addCells(Object[], Object, Integer, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the cells to the parent at the given index, connecting each cell to
    + the optional source and target terminal.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#addCells(java.lang.Object[])"><B>addCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#addDelta(java.lang.String)"><B>addDelta(String)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#addDelta(java.lang.String)"><B>addDelta(String)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#addDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)"><B>addDiagramChangeListener(mxSharedState.mxDiagramChangeListener)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Adds the given listener to the list of diagram change listeners.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#added"><B>added</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addEdge(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Integer)"><B>addEdge(Object, Object, Object, Object, Integer)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the edge to the parent and connects it to the given source and
    + target terminals.
    +<DT><A HREF="./com/mxgraph/io/mxGraphMlCodec.html#addEdgeData(com.mxgraph.io.graphml.mxGraphMlEdge, com.mxgraph.model.mxCell)"><B>addEdgeData(mxGraphMlEdge, mxCell)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io">mxGraphMlCodec</A>
    +<DD>Add the edge data in the gmlEdge.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#addEdges(com.mxgraph.view.mxCellState)"><B>addEdges(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#addEnabled"><B>addEnabled</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Specifies if newly added cells should be resized to match the size of their
    + existing siblings.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#addGraph(com.mxgraph.view.mxGraph, java.lang.Object)"><B>addGraph(mxGraph, Object)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>Adds the elements represented for this graph model into the given graph.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#addGraphListeners(com.mxgraph.view.mxGraph)"><B>addGraphListeners(mxGraph)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Installs the listeners to update the handles after any changes.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#addGraphListeners(com.mxgraph.view.mxGraph)"><B>addGraphListeners(mxGraph)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Installs the listeners to update the handles after any changes.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#addHandler"><B>addHandler</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addImageBundle(com.mxgraph.util.mxImageBundle)"><B>addImageBundle(mxImageBundle)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the specified bundle.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><B>addListener(String, mxEventSource.mxIEventListener)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Binds the specified function to the given event name.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><B>addListener(String, mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Adds the given event listener.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><B>addListener(String, mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Adds the given event listener.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><B>addListener(String, mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><B>addListener(String, mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)"><B>addListener(String, mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Binds the specified function to the given event name.
    +<DT><A HREF="./com/mxgraph/io/mxGraphMlCodec.html#addNodeData(com.mxgraph.io.graphml.mxGraphMlNode, com.mxgraph.model.mxCell)"><B>addNodeData(mxGraphMlNode, mxCell)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io">mxGraphMlCodec</A>
    +<DD>Add the node data in the gmlNode.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#addObjectValue(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)"><B>addObjectValue(Object, String, Object, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Sets the decoded child node as a value of the given object.
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#addPackage(java.lang.String)"><B>addPackage(String)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Adds the given package name to the list of known package names.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#addPrivateChunk(java.lang.String, byte[])"><B>addPrivateChunk(String, byte[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Adds a private chunk, in binary form, to the list of chunks to
    + be stored with this image.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addPropertyChangeListener(java.beans.PropertyChangeListener)"><B>addPropertyChangeListener(PropertyChangeListener)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)"><B>addPropertyChangeListener(String, PropertyChangeListener)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addSelectionCell(java.lang.Object)"><B>addSelectionCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#addSelectionCells(java.lang.Object[])"><B>addSelectionCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilRegistry.html#addStencil(java.lang.String, com.mxgraph.shape.mxStencil)"><B>addStencil(String, mxStencil)</B></A> - 
    +Static method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape">mxStencilRegistry</A>
    +<DD>Adds the given stencil.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#addStylename(java.lang.String, java.lang.String)"><B>addStylename(String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Adds the specified stylename to the given style if it does not already
    + contain the stylename.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#adjustmentHandler"><B>adjustmentHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#adjustParents()"><B>adjustParents()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#AFTER_PAINT"><B>AFTER_PAINT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxChildChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>afterDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxGenericChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>afterDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io">mxGenericChangeCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>afterDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Hook for subclassers to post-process the object after decoding.
    +<DT><A HREF="./com/mxgraph/io/mxRootChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>afterDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io">mxRootChangeCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxTerminalChangeCodec.html#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>afterDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io">mxTerminalChangeCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCellCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><B>afterEncode(mxCodec, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A>
    +<DD>Encodes an mxCell and wraps the XML up inside the
    + XML of the user object (inversion).
    +<DT><A HREF="./com/mxgraph/io/mxChildChangeCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><B>afterEncode(mxCodec, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><B>afterEncode(mxCodec, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Hook for subclassers to post-process the node for the given object after
    + encoding and return the post-processed node.
    +<DT><A HREF="./com/mxgraph/io/mxRootChangeCodec.html#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><B>afterEncode(mxCodec, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io">mxRootChangeCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#aliases"><B>aliases</B></A> - 
    +Static variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Maps from classnames to codecnames.
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#align"><B>align</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>Holds the horizontal alignment for the overlay.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ALIGN_BOTTOM"><B>ALIGN_BOTTOM</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ALIGN_BOTTOM
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#ALIGN_CELLS"><B>ALIGN_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ALIGN_CENTER"><B>ALIGN_CENTER</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ALIGN_CENTER
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ALIGN_LEFT"><B>ALIGN_LEFT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ALIGN_LEFT
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ALIGN_MIDDLE"><B>ALIGN_MIDDLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ALIGN_MIDDLE
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ALIGN_RIGHT"><B>ALIGN_RIGHT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ALIGN_RIGHT
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ALIGN_TOP"><B>ALIGN_TOP</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ALIGN_TOP
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#alignCells(java.lang.String)"><B>alignCells(String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Aligns the selection cells vertically or horizontally according to the
    + given alignment.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#alignCells(java.lang.String, java.lang.Object[])"><B>alignCells(String, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Aligns the given cells vertically or horizontally according to the given
    + alignment.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#alignCells(java.lang.String, java.lang.Object[], java.lang.Object)"><B>alignCells(String, Object[], Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Aligns the given cells vertically or horizontally according to the given
    + alignment using the optional parameter as the coordinate.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#ALL"><B>ALL</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#allowDanglingEdges"><B>allowDanglingEdges</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if edges with disconnected terminals are
    + allowed in the graph.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#allowedToRun"><B>allowedToRun</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Boolean flag that specifies if the layout is allowed to run.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#allowLoops"><B>allowLoops</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if loops (aka self-references) are allowed.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#allowNegativeCoordinates"><B>allowNegativeCoordinates</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if negative coordinates for vertices are allowed.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#alpha"><B>alpha</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#alpha"><B>alpha</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>
    +<DD>The alpha opacity value of the entry.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#alternateBounds"><B>alternateBounds</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Stores alternate values for x, y, width and height in a rectangle.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#alternateEdgeStyle"><B>alternateEdgeStyle</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the alternate edge style to be used if the main control point
    + on an edge is being doubleclicked.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#animateCell(java.lang.Object, com.mxgraph.swing.view.mxCellStatePreview, boolean)"><B>animateCell(Object, mxCellStatePreview, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Animates the given cell state using moveState.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#antiAlias"><B>antiAlias</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Specifies if the image should be anti-aliased.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#antiAlias"><B>antiAlias</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#antiAlias"><B>antiAlias</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#append(java.awt.Shape, boolean)"><B>append(Shape, boolean)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#append(java.awt.geom.PathIterator, boolean)"><B>append(PathIterator, boolean)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#append(com.mxgraph.util.svg.ExtendedPathIterator, boolean)"><B>append(ExtendedPathIterator, boolean)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#appendHtmlElement(org.w3c.dom.Element)"><B>appendHtmlElement(Element)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#appendSvgElement(org.w3c.dom.Element)"><B>appendSvgElement(Element)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#appendVmlElement(org.w3c.dom.Element)"><B>appendVmlElement(Element)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#apply(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, com.mxgraph.util.mxRectangle)"><B>apply(mxCompactTreeLayout.TreeNode, mxRectangle)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)"><B>apply(mxCellState, mxCellState, mxCellState, List&lt;mxPoint&gt;, List&lt;mxPoint&gt;)</B></A> - 
    +Method in interface com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view">mxEdgeStyle.mxEdgeStyleFunction</A>
    +<DD>Implements an edge style function.
    +<DT><A HREF="./com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html#apply(com.mxgraph.util.mxRectangle, com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)"><B>apply(mxRectangle, mxCellState, mxPoint, boolean)</B></A> - 
    +Method in interface com.mxgraph.view.<A HREF="./com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view">mxPerimeter.mxPerimeterFunction</A>
    +<DD>Implements a perimeter function.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#approxNodeDimensions"><B>approxNodeDimensions</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Whether or not to use approximate node dimensions or not.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#arcAbs(float, float, float, boolean, boolean, float, float)"><B>arcAbs(float, float, float, boolean, boolean, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#arcAbs(float, float, float, boolean, boolean, float, float)"><CODE>PathHandler.arcAbs(float,float,float,boolean,boolean,float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#arcAbs(float, float, float, boolean, boolean, float, float)"><B>arcAbs(float, float, float, boolean, boolean, float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when an absolute elliptical arc command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#arcRel(float, float, float, boolean, boolean, float, float)"><B>arcRel(float, float, float, boolean, boolean, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#arcRel(float, float, float, boolean, boolean, float, float)"><CODE>PathHandler.arcRel(float,float,float,boolean,boolean,float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#arcRel(float, float, float, boolean, boolean, float, float)"><B>arcRel(float, float, float, boolean, boolean, float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a relative elliptical arc command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#arcTo(float, float, float, boolean, boolean, float, float)"><B>arcTo(float, float, float, boolean, boolean, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Adds an elliptical arc, defined by two radii, an angle from the
    + x-axis, a flag to choose the large arc or not, a flag to
    + indicate if we increase or decrease the angles and the final
    + point of the arc.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#arcToCurves(double, double, double, double, double, double, double, double, double)"><B>arcToCurves(double, double, double, double, double, double, double, double, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Function: arcToCurves
    + 
    + Converts the given arc to a series of curves.
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#arrangeGroups(java.lang.Object[], int)"><B>arrangeGroups(Object[], int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Updates the bounds of the given groups to include all children.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ARROW_BLOCK"><B>ARROW_BLOCK</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ARROW_BLOCK
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ARROW_CLASSIC"><B>ARROW_CLASSIC</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ARROW_CLASSIC
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ARROW_DIAMOND"><B>ARROW_DIAMOND</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ARROW_OPEN
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ARROW_OPEN"><B>ARROW_OPEN</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ARROW_OPEN
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ARROW_OVAL"><B>ARROW_OVAL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ARROW_BLOCK
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ARROW_SIZE"><B>ARROW_SIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the size of the arrowhead in the arrow shape.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ARROW_SPACING"><B>ARROW_SPACING</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the spacing between the arrow shape and its terminals.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ARROW_WIDTH"><B>ARROW_WIDTH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the width of the arrow shape.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#aspect"><B>aspect</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Holds the aspect of the shape.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#attachParent(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double)"><B>attachParent(mxCompactTreeLayout.TreeNode, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#attr"><B>attr</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#autoAntiAlias"><B>autoAntiAlias</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Specifies if anti aliasing should be disabled for rectangles
    + and orthogonal paths.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#autoExtend"><B>autoExtend</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Whether to extend the graph bounds and scroll towards the limit of those
    + new bounds in the direction of mouse travel if a handler is active while
    + the mouse leaves the container that the graph exists in.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#autoOrigin"><B>autoOrigin</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if the origin should be automatically updated.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#autoScroll"><B>autoScroll</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Whether or not to scroll the scrollable container the graph exists in if
    + a suitable handler is active and the graph bounds already exist extended
    + in the direction of mouse travel.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#autoSizeCells"><B>autoSizeCells</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if the graph should automatically update the cell size
    + after an edit.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#averageNodeArea"><B>averageNodeArea</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The average amount of area allocated per node.
    +<DT><A HREF="./com/mxgraph/layout/mxEdgeLabelLayout.html#avoid(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><B>avoid(mxCellState, mxCellState)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg"><B>AWTPathProducer</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class provides an implementation of the PathHandler that initializes
    + a Shape from the value of a path's 'd' attribute.<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#AWTPathProducer()"><B>AWTPathProducer()</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg"><B>AWTPolygonProducer</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class produces a polygon shape from a reader.<DT><A HREF="./com/mxgraph/util/svg/AWTPolygonProducer.html#AWTPolygonProducer()"><B>AWTPolygonProducer()</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg"><B>AWTPolylineProducer</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class produces a polyline shape from a reader.<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#AWTPolylineProducer()"><B>AWTPolylineProducer()</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_B_"><!-- --></A><H2>
    +<B>B</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#b"><B>b</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#background"><B>background</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Specifies the background color.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#backgroundImage"><B>backgroundImage</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies the <mxImage> to be returned by <getBackgroundImage>.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#bbox"><B>bbox</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Scaled, translated bounding box of the selection cells.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#BEFORE_PAINT"><B>BEFORE_PAINT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#BEFORE_UNDO"><B>BEFORE_UNDO</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>Holds the name for the beforeUndo event.
    +<DT><A HREF="./com/mxgraph/io/mxCellCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>beforeDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A>
    +<DD>Decodes an mxCell and uses the enclosing XML node as
    + the user object for the cell (inversion).
    +<DT><A HREF="./com/mxgraph/io/mxChildChangeCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>beforeDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A>
    +<DD>Reads the cells into the graph model.
    +<DT><A HREF="./com/mxgraph/io/mxModelCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>beforeDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io">mxModelCodec</A>
    +<DD>Reads the cells into the graph model.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>beforeDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Hook for subclassers to pre-process the node for the specified object
    + and return the node to be used for further processing by
    + <A HREF="./com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><CODE>mxObjectCodec.decode(mxCodec, Node)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/io/mxRootChangeCodec.html#beforeDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>beforeDecode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io">mxRootChangeCodec</A>
    +<DD>Reads the cells into the graph model.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#beforeEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><B>beforeEncode(mxCodec, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Hook for subclassers to pre-process the object before encoding.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#beforeUndo(com.mxgraph.util.mxUndoableEdit)"><B>beforeUndo(mxUndoableEdit)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#begin()"><B>begin()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#begin()"><B>begin()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Begins a new path.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#BEGIN_UPDATE"><B>BEGIN_UPDATE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>Holds the name for the beginUpdate event.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#beginUpdate()"><B>beginUpdate()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#beginUpdate()"><B>beginUpdate()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Increments the updateLevel by one.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#bgNode"><B>bgNode</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Holds the XML node with the stencil description.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#bitDepth"><B>bitDepth</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#bitDepthSet"><B>bitDepthSet</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#blue"><B>blue</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>
    +<DD>The blue color value of the entry.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#border"><B>border</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>Integer that specifies the absolute inset in pixels for the parent that
    + contains the children.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#border"><B>border</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Border to be added if fill is true.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#border"><B>border</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Specifies the border which is added to the size of the graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#border"><B>border</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Border to be added to the bottom and right side when the container is
    + being resized after the graph has been changed.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#borderColor"><B>borderColor</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Defines the border color for drawing the rubberband selection.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#borderLineCostFactor"><B>borderLineCostFactor</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Cost factor applied to energy calculations for node promixity to the
    + notional border of the graph.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#BOTTOM"><B>BOTTOM</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#BOTTOM_MASK"><B>BOTTOM_MASK</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#boundingBox"><B>boundingBox</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#boundingBox"><B>boundingBox</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Holds the largest rectangle which contains all rendering for this cell.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#bounds"><B>bounds</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Holds the bounding box of the handler.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#bounds"><B>bounds</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#bounds"><B>bounds</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Holds the current rubberband bounds.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#bounds"><B>bounds</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Reference to the enclosing graph component.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#bounds"><B>bounds</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#boundsHeight"><B>boundsHeight</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The height coordinate of the final graph
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#boundsWidth"><B>boundsWidth</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The width coordinate of the final graph
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#boundsX"><B>boundsX</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The x coordinate of the final graph
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#boundsY"><B>boundsY</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The y coordinate of the final graph
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#bridge(com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline, double, double)"><B>bridge(mxCompactTreeLayout.Polyline, double, double, mxCompactTreeLayout.Polyline, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#bubbling"><B>bubbling</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#buffer"><B>buffer</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Holds the send buffer for this session.
    +<DT><A HREF="./com/mxgraph/util/svg/NumberParser.html#buildFloat(int, int)"><B>buildFloat(int, int)</B></A> - 
    +Static method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A>
    +<DD>Computes a float from mantissa and exponent.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#BUNDLE_CLASSNAME"><B>BUNDLE_CLASSNAME</B></A> - 
    +Static variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>The default resource bundle base name.
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#bundles"><B>bundles</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>Ordered list of the inserted resource bundles.
    +</DL>
    +<HR>
    +<A NAME="_C_"><!-- --></A><H2>
    +<B>C</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#c"><B>c</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#cachedTransform"><B>cachedTransform</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>Transform cached to save instance created.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#calcAttraction()"><B>calcAttraction()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Calculates the attractive forces between all laid out nodes linked by
    + edges
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#calcEnergyDelta(int, double, double, double, double, double, double)"><B>calcEnergyDelta(int, double, double, double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Calculates the change in energy for the specified node.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#calcPositions()"><B>calcPositions()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Takes the displacements calculated for each cell and applies them to the
    + local cache of cell positions.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#calcRepulsion()"><B>calcRepulsion()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Calculates the repulsive forces between all laid out nodes
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#calculateRankCrossing(int, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><B>calculateRankCrossing(int, mxGraphHierarchyModel)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<DD>Calculates the number of edges crossings between the specified rank and
    + the rank below it
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#calculateWidestRank(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><B>calculateWidestRank(mxGraph, mxGraphHierarchyModel)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Calculates the width rank in the hierarchy.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#calculationLabelPosition(java.util.Map, java.lang.String)"><B>calculationLabelPosition(Map&lt;String, Object&gt;, String)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Hook method to override how the label is positioned on the curve
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#cancelEditingAction"><B>cancelEditingAction</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#canExportCell(java.lang.Object)"><B>canExportCell(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns true if the given cell can be exported via datatransfer.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#canImport"><B>canImport</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#canImport(javax.swing.JComponent, java.awt.datatransfer.DataFlavor[])"><B>canImport(JComponent, DataFlavor[])</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#canImportCell(java.lang.Object)"><B>canImportCell(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns true if the given cell can be imported via datatransfer.
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#canRedo()"><B>canRedo()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Returns true if a redo is possible.
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#canUndo()"><B>canUndo()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Returns true if an undo is possible.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#canvas"><B>canvas</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxDomOutputParser.html#canvas"><B>canvas</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader">mxDomOutputParser</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#canvas"><B>canvas</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Holds the canvas to be used for rendering the graph.
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html#canvas"><B>canvas</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#canvas"><B>canvas</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#cascadingCut(com.mxgraph.analysis.mxFibonacciHeap.Node)"><B>cascadingCut(mxFibonacciHeap.Node)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Performs a cascading cut operation.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>The graph cell this object represents.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.WeightedCellSorter</A>
    +<DD>The cell whose median value is being calculated
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.WeightedCellSorter</A>
    +<DD>The cell whose median value is being calculated
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>The actual graph cell this wrapper represents
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#cell"><B>cell</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Reference to the cell that is represented by this state.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CELL_CONNECTED"><B>CELL_CONNECTED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#cellAdded(java.lang.Object)"><B>cellAdded(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Invoked after a cell has been added to a parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#cellAdded(java.lang.Object)"><B>cellAdded(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#cellBounds"><B>cellBounds</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Scaled, translated bounds of the selection cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellConnected(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)"><B>cellConnected(Object, Object, boolean, mxConnectionConstraint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the new terminal for the given edge and resets the edge points if
    + isResetEdgesOnConnect returns true.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState)"><B>cellDrawn(mxICanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellDrawn(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, java.lang.Object, java.lang.Object)"><B>cellDrawn(mxICanvas, mxCellState, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Called when a cell has been painted as the specified object, typically a
    + DOM node that represents the given cell graphically in a document.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#cellEditor"><B>cellEditor</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellLabelChanged(java.lang.Object, java.lang.Object, boolean)"><B>cellLabelChanged(Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the new label for a cell.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#cellLocation"><B>cellLocation</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>An array of locally stored co-ordinate positions for the vertices.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#cellRemoved(java.lang.Object)"><B>cellRemoved(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Invoked after a cell has been removed from the model.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#cellRemoved(java.lang.Object)"><B>cellRemoved(Object)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>Adds removed cells to the codec object lookup for references to the removed
    + cells after this point in time.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#cellRemoved(java.lang.Object)"><B>cellRemoved(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#cellResized(java.lang.Object)"><B>cellResized(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html#cells"><B>cells</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.AreaSpatialCache</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#cells"><B>cells</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Maps from Ids to cells.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#cells"><B>cells</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Holds the cells that are being moved by this handler.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#cells"><B>cells</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#cells"><B>cells</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Optional array of cells to limit the animation to.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#cells"><B>cells</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Holds the selection cells.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CELLS_ADDED"><B>CELLS_ADDED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CELLS_FOLDED"><B>CELLS_FOLDED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CELLS_MOVED"><B>CELLS_MOVED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CELLS_ORDERED"><B>CELLS_ORDERED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CELLS_REMOVED"><B>CELLS_REMOVED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CELLS_RESIZED"><B>CELLS_RESIZED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CELLS_TOGGLED"><B>CELLS_TOGGLED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsAdded(java.lang.Object[], java.lang.Object, java.lang.Integer, java.lang.Object, java.lang.Object, boolean)"><B>cellsAdded(Object[], Object, Integer, Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the specified cells to the given parent.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#cellsAdded(java.lang.Object[])"><B>cellsAdded(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Called if any cells have been added.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsBendable"><B>cellsBendable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isCell(s)Bendable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsCloneable"><B>cellsCloneable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isCell(s)Cloneable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsDeletable"><B>cellsDeletable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isCell(s)Deletable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsDisconnectable"><B>cellsDisconnectable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isCellDisconntableFromTerminal.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsEditable"><B>cellsEditable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isCell(s)Editable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsFolded(java.lang.Object[], boolean, boolean)"><B>cellsFolded(Object[], boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Invokes cellsFoldable with checkFoldable set to false.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsFolded(java.lang.Object[], boolean, boolean, boolean)"><B>cellsFolded(Object[], boolean, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the collapsed state of the specified cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellSizeUpdated(java.lang.Object, boolean)"><B>cellSizeUpdated(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Updates the size of the given cell in the model using
    + getPreferredSizeForCell to get the new size.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsLocked"><B>cellsLocked</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isCell(s)Locked.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsMovable"><B>cellsMovable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isCell(s)Movable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsMoved(java.lang.Object[], double, double, boolean, boolean)"><B>cellsMoved(Object[], double, double, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Moves the specified cells by the given vector, disconnecting the cells
    + using disconnectGraph if disconnect is true.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#cellsMoved(java.lang.Object[], java.awt.Point)"><B>cellsMoved(Object[], Point)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsOrdered(java.lang.Object[], boolean)"><B>cellsOrdered(Object[], boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Moves the given cells to the front or back.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsRemoved(java.lang.Object[])"><B>cellsRemoved(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Removes the given cells from the model.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsResizable"><B>cellsResizable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isCell(s)Sizable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsResized(java.lang.Object[], com.mxgraph.util.mxRectangle[])"><B>cellsResized(Object[], mxRectangle[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the bounds of the given cells and fires a <mxEvent.CELLS_RESIZED>
    + event.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#cellsResized(java.lang.Object[])"><B>cellsResized(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#cellsResized(java.lang.Object[])"><B>cellsResized(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Called if any cells have been resizes.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsSelectable"><B>cellsSelectable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isCell(s)Selectable.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#cellStates"><B>cellStates</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cellsToggled(java.lang.Object[], boolean)"><B>cellsToggled(Object[], boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the visible state of the specified cells.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#CENTER_MASK"><B>CENTER_MASK</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#centerPage"><B>centerPage</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if the background page should be centered by automatically
    + setting the translate in the view.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#centerPreview"><B>centerPreview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if the preview should be centered around the mouse cursor if there
    + was no mouse click to define the offset within the shape (eg.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#centerVisibleIndex"><B>centerVisibleIndex</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>The index of the central glyph of the label that is visible
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#centerZoom"><B>centerZoom</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if the zoom operations should go into the center of the actual
    + diagram rather than going from top, left.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CHANGE"><B>CHANGE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>Holds the name for the change event.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#changes"><B>changes</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Holds the list of changes that make up this undoable edit.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#changeSelection(java.util.Collection, java.util.Collection)"><B>changeSelection(Collection&lt;Object&gt;, Collection&lt;Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#changesRepaintThreshold"><B>changesRepaintThreshold</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the maximum number of changes that should be processed to find
    + the dirty region.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#changeSupport"><B>changeSupport</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Property change event handling.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#channelBuffer"><B>channelBuffer</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The size of the vertical buffer in the center of inter-rank channels
    + where edge control points should not be placed
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#channelBuffer"><B>channelBuffer</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>The size of the vertical buffer in the center of inter-rank channels
    + where edge control points should not be placed
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#check(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, java.lang.Object, int, int)"><B>check(mxGraph, Object, Object, Object, int, int)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Function: check
    + 
    + Checks the multiplicity for the given arguments and returns the error
    + for the given connection or null if the multiplicity does not apply.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#checkMoveTo()"><B>checkMoveTo()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Checks if previous command was a moveto command,
    + skipping a close command (if present).
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#checkNeighbors(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, java.lang.Object)"><B>checkNeighbors(mxGraph, Object, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Checks the type of the given value.
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#checkTerminal(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object)"><B>checkTerminal(mxGraph, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Checks the type of the given value.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#checkTripleBuffer()"><B>checkTripleBuffer()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Checks if the triple buffer exists and creates a new one if it does not.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#checkTripleBuffer()"><B>checkTripleBuffer()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Checks if the triple buffer exists and creates a new one if
    + it does not.
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#checkType(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.String)"><B>checkType(mxGraph, Object, String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Checks the type of the given value.
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#checkType(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.String, java.lang.String, java.lang.String)"><B>checkType(mxGraph, Object, String, String, String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Checks the type of the given value.
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html#checkValues()"><B>checkValues()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>Used to check the correctness of this spline
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#child"><B>child</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#child"><B>child</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#childMoved(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><B>childMoved(mxCellState, mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Invoked when a child state was moved as a result of late evaluation
    + of its position.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#children"><B>children</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Holds the child cells and connected edges.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#childsHasTag(org.w3c.dom.Element, java.lang.String)"><B>childsHasTag(Element, String)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>Checks if the childrens of element has a Node with name = tag.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#childsTag(org.w3c.dom.Element, java.lang.String)"><B>childsTag(Element, String)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>Returns the first Element that has name = tag in the childrens of element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#childsTags(org.w3c.dom.Element, java.lang.String)"><B>childsTags(Element, String)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>Returns a list with the elements included in the childrens of element
    + that have name = tag.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#circle(java.lang.Object[], double, double, double)"><B>circle(Object[], double, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>Executes the circular layout for the specified array
    + of vertices and the given radius.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#clear()"><B>clear()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Sets a new root using createRoot.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CLEAR"><B>CLEAR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#clear()"><B>clear()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Clears the command history.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#clear()"><B>clear()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Clears the selection.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#clear(java.lang.Object, boolean, boolean)"><B>clear(Object, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Removes the state of the given cell and all descendants if the given
    + cell is not the current root.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#clearCellOverlays()"><B>clearCellOverlays()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Removes all overlays in the graph.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#clearCellOverlays(java.lang.Object)"><B>clearCellOverlays(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Removes all overlays in the graph for the given cell and all its
    + descendants.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#clearRect(java.awt.Graphics2D, java.awt.Rectangle, java.awt.Color)"><B>clearRect(Graphics2D, Rectangle, Color)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Clears the given area of the specified graphics object with the given
    + color or makes the region transparent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#clearSelection()"><B>clearSelection()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#clip()"><B>clip()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#clip()"><B>clip()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Uses the current path for clipping.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#clip"><B>clip</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Defines the clip to be drawn.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#clone()"><B>clone()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#clone()"><B>clone()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Returns a clone of the cell.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#clone()"><B>clone()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Returns a clone of the cell.
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#clone()"><B>clone()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns a clone of this cell.
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#clone()"><B>clone()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Returns a new instance of the same point.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#clone()"><B>clone()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns a new instance of the same rectangle.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#clone()"><B>clone()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#clone()"><B>clone()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns a clone of this state where all members are deeply cloned
    + except the view and cell references, which are copied with no
    + cloning to the new instance.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#cloneCell(java.lang.Object, java.util.Map, boolean)"><B>cloneCell(Object, Map&lt;Object, Object&gt;, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner helper method for cloning cells recursively.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#cloneCells(java.lang.Object[], boolean)"><B>cloneCells(Object[], boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#cloneCells(java.lang.Object[], boolean)"><B>cloneCells(Object[], boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns an array of clones for the given array of cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cloneCells(java.lang.Object[])"><B>cloneCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Clones all cells in the given array.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cloneCells(java.lang.Object[], boolean)"><B>cloneCells(Object[], boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the clones for the given cells.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#cloned"><B>cloned</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>Specifies if cell states should be cloned or changed in-place.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#cloneEnabled"><B>cloneEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#cloneEnabled"><B>cloneEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if cloning by control-drag is enabled.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#cloneInvalidEdges"><B>cloneInvalidEdges</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if edges that are cloned should be validated and only inserted
    + if they are valid.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#clonePreview"><B>clonePreview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>Specifies if the preview should use clones of the original shapes.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#cloneState(com.mxgraph.canvas.mxGraphicsCanvas2D.CanvasState)"><B>cloneState(mxGraphicsCanvas2D.CanvasState)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Returns a clone of thec given state.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#cloneTemplate(org.w3c.dom.Node)"><B>cloneTemplate(Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns a new instance of the template object for representing the given
    + node.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#cloneValue()"><B>cloneValue()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Returns a clone of the user object.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#close()"><B>close()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Closes the current path.
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#close()"><B>close()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Closes the current path.
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#close()"><B>close()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>Close the stream.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#closePath()"><B>closePath()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#closePath()"><CODE>PathHandler.closePath()</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#closePath()"><B>closePath()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#closePath()"><B>closePath()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a closepath has been parsed.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#codec"><B>codec</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#codecs"><B>codecs</B></A> - 
    +Static variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Maps from constructor names to codecs.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#collapsed"><B>collapsed</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#collapsed"><B>collapsed</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#collapsedIcon"><B>collapsedIcon</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#collapsedStateForCellChanged(java.lang.Object, boolean)"><B>collapsedStateForCellChanged(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner callback to update the collapsed state of the
    + given mxCell using mxCell.setCollapsed and return
    + the previous collapsed state.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#collapseToPreferredSize"><B>collapseToPreferredSize</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if the cell size should be changed to the preferred size when
    + a cell is first collapsed.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#collisionMove(java.lang.String, com.mxgraph.util.mxRectangle, double)"><B>collisionMove(String, mxRectangle, double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Returns a point to move the input rectangle to, in order to
    + attempt to place the rectangle away from the curve.
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#column"><B>column</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>The current column in the stream.
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#columnNumber"><B>columnNumber</B></A> - 
    +Variable in exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/package-summary.html"><B>com.mxgraph.analysis</B></A> - package com.mxgraph.analysis<DD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.<DT><A HREF="./com/mxgraph/canvas/package-summary.html"><B>com.mxgraph.canvas</B></A> - package com.mxgraph.canvas<DD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.<DT><A HREF="./com/mxgraph/io/package-summary.html"><B>com.mxgraph.io</B></A> - package com.mxgraph.io<DD>This package contains all classes for input/output.<DT><A HREF="./com/mxgraph/io/gd/package-summary.html"><B>com.mxgraph.io.gd</B></A> - package com.mxgraph.io.gd<DD>&nbsp;<DT><A HREF="./com/mxgraph/io/graphml/package-summary.html"><B>com.mxgraph.io.graphml</B></A> - package com.mxgraph.io.graphml<DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/package-summary.html"><B>com.mxgraph.layout</B></A> - package com.mxgraph.layout<DD>This package contains various graph layouts.<DT><A HREF="./com/mxgraph/layout/hierarchical/package-summary.html"><B>com.mxgraph.layout.hierarchical</B></A> - package com.mxgraph.layout.hierarchical<DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/hierarchical/model/package-summary.html"><B>com.mxgraph.layout.hierarchical.model</B></A> - package com.mxgraph.layout.hierarchical.model<DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/package-summary.html"><B>com.mxgraph.layout.hierarchical.stage</B></A> - package com.mxgraph.layout.hierarchical.stage<DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/orthogonal/package-summary.html"><B>com.mxgraph.layout.orthogonal</B></A> - package com.mxgraph.layout.orthogonal<DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/orthogonal/model/package-summary.html"><B>com.mxgraph.layout.orthogonal.model</B></A> - package com.mxgraph.layout.orthogonal.model<DD>&nbsp;<DT><A HREF="./com/mxgraph/model/package-summary.html"><B>com.mxgraph.model</B></A> - package com.mxgraph.model<DD>This package contains the classes that define a graph model.<DT><A HREF="./com/mxgraph/reader/package-summary.html"><B>com.mxgraph.reader</B></A> - package com.mxgraph.reader<DD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.<DT><A HREF="./com/mxgraph/shape/package-summary.html"><B>com.mxgraph.shape</B></A> - package com.mxgraph.shape<DD>&nbsp;<DT><A HREF="./com/mxgraph/sharing/package-summary.html"><B>com.mxgraph.sharing</B></A> - package com.mxgraph.sharing<DD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.<DT><A HREF="./com/mxgraph/swing/package-summary.html"><B>com.mxgraph.swing</B></A> - package com.mxgraph.swing<DD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.<DT><A HREF="./com/mxgraph/swing/handler/package-summary.html"><B>com.mxgraph.swing.handler</B></A> - package com.mxgraph.swing.handler<DD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.<DT><A HREF="./com/mxgraph/swing/util/package-summary.html"><B>com.mxgraph.swing.util</B></A> - package com.mxgraph.swing.util<DD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.<DT><A HREF="./com/mxgraph/swing/view/package-summary.html"><B>com.mxgraph.swing.view</B></A> - package com.mxgraph.swing.view<DD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.<DT><A HREF="./com/mxgraph/util/package-summary.html"><B>com.mxgraph.util</B></A> - package com.mxgraph.util<DD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.<DT><A HREF="./com/mxgraph/util/png/package-summary.html"><B>com.mxgraph.util.png</B></A> - package com.mxgraph.util.png<DD>&nbsp;<DT><A HREF="./com/mxgraph/util/svg/package-summary.html"><B>com.mxgraph.util.svg</B></A> - package com.mxgraph.util.svg<DD>&nbsp;<DT><A HREF="./com/mxgraph/view/package-summary.html"><B>com.mxgraph.view</B></A> - package com.mxgraph.view<DD>This package implements the graph component, represented by the mxGraph
    +  class.<DT><A HREF="./com/mxgraph/model/mxCellPath.html#compare(java.lang.String, java.lang.String)"><B>compare(String, String)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model">mxCellPath</A>
    +<DD>Compares the given cell paths and returns -1 if cp1 is smaller, 0 if
    + cp1 is equal and 1 if cp1 is greater than cp2.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.WeightedCellSorter</A>
    +<DD>comparator on the medianValue
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction.MedianCellSorter</A>
    +<DD>comparator on the medianValue
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.WeightedCellSorter</A>
    +<DD>comparator on the medianValue
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#componentHandler"><B>componentHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#components"><B>components</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Maps from cells to lists of heavyweights.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#computeArc(double, double, double, double, double, boolean, boolean, double, double)"><B>computeArc(double, double, double, double, double, boolean, boolean, double, double)</B></A> - 
    +Static method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>This constructs an unrotated Arc2D from the SVG specification of an
    + Elliptical arc.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#computeAspect(com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, java.lang.String)"><B>computeAspect(mxCellState, mxRectangle, String)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Returns a rectangle that contains the offset in x and y and the horizontal
    + and vertical scale in width and height used to draw this shape inside the
    + given rectangle.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#configureActionMaps()"><B>configureActionMaps()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Installs the keyListener in the textArea and editorPane
    + for handling the enter keystroke and updating the modified state.
    +<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html#configureGraphics(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)"><B>configureGraphics(mxGraphics2DCanvas, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<DD>Configures the graphics object ready to paint.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#connect(java.lang.Object, boolean)"><B>connect(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#connect(java.lang.Object, java.lang.Object, boolean, boolean)"><B>connect(Object, Object, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Connects the given edge to the given source or target terminal.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CONNECT"><B>CONNECT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CONNECT_CELL"><B>CONNECT_CELL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#CONNECT_CURSOR"><B>CONNECT_CURSOR</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#CONNECT_HANDLE_ENABLED"><B>CONNECT_HANDLE_ENABLED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the default value for the connect handle.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#CONNECT_HANDLE_FILLCOLOR"><B>CONNECT_HANDLE_FILLCOLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the connect handle fill color.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#CONNECT_HANDLE_SIZE"><B>CONNECT_HANDLE_SIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the connect handle size.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#connectable"><B>connectable</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#connectableEdges"><B>connectableEdges</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if edges are connectable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#connectCell(java.lang.Object, java.lang.Object, boolean)"><B>connectCell(Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Connects the specified end of the given edge to the given terminal
    + using cellConnected and fires mxEvent.CONNECT_CELL while the transaction
    + is in progress.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#connectCell(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)"><B>connectCell(Object, Object, boolean, mxConnectionConstraint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Connects the specified end of the given edge to the given terminal
    + using cellConnected and fires mxEvent.CONNECT_CELL while the transaction
    + is in progress.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#connectedEdges"><B>connectedEdges</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>the index of all connected edges in the <code>e</code> array
    + to this node.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#connectIcon"><B>connectIcon</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Specifies the icon to be used for creating new connections.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#connectionHandler"><B>connectionHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#connectPreview"><B>connectPreview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#connectsAsSource"><B>connectsAsSource</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Collection of hierarchy edges that have this node as a source
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#connectsAsTarget"><B>connectsAsTarget</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Collection of hierarchy edges that have this node as a target
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#consolidate()"><B>consolidate()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Consolidates the trees in the heap by joining trees of equal degree until
    + there are no more trees of equal degree in the root list.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#constrainChild(java.lang.Object)"><B>constrainChild(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Keeps the given cell inside the bounds returned by
    + getCellContainmentArea for its parent, according to the rules defined by
    + getOverlap and isConstrainChild.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#constrainChildren"><B>constrainChildren</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isConstrainChildren.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#constrainedEvent"><B>constrainedEvent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Workaround for shift-key-state not correct in mouseReleased.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#constrainedEvent"><B>constrainedEvent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Workaround for shift-key-state not correct in mouseReleased.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#constrainedEvent"><B>constrainedEvent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>Workaround for shift-key-state not correct in mouseReleased.
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html#consume()"><B>consume()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>Consumes the event.
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html#consumed"><B>consumed</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>Holds the consumed state of the event.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns true if the model contains the given cell.
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#contains(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)"><B>contains(mxGraphComponent, Rectangle, mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#contains(double, double)"><B>contains(double, double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns true if the given point is contained in the rectangle.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#contains(java.lang.Object[], java.lang.Object)"><B>contains(Object[], Object)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns true if the given array contains the given object.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#contains(double, double)"><B>contains(double, double)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#contains(java.awt.geom.Point2D)"><B>contains(Point2D)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#contains(double, double, double, double)"><B>contains(double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#contains(java.awt.geom.Rectangle2D)"><B>contains(Rectangle2D)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#contextPreview"><B>contextPreview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>Specifies if connected, unselected edges should be included in the
    + preview.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#CONTINUE"><B>CONTINUE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#contour"><B>contour</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#convert(java.lang.String, com.mxgraph.reader.mxGraphViewImageReader)"><B>convert(String, mxGraphViewImageReader)</B></A> - 
    +Static method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Creates the image for the given display XML file.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#convert(org.xml.sax.InputSource, com.mxgraph.reader.mxGraphViewImageReader)"><B>convert(InputSource, mxGraphViewImageReader)</B></A> - 
    +Static method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Creates the image for the given display XML input source.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#convertPoint(com.mxgraph.util.mxPoint, boolean)"><B>convertPoint(mxPoint, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#convertPoint(java.awt.Point)"><B>convertPoint(Point)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#convertValueFromXml(java.lang.Class, java.lang.Object)"><B>convertValueFromXml(Class&lt;?&gt;, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Converts XML attribute values to object of the given type.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#convertValueToString(java.lang.Object)"><B>convertValueToString(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the textual representation for the given cell.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#convertValueToXml(java.lang.Object)"><B>convertValueToXml(Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Converts true to "1" and false to "0".
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#copyNodeList(org.w3c.dom.NodeList)"><B>copyNodeList(NodeList)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>Copy a given NodeList into a List<Element>
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#CORE_CURVE"><B>CORE_CURVE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Defines the key for the central curve index
    +<DT><A HREF="./com/mxgraph/analysis/mxConstantCostFunction.html#cost"><B>cost</B></A> - 
    +Variable in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis">mxConstantCostFunction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#count"><B>count</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#countError"><B>countError</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Holds the localized error message to be displayed if the number of
    + connections for which the rule applies is smaller than min or greater
    + than max.
    +<DT><A HREF="./com/mxgraph/model/mxCellPath.html#create(com.mxgraph.model.mxICell)"><B>create(mxICell)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model">mxCellPath</A>
    +<DD>Creates the cell path for the given cell.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxKeyboardHandler.html#createActionMap()"><B>createActionMap()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler">mxKeyboardHandler</A>
    +<DD>Return the mapping between JTree's input map and JGraph's actions.
    +<DT><A HREF="./com/mxgraph/util/mxCellRenderer.html#createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle)"><B>createBufferedImage(mxGraph, Object[], double, Color, boolean, mxRectangle)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util">mxCellRenderer</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCellRenderer.html#createBufferedImage(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, boolean, com.mxgraph.util.mxRectangle, com.mxgraph.canvas.mxGraphics2DCanvas)"><B>createBufferedImage(mxGraph, Object[], double, Color, boolean, mxRectangle, mxGraphics2DCanvas)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util">mxCellRenderer</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createBufferedImage(int, int, java.awt.Color)"><B>createBufferedImage(int, int, Color)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Creates a buffered image for the given parameters.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#createCanvas(java.util.Map)"><B>createCanvas(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#createCanvas(java.util.Map)"><B>createCanvas(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Returns the canvas to be used for rendering.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#createCanvas(com.mxgraph.canvas.mxGraphics2DCanvas)"><B>createCanvas(mxGraphics2DCanvas)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Creates the canvas for rendering the stencil.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createCanvas()"><B>createCanvas()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Hook for subclassers to replace the graphics canvas for rendering and and
    + printing.
    +<DT><A HREF="./com/mxgraph/util/mxCellRenderer.CanvasFactory.html#createCanvas(int, int)"><B>createCanvas(int, int)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A>
    +<DD>Separates the creation of the canvas from its initialization, when the
    + size of the required graphics buffer / document / container is known.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#createCell(com.mxgraph.view.mxCellState, java.lang.String)"><B>createCell(mxCellState, String)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>Creates a new instance of mxShape for previewing the edge.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createCellEditor()"><B>createCellEditor()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#createCellStatePreview()"><B>createCellStatePreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createComponents(com.mxgraph.view.mxCellState)"><B>createComponents(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Hook for subclassers to create the array of heavyweights for the given
    + state.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createConnectionHandler()"><B>createConnectionHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#createConnectPreview()"><B>createConnectPreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#createCoreCurve()"><B>createCoreCurve()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Creates the core curve that is based on the guide points passed into
    + this class instance
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#createDataUrl(java.lang.String)"><B>createDataUrl(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#createDefaultEdgeStyle()"><B>createDefaultEdgeStyle()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Creates and returns the default edge style.
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#createDefaultVertexStyle()"><B>createDefaultVertexStyle()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Creates and returns the default vertex style.
    +<DT><A HREF="./com/mxgraph/util/mxDomUtils.html#createDocument()"><B>createDocument()</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util">mxDomUtils</A>
    +<DD>Returns a new, empty DOM document.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createDocument()"><B>createDocument()</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createDocument</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#createEdge(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.String)"><B>createEdge(Object, String, Object, Object, Object, String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Hook method that creates the new edge for insertEdge.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#createElement(org.w3c.dom.Node)"><B>createElement(Node)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>Forms an internal representation of the specified SVG element and returns
    + that representation
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#createErrorMessage(java.lang.String, java.lang.Object[])"><B>createErrorMessage(String, Object[])</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>Returns a localized error message.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#createEvent(java.awt.dnd.DropTargetEvent)"><B>createEvent(DropTargetEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#createFillPaint(com.mxgraph.util.mxRectangle, java.util.Map)"><B>createFillPaint(mxRectangle, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#createFont(java.lang.String, int, int)"><B>createFont(String, int, int)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Hook for subclassers to implement font caching.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#createGradientElement(java.lang.String, java.lang.String, java.lang.String)"><B>createGradientElement(String, String, String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createGraphControl()"><B>createGraphControl()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Creates the inner control that handles tooltips, preferred size and can
    + draw cells onto a canvas.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createGraphHandler()"><B>createGraphHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#createGraphicsCanvas()"><B>createGraphicsCanvas()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Hook that creates the graphics canvas.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], javax.swing.ImageIcon)"><B>createGraphTransferable(mxGraphComponent, Object[], ImageIcon)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#createGraphTransferable(com.mxgraph.swing.mxGraphComponent, java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)"><B>createGraphTransferable(mxGraphComponent, Object[], mxRectangle, ImageIcon)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#createGraphView()"><B>createGraphView()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Constructs a new view to be used in this graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#createGroupCell(java.lang.Object[])"><B>createGroupCell(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Hook for creating the group cell to hold the given array of <mxCells> if
    + no group cell was given to the <group> function.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#createHandle(java.awt.Point)"><B>createHandle(Point)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#createHandle(java.awt.Point, int)"><B>createHandle(Point, int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#createHandle()"><B>createHandle()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createHandler(com.mxgraph.view.mxCellState)"><B>createHandler(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createHandlers()"><B>createHandlers()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Creates the connection-, panning and graphhandler (in this order).
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#createHandles()"><B>createHandles()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Creates the rectangles that define the handles.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#createHandles()"><B>createHandles()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html#createHandles()"><B>createHandles()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#createHandles()"><B>createHandles()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#createHtmlDocument(java.lang.String, java.lang.String, java.lang.String, int, int)"><B>createHtmlDocument(String, String, String, int, int)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Creates a HTML document around the given markup.
    +<DT><A HREF="./com/mxgraph/shape/mxHtmlTextShape.html#createHtmlDocument(java.util.Map, java.lang.String)"><B>createHtmlDocument(Map&lt;String, Object&gt;, String)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCellRenderer.html#createHtmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)"><B>createHtmlDocument(mxGraph, Object[], double, Color, mxRectangle)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util">mxCellRenderer</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxDomUtils.html#createHtmlDocument()"><B>createHtmlDocument()</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util">mxDomUtils</A>
    +<DD>Returns a document with a HTML node containing a HEAD and BODY node.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createHtmlDocument()"><B>createHtmlDocument()</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createHtmlDocument</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createHtmlDocument(java.util.Map, java.lang.String)"><B>createHtmlDocument(Map&lt;String, Object&gt;, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a new, empty DOM document.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createHtmlDocument(java.util.Map, java.lang.String, double)"><B>createHtmlDocument(Map&lt;String, Object&gt;, String, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a new, empty DOM document.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createHtmlDocument(java.util.Map, java.lang.String, double, int)"><B>createHtmlDocument(Map&lt;String, Object&gt;, String, double, int)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a new, empty DOM document.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createHtmlDocument(java.util.Map, java.lang.String, double, int, java.lang.String)"><B>createHtmlDocument(Map&lt;String, Object&gt;, String, double, int, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a new, empty DOM document.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createHtmlDocumentObject(java.util.Map, double)"><B>createHtmlDocumentObject(Map&lt;String, Object&gt;, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a new, empty DOM document.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#createId(java.lang.Object)"><B>createId(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Creates a new Id for the given cell and increments the global counter
    + for creating new Ids.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#createIds"><B>createIds</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Specifies if the model should automatically create Ids for new cells.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#createImageElement(double, double, double, double, java.lang.String, boolean, boolean, boolean, boolean)"><B>createImageElement(double, double, double, double, String, boolean, boolean, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#createImageGraphics(double, double, double, double, boolean, boolean)"><B>createImageGraphics(double, double, double, double, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Creates a graphic instance for rendering an image.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#createInternalCells(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[])"><B>createInternalCells(mxHierarchicalLayout, Object[], mxGraphHierarchyNode[])</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Creates all edges in the internal model
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#createLabelCurve()"><B>createLabelCurve()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#createLine(double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline)"><B>createLine(double, double, mxCompactTreeLayout.Polyline)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#createMarker()"><B>createMarker()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#createMovePreview()"><B>createMovePreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#createNode(java.lang.Object)"><B>createNode(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createPanningHandler()"><B>createPanningHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxLineShape.html#createPoints(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>createPoints(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape">mxLineShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#createPoints(com.mxgraph.view.mxCellState)"><B>createPoints(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#createPreview()"><B>createPreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Creates the preview for this handler.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#createPreview()"><B>createPreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#createPreview()"><B>createPreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#createPriorityQueue()"><B>createPriorityQueue()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Hook for subclassers to provide a custom fibonacci heap.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#createRoot()"><B>createRoot()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Creates a new root cell with a default layer (child 0).
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createSelectionCellsHandler()"><B>createSelectionCellsHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#createSelectionModel()"><B>createSelectionModel()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Constructs a new selection model to be used in this graph.
    +<DT><A HREF="./com/mxgraph/shape/mxActorShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>createShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape">mxActorShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxArrowShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>createShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape">mxArrowShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>createShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCloudShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>createShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape">mxCloudShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxEllipseShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>createShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxHexagonShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>createShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape">mxHexagonShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxRhombusShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>createShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape">mxRhombusShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#createShape(org.w3c.dom.Node, com.mxgraph.shape.mxStencilShape.svgShape)"><B>createShape(Node, mxStencilShape.svgShape)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxTriangleShape.html#createShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>createShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape">mxTriangleShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#createShape(java.lang.String, int)"><B>createShape(String, int)</B></A> - 
    +Static method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Utility method for creating an ExtendedGeneralPath.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolygonProducer.html#createShape(java.lang.String, int)"><B>createShape(String, int)</B></A> - 
    +Static method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A>
    +<DD>Utility method for creating an ExtendedGeneralPath.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#createShape(java.lang.String, int)"><B>createShape(String, int)</B></A> - 
    +Static method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>Utility method for creating an ExtendedGeneralPath.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#createState(java.lang.Object)"><B>createState(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Creates and returns a cell state for the given cell.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#createStroke(java.util.Map)"><B>createStroke(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#createStylesheet()"><B>createStylesheet()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Constructs a new stylesheet to be used in this graph.
    +<DT><A HREF="./com/mxgraph/util/mxCellRenderer.html#createSvgDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)"><B>createSvgDocument(mxGraph, Object[], double, Color, mxRectangle)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util">mxCellRenderer</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxDomUtils.html#createSvgDocument(int, int)"><B>createSvgDocument(int, int)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util">mxDomUtils</A>
    +<DD>Creates a new SVG document for the given width and height.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createSvgDocument(int, int)"><B>createSvgDocument(int, int)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createSvgDocument(int, int)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createTable(org.w3c.dom.Document, java.lang.String, int, int, int, int, double, java.util.Map)"><B>createTable(Document, String, int, int, int, int, double, Map&lt;String, Object&gt;)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Creates a table for the given text using the given document to create the
    + DOM nodes.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#createTarget"><B>createTarget</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Specifies if the source should be cloned and used as a target if no
    + target was selected.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#createTargetVertex(java.awt.event.MouseEvent, java.lang.Object)"><B>createTargetVertex(MouseEvent, Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#createTemporaryGraphics(java.util.Map, float, com.mxgraph.util.mxRectangle)"><B>createTemporaryGraphics(Map&lt;String, Object&gt;, float, mxRectangle)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#createTextGraphics(double, double, double, double, boolean)"><B>createTextGraphics(double, double, double, double, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Returns a new graphics instance with the correct color and font for
    + text rendering.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#createTransferable(javax.swing.JComponent)"><B>createTransferable(JComponent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>(non-Javadoc)
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#createTransferableImage(com.mxgraph.swing.mxGraphComponent, java.lang.Object[])"><B>createTransferableImage(mxGraphComponent, Object[])</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createTransferHandler()"><B>createTransferHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#createTransformedShape(java.awt.geom.AffineTransform)"><B>createTransformedShape(AffineTransform)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#createTripleBuffer(int, int)"><B>createTripleBuffer(int, int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Creates the tripleBufferGraphics and tripleBuffer for the given dimension
    + and draws the complete graph onto the triplebuffer.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#createTripleBuffer(int, int)"><B>createTripleBuffer(int, int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Creates the tripleBufferGraphics and tripleBuffer for the given
    + dimension and draws the complete graph onto the triplebuffer.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#createUndoableEdit()"><B>createUndoableEdit()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Creates a new undoable edit.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#createUndoableEdit(com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange[])"><B>createUndoableEdit(mxIGraphModel.mxAtomicGraphModelChange[])</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>Creates a new mxUndoableEdit that implements the notify function to fire
    + a change and notify event via the model.
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#createUnionFind(java.lang.Object[])"><B>createUnionFind(Object[])</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Hook for subclassers to provide a custom union find structure.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#createVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String)"><B>createVertex(Object, String, Object, double, double, double, double, String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Hook method that creates the new vertex for insertVertex.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#createVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String, boolean)"><B>createVertex(Object, String, Object, double, double, double, double, String, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Hook method that creates the new vertex for insertVertex.
    +<DT><A HREF="./com/mxgraph/util/mxCellRenderer.html#createVmlDocument(com.mxgraph.view.mxGraph, java.lang.Object[], double, java.awt.Color, com.mxgraph.util.mxRectangle)"><B>createVmlDocument(mxGraph, Object[], double, Color, mxRectangle)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util">mxCellRenderer</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxDomUtils.html#createVmlDocument()"><B>createVmlDocument()</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util">mxDomUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#createVmlDocument()"><B>createVmlDocument()</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxDomUtils.createVmlDocument</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#cropping"><B>cropping</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Specifies the border which is added to the size of the graph.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#crossingStage(java.lang.Object)"><B>crossingStage(Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Executes the crossing stage using mxMedianHybridCrossingReduction.
    +<DT><A HREF="./com/mxgraph/util/svg/CSSConstants.html#CSS_FILL_PROPERTY"><B>CSS_FILL_PROPERTY</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg">CSSConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/CSSConstants.html#CSS_NONE_VALUE"><B>CSS_NONE_VALUE</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg">CSSConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/CSSConstants.html#CSS_STROKE_PROPERTY"><B>CSS_STROKE_PROPERTY</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg">CSSConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><B>CSSConstants</B></A> - Interface in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This interface defines constants for CSS.<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#current"><B>current</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#current"><B>current</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>The current character.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#currentAngle"><B>currentAngle</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#currentBestCrossings"><B>currentBestCrossings</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<DD>The total number of crossings found in the best configuration so far
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#currentColor"><B>currentColor</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Holds the current marker color.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#currentDropTarget"><B>currentDropTarget</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Reference to the current drop target.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#currentEdit"><B>currentEdit</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Holds the changes for the current transaction.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentFont"><B>currentFont</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Holds the current font.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentPath"><B>currentPath</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Holds the current path.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentPathIsOrthogonal"><B>currentPathIsOrthogonal</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Holds the current state for crisp rendering.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#currentRoot"><B>currentRoot</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>mxCell that acts as the root of the displayed cell hierarchy.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#currentSegment()"><B>currentSegment()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#currentSegment(double[])"><B>currentSegment(double[])</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#currentSegment(float[])"><B>currentSegment(float[])</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentShadowColor"><B>currentShadowColor</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Holds the current parsed shadow color.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentShadowValue"><B>currentShadowValue</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Holds the current value for the shadow color.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#currentState"><B>currentState</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#currentStroke"><B>currentStroke</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Holds the current stroke.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#currentX"><B>currentX</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>The current x position.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#currentXDelta"><B>currentXDelta</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The sum of x-displacements for the current iteration
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#currentXScale"><B>currentXScale</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>Holds the current value to which the shape is scaled in X
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#currentY"><B>currentY</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>The current y position.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#currentYScale"><B>currentYScale</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>Holds the current value to which the shape is scaled in Y
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#CURSORS"><B>CURSORS</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#curve"><B>curve</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Cache of the points between which drawing straight lines views as a
    + curve
    +<DT><A HREF="./com/mxgraph/shape/mxCurveShape.html#curve"><B>curve</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>
    +<DD>Cache of the points between which drawing straight lines views as a
    + curve
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#CURVE_TEXT_STRETCH_FACTOR"><B>CURVE_TEXT_STRETCH_FACTOR</B></A> - 
    +Static variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Factor by which text on the inside of curve is stretched
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#curveLengths"><B>curveLengths</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>The curve lengths of the curves
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#curveTo(double, double, double, double, double, double)"><B>curveTo(double, double, double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#curveTo(double, double, double, double, double, double)"><B>curveTo(double, double, double, double, double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Draws a bezier curve to the given point.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#curveTo(float, float, float, float, float, float)"><B>curveTo(float, float, float, float, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicAbs(float, float, float, float, float, float)"><B>curvetoCubicAbs(float, float, float, float, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoCubicAbs(float, float, float, float, float, float)"><CODE>PathHandler.curvetoCubicAbs(float,float,float,float,float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoCubicAbs(float, float, float, float, float, float)"><B>curvetoCubicAbs(float, float, float, float, float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when an absolute cubic bezier curve command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicRel(float, float, float, float, float, float)"><B>curvetoCubicRel(float, float, float, float, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoCubicRel(float, float, float, float, float, float)"><CODE>PathHandler.curvetoCubicRel(float,float,float,float,float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoCubicRel(float, float, float, float, float, float)"><B>curvetoCubicRel(float, float, float, float, float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a relative cubic bezier curve command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicSmoothAbs(float, float, float, float)"><B>curvetoCubicSmoothAbs(float, float, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements
    + <A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothAbs(float, float, float, float)"><CODE>PathHandler.curvetoCubicSmoothAbs(float,float,float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothAbs(float, float, float, float)"><B>curvetoCubicSmoothAbs(float, float, float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when an absolute smooth cubic bezier curve command has
    + been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#curvetoCubicSmoothRel(float, float, float, float)"><B>curvetoCubicSmoothRel(float, float, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements
    + <A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothRel(float, float, float, float)"><CODE>PathHandler.curvetoCubicSmoothRel(float,float,float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoCubicSmoothRel(float, float, float, float)"><B>curvetoCubicSmoothRel(float, float, float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a relative smooth cubic bezier curve command has
    + been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticAbs(float, float, float, float)"><B>curvetoQuadraticAbs(float, float, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements
    + <A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticAbs(float, float, float, float)"><CODE>PathHandler.curvetoQuadraticAbs(float,float,float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticAbs(float, float, float, float)"><B>curvetoQuadraticAbs(float, float, float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when an absolute quadratic bezier curve command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticRel(float, float, float, float)"><B>curvetoQuadraticRel(float, float, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements
    + <A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticRel(float, float, float, float)"><CODE>PathHandler.curvetoQuadraticRel(float,float,float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticRel(float, float, float, float)"><B>curvetoQuadraticRel(float, float, float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a relative quadratic bezier curve command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticSmoothAbs(float, float)"><B>curvetoQuadraticSmoothAbs(float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothAbs(float, float)"><CODE>PathHandler.curvetoQuadraticSmoothAbs(float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothAbs(float, float)"><B>curvetoQuadraticSmoothAbs(float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when an absolute smooth quadratic bezier curve command
    + has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#curvetoQuadraticSmoothRel(float, float)"><B>curvetoQuadraticSmoothRel(float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothRel(float, float)"><CODE>PathHandler.curvetoQuadraticSmoothRel(float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#curvetoQuadraticSmoothRel(float, float)"><B>curvetoQuadraticSmoothRel(float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a relative smooth quadratic bezier curve command
    + has been parsed.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#cut(com.mxgraph.analysis.mxFibonacciHeap.Node, com.mxgraph.analysis.mxFibonacciHeap.Node)"><B>cut(mxFibonacciHeap.Node, mxFibonacciHeap.Node)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>The reverse of the link operation: removes x from the child list of y.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#cycleStage(java.lang.Object)"><B>cycleStage(Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Executes the cycle stage.
    +</DL>
    +<HR>
    +<A NAME="_D_"><!-- --></A><H2>
    +<B>D</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#d"><B>d</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#dashed"><B>dashed</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#dashPattern"><B>dashPattern</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#DATA"><B>DATA</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#dataEdgeKey(com.mxgraph.io.graphml.mxGraphMlEdge)"><B>dataEdgeKey(mxGraphMlEdge)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>Returns the data element inside the edge that references to the key element
    + with name = KEY_EDGE_NAME.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#dataFlavor"><B>dataFlavor</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Serialized Data Flavor.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#dataNodeKey(com.mxgraph.io.graphml.mxGraphMlNode)"><B>dataNodeKey(mxGraphMlNode)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>Returns the data element inside the node that references to the key element
    + with name = KEY_NODE_NAME.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#decode(org.w3c.dom.Node)"><B>decode(Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Decodes the given XML node using <A HREF="./com/mxgraph/io/mxCodec.html#decode(org.w3c.dom.Node, java.lang.Object)"><CODE>mxCodec.decode(Node, Object)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#decode(org.w3c.dom.Node, java.lang.Object)"><B>decode(Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Decodes the given XML node.
    +<DT><A HREF="./com/mxgraph/io/mxGdCodec.html#decode(com.mxgraph.io.gd.mxGdDocument, com.mxgraph.view.mxGraph)"><B>decode(mxGdDocument, mxGraph)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io">mxGdCodec</A>
    +<DD>Recieves a mxGDDocument document and parses it generating a new graph that is inserted in graph.
    +<DT><A HREF="./com/mxgraph/io/mxGraphMlCodec.html#decode(org.w3c.dom.Document, com.mxgraph.view.mxGraph)"><B>decode(Document, mxGraph)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io">mxGraphMlCodec</A>
    +<DD>Receives a GraphMl document and parses it generating a new graph that is inserted in graph.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node)"><B>decode(mxCodec, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Parses the given node into the object or returns a new object
    + representing the given node.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>decode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Parses the given node into the object or returns a new object
    + representing the given node.
    +<DT><A HREF="./com/mxgraph/io/mxStylesheetCodec.html#decode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>decode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A>
    +<DD>Decodes the given mxStylesheet.
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html#decode(char[])"><B>decode(char[])</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>Decodes a BASE64 encoded char array.
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html#decode(byte[])"><B>decode(byte[])</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>Decodes a BASE64 encoded byte array.
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html#decode(java.lang.String)"><B>decode(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>Decodes a BASE64 encoded <code>String</code>.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#decodeAttribute(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>decodeAttribute(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Reads the given attribute into the specified object.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#decodeAttributes(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>decodeAttributes(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Decodes all attributes of the given node using decodeAttribute.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#decodeCell(org.w3c.dom.Node, boolean)"><B>decodeCell(Node, boolean)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Decodes cells that have been encoded using inversion, ie.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#decodeChanges(org.w3c.dom.Node)"><B>decodeChanges(Node)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>Adds removed cells to the codec object lookup for references to the removed
    + cells after this point in time.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#decodeChild(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>decodeChild(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Reads the specified child into the given object.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#decodeChildren(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>decodeChildren(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Decodec all children of the given node using decodeChild.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngTextDecoder.html#decodeCompressedText(java.io.InputStream)"><B>decodeCompressedText(InputStream)</B></A> - 
    +Static method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png">mxPngTextDecoder</A>
    +<DD>Decodes the zTXt chunk of the given PNG image stream.
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html#decodeFast(char[])"><B>decodeFast(char[])</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>Decodes a BASE64 encoded char array that is known to be resonably well formatted.
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html#decodeFast(byte[])"><B>decodeFast(byte[])</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>Decodes a BASE64 encoded byte array that is known to be resonably well formatted.
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html#decodeFast(java.lang.String)"><B>decodeFast(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>Decodes a BASE64 encoded string that is known to be resonably well formatted.
    +<DT><A HREF="./com/mxgraph/io/mxGraphMlCodec.html#decodeGraph(com.mxgraph.view.mxGraph, java.lang.Object, com.mxgraph.io.graphml.mxGraphMlGraph)"><B>decodeGraph(mxGraph, Object, mxGraphMlGraph)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io">mxGraphMlCodec</A>
    +<DD>Returns a Gml graph with the data of the vertexes and edges in the graph.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#decodeNode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>decodeNode(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Calls decodeAttributes and decodeChildren for the given node.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#decreaseKey(com.mxgraph.analysis.mxFibonacciHeap.Node, double)"><B>decreaseKey(mxFibonacciHeap.Node, double)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Decreases the key value for a heap node, given the new value to take on.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#DEFAULT_BACKGROUNDCOLOR"><B>DEFAULT_BACKGROUNDCOLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Specifies the background color of the transfer image.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#DEFAULT_COLLAPSED_ICON"><B>DEFAULT_COLLAPSED_ICON</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#DEFAULT_CURSOR"><B>DEFAULT_CURSOR</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Default is Cursor.DEFAULT_CURSOR.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_DASHED_PATTERN"><B>DEFAULT_DASHED_PATTERN</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Specifies the default dash pattern, 3 pixels solid, 3 pixels clear.
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#DEFAULT_DELAY"><B>DEFAULT_DELAY</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Specifies the default delay for animations in ms.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#DEFAULT_EXPANDED_ICON"><B>DEFAULT_EXPANDED_ICON</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_FONTFAMILIES"><B>DEFAULT_FONTFAMILIES</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Comma separated list of default fonts for CSS properties.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_FONTFAMILY"><B>DEFAULT_FONTFAMILY</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the default font family.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_FONTSIZE"><B>DEFAULT_FONTSIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the default font size.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_HOTSPOT"><B>DEFAULT_HOTSPOT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the portion of the cell which is to be used as a connectable
    + region.
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#DEFAULT_IMAGEBASEPATH"><B>DEFAULT_IMAGEBASEPATH</B></A> - 
    +Static variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Defines the default value for the imageBasePath in all GDI canvases.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_IMAGESIZE"><B>DEFAULT_IMAGESIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the default image size.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#DEFAULT_INVALID_COLOR"><B>DEFAULT_INVALID_COLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Specifies the default invalid color.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_LABEL_BUFFER"><B>DEFAULT_LABEL_BUFFER</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Specifies the default distance at 1.0 scale that the label curve is 
    + created from its base curve
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_MARKERSIZE"><B>DEFAULT_MARKERSIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the default marker size.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#DEFAULT_MAX_HANDLERS"><B>DEFAULT_MAX_HANDLERS</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Defines the default value for maxHandlers.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#DEFAULT_MIN_HEIGHT"><B>DEFAULT_MIN_HEIGHT</B></A> - 
    +Static variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#DEFAULT_MIN_WIDTH"><B>DEFAULT_MIN_WIDTH</B></A> - 
    +Static variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#DEFAULT_MINIMUM_EDITOR_SCALE"><B>DEFAULT_MINIMUM_EDITOR_SCALE</B></A> - 
    +Static variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#DEFAULT_PAGESCALE"><B>DEFAULT_PAGESCALE</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies the default page scale.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_STARTSIZE"><B>DEFAULT_STARTSIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the default start size for swimlanes.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#DEFAULT_STROKE"><B>DEFAULT_STROKE</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Specifies the default stroke for the marker.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#DEFAULT_TIMEOUT"><B>DEFAULT_TIMEOUT</B></A> - 
    +Static variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Default timeout is 10000 ms.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#DEFAULT_TRANSFER_IMAGE_ENABLED"><B>DEFAULT_TRANSFER_IMAGE_ENABLED</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Boolean that specifies if an image of the cells should be created for
    + each transferable.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#DEFAULT_VALID_COLOR"><B>DEFAULT_VALID_COLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Specifies the default valid color.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#DEFAULT_WARNING_ICON"><B>DEFAULT_WARNING_ICON</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#DEFAULT_ZOOMHANDLE_FILL"><B>DEFAULT_ZOOMHANDLE_FILL</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg"><B>DefaultErrorHandler</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class provides a default implementation of ErrorHandler.<DT><A HREF="./com/mxgraph/util/svg/DefaultErrorHandler.html#DefaultErrorHandler()"><B>DefaultErrorHandler()</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg">DefaultErrorHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html#defaultInterGlyphSpace"><B>defaultInterGlyphSpace</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#defaultLoopStyle"><B>defaultLoopStyle</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the default style for loops.
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#defaultOverlap"><B>defaultOverlap</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>Defines the overlapping for the overlay, that is,
    + the proportional distance from the origin to the
    + point defined by the alignment.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#defaultOverlap"><B>defaultOverlap</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Value returned by getOverlap if isAllowOverlapParent returns
    + true for the given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#defaultParent"><B>defaultParent</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the default parent to be used to insert new cells.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#defs"><B>defs</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DEG_PER_RAD"><B>DEG_PER_RAD</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the number of degrees per radian.
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#delay"><B>delay</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Default is DEFAULT_DELAY.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#delete(com.mxgraph.analysis.mxFibonacciHeap.Node)"><B>delete(mxFibonacciHeap.Node)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Deletes a node from the heap given the reference to the node.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#delta"><B>delta</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Holds the history of all changes of initial state.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#deltas"><B>deltas</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#desc"><B>desc</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Holds the top-level node of the stencil definition.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#destroy()"><B>destroy()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#destroy()"><B>destroy()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Destroys the session and removes its listener from the shared diagram.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html#destroy()"><B>destroy()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#destroy()"><B>destroy()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#destroy()"><B>destroy()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#destroy()"><B>destroy()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxTemporaryCellStates.html#destroy()"><B>destroy()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A>
    +<DD>Destroys the cell states and restores the state of the graph view.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#destroyTripleBuffer()"><B>destroyTripleBuffer()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Destroys the tripleBuffer and tripleBufferGraphics objects.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#destroyTripleBuffer()"><B>destroyTripleBuffer()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Destroys the tripleBuffer and tripleBufferGraphics objects.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#deterministic"><B>deterministic</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Whether or not cells are ordered according to the order in the graph
    + model.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#deterministic"><B>deterministic</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Whether or not cells are ordered according to the order in the graph
    + model.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int)"><B>dfs(mxGraphHierarchyNode, mxGraphHierarchyNode, mxGraphHierarchyEdge, mxGraphHierarchyModel.CellVisitor, Set&lt;mxGraphHierarchyNode&gt;, int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Performs a depth first search on the internal hierarchy model
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfs(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, java.util.Set, int[], int, int)"><B>dfs(mxGraphHierarchyNode, mxGraphHierarchyNode, mxGraphHierarchyEdge, mxGraphHierarchyModel.CellVisitor, Set&lt;mxGraphHierarchyNode&gt;, int[], int, int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Performs a depth first search on the internal hierarchy model.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#dfs(java.lang.Object, java.lang.Object, java.util.Set)"><B>dfs(Object, Object, Set&lt;Object&gt;)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Does a depth first search starting at the specified cell.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#dfsCount"><B>dfsCount</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Count of the number of times the ancestor dfs has been used
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#diagram"><B>diagram</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Reference to the shared diagram.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#diagramChanged(java.lang.Object, java.lang.String)"><B>diagramChanged(Object, String)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html#diagramChanged(java.lang.Object, java.lang.String)"><B>diagramChanged(Object, String)</B></A> - 
    +Method in interface com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>
    +<DD>Fires when the shared diagram was changed.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#diagramChangeListeners"><B>diagramChangeListeners</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Holds a list of diagram change listeners.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#die()"><B>die()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Hook to free resources after the edit has been removed from the command
    + history.
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.html#differ(java.lang.Object, java.lang.Object)"><B>differ(Object, Object)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A>
    +<DD>Returns true if element a and element b are not in the same set.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_EAST"><B>DIRECTION_EAST</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_EAST
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_MASK_ALL"><B>DIRECTION_MASK_ALL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_MASK_EAST
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_MASK_EAST"><B>DIRECTION_MASK_EAST</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_MASK_EAST
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_MASK_NONE"><B>DIRECTION_MASK_NONE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_MASK_NONE
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_MASK_NORTH"><B>DIRECTION_MASK_NORTH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_MASK_NORTH
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_MASK_SOUTH"><B>DIRECTION_MASK_SOUTH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_MASK_SOUTH
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_MASK_WEST"><B>DIRECTION_MASK_WEST</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_MASK_WEST
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_NORTH"><B>DIRECTION_NORTH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_NORTH
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_SOUTH"><B>DIRECTION_SOUTH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_SOUTH
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#DIRECTION_WEST"><B>DIRECTION_WEST</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>DIRECTION_WEST
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#dirty"><B>dirty</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#dirVectors"><B>dirVectors</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#disableEdgeStyle"><B>disableEdgeStyle</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#disableEdgeStyle"><B>disableEdgeStyle</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#disableEdgeStyle"><B>disableEdgeStyle</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#disableEdgeStyle"><B>disableEdgeStyle</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#disableEdgeStyle"><B>disableEdgeStyle</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + modified by the result.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#disconnectGraph(java.lang.Object[])"><B>disconnectGraph(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Disconnects the given edges from the terminals which are not in the
    + given array.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#disconnectOnMove"><B>disconnectOnMove</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if edges should be disconnected from their terminals when they
    + are moved.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#dispatch()"><B>dispatch()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Hook to notify any listeners of the changes after an undo or redo
    + has been carried out.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#dispX"><B>dispX</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>An array of locally stored X co-ordinate displacements for the vertices.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#dispY"><B>dispY</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>An array of locally stored Y co-ordinate displacements for the vertices.
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#document"><B>document</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>Holds the HTML document that represents the canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#document"><B>document</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Holds the HTML document that represents the canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#document"><B>document</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>Holds the HTML document that represents the canvas.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#document"><B>document</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Holds the owner document of the codec.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#DONE"><B>DONE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#doParse()"><B>doParse()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>Method responsible for actually parsing data after AbstractParser
    + has initialized itself.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#doParse()"><B>doParse()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/PointsParser.html#doParse()"><B>doParse()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A>
    +<DD>Parses the current stream.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#DOWN"><B>DOWN</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#dragCells"><B>dragCells</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#dragEnabled"><B>dragEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#dragEnter(java.awt.dnd.DropTargetDragEvent)"><B>dragEnter(DropTargetDragEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#dragExit(java.awt.dnd.DropTargetEvent)"><B>dragExit(DropTargetEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#dragImage"><B>dragImage</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Holds the image that is being used for the preview.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#dragOver(java.awt.dnd.DropTargetDragEvent)"><B>dragOver(DropTargetDragEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#drawCell(com.mxgraph.view.mxCellState)"><B>drawCell(mxCellState)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#drawCell(com.mxgraph.view.mxCellState)"><B>drawCell(mxCellState)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas.html#drawCell(com.mxgraph.view.mxCellState)"><B>drawCell(mxCellState)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>
    +<DD>Draws the given cell.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#drawCell(com.mxgraph.view.mxCellState)"><B>drawCell(mxCellState)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#drawCell(com.mxgraph.view.mxCellState)"><B>drawCell(mxCellState)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#drawCell(com.mxgraph.view.mxCellState)"><B>drawCell(mxCellState)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#drawCell(com.mxgraph.canvas.mxICanvas, java.lang.Object)"><B>drawCell(mxICanvas, Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Draws the given cell onto the specified canvas.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#drawCell(com.mxgraph.canvas.mxICanvas, java.lang.Object)"><B>drawCell(mxICanvas, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Draws the given cell and its descendants onto the specified canvas.
    +<DT><A HREF="./com/mxgraph/util/mxCellRenderer.html#drawCells(com.mxgraph.view.mxGraph, java.lang.Object[], double, com.mxgraph.util.mxRectangle, com.mxgraph.util.mxCellRenderer.CanvasFactory)"><B>drawCells(mxGraph, Object[], double, mxRectangle, mxCellRenderer.CanvasFactory)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util">mxCellRenderer</A>
    +<DD>Draws the given cells using a Graphics2D canvas and returns the buffered image
    + that represents the cells.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#drawChildren(java.lang.Object, boolean, boolean)"><B>drawChildren(Object, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Draws the child edges and/or all other children in the given cell
    + depending on the boolean arguments.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#drawElement(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, org.w3c.dom.Element, com.mxgraph.util.mxRectangle)"><B>drawElement(mxGraphicsCanvas2D, mxCellState, Element, mxRectangle)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Drawsthe given element.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#drawFromRootCell()"><B>drawFromRootCell()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Hook to draw the root cell into the canvas.
    +<DT><A HREF="./com/mxgraph/shape/mxLabelShape.html#drawGlassEffect(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>drawGlassEffect(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Static method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A>
    +<DD>Draws the glass effect
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#drawGraph(java.awt.Graphics2D, boolean)"><B>drawGraph(Graphics2D, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#drawGraph(com.mxgraph.canvas.mxICanvas)"><B>drawGraph(mxICanvas)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Draws the graph onto the given canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#drawImage(java.awt.Rectangle, java.lang.String)"><B>drawImage(Rectangle, String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#drawImage(java.awt.Rectangle, java.lang.String, boolean, boolean, boolean)"><B>drawImage(Rectangle, String, boolean, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#drawImage(java.awt.Graphics2D, java.awt.Image, int, int)"><B>drawImage(Graphics2D, Image, int, int)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#drawImageClip(java.awt.Graphics, java.awt.image.BufferedImage, java.awt.image.ImageObserver)"><B>drawImageClip(Graphics, BufferedImage, ImageObserver)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Draws the image inside the clip bounds to the given graphics object.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#drawImageImpl(java.awt.Image, int, int)"><B>drawImageImpl(Image, int, int)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Implements the actual graphics call.
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#drawImageImpl(java.awt.Image, int, int)"><B>drawImageImpl(Image, int, int)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>Overrides graphics call to use image observer.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#drawingBounds"><B>drawingBounds</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>
    +<DD>The un-rotated rectangle that just bounds this character
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><B>drawLabel(String, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><B>drawLabel(String, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><B>drawLabel(String, mxCellState, boolean)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>
    +<DD>Draws the given label.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><B>drawLabel(String, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><B>drawLabel(String, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#drawLabel(java.lang.String, com.mxgraph.view.mxCellState, boolean)"><B>drawLabel(String, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#drawLabels"><B>drawLabels</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Specifies whether labels should be painted.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#drawLabels"><B>drawLabels</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#drawLine(java.util.List, java.util.Map)"><B>drawLine(List&lt;mxPoint&gt;, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>Draws the given lines as segments between all points of the given list
    + of mxPoints.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#drawLine(java.util.List, java.util.Map)"><B>drawLine(List&lt;mxPoint&gt;, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Draws the given lines as segments between all points of the given list
    + of mxPoints.
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#drawLine(java.util.List, java.util.Map)"><B>drawLine(List&lt;mxPoint&gt;, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>Draws the given lines as segments between all points of the given list
    + of mxPoints.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#drawMarker(org.w3c.dom.Element, java.lang.Object, com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint, float, float, java.lang.String)"><B>drawMarker(Element, Object, mxPoint, mxPoint, float, float, String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Draws the specified marker as a child path in the given parent.
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#drawSegment(int, int, int, int, java.lang.String, int)"><B>drawSegment(int, int, int, int, String, int)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>Draws the specified segment of a line.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#drawShadow(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, double, boolean, boolean, com.mxgraph.util.mxRectangle, double, boolean)"><B>drawShadow(mxGraphicsCanvas2D, mxCellState, double, boolean, boolean, mxRectangle, double, boolean)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Draws the shadow.
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#drawShape(int, int, int, int, java.util.Map)"><B>drawShape(int, int, int, int, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>Draws the shape specified with the STYLE_SHAPE key in the given style.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#drawShape(int, int, int, int, java.util.Map)"><B>drawShape(int, int, int, int, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Draws the shape specified with the STYLE_SHAPE key in the given style.
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#drawShape(int, int, int, int, java.util.Map)"><B>drawShape(int, int, int, int, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>Draws the shape specified with the STYLE_SHAPE key in the given style.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#drawShape(com.mxgraph.canvas.mxGraphicsCanvas2D, com.mxgraph.view.mxCellState, com.mxgraph.util.mxRectangle, boolean)"><B>drawShape(mxGraphicsCanvas2D, mxCellState, mxRectangle, boolean)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Draws this stencil inside the given bounds.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#drawState(com.mxgraph.canvas.mxICanvas, com.mxgraph.view.mxCellState, boolean)"><B>drawState(mxICanvas, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Draws the cell state with the given label onto the canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#drawText(java.lang.String, int, int, int, int, java.util.Map)"><B>drawText(String, int, int, int, int, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>Draws the specified text either using drawHtmlString or using drawString.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#drawText(java.lang.String, int, int, int, int, java.util.Map)"><B>drawText(String, int, int, int, int, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Draws the specified text either using drawHtmlString or using drawString.
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#drawText(java.lang.String, int, int, int, int, java.util.Map)"><B>drawText(String, int, int, int, int, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>Draws the specified text either using drawHtmlString or using drawString.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#drop(java.awt.dnd.DropTargetDropEvent)"><B>drop(DropTargetDropEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#dropActionChanged(java.awt.dnd.DropTargetDragEvent)"><B>dropActionChanged(DropTargetDragEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#dropEnabled"><B>dropEnabled</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isDropEnabled.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#dx"><B>dx</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#dx"><B>dx</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#dy"><B>dy</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#dy"><B>dy</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_E_"><!-- --></A><H2>
    +<B>E</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#e"><B>e</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Internal models collection of edges to be laid out
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#ease"><B>ease</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Ease-off for movement towards the given vector.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE"><B>EDGE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#edge"><B>edge</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_DEFAULT"><B>EDGE_DEFAULT</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_DIRECTED"><B>EDGE_DIRECTED</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#EDGE_SELECTION_COLOR"><B>EDGE_SELECTION_COLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the selection color for edges.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#EDGE_SELECTION_STROKE"><B>EDGE_SELECTION_STROKE</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the stroke used for painting selected edges.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_SOURCE"><B>EDGE_SOURCE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_SOURCE_PORT"><B>EDGE_SOURCE_PORT</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_TARGET"><B>EDGE_TARGET</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_TARGET_PORT"><B>EDGE_TARGET_PORT</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#EDGE_UNDIRECTED"><B>EDGE_UNDIRECTED</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#edgeCrossingCostFactor"><B>edgeCrossingCostFactor</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Cost factor applied to energy calculations involving edges that cross
    + over one another.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#edgeDistanceCostFactor"><B>edgeDistanceCostFactor</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Cost factor applied to energy calculations involving the distance
    + nodes and edges.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#edgeLabelsMovable"><B>edgeLabelsMovable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for edges in isLabelMovable.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#edgeLengthCostFactor"><B>edgeLengthCostFactor</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Cost factor applied to energy calculations for the edge lengths.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#edgeMapper"><B>edgeMapper</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Map from graph edges to internal model edges
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#edgeRouting"><B>edgeRouting</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Whether or not to apply the internal tree edge routing
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#edges"><B>edges</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>The graph edge(s) this object represents.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#edges"><B>edges</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Holds the child cells and connected edges.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#edgeStyle"><B>edgeStyle</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The style to apply between cell layers to edge segments
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#EDGESTYLE_ELBOW"><B>EDGESTYLE_ELBOW</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the elbow edge style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#EDGESTYLE_ENTITY_RELATION"><B>EDGESTYLE_ENTITY_RELATION</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the entity relation edge style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#EDGESTYLE_LOOP"><B>EDGESTYLE_LOOP</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the loop edge style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#EDGESTYLE_ORTHOGONAL"><B>EDGESTYLE_ORTHOGONAL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the orthogonal edge style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#EDGESTYLE_SIDETOSIDE"><B>EDGESTYLE_SIDETOSIDE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the side to side edge style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#EDGESTYLE_TOPTOBOTTOM"><B>EDGESTYLE_TOPTOBOTTOM</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the top to bottom edge style.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#editingCell"><B>editingCell</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#editorPane"><B>editorPane</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Holds the editor for HTML editing.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ELBOW_HORIZONTAL"><B>ELBOW_HORIZONTAL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ELBOW_HORIZONTAL
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ELBOW_VERTICAL"><B>ELBOW_VERTICAL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>ELBOW_VERTICAL
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#ElbowConnector"><B>ElbowConnector</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>Uses either SideToSide or TopToBottom depending on the horizontal
    + flag in the cell style.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#ellipse(double, double, double, double)"><B>ellipse(double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#ellipse(double, double, double, double)"><B>ellipse(double, double, double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Next fill or stroke should draw an ellipse.
    +<DT><A HREF="./com/mxgraph/view/mxPerimeter.html#EllipsePerimeter"><B>EllipsePerimeter</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view">mxPerimeter</A>
    +<DD>Describes an elliptic perimeter.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#embedded"><B>embedded</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Specifies if images should be embedded as base64 encoded strings.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#EMPTY_IMAGE"><B>EMPTY_IMAGE</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Contains an empty image of size 1, 1.
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#EMPTY_STYLE"><B>EMPTY_STYLE</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Shared immutable empty hashtable (for undefined cell styles).
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#emptyConnectionMap"><B>emptyConnectionMap</B></A> - 
    +Static variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Shared empty connection map to return instead of null in applyMap.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Specifies if the marker is enabled.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if the handler is enabled.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>Specifies if this handler is enabled.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>Specifies if this handler is enabled.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Specifies if the rubberband is enabled.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Specifies if this handler is enabled.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isEnabled.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#enabled"><B>enabled</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#encode(java.lang.Object)"><B>encode(Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Encodes the specified object and returns the resulting XML node.
    +<DT><A HREF="./com/mxgraph/io/mxGdCodec.html#encode(com.mxgraph.view.mxGraph)"><B>encode(mxGraph)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io">mxGdCodec</A>
    +<DD>Generates a GD document with the cells in the graph.
    +<DT><A HREF="./com/mxgraph/io/mxGraphMlCodec.html#encode(com.mxgraph.view.mxGraph)"><B>encode(mxGraph)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io">mxGraphMlCodec</A>
    +<DD>Generates a Xml document with the cells in the graph.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)"><B>encode(mxCodec, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Encodes the specified object and returns a node representing then given
    + object.
    +<DT><A HREF="./com/mxgraph/io/mxStylesheetCodec.html#encode(com.mxgraph.io.mxCodec, java.lang.Object)"><B>encode(mxCodec, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A>
    +<DD>Encodes the given mxStylesheet.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html#encode(java.awt.image.RenderedImage)"><B>encode(RenderedImage)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png">mxPngImageEncoder</A>
    +<DD>This method encodes a <code>RenderedImage</code> into PNG.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#encodeCell(com.mxgraph.model.mxICell, org.w3c.dom.Node, boolean)"><B>encodeCell(mxICell, Node, boolean)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Encoding of cell hierarchies is built-into the core, but is a
    + higher-level function that needs to be explicitely used by the
    + respective object encoders (eg.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#encodeDefaults"><B>encodeDefaults</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Specifies if default values should be encoded.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><B>encodeElements(mxCodec, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Encodes the child objects of arrays, maps and collections.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><B>encodeFields(mxCodec, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Encodes the declared fields of the given object into the given node.
    +<DT><A HREF="./com/mxgraph/io/mxModelCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><B>encodeObject(mxCodec, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io">mxModelCodec</A>
    +<DD>Encodes the given mxGraphModel by writing a (flat) XML sequence
    + of cell nodes as produced by the mxCellCodec.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#encodeObject(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><B>encodeObject(mxCodec, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Encodes the value of each member in then given obj
    + into the given node using <A HREF="./com/mxgraph/io/mxObjectCodec.html#encodeFields(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><CODE>mxObjectCodec.encodeFields(mxCodec, Object, Node)</CODE></A>
    + and <A HREF="./com/mxgraph/io/mxObjectCodec.html#encodeElements(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)"><CODE>mxObjectCodec.encodeElements(mxCodec, Object, Node)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html#encodeToByte(byte[], boolean)"><B>encodeToByte(byte[], boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>Encodes a raw byte array into a BASE64 <code>byte[]</code> representation i accordance with RFC 2045.
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html#encodeToChar(byte[], boolean)"><B>encodeToChar(byte[], boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>Encodes a raw byte array into a BASE64 <code>char[]</code> representation i accordance with RFC 2045.
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html#encodeToString(byte[], boolean)"><B>encodeToString(byte[], boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>Encodes a raw byte array into a BASE64 <code>String</code> representation i accordance with RFC 2045.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#encodeValue(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><B>encodeValue(mxCodec, Object, String, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Converts the given value according to the mappings
    + and id-refs in this codec and uses
    + <A HREF="./com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><CODE>mxObjectCodec.writeAttribute(mxCodec, Object, String, Object, Node)</CODE></A>
    + to write the attribute into the given node.
    +<DT><A HREF="./com/mxgraph/io/mxGraphMlCodec.html#encodeXML(com.mxgraph.io.graphml.mxGraphMlGraph)"><B>encodeXML(mxGraphMlGraph)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io">mxGraphMlCodec</A>
    +<DD>Generates a Xml document with the gmlGraph.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#END_UPDATE"><B>END_UPDATE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>Holds the name for the endUpdate event.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html#endBuffer"><B>endBuffer</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#endingUpdate"><B>endingUpdate</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#endPath()"><B>endPath()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#endPath()"><CODE>PathHandler.endPath()</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#endPath()"><B>endPath()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when the path ends.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#ENDPOINT"><B>ENDPOINT</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxLine.html#endPoint"><B>endPoint</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>
    +<DD>The end point of the line
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolygonProducer.html#endPoints()"><B>endPoints()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg">AWTPolygonProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PointsHandler.html#endPoints()"><CODE>PointsHandler.endPoints()</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#endPoints()"><B>endPoints()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PointsHandler.html#endPoints()"><CODE>PointsHandler.endPoints()</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PointsHandler.html#endPoints()"><B>endPoints()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>
    +<DD>Invoked when the points attribute ends.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#endUpdate()"><B>endUpdate()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#endUpdate()"><B>endUpdate()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Decrements the updateLevel by one and fires a notification event if the
    + updateLevel reaches 0.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#enterGroup()"><B>enterGroup()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#enterGroup(java.lang.Object)"><B>enterGroup(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Uses the given cell as the root of the displayed cell hierarchy.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#enterStopsCellEditing"><B>enterStopsCellEditing</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>If true, pressing the enter key without pressing control will stop
    + editing and accept the new value.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#ENTITY_SEGMENT"><B>ENTITY_SEGMENT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the length of the horizontal segment of an Entity Relation.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#EntityRelation"><B>EntityRelation</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>Provides an entity relation style for edges (as used in database
    + schema diagrams).
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#enumForValue(java.lang.String)"><B>enumForValue(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>Converts a String value in its corresponding enum value for the
    + keyFor attribute.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#enumTypeValue(java.lang.String)"><B>enumTypeValue(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>Converts a String value in its corresponding enum value for the
    + keyType attribute.
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Returns true if the given object equals this rectangle.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns true if the given object equals this rectangle.
    +<DT><A HREF="./com/mxgraph/util/svg/PointsParser.html#eRead"><B>eRead</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A>
    +<DD>Whether the last character was a 'e' or 'E'.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#error"><B>error</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#error"><B>error</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/DefaultErrorHandler.html#error(com.mxgraph.util.svg.ParseException)"><B>error(ParseException)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg">DefaultErrorHandler</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)"><CODE>ErrorHandler.error(ParseException)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/ErrorHandler.html#error(com.mxgraph.util.svg.ParseException)"><B>error(ParseException)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A>
    +<DD>Called when a parse error occurs.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#errorHandler"><B>errorHandler</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>The error handler.
    +<DT><A HREF="./com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><B>ErrorHandler</B></A> - Interface in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This interface must be implemented and then registred as the error handler
    + in order to be notified of parsing errors.<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#escape(java.awt.event.KeyEvent)"><B>escape(KeyEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Callback to process an escape keystroke.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#escapeEnabled"><B>escapeEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies <escape> should be invoked when the escape key is pressed.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#eval(java.lang.String)"><B>eval(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Evaluates a Java expression as a class member using mxCodecRegistry.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#evaluateAttribute(org.w3c.dom.Element, java.lang.String, com.mxgraph.view.mxCellState)"><B>evaluateAttribute(Element, String, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Gets the attribute for the given name from the given node.
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#eventListeners"><B>eventListeners</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Holds the event names and associated listeners in an array.
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#eventsEnabled"><B>eventsEnabled</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Specifies if events can be fired.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#eventSource"><B>eventSource</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Holds the event source.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#eventSource"><B>eventSource</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Holds the event source.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#eventSource"><B>eventSource</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#eventSource"><B>eventSource</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#eventSource"><B>eventSource</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Holds the source object for this event source.
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#exception"><B>exception</B></A> - 
    +Variable in exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#exclude"><B>exclude</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Array containing the variable names that should be ignored by the codec.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Executes the layout for the children of the specified parent.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#execute(java.lang.Object, java.util.List)"><B>execute(Object, List&lt;Object&gt;)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Executes the layout for the children of the specified parent.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>A basic horizontal coordinate assignment algorithm
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in interface com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A>
    +<DD>Takes the graph detail and configuration information within the facade
    + and creates the resulting laid out graph within that facade for further
    + use.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<DD>Performs a vertex ordering within ranks as described by Gansner et al
    + 1993
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMinimumCycleRemover</A>
    +<DD>Produces the layer assignmment using the graph information specified
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#execute(java.lang.Object, java.lang.Object)"><B>execute(Object, Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Implements <mxGraphLayout.execute>.
    +<DT><A HREF="./com/mxgraph/layout/mxEdgeLabelLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxIGraphLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in interface com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A>
    +<DD>Executes the layout for the children of the specified parent.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Implements <mxGraphLayout.execute>.
    +<DT><A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
    +Method in class com.mxgraph.layout.orthogonal.<A HREF="./com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#execute(com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange)"><B>execute(mxIGraphModel.mxAtomicGraphModelChange)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Executes the given atomic change and adds it to the current edit.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>Changes the root of the model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>Changes the root of the model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>Changes the root of the model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<DD>Changes the root of the model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>Changes the root of the model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>Changes the root of the model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>Changes the root of the model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>Changes the root of the model.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>
    +<DD>Executes the change on the model.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#EXECUTE"><B>EXECUTE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>Holds the name for the execute event.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html#execute()"><B>execute()</B></A> - 
    +Method in interface com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>
    +<DD>Undoes or redoes the change depending on its undo state.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#execute()"><B>execute()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>Changes the current root of the view.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#executeLayout(com.mxgraph.layout.mxIGraphLayout, java.lang.Object)"><B>executeLayout(mxIGraphLayout, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#exitGroup()"><B>exitGroup()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Changes the current root to the next valid root in the displayed cell
    + hierarchy.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#expandedIcon"><B>expandedIcon</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#exportDone(javax.swing.JComponent, java.awt.datatransfer.Transferable, int)"><B>exportDone(JComponent, Transferable, int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#exportEnabled"><B>exportEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#extendComponent(java.awt.Rectangle)"><B>extendComponent(Rectangle)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Implements extension of the component in all directions.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg"><B>ExtendedGeneralPath</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>The <code>ExtendedGeneralPath</code> class represents a geometric
    + path constructed from straight lines, quadratic and cubic (Bezier)
    + curves and elliptical arc.<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#ExtendedGeneralPath()"><B>ExtendedGeneralPath()</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Constructs a new <code>ExtendedGeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#ExtendedGeneralPath(int)"><B>ExtendedGeneralPath(int)</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Constructs a new <code>ExtendedGeneralPath</code> with the
    + specified winding rule to control operations that require the
    + interior of the path to be defined.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#ExtendedGeneralPath(int, int)"><B>ExtendedGeneralPath(int, int)</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Constructs a new <code>ExtendedGeneralPath</code> object with
    + the specified winding rule and the specified initial capacity
    + to store path coordinates.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#ExtendedGeneralPath(java.awt.Shape)"><B>ExtendedGeneralPath(Shape)</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Constructs a new <code>ExtendedGeneralPath</code> object from
    + an arbitrary <code>Shape</code> object.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><B>ExtendedPathIterator</B></A> - Interface in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>The <code>ExtendedPathIterator</code> class represents a geometric
    + path constructed from straight lines, quadratic and cubic (Bezier)
    + curves and elliptical arcs.<DT><A HREF="./com/mxgraph/view/mxGraph.html#extendParent(java.lang.Object)"><B>extendParent(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Resizes the parents recursively so that they contain the complete area
    + of the resized child cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#extendParents"><B>extendParents</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if a parent should contain the child bounds after a resize of
    + the child.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#extendParents"><B>extendParents</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#extendParentsOnAdd"><B>extendParentsOnAdd</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if parents should be extended according to the <extendParents>
    + switch if cells are added.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#extractHtmlBody"><B>extractHtmlBody</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Specifies if the text content of the HTML body should be extracted
    + before and after editing for HTML markup.
    +</DL>
    +<HR>
    +<A NAME="_F_"><!-- --></A><H2>
    +<B>F</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#fgNode"><B>fgNode</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Holds the XML node with the stencil description.
    +<DT><A HREF="./com/mxgraph/io/mxGenericChangeCodec.html#fieldname"><B>fieldname</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io">mxGenericChangeCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#fields"><B>fields</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Caches fields for faster access.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#fill()"><B>fill()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#fill()"><B>fill()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Fills the current path.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#FILL"><B>FILL</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#fill"><B>fill</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Boolean indicating if dimension should be changed to fill out the parent
    + cell.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#fillAndStroke()"><B>fillAndStroke()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#fillAndStroke()"><B>fillAndStroke()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Fills and paints the outline of the current path.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#fillClippedRect(java.awt.Graphics, int, int, int, int)"><B>fillClippedRect(Graphics, int, int, int, int)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fillColor"><B>fillColor</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#fillColor"><B>fillColor</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Defines the color to be used for filling the rubberband selection.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fillColorValue"><B>fillColorValue</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#fillShape(java.awt.Shape)"><B>fillShape(Shape)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#fillShape(java.awt.Shape, boolean)"><B>fillShape(Shape, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.Filter.html#filter(java.lang.Object)"><B>filter(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model">mxGraphModel.Filter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#filterCells(java.lang.Object[], com.mxgraph.model.mxGraphModel.Filter)"><B>filterCells(Object[], mxGraphModel.Filter)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter)"><B>filterDescendants(mxIGraphModel, mxGraphModel.Filter)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Creates a collection of cells using the visitor pattern.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#filterDescendants(com.mxgraph.model.mxIGraphModel, com.mxgraph.model.mxGraphModel.Filter, java.lang.Object)"><B>filterDescendants(mxIGraphModel, mxGraphModel.Filter, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Creates a collection of cells using the visitor pattern.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#filterRow(byte[], byte[], byte[][], int, int)"><B>filterRow(byte[], byte[], byte[][], int, int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Performs filtering on a row of an image.
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.html#find(com.mxgraph.analysis.mxUnionFind.Node)"><B>find(mxUnionFind.Node)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A>
    +<DD>Returns the set that contains <code>node</code>.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#finderBounds"><B>finderBounds</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#finderVisible"><B>finderVisible</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#findNearestSegment(com.mxgraph.view.mxCellState, double, double)"><B>findNearestSegment(mxCellState, double, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Finds the index of the nearest segment on the given cell state for the
    + specified coordinate pair.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#findNode(org.w3c.dom.Node, java.lang.String, java.lang.String)"><B>findNode(Node, String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the first node where attr equals value.
    +<DT><A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html#findParallels(java.lang.Object)"><B>findParallels(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#findTreeRoots(java.lang.Object, boolean)"><B>findTreeRoots(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Returns all visible children in the given parent which do not have
    + incoming edges.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#findTreeRoots(java.lang.Object)"><B>findTreeRoots(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all visible children in the given parent which do not have
    + incoming edges.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#findTreeRoots(java.lang.Object, boolean)"><B>findTreeRoots(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all visible children in the given parent which do not have
    + incoming edges.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#findTreeRoots(java.lang.Object, boolean, boolean)"><B>findTreeRoots(Object, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all visible children in the given parent which do not have
    + incoming edges.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#fineTuning"><B>fineTuning</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Whether or not to perform local optimisations and iterate multiple times
    + through the algorithm
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#fineTuning"><B>fineTuning</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Whether or not to perform local optimisations and iterate multiple times
    + through the algorithm
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#fineTuningRadius"><B>fineTuningRadius</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The radius below which fine tuning of the layout should start
    + This involves allowing the distance between nodes and edges to be
    + taken into account in the total energy calculation.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#FIRED"><B>FIRED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject)"><B>fireEvent(mxEventObject)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Dispatches the given event name with this object as the event source.
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#fireEvent(com.mxgraph.util.mxEventObject, java.lang.Object)"><B>fireEvent(mxEventObject, Object)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Dispatches the given event name, passing all arguments after the given
    + name to the registered listeners for the event.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)"><B>firePropertyChange(String, Object, Object)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, byte, byte)"><B>firePropertyChange(String, byte, byte)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, char, char)"><B>firePropertyChange(String, char, char)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, short, short)"><B>firePropertyChange(String, short, short)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, int, int)"><B>firePropertyChange(String, int, int)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, long, long)"><B>firePropertyChange(String, long, long)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, float, float)"><B>firePropertyChange(String, float, float)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, double, double)"><B>firePropertyChange(String, double, double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#firePropertyChange(java.lang.String, boolean, boolean)"><B>firePropertyChange(String, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#first"><B>first</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Holds the start location of the mouse gesture.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#first"><B>first</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#first"><B>first</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Holds the start location of the mouse gesture.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#first"><B>first</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#first"><B>first</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#first"><B>first</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Holds the point where the selection has started.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#firstCharAt(java.lang.String, int, int)"><B>firstCharAt(String, int, int)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Find the first character matching the input character in the given
    + string where the character has no letter preceding it.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#fitPage"><B>fitPage</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Specifies if the outline should be zoomed to the page if the graph
    + component is in page layout mode.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#fixRanks()"><B>fixRanks()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Fixes the layer assignments to the values stored in the nodes.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#fixRoots"><B>fixRoots</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Whether or not to fix the position of the root cells.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#FLIP_EDGE"><B>FLIP_EDGE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#flipEdge(java.lang.Object)"><B>flipEdge(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Called when the main control point of the edge is double-clicked.
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#flushImageCache()"><B>flushImageCache()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#fold(java.lang.Object)"><B>fold(Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#FOLD_CELLS"><B>FOLD_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#FOLD_CURSOR"><B>FOLD_CURSOR</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Default is Cursor.HAND_CURSOR.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#foldCells(boolean)"><B>foldCells(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the collapsed state of the selection cells without recursion.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#foldCells(boolean, boolean)"><B>foldCells(boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the collapsed state of the selection cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#foldCells(boolean, boolean, java.lang.Object[])"><B>foldCells(boolean, boolean, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Invokes foldCells with checkFoldable set to false.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#foldCells(boolean, boolean, java.lang.Object[], boolean)"><B>foldCells(boolean, boolean, Object[], boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the collapsed state of the specified cells and all descendants
    + if recurse is true.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#foldingEnabled"><B>foldingEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if folding (collapse and expand via an image icon in the graph
    + should be enabled).
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#FONT_BOLD"><B>FONT_BOLD</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>FONT_BOLD
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#FONT_FRACTIONALMETRICS"><B>FONT_FRACTIONALMETRICS</B></A> - 
    +Static variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Specifies if image aspect should be preserved in drawImage.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#FONT_ITALIC"><B>FONT_ITALIC</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>FONT_ITALIC
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#FONT_SHADOW"><B>FONT_SHADOW</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>FONT_SHADOW
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#FONT_UNDERLINE"><B>FONT_UNDERLINE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>FONT_UNDERLINE
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontColor"><B>fontColor</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontColorValue"><B>fontColorValue</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontFamily"><B>fontFamily</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#fontGraphics"><B>fontGraphics</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Static Graphics used for Font Metrics.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontSize"><B>fontSize</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#fontStyle"><B>fontStyle</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#forceConstant"><B>forceConstant</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>The force constant by which the attractive forces are divided and the
    + replusive forces are multiple by the square of.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#forceConstantSquared"><B>forceConstantSquared</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Cache of <forceConstant>^2 for performance.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#formOrderedHierarchy(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], java.lang.Object)"><B>formOrderedHierarchy(mxHierarchicalLayout, Object[], Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Creates an internal ordered graph model using the vertices passed in.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#frc"><B>frc</B></A> - 
    +Static variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Shared FRC for font size calculations
    +<DT><A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#frequency"><B>frequency</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>
    +<DD>The probable frequency of the color in the image.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#fullRepaintHandler"><B>fullRepaintHandler</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Fires repaint events for full repaints.
    +</DL>
    +<HR>
    +<A NAME="_G_"><!-- --></A><H2>
    +<B>G</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#g"><B>g</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Global graphics handle to the image.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#g"><B>g</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>Stores the actual state.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#generateEdgeElement(org.w3c.dom.Document)"><B>generateEdgeElement(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>Generates an Edge Data Element from this class.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#generateElement(org.w3c.dom.Document)"><B>generateElement(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>Generates a Edge Element from this class.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#generateElement(org.w3c.dom.Document)"><B>generateElement(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>Generates a Key Element from this class.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#generateElement(org.w3c.dom.Document)"><B>generateElement(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>Generates a Key Element from this class.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#generateElement(org.w3c.dom.Document)"><B>generateElement(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>Generates a Key Element from this class.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html#generateElement(org.w3c.dom.Document)"><B>generateElement(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>
    +<DD>Generates a Key Element from this class.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#generateElement(org.w3c.dom.Document)"><B>generateElement(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>Generates a ShapeEdge Element from this class.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#generateElement(org.w3c.dom.Document)"><B>generateElement(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>Generates a Shape Node Element from this class.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#generateNodeElement(org.w3c.dom.Document)"><B>generateNodeElement(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>Generates an Node Data Element from this class.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#GEOMETRY"><B>GEOMETRY</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#geometry"><B>geometry</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Holds the geometry.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#geometry"><B>geometry</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#geometryForCellChanged(java.lang.Object, com.mxgraph.model.mxGeometry)"><B>geometryForCellChanged(Object, mxGeometry)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner callback to update the mxGeometry of the given mxCell using
    + mxCell.setGeometry and return the previous mxGeometry.
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#get(java.lang.String)"><B>get(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#get(java.lang.String, java.lang.String)"><B>get(String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#get(java.lang.String, java.lang.String[])"><B>get(String, String[])</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>Returns the value for the specified resource key.
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#get(java.lang.String, java.lang.String[], java.lang.String)"><B>get(String, String[], String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>Returns the value for the specified resource key.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getAbsoluteOffset()"><B>getAbsoluteOffset()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the absolute offset.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getAbsolutePoint(int)"><B>getAbsolutePoint(int)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the absolute point at the given index.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getAbsolutePointCount()"><B>getAbsolutePointCount()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the number of absolute points.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getAbsolutePoints()"><B>getAbsolutePoints()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the absolute points.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getAccessor(java.lang.Object, java.lang.reflect.Field, boolean)"><B>getAccessor(Object, Field, boolean)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the accessor (getter, setter) for the specified field.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getAdditionFactorsEnergy(int)"><B>getAdditionFactorsEnergy(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Hook method to adding additional energy factors into the layout.
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#getAlign()"><B>getAlign()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getAllConnectionConstraints(com.mxgraph.view.mxCellState, boolean)"><B>getAllConnectionConstraints(mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns an array of all constraints for the given terminal.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getAllEdges(java.lang.Object[])"><B>getAllEdges(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all edges connected to the given cells or their descendants.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#getAlternateBounds()"><B>getAlternateBounds()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Returns the alternate bounds.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getAlternateEdgeStyle()"><B>getAlternateEdgeStyle()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns alternateEdgeStyle.
    +<DT><A HREF="./com/mxgraph/shape/mxRectangleShape.html#getArcSize(int, int)"><B>getArcSize(int, int)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A>
    +<DD>Computes the arc size for the given dimension.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getAttribute(java.lang.String)"><B>getAttribute(String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Returns the specified attribute from the user object if it is an XML
    + node.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getAttribute(java.lang.String, java.lang.String)"><B>getAttribute(String, String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Returns the specified attribute from the user object if it is an XML
    + node.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getAttributeName(java.lang.String)"><B>getAttributeName(String)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the XML node attribute name for the given Java field name.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getAverageNodeArea()"><B>getAverageNodeArea()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#getBackground()"><B>getBackground()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#getBackgroundGray()"><B>getBackgroundGray()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Returns the suggested gray level of the background.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getBackgroundImage()"><B>getBackgroundImage()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#getBackgroundPaletteIndex()"><B>getBackgroundPaletteIndex()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Returns the palette index of the suggested background color.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html#getBackgroundRGB()"><B>getBackgroundRGB()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A>
    +<DD>Returns the RGB value of the suggested background color.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getBaseLabelCurve()"><B>getBaseLabelCurve()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Returns the curve the label curve is too be based on
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getBitDepth()"><B>getBitDepth()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the desired bit depth for a grayscale image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#getBitShift()"><B>getBitShift()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Returns the desired bit shift for a grayscale image.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getBodyMarkup(java.lang.String, boolean)"><B>getBodyMarkup(String, boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the body part of the given HTML markup.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#getBorder()"><B>getBorder()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getBorder()"><B>getBorder()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the value of <border>.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#getBorderColor()"><B>getBorderColor()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Returns the border color.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getBorderline(int)"><B>getBorderline(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>This method calculates the energy of the distance of the specified
    + node to the notional border of the graph.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getBorderLineCostFactor()"><B>getBorderLineCostFactor()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#getBoundingBox()"><B>getBoundingBox()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getBoundingBox(com.mxgraph.util.mxRectangle, double)"><B>getBoundingBox(mxRectangle, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the bounding box for the rotated rectangle.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getBoundingBox()"><B>getBoundingBox()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the bounding box.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getBoundingBox(java.lang.Object)"><B>getBoundingBox(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounds of the given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getBoundingBox(java.lang.Object, boolean)"><B>getBoundingBox(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounding box of the given cell including all connected edges
    + if includeEdge is true.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getBoundingBox(java.lang.Object, boolean, boolean)"><B>getBoundingBox(Object, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounding box of the given cell including all connected edges
    + if includeEdge is true.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getBoundingBox(java.lang.Object[])"><B>getBoundingBox(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the bounding box for an array of cells or null, if no cells are
    + specified.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getBoundingBoxFromGeometry(java.lang.Object[])"><B>getBoundingBoxFromGeometry(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounding box for the geometries of the vertices in the
    + given array of cells.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getBounds()"><B>getBounds()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the bounding box of this handler.
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#getBounds(com.mxgraph.view.mxCellState)"><B>getBounds(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#getBounds()"><B>getBounds()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Returns the unscaled, untranslated bounding box of the cells.
    +<DT><A HREF="./com/mxgraph/swing/util/mxICellOverlay.html#getBounds(com.mxgraph.view.mxCellState)"><B>getBounds(mxCellState)</B></A> - 
    +Method in interface com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getBounds()"><B>getBounds()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#getBounds()"><B>getBounds()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getBounds(java.lang.Object[])"><B>getBounds(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the bounding box for an array of cells or null, if no cells are
    + specified.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getBounds(java.lang.Object[], boolean)"><B>getBounds(Object[], boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the bounding box for an array of cells or null, if no cells are
    + specified.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#getBounds2D()"><B>getBounds2D()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getBoundsForCells(java.lang.Object[], boolean, boolean, boolean)"><B>getBoundsForCells(Object[], boolean, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounds for the given cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getBoundsForGroup(java.lang.Object, java.lang.Object[], double)"><B>getBoundsForGroup(Object, Object[], double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounds to be used for the given group and children.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#getBundleClassName()"><B>getBundleClassName()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>Returns the resource bundle base name.
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#getBundles()"><B>getBundles()</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>Returns the bundles.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#getCanvas()"><B>getCanvas()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Returns the canvas that is used for rendering the graph.
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html#getCanvas()"><B>getCanvas()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A>
    +<DD>Returns the canvas for rendering.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getCanvas()"><B>getCanvas()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getCell()"><B>getCell()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getCell(java.lang.String)"><B>getCell(String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the cell for the specified Id or null if no cell can be
    + found for the given Id.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#getCell()"><B>getCell()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#getCell()"><B>getCell()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#getCell()"><B>getCell()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#getCell()"><B>getCell()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#getCell()"><B>getCell()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#getCell()"><B>getCell()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getCell(java.awt.event.MouseEvent)"><B>getCell(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns the state at the given location.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getCell()"><B>getCell()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the cell that is represented by this state.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#getCell()"><B>getCell()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Returns the first selected cell.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getCellAt(int, int)"><B>getCellAt(int, int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getCellAt(int, int, boolean)"><B>getCellAt(int, int, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getCellAt(int, int, boolean, java.lang.Object)"><B>getCellAt(int, int, boolean, Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the bottom-most cell that intersects the given point (x, y) in
    + the cell hierarchy starting at the given parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object)"><B>getCellBounds(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounds of the given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object, boolean)"><B>getCellBounds(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object, boolean, boolean)"><B>getCellBounds(Object, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellBounds(java.lang.Object, boolean, boolean, boolean)"><B>getCellBounds(Object, boolean, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounds of the given cell including all connected edges
    + if includeEdge is true.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellContainmentArea(java.lang.Object)"><B>getCellContainmentArea(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the mxRectangle inside which a cell is to be kept.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getCellEditor()"><B>getCellEditor()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellGeometry(java.lang.Object)"><B>getCellGeometry(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the geometry for the given cell.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getCellOverlays(java.lang.Object)"><B>getCellOverlays(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the array of overlays for the given cell or null, if no overlays
    + are defined.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getCells()"><B>getCells()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the internal lookup table that is used to map from Ids to cells.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#getCells(java.lang.Object)"><B>getCells(Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#getCells(com.mxgraph.view.mxCellState)"><B>getCells(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getCells(java.awt.Rectangle)"><B>getCells(Rectangle)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the cells inside the given rectangle.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getCells(java.awt.Rectangle, java.lang.Object)"><B>getCells(Rectangle, Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the children of the given parent that are contained in the given
    + rectangle (x, y, width, height).
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#getCells()"><B>getCells()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#getCells()"><B>getCells()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Returns the selection cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellsBeyond(double, double, java.lang.Object, boolean, boolean)"><B>getCellsBeyond(double, double, Object, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the children of the given parent that are contained in the
    + halfpane from the given point (x0, y0) rightwards and downwards
    + depending on rightHalfpane and bottomHalfpane.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#getCellsForChange(com.mxgraph.util.mxUndoableEdit.mxUndoableChange)"><B>getCellsForChange(mxUndoableEdit.mxUndoableChange)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#getCellsForChanges(java.util.List)"><B>getCellsForChanges(List&lt;mxUndoableEdit.mxUndoableChange&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellsForGroup(java.lang.Object[])"><B>getCellsForGroup(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the cells with the same parent as the first cell
    + in the given array.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getCellStates(java.lang.Object[])"><B>getCellStates(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the states for the given array of cells.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#getCellsToShift(com.mxgraph.view.mxCellState)"><B>getCellsToShift(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellStyle(java.lang.Object)"><B>getCellStyle(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns an array of key, value pairs representing the cell style for the
    + given cell.
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#getCellStyle(java.lang.String, java.util.Map)"><B>getCellStyle(String, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Returns the cell style for the specified cell or the given defaultStyle
    + if no style can be found for the given stylename.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCellValidationError(java.lang.Object)"><B>getCellValidationError(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Checks all multiplicities that cannot be enforced while the graph is
    + being modified, namely, all multiplicities that require a minimum of
    + 1 edge.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#getCenterVisiblePosition()"><B>getCenterVisiblePosition()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Returns the drawing bounds of the central indexed visible glyph
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#getCenterX()"><B>getCenterX()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns the x-coordinate of the center.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#getCenterY()"><B>getCenterY()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns the y-coordinate of the center.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#getChanges()"><B>getChanges()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getChangesRepaintThreshold()"><B>getChangesRepaintThreshold()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#getChild()"><B>getChild()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getChildAt(int)"><B>getChildAt(int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getChildAt(java.lang.Object, int)"><B>getChildAt(Object, int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getChildAt(int)"><B>getChildAt(int)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the child at the specified index.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getChildAt(java.lang.Object, int)"><B>getChildAt(Object, int)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the child of the given parent at the given index.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getChildCells(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, boolean)"><B>getChildCells(mxIGraphModel, Object, boolean, boolean)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the children of the given cell that are vertices and/or edges
    + depending on the arguments.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getChildCells(java.lang.Object)"><B>getChildCells(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the visible children of the given parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getChildCells(java.lang.Object, boolean, boolean)"><B>getChildCells(Object, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the visible child vertices or edges in the given parent.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getChildCount()"><B>getChildCount()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getChildCount(java.lang.Object)"><B>getChildCount(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getChildCount()"><B>getChildCount()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the number of child cells.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getChildCount(java.lang.Object)"><B>getChildCount(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the number of children in the given cell.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getChildEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><B>getChildEdges(mxIGraphModel, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the child edges of the given parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getChildEdges(java.lang.Object)"><B>getChildEdges(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the visible child edges of the given parent.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#getChildIndex(java.lang.Object, java.lang.Object)"><B>getChildIndex(Object, Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>Returns the index of the given child inside the given parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getChildOffsetForCell(java.lang.Object)"><B>getChildOffsetForCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the offset to be used for the cells inside the given cell.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getChildren(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><B>getChildren(mxIGraphModel, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns all children of the given cell regardless of their type.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getChildVertices(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><B>getChildVertices(mxIGraphModel, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the child vertices of the given parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getChildVertices(java.lang.Object)"><B>getChildVertices(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the visible child vertices of the given parent.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getChromaticity()"><B>getChromaticity()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the white point and primary chromaticities in
    + CIE (x, y) space.
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#getClassForName(java.lang.String)"><B>getClassForName(String)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Returns a class that corresponds to the given name.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#getClip()"><B>getClip()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCloneableCells(java.lang.Object[])"><B>getCloneableCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the cells which are movable in the given array of cells.
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#getCodec(java.lang.String)"><B>getCodec(String)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Returns a codec that handles the given object, which can be an object
    + instance or an XML node.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getCollapseAction()"><B>getCollapseAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getColor(java.util.Map, java.lang.String)"><B>getColor(Map&lt;String, Object&gt;, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as a color or null if no value is
    + defined for the key.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getColor(java.util.Map, java.lang.String, java.awt.Color)"><B>getColor(Map&lt;String, Object&gt;, String, Color)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as a color or the given default
    + value if no value is defined for the key.
    +<DT><A HREF="./com/mxgraph/util/svg/NormalizingReader.html#getColumn()"><B>getColumn()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A>
    +<DD>Returns the current column in the stream.
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#getColumn()"><B>getColumn()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>Returns the current column in the stream.
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#getColumnNumber()"><B>getColumnNumber()</B></A> - 
    +Method in exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>Returns the column of the last parsed character.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getCompressedText()"><B>getCompressedText()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the text strings to be stored in compressed form with
    + this image as an array of <code>String</code>s.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#getConnecIcon()"><B>getConnecIcon()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getConnectedEdges()"><B>getConnectedEdges()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getConnectedEdges(int)"><B>getConnectedEdges(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Returns all Edges that are connected with the specified cell
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#getConnectionComponents(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[])"><B>getConnectionComponents(mxGraph, Object[], Object[])</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Returns a union find structure representing the connection components of
    + G=(E,V).
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getConnectionConstraint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><B>getConnectionConstraint(mxCellState, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns an connection constraint that describes the given connection
    + point.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getConnectionHandler()"><B>getConnectionHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getConnectionPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxConnectionConstraint)"><B>getConnectionPoint(mxCellState, mxConnectionConstraint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the connection constraint that describes the given connection point.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getConnections(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><B>getConnections(mxIGraphModel, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns all edges connected to this cell without loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getConnections(java.lang.Object)"><B>getConnections(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all visible edges connected to the given cell without loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getConnections(java.lang.Object, java.lang.Object)"><B>getConnections(Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all visible edges connected to the given cell without loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getConnections(java.lang.Object, java.lang.Object, boolean)"><B>getConnections(Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all visible edges connected to the given cell without loops.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#getConnectPreview()"><B>getConnectPreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object)"><B>getConstraint(Object, Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Returns the constraint for the given key and cell.
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#getConstraint(java.lang.Object, java.lang.Object, java.lang.Object, boolean)"><B>getConstraint(Object, Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Returns the constraint for the given key and cell.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#getContainerSize()"><B>getContainerSize()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>Hook for subclassers to return the container size.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#getContainerSize()"><B>getContainerSize()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Hook for subclassers to return the container size.
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdNode.html#getCoordinates()"><B>getCoordinates()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxConstantCostFunction.html#getCost(com.mxgraph.view.mxCellState)"><B>getCost(mxCellState)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis">mxConstantCostFunction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxDistanceCostFunction.html#getCost(com.mxgraph.view.mxCellState)"><B>getCost(mxCellState)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis">mxDistanceCostFunction</A>
    +<DD>Returns the Euclidean length of the edge defined by the absolute
    + points in the given state or 0 if no points are defined.
    +<DT><A HREF="./com/mxgraph/analysis/mxICostFunction.html#getCost(com.mxgraph.view.mxCellState)"><B>getCost(mxCellState)</B></A> - 
    +Method in interface com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>
    +<DD>Evaluates the cost of the given cell state.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#getCount()"><B>getCount()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#getCurrent()"><B>getCurrent()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>Returns the current character value.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getCurrentColor()"><B>getCurrentColor()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns the current color.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#getCurrentPoint()"><B>getCurrentPoint()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>get the current position or <code>null</code>.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getCurrentRoot()"><B>getCurrentRoot()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the current root of the displayed cell hierarchy.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getCurrentRoot()"><B>getCurrentRoot()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the current root.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#getCurrentValue()"><B>getCurrentValue()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Returns the current editing value.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#getCurrentXScale()"><B>getCurrentXScale()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#getCurrentYScale()"><B>getCurrentYScale()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getCursor(java.awt.event.MouseEvent, int)"><B>getCursor(MouseEvent, int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the cursor for the given event and handle.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#getCursor(java.awt.event.MouseEvent, int)"><B>getCursor(MouseEvent, int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#getCursor(java.awt.event.MouseEvent)"><B>getCursor(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#getCursor(java.awt.event.MouseEvent, int)"><B>getCursor(MouseEvent, int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#getCurve()"><B>getCurve()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveShape.html#getCurve()"><B>getCurve()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getCurveLength(java.lang.String)"><B>getCurveLength(String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getCurveParallel(java.lang.String, double)"><B>getCurveParallel(String, double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Returns a unit vector parallel to the curve at the specified
    + distance along the curve.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getCurvePoints(java.lang.String)"><B>getCurvePoints(String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Obtains the points that make up the curve for the specified
    + curve index.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getCurveSection(java.lang.String, double, double)"><B>getCurveSection(String, double, double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Returns a section of the curve as an array of points
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataHeight()"><B>getDataHeight()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#getDataId()"><B>getDataId()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#getDataKey()"><B>getDataKey()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataLabel()"><B>getDataLabel()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#getDataShapeEdge()"><B>getDataShapeEdge()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#getDataShapeNode()"><B>getDataShapeNode()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataStyle()"><B>getDataStyle()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#getDataValue()"><B>getDataValue()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataWidth()"><B>getDataWidth()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataX()"><B>getDataX()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#getDataY()"><B>getDataY()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#getDefaultEdgeStyle()"><B>getDefaultEdgeStyle()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Returns the default style for edges.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getDefaultEncodeParam(java.awt.image.RenderedImage)"><B>getDefaultEncodeParam(RenderedImage)</B></A> - 
    +Static method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns an instance of <code>PNGEncodeParam.Palette</code>,
    + <code>PNGEncodeParam.Gray</code>, or
    + <code>PNGEncodeParam.RGB</code> appropriate for encoding
    + the given image.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getDefaultLoopStyle()"><B>getDefaultLoopStyle()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the default edge style used for loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getDefaultOverlap()"><B>getDefaultOverlap()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Gets defaultOverlap.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getDefaultParent()"><B>getDefaultParent()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the first child of the root in the model, that is, the first or
    + default layer of the diagram.
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#getDefaultVertexStyle()"><B>getDefaultVertexStyle()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Returns the default style for vertices.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#getDefsElement()"><B>getDefsElement()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#getDelay()"><B>getDelay()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Returns the delay for the animation.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getDeletableCells(java.lang.Object[])"><B>getDeletableCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the cells which are movable in the given array of cells.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getDeleteAction()"><B>getDeleteAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#getDelta()"><B>getDelta()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Returns the history of all changes as a string.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#getDelta(com.mxgraph.view.mxCellState)"><B>getDelta(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Returns the vector between the current rendered state and the future
    + location of the state after the display will be updated.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#getDeltas()"><B>getDeltas()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getDescendants(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><B>getDescendants(mxIGraphModel, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns a all descendants of the given cell and the cell itself
    + as a collection.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#getDescription()"><B>getDescription()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Returns the description.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#getDfsCount()"><B>getDfsCount()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdNode.html#getDimentions()"><B>getDimentions()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getDirectedEdgeCount(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean)"><B>getDirectedEdgeCount(mxIGraphModel, Object, boolean)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the number of incoming or outgoing edges.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getDirectedEdgeCount(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, java.lang.Object)"><B>getDirectedEdgeCount(mxIGraphModel, Object, boolean, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the number of incoming or outgoing edges, ignoring the given
    + edge.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#getDirtyRect()"><B>getDirtyRect()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#getDirtyRect(com.mxgraph.util.mxRectangle)"><B>getDirtyRect(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#getDocument()"><B>getDocument()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>Returns a reference to the document that represents the canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#getDocument()"><B>getDocument()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Returns a reference to the document that represents the canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#getDocument()"><B>getDocument()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>Returns a reference to the document that represents the canvas.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#getDocument()"><B>getDocument()</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Returns the owner document of the codec.
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.html#getDocumentString()"><B>getDocumentString()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#getDouble(org.w3c.dom.Element, java.lang.String)"><B>getDouble(Element, String)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Returns the given attribute or 0.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#getDouble(org.w3c.dom.Element, java.lang.String, double)"><B>getDouble(Element, String, double)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Returns the given attribute or the default value.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getDouble(java.util.Map, java.lang.String)"><B>getDouble(Map&lt;String, Object&gt;, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as a double or 0 if no value is
    + defined for the key.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getDouble(java.util.Map, java.lang.String, double)"><B>getDouble(Map&lt;String, Object&gt;, String, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as a double or the given default
    + value if no value is defined for the key.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#getDropTarget(java.awt.dnd.DropTargetEvent)"><B>getDropTarget(DropTargetEvent)</B></A> - 
    +Static method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Helper method to return the component for a drop target event.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#getDropTarget(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)"><B>getDropTarget(mxGraphComponent, mxGraphTransferable)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Returns the drop target for the given transferable and location.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getDropTarget(java.lang.Object[], java.awt.Point, java.lang.Object)"><B>getDropTarget(Object[], Point, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the given cell if it is a drop target for the given cells or the
    + nearest ancestor that may be used as a drop target for the given cells.
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html#getDx(double)"><B>getDx(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#getDx(double)"><B>getDx(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>Returns the first derivation at x.
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html#getDy(double)"><B>getDy(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#getEase()"><B>getEase()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Returns the easing for the movements.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getEdgeAt(int)"><B>getEdgeAt(int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getEdgeAt(java.lang.Object, int)"><B>getEdgeAt(Object, int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getEdgeAt(int)"><B>getEdgeAt(int)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the edge at the specified index in the edge array.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getEdgeAt(java.lang.Object, int)"><B>getEdgeAt(Object, int)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the edge of cell at the given index.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getEdgeCount()"><B>getEdgeCount()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getEdgeCount(java.lang.Object)"><B>getEdgeCount(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getEdgeCount()"><B>getEdgeCount()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the number of edges in the edge array.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getEdgeCount(java.lang.Object)"><B>getEdgeCount(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the number of distinct edges connected to the given cell.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeCrossing(int)"><B>getEdgeCrossing(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>This method calculates the energy of the distance from the specified
    + edge crossing any other edges.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeCrossingAffectedEdges(int)"><B>getEdgeCrossingAffectedEdges(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Obtains the energy cost function for the specified node being moved.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeCrossingCostFactor()"><B>getEdgeCrossingCostFactor()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeData()"><B>getEdgeData()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeDataMap()"><B>getEdgeDataMap()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#getEdgedefault()"><B>getEdgedefault()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeDirected()"><B>getEdgeDirected()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeDistanceAffectedNodes(int)"><B>getEdgeDistanceAffectedNodes(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Obtains the energy cost function for the specified node being moved.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeDistanceCostFactor()"><B>getEdgeDistanceCostFactor()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeDistanceFromEdge(int)"><B>getEdgeDistanceFromEdge(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>This method calculates the energy of the distance between Cells and
    + Edges.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeDistanceFromNode(int)"><B>getEdgeDistanceFromNode(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>This method calculates the energy of the distance between Cells and
    + Edges.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeId()"><B>getEdgeId()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html#getEdgeId(java.lang.Object)"><B>getEdgeId(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getEdgeIndex(com.mxgraph.model.mxICell)"><B>getEdgeIndex(mxICell)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getEdgeIndex(com.mxgraph.model.mxICell)"><B>getEdgeIndex(mxICell)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the index of the specified edge in the edge array.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeLength(int)"><B>getEdgeLength(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>This method calculates the energy due to the length of the specified
    + edge.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeLengthAffectedEdges(int)"><B>getEdgeLengthAffectedEdges(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Obtains the energy cost function for the specified node being moved.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getEdgeLengthCostFactor()"><B>getEdgeLengthCostFactor()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#getEdgeMapper()"><B>getEdgeMapper()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.html#getEdges()"><B>getEdges()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#getEdges()"><B>getEdges()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><B>getEdges(mxIGraphModel, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns all edges connected to this cell including loops.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object, boolean, boolean, boolean)"><B>getEdges(mxIGraphModel, Object, boolean, boolean, boolean)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns all distinct edges connected to this cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getEdges(java.lang.Object)"><B>getEdges(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all visible edges connected to the given cell including loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getEdges(java.lang.Object, java.lang.Object)"><B>getEdges(Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all visible edges connected to the given cell including loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getEdges(java.lang.Object, java.lang.Object, boolean, boolean, boolean)"><B>getEdges(Object, Object, boolean, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the incoming and/or outgoing edges for the given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getEdges(java.lang.Object, java.lang.Object, boolean, boolean, boolean, boolean)"><B>getEdges(Object, Object, boolean, boolean, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the incoming and/or outgoing edges for the given cell.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getEdgesBetween(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object)"><B>getEdgesBetween(mxIGraphModel, Object, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns all edges from the given source to the given target.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getEdgesBetween(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object, boolean)"><B>getEdgesBetween(mxIGraphModel, Object, Object, boolean)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns all edges between the given source and target pair.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getEdgesBetween(java.lang.Object, java.lang.Object)"><B>getEdgesBetween(Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the edges between the given source and target.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getEdgesBetween(java.lang.Object, java.lang.Object, boolean)"><B>getEdgesBetween(Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the edges between the given source and target.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeSource()"><B>getEdgeSource()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#getEdgeSource()"><B>getEdgeSource()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeSourcePort()"><B>getEdgeSourcePort()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdEdge.html#getEdgeString()"><B>getEdgeString()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeStyle()"><B>getEdgeStyle()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>Returns if the edge has end arrow.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getEdgeStyle(com.mxgraph.view.mxCellState, java.util.List, java.lang.Object, java.lang.Object)"><B>getEdgeStyle(mxCellState, List&lt;mxPoint&gt;, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the edge style function to be used to compute the absolute
    + points for the given state, control points and terminals.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeTarget()"><B>getEdgeTarget()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#getEdgeTarget()"><B>getEdgeTarget()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#getEdgeTargetPort()"><B>getEdgeTargetPort()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getEdgeValidationError(java.lang.Object, java.lang.Object, java.lang.Object)"><B>getEdgeValidationError(Object, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the validation error message to be displayed when inserting or
    + changing an edges' connectivity.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getEditAction()"><B>getEditAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#getEditingCell()"><B>getEditingCell()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxICellEditor.html#getEditingCell()"><B>getEditingCell()</B></A> - 
    +Method in interface com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A>
    +<DD>Returns the cell that is currently being edited.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getEditingValue(java.lang.Object, java.util.EventObject)"><B>getEditingValue(Object, EventObject)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#getEditor()"><B>getEditor()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Returns the current editor or null if no editing is in progress.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#getEditorBounds(com.mxgraph.view.mxCellState, double)"><B>getEditorBounds(mxCellState, double)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Returns the bounds to be used for the editor.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#getElementById(java.lang.String)"><B>getElementById(String)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Returns the element with the given ID from the document.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#getElementById(java.lang.String, java.lang.String)"><B>getElementById(String, String)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Returns the element with the given ID from document.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#getEmbeddedImageElement(java.lang.String)"><B>getEmbeddedImageElement(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxLine.html#getEndPoint()"><B>getEndPoint()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>
    +<DD>Returns the end point of the line.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getEnterGroupAction()"><B>getEnterGroupAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#getEventSource()"><B>getEventSource()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#getException()"><B>getException()</B></A> - 
    +Method in exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>Return the embedded exception, if any.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getExitGroupAction()"><B>getExitGroupAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getExpandAction()"><B>getExpandAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getExportableCells(java.lang.Object[])"><B>getExportableCells(Object[])</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns all cells which may be exported via datatransfer.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getExtendedCellBounds(com.mxgraph.view.mxCellState)"><B>getExtendedCellBounds(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#getExtendedPathIterator()"><B>getExtendedPathIterator()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#getFastValue(double)"><B>getFastValue(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>Returns an interpolated value.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getField(java.lang.Object, java.lang.String)"><B>getField(Object, String)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the field with the specified name.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getFieldName(java.lang.String)"><B>getFieldName(String)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the Java field name for the given XML attribute name.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getFieldTemplate(java.lang.Object, java.lang.String, org.w3c.dom.Node)"><B>getFieldTemplate(Object, String, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the template instance for the given field.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getFieldValue(java.lang.Object, java.lang.String)"><B>getFieldValue(Object, String)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the value of the field with the specified name in the specified
    + object instance.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field)"><B>getFieldValueWithAccessor(Object, Field)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the value of the field using the accessor for the field if one exists.
    +<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getFillColor(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxImageShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getFillColor(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxLabelShape.html#getFillColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getFillColor(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#getFillColor()"><B>getFillColor()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Returns the fill color.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getFineTuningRadius()"><B>getFineTuningRadius()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#getFirstSelectableCell(java.lang.Object[])"><B>getFirstSelectableCell(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Returns the first selectable cell in the given array of cells.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getFloat(java.util.Map, java.lang.String)"><B>getFloat(Map&lt;String, Object&gt;, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as a float or 0 if no value is
    + defined for the key.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getFloat(java.util.Map, java.lang.String, float)"><B>getFloat(Map&lt;String, Object&gt;, String, float)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as a float or the given default
    + value if no value is defined for the key.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getFloatArray(java.util.Map, java.lang.String, float[])"><B>getFloatArray(Map&lt;String, Object&gt;, String, float[])</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as a float array or the given default
    + value if no value is defined for the key.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getFoldableCells(java.lang.Object[], boolean)"><B>getFoldableCells(Object[], boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the cells which are movable in the given array of cells.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getFoldingIcon(com.mxgraph.view.mxCellState)"><B>getFoldingIcon(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the icon used to display the collapsed state of the specified
    + cell state.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getFoldingIconBounds(com.mxgraph.view.mxCellState, javax.swing.ImageIcon)"><B>getFoldingIconBounds(mxCellState, ImageIcon)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getFont(java.util.Map)"><B>getFont(Map&lt;String, Object&gt;)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getFont(java.util.Map, double)"><B>getFont(Map&lt;String, Object&gt;, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getFontMetrics(java.awt.Font)"><B>getFontMetrics(Font)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the font metrics of the static font graphics instance
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#getForceConstant()"><B>getForceConstant()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getGamma()"><B>getGamma()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the file gamma value for the image.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getGeneralPurposeVariable(int)"><B>getGeneralPurposeVariable(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>Gets the value of temp for the specified layer
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#getGeneralPurposeVariable(int)"><B>getGeneralPurposeVariable(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>Gets the value of temp for the specified layer
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getGeneralPurposeVariable(int)"><B>getGeneralPurposeVariable(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Gets the value of temp for the specified layer
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getGeometry()"><B>getGeometry()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getGeometry(java.lang.Object)"><B>getGeometry(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#getGeometry()"><B>getGeometry()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getGeometry()"><B>getGeometry()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the object that describes the geometry.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getGeometry(java.lang.Object)"><B>getGeometry(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the geometry of the given cell.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#getGlassGradientElement()"><B>getGlassGradientElement()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getGradientBounds(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxSwimlaneShape.html#getGradientBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getGradientBounds(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape">mxSwimlaneShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#getGradientElement(java.lang.String, java.lang.String, java.lang.String)"><B>getGradientElement(String, String, String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#getGradientId(java.lang.String, java.lang.String, java.lang.String)"><B>getGradientId(String, String, String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#getGraph()"><B>getGraph()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Returns the associated graph.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getGraph()"><B>getGraph()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getGraph(java.awt.event.ActionEvent)"><B>getGraph(ActionEvent)</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getGraph()"><B>getGraph()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the enclosing graph.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#getGraph()"><B>getGraph()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#getGraph()"><B>getGraph()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#getGraph()"><B>getGraph()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getGraphBounds()"><B>getGraphBounds()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounds of the visible graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getGraphBounds()"><B>getGraphBounds()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the cached diagram bounds.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getGraphComponent()"><B>getGraphComponent()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#getGraphComponent()"><B>getGraphComponent()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#getGraphComponent()"><B>getGraphComponent()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#getGraphComponent()"><B>getGraphComponent()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getGraphComponent()"><B>getGraphComponent()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#getGraphComponent()"><B>getGraphComponent()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getGraphContainer()"><B>getGraphContainer()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getGraphControl()"><B>getGraphControl()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getGraphHandler()"><B>getGraphHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#getGraphics()"><B>getGraphics()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Returns the graphics object for this canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#getGraphics()"><B>getGraphics()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Returns the graphics instance.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#getGraphicsCanvas()"><B>getGraphicsCanvas()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#getGraphTransferHandler(java.awt.dnd.DropTargetEvent)"><B>getGraphTransferHandler(DropTargetEvent)</B></A> - 
    +Static method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Helper method to return the component for a drop target event.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getGridColor()"><B>getGridColor()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getGridSize()"><B>getGridSize()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the grid size.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getGridStyle()"><B>getGridStyle()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getGroupAction()"><B>getGroupAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.GroupAction.html#getGroupBorder(com.mxgraph.view.mxGraph)"><B>getGroupBorder(mxGraph)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.GroupAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html#getGroupBorder(com.mxgraph.view.mxGraph)"><B>getGroupBorder(mxGraph)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UpdateGroupBoundsAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#getGroupPadding()"><B>getGroupPadding()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getGuidePoints()"><B>getGuidePoints()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getHandleBorderColor(int)"><B>getHandleBorderColor(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the border color of the handle at the specified index.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getHandleCount()"><B>getHandleCount()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the number of handles in this handler.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getHandleFillColor(int)"><B>getHandleFillColor(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the color to be used to fill the handle at the specified index.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#getHandleFillColor(int)"><B>getHandleFillColor(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getHandler(java.lang.Object)"><B>getHandler(Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#getHandleSize()"><B>getHandleSize()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxImage.html#getHeight()"><B>getHeight()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#getHeight()"><B>getHeight()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns the height of the rectangle.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getHeightSquared()"><B>getHeightSquared()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getHexColorString(java.awt.Color)"><B>getHexColorString(Color)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a hex representation for the given color.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getHomeAction()"><B>getHomeAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getHorizontalPageBorder()"><B>getHorizontalPageBorder()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the horizontal border between the page and the control.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getHorizontalPageCount()"><B>getHorizontalPageCount()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#getHorizontalTextPosition(double, double, double, double, java.lang.String, java.lang.String, boolean, java.awt.FontMetrics, java.lang.String[])"><B>getHorizontalTextPosition(double, double, double, double, String, String, boolean, FontMetrics, String[])</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>This implementation returns x.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getHotspot()"><B>getHotspot()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns the hotspot.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#getHtmlData()"><B>getHtmlData()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Fetch the data in a text/html format
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getICCProfileData()"><B>getICCProfileData()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the ICC profile data to be stored with this image.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#getIconPath()"><B>getIconPath()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#getId()"><B>getId()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#getId(java.lang.Object)"><B>getId(Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Returns the ID of the specified object.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getId()"><B>getId()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getId()"><B>getId()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the Id of the cell as a string.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#getId()"><B>getId()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Returns the session ID.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#getImage()"><B>getImage()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#getImage()"><B>getImage()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxImageBundle.html#getImage(java.lang.String)"><B>getImage(String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>
    +<DD>Returns the value for the given key.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getImage(com.mxgraph.view.mxCellState)"><B>getImage(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the image URL for the given cell state.
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#getImageBasePath()"><B>getImageBasePath()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#getImageBounds(java.awt.Image, double, double, double, double, boolean)"><B>getImageBounds(Image, double, double, double, double, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxImageShape.html#getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getImageBounds(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxLabelShape.html#getImageBounds(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getImageBounds(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getImageBundles()"><B>getImageBundles()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the image bundles
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getImageBundles(java.util.List)"><B>getImageBundles(List&lt;mxImageBundle&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the image bundles
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#getImageForStyle(java.util.Map)"><B>getImageForStyle(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Gets the image path from the given style.
    +<DT><A HREF="./com/mxgraph/shape/mxImageShape.html#getImageForStyle(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getImageForStyle(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getImageFromBundles(java.lang.String)"><B>getImageFromBundles(String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Searches all bundles for the specified key and returns the value for the
    + first match or null if the key is not found.
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#getImageObserver()"><B>getImageObserver()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxImageBundle.html#getImages()"><B>getImages()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>
    +<DD>Returns the images.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#getImageSize(java.awt.Image)"><B>getImageSize(Image)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Returns the size for the given image.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#getImageSize(java.awt.Image)"><B>getImageSize(Image)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Returns the size for the given image.
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#getImageSize(java.awt.Image)"><B>getImageSize(Image)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>Returns the size for the given image.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getImportableCells(java.lang.Object[])"><B>getImportableCells(Object[])</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns all cells which may be imported via datatransfer.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#getImportCount()"><B>getImportCount()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getIncomingEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><B>getIncomingEdges(mxIGraphModel, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the incoming edges of the given cell without loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getIncomingEdges(java.lang.Object)"><B>getIncomingEdges(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all incoming visible edges connected to the given cell without
    + loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getIncomingEdges(java.lang.Object, java.lang.Object)"><B>getIncomingEdges(Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the visible incoming edges for the given cell.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getIndex(com.mxgraph.model.mxICell)"><B>getIndex(mxICell)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#getIndex()"><B>getIndex()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getIndex(com.mxgraph.model.mxICell)"><B>getIndex(mxICell)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the index of the specified child in the child array.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getIndex()"><B>getIndex()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the index of the current handle.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getIndexAt(int, int)"><B>getIndexAt(int, int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the index of the handle at the given location.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#getIndexAt(int, int)"><B>getIndexAt(int, int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#getInitialMessage()"><B>getInitialMessage()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Returns an XML string that represents the current state of the session
    + and the shared diagram.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getInitialMoveRadius()"><B>getInitialMoveRadius()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#getInitialTemp()"><B>getInitialTemp()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#getInitialValue(com.mxgraph.view.mxCellState, java.util.EventObject)"><B>getInitialValue(mxCellState, EventObject)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Gets the initial editing value for the given cell.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxKeyboardHandler.html#getInputMap(int)"><B>getInputMap(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler">mxKeyboardHandler</A>
    +<DD>Return JTree's input map.
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#getInstance()"><B>getInstance()</B></A> - 
    +Static method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKeyManager.html#getInstance()"><B>getInstance()</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A>
    +<DD>Returns the instance of mxGmlKeyManager.
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#getInstanceForName(java.lang.String)"><B>getInstanceForName(String)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Creates and returns a new instance for the given class name.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#getInt(org.w3c.dom.Element, java.lang.String, int)"><B>getInt(Element, String, int)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Returns the given attribute or the default value.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getInt(java.util.Map, java.lang.String)"><B>getInt(Map&lt;String, Object&gt;, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as an int or 0 if no value is
    + defined for the key.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getInt(java.util.Map, java.lang.String, int)"><B>getInt(Map&lt;String, Object&gt;, String, int)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as an int or the given default
    + value if no value is defined for the key.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getInterHierarchySpacing()"><B>getInterHierarchySpacing()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getInterlacing()"><B>getInterlacing()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns <code>true</code> if Adam7 interlacing will be used.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getInterRankCellSpacing()"><B>getInterRankCellSpacing()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#getInterRankCellSpacing()"><B>getInterRankCellSpacing()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getIntervals(java.lang.String)"><B>getIntervals(String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getIntraCellSpacing()"><B>getIntraCellSpacing()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#getIntraCellSpacing()"><B>getIntraCellSpacing()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getInvalidColor()"><B>getInvalidColor()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns the color used for invalid highlights.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.Node.html#getKey()"><B>getKey()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>
    +<DD>Obtain the key for this node.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyDefault()"><B>getKeyDefault()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyFor()"><B>getKeyFor()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyId()"><B>getKeyId()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKeyManager.html#getKeyMap()"><B>getKeyMap()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyName()"><B>getKeyName()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#getKeyType()"><B>getKeyType()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getLabel()"><B>getLabel()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the current label.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getLabel(java.lang.Object)"><B>getLabel(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns a string or DOM node that represents the label for the given
    + cell.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#getLabelBounds()"><B>getLabelBounds()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getLabelBounds()"><B>getLabelBounds()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the label bounds.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getLabelPaintBounds(java.lang.String, java.util.Map, boolean, com.mxgraph.util.mxPoint, com.mxgraph.util.mxRectangle, double)"><B>getLabelPaintBounds(String, Map&lt;String, Object&gt;, boolean, mxPoint, mxRectangle, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the paint bounds for the given label.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getLabelSize(java.lang.String, java.util.Map, boolean, double)"><B>getLabelSize(String, Map&lt;String, Object&gt;, boolean, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the size for the given label.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getLabelSize(java.lang.String, java.util.Map, boolean, double, double)"><B>getLabelSize(String, Map&lt;String, Object&gt;, boolean, double, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the size for the given label.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#getLayout(java.lang.Object)"><B>getLayout(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getLayoutAreaSize()"><B>getLayoutAreaSize()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the size of the area that layouts can operate in.
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html#getLength()"><B>getLength()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getLength()"><B>getLength()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the length.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#getLevelDistance()"><B>getLevelDistance()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#getLimitX()"><B>getLimitX()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/NormalizingReader.html#getLine()"><B>getLine()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A>
    +<DD>Returns the current line in the stream.
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#getLine()"><B>getLine()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>Returns the current line in the stream.
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#getLineNumber()"><B>getLineNumber()</B></A> - 
    +Method in exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>Returns the line of the last parsed character.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getLinkForCell(java.lang.Object)"><B>getLinkForCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the hyperlink to be used for the given cell.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getLowerIndexOfSegment(java.lang.String, double)"><B>getLowerIndexOfSegment(String, double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Calculates the index of the lower point on the segment
    + that contains the point <i>distance</i> along the
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getMarkedState()"><B>getMarkedState()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns the marked state.
    +<DT><A HREF="./com/mxgraph/shape/mxMarkerRegistry.html#getMarker(java.lang.String)"><B>getMarker(String)</B></A> - 
    +Static method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape">mxMarkerRegistry</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#getMarker()"><B>getMarker()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#getMarker()"><B>getMarker()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getMarkerColor(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, boolean)"><B>getMarkerColor(MouseEvent, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns the valid- or invalidColor depending on the value of isValid.
    +<DT><A HREF="./com/mxgraph/shape/mxConnectorShape.html#getMarkerVector(java.util.List, boolean, double)"><B>getMarkerVector(List&lt;mxPoint&gt;, boolean, double)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A>
    +<DD>Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points
    +<DT><A HREF="./com/mxgraph/shape/mxCurveShape.html#getMarkerVector(java.util.List, boolean, double)"><B>getMarkerVector(List&lt;mxPoint&gt;, boolean, double)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>
    +<DD>Hook to override creation of the vector that the marker is drawn along
    + since it may not be the same as the vector between any two control
    + points
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#getMaxDistanceLimit()"><B>getMaxDistanceLimit()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getMaxDistanceLimit()"><B>getMaxDistanceLimit()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getMaxHandlers()"><B>getMaxHandlers()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getMaximumGraphBounds()"><B>getMaximumGraphBounds()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#getMaxIterations()"><B>getMaxIterations()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getMaxIterations()"><B>getMaxIterations()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#getMaxValue()"><B>getMaxValue()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Returns the numeric value of max.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getMd5Hash(java.lang.String)"><B>getMd5Hash(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the Md5 hash for the given text.
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#getMessage()"><B>getMessage()</B></A> - 
    +Method in exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>Return a detail message for this exception.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getMethod(java.lang.Object, java.lang.String, java.lang.Class[])"><B>getMethod(Object, String, Class[])</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the method with the specified signature.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#getMinDistanceLimit()"><B>getMinDistanceLimit()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getMinDistanceLimit()"><B>getMinDistanceLimit()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#getMinimumEditorScale()"><B>getMinimumEditorScale()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getMinimumGraphSize()"><B>getMinimumGraphSize()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the minimum size of the diagram.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#getMinimumHeight()"><B>getMinimumHeight()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], com.mxgraph.analysis.mxICostFunction, boolean)"><B>getMinimumSpanningTree(mxGraph, Object[], mxICostFunction, boolean)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#getMinimumSpanningTree(com.mxgraph.view.mxGraph, java.lang.Object[], java.lang.Object[], com.mxgraph.analysis.mxICostFunction)"><B>getMinimumSpanningTree(mxGraph, Object[], Object[], mxICostFunction)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#getMinimumWidth()"><B>getMinimumWidth()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getMinMoveRadius()"><B>getMinMoveRadius()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getModel()"><B>getModel()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Returns the model for this layout algorithm.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#getModel()"><B>getModel()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>
    +<DD>Returns the model where the change happened.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#getModel()"><B>getModel()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getModel()"><B>getModel()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the graph model that contains the graph data.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getModificationTime()"><B>getModificationTime()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the modification time to be stored with this image.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getMovableCells(java.lang.Object[])"><B>getMovableCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the cells which are movable in the given array of cells.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#getMovePreview()"><B>getMovePreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#getMovingCells()"><B>getMovingCells()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>FIXME: Cells should be assigned outside of getPreviewStates
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getMultiplicities()"><B>getMultiplicities()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdNode.html#getName()"><B>getName()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html#getName()"><B>getName()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#getName(java.lang.Object)"><B>getName(Object)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Returns the name that identifies the codec associated
    + with the given instance..
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getName()"><B>getName()</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the name used for the nodenames and lookup of the codec when
    + classes are encoded and nodes are decoded.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#getName()"><B>getName()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html#getName()"><B>getName()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>Returns the name of the event.
    +<DT><A HREF="./com/mxgraph/view/mxStyleRegistry.html#getName(java.lang.Object)"><B>getName(Object)</B></A> - 
    +Static method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view">mxStyleRegistry</A>
    +<DD>Returns the name for the given value.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getNearestCommonAncestor(java.lang.Object, java.lang.Object)"><B>getNearestCommonAncestor(Object, Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the nearest common ancestor for the specified cells.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getNextLayerConnectedCells(int)"><B>getNextLayerConnectedCells(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>Returns the cells this cell connects to on the next layer up
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#getNextLayerConnectedCells(int)"><B>getNextLayerConnectedCells(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>Returns the cells this cell connects to on the next layer up
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getNextLayerConnectedCells(int)"><B>getNextLayerConnectedCells(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Returns the cells this cell connects to on the next layer up
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getNextPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><B>getNextPoint(mxCellState, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the nearest point in the list of absolute points or the center
    + of the opposite terminal.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#getNode(java.lang.Object, boolean)"><B>getNode(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Returns the node that represents element.
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.html#getNode(java.lang.Object)"><B>getNode(Object)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A>
    +<DD>Returns the node that represents element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeData()"><B>getNodeData()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeDataMap()"><B>getNodeDataMap()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#getNodeDistance()"><B>getNodeDistance()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getNodeDistribution(int)"><B>getNodeDistribution(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Calculates the energy cost of the specified node relative to all other
    + nodes.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getNodeDistributionCostFactor()"><B>getNodeDistributionCostFactor()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeGraph()"><B>getNodeGraph()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#getNodeId()"><B>getNodeId()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#getNodePort()"><B>getNodePort()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.html#getNodes()"><B>getNodes()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#getNodes()"><B>getNodes()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdNode.html#getNodeString()"><B>getNodeString()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getNumPrivateChunks()"><B>getNumPrivateChunks()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the number of private chunks to be written to the
    + output file.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#getObject(java.lang.String)"><B>getObject(String)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Returns the decoded object for the element with the specified ID in
    + <A HREF="./com/mxgraph/io/mxCodec.html#document"><CODE>mxCodec.document</CODE></A>.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#getObjects()"><B>getObjects()</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Returns the object lookup table.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#getOffset()"><B>getOffset()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Returns the offset.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#getOpacity()"><B>getOpacity()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#getOpacityForCell(java.lang.Object)"><B>getOpacityForCell(Object)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getOpposites(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.Object)"><B>getOpposites(mxIGraphModel, Object[], Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns all opposite cells of terminal for the given edges.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getOpposites(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.Object, boolean, boolean)"><B>getOpposites(mxIGraphModel, Object[], Object, boolean, boolean)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns all opposite vertices wrt terminal for the given edges, only
    + returning sources and/or targets as specified.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getOpposites(java.lang.Object[], java.lang.Object)"><B>getOpposites(Object[], Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all distinct visible opposite cells of the terminal on the given
    + edges.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getOpposites(java.lang.Object[], java.lang.Object, boolean, boolean)"><B>getOpposites(Object[], Object, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all distincts visible opposite cells for the specified terminal
    + on the given edges.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getOrientation()"><B>getOrientation()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#getOrientation()"><B>getOrientation()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getOrigin(java.lang.Object)"><B>getOrigin(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the absolute, accumulated origin for the children inside the
    + given parent.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getOrigin()"><B>getOrigin()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the origin for the children.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getOrigin()"><B>getOrigin()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns origin.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#getOriginForCell(java.lang.Object)"><B>getOriginForCell(Object)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Returns the top, left corner of the given cell.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getOutgoingEdges(com.mxgraph.model.mxIGraphModel, java.lang.Object)"><B>getOutgoingEdges(mxIGraphModel, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns the outgoing edges of the given cell without loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getOutgoingEdges(java.lang.Object)"><B>getOutgoingEdges(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns all outgoing visible edges connected to the given cell without
    + loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getOutgoingEdges(java.lang.Object, java.lang.Object)"><B>getOutgoingEdges(Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the visible outgoing edges for the given cell.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html#getOutputStream()"><B>getOutputStream()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png">mxPngImageEncoder</A>
    +<DD>Returns the OutputStream associated with this ImageEncoder.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getOverlap(java.lang.Object)"><B>getOverlap(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns a decimal number representing the amount of the width and height
    + of the given cell that is allowed to overlap its parent.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPageBackgroundColor()"><B>getPageBackgroundColor()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPageBorderColor()"><B>getPageBorderColor()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPageBreakColor()"><B>getPageBreakColor()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPageFormat()"><B>getPageFormat()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPageScale()"><B>getPageScale()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPageShadowColor()"><B>getPageShadowColor()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPageTranslate(double)"><B>getPageTranslate(double)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Should be called by a hook inside mxGraphView/mxGraph
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getPaintBounds(java.lang.Object[])"><B>getPaintBounds(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the bounding box of the given cells and their descendants.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#getPalette()"><B>getPalette()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Returns the current RGB palette.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getPaletteHistogram()"><B>getPaletteHistogram()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the palette histogram to be stored with this image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#getPaletteTransparency()"><B>getPaletteTransparency()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Returns the alpha values associated with each palette entry.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPanningHandler()"><B>getPanningHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getParallelEdgeSpacing()"><B>getParallelEdgeSpacing()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html#getParam()"><B>getParam()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png">mxPngImageEncoder</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html#getParent()"><B>getParent()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getParent()"><B>getParent()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getParent(java.lang.Object)"><B>getParent(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#getParent()"><B>getParent()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getParent()"><B>getParent()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the cell's parent.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getParent(java.lang.Object)"><B>getParent(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the parent of the given cell.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#getParentBorder()"><B>getParentBorder()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Returns parentBorder.
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#getParentOffset(java.lang.Object)"><B>getParentOffset(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCellPath.html#getParentPath(java.lang.String)"><B>getParentPath(String)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model">mxCellPath</A>
    +<DD>Returns the path for the parent of the cell represented by the given
    + path.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getParents(com.mxgraph.model.mxIGraphModel, java.lang.Object[])"><B>getParents(mxIGraphModel, Object[])</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#getPathHandler()"><B>getPathHandler()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Returns the path handler in use.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#getPathIterator(java.awt.geom.AffineTransform)"><B>getPathIterator(AffineTransform)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#getPathIterator(java.awt.geom.AffineTransform, double)"><B>getPathIterator(AffineTransform, double)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getPerimeterBounds()"><B>getPerimeterBounds()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the rectangle that should be used as the perimeter of the cell.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getPerimeterBounds(double)"><B>getPerimeterBounds(double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the rectangle that should be used as the perimeter of the cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getPerimeterBounds(com.mxgraph.view.mxCellState, double)"><B>getPerimeterBounds(mxCellState, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the perimeter bounds for the given terminal, edge pair.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getPerimeterFunction(com.mxgraph.view.mxCellState)"><B>getPerimeterFunction(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the perimeter function for the given state.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean)"><B>getPerimeterPoint(mxCellState, mxPoint, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getPerimeterPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint, boolean, double)"><B>getPerimeterPoint(mxCellState, mxPoint, boolean, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns a point that defines the location of the intersection point between
    + the perimeter and the line between the center of the shape and the given point.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getPhysicalDimension()"><B>getPhysicalDimension()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the physical dimension information to be stored
    + with this image.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#getPlaceholderBounds(com.mxgraph.view.mxCellState)"><B>getPlaceholderBounds(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#getPlainData()"><B>getPlainData()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Fetch the data in a text/plain format.
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#getPoint()"><B>getPoint()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Returns the coordinates as a new point.
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html#getPoint(double)"><B>getPoint(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html#getPoint()"><B>getPoint()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<DD>Returns the point.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getPoint(com.mxgraph.view.mxCellState)"><B>getPoint(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the absolute center point along the given edge.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getPoint(com.mxgraph.view.mxCellState, com.mxgraph.model.mxGeometry)"><B>getPoint(mxCellState, mxGeometry)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the absolute point on the edge for the given relative
    + geometry as a point.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPointForEvent(java.awt.event.MouseEvent)"><B>getPointForEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns an mxPoint representing the given event in the unscaled,
    + non-translated coordinate space and applies the grid.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPointForEvent(java.awt.event.MouseEvent, boolean)"><B>getPointForEvent(MouseEvent, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns an mxPoint representing the given event in the unscaled,
    + non-translated coordinate space and applies the grid.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#getPoints()"><B>getPoints()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Returns the list of control points.
    +<DT><A HREF="./com/mxgraph/util/svg/PointsParser.html#getPointsHandler()"><B>getPointsHandler()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A>
    +<DD>Returns the points handler in use.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getPortConstraints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><B>getPortConstraints(mxCellState, mxCellState, boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns an integer mask of the port constraints of the given map
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getPortConstraints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, int)"><B>getPortConstraints(mxCellState, mxCellState, boolean, int)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns an integer mask of the port constraints of the given map
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html#getPortDataMap()"><B>getPortDataMap()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getPreferredSizeForCell(java.lang.Object)"><B>getPreferredSizeForCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the preferred width and height of the given <mxCell> as an
    + <mxRectangle>.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPreferredSizeForPage()"><B>getPreferredSizeForPage()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the (unscaled) preferred size for the current page format (scaled
    + by pageScale).
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getPrettyXml(org.w3c.dom.Node)"><B>getPrettyXml(Node)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a pretty-printed XML string for the given node.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getPrettyXml(org.w3c.dom.Node, java.lang.String, java.lang.String)"><B>getPrettyXml(Node, String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a pretty-printed XML string for the given node.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getPreviewAlpha()"><B>getPreviewAlpha()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#getPreviewBounds()"><B>getPreviewBounds()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#getPreviewLocation(java.awt.event.MouseEvent, boolean)"><B>getPreviewLocation(MouseEvent, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#getPreviewState()"><B>getPreviewState()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#getPreviewStates()"><B>getPreviewStates()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>Returns the states that are affected by the move operation.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#getPrevious()"><B>getPrevious()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#getPrevious()"><B>getPrevious()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#getPrevious()"><B>getPrevious()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html#getPrevious()"><B>getPrevious()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#getPrevious()"><B>getPrevious()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#getPrevious()"><B>getPrevious()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#getPrevious()"><B>getPrevious()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#getPrevious()"><B>getPrevious()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#getPrevious()"><B>getPrevious()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>Returns the previous root.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#getPreviousIndex()"><B>getPreviousIndex()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getPreviousLayerConnectedCells(int)"><B>getPreviousLayerConnectedCells(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>Returns the cells this cell connects to on the next layer down
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#getPreviousLayerConnectedCells(int)"><B>getPreviousLayerConnectedCells(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>Returns the cells this cell connects to on the next layer down
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getPreviousLayerConnectedCells(int)"><B>getPreviousLayerConnectedCells(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Returns the cells this cell connects to on the next layer down
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkData(int)"><B>getPrivateChunkData(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the data associated of the private chunk at a given
    + index, as an array of <code>byte</code>s.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getPrivateChunkType(int)"><B>getPrivateChunkType(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the type of the private chunk at a given index, as a
    + 4-character <code>String</code>.
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html#getProperties()"><B>getProperties()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#getRadius()"><B>getRadius()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getRadiusScaleFactor()"><B>getRadiusScaleFactor()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getRadiusSquared()"><B>getRadiusSquared()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#getRankValue()"><B>getRankValue()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Returns the integer value of the layer that this node resides in
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#getRectangle()"><B>getRectangle()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns the bounds as a new rectangle.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#getRelativeFromAbsPoint(com.mxgraph.util.mxPoint, java.lang.String)"><B>getRelativeFromAbsPoint(mxPoint, String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Calculates the position of an absolute in terms relative
    + to this curve.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getRelativePoint(com.mxgraph.view.mxCellState, double, double)"><B>getRelativePoint(mxCellState, double, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Gets the relative point that describes the given, absolute label
    + position for the given edge state.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getRelevantEdges()"><B>getRelevantEdges()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getRelevantEdges(int)"><B>getRelevantEdges(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Returns all Edges that are not connected to the specified cell
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getRemovedCellsForChanges(java.util.List)"><B>getRemovedCellsForChanges(List&lt;mxUndoableEdit.mxUndoableChange&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the cells that have been removed from the model.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getRemoveFromParentAction()"><B>getRemoveFromParentAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#getRendererPane()"><B>getRendererPane()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#getResource(java.lang.String)"><B>getResource(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#getResource(java.lang.String)"><B>getResource(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>Returns the value for <code>key</code> by searching the resource
    + bundles in inverse order or <code>null</code> if no value can be found
    + for <code>key</code>.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#getRicherData(java.awt.datatransfer.DataFlavor)"><B>getRicherData(DataFlavor)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#getRicherFlavors()"><B>getRicherFlavors()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Some subclasses will have flavors that are more descriptive than HTML or
    + plain text.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getRoot()"><B>getRoot()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html#getRoot()"><B>getRoot()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getRoot()"><B>getRoot()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the root of the model or the topmost parent of the given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#getRoot()"><B>getRoot()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>Returns the root.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getRotatedPoint(com.mxgraph.util.mxPoint, double, double)"><B>getRotatedPoint(mxPoint, double, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Rotates the given point by the given cos and sin.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getRotatedPoint(com.mxgraph.util.mxPoint, double, double, com.mxgraph.util.mxPoint)"><B>getRotatedPoint(mxPoint, double, double, mxPoint)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Rotates the given point by the given cos and sin.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#getRotationEnabled()"><B>getRotationEnabled()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getRoutingCenterX(com.mxgraph.view.mxCellState)"><B>getRoutingCenterX(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the x-coordinate of the center point for automatic routing.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getRoutingCenterY(com.mxgraph.view.mxCellState)"><B>getRoutingCenterY(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the y-coordinate of the center point for automatic routing.
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#getScale()"><B>getScale()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas.html#getScale()"><B>getScale()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>
    +<DD>Returns the scale.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#getScale()"><B>getScale()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getScale()"><B>getScale()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the current scale.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getScaledLabelBounds(double, double, com.mxgraph.util.mxRectangle, double, double, java.util.Map, double)"><B>getScaledLabelBounds(double, double, mxRectangle, double, double, Map&lt;String, Object&gt;, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the bounds for a label for the given location and size, taking
    + into account the alignment and spacing in the specified style, as well as
    + the width and height of the rectangle that contains the label.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getScaledPreferredSizeForGraph()"><B>getScaledPreferredSizeForGraph()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the scaled preferred size for the current graph.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getSegments()"><B>getSegments()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the length of the segments.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getSelectAllAction()"><B>getSelectAllAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getSelectChildAction()"><B>getSelectChildAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getSelectEdgesAction()"><B>getSelectEdgesAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getSelectionCell()"><B>getSelectionCell()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getSelectionCells()"><B>getSelectionCells()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getSelectionCellsForChanges(java.util.List)"><B>getSelectionCellsForChanges(List&lt;mxUndoableEdit.mxUndoableChange&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the cells to be selected for the given list of changes.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getSelectionCellsHandler()"><B>getSelectionCellsHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getSelectionColor()"><B>getSelectionColor()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the color used to draw the selection border.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#getSelectionColor()"><B>getSelectionColor()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#getSelectionColor()"><B>getSelectionColor()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getSelectionCount()"><B>getSelectionCount()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getSelectionModel()"><B>getSelectionModel()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getSelectionStroke()"><B>getSelectionStroke()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the stroke used to draw the selection border.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#getSelectionStroke()"><B>getSelectionStroke()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#getSelectionStroke()"><B>getSelectionStroke()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getSelectNextAction()"><B>getSelectNextAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getSelectNoneAction()"><B>getSelectNoneAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getSelectParentAction()"><B>getSelectParentAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getSelectPreviousAction()"><B>getSelectPreviousAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getSelectVerticesAction()"><B>getSelectVerticesAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#getShape(java.util.Map)"><B>getShape(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#getShape()"><B>getShape()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Returns the Shape object initialized during the last parsing.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#getShape()"><B>getShape()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>Returns the Shape object initialized during the last parsing.
    +<DT><A HREF="./com/mxgraph/util/svg/ShapeProducer.html#getShape()"><B>getShape()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A>
    +<DD>Returns the Shape object initialized during the last parsing.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#getSharedInstance()"><B>getSharedInstance()</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#getShortestPath(com.mxgraph.view.mxGraph, java.lang.Object, java.lang.Object, com.mxgraph.analysis.mxICostFunction, int, boolean)"><B>getShortestPath(mxGraph, Object, Object, mxICostFunction, int, boolean)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Returns the shortest path between two cells or their descendants
    + represented as an array of edges in order of traversal.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getSignificantBits()"><B>getSignificantBits()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the number of significant bits for each band of the image.
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html#getSize()"><B>getSize()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getSizeForHtml(java.lang.String, java.util.Map, double, double)"><B>getSizeForHtml(String, Map&lt;String, Object&gt;, double, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns an mxRectangle with the size (width and height in pixels) of the
    + given HTML markup.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getSizeForString(java.lang.String, java.awt.Font, double)"><B>getSizeForString(String, Font, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns an <mxRectangle> with the size (width and height in pixels) of
    + the given string.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getSource()"><B>getSource()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getSource()"><B>getSource()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Returns the source terminal.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#getSource()"><B>getSource()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#getSourceActions(javax.swing.JComponent)"><B>getSourceActions(JComponent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdEdge.html#getSourceName()"><B>getSourceName()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#getSourcePoint()"><B>getSourcePoint()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Returns the source point.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#getSourceState()"><B>getSourceState()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html#getSplineX()"><B>getSplineX()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html#getSplineY()"><B>getSplineY()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxImage.html#getSrc()"><B>getSrc()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getSRGBIntent()"><B>getSRGBIntent()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the sRGB rendering intent to be stored with this image.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#getStartPoint()"><B>getStartPoint()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getStartSize(java.lang.Object)"><B>getStartSize(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the start size of the given swimlane, that is, the width or
    + height of the part that contains the title, depending on the
    + horizontal style.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#getState()"><B>getState()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>Returns the initial state of the diagram.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#getState()"><B>getState()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Returns the initial state of the diagram.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getState()"><B>getState()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns the cell state that is associated with this handler.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getState(java.awt.event.MouseEvent)"><B>getState(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Uses getCell, getMarkedState and intersects to return the state for
    + the given event.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getState(java.lang.Object)"><B>getState(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the state for the given cell or null if no state is defined for
    + the cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getState(java.lang.Object, boolean)"><B>getState(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the cell state for the given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getStates()"><B>getStates()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the dictionary that maps from cells to states.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getStateToMark(com.mxgraph.view.mxCellState)"><B>getStateToMark(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns the state to be marked for the given state under the mouse.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilRegistry.html#getStencil(java.lang.String)"><B>getStencil(String)</B></A> - 
    +Static method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape">mxStencilRegistry</A>
    +<DD>Returns the stencil for the given name.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#getSteps()"><B>getSteps()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Returns the number of steps for the animation.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#getString(org.w3c.dom.Element, java.lang.String, java.lang.String)"><B>getString(Element, String, String)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Returns the given attribute or the default value.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getString(java.util.Map, java.lang.String)"><B>getString(Map&lt;String, Object&gt;, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as a string or null if no value
    + is defined for the key.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getString(java.util.Map, java.lang.String, java.lang.String)"><B>getString(Map&lt;String, Object&gt;, String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the value for key in dictionary as a string or the given default
    + value if no value is defined for the key.
    +<DT><A HREF="./com/mxgraph/io/mxStylesheetCodec.html#getStringValue(java.util.Map.Entry)"><B>getStringValue(Map.Entry&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A>
    +<DD>Returns the string for encoding the given value.
    +<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getStrokeColor(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxImageShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getStrokeColor(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxLabelShape.html#getStrokeColor(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>getStrokeColor(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#getStyle()"><B>getStyle()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getStyle()"><B>getStyle()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getStyle(java.lang.Object)"><B>getStyle(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#getStyle()"><B>getStyle()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getStyle()"><B>getStyle()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the string that describes the style.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getStyle(java.lang.Object)"><B>getStyle(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the style of the given cell.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getStyle()"><B>getStyle()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the cell style as a map of key, value pairs.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#getStyleMap(java.lang.String, java.lang.String)"><B>getStyleMap(String, String)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>Create a style map from a String with style definitions.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#getStylename(java.lang.String)"><B>getStylename(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Returns the stylename in a style of the form stylename[;key=value] or an
    + empty string if the given style does not contain a stylename.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getStylename(java.lang.String)"><B>getStylename(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.getStylename(String)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#getStylenames(java.lang.String)"><B>getStylenames(String)</B></A> - 
    +Static method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>Returns the stylenames in a style of the form stylename[;key=value] or an
    + empty array if the given style does not contain any stylenames.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#getStylenames(java.lang.String)"><B>getStylenames(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Returns the stylenames in a style of the form stylename[;key=value] or an
    + empty array if the given style does not contain any stylenames.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getStylenames(java.lang.String)"><B>getStylenames(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.getStylenames(String)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#getStyles()"><B>getStyles()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Returns all styles as map of name, hashtable pairs.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getStylesheet()"><B>getStylesheet()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the stylesheet that provides the style.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#getStyleString(java.util.Map, java.lang.String)"><B>getStyleString(Map&lt;String, Object&gt;, String)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>Returns the string that represents the content of a given style map.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getTarget()"><B>getTarget()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getTarget()"><B>getTarget()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Returns the target terminal.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getTargetForCell(java.lang.Object)"><B>getTargetForCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the hyperlink to be used for the given cell.
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdEdge.html#getTargetName()"><B>getTargetName()</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#getTargetPoint()"><B>getTargetPoint()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Returns the target point.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#getTemplate()"><B>getTemplate()</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns the template object associated with this codec.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getTerminal(boolean)"><B>getTerminal(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getTerminal(java.lang.Object, boolean)"><B>getTerminal(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#getTerminal(java.lang.Object, boolean)"><B>getTerminal(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>Gets the source or target terminal field for the given
    + edge even if the edge is not stored as an incoming or
    + outgoing edge in the respective terminal.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#getTerminal()"><B>getTerminal()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getTerminal(boolean)"><B>getTerminal(boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the source or target terminal.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getTerminal(java.lang.Object, boolean)"><B>getTerminal(Object, boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the source or target terminal of the given edge depending on the
    + value of the boolean parameter.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getTerminalDistance()"><B>getTerminalDistance()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the terminal distance.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getTerminalForPort(java.lang.Object, boolean)"><B>getTerminalForPort(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the terminal to be used for a given port.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#getTerminalPoint(boolean)"><B>getTerminalPoint(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Returns the point representing the source or target point of this edge.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getTerminalPort(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><B>getTerminalPort(mxCellState, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns a cell state that represents the source or target terminal or
    + port for the given edge.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#getText()"><B>getText()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#getText()"><B>getText()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns the text strings to be stored in uncompressed form with this
    + image as an array of <code>String</code>s.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#getTextShape(java.util.Map, boolean)"><B>getTextShape(Map&lt;String, Object&gt;, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#getThreshold()"><B>getThreshold()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getToBackAction()"><B>getToBackAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getToFrontAction()"><B>getToFrontAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getTolerance()"><B>getTolerance()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getToolTipForCell(java.lang.Object)"><B>getToolTipForCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the tooltip to be used for the given cell.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#getToolTipText(java.awt.event.MouseEvent)"><B>getToolTipText(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Hook for subclassers to return tooltip texts for certain points on the
    + handle.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html#getToolTipText(java.awt.event.MouseEvent)"><B>getToolTipText(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A>
    +<DD>Hook for subclassers to return tooltip texts for certain points on the
    + handle.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#getToolTipText(java.awt.event.MouseEvent)"><B>getToolTipText(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Redirects the tooltip handling of the JComponent to the graph
    + component, which in turn may use getHandleToolTipText in this class to
    + find a tooltip associated with a handle.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getToolTipText(java.awt.event.MouseEvent)"><B>getToolTipText(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getTopmostCells(com.mxgraph.model.mxIGraphModel, java.lang.Object[])"><B>getTopmostCells(mxIGraphModel, Object[])</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Function: getTopmostCells
    + 
    + Returns the topmost cells of the hierarchy in an array that contains no
    + desceandants for each <mxCell> that it contains.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#getTransferData(java.awt.datatransfer.DataFlavor)"><B>getTransferData(DataFlavor)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Returns an object which represents the data to be transferred.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#getTransferDataFlavors()"><B>getTransferDataFlavors()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#getTransferImageBackground()"><B>getTransferImageBackground()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#getTranslate()"><B>getTranslate()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Returns the current translate.
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas.html#getTranslate()"><B>getTranslate()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>
    +<DD>Returns the current translation.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#getTranslate()"><B>getTranslate()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#getTranslate()"><B>getTranslate()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Returns the translate.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getTranslate()"><B>getTranslate()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the current translation.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getTranslateForRoot(java.lang.Object)"><B>getTranslateForRoot(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the translation to be used if the given cell is the root cell as
    + an <mxPoint>.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#getTransparentGray()"><B>getTransparentGray()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Returns the gray value to be used to denote transparency.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html#getTransparentRGB()"><B>getTransparentRGB()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A>
    +<DD>Returns the RGB value to be used to denote transparency.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getTriesPerCell()"><B>getTriesPerCell()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getTripleBuffer()"><B>getTripleBuffer()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#getUnchangedEnergyRoundTermination()"><B>getUnchangedEnergyRoundTermination()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getUngroupAction()"><B>getUngroupAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getUpdateGroupBoundsAction()"><B>getUpdateGroupBoundsAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getUpdateLevel()"><B>getUpdateLevel()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.Node.html#getUserObject()"><B>getUserObject()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getValidColor()"><B>getValidColor()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns the color used for valid highlights.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#getValidState()"><B>getValidState()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns the valid state.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#getValue()"><B>getValue()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#getValue(java.lang.Object)"><B>getValue(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#getValue()"><B>getValue()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#getValue()"><B>getValue()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns the user object of the cell.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#getValue(java.lang.Object)"><B>getValue(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns the user object of the given cell.
    +<DT><A HREF="./com/mxgraph/reader/mxDomOutputParser.html#getValue(org.w3c.dom.Element, java.lang.String, java.lang.String)"><B>getValue(Element, String, String)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader">mxDomOutputParser</A>
    +<DD>Returns the given attribute value or an empty string.
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html#getValue(org.xml.sax.Attributes, java.lang.String, java.lang.String)"><B>getValue(Attributes, String, String)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A>
    +<DD>Returns the given attribute value or an empty string.
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#getValue(double)"><B>getValue(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>Returns an interpolated value.
    +<DT><A HREF="./com/mxgraph/view/mxStyleRegistry.html#getValue(java.lang.String)"><B>getValue(String)</B></A> - 
    +Static method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view">mxStyleRegistry</A>
    +<DD>Returns the value associated with the given name.
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#getVertexBounds(java.lang.Object)"><B>getVertexBounds(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Returns an <mxRectangle> that defines the bounds of the given cell
    + or the bounding box if <useBoundingBox> is true.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#getVertexMapper()"><B>getVertexMapper()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#getVerticalAlign()"><B>getVerticalAlign()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getVerticalPageBorder()"><B>getVerticalPageBorder()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns the vertical border between the page and the control.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getVerticalPageCount()"><B>getVerticalPageCount()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#getVerticalTextPosition(double, double, double, double, java.lang.String, java.lang.String, boolean, java.awt.FontMetrics, java.lang.String[])"><B>getVerticalTextPosition(double, double, double, double, String, String, boolean, FontMetrics, String[])</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getView()"><B>getView()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the enclosing graph view.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#getView()"><B>getView()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the view that contains the cell states.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#getView()"><B>getView()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>Returns the graph view where the change happened.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getVisibleTerminal(boolean)"><B>getVisibleTerminal(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the visible source or target terminal cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getVisibleTerminal(java.lang.Object, boolean)"><B>getVisibleTerminal(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the nearest ancestor terminal that is visible.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#getVisibleTerminalState(boolean)"><B>getVisibleTerminalState(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the visible source or target terminal state.
    +<DT><A HREF="./com/mxgraph/util/mxImage.html#getWidth()"><B>getWidth()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#getWidth()"><B>getWidth()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns the width of the rectangle.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#getWindingRule()"><B>getWindingRule()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Returns the current winding rule.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#getWindingRule()"><B>getWindingRule()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>Returns the current winding rule.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#getWindingRule()"><B>getWindingRule()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#getWindingRule()"><B>getWindingRule()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ShapeProducer.html#getWindingRule()"><B>getWindingRule()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A>
    +<DD>Returns the current winding rule.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#getWordWrapWidth(com.mxgraph.view.mxCellState)"><B>getWordWrapWidth(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the width for wrapping the label of the given state at
    + scale 1.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#getX(int)"><B>getX(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>Gets the value of x on the specified layer
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getX()"><B>getX()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#getX()"><B>getX()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Returns the x-coordinate of the point.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#getX0()"><B>getX0()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#getXml(org.w3c.dom.Node)"><B>getXml(Node)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxXmlUtils.getXml(Node)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/util/mxXmlUtils.html#getXml(org.w3c.dom.Node)"><B>getXml(Node)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util">mxXmlUtils</A>
    +<DD>Returns a string that represents the given node.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#getY()"><B>getY()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#getY()"><B>getY()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Returns the x-coordinate of the point.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#getY0()"><B>getY0()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getZoomActualAction()"><B>getZoomActualAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getZoomFactor()"><B>getZoomFactor()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getZoomInAction()"><B>getZoomInAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#getZoomOutAction()"><B>getZoomOutAction()</B></A> - 
    +Static method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#getZoomPolicy()"><B>getZoomPolicy()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#glyph"><B>glyph</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>
    +<DD>The glyph being drawn
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#glyphGeometry"><B>glyphGeometry</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>
    +<DD>A line parallel to the curve segment at which the element is to be
    + drawn
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#glyphShape"><B>glyphShape</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>
    +<DD>The cached shape of the glyph
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#GRAPH"><B>GRAPH</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#graph"><B>graph</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Holds the enclosing graph.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#graph"><B>graph</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#graph"><B>graph</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Reference to the enclosing graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#graph"><B>graph</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Reference to the enclosing graph.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#graph"><B>graph</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>Defines the type of the source or target terminal.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#graph"><B>graph</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>Defines the type of the source or target terminal.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#graph"><B>graph</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Defines the type of the source or target terminal.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#graphBounds"><B>graphBounds</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Caches the current bounds of the graph.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Reference to the enclosing graph component.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Holds the enclosing graph component.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Reference to the enclosing graph component.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>Reference to the enclosing graph component.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>Reference to the enclosing graph component.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Reference to the enclosing graph container.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Reference to the enclosing graph component.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Reference to the enclosing graph instance.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#graphComponent"><B>graphComponent</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#graphControl"><B>graphControl</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#graphHandler"><B>graphHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#graphics"><B>graphics</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Reference to the graphics instance for painting.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#GRAPHML"><B>GRAPHML</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#graphModelChanged(com.mxgraph.model.mxIGraphModel, java.util.List)"><B>graphModelChanged(mxIGraphModel, List&lt;mxUndoableEdit.mxUndoableChange&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Called when the graph model changes.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#graphModelChangeHandler"><B>graphModelChangeHandler</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Fires repaint events for model changes.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#green"><B>green</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>
    +<DD>The green color value of the entry.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_CROSS"><B>GRID_STYLE_CROSS</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_DASHED"><B>GRID_STYLE_DASHED</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_DOT"><B>GRID_STYLE_DOT</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#GRID_STYLE_LINE"><B>GRID_STYLE_LINE</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#gridColor"><B>gridColor</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#gridEnabled"><B>gridEnabled</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if the grid is enabled.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#gridEnabledEvent"><B>gridEnabledEvent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Workaround for alt-key-state not correct in mouseReleased.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#gridEnabledEvent"><B>gridEnabledEvent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>Workaround for alt-key-state not correct in mouseReleased.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#gridSize"><B>gridSize</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the grid size.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#gridStyle"><B>gridStyle</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#gridVisible"><B>gridVisible</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if the grid is visible.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#GROUP_CELLS"><B>GROUP_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#groupCells()"><B>groupCells()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Groups the selection cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#groupCells(java.lang.Object)"><B>groupCells(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Groups the selection cells and adds them to the given group.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#groupCells(java.lang.Object, double)"><B>groupCells(Object, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Groups the selection cells and adds them to the given group.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#groupCells(java.lang.Object, double, java.lang.Object[])"><B>groupCells(Object, double, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds the cells into the given group.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#groupPadding"><B>groupPadding</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Padding added to resized parents
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#grow(double)"><B>grow(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Grows the rectangle by the given amount, that is, this method subtracts
    + the given amount from the x- and y-coordinates and adds twice the amount
    + to the width and height.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#guidePoints"><B>guidePoints</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>The points this curve is drawn through.
    +</DL>
    +<HR>
    +<A NAME="_H_"><!-- --></A><H2>
    +<B>H</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#h0"><B>h0</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Holds the height of the shape.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#handle"><B>handle</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#HANDLE_BORDERCOLOR"><B>HANDLE_BORDERCOLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the handle border color.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#HANDLE_FILLCOLOR"><B>HANDLE_FILLCOLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the handle fill color.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#HANDLE_SIZE"><B>HANDLE_SIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the handle size.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#handleEnabled"><B>handleEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Specifies if a handle should be used for creating new connections.
    +<DT><A HREF="./com/mxgraph/reader/mxDomOutputParser.html#handlers"><B>handlers</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader">mxDomOutputParser</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html#handlers"><B>handlers</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#handlers"><B>handlers</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Maps from cells to handlers in the order of the selection cells.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#handles"><B>handles</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Holds the rectangles that define the handles.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#handleSize"><B>handleSize</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Specifies the size of the handle to be used for creating new
    + connections.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#handlesVisible"><B>handlesVisible</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Specifies if the handles should be painted.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#hasData(com.mxgraph.io.graphml.mxGraphMlNode)"><B>hasData(mxGraphMlNode)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>Checks if the node has data elements inside.
    +<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>hasGradient(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxImageShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>hasGradient(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxLabelShape.html#hasGradient(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>hasGradient(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#hashCode"><B>hashCode</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Assigns a unique hashcode for each node.
    +<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html#hasShadow(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>hasShadow(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#hasValidState()"><B>hasValidState()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns true if validState is not null.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#HEIGHT"><B>HEIGHT</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#height"><B>height</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>The height of this cell
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#height"><B>height</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxImage.html#height"><B>height</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>Holds the image width and height.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#height"><B>height</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Holds the width and the height.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#heightSquared"><B>heightSquared</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>The height of the node squared, only used if approxNodeDimensions
    + is set to true.
    +<DT><A HREF="./com/mxgraph/view/mxPerimeter.html#HexagonPerimeter"><B>HexagonPerimeter</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view">mxPerimeter</A>
    +<DD>Describes a hexagon perimeter.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#hexString(java.awt.Color)"><B>hexString(Color)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#hideSelectionHandler"><B>hideSelectionHandler</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>Specifies if the selection cells handler should be hidden while the
    + preview is visible.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#highlight(com.mxgraph.view.mxCellState, java.awt.Color)"><B>highlight(mxCellState, Color)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#highlight(com.mxgraph.view.mxCellState, java.awt.Color, boolean)"><B>highlight(mxCellState, Color, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#history"><B>history</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>List that contains the steps of the command history.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#hitClip(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>hitClip(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#hitFoldingIcon(java.lang.Object, int, int)"><B>hitFoldingIcon(Object, int, int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#hitSwimlaneContent(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState, int, int)"><B>hitSwimlaneContent(mxGraphComponent, mxCellState, int, int)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>Returns true if the given point is inside the content area of the given
    + swimlane.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#hitZoomHandle(int, int)"><B>hitZoomHandle(int, int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#home()"><B>home()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Uses the root of the model as the root of the displayed cell hierarchy
    + and selects the previous root.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#horizontal"><B>horizontal</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Specifies the orientation of the layout.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#horizontal"><B>horizontal</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>Boolean indicating the direction in which the space is partitioned.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#horizontal"><B>horizontal</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Specifies the orientation of the layout.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#horizontal"><B>horizontal</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#horizontalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double, com.mxgraph.util.mxRectangle)"><B>horizontalLayout(mxCompactTreeLayout.TreeNode, double, double, mxRectangle)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#horizontalPageCount"><B>horizontalPageCount</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies the number of pages in the horizontal direction.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#hotspot"><B>hotspot</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Specifies the portion of the width and height that should trigger
    + a highlight.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#hotspotEnabled"><B>hotspotEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Specifies if the hotspot is enabled.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#hozBendProportion"><B>hozBendProportion</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#htmlEntities(java.lang.String)"><B>htmlEntities(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Converts the ampersand, quote, prime, less-than and greater-than
    + characters to their corresponding HTML entities in the given string.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#htmlLabels"><B>htmlLabels</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Specifies if labels should be rendered as HTML markup.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#htmlLabels"><B>htmlLabels</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isHtmlLabel.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#HYPEREDGE"><B>HYPEREDGE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_I_"><!-- --></A><H2>
    +<B>I</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#iconPath"><B>iconPath</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#ID"><B>ID</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#id"><B>id</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Holds the Id.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#id"><B>id</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Holds the session ID.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#idrefs"><B>idrefs</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Array containing the variable names that should be turned into or
    + converted from references.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#image(double, double, double, double, java.lang.String, boolean, boolean, boolean)"><B>image(double, double, double, double, String, boolean, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#image(double, double, double, double, java.lang.String, boolean, boolean, boolean)"><B>image(double, double, double, double, String, boolean, boolean, boolean)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Draws the given image.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#image"><B>image</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#image"><B>image</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#IMAGE_SCALING"><B>IMAGE_SCALING</B></A> - 
    +Static variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Specifies the image scaling quality.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#IMAGE_SCALING"><B>IMAGE_SCALING</B></A> - 
    +Static variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Specifies the image scaling quality.
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#imageBasePath"><B>imageBasePath</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Defines the base path for images with relative paths.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#imageBundles"><B>imageBundles</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Holds the list of bundles.
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#imageCache"><B>imageCache</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Cache for images.
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#imageIcon"><B>imageIcon</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#imageObserver"><B>imageObserver</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#imagePreview"><B>imagePreview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if an image should be used for preview.
    +<DT><A HREF="./com/mxgraph/util/mxImageBundle.html#images"><B>images</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>
    +<DD>Maps from keys to images.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#importCells(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable, double, double)"><B>importCells(mxGraphComponent, mxGraphTransferable, double, double)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Gets a drop target using getDropTarget and imports the cells using
    + mxGraph.splitEdge or mxGraphComponent.importCells depending on the
    + drop target and the return values of mxGraph.isSplitEnabled and
    + mxGraph.isSplitTarget.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#importCells(java.lang.Object[], double, double, java.lang.Object, java.awt.Point)"><B>importCells(Object[], double, double, Object, Point)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Clones and inserts the given cells into the graph using the move method
    + and returns the inserted cells.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#importCount"><B>importCount</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Counter for the last imported cell array.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#importData(javax.swing.JComponent, java.awt.datatransfer.Transferable)"><B>importData(JComponent, Transferable)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Checks if the mxGraphTransferable data flavour is supported and calls
    + importGraphTransferable if possible.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#importEnabled"><B>importEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#importGraphTransferable(com.mxgraph.swing.mxGraphComponent, com.mxgraph.swing.util.mxGraphTransferable)"><B>importGraphTransferable(mxGraphComponent, mxGraphTransferable)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Returns true if the cells have been imported using importCells.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#inactiveTimeMillis()"><B>inactiveTimeMillis()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Returns the number of milliseconds this session has been inactive.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#index"><B>index</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#index"><B>index</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Holds the index of the handle that was clicked.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#indexOf(java.lang.Object[], java.lang.Object)"><B>indexOf(Object[], Object)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the index of the given object in the given array of -1 if the
    + object is not contained in the array.
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#indexOfNextAdd"><B>indexOfNextAdd</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Index of the element to be added next.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#indexOfStylename(java.lang.String, java.lang.String)"><B>indexOfStylename(String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Returns the index of the given stylename in the given style.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#indexOfStylename(java.lang.String, java.lang.String)"><B>indexOfStylename(String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.indexOfStylename(String, String)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#indices"><B>indices</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Maps from vertices to indices.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#init()"><B>init()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Initializes the session buffer and returns a string that represents the
    + state of the session.
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html#init(double[], double[])"><B>init(double[], double[])</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxDomOutputParser.html#initHandlers()"><B>initHandlers()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader">mxDomOutputParser</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html#initHandlers()"><B>initHandlers()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#initialAngle"><B>initialAngle</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#initialCell"><B>initialCell</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#initialImportCount"><B>initialImportCount</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Sets the value for the initialImportCount.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKeyManager.html#initialise(org.w3c.dom.Document)"><B>initialise(Document)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A>
    +<DD>Load the map with the key elements in the document.<br/>
    + The keys are wrapped for instances of mxGmlKey.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#initialMoveRadius"><B>initialMoveRadius</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The initial value of <code>moveRadius</code>.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#initialPlaceholder"><B>initialPlaceholder</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#initialRank()"><B>initialRank()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Basic determination of minimum layer ranking by working from from sources
    + or sinks and working through each node in the relevant edge direction.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#initialTemp"><B>initialTemp</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Start value of temperature.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#initialX"><B>initialX</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The minimum x position node placement starts at
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#inlineRoutePatterns"><B>inlineRoutePatterns</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>Overriden routing patterns for orthogonal connections
    + where the vertices have
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#insert(com.mxgraph.analysis.mxFibonacciHeap.Node, double)"><B>insert(mxFibonacciHeap.Node, double)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Inserts a new data element into the heap.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#insert(com.mxgraph.model.mxICell)"><B>insert(mxICell)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#insert(com.mxgraph.model.mxICell, int)"><B>insert(mxICell, int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell)"><B>insert(mxICell)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Appends the specified child into the child array and updates the parent
    + reference of the child.
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#insert(com.mxgraph.model.mxICell, int)"><B>insert(mxICell, int)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Inserts the specified child into the child array at the specified index
    + and updates the parent reference of the child.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#INSERT"><B>INSERT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#insertCell(com.mxgraph.util.mxRectangle)"><B>insertCell(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#insertComponent(com.mxgraph.view.mxCellState, java.awt.Component)"><B>insertComponent(mxCellState, Component)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#insertEdge(com.mxgraph.model.mxICell, boolean)"><B>insertEdge(mxICell, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#insertEdge(com.mxgraph.model.mxICell, boolean)"><B>insertEdge(mxICell, boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Inserts the specified edge into the edge array and returns the edge.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#insertEdge(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)"><B>insertEdge(Object, String, Object, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Creates and adds a new edge with an empty style.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#insertEdge(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.String)"><B>insertEdge(Object, String, Object, Object, Object, String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds a new edge into the given parent using value as the user object and
    + the given source and target as the terminals of the new edge.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#insertIntoGraph(com.mxgraph.model.mxICell)"><B>insertIntoGraph(mxICell)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Inserts the given cell into its parent and terminal cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#insertVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double)"><B>insertVertex(Object, String, Object, double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Creates and adds a new vertex with an empty style.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#insertVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String)"><B>insertVertex(Object, String, Object, double, double, double, double, String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds a new vertex into the given parent using value as the user object
    + and the given coordinates as the geometry of the new vertex.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#insertVertex(java.lang.Object, java.lang.String, java.lang.Object, double, double, double, double, java.lang.String, boolean)"><B>insertVertex(Object, String, Object, double, double, double, double, String, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Adds a new vertex into the given parent using value as the user object
    + and the given coordinates as the geometry of the new vertex.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#installDoubleClickHandler()"><B>installDoubleClickHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Adds handling of edit and stop-edit events after all other handlers have
    + been installed.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#installDragGestureHandler()"><B>installDragGestureHandler()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#installDropTargetHandler()"><B>installDropTargetHandler()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#installFocusHandler()"><B>installFocusHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>installs a handler to set the focus to the container.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxKeyboardHandler.html#installKeyboardActions(com.mxgraph.swing.mxGraphComponent)"><B>installKeyboardActions(mxGraphComponent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler">mxKeyboardHandler</A>
    +<DD>Invoked as part from the boilerplate install block.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#installKeyHandler()"><B>installKeyHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Handles escape keystrokes.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#installResizeHandler()"><B>installResizeHandler()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Applies the zoom policy if the size of the component changes.
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#instance"><B>instance</B></A> - 
    +Static variable in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Holds the shared instance of this class.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_ABSOLUTE"><B>INTENT_ABSOLUTE</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Constant for use with the sRGB chunk.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_PERCEPTUAL"><B>INTENT_PERCEPTUAL</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Constant for use with the sRGB chunk.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_RELATIVE"><B>INTENT_RELATIVE</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Constant for use with the sRGB chunk.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#INTENT_SATURATION"><B>INTENT_SATURATION</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Constant for use with the sRGB chunk.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#interHierarchySpacing"><B>interHierarchySpacing</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>The spacing buffer between unconnected hierarchies
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#interRankCellSpacing"><B>interRankCellSpacing</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>The spacing buffer added between cell on adjacent layers
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#interRankCellSpacing"><B>interRankCellSpacing</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The minimum distance between cells on adjacent ranks
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#intersection(double, double, double, double, double, double, double, double)"><B>intersection(double, double, double, double, double, double, double, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the intersection of two lines as an mxPoint.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#intersectLine(double, double, double, double)"><B>intersectLine(double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns the point at which the specified point intersects the perimeter 
    + of this rectangle or null if there is no intersection.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#intersectRectPerimeterPoint(java.lang.String, com.mxgraph.util.mxRectangle, int)"><B>intersectRectPerimeterPoint(String, mxRectangle, int)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Returns the point at which this curve segment intersects the boundary 
    + of the given rectangle, if it does so.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle)"><B>intersectRectPerimeterSeg(String, mxRectangle)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Utility method to determine within which segment the specified rectangle
    + intersects the specified curve
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle, int)"><B>intersectRectPerimeterSeg(String, mxRectangle, int)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Utility method to determine within which segment the specified rectangle
    + intersects the specified curve.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#intersects(com.mxgraph.view.mxCellState, java.awt.event.MouseEvent)"><B>intersects(mxCellState, MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns true if the given mouse event intersects the given state.
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#intersects(com.mxgraph.swing.mxGraphComponent, java.awt.Rectangle, com.mxgraph.view.mxCellState)"><B>intersects(mxGraphComponent, Rectangle, mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#intersects(double, double, double, double)"><B>intersects(double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#intersects(java.awt.geom.Rectangle2D)"><B>intersects(Rectangle2D)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#intersectsHotspot(com.mxgraph.view.mxCellState, int, int, double)"><B>intersectsHotspot(mxCellState, int, int, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#intersectsHotspot(com.mxgraph.view.mxCellState, int, int, double, int, int)"><B>intersectsHotspot(mxCellState, int, int, double, int, int)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns true if the given coordinate pair intersects the hotspot of the
    + given state.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#intersectsRect(java.awt.Rectangle)"><B>intersectsRect(Rectangle)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Returns whether or not the rectangle passed in hits any part of this
    + curve.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#intersectsRect(java.awt.Rectangle)"><B>intersectsRect(Rectangle)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Returns whether or not the rectangle passed in hits any part of this
    + curve.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#intersectsRectPerimeter(java.lang.String, com.mxgraph.util.mxRectangle)"><B>intersectsRectPerimeter(String, mxRectangle)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Returns the point at which this curve intersects the boundary of 
    + the given rectangle, if it does so.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#intersectsRectPerimeterDist(java.lang.String, com.mxgraph.util.mxRectangle)"><B>intersectsRectPerimeterDist(String, mxRectangle)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Returns the distance from the start of the curve at which this 
    + curve intersects the boundary of the given rectangle, if it does 
    + so.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#intervals"><B>intervals</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>An array of arrays of intervals.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#intraCellSpacing"><B>intraCellSpacing</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>The spacing buffer added between cells on the same layer
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#intraCellSpacing"><B>intraCellSpacing</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The minimum buffer between cells on the same rank
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#invalid"><B>invalid</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Specifies if the state is invalid.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#INVALID_GLYPH_BOUNDS"><B>INVALID_GLYPH_BOUNDS</B></A> - 
    +Static variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Indicates that a glyph does not have valid drawing bounds, usually 
    + because it is not visible
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#INVALID_POSITION"><B>INVALID_POSITION</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Indicates that an invalid position on a curve was requested
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#invalidate()"><B>invalidate()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Invalidates all cell states.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#invalidate(java.lang.Object)"><B>invalidate(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Invalidates the state of the given cell, all its descendants and
    + connected edges.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#invalidColor"><B>invalidColor</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Specifies the valid- and invalidColor for the marker.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#invert()"><B>invert()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>Inverts the direction of this internal edge(s)
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#invert"><B>invert</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Specifies if edge directions should be inverted.
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.mxIEventListener.html#invoke(java.lang.Object, com.mxgraph.util.mxEventObject)"><B>invoke(Object, mxEventObject)</B></A> - 
    +Method in interface com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A>
    +<DD>Called when the graph model has changed.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#invokesStopCellEditing"><B>invokesStopCellEditing</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>If true, when editing is to be stopped by way of selection changing, data
    + in diagram changing or other means stopCellEditing is invoked, and
    + changes are saved.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#IS_MAC"><B>IS_MAC</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>True if the machine is a Mac.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#isActive()"><B>isActive()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isActive()"><B>isActive()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#isActive()"><B>isActive()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#isActive()"><B>isActive()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#isActive()"><B>isActive()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>Whether or not panning is currently active
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#isAddEnabled()"><B>isAddEnabled()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isAllowDanglingEdges()"><B>isAllowDanglingEdges()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns allowDanglingEdges
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isAllowLoops()"><B>isAllowLoops()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns allowLoops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isAllowNegativeCoordinates()"><B>isAllowNegativeCoordinates()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns isAllowNegativeCoordinates.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isAllowOverlapParent(java.lang.Object)"><B>isAllowOverlapParent(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is allowed to be placed outside of the
    + parents area.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#isAncestor(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode)"><B>isAncestor(mxGraphHierarchyNode)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#isAncestor(java.lang.Object, java.lang.Object)"><B>isAncestor(Object, Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#isAncestor(java.lang.Object, java.lang.Object)"><B>isAncestor(Object, Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns true if the given parent is an ancestor of the given child.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#isAntiAlias()"><B>isAntiAlias()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isAntiAlias()"><B>isAntiAlias()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#isAntiAlias()"><B>isAntiAlias()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isApproxNodeDimensions()"><B>isApproxNodeDimensions()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#isAutoAntiAlias()"><B>isAutoAntiAlias()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Returns true if automatic anti aliasing is enabled.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isAutoExtend()"><B>isAutoExtend()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isAutoOrigin()"><B>isAutoOrigin()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns autoOrigin.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isAutoScroll()"><B>isAutoScroll()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isAutoSizeCell(java.lang.Object)"><B>isAutoSizeCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the size of the given cell should automatically be
    + updated after a change of the label.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isAutoSizeCells()"><B>isAutoSizeCells()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the size of the given cell should automatically be
    + updated after a change of the label.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#isBackgroundSet()"><B>isBackgroundSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Returns true if a 'bKGD' chunk will be output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isBackgroundSet()"><B>isBackgroundSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'bKGD' chunk will be output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#isBackgroundSet()"><B>isBackgroundSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Returns true if a 'bKGD' chunk will be output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html#isBackgroundSet()"><B>isBackgroundSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A>
    +<DD>Returns true if a 'bKGD' chunk will be output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#isBitDepthSet()"><B>isBitDepthSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Returns true if the bit depth has been set.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#isBitShiftSet()"><B>isBitShiftSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Returns true if the bit shift has been set.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#isBubbling()"><B>isBubbling()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#isCellBendable()"><B>isCellBendable()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellBendable(java.lang.Object)"><B>isCellBendable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is bendable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellCloneable(java.lang.Object)"><B>isCellCloneable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns the constant true.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellCollapsed(java.lang.Object)"><B>isCellCollapsed(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is collapsed in this graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellConnectable(java.lang.Object)"><B>isCellConnectable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is connectable in this graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellDeletable(java.lang.Object)"><B>isCellDeletable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is movable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellDisconnectable(java.lang.Object, java.lang.Object, boolean)"><B>isCellDisconnectable(Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is disconnectable from the source or
    + target terminal.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#isCellDisplayable(java.lang.Object)"><B>isCellDisplayable(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Returns true if the given cell is not the current root or the root in
    + the model.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellEditable(java.lang.Object)"><B>isCellEditable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is movable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellFoldable(java.lang.Object, boolean)"><B>isCellFoldable(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is expandable.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#isCellHorizontal(java.lang.Object)"><B>isCellHorizontal(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Returns true if the given cell is horizontal.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#isCellIgnored(java.lang.Object)"><B>isCellIgnored(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellLocked(java.lang.Object)"><B>isCellLocked(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell may not be moved, sized, bended,
    + disconnected, edited or selected.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellMovable(java.lang.Object)"><B>isCellMovable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is movable.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#isCellOpaque(java.lang.Object)"><B>isCellOpaque(Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellResizable(java.lang.Object)"><B>isCellResizable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is resizable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellsBendable()"><B>isCellsBendable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns cellsBendable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellsCloneable()"><B>isCellsCloneable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns cellsCloneable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellsDeletable()"><B>isCellsDeletable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns cellsDeletable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellsDisconnectable()"><B>isCellsDisconnectable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns cellsDisconnectable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellsEditable()"><B>isCellsEditable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if editing is allowed in this graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellSelectable(java.lang.Object)"><B>isCellSelectable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is selectable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellSelected(java.lang.Object)"><B>isCellSelected(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#isCellShiftable(java.lang.Object)"><B>isCellShiftable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellsLocked()"><B>isCellsLocked()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns cellsLocked, the default return value for isCellLocked.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellsMovable()"><B>isCellsMovable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns cellsMovable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellsResizable()"><B>isCellsResizable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is resizable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellsSelectable()"><B>isCellsSelectable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns cellsSelectable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCellVisible(java.lang.Object)"><B>isCellVisible(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is visible in this graph.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isCenterPage()"><B>isCenterPage()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isCenterPreview()"><B>isCenterPreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isCenterZoom()"><B>isCenterZoom()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isChromaticitySet()"><B>isChromaticitySet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'cHRM' chunk will be output.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#isCloned()"><B>isCloned()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#isCloneEnabled()"><B>isCloneEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isCloneEnabled()"><B>isCloneEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isCloneEvent(java.awt.event.MouseEvent)"><B>isCloneEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCloneInvalidEdges()"><B>isCloneInvalidEdges()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns cloneInvalidEdges.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#isClonePreview()"><B>isClonePreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#isCollapsed()"><B>isCollapsed()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#isCollapsed(java.lang.Object)"><B>isCollapsed(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#isCollapsed()"><B>isCollapsed()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#isCollapsed()"><B>isCollapsed()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns true if the cell is collapsed.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#isCollapsed(java.lang.Object)"><B>isCollapsed(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns true if the given cell is collapsed.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isCollapseToPreferredSize()"><B>isCollapseToPreferredSize()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns collapseToPreferredSize.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isCompressedTextSet()"><B>isCompressedTextSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'zTXT' chunk will be output.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#isConnectable()"><B>isConnectable()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#isConnectable(java.lang.Object)"><B>isConnectable(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#isConnectable()"><B>isConnectable()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns true if the cell is connectable.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#isConnectable(java.lang.Object)"><B>isConnectable(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns true if the given cell is connectable.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isConnectable()"><B>isConnectable()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isConnectableEdges()"><B>isConnectableEdges()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns connectableEdges.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isConnecting()"><B>isConnecting()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Returns true if the source terminal has been clicked and a new
    + connection is currently being previewed.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isConstrainChild(java.lang.Object)"><B>isConstrainChild(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell should be kept inside the bounds of its
    + parent according to the rules defined by getOverlap and
    + isAllowOverlapParent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isConstrainChildren()"><B>isConstrainChildren()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns constrainChildren.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isConstrainedEvent(java.awt.event.MouseEvent)"><B>isConstrainedEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Note: This is not used during drag and drop operations due to limitations
    + of the underlying API.
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html#isConsumed()"><B>isConsumed()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>Returns true if the event has been consumed.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#isContextPreview()"><B>isContextPreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#isCreateIds()"><B>isCreateIds()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns true if the model automatically creates Ids and resolves Id
    + collisions.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isCreateTarget()"><B>isCreateTarget()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#isCropping()"><B>isCropping()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Specifies the optional clipping rectangle.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#isDataFlavorSupported(java.awt.datatransfer.DataFlavor)"><B>isDataFlavorSupported(DataFlavor)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Returns whether or not the specified data flavor is supported for this
    + object.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#isDeterministic()"><B>isDeterministic()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isDeterministic()"><B>isDeterministic()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isDisableEdgeStyle()"><B>isDisableEdgeStyle()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#isDisableEdgeStyle()"><B>isDisableEdgeStyle()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#isDisableEdgeStyle()"><B>isDisableEdgeStyle()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isDisableEdgeStyle()"><B>isDisableEdgeStyle()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isDisconnectOnMove()"><B>isDisconnectOnMove()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns disconnectOnMove
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#isDone()"><B>isDone()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isDragEnabled()"><B>isDragEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#isDrawLabels()"><B>isDrawLabels()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#isDrawLabels()"><B>isDrawLabels()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isDropEnabled()"><B>isDropEnabled()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the graph allows drop into other cells.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#isEdge()"><B>isEdge()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#isEdge()"><B>isEdge()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#isEdge()"><B>isEdge()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#isEdge()"><B>isEdge()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#isEdge(java.lang.Object)"><B>isEdge(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#isEdge()"><B>isEdge()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns true if the cell is an edge.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#isEdge(java.lang.Object)"><B>isEdge(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns true if the given cell is an edge.
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#isEdgeIgnored(java.lang.Object)"><B>isEdgeIgnored(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Returns true if the given edge has no source or target terminal.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isEdgeLabelsMovable()"><B>isEdgeLabelsMovable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns edgeLabelsMovable.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#isEdgeRouting()"><B>isEdgeRouting()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isEdgeValid(java.lang.Object, java.lang.Object, java.lang.Object)"><B>isEdgeValid(Object, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Checks if the return value of getEdgeValidationError for the given
    + arguments is null.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isEditEvent(java.awt.event.MouseEvent)"><B>isEditEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isEditing()"><B>isEditing()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#isEmbedded()"><B>isEmbedded()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#isEmpty()"><B>isEmpty()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Returns true if the queue is empty.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#isEmpty()"><B>isEmpty()</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>Checks if the graph has child nodes or edges.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#isEmpty()"><B>isEmpty()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#isEmpty()"><B>isEmpty()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Returns true if the this edit contains no changes.
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#isEmpty()"><B>isEmpty()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#isEmpty()"><B>isEmpty()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Returns true if no cells are selected.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns true if the marker is enabled, that is, if it processes events
    + in process.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Returns the enabled state.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the graph is <enabled>.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#isEnabled()"><B>isEnabled()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#isEncodeDefaults()"><B>isEncodeDefaults()</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Returns if default values of member variables should be encoded.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isEnterStopsCellEditing()"><B>isEnterStopsCellEditing()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isEscapeEnabled()"><B>isEscapeEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isEventsEnabled()"><B>isEventsEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#isEventsEnabled()"><B>isEventsEnabled()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCellCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)"><B>isExcluded(Object, String, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A>
    +<DD>Excludes user objects that are XML nodes.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#isExcluded(java.lang.Object, java.lang.String, java.lang.Object, boolean)"><B>isExcluded(Object, String, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns true if the given attribute is to be ignored by the codec.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isExportEnabled()"><B>isExportEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isExtendParent(java.lang.Object)"><B>isExtendParent(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the parent of the given cell should be extended if the
    + child has been resized so that it overlaps the parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isExtendParents()"><B>isExtendParents()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns extendParents.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#isExtendParents()"><B>isExtendParents()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isExtendParentsOnAdd()"><B>isExtendParentsOnAdd()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns extendParentsOnAdd.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#isExtractHtmlBody()"><B>isExtractHtmlBody()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Returns replaceHtmlLinefeeds
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isFineTuning()"><B>isFineTuning()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#isFineTuning()"><B>isFineTuning()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isFineTuning"><B>isFineTuning</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Whether or not fine tuning is on.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isFineTuning()"><B>isFineTuning()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#isFitPage()"><B>isFitPage()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isFixRoots()"><B>isFixRoots()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#isFlipEvent(java.awt.event.MouseEvent)"><B>isFlipEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html#isFlipEvent(java.awt.event.MouseEvent)"><B>isFlipEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isFoldingEnabled()"><B>isFoldingEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isForceMarqueeEvent(java.awt.event.MouseEvent)"><B>isForceMarqueeEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Note: This is not used during drag and drop operations due to limitations
    + of the underlying API.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isForceTripleBuffered()"><B>isForceTripleBuffered()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Hook for dynamic triple buffering condition.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isGammaSet()"><B>isGammaSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'gAMA' chunk will be output.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isGridEnabled()"><B>isGridEnabled()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the grid is enabled.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isGridEnabledEvent(java.awt.event.MouseEvent)"><B>isGridEnabledEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isGridVisible()"><B>isGridVisible()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#isHandleEnabled(int)"><B>isHandleEnabled(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns true if the handle at the specified index is enabled.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isHandleEnabled()"><B>isHandleEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#isHandlesVisible()"><B>isHandlesVisible()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns true if the handles should be painted.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#isHandleVisible(int)"><B>isHandleVisible(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns true if the handle at the specified index is visible.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#isHandleVisible(int)"><B>isHandleVisible(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Hides the middle handle if the edge is not bendable.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#isHideLabel(com.mxgraph.view.mxCellState)"><B>isHideLabel(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#isHideSelectionHandler()"><B>isHideSelectionHandler()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isHighlighting()"><B>isHighlighting()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Returns true if no connectIcon is specified and handleEnabled is false.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#isHorizontal()"><B>isHorizontal()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#isHorizontal()"><B>isHorizontal()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#isHorizontal()"><B>isHorizontal()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#isHotspotEnabled()"><B>isHotspotEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns true if hotspot is used in intersects.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#isHtmlFlavor(java.awt.datatransfer.DataFlavor)"><B>isHtmlFlavor(DataFlavor)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Returns whether or not the specified data flavor is an HTML flavor that
    + is supported.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isHtmlLabel(java.lang.Object)"><B>isHtmlLabel(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the label must be rendered as HTML markup.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#isHtmlLabels()"><B>isHtmlLabels()</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Returns the htmlLabels switch.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isHtmlLabels()"><B>isHtmlLabels()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#isHtmlSupported()"><B>isHtmlSupported()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Whether the HTML flavors are offered.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isICCProfileDataSet()"><B>isICCProfileDataSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'iCCP' chunk will be output.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#isIgnoredEvent(java.awt.event.MouseEvent)"><B>isIgnoredEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns true if the given event should be ignored.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#isIgnoredEvent(java.awt.event.MouseEvent)"><B>isIgnoredEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>No flip event is ignored.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#isImageFlavor(java.awt.datatransfer.DataFlavor)"><B>isImageFlavor(DataFlavor)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isImagePreview()"><B>isImagePreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#isImageResource(java.lang.String)"><B>isImageResource(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Returns true if the given string ends with .png, .jpg or .gif.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#isImageSupported()"><B>isImageSupported()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isImportEnabled()"><B>isImportEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns importEnabled.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#isInvalid()"><B>isInvalid()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns true if the state is invalid.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#isInvert()"><B>isInvert()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isInvokesStopCellEditing()"><B>isInvokesStopCellEditing()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isKeepEdgesInBackground()"><B>isKeepEdgesInBackground()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isKeepEdgesInForeground()"><B>isKeepEdgesInForeground()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isKeepOnTop()"><B>isKeepOnTop()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isKeepSelectionVisibleOnZoom()"><B>isKeepSelectionVisibleOnZoom()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#isLabel(int)"><B>isLabel(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns true if the given index is the index of the last handle.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html#isLabel(int)"><B>isLabel(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A>
    +<DD>Returns true if the given index is the index of the last handle.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isLabelClipped(java.lang.Object)"><B>isLabelClipped(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the overflow portion of labels should be hidden.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#isLabelMovable()"><B>isLabelMovable()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Returns true if the label is movable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isLabelMovable(java.lang.Object)"><B>isLabelMovable(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given edges's label is moveable.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#isLabelReversed()"><B>isLabelReversed()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Whether or not the label curve starts from the end target
    +  and traces to the start of the branch
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isLabelsClipped()"><B>isLabelsClipped()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns labelsClipped.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isLabelsVisible()"><B>isLabelsVisible()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isLayoutFromSinks()"><B>isLayoutFromSinks()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isLivePreview()"><B>isLivePreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#isLocalDrag()"><B>isLocalDrag()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Returns true if the DnD operation started from this handler.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isLoop(com.mxgraph.view.mxCellState)"><B>isLoop(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell state is a loop.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#isMaintainEdgeParent()"><B>isMaintainEdgeParent()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Returns true if the model automatically update parents of edges so that
    + the edge is contained in the nearest-common-ancestor of its terminals.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isMarkerEnabled()"><B>isMarkerEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isModificationTimeSet()"><B>isModificationTimeSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'tIME' chunk will be output.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#isMoveable"><B>isMoveable</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Array of booleans representing the movable states of the vertices.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#isMoveCircle()"><B>isMoveCircle()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isMoveEnabled()"><B>isMoveEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isMoveParent()"><B>isMoveParent()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Returns the moveParent flag.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#isMoveTree()"><B>isMoveTree()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isMultigraph()"><B>isMultigraph()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns multigraph.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#isNode(java.lang.Object, java.lang.String)"><B>isNode(Object, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns true if the user object is an XML node with the specified type
    + and and the optional attribute has the specified value or is not
    + specified.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#isNode(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)"><B>isNode(Object, String, String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns true if the given value is an XML node with the node name and if
    + the optional attribute has the specified value.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeBorderLine"><B>isOptimizeBorderLine</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Whether or not nodes will contribute an energy cost as they approach
    + the bound of the graph.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeBorderLine()"><B>isOptimizeBorderLine()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeCrossing"><B>isOptimizeEdgeCrossing</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Whether or not edges crosses will be calculated as an energy cost
    + function.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeCrossing()"><B>isOptimizeEdgeCrossing()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeDistance"><B>isOptimizeEdgeDistance</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Whether or not the distance between edge and nodes will be calculated
    + as an energy cost function.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeDistance()"><B>isOptimizeEdgeDistance()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeLength"><B>isOptimizeEdgeLength</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Whether or not edge lengths will be calculated as an energy cost
    + function.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeEdgeLength()"><B>isOptimizeEdgeLength()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeNodeDistribution"><B>isOptimizeNodeDistribution</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Whether or not node distribute will contribute an energy cost where
    + nodes are close together.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isOptimizeNodeDistribution()"><B>isOptimizeNodeDistribution()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isOrthogonal(com.mxgraph.view.mxCellState)"><B>isOrthogonal(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if perimeter points should be computed such that the
    + resulting edge has only horizontal or vertical segments.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isPageBreaksVisible()"><B>isPageBreaksVisible()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isPageVisible()"><B>isPageVisible()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isPaletteHistogramSet()"><B>isPaletteHistogramSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'hIST' chunk will be output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#isPaletteSet()"><B>isPaletteSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Returns true if a 'PLTE' chunk will be output.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isPanning()"><B>isPanning()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isPanningEvent(java.awt.event.MouseEvent)"><B>isPanningEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Note: This is not used during drag and drop operations due to limitations
    + of the underlying API.
    +<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html#isPerimeter()"><B>isPerimeter()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<DD>Returns perimeter.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isPhysicalDimensionSet()"><B>isPhysicalDimensionSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'pHYS' chunk will be output.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#isPlaceholderPreview()"><B>isPlaceholderPreview()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#isPlainFlavor(java.awt.datatransfer.DataFlavor)"><B>isPlainFlavor(DataFlavor)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Returns whether or not the specified data flavor is an plain flavor that
    + is supported.
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#isPlainSupported()"><B>isPlainSupported()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Whether the plain text flavors are offered.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isPort(java.lang.Object)"><B>isPort(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is a "port", that is, when connecting to
    + it, the cell returned by getTerminalForPort should be used as the
    + terminal and the port should be referenced by the ID in either the
    + mxConstants.STYLE_SOURCE_PORT or the or the
    + mxConstants.STYLE_TARGET_PORT.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isPreferPageSize()"><B>isPreferPageSize()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#isPrimitiveValue(java.lang.Object)"><B>isPrimitiveValue(Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns true if the given object is a primitive value.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#isRedone()"><B>isRedone()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxChildChangeCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)"><B>isReference(Object, String, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)"><B>isReference(Object, String, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns true if the given fieldname is to be treated as a textual
    + reference (ID).
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#isRelative()"><B>isRelative()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Returns true of the geometry is relative.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isRemoveCellsFromParent()"><B>isRemoveCellsFromParent()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxHtmlTextShape.html#isReplaceHtmlLinefeeds()"><B>isReplaceHtmlLinefeeds()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A>
    +<DD>Returns replaceHtmlLinefeeds
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#isReplaceHtmlLinefeeds()"><B>isReplaceHtmlLinefeeds()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Returns replaceHtmlLinefeeds
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#isResetEdges()"><B>isResetEdges()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#isResetEdges()"><B>isResetEdges()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#isResetEdges()"><B>isResetEdges()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isResetEdges()"><B>isResetEdges()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isResetEdgesOnConnect()"><B>isResetEdgesOnConnect()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns resetEdgesOnConnect.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isResetEdgesOnMove()"><B>isResetEdgesOnMove()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns resetEdgesOnMove.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isResetEdgesOnResize()"><B>isResetEdgesOnResize()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns resetEdgesOnResize.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isResetViewOnRootChange()"><B>isResetViewOnRootChange()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns resetViewOnRootChange.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#isResizeEnabled()"><B>isResizeEnabled()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#isResizeParent()"><B>isResizeParent()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Returns the resizeParent flag.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#isResizeParent()"><B>isResizeParent()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#isReversed"><B>isReversed</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>Whether or not the direction of this edge has been reversed
    + internally to create a DAG for the hierarchical layout
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#isReversed()"><B>isReversed()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#isRicherFlavor(java.awt.datatransfer.DataFlavor)"><B>isRicherFlavor(DataFlavor)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxConnectorShape.html#isRounded(java.util.Map)"><B>isRounded(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#isRubberbandTrigger(java.awt.event.MouseEvent)"><B>isRubberbandTrigger(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Returns true if the given event should start the rubberband selection.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isSelect()"><B>isSelect()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#isSelected(java.lang.Object)"><B>isSelected(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Returns true if the given cell is selected.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isSelectEnabled()"><B>isSelectEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isSelectionEmpty()"><B>isSelectionEmpty()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#isShiftDownwards()"><B>isShiftDownwards()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#isShiftEnterSubmitsText()"><B>isShiftEnterSubmitsText()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Returns shiftEnterSubmitsText
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#isShiftRightwards()"><B>isShiftRightwards()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isSignificant(double, double)"><B>isSignificant(double, double)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns true if the absolute value of one of the given parameters is
    + greater than the tolerance.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#isSignificant()"><B>isSignificant()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isSignificantBitsSet()"><B>isSignificantBitsSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if an 'sBIT' chunk will be output.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#isSignificantRemoteChanges()"><B>isSignificantRemoteChanges()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#isSingleSelection()"><B>isSingleSelection()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#isSource()"><B>isSource()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#isSource(int)"><B>isSource(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Returns true if the current index is 0.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isSplitEnabled()"><B>isSplitEnabled()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Affects the return values of isValidDropTarget to allow for edges as
    + drop targets.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isSplitTarget(java.lang.Object, java.lang.Object[])"><B>isSplitTarget(Object, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if split is enabled and the given edge may be splitted into
    + two edges with the given cell as a new terminal between the two.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isSRGBIntentSet()"><B>isSRGBIntentSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if an 'sRGB' chunk will be output.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#isStartEvent(java.awt.event.MouseEvent)"><B>isStartEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#isStateHandled(com.mxgraph.view.mxCellState)"><B>isStateHandled(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#isStringFlavor(java.awt.datatransfer.DataFlavor)"><B>isStringFlavor(DataFlavor)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>Returns whether or not the specified data flavor is a String flavor that
    + is supported.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isSuggestedPaletteSet()"><B>isSuggestedPaletteSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'sPLT' chunk will be output.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isSwimlane(java.lang.Object)"><B>isSwimlane(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is a swimlane.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#isSwimlaneContentEnabled()"><B>isSwimlaneContentEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns true if the content area of swimlanes is non-transparent to
    + events.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#isSwimlaneIgnored(java.lang.Object)"><B>isSwimlaneIgnored(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Returns true if the given swimlane should be ignored.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isSwimlaneNesting()"><B>isSwimlaneNesting()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns swimlaneNesting.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isSwimlaneSelectionEnabled()"><B>isSwimlaneSelectionEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#isTarget(int)"><B>isTarget(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Returns true if the current index is the last index.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isTerminalPointMovable(java.lang.Object, boolean)"><B>isTerminalPointMovable(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Function: isTerminalPointMovable
    +
    + Returns true if the given terminal point is movable.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isTextAntiAlias()"><B>isTextAntiAlias()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isTextSet()"><B>isTextSet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'tEXt' chunk will be output.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isToggleEvent(java.awt.event.MouseEvent)"><B>isToggleEvent(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#isTransferImageEnabled()"><B>isTransferImageEnabled()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#isTransparencySet()"><B>isTransparencySet()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Returns true if a 'tRNS' chunk will be output.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#isTripleBuffered()"><B>isTripleBuffered()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#isTripleBuffered()"><B>isTripleBuffered()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#isTrue(java.util.Map, java.lang.String)"><B>isTrue(Map&lt;String, Object&gt;, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns true if the dictionary contains true for the given key or false
    + if no value is defined for the key.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#isTrue(java.util.Map, java.lang.String, boolean)"><B>isTrue(Map&lt;String, Object&gt;, String, boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns true if the dictionary contains true for the given key or the
    + given default value if no value is defined for the key.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#isUndone()"><B>isUndone()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#isUnlimited()"><B>isUnlimited()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Returns true if max is "n" (unlimited).
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#isUp()"><B>isUp()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>Returns true if the drilling went upwards.
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#isUseBoundingBox()"><B>isUseBoundingBox()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#isUseInputOrigin()"><B>isUseInputOrigin()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isValidAncestor(java.lang.Object, java.lang.Object, boolean)"><B>isValidAncestor(Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns whether or not the specified parent is a valid
    + ancestor of the specified cell, either direct or indirectly
    + based on whether ancestor recursion is enabled.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isValidConnection(java.lang.Object, java.lang.Object)"><B>isValidConnection(Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given target cell is a valid target for source.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isValidDropTarget(java.lang.Object, java.lang.Object[])"><B>isValidDropTarget(Object, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is a valid drop target for the specified
    + cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isValidRoot(java.lang.Object)"><B>isValidRoot(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is a valid root for the cell display
    + hierarchy.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isValidSource(java.lang.Object)"><B>isValidSource(Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isValidSource(java.lang.Object)"><B>isValidSource(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns true if the given cell is a valid source for new connections.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#isValidState(com.mxgraph.view.mxCellState)"><B>isValidState(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Returns true if the given state is a valid state.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#isValidTarget(java.lang.Object)"><B>isValidTarget(Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Returns true.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isValidTarget(java.lang.Object)"><B>isValidTarget(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns isValidSource for the given cell.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#isVertex()"><B>isVertex()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#isVertex()"><B>isVertex()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#isVertex()"><B>isVertex()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#isVertex()"><B>isVertex()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#isVertex(java.lang.Object)"><B>isVertex(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#isVertex()"><B>isVertex()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns true if the cell is a vertex.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#isVertex(java.lang.Object)"><B>isVertex(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns true if the given cell is a vertex.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#isVertexIgnored(java.lang.Object)"><B>isVertexIgnored(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Returns a boolean indicating if the given <mxCell> should be ignored as a
    + vertex.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#isVertexIgnored(java.lang.Object)"><B>isVertexIgnored(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Returns a boolean indicating if the given <mxCell> should be ignored as a
    + vertex.
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#isVertexIgnored(java.lang.Object)"><B>isVertexIgnored(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Returns true if the given vertex has no connected edges.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#isVertexIgnored(java.lang.Object)"><B>isVertexIgnored(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Returns true if the given vertex has no connected edges.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#isVertexLabelsMovable()"><B>isVertexLabelsMovable()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns vertexLabelsMovable.
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#isVertexMovable(java.lang.Object)"><B>isVertexMovable(Object)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Returns true if the given vertex may be moved by the layout.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#isVisible()"><B>isVisible()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#isVisible(java.lang.Object)"><B>isVisible(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#isVisible()"><B>isVisible()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#isVisible()"><B>isVisible()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Returns true if the cell is visibile.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#isVisible(java.lang.Object)"><B>isVisible(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Returns true if the given cell is visible.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#isVisible()"><B>isVisible()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#isVisible()"><B>isVisible()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#iteration"><B>iteration</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Current iteration count.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#iteration"><B>iteration</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>current iteration number of the layout
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#iterationsWithoutImprovement"><B>iterationsWithoutImprovement</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_J_"><!-- --></A><H2>
    +<B>J</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#jettyPositions"><B>jettyPositions</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Map of internal edges and (x,y) pair of positions of the start and end jetty
    + for that edge where it connects to the source and target vertices.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#JGRAPH"><B>JGRAPH</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#JGRAPH_URL"><B>JGRAPH_URL</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#join(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><B>join(mxCompactTreeLayout.TreeNode)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_K_"><!-- --></A><H2>
    +<B>K</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#KEEP_ON_TOP"><B>KEEP_ON_TOP</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Specifies if the highlights should appear on top of everything
    + else in the overlay pane.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#keepEdgesInBackground"><B>keepEdgesInBackground</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if edges should appear in the background regardless of their
    + order in the model.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#keepEdgesInForeground"><B>keepEdgesInForeground</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if edges should appear in the foreground regardless of their
    + order in the model.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#keepOnTop"><B>keepOnTop</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Appearance and event handling order wrt subhandles.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#keepOnTop"><B>keepOnTop</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if this handler should be painted on top of all other components.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#keepSelectionVisibleOnZoom"><B>keepSelectionVisibleOnZoom</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if the viewport should automatically contain the selection
    + cells after a zoom operation.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY"><B>KEY</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_EDGE_ID"><B>KEY_EDGE_ID</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_EDGE_NAME"><B>KEY_EDGE_NAME</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_FOR"><B>KEY_FOR</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_NAME"><B>KEY_NAME</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_NODE_ID"><B>KEY_NODE_ID</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_NODE_NAME"><B>KEY_NODE_NAME</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#KEY_TYPE"><B>KEY_TYPE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_L_"><!-- --></A><H2>
    +<B>L</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#LABEL"><B>LABEL</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#label"><B>label</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Holds the current label value, including newlines which result from
    + word wrapping.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#LABEL_BUFFER"><B>LABEL_BUFFER</B></A> - 
    +Static variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Buffer at both ends of the label
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#LABEL_CHANGED"><B>LABEL_CHANGED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#LABEL_CURVE"><B>LABEL_CURVE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Defines the key for the label curve index
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#LABEL_HANDLE_FILLCOLOR"><B>LABEL_HANDLE_FILLCOLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the label handle fill color.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#LABEL_HANDLE_SIZE"><B>LABEL_HANDLE_SIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the handle size.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#LABEL_INSET"><B>LABEL_INSET</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the inset in absolute pixels between the label bounding box and
    + the label text.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#LABEL_SCALE_BUFFER"><B>LABEL_SCALE_BUFFER</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Multiplier to the width that is passed into the word wrapping calculation
    + See mxUtils.wordWrap for details
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#labelBounds"><B>labelBounds</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Cache of the bounds of the label
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#labelBounds"><B>labelBounds</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Holds the rectangle which contains the label.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#labelBuffer"><B>labelBuffer</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Offset of the label curve from the curve the label curve is based on.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#labelChanged(java.lang.Object, java.lang.Object, java.util.EventObject)"><B>labelChanged(Object, Object, EventObject)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Sets the label of the specified cell to the given value using
    + mxGraph.cellLabelChanged and fires mxEvent.LABEL_CHANGED while the
    + transaction is in progress.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#labelGlyphBounds"><B>labelGlyphBounds</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>
    +<DD>Cache of the bounds of the individual element of the label of this 
    + edge.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#labelGlyphs"><B>labelGlyphs</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Cache of information describing characteristics relating to drawing 
    + each glyph of this label
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#labelMoveHandler"><B>labelMoveHandler</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#labelPosition"><B>labelPosition</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>ADT to encapsulate label positioning information
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#labelsClipped"><B>labelsClipped</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for isLabel(s)Clipped.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#labelSize"><B>labelSize</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Cache of the total length of the branch label
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#labelsVisible"><B>labelsVisible</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if labels should be visible.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#lastDirty"><B>lastDirty</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#lastFont"><B>lastFont</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Cache of the label font
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#lastImported"><B>lastImported</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Reference to the last imported cell array.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#lastMoveX"><B>lastMoveX</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Holds the last x-position of the cursor.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#lastMoveY"><B>lastMoveY</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Holds the last y-position of the cursor.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#lastPoint"><B>lastPoint</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Holds the last point of a moveTo or lineTo operation to determine if the
    + current path is orthogonal.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#lastPoints"><B>lastPoints</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Cache of the last set of guide points that this label was calculated for
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#lastTimeMillis"><B>lastTimeMillis</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Holds the last active time millis.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#lastValue"><B>lastValue</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Cache of the label text
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#layeringStage()"><B>layeringStage()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Implements first stage of a Sugiyama layout.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#layout"><B>layout</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Reference to the enclosing layout algorithm
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#layout"><B>layout</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<DD>Reference to the enclosing layout algorithm
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html#layout"><B>layout</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMinimumCycleRemover</A>
    +<DD>Reference to the enclosing layout algorithm
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#layout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><B>layout(mxCompactTreeLayout.TreeNode)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Starts the actual compact tree layout algorithm
    + at the given node.
    +<DT><A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html#layout(java.util.List)"><B>layout(List&lt;Object&gt;)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#LAYOUT_CELLS"><B>LAYOUT_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#layoutCells(java.lang.Object[])"><B>layoutCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#layoutFromSinks"><B>layoutFromSinks</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Whether or not the initial scan of the graph to determine the layer
    + assigned to each vertex starts from the sinks or source (the sinks
    + being vertices with the fewest, preferable zero, outgoing edges and
    + sources same with incoming edges).
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#layoutLeaf(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><B>layoutLeaf(mxCompactTreeLayout.TreeNode)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#LEFT"><B>LEFT</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#LEFT_MASK"><B>LEFT_MASK</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#len"><B>len</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#length"><B>length</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>The length of the string.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#length"><B>length</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Caches the distance between the end points and the length of an edge.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#levelDistance"><B>levelDistance</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Holds the levelDistance.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#limits"><B>limits</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#limitX"><B>limitX</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The maximum x value this positioning lays up to
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#line"><B>line</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>The current line in the stream.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#LINE_ARCSIZE"><B>LINE_ARCSIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the size of the arcs for rounded edges.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#lineCap"><B>lineCap</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#lineColor"><B>lineColor</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#lineJoin"><B>lineJoin</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#lineNumber"><B>lineNumber</B></A> - 
    +Variable in exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#LINESPACING"><B>LINESPACING</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Specifies the line spacing.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#lineTo(double, double)"><B>lineTo(double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#lineTo(double, double)"><B>lineTo(double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Draws a line to the given path.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#lineTo(float, float)"><B>lineTo(float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#linetoAbs(float, float)"><B>linetoAbs(float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoAbs(float, float)"><CODE>PathHandler.linetoAbs(float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoAbs(float, float)"><B>linetoAbs(float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when an absolute line command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#linetoHorizontalAbs(float)"><B>linetoHorizontalAbs(float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoHorizontalAbs(float)"><CODE>PathHandler.linetoHorizontalAbs(float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoHorizontalAbs(float)"><B>linetoHorizontalAbs(float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when an horizontal absolute line command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#linetoHorizontalRel(float)"><B>linetoHorizontalRel(float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoHorizontalRel(float)"><CODE>PathHandler.linetoHorizontalRel(float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoHorizontalRel(float)"><B>linetoHorizontalRel(float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when an horizontal relative line command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#linetoRel(float, float)"><B>linetoRel(float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoRel(float, float)"><CODE>PathHandler.linetoRel(float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoRel(float, float)"><B>linetoRel(float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a relative line command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#linetoVerticalAbs(float)"><B>linetoVerticalAbs(float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoVerticalAbs(float)"><CODE>PathHandler.linetoVerticalAbs(float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoVerticalAbs(float)"><B>linetoVerticalAbs(float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a vertical absolute line command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#linetoVerticalRel(float)"><B>linetoVerticalRel(float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoVerticalRel(float)"><CODE>PathHandler.linetoVerticalRel(float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#linetoVerticalRel(float)"><B>linetoVerticalRel(float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a vertical relative line command has been parsed.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#lineWidth"><B>lineWidth</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#link(com.mxgraph.analysis.mxFibonacciHeap.Node, com.mxgraph.analysis.mxFibonacciHeap.Node)"><B>link(mxFibonacciHeap.Node, mxFibonacciHeap.Node)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Make node y a child of node x.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#livePreview"><B>livePreview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if live preview should be used if possible.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#loadDocument(java.lang.String)"><B>loadDocument(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a new DOM document for the given URI.
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#loadImage(java.lang.String)"><B>loadImage(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Returns an image instance for the given URL.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#loadImage(java.lang.String)"><B>loadImage(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Hook for image caching.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#loadImage(java.lang.String)"><B>loadImage(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Loads an image from the local filesystem, a data URI or any other URL.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#localEdgeProcessing(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><B>localEdgeProcessing(mxGraphHierarchyModel)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Separates the x position of edges as they connect to vertices
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#localEdgeProcessing(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><B>localEdgeProcessing(mxCompactTreeLayout.TreeNode)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Moves the specified node and all of its children by the given amount.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#location"><B>location</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#LOCKED_HANDLE_FILLCOLOR"><B>LOCKED_HANDLE_FILLCOLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the handle fill color for locked handles.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#lookup(java.lang.String)"><B>lookup(String)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Hook for subclassers to implement a custom lookup mechanism for cell IDs.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#Loop"><B>Loop</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>Provides a self-reference, aka.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#lowerHead"><B>lowerHead</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#lowerTail"><B>lowerTail</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_M_"><!-- --></A><H2>
    +<B>M</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
    +Static method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Prints the version number on the console.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#maintainEdgeParent"><B>maintainEdgeParent</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Specifies if edges should automatically be moved into the nearest common
    + ancestor of their terminals.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#maintainScrollBar(boolean, double, boolean)"><B>maintainScrollBar(boolean, double, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#mapping"><B>mapping</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Maps from from fieldnames to XML attribute names.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#mark()"><B>mark()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Marks the markedState and fires a mxEvent.MARK event.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#MARK"><B>MARK</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>Holds the name for the mark event, which fires after a cell has been
    + marked.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#markedState"><B>markedState</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Holds the marked state.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#marker"><B>marker</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#marker"><B>marker</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#marker"><B>marker</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#markerEnabled"><B>markerEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if the cell marker should be called (for splitting edges and
    + dropping cells into groups).
    +<DT><A HREF="./com/mxgraph/shape/mxMarkerRegistry.html#markers"><B>markers</B></A> - 
    +Static variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape">mxMarkerRegistry</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#max"><B>max</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Defines the maximum number of connections for which this rule applies.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#MAX_HOTSPOT_SIZE"><B>MAX_HOTSPOT_SIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the maximum size in pixels of the portion of the cell which is
    + to be used as a connectable region.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#maxDistanceLimit"><B>maxDistanceLimit</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>The maximum distance between vertices, beyond which their
    + repulsion no longer has an effect
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#maxDistanceLimit"><B>maxDistanceLimit</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>distance limit beyond which energy costs due to object repulsive is
    + not calculated as it would be too insignificant
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#maxDistanceLimitSquared"><B>maxDistanceLimitSquared</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>cached version of <code>maxDistanceLimit</code> squared
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#maxHandlers"><B>maxHandlers</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Defines the maximum number of handlers to paint individually.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#maximumGraphBounds"><B>maximumGraphBounds</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD><mxRectangle> that specifies the area in which all cells in the
    + diagram should be placed.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#maxIterations"><B>maxIterations</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The number of heuristic iterations to run
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#maxIterations"><B>maxIterations</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<DD>The maximum number of iterations to perform whilst reducing edge
    + crossings
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#maxIterations"><B>maxIterations</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Total number of iterations to run the layout though.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#maxIterations"><B>maxIterations</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Limit to the number of iterations that may take place.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#maxNoImprovementIterations"><B>maxNoImprovementIterations</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#maxRank"><B>maxRank</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>The maximum rank this cell occupies
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#maxRank"><B>maxRank</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Stores the largest rank number allocated
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#maxXBounds"><B>maxXBounds</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#maxYBounds"><B>maxYBounds</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html#medianValue"><B>medianValue</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction.MedianCellSorter</A>
    +<DD>The median value of the cell stored
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#merge(com.mxgraph.layout.mxCompactTreeLayout.Polygon, com.mxgraph.layout.mxCompactTreeLayout.Polygon)"><B>merge(mxCompactTreeLayout.Polygon, mxCompactTreeLayout.Polygon)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#mergeChildren(com.mxgraph.model.mxICell, com.mxgraph.model.mxICell, boolean)"><B>mergeChildren(mxICell, mxICell, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Merges the children of the given cell into the given target cell inside
    + this model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#mergeChildrenImpl(com.mxgraph.model.mxICell, com.mxgraph.model.mxICell, boolean, java.util.Hashtable)"><B>mergeChildrenImpl(mxICell, mxICell, boolean, Hashtable&lt;Object, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Clones the children of the source cell into the given target cell in
    + this model and adds an entry to the mapping that maps from the source
    + cell to the target cell with the same id or the clone of the source cell
    + that was inserted into this model.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#min"><B>min</B></A> - 
    +Variable in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#min()"><B>min()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Returns the smallest element in the heap.
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#min"><B>min</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Defines the minimum number of connections for which this rule applies.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#MIN_HOTSPOT_SIZE"><B>MIN_HOTSPOT_SIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the minimum size in pixels of the portion of the cell which is
    + to be used as a connectable region.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#MIN_SCALE_FOR_ROUNDED_LINES"><B>MIN_SCALE_FOR_ROUNDED_LINES</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the minimum scale at which rounded polylines should be painted.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#minDistanceLimit"><B>minDistanceLimit</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Minimal distance limit.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#minDistanceLimit"><B>minDistanceLimit</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>prevents from dividing with zero and from creating excessive energy
    + values
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#minDistanceLimitSquared"><B>minDistanceLimitSquared</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Cached version of <minDistanceLimit> squared.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#minDistanceLimitSquared"><B>minDistanceLimitSquared</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>cached version of <code>minDistanceLimit</code> squared
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#minEdgeJetty"><B>minEdgeJetty</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The minimum distance for an edge jetty from a vertex
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#minEdgeJetty"><B>minEdgeJetty</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>The minimum distance for an edge jetty from a vertex
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#minimumEditorScale"><B>minimumEditorScale</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Defines the minimum scale to be used for the editor.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#minimumGraphSize"><B>minimumGraphSize</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>mxRectangle that specifies the minimum size of the graph canvas inside
    + the scrollpane.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#minimumHeight"><B>minimumHeight</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#minimumWidth"><B>minimumWidth</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#minMoveRadius"><B>minMoveRadius</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>when <A HREF="./com/mxgraph/layout/mxOrganicLayout.html#moveRadius"><CODE>mxOrganicLayout.moveRadius</CODE></A>reaches this value, the algorithm is terminated
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#minPath(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><B>minPath(mxGraphHierarchyModel)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Straightens out chains of virtual nodes where possible
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#minRank"><B>minRank</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>The minimum rank this cell occupies
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#minXBounds"><B>minXBounds</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#minYBounds"><B>minYBounds</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#miterLimit"><B>miterLimit</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#model"><B>model</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>The internal model formed of the layout
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#model"><B>model</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>
    +<DD>Holds the model where the change happened.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#model"><B>model</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#model"><B>model</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Holds the model that contains the cells to be displayed.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#model"><B>model</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html#mouseClicked(java.awt.event.MouseEvent)"><B>mouseClicked(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#mouseClicked(java.awt.event.MouseEvent)"><B>mouseClicked(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseClicked(java.awt.event.MouseEvent)"><B>mouseClicked(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseClicked(java.awt.event.MouseEvent)"><B>mouseClicked(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseClicked(java.awt.event.MouseEvent)"><B>mouseClicked(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html#mouseClicked(java.awt.event.MouseEvent)"><B>mouseClicked(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Processes the given event.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html#mouseDragged(java.awt.event.MouseEvent)"><B>mouseDragged(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html#mouseEntered(java.awt.event.MouseEvent)"><B>mouseEntered(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#mouseEntered(java.awt.event.MouseEvent)"><B>mouseEntered(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseEntered(java.awt.event.MouseEvent)"><B>mouseEntered(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseEntered(java.awt.event.MouseEvent)"><B>mouseEntered(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseEntered(java.awt.event.MouseEvent)"><B>mouseEntered(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html#mouseEntered(java.awt.event.MouseEvent)"><B>mouseEntered(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html#mouseExited(java.awt.event.MouseEvent)"><B>mouseExited(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#mouseExited(java.awt.event.MouseEvent)"><B>mouseExited(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseExited(java.awt.event.MouseEvent)"><B>mouseExited(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseExited(java.awt.event.MouseEvent)"><B>mouseExited(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseExited(java.awt.event.MouseEvent)"><B>mouseExited(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html#mouseExited(java.awt.event.MouseEvent)"><B>mouseExited(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Processes the given event.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html#mouseMoved(java.awt.event.MouseEvent)"><B>mouseMoved(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Processes the given event.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Dispatches the mousepressed event to the subhandles.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html#mousePressed(java.awt.event.MouseEvent)"><B>mousePressed(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Processes the given event.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html#mouseReleased(java.awt.event.MouseEvent)"><B>mouseReleased(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#MOVE_CELLS"><B>MOVE_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#MOVE_CURSOR"><B>MOVE_CURSOR</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Default is Cursor.MOVE_CURSOR.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#moveCell(java.lang.Object, double, double)"><B>moveCell(Object, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#moveCell(java.lang.Object, double, double)"><B>moveCell(Object, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxIGraphLayout.html#moveCell(java.lang.Object, double, double)"><B>moveCell(Object, double, double)</B></A> - 
    +Method in interface com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A>
    +<DD>Notified when a cell is being moved in a parent that has automatic
    + layout to update the cell state (eg.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#moveCell(java.lang.Object, double, double)"><B>moveCell(Object, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#moveCell(java.lang.Object, double, double)"><B>moveCell(Object, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#moveCells(java.lang.Object[], double, double, java.lang.Object, java.awt.event.MouseEvent)"><B>moveCells(Object[], double, double, Object, MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#moveCells(java.lang.Object[], double, double)"><B>moveCells(Object[], double, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Moves the cells by the given amount.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#moveCells(java.lang.Object[], double, double, boolean)"><B>moveCells(Object[], double, double, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Moves or clones the cells and moves the cells or clones by the given
    + amount.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#moveCells(java.lang.Object[], double, double, boolean, java.lang.Object, java.awt.Point)"><B>moveCells(Object[], double, double, boolean, Object, Point)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Moves or clones the specified cells and moves the cells or clones by the
    + given amount, adding them to the optional target cell.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#moveCircle"><B>moveCircle</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>Boolean specifying if the circle should be moved to the top,
    + left corner specified by x0 and y0.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#moveEnabled"><B>moveEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if moving is enabled.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#moveHandler"><B>moveHandler</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#moveLabel(java.awt.event.MouseEvent)"><B>moveLabel(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#moveLabelTo(com.mxgraph.view.mxCellState, double, double)"><B>moveLabelTo(mxCellState, double, double)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Moves the label to the given position.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#moveNode(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, double, double)"><B>moveNode(mxCompactTreeLayout.TreeNode, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Moves the specified node and all of its children by the given amount.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#moveParent"><B>moveParent</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Specifies if the parnent should be moved if resizeParent is enabled.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#movePoint(java.lang.Object, int, com.mxgraph.util.mxPoint)"><B>movePoint(Object, int, mxPoint)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Moves the edges control point with the given index to the given point.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#movePreview"><B>movePreview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#moveRadius"><B>moveRadius</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The current radius around each node where the next position energy
    + values will be calculated for a possible move
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#moveState(com.mxgraph.view.mxCellState, double, double)"><B>moveState(mxCellState, double, double)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#moveState(com.mxgraph.view.mxCellState, double, double, boolean, boolean)"><B>moveState(mxCellState, double, double, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#moveTo(double, double)"><B>moveTo(double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#moveTo(double, double)"><B>moveTo(double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Moves to the given path.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#moveTo(float, float)"><B>moveTo(float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#movetoAbs(float, float)"><B>movetoAbs(float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#movetoAbs(float, float)"><CODE>PathHandler.movetoAbs(float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#movetoAbs(float, float)"><B>movetoAbs(float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when an absolute moveto command has been parsed.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#movetoRel(float, float)"><B>movetoRel(float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#movetoRel(float, float)"><CODE>PathHandler.movetoRel(float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#movetoRel(float, float)"><B>movetoRel(float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when a relative moveto command has been parsed.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#moveTree"><B>moveTree</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Specifies if the tree should be moved to the top, left corner
    + if it is inside a top-level layer.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#movingCells"><B>movingCells</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#multigraph"><B>multigraph</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if multiple edges in the same direction between
    + the same pair of vertices are allowed.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#multiplicities"><B>multiplicities</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the multiplicities to be used for validation of the graph.
    +<DT><A HREF="./com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape"><B>mxActorShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxActorShape.html#mxActorShape()"><B>mxActorShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape">mxActorShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util"><B>mxAnimation</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>Baseclass for all timer-based animations.<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#mxAnimation()"><B>mxAnimation()</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Constructs a new animation instance with the given repaint delay.
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#mxAnimation(int)"><B>mxAnimation(int)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Constructs a new animation instance with the given repaint delay.
    +<DT><A HREF="./com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape"><B>mxArrowShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxArrowShape.html#mxArrowShape()"><B>mxArrowShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape">mxArrowShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util"><B>mxBase64</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>A very fast and memory efficient class to encode and decode to and from BASE64 in full accordance
    + with RFC 2045.<br><br>
    + On Windows XP sp1 with 1.4.2_04 and later ;), this encoder and decoder is about 10 times faster
    + on small arrays (10 - 1000 bytes) and 2-3 times as fast on larger arrays (10000 - 1000000 bytes)
    + compared to <code>sun.misc.Encoder()/Decoder()</code>.<br><br>
    +
    + On byte arrays the encoder is about 20% faster than Jakarta Commons Base64 Codec for encode and
    + about 50% faster for decoding large arrays.<DT><A HREF="./com/mxgraph/util/mxBase64.html#mxBase64()"><B>mxBase64()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util">mxBase64</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas"><B>mxBasicCanvas</B></A> - Class in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#mxBasicCanvas()"><B>mxBasicCanvas()</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape"><B>mxBasicShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html#mxBasicShape()"><B>mxBasicShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model"><B>mxCell</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>Cells are the elements of the graph model.<DT><A HREF="./com/mxgraph/model/mxCell.html#mxCell()"><B>mxCell()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Constructs a new cell with an empty user object.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#mxCell(java.lang.Object)"><B>mxCell(Object)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Constructs a new cell for the given user object.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#mxCell(java.lang.Object, com.mxgraph.model.mxGeometry, java.lang.String)"><B>mxCell(Object, mxGeometry, String)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Constructs a new cell for the given parameters.
    +<DT><A HREF="./com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io"><B>mxCellCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Codec for mxCells.<DT><A HREF="./com/mxgraph/io/mxCellCodec.html#mxCellCodec()"><B>mxCellCodec()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A>
    +<DD>Constructs a new cell codec.
    +<DT><A HREF="./com/mxgraph/io/mxCellCodec.html#mxCellCodec(java.lang.Object)"><B>mxCellCodec(Object)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A>
    +<DD>Constructs a new cell codec for the given template.
    +<DT><A HREF="./com/mxgraph/io/mxCellCodec.html#mxCellCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><B>mxCellCodec(Object, String[], String[], Map&lt;String, String&gt;)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io">mxCellCodec</A>
    +<DD>Constructs a new cell codec for the given arguments.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view"><B>mxCellEditor</B></A> - Class in <A HREF="./com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A><DD>To control this editor, use mxGraph.invokesStopCellEditing, mxGraph.<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#mxCellEditor(com.mxgraph.swing.mxGraphComponent)"><B>mxCellEditor(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler"><B>mxCellHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#mxCellHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)"><B>mxCellHandler(mxGraphComponent, mxCellState)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Constructs a new cell handler for the given cell state.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler"><B>mxCellMarker</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>Implements a mouse tracker that marks cells under the mouse.<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent)"><B>mxCellMarker(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Constructs a new marker for the given graph component.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color)"><B>mxCellMarker(mxGraphComponent, Color)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Constructs a new marker for the given graph component.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color, java.awt.Color)"><B>mxCellMarker(mxGraphComponent, Color, Color)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Constructs a new marker for the given graph component.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#mxCellMarker(com.mxgraph.swing.mxGraphComponent, java.awt.Color, java.awt.Color, double)"><B>mxCellMarker(mxGraphComponent, Color, Color, double)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Constructs a new marker for the given graph component.
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util"><B>mxCellOverlay</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#mxCellOverlay(javax.swing.ImageIcon, java.lang.String)"><B>mxCellOverlay(ImageIcon, String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model"><B>mxCellPath</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>Implements a mechanism for temporary cell Ids.<DT><A HREF="./com/mxgraph/model/mxCellPath.html#mxCellPath()"><B>mxCellPath()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model">mxCellPath</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util"><B>mxCellRenderer</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util"><B>mxCellRenderer.CanvasFactory</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/mxCellRenderer.CanvasFactory.html#mxCellRenderer.CanvasFactory()"><B>mxCellRenderer.CanvasFactory()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util">mxCellRenderer.CanvasFactory</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view"><B>mxCellState</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Represents the current state of a cell in a given graph view.<DT><A HREF="./com/mxgraph/view/mxCellState.html#mxCellState()"><B>mxCellState()</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Constructs an empty cell state.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#mxCellState(com.mxgraph.view.mxGraphView, java.lang.Object, java.util.Map)"><B>mxCellState(mxGraphView, Object, Map&lt;String, Object&gt;)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Constructs a new object that represents the current state of the given
    + cell in the specified view.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view"><B>mxCellStatePreview</B></A> - Class in <A HREF="./com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A><DD>Represents the current state of a cell in a given graph view.<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#mxCellStatePreview(com.mxgraph.swing.mxGraphComponent, boolean)"><B>mxCellStatePreview(mxGraphComponent, boolean)</B></A> - 
    +Constructor for class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>Constructs a new state preview.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler"><B>mxCellTracker</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>Event handler that highlights cells.<DT><A HREF="./com/mxgraph/swing/handler/mxCellTracker.html#mxCellTracker(com.mxgraph.swing.mxGraphComponent, java.awt.Color)"><B>mxCellTracker(mxGraphComponent, Color)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">mxCellTracker</A>
    +<DD>Constructs an event handler that highlights cells.
    +<DT><A HREF="./com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io"><B>mxChildChangeCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Codec for mxChildChanges.<DT><A HREF="./com/mxgraph/io/mxChildChangeCodec.html#mxChildChangeCodec()"><B>mxChildChangeCodec()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A>
    +<DD>Constructs a new model codec.
    +<DT><A HREF="./com/mxgraph/io/mxChildChangeCodec.html#mxChildChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><B>mxChildChangeCodec(Object, String[], String[], Map&lt;String, String&gt;)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io">mxChildChangeCodec</A>
    +<DD>Constructs a new model codec for the given arguments.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout"><B>mxCircleLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#mxCircleLayout(com.mxgraph.view.mxGraph)"><B>mxCircleLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#mxCircleLayout(com.mxgraph.view.mxGraph, double)"><B>mxCircleLayout(mxGraph, double)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape"><B>mxCloudShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxCloudShape.html#mxCloudShape()"><B>mxCloudShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape">mxCloudShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><B>mxCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>XML codec for Java object graphs.<DT><A HREF="./com/mxgraph/io/mxCodec.html#mxCodec()"><B>mxCodec()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Constructs an XML encoder/decoder with a new owner document.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#mxCodec(org.w3c.dom.Document)"><B>mxCodec(Document)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Constructs an XML encoder/decoder for the specified owner document.
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io"><B>mxCodecRegistry</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Singleton class that acts as a global registry for codecs.<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#mxCodecRegistry()"><B>mxCodecRegistry()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#mxCompactTreeLayout(com.mxgraph.view.mxGraph)"><B>mxCompactTreeLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#mxCompactTreeLayout(com.mxgraph.view.mxGraph, boolean)"><B>mxCompactTreeLayout(mxGraph, boolean)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#mxCompactTreeLayout(com.mxgraph.view.mxGraph, boolean, boolean)"><B>mxCompactTreeLayout(mxGraph, boolean, boolean)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.Polygon</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#mxCompactTreeLayout.Polygon()"><B>mxCompactTreeLayout.Polygon()</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.Polyline</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#mxCompactTreeLayout.Polyline(double, double, com.mxgraph.layout.mxCompactTreeLayout.Polyline)"><B>mxCompactTreeLayout.Polyline(double, double, mxCompactTreeLayout.Polyline)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.TreeNode</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#mxCompactTreeLayout.TreeNode(java.lang.Object)"><B>mxCompactTreeLayout.TreeNode(Object)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.WeightedCellSorter</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>A utility class used to track cells whilst sorting occurs on the weighted
    + sum of their connected edges.<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#mxCompactTreeLayout.WeightedCellSorter()"><B>mxCompactTreeLayout.WeightedCellSorter()</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.WeightedCellSorter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#mxCompactTreeLayout.WeightedCellSorter(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, int)"><B>mxCompactTreeLayout.WeightedCellSorter(mxCompactTreeLayout.TreeNode, int)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.WeightedCellSorter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view"><B>mxConnectionConstraint</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Defines an object that contains the constraints about how to connect one
    + side of an edge to its terminal.<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html#mxConnectionConstraint()"><B>mxConnectionConstraint()</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<DD>Constructs an empty connection constraint.
    +<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html#mxConnectionConstraint(com.mxgraph.util.mxPoint)"><B>mxConnectionConstraint(mxPoint)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<DD>Constructs a connection constraint for the given point.
    +<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html#mxConnectionConstraint(com.mxgraph.util.mxPoint, boolean)"><B>mxConnectionConstraint(mxPoint, boolean)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<DD>Constructs a new connection constraint for the given point and boolean
    + arguments.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler"><B>mxConnectionHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>Connection handler creates new connections between cells.<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#mxConnectionHandler(com.mxgraph.swing.mxGraphComponent)"><B>mxConnectionHandler(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape"><B>mxConnectorShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxConnectorShape.html#mxConnectorShape()"><B>mxConnectorShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler"><B>mxConnectPreview</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>Connection handler creates new connections between cells.<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#mxConnectPreview(com.mxgraph.swing.mxGraphComponent)"><B>mxConnectPreview(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis"><B>mxConstantCostFunction</B></A> - Class in <A HREF="./com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A><DD>Implements a cost function for a constant cost per traversed cell.<DT><A HREF="./com/mxgraph/analysis/mxConstantCostFunction.html#mxConstantCostFunction(double)"><B>mxConstantCostFunction(double)</B></A> - 
    +Constructor for class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis">mxConstantCostFunction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><B>mxConstants</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Contains all global constants.<DT><A HREF="./com/mxgraph/util/mxConstants.html#mxConstants()"><B>mxConstants()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxCoordinateAssignment</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A><DD>Sets the horizontal locations of node and edge dummy nodes on each layer.<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#mxCoordinateAssignment(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, double, double, int, double, double)"><B>mxCoordinateAssignment(mxHierarchicalLayout, double, double, int, double, double)</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Creates a coordinate assignment.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxCoordinateAssignment.AreaSpatialCache</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A><DD>Utility class that stores a collection of vertices and edge points within
    + a certain area.<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html#mxCoordinateAssignment.AreaSpatialCache()"><B>mxCoordinateAssignment.AreaSpatialCache()</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.AreaSpatialCache</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxCoordinateAssignment.WeightedCellSorter</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A><DD>A utility class used to track cells whilst sorting occurs on the weighted
    + sum of their connected edges.<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#mxCoordinateAssignment.WeightedCellSorter()"><B>mxCoordinateAssignment.WeightedCellSorter()</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.WeightedCellSorter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#mxCoordinateAssignment.WeightedCellSorter(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell, int)"><B>mxCoordinateAssignment.WeightedCellSorter(mxGraphAbstractHierarchyCell, int)</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.WeightedCellSorter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util"><B>mxCurve</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/mxCurve.html#mxCurve()"><B>mxCurve()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#mxCurve(java.util.List)"><B>mxCurve(List&lt;mxPoint&gt;)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape"><B>mxCurveLabelShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>Draws the edge label along a curve derived from the curve describing
    + the edge's path<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#mxCurveLabelShape(com.mxgraph.view.mxCellState, com.mxgraph.util.mxCurve)"><B>mxCurveLabelShape(mxCellState, mxCurve)</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape"><B>mxCurveLabelShape.LabelGlyphCache</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>Utility class to describe the characteristics of each glyph of a branch
    + branch label.<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#mxCurveLabelShape.LabelGlyphCache()"><B>mxCurveLabelShape.LabelGlyphCache()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape"><B>mxCurveLabelShape.LabelPosition</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>Utility class that stores details of how the label is positioned
    + on the curve<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html#mxCurveLabelShape.LabelPosition()"><B>mxCurveLabelShape.LabelPosition()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape"><B>mxCurveShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxCurveShape.html#mxCurveShape()"><B>mxCurveShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveShape.html#mxCurveShape(com.mxgraph.util.mxCurve)"><B>mxCurveShape(mxCurve)</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape"><B>mxCylinderShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxCylinderShape.html#mxCylinderShape()"><B>mxCylinderShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape">mxCylinderShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape"><B>mxDefaultTextShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxDefaultTextShape.html#mxDefaultTextShape()"><B>mxDefaultTextShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape">mxDefaultTextShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis"><B>mxDistanceCostFunction</B></A> - Class in <A HREF="./com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A><DD>Implements a cost function for the Euclidean length of an edge.<DT><A HREF="./com/mxgraph/analysis/mxDistanceCostFunction.html#mxDistanceCostFunction()"><B>mxDistanceCostFunction()</B></A> - 
    +Constructor for class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis">mxDistanceCostFunction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader"><B>mxDomOutputParser</B></A> - Class in <A HREF="./com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A><DD>public static void main(String[] args)
    +        {
    +                try
    +                {
    +                        String filename = Test.class.getResource(
    +                                        "/com/mxgraph/online/exported.xml").getPath();
    +                        String xml = mxUtils.readFile(filename);
    +                        System.out.println("xml=" + xml);
    +
    +                        Document doc = mxUtils.parseXml(xml);
    +                        Element root = doc.getDocumentElement();
    +                        int width = Integer.parseInt(root.getAttribute("width"));
    +                        int height = Integer.parseInt(root.getAttribute("height"));
    +
    +                        System.out.println("width=" + width + " height=" + height);
    +
    +                        BufferedImage img = mxUtils.createBufferedImage(width, height,
    +                                        Color.WHITE);
    +                        Graphics2D g2 = img.createGraphics();
    +                        mxUtils.setAntiAlias(g2, true, true);
    +                        mxDomOutputParser reader = new mxDomOutputParser(
    +                                        new mxGraphicsExportCanvas(g2));
    +                        reader.read((Element) root.getFirstChild().getNextSibling());
    +
    +                        ImageIO.write(img, "PNG", new File(
    +                                        "C:\\Users\\Gaudenz\\Desktop\\test.png"));
    +                }
    +                catch (Exception e)
    +                {
    +                        e.printStackTrace();
    +                }
    +        }
    +
    +        // -------------
    +
    +        Document doc = mxUtils.parseXml(xml);
    +        Element root = doc.getDocumentElement();
    +        mxDomOutputParser reader = new mxDomOutputParser(canvas);
    +        reader.read(root.getFirstChild());<DT><A HREF="./com/mxgraph/reader/mxDomOutputParser.html#mxDomOutputParser(com.mxgraph.canvas.mxICanvas2D)"><B>mxDomOutputParser(mxICanvas2D)</B></A> - 
    +Constructor for class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader">mxDomOutputParser</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><B>mxDomOutputParser.IElementHandler</B></A> - Interface in <A HREF="./com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><B>mxDomUtils</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Contains various DOM API helper methods for use with mxGraph.<DT><A HREF="./com/mxgraph/util/mxDomUtils.html#mxDomUtils()"><B>mxDomUtils()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util">mxDomUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape"><B>mxDoubleEllipseShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxDoubleEllipseShape.html#mxDoubleEllipseShape()"><B>mxDoubleEllipseShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape">mxDoubleEllipseShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>mxEdgeHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#mxEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)"><B>mxEdgeHandler(mxGraphComponent, mxCellState)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout"><B>mxEdgeLabelLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/mxEdgeLabelLayout.html#mxEdgeLabelLayout(com.mxgraph.view.mxGraph)"><B>mxEdgeLabelLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view"><B>mxEdgeStyle</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Provides various edge styles to be used as the values for
    + mxConstants.STYLE_EDGE in a cell style.<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#mxEdgeStyle()"><B>mxEdgeStyle()</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><B>mxEdgeStyle.mxEdgeStyleFunction</B></A> - Interface in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Defines the requirements for an edge style function.<DT><A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>mxElbowEdgeHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html#mxElbowEdgeHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)"><B>mxElbowEdgeHandler(mxGraphComponent, mxCellState)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxElbowEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape"><B>mxEllipseShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxEllipseShape.html#mxEllipseShape()"><B>mxEllipseShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape">mxEllipseShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util"><B>mxEvent</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Contains all global constants.<DT><A HREF="./com/mxgraph/util/mxEvent.html#mxEvent()"><B>mxEvent()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util"><B>mxEventObject</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Base class for objects that dispatch named events.<DT><A HREF="./com/mxgraph/util/mxEventObject.html#mxEventObject(java.lang.String)"><B>mxEventObject(String)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>Constructs a new event for the given name.
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html#mxEventObject(java.lang.String, java.lang.Object...)"><B>mxEventObject(String, Object...)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>Constructs a new event for the given name and properties.
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>mxEventSource</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Base class for objects that dispatch named events.<DT><A HREF="./com/mxgraph/util/mxEventSource.html#mxEventSource()"><B>mxEventSource()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Constructs a new event source using this as the source object.
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#mxEventSource(java.lang.Object)"><B>mxEventSource(Object)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Constructs a new event source for the given source object.
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><B>mxEventSource.mxIEventListener</B></A> - Interface in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Defines the requirements for an object that listens to an event source.<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout"><B>mxFastOrganicLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>Fast organic layout algorithm.<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#mxFastOrganicLayout(com.mxgraph.view.mxGraph)"><B>mxFastOrganicLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Constructs a new fast organic layout for the specified graph.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis"><B>mxFibonacciHeap</B></A> - Class in <A HREF="./com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A><DD>This class implements a priority queue.<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#mxFibonacciHeap()"><B>mxFibonacciHeap()</B></A> - 
    +Constructor for class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis"><B>mxFibonacciHeap.Node</B></A> - Class in <A HREF="./com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A><DD>Implements a node of the Fibonacci heap.<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.Node.html#mxFibonacciHeap.Node(java.lang.Object, double)"><B>mxFibonacciHeap.Node(Object, double)</B></A> - 
    +Constructor for class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>
    +<DD>Default constructor.
    +<DT><A HREF="./com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io"><B>mxGdCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Parses a GD .txt file and imports it in the given graph.<br/>
    + This class depends from the classes contained in
    + com.mxgraph.io.gd.<DT><A HREF="./com/mxgraph/io/mxGdCodec.html#mxGdCodec()"><B>mxGdCodec()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io">mxGdCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd"><B>mxGdDocument</B></A> - Class in <A HREF="./com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A><DD>This class is a representation of a GD file.<br/>
    + Allows access to the nodes and edges of the graph.<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.html#mxGdDocument()"><B>mxGdDocument()</B></A> - 
    +Constructor for class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd"><B>mxGdDocument.mxGDParseState</B></A> - Enum in <A HREF="./com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A><DD>Represents the different states in the parse of a file.<DT><A HREF="./com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd"><B>mxGdEdge</B></A> - Class in <A HREF="./com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A><DD>Represents an Edge entry in the file.<DT><A HREF="./com/mxgraph/io/gd/mxGdEdge.html#mxGdEdge(java.lang.String, java.lang.String)"><B>mxGdEdge(String, String)</B></A> - 
    +Constructor for class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd"><B>mxGdNode</B></A> - Class in <A HREF="./com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A><DD>Represents a Node entry in the file.<DT><A HREF="./com/mxgraph/io/gd/mxGdNode.html#mxGdNode(java.lang.String, com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)"><B>mxGdNode(String, mxPoint, mxPoint)</B></A> - 
    +Constructor for class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io"><B>mxGenericChangeCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Codec for mxChildChanges.<DT><A HREF="./com/mxgraph/io/mxGenericChangeCodec.html#mxGenericChangeCodec(java.lang.Object, java.lang.String)"><B>mxGenericChangeCodec(Object, String)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io">mxGenericChangeCodec</A>
    +<DD>Constructs a new model codec.
    +<DT><A HREF="./com/mxgraph/io/mxGenericChangeCodec.html#mxGenericChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map, java.lang.String)"><B>mxGenericChangeCodec(Object, String[], String[], Map&lt;String, String&gt;, String)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io">mxGenericChangeCodec</A>
    +<DD>Constructs a new model codec for the given arguments.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model"><B>mxGeometry</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>Represents the geometry of a cell.<DT><A HREF="./com/mxgraph/model/mxGeometry.html#mxGeometry()"><B>mxGeometry()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Constructs a new geometry at (0, 0) with the width and height set to 0.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#mxGeometry(double, double, double, double)"><B>mxGeometry(double, double, double, double)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Constructs a geometry using the given parameters.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view"><B>mxGraph</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Implements a graph object that allows to create diagrams from a graph model
    + and stylesheet.<DT><A HREF="./com/mxgraph/view/mxGraph.html#mxGraph()"><B>mxGraph()</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Constructs a new graph with an empty
    + <A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><CODE>mxGraphModel</CODE></A>.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.model.mxIGraphModel)"><B>mxGraph(mxIGraphModel)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Constructs a new graph for the specified model.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.view.mxStylesheet)"><B>mxGraph(mxStylesheet)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Constructs a new graph for the specified model.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#mxGraph(com.mxgraph.model.mxIGraphModel, com.mxgraph.view.mxStylesheet)"><B>mxGraph(mxIGraphModel, mxStylesheet)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Constructs a new graph for the specified model.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><B>mxGraph.mxICellVisitor</B></A> - Interface in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphAbstractHierarchyCell</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A><DD>An abstraction of an internal hierarchy node or edge<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#mxGraphAbstractHierarchyCell()"><B>mxGraphAbstractHierarchyCell()</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.html#mxGraphActions()"><B>mxGraphActions()</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util">mxGraphActions</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.DeleteAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.DeleteAction.html#mxGraphActions.DeleteAction(java.lang.String)"><B>mxGraphActions.DeleteAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DeleteAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.DrillAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.DrillAction.html#mxGraphActions.DrillAction(java.lang.String)"><B>mxGraphActions.DrillAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.DrillAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.EditAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.EditAction.html#mxGraphActions.EditAction(java.lang.String)"><B>mxGraphActions.EditAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.EditAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.FoldAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.FoldAction.html#mxGraphActions.FoldAction(java.lang.String)"><B>mxGraphActions.FoldAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.FoldAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.GroupAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.GroupAction.html#mxGraphActions.GroupAction(java.lang.String)"><B>mxGraphActions.GroupAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.GroupAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.LayerAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.LayerAction.html#mxGraphActions.LayerAction(java.lang.String)"><B>mxGraphActions.LayerAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.LayerAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.RemoveFromParentAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html#mxGraphActions.RemoveFromParentAction(java.lang.String)"><B>mxGraphActions.RemoveFromParentAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.RemoveFromParentAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.SelectAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.SelectAction.html#mxGraphActions.SelectAction(java.lang.String)"><B>mxGraphActions.SelectAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.SelectAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.UngroupAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.UngroupAction.html#mxGraphActions.UngroupAction(java.lang.String)"><B>mxGraphActions.UngroupAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UngroupAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.UpdateGroupBoundsAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html#mxGraphActions.UpdateGroupBoundsAction(java.lang.String)"><B>mxGraphActions.UpdateGroupBoundsAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.UpdateGroupBoundsAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.ZoomAction</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphActions.ZoomAction.html#mxGraphActions.ZoomAction(java.lang.String)"><B>mxGraphActions.ZoomAction(String)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util">mxGraphActions.ZoomAction</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis"><B>mxGraphAnalysis</B></A> - Class in <A HREF="./com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A><DD>A singleton class that provides algorithms for graphs.<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#mxGraphAnalysis()"><B>mxGraphAnalysis()</B></A> - 
    +Constructor for class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing"><B>mxGraphComponent</B></A> - Class in <A HREF="./com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A><DD>For setting the preferred size of the viewport for scrolling, use
    + mxGraph.setMinimumGraphSize.<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#mxGraphComponent(com.mxgraph.view.mxGraph)"><B>mxGraphComponent(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing"><B>mxGraphComponent.mxGraphControl</B></A> - Class in <A HREF="./com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#mxGraphComponent.mxGraphControl()"><B>mxGraphComponent.mxGraphControl()</B></A> - 
    +Constructor for class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing"><B>mxGraphComponent.mxMouseRedirector</B></A> - Class in <A HREF="./com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html#mxGraphComponent.mxMouseRedirector(com.mxgraph.swing.mxGraphComponent)"><B>mxGraphComponent.mxMouseRedirector(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing">mxGraphComponent.mxMouseRedirector</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler"><B>mxGraphHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#mxGraphHandler(com.mxgraph.swing.mxGraphComponent)"><B>mxGraphHandler(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyEdge</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A><DD>An abstraction of a hierarchical edge for the hierarchy layout<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#mxGraphHierarchyEdge(java.util.List)"><B>mxGraphHierarchyEdge(List&lt;Object&gt;)</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>Constructs a hierarchy edge
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyModel</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A><DD>Internal model of a hierarchical graph.<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#mxGraphHierarchyModel(com.mxgraph.layout.hierarchical.mxHierarchicalLayout, java.lang.Object[], java.util.List, java.lang.Object, boolean, boolean, boolean)"><B>mxGraphHierarchyModel(mxHierarchicalLayout, Object[], List&lt;Object&gt;, Object, boolean, boolean, boolean)</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Creates an internal ordered graph model using the vertices passed in.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyModel.CellVisitor</B></A> - Interface in <A HREF="./com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A><DD>Defines the interface that visitors use to perform operations upon the
    + graph information during depth first search (dfs) or other tree-traversal
    + strategies implemented by subclassers.<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyNode</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A><DD>An abstraction of an internal node in the hierarchy layout<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#mxGraphHierarchyNode(java.lang.Object)"><B>mxGraphHierarchyNode(Object)</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Constructs an internal node to represent the specified real graph cell
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyRank</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A><DD>An abstraction of a rank in the hierarchy layout.<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html#mxGraphHierarchyRank()"><B>mxGraphHierarchyRank()</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyRank</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><B>mxGraphics2DCanvas</B></A> - Class in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>An implementation of a canvas that uses Graphics2D for painting.<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#mxGraphics2DCanvas()"><B>mxGraphics2DCanvas()</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Constructs a new graphics canvas with an empty graphics object.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#mxGraphics2DCanvas(java.awt.Graphics2D)"><B>mxGraphics2DCanvas(Graphics2D)</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Constructs a new graphics canvas for the given graphics object.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas"><B>mxGraphicsCanvas2D</B></A> - Class in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>Used for exporting images.<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#mxGraphicsCanvas2D(java.awt.Graphics2D)"><B>mxGraphicsCanvas2D(Graphics2D)</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Constructs a new graphics export canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas"><B>mxGraphicsCanvas2D.CanvasState</B></A> - Class in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#mxGraphicsCanvas2D.CanvasState()"><B>mxGraphicsCanvas2D.CanvasState()</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><B>mxGraphLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>Abstract bass class for layouts<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#mxGraphLayout(com.mxgraph.view.mxGraph)"><B>mxGraphLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Constructs a new fast organic layout for the specified graph.
    +<DT><A HREF="./com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io"><B>mxGraphMlCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Parses a GraphML .graphml file and imports it in the given graph.<br/>
    + 
    + See wikipedia.org/wiki/GraphML for more on GraphML.<DT><A HREF="./com/mxgraph/io/mxGraphMlCodec.html#mxGraphMlCodec()"><B>mxGraphMlCodec()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io">mxGraphMlCodec</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlConstants</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>This class contains constants used in the Import of gml documents.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#mxGraphMlConstants()"><B>mxGraphMlConstants()</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlData</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>Represents a Data element in the GML Structure.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#mxGraphMlData(java.lang.String, java.lang.String, java.lang.String, com.mxgraph.io.graphml.mxGraphMlShapeEdge, com.mxgraph.io.graphml.mxGraphMlShapeNode)"><B>mxGraphMlData(String, String, String, mxGraphMlShapeEdge, mxGraphMlShapeNode)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>Construct a data with the params values.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#mxGraphMlData(org.w3c.dom.Element)"><B>mxGraphMlData(Element)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>Construct a data from one xml data element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#mxGraphMlData()"><B>mxGraphMlData()</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>Construct an empty data.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlEdge</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>Represents a Data element in the GML Structure.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#mxGraphMlEdge(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>mxGraphMlEdge(String, String, String, String)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>Construct an edge with source and target.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#mxGraphMlEdge(org.w3c.dom.Element)"><B>mxGraphMlEdge(Element)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>Construct an edge from a xml edge element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlGraph</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>Represents a Graph element in the GML Structure.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#mxGraphMlGraph(java.lang.String, java.lang.String)"><B>mxGraphMlGraph(String, String)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>Constructs a graph with id and edge default direction.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#mxGraphMlGraph()"><B>mxGraphMlGraph()</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>Constructs an empty graph.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#mxGraphMlGraph(org.w3c.dom.Element)"><B>mxGraphMlGraph(Element)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>Constructs a graph from a xml graph element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlKey</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>Represents a Key element in the GML Structure.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#mxGraphMlKey(java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyForValues, java.lang.String, com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)"><B>mxGraphMlKey(String, mxGraphMlKey.keyForValues, String, mxGraphMlKey.keyTypeValues)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>Construct a key with the given parameters.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#mxGraphMlKey(org.w3c.dom.Element)"><B>mxGraphMlKey(Element)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>Construct a key from a xml key element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml"><B>mxGraphMlKey.keyForValues</B></A> - Enum in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>Possibles values for the keyFor Attribute<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml"><B>mxGraphMlKey.keyTypeValues</B></A> - Enum in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>Possibles values for the keyType Attribute.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlKeyManager</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>This is a singleton class that contains a map with the key elements of the
    + document.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlNode</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>Represents a Data element in the GML Structure.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#mxGraphMlNode(java.lang.String, com.mxgraph.io.graphml.mxGraphMlData)"><B>mxGraphMlNode(String, mxGraphMlData)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>Construct a node with Id and one data element
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#mxGraphMlNode(org.w3c.dom.Element)"><B>mxGraphMlNode(Element)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>Construct a Node from a xml Node Element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlPort</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>Represents a Port element in the GML Structure.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html#mxGraphMlPort(java.lang.String)"><B>mxGraphMlPort(String)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>
    +<DD>Construct a Port with name.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html#mxGraphMlPort(org.w3c.dom.Element)"><B>mxGraphMlPort(Element)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>
    +<DD>Construct a Port from a xml port Element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlShapeEdge</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>This class represents the properties of a JGraph edge.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#mxGraphMlShapeEdge(java.lang.String, java.lang.String)"><B>mxGraphMlShapeEdge(String, String)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>Construct a Shape Edge with text and style.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#mxGraphMlShapeEdge(org.w3c.dom.Element)"><B>mxGraphMlShapeEdge(Element)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>Constructs a ShapeEdge from a xml shapeEdgeElement.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#mxGraphMlShapeEdge()"><B>mxGraphMlShapeEdge()</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>Construct an empty Shape Edge Element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlShapeNode</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#mxGraphMlShapeNode(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>mxGraphMlShapeNode(String, String, String, String, String)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>Construct a shape Node with the given parameters
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#mxGraphMlShapeNode()"><B>mxGraphMlShapeNode()</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>Construct an empty shape Node
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#mxGraphMlShapeNode(org.w3c.dom.Element)"><B>mxGraphMlShapeNode(Element)</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>Construct a Shape Node from a xml Shape Node Element.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlUtils</B></A> - Class in <A HREF="./com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A><DD>This class implements several GML utility methods.<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#mxGraphMlUtils()"><B>mxGraphMlUtils()</B></A> - 
    +Constructor for class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><B>mxGraphModel</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>Extends mxEventSource to implement a graph model.<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#mxGraphModel()"><B>mxGraphModel()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Constructs a new empty graph model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#mxGraphModel(java.lang.Object)"><B>mxGraphModel(Object)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Constructs a new graph model.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><B>mxGraphModel.Filter</B></A> - Interface in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxChildChange</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#mxGraphModel.mxChildChange()"><B>mxGraphModel.mxChildChange()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#mxGraphModel.mxChildChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object)"><B>mxGraphModel.mxChildChange(mxGraphModel, Object, Object)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#mxGraphModel.mxChildChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object, int)"><B>mxGraphModel.mxChildChange(mxGraphModel, Object, Object, int)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxCollapseChange</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#mxGraphModel.mxCollapseChange()"><B>mxGraphModel.mxCollapseChange()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#mxGraphModel.mxCollapseChange(com.mxgraph.model.mxGraphModel, java.lang.Object, boolean)"><B>mxGraphModel.mxCollapseChange(mxGraphModel, Object, boolean)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxGeometryChange</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#mxGraphModel.mxGeometryChange()"><B>mxGraphModel.mxGeometryChange()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#mxGraphModel.mxGeometryChange(com.mxgraph.model.mxGraphModel, java.lang.Object, com.mxgraph.model.mxGeometry)"><B>mxGraphModel.mxGeometryChange(mxGraphModel, Object, mxGeometry)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxRootChange</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html#mxGraphModel.mxRootChange()"><B>mxGraphModel.mxRootChange()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html#mxGraphModel.mxRootChange(com.mxgraph.model.mxGraphModel, java.lang.Object)"><B>mxGraphModel.mxRootChange(mxGraphModel, Object)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxStyleChange</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#mxGraphModel.mxStyleChange()"><B>mxGraphModel.mxStyleChange()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#mxGraphModel.mxStyleChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.String)"><B>mxGraphModel.mxStyleChange(mxGraphModel, Object, String)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxTerminalChange</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#mxGraphModel.mxTerminalChange()"><B>mxGraphModel.mxTerminalChange()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#mxGraphModel.mxTerminalChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object, boolean)"><B>mxGraphModel.mxTerminalChange(mxGraphModel, Object, Object, boolean)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxValueChange</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#mxGraphModel.mxValueChange()"><B>mxGraphModel.mxValueChange()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#mxGraphModel.mxValueChange(com.mxgraph.model.mxGraphModel, java.lang.Object, java.lang.Object)"><B>mxGraphModel.mxValueChange(mxGraphModel, Object, Object)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxVisibleChange</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#mxGraphModel.mxVisibleChange()"><B>mxGraphModel.mxVisibleChange()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#mxGraphModel.mxVisibleChange(com.mxgraph.model.mxGraphModel, java.lang.Object, boolean)"><B>mxGraphModel.mxVisibleChange(mxGraphModel, Object, boolean)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing"><B>mxGraphOutline</B></A> - Class in <A HREF="./com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A><DD>An outline view for a specific graph component.<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#mxGraphOutline(com.mxgraph.swing.mxGraphComponent)"><B>mxGraphOutline(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing"><B>mxGraphOutline.MouseTracker</B></A> - Class in <A HREF="./com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#mxGraphOutline.MouseTracker()"><B>mxGraphOutline.MouseTracker()</B></A> - 
    +Constructor for class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view"><B>mxGraphSelectionModel</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Implements the selection model for a graph.<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#mxGraphSelectionModel(com.mxgraph.view.mxGraph)"><B>mxGraphSelectionModel(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Constructs a new selection model for the specified graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view"><B>mxGraphSelectionModel.mxSelectionChange</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#mxGraphSelectionModel.mxSelectionChange(com.mxgraph.view.mxGraphSelectionModel, java.util.Collection, java.util.Collection)"><B>mxGraphSelectionModel.mxSelectionChange(mxGraphSelectionModel, Collection&lt;Object&gt;, Collection&lt;Object&gt;)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util"><B>mxGraphTransferable</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#mxGraphTransferable(java.lang.Object[], com.mxgraph.util.mxRectangle)"><B>mxGraphTransferable(Object[], mxRectangle)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html#mxGraphTransferable(java.lang.Object[], com.mxgraph.util.mxRectangle, javax.swing.ImageIcon)"><B>mxGraphTransferable(Object[], mxRectangle, ImageIcon)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">mxGraphTransferable</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler"><B>mxGraphTransferHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#mxGraphTransferHandler()"><B>mxGraphTransferHandler()</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view"><B>mxGraphView</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Implements a view for the graph.<DT><A HREF="./com/mxgraph/view/mxGraphView.html#mxGraphView(com.mxgraph.view.mxGraph)"><B>mxGraphView(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Constructs a new view for the given graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view"><B>mxGraphView.mxCurrentRootChange</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Action to change the current root in a view.<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#mxGraphView.mxCurrentRootChange(com.mxgraph.view.mxGraphView, java.lang.Object)"><B>mxGraphView.mxCurrentRootChange(mxGraphView, Object)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>Constructs a change of the current root in the given view.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader"><B>mxGraphViewImageReader</B></A> - Class in <A HREF="./com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A><DD>A converter that renders display XML data onto a graphics canvas.<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader()"><B>mxGraphViewImageReader()</B></A> - 
    +Constructor for class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Constructs a new reader with a transparent background.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader(java.awt.Color)"><B>mxGraphViewImageReader(Color)</B></A> - 
    +Constructor for class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Constructs a new reader with the given background color.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader(java.awt.Color, int)"><B>mxGraphViewImageReader(Color, int)</B></A> - 
    +Constructor for class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Constructs a new reader with a transparent background.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader(java.awt.Color, int, boolean)"><B>mxGraphViewImageReader(Color, int, boolean)</B></A> - 
    +Constructor for class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Constructs a new reader with a transparent background.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#mxGraphViewImageReader(java.awt.Color, int, boolean, boolean)"><B>mxGraphViewImageReader(Color, int, boolean, boolean)</B></A> - 
    +Constructor for class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>Constructs a new reader with a transparent background.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader"><B>mxGraphViewReader</B></A> - Class in <A HREF="./com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A><DD>An abstract converter that renders display XML data onto a canvas.<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#mxGraphViewReader()"><B>mxGraphViewReader()</B></A> - 
    +Constructor for class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape"><B>mxHexagonShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxHexagonShape.html#mxHexagonShape()"><B>mxHexagonShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape">mxHexagonShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical"><B>mxHierarchicalLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A><DD>The top level compound layout of the hierarchical layout.<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#mxHierarchicalLayout(com.mxgraph.view.mxGraph)"><B>mxHierarchicalLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Constructs a hierarchical layout
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#mxHierarchicalLayout(com.mxgraph.view.mxGraph, int)"><B>mxHierarchicalLayout(mxGraph, int)</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Constructs a hierarchical layout
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><B>mxHierarchicalLayoutStage</B></A> - Interface in <A HREF="./com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A><DD>The specific layout interface for hierarchical layouts.<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas"><B>mxHtmlCanvas</B></A> - Class in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>An implementation of a canvas that uses HTML for painting.<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#mxHtmlCanvas()"><B>mxHtmlCanvas()</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>Constructs a new HTML canvas for the specified dimension and scale.
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#mxHtmlCanvas(org.w3c.dom.Document)"><B>mxHtmlCanvas(Document)</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>Constructs a new HTML canvas for the specified bounds, scale and
    + background color.
    +<DT><A HREF="./com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape"><B>mxHtmlTextShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>To set global CSS for all HTML labels, use the following code:<DT><A HREF="./com/mxgraph/shape/mxHtmlTextShape.html#mxHtmlTextShape()"><B>mxHtmlTextShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><B>mxICanvas</B></A> - Interface in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>Defines the requirements for a canvas that paints the vertices and edges of
    + a graph.<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><B>mxICanvas2D</B></A> - Interface in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>Requirements for implementing technologies:
    + 
    + - Path rendering (move, line, quad, curve, arc)
    + - Images, flip v/h, aspect, alpha (PNG, JPG, GIF)
    + - Linear gradients (in all four directions)
    + - Transparency, fill and stroke
    + - Rotation, flip v/h
    + - Font rendering
    + - Dash patterns
    + - Clipping by path (not just rectangle)
    + - Alpha gradients (for glass effect)
    + - Encode result as image (PNG, JPG)<DT><A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><B>mxICell</B></A> - Interface in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>Defines the requirements for a cell that can be used in an mxGraphModel.<DT><A HREF="./com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><B>mxICellEditor</B></A> - Interface in <A HREF="./com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><B>mxICellOverlay</B></A> - Interface in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><B>mxICostFunction</B></A> - Interface in <A HREF="./com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A><DD>The cost function takes a cell and returns it's cost as a double.<DT><A HREF="./com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><B>mxIGraphLayout</B></A> - Interface in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>Defines the requirements for an object that implements a graph layout.<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><B>mxIGraphModel</B></A> - Interface in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>Defines the requirements for a graph model to be used with mxGraph.<DT><A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model"><B>mxIGraphModel.mxAtomicGraphModelChange</B></A> - Class in <A HREF="./com/mxgraph/model/package-summary.html">com.mxgraph.model</A><DD>Defines the interface for an atomic change of the graph model.<DT><A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#mxIGraphModel.mxAtomicGraphModelChange()"><B>mxIGraphModel.mxAtomicGraphModelChange()</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>
    +<DD>Constructs an empty atomic graph model change.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#mxIGraphModel.mxAtomicGraphModelChange(com.mxgraph.model.mxIGraphModel)"><B>mxIGraphModel.mxAtomicGraphModelChange(mxIGraphModel)</B></A> - 
    +Constructor for class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>
    +<DD>Constructs an atomic graph model change for the given model.
    +<DT><A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util"><B>mxImage</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Implements a 2-dimensional point with double precision coordinates.<DT><A HREF="./com/mxgraph/util/mxImage.html#mxImage(java.lang.String, int, int)"><B>mxImage(String, int, int)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>Constructs a new point at (0, 0).
    +<DT><A HREF="./com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util"><B>mxImageBundle</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Maps from keys to base64 encoded images or file locations.<DT><A HREF="./com/mxgraph/util/mxImageBundle.html#mxImageBundle()"><B>mxImageBundle()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas"><B>mxImageCanvas</B></A> - Class in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>An implementation of a canvas that uses Graphics2D for painting.<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#mxImageCanvas(com.mxgraph.canvas.mxGraphics2DCanvas, int, int, java.awt.Color, boolean)"><B>mxImageCanvas(mxGraphics2DCanvas, int, int, Color, boolean)</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape"><B>mxImageShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>A rectangular shape that contains a single image<DT><A HREF="./com/mxgraph/shape/mxImageShape.html#mxImageShape()"><B>mxImageShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><B>mxIMarker</B></A> - Interface in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler"><B>mxInsertHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#mxInsertHandler(com.mxgraph.swing.mxGraphComponent, java.lang.String)"><B>mxInsertHandler(mxGraphComponent, String)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view"><B>mxInteractiveCanvas</B></A> - Class in <A HREF="./com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#mxInteractiveCanvas()"><B>mxInteractiveCanvas()</B></A> - 
    +Constructor for class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#mxInteractiveCanvas(java.awt.image.ImageObserver)"><B>mxInteractiveCanvas(ImageObserver)</B></A> - 
    +Constructor for class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><B>mxIShape</B></A> - Interface in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><B>mxITextShape</B></A> - Interface in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler"><B>mxKeyboardHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxKeyboardHandler.html#mxKeyboardHandler(com.mxgraph.swing.mxGraphComponent)"><B>mxKeyboardHandler(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler">mxKeyboardHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape"><B>mxLabelShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxLabelShape.html#mxLabelShape()"><B>mxLabelShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view"><B>mxLayoutManager</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Implements a layout manager that updates the layout for a given transaction.<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#mxLayoutManager(com.mxgraph.view.mxGraph)"><B>mxLayoutManager(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util"><B>mxLightweightLabel</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#mxLightweightLabel()"><B>mxLightweightLabel()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util"><B>mxLine</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Implements a line with double precision coordinates.<DT><A HREF="./com/mxgraph/util/mxLine.html#mxLine(com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)"><B>mxLine(mxPoint, mxPoint)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>
    +<DD>Creates a new line
    +<DT><A HREF="./com/mxgraph/util/mxLine.html#mxLine(double, double, com.mxgraph.util.mxPoint)"><B>mxLine(double, double, mxPoint)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>
    +<DD>Creates a new line
    +<DT><A HREF="./com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape"><B>mxLineShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxLineShape.html#mxLineShape()"><B>mxLineShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape">mxLineShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape"><B>mxMarkerRegistry</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxMarkerRegistry.html#mxMarkerRegistry()"><B>mxMarkerRegistry()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape">mxMarkerRegistry</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxMedianHybridCrossingReduction</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A><DD>Performs a vertex ordering within ranks as described by Gansner et al 1993<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#mxMedianHybridCrossingReduction(com.mxgraph.layout.hierarchical.mxHierarchicalLayout)"><B>mxMedianHybridCrossingReduction(mxHierarchicalLayout)</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<DD>Constructor that has the roots specified
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxMedianHybridCrossingReduction.MedianCellSorter</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A><DD>A utility class used to track cells whilst sorting occurs on the median
    + values.<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html#mxMedianHybridCrossingReduction.MedianCellSorter()"><B>mxMedianHybridCrossingReduction.MedianCellSorter()</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction.MedianCellSorter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxMinimumCycleRemover</B></A> - Class in <A HREF="./com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A><DD>An implementation of the first stage of the Sugiyama layout.<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html#mxMinimumCycleRemover(com.mxgraph.layout.hierarchical.mxHierarchicalLayout)"><B>mxMinimumCycleRemover(mxHierarchicalLayout)</B></A> - 
    +Constructor for class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMinimumCycleRemover</A>
    +<DD>Constructor that has the roots specified
    +<DT><A HREF="./com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io"><B>mxModelCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Codec for mxGraphModels.<DT><A HREF="./com/mxgraph/io/mxModelCodec.html#mxModelCodec()"><B>mxModelCodec()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io">mxModelCodec</A>
    +<DD>Constructs a new model codec.
    +<DT><A HREF="./com/mxgraph/io/mxModelCodec.html#mxModelCodec(java.lang.Object)"><B>mxModelCodec(Object)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io">mxModelCodec</A>
    +<DD>Constructs a new model codec for the given template.
    +<DT><A HREF="./com/mxgraph/io/mxModelCodec.html#mxModelCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><B>mxModelCodec(Object, String[], String[], Map&lt;String, String&gt;)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io">mxModelCodec</A>
    +<DD>Constructs a new model codec for the given arguments.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util"><B>mxMorphing</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>Provides animation effects.<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#mxMorphing(com.mxgraph.swing.mxGraphComponent)"><B>mxMorphing(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Constructs a new morphing instance for the given graph.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#mxMorphing(com.mxgraph.swing.mxGraphComponent, int, double, int)"><B>mxMorphing(mxGraphComponent, int, double, int)</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Constructs a new morphing instance for the given graph.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><B>mxMouseAdapter</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html#mxMouseAdapter()"><B>mxMouseAdapter()</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util">mxMouseAdapter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler"><B>mxMovePreview</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>Connection handler creates new connections between cells.<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#mxMovePreview(com.mxgraph.swing.mxGraphComponent)"><B>mxMovePreview(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>Constructs a new rubberband selection for the given graph component.
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view"><B>mxMultiplicity</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#mxMultiplicity(boolean, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.util.Collection, java.lang.String, java.lang.String, boolean)"><B>mxMultiplicity(boolean, String, String, String, int, String, Collection&lt;String&gt;, String, String, boolean)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io"><B>mxObjectCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Generic codec for Java objects.<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#mxObjectCodec(java.lang.Object)"><B>mxObjectCodec(Object)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Constructs a new codec for the specified template object.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#mxObjectCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><B>mxObjectCodec(Object, String[], String[], Map&lt;String, String&gt;)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Constructs a new codec for the specified template object.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout"><B>mxOrganicLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>An implementation of a simulated annealing layout, based on "Drawing Graphs
    + Nicely Using Simulated Annealing" by Davidson and Harel (1996).<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#mxOrganicLayout(com.mxgraph.view.mxGraph)"><B>mxOrganicLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Constructor for mxOrganicLayout.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#mxOrganicLayout(com.mxgraph.view.mxGraph, java.awt.geom.Rectangle2D)"><B>mxOrganicLayout(mxGraph, Rectangle2D)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Constructor for mxOrganicLayout.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout"><B>mxOrganicLayout.CellWrapper</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>Internal representation of a node or edge that holds cached information
    + to enable the layout to perform more quickly and to simplify the code<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#mxOrganicLayout.CellWrapper(java.lang.Object)"><B>mxOrganicLayout.CellWrapper(Object)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>Constructs a new CellWrapper
    +<DT><A HREF="./com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal"><B>mxOrthogonalLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#mxOrthogonalLayout(com.mxgraph.view.mxGraph)"><B>mxOrthogonalLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.orthogonal.<A HREF="./com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxOrthogonalModel</B></A> - Class in <A HREF="./com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A><DD>A custom graph model<DT><A HREF="./com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html#mxOrthogonalModel(com.mxgraph.view.mxGraph)"><B>mxOrthogonalModel(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.orthogonal.model.<A HREF="./com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model">mxOrthogonalModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler"><B>mxPanningHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#mxPanningHandler(com.mxgraph.swing.mxGraphComponent)"><B>mxPanningHandler(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout"><B>mxParallelEdgeLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html#mxParallelEdgeLayout(com.mxgraph.view.mxGraph)"><B>mxParallelEdgeLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html#mxParallelEdgeLayout(com.mxgraph.view.mxGraph, int)"><B>mxParallelEdgeLayout(mxGraph, int)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout"><B>mxPartitionLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph)"><B>mxPartitionLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph, boolean)"><B>mxPartitionLayout(mxGraph, boolean)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph, boolean, int)"><B>mxPartitionLayout(mxGraph, boolean, int)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#mxPartitionLayout(com.mxgraph.view.mxGraph, boolean, int, int)"><B>mxPartitionLayout(mxGraph, boolean, int, int)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view"><B>mxPerimeter</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Provides various perimeter functions to be used in a style
    + as the value of mxConstants.STYLE_PERIMETER.<DT><A HREF="./com/mxgraph/view/mxPerimeter.html#mxPerimeter()"><B>mxPerimeter()</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view">mxPerimeter</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><B>mxPerimeter.mxPerimeterFunction</B></A> - Interface in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Defines the requirements for a perimeter function.<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam</B></A> - Class in <A HREF="./com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A><DD>An instance of <code>ImageEncodeParam</code> for encoding images in
    + the PNG format.<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#mxPngEncodeParam()"><B>mxPngEncodeParam()</B></A> - 
    +Constructor for class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam.Gray</B></A> - Class in <A HREF="./com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#mxPngEncodeParam.Gray()"><B>mxPngEncodeParam.Gray()</B></A> - 
    +Constructor for class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Constructs an instance of <code>PNGEncodeParam.Gray</code>.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam.Palette</B></A> - Class in <A HREF="./com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#mxPngEncodeParam.Palette()"><B>mxPngEncodeParam.Palette()</B></A> - 
    +Constructor for class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Constructs an instance of <code>PNGEncodeParam.Palette</code>.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam.RGB</B></A> - Class in <A HREF="./com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html#mxPngEncodeParam.RGB()"><B>mxPngEncodeParam.RGB()</B></A> - 
    +Constructor for class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A>
    +<DD>Constructs an instance of <code>PNGEncodeParam.RGB</code>.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png"><B>mxPngImageEncoder</B></A> - Class in <A HREF="./com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A><DD>An ImageEncoder for the PNG file format.<DT><A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html#mxPngImageEncoder(java.io.OutputStream, com.mxgraph.util.png.mxPngEncodeParam)"><B>mxPngImageEncoder(OutputStream, mxPngEncodeParam)</B></A> - 
    +Constructor for class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png">mxPngImageEncoder</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png"><B>mxPngSuggestedPaletteEntry</B></A> - Class in <A HREF="./com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A><DD>A class representing the fields of a PNG suggested palette entry.<DT><A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#mxPngSuggestedPaletteEntry()"><B>mxPngSuggestedPaletteEntry()</B></A> - 
    +Constructor for class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png"><B>mxPngTextDecoder</B></A> - Class in <A HREF="./com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A><DD>Utility class to extract the compression text portion of a PNG<DT><A HREF="./com/mxgraph/util/png/mxPngTextDecoder.html#mxPngTextDecoder()"><B>mxPngTextDecoder()</B></A> - 
    +Constructor for class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png">mxPngTextDecoder</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><B>mxPoint</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Implements a 2-dimensional point with double precision coordinates.<DT><A HREF="./com/mxgraph/util/mxPoint.html#mxPoint()"><B>mxPoint()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Constructs a new point at (0, 0).
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#mxPoint(java.awt.geom.Point2D)"><B>mxPoint(Point2D)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Constructs a new point at the location of the given point.
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#mxPoint(com.mxgraph.util.mxPoint)"><B>mxPoint(mxPoint)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Constructs a new point at the location of the given point.
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#mxPoint(double, double)"><B>mxPoint(double, double)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Constructs a new point at (x, y).
    +<DT><A HREF="./com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxPointPair</B></A> - Class in <A HREF="./com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/orthogonal/model/mxPointPair.html#mxPointPair()"><B>mxPointPair()</B></A> - 
    +Constructor for class com.mxgraph.layout.orthogonal.model.<A HREF="./com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model">mxPointPair</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxPointSequence</B></A> - Class in <A HREF="./com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/orthogonal/model/mxPointSequence.html#mxPointSequence()"><B>mxPointSequence()</B></A> - 
    +Constructor for class com.mxgraph.layout.orthogonal.model.<A HREF="./com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model">mxPointSequence</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><B>mxRectangle</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Implements a 2-dimensional rectangle with double precision coordinates.<DT><A HREF="./com/mxgraph/util/mxRectangle.html#mxRectangle()"><B>mxRectangle()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Constructs a new rectangle at (0, 0) with the width and height set to 0.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#mxRectangle(java.awt.geom.Rectangle2D)"><B>mxRectangle(Rectangle2D)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Constructs a copy of the given rectangle.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#mxRectangle(com.mxgraph.util.mxRectangle)"><B>mxRectangle(mxRectangle)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Constructs a copy of the given rectangle.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#mxRectangle(double, double, double, double)"><B>mxRectangle(double, double, double, double)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Constructs a rectangle using the given parameters.
    +<DT><A HREF="./com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape"><B>mxRectangleShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxRectangleShape.html#mxRectangleShape()"><B>mxRectangleShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util"><B>mxResources</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/mxResources.html#mxResources()"><B>mxResources()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape"><B>mxRhombusShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxRhombusShape.html#mxRhombusShape()"><B>mxRhombusShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape">mxRhombusShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io"><B>mxRootChangeCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Codec for mxChildChanges.<DT><A HREF="./com/mxgraph/io/mxRootChangeCodec.html#mxRootChangeCodec()"><B>mxRootChangeCodec()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io">mxRootChangeCodec</A>
    +<DD>Constructs a new model codec.
    +<DT><A HREF="./com/mxgraph/io/mxRootChangeCodec.html#mxRootChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><B>mxRootChangeCodec(Object, String[], String[], Map&lt;String, String&gt;)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io">mxRootChangeCodec</A>
    +<DD>Constructs a new model codec for the given arguments.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler"><B>mxRotationHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>Placeholder for rotation handler<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#mxRotationHandler(com.mxgraph.swing.mxGraphComponent)"><B>mxRotationHandler(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>Constructs a new rotation handler.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler"><B>mxRubberband</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>Implements a rubberband selection.<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#mxRubberband(com.mxgraph.swing.mxGraphComponent)"><B>mxRubberband(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Constructs a new rubberband selection for the given graph component.
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader"><B>mxSaxOutputHandler</B></A> - Class in <A HREF="./com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A><DD>XMLReader reader = SAXParserFactory.newInstance().newSAXParser()
    +                        .getXMLReader();
    +        reader.setContentHandler(new mxSaxExportHandler(
    +                        new mxGraphicsExportCanvas(g2)));
    +        reader.parse(new InputSource(new StringReader(xml)));<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html#mxSaxOutputHandler(com.mxgraph.canvas.mxICanvas2D)"><B>mxSaxOutputHandler(mxICanvas2D)</B></A> - 
    +Constructor for class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader"><B>mxSaxOutputHandler.IElementHandler</B></A> - Interface in <A HREF="./com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxSegment</B></A> - Class in <A HREF="./com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/orthogonal/model/mxSegment.html#mxSegment()"><B>mxSegment()</B></A> - 
    +Constructor for class com.mxgraph.layout.orthogonal.model.<A HREF="./com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model">mxSegment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler"><B>mxSelectionCellsHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#mxSelectionCellsHandler(com.mxgraph.swing.mxGraphComponent)"><B>mxSelectionCellsHandler(mxGraphComponent)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing"><B>mxSession</B></A> - Class in <A HREF="./com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A><DD>Implements a session that may be attached to a shared diagram.<DT><A HREF="./com/mxgraph/sharing/mxSession.html#mxSession(java.lang.String, com.mxgraph.sharing.mxSharedState)"><B>mxSession(String, mxSharedState)</B></A> - 
    +Constructor for class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Constructs a new session with the given ID.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing"><B>mxSharedGraphModel</B></A> - Class in <A HREF="./com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A><DD>Implements a diagram that may be shared among multiple sessions.<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#mxSharedGraphModel(com.mxgraph.model.mxGraphModel)"><B>mxSharedGraphModel(mxGraphModel)</B></A> - 
    +Constructor for class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>Constructs a new diagram with the given model.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing"><B>mxSharedState</B></A> - Class in <A HREF="./com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A><DD>Implements a diagram that may be shared among multiple sessions.<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#mxSharedState(java.lang.String)"><B>mxSharedState(String)</B></A> - 
    +Constructor for class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Constructs a new diagram with the given state.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing"><B>mxSharedState.mxDiagramChangeListener</B></A> - Interface in <A HREF="./com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A><DD>Defines the requirements for an object that listens to changes on the
    + shared diagram.<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view"><B>mxSpaceManager</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#mxSpaceManager(com.mxgraph.view.mxGraph)"><B>mxSpaceManager(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util"><B>mxSpline</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/util/mxSpline.html#mxSpline(java.util.List)"><B>mxSpline(List&lt;mxPoint&gt;)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util"><B>mxSpline1D</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>One dimension of a spline curve<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#mxSpline1D(double[], double[])"><B>mxSpline1D(double[], double[])</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>Creates a new Spline.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout"><B>mxStackLayout</B></A> - Class in <A HREF="./com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph)"><B>mxStackLayout(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph, boolean)"><B>mxStackLayout(mxGraph, boolean)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph, boolean, int)"><B>mxStackLayout(mxGraph, boolean, int)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#mxStackLayout(com.mxgraph.view.mxGraph, boolean, int, int, int, int)"><B>mxStackLayout(mxGraph, boolean, int, int, int, int)</B></A> - 
    +Constructor for class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Constructs a new stack layout layout for the specified graph,
    + spacing, orientation and offset.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape"><B>mxStencil</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>Implements a stencil for the given XML definition.<DT><A HREF="./com/mxgraph/shape/mxStencil.html#mxStencil(org.w3c.dom.Element)"><B>mxStencil(Element)</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Constructs a new stencil for the given mxGraph shape description.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape"><B>mxStencilRegistry</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxStencilRegistry.html#mxStencilRegistry()"><B>mxStencilRegistry()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape">mxStencilRegistry</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape"><B>mxStencilShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>Stencil shape drawing that takes an XML definition of the shape and renders
    + it.<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#mxStencilShape()"><B>mxStencilShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#mxStencilShape(java.lang.String)"><B>mxStencilShape(String)</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>Constructs a new stencil for the given Dia shape description.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#mxStencilShape(org.w3c.dom.Document)"><B>mxStencilShape(Document)</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape"><B>mxStencilShape.svgShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#mxStencilShape.svgShape(java.awt.Shape, java.util.Map)"><B>mxStencilShape.svgShape(Shape, Map&lt;String, Object&gt;)</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view"><B>mxStyleRegistry</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Singleton class that acts as a global converter from string to object values
    + in a style.<DT><A HREF="./com/mxgraph/view/mxStyleRegistry.html#mxStyleRegistry()"><B>mxStyleRegistry()</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view">mxStyleRegistry</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view"><B>mxStylesheet</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Defines the appearance of the cells in a graph.<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#mxStylesheet()"><B>mxStylesheet()</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Constructs a new stylesheet and assigns default styles.
    +<DT><A HREF="./com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io"><B>mxStylesheetCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Codec for mxStylesheets.<DT><A HREF="./com/mxgraph/io/mxStylesheetCodec.html#mxStylesheetCodec()"><B>mxStylesheetCodec()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A>
    +<DD>Constructs a new model codec.
    +<DT><A HREF="./com/mxgraph/io/mxStylesheetCodec.html#mxStylesheetCodec(java.lang.Object)"><B>mxStylesheetCodec(Object)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A>
    +<DD>Constructs a new stylesheet codec for the given template.
    +<DT><A HREF="./com/mxgraph/io/mxStylesheetCodec.html#mxStylesheetCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><B>mxStylesheetCodec(Object, String[], String[], Map&lt;String, String&gt;)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io">mxStylesheetCodec</A>
    +<DD>Constructs a new model codec for the given arguments.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util"><B>mxStyleUtils</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Contains various style helper methods for use with mxGraph.<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#mxStyleUtils()"><B>mxStyleUtils()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas"><B>mxSvgCanvas</B></A> - Class in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>An implementation of a canvas that uses SVG for painting.<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#mxSvgCanvas()"><B>mxSvgCanvas()</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Constructs a new SVG canvas for the specified dimension and scale.
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#mxSvgCanvas(org.w3c.dom.Document)"><B>mxSvgCanvas(Document)</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>Constructs a new SVG canvas for the specified bounds, scale and
    + background color.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view"><B>mxSwimlaneManager</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>Manager for swimlanes and nested swimlanes that sets the size of newly added
    + swimlanes to that of their siblings, and propagates changes to the size of a
    + swimlane to its siblings, if siblings is true, and its ancestors, if
    + bubbling is true.<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#mxSwimlaneManager(com.mxgraph.view.mxGraph)"><B>mxSwimlaneManager(mxGraph)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape"><B>mxSwimlaneShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxSwimlaneShape.html#mxSwimlaneShape()"><B>mxSwimlaneShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape">mxSwimlaneShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util"><B>mxSwingConstants</B></A> - Class in <A HREF="./com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#mxSwingConstants()"><B>mxSwingConstants()</B></A> - 
    +Constructor for class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view"><B>mxTemporaryCellStates</B></A> - Class in <A HREF="./com/mxgraph/view/package-summary.html">com.mxgraph.view</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/view/mxTemporaryCellStates.html#mxTemporaryCellStates(com.mxgraph.view.mxGraphView)"><B>mxTemporaryCellStates(mxGraphView)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A>
    +<DD>Constructs a new temporary cell states instance.
    +<DT><A HREF="./com/mxgraph/view/mxTemporaryCellStates.html#mxTemporaryCellStates(com.mxgraph.view.mxGraphView, double)"><B>mxTemporaryCellStates(mxGraphView, double)</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A>
    +<DD>Constructs a new temporary cell states instance.
    +<DT><A HREF="./com/mxgraph/view/mxTemporaryCellStates.html#mxTemporaryCellStates(com.mxgraph.view.mxGraphView, double, java.lang.Object[])"><B>mxTemporaryCellStates(mxGraphView, double, Object[])</B></A> - 
    +Constructor for class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A>
    +<DD>Constructs a new temporary cell states instance.
    +<DT><A HREF="./com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io"><B>mxTerminalChangeCodec</B></A> - Class in <A HREF="./com/mxgraph/io/package-summary.html">com.mxgraph.io</A><DD>Codec for mxChildChanges.<DT><A HREF="./com/mxgraph/io/mxTerminalChangeCodec.html#mxTerminalChangeCodec()"><B>mxTerminalChangeCodec()</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io">mxTerminalChangeCodec</A>
    +<DD>Constructs a new model codec.
    +<DT><A HREF="./com/mxgraph/io/mxTerminalChangeCodec.html#mxTerminalChangeCodec(java.lang.Object, java.lang.String[], java.lang.String[], java.util.Map)"><B>mxTerminalChangeCodec(Object, String[], String[], Map&lt;String, String&gt;)</B></A> - 
    +Constructor for class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io">mxTerminalChangeCodec</A>
    +<DD>Constructs a new model codec for the given arguments.
    +<DT><A HREF="./com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape"><B>mxTriangleShape</B></A> - Class in <A HREF="./com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/shape/mxTriangleShape.html#mxTriangleShape()"><B>mxTriangleShape()</B></A> - 
    +Constructor for class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape">mxTriangleShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util"><B>mxUndoableEdit</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Implements a 2-dimensional rectangle with double precision coordinates.<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#mxUndoableEdit(java.lang.Object)"><B>mxUndoableEdit(Object)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Constructs a new undoable edit for the given source.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#mxUndoableEdit(java.lang.Object, boolean)"><B>mxUndoableEdit(Object, boolean)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Constructs a new undoable edit for the given source.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><B>mxUndoableEdit.mxUndoableChange</B></A> - Interface in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Defines the requirements for an undoable change.<DT><A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util"><B>mxUndoManager</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Implements an undo history.<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#mxUndoManager()"><B>mxUndoManager()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Constructs a new undo manager with a default history size.
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#mxUndoManager(int)"><B>mxUndoManager(int)</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Constructs a new undo manager for the specified size.
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis"><B>mxUnionFind</B></A> - Class in <A HREF="./com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A><DD>Implements a union find structure that uses union by rank and path
    + compression.<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.html#mxUnionFind(java.lang.Object[])"><B>mxUnionFind(Object[])</B></A> - 
    +Constructor for class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A>
    +<DD>Constructs a union find structure and initializes it with the specified
    + elements.
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis"><B>mxUnionFind.Node</B></A> - Class in <A HREF="./com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A><DD>A class that defines the identity of a set.<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html#mxUnionFind.Node()"><B>mxUnionFind.Node()</B></A> - 
    +Constructor for class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util"><B>mxUtils</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Contains various helper methods for use with mxGraph.<DT><A HREF="./com/mxgraph/util/mxUtils.html#mxUtils()"><B>mxUtils()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler"><B>mxVertexHandler</B></A> - Class in <A HREF="./com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A><DD>&nbsp;<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#mxVertexHandler(com.mxgraph.swing.mxGraphComponent, com.mxgraph.view.mxCellState)"><B>mxVertexHandler(mxGraphComponent, mxCellState)</B></A> - 
    +Constructor for class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas"><B>mxVmlCanvas</B></A> - Class in <A HREF="./com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A><DD>An implementation of a canvas that uses VML for painting.<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#mxVmlCanvas()"><B>mxVmlCanvas()</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>Constructs a new VML canvas for the specified dimension and scale.
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#mxVmlCanvas(org.w3c.dom.Document)"><B>mxVmlCanvas(Document)</B></A> - 
    +Constructor for class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>Constructs a new VML canvas for the specified bounds, scale and
    + background color.
    +<DT><A HREF="./com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util"><B>mxXmlUtils</B></A> - Class in <A HREF="./com/mxgraph/util/package-summary.html">com.mxgraph.util</A><DD>Contains various XML helper methods for use with mxGraph.<DT><A HREF="./com/mxgraph/util/mxXmlUtils.html#mxXmlUtils()"><B>mxXmlUtils()</B></A> - 
    +Constructor for class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util">mxXmlUtils</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_N_"><!-- --></A><H2>
    +<B>N</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#name"><B>name</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html#name"><B>name</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>Holds the name of the event.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#name"><B>name</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>
    +<DD>The name of the entry.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#neighbours"><B>neighbours</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Local copy of cell neighbours.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html#nestedBestRanks"><B>nestedBestRanks</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage">mxMedianHybridCrossingReduction</A>
    +<DD>Stores each rank as a collection of cells in the best order found for
    + each layer so far
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#newPath"><B>newPath</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>Is the current path a new one?
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polyline.html#next"><B>next</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polyline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#next"><B>next</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#next()"><B>next()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#next"><B>next</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>The index of the next character.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#nextId"><B>nextId</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Specifies the next Id to be created.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#nextLayerConnectedCache"><B>nextLayerConnectedCache</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>A store of connections to the layer above for speed
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#nextLayerConnectedCells"><B>nextLayerConnectedCells</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>A cached version of the cells this cell connects to on the next layer up
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#NODE"><B>NODE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#nodeDistance"><B>nodeDistance</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Holds the nodeDistance.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#nodeDistributionCostFactor"><B>nodeDistributionCostFactor</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Cost factor applied to energy calculations involving the general node
    + distribution of the graph.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#nodeListHasTag(org.w3c.dom.NodeList, java.lang.String)"><B>nodeListHasTag(NodeList, String)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>Checks if the NodeList has a Node with name = tag.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#nodeListTag(org.w3c.dom.NodeList, java.lang.String)"><B>nodeListTag(NodeList, String)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>Returns the first Element that has name = tag in Node List.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html#nodeListTags(org.w3c.dom.NodeList, java.lang.String)"><B>nodeListTags(NodeList, String)</B></A> - 
    +Static method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml">mxGraphMlUtils</A>
    +<DD>Returns a list with the elements included in the Node List that have name = tag.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#nodes"><B>nodes</B></A> - 
    +Variable in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Maps from elements to nodes
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.html#nodes"><B>nodes</B></A> - 
    +Variable in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A>
    +<DD>Maps from elements to nodes
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#NONE"><B>NONE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the value for none.
    +<DT><A HREF="./com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg"><B>NormalizingReader</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class represents a reader which normalizes the line break: \n,
    + \r, \r\n are replaced by \n.<DT><A HREF="./com/mxgraph/util/svg/NormalizingReader.html#NormalizingReader()"><B>NormalizingReader()</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#NOTIFY"><B>NOTIFY</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>Holds the name for the norify event.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#NS_SVG"><B>NS_SVG</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the SVG namespace.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#NS_XHTML"><B>NS_XHTML</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the XHTML namespace.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#NS_XLINK"><B>NS_XLINK</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the XLink namespace.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#nudge"><B>nudge</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.WeightedCellSorter</A>
    +<DD>Whether or not to flip equal weight values.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#nudge"><B>nudge</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.WeightedCellSorter</A>
    +<DD>Whether or not to flip equal weight values.
    +<DT><A HREF="./com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg"><B>NumberParser</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class represents a parser with support for numbers.<DT><A HREF="./com/mxgraph/util/svg/NumberParser.html#NumberParser()"><B>NumberParser()</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_O_"><!-- --></A><H2>
    +<B>O</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#objects"><B>objects</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Maps from IDs to objects.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#offset(double, double, double, double, double, double)"><B>offset(double, double, double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#offset"><B>offset</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Holds the offset of the label for edges.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#offset"><B>offset</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#offsetX"><B>offsetX</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#offsetY"><B>offsetY</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxTemporaryCellStates.html#oldBounds"><B>oldBounds</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxTemporaryCellStates.html#oldScale"><B>oldScale</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxTemporaryCellStates.html#oldStates"><B>oldStates</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#opacity"><B>opacity</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#ORDER_CELLS"><B>ORDER_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#orderCells(boolean)"><B>orderCells(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Moves the selection cells to the front or back.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#orderCells(boolean, java.lang.Object[])"><B>orderCells(boolean, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Moves the given cells to the front or back.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#orientation"><B>orientation</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>The position of the root node(s) relative to the laid out graph in.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#orientation"><B>orientation</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The position of the root ( start ) node(s) relative to the rest of the
    + laid out graph
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#origin"><B>origin</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Holds the origin for all child cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#origin"><B>origin</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Holds the current automatic origin.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#originalCells"><B>originalCells</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Reference to the original cells for removal after a move.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#origins"><B>origins</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Maps from cells to origins.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#orthBuffer"><B>orthBuffer</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#orthConnector"><B>orthConnector</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>An orthogonal connector that avoids connecting vertices and 
    + respects port constraints
    +<DT><A HREF="./com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#orthModel"><B>orthModel</B></A> - 
    +Variable in class com.mxgraph.layout.orthogonal.<A HREF="./com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#outlineBorder"><B>outlineBorder</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Not yet implemented.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html#output"><B>output</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png">mxPngImageEncoder</A>
    +<DD>The OutputStream associcted with this ImageEncoder.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#overlays"><B>overlays</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Maps from cells to lists of overlays.
    +</DL>
    +<HR>
    +<A NAME="_P_"><!-- --></A><H2>
    +<B>P</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#p"><B>p</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#packages"><B>packages</B></A> - 
    +Static variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Holds the list of known packages.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#paethPredictor(int, int, int)"><B>paethPredictor(int, int, int)</B></A> - 
    +Static method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>The Paeth predictor routine used in PNG encoding.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#pageBackgroundColor"><B>pageBackgroundColor</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Color of the background area if layout view.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#pageBorderColor"><B>pageBorderColor</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#pageBreakColor"><B>pageBreakColor</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies the color of page breaks
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#pageBreaksVisible"><B>pageBreaksVisible</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if a dashed line should be drawn between multiple pages.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#pageFormat"><B>pageFormat</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Background page format.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#pageScale"><B>pageScale</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Defines the scaling for the background page metrics.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#pageShadowColor"><B>pageShadowColor</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#pageVisible"><B>pageVisible</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if the background page should be visible.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#paint"><B>paint</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Paints the visible handles of this handler.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Paints the outline of the markedState with the currentColor.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#paint(java.awt.Graphics)"><B>paint(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#PAINT"><B>PAINT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#paintBackground(java.awt.Graphics)"><B>paintBackground(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#paintBackground(java.awt.Graphics)"><B>paintBackground(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Paints the background.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#paintBackgroundImage(java.awt.Graphics)"><B>paintBackgroundImage(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#paintBackgroundPage(java.awt.Graphics)"><B>paintBackgroundPage(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#paintComponent(java.awt.Graphics)"><B>paintComponent(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#paintComponent(java.awt.Graphics)"><B>paintComponent(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#paintForeground(java.awt.Graphics)"><B>paintForeground(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Paints the foreground.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#paintGraph(java.awt.Graphics)"><B>paintGraph(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Paints the graph outline.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#paintGrid(java.awt.Graphics)"><B>paintGrid(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Paints the grid onto the given graphics object.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#paintHandles(java.awt.Graphics)"><B>paintHandles(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxConnectorShape.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, boolean)"><B>paintMarker(mxGraphics2DCanvas, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A>
    +<DD>Draws the marker for the given edge.
    +<DT><A HREF="./com/mxgraph/shape/mxIMarker.html#paintMarker(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, java.lang.String, com.mxgraph.util.mxPoint, double, double, double, boolean)"><B>paintMarker(mxGraphics2DCanvas, mxCellState, String, mxPoint, double, double, double, boolean)</B></A> - 
    +Method in interface com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape">mxIMarker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#paintNode(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState, com.mxgraph.shape.mxStencilShape.svgShape, double, double)"><B>paintNode(mxGraphics2DCanvas, mxCellState, mxStencilShape.svgShape, double, double)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#paintPolyline(com.mxgraph.util.mxPoint[], boolean)"><B>paintPolyline(mxPoint[], boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxConnectorShape.html#paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)"><B>paintPolyline(mxGraphics2DCanvas, List&lt;mxPoint&gt;, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveShape.html#paintPolyline(com.mxgraph.canvas.mxGraphics2DCanvas, java.util.List, java.util.Map)"><B>paintPolyline(mxGraphics2DCanvas, List&lt;mxPoint&gt;, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#paintPreview(com.mxgraph.canvas.mxGraphics2DCanvas)"><B>paintPreview(mxGraphics2DCanvas)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>Draws the preview using the graphics canvas.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#paintPreview(com.mxgraph.canvas.mxGraphics2DCanvas)"><B>paintPreview(mxGraphics2DCanvas)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>Draws the preview using the graphics canvas.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#paintPreviewState(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintPreviewState(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>Draws the preview using the graphics canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#paintRectangle(java.awt.Rectangle, java.awt.Color, java.awt.Color)"><B>paintRectangle(Rectangle, Color, Color)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#paintRubberband(java.awt.Graphics)"><B>paintRubberband(Graphics)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxBasicShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape">mxBasicShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxConnectorShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape">mxConnectorShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)"><B>paintShape(mxGraphics2DCanvas, String, mxCellState, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCylinderShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape">mxCylinderShape</A>
    +<DD>Draws a cylinder for the given parameters.
    +<DT><A HREF="./com/mxgraph/shape/mxDefaultTextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)"><B>paintShape(mxGraphics2DCanvas, String, mxCellState, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape">mxDefaultTextShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxDoubleEllipseShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape">mxDoubleEllipseShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxHtmlTextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)"><B>paintShape(mxGraphics2DCanvas, String, mxCellState, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxImageShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape">mxImageShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxIShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in interface com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxITextShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, java.lang.String, com.mxgraph.view.mxCellState, java.util.Map)"><B>paintShape(mxGraphics2DCanvas, String, mxCellState, Map&lt;String, Object&gt;)</B></A> - 
    +Method in interface com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxLabelShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape">mxLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxLineShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape">mxLineShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxRectangleShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape">mxRectangleShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Paints the stencil for the given state.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxSwimlaneShape.html#paintShape(com.mxgraph.canvas.mxGraphics2DCanvas, com.mxgraph.view.mxCellState)"><B>paintShape(mxGraphics2DCanvas, mxCellState)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape">mxSwimlaneShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#panningHandler"><B>panningHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#parallelEdgeSpacing"><B>parallelEdgeSpacing</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>The distance between each parallel edge on each ranks for long edges
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#parallelEdgeSpacing"><B>parallelEdgeSpacing</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The distance between each parallel edge on each ranks for long edges
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html#parent"><B>parent</B></A> - 
    +Variable in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>
    +<DD>Reference to the parent node.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#parent"><B>parent</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>The parent cell whose children are being laid out
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#parent"><B>parent</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>The parent cell of the layout, if any
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#parent"><B>parent</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Reference to the parent cell and source and target terminals for edges.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#parent"><B>parent</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#parentBorder"><B>parentBorder</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>The border to be added around the children if the parent is to be
    + resized using resizeParent.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#parentForCellChanged(java.lang.Object, java.lang.Object, int)"><B>parentForCellChanged(Object, Object, int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner callback to update the parent of a cell using mxCell.insert
    + on the parent and return the previous parent.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#parentsChanged"><B>parentsChanged</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>A set of the parents that need updating based on children
    + process as part of the layout
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.html#parse(java.lang.String)"><B>parse(String)</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>
    +<DD>Parses the String with the file content and loads into the document,
    + the data of nodes and edges.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#parse(java.lang.String)"><B>parse(String)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>Parses the given string.
    +<DT><A HREF="./com/mxgraph/util/svg/Parser.html#parse(java.lang.String)"><B>parse(String)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A>
    +<DD>Parses the given string
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parsea()"><B>parsea()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'a' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseA()"><B>parseA()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'A' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parsec()"><B>parsec()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'c' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseC()"><B>parseC()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'C' command.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#parseColor(java.lang.String)"><B>parseColor(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Helper method that uses <A HREF="./com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><CODE>mxUtils.parseColor(String)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#parseColor(java.lang.String)"><B>parseColor(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Convert a string representing a 24/32bit hex color value into a Color
    + object.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#parseDescription()"><B>parseDescription()</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Parses the description of this shape.
    +<DT><A HREF="./com/mxgraph/reader/mxDomOutputParser.IElementHandler.html#parseElement(org.w3c.dom.Element)"><B>parseElement(Element)</B></A> - 
    +Method in interface com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader">mxDomOutputParser.IElementHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#parseElement(java.lang.String, java.util.Map)"><B>parseElement(String, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Parses the given element and paints it onto the canvas.
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html#parseElement(org.xml.sax.Attributes)"><B>parseElement(Attributes)</B></A> - 
    +Method in interface com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader">mxSaxOutputHandler.IElementHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg"><B>ParseException</B></A> - Exception in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class encapsulates a general parse error or warning.<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#ParseException(java.lang.String, int, int)"><B>ParseException(String, int, int)</B></A> - 
    +Constructor for exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>Creates a new ParseException.
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#ParseException(java.lang.Exception)"><B>ParseException(Exception)</B></A> - 
    +Constructor for exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>Creates a new ParseException wrapping an existing exception.
    +<DT><A HREF="./com/mxgraph/util/svg/ParseException.html#ParseException(java.lang.String, java.lang.Exception)"><B>ParseException(String, Exception)</B></A> - 
    +Constructor for exception com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">ParseException</A>
    +<DD>Creates a new ParseException from an existing exception.
    +<DT><A HREF="./com/mxgraph/util/svg/NumberParser.html#parseFloat()"><B>parseFloat()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg">NumberParser</A>
    +<DD>Parses the content of the buffer and converts it to a float.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseh()"><B>parseh()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'h' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseH()"><B>parseH()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'H' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parsel()"><B>parsel()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'l' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseL()"><B>parseL()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'L' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parsem()"><B>parsem()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'm' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseM()"><B>parseM()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'M' command.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#parsePoints(java.lang.String)"><B>parsePoints(String)</B></A> - 
    +Static method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Parses the list of points into an object-oriented representation.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseq()"><B>parseq()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'q' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseQ()"><B>parseQ()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'Q' command.
    +<DT><A HREF="./com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><B>Parser</B></A> - Interface in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This interface represents a parser.<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parses()"><B>parses()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 's' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseS()"><B>parseS()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'S' command.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#parseState(com.mxgraph.view.mxCellState, boolean)"><B>parseState(mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Parses the bounds, absolute points and label information from the style
    + of the state into its respective fields and returns the label of the
    + cell.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parset()"><B>parset()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 't' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseT()"><B>parseT()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'T' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parsev()"><B>parsev()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'v' command.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#parseV()"><B>parseV()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Parses a 'V' command.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#parseXml(java.lang.String)"><B>parseXml(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxXmlUtils.parseXml</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/util/mxXmlUtils.html#parseXml(java.lang.String)"><B>parseXml(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util">mxXmlUtils</A>
    +<DD>Returns a new document for the given XML string.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#path"><B>path</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>The temporary value of extendedGeneralPath.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#path"><B>path</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>The current path.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#path"><B>path</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>The enclosed general path.
    +<DT><A HREF="./com/mxgraph/model/mxCellPath.html#PATH_SEPARATOR"><B>PATH_SEPARATOR</B></A> - 
    +Static variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model">mxCellPath</A>
    +<DD>Defines the separator between the path components.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><B>PathHandler</B></A> - Interface in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This interface must be implemented and then registred as the
    + handler of a <code>PathParser</code> instance in order to be
    + notified of parsing events.<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#pathHandler"><B>pathHandler</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>The path handler used to report parse events.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg"><B>PathParser</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class implements an event-based parser for the SVG path's d
    + attribute values.<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#PathParser(com.mxgraph.util.svg.PathHandler)"><B>PathParser(PathHandler)</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Creates a new PathParser.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#performRound()"><B>performRound()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The main round of the algorithm.
    +<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html#perimeter"><B>perimeter</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<DD>Boolean that specifies if the point should be projected onto the perimeter
    + of the terminal.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#PERIMETER_ELLIPSE"><B>PERIMETER_ELLIPSE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the ellipse perimeter.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#PERIMETER_HEXAGON"><B>PERIMETER_HEXAGON</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the hexagon perimeter.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#PERIMETER_RECTANGLE"><B>PERIMETER_RECTANGLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the rectangle perimeter.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#PERIMETER_RHOMBUS"><B>PERIMETER_RHOMBUS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the rhombus perimeter.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#PERIMETER_TRIANGLE"><B>PERIMETER_TRIANGLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Name of the triangle perimeter.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#placeholder"><B>placeholder</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#placeholderPreview"><B>placeholderPreview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>Specifies if the placeholder rectangle should be used for all
    + previews.
    +<DT><A HREF="./com/mxgraph/layout/mxEdgeLabelLayout.html#placeLabels(java.lang.Object[], java.lang.Object[])"><B>placeLabels(Object[], Object[])</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout">mxEdgeLabelLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#placementStage(double, java.lang.Object)"><B>placementStage(double, Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Executes the placement stage using mxCoordinateAssignment.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngTextDecoder.html#PNG_CHUNK_IEND"><B>PNG_CHUNK_IEND</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png">mxPngTextDecoder</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngTextDecoder.html#PNG_CHUNK_ZTXT"><B>PNG_CHUNK_ZTXT</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png">mxPngTextDecoder</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_AVERAGE"><B>PNG_FILTER_AVERAGE</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Constant for use in filtering.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_NONE"><B>PNG_FILTER_NONE</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Constant for use in filtering.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_PAETH"><B>PNG_FILTER_PAETH</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Constant for use in filtering.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_SUB"><B>PNG_FILTER_SUB</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Constant for use in filtering.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#PNG_FILTER_UP"><B>PNG_FILTER_UP</B></A> - 
    +Static variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Constant for use in filtering.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#point(float, float)"><B>point(float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PointsHandler.html#point(float, float)"><CODE>PointsHandler.point(float,float)</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PointsHandler.html#point(float, float)"><B>point(float, float)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>
    +<DD>Invoked when a point has been parsed.
    +<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html#point"><B>point</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<DD>Point that specifies the fixed location of the connection point.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#points"><B>points</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>List of mxPoints which specifies the control points along the edge.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#points"><B>points</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>A collection of arrays of curve points
    +<DT><A HREF="./com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><B>PointsHandler</B></A> - Interface in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This interface must be implemented and then registred as the
    + handler of a <code>PointsParser</code> instance in order to be
    + notified of parsing events.<DT><A HREF="./com/mxgraph/util/svg/PointsParser.html#pointsHandler"><B>pointsHandler</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A>
    +<DD>The points handler used to report parse events.
    +<DT><A HREF="./com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg"><B>PointsParser</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class implements an event-based parser for the SVG points
    + attribute values (used with polyline and polygon elements).<DT><A HREF="./com/mxgraph/util/svg/PointsParser.html#PointsParser(com.mxgraph.util.svg.PointsHandler)"><B>PointsParser(PointsHandler)</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A>
    +<DD>Creates a new PointsParser.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#poll()"><B>poll()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Returns the changes received by other sessions for the shared diagram.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#poll(long)"><B>poll(long)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Returns the changes received by other sessions for the shared diagram.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#populateIntervals(java.lang.String)"><B>populateIntervals(String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#PORT"><B>PORT</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#PORT_NAME"><B>PORT_NAME</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#pos1D"><B>pos1D</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#postProcessCellStyle(java.util.Map)"><B>postProcessCellStyle(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Tries to resolve the value for the image style in the image bundles and
    + turns short data URIs as defined in mxImageBundle to data URIs as
    + defined in RFC 2397 of the IETF.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#postprocessGlyph(com.mxgraph.util.mxCurve, java.lang.String, int, double)"><B>postprocessGlyph(mxCurve, String, int, double)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Hook for sub-classers to perform additional processing on
    + each glyph
    +<DT><A HREF="./com/mxgraph/shape/mxDefaultTextShape.html#postProcessLine(java.lang.String, java.lang.String, java.awt.FontMetrics, com.mxgraph.canvas.mxGraphics2DCanvas, int, int)"><B>postProcessLine(String, String, FontMetrics, mxGraphics2DCanvas, int, int)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape">mxDefaultTextShape</A>
    +<DD>Hook to add functionality after a line has been drawn
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#preferPageSize"><B>preferPageSize</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>If the pageFormat should be used to determine the minimal graph bounds
    + even if the page is not visible (see pageVisible).
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#prefHozEdgeSep"><B>prefHozEdgeSep</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The preferred horizontal distance between edges exiting a vertex
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#prefHozEdgeSep"><B>prefHozEdgeSep</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>The preferred horizontal distance between edges exiting a vertex
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#prefVertEdgeOff"><B>prefVertEdgeOff</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The preferred vertical offset between edges exiting a vertex
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#prefVertEdgeOff"><B>prefVertEdgeOff</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>The preferred vertical offset between edges exiting a vertex
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#PRESERVE_IMAGE_ASPECT"><B>PRESERVE_IMAGE_ASPECT</B></A> - 
    +Static variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Specifies if image aspect should be preserved in drawImage.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#preview"><B>preview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Holds the component that is used for preview.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#preview"><B>preview</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#preview"><B>preview</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#PREVIEW_BORDER"><B>PREVIEW_BORDER</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the border used for painting the preview when vertices are being
    + resized, or cells and labels are being moved.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#PREVIEW_STROKE"><B>PREVIEW_STROKE</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the stroke used for painting the preview for new and existing edges
    + that are being changed.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#previewAlpha"><B>previewAlpha</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>The transparency of previewed cells from 0.0.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#previewBounds"><B>previewBounds</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#previewState"><B>previewState</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#previewStates"><B>previewStates</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#previous"><B>previous</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#previous"><B>previous</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#previous"><B>previous</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html#previous"><B>previous</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<DD>Holds the new and previous root cell.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#previous"><B>previous</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#previous"><B>previous</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#previous"><B>previous</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#previous"><B>previous</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#previous"><B>previous</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#previousGraphics"><B>previousGraphics</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#previousIndex"><B>previousIndex</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#previousLayerConnectedCache"><B>previousLayerConnectedCache</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>A store of connections to the layer below for speed
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#previousLayerConnectedCells"><B>previousLayerConnectedCells</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>A cached version of the cells this cell connects to on the next layer down
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#print(java.awt.Graphics, java.awt.print.PageFormat, int)"><B>print(Graphics, PageFormat, int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Prints the specified page on the specified graphics using
    + <code>pageFormat</code> for the page format.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#process(java.awt.event.MouseEvent)"><B>process(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Processes the given event and marks the state returned by getStateAt
    + with the color returned by getMarkerColor.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#processChange(com.mxgraph.util.mxUndoableEdit.mxUndoableChange, boolean, boolean)"><B>processChange(mxUndoableEdit.mxUndoableChange, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Processes the given change and invalidates the respective cached data
    + in <view>.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#processChanges(java.util.List, boolean, boolean)"><B>processChanges(List&lt;mxUndoableEdit.mxUndoableChange&gt;, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Processes the changes and returns the minimal rectangle to be
    + repainted in the buffer.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#processDelta(java.lang.Object, org.w3c.dom.Node)"><B>processDelta(Object, Node)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Appends the given string to the history and dispatches the change to all
    + sessions that are listening to this shared diagram.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#processEdit(org.w3c.dom.Node)"><B>processEdit(Node)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#processEdit(org.w3c.dom.Node)"><B>processEdit(Node)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#processInclude(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)"><B>processInclude(mxCodec, Node, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Returns true if the given node is an include directive and executes the
    + include by decoding the XML document.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#processNodeOutgoing(com.mxgraph.layout.mxCompactTreeLayout.TreeNode)"><B>processNodeOutgoing(mxCompactTreeLayout.TreeNode)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Separates the x position of edges as they connect to vertices
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#processReversedEdge(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, java.lang.Object)"><B>processReversedEdge(mxGraphHierarchyEdge, Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Hook to add additional processing
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#PROPERTIES"><B>PROPERTIES</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventObject.html#properties"><B>properties</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util">mxEventObject</A>
    +<DD>Holds the properties of the event.
    +<DT><A HREF="./com/mxgraph/util/mxLine.html#ptLineDistSq(com.mxgraph.util.mxPoint)"><B>ptLineDistSq(mxPoint)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>
    +<DD>Returns the square of the shortest distance from a point to this line.
    +<DT><A HREF="./com/mxgraph/util/mxLine.html#ptSegDistSq(com.mxgraph.util.mxPoint)"><B>ptSegDistSq(mxPoint)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>
    +<DD>Returns the square of the shortest distance from a point to this 
    + line segment.
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#putCellStyle(java.lang.String, java.util.Map)"><B>putCellStyle(String, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Stores the specified style under the given name.
    +<DT><A HREF="./com/mxgraph/util/mxImageBundle.html#putImage(java.lang.String, java.lang.String)"><B>putImage(String, String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util">mxImageBundle</A>
    +<DD>Adds the specified entry to the map.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#putObject(java.lang.String, java.lang.Object)"><B>putObject(String, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Assoiates the given object with the given ID.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#putShape(java.lang.String, com.mxgraph.shape.mxIShape)"><B>putShape(String, mxIShape)</B></A> - 
    +Static method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#putTextShape(java.lang.String, com.mxgraph.shape.mxITextShape)"><B>putTextShape(String, mxITextShape)</B></A> - 
    +Static method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxStyleRegistry.html#putValue(java.lang.String, java.lang.Object)"><B>putValue(String, Object)</B></A> - 
    +Static method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view">mxStyleRegistry</A>
    +<DD>Puts the given object into the registry under the given name.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#PX_PER_PIXEL"><B>PX_PER_PIXEL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the ratio between px units in HTML markup and pixels on screen.
    +</DL>
    +<HR>
    +<A NAME="_Q_"><!-- --></A><H2>
    +<B>Q</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#quadTo(double, double, double, double)"><B>quadTo(double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#quadTo(double, double, double, double)"><B>quadTo(double, double, double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Draws a quadratic curve to the given point.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#quadTo(float, float, float, float)"><B>quadTo(float, float, float, float)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +</DL>
    +<HR>
    +<A NAME="_R_"><!-- --></A><H2>
    +<B>R</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#RAD_PER_DEG"><B>RAD_PER_DEG</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the number of radians per degree.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#radius"><B>radius</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>Integer specifying the size of the radius.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#radius"><B>radius</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>The approximate radius of each cell, nodes only.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#radiusScaleFactor"><B>radiusScaleFactor</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The factor by which the <code>moveRadius</code> is multiplied by after
    + every iteration.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#radiusSquared"><B>radiusSquared</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>The approximate radius squared of each cell, nodes only.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#radiusSquared"><B>radiusSquared</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>The approximate radius squared of this cell, nodes only.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankBottomY"><B>rankBottomY</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Internal cache of bottom-most value of Y for each rank
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankCoordinates(int, com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><B>rankCoordinates(int, mxGraph, mxGraphHierarchyModel)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Sets up the layout in an initial positioning.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#rankIndex"><B>rankIndex</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.WeightedCellSorter</A>
    +<DD>The index this cell is in the model rank
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankMedianPosition(int, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel, int)"><B>rankMedianPosition(int, mxGraphHierarchyModel, int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Performs median minimisation over one rank.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#ranks"><B>ranks</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Mapping from rank number to actual rank
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankTopY"><B>rankTopY</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Internal cache of top-most values of Y for each rank
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankWidths"><B>rankWidths</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The width of all the ranks
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#rankY"><B>rankY</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The Y-coordinate of all the ranks
    +<DT><A HREF="./com/mxgraph/reader/mxDomOutputParser.html#read(org.w3c.dom.Node)"><B>read(Node)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader">mxDomOutputParser</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/NormalizingReader.html#read(char[], int, int)"><B>read(char[], int, int)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg">NormalizingReader</A>
    +<DD>Read characters into a portion of an array.
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#read()"><B>read()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>Read a single character.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#reader"><B>reader</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>The normalizing reader.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#readFile(java.lang.String)"><B>readFile(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Reads the given filename into a string.
    +<DT><A HREF="./com/mxgraph/sharing/mxSession.html#receive(org.w3c.dom.Node)"><B>receive(Node)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing">mxSession</A>
    +<DD>Posts the change represented by the given XML string to the shared diagram.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#rect(double, double, double, double)"><B>rect(double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#rect(double, double, double, double)"><B>rect(double, double, double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Next fill or stroke should draw a rectangle.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#RECTANGLE_ROUNDING_FACTOR"><B>RECTANGLE_ROUNDING_FACTOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the rounding factor for rounded rectangles in percent between
    + 0 and 1.
    +<DT><A HREF="./com/mxgraph/view/mxPerimeter.html#RectanglePerimeter"><B>RectanglePerimeter</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view">mxPerimeter</A>
    +<DD>Describes a rectangular perimeter for the given bounds.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#red"><B>red</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>
    +<DD>The red color value of the entry.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#REDO"><B>REDO</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#redo()"><B>redo()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#redo()"><B>redo()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Redoes the last change.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#redone"><B>redone</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Specifies the state of the undoable edit.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#redraw(com.mxgraph.view.mxCellState)"><B>redraw(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Updates the buffer (if one exists) and repaints the given cell state.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#reduceTemperature()"><B>reduceTemperature()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Reduces the temperature of the layout from an initial setting in a linear
    + fashion to zero.
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#reference(java.lang.Object)"><B>reference(Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Hook for subclassers to implement a custom method for retrieving IDs from
    + objects.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#refresh(com.mxgraph.view.mxCellState)"><B>refresh(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Refreshes the cell handler.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#refresh()"><B>refresh()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#refresh()"><B>refresh()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Refreshes the display and handles.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#refresh()"><B>refresh()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Clears all cell states or the states for the hierarchy starting at the
    + given cell and validates the graph.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#refreshHandler"><B>refreshHandler</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodecRegistry.html#register(com.mxgraph.io.mxObjectCodec)"><B>register(mxObjectCodec)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io">mxCodecRegistry</A>
    +<DD>Registers a new codec and associates the name of the template constructor
    + in the codec with the codec object.
    +<DT><A HREF="./com/mxgraph/shape/mxMarkerRegistry.html#registerMarker(java.lang.String, com.mxgraph.shape.mxIMarker)"><B>registerMarker(String, mxIMarker)</B></A> - 
    +Static method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape">mxMarkerRegistry</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#relative"><B>relative</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Specifies if the coordinates in the geometry are to be interpreted as
    + relative coordinates.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#relevantEdges"><B>relevantEdges</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>All edge that repel this cell, only used for nodes.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#reload()"><B>reload()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Removes all existing cell states and invokes validate.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#remove(int)"><B>remove(int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#remove(com.mxgraph.model.mxICell)"><B>remove(mxICell)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#remove(int)"><B>remove(int)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Removes the child at the specified index from the child array and
    + returns the child that was removed.
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#remove(com.mxgraph.model.mxICell)"><B>remove(mxICell)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Removes the given child from the child array and returns it.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Removes the specified cell from the model.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#REMOVE_CELLS"><B>REMOVE_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#REMOVE_CELLS_FROM_PARENT"><B>REMOVE_CELLS_FROM_PARENT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#REMOVE_OVERLAY"><B>REMOVE_OVERLAY</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#removeAllComponents(java.util.Hashtable)"><B>removeAllComponents(Hashtable&lt;Object, Component[]&gt;)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#removeAllOverlays(java.util.Hashtable)"><B>removeAllOverlays(Hashtable&lt;Object, mxICellOverlay[]&gt;)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#removeAllPrivateChunks()"><B>removeAllPrivateChunks()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Remove all private chunks associated with this parameter instance.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#removeAllStylenames(java.lang.String)"><B>removeAllStylenames(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Removes all stylenames from the given style and returns the updated
    + style.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#removeAllStylenames(java.lang.String)"><B>removeAllStylenames(String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.removeAllStylenames(String)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#removeCell(java.lang.Object)"><B>removeCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Removes the given cell from the selection.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#removeCellOverlay(java.lang.Object, com.mxgraph.swing.util.mxICellOverlay)"><B>removeCellOverlay(Object, mxICellOverlay)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Removes and returns the given overlay from the given cell.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#removeCellOverlayComponent(com.mxgraph.swing.util.mxICellOverlay, java.lang.Object)"><B>removeCellOverlayComponent(mxICellOverlay, Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Notified when an overlay has been removed from the graph.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#removeCellOverlays(java.lang.Object)"><B>removeCellOverlays(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Removes all overlays from the given cell.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#removeCells(com.mxgraph.swing.mxGraphComponent, java.lang.Object[])"><B>removeCells(mxGraphComponent, Object[])</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removeCells()"><B>removeCells()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Removes the selection cells from the graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removeCells(java.lang.Object[])"><B>removeCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Removes the given cells from the graph.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removeCells(java.lang.Object[], boolean)"><B>removeCells(Object[], boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Removes the given cells from the graph including all connected edges if
    + includeEdges is true.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#removeCells(java.lang.Object[])"><B>removeCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#removeCellsFromParent"><B>removeCellsFromParent</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if cells may be moved out of their parents.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removeCellsFromParent()"><B>removeCellsFromParent()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Removes the selection cells from their parents and adds them to the
    + default parent returned by getDefaultParent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removeCellsFromParent(java.lang.Object[])"><B>removeCellsFromParent(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Removes the specified cells from their parents and adds them to the
    + default parent.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#removeComponent(java.awt.Component, java.lang.Object)"><B>removeComponent(Component, Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html#removed"><B>removed</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view">mxGraphSelectionModel.mxSelectionChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#removeDiagramChangeListener(com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener)"><B>removeDiagramChangeListener(mxSharedState.mxDiagramChangeListener)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Removes the given listener from the list of diagram change listeners.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#removeEdge(com.mxgraph.model.mxICell, boolean)"><B>removeEdge(mxICell, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#removeEdge(com.mxgraph.model.mxICell, boolean)"><B>removeEdge(mxICell, boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Removes the specified edge from the edge array and returns the edge.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#removeFromParent()"><B>removeFromParent()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#removeFromParent()"><B>removeFromParent()</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Removes the cell from its parent.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#removeFromTerminal(boolean)"><B>removeFromTerminal(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#removeFromTerminal(boolean)"><B>removeFromTerminal(boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Removes the edge from its source or target terminal.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#removeGraphListeners(com.mxgraph.view.mxGraph)"><B>removeGraphListeners(mxGraph)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Removes all installed listeners.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#removeGraphListeners(com.mxgraph.view.mxGraph)"><B>removeGraphListeners(mxGraph)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Removes all installed listeners.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removeImageBundle(com.mxgraph.util.mxImageBundle)"><B>removeImageBundle(mxImageBundle)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Removes the specified bundle.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><B>removeListener(mxEventSource.mxIEventListener)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Function: removeListener
    +
    + Removes the given listener from the list of listeners.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><B>removeListener(mxEventSource.mxIEventListener, String)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Function: removeListener
    +
    + Removes the given listener from the list of listeners.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><B>removeListener(mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Removes the given event listener.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><B>removeListener(mxEventSource.mxIEventListener, String)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Removes the given event listener for the specified event name.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><B>removeListener(mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Removes the given event listener.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><B>removeListener(mxEventSource.mxIEventListener, String)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Removes the given event listener for the specified event name.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><B>removeListener(mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><B>removeListener(mxEventSource.mxIEventListener, String)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><B>removeListener(mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><B>removeListener(mxEventSource.mxIEventListener, String)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)"><B>removeListener(mxEventSource.mxIEventListener)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Function: removeListener
    +
    + Removes all occurances of the given listener from the list of listeners.
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener, java.lang.String)"><B>removeListener(mxEventSource.mxIEventListener, String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>Function: removeListener
    +
    + Removes all occurances of the given listener from the list of listeners.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#removeMin()"><B>removeMin()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Removes the smallest element from the heap.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removePropertyChangeListener(java.beans.PropertyChangeListener)"><B>removePropertyChangeListener(PropertyChangeListener)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)"><B>removePropertyChangeListener(String, PropertyChangeListener)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removeSelectionCell(java.lang.Object)"><B>removeSelectionCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removeSelectionCells(java.lang.Object[])"><B>removeSelectionCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#removeState(java.lang.Object)"><B>removeState(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Removes and returns the mxCellState for the given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#removeStateForCell(java.lang.Object)"><B>removeStateForCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Removes all cached information for the given cell and its descendants.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#removeStylename(java.lang.String, java.lang.String)"><B>removeStylename(String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Removes all occurrences of the specified stylename in the given style and
    + returns the updated style.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#removeUnsafeToCopyPrivateChunks()"><B>removeUnsafeToCopyPrivateChunks()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Remove all private chunks associated with this parameter instance
    + whose 'safe-to-copy' bit is not set.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#rendererPane"><B>rendererPane</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Optional renderer pane to be used for HTML label rendering.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#rendererPane"><B>rendererPane</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Optional renderer pane to be used for HTML label rendering.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#repaint(com.mxgraph.util.mxRectangle)"><B>repaint(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#REPAINT"><B>REPAINT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#repaint(long, int, int, int, int)"><B>repaint(long, int, int, int, int)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#repaint(java.awt.Rectangle)"><B>repaint(Rectangle)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#repaint()"><B>repaint()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Fires a repaint event.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#repaint(com.mxgraph.util.mxRectangle)"><B>repaint(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Fires a repaint event.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#repaintBuffer"><B>repaintBuffer</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>True if the triple buffer needs a full repaint.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#repaintClip"><B>repaintClip</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Clip of the triple buffer to be repainted.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#repaintHandler"><B>repaintHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#repaintHandler"><B>repaintHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#repaintTripleBuffer(java.awt.Rectangle)"><B>repaintTripleBuffer(Rectangle)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Clears and repaints the triple buffer at the given rectangle or repaints
    + the complete buffer if no rectangle is specified.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#repaintTripleBuffer(java.awt.Rectangle)"><B>repaintTripleBuffer(Rectangle)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Clears and repaints the triple buffer at the given rectangle or repaints
    + the complete buffer if no rectangle is specified.
    +<DT><A HREF="./com/mxgraph/shape/mxHtmlTextShape.html#replaceHtmlLinefeeds"><B>replaceHtmlLinefeeds</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A>
    +<DD>Specifies if linefeeds should be replaced with breaks in HTML markup.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#replaceLinefeeds"><B>replaceLinefeeds</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Specifies if linefeeds should be replaced with BREAKS before editing,
    + and BREAKS should be replaced with linefeeds after editing.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#reportCharacterExpectedError(char, int)"><B>reportCharacterExpectedError(char, int)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>simple api to call often reported error.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#reportError(java.lang.String, java.lang.Object[])"><B>reportError(String, Object[])</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>Signals an error to the error handler.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#reportUnexpected(int)"><B>reportUnexpected(int)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#reportUnexpectedCharacterError(int)"><B>reportUnexpectedCharacterError(int)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>simple api to call often reported error.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#repositionValid(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel, com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell, int, double)"><B>repositionValid(mxGraphHierarchyModel, mxGraphAbstractHierarchyCell, int, double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Determines whether or not a node may be moved to the specified x 
    + position on the specified rank
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Resets the state of the handler and removes the preview.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Resets the state of the cell marker.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Extends the implementation to reset the current error and marker.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Resets the rubberband selection without carrying out the selection.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#reset()"><B>reset()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#resetDelta()"><B>resetDelta()</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Clears the history of all changes.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#resetEdge(java.lang.Object)"><B>resetEdge(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Resets the control points of the given edge.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#resetEdges"><B>resetEdges</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>Specifies if all edge points of traversed edges should be removed.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#resetEdges"><B>resetEdges</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>Specifies if all edge points of traversed edges should be removed.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#resetEdges"><B>resetEdges</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Specifies if all edge points of traversed edges should be removed.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#resetEdges"><B>resetEdges</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Specifies if all edge points of traversed edges should be removed.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#resetEdges(java.lang.Object[])"><B>resetEdges(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Resets the control points of the edges that are connected to the given
    + cells if not both ends of the edge are in the given cells array.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#resetEdgesOnConnect"><B>resetEdgesOnConnect</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if edge control points should be reset after
    + the the edge has been reconnected.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#resetEdgesOnMove"><B>resetEdgesOnMove</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if edge control points should be reset after
    + the move of a connected cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#resetEdgesOnResize"><B>resetEdgesOnResize</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if loops (aka self-references) are allowed.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#resetHandler"><B>resetHandler</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#resetViewOnRootChange"><B>resetViewOnRootChange</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if the scale and translate should be reset if
    + the root changes in the model.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#RESIZE_CELLS"><B>RESIZE_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#resizeCell(java.awt.event.MouseEvent)"><B>resizeCell(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#resizeCell(java.lang.Object, com.mxgraph.util.mxRectangle)"><B>resizeCell(Object, mxRectangle)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the bounds of the given cell using resizeCells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#resizeCells(java.lang.Object[], com.mxgraph.util.mxRectangle[])"><B>resizeCells(Object[], mxRectangle[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS
    + event.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#resizeEnabled"><B>resizeEnabled</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Specifies if resizing of swimlanes should be handled.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#resizeHandler"><B>resizeHandler</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#resizeHandler"><B>resizeHandler</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#resizeParent"><B>resizeParent</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Specifies if the parent should be resized after the layout so that it
    + contains all the child cells.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#resizeParent"><B>resizeParent</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>If the parents should be resized to match the width/height of the
    + children.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#resizeParent"><B>resizeParent</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>If the parent should be resized to match the width/height of the
    + stack.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#resizeSwimlane(java.lang.Object, double, double)"><B>resizeSwimlane(Object, double, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Sets the width or height of the given swimlane to the given value depending
    + on <horizontal>.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#resizeVertices"><B>resizeVertices</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>Boolean that specifies if vertices should be resized.
    +<DT><A HREF="./com/mxgraph/model/mxCellPath.html#resolve(com.mxgraph.model.mxICell, java.lang.String)"><B>resolve(mxICell, String)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model">mxCellPath</A>
    +<DD>Returns the cell for the specified cell path using the given root as the
    + root of the path.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#restore()"><B>restore()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Restores the last canvas state.
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#restore()"><B>restore()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Restores the previous state of the canvas.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#restore(java.util.List)"><B>restore(List&lt;mxCellState&gt;)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#restoreClone(java.lang.Object, java.lang.Object, java.util.Map)"><B>restoreClone(Object, Object, Map&lt;Object, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner helper method for restoring the connections in
    + a network of cloned cells.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#restoreState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><B>restoreState(mxCellState, mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#revalidate(com.mxgraph.view.mxCellState, java.lang.Object)"><B>revalidate(mxCellState, Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#revalidate()"><B>revalidate()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#revalidate()"><B>revalidate()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#revalidateState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, double, double)"><B>revalidateState(mxCellState, mxCellState, double, double)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#reverse"><B>reverse</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Maps from from XML attribute names to fieldnames.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#reversePortConstraints(int)"><B>reversePortConstraints(int)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxPerimeter.html#RhombusPerimeter"><B>RhombusPerimeter</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view">mxPerimeter</A>
    +<DD>Describes a rhombus (aka diamond) perimeter.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#RIGHT"><B>RIGHT</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#RIGHT_MASK"><B>RIGHT_MASK</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html#root"><B>root</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<DD>Holds the new and previous root cell.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#root"><B>root</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Holds the root cell, which in turn contains the cells that represent the
    + layers of the diagram as child cells.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#root"><B>root</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>Reference to the root node of the Dia shape description.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#ROOT"><B>ROOT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#root"><B>root</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#rootChanged(java.lang.Object)"><B>rootChanged(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner callback to change the root of the model and update the internal
    + datastructures, such as cells and nextId.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#roots"><B>roots</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Store of roots of this hierarchy model, these are real graph cells, not
    + internal cells
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#roots"><B>roots</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>The root nodes of the layout
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#rootShape"><B>rootShape</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#rotate(double, boolean, boolean, double, double)"><B>rotate(double, boolean, boolean, double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#rotate(double, boolean, boolean, double, double)"><B>rotate(double, boolean, boolean, double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Rotates the canvas by the given angle around the given center.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#ROTATE_ICON"><B>ROTATE_ICON</B></A> - 
    +Static variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#rotationEnabled"><B>rotationEnabled</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#rounded"><B>rounded</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#roundrect(double, double, double, double, double, double)"><B>roundrect(double, double, double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Implements a rounded rectangle using a path.
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#roundrect(double, double, double, double, double, double)"><B>roundrect(double, double, double, double, double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Next fill or stroke should draw a round rectangle.
    +<DT><A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html#route(java.lang.Object, double, double)"><B>route(Object, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#routePatterns"><B>routePatterns</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>The default routing patterns for orthogonal connections
    +<DT><A HREF="./com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html#routeToGrid"><B>routeToGrid</B></A> - 
    +Variable in class com.mxgraph.layout.orthogonal.<A HREF="./com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal">mxOrthogonalLayout</A>
    +<DD>Whether or not to route the edges along grid lines only, if the grid
    + is enabled.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#rtlGlyphVectors"><B>rtlGlyphVectors</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Cache of BIDI glyph vectors
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#RUBBERBAND_BORDERCOLOR"><B>RUBBERBAND_BORDERCOLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the rubberband border color.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#RUBBERBAND_FILLCOLOR"><B>RUBBERBAND_FILLCOLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the rubberband fill color with an alpha of 80.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#run(java.lang.Object)"><B>run(Object)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>The API method used to exercise the layout upon the graph description
    + and produce a separate description of the vertex position and edge
    + routing changes made.
    +</DL>
    +<HR>
    +<A NAME="_S_"><!-- --></A><H2>
    +<B>S</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html#sampleDepth"><B>sampleDepth</B></A> - 
    +Variable in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">mxPngSuggestedPaletteEntry</A>
    +<DD>The depth of the color samples.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#save()"><B>save()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Saves the current canvas state.
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#save()"><B>save()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Saves the current state of the canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#scale"><B>scale</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Specifies the current scale.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#scale"><B>scale</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#scale(double)"><B>scale(double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#scale(double)"><B>scale(double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Uniformaly scales the canvas by the given amount.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#scale"><B>scale</B></A> - 
    +Variable in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Holds the global scale of the graph.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#scale"><B>scale</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#SCALE"><B>SCALE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#scale"><B>scale</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Specifies the scale.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#SCALE_AND_TRANSLATE"><B>SCALE_AND_TRANSLATE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#scaleAndTranslate(double, double, double)"><B>scaleAndTranslate(double, double, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Sets the scale and translation.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#scaleHandler"><B>scaleHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Resets the zoom policy if the scale is changed manually.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#scaleImage(java.awt.Image, int, int)"><B>scaleImage(Image, int, int)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Uses <A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#IMAGE_SCALING"><CODE>mxGraphicsCanvas2D.IMAGE_SCALING</CODE></A> to scale the given image.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#scanRanksFromSinks"><B>scanRanksFromSinks</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Whether the rank assignment is done from the sinks or sources.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#scrollCellToVisible(java.lang.Object)"><B>scrollCellToVisible(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Scrolls the graph so that it shows the given cell.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#scrollCellToVisible(java.lang.Object, boolean)"><B>scrollCellToVisible(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Scrolls the graph so that it shows the given cell.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#scrollPane"><B>scrollPane</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#scrollRectToVisible(java.awt.Rectangle, boolean)"><B>scrollRectToVisible(Rectangle, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Overrides parent method to add extend flag for making the control
    + larger during previews.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#scrollToCenter(boolean)"><B>scrollToCenter(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_ARCTO"><B>SEG_ARCTO</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>The segment type constant for an elliptical arc.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_CLOSE"><B>SEG_CLOSE</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>The segment type constant that specifies that the preceding
    + subpath should be closed by appending a line segment back to
    + the point corresponding to the most recent SEG_MOVETO.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_CUBICTO"><B>SEG_CUBICTO</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>The segment type constant for the set of 3 points that specify
    + a cubic parametric curve to be drawn from the most recently
    + specified point.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_LINETO"><B>SEG_LINETO</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>The segment type constant for a point that specifies the end
    + point of a line to be drawn from the most recently specified
    + point.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_MOVETO"><B>SEG_MOVETO</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>The segment type constant for a point that specifies the end
    + point of a line to be drawn from the most recently specified
    + point.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#SEG_QUADTO"><B>SEG_QUADTO</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>The segment type constant for the pair of points that specify a
    + quadratic parametric curve to be drawn from the most recently
    + specified point.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#segments"><B>segments</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Array of numbers that represent the cached length of each segment of the
    + edge.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#select"><B>select</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#select(java.awt.Rectangle, java.awt.event.MouseEvent)"><B>select(Rectangle, MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#SELECT"><B>SELECT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectAll()"><B>selectAll()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectAll(java.lang.Object)"><B>selectAll(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects all children of the given parent cell or the children of the
    + default parent if no parent is specified.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectCell(boolean, boolean, boolean)"><B>selectCell(boolean, boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects the next, parent, first child or previous cell, if all arguments
    + are false.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#selectCellForEvent(java.lang.Object, java.awt.event.MouseEvent)"><B>selectCellForEvent(Object, MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Selects the cell for the given event.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectCells(boolean, boolean)"><B>selectCells(boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects all vertices and/or edges depending on the given boolean
    + arguments recursively, starting at the default parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectCells(boolean, boolean, java.lang.Object)"><B>selectCells(boolean, boolean, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects all vertices and/or edges depending on the given boolean
    + arguments recursively, starting at the given parent or the default
    + parent if no parent is specified.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#selectCellsForEvent(java.lang.Object[], java.awt.event.MouseEvent)"><B>selectCellsForEvent(Object[], MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Selects the cells for the given event.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectChildCell()"><B>selectChildCell()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects the first child cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectEdges()"><B>selectEdges()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects all vertices inside the default parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectEdges(java.lang.Object)"><B>selectEdges(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects all vertices inside the given parent or the default parent
    + if no parent is given.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#selectEnabled"><B>selectEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Specifies if moving is enabled.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#selectionCellsHandler"><B>selectionCellsHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectionModel"><B>selectionModel</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Holds the <mxGraphSelection> that models the current selection.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectNextCell()"><B>selectNextCell()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects the next cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectParentCell()"><B>selectParentCell()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects the parent cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectPreviousCell()"><B>selectPreviousCell()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects the previous cell.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#selectRegion(java.awt.Rectangle, java.awt.event.MouseEvent)"><B>selectRegion(Rectangle, MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#selectSingleNode(org.w3c.dom.Document, java.lang.String)"><B>selectSingleNode(Document, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns a single node that matches the given XPath expression.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectVertices()"><B>selectVertices()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects all vertices inside the default parent.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#selectVertices(java.lang.Object)"><B>selectVertices(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Selects all vertices inside the given parent or the default parent
    + if no parent is given.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setAbsoluteOffset(com.mxgraph.util.mxPoint)"><B>setAbsoluteOffset(mxPoint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the absolute offset.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setAbsolutePoint(int, com.mxgraph.util.mxPoint)"><B>setAbsolutePoint(int, mxPoint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the absolute point at the given index.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setAbsolutePoints(java.util.List)"><B>setAbsolutePoints(List&lt;mxPoint&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the absolute points.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setAbsoluteTerminalPoint(com.mxgraph.util.mxPoint, boolean)"><B>setAbsoluteTerminalPoint(mxPoint, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the first or last point in the list of points depending on isSource.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#setAddEnabled(boolean)"><B>setAddEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#setAlign(java.lang.Object)"><B>setAlign(Object)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setAllowDanglingEdges(boolean)"><B>setAllowDanglingEdges(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets allowDanglingEdges.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setAllowLoops(boolean)"><B>setAllowLoops(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets allowLoops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setAllowNegativeCoordinates(boolean)"><B>setAllowNegativeCoordinates(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setAlpha(double)"><B>setAlpha(double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setAlpha(double)"><B>setAlpha(double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Default value 1.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#setAlternateBounds(com.mxgraph.util.mxRectangle)"><B>setAlternateBounds(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Sets the alternate bounds to the given rectangle.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setAlternateEdgeStyle(java.lang.String)"><B>setAlternateEdgeStyle(String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets alternateEdgeStyle.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#setAntiAlias(boolean)"><B>setAntiAlias(boolean)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setAntiAlias(boolean)"><B>setAntiAlias(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Fires a property change event for <code>antiAlias</code>.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#setAntiAlias(boolean)"><B>setAntiAlias(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Fires a property change event for <code>antiAlias</code>.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#setAntiAlias(java.awt.Graphics2D, boolean, boolean)"><B>setAntiAlias(Graphics2D, boolean, boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setApproxNodeDimensions(boolean)"><B>setApproxNodeDimensions(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#setAttribute(org.w3c.dom.Node, java.lang.String, java.lang.Object)"><B>setAttribute(Node, String, Object)</B></A> - 
    +Static method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Sets the attribute on the specified node to value.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setAttribute(java.lang.String, java.lang.String)"><B>setAttribute(String, String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Sets the specified attribute on the user object if it is an XML node.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setAutoAntiAlias(boolean)"><B>setAutoAntiAlias(boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Disabled or enabled automatic anti aliasing.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setAutoExtend(boolean)"><B>setAutoExtend(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setAutoOrigin(boolean)"><B>setAutoOrigin(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setAutoScroll(boolean)"><B>setAutoScroll(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setAutoSizeCells(boolean)"><B>setAutoSizeCells(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if cell sizes should be automatically updated after a label
    + change.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setAverageNodeArea(double)"><B>setAverageNodeArea(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#setBackground(java.awt.Color)"><B>setBackground(Color)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#setBackgroundGray(int)"><B>setBackgroundGray(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Sets the suggested gray level of the background.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setBackgroundImage(javax.swing.ImageIcon)"><B>setBackgroundImage(ImageIcon)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#setBackgroundPaletteIndex(int)"><B>setBackgroundPaletteIndex(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Sets the palette index of the suggested background color.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html#setBackgroundRGB(int[])"><B>setBackgroundRGB(int[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A>
    +<DD>Sets the RGB value of the suggested background color.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#setBitDepth(int)"><B>setBitDepth(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Sets the desired bit depth for a grayscale image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#setBitDepth(int)"><B>setBitDepth(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Sets the desired bit depth for a palette image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html#setBitDepth(int)"><B>setBitDepth(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A>
    +<DD>Sets the desired bit depth for an RGB image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setBitDepth(int)"><B>setBitDepth(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the desired bit depth of an image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#setBitShift(int)"><B>setBitShift(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Sets the desired bit shift for a grayscale image.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#setBorder(int)"><B>setBorder(int)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setBorder(int)"><B>setBorder(int)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the value of <border>.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#setBorderColor(java.awt.Color)"><B>setBorderColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Sets the border color.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setBorderLineCostFactor(double)"><B>setBorderLineCostFactor(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#setBoundingBox(java.awt.geom.Rectangle2D)"><B>setBoundingBox(Rectangle2D)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setBoundingBox(com.mxgraph.util.mxRectangle)"><B>setBoundingBox(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the bounding box.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setBounds(java.awt.Rectangle)"><B>setBounds(Rectangle)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#setBubbling(boolean)"><B>setBubbling(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxResources.html#setBundles(java.util.LinkedList)"><B>setBundles(LinkedList&lt;ResourceBundle&gt;)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util">mxResources</A>
    +<DD>Sets the bundles.
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html#setCanvas(com.mxgraph.canvas.mxICanvas2D)"><B>setCanvas(mxICanvas2D)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A>
    +<DD>Sets the canvas for rendering.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#setCell(java.lang.Object)"><B>setCell(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#setCell(java.lang.Object)"><B>setCell(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#setCell(java.lang.Object)"><B>setCell(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#setCell(java.lang.Object)"><B>setCell(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#setCell(java.lang.Object)"><B>setCell(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#setCell(java.lang.Object)"><B>setCell(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setCell(java.lang.Object)"><B>setCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the cell that this state represents.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#setCell(java.lang.Object)"><B>setCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Clears the selection and adds the given cell to the selection.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setCellEditor(com.mxgraph.swing.view.mxICellEditor)"><B>setCellEditor(mxICellEditor)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setCellLocations(com.mxgraph.view.mxGraph, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel)"><B>setCellLocations(mxGraph, mxGraphHierarchyModel)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Sets the cell locations in the facade to those stored after this layout
    + processing step has completed.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#setCells(java.lang.Object[])"><B>setCells(Object[])</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Optional array of cells to be animated.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#setCells(java.lang.Object[])"><B>setCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Clears the selection and adds the given cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellsBendable(boolean)"><B>setCellsBendable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets cellsBendable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellsCloneable(boolean)"><B>setCellsCloneable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if the graph should allow cloning of cells by holding down the
    + control key while cells are being moved.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellsDeletable(boolean)"><B>setCellsDeletable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets cellsDeletable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellsDisconnectable(boolean)"><B>setCellsDisconnectable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets cellsDisconnectable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellsEditable(boolean)"><B>setCellsEditable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets if the graph is editable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellsLocked(boolean)"><B>setCellsLocked(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets cellsLocked, the default return value for isCellLocked and fires a
    + property change event for cellsLocked.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellsMovable(boolean)"><B>setCellsMovable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets cellsMovable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellsResizable(boolean)"><B>setCellsResizable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets if the graph is resizable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellsSelectable(boolean)"><B>setCellsSelectable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets cellsSelectable.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellStyle(java.lang.String)"><B>setCellStyle(String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the style of the selection cells to the given value.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellStyle(java.lang.String, java.lang.Object[])"><B>setCellStyle(String, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the style of the specified cells.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#setCellStyleFlags(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, int, java.lang.Boolean)"><B>setCellStyleFlags(mxIGraphModel, Object[], String, int, Boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Sets or toggles the flag bit for the given key in the cell's styles.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#setCellStyleFlags(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, int, java.lang.Boolean)"><B>setCellStyleFlags(mxIGraphModel, Object[], String, int, Boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setCellStyleFlags(mxIGraphModel, Object[],String, int, Boolean)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellStyleFlags(java.lang.String, int, boolean)"><B>setCellStyleFlags(String, int, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets or toggles the given bit for the given key in the styles of the
    + selection cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellStyleFlags(java.lang.String, int, java.lang.Boolean, java.lang.Object[])"><B>setCellStyleFlags(String, int, Boolean, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets or toggles the given bit for the given key in the styles of the
    + specified cells.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#setCellStyles(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, java.lang.String)"><B>setCellStyles(mxIGraphModel, Object[], String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Assigns the value for the given key in the styles of the given cells, or
    + removes the key from the styles if the value is null.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#setCellStyles(com.mxgraph.model.mxIGraphModel, java.lang.Object[], java.lang.String, java.lang.String)"><B>setCellStyles(mxIGraphModel, Object[], String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setCellStyles(mxIGraphModel, Object[], String, String)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellStyles(java.lang.String, java.lang.String)"><B>setCellStyles(String, String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the key to value in the styles of the selection cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCellStyles(java.lang.String, java.lang.String, java.lang.Object[])"><B>setCellStyles(String, String, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the key to value in the styles of the given cells.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setCellWarning(java.lang.Object, java.lang.String)"><B>setCellWarning(Object, String)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setCellWarning(java.lang.Object, java.lang.String, javax.swing.ImageIcon)"><B>setCellWarning(Object, String, ImageIcon)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setCellWarning(java.lang.Object, java.lang.String, javax.swing.ImageIcon, boolean)"><B>setCellWarning(Object, String, ImageIcon, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Creates an overlay for the given cell using the warning and image or
    + warningImage and returns the new overlay.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setCenterPage(boolean)"><B>setCenterPage(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>zoomAndCenter should be called if this is set to true.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setCenterPreview(boolean)"><B>setCenterPreview(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setCenterZoom(boolean)"><B>setCenterZoom(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setChangesRepaintThreshold(int)"><B>setChangesRepaintThreshold(int)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#setChild(java.lang.Object)"><B>setChild(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float[])"><B>setChromaticity(float[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the white point and primary chromaticities in CIE (x, y)
    + space.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setChromaticity(float, float, float, float, float, float, float, float)"><B>setChromaticity(float, float, float, float, float, float, float, float)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>A convenience method that calls the array version.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#setClip(com.mxgraph.util.mxRectangle)"><B>setClip(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#setCloned(boolean)"><B>setCloned(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#setCloneEnabled(boolean)"><B>setCloneEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setCloneEnabled(boolean)"><B>setCloneEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCloneInvalidEdges(boolean)"><B>setCloneInvalidEdges(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets cloneInvalidEdge.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#setClonePreview(boolean)"><B>setClonePreview(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setCollapsed(boolean)"><B>setCollapsed(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#setCollapsed(boolean)"><B>setCollapsed(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setCollapsed(java.lang.Object, boolean)"><B>setCollapsed(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#setCollapsed(boolean)"><B>setCollapsed(boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Sets the collapsed state.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#setCollapsed(java.lang.Object, boolean)"><B>setCollapsed(Object, boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Sets the collapsed state of the given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setCollapseToPreferredSize(boolean)"><B>setCollapseToPreferredSize(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setCompressedText(java.lang.String[])"><B>setCompressedText(String[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the text strings to be stored in compressed form with this
    + image.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setConnectable(boolean)"><B>setConnectable(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setConnectable(boolean)"><B>setConnectable(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setConnectableEdges(boolean)"><B>setConnectableEdges(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets connetableEdges.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setConnectedEdges(int[])"><B>setConnectedEdges(int[])</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setConnectIcon(javax.swing.ImageIcon)"><B>setConnectIcon(ImageIcon)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setConnectionConstraint(java.lang.Object, java.lang.Object, boolean, com.mxgraph.view.mxConnectionConstraint)"><B>setConnectionConstraint(Object, Object, boolean, mxConnectionConstraint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the connection constraint that describes the given connection point.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setConnectPreview(com.mxgraph.swing.handler.mxConnectPreview)"><B>setConnectPreview(mxConnectPreview)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setConstrainChildren(boolean)"><B>setConstrainChildren(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#setContextPreview(boolean)"><B>setContextPreview(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdNode.html#setCoordinates(com.mxgraph.util.mxPoint)"><B>setCoordinates(mxPoint)</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setCreateIds(boolean)"><B>setCreateIds(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Specifies if the model automatically creates Ids for new cells and
    + resolves Id collisions.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setCreateTarget(boolean)"><B>setCreateTarget(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html#setCropping(boolean)"><B>setCropping(boolean)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader">mxGraphViewImageReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#setCurrentColor(java.awt.Color)"><B>setCurrentColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Sets the current color.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#setCurrentRoot(java.lang.Object)"><B>setCurrentRoot(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Sets and returns the current root and fires an undo event.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#setCurrentXScale(double)"><B>setCurrentXScale(double)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#setCurrentYScale(double)"><B>setCurrentYScale(double)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#setCurve(com.mxgraph.util.mxCurve)"><B>setCurve(mxCurve)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setDashed(boolean)"><B>setDashed(boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setDashed(boolean)"><B>setDashed(boolean)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Sets the dashed state.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setDashPattern(java.lang.String)"><B>setDashPattern(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setDashPattern(java.lang.String)"><B>setDashPattern(String)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Sets the dash pattern.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataHeight(java.lang.String)"><B>setDataHeight(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#setDataId(java.lang.String)"><B>setDataId(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#setDataKey(java.lang.String)"><B>setDataKey(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataLabel(java.lang.String)"><B>setDataLabel(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#setDataShapeEdge(com.mxgraph.io.graphml.mxGraphMlShapeEdge)"><B>setDataShapeEdge(mxGraphMlShapeEdge)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#setDataShapeNode(com.mxgraph.io.graphml.mxGraphMlShapeNode)"><B>setDataShapeNode(mxGraphMlShapeNode)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataStyle(java.lang.String)"><B>setDataStyle(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html#setDataValue(java.lang.String)"><B>setDataValue(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml">mxGraphMlData</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataWidth(java.lang.String)"><B>setDataWidth(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataX(java.lang.String)"><B>setDataX(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html#setDataY(java.lang.String)"><B>setDataY(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#setDefaultEdgeStyle(java.util.Map)"><B>setDefaultEdgeStyle(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Sets the default style for edges.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setDefaultLoopStyle(com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction)"><B>setDefaultLoopStyle(mxEdgeStyle.mxEdgeStyleFunction)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the default style used for loops.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setDefaultOverlap(double)"><B>setDefaultOverlap(double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets defaultOverlap.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setDefaultParent(java.lang.Object)"><B>setDefaultParent(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the default parent to be returned by getDefaultParent.
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#setDefaultVertexStyle(java.util.Map)"><B>setDefaultVertexStyle(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Sets the default style for vertices.
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#setDelay(int)"><B>setDelay(int)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Sets the delay for the animation.
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#setDescription(org.w3c.dom.Element)"><B>setDescription(Element)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Sets the description.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setDeterministic(boolean)"><B>setDeterministic(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setDeterministic(boolean)"><B>setDeterministic(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setDfsCount(int)"><B>setDfsCount(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdNode.html#setDimentions(com.mxgraph.util.mxPoint)"><B>setDimentions(mxPoint)</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setDisableEdgeStyle(boolean)"><B>setDisableEdgeStyle(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#setDisableEdgeStyle(boolean)"><B>setDisableEdgeStyle(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#setDisableEdgeStyle(boolean)"><B>setDisableEdgeStyle(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setDisableEdgeStyle(boolean)"><B>setDisableEdgeStyle(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setDisconnectOnMove(boolean)"><B>setDisconnectOnMove(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets disconnectOnMove.
    +<DT><A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html#setDocument(org.w3c.dom.Document)"><B>setDocument(Document)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas">mxHtmlCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#setDocument(org.w3c.dom.Document)"><B>setDocument(Document)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxVmlCanvas.html#setDocument(org.w3c.dom.Document)"><B>setDocument(Document)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas">mxVmlCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#setDocument(org.w3c.dom.Document)"><B>setDocument(Document)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Sets the owner document of the codec.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setDragEnabled(boolean)"><B>setDragEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#setDrawLabels(boolean)"><B>setDrawLabels(boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#setDrawLabels(boolean)"><B>setDrawLabels(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Fires a property change event for <code>drawLabels</code>.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setDropEnabled(boolean)"><B>setDropEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets dropEnabled.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#setEase(double)"><B>setEase(double)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Sets the easing for the movements.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setEdge(boolean)"><B>setEdge(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setEdgeCrossingCostFactor(double)"><B>setEdgeCrossingCostFactor(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeData(com.mxgraph.io.graphml.mxGraphMlData)"><B>setEdgeData(mxGraphMlData)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeDataMap(java.util.HashMap)"><B>setEdgeDataMap(HashMap&lt;String, mxGraphMlData&gt;)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#setEdgedefault(java.lang.String)"><B>setEdgedefault(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeDirected(java.lang.String)"><B>setEdgeDirected(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setEdgeDistanceCostFactor(double)"><B>setEdgeDistanceCostFactor(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeId(java.lang.String)"><B>setEdgeId(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setEdgeLabelsMovable(boolean)"><B>setEdgeLabelsMovable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Returns edgeLabelsMovable.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setEdgeLengthCostFactor(double)"><B>setEdgeLengthCostFactor(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setEdgeMapper(java.util.Map)"><B>setEdgeMapper(Map&lt;Object, mxGraphHierarchyEdge&gt;)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#setEdgePoints(java.lang.Object, java.util.List)"><B>setEdgePoints(Object, List&lt;mxPoint&gt;)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Sets the control points of the given edge to the given
    + list of mxPoints.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setEdgePosition(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell)"><B>setEdgePosition(mxGraphAbstractHierarchyCell)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Fixes the control points
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#setEdgeRouting(boolean)"><B>setEdgeRouting(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.html#setEdges(java.util.List)"><B>setEdges(List&lt;mxGdEdge&gt;)</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#setEdges(java.util.List)"><B>setEdges(List&lt;mxGraphMlEdge&gt;)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeSource(java.lang.String)"><B>setEdgeSource(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#setEdgeSource(java.lang.String)"><B>setEdgeSource(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeSourcePort(java.lang.String)"><B>setEdgeSourcePort(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object, boolean)"><B>setEdgeStyleEnabled(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Disables or enables the edge style of the given edge.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeTarget(java.lang.String)"><B>setEdgeTarget(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#setEdgeTarget(java.lang.String)"><B>setEdgeTarget(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html#setEdgeTargetPort(java.lang.String)"><B>setEdgeTargetPort(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxSvgCanvas.html#setEmbedded(boolean)"><B>setEmbedded(boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas">mxSvgCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Sets the enabled state of the marker.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Sets the enabled state.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if the graph should allow any interactions.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#setEnabled(boolean)"><B>setEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/mxCodec.html#setEncodeDefaults(boolean)"><B>setEncodeDefaults(boolean)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io">mxCodec</A>
    +<DD>Sets if default values of member variables should be encoded.
    +<DT><A HREF="./com/mxgraph/util/mxLine.html#setEndPoint(com.mxgraph.util.mxPoint)"><B>setEndPoint(mxPoint)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>
    +<DD>Sets the end point of the rectangle.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setEnterStopsCellEditing(boolean)"><B>setEnterStopsCellEditing(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)"><B>setErrorHandler(ErrorHandler)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>Allow an application to register an error event handler.
    +<DT><A HREF="./com/mxgraph/util/svg/Parser.html#setErrorHandler(com.mxgraph.util.svg.ErrorHandler)"><B>setErrorHandler(ErrorHandler)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A>
    +<DD>Allows an application to register an error event handler.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setEscapeEnabled(boolean)"><B>setEscapeEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setEventsEnabled(boolean)"><B>setEventsEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#setEventsEnabled(boolean)"><B>setEventsEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEventSource.html#setEventSource(java.lang.Object)"><B>setEventSource(Object)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setExportEnabled(boolean)"><B>setExportEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setExtendParents(boolean)"><B>setExtendParents(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets extendParents.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#setExtendParents(boolean)"><B>setExtendParents(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setExtendParentsOnAdd(boolean)"><B>setExtendParentsOnAdd(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets extendParentsOnAdd.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#setExtractHtmlBody(boolean)"><B>setExtractHtmlBody(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Sets extractHtmlBody
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#setFieldValue(java.lang.Object, java.lang.String, java.lang.Object)"><B>setFieldValue(Object, String, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Sets the value of the field with the specified name
    + in the specified object instance.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#setFieldValueWithAccessor(java.lang.Object, java.lang.reflect.Field, java.lang.Object)"><B>setFieldValueWithAccessor(Object, Field, Object)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Sets the value of the given field using the accessor if one exists.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFillColor(java.lang.String)"><B>setFillColor(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setFillColor(java.lang.String)"><B>setFillColor(String)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Default value <A HREF="./com/mxgraph/util/mxConstants.html#NONE"><CODE>mxConstants.NONE</CODE></A>.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#setFillColor(java.awt.Color)"><B>setFillColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Sets the fill color.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#setFinderVisible(boolean)"><B>setFinderVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setFineTuning(boolean)"><B>setFineTuning(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setFineTuning(boolean)"><B>setFineTuning(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setFineTuning(boolean)"><B>setFineTuning(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setFineTuningRadius(double)"><B>setFineTuningRadius(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#setFitPage(boolean)"><B>setFitPage(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Fires a property change event for <code>fitPage</code>.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setFixRoots(boolean)"><B>setFixRoots(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setFoldingEnabled(boolean)"><B>setFoldingEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFontColor(java.lang.String)"><B>setFontColor(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setFontColor(java.lang.String)"><B>setFontColor(String)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Default value "#000000".
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFontFamily(java.lang.String)"><B>setFontFamily(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setFontFamily(java.lang.String)"><B>setFontFamily(String)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Default value <A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_FONTFAMILY"><CODE>mxConstants.DEFAULT_FONTFAMILY</CODE></A>.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFontSize(double)"><B>setFontSize(double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setFontSize(double)"><B>setFontSize(double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Default value <A HREF="./com/mxgraph/util/mxConstants.html#DEFAULT_FONTSIZE"><CODE>mxConstants.DEFAULT_FONTSIZE</CODE></A>.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setFontStyle(int)"><B>setFontStyle(int)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setFontStyle(int)"><B>setFontStyle(int)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Default value 0.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#setForceConstant(double)"><B>setForceConstant(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setGamma(float)"><B>setGamma(float)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the file gamma value for the image.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setGeneralPurposeVariable(int, int)"><B>setGeneralPurposeVariable(int, int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>Set the value of temp for the specified layer
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#setGeneralPurposeVariable(int, int)"><B>setGeneralPurposeVariable(int, int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>Set the value of temp for the specified layer
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html#setGeneralPurposeVariable(int, int)"><B>setGeneralPurposeVariable(int, int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyNode</A>
    +<DD>Set the value of temp for the specified layer
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setGeometry(com.mxgraph.model.mxGeometry)"><B>setGeometry(mxGeometry)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#setGeometry(com.mxgraph.model.mxGeometry)"><B>setGeometry(mxGeometry)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)"><B>setGeometry(Object, mxGeometry)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#setGeometry(com.mxgraph.model.mxGeometry)"><B>setGeometry(mxGeometry)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Sets the object to be used as the geometry.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#setGeometry(java.lang.Object, com.mxgraph.model.mxGeometry)"><B>setGeometry(Object, mxGeometry)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Sets the geometry of the given cell.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setGlassGradient(double, double, double, double)"><B>setGlassGradient(double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setGlassGradient(double, double, double, double)"><B>setGlassGradient(double, double, double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Prepares the canvas to draw a glass gradient.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setGradient(java.lang.String, java.lang.String, double, double, double, double, java.lang.String)"><B>setGradient(String, String, double, double, double, double, String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setGradient(java.lang.String, java.lang.String, double, double, double, double, java.lang.String)"><B>setGradient(String, String, double, double, double, double, String)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Prepares the canvas to draw a gradient.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setGraph(com.mxgraph.view.mxGraph)"><B>setGraph(mxGraph)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#setGraph(com.mxgraph.view.mxGraph)"><B>setGraph(mxGraph)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#setGraph(com.mxgraph.view.mxGraph)"><B>setGraph(mxGraph)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#setGraph(com.mxgraph.view.mxGraph)"><B>setGraph(mxGraph)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#setGraphBounds(com.mxgraph.util.mxRectangle)"><B>setGraphBounds(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Sets the graph bounds.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#setGraphComponent(com.mxgraph.swing.mxGraphComponent)"><B>setGraphComponent(mxGraphComponent)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Fires a property change event for <code>graphComponent</code>.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#setGraphics(java.awt.Graphics2D)"><B>setGraphics(Graphics2D)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Sets the graphics object for this canvas.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setGraphics(java.awt.Graphics2D)"><B>setGraphics(Graphics2D)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Sets the graphics instance.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setGridColor(java.awt.Color)"><B>setGridColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Fires a property change event for <code>gridColor</code>.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setGridEnabled(boolean)"><B>setGridEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets if the grid is enabled.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setGridSize(int)"><B>setGridSize(int)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the grid size and fires a property change event for gridSize.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setGridStyle(int)"><B>setGridStyle(int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Fires a property change event for <code>gridStyle</code>.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setGridVisible(boolean)"><B>setGridVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Fires a property change event for <code>gridVisible</code>.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#setGroupPadding(int)"><B>setGroupPadding(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setHandleEnabled(boolean)"><B>setHandleEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setHandleSize(int)"><B>setHandleSize(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#setHandlesVisible(boolean)"><B>setHandlesVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Specifies if the handles should be painted.
    +<DT><A HREF="./com/mxgraph/util/mxImage.html#setHeight(int)"><B>setHeight(int)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#setHeight(double)"><B>setHeight(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Sets the height of the rectangle.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setHeightSquared(double)"><B>setHeightSquared(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#setHideSelectionHandler(boolean)"><B>setHideSelectionHandler(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#setHorizontal(boolean)"><B>setHorizontal(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#setHorizontal(boolean)"><B>setHorizontal(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setHorizontalPageCount(int)"><B>setHorizontalPageCount(int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#setHotspot(double)"><B>setHotspot(double)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Sets the hotspot.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#setHotspotEnabled(boolean)"><B>setHotspotEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Specifies whether the hotspot should be used in intersects.
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#setHtmlLabels(boolean)"><B>setHtmlLabels(boolean)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>Sets the htmlLabels switch.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setHtmlLabels(boolean)"><B>setHtmlLabels(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setICCProfileData(byte[])"><B>setICCProfileData(byte[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the ICC profile data to be stored with this image.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#setIconPath(java.lang.String)"><B>setIconPath(String)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#setId(java.lang.String)"><B>setId(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setId(java.lang.String)"><B>setId(String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#setId(java.lang.String)"><B>setId(String)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Sets the Id of the cell to the given string.
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#setImageBasePath(java.lang.String)"><B>setImageBasePath(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html#setImageObserver(java.awt.image.ImageObserver)"><B>setImageObserver(ImageObserver)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setImagePreview(boolean)"><B>setImagePreview(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#setImportCount(int)"><B>setImportCount(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setImportEnabled(boolean)"><B>setImportEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Sets importEnabled.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#setIndex(int)"><B>setIndex(int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setInitialMoveRadius(double)"><B>setInitialMoveRadius(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#setInitialTemp(double)"><B>setInitialTemp(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#setInstance(com.mxgraph.analysis.mxGraphAnalysis)"><B>setInstance(mxGraphAnalysis)</B></A> - 
    +Static method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Sets the shared instance of this class.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setInterHierarchySpacing(double)"><B>setInterHierarchySpacing(double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setInterlacing(boolean)"><B>setInterlacing(boolean)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Turns Adam7 interlacing on or off.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setInterRankCellSpacing(double)"><B>setInterRankCellSpacing(double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setInterRankCellSpacing(double)"><B>setInterRankCellSpacing(double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setIntraCellSpacing(double)"><B>setIntraCellSpacing(double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setIntraCellSpacing(double)"><B>setIntraCellSpacing(double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setInvalid(boolean)"><B>setInvalid(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the invalid state.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#setInvalidColor(java.awt.Color)"><B>setInvalidColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Sets the color used for invalid highlights.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#setInvert(boolean)"><B>setInvert(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setInvokesStopCellEditing(boolean)"><B>setInvokesStopCellEditing(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setKeepEdgesInBackground(boolean)"><B>setKeepEdgesInBackground(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setKeepEdgesInForeground(boolean)"><B>setKeepEdgesInForeground(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setKeepOnTop(boolean)"><B>setKeepOnTop(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setKeepSelectionVisibleOnZoom(boolean)"><B>setKeepSelectionVisibleOnZoom(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyDefault(java.lang.String)"><B>setKeyDefault(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyFor(com.mxgraph.io.graphml.mxGraphMlKey.keyForValues)"><B>setKeyFor(mxGraphMlKey.keyForValues)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyId(java.lang.String)"><B>setKeyId(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKeyManager.html#setKeyMap(java.util.HashMap)"><B>setKeyMap(HashMap&lt;String, mxGraphMlKey&gt;)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml">mxGraphMlKeyManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyName(java.lang.String)"><B>setKeyName(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#setKeyType(com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)"><B>setKeyType(mxGraphMlKey.keyTypeValues)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setLabel(java.lang.String)"><B>setLabel(String)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Returns the current label.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setLabelBounds(com.mxgraph.util.mxRectangle)"><B>setLabelBounds(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the label bounds.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#setLabelBuffer(double)"><B>setLabelBuffer(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setLabelsClipped(boolean)"><B>setLabelsClipped(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets labelsClipped.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setLabelsVisible(boolean)"><B>setLabelsVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setLayoutFromSinks(boolean)"><B>setLayoutFromSinks(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setLength(double)"><B>setLength(double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the length.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#setLevelDistance(int)"><B>setLevelDistance(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setLimitX(double)"><B>setLimitX(double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setLineCap(java.lang.String)"><B>setLineCap(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setLineCap(java.lang.String)"><B>setLineCap(String)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Sets the linecap.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setLineJoin(java.lang.String)"><B>setLineJoin(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setLineJoin(java.lang.String)"><B>setLineJoin(String)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Sets the linejoin.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setLivePreview(boolean)"><B>setLivePreview(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#setLocation(java.awt.Point)"><B>setLocation(Point)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setLoggerLevel(java.util.logging.Level)"><B>setLoggerLevel(Level)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Sets the logging level of this class
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setLoggerLevel(java.util.logging.Level)"><B>setLoggerLevel(Level)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Sets the logging level of this class
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setMaintainEdgeParent(boolean)"><B>setMaintainEdgeParent(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Specifies if the model automatically updates parents of edges so that
    + the edge is contained in the nearest-common-ancestor of its terminals.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#setMarkedState(com.mxgraph.view.mxCellState)"><B>setMarkedState(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Sets the marked state.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setMarker(com.mxgraph.swing.handler.mxCellMarker)"><B>setMarker(mxCellMarker)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setMarker(com.mxgraph.swing.handler.mxCellMarker)"><B>setMarker(mxCellMarker)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setMarkerEnabled(boolean)"><B>setMarkerEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#setMaxDistanceLimit(double)"><B>setMaxDistanceLimit(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setMaxDistanceLimit(double)"><B>setMaxDistanceLimit(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#setMaxHandlers(int)"><B>setMaxHandlers(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setMaximumGraphBounds(com.mxgraph.util.mxRectangle)"><B>setMaximumGraphBounds(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#setMaxIterations(int)"><B>setMaxIterations(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setMaxIterations(int)"><B>setMaxIterations(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#setMinDistanceLimit(double)"><B>setMinDistanceLimit(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setMinDistanceLimit(double)"><B>setMinDistanceLimit(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#setMinimumEditorScale(double)"><B>setMinimumEditorScale(double)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setMinimumGraphSize(com.mxgraph.util.mxRectangle)"><B>setMinimumGraphSize(mxRectangle)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#setMinimumHeight(int)"><B>setMinimumHeight(int)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#setMinimumWidth(int)"><B>setMinimumWidth(int)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setMinMoveRadius(double)"><B>setMinMoveRadius(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setMiterLimit(double)"><B>setMiterLimit(double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setMiterLimit(double)"><B>setMiterLimit(double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Sets the miterlimit.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html#setModel(com.mxgraph.model.mxIGraphModel)"><B>setModel(mxIGraphModel)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model">mxIGraphModel.mxAtomicGraphModelChange</A>
    +<DD>Sets the model where the change is to be carried out.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setModel(com.mxgraph.model.mxIGraphModel)"><B>setModel(mxIGraphModel)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the graph model that contains the data, and fires an
    + mxEvent.CHANGE followed by an mxEvent.REPAINT event.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setModificationTime(java.util.Date)"><B>setModificationTime(Date)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the modification time, as a <code>Date</code>, to be
    + stored with this image.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#setMoveCircle(boolean)"><B>setMoveCircle(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setMoveEnabled(boolean)"><B>setMoveEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setMoveParent(boolean)"><B>setMoveParent(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Sets the moveParent flag.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#setMoveTree(boolean)"><B>setMoveTree(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setMultigraph(boolean)"><B>setMultigraph(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets multigraph.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setMultiplicities(com.mxgraph.view.mxMultiplicity[])"><B>setMultiplicities(mxMultiplicity[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdNode.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd">mxGdNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeData(com.mxgraph.io.graphml.mxGraphMlData)"><B>setNodeData(mxGraphMlData)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeDataMap(java.util.HashMap)"><B>setNodeDataMap(HashMap&lt;String, mxGraphMlData&gt;)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#setNodeDistance(int)"><B>setNodeDistance(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setNodeDistributionCostFactor(double)"><B>setNodeDistributionCostFactor(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeGraph(java.util.List)"><B>setNodeGraph(List&lt;mxGraphMlGraph&gt;)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#setNodeId(java.lang.String)"><B>setNodeId(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html#setNodePort(java.util.HashMap)"><B>setNodePort(HashMap&lt;String, mxGraphMlPort&gt;)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml">mxGraphMlNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.html#setNodes(java.util.List)"><B>setNodes(List&lt;mxGdNode&gt;)</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd">mxGdDocument</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html#setNodes(java.util.List)"><B>setNodes(List&lt;mxGraphMlNode&gt;)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml">mxGraphMlGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#setOffset(com.mxgraph.util.mxPoint)"><B>setOffset(mxPoint)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Sets the offset to the given point.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#setOffset(java.awt.Point)"><B>setOffset(Point)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#setOpacity(float)"><B>setOpacity(float)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setOptimizeBorderLine(boolean)"><B>setOptimizeBorderLine(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setOptimizeEdgeCrossing(boolean)"><B>setOptimizeEdgeCrossing(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setOptimizeEdgeDistance(boolean)"><B>setOptimizeEdgeDistance(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setOptimizeEdgeLength(boolean)"><B>setOptimizeEdgeLength(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setOptimizeNodeDistribution(boolean)"><B>setOptimizeNodeDistribution(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setOrientation(int)"><B>setOrientation(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setOrientation(int)"><B>setOrientation(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setOrigin(com.mxgraph.util.mxPoint)"><B>setOrigin(mxPoint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the origin for the children.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setOrigin(com.mxgraph.util.mxPoint)"><B>setOrigin(mxPoint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#setOrthogonalEdge(java.lang.Object, boolean)"><B>setOrthogonalEdge(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Disables or enables orthogonal end segments of the given edge
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPageBackgroundColor(java.awt.Color)"><B>setPageBackgroundColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Sets the color that appears behind the page.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPageBorderColor(java.awt.Color)"><B>setPageBorderColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPageBreakColor(java.awt.Color)"><B>setPageBreakColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPageBreaksVisible(boolean)"><B>setPageBreaksVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPageFormat(java.awt.print.PageFormat)"><B>setPageFormat(PageFormat)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPageScale(double)"><B>setPageScale(double)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPageShadowColor(java.awt.Color)"><B>setPageShadowColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPageVisible(boolean)"><B>setPageVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Fires a property change event for <code>pageVisible</code>.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#setPalette(int[])"><B>setPalette(int[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Sets the RGB palette of the image to be encoded.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setPaletteHistogram(int[])"><B>setPaletteHistogram(int[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the palette histogram to be stored with this image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#setPaletteTransparency(byte[])"><B>setPaletteTransparency(byte[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Sets the alpha values associated with each palette entry.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPanning(boolean)"><B>setPanning(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setParallelEdgeSpacing(double)"><B>setParallelEdgeSpacing(double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html#setParam(com.mxgraph.util.png.mxPngEncodeParam)"><B>setParam(mxPngEncodeParam)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png">mxPngImageEncoder</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html#setParent(com.mxgraph.analysis.mxUnionFind.Node)"><B>setParent(mxUnionFind.Node)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setParent(com.mxgraph.model.mxICell)"><B>setParent(mxICell)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#setParent(java.lang.Object)"><B>setParent(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#setParent(com.mxgraph.model.mxICell)"><B>setParent(mxICell)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Sets the parent cell.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setParentBorder(int)"><B>setParentBorder(int)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Sets parentBorder.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#setPathHandler(com.mxgraph.util.svg.PathHandler)"><B>setPathHandler(PathHandler)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Allows an application to register a path handler.
    +<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html#setPerimeter(boolean)"><B>setPerimeter(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<DD>Sets perimeter.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int[])"><B>setPhysicalDimension(int[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the physical dimension information to be stored with this
    + image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setPhysicalDimension(int, int, int)"><B>setPhysicalDimension(int, int, int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>A convenience method that calls the array version.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#setPlaceholderPreview(boolean)"><B>setPlaceholderPreview(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxConnectionConstraint.html#setPoint(com.mxgraph.util.mxPoint)"><B>setPoint(mxPoint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view">mxConnectionConstraint</A>
    +<DD>Sets the point.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#setPoints(java.util.List)"><B>setPoints(List&lt;mxPoint&gt;)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Sets the list of control points to the given list.
    +<DT><A HREF="./com/mxgraph/util/mxLine.html#setPoints(com.mxgraph.util.mxPoint, com.mxgraph.util.mxPoint)"><B>setPoints(mxPoint, mxPoint)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</A>
    +<DD>Sets the start and end points.
    +<DT><A HREF="./com/mxgraph/util/svg/PointsParser.html#setPointsHandler(com.mxgraph.util.svg.PointsHandler)"><B>setPointsHandler(PointsHandler)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg">PointsParser</A>
    +<DD>Allows an application to register a points handler.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html#setPortDataMap(java.util.HashMap)"><B>setPortDataMap(HashMap&lt;String, mxGraphMlData&gt;)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml">mxGraphMlPort</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPreferPageSize(boolean)"><B>setPreferPageSize(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Fires a property change event for <code>preferPageSize</code>.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setPreviewAlpha(float)"><B>setPreviewAlpha(float)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setPreviewBounds(java.awt.Rectangle)"><B>setPreviewBounds(Rectangle)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#setPrevious(java.lang.Object)"><B>setPrevious(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html#setPrevious(boolean)"><B>setPrevious(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model">mxGraphModel.mxCollapseChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html#setPrevious(com.mxgraph.model.mxGeometry)"><B>setPrevious(mxGeometry)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model">mxGraphModel.mxGeometryChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html#setPrevious(java.lang.Object)"><B>setPrevious(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#setPrevious(java.lang.String)"><B>setPrevious(String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#setPrevious(java.lang.Object)"><B>setPrevious(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#setPrevious(java.lang.Object)"><B>setPrevious(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#setPrevious(boolean)"><B>setPrevious(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#setPreviousIndex(int)"><B>setPreviousIndex(int)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#setRadius(double)"><B>setRadius(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setRadiusScaleFactor(double)"><B>setRadiusScaleFactor(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setRadiusSquared(double)"><B>setRadiusSquared(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#setRect(double, double, double, double)"><B>setRect(double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Sets this rectangle to the specified values
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#setRelative(boolean)"><B>setRelative(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Sets the relative state of the geometry.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setRelevantEdges(int[])"><B>setRelevantEdges(int[])</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setRemoveCellsFromParent(boolean)"><B>setRemoveCellsFromParent(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxHtmlTextShape.html#setReplaceHtmlLinefeeds(boolean)"><B>setReplaceHtmlLinefeeds(boolean)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape">mxHtmlTextShape</A>
    +<DD>Returns replaceHtmlLinefeeds
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#setReplaceHtmlLinefeeds(boolean)"><B>setReplaceHtmlLinefeeds(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Sets replaceHtmlLinefeeds
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#setResetEdges(boolean)"><B>setResetEdges(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#setResetEdges(boolean)"><B>setResetEdges(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#setResetEdges(boolean)"><B>setResetEdges(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setResetEdges(boolean)"><B>setResetEdges(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setResetEdgesOnConnect(boolean)"><B>setResetEdgesOnConnect(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets resetEdgesOnConnect.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setResetEdgesOnMove(boolean)"><B>setResetEdgesOnMove(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets resetEdgesOnMove.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setResetEdgesOnResize(boolean)"><B>setResetEdgesOnResize(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets resetEdgesOnResize.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setResetViewOnRootChange(boolean)"><B>setResetViewOnRootChange(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets resetEdgesOnResize.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#setResizeEnabled(boolean)"><B>setResizeEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#setResizeParent(boolean)"><B>setResizeParent(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Sets the resizeParent flag.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#setResizeParent(boolean)"><B>setResizeParent(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#setReversed(boolean)"><B>setReversed(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html#setRoot(java.lang.Object)"><B>setRoot(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model">mxGraphModel.mxRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setRoot(java.lang.Object)"><B>setRoot(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#setRoot(java.lang.Object)"><B>setRoot(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Sets the root of the model and resets all structures.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#setRotationEnabled(boolean)"><B>setRotationEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#setScale(double)"><B>setScale(double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas.html#setScale(double)"><B>setScale(double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>
    +<DD>Sets the scale for the following drawing requests.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#setScale(double)"><B>setScale(double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#setScale(double)"><B>setScale(double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Sets the current scale and revalidates the view.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setSegments(double[])"><B>setSegments(double[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the length of the segments.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#setSelect(boolean)"><B>setSelect(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setSelectEnabled(boolean)"><B>setSelectEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setSelectionCell(java.lang.Object)"><B>setSelectionCell(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setSelectionCells(java.lang.Object[])"><B>setSelectionCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setSelectionCells(java.util.Collection)"><B>setSelectionCells(Collection&lt;Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#setShiftDownwards(boolean)"><B>setShiftDownwards(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#setShiftEnterSubmitsText(boolean)"><B>setShiftEnterSubmitsText(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Sets shiftEnterSubmitsText
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#setShiftRightwards(boolean)"><B>setShiftRightwards(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setSignificantBits(int[])"><B>setSignificantBits(int[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the number of significant bits for each band of the image.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#setSignificantRemoteChanges(boolean)"><B>setSignificantRemoteChanges(boolean)</B></A> - 
    +Method in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#setSingleSelection(boolean)"><B>setSingleSelection(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html#setSize(int)"><B>setSize(int)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setSource(int)"><B>setSource(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setSource(com.mxgraph.model.mxICell)"><B>setSource(mxICell)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Sets the source terminal.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#setSource(boolean)"><B>setSource(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdEdge.html#setSourceName(java.lang.String)"><B>setSourceName(String)</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#setSourcePoint(com.mxgraph.util.mxPoint)"><B>setSourcePoint(mxPoint)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Sets the source point.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setSplitEnabled(boolean)"><B>setSplitEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets splitEnabled.
    +<DT><A HREF="./com/mxgraph/util/mxImage.html#setSrc(java.lang.String)"><B>setSrc(String)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setSRGBIntent(int)"><B>setSRGBIntent(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the sRGB rendering intent to be stored with this image.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#setStates(java.util.Hashtable)"><B>setStates(Hashtable&lt;Object, mxCellState&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Returns the dictionary that maps from cells to states.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#setSteps(int)"><B>setSteps(int)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Sets the number of steps for the animation.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setStrokeColor(java.lang.String)"><B>setStrokeColor(String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Caches color conversion as it is expensive.
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setStrokeColor(java.lang.String)"><B>setStrokeColor(String)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Sets the stroke color.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#setStrokeWidth(double)"><B>setStrokeWidth(double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#setStrokeWidth(double)"><B>setStrokeWidth(double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Sets the stroke width.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#setStyle(java.lang.String)"><B>setStyle(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setStyle(java.lang.String)"><B>setStyle(String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#setStyle(java.lang.String)"><B>setStyle(String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setStyle(java.lang.Object, java.lang.String)"><B>setStyle(Object, String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#setStyle(java.lang.String)"><B>setStyle(String)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Sets the string to be used as the style.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#setStyle(java.lang.Object, java.lang.String)"><B>setStyle(Object, String)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Sets the style of the given cell.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#setStyle(java.lang.String, java.lang.String, java.lang.String)"><B>setStyle(String, String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Adds or removes the given key, value pair to the style and returns the
    + new style.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#setStyle(java.lang.String, java.lang.String, java.lang.String)"><B>setStyle(String, String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setStyle(String, String, String)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setStyle(java.util.Map)"><B>setStyle(Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the cell style as a map of key, value pairs.
    +<DT><A HREF="./com/mxgraph/util/mxStyleUtils.html#setStyleFlag(java.lang.String, java.lang.String, int, java.lang.Boolean)"><B>setStyleFlag(String, String, int, Boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util">mxStyleUtils</A>
    +<DD>Sets or removes the given key from the specified style and returns the
    + new style.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#setStyleFlag(java.lang.String, java.lang.String, int, java.lang.Boolean)"><B>setStyleFlag(String, String, int, Boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD><B>Deprecated.</B>&nbsp;<I>Use <code>mxStyleUtils.setStyleFlag(String, String, int, Boolean)</code> (Jan 2012)</I>
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#setStyles(java.util.Map)"><B>setStyles(Map&lt;String, Map&lt;String, Object&gt;&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Sets all styles in the stylesheet.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setStylesheet(com.mxgraph.view.mxStylesheet)"><B>setStylesheet(mxStylesheet)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the stylesheet that provides the style.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setSuggestedPalette(com.mxgraph.util.png.mxPngSuggestedPaletteEntry[])"><B>setSuggestedPalette(mxPngSuggestedPaletteEntry[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the suggested palette information to be stored with this
    + image.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#setSwimlaneContentEnabled(boolean)"><B>setSwimlaneContentEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Sets if the content area of swimlanes should not be transparent to
    + events.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setSwimlaneNesting(boolean)"><B>setSwimlaneNesting(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets swimlaneNesting.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setSwimlaneSelectionEnabled(boolean)"><B>setSwimlaneSelectionEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setTarget(int)"><B>setTarget(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setTarget(com.mxgraph.model.mxICell)"><B>setTarget(mxICell)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Sets the target terminal.
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdEdge.html#setTargetName(java.lang.String)"><B>setTargetName(String)</B></A> - 
    +Method in class com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd">mxGdEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#setTargetPoint(com.mxgraph.util.mxPoint)"><B>setTargetPoint(mxPoint)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Sets the target point.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setTerminal(com.mxgraph.model.mxICell, boolean)"><B>setTerminal(mxICell, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html#setTerminal(java.lang.Object, java.lang.Object, boolean)"><B>setTerminal(Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model">mxGraphModel.mxChildChange</A>
    +<DD>Sets the source or target terminal field for the given edge
    + without inserting an incoming or outgoing edge in the
    + respective terminal.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#setTerminal(java.lang.Object)"><B>setTerminal(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setTerminal(java.lang.Object, java.lang.Object, boolean)"><B>setTerminal(Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#setTerminal(com.mxgraph.model.mxICell, boolean)"><B>setTerminal(mxICell, boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Sets the source or target terminal and returns the new terminal.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#setTerminal(java.lang.Object, java.lang.Object, boolean)"><B>setTerminal(Object, Object, boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Sets the source or target terminal of the given edge using.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setTerminalDistance(double)"><B>setTerminalDistance(double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the terminal distance.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#setTerminalPoint(com.mxgraph.util.mxPoint, boolean)"><B>setTerminalPoint(mxPoint, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Sets the sourcePoint or targetPoint to the given point and returns the
    + new point.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setTerminals(com.mxgraph.model.mxIGraphModel, java.lang.Object, java.lang.Object, java.lang.Object)"><B>setTerminals(mxIGraphModel, Object, Object, Object)</B></A> - 
    +Static method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Sets the source and target of the given edge in a single atomic change.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html#setText(java.lang.String)"><B>setText(String)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml">mxGraphMlShapeEdge</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#setText(java.lang.String[])"><B>setText(String[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Sets the textual data to be stored in uncompressed form with this
    + image.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setTextAntiAlias(boolean)"><B>setTextAntiAlias(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Fires a property change event for <code>textAntiAlias</code>.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#setThreshold(int)"><B>setThreshold(int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setTolerance(int)"><B>setTolerance(int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setToolTips(boolean)"><B>setToolTips(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#setTransferImageBackground(java.awt.Color)"><B>setTransferImageBackground(Color)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#setTransferImageEnabled(boolean)"><B>setTransferImageEnabled(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#setTranslate(int, int)"><B>setTranslate(int, int)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Sets the current translate.
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas.html#setTranslate(int, int)"><B>setTranslate(int, int)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>
    +<DD>Sets the translation for the following drawing requests.
    +<DT><A HREF="./com/mxgraph/canvas/mxImageCanvas.html#setTranslate(int, int)"><B>setTranslate(int, int)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas">mxImageCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#setTranslate(java.awt.Point)"><B>setTranslate(Point)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Sets the translate.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#setTranslate(com.mxgraph.util.mxPoint)"><B>setTranslate(mxPoint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Sets the current translation and invalidates the view.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#setTransparentGray(int)"><B>setTransparentGray(int)</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Sets the gray value to be used to denote transparency.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html#setTransparentRGB(int[])"><B>setTransparentRGB(int[])</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A>
    +<DD>Sets the RGB value to be used to denote transparency.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setTriesPerCell(int)"><B>setTriesPerCell(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setTripleBuffered(boolean)"><B>setTripleBuffered(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#setTripleBuffered(boolean)"><B>setTripleBuffered(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Fires a property change event for <code>tripleBuffered</code>.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#setUnchangedEnergyRoundTermination(int)"><B>setUnchangedEnergyRoundTermination(int)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#setUseBoundingBox(boolean)"><B>setUseBoundingBox(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#setUseInputOrigin(boolean)"><B>setUseInputOrigin(boolean)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.Node.html#setUserObject(java.lang.Object)"><B>setUserObject(Object)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis">mxFibonacciHeap.Node</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#setValidColor(java.awt.Color)"><B>setValidColor(Color)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Sets the color used for valid highlights.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setValue(java.lang.Object)"><B>setValue(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#setValue(java.lang.Object)"><B>setValue(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#setValue(java.lang.Object)"><B>setValue(Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Sets the user object of the cell.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Sets the user object of then given cell.
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#setValues(double[], double[])"><B>setValues(double[], double[])</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>Set values for this Spline.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setVertex(boolean)"><B>setVertex(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setVertexLabelsMovable(boolean)"><B>setVertexLabelsMovable(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets vertexLabelsMovable.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#setVertexLocation(com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell)"><B>setVertexLocation(mxGraphAbstractHierarchyCell)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>Fixes the position of the specified vertex
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#setVertexLocation(java.lang.Object, double, double)"><B>setVertexLocation(Object, double, double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Sets the new position of the given cell taking into account the size of
    + the bounding box if <useBoundingBox> is true.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#setVertexMapper(java.util.Map)"><B>setVertexMapper(Map&lt;Object, mxGraphHierarchyNode&gt;)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#setVerticalAlign(java.lang.Object)"><B>setVerticalAlign(Object)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setVerticalPageCount(int)"><B>setVerticalPageCount(int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setView(com.mxgraph.view.mxGraphView)"><B>setView(mxGraphView)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the enclosing graph view.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#setView(com.mxgraph.view.mxGraphView)"><B>setView(mxGraphView)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the view that contains the cell states.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#setVisible(boolean)"><B>setVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#setVisible(boolean)"><B>setVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#setVisible(java.lang.Object, boolean)"><B>setVisible(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxICell.html#setVisible(boolean)"><B>setVisible(boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>
    +<DD>Specifies if the cell is visible.
    +<DT><A HREF="./com/mxgraph/model/mxIGraphModel.html#setVisible(java.lang.Object, boolean)"><B>setVisible(Object, boolean)</B></A> - 
    +Method in interface com.mxgraph.model.<A HREF="./com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>
    +<DD>Sets the visible state of the given cell.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#setVisible(boolean)"><B>setVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#setVisible(boolean)"><B>setVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#setVisible(boolean)"><B>setVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#setVisibleTerminalState(com.mxgraph.view.mxCellState, boolean)"><B>setVisibleTerminalState(mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Sets the visible source or target terminal state.
    +<DT><A HREF="./com/mxgraph/util/mxImage.html#setWidth(int)"><B>setWidth(int)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#setWidth(double)"><B>setWidth(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Sets the width of the rectangle.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#setWindingRule(int)"><B>setWindingRule(int)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Sets the winding rule used to construct the path.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#setWindingRule(int)"><B>setWindingRule(int)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>Sets the winding rule used to construct the path.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#setWindingRule(int)"><B>setWindingRule(int)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/util/svg/ShapeProducer.html#setWindingRule(int)"><B>setWindingRule(int)</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A>
    +<DD>Sets the winding rule used to construct the path.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setX(int, double)"><B>setX(int, double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>Set the value of x for the specified layer
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setX(double)"><B>setX(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#setX(double)"><B>setX(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Sets the x-coordinate of the point.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#setX0(double)"><B>setX0(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#setY(int, double)"><B>setY(int, double)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>Set the value of y for the specified layer
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#setY(double)"><B>setY(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#setY(double)"><B>setY(double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Sets the x-coordinate of the point.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#setY0(double)"><B>setY0(double)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setZoomFactor(double)"><B>setZoomFactor(double)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#setZoomHandleVisible(boolean)"><B>setZoomHandleVisible(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#setZoomPolicy(int)"><B>setZoomPolicy(int)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#shadow(java.lang.String, boolean)"><B>shadow(String, boolean)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#shadow(java.lang.String, boolean)"><B>shadow(String, boolean)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Paints the current path as a shadow.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#SHADOW_COLOR"><B>SHADOW_COLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the color to be used for shadows.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHADOW_OFFSETX"><B>SHADOW_OFFSETX</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the x-offset to be used for shadows.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHADOW_OFFSETY"><B>SHADOW_OFFSETY</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the y-offset to be used for shadows.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#SHAPE"><B>SHAPE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#shape"><B>shape</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_ACTOR"><B>SHAPE_ACTOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_ACTOR
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_ARROW"><B>SHAPE_ARROW</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_ARROW
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_CLOUD"><B>SHAPE_CLOUD</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_CLOUD
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_CONNECTOR"><B>SHAPE_CONNECTOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_CONNECTOR
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_CURVE"><B>SHAPE_CURVE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_ARROW
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_CYLINDER"><B>SHAPE_CYLINDER</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_CYLINDER
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_DOUBLE_ELLIPSE"><B>SHAPE_DOUBLE_ELLIPSE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_DOUBLE_ELLIPSE
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_ELLIPSE"><B>SHAPE_ELLIPSE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_ELLIPSE
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_HEXAGON"><B>SHAPE_HEXAGON</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_HEXAGON
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_IMAGE"><B>SHAPE_IMAGE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_IMAGE
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_LABEL"><B>SHAPE_LABEL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_LABEL
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_LINE"><B>SHAPE_LINE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_LINE
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_RECTANGLE"><B>SHAPE_RECTANGLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_RECTANGLE
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_RHOMBUS"><B>SHAPE_RHOMBUS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_RHOMBUS
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_SWIMLANE"><B>SHAPE_SWIMLANE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_SWIMLANE
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SHAPE_TRIANGLE"><B>SHAPE_TRIANGLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>SHAPE_TRIANGLE
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#SHAPEEDGE"><B>SHAPEEDGE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#SHAPENODE"><B>SHAPENODE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#shapePath"><B>shapePath</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><B>ShapeProducer</B></A> - Interface in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This interface represents objects which creates Shape objects.<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#shapes"><B>shapes</B></A> - 
    +Static variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Maps from names to mxIVertexShape instances.
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#sharedInstance"><B>sharedInstance</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#shiftCell(java.lang.Object, double, double, double, double, double, double, double, double, boolean)"><B>shiftCell(Object, double, double, double, double, double, double, double, double, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#shiftDownwards"><B>shiftDownwards</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#shiftEnterSubmitsText"><B>shiftEnterSubmitsText</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Specifies if shift ENTER should submit text if enterStopsCellEditing
    + is true.
    +<DT><A HREF="./com/mxgraph/view/mxSpaceManager.html#shiftRightwards"><B>shiftRightwards</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view">mxSpaceManager</A>
    +<DD>Optional string that specifies the attributename to be passed to
    + mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#shouldRemoveCellFromParent(java.lang.Object, java.lang.Object[], java.awt.event.MouseEvent)"><B>shouldRemoveCellFromParent(Object, Object[], MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Returns true if the given cells should be removed from the parent for the specified
    + mousereleased event.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#show(com.mxgraph.swing.view.mxCellStatePreview)"><B>show(mxCellStatePreview)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Shows the changes in the given mxCellStatePreview.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#show()"><B>show()</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>Returns a dirty rectangle to be repainted in mxGraphControl.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#showDirtyRectangle"><B>showDirtyRectangle</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Used for debugging the dirty region.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#SIDE_MASK"><B>SIDE_MASK</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#SideToSide"><B>SideToSide</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>Provides a vertical elbow edge.
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#significant"><B>significant</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Specifies this undoable edit is significant.
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html#significantRemoteChanges"><B>significantRemoteChanges</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing">mxSharedGraphModel</A>
    +<DD>Whether remote changes should be significant in the
    + local command history.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#singleSelection"><B>singleSelection</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Specifies if only one selected item at a time is allowed.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#size"><B>size</B></A> - 
    +Variable in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#size()"><B>size()</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Returns the size of the heap which is measured in the number of elements
    + contained in the heap.
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html#size"><B>size</B></A> - 
    +Variable in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis">mxUnionFind.Node</A>
    +<DD>The size of the tree.
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#size"><B>size</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Maximum command history size.
    +<DT><A HREF="./com/mxgraph/view/mxGraphSelectionModel.html#size()"><B>size()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view">mxGraphSelectionModel</A>
    +<DD>Returns the number of selected cells.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#skipCommaSpaces()"><B>skipCommaSpaces()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>Skips the whitespaces and an optional comma.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#skipCommaSpaces2()"><B>skipCommaSpaces2()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Skips the whitespaces and an optional comma.
    +<DT><A HREF="./com/mxgraph/util/svg/AbstractParser.html#skipSpaces()"><B>skipSpaces()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg">AbstractParser</A>
    +<DD>Skips the whitespaces in the current reader.
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#skipSubPath()"><B>skipSubPath()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>Skips a sub-path.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#snap(double)"><B>snap(double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Snaps the given numeric value to the grid if <gridEnabled> is true.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#snapScaledPoint(com.mxgraph.util.mxPoint)"><B>snapScaledPoint(mxPoint)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#snapScaledPoint(com.mxgraph.util.mxPoint, double, double)"><B>snapScaledPoint(mxPoint, double, double)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#snapshot(com.mxgraph.view.mxCellState)"><B>snapshot(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxSpline1D.html#solve(double[][], double[])"><B>solve(double[][], double[])</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util">mxSpline1D</A>
    +<DD>Solves Ax=b and stores the solution in b.
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#sort(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)"><B>sort(mxCellState[], mxICostFunction)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Returns a sorted set for <code>cells</code> with respect to
    + <code>cf</code>.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#sortCells(java.lang.Object[], boolean)"><B>sortCells(Object[], boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Sorts the given cells according to the order in the cell hierarchy.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#sortCells(java.util.Collection, boolean)"><B>sortCells(Collection&lt;Object&gt;, boolean)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Sorts the given cells according to the order in the cell hierarchy.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#source"><B>source</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>The node this edge is sourced at
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#source"><B>source</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>The index of the node attached to this edge as source, edges only
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#source"><B>source</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Reference to the parent cell and source and target terminals for edges.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#source"><B>source</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#source"><B>source</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#source"><B>source</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Holds the source of the undoable edit.
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#source"><B>source</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Boolean that specifies if the rule is applied to the source or target
    + terminal of an edge.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#SOURCE_MASK"><B>SOURCE_MASK</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#sourcePoint"><B>sourcePoint</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Defines the source- and target-point of the edge.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#sourceState"><B>sourceState</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#SOURCETARGET"><B>SOURCETARGET</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html#spacing"><B>spacing</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout">mxParallelEdgeLayout</A>
    +<DD>Specifies the spacing between the edges.
    +<DT><A HREF="./com/mxgraph/layout/mxPartitionLayout.html#spacing"><B>spacing</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout">mxPartitionLayout</A>
    +<DD>Integer that specifies the absolute spacing in pixels between the
    + children.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#spacing"><B>spacing</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Specifies the spacing between the cells.
    +<DT><A HREF="./com/mxgraph/util/mxSpline.html#Spline2D(double[], double[])"><B>Spline2D(double[], double[])</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util">mxSpline</A>
    +<DD>Creates a new mxSpline.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#SPLIT_EDGE"><B>SPLIT_EDGE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SPLIT_WORDS"><B>SPLIT_WORDS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Whether or not to split whole words when applying word wrapping in mxUtils.wordWrap.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#splitEdge(java.lang.Object, java.lang.Object[])"><B>splitEdge(Object, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#splitEdge(java.lang.Object, java.lang.Object[], double, double)"><B>splitEdge(Object, Object[], double, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#splitEdge(java.lang.Object, java.lang.Object[], java.lang.Object, double, double)"><B>splitEdge(Object, Object[], Object, double, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Splits the given edge by adding a newEdge between the previous source
    + and the given cell and reconnecting the source of the given edge to the
    + given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#splitEnabled"><B>splitEnabled</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if dropping onto edges should be enabled.
    +<DT><A HREF="./com/mxgraph/util/mxImage.html#src"><B>src</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>Holds the path or URL for the image.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#stack"><B>stack</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Stack of states for save/restore.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#start(java.awt.event.MouseEvent, int)"><B>start(MouseEvent, int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Starts handling a gesture at the given handle index.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState)"><B>start(MouseEvent, mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, java.lang.String)"><B>start(MouseEvent, mxCellState, String)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>Updates the style of the edge preview from the incoming edge
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#start(java.awt.event.MouseEvent)"><B>start(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#start(java.awt.event.MouseEvent)"><B>start(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#start(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState)"><B>start(MouseEvent, mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>Sets the translation of the preview.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html#start"><B>start</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html#start(java.awt.event.MouseEvent)"><B>start(MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler">mxRotationHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxRubberband.html#start(java.awt.Point)"><B>start(Point)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler">mxRubberband</A>
    +<DD>Starts the rubberband selection at the given point.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html#start"><B>start</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#START"><B>START</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#START_EDITING"><B>START_EDITING</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#startAnimation()"><B>startAnimation()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Starts the animation by repeatedly invoking updateAnimation.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html#startBuffer"><B>startBuffer</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelPosition</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#startEditing()"><B>startEditing()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#startEditing(java.lang.Object, java.util.EventObject)"><B>startEditing(Object, EventObject)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxICellEditor.html#startEditing(java.lang.Object, java.util.EventObject)"><B>startEditing(Object, EventObject)</B></A> - 
    +Method in interface com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A>
    +<DD>Starts editing the given cell.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#startEditingAtCell(java.lang.Object)"><B>startEditingAtCell(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#startEditingAtCell(java.lang.Object, java.util.EventObject)"><B>startEditingAtCell(Object, EventObject)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxGraphViewReader.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader">mxGraphViewReader</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> - 
    +Method in class com.mxgraph.reader.<A HREF="./com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader">mxSaxOutputHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#startPath()"><B>startPath()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PathHandler.html#startPath()"><CODE>PathHandler.startPath()</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PathHandler.html#startPath()"><B>startPath()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>
    +<DD>Invoked when the path starts.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#startPoint"><B>startPoint</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#startPoints()"><B>startPoints()</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>Implements <A HREF="./com/mxgraph/util/svg/PointsHandler.html#startPoints()"><CODE>PointsHandler.startPoints()</CODE></A>.
    +<DT><A HREF="./com/mxgraph/util/svg/PointsHandler.html#startPoints()"><B>startPoints()</B></A> - 
    +Method in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>
    +<DD>Invoked when the points attribute starts.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#startState"><B>startState</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#state"><B>state</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Represents the current state of the canvas.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#state"><B>state</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Cache the state associated with this shape
    +<DT><A HREF="./com/mxgraph/sharing/mxSharedState.html#state"><B>state</B></A> - 
    +Variable in class com.mxgraph.sharing.<A HREF="./com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing">mxSharedState</A>
    +<DD>Holds the initial state of the diagram.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellHandler.html#state"><B>state</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler">mxCellHandler</A>
    +<DD>Holds the cell state associated with this handler.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#states"><B>states</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Maps from cells to cell states.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STENCIL_SHADOW_OPACITY"><B>STENCIL_SHADOW_OPACITY</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the default opacity for stencils shadows.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STENCIL_SHADOWCOLOR"><B>STENCIL_SHADOWCOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the default shadow color for stencils.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilRegistry.html#stencils"><B>stencils</B></A> - 
    +Static variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape">mxStencilRegistry</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#step"><B>step</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Counts the current number of steps of the animation.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#steps"><B>steps</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Specifies the maximum number of steps for the morphing.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#stop(boolean)"><B>stop(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#stop(boolean, java.awt.event.MouseEvent)"><B>stop(boolean, MouseEvent)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#stop(boolean, java.awt.event.MouseEvent, double, double, boolean, java.lang.Object)"><B>stop(boolean, MouseEvent, double, double, boolean, Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#STOP"><B>STOP</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#stopAnimation()"><B>stopAnimation()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Stops the animation by deleting the timer and fires mxEvent.DONE.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#stopAnimation()"><B>stopAnimation()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#stopEditing(boolean)"><B>stopEditing(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#stopEditing(boolean)"><B>stopEditing(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxICellEditor.html#stopEditing(boolean)"><B>stopEditing(boolean)</B></A> - 
    +Method in interface com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A>
    +<DD>Stops the current editing.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#stopRecursion(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)"><B>stopRecursion(mxCellState, mxPoint)</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Returns true if the animation should not recursively find more
    + deltas for children if the given parent state has been animated.
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#string"><B>string</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>The characters.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#stringForValue(com.mxgraph.io.graphml.mxGraphMlKey.keyForValues)"><B>stringForValue(mxGraphMlKey.keyForValues)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>Converts a enum value in its corresponding String value for the
    + keyFor attribute.
    +<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg"><B>StringNormalizingReader</B></A> - Class in <A HREF="./com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A><DD>This class represents a NormalizingReader which handles Strings.<DT><A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html#StringNormalizingReader(java.lang.String)"><B>StringNormalizingReader(String)</B></A> - 
    +Constructor for class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg">StringNormalizingReader</A>
    +<DD>Creates a new StringNormalizingReader.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html#stringTypeValue(com.mxgraph.io.graphml.mxGraphMlKey.keyTypeValues)"><B>stringTypeValue(mxGraphMlKey.keyTypeValues)</B></A> - 
    +Method in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml">mxGraphMlKey</A>
    +<DD>Converts a enum value in its corresponding string value for the
    + keyType attribute.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#stroke()"><B>stroke()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#stroke()"><B>stroke()</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Paints the outline of the current path.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#strokeColor"><B>strokeColor</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#strokeColorValue"><B>strokeColorValue</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html#strokeWidth"><B>strokeWidth</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D.CanvasState</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#strokewidth"><B>strokewidth</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Holds the strokewidth direction from the description.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#STYLE"><B>STYLE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#style"><B>style</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Holds the style as a string of the form
    + stylename[;key=value].
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html#style"><B>style</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxStyleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#style"><B>style</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>Contains an array of key, value pairs that represent the style of the
    + cell.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html#style"><B>style</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler">mxInsertHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#style"><B>style</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Contains an array of key, value pairs that represent the style of the
    + cell.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ALIGN"><B>STYLE_ALIGN</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the align style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_AUTOSIZE"><B>STYLE_AUTOSIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the autosize style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_BENDABLE"><B>STYLE_BENDABLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the bendable style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_CLONEABLE"><B>STYLE_CLONEABLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the cloneable style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_DASH_PATTERN"><B>STYLE_DASH_PATTERN</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the dashed pattern style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_DASHED"><B>STYLE_DASHED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the dashed style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_DELETABLE"><B>STYLE_DELETABLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the deletable style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_DIRECTION"><B>STYLE_DIRECTION</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the direction style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_EDGE"><B>STYLE_EDGE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Takes a function that creates points.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_EDITABLE"><B>STYLE_EDITABLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the editable style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ELBOW"><B>STYLE_ELBOW</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the elbow style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ENDARROW"><B>STYLE_ENDARROW</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the endArrow style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ENDFILL"><B>STYLE_ENDFILL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the endFill style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ENDSIZE"><B>STYLE_ENDSIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the endSize style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ENTRY_PERIMETER"><B>STYLE_ENTRY_PERIMETER</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines if the perimeter should be used to find the exact entry point
    + along the perimeter of the target.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ENTRY_X"><B>STYLE_ENTRY_X</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the horizontal relative coordinate connection point
    + of an edge with its target terminal.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ENTRY_Y"><B>STYLE_ENTRY_Y</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the vertical relative coordinate connection point
    + of an edge with its target terminal.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_EXIT_PERIMETER"><B>STYLE_EXIT_PERIMETER</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines if the perimeter should be used to find the exact entry point
    + along the perimeter of the source.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_EXIT_X"><B>STYLE_EXIT_X</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the horizontal relative coordinate connection point
    + of an edge with its source terminal.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_EXIT_Y"><B>STYLE_EXIT_Y</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the vertical relative coordinate connection point
    + of an edge with its source terminal.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_FILLCOLOR"><B>STYLE_FILLCOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the fillColor style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_FOLDABLE"><B>STYLE_FOLDABLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the foldable style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_FONTCOLOR"><B>STYLE_FONTCOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the fontColor style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_FONTFAMILY"><B>STYLE_FONTFAMILY</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the fontFamily style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_FONTSIZE"><B>STYLE_FONTSIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the fontSize style (in points).
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_FONTSTYLE"><B>STYLE_FONTSTYLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the fontStyle style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_GLASS"><B>STYLE_GLASS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the glass style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_GRADIENT_DIRECTION"><B>STYLE_GRADIENT_DIRECTION</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the gradient direction.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_GRADIENTCOLOR"><B>STYLE_GRADIENTCOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the gradientColor style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_HORIZONTAL"><B>STYLE_HORIZONTAL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the horizontal style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_IMAGE"><B>STYLE_IMAGE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the image style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_IMAGE_ALIGN"><B>STYLE_IMAGE_ALIGN</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the align style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_IMAGE_BACKGROUND"><B>STYLE_IMAGE_BACKGROUND</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the image background color.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_IMAGE_BORDER"><B>STYLE_IMAGE_BORDER</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the image border color.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_IMAGE_FLIPH"><B>STYLE_IMAGE_FLIPH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the horizontal image flip.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_IMAGE_FLIPV"><B>STYLE_IMAGE_FLIPV</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the vertical image flip.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_IMAGE_HEIGHT"><B>STYLE_IMAGE_HEIGHT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the imageHeight style The type of this value is
    + <code>int</code>, the value is the image height in pixels and must be
    + greater than 0.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_IMAGE_VERTICAL_ALIGN"><B>STYLE_IMAGE_VERTICAL_ALIGN</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the verticalAlign style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_IMAGE_WIDTH"><B>STYLE_IMAGE_WIDTH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the imageWidth style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_COLOR"><B>STYLE_INDICATOR_COLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the indicatorColor style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_GRADIENTCOLOR"><B>STYLE_INDICATOR_GRADIENTCOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the indicatorGradientColor style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_HEIGHT"><B>STYLE_INDICATOR_HEIGHT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the indicatorHeight style (in px).
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_IMAGE"><B>STYLE_INDICATOR_IMAGE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the indicatorImage style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_SHAPE"><B>STYLE_INDICATOR_SHAPE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the indicatorShape style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_SPACING"><B>STYLE_INDICATOR_SPACING</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the indicatorSpacing style (in px).
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_INDICATOR_WIDTH"><B>STYLE_INDICATOR_WIDTH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the indicatorWidth style (in px).
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_LABEL_BACKGROUNDCOLOR"><B>STYLE_LABEL_BACKGROUNDCOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the label background color.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_LABEL_BORDERCOLOR"><B>STYLE_LABEL_BORDERCOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the label border color.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_LABEL_POSITION"><B>STYLE_LABEL_POSITION</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the horizontal label position of vertices.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_LOOP"><B>STYLE_LOOP</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the loop style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_MOVABLE"><B>STYLE_MOVABLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the movable style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_NOEDGESTYLE"><B>STYLE_NOEDGESTYLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the noEdgeStyle style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_NOLABEL"><B>STYLE_NOLABEL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the noLabel style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_OPACITY"><B>STYLE_OPACITY</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the opacity style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ORTHOGONAL"><B>STYLE_ORTHOGONAL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines if the connection points on either end of the edge should be
    + computed so that the edge is vertical or horizontal if possible and
    + if the point is not at a fixed location.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_OVERFLOW"><B>STYLE_OVERFLOW</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the overflow style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_PERIMETER"><B>STYLE_PERIMETER</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the perimeter style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_PERIMETER_SPACING"><B>STYLE_PERIMETER_SPACING</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the perimeter spacing.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_PORT_CONSTRAINT"><B>STYLE_PORT_CONSTRAINT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the direction(s) that edges are allowed to connect to cells in.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_RESIZABLE"><B>STYLE_RESIZABLE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the resizable style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ROTATION"><B>STYLE_ROTATION</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the rotation style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ROUNDED"><B>STYLE_ROUNDED</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the rounded style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ROUTING_CENTER_X"><B>STYLE_ROUTING_CENTER_X</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the horizontal routing center.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_ROUTING_CENTER_Y"><B>STYLE_ROUTING_CENTER_Y</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the vertical routing center.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SEGMENT"><B>STYLE_SEGMENT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the segment style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SEPARATORCOLOR"><B>STYLE_SEPARATORCOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the separatorColor style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SHADOW"><B>STYLE_SHADOW</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the shadow style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SHAPE"><B>STYLE_SHAPE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the shape style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SOURCE_PERIMETER_SPACING"><B>STYLE_SOURCE_PERIMETER_SPACING</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the source perimeter spacing.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SOURCE_PORT"><B>STYLE_SOURCE_PORT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the ID of the cell that should be used for computing the
    + perimeter point of the source for an edge.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SPACING"><B>STYLE_SPACING</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the spacing.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SPACING_BOTTOM"><B>STYLE_SPACING_BOTTOM</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the spacingBottom style The value represents the
    + spacing, in pixels, added to the bottom side of a label in a vertex
    + (style applies to vertices only).
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SPACING_LEFT"><B>STYLE_SPACING_LEFT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the spacingLeft style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SPACING_RIGHT"><B>STYLE_SPACING_RIGHT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the spacingRight style The value represents the
    + spacing, in pixels, added to the right side of a label in a vertex (style
    + applies to vertices only).
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_SPACING_TOP"><B>STYLE_SPACING_TOP</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the spacingTop style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_STARTARROW"><B>STYLE_STARTARROW</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the startArrow style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_STARTFILL"><B>STYLE_STARTFILL</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the startFill style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_STARTSIZE"><B>STYLE_STARTSIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the startSize style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_STENCIL_FLIPH"><B>STYLE_STENCIL_FLIPH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the horizontal stencil flip.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_STENCIL_FLIPV"><B>STYLE_STENCIL_FLIPV</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the vertical stencil flip.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_STROKECOLOR"><B>STYLE_STROKECOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the strokeColor style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_STROKEWIDTH"><B>STYLE_STROKEWIDTH</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the strokeWidth style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_TARGET_PERIMETER_SPACING"><B>STYLE_TARGET_PERIMETER_SPACING</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the target perimeter spacing.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_TARGET_PORT"><B>STYLE_TARGET_PORT</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the ID of the cell that should be used for computing the
    + perimeter point of the target for an edge.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_TEXT_OPACITY"><B>STYLE_TEXT_OPACITY</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the text opacity style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_VERTICAL_ALIGN"><B>STYLE_VERTICAL_ALIGN</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the verticalAlign style.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_VERTICAL_LABEL_POSITION"><B>STYLE_VERTICAL_LABEL_POSITION</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the vertical label position of vertices.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#STYLE_WHITE_SPACE"><B>STYLE_WHITE_SPACE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the key for the white-space style.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#styleForCellChanged(java.lang.Object, java.lang.String)"><B>styleForCellChanged(Object, String)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner callback to update the style of the given mxCell
    + using mxCell.setStyle and return the previous style.
    +<DT><A HREF="./com/mxgraph/view/mxStylesheet.html#styles"><B>styles</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view">mxStylesheet</A>
    +<DD>Maps from names to styles.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#stylesheet"><B>stylesheet</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Holds the stylesheet that defines the appearance of the cells.
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html#subShapes"><B>subShapes</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape">mxStencilShape.svgShape</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html#sum(com.mxgraph.view.mxCellState[], com.mxgraph.analysis.mxICostFunction)"><B>sum(mxCellState[], mxICostFunction)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis">mxGraphAnalysis</A>
    +<DD>Returns the sum of all cost for <code>cells</code> with respect to
    + <code>cf</code>.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#SVG_SHADOWTRANSFORM"><B>SVG_SHADOWTRANSFORM</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the transformation used to draw shadows in SVG.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#swap()"><B>swap()</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Swaps the x, y, width and height with the values stored in
    + alternateBounds and puts the previous values into alternateBounds as
    + a rectangle.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#swapBounds(java.lang.Object, boolean)"><B>swapBounds(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Swaps the alternate and the actual bounds in the geometry of the given
    + cell invoking updateAlternateBounds before carrying out the swap.
    +<DT><A HREF="./com/mxgraph/view/mxSwimlaneManager.html#swimlaneAdded(java.lang.Object)"><B>swimlaneAdded(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view">mxSwimlaneManager</A>
    +<DD>Called for each swimlane which has been added.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#swimlaneContentEnabled"><B>swimlaneContentEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Specifies if the the content area of swimlane should be non-transparent
    + to mouse events.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#swimlaneNesting"><B>swimlaneNesting</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies if nesting of swimlanes is allowed.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#swimlaneSelectionEnabled"><B>swimlaneSelectionEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if swimlanes are selected when the mouse is released over the
    + swimlanes content area.
    +</DL>
    +<HR>
    +<A NAME="_T_"><!-- --></A><H2>
    +<B>T</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html#target"><B>target</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyEdge</A>
    +<DD>The node this edge targets
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#target"><B>target</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>The index of the node attached to this edge as target, edges only
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#target"><B>target</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Reference to the parent cell and source and target terminals for edges.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#TARGET_MASK"><B>TARGET_MASK</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#targetPoint"><B>targetPoint</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Defines the source- and target-point of the edge.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#temp"><B>temp</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>Temporary variable for general use.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#temperature"><B>temperature</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Temperature to limit displacement at later stages of layout.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#template"><B>template</B></A> - 
    +Variable in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Holds the template object associated with this codec.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html#terminal"><B>terminal</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model">mxGraphModel.mxTerminalChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#terminalDistance"><B>terminalDistance</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Caches the distance between the end points and the length of an edge.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#terminalForCellChanged(java.lang.Object, java.lang.Object, boolean)"><B>terminalForCellChanged(Object, Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner helper function to update the terminal of the edge using
    + mxCell.insertEdge and return the previous terminal.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#text(double, double, double, double, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.lang.String)"><B>text(double, double, double, double, String, String, String, boolean, boolean, String)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>Draws the given text.
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#text(double, double, double, double, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.lang.String)"><B>text(double, double, double, double, String, String, String, boolean, boolean, String)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Draws the given string.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#TEXT"><B>TEXT</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#TEXT_SHAPE_DEFAULT"><B>TEXT_SHAPE_DEFAULT</B></A> - 
    +Static variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#TEXT_SHAPE_HTML"><B>TEXT_SHAPE_HTML</B></A> - 
    +Static variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#textAntiAlias"><B>textAntiAlias</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#textArea"><B>textArea</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Holds the editor for plain text editing.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html#textShapes"><B>textShapes</B></A> - 
    +Static variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas">mxGraphics2DCanvas</A>
    +<DD>Maps from names to mxITextShape instances.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#textSubmitAction"><B>textSubmitAction</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#threshold"><B>threshold</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>Maximum number of cells to preview individually.
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#timer"><B>timer</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Time instance that is used for timing the animation.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#TOGGLE_CELLS"><B>TOGGLE_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#toggleCells(boolean)"><B>toggleCells(boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the visible state of the selection cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#toggleCells(boolean, java.lang.Object[])"><B>toggleCells(boolean, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the visible state of the specified cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#toggleCells(boolean, java.lang.Object[], boolean)"><B>toggleCells(boolean, Object[], boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Sets the visible state of the specified cells and all connected edges
    + if includeEdges is true.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#toggleCellStyle(java.lang.String, boolean, java.lang.Object)"><B>toggleCellStyle(String, boolean, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Toggles the boolean value for the given key in the style of the
    + given cell.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#toggleCellStyleFlags(java.lang.String, int)"><B>toggleCellStyleFlags(String, int)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Toggles the given bit for the given key in the styles of the selection
    + cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#toggleCellStyleFlags(java.lang.String, int, java.lang.Object[])"><B>toggleCellStyleFlags(String, int, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Toggles the given bit for the given key in the styles of the specified
    + cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#toggleCellStyles(java.lang.String, boolean)"><B>toggleCellStyles(String, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Toggles the boolean value for the given key in the style of the
    + selection cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#toggleCellStyles(java.lang.String, boolean, java.lang.Object[])"><B>toggleCellStyles(String, boolean, Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Toggles the boolean value for the given key in the style of the given
    + cells.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#tolerance"><B>tolerance</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies the tolerance for mouse clicks.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#TOP"><B>TOP</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#TOP_MASK"><B>TOP_MASK</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#TopToBottom"><B>TopToBottom</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>Provides a horizontal elbow edge.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html#toString()"><B>toString()</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.<A HREF="./com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical">mxHierarchicalLayout</A>
    +<DD>Returns <code>Hierarchical</code>, the name of this algorithm.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#toString()"><B>toString()</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Returns <code>Organic</code>, the name of this algorithm.
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#toString()"><B>toString()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Returns a <code>String</code> that represents the value
    + of this <code>mxPoint</code>.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#toString()"><B>toString()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Returns the <code>String</code> representation of this
    + <code>mxRectangle</code>.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#tracker"><B>tracker</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#transferBounds"><B>transferBounds</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>Unscaled, untranslated bounding box of the selection cells.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#transferImageBackground"><B>transferImageBackground</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Specifies the background color for the transfer image.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#transferImageEnabled"><B>transferImageEnabled</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Specifies if a transfer image should be created for the transferable.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html#transform(java.awt.geom.AffineTransform)"><B>transform(AffineTransform)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg">ExtendedGeneralPath</A>
    +<DD>Delegates to the enclosed <code>GeneralPath</code>.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#transformControlPoint(com.mxgraph.view.mxCellState, com.mxgraph.util.mxPoint)"><B>transformControlPoint(mxCellState, mxPoint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Transforms the given control point to an absolute point.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#transformScreenPoint(double, double)"><B>transformScreenPoint(double, double)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxStencilShape.html#transformShape(java.awt.Shape, double, double, double, double)"><B>transformShape(Shape, double, double, double, double)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape">mxStencilShape</A>
    +<DD>Scales the points composing this shape by the x and y ratios specified
    +<DT><A HREF="./com/mxgraph/canvas/mxBasicCanvas.html#translate"><B>translate</B></A> - 
    +Variable in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas">mxBasicCanvas</A>
    +<DD>Specifies the current translation.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#translate(double, double)"><B>translate(double, double)</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/canvas/mxICanvas2D.html#translate(double, double)"><B>translate(double, double)</B></A> - 
    +Method in interface com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>
    +<DD>Translates the canvas by the given amount.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#translate(double, double)"><B>translate(double, double)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Translates the geometry by the specified amount.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#translate"><B>translate</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Specifies a translation for painting.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#translate"><B>translate</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#TRANSLATE"><B>TRANSLATE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#translate"><B>translate</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Point that specifies the current translation.
    +<DT><A HREF="./com/mxgraph/model/mxGeometry.html#TRANSLATE_CONTROL_POINTS"><B>TRANSLATE_CONTROL_POINTS</B></A> - 
    +Static variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A>
    +<DD>Global switch to translate the points in translate.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#translateCell(java.lang.Object, double, double)"><B>translateCell(Object, double, double)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Translates the geometry of the given cell and stores the new,
    + translated geometry in the model as an atomic change.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#translatePoints(java.util.List, double, double)"><B>translatePoints(List&lt;mxPoint&gt;, double, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Creates a new list of new points obtained by translating the points in
    + the given list by the given vector.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html#translateState(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, double, double)"><B>translateState(mxCellState, mxCellState, double, double)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view">mxCellStatePreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#transparentSwimlaneContent"><B>transparentSwimlaneContent</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if the content area should be transparent to events.
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)"><B>traverse(Object, boolean, mxGraph.mxICellVisitor, Object, Set&lt;Object&gt;)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Traverses the (directed) graph invoking the given function for each
    + visited vertex and edge.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor)"><B>traverse(Object, boolean, mxGraph.mxICellVisitor)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Traverses the tree starting at the given vertex.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#traverse(java.lang.Object, boolean, com.mxgraph.view.mxGraph.mxICellVisitor, java.lang.Object, java.util.Set)"><B>traverse(Object, boolean, mxGraph.mxICellVisitor, Object, Set&lt;Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Traverses the (directed) graph invoking the given function for each
    + visited vertex and edge.
    +<DT><A HREF="./com/mxgraph/view/mxPerimeter.html#TrianglePerimeter"><B>TrianglePerimeter</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view">mxPerimeter</A>
    +<DD>Describes a triangle perimeter.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#triesPerCell"><B>triesPerCell</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>determines, in how many segments the circle around cells is divided, to
    + find a new position for the cell.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#trigger"><B>trigger</B></A> - 
    +Variable in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#trim()"><B>trim()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Removes all pending steps after indexOfNextAdd from the history,
    + invoking die on each edit.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#tripleBuffer"><B>tripleBuffer</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#tripleBuffer"><B>tripleBuffer</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>TODO: Not yet implemented.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#tripleBuffered"><B>tripleBuffered</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies if an image buffer should be used for painting the component.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#tripleBuffered"><B>tripleBuffered</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#tripleBufferGraphics"><B>tripleBufferGraphics</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#tripleBufferGraphics"><B>tripleBufferGraphics</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Holds the graphics of the triple buffer.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#TYPE"><B>TYPE</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#type"><B>type</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Defines the type of the source or target terminal.
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#typeError"><B>typeError</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Holds the localized error message to be displayed if the type of the
    + neighbor for a connection does not match the rule.
    +</DL>
    +<HR>
    +<A NAME="_U_"><!-- --></A><H2>
    +<B>U</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#unchangedEnergyRoundCount"><B>unchangedEnergyRoundCount</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Keeps track of how many consecutive round have passed without any energy
    + changes
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#unchangedEnergyRoundTermination"><B>unchangedEnergyRoundTermination</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>The number of round of no node moves taking placed that the layout
    + terminates
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#UNDO"><B>UNDO</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#undo()"><B>undo()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#undo()"><B>undo()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Undoes the last change.
    +<DT><A HREF="./com/mxgraph/util/mxUndoManager.html#undoableEditHappened(com.mxgraph.util.mxUndoableEdit)"><B>undoableEditHappened(mxUndoableEdit)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util">mxUndoManager</A>
    +<DD>Method to be called to add new undoable edits to the history.
    +<DT><A HREF="./com/mxgraph/view/mxLayoutManager.html#undoHandler"><B>undoHandler</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view">mxLayoutManager</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxUndoableEdit.html#undone"><B>undone</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util">mxUndoableEdit</A>
    +<DD>Specifies the state of the undoable edit.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#UNGROUP_CELLS"><B>UNGROUP_CELLS</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#ungroupCells()"><B>ungroupCells()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Ungroups the selection cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#ungroupCells(java.lang.Object[])"><B>ungroupCells(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Ungroups the given cells by moving the children the children to their
    + parents parent and removing the empty groups.
    +<DT><A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html#union(com.mxgraph.analysis.mxFibonacciHeap, com.mxgraph.analysis.mxFibonacciHeap)"><B>union(mxFibonacciHeap, mxFibonacciHeap)</B></A> - 
    +Static method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis">mxFibonacciHeap</A>
    +<DD>Joins two Fibonacci heaps into a new one.
    +<DT><A HREF="./com/mxgraph/analysis/mxUnionFind.html#union(com.mxgraph.analysis.mxUnionFind.Node, com.mxgraph.analysis.mxUnionFind.Node)"><B>union(mxUnionFind.Node, mxUnionFind.Node)</B></A> - 
    +Method in class com.mxgraph.analysis.<A HREF="./com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis">mxUnionFind</A>
    +<DD>Unifies the sets <code>a</code> and <code>b</code> in constant time
    + using a union by rank on the tree size.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html#union(com.mxgraph.util.mxRectangle, double, double, int)"><B>union(mxRectangle, double, double, int)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler">mxVertexHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#unmark()"><B>unmark()</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Hides the marker and fires a mxEvent.MARK event.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#unsetBackground()"><B>unsetBackground()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Suppresses the 'bKGD' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#unsetBackground()"><B>unsetBackground()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Suppresses the 'bKGD' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html#unsetBackground()"><B>unsetBackground()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.RGB</A>
    +<DD>Suppresses the 'bKGD' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetBackground()"><B>unsetBackground()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'bKGD' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetBitDepth()"><B>unsetBitDepth()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the setting of the bit depth of a grayscale image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html#unsetBitShift()"><B>unsetBitShift()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Gray</A>
    +<DD>Suppresses the setting of the bit shift of a grayscale image.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetChromaticity()"><B>unsetChromaticity()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'cHRM' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetCompressedText()"><B>unsetCompressedText()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'zTXt' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetGamma()"><B>unsetGamma()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'gAMA' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetICCProfileData()"><B>unsetICCProfileData()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'iCCP' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetModificationTime()"><B>unsetModificationTime()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'tIME' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html#unsetPalette()"><B>unsetPalette()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png">mxPngEncodeParam.Palette</A>
    +<DD>Suppresses the 'PLTE' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetPaletteHistogram()"><B>unsetPaletteHistogram()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'hIST' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetPhysicalDimension()"><B>unsetPhysicalDimension()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'pHYS' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetSignificantBits()"><B>unsetSignificantBits()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'sBIT' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetSRGBIntent()"><B>unsetSRGBIntent()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'sRGB' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetSuggestedPalette()"><B>unsetSuggestedPalette()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'sPLT' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetText()"><B>unsetText()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'tEXt' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html#unsetTransparency()"><B>unsetTransparency()</B></A> - 
    +Method in class com.mxgraph.util.png.<A HREF="./com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png">mxPngEncodeParam</A>
    +<DD>Suppresses the 'tRNS' chunk from being output.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#UP"><B>UP</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#up"><B>up</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html#update(java.awt.event.MouseEvent, com.mxgraph.view.mxCellState, double, double)"><B>update(MouseEvent, mxCellState, double, double)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler">mxConnectPreview</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxMovePreview.html#update(java.awt.event.MouseEvent, double, double, boolean)"><B>update(MouseEvent, double, double, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler">mxMovePreview</A>
    +<DD>Sets the translation of the preview.
    +<DT><A HREF="./com/mxgraph/util/mxEvent.html#UPDATE_CELL_SIZE"><B>UPDATE_CELL_SIZE</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util">mxEvent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#updateAlternateBounds(java.lang.Object, com.mxgraph.model.mxGeometry, boolean)"><B>updateAlternateBounds(Object, mxGeometry, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Updates or sets the alternate bounds in the given geometry for the given
    + cell depending on whether the cell is going to be collapsed.
    +<DT><A HREF="./com/mxgraph/swing/util/mxAnimation.html#updateAnimation()"><B>updateAnimation()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util">mxAnimation</A>
    +<DD>Hook for subclassers to implement the animation.
    +<DT><A HREF="./com/mxgraph/swing/util/mxMorphing.html#updateAnimation()"><B>updateAnimation()</B></A> - 
    +Method in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util">mxMorphing</A>
    +<DD>Animation step.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updateBoundingBox(com.mxgraph.view.mxCellState)"><B>updateBoundingBox(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Updates the bounding box in the given cell state.
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#updateBounds(double, double)"><B>updateBounds(double, double)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Updates the total bounds of this curve, increasing any dimensions,
    + if necessary, to fit in the specified point
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#updateCellOverlayComponent(com.mxgraph.view.mxCellState, com.mxgraph.swing.util.mxICellOverlay)"><B>updateCellOverlayComponent(mxCellState, mxICellOverlay)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Notified when an overlay has been removed from the graph.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#updateCellOverlays(java.lang.Object)"><B>updateCellOverlays(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Returns a hashtable with all entries from the overlays variable where a
    + cell still exists in the model.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#updateCellSize(java.lang.Object)"><B>updateCellSize(Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Updates the size of the given cell in the model using
    + getPreferredSizeForCell to get the new size.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#updateCellSize(java.lang.Object, boolean)"><B>updateCellSize(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Updates the size of the given cell in the model using
    + getPreferredSizeForCell to get the new size.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#updateComponent(com.mxgraph.view.mxCellState, java.awt.Component)"><B>updateComponent(mxCellState, Component)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#updateComponents()"><B>updateComponents()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#updateComponents(java.lang.Object)"><B>updateComponents(Object)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#updateCurve(java.util.List)"><B>updateCurve(List&lt;mxPoint&gt;)</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Updates the existing curve using the points passed in.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#updateDragImage(java.lang.Object[])"><B>updateDragImage(Object[])</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updateEdgeBounds(com.mxgraph.view.mxCellState)"><B>updateEdgeBounds(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Updates the given state using the bounding box of the absolute points.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#updateEdgeParent(java.lang.Object, java.lang.Object)"><B>updateEdgeParent(Object, Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner helper method to update the parent of the specified edge to the
    + nearest-common-ancestor of its two terminals.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#updateEdgeParents(java.lang.Object)"><B>updateEdgeParents(Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Updates the parents of the edges connected to the given cell and all its
    + descendants so that each edge is contained in the nearest common
    + ancestor.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#updateEdgeParents(java.lang.Object, java.lang.Object)"><B>updateEdgeParents(Object, Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Updates the parents of the edges connected to the given cell and all its
    + descendants so that the edge is contained in the nearest-common-ancestor.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#updateFinder(boolean)"><B>updateFinder(boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#updateFinderBounds(java.awt.Rectangle, boolean)"><B>updateFinderBounds(Rectangle, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updateFixedTerminalPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, com.mxgraph.view.mxConnectionConstraint)"><B>updateFixedTerminalPoint(mxCellState, mxCellState, boolean, mxConnectionConstraint)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Sets the fixed source or target terminal point on the given edge.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updateFixedTerminalPoints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><B>updateFixedTerminalPoints(mxCellState, mxCellState, mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Sets the initial absolute terminal points in the given state before the edge
    + style is computed.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updateFloatingTerminalPoint(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean)"><B>updateFloatingTerminalPoint(mxCellState, mxCellState, mxCellState, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Updates the absolute terminal point in the given state for the given
    + start and end state, where start is the source if source is true.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updateFloatingTerminalPoints(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><B>updateFloatingTerminalPoints(mxCellState, mxCellState, mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Updates the terminal points in the given state after the edge style was
    + computed for the edge.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#updateFont()"><B>updateFont()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#updateGroupBounds()"><B>updateGroupBounds()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Updates the bounds of the given array of groups so that it includes
    + all child vertices.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#updateGroupBounds(java.lang.Object[])"><B>updateGroupBounds(Object[])</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Updates the bounds of the given array of groups so that it includes
    + all child vertices.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#updateGroupBounds(java.lang.Object[], int)"><B>updateGroupBounds(Object[], int)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Updates the bounds of the given array of groups so that it includes
    + all child vertices.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#updateGroupBounds(java.lang.Object[], int, boolean)"><B>updateGroupBounds(Object[], int, boolean)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Updates the bounds of the given array of groups so that it includes
    + all child vertices.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#updateHandler"><B>updateHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Updates the heavyweight component structure after any changes.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html#updateImportCount(java.awt.datatransfer.Transferable)"><B>updateImportCount(Transferable)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">mxGraphTransferHandler</A>
    +<DD>Counts the number of times that the given transferable has been imported.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updateLabel(com.mxgraph.view.mxCellState)"><B>updateLabel(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Updates the label of the given state.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.html#updateLabelBounds(java.lang.String, java.util.Map)"><B>updateLabelBounds(String, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape">mxCurveLabelShape</A>
    +<DD>Updates the cached position and size of each glyph in the edge label.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updateLabelBounds(com.mxgraph.view.mxCellState)"><B>updateLabelBounds(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Updates the label bounds in the given state.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#updateLevel"><B>updateLevel</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Counter for the depth of nested transactions.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#updateOrigin()"><B>updateOrigin()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Extends the canvas by doing another validation with a shifted
    + global translation if the bounds of the graph are below (0,0).
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#updateOriginHandler"><B>updateOriginHandler</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Fires repaint events for full repaints.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updatePoints(com.mxgraph.view.mxCellState, java.util.List, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState)"><B>updatePoints(mxCellState, List&lt;mxPoint&gt;, mxCellState, mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Updates the absolute points in the given state using the specified array
    + of points as the relative points.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html#updatePreferredSize()"><B>updatePreferredSize()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A>
    +<DD>Updates the preferred size for the given scale if the page size
    + should be preferred or the page is visible.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#updateScaleAndTranslate()"><B>updateScaleAndTranslate()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>Returns true if the scale or translate has changed.
    +<DT><A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html#updateStroke()"><B>updateStroke()</B></A> - 
    +Method in class com.mxgraph.canvas.<A HREF="./com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas">mxGraphicsCanvas2D</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#updateVertexLabelOffset(com.mxgraph.view.mxCellState)"><B>updateVertexLabelOffset(mxCellState)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Updates the absoluteOffset of the given vertex cell state.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#upperHead"><B>upperHead</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html#upperTail"><B>upperTail</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.Polygon</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxGraphLayout.html#useBoundingBox"><B>useBoundingBox</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</A>
    +<DD>Boolean indicating if the bounding box of the label should be used if
    + its available.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#useInputOrigin"><B>useInputOrigin</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>Specifies if the top left corner of the input cells should be the origin
    + of the layout result.
    +<DT><A HREF="./com/mxgraph/swing/view/mxCellEditor.html#useLabelBounds(com.mxgraph.view.mxCellState)"><B>useLabelBounds(mxCellState)</B></A> - 
    +Method in class com.mxgraph.swing.view.<A HREF="./com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view">mxCellEditor</A>
    +<DD>Returns true if the label bounds of the state should be used for the
    + editor.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#useScaledInstance"><B>useScaledInstance</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="_V_"><!-- --></A><H2>
    +<B>V</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#v"><B>v</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Internal models collection of nodes ( vertices ) to be laid out
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#valid"><B>valid</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Whether or not the curve currently holds valid values
    +<DT><A HREF="./com/mxgraph/util/mxLightweightLabel.html#validate()"><B>validate()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">mxLightweightLabel</A>
    +<DD>Overridden for performance reasons.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#validate()"><B>validate()</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>First validates all bounds and then validates all points recursively on
    + all visible cells.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#validateBounds(com.mxgraph.view.mxCellState, java.lang.Object)"><B>validateBounds(mxCellState, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Validates the bounds of the given parent's child using the given parent
    + state as the origin for the child.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#validateCell(java.lang.Object, java.util.Hashtable)"><B>validateCell(Object, Hashtable&lt;Object, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Hook method for subclassers to return an error message for the given
    + cell and validation context.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html#validateConnection(java.lang.Object, java.lang.Object)"><B>validateConnection(Object, Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A>
    +<DD>Returns the error message or an empty string if the connection for the
    + given source target pair is not valid.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html#validateConnection(java.lang.Object, java.lang.Object)"><B>validateConnection(Object, Object)</B></A> - 
    +Method in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler">mxEdgeHandler</A>
    +<DD>Returns the error message or an empty string if the connection for the
    + given source target pair is not valid.
    +<DT><A HREF="./com/mxgraph/shape/mxCurveShape.html#validateCurve(java.util.List, double, java.util.Map)"><B>validateCurve(List&lt;mxPoint&gt;, double, Map&lt;String, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape">mxCurveShape</A>
    +<DD>Forces underlying curve to a valid state
    +<DT><A HREF="./com/mxgraph/util/mxCurve.html#validateCurve()"><B>validateCurve()</B></A> - 
    +Method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util">mxCurve</A>
    +<DD>Method must be called before any attempt to access curve information
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#validateEdge(java.lang.Object, java.lang.Object, java.lang.Object)"><B>validateEdge(Object, Object, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Hook method for subclassers to return an error message for the given
    + edge and terminals.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#validateGraph()"><B>validateGraph()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Validates the graph by validating each descendant of the given cell or
    + the root of the model.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#validateGraph(java.lang.Object, java.util.Hashtable)"><B>validateGraph(Object, Hashtable&lt;Object, Object&gt;)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Validates the graph by validating each descendant of the given cell or
    + the root of the model.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.html#validatePoints(com.mxgraph.view.mxCellState, java.lang.Object)"><B>validatePoints(mxCellState, Object)</B></A> - 
    +Method in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A>
    +<DD>Validates the points for the state of the given cell recursively if the
    + cell is not collapsed and returns the bounding box of all visited states
    + as a rectangle.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#validColor"><B>validColor</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Specifies the valid- and invalidColor for the marker.
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#validNeighbors"><B>validNeighbors</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Holds an array of strings that specify the type of neighbor for which
    + this rule applies.
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#validNeighborsAllowed"><B>validNeighborsAllowed</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Boolean indicating if the list of validNeighbors are those that are allowed
    + for this rule or those that are not allowed for this rule.
    +<DT><A HREF="./com/mxgraph/swing/handler/mxCellMarker.html#validState"><B>validState</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A>
    +<DD>Holds the marked state if it is valid.
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#value"><B>value</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Holds the user object.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html#value"><B>value</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model">mxGraphModel.mxValueChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxMultiplicity.html#value"><B>value</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view">mxMultiplicity</A>
    +<DD>Optional string that specifies the value of the attribute to be passed
    + to mxCell.is to check if the rule applies to a cell.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#valueForCellChanged(java.lang.Object, java.lang.Object)"><B>valueForCellChanged(Object, Object)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Inner callback to update the user object of the given mxCell
    + using mxCell.setValue and return the previous value,
    + that is, the return value of mxCell.getValue.
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
    +Static method in enum com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A>
    +<DD>Returns the enum constant of this type with the specified name.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
    +Static method in enum com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>
    +<DD>Returns the enum constant of this type with the specified name.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
    +Static method in enum com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>
    +<DD>Returns the enum constant of this type with the specified name.
    +<DT><A HREF="./com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html#values()"><B>values()</B></A> - 
    +Static method in enum com.mxgraph.io.gd.<A HREF="./com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd">mxGdDocument.mxGDParseState</A>
    +<DD>Returns an array containing the constants of this enum type, in
    +the order they are declared.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html#values()"><B>values()</B></A> - 
    +Static method in enum com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyForValues</A>
    +<DD>Returns an array containing the constants of this enum type, in
    +the order they are declared.
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html#values()"><B>values()</B></A> - 
    +Static method in enum com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml">mxGraphMlKey.keyTypeValues</A>
    +<DD>Returns an array containing the constants of this enum type, in
    +the order they are declared.
    +<DT><A HREF="./com/mxgraph/view/mxStyleRegistry.html#values"><B>values</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view">mxStyleRegistry</A>
    +<DD>Maps from strings to objects.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#VERSION"><B>VERSION</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Holds the version number of this release.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#vertBendProportion"><B>vertBendProportion</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#vertex"><B>vertex</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#VERTEX_MASK"><B>VERTEX_MASK</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#VERTEX_SELECTION_COLOR"><B>VERTEX_SELECTION_COLOR</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the selection color for vertices.
    +<DT><A HREF="./com/mxgraph/swing/util/mxSwingConstants.html#VERTEX_SELECTION_STROKE"><B>VERTEX_SELECTION_STROKE</B></A> - 
    +Static variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util">mxSwingConstants</A>
    +<DD>Defines the stroke used for painting the border of selected vertices.
    +<DT><A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html#vertexArray"><B>vertexArray</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout">mxFastOrganicLayout</A>
    +<DD>An array of all vertices to be laid out.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#vertexConnectionBuffer"><B>vertexConnectionBuffer</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The buffer on either side of a vertex where edges must not connect.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#vertexLabelsMovable"><B>vertexLabelsMovable</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Specifies the return value for vertices in isLabelMovable.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#vertexMapper"><B>vertexMapper</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>Map from graph vertices to internal model nodes
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#vertexSeperations"><B>vertexSeperations</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/util/mxCellOverlay.html#verticalAlign"><B>verticalAlign</B></A> - 
    +Variable in class com.mxgraph.swing.util.<A HREF="./com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">mxCellOverlay</A>
    +<DD>Holds the vertical alignment for the overlay.
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html#verticalLayout(com.mxgraph.layout.mxCompactTreeLayout.TreeNode, java.lang.Object, double, double, com.mxgraph.util.mxRectangle)"><B>verticalLayout(mxCompactTreeLayout.TreeNode, Object, double, double, mxRectangle)</B></A> - 
    +Method in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout">mxCompactTreeLayout</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#verticalPageCount"><B>verticalPageCount</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies the number of pages in the vertical direction.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#view"><B>view</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Reference to the enclosing graph view.
    +<DT><A HREF="./com/mxgraph/view/mxGraph.html#view"><B>view</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A>
    +<DD>Holds the view that caches the cell states.
    +<DT><A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html#view"><B>view</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view">mxGraphView.mxCurrentRootChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxTemporaryCellStates.html#view"><B>view</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view">mxTemporaryCellStates</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#viewChangeHandler"><B>viewChangeHandler</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/model/mxCell.html#visible"><B>visible</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">mxCell</A>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html#visible"><B>visible</B></A> - 
    +Variable in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model">mxGraphModel.mxVisibleChange</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html#visible"><B>visible</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape">mxCurveLabelShape.LabelGlyphCache</A>
    +<DD>Whether or not the glyph should be drawn
    +<DT><A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html#visible"><B>visible</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html#visible"><B>visible</B></A> - 
    +Variable in class com.mxgraph.swing.handler.<A HREF="./com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A>
    +<DD>Specifies if this handler is visible.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#visibleSourceState"><B>visibleSourceState</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Caches the visible source and target terminal states.
    +<DT><A HREF="./com/mxgraph/model/mxGraphModel.html#visibleStateForCellChanged(java.lang.Object, boolean)"><B>visibleStateForCellChanged(Object, boolean)</B></A> - 
    +Method in class com.mxgraph.model.<A HREF="./com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">mxGraphModel</A>
    +<DD>Sets the visible state of the given mxCell using mxVisibleChange and
    + adds the change to the current transaction.
    +<DT><A HREF="./com/mxgraph/view/mxCellState.html#visibleTargetState"><B>visibleTargetState</B></A> - 
    +Variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A>
    +<DD>Caches the visible source and target terminal states.
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html#visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge, int, int)"><B>visit(mxGraphHierarchyNode, mxGraphHierarchyNode, mxGraphHierarchyEdge, int, int)</B></A> - 
    +Method in interface com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel.CellVisitor</A>
    +<DD>The method within which the visitor will perform operations upon the
    + graph model
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html#visit(com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel.CellVisitor, com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode[], boolean, java.util.Set)"><B>visit(mxGraphHierarchyModel.CellVisitor, mxGraphHierarchyNode[], boolean, Set&lt;mxGraphHierarchyNode&gt;)</B></A> - 
    +Method in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphHierarchyModel</A>
    +<DD>A depth first search through the internal hierarchy model
    +<DT><A HREF="./com/mxgraph/view/mxGraph.mxICellVisitor.html#visit(java.lang.Object, java.lang.Object)"><B>visit(Object, Object)</B></A> - 
    +Method in interface com.mxgraph.view.<A HREF="./com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view">mxGraph.mxICellVisitor</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#visited"><B>visited</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.WeightedCellSorter</A>
    +<DD>Whether or not this cell has been visited in the current assignment
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#visited"><B>visited</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.WeightedCellSorter</A>
    +<DD>Whether or not this cell has been visited in the current assignment
    +</DL>
    +<HR>
    +<A NAME="_W_"><!-- --></A><H2>
    +<B>W</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/shape/mxStencil.html#w0"><B>w0</B></A> - 
    +Variable in class com.mxgraph.shape.<A HREF="./com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape">mxStencil</A>
    +<DD>Holds the width of the shape.
    +<DT><A HREF="./com/mxgraph/util/mxConstants.html#W3C_SHADOWCOLOR"><B>W3C_SHADOWCOLOR</B></A> - 
    +Static variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util">mxConstants</A>
    +<DD>Defines the color to be used to draw shadows in W3C standards.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#warningIcon"><B>warningIcon</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/view/mxEdgeStyle.html#wayPoints1"><B>wayPoints1</B></A> - 
    +Static variable in class com.mxgraph.view.<A HREF="./com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view">mxEdgeStyle</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html#weightedValue"><B>weightedValue</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment.WeightedCellSorter</A>
    +<DD>The weighted value of the cell stored
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html#weightedValue"><B>weightedValue</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.WeightedCellSorter</A>
    +<DD>The weighted value of the cell stored
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#widestRank"><B>widestRank</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The rank that has the widest x position
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html#widestRankValue"><B>widestRankValue</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.stage.<A HREF="./com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage">mxCoordinateAssignment</A>
    +<DD>The X-coordinate of the edge of the widest rank
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#WIDTH"><B>WIDTH</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#width"><B>width</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>The width of this cell
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#width"><B>width</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/mxImage.html#width"><B>width</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">mxImage</A>
    +<DD>Holds the image width and height.
    +<DT><A HREF="./com/mxgraph/util/mxRectangle.html#width"><B>width</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A>
    +<DD>Holds the width and the height.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#WIND_EVEN_ODD"><B>WIND_EVEN_ODD</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>The winding rule constant for specifying an even-odd rule for
    + determining the interior of a path.
    +<DT><A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html#WIND_NON_ZERO"><B>WIND_NON_ZERO</B></A> - 
    +Static variable in interface com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg">ExtendedPathIterator</A>
    +<DD>The winding rule constant for specifying a non-zero rule for
    + determining the interior of a path.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#windingRule"><B>windingRule</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>The winding rule to use to construct the path.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html#windingRule"><B>windingRule</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg">AWTPolylineProducer</A>
    +<DD>The winding rule to use to construct the path.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#wordWrap(java.lang.String, java.awt.FontMetrics, double)"><B>wordWrap(String, FontMetrics, double)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Returns the specified text in lines that fit within the specified
    + width when the specified font metrics are applied to the text
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#wrap"><B>wrap</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Value at which a new column or row should be created.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#writeAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><B>writeAttribute(mxCodec, Object, String, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Writes the given value into node using writePrimitiveAttribute
    + or writeComplexAttribute depending on the type of the value.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#writeComplexAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><B>writeComplexAttribute(mxCodec, Object, String, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Writes the given value as a child node of the given node.
    +<DT><A HREF="./com/mxgraph/util/mxUtils.html#writeFile(java.lang.String, java.lang.String)"><B>writeFile(String, String)</B></A> - 
    +Static method in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util">mxUtils</A>
    +<DD>Writes the given string into the given file.
    +<DT><A HREF="./com/mxgraph/io/mxObjectCodec.html#writePrimitiveAttribute(com.mxgraph.io.mxCodec, java.lang.Object, java.lang.String, java.lang.Object, org.w3c.dom.Node)"><B>writePrimitiveAttribute(mxCodec, Object, String, Object, Node)</B></A> - 
    +Method in class com.mxgraph.io.<A HREF="./com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io">mxObjectCodec</A>
    +<DD>Writes the given value as an attribute of the given node.
    +</DL>
    +<HR>
    +<A NAME="_X_"><!-- --></A><H2>
    +<B>X</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#X"><B>X</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#x"><B>x</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>The x position of this cell for each layer it occupies
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#x"><B>x</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#x"><B>x</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>The x-coordinate position of this cell, nodes only
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#x"><B>x</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Holds the x- and y-coordinates of the point.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#x0"><B>x0</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>Integer specifying the left coordinate of the circle.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#x0"><B>x0</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Specifies the horizontal origin of the layout.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#xCenter"><B>xCenter</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>The reference x point for smooth arcs.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#xNormTry"><B>xNormTry</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Array of the x portion of the normalised test vectors that 
    + are tested for a lower energy around each vertex.
    +</DL>
    +<HR>
    +<A NAME="_Y_"><!-- --></A><H2>
    +<B>Y</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html#Y"><B>Y</B></A> - 
    +Static variable in class com.mxgraph.io.graphml.<A HREF="./com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml">mxGraphMlConstants</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html#y"><B>y</B></A> - 
    +Variable in class com.mxgraph.layout.hierarchical.model.<A HREF="./com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>
    +<DD>The y position of this cell for each layer it occupies
    +<DT><A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html#y"><B>y</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout">mxCompactTreeLayout.TreeNode</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html#y"><B>y</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout">mxOrganicLayout.CellWrapper</A>
    +<DD>The y-coordinate position of this cell, nodes only
    +<DT><A HREF="./com/mxgraph/util/mxPoint.html#y"><B>y</B></A> - 
    +Variable in class com.mxgraph.util.<A HREF="./com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A>
    +<DD>Holds the x- and y-coordinates of the point.
    +<DT><A HREF="./com/mxgraph/layout/mxCircleLayout.html#y0"><B>y0</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout">mxCircleLayout</A>
    +<DD>Integer specifying the top coordinate of the circle.
    +<DT><A HREF="./com/mxgraph/layout/mxStackLayout.html#y0"><B>y0</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout">mxStackLayout</A>
    +<DD>Specifies the vertical origin of the layout.
    +<DT><A HREF="./com/mxgraph/util/svg/AWTPathProducer.html#yCenter"><B>yCenter</B></A> - 
    +Variable in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg">AWTPathProducer</A>
    +<DD>The reference y point for smooth arcs.
    +<DT><A HREF="./com/mxgraph/layout/mxOrganicLayout.html#yNormTry"><B>yNormTry</B></A> - 
    +Variable in class com.mxgraph.layout.<A HREF="./com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout">mxOrganicLayout</A>
    +<DD>Array of the y portion of the normalised test vectors that 
    + are tested for a lower energy around each vertex.
    +</DL>
    +<HR>
    +<A NAME="_Z_"><!-- --></A><H2>
    +<B>Z</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#zoom(double)"><B>zoom(double)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#zoom(boolean, boolean)"><B>zoom(boolean, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#ZOOM_POLICY_NONE"><B>ZOOM_POLICY_NONE</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#ZOOM_POLICY_PAGE"><B>ZOOM_POLICY_PAGE</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#ZOOM_POLICY_WIDTH"><B>ZOOM_POLICY_WIDTH</B></A> - 
    +Static variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#zoomActual()"><B>zoomActual()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Function: zoomActual
    + 
    + Resets the zoom and panning in the view.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#zoomAndCenter()"><B>zoomAndCenter()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Invoked after the component was resized to update the zoom if the zoom
    + policy is not none and/or update the translation of the diagram if
    + pageVisible and centerPage are true.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#zoomFactor"><B>zoomFactor</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies the factor used for zoomIn and zoomOut.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#zoomGesture"><B>zoomGesture</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#zoomHandleLocation"><B>zoomHandleLocation</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphOutline.html#zoomHandleVisible"><B>zoomHandleVisible</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">mxGraphOutline</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#zoomIn()"><B>zoomIn()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Zooms into the graph by zoomFactor.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#zoomOut()"><B>zoomOut()</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Function: zoomOut
    + 
    + Zooms out of the graph by <zoomFactor>.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#zoomPolicy"><B>zoomPolicy</B></A> - 
    +Variable in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>Specifies the zoom policy.
    +<DT><A HREF="./com/mxgraph/swing/mxGraphComponent.html#zoomTo(double, boolean)"><B>zoomTo(double, boolean)</B></A> - 
    +Method in class com.mxgraph.swing.<A HREF="./com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A NAME="___"><!-- --></A><H2>
    +<B>_</B></H2>
    +<DL>
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#_parsel(boolean)"><B>_parsel(boolean)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>&nbsp;
    +<DT><A HREF="./com/mxgraph/util/svg/PathParser.html#_parseL(boolean)"><B>_parseL(boolean)</B></A> - 
    +Method in class com.mxgraph.util.svg.<A HREF="./com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg">PathParser</A>
    +<DD>&nbsp;
    +</DL>
    +<HR>
    +<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <A HREF="#_Z_">Z</A> <A HREF="#___">_</A> 
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/index.html b/java/docs/index.html
    new file mode 100644
    index 000000000..d23ba151b
    --- /dev/null
    +++ b/java/docs/index.html
    @@ -0,0 +1,39 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc on Mon May 21 09:06:11 CEST 2012-->
    +<TITLE>
    +mxGraph 1.10.0.5 API Specification
    +</TITLE>
    +<SCRIPT type="text/javascript">
    +    targetPage = "" + window.location.search;
    +    if (targetPage != "" && targetPage != "undefined")
    +        targetPage = targetPage.substring(1);
    +    if (targetPage.indexOf(":") != -1)
    +        targetPage = "undefined";
    +    function loadFrames() {
    +        if (targetPage != "" && targetPage != "undefined")
    +             top.classFrame.location = top.targetPage;
    +    }
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +</HEAD>
    +<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
    +<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
    +<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
    +<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
    +</FRAMESET>
    +<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
    +<NOFRAMES>
    +<H2>
    +Frame Alert</H2>
    +
    +<P>
    +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
    +<BR>
    +Link to<A HREF="overview-summary.html">Non-frame version.</A>
    +</NOFRAMES>
    +</FRAMESET>
    +</HTML>
    diff --git a/java/docs/overview-frame.html b/java/docs/overview-frame.html
    new file mode 100644
    index 000000000..1a381e3ef
    --- /dev/null
    +++ b/java/docs/overview-frame.html
    @@ -0,0 +1,86 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +Overview List (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
    +
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white">
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
    +<B><p><b>mxGraph 1.10.0.5</b></p></B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
    +<TR>
    +<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
    +<P>
    +<FONT size="+1" CLASS="FrameHeadingFont">
    +Packages</FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/analysis/package-frame.html" target="packageFrame">com.mxgraph.analysis</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/canvas/package-frame.html" target="packageFrame">com.mxgraph.canvas</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/io/package-frame.html" target="packageFrame">com.mxgraph.io</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/io/gd/package-frame.html" target="packageFrame">com.mxgraph.io.gd</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/io/graphml/package-frame.html" target="packageFrame">com.mxgraph.io.graphml</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/layout/package-frame.html" target="packageFrame">com.mxgraph.layout</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/layout/hierarchical/package-frame.html" target="packageFrame">com.mxgraph.layout.hierarchical</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/layout/hierarchical/model/package-frame.html" target="packageFrame">com.mxgraph.layout.hierarchical.model</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/layout/hierarchical/stage/package-frame.html" target="packageFrame">com.mxgraph.layout.hierarchical.stage</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/layout/orthogonal/package-frame.html" target="packageFrame">com.mxgraph.layout.orthogonal</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/layout/orthogonal/model/package-frame.html" target="packageFrame">com.mxgraph.layout.orthogonal.model</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/model/package-frame.html" target="packageFrame">com.mxgraph.model</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/reader/package-frame.html" target="packageFrame">com.mxgraph.reader</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/shape/package-frame.html" target="packageFrame">com.mxgraph.shape</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/sharing/package-frame.html" target="packageFrame">com.mxgraph.sharing</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/swing/package-frame.html" target="packageFrame">com.mxgraph.swing</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/swing/handler/package-frame.html" target="packageFrame">com.mxgraph.swing.handler</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/swing/util/package-frame.html" target="packageFrame">com.mxgraph.swing.util</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/swing/view/package-frame.html" target="packageFrame">com.mxgraph.swing.view</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/util/package-frame.html" target="packageFrame">com.mxgraph.util</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/util/png/package-frame.html" target="packageFrame">com.mxgraph.util.png</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/util/svg/package-frame.html" target="packageFrame">com.mxgraph.util.svg</A></FONT>
    +<BR>
    +<FONT CLASS="FrameItemFont"><A HREF="com/mxgraph/view/package-frame.html" target="packageFrame">com.mxgraph.view</A></FONT>
    +<BR>
    +</TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +&nbsp;
    +</BODY>
    +</HTML>
    diff --git a/java/docs/overview-summary.html b/java/docs/overview-summary.html
    new file mode 100644
    index 000000000..f99e4bca0
    --- /dev/null
    +++ b/java/docs/overview-summary.html
    @@ -0,0 +1,257 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Overview (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Overview (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H1>
    +mxGraph 1.10.0.5 API Specification
    +</H1>
    +</CENTER>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Packages</B></FONT></TH>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/analysis/package-summary.html">com.mxgraph.analysis</A></B></TD>
    +<TD>This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/canvas/package-summary.html">com.mxgraph.canvas</A></B></TD>
    +<TD>This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/io/package-summary.html">com.mxgraph.io</A></B></TD>
    +<TD>This package contains all classes for input/output.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/io/gd/package-summary.html">com.mxgraph.io.gd</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/io/graphml/package-summary.html">com.mxgraph.io.graphml</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/layout/package-summary.html">com.mxgraph.layout</A></B></TD>
    +<TD>This package contains various graph layouts.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/layout/hierarchical/package-summary.html">com.mxgraph.layout.hierarchical</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/layout/hierarchical/model/package-summary.html">com.mxgraph.layout.hierarchical.model</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/layout/hierarchical/stage/package-summary.html">com.mxgraph.layout.hierarchical.stage</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/layout/orthogonal/package-summary.html">com.mxgraph.layout.orthogonal</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/layout/orthogonal/model/package-summary.html">com.mxgraph.layout.orthogonal.model</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/model/package-summary.html">com.mxgraph.model</A></B></TD>
    +<TD>This package contains the classes that define a graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/reader/package-summary.html">com.mxgraph.reader</A></B></TD>
    +<TD>This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/shape/package-summary.html">com.mxgraph.shape</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/sharing/package-summary.html">com.mxgraph.sharing</A></B></TD>
    +<TD>This package contains all classes required for concurrent diagram editing
    +  by multiple clients.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/swing/package-summary.html">com.mxgraph.swing</A></B></TD>
    +<TD>This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/swing/handler/package-summary.html">com.mxgraph.swing.handler</A></B></TD>
    +<TD>This package contains all classes required for mouse event handling in
    +  JFC/Swing.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/swing/util/package-summary.html">com.mxgraph.swing.util</A></B></TD>
    +<TD>This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/swing/view/package-summary.html">com.mxgraph.swing.view</A></B></TD>
    +<TD>This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/util/package-summary.html">com.mxgraph.util</A></B></TD>
    +<TD>This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/util/png/package-summary.html">com.mxgraph.util.png</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/util/svg/package-summary.html">com.mxgraph.util.svg</A></B></TD>
    +<TD>&nbsp;</TD>
    +</TR>
    +<TR BGCOLOR="white" CLASS="TableRowColor">
    +<TD WIDTH="20%"><B><A HREF="com/mxgraph/view/package-summary.html">com.mxgraph.view</A></B></TD>
    +<TD>This package implements the graph component, represented by the mxGraph
    +  class.</TD>
    +</TR>
    +</TABLE>
    +
    +<P>
    +&nbsp;<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/overview-tree.html b/java/docs/overview-tree.html
    new file mode 100644
    index 000000000..56423eea3
    --- /dev/null
    +++ b/java/docs/overview-tree.html
    @@ -0,0 +1,316 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:11 CEST 2012 -->
    +<TITLE>
    +Class Hierarchy (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Class Hierarchy (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H2>
    +Hierarchy For All Packages</H2>
    +</CENTER>
    +<DL>
    +<DT><B>Package Hierarchies:</B><DD><A HREF="com/mxgraph/analysis/package-tree.html">com.mxgraph.analysis</A>, <A HREF="com/mxgraph/canvas/package-tree.html">com.mxgraph.canvas</A>, <A HREF="com/mxgraph/io/package-tree.html">com.mxgraph.io</A>, <A HREF="com/mxgraph/io/gd/package-tree.html">com.mxgraph.io.gd</A>, <A HREF="com/mxgraph/io/graphml/package-tree.html">com.mxgraph.io.graphml</A>, <A HREF="com/mxgraph/layout/package-tree.html">com.mxgraph.layout</A>, <A HREF="com/mxgraph/layout/hierarchical/package-tree.html">com.mxgraph.layout.hierarchical</A>, <A HREF="com/mxgraph/layout/hierarchical/model/package-tree.html">com.mxgraph.layout.hierarchical.model</A>, <A HREF="com/mxgraph/layout/hierarchical/stage/package-tree.html">com.mxgraph.layout.hierarchical.stage</A>, <A HREF="com/mxgraph/layout/orthogonal/package-tree.html">com.mxgraph.layout.orthogonal</A>, <A HREF="com/mxgraph/layout/orthogonal/model/package-tree.html">com.mxgraph.layout.orthogonal.model</A>, <A HREF="com/mxgraph/model/package-tree.html">com.mxgraph.model</A>, <A HREF="com/mxgraph/reader/package-tree.html">com.mxgraph.reader</A>, <A HREF="com/mxgraph/shape/package-tree.html">com.mxgraph.shape</A>, <A HREF="com/mxgraph/sharing/package-tree.html">com.mxgraph.sharing</A>, <A HREF="com/mxgraph/swing/package-tree.html">com.mxgraph.swing</A>, <A HREF="com/mxgraph/swing/handler/package-tree.html">com.mxgraph.swing.handler</A>, <A HREF="com/mxgraph/swing/util/package-tree.html">com.mxgraph.swing.util</A>, <A HREF="com/mxgraph/swing/view/package-tree.html">com.mxgraph.swing.view</A>, <A HREF="com/mxgraph/util/package-tree.html">com.mxgraph.util</A>, <A HREF="com/mxgraph/util/png/package-tree.html">com.mxgraph.util.png</A>, <A HREF="com/mxgraph/util/svg/package-tree.html">com.mxgraph.util.svg</A>, <A HREF="com/mxgraph/view/package-tree.html">com.mxgraph.view</A></DL>
    +<HR>
    +<H2>
    +Class Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing"><B>AbstractAction</B></A> (implements javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/Action.html?is-external=true" title="class or interface in javax.swing">Action</A>, java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.DeleteAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.DrillAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.EditAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.FoldAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.GroupAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.LayerAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.RemoveFromParentAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.SelectAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.UngroupAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.UpdateGroupBoundsAction</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions.ZoomAction</B></A></UL>
    +<LI TYPE="circle">java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util"><B>AbstractCollection</B></A>&lt;E&gt; (implements java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;E&gt;)
    +<UL>
    +<LI TYPE="circle">java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/AbstractSet.html?is-external=true" title="class or interface in java.util"><B>AbstractSet</B></A>&lt;E&gt; (implements java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;E&gt;)
    +<UL>
    +<LI TYPE="circle">java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util"><B>HashSet</B></A>&lt;E&gt; (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;E&gt;)
    +<UL>
    +<LI TYPE="circle">java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedHashSet.html?is-external=true" title="class or interface in java.util"><B>LinkedHashSet</B></A>&lt;E&gt; (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, java.util.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;E&gt;)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyRank</B></A></UL>
    +</UL>
    +</UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/AbstractParser.html" title="class in com.mxgraph.util.svg"><B>AbstractParser</B></A> (implements com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg">Parser</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/NumberParser.html" title="class in com.mxgraph.util.svg"><B>NumberParser</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/PathParser.html" title="class in com.mxgraph.util.svg"><B>PathParser</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/PointsParser.html" title="class in com.mxgraph.util.svg"><B>PointsParser</B></A></UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/AWTPathProducer.html" title="class in com.mxgraph.util.svg"><B>AWTPathProducer</B></A> (implements com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg">PathHandler</A>, com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A>)
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/AWTPolylineProducer.html" title="class in com.mxgraph.util.svg"><B>AWTPolylineProducer</B></A> (implements com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg">PointsHandler</A>, com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg">ShapeProducer</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/AWTPolygonProducer.html" title="class in com.mxgraph.util.svg"><B>AWTPolygonProducer</B></A></UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Component.html?is-external=true" title="class or interface in java.awt"><B>Component</B></A> (implements java.awt.image.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/ImageObserver.html?is-external=true" title="class or interface in java.awt.image">ImageObserver</A>, java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/MenuContainer.html?is-external=true" title="class or interface in java.awt">MenuContainer</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Container.html?is-external=true" title="class or interface in java.awt"><B>Container</B></A><UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing"><B>JComponent</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true" title="class or interface in javax.swing"><B>JLabel</B></A> (implements javax.accessibility.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/accessibility/Accessible.html?is-external=true" title="class or interface in javax.accessibility">Accessible</A>, javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/SwingConstants.html?is-external=true" title="class or interface in javax.swing">SwingConstants</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util"><B>mxLightweightLabel</B></A></UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing"><B>JScrollPane</B></A> (implements javax.accessibility.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/accessibility/Accessible.html?is-external=true" title="class or interface in javax.accessibility">Accessible</A>, javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ScrollPaneConstants.html?is-external=true" title="class or interface in javax.swing">ScrollPaneConstants</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.<A HREF="com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing"><B>mxGraphComponent</B></A> (implements java.awt.print.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/Printable.html?is-external=true" title="class or interface in java.awt.print">Printable</A>)
    +</UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler"><B>mxCellMarker</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler"><B>mxCellTracker</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +</UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util"><B>mxCellOverlay</B></A> (implements com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util">mxICellOverlay</A>)
    +<LI TYPE="circle">com.mxgraph.swing.<A HREF="com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing"><B>mxGraphComponent.mxGraphControl</B></A><LI TYPE="circle">com.mxgraph.swing.<A HREF="com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing"><B>mxGraphOutline</B></A></UL>
    +</UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/DefaultErrorHandler.html" title="class in com.mxgraph.util.svg"><B>DefaultErrorHandler</B></A> (implements com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg">ErrorHandler</A>)
    +<LI TYPE="circle">org.xml.sax.helpers.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/helpers/DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax.helpers"><B>DefaultHandler</B></A> (implements org.xml.sax.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</A>, org.xml.sax.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</A>, org.xml.sax.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</A>, org.xml.sax.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.reader.<A HREF="com/mxgraph/reader/mxGraphViewReader.html" title="class in com.mxgraph.reader"><B>mxGraphViewReader</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.reader.<A HREF="com/mxgraph/reader/mxGraphViewImageReader.html" title="class in com.mxgraph.reader"><B>mxGraphViewImageReader</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.reader.<A HREF="com/mxgraph/reader/mxSaxOutputHandler.html" title="class in com.mxgraph.reader"><B>mxSaxOutputHandler</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/ExtendedGeneralPath.html" title="class in com.mxgraph.util.svg"><B>ExtendedGeneralPath</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>)
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxBase64.html" title="class in com.mxgraph.util"><B>mxBase64</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxBasicCanvas.html" title="class in com.mxgraph.canvas"><B>mxBasicCanvas</B></A> (implements com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxGraphics2DCanvas.html" title="class in com.mxgraph.canvas"><B>mxGraphics2DCanvas</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.view.<A HREF="com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view"><B>mxInteractiveCanvas</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxHtmlCanvas.html" title="class in com.mxgraph.canvas"><B>mxHtmlCanvas</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxSvgCanvas.html" title="class in com.mxgraph.canvas"><B>mxSvgCanvas</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxVmlCanvas.html" title="class in com.mxgraph.canvas"><B>mxVmlCanvas</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxBasicShape.html" title="class in com.mxgraph.shape"><B>mxBasicShape</B></A> (implements com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxActorShape.html" title="class in com.mxgraph.shape"><B>mxActorShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxArrowShape.html" title="class in com.mxgraph.shape"><B>mxArrowShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxCloudShape.html" title="class in com.mxgraph.shape"><B>mxCloudShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxConnectorShape.html" title="class in com.mxgraph.shape"><B>mxConnectorShape</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxCurveShape.html" title="class in com.mxgraph.shape"><B>mxCurveShape</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxCylinderShape.html" title="class in com.mxgraph.shape"><B>mxCylinderShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxEllipseShape.html" title="class in com.mxgraph.shape"><B>mxEllipseShape</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxDoubleEllipseShape.html" title="class in com.mxgraph.shape"><B>mxDoubleEllipseShape</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxHexagonShape.html" title="class in com.mxgraph.shape"><B>mxHexagonShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxLineShape.html" title="class in com.mxgraph.shape"><B>mxLineShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxRectangleShape.html" title="class in com.mxgraph.shape"><B>mxRectangleShape</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxImageShape.html" title="class in com.mxgraph.shape"><B>mxImageShape</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxLabelShape.html" title="class in com.mxgraph.shape"><B>mxLabelShape</B></A></UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxRhombusShape.html" title="class in com.mxgraph.shape"><B>mxRhombusShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxStencilShape.html" title="class in com.mxgraph.shape"><B>mxStencilShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxSwimlaneShape.html" title="class in com.mxgraph.shape"><B>mxSwimlaneShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxTriangleShape.html" title="class in com.mxgraph.shape"><B>mxTriangleShape</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model"><B>mxCell</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, com.mxgraph.model.<A HREF="com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<LI TYPE="circle">com.mxgraph.swing.view.<A HREF="com/mxgraph/swing/view/mxCellEditor.html" title="class in com.mxgraph.swing.view"><B>mxCellEditor</B></A> (implements com.mxgraph.swing.view.<A HREF="com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A>)
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxCellHandler.html" title="class in com.mxgraph.swing.handler"><B>mxCellHandler</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>mxEdgeHandler</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxElbowEdgeHandler.html" title="class in com.mxgraph.swing.handler"><B>mxElbowEdgeHandler</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxVertexHandler.html" title="class in com.mxgraph.swing.handler"><B>mxVertexHandler</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxCellPath.html" title="class in com.mxgraph.model"><B>mxCellPath</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxCellRenderer.html" title="class in com.mxgraph.util"><B>mxCellRenderer</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxCellRenderer.CanvasFactory.html" title="class in com.mxgraph.util"><B>mxCellRenderer.CanvasFactory</B></A><LI TYPE="circle">com.mxgraph.swing.view.<A HREF="com/mxgraph/swing/view/mxCellStatePreview.html" title="class in com.mxgraph.swing.view"><B>mxCellStatePreview</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxCodec.html" title="class in com.mxgraph.io"><B>mxCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxCodecRegistry.html" title="class in com.mxgraph.io"><B>mxCodecRegistry</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxCompactTreeLayout.Polygon.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.Polygon</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxCompactTreeLayout.Polyline.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.Polyline</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxCompactTreeLayout.TreeNode.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.TreeNode</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxCompactTreeLayout.WeightedCellSorter.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout.WeightedCellSorter</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;T&gt;)
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxConnectionConstraint.html" title="class in com.mxgraph.view"><B>mxConnectionConstraint</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxConstantCostFunction.html" title="class in com.mxgraph.analysis"><B>mxConstantCostFunction</B></A> (implements com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>)
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><B>mxConstants</B></A><LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxCoordinateAssignment</B></A> (implements com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A>)
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.WeightedCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxCoordinateAssignment.WeightedCellSorter</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;T&gt;)
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxCurve.html" title="class in com.mxgraph.util"><B>mxCurve</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxCurveLabelShape.html" title="class in com.mxgraph.shape"><B>mxCurveLabelShape</B></A> (implements com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>)
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxCurveLabelShape.LabelGlyphCache.html" title="class in com.mxgraph.shape"><B>mxCurveLabelShape.LabelGlyphCache</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxCurveLabelShape.LabelPosition.html" title="class in com.mxgraph.shape"><B>mxCurveLabelShape.LabelPosition</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxDefaultTextShape.html" title="class in com.mxgraph.shape"><B>mxDefaultTextShape</B></A> (implements com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>)
    +<LI TYPE="circle">com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxDistanceCostFunction.html" title="class in com.mxgraph.analysis"><B>mxDistanceCostFunction</B></A> (implements com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis">mxICostFunction</A>)
    +<LI TYPE="circle">com.mxgraph.reader.<A HREF="com/mxgraph/reader/mxDomOutputParser.html" title="class in com.mxgraph.reader"><B>mxDomOutputParser</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><B>mxDomUtils</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxEdgeStyle.html" title="class in com.mxgraph.view"><B>mxEdgeStyle</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxEvent.html" title="class in com.mxgraph.util"><B>mxEvent</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxEventObject.html" title="class in com.mxgraph.util"><B>mxEventObject</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util"><B>mxEventSource</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxAnimation.html" title="class in com.mxgraph.swing.util"><B>mxAnimation</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxMorphing.html" title="class in com.mxgraph.swing.util"><B>mxMorphing</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxConnectPreview.html" title="class in com.mxgraph.swing.handler"><B>mxConnectPreview</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view"><B>mxGraph</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model"><B>mxGraphModel</B></A> (implements com.mxgraph.model.<A HREF="com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model">mxIGraphModel</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxGraphSelectionModel.html" title="class in com.mxgraph.view"><B>mxGraphSelectionModel</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view"><B>mxGraphView</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxLayoutManager.html" title="class in com.mxgraph.view"><B>mxLayoutManager</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxMovePreview.html" title="class in com.mxgraph.swing.handler"><B>mxMovePreview</B></A><LI TYPE="circle">com.mxgraph.sharing.<A HREF="com/mxgraph/sharing/mxSharedState.html" title="class in com.mxgraph.sharing"><B>mxSharedState</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.sharing.<A HREF="com/mxgraph/sharing/mxSharedGraphModel.html" title="class in com.mxgraph.sharing"><B>mxSharedGraphModel</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxSpaceManager.html" title="class in com.mxgraph.view"><B>mxSpaceManager</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxSwimlaneManager.html" title="class in com.mxgraph.view"><B>mxSwimlaneManager</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxUndoManager.html" title="class in com.mxgraph.util"><B>mxUndoManager</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxFibonacciHeap.html" title="class in com.mxgraph.analysis"><B>mxFibonacciHeap</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxFibonacciHeap.Node.html" title="class in com.mxgraph.analysis"><B>mxFibonacciHeap.Node</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxGdCodec.html" title="class in com.mxgraph.io"><B>mxGdCodec</B></A><LI TYPE="circle">com.mxgraph.io.gd.<A HREF="com/mxgraph/io/gd/mxGdDocument.html" title="class in com.mxgraph.io.gd"><B>mxGdDocument</B></A><LI TYPE="circle">com.mxgraph.io.gd.<A HREF="com/mxgraph/io/gd/mxGdEdge.html" title="class in com.mxgraph.io.gd"><B>mxGdEdge</B></A><LI TYPE="circle">com.mxgraph.io.gd.<A HREF="com/mxgraph/io/gd/mxGdNode.html" title="class in com.mxgraph.io.gd"><B>mxGdNode</B></A><LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphAbstractHierarchyCell</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyEdge</B></A><LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyNode</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphActions.html" title="class in com.mxgraph.swing.util"><B>mxGraphActions</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxGraphAnalysis.html" title="class in com.mxgraph.analysis"><B>mxGraphAnalysis</B></A><LI TYPE="circle">com.mxgraph.swing.<A HREF="com/mxgraph/swing/mxGraphComponent.mxMouseRedirector.html" title="class in com.mxgraph.swing"><B>mxGraphComponent.mxMouseRedirector</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.html" title="class in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyModel</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxGraphicsCanvas2D.html" title="class in com.mxgraph.canvas"><B>mxGraphicsCanvas2D</B></A> (implements com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas">mxICanvas2D</A>)
    +<LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxGraphicsCanvas2D.CanvasState.html" title="class in com.mxgraph.canvas"><B>mxGraphicsCanvas2D.CanvasState</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>)
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxGraphLayout.html" title="class in com.mxgraph.layout"><B>mxGraphLayout</B></A> (implements com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxCircleLayout.html" title="class in com.mxgraph.layout"><B>mxCircleLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxCompactTreeLayout.html" title="class in com.mxgraph.layout"><B>mxCompactTreeLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxEdgeLabelLayout.html" title="class in com.mxgraph.layout"><B>mxEdgeLabelLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxFastOrganicLayout.html" title="class in com.mxgraph.layout"><B>mxFastOrganicLayout</B></A><LI TYPE="circle">com.mxgraph.layout.hierarchical.<A HREF="com/mxgraph/layout/hierarchical/mxHierarchicalLayout.html" title="class in com.mxgraph.layout.hierarchical"><B>mxHierarchicalLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxOrganicLayout.html" title="class in com.mxgraph.layout"><B>mxOrganicLayout</B></A><LI TYPE="circle">com.mxgraph.layout.orthogonal.<A HREF="com/mxgraph/layout/orthogonal/mxOrthogonalLayout.html" title="class in com.mxgraph.layout.orthogonal"><B>mxOrthogonalLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxParallelEdgeLayout.html" title="class in com.mxgraph.layout"><B>mxParallelEdgeLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxPartitionLayout.html" title="class in com.mxgraph.layout"><B>mxPartitionLayout</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxStackLayout.html" title="class in com.mxgraph.layout"><B>mxStackLayout</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxGraphMlCodec.html" title="class in com.mxgraph.io"><B>mxGraphMlCodec</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlConstants.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlConstants</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlData.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlData</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlEdge.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlEdge</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlGraph.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlGraph</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlKey.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlKey</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlKeyManager.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlKeyManager</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlNode.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlNode</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlPort.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlPort</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlShapeEdge.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlShapeEdge</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlShapeNode.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlShapeNode</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlUtils.html" title="class in com.mxgraph.io.graphml"><B>mxGraphMlUtils</B></A><LI TYPE="circle">com.mxgraph.swing.<A HREF="com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing"><B>mxGraphOutline.MouseTracker</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxGraphSelectionModel.mxSelectionChange.html" title="class in com.mxgraph.view"><B>mxGraphSelectionModel.mxSelectionChange</B></A> (implements com.mxgraph.util.<A HREF="com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>)
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util"><B>mxGraphTransferable</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, java.awt.datatransfer.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A>, javax.swing.plaf.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/plaf/UIResource.html?is-external=true" title="class or interface in javax.swing.plaf">UIResource</A>)
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxGraphView.mxCurrentRootChange.html" title="class in com.mxgraph.view"><B>mxGraphView.mxCurrentRootChange</B></A> (implements com.mxgraph.util.<A HREF="com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>)
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxHtmlTextShape.html" title="class in com.mxgraph.shape"><B>mxHtmlTextShape</B></A> (implements com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape">mxITextShape</A>)
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxIGraphModel.mxAtomicGraphModelChange.html" title="class in com.mxgraph.model"><B>mxIGraphModel.mxAtomicGraphModelChange</B></A> (implements com.mxgraph.util.<A HREF="com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util">mxUndoableEdit.mxUndoableChange</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.mxChildChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxChildChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.mxCollapseChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxCollapseChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.mxGeometryChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxGeometryChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.mxRootChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxRootChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.mxStyleChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxStyleChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.mxTerminalChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxTerminalChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.mxValueChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxValueChange</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.mxVisibleChange.html" title="class in com.mxgraph.model"><B>mxGraphModel.mxVisibleChange</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util"><B>mxImage</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxImageBundle.html" title="class in com.mxgraph.util"><B>mxImageBundle</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxImageCanvas.html" title="class in com.mxgraph.canvas"><B>mxImageCanvas</B></A> (implements com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas">mxICanvas</A>)
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxKeyboardHandler.html" title="class in com.mxgraph.swing.handler"><B>mxKeyboardHandler</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxMarkerRegistry.html" title="class in com.mxgraph.shape"><B>mxMarkerRegistry</B></A><LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxMedianHybridCrossingReduction</B></A> (implements com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A>)
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.MedianCellSorter.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxMedianHybridCrossingReduction.MedianCellSorter</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;T&gt;)
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxMinimumCycleRemover</B></A> (implements com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage">mxHierarchicalLayoutStage</A>)
    +<LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxMouseAdapter.html" title="class in com.mxgraph.swing.util"><B>mxMouseAdapter</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler"><B>mxConnectionHandler</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler"><B>mxGraphHandler</B></A> (implements java.awt.dnd.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/dnd/DropTargetListener.html?is-external=true" title="class or interface in java.awt.dnd">DropTargetListener</A>)
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxInsertHandler.html" title="class in com.mxgraph.swing.handler"><B>mxInsertHandler</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler"><B>mxPanningHandler</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxRotationHandler.html" title="class in com.mxgraph.swing.handler"><B>mxRotationHandler</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxMultiplicity.html" title="class in com.mxgraph.view"><B>mxMultiplicity</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxObjectCodec.html" title="class in com.mxgraph.io"><B>mxObjectCodec</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxCellCodec.html" title="class in com.mxgraph.io"><B>mxCellCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxChildChangeCodec.html" title="class in com.mxgraph.io"><B>mxChildChangeCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxGenericChangeCodec.html" title="class in com.mxgraph.io"><B>mxGenericChangeCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxModelCodec.html" title="class in com.mxgraph.io"><B>mxModelCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxRootChangeCodec.html" title="class in com.mxgraph.io"><B>mxRootChangeCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxStylesheetCodec.html" title="class in com.mxgraph.io"><B>mxStylesheetCodec</B></A><LI TYPE="circle">com.mxgraph.io.<A HREF="com/mxgraph/io/mxTerminalChangeCodec.html" title="class in com.mxgraph.io"><B>mxTerminalChangeCodec</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxOrganicLayout.CellWrapper.html" title="class in com.mxgraph.layout"><B>mxOrganicLayout.CellWrapper</B></A><LI TYPE="circle">com.mxgraph.layout.orthogonal.model.<A HREF="com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxOrthogonalModel</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxPerimeter.html" title="class in com.mxgraph.view"><B>mxPerimeter</B></A><LI TYPE="circle">com.mxgraph.util.png.<A HREF="com/mxgraph/util/png/mxPngEncodeParam.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.png.<A HREF="com/mxgraph/util/png/mxPngEncodeParam.Gray.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam.Gray</B></A><LI TYPE="circle">com.mxgraph.util.png.<A HREF="com/mxgraph/util/png/mxPngEncodeParam.Palette.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam.Palette</B></A><LI TYPE="circle">com.mxgraph.util.png.<A HREF="com/mxgraph/util/png/mxPngEncodeParam.RGB.html" title="class in com.mxgraph.util.png"><B>mxPngEncodeParam.RGB</B></A></UL>
    +<LI TYPE="circle">com.mxgraph.util.png.<A HREF="com/mxgraph/util/png/mxPngImageEncoder.html" title="class in com.mxgraph.util.png"><B>mxPngImageEncoder</B></A><LI TYPE="circle">com.mxgraph.util.png.<A HREF="com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png"><B>mxPngSuggestedPaletteEntry</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<LI TYPE="circle">com.mxgraph.util.png.<A HREF="com/mxgraph/util/png/mxPngTextDecoder.html" title="class in com.mxgraph.util.png"><B>mxPngTextDecoder</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util"><B>mxPoint</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util"><B>mxLine</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util"><B>mxRectangle</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view"><B>mxCellState</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model"><B>mxGeometry</B></A></UL>
    +</UL>
    +<LI TYPE="circle">com.mxgraph.layout.orthogonal.model.<A HREF="com/mxgraph/layout/orthogonal/model/mxPointPair.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxPointPair</B></A><LI TYPE="circle">com.mxgraph.layout.orthogonal.model.<A HREF="com/mxgraph/layout/orthogonal/model/mxPointSequence.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxPointSequence</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxResources.html" title="class in com.mxgraph.util"><B>mxResources</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxRubberband.html" title="class in com.mxgraph.swing.handler"><B>mxRubberband</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<LI TYPE="circle">com.mxgraph.layout.orthogonal.model.<A HREF="com/mxgraph/layout/orthogonal/model/mxSegment.html" title="class in com.mxgraph.layout.orthogonal.model"><B>mxSegment</B></A><LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler"><B>mxSelectionCellsHandler</B></A> (implements java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/MouseMotionListener.html?is-external=true" title="class or interface in java.awt.event">MouseMotionListener</A>)
    +<LI TYPE="circle">com.mxgraph.sharing.<A HREF="com/mxgraph/sharing/mxSession.html" title="class in com.mxgraph.sharing"><B>mxSession</B></A> (implements com.mxgraph.sharing.<A HREF="com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing">mxSharedState.mxDiagramChangeListener</A>)
    +<LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxSpline.html" title="class in com.mxgraph.util"><B>mxSpline</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxSpline1D.html" title="class in com.mxgraph.util"><B>mxSpline1D</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxStencil.html" title="class in com.mxgraph.shape"><B>mxStencil</B></A> (implements com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape">mxIShape</A>)
    +<LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxStencilRegistry.html" title="class in com.mxgraph.shape"><B>mxStencilRegistry</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxStencilShape.svgShape.html" title="class in com.mxgraph.shape"><B>mxStencilShape.svgShape</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxStyleRegistry.html" title="class in com.mxgraph.view"><B>mxStyleRegistry</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxStylesheet.html" title="class in com.mxgraph.view"><B>mxStylesheet</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxStyleUtils.html" title="class in com.mxgraph.util"><B>mxStyleUtils</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxSwingConstants.html" title="class in com.mxgraph.swing.util"><B>mxSwingConstants</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxTemporaryCellStates.html" title="class in com.mxgraph.view"><B>mxTemporaryCellStates</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxUndoableEdit.html" title="class in com.mxgraph.util"><B>mxUndoableEdit</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxUnionFind.html" title="class in com.mxgraph.analysis"><B>mxUnionFind</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxUnionFind.Node.html" title="class in com.mxgraph.analysis"><B>mxUnionFind.Node</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxUtils.html" title="class in com.mxgraph.util"><B>mxUtils</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxXmlUtils.html" title="class in com.mxgraph.util"><B>mxXmlUtils</B></A><LI TYPE="circle">java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><B>Reader</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</A>, java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Readable.html?is-external=true" title="class or interface in java.lang">Readable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/NormalizingReader.html" title="class in com.mxgraph.util.svg"><B>NormalizingReader</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/StringNormalizingReader.html" title="class in com.mxgraph.util.svg"><B>StringNormalizingReader</B></A></UL>
    +</UL>
    +<LI TYPE="circle">java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/RectangularShape.html?is-external=true" title="class or interface in java.awt.geom"><B>RectangularShape</B></A> (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</A>, java.awt.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Shape.html?is-external=true" title="class or interface in java.awt">Shape</A>)
    +<UL>
    +<LI TYPE="circle">java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.html?is-external=true" title="class or interface in java.awt.geom"><B>Rectangle2D</B></A><UL>
    +<LI TYPE="circle">java.awt.geom.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true" title="class or interface in java.awt.geom"><B>Rectangle2D.Double</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage"><B>mxCoordinateAssignment.AreaSpatialCache</B></A></UL>
    +</UL>
    +</UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><B>Throwable</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><B>Exception</B></A><UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang"><B>RuntimeException</B></A><UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg"><B>ParseException</B></A></UL>
    +</UL>
    +</UL>
    +<LI TYPE="circle">javax.swing.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing"><B>TransferHandler</B></A> (implements java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.swing.handler.<A HREF="com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler"><B>mxGraphTransferHandler</B></A></UL>
    +</UL>
    +</UL>
    +<H2>
    +Interface Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/CSSConstants.html" title="interface in com.mxgraph.util.svg"><B>CSSConstants</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/ErrorHandler.html" title="interface in com.mxgraph.util.svg"><B>ErrorHandler</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/ExtendedPathIterator.html" title="interface in com.mxgraph.util.svg"><B>ExtendedPathIterator</B></A><LI TYPE="circle">com.mxgraph.reader.<A HREF="com/mxgraph/reader/mxDomOutputParser.IElementHandler.html" title="interface in com.mxgraph.reader"><B>mxDomOutputParser.IElementHandler</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxEdgeStyle.mxEdgeStyleFunction.html" title="interface in com.mxgraph.view"><B>mxEdgeStyle.mxEdgeStyleFunction</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util"><B>mxEventSource.mxIEventListener</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxGraph.mxICellVisitor.html" title="interface in com.mxgraph.view"><B>mxGraph.mxICellVisitor</B></A><LI TYPE="circle">com.mxgraph.layout.hierarchical.model.<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.CellVisitor.html" title="interface in com.mxgraph.layout.hierarchical.model"><B>mxGraphHierarchyModel.CellVisitor</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxGraphModel.Filter.html" title="interface in com.mxgraph.model"><B>mxGraphModel.Filter</B></A><LI TYPE="circle">com.mxgraph.layout.hierarchical.stage.<A HREF="com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.html" title="interface in com.mxgraph.layout.hierarchical.stage"><B>mxHierarchicalLayoutStage</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxICanvas.html" title="interface in com.mxgraph.canvas"><B>mxICanvas</B></A><LI TYPE="circle">com.mxgraph.canvas.<A HREF="com/mxgraph/canvas/mxICanvas2D.html" title="interface in com.mxgraph.canvas"><B>mxICanvas2D</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model"><B>mxICell</B></A><LI TYPE="circle">com.mxgraph.swing.view.<A HREF="com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view"><B>mxICellEditor</B></A><LI TYPE="circle">com.mxgraph.swing.util.<A HREF="com/mxgraph/swing/util/mxICellOverlay.html" title="interface in com.mxgraph.swing.util"><B>mxICellOverlay</B></A><LI TYPE="circle">com.mxgraph.analysis.<A HREF="com/mxgraph/analysis/mxICostFunction.html" title="interface in com.mxgraph.analysis"><B>mxICostFunction</B></A><LI TYPE="circle">com.mxgraph.layout.<A HREF="com/mxgraph/layout/mxIGraphLayout.html" title="interface in com.mxgraph.layout"><B>mxIGraphLayout</B></A><LI TYPE="circle">com.mxgraph.model.<A HREF="com/mxgraph/model/mxIGraphModel.html" title="interface in com.mxgraph.model"><B>mxIGraphModel</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxIMarker.html" title="interface in com.mxgraph.shape"><B>mxIMarker</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxIShape.html" title="interface in com.mxgraph.shape"><B>mxIShape</B></A><LI TYPE="circle">com.mxgraph.shape.<A HREF="com/mxgraph/shape/mxITextShape.html" title="interface in com.mxgraph.shape"><B>mxITextShape</B></A><LI TYPE="circle">com.mxgraph.view.<A HREF="com/mxgraph/view/mxPerimeter.mxPerimeterFunction.html" title="interface in com.mxgraph.view"><B>mxPerimeter.mxPerimeterFunction</B></A><LI TYPE="circle">com.mxgraph.reader.<A HREF="com/mxgraph/reader/mxSaxOutputHandler.IElementHandler.html" title="interface in com.mxgraph.reader"><B>mxSaxOutputHandler.IElementHandler</B></A><LI TYPE="circle">com.mxgraph.sharing.<A HREF="com/mxgraph/sharing/mxSharedState.mxDiagramChangeListener.html" title="interface in com.mxgraph.sharing"><B>mxSharedState.mxDiagramChangeListener</B></A><LI TYPE="circle">com.mxgraph.util.<A HREF="com/mxgraph/util/mxUndoableEdit.mxUndoableChange.html" title="interface in com.mxgraph.util"><B>mxUndoableEdit.mxUndoableChange</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/Parser.html" title="interface in com.mxgraph.util.svg"><B>Parser</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/PathHandler.html" title="interface in com.mxgraph.util.svg"><B>PathHandler</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/PointsHandler.html" title="interface in com.mxgraph.util.svg"><B>PointsHandler</B></A><LI TYPE="circle">com.mxgraph.util.svg.<A HREF="com/mxgraph/util/svg/ShapeProducer.html" title="interface in com.mxgraph.util.svg"><B>ShapeProducer</B></A></UL>
    +<H2>
    +Enum Hierarchy
    +</H2>
    +<UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
    +<LI TYPE="circle">java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><B>Enum</B></A>&lt;E&gt; (implements java.lang.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;T&gt;, java.io.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
    +<UL>
    +<LI TYPE="circle">com.mxgraph.io.gd.<A HREF="com/mxgraph/io/gd/mxGdDocument.mxGDParseState.html" title="enum in com.mxgraph.io.gd"><B>mxGdDocument.mxGDParseState</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlKey.keyForValues.html" title="enum in com.mxgraph.io.graphml"><B>mxGraphMlKey.keyForValues</B></A><LI TYPE="circle">com.mxgraph.io.graphml.<A HREF="com/mxgraph/io/graphml/mxGraphMlKey.keyTypeValues.html" title="enum in com.mxgraph.io.graphml"><B>mxGraphMlKey.keyTypeValues</B></A></UL>
    +</UL>
    +</UL>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/package-list b/java/docs/package-list
    new file mode 100644
    index 000000000..6055ad58e
    --- /dev/null
    +++ b/java/docs/package-list
    @@ -0,0 +1,23 @@
    +com.mxgraph.analysis
    +com.mxgraph.canvas
    +com.mxgraph.io
    +com.mxgraph.io.gd
    +com.mxgraph.io.graphml
    +com.mxgraph.layout
    +com.mxgraph.layout.hierarchical
    +com.mxgraph.layout.hierarchical.model
    +com.mxgraph.layout.hierarchical.stage
    +com.mxgraph.layout.orthogonal
    +com.mxgraph.layout.orthogonal.model
    +com.mxgraph.model
    +com.mxgraph.reader
    +com.mxgraph.shape
    +com.mxgraph.sharing
    +com.mxgraph.swing
    +com.mxgraph.swing.handler
    +com.mxgraph.swing.util
    +com.mxgraph.swing.view
    +com.mxgraph.util
    +com.mxgraph.util.png
    +com.mxgraph.util.svg
    +com.mxgraph.view
    diff --git a/java/docs/resources/inherit.gif b/java/docs/resources/inherit.gif
    new file mode 100644
    index 000000000..c814867a1
    Binary files /dev/null and b/java/docs/resources/inherit.gif differ
    diff --git a/java/docs/serialized-form.html b/java/docs/serialized-form.html
    new file mode 100644
    index 000000000..eb96a35ee
    --- /dev/null
    +++ b/java/docs/serialized-form.html
    @@ -0,0 +1,2562 @@
    +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    +<!--NewPage-->
    +<HTML>
    +<HEAD>
    +<!-- Generated by javadoc (build 1.6.0_26) on Mon May 21 09:06:10 CEST 2012 -->
    +<TITLE>
    +Serialized Form (mxGraph 1.10.0.5 API Specification)
    +</TITLE>
    +
    +<META NAME="date" CONTENT="2012-05-21">
    +
    +<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
    +
    +<SCRIPT type="text/javascript">
    +function windowTitle()
    +{
    +    if (location.href.indexOf('is-external=true') == -1) {
    +        parent.document.title="Serialized Form (mxGraph 1.10.0.5 API Specification)";
    +    }
    +}
    +</SCRIPT>
    +<NOSCRIPT>
    +</NOSCRIPT>
    +
    +</HEAD>
    +
    +<BODY BGCOLOR="white" onload="windowTitle();">
    +<HR>
    +
    +
    +<!-- ========= START OF TOP NAVBAR ======= -->
    +<A NAME="navbar_top"><!-- --></A>
    +<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_top_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_top"></A>
    +<!-- ========= END OF TOP NAVBAR ========= -->
    +
    +<HR>
    +<CENTER>
    +<H1>
    +Serialized Form</H1>
    +</CENTER>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.layout.hierarchical.model</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.model.mxGraphHierarchyRank"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.html" title="class in com.mxgraph.layout.hierarchical.model">com.mxgraph.layout.hierarchical.model.mxGraphHierarchyRank</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/LinkedHashSet.html?is-external=true" title="class or interface in java.util">LinkedHashSet</A>&lt;<A HREF="com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.html" title="class in com.mxgraph.layout.hierarchical.model">mxGraphAbstractHierarchyCell</A>&gt; implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-2781491210687143878L
    +
    +<P>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.layout.hierarchical.stage</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.AreaSpatialCache"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.AreaSpatialCache.html" title="class in com.mxgraph.layout.hierarchical.stage">com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment.AreaSpatialCache</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/geom/Rectangle2D.Double.html?is-external=true" title="class or interface in java.awt.geom">Rectangle2D.Double</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +cells</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">E</A>&gt; <B>cells</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.model</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.model.mxCell"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/model/mxCell.html" title="class in com.mxgraph.model">com.mxgraph.model.mxCell</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>910211337632342672L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +id</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>id</B></PRE>
    +<DL>
    +<DD>Holds the Id. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +value</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>value</B></PRE>
    +<DL>
    +<DD>Holds the user object. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +geometry</H3>
    +<PRE>
    +<A HREF="com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">mxGeometry</A> <B>geometry</B></PRE>
    +<DL>
    +<DD>Holds the geometry. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +style</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>style</B></PRE>
    +<DL>
    +<DD>Holds the style as a string of the form
    + stylename[;key=value]. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +vertex</H3>
    +<PRE>
    +boolean <B>vertex</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +edge</H3>
    +<PRE>
    +boolean <B>edge</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +connectable</H3>
    +<PRE>
    +boolean <B>connectable</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +visible</H3>
    +<PRE>
    +boolean <B>visible</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +collapsed</H3>
    +<PRE>
    +boolean <B>collapsed</B></PRE>
    +<DL>
    +<DD>Specifies whether the cell is a vertex or edge and whether it is
    + connectable, visible and collapsed. Default values are false, false,
    + true, true and false respectively.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +parent</H3>
    +<PRE>
    +<A HREF="com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>parent</B></PRE>
    +<DL>
    +<DD>Reference to the parent cell and source and target terminals for edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +source</H3>
    +<PRE>
    +<A HREF="com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>source</B></PRE>
    +<DL>
    +<DD>Reference to the parent cell and source and target terminals for edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +target</H3>
    +<PRE>
    +<A HREF="com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>target</B></PRE>
    +<DL>
    +<DD>Reference to the parent cell and source and target terminals for edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +children</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">E</A>&gt; <B>children</B></PRE>
    +<DL>
    +<DD>Holds the child cells and connected edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +edges</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">E</A>&gt; <B>edges</B></PRE>
    +<DL>
    +<DD>Holds the child cells and connected edges.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<A NAME="com.mxgraph.model.mxGeometry"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/model/mxGeometry.html" title="class in com.mxgraph.model">com.mxgraph.model.mxGeometry</A> extends <A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>2649828026610336589L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +alternateBounds</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>alternateBounds</B></PRE>
    +<DL>
    +<DD>Stores alternate values for x, y, width and height in a rectangle.
    + Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +sourcePoint</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>sourcePoint</B></PRE>
    +<DL>
    +<DD>Defines the source- and target-point of the edge. This is used if the
    + corresponding edge does not have a source vertex. Otherwise it is
    + ignored. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +targetPoint</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>targetPoint</B></PRE>
    +<DL>
    +<DD>Defines the source- and target-point of the edge. This is used if the
    + corresponding edge does not have a source vertex. Otherwise it is
    + ignored. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +points</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">E</A>&gt; <B>points</B></PRE>
    +<DL>
    +<DD>List of mxPoints which specifies the control points along the edge.
    + These points are the intermediate points on the edge, for the endpoints
    + use targetPoint and sourcePoint or set the terminals of the edge to
    + a non-null value. Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +offset</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>offset</B></PRE>
    +<DL>
    +<DD>Holds the offset of the label for edges. This is the absolute vector
    + between the center of the edge and the top, left point of the label.
    + Default is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +relative</H3>
    +<PRE>
    +boolean <B>relative</B></PRE>
    +<DL>
    +<DD>Specifies if the coordinates in the geometry are to be interpreted as
    + relative coordinates. Default is false. This is used to mark a geometry
    + with an x- and y-coordinate that is used to describe an edge label
    + position, or a relative location with respect to a parent cell's
    + width and height.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<A NAME="com.mxgraph.model.mxGraphModel"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/model/mxGraphModel.html" title="class in com.mxgraph.model">com.mxgraph.model.mxGraphModel</A> extends <A HREF="com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="serialized_methods"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialization Methods</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
    +readObject</H3>
    +<PRE>
    +private void <B>readObject</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/ObjectInputStream.html?is-external=true" title="class or interface in java.io">ObjectInputStream</A>&nbsp;ois)
    +                 throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A>,
    +                        <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</A></PRE>
    +<DL>
    +<DD>Initializes the currentEdit field if the model is deserialized.
    +<P>
    +<DD><DL>
    +
    +<DT><B>Throws:</B>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE>
    +<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</A></CODE></DD>
    +</DL>
    +</DL>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +root</H3>
    +<PRE>
    +<A HREF="com/mxgraph/model/mxICell.html" title="interface in com.mxgraph.model">mxICell</A> <B>root</B></PRE>
    +<DL>
    +<DD>Holds the root cell, which in turn contains the cells that represent the
    + layers of the diagram as child cells. That is, the actual element of the
    + diagram are supposed to live in the third generation of cells and below.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +cells</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">K</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</A>&gt; <B>cells</B></PRE>
    +<DL>
    +<DD>Maps from Ids to cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +maintainEdgeParent</H3>
    +<PRE>
    +boolean <B>maintainEdgeParent</B></PRE>
    +<DL>
    +<DD>Specifies if edges should automatically be moved into the nearest common
    + ancestor of their terminals. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +createIds</H3>
    +<PRE>
    +boolean <B>createIds</B></PRE>
    +<DL>
    +<DD>Specifies if the model should automatically create Ids for new cells.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +nextId</H3>
    +<PRE>
    +int <B>nextId</B></PRE>
    +<DL>
    +<DD>Specifies the next Id to be created. Initial value is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.swing</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.mxGraphComponent"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">com.mxgraph.swing.mxGraphComponent</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JScrollPane.html?is-external=true" title="class or interface in javax.swing">JScrollPane</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-30203858391633447L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +graph</H3>
    +<PRE>
    +<A HREF="com/mxgraph/view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</A> <B>graph</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +graphControl</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">mxGraphComponent.mxGraphControl</A> <B>graphControl</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +eventSource</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> <B>eventSource</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +cellEditor</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/view/mxICellEditor.html" title="interface in com.mxgraph.swing.view">mxICellEditor</A> <B>cellEditor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +connectionHandler</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/handler/mxConnectionHandler.html" title="class in com.mxgraph.swing.handler">mxConnectionHandler</A> <B>connectionHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +panningHandler</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/handler/mxPanningHandler.html" title="class in com.mxgraph.swing.handler">mxPanningHandler</A> <B>panningHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +selectionCellsHandler</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/handler/mxSelectionCellsHandler.html" title="class in com.mxgraph.swing.handler">mxSelectionCellsHandler</A> <B>selectionCellsHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +graphHandler</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/handler/mxGraphHandler.html" title="class in com.mxgraph.swing.handler">mxGraphHandler</A> <B>graphHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +previewAlpha</H3>
    +<PRE>
    +float <B>previewAlpha</B></PRE>
    +<DL>
    +<DD>The transparency of previewed cells from 0.0. to 0.1. 0.0 indicates
    + transparent, 1.0 indicates opaque. Default is 1.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +backgroundImage</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>backgroundImage</B></PRE>
    +<DL>
    +<DD>Specifies the <mxImage> to be returned by <getBackgroundImage>. Default
    + is null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +pageFormat</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/print/PageFormat.html?is-external=true" title="class or interface in java.awt.print">PageFormat</A> <B>pageFormat</B></PRE>
    +<DL>
    +<DD>Background page format.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +canvas</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/view/mxInteractiveCanvas.html" title="class in com.mxgraph.swing.view">mxInteractiveCanvas</A> <B>canvas</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +tripleBuffer</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>tripleBuffer</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +tripleBufferGraphics</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>tripleBufferGraphics</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +pageScale</H3>
    +<PRE>
    +double <B>pageScale</B></PRE>
    +<DL>
    +<DD>Defines the scaling for the background page metrics. Default is
    + <A HREF="com/mxgraph/swing/mxGraphComponent.html#DEFAULT_PAGESCALE"><CODE>mxGraphComponent.DEFAULT_PAGESCALE</CODE></A>.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +pageVisible</H3>
    +<PRE>
    +boolean <B>pageVisible</B></PRE>
    +<DL>
    +<DD>Specifies if the background page should be visible. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +preferPageSize</H3>
    +<PRE>
    +boolean <B>preferPageSize</B></PRE>
    +<DL>
    +<DD>If the pageFormat should be used to determine the minimal graph bounds
    + even if the page is not visible (see pageVisible). Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +pageBreaksVisible</H3>
    +<PRE>
    +boolean <B>pageBreaksVisible</B></PRE>
    +<DL>
    +<DD>Specifies if a dashed line should be drawn between multiple pages.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +pageBreakColor</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>pageBreakColor</B></PRE>
    +<DL>
    +<DD>Specifies the color of page breaks
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +horizontalPageCount</H3>
    +<PRE>
    +int <B>horizontalPageCount</B></PRE>
    +<DL>
    +<DD>Specifies the number of pages in the horizontal direction.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +verticalPageCount</H3>
    +<PRE>
    +int <B>verticalPageCount</B></PRE>
    +<DL>
    +<DD>Specifies the number of pages in the vertical direction.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +centerPage</H3>
    +<PRE>
    +boolean <B>centerPage</B></PRE>
    +<DL>
    +<DD>Specifies if the background page should be centered by automatically
    + setting the translate in the view. Default is true. This does only apply
    + if pageVisible is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +pageBackgroundColor</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>pageBackgroundColor</B></PRE>
    +<DL>
    +<DD>Color of the background area if layout view.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +pageShadowColor</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>pageShadowColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +pageBorderColor</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>pageBorderColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +gridVisible</H3>
    +<PRE>
    +boolean <B>gridVisible</B></PRE>
    +<DL>
    +<DD>Specifies if the grid is visible. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +gridColor</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>gridColor</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +autoScroll</H3>
    +<PRE>
    +boolean <B>autoScroll</B></PRE>
    +<DL>
    +<DD>Whether or not to scroll the scrollable container the graph exists in if
    + a suitable handler is active and the graph bounds already exist extended
    + in the direction of mouse travel.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +autoExtend</H3>
    +<PRE>
    +boolean <B>autoExtend</B></PRE>
    +<DL>
    +<DD>Whether to extend the graph bounds and scroll towards the limit of those
    + new bounds in the direction of mouse travel if a handler is active while
    + the mouse leaves the container that the graph exists in.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +dragEnabled</H3>
    +<PRE>
    +boolean <B>dragEnabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +importEnabled</H3>
    +<PRE>
    +boolean <B>importEnabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +exportEnabled</H3>
    +<PRE>
    +boolean <B>exportEnabled</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +foldingEnabled</H3>
    +<PRE>
    +boolean <B>foldingEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if folding (collapse and expand via an image icon in the graph
    + should be enabled). Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +tolerance</H3>
    +<PRE>
    +int <B>tolerance</B></PRE>
    +<DL>
    +<DD>Specifies the tolerance for mouse clicks. Default is 4.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +swimlaneSelectionEnabled</H3>
    +<PRE>
    +boolean <B>swimlaneSelectionEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if swimlanes are selected when the mouse is released over the
    + swimlanes content area. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +transparentSwimlaneContent</H3>
    +<PRE>
    +boolean <B>transparentSwimlaneContent</B></PRE>
    +<DL>
    +<DD>Specifies if the content area should be transparent to events. Default is
    + true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +gridStyle</H3>
    +<PRE>
    +int <B>gridStyle</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +expandedIcon</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>expandedIcon</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +collapsedIcon</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>collapsedIcon</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +warningIcon</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>warningIcon</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +antiAlias</H3>
    +<PRE>
    +boolean <B>antiAlias</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +textAntiAlias</H3>
    +<PRE>
    +boolean <B>textAntiAlias</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +escapeEnabled</H3>
    +<PRE>
    +boolean <B>escapeEnabled</B></PRE>
    +<DL>
    +<DD>Specifies <escape> should be invoked when the escape key is pressed.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +invokesStopCellEditing</H3>
    +<PRE>
    +boolean <B>invokesStopCellEditing</B></PRE>
    +<DL>
    +<DD>If true, when editing is to be stopped by way of selection changing, data
    + in diagram changing or other means stopCellEditing is invoked, and
    + changes are saved. This is implemented in a mouse listener in this class.
    + Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +enterStopsCellEditing</H3>
    +<PRE>
    +boolean <B>enterStopsCellEditing</B></PRE>
    +<DL>
    +<DD>If true, pressing the enter key without pressing control will stop
    + editing and accept the new value. This is used in <mxKeyHandler> to stop
    + cell editing. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +zoomPolicy</H3>
    +<PRE>
    +int <B>zoomPolicy</B></PRE>
    +<DL>
    +<DD>Specifies the zoom policy. Default is ZOOM_POLICY_PAGE. The zoom policy
    + does only apply if pageVisible is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +zoomFactor</H3>
    +<PRE>
    +double <B>zoomFactor</B></PRE>
    +<DL>
    +<DD>Specifies the factor used for zoomIn and zoomOut. Default is 1.2 (120%).
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +keepSelectionVisibleOnZoom</H3>
    +<PRE>
    +boolean <B>keepSelectionVisibleOnZoom</B></PRE>
    +<DL>
    +<DD>Specifies if the viewport should automatically contain the selection
    + cells after a zoom operation. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +centerZoom</H3>
    +<PRE>
    +boolean <B>centerZoom</B></PRE>
    +<DL>
    +<DD>Specifies if the zoom operations should go into the center of the actual
    + diagram rather than going from top, left. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +tripleBuffered</H3>
    +<PRE>
    +boolean <B>tripleBuffered</B></PRE>
    +<DL>
    +<DD>Specifies if an image buffer should be used for painting the component.
    + Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +showDirtyRectangle</H3>
    +<PRE>
    +boolean <B>showDirtyRectangle</B></PRE>
    +<DL>
    +<DD>Used for debugging the dirty region.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +components</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">K</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">V</A>&gt; <B>components</B></PRE>
    +<DL>
    +<DD>Maps from cells to lists of heavyweights.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +overlays</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">K</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">V</A>&gt; <B>overlays</B></PRE>
    +<DL>
    +<DD>Maps from cells to lists of overlays.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +updateHandler</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>updateHandler</B></PRE>
    +<DL>
    +<DD>Updates the heavyweight component structure after any changes.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +repaintHandler</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>repaintHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +viewChangeHandler</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/beans/PropertyChangeListener.html?is-external=true" title="class or interface in java.beans">PropertyChangeListener</A> <B>viewChangeHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +scaleHandler</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>scaleHandler</B></PRE>
    +<DL>
    +<DD>Resets the zoom policy if the scale is changed manually.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.mxGraphComponent.mxGraphControl"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/mxGraphComponent.mxGraphControl.html" title="class in com.mxgraph.swing">com.mxgraph.swing.mxGraphComponent.mxGraphControl</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-8916603170766739124L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +translate</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>translate</B></PRE>
    +<DL>
    +<DD>Specifies a translation for painting. This should only be used during
    + mouse drags and must be reset after any interactive repaints. Default
    + is (0,0). This should not be null.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.mxGraphOutline"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/mxGraphOutline.html" title="class in com.mxgraph.swing">com.mxgraph.swing.mxGraphOutline</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-2521103946905154267L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +graphComponent</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +tripleBuffer</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/image/BufferedImage.html?is-external=true" title="class or interface in java.awt.image">BufferedImage</A> <B>tripleBuffer</B></PRE>
    +<DL>
    +<DD>TODO: Not yet implemented.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +tripleBufferGraphics</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics2D.html?is-external=true" title="class or interface in java.awt">Graphics2D</A> <B>tripleBufferGraphics</B></PRE>
    +<DL>
    +<DD>Holds the graphics of the triple buffer.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +repaintBuffer</H3>
    +<PRE>
    +boolean <B>repaintBuffer</B></PRE>
    +<DL>
    +<DD>True if the triple buffer needs a full repaint.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +repaintClip</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>repaintClip</B></PRE>
    +<DL>
    +<DD>Clip of the triple buffer to be repainted.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +tripleBuffered</H3>
    +<PRE>
    +boolean <B>tripleBuffered</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +finderBounds</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt">Rectangle</A> <B>finderBounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +zoomHandleLocation</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>zoomHandleLocation</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +finderVisible</H3>
    +<PRE>
    +boolean <B>finderVisible</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +zoomHandleVisible</H3>
    +<PRE>
    +boolean <B>zoomHandleVisible</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +useScaledInstance</H3>
    +<PRE>
    +boolean <B>useScaledInstance</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +antiAlias</H3>
    +<PRE>
    +boolean <B>antiAlias</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +drawLabels</H3>
    +<PRE>
    +boolean <B>drawLabels</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +fitPage</H3>
    +<PRE>
    +boolean <B>fitPage</B></PRE>
    +<DL>
    +<DD>Specifies if the outline should be zoomed to the page if the graph
    + component is in page layout mode. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +outlineBorder</H3>
    +<PRE>
    +int <B>outlineBorder</B></PRE>
    +<DL>
    +<DD>Not yet implemented.
    + 
    + Border to add around the page bounds if wholePage is true.
    + Default is 4.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +tracker</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/mxGraphOutline.MouseTracker.html" title="class in com.mxgraph.swing">mxGraphOutline.MouseTracker</A> <B>tracker</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +scale</H3>
    +<PRE>
    +double <B>scale</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +translate</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>translate</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +repaintHandler</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxEventSource.mxIEventListener.html" title="interface in com.mxgraph.util">mxEventSource.mxIEventListener</A> <B>repaintHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +componentHandler</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/ComponentListener.html?is-external=true" title="class or interface in java.awt.event">ComponentListener</A> <B>componentHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +adjustmentHandler</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/event/AdjustmentListener.html?is-external=true" title="class or interface in java.awt.event">AdjustmentListener</A> <B>adjustmentHandler</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.swing.handler</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.handler.mxCellMarker"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">com.mxgraph.swing.handler.mxCellMarker</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>614473367053597572L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +eventSource</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxEventSource.html" title="class in com.mxgraph.util">mxEventSource</A> <B>eventSource</B></PRE>
    +<DL>
    +<DD>Holds the event source.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +graphComponent</H3>
    +<PRE>
    +<A HREF="com/mxgraph/swing/mxGraphComponent.html" title="class in com.mxgraph.swing">mxGraphComponent</A> <B>graphComponent</B></PRE>
    +<DL>
    +<DD>Holds the enclosing graph component.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +enabled</H3>
    +<PRE>
    +boolean <B>enabled</B></PRE>
    +<DL>
    +<DD>Specifies if the marker is enabled. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +hotspot</H3>
    +<PRE>
    +double <B>hotspot</B></PRE>
    +<DL>
    +<DD>Specifies the portion of the width and height that should trigger
    + a highlight. The area around the center of the cell to be marked is used
    + as the hotspot. Possible values are between 0 and 1. Default is
    + mxConstants.DEFAULT_HOTSPOT.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +hotspotEnabled</H3>
    +<PRE>
    +boolean <B>hotspotEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if the hotspot is enabled. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +swimlaneContentEnabled</H3>
    +<PRE>
    +boolean <B>swimlaneContentEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if the the content area of swimlane should be non-transparent
    + to mouse events. Default is false.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +validColor</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>validColor</B></PRE>
    +<DL>
    +<DD>Specifies the valid- and invalidColor for the marker.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +invalidColor</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>invalidColor</B></PRE>
    +<DL>
    +<DD>Specifies the valid- and invalidColor for the marker.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.handler.mxCellTracker"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/handler/mxCellTracker.html" title="class in com.mxgraph.swing.handler">com.mxgraph.swing.handler.mxCellTracker</A> extends <A HREF="com/mxgraph/swing/handler/mxCellMarker.html" title="class in com.mxgraph.swing.handler">mxCellMarker</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>7372144804885125688L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.handler.mxGraphTransferHandler"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/handler/mxGraphTransferHandler.html" title="class in com.mxgraph.swing.handler">com.mxgraph.swing.handler.mxGraphTransferHandler</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/TransferHandler.html?is-external=true" title="class or interface in javax.swing">TransferHandler</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-6443287704811197675L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +originalCells</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>originalCells</B></PRE>
    +<DL>
    +<DD>Reference to the original cells for removal after a move.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +lastImported</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/datatransfer/Transferable.html?is-external=true" title="class or interface in java.awt.datatransfer">Transferable</A> <B>lastImported</B></PRE>
    +<DL>
    +<DD>Reference to the last imported cell array.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +initialImportCount</H3>
    +<PRE>
    +int <B>initialImportCount</B></PRE>
    +<DL>
    +<DD>Sets the value for the initialImportCount. Default is 1. Updated in
    + exportDone to contain 0 after a cut and 1 after a copy.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +importCount</H3>
    +<PRE>
    +int <B>importCount</B></PRE>
    +<DL>
    +<DD>Counter for the last imported cell array.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +transferImageEnabled</H3>
    +<PRE>
    +boolean <B>transferImageEnabled</B></PRE>
    +<DL>
    +<DD>Specifies if a transfer image should be created for the transferable.
    + Default is DEFAULT_TRANSFER_IMAGE.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +transferImageBackground</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html?is-external=true" title="class or interface in java.awt">Color</A> <B>transferImageBackground</B></PRE>
    +<DL>
    +<DD>Specifies the background color for the transfer image. Default is
    + DEFAULT_BACKGROUNDCOLOR.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +location</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>location</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +offset</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Point.html?is-external=true" title="class or interface in java.awt">Point</A> <B>offset</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.swing.util</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxCellOverlay"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxCellOverlay.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxCellOverlay</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html?is-external=true" title="class or interface in javax.swing">JComponent</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>921991820491141221L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +imageIcon</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>imageIcon</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +align</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>align</B></PRE>
    +<DL>
    +<DD>Holds the horizontal alignment for the overlay.
    + Default is ALIGN_RIGHT. For edges, the overlay
    + always appears in the center of the edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +verticalAlign</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>verticalAlign</B></PRE>
    +<DL>
    +<DD>Holds the vertical alignment for the overlay.
    + Default is bottom. For edges, the overlay
    + always appears in the center of the edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +defaultOverlap</H3>
    +<PRE>
    +double <B>defaultOverlap</B></PRE>
    +<DL>
    +<DD>Defines the overlapping for the overlay, that is,
    + the proportional distance from the origin to the
    + point defined by the alignment. Default is 0.5.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.DeleteAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.DeleteAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.DeleteAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-8212339796803275529L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.DrillAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.DrillAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.DrillAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>5464382323663870291L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.EditAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.EditAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.EditAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>4610112721356742702L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.FoldAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.FoldAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.FoldAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>4078517503905239901L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.GroupAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.GroupAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.GroupAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-4718086600089409092L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.LayerAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.LayerAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.LayerAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>562519299806253741L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.RemoveFromParentAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.RemoveFromParentAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.RemoveFromParentAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>7169443038859140811L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.SelectAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.SelectAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.SelectAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>6501585024845668187L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.UngroupAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.UngroupAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.UngroupAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>2247770767961318251L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.UpdateGroupBoundsAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.UpdateGroupBoundsAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.UpdateGroupBoundsAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-4718086600089409092L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphActions.ZoomAction"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphActions.ZoomAction.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphActions.ZoomAction</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/AbstractAction.html?is-external=true" title="class or interface in javax.swing">AbstractAction</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-7500195051313272384L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.swing.util.mxGraphTransferable"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/swing/util/mxGraphTransferable.html" title="class in com.mxgraph.swing.util">com.mxgraph.swing.util.mxGraphTransferable</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>5123819419918087664L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +cells</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>cells</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +bounds</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>bounds</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +image</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/ImageIcon.html?is-external=true" title="class or interface in javax.swing">ImageIcon</A> <B>image</B></PRE>
    +<DL>
    +<DL>
    +</DL>
    +</DL>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.util</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.util.mxImage"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/util/mxImage.html" title="class in com.mxgraph.util">com.mxgraph.util.mxImage</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>8541229679513497585L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +src</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>src</B></PRE>
    +<DL>
    +<DD>Holds the path or URL for the image.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +width</H3>
    +<PRE>
    +int <B>width</B></PRE>
    +<DL>
    +<DD>Holds the image width and height.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +height</H3>
    +<PRE>
    +int <B>height</B></PRE>
    +<DL>
    +<DD>Holds the image width and height.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<A NAME="com.mxgraph.util.mxLightweightLabel"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/util/mxLightweightLabel.html" title="class in com.mxgraph.util">com.mxgraph.util.mxLightweightLabel</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JLabel.html?is-external=true" title="class or interface in javax.swing">JLabel</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-6771477489533614010L
    +
    +<P>
    +
    +<P>
    +<A NAME="com.mxgraph.util.mxLine"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">com.mxgraph.util.mxLine</A> extends <A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-4730972599169158546L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +endPoint</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>endPoint</B></PRE>
    +<DL>
    +<DD>The end point of the line
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<A NAME="com.mxgraph.util.mxPoint"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">com.mxgraph.util.mxPoint</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>6554231393215892186L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +x</H3>
    +<PRE>
    +double <B>x</B></PRE>
    +<DL>
    +<DD>Holds the x- and y-coordinates of the point. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +y</H3>
    +<PRE>
    +double <B>y</B></PRE>
    +<DL>
    +<DD>Holds the x- and y-coordinates of the point. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<A NAME="com.mxgraph.util.mxRectangle"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">com.mxgraph.util.mxRectangle</A> extends <A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-3793966043543578946L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +width</H3>
    +<PRE>
    +double <B>width</B></PRE>
    +<DL>
    +<DD>Holds the width and the height. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +height</H3>
    +<PRE>
    +double <B>height</B></PRE>
    +<DL>
    +<DD>Holds the width and the height. Default is 0.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.util.png</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.util.png.mxPngSuggestedPaletteEntry"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/util/png/mxPngSuggestedPaletteEntry.html" title="class in com.mxgraph.util.png">com.mxgraph.util.png.mxPngSuggestedPaletteEntry</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>-8711686482529372447L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +name</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>name</B></PRE>
    +<DL>
    +<DD>The name of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +sampleDepth</H3>
    +<PRE>
    +int <B>sampleDepth</B></PRE>
    +<DL>
    +<DD>The depth of the color samples.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +red</H3>
    +<PRE>
    +int <B>red</B></PRE>
    +<DL>
    +<DD>The red color value of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +green</H3>
    +<PRE>
    +int <B>green</B></PRE>
    +<DL>
    +<DD>The green color value of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +blue</H3>
    +<PRE>
    +int <B>blue</B></PRE>
    +<DL>
    +<DD>The blue color value of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +alpha</H3>
    +<PRE>
    +int <B>alpha</B></PRE>
    +<DL>
    +<DD>The alpha opacity value of the entry.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +frequency</H3>
    +<PRE>
    +int <B>frequency</B></PRE>
    +<DL>
    +<DD>The probable frequency of the color in the image.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.util.svg</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.util.svg.ParseException"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/util/svg/ParseException.html" title="class in com.mxgraph.util.svg">com.mxgraph.util.svg.ParseException</A> extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +exception</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A> <B>exception</B></PRE>
    +<DL>
    +<DT><DD>The embedded exception if tunnelling, or null.<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +lineNumber</H3>
    +<PRE>
    +int <B>lineNumber</B></PRE>
    +<DL>
    +<DT><DD>The line number.<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +columnNumber</H3>
    +<PRE>
    +int <B>columnNumber</B></PRE>
    +<DL>
    +<DT><DD>The column number.<DL>
    +</DL>
    +</DL>
    +<HR SIZE="4" NOSHADE>
    +
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="center"><FONT SIZE="+2">
    +<B>Package</B> <B>com.mxgraph.view</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<A NAME="com.mxgraph.view.mxCellState"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
    +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    +<B>Class <A HREF="com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">com.mxgraph.view.mxCellState</A> extends <A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> implements Serializable</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<P>
    +<B>serialVersionUID:&nbsp;</B>7588335615324083354L
    +
    +<P>
    +<A NAME="serializedForm"><!-- --></A>
    +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    +<B>Serialized Fields</B></FONT></TH>
    +</TR>
    +</TABLE>
    +
    +<H3>
    +view</H3>
    +<PRE>
    +<A HREF="com/mxgraph/view/mxGraphView.html" title="class in com.mxgraph.view">mxGraphView</A> <B>view</B></PRE>
    +<DL>
    +<DD>Reference to the enclosing graph view.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +cell</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>cell</B></PRE>
    +<DL>
    +<DD>Reference to the cell that is represented by this state.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +label</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>label</B></PRE>
    +<DL>
    +<DD>Holds the current label value, including newlines which result from
    + word wrapping.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +style</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">K</A>,<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</A>&gt; <B>style</B></PRE>
    +<DL>
    +<DD>Contains an array of key, value pairs that represent the style of the
    + cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +origin</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>origin</B></PRE>
    +<DL>
    +<DD>Holds the origin for all child cells.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +absolutePoints</H3>
    +<PRE>
    +<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">E</A>&gt; <B>absolutePoints</B></PRE>
    +<DL>
    +<DD>List of mxPoints that represent the absolute points of an edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +absoluteOffset</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</A> <B>absoluteOffset</B></PRE>
    +<DL>
    +<DD>Holds the absolute offset. For edges, this is the absolute coordinates
    + of the label position. For vertices, this is the offset of the label
    + relative to the top, left corner of the vertex.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +terminalDistance</H3>
    +<PRE>
    +double <B>terminalDistance</B></PRE>
    +<DL>
    +<DD>Caches the distance between the end points and the length of an edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +length</H3>
    +<PRE>
    +double <B>length</B></PRE>
    +<DL>
    +<DD>Caches the distance between the end points and the length of an edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +segments</H3>
    +<PRE>
    +double[] <B>segments</B></PRE>
    +<DL>
    +<DD>Array of numbers that represent the cached length of each segment of the
    + edge.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +labelBounds</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>labelBounds</B></PRE>
    +<DL>
    +<DD>Holds the rectangle which contains the label.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +boundingBox</H3>
    +<PRE>
    +<A HREF="com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</A> <B>boundingBox</B></PRE>
    +<DL>
    +<DD>Holds the largest rectangle which contains all rendering for this cell.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +invalid</H3>
    +<PRE>
    +boolean <B>invalid</B></PRE>
    +<DL>
    +<DD>Specifies if the state is invalid. Default is true.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +visibleSourceState</H3>
    +<PRE>
    +<A HREF="com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>visibleSourceState</B></PRE>
    +<DL>
    +<DD>Caches the visible source and target terminal states.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +<HR>
    +<H3>
    +visibleTargetState</H3>
    +<PRE>
    +<A HREF="com/mxgraph/view/mxCellState.html" title="class in com.mxgraph.view">mxCellState</A> <B>visibleTargetState</B></PRE>
    +<DL>
    +<DD>Caches the visible source and target terminal states.
    +<P>
    +<DL>
    +</DL>
    +</DL>
    +
    +<P>
    +<HR>
    +
    +
    +<!-- ======= START OF BOTTOM NAVBAR ====== -->
    +<A NAME="navbar_bottom"><!-- --></A>
    +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    +<TR>
    +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    +<A NAME="navbar_bottom_firstrow"><!-- --></A>
    +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    +  <TR ALIGN="center" VALIGN="top">
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    +  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    +  </TR>
    +</TABLE>
    +</TD>
    +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    +<p><b>mxGraph 1.10.0.5</b></p></EM>
    +</TD>
    +</TR>
    +
    +<TR>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +&nbsp;PREV&nbsp;
    +&nbsp;NEXT</FONT></TD>
    +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    +  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    +&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    +&nbsp;<SCRIPT type="text/javascript">
    +  <!--
    +  if(window==top) {
    +    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
    +  }
    +  //-->
    +</SCRIPT>
    +<NOSCRIPT>
    +  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
    +</NOSCRIPT>
    +
    +
    +</FONT></TD>
    +</TR>
    +</TABLE>
    +<A NAME="skip-navbar_bottom"></A>
    +<!-- ======== END OF BOTTOM NAVBAR ======= -->
    +
    +<HR>
    +<font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
    +				target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font>
    +</BODY>
    +</HTML>
    diff --git a/java/docs/stylesheet.css b/java/docs/stylesheet.css
    new file mode 100644
    index 000000000..6ea9e5161
    --- /dev/null
    +++ b/java/docs/stylesheet.css
    @@ -0,0 +1,29 @@
    +/* Javadoc style sheet */
    +
    +/* Define colors, fonts and other style attributes here to override the defaults */
    +
    +/* Page background color */
    +body { background-color: #FFFFFF; color:#000000 }
    +
    +/* Headings */
    +h1 { font-size: 145% }
    +
    +/* Table colors */
    +.TableHeadingColor     { background: #CCCCFF; color:#000000 } /* Dark mauve */
    +.TableSubHeadingColor  { background: #EEEEFF; color:#000000 } /* Light mauve */
    +.TableRowColor         { background: #FFFFFF; color:#000000 } /* White */
    +
    +/* Font used in left-hand frame lists */
    +.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
    +.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
    +.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
    +
    +/* Navigation bar fonts and colors */
    +.NavBarCell1    { background-color:#EEEEFF; color:#000000} /* Light mauve */
    +.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */
    +.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;}
    +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;}
    +
    +.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
    +.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
    +
    diff --git a/java/examples/com/mxgraph/examples/Codec.java b/java/examples/com/mxgraph/examples/Codec.java
    new file mode 100644
    index 000000000..17dc6d713
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/Codec.java
    @@ -0,0 +1,56 @@
    +/**
    + * $Id: Codec.java,v 1.4 2012-01-13 12:30:33 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples;
    +
    +import org.w3c.dom.Document;
    +
    +import com.mxgraph.io.mxCodec;
    +import com.mxgraph.util.mxXmlUtils;
    +
    +public class Codec
    +{
    +
    +	protected boolean test = false;
    +
    +	public Codec()
    +	{
    +		// empty
    +	}
    +
    +	public boolean isTest()
    +	{
    +		return test;
    +	}
    +
    +	public void setTest(boolean test)
    +	{
    +		this.test = test;
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		// mxCodec wants simple class names, so packages must be known
    +		//mxCodecRegistry.addPackage("com.mxgraph.examples");
    +
    +		mxCodec codec = new mxCodec();
    +
    +		Codec obj = new Codec();
    +		obj.setTest(true);
    +
    +		String xml = mxXmlUtils.getXml(codec.encode(obj));
    +		System.out.println("encoded: " + xml);
    +
    +		Document doc = mxXmlUtils.parseXml(xml);
    +
    +		codec = new mxCodec(doc);
    +		obj = (Codec) codec.decode(doc.getDocumentElement());
    +
    +		System.out.println("decoded: " + obj);
    +
    +		xml = mxXmlUtils.getXml(codec.encode(obj));
    +		System.out.println("encoded: " + xml);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/Frame.java b/java/examples/com/mxgraph/examples/Frame.java
    new file mode 100644
    index 000000000..d35fcd621
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/Frame.java
    @@ -0,0 +1,82 @@
    +package com.mxgraph.examples;
    +
    +import java.awt.BorderLayout;
    +import java.awt.Dimension;
    +
    +import javax.swing.JFrame;
    +import javax.swing.JScrollPane;
    +
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * The frame example uses the graph model API to programmatically create
    + * a graph image to be used as a background of a JComponent.
    + */
    +public class Frame extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -578683911307318455L;
    +
    +	/**
    +	 * 
    +	 */
    +	private GraphControl graphControl;
    +
    +	/**
    +	 * 
    +	 */
    +	public Frame()
    +	{
    +		super("mxGraph");
    +
    +		// Creates graph with model
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +
    +			Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
    +					30);
    +			mxCell v2 = (mxCell) graph.insertVertex(parent, null, "World!",
    +					240, 150, 80, 30);
    +			Object e1 = graph.insertEdge(parent, null, "e1", v1, v2);
    +
    +			mxCell v3 = (mxCell) graph.insertVertex(e1, null, "v3", -0.5, 0,
    +					40, 40, "shape=triangle");
    +			v3.getGeometry().setRelative(true);
    +			v3.getGeometry().setOffset(new mxPoint(-20, -20));
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		// Creates a control in a scrollpane
    +		graphControl = new GraphControl(graph);
    +		JScrollPane scrollPane = new JScrollPane(graphControl);
    +		scrollPane.setAutoscrolls(true);
    +
    +		// Puts the control into the frame
    +		getContentPane().setLayout(new BorderLayout());
    +		getContentPane().add(scrollPane, BorderLayout.CENTER);
    +		setSize(new Dimension(320, 200));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static void main(String[] args)
    +	{
    +		Frame frame = new Frame();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/GraphControl.java b/java/examples/com/mxgraph/examples/GraphControl.java
    new file mode 100644
    index 000000000..20d12bf44
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/GraphControl.java
    @@ -0,0 +1,104 @@
    +package com.mxgraph.examples;
    +
    +import java.awt.Dimension;
    +import java.awt.Graphics;
    +
    +import javax.swing.Icon;
    +import javax.swing.ImageIcon;
    +import javax.swing.JComponent;
    +
    +import com.mxgraph.util.mxCellRenderer;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.view.mxGraph;
    +
    +public class GraphControl extends JComponent
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -7470544285363165479L;
    +
    +	mxGraph graph;
    +
    +	Icon buffer;
    +
    +	public GraphControl(mxGraph graph)
    +	{
    +		this.graph = graph;
    +		this.graph.getModel().addListener(mxEvent.CHANGE,
    +				new mxIEventListener()
    +				{
    +					public void invoke(Object source, mxEventObject evt)
    +					{
    +						GraphControl.this.graphModelChanged();
    +					}
    +				});
    +	}
    +
    +	public mxGraph getGraph()
    +	{
    +		return graph;
    +	}
    +
    +	public void paint(Graphics g)
    +	{
    +		super.paint(g);
    +		paintBuffer(g);
    +
    +	}
    +
    +	void paintBuffer(Graphics g)
    +	{
    +		Icon icon = getBuffer();
    +		icon.paintIcon(this, g, 0, 0);
    +	}
    +
    +	public Icon getBuffer()
    +	{
    +		if (buffer == null)
    +		{
    +			updateBuffer();
    +		}
    +		return buffer;
    +	}
    +
    +	protected void updateBuffer()
    +	{
    +		buffer = createBuffer();
    +		int width = buffer.getIconWidth() + 1;
    +		int height = buffer.getIconHeight() + 1;
    +		Dimension d = new Dimension(width, height);
    +
    +		if (!getPreferredSize().equals(d))
    +		{
    +			setPreferredSize(d);
    +			revalidate();
    +		}
    +	}
    +
    +	protected Icon createBuffer()
    +	{
    +		return new ImageIcon(mxCellRenderer.createBufferedImage(graph, null,
    +				graph.getView().getScale(), null, true, null));
    +	}
    +
    +	protected void clearBuffer()
    +	{
    +		buffer = null;
    +	}
    +
    +	public void refreshBuffer()
    +	{
    +		clearBuffer();
    +		repaint();
    +	}
    +
    +	protected void graphModelChanged()
    +	{
    +		refreshBuffer();
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/Image.java b/java/examples/com/mxgraph/examples/Image.java
    new file mode 100644
    index 000000000..524a27559
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/Image.java
    @@ -0,0 +1,76 @@
    +package com.mxgraph.examples;
    +
    +import java.awt.Color;
    +import java.awt.image.BufferedImage;
    +import java.util.Map;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.JFrame;
    +import javax.swing.JLabel;
    +
    +import com.mxgraph.layout.mxIGraphLayout;
    +import com.mxgraph.layout.hierarchical.mxHierarchicalLayout;
    +import com.mxgraph.util.mxCellRenderer;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.view.mxGraph;
    +
    +public class Image
    +{
    +
    +	public static void main(String[] args)
    +	{
    +		// Creates graph with model
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +		
    +		// Sets the default vertex style
    +		Map<String, Object> style = graph.getStylesheet().getDefaultVertexStyle();
    +		style.put(mxConstants.STYLE_GRADIENTCOLOR, "#FFFFFF");
    +		style.put(mxConstants.STYLE_ROUNDED, true);
    +		style.put(mxConstants.STYLE_SHADOW, true);
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Object v1 = graph.insertVertex(parent, null, "v1", 0, 0, 40, 20);
    +			Object v2 = graph.insertVertex(parent, null, "v2", 0, 0, 40, 20);
    +			Object v3 = graph.insertVertex(parent, null, "v3", 0, 0, 40, 20);
    +			Object v4 = graph.insertVertex(parent, null, "v4", 0, 0, 40, 20);
    +			Object v5 = graph.insertVertex(parent, null, "v5", 0, 0, 40, 20);
    +			Object v6 = graph.insertVertex(parent, null, "v6", 0, 0, 40, 20);
    +			Object v7 = graph.insertVertex(parent, null, "v7", 0, 0, 40, 20);
    +			Object v8 = graph.insertVertex(parent, null, "v8", 0, 0, 40, 20);
    +			Object v9 = graph.insertVertex(parent, null, "v8", 0, 0, 40, 20);
    +
    +			graph.insertEdge(parent, null, "e1", v1, v2);
    +			graph.insertEdge(parent, null, "e2", v2, v3);
    +			graph.insertEdge(parent, null, "e3", v3, v4);
    +			graph.insertEdge(parent, null, "e4", v1, v4);
    +			graph.insertEdge(parent, null, "e5", v4, v5);
    +			graph.insertEdge(parent, null, "e6", v5, v6);
    +			graph.insertEdge(parent, null, "e7", v5, v7);
    +			graph.insertEdge(parent, null, "e8", v5, v8);
    +			graph.insertEdge(parent, null, "e9", v6, v9);
    +			graph.insertEdge(parent, null, "e10", v7, v9);
    +			graph.insertEdge(parent, null, "e11", v8, v9);
    +
    +			mxIGraphLayout layout = new mxHierarchicalLayout(graph);
    +			layout.execute(parent);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		// Creates an image than can be saved using ImageIO
    +		BufferedImage image = mxCellRenderer.createBufferedImage(graph, null,
    +				1, Color.WHITE, true, null);
    +
    +		// For the sake of this example we display the image in a window
    +		JFrame frame = new JFrame("Graph image");
    +		frame.getContentPane().add(new JLabel(new ImageIcon(image)));
    +		frame.pack();
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/Layout.java b/java/examples/com/mxgraph/examples/Layout.java
    new file mode 100644
    index 000000000..a146a954c
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/Layout.java
    @@ -0,0 +1,82 @@
    +package com.mxgraph.examples;
    +
    +import java.awt.BorderLayout;
    +import java.awt.Dimension;
    +
    +import javax.swing.JFrame;
    +import javax.swing.JScrollPane;
    +
    +import com.mxgraph.layout.mxFastOrganicLayout;
    +import com.mxgraph.layout.mxIGraphLayout;
    +import com.mxgraph.view.mxGraph;
    +
    +public class Layout extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -578683911307318455L;
    +
    +	private GraphControl graphControl;
    +
    +	public Layout()
    +	{
    +		super("mxGraph");
    +
    +		// Creates graph with model
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			int nodeCount = 100;
    +			int edgeCount = 100;
    +
    +			Object[] nodes = new Object[nodeCount];
    +			Object[] edges = new Object[edgeCount];
    +
    +			for (int i = 0; i < nodeCount; i++)
    +			{
    +				nodes[i] = graph.insertVertex(parent, null, "N" + i, 0, 0, 30,
    +						30);
    +			}
    +
    +			for (int i = 0; i < edgeCount; i++)
    +			{
    +				int r1 = (int) (Math.random() * nodeCount);
    +				int r2 = (int) (Math.random() * nodeCount);
    +				edges[i] = graph.insertEdge(parent, null, r1 + "-" + r2,
    +						nodes[r1], nodes[r2]);
    +			}
    +
    +			mxIGraphLayout layout = new mxFastOrganicLayout(graph);
    +			layout.execute(parent);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		graph.getView().setScale(0.2);
    +
    +		// Creates a control in a scrollpane
    +		graphControl = new GraphControl(graph);
    +		JScrollPane scrollPane = new JScrollPane(graphControl);
    +		scrollPane.setAutoscrolls(true);
    +
    +		// Puts the control into the frame
    +		getContentPane().setLayout(new BorderLayout());
    +		getContentPane().add(scrollPane, BorderLayout.CENTER);
    +		setSize(new Dimension(320, 200));
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		Layout frame = new Layout();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/Legend.java b/java/examples/com/mxgraph/examples/Legend.java
    new file mode 100644
    index 000000000..da7cfba40
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/Legend.java
    @@ -0,0 +1,126 @@
    +package com.mxgraph.examples;
    +
    +import java.awt.BasicStroke;
    +import java.awt.Color;
    +import java.awt.Font;
    +import java.awt.Graphics2D;
    +import java.awt.image.BufferedImage;
    +import java.util.Map;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.JFrame;
    +import javax.swing.JLabel;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.canvas.mxImageCanvas;
    +import com.mxgraph.layout.mxIGraphLayout;
    +import com.mxgraph.layout.hierarchical.mxHierarchicalLayout;
    +import com.mxgraph.util.mxCellRenderer;
    +import com.mxgraph.util.mxCellRenderer.CanvasFactory;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxGraph;
    +
    +public class Legend
    +{
    +
    +	public static void main(String[] args)
    +	{
    +		// Creates graph with model
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		// Sets the default vertex style
    +		Map<String, Object> style = graph.getStylesheet()
    +				.getDefaultVertexStyle();
    +		style.put(mxConstants.STYLE_GRADIENTCOLOR, "#FFFFFF");
    +		style.put(mxConstants.STYLE_ROUNDED, true);
    +		style.put(mxConstants.STYLE_SHADOW, true);
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Object v1 = graph.insertVertex(parent, null, "v1", 0, 0, 40, 20);
    +			Object v2 = graph.insertVertex(parent, null, "v2", 0, 0, 40, 20);
    +			Object v3 = graph.insertVertex(parent, null, "v3", 0, 0, 40, 20);
    +			Object v4 = graph.insertVertex(parent, null, "v4", 0, 0, 40, 20);
    +			Object v5 = graph.insertVertex(parent, null, "v5", 0, 0, 40, 20);
    +			Object v6 = graph.insertVertex(parent, null, "v6", 0, 0, 40, 20);
    +			Object v7 = graph.insertVertex(parent, null, "v7", 0, 0, 40, 20);
    +			Object v8 = graph.insertVertex(parent, null, "v8", 0, 0, 40, 20);
    +			Object v9 = graph.insertVertex(parent, null, "v8", 0, 0, 40, 20);
    +
    +			graph.insertEdge(parent, null, "e1", v1, v2);
    +			graph.insertEdge(parent, null, "e2", v2, v3);
    +			graph.insertEdge(parent, null, "e3", v3, v4);
    +			graph.insertEdge(parent, null, "e4", v1, v4);
    +			graph.insertEdge(parent, null, "e5", v4, v5);
    +			graph.insertEdge(parent, null, "e6", v5, v6);
    +			graph.insertEdge(parent, null, "e7", v5, v7);
    +			graph.insertEdge(parent, null, "e8", v5, v8);
    +			graph.insertEdge(parent, null, "e9", v6, v9);
    +			graph.insertEdge(parent, null, "e10", v7, v9);
    +			graph.insertEdge(parent, null, "e11", v8, v9);
    +
    +			mxIGraphLayout layout = new mxHierarchicalLayout(graph);
    +			layout.execute(parent);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		// Creates an image than can be saved using ImageIO
    +		BufferedImage image = createBufferedImage(graph, null, 1, Color.WHITE,
    +				true, null);
    +		/*BufferedImage image = mxCellRenderer.createBufferedImage(graph, null,
    +				1, Color.WHITE, true, null);*/
    +
    +		Graphics2D g = image.createGraphics();
    +
    +		g.setColor(Color.BLACK);
    +		g.drawRect(10, 10, 110, 38);
    +		g.setFont(new Font("Arial", 0, 11));
    +		g.drawString("Cross Level", 50, 24);
    +		g.drawString("Same Level", 50, 40);
    +
    +		g.setStroke(new BasicStroke(2));
    +		g.setColor(Color.GREEN);
    +		g.drawLine(20, 20, 40, 20);
    +		g.setColor(Color.RED);
    +		g.drawLine(20, 36, 40, 36);
    +
    +		// For the sake of this example we display the image in a window
    +		JFrame frame = new JFrame("Graph image");
    +		frame.getContentPane().add(new JLabel(new ImageIcon(image)));
    +		frame.pack();
    +		frame.setVisible(true);
    +	}
    +
    +	public static BufferedImage createBufferedImage(mxGraph graph,
    +			Object[] cells, double scale, final Color background,
    +			final boolean antiAlias, mxRectangle clip)
    +	{
    +		mxImageCanvas canvas = (mxImageCanvas) mxCellRenderer.drawCells(graph,
    +				cells, scale, clip, new CanvasFactory()
    +				{
    +					public mxICanvas createCanvas(int width, int height)
    +					{
    +						int border = 10;
    +						int dx = 0;
    +						int dy = 60;
    +						
    +						mxImageCanvas canvas = new mxImageCanvas(
    +								new mxGraphics2DCanvas(), width + dx + border,
    +								height + dy + border, background, antiAlias);
    +						canvas.getGraphicsCanvas().getGraphics().translate(dx, dy);
    +
    +						return canvas;
    +					}
    +
    +				});
    +
    +		return (canvas != null) ? canvas.destroy() : null;
    +	}
    +}
    diff --git a/java/examples/com/mxgraph/examples/MyData.java b/java/examples/com/mxgraph/examples/MyData.java
    new file mode 100644
    index 000000000..43481246b
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/MyData.java
    @@ -0,0 +1,31 @@
    +package com.mxgraph.examples;
    +
    +public class MyData
    +{
    +	public enum MyEnum
    +	{
    +		ONE, TWO, THREE
    +	}
    +	
    +	private MyEnum enumValue;
    +
    +	public MyData()
    +	{
    +	}
    +
    +	public MyData(MyEnum enumValue)
    +	{
    +		setEnumValue(enumValue);
    +	}
    +
    +	public MyEnum getEnumValue()
    +	{
    +		return enumValue;
    +	}
    +
    +	public void setEnumValue(MyEnum enumValue)
    +	{
    +		this.enumValue = enumValue;
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/MyDataCodec.java b/java/examples/com/mxgraph/examples/MyDataCodec.java
    new file mode 100644
    index 000000000..f5a9d7aef
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/MyDataCodec.java
    @@ -0,0 +1,79 @@
    +package com.mxgraph.examples;
    +
    +import java.lang.reflect.Field;
    +
    +import javax.swing.JFrame;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.examples.MyData.MyEnum;
    +import com.mxgraph.io.mxCodec;
    +import com.mxgraph.io.mxCodecRegistry;
    +import com.mxgraph.io.mxObjectCodec;
    +import com.mxgraph.util.mxDomUtils;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxGraph;
    +
    +public class MyDataCodec extends JFrame
    +{
    +
    +	public static void main(String[] args)
    +	{
    +		// Overriden methods are required to support enums
    +		mxCodecRegistry.addPackage("com.mxgraph.examples");
    +		mxCodecRegistry.register(new mxObjectCodec(new MyData())
    +		{
    +			protected boolean isPrimitiveValue(Object value)
    +			{
    +				System.out.println("value.getClass().isEnum()="
    +						+ value.getClass().isEnum());
    +
    +				return super.isPrimitiveValue(value)
    +						|| value.getClass().isEnum();
    +			}
    +
    +			protected void setFieldValue(Object obj, String fieldname,
    +					Object value)
    +			{
    +				System.out.println("setFieldValue: " + value);
    +				Field field = getField(obj, fieldname);
    +
    +				if (field.getType().isEnum())
    +				{
    +					Object[] c = field.getType().getEnumConstants();
    +
    +					for (int i = 0; i < c.length; i++)
    +					{
    +						if (c[i].toString().equals(value))
    +						{
    +							value = c[i];
    +							break;
    +						}
    +					}
    +				}
    +
    +				super.setFieldValue(obj, fieldname, value);
    +			}
    +		});
    +
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +		graph.insertVertex(parent, null, new MyData(MyEnum.TWO), 20, 20, 80, 30);
    +
    +		mxCodec codec = new mxCodec();
    +		Node node = codec.encode(graph.getModel());
    +		System.out.println("xml=" + mxUtils.getPrettyXml(node));
    +
    +		Document doc = mxDomUtils.createDocument();
    +		doc.appendChild(doc.importNode(node, true));
    +		codec = new mxCodec(doc);
    +		Object model = codec.decode(node);
    +
    +		codec = new mxCodec();
    +		node = codec.encode(model);
    +
    +		System.out.println("xml2=" + mxUtils.getPrettyXml(node));
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/PdfExport.java b/java/examples/com/mxgraph/examples/PdfExport.java
    new file mode 100644
    index 000000000..355dbb9a6
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/PdfExport.java
    @@ -0,0 +1,75 @@
    +package com.mxgraph.examples;
    +
    +import java.awt.Graphics2D;
    +import java.io.FileOutputStream;
    +
    +import com.lowagie.text.Document;
    +import com.lowagie.text.Rectangle;
    +import com.lowagie.text.pdf.PdfContentByte;
    +import com.lowagie.text.pdf.PdfWriter;
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.util.mxCellRenderer;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxCellRenderer.CanvasFactory;
    +import com.mxgraph.view.mxGraph;
    +
    +// This example requires iText from http://www.lowagie.com/iText/
    +public class PdfExport
    +{
    +	public PdfExport() throws Exception
    +	{
    +		// Creates graph with model
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
    +					30);
    +			mxCell v2 = (mxCell) graph.insertVertex(parent, null, "World!",
    +					240, 150, 80, 30);
    +			graph.insertEdge(parent, null, "e1", v1, v2);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		mxRectangle bounds = graph.getGraphBounds();
    +		Document document = new Document(new Rectangle((float) (bounds
    +				.getWidth()), (float) (bounds.getHeight())));
    +		PdfWriter writer = PdfWriter.getInstance(document,
    +				new FileOutputStream("example.pdf"));
    +		document.open();
    +		final PdfContentByte cb = writer.getDirectContent();
    +
    +		mxGraphics2DCanvas canvas = (mxGraphics2DCanvas) mxCellRenderer
    +				.drawCells(graph, null, 1, null, new CanvasFactory()
    +				{
    +					public mxICanvas createCanvas(int width, int height)
    +					{
    +						Graphics2D g2 = cb.createGraphics(width, height);
    +						return new mxGraphics2DCanvas(g2);
    +					}
    +				});
    +
    +		canvas.getGraphics().dispose();
    +		document.close();
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		try
    +		{
    +			new PdfExport();
    +		}
    +		catch (Exception e)
    +		{
    +			e.printStackTrace();
    +		}
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/ClickHandler.java b/java/examples/com/mxgraph/examples/swing/ClickHandler.java
    new file mode 100644
    index 000000000..4f4d2277b
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/ClickHandler.java
    @@ -0,0 +1,66 @@
    +package com.mxgraph.examples.swing;
    +
    +import java.awt.event.MouseAdapter;
    +import java.awt.event.MouseEvent;
    +
    +import javax.swing.JFrame;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.view.mxGraph;
    +
    +public class ClickHandler extends JFrame
    +{
    +	
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -2764911804288120883L;
    +
    +	public ClickHandler()
    +	{
    +		super("Hello, World!");
    +		
    +		final mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +		   Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
    +		         30);
    +		   Object v2 = graph.insertVertex(parent, null, "World!",
    +		         240, 150, 80, 30);
    +		   graph.insertEdge(parent, null, "Edge", v1, v2);
    +		}
    +		finally
    +		{
    +		   graph.getModel().endUpdate();
    +		}
    +		
    +		final mxGraphComponent graphComponent = new mxGraphComponent(graph);
    +		getContentPane().add(graphComponent);
    +		
    +		graphComponent.getGraphControl().addMouseListener(new MouseAdapter()
    +		{
    +		
    +			public void mouseReleased(MouseEvent e)
    +			{
    +				Object cell = graphComponent.getCellAt(e.getX(), e.getY());
    +				
    +				if (cell != null)
    +				{
    +					System.out.println("cell="+graph.getLabel(cell));
    +				}
    +			}
    +		});
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		ClickHandler frame = new ClickHandler();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/CustomCanvas.java b/java/examples/com/mxgraph/examples/swing/CustomCanvas.java
    new file mode 100644
    index 000000000..6b5d0e221
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/CustomCanvas.java
    @@ -0,0 +1,139 @@
    +package com.mxgraph.examples.swing;
    +
    +import javax.swing.BorderFactory;
    +import javax.swing.CellRendererPane;
    +import javax.swing.JFrame;
    +import javax.swing.JLabel;
    +import javax.swing.border.BevelBorder;
    +
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.canvas.mxImageCanvas;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.handler.mxRubberband;
    +import com.mxgraph.swing.view.mxInteractiveCanvas;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +public class CustomCanvas extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -844106998814982739L;
    +
    +	public CustomCanvas()
    +	{
    +		super("Custom Canvas");
    +
    +		// Demonstrates the use of a Swing component for rendering vertices.
    +		// Note: Use the heavyweight feature to allow for event handling in
    +		// the Swing component that is used for rendering the vertex.
    +
    +		mxGraph graph = new mxGraph()
    +		{
    +			public void drawState(mxICanvas canvas, mxCellState state,
    +					boolean drawLabel)
    +			{
    +				String label = (drawLabel) ? state.getLabel() : "";
    +
    +				// Indirection for wrapped swing canvas inside image canvas (used for creating
    +				// the preview image when cells are dragged)
    +				if (getModel().isVertex(state.getCell())
    +						&& canvas instanceof mxImageCanvas
    +						&& ((mxImageCanvas) canvas).getGraphicsCanvas() instanceof SwingCanvas)
    +				{
    +					((SwingCanvas) ((mxImageCanvas) canvas).getGraphicsCanvas())
    +							.drawVertex(state, label);
    +				}
    +				// Redirection of drawing vertices in SwingCanvas
    +				else if (getModel().isVertex(state.getCell())
    +						&& canvas instanceof SwingCanvas)
    +				{
    +					((SwingCanvas) canvas).drawVertex(state, label);
    +				}
    +				else
    +				{
    +					super.drawState(canvas, state, drawLabel);
    +				}
    +			}
    +		};
    +
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +
    +			Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
    +					30);
    +			Object v2 = graph.insertVertex(parent, null, "World!", 240, 150,
    +					80, 30);
    +			graph.insertEdge(parent, null, "Edge", v1, v2);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		mxGraphComponent graphComponent = new mxGraphComponent(graph)
    +		{
    +			/**
    +			 * 
    +			 */
    +			private static final long serialVersionUID = 4683716829748931448L;
    +
    +			public mxInteractiveCanvas createCanvas()
    +			{
    +				return new SwingCanvas(this);
    +			}
    +		};
    +
    +		getContentPane().add(graphComponent);
    +
    +		// Adds rubberband selection
    +		new mxRubberband(graphComponent);
    +	}
    +
    +	public class SwingCanvas extends mxInteractiveCanvas
    +	{
    +		protected CellRendererPane rendererPane = new CellRendererPane();
    +
    +		protected JLabel vertexRenderer = new JLabel();
    +
    +		protected mxGraphComponent graphComponent;
    +
    +		public SwingCanvas(mxGraphComponent graphComponent)
    +		{
    +			this.graphComponent = graphComponent;
    +
    +			vertexRenderer.setBorder(BorderFactory
    +					.createBevelBorder(BevelBorder.RAISED));
    +			vertexRenderer.setHorizontalAlignment(JLabel.CENTER);
    +			vertexRenderer.setBackground(graphComponent.getBackground()
    +					.darker());
    +			vertexRenderer.setOpaque(true);
    +		}
    +
    +		public void drawVertex(mxCellState state, String label)
    +		{
    +			vertexRenderer.setText(label);
    +			// TODO: Configure other properties...
    +
    +			rendererPane.paintComponent(g, vertexRenderer, graphComponent,
    +					(int) state.getX() + translate.x, (int) state.getY()
    +							+ translate.y, (int) state.getWidth(),
    +					(int) state.getHeight(), true);
    +		}
    +
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		CustomCanvas frame = new CustomCanvas();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/FixedPoints.java b/java/examples/com/mxgraph/examples/swing/FixedPoints.java
    new file mode 100644
    index 000000000..d20d29c77
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/FixedPoints.java
    @@ -0,0 +1,63 @@
    +package com.mxgraph.examples.swing;
    +
    +import javax.swing.JFrame;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.view.mxGraph;
    +
    +public class FixedPoints extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -2707712944901661771L;
    +
    +	@SuppressWarnings("unused")
    +	public FixedPoints()
    +	{
    +		super("Hello, World!");
    +
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Object v1 = graph.insertVertex(parent, null, "Hello,", 20, 20, 80,
    +					60, "shape=triangle;perimeter=trianglePerimeter");
    +			Object v2 = graph.insertVertex(parent, null, "World!", 200, 150,
    +					80, 60, "shape=ellipse;perimeter=ellipsePerimeter");
    +			Object v3 = graph.insertVertex(parent, null, "Hello,", 200, 20, 80,
    +					30);
    +			Object e1 = graph
    +					.insertEdge(
    +							parent,
    +							null,
    +							"",
    +							v1,
    +							v2,
    +							"edgeStyle=elbowEdgeStyle;elbow=horizontal;"
    +									+ "exitX=0.5;exitY=1;exitPerimeter=1;entryX=0;entryY=0;entryPerimeter=1;");
    +			Object e2 = graph.insertEdge(parent, null, "", v3, v2,
    +					"edgeStyle=elbowEdgeStyle;elbow=horizontal;orthogonal=0;"
    +							+ "entryX=0;entryY=0;entryPerimeter=1;");
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		mxGraphComponent graphComponent = new mxGraphComponent(graph);
    +		getContentPane().add(graphComponent);
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		FixedPoints frame = new FixedPoints();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/GraphEditor.java b/java/examples/com/mxgraph/examples/swing/GraphEditor.java
    new file mode 100644
    index 000000000..4ce4a139a
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/GraphEditor.java
    @@ -0,0 +1,672 @@
    +/**
    + * $Id: GraphEditor.java,v 1.11 2012-01-13 12:51:15 david Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd */
    +package com.mxgraph.examples.swing;
    +
    +import java.awt.Color;
    +import java.awt.Point;
    +import java.net.URL;
    +import java.text.NumberFormat;
    +import java.util.Iterator;
    +import java.util.List;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.UIManager;
    +
    +import org.w3c.dom.Document;
    +
    +import com.mxgraph.examples.swing.editor.BasicGraphEditor;
    +import com.mxgraph.examples.swing.editor.EditorMenuBar;
    +import com.mxgraph.examples.swing.editor.EditorPalette;
    +import com.mxgraph.io.mxCodec;
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxGraphTransferable;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +public class GraphEditor extends BasicGraphEditor
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -4601740824088314699L;
    +
    +	/**
    +	 * Holds the shared number formatter.
    +	 * 
    +	 * @see NumberFormat#getInstance()
    +	 */
    +	public static final NumberFormat numberFormat = NumberFormat.getInstance();
    +
    +	/**
    +	 * Holds the URL for the icon to be used as a handle for creating new
    +	 * connections. This is currently unused.
    +	 */
    +	public static URL url = null;
    +
    +	//GraphEditor.class.getResource("/com/mxgraph/examples/swing/images/connector.gif");
    +
    +	public GraphEditor()
    +	{
    +		this("mxGraph Editor", new CustomGraphComponent(new CustomGraph()));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public GraphEditor(String appTitle, mxGraphComponent component)
    +	{
    +		super(appTitle, component);
    +		final mxGraph graph = graphComponent.getGraph();
    +
    +		// Creates the shapes palette
    +		EditorPalette shapesPalette = insertPalette(mxResources.get("shapes"));
    +		EditorPalette imagesPalette = insertPalette(mxResources.get("images"));
    +		EditorPalette symbolsPalette = insertPalette(mxResources.get("symbols"));
    +
    +		// Sets the edge template to be used for creating new edges if an edge
    +		// is clicked in the shape palette
    +		shapesPalette.addListener(mxEvent.SELECT, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				Object tmp = evt.getProperty("transferable");
    +
    +				if (tmp instanceof mxGraphTransferable)
    +				{
    +					mxGraphTransferable t = (mxGraphTransferable) tmp;
    +					Object cell = t.getCells()[0];
    +
    +					if (graph.getModel().isEdge(cell))
    +					{
    +						((CustomGraph) graph).setEdgeTemplate(cell);
    +					}
    +				}
    +			}
    +
    +		});
    +
    +		// Adds some template cells for dropping into the graph
    +		shapesPalette
    +				.addTemplate(
    +						"Container",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/swimlane.png")),
    +						"swimlane", 280, 280, "Container");
    +		shapesPalette
    +				.addTemplate(
    +						"Icon",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/rounded.png")),
    +						"icon;image=/com/mxgraph/examples/swing/images/wrench.png",
    +						70, 70, "Icon");
    +		shapesPalette
    +				.addTemplate(
    +						"Label",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/rounded.png")),
    +						"label;image=/com/mxgraph/examples/swing/images/gear.png",
    +						130, 50, "Label");
    +		shapesPalette
    +				.addTemplate(
    +						"Rectangle",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/rectangle.png")),
    +						null, 160, 120, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Rounded Rectangle",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/rounded.png")),
    +						"rounded=1", 160, 120, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Ellipse",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/ellipse.png")),
    +						"ellipse", 160, 160, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Double Ellipse",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/doubleellipse.png")),
    +						"ellipse;shape=doubleEllipse", 160, 160, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Triangle",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/triangle.png")),
    +						"triangle", 120, 160, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Rhombus",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/rhombus.png")),
    +						"rhombus", 160, 160, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Horizontal Line",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/hline.png")),
    +						"line", 160, 10, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Hexagon",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/hexagon.png")),
    +						"shape=hexagon", 160, 120, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Cylinder",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/cylinder.png")),
    +						"shape=cylinder", 120, 160, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Actor",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/actor.png")),
    +						"shape=actor", 120, 160, "");
    +		shapesPalette
    +				.addTemplate(
    +						"Cloud",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/cloud.png")),
    +						"ellipse;shape=cloud", 160, 120, "");
    +
    +		shapesPalette
    +				.addEdgeTemplate(
    +						"Straight",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/straight.png")),
    +						"straight", 120, 120, "");
    +		shapesPalette
    +				.addEdgeTemplate(
    +						"Horizontal Connector",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/connect.png")),
    +						null, 100, 100, "");
    +		shapesPalette
    +				.addEdgeTemplate(
    +						"Vertical Connector",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/vertical.png")),
    +						"vertical", 100, 100, "");
    +		shapesPalette
    +				.addEdgeTemplate(
    +						"Entity Relation",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/entity.png")),
    +						"entity", 100, 100, "");
    +		shapesPalette
    +				.addEdgeTemplate(
    +						"Arrow",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/arrow.png")),
    +						"arrow", 120, 120, "");
    +
    +		imagesPalette
    +				.addTemplate(
    +						"Bell",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/bell.png")),
    +						"image;image=/com/mxgraph/examples/swing/images/bell.png",
    +						50, 50, "Bell");
    +		imagesPalette
    +				.addTemplate(
    +						"Box",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/box.png")),
    +						"image;image=/com/mxgraph/examples/swing/images/box.png",
    +						50, 50, "Box");
    +		imagesPalette
    +				.addTemplate(
    +						"Cube",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/cube_green.png")),
    +						"image;image=/com/mxgraph/examples/swing/images/cube_green.png",
    +						50, 50, "Cube");
    +		imagesPalette
    +				.addTemplate(
    +						"User",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/dude3.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/dude3.png",
    +						50, 50, "User");
    +		imagesPalette
    +				.addTemplate(
    +						"Earth",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/earth.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/earth.png",
    +						50, 50, "Earth");
    +		imagesPalette
    +				.addTemplate(
    +						"Gear",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/gear.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/gear.png",
    +						50, 50, "Gear");
    +		imagesPalette
    +				.addTemplate(
    +						"Home",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/house.png")),
    +						"image;image=/com/mxgraph/examples/swing/images/house.png",
    +						50, 50, "Home");
    +		imagesPalette
    +				.addTemplate(
    +						"Package",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/package.png")),
    +						"image;image=/com/mxgraph/examples/swing/images/package.png",
    +						50, 50, "Package");
    +		imagesPalette
    +				.addTemplate(
    +						"Printer",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/printer.png")),
    +						"image;image=/com/mxgraph/examples/swing/images/printer.png",
    +						50, 50, "Printer");
    +		imagesPalette
    +				.addTemplate(
    +						"Server",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/server.png")),
    +						"image;image=/com/mxgraph/examples/swing/images/server.png",
    +						50, 50, "Server");
    +		imagesPalette
    +				.addTemplate(
    +						"Workplace",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/workplace.png")),
    +						"image;image=/com/mxgraph/examples/swing/images/workplace.png",
    +						50, 50, "Workplace");
    +		imagesPalette
    +				.addTemplate(
    +						"Wrench",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/wrench.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/wrench.png",
    +						50, 50, "Wrench");
    +
    +		symbolsPalette
    +				.addTemplate(
    +						"Cancel",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/cancel_end.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/cancel_end.png",
    +						80, 80, "Cancel");
    +		symbolsPalette
    +				.addTemplate(
    +						"Error",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/error.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/error.png",
    +						80, 80, "Error");
    +		symbolsPalette
    +				.addTemplate(
    +						"Event",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/event.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/event.png",
    +						80, 80, "Event");
    +		symbolsPalette
    +				.addTemplate(
    +						"Fork",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/fork.png")),
    +						"rhombusImage;image=/com/mxgraph/examples/swing/images/fork.png",
    +						80, 80, "Fork");
    +		symbolsPalette
    +				.addTemplate(
    +						"Inclusive",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/inclusive.png")),
    +						"rhombusImage;image=/com/mxgraph/examples/swing/images/inclusive.png",
    +						80, 80, "Inclusive");
    +		symbolsPalette
    +				.addTemplate(
    +						"Link",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/link.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/link.png",
    +						80, 80, "Link");
    +		symbolsPalette
    +				.addTemplate(
    +						"Merge",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/merge.png")),
    +						"rhombusImage;image=/com/mxgraph/examples/swing/images/merge.png",
    +						80, 80, "Merge");
    +		symbolsPalette
    +				.addTemplate(
    +						"Message",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/message.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/message.png",
    +						80, 80, "Message");
    +		symbolsPalette
    +				.addTemplate(
    +						"Multiple",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/multiple.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/multiple.png",
    +						80, 80, "Multiple");
    +		symbolsPalette
    +				.addTemplate(
    +						"Rule",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/rule.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/rule.png",
    +						80, 80, "Rule");
    +		symbolsPalette
    +				.addTemplate(
    +						"Terminate",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/terminate.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/terminate.png",
    +						80, 80, "Terminate");
    +		symbolsPalette
    +				.addTemplate(
    +						"Timer",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/timer.png")),
    +						"roundImage;image=/com/mxgraph/examples/swing/images/timer.png",
    +						80, 80, "Timer");
    +	}
    +
    +	/**
    +	* 
    +	*/
    +	public static class CustomGraphComponent extends mxGraphComponent
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = -6833603133512882012L;
    +
    +		/**
    +		 * 
    +		 * @param graph
    +		 */
    +		public CustomGraphComponent(mxGraph graph)
    +		{
    +			super(graph);
    +
    +			// Sets switches typically used in an editor
    +			setPageVisible(true);
    +			setGridVisible(true);
    +			setToolTips(true);
    +			getConnectionHandler().setCreateTarget(true);
    +
    +			// Loads the defalt stylesheet from an external file
    +			mxCodec codec = new mxCodec();
    +			Document doc = mxUtils.loadDocument(GraphEditor.class.getResource(
    +					"/com/mxgraph/examples/swing/resources/default-style.xml")
    +					.toString());
    +			codec.decode(doc.getDocumentElement(), graph.getStylesheet());
    +
    +			// Sets the background to white
    +			getViewport().setOpaque(true);
    +			getViewport().setBackground(Color.WHITE);
    +		}
    +
    +		/**
    +		 * Overrides drop behaviour to set the cell style if the target
    +		 * is not a valid drop target and the cells are of the same
    +		 * type (eg. both vertices or both edges). 
    +		 */
    +		public Object[] importCells(Object[] cells, double dx, double dy,
    +				Object target, Point location)
    +		{
    +			if (target == null && cells.length == 1 && location != null)
    +			{
    +				target = getCellAt(location.x, location.y);
    +
    +				if (target instanceof mxICell && cells[0] instanceof mxICell)
    +				{
    +					mxICell targetCell = (mxICell) target;
    +					mxICell dropCell = (mxICell) cells[0];
    +
    +					if (targetCell.isVertex() == dropCell.isVertex()
    +							|| targetCell.isEdge() == dropCell.isEdge())
    +					{
    +						mxIGraphModel model = graph.getModel();
    +						model.setStyle(target, model.getStyle(cells[0]));
    +						graph.setSelectionCell(target);
    +
    +						return null;
    +					}
    +				}
    +			}
    +
    +			return super.importCells(cells, dx, dy, target, location);
    +		}
    +
    +	}
    +
    +	/**
    +	 * A graph that creates new edges from a given template edge.
    +	 */
    +	public static class CustomGraph extends mxGraph
    +	{
    +		/**
    +		 * Holds the edge to be used as a template for inserting new edges.
    +		 */
    +		protected Object edgeTemplate;
    +
    +		/**
    +		 * Custom graph that defines the alternate edge style to be used when
    +		 * the middle control point of edges is double clicked (flipped).
    +		 */
    +		public CustomGraph()
    +		{
    +			setAlternateEdgeStyle("edgeStyle=mxEdgeStyle.ElbowConnector;elbow=vertical");
    +		}
    +
    +		/**
    +		 * Sets the edge template to be used to inserting edges.
    +		 */
    +		public void setEdgeTemplate(Object template)
    +		{
    +			edgeTemplate = template;
    +		}
    +
    +		/**
    +		 * Prints out some useful information about the cell in the tooltip.
    +		 */
    +		public String getToolTipForCell(Object cell)
    +		{
    +			String tip = "<html>";
    +			mxGeometry geo = getModel().getGeometry(cell);
    +			mxCellState state = getView().getState(cell);
    +
    +			if (getModel().isEdge(cell))
    +			{
    +				tip += "points={";
    +
    +				if (geo != null)
    +				{
    +					List<mxPoint> points = geo.getPoints();
    +
    +					if (points != null)
    +					{
    +						Iterator<mxPoint> it = points.iterator();
    +
    +						while (it.hasNext())
    +						{
    +							mxPoint point = it.next();
    +							tip += "[x=" + numberFormat.format(point.getX())
    +									+ ",y=" + numberFormat.format(point.getY())
    +									+ "],";
    +						}
    +
    +						tip = tip.substring(0, tip.length() - 1);
    +					}
    +				}
    +
    +				tip += "}<br>";
    +				tip += "absPoints={";
    +
    +				if (state != null)
    +				{
    +
    +					for (int i = 0; i < state.getAbsolutePointCount(); i++)
    +					{
    +						mxPoint point = state.getAbsolutePoint(i);
    +						tip += "[x=" + numberFormat.format(point.getX())
    +								+ ",y=" + numberFormat.format(point.getY())
    +								+ "],";
    +					}
    +
    +					tip = tip.substring(0, tip.length() - 1);
    +				}
    +
    +				tip += "}";
    +			}
    +			else
    +			{
    +				tip += "geo=[";
    +
    +				if (geo != null)
    +				{
    +					tip += "x=" + numberFormat.format(geo.getX()) + ",y="
    +							+ numberFormat.format(geo.getY()) + ",width="
    +							+ numberFormat.format(geo.getWidth()) + ",height="
    +							+ numberFormat.format(geo.getHeight());
    +				}
    +
    +				tip += "]<br>";
    +				tip += "state=[";
    +
    +				if (state != null)
    +				{
    +					tip += "x=" + numberFormat.format(state.getX()) + ",y="
    +							+ numberFormat.format(state.getY()) + ",width="
    +							+ numberFormat.format(state.getWidth())
    +							+ ",height="
    +							+ numberFormat.format(state.getHeight());
    +				}
    +
    +				tip += "]";
    +			}
    +
    +			mxPoint trans = getView().getTranslate();
    +
    +			tip += "<br>scale=" + numberFormat.format(getView().getScale())
    +					+ ", translate=[x=" + numberFormat.format(trans.getX())
    +					+ ",y=" + numberFormat.format(trans.getY()) + "]";
    +			tip += "</html>";
    +
    +			return tip;
    +		}
    +
    +		/**
    +		 * Overrides the method to use the currently selected edge template for
    +		 * new edges.
    +		 * 
    +		 * @param graph
    +		 * @param parent
    +		 * @param id
    +		 * @param value
    +		 * @param source
    +		 * @param target
    +		 * @param style
    +		 * @return
    +		 */
    +		public Object createEdge(Object parent, String id, Object value,
    +				Object source, Object target, String style)
    +		{
    +			if (edgeTemplate != null)
    +			{
    +				mxCell edge = (mxCell) cloneCells(new Object[] { edgeTemplate })[0];
    +				edge.setId(id);
    +
    +				return edge;
    +			}
    +
    +			return super.createEdge(parent, id, value, source, target, style);
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 * @param args
    +	 */
    +	public static void main(String[] args)
    +	{
    +		try
    +		{
    +			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    +		}
    +		catch (Exception e1)
    +		{
    +			e1.printStackTrace();
    +		}
    +
    +		mxSwingConstants.SHADOW_COLOR = Color.LIGHT_GRAY;
    +		mxConstants.W3C_SHADOWCOLOR = "#D3D3D3";
    +		
    +		GraphEditor editor = new GraphEditor();
    +		editor.createFrame(new EditorMenuBar(editor)).setVisible(true);
    +	}
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/HelloWorld.java b/java/examples/com/mxgraph/examples/swing/HelloWorld.java
    new file mode 100644
    index 000000000..f1f612b00
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/HelloWorld.java
    @@ -0,0 +1,49 @@
    +package com.mxgraph.examples.swing;
    +
    +import javax.swing.JFrame;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.view.mxGraph;
    +
    +public class HelloWorld extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -2707712944901661771L;
    +
    +	public HelloWorld()
    +	{
    +		super("Hello, World!");
    +
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
    +					30);
    +			Object v2 = graph.insertVertex(parent, null, "World!", 240, 150,
    +					80, 30);
    +			graph.insertEdge(parent, null, "Edge", v1, v2);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		mxGraphComponent graphComponent = new mxGraphComponent(graph);
    +		getContentPane().add(graphComponent);
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		HelloWorld frame = new HelloWorld();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/Port.java b/java/examples/com/mxgraph/examples/swing/Port.java
    new file mode 100644
    index 000000000..22702e29b
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/Port.java
    @@ -0,0 +1,123 @@
    +package com.mxgraph.examples.swing;
    +
    +import java.util.Map;
    +
    +import javax.swing.JFrame;
    +
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxEdgeStyle;
    +import com.mxgraph.view.mxGraph;
    +
    +public class Port extends JFrame
    +{
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -464235672367772404L;
    +
    +	final int PORT_DIAMETER = 20;
    +
    +	final int PORT_RADIUS = PORT_DIAMETER / 2;
    +
    +	public Port()
    +	{
    +		super("Hello, World!");
    +
    +		mxGraph graph = new mxGraph() {
    +			
    +			// Ports are not used as terminals for edges, they are
    +			// only used to compute the graphical connection point
    +			public boolean isPort(Object cell)
    +			{
    +				mxGeometry geo = getCellGeometry(cell);
    +				
    +				return (geo != null) ? geo.isRelative() : false;
    +			}
    +			
    +			// Implements a tooltip that shows the actual
    +			// source and target of an edge
    +			public String getToolTipForCell(Object cell)
    +			{
    +				if (model.isEdge(cell))
    +				{
    +					return convertValueToString(model.getTerminal(cell, true)) + " -> " +
    +						convertValueToString(model.getTerminal(cell, false));
    +				}
    +				
    +				return super.getToolTipForCell(cell);
    +			}
    +			
    +			// Removes the folding icon and disables any folding
    +			public boolean isCellFoldable(Object cell, boolean collapse)
    +			{
    +				return false;
    +			}
    +		};
    +		
    +		// Sets the default edge style
    +		Map<String, Object> style = graph.getStylesheet().getDefaultEdgeStyle();
    +		style.put(mxConstants.STYLE_EDGE, mxEdgeStyle.ElbowConnector);
    +		
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			mxCell v1 = (mxCell) graph.insertVertex(parent, null, "Hello", 20,
    +					20, 100, 100, "");
    +			v1.setConnectable(false);
    +			mxGeometry geo = graph.getModel().getGeometry(v1);
    +			// The size of the rectangle when the minus sign is clicked
    +			geo.setAlternateBounds(new mxRectangle(20, 20, 100, 50));
    +
    +			mxGeometry geo1 = new mxGeometry(0, 0.5, PORT_DIAMETER,
    +					PORT_DIAMETER);
    +			// Because the origin is at upper left corner, need to translate to
    +			// position the center of port correctly
    +			geo1.setOffset(new mxPoint(-PORT_RADIUS, -PORT_RADIUS));
    +			geo1.setRelative(true);
    +
    +			mxCell port1 = new mxCell(null, geo1,
    +					"shape=ellipse;perimter=ellipsePerimeter");
    +			port1.setVertex(true);
    +
    +			mxGeometry geo2 = new mxGeometry(1.0, 0.5, PORT_DIAMETER,
    +					PORT_DIAMETER);
    +			geo2.setOffset(new mxPoint(-PORT_RADIUS, -PORT_RADIUS));
    +			geo2.setRelative(true);
    +
    +			mxCell port2 = new mxCell(null, geo2,
    +					"shape=ellipse;perimter=ellipsePerimeter");
    +			port2.setVertex(true);
    +
    +			graph.addCell(port1, v1);
    +			graph.addCell(port2, v1);
    +
    +			Object v2 = graph.insertVertex(parent, null, "World!", 240, 150, 80, 30);
    +			
    +			graph.insertEdge(parent, null, "Edge", port2, v2);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		mxGraphComponent graphComponent = new mxGraphComponent(graph);
    +		getContentPane().add(graphComponent);
    +		graphComponent.setToolTips(true);
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		Port frame = new Port();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/SchemaEditor.java b/java/examples/com/mxgraph/examples/swing/SchemaEditor.java
    new file mode 100644
    index 000000000..122f448a0
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/SchemaEditor.java
    @@ -0,0 +1,132 @@
    +package com.mxgraph.examples.swing;
    +
    +import java.awt.BorderLayout;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.JToolBar;
    +import javax.swing.UIManager;
    +
    +import com.mxgraph.examples.swing.editor.BasicGraphEditor;
    +import com.mxgraph.examples.swing.editor.EditorPalette;
    +import com.mxgraph.examples.swing.editor.SchemaEditorMenuBar;
    +import com.mxgraph.examples.swing.editor.SchemaEditorToolBar;
    +import com.mxgraph.examples.swing.editor.SchemaGraphComponent;
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +public class SchemaEditor extends BasicGraphEditor
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -7007225006753337933L;
    +
    +	/**
    +	 * 
    +	 */
    +	public SchemaEditor()
    +	{
    +		super("mxGraph for JFC/Swing", new SchemaGraphComponent(new mxGraph()
    +		{
    +			/**
    +			 * Allows expanding tables
    +			 */
    +			public boolean isCellFoldable(Object cell, boolean collapse)
    +			{
    +				return model.isVertex(cell);
    +			}
    +		})
    +
    +		{
    +			/**
    +			 * 
    +			 */
    +			private static final long serialVersionUID = -1194463455177427496L;
    +
    +			/**
    +			 * Disables folding icons.
    +			 */
    +			public ImageIcon getFoldingIcon(mxCellState state)
    +			{
    +				return null;
    +			}
    +
    +		});
    +
    +		// Creates a single shapes palette
    +		EditorPalette shapesPalette = insertPalette("Schema");
    +		graphOutline.setVisible(false);
    +
    +		mxCell tableTemplate = new mxCell("New Table", new mxGeometry(0, 0,
    +				200, 280), null);
    +		tableTemplate.getGeometry().setAlternateBounds(
    +				new mxRectangle(0, 0, 140, 25));
    +		tableTemplate.setVertex(true);
    +
    +		shapesPalette
    +				.addTemplate(
    +						"Table",
    +						new ImageIcon(
    +								GraphEditor.class
    +										.getResource("/com/mxgraph/examples/swing/images/rectangle.png")),
    +						tableTemplate);
    +
    +		getGraphComponent().getGraph().setCellsResizable(false);
    +		getGraphComponent().setConnectable(false);
    +		getGraphComponent().getGraphHandler().setCloneEnabled(false);
    +		getGraphComponent().getGraphHandler().setImagePreview(false);
    +
    +		// Prefers default JComponent event-handling before mxCellHandler handling
    +		//getGraphComponent().getGraphHandler().setKeepOnTop(false);
    +
    +		mxGraph graph = getGraphComponent().getGraph();
    +		Object parent = graph.getDefaultParent();
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			mxCell v1 = (mxCell) graph.insertVertex(parent, null, "Customers",
    +					20, 20, 200, 280);
    +			v1.getGeometry().setAlternateBounds(new mxRectangle(0, 0, 140, 25));
    +			mxCell v2 = (mxCell) graph.insertVertex(parent, null, "Orders",
    +					280, 20, 200, 280);
    +			v2.getGeometry().setAlternateBounds(new mxRectangle(0, 0, 140, 25));
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void installToolBar()
    +	{
    +		add(new SchemaEditorToolBar(this, JToolBar.HORIZONTAL),
    +				BorderLayout.NORTH);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param args
    +	 */
    +	public static void main(String[] args)
    +	{
    +		try
    +		{
    +			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    +		}
    +		catch (Exception e1)
    +		{
    +			e1.printStackTrace();
    +		}
    +
    +		SchemaEditor editor = new SchemaEditor();
    +		editor.createFrame(new SchemaEditorMenuBar(editor)).setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/Stencils.java b/java/examples/com/mxgraph/examples/swing/Stencils.java
    new file mode 100644
    index 000000000..116e94c59
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/Stencils.java
    @@ -0,0 +1,118 @@
    +package com.mxgraph.examples.swing;
    +
    +import java.awt.Image;
    +
    +import javax.swing.JFrame;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.NodeList;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.canvas.mxGraphicsCanvas2D;
    +import com.mxgraph.shape.mxStencil;
    +import com.mxgraph.shape.mxStencilRegistry;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.view.mxInteractiveCanvas;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.util.mxXmlUtils;
    +import com.mxgraph.view.mxGraph;
    +
    +public class Stencils extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -2707712944901661771L;
    +
    +	public Stencils()
    +	{
    +		super("Stencils");
    +
    +		try
    +		{
    +			String filename = Stencils.class.getResource(
    +					"/com/mxgraph/examples/swing/shapes.xml").getPath();
    +			Document doc = mxXmlUtils.parseXml(mxUtils.readFile(filename));
    +
    +			Element shapes = (Element) doc.getDocumentElement();
    +			NodeList list = shapes.getElementsByTagName("shape");
    +
    +			for (int i = 0; i < list.getLength(); i++)
    +			{
    +				Element shape = (Element) list.item(i);
    +				mxStencilRegistry.addStencil(shape.getAttribute("name"),
    +						new mxStencil(shape)
    +						{
    +							protected mxGraphicsCanvas2D createCanvas(
    +									final mxGraphics2DCanvas gc)
    +							{
    +								// Redirects image loading to graphics canvas
    +								return new mxGraphicsCanvas2D(gc.getGraphics())
    +								{
    +									protected Image loadImage(String src)
    +									{
    +										// Adds image base path to relative image URLs
    +										if (!src.startsWith("/")
    +												&& !src.startsWith("http://")
    +												&& !src.startsWith("https://")
    +												&& !src.startsWith("file:"))
    +										{
    +											src = gc.getImageBasePath() + src;
    +										}
    +
    +										// Call is cached
    +										return gc.loadImage(src);
    +									}
    +								};
    +							}
    +						});
    +			}
    +
    +			mxGraph graph = new mxGraph();
    +			Object parent = graph.getDefaultParent();
    +
    +			graph.getModel().beginUpdate();
    +			try
    +			{
    +				Object v1 = graph
    +						.insertVertex(parent, null, "Hello", 20, 20, 80, 30,
    +								"shape=and;fillColor=#ff0000;gradientColor=#ffffff;shadow=1");
    +				Object v2 = graph.insertVertex(parent, null, "World!", 240,
    +						150, 80, 30, "shape=xor;shadow=1");
    +				graph.insertEdge(parent, null, "Edge", v1, v2);
    +			}
    +			finally
    +			{
    +				graph.getModel().endUpdate();
    +			}
    +
    +			mxGraphComponent graphComponent = new mxGraphComponent(graph)
    +			{
    +				// Sets global image base path
    +				public mxInteractiveCanvas createCanvas()
    +				{
    +					mxInteractiveCanvas canvas = super.createCanvas();
    +					canvas.setImageBasePath("/com/mxgraph/examples/swing/");
    +
    +					return canvas;
    +				}
    +			};
    +			getContentPane().add(graphComponent);
    +		}
    +		catch (Exception e)
    +		{
    +			e.printStackTrace();
    +		}
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		Stencils frame = new Stencils();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/UserObject.java b/java/examples/com/mxgraph/examples/swing/UserObject.java
    new file mode 100644
    index 000000000..44bf73565
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/UserObject.java
    @@ -0,0 +1,205 @@
    +/**
    + * $Id: UserObject.java,v 1.4 2012-01-18 08:32:10 gaudenz Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.swing;
    +
    +import java.util.EventObject;
    +
    +import javax.swing.JFrame;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxDomUtils;
    +import com.mxgraph.view.mxGraph;
    +
    +public class UserObject extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -708317745824467773L;
    +
    +	public UserObject()
    +	{
    +		super("Hello, World!");
    +
    +		// Defines the user objects, which are preferrably XML nodes that allow
    +		// storage of complex values as child nodes and string, number or
    +		// boolean properties as attributes.
    +		//
    +		// When using Java objects as user objects, make sure to add the
    +		// package name containg the class and register a codec for the user
    +		// object class as follows:
    +		//
    +		// mxCodecRegistry.addPackage("com.example"); 
    +		// mxCodecRegistry.register(new mxObjectCodec(
    +		//	new com.example.CustomUserObject()));
    +		//
    +		// Note that the object must have an empty constructor and a setter and
    +		// getter for each property to be persisted. The object must not have
    +		// a property called ID as this property is reserved for resolving cell
    +		// references and will cause problems when used inside the user object.
    +		//
    +		Document doc = mxDomUtils.createDocument();
    +		Element person1 = doc.createElement("Person");
    +		person1.setAttribute("firstName", "Daffy");
    +		person1.setAttribute("lastName", "Duck");
    +
    +		Element person2 = doc.createElement("Person");
    +		person2.setAttribute("firstName", "Bugs");
    +		person2.setAttribute("lastName", "Bunny");
    +
    +		Element relation = doc.createElement("Knows");
    +		relation.setAttribute("since", "1985");
    +
    +		mxGraph graph = new mxGraph()
    +		{
    +			// Overrides method to disallow edge label editing
    +			public boolean isCellEditable(Object cell)
    +			{
    +				return !getModel().isEdge(cell);
    +			}
    +
    +			// Overrides method to provide a cell label in the display
    +			public String convertValueToString(Object cell)
    +			{
    +				if (cell instanceof mxCell)
    +				{
    +					Object value = ((mxCell) cell).getValue();
    +
    +					if (value instanceof Element)
    +					{
    +						Element elt = (Element) value;
    +
    +						if (elt.getTagName().equalsIgnoreCase("person"))
    +						{
    +							String firstName = elt.getAttribute("firstName");
    +							String lastName = elt.getAttribute("lastName");
    +
    +							if (lastName != null && lastName.length() > 0)
    +							{
    +								return lastName + ", " + firstName;
    +							}
    +
    +							return firstName;
    +						}
    +						else if (elt.getTagName().equalsIgnoreCase("knows"))
    +						{
    +							return elt.getTagName() + " (Since "
    +									+ elt.getAttribute("since") + ")";
    +						}
    +
    +					}
    +				}
    +
    +				return super.convertValueToString(cell);
    +			}
    +
    +			// Overrides method to store a cell label in the model
    +			public void cellLabelChanged(Object cell, Object newValue,
    +					boolean autoSize)
    +			{
    +				if (cell instanceof mxCell && newValue != null)
    +				{
    +					Object value = ((mxCell) cell).getValue();
    +
    +					if (value instanceof Node)
    +					{
    +						String label = newValue.toString();
    +						Element elt = (Element) value;
    +
    +						if (elt.getTagName().equalsIgnoreCase("person"))
    +						{
    +							int pos = label.indexOf(' ');
    +
    +							String firstName = (pos > 0) ? label.substring(0,
    +									pos).trim() : label;
    +							String lastName = (pos > 0) ? label.substring(
    +									pos + 1, label.length()).trim() : "";
    +
    +							// Clones the value for correct undo/redo
    +							elt = (Element) elt.cloneNode(true);
    +
    +							elt.setAttribute("firstName", firstName);
    +							elt.setAttribute("lastName", lastName);
    +
    +							newValue = elt;
    +						}
    +					}
    +				}
    +
    +				super.cellLabelChanged(cell, newValue, autoSize);
    +			}
    +		};
    +
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Object v1 = graph.insertVertex(parent, null, person1, 20, 20, 80,
    +					30);
    +			Object v2 = graph.insertVertex(parent, null, person2, 240, 150, 80,
    +					30);
    +			graph.insertEdge(parent, null, relation, v1, v2);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		// Overrides method to create the editing value
    +		mxGraphComponent graphComponent = new mxGraphComponent(graph)
    +		{
    +			/**
    +			 * 
    +			 */
    +			private static final long serialVersionUID = 6824440535661529806L;
    +
    +			public String getEditingValue(Object cell, EventObject trigger)
    +			{
    +				if (cell instanceof mxCell)
    +				{
    +					Object value = ((mxCell) cell).getValue();
    +
    +					if (value instanceof Element)
    +					{
    +						Element elt = (Element) value;
    +
    +						if (elt.getTagName().equalsIgnoreCase("person"))
    +						{
    +							String firstName = elt.getAttribute("firstName");
    +							String lastName = elt.getAttribute("lastName");
    +
    +							return firstName + " " + lastName;
    +						}
    +					}
    +				}
    +
    +				return super.getEditingValue(cell, trigger);
    +			};
    +
    +		};
    +		
    +		getContentPane().add(graphComponent);
    +		
    +		// Stops editing after enter has been pressed instead
    +		// of adding a newline to the current editing value
    +		graphComponent.setEnterStopsCellEditing(true);
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		UserObject frame = new UserObject();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/Validation.java b/java/examples/com/mxgraph/examples/swing/Validation.java
    new file mode 100644
    index 000000000..78d85186d
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/Validation.java
    @@ -0,0 +1,123 @@
    +/**
    + * $Id: Validation.java,v 1.4 2012-01-13 11:20:55 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.swing;
    +
    +import java.util.Arrays;
    +
    +import javax.swing.JFrame;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.handler.mxKeyboardHandler;
    +import com.mxgraph.swing.handler.mxRubberband;
    +import com.mxgraph.util.mxDomUtils;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxMultiplicity;
    +
    +public class Validation extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -8928982366041695471L;
    +
    +	public Validation()
    +	{
    +		super("Hello, World!");
    +
    +		Document xmlDocument = mxDomUtils.createDocument();
    +		Element sourceNode = xmlDocument.createElement("Source");
    +		Element targetNode = xmlDocument.createElement("Target");
    +		Element subtargetNode = xmlDocument.createElement("Subtarget");
    +
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Object v1 = graph.insertVertex(parent, null, sourceNode, 20, 20,
    +					80, 30);
    +			Object v2 = graph.insertVertex(parent, null, targetNode, 200, 20,
    +					80, 30);
    +			Object v3 = graph.insertVertex(parent, null, targetNode
    +					.cloneNode(true), 200, 80, 80, 30);
    +			Object v4 = graph.insertVertex(parent, null, targetNode
    +					.cloneNode(true), 200, 140, 80, 30);
    +			graph.insertVertex(parent, null, subtargetNode, 200,
    +					200, 80, 30);
    +			Object v6 = graph.insertVertex(parent, null, sourceNode
    +					.cloneNode(true), 20, 140, 80, 30);
    +			graph.insertEdge(parent, null, "", v1, v2);
    +			graph.insertEdge(parent, null, "", v1, v3);
    +			graph.insertEdge(parent, null, "", v6, v4);
    +			//Object e4 = graph.insertEdge(parent, null, "", v1, v4);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		mxMultiplicity[] multiplicities = new mxMultiplicity[3];
    +
    +		// Source nodes needs 1..2 connected Targets
    +		multiplicities[0] = new mxMultiplicity(true, "Source", null, null, 1,
    +				"2", Arrays.asList(new String[] { "Target" }),
    +				"Source Must Have 1 or 2 Targets",
    +				"Source Must Connect to Target", true);
    +
    +		// Source node does not want any incoming connections
    +		multiplicities[1] = new mxMultiplicity(false, "Source", null, null, 0,
    +				"0", null, "Source Must Have No Incoming Edge", null, true); // Type does not matter
    +
    +		// Target needs exactly one incoming connection from Source
    +		multiplicities[2] = new mxMultiplicity(false, "Target", null, null, 1,
    +				"1", Arrays.asList(new String[] { "Source" }),
    +				"Target Must Have 1 Source", "Target Must Connect From Source",
    +				true);
    +
    +		graph.setMultiplicities(multiplicities);
    +
    +		final mxGraphComponent graphComponent = new mxGraphComponent(graph);
    +		graph.setMultigraph(false);
    +		graph.setAllowDanglingEdges(false);
    +		graphComponent.setConnectable(true);
    +		graphComponent.setToolTips(true);
    +
    +		// Enables rubberband selection
    +		new mxRubberband(graphComponent);
    +		new mxKeyboardHandler(graphComponent);
    +
    +		// Installs automatic validation (use editor.validation = true
    +		// if you are using an mxEditor instance)
    +		graph.getModel().addListener(mxEvent.CHANGE, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				graphComponent.validateGraph();
    +			}
    +		});
    +
    +		// Initial validation
    +		graphComponent.validateGraph();
    +
    +		getContentPane().add(graphComponent);
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		Validation frame = new Validation();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/bell.png b/java/examples/com/mxgraph/examples/swing/bell.png
    new file mode 100644
    index 000000000..3d30cc98f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/bell.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/BasicGraphEditor.java b/java/examples/com/mxgraph/examples/swing/editor/BasicGraphEditor.java
    new file mode 100644
    index 000000000..c03cf0d36
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/BasicGraphEditor.java
    @@ -0,0 +1,936 @@
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.BorderLayout;
    +import java.awt.Point;
    +import java.awt.event.ActionEvent;
    +import java.awt.event.ActionListener;
    +import java.awt.event.ComponentAdapter;
    +import java.awt.event.ComponentEvent;
    +import java.awt.event.MouseAdapter;
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseMotionListener;
    +import java.awt.event.MouseWheelEvent;
    +import java.awt.event.MouseWheelListener;
    +import java.io.File;
    +import java.util.List;
    +
    +import javax.swing.AbstractAction;
    +import javax.swing.Action;
    +import javax.swing.BorderFactory;
    +import javax.swing.ImageIcon;
    +import javax.swing.JCheckBoxMenuItem;
    +import javax.swing.JFrame;
    +import javax.swing.JLabel;
    +import javax.swing.JMenuBar;
    +import javax.swing.JOptionPane;
    +import javax.swing.JPanel;
    +import javax.swing.JPopupMenu;
    +import javax.swing.JScrollPane;
    +import javax.swing.JSplitPane;
    +import javax.swing.JTabbedPane;
    +import javax.swing.JToolBar;
    +import javax.swing.SwingUtilities;
    +import javax.swing.UIManager;
    +
    +import com.mxgraph.layout.mxCircleLayout;
    +import com.mxgraph.layout.mxCompactTreeLayout;
    +import com.mxgraph.layout.mxEdgeLabelLayout;
    +import com.mxgraph.layout.mxIGraphLayout;
    +import com.mxgraph.layout.mxOrganicLayout;
    +import com.mxgraph.layout.mxParallelEdgeLayout;
    +import com.mxgraph.layout.mxPartitionLayout;
    +import com.mxgraph.layout.mxStackLayout;
    +import com.mxgraph.layout.hierarchical.mxHierarchicalLayout;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.mxGraphOutline;
    +import com.mxgraph.swing.handler.mxKeyboardHandler;
    +import com.mxgraph.swing.handler.mxRubberband;
    +import com.mxgraph.swing.util.mxMorphing;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.util.mxUndoManager;
    +import com.mxgraph.util.mxUndoableEdit;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.util.mxUndoableEdit.mxUndoableChange;
    +import com.mxgraph.view.mxGraph;
    +
    +public class BasicGraphEditor extends JPanel
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -6561623072112577140L;
    +
    +	/**
    +	 * Adds required resources for i18n
    +	 */
    +	static
    +	{
    +		try
    +		{
    +			mxResources.add("com/mxgraph/examples/swing/resources/editor");
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphOutline graphOutline;
    +
    +	/**
    +	 * 
    +	 */
    +	protected JTabbedPane libraryPane;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxUndoManager undoManager;
    +
    +	/**
    +	 * 
    +	 */
    +	protected String appTitle;
    +
    +	/**
    +	 * 
    +	 */
    +	protected JLabel statusBar;
    +
    +	/**
    +	 * 
    +	 */
    +	protected File currentFile;
    +
    +	/**
    +	 * Flag indicating whether the current graph has been modified 
    +	 */
    +	protected boolean modified = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxRubberband rubberband;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxKeyboardHandler keyboardHandler;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIEventListener undoHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			undoManager.undoableEditHappened((mxUndoableEdit) evt
    +					.getProperty("edit"));
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIEventListener changeTracker = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			setModified(true);
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	public BasicGraphEditor(String appTitle, mxGraphComponent component)
    +	{
    +		// Stores and updates the frame title
    +		this.appTitle = appTitle;
    +
    +		// Stores a reference to the graph and creates the command history
    +		graphComponent = component;
    +		final mxGraph graph = graphComponent.getGraph();
    +		undoManager = createUndoManager();
    +
    +		// Do not change the scale and translation after files have been loaded
    +		graph.setResetViewOnRootChange(false);
    +
    +		// Updates the modified flag if the graph model changes
    +		graph.getModel().addListener(mxEvent.CHANGE, changeTracker);
    +
    +		// Adds the command history to the model and view
    +		graph.getModel().addListener(mxEvent.UNDO, undoHandler);
    +		graph.getView().addListener(mxEvent.UNDO, undoHandler);
    +
    +		// Keeps the selection in sync with the command history
    +		mxIEventListener undoHandler = new mxIEventListener()
    +		{
    +			public void invoke(Object source, mxEventObject evt)
    +			{
    +				List<mxUndoableChange> changes = ((mxUndoableEdit) evt
    +						.getProperty("edit")).getChanges();
    +				graph.setSelectionCells(graph
    +						.getSelectionCellsForChanges(changes));
    +			}
    +		};
    +
    +		undoManager.addListener(mxEvent.UNDO, undoHandler);
    +		undoManager.addListener(mxEvent.REDO, undoHandler);
    +
    +		// Creates the graph outline component
    +		graphOutline = new mxGraphOutline(graphComponent);
    +
    +		// Creates the library pane that contains the tabs with the palettes
    +		libraryPane = new JTabbedPane();
    +
    +		// Creates the inner split pane that contains the library with the
    +		// palettes and the graph outline on the left side of the window
    +		JSplitPane inner = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
    +				libraryPane, graphOutline);
    +		inner.setDividerLocation(320);
    +		inner.setResizeWeight(1);
    +		inner.setDividerSize(6);
    +		inner.setBorder(null);
    +
    +		// Creates the outer split pane that contains the inner split pane and
    +		// the graph component on the right side of the window
    +		JSplitPane outer = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, inner,
    +				graphComponent);
    +		outer.setOneTouchExpandable(true);
    +		outer.setDividerLocation(200);
    +		outer.setDividerSize(6);
    +		outer.setBorder(null);
    +
    +		// Creates the status bar
    +		statusBar = createStatusBar();
    +
    +		// Display some useful information about repaint events
    +		installRepaintListener();
    +
    +		// Puts everything together
    +		setLayout(new BorderLayout());
    +		add(outer, BorderLayout.CENTER);
    +		add(statusBar, BorderLayout.SOUTH);
    +		installToolBar();
    +
    +		// Installs rubberband selection and handling for some special
    +		// keystrokes such as F2, Control-C, -V, X, A etc.
    +		installHandlers();
    +		installListeners();
    +		updateTitle();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxUndoManager createUndoManager()
    +	{
    +		return new mxUndoManager();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void installHandlers()
    +	{
    +		rubberband = new mxRubberband(graphComponent);
    +		keyboardHandler = new EditorKeyboardHandler(graphComponent);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void installToolBar()
    +	{
    +		add(new EditorToolBar(this, JToolBar.HORIZONTAL), BorderLayout.NORTH);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected JLabel createStatusBar()
    +	{
    +		JLabel statusBar = new JLabel(mxResources.get("ready"));
    +		statusBar.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 4));
    +
    +		return statusBar;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void installRepaintListener()
    +	{
    +		graphComponent.getGraph().addListener(mxEvent.REPAINT,
    +				new mxIEventListener()
    +				{
    +					public void invoke(Object source, mxEventObject evt)
    +					{
    +						String buffer = (graphComponent.getTripleBuffer() != null) ? ""
    +								: " (unbuffered)";
    +						mxRectangle dirty = (mxRectangle) evt
    +								.getProperty("region");
    +
    +						if (dirty == null)
    +						{
    +							status("Repaint all" + buffer);
    +						}
    +						else
    +						{
    +							status("Repaint: x=" + (int) (dirty.getX()) + " y="
    +									+ (int) (dirty.getY()) + " w="
    +									+ (int) (dirty.getWidth()) + " h="
    +									+ (int) (dirty.getHeight()) + buffer);
    +						}
    +					}
    +				});
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public EditorPalette insertPalette(String title)
    +	{
    +		final EditorPalette palette = new EditorPalette();
    +		final JScrollPane scrollPane = new JScrollPane(palette);
    +		scrollPane
    +				.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    +		scrollPane
    +				.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    +		libraryPane.add(title, scrollPane);
    +
    +		// Updates the widths of the palettes if the container size changes
    +		libraryPane.addComponentListener(new ComponentAdapter()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void componentResized(ComponentEvent e)
    +			{
    +				int w = scrollPane.getWidth()
    +						- scrollPane.getVerticalScrollBar().getWidth();
    +				palette.setPreferredWidth(w);
    +			}
    +
    +		});
    +
    +		return palette;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void mouseWheelMoved(MouseWheelEvent e)
    +	{
    +		if (e.getWheelRotation() < 0)
    +		{
    +			graphComponent.zoomIn();
    +		}
    +		else
    +		{
    +			graphComponent.zoomOut();
    +		}
    +
    +		status(mxResources.get("scale") + ": "
    +				+ (int) (100 * graphComponent.getGraph().getView().getScale())
    +				+ "%");
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void showOutlinePopupMenu(MouseEvent e)
    +	{
    +		Point pt = SwingUtilities.convertPoint(e.getComponent(), e.getPoint(),
    +				graphComponent);
    +		JCheckBoxMenuItem item = new JCheckBoxMenuItem(
    +				mxResources.get("magnifyPage"));
    +		item.setSelected(graphOutline.isFitPage());
    +
    +		item.addActionListener(new ActionListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				graphOutline.setFitPage(!graphOutline.isFitPage());
    +				graphOutline.repaint();
    +			}
    +		});
    +
    +		JCheckBoxMenuItem item2 = new JCheckBoxMenuItem(
    +				mxResources.get("showLabels"));
    +		item2.setSelected(graphOutline.isDrawLabels());
    +
    +		item2.addActionListener(new ActionListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				graphOutline.setDrawLabels(!graphOutline.isDrawLabels());
    +				graphOutline.repaint();
    +			}
    +		});
    +
    +		JCheckBoxMenuItem item3 = new JCheckBoxMenuItem(
    +				mxResources.get("buffering"));
    +		item3.setSelected(graphOutline.isTripleBuffered());
    +
    +		item3.addActionListener(new ActionListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				graphOutline.setTripleBuffered(!graphOutline.isTripleBuffered());
    +				graphOutline.repaint();
    +			}
    +		});
    +
    +		JPopupMenu menu = new JPopupMenu();
    +		menu.add(item);
    +		menu.add(item2);
    +		menu.add(item3);
    +		menu.show(graphComponent, pt.x, pt.y);
    +
    +		e.consume();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void showGraphPopupMenu(MouseEvent e)
    +	{
    +		Point pt = SwingUtilities.convertPoint(e.getComponent(), e.getPoint(),
    +				graphComponent);
    +		EditorPopupMenu menu = new EditorPopupMenu(BasicGraphEditor.this);
    +		menu.show(graphComponent, pt.x, pt.y);
    +
    +		e.consume();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void mouseLocationChanged(MouseEvent e)
    +	{
    +		status(e.getX() + ", " + e.getY());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void installListeners()
    +	{
    +		// Installs mouse wheel listener for zooming
    +		MouseWheelListener wheelTracker = new MouseWheelListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void mouseWheelMoved(MouseWheelEvent e)
    +			{
    +				if (e.getSource() instanceof mxGraphOutline
    +						|| e.isControlDown())
    +				{
    +					BasicGraphEditor.this.mouseWheelMoved(e);
    +				}
    +			}
    +
    +		};
    +
    +		// Handles mouse wheel events in the outline and graph component
    +		graphOutline.addMouseWheelListener(wheelTracker);
    +		graphComponent.addMouseWheelListener(wheelTracker);
    +
    +		// Installs the popup menu in the outline
    +		graphOutline.addMouseListener(new MouseAdapter()
    +		{
    +
    +			/**
    +			 * 
    +			 */
    +			public void mousePressed(MouseEvent e)
    +			{
    +				// Handles context menu on the Mac where the trigger is on mousepressed
    +				mouseReleased(e);
    +			}
    +
    +			/**
    +			 * 
    +			 */
    +			public void mouseReleased(MouseEvent e)
    +			{
    +				if (e.isPopupTrigger())
    +				{
    +					showOutlinePopupMenu(e);
    +				}
    +			}
    +
    +		});
    +
    +		// Installs the popup menu in the graph component
    +		graphComponent.getGraphControl().addMouseListener(new MouseAdapter()
    +		{
    +
    +			/**
    +			 * 
    +			 */
    +			public void mousePressed(MouseEvent e)
    +			{
    +				// Handles context menu on the Mac where the trigger is on mousepressed
    +				mouseReleased(e);
    +			}
    +
    +			/**
    +			 * 
    +			 */
    +			public void mouseReleased(MouseEvent e)
    +			{
    +				if (e.isPopupTrigger())
    +				{
    +					showGraphPopupMenu(e);
    +				}
    +			}
    +
    +		});
    +
    +		// Installs a mouse motion listener to display the mouse location
    +		graphComponent.getGraphControl().addMouseMotionListener(
    +				new MouseMotionListener()
    +				{
    +
    +					/*
    +					 * (non-Javadoc)
    +					 * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
    +					 */
    +					public void mouseDragged(MouseEvent e)
    +					{
    +						mouseLocationChanged(e);
    +					}
    +
    +					/*
    +					 * (non-Javadoc)
    +					 * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
    +					 */
    +					public void mouseMoved(MouseEvent e)
    +					{
    +						mouseDragged(e);
    +					}
    +
    +				});
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setCurrentFile(File file)
    +	{
    +		File oldValue = currentFile;
    +		currentFile = file;
    +
    +		firePropertyChange("currentFile", oldValue, file);
    +
    +		if (oldValue != file)
    +		{
    +			updateTitle();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public File getCurrentFile()
    +	{
    +		return currentFile;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param modified
    +	 */
    +	public void setModified(boolean modified)
    +	{
    +		boolean oldValue = this.modified;
    +		this.modified = modified;
    +
    +		firePropertyChange("modified", oldValue, modified);
    +
    +		if (oldValue != modified)
    +		{
    +			updateTitle();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 * @return whether or not the current graph has been modified
    +	 */
    +	public boolean isModified()
    +	{
    +		return modified;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphComponent getGraphComponent()
    +	{
    +		return graphComponent;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphOutline getGraphOutline()
    +	{
    +		return graphOutline;
    +	}
    +	
    +	/**
    +	 * 
    +	 */
    +	public JTabbedPane getLibraryPane()
    +	{
    +		return libraryPane;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxUndoManager getUndoManager()
    +	{
    +		return undoManager;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param name
    +	 * @param action
    +	 * @return a new Action bound to the specified string name
    +	 */
    +	public Action bind(String name, final Action action)
    +	{
    +		return bind(name, action, null);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param name
    +	 * @param action
    +	 * @return a new Action bound to the specified string name and icon
    +	 */
    +	@SuppressWarnings("serial")
    +	public Action bind(String name, final Action action, String iconUrl)
    +	{
    +		return new AbstractAction(name, (iconUrl != null) ? new ImageIcon(
    +				BasicGraphEditor.class.getResource(iconUrl)) : null)
    +		{
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				action.actionPerformed(new ActionEvent(getGraphComponent(), e
    +						.getID(), e.getActionCommand()));
    +			}
    +		};
    +	}
    +
    +	/**
    +	 * 
    +	 * @param msg
    +	 */
    +	public void status(String msg)
    +	{
    +		statusBar.setText(msg);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void updateTitle()
    +	{
    +		JFrame frame = (JFrame) SwingUtilities.windowForComponent(this);
    +
    +		if (frame != null)
    +		{
    +			String title = (currentFile != null) ? currentFile
    +					.getAbsolutePath() : mxResources.get("newDiagram");
    +
    +			if (modified)
    +			{
    +				title += "*";
    +			}
    +
    +			frame.setTitle(title + " - " + appTitle);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void about()
    +	{
    +		JFrame frame = (JFrame) SwingUtilities.windowForComponent(this);
    +
    +		if (frame != null)
    +		{
    +			EditorAboutFrame about = new EditorAboutFrame(frame);
    +			about.setModal(true);
    +
    +			// Centers inside the application frame
    +			int x = frame.getX() + (frame.getWidth() - about.getWidth()) / 2;
    +			int y = frame.getY() + (frame.getHeight() - about.getHeight()) / 2;
    +			about.setLocation(x, y);
    +
    +			// Shows the modal dialog and waits
    +			about.setVisible(true);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void exit()
    +	{
    +		JFrame frame = (JFrame) SwingUtilities.windowForComponent(this);
    +
    +		if (frame != null)
    +		{
    +			frame.dispose();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setLookAndFeel(String clazz)
    +	{
    +		JFrame frame = (JFrame) SwingUtilities.windowForComponent(this);
    +
    +		if (frame != null)
    +		{
    +			try
    +			{
    +				UIManager.setLookAndFeel(clazz);
    +				SwingUtilities.updateComponentTreeUI(frame);
    +
    +				// Needs to assign the key bindings again
    +				keyboardHandler = new EditorKeyboardHandler(graphComponent);
    +			}
    +			catch (Exception e1)
    +			{
    +				e1.printStackTrace();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public JFrame createFrame(JMenuBar menuBar)
    +	{
    +		JFrame frame = new JFrame();
    +		frame.getContentPane().add(this);
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setJMenuBar(menuBar);
    +		frame.setSize(870, 640);
    +
    +		// Updates the frame title
    +		updateTitle();
    +
    +		return frame;
    +	}
    +
    +	/**
    +	 * Creates an action that executes the specified layout.
    +	 * 
    +	 * @param key Key to be used for getting the label from mxResources and also
    +	 * to create the layout instance for the commercial graph editor example.
    +	 * @return an action that executes the specified layout
    +	 */
    +	@SuppressWarnings("serial")
    +	public Action graphLayout(final String key, boolean animate)
    +	{
    +		final mxIGraphLayout layout = createLayout(key, animate);
    +
    +		if (layout != null)
    +		{
    +			return new AbstractAction(mxResources.get(key))
    +			{
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					final mxGraph graph = graphComponent.getGraph();
    +					Object cell = graph.getSelectionCell();
    +
    +					if (cell == null
    +							|| graph.getModel().getChildCount(cell) == 0)
    +					{
    +						cell = graph.getDefaultParent();
    +					}
    +
    +					graph.getModel().beginUpdate();
    +					try
    +					{
    +						long t0 = System.currentTimeMillis();
    +						layout.execute(cell);
    +						status("Layout: " + (System.currentTimeMillis() - t0)
    +								+ " ms");
    +					}
    +					finally
    +					{
    +						mxMorphing morph = new mxMorphing(graphComponent, 20,
    +								1.2, 20);
    +
    +						morph.addListener(mxEvent.DONE, new mxIEventListener()
    +						{
    +
    +							public void invoke(Object sender, mxEventObject evt)
    +							{
    +								graph.getModel().endUpdate();
    +							}
    +
    +						});
    +
    +						morph.startAnimation();
    +					}
    +
    +				}
    +
    +			};
    +		}
    +		else
    +		{
    +			return new AbstractAction(mxResources.get(key))
    +			{
    +
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					JOptionPane.showMessageDialog(graphComponent,
    +							mxResources.get("noLayout"));
    +				}
    +
    +			};
    +		}
    +	}
    +
    +	/**
    +	 * Creates a layout instance for the given identifier.
    +	 */
    +	protected mxIGraphLayout createLayout(String ident, boolean animate)
    +	{
    +		mxIGraphLayout layout = null;
    +
    +		if (ident != null)
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +
    +			if (ident.equals("verticalHierarchical"))
    +			{
    +				layout = new mxHierarchicalLayout(graph);
    +			}
    +			else if (ident.equals("horizontalHierarchical"))
    +			{
    +				layout = new mxHierarchicalLayout(graph, JLabel.WEST);
    +			}
    +			else if (ident.equals("verticalTree"))
    +			{
    +				layout = new mxCompactTreeLayout(graph, false);
    +			}
    +			else if (ident.equals("horizontalTree"))
    +			{
    +				layout = new mxCompactTreeLayout(graph, true);
    +			}
    +			else if (ident.equals("parallelEdges"))
    +			{
    +				layout = new mxParallelEdgeLayout(graph);
    +			}
    +			else if (ident.equals("placeEdgeLabels"))
    +			{
    +				layout = new mxEdgeLabelLayout(graph);
    +			}
    +			else if (ident.equals("organicLayout"))
    +			{
    +				layout = new mxOrganicLayout(graph);
    +			}
    +			if (ident.equals("verticalPartition"))
    +			{
    +				layout = new mxPartitionLayout(graph, false)
    +				{
    +					/**
    +					 * Overrides the empty implementation to return the size of the
    +					 * graph control.
    +					 */
    +					public mxRectangle getContainerSize()
    +					{
    +						return graphComponent.getLayoutAreaSize();
    +					}
    +				};
    +			}
    +			else if (ident.equals("horizontalPartition"))
    +			{
    +				layout = new mxPartitionLayout(graph, true)
    +				{
    +					/**
    +					 * Overrides the empty implementation to return the size of the
    +					 * graph control.
    +					 */
    +					public mxRectangle getContainerSize()
    +					{
    +						return graphComponent.getLayoutAreaSize();
    +					}
    +				};
    +			}
    +			else if (ident.equals("verticalStack"))
    +			{
    +				layout = new mxStackLayout(graph, false)
    +				{
    +					/**
    +					 * Overrides the empty implementation to return the size of the
    +					 * graph control.
    +					 */
    +					public mxRectangle getContainerSize()
    +					{
    +						return graphComponent.getLayoutAreaSize();
    +					}
    +				};
    +			}
    +			else if (ident.equals("horizontalStack"))
    +			{
    +				layout = new mxStackLayout(graph, true)
    +				{
    +					/**
    +					 * Overrides the empty implementation to return the size of the
    +					 * graph control.
    +					 */
    +					public mxRectangle getContainerSize()
    +					{
    +						return graphComponent.getLayoutAreaSize();
    +					}
    +				};
    +			}
    +			else if (ident.equals("circleLayout"))
    +			{
    +				layout = new mxCircleLayout(graph);
    +			}
    +		}
    +
    +		return layout;
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/DefaultFileFilter.java b/java/examples/com/mxgraph/examples/swing/editor/DefaultFileFilter.java
    new file mode 100644
    index 000000000..45931996a
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/DefaultFileFilter.java
    @@ -0,0 +1,216 @@
    +/* 
    + * $Id: DefaultFileFilter.java,v 1.1 2009-10-23 11:32:08 gaudenz Exp $
    + * Copyright (c) 2001-2005, Gaudenz Alder
    + * 
    + * All rights reserved.
    + * 
    + * See LICENSE file for license details. If you are unable to locate
    + * this file please contact info (at) jgraph (dot) com.
    + */
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.io.File;
    +
    +import javax.imageio.ImageIO;
    +import javax.swing.JFileChooser;
    +import javax.swing.filechooser.FileFilter;
    +
    +/**
    + * Filter for use in a {@link JFileChooser}.
    + */
    +public class DefaultFileFilter extends FileFilter
    +{
    +
    +	/**
    +	 * Extension of accepted files.
    +	 */
    +	protected String ext;
    +
    +	/**
    +	 * Description of accepted files.
    +	 */
    +	protected String desc;
    +
    +	/**
    +	 * Constructs a new filter for the specified extension and descpription.
    +	 * 
    +	 * @param extension
    +	 *            The extension to accept files with.
    +	 * @param description
    +	 *            The description of the file format.
    +	 */
    +	public DefaultFileFilter(String extension, String description)
    +	{
    +		ext = extension.toLowerCase();
    +		desc = description;
    +	}
    +
    +	/**
    +	 * Returns true if <code>file</code> is a directory or ends with
    +	 * {@link #ext}.
    +	 * 
    +	 * @param file
    +	 *            The file to be checked.
    +	 * @return Returns true if the file is accepted.
    +	 */
    +	public boolean accept(File file)
    +	{
    +		return file.isDirectory() || file.getName().toLowerCase().endsWith(ext);
    +	}
    +
    +	/**
    +	 * Returns the description for accepted files.
    +	 * 
    +	 * @return Returns the description.
    +	 */
    +	public String getDescription()
    +	{
    +		return desc;
    +	}
    +
    +	/**
    +	 * Returns the extension for accepted files.
    +	 * 
    +	 * @return Returns the extension.
    +	 */
    +	public String getExtension()
    +	{
    +		return ext;
    +	}
    +
    +	/**
    +	 * Sets the extension for accepted files.
    +	 * 
    +	 * @param extension
    +	 *            The extension to set.
    +	 */
    +	public void setExtension(String extension)
    +	{
    +		this.ext = extension;
    +	}
    +
    +	/**
    +	 * Utility file filter to accept all image formats supported by image io.
    +	 * 
    +	 * @see ImageIO#getReaderFormatNames()
    +	 */
    +	public static class ImageFileFilter extends FileFilter
    +	{
    +
    +		/**
    +		 * Holds the accepted file format extensions for images.
    +		 */
    +		protected static String[] imageFormats = ImageIO.getReaderFormatNames();
    +
    +		/**
    +		 * Description of the filter.
    +		 */
    +		protected String desc;
    +
    +		/**
    +		 * Constructs a new file filter for all supported image formats using
    +		 * the specified description.
    +		 * 
    +		 * @param description
    +		 *            The description to use for the file filter.
    +		 */
    +		public ImageFileFilter(String description)
    +		{
    +			desc = description;
    +		}
    +
    +		/**
    +		 * Returns true if the file is a directory or ends with a known image
    +		 * extension.
    +		 * 
    +		 * @param file
    +		 *            The file to be checked.
    +		 * @return Returns true if the file is accepted.
    +		 */
    +		public boolean accept(File file)
    +		{
    +			if (file.isDirectory())
    +			{
    +				return true;
    +			}
    +
    +			String filename = file.toString().toLowerCase();
    +
    +			for (int j = 0; j < imageFormats.length; j++)
    +			{
    +				if (filename.endsWith("." + imageFormats[j].toLowerCase()))
    +				{
    +					return true;
    +				}
    +			}
    +
    +			return false;
    +		}
    +
    +		/**
    +		 * Returns the description.
    +		 * 
    +		 * @return Returns the description.
    +		 */
    +		public String getDescription()
    +		{
    +			return desc;
    +		}
    +
    +	}
    +
    +	/**
    +	 * Utility file filter to accept editor files, namely .xml and .xml.gz
    +	 * extensions.
    +	 * 
    +	 * @see ImageIO#getReaderFormatNames()
    +	 */
    +	public static class EditorFileFilter extends FileFilter
    +	{
    +
    +		/**
    +		 * Description of the File format
    +		 */
    +		protected String desc;
    +
    +		/**
    +		 * Constructs a new editor file filter using the specified description.
    +		 * 
    +		 * @param description
    +		 *            The description to use for the filter.
    +		 */
    +		public EditorFileFilter(String description)
    +		{
    +			desc = description;
    +		}
    +
    +		/**
    +		 * Returns true if the file is a directory or has a .xml or .xml.gz
    +		 * extension.
    +		 * 
    +		 * @return Returns true if the file is accepted.
    +		 */
    +		public boolean accept(File file)
    +		{
    +			if (file.isDirectory())
    +			{
    +				return true;
    +			}
    +
    +			String filename = file.getName().toLowerCase();
    +
    +			return filename.endsWith(".xml") || filename.endsWith(".xml.gz");
    +		}
    +
    +		/**
    +		 * Returns the description.
    +		 * 
    +		 * @return Returns the description.
    +		 */
    +		public String getDescription()
    +		{
    +			return desc;
    +		}
    +
    +	}
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/EditorAboutFrame.java b/java/examples/com/mxgraph/examples/swing/editor/EditorAboutFrame.java
    new file mode 100644
    index 000000000..61f712a56
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/EditorAboutFrame.java
    @@ -0,0 +1,171 @@
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.BorderLayout;
    +import java.awt.Color;
    +import java.awt.FlowLayout;
    +import java.awt.Font;
    +import java.awt.Frame;
    +import java.awt.GradientPaint;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.event.ActionEvent;
    +import java.awt.event.ActionListener;
    +import java.awt.event.KeyEvent;
    +
    +import javax.swing.BorderFactory;
    +import javax.swing.BoxLayout;
    +import javax.swing.JButton;
    +import javax.swing.JComponent;
    +import javax.swing.JDialog;
    +import javax.swing.JLabel;
    +import javax.swing.JPanel;
    +import javax.swing.JRootPane;
    +import javax.swing.KeyStroke;
    +
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.view.mxGraph;
    +
    +public class EditorAboutFrame extends JDialog
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -3378029138434324390L;
    +
    +	/**
    +	 * 
    +	 */
    +	public EditorAboutFrame(Frame owner)
    +	{
    +		super(owner);
    +		setTitle(mxResources.get("aboutGraphEditor"));
    +		setLayout(new BorderLayout());
    +
    +		// Creates the gradient panel
    +		JPanel panel = new JPanel(new BorderLayout())
    +		{
    +
    +			/**
    +			 * 
    +			 */
    +			private static final long serialVersionUID = -5062895855016210947L;
    +
    +			/**
    +			 * 
    +			 */
    +			public void paintComponent(Graphics g)
    +			{
    +				super.paintComponent(g);
    +
    +				// Paint gradient background
    +				Graphics2D g2d = (Graphics2D) g;
    +				g2d.setPaint(new GradientPaint(0, 0, Color.WHITE, getWidth(),
    +						0, getBackground()));
    +				g2d.fillRect(0, 0, getWidth(), getHeight());
    +			}
    +
    +		};
    +
    +		panel.setBorder(BorderFactory.createCompoundBorder(BorderFactory
    +				.createMatteBorder(0, 0, 1, 0, Color.GRAY), BorderFactory
    +				.createEmptyBorder(8, 8, 12, 8)));
    +
    +		// Adds title
    +		JLabel titleLabel = new JLabel(mxResources.get("aboutGraphEditor"));
    +		titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD));
    +		titleLabel.setBorder(BorderFactory.createEmptyBorder(4, 0, 0, 0));
    +		titleLabel.setOpaque(false);
    +		panel.add(titleLabel, BorderLayout.NORTH);
    +
    +		// Adds optional subtitle
    +		JLabel subtitleLabel = new JLabel(
    +				"For more information visit http://www.mxgraph.com/");
    +		subtitleLabel.setBorder(BorderFactory.createEmptyBorder(4, 18, 0, 0));
    +		subtitleLabel.setOpaque(false);
    +		panel.add(subtitleLabel, BorderLayout.CENTER);
    +
    +		getContentPane().add(panel, BorderLayout.NORTH);
    +
    +		JPanel content = new JPanel();
    +		content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
    +		content.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
    +
    +		content.add(new JLabel("JGraph X - The Swing Portion of mxGraph"));
    +		content.add(new JLabel(" "));
    +
    +		content.add(new JLabel("mxGraph Version " + mxGraph.VERSION));
    +		content.add(new JLabel("Copyright (C) 2009 by JGraph Ltd."));
    +		content.add(new JLabel("All rights reserved."));
    +		content.add(new JLabel(" "));
    +
    +		try
    +		{
    +			content.add(new JLabel("Operating System Name: "
    +					+ System.getProperty("os.name")));
    +			content.add(new JLabel("Operating System Version: "
    +					+ System.getProperty("os.version")));
    +			content.add(new JLabel(" "));
    +
    +			content.add(new JLabel("Java Vendor: "
    +					+ System.getProperty("java.vendor", "undefined")));
    +			content.add(new JLabel("Java Version: "
    +					+ System.getProperty("java.version", "undefined")));
    +			content.add(new JLabel(" "));
    +
    +			content.add(new JLabel("Total Memory: "
    +					+ Runtime.getRuntime().totalMemory()));
    +			content.add(new JLabel("Free Memory: "
    +					+ Runtime.getRuntime().freeMemory()));
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +
    +		getContentPane().add(content, BorderLayout.CENTER);
    +
    +		JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    +		buttonPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory
    +				.createMatteBorder(1, 0, 0, 0, Color.GRAY), BorderFactory
    +				.createEmptyBorder(16, 8, 8, 8)));
    +		getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    +
    +		// Adds OK button to close window
    +		JButton closeButton = new JButton("Close");
    +		closeButton.addActionListener(new ActionListener()
    +		{
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				setVisible(false);
    +			}
    +		});
    +
    +		buttonPanel.add(closeButton);
    +
    +		// Sets default button for enter key
    +		getRootPane().setDefaultButton(closeButton);
    +
    +		setResizable(false);
    +		setSize(400, 400);
    +	}
    +
    +	/**
    +	 * Overrides {@link JDialog#createRootPane()} to return a root pane that
    +	 * hides the window when the user presses the ESCAPE key.O
    +	 */
    +	protected JRootPane createRootPane()
    +	{
    +		KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
    +		JRootPane rootPane = new JRootPane();
    +		rootPane.registerKeyboardAction(new ActionListener()
    +		{
    +			public void actionPerformed(ActionEvent actionEvent)
    +			{
    +				setVisible(false);
    +			}
    +		}, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
    +		return rootPane;
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/EditorActions.java b/java/examples/com/mxgraph/examples/swing/editor/EditorActions.java
    new file mode 100644
    index 000000000..3173999b1
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/EditorActions.java
    @@ -0,0 +1,2259 @@
    +/*
    + * $Id: EditorActions.java,v 1.37 2012-01-13 11:36:35 david Exp $
    + * Copyright (c) 2001-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.Color;
    +import java.awt.Component;
    +import java.awt.Image;
    +import java.awt.event.ActionEvent;
    +import java.awt.event.ActionListener;
    +import java.awt.image.BufferedImage;
    +import java.awt.print.PageFormat;
    +import java.awt.print.Paper;
    +import java.awt.print.PrinterException;
    +import java.awt.print.PrinterJob;
    +import java.beans.PropertyChangeEvent;
    +import java.beans.PropertyChangeListener;
    +import java.io.File;
    +import java.io.FileInputStream;
    +import java.io.FileOutputStream;
    +import java.io.FilenameFilter;
    +import java.io.IOException;
    +import java.lang.reflect.Method;
    +import java.net.URLDecoder;
    +import java.net.URLEncoder;
    +import java.util.HashSet;
    +import java.util.Map;
    +
    +import javax.imageio.ImageIO;
    +import javax.swing.AbstractAction;
    +import javax.swing.ImageIcon;
    +import javax.swing.JCheckBoxMenuItem;
    +import javax.swing.JColorChooser;
    +import javax.swing.JComponent;
    +import javax.swing.JEditorPane;
    +import javax.swing.JFileChooser;
    +import javax.swing.JOptionPane;
    +import javax.swing.JSplitPane;
    +import javax.swing.SwingUtilities;
    +import javax.swing.filechooser.FileFilter;
    +import javax.swing.text.html.HTML;
    +import javax.swing.text.html.HTMLDocument;
    +import javax.swing.text.html.HTMLEditorKit;
    +
    +import org.w3c.dom.Document;
    +
    +import com.mxgraph.analysis.mxDistanceCostFunction;
    +import com.mxgraph.analysis.mxGraphAnalysis;
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.canvas.mxSvgCanvas;
    +import com.mxgraph.io.mxCodec;
    +import com.mxgraph.io.mxGdCodec;
    +import com.mxgraph.io.gd.mxGdDocument;
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxGraphModel;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.shape.mxStencilShape;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.mxGraphOutline;
    +import com.mxgraph.swing.handler.mxConnectionHandler;
    +import com.mxgraph.swing.util.mxGraphActions;
    +import com.mxgraph.swing.view.mxCellEditor;
    +import com.mxgraph.util.mxCellRenderer;
    +import com.mxgraph.util.mxCellRenderer.CanvasFactory;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxDomUtils;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.util.mxXmlUtils;
    +import com.mxgraph.util.png.mxPngEncodeParam;
    +import com.mxgraph.util.png.mxPngImageEncoder;
    +import com.mxgraph.util.png.mxPngTextDecoder;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + *
    + */
    +public class EditorActions
    +{
    +	/**
    +	 * 
    +	 * @param e
    +	 * @return Returns the graph for the given action event.
    +	 */
    +	public static final BasicGraphEditor getEditor(ActionEvent e)
    +	{
    +		if (e.getSource() instanceof Component)
    +		{
    +			Component component = (Component) e.getSource();
    +
    +			while (component != null
    +					&& !(component instanceof BasicGraphEditor))
    +			{
    +				component = component.getParent();
    +			}
    +
    +			return (BasicGraphEditor) component;
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ToggleRulersItem extends JCheckBoxMenuItem
    +	{
    +		/**
    +		 * 
    +		 */
    +		public ToggleRulersItem(final BasicGraphEditor editor, String name)
    +		{
    +			super(name);
    +			setSelected(editor.getGraphComponent().getColumnHeader() != null);
    +
    +			addActionListener(new ActionListener()
    +			{
    +				/**
    +				 * 
    +				 */
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					mxGraphComponent graphComponent = editor
    +							.getGraphComponent();
    +
    +					if (graphComponent.getColumnHeader() != null)
    +					{
    +						graphComponent.setColumnHeader(null);
    +						graphComponent.setRowHeader(null);
    +					}
    +					else
    +					{
    +						graphComponent.setColumnHeaderView(new EditorRuler(
    +								graphComponent,
    +								EditorRuler.ORIENTATION_HORIZONTAL));
    +						graphComponent.setRowHeaderView(new EditorRuler(
    +								graphComponent,
    +								EditorRuler.ORIENTATION_VERTICAL));
    +					}
    +				}
    +			});
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ToggleGridItem extends JCheckBoxMenuItem
    +	{
    +		/**
    +		 * 
    +		 */
    +		public ToggleGridItem(final BasicGraphEditor editor, String name)
    +		{
    +			super(name);
    +			setSelected(true);
    +
    +			addActionListener(new ActionListener()
    +			{
    +				/**
    +				 * 
    +				 */
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					mxGraphComponent graphComponent = editor
    +							.getGraphComponent();
    +					mxGraph graph = graphComponent.getGraph();
    +					boolean enabled = !graph.isGridEnabled();
    +
    +					graph.setGridEnabled(enabled);
    +					graphComponent.setGridVisible(enabled);
    +					graphComponent.repaint();
    +					setSelected(enabled);
    +				}
    +			});
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ToggleOutlineItem extends JCheckBoxMenuItem
    +	{
    +		/**
    +		 * 
    +		 */
    +		public ToggleOutlineItem(final BasicGraphEditor editor, String name)
    +		{
    +			super(name);
    +			setSelected(true);
    +
    +			addActionListener(new ActionListener()
    +			{
    +				/**
    +				 * 
    +				 */
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					final mxGraphOutline outline = editor.getGraphOutline();
    +					outline.setVisible(!outline.isVisible());
    +					outline.revalidate();
    +
    +					SwingUtilities.invokeLater(new Runnable()
    +					{
    +						/*
    +						 * (non-Javadoc)
    +						 * @see java.lang.Runnable#run()
    +						 */
    +						public void run()
    +						{
    +							if (outline.getParent() instanceof JSplitPane)
    +							{
    +								if (outline.isVisible())
    +								{
    +									((JSplitPane) outline.getParent())
    +											.setDividerLocation(editor
    +													.getHeight() - 300);
    +									((JSplitPane) outline.getParent())
    +											.setDividerSize(6);
    +								}
    +								else
    +								{
    +									((JSplitPane) outline.getParent())
    +											.setDividerSize(0);
    +								}
    +							}
    +						}
    +					});
    +				}
    +			});
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ExitAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			BasicGraphEditor editor = getEditor(e);
    +
    +			if (editor != null)
    +			{
    +				editor.exit();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class StylesheetAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String stylesheet;
    +
    +		/**
    +		 * 
    +		 */
    +		public StylesheetAction(String stylesheet)
    +		{
    +			this.stylesheet = stylesheet;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				mxGraph graph = graphComponent.getGraph();
    +				mxCodec codec = new mxCodec();
    +				Document doc = mxUtils.loadDocument(EditorActions.class
    +						.getResource(stylesheet).toString());
    +
    +				if (doc != null)
    +				{
    +					codec.decode(doc.getDocumentElement(),
    +							graph.getStylesheet());
    +					graph.refresh();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ZoomPolicyAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected int zoomPolicy;
    +
    +		/**
    +		 * 
    +		 */
    +		public ZoomPolicyAction(int zoomPolicy)
    +		{
    +			this.zoomPolicy = zoomPolicy;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				graphComponent.setPageVisible(true);
    +				graphComponent.setZoomPolicy(zoomPolicy);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class GridStyleAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected int style;
    +
    +		/**
    +		 * 
    +		 */
    +		public GridStyleAction(int style)
    +		{
    +			this.style = style;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				graphComponent.setGridStyle(style);
    +				graphComponent.repaint();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class GridColorAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				Color newColor = JColorChooser.showDialog(graphComponent,
    +						mxResources.get("gridColor"),
    +						graphComponent.getGridColor());
    +
    +				if (newColor != null)
    +				{
    +					graphComponent.setGridColor(newColor);
    +					graphComponent.repaint();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ScaleAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected double scale;
    +
    +		/**
    +		 * 
    +		 */
    +		public ScaleAction(double scale)
    +		{
    +			this.scale = scale;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				double scale = this.scale;
    +
    +				if (scale == 0)
    +				{
    +					String value = (String) JOptionPane.showInputDialog(
    +							graphComponent, mxResources.get("value"),
    +							mxResources.get("scale") + " (%)",
    +							JOptionPane.PLAIN_MESSAGE, null, null, "");
    +
    +					if (value != null)
    +					{
    +						scale = Double.parseDouble(value.replace("%", "")) / 100;
    +					}
    +				}
    +
    +				if (scale > 0)
    +				{
    +					graphComponent.zoomTo(scale, graphComponent.isCenterZoom());
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class PageSetupAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				PrinterJob pj = PrinterJob.getPrinterJob();
    +				PageFormat format = pj.pageDialog(graphComponent
    +						.getPageFormat());
    +
    +				if (format != null)
    +				{
    +					graphComponent.setPageFormat(format);
    +					graphComponent.zoomAndCenter();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class PrintAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				PrinterJob pj = PrinterJob.getPrinterJob();
    +
    +				if (pj.printDialog())
    +				{
    +					PageFormat pf = graphComponent.getPageFormat();
    +					Paper paper = new Paper();
    +					double margin = 36;
    +					paper.setImageableArea(margin, margin, paper.getWidth()
    +							- margin * 2, paper.getHeight() - margin * 2);
    +					pf.setPaper(paper);
    +					pj.setPrintable(graphComponent, pf);
    +
    +					try
    +					{
    +						pj.print();
    +					}
    +					catch (PrinterException e2)
    +					{
    +						System.out.println(e2);
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class SaveAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected boolean showDialog;
    +
    +		/**
    +		 * 
    +		 */
    +		protected String lastDir = null;
    +
    +		/**
    +		 * 
    +		 */
    +		public SaveAction(boolean showDialog)
    +		{
    +			this.showDialog = showDialog;
    +		}
    +
    +		/**
    +		 * Saves XML+PNG format.
    +		 */
    +		protected void saveXmlPng(BasicGraphEditor editor, String filename,
    +				Color bg) throws IOException
    +		{
    +			mxGraphComponent graphComponent = editor.getGraphComponent();
    +			mxGraph graph = graphComponent.getGraph();
    +
    +			// Creates the image for the PNG file
    +			BufferedImage image = mxCellRenderer.createBufferedImage(graph,
    +					null, 1, bg, graphComponent.isAntiAlias(), null,
    +					graphComponent.getCanvas());
    +
    +			// Creates the URL-encoded XML data
    +			mxCodec codec = new mxCodec();
    +			String xml = URLEncoder.encode(
    +					mxXmlUtils.getXml(codec.encode(graph.getModel())), "UTF-8");
    +			mxPngEncodeParam param = mxPngEncodeParam
    +					.getDefaultEncodeParam(image);
    +			param.setCompressedText(new String[] { "mxGraphModel", xml });
    +
    +			// Saves as a PNG file
    +			FileOutputStream outputStream = new FileOutputStream(new File(
    +					filename));
    +			try
    +			{
    +				mxPngImageEncoder encoder = new mxPngImageEncoder(outputStream,
    +						param);
    +
    +				if (image != null)
    +				{
    +					encoder.encode(image);
    +
    +					editor.setModified(false);
    +					editor.setCurrentFile(new File(filename));
    +				}
    +				else
    +				{
    +					JOptionPane.showMessageDialog(graphComponent,
    +							mxResources.get("noImageData"));
    +				}
    +			}
    +			finally
    +			{
    +				outputStream.close();
    +			}
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			BasicGraphEditor editor = getEditor(e);
    +
    +			if (editor != null)
    +			{
    +				mxGraphComponent graphComponent = editor.getGraphComponent();
    +				mxGraph graph = graphComponent.getGraph();
    +				FileFilter selectedFilter = null;
    +				DefaultFileFilter xmlPngFilter = new DefaultFileFilter(".png",
    +						"PNG+XML " + mxResources.get("file") + " (.png)");
    +				FileFilter vmlFileFilter = new DefaultFileFilter(".html",
    +						"VML " + mxResources.get("file") + " (.html)");
    +				String filename = null;
    +				boolean dialogShown = false;
    +
    +				if (showDialog || editor.getCurrentFile() == null)
    +				{
    +					String wd;
    +
    +					if (lastDir != null)
    +					{
    +						wd = lastDir;
    +					}
    +					else if (editor.getCurrentFile() != null)
    +					{
    +						wd = editor.getCurrentFile().getParent();
    +					}
    +					else
    +					{
    +						wd = System.getProperty("user.dir");
    +					}
    +
    +					JFileChooser fc = new JFileChooser(wd);
    +
    +					// Adds the default file format
    +					FileFilter defaultFilter = xmlPngFilter;
    +					fc.addChoosableFileFilter(defaultFilter);
    +
    +					// Adds special vector graphics formats and HTML
    +					fc.addChoosableFileFilter(new DefaultFileFilter(".mxe",
    +							"mxGraph Editor " + mxResources.get("file")
    +									+ " (.mxe)"));
    +					fc.addChoosableFileFilter(new DefaultFileFilter(".txt",
    +							"Graph Drawing " + mxResources.get("file")
    +									+ " (.txt)"));
    +					fc.addChoosableFileFilter(new DefaultFileFilter(".svg",
    +							"SVG " + mxResources.get("file") + " (.svg)"));
    +					fc.addChoosableFileFilter(vmlFileFilter);
    +					fc.addChoosableFileFilter(new DefaultFileFilter(".html",
    +							"HTML " + mxResources.get("file") + " (.html)"));
    +
    +					// Adds a filter for each supported image format
    +					Object[] imageFormats = ImageIO.getReaderFormatNames();
    +
    +					// Finds all distinct extensions
    +					HashSet<String> formats = new HashSet<String>();
    +
    +					for (int i = 0; i < imageFormats.length; i++)
    +					{
    +						String ext = imageFormats[i].toString().toLowerCase();
    +						formats.add(ext);
    +					}
    +
    +					imageFormats = formats.toArray();
    +
    +					for (int i = 0; i < imageFormats.length; i++)
    +					{
    +						String ext = imageFormats[i].toString();
    +						fc.addChoosableFileFilter(new DefaultFileFilter("."
    +								+ ext, ext.toUpperCase() + " "
    +								+ mxResources.get("file") + " (." + ext + ")"));
    +					}
    +
    +					// Adds filter that accepts all supported image formats
    +					fc.addChoosableFileFilter(new DefaultFileFilter.ImageFileFilter(
    +							mxResources.get("allImages")));
    +					fc.setFileFilter(defaultFilter);
    +					int rc = fc.showDialog(null, mxResources.get("save"));
    +					dialogShown = true;
    +
    +					if (rc != JFileChooser.APPROVE_OPTION)
    +					{
    +						return;
    +					}
    +					else
    +					{
    +						lastDir = fc.getSelectedFile().getParent();
    +					}
    +
    +					filename = fc.getSelectedFile().getAbsolutePath();
    +					selectedFilter = fc.getFileFilter();
    +
    +					if (selectedFilter instanceof DefaultFileFilter)
    +					{
    +						String ext = ((DefaultFileFilter) selectedFilter)
    +								.getExtension();
    +
    +						if (!filename.toLowerCase().endsWith(ext))
    +						{
    +							filename += ext;
    +						}
    +					}
    +
    +					if (new File(filename).exists()
    +							&& JOptionPane.showConfirmDialog(graphComponent,
    +									mxResources.get("overwriteExistingFile")) != JOptionPane.YES_OPTION)
    +					{
    +						return;
    +					}
    +				}
    +				else
    +				{
    +					filename = editor.getCurrentFile().getAbsolutePath();
    +				}
    +
    +				try
    +				{
    +					String ext = filename
    +							.substring(filename.lastIndexOf('.') + 1);
    +
    +					if (ext.equalsIgnoreCase("svg"))
    +					{
    +						mxSvgCanvas canvas = (mxSvgCanvas) mxCellRenderer
    +								.drawCells(graph, null, 1, null,
    +										new CanvasFactory()
    +										{
    +											public mxICanvas createCanvas(
    +													int width, int height)
    +											{
    +												mxSvgCanvas canvas = new mxSvgCanvas(
    +														mxDomUtils.createSvgDocument(
    +																width, height));
    +												canvas.setEmbedded(true);
    +
    +												return canvas;
    +											}
    +
    +										});
    +
    +						mxUtils.writeFile(mxXmlUtils.getXml(canvas.getDocument()),
    +								filename);
    +					}
    +					else if (selectedFilter == vmlFileFilter)
    +					{
    +						mxUtils.writeFile(mxXmlUtils.getXml(mxCellRenderer
    +								.createVmlDocument(graph, null, 1, null, null)
    +								.getDocumentElement()), filename);
    +					}
    +					else if (ext.equalsIgnoreCase("html"))
    +					{
    +						mxUtils.writeFile(mxXmlUtils.getXml(mxCellRenderer
    +								.createHtmlDocument(graph, null, 1, null, null)
    +								.getDocumentElement()), filename);
    +					}
    +					else if (ext.equalsIgnoreCase("mxe")
    +							|| ext.equalsIgnoreCase("xml"))
    +					{
    +						mxCodec codec = new mxCodec();
    +						String xml = mxXmlUtils.getXml(codec.encode(graph
    +								.getModel()));
    +
    +						mxUtils.writeFile(xml, filename);
    +
    +						editor.setModified(false);
    +						editor.setCurrentFile(new File(filename));
    +					}
    +					else if (ext.equalsIgnoreCase("txt"))
    +					{
    +						String content = mxGdCodec.encode(graph)
    +								.getDocumentString();
    +
    +						mxUtils.writeFile(content, filename);
    +					}
    +					else
    +					{
    +						Color bg = null;
    +
    +						if ((!ext.equalsIgnoreCase("gif") && !ext
    +								.equalsIgnoreCase("png"))
    +								|| JOptionPane.showConfirmDialog(
    +										graphComponent, mxResources
    +												.get("transparentBackground")) != JOptionPane.YES_OPTION)
    +						{
    +							bg = graphComponent.getBackground();
    +						}
    +
    +						if (selectedFilter == xmlPngFilter
    +								|| (editor.getCurrentFile() != null
    +										&& ext.equalsIgnoreCase("png") && !dialogShown))
    +						{
    +							saveXmlPng(editor, filename, bg);
    +						}
    +						else
    +						{
    +							BufferedImage image = mxCellRenderer
    +									.createBufferedImage(graph, null, 1, bg,
    +											graphComponent.isAntiAlias(), null,
    +											graphComponent.getCanvas());
    +
    +							if (image != null)
    +							{
    +								ImageIO.write(image, ext, new File(filename));
    +							}
    +							else
    +							{
    +								JOptionPane.showMessageDialog(graphComponent,
    +										mxResources.get("noImageData"));
    +							}
    +						}
    +					}
    +				}
    +				catch (Throwable ex)
    +				{
    +					ex.printStackTrace();
    +					JOptionPane.showMessageDialog(graphComponent,
    +							ex.toString(), mxResources.get("error"),
    +							JOptionPane.ERROR_MESSAGE);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class SelectShortestPathAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected boolean directed;
    +
    +		/**
    +		 * 
    +		 */
    +		public SelectShortestPathAction(boolean directed)
    +		{
    +			this.directed = directed;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				mxGraph graph = graphComponent.getGraph();
    +				mxIGraphModel model = graph.getModel();
    +
    +				Object source = null;
    +				Object target = null;
    +
    +				Object[] cells = graph.getSelectionCells();
    +
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (model.isVertex(cells[i]))
    +					{
    +						if (source == null)
    +						{
    +							source = cells[i];
    +						}
    +						else if (target == null)
    +						{
    +							target = cells[i];
    +						}
    +					}
    +
    +					if (source != null && target != null)
    +					{
    +						break;
    +					}
    +				}
    +
    +				if (source != null && target != null)
    +				{
    +					int steps = graph.getChildEdges(graph.getDefaultParent()).length;
    +					Object[] path = mxGraphAnalysis.getInstance()
    +							.getShortestPath(graph, source, target,
    +									new mxDistanceCostFunction(), steps,
    +									directed);
    +					graph.setSelectionCells(path);
    +				}
    +				else
    +				{
    +					JOptionPane.showMessageDialog(graphComponent,
    +							mxResources.get("noSourceAndTargetSelected"));
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class SelectSpanningTreeAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected boolean directed;
    +
    +		/**
    +		 * 
    +		 */
    +		public SelectSpanningTreeAction(boolean directed)
    +		{
    +			this.directed = directed;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				mxGraph graph = graphComponent.getGraph();
    +				mxIGraphModel model = graph.getModel();
    +
    +				Object parent = graph.getDefaultParent();
    +				Object[] cells = graph.getSelectionCells();
    +
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (model.getChildCount(cells[i]) > 0)
    +					{
    +						parent = cells[i];
    +						break;
    +					}
    +				}
    +
    +				Object[] v = graph.getChildVertices(parent);
    +				Object[] mst = mxGraphAnalysis.getInstance()
    +						.getMinimumSpanningTree(graph, v,
    +								new mxDistanceCostFunction(), directed);
    +				graph.setSelectionCells(mst);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ToggleDirtyAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				graphComponent.showDirtyRectangle = !graphComponent.showDirtyRectangle;
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ToggleConnectModeAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				mxConnectionHandler handler = graphComponent
    +						.getConnectionHandler();
    +				handler.setHandleEnabled(!handler.isHandleEnabled());
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ToggleCreateTargetItem extends JCheckBoxMenuItem
    +	{
    +		/**
    +		 * 
    +		 */
    +		public ToggleCreateTargetItem(final BasicGraphEditor editor, String name)
    +		{
    +			super(name);
    +			setSelected(true);
    +
    +			addActionListener(new ActionListener()
    +			{
    +				/**
    +				 * 
    +				 */
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					mxGraphComponent graphComponent = editor
    +							.getGraphComponent();
    +
    +					if (graphComponent != null)
    +					{
    +						mxConnectionHandler handler = graphComponent
    +								.getConnectionHandler();
    +						handler.setCreateTarget(!handler.isCreateTarget());
    +						setSelected(handler.isCreateTarget());
    +					}
    +				}
    +			});
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class PromptPropertyAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected Object target;
    +
    +		/**
    +		 * 
    +		 */
    +		protected String fieldname, message;
    +
    +		/**
    +		 * 
    +		 */
    +		public PromptPropertyAction(Object target, String message)
    +		{
    +			this(target, message, message);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public PromptPropertyAction(Object target, String message,
    +				String fieldname)
    +		{
    +			this.target = target;
    +			this.message = message;
    +			this.fieldname = fieldname;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof Component)
    +			{
    +				try
    +				{
    +					Method getter = target.getClass().getMethod(
    +							"get" + fieldname);
    +					Object current = getter.invoke(target);
    +
    +					// TODO: Support other atomic types
    +					if (current instanceof Integer)
    +					{
    +						Method setter = target.getClass().getMethod(
    +								"set" + fieldname, new Class[] { int.class });
    +
    +						String value = (String) JOptionPane.showInputDialog(
    +								(Component) e.getSource(), "Value", message,
    +								JOptionPane.PLAIN_MESSAGE, null, null, current);
    +
    +						if (value != null)
    +						{
    +							setter.invoke(target, Integer.parseInt(value));
    +						}
    +					}
    +				}
    +				catch (Exception ex)
    +				{
    +					ex.printStackTrace();
    +				}
    +			}
    +
    +			// Repaints the graph component
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				graphComponent.repaint();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class TogglePropertyItem extends JCheckBoxMenuItem
    +	{
    +		/**
    +		 * 
    +		 */
    +		public TogglePropertyItem(Object target, String name, String fieldname)
    +		{
    +			this(target, name, fieldname, false);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public TogglePropertyItem(Object target, String name, String fieldname,
    +				boolean refresh)
    +		{
    +			this(target, name, fieldname, refresh, null);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public TogglePropertyItem(final Object target, String name,
    +				final String fieldname, final boolean refresh,
    +				ActionListener listener)
    +		{
    +			super(name);
    +
    +			// Since action listeners are processed last to first we add the given
    +			// listener here which means it will be processed after the one below
    +			if (listener != null)
    +			{
    +				addActionListener(listener);
    +			}
    +
    +			addActionListener(new ActionListener()
    +			{
    +				/**
    +				 * 
    +				 */
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					execute(target, fieldname, refresh);
    +				}
    +			});
    +
    +			PropertyChangeListener propertyChangeListener = new PropertyChangeListener()
    +			{
    +
    +				/*
    +				 * (non-Javadoc)
    +				 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
    +				 */
    +				public void propertyChange(PropertyChangeEvent evt)
    +				{
    +					if (evt.getPropertyName().equalsIgnoreCase(fieldname))
    +					{
    +						update(target, fieldname);
    +					}
    +				}
    +			};
    +
    +			if (target instanceof mxGraphComponent)
    +			{
    +				((mxGraphComponent) target)
    +						.addPropertyChangeListener(propertyChangeListener);
    +			}
    +			else if (target instanceof mxGraph)
    +			{
    +				((mxGraph) target)
    +						.addPropertyChangeListener(propertyChangeListener);
    +			}
    +
    +			update(target, fieldname);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void update(Object target, String fieldname)
    +		{
    +			if (target != null && fieldname != null)
    +			{
    +				try
    +				{
    +					Method getter = target.getClass().getMethod(
    +							"is" + fieldname);
    +
    +					if (getter != null)
    +					{
    +						Object current = getter.invoke(target);
    +
    +						if (current instanceof Boolean)
    +						{
    +							setSelected(((Boolean) current).booleanValue());
    +						}
    +					}
    +				}
    +				catch (Exception e)
    +				{
    +					// ignore
    +				}
    +			}
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void execute(Object target, String fieldname, boolean refresh)
    +		{
    +			if (target != null && fieldname != null)
    +			{
    +				try
    +				{
    +					Method getter = target.getClass().getMethod(
    +							"is" + fieldname);
    +					Method setter = target.getClass().getMethod(
    +							"set" + fieldname, new Class[] { boolean.class });
    +
    +					Object current = getter.invoke(target);
    +
    +					if (current instanceof Boolean)
    +					{
    +						boolean value = !((Boolean) current).booleanValue();
    +						setter.invoke(target, value);
    +						setSelected(value);
    +					}
    +
    +					if (refresh)
    +					{
    +						mxGraph graph = null;
    +
    +						if (target instanceof mxGraph)
    +						{
    +							graph = (mxGraph) target;
    +						}
    +						else if (target instanceof mxGraphComponent)
    +						{
    +							graph = ((mxGraphComponent) target).getGraph();
    +						}
    +
    +						graph.refresh();
    +					}
    +				}
    +				catch (Exception e)
    +				{
    +					// ignore
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class HistoryAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected boolean undo;
    +
    +		/**
    +		 * 
    +		 */
    +		public HistoryAction(boolean undo)
    +		{
    +			this.undo = undo;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			BasicGraphEditor editor = getEditor(e);
    +
    +			if (editor != null)
    +			{
    +				if (undo)
    +				{
    +					editor.getUndoManager().undo();
    +				}
    +				else
    +				{
    +					editor.getUndoManager().redo();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class FontStyleAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected boolean bold;
    +
    +		/**
    +		 * 
    +		 */
    +		public FontStyleAction(boolean bold)
    +		{
    +			this.bold = bold;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				Component editorComponent = null;
    +
    +				if (graphComponent.getCellEditor() instanceof mxCellEditor)
    +				{
    +					editorComponent = ((mxCellEditor) graphComponent
    +							.getCellEditor()).getEditor();
    +				}
    +
    +				if (editorComponent instanceof JEditorPane)
    +				{
    +					JEditorPane editorPane = (JEditorPane) editorComponent;
    +					int start = editorPane.getSelectionStart();
    +					int ende = editorPane.getSelectionEnd();
    +					String text = editorPane.getSelectedText();
    +
    +					if (text == null)
    +					{
    +						text = "";
    +					}
    +
    +					try
    +					{
    +						HTMLEditorKit editorKit = new HTMLEditorKit();
    +						HTMLDocument document = (HTMLDocument) editorPane
    +								.getDocument();
    +						document.remove(start, (ende - start));
    +						editorKit.insertHTML(document, start, ((bold) ? "<b>"
    +								: "<i>") + text + ((bold) ? "</b>" : "</i>"),
    +								0, 0, (bold) ? HTML.Tag.B : HTML.Tag.I);
    +					}
    +					catch (Exception ex)
    +					{
    +						ex.printStackTrace();
    +					}
    +
    +					editorPane.requestFocus();
    +					editorPane.select(start, ende);
    +				}
    +				else
    +				{
    +					mxIGraphModel model = graphComponent.getGraph().getModel();
    +					model.beginUpdate();
    +					try
    +					{
    +						graphComponent.stopEditing(false);
    +						graphComponent.getGraph().toggleCellStyleFlags(
    +								mxConstants.STYLE_FONTSTYLE,
    +								(bold) ? mxConstants.FONT_BOLD
    +										: mxConstants.FONT_ITALIC);
    +					}
    +					finally
    +					{
    +						model.endUpdate();
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class WarningAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				Object[] cells = graphComponent.getGraph().getSelectionCells();
    +
    +				if (cells != null && cells.length > 0)
    +				{
    +					String warning = JOptionPane.showInputDialog(mxResources
    +							.get("enterWarningMessage"));
    +
    +					for (int i = 0; i < cells.length; i++)
    +					{
    +						graphComponent.setCellWarning(cells[i], warning);
    +					}
    +				}
    +				else
    +				{
    +					JOptionPane.showMessageDialog(graphComponent,
    +							mxResources.get("noCellSelected"));
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class NewAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			BasicGraphEditor editor = getEditor(e);
    +
    +			if (editor != null)
    +			{
    +				if (!editor.isModified()
    +						|| JOptionPane.showConfirmDialog(editor,
    +								mxResources.get("loseChanges")) == JOptionPane.YES_OPTION)
    +				{
    +					mxGraph graph = editor.getGraphComponent().getGraph();
    +
    +					// Check modified flag and display save dialog
    +					mxCell root = new mxCell();
    +					root.insert(new mxCell());
    +					graph.getModel().setRoot(root);
    +
    +					editor.setModified(false);
    +					editor.setCurrentFile(null);
    +					editor.getGraphComponent().zoomAndCenter();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ImportAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String lastDir;
    +
    +		/**
    +		 * Loads and registers the shape as a new shape in mxGraphics2DCanvas and
    +		 * adds a new entry to use that shape in the specified palette
    +		 * @param palette The palette to add the shape to.
    +		 * @param nodeXml The raw XML of the shape
    +		 * @param path The path to the directory the shape exists in
    +		 * @return the string name of the shape
    +		 */
    +		public static String addStencilShape(EditorPalette palette,
    +				String nodeXml, String path)
    +		{
    +
    +			// Some editors place a 3 byte BOM at the start of files
    +			// Ensure the first char is a "<"
    +			int lessthanIndex = nodeXml.indexOf("<");
    +			nodeXml = nodeXml.substring(lessthanIndex);
    +			mxStencilShape newShape = new mxStencilShape(nodeXml);
    +			String name = newShape.getName();
    +			ImageIcon icon = null;
    +
    +			if (path != null)
    +			{
    +				String iconPath = path + newShape.getIconPath();
    +				icon = new ImageIcon(iconPath);
    +			}
    +
    +			// Registers the shape in the canvas shape registry
    +			mxGraphics2DCanvas.putShape(name, newShape);
    +
    +			if (palette != null && icon != null)
    +			{
    +				palette.addTemplate(name, icon, "shape=" + name, 80, 80, "");
    +			}
    +
    +			return name;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			BasicGraphEditor editor = getEditor(e);
    +
    +			if (editor != null)
    +			{
    +				String wd = (lastDir != null) ? lastDir : System
    +						.getProperty("user.dir");
    +
    +				JFileChooser fc = new JFileChooser(wd);
    +
    +				fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    +
    +				// Adds file filter for Dia shape import
    +				fc.addChoosableFileFilter(new DefaultFileFilter(".shape",
    +						"Dia Shape " + mxResources.get("file") + " (.shape)"));
    +
    +				int rc = fc.showDialog(null, mxResources.get("importStencil"));
    +
    +				if (rc == JFileChooser.APPROVE_OPTION)
    +				{
    +					lastDir = fc.getSelectedFile().getParent();
    +
    +					try
    +					{
    +						if (fc.getSelectedFile().isDirectory())
    +						{
    +							EditorPalette palette = editor.insertPalette(fc
    +									.getSelectedFile().getName());
    +
    +							for (File f : fc.getSelectedFile().listFiles(
    +									new FilenameFilter()
    +									{
    +										public boolean accept(File dir,
    +												String name)
    +										{
    +											return name.toLowerCase().endsWith(
    +													".shape");
    +										}
    +									}))
    +							{
    +								String nodeXml = mxUtils.readFile(f
    +										.getAbsolutePath());
    +								addStencilShape(palette, nodeXml, f.getParent()
    +										+ File.separator);
    +							}
    +
    +							JComponent scrollPane = (JComponent) palette
    +									.getParent().getParent();
    +							editor.getLibraryPane().setSelectedComponent(
    +									scrollPane);
    +
    +							// FIXME: Need to update the size of the palette to force a layout
    +							// update. Re/in/validate of palette or parent does not work.
    +							//editor.getLibraryPane().revalidate();
    +						}
    +						else
    +						{
    +							String nodeXml = mxUtils.readFile(fc
    +									.getSelectedFile().getAbsolutePath());
    +							String name = addStencilShape(null, nodeXml, null);
    +
    +							JOptionPane.showMessageDialog(editor, mxResources
    +									.get("stencilImported",
    +											new String[] { name }));
    +						}
    +					}
    +					catch (IOException e1)
    +					{
    +						e1.printStackTrace();
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class OpenAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String lastDir;
    +
    +		/**
    +		 * 
    +		 */
    +		protected void resetEditor(BasicGraphEditor editor)
    +		{
    +			editor.setModified(false);
    +			editor.getUndoManager().clear();
    +			editor.getGraphComponent().zoomAndCenter();
    +		}
    +
    +		/**
    +		 * Reads XML+PNG format.
    +		 */
    +		protected void openXmlPng(BasicGraphEditor editor, File file)
    +				throws IOException
    +		{
    +			Map<String, String> text = mxPngTextDecoder
    +					.decodeCompressedText(new FileInputStream(file));
    +
    +			if (text != null)
    +			{
    +				String value = text.get("mxGraphModel");
    +
    +				if (value != null)
    +				{
    +					Document document = mxXmlUtils.parseXml(URLDecoder.decode(
    +							value, "UTF-8"));
    +					mxCodec codec = new mxCodec(document);
    +					codec.decode(document.getDocumentElement(), editor
    +							.getGraphComponent().getGraph().getModel());
    +					editor.setCurrentFile(file);
    +					resetEditor(editor);
    +
    +					return;
    +				}
    +			}
    +
    +			JOptionPane.showMessageDialog(editor,
    +					mxResources.get("imageContainsNoDiagramData"));
    +		}
    +
    +		/**
    +		 * @throws IOException
    +		 *
    +		 */
    +		protected void openGD(BasicGraphEditor editor, File file,
    +				mxGdDocument document)
    +		{
    +			mxGraph graph = editor.getGraphComponent().getGraph();
    +
    +			// Replaces file extension with .mxe
    +			String filename = file.getName();
    +			filename = filename.substring(0, filename.length() - 4) + ".mxe";
    +
    +			if (new File(filename).exists()
    +					&& JOptionPane.showConfirmDialog(editor,
    +							mxResources.get("overwriteExistingFile")) != JOptionPane.YES_OPTION)
    +			{
    +				return;
    +			}
    +
    +			((mxGraphModel) graph.getModel()).clear();
    +			mxGdCodec.decode(document, graph);
    +			editor.getGraphComponent().zoomAndCenter();
    +			editor.setCurrentFile(new File(lastDir + "/" + filename));
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			BasicGraphEditor editor = getEditor(e);
    +
    +			if (editor != null)
    +			{
    +				if (!editor.isModified()
    +						|| JOptionPane.showConfirmDialog(editor,
    +								mxResources.get("loseChanges")) == JOptionPane.YES_OPTION)
    +				{
    +					mxGraph graph = editor.getGraphComponent().getGraph();
    +
    +					if (graph != null)
    +					{
    +						String wd = (lastDir != null) ? lastDir : System
    +								.getProperty("user.dir");
    +
    +						JFileChooser fc = new JFileChooser(wd);
    +
    +						// Adds file filter for supported file format
    +						DefaultFileFilter defaultFilter = new DefaultFileFilter(
    +								".mxe", mxResources.get("allSupportedFormats")
    +										+ " (.mxe, .png, .vdx)")
    +						{
    +
    +							public boolean accept(File file)
    +							{
    +								String lcase = file.getName().toLowerCase();
    +
    +								return super.accept(file)
    +										|| lcase.endsWith(".png")
    +										|| lcase.endsWith(".vdx");
    +							}
    +						};
    +						fc.addChoosableFileFilter(defaultFilter);
    +
    +						fc.addChoosableFileFilter(new DefaultFileFilter(".mxe",
    +								"mxGraph Editor " + mxResources.get("file")
    +										+ " (.mxe)"));
    +						fc.addChoosableFileFilter(new DefaultFileFilter(".png",
    +								"PNG+XML  " + mxResources.get("file")
    +										+ " (.png)"));
    +
    +						// Adds file filter for VDX import
    +						fc.addChoosableFileFilter(new DefaultFileFilter(".vdx",
    +								"XML Drawing  " + mxResources.get("file")
    +										+ " (.vdx)"));
    +
    +						// Adds file filter for GD import
    +						fc.addChoosableFileFilter(new DefaultFileFilter(".txt",
    +								"Graph Drawing  " + mxResources.get("file")
    +										+ " (.txt)"));
    +
    +						fc.setFileFilter(defaultFilter);
    +
    +						int rc = fc.showDialog(null,
    +								mxResources.get("openFile"));
    +
    +						if (rc == JFileChooser.APPROVE_OPTION)
    +						{
    +							lastDir = fc.getSelectedFile().getParent();
    +
    +							try
    +							{
    +								if (fc.getSelectedFile().getAbsolutePath()
    +										.toLowerCase().endsWith(".png"))
    +								{
    +									openXmlPng(editor, fc.getSelectedFile());
    +								}
    +								else if (fc.getSelectedFile().getAbsolutePath()
    +										.toLowerCase().endsWith(".txt"))
    +								{
    +									mxGdDocument document = new mxGdDocument();
    +									document.parse(mxUtils.readFile(fc
    +											.getSelectedFile()
    +											.getAbsolutePath()));
    +									openGD(editor, fc.getSelectedFile(),
    +											document);
    +								}
    +								else
    +								{
    +									Document document = mxXmlUtils
    +											.parseXml(mxUtils.readFile(fc
    +													.getSelectedFile()
    +													.getAbsolutePath()));
    +
    +									mxCodec codec = new mxCodec(document);
    +									codec.decode(
    +											document.getDocumentElement(),
    +											graph.getModel());
    +									editor.setCurrentFile(fc
    +											.getSelectedFile());
    +
    +									resetEditor(editor);
    +								}
    +							}
    +							catch (IOException ex)
    +							{
    +								ex.printStackTrace();
    +								JOptionPane.showMessageDialog(
    +										editor.getGraphComponent(),
    +										ex.toString(),
    +										mxResources.get("error"),
    +										JOptionPane.ERROR_MESSAGE);
    +							}
    +						}
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ToggleAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String key;
    +
    +		/**
    +		 * 
    +		 */
    +		protected boolean defaultValue;
    +
    +		/**
    +		 * 
    +		 * @param key
    +		 */
    +		public ToggleAction(String key)
    +		{
    +			this(key, false);
    +		}
    +
    +		/**
    +		 * 
    +		 * @param key
    +		 */
    +		public ToggleAction(String key, boolean defaultValue)
    +		{
    +			this.key = key;
    +			this.defaultValue = defaultValue;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = mxGraphActions.getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				graph.toggleCellStyles(key, defaultValue);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class SetLabelPositionAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String labelPosition, alignment;
    +
    +		/**
    +		 * 
    +		 * @param key
    +		 */
    +		public SetLabelPositionAction(String labelPosition, String alignment)
    +		{
    +			this.labelPosition = labelPosition;
    +			this.alignment = alignment;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = mxGraphActions.getGraph(e);
    +
    +			if (graph != null && !graph.isSelectionEmpty())
    +			{
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					// Checks the orientation of the alignment to use the correct constants
    +					if (labelPosition.equals(mxConstants.ALIGN_LEFT)
    +							|| labelPosition.equals(mxConstants.ALIGN_CENTER)
    +							|| labelPosition.equals(mxConstants.ALIGN_RIGHT))
    +					{
    +						graph.setCellStyles(mxConstants.STYLE_LABEL_POSITION,
    +								labelPosition);
    +						graph.setCellStyles(mxConstants.STYLE_ALIGN, alignment);
    +					}
    +					else
    +					{
    +						graph.setCellStyles(
    +								mxConstants.STYLE_VERTICAL_LABEL_POSITION,
    +								labelPosition);
    +						graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,
    +								alignment);
    +					}
    +				}
    +				finally
    +				{
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class SetStyleAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String value;
    +
    +		/**
    +		 * 
    +		 * @param key
    +		 */
    +		public SetStyleAction(String value)
    +		{
    +			this.value = value;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = mxGraphActions.getGraph(e);
    +
    +			if (graph != null && !graph.isSelectionEmpty())
    +			{
    +				graph.setCellStyle(value);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class KeyValueAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String key, value;
    +
    +		/**
    +		 * 
    +		 * @param key
    +		 */
    +		public KeyValueAction(String key)
    +		{
    +			this(key, null);
    +		}
    +
    +		/**
    +		 * 
    +		 * @param key
    +		 */
    +		public KeyValueAction(String key, String value)
    +		{
    +			this.key = key;
    +			this.value = value;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = mxGraphActions.getGraph(e);
    +
    +			if (graph != null && !graph.isSelectionEmpty())
    +			{
    +				graph.setCellStyles(key, value);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class PromptValueAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String key, message;
    +
    +		/**
    +		 * 
    +		 * @param key
    +		 */
    +		public PromptValueAction(String key, String message)
    +		{
    +			this.key = key;
    +			this.message = message;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof Component)
    +			{
    +				mxGraph graph = mxGraphActions.getGraph(e);
    +
    +				if (graph != null && !graph.isSelectionEmpty())
    +				{
    +					String value = (String) JOptionPane.showInputDialog(
    +							(Component) e.getSource(),
    +							mxResources.get("value"), message,
    +							JOptionPane.PLAIN_MESSAGE, null, null, "");
    +
    +					if (value != null)
    +					{
    +						if (value.equals(mxConstants.NONE))
    +						{
    +							value = null;
    +						}
    +
    +						graph.setCellStyles(key, value);
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class AlignCellsAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String align;
    +
    +		/**
    +		 * 
    +		 * @param key
    +		 */
    +		public AlignCellsAction(String align)
    +		{
    +			this.align = align;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = mxGraphActions.getGraph(e);
    +
    +			if (graph != null && !graph.isSelectionEmpty())
    +			{
    +				graph.alignCells(align);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class AutosizeAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = mxGraphActions.getGraph(e);
    +
    +			if (graph != null && !graph.isSelectionEmpty())
    +			{
    +				Object[] cells = graph.getSelectionCells();
    +				mxIGraphModel model = graph.getModel();
    +
    +				model.beginUpdate();
    +				try
    +				{
    +					for (int i = 0; i < cells.length; i++)
    +					{
    +						graph.updateCellSize(cells[i]);
    +					}
    +				}
    +				finally
    +				{
    +					model.endUpdate();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class ColorAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected String name, key;
    +
    +		/**
    +		 * 
    +		 * @param key
    +		 */
    +		public ColorAction(String name, String key)
    +		{
    +			this.name = name;
    +			this.key = key;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				mxGraph graph = graphComponent.getGraph();
    +
    +				if (!graph.isSelectionEmpty())
    +				{
    +					Color newColor = JColorChooser.showDialog(graphComponent,
    +							name, null);
    +
    +					if (newColor != null)
    +					{
    +						graph.setCellStyles(key, mxUtils.hexString(newColor));
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class BackgroundImageAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				String value = (String) JOptionPane.showInputDialog(
    +						graphComponent, mxResources.get("backgroundImage"),
    +						"URL", JOptionPane.PLAIN_MESSAGE, null, null,
    +						"http://www.callatecs.com/images/background2.JPG");
    +
    +				if (value != null)
    +				{
    +					if (value.length() == 0)
    +					{
    +						graphComponent.setBackgroundImage(null);
    +					}
    +					else
    +					{
    +						Image background = mxUtils.loadImage(value);
    +						// Incorrect URLs will result in no image.
    +						// TODO provide feedback that the URL is not correct
    +						if (background != null)
    +						{
    +							graphComponent.setBackgroundImage(new ImageIcon(
    +									background));
    +						}
    +					}
    +
    +					// Forces a repaint of the outline
    +					graphComponent.getGraph().repaint();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class BackgroundAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				Color newColor = JColorChooser.showDialog(graphComponent,
    +						mxResources.get("background"), null);
    +
    +				if (newColor != null)
    +				{
    +					graphComponent.getViewport().setOpaque(true);
    +					graphComponent.getViewport().setBackground(newColor);
    +				}
    +
    +				// Forces a repaint of the outline
    +				graphComponent.getGraph().repaint();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class PageBackgroundAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				Color newColor = JColorChooser.showDialog(graphComponent,
    +						mxResources.get("pageBackground"), null);
    +
    +				if (newColor != null)
    +				{
    +					graphComponent.setPageBackgroundColor(newColor);
    +				}
    +
    +				// Forces a repaint of the component
    +				graphComponent.repaint();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("serial")
    +	public static class StyleAction extends AbstractAction
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				mxGraphComponent graphComponent = (mxGraphComponent) e
    +						.getSource();
    +				mxGraph graph = graphComponent.getGraph();
    +				String initial = graph.getModel().getStyle(
    +						graph.getSelectionCell());
    +				String value = (String) JOptionPane.showInputDialog(
    +						graphComponent, mxResources.get("style"),
    +						mxResources.get("style"), JOptionPane.PLAIN_MESSAGE,
    +						null, null, initial);
    +
    +				if (value != null)
    +				{
    +					graph.setCellStyle(value);
    +				}
    +			}
    +		}
    +	}
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/EditorKeyboardHandler.java b/java/examples/com/mxgraph/examples/swing/editor/EditorKeyboardHandler.java
    new file mode 100644
    index 000000000..d9ddcb9e8
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/EditorKeyboardHandler.java
    @@ -0,0 +1,76 @@
    +/**
    + * $Id: EditorKeyboardHandler.java,v 1.1 2009-10-23 11:32:08 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.examples.swing.editor;
    +
    +import javax.swing.ActionMap;
    +import javax.swing.InputMap;
    +import javax.swing.JComponent;
    +import javax.swing.KeyStroke;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.handler.mxKeyboardHandler;
    +import com.mxgraph.swing.util.mxGraphActions;
    +
    +/**
    + * @author Administrator
    + * 
    + */
    +public class EditorKeyboardHandler extends mxKeyboardHandler
    +{
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 */
    +	public EditorKeyboardHandler(mxGraphComponent graphComponent)
    +	{
    +		super(graphComponent);
    +	}
    +
    +	/**
    +	 * Return JTree's input map.
    +	 */
    +	protected InputMap getInputMap(int condition)
    +	{
    +		InputMap map = super.getInputMap(condition);
    +
    +		if (condition == JComponent.WHEN_FOCUSED && map != null)
    +		{
    +			map.put(KeyStroke.getKeyStroke("control S"), "save");
    +			map.put(KeyStroke.getKeyStroke("control shift S"), "saveAs");
    +			map.put(KeyStroke.getKeyStroke("control N"), "new");
    +			map.put(KeyStroke.getKeyStroke("control O"), "open");
    +
    +			map.put(KeyStroke.getKeyStroke("control Z"), "undo");
    +			map.put(KeyStroke.getKeyStroke("control Y"), "redo");
    +			map
    +					.put(KeyStroke.getKeyStroke("control shift V"),
    +							"selectVertices");
    +			map.put(KeyStroke.getKeyStroke("control shift E"), "selectEdges");
    +		}
    +
    +		return map;
    +	}
    +
    +	/**
    +	 * Return the mapping between JTree's input map and JGraph's actions.
    +	 */
    +	protected ActionMap createActionMap()
    +	{
    +		ActionMap map = super.createActionMap();
    +
    +		map.put("save", new EditorActions.SaveAction(false));
    +		map.put("saveAs", new EditorActions.SaveAction(true));
    +		map.put("new", new EditorActions.NewAction());
    +		map.put("open", new EditorActions.OpenAction());
    +		map.put("undo", new EditorActions.HistoryAction(true));
    +		map.put("redo", new EditorActions.HistoryAction(false));
    +		map.put("selectVertices", mxGraphActions.getSelectVerticesAction());
    +		map.put("selectEdges", mxGraphActions.getSelectEdgesAction());
    +
    +		return map;
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/EditorMenuBar.java b/java/examples/com/mxgraph/examples/swing/editor/EditorMenuBar.java
    new file mode 100644
    index 000000000..4d278709a
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/EditorMenuBar.java
    @@ -0,0 +1,892 @@
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.event.ActionEvent;
    +import java.awt.event.ActionListener;
    +
    +import javax.swing.AbstractAction;
    +import javax.swing.JMenu;
    +import javax.swing.JMenuBar;
    +import javax.swing.JMenuItem;
    +import javax.swing.SwingUtilities;
    +import javax.swing.TransferHandler;
    +import javax.swing.UIManager;
    +
    +import com.mxgraph.examples.swing.editor.EditorActions.AlignCellsAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.AutosizeAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.BackgroundAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.BackgroundImageAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ColorAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ExitAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.GridColorAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.GridStyleAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.HistoryAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ImportAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.KeyValueAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.NewAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.OpenAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PageBackgroundAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PageSetupAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PrintAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PromptPropertyAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PromptValueAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SaveAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ScaleAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SelectShortestPathAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SelectSpanningTreeAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SetLabelPositionAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SetStyleAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.StyleAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.StylesheetAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleConnectModeAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleCreateTargetItem;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleDirtyAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleGridItem;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleOutlineItem;
    +import com.mxgraph.examples.swing.editor.EditorActions.TogglePropertyItem;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleRulersItem;
    +import com.mxgraph.examples.swing.editor.EditorActions.WarningAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ZoomPolicyAction;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxGraphActions;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.view.mxGraph;
    +
    +public class EditorMenuBar extends JMenuBar
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 4060203894740766714L;
    +
    +	@SuppressWarnings("serial")
    +	public EditorMenuBar(final BasicGraphEditor editor)
    +	{
    +		final mxGraphComponent graphComponent = editor.getGraphComponent();
    +		final mxGraph graph = graphComponent.getGraph();
    +		JMenu menu = null;
    +		JMenu submenu = null;
    +
    +		// Creates the file menu
    +		menu = add(new JMenu(mxResources.get("file")));
    +
    +		menu.add(editor.bind(mxResources.get("new"), new NewAction(),
    +				"/com/mxgraph/examples/swing/images/new.gif"));
    +		menu.add(editor.bind(mxResources.get("openFile"), new OpenAction(),
    +				"/com/mxgraph/examples/swing/images/open.gif"));
    +		menu.add(editor.bind(mxResources.get("importStencil"), new ImportAction(),
    +				"/com/mxgraph/examples/swing/images/open.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("save"), new SaveAction(false),
    +				"/com/mxgraph/examples/swing/images/save.gif"));
    +		menu.add(editor.bind(mxResources.get("saveAs"), new SaveAction(true),
    +				"/com/mxgraph/examples/swing/images/saveas.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("pageSetup"),
    +				new PageSetupAction(),
    +				"/com/mxgraph/examples/swing/images/pagesetup.gif"));
    +		menu.add(editor.bind(mxResources.get("print"), new PrintAction(),
    +				"/com/mxgraph/examples/swing/images/print.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("exit"), new ExitAction()));
    +
    +		// Creates the edit menu
    +		menu = add(new JMenu(mxResources.get("edit")));
    +
    +		menu.add(editor.bind(mxResources.get("undo"), new HistoryAction(true),
    +				"/com/mxgraph/examples/swing/images/undo.gif"));
    +		menu.add(editor.bind(mxResources.get("redo"), new HistoryAction(false),
    +				"/com/mxgraph/examples/swing/images/redo.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("cut"), TransferHandler
    +				.getCutAction(), "/com/mxgraph/examples/swing/images/cut.gif"));
    +		menu.add(editor
    +				.bind(mxResources.get("copy"), TransferHandler.getCopyAction(),
    +						"/com/mxgraph/examples/swing/images/copy.gif"));
    +		menu.add(editor.bind(mxResources.get("paste"), TransferHandler
    +				.getPasteAction(),
    +				"/com/mxgraph/examples/swing/images/paste.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("delete"), mxGraphActions
    +				.getDeleteAction(),
    +				"/com/mxgraph/examples/swing/images/delete.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("selectAll"), mxGraphActions
    +				.getSelectAllAction()));
    +		menu.add(editor.bind(mxResources.get("selectNone"), mxGraphActions
    +				.getSelectNoneAction()));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("warning"), new WarningAction()));
    +		menu.add(editor.bind(mxResources.get("edit"), mxGraphActions
    +				.getEditAction()));
    +
    +		// Creates the view menu
    +		menu = add(new JMenu(mxResources.get("view")));
    +
    +		JMenuItem item = menu.add(new TogglePropertyItem(graphComponent,
    +				mxResources.get("pageLayout"), "PageVisible", true,
    +				new ActionListener()
    +				{
    +					/**
    +					 * 
    +					 */
    +					public void actionPerformed(ActionEvent e)
    +					{
    +						if (graphComponent.isPageVisible()
    +								&& graphComponent.isCenterPage())
    +						{
    +							graphComponent.zoomAndCenter();
    +						}
    +						else
    +						{
    +							graphComponent.getGraphControl()
    +									.updatePreferredSize();
    +						}
    +					}
    +				}));
    +
    +		item.addActionListener(new ActionListener()
    +		{
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				if (e.getSource() instanceof TogglePropertyItem)
    +				{
    +					final mxGraphComponent graphComponent = editor
    +							.getGraphComponent();
    +					TogglePropertyItem toggleItem = (TogglePropertyItem) e
    +							.getSource();
    +
    +					if (toggleItem.isSelected())
    +					{
    +						// Scrolls the view to the center
    +						SwingUtilities.invokeLater(new Runnable()
    +						{
    +							/*
    +							 * (non-Javadoc)
    +							 * @see java.lang.Runnable#run()
    +							 */
    +							public void run()
    +							{
    +								graphComponent.scrollToCenter(true);
    +								graphComponent.scrollToCenter(false);
    +							}
    +						});
    +					}
    +					else
    +					{
    +						// Resets the translation of the view
    +						mxPoint tr = graphComponent.getGraph().getView()
    +								.getTranslate();
    +
    +						if (tr.getX() != 0 || tr.getY() != 0)
    +						{
    +							graphComponent.getGraph().getView().setTranslate(
    +									new mxPoint());
    +						}
    +					}
    +				}
    +			}
    +		});
    +
    +		menu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("antialias"), "AntiAlias", true));
    +
    +		menu.addSeparator();
    +
    +		menu.add(new ToggleGridItem(editor, mxResources.get("grid")));
    +		menu.add(new ToggleRulersItem(editor, mxResources.get("rulers")));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("zoom")));
    +
    +		submenu.add(editor.bind("400%", new ScaleAction(4)));
    +		submenu.add(editor.bind("200%", new ScaleAction(2)));
    +		submenu.add(editor.bind("150%", new ScaleAction(1.5)));
    +		submenu.add(editor.bind("100%", new ScaleAction(1)));
    +		submenu.add(editor.bind("75%", new ScaleAction(0.75)));
    +		submenu.add(editor.bind("50%", new ScaleAction(0.5)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("custom"), new ScaleAction(0)));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("zoomIn"), mxGraphActions
    +				.getZoomInAction()));
    +		menu.add(editor.bind(mxResources.get("zoomOut"), mxGraphActions
    +				.getZoomOutAction()));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("page"), new ZoomPolicyAction(
    +				mxGraphComponent.ZOOM_POLICY_PAGE)));
    +		menu.add(editor.bind(mxResources.get("width"), new ZoomPolicyAction(
    +				mxGraphComponent.ZOOM_POLICY_WIDTH)));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("actualSize"), mxGraphActions
    +				.getZoomActualAction()));
    +
    +		// Creates the format menu
    +		menu = add(new JMenu(mxResources.get("format")));
    +
    +		populateFormatMenu(menu, editor);
    +
    +		// Creates the shape menu
    +		menu = add(new JMenu(mxResources.get("shape")));
    +
    +		populateShapeMenu(menu, editor);
    +
    +		// Creates the diagram menu
    +		menu = add(new JMenu(mxResources.get("diagram")));
    +
    +		menu.add(new ToggleOutlineItem(editor, mxResources.get("outline")));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("background")));
    +
    +		submenu.add(editor.bind(mxResources.get("backgroundColor"),
    +				new BackgroundAction()));
    +		submenu.add(editor.bind(mxResources.get("backgroundImage"),
    +				new BackgroundImageAction()));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("pageBackground"),
    +				new PageBackgroundAction()));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("grid")));
    +
    +		submenu.add(editor.bind(mxResources.get("gridSize"),
    +				new PromptPropertyAction(graph, "Grid Size", "GridSize")));
    +		submenu.add(editor.bind(mxResources.get("gridColor"),
    +				new GridColorAction()));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("dashed"), new GridStyleAction(
    +				mxGraphComponent.GRID_STYLE_DASHED)));
    +		submenu.add(editor.bind(mxResources.get("dot"), new GridStyleAction(
    +				mxGraphComponent.GRID_STYLE_DOT)));
    +		submenu.add(editor.bind(mxResources.get("line"), new GridStyleAction(
    +				mxGraphComponent.GRID_STYLE_LINE)));
    +		submenu.add(editor.bind(mxResources.get("cross"), new GridStyleAction(
    +				mxGraphComponent.GRID_STYLE_CROSS)));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("layout")));
    +
    +		submenu.add(editor.graphLayout("verticalHierarchical", true));
    +		submenu.add(editor.graphLayout("horizontalHierarchical", true));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("verticalPartition", false));
    +		submenu.add(editor.graphLayout("horizontalPartition", false));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("verticalStack", false));
    +		submenu.add(editor.graphLayout("horizontalStack", false));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("verticalTree", true));
    +		submenu.add(editor.graphLayout("horizontalTree", true));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("placeEdgeLabels", false));
    +		submenu.add(editor.graphLayout("parallelEdges", false));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("organicLayout", true));
    +		submenu.add(editor.graphLayout("circleLayout", true));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("selection")));
    +
    +		submenu.add(editor.bind(mxResources.get("selectPath"),
    +				new SelectShortestPathAction(false)));
    +		submenu.add(editor.bind(mxResources.get("selectDirectedPath"),
    +				new SelectShortestPathAction(true)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("selectTree"),
    +				new SelectSpanningTreeAction(false)));
    +		submenu.add(editor.bind(mxResources.get("selectDirectedTree"),
    +				new SelectSpanningTreeAction(true)));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("stylesheet")));
    +
    +		submenu
    +				.add(editor
    +						.bind(
    +								mxResources.get("basicStyle"),
    +								new StylesheetAction(
    +										"/com/mxgraph/examples/swing/resources/basic-style.xml")));
    +		submenu
    +				.add(editor
    +						.bind(
    +								mxResources.get("defaultStyle"),
    +								new StylesheetAction(
    +										"/com/mxgraph/examples/swing/resources/default-style.xml")));
    +
    +		// Creates the options menu
    +		menu = add(new JMenu(mxResources.get("options")));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("display")));
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("buffering"), "TripleBuffered", true));
    +
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("preferPageSize"), "PreferPageSize", true,
    +				new ActionListener()
    +				{
    +					/**
    +					 * 
    +					 */
    +					public void actionPerformed(ActionEvent e)
    +					{
    +						graphComponent.zoomAndCenter();
    +					}
    +				}));
    +
    +		// TODO: This feature is not yet implemented
    +		//submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +		//		.get("pageBreaks"), "PageBreaksVisible", true));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("tolerance"),
    +				new PromptPropertyAction(graphComponent, "Tolerance")));
    +
    +		submenu.add(editor.bind(mxResources.get("dirty"),
    +				new ToggleDirtyAction()));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("zoom")));
    +
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("centerZoom"), "CenterZoom", true));
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("zoomToSelection"), "KeepSelectionVisibleOnZoom", true));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("centerPage"), "CenterPage", true, new ActionListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				if (graphComponent.isPageVisible()
    +						&& graphComponent.isCenterPage())
    +				{
    +					graphComponent.zoomAndCenter();
    +				}
    +			}
    +		}));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("dragAndDrop")));
    +
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("dragEnabled"), "DragEnabled"));
    +		submenu.add(new TogglePropertyItem(graph, mxResources
    +				.get("dropEnabled"), "DropEnabled"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(new TogglePropertyItem(graphComponent.getGraphHandler(),
    +				mxResources.get("imagePreview"), "ImagePreview"));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("labels")));
    +
    +		submenu.add(new TogglePropertyItem(graph,
    +				mxResources.get("htmlLabels"), "HtmlLabels", true));
    +		submenu.add(new TogglePropertyItem(graph,
    +				mxResources.get("showLabels"), "LabelsVisible", true));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(new TogglePropertyItem(graph, mxResources
    +				.get("moveEdgeLabels"), "EdgeLabelsMovable"));
    +		submenu.add(new TogglePropertyItem(graph, mxResources
    +				.get("moveVertexLabels"), "VertexLabelsMovable"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("handleReturn"), "EnterStopsCellEditing"));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("connections")));
    +
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("connectable"), "Connectable"));
    +		submenu.add(new TogglePropertyItem(graph, mxResources
    +				.get("connectableEdges"), "ConnectableEdges"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(new ToggleCreateTargetItem(editor, mxResources
    +				.get("createTarget")));
    +		submenu.add(new TogglePropertyItem(graph, mxResources
    +				.get("disconnectOnMove"), "DisconnectOnMove"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("connectMode"),
    +				new ToggleConnectModeAction()));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("validation")));
    +
    +		submenu.add(new TogglePropertyItem(graph, mxResources
    +				.get("allowDanglingEdges"), "AllowDanglingEdges"));
    +		submenu.add(new TogglePropertyItem(graph, mxResources
    +				.get("cloneInvalidEdges"), "CloneInvalidEdges"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(new TogglePropertyItem(graph,
    +				mxResources.get("allowLoops"), "AllowLoops"));
    +		submenu.add(new TogglePropertyItem(graph,
    +				mxResources.get("multigraph"), "Multigraph"));
    +
    +		// Creates the window menu
    +		menu = add(new JMenu(mxResources.get("window")));
    +
    +		UIManager.LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
    +
    +		for (int i = 0; i < lafs.length; i++)
    +		{
    +			final String clazz = lafs[i].getClassName();
    +			menu.add(new AbstractAction(lafs[i].getName())
    +			{
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					editor.setLookAndFeel(clazz);
    +				}
    +			});
    +		}
    +
    +		// Creates the help menu
    +		menu = add(new JMenu(mxResources.get("help")));
    +
    +		item = menu.add(new JMenuItem(mxResources.get("aboutGraphEditor")));
    +		item.addActionListener(new ActionListener()
    +		{
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				editor.about();
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Adds menu items to the given shape menu. This is factored out because
    +	 * the shape menu appears in the menubar and also in the popupmenu.
    +	 */
    +	public static void populateShapeMenu(JMenu menu, BasicGraphEditor editor)
    +	{
    +		menu.add(editor.bind(mxResources.get("home"), mxGraphActions
    +				.getHomeAction(),
    +				"/com/mxgraph/examples/swing/images/house.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("exitGroup"), mxGraphActions
    +				.getExitGroupAction(),
    +				"/com/mxgraph/examples/swing/images/up.gif"));
    +		menu.add(editor.bind(mxResources.get("enterGroup"), mxGraphActions
    +				.getEnterGroupAction(),
    +				"/com/mxgraph/examples/swing/images/down.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("group"), mxGraphActions
    +				.getGroupAction(),
    +				"/com/mxgraph/examples/swing/images/group.gif"));
    +		menu.add(editor.bind(mxResources.get("ungroup"), mxGraphActions
    +				.getUngroupAction(),
    +				"/com/mxgraph/examples/swing/images/ungroup.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("removeFromGroup"), mxGraphActions
    +				.getRemoveFromParentAction()));
    +
    +		menu.add(editor.bind(mxResources.get("updateGroupBounds"),
    +				mxGraphActions.getUpdateGroupBoundsAction()));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("collapse"), mxGraphActions
    +				.getCollapseAction(),
    +				"/com/mxgraph/examples/swing/images/collapse.gif"));
    +		menu.add(editor.bind(mxResources.get("expand"), mxGraphActions
    +				.getExpandAction(),
    +				"/com/mxgraph/examples/swing/images/expand.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("toBack"), mxGraphActions
    +				.getToBackAction(),
    +				"/com/mxgraph/examples/swing/images/toback.gif"));
    +		menu.add(editor.bind(mxResources.get("toFront"), mxGraphActions
    +				.getToFrontAction(),
    +				"/com/mxgraph/examples/swing/images/tofront.gif"));
    +
    +		menu.addSeparator();
    +
    +		JMenu submenu = (JMenu) menu.add(new JMenu(mxResources.get("align")));
    +
    +		submenu.add(editor.bind(mxResources.get("left"), new AlignCellsAction(
    +				mxConstants.ALIGN_LEFT),
    +				"/com/mxgraph/examples/swing/images/alignleft.gif"));
    +		submenu.add(editor.bind(mxResources.get("center"),
    +				new AlignCellsAction(mxConstants.ALIGN_CENTER),
    +				"/com/mxgraph/examples/swing/images/aligncenter.gif"));
    +		submenu.add(editor.bind(mxResources.get("right"), new AlignCellsAction(
    +				mxConstants.ALIGN_RIGHT),
    +				"/com/mxgraph/examples/swing/images/alignright.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("top"), new AlignCellsAction(
    +				mxConstants.ALIGN_TOP),
    +				"/com/mxgraph/examples/swing/images/aligntop.gif"));
    +		submenu.add(editor.bind(mxResources.get("middle"),
    +				new AlignCellsAction(mxConstants.ALIGN_MIDDLE),
    +				"/com/mxgraph/examples/swing/images/alignmiddle.gif"));
    +		submenu.add(editor.bind(mxResources.get("bottom"),
    +				new AlignCellsAction(mxConstants.ALIGN_BOTTOM),
    +				"/com/mxgraph/examples/swing/images/alignbottom.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu
    +				.add(editor.bind(mxResources.get("autosize"),
    +						new AutosizeAction()));
    +
    +	}
    +
    +	/**
    +	 * Adds menu items to the given format menu. This is factored out because
    +	 * the format menu appears in the menubar and also in the popupmenu.
    +	 */
    +	public static void populateFormatMenu(JMenu menu, BasicGraphEditor editor)
    +	{
    +		JMenu submenu = (JMenu) menu.add(new JMenu(mxResources
    +				.get("background")));
    +
    +		submenu.add(editor.bind(mxResources.get("fillcolor"), new ColorAction(
    +				"Fillcolor", mxConstants.STYLE_FILLCOLOR),
    +				"/com/mxgraph/examples/swing/images/fillcolor.gif"));
    +		submenu.add(editor.bind(mxResources.get("gradient"), new ColorAction(
    +				"Gradient", mxConstants.STYLE_GRADIENTCOLOR)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("image"),
    +				new PromptValueAction(mxConstants.STYLE_IMAGE, "Image")));
    +		submenu.add(editor.bind(mxResources.get("shadow"), new ToggleAction(
    +				mxConstants.STYLE_SHADOW)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("opacity"),
    +				new PromptValueAction(mxConstants.STYLE_OPACITY,
    +						"Opacity (0-100)")));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("label")));
    +
    +		submenu.add(editor.bind(mxResources.get("fontcolor"), new ColorAction(
    +				"Fontcolor", mxConstants.STYLE_FONTCOLOR),
    +				"/com/mxgraph/examples/swing/images/fontcolor.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("labelFill"), new ColorAction(
    +				"Label Fill", mxConstants.STYLE_LABEL_BACKGROUNDCOLOR)));
    +		submenu.add(editor.bind(mxResources.get("labelBorder"),
    +				new ColorAction("Label Border",
    +						mxConstants.STYLE_LABEL_BORDERCOLOR)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("rotateLabel"),
    +				new ToggleAction(mxConstants.STYLE_HORIZONTAL, true)));
    +
    +		submenu.add(editor.bind(mxResources.get("textOpacity"),
    +				new PromptValueAction(mxConstants.STYLE_TEXT_OPACITY,
    +						"Opacity (0-100)")));
    +
    +		submenu.addSeparator();
    +
    +		JMenu subsubmenu = (JMenu) submenu.add(new JMenu(mxResources
    +				.get("position")));
    +
    +		subsubmenu.add(editor.bind(mxResources.get("top"),
    +				new SetLabelPositionAction(mxConstants.ALIGN_TOP,
    +						mxConstants.ALIGN_BOTTOM)));
    +		subsubmenu.add(editor.bind(mxResources.get("middle"),
    +				new SetLabelPositionAction(mxConstants.ALIGN_MIDDLE,
    +						mxConstants.ALIGN_MIDDLE)));
    +		subsubmenu.add(editor.bind(mxResources.get("bottom"),
    +				new SetLabelPositionAction(mxConstants.ALIGN_BOTTOM,
    +						mxConstants.ALIGN_TOP)));
    +
    +		subsubmenu.addSeparator();
    +
    +		subsubmenu.add(editor.bind(mxResources.get("left"),
    +				new SetLabelPositionAction(mxConstants.ALIGN_LEFT,
    +						mxConstants.ALIGN_RIGHT)));
    +		subsubmenu.add(editor.bind(mxResources.get("center"),
    +				new SetLabelPositionAction(mxConstants.ALIGN_CENTER,
    +						mxConstants.ALIGN_CENTER)));
    +		subsubmenu.add(editor.bind(mxResources.get("right"),
    +				new SetLabelPositionAction(mxConstants.ALIGN_RIGHT,
    +						mxConstants.ALIGN_LEFT)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("wordWrap"),
    +				new KeyValueAction(mxConstants.STYLE_WHITE_SPACE, "wrap")));
    +		submenu.add(editor.bind(mxResources.get("noWordWrap"),
    +				new KeyValueAction(mxConstants.STYLE_WHITE_SPACE, null)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("hide"), new ToggleAction(
    +				mxConstants.STYLE_NOLABEL)));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("line")));
    +
    +		submenu.add(editor.bind(mxResources.get("linecolor"), new ColorAction(
    +				"Linecolor", mxConstants.STYLE_STROKECOLOR),
    +				"/com/mxgraph/examples/swing/images/linecolor.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("orthogonal"), new ToggleAction(
    +				mxConstants.STYLE_ORTHOGONAL)));
    +		submenu.add(editor.bind(mxResources.get("dashed"), new ToggleAction(
    +				mxConstants.STYLE_DASHED)));
    +
    +		submenu.addSeparator();
    +		
    +		submenu.add(editor.bind(mxResources.get("linewidth"),
    +				new PromptValueAction(mxConstants.STYLE_STROKEWIDTH,
    +						"Linewidth")));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("connector")));
    +
    +		submenu.add(editor.bind(mxResources.get("straight"),
    +				new SetStyleAction("straight"),
    +				"/com/mxgraph/examples/swing/images/straight.gif"));
    +
    +		submenu.add(editor.bind(mxResources.get("horizontal"),
    +				new SetStyleAction(""),
    +				"/com/mxgraph/examples/swing/images/connect.gif"));
    +		submenu.add(editor.bind(mxResources.get("vertical"),
    +				new SetStyleAction("vertical"),
    +				"/com/mxgraph/examples/swing/images/vertical.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("entityRelation"),
    +				new SetStyleAction("edgeStyle=mxEdgeStyle.EntityRelation"),
    +				"/com/mxgraph/examples/swing/images/entity.gif"));
    +		submenu.add(editor.bind(mxResources.get("arrow"), new SetStyleAction(
    +				"arrow"), "/com/mxgraph/examples/swing/images/arrow.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("plain"), new ToggleAction(
    +				mxConstants.STYLE_NOEDGESTYLE)));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("linestart")));
    +
    +		submenu.add(editor.bind(mxResources.get("open"), new KeyValueAction(
    +				mxConstants.STYLE_STARTARROW, mxConstants.ARROW_OPEN),
    +				"/com/mxgraph/examples/swing/images/open_start.gif"));
    +		submenu.add(editor.bind(mxResources.get("classic"), new KeyValueAction(
    +				mxConstants.STYLE_STARTARROW, mxConstants.ARROW_CLASSIC),
    +				"/com/mxgraph/examples/swing/images/classic_start.gif"));
    +		submenu.add(editor.bind(mxResources.get("block"), new KeyValueAction(
    +				mxConstants.STYLE_STARTARROW, mxConstants.ARROW_BLOCK),
    +				"/com/mxgraph/examples/swing/images/block_start.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("diamond"), new KeyValueAction(
    +				mxConstants.STYLE_STARTARROW, mxConstants.ARROW_DIAMOND),
    +				"/com/mxgraph/examples/swing/images/diamond_start.gif"));
    +		submenu.add(editor.bind(mxResources.get("oval"), new KeyValueAction(
    +				mxConstants.STYLE_STARTARROW, mxConstants.ARROW_OVAL),
    +				"/com/mxgraph/examples/swing/images/oval_start.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("none"), new KeyValueAction(
    +				mxConstants.STYLE_STARTARROW, mxConstants.NONE)));
    +		submenu.add(editor.bind(mxResources.get("size"), new PromptValueAction(
    +				mxConstants.STYLE_STARTSIZE, "Linestart Size")));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("lineend")));
    +
    +		submenu.add(editor.bind(mxResources.get("open"), new KeyValueAction(
    +				mxConstants.STYLE_ENDARROW, mxConstants.ARROW_OPEN),
    +				"/com/mxgraph/examples/swing/images/open_end.gif"));
    +		submenu.add(editor.bind(mxResources.get("classic"), new KeyValueAction(
    +				mxConstants.STYLE_ENDARROW, mxConstants.ARROW_CLASSIC),
    +				"/com/mxgraph/examples/swing/images/classic_end.gif"));
    +		submenu.add(editor.bind(mxResources.get("block"), new KeyValueAction(
    +				mxConstants.STYLE_ENDARROW, mxConstants.ARROW_BLOCK),
    +				"/com/mxgraph/examples/swing/images/block_end.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("diamond"), new KeyValueAction(
    +				mxConstants.STYLE_ENDARROW, mxConstants.ARROW_DIAMOND),
    +				"/com/mxgraph/examples/swing/images/diamond_end.gif"));
    +		submenu.add(editor.bind(mxResources.get("oval"), new KeyValueAction(
    +				mxConstants.STYLE_ENDARROW, mxConstants.ARROW_OVAL),
    +				"/com/mxgraph/examples/swing/images/oval_end.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("none"), new KeyValueAction(
    +				mxConstants.STYLE_ENDARROW, mxConstants.NONE)));
    +		submenu.add(editor.bind(mxResources.get("size"), new PromptValueAction(
    +				mxConstants.STYLE_ENDSIZE, "Lineend Size")));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("alignment")));
    +
    +		submenu.add(editor.bind(mxResources.get("left"), new KeyValueAction(
    +				mxConstants.STYLE_ALIGN, mxConstants.ALIGN_LEFT),
    +				"/com/mxgraph/examples/swing/images/left.gif"));
    +		submenu.add(editor.bind(mxResources.get("center"), new KeyValueAction(
    +				mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER),
    +				"/com/mxgraph/examples/swing/images/center.gif"));
    +		submenu.add(editor.bind(mxResources.get("right"), new KeyValueAction(
    +				mxConstants.STYLE_ALIGN, mxConstants.ALIGN_RIGHT),
    +				"/com/mxgraph/examples/swing/images/right.gif"));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("top"), new KeyValueAction(
    +				mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_TOP),
    +				"/com/mxgraph/examples/swing/images/top.gif"));
    +		submenu.add(editor.bind(mxResources.get("middle"), new KeyValueAction(
    +				mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE),
    +				"/com/mxgraph/examples/swing/images/middle.gif"));
    +		submenu.add(editor.bind(mxResources.get("bottom"), new KeyValueAction(
    +				mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_BOTTOM),
    +				"/com/mxgraph/examples/swing/images/bottom.gif"));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("spacing")));
    +
    +		submenu.add(editor.bind(mxResources.get("top"), new PromptValueAction(
    +				mxConstants.STYLE_SPACING_TOP, "Top Spacing")));
    +		submenu.add(editor.bind(mxResources.get("right"),
    +				new PromptValueAction(mxConstants.STYLE_SPACING_RIGHT,
    +						"Right Spacing")));
    +		submenu.add(editor.bind(mxResources.get("bottom"),
    +				new PromptValueAction(mxConstants.STYLE_SPACING_BOTTOM,
    +						"Bottom Spacing")));
    +		submenu.add(editor.bind(mxResources.get("left"), new PromptValueAction(
    +				mxConstants.STYLE_SPACING_LEFT, "Left Spacing")));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("global"),
    +				new PromptValueAction(mxConstants.STYLE_SPACING, "Spacing")));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("sourceSpacing"),
    +				new PromptValueAction(
    +						mxConstants.STYLE_SOURCE_PERIMETER_SPACING, mxResources
    +								.get("sourceSpacing"))));
    +		submenu.add(editor.bind(mxResources.get("targetSpacing"),
    +				new PromptValueAction(
    +						mxConstants.STYLE_TARGET_PERIMETER_SPACING, mxResources
    +								.get("targetSpacing"))));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("perimeter"),
    +				new PromptValueAction(mxConstants.STYLE_PERIMETER_SPACING,
    +						"Perimeter Spacing")));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("direction")));
    +
    +		submenu.add(editor.bind(mxResources.get("north"), new KeyValueAction(
    +				mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_NORTH)));
    +		submenu.add(editor.bind(mxResources.get("east"), new KeyValueAction(
    +				mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_EAST)));
    +		submenu.add(editor.bind(mxResources.get("south"), new KeyValueAction(
    +				mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_SOUTH)));
    +		submenu.add(editor.bind(mxResources.get("west"), new KeyValueAction(
    +				mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_WEST)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("rotation"),
    +				new PromptValueAction(mxConstants.STYLE_ROTATION,
    +						"Rotation (0-360)")));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("rounded"), new ToggleAction(
    +				mxConstants.STYLE_ROUNDED)));
    +
    +		menu.add(editor.bind(mxResources.get("style"), new StyleAction()));
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/EditorPalette.java b/java/examples/com/mxgraph/examples/swing/editor/EditorPalette.java
    new file mode 100644
    index 000000000..d9e963eb1
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/EditorPalette.java
    @@ -0,0 +1,406 @@
    +/**
    + * $Id: EditorPalette.java,v 1.9 2012-01-13 12:52:28 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.Color;
    +import java.awt.Dimension;
    +import java.awt.FlowLayout;
    +import java.awt.Font;
    +import java.awt.GradientPaint;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.datatransfer.DataFlavor;
    +import java.awt.dnd.DnDConstants;
    +import java.awt.dnd.DragGestureEvent;
    +import java.awt.dnd.DragGestureListener;
    +import java.awt.dnd.DragSource;
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseListener;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.JComponent;
    +import javax.swing.JLabel;
    +import javax.swing.JPanel;
    +import javax.swing.TransferHandler;
    +
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.swing.util.mxGraphTransferable;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +
    +public class EditorPalette extends JPanel
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 7771113885935187066L;
    +
    +	/**
    +	 * 
    +	 */
    +	protected JLabel selectedEntry = null;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxEventSource eventSource = new mxEventSource(this);
    +
    +	/**
    +	 * 
    +	 */
    +	protected Color gradientColor = new Color(117, 195, 173);
    +
    +	/**
    +	 * 
    +	 */
    +	@SuppressWarnings("serial")
    +	public EditorPalette()
    +	{
    +		setBackground(new Color(149, 230, 190));
    +		setLayout(new FlowLayout(FlowLayout.LEADING, 5, 5));
    +
    +		// Clears the current selection when the background is clicked
    +		addMouseListener(new MouseListener()
    +		{
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
    +			 */
    +			public void mousePressed(MouseEvent e)
    +			{
    +				clearSelection();
    +			}
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
    +			 */
    +			public void mouseClicked(MouseEvent e)
    +			{
    +			}
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
    +			 */
    +			public void mouseEntered(MouseEvent e)
    +			{
    +			}
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
    +			 */
    +			public void mouseExited(MouseEvent e)
    +			{
    +			}
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
    +			 */
    +			public void mouseReleased(MouseEvent e)
    +			{
    +			}
    +
    +		});
    +
    +		// Shows a nice icon for drag and drop but doesn't import anything
    +		setTransferHandler(new TransferHandler()
    +		{
    +			public boolean canImport(JComponent comp, DataFlavor[] flavors)
    +			{
    +				return true;
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setGradientColor(Color c)
    +	{
    +		gradientColor = c;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getGradientColor()
    +	{
    +		return gradientColor;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintComponent(Graphics g)
    +	{
    +		if (gradientColor == null)
    +		{
    +			super.paintComponent(g);
    +		}
    +		else
    +		{
    +			Rectangle rect = getVisibleRect();
    +
    +			if (g.getClipBounds() != null)
    +			{
    +				rect = rect.intersection(g.getClipBounds());
    +			}
    +
    +			Graphics2D g2 = (Graphics2D) g;
    +
    +			g2.setPaint(new GradientPaint(0, 0, getBackground(), getWidth(), 0,
    +					gradientColor));
    +			g2.fill(rect);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void clearSelection()
    +	{
    +		setSelectionEntry(null, null);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setSelectionEntry(JLabel entry, mxGraphTransferable t)
    +	{
    +		JLabel previous = selectedEntry;
    +		selectedEntry = entry;
    +
    +		if (previous != null)
    +		{
    +			previous.setBorder(null);
    +			previous.setOpaque(false);
    +		}
    +
    +		if (selectedEntry != null)
    +		{
    +			selectedEntry.setBorder(ShadowBorder.getSharedInstance());
    +			selectedEntry.setOpaque(true);
    +		}
    +
    +		eventSource.fireEvent(new mxEventObject(mxEvent.SELECT, "entry",
    +				selectedEntry, "transferable", t, "previous", previous));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setPreferredWidth(int width)
    +	{
    +		int cols = Math.max(1, width / 55);
    +		setPreferredSize(new Dimension(width,
    +				(getComponentCount() * 55 / cols) + 30));
    +		revalidate();
    +	}
    +
    +	/**
    +	 * 
    +	 * @param name
    +	 * @param icon
    +	 * @param style
    +	 * @param width
    +	 * @param height
    +	 * @param value
    +	 */
    +	public void addEdgeTemplate(final String name, ImageIcon icon,
    +			String style, int width, int height, Object value)
    +	{
    +		mxGeometry geometry = new mxGeometry(0, 0, width, height);
    +		geometry.setTerminalPoint(new mxPoint(0, height), true);
    +		geometry.setTerminalPoint(new mxPoint(width, 0), false);
    +		geometry.setRelative(true);
    +
    +		mxCell cell = new mxCell(value, geometry, style);
    +		cell.setEdge(true);
    +
    +		addTemplate(name, icon, cell);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param name
    +	 * @param icon
    +	 * @param style
    +	 * @param width
    +	 * @param height
    +	 * @param value
    +	 */
    +	public void addTemplate(final String name, ImageIcon icon, String style,
    +			int width, int height, Object value)
    +	{
    +		mxCell cell = new mxCell(value, new mxGeometry(0, 0, width, height),
    +				style);
    +		cell.setVertex(true);
    +
    +		addTemplate(name, icon, cell);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param name
    +	 * @param icon
    +	 * @param cell
    +	 */
    +	public void addTemplate(final String name, ImageIcon icon, mxCell cell)
    +	{
    +		mxRectangle bounds = (mxGeometry) cell.getGeometry().clone();
    +		final mxGraphTransferable t = new mxGraphTransferable(
    +				new Object[] { cell }, bounds);
    +
    +		// Scales the image if it's too large for the library
    +		if (icon != null)
    +		{
    +			if (icon.getIconWidth() > 32 || icon.getIconHeight() > 32)
    +			{
    +				icon = new ImageIcon(icon.getImage().getScaledInstance(32, 32,
    +						0));
    +			}
    +		}
    +
    +		final JLabel entry = new JLabel(icon);
    +		entry.setPreferredSize(new Dimension(50, 50));
    +		entry.setBackground(EditorPalette.this.getBackground().brighter());
    +		entry.setFont(new Font(entry.getFont().getFamily(), 0, 10));
    +
    +		entry.setVerticalTextPosition(JLabel.BOTTOM);
    +		entry.setHorizontalTextPosition(JLabel.CENTER);
    +		entry.setIconTextGap(0);
    +
    +		entry.setToolTipText(name);
    +		entry.setText(name);
    +
    +		entry.addMouseListener(new MouseListener()
    +		{
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
    +			 */
    +			public void mousePressed(MouseEvent e)
    +			{
    +				setSelectionEntry(entry, t);
    +			}
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
    +			 */
    +			public void mouseClicked(MouseEvent e)
    +			{
    +			}
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
    +			 */
    +			public void mouseEntered(MouseEvent e)
    +			{
    +			}
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
    +			 */
    +			public void mouseExited(MouseEvent e)
    +			{
    +			}
    +
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
    +			 */
    +			public void mouseReleased(MouseEvent e)
    +			{
    +			}
    +
    +		});
    +
    +		// Install the handler for dragging nodes into a graph
    +		DragGestureListener dragGestureListener = new DragGestureListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void dragGestureRecognized(DragGestureEvent e)
    +			{
    +				e
    +						.startDrag(null, mxSwingConstants.EMPTY_IMAGE, new Point(),
    +								t, null);
    +			}
    +
    +		};
    +
    +		DragSource dragSource = new DragSource();
    +		dragSource.createDefaultDragGestureRecognizer(entry,
    +				DnDConstants.ACTION_COPY, dragGestureListener);
    +
    +		add(entry);
    +	}
    +
    +	/**
    +	 * @param eventName
    +	 * @param listener
    +	 * @see com.mxgraph.util.mxEventSource#addListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)
    +	 */
    +	public void addListener(String eventName, mxIEventListener listener)
    +	{
    +		eventSource.addListener(eventName, listener);
    +	}
    +
    +	/**
    +	 * @return whether or not event are enabled for this palette
    +	 * @see com.mxgraph.util.mxEventSource#isEventsEnabled()
    +	 */
    +	public boolean isEventsEnabled()
    +	{
    +		return eventSource.isEventsEnabled();
    +	}
    +
    +	/**
    +	 * @param listener
    +	 * @see com.mxgraph.util.mxEventSource#removeListener(com.mxgraph.util.mxEventSource.mxIEventListener)
    +	 */
    +	public void removeListener(mxIEventListener listener)
    +	{
    +		eventSource.removeListener(listener);
    +	}
    +
    +	/**
    +	 * @param eventName
    +	 * @param listener
    +	 * @see com.mxgraph.util.mxEventSource#removeListener(java.lang.String, com.mxgraph.util.mxEventSource.mxIEventListener)
    +	 */
    +	public void removeListener(mxIEventListener listener, String eventName)
    +	{
    +		eventSource.removeListener(listener, eventName);
    +	}
    +
    +	/**
    +	 * @param eventsEnabled
    +	 * @see com.mxgraph.util.mxEventSource#setEventsEnabled(boolean)
    +	 */
    +	public void setEventsEnabled(boolean eventsEnabled)
    +	{
    +		eventSource.setEventsEnabled(eventsEnabled);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/EditorPopupMenu.java b/java/examples/com/mxgraph/examples/swing/editor/EditorPopupMenu.java
    new file mode 100644
    index 000000000..88fa18321
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/EditorPopupMenu.java
    @@ -0,0 +1,82 @@
    +package com.mxgraph.examples.swing.editor;
    +
    +import javax.swing.JMenu;
    +import javax.swing.JPopupMenu;
    +import javax.swing.TransferHandler;
    +
    +import com.mxgraph.examples.swing.editor.EditorActions.HistoryAction;
    +import com.mxgraph.swing.util.mxGraphActions;
    +import com.mxgraph.util.mxResources;
    +
    +public class EditorPopupMenu extends JPopupMenu
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -3132749140550242191L;
    +
    +	public EditorPopupMenu(BasicGraphEditor editor)
    +	{
    +		boolean selected = !editor.getGraphComponent().getGraph()
    +				.isSelectionEmpty();
    +
    +		add(editor.bind(mxResources.get("undo"), new HistoryAction(true),
    +				"/com/mxgraph/examples/swing/images/undo.gif"));
    +
    +		addSeparator();
    +
    +		add(
    +				editor.bind(mxResources.get("cut"), TransferHandler
    +						.getCutAction(),
    +						"/com/mxgraph/examples/swing/images/cut.gif"))
    +				.setEnabled(selected);
    +		add(
    +				editor.bind(mxResources.get("copy"), TransferHandler
    +						.getCopyAction(),
    +						"/com/mxgraph/examples/swing/images/copy.gif"))
    +				.setEnabled(selected);
    +		add(editor.bind(mxResources.get("paste"), TransferHandler
    +				.getPasteAction(),
    +				"/com/mxgraph/examples/swing/images/paste.gif"));
    +
    +		addSeparator();
    +
    +		add(
    +				editor.bind(mxResources.get("delete"), mxGraphActions
    +						.getDeleteAction(),
    +						"/com/mxgraph/examples/swing/images/delete.gif"))
    +				.setEnabled(selected);
    +
    +		addSeparator();
    +
    +		// Creates the format menu
    +		JMenu menu = (JMenu) add(new JMenu(mxResources.get("format")));
    +
    +		EditorMenuBar.populateFormatMenu(menu, editor);
    +
    +		// Creates the shape menu
    +		menu = (JMenu) add(new JMenu(mxResources.get("shape")));
    +
    +		EditorMenuBar.populateShapeMenu(menu, editor);
    +
    +		addSeparator();
    +
    +		add(
    +				editor.bind(mxResources.get("edit"), mxGraphActions
    +						.getEditAction())).setEnabled(selected);
    +
    +		addSeparator();
    +
    +		add(editor.bind(mxResources.get("selectVertices"), mxGraphActions
    +				.getSelectVerticesAction()));
    +		add(editor.bind(mxResources.get("selectEdges"), mxGraphActions
    +				.getSelectEdgesAction()));
    +
    +		addSeparator();
    +
    +		add(editor.bind(mxResources.get("selectAll"), mxGraphActions
    +				.getSelectAllAction()));
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/EditorRuler.java b/java/examples/com/mxgraph/examples/swing/editor/EditorRuler.java
    new file mode 100644
    index 000000000..73d7a628a
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/EditorRuler.java
    @@ -0,0 +1,582 @@
    +/* 
    + * $Id: EditorRuler.java,v 1.2 2009-11-24 12:00:28 gaudenz Exp $
    + * Copyright (c) 2001-2005, Gaudenz Alder
    + * 
    + * All rights reserved.
    + * 
    + * See LICENSE file for license details. If you are unable to locate
    + * this file please contact info (at) jgraph (dot) com.
    + */
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.Color;
    +import java.awt.Dimension;
    +import java.awt.Font;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.RenderingHints;
    +import java.awt.dnd.DropTarget;
    +import java.awt.dnd.DropTargetDragEvent;
    +import java.awt.dnd.DropTargetDropEvent;
    +import java.awt.dnd.DropTargetEvent;
    +import java.awt.dnd.DropTargetListener;
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseMotionListener;
    +import java.awt.geom.AffineTransform;
    +import java.awt.geom.Point2D;
    +import java.text.NumberFormat;
    +import java.util.TooManyListenersException;
    +
    +import javax.swing.BorderFactory;
    +import javax.swing.JComponent;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * Component that displays a ruler for a JGraph component.
    + */
    +public class EditorRuler extends JComponent implements MouseMotionListener,
    +		DropTargetListener
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -6310912355878668096L;
    +
    +	/**
    +	 * Defines the constants for horizontal and vertical orientation.
    +	 */
    +	public static int ORIENTATION_HORIZONTAL = 0, ORIENTATION_VERTICAL = 1;
    +
    +	/**
    +	 * Internal constant used to describe the screen resolution (DPI). Default
    +	 * is 72.
    +	 */
    +	protected static int INCH = 72;
    +
    +	/**
    +	 * Internal constant used to describe the screen resolution (DPI). Default
    +	 * is 72.
    +	 */
    +	protected static int DEFAULT_PAGESCALE = 1;
    +
    +	/**
    +	 * Internal constant used to describe the screen resolution (DPI). Default
    +	 * is 72.
    +	 */
    +	protected static boolean DEFAULT_ISMETRIC = true;
    +
    +	/**
    +	 * Holds the shared number formatter.
    +	 * 
    +	 * @see NumberFormat#getInstance()
    +	 */
    +	public static final NumberFormat numberFormat = NumberFormat.getInstance();
    +
    +	/**
    +	 * Configuers the number format.
    +	 */
    +	static
    +	{
    +		numberFormat.setMaximumFractionDigits(2);
    +	}
    +
    +	/**
    +	 * Defines the inactive background border. Default is a not-so-dark gray.
    +	 */
    +	protected Color inactiveBackground = new Color(170, 170, 170);
    +
    +	/**
    +	 * Specifies the orientation.
    +	 */
    +	protected int orientation = ORIENTATION_HORIZONTAL;
    +
    +	/**
    +	 * Specified that start and length of the active region, ie the region to
    +	 * paint with the background border. This is used for example to indicate
    +	 * the printable region of a graph.
    +	 */
    +	protected int activeoffset, activelength;
    +
    +	/**
    +	 * Specifies the scale for the metrics. Default is
    +	 * {@link JGraphEditorDiagramPane#DEFAULT_PAGESCALE}.
    +	 */
    +	protected double scale = DEFAULT_PAGESCALE;
    +
    +	/**
    +	 * Specifies the unit system. Default is
    +	 * {@link JGraphEditorDiagramPane#DEFAULT_ISMETRIC}.
    +	 */
    +	protected boolean metric = DEFAULT_ISMETRIC;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Font labelFont = new Font("Tahoma", Font.PLAIN, 9);
    +
    +	/**
    +	 * Specifies height or width of the ruler. Default is 15 pixels.
    +	 */
    +	protected int rulerSize = 16;
    +
    +	/**
    +	 * Specifies the minimum distance between two major ticks. Default is 30.
    +	 */
    +	protected int tickDistance = 30;
    +
    +	/**
    +	 * Reference to the attached graph.
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Holds the current and first mouse point.
    +	 */
    +	protected Point mouse = new Point();
    +
    +	/**
    +	 * Parameters to control the display.
    +	 */
    +	protected double increment, units;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxIEventListener repaintHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			repaint();
    +		}
    +	};
    +
    +	/**
    +	 * Constructs a new ruler for the specified graph and orientation.
    +	 * 
    +	 * @param graph
    +	 *            The graph to create the ruler for.
    +	 * @param orientation
    +	 *            The orientation to use for the ruler.
    +	 */
    +	public EditorRuler(mxGraphComponent graphComponent, int orientation)
    +	{
    +		this.orientation = orientation;
    +		this.graphComponent = graphComponent;
    +		updateIncrementAndUnits();
    +
    +		graphComponent.getGraph().getView().addListener(
    +				mxEvent.SCALE, repaintHandler);
    +		graphComponent.getGraph().getView().addListener(
    +				mxEvent.TRANSLATE, repaintHandler);
    +		graphComponent.getGraph().getView().addListener(
    +				mxEvent.SCALE_AND_TRANSLATE, repaintHandler);
    +
    +		graphComponent.getGraphControl().addMouseMotionListener(this);
    +
    +		DropTarget dropTarget = graphComponent.getDropTarget();
    +
    +		try
    +		{
    +			if (dropTarget != null)
    +			{
    +				dropTarget.addDropTargetListener(this);
    +			}
    +		}
    +		catch (TooManyListenersException tmle)
    +		{
    +			// should not happen... swing drop target is multicast
    +		}
    +
    +		setBorder(BorderFactory.createLineBorder(Color.black));
    +	}
    +
    +	/**
    +	 * Sets the start of the active region in pixels.
    +	 * 
    +	 * @param offset
    +	 *            The start of the active region.
    +	 */
    +	public void setActiveOffset(int offset)
    +	{
    +		activeoffset = (int) (offset * scale);
    +	}
    +
    +	/**
    +	 * Sets the length of the active region in pixels.
    +	 * 
    +	 * @param length
    +	 *            The length of the active region.
    +	 */
    +	public void setActiveLength(int length)
    +	{
    +		activelength = (int) (length * scale);
    +	}
    +
    +	/**
    +	 * Returns true if the ruler uses metric units.
    +	 * 
    +	 * @return Returns if the ruler is metric.
    +	 */
    +	public boolean isMetric()
    +	{
    +		return metric;
    +	}
    +
    +	/**
    +	 * Sets if the ruler uses metric units.
    +	 * 
    +	 * @param isMetric
    +	 *            Whether to use metric units.
    +	 */
    +	public void setMetric(boolean isMetric)
    +	{
    +		this.metric = isMetric;
    +		updateIncrementAndUnits();
    +		repaint();
    +	}
    +
    +	/**
    +	 * Returns the ruler's horizontal or vertical size.
    +	 * 
    +	 * @return Returns the rulerSize.
    +	 */
    +	public int getRulerSize()
    +	{
    +		return rulerSize;
    +	}
    +
    +	/**
    +	 * Sets the ruler's horizontal or vertical size.
    +	 * 
    +	 * @param rulerSize
    +	 *            The rulerSize to set.
    +	 */
    +	public void setRulerSize(int rulerSize)
    +	{
    +		this.rulerSize = rulerSize;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setTickDistance(int tickDistance)
    +	{
    +		this.tickDistance = tickDistance;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getTickDistance()
    +	{
    +		return tickDistance;
    +	}
    +
    +	/**
    +	 * Returns the preferred size by replacing the respective component of the
    +	 * graph's preferred size with {@link #rulerSize}.
    +	 * 
    +	 * @return Returns the preferred size for the ruler.
    +	 */
    +	public Dimension getPreferredSize()
    +	{
    +		Dimension dim = graphComponent.getGraphControl().getPreferredSize();
    +
    +		if (orientation == ORIENTATION_VERTICAL)
    +		{
    +			dim.width = rulerSize;
    +		}
    +		else
    +		{
    +			dim.height = rulerSize;
    +		}
    +
    +		return dim;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.dnd.DropTargetListener#dragEnter(java.awt.dnd.DropTargetDragEvent)
    +	 */
    +	public void dragEnter(DropTargetDragEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.dnd.DropTargetListener#dragExit(java.awt.dnd.DropTargetEvent)
    +	 */
    +	public void dragExit(DropTargetEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.dnd.DropTargetListener#dragOver(java.awt.dnd.DropTargetDragEvent)
    +	 */
    +	public void dragOver(final DropTargetDragEvent arg0)
    +	{
    +		updateMousePosition(arg0.getLocation());
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.dnd.DropTargetListener#drop(java.awt.dnd.DropTargetDropEvent)
    +	 */
    +	public void drop(DropTargetDropEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.dnd.DropTargetListener#dropActionChanged(java.awt.dnd.DropTargetDragEvent)
    +	 */
    +	public void dropActionChanged(DropTargetDragEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 */
    +	public void mouseMoved(MouseEvent e)
    +	{
    +		updateMousePosition(e.getPoint());
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		updateMousePosition(e.getPoint());
    +	}
    +
    +	/**
    +	 * Repaints the mouse position.
    +	 */
    +	protected void updateMousePosition(Point pt)
    +	{
    +		Point old = mouse;
    +		mouse = pt;
    +		repaint(old.x, old.y);
    +		repaint(mouse.x, mouse.y);
    +	}
    +
    +	/**
    +	 * Updates the local variables used for painting based on the current scale
    +	 * and unit system.
    +	 */
    +	protected void updateIncrementAndUnits()
    +	{
    +		double graphScale = graphComponent.getGraph().getView().getScale();
    +
    +		if (metric)
    +		{
    +			units = INCH / 2.54; // 2.54 dots per centimeter
    +			units *= graphComponent.getPageScale() * graphScale;
    +			increment = units;
    +		}
    +		else
    +		{
    +			units = INCH;
    +			units *= graphComponent.getPageScale() * graphScale;
    +			increment = units / 2;
    +		}
    +	}
    +
    +	/**
    +	 * Repaints the ruler between the specified 0 and x or y depending on the
    +	 * orientation.
    +	 * 
    +	 * @param x
    +	 *            The endpoint for repainting a horizontal ruler.
    +	 * @param y
    +	 *            The endpoint for repainting a vertical ruler.
    +	 */
    +	public void repaint(int x, int y)
    +	{
    +		if (orientation == ORIENTATION_VERTICAL)
    +		{
    +			repaint(0, y, rulerSize, 1);
    +		}
    +		else
    +		{
    +			repaint(x, 0, 1, rulerSize);
    +		}
    +	}
    +
    +	/**
    +	 * Paints the ruler.
    +	 * 
    +	 * @param g
    +	 *            The graphics to paint the ruler to.
    +	 */
    +	public void paintComponent(Graphics g)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		Rectangle clip = g.getClipBounds();
    +		updateIncrementAndUnits();
    +
    +		// Fills clipping area with background.
    +		if (activelength > 0 && inactiveBackground != null)
    +		{
    +			g.setColor(inactiveBackground);
    +		}
    +		else
    +		{
    +			g.setColor(getBackground());
    +		}
    +
    +		g.fillRect(clip.x, clip.y, clip.width, clip.height);
    +
    +		// Draws the active region.
    +		g.setColor(getBackground());
    +		Point2D p = new Point2D.Double(activeoffset, activelength);
    +
    +		if (orientation == ORIENTATION_HORIZONTAL)
    +		{
    +			g.fillRect((int) p.getX(), clip.y, (int) p.getY(), clip.height);
    +		}
    +		else
    +		{
    +			g.fillRect(clip.x, (int) p.getX(), clip.width, (int) p.getY());
    +		}
    +
    +		double left = clip.getX();
    +		double top = clip.getY();
    +		double right = left + clip.getWidth();
    +		double bottom = top + clip.getHeight();
    +
    +		// Fetches some global display state information
    +		mxPoint trans = graph.getView().getTranslate();
    +		double scale = graph.getView().getScale();
    +		double tx = trans.getX() * scale;
    +		double ty = trans.getY() * scale;
    +
    +		// Sets the distance of the grid lines in pixels
    +		double stepping = increment;
    +
    +		if (stepping < tickDistance)
    +		{
    +			int count = (int) Math
    +					.round(Math.ceil(tickDistance / stepping) / 2) * 2;
    +			stepping = count * stepping;
    +		}
    +
    +		// Creates a set of strokes with individual dash offsets
    +		// for each direction
    +		((Graphics2D) g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    +				RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    +		g.setFont(labelFont);
    +		g.setColor(Color.black);
    +
    +		int smallTick = rulerSize - rulerSize / 3;
    +		int middleTick = rulerSize / 2;
    +
    +		// TODO: Merge into a single drawing loop for both orientations
    +		if (orientation == ORIENTATION_HORIZONTAL)
    +		{
    +			double xs = Math.floor((left - tx) / stepping) * stepping + tx;
    +			double xe = Math.ceil(right / stepping) * stepping;
    +			xe += (int) Math.ceil(stepping);
    +
    +			for (double x = xs; x <= xe; x += stepping)
    +			{
    +				// FIXME: Workaround for rounding errors when adding stepping to
    +				// xs or ys multiple times (leads to double grid lines when zoom
    +				// is set to eg. 121%)
    +				double xx = Math.round((x - tx) / stepping) * stepping + tx;
    +
    +				int ix = (int) Math.round(xx);
    +				g.drawLine(ix, rulerSize, ix, 0);
    +
    +				String text = format((x - tx) / increment);
    +				g.drawString(text, ix + 2, labelFont.getSize());
    +
    +				ix += (int) Math.round(stepping / 4);
    +				g.drawLine(ix, rulerSize, ix, smallTick);
    +
    +				ix += (int) Math.round(stepping / 4);
    +				g.drawLine(ix, rulerSize, ix, middleTick);
    +
    +				ix += (int) Math.round(stepping / 4);
    +				g.drawLine(ix, rulerSize, ix, smallTick);
    +			}
    +		}
    +		else
    +		{
    +			double ys = Math.floor((top - ty) / stepping) * stepping + ty;
    +			double ye = Math.ceil(bottom / stepping) * stepping;
    +			ye += (int) Math.ceil(stepping);
    +
    +			for (double y = ys; y <= ye; y += stepping)
    +			{
    +				// FIXME: Workaround for rounding errors when adding stepping to
    +				// xs or ys multiple times (leads to double grid lines when zoom
    +				// is set to eg. 121%)
    +				y = Math.round((y - ty) / stepping) * stepping + ty;
    +
    +				int iy = (int) Math.round(y);
    +				g.drawLine(rulerSize, iy, 0, iy);
    +
    +				String text = format((y - ty) / increment);
    +
    +				// Rotates the labels in the vertical ruler
    +				AffineTransform at = ((Graphics2D) g).getTransform();
    +				((Graphics2D) g).rotate(-Math.PI / 2, 0, iy);
    +				g.drawString(text, 1, iy + labelFont.getSize());
    +				((Graphics2D) g).setTransform(at);
    +
    +				iy += (int) Math.round(stepping / 4);
    +				g.drawLine(rulerSize, iy, smallTick, iy);
    +
    +				iy += (int) Math.round(stepping / 4);
    +				g.drawLine(rulerSize, iy, middleTick, iy);
    +
    +				iy += (int) Math.round(stepping / 4);
    +				g.drawLine(rulerSize, iy, smallTick, iy);
    +			}
    +		}
    +
    +		// Draw Mouseposition
    +		g.setColor(Color.green);
    +
    +		if (orientation == ORIENTATION_HORIZONTAL)
    +		{
    +			g.drawLine(mouse.x, rulerSize, mouse.x, 0);
    +		}
    +		else
    +		{
    +			g.drawLine(rulerSize, mouse.y, 0, mouse.y);
    +		}
    +	}
    +
    +	/**
    +	 * Fixes the formatting of -0.
    +	 */
    +	private final String format(double value)
    +	{
    +		String text = numberFormat.format(value);
    +
    +		if (text.equals("-0"))
    +		{
    +			text = "0";
    +		}
    +
    +		return text;
    +	}
    +
    +}
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/EditorToolBar.java b/java/examples/com/mxgraph/examples/swing/editor/EditorToolBar.java
    new file mode 100644
    index 000000000..f7a3a7359
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/EditorToolBar.java
    @@ -0,0 +1,278 @@
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.Dimension;
    +import java.awt.GraphicsEnvironment;
    +import java.awt.event.ActionEvent;
    +import java.awt.event.ActionListener;
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.List;
    +
    +import javax.swing.BorderFactory;
    +import javax.swing.JComboBox;
    +import javax.swing.JOptionPane;
    +import javax.swing.JToolBar;
    +import javax.swing.TransferHandler;
    +
    +import com.mxgraph.examples.swing.editor.EditorActions.ColorAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.FontStyleAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.HistoryAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.KeyValueAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.NewAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.OpenAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PrintAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SaveAction;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxGraphActions;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +
    +public class EditorToolBar extends JToolBar
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -8015443128436394471L;
    +
    +	/**
    +	 * 
    +	 * @param frame
    +	 * @param orientation
    +	 */
    +	private boolean ignoreZoomChange = false;
    +
    +	/**
    +	 * 
    +	 */
    +	public EditorToolBar(final BasicGraphEditor editor, int orientation)
    +	{
    +		super(orientation);
    +		setBorder(BorderFactory.createCompoundBorder(BorderFactory
    +				.createEmptyBorder(3, 3, 3, 3), getBorder()));
    +		setFloatable(false);
    +
    +		add(editor.bind("New", new NewAction(),
    +				"/com/mxgraph/examples/swing/images/new.gif"));
    +		add(editor.bind("Open", new OpenAction(),
    +				"/com/mxgraph/examples/swing/images/open.gif"));
    +		add(editor.bind("Save", new SaveAction(false),
    +				"/com/mxgraph/examples/swing/images/save.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Print", new PrintAction(),
    +				"/com/mxgraph/examples/swing/images/print.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Cut", TransferHandler.getCutAction(),
    +				"/com/mxgraph/examples/swing/images/cut.gif"));
    +		add(editor.bind("Copy", TransferHandler.getCopyAction(),
    +				"/com/mxgraph/examples/swing/images/copy.gif"));
    +		add(editor.bind("Paste", TransferHandler.getPasteAction(),
    +				"/com/mxgraph/examples/swing/images/paste.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Delete", mxGraphActions.getDeleteAction(),
    +				"/com/mxgraph/examples/swing/images/delete.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Undo", new HistoryAction(true),
    +				"/com/mxgraph/examples/swing/images/undo.gif"));
    +		add(editor.bind("Redo", new HistoryAction(false),
    +				"/com/mxgraph/examples/swing/images/redo.gif"));
    +
    +		addSeparator();
    +
    +		// Gets the list of available fonts from the local graphics environment
    +		// and adds some frequently used fonts at the beginning of the list
    +		GraphicsEnvironment env = GraphicsEnvironment
    +				.getLocalGraphicsEnvironment();
    +		List<String> fonts = new ArrayList<String>();
    +		fonts.addAll(Arrays.asList(new String[] { "Helvetica", "Verdana",
    +				"Times New Roman", "Garamond", "Courier New", "-" }));
    +		fonts.addAll(Arrays.asList(env.getAvailableFontFamilyNames()));
    +
    +		final JComboBox fontCombo = new JComboBox(fonts.toArray());
    +		fontCombo.setEditable(true);
    +		fontCombo.setMinimumSize(new Dimension(120, 0));
    +		fontCombo.setPreferredSize(new Dimension(120, 0));
    +		fontCombo.setMaximumSize(new Dimension(120, 100));
    +		add(fontCombo);
    +
    +		fontCombo.addActionListener(new ActionListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				String font = fontCombo.getSelectedItem().toString();
    +
    +				if (font != null && !font.equals("-"))
    +				{
    +					mxGraph graph = editor.getGraphComponent().getGraph();
    +					graph.setCellStyles(mxConstants.STYLE_FONTFAMILY, font);
    +				}
    +			}
    +		});
    +
    +		final JComboBox sizeCombo = new JComboBox(new Object[] { "6pt", "8pt",
    +				"9pt", "10pt", "12pt", "14pt", "18pt", "24pt", "30pt", "36pt",
    +				"48pt", "60pt" });
    +		sizeCombo.setEditable(true);
    +		sizeCombo.setMinimumSize(new Dimension(65, 0));
    +		sizeCombo.setPreferredSize(new Dimension(65, 0));
    +		sizeCombo.setMaximumSize(new Dimension(65, 100));
    +		add(sizeCombo);
    +
    +		sizeCombo.addActionListener(new ActionListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				mxGraph graph = editor.getGraphComponent().getGraph();
    +				graph.setCellStyles(mxConstants.STYLE_FONTSIZE, sizeCombo
    +						.getSelectedItem().toString().replace("pt", ""));
    +			}
    +		});
    +
    +		addSeparator();
    +
    +		add(editor.bind("Bold", new FontStyleAction(true),
    +				"/com/mxgraph/examples/swing/images/bold.gif"));
    +		add(editor.bind("Italic", new FontStyleAction(false),
    +				"/com/mxgraph/examples/swing/images/italic.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Left", new KeyValueAction(mxConstants.STYLE_ALIGN,
    +				mxConstants.ALIGN_LEFT),
    +				"/com/mxgraph/examples/swing/images/left.gif"));
    +		add(editor.bind("Center", new KeyValueAction(mxConstants.STYLE_ALIGN,
    +				mxConstants.ALIGN_CENTER),
    +				"/com/mxgraph/examples/swing/images/center.gif"));
    +		add(editor.bind("Right", new KeyValueAction(mxConstants.STYLE_ALIGN,
    +				mxConstants.ALIGN_RIGHT),
    +				"/com/mxgraph/examples/swing/images/right.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Font", new ColorAction("Font",
    +				mxConstants.STYLE_FONTCOLOR),
    +				"/com/mxgraph/examples/swing/images/fontcolor.gif"));
    +		add(editor.bind("Stroke", new ColorAction("Stroke",
    +				mxConstants.STYLE_STROKECOLOR),
    +				"/com/mxgraph/examples/swing/images/linecolor.gif"));
    +		add(editor.bind("Fill", new ColorAction("Fill",
    +				mxConstants.STYLE_FILLCOLOR),
    +				"/com/mxgraph/examples/swing/images/fillcolor.gif"));
    +
    +		addSeparator();
    +
    +		final mxGraphView view = editor.getGraphComponent().getGraph()
    +				.getView();
    +		final JComboBox zoomCombo = new JComboBox(new Object[] { "400%",
    +				"200%", "150%", "100%", "75%", "50%", mxResources.get("page"),
    +				mxResources.get("width"), mxResources.get("actualSize") });
    +		zoomCombo.setEditable(true);
    +		zoomCombo.setMinimumSize(new Dimension(75, 0));
    +		zoomCombo.setPreferredSize(new Dimension(75, 0));
    +		zoomCombo.setMaximumSize(new Dimension(75, 100));
    +		zoomCombo.setMaximumRowCount(9);
    +		add(zoomCombo);
    +
    +		// Sets the zoom in the zoom combo the current value
    +		mxIEventListener scaleTracker = new mxIEventListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				ignoreZoomChange = true;
    +
    +				try
    +				{
    +					zoomCombo.setSelectedItem((int) Math.round(100 * view
    +							.getScale())
    +							+ "%");
    +				}
    +				finally
    +				{
    +					ignoreZoomChange = false;
    +				}
    +			}
    +		};
    +
    +		// Installs the scale tracker to update the value in the combo box
    +		// if the zoom is changed from outside the combo box
    +		view.getGraph().getView().addListener(mxEvent.SCALE, scaleTracker);
    +		view.getGraph().getView().addListener(mxEvent.SCALE_AND_TRANSLATE,
    +				scaleTracker);
    +
    +		// Invokes once to sync with the actual zoom value
    +		scaleTracker.invoke(null, null);
    +
    +		zoomCombo.addActionListener(new ActionListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				mxGraphComponent graphComponent = editor.getGraphComponent();
    +
    +				// Zoomcombo is changed when the scale is changed in the diagram
    +				// but the change is ignored here
    +				if (!ignoreZoomChange)
    +				{
    +					String zoom = zoomCombo.getSelectedItem().toString();
    +
    +					if (zoom.equals(mxResources.get("page")))
    +					{
    +						graphComponent.setPageVisible(true);
    +						graphComponent
    +								.setZoomPolicy(mxGraphComponent.ZOOM_POLICY_PAGE);
    +					}
    +					else if (zoom.equals(mxResources.get("width")))
    +					{
    +						graphComponent.setPageVisible(true);
    +						graphComponent
    +								.setZoomPolicy(mxGraphComponent.ZOOM_POLICY_WIDTH);
    +					}
    +					else if (zoom.equals(mxResources.get("actualSize")))
    +					{
    +						graphComponent.zoomActual();
    +					}
    +					else
    +					{
    +						try
    +						{
    +							zoom = zoom.replace("%", "");
    +							double scale = Math.min(16, Math.max(0.01,
    +									Double.parseDouble(zoom) / 100));
    +							graphComponent.zoomTo(scale, graphComponent
    +									.isCenterZoom());
    +						}
    +						catch (Exception ex)
    +						{
    +							JOptionPane.showMessageDialog(editor, ex
    +									.getMessage());
    +						}
    +					}
    +				}
    +			}
    +		});
    +	}
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/JTableRenderer.java b/java/examples/com/mxgraph/examples/swing/editor/JTableRenderer.java
    new file mode 100644
    index 000000000..ed79d1ed3
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/JTableRenderer.java
    @@ -0,0 +1,537 @@
    +/*
    + * $Id: JTableRenderer.java,v 1.5 2012-01-13 11:04:36 david Exp $
    + * Copyright (c) 2001-2005, Gaudenz Alder
    + * 
    + * All rights reserved.
    + * 
    + * See LICENSE file for license details. If you are unable to locate
    + * this file please contact info (at) jgraph (dot) com.
    + */
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.BorderLayout;
    +import java.awt.Color;
    +import java.awt.Component;
    +import java.awt.Cursor;
    +import java.awt.Dimension;
    +import java.awt.FlowLayout;
    +import java.awt.Font;
    +import java.awt.Point;
    +import java.awt.datatransfer.Transferable;
    +import java.awt.dnd.DnDConstants;
    +import java.awt.dnd.DropTarget;
    +import java.awt.dnd.DropTargetDragEvent;
    +import java.awt.dnd.DropTargetDropEvent;
    +import java.awt.dnd.DropTargetEvent;
    +import java.awt.dnd.DropTargetListener;
    +import java.awt.event.ActionEvent;
    +import java.awt.event.AdjustmentEvent;
    +import java.awt.event.AdjustmentListener;
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseListener;
    +import java.awt.event.MouseMotionListener;
    +
    +import javax.swing.AbstractAction;
    +import javax.swing.BorderFactory;
    +import javax.swing.ImageIcon;
    +import javax.swing.JButton;
    +import javax.swing.JComponent;
    +import javax.swing.JLabel;
    +import javax.swing.JPanel;
    +import javax.swing.JScrollPane;
    +import javax.swing.JTable;
    +import javax.swing.SwingUtilities;
    +import javax.swing.TransferHandler;
    +import javax.swing.border.BevelBorder;
    +import javax.swing.table.AbstractTableModel;
    +import javax.swing.table.TableColumn;
    +import javax.swing.table.TableModel;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.handler.mxCellHandler;
    +import com.mxgraph.swing.handler.mxGraphTransferHandler;
    +import com.mxgraph.swing.util.mxGraphTransferable;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * @author Administrator
    + * 
    + */
    +public class JTableRenderer extends JComponent
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 2106746763664760745L;
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String IMAGE_PATH = "/com/mxgraph/examples/swing/images/";
    +
    +	/**
    +	 * 
    +	 */
    +	protected static JTableRenderer dragSource = null;
    +
    +	/**
    +	 * 
    +	 */
    +	protected static int sourceRow = 0;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Object cell;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphComponent graphContainer;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraph graph;
    +
    +	/**
    +	 * 
    +	 */
    +	public JTable table;
    +
    +	/**
    +	 * 
    +	 */
    +	@SuppressWarnings("serial")
    +	public JTableRenderer(final Object cell,
    +			final mxGraphComponent graphContainer)
    +	{
    +		this.cell = cell;
    +		this.graphContainer = graphContainer;
    +		this.graph = graphContainer.getGraph();
    +		setLayout(new BorderLayout());
    +		setBorder(BorderFactory.createCompoundBorder(ShadowBorder
    +				.getSharedInstance(), BorderFactory
    +				.createBevelBorder(BevelBorder.RAISED)));
    +
    +		JPanel title = new JPanel();
    +		title.setBackground(new Color(149, 173, 239));
    +		title.setOpaque(true);
    +		title.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 1));
    +		title.setLayout(new BorderLayout());
    +
    +		JLabel icon = new JLabel(new ImageIcon(JTableRenderer.class
    +				.getResource(IMAGE_PATH + "preferences.gif")));
    +		icon.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 1));
    +		title.add(icon, BorderLayout.WEST);
    +
    +		JLabel label = new JLabel(String.valueOf(graph.getLabel(cell)));
    +		label.setForeground(Color.WHITE);
    +		label.setFont(title.getFont().deriveFont(Font.BOLD, 11));
    +		label.setBorder(BorderFactory.createEmptyBorder(0, 1, 0, 2));
    +		title.add(label, BorderLayout.CENTER);
    +
    +		JPanel toolBar2 = new JPanel();
    +		toolBar2.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 2));
    +		toolBar2.setOpaque(false);
    +		JButton button = new JButton(new AbstractAction("", new ImageIcon(
    +				JTableRenderer.class.getResource(IMAGE_PATH + "minimize.gif")))
    +		{
    +
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				graph.foldCells(graph.isCellCollapsed(cell), false,
    +						new Object[] { cell });
    +				((JButton) e.getSource())
    +						.setIcon(new ImageIcon(
    +								JTableRenderer.class
    +										.getResource(IMAGE_PATH
    +												+ ((graph.isCellCollapsed(cell)) ? "maximize.gif"
    +														: "minimize.gif"))));
    +			}
    +		});
    +		button.setPreferredSize(new Dimension(16, 16));
    +		button.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    +		button.setToolTipText("Collapse/Expand");
    +		button.setOpaque(false);
    +		toolBar2.add(button);
    +
    +		title.add(toolBar2, BorderLayout.EAST);
    +		add(title, BorderLayout.NORTH);
    +
    +		// CellStyle style =
    +		// graph.getStylesheet().getCellStyle(graph.getModel(),
    +		// cell);
    +		// if (style.getStyleClass() == null) {
    +		table = new MyTable();
    +		JScrollPane scrollPane = new JScrollPane(table);
    +		scrollPane.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    +
    +		if (graph.getModel().getChildCount(cell) == 0)
    +		{
    +			scrollPane.getViewport().setBackground(Color.WHITE);
    +			setOpaque(true);
    +			add(scrollPane, BorderLayout.CENTER);
    +		}
    +
    +		scrollPane.getVerticalScrollBar().addAdjustmentListener(
    +				new AdjustmentListener()
    +				{
    +
    +					public void adjustmentValueChanged(AdjustmentEvent e)
    +					{
    +						graphContainer.refresh();
    +					}
    +
    +				});
    +
    +		label = new JLabel(new ImageIcon(JTableRenderer.class
    +				.getResource(IMAGE_PATH + "resize.gif")));
    +		label.setCursor(new Cursor(Cursor.NW_RESIZE_CURSOR));
    +
    +		JPanel panel = new JPanel();
    +		panel.setLayout(new BorderLayout());
    +		panel.add(label, BorderLayout.EAST);
    +
    +		add(panel, BorderLayout.SOUTH);
    +
    +		ResizeHandler resizeHandler = new ResizeHandler();
    +		label.addMouseListener(resizeHandler);
    +		label.addMouseMotionListener(resizeHandler);
    +
    +		setMinimumSize(new Dimension(20, 30));
    +	}
    +
    +	/**
    +	 * Implements an event redirector for the specified handle index, where 0
    +	 * is the top right, and 1-7 are the top center, rop right, middle left,
    +	 * middle right, bottom left, bottom center and bottom right, respectively.
    +	 * Default index is 7 (bottom right).
    +	 */
    +	public class ResizeHandler implements MouseListener, MouseMotionListener
    +	{
    +
    +		protected int index;
    +
    +		public ResizeHandler()
    +		{
    +			this(7);
    +		}
    +
    +		public ResizeHandler(int index)
    +		{
    +			this.index = index;
    +		}
    +
    +		public void mouseClicked(MouseEvent e)
    +		{
    +			// ignore
    +		}
    +
    +		public void mouseEntered(MouseEvent e)
    +		{
    +			// ignore
    +		}
    +
    +		public void mouseExited(MouseEvent e)
    +		{
    +			// ignore
    +		}
    +
    +		public void mousePressed(MouseEvent e)
    +		{
    +			// Selects to create a handler for resizing
    +			if (!graph.isCellSelected(cell))
    +			{
    +				graphContainer.selectCellForEvent(cell, e);
    +			}
    +
    +			// Initiates a resize event in the handler
    +			mxCellHandler handler = graphContainer.getSelectionCellsHandler().getHandler(
    +					cell);
    +
    +			if (handler != null)
    +			{
    +				// Starts the resize at index 7 (bottom right)
    +				handler.start(SwingUtilities.convertMouseEvent((Component) e
    +						.getSource(), e, graphContainer.getGraphControl()),
    +						index);
    +				e.consume();
    +			}
    +		}
    +
    +		public void mouseReleased(MouseEvent e)
    +		{
    +			graphContainer.getGraphControl().dispatchEvent(
    +					SwingUtilities.convertMouseEvent((Component) e.getSource(),
    +							e, graphContainer.getGraphControl()));
    +		}
    +
    +		public void mouseDragged(MouseEvent e)
    +		{
    +			graphContainer.getGraphControl().dispatchEvent(
    +					SwingUtilities.convertMouseEvent((Component) e.getSource(),
    +							e, graphContainer.getGraphControl()));
    +		}
    +
    +		public void mouseMoved(MouseEvent e)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public class MyTable extends JTable implements DropTargetListener
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 5841175227984561071L;
    +
    +		Object[][] data;
    +
    +		String[] colNames = new String[] { "A", "B", "C", "D", "E" };
    +
    +		@SuppressWarnings("serial")
    +		public MyTable()
    +		{
    +			data = new Object[30][5];
    +			for (int i = 0; i < 30; i++)
    +			{
    +				data[i][0] = new Boolean(false);
    +				data[i][1] = "Column " + i;
    +				data[i][2] = (Math.random() > 0.5) ? new ImageIcon(
    +						JTableRenderer.class.getResource(IMAGE_PATH
    +								+ "preferences.gif")) : null;
    +				data[i][3] = (Math.random() > 0.5) ? new ImageIcon(
    +						JTableRenderer.class.getResource(IMAGE_PATH
    +								+ "preferences.gif")) : null;
    +				data[i][4] = (Math.random() > 0.5) ? new ImageIcon(
    +						JTableRenderer.class.getResource(IMAGE_PATH
    +								+ "preferences.gif")) : null;
    +			}
    +			setModel(createModel());
    +			setTableHeader(null);
    +			setAutoscrolls(true);
    +			setGridColor(Color.WHITE);
    +			TableColumn column = getColumnModel().getColumn(0);
    +			column.setMaxWidth(20);
    +			column = getColumnModel().getColumn(2);
    +			column.setMaxWidth(12);
    +			column = getColumnModel().getColumn(3);
    +			column.setMaxWidth(12);
    +			column = getColumnModel().getColumn(4);
    +			column.setMaxWidth(12);
    +
    +			setTransferHandler(new TransferHandler()
    +			{
    +
    +				/* (non-Javadoc)
    +				 * @see javax.swing.TransferHandler#getSourceActions(javax.swing.JComponent)
    +				 */
    +				@Override
    +				public int getSourceActions(JComponent c)
    +				{
    +					return COPY_OR_MOVE;
    +				}
    +
    +				/*
    +				 * (non-Javadoc)
    +				 * 
    +				 * @see javax.swing.TransferHandler#createTransferable(javax.swing.JComponent)
    +				 */
    +				protected Transferable createTransferable(JComponent c)
    +				{
    +					sourceRow = getSelectedRow();
    +					dragSource = JTableRenderer.this;
    +					//mxRectangle bounds = new mxRectangle(0, 0, MyTable.this
    +					//		.getWidth(), 20);
    +					return new mxGraphTransferable(null, null, null);
    +				}
    +
    +			});
    +
    +			setDragEnabled(true);
    +			setDropTarget(new DropTarget(this, // component
    +					DnDConstants.ACTION_COPY_OR_MOVE, // actions
    +					this));
    +			setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public DropTarget getDropTarget()
    +		{
    +			if (!((mxGraphTransferHandler) graphContainer.getTransferHandler())
    +					.isLocalDrag())
    +			{
    +				return super.getDropTarget();
    +			}
    +
    +			return null;
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see java.awt.dnd.DropTargetListener#dragEnter(java.awt.dnd.DropTargetDragEvent)
    +		 */
    +		public void dragEnter(DropTargetDragEvent e)
    +		{
    +
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see java.awt.dnd.DropTargetListener#dragOver(java.awt.dnd.DropTargetDragEvent)
    +		 */
    +		public void dragOver(DropTargetDragEvent e)
    +		{
    +			if (!((mxGraphTransferHandler) graphContainer.getTransferHandler())
    +					.isLocalDrag()
    +					&& JTableRenderer.this != dragSource)
    +			{
    +				Point p = e.getLocation();
    +				int row = rowAtPoint(p);
    +				getSelectionModel().setSelectionInterval(row, row);
    +			}
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see java.awt.dnd.DropTargetListener#dropActionChanged(java.awt.dnd.DropTargetDragEvent)
    +		 */
    +		public void dropActionChanged(DropTargetDragEvent dtde)
    +		{
    +			// TODO Auto-generated method stub
    +
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see java.awt.dnd.DropTargetListener#drop(java.awt.dnd.DropTargetDropEvent)
    +		 */
    +		public void drop(DropTargetDropEvent e)
    +		{
    +			if (dragSource != null)
    +			{
    +				e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
    +				Point p = e.getLocation();
    +				int targetRow = rowAtPoint(p);
    +
    +				Object edge = graph.insertEdge(null, null, null,
    +						dragSource.cell, JTableRenderer.this.cell, "sourceRow="
    +								+ sourceRow + ";targetRow=" + targetRow);
    +				graph.setSelectionCell(edge);
    +
    +				// System.out.println("clearing drag source");
    +				dragSource = null;
    +				e.dropComplete(true);
    +			}
    +			else
    +			{
    +				e.rejectDrop();
    +			}
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see java.awt.dnd.DropTargetListener#dragExit(java.awt.dnd.DropTargetEvent)
    +		 */
    +		public void dragExit(DropTargetEvent dte)
    +		{
    +			// TODO Auto-generated method stub
    +
    +		}
    +
    +		/**
    +		 * 
    +		 * @return the created table model
    +		 */
    +		public TableModel createModel()
    +		{
    +			return new AbstractTableModel()
    +			{
    +
    +				/**
    +				 * 
    +				 */
    +				private static final long serialVersionUID = -3642207266816170738L;
    +
    +				public int getColumnCount()
    +				{
    +					return colNames.length;
    +				}
    +
    +				public int getRowCount()
    +				{
    +					return data.length;
    +				}
    +
    +				public String getColumnName(int col)
    +				{
    +					return colNames[col];
    +				}
    +
    +				public Object getValueAt(int row, int col)
    +				{
    +					return data[row][col];
    +				}
    +
    +				public Class<? extends Object> getColumnClass(int c)
    +				{
    +					Object value = getValueAt(0, c);
    +					return (value != null) ? value.getClass() : ImageIcon.class;
    +				}
    +
    +				/*
    +				 * Don't need to implement this method unless your table's
    +				 * editable.
    +				 */
    +				public boolean isCellEditable(int row, int col)
    +				{
    +					return col == 0;
    +				}
    +
    +				/*
    +				 * Don't need to implement this method unless your table's data
    +				 * can change.
    +				 */
    +				public void setValueAt(Object value, int row, int col)
    +				{
    +					data[row][col] = value;
    +					fireTableCellUpdated(row, col);
    +				}
    +			};
    +
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static JTableRenderer getVertex(Component component)
    +	{
    +		while (component != null)
    +		{
    +			if (component instanceof JTableRenderer)
    +			{
    +				return (JTableRenderer) component;
    +			}
    +			component = component.getParent();
    +		}
    +
    +		return null;
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/SchemaEditorMenuBar.java b/java/examples/com/mxgraph/examples/swing/editor/SchemaEditorMenuBar.java
    new file mode 100644
    index 000000000..00fb0c6a1
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/SchemaEditorMenuBar.java
    @@ -0,0 +1,412 @@
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.event.ActionEvent;
    +import java.awt.event.ActionListener;
    +
    +import javax.swing.AbstractAction;
    +import javax.swing.JMenu;
    +import javax.swing.JMenuBar;
    +import javax.swing.JMenuItem;
    +import javax.swing.SwingUtilities;
    +import javax.swing.TransferHandler;
    +import javax.swing.UIManager;
    +
    +import com.mxgraph.examples.swing.editor.EditorActions.BackgroundAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.BackgroundImageAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ExitAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.GridColorAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.GridStyleAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.HistoryAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.NewAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.OpenAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PageBackgroundAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PageSetupAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PrintAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PromptPropertyAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SaveAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ScaleAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SelectShortestPathAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SelectSpanningTreeAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.StylesheetAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleDirtyAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleGridItem;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleOutlineItem;
    +import com.mxgraph.examples.swing.editor.EditorActions.TogglePropertyItem;
    +import com.mxgraph.examples.swing.editor.EditorActions.ToggleRulersItem;
    +import com.mxgraph.examples.swing.editor.EditorActions.WarningAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.ZoomPolicyAction;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxGraphActions;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.view.mxGraph;
    +
    +public class SchemaEditorMenuBar extends JMenuBar
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 6776304509649205465L;
    +
    +	@SuppressWarnings("serial")
    +	public SchemaEditorMenuBar(final BasicGraphEditor editor)
    +	{
    +		final mxGraphComponent graphComponent = editor.getGraphComponent();
    +		final mxGraph graph = graphComponent.getGraph();
    +		JMenu menu = null;
    +		JMenu submenu = null;
    +
    +		// Creates the file menu
    +		menu = add(new JMenu(mxResources.get("file")));
    +
    +		menu.add(editor.bind(mxResources.get("new"), new NewAction(),
    +				"/com/mxgraph/examples/swing/images/new.gif"));
    +		menu.add(editor.bind(mxResources.get("openFile"), new OpenAction(),
    +				"/com/mxgraph/examples/swing/images/open.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("save"), new SaveAction(false),
    +				"/com/mxgraph/examples/swing/images/save.gif"));
    +		menu.add(editor.bind(mxResources.get("saveAs"), new SaveAction(true),
    +				"/com/mxgraph/examples/swing/images/saveas.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("pageSetup"),
    +				new PageSetupAction(),
    +				"/com/mxgraph/examples/swing/images/pagesetup.gif"));
    +		menu.add(editor.bind(mxResources.get("print"), new PrintAction(),
    +				"/com/mxgraph/examples/swing/images/print.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("exit"), new ExitAction()));
    +
    +		// Creates the edit menu
    +		menu = add(new JMenu(mxResources.get("edit")));
    +
    +		menu.add(editor.bind(mxResources.get("undo"), new HistoryAction(true),
    +				"/com/mxgraph/examples/swing/images/undo.gif"));
    +		menu.add(editor.bind(mxResources.get("redo"), new HistoryAction(false),
    +				"/com/mxgraph/examples/swing/images/redo.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("cut"), TransferHandler
    +				.getCutAction(), "/com/mxgraph/examples/swing/images/cut.gif"));
    +		menu.add(editor
    +				.bind(mxResources.get("copy"), TransferHandler.getCopyAction(),
    +						"/com/mxgraph/examples/swing/images/copy.gif"));
    +		menu.add(editor.bind(mxResources.get("paste"), TransferHandler
    +				.getPasteAction(),
    +				"/com/mxgraph/examples/swing/images/paste.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("delete"), mxGraphActions
    +				.getDeleteAction(),
    +				"/com/mxgraph/examples/swing/images/delete.gif"));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("selectAll"), mxGraphActions
    +				.getSelectAllAction()));
    +		menu.add(editor.bind(mxResources.get("selectNone"), mxGraphActions
    +				.getSelectNoneAction()));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("warning"), new WarningAction()));
    +		menu.add(editor.bind(mxResources.get("edit"), mxGraphActions
    +				.getEditAction()));
    +
    +		// Creates the view menu
    +		menu = add(new JMenu(mxResources.get("view")));
    +
    +		JMenuItem item = menu.add(new TogglePropertyItem(graphComponent,
    +				mxResources.get("pageLayout"), "PageVisible", true,
    +				new ActionListener()
    +				{
    +					/**
    +					 * 
    +					 */
    +					public void actionPerformed(ActionEvent e)
    +					{
    +						if (graphComponent.isPageVisible()
    +								&& graphComponent.isCenterPage())
    +						{
    +							graphComponent.zoomAndCenter();
    +						}
    +					}
    +				}));
    +
    +		item.addActionListener(new ActionListener()
    +		{
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				if (e.getSource() instanceof TogglePropertyItem)
    +				{
    +					final mxGraphComponent graphComponent = editor
    +							.getGraphComponent();
    +					TogglePropertyItem toggleItem = (TogglePropertyItem) e
    +							.getSource();
    +
    +					if (toggleItem.isSelected())
    +					{
    +						// Scrolls the view to the center
    +						SwingUtilities.invokeLater(new Runnable()
    +						{
    +							/*
    +							 * (non-Javadoc)
    +							 * @see java.lang.Runnable#run()
    +							 */
    +							public void run()
    +							{
    +								graphComponent.scrollToCenter(true);
    +								graphComponent.scrollToCenter(false);
    +							}
    +						});
    +					}
    +					else
    +					{
    +						// Resets the translation of the view
    +						mxPoint tr = graphComponent.getGraph().getView()
    +								.getTranslate();
    +
    +						if (tr.getX() != 0 || tr.getY() != 0)
    +						{
    +							graphComponent.getGraph().getView().setTranslate(
    +									new mxPoint());
    +						}
    +					}
    +				}
    +			}
    +		});
    +
    +		menu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("antialias"), "AntiAlias", true));
    +
    +		menu.addSeparator();
    +
    +		menu.add(new ToggleGridItem(editor, mxResources.get("grid")));
    +		menu.add(new ToggleRulersItem(editor, mxResources.get("rulers")));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("zoom")));
    +
    +		submenu.add(editor.bind("400%", new ScaleAction(4)));
    +		submenu.add(editor.bind("200%", new ScaleAction(2)));
    +		submenu.add(editor.bind("150%", new ScaleAction(1.5)));
    +		submenu.add(editor.bind("100%", new ScaleAction(1)));
    +		submenu.add(editor.bind("75%", new ScaleAction(0.75)));
    +		submenu.add(editor.bind("50%", new ScaleAction(0.5)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("custom"), new ScaleAction(0)));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("zoomIn"), mxGraphActions
    +				.getZoomInAction()));
    +		menu.add(editor.bind(mxResources.get("zoomOut"), mxGraphActions
    +				.getZoomOutAction()));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("page"), new ZoomPolicyAction(
    +				mxGraphComponent.ZOOM_POLICY_PAGE)));
    +		menu.add(editor.bind(mxResources.get("width"), new ZoomPolicyAction(
    +				mxGraphComponent.ZOOM_POLICY_WIDTH)));
    +
    +		menu.addSeparator();
    +
    +		menu.add(editor.bind(mxResources.get("actualSize"), mxGraphActions
    +				.getZoomActualAction()));
    +
    +		// Creates the diagram menu
    +		menu = add(new JMenu(mxResources.get("diagram")));
    +
    +		menu.add(new ToggleOutlineItem(editor, mxResources.get("outline")));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("background")));
    +
    +		submenu.add(editor.bind(mxResources.get("backgroundColor"),
    +				new BackgroundAction()));
    +		submenu.add(editor.bind(mxResources.get("backgroundImage"),
    +				new BackgroundImageAction()));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("pageBackground"),
    +				new PageBackgroundAction()));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("grid")));
    +
    +		submenu.add(editor.bind(mxResources.get("gridSize"),
    +				new PromptPropertyAction(graph, "Grid Size", "GridSize")));
    +		submenu.add(editor.bind(mxResources.get("gridColor"),
    +				new GridColorAction()));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("dashed"), new GridStyleAction(
    +				mxGraphComponent.GRID_STYLE_DASHED)));
    +		submenu.add(editor.bind(mxResources.get("dot"), new GridStyleAction(
    +				mxGraphComponent.GRID_STYLE_DOT)));
    +		submenu.add(editor.bind(mxResources.get("line"), new GridStyleAction(
    +				mxGraphComponent.GRID_STYLE_LINE)));
    +		submenu.add(editor.bind(mxResources.get("cross"), new GridStyleAction(
    +				mxGraphComponent.GRID_STYLE_CROSS)));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("layout")));
    +
    +		submenu.add(editor.graphLayout("verticalHierarchical", true));
    +		submenu.add(editor.graphLayout("horizontalHierarchical", true));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("verticalPartition", false));
    +		submenu.add(editor.graphLayout("horizontalPartition", false));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("verticalStack", false));
    +		submenu.add(editor.graphLayout("horizontalStack", false));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("verticalTree", true));
    +		submenu.add(editor.graphLayout("horizontalTree", true));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("parallelEdges", false));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.graphLayout("organicLayout", true));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("selection")));
    +
    +		submenu.add(editor.bind(mxResources.get("selectPath"),
    +				new SelectShortestPathAction(false)));
    +		submenu.add(editor.bind(mxResources.get("selectDirectedPath"),
    +				new SelectShortestPathAction(true)));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("selectTree"),
    +				new SelectSpanningTreeAction(false)));
    +		submenu.add(editor.bind(mxResources.get("selectDirectedTree"),
    +				new SelectSpanningTreeAction(true)));
    +
    +		menu.addSeparator();
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("stylesheet")));
    +
    +		submenu
    +				.add(editor
    +						.bind(
    +								mxResources.get("basicStyle"),
    +								new StylesheetAction(
    +										"/com/mxgraph/examples/swing/resources/basic-style.xml")));
    +		submenu
    +				.add(editor
    +						.bind(
    +								mxResources.get("defaultStyle"),
    +								new StylesheetAction(
    +										"/com/mxgraph/examples/swing/resources/default-style.xml")));
    +
    +		// Creates the options menu
    +		menu = add(new JMenu(mxResources.get("options")));
    +
    +		submenu = (JMenu) menu.add(new JMenu(mxResources.get("display")));
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("buffering"), "TripleBuffered", true));
    +		submenu.add(editor.bind(mxResources.get("dirty"),
    +				new ToggleDirtyAction()));
    +
    +		submenu.addSeparator();
    +
    +		item = submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("centerPage"), "CenterPage", true, new ActionListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				if (graphComponent.isPageVisible()
    +						&& graphComponent.isCenterPage())
    +				{
    +					graphComponent.zoomAndCenter();
    +				}
    +			}
    +		}));
    +
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("centerZoom"), "CenterZoom", true));
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("zoomToSelection"), "KeepSelectionVisibleOnZoom", true));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +				.get("preferPagesize"), "PreferPageSize", true));
    +
    +		// This feature is not yet implemented
    +		//submenu.add(new TogglePropertyItem(graphComponent, mxResources
    +		//		.get("pageBreaks"), "PageBreaksVisible", true));
    +
    +		submenu.addSeparator();
    +
    +		submenu.add(editor.bind(mxResources.get("tolerance"),
    +				new PromptPropertyAction(graph, "Tolerance")));
    +
    +		// Creates the window menu
    +		menu = add(new JMenu(mxResources.get("window")));
    +
    +		UIManager.LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
    +
    +		for (int i = 0; i < lafs.length; i++)
    +		{
    +			final String clazz = lafs[i].getClassName();
    +			menu.add(new AbstractAction(lafs[i].getName())
    +			{
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					editor.setLookAndFeel(clazz);
    +				}
    +			});
    +		}
    +
    +		// Creates the help menu
    +		menu = add(new JMenu(mxResources.get("help")));
    +
    +		item = menu.add(new JMenuItem(mxResources.get("aboutGraphEditor")));
    +		item.addActionListener(new ActionListener()
    +		{
    +			/*
    +			 * (non-Javadoc)
    +			 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				editor.about();
    +			}
    +		});
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/SchemaEditorToolBar.java b/java/examples/com/mxgraph/examples/swing/editor/SchemaEditorToolBar.java
    new file mode 100644
    index 000000000..77ed4bfa3
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/SchemaEditorToolBar.java
    @@ -0,0 +1,181 @@
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.Dimension;
    +import java.awt.event.ActionEvent;
    +import java.awt.event.ActionListener;
    +
    +import javax.swing.BorderFactory;
    +import javax.swing.JComboBox;
    +import javax.swing.JOptionPane;
    +import javax.swing.JToolBar;
    +import javax.swing.TransferHandler;
    +
    +import com.mxgraph.examples.swing.editor.EditorActions.HistoryAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.NewAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.OpenAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.PrintAction;
    +import com.mxgraph.examples.swing.editor.EditorActions.SaveAction;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxGraphActions;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.view.mxGraphView;
    +
    +public class SchemaEditorToolBar extends JToolBar
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -3979320704834605323L;
    +
    +	/**
    +	 * 
    +	 * @param frame
    +	 * @param orientation
    +	 */
    +	private boolean ignoreZoomChange = false;
    +
    +	/**
    +	 * 
    +	 */
    +	public SchemaEditorToolBar(final BasicGraphEditor editor, int orientation)
    +	{
    +		super(orientation);
    +		setBorder(BorderFactory.createCompoundBorder(BorderFactory
    +				.createEmptyBorder(3, 3, 3, 3), getBorder()));
    +		setFloatable(false);
    +
    +		add(editor.bind("New", new NewAction(),
    +				"/com/mxgraph/examples/swing/images/new.gif"));
    +		add(editor.bind("Open", new OpenAction(),
    +				"/com/mxgraph/examples/swing/images/open.gif"));
    +		add(editor.bind("Save", new SaveAction(false),
    +				"/com/mxgraph/examples/swing/images/save.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Print", new PrintAction(),
    +				"/com/mxgraph/examples/swing/images/print.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Cut", TransferHandler.getCutAction(),
    +				"/com/mxgraph/examples/swing/images/cut.gif"));
    +		add(editor.bind("Copy", TransferHandler.getCopyAction(),
    +				"/com/mxgraph/examples/swing/images/copy.gif"));
    +		add(editor.bind("Paste", TransferHandler.getPasteAction(),
    +				"/com/mxgraph/examples/swing/images/paste.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Delete", mxGraphActions.getDeleteAction(),
    +				"/com/mxgraph/examples/swing/images/delete.gif"));
    +
    +		addSeparator();
    +
    +		add(editor.bind("Undo", new HistoryAction(true),
    +				"/com/mxgraph/examples/swing/images/undo.gif"));
    +		add(editor.bind("Redo", new HistoryAction(false),
    +				"/com/mxgraph/examples/swing/images/redo.gif"));
    +
    +		addSeparator();
    +
    +		final mxGraphView view = editor.getGraphComponent().getGraph()
    +				.getView();
    +		final JComboBox zoomCombo = new JComboBox(new Object[] { "400%",
    +				"200%", "150%", "100%", "75%", "50%", mxResources.get("page"),
    +				mxResources.get("width"), mxResources.get("actualSize") });
    +		zoomCombo.setEditable(true);
    +		zoomCombo.setMinimumSize(new Dimension(75, 0));
    +		zoomCombo.setPreferredSize(new Dimension(75, 0));
    +		zoomCombo.setMaximumSize(new Dimension(75, 100));
    +		zoomCombo.setMaximumRowCount(9);
    +		add(zoomCombo);
    +
    +		// Sets the zoom in the zoom combo the current value
    +		mxIEventListener scaleTracker = new mxIEventListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				ignoreZoomChange = true;
    +
    +				try
    +				{
    +					zoomCombo.setSelectedItem((int) Math.round(100 * view
    +							.getScale())
    +							+ "%");
    +				}
    +				finally
    +				{
    +					ignoreZoomChange = false;
    +				}
    +			}
    +		};
    +
    +		// Installs the scale tracker to update the value in the combo box
    +		// if the zoom is changed from outside the combo box
    +		view.getGraph().getView().addListener(mxEvent.SCALE, scaleTracker);
    +		view.getGraph().getView().addListener(mxEvent.SCALE_AND_TRANSLATE,
    +				scaleTracker);
    +
    +		// Invokes once to sync with the actual zoom value
    +		scaleTracker.invoke(null, null);
    +
    +		zoomCombo.addActionListener(new ActionListener()
    +		{
    +			/**
    +			 * 
    +			 */
    +			public void actionPerformed(ActionEvent e)
    +			{
    +				mxGraphComponent graphComponent = editor.getGraphComponent();
    +
    +				// Zoomcombo is changed when the scale is changed in the diagram
    +				// but the change is ignored here
    +				if (!ignoreZoomChange)
    +				{
    +					String zoom = zoomCombo.getSelectedItem().toString();
    +
    +					if (zoom.equals(mxResources.get("page")))
    +					{
    +						graphComponent.setPageVisible(true);
    +						graphComponent
    +								.setZoomPolicy(mxGraphComponent.ZOOM_POLICY_PAGE);
    +					}
    +					else if (zoom.equals(mxResources.get("width")))
    +					{
    +						graphComponent.setPageVisible(true);
    +						graphComponent
    +								.setZoomPolicy(mxGraphComponent.ZOOM_POLICY_WIDTH);
    +					}
    +					else if (zoom.equals(mxResources.get("actualSize")))
    +					{
    +						graphComponent.zoomActual();
    +					}
    +					else
    +					{
    +						try
    +						{
    +							zoom = zoom.replace("%", "");
    +							double scale = Math.min(16, Math.max(0.01,
    +									Double.parseDouble(zoom) / 100));
    +							graphComponent.zoomTo(scale, graphComponent
    +									.isCenterZoom());
    +						}
    +						catch (Exception ex)
    +						{
    +							JOptionPane.showMessageDialog(editor, ex
    +									.getMessage());
    +						}
    +					}
    +				}
    +			}
    +		});
    +	}
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/SchemaGraphComponent.java b/java/examples/com/mxgraph/examples/swing/editor/SchemaGraphComponent.java
    new file mode 100644
    index 000000000..b38f02381
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/SchemaGraphComponent.java
    @@ -0,0 +1,148 @@
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.Component;
    +
    +import javax.swing.JTable;
    +import javax.swing.JViewport;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +
    +public class SchemaGraphComponent extends mxGraphComponent
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -1152655782652932774L;
    +
    +	/**
    +	 * 
    +	 * @param graph
    +	 */
    +	public SchemaGraphComponent(mxGraph graph)
    +	{
    +		super(graph);
    +
    +		mxGraphView graphView = new mxGraphView(graph)
    +		{
    +
    +			/**
    +			 * 
    +			 */
    +			public void updateFloatingTerminalPoint(mxCellState edge,
    +					mxCellState start, mxCellState end, boolean isSource)
    +			{
    +				int col = getColumn(edge, isSource);
    +
    +				if (col >= 0)
    +				{
    +					double y = getColumnLocation(edge, start, col);
    +					boolean left = start.getX() > end.getX();
    +
    +					if (isSource)
    +					{
    +						double diff = Math.abs(start.getCenterX()
    +								- end.getCenterX())
    +								- start.getWidth() / 2 - end.getWidth() / 2;
    +
    +						if (diff < 40)
    +						{
    +							left = !left;
    +						}
    +					}
    +
    +					double x = (left) ? start.getX() : start.getX()
    +							+ start.getWidth();
    +					double x2 = (left) ? start.getX() - 20 : start.getX()
    +							+ start.getWidth() + 20;
    +
    +					int index2 = (isSource) ? 1
    +							: edge.getAbsolutePointCount() - 1;
    +					edge.getAbsolutePoints().add(index2, new mxPoint(x2, y));
    +
    +					int index = (isSource) ? 0
    +							: edge.getAbsolutePointCount() - 1;
    +					edge.setAbsolutePoint(index, new mxPoint(x, y));
    +				}
    +				else
    +				{
    +					super.updateFloatingTerminalPoint(edge, start, end,
    +							isSource);
    +				}
    +			}
    +		};
    +
    +		graph.setView(graphView);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param edge
    +	 * @param isSource
    +	 * @return the column number the edge is attached to
    +	 */
    +	public int getColumn(mxCellState state, boolean isSource)
    +	{
    +		if (state != null)
    +		{
    +			if (isSource)
    +			{
    +				return mxUtils.getInt(state.getStyle(), "sourceRow", -1);
    +			}
    +			else
    +			{
    +				return mxUtils.getInt(state.getStyle(), "targetRow", -1);
    +			}
    +		}
    +
    +		return -1;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getColumnLocation(mxCellState edge, mxCellState terminal,
    +			int column)
    +	{
    +		Component[] c = components.get(terminal.getCell());
    +		int y = 0;
    +
    +		if (c != null)
    +		{
    +			for (int i = 0; i < c.length; i++)
    +			{
    +				if (c[i] instanceof JTableRenderer)
    +				{
    +					JTableRenderer vertex = (JTableRenderer) c[i];
    +
    +					JTable table = vertex.table;
    +					JViewport viewport = (JViewport) table.getParent();
    +					double dy = -viewport.getViewPosition().getY();
    +					y = (int) Math.max(terminal.getY() + 22, terminal.getY()
    +							+ Math.min(terminal.getHeight() - 20, 30 + dy
    +									+ column * 16));
    +				}
    +			}
    +		}
    +
    +		return y;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Component[] createComponents(mxCellState state)
    +	{
    +		if (getGraph().getModel().isVertex(state.getCell()))
    +		{
    +			return new Component[] { new JTableRenderer(state.getCell(), this) };
    +		}
    +
    +		return null;
    +	}
    +}
    diff --git a/java/examples/com/mxgraph/examples/swing/editor/ShadowBorder.java b/java/examples/com/mxgraph/examples/swing/editor/ShadowBorder.java
    new file mode 100644
    index 000000000..e6a844c50
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/editor/ShadowBorder.java
    @@ -0,0 +1,95 @@
    +/*
    + * $Id: ShadowBorder.java,v 1.2 2009-11-24 12:00:28 gaudenz Exp $
    + * Copyright (c) 2001-2005, Gaudenz Alder
    + * 
    + * All rights reserved. 
    + * 
    + * This file is licensed under the JGraph software license, a copy of which
    + * will have been provided to you in the file LICENSE at the root of your
    + * installation directory. If you are unable to locate this file please
    + * contact JGraph sales for another copy.
    + */
    +package com.mxgraph.examples.swing.editor;
    +
    +import java.awt.Color;
    +import java.awt.Component;
    +import java.awt.Graphics;
    +import java.awt.Insets;
    +import java.io.Serializable;
    +
    +import javax.swing.border.Border;
    +
    +/**
    + * Border with a drop shadow.
    + */
    +public class ShadowBorder implements Border, Serializable
    +{
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 6854989457150641240L;
    +
    +	private Insets insets;
    +
    +	public static ShadowBorder sharedInstance = new ShadowBorder();
    +
    +	private ShadowBorder()
    +	{
    +		insets = new Insets(0, 0, 2, 2);
    +	}
    +
    +	public Insets getBorderInsets(Component c)
    +	{
    +		return insets;
    +	}
    +
    +	public boolean isBorderOpaque()
    +	{
    +		return false;
    +	}
    +
    +	public void paintBorder(Component c, Graphics g, int x, int y, int w, int h)
    +	{
    +		// choose which colors we want to use
    +		Color bg = c.getBackground();
    +
    +		if (c.getParent() != null)
    +		{
    +			bg = c.getParent().getBackground();
    +		}
    +
    +		if (bg != null)
    +		{
    +			Color mid = bg.darker();
    +			Color edge = average(mid, bg);
    +
    +			g.setColor(bg);
    +			g.drawLine(0, h - 2, w, h - 2);
    +			g.drawLine(0, h - 1, w, h - 1);
    +			g.drawLine(w - 2, 0, w - 2, h);
    +			g.drawLine(w - 1, 0, w - 1, h);
    +
    +			// draw the drop-shadow
    +			g.setColor(mid);
    +			g.drawLine(1, h - 2, w - 2, h - 2);
    +			g.drawLine(w - 2, 1, w - 2, h - 2);
    +
    +			g.setColor(edge);
    +			g.drawLine(2, h - 1, w - 2, h - 1);
    +			g.drawLine(w - 1, 2, w - 1, h - 2);
    +		}
    +	}
    +
    +	private static Color average(Color c1, Color c2)
    +	{
    +		int red = c1.getRed() + (c2.getRed() - c1.getRed()) / 2;
    +		int green = c1.getGreen() + (c2.getGreen() - c1.getGreen()) / 2;
    +		int blue = c1.getBlue() + (c2.getBlue() - c1.getBlue()) / 2;
    +		return new Color(red, green, blue);
    +	}
    +
    +	public static ShadowBorder getSharedInstance()
    +	{
    +		return sharedInstance;
    +	}
    +}
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/images/actor.png b/java/examples/com/mxgraph/examples/swing/images/actor.png
    new file mode 100644
    index 000000000..cc066fee0
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/actor.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/alignbottom.gif b/java/examples/com/mxgraph/examples/swing/images/alignbottom.gif
    new file mode 100644
    index 000000000..bdbfc2810
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/alignbottom.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/aligncenter.gif b/java/examples/com/mxgraph/examples/swing/images/aligncenter.gif
    new file mode 100644
    index 000000000..70458d423
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/aligncenter.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/alignleft.gif b/java/examples/com/mxgraph/examples/swing/images/alignleft.gif
    new file mode 100644
    index 000000000..270281583
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/alignleft.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/alignmiddle.gif b/java/examples/com/mxgraph/examples/swing/images/alignmiddle.gif
    new file mode 100644
    index 000000000..bdd401313
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/alignmiddle.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/alignright.gif b/java/examples/com/mxgraph/examples/swing/images/alignright.gif
    new file mode 100644
    index 000000000..3530a615a
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/alignright.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/aligntop.gif b/java/examples/com/mxgraph/examples/swing/images/aligntop.gif
    new file mode 100644
    index 000000000..7b06da43c
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/aligntop.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/arrow.gif b/java/examples/com/mxgraph/examples/swing/images/arrow.gif
    new file mode 100644
    index 000000000..28b08e5d0
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/arrow.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/arrow.png b/java/examples/com/mxgraph/examples/swing/images/arrow.png
    new file mode 100644
    index 000000000..a1c1918bc
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/arrow.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/bell.png b/java/examples/com/mxgraph/examples/swing/images/bell.png
    new file mode 100644
    index 000000000..3d30cc98f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/bell.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/block_end.gif b/java/examples/com/mxgraph/examples/swing/images/block_end.gif
    new file mode 100644
    index 000000000..1079eaee7
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/block_end.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/block_start.gif b/java/examples/com/mxgraph/examples/swing/images/block_start.gif
    new file mode 100644
    index 000000000..deacc194d
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/block_start.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/bold.gif b/java/examples/com/mxgraph/examples/swing/images/bold.gif
    new file mode 100644
    index 000000000..06d523cc7
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/bold.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/bottom.gif b/java/examples/com/mxgraph/examples/swing/images/bottom.gif
    new file mode 100644
    index 000000000..24fa94427
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/bottom.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/box.png b/java/examples/com/mxgraph/examples/swing/images/box.png
    new file mode 100644
    index 000000000..cbff40d40
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/box.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/cancel_end.png b/java/examples/com/mxgraph/examples/swing/images/cancel_end.png
    new file mode 100644
    index 000000000..7aa854c78
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/cancel_end.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/cancel_intermediate.png b/java/examples/com/mxgraph/examples/swing/images/cancel_intermediate.png
    new file mode 100644
    index 000000000..920299cee
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/cancel_intermediate.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/center.gif b/java/examples/com/mxgraph/examples/swing/images/center.gif
    new file mode 100644
    index 000000000..34c09f34d
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/center.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/classic_end.gif b/java/examples/com/mxgraph/examples/swing/images/classic_end.gif
    new file mode 100644
    index 000000000..69693e3b5
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/classic_end.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/classic_start.gif b/java/examples/com/mxgraph/examples/swing/images/classic_start.gif
    new file mode 100644
    index 000000000..9d25f092f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/classic_start.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/cloud.png b/java/examples/com/mxgraph/examples/swing/images/cloud.png
    new file mode 100644
    index 000000000..935d7577f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/cloud.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/collapse.gif b/java/examples/com/mxgraph/examples/swing/images/collapse.gif
    new file mode 100644
    index 000000000..c45625eb7
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/collapse.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/connect.gif b/java/examples/com/mxgraph/examples/swing/images/connect.gif
    new file mode 100644
    index 000000000..39f5d2122
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/connect.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/connect.png b/java/examples/com/mxgraph/examples/swing/images/connect.png
    new file mode 100644
    index 000000000..4d31c1443
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/connect.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/connector.gif b/java/examples/com/mxgraph/examples/swing/images/connector.gif
    new file mode 100644
    index 000000000..326e061ea
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/connector.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/copy.gif b/java/examples/com/mxgraph/examples/swing/images/copy.gif
    new file mode 100644
    index 000000000..18c903e61
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/copy.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/cube_green.png b/java/examples/com/mxgraph/examples/swing/images/cube_green.png
    new file mode 100644
    index 000000000..af0cdc1b0
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/cube_green.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/cut.gif b/java/examples/com/mxgraph/examples/swing/images/cut.gif
    new file mode 100644
    index 000000000..d5ffbbd24
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/cut.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/cylinder.png b/java/examples/com/mxgraph/examples/swing/images/cylinder.png
    new file mode 100644
    index 000000000..c82ed5cc4
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/cylinder.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/delete.gif b/java/examples/com/mxgraph/examples/swing/images/delete.gif
    new file mode 100644
    index 000000000..e1956be4d
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/delete.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/diagram.gif b/java/examples/com/mxgraph/examples/swing/images/diagram.gif
    new file mode 100644
    index 000000000..30267c964
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/diagram.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/diamond_end.gif b/java/examples/com/mxgraph/examples/swing/images/diamond_end.gif
    new file mode 100644
    index 000000000..7b42fb588
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/diamond_end.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/diamond_start.gif b/java/examples/com/mxgraph/examples/swing/images/diamond_start.gif
    new file mode 100644
    index 000000000..8d5ba0515
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/diamond_start.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/doubleellipse.png b/java/examples/com/mxgraph/examples/swing/images/doubleellipse.png
    new file mode 100644
    index 000000000..934615dd3
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/doubleellipse.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/down.gif b/java/examples/com/mxgraph/examples/swing/images/down.gif
    new file mode 100644
    index 000000000..3bed86ef2
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/down.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/dude3.png b/java/examples/com/mxgraph/examples/swing/images/dude3.png
    new file mode 100644
    index 000000000..fa5ca5aaa
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/dude3.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/earth.png b/java/examples/com/mxgraph/examples/swing/images/earth.png
    new file mode 100644
    index 000000000..4493880c2
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/earth.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/ellipse.png b/java/examples/com/mxgraph/examples/swing/images/ellipse.png
    new file mode 100644
    index 000000000..bfccca9a0
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/ellipse.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/entity.gif b/java/examples/com/mxgraph/examples/swing/images/entity.gif
    new file mode 100644
    index 000000000..d04e93a0d
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/entity.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/entity.png b/java/examples/com/mxgraph/examples/swing/images/entity.png
    new file mode 100644
    index 000000000..20fcb83fa
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/entity.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/error.png b/java/examples/com/mxgraph/examples/swing/images/error.png
    new file mode 100644
    index 000000000..ffcfe8afd
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/error.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/event.png b/java/examples/com/mxgraph/examples/swing/images/event.png
    new file mode 100644
    index 000000000..50486be0d
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/event.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/event_end.png b/java/examples/com/mxgraph/examples/swing/images/event_end.png
    new file mode 100644
    index 000000000..928d08303
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/event_end.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/event_intermediate.png b/java/examples/com/mxgraph/examples/swing/images/event_intermediate.png
    new file mode 100644
    index 000000000..f14bd8023
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/event_intermediate.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/expand.gif b/java/examples/com/mxgraph/examples/swing/images/expand.gif
    new file mode 100644
    index 000000000..7da3ff8a6
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/expand.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/fillcolor.gif b/java/examples/com/mxgraph/examples/swing/images/fillcolor.gif
    new file mode 100644
    index 000000000..dffe6f545
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/fillcolor.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/fit.gif b/java/examples/com/mxgraph/examples/swing/images/fit.gif
    new file mode 100644
    index 000000000..8d7bff811
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/fit.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/font.gif b/java/examples/com/mxgraph/examples/swing/images/font.gif
    new file mode 100644
    index 000000000..7f276c327
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/font.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/fontcolor.gif b/java/examples/com/mxgraph/examples/swing/images/fontcolor.gif
    new file mode 100644
    index 000000000..0a7f017a1
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/fontcolor.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/fork.png b/java/examples/com/mxgraph/examples/swing/images/fork.png
    new file mode 100644
    index 000000000..042cd9bcf
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/fork.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/gear.png b/java/examples/com/mxgraph/examples/swing/images/gear.png
    new file mode 100644
    index 000000000..647d897fd
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/gear.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/group.gif b/java/examples/com/mxgraph/examples/swing/images/group.gif
    new file mode 100644
    index 000000000..af798364c
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/group.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/hexagon.png b/java/examples/com/mxgraph/examples/swing/images/hexagon.png
    new file mode 100644
    index 000000000..eb1ed2b22
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/hexagon.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/hline.png b/java/examples/com/mxgraph/examples/swing/images/hline.png
    new file mode 100644
    index 000000000..486548321
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/hline.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/house.gif b/java/examples/com/mxgraph/examples/swing/images/house.gif
    new file mode 100644
    index 000000000..84c6b1565
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/house.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/house.png b/java/examples/com/mxgraph/examples/swing/images/house.png
    new file mode 100644
    index 000000000..e4986bcb6
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/house.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/image.gif b/java/examples/com/mxgraph/examples/swing/images/image.gif
    new file mode 100644
    index 000000000..0a503569f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/image.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/inclusive.png b/java/examples/com/mxgraph/examples/swing/images/inclusive.png
    new file mode 100644
    index 000000000..6111cc194
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/inclusive.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/italic.gif b/java/examples/com/mxgraph/examples/swing/images/italic.gif
    new file mode 100644
    index 000000000..301cfc794
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/italic.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/left.gif b/java/examples/com/mxgraph/examples/swing/images/left.gif
    new file mode 100644
    index 000000000..235e780fb
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/left.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/linecolor.gif b/java/examples/com/mxgraph/examples/swing/images/linecolor.gif
    new file mode 100644
    index 000000000..96068a64d
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/linecolor.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/link.png b/java/examples/com/mxgraph/examples/swing/images/link.png
    new file mode 100644
    index 000000000..792572b4e
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/link.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/maximize.gif b/java/examples/com/mxgraph/examples/swing/images/maximize.gif
    new file mode 100644
    index 000000000..fde8c4ba3
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/maximize.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/merge.png b/java/examples/com/mxgraph/examples/swing/images/merge.png
    new file mode 100644
    index 000000000..abc17ebbc
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/merge.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/message.png b/java/examples/com/mxgraph/examples/swing/images/message.png
    new file mode 100644
    index 000000000..21cc97dd3
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/message.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/message_end.png b/java/examples/com/mxgraph/examples/swing/images/message_end.png
    new file mode 100644
    index 000000000..3b2a4d8ff
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/message_end.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/message_intermediate.png b/java/examples/com/mxgraph/examples/swing/images/message_intermediate.png
    new file mode 100644
    index 000000000..80b25048c
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/message_intermediate.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/middle.gif b/java/examples/com/mxgraph/examples/swing/images/middle.gif
    new file mode 100644
    index 000000000..33eed00fc
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/middle.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/minimize.gif b/java/examples/com/mxgraph/examples/swing/images/minimize.gif
    new file mode 100644
    index 000000000..4f334611a
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/minimize.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/multiple.png b/java/examples/com/mxgraph/examples/swing/images/multiple.png
    new file mode 100644
    index 000000000..89a12001b
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/multiple.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/new.gif b/java/examples/com/mxgraph/examples/swing/images/new.gif
    new file mode 100644
    index 000000000..6fcd1bc5a
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/new.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/open.gif b/java/examples/com/mxgraph/examples/swing/images/open.gif
    new file mode 100644
    index 000000000..2df1d8957
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/open.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/open_end.gif b/java/examples/com/mxgraph/examples/swing/images/open_end.gif
    new file mode 100644
    index 000000000..5ae275e97
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/open_end.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/open_start.gif b/java/examples/com/mxgraph/examples/swing/images/open_start.gif
    new file mode 100644
    index 000000000..d58ca46f7
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/open_start.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/outline.gif b/java/examples/com/mxgraph/examples/swing/images/outline.gif
    new file mode 100644
    index 000000000..e04d92bc0
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/outline.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/oval_end.gif b/java/examples/com/mxgraph/examples/swing/images/oval_end.gif
    new file mode 100644
    index 000000000..c13fc6aa8
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/oval_end.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/oval_start.gif b/java/examples/com/mxgraph/examples/swing/images/oval_start.gif
    new file mode 100644
    index 000000000..213de962c
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/oval_start.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/package.png b/java/examples/com/mxgraph/examples/swing/images/package.png
    new file mode 100644
    index 000000000..2bc612307
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/package.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/pagesetup.gif b/java/examples/com/mxgraph/examples/swing/images/pagesetup.gif
    new file mode 100644
    index 000000000..5fa743e4f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/pagesetup.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/pan.gif b/java/examples/com/mxgraph/examples/swing/images/pan.gif
    new file mode 100644
    index 000000000..ecd68bff0
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/pan.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/paste.gif b/java/examples/com/mxgraph/examples/swing/images/paste.gif
    new file mode 100644
    index 000000000..242ecb184
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/paste.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/plain.gif b/java/examples/com/mxgraph/examples/swing/images/plain.gif
    new file mode 100644
    index 000000000..6c914d821
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/plain.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/preferences.gif b/java/examples/com/mxgraph/examples/swing/images/preferences.gif
    new file mode 100644
    index 000000000..1f6407e6f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/preferences.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/preview.gif b/java/examples/com/mxgraph/examples/swing/images/preview.gif
    new file mode 100644
    index 000000000..a77258bcf
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/preview.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/print.gif b/java/examples/com/mxgraph/examples/swing/images/print.gif
    new file mode 100644
    index 000000000..ac948dfea
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/print.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/printer.png b/java/examples/com/mxgraph/examples/swing/images/printer.png
    new file mode 100644
    index 000000000..7d364686a
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/printer.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/rectangle.png b/java/examples/com/mxgraph/examples/swing/images/rectangle.png
    new file mode 100644
    index 000000000..20e4ae8d7
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/rectangle.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/redo.gif b/java/examples/com/mxgraph/examples/swing/images/redo.gif
    new file mode 100644
    index 000000000..2090f344f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/redo.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/resize.gif b/java/examples/com/mxgraph/examples/swing/images/resize.gif
    new file mode 100644
    index 000000000..2b40e020e
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/resize.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/rhombus.png b/java/examples/com/mxgraph/examples/swing/images/rhombus.png
    new file mode 100644
    index 000000000..836726b50
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/rhombus.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/right.gif b/java/examples/com/mxgraph/examples/swing/images/right.gif
    new file mode 100644
    index 000000000..9c06d30c4
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/right.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/rounded.png b/java/examples/com/mxgraph/examples/swing/images/rounded.png
    new file mode 100644
    index 000000000..36f978019
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/rounded.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/rule.png b/java/examples/com/mxgraph/examples/swing/images/rule.png
    new file mode 100644
    index 000000000..4b2d7695b
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/rule.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/save.gif b/java/examples/com/mxgraph/examples/swing/images/save.gif
    new file mode 100644
    index 000000000..d0d261cbd
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/save.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/saveas.gif b/java/examples/com/mxgraph/examples/swing/images/saveas.gif
    new file mode 100644
    index 000000000..fbe40b213
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/saveas.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/select.gif b/java/examples/com/mxgraph/examples/swing/images/select.gif
    new file mode 100644
    index 000000000..bbe3c080f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/select.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/server.png b/java/examples/com/mxgraph/examples/swing/images/server.png
    new file mode 100644
    index 000000000..9621c6e46
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/server.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/straight.gif b/java/examples/com/mxgraph/examples/swing/images/straight.gif
    new file mode 100644
    index 000000000..3b5b06115
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/straight.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/straight.png b/java/examples/com/mxgraph/examples/swing/images/straight.png
    new file mode 100644
    index 000000000..265e85278
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/straight.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/swimlane.png b/java/examples/com/mxgraph/examples/swing/images/swimlane.png
    new file mode 100644
    index 000000000..b3c6c9081
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/swimlane.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/terminate.png b/java/examples/com/mxgraph/examples/swing/images/terminate.png
    new file mode 100644
    index 000000000..e862039fc
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/terminate.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/timer.png b/java/examples/com/mxgraph/examples/swing/images/timer.png
    new file mode 100644
    index 000000000..247eb9eaa
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/timer.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/toback.gif b/java/examples/com/mxgraph/examples/swing/images/toback.gif
    new file mode 100644
    index 000000000..da3e471b5
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/toback.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/tofront.gif b/java/examples/com/mxgraph/examples/swing/images/tofront.gif
    new file mode 100644
    index 000000000..c3b6cdc0b
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/tofront.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/top.gif b/java/examples/com/mxgraph/examples/swing/images/top.gif
    new file mode 100644
    index 000000000..5840a52c8
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/top.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/tree.gif b/java/examples/com/mxgraph/examples/swing/images/tree.gif
    new file mode 100644
    index 000000000..d067858ac
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/tree.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/triangle.png b/java/examples/com/mxgraph/examples/swing/images/triangle.png
    new file mode 100644
    index 000000000..83eee225a
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/triangle.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/undo.gif b/java/examples/com/mxgraph/examples/swing/images/undo.gif
    new file mode 100644
    index 000000000..30e28ce40
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/undo.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/ungroup.gif b/java/examples/com/mxgraph/examples/swing/images/ungroup.gif
    new file mode 100644
    index 000000000..0b0139a5a
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/ungroup.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/up.gif b/java/examples/com/mxgraph/examples/swing/images/up.gif
    new file mode 100644
    index 000000000..07164754e
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/up.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/vertical.gif b/java/examples/com/mxgraph/examples/swing/images/vertical.gif
    new file mode 100644
    index 000000000..be1ba6ce1
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/vertical.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/vertical.png b/java/examples/com/mxgraph/examples/swing/images/vertical.png
    new file mode 100644
    index 000000000..fab5305fa
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/vertical.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/workplace.png b/java/examples/com/mxgraph/examples/swing/images/workplace.png
    new file mode 100644
    index 000000000..3e2fad8a3
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/workplace.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/wrench.png b/java/examples/com/mxgraph/examples/swing/images/wrench.png
    new file mode 100644
    index 000000000..1be38b51a
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/wrench.png differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/zoom.gif b/java/examples/com/mxgraph/examples/swing/images/zoom.gif
    new file mode 100644
    index 000000000..b7a21a979
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/zoom.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/zoomactual.gif b/java/examples/com/mxgraph/examples/swing/images/zoomactual.gif
    new file mode 100644
    index 000000000..18119d535
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/zoomactual.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/zoomin.gif b/java/examples/com/mxgraph/examples/swing/images/zoomin.gif
    new file mode 100644
    index 000000000..fa1de900f
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/zoomin.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/images/zoomout.gif b/java/examples/com/mxgraph/examples/swing/images/zoomout.gif
    new file mode 100644
    index 000000000..21427ddd3
    Binary files /dev/null and b/java/examples/com/mxgraph/examples/swing/images/zoomout.gif differ
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/basic-style.xml b/java/examples/com/mxgraph/examples/swing/resources/basic-style.xml
    new file mode 100644
    index 000000000..0db526f28
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/basic-style.xml
    @@ -0,0 +1,77 @@
    +<mxStylesheet>
    +	<add as="defaultVertex">
    +		<add as="shape" value="label"/>
    +		<add as="perimeter" value="rectanglePerimeter"/>
    +		<add as="fontSize" value="11"/>
    +		<add as="align" value="center"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="strokeColor" value="black"/>
    +		<add as="fillColor" value="white"/>
    +	</add>
    +	<add as="defaultEdge">
    +		<add as="shape" value="connector"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="endArrow" value="classic"/>
    +		<add as="fontSize" value="10"/>
    +		<add as="align" value="center"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="strokeColor" value="black"/>
    +	</add>
    +	<add as="entity">
    +		<add as="edgeStyle" value="entityRelationEdgeStyle"/>
    +	</add>
    +	<add as="vertical">
    +		<add as="elbow" value="vertical"/>
    +	</add>
    +	<add as="straight">
    +		<add as="shape" value="connector"/>
    +		<add as="endArrow" value="classic"/>
    +		<add as="edgeStyle" value="none"/>
    +	</add>
    +	<add as="arrow">
    +		<add as="shape" value="arrow"/>
    +		<add as="fillColor" value="red"/>
    +	</add>
    +	<add as="swimlane">
    +		<add as="shape" value="swimlane"/>
    +		<add as="fontSize" value="12"/>
    +		<add as="fontStyle" value="1"/>
    +		<add as="startSize" value="23"/>
    +	</add>
    +	<add as="group">
    +		<add as="verticalAlign" value="top"/>
    +		<add as="dashed" value="1"/>
    +		<add as="opacity" value="50"/>
    +	</add>
    +	<add as="ellipse">
    +		<add as="shape" value="ellipse"/>
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombus">
    +		<add as="shape" value="rhombus"/>
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +	<add as="triangle">
    +		<add as="shape" value="triangle"/>
    +		<add as="perimeter" value="trianglePerimeter"/>
    +	</add>
    +	<add as="line">
    +		<add as="shape" value="line"/>
    +		<add as="strokeWidth" value="4"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="spacingTop" value="8"/>
    +	</add>
    +	<add as="image">
    +		<add as="shape" value="image"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="verticalLabelPosition" value="bottom"/>
    +		<add as="verticalAlign" value="top"/>
    +	</add>
    +	<add as="roundImage" extend="image">
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombusImage" extend="image">
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +</mxStylesheet>
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/default-style.xml b/java/examples/com/mxgraph/examples/swing/resources/default-style.xml
    new file mode 100644
    index 000000000..2bd75f726
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/default-style.xml
    @@ -0,0 +1,104 @@
    +<mxStylesheet>
    +	<include name="/com/mxgraph/examples/swing/resources/basic-style.xml"/>
    +	<add as="defaultVertex" extend="defaultVertex">
    +		<add as="fillColor" value="#adc5ff"/>
    +		<add as="gradientColor" value="#7d85df"/>
    +		<add as="strokeColor" value="#5d65df"/>
    +		<add as="fontSize" value="12"/>
    +		<add as="fontColor" value="#1d258f"/>
    +		<add as="fontFamily" value="Verdana"/>
    +	</add>
    +	<add as="defaultEdge" extend="defaultEdge">
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="rounded" value="1"/>
    +		<add as="edgeStyle" value="elbowEdgeStyle"/>
    +		<add as="strokeColor" value="#5d65df"/>
    +		<add as="fontSize" value="11"/>
    +		<add as="fontColor" value="#1d258f"/>
    +		<add as="fontFamily" value="Verdana"/>
    +	</add>
    +	<add as="label">
    +		<add as="shape" value="label"/>
    +		<add as="perimeter" value="rectanglePerimeter"/>
    +		<add as="fontStyle" value="1"/>
    +		<add as="align" value="left"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="spacing" value="2"/>
    +		<add as="spacingLeft" value="40"/>
    +		<add as="imageWidth" value="32"/>
    +		<add as="imageHeight" value="32"/>
    +		<add as="rounded" value="1"/>
    +		<add as="shadow" value="1"/>
    +		<add as="glass" value="1"/>
    +	</add>
    +	<add as="icon" extend="label">
    +		<add as="align" value="center"/>
    +		<add as="imageAlign" value="center"/>
    +		<add as="verticalLabelPosition" value="bottom"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="spacingTop" value="4"/>
    +		<add as="labelBackgroundColor" value="#FFFFFF"/>
    +		<add as="spacing" value="0"/>
    +		<add as="spacingLeft" value="0"/>
    +		<add as="spacingTop" value="6"/>
    +		<add as="fontStyle" value="0"/>
    +		<add as="imageWidth" value="48"/>
    +		<add as="imageHeight" value="48"/>
    +	</add>
    +	<add as="entity">
    +		<add as="edgeStyle" value="entityRelationEdgeStyle"/>
    +	</add>
    +	<add as="vertical">
    +		<add as="elbow" value="vertical"/>
    +	</add>
    +	<add as="straight">
    +		<add as="shape" value="connector"/>
    +		<add as="endArrow" value="classic"/>
    +		<add as="edgeStyle" value="none"/>
    +	</add>
    +	<add as="arrow">
    +		<add as="shape" value="arrow"/>
    +	</add>
    +	<add as="swimlane">
    +		<add as="shape" value="swimlane"/>
    +		<add as="fontSize" value="12"/>
    +		<add as="fontStyle" value="1"/>
    +		<add as="startSize" value="23"/>
    +	</add>
    +	<add as="group">
    +		<add as="verticalAlign" value="top"/>
    +		<add as="dashed" value="1"/>
    +		<add as="opacity" value="50"/>
    +	</add>
    +	<add as="ellipse">
    +		<add as="shape" value="ellipse"/>
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombus">
    +		<add as="shape" value="rhombus"/>
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +	<add as="triangle">
    +		<add as="shape" value="triangle"/>
    +		<add as="perimeter" value="trianglePerimeter"/>
    +	</add>
    +	<add as="line">
    +		<add as="shape" value="line"/>
    +		<add as="strokeWidth" value="4"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="spacingTop" value="8"/>
    +	</add>
    +	<add as="image">
    +		<add as="shape" value="image"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="verticalLabelPosition" value="bottom"/>
    +		<add as="verticalAlign" value="top"/>
    +	</add>
    +	<add as="roundImage" extend="image">
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombusImage" extend="image">
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +</mxStylesheet>
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor.properties b/java/examples/com/mxgraph/examples/swing/resources/editor.properties
    new file mode 100644
    index 000000000..741cb49a5
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor.properties
    @@ -0,0 +1,193 @@
    +shapes=Shapes
    +images=Images
    +symbols=Symbols
    +file=File
    +new=New
    +openFile=Open File
    +importStencil=Import Stencil
    +stencilImported=Stencil imported as {1}
    +allSupportedFormats=All supported formats
    +imageContainsNoDiagramData=Image contains no diagram data
    +save=Save
    +saveAs=Save As
    +pageSetup=Page Setup
    +print=Print
    +exit=Exit
    +edit=Edit
    +undo=Undo
    +redo=Redo
    +cut=Cut
    +copy=Copy
    +paste=Paste
    +delete=Delete
    +selectAll=Select All
    +selectNone=Select None
    +warning=Warning
    +view=View
    +pageLayout=Page Layout
    +antialias=Antialias
    +grid=Grid
    +rulers=Rulers
    +zoom=Zoom
    +custom=Custom
    +zoomIn=Zoom In
    +zoomOut=Zoom Out
    +page=Page
    +width=Width
    +actualSize=Actual Size
    +format=Format
    +alignment=Alignment
    +left=Left
    +center=Center
    +right=Right
    +top=Top
    +middle=Middle
    +bottom=Bottom
    +wordWrap=Word wrap
    +noWordWrap=No word wrap
    +fontcolor=Fontcolor
    +linecolor=Linecolor
    +fillcolor=Fillcolor
    +gradient=Gradient
    +label=Label
    +labelFill=Label Fill
    +labelBorder=Label Border
    +position=Position
    +shadow=Shadow
    +opacity=Opacity
    +textOpacity=Text opacity
    +hide=Hide
    +connector=Connector
    +line=Line
    +straight=Straight
    +horizontal=Horizontal
    +vertical=Vertical
    +curved=Curved
    +entityRelation=Entity Relation
    +arrow=Arrow
    +plain=Plain
    +rounded=Rounded
    +orthogonal=Orthogonal
    +dashed=Dashed
    +linewidth=Linewidth
    +linestart=Linestart
    +open=Open
    +classic=Classic
    +block=Block
    +diamond=Diamond
    +oval=Oval
    +none=None
    +size=Size
    +lineend=Lineend
    +spacing=Spacing
    +sourceSpacing=Source spacing
    +targetSpacing=target spacing
    +perimeter=Perimeter
    +global=Global
    +direction=Direction
    +north=North
    +east=East
    +south=South
    +west=West
    +rotateLabel=Rotate Label
    +rotation=Rotation
    +image=Image
    +style=Style
    +shape=Shape
    +home=Home
    +enterGroup=Enter group
    +exitGroup=Exit group
    +group=Group
    +ungroup=Ungroup
    +removeFromGroup=Remove from group
    +updateGroupBounds=Update group bounds
    +collapse=Collapse
    +expand=Expand
    +toBack=To Back
    +toFront=To Front
    +align=Align
    +autosize=Autosize
    +diagram=Diagram
    +outline=Outline
    +background=Background
    +backgroundColor=Background Color
    +backgroundImage=Background Image
    +pageBackground=Page background
    +layout=Layout
    +verticalHierarchical=Vertical Hierarchical
    +horizontalHierarchical=Horizontal Hierarchical
    +verticalPartition=Vertical Partition
    +horizontalPartition=Horizontal Partition
    +verticalStack=Vertical Stack
    +horizontalStack=Horizontal Stack
    +verticalTree=Vertical Tree
    +horizontalTree=Horizontal Tree
    +parallelEdges=Parallel Edges
    +placeEdgeLabels=Edge Labels
    +organicLayout=Organic
    +circleLayout=Circle
    +selection=Selection
    +selectPath=Select Path
    +selectDirectedPath=Select Directed Path
    +selectTree=Select Tree
    +selectDirectedTree=Select Directed Tree
    +stylesheet=Stylesheet
    +basicStyle=Basic Style
    +defaultStyle=Default Style
    +options=Options
    +display=Display
    +buffering=Buffering
    +dirty=Dirty
    +centerPage=Center Page
    +centerZoom=Center Zoom
    +zoomToSelection=Zoom to Selection
    +preferPageSize=Prefer Pagesize
    +pageBreaks=Page Breaks
    +tolerance=Tolerance
    +gridSize=Grid Size
    +gridColor=Grid Color
    +dot=Dot
    +line=Line
    +cross=Cross
    +dragAndDrop=Drag and Drop
    +dragEnabled=Drag Enabled
    +dropEnabled=Drop Enabled
    +imagePreview=Image Preview
    +labels=Labels
    +htmlLabels=HTML Labels
    +showLabels=Show Labels
    +moveEdgeLabels=Move Edge Labels
    +moveVertexLabels=Move Vertex Labels
    +handleReturn=Handle Return
    +connections=Connections
    +connectable=Connectable
    +connectableEdges=Connectable Edges
    +createTarget=Create Target
    +connectMode=Connect Mode
    +validation=Validation
    +allowDanglingEdges=Allow Dangling Edges
    +cloneInvalidEdges=Clone Invalid Edges
    +allowLoops=Allow Loops
    +multigraph=Multigraph
    +disconnectOnMove=Disconnect on Move
    +window=Window
    +help=Help
    +aboutGraphEditor=About mxGraph Editor
    +magnifyPage=Magnify Page
    +selectVertices=Select Vertices
    +selectEdges=Select Edges
    +newDiagram=New Diagram
    +ready=Ready.
    +scale=Scale
    +value=Value
    +file=File
    +allImages=All Images
    +overwriteExistingFile=Overwrite existing file?
    +transparentBackground=Transparent Background?
    +noImageData=No Image Data
    +noSourceAndTargetSelected=No source and target selected.
    +enterWarningMessage=Enter warning message
    +noCellSelected=No cell selected.
    +loseChanges=Lose Changes?
    +noLayout=Layout unavailable
    +error=Error
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor_de.properties b/java/examples/com/mxgraph/examples/swing/resources/editor_de.properties
    new file mode 100644
    index 000000000..1a90c9065
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor_de.properties
    @@ -0,0 +1,192 @@
    +shapes=Elemente
    +images=Bilder
    +symbols=Symbole
    +file=Datei
    +new=Neu
    +openFile=Datei öffnen
    +importStencil=Schablone importieren
    +stencilImported=Objekt importiert als {1}
    +allSupportedFormats=Alle unterstützten Formate
    +imageContainsNoDiagramData=Bild enthält keine Diagrammdaten
    +save=Speichern
    +saveAs=Speichern unter
    +pageSetup=Seite einrichten
    +print=Drucken
    +exit=Beenden
    +edit=Bearbeiten
    +undo=Rückgänging
    +redo=Wiederherstellen
    +cut=Ausschneiden
    +copy=Kopieren
    +paste=Einfügen
    +delete=Löschen
    +selectAll=Alle markieren
    +selectNone=Markierung aufheben
    +warning=Warnung
    +view=Ansicht
    +pageLayout=Seitenansicht
    +antialias=Kanten glätten
    +grid=Gitter
    +rulers=Lineal
    +zoom=Zoom
    +custom=Anpassen
    +zoomIn=Hineinzoomen
    +zoomOut=Herauszoomen
    +page=Seite
    +width=Breite
    +actualSize=Tatsächliche Grösse
    +format=Format
    +alignment=Ausrichtung
    +left=Links
    +center=Zentriert
    +right=Rechts
    +top=Oben
    +middle=Mitte
    +bottom=Unten
    +wordWrap=Zeilenumbruch
    +noWordWrap=Kein Zeilenumbruch
    +fontcolor=Schriftfarbe
    +linecolor=Linienfarbe
    +fillcolor=Füllfarbe
    +gradient=Farbverlauf
    +label=Beschriftung
    +labelFill=Beschriftung Füllfarbe
    +labelBorder=Beschriftung Rahmenfarbe
    +position=Position
    +shadow=Schatten
    +opacity=Deckkraft
    +textOpacity=Text Deckkraft
    +hide=Verstecken
    +connector=Verbindung
    +line=Linie
    +straight=Gerade
    +horizontal=Horizontal
    +vertical=Vertikal
    +entityRelation=Entity Relation
    +arrow=Pfeil
    +plain=Einfach
    +rounded=Abgerundet
    +orthogonal=Orthogonal
    +dashed=Gestrichelt
    +linewidth=Linienbreite
    +linestart=Linienanfang
    +open=Offen
    +classic=Klassisch
    +block=Block
    +diamond=Diamant
    +oval=Oval
    +none=Keine
    +size=Grösse
    +lineend=Linienende
    +spacing=Abstand
    +sourceSpacing=Anfangsabstand
    +targetSpacing=Endabstand
    +perimeter=Umriss
    +global=Global
    +direction=Richtung
    +north=Norden
    +east=Osten
    +south=Süden
    +west=Westen
    +rotateLabel=Beschriftung rotieren
    +rotation=Rotation
    +image=Bild
    +style=Stil
    +shape=Element
    +home=Oberste Ebene
    +enterGroup=In Gruppe hinein
    +exitGroup=Aus Gruppe heraus
    +group=Gruppieren
    +ungroup=Gruppe aufheben
    +removeFromGroup=Aus Gruppe herauslösen
    +updateGroupBounds=Gruppengrenzen aktualisieren
    +collapse=Zusammenziehen
    +expand=Expandieren
    +toBack=Nach Hinten
    +toFront=Nach Vorne
    +align=Ausrichten
    +autosize=Automatische Grösse
    +diagram=Diagramm
    +outline=Übersicht
    +background=Hintergrund
    +backgroundColor=Hintergrundfarbe
    +backgroundImage=Hintergrundbild
    +pageBackground=Seitenhintergrund
    +layout=Anordnung
    +verticalHierarchical=Vertikal Hierarchisch
    +horizontalHierarchical=Horizontal Hierarchisch
    +verticalPartition=Vertikale Partitionierung
    +horizontalPartition=Horizontale Partitionierung
    +verticalStack=Vertiker Stapel
    +horizontalStack=Horizontaler Stapel
    +verticalTree=Vertikaler Baum
    +horizontalTree=Horizontaler Baum
    +parallelEdges=Parallele Kanten
    +placeEdgeLabels=Kantenbeschriftungen
    +organicLayout=Organisch
    +circleLayout=Kreis
    +selection=Markierung
    +selectPath=Pfad markieren
    +selectDirectedPath=Gerichteten Pfad markieren
    +selectTree=Baum markieren
    +selectDirectedTree=Gerichteten Baum markieren
    +stylesheet=Stylesheet
    +basicStyle=Basic Style
    +defaultStyle=Default Style
    +options=Optionen
    +display=Darstellung
    +buffering=Buffering
    +dirty=Dirty
    +centerPage=Seite zentrieren
    +centerZoom=Zoom zentrieren
    +zoomToSelection=Zur Markierung zoomen
    +preferPageSize=Seitengrösse vorziehen
    +pageBreaks=Seitenumbruch anzeigen
    +tolerance=Toleranz
    +gridSize=Gittergrösse
    +gridColor=Gitterfarbe
    +dot=Punkt
    +line=Linie
    +cross=Kreuz
    +dragAndDrop=Drag and Drop
    +dragEnabled=Drag zulassen
    +dropEnabled=Drop zulassen
    +imagePreview=Bildvorschau
    +labels=Beschriftungen
    +htmlLabels=HTML Beschriftungen
    +showLabels=Beschriftungen anzeigen
    +moveEdgeLabels=Kantenbeschriftungen verschieben
    +moveVertexLabels=Knotenberschriftungen verschieben
    +handleReturn=Return behandeln
    +connections=Verbindungen
    +connectable=Verbindungen zulassen
    +connectableEdges=Verbindungen zwischen Kanten zulassen
    +createTarget=Ziel erstellen
    +connectMode=Verbindungsmethode
    +validation=Validierung
    +allowDanglingEdges=Schwebende Kanten zulassen
    +cloneInvalidEdges=Ungültige Kanten klonen
    +allowLoops=Schlaufen zulassen
    +multigraph=Multigraph
    +disconnectOnMove=Trennen beim verschieben
    +window=Fenster
    +help=Hilfe
    +aboutGraphEditor=Über mxGraph Editor
    +magnifyPage=Seite vergrössern
    +selectVertices=Knoten markieren
    +selectEdges=Kanten markieren
    +newDiagram=Neues Diagramm
    +ready=Bereit.
    +scale=Skalierung
    +value=Wert
    +file=Datei
    +allImages=Alle Bilddateien
    +overwriteExistingFile=Vorhandene Datei überschreiben?
    +transparentBackground=Transparenter Hintegrund?
    +noImageData=Kein Bilddaten
    +noSourceAndTargetSelected=Keine Quelle und Ziel markiert.
    +enterWarningMessage=Warnung eingeben
    +noCellSelected=Keine Zelle markiert.
    +loseChanges=Änderungen verlieren?
    +noLayout=Layout nicht verfügbar
    +error=Fehler
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor_es.properties b/java/examples/com/mxgraph/examples/swing/resources/editor_es.properties
    new file mode 100644
    index 000000000..4b2f675c1
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor_es.properties
    @@ -0,0 +1,80 @@
    +file=Archivo
    +new=Nuevo
    +openFile=Abrir Archivo
    +save=Guardar
    +saveAs=Guardar Como
    +print=Imprimir
    +edit=Editar
    +undo=Deshacer
    +redo=Rehacer
    +cut=Cortar
    +copy=Copiar
    +paste=Pegar
    +delete=Eliminar
    +selectAll=Seleccionar Todo
    +pageLayout=Diseño de Página
    +grid=Cuadrícula
    +zoom=Ampliar
    +custom=Personalizar
    +zoomIn=Acercar
    +zoomOut=Alejar
    +width=Ancho
    +actualSize=Tamaño Actual
    +format=Formato
    +left=Izquierda
    +center=Centrado
    +right=Derecha
    +top=Arriba
    +middle=Medio
    +bottom=Abajo
    +label=Etiqueta
    +position=Posición
    +shadow=Sombra
    +opacity=Opacidad
    +hide=Ocultar
    +line=Línea
    +straight=Recto
    +horizontal=Horizontal
    +vertical=Vertical
    +entityRelation=Relacionar Entidad
    +arrow=Flecha
    +plain=Simple
    +rounded=Redondeado
    +dashed=Punteado
    +linewidth=Ancho de línea
    +linestart=Inicio de línea
    +open=Abrir
    +classic=Clásico
    +block=Bloque
    +diamond=Diamante
    +oval=Óvalo
    +none=Nada
    +size=Tamaño
    +lineend=Final de línea
    +spacing=Espaciado
    +perimeter=Perímetro
    +global=Total
    +direction=Dirección
    +north=Norte
    +east=Este
    +south=Sur
    +west=Oeste
    +rotation=Rotación
    +style=Estilo
    +shape=Forma
    +group=Agrupar
    +ungroup=Desagrupar
    +removeFromGroup=Quitar del Grupo
    +updateGroupBounds=Actualizar los Limites del Grupo
    +toBack=Ir hacia atrás
    +toFront=Ir hacia adelante
    +align=Alinear
    +autosize=Ajustar Tamaño Automáticamente
    +outline=Línea Exterior
    +background=Fondo
    +line=Línea
    +help=Ayuda
    +selectVertices=Seleccionar  Vértices
    +selectEdges=Seleccionar Aristas
    +file=Archivo
    +error=Error
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor_fr.properties b/java/examples/com/mxgraph/examples/swing/resources/editor_fr.properties
    new file mode 100644
    index 000000000..0504ba7b0
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor_fr.properties
    @@ -0,0 +1,80 @@
    +file=Fichier
    +new=Nouveau
    +openFile=Ouvrir le fichier
    +save=Enregistrer
    +saveAs=Enregistrer sous
    +print=Imprimer
    +edit=Modifier
    +undo=Annuler
    +redo=Refaire
    +cut=Couper
    +copy=Copier
    +paste=Coller
    +delete=Supprimer
    +selectAll=Tout sélectionner
    +pageLayout=Mise en page
    +grid=Grille
    +zoom=Zoom
    +custom=Personnaliser
    +zoomIn=Agrandir
    +zoomOut=Réduire
    +width=Largeur
    +actualSize=Taille réelle
    +format=Format
    +left=Gauche
    +center=Centré
    +right=Droit
    +top=En haut
    +middle=Au milieu
    +bottom=En bas
    +label=Texte
    +position=Position
    +shadow=Ombre
    +opacity=Opacité
    +hide=Masquer
    +line=Ligne
    +straight=Droit
    +horizontal=Horizontal
    +vertical=Vertical
    +entityRelation=Relation entre les éléments
    +arrow=Flèche
    +plain=Simple
    +rounded=Arrondi
    +dashed=Pointillé
    +linewidth=Largeur de la ligne
    +linestart=Début de la ligne
    +open=Ouvrir
    +classic=Classique
    +block=Bloc
    +diamond=Losange
    +oval=Ovale
    +none=Aucun
    +size=Taille
    +lineend=Fin de la ligne
    +spacing=Espacement
    +perimeter=Périmètre
    +global=Général
    +direction=Direction
    +north=Nord
    +east=Est
    +south=Sud
    +west=Ouest
    +rotation=Rotation
    +style=Style
    +shape=Forme
    +group=Grouper
    +ungroup=Dissocier
    +removeFromGroup=Remove from group
    +updateGroupBounds=Update group bounds
    +toBack=Placer au-dessus
    +toFront=Placer en dessous
    +align=Ajuster
    +autosize=Taille automatique
    +outline=Tracer
    +background=Fond
    +line=Ligne
    +help=Aide
    +selectVertices=Sélectionner des sommets
    +selectEdges=Sélectionner des bordures
    +file=Fichier
    +error=Erreur
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor_it.properties b/java/examples/com/mxgraph/examples/swing/resources/editor_it.properties
    new file mode 100644
    index 000000000..205fed51d
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor_it.properties
    @@ -0,0 +1,80 @@
    +file=File
    +new=Nuovo
    +openFile=Apri File
    +save=Salva
    +saveAs=Salva come
    +print=Stampa
    +edit=Modifica
    +undo=Annulla
    +redo=Ripeti
    +cut=Taglia
    +copy=Copia
    +paste=Incolla
    +delete=Cancella
    +selectAll=Seleziona tutto
    +pageLayout=Layout pagina
    +grid=Griglia
    +zoom=Zoom
    +custom=Personalizza
    +zoomIn=Ingrandisci
    +zoomOut=Rimpicciolisci
    +width=Profondità
    +actualSize=Dimensione attuale
    +format=Formato
    +left=A sinistra
    +center=Al centro
    +right=A destra
    +top=In alto
    +middle=Al centro
    +bottom=In basso
    +label=Etichetta
    +position=Posizione
    +shadow=Ombreggiato
    +opacity=Opacità
    +hide=Nascondi
    +line=Linea
    +straight=Diritta
    +horizontal=Orizzontale
    +vertical=Verticale
    +entityRelation=Entità-relazione
    +arrow=Freccia
    +plain=Semplice
    +rounded=Arrotondato
    +dashed=Barrato
    +linewidth=Spessore linea
    +linestart=Inizio linea
    +open=Apri
    +classic=Classica
    +block=Freccia
    +diamond=Quadrata
    +oval=Ovale
    +none=Nessuna
    +size=Dimensione
    +lineend=Fine linea
    +spacing=Spaziatura
    +perimeter=Perimetro
    +global=Globale
    +direction=Direzione
    +north=Nord
    +east=Est
    +south=Sud
    +west=Ovest
    +rotation=Rotazione
    +style=Stile
    +shape=Forma
    +group=Raggruppa
    +ungroup=Separa
    +removeFromGroup=Remove from group
    +updateGroupBounds=Update group bounds
    +toBack=Porta dietro
    +toFront=Porta davanti
    +align=Allinea
    +autosize=Autoridimensiona
    +outline=Contorno
    +background=Sfondo
    +line=Linea
    +help=Aiuto
    +selectVertices=Seleziona vertici
    +selectEdges=Seleziona bordi
    +file=File
    +error=Errore
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor_ja.properties b/java/examples/com/mxgraph/examples/swing/resources/editor_ja.properties
    new file mode 100644
    index 000000000..e7b088ec9
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor_ja.properties
    @@ -0,0 +1,80 @@
    +file=\u30d5\u30a1\u30a4\u30eb
    +new=\u65b0\u898f\u4f5c\u6210
    +openFile=\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f
    +save=\u4fdd\u5b58
    +saveAs=\u3068\u3057\u3066\u4fdd\u5b58\u3059\u308b
    +print=\u5370\u5237
    +edit=\u7de8\u96c6
    +undo=\u5143\u306b\u623b\u3059
    +redo=\u3084\u308a\u76f4\u3057
    +cut=\u5207\u308a\u53d6\u308a
    +copy=\u30b3\u30d4\u30fc
    +paste=\u8cbc\u308a\u4ed8\u3051
    +delete=\u524a\u9664
    +selectAll=\u3059\u3079\u3066\u9078\u629e
    +pageLayout=\u30da\u30fc\u30b8\u306e\u30ec\u30a4\u30a2\u30a6\u30c8
    +grid=\u30b0\u30ea\u30c3\u30c9
    +zoom=\u62e1\u5927
    +custom=\u30ab\u30b9\u30bf\u30e0
    +zoomIn=\u30ba\u30fc\u30e0\u30a4\u30f3
    +zoomOut=\u30ba\u30fc\u30e0\u30a2\u30a6\u30c8
    +width=\u6a2a\u5e45
    +actualSize=\u5b9f\u5bf8
    +format=\u5f62\u5f0f
    +left=\u5de6\u7aef
    +center=\u4e2d\u592e
    +right=\u53f3\u7aef
    +top=\u4e0a\u4ed8\u304d
    +middle=\u4e2d\u592e
    +bottom=\u4e0b\u4ed8\u304d
    +label=\u30e9\u30d9\u30eb
    +position=\u4f4d\u7f6e
    +shadow=\u5f71\u4ed8\u304d
    +opacity=\u4e0d\u900f\u660e\u5ea6
    +hide=\u975e\u8868\u793a
    +line=\u7dda
    +straight=\u76f4\u7dda
    +horizontal=\u6c34\u5e73
    +vertical=\u5782\u76f4
    +entityRelation=ER
    +arrow=\u77e2\u5370
    +plain=\u30d7\u30ec\u30fc\u30f3
    +rounded=\u89d2\u4e38
    +dashed=\u7834\u7dda
    +linewidth=\u7dda\u5e45
    +linestart=\u884c\u306e\u958b\u59cb
    +open=\u958b\u304f
    +classic=\u30af\u30e9\u30b7\u30c3\u30af
    +block=\u30d6\u30ed\u30c3\u30af
    +diamond=\u30c0\u30a4\u30e4\u30e2\u30f3\u30c9
    +oval=\u6955\u5186
    +none=\u306a\u3057
    +size=\u30b5\u30a4\u30ba
    +lineend=\u884c\u306e\u7d42\u4e86
    +spacing=\u30b9\u30da\u30fc\u30b9
    +perimeter=\u5883\u754c
    +global=\u30b0\u30ed\u30fc\u30d0\u30eb
    +direction=\u65b9\u5411
    +north=\u5317
    +east=\u6771
    +south=\u5357
    +west=\u897f
    +rotation=\u56de\u8ee2
    +style=\u30b9\u30bf\u30a4\u30eb
    +shape=\u56f3\u5f62
    +group=\u30b0\u30eb\u30fc\u30d7\u5316
    +ungroup=\u30b0\u30eb\u30fc\u30d7\u89e3\u9664
    +removeFromGroup=\u30b0\u30eb\u30fc\u30d7\u304b\u3089\u524a\u9664
    +updateGroupBounds=\u30b0\u30eb\u30fc\u30d7\u7bc4\u56f2\u306e\u66f4\u65b0
    +toBack=\u5f8c\u308d\u3078
    +toFront=\u524d\u3078
    +align=\u6574\u5217
    +autosize=\u81ea\u52d5\u30b5\u30a4\u30ba
    +outline=\u30a2\u30a6\u30c8\u30e9\u30a4\u30f3
    +background=\u80cc\u666f
    +line=\u7dda
    +help=\u30d8\u30eb\u30d7
    +selectVertices=\u9802\u70b9\u3092\u9078\u629e
    +selectEdges=\u30a8\u30c3\u30b8\u3092\u9078\u629e
    +file=\u30d5\u30a1\u30a4\u30eb
    +error=\u30a8\u30e9\u30fc
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor_nl.properties b/java/examples/com/mxgraph/examples/swing/resources/editor_nl.properties
    new file mode 100644
    index 000000000..9c2dbcd5f
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor_nl.properties
    @@ -0,0 +1,80 @@
    +file=Bestand
    +new=Nieuw
    +openFile=Bestand Openen
    +save=Bewaren
    +saveAs=Bewaren Als
    +print=Afdrukken
    +edit=Wijzigen
    +undo=Ongedaan Maken
    +redo=Herhalen
    +cut=Knippen
    +copy=Kopiëren
    +paste=Plakken
    +delete=Verwijderen
    +selectAll=Alles Selecteren
    +pageLayout=Pagina Indeling
    +grid=Raster
    +zoom=Zoom
    +custom=Aanpassen
    +zoomIn=Vergroten
    +zoomOut=Verkleinen
    +width=Breedte
    +actualSize=Origineel Formaat
    +format=Formatteren
    +left=Links
    +center=Centreren
    +right=Rechts
    +top=Boven
    +middle=Midden
    +bottom=Beneden
    +label=Label
    +position=Positie
    +shadow=Schaduw
    +opacity=Opaciteit
    +hide=Verbergen
    +line=Lijn
    +straight=Recht
    +horizontal=Horizontaal
    +vertical=Verticaal
    +entityRelation=Entiteit Relatie
    +arrow=Pijl
    +plain=Normaal
    +rounded=Afgerond
    +dashed=Gestreept
    +linewidth=Lijnbreedte
    +linestart=Lijn Start
    +open=Openen
    +classic=Klassiek
    +block=Blok
    +diamond=Diamand
    +oval=Ovaal
    +none=Geen
    +size=Formaat
    +lineend=Lijn Eind
    +spacing=Interlinie
    +perimeter=Perimeter
    +global=Globaal
    +direction=Richting
    +north=Noord
    +east=Oost
    +south=Zuid
    +west=West
    +rotation=Rotatie
    +style=Stijl
    +shape=Vorm
    +group=Groeperen
    +ungroup=Degroeperen
    +removeFromGroup=Verwijderen uit Groep
    +updateGroupBounds=Bijwerken Groep Grenzen
    +toBack=Naar Achter Plaatsen
    +toFront=Naar Voren Plaatsen
    +align=In lijn brengen
    +autosize=Automatisch Formaat
    +outline=Omtrek
    +background=Achtergrond
    +line=Lijn
    +help=Help
    +selectVertices=Selecteer Hoekpunten
    +selectEdges=Selecteer Randen
    +file=Bestand
    +error=Foutmelding
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor_pt.properties b/java/examples/com/mxgraph/examples/swing/resources/editor_pt.properties
    new file mode 100644
    index 000000000..2493193af
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor_pt.properties
    @@ -0,0 +1,80 @@
    +file=Ficheiro
    +new=Novo 
    +openFile=Abrir Ficheiro 
    +save=Guardar 
    +saveAs=Guardar como 
    +print=Imprimir 
    +edit=Editar 
    +undo=Desfazer 
    +redo=Refazer 
    +cut=Cortar 
    +copy=Copiar
    +paste=Colar 
    +delete=Apagar
    +selectAll=Seleccionar Tudo 
    +pageLayout=Layout da Página 
    +grid=Grelha
    +zoom=Zoom 
    +custom=Personalizado
    +zoomIn=Mais Zoom 
    +zoomOut=Menos Zoom 
    +width=Largura 
    +actualSize=Tamanho Real 
    +format=Formatar
    +left=Esquerda 
    +center=Centro 
    +right=Direita 
    +top=Topo
    +middle=Meio
    +bottom=Fundo
    +label=Rótulo
    +position=Posição 
    +shadow=Sombra
    +opacity=Opacidade 
    +hide=Ocultar 
    +line=Linha 
    +straight=Recta
    +horizontal=Horizontal 
    +vertical=Vertical 
    +entityRelation=Relação Entidades
    +arrow=Seta
    +plain=Plana
    +rounded=Arredondado 
    +dashed=Tracejado 
    +linewidth=Largura da Linha
    +linestart=Início da Linha
    +open=Abrir 
    +classic=Clássica
    +block=Bloco 
    +diamond=Diamante
    +oval=Oval 
    +none=Nenhum 
    +size=Tamanho 
    +lineend=Fim da Linha
    +spacing=Espaçamento 
    +perimeter=Perímetro 
    +global=Global 
    +direction=Direcção 
    +north=Norte 
    +east=Este
    +south=Sul
    +west=Oeste
    +rotation=Rotação 
    +style=Estilo 
    +shape=Forma 
    +group=Agrupar
    +ungroup=Desagrupar 
    +removeFromGroup=Retirar do Grupo 
    +updateGroupBounds=Actualizar limites do grupo
    +toBack=Para Trás 
    +toFront=Para a Frente 
    +align=Alinhar 
    +autosize=Auto Dimensionar 
    +outline=Contorno
    +background=Fundo
    +line=Linha 
    +help=Ajuda 
    +selectVertices=Seleccione Vértices 
    +selectEdges=Seleccione Bordas 
    +file=Ficheiro
    +error=Erro
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor_ru.properties b/java/examples/com/mxgraph/examples/swing/resources/editor_ru.properties
    new file mode 100644
    index 000000000..caa602fb2
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor_ru.properties
    @@ -0,0 +1,80 @@
    +file=\u0424\u0430\u0439\u043b
    +new=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439
    +openFile=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b
    +save=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c
    +saveAs=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a
    +print=\u041f\u0435\u0447\u0430\u0442\u044c
    +edit=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c
    +undo=\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c
    +redo=\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c
    +cut=\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c
    +copy=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c
    +paste=\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c
    +delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
    +selectAll=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435
    +pageLayout=\u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b
    +grid=\u0421\u0435\u0442\u043a\u0430
    +zoom=\u041c\u0430\u0441\u0448\u0442\u0430\u0431
    +custom=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c
    +zoomIn=\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c
    +zoomOut=\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c
    +width=\u0428\u0438\u0440\u0438\u043d\u0430
    +actualSize=\u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440
    +format=\u0424\u043e\u0440\u043c\u0430\u0442
    +left=\u0421\u043b\u0435\u0432\u0430
    +center=\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443
    +right=\u0421\u043f\u0440\u0430\u0432\u0430
    +top=\u0421\u0432\u0435\u0440\u0445\u0443
    +middle=\u041f\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435
    +bottom=\u0421\u043d\u0438\u0437\u0443
    +label=\u041d\u0430\u0434\u043f\u0438\u0441\u044c
    +position=\u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435
    +shadow=\u0422\u0435\u043d\u044c
    +opacity=\u041d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c
    +hide=\u0421\u043a\u0440\u044b\u0442\u044c
    +line=\u041b\u0438\u043d\u0438\u044f
    +straight=\u041f\u0440\u044f\u043c\u043e\u0435
    +horizontal=\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435
    +vertical=\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435
    +entityRelation=\u0421\u0432\u044f\u0437\u044c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439
    +arrow=\u0421\u0442\u0440\u0435\u043b\u043a\u0430
    +plain=\u041f\u0440\u043e\u0441\u0442\u043e\u0435
    +rounded=\u0421\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c
    +dashed=\u041f\u0443\u043d\u043a\u0442\u0438\u0440
    +linewidth=\u0422\u043e\u043b\u0449\u0438\u043d\u0430 \u043b\u0438\u043d\u0438\u0438
    +linestart=\u041d\u0430\u0447\u0430\u043b\u043e \u0441\u0442\u0440\u0435\u043b\u043a\u0438
    +open=\u041e\u0442\u043a\u0440\u044b\u0442\u044c
    +classic=\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f
    +block=\u0422\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0430\u044f
    +diamond=\u0420\u043e\u043c\u0431\u043e\u0432\u0438\u0434\u043d\u0430\u044f
    +oval=\u0428\u0430\u0440\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0430\u044f
    +none=\u041d\u0435\u0442 \u0441\u0442\u0440\u0435\u043b\u043a\u0438
    +size=\u0420\u0430\u0437\u043c\u0435\u0440
    +lineend=\u041a\u043e\u043d\u0435\u0446 \u0441\u0442\u0440\u0435\u043b\u043a\u0438
    +spacing=\u041e\u0442\u0441\u0442\u0443\u043f\u044b
    +perimeter=\u041f\u043e \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u0443
    +global=\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439
    +direction=\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435
    +north=\u0421\u0435\u0432\u0435\u0440
    +east=\u0412\u043e\u0441\u0442\u043e\u043a
    +south=\u042e\u0433
    +west=\u0417\u0430\u043f\u0430\u0434
    +rotation=\u041f\u043e\u0432\u043e\u0440\u043e\u0442
    +style=\u0421\u0442\u0438\u043b\u044c
    +shape=\u0424\u0438\u0433\u0443\u0440\u0430
    +group=\u0421\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c
    +ungroup=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c
    +removeFromGroup=\u0423\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b
    +updateGroupBounds=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0433\u0440\u0443\u043f\u043f\u044b
    +toBack=\u041d\u0430 \u0437\u0430\u0434\u043d\u0438\u0439 \u043f\u043b\u0430\u043d
    +toFront=\u041d\u0430 \u043f\u0435\u0440\u0435\u0434\u043d\u0438\u0439 \u043f\u043b\u0430\u043d
    +align=\u0412\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c
    +autosize=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440
    +outline=\u041e\u0431\u0449\u0430\u044f \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0430
    +background=\u0424\u043e\u043d
    +line=\u041b\u0438\u043d\u0438\u044f
    +help=\u041f\u043e\u043c\u043e\u0449\u044c
    +selectVertices=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u044b
    +selectEdges=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u044b
    +file=\u0424\u0430\u0439\u043b
    +error=\u041e\u0448\u0438\u0431\u043a\u0430
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/resources/editor_zh-CN.properties b/java/examples/com/mxgraph/examples/swing/resources/editor_zh-CN.properties
    new file mode 100644
    index 000000000..69a055656
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/resources/editor_zh-CN.properties
    @@ -0,0 +1,80 @@
    +file=\u6587\u4ef6
    +new=\u65b0\u5efa
    +openFile=\u6253\u5f00\u6587\u4ef6
    +save=\u4fdd\u5b58
    +saveAs=\u53e6\u5b58\u4e3a
    +print=\u6253\u5370
    +edit=\u7f16\u8f91
    +undo=\u53d6\u6d88\u64cd\u4f5c
    +redo=\u91cd\u505a
    +cut=\u526a\u5207
    +copy=\u590d\u5236
    +paste=\u7c98\u8d34
    +delete=\u5220\u9664
    +selectAll=\u5168\u9009
    +pageLayout=\u9875\u9762\u5e03\u5c40
    +grid=\u683c\u5b50
    +zoom=\u7f29\u653e
    +custom=\u81ea\u5b9a\u4e49
    +zoomIn=\u653e\u5927
    +zoomOut=\u7f29\u5c0f
    +width=\u5bbd
    +actualSize=\u5b9e\u9645\u5c3a\u5bf8
    +format=\u683c\u5f0f
    +left=\u5de6
    +center=\u4e2d
    +right=\u53f3
    +top=\u9876
    +middle=\u4e2d
    +bottom=\u5e95
    +label=\u6807\u7b7e
    +position=\u4f4d\u7f6e
    +shadow=\u9634\u5f71
    +opacity=\u900f\u660e\u5ea6
    +hide=\u9690\u85cf
    +line=\u7ebf
    +straight=\u76f4
    +horizontal=\u6c34\u5e73
    +vertical=\u5782\u76f4
    +entityRelation=\u4f4d\u7f6e\u5173\u7cfb
    +arrow=\u7bad\u5934
    +plain=\u5e73
    +rounded=\u5706\u865a\u7ebf
    +dashed=\u865a\u7ebf
    +linewidth=\u7ebf\u5bbd
    +linestart=\u7ebf\u59cb\u7aef
    +open=\u6253\u5f00
    +classic=\u9ad8\u7ea7
    +block=\u6846
    +diamond=\u94bb\u77f3\u5f62
    +oval=\u692d\u5706\u5f62
    +none=\u65e0
    +size=\u5927\u5c0f
    +lineend=\u7ebf\u672b\u7aef
    +spacing=\u95f4\u8ddd
    +perimeter=\u5468\u957f
    +global=\u5168\u7403
    +direction=\u65b9\u5411
    +north=\u5317
    +east=\u4e1c
    +south=\u5357
    +west=\u897f
    +rotation=\u65cb\u8f6c
    +style=\u98ce\u683c
    +shape=\u5f62\u72b6
    +group=\u7ec4\u5408
    +ungroup=\u53d6\u6d88\u7ec4\u5408
    +removeFromGroup=Remove from group
    +updateGroupBounds=Update group bounds
    +toBack=\u8f6c\u5230\u540e\u9762
    +toFront=\u8f6c\u5230\u524d\u9762
    +align=\u5bf9\u9f50
    +autosize=\u81ea\u52a8\u8c03\u6574\u5927\u5c0f
    +outline=\u6982\u51b5
    +background=\u80cc\u666f
    +line=\u7ebf
    +help=\u5e2e\u52a9
    +selectVertices=\u9009\u62e9\u9876\u70b9
    +selectEdges=\u9009\u62e9\u8fb9
    +file=\u6587\u4ef6
    +error=\u9519\u8bef
    \ No newline at end of file
    diff --git a/java/examples/com/mxgraph/examples/swing/shapes.xml b/java/examples/com/mxgraph/examples/swing/shapes.xml
    new file mode 100644
    index 000000000..6ee364667
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/swing/shapes.xml
    @@ -0,0 +1,247 @@
    +<shapes>
    +<shape name="or" aspect="variable" strokewidth="inherit">
    +	<background>
    +		<path>
    +			<move x="0" y="0"/>
    +			<arc rx="100" ry="50" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="0" y="100"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +		<fontcolor color="#000000"/>
    +		<text str="Label1" x="0" y="0"/>
    +		<text str="X" x="50" y="50" align="center" valign="middle"/>
    +		<text str="Right" x="100" y="50" align="right" valign="middle"/>
    +		<fontcolor color="#ff0000"/>
    +		<fontfamily family="Times"/>
    +		<text x="100" y="100" align="right"><![CDATA[
    +			function(state)
    +			{
    +				return state.cell.value;
    +			}
    +		]]></text>
    +	</foreground>
    +</shape>
    +<shape name="xor" aspect="fixed" strokewidth="inherit">
    +	<background>
    +		<path>
    +			<move x="0" y="0"/>
    +			<quad x1="100" y1="0" x2="100" y2="50"/>
    +			<quad x1="100" y1="100" x2="0" y2="100"/>
    +			<quad x1="50" y1="50" x2="0" y2="0"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +		<image src="bell.png" x="30" y="30" w="40" h="40" flipH="1"/>
    +		<fontcolor color="#ffffff"/>
    +		<fontstyle style="1"/>
    +		<text str="Oben" x="14" y="6" align="left" valign="top"/>
    +		<text str="Unten" x="14" y="94" align="left" valign="bottom"/>
    +	</foreground>
    +</shape>
    +<shape name="and" aspect="fixed" w="50">
    +	<background>
    +		<linejoin join="round"/>
    +		<path>
    +			<move x="0" y="0"/>
    +			<line x="50" y="50"/>
    +			<line x="0" y="100"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +	</foreground>
    +</shape>
    +<shape name="gate" aspect="fixed">
    +	<connections>
    +		<constraint x="0.1" y="0.1" perimeter="0"/>
    +		<constraint x="0.1" y="0.9" perimeter="0"/>
    +		<constraint x="0.9" y="0.5" perimeter="0"/>
    +		<constraint x="0.9" y="0.7" perimeter="0"/>
    +	</connections>
    +	<foreground>
    +		<rect x="0" y="0" w="20" h="20" crisp="1"/>
    +		<fillstroke/>
    +		<rect x="0" y="80" w="20" h="20" crisp="1"/>
    +		<fillstroke/>
    +		<fillcolor color="#ff0000"/>
    +		<rect x="80" y="40" w="20" h="20" crisp="1"/>
    +		<fillstroke/>
    +		<fillcolor color="#00ff00"/>
    +		<roundrect x="80" y="60" w="20" h="20" crisp="1"/>
    +		<fillstroke/>
    +		<path crisp="1">
    +			<move x="20" y="10"/>
    +			<line x="90" y="10"/>
    +			<line x="90" y="40"/>
    +			<move x="20" y="90"/>
    +			<line x="50" y="90"/>
    +			<line x="50" y="70"/>
    +			<line x="80" y="70"/>
    +		</path>
    +		<stroke/>
    +	</foreground>
    +</shape>
    +<shape name="cross" aspect="fixed">
    +	<foreground>
    +		<strokecolor color="#000000"/>
    +		<strokewidth width="6"/>
    +		<linecap cap="round"/>
    +		<path crisp="0">
    +			<move x="25" y="25"/>
    +			<line x="75" y="75"/>
    +		</path>
    +		<stroke/>
    +		<path>
    +			<move x="75" y="25"/>
    +			<line x="25" y="75"/>
    +		</path>
    +		<stroke/>
    +	</foreground>
    +</shape>
    +<shape name="cancel_end" aspect="fixed">
    +	<foreground>
    +		<strokecolor color="#000000"/>
    +		<strokewidth width="8"/>
    +		<save/>
    +		<ellipse x="0" y="0" w="100" h="100"/>
    +		<stroke/>
    +		<restore/>
    +		<include-shape name="cross" x="5" y="5" w="90" h="90"/>
    +	</foreground>
    +</shape>
    +<!-- Timer Intermediate -->
    +<shape name="timer" aspect="fixed">
    +	<foreground>
    +        <ellipse x="10" y="10" w="80" h="80"/>
    +   		<stroke/>
    +   		<path>
    +   			<move x="10" y="50"/>
    +   			<line x="16" y="50"/>
    +  			<move x="50" y="10"/>
    +  			<line x="50" y="16"/>
    +  			<move x="29" y="16"/>
    +  			<line x="32" y="21"/>
    +  			<move x="71" y="16"/>
    +  			<line x="68" y="21"/>
    +  			<move x="16" y="29"/>
    +  			<line x="21" y="32"/>
    +  			<move x="16" y="71"/>
    +  			<line x="21" y="68"/>
    +   			<move x="90" y="50"/>
    +   			<line x="84" y="50"/>
    +  			<move x="50" y="90"/>
    +  			<line x="50" y="84"/>
    +  			<move x="71" y="84"/>
    +  			<line x="68" y="79"/>
    +  			<move x="29" y="84"/>
    +  			<line x="32" y="79"/>
    +  			<move x="84" y="71"/>
    +  			<line x="79" y="68"/>
    +  			<move x="84" y="29"/>
    +  			<line x="79" y="32"/>
    +  			<move x="50" y="50"/>
    +  			<line x="52" y="17"/>
    +  			<move x="50" y="50"/>
    +  			<line x="70" y="50"/>
    +   		</path>
    +   		<stroke/>
    +	</foreground>
    +</shape>
    +<!-- Timer Start -->
    +<shape name="timerStart" aspect="fixed" strokewidth="1.5">
    +	<background>
    +		<ellipse x="0" y="0" w="100" h="100"/>
    +	</background>
    +	<foreground>
    +   		<fillstroke/>
    +   		<include-shape name="timer" x="0" y="0" w="100" h="100"/>
    +	</foreground>
    +</shape>
    +<!-- Timer Intermediate -->
    +<shape name="timerIntermediate" aspect="fixed">
    +	<background>
    +		<ellipse x="0" y="0" w="100" h="100"/>
    +	</background>
    +	<foreground>
    +   		<fillstroke/>
    +   		<ellipse x="3" y="3" w="94" h="94"/>
    +		<stroke/>
    +		<include-shape name="timer" x="0" y="0" w="100" h="100"/>
    +	</foreground>
    +</shape>
    +<!-- Kaizen Lightening Burst -->
    +<shape name="kaizen">
    +   <background>
    +		<rect x="10" y="40" w="80" h="20"/>   
    +   </background>
    +   <foreground>
    +   		<fillstroke/>
    +		<path>
    +			<move x="18" y="28"/>
    +			<quad x1="26" y1="41" x2="32" y2="30"/>
    +			<quad x1="38" y1="39" x2="44" y2="30"/>
    +			<quad x1="50" y1="42" x2="56" y2="28"/>
    +			<quad x1="64" y1="38" x2="72" y2="30"/>
    +			<quad x1="79" y1="42" x2="86" y2="32"/>
    +			<quad x1="85" y1="40" x2="98" y2="36"/>
    +			<quad x1="91" y1="47" x2="100" y2="50"/>
    +			<quad x1="90" y1="55" x2="98" y2="64"/>
    +			<quad x1="88" y1="58" x2="90" y2="70"/>
    +			<quad x1="82" y1="59" x2="76" y2="70"/>
    +			<quad x1="71" y1="60" x2="64" y2="72"/>
    +			<quad x1="54" y1="56" x2="46" y2="70"/>
    +			<quad x1="41" y1="58" x2="34" y2="72"/>
    +			<quad x1="28" y1="59" x2="20" y2="74"/>
    +			<quad x1="22" y1="61" x2="8" y2="68"/>
    +			<quad x1="11" y1="59" x2="4" y2="62"/>
    +			<quad x1="11" y1="54" x2="0" y2="52"/>
    +			<quad x1="9" y1="43" x2="2" y2="40"/>
    +			<quad x1="9" y1="37" x2="6" y2="32"/>
    +			<quad x1="16" y1="42" x2="18" y2="28"/>
    +		</path>
    +		<stroke/>
    +   </foreground>
    +</shape>
    +<!-- Electronics - Transitors - MOSFET_P_CH_DEP -->
    +<shape name="MOSFET_P_CH_DEP" aspect="fixed">
    +	<connections>
    +		<constraint x="0.8" y="0" perimeter="0"/>
    +		<constraint x="0.8" y="1" perimeter="0"/>
    +		<constraint x="0.1" y="0.5" perimeter="0"/>
    +	</connections>
    +	<foreground>
    +		<strokewidth width = "4"/>
    +  		<path crisp="1">
    +  			<move x="10" y="50"/>
    +  			<line x="40" y="50"/>
    +  			<move x="40" y="20"/>
    +  			<line x="40" y="80"/>
    +  			<move x="50" y="10"/>
    +  			<line x="50" y="90"/>
    +  			<move x="50" y="20"/>
    +  			<line x="80" y="20"/>
    +  			<line x="80" y="0"/>
    +  			<move x="50" y="50"/>
    +  			<line x="80" y="50"/>
    +  			<line x="80" y="100"/>
    +  			<move x="50" y="80"/>
    +  			<line x="80" y="80"/>
    +  		</path>
    +  		<stroke/>
    +  		<path>
    +  			<move x="80" y="50"/>
    +  			<line x="72" y="46"/>
    +  			<line x="72" y="54"/>
    +  			<line x="80" y="50"/>
    +  		</path>
    +  		<fillstroke/>
    +  		<ellipse x="78" y="78" w="4" h="4"/>
    +  		<fillstroke/>
    +	</foreground>
    +</shape>
    +</shapes>
    diff --git a/java/examples/com/mxgraph/examples/web/Config.java b/java/examples/com/mxgraph/examples/web/Config.java
    new file mode 100644
    index 000000000..23baed29e
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/Config.java
    @@ -0,0 +1,34 @@
    +package com.mxgraph.examples.web;
    +
    +import java.io.IOException;
    +
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Allows to provide a client with a backend specific configuration. See
    + * javascript/examples/editors/config/diagrameditor.xml for more details.
    + */
    +public class Config extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 8570324879191595944L;
    +
    +	protected void doGet(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		String filename = Main.class
    +				.getResource(
    +						"/com/mxgraph/examples/web/resources/diagrameditor-backend.xml")
    +				.getPath();
    +		response.getWriter().print(mxUtils.readFile(filename));
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/Deploy.java b/java/examples/com/mxgraph/examples/web/Deploy.java
    new file mode 100644
    index 000000000..fc95c499c
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/Deploy.java
    @@ -0,0 +1,106 @@
    +/**
    + * $Id: Deploy.java,v 1.7 2012-01-13 12:31:21 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.web;
    +
    +import java.io.IOException;
    +
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +
    +import com.mxgraph.io.mxCodec;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.util.mxXmlUtils;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * Demonstrates the deployment of a graph which is created on the server side
    + * and then deployed with the client library in a single response. This is done
    + * by replacing the %graph% placeholder in the javascript/example/template.html
    + * file with the XML representation of the graph that was created on the server.
    + * 
    + * Point your browser to http://localhost:8080/graph to fetch the HTML file.
    + * 
    + * This example returns an HTML page when the client issues a get request. The
    + * readme in the java directory explains how to run this example.
    + * 
    + * The /javascript/examples/template.html file is used by this example. In
    + * doGet a graph is created and the XML of the graph obtained by:
    + * 
    + *   mxCodec codec = new mxCodec();
    + *   String xml = mxUtils.getXml(codec.encode(graph.getModel()));
    + * 
    + * The template.html is then loaded as a string and instances of %graph% are
    + * replaced with the XML of the graph. In the template.html the following line
    + * defines the page body:
    + * 
    + *   <body onload="main(document.getElementById('graphContainer'), '%graph%');">
    + * 
    + * So the XML string of the graph becomes the second parameter of the main
    + * function. When the template.html page is loaded in the browser, the main
    + * function is called and within that function these lines:
    + * 
    + *   var doc = mxUtils.parseXml(xml);
    + *   var codec = new mxCodec(doc);
    + *   codec.decode(doc.documentElement, graph.getModel());
    + * 
    + * insert the XML into the graph model and that graph will then display.
    + */
    +public class Deploy extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -1046635303777463670L;
    +
    +	protected String createGraph(HttpServletRequest request)
    +	{
    +		// Creates the graph on the server-side
    +		mxCodec codec = new mxCodec();
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
    +					30);
    +			Object v2 = graph.insertVertex(parent, null, "World", 200, 150, 80,
    +					30);
    +			graph.insertEdge(parent, null, "", v1, v2);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		// Turns the graph into XML data
    +		return mxXmlUtils.getXml(codec.encode(graph.getModel()));
    +	}
    +
    +	protected void doGet(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		// Loads the static HTML page with the placeholder from the template
    +		String template = mxUtils.readFile("javascript/examples/template.html");
    +		String xml = createGraph(request);
    +
    +		// Replaces the placeholder in the template with the XML data
    +		// which is then parsed into the graph model on the client.
    +		// In a production environment you should use a template engine.
    +		String page = template.replaceAll("%graph%", mxUtils.htmlEntities(xml));
    +
    +		// Makes sure there is no caching on the client side
    +		response.setHeader("Pragma", "no-cache"); // HTTP 1.0
    +		response.setHeader("Cache-control", "private, no-cache, no-store");
    +		response.setHeader("Expires", "0");
    +		response.setStatus(HttpServletResponse.SC_OK);
    +
    +		response.getWriter().println(page);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/EmbedImage.java b/java/examples/com/mxgraph/examples/web/EmbedImage.java
    new file mode 100644
    index 000000000..d47ed0bd6
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/EmbedImage.java
    @@ -0,0 +1,368 @@
    +package com.mxgraph.examples.web;
    +
    +import java.io.BufferedReader;
    +import java.io.ByteArrayOutputStream;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.io.InputStreamReader;
    +import java.io.OutputStream;
    +import java.io.PrintWriter;
    +import java.io.Reader;
    +import java.io.StringWriter;
    +import java.io.Writer;
    +import java.net.URL;
    +import java.util.Date;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.LinkedList;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.zip.GZIPOutputStream;
    +
    +import javax.imageio.ImageIO;
    +import javax.servlet.ServletException;
    +import javax.servlet.http.Cookie;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +
    +import com.mxgraph.util.mxBase64;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + *
    + */
    +public class EmbedImage extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -4951624126588618796L;
    +
    +	/**
    +	 * 
    +	 */
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		OutputStream out = response.getOutputStream();
    +		String encoding = request.getHeader("Accept-Encoding");
    +
    +		// Supports GZIP content encoding
    +		if (encoding != null && encoding.indexOf("gzip") >= 0)
    +		{
    +			response.setHeader("Content-Encoding", "gzip");
    +			out = new GZIPOutputStream(out);
    +		}
    +
    +		PrintWriter writer = new PrintWriter(out);
    +		writer.println("<html>");
    +		writer.println("<head>");
    +		writer.println("</head>");
    +		writer.println("<body>");
    +		writer.println("<script type=\"text/javascript\">");
    +
    +		// Shows an error message on the client-side if the file is larger than
    +		// 32 KB, which is the maximum size foe data URIs in IE8.
    +		// LATER: Define correct size so that image can have max of 32K
    +		if (request.getContentLength() < 40000)
    +		{
    +			Map<String, String> post = parseMultipartRequest(request);
    +			byte[] img = post.get("upfile").getBytes(ENCODING);
    +			String data = mxBase64.encodeToString(img, false);
    +			String name = post.get("filename");
    +			int index = name.lastIndexOf('\\');
    +
    +			if (index >= 0)
    +			{
    +				name = name.substring(index + 1);
    +			}
    +
    +			name += "-" + new Date().getTime();
    +			String url = "null";
    +
    +			if (post.get("dataurl").equals("false"))
    +			{
    +				url = "'mhtml:'+window.location.href+'?img=" + name + "!" + name + "'";
    +
    +				// In theory, up to 4K in 300 cookies can be used to transfer the data
    +				// directly in the GET request of the image to avoid a session state.
    +				// This can be done by splitting the base64 data into 4K cookies in the
    +				// insert method in the client and then forcing an image prefetch with
    +				// the respective MHTML URL for the image. On the server-side all we
    +				// we need to do is fetch the content location (get param) and data.
    +				// In practice most servers have a header size limit of 8-16K.
    +				// LATER: Use cookieless sessions
    +				request.getSession(true).setAttribute("image",
    +						"<!--\n" + mhtml(name, data) + "-->");
    +			}
    +
    +			writer.println("window.parent.insert(\"" + name
    +					+ "\", \"data:image/png," + data + "\", " + url + ");");
    +		}
    +		else
    +		{
    +			writer.println("alert(\"File exceeds the maximum allowed size. File must be less than 32KB.\");");
    +		}
    +
    +		// NOTE: Ignore "Failed to load resource" error in Chrome,
    +		// see http://code.google.com/p/chromium/issues/detail?id=29180
    +		writer.println("var iframe = window.parent.document.getElementById('embedimageframe');");
    +		writer.println("iframe.parentNode.removeChild(iframe);");
    +		writer.println("</script>");
    +		writer.println("</body>");
    +		writer.println("<head>");
    +
    +		writer.flush();
    +		writer.close();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void doGet(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		OutputStream out = response.getOutputStream();
    +		String encoding = request.getHeader("Accept-Encoding");
    +
    +		// Supports GZIP content encoding
    +		if (encoding != null && encoding.indexOf("gzip") >= 0)
    +		{
    +			response.setHeader("Content-Encoding", "gzip");
    +			out = new GZIPOutputStream(out);
    +		}
    +
    +		PrintWriter writer = new PrintWriter(out);
    +		String url = request.getParameter("url");
    +
    +		if (url != null)
    +		{
    +			// Enables caching of this response
    +			response.setHeader("Content-Type", "text/plain");
    +			response.setHeader("Cache-Control", "private");
    +			response.setHeader("Expires", "Thu, 15 Apr 2030 20:00:00 GMT");
    +
    +			ByteArrayOutputStream bos = new ByteArrayOutputStream();
    +			ImageIO.write(ImageIO.read(new URL(url)), "png", bos);
    +
    +			writer.print("<!--\n"
    +					+ mhtml("image",
    +							mxBase64.encodeToString(bos.toByteArray(), false))
    +					+ "-->\n");
    +		}
    +		else if (request.getSession(false) != null)
    +		{
    +			response.setHeader("Pragma", "no-cache");
    +			response.setHeader("Cache-Control",
    +					"no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
    +			response.setHeader("Content-Type", "text/plain");
    +
    +			// Gets the image from the session and destroys the session and the cookie
    +			writer.print(request.getSession().getAttribute("image"));
    +			request.getSession().invalidate();
    +			Cookie cookie = new Cookie("JSESSIONID", "");
    +			cookie.setMaxAge(0);
    +			cookie.setPath("/");
    +			response.addCookie(cookie);
    +		}
    +		else
    +		{
    +			// Makes sure there is no caching on the client side
    +			response.setHeader("Cache-control", "private, no-cache, no-store");
    +			response.setHeader("Expires", "0");
    +			response.setStatus(HttpServletResponse.SC_OK);
    +
    +			// Loads the static HTML page with the placeholder from the template
    +			String page = mxUtils.readFile(Roundtrip.class.getResource(
    +					"/com/mxgraph/examples/web/resources/embedimage.html")
    +					.getPath());
    +
    +			String userAgent = request.getHeader("User-Agent");
    +			boolean dataUrl = userAgent.indexOf("MSIE 6") < 0
    +					&& userAgent.indexOf("MSIE 7") < 0;
    +
    +			// In a real-world environment the following would be done for each entry
    +			// of the image bundle in an XML file for a diagram.
    +			String name = "myImage";
    +			String data = "R0lGODlhEAAQAMIGAAAAAICAAICAgP//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAAEAAQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hilaSSASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs";
    +
    +			String mhtml = (dataUrl) ? "" : "\n" + mhtml(name, data);
    +			String bundle = "bundle.putImage('myImage', 'data:image/png," + data
    +					+ "=', 'mhtml:' + window.location.href + '!" + name + "');";
    +
    +			// Replaces the placeholder in the template with the XML data
    +			// which is then parsed into the graph model on the client.
    +			// In a production environment you should use a template engine.
    +			page = page.replaceAll("%mhtml%", mhtml);
    +			page = page.replaceAll("%dataUrl%", (dataUrl) ? "true" : "false");
    +			page = page.replaceAll("%bundle%", bundle);
    +
    +			writer.println(page);
    +		}
    +
    +		writer.flush();
    +		writer.close();
    +	}
    +
    +	/**
    +	 * Creates a MHTML entry for the given resource name and base64 encoded data.
    +	 */
    +	protected String mhtml(String name, String data)
    +	{
    +		return "Content-Type: multipart/related; boundary=\"----\"\n" + "\n"
    +				+ "------\n" + "Content-Location:" + name + "\n"
    +				+ "Content-Transfer-Encoding:base64\n" + "\n" + data + "=\n"
    +				+ "------\n";
    +	}
    +
    +	//
    +	// Handling of multipart/form-data *** NOT FOR PRODUCTION USE!! ***
    +	//
    +
    +	/**
    +	 * Encoding for the multipart/form-data.
    +	 */
    +	protected static final String ENCODING = "ISO-8859-1";
    +
    +	/**
    +	 * Parses the given multipart/form-data request into a map that maps from
    +	 * names to values. Note that this implementation ignores the file type and
    +	 * filename and does only return the actual data as the value for the name
    +	 * of the file input in the form. Returns an empty map if the form does not
    +	 * contain any multipart/form-data.
    +	 */
    +	protected Map<String, String> parseMultipartRequest(
    +			HttpServletRequest request) throws IOException
    +	{
    +		Map<String, String> result = new Hashtable<String, String>();
    +		String contentType = request.getHeader("Content-Type");
    +
    +		// Checks if the form is of the correct content type
    +		if (contentType != null
    +				&& contentType.indexOf("multipart/form-data") == 0)
    +		{
    +			// Extracts the boundary from the header
    +			int boundaryIndex = contentType.indexOf("boundary=");
    +			String boundary = "--"
    +					+ contentType.substring(boundaryIndex + 9).trim();
    +			
    +			// Splits the multipart/form-data into its different parts
    +			Iterator<String> it = splitFormData(
    +					readStream(request.getInputStream()), boundary).iterator();
    +
    +			while (it.hasNext())
    +			{
    +				parsePart(it.next(), result);
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Parses the values in the given form-data part into the given map. The
    +	 * value of the name attribute will be used as the name for the data. The
    +	 * filename will be stored under filename in the given map and the
    +	 * content-type is ignored in this implementation.
    +	 */
    +	protected void parsePart(String part, Map<String, String> into)
    +	{
    +		String[] lines = part.split("\r\n");
    +		
    +		if (lines.length > 1)
    +		{
    +			// First line contains content-disposition in the following format:
    +			// form-data; name="upfile"; filename="avatar.jpg"
    +			String[] tokens = lines[1].split(";");
    +			
    +			// Stores the value of the name attribute for the form-data
    +			String name = null;
    +	
    +			for (int i = 0; i < tokens.length; i++)
    +			{
    +				String tmp = tokens[i];
    +				int index = tmp.indexOf("=");
    +	
    +				// Checks if the token contains a key=value pair
    +				if (index >= 0)
    +				{
    +					String key = tmp.substring(0, index).trim();
    +					String value = tmp.substring(index + 2, tmp.length() - 1);
    +	
    +					if (key.equals("name"))
    +					{
    +						name = value;
    +					}
    +					else
    +					{
    +						into.put(key, value);
    +					}
    +				}
    +			}
    +	
    +			// Last line contains the actual data
    +			if (name != null)
    +			{
    +				into.put(name, lines[lines.length - 1]);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the parts of the given multipart/form-data.
    +	 */
    +	protected List<String> splitFormData(String formData, String boundary)
    +	{
    +		List<String> result = new LinkedList<String>();
    +		int nextBoundary = formData.indexOf(boundary);
    +
    +		while (nextBoundary >= 0)
    +		{
    +			if (nextBoundary > 0)
    +			{
    +				result.add(formData.substring(0, nextBoundary));
    +			}
    +
    +			formData = formData.substring(nextBoundary + boundary.length());
    +			nextBoundary = formData.indexOf(boundary);
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Reads the complete stream into memory as a String.
    +	 */
    +	protected String readStream(InputStream is) throws IOException
    +	{
    +		if (is != null)
    +		{
    +			Writer writer = new StringWriter();
    +
    +			char[] buffer = new char[1024];
    +			try
    +			{
    +				Reader reader = new BufferedReader(new InputStreamReader(is,
    +						ENCODING));
    +				int n;
    +				while ((n = reader.read(buffer)) != -1)
    +				{
    +					writer.write(buffer, 0, n);
    +				}
    +			}
    +			finally
    +			{
    +				is.close();
    +			}
    +
    +			return writer.toString();
    +		}
    +		else
    +		{
    +			return "";
    +		}
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/Export.java b/java/examples/com/mxgraph/examples/web/Export.java
    new file mode 100644
    index 000000000..ebd0947ce
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/Export.java
    @@ -0,0 +1,89 @@
    +package com.mxgraph.examples.web;
    +
    +import java.awt.Color;
    +import java.awt.image.BufferedImage;
    +import java.io.IOException;
    +import java.io.OutputStream;
    +import java.io.StringReader;
    +import java.net.URLDecoder;
    +
    +import javax.imageio.ImageIO;
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +import javax.xml.parsers.ParserConfigurationException;
    +
    +import org.mortbay.jetty.Request;
    +import org.xml.sax.InputSource;
    +import org.xml.sax.SAXException;
    +
    +import com.mxgraph.reader.mxGraphViewImageReader;
    +
    +/**
    + * This servlet may be used to create bitmap versions of the graphs
    + * using a high-level description of the visual appearance so there
    + * is no need to create an object representation of the model on
    + * the server-side. The description even allows the server to create
    + * the bitmaps using a SAX parser. A DOM parser is not required.
    + * 
    + * To integrate the image handler with a client application, the client
    + * application must be setup to use this servlet. This can be done by
    + * setting mxEditor.urlImage programmatically or using a config file.
    + */
    +public class Export extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -4951624126588618796L;
    +
    +	/**
    +	 * 
    +	 */
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		String xml = URLDecoder.decode(request.getParameter("xml"), "UTF-8").replace("\n", "&#xa;");
    +
    +		try
    +		{
    +			// Set the clip on the mxGraphViewImageReader or use
    +			// image.getSubimage to create multiple image files
    +			response.setContentType("image/png");
    +			response.setHeader("Content-Disposition",
    +					"attachment; filename=diagram.png");
    +			response.setStatus(HttpServletResponse.SC_OK);
    +			streamImage(Color.WHITE, xml, response.getOutputStream());
    +
    +			((Request) request).setHandled(true);
    +		}
    +		catch (Exception e)
    +		{
    +			throw new ServletException(e);
    +		}
    +	}
    +
    +	/**
    +	 * Streams the given XML string as a PNG image into the given stream.
    +	 * 
    +	 * @param xml
    +	 * @param stream
    +	 * @throws IOException 
    +	 * @throws SAXException 
    +	 * @throws ParserConfigurationException 
    +	 */
    +	protected void streamImage(Color bg, String xml, OutputStream stream)
    +			throws ParserConfigurationException, SAXException, IOException
    +	{
    +		mxGraphViewImageReader reader = new mxGraphViewImageReader(bg, 4, true,
    +				true);
    +		InputSource inputSource = new InputSource(new StringReader(xml));
    +		BufferedImage image = mxGraphViewImageReader.convert(inputSource,
    +				reader);
    +
    +		ImageIO.write(image, "png", stream);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/Link.java b/java/examples/com/mxgraph/examples/web/Link.java
    new file mode 100644
    index 000000000..29b66a74a
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/Link.java
    @@ -0,0 +1,94 @@
    +package com.mxgraph.examples.web;
    +
    +import java.io.IOException;
    +
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +import javax.xml.transform.TransformerFactory;
    +import javax.xml.transform.dom.DOMSource;
    +import javax.xml.transform.stream.StreamResult;
    +
    +import org.mortbay.jetty.Request;
    +import org.w3c.dom.Document;
    +
    +import com.mxgraph.util.mxCellRenderer;
    +import com.mxgraph.view.mxGraph;
    +
    +public class Link extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 6372620357515370122L;
    +
    +	protected void doGet(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		// Creates graph with model
    +		mxGraph graph = new mxGraph()
    +		{
    +			public String getLinkForCell(Object cell)
    +			{
    +				return "http://www.mxgraph.com";
    +			}
    +
    +			public String getTargetForCell(Object cell)
    +			{
    +				return "_blank";
    +			}
    +		};
    +
    +		// Adds cells into the model
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
    +					30);
    +			Object v2 = graph.insertVertex(parent, null, "World!", 240, 150,
    +					80, 30, "shape=cloud");
    +			graph.insertEdge(parent, null, "e1", v1, v2,
    +					"labelBackgroundColor=white;labelBorderColor=green;");
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		Document doc = null;
    +		String agent = request.getHeader("User-Agent");
    +
    +		// Creates VML or SVG depending on the User-Agent
    +		if (agent != null && agent.contains("Gecko"))
    +		{
    +			doc = mxCellRenderer.createSvgDocument(graph, null, 1, null, null);
    +		}
    +		else if (agent != null && agent.contains("MSIE"))
    +		{
    +			doc = mxCellRenderer.createVmlDocument(graph, null, 1, null, null);
    +		}
    +		else
    +		{
    +			doc = mxCellRenderer.createHtmlDocument(graph, null, 1, null, null);
    +		}
    +
    +		try
    +		{
    +			TransformerFactory.newInstance().newTransformer().transform(
    +					new DOMSource(doc),
    +					new StreamResult(response.getOutputStream()));
    +		}
    +		catch (Exception e)
    +		{
    +			throw new ServletException(e);
    +		}
    +
    +		response.setStatus(HttpServletResponse.SC_OK);
    +		((Request) request).setHandled(true);
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/Main.java b/java/examples/com/mxgraph/examples/web/Main.java
    new file mode 100644
    index 000000000..60948a6a1
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/Main.java
    @@ -0,0 +1,89 @@
    +package com.mxgraph.examples.web;
    +
    +import java.io.IOException;
    +
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +
    +import org.mortbay.jetty.Handler;
    +import org.mortbay.jetty.Request;
    +import org.mortbay.jetty.Server;
    +import org.mortbay.jetty.handler.AbstractHandler;
    +import org.mortbay.jetty.handler.DefaultHandler;
    +import org.mortbay.jetty.handler.HandlerList;
    +import org.mortbay.jetty.handler.ResourceHandler;
    +import org.mortbay.jetty.servlet.Context;
    +import org.mortbay.jetty.servlet.ServletHolder;
    +
    +import com.mxgraph.util.mxUtils;
    +
    +public class Main
    +{
    +
    +	public static int PORT = 8080;
    +
    +	public static void main(String[] args) throws Exception
    +	{
    +		Server server = new Server(PORT);
    +
    +		// Servlets
    +		Context context = new Context(server, "/", Context.SESSIONS);
    +		context.addServlet(new ServletHolder(new Config()), "/Config.ashx");
    +		context.addServlet(new ServletHolder(new Roundtrip()), "/Roundtrip");
    +		context.addServlet(new ServletHolder(new Share()), "/Share");
    +		context.addServlet(new ServletHolder(new ServerView()), "/ServerView");
    +		context.addServlet(new ServletHolder(new Export()), "/Export");
    +		context.addServlet(new ServletHolder(new NewExport()), "/NewExport");
    +		context.addServlet(new ServletHolder(new Deploy()), "/Deploy");
    +		context.addServlet(new ServletHolder(new Link()), "/Link");
    +		context.addServlet(new ServletHolder(new EmbedImage()), "/EmbedImage");
    +		
    +		// Static file handler. How can we use "." base path with /mxgraph context?
    +		ResourceHandler fileHandler = new ResourceHandler();
    +		fileHandler.setResourceBase("..");
    +
    +		HandlerList handlers = new HandlerList();
    +		handlers.setHandlers(new Handler[] { new RedirectHandler(),
    +				fileHandler, context, new DefaultHandler() });
    +		server.setHandler(handlers);
    +
    +		server.start();
    +		server.join();
    +	}
    +
    +	/**
    +	 * Handles some special redirects for the Java server examples.
    +	 */
    +	public static class RedirectHandler extends AbstractHandler
    +	{
    +
    +		public void handle(String target, HttpServletRequest request,
    +				HttpServletResponse response, int dispatch) throws IOException,
    +				ServletException
    +		{
    +			if (target.toLowerCase().endsWith(".xml"))
    +			{
    +				// Forces the browser to not cache any XML files
    +				response.setContentType("text/xml;charset=UTF-8");
    +				response.setHeader("Pragma", "no-cache"); // HTTP 1.0
    +				response.setHeader("Cache-control",
    +						"private, no-cache, no-store");
    +				response.setHeader("Expires", "0");
    +			}
    +			else if (target.equalsIgnoreCase("/")
    +					|| target.equalsIgnoreCase("/index.html"))
    +			{
    +				// Gets the file contents for the index.html file
    +				String filename = Main.class.getResource(
    +						"/com/mxgraph/examples/web/resources/index.html")
    +						.getPath();
    +				response.getWriter().write(mxUtils.readFile(filename));
    +				response.setStatus(HttpServletResponse.SC_OK);
    +				((Request) request).setHandled(true);
    +			}
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/NewExport.java b/java/examples/com/mxgraph/examples/web/NewExport.java
    new file mode 100644
    index 000000000..55cc2ad2b
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/NewExport.java
    @@ -0,0 +1,140 @@
    +/**
    + * $Id: NewExport.java,v 1.5 2012-01-13 11:09:08 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.web;
    +
    +import java.awt.Graphics2D;
    +import java.awt.image.BufferedImage;
    +import java.io.BufferedReader;
    +import java.io.ByteArrayInputStream;
    +import java.io.IOException;
    +import java.io.InputStreamReader;
    +import java.io.Reader;
    +import java.io.StringReader;
    +import java.net.URLDecoder;
    +import java.util.zip.Inflater;
    +import java.util.zip.InflaterInputStream;
    +
    +import javax.imageio.ImageIO;
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +import javax.xml.parsers.SAXParserFactory;
    +
    +import org.mortbay.jetty.Request;
    +import org.xml.sax.InputSource;
    +import org.xml.sax.XMLReader;
    +
    +import com.mxgraph.canvas.mxGraphicsCanvas2D;
    +import com.mxgraph.reader.mxSaxOutputHandler;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Creates a bitmap image of the diagram based on generic XML.
    + */
    +public class NewExport extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -4951624126588618796L;
    +
    +	/**
    +	 * 
    +	 */
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		try
    +		{
    +			String xml = URLDecoder
    +					.decode(request.getParameter("xml"), "UTF-8").replace("\n",
    +							"&#xa;");
    +			String width = request.getParameter("w");
    +			String height = request.getParameter("h");
    +			String bg = request.getParameter("bg");
    +			String filename = request.getParameter("filename");
    +			String format = request.getParameter("format");
    +
    +			if (xml != null && width != null && height != null && bg != null
    +					&& filename != null && format != null)
    +			{
    +				// Compression is currently not used in the examples. Note:
    +				// This code for decompression of the request data is not
    +				// for production use!
    +				/*byte[] data = mxBase64.decode(URLDecoder.decode(xml, "UTF-8"));
    +				xml = inflate(data);*/
    +
    +				BufferedImage image = mxUtils.createBufferedImage(
    +						Integer.parseInt(width), Integer.parseInt(height),
    +						mxUtils.parseColor(bg));
    +				Graphics2D g2 = image.createGraphics();
    +				mxUtils.setAntiAlias(g2, true, true);
    +				XMLReader reader = SAXParserFactory.newInstance()
    +						.newSAXParser().getXMLReader();
    +				reader.setContentHandler(new mxSaxOutputHandler(
    +						new mxGraphicsCanvas2D(g2)));
    +				reader.parse(new InputSource(new StringReader(xml)));
    +
    +				response.setContentType("image/" + format);
    +				response.setHeader("Content-Disposition",
    +						"attachment; filename=" + filename);
    +				ImageIO.write(image, format, response.getOutputStream());
    +
    +				response.setStatus(HttpServletResponse.SC_OK);
    +			}
    +			else
    +			{
    +				response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    +			}
    +
    +			((Request) request).setHandled(true);
    +		}
    +		catch (Exception e)
    +		{
    +			throw new ServletException(e);
    +		}
    +	}
    +
    +	/**
    +	 * Encoding for the deflated input stream.
    +	 */
    +	protected static final String ENCODING = "ISO-8859-1";
    +
    +	/**
    +	 * Returns the given parameter after decoding it as an URL, base 64 decoding and
    +	 * inflating it to a UTF-8 String.
    +	 * 
    +	 * This code is not for production use!
    +	 */
    +	public static String inflate(byte[] binary) throws IOException
    +	{
    +		StringBuffer buffer = new StringBuffer();
    +		try
    +		{
    +			Reader in = new BufferedReader(new InputStreamReader(
    +					new InflaterInputStream(new ByteArrayInputStream(binary),
    +							new Inflater(true)), ENCODING));
    +			int ch;
    +
    +			while ((ch = in.read()) > -1)
    +			{
    +				buffer.append((char) ch);
    +			}
    +
    +			in.close();
    +
    +			return buffer.toString();
    +		}
    +		catch (IOException e)
    +		{
    +			e.printStackTrace();
    +
    +			return null;
    +		}
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/Roundtrip.java b/java/examples/com/mxgraph/examples/web/Roundtrip.java
    new file mode 100644
    index 000000000..10206cd22
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/Roundtrip.java
    @@ -0,0 +1,172 @@
    +/**
    + * $Id: Roundtrip.java,v 1.7 2012-01-13 12:32:19 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.web;
    +
    +import java.io.IOException;
    +import java.net.URLDecoder;
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +
    +import org.w3c.dom.Document;
    +
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.util.mxXmlUtils;
    +
    +/**
    + *
    + */
    +public class Roundtrip extends HttpServlet
    +{
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -447458689300033712L;
    +
    +	/**
    +	 * 
    +	 */
    +	private static int counter = 0;
    +
    +	/**
    +	 * Defines the initial XML for a new, empty diagram. Note that the diagram
    +	 * node is an application-level entity which contains the transaction
    +	 * counter (TCN) and the diagram ID. The mxGraphModel is passed to the
    +	 * mxGraph core classes on the client-side.
    +	 */
    +	protected static String emptyDiagram = "<diagram><mxGraphModel>"
    +			+ "<root>"
    +			+ "<Workflow value=\"Diagram\" id=\"0\">"
    +			+ "<mxCell/>"
    +			+ "</Workflow>"
    +			+ "<Layer value=\"Default Layer\" id=\"1\">"
    +			+ "<mxCell parent=\"0\"/>"
    +			+ "</Layer>"
    +			+ "<mxCell vertex=\"1\" parent=\"1\" value=\"Hello, World!\">"
    +			+ "<mxGeometry x=\"120\" y=\"90\" width=\"80\" height=\"40\" as=\"geometry\"/>"
    +			+ "</mxCell>" + "</root>" + "</mxGraphModel></diagram>";
    +
    +	/**
    +	 * 
    +	 */
    +	protected static Map<String, Document> diagrams = new Hashtable<String, Document>();
    +
    +	/**
    +	 * 
    +	 */
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		String xml = URLDecoder.decode(request.getParameter("xml"), "UTF-8");
    +		Document current = mxXmlUtils.parseXml(xml);
    +		String tcn = current.getDocumentElement().getAttribute("tcn");
    +		String id = current.getDocumentElement().getAttribute("id");
    +		//System.out.println("POST: id=" + id + " tcn=" + tcn);
    +
    +		if (id == null || id.length() == 0)
    +		{
    +			// Creates an ID and initializes the transaction counter (TCN)
    +			id = String.valueOf(counter++);
    +			tcn = "0";
    +		}
    +		else
    +		{
    +			// Saves an existing diagram for the given ID in the store. Note
    +			// that in production there would be a chec if the current user
    +			// has access to this diagram.
    +			Document stored = diagrams.get(id);
    +			String storedTcn = stored.getDocumentElement().getAttribute("tcn");
    +
    +			// Handles conflicts "first come first serve" style. In production
    +			// you have to make sure to properly deal with critical sections here.
    +			if (Integer.parseInt(storedTcn) > Integer.parseInt(tcn))
    +			{
    +				response.setStatus(HttpServletResponse.SC_CONFLICT);
    +				response.getWriter().println(
    +						"Diagram was changed by another user.");
    +
    +				return;
    +			}
    +			else
    +			{
    +				// Increments the TCN by one
    +				tcn = String.valueOf(Integer.parseInt(tcn) + 1);
    +			}
    +		}
    +
    +		// Updates the TCN and ID in the diagram and puts it into the store
    +		current.getDocumentElement().setAttribute("tcn", tcn);
    +		current.getDocumentElement().setAttribute("id", id);
    +		diagrams.put(id, current);
    +
    +		// Sends the possibly new ID and the incremented TCN to the client
    +		response.setStatus(HttpServletResponse.SC_OK);
    +		response.getWriter().println(
    +				"<result id=\"" + id + "\" tcn=\"" + tcn + "\"/>");
    +	}
    +
    +	protected void doGet(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		String id = request.getParameter("id");
    +
    +		if (id != null)
    +		{
    +			// Gets the diagram for the given ID from the store. All unexisting
    +			// IDs will create a new diagram where the ID is created after the
    +			// first save on the server-side. Note that in production there
    +			// would be a check if the current user has access to this diagram.
    +			Document diagram = diagrams.get(id);
    +			String xml = null;
    +
    +			// Fetches the diagram for the given ID or delivers the
    +			// XML for a new, empty diagram
    +			if (diagram != null)
    +			{
    +				xml = mxXmlUtils.getXml(diagram.getDocumentElement());
    +			}
    +			else
    +			{
    +				xml = emptyDiagram;
    +			}
    +
    +			// Loads the static HTML page with the placeholder from the template
    +			String template = mxUtils.readFile(Roundtrip.class.getResource(
    +					"/com/mxgraph/examples/web/resources/roundtrip.html")
    +					.getPath());
    +			
    +			// Replaces the placeholder in the template with the XML data
    +			// which is then parsed into the graph model on the client.
    +			// In a production environment you should use a template engine.
    +			String page = template.replaceAll("%graph%", mxUtils
    +					.htmlEntities(xml));
    +
    +			// Makes sure there is no caching on the client side
    +			response.setHeader("Pragma", "no-cache"); // HTTP 1.0
    +			response.setHeader("Cache-control", "private, no-cache, no-store");
    +			response.setHeader("Expires", "0");
    +			response.setStatus(HttpServletResponse.SC_OK);
    +
    +			response.getWriter().println(page);
    +		}
    +		else
    +		{
    +			response.getWriter().println(
    +					"<a href=\"?id=new\">Create diagram</a><br>");
    +
    +			for (Document doc : diagrams.values())
    +			{
    +				String diagramId = doc.getDocumentElement().getAttribute("id");
    +				response.getWriter().println(
    +						"<a href=\"?id=" + diagramId + "\">Diagram "
    +								+ diagramId + "</a><br>");
    +			}
    +		}
    +	}
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/ServerView.java b/java/examples/com/mxgraph/examples/web/ServerView.java
    new file mode 100644
    index 000000000..e10e71d31
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/ServerView.java
    @@ -0,0 +1,151 @@
    +package com.mxgraph.examples.web;
    +
    +import java.awt.Color;
    +import java.awt.image.BufferedImage;
    +import java.io.IOException;
    +import java.io.OutputStream;
    +import java.io.StringReader;
    +import java.net.URLDecoder;
    +
    +import javax.imageio.ImageIO;
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +import javax.servlet.http.HttpSession;
    +import javax.xml.parsers.ParserConfigurationException;
    +
    +import org.mortbay.jetty.Request;
    +import org.xml.sax.InputSource;
    +import org.xml.sax.SAXException;
    +
    +import com.mxgraph.reader.mxGraphViewImageReader;
    +
    +/**
    + * This servlet is used to create bitmaps of graphs from a graph view
    + * XML snapshot in a JavaScript client. This is used to speed up the
    + * rendering process in older browsers, where the DOM-based rendering
    + * takes more time than two requests to the server. The session is
    + * required to associate the XML in the POST request with the subsequent
    + * GET for the actual image.
    + * 
    + * We cannot use GET parameters for bundling the XML upload with the
    + * image download in a single request since the size of the GET
    + * parameters are too limited.
    + * 
    + * We can also not use a POST request to upload the XML and get the
    + * image data in a single request because older browser do no support
    + * Data-URLs for images.
    + */
    +public class ServerView extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -4951624126588618796L;
    +
    +	/**
    +	 * 
    +	 */
    +	protected void doGet(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		HttpSession session = request.getSession();
    +
    +		if (session != null)
    +		{
    +			Object xml = session.getAttribute("xml");
    +			String format = request.getParameter("format");
    +			
    +			// PNG seems to have the best compression ratio for images with a
    +			// lof of white space, as is the case with most graphs/diagrams.
    +			if (format == null)
    +			{
    +				format = "png";
    +			}
    +
    +			if (xml != null)
    +			{
    +				try
    +				{
    +					response.setContentType("image/" + format);
    +					
    +					// Uses a white background color for browsers such as IE6, which
    +					// do not handle the transparent PNG background correctly.
    +					streamImage(Color.WHITE, String.valueOf(xml), format,
    +							response.getOutputStream());
    +					response.setStatus(HttpServletResponse.SC_OK);
    +					((Request) request).setHandled(true);
    +				}
    +				catch (Exception e)
    +				{
    +					throw new ServletException(e);
    +				}
    +			}
    +			else
    +			{
    +				response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Streams the given XML string as a PNG image into the given stream.
    +	 * 
    +	 * @param xml
    +	 * @param stream
    +	 * @throws IOException 
    +	 * @throws SAXException 
    +	 * @throws ParserConfigurationException 
    +	 */
    +	protected void streamImage(Color bg, String xml, String format,
    +			OutputStream stream) throws ParserConfigurationException,
    +			SAXException, IOException
    +	{
    +		try
    +		{
    +			mxGraphViewImageReader reader = new mxGraphViewImageReader(bg, 4,
    +					true, true);
    +			InputSource inputSource = new InputSource(new StringReader(xml));
    +			BufferedImage image = mxGraphViewImageReader.convert(inputSource,
    +					reader);
    +
    +			ImageIO.write(image, format, stream);
    +		}
    +		catch (OutOfMemoryError error)
    +		{
    +			error.printStackTrace();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		String xml = URLDecoder.decode(request.getParameter("xml"), "UTF-8");
    +
    +		if (xml != null)
    +		{
    +			HttpSession session = request.getSession(true);
    +
    +			try
    +			{
    +				session.setAttribute("xml", xml);
    +				response.setStatus(HttpServletResponse.SC_OK);
    +				((Request) request).setHandled(true);
    +			}
    +			catch (Exception e)
    +			{
    +				throw new ServletException(e);
    +			}
    +		}
    +		else
    +		{
    +			response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    +		}
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/Share.java b/java/examples/com/mxgraph/examples/web/Share.java
    new file mode 100644
    index 000000000..efb23b911
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/Share.java
    @@ -0,0 +1,256 @@
    +/**
    + * $Id: Share.java,v 1.9 2012-01-13 12:40:38 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.web;
    +
    +import java.io.IOException;
    +import java.io.PrintWriter;
    +import java.net.URLDecoder;
    +
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +import javax.servlet.http.HttpSession;
    +import javax.servlet.http.HttpSessionBindingEvent;
    +import javax.servlet.http.HttpSessionBindingListener;
    +
    +import org.mortbay.jetty.Request;
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.io.mxCodecRegistry;
    +import com.mxgraph.model.mxGraphModel;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.sharing.mxSession;
    +import com.mxgraph.sharing.mxSharedGraphModel;
    +import com.mxgraph.sharing.mxSharedState;
    +import com.mxgraph.util.mxXmlUtils;
    +
    +/**
    + * This servlet demonstrates the sharing of diagrams across a number of
    + * clients. The servlet itself does not have an object representation of the
    + * graph in memory, it only serves as a dispatcher for the XML among the
    + * clients.
    + * 
    + * To integrate sharing with a client application, an mxSession must be created
    + * and configured to handle cell identities and more. This is all done in the
    + * mxEditor.connect method, which returns the session object being used to
    + * connect the model to the backend. Note that it is possible to attach
    + * multiple sessions to one editor and graph model.
    + * 
    + * When the graph model is changed in a shared client, the changes are encoded
    + * into XML and then sent to the server in a POST request. The server then gets
    + * a list of clients which are connected to the same diagram, and sends the
    + * encoded changes to those clients. (Note that the sender will not get
    + * notified of his own changes in the default mode.)
    + * 
    + * When the client receives such a set of changes, it decodes them and executes
    + * them on its local model, bypassing the command history of local changes.
    + * This means the client immediately sees the changes, but pressing undo will
    + * only undo the last local change of that specific client.
    + * 
    + * To use the example, the respective session URLs must be assigned in the
    + * mxEditor either programmatically or by use of the same config file as above.
    + * Note that it is possible to integrate both, image creating and diagram
    + * sharing into the same client by assigning the respective attributes in the
    + * mxEditor node in the config file. For diagram sharing, the following
    + * member variables are used: mxEditor.urlInit, mxEditor.urlPoll and
    + * mxEditor.urlNotify.
    + */
    +public class Share extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -3367340615965785051L;
    +
    +	/**
    +	 * 
    +	 */
    +	protected static String SESSION_ID = "MXSESSIONID";
    +
    +	/**
    +	 * Set this to true to create a model instance on the server side and keep
    +	 * it in sync with the client's model. If this is false then the server
    +	 * stores the initial state and all deltas separately without having a
    +	 * synced server-side model instance.
    +	 */
    +	protected static boolean useSharedModel = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected static mxSharedState sharedResource = (useSharedModel) ? new mxSharedGraphModel(
    +			new mxGraphModel()
    +			{
    +				protected Object valueForCellChanged(Object cell, Object value)
    +				{
    +					Object previous = ((mxICell) cell).getValue();
    +
    +					if (!(value instanceof Node) && previous instanceof Element)
    +					{
    +						Object tmp = ((Element) previous).getAttribute("label");
    +
    +						if (value == null)
    +						{
    +							((Element) previous).removeAttribute("label");
    +						}
    +						else
    +						{
    +							((Element) previous).setAttribute("label",
    +									String.valueOf(value));
    +						}
    +
    +						previous = tmp;
    +					}
    +					else
    +					{
    +						((mxICell) cell).setValue(value);
    +					}
    +
    +					return previous;
    +				}
    +			})
    +			: new mxSharedState(
    +					"<mxGraphModel><root><Workflow label=\"Diagram\" id=\"0\"></Workflow><Layer "
    +							+ "label=\"Default Layer\" id=\"1\"><mxCell parent=\"0\" /></Layer></root></mxGraphModel>");
    +
    +	// Associates the graph model codec with the above anonymous class
    +	static
    +	{
    +		mxCodecRegistry.addAlias("com.mxgraph.examples.web.Share$1",
    +				"mxGraphModel");
    +	}
    +
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		String xml = URLDecoder.decode(request.getParameter("xml"), "UTF-8");
    +		mxSession session = getSession(request);
    +
    +		Document doc = mxXmlUtils.parseXml(xml);
    +		session.receive(doc.getDocumentElement());
    +
    +		response.setStatus(HttpServletResponse.SC_OK);
    +		//System.out.println(session.getId() + " post xml=" + xml);
    +	}
    +
    +	protected void doGet(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		mxSession session = getSession(request);
    +		PrintWriter res = response.getWriter();
    +		String query = getQueryString(request);
    +
    +		// Redirects the client to the actual static diagram editor. The diagram editor
    +		// loads the configuration which contains one hook to request more configuration
    +		// data at the server. This request is implemented in Config.java to deliver the
    +		// configuration required to access this servlet for sharing and Export.java for
    +		// creating images.
    +		if (query.equalsIgnoreCase("start"))
    +		{
    +			response.sendRedirect("/mxgraph/javascript/examples/editors/diagrameditor.html");
    +			((Request) request).setHandled(true);
    +		}
    +		else if (query.equalsIgnoreCase("reset"))
    +		{
    +			sharedResource.resetDelta();
    +			res.println("Diagram reset");
    +		}
    +		else
    +		{
    +			response.setContentType("text/xml;charset=UTF-8");
    +			response.setHeader("Pragma", "no-cache"); // HTTP 1.0
    +			response.setHeader("Cache-control", "private, no-cache, no-store");
    +			response.setHeader("Expires", "0");
    +
    +			if (query.equalsIgnoreCase("init"))
    +			{
    +				String xml = session.init();
    +				//System.out
    +				//		.println("session " + session.getId() + " xml=" + xml);
    +				res.println(xml);
    +			}
    +			else
    +			{
    +				try
    +				{
    +					String xml = session.poll();
    +					//System.out.println("session " + session.getId() + " xml="
    +					//		+ xml);
    +					res.println(xml);
    +				}
    +				catch (InterruptedException e)
    +				{
    +					throw new ServletException(e);
    +				}
    +			}
    +		}
    +
    +		response.setStatus(HttpServletResponse.SC_OK);
    +	}
    +
    +	/**
    +	 * Helper method that never returns null. If there is no query in the given
    +	 * request then an empty string will be returned.
    +	 */
    +	protected String getQueryString(HttpServletRequest request)
    +	{
    +		String query = request.getQueryString();
    +
    +		if (query == null)
    +		{
    +			query = "";
    +		}
    +
    +		return query;
    +	}
    +
    +	/**
    +	 * Returns the session for the given request.
    +	 */
    +	protected mxSession getSession(HttpServletRequest req)
    +	{
    +		HttpSession httpSession = req.getSession(true);
    +		mxSession session = (mxSession) httpSession.getAttribute(SESSION_ID);
    +
    +		if (session == null)
    +		{
    +			session = new mxBoundSession(httpSession.getId(), sharedResource);
    +			httpSession.setAttribute(SESSION_ID, session);
    +			httpSession.setMaxInactiveInterval(20);
    +		}
    +
    +		return session;
    +	}
    +
    +	/**
    +	 * Implements a session with some lifecycle debugging output.
    +	 */
    +	public class mxBoundSession extends mxSession implements
    +			HttpSessionBindingListener
    +	{
    +
    +		public mxBoundSession(String id, mxSharedState diagram)
    +		{
    +			super(id, diagram);
    +		}
    +
    +		public void valueBound(HttpSessionBindingEvent arg0)
    +		{
    +			//System.out.println("session " + id + " created");
    +		}
    +
    +		public void valueUnbound(HttpSessionBindingEvent arg0)
    +		{
    +			//System.out.println("session " + id + " destroyed");
    +			destroy();
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/SvgExport.java b/java/examples/com/mxgraph/examples/web/SvgExport.java
    new file mode 100644
    index 000000000..27c971977
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/SvgExport.java
    @@ -0,0 +1,108 @@
    +/**
    + * $Id: SvgExport.java,v 1.3 2012-01-13 11:37:33 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.web;
    +
    +import java.io.IOException;
    +import java.io.StringReader;
    +import java.net.URLDecoder;
    +import java.util.Map;
    +
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +import javax.xml.parsers.SAXParser;
    +import javax.xml.parsers.SAXParserFactory;
    +import javax.xml.transform.TransformerFactory;
    +import javax.xml.transform.dom.DOMSource;
    +import javax.xml.transform.stream.StreamResult;
    +
    +import org.w3c.dom.Document;
    +import org.xml.sax.InputSource;
    +import org.xml.sax.XMLReader;
    +
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.canvas.mxSvgCanvas;
    +import com.mxgraph.reader.mxGraphViewReader;
    +import com.mxgraph.util.mxDomUtils;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * This servlet may be used to create SVG versions of the graphs
    + * using a high-level description of the visual appearance so there
    + * is no need to create an object representation of the model on
    + * the server-side.
    + * 
    + * To integrate this SVG export with a client application, the client
    + * application must be setup to use this servlet. This can be done by
    + * setting mxEditor.urlImage programmatically or using a config file.
    + */
    +public class SvgExport extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -4951624126588618796L;
    +
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		String xml = URLDecoder.decode(request.getParameter("xml"), "UTF-8")
    +				.replace("\n", "&#xa;");
    +
    +		try
    +		{
    +			InputSource inputSource = new InputSource(new StringReader(xml));
    +
    +			mxGraphViewReader viewReader = new mxGraphViewReader()
    +			{
    +				public mxICanvas createCanvas(Map<String, Object> attrs)
    +				{
    +					int x = (int) Math.round(mxUtils.getDouble(attrs, "x"));
    +					int y = (int) Math.round(mxUtils.getDouble(attrs, "y"));
    +					int width = (int) (Math.round(mxUtils.getDouble(attrs,
    +							"width")) + x) + 3;
    +					int height = (int) (Math.round(mxUtils.getDouble(attrs,
    +							"height")) + y) + 3;
    +
    +					return new mxSvgCanvas(mxDomUtils.createSvgDocument(width,
    +							height));
    +				}
    +			};
    +
    +			SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
    +			XMLReader reader = parser.getXMLReader();
    +
    +			reader.setContentHandler(viewReader);
    +			reader.parse(inputSource);
    +
    +			mxSvgCanvas svgCanvas = (mxSvgCanvas) viewReader.getCanvas();
    +			Document doc = svgCanvas.getDocument();
    +
    +			try
    +			{
    +				response.setContentType("image/svg+xml");
    +				response.setHeader("Content-Disposition",
    +						"attachment; filename=diagram.svg");
    +				response.setStatus(HttpServletResponse.SC_OK);
    +
    +				TransformerFactory
    +						.newInstance()
    +						.newTransformer()
    +						.transform(new DOMSource(doc),
    +								new StreamResult(response.getOutputStream()));
    +			}
    +			catch (Exception e)
    +			{
    +				throw new ServletException(e);
    +			}
    +		}
    +		catch (Exception e)
    +		{
    +			throw new ServletException(e);
    +		}
    +	}
    +}
    diff --git a/java/examples/com/mxgraph/examples/web/resources/diagrameditor-backend.xml b/java/examples/com/mxgraph/examples/web/resources/diagrameditor-backend.xml
    new file mode 100644
    index 000000000..c2833fd80
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/resources/diagrameditor-backend.xml
    @@ -0,0 +1 @@
    +<mxEditor urlImage="/Export" urlInit="/Share?init" urlPoll="/Share" urlNotify="/Share"/>
    diff --git a/java/examples/com/mxgraph/examples/web/resources/embedimage.html b/java/examples/com/mxgraph/examples/web/resources/embedimage.html
    new file mode 100644
    index 000000000..3b0744459
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/resources/embedimage.html
    @@ -0,0 +1,124 @@
    +<html>
    +<head>
    +	<title>Embedded images</title>
    +	<!--%mhtml%-->
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '/mxgraph/javascript/src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="/mxgraph/javascript/src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// True if data URIs are supported. IE8 has a size limit of 32KB for
    +		// data URIs, so this must be used as a global size limit. It's not
    +		// possible to work around this limitation by using MHTML because that
    +		// is not supported in IE8.
    +		var DATA_URL = %dataUrl%;
    +		var graph = new mxGraph();
    +		var bundle = new mxImageBundle(!DATA_URL);
    +
    +		function insert(name, data, fallback)
    +		{
    +			bundle.putImage(name, data, fallback);
    +			var parent = graph.getDefaultParent();
    +			graph.insertVertex(parent, null, '', 100, 20, 130, 80, 'shape=image;image=' + name);
    +		};
    +	
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main()
    +		{
    +			%bundle%
    +			graph.addImageBundle(bundle);
    +			graph.init(document.getElementById('graphContainer'));
    +			graph.setConnectable(true);
    +			
    +			// Enables rubberband selection
    +			new mxRubberband(graph);
    +			
    +			// Gets the default parent for inserting new cells. This
    +			// is normally the first child of the root (ie. layer 0).
    +			var parent = graph.getDefaultParent();
    +							
    +			// Adds cells to the model in a single step
    +			graph.getModel().beginUpdate();
    +			try
    +			{
    +				graph.insertVertex(parent, null, '', 20, 20, 30, 30, 'shape=image;image=myImage');
    +			}
    +			finally
    +			{
    +				// Updates the display
    +				graph.getModel().endUpdate();
    +			}
    +
    +			// Three scenarios for loading embedded images in IE6/7:
    +			// 1. At load-time: Embed in HTML page (see above and server-side)
    +			// 2. From URL at runtime: Use script to encode and cache response. This is also needed for
    +			//    browsers that support HTML5 canvas because it's not possible to base64 encode an image
    +			//    from another domain due to security restrictions.
    +			var url = 'http://www.jgraph.com/images/mxgraph.gif';
    +			mxUtils.get(window.location.href + '?url=' + encodeURIComponent(url), function(req)
    +			{
    +				var lines = req.getText().split('\n');
    +				var data = '';
    +				
    +				// Scans the response for base64 encoded image data
    +				for (var i = 6; i < lines.length; i++)
    +				{
    +					if (lines[i].length == 0)
    +					{
    +						data = lines[i + 1];
    +						break;
    +					}
    +				}
    +				
    +				data = data.substring(0, data.length - 1);
    +
    +				// The fallback can either be the URL or the MHTML URL which turns the image
    +				// into MHTML on the server-side. Both are cached so even if the image changes
    +				// while the diagram is open the image will remain visible. Note that the image
    +				// will be replaced with an embedded image the next time the diagram is opened.
    +				//url = 'mhtml:' + window.location.href + '?url=' + encodeURIComponent(url) + '!image';
    +				insert(url, 'data:image/gif,' + data, url);
    +			});
    +
    +			// 3. From local at runtime: Requires two roundtrips, one to get the base64 encoded
    +			//    string to put it into the bundle and another (in IE6/7) for the mhtml href.
    +			//    The response of the POST request contains JavaScript which calls the insert
    +			//    method above and removes the dynamically generated iframe with the form (below).
    +			var clickHandler = function()
    +			{
    +				if (document.getElementById('embedimageframe') == null)
    +				{
    +					var ifrm = document.createElement('iframe');
    +					ifrm.setAttribute('id', 'embedimageframe');
    +					document.body.appendChild(ifrm);
    +					ifrm = (ifrm.contentWindow) ? ifrm.contentWindow :
    +						(ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
    +		            ifrm.document.open();
    +		            ifrm.document.write('<form method="POST" enctype="multipart/form-data" '+
    +				    	'action="' + window.location.href + '">');
    +		            ifrm.document.write('File: <input type="file" name="upfile">');
    +		            ifrm.document.write('<input type="hidden" name="dataurl" value="' + DATA_URL + '">');
    +		            ifrm.document.write('<br><input type="submit" value="Insert">');
    +		            ifrm.document.write('</form>');
    +		            ifrm.document.close();
    +				}
    +			};
    +
    +			document.body.appendChild(mxUtils.button('Insert image', clickHandler));
    +			mxUtils.br(document.body);
    +		};
    +	</script>
    +</head>
    +<body onload="main()">
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:320px;height:240px;border:solid black 1px;cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/java/examples/com/mxgraph/examples/web/resources/index.html b/java/examples/com/mxgraph/examples/web/resources/index.html
    new file mode 100644
    index 000000000..190515fa9
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/resources/index.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    +<html xmlns="http://www.w3.org/1999/xhtml" >
    +<head>
    +    <title>mxGraph Java Server Examples</title>
    +</head>
    +<body>
    +    <h2>mxGraph Java Server Examples</h2>
    +    <p>
    +        The following Java Server examples are available for mxGraph:
    +    </p>
    +    <ul>
    +        <li><a href="Share?start">Share</a> (<a href="Share?reset" target="_blank">Reset</a>)</li>
    +        <li><a href="Roundtrip">Roundtrip</a></li>
    +        <li><a href="Deploy">Deploy</a></li>
    +        <li><a href="Link">Link</a></li>
    +        <li><a href="EmbedImage">EmbedImage</a></li>
    +        <li><a href="/mxgraph/javascript/examples/serverview.html">ServerView</a></li>
    +    </ul>
    +</body>
    +</html>
    diff --git a/java/examples/com/mxgraph/examples/web/resources/roundtrip.html b/java/examples/com/mxgraph/examples/web/resources/roundtrip.html
    new file mode 100644
    index 000000000..9c23be280
    --- /dev/null
    +++ b/java/examples/com/mxgraph/examples/web/resources/roundtrip.html
    @@ -0,0 +1,112 @@
    +<!--
    +  $Id: roundtrip.html,v 1.3 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +
    +  *** THIS FILE MUST BE DEPLOYED BY THE JAVA BACKEND! ***
    +-->
    +<html>
    +<head>
    +	<title>Hello, World!</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '/mxgraph/javascript/src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="/mxgraph/javascript/src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container, xml)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Enables connections and rubberband selection in the graph
    +				graph.setConnectable(true);
    +				new mxRubberband(graph);
    +
    +				// Takes the TCN and ID out of the XML and stores in local variables
    +				// for updating during the roundtrips
    +				var doc = mxUtils.parseXml(xml);
    +				var tcn = doc.documentElement.getAttribute('tcn') || '';
    +				var id = doc.documentElement.getAttribute('id') || '';
    +
    +				// Decodes and displays the mxGraphModel node inside the diagram node
    +				var codec = new mxCodec(doc);
    +				codec.decode(doc.documentElement.firstChild, graph.getModel());
    +
    +				document.body.appendChild(mxUtils.button('Save', function(evt)
    +				{
    +					// Saves the graph asynchronously so we have to make sure the
    +					// user doesn't edit the graph while the save is in progress
    +					// or if that is possible we have to properly deal with the
    +					// modified state.
    +					graph.setEnabled(false);
    +					
    +					var okHandler = function(req)
    +					{
    +						// Updates the local ID and transaction counter for the next save
    +						if (req.getStatus() == 200)
    +						{
    +							var doc = req.getXml();
    +							tcn = doc.documentElement.getAttribute('tcn') || '';
    +							id = doc.documentElement.getAttribute('id') || '';
    +
    +							alert("Diagram saved.");
    +						}
    +						else
    +						{
    +							alert("Not saved: "+req.getText());
    +						}
    +
    +						graph.setEnabled(true);
    +					};
    +
    +					var errorHandler = function(req)
    +					{
    +						alert("Communication failure.");
    +						graph.setEnabled(true);
    +					};
    +
    +					// Replaces the original diagram node with a new diagram node that
    +					// carries the ID, TCN and the graph model to the server using an
    +					// asynchronous POST requst. The response needs to be parsed and
    +					// is used to update the TCN and ID (for new diagrams).
    +					var xml = '<diagram id="'+id+'" tcn="'+tcn+'">' +
    +						mxUtils.getXml(new mxCodec().encode(graph.getModel())) +
    +						'</diagram>';
    +					mxUtils.post('/Roundtrip', 'xml='+encodeURIComponent(xml),
    +						okHandler, errorHandler);
    +				}));
    +
    +				document.body.appendChild(mxUtils.button('Close', function(evt)
    +				{
    +					// TODO: Check for unsaved changes and display warning
    +					document.location.href = "/Roundtrip";
    +				}));
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'), '%graph%');">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer" style="overflow:hidden;width:100%;height:90%;background:url('/mxgraph/javascript/examples/editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/java/index.html b/java/index.html
    new file mode 100644
    index 000000000..01f4dbeea
    --- /dev/null
    +++ b/java/index.html
    @@ -0,0 +1,47 @@
    +<html>
    +<head>
    +	<title>mxGraph Java</title>
    +	<link rel="stylesheet" HREF="../docs/css/html.css" CHARSET="ISO-8859-1" TYPE="text/css">
    +</head>
    +<body>
    +<h1>mxGraph Java</h1>
    +<h2>Installation</h2>
    +<p>
    +	The following assumes that <a href="http://www.eclipse.org">Eclipse</a>
    +	is used for development. To start development, open the Eclipse project
    +	files in the top-level directory by going to File, New, Java Project,
    +	choose Create project from existing source and select the top-level
    +	directory.
    +</p>
    +<h2>Examples</h2>
    +<p>
    +	com/mxgraph/examples contains the following examples:
    +</p>
    +<ul>
    +	<li>Codec - Using the codec for input/output.</li>
    +	<li>Frame - Placing a graph image inside a JFrame.</li>
    +	<li>GraphControl - Using a graph image to create a control.</li>
    +	<li>Layout - Using a graph layout class to arrange nodes.</li>
    +	<li>PdfExport - Using a library to create a PDF from a graph.</li>
    +</ul>
    +<p>
    +	com/mxgraph/examples/swing contains the following examples:
    +</p>
    +<ul>
    +	<li>ClickHandler - Handling click events on a cells.</li>
    +	<li>CustomCanvas - Using a custom canvas for rendering.</li>
    +	<li>GraphEditor - Full-featured graph editor example.</li>
    +	<li>SchemaEditor - Using heavyweight components in a graph.</li>
    +	<li>UserObject - Working with user objects in JFC/Swing.</li>
    +	<li>Validation - An interactive validation example.</li>
    +</ul>
    +<p>
    +	com/mxgraph/examples/web contains servlets.
    +	Right click Main.java in this directory and choose Run As, Java
    +	Application and point your browser to
    +	<a href="http://localhost:8080/">http://localhost:8080/</a>.
    +</p>
    +<hr size="1">
    +&copy; 2006-2010 by JGraph Ltd.
    +</body>
    +</html>
    diff --git a/java/jars/iText-2.1.7_mx-1.0.jar b/java/jars/iText-2.1.7_mx-1.0.jar
    new file mode 100644
    index 000000000..3f9683a79
    Binary files /dev/null and b/java/jars/iText-2.1.7_mx-1.0.jar differ
    diff --git a/java/jars/jetty-6.1.1.jar b/java/jars/jetty-6.1.1.jar
    new file mode 100644
    index 000000000..529b687cf
    Binary files /dev/null and b/java/jars/jetty-6.1.1.jar differ
    diff --git a/java/jars/jetty-util-6.1.1.jar b/java/jars/jetty-util-6.1.1.jar
    new file mode 100644
    index 000000000..056d1c11e
    Binary files /dev/null and b/java/jars/jetty-util-6.1.1.jar differ
    diff --git a/java/jars/junit-4.7.jar b/java/jars/junit-4.7.jar
    new file mode 100644
    index 000000000..700ad6952
    Binary files /dev/null and b/java/jars/junit-4.7.jar differ
    diff --git a/java/jars/servlet-api-2.5-6.1.1.jar b/java/jars/servlet-api-2.5-6.1.1.jar
    new file mode 100644
    index 000000000..ed4c0305f
    Binary files /dev/null and b/java/jars/servlet-api-2.5-6.1.1.jar differ
    diff --git a/java/lib/mxgraph-all.jar b/java/lib/mxgraph-all.jar
    new file mode 100644
    index 000000000..f4f67212e
    Binary files /dev/null and b/java/lib/mxgraph-all.jar differ
    diff --git a/java/lib/mxgraph-core.jar b/java/lib/mxgraph-core.jar
    new file mode 100644
    index 000000000..81d49b76f
    Binary files /dev/null and b/java/lib/mxgraph-core.jar differ
    diff --git a/java/lib/mxgraph-swing.jar b/java/lib/mxgraph-swing.jar
    new file mode 100644
    index 000000000..59a4d9325
    Binary files /dev/null and b/java/lib/mxgraph-swing.jar differ
    diff --git a/java/src/com/mxgraph/analysis/mxConstantCostFunction.java b/java/src/com/mxgraph/analysis/mxConstantCostFunction.java
    new file mode 100644
    index 000000000..4a83fb12e
    --- /dev/null
    +++ b/java/src/com/mxgraph/analysis/mxConstantCostFunction.java
    @@ -0,0 +1,37 @@
    +/**
    + * $Id: mxConstantCostFunction.java,v 1.1 2009-10-16 14:35:58 david Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.analysis;
    +
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * Implements a cost function for a constant cost per traversed cell.
    + */
    +public class mxConstantCostFunction implements mxICostFunction
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	protected double cost = 0;
    +
    +	/**
    +	 * 
    +	 * @param cost
    +	 */
    +	public mxConstantCostFunction(double cost)
    +	{
    +		this.cost = cost;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public double getCost(mxCellState state)
    +	{
    +		return cost;
    +	}
    +
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/analysis/mxDistanceCostFunction.java b/java/src/com/mxgraph/analysis/mxDistanceCostFunction.java
    new file mode 100644
    index 000000000..c6dfa53a3
    --- /dev/null
    +++ b/java/src/com/mxgraph/analysis/mxDistanceCostFunction.java
    @@ -0,0 +1,39 @@
    +/**
    + * $Id: mxDistanceCostFunction.java,v 1.1 2009-10-16 14:35:58 david Exp $
    + * Copyright (c) 2007-2009, JGraph Ltd
    + */
    +package com.mxgraph.analysis;
    +
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * Implements a cost function for the Euclidean length of an edge.
    + */
    +public class mxDistanceCostFunction implements mxICostFunction
    +{
    +
    +	/**
    +	 * Returns the Euclidean length of the edge defined by the absolute
    +	 * points in the given state or 0 if no points are defined.
    +	 */
    +	public double getCost(mxCellState state)
    +	{
    +		double cost = 0;
    +		int pointCount = state.getAbsolutePointCount();
    +
    +		if (pointCount > 0)
    +		{
    +			mxPoint last = state.getAbsolutePoint(0);
    +
    +			for (int i = 1; i < pointCount; i++)
    +			{
    +				mxPoint point = state.getAbsolutePoint(i);
    +				cost += point.getPoint().distance(last.getPoint());
    +				last = point;
    +			}
    +		}
    +
    +		return cost;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/analysis/mxFibonacciHeap.java b/java/src/com/mxgraph/analysis/mxFibonacciHeap.java
    new file mode 100644
    index 000000000..6a1baf572
    --- /dev/null
    +++ b/java/src/com/mxgraph/analysis/mxFibonacciHeap.java
    @@ -0,0 +1,603 @@
    +/**
    + * $Id: mxFibonacciHeap.java,v 1.2 2009-11-24 12:00:28 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.analysis;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +/**
    + * This class implements a priority queue.
    + */
    +public class mxFibonacciHeap
    +{
    +
    +	/**
    +	 * Maps from elements to nodes
    +	 */
    +	protected Map<Object, Node> nodes = new Hashtable<Object, Node>();
    +
    +	/**
    +	 * 
    +	 */
    +	protected Node min;
    +
    +	/**
    +	 * 
    +	 */
    +	protected int size;
    +
    +	/**
    +	 * Returns the node that represents element.
    +	 */
    +	public Node getNode(Object element, boolean create)
    +	{
    +		Node node = nodes.get(element);
    +
    +		if (node == null && create)
    +		{
    +			node = new Node(element, Double.MAX_VALUE);
    +			nodes.put(element, node);
    +			insert(node, node.getKey());
    +		}
    +		return node;
    +	}
    +
    +	/**
    +	 * Returns true if the queue is empty.
    +	 */
    +	public boolean isEmpty()
    +	{
    +		return min == null;
    +	}
    +
    +	/**
    +	 * Decreases the key value for a heap node, given the new value to take on.
    +	 * The structure of the heap may be changed and will not be consolidated.
    +	 * 
    +	 * <p>
    +	 * Running time: O(1) amortized
    +	 * </p>
    +	 * 
    +	 * @param x Node whose value should be decreased.
    +	 * @param k New key value for node x.
    +	 * 
    +	 * @exception IllegalArgumentException
    +	 *                Thrown if k is larger than x.key value.
    +	 */
    +	public void decreaseKey(Node x, double k)
    +	{
    +		if (k > x.key)
    +		{
    +			throw new IllegalArgumentException(
    +					"decreaseKey() got larger key value");
    +		}
    +
    +		x.key = k;
    +		Node y = x.parent;
    +
    +		if ((y != null) && (x.key < y.key))
    +		{
    +			cut(x, y);
    +			cascadingCut(y);
    +		}
    +
    +		if (min == null || x.key < min.key)
    +		{
    +			min = x;
    +		}
    +	}
    +
    +	/**
    +	 * Deletes a node from the heap given the reference to the node. The trees
    +	 * in the heap will be consolidated, if necessary. This operation may fail
    +	 * to remove the correct element if there are nodes with key value
    +	 * -Infinity.
    +	 * 
    +	 * <p>
    +	 * Running time: O(log n) amortized
    +	 * </p>
    +	 * 
    +	 * @param x The node to remove from the heap.
    +	 */
    +	public void delete(Node x)
    +	{
    +		// make x as small as possible
    +		decreaseKey(x, Double.NEGATIVE_INFINITY);
    +
    +		// remove the smallest, which decreases n also
    +		removeMin();
    +	}
    +
    +	/**
    +	 * Inserts a new data element into the heap. No heap consolidation is
    +	 * performed at this time, the new node is simply inserted into the root
    +	 * list of this heap.
    +	 * 
    +	 * <p>
    +	 * Running time: O(1) actual
    +	 * </p>
    +	 * 
    +	 * @param node
    +	 *            new node to insert into heap
    +	 * @param key
    +	 *            key value associated with data object
    +	 */
    +	public void insert(Node node, double key)
    +	{
    +		node.key = key;
    +
    +		// concatenate node into min list
    +		if (min != null)
    +		{
    +			node.left = min;
    +			node.right = min.right;
    +			min.right = node;
    +			node.right.left = node;
    +
    +			if (key < min.key)
    +			{
    +				min = node;
    +			}
    +		}
    +		else
    +		{
    +			min = node;
    +		}
    +
    +		size++;
    +	}
    +
    +	/**
    +	 * Returns the smallest element in the heap. This smallest element is the
    +	 * one with the minimum key value.
    +	 * 
    +	 * <p>
    +	 * Running time: O(1) actual
    +	 * </p>
    +	 * 
    +	 * @return Returns the heap node with the smallest key.
    +	 */
    +	public Node min()
    +	{
    +		return min;
    +	}
    +
    +	/**
    +	 * Removes the smallest element from the heap. This will cause the trees in
    +	 * the heap to be consolidated, if necessary.
    +	 * Does not remove the data node so that the current key remains stored.
    +	 * 
    +	 * <p>
    +	 * Running time: O(log n) amortized
    +	 * </p>
    +	 * 
    +	 * @return Returns the node with the smallest key.
    +	 */
    +	public Node removeMin()
    +	{
    +		Node z = min;
    +
    +		if (z != null)
    +		{
    +			int numKids = z.degree;
    +			Node x = z.child;
    +			Node tempRight;
    +
    +			// for each child of z do...
    +			while (numKids > 0)
    +			{
    +				tempRight = x.right;
    +
    +				// remove x from child list
    +				x.left.right = x.right;
    +				x.right.left = x.left;
    +
    +				// add x to root list of heap
    +				x.left = min;
    +				x.right = min.right;
    +				min.right = x;
    +				x.right.left = x;
    +
    +				// set parent[x] to null
    +				x.parent = null;
    +				x = tempRight;
    +				numKids--;
    +			}
    +
    +			// remove z from root list of heap
    +			z.left.right = z.right;
    +			z.right.left = z.left;
    +
    +			if (z == z.right)
    +			{
    +				min = null;
    +			}
    +			else
    +			{
    +				min = z.right;
    +				consolidate();
    +			}
    +
    +			// decrement size of heap
    +			size--;
    +		}
    +
    +		return z;
    +	}
    +
    +	/**
    +	 * Returns the size of the heap which is measured in the number of elements
    +	 * contained in the heap.
    +	 * 
    +	 * <p>
    +	 * Running time: O(1) actual
    +	 * </p>
    +	 * 
    +	 * @return Returns the number of elements in the heap.
    +	 */
    +	public int size()
    +	{
    +		return size;
    +	}
    +
    +	/**
    +	 * Joins two Fibonacci heaps into a new one. No heap consolidation is
    +	 * performed at this time. The two root lists are simply joined together.
    +	 * 
    +	 * <p>
    +	 * Running time: O(1) actual
    +	 * </p>
    +	 * 
    +	 * @param h1 The first heap.
    +	 * @param h2 The second heap.
    +	 * @return Returns a new heap containing h1 and h2.
    +	 */
    +	public static mxFibonacciHeap union(mxFibonacciHeap h1, mxFibonacciHeap h2)
    +	{
    +		mxFibonacciHeap h = new mxFibonacciHeap();
    +
    +		if ((h1 != null) && (h2 != null))
    +		{
    +			h.min = h1.min;
    +
    +			if (h.min != null)
    +			{
    +				if (h2.min != null)
    +				{
    +					h.min.right.left = h2.min.left;
    +					h2.min.left.right = h.min.right;
    +					h.min.right = h2.min;
    +					h2.min.left = h.min;
    +
    +					if (h2.min.key < h1.min.key)
    +					{
    +						h.min = h2.min;
    +					}
    +				}
    +			}
    +			else
    +			{
    +				h.min = h2.min;
    +			}
    +
    +			h.size = h1.size + h2.size;
    +		}
    +
    +		return h;
    +	}
    +
    +	/**
    +	 * Performs a cascading cut operation. This cuts y from its parent and then
    +	 * does the same for its parent, and so on up the tree.
    +	 * 
    +	 * <p>
    +	 * Running time: O(log n); O(1) excluding the recursion
    +	 * </p>
    +	 * 
    +	 * @param y The node to perform cascading cut on.
    +	 */
    +	protected void cascadingCut(Node y)
    +	{
    +		Node z = y.parent;
    +
    +		// if there's a parent...
    +		if (z != null)
    +		{
    +			// if y is unmarked, set it marked
    +			if (!y.mark)
    +			{
    +				y.mark = true;
    +			}
    +			else
    +			{
    +				// it's marked, cut it from parent
    +				cut(y, z);
    +
    +				// cut its parent as well
    +				cascadingCut(z);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Consolidates the trees in the heap by joining trees of equal degree until
    +	 * there are no more trees of equal degree in the root list.
    +	 * 
    +	 * <p>
    +	 * Running time: O(log n) amortized
    +	 * </p>
    +	 */
    +	protected void consolidate()
    +	{
    +		int arraySize = size + 1;
    +		Node[] array = new Node[arraySize];
    +
    +		// Initialize degree array
    +		for (int i = 0; i < arraySize; i++)
    +		{
    +			array[i] = null;
    +		}
    +
    +		// Find the number of root nodes.
    +		int numRoots = 0;
    +		Node x = min;
    +
    +		if (x != null)
    +		{
    +			numRoots++;
    +			x = x.right;
    +
    +			while (x != min)
    +			{
    +				numRoots++;
    +				x = x.right;
    +			}
    +		}
    +
    +		// For each node in root list do...
    +		while (numRoots > 0)
    +		{
    +			// Access this node's degree..
    +			int d = x.degree;
    +			Node next = x.right;
    +
    +			// ..and see if there's another of the same degree.
    +			while (array[d] != null)
    +			{
    +				// There is, make one of the nodes a child of the other.
    +				Node y = array[d];
    +
    +				// Do this based on the key value.
    +				if (x.key > y.key)
    +				{
    +					Node temp = y;
    +					y = x;
    +					x = temp;
    +				}
    +
    +				// Node y disappears from root list.
    +				link(y, x);
    +
    +				// We've handled this degree, go to next one.
    +				array[d] = null;
    +				d++;
    +			}
    +
    +			// Save this node for later when we might encounter another
    +			// of the same degree.
    +			array[d] = x;
    +
    +			// Move forward through list.
    +			x = next;
    +			numRoots--;
    +		}
    +
    +		// Set min to null (effectively losing the root list) and
    +		// reconstruct the root list from the array entries in array[].
    +		min = null;
    +
    +		for (int i = 0; i < arraySize; i++)
    +		{
    +			if (array[i] != null)
    +			{
    +				// We've got a live one, add it to root list.
    +				if (min != null)
    +				{
    +					// First remove node from root list.
    +					array[i].left.right = array[i].right;
    +					array[i].right.left = array[i].left;
    +
    +					// Now add to root list, again.
    +					array[i].left = min;
    +					array[i].right = min.right;
    +					min.right = array[i];
    +					array[i].right.left = array[i];
    +
    +					// Check if this is a new min.
    +					if (array[i].key < min.key)
    +					{
    +						min = array[i];
    +					}
    +				}
    +				else
    +				{
    +					min = array[i];
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * The reverse of the link operation: removes x from the child list of y.
    +	 * This method assumes that min is non-null.
    +	 * 
    +	 * <p>
    +	 * Running time: O(1)
    +	 * </p>
    +	 * 
    +	 * @param x The child of y to be removed from y's child list.
    +	 * @param y The parent of x about to lose a child.
    +	 */
    +	protected void cut(Node x, Node y)
    +	{
    +		// remove x from childlist of y and decrement degree[y]
    +		x.left.right = x.right;
    +		x.right.left = x.left;
    +		y.degree--;
    +
    +		// reset y.child if necessary
    +		if (y.child == x)
    +		{
    +			y.child = x.right;
    +		}
    +
    +		if (y.degree == 0)
    +		{
    +			y.child = null;
    +		}
    +
    +		// add x to root list of heap
    +		x.left = min;
    +		x.right = min.right;
    +		min.right = x;
    +		x.right.left = x;
    +
    +		// set parent[x] to nil
    +		x.parent = null;
    +
    +		// set mark[x] to false
    +		x.mark = false;
    +	}
    +
    +	/**
    +	 * Make node y a child of node x.
    +	 * 
    +	 * <p>
    +	 * Running time: O(1) actual
    +	 * </p>
    +	 * 
    +	 * @param y The node to become child.
    +	 * @param x The node to become parent.
    +	 */
    +	protected void link(Node y, Node x)
    +	{
    +		// remove y from root list of heap
    +		y.left.right = y.right;
    +		y.right.left = y.left;
    +
    +		// make y a child of x
    +		y.parent = x;
    +
    +		if (x.child == null)
    +		{
    +			x.child = y;
    +			y.right = y;
    +			y.left = y;
    +		}
    +		else
    +		{
    +			y.left = x.child;
    +			y.right = x.child.right;
    +			x.child.right = y;
    +			y.right.left = y;
    +		}
    +
    +		// increase degree[x]
    +		x.degree++;
    +
    +		// set mark[y] false
    +		y.mark = false;
    +	}
    +
    +	/**
    +	 * Implements a node of the Fibonacci heap. It holds the information
    +	 * necessary for maintaining the structure of the heap. It also holds the
    +	 * reference to the key value (which is used to determine the heap
    +	 * structure). Additional Node data should be stored in a subclass.
    +	 */
    +	public static class Node
    +	{
    +
    +		Object userObject;
    +
    +		/**
    +		 * first child node
    +		 */
    +		Node child;
    +
    +		/**
    +		 * left sibling node
    +		 */
    +		Node left;
    +
    +		/**
    +		 * parent node
    +		 */
    +		Node parent;
    +
    +		/**
    +		 * right sibling node
    +		 */
    +		Node right;
    +
    +		/**
    +		 * true if this node has had a child removed since this node was added
    +		 * to its parent
    +		 */
    +		boolean mark;
    +
    +		/**
    +		 * key value for this node
    +		 */
    +		double key;
    +
    +		/**
    +		 * number of children of this node (does not count grandchildren)
    +		 */
    +		int degree;
    +
    +		/**
    +		 * Default constructor. Initializes the right and left pointers, making
    +		 * this a circular doubly-linked list.
    +		 * 
    +		 * @param key The initial key for node.
    +		 */
    +		public Node(Object userObject, double key)
    +		{
    +			this.userObject = userObject;
    +			right = this;
    +			left = this;
    +			this.key = key;
    +		}
    +
    +		/**
    +		 * Obtain the key for this node.
    +		 * 
    +		 * @return the key
    +		 */
    +		public final double getKey()
    +		{
    +			return key;
    +		}
    +
    +		/**
    +		 * @return Returns the userObject.
    +		 */
    +		public Object getUserObject()
    +		{
    +			return userObject;
    +		}
    +
    +		/**
    +		 * @param userObject The userObject to set.
    +		 */
    +		public void setUserObject(Object userObject)
    +		{
    +			this.userObject = userObject;
    +		}
    +
    +	}
    +
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/analysis/mxGraphAnalysis.java b/java/src/com/mxgraph/analysis/mxGraphAnalysis.java
    new file mode 100644
    index 000000000..3d483c474
    --- /dev/null
    +++ b/java/src/com/mxgraph/analysis/mxGraphAnalysis.java
    @@ -0,0 +1,464 @@
    +/*
    + * $Id: mxGraphAnalysis.java,v 1.4 2012-03-09 07:42:54 gaudenz Exp $
    + * Copyright (c) 2001-2005, Gaudenz Alder
    + * 
    + * All rights reserved. 
    + * 
    + * This file is licensed under the JGraph software license, a copy of which
    + * will have been provided to you in the file LICENSE at the root of your
    + * installation directory. If you are unable to locate this file please
    + * contact JGraph sales for another copy.
    + */
    +package com.mxgraph.analysis;
    +
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.Collections;
    +import java.util.Comparator;
    +import java.util.Hashtable;
    +import java.util.List;
    +
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +
    +/**
    + * A singleton class that provides algorithms for graphs. Assume these
    + * variables for the following examples:<br>
    + * <code>
    + * mxICostFunction cf = mxDistanceCostFunction();
    + * Object[] v = graph.getChildVertices(graph.getDefaultParent());
    + * Object[] e = graph.getChildEdges(graph.getDefaultParent());
    + * mxGraphAnalysis mga = mxGraphAnalysis.getInstance();
    + * </code>
    + * 
    + * <h3>Shortest Path (Dijkstra)</h3>
    + * 
    + * For example, to find the shortest path between the first and the second
    + * selected cell in a graph use the following code: <br>
    + * <br>
    + * <code>Object[] path = mga.getShortestPath(graph, from, to, cf, v.length, true);</code>
    + * 
    + * <h3>Minimum Spanning Tree</h3>
    + * 
    + * This algorithm finds the set of edges with the minimal length that connect
    + * all vertices. This algorithm can be used as follows:
    + * <h5>Prim</h5>
    + * <code>mga.getMinimumSpanningTree(graph, v, cf, true))</code>
    + * <h5>Kruskal</h5>
    + * <code>mga.getMinimumSpanningTree(graph, v, e, cf))</code>
    + * 
    + * <h3>Connection Components</h3>
    + * 
    + * The union find may be used as follows to determine whether two cells are
    + * connected: <code>boolean connected = uf.differ(vertex1, vertex2)</code>.
    + * 
    + * @see mxICostFunction
    + */
    +public class mxGraphAnalysis
    +{
    +
    +	/**
    +	 * Holds the shared instance of this class.
    +	 */
    +	protected static mxGraphAnalysis instance = new mxGraphAnalysis();
    +
    +	/**
    +	 *
    +	 */
    +	protected mxGraphAnalysis()
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * @return Returns the sharedInstance.
    +	 */
    +	public static mxGraphAnalysis getInstance()
    +	{
    +		return instance;
    +	}
    +
    +	/**
    +	 * Sets the shared instance of this class.
    +	 * 
    +	 * @param instance The instance to set.
    +	 */
    +	public static void setInstance(mxGraphAnalysis instance)
    +	{
    +		mxGraphAnalysis.instance = instance;
    +	}
    +
    +	/**
    +	 * Returns the shortest path between two cells or their descendants
    +	 * represented as an array of edges in order of traversal. <br>
    +	 * This implementation is based on the Dijkstra algorithm.
    +	 * 
    +	 * @param graph The object that defines the graph structure
    +	 * @param from The source cell.
    +	 * @param to The target cell (aka sink).
    +	 * @param cf The cost function that defines the edge length.
    +	 * @param steps The maximum number of edges to traverse.
    +	 * @param directed If edge directions should be taken into account.
    +	 * @return Returns the shortest path as an alternating array of vertices
    +	 * and edges, starting with <code>from</code> and ending with
    +	 * <code>to</code>.
    +	 * 
    +	 * @see #createPriorityQueue()
    +	 */
    +	public Object[] getShortestPath(mxGraph graph, Object from, Object to,
    +			mxICostFunction cf, int steps, boolean directed)
    +	{
    +		// Sets up a pqueue and a hashtable to store the predecessor for each
    +		// cell in tha graph traversal. The pqueue is initialized
    +		// with the from element at prio 0.
    +		mxGraphView view = graph.getView();
    +		mxFibonacciHeap q = createPriorityQueue();
    +		Hashtable<Object, Object> pred = new Hashtable<Object, Object>();
    +		q.decreaseKey(q.getNode(from, true), 0); // Inserts automatically
    +
    +		// The main loop of the dijkstra algorithm is based on the pqueue being
    +		// updated with the actual shortest distance to the source vertex.
    +		for (int j = 0; j < steps; j++)
    +		{
    +			mxFibonacciHeap.Node node = q.removeMin();
    +			double prio = node.getKey();
    +			Object obj = node.getUserObject();
    +
    +			// Exits the loop if the target node or vertex has been reached
    +			if (obj == to)
    +			{
    +				break;
    +			}
    +
    +			// Gets all outgoing edges of the closest cell to the source
    +			Object[] e = (directed) ? graph.getOutgoingEdges(obj) : graph
    +					.getConnections(obj);
    +
    +			if (e != null)
    +			{
    +				for (int i = 0; i < e.length; i++)
    +				{
    +					Object[] opp = graph.getOpposites(new Object[] { e[i] },
    +							obj);
    +
    +					if (opp != null && opp.length > 0)
    +					{
    +						Object neighbour = opp[0];
    +
    +						// Updates the priority in the pqueue for the opposite node
    +						// to be the distance of this step plus the cost to
    +						// traverese the edge to the neighbour. Note that the
    +						// priority queue will make sure that in the next step the
    +						// node with the smallest prio will be traversed.
    +						if (neighbour != null && neighbour != obj
    +								&& neighbour != from)
    +						{
    +							double newPrio = prio
    +									+ ((cf != null) ? cf.getCost(view
    +											.getState(e[i])) : 1);
    +							node = q.getNode(neighbour, true);
    +							double oldPrio = node.getKey();
    +
    +							if (newPrio < oldPrio)
    +							{
    +								pred.put(neighbour, e[i]);
    +								q.decreaseKey(node, newPrio);
    +							}
    +						}
    +					}
    +				}
    +			}
    +
    +			if (q.isEmpty())
    +			{
    +				break;
    +			}
    +		}
    +
    +		// Constructs a path array by walking backwards through the predessecor
    +		// map and filling up a list of edges, which is subsequently returned.
    +		ArrayList<Object> list = new ArrayList<Object>(2 * steps);
    +		Object obj = to;
    +		Object edge = pred.get(obj);
    +
    +		if (edge != null)
    +		{
    +			list.add(obj);
    +
    +			while (edge != null)
    +			{
    +				list.add(0, edge);
    +
    +				mxCellState state = view.getState(edge);
    +				Object source = (state != null) ? state
    +						.getVisibleTerminal(true) : view.getVisibleTerminal(
    +						edge, true);
    +				boolean isSource = source == obj;
    +				obj = (state != null) ? state.getVisibleTerminal(!isSource)
    +						: view.getVisibleTerminal(edge, !isSource);
    +				list.add(0, obj);
    +
    +				edge = pred.get(obj);
    +			}
    +		}
    +
    +		return list.toArray();
    +	}
    +
    +	/**
    +	 * Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).
    +	 * The MST is defined as the set of all vertices with minimal lengths that
    +	 * forms no cycles in G.<br>
    +	 * This implementation is based on the algorihm by Prim-Jarnik. It uses
    +	 * O(|E|+|V|log|V|) time when used with a Fibonacci heap and a graph whith a
    +	 * double linked-list datastructure, as is the case with the default
    +	 * implementation.
    +	 * 
    +	 * @param graph
    +	 *            the object that describes the graph
    +	 * @param v
    +	 *            the vertices of the graph
    +	 * @param cf
    +	 *            the cost function that defines the edge length
    +	 * 
    +	 * @return Returns the MST as an array of edges
    +	 * 
    +	 * @see #createPriorityQueue()
    +	 */
    +	public Object[] getMinimumSpanningTree(mxGraph graph, Object[] v,
    +			mxICostFunction cf, boolean directed)
    +	{
    +		ArrayList<Object> mst = new ArrayList<Object>(v.length);
    +
    +		// Sets up a pqueue and a hashtable to store the predecessor for each
    +		// cell in tha graph traversal. The pqueue is initialized
    +		// with the from element at prio 0.
    +		mxFibonacciHeap q = createPriorityQueue();
    +		Hashtable<Object, Object> pred = new Hashtable<Object, Object>();
    +		Object u = v[0];
    +		q.decreaseKey(q.getNode(u, true), 0);
    +
    +		for (int i = 1; i < v.length; i++)
    +		{
    +			q.getNode(v[i], true);
    +		}
    +
    +		// The main loop of the dijkstra algorithm is based on the pqueue being
    +		// updated with the actual shortest distance to the source vertex.
    +		while (!q.isEmpty())
    +		{
    +			mxFibonacciHeap.Node node = q.removeMin();
    +			u = node.getUserObject();
    +			Object edge = pred.get(u);
    +
    +			if (edge != null)
    +			{
    +				mst.add(edge);
    +			}
    +
    +			// Gets all outgoing edges of the closest cell to the source
    +			Object[] e = (directed) ? graph.getOutgoingEdges(u) : graph
    +					.getConnections(u);
    +			Object[] opp = graph.getOpposites(e, u);
    +
    +			if (e != null)
    +			{
    +				for (int i = 0; i < e.length; i++)
    +				{
    +					Object neighbour = opp[i];
    +
    +					// Updates the priority in the pqueue for the opposite node
    +					// to be the distance of this step plus the cost to
    +					// traverese the edge to the neighbour. Note that the
    +					// priority queue will make sure that in the next step the
    +					// node with the smallest prio will be traversed.
    +					if (neighbour != null && neighbour != u)
    +					{
    +						node = q.getNode(neighbour, false);
    +
    +						if (node != null)
    +						{
    +							double newPrio = cf.getCost(graph.getView()
    +									.getState(e[i]));
    +							double oldPrio = node.getKey();
    +
    +							if (newPrio < oldPrio)
    +							{
    +								pred.put(neighbour, e[i]);
    +								q.decreaseKey(node, newPrio);
    +							}
    +						}
    +					}
    +				}
    +			}
    +		}
    +
    +		return mst.toArray();
    +	}
    +
    +	/**
    +	 * Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).
    +	 * The MST is defined as the set of all vertices with minimal lenths that
    +	 * forms no cycles in G.<br>
    +	 * This implementation is based on the algorihm by Kruskal. It uses
    +	 * O(|E|log|E|)=O(|E|log|V|) time for sorting the edges, O(|V|) create sets,
    +	 * O(|E|) find and O(|V|) union calls on the union find structure, thus
    +	 * yielding no more than O(|E|log|V|) steps. For a faster implementatin
    +	 * 
    +	 * @see #getMinimumSpanningTree(mxGraph, Object[], mxICostFunction,
    +	 *      boolean)
    +	 * 
    +	 * @param graph The object that contains the graph.
    +	 * @param v The vertices of the graph.
    +	 * @param e The edges of the graph.
    +	 * @param cf The cost function that defines the edge length.
    +	 * 
    +	 * @return Returns the MST as an array of edges.
    +	 * 
    +	 * @see #createUnionFind(Object[])
    +	 */
    +	public Object[] getMinimumSpanningTree(mxGraph graph, Object[] v,
    +			Object[] e, mxICostFunction cf)
    +	{
    +		// Sorts all edges according to their lengths, then creates a union
    +		// find structure for all vertices. Then walks through all edges by
    +		// increasing length and tries adding to the MST. Only edges are added
    +		// that do not form cycles in the graph, that is, where the source
    +		// and target are in different sets in the union find structure.
    +		// Whenever an edge is added to the MST, the two different sets are
    +		// unified.
    +		mxGraphView view = graph.getView();
    +		mxUnionFind uf = createUnionFind(v);
    +		ArrayList<Object> result = new ArrayList<Object>(e.length);
    +		mxCellState[] edgeStates = sort(view.getCellStates(e), cf);
    +
    +		for (int i = 0; i < edgeStates.length; i++)
    +		{
    +			Object source = edgeStates[i].getVisibleTerminal(true);
    +			Object target = edgeStates[i].getVisibleTerminal(false);
    +
    +			mxUnionFind.Node setA = uf.find(uf.getNode(source));
    +			mxUnionFind.Node setB = uf.find(uf.getNode(target));
    +
    +			if (setA == null || setB == null || setA != setB)
    +			{
    +				uf.union(setA, setB);
    +				result.add(edgeStates[i].getCell());
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Returns a union find structure representing the connection components of
    +	 * G=(E,V).
    +	 * 
    +	 * @param graph The object that contains the graph.
    +	 * @param v The vertices of the graph.
    +	 * @param e The edges of the graph.
    +	 * @return Returns the connection components in G=(E,V)
    +	 * 
    +	 * @see #createUnionFind(Object[])
    +	 */
    +	public mxUnionFind getConnectionComponents(mxGraph graph, Object[] v,
    +			Object[] e)
    +	{
    +		mxGraphView view = graph.getView();
    +		mxUnionFind uf = createUnionFind(v);
    +
    +		for (int i = 0; i < e.length; i++)
    +		{
    +			mxCellState state = view.getState(e[i]);
    +			Object source = (state != null) ? state.getVisibleTerminal(true)
    +					: view.getVisibleTerminal(e[i], true);
    +			Object target = (state != null) ? state.getVisibleTerminal(false)
    +					: view.getVisibleTerminal(e[i], false);
    +
    +			uf.union(uf.find(uf.getNode(source)), uf.find(uf.getNode(target)));
    +		}
    +
    +		return uf;
    +	}
    +
    +	/**
    +	 * Returns a sorted set for <code>cells</code> with respect to
    +	 * <code>cf</code>.
    +	 * 
    +	 * @param states
    +	 *            the cell states to sort
    +	 * @param cf
    +	 *            the cost function that defines the order
    +	 * 
    +	 * @return Returns an ordered set of <code>cells</code> wrt.
    +	 *         <code>cf</code>
    +	 */
    +	public mxCellState[] sort(mxCellState[] states, final mxICostFunction cf)
    +	{
    +		List<mxCellState> result = Arrays.asList(states);
    +
    +		Collections.sort(result, new Comparator<mxCellState>()
    +		{
    +
    +			/**
    +			 * 
    +			 */
    +			public int compare(mxCellState o1, mxCellState o2)
    +			{
    +				Double d1 = new Double(cf.getCost(o1));
    +				Double d2 = new Double(cf.getCost(o2));
    +
    +				return d1.compareTo(d2);
    +			}
    +
    +		});
    +
    +		return (mxCellState[]) result.toArray();
    +	}
    +
    +	/**
    +	 * Returns the sum of all cost for <code>cells</code> with respect to
    +	 * <code>cf</code>.
    +	 * 
    +	 * @param states
    +	 *            the cell states to use for the sum
    +	 * @param cf
    +	 *            the cost function that defines the costs
    +	 * 
    +	 * @return Returns the sum of all cell cost
    +	 */
    +	public double sum(mxCellState[] states, mxICostFunction cf)
    +	{
    +		double sum = 0;
    +
    +		for (int i = 0; i < states.length; i++)
    +		{
    +			sum += cf.getCost(states[i]);
    +		}
    +
    +		return sum;
    +	}
    +
    +	/**
    +	 * Hook for subclassers to provide a custom union find structure.
    +	 * 
    +	 * @param v
    +	 *            the array of all elements
    +	 * 
    +	 * @return Returns a union find structure for <code>v</code>
    +	 */
    +	protected mxUnionFind createUnionFind(Object[] v)
    +	{
    +		return new mxUnionFind(v);
    +	}
    +
    +	/**
    +	 * Hook for subclassers to provide a custom fibonacci heap.
    +	 */
    +	protected mxFibonacciHeap createPriorityQueue()
    +	{
    +		return new mxFibonacciHeap();
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/analysis/mxICostFunction.java b/java/src/com/mxgraph/analysis/mxICostFunction.java
    new file mode 100644
    index 000000000..ffa9f74b0
    --- /dev/null
    +++ b/java/src/com/mxgraph/analysis/mxICostFunction.java
    @@ -0,0 +1,27 @@
    +/**
    + * $Id: mxICostFunction.java,v 1.1 2009-10-16 14:35:58 david Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.analysis;
    +
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * The cost function takes a cell and returns it's cost as a double. Two typical
    + * examples of cost functions are the euclidian length of edges or a constant
    + * number for each edge. To use one of the built-in cost functions, use either
    + * <code>new mxDistanceCostFunction(graph)</code> or
    + * <code>new mxConstantCostFunction(1)</code>.
    + */
    +public interface mxICostFunction
    +{
    +
    +	/**
    +	 * Evaluates the cost of the given cell state.
    +	 * 
    +	 * @param state The cell state to be evaluated
    +	 * @return Returns the cost to traverse the given cell state.
    +	 */
    +	double getCost(mxCellState state);
    +
    +}
    diff --git a/java/src/com/mxgraph/analysis/mxUnionFind.java b/java/src/com/mxgraph/analysis/mxUnionFind.java
    new file mode 100644
    index 000000000..f632d4b76
    --- /dev/null
    +++ b/java/src/com/mxgraph/analysis/mxUnionFind.java
    @@ -0,0 +1,157 @@
    +/**
    + * $Id: mxUnionFind.java,v 1.2 2009-11-24 12:00:28 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.analysis;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +/**
    + * Implements a union find structure that uses union by rank and path
    + * compression. The union by rank guarantees worst case find time of O(log N),
    + * while Tarjan shows that in combination with path compression (halving) the
    + * average time for an arbitrary sequence of m >= n operations is
    + * O(m*alpha(m,n)), where alpha is the inverse of the Ackermann function,
    + * defined as follows:
    + * <code>alpha(m,n) = min{i &gt;= 1 | A(i, floor(m/n)) &gt; log n} for m &gt;= n &gt;= 1</code>
    + * Which yields almost constant time for each individual operation.
    + */
    +public class mxUnionFind
    +{
    +
    +	/**
    +	 * Maps from elements to nodes
    +	 */
    +	protected Map<Object, Node> nodes = new Hashtable<Object, Node>();
    +
    +	/**
    +	 * Constructs a union find structure and initializes it with the specified
    +	 * elements.
    +	 * 
    +	 * @param elements
    +	 */
    +	public mxUnionFind(Object[] elements)
    +	{
    +		for (int i = 0; i < elements.length; i++)
    +		{
    +			nodes.put(elements[i], new Node());
    +		}
    +	}
    +
    +	/**
    +	 * Returns the node that represents element.
    +	 */
    +	public Node getNode(Object element)
    +	{
    +		return nodes.get(element);
    +	}
    +
    +	/**
    +	 * Returns the set that contains <code>node</code>. This implementation
    +	 * provides path compression by halving.
    +	 */
    +	public Node find(Node node)
    +	{
    +		while (node.getParent().getParent() != node.getParent())
    +		{
    +			Node t = node.getParent().getParent();
    +			node.setParent(t);
    +			node = t;
    +		}
    +
    +		return node.getParent();
    +	}
    +
    +	/**
    +	 * Unifies the sets <code>a</code> and <code>b</code> in constant time
    +	 * using a union by rank on the tree size.
    +	 */
    +	public void union(Node a, Node b)
    +	{
    +		Node set1 = find(a);
    +		Node set2 = find(b);
    +
    +		if (set1 != set2)
    +		{
    +			// Limits the worst case runtime of a find to O(log N)
    +			if (set1.getSize() < set2.getSize())
    +			{
    +				set2.setParent(set1);
    +				set1.setSize(set1.getSize() + set2.getSize());
    +			}
    +			else
    +			{
    +				set1.setParent(set2);
    +				set2.setSize(set1.getSize() + set2.getSize());
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if element a and element b are not in the same set. This
    +	 * uses getNode and then find to determine the elements set.
    +	 * 
    +	 * @param a The first element to compare.
    +	 * @param b The second element to compare.
    +	 * @return Returns true if a and b are in the same set.
    +	 * 
    +	 * @see #getNode(Object)
    +	 */
    +	public boolean differ(Object a, Object b)
    +	{
    +		Node set1 = find(getNode(a));
    +		Node set2 = find(getNode(b));
    +
    +		return set1 != set2;
    +	}
    +
    +	/**
    +	 * A class that defines the identity of a set.
    +	 */
    +	public class Node
    +	{
    +
    +		/**
    +		 * Reference to the parent node. Root nodes point to themselves.
    +		 */
    +		protected Node parent = this;
    +
    +		/**
    +		 * The size of the tree. Initial value is 1.
    +		 */
    +		protected int size = 1;
    +
    +		/**
    +		 * @return Returns the parent node
    +		 */
    +		public Node getParent()
    +		{
    +			return parent;
    +		}
    +
    +		/**
    +		 * @param parent The parent node to set.
    +		 */
    +		public void setParent(Node parent)
    +		{
    +			this.parent = parent;
    +		}
    +
    +		/**
    +		 * @return Returns the size.
    +		 */
    +		public int getSize()
    +		{
    +			return size;
    +		}
    +
    +		/**
    +		 * @param size The size to set.
    +		 */
    +		public void setSize(int size)
    +		{
    +			this.size = size;
    +		}
    +	}
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/analysis/package.html b/java/src/com/mxgraph/analysis/package.html
    new file mode 100644
    index 000000000..a83f43e55
    --- /dev/null
    +++ b/java/src/com/mxgraph/analysis/package.html
    @@ -0,0 +1,6 @@
    +<HTML>
    +<BODY>
    +  This package provides various algorithms for graph analysis, such as
    +  shortest path and minimum spanning tree.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/canvas/mxBasicCanvas.java b/java/src/com/mxgraph/canvas/mxBasicCanvas.java
    new file mode 100644
    index 000000000..d1a8ad1cd
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/mxBasicCanvas.java
    @@ -0,0 +1,161 @@
    +package com.mxgraph.canvas;
    +
    +import java.awt.Point;
    +import java.awt.image.BufferedImage;
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxUtils;
    +
    +public abstract class mxBasicCanvas implements mxICanvas
    +{
    +
    +	/**
    +	 * Specifies if image aspect should be preserved in drawImage. Default is true.
    +	 */
    +	public static boolean PRESERVE_IMAGE_ASPECT = true;
    +
    +	/**
    +	 * Defines the default value for the imageBasePath in all GDI canvases.
    +	 * Default is an empty string.
    +	 */
    +	public static String DEFAULT_IMAGEBASEPATH = "";
    +
    +	/**
    +	 * Defines the base path for images with relative paths. Trailing slash
    +	 * is required. Default value is DEFAULT_IMAGEBASEPATH.
    +	 */
    +	protected String imageBasePath = DEFAULT_IMAGEBASEPATH;
    +
    +	/**
    +	 * Specifies the current translation. Default is (0,0).
    +	 */
    +	protected Point translate = new Point();
    +
    +	/**
    +	 * Specifies the current scale. Default is 1.
    +	 */
    +	protected double scale = 1;
    +
    +	/**
    +	 * Specifies whether labels should be painted. Default is true.
    +	 */
    +	protected boolean drawLabels = true;
    +
    +	/**
    +	 * Cache for images.
    +	 */
    +	protected Hashtable<String, BufferedImage> imageCache = new Hashtable<String, BufferedImage>();
    +
    +	/**
    +	 * Sets the current translate.
    +	 */
    +	public void setTranslate(int dx, int dy)
    +	{
    +		translate = new Point(dx, dy);
    +	}
    +
    +	/**
    +	 * Returns the current translate.
    +	 */
    +	public Point getTranslate()
    +	{
    +		return translate;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setScale(double scale)
    +	{
    +		this.scale = scale;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public double getScale()
    +	{
    +		return scale;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setDrawLabels(boolean drawLabels)
    +	{
    +		this.drawLabels = drawLabels;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public String getImageBasePath()
    +	{
    +		return imageBasePath;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setImageBasePath(String imageBasePath)
    +	{
    +		this.imageBasePath = imageBasePath;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isDrawLabels()
    +	{
    +		return drawLabels;
    +	}
    +
    +	/**
    +	 * Returns an image instance for the given URL. If the URL has
    +	 * been loaded before than an instance of the same instance is
    +	 * returned as in the previous call.
    +	 */
    +	public BufferedImage loadImage(String image)
    +	{
    +		BufferedImage img = imageCache.get(image);
    +
    +		if (img == null)
    +		{
    +			img = mxUtils.loadImage(image);
    +
    +			if (img != null)
    +			{
    +				imageCache.put(image, img);
    +			}
    +		}
    +
    +		return img;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void flushImageCache()
    +	{
    +		imageCache.clear();
    +	}
    +
    +	/**
    +	 * Gets the image path from the given style. If the path is relative (does
    +	 * not start with a slash) then it is appended to the imageBasePath.
    +	 */
    +	public String getImageForStyle(Map<String, Object> style)
    +	{
    +		String filename = mxUtils.getString(style, mxConstants.STYLE_IMAGE);
    +
    +		if (filename != null && !filename.startsWith("/") && !filename.startsWith("file:/"))
    +		{
    +			filename = imageBasePath + filename;
    +		}
    +
    +		return filename;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/canvas/mxGraphics2DCanvas.java b/java/src/com/mxgraph/canvas/mxGraphics2DCanvas.java
    new file mode 100644
    index 000000000..dbc8ec3d1
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/mxGraphics2DCanvas.java
    @@ -0,0 +1,612 @@
    +/**
    + * $Id: mxGraphics2DCanvas.java,v 1.198 2012-03-22 18:40:55 gaudenz Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.canvas;
    +
    +import java.awt.AlphaComposite;
    +import java.awt.BasicStroke;
    +import java.awt.Color;
    +import java.awt.Dimension;
    +import java.awt.GradientPaint;
    +import java.awt.Graphics2D;
    +import java.awt.Image;
    +import java.awt.Paint;
    +import java.awt.Rectangle;
    +import java.awt.Shape;
    +import java.awt.Stroke;
    +import java.awt.geom.AffineTransform;
    +import java.awt.geom.GeneralPath;
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.swing.CellRendererPane;
    +
    +import com.mxgraph.shape.mxActorShape;
    +import com.mxgraph.shape.mxArrowShape;
    +import com.mxgraph.shape.mxCloudShape;
    +import com.mxgraph.shape.mxConnectorShape;
    +import com.mxgraph.shape.mxCurveShape;
    +import com.mxgraph.shape.mxCylinderShape;
    +import com.mxgraph.shape.mxDefaultTextShape;
    +import com.mxgraph.shape.mxDoubleEllipseShape;
    +import com.mxgraph.shape.mxEllipseShape;
    +import com.mxgraph.shape.mxHexagonShape;
    +import com.mxgraph.shape.mxHtmlTextShape;
    +import com.mxgraph.shape.mxIShape;
    +import com.mxgraph.shape.mxITextShape;
    +import com.mxgraph.shape.mxImageShape;
    +import com.mxgraph.shape.mxLabelShape;
    +import com.mxgraph.shape.mxLineShape;
    +import com.mxgraph.shape.mxRectangleShape;
    +import com.mxgraph.shape.mxRhombusShape;
    +import com.mxgraph.shape.mxStencilRegistry;
    +import com.mxgraph.shape.mxSwimlaneShape;
    +import com.mxgraph.shape.mxTriangleShape;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * An implementation of a canvas that uses Graphics2D for painting.
    + */
    +public class mxGraphics2DCanvas extends mxBasicCanvas
    +{
    +	/**
    +	 * 
    +	 */
    +	public static final String TEXT_SHAPE_DEFAULT = "default";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String TEXT_SHAPE_HTML = "html";
    +
    +	/**
    +	 * Specifies the image scaling quality. Default is Image.SCALE_SMOOTH.
    +	 */
    +	public static int IMAGE_SCALING = Image.SCALE_SMOOTH;
    +
    +	/**
    +	 * Maps from names to mxIVertexShape instances.
    +	 */
    +	protected static Map<String, mxIShape> shapes = new HashMap<String, mxIShape>();
    +
    +	/**
    +	 * Maps from names to mxITextShape instances. There are currently three different
    +	 * hardcoded text shapes available here: default, html and wrapped.
    +	 */
    +	protected static Map<String, mxITextShape> textShapes = new HashMap<String, mxITextShape>();
    +
    +	/**
    +	 * Static initializer.
    +	 */
    +	static
    +	{
    +		putShape(mxConstants.SHAPE_ACTOR, new mxActorShape());
    +		putShape(mxConstants.SHAPE_ARROW, new mxArrowShape());
    +		putShape(mxConstants.SHAPE_CLOUD, new mxCloudShape());
    +		putShape(mxConstants.SHAPE_CONNECTOR, new mxConnectorShape());
    +		putShape(mxConstants.SHAPE_CYLINDER, new mxCylinderShape());
    +		putShape(mxConstants.SHAPE_CURVE, new mxCurveShape());
    +		putShape(mxConstants.SHAPE_DOUBLE_ELLIPSE, new mxDoubleEllipseShape());
    +		putShape(mxConstants.SHAPE_ELLIPSE, new mxEllipseShape());
    +		putShape(mxConstants.SHAPE_HEXAGON, new mxHexagonShape());
    +		putShape(mxConstants.SHAPE_IMAGE, new mxImageShape());
    +		putShape(mxConstants.SHAPE_LABEL, new mxLabelShape());
    +		putShape(mxConstants.SHAPE_LINE, new mxLineShape());
    +		putShape(mxConstants.SHAPE_RECTANGLE, new mxRectangleShape());
    +		putShape(mxConstants.SHAPE_RHOMBUS, new mxRhombusShape());
    +		putShape(mxConstants.SHAPE_SWIMLANE, new mxSwimlaneShape());
    +		putShape(mxConstants.SHAPE_TRIANGLE, new mxTriangleShape());
    +		putTextShape(TEXT_SHAPE_DEFAULT, new mxDefaultTextShape());
    +		putTextShape(TEXT_SHAPE_HTML, new mxHtmlTextShape());
    +	}
    +
    +	/**
    +	 * Optional renderer pane to be used for HTML label rendering.
    +	 */
    +	protected CellRendererPane rendererPane;
    +
    +	/**
    +	 * Global graphics handle to the image.
    +	 */
    +	protected Graphics2D g;
    +
    +	/**
    +	 * Constructs a new graphics canvas with an empty graphics object.
    +	 */
    +	public mxGraphics2DCanvas()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * Constructs a new graphics canvas for the given graphics object.
    +	 */
    +	public mxGraphics2DCanvas(Graphics2D g)
    +	{
    +		this.g = g;
    +
    +		// Initializes the cell renderer pane for drawing HTML markup
    +		try
    +		{
    +			rendererPane = new CellRendererPane();
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static void putShape(String name, mxIShape shape)
    +	{
    +		shapes.put(name, shape);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxIShape getShape(Map<String, Object> style)
    +	{
    +		String name = mxUtils.getString(style, mxConstants.STYLE_SHAPE, null);
    +		mxIShape shape = shapes.get(name);
    +
    +		if (shape == null)
    +		{
    +			shape = mxStencilRegistry.getStencil(name);
    +		}
    +
    +		return shape;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static void putTextShape(String name, mxITextShape shape)
    +	{
    +		textShapes.put(name, shape);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxITextShape getTextShape(Map<String, Object> style, boolean html)
    +	{
    +		String name;
    +
    +		if (html)
    +		{
    +			name = TEXT_SHAPE_HTML;
    +		}
    +		else
    +		{
    +			name = TEXT_SHAPE_DEFAULT;
    +		}
    +
    +		return textShapes.get(name);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public CellRendererPane getRendererPane()
    +	{
    +		return rendererPane;
    +	}
    +
    +	/**
    +	 * Returns the graphics object for this canvas.
    +	 */
    +	public Graphics2D getGraphics()
    +	{
    +		return g;
    +	}
    +
    +	/**
    +	 * Sets the graphics object for this canvas.
    +	 */
    +	public void setGraphics(Graphics2D g)
    +	{
    +		this.g = g;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.canvas.mxICanvas#drawCell()
    +	 */
    +	public Object drawCell(mxCellState state)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +		mxIShape shape = getShape(style);
    +
    +		if (g != null && shape != null)
    +		{
    +			// Creates a temporary graphics instance for drawing this shape
    +			float opacity = mxUtils.getFloat(style, mxConstants.STYLE_OPACITY,
    +					100);
    +			Graphics2D previousGraphics = g;
    +			g = createTemporaryGraphics(style, opacity, state);
    +
    +			// Paints the shape and restores the graphics object
    +			shape.paintShape(this, state);
    +			g.dispose();
    +			g = previousGraphics;
    +		}
    +
    +		return shape;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.canvas.mxICanvas#drawLabel()
    +	 */
    +	public Object drawLabel(String text, mxCellState state, boolean html)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +		mxITextShape shape = getTextShape(style, html);
    +
    +		if (g != null && shape != null && drawLabels && text != null
    +				&& text.length() > 0)
    +		{
    +			// Creates a temporary graphics instance for drawing this shape
    +			float opacity = mxUtils.getFloat(style,
    +					mxConstants.STYLE_TEXT_OPACITY, 100);
    +			Graphics2D previousGraphics = g;
    +			g = createTemporaryGraphics(style, opacity, null);
    +
    +			// Draws the label background and border
    +			Color bg = mxUtils.getColor(style,
    +					mxConstants.STYLE_LABEL_BACKGROUNDCOLOR);
    +			Color border = mxUtils.getColor(style,
    +					mxConstants.STYLE_LABEL_BORDERCOLOR);
    +			paintRectangle(state.getLabelBounds().getRectangle(), bg, border);
    +
    +			// Paints the label and restores the graphics object
    +			shape.paintShape(this, text, state, style);
    +			g.dispose();
    +			g = previousGraphics;
    +		}
    +
    +		return shape;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void drawImage(Rectangle bounds, String imageUrl)
    +	{
    +		drawImage(bounds, imageUrl, PRESERVE_IMAGE_ASPECT, false, false);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void drawImage(Rectangle bounds, String imageUrl,
    +			boolean preserveAspect, boolean flipH, boolean flipV)
    +	{
    +		if (imageUrl != null && bounds.getWidth() > 0 && bounds.getHeight() > 0)
    +		{
    +			Image img = loadImage(imageUrl);
    +
    +			if (img != null)
    +			{
    +				int w, h;
    +				int x = bounds.x;
    +				int y = bounds.y;
    +				Dimension size = getImageSize(img);
    +
    +				if (preserveAspect)
    +				{
    +					double s = Math.min(bounds.width / (double) size.width,
    +							bounds.height / (double) size.height);
    +					w = (int) (size.width * s);
    +					h = (int) (size.height * s);
    +					x += (bounds.width - w) / 2;
    +					y += (bounds.height - h) / 2;
    +				}
    +				else
    +				{
    +					w = bounds.width;
    +					h = bounds.height;
    +				}
    +
    +				Image scaledImage = (w == size.width && h == size.height) ? img
    +						: img.getScaledInstance(w, h, IMAGE_SCALING);
    +
    +				if (scaledImage != null)
    +				{
    +					AffineTransform af = null;
    +
    +					if (flipH || flipV)
    +					{
    +						af = g.getTransform();
    +						int sx = 1;
    +						int sy = 1;
    +						int dx = 0;
    +						int dy = 0;
    +
    +						if (flipH)
    +						{
    +							sx = -1;
    +							dx = -w - 2 * x;
    +						}
    +
    +						if (flipV)
    +						{
    +							sy = -1;
    +							dy = -h - 2 * y;
    +						}
    +
    +						g.scale(sx, sy);
    +						g.translate(dx, dy);
    +					}
    +
    +					drawImageImpl(scaledImage, x, y);
    +
    +					// Restores the previous transform
    +					if (af != null)
    +					{
    +						g.setTransform(af);
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Implements the actual graphics call.
    +	 */
    +	protected void drawImageImpl(Image image, int x, int y)
    +	{
    +		g.drawImage(image, x, y, null);
    +	}
    +
    +	/**
    +	 * Returns the size for the given image.
    +	 */
    +	protected Dimension getImageSize(Image image)
    +	{
    +		return new Dimension(image.getWidth(null), image.getHeight(null));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintPolyline(mxPoint[] points, boolean rounded)
    +	{
    +		if (points != null && points.length > 1)
    +		{
    +			mxPoint pt = points[0];
    +			mxPoint pe = points[points.length - 1];
    +
    +			double arcSize = mxConstants.LINE_ARCSIZE * scale;
    +
    +			GeneralPath path = new GeneralPath();
    +			path.moveTo((float) pt.getX(), (float) pt.getY());
    +
    +			// Draws the line segments
    +			for (int i = 1; i < points.length - 1; i++)
    +			{
    +				mxPoint tmp = points[i];
    +				double dx = pt.getX() - tmp.getX();
    +				double dy = pt.getY() - tmp.getY();
    +
    +				if ((rounded && i < points.length - 1) && (dx != 0 || dy != 0))
    +				{
    +					// Draws a line from the last point to the current
    +					// point with a spacing of size off the current point
    +					// into direction of the last point
    +					double dist = Math.sqrt(dx * dx + dy * dy);
    +					double nx1 = dx * Math.min(arcSize, dist / 2) / dist;
    +					double ny1 = dy * Math.min(arcSize, dist / 2) / dist;
    +
    +					double x1 = tmp.getX() + nx1;
    +					double y1 = tmp.getY() + ny1;
    +					path.lineTo((float) x1, (float) y1);
    +
    +					// Draws a curve from the last point to the current
    +					// point with a spacing of size off the current point
    +					// into direction of the next point
    +					mxPoint next = points[i + 1];
    +					dx = next.getX() - tmp.getX();
    +					dy = next.getY() - tmp.getY();
    +
    +					dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +					double nx2 = dx * Math.min(arcSize, dist / 2) / dist;
    +					double ny2 = dy * Math.min(arcSize, dist / 2) / dist;
    +
    +					double x2 = tmp.getX() + nx2;
    +					double y2 = tmp.getY() + ny2;
    +
    +					path.quadTo((float) tmp.getX(), (float) tmp.getY(),
    +							(float) x2, (float) y2);
    +					tmp = new mxPoint(x2, y2);
    +				}
    +				else
    +				{
    +					path.lineTo((float) tmp.getX(), (float) tmp.getY());
    +				}
    +
    +				pt = tmp;
    +			}
    +
    +			path.lineTo((float) pe.getX(), (float) pe.getY());
    +			g.draw(path);
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void paintRectangle(Rectangle bounds, Color background, Color border)
    +	{
    +		if (background != null)
    +		{
    +			g.setColor(background);
    +			fillShape(bounds);
    +		}
    +
    +		if (border != null)
    +		{
    +			g.setColor(border);
    +			g.draw(bounds);
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void fillShape(Shape shape)
    +	{
    +		fillShape(shape, false);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void fillShape(Shape shape, boolean shadow)
    +	{
    +		int shadowOffsetX = (shadow) ? mxConstants.SHADOW_OFFSETX : 0;
    +		int shadowOffsetY = (shadow) ? mxConstants.SHADOW_OFFSETY : 0;
    +
    +		if (shadow)
    +		{
    +			// Saves the state and configures the graphics object
    +			Paint p = g.getPaint();
    +			Color previousColor = g.getColor();
    +			g.setColor(mxSwingConstants.SHADOW_COLOR);
    +			g.translate(shadowOffsetX, shadowOffsetY);
    +
    +			// Paints the shadow
    +			fillShape(shape, false);
    +
    +			// Restores the state of the graphics object
    +			g.translate(-shadowOffsetX, -shadowOffsetY);
    +			g.setColor(previousColor);
    +			g.setPaint(p);
    +		}
    +
    +		g.fill(shape);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Stroke createStroke(Map<String, Object> style)
    +	{
    +		double width = mxUtils
    +				.getFloat(style, mxConstants.STYLE_STROKEWIDTH, 1) * scale;
    +		boolean dashed = mxUtils.isTrue(style, mxConstants.STYLE_DASHED);
    +		if (dashed)
    +		{
    +			float[] dashPattern = mxUtils.getFloatArray(style,
    +					mxConstants.STYLE_DASH_PATTERN,
    +					mxConstants.DEFAULT_DASHED_PATTERN);
    +			float[] scaledDashPattern = new float[dashPattern.length];
    +
    +			for (int i = 0; i < dashPattern.length; i++)
    +			{
    +				scaledDashPattern[i] = (float) (dashPattern[i] * scale);
    +			}
    +
    +			return new BasicStroke((float) width, BasicStroke.CAP_BUTT,
    +					BasicStroke.JOIN_MITER, 10.0f, scaledDashPattern, 0.0f);
    +		}
    +		else
    +		{
    +			return new BasicStroke((float) width);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Paint createFillPaint(mxRectangle bounds, Map<String, Object> style)
    +	{
    +		Color fillColor = mxUtils.getColor(style, mxConstants.STYLE_FILLCOLOR);
    +		Paint fillPaint = null;
    +
    +		if (fillColor != null)
    +		{
    +			Color gradientColor = mxUtils.getColor(style,
    +					mxConstants.STYLE_GRADIENTCOLOR);
    +
    +			if (gradientColor != null)
    +			{
    +				String gradientDirection = mxUtils.getString(style,
    +						mxConstants.STYLE_GRADIENT_DIRECTION);
    +
    +				float x1 = (float) bounds.getX();
    +				float y1 = (float) bounds.getY();
    +				float x2 = (float) bounds.getX();
    +				float y2 = (float) bounds.getY();
    +
    +				if (gradientDirection == null
    +						|| gradientDirection
    +								.equals(mxConstants.DIRECTION_SOUTH))
    +				{
    +					y2 = (float) (bounds.getY() + bounds.getHeight());
    +				}
    +				else if (gradientDirection.equals(mxConstants.DIRECTION_EAST))
    +				{
    +					x2 = (float) (bounds.getX() + bounds.getWidth());
    +				}
    +				else if (gradientDirection.equals(mxConstants.DIRECTION_NORTH))
    +				{
    +					y1 = (float) (bounds.getY() + bounds.getHeight());
    +				}
    +				else if (gradientDirection.equals(mxConstants.DIRECTION_WEST))
    +				{
    +					x1 = (float) (bounds.getX() + bounds.getWidth());
    +				}
    +
    +				fillPaint = new GradientPaint(x1, y1, fillColor, x2, y2,
    +						gradientColor, true);
    +			}
    +		}
    +
    +		return fillPaint;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Graphics2D createTemporaryGraphics(Map<String, Object> style,
    +			float opacity, mxRectangle bounds)
    +	{
    +		Graphics2D temporaryGraphics = (Graphics2D) g.create();
    +
    +		// Applies the default translate
    +		temporaryGraphics.translate(translate.x, translate.y);
    +
    +		// Applies the rotation on the graphics object
    +		if (bounds != null)
    +		{
    +			double rotation = mxUtils.getDouble(style,
    +					mxConstants.STYLE_ROTATION, 0);
    +
    +			if (rotation != 0)
    +			{
    +				temporaryGraphics.rotate(Math.toRadians(rotation),
    +						bounds.getCenterX(), bounds.getCenterY());
    +			}
    +		}
    +
    +		// Applies the opacity to the graphics object
    +		if (opacity != 100)
    +		{
    +			temporaryGraphics.setComposite(AlphaComposite.getInstance(
    +					AlphaComposite.SRC_OVER, opacity / 100));
    +		}
    +
    +		return temporaryGraphics;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/canvas/mxGraphicsCanvas2D.java b/java/src/com/mxgraph/canvas/mxGraphicsCanvas2D.java
    new file mode 100644
    index 000000000..dd80979a2
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/mxGraphicsCanvas2D.java
    @@ -0,0 +1,1282 @@
    +package com.mxgraph.canvas;
    +
    +import java.awt.AlphaComposite;
    +import java.awt.BasicStroke;
    +import java.awt.Color;
    +import java.awt.Dimension;
    +import java.awt.Font;
    +import java.awt.FontMetrics;
    +import java.awt.GradientPaint;
    +import java.awt.Graphics2D;
    +import java.awt.Image;
    +import java.awt.Paint;
    +import java.awt.Rectangle;
    +import java.awt.RenderingHints;
    +import java.awt.Stroke;
    +import java.awt.font.TextAttribute;
    +import java.awt.geom.AffineTransform;
    +import java.awt.geom.Ellipse2D;
    +import java.awt.geom.GeneralPath;
    +import java.awt.geom.Point2D;
    +import java.awt.geom.Rectangle2D;
    +import java.text.AttributedString;
    +import java.util.Stack;
    +
    +import javax.swing.CellRendererPane;
    +
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxLightweightLabel;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Used for exporting images. To render to an image from a given XML string,
    + * graph size and background color, the following code is used:
    + * 
    + * <code>
    + * BufferedImage image = mxUtils.createBufferedImage(width, height, background);
    + * Graphics2D g2 = image.createGraphics();
    + * mxUtils.setAntiAlias(g2, true, true);
    + * XMLReader reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
    + * reader.setContentHandler(new mxSaxOutputHandler(new mxGraphicsCanvas2D(g2)));
    + * reader.parse(new InputSource(new StringReader(xml)));
    + * </code>
    + * 
    + * Text rendering is available for plain text and HTML markup, the latter with optional
    + * word wrapping. CSS support is limited to the following:
    + * http://docs.oracle.com/javase/6/docs/api/index.html?javax/swing/text/html/CSS.html
    + */
    +public class mxGraphicsCanvas2D implements mxICanvas2D
    +{
    +
    +	/**
    +	 * Specifies the image scaling quality. Default is Image.SCALE_SMOOTH.
    +	 * See {@link #scaleImage(Image, int, int)}
    +	 */
    +	public static int IMAGE_SCALING = Image.SCALE_SMOOTH;
    +
    +	/**
    +	 * Reference to the graphics instance for painting.
    +	 */
    +	protected Graphics2D graphics;
    +
    +	/**
    +	 * Specifies if anti aliasing should be disabled for rectangles
    +	 * and orthogonal paths. Default is true.
    +	 */
    +	protected boolean autoAntiAlias = true;
    +
    +	/**
    +	 * Represents the current state of the canvas.
    +	 */
    +	protected transient CanvasState state = new CanvasState();
    +
    +	/**
    +	 * Stack of states for save/restore.
    +	 */
    +	protected transient Stack<CanvasState> stack = new Stack<CanvasState>();
    +
    +	/**
    +	 * Holds the current path.
    +	 */
    +	protected transient GeneralPath currentPath;
    +
    +	/**
    +	 * Holds the current state for crisp rendering. This should be true while
    +	 * a subsequent stroke operation should be rendering without anti aliasing.
    +	 */
    +	protected transient boolean currentPathIsOrthogonal = true;
    +
    +	/**
    +	 * Holds the last point of a moveTo or lineTo operation to determine if the
    +	 * current path is orthogonal.
    +	 */
    +	protected transient Point2D lastPoint;
    +
    +	/**
    +	 * Holds the current stroke.
    +	 */
    +	protected transient Stroke currentStroke;
    +
    +	/**
    +	 * Holds the current font.
    +	 */
    +	protected transient Font currentFont;
    +
    +	/**
    +	 * Holds the current value for the shadow color. This is used to hold the
    +	 * input value of a shadow operation. The parsing result of this value is
    +	 * cached in the global scope as it should be repeating.
    +	 */
    +	protected transient String currentShadowValue;
    +
    +	/**
    +	 * Holds the current parsed shadow color. This holds the result of parsing
    +	 * the currentShadowValue, which is an expensive operation.
    +	 */
    +	protected transient Color currentShadowColor;
    +
    +	/**
    +	 * Optional renderer pane to be used for HTML label rendering.
    +	 */
    +	protected CellRendererPane rendererPane;
    +
    +	/**
    +	 * Constructs a new graphics export canvas.
    +	 */
    +	public mxGraphicsCanvas2D(Graphics2D g)
    +	{
    +		setGraphics(g);
    +		state.g = g;
    +
    +		// Initializes the cell renderer pane for drawing HTML markup
    +		try
    +		{
    +			rendererPane = new CellRendererPane();
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * Sets the graphics instance.
    +	 */
    +	public void setGraphics(Graphics2D value)
    +	{
    +		graphics = value;
    +	}
    +
    +	/**
    +	 * Returns the graphics instance.
    +	 */
    +	public Graphics2D getGraphics()
    +	{
    +		return graphics;
    +	}
    +
    +	/**
    +	 * Returns true if automatic anti aliasing is enabled.
    +	 */
    +	public boolean isAutoAntiAlias()
    +	{
    +		return autoAntiAlias;
    +	}
    +
    +	/**
    +	 * Disabled or enabled automatic anti aliasing.
    +	 */
    +	public void setAutoAntiAlias(boolean value)
    +	{
    +		autoAntiAlias = value;
    +	}
    +
    +	/**
    +	 * Saves the current canvas state.
    +	 */
    +	public void save()
    +	{
    +		stack.push(state);
    +		state = cloneState(state);
    +		state.g = (Graphics2D) state.g.create();
    +	}
    +
    +	/**
    +	 * Restores the last canvas state.
    +	 */
    +	public void restore()
    +	{
    +		state = stack.pop();
    +
    +		// TODO: Check if stroke is part of graphics state
    +		currentStroke = state.g.getStroke();
    +		currentFont = null;
    +	}
    +
    +	/**
    +	 * Returns a clone of thec given state.
    +	 */
    +	protected CanvasState cloneState(CanvasState state)
    +	{
    +		try
    +		{
    +			return (CanvasState) state.clone();
    +		}
    +		catch (CloneNotSupportedException e)
    +		{
    +			e.printStackTrace();
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void scale(double value)
    +	{
    +		// This implementation uses custom scale/translate and built-in rotation
    +		state.scale = state.scale * value;
    +		state.strokeWidth *= value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void translate(double dx, double dy)
    +	{
    +		// This implementation uses custom scale/translate and built-in rotation
    +		state.dx += dx;
    +		state.dy += dy;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void rotate(double theta, boolean flipH, boolean flipV, double cx,
    +			double cy)
    +	{
    +		cx += state.dx;
    +		cy += state.dy;
    +
    +		cx *= state.scale;
    +		cy *= state.scale;
    +
    +		// This implementation uses custom scale/translate and built-in rotation
    +		// Rotation state is part of the AffineTransform in state.transform
    +		if (flipH ^ flipV)
    +		{
    +			double tx = (flipH) ? cx : 0;
    +			int sx = (flipH) ? -1 : 1;
    +
    +			double ty = (flipV) ? cy : 0;
    +			int sy = (flipV) ? -1 : 1;
    +
    +			state.g.translate(tx, ty);
    +			state.g.scale(sx, sy);
    +			state.g.translate(-tx, -ty);
    +		}
    +
    +		state.g.rotate(Math.toRadians(theta), cx, cy);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setStrokeWidth(double value)
    +	{
    +		// Lazy and cached instantiation strategy for all stroke properties
    +		if (value * state.scale != state.strokeWidth)
    +		{
    +			state.strokeWidth = value * state.scale;
    +
    +			// Invalidates cached stroke
    +			currentStroke = null;
    +		}
    +	}
    +
    +	/**
    +	 * Caches color conversion as it is expensive.
    +	 */
    +	public void setStrokeColor(String value)
    +	{
    +		// Lazy and cached instantiation strategy for all stroke properties
    +		if (!state.strokeColorValue.equals(value))
    +		{
    +			state.strokeColorValue = value;
    +			state.strokeColor = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setDashed(boolean value)
    +	{
    +		// Lazy and cached instantiation strategy for all stroke properties
    +		if (value != state.dashed)
    +		{
    +			state.dashed = value;
    +
    +			// Invalidates cached stroke
    +			currentStroke = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setDashPattern(String value)
    +	{
    +		if (!state.dashPattern.equals(value))
    +		{
    +			float[] dashpattern = null;
    +
    +			if (state.dashed && state.dashPattern != null)
    +			{
    +				String[] tokens = value.split(" ");
    +				dashpattern = new float[tokens.length];
    +
    +				for (int i = 0; i < tokens.length; i++)
    +				{
    +					dashpattern[i] = (float) (Float.parseFloat(tokens[i]));
    +				}
    +			}
    +
    +			state.dashPattern = dashpattern;
    +			currentStroke = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setLineCap(String value)
    +	{
    +		if (!state.lineCap.equals(value))
    +		{
    +			state.lineCap = value;
    +			currentStroke = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setLineJoin(String value)
    +	{
    +		if (!state.lineJoin.equals(value))
    +		{
    +			state.lineJoin = value;
    +			currentStroke = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setMiterLimit(double value)
    +	{
    +		if (value != state.miterLimit)
    +		{
    +			state.miterLimit = value;
    +			currentStroke = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setFontSize(double value)
    +	{
    +		if (value != state.fontSize)
    +		{
    +			state.fontSize = value * state.scale;
    +			currentFont = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setFontColor(String value)
    +	{
    +		if (!state.fontColorValue.equals(value))
    +		{
    +			state.fontColorValue = value;
    +			state.fontColor = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setFontFamily(String value)
    +	{
    +		if (!state.fontFamily.equals(value))
    +		{
    +			state.fontFamily = value;
    +			currentFont = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setFontStyle(int value)
    +	{
    +		if (value != state.fontStyle)
    +		{
    +			state.fontStyle = value;
    +			currentFont = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setAlpha(double value)
    +	{
    +		if (state.alpha != value)
    +		{
    +			state.g.setComposite(AlphaComposite.getInstance(
    +					AlphaComposite.SRC_OVER, (float) (value)));
    +			state.alpha = value;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setFillColor(String value)
    +	{
    +		if (!state.fillColorValue.equals(value))
    +		{
    +			state.fillColorValue = value;
    +			state.fillColor = null;
    +
    +			// Setting fill color resets paint color
    +			state.paint = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setGradient(String color1, String color2, double x, double y,
    +			double w, double h, String direction)
    +	{
    +		// LATER: Add lazy instantiation and check if paint already created
    +		float x1 = (float) (state.dx + x * state.scale);
    +		float y1 = (float) (state.dy + y * state.scale);
    +		float x2 = (float) x1;
    +		float y2 = (float) y1;
    +		h *= state.scale;
    +		w *= state.scale;
    +
    +		if (direction == null || direction.length() == 0
    +				|| direction.equals(mxConstants.DIRECTION_SOUTH))
    +		{
    +			y2 = (float) (y1 + h);
    +		}
    +		else if (direction.equals(mxConstants.DIRECTION_EAST))
    +		{
    +			x2 = (float) (x1 + w);
    +		}
    +		else if (direction.equals(mxConstants.DIRECTION_NORTH))
    +		{
    +			y1 = (float) (y1 + h);
    +		}
    +		else if (direction.equals(mxConstants.DIRECTION_WEST))
    +		{
    +			x1 = (float) (x1 + w);
    +		}
    +
    +		state.paint = new GradientPaint(x1, y1, parseColor(color1), x2, y2,
    +				parseColor(color2), true);
    +	}
    +
    +	/**
    +	 * Helper method that uses {@link mxUtils#parseColor(String)}. Subclassers
    +	 * can override this to implement caching for frequently used colors.
    +	 */
    +	protected Color parseColor(String hex)
    +	{
    +		return mxUtils.parseColor(hex);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setGlassGradient(double x, double y, double w, double h)
    +	{
    +		double size = 0.4;
    +		x = state.dx + x * state.scale;
    +		y = state.dy + y * state.scale;
    +		h *= state.scale;
    +		w *= state.scale;
    +
    +		state.paint = new GradientPaint((float) x, (float) y, new Color(1, 1,
    +				1, 0.9f), (float) (x), (float) (y + h * size), new Color(1, 1,
    +				1, 0.3f));
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void rect(double x, double y, double w, double h)
    +	{
    +		currentPath = new GeneralPath();
    +		currentPath.append(new Rectangle2D.Double(state.dx + x * state.scale,
    +				state.dy + y * state.scale, w * state.scale, h * state.scale),
    +				false);
    +	}
    +
    +	/**
    +	 * Implements a rounded rectangle using a path.
    +	 */
    +	public void roundrect(double x, double y, double w, double h, double dx,
    +			double dy)
    +	{
    +		begin();
    +		moveTo(x + dx, y);
    +		lineTo(x + w - dx, y);
    +		quadTo(x + w, y, x + w, y + dy);
    +		lineTo(x + w, y + h - dy);
    +		quadTo(x + w, y + h, x + w - dx, y + h);
    +		lineTo(x + dx, y + h);
    +		quadTo(x, y + h, x, y + h - dy);
    +		lineTo(x, y + dy);
    +		quadTo(x, y, x + dx, y);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void ellipse(double x, double y, double w, double h)
    +	{
    +		currentPath = new GeneralPath();
    +		currentPath.append(new Ellipse2D.Double(state.dx + x * state.scale,
    +				state.dy + y * state.scale, w * state.scale, h * state.scale),
    +				false);
    +		currentPathIsOrthogonal = false;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void image(double x, double y, double w, double h, String src,
    +			boolean aspect, boolean flipH, boolean flipV)
    +	{
    +		if (src != null && w > 0 && h > 0)
    +		{
    +			Image img = loadImage(src);
    +
    +			if (img != null)
    +			{
    +				Rectangle bounds = getImageBounds(img, x, y, w, h, aspect);
    +				img = scaleImage(img, bounds.width, bounds.height);
    +
    +				if (img != null)
    +				{
    +					drawImage(
    +							createImageGraphics(bounds.x, bounds.y,
    +									bounds.width, bounds.height, flipH, flipV),
    +							img, bounds.x, bounds.y);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void drawImage(Graphics2D graphics, Image image, int x, int y)
    +	{
    +		graphics.drawImage(image, x, y, null);
    +	}
    +
    +	/**
    +	 * Hook for image caching.
    +	 */
    +	protected Image loadImage(String src)
    +	{
    +		return mxUtils.loadImage(src);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected final Rectangle getImageBounds(Image img, double x, double y,
    +			double w, double h, boolean aspect)
    +	{
    +		x = state.dx + x * state.scale;
    +		y = state.dy + y * state.scale;
    +		w *= state.scale;
    +		h *= state.scale;
    +
    +		if (aspect)
    +		{
    +			Dimension size = getImageSize(img);
    +			double s = Math.min(w / size.width, h / size.height);
    +			int sw = (int) Math.round(size.width * s);
    +			int sh = (int) Math.round(size.height * s);
    +			x += (w - sw) / 2;
    +			y += (h - sh) / 2;
    +			w = sw;
    +			h = sh;
    +		}
    +		else
    +		{
    +			w = Math.round(w);
    +			h = Math.round(h);
    +		}
    +
    +		return new Rectangle((int) x, (int) y, (int) w, (int) h);
    +	}
    +
    +	/**
    +	 * Returns the size for the given image.
    +	 */
    +	protected Dimension getImageSize(Image image)
    +	{
    +		return new Dimension(image.getWidth(null), image.getHeight(null));
    +	}
    +
    +	/**
    +	 * Uses {@link #IMAGE_SCALING} to scale the given image.
    +	 */
    +	protected Image scaleImage(Image img, int w, int h)
    +	{
    +		Dimension size = getImageSize(img);
    +
    +		if (w == size.width && h == size.height)
    +		{
    +			return img;
    +		}
    +		else
    +		{
    +			return img.getScaledInstance(w, h, IMAGE_SCALING);
    +		}
    +	}
    +
    +	/**
    +	 * Creates a graphic instance for rendering an image.
    +	 */
    +	protected final Graphics2D createImageGraphics(double x, double y,
    +			double w, double h, boolean flipH, boolean flipV)
    +	{
    +		Graphics2D g2 = state.g;
    +
    +		if (flipH || flipV)
    +		{
    +			g2 = (Graphics2D) g2.create();
    +			int sx = 1;
    +			int sy = 1;
    +			int dx = 0;
    +			int dy = 0;
    +
    +			if (flipH)
    +			{
    +				sx = -1;
    +				dx = (int) (-w - 2 * x);
    +			}
    +
    +			if (flipV)
    +			{
    +				sy = -1;
    +				dy = (int) (-h - 2 * y);
    +			}
    +
    +			g2.scale(sx, sy);
    +			g2.translate(dx, dy);
    +		}
    +
    +		return g2;
    +	}
    +
    +	/**
    +	 * Creates a HTML document around the given markup.
    +	 */
    +	protected String createHtmlDocument(String text, String align,
    +			String valign, int w, int h)
    +	{
    +		StringBuffer css = new StringBuffer();
    +		css.append("font-family:" + state.fontFamily + ";");
    +		css.append("font-size:" + Math.floor(state.fontSize / state.scale) + " pt;");
    +		css.append("color:" + state.fontColorValue + ";");
    +
    +		if ((state.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD)
    +		{
    +			css.append("font-weight:bold;");
    +		}
    +
    +		if ((state.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC)
    +		{
    +			css.append("font-style:italic;");
    +		}
    +
    +		if ((state.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE)
    +		{
    +			css.append("text-decoration:underline;");
    +		}
    +
    +		if (align != null)
    +		{
    +			if (align.equals(mxConstants.ALIGN_CENTER))
    +			{
    +				css.append("text-align:center;");
    +			}
    +			else if (align.equals(mxConstants.ALIGN_RIGHT))
    +			{
    +				css.append("text-align:right;");
    +			}
    +		}
    +
    +		return "<html><div style=\"width:" + w + "px;height:" + h + "px;"
    +				+ css.toString() + "\">" + text + "</div></html>";
    +	}
    +
    +	/**
    +	 * Draws the given text.
    +	 */
    +	public void text(double x, double y, double w, double h, String str,
    +			String align, String valign, boolean vertical, boolean wrap,
    +			String format)
    +	{
    +		if (!state.fontColorValue.equals(mxConstants.NONE))
    +		{
    +			if (format != null && format.equals("html"))
    +			{
    +				x += state.dx / state.scale;
    +				y += state.dy / state.scale;
    +				
    +				mxLightweightLabel textRenderer = mxLightweightLabel
    +						.getSharedInstance();
    +
    +				if (textRenderer != null && rendererPane != null)
    +				{
    +					// Use native scaling for HTML
    +					AffineTransform previous = state.g.getTransform();
    +					state.g.scale(state.scale, state.scale);
    +					
    +					// Renders the scaled text with a correction factor of
    +					// PX_PER_PIXEL for px in HTML vs pixels in the bitmap
    +					str = createHtmlDocument(str, align, valign,
    +							(int) Math.round(w * mxConstants.PX_PER_PIXEL),
    +							(int) Math.round(h * mxConstants.PX_PER_PIXEL));
    +					textRenderer.setText(str);
    +					rendererPane.paintComponent(state.g, textRenderer,
    +							rendererPane, (int) Math.round(x),
    +							(int) Math.round(y), (int) Math.round(w),
    +							(int) Math.round(h), true);
    +					state.g.setTransform(previous);
    +				}
    +			}
    +			else
    +			{
    +				x = state.dx + x * state.scale;
    +				y = state.dy + y * state.scale;
    +				w *= state.scale;
    +				h *= state.scale;
    +
    +				// Font-metrics needed below this line
    +				Graphics2D g2 = createTextGraphics(x, y, w, h, vertical);
    +				FontMetrics fm = g2.getFontMetrics();
    +				String[] lines = str.split("\n");
    +
    +				y = getVerticalTextPosition(x, y, w, h, align, valign,
    +						vertical, fm, lines);
    +				x = getHorizontalTextPosition(x, y, w, h, align, valign,
    +						vertical, fm, lines);
    +
    +				for (int i = 0; i < lines.length; i++)
    +				{
    +					double dx = 0;
    +
    +					if (align != null)
    +					{
    +						if (align.equals(mxConstants.ALIGN_CENTER))
    +						{
    +							int sw = fm.stringWidth(lines[i]);
    +							dx = (w - sw) / 2;
    +						}
    +						else if (align.equals(mxConstants.ALIGN_RIGHT))
    +						{
    +							int sw = fm.stringWidth(lines[i]);
    +							dx = w - sw;
    +						}
    +					}
    +
    +					// Adds support for underlined text via attributed character iterator
    +					if ((state.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE)
    +					{
    +						AttributedString as = new AttributedString(lines[i]);
    +						as.addAttribute(TextAttribute.FONT, g2.getFont());
    +						as.addAttribute(TextAttribute.UNDERLINE,
    +								TextAttribute.UNDERLINE_ON);
    +
    +						g2.drawString(as.getIterator(),
    +								(int) Math.round(x + dx), (int) Math.round(y));
    +					}
    +					else
    +					{
    +						g2.drawString(lines[i], (int) Math.round(x + dx),
    +								(int) Math.round(y));
    +					}
    +
    +					y += fm.getHeight() + mxConstants.LINESPACING;
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns a new graphics instance with the correct color and font for
    +	 * text rendering.
    +	 */
    +	protected final Graphics2D createTextGraphics(double x, double y, double w,
    +			double h, boolean vertical)
    +	{
    +		Graphics2D g2 = state.g;
    +		updateFont();
    +
    +		if (vertical)
    +		{
    +			g2 = (Graphics2D) state.g.create();
    +			g2.rotate(-Math.PI / 2, x + w / 2, y + h / 2);
    +		}
    +
    +		if (state.fontColor == null)
    +		{
    +			state.fontColor = parseColor(state.fontColorValue);
    +		}
    +
    +		g2.setColor(state.fontColor);
    +
    +		return g2;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected double getVerticalTextPosition(double x, double y, double w,
    +			double h, String align, String valign, boolean vertical,
    +			FontMetrics fm, String[] lines)
    +	{
    +		double lineHeight = fm.getHeight() + mxConstants.LINESPACING;
    +		double textHeight = lines.length * lineHeight;
    +		double dy = h - textHeight;
    +
    +		// Top is default
    +		if (valign == null || valign.equals(mxConstants.ALIGN_TOP))
    +		{
    +			y = Math.max(y - 2 * state.scale, y + dy / 2);
    +		}
    +		else if (valign.equals(mxConstants.ALIGN_MIDDLE))
    +		{
    +			y = y + dy / 2;
    +		}
    +		else if (valign.equals(mxConstants.ALIGN_BOTTOM))
    +		{
    +			y = Math.min(y, y + dy);
    +		}
    +
    +		return y + fm.getHeight() * 0.75;
    +	}
    +
    +	/**
    +	 * This implementation returns x.
    +	 */
    +	protected double getHorizontalTextPosition(double x, double y, double w,
    +			double h, String align, String valign, boolean vertical,
    +			FontMetrics fm, String[] lines)
    +	{
    +		if (align == null || align.equals(mxConstants.ALIGN_LEFT))
    +		{
    +			x += 2 * state.scale;
    +		}
    +
    +		return x;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void begin()
    +	{
    +		currentPath = new GeneralPath();
    +		currentPathIsOrthogonal = true;
    +		lastPoint = null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void moveTo(double x, double y)
    +	{
    +		if (currentPath != null)
    +		{
    +			currentPath.moveTo((float) (state.dx + x * state.scale),
    +					(float) (state.dy + y * state.scale));
    +
    +			if (isAutoAntiAlias())
    +			{
    +				lastPoint = new Point2D.Double(x, y);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void lineTo(double x, double y)
    +	{
    +		if (currentPath != null)
    +		{
    +			currentPath.lineTo((float) (state.dx + x * state.scale),
    +					(float) (state.dy + y * state.scale));
    +
    +			if (isAutoAntiAlias())
    +			{
    +				if (lastPoint != null && currentPathIsOrthogonal
    +						&& x != lastPoint.getX() && y != lastPoint.getY())
    +				{
    +					currentPathIsOrthogonal = false;
    +				}
    +
    +				lastPoint = new Point2D.Double(x, y);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void quadTo(double x1, double y1, double x2, double y2)
    +	{
    +		if (currentPath != null)
    +		{
    +			currentPath.quadTo((float) (state.dx + x1 * state.scale),
    +					(float) (state.dy + y1 * state.scale),
    +					(float) (state.dx + x2 * state.scale),
    +					(float) (state.dy + y2 * state.scale));
    +			currentPathIsOrthogonal = false;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void curveTo(double x1, double y1, double x2, double y2, double x3,
    +			double y3)
    +	{
    +		if (currentPath != null)
    +		{
    +			currentPath.curveTo((float) (state.dx + x1 * state.scale),
    +					(float) (state.dy + y1 * state.scale),
    +					(float) (state.dx + x2 * state.scale),
    +					(float) (state.dy + y2 * state.scale),
    +					(float) (state.dx + x3 * state.scale),
    +					(float) (state.dy + y3 * state.scale));
    +			currentPathIsOrthogonal = false;
    +		}
    +	}
    +
    +	/**
    +	 * Closes the current path.
    +	 */
    +	public void close()
    +	{
    +		if (currentPath != null)
    +		{
    +			currentPath.closePath();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void stroke()
    +	{
    +		if (currentPath != null
    +				&& !state.strokeColorValue.equals(mxConstants.NONE))
    +		{
    +			if (state.strokeColor == null)
    +			{
    +				state.strokeColor = parseColor(state.strokeColorValue);
    +			}
    +
    +			updateStroke();
    +			state.g.setColor(state.strokeColor);
    +
    +			Object previousHint = null;
    +
    +			if (isAutoAntiAlias() && currentPathIsOrthogonal)
    +			{
    +				previousHint = state.g
    +						.getRenderingHint(RenderingHints.KEY_ANTIALIASING);
    +				state.g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
    +						RenderingHints.VALUE_ANTIALIAS_OFF);
    +			}
    +
    +			state.g.draw(currentPath);
    +
    +			if (previousHint != null)
    +			{
    +				state.g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
    +						previousHint);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void fill()
    +	{
    +		if (currentPath != null
    +				&& (!state.fillColorValue.equals(mxConstants.NONE) || state.paint != null))
    +		{
    +			if (state.paint != null)
    +			{
    +				state.g.setPaint(state.paint);
    +			}
    +			else
    +			{
    +				if (state.fillColor == null)
    +				{
    +					state.fillColor = parseColor(state.fillColorValue);
    +				}
    +
    +				state.g.setColor(state.fillColor);
    +				state.g.setPaint(null);
    +			}
    +
    +			state.g.fill(currentPath);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void fillAndStroke()
    +	{
    +		fill();
    +		stroke();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void shadow(String value, boolean filled)
    +	{
    +		if (value != null && currentPath != null)
    +		{
    +			if (currentShadowColor == null || currentShadowValue == null
    +					|| !currentShadowValue.equals(value))
    +			{
    +				currentShadowColor = parseColor(value);
    +				currentShadowValue = value;
    +			}
    +
    +			updateStroke();
    +			state.g.setColor(currentShadowColor);
    +			
    +			if (filled)
    +			{
    +				state.g.fill(currentPath);
    +			}
    +			
    +			state.g.draw(currentPath);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void clip()
    +	{
    +		if (currentPath != null)
    +		{
    +			state.g.clip(currentPath);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void updateFont()
    +	{
    +		// LATER: Make currentFont part of state
    +		if (currentFont == null)
    +		{
    +			int size = (int) Math.floor(state.fontSize);
    +
    +			int style = ((state.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD) ? Font.BOLD
    +					: Font.PLAIN;
    +			style += ((state.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC) ? Font.ITALIC
    +					: Font.PLAIN;
    +
    +			currentFont = createFont(state.fontFamily, style, size);
    +			state.g.setFont(currentFont);
    +		}
    +	}
    +
    +	/**
    +	 * Hook for subclassers to implement font caching.
    +	 */
    +	protected Font createFont(String family, int style, int size)
    +	{
    +		return new Font(family, style, size);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void updateStroke()
    +	{
    +		if (currentStroke == null)
    +		{
    +			int cap = BasicStroke.CAP_BUTT;
    +
    +			if (state.lineCap.equals("round"))
    +			{
    +				cap = BasicStroke.CAP_ROUND;
    +			}
    +			else if (state.lineCap.equals("square"))
    +			{
    +				cap = BasicStroke.CAP_SQUARE;
    +			}
    +
    +			int join = BasicStroke.JOIN_MITER;
    +
    +			if (state.lineJoin.equals("round"))
    +			{
    +				join = BasicStroke.JOIN_ROUND;
    +			}
    +			else if (state.lineJoin.equals("bevel"))
    +			{
    +				join = BasicStroke.JOIN_BEVEL;
    +			}
    +
    +			float miterlimit = (float) state.miterLimit;
    +			float[] dash = null;
    +			
    +			if (state.dashed)
    +			{
    +				dash = new float[state.dashPattern.length];
    +				
    +				for (int i = 0; i < dash.length; i++)
    +				{
    +					dash[i] = (float) (state.dashPattern[i] * state.strokeWidth);
    +				}
    +			}
    +
    +			currentStroke = new BasicStroke((float) state.strokeWidth, cap,
    +					join, miterlimit, dash, 0);
    +			state.g.setStroke(currentStroke);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected class CanvasState implements Cloneable
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected double alpha = 1;
    +
    +		/**
    +		 * 
    +		 */
    +		protected double scale = 1;
    +
    +		/**
    +		 * 
    +		 */
    +		protected double dx = 0;
    +
    +		/**
    +		 * 
    +		 */
    +		protected double dy = 0;
    +
    +		/**
    +		 * 
    +		 */
    +		protected double miterLimit = 10;
    +
    +		/**
    +		 * 
    +		 */
    +		protected int fontStyle = 0;
    +
    +		/**
    +		 * 
    +		 */
    +		protected double fontSize = mxConstants.DEFAULT_FONTSIZE;
    +
    +		/**
    +		 * 
    +		 */
    +		protected String fontFamily = mxConstants.DEFAULT_FONTFAMILY;
    +
    +		/**
    +		 * 
    +		 */
    +		protected String fontColorValue = "#000000";
    +
    +		/**
    +		 * 
    +		 */
    +		protected Color fontColor;
    +
    +		/**
    +		 * 
    +		 */
    +		protected String lineCap = "flat";
    +
    +		/**
    +		 * 
    +		 */
    +		protected String lineJoin = "miter";
    +
    +		/**
    +		 * 
    +		 */
    +		protected double strokeWidth = 1;
    +
    +		/**
    +		 * 
    +		 */
    +		protected String strokeColorValue = mxConstants.NONE;
    +
    +		/**
    +		 * 
    +		 */
    +		protected Color strokeColor;
    +
    +		/**
    +		 * 
    +		 */
    +		protected String fillColorValue = mxConstants.NONE;
    +
    +		/**
    +		 * 
    +		 */
    +		protected Color fillColor;
    +
    +		/**
    +		 * 
    +		 */
    +		protected Paint paint;
    +
    +		/**
    +		 * 
    +		 */
    +		protected boolean dashed = false;
    +
    +		/**
    +		 * 
    +		 */
    +		protected float[] dashPattern = { 3, 3 };
    +
    +		/**
    +		 * Stores the actual state.
    +		 */
    +		protected transient Graphics2D g;
    +
    +		/**
    +		 * 
    +		 */
    +		public Object clone() throws CloneNotSupportedException
    +		{
    +			return super.clone();
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/canvas/mxHtmlCanvas.java b/java/src/com/mxgraph/canvas/mxHtmlCanvas.java
    new file mode 100644
    index 000000000..a62386c1f
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/mxHtmlCanvas.java
    @@ -0,0 +1,349 @@
    +/**
    + * $Id: mxHtmlCanvas.java,v 1.31 2010-05-31 08:49:27 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.canvas;
    +
    +import java.util.Hashtable;
    +import java.util.List;
    +import java.util.Map;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * An implementation of a canvas that uses HTML for painting.
    + */
    +public class mxHtmlCanvas extends mxBasicCanvas
    +{
    +
    +	/**
    +	 * Holds the HTML document that represents the canvas.
    +	 */
    +	protected Document document;
    +
    +	/**
    +	 * Constructs a new HTML canvas for the specified dimension and scale.
    +	 */
    +	public mxHtmlCanvas()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * Constructs a new HTML canvas for the specified bounds, scale and
    +	 * background color.
    +	 */
    +	public mxHtmlCanvas(Document document)
    +	{
    +		setDocument(document);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void appendHtmlElement(Element node)
    +	{
    +		if (document != null)
    +		{
    +			Node body = document.getDocumentElement().getFirstChild()
    +					.getNextSibling();
    +
    +			if (body != null)
    +			{
    +				body.appendChild(node);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setDocument(Document document)
    +	{
    +		this.document = document;
    +	}
    +
    +	/**
    +	 * Returns a reference to the document that represents the canvas.
    +	 * 
    +	 * @return Returns the document.
    +	 */
    +	public Document getDocument()
    +	{
    +		return document;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.canvas.mxICanvas#drawCell()
    +	 */
    +	public Object drawCell(mxCellState state)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +		
    +		if (state.getAbsolutePointCount() > 1)
    +		{
    +			List<mxPoint> pts = state.getAbsolutePoints();
    +
    +			// Transpose all points by cloning into a new array
    +			pts = mxUtils.translatePoints(pts, translate.x, translate.y);
    +			drawLine(pts, style);
    +		}
    +		else
    +		{
    +			int x = (int) state.getX() + translate.x;
    +			int y = (int) state.getY() + translate.y;
    +			int w = (int) state.getWidth();
    +			int h = (int) state.getHeight();
    +
    +			if (!mxUtils.getString(style, mxConstants.STYLE_SHAPE, "").equals(
    +					mxConstants.SHAPE_SWIMLANE))
    +			{
    +				drawShape(x, y, w, h, style);
    +			}
    +			else
    +			{
    +				int start = (int) Math.round(mxUtils.getInt(style,
    +						mxConstants.STYLE_STARTSIZE,
    +						mxConstants.DEFAULT_STARTSIZE)
    +						* scale);
    +
    +				// Removes some styles to draw the content area
    +				Map<String, Object> cloned = new Hashtable<String, Object>(
    +						style);
    +				cloned.remove(mxConstants.STYLE_FILLCOLOR);
    +				cloned.remove(mxConstants.STYLE_ROUNDED);
    +
    +				if (mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL, true))
    +				{
    +					drawShape(x, y, w, start, style);
    +					drawShape(x, y + start, w, h - start, cloned);
    +				}
    +				else
    +				{
    +					drawShape(x, y, start, h, style);
    +					drawShape(x + start, y, w - start, h, cloned);
    +				}
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.canvas.mxICanvas#drawLabel()
    +	 */
    +	public Object drawLabel(String label, mxCellState state, boolean html)
    +	{
    +		mxRectangle bounds = state.getLabelBounds();
    +
    +		if (drawLabels && bounds != null)
    +		{
    +			int x = (int) bounds.getX() + translate.x;
    +			int y = (int) bounds.getY() + translate.y;
    +			int w = (int) bounds.getWidth();
    +			int h = (int) bounds.getHeight();
    +			Map<String, Object> style = state.getStyle();
    +
    +			return drawText(label, x, y, w, h, style);
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Draws the shape specified with the STYLE_SHAPE key in the given style.
    +	 * 
    +	 * @param x X-coordinate of the shape.
    +	 * @param y Y-coordinate of the shape.
    +	 * @param w Width of the shape.
    +	 * @param h Height of the shape.
    +	 * @param style Style of the the shape.
    +	 */
    +	public Element drawShape(int x, int y, int w, int h,
    +			Map<String, Object> style)
    +	{
    +		String fillColor = mxUtils
    +				.getString(style, mxConstants.STYLE_FILLCOLOR);
    +		String strokeColor = mxUtils.getString(style,
    +				mxConstants.STYLE_STROKECOLOR);
    +		float strokeWidth = (float) (mxUtils.getFloat(style,
    +				mxConstants.STYLE_STROKEWIDTH, 1) * scale);
    +
    +		// Draws the shape
    +		String shape = mxUtils.getString(style, mxConstants.STYLE_SHAPE);
    +
    +		Element elem = document.createElement("div");
    +
    +		if (shape.equals(mxConstants.SHAPE_LINE))
    +		{
    +			String direction = mxUtils.getString(style,
    +					mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_EAST);
    +
    +			if (direction.equals(mxConstants.DIRECTION_EAST)
    +					|| direction.equals(mxConstants.DIRECTION_WEST))
    +			{
    +				y = Math.round(y + h / 2);
    +				h = 1;
    +			}
    +			else
    +			{
    +				x = Math.round(y + w / 2);
    +				w = 1;
    +			}
    +		}
    +
    +		if (mxUtils.isTrue(style, mxConstants.STYLE_SHADOW, false)
    +				&& fillColor != null)
    +		{
    +			Element shadow = (Element) elem.cloneNode(true);
    +
    +			String s = "overflow:hidden;position:absolute;" + "left:"
    +					+ String.valueOf(x + mxConstants.SHADOW_OFFSETX) + "px;"
    +					+ "top:" + String.valueOf(y + mxConstants.SHADOW_OFFSETY)
    +					+ "px;" + "width:" + String.valueOf(w) + "px;" + "height:"
    +					+ String.valueOf(h) + "px;background:"
    +					+ mxConstants.W3C_SHADOWCOLOR
    +					+ ";border-style:solid;border-color:"
    +					+ mxConstants.W3C_SHADOWCOLOR + ";border-width:"
    +					+ String.valueOf(Math.round(strokeWidth)) + ";";
    +			shadow.setAttribute("style", s);
    +
    +			appendHtmlElement(shadow);
    +		}
    +
    +		if (shape.equals(mxConstants.SHAPE_IMAGE))
    +		{
    +			String img = getImageForStyle(style);
    +
    +			if (img != null)
    +			{
    +				elem = document.createElement("img");
    +				elem.setAttribute("border", "0");
    +				elem.setAttribute("src", img);
    +			}
    +		}
    +
    +		// TODO: Draw other shapes. eg. SHAPE_LINE here
    +
    +		String s = "overflow:hidden;position:absolute;" + "left:"
    +				+ String.valueOf(x) + "px;" + "top:" + String.valueOf(y)
    +				+ "px;" + "width:" + String.valueOf(w) + "px;" + "height:"
    +				+ String.valueOf(h) + "px;background:" + fillColor + ";"
    +				+ ";border-style:solid;border-color:" + strokeColor
    +				+ ";border-width:" + String.valueOf(Math.round(strokeWidth))
    +				+ ";";
    +		elem.setAttribute("style", s);
    +
    +		appendHtmlElement(elem);
    +
    +		return elem;
    +	}
    +
    +	/**
    +	 * Draws the given lines as segments between all points of the given list
    +	 * of mxPoints.
    +	 * 
    +	 * @param pts List of points that define the line.
    +	 * @param style Style to be used for painting the line.
    +	 */
    +	public void drawLine(List<mxPoint> pts, Map<String, Object> style)
    +	{
    +		String strokeColor = mxUtils.getString(style,
    +				mxConstants.STYLE_STROKECOLOR);
    +		int strokeWidth = (int) (mxUtils.getInt(style,
    +				mxConstants.STYLE_STROKEWIDTH, 1) * scale);
    +
    +		if (strokeColor != null && strokeWidth > 0)
    +		{
    +
    +			mxPoint last = pts.get(0);
    +
    +			for (int i = 1; i < pts.size(); i++)
    +			{
    +				mxPoint pt = pts.get(i);
    +
    +				drawSegment((int) last.getX(), (int) last.getY(), (int) pt
    +						.getX(), (int) pt.getY(), strokeColor, strokeWidth);
    +
    +				last = pt;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Draws the specified segment of a line.
    +	 * 
    +	 * @param x0 X-coordinate of the start point.
    +	 * @param y0 Y-coordinate of the start point.
    +	 * @param x1 X-coordinate of the end point.
    +	 * @param y1 Y-coordinate of the end point.
    +	 * @param strokeColor Color of the stroke to be painted.
    +	 * @param strokeWidth Width of the stroke to be painted.
    +	 */
    +	protected void drawSegment(int x0, int y0, int x1, int y1,
    +			String strokeColor, int strokeWidth)
    +	{
    +		int tmpX = Math.min(x0, x1);
    +		int tmpY = Math.min(y0, y1);
    +
    +		int width = Math.max(x0, x1) - tmpX;
    +		int height = Math.max(y0, y1) - tmpY;
    +
    +		x0 = tmpX;
    +		y0 = tmpY;
    +
    +		if (width == 0 || height == 0)
    +		{
    +			String s = "overflow:hidden;position:absolute;" + "left:"
    +					+ String.valueOf(x0) + "px;" + "top:" + String.valueOf(y0)
    +					+ "px;" + "width:" + String.valueOf(width) + "px;"
    +					+ "height:" + String.valueOf(height) + "px;"
    +					+ "border-color:" + strokeColor + ";"
    +					+ "border-style:solid;" + "border-width:1 1 0 0px;";
    +
    +			Element elem = document.createElement("div");
    +			elem.setAttribute("style", s);
    +
    +			appendHtmlElement(elem);
    +		}
    +		else
    +		{
    +			int x = x0 + (x1 - x0) / 2;
    +
    +			drawSegment(x0, y0, x, y0, strokeColor, strokeWidth);
    +			drawSegment(x, y0, x, y1, strokeColor, strokeWidth);
    +			drawSegment(x, y1, x1, y1, strokeColor, strokeWidth);
    +		}
    +	}
    +
    +	/**
    +	 * Draws the specified text either using drawHtmlString or using drawString.
    +	 * 
    +	 * @param text Text to be painted.
    +	 * @param x X-coordinate of the text.
    +	 * @param y Y-coordinate of the text.
    +	 * @param w Width of the text.
    +	 * @param h Height of the text.
    +	 * @param style Style to be used for painting the text.
    +	 */
    +	public Element drawText(String text, int x, int y, int w, int h,
    +			Map<String, Object> style)
    +	{
    +		Element table = mxUtils.createTable(document, text, x, y, w, h, scale,
    +				style);
    +		appendHtmlElement(table);
    +
    +		return table;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/canvas/mxICanvas.java b/java/src/com/mxgraph/canvas/mxICanvas.java
    new file mode 100644
    index 000000000..b64f2d0c9
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/mxICanvas.java
    @@ -0,0 +1,57 @@
    +/**
    + * $Id: mxICanvas.java,v 1.23 2010-05-31 08:49:27 gaudenz Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.canvas;
    +
    +import java.awt.Point;
    +
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * Defines the requirements for a canvas that paints the vertices and edges of
    + * a graph.
    + */
    +public interface mxICanvas
    +{
    +	/**
    +	 * Sets the translation for the following drawing requests.
    +	 */
    +	void setTranslate(int x, int y);
    +
    +	/**
    +	 * Returns the current translation.
    +	 * 
    +	 * @return Returns the current translation.
    +	 */
    +	Point getTranslate();
    +
    +	/**
    +	 * Sets the scale for the following drawing requests.
    +	 */
    +	void setScale(double scale);
    +
    +	/**
    +	 * Returns the scale.
    +	 */
    +	double getScale();
    +
    +	/**
    +	 * Draws the given cell.
    +	 * 
    +	 * @param state State of the cell to be painted.
    +	 * @return Object that represents the cell.
    +	 */
    +	Object drawCell(mxCellState state);
    +
    +	/**
    +	 * Draws the given label.
    +	 * 
    +	 * @param text String that represents the label.
    +	 * @param state State of the cell whose label is to be painted.
    +	 * @param html Specifies if the label contains HTML markup.
    +	 * @return Object that represents the label.
    +	 */
    +	Object drawLabel(String text, mxCellState state, boolean html);
    +
    +}
    diff --git a/java/src/com/mxgraph/canvas/mxICanvas2D.java b/java/src/com/mxgraph/canvas/mxICanvas2D.java
    new file mode 100644
    index 000000000..2640b0338
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/mxICanvas2D.java
    @@ -0,0 +1,319 @@
    +package com.mxgraph.canvas;
    +
    +import com.mxgraph.util.mxConstants;
    +
    +/**
    + * Requirements for implementing technologies:
    + * 
    + * - Path rendering (move, line, quad, curve, arc)
    + * - Images, flip v/h, aspect, alpha (PNG, JPG, GIF)
    + * - Linear gradients (in all four directions)
    + * - Transparency, fill and stroke
    + * - Rotation, flip v/h
    + * - Font rendering
    + * - Dash patterns
    + * - Clipping by path (not just rectangle)
    + * - Alpha gradients (for glass effect)
    + * - Encode result as image (PNG, JPG)
    + */
    +public interface mxICanvas2D
    +{
    +	/**
    +	 * Saves the current state of the canvas.
    +	 */
    +	void save();
    +
    +	/**
    +	 * Restores the previous state of the canvas.
    +	 */
    +	void restore();
    +
    +	/**
    +	 * Uniformaly scales the canvas by the given amount.
    +	 * 
    +	 * @param value The new scale value.
    +	 */
    +	void scale(double value);
    +
    +	/**
    +	 * Translates the canvas by the given amount.
    +	 * 
    +	 * @param dx X-coordinate of the translation.
    +	 * @param dy Y-coordinate of the translation.
    +	 */
    +	void translate(double dx, double dy);
    +
    +	/**
    +	 * Rotates the canvas by the given angle around the given center. This
    +	 * method may add rendering overhead and should be used with care.
    +	 * 
    +	 * @param theta Rotation angle in degrees (0 - 360).
    +	 * @param flipH Specifies if drawing should be flipped horizontally.
    +	 * @param flipV Specifies if drawing should be flipped vertically.
    +	 * @param cx X-coordinate of the center point.
    +	 * @param cy Y-coordinate of the center point.
    +	 */
    +	void rotate(double theta, boolean flipH, boolean flipV, double cx, double cy);
    +
    +	/**
    +	 * Sets the stroke width. This should default to 1 if unset.
    +	 * 
    +	 * @param value Width of the stroke. The value should be multiplied by the
    +	 * current scale.
    +	 */
    +	void setStrokeWidth(double value);
    +
    +	/**
    +	 * Sets the stroke color. This should default to {@link mxConstants#NONE}
    +	 * if unset.
    +	 * 
    +	 * @param value Hex representation of the color or {@link mxConstants#NONE}.
    +	 */
    +	void setStrokeColor(String value);
    +
    +	/**
    +	 * Sets the dashed state. This should default to false if unset.
    +	 * 
    +	 * @param value Boolean representing the dashed state.
    +	 */
    +	void setDashed(boolean value);
    +
    +	/**
    +	 * Sets the dash pattern. This should default to "3 3" if unset.
    +	 * 
    +	 * @param value Space separated list of floats representing the dash
    +	 * pattern. The value should be multiplied by the current scale.
    +	 */
    +	void setDashPattern(String value);
    +
    +	/**
    +	 * Sets the linecap. This should default to "flat" if unset.
    +	 * 
    +	 * @param value "flat", "square" or "round".
    +	 */
    +	void setLineCap(String value);
    +
    +	/**
    +	 * Sets the linejoin. This should default to "miter" if unset.
    +	 * 
    +	 * @param value "miter", "round" or "bevel".
    +	 */
    +	void setLineJoin(String value);
    +
    +	/**
    +	 * Sets the miterlimit. This should default to 10 if unset.
    +	 * 
    +	 * @param value
    +	 */
    +	void setMiterLimit(double value);
    +
    +	/**
    +	 * Default value {@link mxConstants#DEFAULT_FONTSIZE}.
    +	 * 
    +	 * @param value
    +	 */
    +	void setFontSize(double value);
    +
    +	/**
    +	 * Default value "#000000".
    +	 * 
    +	 * @param value Hex representation of the color or {@link mxConstants#NONE}.
    +	 */
    +	void setFontColor(String value);
    +
    +	/**
    +	 * Default value {@link mxConstants#DEFAULT_FONTFAMILY}.
    +	 * 
    +	 * @param value
    +	 */
    +	void setFontFamily(String value);
    +
    +	/**
    +	 * Default value 0. See {@link mxConstants#STYLE_FONTSTYLE}.
    +	 * 
    +	 * @param value
    +	 */
    +	void setFontStyle(int value);
    +
    +	/**
    +	 * Default value 1. This method may add rendering overhead and should be
    +	 * used with care.
    +	 * 
    +	 * @param value
    +	 */
    +	void setAlpha(double value);
    +
    +	/**
    +	 * Default value {@link mxConstants#NONE}.
    +	 * 
    +	 * @param value Hex representation of the color or {@link mxConstants#NONE}.
    +	 */
    +	void setFillColor(String value);
    +
    +	/**
    +	 * Prepares the canvas to draw a gradient.
    +	 * 
    +	 * @param color1
    +	 * @param color2
    +	 * @param x
    +	 * @param y
    +	 * @param w
    +	 * @param h
    +	 * @param direction Direction may be null. Use default value
    +	 * 		{@link mxConstants#DIRECTION_SOUTH}.
    +	 */
    +	void setGradient(String color1, String color2, double x, double y,
    +			double w, double h, String direction);
    +
    +	/**
    +	 * Prepares the canvas to draw a glass gradient.
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 * @param w
    +	 * @param h
    +	 */
    +	void setGlassGradient(double x, double y, double w, double h);
    +
    +	/**
    +	 * Next fill or stroke should draw a rectangle.
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 * @param w
    +	 * @param h
    +	 */
    +	void rect(double x, double y, double w, double h);
    +
    +	/**
    +	 * 
    +	 * Next fill or stroke should draw a round rectangle.
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 * @param w
    +	 * @param h
    +	 * @param dx
    +	 * @param dy
    +	 */
    +	void roundrect(double x, double y, double w, double h, double dx, double dy);
    +
    +	/**
    +	 * 
    +	 * Next fill or stroke should draw an ellipse.
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 * @param w
    +	 * @param h
    +	 */
    +	void ellipse(double x, double y, double w, double h);
    +
    +	/**
    +	 * Draws the given image.
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 * @param w
    +	 * @param h
    +	 * @param src
    +	 * @param aspect
    +	 * @param flipH
    +	 * @param flipV
    +	 */
    +	void image(double x, double y, double w, double h, String src,
    +			boolean aspect, boolean flipH, boolean flipV);
    +
    +	/**
    +	 * Draws the given string.  Possible values for format are empty string for
    +	 * plain text and html for HTML markup.
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 * @param w
    +	 * @param h
    +	 * @param str
    +	 * @param align
    +	 * @param valign
    +	 * @param vertical
    +	 */
    +	void text(double x, double y, double w, double h, String str, String align,
    +			String valign, boolean vertical, boolean wrap, String format);
    +
    +	/**
    +	 * Begins a new path.
    +	 */
    +	void begin();
    +
    +	/**
    +	 * Moves to the given path.
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 */
    +	void moveTo(double x, double y);
    +
    +	/**
    +	 * Draws a line to the given path.
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 */
    +	void lineTo(double x, double y);
    +
    +	/**
    +	 * Draws a quadratic curve to the given point.
    +	 * 
    +	 * @param x1
    +	 * @param y1
    +	 * @param x2
    +	 * @param y2
    +	 */
    +	void quadTo(double x1, double y1, double x2, double y2);
    +
    +	/**
    +	 * Draws a bezier curve to the given point.
    +	 * 
    +	 * @param x1
    +	 * @param y1
    +	 * @param x2
    +	 * @param y2
    +	 * @param x3
    +	 * @param y3
    +	 */
    +	void curveTo(double x1, double y1, double x2, double y2, double x3,
    +			double y3);
    +
    +	/**
    +	 * Closes the current path.
    +	 */
    +	void close();
    +
    +	/**
    +	 * Paints the outline of the current path.
    +	 */
    +	void stroke();
    +
    +	/**
    +	 * Fills the current path.
    +	 */
    +	void fill();
    +
    +	/**
    +	 * Fills and paints the outline of the current path.
    +	 */
    +	void fillAndStroke();
    +
    +	/**
    +	 * Paints the current path as a shadow.
    +	 * 
    +	 * @param value
    +	 */
    +	void shadow(String value, boolean filled);
    +
    +	/**
    +	 * Uses the current path for clipping.
    +	 */
    +	void clip();
    +
    +}
    diff --git a/java/src/com/mxgraph/canvas/mxImageCanvas.java b/java/src/com/mxgraph/canvas/mxImageCanvas.java
    new file mode 100644
    index 000000000..0b1848d84
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/mxImageCanvas.java
    @@ -0,0 +1,143 @@
    +/**
    + * $Id: mxImageCanvas.java,v 1.14 2010-12-03 10:08:46 gaudenz Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.canvas;
    +
    +import java.awt.Color;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.image.BufferedImage;
    +
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * An implementation of a canvas that uses Graphics2D for painting. To use an
    + * image canvas for an existing graphics canvas and create an image the
    + * following code is used:
    + * 
    + * <code>BufferedImage image = mxCellRenderer.createBufferedImage(graph, cells, 1, Color.white, true, null, canvas);</code> 
    + */
    +public class mxImageCanvas implements mxICanvas
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphics2DCanvas canvas;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Graphics2D previousGraphics;
    +
    +	/**
    +	 * 
    +	 */
    +	protected BufferedImage image;
    +
    +	/**
    +	 * 
    +	 */
    +	public mxImageCanvas(mxGraphics2DCanvas canvas, int width, int height,
    +			Color background, boolean antiAlias)
    +	{
    +		this.canvas = canvas;
    +		previousGraphics = canvas.getGraphics();
    +		image = mxUtils.createBufferedImage(width, height, background);
    +
    +		if (image != null)
    +		{
    +			Graphics2D g = image.createGraphics();
    +			mxUtils.setAntiAlias(g, antiAlias, true);
    +			canvas.setGraphics(g);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphics2DCanvas getGraphicsCanvas()
    +	{
    +		return canvas;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public BufferedImage getImage()
    +	{
    +		return image;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object drawCell(mxCellState state)
    +	{
    +		return canvas.drawCell(state);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object drawLabel(String label, mxCellState state, boolean html)
    +	{
    +		return canvas.drawLabel(label, state, html);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public double getScale()
    +	{
    +		return canvas.getScale();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Point getTranslate()
    +	{
    +		return canvas.getTranslate();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setScale(double scale)
    +	{
    +		canvas.setScale(scale);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setTranslate(int dx, int dy)
    +	{
    +		canvas.setTranslate(dx, dy);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public BufferedImage destroy()
    +	{
    +		BufferedImage tmp = image;
    +
    +		if (canvas.getGraphics() != null)
    +		{
    +			canvas.getGraphics().dispose();
    +		}
    +		
    +		canvas.setGraphics(previousGraphics);
    +
    +		previousGraphics = null;
    +		canvas = null;
    +		image = null;
    +
    +		return tmp;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/canvas/mxSvgCanvas.java b/java/src/com/mxgraph/canvas/mxSvgCanvas.java
    new file mode 100644
    index 000000000..a94231f89
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/mxSvgCanvas.java
    @@ -0,0 +1,1465 @@
    +/**
    + * $Id: mxSvgCanvas.java,v 1.66 2011-03-08 17:16:07 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.canvas;
    +
    +import java.awt.Font;
    +import java.io.BufferedInputStream;
    +import java.io.ByteArrayOutputStream;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.net.URL;
    +import java.util.Hashtable;
    +import java.util.List;
    +import java.util.Map;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +import com.mxgraph.util.mxBase64;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * An implementation of a canvas that uses SVG for painting. This canvas
    + * ignores the STYLE_LABEL_BACKGROUNDCOLOR and
    + * STYLE_LABEL_BORDERCOLOR styles due to limitations of SVG.
    + */
    +public class mxSvgCanvas extends mxBasicCanvas
    +{
    +
    +	/**
    +	 * Holds the HTML document that represents the canvas.
    +	 */
    +	protected Document document;
    +
    +	/**
    +	 * Used internally for looking up elements. Workaround for getElementById
    +	 * not working.
    +	 */
    +	private Map<String, Element> gradients = new Hashtable<String, Element>();
    +
    +	/**
    +	 * Used internally for looking up images.
    +	 */
    +	private Map<String, Element> images = new Hashtable<String, Element>();
    +
    +	/**
    +	 * 
    +	 */
    +	protected Element defs = null;
    +
    +	/**
    +	 * Specifies if images should be embedded as base64 encoded strings.
    +	 * Default is false.
    +	 */
    +	protected boolean embedded = false;
    +
    +	/**
    +	 * Constructs a new SVG canvas for the specified dimension and scale.
    +	 */
    +	public mxSvgCanvas()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * Constructs a new SVG canvas for the specified bounds, scale and
    +	 * background color.
    +	 */
    +	public mxSvgCanvas(Document document)
    +	{
    +		setDocument(document);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void appendSvgElement(Element node)
    +	{
    +		if (document != null)
    +		{
    +			document.getDocumentElement().appendChild(node);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Element getDefsElement()
    +	{
    +		if (defs == null)
    +		{
    +			defs = document.createElement("defs");
    +
    +			Element svgNode = document.getDocumentElement();
    +
    +			if (svgNode.hasChildNodes())
    +			{
    +				svgNode.insertBefore(defs, svgNode.getFirstChild());
    +			}
    +			else
    +			{
    +				svgNode.appendChild(defs);
    +			}
    +		}
    +
    +		return defs;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Element getGradientElement(String start, String end, String direction)
    +	{
    +		String id = getGradientId(start, end, direction);
    +		Element gradient = gradients.get(id);
    +
    +		if (gradient == null)
    +		{
    +			gradient = createGradientElement(start, end, direction);
    +			gradient.setAttribute("id", "g" + (gradients.size() + 1));
    +			getDefsElement().appendChild(gradient);
    +			gradients.put(id, gradient);
    +		}
    +
    +		return gradient;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Element getGlassGradientElement()
    +	{
    +		String id = "mx-glass-gradient";
    +
    +		Element glassGradient = gradients.get(id);
    +
    +		if (glassGradient == null)
    +		{
    +			glassGradient = document.createElement("linearGradient");
    +			glassGradient.setAttribute("x1", "0%");
    +			glassGradient.setAttribute("y1", "0%");
    +			glassGradient.setAttribute("x2", "0%");
    +			glassGradient.setAttribute("y2", "100%");
    +
    +			Element stop1 = document.createElement("stop");
    +			stop1.setAttribute("offset", "0%");
    +			stop1.setAttribute("style", "stop-color:#ffffff;stop-opacity:0.9");
    +			glassGradient.appendChild(stop1);
    +
    +			Element stop2 = document.createElement("stop");
    +			stop2.setAttribute("offset", "100%");
    +			stop2.setAttribute("style", "stop-color:#ffffff;stop-opacity:0.1");
    +			glassGradient.appendChild(stop2);
    +
    +			glassGradient.setAttribute("id", "g" + (gradients.size() + 1));
    +			getDefsElement().appendChild(glassGradient);
    +			gradients.put(id, glassGradient);
    +		}
    +
    +		return glassGradient;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Element createGradientElement(String start, String end,
    +			String direction)
    +	{
    +		Element gradient = document.createElement("linearGradient");
    +		gradient.setAttribute("x1", "0%");
    +		gradient.setAttribute("y1", "0%");
    +		gradient.setAttribute("x2", "0%");
    +		gradient.setAttribute("y2", "0%");
    +
    +		if (direction == null || direction.equals(mxConstants.DIRECTION_SOUTH))
    +		{
    +			gradient.setAttribute("y2", "100%");
    +		}
    +		else if (direction.equals(mxConstants.DIRECTION_EAST))
    +		{
    +			gradient.setAttribute("x2", "100%");
    +		}
    +		else if (direction.equals(mxConstants.DIRECTION_NORTH))
    +		{
    +			gradient.setAttribute("y1", "100%");
    +		}
    +		else if (direction.equals(mxConstants.DIRECTION_WEST))
    +		{
    +			gradient.setAttribute("x1", "100%");
    +		}
    +
    +		Element stop = document.createElement("stop");
    +		stop.setAttribute("offset", "0%");
    +		stop.setAttribute("style", "stop-color:" + start);
    +		gradient.appendChild(stop);
    +
    +		stop = document.createElement("stop");
    +		stop.setAttribute("offset", "100%");
    +		stop.setAttribute("style", "stop-color:" + end);
    +		gradient.appendChild(stop);
    +
    +		return gradient;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public String getGradientId(String start, String end, String direction)
    +	{
    +		// Removes illegal characters from gradient ID
    +		if (start.startsWith("#"))
    +		{
    +			start = start.substring(1);
    +		}
    +
    +		if (end.startsWith("#"))
    +		{
    +			end = end.substring(1);
    +		}
    +
    +		// Workaround for gradient IDs not working in Safari 5 / Chrome 6
    +		// if they contain uppercase characters
    +		start = start.toLowerCase();
    +		end = end.toLowerCase();
    +
    +		String dir = null;
    +
    +		if (direction == null || direction.equals(mxConstants.DIRECTION_SOUTH))
    +		{
    +			dir = "south";
    +		}
    +		else if (direction.equals(mxConstants.DIRECTION_EAST))
    +		{
    +			dir = "east";
    +		}
    +		else
    +		{
    +			String tmp = start;
    +			start = end;
    +			end = tmp;
    +
    +			if (direction.equals(mxConstants.DIRECTION_NORTH))
    +			{
    +				dir = "south";
    +			}
    +			else if (direction.equals(mxConstants.DIRECTION_WEST))
    +			{
    +				dir = "east";
    +			}
    +		}
    +
    +		return "mx-gradient-" + start + "-" + end + "-" + dir;
    +	}
    +
    +	/**
    +	 * Returns true if the given string ends with .png, .jpg or .gif.
    +	 */
    +	protected boolean isImageResource(String src)
    +	{
    +		return src != null
    +				&& (src.toLowerCase().endsWith(".png")
    +						|| src.toLowerCase().endsWith(".jpg") || src
    +						.toLowerCase().endsWith(".gif"));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected InputStream getResource(String src)
    +	{
    +		InputStream stream = null;
    +
    +		try
    +		{
    +			stream = new BufferedInputStream(new URL(src).openStream());
    +		}
    +		catch (Exception e1)
    +		{
    +			stream = getClass().getResourceAsStream(src);
    +		}
    +
    +		return stream;
    +	}
    +
    +	/**
    +	 * @throws IOException 
    +	 * 
    +	 */
    +	protected String createDataUrl(String src) throws IOException
    +	{
    +		String result = null;
    +		InputStream inputStream = isImageResource(src) ? getResource(src) : null;
    +
    +		if (inputStream != null)
    +		{
    +			ByteArrayOutputStream outputStream = new ByteArrayOutputStream(1024);
    +			byte[] bytes = new byte[512];
    +
    +			// Read bytes from the input stream in bytes.length-sized chunks and write
    +			// them into the output stream
    +			int readBytes;
    +			while ((readBytes = inputStream.read(bytes)) > 0)
    +			{
    +				outputStream.write(bytes, 0, readBytes);
    +			}
    +
    +			// Convert the contents of the output stream into a Data URL
    +			String format = "png";
    +			int dot = src.lastIndexOf('.');
    +
    +			if (dot > 0 && dot < src.length())
    +			{
    +				format = src.substring(dot + 1);
    +			}
    +
    +			result = "data:image/"
    +					+ format
    +					+ ";base64,"
    +					+ mxBase64
    +							.encodeToString(outputStream.toByteArray(), false);
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Element getEmbeddedImageElement(String src)
    +	{
    +		Element img = images.get(src);
    +
    +		if (img == null)
    +		{
    +			img = document.createElement("svg");
    +			img.setAttribute("width", "100%");
    +			img.setAttribute("height", "100%");
    +
    +			Element inner = document.createElement("image");
    +			inner.setAttribute("width", "100%");
    +			inner.setAttribute("height", "100%");
    +
    +			// Store before transforming to DataURL
    +			images.put(src, img);
    +
    +			if (!src.startsWith("data:image/"))
    +			{
    +				try
    +				{
    +					String tmp = createDataUrl(src);
    +					
    +					if (tmp != null)
    +					{
    +						src = tmp;
    +					}
    +				}
    +				catch (IOException e)
    +				{
    +					// ignore
    +				}
    +			}
    +
    +			inner.setAttributeNS(mxConstants.NS_XLINK, "xlink:href", src);
    +			img.appendChild(inner);
    +			img.setAttribute("id", "i" + (images.size()));
    +			getDefsElement().appendChild(img);
    +		}
    +
    +		return img;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Element createImageElement(double x, double y, double w,
    +			double h, String src, boolean aspect, boolean flipH, boolean flipV,
    +			boolean embedded)
    +	{
    +		Element elem = null;
    +
    +		if (embedded)
    +		{
    +			elem = document.createElement("use");
    +
    +			Element img = getEmbeddedImageElement(src);
    +			elem.setAttributeNS(mxConstants.NS_XLINK, "xlink:href",
    +					"#" + img.getAttribute("id"));
    +		}
    +		else
    +		{
    +			elem = document.createElement("image");
    +
    +			elem.setAttributeNS(mxConstants.NS_XLINK, "xlink:href", src);
    +		}
    +
    +		elem.setAttribute("x", String.valueOf(x));
    +		elem.setAttribute("y", String.valueOf(y));
    +		elem.setAttribute("width", String.valueOf(w));
    +		elem.setAttribute("height", String.valueOf(h));
    +
    +		// FIXME: SVG element must be used for reference to image with
    +		// aspect but for images with no aspect this does not work.
    +		if (aspect)
    +		{
    +			elem.setAttribute("preserveAspectRatio", "xMidYMid");
    +		}
    +		else
    +		{
    +			elem.setAttribute("preserveAspectRatio", "none");
    +		}
    +
    +		double sx = 1;
    +		double sy = 1;
    +		double dx = 0;
    +		double dy = 0;
    +
    +		if (flipH)
    +		{
    +			sx *= -1;
    +			dx = -w - 2 * x;
    +		}
    +
    +		if (flipV)
    +		{
    +			sy *= -1;
    +			dy = -h - 2 * y;
    +		}
    +
    +		String transform = "";
    +
    +		if (sx != 1 || sy != 1)
    +		{
    +			transform += "scale(" + sx + " " + sy + ") ";
    +		}
    +
    +		if (dx != 0 || dy != 0)
    +		{
    +			transform += "translate(" + dx + " " + dy + ") ";
    +		}
    +
    +		if (transform.length() > 0)
    +		{
    +			elem.setAttribute("transform", transform);
    +		}
    +
    +		return elem;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setDocument(Document document)
    +	{
    +		this.document = document;
    +	}
    +
    +	/**
    +	 * Returns a reference to the document that represents the canvas.
    +	 * 
    +	 * @return Returns the document.
    +	 */
    +	public Document getDocument()
    +	{
    +		return document;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setEmbedded(boolean value)
    +	{
    +		embedded = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEmbedded()
    +	{
    +		return embedded;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.canvas.mxICanvas#drawCell()
    +	 */
    +	public Object drawCell(mxCellState state)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +		Element elem = null;
    +
    +		if (state.getAbsolutePointCount() > 1)
    +		{
    +			List<mxPoint> pts = state.getAbsolutePoints();
    +
    +			// Transpose all points by cloning into a new array
    +			pts = mxUtils.translatePoints(pts, translate.x, translate.y);
    +
    +			// Draws the line
    +			elem = drawLine(pts, style);
    +
    +			// Applies opacity
    +			float opacity = mxUtils.getFloat(style, mxConstants.STYLE_OPACITY,
    +					100);
    +
    +			if (opacity != 100)
    +			{
    +				String value = String.valueOf(opacity / 100);
    +				elem.setAttribute("fill-opacity", value);
    +				elem.setAttribute("stroke-opacity", value);
    +			}
    +		}
    +		else
    +		{
    +			int x = (int) state.getX() + translate.x;
    +			int y = (int) state.getY() + translate.y;
    +			int w = (int) state.getWidth();
    +			int h = (int) state.getHeight();
    +
    +			if (!mxUtils.getString(style, mxConstants.STYLE_SHAPE, "").equals(
    +					mxConstants.SHAPE_SWIMLANE))
    +			{
    +				elem = drawShape(x, y, w, h, style);
    +			}
    +			else
    +			{
    +				int start = (int) Math.round(mxUtils.getInt(style,
    +						mxConstants.STYLE_STARTSIZE,
    +						mxConstants.DEFAULT_STARTSIZE)
    +						* scale);
    +
    +				// Removes some styles to draw the content area
    +				Map<String, Object> cloned = new Hashtable<String, Object>(
    +						style);
    +				cloned.remove(mxConstants.STYLE_FILLCOLOR);
    +				cloned.remove(mxConstants.STYLE_ROUNDED);
    +
    +				if (mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL, true))
    +				{
    +					elem = drawShape(x, y, w, start, style);
    +					drawShape(x, y + start, w, h - start, cloned);
    +				}
    +				else
    +				{
    +					elem = drawShape(x, y, start, h, style);
    +					drawShape(x + start, y, w - start, h, cloned);
    +				}
    +			}
    +		}
    +
    +		return elem;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.canvas.mxICanvas#drawLabel()
    +	 */
    +	public Object drawLabel(String label, mxCellState state, boolean html)
    +	{
    +		mxRectangle bounds = state.getLabelBounds();
    +
    +		if (drawLabels && bounds != null)
    +		{
    +			int x = (int) bounds.getX() + translate.x;
    +			int y = (int) bounds.getY() + translate.y;
    +			int w = (int) bounds.getWidth();
    +			int h = (int) bounds.getHeight();
    +			Map<String, Object> style = state.getStyle();
    +
    +			return drawText(label, x, y, w, h, style);
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Draws the shape specified with the STYLE_SHAPE key in the given style.
    +	 * 
    +	 * @param x X-coordinate of the shape.
    +	 * @param y Y-coordinate of the shape.
    +	 * @param w Width of the shape.
    +	 * @param h Height of the shape.
    +	 * @param style Style of the the shape.
    +	 */
    +	public Element drawShape(int x, int y, int w, int h,
    +			Map<String, Object> style)
    +	{
    +		String fillColor = mxUtils.getString(style,
    +				mxConstants.STYLE_FILLCOLOR, "none");
    +		String gradientColor = mxUtils.getString(style,
    +				mxConstants.STYLE_GRADIENTCOLOR, "none");
    +		String strokeColor = mxUtils.getString(style,
    +				mxConstants.STYLE_STROKECOLOR, "none");
    +		float strokeWidth = (float) (mxUtils.getFloat(style,
    +				mxConstants.STYLE_STROKEWIDTH, 1) * scale);
    +		float opacity = mxUtils.getFloat(style, mxConstants.STYLE_OPACITY, 100);
    +
    +		// Draws the shape
    +		String shape = mxUtils.getString(style, mxConstants.STYLE_SHAPE, "");
    +		Element elem = null;
    +		Element background = null;
    +
    +		if (shape.equals(mxConstants.SHAPE_IMAGE))
    +		{
    +			String img = getImageForStyle(style);
    +
    +			if (img != null)
    +			{
    +				// Vertical and horizontal image flipping
    +				boolean flipH = mxUtils.isTrue(style,
    +						mxConstants.STYLE_IMAGE_FLIPH, false);
    +				boolean flipV = mxUtils.isTrue(style,
    +						mxConstants.STYLE_IMAGE_FLIPV, false);
    +
    +				elem = createImageElement(x, y, w, h, img,
    +						PRESERVE_IMAGE_ASPECT, flipH, flipV, isEmbedded());
    +			}
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_LINE))
    +		{
    +			String direction = mxUtils.getString(style,
    +					mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_EAST);
    +			String d = null;
    +
    +			if (direction.equals(mxConstants.DIRECTION_EAST)
    +					|| direction.equals(mxConstants.DIRECTION_WEST))
    +			{
    +				int mid = (y + h / 2);
    +				d = "M " + x + " " + mid + " L " + (x + w) + " " + mid;
    +			}
    +			else
    +			{
    +				int mid = (x + w / 2);
    +				d = "M " + mid + " " + y + " L " + mid + " " + (y + h);
    +			}
    +
    +			elem = document.createElement("path");
    +			elem.setAttribute("d", d + " Z");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_ELLIPSE))
    +		{
    +			elem = document.createElement("ellipse");
    +
    +			elem.setAttribute("cx", String.valueOf(x + w / 2));
    +			elem.setAttribute("cy", String.valueOf(y + h / 2));
    +			elem.setAttribute("rx", String.valueOf(w / 2));
    +			elem.setAttribute("ry", String.valueOf(h / 2));
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_DOUBLE_ELLIPSE))
    +		{
    +			elem = document.createElement("g");
    +			background = document.createElement("ellipse");
    +			background.setAttribute("cx", String.valueOf(x + w / 2));
    +			background.setAttribute("cy", String.valueOf(y + h / 2));
    +			background.setAttribute("rx", String.valueOf(w / 2));
    +			background.setAttribute("ry", String.valueOf(h / 2));
    +			elem.appendChild(background);
    +
    +			int inset = (int) ((3 + strokeWidth) * scale);
    +
    +			Element foreground = document.createElement("ellipse");
    +			foreground.setAttribute("fill", "none");
    +			foreground.setAttribute("stroke", strokeColor);
    +			foreground
    +					.setAttribute("stroke-width", String.valueOf(strokeWidth));
    +
    +			foreground.setAttribute("cx", String.valueOf(x + w / 2));
    +			foreground.setAttribute("cy", String.valueOf(y + h / 2));
    +			foreground.setAttribute("rx", String.valueOf(w / 2 - inset));
    +			foreground.setAttribute("ry", String.valueOf(h / 2 - inset));
    +			elem.appendChild(foreground);
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_RHOMBUS))
    +		{
    +			elem = document.createElement("path");
    +
    +			String d = "M " + (x + w / 2) + " " + y + " L " + (x + w) + " "
    +					+ (y + h / 2) + " L " + (x + w / 2) + " " + (y + h) + " L "
    +					+ x + " " + (y + h / 2);
    +
    +			elem.setAttribute("d", d + " Z");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_TRIANGLE))
    +		{
    +			elem = document.createElement("path");
    +			String direction = mxUtils.getString(style,
    +					mxConstants.STYLE_DIRECTION, "");
    +			String d = null;
    +
    +			if (direction.equals(mxConstants.DIRECTION_NORTH))
    +			{
    +				d = "M " + x + " " + (y + h) + " L " + (x + w / 2) + " " + y
    +						+ " L " + (x + w) + " " + (y + h);
    +			}
    +			else if (direction.equals(mxConstants.DIRECTION_SOUTH))
    +			{
    +				d = "M " + x + " " + y + " L " + (x + w / 2) + " " + (y + h)
    +						+ " L " + (x + w) + " " + y;
    +			}
    +			else if (direction.equals(mxConstants.DIRECTION_WEST))
    +			{
    +				d = "M " + (x + w) + " " + y + " L " + x + " " + (y + h / 2)
    +						+ " L " + (x + w) + " " + (y + h);
    +			}
    +			else
    +			// east
    +			{
    +				d = "M " + x + " " + y + " L " + (x + w) + " " + (y + h / 2)
    +						+ " L " + x + " " + (y + h);
    +			}
    +
    +			elem.setAttribute("d", d + " Z");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_HEXAGON))
    +		{
    +			elem = document.createElement("path");
    +			String direction = mxUtils.getString(style,
    +					mxConstants.STYLE_DIRECTION, "");
    +			String d = null;
    +
    +			if (direction.equals(mxConstants.DIRECTION_NORTH)
    +					|| direction.equals(mxConstants.DIRECTION_SOUTH))
    +			{
    +				d = "M " + (x + 0.5 * w) + " " + y + " L " + (x + w) + " "
    +						+ (y + 0.25 * h) + " L " + (x + w) + " "
    +						+ (y + 0.75 * h) + " L " + (x + 0.5 * w) + " "
    +						+ (y + h) + " L " + x + " " + (y + 0.75 * h) + " L "
    +						+ x + " " + (y + 0.25 * h);
    +			}
    +			else
    +			{
    +				d = "M " + (x + 0.25 * w) + " " + y + " L " + (x + 0.75 * w)
    +						+ " " + y + " L " + (x + w) + " " + (y + 0.5 * h)
    +						+ " L " + (x + 0.75 * w) + " " + (y + h) + " L "
    +						+ (x + 0.25 * w) + " " + (y + h) + " L " + x + " "
    +						+ (y + 0.5 * h);
    +			}
    +
    +			elem.setAttribute("d", d + " Z");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_CLOUD))
    +		{
    +			elem = document.createElement("path");
    +
    +			String d = "M " + (x + 0.25 * w) + " " + (y + 0.25 * h) + " C "
    +					+ (x + 0.05 * w) + " " + (y + 0.25 * h) + " " + x + " "
    +					+ (y + 0.5 * h) + " " + (x + 0.16 * w) + " "
    +					+ (y + 0.55 * h) + " C " + x + " " + (y + 0.66 * h) + " "
    +					+ (x + 0.18 * w) + " " + (y + 0.9 * h) + " "
    +					+ (x + 0.31 * w) + " " + (y + 0.8 * h) + " C "
    +					+ (x + 0.4 * w) + " " + (y + h) + " " + (x + 0.7 * w) + " "
    +					+ (y + h) + " " + (x + 0.8 * w) + " " + (y + 0.8 * h)
    +					+ " C " + (x + w) + " " + (y + 0.8 * h) + " " + (x + w)
    +					+ " " + (y + 0.6 * h) + " " + (x + 0.875 * w) + " "
    +					+ (y + 0.5 * h) + " C " + (x + w) + " " + (y + 0.3 * h)
    +					+ " " + (x + 0.8 * w) + " " + (y + 0.1 * h) + " "
    +					+ (x + 0.625 * w) + " " + (y + 0.2 * h) + " C "
    +					+ (x + 0.5 * w) + " " + (y + 0.05 * h) + " "
    +					+ (x + 0.3 * w) + " " + (y + 0.05 * h) + " "
    +					+ (x + 0.25 * w) + " " + (y + 0.25 * h);
    +
    +			elem.setAttribute("d", d + " Z");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_ACTOR))
    +		{
    +			elem = document.createElement("path");
    +			double width3 = w / 3;
    +
    +			String d = " M " + x + " " + (y + h) + " C " + x + " "
    +					+ (y + 3 * h / 5) + " " + x + " " + (y + 2 * h / 5) + " "
    +					+ (x + w / 2) + " " + (y + 2 * h / 5) + " C "
    +					+ (x + w / 2 - width3) + " " + (y + 2 * h / 5) + " "
    +					+ (x + w / 2 - width3) + " " + y + " " + (x + w / 2) + " "
    +					+ y + " C " + (x + w / 2 + width3) + " " + y + " "
    +					+ (x + w / 2 + width3) + " " + (y + 2 * h / 5) + " "
    +					+ (x + w / 2) + " " + (y + 2 * h / 5) + " C " + (x + w)
    +					+ " " + (y + 2 * h / 5) + " " + (x + w) + " "
    +					+ (y + 3 * h / 5) + " " + (x + w) + " " + (y + h);
    +
    +			elem.setAttribute("d", d + " Z");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_CYLINDER))
    +		{
    +			elem = document.createElement("g");
    +			background = document.createElement("path");
    +
    +			double dy = Math.min(40, Math.floor(h / 5));
    +			String d = " M " + x + " " + (y + dy) + " C " + x + " "
    +					+ (y - dy / 3) + " " + (x + w) + " " + (y - dy / 3) + " "
    +					+ (x + w) + " " + (y + dy) + " L " + (x + w) + " "
    +					+ (y + h - dy) + " C " + (x + w) + " " + (y + h + dy / 3)
    +					+ " " + x + " " + (y + h + dy / 3) + " " + x + " "
    +					+ (y + h - dy);
    +			background.setAttribute("d", d + " Z");
    +			elem.appendChild(background);
    +
    +			Element foreground = document.createElement("path");
    +			d = "M " + x + " " + (y + dy) + " C " + x + " " + (y + 2 * dy)
    +					+ " " + (x + w) + " " + (y + 2 * dy) + " " + (x + w) + " "
    +					+ (y + dy);
    +
    +			foreground.setAttribute("d", d);
    +			foreground.setAttribute("fill", "none");
    +			foreground.setAttribute("stroke", strokeColor);
    +			foreground
    +					.setAttribute("stroke-width", String.valueOf(strokeWidth));
    +
    +			elem.appendChild(foreground);
    +		}
    +		else
    +		{
    +			background = document.createElement("rect");
    +			elem = background;
    +
    +			elem.setAttribute("x", String.valueOf(x));
    +			elem.setAttribute("y", String.valueOf(y));
    +			elem.setAttribute("width", String.valueOf(w));
    +			elem.setAttribute("height", String.valueOf(h));
    +
    +			if (mxUtils.isTrue(style, mxConstants.STYLE_ROUNDED, false))
    +			{
    +				String r = String.valueOf(Math.min(w
    +						* mxConstants.RECTANGLE_ROUNDING_FACTOR, h
    +						* mxConstants.RECTANGLE_ROUNDING_FACTOR));
    +
    +				elem.setAttribute("rx", r);
    +				elem.setAttribute("ry", r);
    +			}
    +
    +			// Paints the label image
    +			if (shape.equals(mxConstants.SHAPE_LABEL))
    +			{
    +				String img = getImageForStyle(style);
    +
    +				if (img != null)
    +				{
    +					String imgAlign = mxUtils.getString(style,
    +							mxConstants.STYLE_IMAGE_ALIGN,
    +							mxConstants.ALIGN_LEFT);
    +					String imgValign = mxUtils.getString(style,
    +							mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,
    +							mxConstants.ALIGN_MIDDLE);
    +					int imgWidth = (int) (mxUtils.getInt(style,
    +							mxConstants.STYLE_IMAGE_WIDTH,
    +							mxConstants.DEFAULT_IMAGESIZE) * scale);
    +					int imgHeight = (int) (mxUtils.getInt(style,
    +							mxConstants.STYLE_IMAGE_HEIGHT,
    +							mxConstants.DEFAULT_IMAGESIZE) * scale);
    +					int spacing = (int) (mxUtils.getInt(style,
    +							mxConstants.STYLE_SPACING, 2) * scale);
    +
    +					mxRectangle imageBounds = new mxRectangle(x, y, w, h);
    +
    +					if (imgAlign.equals(mxConstants.ALIGN_CENTER))
    +					{
    +						imageBounds.setX(imageBounds.getX()
    +								+ (imageBounds.getWidth() - imgWidth) / 2);
    +					}
    +					else if (imgAlign.equals(mxConstants.ALIGN_RIGHT))
    +					{
    +						imageBounds.setX(imageBounds.getX()
    +								+ imageBounds.getWidth() - imgWidth - spacing
    +								- 2);
    +					}
    +					else
    +					// LEFT
    +					{
    +						imageBounds.setX(imageBounds.getX() + spacing + 4);
    +					}
    +
    +					if (imgValign.equals(mxConstants.ALIGN_TOP))
    +					{
    +						imageBounds.setY(imageBounds.getY() + spacing);
    +					}
    +					else if (imgValign.equals(mxConstants.ALIGN_BOTTOM))
    +					{
    +						imageBounds
    +								.setY(imageBounds.getY()
    +										+ imageBounds.getHeight() - imgHeight
    +										- spacing);
    +					}
    +					else
    +					// MIDDLE
    +					{
    +						imageBounds.setY(imageBounds.getY()
    +								+ (imageBounds.getHeight() - imgHeight) / 2);
    +					}
    +
    +					imageBounds.setWidth(imgWidth);
    +					imageBounds.setHeight(imgHeight);
    +
    +					elem = document.createElement("g");
    +					elem.appendChild(background);
    +
    +					Element imageElement = createImageElement(
    +							imageBounds.getX(), imageBounds.getY(),
    +							imageBounds.getWidth(), imageBounds.getHeight(),
    +							img, false, false, false, isEmbedded());
    +
    +					if (opacity != 100)
    +					{
    +						String value = String.valueOf(opacity / 100);
    +						imageElement.setAttribute("opacity", value);
    +					}
    +
    +					elem.appendChild(imageElement);
    +				}
    +
    +				// Paints the glass effect
    +				if (mxUtils.isTrue(style, mxConstants.STYLE_GLASS, false))
    +				{
    +					double size = 0.4;
    +
    +					// TODO: Mask with rectangle or rounded rectangle of label
    +					// Creates glass overlay
    +					Element glassOverlay = document.createElement("path");
    +
    +					// LATER: Not sure what the behaviour is for mutiple SVG elements in page.
    +					// Probably its possible that this points to an element in another SVG
    +					// node which when removed will result in an undefined background.
    +					glassOverlay.setAttribute("fill", "url(#"
    +							+ getGlassGradientElement().getAttribute("id")
    +							+ ")");
    +
    +					String d = "m " + (x - strokeWidth) + ","
    +							+ (y - strokeWidth) + " L " + (x - strokeWidth)
    +							+ "," + (y + h * size) + " Q " + (x + w * 0.5)
    +							+ "," + (y + h * 0.7) + " " + (x + w + strokeWidth)
    +							+ "," + (y + h * size) + " L "
    +							+ (x + w + strokeWidth) + "," + (y - strokeWidth)
    +							+ " z";
    +					glassOverlay.setAttribute("stroke-width",
    +							String.valueOf(strokeWidth / 2));
    +					glassOverlay.setAttribute("d", d);
    +					elem.appendChild(glassOverlay);
    +				}
    +			}
    +		}
    +
    +		double rotation = mxUtils.getDouble(style, mxConstants.STYLE_ROTATION);
    +		int cx = x + w / 2;
    +		int cy = y + h / 2;
    +
    +		Element bg = background;
    +
    +		if (bg == null)
    +		{
    +			bg = elem;
    +		}
    +
    +		if (!bg.getNodeName().equalsIgnoreCase("use")
    +				&& !bg.getNodeName().equalsIgnoreCase("image"))
    +		{
    +			if (!fillColor.equalsIgnoreCase("none")
    +					&& !gradientColor.equalsIgnoreCase("none"))
    +			{
    +				String direction = mxUtils.getString(style,
    +						mxConstants.STYLE_GRADIENT_DIRECTION);
    +				Element gradient = getGradientElement(fillColor, gradientColor,
    +						direction);
    +
    +				if (gradient != null)
    +				{
    +					bg.setAttribute("fill",
    +							"url(#" + gradient.getAttribute("id") + ")");
    +				}
    +			}
    +			else
    +			{
    +				bg.setAttribute("fill", fillColor);
    +			}
    +
    +			bg.setAttribute("stroke", strokeColor);
    +			bg.setAttribute("stroke-width", String.valueOf(strokeWidth));
    +
    +			// Adds the shadow element
    +			Element shadowElement = null;
    +
    +			if (mxUtils.isTrue(style, mxConstants.STYLE_SHADOW, false)
    +					&& !fillColor.equals("none"))
    +			{
    +				shadowElement = (Element) bg.cloneNode(true);
    +
    +				shadowElement.setAttribute("transform",
    +						mxConstants.SVG_SHADOWTRANSFORM);
    +				shadowElement.setAttribute("fill", mxConstants.W3C_SHADOWCOLOR);
    +				shadowElement.setAttribute("stroke",
    +						mxConstants.W3C_SHADOWCOLOR);
    +				shadowElement.setAttribute("stroke-width",
    +						String.valueOf(strokeWidth));
    +
    +				if (rotation != 0)
    +				{
    +					shadowElement.setAttribute("transform", "rotate("
    +							+ rotation + "," + cx + "," + cy + ") "
    +							+ mxConstants.SVG_SHADOWTRANSFORM);
    +				}
    +
    +				if (opacity != 100)
    +				{
    +					String value = String.valueOf(opacity / 100);
    +					shadowElement.setAttribute("fill-opacity", value);
    +					shadowElement.setAttribute("stroke-opacity", value);
    +				}
    +
    +				appendSvgElement(shadowElement);
    +			}
    +		}
    +
    +		if (rotation != 0)
    +		{
    +			elem.setAttribute("transform", elem.getAttribute("transform")
    +					+ " rotate(" + rotation + "," + cx + "," + cy + ")");
    +
    +		}
    +
    +		if (opacity != 100)
    +		{
    +			String value = String.valueOf(opacity / 100);
    +			elem.setAttribute("fill-opacity", value);
    +			elem.setAttribute("stroke-opacity", value);
    +		}
    +
    +		if (mxUtils.isTrue(style, mxConstants.STYLE_DASHED))
    +		{
    +			String pattern = mxUtils.getString(style, mxConstants.STYLE_DASH_PATTERN, "3, 3");
    +			elem.setAttribute("stroke-dasharray", pattern);
    +		}
    +
    +		appendSvgElement(elem);
    +
    +		return elem;
    +	}
    +
    +	/**
    +	 * Draws the given lines as segments between all points of the given list
    +	 * of mxPoints.
    +	 * 
    +	 * @param pts List of points that define the line.
    +	 * @param style Style to be used for painting the line.
    +	 */
    +	public Element drawLine(List<mxPoint> pts, Map<String, Object> style)
    +	{
    +		Element group = document.createElement("g");
    +		Element path = document.createElement("path");
    +
    +		boolean rounded = mxUtils.isTrue(style, mxConstants.STYLE_ROUNDED,
    +				false);
    +		String strokeColor = mxUtils.getString(style,
    +				mxConstants.STYLE_STROKECOLOR);
    +		float tmpStroke = (mxUtils.getFloat(style,
    +				mxConstants.STYLE_STROKEWIDTH, 1));
    +		float strokeWidth = (float) (tmpStroke * scale);
    +
    +		if (strokeColor != null && strokeWidth > 0)
    +		{
    +			// Draws the start marker
    +			Object marker = style.get(mxConstants.STYLE_STARTARROW);
    +
    +			mxPoint pt = pts.get(1);
    +			mxPoint p0 = pts.get(0);
    +			mxPoint offset = null;
    +
    +			if (marker != null)
    +			{
    +				float size = (mxUtils.getFloat(style,
    +						mxConstants.STYLE_STARTSIZE,
    +						mxConstants.DEFAULT_MARKERSIZE));
    +				offset = drawMarker(group, marker, pt, p0, size, tmpStroke,
    +						strokeColor);
    +			}
    +			else
    +			{
    +				double dx = pt.getX() - p0.getX();
    +				double dy = pt.getY() - p0.getY();
    +
    +				double dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +				double nx = dx * strokeWidth / dist;
    +				double ny = dy * strokeWidth / dist;
    +
    +				offset = new mxPoint(nx / 2, ny / 2);
    +			}
    +
    +			// Applies offset to the point
    +			if (offset != null)
    +			{
    +				p0 = (mxPoint) p0.clone();
    +				p0.setX(p0.getX() + offset.getX());
    +				p0.setY(p0.getY() + offset.getY());
    +
    +				offset = null;
    +			}
    +
    +			// Draws the end marker
    +			marker = style.get(mxConstants.STYLE_ENDARROW);
    +
    +			pt = pts.get(pts.size() - 2);
    +			mxPoint pe = pts.get(pts.size() - 1);
    +
    +			if (marker != null)
    +			{
    +				float size = (mxUtils.getFloat(style,
    +						mxConstants.STYLE_ENDSIZE,
    +						mxConstants.DEFAULT_MARKERSIZE));
    +				offset = drawMarker(group, marker, pt, pe, size, tmpStroke,
    +						strokeColor);
    +			}
    +			else
    +			{
    +				double dx = pt.getX() - p0.getX();
    +				double dy = pt.getY() - p0.getY();
    +
    +				double dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +				double nx = dx * strokeWidth / dist;
    +				double ny = dy * strokeWidth / dist;
    +
    +				offset = new mxPoint(nx / 2, ny / 2);
    +			}
    +
    +			// Applies offset to the point
    +			if (offset != null)
    +			{
    +				pe = (mxPoint) pe.clone();
    +				pe.setX(pe.getX() + offset.getX());
    +				pe.setY(pe.getY() + offset.getY());
    +
    +				offset = null;
    +			}
    +
    +			// Draws the line segments
    +			double arcSize = mxConstants.LINE_ARCSIZE * scale;
    +			pt = p0;
    +			String d = "M " + pt.getX() + " " + pt.getY();
    +
    +			for (int i = 1; i < pts.size() - 1; i++)
    +			{
    +				mxPoint tmp = pts.get(i);
    +				double dx = pt.getX() - tmp.getX();
    +				double dy = pt.getY() - tmp.getY();
    +
    +				if ((rounded && i < pts.size() - 1) && (dx != 0 || dy != 0))
    +				{
    +					// Draws a line from the last point to the current
    +					// point with a spacing of size off the current point
    +					// into direction of the last point
    +					double dist = Math.sqrt(dx * dx + dy * dy);
    +					double nx1 = dx * Math.min(arcSize, dist / 2) / dist;
    +					double ny1 = dy * Math.min(arcSize, dist / 2) / dist;
    +
    +					double x1 = tmp.getX() + nx1;
    +					double y1 = tmp.getY() + ny1;
    +					d += " L " + x1 + " " + y1;
    +
    +					// Draws a curve from the last point to the current
    +					// point with a spacing of size off the current point
    +					// into direction of the next point
    +					mxPoint next = pts.get(i + 1);
    +					dx = next.getX() - tmp.getX();
    +					dy = next.getY() - tmp.getY();
    +
    +					dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +					double nx2 = dx * Math.min(arcSize, dist / 2) / dist;
    +					double ny2 = dy * Math.min(arcSize, dist / 2) / dist;
    +
    +					double x2 = tmp.getX() + nx2;
    +					double y2 = tmp.getY() + ny2;
    +
    +					d += " Q " + tmp.getX() + " " + tmp.getY() + " " + x2 + " "
    +							+ y2;
    +					tmp = new mxPoint(x2, y2);
    +				}
    +				else
    +				{
    +					d += " L " + tmp.getX() + " " + tmp.getY();
    +				}
    +
    +				pt = tmp;
    +			}
    +
    +			d += " L " + pe.getX() + " " + pe.getY();
    +
    +			path.setAttribute("d", d);
    +			path.setAttribute("stroke", strokeColor);
    +			path.setAttribute("fill", "none");
    +			path.setAttribute("stroke-width", String.valueOf(strokeWidth));
    +
    +			if (mxUtils.isTrue(style, mxConstants.STYLE_DASHED))
    +			{
    +				String pattern = mxUtils.getString(style, mxConstants.STYLE_DASH_PATTERN, "3, 3");
    +				path.setAttribute("stroke-dasharray", pattern);
    +			}
    +
    +			group.appendChild(path);
    +			appendSvgElement(group);
    +		}
    +
    +		return group;
    +	}
    +
    +	/**
    +	 * Draws the specified marker as a child path in the given parent.
    +	 */
    +	public mxPoint drawMarker(Element parent, Object type, mxPoint p0,
    +			mxPoint pe, float size, float strokeWidth, String color)
    +	{
    +		mxPoint offset = null;
    +
    +		// Computes the norm and the inverse norm
    +		double dx = pe.getX() - p0.getX();
    +		double dy = pe.getY() - p0.getY();
    +
    +		double dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +		double absSize = size * scale;
    +		double nx = dx * absSize / dist;
    +		double ny = dy * absSize / dist;
    +
    +		pe = (mxPoint) pe.clone();
    +		pe.setX(pe.getX() - nx * strokeWidth / (2 * size));
    +		pe.setY(pe.getY() - ny * strokeWidth / (2 * size));
    +
    +		nx *= 0.5 + strokeWidth / 2;
    +		ny *= 0.5 + strokeWidth / 2;
    +
    +		Element path = document.createElement("path");
    +		path.setAttribute("stroke-width", String.valueOf(strokeWidth * scale));
    +		path.setAttribute("stroke", color);
    +		path.setAttribute("fill", color);
    +
    +		String d = null;
    +
    +		if (type.equals(mxConstants.ARROW_CLASSIC)
    +				|| type.equals(mxConstants.ARROW_BLOCK))
    +		{
    +			d = "M "
    +					+ pe.getX()
    +					+ " "
    +					+ pe.getY()
    +					+ " L "
    +					+ (pe.getX() - nx - ny / 2)
    +					+ " "
    +					+ (pe.getY() - ny + nx / 2)
    +					+ ((!type.equals(mxConstants.ARROW_CLASSIC)) ? "" : " L "
    +							+ (pe.getX() - nx * 3 / 4) + " "
    +							+ (pe.getY() - ny * 3 / 4)) + " L "
    +					+ (pe.getX() + ny / 2 - nx) + " "
    +					+ (pe.getY() - ny - nx / 2) + " z";
    +		}
    +		else if (type.equals(mxConstants.ARROW_OPEN))
    +		{
    +			nx *= 1.2;
    +			ny *= 1.2;
    +
    +			d = "M " + (pe.getX() - nx - ny / 2) + " "
    +					+ (pe.getY() - ny + nx / 2) + " L " + (pe.getX() - nx / 6)
    +					+ " " + (pe.getY() - ny / 6) + " L "
    +					+ (pe.getX() + ny / 2 - nx) + " "
    +					+ (pe.getY() - ny - nx / 2) + " M " + pe.getX() + " "
    +					+ pe.getY();
    +			path.setAttribute("fill", "none");
    +		}
    +		else if (type.equals(mxConstants.ARROW_OVAL))
    +		{
    +			nx *= 1.2;
    +			ny *= 1.2;
    +			absSize *= 1.2;
    +
    +			d = "M " + (pe.getX() - ny / 2) + " " + (pe.getY() + nx / 2)
    +					+ " a " + (absSize / 2) + " " + (absSize / 2) + " 0  1,1 "
    +					+ (nx / 8) + " " + (ny / 8) + " z";
    +		}
    +		else if (type.equals(mxConstants.ARROW_DIAMOND))
    +		{
    +			d = "M " + (pe.getX() + nx / 2) + " " + (pe.getY() + ny / 2)
    +					+ " L " + (pe.getX() - ny / 2) + " " + (pe.getY() + nx / 2)
    +					+ " L " + (pe.getX() - nx / 2) + " " + (pe.getY() - ny / 2)
    +					+ " L " + (pe.getX() + ny / 2) + " " + (pe.getY() - nx / 2)
    +					+ " z";
    +		}
    +
    +		if (d != null)
    +		{
    +			path.setAttribute("d", d);
    +			parent.appendChild(path);
    +		}
    +
    +		return offset;
    +	}
    +
    +	/**
    +	 * Draws the specified text either using drawHtmlString or using drawString.
    +	 * 
    +	 * @param text Text to be painted.
    +	 * @param x X-coordinate of the text.
    +	 * @param y Y-coordinate of the text.
    +	 * @param w Width of the text.
    +	 * @param h Height of the text.
    +	 * @param style Style to be used for painting the text.
    +	 */
    +	public Object drawText(String text, int x, int y, int w, int h,
    +			Map<String, Object> style)
    +	{
    +		Element elem = null;
    +		String fontColor = mxUtils.getString(style,
    +				mxConstants.STYLE_FONTCOLOR, "black");
    +		String fontFamily = mxUtils.getString(style,
    +				mxConstants.STYLE_FONTFAMILY, mxConstants.DEFAULT_FONTFAMILIES);
    +		int fontSize = (int) (mxUtils.getInt(style, mxConstants.STYLE_FONTSIZE,
    +				mxConstants.DEFAULT_FONTSIZE) * scale);
    +
    +		if (text != null && text.length() > 0)
    +		{
    +			float strokeWidth = (float) (mxUtils.getFloat(style,
    +					mxConstants.STYLE_STROKEWIDTH, 1) * scale);
    +
    +			// Applies the opacity
    +			float opacity = mxUtils.getFloat(style,
    +					mxConstants.STYLE_TEXT_OPACITY, 100);
    +
    +			// Draws the label background and border
    +			String bg = mxUtils.getString(style,
    +					mxConstants.STYLE_LABEL_BACKGROUNDCOLOR);
    +			String border = mxUtils.getString(style,
    +					mxConstants.STYLE_LABEL_BORDERCOLOR);
    +
    +			String transform = null;
    +
    +			if (!mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL, true))
    +			{
    +				double cx = x + w / 2;
    +				double cy = y + h / 2;
    +				transform = "rotate(270 " + cx + " " + cy + ")";
    +			}
    +
    +			if (bg != null || border != null)
    +			{
    +				Element background = document.createElement("rect");
    +
    +				background.setAttribute("x", String.valueOf(x));
    +				background.setAttribute("y", String.valueOf(y));
    +				background.setAttribute("width", String.valueOf(w));
    +				background.setAttribute("height", String.valueOf(h));
    +
    +				if (bg != null)
    +				{
    +					background.setAttribute("fill", bg);
    +				}
    +				else
    +				{
    +					background.setAttribute("fill", "none");
    +				}
    +
    +				if (border != null)
    +				{
    +					background.setAttribute("stroke", border);
    +				}
    +				else
    +				{
    +					background.setAttribute("stroke", "none");
    +				}
    +
    +				background.setAttribute("stroke-width",
    +						String.valueOf(strokeWidth));
    +
    +				if (opacity != 100)
    +				{
    +					String value = String.valueOf(opacity / 100);
    +					background.setAttribute("fill-opacity", value);
    +					background.setAttribute("stroke-opacity", value);
    +				}
    +
    +				if (transform != null)
    +				{
    +					background.setAttribute("transform", transform);
    +				}
    +
    +				appendSvgElement(background);
    +			}
    +
    +			elem = document.createElement("text");
    +
    +			int fontStyle = mxUtils.getInt(style, mxConstants.STYLE_FONTSTYLE);
    +			String weight = ((fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD) ? "bold"
    +					: "normal";
    +			elem.setAttribute("font-weight", weight);
    +			String uline = ((fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE) ? "underline"
    +					: "none";
    +			elem.setAttribute("font-decoration", uline);
    +
    +			if ((fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC)
    +			{
    +				elem.setAttribute("font-style", "italic");
    +			}
    +
    +			elem.setAttribute("font-size", String.valueOf(fontSize));
    +			elem.setAttribute("font-family", fontFamily);
    +			elem.setAttribute("fill", fontColor);
    +
    +			if (opacity != 100)
    +			{
    +				String value = String.valueOf(opacity / 100);
    +				elem.setAttribute("fill-opacity", value);
    +				elem.setAttribute("stroke-opacity", value);
    +			}
    +
    +			int swingFontStyle = ((fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD) ? Font.BOLD
    +					: Font.PLAIN;
    +			swingFontStyle += ((fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC) ? Font.ITALIC
    +					: Font.PLAIN;
    +
    +			String[] lines = text.split("\n");
    +			y += fontSize
    +					+ (h - lines.length * (fontSize + mxConstants.LINESPACING))
    +					/ 2 - 2;
    +
    +			String align = mxUtils.getString(style, mxConstants.STYLE_ALIGN,
    +					mxConstants.ALIGN_CENTER);
    +			String anchor = "start";
    +
    +			if (align.equals(mxConstants.ALIGN_RIGHT))
    +			{
    +				anchor = "end";
    +				x += w - mxConstants.LABEL_INSET * scale;
    +			}
    +			else if (align.equals(mxConstants.ALIGN_CENTER))
    +			{
    +				anchor = "middle";
    +				x += w / 2;
    +			}
    +			else
    +			{
    +				x += mxConstants.LABEL_INSET * scale;
    +			}
    +
    +			elem.setAttribute("text-anchor", anchor);
    +
    +			for (int i = 0; i < lines.length; i++)
    +			{
    +				Element tspan = document.createElement("tspan");
    +
    +				tspan.setAttribute("x", String.valueOf(x));
    +				tspan.setAttribute("y", String.valueOf(y));
    +
    +				tspan.appendChild(document.createTextNode(lines[i]));
    +				elem.appendChild(tspan);
    +
    +				y += fontSize + mxConstants.LINESPACING;
    +			}
    +
    +			if (transform != null)
    +			{
    +				elem.setAttribute("transform", transform);
    +			}
    +
    +			appendSvgElement(elem);
    +		}
    +
    +		return elem;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/canvas/mxVmlCanvas.java b/java/src/com/mxgraph/canvas/mxVmlCanvas.java
    new file mode 100644
    index 000000000..cd5a750a4
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/mxVmlCanvas.java
    @@ -0,0 +1,598 @@
    +/**
    + * $Id: mxVmlCanvas.java,v 1.53 2011-03-17 10:40:57 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.canvas;
    +
    +import java.awt.Rectangle;
    +import java.util.Hashtable;
    +import java.util.List;
    +import java.util.Map;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * An implementation of a canvas that uses VML for painting.
    + */
    +public class mxVmlCanvas extends mxBasicCanvas
    +{
    +
    +	/**
    +	 * Holds the HTML document that represents the canvas.
    +	 */
    +	protected Document document;
    +
    +	/**
    +	 * Constructs a new VML canvas for the specified dimension and scale.
    +	 */
    +	public mxVmlCanvas()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * Constructs a new VML canvas for the specified bounds, scale and
    +	 * background color.
    +	 */
    +	public mxVmlCanvas(Document document)
    +	{
    +		setDocument(document);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setDocument(Document document)
    +	{
    +		this.document = document;
    +	}
    +
    +	/**
    +	 * Returns a reference to the document that represents the canvas.
    +	 * 
    +	 * @return Returns the document.
    +	 */
    +	public Document getDocument()
    +	{
    +		return document;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void appendVmlElement(Element node)
    +	{
    +		if (document != null)
    +		{
    +			Node body = document.getDocumentElement().getFirstChild()
    +					.getNextSibling();
    +
    +			if (body != null)
    +			{
    +				body.appendChild(node);
    +			}
    +		}
    +
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.canvas.mxICanvas#drawCell()
    +	 */
    +	public Object drawCell(mxCellState state)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +		Element elem = null;
    +
    +		if (state.getAbsolutePointCount() > 1)
    +		{
    +			List<mxPoint> pts = state.getAbsolutePoints();
    +
    +			// Transpose all points by cloning into a new array
    +			pts = mxUtils.translatePoints(pts, translate.x, translate.y);
    +
    +			// Draws the line
    +			elem = drawLine(pts, style);
    +			Element strokeNode = document.createElement("v:stroke");
    +
    +			// Draws the markers
    +			String start = mxUtils.getString(style,
    +					mxConstants.STYLE_STARTARROW);
    +			String end = mxUtils.getString(style, mxConstants.STYLE_ENDARROW);
    +
    +			if (start != null || end != null)
    +			{
    +				if (start != null)
    +				{
    +					strokeNode.setAttribute("startarrow", start);
    +
    +					String startWidth = "medium";
    +					String startLength = "medium";
    +					double startSize = mxUtils.getFloat(style,
    +							mxConstants.STYLE_STARTSIZE,
    +							mxConstants.DEFAULT_MARKERSIZE)
    +							* scale;
    +
    +					if (startSize < 6)
    +					{
    +						startWidth = "narrow";
    +						startLength = "short";
    +					}
    +					else if (startSize > 10)
    +					{
    +						startWidth = "wide";
    +						startLength = "long";
    +					}
    +
    +					strokeNode.setAttribute("startarrowwidth", startWidth);
    +					strokeNode.setAttribute("startarrowlength", startLength);
    +				}
    +
    +				if (end != null)
    +				{
    +					strokeNode.setAttribute("endarrow", end);
    +
    +					String endWidth = "medium";
    +					String endLength = "medium";
    +					double endSize = mxUtils.getFloat(style,
    +							mxConstants.STYLE_ENDSIZE,
    +							mxConstants.DEFAULT_MARKERSIZE)
    +							* scale;
    +
    +					if (endSize < 6)
    +					{
    +						endWidth = "narrow";
    +						endLength = "short";
    +					}
    +					else if (endSize > 10)
    +					{
    +						endWidth = "wide";
    +						endLength = "long";
    +					}
    +
    +					strokeNode.setAttribute("endarrowwidth", endWidth);
    +					strokeNode.setAttribute("endarrowlength", endLength);
    +				}
    +			}
    +
    +			if (mxUtils.isTrue(style, mxConstants.STYLE_DASHED))
    +			{
    +				strokeNode.setAttribute("dashstyle", "2 2");
    +			}
    +
    +			elem.appendChild(strokeNode);
    +		}
    +		else
    +		{
    +			int x = (int) state.getX() + translate.x;
    +			int y = (int) state.getY() + translate.y;
    +			int w = (int) state.getWidth();
    +			int h = (int) state.getHeight();
    +
    +			if (!mxUtils.getString(style, mxConstants.STYLE_SHAPE, "").equals(
    +					mxConstants.SHAPE_SWIMLANE))
    +			{
    +				elem = drawShape(x, y, w, h, style);
    +
    +				if (mxUtils.isTrue(style, mxConstants.STYLE_DASHED))
    +				{
    +					Element strokeNode = document.createElement("v:stroke");
    +					strokeNode.setAttribute("dashstyle", "2 2");
    +					elem.appendChild(strokeNode);
    +				}
    +			}
    +			else
    +			{
    +				int start = (int) Math.round(mxUtils.getInt(style,
    +						mxConstants.STYLE_STARTSIZE,
    +						mxConstants.DEFAULT_STARTSIZE)
    +						* scale);
    +
    +				// Removes some styles to draw the content area
    +				Map<String, Object> cloned = new Hashtable<String, Object>(
    +						style);
    +				cloned.remove(mxConstants.STYLE_FILLCOLOR);
    +				cloned.remove(mxConstants.STYLE_ROUNDED);
    +
    +				if (mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL, true))
    +				{
    +					elem = drawShape(x, y, w, start, style);
    +					drawShape(x, y + start, w, h - start, cloned);
    +				}
    +				else
    +				{
    +					elem = drawShape(x, y, start, h, style);
    +					drawShape(x + start, y, w - start, h, cloned);
    +				}
    +			}
    +		}
    +
    +		return elem;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.canvas.mxICanvas#drawLabel()
    +	 */
    +	public Object drawLabel(String label, mxCellState state, boolean html)
    +	{
    +		mxRectangle bounds = state.getLabelBounds();
    +
    +		if (drawLabels && bounds != null)
    +		{
    +			int x = (int) bounds.getX() + translate.x;
    +			int y = (int) bounds.getY() + translate.y;
    +			int w = (int) bounds.getWidth();
    +			int h = (int) bounds.getHeight();
    +			Map<String, Object> style = state.getStyle();
    +
    +			return drawText(label, x, y, w, h, style);
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Draws the shape specified with the STYLE_SHAPE key in the given style.
    +	 * 
    +	 * @param x X-coordinate of the shape.
    +	 * @param y Y-coordinate of the shape.
    +	 * @param w Width of the shape.
    +	 * @param h Height of the shape.
    +	 * @param style Style of the the shape.
    +	 */
    +	public Element drawShape(int x, int y, int w, int h,
    +			Map<String, Object> style)
    +	{
    +		String fillColor = mxUtils
    +				.getString(style, mxConstants.STYLE_FILLCOLOR);
    +		String strokeColor = mxUtils.getString(style,
    +				mxConstants.STYLE_STROKECOLOR);
    +		float strokeWidth = (float) (mxUtils.getFloat(style,
    +				mxConstants.STYLE_STROKEWIDTH, 1) * scale);
    +
    +		// Draws the shape
    +		String shape = mxUtils.getString(style, mxConstants.STYLE_SHAPE);
    +		Element elem = null;
    +
    +		if (shape.equals(mxConstants.SHAPE_IMAGE))
    +		{
    +			String img = getImageForStyle(style);
    +
    +			if (img != null)
    +			{
    +				elem = document.createElement("v:img");
    +				elem.setAttribute("src", img);
    +			}
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_LINE))
    +		{
    +			String direction = mxUtils.getString(style,
    +					mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_EAST);
    +			String points = null;
    +
    +			if (direction.equals(mxConstants.DIRECTION_EAST)
    +					|| direction.equals(mxConstants.DIRECTION_WEST))
    +			{
    +				int mid = Math.round(h / 2);
    +				points = "m 0 " + mid + " l " + w + " " + mid;
    +			}
    +			else
    +			{
    +				int mid = Math.round(w / 2);
    +				points = "m " + mid + " 0 L " + mid + " " + h;
    +			}
    +
    +			elem = document.createElement("v:shape");
    +			elem.setAttribute("coordsize", w + " " + h);
    +			elem.setAttribute("path", points + " x e");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_ELLIPSE))
    +		{
    +			elem = document.createElement("v:oval");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_DOUBLE_ELLIPSE))
    +		{
    +			elem = document.createElement("v:shape");
    +			elem.setAttribute("coordsize", w + " " + h);
    +			int inset = (int) ((3 + strokeWidth) * scale);
    +
    +			String points = "ar 0 0 " + w + " " + h + " 0 " + (h / 2) + " "
    +					+ (w / 2) + " " + (h / 2) + " e ar " + inset + " " + inset
    +					+ " " + (w - inset) + " " + (h - inset) + " 0 " + (h / 2)
    +					+ " " + (w / 2) + " " + (h / 2);
    +
    +			elem.setAttribute("path", points + " x e");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_RHOMBUS))
    +		{
    +			elem = document.createElement("v:shape");
    +			elem.setAttribute("coordsize", w + " " + h);
    +
    +			String points = "m " + (w / 2) + " 0 l " + w + " " + (h / 2)
    +					+ " l " + (w / 2) + " " + h + " l 0 " + (h / 2);
    +
    +			elem.setAttribute("path", points + " x e");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_TRIANGLE))
    +		{
    +			elem = document.createElement("v:shape");
    +			elem.setAttribute("coordsize", w + " " + h);
    +
    +			String direction = mxUtils.getString(style,
    +					mxConstants.STYLE_DIRECTION, "");
    +			String points = null;
    +
    +			if (direction.equals(mxConstants.DIRECTION_NORTH))
    +			{
    +				points = "m 0 " + h + " l " + (w / 2) + " 0 " + " l " + w + " "
    +						+ h;
    +			}
    +			else if (direction.equals(mxConstants.DIRECTION_SOUTH))
    +			{
    +				points = "m 0 0 l " + (w / 2) + " " + h + " l " + w + " 0";
    +			}
    +			else if (direction.equals(mxConstants.DIRECTION_WEST))
    +			{
    +				points = "m " + w + " 0 l " + w + " " + (h / 2) + " l " + w
    +						+ " " + h;
    +			}
    +			else
    +			// east
    +			{
    +				points = "m 0 0 l " + w + " " + (h / 2) + " l 0 " + h;
    +			}
    +
    +			elem.setAttribute("path", points + " x e");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_HEXAGON))
    +		{
    +			elem = document.createElement("v:shape");
    +			elem.setAttribute("coordsize", w + " " + h);
    +
    +			String direction = mxUtils.getString(style,
    +					mxConstants.STYLE_DIRECTION, "");
    +			String points = null;
    +
    +			if (direction.equals(mxConstants.DIRECTION_NORTH)
    +					|| direction.equals(mxConstants.DIRECTION_SOUTH))
    +			{
    +				points = "m " + (int) (0.5 * w) + " 0 l " + w + " "
    +						+ (int) (0.25 * h) + " l " + w + " " + (int) (0.75 * h)
    +						+ " l " + (int) (0.5 * w) + " " + h + " l 0 "
    +						+ (int) (0.75 * h) + " l 0 " + (int) (0.25 * h);
    +			}
    +			else
    +			{
    +				points = "m " + (int) (0.25 * w) + " 0 l " + (int) (0.75 * w)
    +						+ " 0 l " + w + " " + (int) (0.5 * h) + " l "
    +						+ (int) (0.75 * w) + " " + h + " l " + (int) (0.25 * w)
    +						+ " " + h + " l 0 " + (int) (0.5 * h);
    +			}
    +
    +			elem.setAttribute("path", points + " x e");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_CLOUD))
    +		{
    +			elem = document.createElement("v:shape");
    +			elem.setAttribute("coordsize", w + " " + h);
    +
    +			String points = "m " + (int) (0.25 * w) + " " + (int) (0.25 * h)
    +					+ " c " + (int) (0.05 * w) + " " + (int) (0.25 * h) + " 0 "
    +					+ (int) (0.5 * h) + " " + (int) (0.16 * w) + " "
    +					+ (int) (0.55 * h) + " c 0 " + (int) (0.66 * h) + " "
    +					+ (int) (0.18 * w) + " " + (int) (0.9 * h) + " "
    +					+ (int) (0.31 * w) + " " + (int) (0.8 * h) + " c "
    +					+ (int) (0.4 * w) + " " + (h) + " " + (int) (0.7 * w) + " "
    +					+ (h) + " " + (int) (0.8 * w) + " " + (int) (0.8 * h)
    +					+ " c " + (w) + " " + (int) (0.8 * h) + " " + (w) + " "
    +					+ (int) (0.6 * h) + " " + (int) (0.875 * w) + " "
    +					+ (int) (0.5 * h) + " c " + (w) + " " + (int) (0.3 * h)
    +					+ " " + (int) (0.8 * w) + " " + (int) (0.1 * h) + " "
    +					+ (int) (0.625 * w) + " " + (int) (0.2 * h) + " c "
    +					+ (int) (0.5 * w) + " " + (int) (0.05 * h) + " "
    +					+ (int) (0.3 * w) + " " + (int) (0.05 * h) + " "
    +					+ (int) (0.25 * w) + " " + (int) (0.25 * h);
    +
    +			elem.setAttribute("path", points + " x e");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_ACTOR))
    +		{
    +			elem = document.createElement("v:shape");
    +			elem.setAttribute("coordsize", w + " " + h);
    +
    +			double width3 = w / 3;
    +			String points = "m 0 " + (h) + " C 0 " + (3 * h / 5) + " 0 "
    +					+ (2 * h / 5) + " " + (w / 2) + " " + (2 * h / 5) + " c "
    +					+ (int) (w / 2 - width3) + " " + (2 * h / 5) + " "
    +					+ (int) (w / 2 - width3) + " 0 " + (w / 2) + " 0 c "
    +					+ (int) (w / 2 + width3) + " 0 " + (int) (w / 2 + width3)
    +					+ " " + (2 * h / 5) + " " + (w / 2) + " " + (2 * h / 5)
    +					+ " c " + (w) + " " + (2 * h / 5) + " " + (w) + " "
    +					+ (3 * h / 5) + " " + (w) + " " + (h);
    +
    +			elem.setAttribute("path", points + " x e");
    +		}
    +		else if (shape.equals(mxConstants.SHAPE_CYLINDER))
    +		{
    +			elem = document.createElement("v:shape");
    +			elem.setAttribute("coordsize", w + " " + h);
    +
    +			double dy = Math.min(40, Math.floor(h / 5));
    +			String points = "m 0 " + (int) (dy) + " C 0 " + (int) (dy / 3)
    +					+ " " + (w) + " " + (int) (dy / 3) + " " + (w) + " "
    +					+ (int) (dy) + " L " + (w) + " " + (int) (h - dy) + " C "
    +					+ (w) + " " + (int) (h + dy / 3) + " 0 "
    +					+ (int) (h + dy / 3) + " 0 " + (int) (h - dy) + " x e"
    +					+ " m 0 " + (int) (dy) + " C 0 " + (int) (2 * dy) + " "
    +					+ (w) + " " + (int) (2 * dy) + " " + (w) + " " + (int) (dy);
    +
    +			elem.setAttribute("path", points + " e");
    +		}
    +		else
    +		{
    +			if (mxUtils.isTrue(style, mxConstants.STYLE_ROUNDED, false))
    +			{
    +				elem = document.createElement("v:roundrect");
    +				elem.setAttribute("arcsize",
    +						(mxConstants.RECTANGLE_ROUNDING_FACTOR * 100) + "%");
    +			}
    +			else
    +			{
    +				elem = document.createElement("v:rect");
    +			}
    +		}
    +
    +		String s = "position:absolute;left:" + String.valueOf(x) + "px;top:"
    +				+ String.valueOf(y) + "px;width:" + String.valueOf(w)
    +				+ "px;height:" + String.valueOf(h) + "px;";
    +
    +		// Applies rotation
    +		double rotation = mxUtils.getDouble(style, mxConstants.STYLE_ROTATION);
    +
    +		if (rotation != 0)
    +		{
    +			s += "rotation:" + rotation + ";";
    +		}
    +
    +		elem.setAttribute("style", s);
    +
    +		// Adds the shadow element
    +		if (mxUtils.isTrue(style, mxConstants.STYLE_SHADOW, false)
    +				&& fillColor != null)
    +		{
    +			Element shadow = document.createElement("v:shadow");
    +			shadow.setAttribute("on", "true");
    +			shadow.setAttribute("color", mxConstants.W3C_SHADOWCOLOR);
    +			elem.appendChild(shadow);
    +		}
    +
    +		float opacity = mxUtils.getFloat(style, mxConstants.STYLE_OPACITY, 100);
    +
    +		// Applies opacity to fill
    +		if (fillColor != null)
    +		{
    +			Element fill = document.createElement("v:fill");
    +			fill.setAttribute("color", fillColor);
    +
    +			if (opacity != 100)
    +			{
    +				fill.setAttribute("opacity", String.valueOf(opacity / 100));
    +			}
    +
    +			elem.appendChild(fill);
    +		}
    +		else
    +		{
    +			elem.setAttribute("filled", "false");
    +		}
    +
    +		// Applies opacity to stroke
    +		if (strokeColor != null)
    +		{
    +			elem.setAttribute("strokecolor", strokeColor);
    +			Element stroke = document.createElement("v:stroke");
    +
    +			if (opacity != 100)
    +			{
    +				stroke.setAttribute("opacity", String.valueOf(opacity / 100));
    +			}
    +
    +			elem.appendChild(stroke);
    +		}
    +		else
    +		{
    +			elem.setAttribute("stroked", "false");
    +		}
    +
    +		elem.setAttribute("strokeweight", String.valueOf(strokeWidth) + "px");
    +		appendVmlElement(elem);
    +
    +		return elem;
    +	}
    +
    +	/**
    +	 * Draws the given lines as segments between all points of the given list
    +	 * of mxPoints.
    +	 * 
    +	 * @param pts List of points that define the line.
    +	 * @param style Style to be used for painting the line.
    +	 */
    +	public Element drawLine(List<mxPoint> pts, Map<String, Object> style)
    +	{
    +		String strokeColor = mxUtils.getString(style,
    +				mxConstants.STYLE_STROKECOLOR);
    +		float strokeWidth = (float) (mxUtils.getFloat(style,
    +				mxConstants.STYLE_STROKEWIDTH, 1) * scale);
    +
    +		Element elem = document.createElement("v:shape");
    +
    +		if (strokeColor != null && strokeWidth > 0)
    +		{
    +			mxPoint pt = pts.get(0);
    +			Rectangle r = new Rectangle(pt.getPoint());
    +
    +			StringBuilder buf = new StringBuilder("m " + Math.round(pt.getX())
    +					+ " " + Math.round(pt.getY()));
    +
    +			for (int i = 1; i < pts.size(); i++)
    +			{
    +				pt = pts.get(i);
    +				buf.append(" l " + Math.round(pt.getX()) + " "
    +						+ Math.round(pt.getY()));
    +
    +				r = r.union(new Rectangle(pt.getPoint()));
    +			}
    +
    +			String d = buf.toString();
    +			elem.setAttribute("path", d);
    +			elem.setAttribute("filled", "false");
    +			elem.setAttribute("strokecolor", strokeColor);
    +			elem.setAttribute("strokeweight", String.valueOf(strokeWidth)
    +					+ "px");
    +
    +			String s = "position:absolute;" + "left:" + String.valueOf(r.x)
    +					+ "px;" + "top:" + String.valueOf(r.y) + "px;" + "width:"
    +					+ String.valueOf(r.width) + "px;" + "height:"
    +					+ String.valueOf(r.height) + "px;";
    +			elem.setAttribute("style", s);
    +
    +			elem.setAttribute("coordorigin",
    +					String.valueOf(r.x) + " " + String.valueOf(r.y));
    +			elem.setAttribute("coordsize", String.valueOf(r.width) + " "
    +					+ String.valueOf(r.height));
    +		}
    +
    +		appendVmlElement(elem);
    +
    +		return elem;
    +	}
    +
    +	/**
    +	 * Draws the specified text either using drawHtmlString or using drawString.
    +	 * 
    +	 * @param text Text to be painted.
    +	 * @param x X-coordinate of the text.
    +	 * @param y Y-coordinate of the text.
    +	 * @param w Width of the text.
    +	 * @param h Height of the text.
    +	 * @param style Style to be used for painting the text.
    +	 */
    +	public Element drawText(String text, int x, int y, int w, int h,
    +			Map<String, Object> style)
    +	{
    +		Element table = mxUtils.createTable(document, text, x, y, w, h, scale,
    +				style);
    +		appendVmlElement(table);
    +
    +		return table;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/canvas/package.html b/java/src/com/mxgraph/canvas/package.html
    new file mode 100644
    index 000000000..3957f653a
    --- /dev/null
    +++ b/java/src/com/mxgraph/canvas/package.html
    @@ -0,0 +1,6 @@
    +<HTML>
    +<BODY>
    +  This package contains various implementations for painting a graph using
    +  different technologies, such as Graphics2D, HTML, SVG or VML.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/io/gd/mxGdDocument.java b/java/src/com/mxgraph/io/gd/mxGdDocument.java
    new file mode 100644
    index 000000000..7cf98227e
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/gd/mxGdDocument.java
    @@ -0,0 +1,167 @@
    +/**
    + * $Id: mxGdDocument.java,v 1.2 2011-01-31 12:13:34 david Exp $
    + * Copyright (c) 2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.io.gd;
    +
    +import com.mxgraph.util.mxPoint;
    +import java.io.BufferedReader;
    +import java.io.StringReader;
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +/**
    + * This class is a representation of a GD file.<br/>
    + * Allows access to the nodes and edges of the graph.
    + */
    +public class mxGdDocument
    +{
    +	/**
    +	 * Represents the different states in the parse of a file.
    +	 */
    +	public enum mxGDParseState
    +	{
    +		START, PARSING_NODES, PARSING_EDGES
    +	}
    +
    +	private List<mxGdNode> nodes = new ArrayList<mxGdNode>();
    +
    +	private List<mxGdEdge> edges = new ArrayList<mxGdEdge>();
    +
    +	/**
    +	 * @return Returns the list of edges.
    +	 */
    +	public List<mxGdEdge> getEdges()
    +	{
    +		return edges;
    +	}
    +
    +	/**
    +	 * @return Returns the list of nodes.
    +	 */
    +	public List<mxGdNode> getNodes()
    +	{
    +		return nodes;
    +	}
    +
    +	public void setEdges(List<mxGdEdge> edges)
    +	{
    +		this.edges = edges;
    +	}
    +
    +	public void setNodes(List<mxGdNode> nodes)
    +	{
    +		this.nodes = nodes;
    +	}
    +
    +	/**
    +	 * Parses the String with the file content and loads into the document,
    +	 * the data of nodes and edges.
    +	 * @param gd String with the file content.
    +	 */
    +	public void parse(String gd)
    +	{
    +		gd = gd.trim();
    +		BufferedReader br = new BufferedReader(new StringReader(gd));
    +		mxGDParseState state = mxGDParseState.START;
    +		try
    +		{
    +			String line = br.readLine();
    +			while (line != null)
    +			{
    +				switch (state)
    +				{
    +					case START:
    +					{
    +						if (line.startsWith("# Nodes"))
    +						{
    +							state = mxGDParseState.PARSING_NODES;
    +						}
    +						else
    +						{
    +							throw new Exception("Error in parsing");
    +						}
    +						break;
    +					}
    +					case PARSING_NODES:
    +					{
    +						if (line.startsWith("# Edges"))
    +						{
    +							state = mxGDParseState.PARSING_EDGES;
    +						}
    +						else if (!line.equals(""))
    +						{
    +							String[] items = line.split(",");
    +							if (items.length != 5)
    +							{
    +								throw new Exception("Error in parsing");
    +							}
    +							else
    +							{
    +								double x = Double.valueOf(items[1]);
    +								double y = Double.valueOf(items[2]);
    +								double width = Double.valueOf(items[3]);
    +								double height = Double.valueOf(items[4]);
    +								mxGdNode node = new mxGdNode(items[0],
    +										new mxPoint(x, y), new mxPoint(width,
    +												height));
    +								nodes.add(node);
    +							}
    +						}
    +						break;
    +					}
    +					case PARSING_EDGES:
    +					{
    +						if (!line.equals(""))
    +						{
    +							String[] items = line.split(",");
    +							if (items.length != 2)
    +							{
    +								throw new Exception("Error in parsing");
    +							}
    +							else
    +							{
    +								String source = items[0];
    +								String target = items[1];
    +								mxGdEdge edge = new mxGdEdge(source, target);
    +								edges.add(edge);
    +							}
    +						}
    +						break;
    +					}
    +				}
    +
    +				line = br.readLine();
    +			}
    +		}
    +		catch (Exception e)
    +		{
    +			e.printStackTrace();
    +		}
    +	}
    +
    +	/**
    +	 * @return Returns the String representation of the document.
    +	 */
    +	public String getDocumentString()
    +	{
    +		StringBuilder buf = new StringBuilder("# Nodes\n");
    +
    +		for (mxGdNode node : nodes)
    +		{
    +			buf.append(node.getNodeString());
    +			buf.append("\n");
    +		}
    +		
    +		buf.append("# Edges\n");
    +		
    +		for (mxGdEdge edge : edges)
    +		{
    +			buf.append(edge.getEdgeString());
    +			buf.append("\n");
    +		}
    +		
    +		return buf.toString();
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/gd/mxGdEdge.java b/java/src/com/mxgraph/io/gd/mxGdEdge.java
    new file mode 100644
    index 000000000..68c570cbe
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/gd/mxGdEdge.java
    @@ -0,0 +1,72 @@
    +/**
    + * $Id: mxGdEdge.java,v 1.1 2010-08-25 08:36:59 gaudenz Exp $
    + * Copyright (c) 2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.io.gd;
    +
    +/**
    + * Represents an Edge entry in the file.
    + */
    +public class mxGdEdge
    +{
    +	/**
    +	 * Name of the source node.
    +	 */
    +	private String sourceName;
    +
    +	/**
    +	 * Name of the target node.
    +	 */
    +	private String targetName;
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGdEdge(String sourceName, String targetName)
    +	{
    +		this.sourceName = sourceName;
    +		this.targetName = targetName;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public String getSourceName()
    +	{
    +		return sourceName;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setSourceName(String sourceName)
    +	{
    +		this.sourceName = sourceName;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public String getTargetName()
    +	{
    +		return targetName;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setTargetName(String targetName)
    +	{
    +		this.targetName = targetName;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public String getEdgeString()
    +	{
    +		return sourceName + "," + targetName;
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/gd/mxGdNode.java b/java/src/com/mxgraph/io/gd/mxGdNode.java
    new file mode 100644
    index 000000000..d8a141051
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/gd/mxGdNode.java
    @@ -0,0 +1,98 @@
    +/**
    + * $Id: mxGdNode.java,v 1.1 2010-08-25 08:36:59 gaudenz Exp $
    + * Copyright (c) 2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.io.gd;
    +
    +import com.mxgraph.util.mxPoint;
    +
    +/**
    + * Represents a Node entry in the file.
    + */
    +public class mxGdNode
    +{
    +	/**
    +	 * Name of the node.
    +	 */
    +	private String name;
    +
    +	/**
    +	 * Coordinates (x,y) of the Node.
    +	 */
    +	private mxPoint coordinates;
    +
    +	/**
    +	 * Dimensions (width, height) of the Node.
    +	 */
    +	private mxPoint dimentions;
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGdNode(String name, mxPoint coordinates, mxPoint dimentions)
    +	{
    +		this.name = name;
    +		this.coordinates = coordinates;
    +		this.dimentions = dimentions;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxPoint getCoordinates()
    +	{
    +		return coordinates;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setCoordinates(mxPoint coordinates)
    +	{
    +		this.coordinates = coordinates;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxPoint getDimentions()
    +	{
    +		return dimentions;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setDimentions(mxPoint dimentions)
    +	{
    +		this.dimentions = dimentions;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public String getName()
    +	{
    +		return name;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setName(String name)
    +	{
    +		this.name = name;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public String getNodeString()
    +	{
    +		return name + "," + (int) coordinates.getX() + ","
    +				+ (int) coordinates.getY() + "," + (int) dimentions.getX()
    +				+ "," + (int) dimentions.getY();
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlConstants.java b/java/src/com/mxgraph/io/graphml/mxGraphMlConstants.java
    new file mode 100644
    index 000000000..f340e3df5
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlConstants.java
    @@ -0,0 +1,97 @@
    +/**
    + * $Id: mxGraphMlConstants.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +/**
    + * This class contains constants used in the Import of gml documents.
    + */
    +public class mxGraphMlConstants
    +{
    +	public static String ID = "id";
    +
    +	public static String KEY_FOR = "for";
    +
    +	public static String KEY_NAME = "attr.name";
    +
    +	public static String KEY_TYPE = "attr.type";
    +
    +	public static String GRAPH = "graph";
    +
    +	public static String GRAPHML = "graphml";
    +
    +	public static String NODE = "node";
    +
    +	public static String EDGE = "edge";
    +
    +	public static String HYPEREDGE = "hyperedge";
    +
    +	public static String PORT = "port";
    +
    +	public static String ENDPOINT = "endpoint";
    +
    +	public static String KEY = "key";
    +
    +	public static String DATA = "data";
    +
    +	public static String ALL = "all";
    +
    +	public static String EDGE_SOURCE = "source";
    +
    +	public static String EDGE_SOURCE_PORT = "sourceport";
    +
    +	public static String EDGE_TARGET = "target";
    +
    +	public static String EDGE_TARGET_PORT = "targetport";
    +
    +	public static String EDGE_DIRECTED = "directed";
    +
    +	public static String EDGE_UNDIRECTED = "undirected";
    +
    +	public static String EDGE_DEFAULT = "edgedefault";
    +
    +	public static String PORT_NAME = "name";
    +
    +	public static String HEIGHT = "height";
    +
    +	public static String WIDTH = "width";
    +
    +	public static String X = "x";
    +
    +	public static String Y = "y";
    +
    +	public static String JGRAPH = "jGraph:";
    +
    +	public static String GEOMETRY = "Geometry";
    +
    +	public static String FILL = "Fill";
    +
    +	public static String SHAPENODE = "ShapeNode";
    +
    +	public static String SHAPEEDGE = "ShapeEdge";
    +
    +	public static String JGRAPH_URL = "http://www.jgraph.com/";
    +
    +	public static String KEY_NODE_ID = "d0";
    +
    +	public static String KEY_NODE_NAME = "nodeData";
    +
    +	public static String KEY_EDGE_ID = "d1";
    +
    +	public static String KEY_EDGE_NAME = "edgeData";
    +
    +	public static String STYLE = "Style";
    +
    +	public static String SHAPE = "Shape";
    +
    +	public static String TYPE = "type";
    +
    +	public static String LABEL = "label";
    +
    +	public static String TEXT = "text";
    +
    +	public static String PROPERTIES = "properties";
    +
    +	public static String SOURCETARGET = "SourceTarget";
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlData.java b/java/src/com/mxgraph/io/graphml/mxGraphMlData.java
    new file mode 100644
    index 000000000..83f11e283
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlData.java
    @@ -0,0 +1,175 @@
    +/**
    + * $Id: mxGraphMlData.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import java.util.List;
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +import org.w3c.dom.NodeList;
    +
    +/**
    + * Represents a Data element in the GML Structure.
    + */
    +public class mxGraphMlData
    +{
    +	private String dataId = "";
    +
    +	private String dataKey = "";
    +
    +	private String dataValue = "";//not using
    +
    +	private mxGraphMlShapeNode dataShapeNode;
    +
    +	private mxGraphMlShapeEdge dataShapeEdge;
    +
    +	/**
    +	 * Construct a data with the params values.
    +	 * @param dataId Data's ID
    +	 * @param dataKey Reference to a Key Element ID
    +	 * @param dataValue Value of the data Element
    +	 * @param dataShapeEdge JGraph specific edge properties.
    +	 * @param dataShapeNode JGraph specific node properties.
    +	 */
    +	public mxGraphMlData(String dataId, String dataKey, String dataValue,
    +			mxGraphMlShapeEdge dataShapeEdge, mxGraphMlShapeNode dataShapeNode)
    +	{
    +		this.dataId = dataId;
    +		this.dataKey = dataKey;
    +		this.dataValue = dataValue;
    +		this.dataShapeNode = dataShapeNode;
    +		this.dataShapeEdge = dataShapeEdge;
    +	}
    +
    +	/**
    +	 * Construct a data from one xml data element.
    +	 * @param dataElement Xml Data Element.
    +	 */
    +	public mxGraphMlData(Element dataElement)
    +	{
    +		this.dataId = dataElement.getAttribute(mxGraphMlConstants.ID);
    +		this.dataKey = dataElement.getAttribute(mxGraphMlConstants.KEY);
    +
    +		this.dataValue = "";
    +
    +		Element shapeNodeElement = mxGraphMlUtils.childsTag(dataElement,
    +				mxGraphMlConstants.JGRAPH + mxGraphMlConstants.SHAPENODE);
    +		Element shapeEdgeElement = mxGraphMlUtils.childsTag(dataElement,
    +				mxGraphMlConstants.JGRAPH + mxGraphMlConstants.SHAPEEDGE);
    +		
    +		if (shapeNodeElement != null)
    +		{
    +			this.dataShapeNode = new mxGraphMlShapeNode(shapeNodeElement);
    +		}
    +		else if (shapeEdgeElement != null)
    +		{
    +			this.dataShapeEdge = new mxGraphMlShapeEdge(shapeEdgeElement);
    +		}
    +		else
    +		{
    +			NodeList childs = dataElement.getChildNodes();
    +			List<Node> childrens = mxGraphMlUtils.copyNodeList(childs);
    +			
    +			for (Node n : childrens)
    +			{
    +				if (n.getNodeName().equals("#text"))
    +				{
    +
    +					this.dataValue += n.getNodeValue();
    +				}
    +			}
    +			this.dataValue = this.dataValue.trim();
    +		}
    +	}
    +
    +	/**
    +	 * Construct an empty data.
    +	 */
    +	public mxGraphMlData()
    +	{
    +	}
    +
    +	public String getDataId()
    +	{
    +		return dataId;
    +	}
    +
    +	public void setDataId(String dataId)
    +	{
    +		this.dataId = dataId;
    +	}
    +
    +	public String getDataKey()
    +	{
    +		return dataKey;
    +	}
    +
    +	public void setDataKey(String dataKey)
    +	{
    +		this.dataKey = dataKey;
    +	}
    +
    +	public String getDataValue()
    +	{
    +		return dataValue;
    +	}
    +
    +	public void setDataValue(String dataValue)
    +	{
    +		this.dataValue = dataValue;
    +	}
    +
    +	public mxGraphMlShapeNode getDataShapeNode()
    +	{
    +		return dataShapeNode;
    +	}
    +
    +	public void setDataShapeNode(mxGraphMlShapeNode dataShapeNode)
    +	{
    +		this.dataShapeNode = dataShapeNode;
    +	}
    +
    +	public mxGraphMlShapeEdge getDataShapeEdge()
    +	{
    +		return dataShapeEdge;
    +	}
    +
    +	public void setDataShapeEdge(mxGraphMlShapeEdge dataShapeEdge)
    +	{
    +		this.dataShapeEdge = dataShapeEdge;
    +	}
    +
    +	/**
    +	 * Generates an Node Data Element from this class.
    +	 * @param document Document where the key Element will be inserted.
    +	 * @return Returns the generated Elements.
    +	 */
    +	public Element generateNodeElement(Document document)
    +	{
    +		Element data = document.createElement(mxGraphMlConstants.DATA);
    +		data.setAttribute(mxGraphMlConstants.KEY, dataKey);
    +
    +		Element shapeNodeElement = dataShapeNode.generateElement(document);
    +		data.appendChild(shapeNodeElement);
    +
    +		return data;
    +	}
    +
    +	/**
    +	 * Generates an Edge Data Element from this class.
    +	 * @param document Document where the key Element will be inserted.
    +	 * @return Returns the generated Elements.
    +	 */
    +	public Element generateEdgeElement(Document document)
    +	{
    +		Element data = document.createElement(mxGraphMlConstants.DATA);
    +		data.setAttribute(mxGraphMlConstants.KEY, dataKey);
    +
    +		Element shapeEdgeElement = dataShapeEdge.generateElement(document);
    +		data.appendChild(shapeEdgeElement);
    +
    +		return data;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlEdge.java b/java/src/com/mxgraph/io/graphml/mxGraphMlEdge.java
    new file mode 100644
    index 000000000..70fb575f7
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlEdge.java
    @@ -0,0 +1,223 @@
    +/**
    + * $Id: mxGraphMlEdge.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import com.mxgraph.util.mxConstants;
    +import java.util.HashMap;
    +import java.util.Hashtable;
    +import java.util.List;
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +/**
    + * Represents a Data element in the GML Structure.
    + */
    +public class mxGraphMlEdge
    +{
    +	private String edgeId;
    +
    +	private String edgeSource;
    +
    +	private String edgeSourcePort;
    +
    +	private String edgeTarget;
    +
    +	private String edgeTargetPort;
    +
    +	private String edgeDirected;
    +
    +	private mxGraphMlData edgeData;
    +
    +	/**
    +	 * Map with the data. The key is the key attribute
    +	 */
    +	private HashMap<String, mxGraphMlData> edgeDataMap = new HashMap<String, mxGraphMlData>();
    +
    +	/**
    +	 * Construct an edge with source and target.
    +	 * @param edgeSource Source Node's ID.
    +	 * @param edgeTarget Target Node's ID.
    +	 */
    +	public mxGraphMlEdge(String edgeSource, String edgeTarget,
    +			String edgeSourcePort, String edgeTargetPort)
    +	{
    +		this.edgeId = "";
    +		this.edgeSource = edgeSource;
    +		this.edgeSourcePort = edgeSourcePort;
    +		this.edgeTarget = edgeTarget;
    +		this.edgeTargetPort = edgeTargetPort;
    +		this.edgeDirected = "";
    +	}
    +
    +	/**
    +	 * Construct an edge from a xml edge element.
    +	 * @param edgeElement Xml edge element.
    +	 */
    +	public mxGraphMlEdge(Element edgeElement)
    +	{
    +		this.edgeId = edgeElement.getAttribute(mxGraphMlConstants.ID);
    +		this.edgeSource = edgeElement.getAttribute(mxGraphMlConstants.EDGE_SOURCE);
    +		this.edgeSourcePort = edgeElement
    +				.getAttribute(mxGraphMlConstants.EDGE_SOURCE_PORT);
    +		this.edgeTarget = edgeElement.getAttribute(mxGraphMlConstants.EDGE_TARGET);
    +		this.edgeTargetPort = edgeElement
    +				.getAttribute(mxGraphMlConstants.EDGE_TARGET_PORT);
    +		this.edgeDirected = edgeElement
    +				.getAttribute(mxGraphMlConstants.EDGE_DIRECTED);
    +
    +		List<Element> dataList = mxGraphMlUtils.childsTags(edgeElement,
    +				mxGraphMlConstants.DATA);
    +
    +		for (Element dataElem : dataList)
    +		{
    +			mxGraphMlData data = new mxGraphMlData(dataElem);
    +			String key = data.getDataKey();
    +			edgeDataMap.put(key, data);
    +		}
    +	}
    +
    +	public String getEdgeDirected()
    +	{
    +		return edgeDirected;
    +	}
    +
    +	public void setEdgeDirected(String edgeDirected)
    +	{
    +		this.edgeDirected = edgeDirected;
    +	}
    +
    +	public String getEdgeId()
    +	{
    +		return edgeId;
    +	}
    +
    +	public void setEdgeId(String edgeId)
    +	{
    +		this.edgeId = edgeId;
    +	}
    +
    +	public String getEdgeSource()
    +	{
    +		return edgeSource;
    +	}
    +
    +	public void setEdgeSource(String edgeSource)
    +	{
    +		this.edgeSource = edgeSource;
    +	}
    +
    +	public String getEdgeSourcePort()
    +	{
    +		return edgeSourcePort;
    +	}
    +
    +	public void setEdgeSourcePort(String edgeSourcePort)
    +	{
    +		this.edgeSourcePort = edgeSourcePort;
    +	}
    +
    +	public String getEdgeTarget()
    +	{
    +		return edgeTarget;
    +	}
    +
    +	public void setEdgeTarget(String edgeTarget)
    +	{
    +		this.edgeTarget = edgeTarget;
    +	}
    +
    +	public String getEdgeTargetPort()
    +	{
    +		return edgeTargetPort;
    +	}
    +
    +	public void setEdgeTargetPort(String edgeTargetPort)
    +	{
    +		this.edgeTargetPort = edgeTargetPort;
    +	}
    +
    +	public HashMap<String, mxGraphMlData> getEdgeDataMap()
    +	{
    +		return edgeDataMap;
    +	}
    +
    +	public void setEdgeDataMap(HashMap<String, mxGraphMlData> nodeEdgeMap)
    +	{
    +		this.edgeDataMap = nodeEdgeMap;
    +	}
    +
    +	public mxGraphMlData getEdgeData()
    +	{
    +		return edgeData;
    +	}
    +
    +	public void setEdgeData(mxGraphMlData egdeData)
    +	{
    +		this.edgeData = egdeData;
    +	}
    +
    +	/**
    +	 * Generates a Edge Element from this class.
    +	 * @param document Document where the key Element will be inserted.
    +	 * @return Returns the generated Elements.
    +	 */
    +	public Element generateElement(Document document)
    +	{
    +		Element edge = document.createElement(mxGraphMlConstants.EDGE);
    +		
    +		if (!edgeId.equals(""))
    +		{
    +			edge.setAttribute(mxGraphMlConstants.ID, edgeId);
    +		}
    +		edge.setAttribute(mxGraphMlConstants.EDGE_SOURCE, edgeSource);
    +		edge.setAttribute(mxGraphMlConstants.EDGE_TARGET, edgeTarget);
    +
    +		if (!edgeSourcePort.equals(""))
    +		{
    +			edge.setAttribute(mxGraphMlConstants.EDGE_SOURCE_PORT, edgeSourcePort);
    +		}
    +		
    +		if (!edgeTargetPort.equals(""))
    +		{
    +			edge.setAttribute(mxGraphMlConstants.EDGE_TARGET_PORT, edgeTargetPort);
    +		}
    +		
    +		if (!edgeDirected.equals(""))
    +		{
    +			edge.setAttribute(mxGraphMlConstants.EDGE_DIRECTED, edgeDirected);
    +		}
    +
    +		Element dataElement = edgeData.generateEdgeElement(document);
    +		edge.appendChild(dataElement);
    +
    +		return edge;
    +	}
    +
    +	/**
    +	 * Returns if the edge has end arrow.
    +	 * @return style that indicates the end arrow type(CLASSIC or NONE).
    +	 */
    +	public String getEdgeStyle()
    +	{
    +		String style = "";
    +		Hashtable<String, Object> styleMap = new Hashtable<String, Object>();
    +
    +		//Defines style of the edge.
    +		if (edgeDirected.equals("true"))
    +		{
    +			styleMap.put(mxConstants.STYLE_ENDARROW, mxConstants.ARROW_CLASSIC);
    +
    +			style = mxGraphMlUtils.getStyleString(styleMap, "=");
    +		}
    +		else if (edgeDirected.equals("false"))
    +		{
    +			styleMap.put(mxConstants.STYLE_ENDARROW, mxConstants.NONE);
    +
    +			style = mxGraphMlUtils.getStyleString(styleMap, "=");
    +		}
    +
    +		return style;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlGraph.java b/java/src/com/mxgraph/io/graphml/mxGraphMlGraph.java
    new file mode 100644
    index 000000000..d99ce5334
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlGraph.java
    @@ -0,0 +1,427 @@
    +/**
    + * $Id: mxGraphMlGraph.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxConnectionConstraint;
    +import com.mxgraph.view.mxGraph;
    +import java.util.ArrayList;
    +import java.util.HashMap;
    +import java.util.List;
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +/**
    + * Represents a Graph element in the GML Structure.
    + */
    +public class mxGraphMlGraph
    +{
    +	/**
    +	 * Map with the vertex cells added in the addNode method.
    +	 */
    +	private static HashMap<String, Object> cellsMap = new HashMap<String, Object>();
    +
    +	private String id = "";
    +
    +	private String edgedefault = "";
    +
    +	private List<mxGraphMlNode> nodes = new ArrayList<mxGraphMlNode>();
    +
    +	private List<mxGraphMlEdge> edges = new ArrayList<mxGraphMlEdge>();
    +
    +	/**
    +	 * Constructs a graph with id and edge default direction.
    +	 * @param id Graph's ID
    +	 * @param edgedefault Edge Default direction.("directed" or "undirected")
    +	 */
    +	public mxGraphMlGraph(String id, String edgedefault)
    +	{
    +		this.id = id;
    +		this.edgedefault = edgedefault;
    +	}
    +
    +	/**
    +	 * Constructs an empty graph.
    +	 */
    +	public mxGraphMlGraph()
    +	{
    +	}
    +
    +	/**
    +	 * Constructs a graph from a xml graph element.
    +	 * @param graphElement Xml graph element.
    +	 */
    +	public mxGraphMlGraph(Element graphElement)
    +	{
    +		this.id = graphElement.getAttribute(mxGraphMlConstants.ID);
    +		this.edgedefault = graphElement
    +				.getAttribute(mxGraphMlConstants.EDGE_DEFAULT);
    +
    +		//Adds node elements
    +		List<Element> nodeElements = mxGraphMlUtils.childsTags(graphElement,
    +				mxGraphMlConstants.NODE);
    +
    +		for (Element nodeElem : nodeElements)
    +		{
    +			mxGraphMlNode node = new mxGraphMlNode(nodeElem);
    +
    +			nodes.add(node);
    +		}
    +
    +		//Adds edge elements
    +		List<Element> edgeElements = mxGraphMlUtils.childsTags(graphElement,
    +				mxGraphMlConstants.EDGE);
    +
    +		for (Element edgeElem : edgeElements)
    +		{
    +			mxGraphMlEdge edge = new mxGraphMlEdge(edgeElem);
    +
    +			if (edge.getEdgeDirected().equals(""))
    +			{
    +				if (edgedefault.equals(mxGraphMlConstants.EDGE_DIRECTED))
    +				{
    +					edge.setEdgeDirected("true");
    +				}
    +				else if (edgedefault.equals(mxGraphMlConstants.EDGE_UNDIRECTED))
    +				{
    +					edge.setEdgeDirected("false");
    +				}
    +			}
    +
    +			edges.add(edge);
    +		}
    +	}
    +
    +	/**
    +	 * Adds the elements represented for this graph model into the given graph.
    +	 * @param graph Graph where the elements will be located
    +	 * @param parent Parent of the cells to be added.
    +	 */
    +	public void addGraph(mxGraph graph, Object parent)
    +	{
    +		List<mxGraphMlNode> nodeList = getNodes();
    +
    +		for (mxGraphMlNode node : nodeList)
    +		{
    +			addNode(graph, parent, node);
    +		}
    +		List<mxGraphMlEdge> edgeList = getEdges();
    +
    +		for (mxGraphMlEdge edge : edgeList)
    +		{
    +			addEdge(graph, parent, edge);
    +		}
    +	}
    +
    +	/**
    +	 * Checks if the node has data elements inside.
    +	 * @param node Gml node element.
    +	 * @return Returns <code>true</code> if the node has data elements inside.
    +	 */
    +	public static boolean hasData(mxGraphMlNode node)
    +	{
    +		boolean ret = false;
    +		if (node.getNodeDataMap() == null)
    +		{
    +			ret = false;
    +		}
    +		else
    +		{
    +			ret = true;
    +		}
    +		return ret;
    +	}
    +
    +	/**
    +	 * Returns the data element inside the node that references to the key element
    +	 * with name = KEY_NODE_NAME.
    +	 * @param node Gml Node element.
    +	 * @return The required data. null if not found.
    +	 */
    +	public static mxGraphMlData dataNodeKey(mxGraphMlNode node)
    +	{
    +		String keyId = "";
    +		HashMap<String, mxGraphMlKey> keyMap = mxGraphMlKeyManager.getInstance()
    +				.getKeyMap();
    +		
    +		for (mxGraphMlKey key : keyMap.values())
    +		{
    +			if (key.getKeyName().equals(mxGraphMlConstants.KEY_NODE_NAME))
    +			{
    +				keyId = key.getKeyId();
    +			}
    +		}
    +
    +		mxGraphMlData data = null;
    +		HashMap<String, mxGraphMlData> nodeDataMap = node.getNodeDataMap();
    +		data = nodeDataMap.get(keyId);
    +
    +		return data;
    +	}
    +
    +	/**
    +	 * Returns the data element inside the edge that references to the key element
    +	 * with name = KEY_EDGE_NAME.
    +	 * @param edge Gml Edge element.
    +	 * @return The required data. null if not found.
    +	 */
    +	public static mxGraphMlData dataEdgeKey(mxGraphMlEdge edge)
    +	{
    +		String keyId = "";
    +		HashMap<String, mxGraphMlKey> keyMap = mxGraphMlKeyManager.getInstance()
    +				.getKeyMap();
    +		for (mxGraphMlKey key : keyMap.values())
    +		{
    +			if (key.getKeyName().equals(mxGraphMlConstants.KEY_EDGE_NAME))
    +			{
    +				keyId = key.getKeyId();
    +			}
    +		}
    +
    +		mxGraphMlData data = null;
    +		HashMap<String, mxGraphMlData> nodeDataMap = edge.getEdgeDataMap();
    +		data = nodeDataMap.get(keyId);
    +
    +		return data;
    +	}
    +
    +	/**
    +	 * Adds the vertex represented for the gml node into the graph with the given parent.
    +	 * @param graph Graph where the vertex will be added.
    +	 * @param parent Parent's cell.
    +	 * @param node Gml Node
    +	 * @return The inserted Vertex cell.
    +	 */
    +	private mxCell addNode(mxGraph graph, Object parent, mxGraphMlNode node)
    +	{
    +		mxCell v1;
    +		String id = node.getNodeId();
    +
    +		mxGraphMlData data = dataNodeKey(node);
    +
    +		if (data != null && data.getDataShapeNode() != null)
    +		{
    +			Double x = Double.valueOf(data.getDataShapeNode().getDataX());
    +			Double y = Double.valueOf(data.getDataShapeNode().getDataY());
    +			Double h = Double.valueOf(data.getDataShapeNode().getDataHeight());
    +			Double w = Double.valueOf(data.getDataShapeNode().getDataWidth());
    +			String label = data.getDataShapeNode().getDataLabel();
    +			String style = data.getDataShapeNode().getDataStyle();
    +			v1 = (mxCell) graph.insertVertex(parent, id, label, x, y, w, h,
    +					style);
    +		}
    +		else
    +		{
    +			v1 = (mxCell) graph.insertVertex(parent, id, "", 0, 0, 100, 100);
    +		}
    +
    +		cellsMap.put(id, v1);
    +		List<mxGraphMlGraph> graphs = node.getNodeGraph();
    +
    +		for (mxGraphMlGraph gmlGraph : graphs)
    +		{
    +			gmlGraph.addGraph(graph, v1);
    +		}
    +		return v1;
    +	}
    +
    +	/**
    +	 * Returns the point represented for the port name.
    +	 * The specials names North, NorthWest, NorthEast, East, West, South, SouthEast and SouthWest.
    +	 * are accepted. Else, the values acepted follow the pattern "double,double".
    +	 * where double must be in the range 0..1
    +	 * @param source Port Name.
    +	 * @return point that represent the port value.
    +	 */
    +	private static mxPoint portValue(String source)
    +	{
    +		mxPoint fromConstraint = null;
    +
    +		if (source != null && !source.equals(""))
    +		{
    +
    +			if (source.equals("North"))
    +			{
    +				fromConstraint = new mxPoint(0.5, 0);
    +			}
    +			else if (source.equals("South"))
    +			{
    +				fromConstraint = new mxPoint(0.5, 1);
    +
    +			}
    +			else if (source.equals("East"))
    +			{
    +				fromConstraint = new mxPoint(1, 0.5);
    +
    +			}
    +			else if (source.equals("West"))
    +			{
    +				fromConstraint = new mxPoint(0, 0.5);
    +
    +			}
    +			else if (source.equals("NorthWest"))
    +			{
    +				fromConstraint = new mxPoint(0, 0);
    +			}
    +			else if (source.equals("SouthWest"))
    +			{
    +				fromConstraint = new mxPoint(0, 1);
    +			}
    +			else if (source.equals("SouthEast"))
    +			{
    +				fromConstraint = new mxPoint(1, 1);
    +			}
    +			else if (source.equals("NorthEast"))
    +			{
    +				fromConstraint = new mxPoint(1, 0);
    +			}
    +			else
    +			{
    +				try
    +				{
    +					String[] s = source.split(",");
    +					Double x = Double.valueOf(s[0]);
    +					Double y = Double.valueOf(s[1]);
    +					fromConstraint = new mxPoint(x, y);
    +				}
    +				catch (Exception e)
    +				{
    +					e.printStackTrace();
    +				}
    +			}
    +		}
    +		return fromConstraint;
    +	}
    +
    +	/**
    +	 * Adds the edge represented for the gml edge into the graph with the given parent.
    +	 * @param graph Graph where the vertex will be added.
    +	 * @param parent Parent's cell.
    +	 * @param edge Gml Edge
    +	 * @return The inserted edge cell.
    +	 */
    +	private static mxCell addEdge(mxGraph graph, Object parent, mxGraphMlEdge edge)
    +	{
    +		//Get source and target vertex
    +		mxPoint fromConstraint = null;
    +		mxPoint toConstraint = null;
    +		Object source = cellsMap.get(edge.getEdgeSource());
    +		Object target = cellsMap.get(edge.getEdgeTarget());
    +		String sourcePort = edge.getEdgeSourcePort();
    +		String targetPort = edge.getEdgeTargetPort();
    +
    +		fromConstraint = portValue(sourcePort);
    +
    +		toConstraint = portValue(targetPort);
    +
    +		mxGraphMlData data = dataEdgeKey(edge);
    +
    +		String style = "";
    +		String label = "";
    +
    +		if (data != null)
    +		{
    +			mxGraphMlShapeEdge shEdge = data.getDataShapeEdge();
    +			style = shEdge.getStyle();
    +			label = shEdge.getText();
    +		}
    +		else
    +		{
    +			style = edge.getEdgeStyle();
    +		}
    +
    +		//Insert new edge.
    +		mxCell e = (mxCell) graph.insertEdge(parent, null, label, source,
    +				target, style);
    +		graph.setConnectionConstraint(e, source, true,
    +				new mxConnectionConstraint(fromConstraint, false));
    +		graph.setConnectionConstraint(e, target, false,
    +				new mxConnectionConstraint(toConstraint, false));
    +		return e;
    +	}
    +
    +	public String getEdgedefault()
    +	{
    +		return edgedefault;
    +	}
    +
    +	public void setEdgedefault(String edgedefault)
    +	{
    +		this.edgedefault = edgedefault;
    +	}
    +
    +	public String getId()
    +	{
    +		return id;
    +	}
    +
    +	public void setId(String id)
    +	{
    +		this.id = id;
    +	}
    +
    +	public List<mxGraphMlNode> getNodes()
    +	{
    +		return nodes;
    +	}
    +
    +	public void setNodes(List<mxGraphMlNode> node)
    +	{
    +		this.nodes = node;
    +	}
    +
    +	public List<mxGraphMlEdge> getEdges()
    +	{
    +		return edges;
    +	}
    +
    +	public void setEdges(List<mxGraphMlEdge> edge)
    +	{
    +		this.edges = edge;
    +	}
    +
    +	/**
    +	 * Checks if the graph has child nodes or edges.
    +	 * @return Returns <code>true</code> if the graph hasn't child nodes or edges.
    +	 */
    +	public boolean isEmpty()
    +	{
    +		return nodes.size() == 0 && edges.size() == 0;
    +	}
    +
    +	/**
    +	 * Generates a Key Element from this class.
    +	 * @param document Document where the key Element will be inserted.
    +	 * @return Returns the generated Elements.
    +	 */
    +	public Element generateElement(Document document)
    +	{
    +		Element graph = document.createElement(mxGraphMlConstants.GRAPH);
    +
    +		if (!id.equals(""))
    +		{
    +			graph.setAttribute(mxGraphMlConstants.ID, id);
    +		}
    +		if (!edgedefault.equals(""))
    +		{
    +			graph.setAttribute(mxGraphMlConstants.EDGE_DEFAULT, edgedefault);
    +		}
    +
    +		for (mxGraphMlNode node : nodes)
    +		{
    +			Element nodeElement = node.generateElement(document);
    +			graph.appendChild(nodeElement);
    +		}
    +
    +		for (mxGraphMlEdge edge : edges)
    +		{
    +			Element edgeElement = edge.generateElement(document);
    +			graph.appendChild(edgeElement);
    +		}
    +
    +		return graph;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlKey.java b/java/src/com/mxgraph/io/graphml/mxGraphMlKey.java
    new file mode 100644
    index 000000000..05ce4efcd
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlKey.java
    @@ -0,0 +1,378 @@
    +/**
    + * $Id: mxGraphMlKey.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +/**
    + * Represents a Key element in the GML Structure.
    + */
    +public class mxGraphMlKey
    +{
    +	/**
    +	 * Possibles values for the keyFor Attribute
    +	 */
    +	public enum keyForValues
    +	{
    +		GRAPH, NODE, EDGE, HYPEREDGE, PORT, ENDPOINT, ALL
    +	}
    +
    +	/**
    +	 * Possibles values for the keyType Attribute.
    +	 */
    +	public enum keyTypeValues
    +	{
    +		BOOLEAN, INT, LONG, FLOAT, DOUBLE, STRING
    +	}
    +
    +	private String keyDefault;
    +
    +	private String keyId;
    +
    +	private keyForValues keyFor;
    +
    +	private String keyName;
    +
    +	private keyTypeValues keyType;
    +
    +	/**
    +	 * Construct a key with the given parameters.
    +	 * @param keyId Key's ID
    +	 * @param keyFor Scope of the key.
    +	 * @param keyName Key Name
    +	 * @param keyType Type of the values represented for this key.
    +	 */
    +	public mxGraphMlKey(String keyId, keyForValues keyFor, String keyName,
    +			keyTypeValues keyType)
    +	{
    +		this.keyId = keyId;
    +		this.keyFor = keyFor;
    +		this.keyName = keyName;
    +		this.keyType = keyType;
    +		this.keyDefault = defaultValue();
    +	}
    +
    +	/**
    +	 * Construct a key from a xml key element.
    +	 * @param keyElement Xml key element.
    +	 */
    +	public mxGraphMlKey(Element keyElement)
    +	{
    +		this.keyId = keyElement.getAttribute(mxGraphMlConstants.ID);
    +		this.keyFor = enumForValue(keyElement
    +				.getAttribute(mxGraphMlConstants.KEY_FOR));
    +		this.keyName = keyElement.getAttribute(mxGraphMlConstants.KEY_NAME);
    +		this.keyType = enumTypeValue(keyElement
    +				.getAttribute(mxGraphMlConstants.KEY_TYPE));
    +		this.keyDefault = defaultValue();
    +	}
    +
    +	public String getKeyDefault()
    +	{
    +		return keyDefault;
    +	}
    +
    +	public void setKeyDefault(String keyDefault)
    +	{
    +		this.keyDefault = keyDefault;
    +	}
    +
    +	public keyForValues getKeyFor()
    +	{
    +		return keyFor;
    +	}
    +
    +	public void setKeyFor(keyForValues keyFor)
    +	{
    +		this.keyFor = keyFor;
    +	}
    +
    +	public String getKeyId()
    +	{
    +		return keyId;
    +	}
    +
    +	public void setKeyId(String keyId)
    +	{
    +		this.keyId = keyId;
    +	}
    +
    +	public String getKeyName()
    +	{
    +		return keyName;
    +	}
    +
    +	public void setKeyName(String keyName)
    +	{
    +		this.keyName = keyName;
    +	}
    +
    +	public keyTypeValues getKeyType()
    +	{
    +		return keyType;
    +	}
    +
    +	public void setKeyType(keyTypeValues keyType)
    +	{
    +		this.keyType = keyType;
    +	}
    +
    +	/**
    +	 * Returns the default value of the keyDefault attribute according
    +	 * the keyType.
    +	 */
    +	private String defaultValue()
    +	{
    +		String val = "";
    +		switch (this.keyType)
    +		{
    +			case BOOLEAN:
    +			{
    +				val = "false";
    +				break;
    +			}
    +			case DOUBLE:
    +			{
    +				val = "0";
    +				break;
    +			}
    +			case FLOAT:
    +			{
    +				val = "0";
    +				break;
    +			}
    +			case INT:
    +			{
    +				val = "0";
    +				break;
    +			}
    +			case LONG:
    +			{
    +				val = "0";
    +				break;
    +			}
    +			case STRING:
    +			{
    +				val = "";
    +				break;
    +			}
    +		}
    +		return val;
    +	}
    +
    +	/**
    +	 * Generates a Key Element from this class.
    +	 * @param document Document where the key Element will be inserted.
    +	 * @return Returns the generated Elements.
    +	 */
    +	public Element generateElement(Document document)
    +	{
    +		Element key = document.createElement(mxGraphMlConstants.KEY);
    +		
    +		if (!keyName.equals(""))
    +		{
    +			key.setAttribute(mxGraphMlConstants.KEY_NAME, keyName);
    +		}
    +		key.setAttribute(mxGraphMlConstants.ID, keyId);
    +		
    +		if (!keyName.equals(""))
    +		{
    +			key.setAttribute(mxGraphMlConstants.KEY_FOR, stringForValue(keyFor));
    +		}
    +		
    +		if (!keyName.equals(""))
    +		{
    +			key.setAttribute(mxGraphMlConstants.KEY_TYPE, stringTypeValue(keyType));
    +		}
    +		
    +		if (!keyName.equals(""))
    +		{
    +			key.setTextContent(keyDefault);
    +		}
    +		
    +		return key;
    +	}
    +
    +	/**
    +	 * Converts a String value in its corresponding enum value for the
    +	 * keyFor attribute.
    +	 * @param value Value in String representation.
    +	 * @return Returns the value in its enum representation.
    +	 */
    +	public keyForValues enumForValue(String value)
    +	{
    +		keyForValues enumVal = keyForValues.ALL;
    +		
    +		if (value.equals(mxGraphMlConstants.GRAPH))
    +		{
    +			enumVal = keyForValues.GRAPH;
    +		}
    +		else if (value.equals(mxGraphMlConstants.NODE))
    +		{
    +			enumVal = keyForValues.NODE;
    +		}
    +		else if (value.equals(mxGraphMlConstants.EDGE))
    +		{
    +			enumVal = keyForValues.EDGE;
    +		}
    +		else if (value.equals(mxGraphMlConstants.HYPEREDGE))
    +		{
    +			enumVal = keyForValues.HYPEREDGE;
    +		}
    +		else if (value.equals(mxGraphMlConstants.PORT))
    +		{
    +			enumVal = keyForValues.PORT;
    +		}
    +		else if (value.equals(mxGraphMlConstants.ENDPOINT))
    +		{
    +			enumVal = keyForValues.ENDPOINT;
    +		}
    +		else if (value.equals(mxGraphMlConstants.ALL))
    +		{
    +			enumVal = keyForValues.ALL;
    +		}
    +		
    +		return enumVal;
    +	}
    +
    +	/**
    +	 * Converts a enum value in its corresponding String value for the
    +	 * keyFor attribute.
    +	 * @param value Value in enum representation.
    +	 * @return Returns the value in its String representation.
    +	 */
    +	public String stringForValue(keyForValues value)
    +	{
    +
    +		String val = mxGraphMlConstants.ALL;
    +		
    +		switch (value)
    +		{
    +			case GRAPH:
    +			{
    +				val = mxGraphMlConstants.GRAPH;
    +				break;
    +			}
    +			case NODE:
    +			{
    +				val = mxGraphMlConstants.NODE;
    +				break;
    +			}
    +			case EDGE:
    +			{
    +				val = mxGraphMlConstants.EDGE;
    +				break;
    +			}
    +			case HYPEREDGE:
    +			{
    +				val = mxGraphMlConstants.HYPEREDGE;
    +				break;
    +			}
    +			case PORT:
    +			{
    +				val = mxGraphMlConstants.PORT;
    +				break;
    +			}
    +			case ENDPOINT:
    +			{
    +				val = mxGraphMlConstants.ENDPOINT;
    +				break;
    +			}
    +			case ALL:
    +			{
    +				val = mxGraphMlConstants.ALL;
    +				break;
    +			}
    +		}
    +
    +		return val;
    +	}
    +
    +	/**
    +	 * Converts a String value in its corresponding enum value for the
    +	 * keyType attribute.
    +	 * @param value Value in String representation.
    +	 * @return Returns the value in its enum representation.
    +	 */
    +	public keyTypeValues enumTypeValue(String value)
    +	{
    +		keyTypeValues enumVal = keyTypeValues.STRING;
    +		
    +		if (value.equals("boolean"))
    +		{
    +			enumVal = keyTypeValues.BOOLEAN;
    +		}
    +		else if (value.equals("double"))
    +		{
    +			enumVal = keyTypeValues.DOUBLE;
    +		}
    +		else if (value.equals("float"))
    +		{
    +			enumVal = keyTypeValues.FLOAT;
    +		}
    +		else if (value.equals("int"))
    +		{
    +			enumVal = keyTypeValues.INT;
    +		}
    +		else if (value.equals("long"))
    +		{
    +			enumVal = keyTypeValues.LONG;
    +		}
    +		else if (value.equals("string"))
    +		{
    +			enumVal = keyTypeValues.STRING;
    +		}
    +		
    +		return enumVal;
    +	}
    +
    +	/**
    +	 * Converts a enum value in its corresponding string value for the
    +	 * keyType attribute.
    +	 * @param value Value in enum representation.
    +	 * @return Returns the value in its String representation.
    +	 */
    +	public String stringTypeValue(keyTypeValues value)
    +	{
    +		String val = "string";
    +		
    +		switch (value)
    +		{
    +			case BOOLEAN:
    +			{
    +				val = "boolean";
    +				break;
    +			}
    +			case DOUBLE:
    +			{
    +				val = "double";
    +				break;
    +			}
    +			case FLOAT:
    +			{
    +				val = "float";
    +				break;
    +			}
    +			case INT:
    +			{
    +				val = "int";
    +				break;
    +			}
    +			case LONG:
    +			{
    +				val = "long";
    +				break;
    +			}
    +			case STRING:
    +			{
    +				val = "string";
    +				break;
    +			}
    +		}
    +
    +		return val;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlKeyManager.java b/java/src/com/mxgraph/io/graphml/mxGraphMlKeyManager.java
    new file mode 100644
    index 000000000..f9a6b79fc
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlKeyManager.java
    @@ -0,0 +1,79 @@
    +/**
    + * $Id: mxGraphMlKeyManager.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import java.util.HashMap;
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.NodeList;
    +
    +/**
    + * This is a singleton class that contains a map with the key elements of the
    + * document. The key elements are wrapped in instances of mxGmlKey and
    + * may to be access by ID.
    + */
    +public class mxGraphMlKeyManager
    +{
    +	/**
    +	 * Map with the key elements of the document.<br/>
    +	 * The key is the key's ID.
    +	 */
    +	private HashMap<String, mxGraphMlKey> keyMap = new HashMap<String, mxGraphMlKey>();
    +
    +	private static mxGraphMlKeyManager keyManager = null;
    +
    +	/**
    +	 * Singleton pattern requires private constructor.
    +	 */
    +	private mxGraphMlKeyManager()
    +	{
    +	}
    +
    +	/**
    +	 * Returns the instance of mxGmlKeyManager.
    +	 * If no instance has been created until the moment, a new instance is
    +	 * returned.
    +	 * This method don't load the map.
    +	 * @return An instance of mxGmlKeyManager.
    +	 */
    +	public static mxGraphMlKeyManager getInstance()
    +	{
    +		if (keyManager == null)
    +		{
    +			keyManager = new mxGraphMlKeyManager();
    +		}
    +		return keyManager;
    +	}
    +
    +	/**
    +	 * Load the map with the key elements in the document.<br/>
    +	 * The keys are wrapped for instances of mxGmlKey.
    +	 * @param doc Document with the keys.
    +	 */
    +	public void initialise(Document doc)
    +	{
    +		NodeList gmlKeys = doc.getElementsByTagName(mxGraphMlConstants.KEY);
    +
    +		int keyLength = gmlKeys.getLength();
    +
    +		for (int i = 0; i < keyLength; i++)
    +		{
    +			Element key = (Element) gmlKeys.item(i);
    +			String keyId = key.getAttribute(mxGraphMlConstants.ID);
    +			mxGraphMlKey keyElement = new mxGraphMlKey(key);
    +			keyMap.put(keyId, keyElement);
    +		}
    +	}
    +
    +	public HashMap<String, mxGraphMlKey> getKeyMap()
    +	{
    +		return keyMap;
    +	}
    +
    +	public void setKeyMap(HashMap<String, mxGraphMlKey> keyMap)
    +	{
    +		this.keyMap = keyMap;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlNode.java b/java/src/com/mxgraph/io/graphml/mxGraphMlNode.java
    new file mode 100644
    index 000000000..922a4a849
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlNode.java
    @@ -0,0 +1,159 @@
    +/**
    + * $Id: mxGraphMlNode.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import java.util.ArrayList;
    +import java.util.HashMap;
    +import java.util.List;
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +/**
    + * Represents a Data element in the GML Structure.
    + */
    +public class mxGraphMlNode
    +{
    +	private String nodeId;
    +
    +	private mxGraphMlData nodeData;
    +
    +	private List<mxGraphMlGraph> nodeGraphList = new ArrayList<mxGraphMlGraph>();
    +
    +	private HashMap<String, mxGraphMlData> nodeDataMap = new HashMap<String, mxGraphMlData>();
    +
    +	private HashMap<String, mxGraphMlPort> nodePortMap = new HashMap<String, mxGraphMlPort>();
    +
    +	/**
    +	 * Construct a node with Id and one data element
    +	 * @param nodeId Node`s ID
    +	 * @param nodeData Gml Data.
    +	 */
    +	public mxGraphMlNode(String nodeId, mxGraphMlData nodeData)
    +	{
    +		this.nodeId = nodeId;
    +		this.nodeData = nodeData;
    +	}
    +
    +	/**
    +	 * Construct a Node from a xml Node Element.
    +	 * @param nodeElement Xml Node Element.
    +	 */
    +	public mxGraphMlNode(Element nodeElement)
    +	{
    +		this.nodeId = nodeElement.getAttribute(mxGraphMlConstants.ID);
    +
    +		//Add data elements
    +		List<Element> dataList = mxGraphMlUtils.childsTags(nodeElement,
    +				mxGraphMlConstants.DATA);
    +
    +		for (Element dataElem : dataList)
    +		{
    +			mxGraphMlData data = new mxGraphMlData(dataElem);
    +			String key = data.getDataKey();
    +			nodeDataMap.put(key, data);
    +		}
    +
    +		//Add graph elements
    +		List<Element> graphList = mxGraphMlUtils.childsTags(nodeElement,
    +				mxGraphMlConstants.GRAPH);
    +
    +		for (Element graphElem : graphList)
    +		{
    +			mxGraphMlGraph graph = new mxGraphMlGraph(graphElem);
    +			nodeGraphList.add(graph);
    +		}
    +
    +		//Add port elements
    +		List<Element> portList = mxGraphMlUtils.childsTags(nodeElement,
    +				mxGraphMlConstants.PORT);
    +
    +		for (Element portElem : portList)
    +		{
    +			mxGraphMlPort port = new mxGraphMlPort(portElem);
    +			String name = port.getName();
    +			nodePortMap.put(name, port);
    +		}
    +	}
    +
    +	public String getNodeId()
    +	{
    +		return nodeId;
    +	}
    +
    +	public void setNodeId(String nodeId)
    +	{
    +		this.nodeId = nodeId;
    +	}
    +
    +	public HashMap<String, mxGraphMlData> getNodeDataMap()
    +	{
    +		return nodeDataMap;
    +	}
    +
    +	public void setNodeDataMap(HashMap<String, mxGraphMlData> nodeDataMap)
    +	{
    +		this.nodeDataMap = nodeDataMap;
    +	}
    +
    +	public List<mxGraphMlGraph> getNodeGraph()
    +	{
    +		return nodeGraphList;
    +	}
    +
    +	public void setNodeGraph(List<mxGraphMlGraph> nodeGraph)
    +	{
    +		this.nodeGraphList = nodeGraph;
    +	}
    +
    +	public HashMap<String, mxGraphMlPort> getNodePort()
    +	{
    +		return nodePortMap;
    +	}
    +
    +	public void setNodePort(HashMap<String, mxGraphMlPort> nodePort)
    +	{
    +		this.nodePortMap = nodePort;
    +	}
    +
    +	/**
    +	 * Generates a Key Element from this class.
    +	 * @param document Document where the key Element will be inserted.
    +	 * @return Returns the generated Elements.
    +	 */
    +	public Element generateElement(Document document)
    +	{
    +		Element node = document.createElement(mxGraphMlConstants.NODE);
    +
    +		node.setAttribute(mxGraphMlConstants.ID, nodeId);
    +
    +		Element dataElement = nodeData.generateNodeElement(document);
    +		node.appendChild(dataElement);
    +
    +		for (mxGraphMlPort port : nodePortMap.values())
    +		{
    +			Element portElement = port.generateElement(document);
    +			node.appendChild(portElement);
    +		}
    +
    +		for (mxGraphMlGraph graph : nodeGraphList)
    +		{
    +			Element graphElement = graph.generateElement(document);
    +			node.appendChild(graphElement);
    +		}
    +
    +		return node;
    +	}
    +
    +	public mxGraphMlData getNodeData()
    +	{
    +		return nodeData;
    +	}
    +
    +	public void setNodeData(mxGraphMlData nodeData)
    +	{
    +		this.nodeData = nodeData;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlPort.java b/java/src/com/mxgraph/io/graphml/mxGraphMlPort.java
    new file mode 100644
    index 000000000..5de8bb010
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlPort.java
    @@ -0,0 +1,89 @@
    +/**
    + * $Id: mxGraphMlPort.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import java.util.HashMap;
    +import java.util.List;
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +/**
    + * Represents a Port element in the GML Structure.
    + */
    +public class mxGraphMlPort
    +{
    +	private String name;
    +
    +	private HashMap<String, mxGraphMlData> portDataMap = new HashMap<String, mxGraphMlData>();
    +
    +	/**
    +	 * Construct a Port with name.
    +	 * @param name Port Name
    +	 */
    +	public mxGraphMlPort(String name)
    +	{
    +		this.name = name;
    +	}
    +
    +	/**
    +	 * Construct a Port from a xml port Element.
    +	 * @param portElement Xml port Element.
    +	 */
    +	public mxGraphMlPort(Element portElement)
    +	{
    +		this.name = portElement.getAttribute(mxGraphMlConstants.PORT_NAME);
    +
    +		//Add data elements
    +		List<Element> dataList = mxGraphMlUtils.childsTags(portElement,
    +				mxGraphMlConstants.DATA);
    +
    +		for (Element dataElem : dataList)
    +		{
    +			mxGraphMlData data = new mxGraphMlData(dataElem);
    +			String key = data.getDataKey();
    +			portDataMap.put(key, data);
    +		}
    +	}
    +
    +	public String getName()
    +	{
    +		return name;
    +	}
    +
    +	public void setName(String name)
    +	{
    +		this.name = name;
    +	}
    +
    +	public HashMap<String, mxGraphMlData> getPortDataMap()
    +	{
    +		return portDataMap;
    +	}
    +
    +	public void setPortDataMap(HashMap<String, mxGraphMlData> nodeDataMap)
    +	{
    +		this.portDataMap = nodeDataMap;
    +	}
    +
    +	/**
    +	 * Generates a Key Element from this class.
    +	 * @param document Document where the key Element will be inserted.
    +	 * @return Returns the generated Elements.
    +	 */
    +	public Element generateElement(Document document)
    +	{
    +		Element node = document.createElement(mxGraphMlConstants.PORT);
    +
    +		node.setAttribute(mxGraphMlConstants.PORT_NAME, name);
    +
    +		for (mxGraphMlData data : portDataMap.values())
    +		{
    +			Element dataElement = data.generateNodeElement(document);
    +			node.appendChild(dataElement);
    +		}
    +
    +		return node;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlShapeEdge.java b/java/src/com/mxgraph/io/graphml/mxGraphMlShapeEdge.java
    new file mode 100644
    index 000000000..b41e14104
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlShapeEdge.java
    @@ -0,0 +1,136 @@
    +/**
    + * $Id: mxGraphMlShapeEdge.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +/**
    + * This class represents the properties of a JGraph edge.
    + */
    +public class mxGraphMlShapeEdge
    +{
    +	private String text = "";
    +
    +	private String style = "";
    +
    +	private String edgeSource;
    +
    +	private String edgeTarget;
    +
    +	/**
    +	 * Construct a Shape Edge with text and style.
    +	 * @param text
    +	 * @param style
    +	 */
    +	public mxGraphMlShapeEdge(String text, String style)
    +	{
    +		this.text = text;
    +		this.style = style;
    +	}
    +
    +	/**
    +	 * Constructs a ShapeEdge from a xml shapeEdgeElement.
    +	 * @param shapeEdgeElement
    +	 */
    +	public mxGraphMlShapeEdge(Element shapeEdgeElement)
    +	{
    +		Element labelElement = mxGraphMlUtils.childsTag(shapeEdgeElement,
    +				mxGraphMlConstants.JGRAPH + mxGraphMlConstants.LABEL);
    +		
    +		if (labelElement != null)
    +		{
    +			this.text = labelElement.getAttribute(mxGraphMlConstants.TEXT);
    +		}
    +
    +		Element styleElement = mxGraphMlUtils.childsTag(shapeEdgeElement,
    +				mxGraphMlConstants.JGRAPH + mxGraphMlConstants.STYLE);
    +		
    +		if (styleElement != null)
    +		{
    +			this.style = styleElement.getAttribute(mxGraphMlConstants.PROPERTIES);
    +
    +		}
    +	}
    +
    +	/**
    +	 * Construct an empty Shape Edge Element.
    +	 */
    +	public mxGraphMlShapeEdge()
    +	{
    +	}
    +
    +	/**
    +	 * Generates a ShapeEdge Element from this class.
    +	 * @param document Document where the key Element will be inserted.
    +	 * @return Returns the generated Elements.
    +	 */
    +	public Element generateElement(Document document)
    +	{
    +		Element dataEdge = document.createElementNS(mxGraphMlConstants.JGRAPH_URL,
    +				mxGraphMlConstants.JGRAPH + mxGraphMlConstants.SHAPEEDGE);
    +
    +		if (!this.text.equals(""))
    +		{
    +			Element dataEdgeLabel = document.createElementNS(
    +					mxGraphMlConstants.JGRAPH_URL, mxGraphMlConstants.JGRAPH
    +							+ mxGraphMlConstants.LABEL);
    +			dataEdgeLabel.setAttribute(mxGraphMlConstants.TEXT, this.text);
    +			dataEdge.appendChild(dataEdgeLabel);
    +		}
    +		
    +		if (!this.style.equals(""))
    +		{
    +			Element dataEdgeStyle = document.createElementNS(
    +					mxGraphMlConstants.JGRAPH_URL, mxGraphMlConstants.JGRAPH
    +							+ mxGraphMlConstants.STYLE);
    +
    +			dataEdgeStyle.setAttribute(mxGraphMlConstants.PROPERTIES, this.style);
    +			dataEdge.appendChild(dataEdgeStyle);
    +		}
    +
    +		return dataEdge;
    +	}
    +
    +	public String getText()
    +	{
    +		return text;
    +	}
    +
    +	public void setText(String text)
    +	{
    +		this.text = text;
    +	}
    +
    +	public String getStyle()
    +	{
    +		return style;
    +	}
    +
    +	public void setStyle(String style)
    +	{
    +		this.style = style;
    +	}
    +
    +	public String getEdgeSource()
    +	{
    +		return edgeSource;
    +	}
    +
    +	public void setEdgeSource(String edgeSource)
    +	{
    +		this.edgeSource = edgeSource;
    +	}
    +
    +	public String getEdgeTarget()
    +	{
    +		return edgeTarget;
    +	}
    +
    +	public void setEdgeTarget(String edgeTarget)
    +	{
    +		this.edgeTarget = edgeTarget;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlShapeNode.java b/java/src/com/mxgraph/io/graphml/mxGraphMlShapeNode.java
    new file mode 100644
    index 000000000..4d461f649
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlShapeNode.java
    @@ -0,0 +1,184 @@
    +/**
    + * $Id: mxGraphMlShapeNode.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +public class mxGraphMlShapeNode
    +{
    +	private String dataHeight = "";
    +
    +	private String dataWidth = "";
    +
    +	private String dataX = "";
    +
    +	private String dataY = "";
    +
    +	private String dataLabel = "";
    +
    +	private String dataStyle = "";
    +
    +	/**
    +	 * Construct a shape Node with the given parameters
    +	 * @param dataHeight Node's Height
    +	 * @param dataWidth Node's Width
    +	 * @param dataX Node's X coordinate.
    +	 * @param dataY Node's Y coordinate.
    +	 * @param dataStyle Node's style.
    +	 */
    +	public mxGraphMlShapeNode(String dataHeight, String dataWidth, String dataX,
    +			String dataY, String dataStyle)
    +	{
    +		this.dataHeight = dataHeight;
    +		this.dataWidth = dataWidth;
    +		this.dataX = dataX;
    +		this.dataY = dataY;
    +		this.dataStyle = dataStyle;
    +	}
    +
    +	/**
    +	 * Construct an empty shape Node
    +	 */
    +	public mxGraphMlShapeNode()
    +	{
    +	}
    +
    +	/**
    +	 * Construct a Shape Node from a xml Shape Node Element.
    +	 * @param shapeNodeElement Xml Shape Node Element.
    +	 */
    +	public mxGraphMlShapeNode(Element shapeNodeElement)
    +	{
    +		//Defines Geometry
    +		Element geometryElement = mxGraphMlUtils.childsTag(shapeNodeElement,
    +				mxGraphMlConstants.JGRAPH + mxGraphMlConstants.GEOMETRY);
    +		this.dataHeight = geometryElement.getAttribute(mxGraphMlConstants.HEIGHT);
    +		this.dataWidth = geometryElement.getAttribute(mxGraphMlConstants.WIDTH);
    +		this.dataX = geometryElement.getAttribute(mxGraphMlConstants.X);
    +		this.dataY = geometryElement.getAttribute(mxGraphMlConstants.Y);
    +
    +		Element styleElement = mxGraphMlUtils.childsTag(shapeNodeElement,
    +				mxGraphMlConstants.JGRAPH + mxGraphMlConstants.STYLE);
    +		
    +		if (styleElement != null)
    +		{
    +			this.dataStyle = styleElement
    +					.getAttribute(mxGraphMlConstants.PROPERTIES);
    +		}
    +		//Defines Label
    +		Element labelElement = mxGraphMlUtils.childsTag(shapeNodeElement,
    +				mxGraphMlConstants.JGRAPH + mxGraphMlConstants.LABEL);
    +		
    +		if (labelElement != null)
    +		{
    +			this.dataLabel = labelElement.getAttribute(mxGraphMlConstants.TEXT);
    +		}
    +	}
    +
    +	/**
    +	 * Generates a Shape Node Element from this class.
    +	 * @param document Document where the key Element will be inserted.
    +	 * @return Returns the generated Elements.
    +	 */
    +	public Element generateElement(Document document)
    +	{
    +		Element dataShape = document.createElementNS(mxGraphMlConstants.JGRAPH_URL,
    +				mxGraphMlConstants.JGRAPH + mxGraphMlConstants.SHAPENODE);
    +
    +		Element dataShapeGeometry = document.createElementNS(
    +				mxGraphMlConstants.JGRAPH_URL, mxGraphMlConstants.JGRAPH
    +						+ mxGraphMlConstants.GEOMETRY);
    +		dataShapeGeometry.setAttribute(mxGraphMlConstants.HEIGHT, dataHeight);
    +		dataShapeGeometry.setAttribute(mxGraphMlConstants.WIDTH, dataWidth);
    +		dataShapeGeometry.setAttribute(mxGraphMlConstants.X, dataX);
    +		dataShapeGeometry.setAttribute(mxGraphMlConstants.Y, dataY);
    +
    +		dataShape.appendChild(dataShapeGeometry);
    +
    +		if (!this.dataStyle.equals(""))
    +		{
    +			Element dataShapeStyle = document.createElementNS(
    +					mxGraphMlConstants.JGRAPH_URL, mxGraphMlConstants.JGRAPH
    +							+ mxGraphMlConstants.STYLE);
    +			dataShapeStyle.setAttribute(mxGraphMlConstants.PROPERTIES, dataStyle);
    +			dataShape.appendChild(dataShapeStyle);
    +		}
    +
    +		//Sets Label
    +		if (!this.dataLabel.equals(""))
    +		{
    +
    +			Element dataShapeLabel = document.createElementNS(
    +					mxGraphMlConstants.JGRAPH_URL, mxGraphMlConstants.JGRAPH
    +							+ mxGraphMlConstants.LABEL);
    +			dataShapeLabel.setAttribute(mxGraphMlConstants.TEXT, dataLabel);
    +
    +			dataShape.appendChild(dataShapeLabel);
    +		}
    +		
    +		return dataShape;
    +	}
    +
    +	public String getDataHeight()
    +	{
    +		return dataHeight;
    +	}
    +
    +	public void setDataHeight(String dataHeight)
    +	{
    +		this.dataHeight = dataHeight;
    +	}
    +
    +	public String getDataWidth()
    +	{
    +		return dataWidth;
    +	}
    +
    +	public void setDataWidth(String dataWidth)
    +	{
    +		this.dataWidth = dataWidth;
    +	}
    +
    +	public String getDataX()
    +	{
    +		return dataX;
    +	}
    +
    +	public void setDataX(String dataX)
    +	{
    +		this.dataX = dataX;
    +	}
    +
    +	public String getDataY()
    +	{
    +		return dataY;
    +	}
    +
    +	public void setDataY(String dataY)
    +	{
    +		this.dataY = dataY;
    +	}
    +
    +	public String getDataLabel()
    +	{
    +		return dataLabel;
    +	}
    +
    +	public void setDataLabel(String dataLabel)
    +	{
    +		this.dataLabel = dataLabel;
    +	}
    +
    +	public String getDataStyle()
    +	{
    +		return dataStyle;
    +	}
    +
    +	public void setDataStyle(String dataStyle)
    +	{
    +		this.dataStyle = dataStyle;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/graphml/mxGraphMlUtils.java b/java/src/com/mxgraph/io/graphml/mxGraphMlUtils.java
    new file mode 100644
    index 000000000..b23ff4312
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/graphml/mxGraphMlUtils.java
    @@ -0,0 +1,253 @@
    +/**
    + * $Id: mxGraphMlUtils.java,v 1.1 2011-09-19 15:10:46 gaudenz Exp $
    + * Copyright (c) 2010 David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.io.graphml;
    +
    +import java.util.ArrayList;
    +import java.util.HashMap;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.Map;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +import org.w3c.dom.NodeList;
    +
    +/**
    + * This class implements several GML utility methods.
    + */
    +public class mxGraphMlUtils
    +{
    +	/**
    +	 * Checks if the NodeList has a Node with name = tag.
    +	 * @param nl NodeList
    +	 * @param tag Name of the node.
    +	 * @return Returns <code>true</code> if the Node List has a Node with name = tag.
    +	 */
    +	public static boolean nodeListHasTag(NodeList nl, String tag)
    +	{
    +		boolean has = false;
    +
    +		if (nl != null)
    +		{
    +			int length = nl.getLength();
    +
    +			for (int i = 0; (i < length) && !has; i++)
    +			{
    +				has = (nl.item(i)).getNodeName().equals(tag);
    +			}
    +		}
    +		
    +		return has;
    +	}
    +
    +	/**
    +	 * Returns the first Element that has name = tag in Node List.
    +	 * @param nl NodeList
    +	 * @param tag Name of the Element
    +	 * @return Element with name = 'tag'.
    +	 */
    +	public static Element nodeListTag(NodeList nl, String tag)
    +	{
    +		if (nl != null)
    +		{
    +			int length = nl.getLength();
    +			boolean has = false;
    +
    +			for (int i = 0; (i < length) && !has; i++)
    +			{
    +				has = (nl.item(i)).getNodeName().equals(tag);
    +
    +				if (has)
    +				{
    +					return (Element) nl.item(i);
    +				}
    +			}
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns a list with the elements included in the Node List that have name = tag.
    +	 * @param nl NodeList
    +	 * @param tag name of the Element.
    +	 * @return List with the indicated elements.
    +	 */
    +	public static List<Element> nodeListTags(NodeList nl, String tag)
    +	{
    +		ArrayList<Element> ret = new ArrayList<Element>();
    +
    +		if (nl != null)
    +		{
    +			int length = nl.getLength();
    +
    +			for (int i = 0; i < length; i++)
    +			{
    +				if (tag.equals((nl.item(i)).getNodeName()))
    +				{
    +					ret.add((Element) nl.item(i));
    +				}
    +			}
    +		}
    +		return ret;
    +	}
    +
    +	/**
    +	 * Checks if the childrens of element has a Node with name = tag.
    +	 * @param element Element
    +	 * @param tag Name of the node.
    +	 * @return Returns <code>true</code> if the childrens of element has a Node with name = tag.
    +	 */
    +	public static boolean childsHasTag(Element element, String tag)
    +	{
    +		NodeList nl = element.getChildNodes();
    +
    +		boolean has = false;
    +
    +		if (nl != null)
    +		{
    +			int length = nl.getLength();
    +
    +			for (int i = 0; (i < length) && !has; i++)
    +			{
    +				has = (nl.item(i)).getNodeName().equals(tag);
    +			}
    +		}
    +		return has;
    +	}
    +
    +	/**
    +	 * Returns the first Element that has name = tag in the childrens of element.
    +	 * @param element Element
    +	 * @param tag Name of the Element
    +	 * @return Element with name = 'tag'.
    +	 */
    +	public static Element childsTag(Element element, String tag)
    +	{
    +		NodeList nl = element.getChildNodes();
    +
    +		if (nl != null)
    +		{
    +			int length = nl.getLength();
    +			boolean has = false;
    +
    +			for (int i = 0; (i < length) && !has; i++)
    +			{
    +				has = (nl.item(i)).getNodeName().equals(tag);
    +
    +				if (has)
    +				{
    +					return (Element) nl.item(i);
    +				}
    +			}
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns a list with the elements included in the childrens of element
    +	 * that have name = tag.
    +	 * @param element Element
    +	 * @param tag name of the Element.
    +	 * @return List with the indicated elements.
    +	 */
    +	public static List<Element> childsTags(Element element, String tag)
    +	{
    +		NodeList nl = element.getChildNodes();
    +
    +		ArrayList<Element> ret = new ArrayList<Element>();
    +		
    +		if (nl != null)
    +		{
    +			int length = nl.getLength();
    +
    +			for (int i = 0; i < length; i++)
    +			{
    +				if (tag.equals((nl.item(i)).getNodeName()))
    +				{
    +					ret.add((Element) nl.item(i));
    +				}
    +			}
    +		}
    +		return ret;
    +	}
    +
    +	/**
    +	 * Copy a given NodeList into a List<Element>
    +	 * @param nodeList Node List.
    +	 * @return List with the elements of nodeList.
    +	 */
    +	public static List<Node> copyNodeList(NodeList nodeList)
    +	{
    +		ArrayList<Node> copy = new ArrayList<Node>();
    +		int length = nodeList.getLength();
    +
    +		for (int i = 0; i < length; i++)
    +		{
    +			copy.add((Node) nodeList.item(i));
    +		}
    +		
    +		return copy;
    +	}
    +
    +	/**
    +	 * Create a style map from a String with style definitions.
    +	 * @param style Definition of the style.
    +	 * @param asig Asignation simbol used in 'style'.
    +	 * @return Map with the style properties.
    +	 */
    +	public static HashMap<String, Object> getStyleMap(String style, String asig)
    +	{
    +		HashMap<String, Object> styleMap = new HashMap<String, Object>();
    +		String key = "";
    +		String value = "";
    +		int index = 0;
    +		
    +		if (!style.equals(""))
    +		{
    +			String[] entries = style.split(";");
    +
    +			for (String entry : entries)
    +			{
    +				index = entry.indexOf(asig);
    +				
    +				if (index == -1)
    +				{
    +					key = "";
    +					value = entry;
    +					styleMap.put(key, value);
    +				}
    +				else
    +				{
    +					key = entry.substring(0, index);
    +					value = entry.substring(index + 1);
    +					styleMap.put(key, value);
    +				}
    +			}
    +		}
    +		return styleMap;
    +	}
    +
    +	/**
    +	 * Returns the string that represents the content of a given style map.
    +	 * @param styleMap Map with the styles values
    +	 * @return string that represents the style.
    +	 */
    +	public static String getStyleString(Map<String, Object> styleMap,
    +			String asig)
    +	{
    +		String style = "";
    +		Iterator<Object> it = styleMap.values().iterator();
    +		Iterator<String> kit = styleMap.keySet().iterator();
    +
    +		while (kit.hasNext())
    +		{
    +			String key = kit.next();
    +			Object value = it.next();
    +			style = style + key + asig + value + ";";
    +		}
    +		return style;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/mxCellCodec.java b/java/src/com/mxgraph/io/mxCellCodec.java
    new file mode 100644
    index 000000000..ba8747745
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxCellCodec.java
    @@ -0,0 +1,232 @@
    +/**
    + * $Id: mxCellCodec.java,v 1.14 2011-07-07 10:12:24 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +package com.mxgraph.io;
    +
    +import java.util.Iterator;
    +import java.util.Map;
    +
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.model.mxCell;
    +
    +/**
    + * Codec for mxCells. This class is created and registered
    + * dynamically at load time and used implicitely via mxCodec
    + * and the mxCodecRegistry.
    + */
    +public class mxCellCodec extends mxObjectCodec
    +{
    +
    +	/**
    +	 * Constructs a new cell codec.
    +	 */
    +	public mxCellCodec()
    +	{
    +		this(new mxCell(), null, new String[] { "parent", "source", "target" },
    +				null);
    +	}
    +
    +	/**
    +	 * Constructs a new cell codec for the given template.
    +	 */
    +	public mxCellCodec(Object template)
    +	{
    +		this(template, null, null, null);
    +	}
    +
    +	/**
    +	 * Constructs a new cell codec for the given arguments.
    +	 */
    +	public mxCellCodec(Object template, String[] exclude, String[] idrefs,
    +			Map<String, String> mapping)
    +	{
    +		super(template, exclude, idrefs, mapping);
    +	}
    +
    +	/**
    +	 * Excludes user objects that are XML nodes.
    +	 */
    +	public boolean isExcluded(Object obj, String attr, Object value,
    +			boolean write)
    +	{
    +		return exclude.contains(attr)
    +				|| (write && attr.equals("value") && value instanceof Node && ((Node) value)
    +						.getNodeType() == Node.ELEMENT_NODE);
    +	}
    +
    +	/**
    +	 * Encodes an mxCell and wraps the XML up inside the
    +	 * XML of the user object (inversion).
    +	 */
    +	public Node afterEncode(mxCodec enc, Object obj, Node node)
    +	{
    +		if (obj instanceof mxCell)
    +		{
    +			mxCell cell = (mxCell) obj;
    +
    +			if (cell.getValue() instanceof Node)
    +			{
    +				// Wraps the graphical annotation up in the
    +				// user object (inversion) by putting the
    +				// result of the default encoding into
    +				// a clone of the user object (node type 1)
    +				// and returning this cloned user object.
    +				Element tmp = (Element) node;
    +				node = enc.getDocument().importNode((Node) cell.getValue(),
    +						true);
    +				node.appendChild(tmp);
    +
    +				// Moves the id attribute to the outermost
    +				// XML node, namely the node which denotes
    +				// the object boundaries in the file.
    +				String id = tmp.getAttribute("id");
    +				((Element) node).setAttribute("id", id);
    +				tmp.removeAttribute("id");
    +			}
    +		}
    +
    +		return node;
    +	}
    +
    +	/**
    +	 * Decodes an mxCell and uses the enclosing XML node as
    +	 * the user object for the cell (inversion).
    +	 */
    +	public Node beforeDecode(mxCodec dec, Node node, Object obj)
    +	{
    +		Element inner = (Element) node;
    +
    +		if (obj instanceof mxCell)
    +		{
    +			mxCell cell = (mxCell) obj;
    +			String classname = getName();
    +			String nodeName = node.getNodeName();
    +			
    +			// Handles aliased names
    +			if (!nodeName.equals(classname))
    +			{
    +				String tmp = mxCodecRegistry.aliases.get(nodeName);
    +				
    +				if (tmp != null)
    +				{
    +					nodeName = tmp;
    +				}
    +			}
    +
    +			if (!nodeName.equals(classname))
    +			{
    +				// Passes the inner graphical annotation node to the
    +				// object codec for further processing of the cell.
    +				Node tmp = inner.getElementsByTagName(classname).item(0);
    +
    +				if (tmp != null && tmp.getParentNode() == node)
    +				{
    +					inner = (Element) tmp;
    +
    +					// Removes annotation and whitespace from node
    +					Node tmp2 = tmp.getPreviousSibling();
    +
    +					while (tmp2 != null && tmp2.getNodeType() == Node.TEXT_NODE)
    +					{
    +						Node tmp3 = tmp2.getPreviousSibling();
    +
    +						if (tmp2.getTextContent().trim().length() == 0)
    +						{
    +							tmp2.getParentNode().removeChild(tmp2);
    +						}
    +
    +						tmp2 = tmp3;
    +					}
    +
    +					// Removes more whitespace
    +					tmp2 = tmp.getNextSibling();
    +
    +					while (tmp2 != null && tmp2.getNodeType() == Node.TEXT_NODE)
    +					{
    +						Node tmp3 = tmp2.getPreviousSibling();
    +
    +						if (tmp2.getTextContent().trim().length() == 0)
    +						{
    +							tmp2.getParentNode().removeChild(tmp2);
    +						}
    +
    +						tmp2 = tmp3;
    +					}
    +
    +					tmp.getParentNode().removeChild(tmp);
    +				}
    +				else
    +				{
    +					inner = null;
    +				}
    +
    +				// Creates the user object out of the XML node
    +				Element value = (Element) node.cloneNode(true);
    +				cell.setValue(value);
    +				String id = value.getAttribute("id");
    +
    +				if (id != null)
    +				{
    +					cell.setId(id);
    +					value.removeAttribute("id");
    +				}
    +			}
    +			else
    +			{
    +				cell.setId(((Element) node).getAttribute("id"));
    +			}
    +
    +			// Preprocesses and removes all Id-references
    +			// in order to use the correct encoder (this)
    +			// for the known references to cells (all).
    +			if (inner != null && idrefs != null)
    +			{
    +				Iterator<String> it = idrefs.iterator();
    +
    +				while (it.hasNext())
    +				{
    +					String attr = it.next();
    +					String ref = inner.getAttribute(attr);
    +
    +					if (ref != null && ref.length() > 0)
    +					{
    +						inner.removeAttribute(attr);
    +						Object object = dec.objects.get(ref);
    +
    +						if (object == null)
    +						{
    +							object = dec.lookup(ref);
    +						}
    +
    +						if (object == null)
    +						{
    +							// Needs to decode forward reference
    +							Node element = dec.getElementById(ref);
    +
    +							if (element != null)
    +							{
    +								mxObjectCodec decoder = mxCodecRegistry
    +										.getCodec(element.getNodeName());
    +
    +								if (decoder == null)
    +								{
    +									decoder = this;
    +								}
    +
    +								object = decoder.decode(dec, element);
    +							}
    +						}
    +
    +						setFieldValue(obj, attr, object);
    +					}
    +				}
    +			}
    +		}
    +
    +		return inner;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/mxChildChangeCodec.java b/java/src/com/mxgraph/io/mxChildChangeCodec.java
    new file mode 100644
    index 000000000..51f4b07a5
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxChildChangeCodec.java
    @@ -0,0 +1,167 @@
    +/**
    + * $Id: mxChildChangeCodec.java,v 1.2 2010-09-15 11:57:07 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +package com.mxgraph.io;
    +
    +import java.util.Map;
    +
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.model.mxGraphModel.mxChildChange;
    +import com.mxgraph.model.mxICell;
    +
    +/**
    + * Codec for mxChildChanges. This class is created and registered
    + * dynamically at load time and used implicitely via mxCodec
    + * and the mxCodecRegistry.
    + */
    +public class mxChildChangeCodec extends mxObjectCodec
    +{
    +
    +	/**
    +	 * Constructs a new model codec.
    +	 */
    +	public mxChildChangeCodec()
    +	{
    +		this(new mxChildChange(), new String[] { "model", "child",
    +				"previousIndex" }, new String[] { "parent", "previous" }, null);
    +	}
    +
    +	/**
    +	 * Constructs a new model codec for the given arguments.
    +	 */
    +	public mxChildChangeCodec(Object template, String[] exclude,
    +			String[] idrefs, Map<String, String> mapping)
    +	{
    +		super(template, exclude, idrefs, mapping);
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.io.mxObjectCodec#isReference(java.lang.Object, java.lang.String, java.lang.Object, boolean)
    +	 */
    +	@Override
    +	public boolean isReference(Object obj, String attr, Object value,
    +			boolean isWrite)
    +	{
    +		if (attr.equals("child") && obj instanceof mxChildChange
    +				&& (((mxChildChange) obj).getPrevious() != null || !isWrite))
    +		{
    +			return true;
    +		}
    +
    +		return idrefs.contains(attr);
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.io.mxObjectCodec#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)
    +	 */
    +	@Override
    +	public Node afterEncode(mxCodec enc, Object obj, Node node)
    +	{
    +		if (obj instanceof mxChildChange)
    +		{
    +			mxChildChange change = (mxChildChange) obj;
    +			Object child = change.getChild();
    +
    +			if (isReference(obj, "child", child, true))
    +			{
    +				// Encodes as reference (id)
    +				mxCodec.setAttribute(node, "child", enc.getId(child));
    +			}
    +			else
    +			{
    +				// At this point, the encoder is no longer able to know which cells
    +				// are new, so we have to encode the complete cell hierarchy and
    +				// ignore the ones that are already there at decoding time. Note:
    +				// This can only be resolved by moving the notify event into the
    +				// execute of the edit.
    +				enc.encodeCell((mxICell) child, node, true);
    +			}
    +		}
    +
    +		return node;
    +	}
    +
    +	/**
    +	 * Reads the cells into the graph model. All cells are children of the root
    +	 * element in the node.
    +	 */
    +	public Node beforeDecode(mxCodec dec, Node node, Object into)
    +	{
    +		if (into instanceof mxChildChange)
    +		{
    +			mxChildChange change = (mxChildChange) into;
    +
    +			if (node.getFirstChild() != null
    +					&& node.getFirstChild().getNodeType() == Node.ELEMENT_NODE)
    +			{
    +				// Makes sure the original node isn't modified
    +				node = node.cloneNode(true);
    +
    +				Node tmp = node.getFirstChild();
    +				change.setChild(dec.decodeCell(tmp, false));
    +
    +				Node tmp2 = tmp.getNextSibling();
    +				tmp.getParentNode().removeChild(tmp);
    +				tmp = tmp2;
    +
    +				while (tmp != null)
    +				{
    +					tmp2 = tmp.getNextSibling();
    +
    +					if (tmp.getNodeType() == Node.ELEMENT_NODE)
    +					{
    +						// Ignores all existing cells because those do not need
    +						// to be re-inserted into the model. Since the encoded
    +						// version of these cells contains the new parent, this
    +						// would leave to an inconsistent state on the model
    +						// (ie. a parent change without a call to
    +						// parentForCellChanged).
    +						String id = ((Element) tmp).getAttribute("id");
    +
    +						if (dec.lookup(id) == null)
    +						{
    +							dec.decodeCell(tmp, true);
    +						}
    +					}
    +
    +					tmp.getParentNode().removeChild(tmp);
    +					tmp = tmp2;
    +				}
    +			}
    +			else
    +			{
    +				String childRef = ((Element) node).getAttribute("child");
    +				change.setChild((mxICell) dec.getObject(childRef));
    +			}
    +		}
    +
    +		return node;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.io.mxObjectCodec#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)
    +	 */
    +	@Override
    +	public Object afterDecode(mxCodec dec, Node node, Object obj)
    +	{
    +		if (obj instanceof mxChildChange)
    +		{
    +			mxChildChange change = (mxChildChange) obj;
    +
    +			// Cells are encoded here after a complete transaction so the previous
    +			// parent must be restored on the cell for the case where the cell was
    +			// added. This is needed for the local model to identify the cell as a
    +			// new cell and register the ID.
    +			((mxICell) change.getChild()).setParent((mxICell) change
    +					.getPrevious());
    +			change.setPrevious(change.getParent());
    +			change.setPreviousIndex(change.getIndex());
    +		}
    +
    +		return obj;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/mxCodec.java b/java/src/com/mxgraph/io/mxCodec.java
    new file mode 100644
    index 000000000..a77b84c19
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxCodec.java
    @@ -0,0 +1,478 @@
    +/**
    + * $Id: mxCodec.java,v 1.32 2012-01-13 13:06:32 david Exp $
    + * Copyright (c) 2012, JGraph Ltd
    + */
    +package com.mxgraph.io;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxCellPath;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.util.mxDomUtils;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * XML codec for Java object graphs. In order to resolve forward references
    + * when reading files the XML document that contains the data must be passed
    + * to the constructor.
    + */
    +public class mxCodec
    +{
    +
    +	/**
    +	 * Holds the owner document of the codec.
    +	 */
    +	protected Document document;
    +
    +	/**
    +	 * Maps from IDs to objects.
    +	 */
    +	protected Map<String, Object> objects = new Hashtable<String, Object>();
    +
    +	/**
    +	 * Specifies if default values should be encoded. Default is false.
    +	 */
    +	protected boolean encodeDefaults = false;
    +
    +	/**
    +	 * Constructs an XML encoder/decoder with a new owner document.
    +	 */
    +	public mxCodec()
    +	{
    +		this(mxDomUtils.createDocument());
    +	}
    +
    +	/**
    +	 * Constructs an XML encoder/decoder for the specified owner document.
    +	 * 
    +	 * @param document Optional XML document that contains the data. If no document
    +	 * is specified then a new document is created using mxUtils.createDocument
    +	 */
    +	public mxCodec(Document document)
    +	{
    +		if (document == null)
    +		{
    +			document = mxDomUtils.createDocument();
    +		}
    +
    +		this.document = document;
    +	}
    +
    +	/**
    +	 * Returns the owner document of the codec.
    +	 * 
    +	 * @return Returns the owner document.
    +	 */
    +	public Document getDocument()
    +	{
    +		return document;
    +	}
    +
    +	/**
    +	 * Sets the owner document of the codec.
    +	 */
    +	public void setDocument(Document value)
    +	{
    +		document = value;
    +	}
    +
    +	/**
    +	 * Returns if default values of member variables should be encoded.
    +	 */
    +	public boolean isEncodeDefaults()
    +	{
    +		return encodeDefaults;
    +	}
    +
    +	/**
    +	 * Sets if default values of member variables should be encoded.
    +	 */
    +	public void setEncodeDefaults(boolean encodeDefaults)
    +	{
    +		this.encodeDefaults = encodeDefaults;
    +	}
    +
    +	/**
    +	 * Returns the object lookup table.
    +	 */
    +	public Map<String, Object> getObjects()
    +	{
    +		return objects;
    +	}
    +
    +	/**
    +	 * Assoiates the given object with the given ID.
    +	 * 
    +	 * @param id ID for the object to be associated with.
    +	 * @param object Object to be associated with the ID.
    +	 * @return Returns the given object.
    +	 */
    +	public Object putObject(String id, Object object)
    +	{
    +		return objects.put(id, object);
    +	}
    +
    +	/**
    +	 * Returns the decoded object for the element with the specified ID in
    +	 * {@link #document}. If the object is not known then {@link #lookup(String)}
    +	 * is used to find an object. If no object is found, then the element with
    +	 * the respective ID from the document is parsed using {@link #decode(Node)}.
    +	 * 
    +	 * @param id ID of the object to be returned.
    +	 * @return Returns the object for the given ID.
    +	 */
    +	public Object getObject(String id)
    +	{
    +		Object obj = null;
    +
    +		if (id != null)
    +		{
    +			obj = objects.get(id);
    +
    +			if (obj == null)
    +			{
    +				obj = lookup(id);
    +
    +				if (obj == null)
    +				{
    +					Node node = getElementById(id);
    +
    +					if (node != null)
    +					{
    +						obj = decode(node);
    +					}
    +				}
    +			}
    +		}
    +
    +		return obj;
    +	}
    +
    +	/**
    +	 * Hook for subclassers to implement a custom lookup mechanism for cell IDs.
    +	 * This implementation always returns null.
    +	 * 
    +	 * @param id ID of the object to be returned.
    +	 * @return Returns the object for the given ID.
    +	 */
    +	public Object lookup(String id)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the element with the given ID from the document.
    +	 * 
    +	 * @param id ID of the element to be returned.
    +	 * @return Returns the element for the given ID.
    +	 */
    +	public Node getElementById(String id)
    +	{
    +		return getElementById(id, null);
    +	}
    +
    +	/**
    +	 * Returns the element with the given ID from document. The optional attr
    +	 * argument specifies the name of the ID attribute. Default is "id". The
    +	 * XPath expression used to find the element is //*[@attr='arg'] where attr
    +	 * is the name of the ID attribute and arg is the given id.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * id - String that contains the ID.
    +	 * attr - Optional string for the attributename. Default is id.
    +	 */
    +	public Node getElementById(String id, String attr)
    +	{
    +		if (attr == null)
    +		{
    +			attr = "id";
    +		}
    +
    +		String expr = "//*[@" + attr + "='" + id + "']";
    +
    +		return mxUtils.selectSingleNode(document, expr);
    +	}
    +
    +	/**
    +	 * Returns the ID of the specified object. This implementation calls
    +	 * reference first and if that returns null handles the object as an
    +	 * mxCell by returning their IDs using mxCell.getId. If no ID exists for
    +	 * the given cell, then an on-the-fly ID is generated using
    +	 * mxCellPath.create.
    +	 * 
    +	 * @param obj Object to return the ID for.
    +	 * @return Returns the ID for the given object.
    +	 */
    +	public String getId(Object obj)
    +	{
    +		String id = null;
    +
    +		if (obj != null)
    +		{
    +			id = reference(obj);
    +
    +			if (id == null && obj instanceof mxICell)
    +			{
    +				id = ((mxICell) obj).getId();
    +
    +				if (id == null)
    +				{
    +					// Uses an on-the-fly Id
    +					id = mxCellPath.create((mxICell) obj);
    +
    +					if (id.length() == 0)
    +					{
    +						id = "root";
    +					}
    +				}
    +			}
    +		}
    +
    +		return id;
    +	}
    +
    +	/**
    +	 * Hook for subclassers to implement a custom method for retrieving IDs from
    +	 * objects. This implementation always returns null.
    +	 * 
    +	 * @param obj Object whose ID should be returned.
    +	 * @return Returns the ID for the given object.
    +	 */
    +	public String reference(Object obj)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Encodes the specified object and returns the resulting XML node.
    +	 * 
    +	 * @param obj Object to be encoded.
    +	 * @return Returns an XML node that represents the given object.
    +	 */
    +	public Node encode(Object obj)
    +	{
    +		Node node = null;
    +
    +		if (obj != null)
    +		{
    +			String name = mxCodecRegistry.getName(obj);
    +			mxObjectCodec enc = mxCodecRegistry.getCodec(name);
    +
    +			if (enc != null)
    +			{
    +				node = enc.encode(this, obj);
    +			}
    +			else
    +			{
    +				if (obj instanceof Node)
    +				{
    +					node = ((Node) obj).cloneNode(true);
    +				}
    +				else
    +				{
    +					System.err.println("No codec for " + name);
    +				}
    +			}
    +		}
    +
    +		return node;
    +	}
    +
    +	/**
    +	 * Decodes the given XML node using {@link #decode(Node, Object)}.
    +	 * 
    +	 * @param node XML node to be decoded.
    +	 * @return Returns an object that represents the given node.
    +	 */
    +	public Object decode(Node node)
    +	{
    +		return decode(node, null);
    +	}
    +
    +	/**
    +	 * Decodes the given XML node. The optional "into" argument specifies an
    +	 * existing object to be used. If no object is given, then a new
    +	 * instance is created using the constructor from the codec.
    +	 * 
    +	 * The function returns the passed in object or the new instance if no
    +	 * object was given.
    +	 * 
    +	 * @param node XML node to be decoded.
    +	 * @param into Optional object to be decodec into.
    +	 * @return Returns an object that represents the given node.
    +	 */
    +	public Object decode(Node node, Object into)
    +	{
    +		Object obj = null;
    +
    +		if (node != null && node.getNodeType() == Node.ELEMENT_NODE)
    +		{
    +			mxObjectCodec codec = mxCodecRegistry.getCodec(node.getNodeName());
    +
    +			try
    +			{
    +				if (codec != null)
    +				{
    +					obj = codec.decode(this, node, into);
    +				}
    +				else
    +				{
    +					obj = node.cloneNode(true);
    +					((Element) obj).removeAttribute("as");
    +				}
    +			}
    +			catch (Exception e)
    +			{
    +				System.err.println("Cannot decode " + node.getNodeName() + ": "
    +						+ e.getMessage());
    +				e.printStackTrace();
    +			}
    +		}
    +
    +		return obj;
    +	}
    +
    +	/**
    +	 * Encoding of cell hierarchies is built-into the core, but is a
    +	 * higher-level function that needs to be explicitely used by the
    +	 * respective object encoders (eg. mxModelCodec, mxChildChangeCodec
    +	 * and mxRootChangeCodec). This implementation writes the given cell
    +	 * and its children as a (flat) sequence into the given node. The
    +	 * children are not encoded if the optional includeChildren is false.
    +	 * The function is in charge of adding the result into the given node
    +	 * and has no return value.
    +	 * 
    +	 * @param cell mxCell to be encoded.
    +	 * @param node Parent XML node to add the encoded cell into.
    +	 * @param includeChildren Boolean indicating if the method
    +	 * should include all descendents.
    +	 */
    +	public void encodeCell(mxICell cell, Node node, boolean includeChildren)
    +	{
    +		node.appendChild(encode(cell));
    +
    +		if (includeChildren)
    +		{
    +			int childCount = cell.getChildCount();
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				encodeCell(cell.getChildAt(i), node, includeChildren);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Decodes cells that have been encoded using inversion, ie. where the
    +	 * user object is the enclosing node in the XML, and restores the group
    +	 * and graph structure in the cells. Returns a new <mxCell> instance
    +	 * that represents the given node.
    +	 * 
    +	 * @param node XML node that contains the cell data.
    +	 * @param restoreStructures Boolean indicating whether the graph
    +	 * structure should be restored by calling insert and insertEdge on the
    +	 * parent and terminals, respectively.
    +	 * @return Graph cell that represents the given node.
    +	 */
    +	public mxICell decodeCell(Node node, boolean restoreStructures)
    +	{
    +		mxICell cell = null;
    +
    +		if (node != null && node.getNodeType() == Node.ELEMENT_NODE)
    +		{
    +			// Tries to find a codec for the given node name. If that does
    +			// not return a codec then the node is the user object (an XML node
    +			// that contains the mxCell, aka inversion).
    +			mxObjectCodec decoder = mxCodecRegistry
    +					.getCodec(node.getNodeName());
    +
    +			// Tries to find the codec for the cell inside the user object.
    +			// This assumes all node names inside the user object are either
    +			// not registered or they correspond to a class for cells.
    +			if (!(decoder instanceof mxCellCodec))
    +			{
    +				Node child = node.getFirstChild();
    +
    +				while (child != null && !(decoder instanceof mxCellCodec))
    +				{
    +					decoder = mxCodecRegistry.getCodec(child.getNodeName());
    +					child = child.getNextSibling();
    +				}
    +
    +				String name = mxCell.class.getSimpleName();
    +				decoder = mxCodecRegistry.getCodec(name);
    +			}
    +
    +			if (!(decoder instanceof mxCellCodec))
    +			{
    +				String name = mxCell.class.getSimpleName();
    +				decoder = mxCodecRegistry.getCodec(name);
    +			}
    +
    +			cell = (mxICell) decoder.decode(this, node);
    +
    +			if (restoreStructures)
    +			{
    +				insertIntoGraph(cell);
    +			}
    +		}
    +
    +		return cell;
    +	}
    +	
    +	/**
    +	 * Inserts the given cell into its parent and terminal cells.
    +	 */
    +	public void insertIntoGraph(mxICell cell)
    +	{
    +		mxICell parent = cell.getParent();
    +		mxICell source = cell.getTerminal(true);
    +		mxICell target = cell.getTerminal(false);
    +
    +		// Fixes possible inconsistencies during insert into graph
    +		cell.setTerminal(null, false);
    +		cell.setTerminal(null, true);
    +		cell.setParent(null);
    +		
    +		if (parent != null)
    +		{
    +			parent.insert(cell);
    +		}
    +
    +		if (source != null)
    +		{
    +			source.insertEdge(cell, true);
    +		}
    +
    +		if (target != null)
    +		{
    +			target.insertEdge(cell, false);
    +		}
    +	}
    +
    +	/**
    +	 * Sets the attribute on the specified node to value. This is a
    +	 * helper method that makes sure the attribute and value arguments
    +	 * are not null.
    +	 *
    +	 * @param node XML node to set the attribute for.
    +	 * @param attribute Name of the attribute whose value should be set.
    +	 * @param value New value of the attribute.
    +	 */
    +	public static void setAttribute(Node node, String attribute, Object value)
    +	{
    +		if (node.getNodeType() == Node.ELEMENT_NODE && attribute != null
    +				&& value != null)
    +		{
    +			((Element) node).setAttribute(attribute, String.valueOf(value));
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/mxCodecRegistry.java b/java/src/com/mxgraph/io/mxCodecRegistry.java
    new file mode 100644
    index 000000000..f9cc04647
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxCodecRegistry.java
    @@ -0,0 +1,248 @@
    +/**
    + * $Id: mxCodecRegistry.java,v 1.24 2010-09-15 11:57:07 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.io;
    +
    +import java.util.ArrayList;
    +import java.util.Collection;
    +import java.util.Hashtable;
    +import java.util.List;
    +import java.util.Map;
    +
    +import com.mxgraph.model.mxGraphModel.mxCollapseChange;
    +import com.mxgraph.model.mxGraphModel.mxGeometryChange;
    +import com.mxgraph.model.mxGraphModel.mxStyleChange;
    +import com.mxgraph.model.mxGraphModel.mxValueChange;
    +import com.mxgraph.model.mxGraphModel.mxVisibleChange;
    +
    +/**
    + * Singleton class that acts as a global registry for codecs. See
    + * {@link mxCodec} for an example.
    + */
    +public class mxCodecRegistry
    +{
    +
    +	/**
    +	 * Maps from constructor names to codecs.
    +	 */
    +	protected static Hashtable<String, mxObjectCodec> codecs = new Hashtable<String, mxObjectCodec>();
    +
    +	/**
    +	 * Maps from classnames to codecnames.
    +	 */
    +	protected static Hashtable<String, String> aliases = new Hashtable<String, String>();
    +
    +	/**
    +	 * Holds the list of known packages. Packages are used to prefix short
    +	 * class names (eg. mxCell) in XML markup.
    +	 */
    +	protected static List<String> packages = new ArrayList<String>();
    +
    +	// Registers the known codecs and package names
    +	static
    +	{
    +		addPackage("com.mxgraph");
    +		addPackage("com.mxgraph.util");
    +		addPackage("com.mxgraph.model");
    +		addPackage("com.mxgraph.view");
    +		addPackage("java.lang");
    +		addPackage("java.util");
    +
    +		register(new mxObjectCodec(new ArrayList<Object>()));
    +		register(new mxModelCodec());
    +		register(new mxCellCodec());
    +		register(new mxStylesheetCodec());
    +
    +		register(new mxRootChangeCodec());
    +		register(new mxChildChangeCodec());
    +		register(new mxTerminalChangeCodec());
    +		register(new mxGenericChangeCodec(new mxValueChange(), "value"));
    +		register(new mxGenericChangeCodec(new mxStyleChange(), "style"));
    +		register(new mxGenericChangeCodec(new mxGeometryChange(), "geometry"));
    +		register(new mxGenericChangeCodec(new mxCollapseChange(), "collapsed"));
    +		register(new mxGenericChangeCodec(new mxVisibleChange(), "visible"));
    +	}
    +
    +	/**
    +	 * Registers a new codec and associates the name of the template constructor
    +	 * in the codec with the codec object. Automatically creates an alias if the
    +	 * codename and the classname are not equal.
    +	 */
    +	public static mxObjectCodec register(mxObjectCodec codec)
    +	{
    +		if (codec != null)
    +		{
    +			String name = codec.getName();
    +			codecs.put(name, codec);
    +
    +			String classname = getName(codec.getTemplate());
    +
    +			if (!classname.equals(name))
    +			{
    +				addAlias(classname, name);
    +			}
    +		}
    +
    +		return codec;
    +	}
    +
    +	/**
    +	 * Adds an alias for mapping a classname to a codecname.
    +	 */
    +	public static void addAlias(String classname, String codecname)
    +	{
    +		aliases.put(classname, codecname);
    +	}
    +
    +	/**
    +	 * Returns a codec that handles the given object, which can be an object
    +	 * instance or an XML node.
    +	 * 
    +	 * @param name Java class name.
    +	 */
    +	public static mxObjectCodec getCodec(String name)
    +	{
    +		String tmp = aliases.get(name);
    +
    +		if (tmp != null)
    +		{
    +			name = tmp;
    +		}
    +
    +		mxObjectCodec codec = codecs.get(name);
    +
    +		// Registers a new default codec for the given name
    +		// if no codec has been previously defined.
    +		if (codec == null)
    +		{
    +			Object instance = getInstanceForName(name);
    +
    +			if (instance != null)
    +			{
    +				try
    +				{
    +					codec = new mxObjectCodec(instance);
    +					register(codec);
    +				}
    +				catch (Exception e)
    +				{
    +					// ignore
    +				}
    +			}
    +		}
    +
    +		return codec;
    +	}
    +
    +	/**
    +	 * Adds the given package name to the list of known package names.
    +	 * 
    +	 * @param packagename Name of the package to be added.
    +	 */
    +	public static void addPackage(String packagename)
    +	{
    +		packages.add(packagename);
    +	}
    +
    +	/**
    +	 * Creates and returns a new instance for the given class name.
    +	 * 
    +	 * @param name Name of the class to be instantiated.
    +	 * @return Returns a new instance of the given class.
    +	 */
    +	public static Object getInstanceForName(String name)
    +	{
    +		Class<?> clazz = getClassForName(name);
    +
    +		if (clazz != null)
    +		{
    +			if (clazz.isEnum())
    +			{
    +				// For an enum, use the first constant as the default instance
    +				return clazz.getEnumConstants()[0];
    +			}
    +			else
    +			{
    +				try
    +				{
    +					return clazz.newInstance();
    +				}
    +				catch (Exception e)
    +				{
    +					// ignore
    +				}
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns a class that corresponds to the given name.
    +	 * 
    +	 * @param name
    +	 * @return Returns the class for the given name.
    +	 */
    +	public static Class<?> getClassForName(String name)
    +	{
    +		try
    +		{
    +			return Class.forName(name);
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +
    +		for (int i = 0; i < packages.size(); i++)
    +		{
    +			try
    +			{
    +				String s = packages.get(i);
    +
    +				return Class.forName(s + "." + name);
    +			}
    +			catch (Exception e)
    +			{
    +				// ignore
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the name that identifies the codec associated
    +	 * with the given instance..
    +	 *
    +	 * The I/O system uses unqualified classnames, eg. for a
    +	 * <code>com.mxgraph.model.mxCell</code> this returns
    +	 * <code>mxCell</code>.
    +	 * 
    +	 * @param instance Instance whose node name should be returned.
    +	 * @return Returns a string that identifies the codec.
    +	 */
    +	public static String getName(Object instance)
    +	{
    +		Class<? extends Object> type = instance.getClass();
    +
    +		if (type.isArray() || Collection.class.isAssignableFrom(type)
    +				|| Map.class.isAssignableFrom(type))
    +		{
    +			return "Array";
    +		}
    +		else
    +		{
    +			if (packages.contains(type.getPackage().getName()))
    +			{
    +				return type.getSimpleName();
    +			}
    +			else
    +			{
    +				return type.getName();
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/mxGdCodec.java b/java/src/com/mxgraph/io/mxGdCodec.java
    new file mode 100644
    index 000000000..42dd2d37b
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxGdCodec.java
    @@ -0,0 +1,259 @@
    +/**
    + * $Id: mxGdCodec.java,v 1.1 2010-08-25 08:36:59 gaudenz Exp $
    + * Copyright (c) 2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.io;
    +
    +import com.mxgraph.io.gd.mxGdDocument;
    +import com.mxgraph.io.gd.mxGdEdge;
    +import com.mxgraph.io.gd.mxGdNode;
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxGraph;
    +import java.util.HashMap;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.Map;
    +
    +/**
    + * Parses a GD .txt file and imports it in the given graph.<br/>
    + * This class depends from the classes contained in
    + * com.mxgraph.io.gd.
    + */
    +public class mxGdCodec
    +{
    +	/**
    +	 * Map with the vertex cells added in the addNode method.
    +	 */
    +	private static HashMap<String, Object> cellsMap = new HashMap<String, Object>();
    +
    +	/**
    +	 * Returns the coordinates of the left top corner of the node.
    +	 * @param node Node
    +	 * @return mxPoint that represent the coordinates.
    +	 */
    +	private static mxPoint getOriginPoint(mxGdNode node)
    +	{
    +		mxPoint coord = node.getCoordinates();
    +		mxPoint dim = node.getDimentions();
    +
    +		double x = coord.getX() - dim.getX() / 2;
    +		double y = coord.getY() - dim.getY() / 2;
    +
    +		return new mxPoint(x, y);
    +	}
    +
    +	/**
    +	 * Adds a new vertex to the graph.
    +	 * @param graph Graph where the vertex is added.
    +	 * @param parent Parent of the vertex to add.
    +	 * @param node Node
    +	 * @return Returns the vertex added.
    +	 */
    +	private static mxCell addNode(mxGraph graph, Object parent, mxGdNode node)
    +	{
    +
    +		mxPoint cordenates = getOriginPoint(node);
    +		mxPoint dimentions = node.getDimentions();
    +
    +		//Set the node name as label.
    +		String label = node.getName();
    +
    +		//Set the node name as ID.
    +		String id = node.getName();
    +
    +		//Insert a new vertex in the graph
    +		mxCell v1 = (mxCell) graph.insertVertex(parent, id, label,
    +				cordenates.getX(), cordenates.getY(), dimentions.getX(),
    +				dimentions.getY());
    +
    +		cellsMap.put(node.getName(), v1);
    +
    +		return v1;
    +	}
    +
    +	/**
    +	 * Returns the string that represents the content of a given style map.
    +	 * @param styleMap Map with the styles values
    +	 * @return string that represents the style.
    +	 */
    +	private static String getStyleString(Map<String, Object> styleMap,
    +			String asig)
    +	{
    +		String style = "";
    +		Iterator<Object> it = styleMap.values().iterator();
    +		Iterator<String> kit = styleMap.keySet().iterator();
    +
    +		while (kit.hasNext())
    +		{
    +			String key = kit.next();
    +			Object value = it.next();
    +			style = style + key + asig + value + ";";
    +		}
    +		return style;
    +	}
    +
    +	/**
    +	 * Analizes a edge shape and returns a string with the style.
    +	 * @return style read from the edge shape.
    +	 */
    +	private static String getEdgeStyle()
    +	{
    +		Hashtable<String, Object> styleMap = new Hashtable<String, Object>();
    +
    +		//Defines Edge Style
    +		//Defines if line is rounding
    +		styleMap.put(mxConstants.STYLE_ROUNDED, false);
    +
    +		return getStyleString(styleMap, "=");
    +	}
    +
    +	/**
    +	 * Adds a new edge to the graph.
    +	 * @param graph Graph where the edge is added.
    +	 * @param parent Parent of the edge to add.
    +	 * @param node Node
    +	 * @return Returns the edge added.
    +	 */
    +	private static mxCell addEdge(mxGraph graph, Object parent, mxGdEdge edge)
    +	{
    +
    +		//Get source and target vertex
    +		Object source = cellsMap.get(edge.getSourceName());
    +		Object target = cellsMap.get(edge.getTargetName());
    +
    +		//Defines style of the edge.
    +		String style = getEdgeStyle();
    +
    +		//Insert new edge and set constraints.
    +		mxCell e = (mxCell) graph.insertEdge(parent, null, "", source, target,
    +				style);
    +
    +		return e;
    +	}
    +
    +	/**
    +	 * Recieves a mxGDDocument document and parses it generating a new graph that is inserted in graph.
    +	 * @param document GD to be parsed
    +	 * @param graph Graph where the parsed graph is included.
    +	 */
    +	public static void decode(mxGdDocument document, mxGraph graph)
    +	{
    +
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +
    +		//Add nodes.
    +		List<mxGdNode> nodes = document.getNodes();
    +
    +		for (mxGdNode node : nodes)
    +		{
    +			addNode(graph, parent, node);
    +		}
    +
    +		//Add Edges.
    +		List<mxGdEdge> edges = document.getEdges();
    +
    +		for (mxGdEdge edge : edges)
    +		{
    +			addEdge(graph, parent, edge);
    +		}
    +
    +		graph.getModel().endUpdate();
    +
    +	}
    +
    +	/**
    +	 * Returns a GD document with the data of the vertexes and edges in the graph.
    +	 * @param document GD document where the elements are put.
    +	 * @param parent Parent cell of the vertexes and edges to be added.
    +	 * @param graph Graph that contains the vertexes and edges.
    +	 * @return Returns the document with the elements added.
    +	 */
    +	private static mxGdDocument encodeNodesAndEdges(mxGdDocument document,
    +			Object parent, mxGraph graph, mxPoint parentCoord)
    +	{
    +		Object[] vertexes = graph.getChildVertices(parent);
    +
    +		List<mxGdEdge> GDedges = document.getEdges();
    +		GDedges = encodeEdges(GDedges, parent, graph);
    +		document.setEdges(GDedges);
    +
    +		for (Object vertex : vertexes)
    +		{
    +			List<mxGdNode> GDnodes = document.getNodes();
    +
    +			mxCell v = (mxCell) vertex;
    +			mxGeometry geom = v.getGeometry();
    +
    +			String id = v.getId();
    +
    +			mxPoint coord = new mxPoint(parentCoord.getX() + geom.getCenterX(),
    +					parentCoord.getY() + geom.getCenterY());
    +			mxPoint dim = new mxPoint(geom.getWidth(), geom.getHeight());
    +
    +			mxPoint cornerCoord = new mxPoint(parentCoord.getX() + geom.getX(),
    +					parentCoord.getY() + geom.getY());
    +
    +			mxGdNode GDnode = new mxGdNode(id, coord, dim);
    +			GDnodes.add(GDnode);
    +			document.setNodes(GDnodes);
    +
    +			document = encodeNodesAndEdges(document, vertex, graph, cornerCoord);
    +		}
    +		return document;
    +	}
    +
    +	/**
    +	 * Returns a list of mxGDEdge with the data of the edges in the graph.
    +	 * @param GDedges List where the elements are put.
    +	 * @param parent Parent cell of the edges to be added.
    +	 * @param graph Graph that contains the edges.
    +	 * @return Returns the list GDedges with the elements added.
    +	 */
    +	private static List<mxGdEdge> encodeEdges(List<mxGdEdge> GDedges,
    +			Object parent, mxGraph graph)
    +	{
    +		Object[] edges = graph.getChildEdges(parent);
    +		for (Object edge : edges)
    +		{
    +			mxCell e = (mxCell) edge;
    +			mxCell source = (mxCell) e.getSource();
    +			mxCell target = (mxCell) e.getTarget();
    +
    +			String sourceName = "";
    +			String targetName = "";
    +
    +			sourceName = source.getId();
    +
    +			targetName = target.getId();
    +
    +			mxGdEdge GDedge = new mxGdEdge(sourceName, targetName);
    +
    +			GDedges.add(GDedge);
    +		}
    +		return GDedges;
    +	}
    +
    +	/**
    +	 * Generates a GD document with the cells in the graph.
    +	 * The actual implementation only uses the cells located in the first level.
    +	 * @param graph Graph with the cells.
    +	 * @return The GD document generated.
    +	 */
    +	public static mxGdDocument encode(mxGraph graph)
    +	{
    +		Object parent = graph.getDefaultParent();
    +		mxGdDocument document = new mxGdDocument();
    +
    +		//Adds Nodes and Edges.
    +		document = encodeNodesAndEdges(document, parent, graph, new mxPoint(0,
    +				0));
    +
    +		return document;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/mxGenericChangeCodec.java b/java/src/com/mxgraph/io/mxGenericChangeCodec.java
    new file mode 100644
    index 000000000..d4d0a5aab
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxGenericChangeCodec.java
    @@ -0,0 +1,61 @@
    +/**
    + * $Id: mxGenericChangeCodec.java,v 1.1 2010-09-15 09:11:19 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +package com.mxgraph.io;
    +
    +import java.util.Map;
    +
    +import org.w3c.dom.Node;
    +
    +/**
    + * Codec for mxChildChanges. This class is created and registered
    + * dynamically at load time and used implicitely via mxCodec
    + * and the mxCodecRegistry.
    + */
    +public class mxGenericChangeCodec extends mxObjectCodec
    +{
    +	/**
    +	 * 
    +	 */
    +	protected String fieldname;
    +
    +	/**
    +	 * Constructs a new model codec.
    +	 */
    +	public mxGenericChangeCodec(Object template, String fieldname)
    +	{
    +		this(template, new String[] { "model", "previous" },
    +				new String[] { "cell" }, null, fieldname);
    +	}
    +
    +	/**
    +	 * Constructs a new model codec for the given arguments.
    +	 */
    +	public mxGenericChangeCodec(Object template, String[] exclude,
    +			String[] idrefs, Map<String, String> mapping, String fieldname)
    +	{
    +		super(template, exclude, idrefs, mapping);
    +
    +		this.fieldname = fieldname;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.io.mxObjectCodec#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)
    +	 */
    +	@Override
    +	public Object afterDecode(mxCodec dec, Node node, Object obj)
    +	{
    +		Object cell = getFieldValue(obj, "cell");
    +
    +		if (cell instanceof Node)
    +		{
    +			setFieldValue(obj, "cell", dec.decodeCell((Node) cell, false));
    +		}
    +
    +		setFieldValue(obj, "previous", getFieldValue(obj, fieldname));
    +
    +		return obj;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/mxGraphMlCodec.java b/java/src/com/mxgraph/io/mxGraphMlCodec.java
    new file mode 100644
    index 000000000..b22e2f3c8
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxGraphMlCodec.java
    @@ -0,0 +1,378 @@
    +/**
    + * $Id: mxGraphMlCodec.java,v 1.2 2012-01-13 13:07:08 david Exp $
    + * Copyright (c) 2010-2012, JGraph Ltd
    + */
    +package com.mxgraph.io;
    +
    +import com.mxgraph.io.graphml.mxGraphMlConstants;
    +import com.mxgraph.io.graphml.mxGraphMlData;
    +import com.mxgraph.io.graphml.mxGraphMlEdge;
    +import com.mxgraph.io.graphml.mxGraphMlGraph;
    +import com.mxgraph.io.graphml.mxGraphMlKey;
    +import com.mxgraph.io.graphml.mxGraphMlKeyManager;
    +import com.mxgraph.io.graphml.mxGraphMlNode;
    +import com.mxgraph.io.graphml.mxGraphMlShapeEdge;
    +import com.mxgraph.io.graphml.mxGraphMlShapeNode;
    +import com.mxgraph.io.graphml.mxGraphMlUtils;
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxDomUtils;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxConnectionConstraint;
    +
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +import java.util.HashMap;
    +import java.util.List;
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.NodeList;
    +
    +/**
    + * Parses a GraphML .graphml file and imports it in the given graph.<br/>
    + * 
    + * See wikipedia.org/wiki/GraphML for more on GraphML.
    + * 
    + * This class depends from the classes contained in
    + * com.mxgraph.io.gmlImplements.
    + */
    +public class mxGraphMlCodec
    +{
    +	/**
    +	 * Receives a GraphMl document and parses it generating a new graph that is inserted in graph.
    +	 * @param document XML to be parsed
    +	 * @param graph Graph where the parsed graph is included.
    +	 */
    +	public static void decode(Document document, mxGraph graph)
    +	{
    +		Object parent = graph.getDefaultParent();
    +
    +		graph.getModel().beginUpdate();
    +
    +		// Initialise the key properties.
    +		mxGraphMlKeyManager.getInstance().initialise(document);
    +
    +		NodeList graphs = document.getElementsByTagName(mxGraphMlConstants.GRAPH);
    +		if (graphs.getLength() > 0)
    +		{
    +
    +			Element graphElement = (Element) graphs.item(0);
    +
    +			//Create the graph model.
    +			mxGraphMlGraph gmlGraph = new mxGraphMlGraph(graphElement);
    +
    +			gmlGraph.addGraph(graph, parent);
    +		}
    +
    +		graph.getModel().endUpdate();
    +		cleanMaps();
    +	}
    +
    +	/**
    +	 * Remove all the elements in the Defined Maps.
    +	 */
    +	private static void cleanMaps()
    +	{
    +		mxGraphMlKeyManager.getInstance().getKeyMap().clear();
    +	}
    +
    +	/**
    +	 * Generates a Xml document with the gmlGraph.
    +	 * @param gmlGraph Graph model.
    +	 * @return The Xml document generated.
    +	 */
    +	public static Document encodeXML(mxGraphMlGraph gmlGraph)
    +	{
    +		Document doc = mxDomUtils.createDocument();
    +
    +		Element graphml = doc.createElement(mxGraphMlConstants.GRAPHML);
    +
    +		graphml.setAttribute("xmlns", "http://graphml.graphdrawing.org/xmlns");
    +		graphml.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xsi",
    +				"http://www.w3.org/2001/XMLSchema-instance");
    +		graphml.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:jGraph",
    +				mxGraphMlConstants.JGRAPH_URL);
    +		graphml.setAttributeNS(
    +				"http://www.w3.org/2001/XMLSchema-instance",
    +				"xsi:schemaLocation",
    +				"http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd");
    +
    +		HashMap<String, mxGraphMlKey> keyMap = mxGraphMlKeyManager.getInstance()
    +				.getKeyMap();
    +
    +		for (mxGraphMlKey key : keyMap.values())
    +		{
    +			Element keyElement = key.generateElement(doc);
    +			graphml.appendChild(keyElement);
    +		}
    +
    +		Element graphE = gmlGraph.generateElement(doc);
    +		graphml.appendChild(graphE);
    +
    +		doc.appendChild(graphml);
    +		cleanMaps();
    +		return doc;
    +
    +	}
    +
    +	/**
    +	 * Generates a Xml document with the cells in the graph.
    +	 * @param graph Graph with the cells.
    +	 * @return The Xml document generated.
    +	 */
    +	public static Document encode(mxGraph graph)
    +	{
    +		mxGraphMlGraph gmlGraph = new mxGraphMlGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		createKeyElements();
    +
    +		gmlGraph = decodeGraph(graph, parent, gmlGraph);
    +		gmlGraph.setEdgedefault(mxGraphMlConstants.EDGE_DIRECTED);
    +
    +		Document document = encodeXML(gmlGraph);
    +
    +		return document;
    +	}
    +
    +	/**
    +	 * Creates the key elements for the encode.
    +	 */
    +	private static void createKeyElements()
    +	{
    +		HashMap<String, mxGraphMlKey> keyMap = mxGraphMlKeyManager.getInstance()
    +				.getKeyMap();
    +		mxGraphMlKey keyNode = new mxGraphMlKey(mxGraphMlConstants.KEY_NODE_ID,
    +				mxGraphMlKey.keyForValues.NODE, mxGraphMlConstants.KEY_NODE_NAME,
    +				mxGraphMlKey.keyTypeValues.STRING);
    +		keyMap.put(mxGraphMlConstants.KEY_NODE_ID, keyNode);
    +		mxGraphMlKey keyEdge = new mxGraphMlKey(mxGraphMlConstants.KEY_EDGE_ID,
    +				mxGraphMlKey.keyForValues.EDGE, mxGraphMlConstants.KEY_EDGE_NAME,
    +				mxGraphMlKey.keyTypeValues.STRING);
    +		keyMap.put(mxGraphMlConstants.KEY_EDGE_ID, keyEdge);
    +		mxGraphMlKeyManager.getInstance().setKeyMap(keyMap);
    +	}
    +
    +	/**
    +	 * Returns a Gml graph with the data of the vertexes and edges in the graph.
    +	 * @param gmlGraph Gml document where the elements are put.
    +	 * @param parent Parent cell of the vertexes and edges to be added.
    +	 * @param graph Graph that contains the vertexes and edges.
    +	 * @return Returns the document with the elements added.
    +	 */
    +	public static mxGraphMlGraph decodeGraph(mxGraph graph, Object parent,
    +			mxGraphMlGraph gmlGraph)
    +	{
    +		Object[] vertexes = graph.getChildVertices(parent);
    +		List<mxGraphMlEdge> gmlEdges = gmlGraph.getEdges();
    +		gmlEdges = encodeEdges(gmlEdges, parent, graph);
    +		gmlGraph.setEdges(gmlEdges);
    +
    +		for (Object vertex : vertexes)
    +		{
    +			List<mxGraphMlNode> Gmlnodes = gmlGraph.getNodes();
    +
    +			mxCell v = (mxCell) vertex;
    +			String id = v.getId();
    +
    +			mxGraphMlNode gmlNode = new mxGraphMlNode(id, null);
    +			addNodeData(gmlNode, v);
    +			Gmlnodes.add(gmlNode);
    +			gmlGraph.setNodes(Gmlnodes);
    +			mxGraphMlGraph gmlGraphx = new mxGraphMlGraph();
    +
    +			gmlGraphx = decodeGraph(graph, vertex, gmlGraphx);
    +
    +			if (!gmlGraphx.isEmpty())
    +			{
    +				List<mxGraphMlGraph> nodeGraphs = gmlNode.getNodeGraph();
    +				nodeGraphs.add(gmlGraphx);
    +				gmlNode.setNodeGraph(nodeGraphs);
    +			}
    +		}
    +
    +		return gmlGraph;
    +	}
    +
    +	/**
    +	 * Add the node data in the gmlNode.
    +	 * @param gmlNode Gml node where the data add.
    +	 * @param v mxCell where data are obtained.
    +	 */
    +	public static void addNodeData(mxGraphMlNode gmlNode, mxCell v)
    +	{
    +		mxGraphMlData data = new mxGraphMlData();
    +		mxGraphMlShapeNode dataShapeNode = new mxGraphMlShapeNode();
    +
    +		data.setDataKey(mxGraphMlConstants.KEY_NODE_ID);
    +		dataShapeNode
    +				.setDataHeight(String.valueOf(v.getGeometry().getHeight()));
    +		dataShapeNode.setDataWidth(String.valueOf(v.getGeometry().getWidth()));
    +		dataShapeNode.setDataX(String.valueOf(v.getGeometry().getX()));
    +		dataShapeNode.setDataY(String.valueOf(v.getGeometry().getY()));
    +		dataShapeNode.setDataLabel(v.getValue() != null ? v.getValue()
    +				.toString() : "");
    +		dataShapeNode.setDataStyle(v.getStyle() != null ? v.getStyle() : "");
    +
    +		data.setDataShapeNode(dataShapeNode);
    +		gmlNode.setNodeData(data);
    +	}
    +
    +	/**
    +	 * Add the edge data in the gmlEdge.
    +	 * @param gmlEdge Gml edge where the data add.
    +	 * @param v mxCell where data are obtained.
    +	 */
    +	public static void addEdgeData(mxGraphMlEdge gmlEdge, mxCell v)
    +	{
    +		mxGraphMlData data = new mxGraphMlData();
    +		mxGraphMlShapeEdge dataShapeEdge = new mxGraphMlShapeEdge();
    +
    +		data.setDataKey(mxGraphMlConstants.KEY_EDGE_ID);
    +		dataShapeEdge.setText(v.getValue() != null ? v.getValue().toString()
    +				: "");
    +		dataShapeEdge.setStyle(v.getStyle() != null ? v.getStyle() : "");
    +
    +		data.setDataShapeEdge(dataShapeEdge);
    +		gmlEdge.setEdgeData(data);
    +	}
    +
    +	/**
    +	 * Converts a connection point in the string representation of a port.
    +	 * The specials names North, NorthWest, NorthEast, East, West, South, SouthEast and SouthWest
    +	 * may be returned. Else, the values returned follows the pattern "double,double"
    +	 * where double must be in the range 0..1
    +	 * @param point mxPoint
    +	 * @return Name of the port
    +	 */
    +	private static String pointToPortString(mxPoint point)
    +	{
    +		String port = "";
    +		if (point != null)
    +		{
    +			double x = point.getX();
    +			double y = point.getY();
    +
    +			if (x == 0 && y == 0)
    +			{
    +				port = "NorthWest";
    +			}
    +			else if (x == 0.5 && y == 0)
    +			{
    +				port = "North";
    +			}
    +			else if (x == 1 && y == 0)
    +			{
    +				port = "NorthEast";
    +			}
    +			else if (x == 1 && y == 0.5)
    +			{
    +				port = "East";
    +			}
    +			else if (x == 1 && y == 1)
    +			{
    +				port = "SouthEast";
    +			}
    +			else if (x == 0.5 && y == 1)
    +			{
    +				port = "South";
    +			}
    +			else if (x == 0 && y == 1)
    +			{
    +				port = "SouthWest";
    +			}
    +			else if (x == 0 && y == 0.5)
    +			{
    +				port = "West";
    +			}
    +			else
    +			{
    +				port = "" + x + "," + y;
    +			}
    +		}
    +		return port;
    +	}
    +
    +	/**
    +	 * Returns a list of mxGmlEdge with the data of the edges in the graph.
    +	 * @param Gmledges List where the elements are put.
    +	 * @param parent Parent cell of the edges to be added.
    +	 * @param graph Graph that contains the edges.
    +	 * @return Returns the list Gmledges with the elements added.
    +	 */
    +	private static List<mxGraphMlEdge> encodeEdges(List<mxGraphMlEdge> Gmledges,
    +			Object parent, mxGraph graph)
    +	{
    +		Object[] edges = graph.getChildEdges(parent);
    +		for (Object edge : edges)
    +		{
    +			mxCell e = (mxCell) edge;
    +			mxCell source = (mxCell) e.getSource();
    +			mxCell target = (mxCell) e.getTarget();
    +
    +			String sourceName = "";
    +			String targetName = "";
    +			String sourcePort = "";
    +			String targetPort = "";
    +			sourceName = source != null ? source.getId() : "";
    +			targetName = target != null ? target.getId() : "";
    +
    +			//Get the graph view that contains the states
    +			mxGraphView view = graph.getView();
    +			mxPoint sourceConstraint = null;
    +			mxPoint targetConstraint = null;
    +			if (view != null)
    +			{
    +				mxCellState edgeState = view.getState(edge);
    +				mxCellState sourceState = view.getState(source);
    +				mxConnectionConstraint scc = graph.getConnectionConstraint(
    +						edgeState, sourceState, true);
    +				if (scc != null)
    +				{
    +					sourceConstraint = scc.getPoint();
    +				}
    +
    +				mxCellState targetState = view.getState(target);
    +				mxConnectionConstraint tcc = graph.getConnectionConstraint(
    +						edgeState, targetState, false);
    +				if (tcc != null)
    +				{
    +					targetConstraint = tcc.getPoint();
    +				}
    +			}
    +
    +			//gets the port names
    +			targetPort = pointToPortString(targetConstraint);
    +			sourcePort = pointToPortString(sourceConstraint);
    +
    +			mxGraphMlEdge Gmledge = new mxGraphMlEdge(sourceName, targetName,
    +					sourcePort, targetPort);
    +
    +			String style = e.getStyle();
    +
    +			if (style == null)
    +			{
    +				style = "horizontal";
    +
    +			}
    +
    +			HashMap<String, Object> styleMap = mxGraphMlUtils.getStyleMap(style,
    +					"=");
    +			String endArrow = (String) styleMap.get(mxConstants.STYLE_ENDARROW);
    +			if ((endArrow != null && !endArrow.equals(mxConstants.NONE))
    +					|| endArrow == null)
    +			{
    +				Gmledge.setEdgeDirected("true");
    +			}
    +			else
    +			{
    +				Gmledge.setEdgeDirected("false");
    +			}
    +			addEdgeData(Gmledge, e);
    +			Gmledges.add(Gmledge);
    +		}
    +
    +		return Gmledges;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/io/mxModelCodec.java b/java/src/com/mxgraph/io/mxModelCodec.java
    new file mode 100644
    index 000000000..0e6b31d63
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxModelCodec.java
    @@ -0,0 +1,118 @@
    +/**
    + * $Id: mxModelCodec.java,v 1.8 2010-11-23 08:46:41 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.io;
    +
    +import java.util.Map;
    +
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.model.mxGraphModel;
    +import com.mxgraph.model.mxICell;
    +
    +/**
    + * Codec for mxGraphModels. This class is created and registered
    + * dynamically at load time and used implicitly via mxCodec
    + * and the mxCodecRegistry.
    + */
    +public class mxModelCodec extends mxObjectCodec
    +{
    +
    +	/**
    +	 * Constructs a new model codec.
    +	 */
    +	public mxModelCodec()
    +	{
    +		this(new mxGraphModel());
    +	}
    +
    +	/**
    +	 * Constructs a new model codec for the given template.
    +	 */
    +	public mxModelCodec(Object template)
    +	{
    +		this(template, null, null, null);
    +	}
    +
    +	/**
    +	 * Constructs a new model codec for the given arguments.
    +	 */
    +	public mxModelCodec(Object template, String[] exclude, String[] idrefs,
    +			Map<String, String> mapping)
    +	{
    +		super(template, exclude, idrefs, mapping);
    +	}
    +
    +	/**
    +	 * Encodes the given mxGraphModel by writing a (flat) XML sequence
    +	 * of cell nodes as produced by the mxCellCodec. The sequence is
    +	 * wrapped-up in a node with the name root.
    +	 */
    +	protected void encodeObject(mxCodec enc, Object obj, Node node)
    +	{
    +		if (obj instanceof mxGraphModel)
    +		{
    +			Node rootNode = enc.document.createElement("root");
    +			mxGraphModel model = (mxGraphModel) obj;
    +			enc.encodeCell((mxICell) model.getRoot(), rootNode, true);
    +			node.appendChild(rootNode);
    +		}
    +	}
    +
    +	/**
    +	 * Reads the cells into the graph model. All cells are children of the root
    +	 * element in the node.
    +	 */
    +	public Node beforeDecode(mxCodec dec, Node node, Object into)
    +	{
    +		if (node instanceof Element)
    +		{
    +			Element elt = (Element) node;
    +			mxGraphModel model = null;
    +
    +			if (into instanceof mxGraphModel)
    +			{
    +				model = (mxGraphModel) into;
    +			}
    +			else
    +			{
    +				model = new mxGraphModel();
    +			}
    +
    +			// Reads the cells into the graph model. All cells
    +			// are children of the root element in the node.
    +			Node root = elt.getElementsByTagName("root").item(0);
    +			mxICell rootCell = null;
    +
    +			if (root != null)
    +			{
    +				Node tmp = root.getFirstChild();
    +
    +				while (tmp != null)
    +				{
    +					mxICell cell = dec.decodeCell(tmp, true);
    +
    +					if (cell != null && cell.getParent() == null)
    +					{
    +						rootCell = cell;
    +					}
    +
    +					tmp = tmp.getNextSibling();
    +				}
    +
    +				root.getParentNode().removeChild(root);
    +			}
    +
    +			// Sets the root on the model if one has been decoded
    +			if (rootCell != null)
    +			{
    +				model.setRoot(rootCell);
    +			}
    +		}
    +
    +		return node;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/mxObjectCodec.java b/java/src/com/mxgraph/io/mxObjectCodec.java
    new file mode 100644
    index 000000000..06168bd47
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxObjectCodec.java
    @@ -0,0 +1,1286 @@
    +/**
    + * $Id: mxObjectCodec.java,v 1.39 2012-05-02 17:58:13 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +package com.mxgraph.io;
    +
    +import java.lang.reflect.Array;
    +import java.lang.reflect.Field;
    +import java.lang.reflect.Method;
    +import java.lang.reflect.Modifier;
    +import java.util.Collection;
    +import java.util.HashMap;
    +import java.util.HashSet;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.Map;
    +import java.util.Set;
    +
    +import org.w3c.dom.Element;
    +import org.w3c.dom.NamedNodeMap;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Generic codec for Java objects. See below for a detailed description of
    + * the encoding/decoding scheme.
    + * 
    + * Note: Since booleans are numbers in JavaScript, all boolean values are
    + * encoded into 1 for true and 0 for false.
    + */
    +@SuppressWarnings("unchecked")
    +public class mxObjectCodec
    +{
    +
    +	/**
    +	 * Immutable empty set.
    +	 */
    +	private static Set<String> EMPTY_SET = new HashSet<String>();
    +
    +	/**
    +	 * Holds the template object associated with this codec.
    +	 */
    +	protected Object template;
    +
    +	/**
    +	 * Array containing the variable names that should be ignored by the codec.
    +	 */
    +	protected Set<String> exclude;
    +
    +	/**
    +	 * Array containing the variable names that should be turned into or
    +	 * converted from references. See <mxCodec.getId> and <mxCodec.getObject>.
    +	 */
    +	protected Set<String> idrefs;
    +
    +	/**
    +	 * Maps from from fieldnames to XML attribute names.
    +	 */
    +	protected Map<String, String> mapping;
    +
    +	/**
    +	 * Maps from from XML attribute names to fieldnames.
    +	 */
    +	protected Map<String, String> reverse;
    +
    +	/**
    +	 * Caches accessors for the given method names.
    +	 */
    +	protected Map<String, Method> accessors;
    +
    +	/**
    +	 * Caches fields for faster access.
    +	 */
    +	protected Map<Class, Map<String, Field>> fields;
    +
    +	/**
    +	 * Constructs a new codec for the specified template object.
    +	 */
    +	public mxObjectCodec(Object template)
    +	{
    +		this(template, null, null, null);
    +	}
    +
    +	/**
    +	 * Constructs a new codec for the specified template object. The variables
    +	 * in the optional exclude array are ignored by the codec. Variables in the
    +	 * optional idrefs array are turned into references in the XML. The
    +	 * optional mapping may be used to map from variable names to XML
    +	 * attributes. The argument is created as follows:
    +	 * 
    +	 * @param template Prototypical instance of the object to be encoded/decoded.
    +	 * @param exclude Optional array of fieldnames to be ignored.
    +	 * @param idrefs Optional array of fieldnames to be converted to/from references.
    +	 * @param mapping Optional mapping from field- to attributenames.
    +	 */
    +	public mxObjectCodec(Object template, String[] exclude, String[] idrefs,
    +			Map<String, String> mapping)
    +	{
    +		this.template = template;
    +
    +		if (exclude != null)
    +		{
    +			this.exclude = new HashSet<String>();
    +
    +			for (int i = 0; i < exclude.length; i++)
    +			{
    +				this.exclude.add(exclude[i]);
    +			}
    +		}
    +		else
    +		{
    +			this.exclude = EMPTY_SET;
    +		}
    +
    +		if (idrefs != null)
    +		{
    +			this.idrefs = new HashSet<String>();
    +
    +			for (int i = 0; i < idrefs.length; i++)
    +			{
    +				this.idrefs.add(idrefs[i]);
    +			}
    +		}
    +		else
    +		{
    +			this.idrefs = EMPTY_SET;
    +		}
    +
    +		if (mapping == null)
    +		{
    +			mapping = new Hashtable<String, String>();
    +		}
    +
    +		this.mapping = mapping;
    +
    +		reverse = new Hashtable<String, String>();
    +		Iterator<Map.Entry<String, String>> it = mapping.entrySet().iterator();
    +
    +		while (it.hasNext())
    +		{
    +			Map.Entry<String, String> e = it.next();
    +			reverse.put(e.getValue(), e.getKey());
    +		}
    +	}
    +
    +	/**
    +	 * Returns the name used for the nodenames and lookup of the codec when
    +	 * classes are encoded and nodes are decoded. For classes to work with
    +	 * this the codec registry automatically adds an alias for the classname
    +	 * if that is different than what this returns. The default implementation
    +	 * returns the classname of the template class.
    +	 * 
    +	 * Here is an example on how to use this for renaming mxCell nodes:
    +	 * <code>
    +	 * mxCodecRegistry.register(new mxCellCodec()
    +	 * {
    +	 *   public String getName()
    +	 *   {
    +	 *     return "anotherName";
    +	 *   }
    +	 * });
    +	 * </code>
    +	 */
    +	public String getName()
    +	{
    +		return mxCodecRegistry.getName(getTemplate());
    +	}
    +
    +	/**
    +	 * Returns the template object associated with this codec.
    +	 * 
    +	 * @return Returns the template object.
    +	 */
    +	public Object getTemplate()
    +	{
    +		return template;
    +	}
    +
    +	/**
    +	 * Returns a new instance of the template object for representing the given
    +	 * node.
    +	 * 
    +	 * @param node XML node that the object is going to represent.
    +	 * @return Returns a new template instance.
    +	 */
    +	protected Object cloneTemplate(Node node)
    +	{
    +		Object obj = null;
    +
    +		try
    +		{
    +			if (template.getClass().isEnum())
    +			{
    +				obj = template.getClass().getEnumConstants()[0];
    +			}
    +			else
    +			{
    +				obj = template.getClass().newInstance();
    +			}
    +
    +			// Special case: Check if the collection
    +			// should be a map. This is if the first
    +			// child has an "as"-attribute. This
    +			// assumes that all childs will have
    +			// as attributes in this case. This is
    +			// required because in JavaScript, the
    +			// map and array object are the same.
    +			if (obj instanceof Collection)
    +			{
    +				node = node.getFirstChild();
    +
    +				if (node != null && node instanceof Element
    +						&& ((Element) node).hasAttribute("as"))
    +				{
    +					obj = new Hashtable<Object, Object>();
    +				}
    +			}
    +		}
    +		catch (InstantiationException e)
    +		{
    +			// ignore
    +			e.printStackTrace();
    +		}
    +		catch (IllegalAccessException e)
    +		{
    +			// ignore
    +			e.printStackTrace();
    +		}
    +
    +		return obj;
    +	}
    +
    +	/**
    +	 * Returns true if the given attribute is to be ignored by the codec. This
    +	 * implementation returns true if the given fieldname is in
    +	 * {@link #exclude}.
    +	 * 
    +	 * @param obj Object instance that contains the field.
    +	 * @param attr Fieldname of the field.
    +	 * @param value Value of the field.
    +	 * @param write Boolean indicating if the field is being encoded or
    +	 * decoded. write is true if the field is being encoded, else it is
    +	 * being decoded.
    +	 * @return Returns true if the given attribute should be ignored.
    +	 */
    +	public boolean isExcluded(Object obj, String attr, Object value,
    +			boolean write)
    +	{
    +		return exclude.contains(attr);
    +	}
    +
    +	/**
    +	 * Returns true if the given fieldname is to be treated as a textual
    +	 * reference (ID). This implementation returns true if the given fieldname
    +	 * is in {@link #idrefs}.
    +	 * 
    +	 * @param obj Object instance that contains the field.
    +	 * @param attr Fieldname of the field.
    +	 * @param value Value of the field.
    +	 * @param isWrite Boolean indicating if the field is being encoded or
    +	 * decoded. isWrite is true if the field is being encoded, else it is being
    +	 * decoded.
    +	 * @return Returns true if the given attribute should be handled as a
    +	 * reference.
    +	 */
    +	public boolean isReference(Object obj, String attr, Object value,
    +			boolean isWrite)
    +	{
    +		return idrefs.contains(attr);
    +	}
    +
    +	/**
    +	 * Encodes the specified object and returns a node representing then given
    +	 * object. Calls beforeEncode after creating the node and afterEncode
    +	 * with the resulting node after processing.
    +	 * 
    +	 * Enc is a reference to the calling encoder. It is used to encode complex
    +	 * objects and create references.
    +	 * 
    +	 * This implementation encodes all variables of an object according to the
    +	 * following rules:
    +	 * 
    +	 * <ul>
    +	 * <li>If the variable name is in {@link #exclude} then it is ignored.</li>
    +	 * <li>If the variable name is in {@link #idrefs} then
    +	 * {@link mxCodec#getId(Object)} is used to replace the object with its ID.
    +	 * </li>
    +	 * <li>The variable name is mapped using {@link #mapping}.</li>
    +	 * <li>If obj is an array and the variable name is numeric (ie. an index) then it
    +	 * is not encoded.</li>
    +	 * <li>If the value is an object, then the codec is used to create a child
    +	 * node with the variable name encoded into the "as" attribute.</li>
    +	 * <li>Else, if {@link com.mxgraph.io.mxCodec#isEncodeDefaults()} is true or
    +	 * the value differs from the template value, then ...
    +	 * <ul>
    +	 * <li>... if obj is not an array, then the value is mapped to an
    +	 * attribute.</li>
    +	 * <li>... else if obj is an array, the value is mapped to an add child
    +	 * with a value attribute or a text child node, if the value is a function.
    +	 * </li>
    +	 * </ul>
    +	 * </li>
    +	 * </ul>
    +	 * 
    +	 * If no ID exists for a variable in {@link #idrefs} or if an object cannot be
    +	 * encoded, a warning is printed to System.err.
    +	 * 
    +	 * @param enc Codec that controls the encoding process.
    +	 * @param obj Object to be encoded.
    +	 * @return Returns the resulting XML node that represents the given object. 
    +	 */
    +	public Node encode(mxCodec enc, Object obj)
    +	{
    +		Node node = enc.document.createElement(getName());
    +
    +		obj = beforeEncode(enc, obj, node);
    +		encodeObject(enc, obj, node);
    +
    +		return afterEncode(enc, obj, node);
    +	}
    +
    +	/**
    +	 * Encodes the value of each member in then given obj
    +	 * into the given node using {@link #encodeFields(mxCodec, Object, Node)}
    +	 * and {@link #encodeElements(mxCodec, Object, Node)}.
    +	 * 
    +	 * @param enc Codec that controls the encoding process.
    +	 * @param obj Object to be encoded.
    +	 * @param node XML node that contains the encoded object.
    +	 */
    +	protected void encodeObject(mxCodec enc, Object obj, Node node)
    +	{
    +		mxCodec.setAttribute(node, "id", enc.getId(obj));
    +		encodeFields(enc, obj, node);
    +		encodeElements(enc, obj, node);
    +	}
    +
    +	/**
    +	 * Encodes the declared fields of the given object into the given node.
    +	 * 
    +	 * @param enc Codec that controls the encoding process.
    +	 * @param obj Object whose fields should be encoded.
    +	 * @param node XML node that contains the encoded object.
    +	 */
    +	protected void encodeFields(mxCodec enc, Object obj, Node node)
    +	{
    +		// LATER: Use PropertyDescriptors in Introspector.getBeanInfo(clazz)
    +		// see http://forum.jgraph.com/questions/1424
    +		Class<?> type = obj.getClass();
    +
    +		while (type != null)
    +		{
    +			Field[] fields = type.getDeclaredFields();
    +
    +			for (int i = 0; i < fields.length; i++)
    +			{
    +				Field f = fields[i];
    +
    +				if ((f.getModifiers() & Modifier.TRANSIENT) != Modifier.TRANSIENT)
    +				{
    +					String fieldname = f.getName();
    +					Object value = getFieldValue(obj, fieldname);
    +					encodeValue(enc, obj, fieldname, value, node);
    +				}
    +			}
    +
    +			type = type.getSuperclass();
    +		}
    +	}
    +
    +	/**
    +	 * Encodes the child objects of arrays, maps and collections.
    +	 * 
    +	 * @param enc Codec that controls the encoding process.
    +	 * @param obj Object whose child objects should be encoded.
    +	 * @param node XML node that contains the encoded object.
    +	 */
    +	protected void encodeElements(mxCodec enc, Object obj, Node node)
    +	{
    +		if (obj.getClass().isArray())
    +		{
    +			Object[] tmp = (Object[]) obj;
    +
    +			for (int i = 0; i < tmp.length; i++)
    +			{
    +				encodeValue(enc, obj, null, tmp[i], node);
    +			}
    +		}
    +		else if (obj instanceof Map)
    +		{
    +			Iterator<Map.Entry> it = ((Map) obj).entrySet().iterator();
    +
    +			while (it.hasNext())
    +			{
    +				Map.Entry e = it.next();
    +				encodeValue(enc, obj, String.valueOf(e.getKey()), e.getValue(),
    +						node);
    +			}
    +		}
    +		else if (obj instanceof Collection)
    +		{
    +			Iterator<?> it = ((Collection<?>) obj).iterator();
    +
    +			while (it.hasNext())
    +			{
    +				Object value = it.next();
    +				encodeValue(enc, obj, null, value, node);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Converts the given value according to the mappings
    +	 * and id-refs in this codec and uses
    +	 * {@link #writeAttribute(mxCodec, Object, String, Object, Node)}
    +	 * to write the attribute into the given node.
    +	 * 
    +	 * @param enc Codec that controls the encoding process.
    +	 * @param obj Object whose field is going to be encoded.
    +	 * @param fieldname Name if the field to be encoded.
    +	 * @param value Value of the property to be encoded.
    +	 * @param node XML node that contains the encoded object.
    +	 */
    +	protected void encodeValue(mxCodec enc, Object obj, String fieldname,
    +			Object value, Node node)
    +	{
    +		if (value != null && !isExcluded(obj, fieldname, value, true))
    +		{
    +			if (isReference(obj, fieldname, value, true))
    +			{
    +				Object tmp = enc.getId(value);
    +
    +				if (tmp == null)
    +				{
    +					System.err.println("mxObjectCodec.encode: No ID for "
    +							+ getName() + "." + fieldname + "=" + value);
    +					return; // exit
    +				}
    +
    +				value = tmp;
    +			}
    +
    +			Object defaultValue = getFieldValue(template, fieldname);
    +
    +			if (fieldname == null || enc.isEncodeDefaults()
    +					|| defaultValue == null || !defaultValue.equals(value))
    +			{
    +				writeAttribute(enc, obj, getAttributeName(fieldname), value,
    +						node);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if the given object is a primitive value.
    +	 * 
    +	 * @param value Object that should be checked.
    +	 * @return Returns true if the given object is a primitive value.
    +	 */
    +	protected boolean isPrimitiveValue(Object value)
    +	{
    +		return value instanceof String || value instanceof Boolean
    +				|| value instanceof Character || value instanceof Byte
    +				|| value instanceof Short || value instanceof Integer
    +				|| value instanceof Long || value instanceof Float
    +				|| value instanceof Double || value.getClass().isPrimitive();
    +	}
    +
    +	/**
    +	 * Writes the given value into node using writePrimitiveAttribute
    +	 * or writeComplexAttribute depending on the type of the value.
    +	 */
    +	protected void writeAttribute(mxCodec enc, Object obj, String attr,
    +			Object value, Node node)
    +	{
    +		value = convertValueToXml(value);
    +
    +		if (isPrimitiveValue(value))
    +		{
    +			writePrimitiveAttribute(enc, obj, attr, value, node);
    +		}
    +		else
    +		{
    +			writeComplexAttribute(enc, obj, attr, value, node);
    +		}
    +	}
    +
    +	/**
    +	 * Writes the given value as an attribute of the given node.
    +	 */
    +	protected void writePrimitiveAttribute(mxCodec enc, Object obj,
    +			String attr, Object value, Node node)
    +	{
    +		if (attr == null || obj instanceof Map)
    +		{
    +			Node child = enc.document.createElement("add");
    +
    +			if (attr != null)
    +			{
    +				mxCodec.setAttribute(child, "as", attr);
    +			}
    +
    +			mxCodec.setAttribute(child, "value", value);
    +			node.appendChild(child);
    +		}
    +		else
    +		{
    +			mxCodec.setAttribute(node, attr, value);
    +		}
    +	}
    +
    +	/**
    +	 * Writes the given value as a child node of the given node.
    +	 */
    +	protected void writeComplexAttribute(mxCodec enc, Object obj, String attr,
    +			Object value, Node node)
    +	{
    +		Node child = enc.encode(value);
    +
    +		if (child != null)
    +		{
    +			if (attr != null)
    +			{
    +				mxCodec.setAttribute(child, "as", attr);
    +			}
    +
    +			node.appendChild(child);
    +		}
    +		else
    +		{
    +			System.err.println("mxObjectCodec.encode: No node for " + getName()
    +					+ "." + attr + ": " + value);
    +		}
    +	}
    +
    +	/**
    +	 * Converts true to "1" and false to "0". All other values are ignored.
    +	 */
    +	protected Object convertValueToXml(Object value)
    +	{
    +		if (value instanceof Boolean)
    +		{
    +			value = ((Boolean) value).booleanValue() ? "1" : "0";
    +		}
    +
    +		return value;
    +	}
    +
    +	/**
    +	 * Converts XML attribute values to object of the given type.
    +	 */
    +	protected Object convertValueFromXml(Class<?> type, Object value)
    +	{
    +		if (value instanceof String)
    +		{
    +			String tmp = (String) value;
    +
    +			if (type.equals(boolean.class) || type == Boolean.class)
    +			{
    +				if (tmp.equals("1") || tmp.equals("0"))
    +				{
    +					tmp = (tmp.equals("1")) ? "true" : "false";
    +				}
    +
    +				value = Boolean.valueOf(tmp);
    +			}
    +			else if (type.equals(char.class) || type == Character.class)
    +			{
    +				value = Character.valueOf(tmp.charAt(0));
    +			}
    +			else if (type.equals(byte.class) || type == Byte.class)
    +			{
    +				value = Byte.valueOf(tmp);
    +			}
    +			else if (type.equals(short.class) || type == Short.class)
    +			{
    +				value = Short.valueOf(tmp);
    +			}
    +			else if (type.equals(int.class) || type == Integer.class)
    +			{
    +				value = Integer.valueOf(tmp);
    +			}
    +			else if (type.equals(long.class) || type == Long.class)
    +			{
    +				value = Long.valueOf(tmp);
    +			}
    +			else if (type.equals(float.class) || type == Float.class)
    +			{
    +				value = Float.valueOf(tmp);
    +			}
    +			else if (type.equals(double.class) || type == Double.class)
    +			{
    +				value = Double.valueOf(tmp);
    +			}
    +		}
    +
    +		return value;
    +	}
    +
    +	/**
    +	 * Returns the XML node attribute name for the given Java field name. That
    +	 * is, it returns the mapping of the field name.
    +	 */
    +	protected String getAttributeName(String fieldname)
    +	{
    +		if (fieldname != null)
    +		{
    +			Object mapped = mapping.get(fieldname);
    +
    +			if (mapped != null)
    +			{
    +				fieldname = mapped.toString();
    +			}
    +		}
    +
    +		return fieldname;
    +	}
    +
    +	/**
    +	 * Returns the Java field name for the given XML attribute name. That is, it
    +	 * returns the reverse mapping of the attribute name.
    +	 * 
    +	 * @param attributename
    +	 *            The attribute name to be mapped.
    +	 * @return String that represents the mapped field name.
    +	 */
    +	protected String getFieldName(String attributename)
    +	{
    +		if (attributename != null)
    +		{
    +			Object mapped = reverse.get(attributename);
    +
    +			if (mapped != null)
    +			{
    +				attributename = mapped.toString();
    +			}
    +		}
    +
    +		return attributename;
    +	}
    +
    +	/**
    +	 * Returns the field with the specified name.
    +	 */
    +	protected Field getField(Object obj, String fieldname)
    +	{
    +		Class<?> type = obj.getClass();
    +
    +		// Creates the fields cache
    +		if (fields == null)
    +		{
    +			fields = new HashMap<Class, Map<String, Field>>();
    +		}
    +
    +		// Creates the fields cache entry for the given type
    +		Map<String, Field> map = fields.get(type);
    +
    +		if (map == null)
    +		{
    +			map = new HashMap<String, Field>();
    +			fields.put(type, map);
    +		}
    +
    +		// Tries to get cached field
    +		Field field = map.get(fieldname);
    +		
    +		if (field != null)
    +		{
    +			return field;
    +		}
    +
    +		while (type != null)
    +		{
    +			try
    +			{
    +				field = type.getDeclaredField(fieldname);
    +
    +				if (field != null)
    +				{
    +					// Adds field to fields cache
    +					map.put(fieldname, field);
    +					
    +					return field;
    +				}
    +			}
    +			catch (Exception e)
    +			{
    +				// ignore
    +			}
    +
    +			type = type.getSuperclass();
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the accessor (getter, setter) for the specified field.
    +	 */
    +	protected Method getAccessor(Object obj, Field field, boolean isGetter)
    +	{
    +		String name = field.getName();
    +		name = name.substring(0, 1).toUpperCase() + name.substring(1);
    +
    +		if (!isGetter)
    +		{
    +			name = "set" + name;
    +		}
    +		else if (boolean.class.isAssignableFrom(field.getType()))
    +		{
    +			name = "is" + name;
    +		}
    +		else
    +		{
    +			name = "get" + name;
    +		}
    +
    +		Method method = (accessors != null) ? accessors.get(name) : null;
    +
    +		if (method == null)
    +		{
    +			try
    +			{
    +				if (isGetter)
    +				{
    +					method = getMethod(obj, name, null);
    +				}
    +				else
    +				{
    +					method = getMethod(obj, name,
    +							new Class[] { field.getType() });
    +				}
    +			}
    +			catch (Exception e1)
    +			{
    +				// ignore
    +			}
    +
    +			// Adds accessor to cache
    +			if (method != null)
    +			{
    +				if (accessors == null)
    +				{
    +					accessors = new Hashtable<String, Method>();
    +				}
    +
    +				accessors.put(name, method);
    +			}
    +		}
    +
    +		return method;
    +	}
    +
    +	/**
    +	 * Returns the method with the specified signature.
    +	 */
    +	protected Method getMethod(Object obj, String methodname, Class[] params)
    +	{
    +		Class<?> type = obj.getClass();
    +
    +		while (type != null)
    +		{
    +			try
    +			{
    +				Method method = type.getDeclaredMethod(methodname, params);
    +
    +				if (method != null)
    +				{
    +					return method;
    +				}
    +			}
    +			catch (Exception e)
    +			{
    +				// ignore
    +			}
    +
    +			type = type.getSuperclass();
    +		}
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the value of the field with the specified name in the specified
    +	 * object instance.
    +	 */
    +	protected Object getFieldValue(Object obj, String fieldname)
    +	{
    +		Object value = null;
    +
    +		if (obj != null && fieldname != null)
    +		{
    +			Field field = getField(obj, fieldname);
    +
    +			try
    +			{
    +				if (field != null)
    +				{
    +					if (Modifier.isPublic(field.getModifiers()))
    +					{
    +						value = field.get(obj);
    +					}
    +					else
    +					{
    +						value = getFieldValueWithAccessor(obj, field);
    +					}
    +				}
    +			}
    +			catch (IllegalAccessException e1)
    +			{
    +				value = getFieldValueWithAccessor(obj, field);
    +			}
    +			catch (Exception e)
    +			{
    +				// ignore
    +			}
    +		}
    +
    +		return value;
    +	}
    +
    +	/**
    +	 * Returns the value of the field using the accessor for the field if one exists.
    +	 */
    +	protected Object getFieldValueWithAccessor(Object obj, Field field)
    +	{
    +		Object value = null;
    +
    +		if (field != null)
    +		{
    +			try
    +			{
    +				Method method = getAccessor(obj, field, true);
    +
    +				if (method != null)
    +				{
    +					value = method.invoke(obj, (Object[]) null);
    +				}
    +			}
    +			catch (Exception e2)
    +			{
    +				// ignore
    +			}
    +		}
    +
    +		return value;
    +	}
    +
    +	/**
    +	 * Sets the value of the field with the specified name
    +	 * in the specified object instance.
    +	 */
    +	protected void setFieldValue(Object obj, String fieldname, Object value)
    +	{
    +		Field field = null;
    +
    +		try
    +		{
    +			field = getField(obj, fieldname);
    +
    +			if (field != null)
    +			{
    +				if (field.getType() == Boolean.class)
    +				{
    +					value = (value.equals("1") || String.valueOf(value)
    +							.equalsIgnoreCase("true")) ? Boolean.TRUE
    +							: Boolean.FALSE;
    +				}
    +
    +				if (Modifier.isPublic(field.getModifiers()))
    +				{
    +					field.set(obj, value);
    +				}
    +				else
    +				{
    +					setFieldValueWithAccessor(obj, field, value);
    +				}
    +			}
    +		}
    +		catch (IllegalAccessException e1)
    +		{
    +			setFieldValueWithAccessor(obj, field, value);
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * Sets the value of the given field using the accessor if one exists.
    +	 */
    +	protected void setFieldValueWithAccessor(Object obj, Field field,
    +			Object value)
    +	{
    +		if (field != null)
    +		{
    +			try
    +			{
    +				Method method = getAccessor(obj, field, false);
    +
    +				if (method != null)
    +				{
    +					Class<?> type = method.getParameterTypes()[0];
    +					value = convertValueFromXml(type, value);
    +
    +					// Converts collection to a typed array before setting
    +					if (type.isArray() && value instanceof Collection)
    +					{
    +						Collection<?> coll = (Collection<?>) value;
    +						value = coll.toArray((Object[]) Array.newInstance(
    +								type.getComponentType(), coll.size()));
    +					}
    +
    +					method.invoke(obj, new Object[] { value });
    +				}
    +			}
    +			catch (Exception e2)
    +			{
    +				System.err.println("setFieldValue: " + e2 + " on "
    +						+ obj.getClass().getSimpleName() + "."
    +						+ field.getName() + " ("
    +						+ field.getType().getSimpleName() + ") = " + value
    +						+ " (" + value.getClass().getSimpleName() + ")");
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Hook for subclassers to pre-process the object before encoding. This
    +	 * returns the input object. The return value of this function is used in
    +	 * encode to perform the default encoding into the given node.
    +	 * 
    +	 * @param enc Codec that controls the encoding process.
    +	 * @param obj Object to be encoded.
    +	 * @param node XML node to encode the object into.
    +	 * @return Returns the object to be encoded by the default encoding.
    +	 */
    +	public Object beforeEncode(mxCodec enc, Object obj, Node node)
    +	{
    +		return obj;
    +	}
    +
    +	/**
    +	 * Hook for subclassers to post-process the node for the given object after
    +	 * encoding and return the post-processed node. This implementation returns
    +	 * the input node. The return value of this method is returned to the
    +	 * encoder from <encode>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * @param enc Codec that controls the encoding process.
    +	 * @param obj Object to be encoded.
    +	 * @param node XML node that represents the default encoding.
    +	 * @return Returns the resulting node of the encoding.
    +	 */
    +	public Node afterEncode(mxCodec enc, Object obj, Node node)
    +	{
    +		return node;
    +	}
    +
    +	/**
    +	 * Parses the given node into the object or returns a new object
    +	 * representing the given node.
    +	 * 
    +	 * @param dec Codec that controls the encoding process.
    +	 * @param node XML node to be decoded.
    +	 * @return Returns the resulting object that represents the given XML node.
    +	 */
    +	public Object decode(mxCodec dec, Node node)
    +	{
    +		return decode(dec, node, null);
    +	}
    +
    +	/**
    +	 * Parses the given node into the object or returns a new object
    +	 * representing the given node.
    +	 * 
    +	 * Dec is a reference to the calling decoder. It is used to decode complex
    +	 * objects and resolve references.
    +	 * 
    +	 * If a node has an id attribute then the object cache is checked for the
    +	 * object. If the object is not yet in the cache then it is constructed
    +	 * using the constructor of <template> and cached in <mxCodec.objects>.
    +	 * 
    +	 * This implementation decodes all attributes and childs of a node according
    +	 * to the following rules:
    +	 *  - If the variable name is in <exclude> or if the attribute name is "id"
    +	 * or "as" then it is ignored. - If the variable name is in <idrefs> then
    +	 * <mxCodec.getObject> is used to replace the reference with an object. -
    +	 * The variable name is mapped using a reverse <mapping>. - If the value has
    +	 * a child node, then the codec is used to create a child object with the
    +	 * variable name taken from the "as" attribute. - If the object is an array
    +	 * and the variable name is empty then the value or child object is appended
    +	 * to the array. - If an add child has no value or the object is not an
    +	 * array then the child text content is evaluated using <mxUtils.eval>.
    +	 * 
    +	 * If no object exists for an ID in <idrefs> a warning is issued in
    +	 * System.err.
    +	 * 
    +	 * @param dec Codec that controls the encoding process.
    +	 * @param node XML node to be decoded.
    +	 * @param into Optional object to encode the node into.
    +	 * @return Returns the resulting object that represents the given XML node
    +	 * or the object given to the method as the into parameter.
    +	 */
    +	public Object decode(mxCodec dec, Node node, Object into)
    +	{
    +		Object obj = null;
    +
    +		if (node instanceof Element)
    +		{
    +			String id = ((Element) node).getAttribute("id");
    +			obj = dec.objects.get(id);
    +
    +			if (obj == null)
    +			{
    +				obj = into;
    +
    +				if (obj == null)
    +				{
    +					obj = cloneTemplate(node);
    +				}
    +
    +				if (id != null && id.length() > 0)
    +				{
    +					dec.putObject(id, obj);
    +				}
    +			}
    +
    +			node = beforeDecode(dec, node, obj);
    +			decodeNode(dec, node, obj);
    +			obj = afterDecode(dec, node, obj);
    +		}
    +
    +		return obj;
    +	}
    +
    +	/**
    +	 * Calls decodeAttributes and decodeChildren for the given node.
    +	 */
    +	protected void decodeNode(mxCodec dec, Node node, Object obj)
    +	{
    +		if (node != null)
    +		{
    +			decodeAttributes(dec, node, obj);
    +			decodeChildren(dec, node, obj);
    +		}
    +	}
    +
    +	/**
    +	 * Decodes all attributes of the given node using decodeAttribute.
    +	 */
    +	protected void decodeAttributes(mxCodec dec, Node node, Object obj)
    +	{
    +		NamedNodeMap attrs = node.getAttributes();
    +
    +		if (attrs != null)
    +		{
    +			for (int i = 0; i < attrs.getLength(); i++)
    +			{
    +				Node attr = attrs.item(i);
    +				decodeAttribute(dec, attr, obj);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Reads the given attribute into the specified object.
    +	 */
    +	protected void decodeAttribute(mxCodec dec, Node attr, Object obj)
    +	{
    +		String name = attr.getNodeName();
    +
    +		if (!name.equalsIgnoreCase("as") && !name.equalsIgnoreCase("id"))
    +		{
    +			Object value = attr.getNodeValue();
    +			String fieldname = getFieldName(name);
    +
    +			if (isReference(obj, fieldname, value, false))
    +			{
    +				Object tmp = dec.getObject(String.valueOf(value));
    +
    +				if (tmp == null)
    +				{
    +					System.err.println("mxObjectCodec.decode: No object for "
    +							+ getName() + "." + fieldname + "=" + value);
    +					return; // exit
    +				}
    +
    +				value = tmp;
    +			}
    +
    +			if (!isExcluded(obj, fieldname, value, false))
    +			{
    +				setFieldValue(obj, fieldname, value);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Decodec all children of the given node using decodeChild.
    +	 */
    +	protected void decodeChildren(mxCodec dec, Node node, Object obj)
    +	{
    +		Node child = node.getFirstChild();
    +
    +		while (child != null)
    +		{
    +			if (child.getNodeType() == Node.ELEMENT_NODE
    +					&& !processInclude(dec, child, obj))
    +			{
    +				decodeChild(dec, child, obj);
    +			}
    +
    +			child = child.getNextSibling();
    +		}
    +	}
    +
    +	/**
    +	 * Reads the specified child into the given object.
    +	 */
    +	protected void decodeChild(mxCodec dec, Node child, Object obj)
    +	{
    +		String fieldname = getFieldName(((Element) child).getAttribute("as"));
    +
    +		if (fieldname == null || !isExcluded(obj, fieldname, child, false))
    +		{
    +			Object template = getFieldTemplate(obj, fieldname, child);
    +			Object value = null;
    +
    +			if (child.getNodeName().equals("add"))
    +			{
    +				value = ((Element) child).getAttribute("value");
    +
    +				if (value == null)
    +				{
    +					value = child.getTextContent();
    +				}
    +			}
    +			else
    +			{
    +				value = dec.decode(child, template);
    +				// System.out.println("Decoded " + child.getNodeName() + "."
    +				// + fieldname + "=" + value);
    +			}
    +
    +			addObjectValue(obj, fieldname, value, template);
    +		}
    +	}
    +
    +	/**
    +	 * Returns the template instance for the given field. This returns the
    +	 * value of the field, null if the value is an array or an empty collection
    +	 * if the value is a collection. The value is then used to populate the
    +	 * field for a new instance. For strongly typed languages it may be
    +	 * required to override this to return the correct collection instance
    +	 * based on the encoded child.
    +	 */
    +	protected Object getFieldTemplate(Object obj, String fieldname, Node child)
    +	{
    +		Object template = getFieldValue(obj, fieldname);
    +
    +		// Arrays are replaced completely
    +		if (template != null && template.getClass().isArray())
    +		{
    +			template = null;
    +		}
    +		// Collections are cleared
    +		else if (template instanceof Collection)
    +		{
    +			((Collection<?>) template).clear();
    +		}
    +
    +		return template;
    +	}
    +
    +	/**
    +	 * Sets the decoded child node as a value of the given object. If the
    +	 * object is a map, then the value is added with the given fieldname as a
    +	 * key. If the fieldname is not empty, then setFieldValue is called or
    +	 * else, if the object is a collection, the value is added to the
    +	 * collection. For strongly typed languages it may be required to
    +	 * override this with the correct code to add an entry to an object.
    +	 */
    +	protected void addObjectValue(Object obj, String fieldname, Object value,
    +			Object template)
    +	{
    +		if (value != null && !value.equals(template))
    +		{
    +			if (fieldname != null && obj instanceof Map)
    +			{
    +				((Map) obj).put(fieldname, value);
    +			}
    +			else if (fieldname != null && fieldname.length() > 0)
    +			{
    +				setFieldValue(obj, fieldname, value);
    +			}
    +			// Arrays are treated as collections and
    +			// converted in setFieldValue
    +			else if (obj instanceof Collection)
    +			{
    +				((Collection) obj).add(value);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if the given node is an include directive and executes the
    +	 * include by decoding the XML document. Returns false if the given node is
    +	 * not an include directive.
    +	 * 
    +	 * @param dec Codec that controls the encoding/decoding process.
    +	 * @param node XML node to be checked.
    +	 * @param into Optional object to pass-thru to the codec.
    +	 * @return Returns true if the given node was processed as an include.
    +	 */
    +	public boolean processInclude(mxCodec dec, Node node, Object into)
    +	{
    +		if (node.getNodeType() == Node.ELEMENT_NODE
    +				&& node.getNodeName().equalsIgnoreCase("include"))
    +		{
    +			String name = ((Element) node).getAttribute("name");
    +
    +			if (name != null)
    +			{
    +				try
    +				{
    +					Node xml = mxUtils.loadDocument(
    +							mxObjectCodec.class.getResource(name).toString())
    +							.getDocumentElement();
    +
    +					if (xml != null)
    +					{
    +						dec.decode(xml, into);
    +					}
    +				}
    +				catch (Exception e)
    +				{
    +					System.err.println("Cannot process include: " + name);
    +				}
    +			}
    +
    +			return true;
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Hook for subclassers to pre-process the node for the specified object
    +	 * and return the node to be used for further processing by
    +	 * {@link #decode(mxCodec, Node)}. The object is created based on the
    +	 * template in the calling method and is never null.
    +	 * 
    +	 * This implementation returns the input node. The return value of this
    +	 * function is used in {@link #decode(mxCodec, Node)} to perform the
    +	 * default decoding into the given object.
    +	 * 
    +	 * @param dec Codec that controls the decoding process.
    +	 * @param node XML node to be decoded.
    +	 * @param obj Object to encode the node into.
    +	 * @return Returns the node used for the default decoding.
    +	 */
    +	public Node beforeDecode(mxCodec dec, Node node, Object obj)
    +	{
    +		return node;
    +	}
    +
    +	/**
    +	 * Hook for subclassers to post-process the object after decoding. This
    +	 * implementation returns the given object without any changes. The return
    +	 * value of this method is returned to the decoder from
    +	 * {@link #decode(mxCodec, Node)}.
    +	 * 
    +	 * @param dec Codec that controls the decoding process.
    +	 * @param node XML node to be decoded.
    +	 * @param obj Object that represents the default decoding.
    +	 * @return Returns the result of the decoding process.
    +	 */
    +	public Object afterDecode(mxCodec dec, Node node, Object obj)
    +	{
    +		return obj;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/mxRootChangeCodec.java b/java/src/com/mxgraph/io/mxRootChangeCodec.java
    new file mode 100644
    index 000000000..12d16b9cd
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxRootChangeCodec.java
    @@ -0,0 +1,110 @@
    +/**
    + * $Id: mxRootChangeCodec.java,v 1.2 2010-11-04 23:11:40 david Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.io;
    +
    +import java.util.Map;
    +
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.model.mxGraphModel.mxRootChange;
    +import com.mxgraph.model.mxICell;
    +
    +/**
    + * Codec for mxChildChanges. This class is created and registered
    + * dynamically at load time and used implicitly via mxCodec
    + * and the mxCodecRegistry.
    + */
    +public class mxRootChangeCodec extends mxObjectCodec
    +{
    +
    +	/**
    +	 * Constructs a new model codec.
    +	 */
    +	public mxRootChangeCodec()
    +	{
    +		this(new mxRootChange(), new String[] { "model", "previous", "root" },
    +				null, null);
    +	}
    +
    +	/**
    +	 * Constructs a new model codec for the given arguments.
    +	 */
    +	public mxRootChangeCodec(Object template, String[] exclude,
    +			String[] idrefs, Map<String, String> mapping)
    +	{
    +		super(template, exclude, idrefs, mapping);
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.io.mxObjectCodec#afterEncode(com.mxgraph.io.mxCodec, java.lang.Object, org.w3c.dom.Node)
    +	 */
    +	@Override
    +	public Node afterEncode(mxCodec enc, Object obj, Node node)
    +	{
    +		if (obj instanceof mxRootChange)
    +		{
    +			enc.encodeCell((mxICell) ((mxRootChange) obj).getRoot(), node, true);
    +		}
    +
    +		return node;
    +	}
    +
    +	/**
    +	 * Reads the cells into the graph model. All cells are children of the root
    +	 * element in the node.
    +	 */
    +	public Node beforeDecode(mxCodec dec, Node node, Object into)
    +	{
    +		if (into instanceof mxRootChange)
    +		{
    +			mxRootChange change = (mxRootChange) into;
    +
    +			if (node.getFirstChild() != null
    +					&& node.getFirstChild().getNodeType() == Node.ELEMENT_NODE)
    +			{
    +				// Makes sure the original node isn't modified
    +				node = node.cloneNode(true);
    +
    +				Node tmp = node.getFirstChild();
    +				change.setRoot(dec.decodeCell(tmp, false));
    +
    +				Node tmp2 = tmp.getNextSibling();
    +				tmp.getParentNode().removeChild(tmp);
    +				tmp = tmp2;
    +
    +				while (tmp != null)
    +				{
    +					tmp2 = tmp.getNextSibling();
    +
    +					if (tmp.getNodeType() == Node.ELEMENT_NODE)
    +					{
    +						dec.decodeCell(tmp, true);
    +					}
    +
    +					tmp.getParentNode().removeChild(tmp);
    +					tmp = tmp2;
    +				}
    +			}
    +		}
    +
    +		return node;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.io.mxObjectCodec#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)
    +	 */
    +	@Override
    +	public Object afterDecode(mxCodec dec, Node node, Object obj)
    +	{
    +		if (obj instanceof mxRootChange)
    +		{
    +			mxRootChange change = (mxRootChange) obj;
    +			change.setPrevious(change.getRoot());
    +		}
    +
    +		return obj;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/mxStylesheetCodec.java b/java/src/com/mxgraph/io/mxStylesheetCodec.java
    new file mode 100644
    index 000000000..431b4ccbd
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxStylesheetCodec.java
    @@ -0,0 +1,210 @@
    +/**
    + * $Id: mxStylesheetCodec.java,v 1.11 2011-06-13 08:18:42 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +package com.mxgraph.io;
    +
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.Map;
    +
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxStylesheet;
    +
    +/**
    + * Codec for mxStylesheets. This class is created and registered
    + * dynamically at load time and used implicitely via mxCodec
    + * and the mxCodecRegistry.
    + */
    +public class mxStylesheetCodec extends mxObjectCodec
    +{
    +
    +	/**
    +	 * Constructs a new model codec.
    +	 */
    +	public mxStylesheetCodec()
    +	{
    +		this(new mxStylesheet());
    +	}
    +
    +	/**
    +	 * Constructs a new stylesheet codec for the given template.
    +	 */
    +	public mxStylesheetCodec(Object template)
    +	{
    +		this(template, null, null, null);
    +	}
    +
    +	/**
    +	 * Constructs a new model codec for the given arguments.
    +	 */
    +	public mxStylesheetCodec(Object template, String[] exclude,
    +			String[] idrefs, Map<String, String> mapping)
    +	{
    +		super(template, exclude, idrefs, mapping);
    +	}
    +
    +	/**
    +	 * Encodes the given mxStylesheet.
    +	 */
    +	public Node encode(mxCodec enc, Object obj)
    +	{
    +		Element node = enc.document.createElement(getName());
    +
    +		if (obj instanceof mxStylesheet)
    +		{
    +			mxStylesheet stylesheet = (mxStylesheet) obj;
    +			Iterator<Map.Entry<String, Map<String, Object>>> it = stylesheet
    +					.getStyles().entrySet().iterator();
    +
    +			while (it.hasNext())
    +			{
    +				Map.Entry<String, Map<String, Object>> entry = it.next();
    +
    +				Element styleNode = enc.document.createElement("add");
    +				String stylename = entry.getKey();
    +				styleNode.setAttribute("as", stylename);
    +
    +				Map<String, Object> style = entry.getValue();
    +				Iterator<Map.Entry<String, Object>> it2 = style.entrySet()
    +						.iterator();
    +
    +				while (it2.hasNext())
    +				{
    +					Map.Entry<String, Object> entry2 = it2.next();
    +					Element entryNode = enc.document.createElement("add");
    +					entryNode.setAttribute("as",
    +							String.valueOf(entry2.getKey()));
    +					entryNode.setAttribute("value", getStringValue(entry2));
    +					styleNode.appendChild(entryNode);
    +				}
    +
    +				if (styleNode.getChildNodes().getLength() > 0)
    +				{
    +					node.appendChild(styleNode);
    +				}
    +			}
    +		}
    +
    +		return node;
    +	}
    +
    +	/**
    +	 * Returns the string for encoding the given value.
    +	 */
    +	protected String getStringValue(Map.Entry<String, Object> entry)
    +	{
    +		if (entry.getValue() instanceof Boolean)
    +		{
    +			return ((Boolean) entry.getValue()) ? "1" : "0";
    +		}
    +
    +		return entry.getValue().toString();
    +	}
    +
    +	/**
    +	 * Decodes the given mxStylesheet.
    +	 */
    +	public Object decode(mxCodec dec, Node node, Object into)
    +	{
    +		Object obj = null;
    +
    +		if (node instanceof Element)
    +		{
    +			String id = ((Element) node).getAttribute("id");
    +			obj = dec.objects.get(id);
    +
    +			if (obj == null)
    +			{
    +				obj = into;
    +
    +				if (obj == null)
    +				{
    +					obj = cloneTemplate(node);
    +				}
    +
    +				if (id != null && id.length() > 0)
    +				{
    +					dec.putObject(id, obj);
    +				}
    +			}
    +
    +			node = node.getFirstChild();
    +
    +			while (node != null)
    +			{
    +				if (!processInclude(dec, node, obj)
    +						&& node.getNodeName().equals("add")
    +						&& node instanceof Element)
    +				{
    +					String as = ((Element) node).getAttribute("as");
    +
    +					if (as != null && as.length() > 0)
    +					{
    +						String extend = ((Element) node).getAttribute("extend");
    +						Map<String, Object> style = (extend != null) ? ((mxStylesheet) obj)
    +								.getStyles().get(extend) : null;
    +
    +						if (style == null)
    +						{
    +							style = new Hashtable<String, Object>();
    +						}
    +						else
    +						{
    +							style = new Hashtable<String, Object>(style);
    +						}
    +
    +						Node entry = node.getFirstChild();
    +
    +						while (entry != null)
    +						{
    +							if (entry instanceof Element)
    +							{
    +								Element entryElement = (Element) entry;
    +								String key = entryElement.getAttribute("as");
    +
    +								if (entry.getNodeName().equals("add"))
    +								{
    +									String text = entry.getTextContent();
    +									Object value = null;
    +
    +									if (text != null && text.length() > 0)
    +									{
    +										value = mxUtils.eval(text);
    +									}
    +									else
    +									{
    +										value = entryElement
    +												.getAttribute("value");
    +
    +									}
    +
    +									if (value != null)
    +									{
    +										style.put(key, value);
    +									}
    +								}
    +								else if (entry.getNodeName().equals("remove"))
    +								{
    +									style.remove(key);
    +								}
    +							}
    +
    +							entry = entry.getNextSibling();
    +						}
    +
    +						((mxStylesheet) obj).putCellStyle(as, style);
    +					}
    +				}
    +
    +				node = node.getNextSibling();
    +			}
    +		}
    +
    +		return obj;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/mxTerminalChangeCodec.java b/java/src/com/mxgraph/io/mxTerminalChangeCodec.java
    new file mode 100644
    index 000000000..1f7aadf7a
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/mxTerminalChangeCodec.java
    @@ -0,0 +1,55 @@
    +/**
    + * $Id: mxTerminalChangeCodec.java,v 1.2 2010-09-15 11:57:07 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +package com.mxgraph.io;
    +
    +import java.util.Map;
    +
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.model.mxGraphModel.mxTerminalChange;
    +
    +/**
    + * Codec for mxChildChanges. This class is created and registered
    + * dynamically at load time and used implicitely via mxCodec
    + * and the mxCodecRegistry.
    + */
    +public class mxTerminalChangeCodec extends mxObjectCodec
    +{
    +
    +	/**
    +	 * Constructs a new model codec.
    +	 */
    +	public mxTerminalChangeCodec()
    +	{
    +		this(new mxTerminalChange(), new String[] { "model", "previous" },
    +				new String[] { "cell", "terminal" }, null);
    +	}
    +
    +	/**
    +	 * Constructs a new model codec for the given arguments.
    +	 */
    +	public mxTerminalChangeCodec(Object template, String[] exclude,
    +			String[] idrefs, Map<String, String> mapping)
    +	{
    +		super(template, exclude, idrefs, mapping);
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.io.mxObjectCodec#afterDecode(com.mxgraph.io.mxCodec, org.w3c.dom.Node, java.lang.Object)
    +	 */
    +	@Override
    +	public Object afterDecode(mxCodec dec, Node node, Object obj)
    +	{
    +		if (obj instanceof mxTerminalChange)
    +		{
    +			mxTerminalChange change = (mxTerminalChange) obj;
    +
    +			change.setPrevious(change.getTerminal());
    +		}
    +
    +		return obj;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/io/package.html b/java/src/com/mxgraph/io/package.html
    new file mode 100644
    index 000000000..e60c03206
    --- /dev/null
    +++ b/java/src/com/mxgraph/io/package.html
    @@ -0,0 +1,5 @@
    +<HTML>
    +<BODY>
    +  This package contains all classes for input/output.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.java b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.java
    new file mode 100644
    index 000000000..22195ac82
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphAbstractHierarchyCell.java
    @@ -0,0 +1,169 @@
    +/**
    + * $Id: mxGraphAbstractHierarchyCell.java,v 1.3 2010-10-18 20:02:38 david Exp $
    + * Copyright (c) 2005-2010, David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.layout.hierarchical.model;
    +
    +import java.util.List;
    +
    +/**
    + * An abstraction of an internal hierarchy node or edge
    + */
    +public abstract class mxGraphAbstractHierarchyCell
    +{
    +
    +	/**
    +	 * The maximum rank this cell occupies
    +	 */
    +	public int maxRank = -1;
    +
    +	/**
    +	 * The minimum rank this cell occupies
    +	 */
    +	public int minRank = -1;
    +
    +	/**
    +	 * The x position of this cell for each layer it occupies
    +	 */
    +	public double x[] = new double[1];
    +
    +	/**
    +	 * The y position of this cell for each layer it occupies
    +	 */
    +	public double y[] = new double[1];
    +
    +	/**
    +	 * The width of this cell
    +	 */
    +	public double width = 0.0;
    +
    +	/**
    +	 * The height of this cell
    +	 */
    +	public double height = 0.0;
    +
    +	/**
    +	 * A cached version of the cells this cell connects to on the next layer up
    +	 */
    +	protected List<mxGraphAbstractHierarchyCell>[] nextLayerConnectedCells = null;
    +
    +	/**
    +	 * A cached version of the cells this cell connects to on the next layer down
    +	 */
    +	protected List<mxGraphAbstractHierarchyCell>[] previousLayerConnectedCells = null;
    +
    +	/**
    +	 * Temporary variable for general use. Generally, try to avoid
    +	 * carrying information between stages. Currently, the longest
    +	 * path layering sets temp to the rank position in fixRanks()
    +	 * and the crossing reduction uses this. This meant temp couldn't
    +	 * be used for hashing the nodes in the model dfs and so hashCode
    +	 * was created
    +	 */
    +	public int[] temp = new int[1];
    +
    +	/**
    +	 * Returns the cells this cell connects to on the next layer up
    +	 * @param layer the layer this cell is on
    +	 * @return the cells this cell connects to on the next layer up
    +	 */
    +	public abstract List<mxGraphAbstractHierarchyCell> getNextLayerConnectedCells(int layer);
    +
    +	/**
    +	 * Returns the cells this cell connects to on the next layer down
    +	 * @param layer the layer this cell is on
    +	 * @return the cells this cell connects to on the next layer down
    +	 */
    +	public abstract List<mxGraphAbstractHierarchyCell> getPreviousLayerConnectedCells(int layer);
    +
    +	/**
    +	 * 
    +	 * @return whether or not this cell is an edge
    +	 */
    +	public abstract boolean isEdge();
    +
    +	/**
    +	 * 
    +	 * @return whether or not this cell is a node
    +	 */
    +	public abstract boolean isVertex();
    +
    +	/**
    +	 * Gets the value of temp for the specified layer
    +	 * 
    +	 * @param layer
    +	 *            the layer relating to a specific entry into temp
    +	 * @return the value for that layer
    +	 */
    +	public abstract int getGeneralPurposeVariable(int layer);
    +
    +	/**
    +	 * Set the value of temp for the specified layer
    +	 * 
    +	 * @param layer
    +	 *            the layer relating to a specific entry into temp
    +	 * @param value
    +	 *            the value for that layer
    +	 */
    +	public abstract void setGeneralPurposeVariable(int layer, int value);
    +
    +	/**
    +	 * Set the value of x for the specified layer
    +	 * 
    +	 * @param layer
    +	 *            the layer relating to a specific entry into x[]
    +	 * @param value
    +	 *            the x value for that layer
    +	 */
    +	public void setX(int layer, double value)
    +	{
    +		if (isVertex())
    +		{
    +			x[0] = value;
    +		}
    +		else if (isEdge())
    +		{
    +			x[layer - minRank - 1] = value;
    +		}
    +	}
    +
    +	/**
    +	 * Gets the value of x on the specified layer
    +	 * @param layer the layer to obtain x for
    +	 * @return the value of x on the specified layer
    +	 */
    +	public double getX(int layer)
    +	{
    +		if (isVertex())
    +		{
    +			return x[0];
    +		}
    +		else if (isEdge())
    +		{
    +			return x[layer - minRank - 1];
    +		}
    +
    +		return 0.0;
    +	}
    +
    +	/**
    +	 * Set the value of y for the specified layer
    +	 * 
    +	 * @param layer
    +	 *            the layer relating to a specific entry into y[]
    +	 * @param value
    +	 *            the y value for that layer
    +	 */
    +	public void setY(int layer, double value)
    +	{
    +		if (isVertex())
    +		{
    +			y[0] = value;
    +		}
    +		else if (isEdge())
    +		{
    +			y[layer - minRank - 1] = value;
    +		}
    +	}
    +
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.java b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.java
    new file mode 100644
    index 000000000..9334d5d20
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyEdge.java
    @@ -0,0 +1,183 @@
    +/*
    + * Copyright (c) 2005, David Benson
    + *
    + * All rights reserved.
    + *
    + * This file is licensed under the JGraph software license, a copy of which
    + * will have been provided to you in the file LICENSE at the root of your
    + * installation directory. If you are unable to locate this file please
    + * contact JGraph sales for another copy.
    + */
    +package com.mxgraph.layout.hierarchical.model;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +/**
    + * An abstraction of a hierarchical edge for the hierarchy layout
    + */
    +public class mxGraphHierarchyEdge extends mxGraphAbstractHierarchyCell
    +{
    +
    +	/**
    +	 * The graph edge(s) this object represents. Parallel edges are all grouped
    +	 * together within one hierarchy edge.
    +	 */
    +	public List<Object> edges;
    +
    +	/**
    +	 * The node this edge is sourced at
    +	 */
    +	public mxGraphHierarchyNode source;
    +
    +	/**
    +	 * The node this edge targets
    +	 */
    +	public mxGraphHierarchyNode target;
    +
    +	/**
    +	 * Whether or not the direction of this edge has been reversed
    +	 * internally to create a DAG for the hierarchical layout
    +	 */
    +	protected boolean isReversed = false;
    +
    +	/**
    +	 * Constructs a hierarchy edge
    +	 * @param edges a list of real graph edges this abstraction represents
    +	 */
    +	public mxGraphHierarchyEdge(List<Object> edges)
    +	{
    +		this.edges = edges;
    +	}
    +
    +	/**
    +	 * Inverts the direction of this internal edge(s)
    +	 */
    +	public void invert()
    +	{
    +		mxGraphHierarchyNode temp = source;
    +		source = target;
    +		target = temp;
    +		isReversed = !isReversed;
    +	}
    +
    +	/**
    +	 * @return Returns the isReversed.
    +	 */
    +	public boolean isReversed()
    +	{
    +		return isReversed;
    +	}
    +
    +	/**
    +	 * @param isReversed The isReversed to set.
    +	 */
    +	public void setReversed(boolean isReversed)
    +	{
    +		this.isReversed = isReversed;
    +	}
    +
    +	/**
    +	 * Returns the cells this cell connects to on the next layer up
    +	 * @param layer the layer this cell is on
    +	 * @return the cells this cell connects to on the next layer up
    +	 */
    +	@SuppressWarnings("unchecked")
    +	public List<mxGraphAbstractHierarchyCell> getNextLayerConnectedCells(int layer)
    +	{
    +		if (nextLayerConnectedCells == null)
    +		{
    +			nextLayerConnectedCells = new ArrayList[temp.length];
    +			
    +			for (int i = 0; i < nextLayerConnectedCells.length; i++)
    +			{
    +				nextLayerConnectedCells[i] = new ArrayList<mxGraphAbstractHierarchyCell>(2);
    +				
    +				if (i == nextLayerConnectedCells.length - 1)
    +				{
    +					nextLayerConnectedCells[i].add(source);
    +				}
    +				else
    +				{
    +					nextLayerConnectedCells[i].add(this);
    +				}
    +			}
    +		}
    +		
    +		return nextLayerConnectedCells[layer - minRank - 1];
    +	}
    +
    +	/**
    +	 * Returns the cells this cell connects to on the next layer down
    +	 * @param layer the layer this cell is on
    +	 * @return the cells this cell connects to on the next layer down
    +	 */
    +	@SuppressWarnings("unchecked")
    +	public List<mxGraphAbstractHierarchyCell> getPreviousLayerConnectedCells(int layer)
    +	{
    +		if (previousLayerConnectedCells == null)
    +		{
    +			previousLayerConnectedCells = new ArrayList[temp.length];
    +			
    +			for (int i = 0; i < previousLayerConnectedCells.length; i++)
    +			{
    +				previousLayerConnectedCells[i] = new ArrayList<mxGraphAbstractHierarchyCell>(2);
    +				
    +				if (i == 0)
    +				{
    +					previousLayerConnectedCells[i].add(target);
    +				}
    +				else
    +				{
    +					previousLayerConnectedCells[i].add(this);
    +				}
    +			}
    +		}
    +		
    +		return previousLayerConnectedCells[layer - minRank - 1];
    +	}
    +
    +	/**
    +	 * 
    +	 * @return whether or not this cell is an edge
    +	 */
    +	public boolean isEdge()
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return whether or not this cell is a node
    +	 */
    +	public boolean isVertex()
    +	{
    +		return false;
    +	}
    +
    +	/**
    +	 * Gets the value of temp for the specified layer
    +	 * 
    +	 * @param layer
    +	 *            the layer relating to a specific entry into temp
    +	 * @return the value for that layer
    +	 */
    +	public int getGeneralPurposeVariable(int layer)
    +	{
    +		return temp[layer - minRank - 1];
    +	}
    +
    +	/**
    +	 * Set the value of temp for the specified layer
    +	 * 
    +	 * @param layer
    +	 *            the layer relating to a specific entry into temp
    +	 * @param value
    +	 *            the value for that layer
    +	 */
    +	public void setGeneralPurposeVariable(int layer, int value)
    +	{
    +		temp[layer - minRank - 1] = value;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.java b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.java
    new file mode 100644
    index 000000000..1fafe11b1
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyModel.java
    @@ -0,0 +1,1001 @@
    +/*
    + * $Id: mxGraphHierarchyModel.java,v 1.12 2010-10-19 13:49:16 david Exp $
    + * Copyright (c) 2005-2010, David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.layout.hierarchical.model;
    +
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.Collection;
    +import java.util.HashSet;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.LinkedHashMap;
    +import java.util.LinkedHashSet;
    +import java.util.LinkedList;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +
    +import com.mxgraph.layout.hierarchical.mxHierarchicalLayout;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * Internal model of a hierarchical graph. This model stores nodes and edges
    + * equivalent to the real graph nodes and edges, but also stores the rank of the
    + * cells, the order within the ranks and the new candidate locations of cells.
    + * The internal model also reverses edge direction were appropriate , ignores
    + * self-loop and groups parallels together under one edge object.
    + */
    +public class mxGraphHierarchyModel
    +{
    +
    +	/**
    +	 * Whether the rank assignment is done from the sinks or sources.
    +	 */
    +	protected boolean scanRanksFromSinks = true;
    +
    +	/**
    +	 * Stores the largest rank number allocated
    +	 */
    +	public int maxRank;
    +
    +	/**
    +	 * Map from graph vertices to internal model nodes
    +	 */
    +	protected Map<Object, mxGraphHierarchyNode> vertexMapper = null;
    +
    +	/**
    +	 * Map from graph edges to internal model edges
    +	 */
    +	protected Map<Object, mxGraphHierarchyEdge> edgeMapper = null;
    +
    +	/**
    +	 * Mapping from rank number to actual rank
    +	 */
    +	public Map<Integer, mxGraphHierarchyRank> ranks = null;
    +
    +	/**
    +	 * Store of roots of this hierarchy model, these are real graph cells, not
    +	 * internal cells
    +	 */
    +	public List<Object> roots;
    +
    +	/**
    +	 * The parent cell whose children are being laid out
    +	 */
    +	public Object parent = null;
    +
    +	/**
    +	 * Count of the number of times the ancestor dfs has been used
    +	 */
    +	protected int dfsCount = 0;
    +
    +	/**
    +	 * Whether or not cells are ordered according to the order in the graph
    +	 * model. Defaults to false since sorting usually produces quadratic
    +	 * performance. Note that since JGraph 6 returns edges in a deterministic
    +	 * order, it might be that this layout is always deterministic using that
    +	 * JGraph regardless of this flag setting (i.e. leave it false in that case)
    +	 */
    +	protected boolean deterministic = false;
    +
    +	/** High value to start source layering scan rank value from */
    +	private final int SOURCESCANSTARTRANK = 100000000;
    +
    +	/**
    +	 * Creates an internal ordered graph model using the vertices passed in. If
    +	 * there are any, leftward edge need to be inverted in the internal model
    +	 * 
    +	 * @param layout
    +	 *            the enclosing layout object
    +	 * @param vertices
    +	 *            the vertices for this hierarchy
    +	 * @param ordered
    +	 *            whether or not the vertices are already ordered
    +	 * @param deterministic
    +	 *            whether or not this layout should be deterministic on each
    +	 * @param scanRanksFromSinks
    +	 *            Whether the rank assignment is done from the sinks or sources.
    +	 *            usage
    +	 */
    +	public mxGraphHierarchyModel(mxHierarchicalLayout layout,
    +			Object[] vertices, List<Object> roots, Object parent,
    +			boolean ordered, boolean deterministic, boolean scanRanksFromSinks)
    +	{
    +		mxGraph graph = layout.getGraph();
    +		this.deterministic = deterministic;
    +		this.scanRanksFromSinks = scanRanksFromSinks;
    +		this.roots = roots;
    +		this.parent = parent;
    +
    +		if (vertices == null)
    +		{
    +			vertices = graph.getChildVertices(parent);
    +		}
    +
    +		if (ordered)
    +		{
    +			formOrderedHierarchy(layout, vertices, parent);
    +		}
    +		else
    +		{
    +			// map of cells to internal cell needed for second run through
    +			// to setup the sink of edges correctly. Guess size by number
    +			// of edges is roughly same as number of vertices.
    +			vertexMapper = new Hashtable<Object, mxGraphHierarchyNode>(
    +					vertices.length);
    +			edgeMapper = new Hashtable<Object, mxGraphHierarchyEdge>(
    +					vertices.length);
    +			if (scanRanksFromSinks)
    +			{
    +				maxRank = 0;
    +			}
    +			else
    +			{
    +				maxRank = SOURCESCANSTARTRANK;
    +			}
    +			mxGraphHierarchyNode[] internalVertices = new mxGraphHierarchyNode[vertices.length];
    +			createInternalCells(layout, vertices, internalVertices);
    +
    +			// Go through edges set their sink values. Also check the
    +			// ordering if and invert edges if necessary
    +			for (int i = 0; i < vertices.length; i++)
    +			{
    +				Collection<mxGraphHierarchyEdge> edges = internalVertices[i].connectsAsSource;
    +				Iterator<mxGraphHierarchyEdge> iter = edges.iterator();
    +
    +				while (iter.hasNext())
    +				{
    +					mxGraphHierarchyEdge internalEdge = iter.next();
    +					Collection<Object> realEdges = internalEdge.edges;
    +					Iterator<Object> iter2 = realEdges.iterator();
    +
    +					if (iter2.hasNext())
    +					{
    +						Object realEdge = iter2.next();
    +						Object targetCell = graph.getView().getVisibleTerminal(
    +								realEdge, false);
    +						mxGraphHierarchyNode internalTargetCell = vertexMapper
    +								.get(targetCell);
    +
    +						if (internalTargetCell != null
    +								&& internalVertices[i] != internalTargetCell)
    +						{
    +							internalEdge.target = internalTargetCell;
    +
    +							if (internalTargetCell.connectsAsTarget.size() == 0)
    +							{
    +								internalTargetCell.connectsAsTarget = new LinkedHashSet<mxGraphHierarchyEdge>(
    +										4);
    +							}
    +
    +							internalTargetCell.connectsAsTarget
    +									.add(internalEdge);
    +						}
    +					}
    +				}
    +
    +				// Use the temp variable in the internal nodes to mark this
    +				// internal vertex as having been visited.
    +				internalVertices[i].temp[0] = 1;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Creates an internal ordered graph model using the vertices passed in. If
    +	 * there are any, leftward edge need to be inverted in the internal model
    +	 * 
    +	 * @param layout
    +	 *            reference to the layout algorithm
    +	 * @param vertices
    +	 *            the vertices to be laid out
    +	 */
    +	public void formOrderedHierarchy(mxHierarchicalLayout layout,
    +			Object[] vertices, Object parent)
    +	{
    +		mxGraph graph = layout.getGraph();
    +
    +		// map of cells to internal cell needed for second run through
    +		// to setup the sink of edges correctly. Guess size by number
    +		// of edges is roughly same as number of vertices.
    +		vertexMapper = new Hashtable<Object, mxGraphHierarchyNode>(
    +				vertices.length * 2);
    +		edgeMapper = new Hashtable<Object, mxGraphHierarchyEdge>(
    +				vertices.length);
    +		maxRank = 0;
    +		mxGraphHierarchyNode[] internalVertices = new mxGraphHierarchyNode[vertices.length];
    +		createInternalCells(layout, vertices, internalVertices);
    +
    +		// Go through edges set their sink values. Also check the
    +		// ordering if and invert edges if necessary
    +		// Need a temporary list to store which of these edges have been
    +		// inverted in the internal model. If connectsAsSource were changed
    +		// in the following while loop we'd get a
    +		// ConcurrentModificationException
    +		List<mxGraphHierarchyEdge> tempList = new ArrayList<mxGraphHierarchyEdge>();
    +
    +		for (int i = 0; i < vertices.length; i++)
    +		{
    +			Collection<mxGraphHierarchyEdge> edges = internalVertices[i].connectsAsSource;
    +			Iterator<mxGraphHierarchyEdge> iter = edges.iterator();
    +
    +			while (iter.hasNext())
    +			{
    +				mxGraphHierarchyEdge internalEdge = iter.next();
    +				Collection<Object> realEdges = internalEdge.edges;
    +				Iterator<Object> iter2 = realEdges.iterator();
    +
    +				if (iter2.hasNext())
    +				{
    +					Object realEdge = iter2.next();
    +					Object targetCell = graph.getView().getVisibleTerminal(
    +							realEdge, false);
    +					mxGraphHierarchyNode internalTargetCell = vertexMapper
    +							.get(targetCell);
    +
    +					if (internalTargetCell != null
    +							&& internalVertices[i] != internalTargetCell)
    +					{
    +						internalEdge.target = internalTargetCell;
    +
    +						if (internalTargetCell.connectsAsTarget.size() == 0)
    +						{
    +							internalTargetCell.connectsAsTarget = new ArrayList<mxGraphHierarchyEdge>(
    +									4);
    +						}
    +
    +						// The vertices passed in were ordered, check that the
    +						// target cell has not already been marked as visited
    +						if (internalTargetCell.temp[0] == 1)
    +						{
    +							// Internal Edge is leftward, reverse it
    +							internalEdge.invert();
    +							// There must be a connectsAsSource list already
    +							internalTargetCell.connectsAsSource
    +									.add(internalEdge);
    +							tempList.add(internalEdge);
    +							internalVertices[i].connectsAsTarget
    +									.add(internalEdge);
    +						}
    +						else
    +						{
    +							internalTargetCell.connectsAsTarget
    +									.add(internalEdge);
    +						}
    +					}
    +				}
    +			}
    +
    +			// Remove the inverted edges as sources from this node
    +			Iterator<mxGraphHierarchyEdge> iter2 = tempList.iterator();
    +
    +			while (iter2.hasNext())
    +			{
    +				internalVertices[i].connectsAsSource.remove(iter2.next());
    +			}
    +
    +			tempList.clear();
    +
    +			// Use the temp variable in the internal nodes to mark this
    +			// internal vertex as having been visited.
    +			internalVertices[i].temp[0] = 1;
    +		}
    +	}
    +
    +	/**
    +	 * Creates all edges in the internal model
    +	 * 
    +	 * @param layout
    +	 *            reference to the layout algorithm
    +	 * @param vertices
    +	 *            the vertices whom are to have an internal representation
    +	 *            created
    +	 * @param internalVertices
    +	 *            the blank internal vertices to have their information filled
    +	 *            in using the real vertices
    +	 */
    +	protected void createInternalCells(mxHierarchicalLayout layout,
    +			Object[] vertices, mxGraphHierarchyNode[] internalVertices)
    +	{
    +		mxGraph graph = layout.getGraph();
    +
    +		// Create internal edges
    +		for (int i = 0; i < vertices.length; i++)
    +		{
    +			internalVertices[i] = new mxGraphHierarchyNode(vertices[i]);
    +			vertexMapper.put(vertices[i], internalVertices[i]);
    +
    +			// If the layout is deterministic, order the cells
    +			Object[] conns = graph.getConnections(vertices[i], parent);
    +			List<Object> outgoingCells = Arrays.asList(graph.getOpposites(
    +					conns, vertices[i]));
    +			internalVertices[i].connectsAsSource = new LinkedHashSet<mxGraphHierarchyEdge>(
    +					outgoingCells.size());
    +
    +			// Create internal edges, but don't do any rank assignment yet
    +			// First use the information from the greedy cycle remover to
    +			// invert the leftward edges internally
    +			Iterator<Object> iter = outgoingCells.iterator();
    +
    +			while (iter.hasNext())
    +			{
    +				// Don't add self-loops
    +				Object cell = iter.next();
    +
    +				if (cell != vertices[i] && graph.getModel().isVertex(cell)
    +						&& !layout.isVertexIgnored(cell))
    +				{
    +					// Allow for parallel edges
    +					Object[] edges = graph.getEdgesBetween(vertices[i], cell,
    +							true);
    +
    +					if (edges != null && edges.length > 0)
    +					{
    +						ArrayList<Object> listEdges = new ArrayList<Object>(
    +								edges.length);
    +
    +						for (int j = 0; j < edges.length; j++)
    +						{
    +							listEdges.add(edges[j]);
    +						}
    +
    +						mxGraphHierarchyEdge internalEdge = new mxGraphHierarchyEdge(
    +								listEdges);
    +						Iterator<Object> iter2 = listEdges.iterator();
    +
    +						while (iter2.hasNext())
    +						{
    +							Object edge = iter2.next();
    +							edgeMapper.put(edge, internalEdge);
    +
    +							// Resets all point on the edge and disables the edge style
    +							// without deleting it from the cell style
    +							graph.resetEdge(edge);
    +
    +							if (layout.isDisableEdgeStyle())
    +							{
    +								layout.setEdgeStyleEnabled(edge, false);
    +								layout.setOrthogonalEdge(edge,true);
    +							}
    +						}
    +
    +						internalEdge.source = internalVertices[i];
    +						internalVertices[i].connectsAsSource.add(internalEdge);
    +					}
    +				}
    +			}
    +
    +			// Ensure temp variable is cleared from any previous use
    +			internalVertices[i].temp[0] = 0;
    +		}
    +	}
    +
    +	/**
    +	 * Basic determination of minimum layer ranking by working from from sources
    +	 * or sinks and working through each node in the relevant edge direction.
    +	 * Starting at the sinks is basically a longest path layering algorithm.
    +	 */
    +	public void initialRank()
    +	{
    +		Collection<mxGraphHierarchyNode> internalNodes = vertexMapper.values();
    +		LinkedList<mxGraphHierarchyNode> startNodes = new LinkedList<mxGraphHierarchyNode>();
    +
    +		if (!scanRanksFromSinks && roots != null)
    +		{
    +			Iterator<Object> iter = roots.iterator();
    +
    +			while (iter.hasNext())
    +			{
    +				mxGraphHierarchyNode internalNode = vertexMapper.get(iter
    +						.next());
    +
    +				if (internalNode != null)
    +				{
    +					startNodes.add(internalNode);
    +				}
    +			}
    +		}
    +
    +		if (scanRanksFromSinks)
    +		{
    +			Iterator<mxGraphHierarchyNode> iter = internalNodes.iterator();
    +
    +			while (iter.hasNext())
    +			{
    +				mxGraphHierarchyNode internalNode = iter.next();
    +
    +				if (internalNode.connectsAsSource == null
    +						|| internalNode.connectsAsSource.isEmpty())
    +				{
    +					startNodes.add(internalNode);
    +				}
    +			}
    +		}
    +
    +		if (startNodes.isEmpty())
    +		{
    +			// Start list from sources
    +			Iterator<mxGraphHierarchyNode> iter = internalNodes.iterator();
    +
    +			while (iter.hasNext())
    +			{
    +				mxGraphHierarchyNode internalNode = iter.next();
    +				if (internalNode.connectsAsTarget == null
    +						|| internalNode.connectsAsTarget.isEmpty())
    +				{
    +					startNodes.add(internalNode);
    +				}
    +			}
    +		}
    +
    +		Iterator<mxGraphHierarchyNode> iter = internalNodes.iterator();
    +
    +		while (iter.hasNext())
    +		{
    +			mxGraphHierarchyNode internalNode = iter.next();
    +			// Mark the node as not having had a layer assigned
    +			internalNode.temp[0] = -1;
    +		}
    +
    +		List<mxGraphHierarchyNode> startNodesCopy = new ArrayList<mxGraphHierarchyNode>(
    +				startNodes);
    +
    +		while (!startNodes.isEmpty())
    +		{
    +			mxGraphHierarchyNode internalNode = startNodes.getFirst();
    +			Collection<mxGraphHierarchyEdge> layerDeterminingEdges;
    +			Collection<mxGraphHierarchyEdge> edgesToBeMarked;
    +
    +			if (scanRanksFromSinks)
    +			{
    +				layerDeterminingEdges = internalNode.connectsAsSource;
    +				edgesToBeMarked = internalNode.connectsAsTarget;
    +			}
    +			else
    +			{
    +				layerDeterminingEdges = internalNode.connectsAsTarget;
    +				edgesToBeMarked = internalNode.connectsAsSource;
    +			}
    +
    +			// flag to keep track of whether or not all layer determining
    +			// edges have been scanned
    +			boolean allEdgesScanned = true;
    +
    +			// Work out the layer of this node from the layer determining
    +			// edges
    +			Iterator<mxGraphHierarchyEdge> iter2 = layerDeterminingEdges
    +					.iterator();
    +
    +			// The minimum layer number of any node connected by one of
    +			// the layer determining edges variable. If we are starting
    +			// from sources, need to start at some huge value and
    +			// normalise down afterwards
    +			int minimumLayer = 0;
    +			if (!scanRanksFromSinks)
    +			{
    +				minimumLayer = SOURCESCANSTARTRANK;
    +			}
    +
    +			while (allEdgesScanned && iter2.hasNext())
    +			{
    +				mxGraphHierarchyEdge internalEdge = iter2.next();
    +
    +				if (internalEdge.temp[0] == 5270620)
    +				{
    +					// This edge has been scanned, get the layer of the
    +					// node on the other end
    +					mxGraphHierarchyNode otherNode;
    +
    +					if (scanRanksFromSinks)
    +					{
    +						otherNode = internalEdge.target;
    +					}
    +					else
    +					{
    +						otherNode = internalEdge.source;
    +					}
    +
    +					if (scanRanksFromSinks)
    +					{
    +						minimumLayer = Math.max(minimumLayer,
    +								otherNode.temp[0] + 1);
    +					}
    +					else
    +					{
    +						minimumLayer = Math.min(minimumLayer,
    +								otherNode.temp[0] - 1);
    +					}
    +				}
    +				else
    +				{
    +					allEdgesScanned = false;
    +				}
    +			}
    +
    +			// If all edge have been scanned, assign the layer, mark all
    +			// edges in the other direction and remove from the nodes list
    +			if (allEdgesScanned)
    +			{
    +				internalNode.temp[0] = minimumLayer;
    +				if (scanRanksFromSinks)
    +				{
    +					maxRank = Math.max(maxRank, minimumLayer);
    +				}
    +				else
    +				{
    +					maxRank = Math.min(maxRank, minimumLayer);
    +				}
    +
    +				if (edgesToBeMarked != null)
    +				{
    +					Iterator<mxGraphHierarchyEdge> iter3 = edgesToBeMarked
    +							.iterator();
    +
    +					while (iter3.hasNext())
    +					{
    +						mxGraphHierarchyEdge internalEdge = iter3
    +								.next();
    +						// Assign unique stamp ( y/m/d/h )
    +						internalEdge.temp[0] = 5270620;
    +
    +						// Add node on other end of edge to LinkedList of
    +						// nodes to be analysed
    +						mxGraphHierarchyNode otherNode;
    +
    +						if (scanRanksFromSinks)
    +						{
    +							otherNode = internalEdge.source;
    +						}
    +						else
    +						{
    +							otherNode = internalEdge.target;
    +						}
    +
    +						// Only add node if it hasn't been assigned a layer
    +						if (otherNode.temp[0] == -1)
    +						{
    +							startNodes.addLast(otherNode);
    +
    +							// Mark this other node as neither being
    +							// unassigned nor assigned so it isn't
    +							// added to this list again, but it's
    +							// layer isn't used in any calculation.
    +							otherNode.temp[0] = -2;
    +						}
    +					}
    +				}
    +
    +				startNodes.removeFirst();
    +			}
    +			else
    +			{
    +				// Not all the edges have been scanned, get to the back of
    +				// the class and put the dunces cap on
    +				Object removedCell = startNodes.removeFirst();
    +				startNodes.addLast(internalNode);
    +
    +				if (removedCell == internalNode && startNodes.size() == 1)
    +				{
    +					// This is an error condition, we can't get out of
    +					// this loop. It could happen for more than one node
    +					// but that's a lot harder to detect. Log the error
    +					// TODO make log comment
    +					break;
    +				}
    +			}
    +		}
    +
    +		if (scanRanksFromSinks)
    +		{
    +			// Tighten the rank 0 nodes as far as possible
    +			for (int i = 0; i < startNodesCopy.size(); i++)
    +			{
    +				mxGraphHierarchyNode internalNode = startNodesCopy
    +						.get(i);
    +				int currentMinLayer = 1000000;
    +				Iterator<mxGraphHierarchyEdge> iter2 = internalNode.connectsAsTarget
    +						.iterator();
    +
    +				while (iter2.hasNext())
    +				{
    +					mxGraphHierarchyEdge internalEdge = iter2
    +							.next();
    +					mxGraphHierarchyNode otherNode = internalEdge.source;
    +					internalNode.temp[0] = Math.min(currentMinLayer,
    +							otherNode.temp[0] - 1);
    +					currentMinLayer = internalNode.temp[0];
    +				}
    +			}
    +		}
    +		else
    +		{
    +			// Normalize the ranks down from their large starting value to place
    +			// at least 1 sink on layer 0
    +			iter = internalNodes.iterator();
    +			while (iter.hasNext())
    +			{
    +				mxGraphHierarchyNode internalNode = iter
    +						.next();
    +				// Mark the node as not having had a layer assigned
    +				internalNode.temp[0] -= maxRank;
    +			}
    +			// Reset the maxRank to that which would be expected for a from-sink
    +			// scan
    +			maxRank = SOURCESCANSTARTRANK - maxRank;
    +		}
    +	}
    +
    +	/**
    +	 * Fixes the layer assignments to the values stored in the nodes. Also needs
    +	 * to create dummy nodes for edges that cross layers.
    +	 */
    +	public void fixRanks()
    +	{
    +		final mxGraphHierarchyRank[] rankList = new mxGraphHierarchyRank[maxRank + 1];
    +		ranks = new LinkedHashMap<Integer, mxGraphHierarchyRank>(maxRank + 1);
    +
    +		for (int i = 0; i < maxRank + 1; i++)
    +		{
    +			rankList[i] = new mxGraphHierarchyRank();
    +			ranks.put(new Integer(i), rankList[i]);
    +		}
    +
    +		// Perform a DFS to obtain an initial ordering for each rank.
    +		// Without doing this you would end up having to process
    +		// crossings for a standard tree.
    +		mxGraphHierarchyNode[] rootsArray = null;
    +
    +		if (roots != null)
    +		{
    +			Object[] oldRootsArray = roots.toArray();
    +			rootsArray = new mxGraphHierarchyNode[oldRootsArray.length];
    +
    +			for (int i = 0; i < oldRootsArray.length; i++)
    +			{
    +				Object node = oldRootsArray[i];
    +				mxGraphHierarchyNode internalNode = vertexMapper.get(node);
    +				rootsArray[i] = internalNode;
    +			}
    +		}
    +
    +		visit(new mxGraphHierarchyModel.CellVisitor()
    +		{
    +			public void visit(mxGraphHierarchyNode parent, mxGraphHierarchyNode cell,
    +					mxGraphHierarchyEdge connectingEdge, int layer, int seen)
    +			{
    +				mxGraphHierarchyNode node = cell;
    +
    +				if (seen == 0 && node.maxRank < 0 && node.minRank < 0)
    +				{
    +					rankList[node.temp[0]]
    +							.add(cell);
    +					node.maxRank = node.temp[0];
    +					node.minRank = node.temp[0];
    +
    +					// Set temp[0] to the nodes position in the rank
    +					node.temp[0] = rankList[node.maxRank].size() - 1;
    +				}
    +
    +				if (parent != null && connectingEdge != null)
    +				{
    +					int parentToCellRankDifference = (parent).maxRank
    +							- node.maxRank;
    +
    +					if (parentToCellRankDifference > 1)
    +					{
    +						// There are ranks in between the parent and current cell
    +						mxGraphHierarchyEdge edge = connectingEdge;
    +						edge.maxRank = (parent).maxRank;
    +						edge.minRank = (cell).maxRank;
    +						edge.temp = new int[parentToCellRankDifference - 1];
    +						edge.x = new double[parentToCellRankDifference - 1];
    +						edge.y = new double[parentToCellRankDifference - 1];
    +
    +						for (int i = edge.minRank + 1; i < edge.maxRank; i++)
    +						{
    +							// The connecting edge must be added to the
    +							// appropriate ranks
    +							rankList[i].add(edge);
    +							edge.setGeneralPurposeVariable(i, rankList[i]
    +									.size() - 1);
    +						}
    +					}
    +				}
    +			}
    +		}, rootsArray, false, null);
    +	}
    +
    +	/**
    +	 * A depth first search through the internal hierarchy model
    +	 * 
    +	 * @param visitor
    +	 *            the visitor pattern to be called for each node
    +	 * @param trackAncestors
    +	 *            whether or not the search is to keep track all nodes directly
    +	 *            above this one in the search path
    +	 */
    +	public void visit(CellVisitor visitor, mxGraphHierarchyNode[] dfsRoots,
    +			boolean trackAncestors, Set<mxGraphHierarchyNode> seenNodes)
    +	{
    +		// Run dfs through on all roots
    +		if (dfsRoots != null)
    +		{
    +			for (int i = 0; i < dfsRoots.length; i++)
    +			{
    +				mxGraphHierarchyNode internalNode = dfsRoots[i];
    +
    +				if (internalNode != null)
    +				{
    +					if (seenNodes == null)
    +					{
    +						seenNodes = new HashSet<mxGraphHierarchyNode>();
    +					}
    +
    +					if (trackAncestors)
    +					{
    +						// Set up hash code for root
    +						internalNode.hashCode = new int[2];
    +						internalNode.hashCode[0] = dfsCount;
    +						internalNode.hashCode[1] = i;
    +						dfs(null, internalNode, null, visitor, seenNodes,
    +								internalNode.hashCode, i, 0);
    +					}
    +					else
    +					{
    +						dfs(null, internalNode, null, visitor, seenNodes, 0);
    +					}
    +				}
    +			}
    +
    +			dfsCount++;
    +		}
    +	}
    +
    +	/**
    +	 * Performs a depth first search on the internal hierarchy model
    +	 * 
    +	 * @param parent
    +	 *            the parent internal node of the current internal node
    +	 * @param root
    +	 *            the current internal node
    +	 * @param connectingEdge
    +	 *            the internal edge connecting the internal node and the parent
    +	 *            internal node, if any
    +	 * @param visitor
    +	 *            the visitor pattern to be called for each node
    +	 * @param seen
    +	 *            a set of all nodes seen by this dfs a set of all of the
    +	 *            ancestor node of the current node
    +	 * @param layer
    +	 *            the layer on the dfs tree ( not the same as the model ranks )
    +	 */
    +	public void dfs(mxGraphHierarchyNode parent, mxGraphHierarchyNode root,
    +			mxGraphHierarchyEdge connectingEdge, CellVisitor visitor,
    +			Set<mxGraphHierarchyNode> seen, int layer)
    +	{
    +		if (root != null)
    +		{
    +			if (!seen.contains(root))
    +			{
    +				visitor.visit(parent, root, connectingEdge, layer, 0);
    +				seen.add(root);
    +
    +				// Copy the connects as source list so that visitors
    +				// can change the original for edge direction inversions
    +				final Object[] outgoingEdges = root.connectsAsSource.toArray();
    +
    +				for (int i = 0; i < outgoingEdges.length; i++)
    +				{
    +					mxGraphHierarchyEdge internalEdge = (mxGraphHierarchyEdge) outgoingEdges[i];
    +					mxGraphHierarchyNode targetNode = internalEdge.target;
    +
    +					// Root check is O(|roots|)
    +					dfs(root, targetNode, internalEdge, visitor, seen,
    +							layer + 1);
    +				}
    +			}
    +			else
    +			{
    +				// Use the int field to indicate this node has been seen
    +				visitor.visit(parent, root, connectingEdge, layer, 1);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Performs a depth first search on the internal hierarchy model. This dfs
    +	 * extends the default version by keeping track of cells ancestors, but it
    +	 * should be only used when necessary because of it can be computationally
    +	 * intensive for deep searches.
    +	 * 
    +	 * @param parent
    +	 *            the parent internal node of the current internal node
    +	 * @param root
    +	 *            the current internal node
    +	 * @param connectingEdge
    +	 *            the internal edge connecting the internal node and the parent
    +	 *            internal node, if any
    +	 * @param visitor
    +	 *            the visitor pattern to be called for each node
    +	 * @param seen
    +	 *            a set of all nodes seen by this dfs
    +	 * @param ancestors
    +	 *            the parent hash code
    +	 * @param childHash
    +	 *            the new hash code for this node
    +	 * @param layer
    +	 *            the layer on the dfs tree ( not the same as the model ranks )
    +	 */
    +	public void dfs(mxGraphHierarchyNode parent, mxGraphHierarchyNode root,
    +			mxGraphHierarchyEdge connectingEdge, CellVisitor visitor,
    +			Set<mxGraphHierarchyNode> seen, int[] ancestors, int childHash,
    +			int layer)
    +	{
    +		// Explanation of custom hash set. Previously, the ancestors variable
    +		// was passed through the dfs as a HashSet. The ancestors were copied
    +		// into a new HashSet and when the new child was processed it was also
    +		// added to the set. If the current node was in its ancestor list it
    +		// meant there is a cycle in the graph and this information is passed
    +		// to the visitor.visit() in the seen parameter. The HashSet clone was
    +		// very expensive on CPU so a custom hash was developed using primitive
    +		// types. temp[] couldn't be used so hashCode[] was added to each node.
    +		// Each new child adds another int to the array, copying the prefix
    +		// from its parent. Child of the same parent add different ints (the
    +		// limit is therefore 2^32 children per parent...). If a node has a
    +		// child with the hashCode already set then the child code is compared
    +		// to the same portion of the current nodes array. If they match there
    +		// is a loop.
    +		// Note that the basic mechanism would only allow for 1 use of this
    +		// functionality, so the root nodes have two ints. The second int is
    +		// incremented through each node root and the first is incremented
    +		// through each run of the dfs algorithm (therefore the dfs is not
    +		// thread safe). The hash code of each node is set if not already set,
    +		// or if the first int does not match that of the current run.
    +		if (root != null)
    +		{
    +			if (parent != null)
    +			{
    +				// Form this nodes hash code if necessary, that is, if the
    +				// hashCode variable has not been initialized or if the
    +				// start of the parent hash code does not equal the start of
    +				// this nodes hash code, indicating the code was set on a
    +				// previous run of this dfs.
    +				if (root.hashCode == null
    +						|| root.hashCode[0] != parent.hashCode[0])
    +				{
    +					int hashCodeLength = parent.hashCode.length + 1;
    +					root.hashCode = new int[hashCodeLength];
    +					System.arraycopy(parent.hashCode, 0, root.hashCode, 0,
    +							parent.hashCode.length);
    +					root.hashCode[hashCodeLength - 1] = childHash;
    +				}
    +			}
    +
    +			if (!seen.contains(root))
    +			{
    +				visitor.visit(parent, root, connectingEdge, layer, 0);
    +				seen.add(root);
    +				// Copy the connects as source list so that visitors
    +				// can change the original for edge direction inversions
    +				final Object[] outgoingEdges = root.connectsAsSource.toArray();
    +
    +				for (int i = 0; i < outgoingEdges.length; i++)
    +				{
    +					mxGraphHierarchyEdge internalEdge = (mxGraphHierarchyEdge) outgoingEdges[i];
    +					mxGraphHierarchyNode targetNode = internalEdge.target;
    +
    +					// Root check is O(|roots|)
    +					dfs(root, targetNode, internalEdge, visitor, seen,
    +							root.hashCode, i, layer + 1);
    +				}
    +			}
    +			else
    +			{
    +				// Use the int field to indicate this node has been seen
    +				visitor.visit(parent, root, connectingEdge, layer, 1);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Defines the interface that visitors use to perform operations upon the
    +	 * graph information during depth first search (dfs) or other tree-traversal
    +	 * strategies implemented by subclassers.
    +	 */
    +	public interface CellVisitor
    +	{
    +
    +		/**
    +		 * The method within which the visitor will perform operations upon the
    +		 * graph model
    +		 * 
    +		 * @param parent
    +		 *            the parent cell the current cell
    +		 * @param cell
    +		 *            the current cell visited
    +		 * @param connectingEdge
    +		 *            the edge that led the last cell visited to this cell
    +		 * @param layer
    +		 *            the current layer of the tree
    +		 * @param seen
    +		 *            an int indicating whether this cell has been seen
    +		 *            previously
    +		 */
    +		public void visit(mxGraphHierarchyNode parent, mxGraphHierarchyNode cell,
    +				mxGraphHierarchyEdge connectingEdge, int layer, int seen);
    +	}
    +
    +	/**
    +	 * @return Returns the vertexMapping.
    +	 */
    +	public Map<Object, mxGraphHierarchyNode> getVertexMapper()
    +	{
    +		if (vertexMapper == null)
    +		{
    +			vertexMapper = new Hashtable<Object, mxGraphHierarchyNode>();
    +		}
    +		return vertexMapper;
    +	}
    +
    +	/**
    +	 * @param vertexMapping
    +	 *            The vertexMapping to set.
    +	 */
    +	public void setVertexMapper(Map<Object, mxGraphHierarchyNode> vertexMapping)
    +	{
    +		this.vertexMapper = vertexMapping;
    +	}
    +
    +	/**
    +	 * @return Returns the edgeMapper.
    +	 */
    +	public Map<Object, mxGraphHierarchyEdge> getEdgeMapper()
    +	{
    +		return edgeMapper;
    +	}
    +
    +	/**
    +	 * @param edgeMapper
    +	 *            The edgeMapper to set.
    +	 */
    +	public void setEdgeMapper(Map<Object, mxGraphHierarchyEdge> edgeMapper)
    +	{
    +		this.edgeMapper = edgeMapper;
    +	}
    +
    +	/**
    +	 * @return Returns the dfsCount.
    +	 */
    +	public int getDfsCount()
    +	{
    +		return dfsCount;
    +	}
    +
    +	/**
    +	 * @param dfsCount
    +	 *            The dfsCount to set.
    +	 */
    +	public void setDfsCount(int dfsCount)
    +	{
    +		this.dfsCount = dfsCount;
    +	}
    +
    +	/**
    +	 * @return Returns the deterministic.
    +	 */
    +	public boolean isDeterministic()
    +	{
    +		return deterministic;
    +	}
    +
    +	/**
    +	 * @param deterministic
    +	 *            The deterministic to set.
    +	 */
    +	public void setDeterministic(boolean deterministic)
    +	{
    +		this.deterministic = deterministic;
    +	}
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.java b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.java
    new file mode 100644
    index 000000000..aa2ab4602
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyNode.java
    @@ -0,0 +1,216 @@
    +/*
    + * Copyright (c) 2005, David Benson
    + *
    + * All rights reserved.
    + *
    + * This file is licensed under the JGraph software license, a copy of which
    + * will have been provided to you in the file LICENSE at the root of your
    + * installation directory. If you are unable to locate this file please
    + * contact JGraph sales for another copy.
    + */
    +package com.mxgraph.layout.hierarchical.model;
    +
    +import java.util.ArrayList;
    +import java.util.Collection;
    +import java.util.Iterator;
    +import java.util.List;
    +
    +/**
    + * An abstraction of an internal node in the hierarchy layout
    + */
    +public class mxGraphHierarchyNode extends mxGraphAbstractHierarchyCell
    +{
    +
    +	/**
    +	 * Shared empty connection map to return instead of null in applyMap.
    +	 */
    +	public static Collection<mxGraphHierarchyEdge> emptyConnectionMap = new ArrayList<mxGraphHierarchyEdge>(0);
    +
    +	/**
    +	 * The graph cell this object represents.
    +	 */
    +	public Object cell = null;
    +
    +	/**
    +	 * Collection of hierarchy edges that have this node as a target
    +	 */
    +	public Collection<mxGraphHierarchyEdge> connectsAsTarget = emptyConnectionMap;
    +
    +	/**
    +	 * Collection of hierarchy edges that have this node as a source
    +	 */
    +	public Collection<mxGraphHierarchyEdge> connectsAsSource = emptyConnectionMap;
    +
    +	/**
    +	 * Assigns a unique hashcode for each node. Used by the model dfs instead
    +	 * of copying HashSets
    +	 */
    +	public int[] hashCode;
    +
    +	/**
    +	 * Constructs an internal node to represent the specified real graph cell
    +	 * @param cell the real graph cell this node represents
    +	 */
    +	public mxGraphHierarchyNode(Object cell)
    +	{
    +		this.cell = cell;
    +	}
    +
    +	/**
    +	 * Returns the integer value of the layer that this node resides in
    +	 * @return the integer value of the layer that this node resides in
    +	 */
    +	public int getRankValue()
    +	{
    +		return maxRank;
    +	}
    +
    +	/**
    +	 * Returns the cells this cell connects to on the next layer up
    +	 * @param layer the layer this cell is on
    +	 * @return the cells this cell connects to on the next layer up
    +	 */
    +	@SuppressWarnings("unchecked")
    +	public List<mxGraphAbstractHierarchyCell> getNextLayerConnectedCells(int layer)
    +	{
    +		if (nextLayerConnectedCells == null)
    +		{
    +			nextLayerConnectedCells = new ArrayList[1];
    +			nextLayerConnectedCells[0] = new ArrayList<mxGraphAbstractHierarchyCell>(connectsAsTarget.size());
    +			Iterator<mxGraphHierarchyEdge> iter = connectsAsTarget.iterator();
    +			
    +			while (iter.hasNext())
    +			{
    +				mxGraphHierarchyEdge edge = iter.next();
    +
    +				if (edge.maxRank == -1 || edge.maxRank == layer + 1)
    +				{
    +					// Either edge is not in any rank or
    +					// no dummy nodes in edge, add node of other side of edge
    +					nextLayerConnectedCells[0].add(edge.source);
    +				}
    +				else
    +				{
    +					// Edge spans at least two layers, add edge
    +					nextLayerConnectedCells[0].add(edge);
    +				}
    +			}
    +		}
    +
    +		return nextLayerConnectedCells[0];
    +	}
    +
    +	/**
    +	 * Returns the cells this cell connects to on the next layer down
    +	 * @param layer the layer this cell is on
    +	 * @return the cells this cell connects to on the next layer down
    +	 */
    +	@SuppressWarnings("unchecked")
    +	public List<mxGraphAbstractHierarchyCell> getPreviousLayerConnectedCells(int layer)
    +	{
    +		if (previousLayerConnectedCells == null)
    +		{
    +			previousLayerConnectedCells = new ArrayList[1];
    +			previousLayerConnectedCells[0] = new ArrayList<mxGraphAbstractHierarchyCell>(connectsAsSource
    +					.size());
    +			Iterator<mxGraphHierarchyEdge> iter = connectsAsSource.iterator();
    +
    +			while (iter.hasNext())
    +			{
    +				mxGraphHierarchyEdge edge = iter.next();
    +
    +				if (edge.minRank == -1 || edge.minRank == layer - 1)
    +				{
    +					// No dummy nodes in edge, add node of other side of edge
    +					previousLayerConnectedCells[0].add(edge.target);
    +				}
    +				else
    +				{
    +					// Edge spans at least two layers, add edge
    +					previousLayerConnectedCells[0].add(edge);
    +				}
    +			}
    +		}
    +
    +		return previousLayerConnectedCells[0];
    +	}
    +
    +	/**
    +	 * 
    +	 * @return whether or not this cell is an edge
    +	 */
    +	public boolean isEdge()
    +	{
    +		return false;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return whether or not this cell is a node
    +	 */
    +	public boolean isVertex()
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 * Gets the value of temp for the specified layer
    +	 * 
    +	 * @param layer
    +	 *            the layer relating to a specific entry into temp
    +	 * @return the value for that layer
    +	 */
    +	public int getGeneralPurposeVariable(int layer)
    +	{
    +		return temp[0];
    +	}
    +
    +	/**
    +	 * Set the value of temp for the specified layer
    +	 * 
    +	 * @param layer
    +	 *            the layer relating to a specific entry into temp
    +	 * @param value
    +	 *            the value for that layer
    +	 */
    +	public void setGeneralPurposeVariable(int layer, int value)
    +	{
    +		temp[0] = value;
    +	}
    +
    +	public boolean isAncestor(mxGraphHierarchyNode otherNode)
    +	{
    +		// Firstly, the hash code of this node needs to be shorter than the
    +		// other node
    +		if (otherNode != null && hashCode != null && otherNode.hashCode != null
    +				&& hashCode.length < otherNode.hashCode.length)
    +		{
    +			if (hashCode == otherNode.hashCode)
    +			{
    +				return true;
    +			}
    +			
    +			if (hashCode == null)
    +			{
    +				return false;
    +			}
    +			
    +			// Secondly, this hash code must match the start of the other
    +			// node's hash code. Arrays.equals cannot be used here since
    +			// the arrays are different length, and we do not want to
    +			// perform another array copy.
    +			for (int i = 0; i < hashCode.length; i++)
    +			{
    +				if (hashCode[i] != otherNode.hashCode[i])
    +				{
    +					return false;
    +				}
    +			}
    +
    +			return true;
    +		}
    +
    +		return false;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.java b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.java
    new file mode 100644
    index 000000000..a624823c3
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/model/mxGraphHierarchyRank.java
    @@ -0,0 +1,26 @@
    +/*
    + * Copyright (c) 2005, David Benson
    + *
    + * All rights reserved.
    + *
    + * This file is licensed under the JGraph software license, a copy of which
    + * will have been provided to you in the file LICENSE at the root of your
    + * installation directory. If you are unable to locate this file please
    + * contact JGraph sales for another copy.
    + */
    +package com.mxgraph.layout.hierarchical.model;
    +
    +import java.util.LinkedHashSet;
    +
    +/**
    + * An abstraction of a rank in the hierarchy layout. Should be ordered, perform
    + * remove in constant time and contains in constant time
    + */
    +public class mxGraphHierarchyRank extends LinkedHashSet<mxGraphAbstractHierarchyCell>
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -2781491210687143878L;
    +}
    diff --git a/java/src/com/mxgraph/layout/hierarchical/mxHierarchicalLayout.java b/java/src/com/mxgraph/layout/hierarchical/mxHierarchicalLayout.java
    new file mode 100644
    index 000000000..cb31ae6d2
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/mxHierarchicalLayout.java
    @@ -0,0 +1,606 @@
    +/*
    + * $Id: mxHierarchicalLayout.java,v 1.12 2010-12-01 18:08:40 david Exp $
    + * Copyright (c) 2005-2010, David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.layout.hierarchical;
    +
    +import java.awt.geom.Point2D;
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.HashSet;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.Set;
    +import java.util.Stack;
    +import java.util.logging.Level;
    +import java.util.logging.Logger;
    +
    +import javax.swing.SwingConstants;
    +
    +import com.mxgraph.layout.mxGraphLayout;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel;
    +import com.mxgraph.layout.hierarchical.stage.mxCoordinateAssignment;
    +import com.mxgraph.layout.hierarchical.stage.mxHierarchicalLayoutStage;
    +import com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction;
    +import com.mxgraph.layout.hierarchical.stage.mxMinimumCycleRemover;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * The top level compound layout of the hierarchical layout. The individual
    + * elements of the layout are called in sequence.
    + */
    +public class mxHierarchicalLayout extends mxGraphLayout/*,
    +JGraphLayout.Stoppable*/
    +{
    +	/** The root nodes of the layout */
    +	protected List<Object> roots = null;
    +
    +	/**
    +	 * Specifies if the parent should be resized after the layout so that it
    +	 * contains all the child cells. Default is false. @See parentBorder.
    +	 */
    +	protected boolean resizeParent = false;
    +
    +	/**
    +	 * Specifies if the parnent should be moved if resizeParent is enabled.
    +	 * Default is false. @See resizeParent.
    +	 */
    +	protected boolean moveParent = false;
    +
    +	/**
    +	 * The border to be added around the children if the parent is to be
    +	 * resized using resizeParent. Default is 0. @See resizeParent.
    +	 */
    +	protected int parentBorder = 0;
    +
    +	/**
    +	 * The spacing buffer added between cells on the same layer
    +	 */
    +	protected double intraCellSpacing = 30.0;
    +
    +	/**
    +	 * The spacing buffer added between cell on adjacent layers
    +	 */
    +	protected double interRankCellSpacing = 50.0;
    +
    +	/**
    +	 * The spacing buffer between unconnected hierarchies
    +	 */
    +	protected double interHierarchySpacing = 60.0;
    +
    +	/**
    +	 * The distance between each parallel edge on each ranks for long edges
    +	 */
    +	protected double parallelEdgeSpacing = 10.0;
    +
    +	/**
    +	 * The position of the root node(s) relative to the laid out graph in. 
    +	 * Default is <code>SwingConstants.NORTH</code>, i.e. top-down.
    +	 */
    +	protected int orientation = SwingConstants.NORTH;
    +
    +	/**
    +	 *  Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    +	 * modified by the result. Default is true.
    +	 */
    +	protected boolean disableEdgeStyle = true;
    +
    +	/**
    +	 * Whether or not to perform local optimisations and iterate multiple times
    +	 * through the algorithm
    +	 */
    +	protected boolean fineTuning = true;
    +
    +	/**
    +	 * Whether or not cells are ordered according to the order in the graph
    +	 * model. Defaults to false since sorting usually produces quadratic
    +	 * performance. Note that since mxGraph returns edges in a deterministic
    +	 * order, it might be that this layout is always deterministic using that
    +	 * JGraph regardless of this flag setting (i.e. leave it false in that
    +	 * case). Default is true.
    +	 */
    +	protected boolean deterministic;
    +
    +	/**
    +	 * Whether or not to fix the position of the root cells. Keep in mind to
    +	 * turn off features such as move to origin when fixing the roots, move
    +	 * to origin usually overrides this flag (in JGraph it does).
    +	 */
    +	protected boolean fixRoots = false;
    +
    +	/**
    +	 * Whether or not the initial scan of the graph to determine the layer
    +	 * assigned to each vertex starts from the sinks or source (the sinks
    +	 * being vertices with the fewest, preferable zero, outgoing edges and
    +	 * sources same with incoming edges). Starting from either direction
    +	 * can tight the layout up and also produce better results for certain
    +	 * types of graphs. If the result for the default is not good enough
    +	 * try a few sample layouts with the value false to see if they improve
    +	 */
    +	protected boolean layoutFromSinks = true;
    +
    +	/**
    +	 * The internal model formed of the layout
    +	 */
    +	protected mxGraphHierarchyModel model = null;
    +
    +	/**
    +	 * The layout progress bar
    +	 */
    +	//protected JGraphLayoutProgress progress = new JGraphLayoutProgress();
    +	/** The logger for this class */
    +	private static Logger logger = Logger
    +			.getLogger("com.jgraph.layout.hierarchical.JGraphHierarchicalLayout");
    +
    +	/**
    +	 * Constructs a hierarchical layout
    +	 * @param graph the graph to lay out
    +	 * 
    +	 */
    +	public mxHierarchicalLayout(mxGraph graph)
    +	{
    +		this(graph, SwingConstants.NORTH);
    +	}
    +
    +	/**
    +	 * Constructs a hierarchical layout
    +	 * @param graph the graph to lay out
    +	 * @param orientation <code>SwingConstants.NORTH, SwingConstants.EAST, SwingConstants.SOUTH</code> or <code> SwingConstants.WEST</code>
    +	 * 
    +	 */
    +	public mxHierarchicalLayout(mxGraph graph, int orientation)
    +	{
    +		super(graph);
    +		this.orientation = orientation;
    +	}
    +
    +	/**
    +	 * Returns the model for this layout algorithm.
    +	 */
    +	public mxGraphHierarchyModel getModel()
    +	{
    +		return model;
    +	}
    +
    +	/**
    +	 * Executes the layout for the children of the specified parent.
    +	 * 
    +	 * @param parent Parent cell that contains the children to be laid out.
    +	 */
    +	public void execute(Object parent)
    +	{
    +		execute(parent, null);
    +	}
    +
    +	/**
    +	 * Executes the layout for the children of the specified parent.
    +	 * 
    +	 * @param parent Parent cell that contains the children to be laid out.
    +	 * @param roots the starting roots of the layout
    +	 */
    +	public void execute(Object parent, List<Object> roots)
    +	{
    +		if (roots == null)
    +		{
    +			roots = graph.findTreeRoots(parent);
    +		}
    +
    +		this.roots = roots;
    +		mxIGraphModel model = graph.getModel();
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			run(parent);
    +
    +			if (isResizeParent() && !graph.isCellCollapsed(parent))
    +			{
    +				graph.updateGroupBounds(new Object[] { parent },
    +						getParentBorder(), isMoveParent());
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * The API method used to exercise the layout upon the graph description
    +	 * and produce a separate description of the vertex position and edge
    +	 * routing changes made.
    +	 */
    +	public void run(Object parent)
    +	{
    +		// Separate out unconnected hierarchies
    +		List<Set<Object>> hierarchyVertices = new ArrayList<Set<Object>>();
    +
    +		// Keep track of one root in each hierarchy in case it's fixed position
    +		List<Object> fixedRoots = null;
    +		List<Point2D> rootLocations = null;
    +		List<Set<Object>> affectedEdges = null;
    +
    +		if (fixRoots)
    +		{
    +			fixedRoots = new ArrayList<Object>();
    +			rootLocations = new ArrayList<Point2D>();
    +			affectedEdges = new ArrayList<Set<Object>>();
    +		}
    +
    +		for (int i = 0; i < roots.size(); i++)
    +		{
    +			// First check if this root appears in any of the previous vertex
    +			// sets
    +			boolean newHierarchy = true;
    +			Iterator<Set<Object>> iter = hierarchyVertices.iterator();
    +
    +			while (newHierarchy && iter.hasNext())
    +			{
    +				if (iter.next().contains(roots.get(i)))
    +				{
    +					newHierarchy = false;
    +				}
    +			}
    +
    +			if (newHierarchy)
    +			{
    +				// Obtains set of vertices connected to this root
    +				Stack<Object> cellsStack = new Stack<Object>();
    +				cellsStack.push(roots.get(i));
    +				Set<Object> edgeSet = null;
    +
    +				if (fixRoots)
    +				{
    +					fixedRoots.add(roots.get(i));
    +					Point2D location = getVertexBounds(roots.get(i)).getPoint();
    +					rootLocations.add(location);
    +					edgeSet = new HashSet<Object>();
    +				}
    +
    +				Set<Object> vertexSet = new HashSet<Object>();
    +
    +				while (!cellsStack.isEmpty())
    +				{
    +					Object cell = cellsStack.pop();
    +
    +					if (!vertexSet.contains(cell))
    +					{
    +						vertexSet.add(cell);
    +
    +						if (fixRoots)
    +						{
    +							edgeSet.addAll(Arrays.asList(graph
    +									.getIncomingEdges(cell, parent)));
    +						}
    +
    +						Object[] conns = graph.getConnections(cell, parent);
    +						Object[] cells = graph.getOpposites(conns, cell);
    +
    +						for (int j = 0; j < cells.length; j++)
    +						{
    +							if (!vertexSet.contains(cells[j]))
    +							{
    +								cellsStack.push(cells[j]);
    +							}
    +						}
    +					}
    +				}
    +
    +				hierarchyVertices.add(vertexSet);
    +
    +				if (fixRoots)
    +				{
    +					affectedEdges.add(edgeSet);
    +				}
    +			}
    +		}
    +
    +		// Perform a layout for each seperate hierarchy
    +		// Track initial coordinate x-positioning
    +		double initialX = 0;
    +		Iterator<Set<Object>> iter = hierarchyVertices.iterator();
    +		int i = 0;
    +
    +		while (iter.hasNext())
    +		{
    +			Set<Object> vertexSet = iter.next();
    +
    +			model = new mxGraphHierarchyModel(this, vertexSet.toArray(), roots,
    +					parent, false, deterministic, layoutFromSinks);
    +
    +			cycleStage(parent);
    +			layeringStage();
    +			crossingStage(parent);
    +			initialX = placementStage(initialX, parent);
    +
    +			if (fixRoots)
    +			{
    +				// Reposition roots and their hierarchies using their bounds
    +				// stored earlier
    +				Object root = fixedRoots.get(i);
    +				Point2D oldLocation = rootLocations.get(i);
    +				Point2D newLocation = graph.getModel().getGeometry(root)
    +						.getPoint();
    +
    +				double diffX = oldLocation.getX() - newLocation.getX();
    +				double diffY = oldLocation.getY() - newLocation.getY();
    +				graph.moveCells(vertexSet.toArray(), diffX, diffY);
    +
    +				// Also translate connected edges
    +				Set<Object> connectedEdges = affectedEdges.get(i++);
    +				graph.moveCells(connectedEdges.toArray(), diffX, diffY);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Executes the cycle stage. This implementation uses the
    +	 * mxMinimumCycleRemover.
    +	 */
    +	public void cycleStage(Object parent)
    +	{
    +		mxHierarchicalLayoutStage cycleStage = new mxMinimumCycleRemover(this);
    +		cycleStage.execute(parent);
    +	}
    +
    +	/**
    +	 * Implements first stage of a Sugiyama layout.
    +	 */
    +	public void layeringStage()
    +	{
    +		model.initialRank();
    +		model.fixRanks();
    +	}
    +
    +	/**
    +	 * Executes the crossing stage using mxMedianHybridCrossingReduction.
    +	 */
    +	public void crossingStage(Object parent)
    +	{
    +		mxHierarchicalLayoutStage crossingStage = new mxMedianHybridCrossingReduction(
    +				this);
    +		crossingStage.execute(parent);
    +	}
    +
    +	/**
    +	 * Executes the placement stage using mxCoordinateAssignment.
    +	 */
    +	public double placementStage(double initialX, Object parent)
    +	{
    +		mxCoordinateAssignment placementStage = new mxCoordinateAssignment(
    +				this, intraCellSpacing, interRankCellSpacing, orientation,
    +				initialX, parallelEdgeSpacing);
    +		placementStage.setFineTuning(fineTuning);
    +		placementStage.execute(parent);
    +
    +		return placementStage.getLimitX() + interHierarchySpacing;
    +	}
    +
    +	/**
    +	 * Returns the resizeParent flag.
    +	 */
    +	public boolean isResizeParent()
    +	{
    +		return resizeParent;
    +	}
    +
    +	/**
    +	 * Sets the resizeParent flag.
    +	 */
    +	public void setResizeParent(boolean value)
    +	{
    +		resizeParent = value;
    +	}
    +
    +	/**
    +	 * Returns the moveParent flag.
    +	 */
    +	public boolean isMoveParent()
    +	{
    +		return moveParent;
    +	}
    +
    +	/**
    +	 * Sets the moveParent flag.
    +	 */
    +	public void setMoveParent(boolean value)
    +	{
    +		moveParent = value;
    +	}
    +
    +	/**
    +	 * Returns parentBorder.
    +	 */
    +	public int getParentBorder()
    +	{
    +		return parentBorder;
    +	}
    +
    +	/**
    +	 * Sets parentBorder.
    +	 */
    +	public void setParentBorder(int value)
    +	{
    +		parentBorder = value;
    +	}
    +
    +	/**
    +	 * @return Returns the intraCellSpacing.
    +	 */
    +	public double getIntraCellSpacing()
    +	{
    +		return intraCellSpacing;
    +	}
    +
    +	/**
    +	 * @param intraCellSpacing
    +	 *            The intraCellSpacing to set.
    +	 */
    +	public void setIntraCellSpacing(double intraCellSpacing)
    +	{
    +		this.intraCellSpacing = intraCellSpacing;
    +	}
    +
    +	/**
    +	 * @return Returns the interRankCellSpacing.
    +	 */
    +	public double getInterRankCellSpacing()
    +	{
    +		return interRankCellSpacing;
    +	}
    +
    +	/**
    +	 * @param interRankCellSpacing
    +	 *            The interRankCellSpacing to set.
    +	 */
    +	public void setInterRankCellSpacing(double interRankCellSpacing)
    +	{
    +		this.interRankCellSpacing = interRankCellSpacing;
    +	}
    +
    +	/**
    +	 * @return Returns the orientation.
    +	 */
    +	public int getOrientation()
    +	{
    +		return orientation;
    +	}
    +
    +	/**
    +	 * @param orientation
    +	 *            The orientation to set.
    +	 */
    +	public void setOrientation(int orientation)
    +	{
    +		this.orientation = orientation;
    +	}
    +
    +	/**
    +	 * @return Returns the interHierarchySpacing.
    +	 */
    +	public double getInterHierarchySpacing()
    +	{
    +		return interHierarchySpacing;
    +	}
    +
    +	/**
    +	 * @param interHierarchySpacing
    +	 *            The interHierarchySpacing to set.
    +	 */
    +	public void setInterHierarchySpacing(double interHierarchySpacing)
    +	{
    +		this.interHierarchySpacing = interHierarchySpacing;
    +	}
    +
    +	public double getParallelEdgeSpacing()
    +	{
    +		return parallelEdgeSpacing;
    +	}
    +
    +	public void setParallelEdgeSpacing(double parallelEdgeSpacing)
    +	{
    +		this.parallelEdgeSpacing = parallelEdgeSpacing;
    +	}
    +
    +	/**
    +	 * @return Returns the fineTuning.
    +	 */
    +	public boolean isFineTuning()
    +	{
    +		return fineTuning;
    +	}
    +
    +	/**
    +	 * @param fineTuning
    +	 *            The fineTuning to set.
    +	 */
    +	public void setFineTuning(boolean fineTuning)
    +	{
    +		this.fineTuning = fineTuning;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public boolean isDisableEdgeStyle()
    +	{
    +		return disableEdgeStyle;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param disableEdgeStyle
    +	 */
    +	public void setDisableEdgeStyle(boolean disableEdgeStyle)
    +	{
    +		this.disableEdgeStyle = disableEdgeStyle;
    +	}
    +
    +	/**
    +	 * @return Returns the deterministic.
    +	 */
    +	public boolean isDeterministic()
    +	{
    +		return deterministic;
    +	}
    +
    +	/**
    +	 * @param deterministic The deterministic to set.
    +	 */
    +	public void setDeterministic(boolean deterministic)
    +	{
    +		this.deterministic = deterministic;
    +	}
    +
    +	/**
    +	 * @return Returns the fixRoots.
    +	 */
    +	public boolean isFixRoots()
    +	{
    +		return fixRoots;
    +	}
    +
    +	/**
    +	 * @param fixRoots The fixRoots to set.
    +	 */
    +	public void setFixRoots(boolean fixRoots)
    +	{
    +		this.fixRoots = fixRoots;
    +	}
    +
    +	public boolean isLayoutFromSinks()
    +	{
    +		return layoutFromSinks;
    +	}
    +
    +	public void setLayoutFromSinks(boolean layoutFromSinks)
    +	{
    +		this.layoutFromSinks = layoutFromSinks;
    +	}
    +
    +	/**
    +	 * Sets the logging level of this class
    +	 * @param level the logging level to set
    +	 */
    +	public void setLoggerLevel(Level level)
    +	{
    +		try
    +		{
    +			logger.setLevel(level);
    +		}
    +		catch (SecurityException e)
    +		{
    +			// Probably running in an applet
    +		}
    +	}
    +
    +	/**
    +	 * Returns <code>Hierarchical</code>, the name of this algorithm.
    +	 */
    +	public String toString()
    +	{
    +		return "Hierarchical";
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.java b/java/src/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.java
    new file mode 100644
    index 000000000..2dd97da57
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.java
    @@ -0,0 +1,1854 @@
    +/**
    + * $Id: mxCoordinateAssignment.java,v 1.13 2012-01-09 15:02:51 david Exp $
    + * Copyright (c) 2005-2010, David Benson, Gaudenz Alder
    + */
    +
    +package com.mxgraph.layout.hierarchical.stage;
    +
    +import java.awt.geom.Rectangle2D;
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.Collection;
    +import java.util.HashMap;
    +import java.util.HashSet;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.LinkedList;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +import java.util.logging.Level;
    +import java.util.logging.Logger;
    +
    +import javax.swing.SwingConstants;
    +
    +import com.mxgraph.layout.hierarchical.mxHierarchicalLayout;
    +import com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyRank;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * Sets the horizontal locations of node and edge dummy nodes on each layer.
    + * Uses median down and up weighings as well as heuristics to straighten edges as
    + * far as possible.
    + */
    +public class mxCoordinateAssignment implements mxHierarchicalLayoutStage
    +{
    +
    +	enum HierarchicalEdgeStyle
    +	{
    +		ORTHOGONAL, POLYLINE, STRAIGHT
    +	}
    +
    +	/**
    +	 * Reference to the enclosing layout algorithm
    +	 */
    +	protected mxHierarchicalLayout layout;
    +
    +	/**
    +	 * The minimum buffer between cells on the same rank
    +	 */
    +	protected double intraCellSpacing = 30.0;
    +
    +	/**
    +	 * The minimum distance between cells on adjacent ranks
    +	 */
    +	protected double interRankCellSpacing = 30.0;
    +
    +	/**
    +	 * The distance between each parallel edge on each ranks for long edges
    +	 */
    +	protected double parallelEdgeSpacing = 4.0;
    +
    +	/**
    +	 * The buffer on either side of a vertex where edges must not connect.
    +	 */
    +	protected double vertexConnectionBuffer = 0.0;
    +
    +	/**
    +	 * The number of heuristic iterations to run
    +	 */
    +	protected int maxIterations = 8;
    +
    +	/**
    +	 * The preferred horizontal distance between edges exiting a vertex
    +	 */
    +	protected int prefHozEdgeSep = 5;
    +
    +	/**
    +	 * The preferred vertical offset between edges exiting a vertex
    +	 */
    +	protected int prefVertEdgeOff = 2;
    +
    +	/**
    +	 * The minimum distance for an edge jetty from a vertex
    +	 */
    +	protected int minEdgeJetty = 12;
    +
    +	/**
    +	 * The size of the vertical buffer in the center of inter-rank channels
    +	 * where edge control points should not be placed
    +	 */
    +	protected int channelBuffer = 4;
    +
    +	/**
    +	 * Map of internal edges and (x,y) pair of positions of the start and end jetty
    +	 * for that edge where it connects to the source and target vertices.
    +	 * Note this should technically be a WeakHashMap, but since JS does not
    +	 * have an equivalent, housekeeping must be performed before using.
    +	 * i.e. check all edges are still in the model and clear the values.
    +	 * Note that the y co-ord is the offset of the jetty, not the
    +	 * absolute point
    +	 */
    +	protected Map<mxGraphHierarchyEdge, double[]> jettyPositions = new HashMap<mxGraphHierarchyEdge, double[]>();
    +
    +	/**
    +	 * The position of the root ( start ) node(s) relative to the rest of the
    +	 * laid out graph
    +	 */
    +	protected int orientation = SwingConstants.NORTH;
    +
    +	/**
    +	 * The minimum x position node placement starts at
    +	 */
    +	protected double initialX;
    +
    +	/**
    +	 * The maximum x value this positioning lays up to
    +	 */
    +	protected double limitX;
    +
    +	/**
    +	 * The sum of x-displacements for the current iteration
    +	 */
    +	protected double currentXDelta;
    +
    +	/**
    +	 * The rank that has the widest x position
    +	 */
    +	protected int widestRank;
    +
    +	/**
    +	 * Internal cache of top-most values of Y for each rank
    +	 */
    +	protected double[] rankTopY;
    +
    +	/**
    +	 * Internal cache of bottom-most value of Y for each rank
    +	 */
    +	protected double[] rankBottomY;
    +
    +	/**
    +	 * The X-coordinate of the edge of the widest rank
    +	 */
    +	protected double widestRankValue;
    +
    +	/**
    +	 * The width of all the ranks
    +	 */
    +	protected double[] rankWidths;
    +
    +	/**
    +	 * The Y-coordinate of all the ranks
    +	 */
    +	protected double[] rankY;
    +
    +	/**
    +	 * Whether or not to perform local optimisations and iterate multiple times
    +	 * through the algorithm
    +	 */
    +	protected boolean fineTuning = true;
    +
    +	/**
    +	 * Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    +	 * modified by the result. Default is true.
    +	 */
    +	protected boolean disableEdgeStyle = true;
    +
    +	/**
    +	 * The style to apply between cell layers to edge segments
    +	 */
    +	protected HierarchicalEdgeStyle edgeStyle = HierarchicalEdgeStyle.POLYLINE;
    +
    +	/**
    +	 * A store of connections to the layer above for speed
    +	 */
    +	protected mxGraphAbstractHierarchyCell[][] nextLayerConnectedCache;
    +
    +	/**
    +	 * A store of connections to the layer below for speed
    +	 */
    +	protected mxGraphAbstractHierarchyCell[][] previousLayerConnectedCache;
    +
    +	/** The logger for this class */
    +	private static Logger logger = Logger
    +			.getLogger("com.jgraph.layout.hierarchical.JGraphCoordinateAssignment");
    +
    +	/**
    +	 * Creates a coordinate assignment.
    +	 * 
    +	 * @param intraCellSpacing
    +	 *            the minimum buffer between cells on the same rank
    +	 * @param interRankCellSpacing
    +	 *            the minimum distance between cells on adjacent ranks
    +	 * @param orientation
    +	 *            the position of the root node(s) relative to the graph
    +	 * @param initialX
    +	 *            the leftmost coordinate node placement starts at
    +	 */
    +	public mxCoordinateAssignment(mxHierarchicalLayout layout,
    +			double intraCellSpacing, double interRankCellSpacing,
    +			int orientation, double initialX, double parallelEdgeSpacing)
    +	{
    +		this.layout = layout;
    +		this.intraCellSpacing = intraCellSpacing;
    +		this.interRankCellSpacing = interRankCellSpacing;
    +		this.orientation = orientation;
    +		this.initialX = initialX;
    +		this.parallelEdgeSpacing = parallelEdgeSpacing;
    +		setLoggerLevel(Level.OFF);
    +	}
    +
    +	/**
    +	 * A basic horizontal coordinate assignment algorithm
    +	 */
    +	public void execute(Object parent)
    +	{
    +		mxGraphHierarchyModel model = layout.getModel();
    +		currentXDelta = 0.0;
    +
    +		initialCoords(layout.getGraph(), model);
    +
    +		if (fineTuning)
    +		{
    +			minNode(model);
    +		}
    +
    +		double bestXDelta = 100000000.0;
    +
    +		if (fineTuning)
    +		{
    +			for (int i = 0; i < maxIterations; i++)
    +			{
    +				// Median Heuristic
    +				if (i != 0)
    +				{
    +					medianPos(i, model);
    +					minNode(model);
    +				}
    +
    +				// if the total offset is less for the current positioning,
    +				// there are less heavily angled edges and so the current
    +				// positioning is used
    +				if (currentXDelta < bestXDelta)
    +				{
    +					for (int j = 0; j < model.ranks.size(); j++)
    +					{
    +						mxGraphHierarchyRank rank = model.ranks
    +								.get(new Integer(j));
    +						Iterator<mxGraphAbstractHierarchyCell> iter = rank
    +								.iterator();
    +
    +						while (iter.hasNext())
    +						{
    +							mxGraphAbstractHierarchyCell cell = iter.next();
    +							cell.setX(j, cell.getGeneralPurposeVariable(j));
    +						}
    +					}
    +
    +					bestXDelta = currentXDelta;
    +				}
    +				else
    +				{
    +					// Restore the best positions
    +					for (int j = 0; j < model.ranks.size(); j++)
    +					{
    +						mxGraphHierarchyRank rank = model.ranks
    +								.get(new Integer(j));
    +						Iterator<mxGraphAbstractHierarchyCell> iter = rank
    +								.iterator();
    +
    +						while (iter.hasNext())
    +						{
    +							mxGraphAbstractHierarchyCell cell = iter.next();
    +							cell.setGeneralPurposeVariable(j,
    +									(int) cell.getX(j));
    +						}
    +					}
    +				}
    +
    +				minPath(model);
    +
    +				currentXDelta = 0;
    +			}
    +		}
    +
    +		setCellLocations(layout.getGraph(), model);
    +	}
    +
    +	/**
    +	 * Performs one median positioning sweep in both directions
    +	 * 
    +	 * @param model
    +	 *            an internal model of the hierarchical layout
    +	 */
    +	private void minNode(mxGraphHierarchyModel model)
    +	{
    +		// Queue all nodes
    +		LinkedList<WeightedCellSorter> nodeList = new LinkedList<WeightedCellSorter>();
    +
    +		// Need to be able to map from cell to cellWrapper
    +		Map<mxGraphAbstractHierarchyCell, WeightedCellSorter> map = new Hashtable<mxGraphAbstractHierarchyCell, WeightedCellSorter>();
    +		mxGraphAbstractHierarchyCell[][] rank = new mxGraphAbstractHierarchyCell[model.maxRank + 1][];
    +
    +		for (int i = 0; i <= model.maxRank; i++)
    +		{
    +			mxGraphHierarchyRank rankSet = model.ranks.get(new Integer(i));
    +			rank[i] = rankSet.toArray(new mxGraphAbstractHierarchyCell[rankSet
    +					.size()]);
    +
    +			for (int j = 0; j < rank[i].length; j++)
    +			{
    +				// Use the weight to store the rank and visited to store whether
    +				// or not the cell is in the list
    +				mxGraphAbstractHierarchyCell cell = rank[i][j];
    +				WeightedCellSorter cellWrapper = new WeightedCellSorter(cell, i);
    +				cellWrapper.rankIndex = j;
    +				cellWrapper.visited = true;
    +				nodeList.add(cellWrapper);
    +				map.put(cell, cellWrapper);
    +			}
    +		}
    +
    +		// Set a limit of the maximum number of times we will access the queue
    +		// in case a loop appears
    +		int maxTries = nodeList.size() * 10;
    +		int count = 0;
    +
    +		// Don't move cell within this value of their median
    +		int tolerance = 1;
    +
    +		while (!nodeList.isEmpty() && count <= maxTries)
    +		{
    +			WeightedCellSorter cellWrapper = nodeList.getFirst();
    +			mxGraphAbstractHierarchyCell cell = cellWrapper.cell;
    +
    +			int rankValue = cellWrapper.weightedValue;
    +			int rankIndex = cellWrapper.rankIndex;
    +
    +			Object[] nextLayerConnectedCells = cell.getNextLayerConnectedCells(
    +					rankValue).toArray();
    +			Object[] previousLayerConnectedCells = cell
    +					.getPreviousLayerConnectedCells(rankValue).toArray();
    +
    +			int numNextLayerConnected = nextLayerConnectedCells.length;
    +			int numPreviousLayerConnected = previousLayerConnectedCells.length;
    +
    +			int medianNextLevel = medianXValue(nextLayerConnectedCells,
    +					rankValue + 1);
    +			int medianPreviousLevel = medianXValue(previousLayerConnectedCells,
    +					rankValue - 1);
    +
    +			int numConnectedNeighbours = numNextLayerConnected
    +					+ numPreviousLayerConnected;
    +			int currentPosition = cell.getGeneralPurposeVariable(rankValue);
    +			double cellMedian = currentPosition;
    +
    +			if (numConnectedNeighbours > 0)
    +			{
    +				cellMedian = (medianNextLevel * numNextLayerConnected + medianPreviousLevel
    +						* numPreviousLayerConnected)
    +						/ numConnectedNeighbours;
    +			}
    +
    +			// Flag storing whether or not position has changed
    +			boolean positionChanged = false;
    +
    +			if (cellMedian < currentPosition - tolerance)
    +			{
    +				if (rankIndex == 0)
    +				{
    +					cell.setGeneralPurposeVariable(rankValue, (int) cellMedian);
    +					positionChanged = true;
    +				}
    +				else
    +				{
    +					mxGraphAbstractHierarchyCell leftCell = rank[rankValue][rankIndex - 1];
    +					int leftLimit = leftCell
    +							.getGeneralPurposeVariable(rankValue);
    +					leftLimit = leftLimit + (int) leftCell.width / 2
    +							+ (int) intraCellSpacing + (int) cell.width / 2;
    +
    +					if (leftLimit < cellMedian)
    +					{
    +						cell.setGeneralPurposeVariable(rankValue,
    +								(int) cellMedian);
    +						positionChanged = true;
    +					}
    +					else if (leftLimit < cell
    +							.getGeneralPurposeVariable(rankValue) - tolerance)
    +					{
    +						cell.setGeneralPurposeVariable(rankValue, leftLimit);
    +						positionChanged = true;
    +					}
    +				}
    +			}
    +			else if (cellMedian > currentPosition + tolerance)
    +			{
    +				int rankSize = rank[rankValue].length;
    +
    +				if (rankIndex == rankSize - 1)
    +				{
    +					cell.setGeneralPurposeVariable(rankValue, (int) cellMedian);
    +					positionChanged = true;
    +				}
    +				else
    +				{
    +					mxGraphAbstractHierarchyCell rightCell = rank[rankValue][rankIndex + 1];
    +					int rightLimit = rightCell
    +							.getGeneralPurposeVariable(rankValue);
    +					rightLimit = rightLimit - (int) rightCell.width / 2
    +							- (int) intraCellSpacing - (int) cell.width / 2;
    +
    +					if (rightLimit > cellMedian)
    +					{
    +						cell.setGeneralPurposeVariable(rankValue,
    +								(int) cellMedian);
    +						positionChanged = true;
    +					}
    +					else if (rightLimit > cell
    +							.getGeneralPurposeVariable(rankValue) + tolerance)
    +					{
    +						cell.setGeneralPurposeVariable(rankValue, rightLimit);
    +						positionChanged = true;
    +					}
    +				}
    +			}
    +
    +			if (positionChanged)
    +			{
    +				// Add connected nodes to map and list
    +				for (int i = 0; i < nextLayerConnectedCells.length; i++)
    +				{
    +					mxGraphAbstractHierarchyCell connectedCell = (mxGraphAbstractHierarchyCell) nextLayerConnectedCells[i];
    +					WeightedCellSorter connectedCellWrapper = map
    +							.get(connectedCell);
    +
    +					if (connectedCellWrapper != null)
    +					{
    +						if (connectedCellWrapper.visited == false)
    +						{
    +							connectedCellWrapper.visited = true;
    +							nodeList.add(connectedCellWrapper);
    +						}
    +					}
    +				}
    +
    +				// Add connected nodes to map and list
    +				for (int i = 0; i < previousLayerConnectedCells.length; i++)
    +				{
    +					mxGraphAbstractHierarchyCell connectedCell = (mxGraphAbstractHierarchyCell) previousLayerConnectedCells[i];
    +					WeightedCellSorter connectedCellWrapper = map
    +							.get(connectedCell);
    +
    +					if (connectedCellWrapper != null)
    +					{
    +						if (connectedCellWrapper.visited == false)
    +						{
    +							connectedCellWrapper.visited = true;
    +							nodeList.add(connectedCellWrapper);
    +						}
    +					}
    +				}
    +			}
    +
    +			nodeList.removeFirst();
    +			cellWrapper.visited = false;
    +			count++;
    +		}
    +	}
    +
    +	/**
    +	 * Performs one median positioning sweep in one direction
    +	 * 
    +	 * @param i
    +	 *            the iteration of the whole process
    +	 * @param model
    +	 *            an internal model of the hierarchical layout
    +	 */
    +	private void medianPos(int i, mxGraphHierarchyModel model)
    +	{
    +		// Reverse sweep direction each time through this method
    +		boolean downwardSweep = (i % 2 == 0);
    +
    +		if (downwardSweep)
    +		{
    +			for (int j = model.maxRank; j > 0; j--)
    +			{
    +				rankMedianPosition(j - 1, model, j);
    +			}
    +		}
    +		else
    +		{
    +			for (int j = 0; j < model.maxRank - 1; j++)
    +			{
    +				rankMedianPosition(j + 1, model, j);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Performs median minimisation over one rank.
    +	 * 
    +	 * @param rankValue
    +	 *            the layer number of this rank
    +	 * @param model
    +	 *            an internal model of the hierarchical layout
    +	 * @param nextRankValue
    +	 *            the layer number whose connected cels are to be laid out
    +	 *            relative to
    +	 */
    +	protected void rankMedianPosition(int rankValue,
    +			mxGraphHierarchyModel model, int nextRankValue)
    +	{
    +		mxGraphHierarchyRank rankSet = model.ranks.get(new Integer(rankValue));
    +		Object[] rank = rankSet.toArray();
    +		// Form an array of the order in which the cells are to be processed
    +		// , the order is given by the weighted sum of the in or out edges,
    +		// depending on whether we're travelling up or down the hierarchy.
    +		WeightedCellSorter[] weightedValues = new WeightedCellSorter[rank.length];
    +		Map<mxGraphAbstractHierarchyCell, WeightedCellSorter> cellMap = new Hashtable<mxGraphAbstractHierarchyCell, WeightedCellSorter>(
    +				rank.length);
    +
    +		for (int i = 0; i < rank.length; i++)
    +		{
    +			mxGraphAbstractHierarchyCell currentCell = (mxGraphAbstractHierarchyCell) rank[i];
    +			weightedValues[i] = new WeightedCellSorter();
    +			weightedValues[i].cell = currentCell;
    +			weightedValues[i].rankIndex = i;
    +			cellMap.put(currentCell, weightedValues[i]);
    +			Collection<mxGraphAbstractHierarchyCell> nextLayerConnectedCells = null;
    +
    +			if (nextRankValue < rankValue)
    +			{
    +				nextLayerConnectedCells = currentCell
    +						.getPreviousLayerConnectedCells(rankValue);
    +			}
    +			else
    +			{
    +				nextLayerConnectedCells = currentCell
    +						.getNextLayerConnectedCells(rankValue);
    +			}
    +
    +			// Calculate the weighing based on this node type and those this
    +			// node is connected to on the next layer
    +			weightedValues[i].weightedValue = calculatedWeightedValue(
    +					currentCell, nextLayerConnectedCells);
    +		}
    +
    +		Arrays.sort(weightedValues);
    +		// Set the new position of each node within the rank using
    +		// its temp variable
    +
    +		for (int i = 0; i < weightedValues.length; i++)
    +		{
    +			int numConnectionsNextLevel = 0;
    +			mxGraphAbstractHierarchyCell cell = weightedValues[i].cell;
    +			Object[] nextLayerConnectedCells = null;
    +			int medianNextLevel = 0;
    +
    +			if (nextRankValue < rankValue)
    +			{
    +				nextLayerConnectedCells = cell.getPreviousLayerConnectedCells(
    +						rankValue).toArray();
    +			}
    +			else
    +			{
    +				nextLayerConnectedCells = cell.getNextLayerConnectedCells(
    +						rankValue).toArray();
    +			}
    +
    +			if (nextLayerConnectedCells != null)
    +			{
    +				numConnectionsNextLevel = nextLayerConnectedCells.length;
    +
    +				if (numConnectionsNextLevel > 0)
    +				{
    +					medianNextLevel = medianXValue(nextLayerConnectedCells,
    +							nextRankValue);
    +				}
    +				else
    +				{
    +					// For case of no connections on the next level set the
    +					// median to be the current position and try to be
    +					// positioned there
    +					medianNextLevel = cell.getGeneralPurposeVariable(rankValue);
    +				}
    +			}
    +
    +			double leftBuffer = 0.0;
    +			double leftLimit = -100000000.0;
    +
    +			for (int j = weightedValues[i].rankIndex - 1; j >= 0;)
    +			{
    +				WeightedCellSorter weightedValue = cellMap.get(rank[j]);
    +
    +				if (weightedValue != null)
    +				{
    +					mxGraphAbstractHierarchyCell leftCell = weightedValue.cell;
    +
    +					if (weightedValue.visited)
    +					{
    +						// The left limit is the right hand limit of that
    +						// cell plus any allowance for unallocated cells
    +						// in-between
    +						leftLimit = leftCell
    +								.getGeneralPurposeVariable(rankValue)
    +								+ leftCell.width
    +								/ 2.0
    +								+ intraCellSpacing
    +								+ leftBuffer + cell.width / 2.0;
    +						j = -1;
    +					}
    +					else
    +					{
    +						leftBuffer += leftCell.width + intraCellSpacing;
    +						j--;
    +					}
    +				}
    +			}
    +
    +			double rightBuffer = 0.0;
    +			double rightLimit = 100000000.0;
    +
    +			for (int j = weightedValues[i].rankIndex + 1; j < weightedValues.length;)
    +			{
    +				WeightedCellSorter weightedValue = cellMap.get(rank[j]);
    +
    +				if (weightedValue != null)
    +				{
    +					mxGraphAbstractHierarchyCell rightCell = weightedValue.cell;
    +
    +					if (weightedValue.visited)
    +					{
    +						// The left limit is the right hand limit of that
    +						// cell plus any allowance for unallocated cells
    +						// in-between
    +						rightLimit = rightCell
    +								.getGeneralPurposeVariable(rankValue)
    +								- rightCell.width
    +								/ 2.0
    +								- intraCellSpacing
    +								- rightBuffer - cell.width / 2.0;
    +						j = weightedValues.length;
    +					}
    +					else
    +					{
    +						rightBuffer += rightCell.width + intraCellSpacing;
    +						j++;
    +					}
    +				}
    +			}
    +
    +			if (medianNextLevel >= leftLimit && medianNextLevel <= rightLimit)
    +			{
    +				cell.setGeneralPurposeVariable(rankValue, medianNextLevel);
    +			}
    +			else if (medianNextLevel < leftLimit)
    +			{
    +				// Couldn't place at median value, place as close to that
    +				// value as possible
    +				cell.setGeneralPurposeVariable(rankValue, (int) leftLimit);
    +				currentXDelta += leftLimit - medianNextLevel;
    +			}
    +			else if (medianNextLevel > rightLimit)
    +			{
    +				// Couldn't place at median value, place as close to that
    +				// value as possible
    +				cell.setGeneralPurposeVariable(rankValue, (int) rightLimit);
    +				currentXDelta += medianNextLevel - rightLimit;
    +			}
    +
    +			weightedValues[i].visited = true;
    +		}
    +	}
    +
    +	/**
    +	 * Calculates the priority the specified cell has based on the type of its
    +	 * cell and the cells it is connected to on the next layer
    +	 * 
    +	 * @param currentCell
    +	 *            the cell whose weight is to be calculated
    +	 * @param collection
    +	 *            the cells the specified cell is connected to
    +	 * @return the total weighted of the edges between these cells
    +	 */
    +	private int calculatedWeightedValue(
    +			mxGraphAbstractHierarchyCell currentCell,
    +			Collection<mxGraphAbstractHierarchyCell> collection)
    +	{
    +		int totalWeight = 0;
    +		Iterator<mxGraphAbstractHierarchyCell> iter = collection.iterator();
    +
    +		while (iter.hasNext())
    +		{
    +			mxGraphAbstractHierarchyCell cell = iter.next();
    +
    +			if (currentCell.isVertex() && cell.isVertex())
    +			{
    +				totalWeight++;
    +			}
    +			else if (currentCell.isEdge() && cell.isEdge())
    +			{
    +				totalWeight += 8;
    +			}
    +			else
    +			{
    +				totalWeight += 2;
    +			}
    +		}
    +
    +		return totalWeight;
    +	}
    +
    +	/**
    +	 * Calculates the median position of the connected cell on the specified
    +	 * rank
    +	 * 
    +	 * @param connectedCells
    +	 *            the cells the candidate connects to on this level
    +	 * @param rankValue
    +	 *            the layer number of this rank
    +	 * @return the median rank order ( not x position ) of the connected cells
    +	 */
    +	private int medianXValue(Object[] connectedCells, int rankValue)
    +	{
    +		if (connectedCells.length == 0)
    +		{
    +			return 0;
    +		}
    +
    +		int[] medianValues = new int[connectedCells.length];
    +
    +		for (int i = 0; i < connectedCells.length; i++)
    +		{
    +			medianValues[i] = ((mxGraphAbstractHierarchyCell) connectedCells[i])
    +					.getGeneralPurposeVariable(rankValue);
    +		}
    +
    +		Arrays.sort(medianValues);
    +
    +		if (connectedCells.length % 2 == 1)
    +		{
    +			// For odd numbers of adjacent vertices return the median
    +			return medianValues[connectedCells.length / 2];
    +		}
    +		else
    +		{
    +			int medianPoint = connectedCells.length / 2;
    +			int leftMedian = medianValues[medianPoint - 1];
    +			int rightMedian = medianValues[medianPoint];
    +
    +			return ((leftMedian + rightMedian) / 2);
    +		}
    +	}
    +
    +	/**
    +	 * Sets up the layout in an initial positioning. The ranks are all centered
    +	 * as much as possible along the middle vertex in each rank. The other cells
    +	 * are then placed as close as possible on either side.
    +	 * 
    +	 * @param facade
    +	 *            the facade describing the input graph
    +	 * @param model
    +	 *            an internal model of the hierarchical layout
    +	 */
    +	private void initialCoords(mxGraph facade, mxGraphHierarchyModel model)
    +	{
    +		calculateWidestRank(facade, model);
    +
    +		// Sweep up and down from the widest rank
    +		for (int i = widestRank; i >= 0; i--)
    +		{
    +			if (i < model.maxRank)
    +			{
    +				rankCoordinates(i, facade, model);
    +			}
    +		}
    +
    +		for (int i = widestRank + 1; i <= model.maxRank; i++)
    +		{
    +			if (i > 0)
    +			{
    +				rankCoordinates(i, facade, model);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Sets up the layout in an initial positioning. All the first cells in each
    +	 * rank are moved to the left and the rest of the rank inserted as close
    +	 * together as their size and buffering permits. This method works on just
    +	 * the specified rank.
    +	 * 
    +	 * @param rankValue
    +	 *            the current rank being processed
    +	 * @param graph
    +	 *            the facade describing the input graph
    +	 * @param model
    +	 *            an internal model of the hierarchical layout
    +	 */
    +	protected void rankCoordinates(int rankValue, mxGraph graph,
    +			mxGraphHierarchyModel model)
    +	{
    +		mxGraphHierarchyRank rank = model.ranks.get(new Integer(rankValue));
    +		double maxY = 0.0;
    +		double localX = initialX + (widestRankValue - rankWidths[rankValue])
    +				/ 2;
    +
    +		// Store whether or not any of the cells' bounds were unavailable so
    +		// to only issue the warning once for all cells
    +		boolean boundsWarning = false;
    +
    +		for (mxGraphAbstractHierarchyCell cell : rank)
    +		{
    +			if (cell.isVertex())
    +			{
    +				mxGraphHierarchyNode node = (mxGraphHierarchyNode) cell;
    +				mxRectangle bounds = layout.getVertexBounds(node.cell);
    +
    +				if (bounds != null)
    +				{
    +					if (orientation == SwingConstants.NORTH
    +							|| orientation == SwingConstants.SOUTH)
    +					{
    +						cell.width = bounds.getWidth();
    +						cell.height = bounds.getHeight();
    +					}
    +					else
    +					{
    +						cell.width = bounds.getHeight();
    +						cell.height = bounds.getWidth();
    +					}
    +				}
    +				else
    +				{
    +					boundsWarning = true;
    +				}
    +
    +				maxY = Math.max(maxY, cell.height);
    +			}
    +			else if (cell.isEdge())
    +			{
    +				mxGraphHierarchyEdge edge = (mxGraphHierarchyEdge) cell;
    +				// The width is the number of additional parallel edges
    +				// time the parallel edge spacing
    +				int numEdges = 1;
    +
    +				if (edge.edges != null)
    +				{
    +					numEdges = edge.edges.size();
    +				}
    +				else
    +				{
    +					logger.info("edge.edges is null");
    +				}
    +
    +				cell.width = (numEdges - 1) * parallelEdgeSpacing;
    +			}
    +
    +			// Set the initial x-value as being the best result so far
    +			localX += cell.width / 2.0;
    +			cell.setX(rankValue, localX);
    +			cell.setGeneralPurposeVariable(rankValue, (int) localX);
    +			localX += cell.width / 2.0;
    +			localX += intraCellSpacing;
    +		}
    +
    +		if (boundsWarning == true)
    +		{
    +			logger.info("At least one cell has no bounds");
    +		}
    +	}
    +
    +	/**
    +	 * Calculates the width rank in the hierarchy. Also set the y value of each
    +	 * rank whilst performing the calculation
    +	 * 
    +	 * @param graph
    +	 *            the facade describing the input graph
    +	 * @param model
    +	 *            an internal model of the hierarchical layout
    +	 */
    +	protected void calculateWidestRank(mxGraph graph,
    +			mxGraphHierarchyModel model)
    +	{
    +		// Starting y co-ordinate
    +		double y = -interRankCellSpacing;
    +
    +		// Track the widest cell on the last rank since the y
    +		// difference depends on it
    +		double lastRankMaxCellHeight = 0.0;
    +		rankWidths = new double[model.maxRank + 1];
    +		rankY = new double[model.maxRank + 1];
    +
    +		for (int rankValue = model.maxRank; rankValue >= 0; rankValue--)
    +		{
    +			// Keep track of the widest cell on this rank
    +			double maxCellHeight = 0.0;
    +			mxGraphHierarchyRank rank = model.ranks.get(new Integer(rankValue));
    +			double localX = initialX;
    +
    +			// Store whether or not any of the cells' bounds were unavailable so
    +			// to only issue the warning once for all cells
    +			boolean boundsWarning = false;
    +			Iterator<mxGraphAbstractHierarchyCell> iter = rank.iterator();
    +
    +			while (iter.hasNext())
    +			{
    +				mxGraphAbstractHierarchyCell cell = iter.next();
    +
    +				if (cell.isVertex())
    +				{
    +					mxGraphHierarchyNode node = (mxGraphHierarchyNode) cell;
    +					mxRectangle bounds = layout.getVertexBounds(node.cell);
    +
    +					if (bounds != null)
    +					{
    +						if (orientation == SwingConstants.NORTH
    +								|| orientation == SwingConstants.SOUTH)
    +						{
    +							cell.width = bounds.getWidth();
    +							cell.height = bounds.getHeight();
    +						}
    +						else
    +						{
    +							cell.width = bounds.getHeight();
    +							cell.height = bounds.getWidth();
    +						}
    +					}
    +					else
    +					{
    +						boundsWarning = true;
    +					}
    +
    +					maxCellHeight = Math.max(maxCellHeight, cell.height);
    +				}
    +				else if (cell.isEdge())
    +				{
    +					mxGraphHierarchyEdge edge = (mxGraphHierarchyEdge) cell;
    +					// The width is the number of additional parallel edges
    +					// time the parallel edge spacing
    +					int numEdges = 1;
    +
    +					if (edge.edges != null)
    +					{
    +						numEdges = edge.edges.size();
    +					}
    +					else
    +					{
    +						logger.info("edge.edges is null");
    +					}
    +
    +					cell.width = (numEdges - 1) * parallelEdgeSpacing;
    +				}
    +
    +				// Set the initial x-value as being the best result so far
    +				localX += cell.width / 2.0;
    +				cell.setX(rankValue, localX);
    +				cell.setGeneralPurposeVariable(rankValue, (int) localX);
    +				localX += cell.width / 2.0;
    +				localX += intraCellSpacing;
    +
    +				if (localX > widestRankValue)
    +				{
    +					widestRankValue = localX;
    +					widestRank = rankValue;
    +				}
    +
    +				rankWidths[rankValue] = localX;
    +			}
    +
    +			if (boundsWarning == true)
    +			{
    +				logger.info("At least one cell has no bounds");
    +			}
    +
    +			rankY[rankValue] = y;
    +			double distanceToNextRank = maxCellHeight / 2.0
    +					+ lastRankMaxCellHeight / 2.0 + interRankCellSpacing;
    +			lastRankMaxCellHeight = maxCellHeight;
    +
    +			if (orientation == SwingConstants.NORTH
    +					|| orientation == SwingConstants.WEST)
    +			{
    +				y += distanceToNextRank;
    +			}
    +			else
    +			{
    +				y -= distanceToNextRank;
    +			}
    +
    +			iter = rank.iterator();
    +
    +			while (iter.hasNext())
    +			{
    +				mxGraphAbstractHierarchyCell cell = iter.next();
    +				cell.setY(rankValue, y);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Straightens out chains of virtual nodes where possible
    +	 * 
    +	 * @param model
    +	 *            an internal model of the hierarchical layout
    +	 */
    +	protected void minPath(mxGraphHierarchyModel model)
    +	{
    +		// Work down and up each edge with at least 2 control points
    +		// trying to straighten each one out. If the same number of
    +		// straight segments are formed in both directions, the 
    +		// preferred direction used is the one where the final
    +		// control points have the least offset from the connectable 
    +		// region of the terminating vertices
    +		Map<Object, mxGraphHierarchyEdge> edges = model.getEdgeMapper();
    +
    +		for (mxGraphAbstractHierarchyCell cell : edges.values())
    +		{
    +			if (cell.maxRank > cell.minRank + 2)
    +			{
    +				int numEdgeLayers = cell.maxRank - cell.minRank - 1;
    +				// At least two virtual nodes in the edge
    +				// Check first whether the edge is already straight
    +				int referenceX = cell
    +						.getGeneralPurposeVariable(cell.minRank + 1);
    +				boolean edgeStraight = true;
    +				int refSegCount = 0;
    +
    +				for (int i = cell.minRank + 2; i < cell.maxRank; i++)
    +				{
    +					int x = cell.getGeneralPurposeVariable(i);
    +
    +					if (referenceX != x)
    +					{
    +						edgeStraight = false;
    +						referenceX = x;
    +					}
    +					else
    +					{
    +						refSegCount++;
    +					}
    +				}
    +
    +				if (edgeStraight)
    +				{
    +					continue;
    +				}
    +
    +				int upSegCount = 0;
    +				int downSegCount = 0;
    +				double upXPositions[] = new double[numEdgeLayers - 1];
    +				double downXPositions[] = new double[numEdgeLayers - 1];
    +
    +				double currentX = cell.getX(cell.minRank + 1);
    +
    +				for (int i = cell.minRank + 1; i < cell.maxRank - 1; i++)
    +				{
    +					// Attempt to straight out the control point on the
    +					// next segment up with the current control point.
    +					double nextX = cell.getX(i + 1);
    +
    +					if (currentX == nextX)
    +					{
    +						upXPositions[i - cell.minRank - 1] = currentX;
    +						upSegCount++;
    +					}
    +					else if (repositionValid(model, cell, i + 1, currentX))
    +					{
    +						upXPositions[i - cell.minRank - 1] = currentX;
    +						upSegCount++;
    +						// Leave currentX at same value
    +					}
    +					else
    +					{
    +						upXPositions[i - cell.minRank - 1] = cell.getX(i);
    +						currentX = nextX;
    +					}
    +				}
    +
    +				currentX = cell.getX(cell.maxRank - 1);
    +
    +				for (int i = cell.maxRank - 1; i > cell.minRank + 1; i--)
    +				{
    +					// Attempt to straight out the control point on the
    +					// next segment down with the current control point.
    +					double nextX = cell.getX(i - 1);
    +
    +					if (currentX == nextX)
    +					{
    +						downXPositions[i - cell.minRank - 2] = currentX;
    +						downSegCount++;
    +					}
    +					else if (repositionValid(model, cell, i - 1, currentX))
    +					{
    +						downXPositions[i - cell.minRank - 2] = currentX;
    +						downSegCount++;
    +						// Leave currentX at same value
    +					}
    +					else
    +					{
    +						downXPositions[i - cell.minRank - 2] = cell.getX(i);
    +						currentX = nextX;
    +					}
    +				}
    +
    +				if (downSegCount <= refSegCount && upSegCount <= refSegCount)
    +				{
    +					// Neither of the new calculation provide a straighter edge
    +					continue;
    +				}
    +
    +				if (downSegCount > upSegCount)
    +				{
    +					// Apply down calculation values
    +					for (int i = cell.maxRank - 2; i > cell.minRank; i--)
    +					{
    +						cell.setX(i, (int) downXPositions[i - cell.minRank - 1]);
    +					}
    +				}
    +				else if (upSegCount > downSegCount)
    +				{
    +					// Apply up calculation values
    +					for (int i = cell.minRank + 2; i < cell.maxRank; i++)
    +					{
    +						cell.setX(i, (int) upXPositions[i - cell.minRank - 2]);
    +					}
    +				}
    +				else
    +				{
    +					// Neither direction provided a favourable result
    +					// But both calculations are better than the
    +					// existing solution, so apply the one with minimal
    +					// offset to attached vertices at either end.
    +
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Determines whether or not a node may be moved to the specified x 
    +	 * position on the specified rank
    +	 * @param model the layout model
    +	 * @param cell the cell being analysed
    +	 * @param rank the layer of the cell
    +	 * @param position the x position being sought
    +	 * @return whether or not the virtual node can be moved to this position
    +	 */
    +	protected boolean repositionValid(mxGraphHierarchyModel model,
    +			mxGraphAbstractHierarchyCell cell, int rank, double position)
    +	{
    +		mxGraphHierarchyRank rankSet = model.ranks.get(new Integer(rank));
    +		mxGraphAbstractHierarchyCell[] rankArray = rankSet
    +				.toArray(new mxGraphAbstractHierarchyCell[rankSet.size()]);
    +		int rankIndex = -1;
    +
    +		for (int i = 0; i < rankArray.length; i++)
    +		{
    +			if (cell == rankArray[i])
    +			{
    +				rankIndex = i;
    +				break;
    +			}
    +		}
    +
    +		if (rankIndex < 0)
    +		{
    +			return false;
    +		}
    +
    +		int currentX = cell.getGeneralPurposeVariable(rank);
    +
    +		if (position < currentX)
    +		{
    +			// Trying to move node to the left.
    +			if (rankIndex == 0)
    +			{
    +				// Left-most node, can move anywhere
    +				return true;
    +			}
    +
    +			mxGraphAbstractHierarchyCell leftCell = rankArray[rankIndex - 1];
    +			int leftLimit = leftCell.getGeneralPurposeVariable(rank);
    +			leftLimit = leftLimit + (int) leftCell.width / 2
    +					+ (int) intraCellSpacing + (int) cell.width / 2;
    +
    +			if (leftLimit <= position)
    +			{
    +				return true;
    +			}
    +			else
    +			{
    +				return false;
    +			}
    +		}
    +		else if (position > currentX)
    +		{
    +			// Trying to move node to the right.
    +			if (rankIndex == rankArray.length - 1)
    +			{
    +				// Right-most node, can move anywhere
    +				return true;
    +			}
    +
    +			mxGraphAbstractHierarchyCell rightCell = rankArray[rankIndex + 1];
    +			int rightLimit = rightCell.getGeneralPurposeVariable(rank);
    +			rightLimit = rightLimit - (int) rightCell.width / 2
    +					- (int) intraCellSpacing - (int) cell.width / 2;
    +
    +			if (rightLimit >= position)
    +			{
    +				return true;
    +			}
    +			else
    +			{
    +				return false;
    +			}
    +		}
    +
    +		return true;
    +	}
    +
    +	/**
    +	 * Sets the cell locations in the facade to those stored after this layout
    +	 * processing step has completed.
    +	 * 
    +	 * @param graph
    +	 *            the facade describing the input graph
    +	 * @param model
    +	 *            an internal model of the hierarchical layout
    +	 */
    +	protected void setCellLocations(mxGraph graph, mxGraphHierarchyModel model)
    +	{
    +		rankTopY = new double[model.ranks.size()];
    +		rankBottomY = new double[model.ranks.size()];
    +
    +		for (int i = 0; i < model.ranks.size(); i++)
    +		{
    +			rankTopY[i] = Double.MAX_VALUE;
    +			rankBottomY[i] = 0.0;
    +		}
    +
    +		Map<Object, mxGraphHierarchyEdge> edges = model.getEdgeMapper();
    +		Map<Object, mxGraphHierarchyNode> vertices = model.getVertexMapper();
    +
    +		// Process vertices all first, since they define the lower and 
    +		// limits of each rank. Between these limits lie the channels
    +		// where the edges can be routed across the graph
    +
    +		for (mxGraphAbstractHierarchyCell cell : vertices.values())
    +		{
    +			setVertexLocation(cell);
    +		}
    +
    +		// Post process edge styles. Needs the vertex locations set for initial
    +		// values of the top and bottoms of each rank
    +		if (this.edgeStyle == HierarchicalEdgeStyle.ORTHOGONAL
    +				|| this.edgeStyle == HierarchicalEdgeStyle.POLYLINE)
    +		{
    +			localEdgeProcessing(model);
    +		}
    +
    +		for (mxGraphAbstractHierarchyCell cell : edges.values())
    +		{
    +			setEdgePosition(cell);
    +		}
    +	}
    +
    +	/**
    +	 * Separates the x position of edges as they connect to vertices
    +	 * 
    +	 * @param model
    +	 *            an internal model of the hierarchical layout
    +	 */
    +	protected void localEdgeProcessing(mxGraphHierarchyModel model)
    +	{
    +		// Check the map of jetty positions doesn't contain
    +		// any deleted edges. We can't use a WeakHashMap because
    +		// it doesn't translate to JS.
    +		Map<Object, mxGraphHierarchyEdge> edgeMapping = model.getEdgeMapper();
    +
    +		if (edgeMapping != null && jettyPositions.size() != edgeMapping.size())
    +		{
    +			jettyPositions = new HashMap<mxGraphHierarchyEdge, double[]>();
    +		}
    +
    +		//jettyPositions.removeAll();
    +		// Iterate through each vertex, look at the edges connected in
    +		// both directions.
    +		for (int i = 0; i < model.ranks.size(); i++)
    +		{
    +			mxGraphHierarchyRank rank = model.ranks.get(new Integer(i));
    +
    +			// Iterate over the top rank and fill in the connection information
    +			Iterator<mxGraphAbstractHierarchyCell> iter = rank.iterator();
    +
    +			while (iter.hasNext())
    +			{
    +				mxGraphAbstractHierarchyCell cell = iter.next();
    +
    +				if (cell.isVertex())
    +				{
    +					mxGraphAbstractHierarchyCell[] currentCells = (cell
    +							.getPreviousLayerConnectedCells(i))
    +							.toArray(new mxGraphAbstractHierarchyCell[cell
    +									.getPreviousLayerConnectedCells(i).size()]);
    +
    +					int currentRank = i - 1;
    +
    +					// Two loops, last connected cells, and next
    +					for (int k = 0; k < 2; k++)
    +					{
    +						if (currentRank > -1
    +								&& currentRank < model.ranks.size()
    +								&& currentCells != null
    +								&& currentCells.length > 0)
    +						{
    +							WeightedCellSorter[] sortedCells = new WeightedCellSorter[currentCells.length];
    +
    +							for (int j = 0; j < currentCells.length; j++)
    +							{
    +								sortedCells[j] = new WeightedCellSorter(
    +										currentCells[j],
    +										-(int) currentCells[j].getX(currentRank));
    +							}
    +
    +							Arrays.sort(sortedCells);
    +
    +							mxGraphHierarchyNode node = (mxGraphHierarchyNode) cell;
    +							double leftLimit = node.x[0] - node.width / 2;
    +							double rightLimit = leftLimit + node.width;
    +
    +							// Connected edge count starts at 1 to allow for buffer
    +							// with edge of vertex
    +							int connectedEdgeCount = 0;
    +							int connectedEdgeGroupCount = 0;
    +							mxGraphHierarchyEdge[] connectedEdges = new mxGraphHierarchyEdge[sortedCells.length];
    +							// Calculate width requirements for all connected edges
    +							for (int j = 0; j < sortedCells.length; j++)
    +							{
    +								mxGraphAbstractHierarchyCell innerCell = sortedCells[j].cell;
    +								Collection<mxGraphHierarchyEdge> connections;
    +
    +								if (innerCell.isVertex())
    +								{
    +									// Get the connecting edge
    +									if (k == 0)
    +									{
    +										connections = ((mxGraphHierarchyNode) cell).connectsAsSource;
    +
    +									}
    +									else
    +									{
    +										connections = ((mxGraphHierarchyNode) cell).connectsAsTarget;
    +									}
    +
    +									for (mxGraphHierarchyEdge connectedEdge : connections)
    +									{
    +										if (connectedEdge.source == innerCell
    +												|| connectedEdge.target == innerCell)
    +										{
    +											connectedEdgeCount += connectedEdge.edges
    +													.size();
    +											connectedEdgeGroupCount++;
    +
    +											connectedEdges[j] = connectedEdge;
    +										}
    +									}
    +								}
    +								else
    +								{
    +									connectedEdgeCount += ((mxGraphHierarchyEdge) innerCell).edges
    +											.size();
    +									connectedEdgeGroupCount++;
    +									connectedEdges[j] = (mxGraphHierarchyEdge) innerCell;
    +								}
    +							}
    +
    +							double requiredWidth = (connectedEdgeCount + 1)
    +									* prefHozEdgeSep;
    +
    +							// Add a buffer on the edges of the vertex if the edge count allows
    +							if (cell.width > requiredWidth
    +									+ (2 * prefHozEdgeSep))
    +							{
    +								leftLimit += prefHozEdgeSep;
    +								rightLimit -= prefHozEdgeSep;
    +							}
    +
    +							double availableWidth = rightLimit - leftLimit;
    +							double edgeSpacing = availableWidth / connectedEdgeCount;
    +
    +							double currentX = leftLimit + edgeSpacing / 2.0;
    +							double currentYOffset = minEdgeJetty - prefVertEdgeOff;
    +							double maxYOffset = 0;
    +
    +							for (int j = 0; j < connectedEdges.length; j++)
    +							{
    +								int numActualEdges = connectedEdges[j].edges
    +										.size();
    +								double[] pos = jettyPositions
    +										.get(connectedEdges[j]);
    +
    +								if (pos == null
    +										|| pos.length != 4 * numActualEdges)
    +								{
    +									pos = new double[4 * numActualEdges];
    +									jettyPositions.put(connectedEdges[j], pos);
    +								}
    +
    +								if (j < (float)connectedEdgeCount / 2.0f)
    +								{
    +									currentYOffset += prefVertEdgeOff;
    +								}
    +								else if (j > (float)connectedEdgeCount / 2.0f)
    +								{
    +									currentYOffset -= prefVertEdgeOff;
    +								}
    +								// Ignore the case if equals, this means the second of 2
    +								// jettys with the same y (even number of edges)
    +
    +								for (int m = 0; m < numActualEdges; m++)
    +								{
    +									pos[m * 4 + k * 2] = currentX;
    +									currentX += edgeSpacing;
    +									pos[m * 4 + k * 2 + 1] = currentYOffset;
    +								}
    +								
    +								maxYOffset = Math.max(maxYOffset,
    +										currentYOffset);
    +							}
    +						}
    +
    +						currentCells = (cell.getNextLayerConnectedCells(i))
    +								.toArray(new mxGraphAbstractHierarchyCell[cell
    +										.getNextLayerConnectedCells(i).size()]);
    +
    +						currentRank = i + 1;
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Fixes the control points 
    +	 * @param cell
    +	 */
    +	protected void setEdgePosition(mxGraphAbstractHierarchyCell cell)
    +	{
    +		mxGraphHierarchyEdge edge = (mxGraphHierarchyEdge) cell;
    +
    +		// For parallel edges we need to separate out the points a
    +		// little
    +		double offsetX = 0.0;
    +
    +		// Only set the edge control points once
    +		if (edge.temp[0] != 101207)
    +		{
    +			int maxRank = edge.maxRank;
    +			int minRank = edge.minRank;
    +			
    +			if (maxRank == minRank)
    +			{
    +				maxRank = edge.source.maxRank;
    +				minRank = edge.target.minRank;
    +			}
    +
    +			Iterator<Object> parallelEdges = edge.edges.iterator();
    +			int parallelEdgeCount = 0;
    +			double[] jettys = jettyPositions.get(edge);
    +
    +			while (parallelEdges.hasNext())
    +			{
    +				Object realEdge = parallelEdges.next();
    +				List<mxPoint> newPoints = new ArrayList<mxPoint>(edge.x.length);
    +
    +				if (jettys != null)
    +				{
    +					int arrayOffset = edge.isReversed() ? 2 : 0;
    +					double y = edge.isReversed() ? rankTopY[minRank] : rankBottomY[maxRank];
    +					double jetty = jettys[parallelEdgeCount * 4 + 1 + arrayOffset];
    +					
    +					if (edge.isReversed())
    +					{
    +						jetty = -jetty;
    +					}
    +					y += jetty;
    +					double x = jettys[parallelEdgeCount * 4 + arrayOffset];
    +
    +					if (orientation == SwingConstants.NORTH
    +							|| orientation == SwingConstants.SOUTH)
    +					{
    +						newPoints.add(new mxPoint(x, y));
    +					}
    +					else
    +					{
    +						newPoints.add(new mxPoint(y, x));
    +					}
    +				}
    +
    +				// Declare variables to define loop through edge points and 
    +				// change direction if edge is reversed
    +
    +				int loopStart = edge.x.length - 1;
    +				int loopLimit = -1;
    +				int loopDelta = -1;
    +				int currentRank = edge.maxRank - 1;
    +
    +				if (edge.isReversed())
    +				{
    +					loopStart = 0;
    +					loopLimit = edge.x.length;
    +					loopDelta = 1;
    +					currentRank = edge.minRank + 1;
    +				}
    +
    +				// Reversed edges need the points inserted in
    +				// reverse order
    +				for (int j = loopStart; (edge.maxRank != edge.minRank) && j != loopLimit; j += loopDelta)
    +				{
    +					// The horizontal position in a vertical layout
    +					double positionX = edge.x[j] + offsetX;
    +
    +					// Work out the vertical positions in a vertical layout
    +					// in the edge buffer channels above and below this rank
    +					double topChannelY = (rankTopY[currentRank] + rankBottomY[currentRank + 1]) / 2.0;
    +					double bottomChannelY = (rankTopY[currentRank - 1] + rankBottomY[currentRank]) / 2.0;
    +
    +					if (edge.isReversed())
    +					{
    +						double tmp = topChannelY;
    +						topChannelY = bottomChannelY;
    +						bottomChannelY = tmp;
    +					}
    +
    +					if (orientation == SwingConstants.NORTH
    +							|| orientation == SwingConstants.SOUTH)
    +					{
    +						newPoints.add(new mxPoint(positionX, topChannelY));
    +						newPoints.add(new mxPoint(positionX, bottomChannelY));
    +					}
    +					else
    +					{
    +						newPoints.add(new mxPoint(topChannelY, positionX));
    +						newPoints.add(new mxPoint(bottomChannelY, positionX));
    +					}
    +
    +					limitX = Math.max(limitX, positionX);
    +
    +					//					double currentY = (rankTopY[currentRank] + rankBottomY[currentRank]) / 2.0;
    +					//					System.out.println("topChannelY = " + topChannelY + " , "
    +					//							+ "exact Y = " + edge.y[j]);
    +					currentRank += loopDelta;
    +				}
    +
    +				if (jettys != null)
    +				{
    +					int arrayOffset = edge.isReversed() ? 2 : 0;
    +					double rankY = edge.isReversed() ? rankBottomY[maxRank] : rankTopY[minRank];
    +					double jetty = jettys[parallelEdgeCount * 4 + 3 - arrayOffset];
    +					
    +					if (edge.isReversed())
    +					{
    +						jetty = -jetty;
    +					}
    +					double y = rankY - jetty;
    +					double x = jettys[parallelEdgeCount * 4 + 2 - arrayOffset];
    +
    +					if (orientation == SwingConstants.NORTH
    +							|| orientation == SwingConstants.SOUTH)
    +					{
    +						newPoints.add(new mxPoint(x, y));
    +					}
    +					else
    +					{
    +						newPoints.add(new mxPoint(y, x));
    +					}
    +				}
    +				
    +				if (edge.isReversed())
    +				{
    +					processReversedEdge(edge, realEdge);
    +				}
    +
    +				layout.setEdgePoints(realEdge, newPoints);
    +
    +				// Increase offset so next edge is drawn next to
    +				// this one
    +				if (offsetX == 0.0)
    +				{
    +					offsetX = parallelEdgeSpacing;
    +				}
    +				else if (offsetX > 0)
    +				{
    +					offsetX = -offsetX;
    +				}
    +				else
    +				{
    +					offsetX = -offsetX + parallelEdgeSpacing;
    +				}
    +				
    +				parallelEdgeCount++;
    +			}
    +
    +			edge.temp[0] = 101207;
    +		}
    +	}
    +
    +	/**
    +	 * Fixes the position of the specified vertex
    +	 * @param cell the vertex to position
    +	 */
    +	protected void setVertexLocation(mxGraphAbstractHierarchyCell cell)
    +	{
    +		mxGraphHierarchyNode node = (mxGraphHierarchyNode) cell;
    +		Object realCell = node.cell;
    +		double positionX = node.x[0] - node.width / 2;
    +		double positionY = node.y[0] - node.height / 2;
    +
    +		rankTopY[cell.minRank] = Math.min(rankTopY[cell.minRank], positionY);
    +		rankBottomY[cell.minRank] = Math.max(rankBottomY[cell.minRank],
    +				positionY + node.height);
    +
    +		if (orientation == SwingConstants.NORTH
    +				|| orientation == SwingConstants.SOUTH)
    +		{
    +			layout.setVertexLocation(realCell, positionX, positionY);
    +		}
    +		else
    +		{
    +			layout.setVertexLocation(realCell, positionY, positionX);
    +		}
    +
    +		limitX = Math.max(limitX, positionX + node.width);
    +	}
    +
    +	/**
    +	 * Hook to add additional processing
    +	 * 
    +	 * @param edge
    +	 *            The hierarchical model edge
    +	 * @param realEdge
    +	 *            The real edge in the graph
    +	 */
    +	protected void processReversedEdge(mxGraphHierarchyEdge edge,
    +			Object realEdge)
    +	{
    +		// Added as hook for customer
    +	}
    +
    +	/**
    +	 * A utility class used to track cells whilst sorting occurs on the weighted
    +	 * sum of their connected edges. Does not violate (x.compareTo(y)==0) ==
    +	 * (x.equals(y))
    +	 */
    +	protected class WeightedCellSorter implements Comparable<Object>
    +	{
    +
    +		/**
    +		 * The weighted value of the cell stored
    +		 */
    +		public int weightedValue = 0;
    +
    +		/**
    +		 * Whether or not to flip equal weight values.
    +		 */
    +		public boolean nudge = false;
    +
    +		/**
    +		 * Whether or not this cell has been visited in the current assignment
    +		 */
    +		public boolean visited = false;
    +
    +		/**
    +		 * The index this cell is in the model rank
    +		 */
    +		public int rankIndex;
    +
    +		/**
    +		 * The cell whose median value is being calculated
    +		 */
    +		public mxGraphAbstractHierarchyCell cell = null;
    +
    +		public WeightedCellSorter()
    +		{
    +			this(null, 0);
    +		}
    +
    +		public WeightedCellSorter(mxGraphAbstractHierarchyCell cell,
    +				int weightedValue)
    +		{
    +			this.cell = cell;
    +			this.weightedValue = weightedValue;
    +		}
    +
    +		/**
    +		 * comparator on the medianValue
    +		 * 
    +		 * @param arg0
    +		 *            the object to be compared to
    +		 * @return the standard return you would expect when comparing two
    +		 *         double
    +		 */
    +		public int compareTo(Object arg0)
    +		{
    +			if (arg0 instanceof WeightedCellSorter)
    +			{
    +				if (weightedValue > ((WeightedCellSorter) arg0).weightedValue)
    +				{
    +					return -1;
    +				}
    +				else if (weightedValue < ((WeightedCellSorter) arg0).weightedValue)
    +				{
    +					return 1;
    +				}
    +				else
    +				{
    +					if (nudge)
    +					{
    +						return -1;
    +					}
    +					else
    +					{
    +						return 1;
    +					}
    +				}
    +			}
    +			else
    +			{
    +				return 0;
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * Utility class that stores a collection of vertices and edge points within
    +	 * a certain area. This area includes the buffer lengths of cells.
    +	 */
    +	protected class AreaSpatialCache extends Rectangle2D.Double
    +	{
    +		public Set<Object> cells = new HashSet<Object>();
    +	}
    +
    +	/**
    +	 * @return Returns the interRankCellSpacing.
    +	 */
    +	public double getInterRankCellSpacing()
    +	{
    +		return interRankCellSpacing;
    +	}
    +
    +	/**
    +	 * @param interRankCellSpacing
    +	 *            The interRankCellSpacing to set.
    +	 */
    +	public void setInterRankCellSpacing(double interRankCellSpacing)
    +	{
    +		this.interRankCellSpacing = interRankCellSpacing;
    +	}
    +
    +	/**
    +	 * @return Returns the intraCellSpacing.
    +	 */
    +	public double getIntraCellSpacing()
    +	{
    +		return intraCellSpacing;
    +	}
    +
    +	/**
    +	 * @param intraCellSpacing
    +	 *            The intraCellSpacing to set.
    +	 */
    +	public void setIntraCellSpacing(double intraCellSpacing)
    +	{
    +		this.intraCellSpacing = intraCellSpacing;
    +	}
    +
    +	/**
    +	 * @return Returns the orientation.
    +	 */
    +	public int getOrientation()
    +	{
    +		return orientation;
    +	}
    +
    +	/**
    +	 * @param orientation
    +	 *            The orientation to set.
    +	 */
    +	public void setOrientation(int orientation)
    +	{
    +		this.orientation = orientation;
    +	}
    +
    +	/**
    +	 * @return Returns the limitX.
    +	 */
    +	public double getLimitX()
    +	{
    +		return limitX;
    +	}
    +
    +	/**
    +	 * @param limitX
    +	 *            The limitX to set.
    +	 */
    +	public void setLimitX(double limitX)
    +	{
    +		this.limitX = limitX;
    +	}
    +
    +	/**
    +	 * @return Returns the fineTuning.
    +	 */
    +	public boolean isFineTuning()
    +	{
    +		return fineTuning;
    +	}
    +
    +	/**
    +	 * @param fineTuning
    +	 *            The fineTuning to set.
    +	 */
    +	public void setFineTuning(boolean fineTuning)
    +	{
    +		this.fineTuning = fineTuning;
    +	}
    +
    +	/**
    +	 * Sets the logging level of this class
    +	 * 
    +	 * @param level
    +	 *            the logging level to set
    +	 */
    +	public void setLoggerLevel(Level level)
    +	{
    +		try
    +		{
    +			logger.setLevel(level);
    +		}
    +		catch (SecurityException e)
    +		{
    +			// Probably running in an applet
    +		}
    +	}
    +}
    diff --git a/java/src/com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.java b/java/src/com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.java
    new file mode 100644
    index 000000000..ab84b787b
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/stage/mxHierarchicalLayoutStage.java
    @@ -0,0 +1,28 @@
    +/* 
    + * Copyright (c) 2005, David Benson
    + * 
    + * All rights reserved. 
    + * 
    + * This file is licensed under the JGraph software license, a copy of which
    + * will have been provided to you in the file LICENSE at the root of your
    + * installation directory. If you are unable to locate this file please
    + * contact JGraph sales for another copy.
    + */
    +package com.mxgraph.layout.hierarchical.stage;
    +
    +/**
    + * The specific layout interface for hierarchical layouts. It adds a
    + * <code>run</code> method with a parameter for the hierarchical layout model
    + * that is shared between the layout stages.
    + */
    +public interface mxHierarchicalLayoutStage
    +{
    +
    +	/**
    +	 * Takes the graph detail and configuration information within the facade
    +	 * and creates the resulting laid out graph within that facade for further
    +	 * use.
    +	 */
    +	public void execute(Object parent);
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.java b/java/src/com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.java
    new file mode 100644
    index 000000000..2cf965ff8
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/stage/mxMedianHybridCrossingReduction.java
    @@ -0,0 +1,655 @@
    +/*
    + * Copyright (c) 2005-2009, JGraph Ltd
    + *
    + * All rights reserved.
    + *
    + * This file is licensed under the JGraph software license, a copy of which
    + * will have been provided to you in the file LICENSE at the root of your
    + * installation directory. If you are unable to locate this file please
    + * contact JGraph sales for another copy.
    + */
    +
    +package com.mxgraph.layout.hierarchical.stage;
    +
    +import java.util.Arrays;
    +import java.util.Collection;
    +import java.util.Iterator;
    +import java.util.LinkedHashMap;
    +import java.util.List;
    +import java.util.Map;
    +
    +import com.mxgraph.layout.hierarchical.mxHierarchicalLayout;
    +import com.mxgraph.layout.hierarchical.model.mxGraphAbstractHierarchyCell;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyRank;
    +
    +/**
    + * Performs a vertex ordering within ranks as described by Gansner et al 1993
    + */
    +public class mxMedianHybridCrossingReduction implements
    +		mxHierarchicalLayoutStage/*, JGraphLayout.Stoppable*/
    +{
    +	/**
    +	 * Reference to the enclosing layout algorithm
    +	 */
    +	protected mxHierarchicalLayout layout;
    +
    +	/**
    +	 * The maximum number of iterations to perform whilst reducing edge
    +	 * crossings
    +	 */
    +	protected int maxIterations = 24;
    +
    +	/**
    +	 * Stores each rank as a collection of cells in the best order found for
    +	 * each layer so far
    +	 */
    +	protected mxGraphAbstractHierarchyCell[][] nestedBestRanks = null;
    +
    +	/**
    +	 * The total number of crossings found in the best configuration so far
    +	 */
    +	protected int currentBestCrossings = 0;
    +
    +	protected int iterationsWithoutImprovement = 0;
    +
    +	protected int maxNoImprovementIterations = 2;
    +
    +	/**
    +	 * Constructor that has the roots specified
    +	 */
    +	public mxMedianHybridCrossingReduction(mxHierarchicalLayout layout)
    +	{
    +		this.layout = layout;
    +	}
    +
    +	/**
    +	 * Performs a vertex ordering within ranks as described by Gansner et al
    +	 * 1993
    +	 */
    +	public void execute(Object parent)
    +	{
    +		mxGraphHierarchyModel model = layout.getModel();
    +
    +		// Stores initial ordering as being the best one found so far
    +		nestedBestRanks = new mxGraphAbstractHierarchyCell[model.ranks.size()][];
    +
    +		for (int i = 0; i < nestedBestRanks.length; i++)
    +		{
    +			mxGraphHierarchyRank rank = model.ranks.get(new Integer(i));
    +			nestedBestRanks[i] = new mxGraphAbstractHierarchyCell[rank.size()];
    +			rank.toArray(nestedBestRanks[i]);
    +		}
    +
    +		iterationsWithoutImprovement = 0;
    +		currentBestCrossings = calculateCrossings(model);
    +
    +		for (int i = 0; i < maxIterations
    +				&& iterationsWithoutImprovement < maxNoImprovementIterations; i++)
    +		{
    +			weightedMedian(i, model);
    +			transpose(i, model);
    +			int candidateCrossings = calculateCrossings(model);
    +
    +			if (candidateCrossings < currentBestCrossings)
    +			{
    +				currentBestCrossings = candidateCrossings;
    +				iterationsWithoutImprovement = 0;
    +
    +				// Store the current rankings as the best ones
    +				for (int j = 0; j < nestedBestRanks.length; j++)
    +				{
    +					mxGraphHierarchyRank rank = model.ranks.get(new Integer(j));
    +					Iterator<mxGraphAbstractHierarchyCell> iter = rank
    +							.iterator();
    +
    +					for (int k = 0; k < rank.size(); k++)
    +					{
    +						mxGraphAbstractHierarchyCell cell = iter
    +								.next();
    +						nestedBestRanks[j][cell.getGeneralPurposeVariable(j)] = cell;
    +					}
    +				}
    +			}
    +			else
    +			{
    +				// Increase count of iterations where we haven't improved the
    +				// layout
    +				iterationsWithoutImprovement++;
    +
    +				// Restore the best values to the cells
    +				for (int j = 0; j < nestedBestRanks.length; j++)
    +				{
    +					mxGraphHierarchyRank rank = model.ranks.get(new Integer(j));
    +					Iterator<mxGraphAbstractHierarchyCell> iter = rank
    +							.iterator();
    +
    +					for (int k = 0; k < rank.size(); k++)
    +					{
    +						mxGraphAbstractHierarchyCell cell = iter
    +								.next();
    +						cell.setGeneralPurposeVariable(j, k);
    +					}
    +				}
    +			}
    +
    +			if (currentBestCrossings == 0)
    +			{
    +				// Do nothing further
    +				break;
    +			}
    +		}
    +
    +		// Store the best rankings but in the model
    +		Map<Integer, mxGraphHierarchyRank> ranks = new LinkedHashMap<Integer, mxGraphHierarchyRank>(
    +				model.maxRank + 1);
    +		mxGraphHierarchyRank[] rankList = new mxGraphHierarchyRank[model.maxRank + 1];
    +
    +		for (int i = 0; i < model.maxRank + 1; i++)
    +		{
    +			rankList[i] = new mxGraphHierarchyRank();
    +			ranks.put(new Integer(i), rankList[i]);
    +		}
    +
    +		for (int i = 0; i < nestedBestRanks.length; i++)
    +		{
    +			for (int j = 0; j < nestedBestRanks[i].length; j++)
    +			{
    +				rankList[i].add(nestedBestRanks[i][j]);
    +			}
    +		}
    +
    +		model.ranks = ranks;
    +	}
    +
    +	/**
    +	 * Calculates the total number of edge crossing in the current graph
    +	 * 
    +	 * @param model
    +	 *            the internal model describing the hierarchy
    +	 * @return the current number of edge crossings in the hierarchy graph model
    +	 *         in the current candidate layout
    +	 */
    +	private int calculateCrossings(mxGraphHierarchyModel model)
    +	{
    +		// The intra-rank order of cells are stored within the temp variables
    +		// on cells
    +		int numRanks = model.ranks.size();
    +		int totalCrossings = 0;
    +
    +		for (int i = 1; i < numRanks; i++)
    +		{
    +			totalCrossings += calculateRankCrossing(i, model);
    +		}
    +
    +		return totalCrossings;
    +	}
    +
    +	/**
    +	 * Calculates the number of edges crossings between the specified rank and
    +	 * the rank below it
    +	 * 
    +	 * @param i
    +	 *            the topmost rank of the pair ( higher rank value )
    +	 * @param model
    +	 *            the internal hierarchy model of the graph
    +	 * @return the number of edges crossings with the rank beneath
    +	 */
    +	protected int calculateRankCrossing(int i, mxGraphHierarchyModel model)
    +	{
    +		int totalCrossings = 0;
    +		mxGraphHierarchyRank rank = model.ranks.get(new Integer(i));
    +		mxGraphHierarchyRank previousRank = model.ranks.get(new Integer(i - 1));
    +
    +		// Create an array of connections between these two levels
    +		int currentRankSize = rank.size();
    +		int previousRankSize = previousRank.size();
    +		int[][] connections = new int[currentRankSize][previousRankSize];
    +
    +		// Iterate over the top rank and fill in the connection information
    +		Iterator<mxGraphAbstractHierarchyCell> iter = rank.iterator();
    +
    +		while (iter.hasNext())
    +		{
    +			mxGraphAbstractHierarchyCell cell = iter.next();
    +			int rankPosition = cell.getGeneralPurposeVariable(i);
    +			Collection<mxGraphAbstractHierarchyCell> connectedCells = cell
    +					.getPreviousLayerConnectedCells(i);
    +			Iterator<mxGraphAbstractHierarchyCell> iter2 = connectedCells
    +					.iterator();
    +
    +			while (iter2.hasNext())
    +			{
    +				mxGraphAbstractHierarchyCell connectedCell = iter2.next();
    +				int otherCellRankPosition = connectedCell
    +						.getGeneralPurposeVariable(i - 1);
    +				connections[rankPosition][otherCellRankPosition] = 201207;
    +			}
    +		}
    +
    +		// Iterate through the connection matrix, crossing edges are
    +		// indicated by other connected edges with a greater rank position
    +		// on one rank and lower position on the other
    +		for (int j = 0; j < currentRankSize; j++)
    +		{
    +			for (int k = 0; k < previousRankSize; k++)
    +			{
    +				if (connections[j][k] == 201207)
    +				{
    +					// Draw a grid of connections, crossings are top right
    +					// and lower left from this crossing pair
    +					for (int j2 = j + 1; j2 < currentRankSize; j2++)
    +					{
    +						for (int k2 = 0; k2 < k; k2++)
    +						{
    +							if (connections[j2][k2] == 201207)
    +							{
    +								totalCrossings++;
    +							}
    +						}
    +					}
    +
    +					for (int j2 = 0; j2 < j; j2++)
    +					{
    +						for (int k2 = k + 1; k2 < previousRankSize; k2++)
    +						{
    +							if (connections[j2][k2] == 201207)
    +							{
    +								totalCrossings++;
    +							}
    +						}
    +					}
    +
    +				}
    +			}
    +		}
    +
    +		return totalCrossings / 2;
    +	}
    +
    +	/**
    +	 * Takes each possible adjacent cell pair on each rank and checks if
    +	 * swapping them around reduces the number of crossing
    +	 * 
    +	 * @param mainLoopIteration
    +	 *            the iteration number of the main loop
    +	 * @param model
    +	 *            the internal model describing the hierarchy
    +	 */
    +	private void transpose(int mainLoopIteration, mxGraphHierarchyModel model)
    +	{
    +		boolean improved = true;
    +
    +		// Track the number of iterations in case of looping
    +		int count = 0;
    +		int maxCount = 10;
    +
    +		while (improved && count++ < maxCount)
    +		{
    +			// On certain iterations allow allow swapping of cell pairs with
    +			// equal edge crossings switched or not switched. This help to
    +			// nudge a stuck layout into a lower crossing total.
    +			boolean nudge = mainLoopIteration % 2 == 1 && count % 2 == 1;
    +			improved = false;
    +
    +			for (int i = 0; i < model.ranks.size(); i++)
    +			{
    +				mxGraphHierarchyRank rank = model.ranks.get(new Integer(i));
    +				mxGraphAbstractHierarchyCell[] orderedCells = new mxGraphAbstractHierarchyCell[rank
    +						.size()];
    +				Iterator<mxGraphAbstractHierarchyCell> iter = rank.iterator();
    +
    +				for (int j = 0; j < orderedCells.length; j++)
    +				{
    +					mxGraphAbstractHierarchyCell cell = iter
    +							.next();
    +					orderedCells[cell.getGeneralPurposeVariable(i)] = cell;
    +				}
    +
    +				List<mxGraphAbstractHierarchyCell> leftCellAboveConnections = null;
    +				List<mxGraphAbstractHierarchyCell> leftCellBelowConnections = null;
    +				List<mxGraphAbstractHierarchyCell> rightCellAboveConnections = null;
    +				List<mxGraphAbstractHierarchyCell> rightCellBelowConnections = null;
    +
    +				int[] leftAbovePositions = null;
    +				int[] leftBelowPositions = null;
    +				int[] rightAbovePositions = null;
    +				int[] rightBelowPositions = null;
    +
    +				mxGraphAbstractHierarchyCell leftCell = null;
    +				mxGraphAbstractHierarchyCell rightCell = null;
    +
    +				for (int j = 0; j < (rank.size() - 1); j++)
    +				{
    +					// For each intra-rank adjacent pair of cells
    +					// see if swapping them around would reduce the
    +					// number of edges crossing they cause in total
    +					// On every cell pair except the first on each rank, we
    +					// can save processing using the previous values for the
    +					// right cell on the new left cell
    +					if (j == 0)
    +					{
    +						leftCell = orderedCells[j];
    +						leftCellAboveConnections = leftCell
    +								.getNextLayerConnectedCells(i);
    +						leftCellBelowConnections = leftCell
    +								.getPreviousLayerConnectedCells(i);
    +
    +						leftAbovePositions = new int[leftCellAboveConnections
    +								.size()];
    +						leftBelowPositions = new int[leftCellBelowConnections
    +								.size()];
    +
    +						for (int k = 0; k < leftAbovePositions.length; k++)
    +						{
    +							leftAbovePositions[k] = leftCellAboveConnections
    +									.get(k).getGeneralPurposeVariable(i + 1);
    +						}
    +
    +						for (int k = 0; k < leftBelowPositions.length; k++)
    +						{
    +							leftBelowPositions[k] = (leftCellBelowConnections
    +									.get(k)).getGeneralPurposeVariable(i - 1);
    +						}
    +					}
    +					else
    +					{
    +						leftCellAboveConnections = rightCellAboveConnections;
    +						leftCellBelowConnections = rightCellBelowConnections;
    +						leftAbovePositions = rightAbovePositions;
    +						leftBelowPositions = rightBelowPositions;
    +						leftCell = rightCell;
    +					}
    +
    +					rightCell = orderedCells[j + 1];
    +					rightCellAboveConnections = rightCell
    +							.getNextLayerConnectedCells(i);
    +					rightCellBelowConnections = rightCell
    +							.getPreviousLayerConnectedCells(i);
    +
    +					rightAbovePositions = new int[rightCellAboveConnections
    +							.size()];
    +					rightBelowPositions = new int[rightCellBelowConnections
    +							.size()];
    +
    +					for (int k = 0; k < rightAbovePositions.length; k++)
    +					{
    +						rightAbovePositions[k] = (rightCellAboveConnections
    +								.get(k)).getGeneralPurposeVariable(i + 1);
    +					}
    +
    +					for (int k = 0; k < rightBelowPositions.length; k++)
    +					{
    +						rightBelowPositions[k] = (rightCellBelowConnections
    +								.get(k)).getGeneralPurposeVariable(i - 1);
    +					}
    +
    +					int totalCurrentCrossings = 0;
    +					int totalSwitchedCrossings = 0;
    +
    +					for (int k = 0; k < leftAbovePositions.length; k++)
    +					{
    +						for (int ik = 0; ik < rightAbovePositions.length; ik++)
    +						{
    +							if (leftAbovePositions[k] > rightAbovePositions[ik])
    +							{
    +								totalCurrentCrossings++;
    +							}
    +
    +							if (leftAbovePositions[k] < rightAbovePositions[ik])
    +							{
    +								totalSwitchedCrossings++;
    +							}
    +						}
    +					}
    +
    +					for (int k = 0; k < leftBelowPositions.length; k++)
    +					{
    +						for (int ik = 0; ik < rightBelowPositions.length; ik++)
    +						{
    +							if (leftBelowPositions[k] > rightBelowPositions[ik])
    +							{
    +								totalCurrentCrossings++;
    +							}
    +
    +							if (leftBelowPositions[k] < rightBelowPositions[ik])
    +							{
    +								totalSwitchedCrossings++;
    +							}
    +						}
    +					}
    +
    +					if ((totalSwitchedCrossings < totalCurrentCrossings)
    +							|| (totalSwitchedCrossings == totalCurrentCrossings && nudge))
    +					{
    +						int temp = leftCell.getGeneralPurposeVariable(i);
    +						leftCell.setGeneralPurposeVariable(i, rightCell
    +								.getGeneralPurposeVariable(i));
    +						rightCell.setGeneralPurposeVariable(i, temp);
    +						// With this pair exchanged we have to switch all of
    +						// values for the left cell to the right cell so the
    +						// next iteration for this rank uses it as the left
    +						// cell again
    +						rightCellAboveConnections = leftCellAboveConnections;
    +						rightCellBelowConnections = leftCellBelowConnections;
    +						rightAbovePositions = leftAbovePositions;
    +						rightBelowPositions = leftBelowPositions;
    +						rightCell = leftCell;
    +
    +						if (!nudge)
    +						{
    +							// Don't count nudges as improvement or we'll end
    +							// up stuck in two combinations and not finishing
    +							// as early as we should
    +							improved = true;
    +						}
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Sweeps up or down the layout attempting to minimise the median placement
    +	 * of connected cells on adjacent ranks
    +	 * 
    +	 * @param iteration
    +	 *            the iteration number of the main loop
    +	 * @param model
    +	 *            the internal model describing the hierarchy
    +	 */
    +	private void weightedMedian(int iteration, mxGraphHierarchyModel model)
    +	{
    +		// Reverse sweep direction each time through this method
    +		boolean downwardSweep = (iteration % 2 == 0);
    +
    +		if (downwardSweep)
    +		{
    +			for (int j = model.maxRank - 1; j >= 0; j--)
    +			{
    +				medianRank(j, downwardSweep);
    +			}
    +		}
    +		else
    +		{
    +			for (int j = 1; j < model.maxRank; j++)
    +			{
    +				medianRank(j, downwardSweep);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Attempts to minimise the median placement of connected cells on this rank
    +	 * and one of the adjacent ranks
    +	 * 
    +	 * @param rankValue
    +	 *            the layer number of this rank
    +	 * @param downwardSweep
    +	 *            whether or not this is a downward sweep through the graph
    +	 */
    +	private void medianRank(int rankValue, boolean downwardSweep)
    +	{
    +		int numCellsForRank = nestedBestRanks[rankValue].length;
    +		MedianCellSorter[] medianValues = new MedianCellSorter[numCellsForRank];
    +
    +		for (int i = 0; i < numCellsForRank; i++)
    +		{
    +			mxGraphAbstractHierarchyCell cell = nestedBestRanks[rankValue][i];
    +			medianValues[i] = new MedianCellSorter();
    +			medianValues[i].cell = cell;
    +
    +			// Flip whether or not equal medians are flipped on up and down
    +			// sweeps
    +			// todo reimplement some kind of nudging depending on sweep
    +			//nudge = !downwardSweep;
    +			Collection<mxGraphAbstractHierarchyCell> nextLevelConnectedCells;
    +
    +			if (downwardSweep)
    +			{
    +				nextLevelConnectedCells = cell
    +						.getNextLayerConnectedCells(rankValue);
    +			}
    +			else
    +			{
    +				nextLevelConnectedCells = cell
    +						.getPreviousLayerConnectedCells(rankValue);
    +			}
    +
    +			int nextRankValue;
    +
    +			if (downwardSweep)
    +			{
    +				nextRankValue = rankValue + 1;
    +			}
    +			else
    +			{
    +				nextRankValue = rankValue - 1;
    +			}
    +
    +			if (nextLevelConnectedCells != null
    +					&& nextLevelConnectedCells.size() != 0)
    +			{
    +				medianValues[i].medianValue = medianValue(
    +						nextLevelConnectedCells, nextRankValue);
    +			}
    +			else
    +			{
    +				// Nodes with no adjacent vertices are given a median value of
    +				// -1 to indicate to the median function that they should be
    +				// left of their current position if possible.
    +				medianValues[i].medianValue = -1.0; // TODO needs to account for
    +				// both layers
    +			}
    +		}
    +
    +		Arrays.sort(medianValues);
    +
    +		// Set the new position of each node within the rank using
    +		// its temp variable
    +		for (int i = 0; i < numCellsForRank; i++)
    +		{
    +			medianValues[i].cell.setGeneralPurposeVariable(rankValue, i);
    +		}
    +	}
    +
    +	/**
    +	 * Calculates the median rank order positioning for the specified cell using
    +	 * the connected cells on the specified rank
    +	 * 
    +	 * @param connectedCells
    +	 *            the cells on the specified rank connected to the specified
    +	 *            cell
    +	 * @param rankValue
    +	 *            the rank that the connected cell lie upon
    +	 * @return the median rank ordering value of the connected cells
    +	 */
    +	private double medianValue(
    +			Collection<mxGraphAbstractHierarchyCell> connectedCells,
    +			int rankValue)
    +	{
    +		double[] medianValues = new double[connectedCells.size()];
    +		int arrayCount = 0;
    +		Iterator<mxGraphAbstractHierarchyCell> iter = connectedCells.iterator();
    +
    +		while (iter.hasNext())
    +		{
    +			medianValues[arrayCount++] = (iter
    +					.next()).getGeneralPurposeVariable(rankValue);
    +		}
    +
    +		Arrays.sort(medianValues);
    +
    +		if (arrayCount % 2 == 1)
    +		{
    +			// For odd numbers of adjacent vertices return the median
    +			return medianValues[arrayCount / 2];
    +		}
    +		else if (arrayCount == 2)
    +		{
    +			return ((medianValues[0] + medianValues[1]) / 2.0);
    +		}
    +		else
    +		{
    +			int medianPoint = arrayCount / 2;
    +			double leftMedian = medianValues[medianPoint - 1] - medianValues[0];
    +			double rightMedian = medianValues[arrayCount - 1]
    +					- medianValues[medianPoint];
    +
    +			return (medianValues[medianPoint - 1] * rightMedian + medianValues[medianPoint]
    +					* leftMedian)
    +					/ (leftMedian + rightMedian);
    +		}
    +	}
    +
    +	/**
    +	 * A utility class used to track cells whilst sorting occurs on the median
    +	 * values. Does not violate (x.compareTo(y)==0) == (x.equals(y))
    +	 */
    +	protected class MedianCellSorter implements Comparable<Object>
    +	{
    +
    +		/**
    +		 * The median value of the cell stored
    +		 */
    +		public double medianValue = 0.0;
    +
    +		/**
    +		 * The cell whose median value is being calculated
    +		 */
    +		mxGraphAbstractHierarchyCell cell = null;
    +
    +		/**
    +		 * comparator on the medianValue
    +		 * 
    +		 * @param arg0
    +		 *            the object to be compared to
    +		 * @return the standard return you would expect when comparing two
    +		 *         double
    +		 */
    +		public int compareTo(Object arg0)
    +		{
    +			if (arg0 instanceof MedianCellSorter)
    +			{
    +				if (medianValue < ((MedianCellSorter) arg0).medianValue)
    +				{
    +					return -1;
    +				}
    +				else if (medianValue > ((MedianCellSorter) arg0).medianValue)
    +				{
    +					return 1;
    +				}
    +				else
    +				{
    +					return 0;
    +				}
    +			}
    +			else
    +			{
    +				return 0;
    +			}
    +		}
    +
    +	}
    +
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.java b/java/src/com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.java
    new file mode 100644
    index 000000000..b06ecd759
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/hierarchical/stage/mxMinimumCycleRemover.java
    @@ -0,0 +1,155 @@
    +/*
    + * Copyright (c) 2005, David Benson
    + *
    + * All rights reserved.
    + *
    + * This file is licensed under the JGraph software license, a copy of which
    + * will have been provided to you in the file LICENSE at the root of your
    + * installation directory. If you are unable to locate this file please
    + * contact JGraph sales for another copy.
    + */
    +package com.mxgraph.layout.hierarchical.stage;
    +
    +import java.util.HashSet;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.Set;
    +
    +import com.mxgraph.layout.hierarchical.mxHierarchicalLayout;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyEdge;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyModel;
    +import com.mxgraph.layout.hierarchical.model.mxGraphHierarchyNode;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * An implementation of the first stage of the Sugiyama layout. Straightforward
    + * longest path calculation of layer assignment
    + */
    +public class mxMinimumCycleRemover implements mxHierarchicalLayoutStage
    +{
    +
    +	/**
    +	 * Reference to the enclosing layout algorithm
    +	 */
    +	protected mxHierarchicalLayout layout;
    +
    +	/**
    +	 * Constructor that has the roots specified
    +	 */
    +	public mxMinimumCycleRemover(mxHierarchicalLayout layout)
    +	{
    +		this.layout = layout;
    +	}
    +
    +	/**
    +	 * Produces the layer assignmment using the graph information specified
    +	 */
    +	public void execute(Object parent)
    +	{
    +		mxGraphHierarchyModel model = layout.getModel();
    +		final Set<mxGraphHierarchyNode> seenNodes = new HashSet<mxGraphHierarchyNode>();
    +		final Set<mxGraphHierarchyNode> unseenNodes = new HashSet<mxGraphHierarchyNode>(
    +				model.getVertexMapper().values());
    +
    +		// Perform a dfs through the internal model. If a cycle is found,
    +		// reverse it.
    +		mxGraphHierarchyNode[] rootsArray = null;
    +
    +		if (model.roots != null)
    +		{
    +			Object[] modelRoots = model.roots.toArray();
    +			rootsArray = new mxGraphHierarchyNode[modelRoots.length];
    +
    +			for (int i = 0; i < modelRoots.length; i++)
    +			{
    +				Object node = modelRoots[i];
    +				mxGraphHierarchyNode internalNode = model
    +						.getVertexMapper().get(node);
    +				rootsArray[i] = internalNode;
    +			}
    +		}
    +
    +		model.visit(new mxGraphHierarchyModel.CellVisitor()
    +		{
    +			public void visit(mxGraphHierarchyNode parent,
    +					mxGraphHierarchyNode cell,
    +					mxGraphHierarchyEdge connectingEdge, int layer, int seen)
    +			{
    +				// Check if the cell is in it's own ancestor list, if so
    +				// invert the connecting edge and reverse the target/source
    +				// relationship to that edge in the parent and the cell
    +				if ((cell)
    +						.isAncestor(parent))
    +				{
    +					connectingEdge.invert();
    +					parent.connectsAsSource.remove(connectingEdge);
    +					parent.connectsAsTarget.add(connectingEdge);
    +					cell.connectsAsTarget.remove(connectingEdge);
    +					cell.connectsAsSource.add(connectingEdge);
    +				}
    +				seenNodes.add(cell);
    +				unseenNodes.remove(cell);
    +			}
    +		}, rootsArray, true, null);
    +
    +		Set<Object> possibleNewRoots = null;
    +
    +		if (unseenNodes.size() > 0)
    +		{
    +			possibleNewRoots = new HashSet<Object>(unseenNodes);
    +		}
    +
    +		// If there are any nodes that should be nodes that the dfs can miss
    +		// these need to be processed with the dfs and the roots assigned
    +		// correctly to form a correct internal model
    +		Set<mxGraphHierarchyNode> seenNodesCopy = new HashSet<mxGraphHierarchyNode>(
    +				seenNodes);
    +
    +		// Pick a random cell and dfs from it
    +		mxGraphHierarchyNode[] unseenNodesArray = new mxGraphHierarchyNode[1];
    +		unseenNodes.toArray(unseenNodesArray);
    +		
    +		model.visit(new mxGraphHierarchyModel.CellVisitor()
    +		{
    +			public void visit(mxGraphHierarchyNode parent,
    +					mxGraphHierarchyNode cell,
    +					mxGraphHierarchyEdge connectingEdge, int layer, int seen)
    +			{
    +				// Check if the cell is in it's own ancestor list, if so
    +				// invert the connecting edge and reverse the target/source
    +				// relationship to that edge in the parent and the cell
    +				if ((cell)
    +						.isAncestor(parent))
    +				{
    +					connectingEdge.invert();
    +					parent.connectsAsSource.remove(connectingEdge);
    +					parent.connectsAsTarget.add(connectingEdge);
    +					cell.connectsAsTarget.remove(connectingEdge);
    +					cell.connectsAsSource.add(connectingEdge);
    +				}
    +				seenNodes.add(cell);
    +				unseenNodes.remove(cell);
    +			}
    +		}, unseenNodesArray, true, seenNodesCopy);
    +
    +		mxGraph graph = layout.getGraph();
    +
    +		if (possibleNewRoots != null && possibleNewRoots.size() > 0)
    +		{
    +			Iterator<Object> iter = possibleNewRoots.iterator();
    +			List<Object> roots = model.roots;
    +
    +			while (iter.hasNext())
    +			{
    +				mxGraphHierarchyNode node = (mxGraphHierarchyNode) iter.next();
    +				Object realNode = node.cell;
    +				int numIncomingEdges = graph.getIncomingEdges(realNode).length;
    +
    +				if (numIncomingEdges == 0)
    +				{
    +					roots.add(realNode);
    +				}
    +			}
    +		}
    +	}
    +}
    diff --git a/java/src/com/mxgraph/layout/mxCircleLayout.java b/java/src/com/mxgraph/layout/mxCircleLayout.java
    new file mode 100644
    index 000000000..58cd43c10
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxCircleLayout.java
    @@ -0,0 +1,267 @@
    +package com.mxgraph.layout;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxGraph;
    +
    +public class mxCircleLayout extends mxGraphLayout
    +{
    +
    +	/**
    +	 * Integer specifying the size of the radius. Default is 100.
    +	 */
    +	protected double radius;
    +
    +	/**
    +	 * Boolean specifying if the circle should be moved to the top,
    +	 * left corner specified by x0 and y0. Default is false.
    +	 */
    +	protected boolean moveCircle = true;
    +
    +	/**
    +	 * Integer specifying the left coordinate of the circle.
    +	 * Default is 0.
    +	 */
    +	protected double x0 = 0;
    +
    +	/**
    +	 * Integer specifying the top coordinate of the circle.
    +	 * Default is 0.
    +	 */
    +	protected double y0 = 0;
    +
    +	/**
    +	 * Specifies if all edge points of traversed edges should be removed.
    +	 * Default is true.
    +	 */
    +	protected boolean resetEdges = false;
    +
    +	/**
    +	 *  Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    +	 * modified by the result. Default is true.
    +	 */
    +	protected boolean disableEdgeStyle = true;
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxCircleLayout(mxGraph graph)
    +	{
    +		this(graph, 100);
    +	}
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxCircleLayout(mxGraph graph, double radius)
    +	{
    +		super(graph);
    +		this.radius = radius;
    +	}
    +
    +	/**
    +	 * @return the radius
    +	 */
    +	public double getRadius()
    +	{
    +		return radius;
    +	}
    +
    +	/**
    +	 * @param radius the radius to set
    +	 */
    +	public void setRadius(double radius)
    +	{
    +		this.radius = radius;
    +	}
    +
    +	/**
    +	 * @return the moveCircle
    +	 */
    +	public boolean isMoveCircle()
    +	{
    +		return moveCircle;
    +	}
    +
    +	/**
    +	 * @param moveCircle the moveCircle to set
    +	 */
    +	public void setMoveCircle(boolean moveCircle)
    +	{
    +		this.moveCircle = moveCircle;
    +	}
    +
    +	/**
    +	 * @return the x0
    +	 */
    +	public double getX0()
    +	{
    +		return x0;
    +	}
    +
    +	/**
    +	 * @param x0 the x0 to set
    +	 */
    +	public void setX0(double x0)
    +	{
    +		this.x0 = x0;
    +	}
    +
    +	/**
    +	 * @return the y0
    +	 */
    +	public double getY0()
    +	{
    +		return y0;
    +	}
    +
    +	/**
    +	 * @param y0 the y0 to set
    +	 */
    +	public void setY0(double y0)
    +	{
    +		this.y0 = y0;
    +	}
    +
    +	/**
    +	 * @return the resetEdges
    +	 */
    +	public boolean isResetEdges()
    +	{
    +		return resetEdges;
    +	}
    +
    +	/**
    +	 * @param resetEdges the resetEdges to set
    +	 */
    +	public void setResetEdges(boolean resetEdges)
    +	{
    +		this.resetEdges = resetEdges;
    +	}
    +
    +	/**
    +	 * @return the disableEdgeStyle
    +	 */
    +	public boolean isDisableEdgeStyle()
    +	{
    +		return disableEdgeStyle;
    +	}
    +
    +	/**
    +	 * @param disableEdgeStyle the disableEdgeStyle to set
    +	 */
    +	public void setDisableEdgeStyle(boolean disableEdgeStyle)
    +	{
    +		this.disableEdgeStyle = disableEdgeStyle;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxIGraphLayout#execute(java.lang.Object)
    +	 */
    +	public void execute(Object parent)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +
    +		// Moves the vertices to build a circle. Makes sure the
    +		// radius is large enough for the vertices to not
    +		// overlap
    +		model.beginUpdate();
    +		try
    +		{
    +			// Gets all vertices inside the parent and finds
    +			// the maximum dimension of the largest vertex
    +			double max = 0;
    +			Double top = null;
    +			Double left = null;
    +			List<Object> vertices = new ArrayList<Object>();
    +			int childCount = model.getChildCount(parent);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				Object cell = model.getChildAt(parent, i);
    +
    +				if (!isVertexIgnored(cell))
    +				{
    +					vertices.add(cell);
    +					mxRectangle bounds = getVertexBounds(cell);
    +
    +					if (top == null)
    +					{
    +						top = bounds.getY();
    +					}
    +					else
    +					{
    +						top = Math.min(top, bounds.getY());
    +					}
    +
    +					if (left == null)
    +					{
    +						left = bounds.getX();
    +					}
    +					else
    +					{
    +						left = Math.min(left, bounds.getX());
    +					}
    +
    +					max = Math.max(max, Math.max(bounds.getWidth(), bounds
    +							.getHeight()));
    +				}
    +				else if (!isEdgeIgnored(cell))
    +				{
    +					if (isResetEdges())
    +					{
    +						graph.resetEdge(cell);
    +					}
    +	
    +					if (isDisableEdgeStyle())
    +					{
    +						setEdgeStyleEnabled(cell, false);
    +					}
    +				}
    +			}
    +
    +			int vertexCount = vertices.size();
    +			double r = Math.max(vertexCount * max / Math.PI, radius);
    +
    +			// Moves the circle to the specified origin
    +			if (moveCircle)
    +			{
    +				left = x0;
    +				top = y0;
    +			}
    +
    +			circle(vertices.toArray(), r, left.doubleValue(), top.doubleValue());
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * Executes the circular layout for the specified array
    +	 * of vertices and the given radius.
    +	 */
    +	public void circle(Object[] vertices, double r, double left, double top)
    +	{
    +		int vertexCount = vertices.length;
    +		double phi = 2 * Math.PI / vertexCount;
    +
    +		for (int i = 0; i < vertexCount; i++)
    +		{
    +			if (isVertexMovable(vertices[i]))
    +			{
    +				setVertexLocation(vertices[i],
    +						left + r + r * Math.sin(i * phi), top + r + r
    +								* Math.cos(i * phi));
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/mxCompactTreeLayout.java b/java/src/com/mxgraph/layout/mxCompactTreeLayout.java
    new file mode 100644
    index 000000000..7729ab9ea
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxCompactTreeLayout.java
    @@ -0,0 +1,1222 @@
    +package com.mxgraph.layout;
    +
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.HashSet;
    +import java.util.List;
    +import java.util.Set;
    +
    +import com.mxgraph.model.mxGraphModel;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +
    +public class mxCompactTreeLayout extends mxGraphLayout
    +{
    +
    +	/**
    +	 * Specifies the orientation of the layout. Default is true.
    +	 */
    +	protected boolean horizontal;
    +
    +	/**
    +	 * Specifies if edge directions should be inverted. Default is false.
    +	 */
    +	protected boolean invert;
    +
    +	/**
    +	 * If the parents should be resized to match the width/height of the
    +	 * children. Default is true.
    +	 */
    +	protected boolean resizeParent = true;
    +
    +	/**
    +	 * Padding added to resized parents
    +	 */
    +	protected int groupPadding = 10;
    +
    +	/**
    +	 * A set of the parents that need updating based on children
    +	 * process as part of the layout
    +	 */
    +	protected Set<Object> parentsChanged = null;
    +
    +	/**
    +	 * Specifies if the tree should be moved to the top, left corner
    +	 * if it is inside a top-level layer. Default is false.
    +	 */
    +	protected boolean moveTree = false;
    +
    +	/**
    +	 * Specifies if all edge points of traversed edges should be removed.
    +	 * Default is true.
    +	 */
    +	protected boolean resetEdges = true;
    +
    +	/**
    +	 * Holds the levelDistance. Default is 10.
    +	 */
    +	protected int levelDistance = 10;
    +
    +	/**
    +	 * Holds the nodeDistance. Default is 20.
    +	 */
    +	protected int nodeDistance = 20;
    +
    +	/**
    +	 * The preferred horizontal distance between edges exiting a vertex
    +	 */
    +	protected int prefHozEdgeSep = 5;
    +
    +	/**
    +	 * The preferred vertical offset between edges exiting a vertex
    +	 */
    +	protected int prefVertEdgeOff = 2;
    +
    +	/**
    +	 * The minimum distance for an edge jetty from a vertex
    +	 */
    +	protected int minEdgeJetty = 12;
    +
    +	/**
    +	 * The size of the vertical buffer in the center of inter-rank channels
    +	 * where edge control points should not be placed
    +	 */
    +	protected int channelBuffer = 4;
    +
    +	/**
    +	 * Whether or not to apply the internal tree edge routing
    +	 */
    +	protected boolean edgeRouting = true;
    +
    +	/**
    +	 * 
    +	 * @param graph
    +	 */
    +	public mxCompactTreeLayout(mxGraph graph)
    +	{
    +		this(graph, true);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param graph
    +	 * @param horizontal
    +	 */
    +	public mxCompactTreeLayout(mxGraph graph, boolean horizontal)
    +	{
    +		this(graph, horizontal, false);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param graph
    +	 * @param horizontal
    +	 * @param invert
    +	 */
    +	public mxCompactTreeLayout(mxGraph graph, boolean horizontal, boolean invert)
    +	{
    +		super(graph);
    +		this.horizontal = horizontal;
    +		this.invert = invert;
    +	}
    +
    +	/**
    +	 * Returns a boolean indicating if the given <mxCell> should be ignored as a
    +	 * vertex. This returns true if the cell has no connections.
    +	 * 
    +	 * @param vertex Object that represents the vertex to be tested.
    +	 * @return Returns true if the vertex should be ignored.
    +	 */
    +	public boolean isVertexIgnored(Object vertex)
    +	{
    +		return super.isVertexIgnored(vertex)
    +				|| graph.getConnections(vertex).length == 0;
    +	}
    +
    +	/**
    +	 * @return the horizontal
    +	 */
    +	public boolean isHorizontal()
    +	{
    +		return horizontal;
    +	}
    +
    +	/**
    +	 * @param horizontal the horizontal to set
    +	 */
    +	public void setHorizontal(boolean horizontal)
    +	{
    +		this.horizontal = horizontal;
    +	}
    +
    +	/**
    +	 * @return the invert
    +	 */
    +	public boolean isInvert()
    +	{
    +		return invert;
    +	}
    +
    +	/**
    +	 * @param invert the invert to set
    +	 */
    +	public void setInvert(boolean invert)
    +	{
    +		this.invert = invert;
    +	}
    +
    +	/**
    +	 * @return the resizeParent
    +	 */
    +	public boolean isResizeParent()
    +	{
    +		return resizeParent;
    +	}
    +
    +	/**
    +	 * @param resizeParent the resizeParent to set
    +	 */
    +	public void setResizeParent(boolean resizeParent)
    +	{
    +		this.resizeParent = resizeParent;
    +	}
    +
    +	/**
    +	 * @return the moveTree
    +	 */
    +	public boolean isMoveTree()
    +	{
    +		return moveTree;
    +	}
    +
    +	/**
    +	 * @param moveTree the moveTree to set
    +	 */
    +	public void setMoveTree(boolean moveTree)
    +	{
    +		this.moveTree = moveTree;
    +	}
    +
    +	/**
    +	 * @return the resetEdges
    +	 */
    +	public boolean isResetEdges()
    +	{
    +		return resetEdges;
    +	}
    +
    +	/**
    +	 * @param resetEdges the resetEdges to set
    +	 */
    +	public void setResetEdges(boolean resetEdges)
    +	{
    +		this.resetEdges = resetEdges;
    +	}
    +
    +	public boolean isEdgeRouting()
    +	{
    +		return edgeRouting;
    +	}
    +
    +	public void setEdgeRouting(boolean edgeRouting)
    +	{
    +		this.edgeRouting = edgeRouting;
    +	}
    +
    +	/**
    +	 * @return the levelDistance
    +	 */
    +	public int getLevelDistance()
    +	{
    +		return levelDistance;
    +	}
    +
    +	/**
    +	 * @param levelDistance the levelDistance to set
    +	 */
    +	public void setLevelDistance(int levelDistance)
    +	{
    +		this.levelDistance = levelDistance;
    +	}
    +
    +	/**
    +	 * @return the nodeDistance
    +	 */
    +	public int getNodeDistance()
    +	{
    +		return nodeDistance;
    +	}
    +
    +	/**
    +	 * @param nodeDistance the nodeDistance to set
    +	 */
    +	public void setNodeDistance(int nodeDistance)
    +	{
    +		this.nodeDistance = nodeDistance;
    +	}
    +
    +	public double getGroupPadding()
    +	{
    +		return groupPadding;
    +	}
    +
    +	public void setGroupPadding(int groupPadding)
    +	{
    +		this.groupPadding = groupPadding;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxIGraphLayout#execute(java.lang.Object)
    +	 */
    +	public void execute(Object parent)
    +	{
    +		super.execute(parent);
    +		execute(parent, null);
    +	}
    +
    +	/**
    +	 * Implements <mxGraphLayout.execute>.
    +	 * 
    +	 * If the parent has any connected edges, then it is used as the root of
    +	 * the tree. Else, <mxGraph.findTreeRoots> will be used to find a suitable
    +	 * root node within the set of children of the given parent.
    +	 */
    +	public void execute(Object parent, Object root)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +
    +		if (root == null)
    +		{
    +			// Takes the parent as the root if it has outgoing edges
    +			if (graph.getEdges(parent, model.getParent(parent), invert,
    +					!invert, false).length > 0)
    +			{
    +				root = parent;
    +			}
    +
    +			// Tries to find a suitable root in the parent's
    +			// children
    +			else
    +			{
    +				List<Object> roots = findTreeRoots(parent, invert);
    +
    +				if (roots.size() > 0)
    +				{
    +					for (int i = 0; i < roots.size(); i++)
    +					{
    +						if (!isVertexIgnored(roots.get(i))
    +								&& graph.getEdges(roots.get(i), null, invert,
    +										!invert, false).length > 0)
    +						{
    +							root = roots.get(i);
    +							break;
    +						}
    +					}
    +				}
    +			}
    +		}
    +
    +		if (root != null)
    +		{
    +			if (resizeParent)
    +			{
    +				parentsChanged = new HashSet<Object>();
    +			}
    +			else
    +			{
    +				parentsChanged = null;
    +			}
    +
    +			model.beginUpdate();
    +
    +			try
    +			{
    +				TreeNode node = dfs(root, parent, null);
    +
    +				if (node != null)
    +				{
    +					layout(node);
    +
    +					double x0 = graph.getGridSize();
    +					double y0 = x0;
    +
    +					if (!moveTree)
    +					{
    +						mxRectangle g = getVertexBounds(root);
    +
    +						if (g != null)
    +						{
    +							x0 = g.getX();
    +							y0 = g.getY();
    +						}
    +					}
    +
    +					mxRectangle bounds = null;
    +
    +					if (horizontal)
    +					{
    +						bounds = horizontalLayout(node, x0, y0, null);
    +					}
    +					else
    +					{
    +						bounds = verticalLayout(node, null, x0, y0, null);
    +					}
    +
    +					if (bounds != null)
    +					{
    +						double dx = 0;
    +						double dy = 0;
    +
    +						if (bounds.getX() < 0)
    +						{
    +							dx = Math.abs(x0 - bounds.getX());
    +						}
    +
    +						if (bounds.getY() < 0)
    +						{
    +							dy = Math.abs(y0 - bounds.getY());
    +						}
    +
    +						if (dx != 0 || dy != 0)
    +						{
    +							moveNode(node, dx, dy);
    +						}
    +
    +						if (resizeParent)
    +						{
    +							adjustParents();
    +						}
    +
    +						if (edgeRouting)
    +						{
    +							// Iterate through all edges setting their positions
    +							localEdgeProcessing(node);
    +						}
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns all visible children in the given parent which do not have
    +	 * incoming edges. If the result is empty then the children with the
    +	 * maximum difference between incoming and outgoing edges are returned.
    +	 * This takes into account edges that are being promoted to the given
    +	 * root due to invisible children or collapsed cells.
    +	 * 
    +	 * @param parent Cell whose children should be checked.
    +	 * @param invert Specifies if outgoing or incoming edges should be counted
    +	 * for a tree root. If false then outgoing edges will be counted.
    +	 * @return List of tree roots in parent.
    +	 */
    +	public List<Object> findTreeRoots(Object parent, boolean invert)
    +	{
    +		List<Object> roots = new ArrayList<Object>();
    +
    +		if (parent != null)
    +		{
    +			mxIGraphModel model = graph.getModel();
    +			int childCount = model.getChildCount(parent);
    +			Object best = null;
    +			int maxDiff = 0;
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				Object cell = model.getChildAt(parent, i);
    +
    +				if (model.isVertex(cell) && graph.isCellVisible(cell))
    +				{
    +					Object[] conns = graph.getConnections(cell, parent, true);
    +					int fanOut = 0;
    +					int fanIn = 0;
    +
    +					for (int j = 0; j < conns.length; j++)
    +					{
    +						Object src = graph.getView().getVisibleTerminal(
    +								conns[j], true);
    +
    +						if (src == cell)
    +						{
    +							fanOut++;
    +						}
    +						else
    +						{
    +							fanIn++;
    +						}
    +					}
    +
    +					if ((invert && fanOut == 0 && fanIn > 0)
    +							|| (!invert && fanIn == 0 && fanOut > 0))
    +					{
    +						roots.add(cell);
    +					}
    +
    +					int diff = (invert) ? fanIn - fanOut : fanOut - fanIn;
    +
    +					if (diff > maxDiff)
    +					{
    +						maxDiff = diff;
    +						best = cell;
    +					}
    +				}
    +			}
    +
    +			if (roots.isEmpty() && best != null)
    +			{
    +				roots.add(best);
    +			}
    +		}
    +
    +		return roots;
    +	}
    +
    +	/**
    +	 * Moves the specified node and all of its children by the given amount.
    +	 */
    +	protected void moveNode(TreeNode node, double dx, double dy)
    +	{
    +		node.x += dx;
    +		node.y += dy;
    +		apply(node, null);
    +
    +		TreeNode child = node.child;
    +
    +		while (child != null)
    +		{
    +			moveNode(child, dx, dy);
    +			child = child.next;
    +		}
    +	}
    +
    +	/**
    +	 * Does a depth first search starting at the specified cell.
    +	 * Makes sure the specified parent is never left by the
    +	 * algorithm.
    +	 */
    +	protected TreeNode dfs(Object cell, Object parent, Set<Object> visited)
    +	{
    +		if (visited == null)
    +		{
    +			visited = new HashSet<Object>();
    +		}
    +
    +		TreeNode node = null;
    +
    +		if (cell != null && !visited.contains(cell) && !isVertexIgnored(cell))
    +		{
    +			visited.add(cell);
    +			node = createNode(cell);
    +
    +			mxIGraphModel model = graph.getModel();
    +			TreeNode prev = null;
    +			Object[] out = graph.getEdges(cell, parent, invert, !invert, false,
    +					true);
    +			mxGraphView view = graph.getView();
    +
    +			for (int i = 0; i < out.length; i++)
    +			{
    +				Object edge = out[i];
    +
    +				if (!isEdgeIgnored(edge))
    +				{
    +					// Resets the points on the traversed edge
    +					if (resetEdges)
    +					{
    +						setEdgePoints(edge, null);
    +					}
    +
    +					if (edgeRouting)
    +					{
    +						setEdgeStyleEnabled(edge, false);
    +						setEdgePoints(edge, null);
    +					}
    +
    +					// Checks if terminal in same swimlane
    +					mxCellState state = view.getState(edge);
    +					Object target = (state != null) ? state
    +							.getVisibleTerminal(invert) : view
    +							.getVisibleTerminal(edge, invert);
    +					TreeNode tmp = dfs(target, parent, visited);
    +
    +					if (tmp != null && model.getGeometry(target) != null)
    +					{
    +						if (prev == null)
    +						{
    +							node.child = tmp;
    +						}
    +						else
    +						{
    +							prev.next = tmp;
    +						}
    +
    +						prev = tmp;
    +					}
    +				}
    +			}
    +		}
    +
    +		return node;
    +	}
    +
    +	/**
    +	 * Starts the actual compact tree layout algorithm
    +	 * at the given node.
    +	 */
    +	protected void layout(TreeNode node)
    +	{
    +		if (node != null)
    +		{
    +			TreeNode child = node.child;
    +
    +			while (child != null)
    +			{
    +				layout(child);
    +				child = child.next;
    +			}
    +
    +			if (node.child != null)
    +			{
    +				attachParent(node, join(node));
    +			}
    +			else
    +			{
    +				layoutLeaf(node);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxRectangle horizontalLayout(TreeNode node, double x0, double y0,
    +			mxRectangle bounds)
    +	{
    +		node.x += x0 + node.offsetX;
    +		node.y += y0 + node.offsetY;
    +		bounds = apply(node, bounds);
    +		TreeNode child = node.child;
    +
    +		if (child != null)
    +		{
    +			bounds = horizontalLayout(child, node.x, node.y, bounds);
    +			double siblingOffset = node.y + child.offsetY;
    +			TreeNode s = child.next;
    +
    +			while (s != null)
    +			{
    +				bounds = horizontalLayout(s, node.x + child.offsetX,
    +						siblingOffset, bounds);
    +				siblingOffset += s.offsetY;
    +				s = s.next;
    +			}
    +		}
    +
    +		return bounds;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxRectangle verticalLayout(TreeNode node, Object parent,
    +			double x0, double y0, mxRectangle bounds)
    +	{
    +		node.x += x0 + node.offsetY;
    +		node.y += y0 + node.offsetX;
    +		bounds = apply(node, bounds);
    +		TreeNode child = node.child;
    +
    +		if (child != null)
    +		{
    +			bounds = verticalLayout(child, node, node.x, node.y, bounds);
    +			double siblingOffset = node.x + child.offsetY;
    +			TreeNode s = child.next;
    +
    +			while (s != null)
    +			{
    +				bounds = verticalLayout(s, node, siblingOffset, node.y
    +						+ child.offsetX, bounds);
    +				siblingOffset += s.offsetY;
    +				s = s.next;
    +			}
    +		}
    +
    +		return bounds;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void attachParent(TreeNode node, double height)
    +	{
    +		double x = nodeDistance + levelDistance;
    +		double y2 = (height - node.width) / 2 - nodeDistance;
    +		double y1 = y2 + node.width + 2 * nodeDistance - height;
    +
    +		node.child.offsetX = x + node.height;
    +		node.child.offsetY = y1;
    +
    +		node.contour.upperHead = createLine(node.height, 0,
    +				createLine(x, y1, node.contour.upperHead));
    +		node.contour.lowerHead = createLine(node.height, 0,
    +				createLine(x, y2, node.contour.lowerHead));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void layoutLeaf(TreeNode node)
    +	{
    +		double dist = 2 * nodeDistance;
    +
    +		node.contour.upperTail = createLine(node.height + dist, 0, null);
    +		node.contour.upperHead = node.contour.upperTail;
    +		node.contour.lowerTail = createLine(0, -node.width - dist, null);
    +		node.contour.lowerHead = createLine(node.height + dist, 0,
    +				node.contour.lowerTail);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected double join(TreeNode node)
    +	{
    +		double dist = 2 * nodeDistance;
    +
    +		TreeNode child = node.child;
    +		node.contour = child.contour;
    +		double h = child.width + dist;
    +		double sum = h;
    +		child = child.next;
    +
    +		while (child != null)
    +		{
    +			double d = merge(node.contour, child.contour);
    +			child.offsetY = d + h;
    +			child.offsetX = 0;
    +			h = child.width + dist;
    +			sum += d + h;
    +			child = child.next;
    +		}
    +
    +		return sum;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected double merge(Polygon p1, Polygon p2)
    +	{
    +		double x = 0;
    +		double y = 0;
    +		double total = 0;
    +
    +		Polyline upper = p1.lowerHead;
    +		Polyline lower = p2.upperHead;
    +
    +		while (lower != null && upper != null)
    +		{
    +			double d = offset(x, y, lower.dx, lower.dy, upper.dx, upper.dy);
    +			y += d;
    +			total += d;
    +
    +			if (x + lower.dx <= upper.dx)
    +			{
    +				x += lower.dx;
    +				y += lower.dy;
    +				lower = lower.next;
    +			}
    +			else
    +			{
    +				x -= upper.dx;
    +				y -= upper.dy;
    +				upper = upper.next;
    +			}
    +		}
    +
    +		if (lower != null)
    +		{
    +			Polyline b = bridge(p1.upperTail, 0, 0, lower, x, y);
    +			p1.upperTail = (b.next != null) ? p2.upperTail : b;
    +			p1.lowerTail = p2.lowerTail;
    +		}
    +		else
    +		{
    +			Polyline b = bridge(p2.lowerTail, x, y, upper, 0, 0);
    +
    +			if (b.next == null)
    +			{
    +				p1.lowerTail = b;
    +			}
    +		}
    +
    +		p1.lowerHead = p2.lowerHead;
    +
    +		return total;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected double offset(double p1, double p2, double a1, double a2,
    +			double b1, double b2)
    +	{
    +		double d = 0;
    +
    +		if (b1 <= p1 || p1 + a1 <= 0)
    +		{
    +			return 0;
    +		}
    +
    +		double t = b1 * a2 - a1 * b2;
    +
    +		if (t > 0)
    +		{
    +			if (p1 < 0)
    +			{
    +				double s = p1 * a2;
    +				d = s / a1 - p2;
    +			}
    +			else if (p1 > 0)
    +			{
    +				double s = p1 * b2;
    +				d = s / b1 - p2;
    +			}
    +			else
    +			{
    +				d = -p2;
    +			}
    +		}
    +		else if (b1 < p1 + a1)
    +		{
    +			double s = (b1 - p1) * a2;
    +			d = b2 - (p2 + s / a1);
    +		}
    +		else if (b1 > p1 + a1)
    +		{
    +			double s = (a1 + p1) * b2;
    +			d = s / b1 - (p2 + a2);
    +		}
    +		else
    +		{
    +			d = b2 - (p2 + a2);
    +		}
    +
    +		if (d > 0)
    +		{
    +			return d;
    +		}
    +
    +		return 0;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Polyline bridge(Polyline line1, double x1, double y1,
    +			Polyline line2, double x2, double y2)
    +	{
    +		double dx = x2 + line2.dx - x1;
    +		double dy = 0;
    +		double s = 0;
    +
    +		if (line2.dx == 0)
    +		{
    +			dy = line2.dy;
    +		}
    +		else
    +		{
    +			s = dx * line2.dy;
    +			dy = s / line2.dx;
    +		}
    +
    +		Polyline r = createLine(dx, dy, line2.next);
    +		line1.next = createLine(0, y2 + line2.dy - dy - y1, r);
    +
    +		return r;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected TreeNode createNode(Object cell)
    +	{
    +		TreeNode node = new TreeNode(cell);
    +
    +		mxRectangle geo = getVertexBounds(cell);
    +
    +		if (geo != null)
    +		{
    +			if (horizontal)
    +			{
    +				node.width = geo.getHeight();
    +				node.height = geo.getWidth();
    +			}
    +			else
    +			{
    +				node.width = geo.getWidth();
    +				node.height = geo.getHeight();
    +			}
    +		}
    +
    +		return node;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param node
    +	 * @param bounds
    +	 * @return
    +	 */
    +	protected mxRectangle apply(TreeNode node, mxRectangle bounds)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		Object cell = node.cell;
    +		mxRectangle g = model.getGeometry(cell);
    +
    +		if (cell != null && g != null)
    +		{
    +			if (isVertexMovable(cell))
    +			{
    +				g = setVertexLocation(cell, node.x, node.y);
    +
    +				if (resizeParent)
    +				{
    +					parentsChanged.add(model.getParent(cell));
    +				}
    +			}
    +
    +			if (bounds == null)
    +			{
    +				bounds = new mxRectangle(g.getX(), g.getY(), g.getWidth(),
    +						g.getHeight());
    +			}
    +			else
    +			{
    +				bounds = new mxRectangle(Math.min(bounds.getX(), g.getX()),
    +						Math.min(bounds.getY(), g.getY()), Math.max(
    +								bounds.getX() + bounds.getWidth(),
    +								g.getX() + g.getWidth()), Math.max(
    +								bounds.getY() + bounds.getHeight(), g.getY()
    +										+ g.getHeight()));
    +			}
    +		}
    +
    +		return bounds;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Polyline createLine(double dx, double dy, Polyline next)
    +	{
    +		return new Polyline(dx, dy, next);
    +	}
    +
    +	protected void adjustParents()
    +	{
    +		arrangeGroups(mxUtils.sortCells(this.parentsChanged, true).toArray(), groupPadding);
    +	}
    +
    +	/**
    +	 * Moves the specified node and all of its children by the given amount.
    +	 */
    +	protected void localEdgeProcessing(TreeNode node)
    +	{
    +		processNodeOutgoing(node);
    +		TreeNode child = node.child;
    +
    +		while (child != null)
    +		{
    +			localEdgeProcessing(child);
    +			child = child.next;
    +		}
    +	}
    +
    +	/**
    +	 * Separates the x position of edges as they connect to vertices
    +	 * 
    +	 * @param node
    +	 *            the root node of the tree
    +	 */
    +	protected void processNodeOutgoing(TreeNode node)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +
    +		TreeNode child = node.child;
    +		Object parentCell = node.cell;
    +
    +		int childCount = 0;
    +		List<WeightedCellSorter> sortedCells = new ArrayList<WeightedCellSorter>();
    +
    +		while (child != null)
    +		{
    +			childCount++;
    +
    +			double sortingCriterion = child.x;
    +
    +			if (this.horizontal)
    +			{
    +				sortingCriterion = child.y;
    +			}
    +
    +			sortedCells.add(new WeightedCellSorter(child,
    +					(int) sortingCriterion));
    +			child = child.next;
    +		}
    +
    +		WeightedCellSorter[] sortedCellsArray = sortedCells
    +				.toArray(new WeightedCellSorter[sortedCells.size()]);
    +		Arrays.sort(sortedCellsArray);
    +
    +		double availableWidth = node.width;
    +
    +		double requiredWidth = (childCount + 1) * prefHozEdgeSep;
    +
    +		// Add a buffer on the edges of the vertex if the edge count allows
    +		if (availableWidth > requiredWidth + (2 * prefHozEdgeSep))
    +		{
    +			availableWidth -= 2 * prefHozEdgeSep;
    +		}
    +
    +		double edgeSpacing = availableWidth / childCount;
    +
    +		double currentXOffset = edgeSpacing / 2.0;
    +
    +		if (availableWidth > requiredWidth + (2 * prefHozEdgeSep))
    +		{
    +			currentXOffset += prefHozEdgeSep;
    +		}
    +
    +		double currentYOffset = minEdgeJetty - prefVertEdgeOff;
    +		double maxYOffset = 0;
    +
    +		mxRectangle parentBounds = getVertexBounds(parentCell);
    +		child = node.child;
    +
    +		for (int j = 0; j < sortedCellsArray.length; j++)
    +		{
    +			Object childCell = sortedCellsArray[j].cell.cell;
    +			mxRectangle childBounds = getVertexBounds(childCell);
    +
    +			Object[] edges = mxGraphModel.getEdgesBetween(model, parentCell,
    +					childCell);
    +
    +			List<mxPoint> newPoints = new ArrayList<mxPoint>(3);
    +			double x = 0;
    +			double y = 0;
    +
    +			for (int i = 0; i < edges.length; i++)
    +			{
    +				if (this.horizontal)
    +				{
    +					// Use opposite co-ords, calculation was done for 
    +					// 
    +					x = parentBounds.getX() + parentBounds.getWidth();
    +					y = parentBounds.getY() + currentXOffset;
    +					newPoints.add(new mxPoint(x, y));
    +					x = parentBounds.getX() + parentBounds.getWidth()
    +							+ currentYOffset;
    +					newPoints.add(new mxPoint(x, y));
    +					y = childBounds.getY() + childBounds.getHeight() / 2.0;
    +					newPoints.add(new mxPoint(x, y));
    +					setEdgePoints(edges[i], newPoints);
    +				}
    +				else
    +				{
    +					x = parentBounds.getX() + currentXOffset;
    +					y = parentBounds.getY() + parentBounds.getHeight();
    +					newPoints.add(new mxPoint(x, y));
    +					y = parentBounds.getY() + parentBounds.getHeight()
    +							+ currentYOffset;
    +					newPoints.add(new mxPoint(x, y));
    +					x = childBounds.getX() + childBounds.getWidth() / 2.0;
    +					newPoints.add(new mxPoint(x, y));
    +					setEdgePoints(edges[i], newPoints);
    +				}
    +			}
    +
    +			if (j < (float) childCount / 2.0f)
    +			{
    +				currentYOffset += prefVertEdgeOff;
    +			}
    +			else if (j > (float) childCount / 2.0f)
    +			{
    +				currentYOffset -= prefVertEdgeOff;
    +			}
    +			// Ignore the case if equals, this means the second of 2
    +			// jettys with the same y (even number of edges)
    +
    +			//								pos[k * 2] = currentX;
    +			currentXOffset += edgeSpacing;
    +			//								pos[k * 2 + 1] = currentYOffset;
    +
    +			maxYOffset = Math.max(maxYOffset, currentYOffset);
    +		}
    +	}
    +
    +	/**
    +	 * A utility class used to track cells whilst sorting occurs on the weighted
    +	 * sum of their connected edges. Does not violate (x.compareTo(y)==0) ==
    +	 * (x.equals(y))
    +	 */
    +	protected class WeightedCellSorter implements Comparable<Object>
    +	{
    +
    +		/**
    +		 * The weighted value of the cell stored
    +		 */
    +		public int weightedValue = 0;
    +
    +		/**
    +		 * Whether or not to flip equal weight values.
    +		 */
    +		public boolean nudge = false;
    +
    +		/**
    +		 * Whether or not this cell has been visited in the current assignment
    +		 */
    +		public boolean visited = false;
    +
    +		/**
    +		 * The cell whose median value is being calculated
    +		 */
    +		public TreeNode cell = null;
    +
    +		public WeightedCellSorter()
    +		{
    +			this(null, 0);
    +		}
    +
    +		public WeightedCellSorter(TreeNode cell, int weightedValue)
    +		{
    +			this.cell = cell;
    +			this.weightedValue = weightedValue;
    +		}
    +
    +		/**
    +		 * comparator on the medianValue
    +		 * 
    +		 * @param arg0
    +		 *            the object to be compared to
    +		 * @return the standard return you would expect when comparing two
    +		 *         double
    +		 */
    +		public int compareTo(Object arg0)
    +		{
    +			if (arg0 instanceof WeightedCellSorter)
    +			{
    +				if (weightedValue > ((WeightedCellSorter) arg0).weightedValue)
    +				{
    +					return 1;
    +				}
    +				else if (weightedValue < ((WeightedCellSorter) arg0).weightedValue)
    +				{
    +					return -1;
    +				}
    +				else
    +				{
    +					if (nudge)
    +					{
    +						return 1;
    +					}
    +					else
    +					{
    +						return -1;
    +					}
    +				}
    +			}
    +			else
    +			{
    +				return 0;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected static class TreeNode
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected Object cell;
    +
    +		/**
    +		 * 
    +		 */
    +		protected double x, y, width, height, offsetX, offsetY;
    +
    +		/**
    +		 * 
    +		 */
    +		protected TreeNode child, next; // parent, sibling
    +
    +		/**
    +		 * 
    +		 */
    +		protected Polygon contour = new Polygon();
    +
    +		/**
    +		 * 
    +		 */
    +		public TreeNode(Object cell)
    +		{
    +			this.cell = cell;
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected static class Polygon
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		protected Polyline lowerHead, lowerTail, upperHead, upperTail;
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected static class Polyline
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		protected double dx, dy;
    +
    +		/**
    +		 * 
    +		 */
    +		protected Polyline next;
    +
    +		/**
    +		 * 
    +		 */
    +		protected Polyline(double dx, double dy, Polyline next)
    +		{
    +			this.dx = dx;
    +			this.dy = dy;
    +			this.next = next;
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/mxEdgeLabelLayout.java b/java/src/com/mxgraph/layout/mxEdgeLabelLayout.java
    new file mode 100644
    index 000000000..8c4d8adda
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxEdgeLabelLayout.java
    @@ -0,0 +1,149 @@
    +package com.mxgraph.layout;
    +
    +import java.awt.Rectangle;
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +
    +public class mxEdgeLabelLayout extends mxGraphLayout
    +{
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxEdgeLabelLayout(mxGraph graph)
    +	{
    +		super(graph);
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxIGraphLayout#execute(java.lang.Object)
    +	 */
    +	public void execute(Object parent)
    +	{
    +		mxGraphView view = graph.getView();
    +		mxIGraphModel model = graph.getModel();
    +
    +		// Gets all vertices and edges inside the parent
    +		List<Object> edges = new ArrayList<Object>();
    +		List<Object> vertices = new ArrayList<Object>();
    +		int childCount = model.getChildCount(parent);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object cell = model.getChildAt(parent, i);
    +			mxCellState state = view.getState(cell);
    +
    +			if (state != null)
    +			{
    +				if (!isVertexIgnored(cell))
    +				{
    +					vertices.add(state);
    +				}
    +				else if (!isEdgeIgnored(cell))
    +				{
    +					edges.add(state);
    +				}
    +			}
    +		}
    +
    +		placeLabels(vertices.toArray(), edges.toArray());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void placeLabels(Object[] v, Object[] e)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +
    +		// Moves the vertices to build a circle. Makes sure the
    +		// radius is large enough for the vertices to not
    +		// overlap
    +		model.beginUpdate();
    +		try
    +		{
    +			for (int i = 0; i < e.length; i++)
    +			{
    +				mxCellState edge = (mxCellState) e[i];
    +
    +				if (edge != null && edge.getLabelBounds() != null)
    +				{
    +					for (int j = 0; j < v.length; j++)
    +					{
    +						mxCellState vertex = (mxCellState) v[j];
    +
    +						if (vertex != null)
    +						{
    +							avoid(edge, vertex);
    +						}
    +					}
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void avoid(mxCellState edge, mxCellState vertex)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		Rectangle labRect = edge.getLabelBounds().getRectangle();
    +		Rectangle vRect = vertex.getRectangle();
    +
    +		if (labRect.intersects(vRect))
    +		{
    +			int dy1 = -labRect.y - labRect.height + vRect.y;
    +			int dy2 = -labRect.y + vRect.y + vRect.height;
    +
    +			int dy = (Math.abs(dy1) < Math.abs(dy2)) ? dy1 : dy2;
    +
    +			int dx1 = -labRect.x - labRect.width + vRect.x;
    +			int dx2 = -labRect.x + vRect.x + vRect.width;
    +
    +			int dx = (Math.abs(dx1) < Math.abs(dx2)) ? dx1 : dx2;
    +
    +			if (Math.abs(dx) < Math.abs(dy))
    +			{
    +				dy = 0;
    +			}
    +			else
    +			{
    +				dx = 0;
    +			}
    +
    +			mxGeometry g = model.getGeometry(edge.getCell());
    +
    +			if (g != null)
    +			{
    +				g = (mxGeometry) g.clone();
    +
    +				if (g.getOffset() != null)
    +				{
    +					g.getOffset().setX(g.getOffset().getX() + dx);
    +					g.getOffset().setY(g.getOffset().getY() + dy);
    +				}
    +				else
    +				{
    +					g.setOffset(new mxPoint(dx, dy));
    +				}
    +
    +				model.setGeometry(edge.getCell(), g);
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/mxFastOrganicLayout.java b/java/src/com/mxgraph/layout/mxFastOrganicLayout.java
    new file mode 100644
    index 000000000..01ee5d095
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxFastOrganicLayout.java
    @@ -0,0 +1,682 @@
    +/**
    + * $Id: mxFastOrganicLayout.java,v 1.28 2011-04-28 13:10:32 david Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.layout;
    +
    +import java.util.ArrayList;
    +import java.util.Hashtable;
    +import java.util.List;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * Fast organic layout algorithm.
    + */
    +public class mxFastOrganicLayout extends mxGraphLayout
    +{
    +	/**
    +	 * Specifies if the top left corner of the input cells should be the origin
    +	 * of the layout result. Default is true.
    +	 */
    +	protected boolean useInputOrigin = true;
    +
    +	/**
    +	 * Specifies if all edge points of traversed edges should be removed.
    +	 * Default is true.
    +	 */
    +	protected boolean resetEdges = true;
    +
    +	/**
    +	 *  Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    +	 * modified by the result. Default is true.
    +	 */
    +	protected boolean disableEdgeStyle = true;
    +
    +	/**
    +	 * The force constant by which the attractive forces are divided and the
    +	 * replusive forces are multiple by the square of. The value equates to the
    +	 * average radius there is of free space around each node. Default is 50.
    +	 */
    +	protected double forceConstant = 50;
    +
    +	/**
    +	 * Cache of <forceConstant>^2 for performance.
    +	 */
    +	protected double forceConstantSquared = 0;
    +
    +	/**
    +	 * Minimal distance limit. Default is 2. Prevents of
    +	 * dividing by zero.
    +	 */
    +	protected double minDistanceLimit = 2;
    +
    +	/**
    +	 * Cached version of <minDistanceLimit> squared.
    +	 */
    +	protected double minDistanceLimitSquared = 0;
    +
    +	/**
    +	 * The maximum distance between vertices, beyond which their
    +	 * repulsion no longer has an effect
    +	 */
    +	protected double maxDistanceLimit = 500;
    +
    +	/**
    +	 * Start value of temperature. Default is 200.
    +	 */
    +	protected double initialTemp = 200;
    +
    +	/**
    +	 * Temperature to limit displacement at later stages of layout.
    +	 */
    +	protected double temperature = 0;
    +
    +	/**
    +	 * Total number of iterations to run the layout though.
    +	 */
    +	protected int maxIterations = 0;
    +
    +	/**
    +	 * Current iteration count.
    +	 */
    +	protected int iteration = 0;
    +
    +	/**
    +	 * An array of all vertices to be laid out.
    +	 */
    +	protected Object[] vertexArray;
    +
    +	/**
    +	 * An array of locally stored X co-ordinate displacements for the vertices.
    +	 */
    +	protected double[] dispX;
    +
    +	/**
    +	 * An array of locally stored Y co-ordinate displacements for the vertices.
    +	 */
    +	protected double[] dispY;
    +
    +	/**
    +	 * An array of locally stored co-ordinate positions for the vertices.
    +	 */
    +	protected double[][] cellLocation;
    +
    +	/**
    +	 * The approximate radius of each cell, nodes only.
    +	 */
    +	protected double[] radius;
    +
    +	/**
    +	 * The approximate radius squared of each cell, nodes only.
    +	 */
    +	protected double[] radiusSquared;
    +
    +	/**
    +	 * Array of booleans representing the movable states of the vertices.
    +	 */
    +	protected boolean[] isMoveable;
    +
    +	/**
    +	 * Local copy of cell neighbours.
    +	 */
    +	protected int[][] neighbours;
    +
    +	/**
    +	 * Boolean flag that specifies if the layout is allowed to run. If this is
    +	 * set to false, then the layout exits in the following iteration.
    +	 */
    +	protected boolean allowedToRun = true;
    +
    +	/**
    +	 * Maps from vertices to indices.
    +	 */
    +	protected Hashtable<Object, Integer> indices = new Hashtable<Object, Integer>();
    +
    +	/**
    +	 * Constructs a new fast organic layout for the specified graph.
    +	 */
    +	public mxFastOrganicLayout(mxGraph graph)
    +	{
    +		super(graph);
    +	}
    +
    +	/**
    +	 * Returns a boolean indicating if the given <mxCell> should be ignored as a
    +	 * vertex. This returns true if the cell has no connections.
    +	 * 
    +	 * @param vertex Object that represents the vertex to be tested.
    +	 * @return Returns true if the vertex should be ignored.
    +	 */
    +	public boolean isVertexIgnored(Object vertex)
    +	{
    +		return super.isVertexIgnored(vertex)
    +				|| graph.getConnections(vertex).length == 0;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public boolean isUseInputOrigin()
    +	{
    +		return useInputOrigin;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param value
    +	 */
    +	public void setUseInputOrigin(boolean value)
    +	{
    +		useInputOrigin = value;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public boolean isResetEdges()
    +	{
    +		return resetEdges;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param value
    +	 */
    +	public void setResetEdges(boolean value)
    +	{
    +		resetEdges = value;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public boolean isDisableEdgeStyle()
    +	{
    +		return disableEdgeStyle;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param value
    +	 */
    +	public void setDisableEdgeStyle(boolean value)
    +	{
    +		disableEdgeStyle = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getMaxIterations()
    +	{
    +		return maxIterations;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param value
    +	 */
    +	public void setMaxIterations(int value)
    +	{
    +		maxIterations = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public double getForceConstant()
    +	{
    +		return forceConstant;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param value
    +	 */
    +	public void setForceConstant(double value)
    +	{
    +		forceConstant = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public double getMinDistanceLimit()
    +	{
    +		return minDistanceLimit;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param value
    +	 */
    +	public void setMinDistanceLimit(double value)
    +	{
    +		minDistanceLimit = value;
    +	}
    +
    +	/**
    +	 * @return the maxDistanceLimit
    +	 */
    +	public double getMaxDistanceLimit()
    +	{
    +		return maxDistanceLimit;
    +	}
    +
    +	/**
    +	 * @param maxDistanceLimit the maxDistanceLimit to set
    +	 */
    +	public void setMaxDistanceLimit(double maxDistanceLimit)
    +	{
    +		this.maxDistanceLimit = maxDistanceLimit;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public double getInitialTemp()
    +	{
    +		return initialTemp;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param value
    +	 */
    +	public void setInitialTemp(double value)
    +	{
    +		initialTemp = value;
    +	}
    +
    +	/**
    +	 * Reduces the temperature of the layout from an initial setting in a linear
    +	 * fashion to zero.
    +	 */
    +	protected void reduceTemperature()
    +	{
    +		temperature = initialTemp * (1.0 - iteration / maxIterations);
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxIGraphLayout#move(java.lang.Object, double, double)
    +	 */
    +	public void moveCell(Object cell, double x, double y)
    +	{
    +		// TODO: Map the position to a child index for
    +		// the cell to be placed closest to the position
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxIGraphLayout#execute(java.lang.Object)
    +	 */
    +	public void execute(Object parent)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +
    +		// Finds the relevant vertices for the layout
    +		Object[] vertices = graph.getChildVertices(parent);
    +		List<Object> tmp = new ArrayList<Object>(vertices.length);
    +
    +		for (int i = 0; i < vertices.length; i++)
    +		{
    +			if (!isVertexIgnored(vertices[i]))
    +			{
    +				tmp.add(vertices[i]);
    +			}
    +		}
    +
    +		vertexArray = tmp.toArray();
    +		mxRectangle initialBounds = (useInputOrigin) ? graph.getBoundsForCells(
    +				vertexArray, false, false, true) : null;
    +		int n = vertexArray.length;
    +
    +		dispX = new double[n];
    +		dispY = new double[n];
    +		cellLocation = new double[n][];
    +		isMoveable = new boolean[n];
    +		neighbours = new int[n][];
    +		radius = new double[n];
    +		radiusSquared = new double[n];
    +
    +		minDistanceLimitSquared = minDistanceLimit * minDistanceLimit;
    +
    +		if (forceConstant < 0.001)
    +		{
    +			forceConstant = 0.001;
    +		}
    +
    +		forceConstantSquared = forceConstant * forceConstant;
    +
    +		// Create a map of vertices first. This is required for the array of
    +		// arrays called neighbours which holds, for each vertex, a list of
    +		// ints which represents the neighbours cells to that vertex as
    +		// the indices into vertexArray
    +		for (int i = 0; i < vertexArray.length; i++)
    +		{
    +			Object vertex = vertexArray[i];
    +			cellLocation[i] = new double[2];
    +
    +			// Set up the mapping from array indices to cells
    +			indices.put(vertex, new Integer(i));
    +			mxRectangle bounds = getVertexBounds(vertex);
    +
    +			// Set the X,Y value of the internal version of the cell to
    +			// the center point of the vertex for better positioning
    +			double width = bounds.getWidth();
    +			double height = bounds.getHeight();
    +
    +			// Randomize (0, 0) locations
    +			double x = bounds.getX();
    +			double y = bounds.getY();
    +
    +			cellLocation[i][0] = x + width / 2.0;
    +			cellLocation[i][1] = y + height / 2.0;
    +
    +			radius[i] = Math.min(width, height);
    +			radiusSquared[i] = radius[i] * radius[i];
    +		}
    +
    +		// Moves cell location back to top-left from center locations used in
    +		// algorithm, resetting the edge points is part of the transaction
    +		model.beginUpdate();
    +		try
    +		{
    +			for (int i = 0; i < n; i++)
    +			{
    +				dispX[i] = 0;
    +				dispY[i] = 0;
    +				isMoveable[i] = isVertexMovable(vertexArray[i]);
    +
    +				// Get lists of neighbours to all vertices, translate the cells
    +				// obtained in indices into vertexArray and store as an array
    +				// against the original cell index
    +				Object[] edges = graph.getConnections(vertexArray[i], parent);
    +				for (int k = 0; k < edges.length; k++)
    +				{
    +					if (isResetEdges())
    +					{
    +						graph.resetEdge(edges[k]);
    +					}
    +
    +					if (isDisableEdgeStyle())
    +					{
    +						setEdgeStyleEnabled(edges[k], false);
    +					}
    +				}
    +				
    +				Object[] cells = graph.getOpposites(edges, vertexArray[i]);
    +
    +				neighbours[i] = new int[cells.length];
    +
    +				for (int j = 0; j < cells.length; j++)
    +				{
    +					Integer index = indices.get(cells[j]);
    +
    +					// Check the connected cell in part of the vertex list to be
    +					// acted on by this layout
    +					if (index != null)
    +					{
    +						neighbours[i][j] = index.intValue();
    +					}
    +
    +					// Else if index of the other cell doesn't correspond to
    +					// any cell listed to be acted upon in this layout. Set
    +					// the index to the value of this vertex (a dummy self-loop)
    +					// so the attraction force of the edge is not calculated
    +					else
    +					{
    +						neighbours[i][j] = i;
    +					}
    +				}
    +			}
    +
    +			temperature = initialTemp;
    +
    +			// If max number of iterations has not been set, guess it
    +			if (maxIterations == 0)
    +			{
    +				maxIterations = (int) (20 * Math.sqrt(n));
    +			}
    +
    +			// Main iteration loop
    +			for (iteration = 0; iteration < maxIterations; iteration++)
    +			{
    +				if (!allowedToRun)
    +				{
    +					return;
    +				}
    +
    +				// Calculate repulsive forces on all vertices
    +				calcRepulsion();
    +
    +				// Calculate attractive forces through edges
    +				calcAttraction();
    +
    +				calcPositions();
    +				reduceTemperature();
    +			}
    +
    +			Double minx = null;
    +			Double miny = null;
    +
    +			for (int i = 0; i < vertexArray.length; i++)
    +			{
    +				Object vertex = vertexArray[i];
    +				mxGeometry geo = model.getGeometry(vertex);
    +
    +				if (geo != null)
    +				{
    +					cellLocation[i][0] -= geo.getWidth() / 2.0;
    +					cellLocation[i][1] -= geo.getHeight() / 2.0;
    +
    +					double x = graph.snap(cellLocation[i][0]);
    +					double y = graph.snap(cellLocation[i][1]);
    +					setVertexLocation(vertex, x, y);
    +
    +					if (minx == null)
    +					{
    +						minx = new Double(x);
    +					}
    +					else
    +					{
    +						minx = new Double(Math.min(minx.doubleValue(), x));
    +					}
    +
    +					if (miny == null)
    +					{
    +						miny = new Double(y);
    +					}
    +					else
    +					{
    +						miny = new Double(Math.min(miny.doubleValue(), y));
    +					}
    +				}
    +			}
    +
    +			// Modifies the cloned geometries in-place. Not needed
    +			// to clone the geometries again as we're in the same
    +			// undoable change.
    +			double dx = (minx != null) ? -minx.doubleValue() - 1 : 0;
    +			double dy = (miny != null) ? -miny.doubleValue() - 1 : 0;
    +
    +			if (initialBounds != null)
    +			{
    +				dx += initialBounds.getX();
    +				dy += initialBounds.getY();
    +			}
    +
    +			graph.moveCells(vertexArray, dx, dy);
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * Takes the displacements calculated for each cell and applies them to the
    +	 * local cache of cell positions. Limits the displacement to the current
    +	 * temperature.
    +	 */
    +	protected void calcPositions()
    +	{
    +		for (int index = 0; index < vertexArray.length; index++)
    +		{
    +			if (isMoveable[index])
    +			{
    +				// Get the distance of displacement for this node for this
    +				// iteration
    +				double deltaLength = Math.sqrt(dispX[index] * dispX[index]
    +						+ dispY[index] * dispY[index]);
    +
    +				if (deltaLength < 0.001)
    +				{
    +					deltaLength = 0.001;
    +				}
    +
    +				// Scale down by the current temperature if less than the
    +				// displacement distance
    +				double newXDisp = dispX[index] / deltaLength
    +						* Math.min(deltaLength, temperature);
    +				double newYDisp = dispY[index] / deltaLength
    +						* Math.min(deltaLength, temperature);
    +
    +				// reset displacements
    +				dispX[index] = 0;
    +				dispY[index] = 0;
    +
    +				// Update the cached cell locations
    +				cellLocation[index][0] += newXDisp;
    +				cellLocation[index][1] += newYDisp;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Calculates the attractive forces between all laid out nodes linked by
    +	 * edges
    +	 */
    +	protected void calcAttraction()
    +	{
    +		// Check the neighbours of each vertex and calculate the attractive
    +		// force of the edge connecting them
    +		for (int i = 0; i < vertexArray.length; i++)
    +		{
    +			for (int k = 0; k < neighbours[i].length; k++)
    +			{
    +				// Get the index of the othe cell in the vertex array
    +				int j = neighbours[i][k];
    +
    +				// Do not proceed self-loops
    +				if (i != j)
    +				{
    +					double xDelta = cellLocation[i][0] - cellLocation[j][0];
    +					double yDelta = cellLocation[i][1] - cellLocation[j][1];
    +
    +					// The distance between the nodes
    +					double deltaLengthSquared = xDelta * xDelta + yDelta
    +							* yDelta - radiusSquared[i] - radiusSquared[j];
    +
    +					if (deltaLengthSquared < minDistanceLimitSquared)
    +					{
    +						deltaLengthSquared = minDistanceLimitSquared;
    +					}
    +
    +					double deltaLength = Math.sqrt(deltaLengthSquared);
    +					double force = (deltaLengthSquared) / forceConstant;
    +
    +					double displacementX = (xDelta / deltaLength) * force;
    +					double displacementY = (yDelta / deltaLength) * force;
    +
    +					if (isMoveable[i])
    +					{
    +						this.dispX[i] -= displacementX;
    +						this.dispY[i] -= displacementY;
    +					}
    +
    +					if (isMoveable[j])
    +					{
    +						dispX[j] += displacementX;
    +						dispY[j] += displacementY;
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Calculates the repulsive forces between all laid out nodes
    +	 */
    +	protected void calcRepulsion()
    +	{
    +		int vertexCount = vertexArray.length;
    +
    +		for (int i = 0; i < vertexCount; i++)
    +		{
    +			for (int j = i; j < vertexCount; j++)
    +			{
    +				// Exits if the layout is no longer allowed to run
    +				if (!allowedToRun)
    +				{
    +					return;
    +				}
    +
    +				if (j != i)
    +				{
    +					double xDelta = cellLocation[i][0] - cellLocation[j][0];
    +					double yDelta = cellLocation[i][1] - cellLocation[j][1];
    +
    +					if (xDelta == 0)
    +					{
    +						xDelta = 0.01 + Math.random();
    +					}
    +
    +					if (yDelta == 0)
    +					{
    +						yDelta = 0.01 + Math.random();
    +					}
    +
    +					// Distance between nodes
    +					double deltaLength = Math.sqrt((xDelta * xDelta)
    +							+ (yDelta * yDelta));
    +
    +					double deltaLengthWithRadius = deltaLength - radius[i]
    +							- radius[j];
    +
    +					if (deltaLengthWithRadius > maxDistanceLimit)
    +					{
    +						// Ignore vertices too far apart
    +						continue;
    +					}
    +
    +					if (deltaLengthWithRadius < minDistanceLimit)
    +					{
    +						deltaLengthWithRadius = minDistanceLimit;
    +					}
    +
    +					double force = forceConstantSquared / deltaLengthWithRadius;
    +
    +					double displacementX = (xDelta / deltaLength) * force;
    +					double displacementY = (yDelta / deltaLength) * force;
    +
    +					if (isMoveable[i])
    +					{
    +						dispX[i] += displacementX;
    +						dispY[i] += displacementY;
    +					}
    +
    +					if (isMoveable[j])
    +					{
    +						dispX[j] -= displacementX;
    +						dispY[j] -= displacementY;
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/mxGraphLayout.java b/java/src/com/mxgraph/layout/mxGraphLayout.java
    new file mode 100644
    index 000000000..792990088
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxGraphLayout.java
    @@ -0,0 +1,475 @@
    +/**
    + * $Id: mxGraphLayout.java,v 1.27 2012-05-10 16:20:58 david Exp $
    + * Copyright (c) 2008-2009, JGraph Ltd
    + */
    +package com.mxgraph.layout;
    +
    +import java.util.HashSet;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraph.mxICellVisitor;
    +import com.mxgraph.view.mxGraphView;
    +
    +/**
    + * Abstract bass class for layouts
    + */
    +public abstract class mxGraphLayout implements mxIGraphLayout
    +{
    +
    +	/**
    +	 * Holds the enclosing graph.
    +	 */
    +	protected mxGraph graph;
    +
    +	/**
    +	 * The parent cell of the layout, if any
    +	 */
    +	protected Object parent;
    +
    +	/**
    +	 * Boolean indicating if the bounding box of the label should be used if
    +	 * its available. Default is true.
    +	 */
    +	protected boolean useBoundingBox = true;
    +
    +	/**
    +	 * Constructs a new fast organic layout for the specified graph.
    +	 */
    +	public mxGraphLayout(mxGraph graph)
    +	{
    +		this.graph = graph;
    +	}
    +
    +	public void execute(Object parent)
    +	{
    +		this.parent = parent;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxIGraphLayout#move(java.lang.Object, double, double)
    +	 */
    +	public void moveCell(Object cell, double x, double y)
    +	{
    +		// TODO: Map the position to a child index for
    +		// the cell to be placed closest to the position
    +	}
    +
    +	/**
    +	 * Returns the associated graph.
    +	 */
    +	public mxGraph getGraph()
    +	{
    +		return graph;
    +	}
    +
    +	/**
    +	 * Returns the constraint for the given key and cell. This implementation
    +	 * always returns the value for the given key in the style of the given
    +	 * cell.
    +	 * 
    +	 * @param key Key of the constraint to be returned.
    +	 * @param cell Cell whose constraint should be returned.
    +	 */
    +	public Object getConstraint(Object key, Object cell)
    +	{
    +		return getConstraint(key, cell, null, false);
    +	}
    +
    +	/**
    +	 * Returns the constraint for the given key and cell. The optional edge and
    +	 * source arguments are used to return inbound and outgoing routing-
    +	 * constraints for the given edge and vertex. This implementation always
    +	 * returns the value for the given key in the style of the given cell.
    +	 * 
    +	 * @param key Key of the constraint to be returned.
    +	 * @param cell Cell whose constraint should be returned.
    +	 * @param edge Optional cell that represents the connection whose constraint
    +	 * should be returned. Default is null.
    +	 * @param source Optional boolean that specifies if the connection is incoming
    +	 * or outgoing. Default is false.
    +	 */
    +	public Object getConstraint(Object key, Object cell, Object edge,
    +			boolean source)
    +	{
    +		mxCellState state = graph.getView().getState(cell);
    +		Map<String, Object> style = (state != null) ? state.getStyle() : graph
    +				.getCellStyle(cell);
    +
    +		return (style != null) ? style.get(key) : null;
    +	}
    +
    +	/**
    +	 * Traverses the (directed) graph invoking the given function for each
    +	 * visited vertex and edge. The function is invoked with the current vertex
    +	 * and the incoming edge as a parameter. This implementation makes sure
    +	 * each vertex is only visited once. The function may return false if the
    +	 * traversal should stop at the given vertex.
    +	 * 
    +	 * @param vertex <mxCell> that represents the vertex where the traversal starts.
    +	 * @param directed Optional boolean indicating if edges should only be traversed
    +	 * from source to target. Default is true.
    +	 * @param visitor Visitor that takes the current vertex and the incoming edge.
    +	 * The traversal stops if the function returns false.
    +	 * @param edge Optional <mxCell> that represents the incoming edge. This is
    +	 * null for the first step of the traversal.
    +	 * @param visited Optional array of cell paths for the visited cells.
    +	 */
    +	public void traverse(Object vertex, boolean directed,
    +			mxICellVisitor visitor, Object edge, Set<Object> visited)
    +	{
    +		mxGraphView view = graph.getView();
    +		mxIGraphModel model = graph.getModel();
    +		
    +		if (vertex != null && visitor != null)
    +		{
    +			if (visited == null)
    +			{
    +				visited = new HashSet<Object>();
    +			}
    +
    +			if (!visited.contains(vertex))
    +			{
    +				visited.add(vertex);
    +
    +				if (visitor.visit(vertex, edge))
    +				{
    +					int edgeCount = model.getEdgeCount(vertex);
    +
    +					if (edgeCount > 0)
    +					{
    +						for (int i = 0; i < edgeCount; i++)
    +						{
    +							Object e = model.getEdgeAt(vertex, i);
    +							boolean isSource = model.getTerminal(e, true) == vertex;
    +
    +							if (!directed || isSource)
    +							{
    +								Object next = view.getVisibleTerminal(e, !isSource);
    +								traverse(next, directed, visitor, e, visited);
    +							}
    +						}
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * @return the useBoundingBox
    +	 */
    +	public boolean isUseBoundingBox()
    +	{
    +		return useBoundingBox;
    +	}
    +
    +	/**
    +	 * @param useBoundingBox the useBoundingBox to set
    +	 */
    +	public void setUseBoundingBox(boolean useBoundingBox)
    +	{
    +		this.useBoundingBox = useBoundingBox;
    +	}
    +
    +	/**
    +	 * Returns true if the given vertex may be moved by the layout.
    +	 * 
    +	 * @param vertex Object that represents the vertex to be tested.
    +	 * @return Returns true if the vertex can be moved.
    +	 */
    +	public boolean isVertexMovable(Object vertex)
    +	{
    +		return graph.isCellMovable(vertex);
    +	}
    +
    +	/**
    +	 * Returns true if the given vertex has no connected edges.
    +	 * 
    +	 * @param vertex Object that represents the vertex to be tested.
    +	 * @return Returns true if the vertex should be ignored.
    +	 */
    +	public boolean isVertexIgnored(Object vertex)
    +	{
    +		return !graph.getModel().isVertex(vertex)
    +				|| !graph.isCellVisible(vertex);
    +	}
    +
    +	/**
    +	 * Returns true if the given edge has no source or target terminal.
    +	 * 
    +	 * @param edge Object that represents the edge to be tested.
    +	 * @return Returns true if the edge should be ignored.
    +	 */
    +	public boolean isEdgeIgnored(Object edge)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +
    +		return !model.isEdge(edge) || !graph.isCellVisible(edge)
    +				|| model.getTerminal(edge, true) == null
    +				|| model.getTerminal(edge, false) == null;
    +	}
    +
    +	/**
    +	 * Disables or enables the edge style of the given edge.
    +	 */
    +	public void setEdgeStyleEnabled(Object edge, boolean value)
    +	{
    +		graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE, (value) ? "0" : "1",
    +				new Object[] { edge });
    +	}
    +
    +	/**
    +	 * Disables or enables orthogonal end segments of the given edge
    +	 */
    +	public void setOrthogonalEdge(Object edge, boolean value)
    +	{
    +		graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL, (value) ? "1" : "0",
    +				new Object[] { edge });
    +	}
    +
    +	public mxPoint getParentOffset(Object parent)
    +	{
    +		mxPoint result = new mxPoint();
    +
    +		if (parent != null && parent != this.parent)
    +		{
    +			mxIGraphModel model = graph.getModel();
    +
    +			if (model.isAncestor(this.parent, parent))
    +			{
    +				mxGeometry parentGeo = model.getGeometry(parent);
    +
    +				while (parent != this.parent)
    +				{
    +					result.setX(result.getX() + parentGeo.getX());
    +					result.setY(result.getY() + parentGeo.getY());
    +
    +					parent = model.getParent(parent);;
    +					parentGeo = model.getGeometry(parent);
    +				}
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Sets the control points of the given edge to the given
    +	 * list of mxPoints. Set the points to null to remove all
    +	 * existing points for an edge.
    +	 */
    +	public void setEdgePoints(Object edge, List<mxPoint> points)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		mxGeometry geometry = model.getGeometry(edge);
    +
    +		if (geometry == null)
    +		{
    +			geometry = new mxGeometry();
    +			geometry.setRelative(true);
    +		}
    +		else
    +		{
    +			geometry = (mxGeometry) geometry.clone();
    +		}
    +
    +		if (this.parent != null && points != null)
    +		{
    +			Object parent = graph.getModel().getParent(edge);
    +
    +				mxPoint parentOffset = getParentOffset(parent);
    +
    +				for (mxPoint point : points)
    +				{
    +					point.setX(point.getX() - parentOffset.getX());
    +					point.setY(point.getY() - parentOffset.getY());
    +				}
    +
    +		}
    +
    +		geometry.setPoints(points);
    +		model.setGeometry(edge, geometry);
    +	}
    +
    +	/**
    +	 * Returns an <mxRectangle> that defines the bounds of the given cell
    +	 * or the bounding box if <useBoundingBox> is true.
    +	 */
    +	public mxRectangle getVertexBounds(Object vertex)
    +	{
    +		mxRectangle geo = graph.getModel().getGeometry(vertex);
    +
    +		// Checks for oversize label bounding box and corrects
    +		// the return value accordingly
    +		if (useBoundingBox)
    +		{
    +			mxCellState state = graph.getView().getState(vertex);
    +
    +			if (state != null)
    +			{
    +				double scale = graph.getView().getScale();
    +				mxRectangle tmp = state.getBoundingBox();
    +
    +				double dx0 = (tmp.getX() - state.getX()) / scale;
    +				double dy0 = (tmp.getY() - state.getY()) / scale;
    +				double dx1 = (tmp.getX() + tmp.getWidth() - state.getX() - state
    +						.getWidth()) / scale;
    +				double dy1 = (tmp.getY() + tmp.getHeight() - state.getY() - state
    +						.getHeight()) / scale;
    +
    +				geo = new mxRectangle(geo.getX() + dx0, geo.getY() + dy0,
    +						geo.getWidth() - dx0 + dx1, geo.getHeight() + -dy0
    +								+ dy1);
    +			}
    +		}
    +
    +		if (this.parent != null)
    +		{
    +			Object parent = graph.getModel().getParent(vertex);
    +			geo = (mxRectangle) geo.clone();
    +
    +			if (parent != null && parent != this.parent)
    +			{
    +				mxPoint parentOffset = getParentOffset(parent);
    +				geo.setX(geo.getX() + parentOffset.getX());
    +				geo.setY(geo.getY() + parentOffset.getY());
    +			}
    +		}
    +
    +		return new mxRectangle(geo);
    +	}
    +
    +	/**
    +	 * Sets the new position of the given cell taking into account the size of
    +	 * the bounding box if <useBoundingBox> is true. The change is only carried
    +	 * out if the new location is not equal to the existing location, otherwise
    +	 * the geometry is not replaced with an updated instance. The new or old
    +	 * bounds are returned (including overlapping labels).
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose geometry is to be set.
    +	 * x - Integer that defines the x-coordinate of the new location.
    +	 * y - Integer that defines the y-coordinate of the new location.
    +	 */
    +	public mxRectangle setVertexLocation(Object vertex, double x, double y)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		mxGeometry geometry = model.getGeometry(vertex);
    +		mxRectangle result = null;
    +
    +		if (geometry != null)
    +		{
    +			result = new mxRectangle(x, y, geometry.getWidth(),
    +					geometry.getHeight());
    +
    +			mxGraphView graphView = graph.getView();
    +
    +			// Checks for oversize labels and offset the result
    +			if (useBoundingBox)
    +			{
    +				mxCellState state = graphView.getState(vertex);
    +
    +				if (state != null)
    +				{
    +					double scale = graph.getView().getScale();
    +					mxRectangle box = state.getBoundingBox();
    +
    +					if (state.getBoundingBox().getX() < state.getX())
    +					{
    +						x += (state.getX() - box.getX()) / scale;
    +						result.setWidth(box.getWidth());
    +					}
    +					if (state.getBoundingBox().getY() < state.getY())
    +					{
    +						y += (state.getY() - box.getY()) / scale;
    +						result.setHeight(box.getHeight());
    +					}
    +				}
    +			}
    +
    +			if (this.parent != null)
    +			{
    +				Object parent = model.getParent(vertex);
    +
    +				if (parent != null && parent != this.parent)
    +				{
    +					mxPoint parentOffset = getParentOffset(parent);
    +
    +					x = x - parentOffset.getX();
    +					y = y - parentOffset.getY();
    +				}
    +			}
    +
    +			if (geometry.getX() != x || geometry.getY() != y)
    +			{
    +				geometry = (mxGeometry) geometry.clone();
    +				geometry.setX(x);
    +				geometry.setY(y);
    +
    +				model.setGeometry(vertex, geometry);
    +			}
    +		}
    +
    +		return result;
    +	}
    +	
    +	/**
    +	 * Updates the bounds of the given groups to include all children. Call
    +	 * this with the groups in parent to child order, top-most group first, eg.
    +	 * 
    +	 * arrangeGroups(graph, mxUtils.sortCells(Arrays.asList(
    +	 *   new Object[] { v1, v3 }), true).toArray(), 10);
    +	 * @param groups the groups to adjust
    +	 * @param border the border applied to the adjusted groups
    +	 */
    +	public void arrangeGroups(Object[] groups, int border)
    +	{
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			for (int i = groups.length - 1; i >= 0; i--)
    +			{
    +				Object group = groups[i];
    +				Object[] children = graph.getChildVertices(group);
    +				mxRectangle bounds = graph.getBoundingBoxFromGeometry(children);
    +
    +				mxGeometry geometry = graph.getCellGeometry(group);
    +				double left = 0;
    +				double top = 0;
    +				
    +				// Adds the size of the title area for swimlanes
    +				if (this.graph.isSwimlane(group))
    +				{
    +					mxRectangle size = graph.getStartSize(group);
    +					left = size.getWidth();
    +					top = size.getHeight();
    +				}
    +				
    +				if (bounds != null && geometry != null)
    +				{
    +					geometry = (mxGeometry) geometry.clone();
    +					geometry.setX(geometry.getX() + bounds.getX() - border - left);
    +					geometry.setY(geometry.getY() + bounds.getY() - border - top);
    +					geometry.setWidth(bounds.getWidth() + 2 * border + left);
    +					geometry.setHeight(bounds.getHeight() + 2 * border + top);
    +					graph.getModel().setGeometry(group, geometry);
    +					graph.moveCells(children, border + left - bounds.getX(),
    +							border + top - bounds.getY());
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +	}
    +}
    diff --git a/java/src/com/mxgraph/layout/mxIGraphLayout.java b/java/src/com/mxgraph/layout/mxIGraphLayout.java
    new file mode 100644
    index 000000000..3f4d0b3e6
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxIGraphLayout.java
    @@ -0,0 +1,32 @@
    +/**
    + * $Id: mxIGraphLayout.java,v 1.6 2009-02-21 13:39:16 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.layout;
    +
    +/**
    + * Defines the requirements for an object that implements a graph layout.
    + */
    +public interface mxIGraphLayout
    +{
    +
    +	/**
    +	 * Executes the layout for the children of the specified parent.
    +	 * 
    +	 * @param parent Parent cell that contains the children to be layed out.
    +	 */
    +	void execute(Object parent);
    +
    +	/**
    +	 * Notified when a cell is being moved in a parent that has automatic
    +	 * layout to update the cell state (eg. index) so that the outcome of the
    +	 * layout will position the vertex as close to the point (x, y) as
    +	 * possible.
    +	 * 
    +	 * @param cell Cell which is being moved.
    +	 * @param x X-coordinate of the new cell location.
    +	 * @param y Y-coordinate of the new cell location.
    +	 */
    +	void moveCell(Object cell, double x, double y);
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/mxOrganicLayout.java b/java/src/com/mxgraph/layout/mxOrganicLayout.java
    new file mode 100644
    index 000000000..bb2d7718e
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxOrganicLayout.java
    @@ -0,0 +1,1827 @@
    +/**
    + * $Id: mxOrganicLayout.java,v 1.11 2011-12-02 15:19:01 mate Exp $
    + * Copyright (c) 2007-2009, JGraph Ltd
    + */
    +
    +package com.mxgraph.layout;
    +
    +import java.awt.geom.Line2D;
    +import java.awt.geom.Point2D;
    +import java.awt.geom.Rectangle2D;
    +import java.util.ArrayList;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.Map;
    +
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * An implementation of a simulated annealing layout, based on "Drawing Graphs
    + * Nicely Using Simulated Annealing" by Davidson and Harel (1996). This
    + * paper describes these criteria as being favourable in a graph layout: (1)
    + * distributing nodes evenly, (2) making edge-lengths uniform, (3)
    + * minimizing cross-crossings, and (4) keeping nodes from coming too close
    + * to edges. These criteria are translated into energy cost functions in the
    + * layout. Nodes or edges breaking these criteria create a larger cost function
    + * , the total cost they contribute related to the extent that they break it.
    + * The idea of the algorithm is to minimise the total system energy. Factors
    + * are assigned to each of the criteria describing how important that
    + * criteria is. Higher factors mean that those criteria are deemed to be
    + * relatively preferable in the final layout. Most of  the criteria conflict
    + * with the others to some extent and so the setting of the factors determines
    + * the general look of the resulting graph.
    + * <p>
    + * In addition to the four aesthetic criteria the concept of a border line
    + * which induces an energy cost to nodes in proximity to the graph bounds is
    + * introduced to attempt to restrain the graph. All of the 5 factors can be
    + * switched on or off using the <code>isOptimize...</code> variables.
    + * <p>
    + * Simulated Annealing is a force-directed layout and is one of the more
    + * expensive, but generally effective layouts of this type. Layouts like
    + * the spring layout only really factor in edge length and inter-node
    + * distance being the lowest CPU intensive for the most aesthetic gain. The
    + * additional factors are more expensive but can have very attractive results.
    + * <p>
    + * The main loop of the algorithm consist of processing the nodes in a 
    + * deterministic order. During the processing of each node a circle of radius
    + * <code>moveRadius</code> is made around the node and split into
    + * <code>triesPerCell</code> equal segments. Each point between neighbour
    + * segments is determined and the new energy of the system if the node were
    + * moved to that position calculated. Only the necessary nodes and edges are
    + * processed new energy values resulting in quadratic performance, O(VE),
    + * whereas calculating the total system energy would be cubic. The default
    + * implementation only checks 8 points around the radius of the circle, as
    + * opposed to the suggested 30 in the paper. Doubling the number of points
    + * double the CPU load and 8 works almost as well as 30.
    + * <p>
    + * The <code>moveRadius</code> replaces the temperature as the influencing
    + * factor in the way the graph settles in later iterations. If the user does
    + * not set the initial move radius it is set to half the maximum dimension
    + * of the graph. Thus, in 2 iterations a node may traverse the entire graph,
    + * and it is more sensible to find minima this way that uphill moves, which
    + * are little more than an expensive 'tilt' method. The factor by which
    + * the radius is multiplied by after each iteration is important, lowering
    + * it improves performance but raising it towards 1.0 can improve the
    + * resulting graph aesthetics. When the radius hits the minimum move radius
    + * defined, the layout terminates. The minimum move radius should be set
    + * a value where the move distance is too minor to be of interest.
    + * <p>
    + * Also, the idea of a fine tuning phase is used, as described in the paper.
    + * This involves only calculating the edge to node distance energy cost
    + * at the end of the algorithm since it is an expensive calculation and
    + * it really an 'optimizating' function. <code>fineTuningRadius</code>
    + * defines the radius value that, when reached, causes the edge to node
    + * distance to be calculated.
    + * <p>
    + * There are other special cases that are processed after each iteration.
    + * <code>unchangedEnergyRoundTermination</code> defines the number of
    + * iterations, after which the layout terminates. If nothing is being moved
    + * it is assumed a good layout has been found. In addition to this if
    + * no nodes are moved during an iteration the move radius is halved, presuming
    + * that a finer granularity is required.
    + * 
    + */
    +public class mxOrganicLayout extends mxGraphLayout
    +{
    +
    +	/**
    +	 * Whether or not the distance between edge and nodes will be calculated
    +	 * as an energy cost function. This function is CPU intensive and is best
    +	 * only used in the fine tuning phase.
    +	 */
    +	protected boolean isOptimizeEdgeDistance = true;
    +
    +	/**
    +	 * Whether or not edges crosses will be calculated as an energy cost
    +	 * function. This function is CPU intensive, though if some iterations
    +	 * without it are required, it is best to have a few cycles at the start
    +	 * of the algorithm using it, then use it intermittantly through the rest
    +	 * of the layout.
    +	 */
    +	protected boolean isOptimizeEdgeCrossing = true;
    +
    +	/**
    +	 * Whether or not edge lengths will be calculated as an energy cost
    +	 * function. This function not CPU intensive.
    +	 */
    +	protected boolean isOptimizeEdgeLength = true;
    +
    +	/**
    +	 * Whether or not nodes will contribute an energy cost as they approach
    +	 * the bound of the graph. The cost increases to a limit close to the
    +	 * border and stays constant outside the bounds of the graph. This function
    +	 * is not CPU intensive
    +	 */
    +	protected boolean isOptimizeBorderLine = true;
    +
    +	/**
    +	 * Whether or not node distribute will contribute an energy cost where
    +	 * nodes are close together. The function is moderately CPU intensive.
    +	 */
    +	protected boolean isOptimizeNodeDistribution = true;
    +
    +	/**
    +	 * when {@link #moveRadius}reaches this value, the algorithm is terminated
    +	 */
    +	protected double minMoveRadius = 2.0;
    +
    +	/**
    +	 * The current radius around each node where the next position energy
    +	 * values will be calculated for a possible move
    +	 */
    +	protected double moveRadius;
    +
    +	/**
    +	 * The initial value of <code>moveRadius</code>. If this is set to zero
    +	 * the layout will automatically determine a suitable value.
    +	 */
    +	protected double initialMoveRadius = 0.0;
    +
    +	/**
    +	 * The factor by which the <code>moveRadius</code> is multiplied by after
    +	 * every iteration. A value of 0.75 is a good balance between performance
    +	 * and aesthetics. Increasing the value provides more chances to find
    +	 * minimum energy positions and decreasing it causes the minimum radius
    +	 * termination condition to occur more quickly.
    +	 */
    +	protected double radiusScaleFactor = 0.75;
    +
    +	/**
    +	 * The average amount of area allocated per node. If <code> bounds</code>
    +	 * is not set this value mutiplied by the number of nodes to find
    +	 * the total graph area. The graph is assumed square.
    +	 */
    +	protected double averageNodeArea = 160000;
    +
    +	/**
    +	 * The radius below which fine tuning of the layout should start
    +	 * This involves allowing the distance between nodes and edges to be
    +	 * taken into account in the total energy calculation. If this is set to
    +	 * zero, the layout will automatically determine a suitable value
    +	 */
    +	protected double fineTuningRadius = 40.0;
    +
    +	/**
    +	 * Limit to the number of iterations that may take place. This is only
    +	 * reached if one of the termination conditions does not occur first.
    +	 */
    +	protected int maxIterations = 1000;
    +
    +	/**
    +	 * Cost factor applied to energy calculations involving the distance
    +	 * nodes and edges. Increasing this value tends to cause nodes to move away
    +	 * from edges, at the partial cost of other graph aesthetics.
    +	 * <code>isOptimizeEdgeDistance</code> must be true for edge to nodes
    +	 * distances to be taken into account.
    +	 */
    +	protected double edgeDistanceCostFactor = 3000;
    +
    +	/**
    +	 * Cost factor applied to energy calculations involving edges that cross
    +	 * over one another. Increasing this value tends to result in fewer edge
    +	 * crossings, at the partial cost of other graph aesthetics.
    +	 * <code>isOptimizeEdgeCrossing</code> must be true for edge crossings
    +	 * to be taken into account.
    +	 */
    +	protected double edgeCrossingCostFactor = 6000;
    +
    +	/**
    +	 * Cost factor applied to energy calculations involving the general node
    +	 * distribution of the graph. Increasing this value tends to result in
    +	 * a better distribution of nodes across the available space, at the
    +	 * partial cost of other graph aesthetics.
    +	 * <code>isOptimizeNodeDistribution</code> must be true for this general
    +	 * distribution to be applied.
    +	 */
    +	protected double nodeDistributionCostFactor = 30000;
    +
    +	/**
    +	 * Cost factor applied to energy calculations for node promixity to the
    +	 * notional border of the graph. Increasing this value results in
    +	 * nodes tending towards the centre of the drawing space, at the
    +	 * partial cost of other graph aesthetics.
    +	 * <code>isOptimizeBorderLine</code> must be true for border
    +	 * repulsion to be applied.
    +	 */
    +	protected double borderLineCostFactor = 5;
    +
    +	/**
    +	 * Cost factor applied to energy calculations for the edge lengths.
    +	 * Increasing this value results in the layout attempting to shorten all
    +	 * edges to the minimum edge length, at the partial cost of other graph
    +	 * aesthetics.
    +	 * <code>isOptimizeEdgeLength</code> must be true for edge length
    +	 * shortening to be applied.
    +	 */
    +	protected double edgeLengthCostFactor = 0.02;
    +
    +	/**
    +	 * The x coordinate of the final graph
    +	 */
    +	protected double boundsX = 0.0;
    +
    +	/**
    +	 * The y coordinate of the final graph
    +	 */
    +	protected double boundsY = 0.0;
    +
    +	/**
    +	 * The width coordinate of the final graph
    +	 */
    +	protected double boundsWidth = 0.0;
    +
    +	/**
    +	 * The height coordinate of the final graph
    +	 */
    +	protected double boundsHeight = 0.0;
    +
    +	/**
    +	 * current iteration number of the layout
    +	 */
    +	protected int iteration;
    +
    +	/**
    +	 * determines, in how many segments the circle around cells is divided, to
    +	 * find a new position for the cell. Doubling this value doubles the CPU
    +	 * load. Increasing it beyond 16 might mean a change to the
    +	 * <code>performRound</code> method might further improve accuracy for a
    +	 * small performance hit. The change is described in the method comment.
    +	 */
    +	protected int triesPerCell = 8;
    +
    +	/**
    +	 * prevents from dividing with zero and from creating excessive energy
    +	 * values
    +	 */
    +	protected double minDistanceLimit = 2;
    +
    +	/**
    +	 * cached version of <code>minDistanceLimit</code> squared
    +	 */
    +	protected double minDistanceLimitSquared;
    +
    +	/**
    +	 * distance limit beyond which energy costs due to object repulsive is
    +	 * not calculated as it would be too insignificant
    +	 */
    +	protected double maxDistanceLimit = 100;
    +
    +	/**
    +	 * cached version of <code>maxDistanceLimit</code> squared
    +	 */
    +	protected double maxDistanceLimitSquared;
    +
    +	/**
    +	 * Keeps track of how many consecutive round have passed without any energy
    +	 * changes 
    +	 */
    +	protected int unchangedEnergyRoundCount;
    +
    +	/**
    +	 * The number of round of no node moves taking placed that the layout
    +	 * terminates
    +	 */
    +	protected int unchangedEnergyRoundTermination = 5;
    +
    +	/**
    +	 * Whether or not to use approximate node dimensions or not. Set to true
    +	 * the radius squared of the smaller dimension is used. Set to false the
    +	 * radiusSquared variable of the CellWrapper contains the width squared
    +	 * and heightSquared is used in the obvious manner.
    +	 */
    +	protected boolean approxNodeDimensions = true;
    +
    +	/**
    +	 * Internal models collection of nodes ( vertices ) to be laid out
    +	 */
    +	protected CellWrapper[] v;
    +
    +	/**
    +	 * Internal models collection of edges to be laid out
    +	 */
    +	protected CellWrapper[] e;
    +
    +	/**
    +	 * Array of the x portion of the normalised test vectors that 
    +	 * are tested for a lower energy around each vertex. The vector 
    +	 * of the combined x and y normals are multipled by the current 
    +	 * radius to obtain test points for each vector in the array.
    +	 */
    +	protected double[] xNormTry;
    +
    +	/**
    +	 * Array of the y portion of the normalised test vectors that 
    +	 * are tested for a lower energy around each vertex. The vector 
    +	 * of the combined x and y normals are multipled by the current 
    +	 * radius to obtain test points for each vector in the array.
    +	 */
    +	protected double[] yNormTry;
    +
    +	/**
    +	 * Whether or not fine tuning is on. The determines whether or not
    +	 * node to edge distances are calculated in the total system energy.
    +	 * This cost function , besides detecting line intersection, is a
    +	 * performance intensive component of this algorithm and best left
    +	 * to optimization phase. <code>isFineTuning</code> is switched to
    +	 * <code>true</code> if and when the <code>fineTuningRadius</code>
    +	 * radius is reached. Switching this variable to <code>true</code>
    +	 * before the algorithm runs mean the node to edge cost function
    +	 * is always calculated.
    +	 */
    +	protected boolean isFineTuning = true;
    +
    +	/**
    +	 *  Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    +	 * modified by the result. Default is true.
    +	 */
    +	protected boolean disableEdgeStyle = true;
    +
    +	/**
    +	 * Specifies if all edge points of traversed edges should be removed.
    +	 * Default is true.
    +	 */
    +	protected boolean resetEdges = false;
    +
    +	/**
    +	 * Constructor for mxOrganicLayout.
    +	 */
    +	public mxOrganicLayout(mxGraph graph)
    +	{
    +		super(graph);
    +	}
    +
    +	/**
    +	 * Constructor for mxOrganicLayout.
    +	 */
    +	public mxOrganicLayout(mxGraph graph, Rectangle2D bounds)
    +	{
    +		super(graph);
    +		boundsX = bounds.getX();
    +		boundsY = bounds.getY();
    +		boundsWidth = bounds.getWidth();
    +		boundsHeight = bounds.getHeight();
    +	}
    +
    +	/**
    +	 * Returns true if the given vertex has no connected edges.
    +	 * 
    +	 * @param vertex Object that represents the vertex to be tested.
    +	 * @return Returns true if the vertex should be ignored.
    +	 */
    +	public boolean isVertexIgnored(Object vertex)
    +	{
    +		return false;
    +	}
    +
    +	/**
    +	 * Implements <mxGraphLayout.execute>.
    +	 */
    +	public void execute(Object parent)
    +	{
    +		Object[] vertices = graph.getChildVertices(parent);
    +		Object[] edges = graph.getChildEdges(parent);
    +
    +		// If the bounds dimensions have not been set see if the average area
    +		// per node has been
    +		mxRectangle totalBounds = null;
    +		mxRectangle bounds = null;
    +		
    +		// Form internal model of nodes
    +		Map<Object, Integer> vertexMap = new Hashtable<Object, Integer>();
    +		v = new CellWrapper[vertices.length];
    +		for (int i = 0; i < vertices.length; i++)
    +		{
    +			v[i] = new CellWrapper(vertices[i]);
    +			vertexMap.put(vertices[i], new Integer(i));
    +			bounds = getVertexBounds(vertices[i]);
    +			
    +			if (totalBounds == null)
    +			{
    +				totalBounds = (mxRectangle) bounds.clone();
    +			}
    +			else
    +			{
    +				totalBounds.add(bounds);
    +			}
    +
    +			// Set the X,Y value of the internal version of the cell to
    +			// the center point of the vertex for better positioning
    +			double width = bounds.getWidth();
    +			double height = bounds.getHeight();
    +			v[i].x = bounds.getX() + width / 2.0;
    +			v[i].y = bounds.getY() + height / 2.0;
    +			if (approxNodeDimensions)
    +			{
    +				v[i].radiusSquared = Math.min(width, height);
    +				v[i].radiusSquared *= v[i].radiusSquared;
    +			}
    +			else
    +			{
    +				v[i].radiusSquared = width * width;
    +				v[i].heightSquared = height * height;
    +			}
    +		}
    +
    +		if (averageNodeArea == 0.0)
    +		{
    +			if (boundsWidth == 0.0 && totalBounds != null)
    +			{
    +				// Just use current bounds of graph
    +				boundsX = totalBounds.getX();
    +				boundsY = totalBounds.getY();
    +				boundsWidth = totalBounds.getWidth();
    +				boundsHeight = totalBounds.getHeight();
    +			}
    +		}
    +		else
    +		{
    +			// find the center point of the current graph
    +			// based the new graph bounds on the average node area set
    +			double newArea = averageNodeArea * vertices.length;
    +			double squareLength = Math.sqrt(newArea);
    +			if (bounds != null)
    +			{
    +				double centreX = totalBounds.getX() + totalBounds.getWidth() / 2.0;
    +				double centreY = totalBounds.getY() + totalBounds.getHeight() / 2.0;
    +				boundsX = centreX - squareLength / 2.0;
    +				boundsY = centreY - squareLength / 2.0;
    +			}
    +			else
    +			{
    +				boundsX = 0;
    +				boundsY = 0;
    +			}
    +			boundsWidth = squareLength;
    +			boundsHeight = squareLength;
    +			// Ensure x and y are 0 or positive
    +			if (boundsX < 0.0 || boundsY < 0.0)
    +			{
    +				double maxNegativeAxis = Math.min(boundsX, boundsY);
    +				double axisOffset = -maxNegativeAxis;
    +				boundsX += axisOffset;
    +				boundsY += axisOffset;
    +			}
    +		}
    +
    +		// If the initial move radius has not been set find a suitable value.
    +		// A good value is half the maximum dimension of the final graph area
    +		if (initialMoveRadius == 0.0)
    +		{
    +			initialMoveRadius = Math.max(boundsWidth, boundsHeight) / 2.0;
    +		}
    +
    +		moveRadius = initialMoveRadius;
    +
    +		minDistanceLimitSquared = minDistanceLimit * minDistanceLimit;
    +		maxDistanceLimitSquared = maxDistanceLimit * maxDistanceLimit;
    +
    +		unchangedEnergyRoundCount = 0;
    +
    +
    +		// Form internal model of edges
    +		e = new CellWrapper[edges.length];
    +		mxIGraphModel model = graph.getModel();
    +		for (int i = 0; i < e.length; i++)
    +		{
    +			e[i] = new CellWrapper(edges[i]);
    +
    +			Object sourceCell = model.getTerminal(edges[i], true);
    +			Object targetCell = model.getTerminal(edges[i], false);
    +			Integer source = null;
    +			Integer target = null;
    +			// Check if either end of the edge is not connected
    +			if (sourceCell != null)
    +			{
    +				source = vertexMap.get(sourceCell);
    +			}
    +			if (targetCell != null)
    +			{
    +				target = vertexMap.get(targetCell);
    +			}
    +			if (source != null)
    +			{
    +				e[i].source = source.intValue();
    +			}
    +			else
    +			{
    +				// source end is not connected
    +				e[i].source = -1;
    +			}
    +			if (target != null)
    +			{
    +				e[i].target = target.intValue();
    +			}
    +			else
    +			{
    +				// target end is not connected
    +				e[i].target = -1;
    +			}
    +		}
    +
    +		// Set up internal nodes with information about whether edges
    +		// are connected to them or not
    +		for (int i = 0; i < v.length; i++)
    +		{
    +			v[i].relevantEdges = getRelevantEdges(i);
    +			v[i].connectedEdges = getConnectedEdges(i);
    +		}
    +
    +		// Setup the normal vectors for the test points to move each vertex to
    +		xNormTry = new double[triesPerCell];
    +		yNormTry = new double[triesPerCell];
    +
    +		for (int i = 0; i < triesPerCell; i++)
    +		{
    +			double angle = i
    +					* ((2.0 * Math.PI) / triesPerCell);
    +			xNormTry[i] = Math.cos(angle);
    +			yNormTry[i] = Math.sin(angle);
    +		}
    +
    +		
    +		int childCount = model.getChildCount(parent);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object cell = model.getChildAt(parent, i);
    +
    +			if (!isEdgeIgnored(cell))
    +			{
    +				if (isResetEdges())
    +				{
    +					graph.resetEdge(cell);
    +				}
    +
    +				if (isDisableEdgeStyle())
    +				{
    +					setEdgeStyleEnabled(cell, false);
    +				}
    +			}
    +		}
    +		
    +		// The main layout loop
    +		for (iteration = 0; iteration < maxIterations; iteration++)
    +		{
    +			performRound();
    +		}
    +
    +		// Obtain the final positions
    +		double[][] result = new double[v.length][2];
    +		for (int i = 0; i < v.length; i++)
    +		{
    +			vertices[i] = v[i].cell;
    +			bounds = getVertexBounds(vertices[i]);
    +
    +			result[i][0] = v[i].x - bounds.getWidth() / 2;
    +			result[i][1] = v[i].y - bounds.getHeight() / 2;
    +		}
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			for (int i = 0; i < vertices.length; i++)
    +			{
    +				setVertexLocation(vertices[i], result[i][0], result[i][1]);
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * The main round of the algorithm. Firstly, a permutation of nodes
    +	 * is created and worked through in that random order. Then, for each node
    +	 * a number of point of a circle of radius <code>moveRadius</code> are
    +	 * selected and the total energy of the system calculated if that node
    +	 * were moved to that new position. If a lower energy position is found
    +	 * this is accepted and the algorithm moves onto the next node. There
    +	 * may be a slightly lower energy value yet to be found, but forcing
    +	 * the loop to check all possible positions adds nearly the current
    +	 * processing time again, and for little benefit. Another possible
    +	 * strategy would be to take account of the fact that the energy values
    +	 * around the circle decrease for half the loop and increase for the
    +	 * other, as a general rule. If part of the decrease were seen, then
    +	 * when the energy of a node increased, the previous node position was
    +	 * almost always the lowest energy position. This adds about two loop
    +	 * iterations to the inner loop and only makes sense with 16 tries or more.
    +	 */
    +	protected void performRound()
    +	{
    +		// sequential order cells are computed (every round the same order)
    +
    +		// boolean to keep track of whether any moves were made in this round
    +		boolean energyHasChanged = false;
    +		for (int i = 0; i < v.length; i++)
    +		{
    +			int index = i;
    +
    +			// Obtain the energies for the node is its current position
    +			// TODO The energy could be stored from the last iteration
    +			// and used again, rather than re-calculate
    +			double oldNodeDistribution = getNodeDistribution(index);
    +			double oldEdgeDistance = getEdgeDistanceFromNode(index);
    +			oldEdgeDistance += getEdgeDistanceAffectedNodes(index);
    +			double oldEdgeCrossing = getEdgeCrossingAffectedEdges(index);
    +			double oldBorderLine = getBorderline(index);
    +			double oldEdgeLength = getEdgeLengthAffectedEdges(index);
    +			double oldAdditionFactors = getAdditionFactorsEnergy(index);
    +
    +			for (int j = 0; j < triesPerCell; j++)
    +			{
    +				double movex = moveRadius * xNormTry[j];
    +				double movey = moveRadius * yNormTry[j];
    +
    +				// applying new move
    +				double oldx = v[index].x;
    +				double oldy = v[index].y;
    +				v[index].x = v[index].x + movex;
    +				v[index].y = v[index].y + movey;
    +
    +				// calculate the energy delta from this move
    +				double energyDelta = calcEnergyDelta(index,
    +						oldNodeDistribution, oldEdgeDistance, oldEdgeCrossing,
    +						oldBorderLine, oldEdgeLength, oldAdditionFactors);
    +
    +				if (energyDelta < 0)
    +				{
    +					// energy of moved node is lower, finish tries for this
    +					// node
    +					energyHasChanged = true;
    +					break; // exits loop
    +				}
    +				else
    +				{
    +					// Revert node coordinates
    +					v[index].x = oldx;
    +					v[index].y = oldy;
    +				}
    +			}
    +		}
    +		// Check if we've hit the limit number of unchanged rounds that cause
    +		// a termination condition
    +		if (energyHasChanged)
    +		{
    +			unchangedEnergyRoundCount = 0;
    +		}
    +		else
    +		{
    +			unchangedEnergyRoundCount++;
    +			// Half the move radius in case assuming it's set too high for
    +			// what might be an optimisation case
    +			moveRadius /= 2.0;
    +		}
    +		if (unchangedEnergyRoundCount >= unchangedEnergyRoundTermination)
    +		{
    +			iteration = maxIterations;
    +		}
    +
    +		// decrement radius in controlled manner
    +		double newMoveRadius = moveRadius * radiusScaleFactor;
    +		// Don't waste time on tiny decrements, if the final pixel resolution
    +		// is 50 then there's no point doing 55,54.1, 53.2 etc
    +		if (moveRadius - newMoveRadius < minMoveRadius)
    +		{
    +			newMoveRadius = moveRadius - minMoveRadius;
    +		}
    +		// If the temperature reaches its minimum temperature then finish
    +		if (newMoveRadius <= minMoveRadius)
    +		{
    +			iteration = maxIterations;
    +		}
    +		// Switch on fine tuning below the specified temperature
    +		if (newMoveRadius < fineTuningRadius)
    +		{
    +			isFineTuning = true;
    +		}
    +
    +		moveRadius = newMoveRadius;
    +
    +	}
    +
    +	/**
    +	 * Calculates the change in energy for the specified node. The new energy is
    +	 * calculated from the cost function methods and the old energy values for
    +	 * each cost function are passed in as parameters
    +	 * 
    +	 * @param index
    +	 *            The index of the node in the <code>vertices</code> array
    +	 * @param oldNodeDistribution
    +	 *            The previous node distribution energy cost of this node
    +	 * @param oldEdgeDistance
    +	 *            The previous edge distance energy cost of this node
    +	 * @param oldEdgeCrossing
    +	 *            The previous edge crossing energy cost for edges connected to
    +	 *            this node
    +	 * @param oldBorderLine
    +	 *            The previous border line energy cost for this node
    +	 * @param oldEdgeLength
    +	 *            The previous edge length energy cost for edges connected to
    +	 *            this node
    +	 * @param oldAdditionalFactorsEnergy
    +	 *            The previous energy cost for additional factors from
    +	 *            sub-classes
    +	 * 
    +	 * @return the delta of the new energy cost to the old energy cost
    +	 * 
    +	 */
    +	protected double calcEnergyDelta(int index, double oldNodeDistribution,
    +			double oldEdgeDistance, double oldEdgeCrossing,
    +			double oldBorderLine, double oldEdgeLength,
    +			double oldAdditionalFactorsEnergy)
    +	{
    +		double energyDelta = 0.0;
    +		energyDelta += getNodeDistribution(index) * 2.0;
    +		energyDelta -= oldNodeDistribution * 2.0;
    +
    +		energyDelta += getBorderline(index);
    +		energyDelta -= oldBorderLine;
    +
    +		energyDelta += getEdgeDistanceFromNode(index);
    +		energyDelta += getEdgeDistanceAffectedNodes(index);
    +		energyDelta -= oldEdgeDistance;
    +
    +		energyDelta -= oldEdgeLength;
    +		energyDelta += getEdgeLengthAffectedEdges(index);
    +
    +		energyDelta -= oldEdgeCrossing;
    +		energyDelta += getEdgeCrossingAffectedEdges(index);
    +
    +		energyDelta -= oldAdditionalFactorsEnergy;
    +		energyDelta += getAdditionFactorsEnergy(index);
    +
    +		return energyDelta;
    +	}
    +
    +	/**
    +	 * Calculates the energy cost of the specified node relative to all other
    +	 * nodes. Basically produces a higher energy the closer nodes are together.
    +	 * 
    +	 * @param i the index of the node in the array <code>v</code>
    +	 * @return the total node distribution energy of the specified node 
    +	 */
    +	protected double getNodeDistribution(int i)
    +	{
    +		double energy = 0.0;
    +
    +		// This check is placed outside of the inner loop for speed, even
    +		// though the code then has to be duplicated
    +		if (isOptimizeNodeDistribution == true)
    +		{
    +			if (approxNodeDimensions)
    +			{
    +				for (int j = 0; j < v.length; j++)
    +				{
    +					if (i != j)
    +					{
    +						double vx = v[i].x - v[j].x;
    +						double vy = v[i].y - v[j].y;
    +						double distanceSquared = vx * vx + vy * vy;
    +						distanceSquared -= v[i].radiusSquared;
    +						distanceSquared -= v[j].radiusSquared;
    +
    +						// prevents from dividing with Zero.
    +						if (distanceSquared < minDistanceLimitSquared)
    +						{
    +							distanceSquared = minDistanceLimitSquared;
    +						}
    +
    +						energy += nodeDistributionCostFactor / distanceSquared;
    +					}
    +				}
    +			}
    +			else
    +			{
    +				for (int j = 0; j < v.length; j++)
    +				{
    +					if (i != j)
    +					{
    +						double vx = v[i].x - v[j].x;
    +						double vy = v[i].y - v[j].y;
    +						double distanceSquared = vx * vx + vy * vy;
    +						distanceSquared -= v[i].radiusSquared;
    +						distanceSquared -= v[j].radiusSquared;
    +						// If the height separation indicates overlap, subtract
    +						// the widths from the distance. Same for width overlap
    +						// TODO						if ()
    +
    +						// prevents from dividing with Zero.
    +						if (distanceSquared < minDistanceLimitSquared)
    +						{
    +							distanceSquared = minDistanceLimitSquared;
    +						}
    +
    +						energy += nodeDistributionCostFactor / distanceSquared;
    +					}
    +				}
    +			}
    +		}
    +		return energy;
    +	}
    +
    +	/**
    +	 * This method calculates the energy of the distance of the specified
    +	 * node to the notional border of the graph. The energy increases up to
    +	 * a limited maximum close to the border and stays at that maximum
    +	 * up to and over the border.
    +	 * 
    +	 * @param i the index of the node in the array <code>v</code>
    +	 * @return the total border line energy of the specified node 
    +	 */
    +	protected double getBorderline(int i)
    +	{
    +		double energy = 0.0;
    +		if (isOptimizeBorderLine)
    +		{
    +			// Avoid very small distances and convert negative distance (i.e
    +			// outside the border to small positive ones )
    +			double l = v[i].x - boundsX;
    +			if (l < minDistanceLimit)
    +				l = minDistanceLimit;
    +			double t = v[i].y - boundsY;
    +			if (t < minDistanceLimit)
    +				t = minDistanceLimit;
    +			double r = boundsX + boundsWidth - v[i].x;
    +			if (r < minDistanceLimit)
    +				r = minDistanceLimit;
    +			double b = boundsY + boundsHeight - v[i].y;
    +			if (b < minDistanceLimit)
    +				b = minDistanceLimit;
    +			energy += borderLineCostFactor
    +					* ((1000000.0 / (t * t)) + (1000000.0 / (l * l))
    +							+ (1000000.0 / (b * b)) + (1000000.0 / (r * r)));
    +		}
    +		return energy;
    +	}
    +
    +	/**
    +	 * Obtains the energy cost function for the specified node being moved.
    +	 * This involves calling <code>getEdgeLength</code> for all
    +	 * edges connected to the specified node
    +	 * @param node
    +	 * 				the node whose connected edges cost functions are to be
    +	 * 				calculated
    +	 * @return the total edge length energy of the connected edges 
    +	 */
    +	protected double getEdgeLengthAffectedEdges(int node)
    +	{
    +		double energy = 0.0;
    +		for (int i = 0; i < v[node].connectedEdges.length; i++)
    +		{
    +			energy += getEdgeLength(v[node].connectedEdges[i]);
    +		}
    +		return energy;
    +	}
    +
    +	/**
    +	 * This method calculates the energy due to the length of the specified
    +	 * edge. The energy is proportional to the length of the edge, making
    +	 * shorter edges preferable in the layout.
    +	 * 
    +	 * @param i the index of the edge in the array <code>e</code>
    +	 * @return the total edge length energy of the specified edge 
    +	 */
    +	protected double getEdgeLength(int i)
    +	{
    +		if (isOptimizeEdgeLength)
    +		{
    +			double edgeLength = Point2D.distance(v[e[i].source].x,
    +					v[e[i].source].y, v[e[i].target].x, v[e[i].target].y);
    +			return (edgeLengthCostFactor * edgeLength * edgeLength);
    +		}
    +		else
    +		{
    +			return 0.0;
    +		}
    +	}
    +
    +	/**
    +	 * Obtains the energy cost function for the specified node being moved.
    +	 * This involves calling <code>getEdgeCrossing</code> for all
    +	 * edges connected to the specified node
    +	 * @param node
    +	 * 				the node whose connected edges cost functions are to be
    +	 * 				calculated
    +	 * @return the total edge crossing energy of the connected edges 
    +	 */
    +	protected double getEdgeCrossingAffectedEdges(int node)
    +	{
    +		double energy = 0.0;
    +		for (int i = 0; i < v[node].connectedEdges.length; i++)
    +		{
    +			energy += getEdgeCrossing(v[node].connectedEdges[i]);
    +		}
    +
    +		return energy;
    +	}
    +
    +	/**
    +	 * This method calculates the energy of the distance from the specified
    +	 * edge crossing any other edges. Each crossing add a constant factor
    +	 * to the total energy
    +	 * 
    +	 * @param i the index of the edge in the array <code>e</code>
    +	 * @return the total edge crossing energy of the specified edge 
    +	 */
    +	protected double getEdgeCrossing(int i)
    +	{
    +		// TODO Could have a cost function per edge
    +		int n = 0; // counts energy of edgecrossings through edge i
    +
    +		// max and min variable for minimum bounding rectangles overlapping
    +		// checks
    +		double minjX, minjY, miniX, miniY, maxjX, maxjY, maxiX, maxiY;
    +
    +		if (isOptimizeEdgeCrossing)
    +		{
    +			double iP1X = v[e[i].source].x;
    +			double iP1Y = v[e[i].source].y;
    +			double iP2X = v[e[i].target].x;
    +			double iP2Y = v[e[i].target].y;
    +
    +			for (int j = 0; j < e.length; j++)
    +			{
    +				double jP1X = v[e[j].source].x;
    +				double jP1Y = v[e[j].source].y;
    +				double jP2X = v[e[j].target].x;
    +				double jP2Y = v[e[j].target].y;
    +				if (j != i)
    +				{
    +					// First check is to see if the minimum bounding rectangles
    +					// of the edges overlap at all. Since the layout tries
    +					// to separate nodes and shorten edges, the majority do not
    +					// overlap and this is a cheap way to avoid most of the
    +					// processing
    +					// Some long code to avoid a Math.max call...
    +					if (iP1X < iP2X)
    +					{
    +						miniX = iP1X;
    +						maxiX = iP2X;
    +					}
    +					else
    +					{
    +						miniX = iP2X;
    +						maxiX = iP1X;
    +					}
    +					if (jP1X < jP2X)
    +					{
    +						minjX = jP1X;
    +						maxjX = jP2X;
    +					}
    +					else
    +					{
    +						minjX = jP2X;
    +						maxjX = jP1X;
    +					}
    +					if (maxiX < minjX || miniX > maxjX)
    +					{
    +						continue;
    +					}
    +
    +					if (iP1Y < iP2Y)
    +					{
    +						miniY = iP1Y;
    +						maxiY = iP2Y;
    +					}
    +					else
    +					{
    +						miniY = iP2Y;
    +						maxiY = iP1Y;
    +					}
    +					if (jP1Y < jP2Y)
    +					{
    +						minjY = jP1Y;
    +						maxjY = jP2Y;
    +					}
    +					else
    +					{
    +						minjY = jP2Y;
    +						maxjY = jP1Y;
    +					}
    +					if (maxiY < minjY || miniY > maxjY)
    +					{
    +						continue;
    +					}
    +
    +					// Ignore if any end points are coincident
    +					if (((iP1X != jP1X) && (iP1Y != jP1Y))
    +							&& ((iP1X != jP2X) && (iP1Y != jP2Y))
    +							&& ((iP2X != jP1X) && (iP2Y != jP1Y))
    +							&& ((iP2X != jP2X) && (iP2Y != jP2Y)))
    +					{
    +						// Values of zero returned from Line2D.relativeCCW are
    +						// ignored because the point being exactly on the line
    +						// is very rare for double and we've already checked if
    +						// any end point share the same vertex. Should zero
    +						// ever be returned, it would be the vertex connected
    +						// to the edge that's actually on the edge and this is
    +						// dealt with by the node to edge distance cost
    +						// function. The worst case is that the vertex is
    +						// pushed off the edge faster than it would be
    +						// otherwise. Because of ignoring the zero this code
    +						// below can behave like only a 1 or -1 will be
    +						// returned. See Lines2D.linesIntersects().
    +						boolean intersects = ((Line2D.relativeCCW(iP1X, iP1Y,
    +								iP2X, iP2Y, jP1X, jP1Y) != Line2D.relativeCCW(
    +								iP1X, iP1Y, iP2X, iP2Y, jP2X, jP2Y)) && (Line2D
    +								.relativeCCW(jP1X, jP1Y, jP2X, jP2Y, iP1X, iP1Y) != Line2D
    +								.relativeCCW(jP1X, jP1Y, jP2X, jP2Y, iP2X, iP2Y)));
    +
    +						if (intersects)
    +						{
    +							n++;
    +						}
    +					}
    +				}
    +			}
    +		}
    +		return edgeCrossingCostFactor * n;
    +	}
    +
    +	/**
    +	 * This method calculates the energy of the distance between Cells and
    +	 * Edges. This version of the edge distance cost calculates the energy
    +	 * cost from a specified <strong>node</strong>. The distance cost to all
    +	 * unconnected edges is calculated and the total returned.
    +	 * 
    +	 * @param i the index of the node in the array <code>v</code>
    +	 * @return the total edge distance energy of the node
    +	 */
    +	protected double getEdgeDistanceFromNode(int i)
    +	{
    +		double energy = 0.0;
    +		// This function is only performed during fine tuning for performance
    +		if (isOptimizeEdgeDistance && isFineTuning)
    +		{
    +			int[] edges = v[i].relevantEdges;
    +			for (int j = 0; j < edges.length; j++)
    +			{
    +				// Note that the distance value is squared
    +				double distSquare = Line2D.ptSegDistSq(v[e[edges[j]].source].x,
    +						v[e[edges[j]].source].y, v[e[edges[j]].target].x,
    +						v[e[edges[j]].target].y, v[i].x, v[i].y);
    +
    +				distSquare -= v[i].radiusSquared;
    +
    +				// prevents from dividing with Zero. No Math.abs() call
    +				// for performance
    +				if (distSquare < minDistanceLimitSquared)
    +				{
    +					distSquare = minDistanceLimitSquared;
    +				}
    +
    +				// Only bother with the divide if the node and edge are
    +				// fairly close together
    +				if (distSquare < maxDistanceLimitSquared)
    +				{
    +					energy += edgeDistanceCostFactor / distSquare;
    +				}
    +			}
    +		}
    +		return energy;
    +	}
    +
    +	/**
    +	 * Obtains the energy cost function for the specified node being moved.
    +	 * This involves calling <code>getEdgeDistanceFromEdge</code> for all
    +	 * edges connected to the specified node
    +	 * @param node
    +	 * 				the node whose connected edges cost functions are to be
    +	 * 				calculated
    +	 * @return the total edge distance energy of the connected edges 
    +	 */
    +	protected double getEdgeDistanceAffectedNodes(int node)
    +	{
    +		double energy = 0.0;
    +		for (int i = 0; i < (v[node].connectedEdges.length); i++)
    +		{
    +			energy += getEdgeDistanceFromEdge(v[node].connectedEdges[i]);
    +		}
    +
    +		return energy;
    +	}
    +
    +	/**
    +	 * This method calculates the energy of the distance between Cells and
    +	 * Edges. This version of the edge distance cost calculates the energy
    +	 * cost from a specified <strong>edge</strong>. The distance cost to all
    +	 * unconnected nodes is calculated and the total returned.
    +	 * 
    +	 * @param i the index of the edge in the array <code>e</code>
    +	 * @return the total edge distance energy of the edge
    +	 */
    +	protected double getEdgeDistanceFromEdge(int i)
    +	{
    +		double energy = 0.0;
    +		// This function is only performed during fine tuning for performance
    +		if (isOptimizeEdgeDistance && isFineTuning)
    +		{
    +			for (int j = 0; j < v.length; j++)
    +			{
    +				// Don't calculate for connected nodes
    +				if (e[i].source != j && e[i].target != j)
    +				{
    +					double distSquare = Line2D.ptSegDistSq(v[e[i].source].x,
    +							v[e[i].source].y, v[e[i].target].x,
    +							v[e[i].target].y, v[j].x, v[j].y);
    +
    +					distSquare -= v[j].radiusSquared;
    +
    +					// prevents from dividing with Zero. No Math.abs() call
    +					// for performance
    +					if (distSquare < minDistanceLimitSquared)
    +						distSquare = minDistanceLimitSquared;
    +
    +					// Only bother with the divide if the node and edge are
    +					// fairly close together
    +					if (distSquare < maxDistanceLimitSquared)
    +					{
    +						energy += edgeDistanceCostFactor / distSquare;
    +					}
    +				}
    +			}
    +		}
    +		return energy;
    +	}
    +
    +	/**
    +	 * Hook method to adding additional energy factors into the layout.
    +	 * Calculates the energy just for the specified node.
    +	 * @param i the nodes whose energy is being calculated
    +	 * @return the energy of this node caused by the additional factors
    +	 */
    +	protected double getAdditionFactorsEnergy(int i)
    +	{
    +		return 0.0;
    +	}
    +
    +	/**
    +	 * Returns all Edges that are not connected to the specified cell
    +	 * 
    +	 * @param cellIndex
    +	 *            the cell index to which the edges are not connected
    +	 * @return Array of all interesting Edges
    +	 */
    +	protected int[] getRelevantEdges(int cellIndex)
    +	{
    +		ArrayList<Integer> relevantEdgeList = new ArrayList<Integer>(e.length);
    +
    +		for (int i = 0; i < e.length; i++)
    +		{
    +			if (e[i].source != cellIndex && e[i].target != cellIndex)
    +			{
    +				// Add non-connected edges
    +				relevantEdgeList.add(new Integer(i));
    +			}
    +		}
    +
    +		int[] relevantEdgeArray = new int[relevantEdgeList.size()];
    +		Iterator<Integer> iter = relevantEdgeList.iterator();
    +
    +		//Reform the list into an array but replace Integer values with ints
    +		for (int i = 0; i < relevantEdgeArray.length; i++)
    +		{
    +			if (iter.hasNext())
    +			{
    +				relevantEdgeArray[i] = iter.next().intValue();
    +			}
    +		}
    +
    +		return relevantEdgeArray;
    +	}
    +
    +	/**
    +	 * Returns all Edges that are connected with the specified cell
    +	 * 
    +	 * @param cellIndex
    +	 *            the cell index to which the edges are connected
    +	 * @return Array of all connected Edges
    +	 */
    +	protected int[] getConnectedEdges(int cellIndex)
    +	{
    +		ArrayList<Integer> connectedEdgeList = new ArrayList<Integer>(e.length);
    +
    +		for (int i = 0; i < e.length; i++)
    +		{
    +			if (e[i].source == cellIndex || e[i].target == cellIndex)
    +			{
    +				// Add connected edges to list by their index number
    +				connectedEdgeList.add(new Integer(i));
    +			}
    +		}
    +
    +		int[] connectedEdgeArray = new int[connectedEdgeList.size()];
    +		Iterator<Integer> iter = connectedEdgeList.iterator();
    +
    +		// Reform the list into an array but replace Integer values with ints
    +		for (int i = 0; i < connectedEdgeArray.length; i++)
    +		{
    +			if (iter.hasNext())
    +			{
    +				connectedEdgeArray[i] = iter.next().intValue();
    +				;
    +			}
    +		}
    +
    +		return connectedEdgeArray;
    +	}
    +
    +	/**
    +	 * Returns <code>Organic</code>, the name of this algorithm.
    +	 */
    +	public String toString()
    +	{
    +		return "Organic";
    +	}
    +
    +	/**
    +	 * Internal representation of a node or edge that holds cached information
    +	 * to enable the layout to perform more quickly and to simplify the code
    +	 */
    +	public class CellWrapper
    +	{
    +
    +		/**
    +		 * The actual graph cell this wrapper represents
    +		 */
    +		protected Object cell;
    +
    +		/**
    +		 * All edge that repel this cell, only used for nodes. This array
    +		 * is equivalent to all edges unconnected to this node
    +		 */
    +		protected int[] relevantEdges = null;
    +
    +		/**
    +		 * the index of all connected edges in the <code>e</code> array
    +		 * to this node. This is only used for nodes.
    +		 */
    +		protected int[] connectedEdges = null;
    +
    +		/**
    +		 * The x-coordinate position of this cell, nodes only
    +		 */
    +		protected double x;
    +
    +		/**
    +		 * The y-coordinate position of this cell, nodes only
    +		 */
    +		protected double y;
    +
    +		/**
    +		 * The approximate radius squared of this cell, nodes only. If
    +		 * approxNodeDimensions is true on the layout this value holds the
    +		 * width of the node squared
    +		 */
    +		protected double radiusSquared;
    +
    +		/**
    +		 * The height of the node squared, only used if approxNodeDimensions
    +		 * is set to true.
    +		 */
    +		protected double heightSquared;
    +
    +		/**
    +		 * The index of the node attached to this edge as source, edges only
    +		 */
    +		protected int source;
    +
    +		/**
    +		 * The index of the node attached to this edge as target, edges only
    +		 */
    +		protected int target;
    +
    +		/**
    +		 * Constructs a new CellWrapper
    +		 * @param cell the graph cell this wrapper represents
    +		 */
    +		public CellWrapper(Object cell)
    +		{
    +			this.cell = cell;
    +		}
    +
    +		/**
    +		 * @return the relevantEdges
    +		 */
    +		public int[] getRelevantEdges()
    +		{
    +			return relevantEdges;
    +		}
    +
    +		/**
    +		 * @param relevantEdges the relevantEdges to set
    +		 */
    +		public void setRelevantEdges(int[] relevantEdges)
    +		{
    +			this.relevantEdges = relevantEdges;
    +		}
    +
    +		/**
    +		 * @return the connectedEdges
    +		 */
    +		public int[] getConnectedEdges()
    +		{
    +			return connectedEdges;
    +		}
    +
    +		/**
    +		 * @param connectedEdges the connectedEdges to set
    +		 */
    +		public void setConnectedEdges(int[] connectedEdges)
    +		{
    +			this.connectedEdges = connectedEdges;
    +		}
    +
    +		/**
    +		 * @return the x
    +		 */
    +		public double getX()
    +		{
    +			return x;
    +		}
    +
    +		/**
    +		 * @param x the x to set
    +		 */
    +		public void setX(double x)
    +		{
    +			this.x = x;
    +		}
    +
    +		/**
    +		 * @return the y
    +		 */
    +		public double getY()
    +		{
    +			return y;
    +		}
    +
    +		/**
    +		 * @param y the y to set
    +		 */
    +		public void setY(double y)
    +		{
    +			this.y = y;
    +		}
    +
    +		/**
    +		 * @return the radiusSquared
    +		 */
    +		public double getRadiusSquared()
    +		{
    +			return radiusSquared;
    +		}
    +
    +		/**
    +		 * @param radiusSquared the radiusSquared to set
    +		 */
    +		public void setRadiusSquared(double radiusSquared)
    +		{
    +			this.radiusSquared = radiusSquared;
    +		}
    +
    +		/**
    +		 * @return the heightSquared
    +		 */
    +		public double getHeightSquared()
    +		{
    +			return heightSquared;
    +		}
    +
    +		/**
    +		 * @param heightSquared the heightSquared to set
    +		 */
    +		public void setHeightSquared(double heightSquared)
    +		{
    +			this.heightSquared = heightSquared;
    +		}
    +
    +		/**
    +		 * @return the source
    +		 */
    +		public int getSource()
    +		{
    +			return source;
    +		}
    +
    +		/**
    +		 * @param source the source to set
    +		 */
    +		public void setSource(int source)
    +		{
    +			this.source = source;
    +		}
    +
    +		/**
    +		 * @return the target
    +		 */
    +		public int getTarget()
    +		{
    +			return target;
    +		}
    +
    +		/**
    +		 * @param target the target to set
    +		 */
    +		public void setTarget(int target)
    +		{
    +			this.target = target;
    +		}
    +
    +		/**
    +		 * @return the cell
    +		 */
    +		public Object getCell()
    +		{
    +			return cell;
    +		}
    +	}
    +
    +	/**
    +	 * @return Returns the averageNodeArea.
    +	 */
    +	public double getAverageNodeArea()
    +	{
    +		return averageNodeArea;
    +	}
    +
    +	/**
    +	 * @param averageNodeArea The averageNodeArea to set.
    +	 */
    +	public void setAverageNodeArea(double averageNodeArea)
    +	{
    +		this.averageNodeArea = averageNodeArea;
    +	}
    +
    +	/**
    +	 * @return Returns the borderLineCostFactor.
    +	 */
    +	public double getBorderLineCostFactor()
    +	{
    +		return borderLineCostFactor;
    +	}
    +
    +	/**
    +	 * @param borderLineCostFactor The borderLineCostFactor to set.
    +	 */
    +	public void setBorderLineCostFactor(double borderLineCostFactor)
    +	{
    +		this.borderLineCostFactor = borderLineCostFactor;
    +	}
    +
    +	/**
    +	 * @return Returns the edgeCrossingCostFactor.
    +	 */
    +	public double getEdgeCrossingCostFactor()
    +	{
    +		return edgeCrossingCostFactor;
    +	}
    +
    +	/**
    +	 * @param edgeCrossingCostFactor The edgeCrossingCostFactor to set.
    +	 */
    +	public void setEdgeCrossingCostFactor(double edgeCrossingCostFactor)
    +	{
    +		this.edgeCrossingCostFactor = edgeCrossingCostFactor;
    +	}
    +
    +	/**
    +	 * @return Returns the edgeDistanceCostFactor.
    +	 */
    +	public double getEdgeDistanceCostFactor()
    +	{
    +		return edgeDistanceCostFactor;
    +	}
    +
    +	/**
    +	 * @param edgeDistanceCostFactor The edgeDistanceCostFactor to set.
    +	 */
    +	public void setEdgeDistanceCostFactor(double edgeDistanceCostFactor)
    +	{
    +		this.edgeDistanceCostFactor = edgeDistanceCostFactor;
    +	}
    +
    +	/**
    +	 * @return Returns the edgeLengthCostFactor.
    +	 */
    +	public double getEdgeLengthCostFactor()
    +	{
    +		return edgeLengthCostFactor;
    +	}
    +
    +	/**
    +	 * @param edgeLengthCostFactor The edgeLengthCostFactor to set.
    +	 */
    +	public void setEdgeLengthCostFactor(double edgeLengthCostFactor)
    +	{
    +		this.edgeLengthCostFactor = edgeLengthCostFactor;
    +	}
    +
    +	/**
    +	 * @return Returns the fineTuningRadius.
    +	 */
    +	public double getFineTuningRadius()
    +	{
    +		return fineTuningRadius;
    +	}
    +
    +	/**
    +	 * @param fineTuningRadius The fineTuningRadius to set.
    +	 */
    +	public void setFineTuningRadius(double fineTuningRadius)
    +	{
    +		this.fineTuningRadius = fineTuningRadius;
    +	}
    +
    +	/**
    +	 * @return Returns the initialMoveRadius.
    +	 */
    +	public double getInitialMoveRadius()
    +	{
    +		return initialMoveRadius;
    +	}
    +
    +	/**
    +	 * @param initialMoveRadius The initialMoveRadius to set.
    +	 */
    +	public void setInitialMoveRadius(double initialMoveRadius)
    +	{
    +		this.initialMoveRadius = initialMoveRadius;
    +	}
    +
    +	/**
    +	 * @return Returns the isFineTuning.
    +	 */
    +	public boolean isFineTuning()
    +	{
    +		return isFineTuning;
    +	}
    +
    +	/**
    +	 * @param isFineTuning The isFineTuning to set.
    +	 */
    +	public void setFineTuning(boolean isFineTuning)
    +	{
    +		this.isFineTuning = isFineTuning;
    +	}
    +
    +	/**
    +	 * @return Returns the isOptimizeBorderLine.
    +	 */
    +	public boolean isOptimizeBorderLine()
    +	{
    +		return isOptimizeBorderLine;
    +	}
    +
    +	/**
    +	 * @param isOptimizeBorderLine The isOptimizeBorderLine to set.
    +	 */
    +	public void setOptimizeBorderLine(boolean isOptimizeBorderLine)
    +	{
    +		this.isOptimizeBorderLine = isOptimizeBorderLine;
    +	}
    +
    +	/**
    +	 * @return Returns the isOptimizeEdgeCrossing.
    +	 */
    +	public boolean isOptimizeEdgeCrossing()
    +	{
    +		return isOptimizeEdgeCrossing;
    +	}
    +
    +	/**
    +	 * @param isOptimizeEdgeCrossing The isOptimizeEdgeCrossing to set.
    +	 */
    +	public void setOptimizeEdgeCrossing(boolean isOptimizeEdgeCrossing)
    +	{
    +		this.isOptimizeEdgeCrossing = isOptimizeEdgeCrossing;
    +	}
    +
    +	/**
    +	 * @return Returns the isOptimizeEdgeDistance.
    +	 */
    +	public boolean isOptimizeEdgeDistance()
    +	{
    +		return isOptimizeEdgeDistance;
    +	}
    +
    +	/**
    +	 * @param isOptimizeEdgeDistance The isOptimizeEdgeDistance to set.
    +	 */
    +	public void setOptimizeEdgeDistance(boolean isOptimizeEdgeDistance)
    +	{
    +		this.isOptimizeEdgeDistance = isOptimizeEdgeDistance;
    +	}
    +
    +	/**
    +	 * @return Returns the isOptimizeEdgeLength.
    +	 */
    +	public boolean isOptimizeEdgeLength()
    +	{
    +		return isOptimizeEdgeLength;
    +	}
    +
    +	/**
    +	 * @param isOptimizeEdgeLength The isOptimizeEdgeLength to set.
    +	 */
    +	public void setOptimizeEdgeLength(boolean isOptimizeEdgeLength)
    +	{
    +		this.isOptimizeEdgeLength = isOptimizeEdgeLength;
    +	}
    +
    +	/**
    +	 * @return Returns the isOptimizeNodeDistribution.
    +	 */
    +	public boolean isOptimizeNodeDistribution()
    +	{
    +		return isOptimizeNodeDistribution;
    +	}
    +
    +	/**
    +	 * @param isOptimizeNodeDistribution The isOptimizeNodeDistribution to set.
    +	 */
    +	public void setOptimizeNodeDistribution(boolean isOptimizeNodeDistribution)
    +	{
    +		this.isOptimizeNodeDistribution = isOptimizeNodeDistribution;
    +	}
    +
    +	/**
    +	 * @return Returns the maxIterations.
    +	 */
    +	public int getMaxIterations()
    +	{
    +		return maxIterations;
    +	}
    +
    +	/**
    +	 * @param maxIterations The maxIterations to set.
    +	 */
    +	public void setMaxIterations(int maxIterations)
    +	{
    +		this.maxIterations = maxIterations;
    +	}
    +
    +	/**
    +	 * @return Returns the minDistanceLimit.
    +	 */
    +	public double getMinDistanceLimit()
    +	{
    +		return minDistanceLimit;
    +	}
    +
    +	/**
    +	 * @param minDistanceLimit The minDistanceLimit to set.
    +	 */
    +	public void setMinDistanceLimit(double minDistanceLimit)
    +	{
    +		this.minDistanceLimit = minDistanceLimit;
    +	}
    +
    +	/**
    +	 * @return Returns the minMoveRadius.
    +	 */
    +	public double getMinMoveRadius()
    +	{
    +		return minMoveRadius;
    +	}
    +
    +	/**
    +	 * @param minMoveRadius The minMoveRadius to set.
    +	 */
    +	public void setMinMoveRadius(double minMoveRadius)
    +	{
    +		this.minMoveRadius = minMoveRadius;
    +	}
    +
    +	/**
    +	 * @return Returns the nodeDistributionCostFactor.
    +	 */
    +	public double getNodeDistributionCostFactor()
    +	{
    +		return nodeDistributionCostFactor;
    +	}
    +
    +	/**
    +	 * @param nodeDistributionCostFactor The nodeDistributionCostFactor to set.
    +	 */
    +	public void setNodeDistributionCostFactor(double nodeDistributionCostFactor)
    +	{
    +		this.nodeDistributionCostFactor = nodeDistributionCostFactor;
    +	}
    +
    +	/**
    +	 * @return Returns the radiusScaleFactor.
    +	 */
    +	public double getRadiusScaleFactor()
    +	{
    +		return radiusScaleFactor;
    +	}
    +
    +	/**
    +	 * @param radiusScaleFactor The radiusScaleFactor to set.
    +	 */
    +	public void setRadiusScaleFactor(double radiusScaleFactor)
    +	{
    +		this.radiusScaleFactor = radiusScaleFactor;
    +	}
    +
    +	/**
    +	 * @return Returns the triesPerCell.
    +	 */
    +	public int getTriesPerCell()
    +	{
    +		return triesPerCell;
    +	}
    +
    +	/**
    +	 * @param triesPerCell The triesPerCell to set.
    +	 */
    +	public void setTriesPerCell(int triesPerCell)
    +	{
    +		this.triesPerCell = triesPerCell;
    +	}
    +
    +	/**
    +	 * @return Returns the unchangedEnergyRoundTermination.
    +	 */
    +	public int getUnchangedEnergyRoundTermination()
    +	{
    +		return unchangedEnergyRoundTermination;
    +	}
    +
    +	/**
    +	 * @param unchangedEnergyRoundTermination The unchangedEnergyRoundTermination to set.
    +	 */
    +	public void setUnchangedEnergyRoundTermination(
    +			int unchangedEnergyRoundTermination)
    +	{
    +		this.unchangedEnergyRoundTermination = unchangedEnergyRoundTermination;
    +	}
    +
    +	/**
    +	 * @return Returns the maxDistanceLimit.
    +	 */
    +	public double getMaxDistanceLimit()
    +	{
    +		return maxDistanceLimit;
    +	}
    +
    +	/**
    +	 * @param maxDistanceLimit The maxDistanceLimit to set.
    +	 */
    +	public void setMaxDistanceLimit(double maxDistanceLimit)
    +	{
    +		this.maxDistanceLimit = maxDistanceLimit;
    +	}
    +
    +	/**
    +	 * @return the approxNodeDimensions
    +	 */
    +	public boolean isApproxNodeDimensions()
    +	{
    +		return approxNodeDimensions;
    +	}
    +
    +	/**
    +	 * @param approxNodeDimensions the approxNodeDimensions to set
    +	 */
    +	public void setApproxNodeDimensions(boolean approxNodeDimensions)
    +	{
    +		this.approxNodeDimensions = approxNodeDimensions;
    +	}
    +	
    +	/**
    +	 * @return the disableEdgeStyle
    +	 */
    +	public boolean isDisableEdgeStyle()
    +	{
    +		return disableEdgeStyle;
    +	}
    +
    +	/**
    +	 * @param disableEdgeStyle the disableEdgeStyle to set
    +	 */
    +	public void setDisableEdgeStyle(boolean disableEdgeStyle)
    +	{
    +		this.disableEdgeStyle = disableEdgeStyle;
    +	}
    +
    +	/**
    +	 * @return the resetEdges
    +	 */
    +	public boolean isResetEdges()
    +	{
    +		return resetEdges;
    +	}
    +
    +	/**
    +	 * @param resetEdges the resetEdges to set
    +	 */
    +	public void setResetEdges(boolean resetEdges)
    +	{
    +		this.resetEdges = resetEdges;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/layout/mxParallelEdgeLayout.java b/java/src/com/mxgraph/layout/mxParallelEdgeLayout.java
    new file mode 100644
    index 000000000..86738e28b
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxParallelEdgeLayout.java
    @@ -0,0 +1,197 @@
    +package com.mxgraph.layout;
    +
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.Map;
    +
    +import com.mxgraph.model.mxCellPath;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +
    +public class mxParallelEdgeLayout extends mxGraphLayout
    +{
    +
    +	/**
    +	 * Specifies the spacing between the edges. Default is 20.
    +	 */
    +	protected int spacing;
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxParallelEdgeLayout(mxGraph graph)
    +	{
    +		this(graph, 20);
    +	}
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxParallelEdgeLayout(mxGraph graph, int spacing)
    +	{
    +		super(graph);
    +		this.spacing = spacing;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxIGraphLayout#execute(java.lang.Object)
    +	 */
    +	public void execute(Object parent)
    +	{
    +		Map<String, List<Object>> lookup = findParallels(parent);
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			Iterator<List<Object>> it = lookup.values().iterator();
    +
    +			while (it.hasNext())
    +			{
    +				List<Object> parallels = it.next();
    +
    +				if (parallels.size() > 1)
    +				{
    +					layout(parallels);
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Map<String, List<Object>> findParallels(Object parent)
    +	{
    +		Map<String, List<Object>> lookup = new Hashtable<String, List<Object>>();
    +		mxIGraphModel model = graph.getModel();
    +		int childCount = model.getChildCount(parent);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object child = model.getChildAt(parent, i);
    +
    +			if (!isEdgeIgnored(child))
    +			{
    +				String id = getEdgeId(child);
    +
    +				if (id != null)
    +				{
    +					if (!lookup.containsKey(id))
    +					{
    +						lookup.put(id, new ArrayList<Object>());
    +					}
    +
    +					lookup.get(id).add(child);
    +				}
    +			}
    +		}
    +
    +		return lookup;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected String getEdgeId(Object edge)
    +	{
    +		mxGraphView view = graph.getView();
    +		mxCellState state = view.getState(edge);
    +		Object src = (state != null) ? state.getVisibleTerminal(true) : view
    +				.getVisibleTerminal(edge, true);
    +		Object trg = (state != null) ? state.getVisibleTerminal(false) : view
    +				.getVisibleTerminal(edge, false);
    +
    +		if (src instanceof mxICell && trg instanceof mxICell)
    +		{
    +			String srcId = mxCellPath.create((mxICell) src);
    +			String trgId = mxCellPath.create((mxICell) trg);
    +
    +			return (srcId.compareTo(trgId) > 0) ? trgId + "-" + srcId : srcId
    +					+ "-" + trgId;
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void layout(List<Object> parallels)
    +	{
    +		Object edge = parallels.get(0);
    +		mxIGraphModel model = graph.getModel();
    +		mxGeometry src = model.getGeometry(model.getTerminal(edge, true));
    +		mxGeometry trg = model.getGeometry(model.getTerminal(edge, false));
    +
    +		// Routes multiple loops
    +		if (src == trg)
    +		{
    +			double x0 = src.getX() + src.getWidth() + this.spacing;
    +			double y0 = src.getY() + src.getHeight() / 2;
    +
    +			for (int i = 0; i < parallels.size(); i++)
    +			{
    +				route(parallels.get(i), x0, y0);
    +				x0 += spacing;
    +			}
    +		}
    +		else if (src != null && trg != null)
    +		{
    +			// Routes parallel edges
    +			double scx = src.getX() + src.getWidth() / 2;
    +			double scy = src.getY() + src.getHeight() / 2;
    +
    +			double tcx = trg.getX() + trg.getWidth() / 2;
    +			double tcy = trg.getY() + trg.getHeight() / 2;
    +
    +			double dx = tcx - scx;
    +			double dy = tcy - scy;
    +
    +			double len = Math.sqrt(dx * dx + dy * dy);
    +
    +			double x0 = scx + dx / 2;
    +			double y0 = scy + dy / 2;
    +
    +			double nx = dy * spacing / len;
    +			double ny = dx * spacing / len;
    +
    +			x0 += nx * (parallels.size() - 1) / 2;
    +			y0 -= ny * (parallels.size() - 1) / 2;
    +
    +			for (int i = 0; i < parallels.size(); i++)
    +			{
    +				route(parallels.get(i), x0, y0);
    +				x0 -= nx;
    +				y0 += ny;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void route(Object edge, double x, double y)
    +	{
    +		if (graph.isCellMovable(edge))
    +		{
    +			setEdgePoints(edge,
    +					Arrays.asList(new mxPoint[] { new mxPoint(x, y) }));
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/mxPartitionLayout.java b/java/src/com/mxgraph/layout/mxPartitionLayout.java
    new file mode 100644
    index 000000000..713d4f940
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxPartitionLayout.java
    @@ -0,0 +1,235 @@
    +package com.mxgraph.layout;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxGraph;
    +
    +public class mxPartitionLayout extends mxGraphLayout
    +{
    +
    +	/**
    +	 * Boolean indicating the direction in which the space is partitioned.
    +	 * Default is true.
    +	 */
    +	protected boolean horizontal;
    +
    +	/**
    +	 * Integer that specifies the absolute spacing in pixels between the
    +	 * children. Default is 0.
    +	 */
    +	protected int spacing;
    +
    +	/**
    +	 * Integer that specifies the absolute inset in pixels for the parent that
    +	 * contains the children. Default is 0.
    +	 */
    +	protected int border;
    +
    +	/**
    +	 * Boolean that specifies if vertices should be resized. Default is true.
    +	 */
    +	protected boolean resizeVertices = true;
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxPartitionLayout(mxGraph graph)
    +	{
    +		this(graph, true);
    +	}
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxPartitionLayout(mxGraph graph, boolean horizontal)
    +	{
    +		this(graph, horizontal, 0);
    +	}
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxPartitionLayout(mxGraph graph, boolean horizontal, int spacing)
    +	{
    +		this(graph, horizontal, spacing, 0);
    +	}
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxPartitionLayout(mxGraph graph, boolean horizontal, int spacing,
    +			int border)
    +	{
    +		super(graph);
    +		this.horizontal = horizontal;
    +		this.spacing = spacing;
    +		this.border = border;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxGraphLayout#move(java.lang.Object, double, double)
    +	 */
    +	public void moveCell(Object cell, double x, double y)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		Object parent = model.getParent(cell);
    +
    +		if (cell instanceof mxICell && parent instanceof mxICell)
    +		{
    +			int i = 0;
    +			double last = 0;
    +			int childCount = model.getChildCount(parent);
    +
    +			// Finds index of the closest swimlane
    +			// TODO: Take into account the orientation
    +			for (i = 0; i < childCount; i++)
    +			{
    +				Object child = model.getChildAt(parent, i);
    +				mxRectangle bounds = getVertexBounds(child);
    +
    +				if (bounds != null)
    +				{
    +					double tmp = bounds.getX() + bounds.getWidth() / 2;
    +
    +					if (last < x && tmp > x)
    +					{
    +						break;
    +					}
    +
    +					last = tmp;
    +				}
    +			}
    +
    +			// Changes child order in parent
    +			int idx = ((mxICell) parent).getIndex((mxICell) cell);
    +			idx = Math.max(0, i - ((i > idx) ? 1 : 0));
    +
    +			model.add(parent, cell, idx);
    +		}
    +	}
    +
    +	/**
    +	 * Hook for subclassers to return the container size.
    +	 */
    +	public mxRectangle getContainerSize()
    +	{
    +		return new mxRectangle();
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxIGraphLayout#execute(java.lang.Object)
    +	 */
    +	public void execute(Object parent)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		mxGeometry pgeo = model.getGeometry(parent);
    +
    +		// Handles special case where the parent is either a layer with no
    +		// geometry or the current root of the view in which case the size
    +		// of the graph's container will be used.
    +		if (pgeo == null && model.getParent(parent) == model.getRoot()
    +				|| parent == graph.getView().getCurrentRoot())
    +		{
    +			mxRectangle tmp = getContainerSize();
    +			pgeo = new mxGeometry(0, 0, tmp.getWidth(), tmp.getHeight());
    +		}
    +
    +		if (pgeo != null)
    +		{
    +			int childCount = model.getChildCount(parent);
    +			List<Object> children = new ArrayList<Object>(childCount);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				Object child = model.getChildAt(parent, i);
    +
    +				if (!isVertexIgnored(child) && isVertexMovable(child))
    +				{
    +					children.add(child);
    +				}
    +			}
    +
    +			int n = children.size();
    +
    +			if (n > 0)
    +			{
    +				double x0 = border;
    +				double y0 = border;
    +				double other = (horizontal) ? pgeo.getHeight() : pgeo
    +						.getWidth();
    +				other -= 2 * border;
    +
    +				mxRectangle size = graph.getStartSize(parent);
    +
    +				other -= (horizontal) ? size.getHeight() : size.getWidth();
    +				x0 = x0 + size.getWidth();
    +				y0 = y0 + size.getHeight();
    +
    +				double tmp = border + (n - 1) * spacing;
    +				double value = (horizontal) ? ((pgeo.getWidth() - x0 - tmp) / n)
    +						: ((pgeo.getHeight() - y0 - tmp) / n);
    +
    +				// Avoids negative values, that is values where the sum of the
    +				// spacing plus the border is larger then the available space
    +				if (value > 0)
    +				{
    +					model.beginUpdate();
    +					try
    +					{
    +						for (int i = 0; i < n; i++)
    +						{
    +							Object child = children.get(i);
    +							mxGeometry geo = model.getGeometry(child);
    +
    +							if (geo != null)
    +							{
    +								geo = (mxGeometry) geo.clone();
    +								geo.setX(x0);
    +								geo.setY(y0);
    +
    +								if (horizontal)
    +								{
    +									if (resizeVertices)
    +									{
    +										geo.setWidth(value);
    +										geo.setHeight(other);
    +									}
    +
    +									x0 += value + spacing;
    +								}
    +								else
    +								{
    +									if (resizeVertices)
    +									{
    +										geo.setHeight(value);
    +										geo.setWidth(other);
    +									}
    +
    +									y0 += value + spacing;
    +								}
    +
    +								model.setGeometry(child, geo);
    +							}
    +						}
    +					}
    +					finally
    +					{
    +						model.endUpdate();
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/mxStackLayout.java b/java/src/com/mxgraph/layout/mxStackLayout.java
    new file mode 100644
    index 000000000..89edd47fc
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/mxStackLayout.java
    @@ -0,0 +1,330 @@
    +package com.mxgraph.layout;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +public class mxStackLayout extends mxGraphLayout
    +{
    +
    +	/**
    +	 * Specifies the orientation of the layout. Default is true.
    +	 */
    +	protected boolean horizontal;
    +
    +	/**
    +	 * Specifies the spacing between the cells. Default is 0.
    +	 */
    +	protected int spacing;
    +
    +	/**
    +	 * Specifies the horizontal origin of the layout. Default is 0.
    +	 */
    +	protected int x0;
    +
    +	/**
    +	 * Specifies the vertical origin of the layout. Default is 0.
    +	 */
    +	protected int y0;
    +	
    +	/**
    +	 * Border to be added if fill is true. Default is 0.
    +	 */
    +	protected int border;
    +
    +	/**
    +	 * Boolean indicating if dimension should be changed to fill out the parent
    +	 * cell. Default is false.
    +	 */
    +	protected boolean fill = false;
    +
    +	/**
    +	 * If the parent should be resized to match the width/height of the
    +	 * stack. Default is false.
    +	 */
    +	protected boolean resizeParent = false;
    +
    +	/**
    +	 * Value at which a new column or row should be created. Default is 0.
    +	 */
    +	protected int wrap = 0;
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxStackLayout(mxGraph graph)
    +	{
    +		this(graph, true);
    +	}
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxStackLayout(mxGraph graph, boolean horizontal)
    +	{
    +		this(graph, horizontal, 0);
    +	}
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxStackLayout(mxGraph graph, boolean horizontal, int spacing)
    +	{
    +		this(graph, horizontal, spacing, 0, 0, 0);
    +	}
    +
    +	/**
    +	 * Constructs a new stack layout layout for the specified graph,
    +	 * spacing, orientation and offset.
    +	 */
    +	public mxStackLayout(mxGraph graph, boolean horizontal, int spacing,
    +			int x0, int y0, int border)
    +	{
    +		super(graph);
    +		this.horizontal = horizontal;
    +		this.spacing = spacing;
    +		this.x0 = x0;
    +		this.y0 = y0;
    +		this.border = border;
    +	}
    +	
    +	/**
    +	 * 
    +	 */
    +	public boolean isHorizontal()
    +	{
    +		return horizontal;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxGraphLayout#move(java.lang.Object, double, double)
    +	 */
    +	public void moveCell(Object cell, double x, double y)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		Object parent = model.getParent(cell);
    +		boolean horizontal = isHorizontal();
    +
    +		if (cell instanceof mxICell && parent instanceof mxICell)
    +		{
    +			int i = 0;
    +			double last = 0;
    +			int childCount = model.getChildCount(parent);
    +			double value = (horizontal) ? x : y;
    +			mxCellState pstate = graph.getView().getState(parent);
    +
    +			if (pstate != null)
    +			{
    +				value -= (horizontal) ? pstate.getX() : pstate.getY();
    +			}
    +
    +			for (i = 0; i < childCount; i++)
    +			{
    +				Object child = model.getChildAt(parent, i);
    +
    +				if (child != cell)
    +				{
    +					mxGeometry bounds = model.getGeometry(child);
    +
    +					if (bounds != null)
    +					{
    +						double tmp = (horizontal) ? bounds.getX()
    +								+ bounds.getWidth() / 2 : bounds.getY()
    +								+ bounds.getHeight() / 2;
    +
    +						if (last < value && tmp > value)
    +						{
    +							break;
    +						}
    +
    +						last = tmp;
    +					}
    +				}
    +			}
    +
    +			// Changes child order in parent
    +			int idx = ((mxICell) parent).getIndex((mxICell) cell);
    +			idx = Math.max(0, i - ((i > idx) ? 1 : 0));
    +
    +			model.add(parent, cell, idx);
    +		}
    +	}
    +
    +	/**
    +	 * Hook for subclassers to return the container size.
    +	 */
    +	public mxRectangle getContainerSize()
    +	{
    +		return new mxRectangle();
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.layout.mxIGraphLayout#execute(java.lang.Object)
    +	 */
    +	public void execute(Object parent)
    +	{
    +		if (parent != null)
    +		{
    +			boolean horizontal = isHorizontal();
    +			mxIGraphModel model = graph.getModel();
    +			mxGeometry pgeo = model.getGeometry(parent);
    +
    +			// Handles special case where the parent is either a layer with no
    +			// geometry or the current root of the view in which case the size
    +			// of the graph's container will be used.
    +			if (pgeo == null && model.getParent(parent) == model.getRoot()
    +					|| parent == graph.getView().getCurrentRoot())
    +			{
    +				mxRectangle tmp = getContainerSize();
    +				pgeo = new mxGeometry(0, 0, tmp.getWidth(), tmp.getHeight());
    +			}
    +
    +			double fillValue = 0;
    +
    +			if (pgeo != null)
    +			{
    +				fillValue = (horizontal) ? pgeo.getHeight() : pgeo.getWidth();
    +			}
    +
    +			fillValue -= 2 * spacing + 2 * border;
    +
    +			// Handles swimlane start size
    +			mxRectangle size = graph.getStartSize(parent);
    +			fillValue -= (horizontal) ? size.getHeight() : size.getWidth();
    +			double x0 = this.x0 + size.getWidth() + border;
    +			double y0 = this.y0 + size.getHeight() + border;
    +
    +			model.beginUpdate();
    +			try
    +			{
    +				double tmp = 0;
    +				mxGeometry last = null;
    +				int childCount = model.getChildCount(parent);
    +
    +				for (int i = 0; i < childCount; i++)
    +				{
    +					Object child = model.getChildAt(parent, i);
    +
    +					if (!isVertexIgnored(child) && isVertexMovable(child))
    +					{
    +						mxGeometry geo = model.getGeometry(child);
    +
    +						if (geo != null)
    +						{
    +							geo = (mxGeometry) geo.clone();
    +
    +							if (wrap != 0 && last != null)
    +							{
    +
    +								if ((horizontal && last.getX()
    +										+ last.getWidth() + geo.getWidth() + 2
    +										* spacing > wrap)
    +										|| (!horizontal && last.getY()
    +												+ last.getHeight()
    +												+ geo.getHeight() + 2 * spacing > wrap))
    +								{
    +									last = null;
    +
    +									if (horizontal)
    +									{
    +										y0 += tmp + spacing;
    +									}
    +									else
    +									{
    +										x0 += tmp + spacing;
    +									}
    +
    +									tmp = 0;
    +								}
    +							}
    +
    +							tmp = Math.max(tmp, (horizontal) ? geo
    +									.getHeight() : geo.getWidth());
    +
    +							if (last != null)
    +							{
    +								if (horizontal)
    +								{
    +									geo.setX(last.getX() + last.getWidth()
    +											+ spacing);
    +								}
    +								else
    +								{
    +									geo.setY(last.getY() + last.getHeight()
    +											+ spacing);
    +								}
    +							}
    +							else
    +							{
    +								if (horizontal)
    +								{
    +									geo.setX(x0);
    +								}
    +								else
    +								{
    +									geo.setY(y0);
    +								}
    +							}
    +
    +							if (horizontal)
    +							{
    +								geo.setY(y0);
    +							}
    +							else
    +							{
    +								geo.setX(x0);
    +							}
    +
    +							if (fill && fillValue > 0)
    +							{
    +								if (horizontal)
    +								{
    +									geo.setHeight(fillValue);
    +								}
    +								else
    +								{
    +									geo.setWidth(fillValue);
    +								}
    +							}
    +
    +							model.setGeometry(child, geo);
    +							last = geo;
    +						}
    +					}
    +				}
    +
    +				if (resizeParent && pgeo != null && last != null
    +						&& !graph.isCellCollapsed(parent))
    +				{
    +					pgeo = (mxGeometry) pgeo.clone();
    +
    +					if (horizontal)
    +					{
    +						pgeo.setWidth(last.getX() + last.getWidth() + spacing);
    +					}
    +					else
    +					{
    +						pgeo
    +								.setHeight(last.getY() + last.getHeight()
    +										+ spacing);
    +					}
    +
    +					model.setGeometry(parent, pgeo);
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.java b/java/src/com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.java
    new file mode 100644
    index 000000000..a9f3c66f7
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/orthogonal/model/mxOrthogonalModel.java
    @@ -0,0 +1,18 @@
    +/**
    + * $Id: mxOrthogonalModel.java,v 1.1 2009-11-25 12:36:37 david Exp $
    + * Copyright (c) 2008-2009, JGraph Ltd
    + */
    +package com.mxgraph.layout.orthogonal.model;
    +
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * A custom graph model 
    + */
    +public class mxOrthogonalModel
    +{
    +   public mxOrthogonalModel(mxGraph graph)
    +   {
    +      // 
    +   }
    +}
    diff --git a/java/src/com/mxgraph/layout/orthogonal/model/mxPointPair.java b/java/src/com/mxgraph/layout/orthogonal/model/mxPointPair.java
    new file mode 100644
    index 000000000..b2f1274c5
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/orthogonal/model/mxPointPair.java
    @@ -0,0 +1,13 @@
    +/**
    + * $Id: mxPointPair.java,v 1.1 2008-10-02 12:49:11 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.layout.orthogonal.model;
    +
    +/**
    + *
    + */
    +public class mxPointPair
    +{
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/orthogonal/model/mxPointSequence.java b/java/src/com/mxgraph/layout/orthogonal/model/mxPointSequence.java
    new file mode 100644
    index 000000000..e363ca3b0
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/orthogonal/model/mxPointSequence.java
    @@ -0,0 +1,13 @@
    +/**
    + * $Id: mxPointSequence.java,v 1.1 2008-10-02 12:49:11 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.layout.orthogonal.model;
    +
    +/**
    + *
    + */
    +public class mxPointSequence
    +{
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/orthogonal/model/mxSegment.java b/java/src/com/mxgraph/layout/orthogonal/model/mxSegment.java
    new file mode 100644
    index 000000000..5e1ae2771
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/orthogonal/model/mxSegment.java
    @@ -0,0 +1,13 @@
    +/**
    + * $Id: mxSegment.java,v 1.1 2008-10-02 12:49:11 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.layout.orthogonal.model;
    +
    +/**
    + *
    + */
    +public class mxSegment
    +{
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/orthogonal/mxOrthogonalLayout.java b/java/src/com/mxgraph/layout/orthogonal/mxOrthogonalLayout.java
    new file mode 100644
    index 000000000..53ff6c17d
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/orthogonal/mxOrthogonalLayout.java
    @@ -0,0 +1,49 @@
    +/**
    + * $Id: mxOrthogonalLayout.java,v 1.2 2009-11-25 12:37:20 david Exp $
    + * Copyright (c) 2008-2009, JGraph Ltd
    + */
    +package com.mxgraph.layout.orthogonal;
    +
    +import com.mxgraph.layout.mxGraphLayout;
    +import com.mxgraph.layout.orthogonal.model.mxOrthogonalModel;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + *
    + */
    +/**
    +*
    +*/
    +public class mxOrthogonalLayout extends mxGraphLayout
    +{
    +
    +  /**
    +   * 
    +   */
    +  protected mxOrthogonalModel orthModel;
    +
    +  /**
    +   * Whether or not to route the edges along grid lines only, if the grid
    +   * is enabled. Default is false
    +   */
    +  protected boolean routeToGrid = false;
    +  
    +  /**
    +   * 
    +   */
    +  public mxOrthogonalLayout(mxGraph graph)
    +  {
    +     super(graph);
    +     orthModel = new mxOrthogonalModel(graph);
    +  }
    +
    +  /**
    +   * 
    +   */
    +  public void execute(Object parent)
    +  {
    +     // Create the rectangulation
    +     
    +  }
    +
    +}
    diff --git a/java/src/com/mxgraph/layout/package.html b/java/src/com/mxgraph/layout/package.html
    new file mode 100644
    index 000000000..3667dabe6
    --- /dev/null
    +++ b/java/src/com/mxgraph/layout/package.html
    @@ -0,0 +1,5 @@
    +<HTML>
    +<BODY>
    +  This package contains various graph layouts.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/model/mxCell.java b/java/src/com/mxgraph/model/mxCell.java
    new file mode 100644
    index 000000000..571774148
    --- /dev/null
    +++ b/java/src/com/mxgraph/model/mxCell.java
    @@ -0,0 +1,625 @@
    +/**
    + * $Id: mxCell.java,v 1.32 2010-08-31 12:33:02 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.model;
    +
    +import java.io.Serializable;
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +/**
    + * Cells are the elements of the graph model. They represent the state
    + * of the groups, vertices and edges in a graph.
    + *
    + * <h4>Edge Labels</h4>
    + * 
    + * Using the x- and y-coordinates of a cell's geometry it is
    + * possible to position the label on edges on a specific location
    + * on the actual edge shape as it appears on the screen. The
    + * x-coordinate of an edge's geometry is used to describe the
    + * distance from the center of the edge from -1 to 1 with 0
    + * being the center of the edge and the default value. The
    + * y-coordinate of an edge's geometry is used to describe
    + * the absolute, orthogonal distance in pixels from that
    + * point. In addition, the mxGeometry.offset is used
    + * as a absolute offset vector from the resulting point.
    + * 
    + * The width and height of an edge geometry are ignored.
    + * 
    + * To add more than one edge label, add a child vertex with
    + * a relative geometry. The x- and y-coordinates of that
    + * geometry will have the same semantiv as the above for
    + * edge labels.
    + */
    +public class mxCell implements mxICell, Cloneable, Serializable
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 910211337632342672L;
    +
    +	/**
    +	 * Holds the Id. Default is null.
    +	 */
    +	protected String id;
    +
    +	/**
    +	 * Holds the user object. Default is null.
    +	 */
    +	protected Object value;
    +
    +	/**
    +	 * Holds the geometry. Default is null.
    +	 */
    +	protected mxGeometry geometry;
    +
    +	/**
    +	 * Holds the style as a string of the form
    +	 * stylename[;key=value]. Default is null.
    +	 */
    +	protected String style;
    +
    +	/**
    +	 * Specifies whether the cell is a vertex or edge and whether it is
    +	 * connectable, visible and collapsed. Default values are false, false,
    +	 * true, true and false respectively.
    +	 */
    +	protected boolean vertex = false, edge = false, connectable = true,
    +			visible = true, collapsed = false;
    +
    +	/**
    +	 * Reference to the parent cell and source and target terminals for edges.
    +	 */
    +	protected mxICell parent, source, target;
    +
    +	/**
    +	 * Holds the child cells and connected edges.
    +	 */
    +	protected List<Object> children, edges;
    +
    +	/**
    +	 * Constructs a new cell with an empty user object.
    +	 */
    +	public mxCell()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * Constructs a new cell for the given user object.
    +	 * 
    +	 * @param value
    +	 *   Object that represents the value of the cell.
    +	 */
    +	public mxCell(Object value)
    +	{
    +		this(value, null, null);
    +	}
    +
    +	/**
    +	 * Constructs a new cell for the given parameters.
    +	 * 
    +	 * @param value Object that represents the value of the cell.
    +	 * @param geometry Specifies the geometry of the cell.
    +	 * @param style Specifies the style as a formatted string.
    +	 */
    +	public mxCell(Object value, mxGeometry geometry, String style)
    +	{
    +		setValue(value);
    +		setGeometry(geometry);
    +		setStyle(style);
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getId()
    +	 */
    +	public String getId()
    +	{
    +		return id;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setId(String)
    +	 */
    +	public void setId(String id)
    +	{
    +		this.id = id;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getValue()
    +	 */
    +	public Object getValue()
    +	{
    +		return value;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setValue(Object)
    +	 */
    +	public void setValue(Object value)
    +	{
    +		this.value = value;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getGeometry()
    +	 */
    +	public mxGeometry getGeometry()
    +	{
    +		return geometry;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setGeometry(com.mxgraph.model.mxGeometry)
    +	 */
    +	public void setGeometry(mxGeometry geometry)
    +	{
    +		this.geometry = geometry;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getStyle()
    +	 */
    +	public String getStyle()
    +	{
    +		return style;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setStyle(String)
    +	 */
    +	public void setStyle(String style)
    +	{
    +		this.style = style;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#isVertex()
    +	 */
    +	public boolean isVertex()
    +	{
    +		return vertex;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setVertex(boolean)
    +	 */
    +	public void setVertex(boolean vertex)
    +	{
    +		this.vertex = vertex;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#isEdge()
    +	 */
    +	public boolean isEdge()
    +	{
    +		return edge;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setEdge(boolean)
    +	 */
    +	public void setEdge(boolean edge)
    +	{
    +		this.edge = edge;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#isConnectable()
    +	 */
    +	public boolean isConnectable()
    +	{
    +		return connectable;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setConnectable(boolean)
    +	 */
    +	public void setConnectable(boolean connectable)
    +	{
    +		this.connectable = connectable;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#isVisible()
    +	 */
    +	public boolean isVisible()
    +	{
    +		return visible;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setVisible(boolean)
    +	 */
    +	public void setVisible(boolean visible)
    +	{
    +		this.visible = visible;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#isCollapsed()
    +	 */
    +	public boolean isCollapsed()
    +	{
    +		return collapsed;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setCollapsed(boolean)
    +	 */
    +	public void setCollapsed(boolean collapsed)
    +	{
    +		this.collapsed = collapsed;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getParent()
    +	 */
    +	public mxICell getParent()
    +	{
    +		return parent;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setParent(com.mxgraph.model.mxICell)
    +	 */
    +	public void setParent(mxICell parent)
    +	{
    +		this.parent = parent;
    +	}
    +
    +	/**
    +	 * Returns the source terminal.
    +	 */
    +	public mxICell getSource()
    +	{
    +		return source;
    +	}
    +
    +	/**
    +	 * Sets the source terminal.
    +	 * 
    +	 * @param source Cell that represents the new source terminal.
    +	 */
    +	public void setSource(mxICell source)
    +	{
    +		this.source = source;
    +	}
    +
    +	/**
    +	 * Returns the target terminal.
    +	 */
    +	public mxICell getTarget()
    +	{
    +		return target;
    +	}
    +
    +	/**
    +	 * Sets the target terminal.
    +	 * 
    +	 * @param target Cell that represents the new target terminal.
    +	 */
    +	public void setTarget(mxICell target)
    +	{
    +		this.target = target;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getTerminal(boolean)
    +	 */
    +	public mxICell getTerminal(boolean source)
    +	{
    +		return (source) ? getSource() : getTarget();
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#setTerminal(com.mxgraph.model.mxICell, boolean)
    +	 */
    +	public mxICell setTerminal(mxICell terminal, boolean isSource)
    +	{
    +		if (isSource)
    +		{
    +			setSource(terminal);
    +		}
    +		else
    +		{
    +			setTarget(terminal);
    +		}
    +
    +		return terminal;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getChildCount()
    +	 */
    +	public int getChildCount()
    +	{
    +		return (children != null) ? children.size() : 0;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getIndex(com.mxgraph.model.mxICell)
    +	 */
    +	public int getIndex(mxICell child)
    +	{
    +		return (children != null) ? children.indexOf(child) : -1;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getChildAt(int)
    +	 */
    +	public mxICell getChildAt(int index)
    +	{
    +		return (children != null) ? (mxICell) children.get(index) : null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#insert(com.mxgraph.model.mxICell)
    +	 */
    +	public mxICell insert(mxICell child)
    +	{
    +		int index = getChildCount();
    +		
    +		if (child.getParent() == this)
    +		{
    +			index--;
    +		}
    +		
    +		return insert(child, index);
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#insert(com.mxgraph.model.mxICell, int)
    +	 */
    +	public mxICell insert(mxICell child, int index)
    +	{
    +		if (child != null)
    +		{
    +			child.removeFromParent();
    +			child.setParent(this);
    +
    +			if (children == null)
    +			{
    +				children = new ArrayList<Object>();
    +				children.add(child);
    +			}
    +			else
    +			{
    +				children.add(index, child);
    +			}
    +		}
    +
    +		return child;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#remove(int)
    +	 */
    +	public mxICell remove(int index)
    +	{
    +		mxICell child = null;
    +
    +		if (children != null && index >= 0)
    +		{
    +			child = getChildAt(index);
    +			remove(child);
    +		}
    +
    +		return child;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#remove(com.mxgraph.model.mxICell)
    +	 */
    +	public mxICell remove(mxICell child)
    +	{
    +		if (child != null && children != null)
    +		{
    +			children.remove(child);
    +			child.setParent(null);
    +		}
    +
    +		return child;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#removeFromParent()
    +	 */
    +	public void removeFromParent()
    +	{
    +		if (parent != null)
    +		{
    +			parent.remove(this);
    +		}
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getEdgeCount()
    +	 */
    +	public int getEdgeCount()
    +	{
    +		return (edges != null) ? edges.size() : 0;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getEdgeIndex(com.mxgraph.model.mxICell)
    +	 */
    +	public int getEdgeIndex(mxICell edge)
    +	{
    +		return (edges != null) ? edges.indexOf(edge) : -1;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#getEdgeAt(int)
    +	 */
    +	public mxICell getEdgeAt(int index)
    +	{
    +		return (edges != null) ? (mxICell) edges.get(index) : null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#insertEdge(com.mxgraph.model.mxICell, boolean)
    +	 */
    +	public mxICell insertEdge(mxICell edge, boolean isOutgoing)
    +	{
    +		if (edge != null)
    +		{
    +			edge.removeFromTerminal(isOutgoing);
    +			edge.setTerminal(this, isOutgoing);
    +
    +			if (edges == null || edge.getTerminal(!isOutgoing) != this
    +					|| !edges.contains(edge))
    +			{
    +				if (edges == null)
    +				{
    +					edges = new ArrayList<Object>();
    +				}
    +
    +				edges.add(edge);
    +			}
    +		}
    +
    +		return edge;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#removeEdge(com.mxgraph.model.mxICell, boolean)
    +	 */
    +	public mxICell removeEdge(mxICell edge, boolean isOutgoing)
    +	{
    +		if (edge != null)
    +		{
    +			if (edge.getTerminal(!isOutgoing) != this && edges != null)
    +			{
    +				edges.remove(edge);
    +			}
    +			
    +			edge.setTerminal(null, isOutgoing);
    +		}
    +
    +		return edge;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxICell#removeFromTerminal(boolean)
    +	 */
    +	public void removeFromTerminal(boolean isSource)
    +	{
    +		mxICell terminal = getTerminal(isSource);
    +
    +		if (terminal != null)
    +		{
    +			terminal.removeEdge(this, isSource);
    +		}
    +	}
    +
    +	/**
    +	 * Returns the specified attribute from the user object if it is an XML
    +	 * node.
    +	 * 
    +	 * @param name Name of the attribute whose value should be returned.
    +	 * @return Returns the value of the given attribute or null.
    +	 */
    +	public String getAttribute(String name)
    +	{
    +		return getAttribute(name, null);
    +	}
    +
    +	/**
    +	 * Returns the specified attribute from the user object if it is an XML
    +	 * node.
    +	 * 
    +	 * @param name Name of the attribute whose value should be returned.
    +	 * @param defaultValue Default value to use if the attribute has no value.
    +	 * @return Returns the value of the given attribute or defaultValue.
    +	 */
    +	public String getAttribute(String name, String defaultValue)
    +	{
    +		Object userObject = getValue();
    +		String val = null;
    +
    +		if (userObject instanceof Element)
    +		{
    +			Element element = (Element) userObject;
    +			val = element.getAttribute(name);
    +		}
    +
    +		if (val == null)
    +		{
    +			val = defaultValue;
    +		}
    +
    +		return val;
    +	}
    +
    +	/**
    +	 * Sets the specified attribute on the user object if it is an XML node.
    +	 * 
    +	 * @param name Name of the attribute whose value should be set.
    +	 * @param value New value of the attribute.
    +	 */
    +	public void setAttribute(String name, String value)
    +	{
    +		Object userObject = getValue();
    +
    +		if (userObject instanceof Element)
    +		{
    +			Element element = (Element) userObject;
    +			element.setAttribute(name, value);
    +		}
    +	}
    +
    +	/**
    +	 * Returns a clone of the cell.
    +	 */
    +	public Object clone() throws CloneNotSupportedException
    +	{
    +		mxCell clone = (mxCell) super.clone();
    +
    +		clone.setValue(cloneValue());
    +		clone.setStyle(getStyle());
    +		clone.setCollapsed(isCollapsed());
    +		clone.setConnectable(isConnectable());
    +		clone.setEdge(isEdge());
    +		clone.setVertex(isVertex());
    +		clone.setVisible(isVisible());
    +		clone.setParent(null);
    +		clone.setSource(null);
    +		clone.setTarget(null);
    +		clone.children = null;
    +		clone.edges = null;
    +
    +		mxGeometry geometry = getGeometry();
    +
    +		if (geometry != null)
    +		{
    +			clone.setGeometry((mxGeometry) geometry.clone());
    +		}
    +
    +		return clone;
    +	}
    +
    +	/**
    +	 * Returns a clone of the user object. This implementation clones any XML
    +	 * nodes or otherwise returns the same user object instance.
    +	 */
    +	protected Object cloneValue()
    +	{
    +		Object value = getValue();
    +
    +		if (value instanceof Node)
    +		{
    +			value = ((Node) value).cloneNode(true);
    +		}
    +
    +		return value;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/model/mxCellPath.java b/java/src/com/mxgraph/model/mxCellPath.java
    new file mode 100644
    index 000000000..207efb521
    --- /dev/null
    +++ b/java/src/com/mxgraph/model/mxCellPath.java
    @@ -0,0 +1,145 @@
    +/**
    + * $Id: mxCellPath.java,v 1.6 2009-11-17 14:36:09 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.model;
    +
    +import java.util.StringTokenizer;
    +import java.util.regex.Pattern;
    +
    +/**
    + * Implements a mechanism for temporary cell Ids.
    + */
    +public class mxCellPath
    +{
    +
    +	/**
    +	 * Defines the separator between the path components. Default is
    +	 * <code>.</code>.
    +	 */
    +	public static String PATH_SEPARATOR = ".";
    +
    +	/**
    +	 * Creates the cell path for the given cell. The cell path is a
    +	 * concatenation of the indices of all cells on the (finite) path to
    +	 * the root, eg. "0.0.0.1".
    +	 * 
    +	 * @param cell Cell whose path should be returned.
    +	 * @return Returns the string that represents the path.
    +	 */
    +	public static String create(mxICell cell)
    +	{
    +		String result = "";
    +
    +		if (cell != null)
    +		{
    +			mxICell parent = cell.getParent();
    +
    +			while (parent != null)
    +			{
    +				int index = parent.getIndex(cell);
    +				result = index + mxCellPath.PATH_SEPARATOR + result;
    +
    +				cell = parent;
    +				parent = cell.getParent();
    +			}
    +		}
    +
    +		return (result.length() > 1) ? result.substring(0, result.length() - 1)
    +				: "";
    +	}
    +
    +	/**
    +	 * Returns the path for the parent of the cell represented by the given
    +	 * path. Returns null if the given path has no parent.
    +	 * 
    +	 * @param path Path whose parent path should be returned.
    +	 */
    +	public static String getParentPath(String path)
    +	{
    +		if (path != null)
    +		{
    +			int index = path.lastIndexOf(mxCellPath.PATH_SEPARATOR);
    +
    +			if (index >= 0)
    +			{
    +				return path.substring(0, index);
    +			}
    +			else if (path.length() > 0)
    +			{
    +				return "";
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the cell for the specified cell path using the given root as the
    +	 * root of the path.
    +	 * 
    +	 * @param root Root cell of the path to be resolved.
    +	 * @param path String that defines the path.
    +	 * @return Returns the cell that is defined by the path.
    +	 */
    +	public static mxICell resolve(mxICell root, String path)
    +	{
    +		mxICell parent = root;
    +		String[] tokens = path.split(Pattern.quote(PATH_SEPARATOR));
    +
    +		for (int i = 0; i < tokens.length; i++)
    +		{
    +			parent = parent.getChildAt(Integer.parseInt(tokens[i]));
    +		}
    +
    +		return parent;
    +	}
    +	
    +	/**
    +	 * Compares the given cell paths and returns -1 if cp1 is smaller, 0 if
    +	 * cp1 is equal and 1 if cp1 is greater than cp2.
    +	 */
    +	public static int compare(String cp1, String cp2)
    +	{
    +		StringTokenizer p1 = new StringTokenizer(cp1, mxCellPath.PATH_SEPARATOR);
    +		StringTokenizer p2 = new StringTokenizer(cp2, mxCellPath.PATH_SEPARATOR);
    +		int comp = 0;
    +		
    +		while (p1.hasMoreTokens() &&
    +			p2.hasMoreTokens())
    +		{
    +			String t1 = p1.nextToken();
    +			String t2 = p2.nextToken();
    +	
    +			if (!t1.equals(t2))
    +			{
    +				if (t1.length() == 0 ||
    +					t2.length() == 0)
    +				{
    +					comp = t1.compareTo(t2);
    +				}
    +				else
    +				{
    +					comp = Integer.valueOf(t1).compareTo(Integer.valueOf(t2));
    +				}
    +				
    +				break;
    +			}
    +		}
    +		
    +		// Compares path length if both paths are equal to this point
    +		if (comp == 0)
    +		{
    +			int t1 = p1.countTokens();
    +			int t2 = p2.countTokens();
    +			
    +			if (t1 != t2)
    +			{
    +				comp = (t1 > t2) ? 1 : -1;
    +			}
    +		}
    +		
    +		return comp;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/model/mxGeometry.java b/java/src/com/mxgraph/model/mxGeometry.java
    new file mode 100644
    index 000000000..08002c4dc
    --- /dev/null
    +++ b/java/src/com/mxgraph/model/mxGeometry.java
    @@ -0,0 +1,374 @@
    +/**
    + * $Id: mxGeometry.java,v 1.31 2010-08-02 13:48:25 david Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.model;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +
    +/**
    + * Represents the geometry of a cell. For vertices, the geometry consists
    + * of the x- and y-location, as well as the width and height. For edges,
    + * the geometry either defines the source- and target-terminal, or it
    + * defines the respective terminal points.
    + * 
    + * For edges, if the geometry is relative (default), then the x-coordinate
    + * is used to describe the distance from the center of the edge from -1 to 1
    + * with 0 being the center of the edge and the default value, and the
    + * y-coordinate is used to describe the absolute, orthogonal distance in
    + * pixels from that point. In addition, the offset is used as an absolute
    + * offset vector from the resulting point. 
    + */
    +public class mxGeometry extends mxRectangle
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 2649828026610336589L;
    +
    +	/**
    +	 * Global switch to translate the points in translate. Default is true.
    +	 */
    +	public static transient boolean TRANSLATE_CONTROL_POINTS = true;
    +
    +	/**
    +	 * Stores alternate values for x, y, width and height in a rectangle.
    +	 * Default is null.
    +	 */
    +	protected mxRectangle alternateBounds;
    +
    +	/**
    +	 * Defines the source- and target-point of the edge. This is used if the
    +	 * corresponding edge does not have a source vertex. Otherwise it is
    +	 * ignored. Default is null.
    +	 */
    +	protected mxPoint sourcePoint, targetPoint;
    +
    +	/**
    +	 * List of mxPoints which specifies the control points along the edge.
    +	 * These points are the intermediate points on the edge, for the endpoints
    +	 * use targetPoint and sourcePoint or set the terminals of the edge to
    +	 * a non-null value. Default is null.
    +	 */
    +	protected List<mxPoint> points;
    +
    +	/**
    +	 * Holds the offset of the label for edges. This is the absolute vector
    +	 * between the center of the edge and the top, left point of the label.
    +	 * Default is null.
    +	 */
    +	protected mxPoint offset;
    +
    +	/**
    +	 * Specifies if the coordinates in the geometry are to be interpreted as
    +	 * relative coordinates. Default is false. This is used to mark a geometry
    +	 * with an x- and y-coordinate that is used to describe an edge label
    +	 * position, or a relative location with respect to a parent cell's
    +	 * width and height.
    +	 */
    +	protected boolean relative = false;
    +
    +	/**
    +	 * Constructs a new geometry at (0, 0) with the width and height set to 0.
    +	 */
    +	public mxGeometry()
    +	{
    +		this(0, 0, 0, 0);
    +	}
    +
    +	/**
    +	 * Constructs a geometry using the given parameters.
    +	 * 
    +	 * @param x X-coordinate of the new geometry.
    +	 * @param y Y-coordinate of the new geometry.
    +	 * @param width Width of the new geometry.
    +	 * @param height Height of the new geometry.
    +	 */
    +	public mxGeometry(double x, double y, double width, double height)
    +	{
    +		super(x, y, width, height);
    +	}
    +
    +	/**
    +	 * Returns the alternate bounds.
    +	 */
    +	public mxRectangle getAlternateBounds()
    +	{
    +		return alternateBounds;
    +	}
    +
    +	/**
    +	 * Sets the alternate bounds to the given rectangle.
    +	 * 
    +	 * @param rect Rectangle to be used for the alternate bounds.
    +	 */
    +	public void setAlternateBounds(mxRectangle rect)
    +	{
    +		alternateBounds = rect;
    +	}
    +
    +	/**
    +	 * Returns the source point.
    +	 * 
    +	 * @return Returns the source point.
    +	 */
    +	public mxPoint getSourcePoint()
    +	{
    +		return sourcePoint;
    +	}
    +
    +	/**
    +	 * Sets the source point.
    +	 * 
    +	 * @param sourcePoint Source point to be used.
    +	 */
    +	public void setSourcePoint(mxPoint sourcePoint)
    +	{
    +		this.sourcePoint = sourcePoint;
    +	}
    +
    +	/**
    +	 * Returns the target point.
    +	 * 
    +	 * @return Returns the target point.
    +	 */
    +	public mxPoint getTargetPoint()
    +	{
    +		return targetPoint;
    +	}
    +
    +	/**
    +	 * Sets the target point.
    +	 * 
    +	 * @param targetPoint Target point to be used.
    +	 */
    +	public void setTargetPoint(mxPoint targetPoint)
    +	{
    +		this.targetPoint = targetPoint;
    +	}
    +
    +	/**
    +	 * Returns the list of control points.
    +	 */
    +	public List<mxPoint> getPoints()
    +	{
    +		return points;
    +	}
    +
    +	/**
    +	 * Sets the list of control points to the given list.
    +	 * 
    +	 * @param value List that contains the new control points.
    +	 */
    +	public void setPoints(List<mxPoint> value)
    +	{
    +		points = value;
    +	}
    +
    +	/**
    +	 * Returns the offset.
    +	 */
    +	public mxPoint getOffset()
    +	{
    +		return offset;
    +	}
    +
    +	/**
    +	 * Sets the offset to the given point.
    +	 * 
    +	 * @param offset Point to be used for the offset.
    +	 */
    +	public void setOffset(mxPoint offset)
    +	{
    +		this.offset = offset;
    +	}
    +
    +	/**
    +	 * Returns true of the geometry is relative.
    +	 */
    +	public boolean isRelative()
    +	{
    +		return relative;
    +	}
    +
    +	/**
    +	 * Sets the relative state of the geometry.
    +	 * 
    +	 * @param value Boolean value to be used as the new relative state.
    +	 */
    +	public void setRelative(boolean value)
    +	{
    +		relative = value;
    +	}
    +
    +	/**
    +	 * Swaps the x, y, width and height with the values stored in
    +	 * alternateBounds and puts the previous values into alternateBounds as
    +	 * a rectangle. This operation is carried-out in-place, that is, using the
    +	 * existing geometry instance. If this operation is called during a graph
    +	 * model transactional change, then the geometry should be cloned before
    +	 * calling this method and setting the geometry of the cell using
    +	 * mxGraphModel.setGeometry.
    +	 */
    +	public void swap()
    +	{
    +		if (alternateBounds != null)
    +		{
    +			mxRectangle old = new mxRectangle(getX(), getY(), getWidth(),
    +					getHeight());
    +
    +			x = alternateBounds.getX();
    +			y = alternateBounds.getY();
    +			width = alternateBounds.getWidth();
    +			height = alternateBounds.getHeight();
    +
    +			alternateBounds = old;
    +		}
    +	}
    +
    +	/**
    +	 * Returns the point representing the source or target point of this edge.
    +	 * This is only used if the edge has no source or target vertex.
    +	 * 
    +	 * @param isSource Boolean that specifies if the source or target point
    +	 * should be returned.
    +	 * @return Returns the source or target point.
    +	 */
    +	public mxPoint getTerminalPoint(boolean isSource)
    +	{
    +		return (isSource) ? sourcePoint : targetPoint;
    +	}
    +
    +	/**
    +	 * Sets the sourcePoint or targetPoint to the given point and returns the
    +	 * new point.
    +	 * 
    +	 * @param point Point to be used as the new source or target point.
    +	 * @param isSource Boolean that specifies if the source or target point
    +	 * should be set.
    +	 * @return Returns the new point.
    +	 */
    +	public mxPoint setTerminalPoint(mxPoint point, boolean isSource)
    +	{
    +		if (isSource)
    +		{
    +			sourcePoint = point;
    +		}
    +		else
    +		{
    +			targetPoint = point;
    +		}
    +
    +		return point;
    +	}
    +
    +	/**
    +	 * Translates the geometry by the specified amount. That is, x and y of the
    +	 * geometry, the sourcePoint, targetPoint and all elements of points are
    +	 * translated by the given amount. X and y are only translated if the
    +	 * geometry is not relative. If TRANSLATE_CONTROL_POINTS is false, then
    +	 * are not modified by this function.
    +	 * 
    +	 * @param dx Integer that specifies the x-coordinate of the translation.
    +	 * @param dy Integer that specifies the y-coordinate of the translation.
    +	 */
    +	public void translate(double dx, double dy)
    +	{
    +		// Translates the geometry
    +		if (!isRelative())
    +		{
    +			x += dx;
    +			y += dy;
    +		}
    +
    +		// Translates the source point
    +		if (sourcePoint != null)
    +		{
    +			sourcePoint.setX(sourcePoint.getX() + dx);
    +			sourcePoint.setY(sourcePoint.getY() + dy);
    +		}
    +
    +		// Translates the target point
    +		if (targetPoint != null)
    +		{
    +			targetPoint.setX(targetPoint.getX() + dx);
    +			targetPoint.setY(targetPoint.getY() + dy);
    +		}
    +
    +		// Translate the control points
    +		if (TRANSLATE_CONTROL_POINTS && points != null)
    +		{
    +			int count = points.size();
    +
    +			for (int i = 0; i < count; i++)
    +			{
    +				mxPoint pt = points.get(i);
    +
    +				pt.setX(pt.getX() + dx);
    +				pt.setY(pt.getY() + dy);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns a clone of the cell.
    +	 */
    +	public Object clone()
    +	{
    +		mxGeometry clone = (mxGeometry) super.clone();
    +
    +		clone.setX(getX());
    +		clone.setY(getY());
    +		clone.setWidth(getWidth());
    +		clone.setHeight(getHeight());
    +		clone.setRelative(isRelative());
    +
    +		List<mxPoint> pts = getPoints();
    +
    +		if (pts != null)
    +		{
    +			clone.points = new ArrayList<mxPoint>(pts.size());
    +
    +			for (int i = 0; i < pts.size(); i++)
    +			{
    +				clone.points.add((mxPoint) pts.get(i).clone());
    +			}
    +		}
    +
    +		mxPoint tp = getTargetPoint();
    +
    +		if (tp != null)
    +		{
    +			clone.setTargetPoint((mxPoint) tp.clone());
    +		}
    +
    +		mxPoint sp = getSourcePoint();
    +
    +		if (sp != null)
    +		{
    +			setSourcePoint((mxPoint) sp.clone());
    +		}
    +
    +		mxPoint off = getOffset();
    +
    +		if (off != null)
    +		{
    +			clone.setOffset((mxPoint) off.clone());
    +		}
    +
    +		mxRectangle alt = getAlternateBounds();
    +
    +		if (alt != null)
    +		{
    +			setAlternateBounds((mxRectangle) alt.clone());
    +		}
    +
    +		return clone;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/model/mxGraphModel.java b/java/src/com/mxgraph/model/mxGraphModel.java
    new file mode 100644
    index 000000000..85776b10f
    --- /dev/null
    +++ b/java/src/com/mxgraph/model/mxGraphModel.java
    @@ -0,0 +1,2594 @@
    +/**
    + * $Id: mxGraphModel.java,v 1.93 2012-04-16 10:49:24 david Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.model;
    +
    +import java.io.IOException;
    +import java.io.ObjectInputStream;
    +import java.io.Serializable;
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.Collection;
    +import java.util.HashSet;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxUndoableEdit;
    +
    +/**
    + * Extends mxEventSource to implement a graph model. The graph model acts as
    + * a wrapper around the cells which are in charge of storing the actual graph
    + * datastructure. The model acts as a transactional wrapper with event
    + * notification for all changes, whereas the cells contain the atomic
    + * operations for updating the actual datastructure.
    + * 
    + * Layers:
    + * 
    + * The cell hierarchy in the model must have a top-level root cell which
    + * contains the layers (typically one default layer), which in turn contain the
    + * top-level cells of the layers. This means each cell is contained in a layer.
    + * If no layers are required, then all new cells should be added to the default
    + * layer.
    + * 
    + * Layers are useful for hiding and showing groups of cells, or for placing
    + * groups of cells on top of other cells in the display. To identify a layer,
    + * the <isLayer> function is used. It returns true if the parent of the given
    + * cell is the root of the model.
    + * 
    + * This class fires the following events:
    + * 
    + * mxEvent.CHANGE fires when an undoable edit is dispatched. The <code>edit</code>
    + * property contains the mxUndoableEdit. The <code>changes</code> property
    + * contains the list of undoable changes inside the undoable edit. The changes
    + * property is deprecated, please use edit.getChanges() instead.
    + * 
    + * mxEvent.EXECUTE fires between begin- and endUpdate and after an atomic
    + * change was executed in the model. The <code>change</code> property contains
    + * the atomic change that was executed.
    + * 
    + * mxEvent.BEGIN_UPDATE fires after the updateLevel was incremented in
    + * beginUpdate. This event contains no properties.
    + * 
    + * mxEvent.END_UPDATE fires after the updateLevel was decreased in endUpdate
    + * but before any notification or change dispatching. The <code>edit</code>
    + * property contains the current mxUndoableEdit.
    + * 
    + * mxEvent.BEFORE_UNDO fires before the change is dispatched after the update
    + * level has reached 0 in endUpdate. The <code>edit</code> property contains
    + * the current mxUndoableEdit.
    + * 
    + * mxEvent.UNDO fires after the change was dispatched in endUpdate. The
    + * <code>edit</code> property contains the current mxUndoableEdit.
    + */
    +public class mxGraphModel extends mxEventSource implements mxIGraphModel,
    +		Serializable
    +{
    +
    +	/**
    +	 * Holds the root cell, which in turn contains the cells that represent the
    +	 * layers of the diagram as child cells. That is, the actual element of the
    +	 * diagram are supposed to live in the third generation of cells and below.
    +	 */
    +	protected mxICell root;
    +
    +	/**
    +	 * Maps from Ids to cells.
    +	 */
    +	protected Map<String, Object> cells;
    +
    +	/**
    +	 * Specifies if edges should automatically be moved into the nearest common
    +	 * ancestor of their terminals. Default is true.
    +	 */
    +	protected boolean maintainEdgeParent = true;
    +
    +	/**
    +	 * Specifies if the model should automatically create Ids for new cells.
    +	 * Default is true.
    +	 */
    +	protected boolean createIds = true;
    +
    +	/**
    +	 * Specifies the next Id to be created. Initial value is 0.
    +	 */
    +	protected int nextId = 0;
    +
    +	/**
    +	 * Holds the changes for the current transaction. If the transaction is
    +	 * closed then a new object is created for this variable using
    +	 * createUndoableEdit.
    +	 */
    +	protected transient mxUndoableEdit currentEdit;
    +
    +	/**
    +	 * Counter for the depth of nested transactions. Each call to beginUpdate
    +	 * increments this counter and each call to endUpdate decrements it. When
    +	 * the counter reaches 0, the transaction is closed and the respective
    +	 * events are fired. Initial value is 0.
    +	 */
    +	protected transient int updateLevel = 0;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient boolean endingUpdate = false;
    +
    +	/**
    +	 * Constructs a new empty graph model.
    +	 */
    +	public mxGraphModel()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * Constructs a new graph model. If no root is specified
    +	 * then a new root mxCell with a default layer is created.
    +	 * 
    +	 * @param root Cell that represents the root cell.
    +	 */
    +	public mxGraphModel(Object root)
    +	{
    +		currentEdit = createUndoableEdit();
    +
    +		if (root != null)
    +		{
    +			setRoot(root);
    +		}
    +		else
    +		{
    +			clear();
    +		}
    +	}
    +
    +	/**
    +	 * Sets a new root using createRoot.
    +	 */
    +	public void clear()
    +	{
    +		setRoot(createRoot());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getUpdateLevel()
    +	{
    +		return updateLevel;
    +	}
    +
    +	/**
    +	 * Creates a new root cell with a default layer (child 0).
    +	 */
    +	public Object createRoot()
    +	{
    +		mxCell root = new mxCell();
    +		root.insert(new mxCell());
    +
    +		return root;
    +	}
    +
    +	/**
    +	 * Returns the internal lookup table that is used to map from Ids to cells.
    +	 */
    +	public Map<String, Object> getCells()
    +	{
    +		return cells;
    +	}
    +
    +	/**
    +	 * Returns the cell for the specified Id or null if no cell can be
    +	 * found for the given Id.
    +	 * 
    +	 * @param id A string representing the Id of the cell.
    +	 * @return Returns the cell for the given Id.
    +	 */
    +	public Object getCell(String id)
    +	{
    +		Object result = null;
    +
    +		if (cells != null)
    +		{
    +			result = cells.get(id);
    +		}
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns true if the model automatically update parents of edges so that
    +	 * the edge is contained in the nearest-common-ancestor of its terminals.
    +	 * 
    +	 * @return Returns true if the model maintains edge parents.
    +	 */
    +	public boolean isMaintainEdgeParent()
    +	{
    +		return maintainEdgeParent;
    +	}
    +
    +	/**
    +	 * Specifies if the model automatically updates parents of edges so that
    +	 * the edge is contained in the nearest-common-ancestor of its terminals.
    +	 * 
    +	 * @param maintainEdgeParent Boolean indicating if the model should
    +	 * maintain edge parents.
    +	 */
    +	public void setMaintainEdgeParent(boolean maintainEdgeParent)
    +	{
    +		this.maintainEdgeParent = maintainEdgeParent;
    +	}
    +
    +	/**
    +	 * Returns true if the model automatically creates Ids and resolves Id
    +	 * collisions.
    +	 * 
    +	 * @return Returns true if the model creates Ids.
    +	 */
    +	public boolean isCreateIds()
    +	{
    +		return createIds;
    +	}
    +
    +	/**
    +	 * Specifies if the model automatically creates Ids for new cells and
    +	 * resolves Id collisions.
    +	 * 
    +	 * @param value Boolean indicating if the model should created Ids.
    +	 */
    +	public void setCreateIds(boolean value)
    +	{
    +		createIds = value;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getRoot()
    +	 */
    +	public Object getRoot()
    +	{
    +		return root;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#setRoot(Object)
    +	 */
    +	public Object setRoot(Object root)
    +	{
    +		execute(new mxRootChange(this, root));
    +
    +		return root;
    +	}
    +
    +	/**
    +	 * Inner callback to change the root of the model and update the internal
    +	 * datastructures, such as cells and nextId. Returns the previous root.
    +	 */
    +	protected Object rootChanged(Object root)
    +	{
    +		Object oldRoot = this.root;
    +		this.root = (mxICell) root;
    +
    +		// Resets counters and datastructures
    +		nextId = 0;
    +		cells = null;
    +		cellAdded(root);
    +
    +		return oldRoot;
    +	}
    +
    +	/**
    +	 * Creates a new undoable edit.
    +	 */
    +	protected mxUndoableEdit createUndoableEdit()
    +	{
    +		return new mxUndoableEdit(this)
    +		{
    +			public void dispatch()
    +			{
    +				// LATER: Remove changes property (deprecated)
    +				((mxGraphModel) source).fireEvent(new mxEventObject(
    +						mxEvent.CHANGE, "edit", this, "changes", changes));
    +			}
    +		};
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#cloneCells(Object[], boolean)
    +	 */
    +	public Object[] cloneCells(Object[] cells, boolean includeChildren)
    +	{
    +		Map<Object, Object> mapping = new Hashtable<Object, Object>();
    +		Object[] clones = new Object[cells.length];
    +
    +		for (int i = 0; i < cells.length; i++)
    +		{
    +			try
    +			{
    +				clones[i] = cloneCell(cells[i], mapping, includeChildren);
    +			}
    +			catch (CloneNotSupportedException e)
    +			{
    +				// ignore
    +			}
    +		}
    +
    +		for (int i = 0; i < cells.length; i++)
    +		{
    +			restoreClone(clones[i], cells[i], mapping);
    +		}
    +
    +		return clones;
    +	}
    +
    +	/**
    +	 * Inner helper method for cloning cells recursively.
    +	 */
    +	protected Object cloneCell(Object cell, Map<Object, Object> mapping,
    +			boolean includeChildren) throws CloneNotSupportedException
    +	{
    +		if (cell instanceof mxICell)
    +		{
    +			mxICell mxc = (mxICell) ((mxICell) cell).clone();
    +			mapping.put(cell, mxc);
    +
    +			if (includeChildren)
    +			{
    +				int childCount = getChildCount(cell);
    +
    +				for (int i = 0; i < childCount; i++)
    +				{
    +					Object clone = cloneCell(getChildAt(cell, i), mapping, true);
    +					mxc.insert((mxICell) clone);
    +				}
    +			}
    +
    +			return mxc;
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Inner helper method for restoring the connections in
    +	 * a network of cloned cells.
    +	 */
    +	protected void restoreClone(Object clone, Object cell,
    +			Map<Object, Object> mapping)
    +	{
    +		if (clone instanceof mxICell)
    +		{
    +			mxICell mxc = (mxICell) clone;
    +			Object source = getTerminal(cell, true);
    +
    +			if (source instanceof mxICell)
    +			{
    +				mxICell tmp = (mxICell) mapping.get(source);
    +
    +				if (tmp != null)
    +				{
    +					tmp.insertEdge(mxc, true);
    +				}
    +			}
    +
    +			Object target = getTerminal(cell, false);
    +
    +			if (target instanceof mxICell)
    +			{
    +				mxICell tmp = (mxICell) mapping.get(target);
    +
    +				if (tmp != null)
    +				{
    +					tmp.insertEdge(mxc, false);
    +				}
    +			}
    +		}
    +
    +		int childCount = getChildCount(clone);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			restoreClone(getChildAt(clone, i), getChildAt(cell, i), mapping);
    +		}
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#isAncestor(Object, Object)
    +	 */
    +	public boolean isAncestor(Object parent, Object child)
    +	{
    +		while (child != null && child != parent)
    +		{
    +			child = getParent(child);
    +		}
    +
    +		return child == parent;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#contains(Object)
    +	 */
    +	public boolean contains(Object cell)
    +	{
    +		return isAncestor(getRoot(), cell);
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getParent(Object)
    +	 */
    +	public Object getParent(Object child)
    +	{
    +		return (child instanceof mxICell) ? ((mxICell) child).getParent()
    +				: null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#add(Object, Object, int)
    +	 */
    +	public Object add(Object parent, Object child, int index)
    +	{
    +		if (child != parent && parent != null && child != null)
    +		{
    +			boolean parentChanged = parent != getParent(child);
    +			execute(new mxChildChange(this, parent, child, index));
    +
    +			// Maintains the edges parents by moving the edges
    +			// into the nearest common ancestor of its
    +			// terminals
    +			if (maintainEdgeParent && parentChanged)
    +			{
    +				updateEdgeParents(child);
    +			}
    +		}
    +
    +		return child;
    +	}
    +
    +	/**
    +	 * Invoked after a cell has been added to a parent. This recursively
    +	 * creates an Id for the new cell and/or resolves Id collisions.
    +	 * 
    +	 * @param cell Cell that has been added.
    +	 */
    +	protected void cellAdded(Object cell)
    +	{
    +		if (cell instanceof mxICell)
    +		{
    +			mxICell mxc = (mxICell) cell;
    +
    +			if (mxc.getId() == null && isCreateIds())
    +			{
    +				mxc.setId(createId(cell));
    +			}
    +
    +			if (mxc.getId() != null)
    +			{
    +				Object collision = getCell(mxc.getId());
    +
    +				if (collision != cell)
    +				{
    +					while (collision != null)
    +					{
    +						mxc.setId(createId(cell));
    +						collision = getCell(mxc.getId());
    +					}
    +
    +					if (cells == null)
    +					{
    +						cells = new Hashtable<String, Object>();
    +					}
    +
    +					cells.put(mxc.getId(), cell);
    +				}
    +			}
    +
    +			// Makes sure IDs of deleted cells are not reused
    +			try
    +			{
    +				int id = Integer.parseInt(mxc.getId());
    +				nextId = Math.max(nextId, id + 1);
    +			}
    +			catch (NumberFormatException e)
    +			{
    +				// ignore
    +			}
    +
    +			int childCount = mxc.getChildCount();
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				cellAdded(mxc.getChildAt(i));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Creates a new Id for the given cell and increments the global counter
    +	 * for creating new Ids.
    +	 * 
    +	 * @param cell Cell for which a new Id should be created.
    +	 * @return Returns a new Id for the given cell.
    +	 */
    +	public String createId(Object cell)
    +	{
    +		String id = String.valueOf(nextId);
    +		nextId++;
    +
    +		return id;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#remove(Object)
    +	 */
    +	public Object remove(Object cell)
    +	{
    +		if (cell == root)
    +		{
    +			setRoot(null);
    +		}
    +		else if (getParent(cell) != null)
    +		{
    +			execute(new mxChildChange(this, null, cell));
    +		}
    +
    +		return cell;
    +	}
    +
    +	/**
    +	 * Invoked after a cell has been removed from the model. This recursively
    +	 * removes the cell from its terminals and removes the mapping from the Id
    +	 * to the cell.
    +	 * 
    +	 * @param cell Cell that has been removed.
    +	 */
    +	protected void cellRemoved(Object cell)
    +	{
    +		if (cell instanceof mxICell)
    +		{
    +			mxICell mxc = (mxICell) cell;
    +			int childCount = mxc.getChildCount();
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				cellRemoved(mxc.getChildAt(i));
    +			}
    +
    +			if (cells != null && mxc.getId() != null)
    +			{
    +				cells.remove(mxc.getId());
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Inner callback to update the parent of a cell using mxCell.insert
    +	 * on the parent and return the previous parent.
    +	 */
    +	protected Object parentForCellChanged(Object cell, Object parent, int index)
    +	{
    +		mxICell child = (mxICell) cell;
    +		mxICell previous = (mxICell) getParent(cell);
    +
    +		if (parent != null)
    +		{
    +			if (parent != previous || previous.getIndex(child) != index)
    +			{
    +				((mxICell) parent).insert(child, index);
    +			}
    +		}
    +		else if (previous != null)
    +		{
    +			int oldIndex = previous.getIndex(child);
    +			previous.remove(oldIndex);
    +		}
    +
    +		// Checks if the previous parent was already in the
    +		// model and avoids calling cellAdded if it was.
    +		if (!contains(previous) && parent != null)
    +		{
    +			cellAdded(cell);
    +		}
    +		else if (parent == null)
    +		{
    +			cellRemoved(cell);
    +		}
    +
    +		return previous;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getChildCount(Object)
    +	 */
    +	public int getChildCount(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).getChildCount() : 0;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getChildAt(Object, int)
    +	 */
    +	public Object getChildAt(Object parent, int index)
    +	{
    +		return (parent instanceof mxICell) ? ((mxICell) parent)
    +				.getChildAt(index) : null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getTerminal(Object, boolean)
    +	 */
    +	public Object getTerminal(Object edge, boolean isSource)
    +	{
    +		return (edge instanceof mxICell) ? ((mxICell) edge)
    +				.getTerminal(isSource) : null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#setTerminal(Object, Object, boolean)
    +	 */
    +	public Object setTerminal(Object edge, Object terminal, boolean isSource)
    +	{
    +		boolean terminalChanged = terminal != getTerminal(edge, isSource);
    +		execute(new mxTerminalChange(this, edge, terminal, isSource));
    +
    +		if (maintainEdgeParent && terminalChanged)
    +		{
    +			updateEdgeParent(edge, getRoot());
    +		}
    +
    +		return terminal;
    +	}
    +
    +	/**
    +	 * Inner helper function to update the terminal of the edge using
    +	 * mxCell.insertEdge and return the previous terminal.
    +	 */
    +	protected Object terminalForCellChanged(Object edge, Object terminal,
    +			boolean isSource)
    +	{
    +		mxICell previous = (mxICell) getTerminal(edge, isSource);
    +
    +		if (terminal != null)
    +		{
    +			((mxICell) terminal).insertEdge((mxICell) edge, isSource);
    +		}
    +		else if (previous != null)
    +		{
    +			previous.removeEdge((mxICell) edge, isSource);
    +		}
    +
    +		return previous;
    +	}
    +
    +	/**
    +	 * Updates the parents of the edges connected to the given cell and all its
    +	 * descendants so that each edge is contained in the nearest common
    +	 * ancestor.
    +	 * 
    +	 * @param cell Cell whose edges should be checked and updated.
    +	 */
    +	public void updateEdgeParents(Object cell)
    +	{
    +		updateEdgeParents(cell, getRoot());
    +	}
    +
    +	/**
    +	 * Updates the parents of the edges connected to the given cell and all its
    +	 * descendants so that the edge is contained in the nearest-common-ancestor.
    +	 * 
    +	 * @param cell Cell whose edges should be checked and updated.
    +	 * @param root Root of the cell hierarchy that contains all cells.
    +	 */
    +	public void updateEdgeParents(Object cell, Object root)
    +	{
    +		// Updates edges on children first
    +		int childCount = getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object child = getChildAt(cell, i);
    +			updateEdgeParents(child, root);
    +		}
    +
    +		// Updates the parents of all connected edges
    +		int edgeCount = getEdgeCount(cell);
    +		List<Object> edges = new ArrayList<Object>(edgeCount);
    +
    +		for (int i = 0; i < edgeCount; i++)
    +		{
    +			edges.add(getEdgeAt(cell, i));
    +		}
    +
    +		Iterator<Object> it = edges.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			Object edge = it.next();
    +
    +			// Updates edge parent if edge and child have
    +			// a common root node (does not need to be the
    +			// model root node)
    +			if (isAncestor(root, edge))
    +			{
    +				updateEdgeParent(edge, root);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Inner helper method to update the parent of the specified edge to the
    +	 * nearest-common-ancestor of its two terminals.
    +	 *
    +	 * @param edge Specifies the edge to be updated.
    +	 * @param root Current root of the model.
    +	 */
    +	public void updateEdgeParent(Object edge, Object root)
    +	{
    +		Object source = getTerminal(edge, true);
    +		Object target = getTerminal(edge, false);
    +		Object cell = null;
    +		
    +		// Uses the first non-relative descendants of the source terminal
    +		while (source != null && !isEdge(source) &&
    +			getGeometry(source) != null && getGeometry(source).isRelative())
    +		{
    +			source = getParent(source);
    +		}
    +		
    +		// Uses the first non-relative descendants of the target terminal
    +		while (target != null && !isEdge(target) &&
    +			getGeometry(target) != null && getGeometry(target).isRelative())
    +		{
    +			target = getParent(target);
    +		}
    +		
    +		if (isAncestor(root, source) && isAncestor(root, target))
    +		{
    +			if (source == target)
    +			{
    +				cell = getParent(source);
    +			}
    +			else
    +			{
    +				cell = getNearestCommonAncestor(source, target);
    +			}
    +
    +			// Keeps the edge in the same layer
    +			if (cell != null
    +					&& (getParent(cell) != root || isAncestor(cell, edge))
    +					&& getParent(edge) != cell)
    +			{
    +				mxGeometry geo = getGeometry(edge);
    +
    +				if (geo != null)
    +				{
    +					mxPoint origin1 = getOrigin(getParent(edge));
    +					mxPoint origin2 = getOrigin(cell);
    +
    +					double dx = origin2.getX() - origin1.getX();
    +					double dy = origin2.getY() - origin1.getY();
    +
    +					geo = (mxGeometry) geo.clone();
    +					geo.translate(-dx, -dy);
    +					setGeometry(edge, geo);
    +				}
    +
    +				add(cell, edge, getChildCount(cell));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the absolute, accumulated origin for the children inside the
    +	 * given parent. 
    +	 */
    +	public mxPoint getOrigin(Object cell)
    +	{
    +		mxPoint result = null;
    +
    +		if (cell != null)
    +		{
    +			result = getOrigin(getParent(cell));
    +
    +			if (!isEdge(cell))
    +			{
    +				mxGeometry geo = getGeometry(cell);
    +
    +				if (geo != null)
    +				{
    +					result.setX(result.getX() + geo.getX());
    +					result.setY(result.getY() + geo.getY());
    +				}
    +			}
    +		}
    +		else
    +		{
    +			result = new mxPoint();
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the nearest common ancestor for the specified cells.
    +	 *
    +	 * @param cell1 Cell that specifies the first cell in the tree.
    +	 * @param cell2 Cell that specifies the second cell in the tree.
    +	 * @return Returns the nearest common ancestor of the given cells.
    +	 */
    +	public Object getNearestCommonAncestor(Object cell1, Object cell2)
    +	{
    +		if (cell1 != null && cell2 != null)
    +		{
    +			// Creates the cell path for the second cell
    +			String path = mxCellPath.create((mxICell) cell2);
    +
    +			if (path != null && path.length() > 0)
    +			{
    +				// Bubbles through the ancestors of the first
    +				// cell to find the nearest common ancestor.
    +				Object cell = cell1;
    +				String current = mxCellPath.create((mxICell) cell);
    +
    +				while (cell != null)
    +				{
    +					Object parent = getParent(cell);
    +
    +					// Checks if the cell path is equal to the beginning
    +					// of the given cell path
    +					if (path.indexOf(current + mxCellPath.PATH_SEPARATOR) == 0
    +							&& parent != null)
    +					{
    +						return cell;
    +					}
    +
    +					current = mxCellPath.getParentPath(current);
    +					cell = parent;
    +				}
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getEdgeCount(Object)
    +	 */
    +	public int getEdgeCount(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).getEdgeCount() : 0;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getEdgeAt(Object, int)
    +	 */
    +	public Object getEdgeAt(Object parent, int index)
    +	{
    +		return (parent instanceof mxICell) ? ((mxICell) parent)
    +				.getEdgeAt(index) : null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#isVertex(Object)
    +	 */
    +	public boolean isVertex(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).isVertex() : false;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#isEdge(Object)
    +	 */
    +	public boolean isEdge(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).isEdge() : false;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#isConnectable(Object)
    +	 */
    +	public boolean isConnectable(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).isConnectable()
    +				: true;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getValue(Object)
    +	 */
    +	public Object getValue(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).getValue() : null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#setValue(Object, Object)
    +	 */
    +	public Object setValue(Object cell, Object value)
    +	{
    +		execute(new mxValueChange(this, cell, value));
    +
    +		return value;
    +	}
    +
    +	/**
    +	 * Inner callback to update the user object of the given mxCell
    +	 * using mxCell.setValue and return the previous value,
    +	 * that is, the return value of mxCell.getValue.
    +	 */
    +	protected Object valueForCellChanged(Object cell, Object value)
    +	{
    +		Object oldValue = ((mxICell) cell).getValue();
    +		((mxICell) cell).setValue(value);
    +
    +		return oldValue;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getGeometry(Object)
    +	 */
    +	public mxGeometry getGeometry(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).getGeometry()
    +				: null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#setGeometry(Object, mxGeometry)
    +	 */
    +	public mxGeometry setGeometry(Object cell, mxGeometry geometry)
    +	{
    +		if (geometry != getGeometry(cell))
    +		{
    +			execute(new mxGeometryChange(this, cell, geometry));
    +		}
    +
    +		return geometry;
    +	}
    +
    +	/**
    +	 * Inner callback to update the mxGeometry of the given mxCell using
    +	 * mxCell.setGeometry and return the previous mxGeometry.
    +	 */
    +	protected mxGeometry geometryForCellChanged(Object cell, mxGeometry geometry)
    +	{
    +		mxGeometry previous = getGeometry(cell);
    +		((mxICell) cell).setGeometry(geometry);
    +
    +		return previous;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#getStyle(Object)
    +	 */
    +	public String getStyle(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).getStyle() : null;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#setStyle(Object, String)
    +	 */
    +	public String setStyle(Object cell, String style)
    +	{
    +		if (style == null || !style.equals(getStyle(cell)))
    +		{
    +			execute(new mxStyleChange(this, cell, style));
    +		}
    +
    +		return style;
    +	}
    +
    +	/**
    +	 * Inner callback to update the style of the given mxCell
    +	 * using mxCell.setStyle and return the previous style.
    +	 */
    +	protected String styleForCellChanged(Object cell, String style)
    +	{
    +		String previous = getStyle(cell);
    +		((mxICell) cell).setStyle(style);
    +
    +		return previous;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#isCollapsed(Object)
    +	 */
    +	public boolean isCollapsed(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).isCollapsed()
    +				: false;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#setCollapsed(Object, boolean)
    +	 */
    +	public boolean setCollapsed(Object cell, boolean collapsed)
    +	{
    +		if (collapsed != isCollapsed(cell))
    +		{
    +			execute(new mxCollapseChange(this, cell, collapsed));
    +		}
    +
    +		return collapsed;
    +	}
    +
    +	/**
    +	 * Inner callback to update the collapsed state of the
    +	 * given mxCell using mxCell.setCollapsed and return
    +	 * the previous collapsed state.
    +	 */
    +	protected boolean collapsedStateForCellChanged(Object cell,
    +			boolean collapsed)
    +	{
    +		boolean previous = isCollapsed(cell);
    +		((mxICell) cell).setCollapsed(collapsed);
    +
    +		return previous;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#isVisible(Object)
    +	 */
    +	public boolean isVisible(Object cell)
    +	{
    +		return (cell instanceof mxICell) ? ((mxICell) cell).isVisible() : false;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#setVisible(Object, boolean)
    +	 */
    +	public boolean setVisible(Object cell, boolean visible)
    +	{
    +		if (visible != isVisible(cell))
    +		{
    +			execute(new mxVisibleChange(this, cell, visible));
    +		}
    +
    +		return visible;
    +	}
    +
    +	/**
    +	 * Sets the visible state of the given mxCell using mxVisibleChange and
    +	 * adds the change to the current transaction.
    +	 */
    +	protected boolean visibleStateForCellChanged(Object cell, boolean visible)
    +	{
    +		boolean previous = isVisible(cell);
    +		((mxICell) cell).setVisible(visible);
    +
    +		return previous;
    +	}
    +
    +	/**
    +	 * Executes the given atomic change and adds it to the current edit.
    +	 * 
    +	 * @param change Atomic change to be executed.
    +	 */
    +	public void execute(mxAtomicGraphModelChange change)
    +	{
    +		change.execute();
    +		beginUpdate();
    +		currentEdit.add(change);
    +		fireEvent(new mxEventObject(mxEvent.EXECUTE, "change", change));
    +		endUpdate();
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#beginUpdate()
    +	 */
    +	public void beginUpdate()
    +	{
    +		updateLevel++;
    +		fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE));
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see com.mxgraph.model.mxIGraphModel#endUpdate()
    +	 */
    +	public void endUpdate()
    +	{
    +		updateLevel--;
    +
    +		if (!endingUpdate)
    +		{
    +			endingUpdate = updateLevel == 0;
    +			fireEvent(new mxEventObject(mxEvent.END_UPDATE, "edit", currentEdit));
    +
    +			try
    +			{
    +				if (endingUpdate && !currentEdit.isEmpty())
    +				{
    +					fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO, "edit",
    +							currentEdit));
    +					mxUndoableEdit tmp = currentEdit;
    +					currentEdit = createUndoableEdit();
    +					tmp.dispatch();
    +					fireEvent(new mxEventObject(mxEvent.UNDO, "edit", tmp));
    +				}
    +			}
    +			finally
    +			{
    +				endingUpdate = false;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Merges the children of the given cell into the given target cell inside
    +	 * this model. All cells are cloned unless there is a corresponding cell in
    +	 * the model with the same id, in which case the source cell is ignored and
    +	 * all edges are connected to the corresponding cell in this model. Edges
    +	 * are considered to have no identity and are always cloned unless the
    +	 * cloneAllEdges flag is set to false, in which case edges with the same
    +	 * id in the target model are reconnected to reflect the terminals of the
    +	 * source edges.
    +	 * 
    +	 * @param from
    +	 * @param to
    +	 * @param cloneAllEdges
    +	 */
    +	public void mergeChildren(mxICell from, mxICell to, boolean cloneAllEdges)
    +			throws CloneNotSupportedException
    +	{
    +		beginUpdate();
    +		try
    +		{
    +			Hashtable<Object, Object> mapping = new Hashtable<Object, Object>();
    +			mergeChildrenImpl(from, to, cloneAllEdges, mapping);
    +
    +			// Post-processes all edges in the mapping and
    +			// reconnects the terminals to the corresponding
    +			// cells in the target model
    +			Iterator<Object> it = mapping.keySet().iterator();
    +
    +			while (it.hasNext())
    +			{
    +				Object edge = it.next();
    +				Object cell = mapping.get(edge);
    +				Object terminal = getTerminal(edge, true);
    +
    +				if (terminal != null)
    +				{
    +					terminal = mapping.get(terminal);
    +					setTerminal(cell, terminal, true);
    +				}
    +
    +				terminal = getTerminal(edge, false);
    +
    +				if (terminal != null)
    +				{
    +					terminal = mapping.get(terminal);
    +					setTerminal(cell, terminal, false);
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * Clones the children of the source cell into the given target cell in
    +	 * this model and adds an entry to the mapping that maps from the source
    +	 * cell to the target cell with the same id or the clone of the source cell
    +	 * that was inserted into this model.
    +	 */
    +	protected void mergeChildrenImpl(mxICell from, mxICell to,
    +			boolean cloneAllEdges, Hashtable<Object, Object> mapping)
    +			throws CloneNotSupportedException
    +	{
    +		beginUpdate();
    +		try
    +		{
    +			int childCount = from.getChildCount();
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				mxICell cell = from.getChildAt(i);
    +				String id = cell.getId();
    +				mxICell target = (mxICell) ((id != null && (!isEdge(cell) || !cloneAllEdges)) ? getCell(id)
    +						: null);
    +
    +				// Clones and adds the child if no cell exists for the id
    +				if (target == null)
    +				{
    +					mxCell clone = (mxCell) cell.clone();
    +					clone.setId(id);
    +
    +					// Do *NOT* use model.add as this will move the edge away
    +					// from the parent in updateEdgeParent if maintainEdgeParent
    +					// is enabled in the target model
    +					target = to.insert(clone);
    +					cellAdded(target);
    +				}
    +
    +				// Stores the mapping for later reconnecting edges
    +				mapping.put(cell, target);
    +
    +				// Recurses
    +				mergeChildrenImpl(cell, target, cloneAllEdges, mapping);
    +			}
    +		}
    +		finally
    +		{
    +			endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * Initializes the currentEdit field if the model is deserialized.
    +	 */
    +	private void readObject(ObjectInputStream ois) throws IOException,
    +			ClassNotFoundException
    +	{
    +		ois.defaultReadObject();
    +		currentEdit = createUndoableEdit();
    +	}
    +
    +	/**
    +	 * Returns the number of incoming or outgoing edges.
    +	 * 
    +	 * @param model Graph model that contains the connection data.
    +	 * @param cell Cell whose edges should be counted.
    +	 * @param outgoing Boolean that specifies if the number of outgoing or
    +	 * incoming edges should be returned.
    +	 * @return Returns the number of incoming or outgoing edges.
    +	 */
    +	public static int getDirectedEdgeCount(mxIGraphModel model, Object cell,
    +			boolean outgoing)
    +	{
    +		return getDirectedEdgeCount(model, cell, outgoing, null);
    +	}
    +
    +	/**
    +	 * Returns the number of incoming or outgoing edges, ignoring the given
    +	 * edge.
    +	 *
    +	 * @param model Graph model that contains the connection data.
    +	 * @param cell Cell whose edges should be counted.
    +	 * @param outgoing Boolean that specifies if the number of outgoing or
    +	 * incoming edges should be returned.
    +	 * @param ignoredEdge Object that represents an edge to be ignored.
    +	 * @return Returns the number of incoming or outgoing edges.
    +	 */
    +	public static int getDirectedEdgeCount(mxIGraphModel model, Object cell,
    +			boolean outgoing, Object ignoredEdge)
    +	{
    +		int count = 0;
    +		int edgeCount = model.getEdgeCount(cell);
    +
    +		for (int i = 0; i < edgeCount; i++)
    +		{
    +			Object edge = model.getEdgeAt(cell, i);
    +
    +			if (edge != ignoredEdge
    +					&& model.getTerminal(edge, outgoing) == cell)
    +			{
    +				count++;
    +			}
    +		}
    +
    +		return count;
    +	}
    +
    +	/**
    +	 * Returns all edges connected to this cell including loops.
    +	 *
    +	 * @param model Model that contains the connection information.
    +	 * @param cell Cell whose connections should be returned.
    +	 * @return Returns the array of connected edges for the given cell.
    +	 */
    +	public static Object[] getEdges(mxIGraphModel model, Object cell)
    +	{
    +		return getEdges(model, cell, true, true, true);
    +	}
    +
    +	/**
    +	 * Returns all edges connected to this cell without loops.
    +	 *
    +	 * @param model Model that contains the connection information.
    +	 * @param cell Cell whose connections should be returned.
    +	 * @return Returns the connected edges for the given cell.
    +	 */
    +	public static Object[] getConnections(mxIGraphModel model, Object cell)
    +	{
    +		return getEdges(model, cell, true, true, false);
    +	}
    +
    +	/**
    +	 * Returns the incoming edges of the given cell without loops.
    +	 * 
    +	 * @param model Graphmodel that contains the edges.
    +	 * @param cell Cell whose incoming edges should be returned.
    +	 * @return Returns the incoming edges for the given cell.
    +	 */
    +	public static Object[] getIncomingEdges(mxIGraphModel model, Object cell)
    +	{
    +		return getEdges(model, cell, true, false, false);
    +	}
    +
    +	/**
    +	 * Returns the outgoing edges of the given cell without loops.
    +	 * 
    +	 * @param model Graphmodel that contains the edges.
    +	 * @param cell Cell whose outgoing edges should be returned.
    +	 * @return Returns the outgoing edges for the given cell.
    +	 */
    +	public static Object[] getOutgoingEdges(mxIGraphModel model, Object cell)
    +	{
    +		return getEdges(model, cell, false, true, false);
    +	}
    +
    +	/**
    +	 * Returns all distinct edges connected to this cell.
    +	 *
    +	 * @param model Model that contains the connection information.
    +	 * @param cell Cell whose connections should be returned.
    +	 * @param incoming Specifies if incoming edges should be returned.
    +	 * @param outgoing Specifies if outgoing edges should be returned.
    +	 * @param includeLoops Specifies if loops should be returned.
    +	 * @return Returns the array of connected edges for the given cell.
    +	 */
    +	public static Object[] getEdges(mxIGraphModel model, Object cell,
    +			boolean incoming, boolean outgoing, boolean includeLoops)
    +	{
    +		int edgeCount = model.getEdgeCount(cell);
    +		List<Object> result = new ArrayList<Object>(edgeCount);
    +
    +		for (int i = 0; i < edgeCount; i++)
    +		{
    +			Object edge = model.getEdgeAt(cell, i);
    +			Object source = model.getTerminal(edge, true);
    +			Object target = model.getTerminal(edge, false);
    +
    +			if ((includeLoops && source == target)
    +					|| ((source != target) && ((incoming && target == cell) || (outgoing && source == cell))))
    +			{
    +				result.add(edge);
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Returns all edges from the given source to the given target.
    +	 * 
    +	 * @param model The graph model that contains the graph.
    +	 * @param source Object that defines the source cell.
    +	 * @param target Object that defines the target cell.
    +	 * @return Returns all edges from source to target.
    +	 */
    +	public static Object[] getEdgesBetween(mxIGraphModel model, Object source,
    +			Object target)
    +	{
    +		return getEdgesBetween(model, source, target, false);
    +	}
    +
    +	/**
    +	 * Returns all edges between the given source and target pair. If directed
    +	 * is true, then only edges from the source to the target are returned,
    +	 * otherwise, all edges between the two cells are returned.
    +	 * 
    +	 * @param model The graph model that contains the graph.
    +	 * @param source Object that defines the source cell.
    +	 * @param target Object that defines the target cell.
    +	 * @param directed Boolean that specifies if the direction of the edge
    +	 * should be taken into account.
    +	 * @return Returns all edges between the given source and target.
    +	 */
    +	public static Object[] getEdgesBetween(mxIGraphModel model, Object source,
    +			Object target, boolean directed)
    +	{
    +		int tmp1 = model.getEdgeCount(source);
    +		int tmp2 = model.getEdgeCount(target);
    +
    +		// Assumes the source has less connected edges
    +		Object terminal = source;
    +		int edgeCount = tmp1;
    +
    +		// Uses the smaller array of connected edges
    +		// for searching the edge
    +		if (tmp2 < tmp1)
    +		{
    +			edgeCount = tmp2;
    +			terminal = target;
    +		}
    +
    +		List<Object> result = new ArrayList<Object>(edgeCount);
    +
    +		// Checks if the edge is connected to the correct
    +		// cell and returns the first match
    +		for (int i = 0; i < edgeCount; i++)
    +		{
    +			Object edge = model.getEdgeAt(terminal, i);
    +			Object src = model.getTerminal(edge, true);
    +			Object trg = model.getTerminal(edge, false);
    +			boolean directedMatch = (src == source) && (trg == target);
    +			boolean oppositeMatch = (trg == source) && (src == target);
    +
    +			if (directedMatch || (!directed && oppositeMatch))
    +			{
    +				result.add(edge);
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Returns all opposite cells of terminal for the given edges.
    +	 * 
    +	 * @param model Model that contains the connection information.
    +	 * @param edges Array of edges to be examined.
    +	 * @param terminal Cell that specifies the known end of the edges.
    +	 * @return Returns the opposite cells of the given terminal.
    +	 */
    +	public static Object[] getOpposites(mxIGraphModel model, Object[] edges,
    +			Object terminal)
    +	{
    +		return getOpposites(model, edges, terminal, true, true);
    +	}
    +
    +	/**
    +	 * Returns all opposite vertices wrt terminal for the given edges, only
    +	 * returning sources and/or targets as specified. The result is returned as
    +	 * an array of mxCells.
    +	 * 
    +	 * @param model Model that contains the connection information.
    +	 * @param edges Array of edges to be examined.
    +	 * @param terminal Cell that specifies the known end of the edges.
    +	 * @param sources Boolean that specifies if source terminals should
    +	 * be contained in the result. Default is true.
    +	 * @param targets Boolean that specifies if target terminals should
    +	 * be contained in the result. Default is true.
    +	 * @return Returns the array of opposite terminals for the given edges.
    +	 */
    +	public static Object[] getOpposites(mxIGraphModel model, Object[] edges,
    +			Object terminal, boolean sources, boolean targets)
    +	{
    +		List<Object> terminals = new ArrayList<Object>();
    +
    +		if (edges != null)
    +		{
    +			for (int i = 0; i < edges.length; i++)
    +			{
    +				Object source = model.getTerminal(edges[i], true);
    +				Object target = model.getTerminal(edges[i], false);
    +
    +				// Checks if the terminal is the source of
    +				// the edge and if the target should be
    +				// stored in the result
    +				if (targets && source == terminal && target != null
    +						&& target != terminal)
    +				{
    +					terminals.add(target);
    +				}
    +
    +				// Checks if the terminal is the taget of
    +				// the edge and if the source should be
    +				// stored in the result
    +				else if (sources && target == terminal && source != null
    +						&& source != terminal)
    +				{
    +					terminals.add(source);
    +				}
    +			}
    +		}
    +
    +		return terminals.toArray();
    +	}
    +
    +	/**
    +	 * Sets the source and target of the given edge in a single atomic change.
    +	 * 
    +	 * @param edge Cell that specifies the edge.
    +	 * @param source Cell that specifies the new source terminal.
    +	 * @param target Cell that specifies the new target terminal.
    +	 */
    +	public static void setTerminals(mxIGraphModel model, Object edge,
    +			Object source, Object target)
    +	{
    +		model.beginUpdate();
    +		try
    +		{
    +			model.setTerminal(edge, source, true);
    +			model.setTerminal(edge, target, false);
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * Returns all children of the given cell regardless of their type.
    +	 *
    +	 * @param model Model that contains the hierarchical information.
    +	 * @param parent Cell whose child vertices or edges should be returned.
    +	 * @return Returns the child vertices and/or edges of the given parent.
    +	 */
    +	public static Object[] getChildren(mxIGraphModel model, Object parent)
    +	{
    +		return getChildCells(model, parent, false, false);
    +	}
    +
    +	/**
    +	 * Returns the child vertices of the given parent.
    +	 *
    +	 * @param model Model that contains the hierarchical information.
    +	 * @param parent Cell whose child vertices should be returned.
    +	 * @return Returns the child vertices of the given parent.
    +	 */
    +	public static Object[] getChildVertices(mxIGraphModel model, Object parent)
    +	{
    +		return getChildCells(model, parent, true, false);
    +	}
    +
    +	/**
    +	 * Returns the child edges of the given parent.
    +	 *
    +	 * @param model Model that contains the hierarchical information.
    +	 * @param parent Cell whose child edges should be returned.
    +	 * @return Returns the child edges of the given parent.
    +	 */
    +	public static Object[] getChildEdges(mxIGraphModel model, Object parent)
    +	{
    +		return getChildCells(model, parent, false, true);
    +	}
    +
    +	/**
    +	 * Returns the children of the given cell that are vertices and/or edges
    +	 * depending on the arguments. If both arguments are false then all
    +	 * children are returned regardless of their type.
    +	 *
    +	 * @param model Model that contains the hierarchical information.
    +	 * @param parent Cell whose child vertices or edges should be returned.
    +	 * @param vertices Boolean indicating if child vertices should be returned.
    +	 * @param edges Boolean indicating if child edges should be returned.
    +	 * @return Returns the child vertices and/or edges of the given parent.
    +	 */
    +	public static Object[] getChildCells(mxIGraphModel model, Object parent,
    +			boolean vertices, boolean edges)
    +	{
    +		int childCount = model.getChildCount(parent);
    +		List<Object> result = new ArrayList<Object>(childCount);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object child = model.getChildAt(parent, i);
    +
    +			if ((!edges && !vertices) || (edges && model.isEdge(child))
    +					|| (vertices && model.isVertex(child)))
    +			{
    +				result.add(child);
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static Object[] getParents(mxIGraphModel model, Object[] cells)
    +	{
    +		HashSet<Object> parents = new HashSet<Object>();
    +
    +		if (cells != null)
    +		{
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				Object parent = model.getParent(cells[i]);
    +
    +				if (parent != null)
    +				{
    +					parents.add(parent);
    +				}
    +			}
    +		}
    +
    +		return parents.toArray();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static Object[] filterCells(Object[] cells, Filter filter)
    +	{
    +		ArrayList<Object> result = null;
    +
    +		if (cells != null)
    +		{
    +			result = new ArrayList<Object>(cells.length);
    +
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				if (filter.filter(cells[i]))
    +				{
    +					result.add(cells[i]);
    +				}
    +			}
    +		}
    +
    +		return (result != null) ? result.toArray() : null;
    +	}
    +
    +	/**
    +	 * Returns a all descendants of the given cell and the cell itself
    +	 * as a collection.
    +	 */
    +	public static Collection<Object> getDescendants(mxIGraphModel model,
    +			Object parent)
    +	{
    +		return filterDescendants(model, null, parent);
    +	}
    +
    +	/**
    +	 * Creates a collection of cells using the visitor pattern.
    +	 */
    +	public static Collection<Object> filterDescendants(mxIGraphModel model,
    +			Filter filter)
    +	{
    +		return filterDescendants(model, filter, model.getRoot());
    +	}
    +
    +	/**
    +	 * Creates a collection of cells using the visitor pattern.
    +	 */
    +	public static Collection<Object> filterDescendants(mxIGraphModel model,
    +			Filter filter, Object parent)
    +	{
    +		List<Object> result = new ArrayList<Object>();
    +
    +		if (filter == null || filter.filter(parent))
    +		{
    +			result.add(parent);
    +		}
    +
    +		int childCount = model.getChildCount(parent);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object child = model.getChildAt(parent, i);
    +			result.addAll(filterDescendants(model, filter, child));
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Function: getTopmostCells
    +	 * 
    +	 * Returns the topmost cells of the hierarchy in an array that contains no
    +	 * desceandants for each <mxCell> that it contains. Duplicates should be
    +	 * removed in the cells array to improve performance.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * cells - Array of <mxCells> whose topmost ancestors should be returned.
    +	 */
    +	public static Object[] getTopmostCells(mxIGraphModel model, Object[] cells)
    +	{
    +		Set<Object> hash = new HashSet<Object>();
    +		hash.addAll(Arrays.asList(cells));
    +		List<Object> result = new ArrayList<Object>(cells.length);
    +
    +		for (int i = 0; i < cells.length; i++)
    +		{
    +			Object cell = cells[i];
    +			boolean topmost = true;
    +			Object parent = model.getParent(cell);
    +
    +			while (parent != null)
    +			{
    +				if (hash.contains(parent))
    +				{
    +					topmost = false;
    +					break;
    +				}
    +
    +				parent = model.getParent(parent);
    +			}
    +
    +			if (topmost)
    +			{
    +				result.add(cell);
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	//
    +	// Visitor patterns
    +	//
    +
    +	/**
    +	 * 
    +	 */
    +	public static interface Filter
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		boolean filter(Object cell);
    +	}
    +
    +	//
    +	// Atomic changes
    +	//
    +
    +	public static class mxRootChange extends mxAtomicGraphModelChange
    +	{
    +
    +		/**
    +		 * Holds the new and previous root cell.
    +		 */
    +		protected Object root, previous;
    +
    +		/**
    +		 * 
    +		 */
    +		public mxRootChange()
    +		{
    +			this(null, null);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxRootChange(mxGraphModel model, Object root)
    +		{
    +			super(model);
    +			this.root = root;
    +			previous = root;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setRoot(Object value)
    +		{
    +			root = value;
    +		}
    +
    +		/**
    +		 * @return the root
    +		 */
    +		public Object getRoot()
    +		{
    +			return root;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setPrevious(Object value)
    +		{
    +			previous = value;
    +		}
    +
    +		/**
    +		 * @return the previous
    +		 */
    +		public Object getPrevious()
    +		{
    +			return previous;
    +		}
    +
    +		/**
    +		 * Changes the root of the model.
    +		 */
    +		public void execute()
    +		{
    +			root = previous;
    +			previous = ((mxGraphModel) model).rootChanged(previous);
    +		}
    +
    +	}
    +
    +	public static class mxChildChange extends mxAtomicGraphModelChange
    +	{
    +
    +		/**
    +		 *
    +		 */
    +		protected Object parent, previous, child;
    +
    +		/**
    +		 * 
    +		 */
    +		protected int index, previousIndex;
    +
    +		/**
    +		 * 
    +		 */
    +		public mxChildChange()
    +		{
    +			this(null, null, null, 0);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxChildChange(mxGraphModel model, Object parent, Object child)
    +		{
    +			this(model, parent, child, 0);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxChildChange(mxGraphModel model, Object parent, Object child,
    +				int index)
    +		{
    +			super(model);
    +			this.parent = parent;
    +			previous = this.parent;
    +			this.child = child;
    +			this.index = index;
    +			previousIndex = index;
    +		}
    +
    +		/**
    +		 *
    +		 */
    +		public void setParent(Object value)
    +		{
    +			parent = value;
    +		}
    +
    +		/**
    +		 * @return the parent
    +		 */
    +		public Object getParent()
    +		{
    +			return parent;
    +		}
    +
    +		/**
    +		 *
    +		 */
    +		public void setPrevious(Object value)
    +		{
    +			previous = value;
    +		}
    +
    +		/**
    +		 * @return the previous
    +		 */
    +		public Object getPrevious()
    +		{
    +			return previous;
    +		}
    +
    +		/**
    +		 *
    +		 */
    +		public void setChild(Object value)
    +		{
    +			child = value;
    +		}
    +
    +		/**
    +		 * @return the child
    +		 */
    +		public Object getChild()
    +		{
    +			return child;
    +		}
    +
    +		/**
    +		 *
    +		 */
    +		public void setIndex(int value)
    +		{
    +			index = value;
    +		}
    +
    +		/**
    +		 * @return the index
    +		 */
    +		public int getIndex()
    +		{
    +			return index;
    +		}
    +
    +		/**
    +		 *
    +		 */
    +		public void setPreviousIndex(int value)
    +		{
    +			previousIndex = value;
    +		}
    +
    +		/**
    +		 * @return the previousIndex
    +		 */
    +		public int getPreviousIndex()
    +		{
    +			return previousIndex;
    +		}
    +
    +		/**
    +		 * Gets the source or target terminal field for the given
    +		 * edge even if the edge is not stored as an incoming or
    +		 * outgoing edge in the respective terminal.
    +		 */
    +		protected Object getTerminal(Object edge, boolean source)
    +		{
    +			return model.getTerminal(edge, source);
    +		}
    +
    +		/**
    +		 * Sets the source or target terminal field for the given edge
    +		 * without inserting an incoming or outgoing edge in the
    +		 * respective terminal.
    +		 */
    +		protected void setTerminal(Object edge, Object terminal, boolean source)
    +		{
    +			((mxICell) edge).setTerminal((mxICell) terminal, source);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		protected void connect(Object cell, boolean isConnect)
    +		{
    +			Object source = getTerminal(cell, true);
    +			Object target = getTerminal(cell, false);
    +
    +			if (source != null)
    +			{
    +				if (isConnect)
    +				{
    +					((mxGraphModel) model).terminalForCellChanged(cell, source,
    +							true);
    +				}
    +				else
    +				{
    +					((mxGraphModel) model).terminalForCellChanged(cell, null,
    +							true);
    +				}
    +			}
    +
    +			if (target != null)
    +			{
    +				if (isConnect)
    +				{
    +					((mxGraphModel) model).terminalForCellChanged(cell, target,
    +							false);
    +				}
    +				else
    +				{
    +					((mxGraphModel) model).terminalForCellChanged(cell, null,
    +							false);
    +				}
    +			}
    +
    +			// Stores the previous terminals in the edge
    +			setTerminal(cell, source, true);
    +			setTerminal(cell, target, false);
    +
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				connect(model.getChildAt(cell, i), isConnect);
    +			}
    +		}
    +
    +		/**
    +		 * Returns the index of the given child inside the given parent.
    +		 */
    +		protected int getChildIndex(Object parent, Object child)
    +		{
    +			return (parent instanceof mxICell && child instanceof mxICell) ? ((mxICell) parent)
    +					.getIndex((mxICell) child) : 0;
    +		}
    +
    +		/**
    +		 * Changes the root of the model.
    +		 */
    +		public void execute()
    +		{
    +			Object tmp = model.getParent(child);
    +			int tmp2 = getChildIndex(tmp, child);
    +
    +			if (previous == null)
    +			{
    +				connect(child, false);
    +			}
    +
    +			tmp = ((mxGraphModel) model).parentForCellChanged(child, previous,
    +					previousIndex);
    +
    +			if (previous != null)
    +			{
    +				connect(child, true);
    +			}
    +
    +			parent = previous;
    +			previous = tmp;
    +			index = previousIndex;
    +			previousIndex = tmp2;
    +		}
    +
    +	}
    +
    +	public static class mxTerminalChange extends mxAtomicGraphModelChange
    +	{
    +
    +		/**
    +		 *
    +		 */
    +		protected Object cell, terminal, previous;
    +
    +		/**
    +		 * 
    +		 */
    +		protected boolean source;
    +
    +		/**
    +		 * 
    +		 */
    +		public mxTerminalChange()
    +		{
    +			this(null, null, null, false);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxTerminalChange(mxGraphModel model, Object cell,
    +				Object terminal, boolean source)
    +		{
    +			super(model);
    +			this.cell = cell;
    +			this.terminal = terminal;
    +			this.previous = this.terminal;
    +			this.source = source;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setCell(Object value)
    +		{
    +			cell = value;
    +		}
    +
    +		/**
    +		 * @return the cell
    +		 */
    +		public Object getCell()
    +		{
    +			return cell;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setTerminal(Object value)
    +		{
    +			terminal = value;
    +		}
    +
    +		/**
    +		 * @return the terminal
    +		 */
    +		public Object getTerminal()
    +		{
    +			return terminal;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setPrevious(Object value)
    +		{
    +			previous = value;
    +		}
    +
    +		/**
    +		 * @return the previous
    +		 */
    +		public Object getPrevious()
    +		{
    +			return previous;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setSource(boolean value)
    +		{
    +			source = value;
    +		}
    +
    +		/**
    +		 * @return the isSource
    +		 */
    +		public boolean isSource()
    +		{
    +			return source;
    +		}
    +
    +		/**
    +		 * Changes the root of the model.
    +		 */
    +		public void execute()
    +		{
    +			terminal = previous;
    +			previous = ((mxGraphModel) model).terminalForCellChanged(cell,
    +					previous, source);
    +		}
    +
    +	}
    +
    +	public static class mxValueChange extends mxAtomicGraphModelChange
    +	{
    +
    +		/**
    +		 *
    +		 */
    +		protected Object cell, value, previous;
    +
    +		/**
    +		 * 
    +		 */
    +		public mxValueChange()
    +		{
    +			this(null, null, null);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxValueChange(mxGraphModel model, Object cell, Object value)
    +		{
    +			super(model);
    +			this.cell = cell;
    +			this.value = value;
    +			this.previous = this.value;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setCell(Object value)
    +		{
    +			cell = value;
    +		}
    +
    +		/**
    +		 * @return the cell
    +		 */
    +		public Object getCell()
    +		{
    +			return cell;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setValue(Object value)
    +		{
    +			this.value = value;
    +		}
    +
    +		/**
    +		 * @return the value
    +		 */
    +		public Object getValue()
    +		{
    +			return value;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setPrevious(Object value)
    +		{
    +			previous = value;
    +		}
    +
    +		/**
    +		 * @return the previous
    +		 */
    +		public Object getPrevious()
    +		{
    +			return previous;
    +		}
    +
    +		/**
    +		 * Changes the root of the model.
    +		 */
    +		public void execute()
    +		{
    +			value = previous;
    +			previous = ((mxGraphModel) model).valueForCellChanged(cell,
    +					previous);
    +		}
    +
    +	}
    +
    +	public static class mxStyleChange extends mxAtomicGraphModelChange
    +	{
    +
    +		/**
    +		 *
    +		 */
    +		protected Object cell;
    +
    +		/**
    +		 * 
    +		 */
    +		protected String style, previous;
    +
    +		/**
    +		 * 
    +		 */
    +		public mxStyleChange()
    +		{
    +			this(null, null, null);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxStyleChange(mxGraphModel model, Object cell, String style)
    +		{
    +			super(model);
    +			this.cell = cell;
    +			this.style = style;
    +			this.previous = this.style;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setCell(Object value)
    +		{
    +			cell = value;
    +		}
    +
    +		/**
    +		 * @return the cell
    +		 */
    +		public Object getCell()
    +		{
    +			return cell;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setStyle(String value)
    +		{
    +			style = value;
    +		}
    +
    +		/**
    +		 * @return the style
    +		 */
    +		public String getStyle()
    +		{
    +			return style;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setPrevious(String value)
    +		{
    +			previous = value;
    +		}
    +
    +		/**
    +		 * @return the previous
    +		 */
    +		public String getPrevious()
    +		{
    +			return previous;
    +		}
    +
    +		/**
    +		 * Changes the root of the model.
    +		 */
    +		public void execute()
    +		{
    +			style = previous;
    +			previous = ((mxGraphModel) model).styleForCellChanged(cell,
    +					previous);
    +		}
    +
    +	}
    +
    +	public static class mxGeometryChange extends mxAtomicGraphModelChange
    +	{
    +
    +		/**
    +		 *
    +		 */
    +		protected Object cell;
    +
    +		/**
    +		 * 
    +		 */
    +		protected mxGeometry geometry, previous;
    +
    +		/**
    +		 * 
    +		 */
    +		public mxGeometryChange()
    +		{
    +			this(null, null, null);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxGeometryChange(mxGraphModel model, Object cell,
    +				mxGeometry geometry)
    +		{
    +			super(model);
    +			this.cell = cell;
    +			this.geometry = geometry;
    +			this.previous = this.geometry;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setCell(Object value)
    +		{
    +			cell = value;
    +		}
    +
    +		/**
    +		 * @return the cell
    +		 */
    +		public Object getCell()
    +		{
    +			return cell;
    +		}
    +
    +		/**
    +		 *
    +		 */
    +		public void setGeometry(mxGeometry value)
    +		{
    +			geometry = value;
    +		}
    +
    +		/**
    +		 * @return the geometry
    +		 */
    +		public mxGeometry getGeometry()
    +		{
    +			return geometry;
    +		}
    +
    +		/**
    +		 *
    +		 */
    +		public void setPrevious(mxGeometry value)
    +		{
    +			previous = value;
    +		}
    +
    +		/**
    +		 * @return the previous
    +		 */
    +		public mxGeometry getPrevious()
    +		{
    +			return previous;
    +		}
    +
    +		/**
    +		 * Changes the root of the model.
    +		 */
    +		public void execute()
    +		{
    +			geometry = previous;
    +			previous = ((mxGraphModel) model).geometryForCellChanged(cell,
    +					previous);
    +		}
    +
    +	}
    +
    +	public static class mxCollapseChange extends mxAtomicGraphModelChange
    +	{
    +
    +		/**
    +		 *
    +		 */
    +		protected Object cell;
    +
    +		/**
    +		 * 
    +		 */
    +		protected boolean collapsed, previous;
    +
    +		/**
    +		 * 
    +		 */
    +		public mxCollapseChange()
    +		{
    +			this(null, null, false);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxCollapseChange(mxGraphModel model, Object cell,
    +				boolean collapsed)
    +		{
    +			super(model);
    +			this.cell = cell;
    +			this.collapsed = collapsed;
    +			this.previous = this.collapsed;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setCell(Object value)
    +		{
    +			cell = value;
    +		}
    +
    +		/**
    +		 * @return the cell
    +		 */
    +		public Object getCell()
    +		{
    +			return cell;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setCollapsed(boolean value)
    +		{
    +			collapsed = value;
    +		}
    +
    +		/**
    +		 * @return the collapsed
    +		 */
    +		public boolean isCollapsed()
    +		{
    +			return collapsed;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setPrevious(boolean value)
    +		{
    +			previous = value;
    +		}
    +
    +		/**
    +		 * @return the previous
    +		 */
    +		public boolean getPrevious()
    +		{
    +			return previous;
    +		}
    +
    +		/**
    +		 * Changes the root of the model.
    +		 */
    +		public void execute()
    +		{
    +			collapsed = previous;
    +			previous = ((mxGraphModel) model).collapsedStateForCellChanged(
    +					cell, previous);
    +		}
    +
    +	}
    +
    +	public static class mxVisibleChange extends mxAtomicGraphModelChange
    +	{
    +
    +		/**
    +		 *
    +		 */
    +		protected Object cell;
    +
    +		/**
    +		 * 
    +		 */
    +		protected boolean visible, previous;
    +
    +		/**
    +		 * 
    +		 */
    +		public mxVisibleChange()
    +		{
    +			this(null, null, false);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxVisibleChange(mxGraphModel model, Object cell, boolean visible)
    +		{
    +			super(model);
    +			this.cell = cell;
    +			this.visible = visible;
    +			this.previous = this.visible;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setCell(Object value)
    +		{
    +			cell = value;
    +		}
    +
    +		/**
    +		 * @return the cell
    +		 */
    +		public Object getCell()
    +		{
    +			return cell;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setVisible(boolean value)
    +		{
    +			visible = value;
    +		}
    +
    +		/**
    +		 * @return the visible
    +		 */
    +		public boolean isVisible()
    +		{
    +			return visible;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void setPrevious(boolean value)
    +		{
    +			previous = value;
    +		}
    +
    +		/**
    +		 * @return the previous
    +		 */
    +		public boolean getPrevious()
    +		{
    +			return previous;
    +		}
    +
    +		/**
    +		 * Changes the root of the model.
    +		 */
    +		public void execute()
    +		{
    +			visible = previous;
    +			previous = ((mxGraphModel) model).visibleStateForCellChanged(cell,
    +					previous);
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/model/mxICell.java b/java/src/com/mxgraph/model/mxICell.java
    new file mode 100644
    index 000000000..a63c427cb
    --- /dev/null
    +++ b/java/src/com/mxgraph/model/mxICell.java
    @@ -0,0 +1,274 @@
    +/**
    + * $Id: mxICell.java,v 1.13 2009-04-02 15:19:02 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.model;
    +
    +/**
    + * Defines the requirements for a cell that can be used in an mxGraphModel.
    + */
    +public interface mxICell
    +{
    +
    +	/**
    +	 * Returns the Id of the cell as a string.
    +	 * 
    +	 * @return Returns the Id.
    +	 */
    +	String getId();
    +
    +	/**
    +	 * Sets the Id of the cell to the given string.
    +	 * 
    +	 * @param id String that represents the new Id.
    +	 */
    +	void setId(String id);
    +
    +	/**
    +	 * Returns the user object of the cell.
    +	 * 
    +	 * @return Returns the user object.
    +	 */
    +	Object getValue();
    +
    +	/**
    +	 * Sets the user object of the cell.
    +	 * 
    +	 * @param value Object that represents the new value.
    +	 */
    +	void setValue(Object value);
    +
    +	/**
    +	 * Returns the object that describes the geometry.
    +	 * 
    +	 * @return Returns the cell geometry.
    +	 */
    +	mxGeometry getGeometry();
    +
    +	/**
    +	 * Sets the object to be used as the geometry.
    +	 */
    +	void setGeometry(mxGeometry geometry);
    +
    +	/**
    +	 * Returns the string that describes the style.
    +	 * 
    +	 * @return Returns the cell style.
    +	 */
    +	String getStyle();
    +
    +	/**
    +	 * Sets the string to be used as the style.
    +	 */
    +	void setStyle(String style);
    +
    +	/**
    +	 * Returns true if the cell is a vertex.
    +	 * 
    +	 * @return Returns true if the cell is a vertex.
    +	 */
    +	boolean isVertex();
    +
    +	/**
    +	 * Returns true if the cell is an edge.
    +	 * 
    +	 * @return Returns true if the cell is an edge.
    +	 */
    +	boolean isEdge();
    +
    +	/**
    +	 * Returns true if the cell is connectable.
    +	 * 
    +	 * @return Returns the connectable state.
    +	 */
    +	boolean isConnectable();
    +
    +	/**
    +	 * Returns true if the cell is visibile.
    +	 * 
    +	 * @return Returns the visible state.
    +	 */
    +	boolean isVisible();
    +
    +	/**
    +	 * Specifies if the cell is visible.
    +	 * 
    +	 * @param visible Boolean that specifies the new visible state.
    +	 */
    +	void setVisible(boolean visible);
    +
    +	/**
    +	 * Returns true if the cell is collapsed.
    +	 * 
    +	 * @return Returns the collapsed state.
    +	 */
    +	boolean isCollapsed();
    +
    +	/**
    +	 * Sets the collapsed state.
    +	 * 
    +	 * @param collapsed Boolean that specifies the new collapsed state.
    +	 */
    +	void setCollapsed(boolean collapsed);
    +
    +	/**
    +	 * Returns the cell's parent.
    +	 * 
    +	 * @return Returns the parent cell.
    +	 */
    +	mxICell getParent();
    +
    +	/**
    +	 * Sets the parent cell.
    +	 * 
    +	 * @param parent Cell that represents the new parent.
    +	 */
    +	void setParent(mxICell parent);
    +
    +	/**
    +	 * Returns the source or target terminal.
    +	 * 
    +	 * @param source Boolean that specifies if the source terminal should be
    +	 * returned.
    +	 * @return Returns the source or target terminal.
    +	 */
    +	mxICell getTerminal(boolean source);
    +
    +	/**
    +	 * Sets the source or target terminal and returns the new terminal.
    +	 * 
    +	 * @param terminal Cell that represents the new source or target terminal.
    +	 * @param isSource Boolean that specifies if the source or target terminal
    +	 * should be set.
    +	 * @return Returns the new terminal.
    +	 */
    +	mxICell setTerminal(mxICell terminal, boolean isSource);
    +
    +	/**
    +	 * Returns the number of child cells.
    +	 * 
    +	 * @return Returns the number of children.
    +	 */
    +	int getChildCount();
    +
    +	/**
    +	 * Returns the index of the specified child in the child array.
    +	 * 
    +	 * @param child Child whose index should be returned.
    +	 * @return Returns the index of the given child.
    +	 */
    +	int getIndex(mxICell child);
    +
    +	/**
    +	 * Returns the child at the specified index.
    +	 * 
    +	 * @param index Integer that specifies the child to be returned.
    +	 * @return Returns the child at the given index.
    +	 */
    +	mxICell getChildAt(int index);
    +
    +	/**
    +	 * Appends the specified child into the child array and updates the parent
    +	 * reference of the child. Returns the appended child.
    +	 * 
    +	 * @param child Cell to be appended to the child array.
    +	 * @return Returns the new child.
    +	 */
    +	mxICell insert(mxICell child);
    +
    +	/**
    +	 * Inserts the specified child into the child array at the specified index
    +	 * and updates the parent reference of the child. Returns the inserted child.
    +	 * 
    +	 * @param child Cell to be inserted into the child array.
    +	 * @param index Integer that specifies the index at which the child should
    +	 * be inserted into the child array.
    +	 * @return Returns the new child.
    +	 */
    +	mxICell insert(mxICell child, int index);
    +
    +	/**
    +	 * Removes the child at the specified index from the child array and
    +	 * returns the child that was removed. Will remove the parent reference of
    +	 * the child.
    +	 * 
    +	 * @param index Integer that specifies the index of the child to be
    +	 * removed.
    +	 * @return Returns the child that was removed.
    +	 */
    +	mxICell remove(int index);
    +
    +	/**
    +	 * Removes the given child from the child array and returns it. Will remove
    +	 * the parent reference of the child.
    +	 * 
    +	 * @param child Cell that represents the child to be removed.
    +	 * @return Returns the child that was removed.
    +	 */
    +	mxICell remove(mxICell child);
    +
    +	/**
    +	 * Removes the cell from its parent.
    +	 */
    +	void removeFromParent();
    +
    +	/**
    +	 * Returns the number of edges in the edge array.
    +	 * 
    +	 * @return Returns the number of edges.
    +	 */
    +	int getEdgeCount();
    +
    +	/**
    +	 * Returns the index of the specified edge in the edge array.
    +	 * 
    +	 * @param edge Cell whose index should be returned.
    +	 * @return Returns the index of the given edge.
    +	 */
    +	int getEdgeIndex(mxICell edge);
    +
    +	/**
    +	 * Returns the edge at the specified index in the edge array.
    +	 * 
    +	 * @param index Integer that specifies the index of the edge to be
    +	 * returned.
    +	 * @return Returns the edge at the given index.
    +	 */
    +	mxICell getEdgeAt(int index);
    +
    +	/**
    +	 * Inserts the specified edge into the edge array and returns the edge.
    +	 * Will update the respective terminal reference of the edge.
    +	 * 
    +	 * @param edge Cell to be inserted into the edge array.
    +	 * @param isOutgoing Boolean that specifies if the edge is outgoing.
    +	 * @return Returns the new edge.
    +	 */
    +	mxICell insertEdge(mxICell edge, boolean isOutgoing);
    +
    +	/**
    +	 * Removes the specified edge from the edge array and returns the edge.
    +	 * Will remove the respective terminal reference from the edge.
    +	 * 
    +	 * @param edge Cell to be removed from the edge array.
    +	 * @param isOutgoing Boolean that specifies if the edge is outgoing.
    +	 * @return Returns the edge that was removed.
    +	 */
    +	mxICell removeEdge(mxICell edge, boolean isOutgoing);
    +
    +	/**
    +	 * Removes the edge from its source or target terminal.
    +	 * 
    +	 * @param isSource Boolean that specifies if the edge should be removed
    +	 * from its source or target terminal.
    +	 */
    +	void removeFromTerminal(boolean isSource);
    +
    +	/**
    +	 * Returns a clone of this cell.
    +	 * 
    +	 * @return Returns a clone of this cell.
    +	 */
    +	Object clone() throws CloneNotSupportedException;
    +
    +}
    diff --git a/java/src/com/mxgraph/model/mxIGraphModel.java b/java/src/com/mxgraph/model/mxIGraphModel.java
    new file mode 100644
    index 000000000..30e05e898
    --- /dev/null
    +++ b/java/src/com/mxgraph/model/mxIGraphModel.java
    @@ -0,0 +1,337 @@
    +/**
    + * $Id: mxIGraphModel.java,v 1.24 2009-05-22 11:58:23 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.model;
    +
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.util.mxUndoableEdit.mxUndoableChange;
    +
    +/**
    + * Defines the requirements for a graph model to be used with mxGraph.
    + */
    +public interface mxIGraphModel
    +{
    +
    +	/**
    +	 * Defines the interface for an atomic change of the graph model.
    +	 */
    +	public abstract class mxAtomicGraphModelChange implements mxUndoableChange
    +	{
    +		/**
    +		 * Holds the model where the change happened.
    +		 */
    +		protected mxIGraphModel model;
    +
    +		/**
    +		 * Constructs an empty atomic graph model change.
    +		 */
    +		public mxAtomicGraphModelChange()
    +		{
    +			this(null);
    +		}
    +
    +		/**
    +		 * Constructs an atomic graph model change for the given model.
    +		 */
    +		public mxAtomicGraphModelChange(mxIGraphModel model)
    +		{
    +			this.model = model;
    +		}
    +
    +		/**
    +		 * Returns the model where the change happened.
    +		 */
    +		public mxIGraphModel getModel()
    +		{
    +			return model;
    +		}
    +
    +		/**
    +		 * Sets the model where the change is to be carried out.
    +		 */
    +		public void setModel(mxIGraphModel model)
    +		{
    +			this.model = model;
    +		}
    +
    +		/**
    +		 * Executes the change on the model.
    +		 */
    +		public abstract void execute();
    +
    +	}
    +
    +	/**
    +	 * Returns the root of the model or the topmost parent of the given cell.
    +	 * 
    +	 * @return Returns the root cell.
    +	 */
    +	Object getRoot();
    +
    +	/**
    +	 * Sets the root of the model and resets all structures.
    +	 * 
    +	 * @param root Cell that specifies the new root.
    +	 */
    +	Object setRoot(Object root);
    +
    +	/**
    +	 * Returns an array of clones for the given array of cells.
    +	 * Depending on the value of includeChildren, a deep clone is created for
    +	 * each cell. Connections are restored based if the corresponding
    +	 * cell is contained in the passed in array.
    +	 * 
    +	 * @param cells Array of cells to be cloned.
    +	 * @param includeChildren Boolean indicating if the cells should be cloned
    +	 * with all descendants.
    +	 * @return Returns a cloned array of cells.
    +	 */
    +	Object[] cloneCells(Object[] cells, boolean includeChildren);
    +
    +	/**
    +	 * Returns true if the given parent is an ancestor of the given child.
    +	 * 
    +	 * @param parent Cell that specifies the parent.
    +	 * @param child Cell that specifies the child.
    +	 * @return Returns true if child is an ancestor of parent.
    +	 */
    +	boolean isAncestor(Object parent, Object child);
    +
    +	/**
    +	 * Returns true if the model contains the given cell.
    +	 * 
    +	 * @param cell Cell to be checked.
    +	 * @return Returns true if the cell is in the model.
    +	 */
    +	boolean contains(Object cell);
    +
    +	/**
    +	 * Returns the parent of the given cell.
    +	 *
    +	 * @param child Cell whose parent should be returned.
    +	 * @return Returns the parent of the given cell.
    +	 */
    +	Object getParent(Object child);
    +
    +	/**
    +	 * Adds the specified child to the parent at the given index. If no index
    +	 * is specified then the child is appended to the parent's array of
    +	 * children.
    +	 * 
    +	 * @param parent Cell that specifies the parent to contain the child.
    +	 * @param child Cell that specifies the child to be inserted.
    +	 * @param index Integer that specifies the index of the child.
    +	 * @return Returns the inserted child.
    +	 */
    +	Object add(Object parent, Object child, int index);
    +
    +	/**
    +	 * Removes the specified cell from the model. This operation will remove
    +	 * the cell and all of its children from the model.
    +	 * 
    +	 * @param cell Cell that should be removed.
    +	 * @return Returns the removed cell.
    +	 */
    +	Object remove(Object cell);
    +
    +	/**
    +	 * Returns the number of children in the given cell.
    +	 *
    +	 * @param cell Cell whose number of children should be returned.
    +	 * @return Returns the number of children in the given cell.
    +	 */
    +	int getChildCount(Object cell);
    +
    +	/**
    +	 * Returns the child of the given parent at the given index.
    +	 * 
    +	 * @param parent Cell that represents the parent.
    +	 * @param index Integer that specifies the index of the child to be
    +	 * returned.
    +	 * @return Returns the child at index in parent.
    +	 */
    +	Object getChildAt(Object parent, int index);
    +
    +	/**
    +	 * Returns the source or target terminal of the given edge depending on the
    +	 * value of the boolean parameter.
    +	 * 
    +	 * @param edge Cell that specifies the edge.
    +	 * @param isSource Boolean indicating which end of the edge should be
    +	 * returned.
    +	 * @return Returns the source or target of the given edge.
    +	 */
    +	Object getTerminal(Object edge, boolean isSource);
    +
    +	/**
    +	 * Sets the source or target terminal of the given edge using.
    +	 * 
    +	 * @param edge Cell that specifies the edge.
    +	 * @param terminal Cell that specifies the new terminal.
    +	 * @param isSource Boolean indicating if the terminal is the new source or
    +	 * target terminal of the edge.
    +	 * @return Returns the new terminal.
    +	 */
    +	Object setTerminal(Object edge, Object terminal, boolean isSource);
    +
    +	/**
    +	 * Returns the number of distinct edges connected to the given cell.
    +	 * 
    +	 * @param cell Cell that represents the vertex.
    +	 * @return Returns the number of edges connected to cell.
    +	 */
    +	int getEdgeCount(Object cell);
    +
    +	/**
    +	 * Returns the edge of cell at the given index.
    +	 * 
    +	 * @param cell Cell that specifies the vertex.
    +	 * @param index Integer that specifies the index of the edge to return.
    +	 * @return Returns the edge at the given index.
    +	 */
    +	Object getEdgeAt(Object cell, int index);
    +
    +	/**
    +	 * Returns true if the given cell is a vertex.
    +	 * 
    +	 * @param cell Cell that represents the possible vertex.
    +	 * @return Returns true if the given cell is a vertex.
    +	 */
    +	boolean isVertex(Object cell);
    +
    +	/**
    +	 * Returns true if the given cell is an edge.
    +	 * 
    +	 * @param cell Cell that represents the possible edge.
    +	 * @return Returns true if the given cell is an edge.
    +	 */
    +	boolean isEdge(Object cell);
    +
    +	/**
    +	 * Returns true if the given cell is connectable.
    +	 * 
    +	 * @param cell Cell whose connectable state should be returned.
    +	 * @return Returns the connectable state of the given cell.
    +	 */
    +	boolean isConnectable(Object cell);
    +
    +	/**
    +	 * Returns the user object of the given cell.
    +	 * 
    +	 * @param cell Cell whose user object should be returned.
    +	 * @return Returns the user object of the given cell.
    +	 */
    +	Object getValue(Object cell);
    +
    +	/**
    +	 * Sets the user object of then given cell.
    +	 * 
    +	 * @param cell Cell whose user object should be changed.
    +	 * @param value Object that defines the new user object.
    +	 * @return Returns the new value.
    +	 */
    +	Object setValue(Object cell, Object value);
    +
    +	/**
    +	 * Returns the geometry of the given cell.
    +	 * 
    +	 * @param cell Cell whose geometry should be returned.
    +	 * @return Returns the geometry of the given cell.
    +	 */
    +	mxGeometry getGeometry(Object cell);
    +
    +	/**
    +	 * Sets the geometry of the given cell.
    +	 * 
    +	 * @param cell Cell whose geometry should be changed.
    +	 * @param geometry Object that defines the new geometry.
    +	 * @return Returns the new geometry.
    +	 */
    +	mxGeometry setGeometry(Object cell, mxGeometry geometry);
    +
    +	/**
    +	 * Returns the style of the given cell.
    +	 * 
    +	 * @param cell Cell whose style should be returned.
    +	 * @return Returns the style of the given cell.
    +	 */
    +	String getStyle(Object cell);
    +
    +	/**
    +	 * Sets the style of the given cell.
    +	 * 
    +	 * @param cell Cell whose style should be changed.
    +	 * @param style String of the form stylename[;key=value] to specify
    +	 * the new cell style.
    +	 * @return Returns the new style.
    +	 */
    +	String setStyle(Object cell, String style);
    +
    +	/**
    +	 * Returns true if the given cell is collapsed.
    +	 * 
    +	 * @param cell Cell whose collapsed state should be returned.
    +	 * @return Returns the collapsed state of the given cell.
    +	 */
    +	boolean isCollapsed(Object cell);
    +
    +	/**
    +	 * Sets the collapsed state of the given cell.
    +	 * 
    +	 * @param cell Cell whose collapsed state should be changed.
    +	 * @param collapsed Boolean that specifies the new collpased state.
    +	 * @return Returns the new collapsed state.
    +	 */
    +	boolean setCollapsed(Object cell, boolean collapsed);
    +
    +	/**
    +	 * Returns true if the given cell is visible.
    +	 * 
    +	 * @param cell Cell whose visible state should be returned.
    +	 * @return Returns the visible state of the given cell.
    +	 */
    +	boolean isVisible(Object cell);
    +
    +	/**
    +	 * Sets the visible state of the given cell.
    +	 * 
    +	 * @param cell Cell whose visible state should be changed.
    +	 * @param visible Boolean that specifies the new visible state.
    +	 * @return Returns the new visible state.
    +	 */
    +	boolean setVisible(Object cell, boolean visible);
    +
    +	/**
    +	 * Increments the updateLevel by one. The event notification is queued
    +	 * until updateLevel reaches 0 by use of endUpdate.
    +	 */
    +	void beginUpdate();
    +
    +	/**
    +	 * Decrements the updateLevel by one and fires a notification event if the
    +	 * updateLevel reaches 0.
    +	 */
    +	void endUpdate();
    +
    +	/**
    +	 * Binds the specified function to the given event name. If no event name
    +	 * is given, then the listener is registered for all events.
    +	 */
    +	void addListener(String eventName, mxIEventListener listener);
    +
    +	/**
    +	 * Function: removeListener
    +	 *
    +	 * Removes the given listener from the list of listeners.
    +	 */
    +	void removeListener(mxIEventListener listener);
    +
    +	/**
    +	 * Function: removeListener
    +	 *
    +	 * Removes the given listener from the list of listeners.
    +	 */
    +	void removeListener(mxIEventListener listener, String eventName);
    +
    +}
    diff --git a/java/src/com/mxgraph/model/package.html b/java/src/com/mxgraph/model/package.html
    new file mode 100644
    index 000000000..662bf1b5f
    --- /dev/null
    +++ b/java/src/com/mxgraph/model/package.html
    @@ -0,0 +1,5 @@
    +<HTML>
    +<BODY>
    +  This package contains the classes that define a graph model.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/reader/mxDomOutputParser.java b/java/src/com/mxgraph/reader/mxDomOutputParser.java
    new file mode 100644
    index 000000000..7c75be69a
    --- /dev/null
    +++ b/java/src/com/mxgraph/reader/mxDomOutputParser.java
    @@ -0,0 +1,465 @@
    +package com.mxgraph.reader;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.canvas.mxICanvas2D;
    +
    +/**
    + *
    +	public static void main(String[] args)
    +	{
    +		try
    +		{
    +			String filename = Test.class.getResource(
    +					"/com/mxgraph/online/exported.xml").getPath();
    +			String xml = mxUtils.readFile(filename);
    +			System.out.println("xml=" + xml);
    +
    +			Document doc = mxUtils.parseXml(xml);
    +			Element root = doc.getDocumentElement();
    +			int width = Integer.parseInt(root.getAttribute("width"));
    +			int height = Integer.parseInt(root.getAttribute("height"));
    +
    +			System.out.println("width=" + width + " height=" + height);
    +
    +			BufferedImage img = mxUtils.createBufferedImage(width, height,
    +					Color.WHITE);
    +			Graphics2D g2 = img.createGraphics();
    +			mxUtils.setAntiAlias(g2, true, true);
    +			mxDomOutputParser reader = new mxDomOutputParser(
    +					new mxGraphicsExportCanvas(g2));
    +			reader.read((Element) root.getFirstChild().getNextSibling());
    +
    +			ImageIO.write(img, "PNG", new File(
    +					"C:\\Users\\Gaudenz\\Desktop\\test.png"));
    +		}
    +		catch (Exception e)
    +		{
    +			e.printStackTrace();
    +		}
    +	}
    +	
    +	// -------------
    +	
    +	Document doc = mxUtils.parseXml(xml);
    +	Element root = doc.getDocumentElement();
    +	mxDomOutputParser reader = new mxDomOutputParser(canvas);
    +	reader.read(root.getFirstChild());
    + */
    +public class mxDomOutputParser
    +{
    +	/**
    +	 * 
    +	 */
    +	protected mxICanvas2D canvas;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Map<String, IElementHandler> handlers = new Hashtable<String, IElementHandler>();
    +
    +	/**
    +	 * 
    +	 */
    +	public mxDomOutputParser(mxICanvas2D canvas)
    +	{
    +		this.canvas = canvas;
    +		initHandlers();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void read(Node node)
    +	{
    +		while (node != null)
    +		{
    +			if (node instanceof Element)
    +			{
    +				Element elt = (Element) node;
    +				IElementHandler handler = handlers.get(elt.getNodeName());
    +
    +				if (handler != null)
    +				{
    +					handler.parseElement(elt);
    +				}
    +			}
    +
    +			node = node.getNextSibling();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void initHandlers()
    +	{
    +		handlers.put("save", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.save();
    +			}
    +		});
    +
    +		handlers.put("restore", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.restore();
    +			}
    +		});
    +
    +		handlers.put("scale", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.scale(Double.parseDouble(elt.getAttribute("scale")));
    +			}
    +		});
    +
    +		handlers.put("translate", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.translate(Double.parseDouble(elt.getAttribute("dx")),
    +						Double.parseDouble(elt.getAttribute("dy")));
    +			}
    +		});
    +
    +		handlers.put("rotate", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.rotate(Double.parseDouble(elt.getAttribute("theta")),
    +						elt.getAttribute("flipH").equals("1"), elt
    +								.getAttribute("flipV").equals("1"), Double
    +								.parseDouble(elt.getAttribute("cx")), Double
    +								.parseDouble(elt.getAttribute("cy")));
    +			}
    +		});
    +
    +		handlers.put("strokewidth", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setStrokeWidth(Double.parseDouble(elt
    +						.getAttribute("width")));
    +			}
    +		});
    +
    +		handlers.put("strokecolor", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setStrokeColor(elt.getAttribute("color"));
    +			}
    +		});
    +
    +		handlers.put("dashed", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setDashed(elt.getAttribute("dashed").equals("1"));
    +			}
    +		});
    +
    +		handlers.put("dashpattern", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setDashPattern(elt.getAttribute("pattern"));
    +			}
    +		});
    +
    +		handlers.put("linecap", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setLineCap(elt.getAttribute("cap"));
    +			}
    +		});
    +
    +		handlers.put("linejoin", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setLineJoin(elt.getAttribute("join"));
    +			}
    +		});
    +
    +		handlers.put("miterlimit", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setMiterLimit(Double.parseDouble(elt
    +						.getAttribute("limit")));
    +			}
    +		});
    +
    +		handlers.put("fontsize", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setFontSize(Double.parseDouble(elt.getAttribute("size")));
    +			}
    +		});
    +
    +		handlers.put("fontcolor", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setFontColor(elt.getAttribute("color"));
    +			}
    +		});
    +
    +		handlers.put("fontfamily", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setFontFamily(elt.getAttribute("family"));
    +			}
    +		});
    +
    +		handlers.put("fontstyle", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setFontStyle(Integer.parseInt(elt.getAttribute("style")));
    +			}
    +		});
    +
    +		handlers.put("alpha", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setAlpha(Double.parseDouble(elt.getAttribute("alpha")));
    +			}
    +		});
    +
    +		handlers.put("fillcolor", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setFillColor(elt.getAttribute("color"));
    +			}
    +		});
    +
    +		handlers.put("gradient", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setGradient(elt.getAttribute("c1"),
    +						elt.getAttribute("c2"),
    +						Double.parseDouble(elt.getAttribute("x")),
    +						Double.parseDouble(elt.getAttribute("y")),
    +						Double.parseDouble(elt.getAttribute("w")),
    +						Double.parseDouble(elt.getAttribute("h")),
    +						elt.getAttribute("direction"));
    +			}
    +		});
    +
    +		handlers.put("glass", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.setGlassGradient(
    +						Double.parseDouble(elt.getAttribute("x")),
    +						Double.parseDouble(elt.getAttribute("y")),
    +						Double.parseDouble(elt.getAttribute("w")),
    +						Double.parseDouble(elt.getAttribute("h")));
    +			}
    +		});
    +
    +		handlers.put("rect", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.rect(Double.parseDouble(elt.getAttribute("x")),
    +						Double.parseDouble(elt.getAttribute("y")),
    +						Double.parseDouble(elt.getAttribute("w")),
    +						Double.parseDouble(elt.getAttribute("h")));
    +			}
    +		});
    +
    +		handlers.put("roundrect", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.roundrect(Double.parseDouble(elt.getAttribute("x")),
    +						Double.parseDouble(elt.getAttribute("y")),
    +						Double.parseDouble(elt.getAttribute("w")),
    +						Double.parseDouble(elt.getAttribute("h")),
    +						Double.parseDouble(elt.getAttribute("dx")),
    +						Double.parseDouble(elt.getAttribute("dy")));
    +			}
    +		});
    +
    +		handlers.put("ellipse", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.ellipse(Double.parseDouble(elt.getAttribute("x")),
    +						Double.parseDouble(elt.getAttribute("y")),
    +						Double.parseDouble(elt.getAttribute("w")),
    +						Double.parseDouble(elt.getAttribute("h")));
    +			}
    +		});
    +
    +		handlers.put("image", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.image(Double.parseDouble(elt.getAttribute("x")), Double
    +						.parseDouble(elt.getAttribute("y")), Double
    +						.parseDouble(elt.getAttribute("w")), Double
    +						.parseDouble(elt.getAttribute("h")), elt
    +						.getAttribute("src"), elt.getAttribute("aspect")
    +						.equals("1"), elt.getAttribute("flipH").equals("1"),
    +						elt.getAttribute("flipV").equals("1"));
    +			}
    +		});
    +
    +		handlers.put("text", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.text(Double.parseDouble(elt.getAttribute("x")), Double
    +						.parseDouble(elt.getAttribute("y")), Double
    +						.parseDouble(elt.getAttribute("w")), Double
    +						.parseDouble(elt.getAttribute("h")), elt
    +						.getAttribute("str"), elt.getAttribute("align"), elt
    +						.getAttribute("valign"), elt.getAttribute("vertical")
    +						.equals("1"), getValue(elt, "wrap", "").equals("1"),
    +						elt.getAttribute("format"));
    +			}
    +		});
    +
    +		handlers.put("begin", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.begin();
    +			}
    +		});
    +
    +		handlers.put("move", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.moveTo(Double.parseDouble(elt.getAttribute("x")),
    +						Double.parseDouble(elt.getAttribute("y")));
    +			}
    +		});
    +
    +		handlers.put("line", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.lineTo(Double.parseDouble(elt.getAttribute("x")),
    +						Double.parseDouble(elt.getAttribute("y")));
    +			}
    +		});
    +
    +		handlers.put("quad", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.quadTo(Double.parseDouble(elt.getAttribute("x1")),
    +						Double.parseDouble(elt.getAttribute("y1")),
    +						Double.parseDouble(elt.getAttribute("x2")),
    +						Double.parseDouble(elt.getAttribute("y2")));
    +			}
    +		});
    +
    +		handlers.put("curve", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.curveTo(Double.parseDouble(elt.getAttribute("x1")),
    +						Double.parseDouble(elt.getAttribute("y1")),
    +						Double.parseDouble(elt.getAttribute("x2")),
    +						Double.parseDouble(elt.getAttribute("y2")),
    +						Double.parseDouble(elt.getAttribute("x3")),
    +						Double.parseDouble(elt.getAttribute("y3")));
    +			}
    +		});
    +
    +		handlers.put("close", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.close();
    +			}
    +		});
    +
    +		handlers.put("stroke", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.stroke();
    +			}
    +		});
    +
    +		handlers.put("fill", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.fill();
    +			}
    +		});
    +
    +		handlers.put("fillstroke", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		});
    +
    +		handlers.put("shadow", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.shadow(elt.getAttribute("value"),
    +						elt.getAttribute("filled").equals("1"));
    +			}
    +		});
    +
    +		handlers.put("clip", new IElementHandler()
    +		{
    +			public void parseElement(Element elt)
    +			{
    +				canvas.clip();
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Returns the given attribute value or an empty string.
    +	 */
    +	protected String getValue(Element elt, String name, String defaultValue)
    +	{
    +		String value = elt.getAttribute(name);
    +
    +		if (value == null)
    +		{
    +			value = defaultValue;
    +		}
    +
    +		return value;
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected interface IElementHandler
    +	{
    +		void parseElement(Element elt);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/reader/mxGraphViewImageReader.java b/java/src/com/mxgraph/reader/mxGraphViewImageReader.java
    new file mode 100644
    index 000000000..c55be77a2
    --- /dev/null
    +++ b/java/src/com/mxgraph/reader/mxGraphViewImageReader.java
    @@ -0,0 +1,288 @@
    +/**
    + * $Id: mxGraphViewImageReader.java,v 1.8 2010-01-13 10:43:46 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +
    +package com.mxgraph.reader;
    +
    +import java.awt.Color;
    +import java.awt.image.BufferedImage;
    +import java.io.FileInputStream;
    +import java.io.IOException;
    +import java.util.Map;
    +
    +import javax.xml.parsers.ParserConfigurationException;
    +import javax.xml.parsers.SAXParser;
    +import javax.xml.parsers.SAXParserFactory;
    +
    +import org.xml.sax.InputSource;
    +import org.xml.sax.SAXException;
    +import org.xml.sax.XMLReader;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.canvas.mxImageCanvas;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * A converter that renders display XML data onto a graphics canvas. This
    + * reader can only be used to generate images for encoded graph views.
    + */
    +public class mxGraphViewImageReader extends mxGraphViewReader
    +{
    +
    +	/**
    +	 * Specifies the background color. Default is null.
    +	 */
    +	protected Color background;
    +
    +	/**
    +	 * Specifies if the image should be anti-aliased. Default is true.
    +	 */
    +	protected boolean antiAlias;
    +
    +	/**
    +	 * Specifies the border which is added to the size of the graph. Default is
    +	 * 0.
    +	 */
    +	protected int border;
    +
    +	/**
    +	 * Specifies the border which is added to the size of the graph. Default is
    +	 * true.
    +	 */
    +	protected boolean cropping;
    +
    +	/**
    +	 * Defines the clip to be drawn. Default is null.
    +	 */
    +	protected mxRectangle clip;
    +
    +	/**
    +	 * Constructs a new reader with a transparent background.
    +	 */
    +	public mxGraphViewImageReader()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * Constructs a new reader with the given background color.
    +	 */
    +	public mxGraphViewImageReader(Color background)
    +	{
    +		this(background, 0);
    +	}
    +
    +	/**
    +	 * Constructs a new reader with a transparent background.
    +	 */
    +	public mxGraphViewImageReader(Color background, int border)
    +	{
    +		this(background, border, true);
    +	}
    +
    +	/**
    +	 * Constructs a new reader with a transparent background.
    +	 */
    +	public mxGraphViewImageReader(Color background, int border,
    +			boolean antiAlias)
    +	{
    +		this(background, border, antiAlias, true);
    +	}
    +
    +	/**
    +	 * Constructs a new reader with a transparent background.
    +	 */
    +	public mxGraphViewImageReader(Color background, int border,
    +			boolean antiAlias, boolean cropping)
    +	{
    +		setBackground(background);
    +		setBorder(border);
    +		setAntiAlias(antiAlias);
    +		setCropping(cropping);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getBackground()
    +	{
    +		return background;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setBackground(Color background)
    +	{
    +		this.background = background;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getBorder()
    +	{
    +		return border;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setBorder(int border)
    +	{
    +		this.border = border;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isAntiAlias()
    +	{
    +		return antiAlias;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setAntiAlias(boolean antiAlias)
    +	{
    +		this.antiAlias = antiAlias;
    +	}
    +
    +	/**
    +	 * Specifies the optional clipping rectangle.
    +	 */
    +	public boolean isCropping()
    +	{
    +		return cropping;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setCropping(boolean value)
    +	{
    +		this.cropping = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxRectangle getClip()
    +	{
    +		return clip;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setClip(mxRectangle value)
    +	{
    +		this.clip = value;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * 
    +	 * @see
    +	 * com.mxgraph.reader.mxGraphViewReader#createCanvas(java.util.Hashtable)
    +	 */
    +	public mxICanvas createCanvas(Map<String, Object> attrs)
    +	{
    +		int width = 0;
    +		int height = 0;
    +		int dx = 0;
    +		int dy = 0;
    +
    +		mxRectangle tmp = getClip();
    +
    +		if (tmp != null)
    +		{
    +			dx -= (int) tmp.getX();
    +			dy -= (int) tmp.getY();
    +			width = (int) tmp.getWidth();
    +			height = (int) tmp.getHeight();
    +		}
    +		else
    +		{
    +			int x = (int) Math.round(mxUtils.getDouble(attrs, "x"));
    +			int y = (int) Math.round(mxUtils.getDouble(attrs, "y"));
    +			width = (int) (Math.round(mxUtils.getDouble(attrs, "width")))
    +					+ border + 3;
    +			height = (int) (Math.round(mxUtils.getDouble(attrs, "height")))
    +					+ border + 3;
    +
    +			if (isCropping())
    +			{
    +				dx = -x + 3;
    +				dy = -y + 3;
    +			}
    +			else
    +			{
    +				width += x;
    +				height += y;
    +			}
    +		}
    +
    +		mxImageCanvas canvas = new mxImageCanvas(createGraphicsCanvas(), width,
    +				height, getBackground(), isAntiAlias());
    +		canvas.setTranslate(dx, dy);
    +
    +		return canvas;
    +	}
    +
    +	/**
    +	 * Hook that creates the graphics canvas.
    +	 */
    +	protected mxGraphics2DCanvas createGraphicsCanvas()
    +	{
    +		return new mxGraphics2DCanvas();
    +	}
    +
    +	/**
    +	 * Creates the image for the given display XML file. (Note: The XML file is
    +	 * an encoded mxGraphView, not mxGraphModel.)
    +	 * 
    +	 * @param filename
    +	 *            Filename of the display XML file.
    +	 * @return Returns an image representing the display XML file.
    +	 */
    +	public static BufferedImage convert(String filename,
    +			mxGraphViewImageReader viewReader)
    +			throws ParserConfigurationException, SAXException, IOException
    +	{
    +		return convert(new InputSource(new FileInputStream(filename)),
    +				viewReader);
    +	}
    +
    +	/**
    +	 * Creates the image for the given display XML input source. (Note: The XML
    +	 * is an encoded mxGraphView, not mxGraphModel.)
    +	 * 
    +	 * @param inputSource
    +	 *            Input source that contains the display XML.
    +	 * @return Returns an image representing the display XML input source.
    +	 */
    +	public static BufferedImage convert(InputSource inputSource,
    +			mxGraphViewImageReader viewReader)
    +			throws ParserConfigurationException, SAXException, IOException
    +	{
    +		BufferedImage result = null;
    +		SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
    +		XMLReader reader = parser.getXMLReader();
    +
    +		reader.setContentHandler(viewReader);
    +		reader.parse(inputSource);
    +
    +		if (viewReader.getCanvas() instanceof mxImageCanvas)
    +		{
    +			result = ((mxImageCanvas) viewReader.getCanvas()).destroy();
    +		}
    +
    +		return result;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/reader/mxGraphViewReader.java b/java/src/com/mxgraph/reader/mxGraphViewReader.java
    new file mode 100644
    index 000000000..6661d3bab
    --- /dev/null
    +++ b/java/src/com/mxgraph/reader/mxGraphViewReader.java
    @@ -0,0 +1,228 @@
    +/**
    + * $Id: mxGraphViewReader.java,v 1.33 2010-07-22 08:49:29 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.reader;
    +
    +import java.util.ArrayList;
    +import java.util.Hashtable;
    +import java.util.List;
    +import java.util.Map;
    +
    +import org.xml.sax.Attributes;
    +import org.xml.sax.SAXException;
    +import org.xml.sax.helpers.DefaultHandler;
    +
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * An abstract converter that renders display XML data onto a canvas.
    + */
    +public abstract class mxGraphViewReader extends DefaultHandler
    +{
    +
    +	/**
    +	 * Holds the canvas to be used for rendering the graph.
    +	 */
    +	protected mxICanvas canvas;
    +
    +	/**
    +	 * Holds the global scale of the graph. This is set just before
    +	 * createCanvas is called.
    +	 */
    +	protected double scale = 1;
    +
    +	/**
    +	 * Specifies if labels should be rendered as HTML markup.
    +	 */
    +	protected boolean htmlLabels = false;
    +
    +	/**
    +	 * Sets the htmlLabels switch.
    +	 */
    +	public void setHtmlLabels(boolean value)
    +	{
    +		htmlLabels = value;
    +	}
    +
    +	/**
    +	 * Returns the htmlLabels switch.
    +	 */
    +	public boolean isHtmlLabels()
    +	{
    +		return htmlLabels;
    +	}
    +
    +	/**
    +	 * Returns the canvas to be used for rendering.
    +	 * 
    +	 * @param attrs Specifies the attributes of the new canvas.
    +	 * @return Returns a new canvas.
    +	 */
    +	public abstract mxICanvas createCanvas(Map<String, Object> attrs);
    +
    +	/**
    +	 * Returns the canvas that is used for rendering the graph.
    +	 * 
    +	 * @return Returns the canvas.
    +	 */
    +	public mxICanvas getCanvas()
    +	{
    +		return canvas;
    +	}
    +
    +	/* (non-Javadoc)
    +	 * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
    +	 */
    +	public void startElement(String uri, String localName, String qName,
    +			Attributes atts) throws SAXException
    +	{
    +		String tagName = qName.toUpperCase();
    +		Map<String, Object> attrs = new Hashtable<String, Object>();
    +
    +		for (int i = 0; i < atts.getLength(); i++)
    +		{
    +			String name = atts.getQName(i);
    +
    +			// Workaround for possible null name
    +			if (name == null || name.length() == 0)
    +			{
    +				name = atts.getLocalName(i);
    +			}
    +
    +			attrs.put(name, atts.getValue(i));
    +		}
    +
    +		parseElement(tagName, attrs);
    +	}
    +
    +	/**
    +	 * Parses the given element and paints it onto the canvas.
    +	 * 
    +	 * @param tagName Name of the node to be parsed.
    +	 * @param attrs Attributes of the node to be parsed.
    +	 */
    +	public void parseElement(String tagName, Map<String, Object> attrs)
    +	{
    +		if (canvas == null && tagName.equalsIgnoreCase("graph"))
    +		{
    +			scale = mxUtils.getDouble(attrs, "scale", 1);
    +			canvas = createCanvas(attrs);
    +
    +			if (canvas != null)
    +			{
    +				canvas.setScale(scale);
    +			}
    +		}
    +		else if (canvas != null)
    +		{
    +			boolean edge = tagName.equalsIgnoreCase("edge");
    +			boolean group = tagName.equalsIgnoreCase("group");
    +			boolean vertex = tagName.equalsIgnoreCase("vertex");
    +
    +			if ((edge && attrs.containsKey("points"))
    +					|| ((vertex || group) && attrs.containsKey("x")
    +							&& attrs.containsKey("y")
    +							&& attrs.containsKey("width") && attrs
    +							.containsKey("height")))
    +			{
    +				mxCellState state = new mxCellState(null, null, attrs);
    +
    +				String label = parseState(state, edge);
    +				canvas.drawCell(state);
    +				canvas.drawLabel(label, state, isHtmlLabels());
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Parses the bounds, absolute points and label information from the style
    +	 * of the state into its respective fields and returns the label of the
    +	 * cell.
    +	 */
    +	public String parseState(mxCellState state, boolean edge)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +
    +		// Parses the bounds
    +		state.setX(mxUtils.getDouble(style, "x"));
    +		state.setY(mxUtils.getDouble(style, "y"));
    +		state.setWidth(mxUtils.getDouble(style, "width"));
    +		state.setHeight(mxUtils.getDouble(style, "height"));
    +
    +		// Parses the absolute points list
    +		List<mxPoint> pts = parsePoints(mxUtils.getString(style, "points"));
    +
    +		if (pts.size() > 0)
    +		{
    +			state.setAbsolutePoints(pts);
    +		}
    +
    +		// Parses the label and label bounds
    +		String label = mxUtils.getString(style, "label");
    +
    +		if (label != null && label.length() > 0)
    +		{
    +			mxPoint offset = new mxPoint(mxUtils.getDouble(style, "dx"),
    +					mxUtils.getDouble(style, "dy"));
    +			mxRectangle vertexBounds = (!edge) ? state : null;
    +			state.setLabelBounds(mxUtils.getLabelPaintBounds(label, state
    +					.getStyle(), mxUtils.isTrue(style, "html", false), offset,
    +					vertexBounds, scale));
    +		}
    +
    +		return label;
    +	}
    +
    +	/**
    +	 * Parses the list of points into an object-oriented representation.
    +	 * 
    +	 * @param pts String containing a list of points.
    +	 * @return Returns the points as a list of mxPoints.
    +	 */
    +	public static List<mxPoint> parsePoints(String pts)
    +	{
    +		List<mxPoint> result = new ArrayList<mxPoint>();
    +
    +		if (pts != null)
    +		{
    +			int len = pts.length();
    +			String tmp = "";
    +			String x = null;
    +
    +			for (int i = 0; i < len; i++)
    +			{
    +				char c = pts.charAt(i);
    +
    +				if (c == ',' || c == ' ')
    +				{
    +					if (x == null)
    +					{
    +						x = tmp;
    +					}
    +					else
    +					{
    +						result.add(new mxPoint(Double.parseDouble(x), Double
    +								.parseDouble(tmp)));
    +						x = null;
    +					}
    +					tmp = "";
    +				}
    +				else
    +				{
    +					tmp += c;
    +				}
    +			}
    +
    +			result.add(new mxPoint(Double.parseDouble(x), Double
    +					.parseDouble(tmp)));
    +		}
    +
    +		return result;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/reader/mxSaxOutputHandler.java b/java/src/com/mxgraph/reader/mxSaxOutputHandler.java
    new file mode 100644
    index 000000000..ed624d5c0
    --- /dev/null
    +++ b/java/src/com/mxgraph/reader/mxSaxOutputHandler.java
    @@ -0,0 +1,435 @@
    +package com.mxgraph.reader;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +import org.xml.sax.Attributes;
    +import org.xml.sax.SAXException;
    +import org.xml.sax.helpers.DefaultHandler;
    +
    +import com.mxgraph.canvas.mxICanvas2D;
    +
    +/**
    +	XMLReader reader = SAXParserFactory.newInstance().newSAXParser()
    +			.getXMLReader();
    +	reader.setContentHandler(new mxSaxExportHandler(
    +			new mxGraphicsExportCanvas(g2)));
    +	reader.parse(new InputSource(new StringReader(xml)));
    + */
    +public class mxSaxOutputHandler extends DefaultHandler
    +{
    +	/**
    +	 * 
    +	 */
    +	protected mxICanvas2D canvas;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Map<String, IElementHandler> handlers = new Hashtable<String, IElementHandler>();
    +
    +	/**
    +	 * 
    +	 */
    +	public mxSaxOutputHandler(mxICanvas2D canvas)
    +	{
    +		setCanvas(canvas);
    +		initHandlers();
    +	}
    +
    +	/**
    +	 * Sets the canvas for rendering.
    +	 */
    +	public void setCanvas(mxICanvas2D value)
    +	{
    +		canvas = value;
    +	}
    +
    +	/**
    +	 * Returns the canvas for rendering.
    +	 */
    +	public mxICanvas2D getCanvas()
    +	{
    +		return canvas;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void startElement(String uri, String localName, String qName,
    +			Attributes atts) throws SAXException
    +	{
    +		IElementHandler handler = handlers.get(qName.toLowerCase());
    +
    +		if (handler != null)
    +		{
    +			handler.parseElement(atts);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void initHandlers()
    +	{
    +		handlers.put("save", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.save();
    +			}
    +		});
    +
    +		handlers.put("restore", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.restore();
    +			}
    +		});
    +
    +		handlers.put("scale", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.scale(Double.parseDouble(atts.getValue("scale")));
    +			}
    +		});
    +
    +		handlers.put("translate", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.translate(Double.parseDouble(atts.getValue("dx")),
    +						Double.parseDouble(atts.getValue("dy")));
    +			}
    +		});
    +
    +		handlers.put("rotate", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.rotate(Double.parseDouble(atts.getValue("theta")), atts
    +						.getValue("flipH").equals("1"), atts.getValue("flipV")
    +						.equals("1"), Double.parseDouble(atts.getValue("cx")),
    +						Double.parseDouble(atts.getValue("cy")));
    +			}
    +		});
    +
    +		handlers.put("strokewidth", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setStrokeWidth(Double.parseDouble(atts.getValue("width")));
    +			}
    +		});
    +
    +		handlers.put("strokecolor", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setStrokeColor(atts.getValue("color"));
    +			}
    +		});
    +
    +		handlers.put("dashed", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setDashed(atts.getValue("dashed").equals("1"));
    +			}
    +		});
    +
    +		handlers.put("dashpattern", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setDashPattern(atts.getValue("pattern"));
    +			}
    +		});
    +
    +		handlers.put("linecap", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setLineCap(atts.getValue("cap"));
    +			}
    +		});
    +
    +		handlers.put("linejoin", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setLineJoin(atts.getValue("join"));
    +			}
    +		});
    +
    +		handlers.put("miterlimit", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setMiterLimit(Double.parseDouble(atts.getValue("limit")));
    +			}
    +		});
    +
    +		handlers.put("fontsize", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setFontSize(Double.parseDouble(atts.getValue("size")));
    +			}
    +		});
    +
    +		handlers.put("fontcolor", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setFontColor(atts.getValue("color"));
    +			}
    +		});
    +
    +		handlers.put("fontfamily", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setFontFamily(atts.getValue("family"));
    +			}
    +		});
    +
    +		handlers.put("fontstyle", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setFontStyle(Integer.parseInt(atts.getValue("style")));
    +			}
    +		});
    +
    +		handlers.put("alpha", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setAlpha(Double.parseDouble(atts.getValue("alpha")));
    +			}
    +		});
    +
    +		handlers.put("fillcolor", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setFillColor(atts.getValue("color"));
    +			}
    +		});
    +
    +		handlers.put("gradient", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setGradient(atts.getValue("c1"), atts.getValue("c2"),
    +						Double.parseDouble(atts.getValue("x")),
    +						Double.parseDouble(atts.getValue("y")),
    +						Double.parseDouble(atts.getValue("w")),
    +						Double.parseDouble(atts.getValue("h")),
    +						atts.getValue("direction"));
    +			}
    +		});
    +
    +		handlers.put("glass", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.setGlassGradient(Double.parseDouble(atts.getValue("x")),
    +						Double.parseDouble(atts.getValue("y")),
    +						Double.parseDouble(atts.getValue("w")),
    +						Double.parseDouble(atts.getValue("h")));
    +			}
    +		});
    +
    +		handlers.put("rect", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.rect(Double.parseDouble(atts.getValue("x")),
    +						Double.parseDouble(atts.getValue("y")),
    +						Double.parseDouble(atts.getValue("w")),
    +						Double.parseDouble(atts.getValue("h")));
    +			}
    +		});
    +
    +		handlers.put("roundrect", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.roundrect(Double.parseDouble(atts.getValue("x")),
    +						Double.parseDouble(atts.getValue("y")),
    +						Double.parseDouble(atts.getValue("w")),
    +						Double.parseDouble(atts.getValue("h")),
    +						Double.parseDouble(atts.getValue("dx")),
    +						Double.parseDouble(atts.getValue("dy")));
    +			}
    +		});
    +
    +		handlers.put("ellipse", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.ellipse(Double.parseDouble(atts.getValue("x")),
    +						Double.parseDouble(atts.getValue("y")),
    +						Double.parseDouble(atts.getValue("w")),
    +						Double.parseDouble(atts.getValue("h")));
    +			}
    +		});
    +
    +		handlers.put("image", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.image(Double.parseDouble(atts.getValue("x")),
    +						Double.parseDouble(atts.getValue("y")),
    +						Double.parseDouble(atts.getValue("w")),
    +						Double.parseDouble(atts.getValue("h")),
    +						atts.getValue("src"),
    +						atts.getValue("aspect").equals("1"),
    +						atts.getValue("flipH").equals("1"),
    +						atts.getValue("flipV").equals("1"));
    +			}
    +		});
    +
    +		handlers.put("text", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.text(Double.parseDouble(atts.getValue("x")), Double
    +						.parseDouble(atts.getValue("y")), Double
    +						.parseDouble(atts.getValue("w")), Double
    +						.parseDouble(atts.getValue("h")), atts.getValue("str"),
    +						atts.getValue("align"), atts.getValue("valign"), atts
    +								.getValue("vertical").equals("1"),
    +						getValue(atts, "wrap", "").equals("1"), atts
    +								.getValue("format"));
    +			}
    +		});
    +
    +		handlers.put("begin", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.begin();
    +			}
    +		});
    +
    +		handlers.put("move", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.moveTo(Double.parseDouble(atts.getValue("x")),
    +						Double.parseDouble(atts.getValue("y")));
    +			}
    +		});
    +
    +		handlers.put("line", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.lineTo(Double.parseDouble(atts.getValue("x")),
    +						Double.parseDouble(atts.getValue("y")));
    +			}
    +		});
    +
    +		handlers.put("quad", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.quadTo(Double.parseDouble(atts.getValue("x1")),
    +						Double.parseDouble(atts.getValue("y1")),
    +						Double.parseDouble(atts.getValue("x2")),
    +						Double.parseDouble(atts.getValue("y2")));
    +			}
    +		});
    +
    +		handlers.put("curve", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.curveTo(Double.parseDouble(atts.getValue("x1")),
    +						Double.parseDouble(atts.getValue("y1")),
    +						Double.parseDouble(atts.getValue("x2")),
    +						Double.parseDouble(atts.getValue("y2")),
    +						Double.parseDouble(atts.getValue("x3")),
    +						Double.parseDouble(atts.getValue("y3")));
    +			}
    +		});
    +
    +		handlers.put("close", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.close();
    +			}
    +		});
    +
    +		handlers.put("stroke", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.stroke();
    +			}
    +		});
    +
    +		handlers.put("fill", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.fill();
    +			}
    +		});
    +
    +		handlers.put("fillstroke", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		});
    +
    +		handlers.put("shadow", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.shadow(atts.getValue("value"),
    +						getValue(atts, "filled", "1").equals("1"));
    +			}
    +		});
    +
    +		handlers.put("clip", new IElementHandler()
    +		{
    +			public void parseElement(Attributes atts)
    +			{
    +				canvas.clip();
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Returns the given attribute value or an empty string.
    +	 */
    +	protected String getValue(Attributes atts, String name, String defaultValue)
    +	{
    +		String value = atts.getValue(name);
    +
    +		if (value == null)
    +		{
    +			value = defaultValue;
    +		}
    +
    +		return value;
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected interface IElementHandler
    +	{
    +		void parseElement(Attributes atts);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/reader/package.html b/java/src/com/mxgraph/reader/package.html
    new file mode 100644
    index 000000000..079ac57be
    --- /dev/null
    +++ b/java/src/com/mxgraph/reader/package.html
    @@ -0,0 +1,6 @@
    +<HTML>
    +<BODY>
    +  This package contains the classes required to turn an encoded mxGraphView
    +  into an image using SAX and without having to create a graph model.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/resources/graph.properties b/java/src/com/mxgraph/resources/graph.properties
    new file mode 100644
    index 000000000..5c9016685
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=Nodes already connected
    +containsValidationErrors=Contains validation errors
    +collapse-expand=Collapse/Expand
    +doubleClickOrientation=Doubleclick to change orientation
    diff --git a/java/src/com/mxgraph/resources/graph_de.properties b/java/src/com/mxgraph/resources/graph_de.properties
    new file mode 100644
    index 000000000..1accffe07
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph_de.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=Knoten schon verbunden
    +containsValidationErrors=Enthält Validierungsfehler
    +collapse-expand=Zusammenklappen/Auseinanderfalten
    +doubleClickOrientation=Doppelklicken um Orientierung zu ändern
    diff --git a/java/src/com/mxgraph/resources/graph_es.properties b/java/src/com/mxgraph/resources/graph_es.properties
    new file mode 100644
    index 000000000..703560e88
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph_es.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=Los nodos ya están conectados
    +containsValidationErrors=Contiene errores de validación
    +collapse-expand=Minimizar/Maximizar
    +doubleClickOrientation=Doble clic para cambiar la orientación
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/resources/graph_fr.properties b/java/src/com/mxgraph/resources/graph_fr.properties
    new file mode 100644
    index 000000000..9ded087e2
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph_fr.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=N\u0153uds déjà connectés
    +containsValidationErrors=Contient des erreurs de validation
    +collapse-expand=Réduire/Développer
    +doubleClickOrientation=Double-cliquez pour modifier l\u2019orientation
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/resources/graph_it.properties b/java/src/com/mxgraph/resources/graph_it.properties
    new file mode 100644
    index 000000000..d93815819
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph_it.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=Nodi già connessi
    +containsValidationErrors=Contiene errori di convalida
    +collapse-expand=Riduci/Espandi
    +doubleClickOrientation=Doppio click per cambiare orientamento
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/resources/graph_ja.properties b/java/src/com/mxgraph/resources/graph_ja.properties
    new file mode 100644
    index 000000000..5a50a1ffb
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph_ja.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=\u30ce\u30fc\u30c9\u304c\u3059\u3067\u306b\u63a5\u7d9a\u3055\u308c\u3066\u3044\u307e\u3059
    +containsValidationErrors=\u691c\u8a3c\u30a8\u30e9\u30fc\u304c\u3042\u308a\u307e\u3059
    +collapse-expand=\u7e2e\u5c0f/\u62e1\u5927
    +doubleClickOrientation=\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u3066\u5411\u304d\u3092\u5909\u66f4
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/resources/graph_nl.properties b/java/src/com/mxgraph/resources/graph_nl.properties
    new file mode 100644
    index 000000000..e793a5297
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph_nl.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=Knooppunten reeds verbonden
    +containsValidationErrors=Bevat validatiefouten
    +collapse-expand=Verkleinen/Vergroten
    +doubleClickOrientation=Dubbelklik om richting te veranderen
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/resources/graph_pt.properties b/java/src/com/mxgraph/resources/graph_pt.properties
    new file mode 100644
    index 000000000..a474ba4e3
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph_pt.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=Nodos já conectados 
    +containsValidationErrors=Contém erros de validação 
    +collapse-expand=Recolher/Expandir 
    +doubleClickOrientation=Clique duas vezes para mudar de orientação
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/resources/graph_ru.properties b/java/src/com/mxgraph/resources/graph_ru.properties
    new file mode 100644
    index 000000000..1fada72d6
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph_ru.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=\u0423\u0437\u043b\u044b \u0443\u0436\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b
    +containsValidationErrors=\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438
    +collapse-expand=\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c/\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c
    +doubleClickOrientation="\u0414\u0432\u0430\u0436\u0434\u044b \u0449\u0435\u043b\u043a\u043d\u0438\u0442\u0435 \u043c\u044b\u0448\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044e"
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/resources/graph_zh.properties b/java/src/com/mxgraph/resources/graph_zh.properties
    new file mode 100644
    index 000000000..d31e2c232
    --- /dev/null
    +++ b/java/src/com/mxgraph/resources/graph_zh.properties
    @@ -0,0 +1,4 @@
    +alreadyConnected=\u5df2\u8fde\u63a5\u8282\u70b9
    +containsValidationErrors=\u5305\u542b\u9a8c\u8bc1\u9519\u8bef
    +collapse-expand=\u6298\u53e0/\u5c55\u5f00
    +doubleClickOrientation=\u53cc\u51fb\u6539\u53d8\u65b9\u5411
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/shape/mxActorShape.java b/java/src/com/mxgraph/shape/mxActorShape.java
    new file mode 100644
    index 000000000..966e14e9d
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxActorShape.java
    @@ -0,0 +1,40 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Rectangle;
    +import java.awt.Shape;
    +import java.awt.geom.GeneralPath;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxActorShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public Shape createShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Rectangle temp = state.getRectangle();
    +		int x = temp.x;
    +		int y = temp.y;
    +		int w = temp.width;
    +		int h = temp.height;
    +		float width = w * 2 / 6;
    +
    +		GeneralPath path = new GeneralPath();
    +
    +		path.moveTo(x, y + h);
    +		path.curveTo(x, y + 3 * h / 5, x, y + 2 * h / 5, x + w / 2, y + 2 * h
    +				/ 5);
    +		path.curveTo(x + w / 2 - width, y + 2 * h / 5, x + w / 2 - width, y, x
    +				+ w / 2, y);
    +		path.curveTo(x + w / 2 + width, y, x + w / 2 + width, y + 2 * h / 5, x
    +				+ w / 2, y + 2 * h / 5);
    +		path.curveTo(x + w, y + 2 * h / 5, x + w, y + 3 * h / 5, x + w, y + h);
    +		path.closePath();
    +
    +		return path;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxArrowShape.java b/java/src/com/mxgraph/shape/mxArrowShape.java
    new file mode 100644
    index 000000000..9ec33c047
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxArrowShape.java
    @@ -0,0 +1,68 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Polygon;
    +import java.awt.Shape;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxArrowShape extends mxBasicShape
    +{
    +
    +	/**
    +	 *
    +	 */
    +	public Shape createShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		double scale = canvas.getScale();
    +		mxPoint p0 = state.getAbsolutePoint(0);
    +		mxPoint pe = state.getAbsolutePoint(state.getAbsolutePointCount() - 1);
    +
    +		// Geometry of arrow
    +		double spacing = mxConstants.ARROW_SPACING * scale;
    +		double width = mxConstants.ARROW_WIDTH * scale;
    +		double arrow = mxConstants.ARROW_SIZE * scale;
    +
    +		double dx = pe.getX() - p0.getX();
    +		double dy = pe.getY() - p0.getY();
    +		double dist = Math.sqrt(dx * dx + dy * dy);
    +		double length = dist - 2 * spacing - arrow;
    +
    +		// Computes the norm and the inverse norm
    +		double nx = dx / dist;
    +		double ny = dy / dist;
    +		double basex = length * nx;
    +		double basey = length * ny;
    +		double floorx = width * ny / 3;
    +		double floory = -width * nx / 3;
    +
    +		// Computes points
    +		double p0x = p0.getX() - floorx / 2 + spacing * nx;
    +		double p0y = p0.getY() - floory / 2 + spacing * ny;
    +		double p1x = p0x + floorx;
    +		double p1y = p0y + floory;
    +		double p2x = p1x + basex;
    +		double p2y = p1y + basey;
    +		double p3x = p2x + floorx;
    +		double p3y = p2y + floory;
    +		// p4 not required
    +		double p5x = p3x - 3 * floorx;
    +		double p5y = p3y - 3 * floory;
    +
    +		Polygon poly = new Polygon();
    +		poly.addPoint((int) Math.round(p0x), (int) Math.round(p0y));
    +		poly.addPoint((int) Math.round(p1x), (int) Math.round(p1y));
    +		poly.addPoint((int) Math.round(p2x), (int) Math.round(p2y));
    +		poly.addPoint((int) Math.round(p3x), (int) Math.round(p3y));
    +		poly.addPoint((int) Math.round(pe.getX() - spacing * nx), (int) Math
    +				.round(pe.getY() - spacing * ny));
    +		poly.addPoint((int) Math.round(p5x), (int) Math.round(p5y));
    +		poly.addPoint((int) Math.round(p5x + floorx), (int) Math.round(p5y
    +				+ floory));
    +
    +		return poly;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxBasicShape.java b/java/src/com/mxgraph/shape/mxBasicShape.java
    new file mode 100644
    index 000000000..af903d776
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxBasicShape.java
    @@ -0,0 +1,140 @@
    +/**
    + * $Id: mxBasicShape.java,v 1.9 2011-01-24 10:13:14 gaudenz Exp $
    + * Copyright (c) 2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.shape;
    +
    +import java.awt.Color;
    +import java.awt.Paint;
    +import java.awt.Shape;
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxBasicShape implements mxIShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Shape shape = createShape(canvas, state);
    +
    +		if (shape != null)
    +		{
    +			// Paints the background
    +			if (configureGraphics(canvas, state, true))
    +			{
    +				canvas.fillShape(shape, hasShadow(canvas, state));
    +			}
    +
    +			// Paints the foreground
    +			if (configureGraphics(canvas, state, false))
    +			{
    +				canvas.getGraphics().draw(shape);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Shape createShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Configures the graphics object ready to paint.
    +	 * @param canvas the canvas to be painted to
    +	 * @param state the state of cell to be painted
    +	 * @param background whether or not this is the background stage of 
    +	 * 			the shape paint
    +	 * @return whether or not the shape is ready to be drawn
    +	 */
    +	protected boolean configureGraphics(mxGraphics2DCanvas canvas,
    +			mxCellState state, boolean background)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +
    +		if (background)
    +		{
    +			// Paints the background of the shape
    +			Paint fillPaint = hasGradient(canvas, state) ? canvas
    +					.createFillPaint(getGradientBounds(canvas, state), style)
    +					: null;
    +
    +			if (fillPaint != null)
    +			{
    +				canvas.getGraphics().setPaint(fillPaint);
    +
    +				return true;
    +			}
    +			else
    +			{
    +				Color color = getFillColor(canvas, state);
    +				canvas.getGraphics().setColor(color);
    +
    +				return color != null;
    +			}
    +		}
    +		else
    +		{
    +			canvas.getGraphics().setPaint(null);
    +			Color color = getStrokeColor(canvas, state);
    +			canvas.getGraphics().setColor(color);
    +			canvas.getGraphics().setStroke(canvas.createStroke(style));
    +
    +			return color != null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxRectangle getGradientBounds(mxGraphics2DCanvas canvas,
    +			mxCellState state)
    +	{
    +		return state;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean hasGradient(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean hasShadow(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return mxUtils
    +				.isTrue(state.getStyle(), mxConstants.STYLE_SHADOW, false);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getFillColor(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return mxUtils.getColor(state.getStyle(), mxConstants.STYLE_FILLCOLOR);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getStrokeColor(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return mxUtils
    +				.getColor(state.getStyle(), mxConstants.STYLE_STROKECOLOR);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxCloudShape.java b/java/src/com/mxgraph/shape/mxCloudShape.java
    new file mode 100644
    index 000000000..ef689f5f9
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxCloudShape.java
    @@ -0,0 +1,48 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Rectangle;
    +import java.awt.Shape;
    +import java.awt.geom.GeneralPath;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxCloudShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public Shape createShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Rectangle temp = state.getRectangle();
    +		int x = temp.x;
    +		int y = temp.y;
    +		int w = temp.width;
    +		int h = temp.height;
    +		GeneralPath path = new GeneralPath();
    +
    +		path.moveTo((float) (x + 0.25 * w), (float) (y + 0.25 * h));
    +		path.curveTo((float) (x + 0.05 * w), (float) (y + 0.25 * h), x,
    +				(float) (y + 0.5 * h), (float) (x + 0.16 * w),
    +				(float) (y + 0.55 * h));
    +		path.curveTo(x, (float) (y + 0.66 * h), (float) (x + 0.18 * w),
    +				(float) (y + 0.9 * h), (float) (x + 0.31 * w),
    +				(float) (y + 0.8 * h));
    +		path.curveTo((float) (x + 0.4 * w), (y + h), (float) (x + 0.7 * w),
    +				(y + h), (float) (x + 0.8 * w), (float) (y + 0.8 * h));
    +		path.curveTo((x + w), (float) (y + 0.8 * h), (x + w),
    +				(float) (y + 0.6 * h), (float) (x + 0.875 * w),
    +				(float) (y + 0.5 * h));
    +		path.curveTo((x + w), (float) (y + 0.3 * h), (float) (x + 0.8 * w),
    +				(float) (y + 0.1 * h), (float) (x + 0.625 * w),
    +				(float) (y + 0.2 * h));
    +		path.curveTo((float) (x + 0.5 * w), (float) (y + 0.05 * h),
    +				(float) (x + 0.3 * w), (float) (y + 0.05 * h),
    +				(float) (x + 0.25 * w), (float) (y + 0.25 * h));
    +		path.closePath();
    +
    +		return path;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxConnectorShape.java b/java/src/com/mxgraph/shape/mxConnectorShape.java
    new file mode 100644
    index 000000000..b64a81c04
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxConnectorShape.java
    @@ -0,0 +1,195 @@
    +/**
    + * $Id: mxConnectorShape.java,v 1.23 2012-04-02 10:20:54 gaudenz Exp $
    + * Copyright (c) 2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.shape;
    +
    +import java.awt.Color;
    +import java.util.ArrayList;
    +import java.util.List;
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxLine;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxConnectorShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		if (state.getAbsolutePointCount() > 1
    +				&& configureGraphics(canvas, state, false))
    +		{
    +			List<mxPoint> pts = new ArrayList<mxPoint>(
    +					state.getAbsolutePoints());
    +			Map<String, Object> style = state.getStyle();
    +
    +			// Paints the markers and updates the points
    +			// Switch off any dash pattern for markers
    +			boolean dashed = mxUtils.isTrue(style, mxConstants.STYLE_DASHED);
    +			Object dashedValue = style.get(mxConstants.STYLE_DASHED);
    +
    +			if (dashed)
    +			{
    +				style.remove(mxConstants.STYLE_DASHED);
    +				canvas.getGraphics().setStroke(canvas.createStroke(style));
    +			}
    +
    +			translatePoint(pts, 0,
    +					paintMarker(canvas, state, true));
    +			translatePoint(
    +					pts,
    +					pts.size() - 1,
    +					paintMarker(canvas, state, false));
    +
    +			if (dashed)
    +			{
    +				// Replace the dash pattern
    +				style.put(mxConstants.STYLE_DASHED, dashedValue);
    +				canvas.getGraphics().setStroke(canvas.createStroke(style));
    +			}
    +
    +			paintPolyline(canvas, pts, state.getStyle());
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void paintPolyline(mxGraphics2DCanvas canvas,
    +			List<mxPoint> points, Map<String, Object> style)
    +	{
    +		boolean rounded = isRounded(style)
    +				&& canvas.getScale() > mxConstants.MIN_SCALE_FOR_ROUNDED_LINES;
    +
    +		canvas.paintPolyline(points.toArray(new mxPoint[points.size()]),
    +				rounded);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isRounded(Map<String, Object> style)
    +	{
    +		return mxUtils.isTrue(style, mxConstants.STYLE_ROUNDED, false);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	private void translatePoint(List<mxPoint> points, int index, mxPoint offset)
    +	{
    +		if (offset != null)
    +		{
    +			mxPoint pt = (mxPoint) points.get(index).clone();
    +			pt.setX(pt.getX() + offset.getX());
    +			pt.setY(pt.getY() + offset.getY());
    +			points.set(index, pt);
    +		}
    +	}
    +
    +	/**
    +	 * Draws the marker for the given edge.
    +	 * 
    +	 * @return the offset of the marker from the end of the line
    +	 */
    +	public mxPoint paintMarker(mxGraphics2DCanvas canvas, mxCellState state, boolean source)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +		float strokeWidth = (float) (mxUtils.getFloat(style,
    +				mxConstants.STYLE_STROKEWIDTH, 1) * canvas.getScale());
    +		String type = mxUtils.getString(style,
    +				(source) ? mxConstants.STYLE_STARTARROW
    +						: mxConstants.STYLE_ENDARROW, "");
    +		float size = (mxUtils.getFloat(style,
    +				(source) ? mxConstants.STYLE_STARTSIZE
    +						: mxConstants.STYLE_ENDSIZE,
    +				mxConstants.DEFAULT_MARKERSIZE));
    +		Color color = mxUtils.getColor(style, mxConstants.STYLE_STROKECOLOR);
    +		canvas.getGraphics().setColor(color);
    +
    +		double absSize = size * canvas.getScale();
    +
    +		List<mxPoint> points = state.getAbsolutePoints();
    +		mxLine markerVector = getMarkerVector(points, source, absSize);
    +		mxPoint p0 = new mxPoint(markerVector.getX(), markerVector.getY());
    +		mxPoint pe = markerVector.getEndPoint();
    +
    +		mxPoint offset = null;
    +
    +		// Computes the norm and the inverse norm
    +		double dx = pe.getX() - p0.getX();
    +		double dy = pe.getY() - p0.getY();
    +
    +		double dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +		double unitX = dx / dist;
    +		double unitY = dy / dist;
    +		double nx = unitX * absSize;
    +		double ny = unitY * absSize;
    +
    +		// Allow for stroke width in the end point used and the 
    +		// orthogonal vectors describing the direction of the
    +		// marker
    +		double strokeX = unitX * strokeWidth;
    +		double strokeY = unitY * strokeWidth;
    +		pe = (mxPoint) pe.clone();
    +		pe.setX(pe.getX() - strokeX / 2.0);
    +		pe.setY(pe.getY() - strokeY / 2.0);
    +		
    +		mxIMarker marker = mxMarkerRegistry.getMarker(type);
    +		
    +		if (marker != null)
    +		{
    +			offset = marker.paintMarker(canvas, state, type, pe, nx, ny, absSize, source);
    +			
    +			if (offset != null)
    +			{
    +				offset.setX(offset.getX() - strokeX / 2.0);
    +				offset.setY(offset.getY() - strokeY / 2.0);
    +			}
    +		}
    +		else
    +		{
    +			// Offset for the strokewidth
    +			nx = dx * strokeWidth / dist;
    +			ny = dy * strokeWidth / dist;
    +
    +			offset = new mxPoint(-strokeX / 2.0, -strokeY / 2.0);
    +		}
    +
    +		return offset;
    +	}
    +
    +	/**
    +	 * Hook to override creation of the vector that the marker is drawn along
    +	 * since it may not be the same as the vector between any two control
    +	 * points
    +	 * @param points the guide points of the connector
    +	 * @param source whether the marker is at the source end
    +	 * @param markerSize the scaled maximum length of the marker
    +	 * @return a line describing the vector the marker should be drawn along
    +	 */
    +	protected mxLine getMarkerVector(List<mxPoint> points, boolean source,
    +			double markerSize)
    +	{
    +		if (source)
    +		{
    +			return new mxLine(points.get(1), points.get(0));
    +		}
    +		else
    +		{
    +			int pointCount = points.size();
    +			
    +			return new mxLine(points.get(pointCount - 2),
    +					points.get(pointCount - 1));
    +		}
    +	}
    +	
    +}
    diff --git a/java/src/com/mxgraph/shape/mxCurveLabelShape.java b/java/src/com/mxgraph/shape/mxCurveLabelShape.java
    new file mode 100644
    index 000000000..97561f883
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxCurveLabelShape.java
    @@ -0,0 +1,700 @@
    +/**
    + * $Id: mxCurveLabelShape.java,v 1.32 2011-06-10 12:11:27 david Exp $
    + * Copyright (c) 2010, David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.shape;
    +
    +import java.awt.Color;
    +import java.awt.Font;
    +import java.awt.FontMetrics;
    +import java.awt.Graphics2D;
    +import java.awt.Rectangle;
    +import java.awt.RenderingHints;
    +import java.awt.Shape;
    +import java.awt.font.FontRenderContext;
    +import java.awt.font.GlyphVector;
    +import java.awt.geom.AffineTransform;
    +import java.awt.geom.Line2D;
    +import java.text.Bidi;
    +import java.text.BreakIterator;
    +import java.util.ArrayList;
    +import java.util.List;
    +import java.util.Locale;
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxCurve;
    +import com.mxgraph.util.mxLine;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * Draws the edge label along a curve derived from the curve describing
    + * the edge's path
    + */
    +public class mxCurveLabelShape implements mxITextShape
    +{
    +	/**
    +	 * Cache of the label text
    +	 */
    +	protected String lastValue;
    +
    +	/**
    +	 * Cache of the label font
    +	 */
    +	protected Font lastFont;
    +
    +	/**
    +	 * Cache of the last set of guide points that this label was calculated for
    +	 */
    +	protected List<mxPoint> lastPoints;
    +
    +	/**
    +	 * Cache of the points between which drawing straight lines views as a
    +	 * curve
    +	 */
    +	protected mxCurve curve;
    +
    +	/**
    +	 * Cache the state associated with this shape
    +	 */
    +	protected mxCellState state;
    +
    +	/**
    +	 * Cache of information describing characteristics relating to drawing 
    +	 * each glyph of this label
    +	 */
    +	protected LabelGlyphCache[] labelGlyphs;
    +
    +	/**
    +	 * Cache of the total length of the branch label
    +	 */
    +	protected double labelSize;
    +
    +	/**
    +	 * Cache of the bounds of the label
    +	 */
    +	protected mxRectangle labelBounds;
    +
    +	/**
    +	 * ADT to encapsulate label positioning information
    +	 */
    +	protected LabelPosition labelPosition = new LabelPosition();
    +
    +	/**
    +	 * Buffer at both ends of the label
    +	 */
    +	public static double LABEL_BUFFER = 30;
    +
    +	/**
    +	 * Factor by which text on the inside of curve is stretched
    +	 */
    +	public static double CURVE_TEXT_STRETCH_FACTOR = 20.0;
    +
    +	/**
    +	 * Indicates that a glyph does not have valid drawing bounds, usually 
    +	 * because it is not visible
    +	 */
    +	public static mxRectangle INVALID_GLYPH_BOUNDS = new mxRectangle(0, 0, 0, 0);
    +
    +	/**
    +	 * The index of the central glyph of the label that is visible
    +	 */
    +	public int centerVisibleIndex = 0;
    +
    +	/**
    +	 * Specifies if image aspect should be preserved in drawImage. Default is true.
    +	 */
    +	public static Object FONT_FRACTIONALMETRICS = RenderingHints.VALUE_FRACTIONALMETRICS_DEFAULT;
    +
    +	/**
    +	 * Cache of BIDI glyph vectors
    +	 */
    +	public GlyphVector[] rtlGlyphVectors;
    +
    +	/**
    +	 * Shared FRC for font size calculations
    +	 */
    +	public static FontRenderContext frc = new FontRenderContext(null, false,
    +			false);
    +
    +	/**
    +	 *
    +	 */
    +	protected boolean rotationEnabled = true;
    +
    +	public mxCurveLabelShape(mxCellState state, mxCurve value)
    +	{
    +		this.state = state;
    +		this.curve = value;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public boolean getRotationEnabled()
    +	{
    +		return rotationEnabled;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void setRotationEnabled(boolean value)
    +	{
    +		rotationEnabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, String text,
    +			mxCellState state, Map<String, Object> style)
    +	{
    +		Rectangle rect = state.getLabelBounds().getRectangle();
    +		Graphics2D g = canvas.getGraphics();
    +
    +		if (labelGlyphs == null)
    +		{
    +			updateLabelBounds(text, style);
    +		}
    +
    +		if (labelGlyphs != null
    +				&& (g.getClipBounds() == null || g.getClipBounds().intersects(
    +						rect)))
    +		{
    +			// Creates a temporary graphics instance for drawing this shape
    +			float opacity = mxUtils.getFloat(style, mxConstants.STYLE_OPACITY,
    +					100);
    +			Graphics2D previousGraphics = g;
    +			g = canvas.createTemporaryGraphics(style, opacity, state);
    +
    +			Font font = mxUtils.getFont(style, canvas.getScale());
    +			g.setFont(font);
    +
    +			Color fontColor = mxUtils.getColor(style,
    +					mxConstants.STYLE_FONTCOLOR, Color.black);
    +			g.setColor(fontColor);
    +
    +			g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    +					RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    +
    +			g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
    +					FONT_FRACTIONALMETRICS);
    +
    +			for (int j = 0; j < labelGlyphs.length; j++)
    +			{
    +				mxLine parallel = labelGlyphs[j].glyphGeometry;
    +
    +				if (labelGlyphs[j].visible && parallel != null
    +						&& parallel != mxCurve.INVALID_POSITION)
    +				{
    +					mxPoint parallelEnd = parallel.getEndPoint();
    +					double x = parallelEnd.getX();
    +					double rotation = (Math.atan(parallelEnd.getY() / x));
    +
    +					if (x < 0)
    +					{
    +						// atan only ranges from -PI/2 to PI/2, have to offset
    +						// for negative x values
    +						rotation += Math.PI;
    +					}
    +
    +					final AffineTransform old = g.getTransform();
    +					g.translate(parallel.getX(), parallel.getY());
    +					g.rotate(rotation);
    +					Shape letter = labelGlyphs[j].glyphShape;
    +					g.fill(letter);
    +					g.setTransform(old);
    +				}
    +			}
    +
    +			g.dispose();
    +			g = previousGraphics;
    +		}
    +	}
    +
    +	/**
    +	 * Updates the cached position and size of each glyph in the edge label. 
    +	 * @param label the entire string of the label.
    +	 * @param style the edge style
    +	 */
    +	public mxRectangle updateLabelBounds(String label, Map<String, Object> style)
    +	{
    +		double scale = state.getView().getScale();
    +		Font font = mxUtils.getFont(style, scale);
    +		FontMetrics fm = mxUtils.getFontMetrics(font);
    +		int descent = 0;
    +		int ascent = 0;
    +
    +		if (fm != null)
    +		{
    +			descent = fm.getDescent();
    +			ascent = fm.getAscent();
    +		}
    +
    +		// Check that the size of the widths array matches 
    +		// that of the label size
    +		if (labelGlyphs == null || (!label.equals(lastValue)))
    +		{
    +			labelGlyphs = new LabelGlyphCache[label.length()];
    +		}
    +
    +		if (!label.equals(lastValue) || !font.equals(lastFont))
    +		{
    +			char[] labelChars = label.toCharArray();
    +			ArrayList<LabelGlyphCache> glyphList = new ArrayList<LabelGlyphCache>();
    +			boolean bidiRequired = Bidi.requiresBidi(labelChars, 0,
    +					labelChars.length);
    +
    +			labelSize = 0;
    +
    +			if (bidiRequired)
    +			{
    +				Bidi bidi = new Bidi(label,
    +						Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
    +
    +				int runCount = bidi.getRunCount();
    +
    +				if (rtlGlyphVectors == null
    +						|| rtlGlyphVectors.length != runCount)
    +				{
    +					rtlGlyphVectors = new GlyphVector[runCount];
    +				}
    +
    +				for (int i = 0; i < bidi.getRunCount(); i++)
    +				{
    +					final String labelSection = label.substring(
    +							bidi.getRunStart(i), bidi.getRunLimit(i));
    +					rtlGlyphVectors[i] = font
    +							.layoutGlyphVector(mxCurveLabelShape.frc,
    +									labelSection.toCharArray(), 0,
    +									labelSection.length(),
    +									Font.LAYOUT_RIGHT_TO_LEFT);
    +				}
    +
    +				int charCount = 0;
    +
    +				for (GlyphVector gv : rtlGlyphVectors)
    +				{
    +					float vectorOffset = 0.0f;
    +
    +					for (int j = 0; j < gv.getNumGlyphs(); j++)
    +					{
    +						Shape shape = gv.getGlyphOutline(j, -vectorOffset, 0);
    +
    +						LabelGlyphCache qlyph = new LabelGlyphCache();
    +						glyphList.add(qlyph);
    +						qlyph.glyphShape = shape;
    +						mxRectangle size = new mxRectangle(gv.getGlyphLogicalBounds(j).getBounds2D());
    +						qlyph.labelGlyphBounds = size;
    +						labelSize += size.getWidth();
    +						vectorOffset += size.getWidth();
    +
    +						charCount++;
    +					}
    +				}
    +			}
    +			else
    +			{
    +				rtlGlyphVectors = null;
    +				//String locale = System.getProperty("user.language");
    +				// Character iterator required where character is split over
    +				// string elements
    +				BreakIterator it = BreakIterator.getCharacterInstance(Locale.getDefault());
    +				it.setText(label);
    +
    +				for (int i = 0; i < label.length();)
    +				{
    +					int next = it.next();
    +					int characterLen = 1;
    +					
    +					if (next != BreakIterator.DONE)
    +					{
    +						characterLen = next - i;
    +					}
    +
    +					String glyph = label.substring(i, i + characterLen);
    +					
    +					LabelGlyphCache labelGlyph = new LabelGlyphCache();
    +					glyphList.add(labelGlyph);
    +					labelGlyph.glyph = glyph;
    +					GlyphVector vector = font.createGlyphVector(frc, glyph);
    +					labelGlyph.glyphShape = vector.getOutline();
    +
    +					if (fm == null)
    +					{
    +						mxRectangle size = new mxRectangle(
    +								font.getStringBounds(glyph,
    +										mxCurveLabelShape.frc));
    +						labelGlyph.labelGlyphBounds = size;
    +						labelSize += size.getWidth();
    +					}
    +					else
    +					{
    +						double width = fm.stringWidth(glyph);
    +						labelGlyph.labelGlyphBounds = new mxRectangle(0, 0,
    +								width, ascent);
    +						labelSize += width;
    +					}
    +
    +					i += characterLen;
    +					
    +
    +				}
    +			}
    +
    +			// Update values used to determine whether or not the label cache 
    +			// is valid or not
    +			lastValue = label;
    +			lastFont = font;
    +			lastPoints = curve.getGuidePoints();
    +			this.labelGlyphs = glyphList.toArray(new LabelGlyphCache[glyphList.size()]);
    +		}
    +
    +		// Store the start/end buffers that pad out the ends of the branch so the label is
    +		// visible. We work initially as the start section being at the start of the
    +		// branch and the end at the end of the branch. Note that the actual label curve
    +		// might be reversed, so we allow for this after completing the buffer calculations,
    +		// otherwise they'd need to be constant isReversed() checks throughout
    +		labelPosition.startBuffer = LABEL_BUFFER * scale;
    +		labelPosition.endBuffer = LABEL_BUFFER * scale;
    +
    +		calculationLabelPosition(style, label);
    +
    +		if (curve.isLabelReversed())
    +		{
    +			double temp = labelPosition.startBuffer;
    +			labelPosition.startBuffer = labelPosition.endBuffer;
    +			labelPosition.endBuffer = temp;
    +		}
    +
    +		double curveLength = curve.getCurveLength(mxCurve.LABEL_CURVE);
    +		double currentPos = labelPosition.startBuffer / curveLength;
    +		double endPos = 1.0 - (labelPosition.endBuffer / curveLength);
    +
    +		mxRectangle overallLabelBounds = null;
    +		centerVisibleIndex = 0;
    +
    +		double currentCurveDelta = 0.0;
    +		double curveDeltaSignificant = 0.3;
    +		double curveDeltaMax = 0.5;
    +		mxLine nextParallel = null;
    +
    +		// TODO on translation just move the points, don't recalculate
    +		// Might be better than the curve is the only thing updated and
    +		// the curve shapes listen to curve events
    +		// !lastPoints.equals(curve.getGuidePoints())
    +		for (int j = 0; j < labelGlyphs.length; j++)
    +		{
    +			if (currentPos > endPos)
    +			{
    +				labelGlyphs[j].visible = false;
    +				continue;
    +			}
    +
    +			mxLine parallel = nextParallel;
    +
    +			if (currentCurveDelta > curveDeltaSignificant
    +					|| nextParallel == null)
    +			{
    +				parallel = curve.getCurveParallel(mxCurve.LABEL_CURVE,
    +						currentPos);
    +
    +				currentCurveDelta = 0.0;
    +				nextParallel = null;
    +			}
    +
    +			labelGlyphs[j].glyphGeometry = parallel;
    +
    +			if (parallel == mxCurve.INVALID_POSITION)
    +			{
    +				continue;
    +			}
    +
    +			// Get the four corners of the rotated rectangle bounding the glyph
    +			// The drawing bounds of the glyph is the unrotated rect that
    +			// just bounds those four corners
    +			final double w = labelGlyphs[j].labelGlyphBounds.getWidth();
    +			final double h = labelGlyphs[j].labelGlyphBounds.getHeight();
    +			final double x = parallel.getEndPoint().getX();
    +			final double y = parallel.getEndPoint().getY();
    +			// Bottom left
    +			double p1X = parallel.getX() - (descent * y);
    +			double minX = p1X, maxX = p1X;
    +			double p1Y = parallel.getY() + (descent * x);
    +			double minY = p1Y, maxY = p1Y;
    +			// Top left
    +			double p2X = p1X + ((h + descent) * y);
    +			double p2Y = p1Y - ((h + descent) * x);
    +			minX = Math.min(minX, p2X);
    +			maxX = Math.max(maxX, p2X);
    +			minY = Math.min(minY, p2Y);
    +			maxY = Math.max(maxY, p2Y);
    +			// Bottom right
    +			double p3X = p1X + (w * x);
    +			double p3Y = p1Y + (w * y);
    +			minX = Math.min(minX, p3X);
    +			maxX = Math.max(maxX, p3X);
    +			minY = Math.min(minY, p3Y);
    +			maxY = Math.max(maxY, p3Y);
    +			// Top right
    +			double p4X = p2X + (w * x);
    +			double p4Y = p2Y + (w * y);
    +			minX = Math.min(minX, p4X);
    +			maxX = Math.max(maxX, p4X);
    +			minY = Math.min(minY, p4Y);
    +			maxY = Math.max(maxY, p4Y);
    +
    +			minX -= 2 * scale;
    +			minY -= 2 * scale;
    +			maxX += 2 * scale;
    +			maxY += 2 * scale;
    +
    +			// Hook for sub-classers
    +			postprocessGlyph(curve, label, j, currentPos);
    +
    +			// Need to allow for text on inside of curve bends. Need to get the 
    +			// parallel for the next section, if there is an excessive
    +			// inner curve, advance the current position accordingly
    +
    +			double currentPosCandidate = currentPos
    +					+ (labelGlyphs[j].labelGlyphBounds.getWidth() + labelPosition.defaultInterGlyphSpace)
    +					/ curveLength;
    +
    +			nextParallel = curve.getCurveParallel(mxCurve.LABEL_CURVE,
    +					currentPosCandidate);
    +
    +			currentPos = currentPosCandidate;
    +
    +			mxPoint nextVector = nextParallel.getEndPoint();
    +			double end2X = nextVector.getX();
    +			double end2Y = nextVector.getY();
    +
    +			if (nextParallel != mxCurve.INVALID_POSITION
    +					&& j + 1 < label.length())
    +			{
    +				// Extend the current parallel line in its direction
    +				// by the length of the next parallel. Use the approximate
    +				// deviation to work out the angle change
    +				double deltaX = Math.abs(x - end2X);
    +				double deltaY = Math.abs(y - end2Y);
    +
    +				// The difference as a proportion of the length of the next 
    +				// vector. 1 means a variation of 60 degrees.
    +				currentCurveDelta = Math
    +						.sqrt(deltaX * deltaX + deltaY * deltaY);
    +			}
    +
    +			if (currentCurveDelta > curveDeltaSignificant)
    +			{
    +				// Work out which direction the curve is going in
    +				int ccw = Line2D.relativeCCW(0, 0, x, y, end2X, end2Y);
    +
    +				if (ccw == 1)
    +				{
    +					// Text is on inside of curve
    +					if (currentCurveDelta > curveDeltaMax)
    +					{
    +						// Don't worry about excessive deltas, if they
    +						// are big the label curve will be screwed anyway
    +						currentCurveDelta = curveDeltaMax;
    +					}
    +
    +					double textBuffer = currentCurveDelta
    +							* CURVE_TEXT_STRETCH_FACTOR / curveLength;
    +					currentPos += textBuffer;
    +					endPos += textBuffer;
    +				}
    +			}
    +
    +			if (labelGlyphs[j].drawingBounds != null)
    +			{
    +				labelGlyphs[j].drawingBounds.setRect(minX, minY, maxX - minX,
    +						maxY - minY);
    +			}
    +			else
    +			{
    +				labelGlyphs[j].drawingBounds = new mxRectangle(minX, minY, maxX
    +						- minX, maxY - minY);
    +			}
    +
    +			if (overallLabelBounds == null)
    +			{
    +				overallLabelBounds = (mxRectangle) labelGlyphs[j].drawingBounds
    +						.clone();
    +			}
    +			else
    +			{
    +				overallLabelBounds.add(labelGlyphs[j].drawingBounds);
    +			}
    +
    +			labelGlyphs[j].visible = true;
    +			centerVisibleIndex++;
    +		}
    +
    +		centerVisibleIndex /= 2;
    +
    +		if (overallLabelBounds == null)
    +		{
    +			// Return a small rectangle in the center of the label curve
    +			// Null label bounds causes NPE when editing
    +			mxLine labelCenter = curve.getCurveParallel(mxCurve.LABEL_CURVE,
    +					0.5);
    +			overallLabelBounds = new mxRectangle(labelCenter.getX(),
    +					labelCenter.getY(), 1, 1);
    +		}
    +
    +		this.labelBounds = overallLabelBounds;
    +		return overallLabelBounds;
    +	}
    +
    +	/**
    +	 * Hook for sub-classers to perform additional processing on
    +	 * each glyph
    +	 * @param curve The curve object holding the label curve
    +	 * @param label the text label of the curve
    +	 * @param j the index of the label
    +	 * @param currentPos the distance along the label curve the glyph is
    +	 */
    +	protected void postprocessGlyph(mxCurve curve, String label, int j,
    +			double currentPos)
    +	{
    +	}
    +
    +	/**
    +	 * Returns whether or not the rectangle passed in hits any part of this
    +	 * curve.
    +	 * @param rect the rectangle to detect for a hit
    +	 * @return whether or not the rectangle hits this curve
    +	 */
    +	public boolean intersectsRect(Rectangle rect)
    +	{
    +		// To save CPU, we can test if the rectangle intersects the entire
    +		// bounds of this label
    +		if ( (labelBounds != null
    +				&& (!labelBounds.getRectangle().intersects(rect)) )
    +				|| labelGlyphs == null )
    +		{
    +			return false;
    +		}
    +
    +		for (int i = 0; i < labelGlyphs.length; i++)
    +		{
    +			if (labelGlyphs[i].visible
    +					&& rect.intersects(labelGlyphs[i].drawingBounds
    +							.getRectangle()))
    +			{
    +				return true;
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Hook method to override how the label is positioned on the curve
    +	 * @param style the style of the curve
    +	 * @param label the string label to be displayed on the curve
    +	 */
    +	protected void calculationLabelPosition(Map<String, Object> style,
    +			String label)
    +	{
    +		double curveLength = curve.getCurveLength(mxCurve.LABEL_CURVE);
    +		double availableLabelSpace = curveLength - labelPosition.startBuffer
    +				- labelPosition.endBuffer;
    +		labelPosition.startBuffer = Math.max(labelPosition.startBuffer,
    +				labelPosition.startBuffer + availableLabelSpace / 2 - labelSize
    +						/ 2);
    +		labelPosition.endBuffer = Math.max(labelPosition.endBuffer,
    +				labelPosition.endBuffer + availableLabelSpace / 2 - labelSize
    +						/ 2);
    +	}
    +
    +	/**
    +	 * @return the curve
    +	 */
    +	public mxCurve getCurve()
    +	{
    +		return curve;
    +	}
    +
    +	/**
    +	 * @param curve the curve to set
    +	 */
    +	public void setCurve(mxCurve curve)
    +	{
    +		this.curve = curve;
    +	}
    +
    +	/**
    +	 * Utility class to describe the characteristics of each glyph of a branch
    +	 * branch label. Each instance represents one glyph
    +	 *
    +	 */
    +	public class LabelGlyphCache
    +	{
    +		/**
    +		 * Cache of the bounds of the individual element of the label of this 
    +		 * edge. Note that these are the unrotated values used to determine the 
    +		 * width of each glyph.
    +		 */
    +		public mxRectangle labelGlyphBounds;
    +
    +		/**
    +		 * The un-rotated rectangle that just bounds this character
    +		 */
    +		public mxRectangle drawingBounds;
    +
    +		/**
    +		 * The glyph being drawn
    +		 */
    +		public String glyph;
    +
    +		/**
    +		 * A line parallel to the curve segment at which the element is to be
    +		 * drawn
    +		 */
    +		public mxLine glyphGeometry;
    +
    +		/**
    +		 * The cached shape of the glyph
    +		 */
    +		public Shape glyphShape;
    +
    +		/**
    +		 * Whether or not the glyph should be drawn
    +		 */
    +		public boolean visible;
    +	}
    +
    +	/**
    +	 * Utility class that stores details of how the label is positioned
    +	 * on the curve
    +	 */
    +	public class LabelPosition
    +	{
    +		public double startBuffer = LABEL_BUFFER;
    +
    +		public double endBuffer = LABEL_BUFFER;
    +
    +		public double defaultInterGlyphSpace = 0;;
    +	}
    +
    +	public mxRectangle getLabelBounds()
    +	{
    +		return labelBounds;
    +	}
    +
    +	/**
    +	 * Returns the drawing bounds of the central indexed visible glyph
    +	 * @return the centerVisibleIndex
    +	 */
    +	public mxRectangle getCenterVisiblePosition()
    +	{
    +		return labelGlyphs[centerVisibleIndex].drawingBounds;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/shape/mxCurveShape.java b/java/src/com/mxgraph/shape/mxCurveShape.java
    new file mode 100644
    index 000000000..2d2a5d128
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxCurveShape.java
    @@ -0,0 +1,133 @@
    +/**
    + * $Id: mxCurveShape.java,v 1.14 2011-01-04 12:04:04 david Exp $
    + * Copyright (c) 2009-2010, David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.shape;
    +
    +import java.awt.RenderingHints;
    +import java.util.List;
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxCurve;
    +import com.mxgraph.util.mxLine;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxCurveShape extends mxConnectorShape
    +{
    +	/**
    +	 * Cache of the points between which drawing straight lines views as a
    +	 * curve
    +	 */
    +	protected mxCurve curve;
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCurveShape()
    +	{
    +		this(new mxCurve());
    +	}
    +	
    +	/**
    +	 * 
    +	 */
    +	public mxCurveShape(mxCurve curve)
    +	{
    +		this.curve = curve;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCurve getCurve()
    +	{
    +		return curve;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Object keyStrokeHint = canvas.getGraphics().getRenderingHint(
    +				RenderingHints.KEY_STROKE_CONTROL);
    +		canvas.getGraphics().setRenderingHint(
    +				RenderingHints.KEY_STROKE_CONTROL,
    +				RenderingHints.VALUE_STROKE_PURE);
    +
    +		super.paintShape(canvas, state);
    +
    +		canvas.getGraphics().setRenderingHint(
    +				RenderingHints.KEY_STROKE_CONTROL, keyStrokeHint);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void paintPolyline(mxGraphics2DCanvas canvas,
    +			List<mxPoint> points, Map<String, Object> style)
    +	{
    +		double scale = canvas.getScale();
    +		validateCurve(points, scale, style);
    +
    +		canvas.paintPolyline(curve.getCurvePoints(mxCurve.CORE_CURVE), false);
    +	}
    +
    +	/**
    +	 * Forces underlying curve to a valid state
    +	 * @param points
    +	 */
    +	public void validateCurve(List<mxPoint> points, double scale,
    +			Map<String, Object> style)
    +	{
    +		if (curve == null)
    +		{
    +			curve = new mxCurve(points);
    +		}
    +		else
    +		{
    +			curve.updateCurve(points);
    +		}
    +
    +		curve.setLabelBuffer(scale * mxConstants.DEFAULT_LABEL_BUFFER);
    +	}
    +
    +	/**
    +	 * Hook to override creation of the vector that the marker is drawn along
    +	 * since it may not be the same as the vector between any two control
    +	 * points
    +	 * @param points the guide points of the connector
    +	 * @param source whether the marker is at the source end
    +	 * @param markerSize the scaled maximum length of the marker
    +	 * @return a line describing the vector the marker should be drawn along
    +	 */
    +	protected mxLine getMarkerVector(List<mxPoint> points, boolean source,
    +			double markerSize)
    +	{
    +		double curveLength = curve.getCurveLength(mxCurve.CORE_CURVE);
    +		double markerRatio = markerSize / curveLength;
    +		if (markerRatio >= 1.0)
    +		{
    +			markerRatio = 1.0;
    +		}
    +
    +		if (source)
    +		{
    +			mxLine sourceVector = curve.getCurveParallel(mxCurve.CORE_CURVE,
    +					markerRatio);
    +			return new mxLine(sourceVector.getX(), sourceVector.getY(),
    +					points.get(0));
    +		}
    +		else
    +		{
    +			mxLine targetVector = curve.getCurveParallel(mxCurve.CORE_CURVE,
    +					1.0 - markerRatio);
    +			int pointCount = points.size();
    +			return new mxLine(targetVector.getX(), targetVector.getY(),
    +					points.get(pointCount - 1));
    +		}
    +	}
    +}
    diff --git a/java/src/com/mxgraph/shape/mxCylinderShape.java b/java/src/com/mxgraph/shape/mxCylinderShape.java
    new file mode 100644
    index 000000000..636964453
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxCylinderShape.java
    @@ -0,0 +1,49 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Rectangle;
    +import java.awt.geom.Area;
    +import java.awt.geom.Ellipse2D;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxCylinderShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * Draws a cylinder for the given parameters.
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Rectangle rect = state.getRectangle();
    +		int x = rect.x;
    +		int y = rect.y;
    +		int w = rect.width;
    +		int h = rect.height;
    +		int h4 = h / 4;
    +		int h2 = h4 / 2;
    +		int r = w;
    +
    +		// Paints the background
    +		if (configureGraphics(canvas, state, true))
    +		{
    +			Area area = new Area(new Rectangle(x, y + h4 / 2, r, h - h4));
    +			area.add(new Area(new Rectangle(x, y + h4 / 2, r, h - h4)));
    +			area.add(new Area(new Ellipse2D.Float(x, y, r, h4)));
    +			area.add(new Area(new Ellipse2D.Float(x, y + h - h4, r, h4)));
    +
    +			canvas.fillShape(area, hasShadow(canvas, state));
    +		}
    +
    +		// Paints the foreground
    +		if (configureGraphics(canvas, state, false))
    +		{
    +			canvas.getGraphics().drawOval(x, y, r, h4);
    +			canvas.getGraphics().drawLine(x, y + h2, x, y + h - h2);
    +			canvas.getGraphics().drawLine(x + w, y + h2, x + w, y + h - h2);
    +			// TODO: Use QuadCurve2D.Float() for painting the arc
    +			canvas.getGraphics().drawArc(x, y + h - h4, r, h4, 0, -180);
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxDefaultTextShape.java b/java/src/com/mxgraph/shape/mxDefaultTextShape.java
    new file mode 100644
    index 000000000..1fe6aeb97
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxDefaultTextShape.java
    @@ -0,0 +1,141 @@
    +/**
    + * $Id: mxDefaultTextShape.java,v 1.10 2011-03-23 13:30:22 gaudenz Exp $
    + * Copyright (c) 2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.shape;
    +
    +import java.awt.Color;
    +import java.awt.Font;
    +import java.awt.FontMetrics;
    +import java.awt.Graphics2D;
    +import java.awt.Rectangle;
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxDefaultTextShape implements mxITextShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, String text,
    +			mxCellState state, Map<String, Object> style)
    +	{
    +		Rectangle rect = state.getLabelBounds().getRectangle();
    +		Graphics2D g = canvas.getGraphics();
    +
    +		if (g.getClipBounds() == null || g.getClipBounds().intersects(rect))
    +		{
    +			boolean horizontal = mxUtils.isTrue(style,
    +					mxConstants.STYLE_HORIZONTAL, true);
    +			double scale = canvas.getScale();
    +			int x = rect.x;
    +			int y = rect.y;
    +			int w = rect.width;
    +			int h = rect.height;
    +
    +			if (!horizontal)
    +			{
    +				g.rotate(-Math.PI / 2, x + w / 2, y + h / 2);
    +				g.translate(w / 2 - h / 2, h / 2 - w / 2);
    +			}
    +
    +			Color fontColor = mxUtils.getColor(style,
    +					mxConstants.STYLE_FONTCOLOR, Color.black);
    +			g.setColor(fontColor);
    +
    +			// Shifts the y-coordinate down by the ascent plus a workaround
    +			// for the line not starting at the exact vertical location
    +			Font scaledFont = mxUtils.getFont(style, scale);
    +			g.setFont(scaledFont);
    +			int fontSize = mxUtils.getInt(style, mxConstants.STYLE_FONTSIZE,
    +					mxConstants.DEFAULT_FONTSIZE);
    +			FontMetrics fm = g.getFontMetrics();
    +			int scaledFontSize = scaledFont.getSize();
    +			double fontScaleFactor = ((double) scaledFontSize)
    +					/ ((double) fontSize);
    +			// This factor is the amount by which the font is smaller/
    +			// larger than we expect for the given scale. 1 means it's
    +			// correct, 0.8 means the font is 0.8 the size we expected
    +			// when scaled, etc.
    +			double fontScaleRatio = fontScaleFactor / scale;
    +			// The y position has to be moved by (1 - ratio) * height / 2
    +			y += 2 * fm.getMaxAscent() - fm.getHeight()
    +					+ mxConstants.LABEL_INSET * scale;
    +
    +			Object vertAlign = mxUtils.getString(style,
    +					mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE);
    +			double vertAlignProportion = 0.5;
    +
    +			if (vertAlign.equals(mxConstants.ALIGN_TOP))
    +			{
    +				vertAlignProportion = 0;
    +			}
    +			else if (vertAlign.equals(mxConstants.ALIGN_BOTTOM))
    +			{
    +				vertAlignProportion = 1.0;
    +			}
    +
    +			y += (1.0 - fontScaleRatio) * h * vertAlignProportion;
    +
    +			// Gets the alignment settings
    +			Object align = mxUtils.getString(style, mxConstants.STYLE_ALIGN,
    +					mxConstants.ALIGN_CENTER);
    +
    +			if (align.equals(mxConstants.ALIGN_LEFT))
    +			{
    +				x += mxConstants.LABEL_INSET * scale;
    +			}
    +			else if (align.equals(mxConstants.ALIGN_RIGHT))
    +			{
    +				x -= mxConstants.LABEL_INSET * scale;
    +			}
    +
    +			// Draws the text line by line
    +			String[] lines = text.split("\n");
    +			
    +			for (int i = 0; i < lines.length; i++)
    +			{
    +				int dx = 0;
    +
    +				if (align.equals(mxConstants.ALIGN_CENTER))
    +				{
    +					int sw = fm.stringWidth(lines[i]);
    +
    +					if (horizontal)
    +					{
    +						dx = (w - sw) / 2;
    +					}
    +					else
    +					{
    +						dx = (h - sw) / 2;
    +					}
    +				}
    +				else if (align.equals(mxConstants.ALIGN_RIGHT))
    +				{
    +					int sw = fm.stringWidth(lines[i]);
    +					dx = ((horizontal) ? w : h) - sw;
    +				}
    +
    +				g.drawString(lines[i], x + dx, y);
    +				postProcessLine(text, lines[i], fm, canvas, x + dx, y);
    +				y += fm.getHeight() + mxConstants.LINESPACING;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Hook to add functionality after a line has been drawn
    +	 * @param text the entire label text
    +	 * @param line the line at the specified location
    +	 * @param fm the text font metrics
    +	 * @param canvas the canvas object currently being painted to
    +	 * @param x the x co-ord of the baseline of the text line
    +	 * @param y the y co-ord of the baseline of the text line
    +	 */
    +	protected void postProcessLine(String text, String line, FontMetrics fm, mxGraphics2DCanvas canvas, int x, int y){}
    +}
    diff --git a/java/src/com/mxgraph/shape/mxDoubleEllipseShape.java b/java/src/com/mxgraph/shape/mxDoubleEllipseShape.java
    new file mode 100644
    index 000000000..24a9d36ac
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxDoubleEllipseShape.java
    @@ -0,0 +1,33 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Rectangle;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxDoubleEllipseShape extends mxEllipseShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		super.paintShape(canvas, state);
    +
    +		int inset = (int) Math.round((mxUtils.getFloat(state.getStyle(),
    +				mxConstants.STYLE_STROKEWIDTH, 1) + 3)
    +				* canvas.getScale());
    +
    +		Rectangle rect = state.getRectangle();
    +		int x = rect.x + inset;
    +		int y = rect.y + inset;
    +		int w = rect.width - 2 * inset;
    +		int h = rect.height - 2 * inset;
    +		
    +		canvas.getGraphics().drawOval(x, y, w, h);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxEllipseShape.java b/java/src/com/mxgraph/shape/mxEllipseShape.java
    new file mode 100644
    index 000000000..b5adcd8e5
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxEllipseShape.java
    @@ -0,0 +1,23 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Rectangle;
    +import java.awt.Shape;
    +import java.awt.geom.Ellipse2D;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxEllipseShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public Shape createShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Rectangle temp = state.getRectangle();
    +
    +		return new Ellipse2D.Float(temp.x, temp.y, temp.width, temp.height);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxHexagonShape.java b/java/src/com/mxgraph/shape/mxHexagonShape.java
    new file mode 100644
    index 000000000..9bc19fe3c
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxHexagonShape.java
    @@ -0,0 +1,52 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Polygon;
    +import java.awt.Rectangle;
    +import java.awt.Shape;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxHexagonShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public Shape createShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Rectangle temp = state.getRectangle();
    +		int x = temp.x;
    +		int y = temp.y;
    +		int w = temp.width;
    +		int h = temp.height;
    +		String direction = mxUtils.getString(state.getStyle(),
    +				mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_EAST);
    +		Polygon hexagon = new Polygon();
    +
    +		if (direction.equals(mxConstants.DIRECTION_NORTH)
    +				|| direction.equals(mxConstants.DIRECTION_SOUTH))
    +		{
    +			hexagon.addPoint(x + (int) (0.5 * w), y);
    +			hexagon.addPoint(x + w, y + (int) (0.25 * h));
    +			hexagon.addPoint(x + w, y + (int) (0.75 * h));
    +			hexagon.addPoint(x + (int) (0.5 * w), y + h);
    +			hexagon.addPoint(x, y + (int) (0.75 * h));
    +			hexagon.addPoint(x, y + (int) (0.25 * h));
    +		}
    +		else
    +		{
    +			hexagon.addPoint(x + (int) (0.25 * w), y);
    +			hexagon.addPoint(x + (int) (0.75 * w), y);
    +			hexagon.addPoint(x + w, y + (int) (0.5 * h));
    +			hexagon.addPoint(x + (int) (0.75 * w), y + h);
    +			hexagon.addPoint(x + (int) (0.25 * w), y + h);
    +			hexagon.addPoint(x, y + (int) (0.5 * h));
    +		}
    +
    +		return hexagon;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxHtmlTextShape.java b/java/src/com/mxgraph/shape/mxHtmlTextShape.java
    new file mode 100644
    index 000000000..610f2e727
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxHtmlTextShape.java
    @@ -0,0 +1,120 @@
    +/**
    + * $Id: mxHtmlTextShape.java,v 1.8 2012-05-10 11:29:43 gaudenz Exp $
    + * Copyright (c) 2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.shape;
    +
    +import java.awt.Graphics2D;
    +import java.awt.Rectangle;
    +import java.util.Map;
    +
    +import javax.swing.CellRendererPane;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxLightweightLabel;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * To set global CSS for all HTML labels, use the following code:
    + * 
    + * <pre>
    + * mxGraphics2DCanvas.putTextShape(mxGraphics2DCanvas.TEXT_SHAPE_HTML,
    + *   new mxHtmlTextShape()
    + *   {
    + *     protected String createHtmlDocument(Map<String, Object> style, String text)
    + *     {
    + *       return mxUtils.createHtmlDocument(style, text, 1, 0,
    + *           "<style type=\"text/css\">.selectRef { " +
    + *           "font-size:9px;font-weight:normal; }</style>");
    + *     }
    + *   }
    + * );
    + * </pre> 
    + */
    +public class mxHtmlTextShape implements mxITextShape
    +{
    +
    +	/**
    +	 * Specifies if linefeeds should be replaced with breaks in HTML markup.
    +	 * Default is true.
    +	 */
    +	protected boolean replaceHtmlLinefeeds = true;
    +
    +	/**
    +	 * Returns replaceHtmlLinefeeds
    +	 */
    +	public boolean isReplaceHtmlLinefeeds()
    +	{
    +		return replaceHtmlLinefeeds;
    +	}
    +
    +	/**
    +	 * Returns replaceHtmlLinefeeds
    +	 */
    +	public void setReplaceHtmlLinefeeds(boolean value)
    +	{
    +		replaceHtmlLinefeeds = value;
    +	}
    +	
    +	/**
    +	 * 
    +	 */
    +	protected String createHtmlDocument(Map<String, Object> style,
    +			String text)
    +	{
    +		return mxUtils.createHtmlDocument(style,  text);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, String text,
    +			mxCellState state, Map<String, Object> style)
    +	{
    +		mxLightweightLabel textRenderer = mxLightweightLabel
    +				.getSharedInstance();
    +		CellRendererPane rendererPane = canvas.getRendererPane();
    +		Rectangle rect = state.getLabelBounds().getRectangle();
    +		Graphics2D g = canvas.getGraphics();
    +
    +		if (textRenderer != null
    +				&& rendererPane != null
    +				&& (g.getClipBounds() == null || g.getClipBounds().intersects(
    +						rect)))
    +		{
    +			double scale = canvas.getScale();
    +			int x = rect.x;
    +			int y = rect.y;
    +			int w = rect.width;
    +			int h = rect.height;
    +
    +			if (!mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL, true))
    +			{
    +				g.rotate(-Math.PI / 2, x + w / 2, y + h / 2);
    +				g.translate(w / 2 - h / 2, h / 2 - w / 2);
    +
    +				int tmp = w;
    +				w = h;
    +				h = tmp;
    +			}
    +
    +			// Replaces the linefeeds with BR tags
    +			if (isReplaceHtmlLinefeeds())
    +			{
    +				text = text.replaceAll("\n", "<br>");
    +			}
    +
    +			// Renders the scaled text
    +			textRenderer.setText(createHtmlDocument(style, text));
    +			textRenderer.setFont(mxUtils.getFont(style, canvas.getScale()));
    +			g.scale(scale, scale);
    +			rendererPane.paintComponent(g, textRenderer, rendererPane,
    +					(int) (x / scale) + mxConstants.LABEL_INSET,
    +					(int) (y / scale) + mxConstants.LABEL_INSET,
    +					(int) (w / scale), (int) (h / scale), true);
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxIMarker.java b/java/src/com/mxgraph/shape/mxIMarker.java
    new file mode 100644
    index 000000000..161b45ef9
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxIMarker.java
    @@ -0,0 +1,15 @@
    +package com.mxgraph.shape;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxCellState;
    +
    +public interface mxIMarker
    +{
    +	/**
    +	 * 
    +	 */
    +	mxPoint paintMarker(mxGraphics2DCanvas canvas, mxCellState state, String type,
    +			mxPoint pe, double nx, double ny, double size, boolean source);
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxIShape.java b/java/src/com/mxgraph/shape/mxIShape.java
    new file mode 100644
    index 000000000..090359402
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxIShape.java
    @@ -0,0 +1,13 @@
    +package com.mxgraph.shape;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.view.mxCellState;
    +
    +public interface mxIShape
    +{
    +	/**
    +	 * 
    +	 */
    +	void paintShape(mxGraphics2DCanvas canvas, mxCellState state);
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxITextShape.java b/java/src/com/mxgraph/shape/mxITextShape.java
    new file mode 100644
    index 000000000..f6e2dbadf
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxITextShape.java
    @@ -0,0 +1,20 @@
    +/**
    + * $Id: mxITextShape.java,v 1.3 2010-07-18 19:47:20 david Exp $
    + * Copyright (c) 2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.shape;
    +
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.view.mxCellState;
    +
    +public interface mxITextShape
    +{
    +	/**
    +	 * 
    +	 */
    +	void paintShape(mxGraphics2DCanvas canvas, String text, mxCellState state,
    +			Map<String, Object> style);
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxImageShape.java b/java/src/com/mxgraph/shape/mxImageShape.java
    new file mode 100644
    index 000000000..fdf229eb4
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxImageShape.java
    @@ -0,0 +1,80 @@
    +/**
    + * $Id: mxImageShape.java,v 1.6 2011-01-05 11:20:51 gaudenz Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.shape;
    +
    +import java.awt.Color;
    +import java.awt.Rectangle;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * A rectangular shape that contains a single image
    + */
    +public class mxImageShape extends mxRectangleShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		super.paintShape(canvas, state);
    +
    +		boolean flipH = mxUtils.isTrue(state.getStyle(),
    +				mxConstants.STYLE_IMAGE_FLIPH, false);
    +		boolean flipV = mxUtils.isTrue(state.getStyle(),
    +				mxConstants.STYLE_IMAGE_FLIPV, false);
    +
    +		canvas.drawImage(getImageBounds(canvas, state),
    +				getImageForStyle(canvas, state),
    +				mxGraphics2DCanvas.PRESERVE_IMAGE_ASPECT, flipH, flipV);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Rectangle getImageBounds(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return state.getRectangle();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean hasGradient(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return false;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public String getImageForStyle(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return canvas.getImageForStyle(state.getStyle());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getFillColor(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return mxUtils.getColor(state.getStyle(),
    +				mxConstants.STYLE_IMAGE_BACKGROUND);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getStrokeColor(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return mxUtils.getColor(state.getStyle(),
    +				mxConstants.STYLE_IMAGE_BORDER);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxLabelShape.java b/java/src/com/mxgraph/shape/mxLabelShape.java
    new file mode 100644
    index 000000000..348010083
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxLabelShape.java
    @@ -0,0 +1,146 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Color;
    +import java.awt.GradientPaint;
    +import java.awt.Rectangle;
    +import java.awt.geom.GeneralPath;
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxLabelShape extends mxImageShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		super.paintShape(canvas, state);
    +
    +		if (mxUtils.isTrue(state.getStyle(), mxConstants.STYLE_GLASS, false))
    +		{
    +			drawGlassEffect(canvas, state);
    +		}
    +	}
    +
    +	/**
    +	 * Draws the glass effect
    +	 */
    +	public static void drawGlassEffect(mxGraphics2DCanvas canvas,
    +			mxCellState state)
    +	{
    +		double size = 0.4;
    +		canvas.getGraphics().setPaint(
    +				new GradientPaint((float) state.getX(), (float) state.getY(),
    +						new Color(1, 1, 1, 0.9f), (float) (state.getX()),
    +						(float) (state.getY() + state.getHeight() * size),
    +						new Color(1, 1, 1, 0.3f)));
    +
    +		float sw = (float) (mxUtils.getFloat(state.getStyle(),
    +				mxConstants.STYLE_STROKEWIDTH, 1) * canvas.getScale() / 2);
    +
    +		GeneralPath path = new GeneralPath();
    +		path.moveTo((float) state.getX() - sw, (float) state.getY() - sw);
    +		path.lineTo((float) state.getX() - sw,
    +				(float) (state.getY() + state.getHeight() * size));
    +		path.quadTo((float) (state.getX() + state.getWidth() * 0.5),
    +				(float) (state.getY() + state.getHeight() * 0.7),
    +				(float) (state.getX() + state.getWidth() + sw),
    +				(float) (state.getY() + state.getHeight() * size));
    +		path.lineTo((float) (state.getX() + state.getWidth() + sw),
    +				(float) state.getY() - sw);
    +		path.closePath();
    +
    +		canvas.getGraphics().fill(path);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Rectangle getImageBounds(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +		double scale = canvas.getScale();
    +		String imgAlign = mxUtils.getString(style,
    +				mxConstants.STYLE_IMAGE_ALIGN, mxConstants.ALIGN_LEFT);
    +		String imgValign = mxUtils.getString(style,
    +				mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,
    +				mxConstants.ALIGN_MIDDLE);
    +		int imgWidth = (int) (mxUtils.getInt(style,
    +				mxConstants.STYLE_IMAGE_WIDTH, mxConstants.DEFAULT_IMAGESIZE) * scale);
    +		int imgHeight = (int) (mxUtils.getInt(style,
    +				mxConstants.STYLE_IMAGE_HEIGHT, mxConstants.DEFAULT_IMAGESIZE) * scale);
    +		int spacing = (int) (mxUtils
    +				.getInt(style, mxConstants.STYLE_SPACING, 2) * scale);
    +
    +		mxRectangle imageBounds = new mxRectangle(state);
    +
    +		if (imgAlign.equals(mxConstants.ALIGN_CENTER))
    +		{
    +			imageBounds.setX(imageBounds.getX()
    +					+ (imageBounds.getWidth() - imgWidth) / 2);
    +		}
    +		else if (imgAlign.equals(mxConstants.ALIGN_RIGHT))
    +		{
    +			imageBounds.setX(imageBounds.getX() + imageBounds.getWidth()
    +					- imgWidth - spacing - 2);
    +		}
    +		else
    +		// LEFT
    +		{
    +			imageBounds.setX(imageBounds.getX() + spacing + 4);
    +		}
    +
    +		if (imgValign.equals(mxConstants.ALIGN_TOP))
    +		{
    +			imageBounds.setY(imageBounds.getY() + spacing);
    +		}
    +		else if (imgValign.equals(mxConstants.ALIGN_BOTTOM))
    +		{
    +			imageBounds.setY(imageBounds.getY() + imageBounds.getHeight()
    +					- imgHeight - spacing);
    +		}
    +		else
    +		// MIDDLE
    +		{
    +			imageBounds.setY(imageBounds.getY()
    +					+ (imageBounds.getHeight() - imgHeight) / 2);
    +		}
    +
    +		imageBounds.setWidth(imgWidth);
    +		imageBounds.setHeight(imgHeight);
    +
    +		return imageBounds.getRectangle();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getFillColor(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return mxUtils.getColor(state.getStyle(), mxConstants.STYLE_FILLCOLOR);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getStrokeColor(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return mxUtils
    +				.getColor(state.getStyle(), mxConstants.STYLE_STROKECOLOR);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean hasGradient(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		return true;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxLineShape.java b/java/src/com/mxgraph/shape/mxLineShape.java
    new file mode 100644
    index 000000000..50acf521e
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxLineShape.java
    @@ -0,0 +1,58 @@
    +package com.mxgraph.shape;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxLineShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		if (configureGraphics(canvas, state, false))
    +		{
    +			boolean rounded = mxUtils.isTrue(state.getStyle(),
    +					mxConstants.STYLE_ROUNDED, false)
    +					&& canvas.getScale() > mxConstants.MIN_SCALE_FOR_ROUNDED_LINES;
    +
    +			canvas.paintPolyline(createPoints(canvas, state), rounded);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxPoint[] createPoints(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		String direction = mxUtils.getString(state.getStyle(),
    +				mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_EAST);
    +
    +		mxPoint p0, pe;
    +
    +		if (direction.equals(mxConstants.DIRECTION_EAST)
    +				|| direction.equals(mxConstants.DIRECTION_WEST))
    +		{
    +			double mid = state.getCenterY();
    +			p0 = new mxPoint(state.getX(), mid);
    +			pe = new mxPoint(state.getX() + state.getWidth(), mid);
    +		}
    +		else
    +		{
    +			double mid = state.getCenterX();
    +			p0 = new mxPoint(mid, state.getY());
    +			pe = new mxPoint(mid, state.getY() + state.getHeight());
    +		}
    +
    +		mxPoint[] points = new mxPoint[2];
    +		points[0] = p0;
    +		points[1] = pe;
    +
    +		return points;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxMarkerRegistry.java b/java/src/com/mxgraph/shape/mxMarkerRegistry.java
    new file mode 100644
    index 000000000..a60497cff
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxMarkerRegistry.java
    @@ -0,0 +1,149 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Polygon;
    +import java.awt.Shape;
    +import java.awt.geom.Ellipse2D;
    +import java.awt.geom.Line2D;
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxMarkerRegistry
    +{
    +	/**
    +	 * 
    +	 */
    +	protected static Map<String, mxIMarker> markers = new Hashtable<String, mxIMarker>();
    +
    +	static
    +	{
    +		mxIMarker tmp = new mxIMarker()
    +		{
    +			public mxPoint paintMarker(mxGraphics2DCanvas canvas,
    +					mxCellState state, String type, mxPoint pe, double nx,
    +					double ny, double size, boolean source)
    +			{
    +				Polygon poly = new Polygon();
    +				poly.addPoint((int) Math.round(pe.getX()),
    +						(int) Math.round(pe.getY()));
    +				poly.addPoint((int) Math.round(pe.getX() - nx - ny / 2),
    +						(int) Math.round(pe.getY() - ny + nx / 2));
    +
    +				if (type.equals(mxConstants.ARROW_CLASSIC))
    +				{
    +					poly.addPoint((int) Math.round(pe.getX() - nx * 3 / 4),
    +							(int) Math.round(pe.getY() - ny * 3 / 4));
    +				}
    +
    +				poly.addPoint((int) Math.round(pe.getX() + ny / 2 - nx),
    +						(int) Math.round(pe.getY() - ny - nx / 2));
    +
    +				if (mxUtils.isTrue(state.getStyle(), (source) ? "startFill" : "endFill", true))
    +				{
    +					canvas.fillShape(poly);
    +				}
    +				
    +				canvas.getGraphics().draw(poly);
    +
    +				return new mxPoint(-nx, -ny);
    +			}
    +		};
    +
    +		registerMarker(mxConstants.ARROW_CLASSIC, tmp);
    +		registerMarker(mxConstants.ARROW_BLOCK, tmp);
    +
    +		registerMarker(mxConstants.ARROW_OPEN, new mxIMarker()
    +		{
    +			public mxPoint paintMarker(mxGraphics2DCanvas canvas,
    +					mxCellState state, String type, mxPoint pe, double nx,
    +					double ny, double size, boolean source)
    +			{
    +				canvas.getGraphics().draw(
    +						new Line2D.Float((int) Math.round(pe.getX() - nx - ny
    +								/ 2),
    +								(int) Math.round(pe.getY() - ny + nx / 2),
    +								(int) Math.round(pe.getX() - nx / 6),
    +								(int) Math.round(pe.getY() - ny / 6)));
    +				canvas.getGraphics().draw(
    +						new Line2D.Float((int) Math.round(pe.getX() - nx / 6),
    +								(int) Math.round(pe.getY() - ny / 6),
    +								(int) Math.round(pe.getX() + ny / 2 - nx),
    +								(int) Math.round(pe.getY() - ny - nx / 2)));
    +
    +				return new mxPoint(-nx / 2, -ny / 2);
    +			}
    +		});
    +		
    +		registerMarker(mxConstants.ARROW_OVAL, new mxIMarker()
    +		{
    +			public mxPoint paintMarker(mxGraphics2DCanvas canvas,
    +					mxCellState state, String type, mxPoint pe, double nx,
    +					double ny, double size, boolean source)
    +			{
    +				double cx = pe.getX() - nx / 2;
    +				double cy = pe.getY() - ny / 2;
    +				double a = size / 2;
    +				Shape shape = new Ellipse2D.Double(cx - a, cy - a, size, size);
    +
    +				if (mxUtils.isTrue(state.getStyle(), (source) ? "startFill" : "endFill", true))
    +				{
    +					canvas.fillShape(shape);
    +				}
    +				
    +				canvas.getGraphics().draw(shape);
    +
    +				return new mxPoint(-nx / 2, -ny / 2);
    +			}
    +		});
    +		
    +		
    +		registerMarker(mxConstants.ARROW_DIAMOND, new mxIMarker()
    +		{
    +			public mxPoint paintMarker(mxGraphics2DCanvas canvas,
    +					mxCellState state, String type, mxPoint pe, double nx,
    +					double ny, double size, boolean source)
    +			{
    +				Polygon poly = new Polygon();
    +				poly.addPoint((int) Math.round(pe.getX()),
    +						(int) Math.round(pe.getY()));
    +				poly.addPoint((int) Math.round(pe.getX() - nx / 2 - ny / 2),
    +						(int) Math.round(pe.getY() + nx / 2 - ny / 2));
    +				poly.addPoint((int) Math.round(pe.getX() - nx),
    +						(int) Math.round(pe.getY() - ny));
    +				poly.addPoint((int) Math.round(pe.getX() - nx / 2 + ny / 2),
    +						(int) Math.round(pe.getY() - ny / 2 - nx / 2));
    +
    +				if (mxUtils.isTrue(state.getStyle(), (source) ? "startFill" : "endFill", true))
    +				{
    +					canvas.fillShape(poly);
    +				}
    +				
    +				canvas.getGraphics().draw(poly);
    +
    +				return new mxPoint(-nx / 2, -ny / 2);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static mxIMarker getMarker(String name)
    +	{
    +		return markers.get(name);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static void registerMarker(String name, mxIMarker marker)
    +	{
    +		markers.put(name, marker);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxRectangleShape.java b/java/src/com/mxgraph/shape/mxRectangleShape.java
    new file mode 100644
    index 000000000..9f7ecd38d
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxRectangleShape.java
    @@ -0,0 +1,121 @@
    +/**
    + * $Id: mxRectangleShape.java,v 1.5 2012-01-13 13:12:37 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.shape;
    +
    +import java.awt.Rectangle;
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxRectangleShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +
    +		if (mxUtils.isTrue(style, mxConstants.STYLE_ROUNDED, false))
    +		{
    +			Rectangle tmp = state.getRectangle();
    +
    +			int x = tmp.x;
    +			int y = tmp.y;
    +			int w = tmp.width;
    +			int h = tmp.height;
    +			int radius = getArcSize(w, h);
    +
    +			boolean shadow = hasShadow(canvas, state);
    +			int shadowOffsetX = (shadow) ? mxConstants.SHADOW_OFFSETX : 0;
    +			int shadowOffsetY = (shadow) ? mxConstants.SHADOW_OFFSETY : 0;
    +
    +			if (canvas.getGraphics().hitClip(x, y, w + shadowOffsetX,
    +					h + shadowOffsetY))
    +			{
    +				// Paints the optional shadow
    +				if (shadow)
    +				{
    +					canvas.getGraphics().setColor(mxSwingConstants.SHADOW_COLOR);
    +					canvas.getGraphics().fillRoundRect(
    +							x + mxConstants.SHADOW_OFFSETX,
    +							y + mxConstants.SHADOW_OFFSETY, w, h, radius,
    +							radius);
    +				}
    +
    +				// Paints the background
    +				if (configureGraphics(canvas, state, true))
    +				{
    +					canvas.getGraphics().fillRoundRect(x, y, w, h, radius,
    +							radius);
    +				}
    +
    +				// Paints the foreground
    +				if (configureGraphics(canvas, state, false))
    +				{
    +					canvas.getGraphics().drawRoundRect(x, y, w, h, radius,
    +							radius);
    +				}
    +			}
    +		}
    +		else
    +		{
    +			Rectangle rect = state.getRectangle();
    +
    +			// Paints the background
    +			if (configureGraphics(canvas, state, true))
    +			{
    +				canvas.fillShape(rect, hasShadow(canvas, state));
    +			}
    +
    +			// Paints the foreground
    +			if (configureGraphics(canvas, state, false))
    +			{
    +				canvas.getGraphics().drawRect(rect.x, rect.y, rect.width,
    +						rect.height);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Computes the arc size for the given dimension.
    +	 * 
    +	 * @param w Width of the rectangle.
    +	 * @param h Height of the rectangle.
    +	 * @return Returns the arc size for the given dimension.
    +	 */
    +	public int getArcSize(int w, int h)
    +	{
    +		int arcSize;
    +
    +		if (w <= h)
    +		{
    +			arcSize = (int) Math.round(h
    +					* mxConstants.RECTANGLE_ROUNDING_FACTOR);
    +
    +			if (arcSize > (w / 2))
    +			{
    +				arcSize = w / 2;
    +			}
    +		}
    +		else
    +		{
    +			arcSize = (int) Math.round(w
    +					* mxConstants.RECTANGLE_ROUNDING_FACTOR);
    +
    +			if (arcSize > (h / 2))
    +			{
    +				arcSize = h / 2;
    +			}
    +		}
    +		return arcSize;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxRhombusShape.java b/java/src/com/mxgraph/shape/mxRhombusShape.java
    new file mode 100644
    index 000000000..9eb469eda
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxRhombusShape.java
    @@ -0,0 +1,35 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Polygon;
    +import java.awt.Rectangle;
    +import java.awt.Shape;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxRhombusShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public Shape createShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Rectangle temp = state.getRectangle();
    +		int x = temp.x;
    +		int y = temp.y;
    +		int w = temp.width;
    +		int h = temp.height;
    +		int halfWidth = w / 2;
    +		int halfHeight = h / 2;
    +
    +		Polygon rhombus = new Polygon();
    +		rhombus.addPoint(x + halfWidth, y);
    +		rhombus.addPoint(x + w, y + halfHeight);
    +		rhombus.addPoint(x + halfWidth, y + h);
    +		rhombus.addPoint(x, y + halfHeight);
    +
    +		return rhombus;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxStencil.java b/java/src/com/mxgraph/shape/mxStencil.java
    new file mode 100644
    index 000000000..d1254b068
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxStencil.java
    @@ -0,0 +1,712 @@
    +/**
    + * $Id: mxStencil.java,v 1.8 2012-04-24 13:56:56 gaudenz Exp $
    + * Copyright (c) 2010-2012, JGraph Ltd
    + */
    +package com.mxgraph.shape;
    +
    +import java.util.Map;
    +
    +import org.w3c.dom.Element;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.canvas.mxGraphicsCanvas2D;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * Implements a stencil for the given XML definition. This class implements the mxGraph
    + * stencil schema.
    + */
    +public class mxStencil implements mxIShape
    +{
    +	/**
    +	 * Holds the top-level node of the stencil definition.
    +	 */
    +	protected Element desc;
    +
    +	/**
    +	 * Holds the aspect of the shape. Default is "auto".
    +	 */
    +	protected String aspect = null;
    +
    +	/**
    +	 * Holds the width of the shape. Default is 100.
    +	 */
    +	protected double w0 = 100;
    +
    +	/**
    +	 * Holds the height of the shape. Default is 100.
    +	 */
    +	protected double h0 = 100;
    +
    +	/**
    +	 * Holds the XML node with the stencil description.
    +	 */
    +	protected Element bgNode = null;
    +
    +	/**
    +	 * Holds the XML node with the stencil description.
    +	 */
    +	protected Element fgNode = null;
    +
    +	/**
    +	 * Holds the strokewidth direction from the description.
    +	 */
    +	protected String strokewidth = null;
    +
    +	/**
    +	 * Holds the last x-position of the cursor.
    +	 */
    +	protected double lastMoveX = 0;
    +
    +	/**
    +	 * Holds the last y-position of the cursor.
    +	 */
    +	protected double lastMoveY = 0;
    +
    +	/**
    +	 * Constructs a new stencil for the given mxGraph shape description.
    +	 */
    +	public mxStencil(Element description)
    +	{
    +		setDescription(description);
    +	}
    +	
    +	/**
    +	 * Returns the description.
    +	 */
    +	public Element getDescription()
    +	{
    +		return desc;
    +	}
    +	
    +	/**
    +	 * Sets the description.
    +	 */
    +	public void setDescription(Element value)
    +	{
    +		desc = value;
    +		parseDescription();
    +	}
    +
    +	/**
    +	 * Creates the canvas for rendering the stencil.
    +	 */
    +	protected mxGraphicsCanvas2D createCanvas(mxGraphics2DCanvas gc)
    +	{
    +		return new mxGraphicsCanvas2D(gc.getGraphics());
    +	}
    +	
    +	/**
    +	 * Paints the stencil for the given state.
    +	 */
    +	public void paintShape(mxGraphics2DCanvas gc, mxCellState state)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +		mxGraphicsCanvas2D canvas = createCanvas(gc);
    +
    +		double rotation = mxUtils.getDouble(style, mxConstants.STYLE_ROTATION,
    +				0);
    +		String direction = mxUtils.getString(style,
    +				mxConstants.STYLE_DIRECTION, null);
    +
    +		// Default direction is east (ignored if rotation exists)
    +		if (direction != null)
    +		{
    +			if (direction.equals("north"))
    +			{
    +				rotation += 270;
    +			}
    +			else if (direction.equals("west"))
    +			{
    +				rotation += 180;
    +			}
    +			else if (direction.equals("south"))
    +			{
    +				rotation += 90;
    +			}
    +		}
    +
    +		// New styles for shape flipping the stencil
    +		boolean flipH = mxUtils.isTrue(style, mxConstants.STYLE_STENCIL_FLIPH,
    +				false);
    +		boolean flipV = mxUtils.isTrue(style, mxConstants.STYLE_STENCIL_FLIPV,
    +				false);
    +
    +		if (flipH && flipV)
    +		{
    +			rotation += 180;
    +			flipH = false;
    +			flipV = false;
    +		}
    +
    +		// Saves the global state for each cell
    +		canvas.save();
    +
    +		// Adds rotation and horizontal/vertical flipping
    +		rotation = rotation % 360;
    +
    +		if (rotation != 0 || flipH || flipV)
    +		{
    +			canvas.rotate(rotation, flipH, flipV, state.getCenterX(),
    +					state.getCenterY());
    +		}
    +
    +		// Note: Overwritten in mxStencil.paintShape (can depend on aspect)
    +		double scale = state.getView().getScale();
    +		double sw = mxUtils.getDouble(style, mxConstants.STYLE_STROKEWIDTH, 1)
    +				* scale;
    +		canvas.setStrokeWidth(sw);
    +
    +		double alpha = mxUtils.getDouble(style, mxConstants.STYLE_OPACITY, 100) / 100;
    +		String gradientColor = mxUtils.getString(style,
    +				mxConstants.STYLE_GRADIENTCOLOR, null);
    +
    +		// Converts colors with special keyword none to null
    +		if (gradientColor != null && gradientColor.equals(mxConstants.NONE))
    +		{
    +			gradientColor = null;
    +		}
    +
    +		String fillColor = mxUtils.getString(style,
    +				mxConstants.STYLE_FILLCOLOR, null);
    +
    +		if (fillColor != null && fillColor.equals(mxConstants.NONE))
    +		{
    +			fillColor = null;
    +		}
    +
    +		String strokeColor = mxUtils.getString(style,
    +				mxConstants.STYLE_STROKECOLOR, null);
    +
    +		if (strokeColor != null && strokeColor.equals(mxConstants.NONE))
    +		{
    +			strokeColor = null;
    +		}
    +
    +		// Draws the shadow if the fillColor is not transparent
    +		if (mxUtils.isTrue(style, mxConstants.STYLE_SHADOW, false))
    +		{
    +			drawShadow(canvas, state, rotation, flipH, flipV, state, alpha, fillColor != null);
    +		}
    +
    +		canvas.setAlpha(alpha);
    +
    +		// Sets the dashed state
    +		if (mxUtils.isTrue(style, mxConstants.STYLE_DASHED, false))
    +		{
    +			canvas.setDashed(true);
    +		}
    +
    +		// Draws background and foreground
    +		if (strokeColor != null || fillColor != null)
    +		{
    +			if (strokeColor != null)
    +			{
    +				canvas.setStrokeColor(strokeColor);
    +			}
    +
    +			if (fillColor != null)
    +			{
    +				if (gradientColor != null
    +						&& !gradientColor.equals("transparent"))
    +				{
    +					canvas.setGradient(fillColor, gradientColor, state.getX(),
    +							state.getY(), state.getWidth(), state.getHeight(),
    +							direction);
    +				}
    +				else
    +				{
    +					canvas.setFillColor(fillColor);
    +				}
    +			}
    +
    +			// Draws background and foreground of shape
    +			drawShape(canvas, state, state, true);
    +			drawShape(canvas, state, state, false);
    +		}
    +	}
    +	
    +	/**
    +	 * Draws the shadow.
    +	 */
    +	protected void drawShadow(mxGraphicsCanvas2D canvas, mxCellState state, double rotation, boolean flipH,
    +			boolean flipV, mxRectangle bounds, double alpha, boolean filled)
    +	{
    +		// Requires background in generic shape for shadow, looks like only one
    +		// fillAndStroke is allowed per current path, try working around that
    +		// Computes rotated shadow offset
    +		double rad = rotation * Math.PI / 180;
    +		double cos = Math.cos(-rad);
    +		double sin = Math.sin(-rad);
    +		mxPoint offset = mxUtils.getRotatedPoint(new mxPoint(mxConstants.SHADOW_OFFSETX, mxConstants.SHADOW_OFFSETY), cos, sin);
    +		
    +		if (flipH)
    +		{
    +			offset.setX(offset.getX() * -1);
    +		}
    +		
    +		if (flipV)
    +		{
    +			offset.setY(offset.getY() * -1);
    +		}
    +		
    +		// TODO: Use save/restore instead of negative offset to restore (requires fix for HTML canvas)
    +		canvas.translate(offset.getX(), offset.getY());
    +		
    +		// Returns true if a shadow has been painted (path has been created)
    +		if (drawShape(canvas, state, bounds, true))
    +		{
    +			canvas.setAlpha(mxConstants.STENCIL_SHADOW_OPACITY * alpha);
    +			canvas.shadow(mxConstants.STENCIL_SHADOWCOLOR, filled);
    +		}
    +
    +		canvas.translate(-offset.getX(), -offset.getY());
    +	}
    +			
    +	/**
    +	 * Draws this stencil inside the given bounds.
    +	 */
    +	public boolean drawShape(mxGraphicsCanvas2D canvas, mxCellState state,
    +			mxRectangle bounds, boolean background)
    +	{
    +		Element elt = (background) ? bgNode : fgNode;
    +
    +		if (elt != null)
    +		{
    +			String direction = mxUtils.getString(state.getStyle(),
    +					mxConstants.STYLE_DIRECTION, null);
    +			mxRectangle aspect = computeAspect(state, bounds, direction);
    +			double minScale = Math.min(aspect.getWidth(), aspect.getHeight());
    +			double sw = strokewidth.equals("inherit") ? mxUtils.getDouble(
    +					state.getStyle(), mxConstants.STYLE_STROKEWIDTH, 1)
    +					* state.getView().getScale() : Double
    +					.parseDouble(strokewidth) * minScale;
    +			lastMoveX = 0;
    +			lastMoveY = 0;
    +			canvas.setStrokeWidth(sw);
    +
    +			Node tmp = elt.getFirstChild();
    +
    +			while (tmp != null)
    +			{
    +				if (tmp.getNodeType() == Node.ELEMENT_NODE)
    +				{
    +					drawElement(canvas, state, (Element) tmp, aspect);
    +				}
    +
    +				tmp = tmp.getNextSibling();
    +			}
    +
    +			return true;
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns a rectangle that contains the offset in x and y and the horizontal
    +	 * and vertical scale in width and height used to draw this shape inside the
    +	 * given rectangle.
    +	 */
    +	protected mxRectangle computeAspect(mxCellState state, mxRectangle bounds,
    +			String direction)
    +	{
    +		double x0 = bounds.getX();
    +		double y0 = bounds.getY();
    +		double sx = bounds.getWidth() / w0;
    +		double sy = bounds.getHeight() / h0;
    +
    +		boolean inverse = (direction != null && (direction.equals("north") || direction
    +				.equals("south")));
    +
    +		if (inverse)
    +		{
    +			sy = bounds.getWidth() / h0;
    +			sx = bounds.getHeight() / w0;
    +
    +			double delta = (bounds.getWidth() - bounds.getHeight()) / 2;
    +
    +			x0 += delta;
    +			y0 -= delta;
    +		}
    +
    +		if (aspect.equals("fixed"))
    +		{
    +			sy = Math.min(sx, sy);
    +			sx = sy;
    +
    +			// Centers the shape inside the available space
    +			if (inverse)
    +			{
    +				x0 += (bounds.getHeight() - this.w0 * sx) / 2;
    +				y0 += (bounds.getWidth() - this.h0 * sy) / 2;
    +			}
    +			else
    +			{
    +				x0 += (bounds.getWidth() - this.w0 * sx) / 2;
    +				y0 += (bounds.getHeight() - this.h0 * sy) / 2;
    +			}
    +		}
    +
    +		return new mxRectangle(x0, y0, sx, sy);
    +	}
    +
    +	/**
    +	 * Drawsthe given element.
    +	 */
    +	protected void drawElement(mxGraphicsCanvas2D canvas, mxCellState state,
    +			Element node, mxRectangle aspect)
    +	{
    +		String name = node.getNodeName();
    +		double x0 = aspect.getX();
    +		double y0 = aspect.getY();
    +		double sx = aspect.getWidth();
    +		double sy = aspect.getHeight();
    +		double minScale = Math.min(sx, sy);
    +
    +		// LATER: Move to lookup table
    +		if (name.equals("save"))
    +		{
    +			canvas.save();
    +		}
    +		else if (name.equals("restore"))
    +		{
    +			canvas.restore();
    +		}
    +		else if (name.equals("path"))
    +		{
    +			canvas.begin();
    +
    +			// Renders the elements inside the given path
    +			Node childNode = node.getFirstChild();
    +
    +			while (childNode != null)
    +			{
    +				if (childNode.getNodeType() == Node.ELEMENT_NODE)
    +				{
    +					drawElement(canvas, state, (Element) childNode, aspect);
    +				}
    +
    +				childNode = childNode.getNextSibling();
    +			}
    +		}
    +		else if (name.equals("close"))
    +		{
    +			canvas.close();
    +		}
    +		else if (name.equals("move"))
    +		{
    +			lastMoveX = x0 + getDouble(node, "x") * sx;
    +			lastMoveY = y0 + getDouble(node, "y") * sy;
    +			canvas.moveTo(lastMoveX, lastMoveY);
    +		}
    +		else if (name.equals("line"))
    +		{
    +			lastMoveX = x0 + getDouble(node, "x") * sx;
    +			lastMoveY = y0 + getDouble(node, "y") * sy;
    +			canvas.lineTo(lastMoveX, lastMoveY);
    +		}
    +		else if (name.equals("quad"))
    +		{
    +			lastMoveX = x0 + getDouble(node, "x2") * sx;
    +			lastMoveY = y0 + getDouble(node, "y2") * sy;
    +			canvas.quadTo(x0 + getDouble(node, "x1") * sx,
    +					y0 + getDouble(node, "y1") * sy, lastMoveX, lastMoveY);
    +		}
    +		else if (name.equals("curve"))
    +		{
    +			lastMoveX = x0 + getDouble(node, "x3") * sx;
    +			lastMoveY = y0 + getDouble(node, "y3") * sy;
    +			canvas.curveTo(x0 + getDouble(node, "x1") * sx,
    +					y0 + getDouble(node, "y1") * sy, x0 + getDouble(node, "x2")
    +							* sx, y0 + getDouble(node, "y2") * sy, lastMoveX,
    +					lastMoveY);
    +		}
    +		else if (name.equals("arc"))
    +		{
    +			// Arc from stencil is turned into curves in image output
    +			double r1 = getDouble(node, "rx") * sx;
    +			double r2 = getDouble(node, "ry") * sy;
    +			double angle = getDouble(node, "x-axis-rotation");
    +			double largeArcFlag = getDouble(node, "large-arc-flag");
    +			double sweepFlag = getDouble(node, "sweep-flag");
    +			double x = x0 + getDouble(node, "x") * sx;
    +			double y = y0 + getDouble(node, "y") * sy;
    +
    +			double[] curves = mxUtils.arcToCurves(this.lastMoveX,
    +					this.lastMoveY, r1, r2, angle, largeArcFlag, sweepFlag, x,
    +					y);
    +
    +			for (int i = 0; i < curves.length; i += 6)
    +			{
    +				canvas.curveTo(curves[i], curves[i + 1], curves[i + 2],
    +						curves[i + 3], curves[i + 4], curves[i + 5]);
    +
    +				lastMoveX = curves[i + 4];
    +				lastMoveY = curves[i + 5];
    +			}
    +		}
    +		else if (name.equals("rect"))
    +		{
    +			canvas.rect(x0 + getDouble(node, "x") * sx,
    +					y0 + getDouble(node, "y") * sy, getDouble(node, "w") * sx,
    +					getDouble(node, "h") * sy);
    +		}
    +		else if (name.equals("roundrect"))
    +		{
    +			double arcsize = getDouble(node, "arcsize");
    +
    +			if (arcsize == 0)
    +			{
    +				arcsize = mxConstants.RECTANGLE_ROUNDING_FACTOR * 100;
    +			}
    +
    +			double w = getDouble(node, "w") * sx;
    +			double h = getDouble(node, "h") * sy;
    +			double factor = arcsize / 100;
    +			double r = Math.min(w * factor, h * factor);
    +
    +			canvas.roundrect(x0 + getDouble(node, "x") * sx,
    +					y0 + getDouble(node, "y") * sy, getDouble(node, "w") * sx,
    +					getDouble(node, "h") * sy, r, r);
    +		}
    +		else if (name.equals("ellipse"))
    +		{
    +			canvas.ellipse(x0 + getDouble(node, "x") * sx,
    +					y0 + getDouble(node, "y") * sy, getDouble(node, "w") * sx,
    +					getDouble(node, "h") * sy);
    +		}
    +		else if (name.equals("image"))
    +		{
    +			String src = evaluateAttribute(node, "src", state);
    +
    +			canvas.image(x0 + getDouble(node, "x") * sx,
    +					y0 + getDouble(node, "y") * sy, getDouble(node, "w") * sx,
    +					getDouble(node, "h") * sy, src, false,
    +					getString(node, "flipH", "0").equals("1"),
    +					getString(node, "flipV", "0").equals("1"));
    +		}
    +		else if (name.equals("text"))
    +		{
    +			String str = evaluateAttribute(node, "str", state);
    +
    +			canvas.text(x0 + getDouble(node, "x") * sx,
    +					y0 + getDouble(node, "y") * sy, 0, 0, str,
    +					node.getAttribute("align"), node.getAttribute("valign"),
    +					getString(node, "vertical", "0").equals("1"), false, "");
    +		}
    +		else if (name.equals("include-shape"))
    +		{
    +			mxStencil stencil = mxStencilRegistry.getStencil(node
    +					.getAttribute("name"));
    +
    +			if (stencil != null)
    +			{
    +				double x = x0 + getDouble(node, "x") * sx;
    +				double y = y0 + getDouble(node, "y") * sy;
    +				double w = getDouble(node, "w") * sx;
    +				double h = getDouble(node, "h") * sy;
    +
    +				mxRectangle tmp = new mxRectangle(x, y, w, h);
    +				stencil.drawShape(canvas, state, tmp, true);
    +				stencil.drawShape(canvas, state, tmp, false);
    +			}
    +		}
    +		else if (name.equals("fillstroke"))
    +		{
    +			canvas.fillAndStroke();
    +		}
    +		else if (name.equals("fill"))
    +		{
    +			canvas.fill();
    +		}
    +		else if (name.equals("stroke"))
    +		{
    +			canvas.stroke();
    +		}
    +		else if (name.equals("strokewidth"))
    +		{
    +			canvas.setStrokeWidth(getDouble(node, "width") * minScale);
    +		}
    +		else if (name.equals("dashed"))
    +		{
    +			canvas.setDashed(node.getAttribute("dashed") == "1");
    +		}
    +		else if (name.equals("dashpattern"))
    +		{
    +			String value = node.getAttribute("pattern");
    +
    +			if (value != null)
    +			{
    +				String[] tmp = value.split(" ");
    +				StringBuffer pat = new StringBuffer();
    +
    +				for (int i = 0; i < tmp.length; i++)
    +				{
    +					if (tmp[i].length() > 0)
    +					{
    +						pat.append(Double.parseDouble(tmp[i]) * minScale);
    +						pat.append(" ");
    +					}
    +				}
    +
    +				value = pat.toString();
    +			}
    +
    +			canvas.setDashPattern(value);
    +		}
    +		else if (name.equals("strokecolor"))
    +		{
    +			canvas.setStrokeColor(node.getAttribute("color"));
    +		}
    +		else if (name.equals("linecap"))
    +		{
    +			canvas.setLineCap(node.getAttribute("cap"));
    +		}
    +		else if (name.equals("linejoin"))
    +		{
    +			canvas.setLineJoin(node.getAttribute("join"));
    +		}
    +		else if (name.equals("miterlimit"))
    +		{
    +			canvas.setMiterLimit(getDouble(node, "limit"));
    +		}
    +		else if (name.equals("fillcolor"))
    +		{
    +			canvas.setFillColor(node.getAttribute("color"));
    +		}
    +		else if (name.equals("fontcolor"))
    +		{
    +			canvas.setFontColor(node.getAttribute("color"));
    +		}
    +		else if (name.equals("fontstyle"))
    +		{
    +			canvas.setFontStyle(getInt(node, "style", 0));
    +		}
    +		else if (name.equals("fontfamily"))
    +		{
    +			canvas.setFontFamily(node.getAttribute("family"));
    +		}
    +		else if (name.equals("fontsize"))
    +		{
    +			canvas.setFontSize(getDouble(node, "size") * minScale);
    +		}
    +	}
    +
    +	/**
    +	 * Returns the given attribute or the default value.
    +	 */
    +	protected int getInt(Element elt, String attribute, int defaultValue)
    +	{
    +		String value = elt.getAttribute(attribute);
    +
    +		if (value != null && value.length() > 0)
    +		{
    +			try
    +			{
    +				defaultValue = (int) Math.floor(Float.parseFloat(value));
    +			}
    +			catch (NumberFormatException e)
    +			{
    +				// ignore
    +			}
    +		}
    +
    +		return defaultValue;
    +	}
    +
    +	/**
    +	 * Returns the given attribute or 0.
    +	 */
    +	protected double getDouble(Element elt, String attribute)
    +	{
    +		return getDouble(elt, attribute, 0);
    +	}
    +
    +	/**
    +	 * Returns the given attribute or the default value.
    +	 */
    +	protected double getDouble(Element elt, String attribute,
    +			double defaultValue)
    +	{
    +		String value = elt.getAttribute(attribute);
    +
    +		if (value != null && value.length() > 0)
    +		{
    +			try
    +			{
    +				defaultValue = Double.parseDouble(value);
    +			}
    +			catch (NumberFormatException e)
    +			{
    +				// ignore
    +			}
    +		}
    +
    +		return defaultValue;
    +	}
    +
    +	/**
    +	 * Returns the given attribute or the default value.
    +	 */
    +	protected String getString(Element elt, String attribute,
    +			String defaultValue)
    +	{
    +		String value = elt.getAttribute(attribute);
    +
    +		if (value != null && value.length() > 0)
    +		{
    +			defaultValue = value;
    +		}
    +
    +		return defaultValue;
    +	}
    +
    +	/**
    +	 * Parses the description of this shape.
    +	 */
    +	protected void parseDescription()
    +	{
    +		// LATER: Preprocess nodes for faster painting
    +		fgNode = (Element) desc.getElementsByTagName("foreground").item(0);
    +		bgNode = (Element) desc.getElementsByTagName("background").item(0);
    +		w0 = getDouble(desc, "w", w0);
    +		h0 = getDouble(desc, "h", h0);
    +
    +		// Possible values for aspect are: variable and fixed where
    +		// variable means fill the available space and fixed means
    +		// use w0 and h0 to compute the aspect.
    +		aspect = getString(desc, "aspect", "variable");
    +
    +		// Possible values for strokewidth are all numbers and "inherit"
    +		// where the inherit means take the value from the style (ie. the
    +		// user-defined stroke-width). Note that the strokewidth is scaled
    +		// by the minimum scaling that is used to draw the shape (sx, sy).
    +		strokewidth = getString(desc, "strokewidth", "1");
    +	}
    +
    +	/**
    +	 * Gets the attribute for the given name from the given node. If the attribute
    +	 * does not exist then the text content of the node is evaluated and if it is
    +	 * a function it is invoked with <state> as the only argument and the return
    +	 * value is used as the attribute value to be returned.
    +	 */
    +	public String evaluateAttribute(Element elt, String attribute,
    +			mxCellState state)
    +	{
    +		String result = elt.getAttribute(attribute);
    +
    +		if (result == null)
    +		{
    +			// JS functions as text content are currently not supported in Java
    +		}
    +
    +		return result;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxStencilRegistry.java b/java/src/com/mxgraph/shape/mxStencilRegistry.java
    new file mode 100644
    index 000000000..abc22969d
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxStencilRegistry.java
    @@ -0,0 +1,29 @@
    +package com.mxgraph.shape;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +public class mxStencilRegistry
    +{
    +	/**
    +	 * 
    +	 */
    +	protected static Map<String, mxStencil> stencils = new Hashtable<String, mxStencil>();
    +
    +	/**
    +	 * Adds the given stencil.
    +	 */
    +	public static void addStencil(String name, mxStencil stencil)
    +	{
    +		stencils.put(name, stencil);
    +	}
    +
    +	/**
    +	 * Returns the stencil for the given name.
    +	 */
    +	public static mxStencil getStencil(String name)
    +	{
    +		return stencils.get(name);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxStencilShape.java b/java/src/com/mxgraph/shape/mxStencilShape.java
    new file mode 100644
    index 000000000..b437c1b65
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxStencilShape.java
    @@ -0,0 +1,828 @@
    +/**
    + * $Id: mxStencilShape.java,v 1.12 2012-01-13 12:42:10 david Exp $
    + * Copyright (c) 2010-2012, JGraph Ltd
    + */
    +package com.mxgraph.shape;
    +
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.util.mxXmlUtils;
    +import com.mxgraph.util.svg.AWTPathProducer;
    +import com.mxgraph.util.svg.AWTPolygonProducer;
    +import com.mxgraph.util.svg.AWTPolylineProducer;
    +import com.mxgraph.util.svg.CSSConstants;
    +import com.mxgraph.util.svg.ExtendedGeneralPath;
    +import com.mxgraph.view.mxCellState;
    +import java.awt.Color;
    +import java.awt.Shape;
    +import java.awt.geom.AffineTransform;
    +import java.awt.geom.Ellipse2D;
    +import java.awt.geom.GeneralPath;
    +import java.awt.geom.Line2D;
    +import java.awt.geom.Rectangle2D;
    +import java.awt.geom.RoundRectangle2D;
    +import java.util.ArrayList;
    +import java.util.Hashtable;
    +import java.util.List;
    +import java.util.Map;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.NodeList;
    +
    +/**
    + * Stencil shape drawing that takes an XML definition of the shape and renders
    + * it.
    + * 
    + * See http://projects.gnome.org/dia/custom-shapes for specs. See
    + * http://dia-installer.de/shapes_de.html for shapes.
    + */
    +public class mxStencilShape extends mxBasicShape
    +{
    +	public mxStencilShape()
    +	{
    +		super();
    +	}
    +
    +	protected GeneralPath shapePath;
    +
    +	/**
    +	 * Reference to the root node of the Dia shape description.
    +	 */
    +	protected Node root;
    +
    +	protected svgShape rootShape;
    +
    +	protected Rectangle2D boundingBox;
    +
    +	protected String name;
    +
    +	protected String iconPath;
    +
    +	/**
    +	 * Transform cached to save instance created. Used to scale the internal
    +	 * path of shapes where possible
    +	 */
    +	protected AffineTransform cachedTransform = new AffineTransform();
    +
    +	/**
    +	 * Constructs a new stencil for the given Dia shape description.
    +	 */
    +	public mxStencilShape(String shapeXml)
    +	{
    +		this(mxXmlUtils.parseXml(shapeXml));
    +	}
    +
    +	public mxStencilShape(Document document)
    +	{
    +		if (document != null)
    +		{
    +			NodeList nameList = document.getElementsByTagName("name");
    +
    +			if (nameList != null && nameList.getLength() > 0)
    +			{
    +				this.name = nameList.item(0).getTextContent();
    +			}
    +
    +			NodeList iconList = document.getElementsByTagName("icon");
    +
    +			if (iconList != null && iconList.getLength() > 0)
    +			{
    +				this.iconPath = iconList.item(0).getTextContent();
    +			}
    +
    +			NodeList svgList = document.getElementsByTagName("svg:svg");
    +
    +			if (svgList != null && svgList.getLength() > 0)
    +			{
    +				this.root = svgList.item(0);
    +			}
    +			else
    +			{
    +				svgList = document.getElementsByTagName("svg");
    +
    +				if (svgList != null && svgList.getLength() > 0)
    +				{
    +					this.root = svgList.item(0);
    +				}
    +			}
    +
    +			if (this.root != null)
    +			{
    +				rootShape = new svgShape(null, null);
    +				createShape(this.root, rootShape);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	@Override
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		double x = state.getX();
    +		double y = state.getY();
    +		double w = state.getWidth();
    +		double h = state.getHeight();
    +
    +		canvas.getGraphics().translate(x, y);
    +		double widthRatio = 1;
    +		double heightRatio = 1;
    +
    +		if (boundingBox != null)
    +		{
    +			widthRatio = w / boundingBox.getWidth();
    +			heightRatio = h / boundingBox.getHeight();
    +		}
    +
    +		this.paintNode(canvas, state, rootShape, widthRatio, heightRatio);
    +
    +		canvas.getGraphics().translate(-x, -y);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintNode(mxGraphics2DCanvas canvas, mxCellState state,
    +			svgShape shape, double widthRatio, double heightRatio)
    +	{
    +		Shape associatedShape = shape.shape;
    +
    +		boolean fill = false;
    +		boolean stroke = true;
    +		Color fillColor = null;
    +		Color strokeColor = null;
    +
    +		Map<String, Object> style = shape.style;
    +
    +		if (style != null)
    +		{
    +			String fillStyle = mxUtils.getString(style,
    +					CSSConstants.CSS_FILL_PROPERTY);
    +			String strokeStyle = mxUtils.getString(style,
    +					CSSConstants.CSS_STROKE_PROPERTY);
    +
    +			if (strokeStyle != null
    +					&& strokeStyle.equals(CSSConstants.CSS_NONE_VALUE))
    +			{
    +				if (strokeStyle.equals(CSSConstants.CSS_NONE_VALUE))
    +				{
    +					stroke = false;
    +				}
    +				else if (strokeStyle.trim().startsWith("#"))
    +				{
    +					int hashIndex = strokeStyle.indexOf("#");
    +					strokeColor = mxUtils.parseColor(strokeStyle
    +							.substring(hashIndex + 1));
    +				}
    +			}
    +
    +			if (fillStyle != null)
    +			{
    +				if (fillStyle.equals(CSSConstants.CSS_NONE_VALUE))
    +				{
    +					fill = false;
    +				}
    +				else if (fillStyle.trim().startsWith("#"))
    +				{
    +					int hashIndex = fillStyle.indexOf("#");
    +					fillColor = mxUtils.parseColor(fillStyle
    +							.substring(hashIndex + 1));
    +					fill = true;
    +				}
    +				else
    +				{
    +					fill = true;
    +				}
    +			}
    +		}
    +
    +		if (associatedShape != null)
    +		{
    +			boolean wasScaled = false;
    +
    +			if (widthRatio != 1 || heightRatio != 1)
    +			{
    +				transformShape(associatedShape, 0.0, 0.0, widthRatio,
    +						heightRatio);
    +				wasScaled = true;
    +			}
    +
    +			// Paints the background
    +			if (fill && configureGraphics(canvas, state, true))
    +			{
    +				if (fillColor != null)
    +				{
    +					canvas.getGraphics().setColor(fillColor);
    +				}
    +
    +				canvas.getGraphics().fill(associatedShape);
    +			}
    +
    +			// Paints the foreground
    +			if (stroke && configureGraphics(canvas, state, false))
    +			{
    +				if (strokeColor != null)
    +				{
    +					canvas.getGraphics().setColor(strokeColor);
    +				}
    +
    +				canvas.getGraphics().draw(associatedShape);
    +			}
    +
    +			if (wasScaled)
    +			{
    +				transformShape(associatedShape, 0.0, 0.0, 1.0 / widthRatio,
    +						1.0 / heightRatio);
    +			}
    +		}
    +
    +		/*
    +		 * If root is a group element, then we should add it's styles to the
    +		 * children.
    +		 */
    +		for (svgShape subShape : shape.subShapes)
    +		{
    +			paintNode(canvas, state, subShape, widthRatio, heightRatio);
    +		}
    +	}
    +
    +	/**
    +	 * Scales the points composing this shape by the x and y ratios specified
    +	 * 
    +	 * @param shape
    +	 *            the shape to scale
    +	 * @param transX
    +	 *            the x translation
    +	 * @param transY
    +	 *            the y translation
    +	 * @param widthRatio
    +	 *            the x co-ordinate scale
    +	 * @param heightRatio
    +	 *            the y co-ordinate scale
    +	 */
    +	protected void transformShape(Shape shape, double transX, double transY,
    +			double widthRatio, double heightRatio)
    +	{
    +		if (shape instanceof Rectangle2D)
    +		{
    +			Rectangle2D rect = (Rectangle2D) shape;
    +			if (transX != 0 || transY != 0)
    +			{
    +				rect.setFrame(rect.getX() + transX, rect.getY() + transY,
    +						rect.getWidth(), rect.getHeight());
    +			}
    +
    +			if (widthRatio != 1 || heightRatio != 1)
    +			{
    +				rect.setFrame(rect.getX() * widthRatio, rect.getY()
    +						* heightRatio, rect.getWidth() * widthRatio,
    +						rect.getHeight() * heightRatio);
    +			}
    +		}
    +		else if (shape instanceof Line2D)
    +		{
    +			Line2D line = (Line2D) shape;
    +			if (transX != 0 || transY != 0)
    +			{
    +				line.setLine(line.getX1() + transX, line.getY1() + transY,
    +						line.getX2() + transX, line.getY2() + transY);
    +			}
    +			if (widthRatio != 1 || heightRatio != 1)
    +			{
    +				line.setLine(line.getX1() * widthRatio, line.getY1()
    +						* heightRatio, line.getX2() * widthRatio, line.getY2()
    +						* heightRatio);
    +			}
    +		}
    +		else if (shape instanceof GeneralPath)
    +		{
    +			GeneralPath path = (GeneralPath) shape;
    +			cachedTransform.setToScale(widthRatio, heightRatio);
    +			cachedTransform.translate(transX, transY);
    +			path.transform(cachedTransform);
    +		}
    +		else if (shape instanceof ExtendedGeneralPath)
    +		{
    +			ExtendedGeneralPath path = (ExtendedGeneralPath) shape;
    +			cachedTransform.setToScale(widthRatio, heightRatio);
    +			cachedTransform.translate(transX, transY);
    +			path.transform(cachedTransform);
    +		}
    +		else if (shape instanceof Ellipse2D)
    +		{
    +			Ellipse2D ellipse = (Ellipse2D) shape;
    +			if (transX != 0 || transY != 0)
    +			{
    +				ellipse.setFrame(ellipse.getX() + transX, ellipse.getY()
    +						+ transY, ellipse.getWidth(), ellipse.getHeight());
    +			}
    +			if (widthRatio != 1 || heightRatio != 1)
    +			{
    +				ellipse.setFrame(ellipse.getX() * widthRatio, ellipse.getY()
    +						* heightRatio, ellipse.getWidth() * widthRatio,
    +						ellipse.getHeight() * heightRatio);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void createShape(Node root, svgShape shape)
    +	{
    +		Node child = root.getFirstChild();
    +		/*
    +		 * If root is a group element, then we should add it's styles to the
    +		 * childrens...
    +		 */
    +		while (child != null)
    +		{
    +			if (isGroup(child.getNodeName()))
    +			{
    +				String style = ((Element) root).getAttribute("style");
    +				Map<String, Object> styleMap = mxStencilShape
    +						.getStylenames(style);
    +				svgShape subShape = new svgShape(null, styleMap);
    +				createShape(child, subShape);
    +			}
    +
    +			svgShape subShape = createElement(child);
    +
    +			if (subShape != null)
    +			{
    +				shape.subShapes.add(subShape);
    +			}
    +			child = child.getNextSibling();
    +		}
    +
    +		for (svgShape subShape : shape.subShapes)
    +		{
    +			if (subShape != null && subShape.shape != null)
    +			{
    +				if (boundingBox == null)
    +				{
    +					boundingBox = subShape.shape.getBounds2D();
    +				}
    +				else
    +				{
    +					boundingBox.add(subShape.shape.getBounds2D());
    +				}
    +			}
    +		}
    +
    +		// If the shape does not butt up against either or both axis,
    +		// ensure it is flush against both
    +		if (boundingBox != null
    +				&& (boundingBox.getX() != 0 || boundingBox.getY() != 0))
    +		{
    +			for (svgShape subShape : shape.subShapes)
    +			{
    +				if (subShape != null && subShape.shape != null)
    +				{
    +					transformShape(subShape.shape, -boundingBox.getX(),
    +							-boundingBox.getY(), 1.0, 1.0);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Forms an internal representation of the specified SVG element and returns
    +	 * that representation
    +	 * 
    +	 * @param root
    +	 *            the SVG element to represent
    +	 * @return the internal representation of the element, or null if an error
    +	 *         occurs
    +	 */
    +	public svgShape createElement(Node root)
    +	{
    +		Element element = null;
    +
    +		if (root instanceof Element)
    +		{
    +			element = (Element) root;
    +			String style = element.getAttribute("style");
    +			Map<String, Object> styleMap = mxStencilShape.getStylenames(style);
    +
    +			if (isRectangle(root.getNodeName()))
    +			{
    +				svgShape rectShape = null;
    +
    +				try
    +				{
    +					String xString = element.getAttribute("x");
    +					String yString = element.getAttribute("y");
    +					String widthString = element.getAttribute("width");
    +					String heightString = element.getAttribute("height");
    +
    +					// Values default to zero if not specified
    +					double x = 0;
    +					double y = 0;
    +					double width = 0;
    +					double height = 0;
    +
    +					if (xString.length() > 0)
    +					{
    +						x = Double.valueOf(xString);
    +					}
    +					if (yString.length() > 0)
    +					{
    +						y = Double.valueOf(yString);
    +					}
    +					if (widthString.length() > 0)
    +					{
    +						width = Double.valueOf(widthString);
    +						if (width < 0)
    +						{
    +							return null; // error in SVG spec
    +						}
    +					}
    +					if (heightString.length() > 0)
    +					{
    +						height = Double.valueOf(heightString);
    +						if (height < 0)
    +						{
    +							return null; // error in SVG spec
    +						}
    +					}
    +
    +					String rxString = element.getAttribute("rx");
    +					String ryString = element.getAttribute("ry");
    +					double rx = 0;
    +					double ry = 0;
    +
    +					if (rxString.length() > 0)
    +					{
    +						rx = Double.valueOf(rxString);
    +						if (rx < 0)
    +						{
    +							return null; // error in SVG spec
    +						}
    +					}
    +					if (ryString.length() > 0)
    +					{
    +						ry = Double.valueOf(ryString);
    +						if (ry < 0)
    +						{
    +							return null; // error in SVG spec
    +						}
    +					}
    +
    +					if (rx > 0 || ry > 0)
    +					{
    +						// Specification rules on rx and ry
    +						if (rx > 0 && ryString.length() == 0)
    +						{
    +							ry = rx;
    +						}
    +						else if (ry > 0 && rxString.length() == 0)
    +						{
    +							rx = ry;
    +						}
    +						if (rx > width / 2.0)
    +						{
    +							rx = width / 2.0;
    +						}
    +						if (ry > height / 2.0)
    +						{
    +							ry = height / 2.0;
    +						}
    +
    +						rectShape = new svgShape(new RoundRectangle2D.Double(x,
    +								y, width, height, rx, ry), styleMap);
    +					}
    +					else
    +					{
    +						rectShape = new svgShape(new Rectangle2D.Double(x, y,
    +								width, height), styleMap);
    +					}
    +				}
    +				catch (Exception e)
    +				{
    +					// TODO log something useful
    +				}
    +
    +				return rectShape;
    +			}
    +			else if (isLine(root.getNodeName()))
    +			{
    +				String x1String = element.getAttribute("x1");
    +				String x2String = element.getAttribute("x2");
    +				String y1String = element.getAttribute("y1");
    +				String y2String = element.getAttribute("y2");
    +
    +				double x1 = 0;
    +				double x2 = 0;
    +				double y1 = 0;
    +				double y2 = 0;
    +
    +				if (x1String.length() > 0)
    +				{
    +					x1 = Double.valueOf(x1String);
    +				}
    +				if (x2String.length() > 0)
    +				{
    +					x2 = Double.valueOf(x2String);
    +				}
    +				if (y1String.length() > 0)
    +				{
    +					y1 = Double.valueOf(y1String);
    +				}
    +				if (y2String.length() > 0)
    +				{
    +					y2 = Double.valueOf(y2String);
    +				}
    +
    +				svgShape lineShape = new svgShape(new Line2D.Double(x1, y1, x2,
    +						y2), styleMap);
    +				return lineShape;
    +			}
    +			else if (isPolyline(root.getNodeName())
    +					|| isPolygon(root.getNodeName()))
    +			{
    +				String pointsString = element.getAttribute("points");
    +				Shape shape;
    +
    +				if (isPolygon(root.getNodeName()))
    +				{
    +					shape = AWTPolygonProducer.createShape(pointsString,
    +							GeneralPath.WIND_NON_ZERO);
    +				}
    +				else
    +				{
    +					shape = AWTPolylineProducer.createShape(pointsString,
    +							GeneralPath.WIND_NON_ZERO);
    +				}
    +
    +				if (shape != null)
    +				{
    +					return new svgShape(shape, styleMap);
    +				}
    +
    +				return null;
    +			}
    +			else if (isCircle(root.getNodeName()))
    +			{
    +				double cx = 0;
    +				double cy = 0;
    +				double r = 0;
    +
    +				String cxString = element.getAttribute("cx");
    +				String cyString = element.getAttribute("cy");
    +				String rString = element.getAttribute("r");
    +
    +				if (cxString.length() > 0)
    +				{
    +					cx = Double.valueOf(cxString);
    +				}
    +				if (cyString.length() > 0)
    +				{
    +					cy = Double.valueOf(cyString);
    +				}
    +				if (rString.length() > 0)
    +				{
    +					r = Double.valueOf(rString);
    +
    +					if (r < 0)
    +					{
    +						return null; // error in SVG spec
    +					}
    +				}
    +
    +				return new svgShape(new Ellipse2D.Double(cx - r, cy - r, r * 2,
    +						r * 2), styleMap);
    +			}
    +			else if (isEllipse(root.getNodeName()))
    +			{
    +				double cx = 0;
    +				double cy = 0;
    +				double rx = 0;
    +				double ry = 0;
    +
    +				String cxString = element.getAttribute("cx");
    +				String cyString = element.getAttribute("cy");
    +				String rxString = element.getAttribute("rx");
    +				String ryString = element.getAttribute("ry");
    +
    +				if (cxString.length() > 0)
    +				{
    +					cx = Double.valueOf(cxString);
    +				}
    +				if (cyString.length() > 0)
    +				{
    +					cy = Double.valueOf(cyString);
    +				}
    +				if (rxString.length() > 0)
    +				{
    +					rx = Double.valueOf(rxString);
    +
    +					if (rx < 0)
    +					{
    +						return null; // error in SVG spec
    +					}
    +				}
    +				if (ryString.length() > 0)
    +				{
    +					ry = Double.valueOf(ryString);
    +
    +					if (ry < 0)
    +					{
    +						return null; // error in SVG spec
    +					}
    +				}
    +
    +				return new svgShape(new Ellipse2D.Double(cx - rx, cy - ry,
    +						rx * 2, ry * 2), styleMap);
    +			}
    +			else if (isPath(root.getNodeName()))
    +			{
    +				String d = element.getAttribute("d");
    +				Shape pathShape = AWTPathProducer.createShape(d,
    +						GeneralPath.WIND_NON_ZERO);
    +				return new svgShape(pathShape, styleMap);
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/*
    +	 *
    +	 */
    +	private boolean isRectangle(String tag)
    +	{
    +		return tag.equals("svg:rect") || tag.equals("rect");
    +	}
    +
    +	/*
    +	 *
    +	 */
    +	private boolean isPath(String tag)
    +	{
    +		return tag.equals("svg:path") || tag.equals("path");
    +	}
    +
    +	/*
    +	 *
    +	 */
    +	private boolean isEllipse(String tag)
    +	{
    +		return tag.equals("svg:ellipse") || tag.equals("ellipse");
    +	}
    +
    +	/*
    +	 *
    +	 */
    +	private boolean isLine(String tag)
    +	{
    +		return tag.equals("svg:line") || tag.equals("line");
    +	}
    +
    +	/*
    +	 *
    +	 */
    +	private boolean isPolyline(String tag)
    +	{
    +		return tag.equals("svg:polyline") || tag.equals("polyline");
    +	}
    +
    +	/*
    +	 *
    +	 */
    +	private boolean isCircle(String tag)
    +	{
    +		return tag.equals("svg:circle") || tag.equals("circle");
    +	}
    +
    +	/*
    +	 *
    +	 */
    +	private boolean isPolygon(String tag)
    +	{
    +		return tag.equals("svg:polygon") || tag.equals("polygon");
    +	}
    +
    +	private boolean isGroup(String tag)
    +	{
    +		return tag.equals("svg:g") || tag.equals("g");
    +	}
    +
    +	protected class svgShape
    +	{
    +		public Shape shape;
    +
    +		/**
    +		 * Contains an array of key, value pairs that represent the style of the
    +		 * cell.
    +		 */
    +		protected Map<String, Object> style;
    +
    +		public List<svgShape> subShapes;
    +
    +		/**
    +		 * Holds the current value to which the shape is scaled in X
    +		 */
    +		protected double currentXScale;
    +
    +		/**
    +		 * Holds the current value to which the shape is scaled in Y
    +		 */
    +		protected double currentYScale;
    +
    +		public svgShape(Shape shape, Map<String, Object> style)
    +		{
    +			this.shape = shape;
    +			this.style = style;
    +			subShapes = new ArrayList<svgShape>();
    +		}
    +
    +		public double getCurrentXScale()
    +		{
    +			return currentXScale;
    +		}
    +
    +		public void setCurrentXScale(double currentXScale)
    +		{
    +			this.currentXScale = currentXScale;
    +		}
    +
    +		public double getCurrentYScale()
    +		{
    +			return currentYScale;
    +		}
    +
    +		public void setCurrentYScale(double currentYScale)
    +		{
    +			this.currentYScale = currentYScale;
    +		}
    +	}
    +
    +	/**
    +	 * Returns the stylenames in a style of the form stylename[;key=value] or an
    +	 * empty array if the given style does not contain any stylenames.
    +	 * 
    +	 * @param style
    +	 *            String of the form stylename[;stylename][;key=value].
    +	 * @return Returns the stylename from the given formatted string.
    +	 */
    +	protected static Map<String, Object> getStylenames(String style)
    +	{
    +		if (style != null && style.length() > 0)
    +		{
    +			Map<String, Object> result = new Hashtable<String, Object>();
    +
    +			if (style != null)
    +			{
    +				String[] pairs = style.split(";");
    +
    +				for (int i = 0; i < pairs.length; i++)
    +				{
    +					String[] keyValue = pairs[i].split(":");
    +
    +					if (keyValue.length == 2)
    +					{
    +						result.put(keyValue[0].trim(), keyValue[1].trim());
    +					}
    +				}
    +			}
    +			return result;
    +		}
    +
    +		return null;
    +	}
    +
    +	public String getName()
    +	{
    +		return name;
    +	}
    +
    +	public void setName(String name)
    +	{
    +		this.name = name;
    +	}
    +
    +	public String getIconPath()
    +	{
    +		return iconPath;
    +	}
    +
    +	public void setIconPath(String iconPath)
    +	{
    +		this.iconPath = iconPath;
    +	}
    +
    +	public Rectangle2D getBoundingBox()
    +	{
    +		return boundingBox;
    +	}
    +
    +	public void setBoundingBox(Rectangle2D boundingBox)
    +	{
    +		this.boundingBox = boundingBox;
    +	}
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/shape/mxSwimlaneShape.java b/java/src/com/mxgraph/shape/mxSwimlaneShape.java
    new file mode 100644
    index 000000000..1b06bacda
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxSwimlaneShape.java
    @@ -0,0 +1,85 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Rectangle;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxSwimlaneShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		int start = (int) Math.round(mxUtils.getInt(state.getStyle(),
    +				mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE)
    +				* canvas.getScale());
    +
    +		Rectangle tmp = state.getRectangle();
    +
    +		if (mxUtils
    +				.isTrue(state.getStyle(), mxConstants.STYLE_HORIZONTAL, true))
    +		{
    +			if (configureGraphics(canvas, state, true))
    +			{
    +				canvas.fillShape(new Rectangle(tmp.x, tmp.y, tmp.width, Math
    +						.min(tmp.height, start)));
    +			}
    +
    +			if (configureGraphics(canvas, state, false))
    +			{
    +				canvas.getGraphics().drawRect(tmp.x, tmp.y, tmp.width,
    +						Math.min(tmp.height, start));
    +				canvas.getGraphics().drawRect(tmp.x, tmp.y + start, tmp.width,
    +						tmp.height - start);
    +			}
    +		}
    +		else
    +		{
    +			if (configureGraphics(canvas, state, true))
    +			{
    +				canvas.fillShape(new Rectangle(tmp.x, tmp.y, Math.min(
    +						tmp.width, start), tmp.height));
    +			}
    +
    +			if (configureGraphics(canvas, state, false))
    +			{
    +				canvas.getGraphics().drawRect(tmp.x, tmp.y,
    +						Math.min(tmp.width, start), tmp.height);
    +				canvas.getGraphics().drawRect(tmp.x + start, tmp.y,
    +						tmp.width - start, tmp.height);
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxRectangle getGradientBounds(mxGraphics2DCanvas canvas,
    +			mxCellState state)
    +	{
    +		int start = (int) Math.round(mxUtils.getInt(state.getStyle(),
    +				mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE)
    +				* canvas.getScale());
    +		mxRectangle result = new mxRectangle(state);
    +
    +		if (mxUtils
    +				.isTrue(state.getStyle(), mxConstants.STYLE_HORIZONTAL, true))
    +		{
    +			result.setHeight(Math.min(result.getHeight(), start));
    +		}
    +		else
    +		{
    +			result.setWidth(Math.min(result.getWidth(), start));
    +		}
    +
    +		return result;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/shape/mxTriangleShape.java b/java/src/com/mxgraph/shape/mxTriangleShape.java
    new file mode 100644
    index 000000000..703cd50d5
    --- /dev/null
    +++ b/java/src/com/mxgraph/shape/mxTriangleShape.java
    @@ -0,0 +1,58 @@
    +package com.mxgraph.shape;
    +
    +import java.awt.Polygon;
    +import java.awt.Rectangle;
    +import java.awt.Shape;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxTriangleShape extends mxBasicShape
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public Shape createShape(mxGraphics2DCanvas canvas, mxCellState state)
    +	{
    +		Rectangle temp = state.getRectangle();
    +		int x = temp.x;
    +		int y = temp.y;
    +		int w = temp.width;
    +		int h = temp.height;
    +		String direction = mxUtils.getString(state.getStyle(),
    +				mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_EAST);
    +		Polygon triangle = new Polygon();
    +
    +		if (direction.equals(mxConstants.DIRECTION_NORTH))
    +		{
    +			triangle.addPoint(x, y + h);
    +			triangle.addPoint(x + w / 2, y);
    +			triangle.addPoint(x + w, y + h);
    +		}
    +		else if (direction.equals(mxConstants.DIRECTION_SOUTH))
    +		{
    +			triangle.addPoint(x, y);
    +			triangle.addPoint(x + w / 2, y + h);
    +			triangle.addPoint(x + w, y);
    +		}
    +		else if (direction.equals(mxConstants.DIRECTION_WEST))
    +		{
    +			triangle.addPoint(x + w, y);
    +			triangle.addPoint(x, y + h / 2);
    +			triangle.addPoint(x + w, y + h);
    +		}
    +		else
    +		// EAST
    +		{
    +			triangle.addPoint(x, y);
    +			triangle.addPoint(x + w, y + h / 2);
    +			triangle.addPoint(x, y + h);
    +		}
    +
    +		return triangle;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/sharing/mxSession.java b/java/src/com/mxgraph/sharing/mxSession.java
    new file mode 100644
    index 000000000..6aa01de05
    --- /dev/null
    +++ b/java/src/com/mxgraph/sharing/mxSession.java
    @@ -0,0 +1,214 @@
    +/**
    + * $Id: mxSession.java,v 1.15 2012-01-13 11:07:37 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.sharing;
    +
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.sharing.mxSharedState.mxDiagramChangeListener;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Implements a session that may be attached to a shared diagram. The session
    + * contains a synchronized buffer which is used to hold the pending edits which
    + * are to be sent to a specific client. The update mechnism between the server
    + * and the client uses HTTP requests (polling). The request is kept on the server
    + * for an amount of time or wakes up / returns immediately if the buffer is no
    + * longer empty.
    + */
    +public class mxSession implements mxDiagramChangeListener
    +{
    +	/**
    +	 * Default timeout is 10000 ms.
    +	 */
    +	public static int DEFAULT_TIMEOUT = 10000;
    +
    +	/**
    +	 * Holds the session ID.
    +	 */
    +	protected String id;
    +
    +	/**
    +	 * Reference to the shared diagram.
    +	 */
    +	protected mxSharedState diagram;
    +
    +	/**
    +	 * Holds the send buffer for this session.
    +	 */
    +	protected StringBuffer buffer = new StringBuffer();
    +
    +	/**
    +	 * Holds the last active time millis.
    +	 */
    +	protected long lastTimeMillis = 0;
    +
    +	/**
    +	 * Constructs a new session with the given ID.
    +	 * 
    +	 * @param id Specifies the session ID to be used.
    +	 * @param diagram Reference to the shared diagram.
    +	 */
    +	public mxSession(String id, mxSharedState diagram)
    +	{
    +		this.id = id;
    +		this.diagram = diagram;
    +		this.diagram.addDiagramChangeListener(this);
    +
    +		lastTimeMillis = System.currentTimeMillis();
    +	}
    +
    +	/**
    +	 * Returns the session ID.
    +	 */
    +	public String getId()
    +	{
    +		return id;
    +	}
    +
    +	/**
    +	 * Initializes the session buffer and returns a string that represents the
    +	 * state of the session.
    +	 *
    +	 * @return Returns the initial state of the session.
    +	 */
    +	public synchronized String init()
    +	{
    +		synchronized (this)
    +		{
    +			buffer = new StringBuffer();
    +			notify();
    +		}
    +
    +		return getInitialMessage();
    +	}
    +
    +	/**
    +	 * Returns an XML string that represents the current state of the session
    +	 * and the shared diagram. A globally unique ID is used as the session's
    +	 * namespace, which is used on the client side to prefix IDs of newly
    +	 * created cells.
    +	 */
    +	public String getInitialMessage()
    +	{
    +		String ns = mxUtils.getMd5Hash(id);
    +
    +		StringBuffer result = new StringBuffer("<message namespace=\"" + ns
    +				+ "\">");
    +		result.append("<state>");
    +		result.append(diagram.getState());
    +		result.append("</state>");
    +		result.append("<delta>");
    +		result.append(diagram.getDelta());
    +		result.append("</delta>");
    +		result.append("</message>");
    +
    +		return result.toString();
    +	}
    +
    +	/**
    +	 * Posts the change represented by the given XML string to the shared diagram.
    +	 * 
    +	 * @param message XML that represents the change.
    +	 */
    +	public void receive(Node message)
    +	{
    +		//System.out.println(getId() + ": " + mxUtils.getPrettyXml(message));
    +		Node child = message.getFirstChild();
    +
    +		while (child != null)
    +		{
    +			if (child.getNodeName().equals("delta"))
    +			{
    +				diagram.processDelta(this, child);
    +			}
    +
    +			child = child.getNextSibling();
    +		}
    +		/*System.out.println(mxUtils.getPrettyXml(new mxCodec()
    +				.encode(((mxSharedGraphModel) diagram).getModel())));*/
    +	}
    +
    +	/**
    +	 * Returns the changes received by other sessions for the shared diagram.
    +	 * The method returns an empty XML node if no change was received within
    +	 * 10 seconds.
    +	 * 
    +	 * @return Returns a string representing the changes to the shared diagram.
    +	 */
    +	public String poll() throws InterruptedException
    +	{
    +		return poll(DEFAULT_TIMEOUT);
    +	}
    +
    +	/**
    +	 * Returns the changes received by other sessions for the shared diagram.
    +	 * The method returns an empty XML node if no change was received within
    +	 * the given timeout.
    +	 * 
    +	 * @param timeout Time in milliseconds to wait for changes.
    +	 * @return Returns a string representing the changes to the shared diagram.
    +	 */
    +	public String poll(long timeout) throws InterruptedException
    +	{
    +		lastTimeMillis = System.currentTimeMillis();
    +		StringBuffer result = new StringBuffer("<message>");
    +
    +		synchronized (this)
    +		{
    +			if (buffer.length() == 0)
    +			{
    +				wait(timeout);
    +			}
    +
    +			if (buffer.length() > 0)
    +			{
    +				result.append("<delta>");
    +				result.append(buffer.toString());
    +				result.append("</delta>");
    +				
    +				buffer = new StringBuffer();
    +			}
    +
    +			notify();
    +		}
    +
    +		result.append("</message>");
    +
    +		return result.toString();
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.sharing.mxSharedDiagram.mxDiagramChangeListener#diagramChanged(java.lang.Object, org.w3c.dom.Node)
    +	 */
    +	public synchronized void diagramChanged(Object sender, String edits)
    +	{
    +		if (sender != this)
    +		{
    +			synchronized (this)
    +			{
    +				buffer.append(edits);
    +				notify();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the number of milliseconds this session has been inactive.
    +	 */
    +	public long inactiveTimeMillis()
    +	{
    +		return System.currentTimeMillis() - lastTimeMillis;
    +	}
    +
    +	/**
    +	 * Destroys the session and removes its listener from the shared diagram.
    +	 */
    +	public void destroy()
    +	{
    +		diagram.removeDiagramChangeListener(this);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/sharing/mxSharedGraphModel.java b/java/src/com/mxgraph/sharing/mxSharedGraphModel.java
    new file mode 100644
    index 000000000..f6f2b8c72
    --- /dev/null
    +++ b/java/src/com/mxgraph/sharing/mxSharedGraphModel.java
    @@ -0,0 +1,221 @@
    +/**
    + * $Id: mxSharedGraphModel.java,v 1.3 2012-01-13 12:35:04 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.sharing;
    +
    +import java.util.LinkedList;
    +
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.io.mxCodec;
    +import com.mxgraph.model.mxGraphModel;
    +import com.mxgraph.model.mxGraphModel.mxChildChange;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.model.mxIGraphModel.mxAtomicGraphModelChange;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxUndoableEdit;
    +import com.mxgraph.util.mxXmlUtils;
    +
    +/**
    + * Implements a diagram that may be shared among multiple sessions.
    + */
    +public class mxSharedGraphModel extends mxSharedState
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphModel model;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxCodec codec = new mxCodec()
    +	{
    +		public Object lookup(String id)
    +		{
    +			return model.getCell(id);
    +		}
    +	};
    +
    +	/**
    +	 * Whether remote changes should be significant in the
    +	 * local command history. Default is true.
    +	 */
    +	protected boolean significantRemoteChanges = true;
    +
    +	/**
    +	 * Constructs a new diagram with the given model.
    +	 * 
    +	 * @param model Initial model of the diagram.
    +	 */
    +	public mxSharedGraphModel(mxGraphModel model)
    +	{
    +		super(null); // Overrides getState
    +		this.model = model;
    +	}
    +
    +	/**
    +	 * @return the model
    +	 */
    +	public mxGraphModel getModel()
    +	{
    +		return model;
    +	}
    +
    +	/**
    +	 * @return the significantRemoteChanges
    +	 */
    +	public boolean isSignificantRemoteChanges()
    +	{
    +		return significantRemoteChanges;
    +	}
    +
    +	/**
    +	 * @param significantRemoteChanges the significantRemoteChanges to set
    +	 */
    +	public void setSignificantRemoteChanges(boolean significantRemoteChanges)
    +	{
    +		this.significantRemoteChanges = significantRemoteChanges;
    +	}
    +
    +	/**
    +	 * Returns the initial state of the diagram.
    +	 */
    +	public String getState()
    +	{
    +		return mxXmlUtils.getXml(codec.encode(model));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public synchronized void addDelta(String edits)
    +	{
    +		// Edits are not added to the history. They are sent straight out to
    +		// all sessions and the model is updated so the next session will get
    +		// these edits via the new state of the model in getState.
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected String processEdit(Node node)
    +	{
    +		mxAtomicGraphModelChange[] changes = decodeChanges(node.getFirstChild());
    +
    +		if (changes.length > 0)
    +		{
    +			mxUndoableEdit edit = createUndoableEdit(changes);
    +
    +			// No notify event here to avoid the edit from being encoded and transmitted
    +			// LATER: Remove changes property (deprecated)
    +			model.fireEvent(new mxEventObject(mxEvent.CHANGE, "edit", edit,
    +					"changes", changes));
    +			model.fireEvent(new mxEventObject(mxEvent.UNDO, "edit", edit));
    +			fireEvent(new mxEventObject(mxEvent.FIRED, "edit", edit));
    +		}
    +
    +		return super.processEdit(node);
    +	}
    +
    +	/**
    +	 * Creates a new mxUndoableEdit that implements the notify function to fire
    +	 * a change and notify event via the model.
    +	 */
    +	protected mxUndoableEdit createUndoableEdit(
    +			mxAtomicGraphModelChange[] changes)
    +	{
    +		mxUndoableEdit edit = new mxUndoableEdit(this, significantRemoteChanges)
    +		{
    +			public void dispatch()
    +			{
    +				// LATER: Remove changes property (deprecated)
    +				((mxGraphModel) source).fireEvent(new mxEventObject(
    +						mxEvent.CHANGE, "edit", this, "changes", changes));
    +				((mxGraphModel) source).fireEvent(new mxEventObject(
    +						mxEvent.NOTIFY, "edit", this, "changes", changes));
    +			}
    +		};
    +
    +		for (int i = 0; i < changes.length; i++)
    +		{
    +			edit.add(changes[i]);
    +		}
    +
    +		return edit;
    +	}
    +
    +	/**
    +	 * Adds removed cells to the codec object lookup for references to the removed
    +	 * cells after this point in time.
    +	 */
    +	protected mxAtomicGraphModelChange[] decodeChanges(Node node)
    +	{
    +		// Updates the document in the existing codec
    +		codec.setDocument(node.getOwnerDocument());
    +
    +		LinkedList<mxAtomicGraphModelChange> changes = new LinkedList<mxAtomicGraphModelChange>();
    +
    +		while (node != null)
    +		{
    +			Object change;
    +
    +			if (node.getNodeName().equals("mxRootChange"))
    +			{
    +				// Handles the special case were no ids should be
    +				// resolved in the existing model. This change will
    +				// replace all registered ids and cells from the
    +				// model and insert a new cell hierarchy instead.
    +				mxCodec tmp = new mxCodec(node.getOwnerDocument());
    +				change = tmp.decode(node);
    +			}
    +			else
    +			{
    +				change = codec.decode(node);
    +			}
    +
    +			if (change instanceof mxAtomicGraphModelChange)
    +			{
    +				mxAtomicGraphModelChange ac = (mxAtomicGraphModelChange) change;
    +
    +				ac.setModel(model);
    +				ac.execute();
    +
    +				// Workaround for references not being resolved if cells have
    +				// been removed from the model prior to being referenced. This
    +				// adds removed cells in the codec object lookup table.
    +				if (ac instanceof mxChildChange
    +						&& ((mxChildChange) ac).getParent() == null)
    +				{
    +					cellRemoved(((mxChildChange) ac).getChild());
    +				}
    +
    +				changes.add(ac);
    +			}
    +
    +			node = node.getNextSibling();
    +		}
    +
    +		return changes.toArray(new mxAtomicGraphModelChange[changes.size()]);
    +	}
    +
    +	/**
    +	 * Adds removed cells to the codec object lookup for references to the removed
    +	 * cells after this point in time.
    +	 */
    +	public void cellRemoved(Object cell)
    +	{
    +		codec.putObject(((mxICell) cell).getId(), cell);
    +
    +		int childCount = model.getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			cellRemoved(model.getChildAt(cell, i));
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/sharing/mxSharedState.java b/java/src/com/mxgraph/sharing/mxSharedState.java
    new file mode 100644
    index 000000000..1f9505975
    --- /dev/null
    +++ b/java/src/com/mxgraph/sharing/mxSharedState.java
    @@ -0,0 +1,187 @@
    +/**
    + * $Id: mxSharedState.java,v 1.3 2012-01-13 12:35:44 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.sharing;
    +
    +import java.util.ArrayList;
    +import java.util.Iterator;
    +import java.util.List;
    +
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxXmlUtils;
    +
    +/**
    + * Implements a diagram that may be shared among multiple sessions. This
    + * implementation is based only on string, it does not have a model instance.
    + * The diagram is represented by its initial state and the sequence of edits
    + * as applied to the diagram.
    + */
    +public class mxSharedState extends mxEventSource
    +{
    +
    +	/**
    +	 * Defines the requirements for an object that listens to changes on the
    +	 * shared diagram.
    +	 */
    +	public interface mxDiagramChangeListener
    +	{
    +
    +		/**
    +		 * Fires when the shared diagram was changed.
    +		 * 
    +		 * @param sender Session where the change was received from.
    +		 * @param edits String that represents the edits.
    +		 */
    +		void diagramChanged(Object sender, String edits);
    +	}
    +
    +	/**
    +	 * Holds a list of diagram change listeners.
    +	 */
    +	protected List<mxDiagramChangeListener> diagramChangeListeners;
    +
    +	/**
    +	 * Holds the initial state of the diagram.
    +	 */
    +	protected String state;
    +
    +	/**
    +	 * Holds the history of all changes of initial state.
    +	 */
    +	protected StringBuffer delta = new StringBuffer();
    +
    +	/**
    +	 * Constructs a new diagram with the given state.
    +	 * 
    +	 * @param state Initial state of the diagram.
    +	 */
    +	public mxSharedState(String state)
    +	{
    +		this.state = state;
    +	}
    +
    +	/**
    +	 * Returns the initial state of the diagram.
    +	 */
    +	public String getState()
    +	{
    +		return state;
    +	}
    +
    +	/**
    +	 * Returns the history of all changes as a string.
    +	 */
    +	public synchronized String getDelta()
    +	{
    +		return delta.toString();
    +	}
    +
    +	/**
    +	 * Appends the given string to the history and dispatches the change to all
    +	 * sessions that are listening to this shared diagram.
    +	 * 
    +	 * @param sender Session where the change originated from.
    +	 * @param delta XML that represents the change.
    +	 */
    +	public void processDelta(Object sender, Node delta)
    +	{
    +		StringBuffer edits = new StringBuffer();
    +
    +		synchronized (this)
    +		{
    +			Node edit = delta.getFirstChild();
    +
    +			while (edit != null)
    +			{
    +				if (edit.getNodeName().equals("edit"))
    +				{
    +					edits.append(processEdit(edit));
    +				}
    +
    +				edit = edit.getNextSibling();
    +			}
    +		}
    +
    +		String xml = edits.toString();
    +		addDelta(xml);
    +		dispatchDiagramChangeEvent(sender, xml);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected String processEdit(Node node)
    +	{
    +		return mxXmlUtils.getXml(node);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public synchronized void addDelta(String xml)
    +	{
    +		// TODO: Clear delta if xml contains mxRootChange
    +		delta.append(xml);
    +	}
    +
    +	/**
    +	 * Clears the history of all changes.
    +	 */
    +	public synchronized void resetDelta()
    +	{
    +		delta = new StringBuffer();
    +	}
    +
    +	/**
    +	 * Adds the given listener to the list of diagram change listeners.
    +	 * 
    +	 * @param listener Diagram change listener to be added.
    +	 */
    +	public void addDiagramChangeListener(mxDiagramChangeListener listener)
    +	{
    +		if (diagramChangeListeners == null)
    +		{
    +			diagramChangeListeners = new ArrayList<mxDiagramChangeListener>();
    +		}
    +
    +		diagramChangeListeners.add(listener);
    +	}
    +
    +	/**
    +	 * Removes the given listener from the list of diagram change listeners.
    +	 * 
    +	 * @param listener Diagram change listener to be removed.
    +	 */
    +	public void removeDiagramChangeListener(mxDiagramChangeListener listener)
    +	{
    +		if (diagramChangeListeners != null)
    +		{
    +			diagramChangeListeners.remove(listener);
    +		}
    +	}
    +
    +	/**
    +	 * Dispatches the given event information to all diagram change listeners.
    +	 * 
    +	 * @param sender Session where the change was received from.
    +	 * @param xml XML string that represents the change.
    +	 */
    +	void dispatchDiagramChangeEvent(Object sender, String edits)
    +	{
    +		if (diagramChangeListeners != null)
    +		{
    +			Iterator<mxDiagramChangeListener> it = diagramChangeListeners
    +					.iterator();
    +
    +			while (it.hasNext())
    +			{
    +				mxDiagramChangeListener listener = it.next();
    +				listener.diagramChanged(sender, edits);
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/sharing/package.html b/java/src/com/mxgraph/sharing/package.html
    new file mode 100644
    index 000000000..c46bf5946
    --- /dev/null
    +++ b/java/src/com/mxgraph/sharing/package.html
    @@ -0,0 +1,6 @@
    +<HTML>
    +<BODY>
    +  This package contains all classes required for concurrent diagram editing
    +  by multiple clients.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/swing/handler/mxCellHandler.java b/java/src/com/mxgraph/swing/handler/mxCellHandler.java
    new file mode 100644
    index 000000000..3a968e829
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxCellHandler.java
    @@ -0,0 +1,430 @@
    +/**
    + * $Id: mxCellHandler.java,v 1.26 2012-01-13 13:14:21 david Exp $
    + * Copyright (c) 2008-2012, JGraph Ltd
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Color;
    +import java.awt.Cursor;
    +import java.awt.Graphics;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.Stroke;
    +import java.awt.event.MouseEvent;
    +
    +import javax.swing.JComponent;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * @author Administrator
    + * 
    + */
    +public class mxCellHandler
    +{
    +	/**
    +	 * Reference to the enclosing graph component.
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Holds the cell state associated with this handler.
    +	 */
    +	protected mxCellState state;
    +
    +	/**
    +	 * Holds the rectangles that define the handles.
    +	 */
    +	protected Rectangle[] handles;
    +
    +	/**
    +	 * Specifies if the handles should be painted. Default is true.
    +	 */
    +	protected boolean handlesVisible = true;
    +
    +	/**
    +	 * Holds the bounding box of the handler.
    +	 */
    +	protected transient Rectangle bounds;
    +
    +	/**
    +	 * Holds the component that is used for preview.
    +	 */
    +	protected transient JComponent preview;
    +
    +	/**
    +	 * Holds the start location of the mouse gesture.
    +	 */
    +	protected transient Point first;
    +
    +	/**
    +	 * Holds the index of the handle that was clicked.
    +	 */
    +	protected transient int index;
    +
    +	/**
    +	 * Constructs a new cell handler for the given cell state.
    +	 * 
    +	 * @param graphComponent Enclosing graph component.
    +	 * @param state Cell state for which the handler is created.
    +	 */
    +	public mxCellHandler(mxGraphComponent graphComponent, mxCellState state)
    +	{
    +		this.graphComponent = graphComponent;
    +		refresh(state);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isActive()
    +	{
    +		return first != null;
    +	}
    +
    +	/**
    +	 * Refreshes the cell handler.
    +	 */
    +	public void refresh(mxCellState state)
    +	{
    +		this.state = state;
    +		handles = createHandles();
    +		mxGraph graph = graphComponent.getGraph();
    +		mxRectangle tmp = graph.getBoundingBox(state.getCell());
    +
    +		if (tmp != null)
    +		{
    +			bounds = tmp.getRectangle();
    +
    +			if (handles != null)
    +			{
    +				for (int i = 0; i < handles.length; i++)
    +				{
    +					if (isHandleVisible(i))
    +					{
    +						bounds.add(handles[i]);
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphComponent getGraphComponent()
    +	{
    +		return graphComponent;
    +	}
    +
    +	/**
    +	 * Returns the cell state that is associated with this handler.
    +	 */
    +	public mxCellState getState()
    +	{
    +		return state;
    +	}
    +
    +	/**
    +	 * Returns the index of the current handle.
    +	 */
    +	public int getIndex()
    +	{
    +		return index;
    +	}
    +
    +	/**
    +	 * Returns the bounding box of this handler.
    +	 */
    +	public Rectangle getBounds()
    +	{
    +		return bounds;
    +	}
    +
    +	/**
    +	 * Returns true if the label is movable.
    +	 */
    +	public boolean isLabelMovable()
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		String label = graph.getLabel(state.getCell());
    +
    +		return graph.isLabelMovable(state.getCell()) && label != null
    +				&& label.length() > 0;
    +	}
    +
    +	/**
    +	 * Returns true if the handles should be painted.
    +	 */
    +	public boolean isHandlesVisible()
    +	{
    +		return handlesVisible;
    +	}
    +
    +	/**
    +	 * Specifies if the handles should be painted.
    +	 */
    +	public void setHandlesVisible(boolean handlesVisible)
    +	{
    +		this.handlesVisible = handlesVisible;
    +	}
    +
    +	/**
    +	 * Returns true if the given index is the index of the last handle.
    +	 */
    +	public boolean isLabel(int index)
    +	{
    +		return index == getHandleCount() - 1;
    +	}
    +
    +	/**
    +	 * Creates the rectangles that define the handles.
    +	 */
    +	protected Rectangle[] createHandles()
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the number of handles in this handler.
    +	 */
    +	protected int getHandleCount()
    +	{
    +		return (handles != null) ? handles.length : 0;
    +	}
    +
    +	/**
    +	 * Hook for subclassers to return tooltip texts for certain points on the
    +	 * handle.
    +	 */
    +	public String getToolTipText(MouseEvent e)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the index of the handle at the given location.
    +	 * 
    +	 * @param x X-coordinate of the location.
    +	 * @param y Y-coordinate of the location.
    +	 * @return Returns the handle index for the given location.
    +	 */
    +	public int getIndexAt(int x, int y)
    +	{
    +		if (handles != null && isHandlesVisible())
    +		{
    +			int tol = graphComponent.getTolerance();
    +			Rectangle rect = new Rectangle(x - tol / 2, y - tol / 2, tol, tol);
    +
    +			for (int i = handles.length - 1; i >= 0; i--)
    +			{
    +				if (isHandleVisible(i) && handles[i].intersects(rect))
    +				{
    +					return i;
    +				}
    +			}
    +		}
    +
    +		return -1;
    +	}
    +
    +	/**
    +	 * Processes the given event.
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		if (!e.isConsumed())
    +		{
    +			int tmp = getIndexAt(e.getX(), e.getY());
    +
    +			if (!isIgnoredEvent(e) && tmp >= 0 && isHandleEnabled(tmp))
    +			{
    +				graphComponent.stopEditing(true);
    +				start(e, tmp);
    +				e.consume();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Processes the given event.
    +	 */
    +	public void mouseMoved(MouseEvent e)
    +	{
    +		if (!e.isConsumed() && handles != null)
    +		{
    +			int index = getIndexAt(e.getX(), e.getY());
    +
    +			if (index >= 0 && isHandleEnabled(index))
    +			{
    +				Cursor cursor = getCursor(e, index);
    +
    +				if (cursor != null)
    +				{
    +					graphComponent.getGraphControl().setCursor(cursor);
    +					e.consume();
    +				}
    +				else
    +				{
    +					graphComponent.getGraphControl().setCursor(
    +							new Cursor(Cursor.HAND_CURSOR));
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Processes the given event.
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * Processes the given event.
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		reset();
    +	}
    +
    +	/**
    +	 * Starts handling a gesture at the given handle index.
    +	 */
    +	public void start(MouseEvent e, int index)
    +	{
    +		this.index = index;
    +		first = e.getPoint();
    +		preview = createPreview();
    +
    +		if (preview != null)
    +		{
    +			graphComponent.getGraphControl().add(preview, 0);
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if the given event should be ignored.
    +	 */
    +	protected boolean isIgnoredEvent(MouseEvent e)
    +	{
    +		return graphComponent.isEditEvent(e);
    +	}
    +
    +	/**
    +	 * Creates the preview for this handler.
    +	 */
    +	protected JComponent createPreview()
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Resets the state of the handler and removes the preview.
    +	 */
    +	public void reset()
    +	{
    +		if (preview != null)
    +		{
    +			preview.setVisible(false);
    +			preview.getParent().remove(preview);
    +			preview = null;
    +		}
    +
    +		first = null;
    +	}
    +
    +	/**
    +	 * Returns the cursor for the given event and handle.
    +	 */
    +	protected Cursor getCursor(MouseEvent e, int index)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Paints the visible handles of this handler.
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (handles != null && isHandlesVisible())
    +		{
    +			for (int i = 0; i < handles.length; i++)
    +			{
    +				if (isHandleVisible(i)
    +						&& g.hitClip(handles[i].x, handles[i].y,
    +								handles[i].width, handles[i].height))
    +				{
    +					g.setColor(getHandleFillColor(i));
    +					g.fillRect(handles[i].x, handles[i].y, handles[i].width,
    +							handles[i].height);
    +
    +					g.setColor(getHandleBorderColor(i));
    +					g.drawRect(handles[i].x, handles[i].y,
    +							handles[i].width - 1, handles[i].height - 1);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the color used to draw the selection border. This implementation
    +	 * returns null.
    +	 */
    +	public Color getSelectionColor()
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the stroke used to draw the selection border. This implementation
    +	 * returns null.
    +	 */
    +	public Stroke getSelectionStroke()
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns true if the handle at the specified index is enabled.
    +	 */
    +	protected boolean isHandleEnabled(int index)
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 * Returns true if the handle at the specified index is visible.
    +	 */
    +	protected boolean isHandleVisible(int index)
    +	{
    +		return !isLabel(index) || isLabelMovable();
    +	}
    +
    +	/**
    +	 * Returns the color to be used to fill the handle at the specified index.
    +	 */
    +	protected Color getHandleFillColor(int index)
    +	{
    +		if (isLabel(index))
    +		{
    +			return mxSwingConstants.LABEL_HANDLE_FILLCOLOR;
    +		}
    +
    +		return mxSwingConstants.HANDLE_FILLCOLOR;
    +	}
    +
    +	/**
    +	 * Returns the border color of the handle at the specified index.
    +	 */
    +	protected Color getHandleBorderColor(int index)
    +	{
    +		return mxSwingConstants.HANDLE_BORDERCOLOR;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxCellMarker.java b/java/src/com/mxgraph/swing/handler/mxCellMarker.java
    new file mode 100644
    index 000000000..f637837ff
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxCellMarker.java
    @@ -0,0 +1,623 @@
    +/**
    + * $Id: mxCellMarker.java,v 1.22 2012-01-13 13:14:42 david Exp $
    + * Copyright (c) 2008-2012, JGraph Ltd
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.BasicStroke;
    +import java.awt.Color;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.Stroke;
    +import java.awt.event.MouseEvent;
    +
    +import javax.swing.JComponent;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraphView;
    +
    +/**
    + * Implements a mouse tracker that marks cells under the mouse.
    + * 
    + * This class fires the following event:
    + * 
    + * mxEvent.MARK fires in mark and unmark to notify the listener of a new cell
    + * under the mouse. The <code>state</code> property contains the mxCellState
    + * of the respective cell or null if no cell is under the mouse.
    + * 
    + * To create a cell marker which highlights cells "in-place", the following
    + * code can be used:
    + * <code>
    + * mxCellMarker highlighter = new mxCellMarker(graphComponent) {
    + * 
    + *   protected Map<String, Object> lastStyle;
    + *   
    + *   public mxCellState process(MouseEvent e)
    + *   {
    + *     mxCellState state = null;
    + *     
    + *     if (isEnabled())
    + *     {
    + *       state = getState(e);
    + *       boolean isValid = (state != null) ? isValidState(state) : false;
    + *       
    + *       if (!isValid)
    + *       {
    + *         state = null;
    + *       }
    + *       
    + *       highlight(state);
    + *     }
    + *     
    + *     return state;
    + *   }
    + *   
    + *   public void highlight(mxCellState state)
    + *   {
    + *     if (validState != state)
    + *     {
    + *       Rectangle dirty = null;
    + *       
    + *       if (validState != null)
    + *       {
    + *         validState.setStyle(lastStyle);
    + *         dirty = validState.getBoundingBox().getRectangle();
    + *         dirty.grow(4, 4);
    + *       }
    + *       
    + *       if (state != null)
    + *       {
    + *         lastStyle = state.getStyle();
    + *         state.setStyle(new Hashtable<String, Object>(state.getStyle()));
    + *         state.getStyle().put("strokeColor", "#00ff00");
    + *         state.getStyle().put("fontColor", "#00ff00");
    + *         state.getStyle().put("strokeWidth", "3");
    + *          
    + *         Rectangle tmp = state.getBoundingBox().getRectangle();
    + *         
    + *         if (dirty != null)
    + *         {
    + *           dirty.add(tmp);
    + *         }
    + *         else
    + *         {
    + *           dirty = tmp;
    + *         }
    + *         
    + *         dirty.grow(4, 4);
    + *       }
    + *       
    + *       validState = state;
    + *       graphComponent.repaint(dirty);
    + *     }
    + *   }
    + *
    + *   public void reset()
    + *   {
    + *     highlight(null);
    + *   }
    + *
    + *   public void paint(Graphics g)
    + *   {
    + *     // do nothing
    + *   }
    + * };
    + *  
    + * graphComponent.getConnectionHandler().setMarker(highlighter);
    + * </code>
    + */
    +public class mxCellMarker extends JComponent
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 614473367053597572L;
    +
    +	/**
    +	 * Specifies if the highlights should appear on top of everything
    +	 * else in the overlay pane. Default is false.
    +	 */
    +	public static boolean KEEP_ON_TOP = false;
    +
    +	/**
    +	 * Specifies the default stroke for the marker.
    +	 */
    +	public static Stroke DEFAULT_STROKE = new BasicStroke(3);
    +
    +	/**
    +	 * Holds the event source.
    +	 */
    +	protected mxEventSource eventSource = new mxEventSource(this);
    +
    +	/**
    +	 * Holds the enclosing graph component.
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Specifies if the marker is enabled. Default is true.
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * Specifies the portion of the width and height that should trigger
    +	 * a highlight. The area around the center of the cell to be marked is used
    +	 * as the hotspot. Possible values are between 0 and 1. Default is
    +	 * mxConstants.DEFAULT_HOTSPOT.
    +	 */
    +	protected double hotspot;
    +
    +	/**
    +	 * Specifies if the hotspot is enabled. Default is false.
    +	 */
    +	protected boolean hotspotEnabled = false;
    +
    +	/**
    +	 * Specifies if the the content area of swimlane should be non-transparent
    +	 * to mouse events. Default is false.
    +	 */
    +	protected boolean swimlaneContentEnabled = false;
    +
    +	/**
    +	 * Specifies the valid- and invalidColor for the marker.
    +	 */
    +	protected Color validColor, invalidColor;
    +
    +	/**
    +	 * Holds the current marker color.
    +	 */
    +	protected transient Color currentColor;
    +
    +	/**
    +	 * Holds the marked state if it is valid.
    +	 */
    +	protected transient mxCellState validState;
    +
    +	/**
    +	 * Holds the marked state.
    +	 */
    +	protected transient mxCellState markedState;
    +
    +	/**
    +	 * Constructs a new marker for the given graph component.
    +	 * 
    +	 * @param graphComponent
    +	 */
    +	public mxCellMarker(mxGraphComponent graphComponent)
    +	{
    +		this(graphComponent, mxSwingConstants.DEFAULT_VALID_COLOR);
    +	}
    +
    +	/**
    +	 * Constructs a new marker for the given graph component.
    +	 */
    +	public mxCellMarker(mxGraphComponent graphComponent, Color validColor)
    +	{
    +		this(graphComponent, validColor, mxSwingConstants.DEFAULT_INVALID_COLOR);
    +	}
    +
    +	/**
    +	 * Constructs a new marker for the given graph component.
    +	 */
    +	public mxCellMarker(mxGraphComponent graphComponent, Color validColor,
    +			Color invalidColor)
    +	{
    +		this(graphComponent, validColor, invalidColor,
    +				mxConstants.DEFAULT_HOTSPOT);
    +	}
    +
    +	/**
    +	 * Constructs a new marker for the given graph component.
    +	 */
    +	public mxCellMarker(mxGraphComponent graphComponent, Color validColor,
    +			Color invalidColor, double hotspot)
    +	{
    +		this.graphComponent = graphComponent;
    +		this.validColor = validColor;
    +		this.invalidColor = invalidColor;
    +		this.hotspot = hotspot;
    +	}
    +
    +	/**
    +	 * Sets the enabled state of the marker.
    +	 */
    +	public void setEnabled(boolean enabled)
    +	{
    +		this.enabled = enabled;
    +	}
    +
    +	/**
    +	 * Returns true if the marker is enabled, that is, if it processes events
    +	 * in process.
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * Sets the hotspot.
    +	 */
    +	public void setHotspot(double hotspot)
    +	{
    +		this.hotspot = hotspot;
    +	}
    +
    +	/**
    +	 * Returns the hotspot.
    +	 */
    +	public double getHotspot()
    +	{
    +		return hotspot;
    +	}
    +
    +	/**
    +	 * Specifies whether the hotspot should be used in intersects.
    +	 */
    +	public void setHotspotEnabled(boolean enabled)
    +	{
    +		this.hotspotEnabled = enabled;
    +	}
    +
    +	/**
    +	 * Returns true if hotspot is used in intersects.
    +	 */
    +	public boolean isHotspotEnabled()
    +	{
    +		return hotspotEnabled;
    +	}
    +
    +	/**
    +	 * Sets if the content area of swimlanes should not be transparent to
    +	 * events.
    +	 */
    +	public void setSwimlaneContentEnabled(boolean swimlaneContentEnabled)
    +	{
    +		this.swimlaneContentEnabled = swimlaneContentEnabled;
    +	}
    +
    +	/**
    +	 * Returns true if the content area of swimlanes is non-transparent to
    +	 * events.
    +	 */
    +	public boolean isSwimlaneContentEnabled()
    +	{
    +		return swimlaneContentEnabled;
    +	}
    +
    +	/**
    +	 * Sets the color used for valid highlights.
    +	 */
    +	public void setValidColor(Color value)
    +	{
    +		validColor = value;
    +	}
    +
    +	/**
    +	 * Returns the color used for valid highlights.
    +	 */
    +	public Color getValidColor()
    +	{
    +		return validColor;
    +	}
    +
    +	/**
    +	 * Sets the color used for invalid highlights.
    +	 */
    +	public void setInvalidColor(Color value)
    +	{
    +		invalidColor = value;
    +	}
    +
    +	/**
    +	 * Returns the color used for invalid highlights.
    +	 */
    +	public Color getInvalidColor()
    +	{
    +		return invalidColor;
    +	}
    +
    +	/**
    +	 * Returns true if validState is not null.
    +	 */
    +	public boolean hasValidState()
    +	{
    +		return (validState != null);
    +	}
    +
    +	/**
    +	 * Returns the valid state.
    +	 */
    +	public mxCellState getValidState()
    +	{
    +		return validState;
    +	}
    +
    +	/**
    +	 * Sets the current color. 
    +	 */
    +	public void setCurrentColor(Color value)
    +	{
    +		currentColor = value;
    +	}
    +
    +	/**
    +	 * Returns the current color.
    +	 */
    +	public Color getCurrentColor()
    +	{
    +		return currentColor;
    +	}
    +
    +	/**
    +	 * Sets the marked state. 
    +	 */
    +	public void setMarkedState(mxCellState value)
    +	{
    +		markedState = value;
    +	}
    +
    +	/**
    +	 * Returns the marked state.
    +	 */
    +	public mxCellState getMarkedState()
    +	{
    +		return markedState;
    +	}
    +
    +	/**
    +	 * Resets the state of the cell marker.
    +	 */
    +	public void reset()
    +	{
    +		validState = null;
    +
    +		if (markedState != null)
    +		{
    +			markedState = null;
    +			unmark();
    +		}
    +	}
    +
    +	/**
    +	 * Processes the given event and marks the state returned by getStateAt
    +	 * with the color returned by getMarkerColor. If the markerColor is not
    +	 * null, then the state is stored in markedState. If isValidState returns
    +	 * true, then the state is stored in validState regardless of the marker
    +	 * color. The state is returned regardless of the marker color and
    +	 * valid state. 
    +	 */
    +	public mxCellState process(MouseEvent e)
    +	{
    +		mxCellState state = null;
    +
    +		if (isEnabled())
    +		{
    +			state = getState(e);
    +			boolean valid = (state != null) ? isValidState(state) : false;
    +			Color color = getMarkerColor(e, state, valid);
    +			
    +			highlight(state, color, valid);
    +		}
    +
    +		return state;
    +	}
    +	
    +	/**
    +	 * 
    +	 */
    +	public void highlight(mxCellState state, Color color)
    +	{
    +		highlight(state, color, true);
    +	}
    +	
    +	/**
    +	 * 
    +	 */
    +	public void highlight(mxCellState state, Color color, boolean valid)
    +	{
    +		if (valid)
    +		{
    +			validState = state;
    +		}
    +		else
    +		{
    +			validState = null;
    +		}
    +
    +		if (state != markedState || color != currentColor)
    +		{
    +			currentColor = color;
    +
    +			if (state != null && currentColor != null)
    +			{
    +				markedState = state;
    +				mark();
    +			}
    +			else if (markedState != null)
    +			{
    +				markedState = null;
    +				unmark();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Marks the markedState and fires a mxEvent.MARK event.
    +	 */
    +	public void mark()
    +	{
    +		if (markedState != null)
    +		{
    +			Rectangle bounds = markedState.getRectangle();
    +			bounds.grow(3, 3);
    +			bounds.width += 1;
    +			bounds.height += 1;
    +			setBounds(bounds);
    +
    +			if (getParent() == null)
    +			{
    +				setVisible(true);
    +
    +				if (KEEP_ON_TOP)
    +				{
    +					graphComponent.getGraphControl().add(this, 0);
    +				}
    +				else
    +				{
    +					graphComponent.getGraphControl().add(this);
    +				}
    +			}
    +
    +			repaint();
    +			eventSource.fireEvent(new mxEventObject(mxEvent.MARK, "state",
    +					markedState));
    +		}
    +	}
    +
    +	/**
    +	 * Hides the marker and fires a mxEvent.MARK event.
    +	 */
    +	public void unmark()
    +	{
    +		if (getParent() != null)
    +		{
    +			setVisible(false);
    +			getParent().remove(this);
    +			eventSource.fireEvent(new mxEventObject(mxEvent.MARK));
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if the given state is a valid state. If this returns true,
    +	 * then the state is stored in validState. The return value of this method
    +	 * is used as the argument for getMarkerColor.
    +	 */
    +	protected boolean isValidState(mxCellState state)
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 * Returns the valid- or invalidColor depending on the value of isValid.
    +	 * The given state is ignored by this implementation.
    +	 */
    +	protected Color getMarkerColor(MouseEvent e, mxCellState state,
    +			boolean isValid)
    +	{
    +		return (isValid) ? validColor : invalidColor;
    +	}
    +
    +	/**
    +	 * Uses getCell, getMarkedState and intersects to return the state for
    +	 * the given event.
    +	 */
    +	protected mxCellState getState(MouseEvent e)
    +	{
    +		Object cell = getCell(e);
    +		mxGraphView view = graphComponent.getGraph().getView();
    +		mxCellState state = getStateToMark(view.getState(cell));
    +
    +		return (state != null && intersects(state, e)) ? state : null;
    +	}
    +
    +	/**
    +	 * Returns the state at the given location. This uses mxGraph.getCellAt.
    +	 */
    +	protected Object getCell(MouseEvent e)
    +	{
    +		return graphComponent.getCellAt(e.getX(), e.getY(),
    +				swimlaneContentEnabled);
    +	}
    +
    +	/**
    +	 * Returns the state to be marked for the given state under the mouse. This
    +	 * returns the given state.
    +	 */
    +	protected mxCellState getStateToMark(mxCellState state)
    +	{
    +		return state;
    +	}
    +
    +	/**
    +	 * Returns true if the given mouse event intersects the given state. This
    +	 * returns true if the hotspot is 0 or the event is inside the hotspot for
    +	 * the given cell state.
    +	 */
    +	protected boolean intersects(mxCellState state, MouseEvent e)
    +	{
    +		if (isHotspotEnabled())
    +		{
    +			return mxUtils.intersectsHotspot(state, e.getX(), e.getY(),
    +					hotspot, mxConstants.MIN_HOTSPOT_SIZE,
    +					mxConstants.MAX_HOTSPOT_SIZE);
    +		}
    +
    +		return true;
    +	}
    +
    +	/**
    +	 * Adds the given event listener.
    +	 */
    +	public void addListener(String eventName, mxIEventListener listener)
    +	{
    +		eventSource.addListener(eventName, listener);
    +	}
    +
    +	/**
    +	 * Removes the given event listener.
    +	 */
    +	public void removeListener(mxIEventListener listener)
    +	{
    +		eventSource.removeListener(listener);
    +	}
    +
    +	/**
    +	 * Removes the given event listener for the specified event name.
    +	 */
    +	public void removeListener(mxIEventListener listener, String eventName)
    +	{
    +		eventSource.removeListener(listener, eventName);
    +	}
    +
    +	/**
    +	 * Paints the outline of the markedState with the currentColor.
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (markedState != null && currentColor != null)
    +		{
    +			((Graphics2D) g).setStroke(DEFAULT_STROKE);
    +			g.setColor(currentColor);
    +
    +			if (markedState.getAbsolutePointCount() > 0)
    +			{
    +				Point last = markedState.getAbsolutePoint(0).getPoint();
    +
    +				for (int i = 1; i < markedState.getAbsolutePointCount(); i++)
    +				{
    +					Point current = markedState.getAbsolutePoint(i).getPoint();
    +					g.drawLine(last.x - getX(), last.y - getY(), current.x
    +							- getX(), current.y - getY());
    +					last = current;
    +				}
    +			}
    +			else
    +			{
    +				g.drawRect(1, 1, getWidth() - 3, getHeight() - 3);
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxCellTracker.java b/java/src/com/mxgraph/swing/handler/mxCellTracker.java
    new file mode 100644
    index 000000000..502447b58
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxCellTracker.java
    @@ -0,0 +1,109 @@
    +/**
    + * $Id: mxCellTracker.java,v 1.2 2009-11-24 12:00:29 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Color;
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseListener;
    +import java.awt.event.MouseMotionListener;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +
    +/**
    + * Event handler that highlights cells. Inherits from mxCellMarker.
    + */
    +public class mxCellTracker extends mxCellMarker implements MouseListener,
    +		MouseMotionListener
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 7372144804885125688L;
    +
    +	/**
    +	 * Constructs an event handler that highlights cells.
    +	 */
    +	public mxCellTracker(mxGraphComponent graphComponent, Color color)
    +	{
    +		super(graphComponent, color);
    +
    +		graphComponent.getGraphControl().addMouseListener(this);
    +		graphComponent.getGraphControl().addMouseMotionListener(this);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void destroy()
    +	{
    +		graphComponent.getGraphControl().removeMouseListener(this);
    +		graphComponent.getGraphControl().removeMouseMotionListener(this);
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseClicked(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseEntered(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseExited(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		reset();
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseMoved(MouseEvent e)
    +	{
    +		process(e);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxConnectPreview.java b/java/src/com/mxgraph/swing/handler/mxConnectPreview.java
    new file mode 100644
    index 000000000..1a19aa464
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxConnectPreview.java
    @@ -0,0 +1,373 @@
    +/**
    + * $Id: mxConnectPreview.java,v 1.7 2011-05-18 08:09:25 gaudenz Exp $
    + * Copyright (c) 2008-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.AlphaComposite;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.event.MouseEvent;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * Connection handler creates new connections between cells. This control is used to display the connector
    + * icon, while the preview is used to draw the line.
    + */
    +public class mxConnectPreview extends mxEventSource
    +{
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxCellState previewState;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxCellState sourceState;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxPoint startPoint;
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 */
    +	public mxConnectPreview(mxGraphComponent graphComponent)
    +	{
    +		this.graphComponent = graphComponent;
    +
    +		// Installs the paint handler
    +		graphComponent.addListener(mxEvent.AFTER_PAINT, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				Graphics g = (Graphics) evt.getProperty("g");
    +				paint(g);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Creates a new instance of mxShape for previewing the edge.
    +	 */
    +	protected Object createCell(mxCellState startState, String style)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxICell cell = ((mxICell) graph
    +				.createEdge(null, null, "",
    +						(startState != null) ? startState.getCell() : null,
    +						null, style));
    +		((mxICell) startState.getCell()).insertEdge(cell, true);
    +
    +		return cell;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isActive()
    +	{
    +		return sourceState != null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCellState getSourceState()
    +	{
    +		return sourceState;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCellState getPreviewState()
    +	{
    +		return previewState;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxPoint getStartPoint()
    +	{
    +		return startPoint;
    +	}
    +
    +	/**
    +	 * Updates the style of the edge preview from the incoming edge
    +	 */
    +	public void start(MouseEvent e, mxCellState startState, String style)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		sourceState = startState;
    +		startPoint = transformScreenPoint(startState.getCenterX(),
    +				startState.getCenterY());
    +		previewState = graph.getView().getState(createCell(startState, style),
    +				true);
    +		fireEvent(new mxEventObject(mxEvent.START, "event", e, "state",
    +				previewState));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void update(MouseEvent e, mxCellState targetState, double x, double y)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxICell cell = (mxICell) previewState.getCell();
    +
    +		mxRectangle dirty = graphComponent.getGraph().getPaintBounds(
    +				new Object[] { previewState.getCell() });
    +
    +		if (cell.getTerminal(false) != null)
    +		{
    +			cell.getTerminal(false).removeEdge(cell, false);
    +		}
    +
    +		if (targetState != null)
    +		{
    +			((mxICell) targetState.getCell()).insertEdge(cell, false);
    +		}
    +
    +		mxGeometry geo = graph.getCellGeometry(previewState.getCell());
    +
    +		geo.setTerminalPoint(startPoint, true);
    +		geo.setTerminalPoint(transformScreenPoint(x, y), false);
    +
    +		revalidate(graph.getView().getState(graph.getDefaultParent()),
    +				previewState.getCell());
    +		fireEvent(new mxEventObject(mxEvent.CONTINUE, "event", e, "x", x, "y",
    +				y));
    +
    +		// Repaints the dirty region
    +		// TODO: Cache the new dirty region for next repaint
    +		Rectangle tmp = getDirtyRect(dirty);
    +		
    +		if (tmp != null)
    +		{
    +			graphComponent.getGraphControl().repaint(tmp);
    +		}
    +		else
    +		{
    +			graphComponent.getGraphControl().repaint();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Rectangle getDirtyRect()
    +	{
    +		return getDirtyRect(null);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Rectangle getDirtyRect(mxRectangle dirty)
    +	{
    +		if (previewState != null)
    +		{
    +			mxRectangle tmp = graphComponent.getGraph().getPaintBounds(
    +					new Object[] { previewState.getCell() });
    +
    +			if (dirty != null)
    +			{
    +				dirty.add(tmp);
    +			}
    +			else
    +			{
    +				dirty = tmp;
    +			}
    +
    +			if (dirty != null)
    +			{
    +				// TODO: Take arrow size into account
    +				dirty.grow(2);
    +
    +				return dirty.getRectangle();
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxPoint transformScreenPoint(double x, double y)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxPoint tr = graph.getView().getTranslate();
    +		double scale = graph.getView().getScale();
    +
    +		return new mxPoint(graph.snap(x / scale - tr.getX()), graph.snap(y / scale - tr.getY()));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void revalidate(mxCellState pState, Object cell)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxCellState tmp = graph.getView().getState(cell);
    +		tmp.setInvalid(true);
    +
    +		graph.getView().validateBounds(pState, cell);
    +		graph.getView().validatePoints(pState, cell);
    +
    +		mxIGraphModel model = graph.getModel();
    +		int childCount = model.getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			revalidate(tmp, model.getChildAt(cell, i));
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (previewState != null)
    +		{
    +			mxGraphics2DCanvas canvas = graphComponent.getCanvas();
    +
    +			if (graphComponent.isAntiAlias())
    +			{
    +				mxUtils.setAntiAlias((Graphics2D) g, true, false);
    +			}
    +
    +			float alpha = graphComponent.getPreviewAlpha();
    +
    +			if (alpha < 1)
    +			{
    +				((Graphics2D) g).setComposite(AlphaComposite.getInstance(
    +						AlphaComposite.SRC_OVER, alpha));
    +			}
    +
    +			Graphics2D previousGraphics = canvas.getGraphics();
    +			Point previousTranslate = canvas.getTranslate();
    +			double previousScale = canvas.getScale();
    +
    +			try
    +			{
    +				canvas.setScale(graphComponent.getGraph().getView().getScale());
    +				canvas.setTranslate(0, 0);
    +				canvas.setGraphics((Graphics2D) g);
    +
    +				paintPreview(canvas);
    +			}
    +			finally
    +			{
    +				canvas.setScale(previousScale);
    +				canvas.setTranslate(previousTranslate.x, previousTranslate.y);
    +				canvas.setGraphics(previousGraphics);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Draws the preview using the graphics canvas.
    +	 */
    +	protected void paintPreview(mxGraphics2DCanvas canvas)
    +	{
    +		graphComponent.getGraphControl().drawCell(graphComponent.getCanvas(),
    +				previewState.getCell());
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public Object stop(boolean commit)
    +	{
    +		return stop(commit, null);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public Object stop(boolean commit, MouseEvent e)
    +	{
    +		Object result = (sourceState != null) ? sourceState.getCell() : null;
    +
    +		if (previewState != null)
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +
    +			graph.getModel().beginUpdate();
    +			try
    +			{
    +				mxICell cell = (mxICell) previewState.getCell();
    +				Object src = cell.getTerminal(true);
    +				Object trg = cell.getTerminal(false);
    +
    +				if (src != null)
    +				{
    +					((mxICell) src).removeEdge(cell, true);
    +				}
    +
    +				if (trg != null)
    +				{
    +					((mxICell) trg).removeEdge(cell, false);
    +				}
    +
    +				if (commit)
    +				{
    +					result = graph.addCell(cell, null, null, src, trg);
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.STOP, "event", e, "commit",
    +						commit, "cell", (commit) ? result : null));
    +
    +				// Clears the state before the model commits
    +				if (previewState != null)
    +				{
    +					Rectangle dirty = getDirtyRect();
    +					graph.getView().clear(cell, false, true);
    +					previewState = null;
    +
    +					if (!commit && dirty != null)
    +					{
    +						graphComponent.getGraphControl().repaint(dirty);
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				graph.getModel().endUpdate();
    +			}
    +		}
    +
    +		sourceState = null;
    +		startPoint = null;
    +
    +		return result;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxConnectionHandler.java b/java/src/com/mxgraph/swing/handler/mxConnectionHandler.java
    new file mode 100644
    index 000000000..443a64dd2
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxConnectionHandler.java
    @@ -0,0 +1,855 @@
    +/**
    + * $Id: mxConnectionHandler.java,v 1.33 2012-02-14 08:17:01 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Color;
    +import java.awt.Cursor;
    +import java.awt.Graphics;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.event.MouseEvent;
    +import java.beans.PropertyChangeEvent;
    +import java.beans.PropertyChangeListener;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.JOptionPane;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.mxGraphComponent.mxGraphControl;
    +import com.mxgraph.swing.util.mxMouseAdapter;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +
    +/**
    + * Connection handler creates new connections between cells. This control is used to display the connector
    + * icon, while the preview is used to draw the line.
    + * 
    + * mxEvent.CONNECT fires between begin- and endUpdate in mouseReleased. The <code>cell</code>
    + * property contains the inserted edge, the <code>event</code> and <code>target</code> 
    + * properties contain the respective arguments that were passed to mouseReleased.
    + */
    +public class mxConnectionHandler extends mxMouseAdapter
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -2543899557644889853L;
    +
    +	/**
    +	 * 
    +	 */
    +	public static Cursor CONNECT_CURSOR = new Cursor(Cursor.HAND_CURSOR);
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Holds the event source.
    +	 */
    +	protected mxEventSource eventSource = new mxEventSource(this);
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxConnectPreview connectPreview;
    +
    +	/**
    +	 * Specifies the icon to be used for creating new connections. If this is
    +	 * specified then it is used instead of the handle. Default is null.
    +	 */
    +	protected ImageIcon connectIcon = null;
    +
    +	/**
    +	 * Specifies the size of the handle to be used for creating new
    +	 * connections. Default is mxConstants.CONNECT_HANDLE_SIZE. 
    +	 */
    +	protected int handleSize = mxConstants.CONNECT_HANDLE_SIZE;
    +
    +	/**
    +	 * Specifies if a handle should be used for creating new connections. This
    +	 * is only used if no connectIcon is specified. If this is false, then the
    +	 * source cell will be highlighted when the mouse is over the hotspot given
    +	 * in the marker. Default is mxConstants.CONNECT_HANDLE_ENABLED.
    +	 */
    +	protected boolean handleEnabled = mxConstants.CONNECT_HANDLE_ENABLED;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean select = true;
    +
    +	/**
    +	 * Specifies if the source should be cloned and used as a target if no
    +	 * target was selected. Default is false.
    +	 */
    +	protected boolean createTarget = false;
    +
    +	/**
    +	 * Appearance and event handling order wrt subhandles.
    +	 */
    +	protected boolean keepOnTop = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Point first;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient boolean active = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Rectangle bounds;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxCellState source;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxCellMarker marker;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient String error;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxIEventListener resetHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			reset();
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 */
    +	public mxConnectionHandler(mxGraphComponent graphComponent)
    +	{
    +		this.graphComponent = graphComponent;
    +
    +		// Installs the paint handler
    +		graphComponent.addListener(mxEvent.AFTER_PAINT, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				Graphics g = (Graphics) evt.getProperty("g");
    +				paint(g);
    +			}
    +		});
    +
    +		connectPreview = createConnectPreview();
    +
    +		mxGraphControl graphControl = graphComponent.getGraphControl();
    +		graphControl.addMouseListener(this);
    +		graphControl.addMouseMotionListener(this);
    +
    +		// Installs the graph listeners and keeps them in sync
    +		addGraphListeners(graphComponent.getGraph());
    +
    +		graphComponent.addPropertyChangeListener(new PropertyChangeListener()
    +		{
    +			public void propertyChange(PropertyChangeEvent evt)
    +			{
    +				if (evt.getPropertyName().equals("graph"))
    +				{
    +					removeGraphListeners((mxGraph) evt.getOldValue());
    +					addGraphListeners((mxGraph) evt.getNewValue());
    +				}
    +			}
    +		});
    +
    +		marker = new mxCellMarker(graphComponent)
    +		{
    +			/**
    +			 * 
    +			 */
    +			private static final long serialVersionUID = 103433247310526381L;
    +
    +			// Overrides to return cell at location only if valid (so that
    +			// there is no highlight for invalid cells that have no error
    +			// message when the mouse is released)
    +			protected Object getCell(MouseEvent e)
    +			{
    +				Object cell = super.getCell(e);
    +
    +				if (isConnecting())
    +				{
    +					if (source != null)
    +					{
    +						error = validateConnection(source.getCell(), cell);
    +
    +						if (error != null && error.length() == 0)
    +						{
    +							cell = null;
    +
    +							// Enables create target inside groups
    +							if (createTarget)
    +							{
    +								error = null;
    +							}
    +						}
    +					}
    +				}
    +				else if (!isValidSource(cell))
    +				{
    +					cell = null;
    +				}
    +
    +				return cell;
    +			}
    +
    +			// Sets the highlight color according to isValidConnection
    +			protected boolean isValidState(mxCellState state)
    +			{
    +				if (isConnecting())
    +				{
    +					return error == null;
    +				}
    +				else
    +				{
    +					return super.isValidState(state);
    +				}
    +			}
    +
    +			// Overrides to use marker color only in highlight mode or for
    +			// target selection
    +			protected Color getMarkerColor(MouseEvent e, mxCellState state,
    +					boolean isValid)
    +			{
    +				return (isHighlighting() || isConnecting()) ? super
    +						.getMarkerColor(e, state, isValid) : null;
    +			}
    +
    +			// Overrides to use hotspot only for source selection otherwise
    +			// intersects always returns true when over a cell
    +			protected boolean intersects(mxCellState state, MouseEvent e)
    +			{
    +				if (!isHighlighting() || isConnecting())
    +				{
    +					return true;
    +				}
    +
    +				return super.intersects(state, e);
    +			}
    +		};
    +
    +		marker.setHotspotEnabled(true);
    +	}
    +
    +	/**
    +	 * Installs the listeners to update the handles after any changes.
    +	 */
    +	protected void addGraphListeners(mxGraph graph)
    +	{
    +		// LATER: Install change listener for graph model, view
    +		if (graph != null)
    +		{
    +			mxGraphView view = graph.getView();
    +			view.addListener(mxEvent.SCALE, resetHandler);
    +			view.addListener(mxEvent.TRANSLATE, resetHandler);
    +			view.addListener(mxEvent.SCALE_AND_TRANSLATE, resetHandler);
    +
    +			graph.getModel().addListener(mxEvent.CHANGE, resetHandler);
    +		}
    +	}
    +
    +	/**
    +	 * Removes all installed listeners.
    +	 */
    +	protected void removeGraphListeners(mxGraph graph)
    +	{
    +		if (graph != null)
    +		{
    +			mxGraphView view = graph.getView();
    +			view.removeListener(resetHandler, mxEvent.SCALE);
    +			view.removeListener(resetHandler, mxEvent.TRANSLATE);
    +			view.removeListener(resetHandler, mxEvent.SCALE_AND_TRANSLATE);
    +
    +			graph.getModel().removeListener(resetHandler, mxEvent.CHANGE);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxConnectPreview createConnectPreview()
    +	{
    +		return new mxConnectPreview(graphComponent);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxConnectPreview getConnectPreview()
    +	{
    +		return connectPreview;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setConnectPreview(mxConnectPreview value)
    +	{
    +		connectPreview = value;
    +	}
    +
    +	/**
    +	 * Returns true if the source terminal has been clicked and a new
    +	 * connection is currently being previewed.
    +	 */
    +	public boolean isConnecting()
    +	{
    +		return connectPreview.isActive();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isActive()
    +	{
    +		return active;
    +	}
    +	
    +	/**
    +	 * Returns true if no connectIcon is specified and handleEnabled is false.
    +	 */
    +	public boolean isHighlighting()
    +	{
    +		return connectIcon == null && !handleEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		enabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isKeepOnTop()
    +	{
    +		return keepOnTop;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setKeepOnTop(boolean value)
    +	{
    +		keepOnTop = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setConnectIcon(ImageIcon value)
    +	{
    +		connectIcon = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public ImageIcon getConnecIcon()
    +	{
    +		return connectIcon;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setHandleEnabled(boolean value)
    +	{
    +		handleEnabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isHandleEnabled()
    +	{
    +		return handleEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setHandleSize(int value)
    +	{
    +		handleSize = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getHandleSize()
    +	{
    +		return handleSize;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCellMarker getMarker()
    +	{
    +		return marker;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setMarker(mxCellMarker value)
    +	{
    +		marker = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setCreateTarget(boolean value)
    +	{
    +		createTarget = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isCreateTarget()
    +	{
    +		return createTarget;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setSelect(boolean value)
    +	{
    +		select = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isSelect()
    +	{
    +		return select;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void reset()
    +	{
    +		connectPreview.stop(false);
    +		setBounds(null);
    +		marker.reset();
    +		active = false;
    +		source = null;
    +		first = null;
    +		error = null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object createTargetVertex(MouseEvent e, Object source)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		Object clone = graph.cloneCells(new Object[] { source })[0];
    +		mxIGraphModel model = graph.getModel();
    +		mxGeometry geo = model.getGeometry(clone);
    +
    +		if (geo != null)
    +		{
    +			mxPoint point = graphComponent.getPointForEvent(e);
    +			geo.setX(graph.snap(point.getX() - geo.getWidth() / 2));
    +			geo.setY(graph.snap(point.getY() - geo.getHeight() / 2));
    +		}
    +
    +		return clone;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isValidSource(Object cell)
    +	{
    +		return graphComponent.getGraph().isValidSource(cell);
    +	}
    +
    +	/**
    +	 * Returns true. The call to mxGraph.isValidTarget is implicit by calling
    +	 * mxGraph.getEdgeValidationError in validateConnection. This is an
    +	 * additional hook for disabling certain targets in this specific handler.
    +	 */
    +	public boolean isValidTarget(Object cell)
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 * Returns the error message or an empty string if the connection for the
    +	 * given source target pair is not valid. Otherwise it returns null.
    +	 */
    +	public String validateConnection(Object source, Object target)
    +	{
    +		if (target == null && createTarget)
    +		{
    +			return null;
    +		}
    +
    +		if (!isValidTarget(target))
    +		{
    +			return "";
    +		}
    +
    +		return graphComponent.getGraph().getEdgeValidationError(
    +				connectPreview.getPreviewState().getCell(), source, target);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		if (!graphComponent.isForceMarqueeEvent(e)
    +				&& !graphComponent.isPanningEvent(e)
    +				&& !e.isPopupTrigger()
    +				&& graphComponent.isEnabled()
    +				&& isEnabled()
    +				&& !e.isConsumed()
    +				&& ((isHighlighting() && marker.hasValidState()) || (!isHighlighting()
    +						&& bounds != null && bounds.contains(e.getPoint()))))
    +		{
    +			start(e, marker.getValidState());
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void start(MouseEvent e, mxCellState state)
    +	{
    +		first = e.getPoint();
    +		connectPreview.start(e, state, "");
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseMoved(MouseEvent e)
    +	{
    +		mouseDragged(e);
    +
    +		if (isHighlighting() && !marker.hasValidState())
    +		{
    +			source = null;
    +		}
    +
    +		if (!isHighlighting() && source != null)
    +		{
    +			int imgWidth = handleSize;
    +			int imgHeight = handleSize;
    +
    +			if (connectIcon != null)
    +			{
    +				imgWidth = connectIcon.getIconWidth();
    +				imgHeight = connectIcon.getIconHeight();
    +			}
    +
    +			int x = (int) source.getCenterX() - imgWidth / 2;
    +			int y = (int) source.getCenterY() - imgHeight / 2;
    +
    +			if (graphComponent.getGraph().isSwimlane(source.getCell()))
    +			{
    +				mxRectangle size = graphComponent.getGraph().getStartSize(
    +						source.getCell());
    +
    +				if (size.getWidth() > 0)
    +				{
    +					x = (int) (source.getX() + size.getWidth() / 2 - imgWidth / 2);
    +				}
    +				else
    +				{
    +					y = (int) (source.getY() + size.getHeight() / 2 - imgHeight / 2);
    +				}
    +			}
    +
    +			setBounds(new Rectangle(x, y, imgWidth, imgHeight));
    +		}
    +		else
    +		{
    +			setBounds(null);
    +		}
    +
    +		if (source != null && (bounds == null || bounds.contains(e.getPoint())))
    +		{
    +			graphComponent.getGraphControl().setCursor(CONNECT_CURSOR);
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		if (!e.isConsumed() && graphComponent.isEnabled() && isEnabled())
    +		{
    +			// Activates the handler
    +			if (!active && first != null)
    +			{
    +				double dx = Math.abs(first.getX() - e.getX());
    +				double dy = Math.abs(first.getY() - e.getY());
    +				int tol = graphComponent.getTolerance();
    +				
    +				if (dx > tol || dy > tol)
    +				{
    +					active = true;
    +				}
    +			}
    +			
    +			if (e.getButton() == 0 || (isActive() && connectPreview.isActive()))
    +			{
    +				mxCellState state = marker.process(e);
    +	
    +				if (connectPreview.isActive())
    +				{
    +					connectPreview.update(e, marker.getValidState(), e.getX(),
    +							e.getY());
    +					setBounds(null);
    +					e.consume();
    +				}
    +				else
    +				{
    +					source = state;
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		if (isActive())
    +		{
    +			if (error != null)
    +			{
    +				if (error.length() > 0)
    +				{
    +					JOptionPane.showMessageDialog(graphComponent, error);
    +				}
    +			}
    +			else if (first != null)
    +			{
    +				mxGraph graph = graphComponent.getGraph();
    +				double dx = first.getX() - e.getX();
    +				double dy = first.getY() - e.getY();
    +	
    +				if (connectPreview.isActive()
    +						&& (marker.hasValidState() || isCreateTarget() || graph
    +								.isAllowDanglingEdges()))
    +				{
    +					graph.getModel().beginUpdate();
    +	
    +					try
    +					{
    +						Object dropTarget = null;
    +	
    +						if (!marker.hasValidState() && isCreateTarget())
    +						{
    +							Object vertex = createTargetVertex(e, source.getCell());
    +							dropTarget = graph.getDropTarget(
    +									new Object[] { vertex }, e.getPoint(),
    +									graphComponent.getCellAt(e.getX(), e.getY()));
    +	
    +							if (vertex != null)
    +							{
    +								// Disables edges as drop targets if the target cell was created
    +								if (dropTarget == null
    +										|| !graph.getModel().isEdge(dropTarget))
    +								{
    +									mxCellState pstate = graph.getView().getState(
    +											dropTarget);
    +	
    +									if (pstate != null)
    +									{
    +										mxGeometry geo = graph.getModel()
    +												.getGeometry(vertex);
    +	
    +										mxPoint origin = pstate.getOrigin();
    +										geo.setX(geo.getX() - origin.getX());
    +										geo.setY(geo.getY() - origin.getY());
    +									}
    +								}
    +								else
    +								{
    +									dropTarget = graph.getDefaultParent();
    +								}
    +	
    +								graph.addCells(new Object[] { vertex }, dropTarget);
    +							}
    +	
    +							// FIXME: Here we pre-create the state for the vertex to be
    +							// inserted in order to invoke update in the connectPreview.
    +							// This means we have a cell state which should be created
    +							// after the model.update, so this should be fixed.
    +							mxCellState targetState = graph.getView().getState(
    +									vertex, true);
    +							connectPreview.update(e, targetState, e.getX(),
    +									e.getY());
    +						}
    +	
    +						Object cell = connectPreview.stop(
    +								graphComponent.isSignificant(dx, dy), e);
    +	
    +						if (cell != null)
    +						{
    +							graphComponent.getGraph().setSelectionCell(cell);
    +							eventSource.fireEvent(new mxEventObject(
    +									mxEvent.CONNECT, "cell", cell, "event", e,
    +									"target", dropTarget));
    +						}
    +	
    +						e.consume();
    +					}
    +					finally
    +					{
    +						graph.getModel().endUpdate();
    +					}
    +				}
    +			}
    +		}
    +
    +		reset();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setBounds(Rectangle value)
    +	{
    +		if ((bounds == null && value != null)
    +				|| (bounds != null && value == null)
    +				|| (bounds != null && value != null && !bounds.equals(value)))
    +		{
    +			Rectangle tmp = bounds;
    +
    +			if (tmp != null)
    +			{
    +				if (value != null)
    +				{
    +					tmp.add(value);
    +				}
    +			}
    +			else
    +			{
    +				tmp = value;
    +			}
    +
    +			bounds = value;
    +
    +			if (tmp != null)
    +			{
    +				graphComponent.getGraphControl().repaint(tmp);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Adds the given event listener.
    +	 */
    +	public void addListener(String eventName, mxIEventListener listener)
    +	{
    +		eventSource.addListener(eventName, listener);
    +	}
    +
    +	/**
    +	 * Removes the given event listener.
    +	 */
    +	public void removeListener(mxIEventListener listener)
    +	{
    +		eventSource.removeListener(listener);
    +	}
    +
    +	/**
    +	 * Removes the given event listener for the specified event name.
    +	 */
    +	public void removeListener(mxIEventListener listener, String eventName)
    +	{
    +		eventSource.removeListener(listener, eventName);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (bounds != null)
    +		{
    +			if (connectIcon != null)
    +			{
    +				g.drawImage(connectIcon.getImage(), bounds.x, bounds.y,
    +						bounds.width, bounds.height, null);
    +			}
    +			else if (handleEnabled)
    +			{
    +				g.setColor(Color.BLACK);
    +				g.draw3DRect(bounds.x, bounds.y, bounds.width - 1,
    +						bounds.height - 1, true);
    +				g.setColor(Color.GREEN);
    +				g.fill3DRect(bounds.x + 1, bounds.y + 1, bounds.width - 2,
    +						bounds.height - 2, true);
    +				g.setColor(Color.BLUE);
    +				g.drawRect(bounds.x + bounds.width / 2 - 1, bounds.y
    +						+ bounds.height / 2 - 1, 1, 1);
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxEdgeHandler.java b/java/src/com/mxgraph/swing/handler/mxEdgeHandler.java
    new file mode 100644
    index 000000000..6704dda5c
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxEdgeHandler.java
    @@ -0,0 +1,894 @@
    +/**
    + * $Id: mxEdgeHandler.java,v 1.34 2012-04-25 06:29:20 gaudenz Exp $
    + * Copyright (c) 2008-2012, JGraph Ltd
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Color;
    +import java.awt.Cursor;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.Stroke;
    +import java.awt.event.MouseEvent;
    +import java.awt.geom.Line2D;
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.List;
    +
    +import javax.swing.JComponent;
    +import javax.swing.JOptionPane;
    +import javax.swing.JPanel;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxConnectionConstraint;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +
    +/**
    + *
    + */
    +public class mxEdgeHandler extends mxCellHandler
    +{
    +	/**
    +	 * 
    +	 */
    +	protected boolean cloneEnabled = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Point[] p;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient String error;
    +
    +	/**
    +	 * Workaround for alt-key-state not correct in mouseReleased.
    +	 */
    +	protected transient boolean gridEnabledEvent = false;
    +
    +	/**
    +	 * Workaround for shift-key-state not correct in mouseReleased.
    +	 */
    +	protected transient boolean constrainedEvent = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxCellMarker marker = new mxCellMarker(graphComponent)
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 8826073441093831764L;
    +
    +		// Only returns edges if they are connectable and never returns
    +		// the edge that is currently being modified
    +		protected Object getCell(MouseEvent e)
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +			mxIGraphModel model = graph.getModel();
    +			Object cell = super.getCell(e);
    +
    +			if (cell == mxEdgeHandler.this.state.getCell()
    +					|| (!graph.isConnectableEdges() && model.isEdge(cell)))
    +			{
    +				cell = null;
    +			}
    +
    +			return cell;
    +		}
    +
    +		// Sets the highlight color according to isValidConnection
    +		protected boolean isValidState(mxCellState state)
    +		{
    +			mxGraphView view = graphComponent.getGraph().getView();
    +			mxIGraphModel model = graphComponent.getGraph().getModel();
    +			Object edge = mxEdgeHandler.this.state.getCell();
    +			boolean isSource = isSource(index);
    +
    +			mxCellState other = view
    +					.getTerminalPort(state,
    +							view.getState(model.getTerminal(edge, !isSource)),
    +							!isSource);
    +			Object otherCell = (other != null) ? other.getCell() : null;
    +			Object source = (isSource) ? state.getCell() : otherCell;
    +			Object target = (isSource) ? otherCell : state.getCell();
    +
    +			error = validateConnection(source, target);
    +
    +			return error == null;
    +		}
    +
    +	};
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 * @param state
    +	 */
    +	public mxEdgeHandler(mxGraphComponent graphComponent, mxCellState state)
    +	{
    +		super(graphComponent, state);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setCloneEnabled(boolean cloneEnabled)
    +	{
    +		this.cloneEnabled = cloneEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isCloneEnabled()
    +	{
    +		return cloneEnabled;
    +	}
    +
    +	/**
    +	 * No flip event is ignored.
    +	 */
    +	protected boolean isIgnoredEvent(MouseEvent e)
    +	{
    +		return !isFlipEvent(e) && super.isIgnoredEvent(e);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean isFlipEvent(MouseEvent e)
    +	{
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns the error message or an empty string if the connection for the
    +	 * given source target pair is not valid. Otherwise it returns null.
    +	 */
    +	public String validateConnection(Object source, Object target)
    +	{
    +		return graphComponent.getGraph().getEdgeValidationError(
    +				state.getCell(), source, target);
    +	}
    +
    +	/**
    +	 * Returns true if the current index is 0.
    +	 */
    +	public boolean isSource(int index)
    +	{
    +		return index == 0;
    +	}
    +
    +	/**
    +	 * Returns true if the current index is the last index.
    +	 */
    +	public boolean isTarget(int index)
    +	{
    +		return index == getHandleCount() - 2;
    +	}
    +
    +	/**
    +	 * Hides the middle handle if the edge is not bendable.
    +	 */
    +	protected boolean isHandleVisible(int index)
    +	{
    +		return super.isHandleVisible(index)
    +				&& (isSource(index) || isTarget(index) || isCellBendable());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean isCellBendable()
    +	{
    +		return graphComponent.getGraph().isCellBendable(state.getCell());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Rectangle[] createHandles()
    +	{
    +		p = createPoints(state);
    +		Rectangle[] h = new Rectangle[p.length + 1];
    +
    +		for (int i = 0; i < h.length - 1; i++)
    +		{
    +			h[i] = createHandle(p[i]);
    +		}
    +
    +		h[p.length] = createHandle(state.getAbsoluteOffset().getPoint(),
    +				mxConstants.LABEL_HANDLE_SIZE);
    +
    +		return h;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Color getHandleFillColor(int index)
    +	{
    +		boolean source = isSource(index);
    +
    +		if (source || isTarget(index))
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +			Object terminal = graph.getModel().getTerminal(state.getCell(),
    +					source);
    +
    +			if (terminal == null
    +					&& !graphComponent.getGraph().isTerminalPointMovable(
    +							state.getCell(), source))
    +			{
    +				return mxSwingConstants.LOCKED_HANDLE_FILLCOLOR;
    +			}
    +			else if (terminal != null)
    +			{
    +				return (graphComponent.getGraph().isCellDisconnectable(
    +						state.getCell(), terminal, source)) ? mxSwingConstants.CONNECT_HANDLE_FILLCOLOR
    +						: mxSwingConstants.LOCKED_HANDLE_FILLCOLOR;
    +			}
    +		}
    +
    +		return super.getHandleFillColor(index);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 * @return Returns the inde of the handle at the given location.
    +	 */
    +	public int getIndexAt(int x, int y)
    +	{
    +		int index = super.getIndexAt(x, y);
    +
    +		// Makes the complete label a trigger for the label handle
    +		if (index < 0 && handles != null && handlesVisible && isLabelMovable()
    +				&& state.getLabelBounds().getRectangle().contains(x, y))
    +		{
    +			index = handles.length - 1;
    +		}
    +
    +		return index;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Rectangle createHandle(Point center)
    +	{
    +		return createHandle(center, mxConstants.HANDLE_SIZE);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Rectangle createHandle(Point center, int size)
    +	{
    +		return new Rectangle(center.x - size / 2, center.y - size / 2, size,
    +				size);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Point[] createPoints(mxCellState s)
    +	{
    +		Point[] pts = new Point[s.getAbsolutePointCount()];
    +
    +		for (int i = 0; i < pts.length; i++)
    +		{
    +			pts[i] = s.getAbsolutePoint(i).getPoint();
    +		}
    +
    +		return pts;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected JComponent createPreview()
    +	{
    +		JPanel preview = new JPanel()
    +		{
    +			/**
    +			 * 
    +			 */
    +			private static final long serialVersionUID = -894546588972313020L;
    +
    +			public void paint(Graphics g)
    +			{
    +				super.paint(g);
    +
    +				if (!isLabel(index) && p != null)
    +				{
    +					((Graphics2D) g).setStroke(mxSwingConstants.PREVIEW_STROKE);
    +
    +					if (isSource(index) || isTarget(index))
    +					{
    +						if (marker.hasValidState()
    +								|| graphComponent.getGraph()
    +										.isAllowDanglingEdges())
    +						{
    +							g.setColor(mxSwingConstants.DEFAULT_VALID_COLOR);
    +						}
    +						else
    +						{
    +							g.setColor(mxSwingConstants.DEFAULT_INVALID_COLOR);
    +						}
    +					}
    +					else
    +					{
    +						g.setColor(Color.BLACK);
    +					}
    +
    +					Point origin = getLocation();
    +					Point last = p[0];
    +
    +					for (int i = 1; i < p.length; i++)
    +					{
    +						g.drawLine(last.x - origin.x, last.y - origin.y, p[i].x
    +								- origin.x, p[i].y - origin.y);
    +						last = p[i];
    +					}
    +				}
    +			}
    +		};
    +
    +		if (isLabel(index))
    +		{
    +			preview.setBorder(mxSwingConstants.PREVIEW_BORDER);
    +		}
    +
    +		preview.setOpaque(false);
    +		preview.setVisible(false);
    +
    +		return preview;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param point
    +	 * @param gridEnabled
    +	 * @return Returns the scaled, translated and grid-aligned point.
    +	 */
    +	protected mxPoint convertPoint(mxPoint point, boolean gridEnabled)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		double scale = graph.getView().getScale();
    +		mxPoint trans = graph.getView().getTranslate();
    +		double x = point.getX() / scale - trans.getX();
    +		double y = point.getY() / scale - trans.getY();
    +
    +		if (gridEnabled)
    +		{
    +			x = graph.snap(x);
    +			y = graph.snap(y);
    +		}
    +
    +		point.setX(x - state.getOrigin().getX());
    +		point.setY(y - state.getOrigin().getY());
    +
    +		return point;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return Returns the bounds of the preview.
    +	 */
    +	protected Rectangle getPreviewBounds()
    +	{
    +		Rectangle bounds = null;
    +
    +		if (isLabel(index))
    +		{
    +			bounds = state.getLabelBounds().getRectangle();
    +		}
    +		else
    +		{
    +			bounds = new Rectangle(p[0]);
    +
    +			for (int i = 0; i < p.length; i++)
    +			{
    +				bounds.add(p[i]);
    +			}
    +
    +			bounds.height += 1;
    +			bounds.width += 1;
    +		}
    +
    +		return bounds;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		super.mousePressed(e);
    +
    +		boolean source = isSource(index);
    +
    +		if (source || isTarget(index))
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +			mxIGraphModel model = graph.getModel();
    +			Object terminal = model.getTerminal(state.getCell(), source);
    +
    +			if ((terminal == null && !graph.isTerminalPointMovable(
    +					state.getCell(), source))
    +					|| (terminal != null && !graph.isCellDisconnectable(
    +							state.getCell(), terminal, source)))
    +			{
    +				first = null;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		if (!e.isConsumed() && first != null)
    +		{
    +			gridEnabledEvent = graphComponent.isGridEnabledEvent(e);
    +			constrainedEvent = graphComponent.isConstrainedEvent(e);
    +
    +			boolean isSource = isSource(index);
    +			boolean isTarget = isTarget(index);
    +
    +			Object source = null;
    +			Object target = null;
    +
    +			if (isLabel(index))
    +			{
    +				mxPoint abs = state.getAbsoluteOffset();
    +				double dx = abs.getX() - first.x;
    +				double dy = abs.getY() - first.y;
    +
    +				mxPoint pt = new mxPoint(e.getPoint());
    +
    +				if (gridEnabledEvent)
    +				{
    +					pt = graphComponent.snapScaledPoint(pt, dx, dy);
    +				}
    +
    +				if (constrainedEvent)
    +				{
    +					if (Math.abs(e.getX() - first.x) > Math.abs(e.getY()
    +							- first.y))
    +					{
    +						pt.setY(abs.getY());
    +					}
    +					else
    +					{
    +						pt.setX(abs.getX());
    +					}
    +				}
    +
    +				Rectangle rect = getPreviewBounds();
    +				rect.translate((int) Math.round(pt.getX() - first.x),
    +						(int) Math.round(pt.getY() - first.y));
    +				preview.setBounds(rect);
    +			}
    +			else
    +			{
    +				// Clones the cell state and updates the absolute points using
    +				// the current state of this handle. This is required for
    +				// computing the correct perimeter points and edge style.
    +				mxGeometry geometry = graphComponent.getGraph()
    +						.getCellGeometry(state.getCell());
    +				mxCellState clone = (mxCellState) state.clone();
    +				List<mxPoint> points = geometry.getPoints();
    +				mxGraphView view = clone.getView();
    +
    +				if (isSource || isTarget)
    +				{
    +					marker.process(e);
    +					mxCellState currentState = marker.getValidState();
    +					target = state.getVisibleTerminal(!isSource);
    +
    +					if (currentState != null)
    +					{
    +						source = currentState.getCell();
    +					}
    +					else
    +					{
    +						mxPoint pt = new mxPoint(e.getPoint());
    +
    +						if (gridEnabledEvent)
    +						{
    +							pt = graphComponent.snapScaledPoint(pt);
    +						}
    +
    +						clone.setAbsoluteTerminalPoint(pt, isSource);
    +					}
    +
    +					if (!isSource)
    +					{
    +						Object tmp = source;
    +						source = target;
    +						target = tmp;
    +					}
    +				}
    +				else
    +				{
    +					mxPoint point = convertPoint(new mxPoint(e.getPoint()),
    +							gridEnabledEvent);
    +
    +					if (points == null)
    +					{
    +						points = Arrays.asList(new mxPoint[] { point });
    +					}
    +					else if (index - 1 < points.size())
    +					{
    +						points = new ArrayList<mxPoint>(points);
    +						points.set(index - 1, point);
    +					}
    +
    +					source = view.getVisibleTerminal(state.getCell(), true);
    +					target = view.getVisibleTerminal(state.getCell(), false);
    +				}
    +
    +				// Computes the points for the edge style and terminals
    +				mxCellState sourceState = view.getState(source);
    +				mxCellState targetState = view.getState(target);
    +
    +				mxConnectionConstraint sourceConstraint = graphComponent
    +						.getGraph().getConnectionConstraint(clone, sourceState,
    +								true);
    +				mxConnectionConstraint targetConstraint = graphComponent
    +						.getGraph().getConnectionConstraint(clone, targetState,
    +								false);
    +
    +				/* TODO: Implement mxConstraintHandler
    +				mxConnectionConstraint constraint = constraintHandler.currentConstraint;
    +
    +				if (constraint == null)
    +				{
    +					constraint = new mxConnectionConstraint();
    +				}
    +				
    +				if (isSource)
    +				{
    +					sourceConstraint = constraint;
    +				}
    +				else if (isTarget)
    +				{
    +					targetConstraint = constraint;
    +				}
    +				*/
    +
    +				if (!isSource || sourceState != null)
    +				{
    +					view.updateFixedTerminalPoint(clone, sourceState, true,
    +							sourceConstraint);
    +				}
    +
    +				if (!isTarget || targetState != null)
    +				{
    +					view.updateFixedTerminalPoint(clone, targetState, false,
    +							targetConstraint);
    +				}
    +
    +				view.updatePoints(clone, points, sourceState, targetState);
    +				view.updateFloatingTerminalPoints(clone, sourceState,
    +						targetState);
    +
    +				// Uses the updated points from the cloned state to draw the preview
    +				p = createPoints(clone);
    +				preview.setBounds(getPreviewBounds());
    +			}
    +
    +			if (!preview.isVisible()
    +					&& graphComponent.isSignificant(e.getX() - first.x,
    +							e.getY() - first.y))
    +			{
    +				preview.setVisible(true);
    +			}
    +			else if (preview.isVisible())
    +			{
    +				preview.repaint();
    +			}
    +
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +
    +		if (!e.isConsumed() && first != null)
    +		{
    +			double dx = e.getX() - first.x;
    +			double dy = e.getY() - first.y;
    +
    +			if (graphComponent.isSignificant(dx, dy))
    +			{
    +				if (error != null)
    +				{
    +					if (error.length() > 0)
    +					{
    +						JOptionPane.showMessageDialog(graphComponent, error);
    +					}
    +				}
    +				else if (isLabel(index))
    +				{
    +					mxPoint abs = state.getAbsoluteOffset();
    +					dx = abs.getX() - first.x;
    +					dy = abs.getY() - first.y;
    +
    +					mxPoint pt = new mxPoint(e.getPoint());
    +
    +					if (gridEnabledEvent)
    +					{
    +						pt = graphComponent.snapScaledPoint(pt, dx, dy);
    +					}
    +
    +					if (constrainedEvent)
    +					{
    +						if (Math.abs(e.getX() - first.x) > Math.abs(e.getY()
    +								- first.y))
    +						{
    +							pt.setY(abs.getY());
    +						}
    +						else
    +						{
    +							pt.setX(abs.getX());
    +						}
    +					}
    +
    +					moveLabelTo(state, pt.getX() + dx, pt.getY() + dy);
    +				}
    +				else if (marker.hasValidState()
    +						&& (isSource(index) || isTarget(index)))
    +				{
    +					connect(state.getCell(), marker.getValidState().getCell(),
    +							isSource(index), graphComponent.isCloneEvent(e)
    +									&& isCloneEnabled());
    +				}
    +				else if ((!isSource(index) && !isTarget(index))
    +						|| graphComponent.getGraph().isAllowDanglingEdges())
    +				{
    +					movePoint(
    +							state.getCell(),
    +							index,
    +							convertPoint(new mxPoint(e.getPoint()),
    +									gridEnabledEvent));
    +				}
    +
    +				e.consume();
    +			}
    +		}
    +
    +		if (!e.isConsumed() && isFlipEvent(e))
    +		{
    +			graph.flipEdge(state.getCell());
    +			e.consume();
    +		}
    +
    +		super.mouseReleased(e);
    +	}
    +
    +	/**
    +	 * Extends the implementation to reset the current error and marker.
    +	 */
    +	public void reset()
    +	{
    +		super.reset();
    +
    +		marker.reset();
    +		error = null;
    +	}
    +
    +	/**
    +	 * Moves the edges control point with the given index to the given point.
    +	 */
    +	protected void movePoint(Object edge, int pointIndex, mxPoint point)
    +	{
    +		mxIGraphModel model = graphComponent.getGraph().getModel();
    +		mxGeometry geometry = model.getGeometry(edge);
    +
    +		if (geometry != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				geometry = (mxGeometry) geometry.clone();
    +
    +				if (isSource(index) || isTarget(index))
    +				{
    +					connect(edge, null, isSource(index), false);
    +					geometry.setTerminalPoint(point, isSource(index));
    +				}
    +				else
    +				{
    +					List<mxPoint> pts = geometry.getPoints();
    +
    +					if (pts == null)
    +					{
    +						pts = new ArrayList<mxPoint>();
    +						geometry.setPoints(pts);
    +					}
    +
    +					if (pts != null)
    +					{
    +						if (pointIndex <= pts.size())
    +						{
    +							pts.set(pointIndex - 1, point);
    +						}
    +						else if (pointIndex - 1 <= pts.size())
    +						{
    +							pts.add(pointIndex - 1, point);
    +						}
    +					}
    +				}
    +
    +				model.setGeometry(edge, geometry);
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Connects the given edge to the given source or target terminal.
    +	 * 
    +	 * @param edge
    +	 * @param terminal
    +	 * @param isSource
    +	 */
    +	protected void connect(Object edge, Object terminal, boolean isSource,
    +			boolean isClone)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxIGraphModel model = graph.getModel();
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			if (isClone)
    +			{
    +				Object clone = graph.cloneCells(new Object[] { edge })[0];
    +
    +				Object parent = model.getParent(edge);
    +				graph.addCells(new Object[] { clone }, parent);
    +
    +				Object other = model.getTerminal(edge, !isSource);
    +				graph.connectCell(clone, other, !isSource);
    +
    +				graph.setSelectionCell(clone);
    +				edge = clone;
    +			}
    +
    +			// Passes an empty constraint to reset constraint information
    +			graph.connectCell(edge, terminal, isSource,
    +					new mxConnectionConstraint());
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * Moves the label to the given position.
    +	 */
    +	protected void moveLabelTo(mxCellState edgeState, double x, double y)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxIGraphModel model = graph.getModel();
    +		mxGeometry geometry = model.getGeometry(state.getCell());
    +
    +		if (geometry != null)
    +		{
    +			geometry = (mxGeometry) geometry.clone();
    +
    +			// Resets the relative location stored inside the geometry
    +			mxPoint pt = graph.getView().getRelativePoint(edgeState, x, y);
    +			geometry.setX(pt.getX());
    +			geometry.setY(pt.getY());
    +
    +			// Resets the offset inside the geometry to find the offset
    +			// from the resulting point
    +			double scale = graph.getView().getScale();
    +			geometry.setOffset(new mxPoint(0, 0));
    +			pt = graph.getView().getPoint(edgeState, geometry);
    +			geometry.setOffset(new mxPoint(Math.round((x - pt.getX()) / scale),
    +					Math.round((y - pt.getY()) / scale)));
    +
    +			model.setGeometry(edgeState.getCell(), geometry);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Cursor getCursor(MouseEvent e, int index)
    +	{
    +		Cursor cursor = null;
    +
    +		if (isLabel(index))
    +		{
    +			cursor = new Cursor(Cursor.MOVE_CURSOR);
    +		}
    +		else
    +		{
    +			cursor = new Cursor(Cursor.HAND_CURSOR);
    +		}
    +
    +		return cursor;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getSelectionColor()
    +	{
    +		return mxSwingConstants.EDGE_SELECTION_COLOR;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Stroke getSelectionStroke()
    +	{
    +		return mxSwingConstants.EDGE_SELECTION_STROKE;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		Graphics2D g2 = (Graphics2D) g;
    +
    +		Stroke stroke = g2.getStroke();
    +		g2.setStroke(getSelectionStroke());
    +		g.setColor(getSelectionColor());
    +
    +		Point last = state.getAbsolutePoint(0).getPoint();
    +
    +		for (int i = 1; i < state.getAbsolutePointCount(); i++)
    +		{
    +			Point current = state.getAbsolutePoint(i).getPoint();
    +			Line2D line = new Line2D.Float(last.x, last.y, current.x, current.y);
    +
    +			Rectangle bounds = g2.getStroke().createStrokedShape(line)
    +					.getBounds();
    +
    +			if (g.hitClip(bounds.x, bounds.y, bounds.width, bounds.height))
    +			{
    +				g2.draw(line);
    +			}
    +
    +			last = current;
    +		}
    +
    +		g2.setStroke(stroke);
    +		super.paint(g);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxElbowEdgeHandler.java b/java/src/com/mxgraph/swing/handler/mxElbowEdgeHandler.java
    new file mode 100644
    index 000000000..d0d31b618
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxElbowEdgeHandler.java
    @@ -0,0 +1,119 @@
    +/**
    + * $Id: mxElbowEdgeHandler.java,v 1.11 2010-08-03 09:24:46 david Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.event.MouseEvent;
    +import java.util.List;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraphView;
    +
    +/**
    + * @author Administrator
    + * 
    + */
    +public class mxElbowEdgeHandler extends mxEdgeHandler
    +{
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 * @param state
    +	 */
    +	public mxElbowEdgeHandler(mxGraphComponent graphComponent, mxCellState state)
    +	{
    +		super(graphComponent, state);
    +	}
    +
    +	/**
    +	 * Hook for subclassers to return tooltip texts for certain points on the
    +	 * handle.
    +	 */
    +	public String getToolTipText(MouseEvent e)
    +	{
    +		int index = getIndexAt(e.getX(), e.getY());
    +
    +		if (index == 1)
    +		{
    +			return mxResources.get("doubleClickOrientation");
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean isFlipEvent(MouseEvent e)
    +	{
    +		return e.getClickCount() == 2 && index == 1;
    +	}
    +
    +	/**
    +	 * Returns true if the given index is the index of the last handle.
    +	 */
    +	public boolean isLabel(int index)
    +	{
    +		return index == 3;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Rectangle[] createHandles()
    +	{
    +		p = createPoints(state);
    +		Rectangle[] h = new Rectangle[4];
    +
    +		mxPoint p0 = state.getAbsolutePoint(0);
    +		mxPoint pe = state.getAbsolutePoint(state.getAbsolutePointCount() - 1);
    +
    +		h[0] = createHandle(p0.getPoint());
    +		h[2] = createHandle(pe.getPoint());
    +
    +		// Creates the middle green edge handle
    +		mxGeometry geometry = graphComponent.getGraph().getModel().getGeometry(
    +				state.getCell());
    +		List<mxPoint> points = geometry.getPoints();
    +		Point pt = null;
    +
    +		if (points == null || points.isEmpty())
    +		{
    +			pt = new Point((int) (Math.round(p0.getX()) + Math
    +					.round((pe.getX() - p0.getX()) / 2)), (int) (Math.round(p0
    +					.getY()) + Math.round((pe.getY() - p0.getY()) / 2)));
    +		}
    +		else
    +		{
    +			mxGraphView view = graphComponent.getGraph().getView();
    +			pt = view.transformControlPoint(state, points.get(0))
    +					.getPoint();
    +		}
    +
    +		// Create the green middle handle
    +		h[1] = createHandle(pt);
    +
    +		// Creates the yellow label handle
    +		h[3] = createHandle(state.getAbsoluteOffset().getPoint(),
    +				mxConstants.LABEL_HANDLE_SIZE);
    +
    +		// Makes handle slightly bigger if the yellow label handle
    +		// exists and intersects this green handle
    +		if (isHandleVisible(3) && h[1].intersects(h[3]))
    +		{
    +			h[1] = createHandle(pt, mxConstants.HANDLE_SIZE + 3);
    +		}
    +
    +		return h;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxGraphHandler.java b/java/src/com/mxgraph/swing/handler/mxGraphHandler.java
    new file mode 100644
    index 000000000..5628d1804
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxGraphHandler.java
    @@ -0,0 +1,1522 @@
    +/**
    + * $Id: mxGraphHandler.java,v 1.80 2012-03-10 08:05:31 gaudenz Exp $
    + * Copyright (c) 2008-2012, JGraph Ltd
    + * 
    + * Known issue: Drag image size depends on the initial position and may sometimes
    + * not align with the grid when dragging. This is because the rounding of the width
    + * and height at the initial position may be different than that at the current
    + * position as the left and bottom side of the shape must align to the grid lines.
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.AlphaComposite;
    +import java.awt.Color;
    +import java.awt.Cursor;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Image;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.datatransfer.Transferable;
    +import java.awt.dnd.DnDConstants;
    +import java.awt.dnd.DragGestureEvent;
    +import java.awt.dnd.DragGestureListener;
    +import java.awt.dnd.DragSource;
    +import java.awt.dnd.DragSourceAdapter;
    +import java.awt.dnd.DragSourceDropEvent;
    +import java.awt.dnd.DropTarget;
    +import java.awt.dnd.DropTargetDragEvent;
    +import java.awt.dnd.DropTargetDropEvent;
    +import java.awt.dnd.DropTargetEvent;
    +import java.awt.dnd.DropTargetListener;
    +import java.awt.event.InputEvent;
    +import java.awt.event.MouseEvent;
    +import java.beans.PropertyChangeEvent;
    +import java.beans.PropertyChangeListener;
    +import java.util.TooManyListenersException;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.JComponent;
    +import javax.swing.SwingUtilities;
    +import javax.swing.TransferHandler;
    +
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxGraphTransferable;
    +import com.mxgraph.swing.util.mxMouseAdapter;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxCellRenderer;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +public class mxGraphHandler extends mxMouseAdapter implements
    +		DropTargetListener
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 3241109976696510225L;
    +
    +	/**
    +	 * Default is Cursor.DEFAULT_CURSOR.
    +	 */
    +	public static Cursor DEFAULT_CURSOR = new Cursor(Cursor.DEFAULT_CURSOR);
    +
    +	/**
    +	 * Default is Cursor.MOVE_CURSOR.
    +	 */
    +	public static Cursor MOVE_CURSOR = new Cursor(Cursor.MOVE_CURSOR);
    +
    +	/**
    +	 * Default is Cursor.HAND_CURSOR.
    +	 */
    +	public static Cursor FOLD_CURSOR = new Cursor(Cursor.HAND_CURSOR);
    +
    +	/**
    +	 * Reference to the enclosing graph component.
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Specifies if the handler is enabled. Default is true.
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * Specifies if cloning by control-drag is enabled. Default is true.
    +	 */
    +	protected boolean cloneEnabled = true;
    +
    +	/**
    +	 * Specifies if moving is enabled. Default is true.
    +	 */
    +	protected boolean moveEnabled = true;
    +
    +	/**
    +	 * Specifies if moving is enabled. Default is true.
    +	 */
    +	protected boolean selectEnabled = true;
    +
    +	/**
    +	 * Specifies if the cell marker should be called (for splitting edges and
    +	 * dropping cells into groups). Default is true.
    +	 */
    +	protected boolean markerEnabled = true;
    +
    +	/**
    +	 * Specifies if cells may be moved out of their parents. Default is true.
    +	 */
    +	protected boolean removeCellsFromParent = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxMovePreview movePreview;
    +
    +	/**
    +	 * Specifies if live preview should be used if possible. Default is false.
    +	 */
    +	protected boolean livePreview = false;
    +
    +	/**
    +	 * Specifies if an image should be used for preview. Default is true.
    +	 */
    +	protected boolean imagePreview = true;
    +
    +	/**
    +	 * Specifies if the preview should be centered around the mouse cursor if there
    +	 * was no mouse click to define the offset within the shape (eg. drag from
    +	 * external source). Default is true.
    +	 */
    +	protected boolean centerPreview = true;
    +
    +	/**
    +	 * Specifies if this handler should be painted on top of all other components.
    +	 * Default is true.
    +	 */
    +	protected boolean keepOnTop = true;
    +
    +	/**
    +	 * Holds the cells that are being moved by this handler.
    +	 */
    +	protected transient Object[] cells;
    +
    +	/**
    +	 * Holds the image that is being used for the preview.
    +	 */
    +	protected transient ImageIcon dragImage;
    +
    +	/**
    +	 * Holds the start location of the mouse gesture.
    +	 */
    +	protected transient Point first;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Object cell;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Object initialCell;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Object[] dragCells;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxCellMarker marker;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient boolean canImport;
    +
    +	/**
    +	 * Scaled, translated bounds of the selection cells.
    +	 */
    +	protected transient mxRectangle cellBounds;
    +
    +	/**
    +	 * Scaled, translated bounding box of the selection cells.
    +	 */
    +	protected transient mxRectangle bbox;
    +
    +	/**
    +	 * Unscaled, untranslated bounding box of the selection cells.
    +	 */
    +	protected transient mxRectangle transferBounds;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient boolean visible = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Rectangle previewBounds = null;
    +
    +	/**
    +	 * Workaround for alt-key-state not correct in mouseReleased. Note: State
    +	 * of the alt-key is not available during drag-and-drop.
    +	 */
    +	private transient boolean gridEnabledEvent = false;
    +
    +	/**
    +	 * Workaround for shift-key-state not correct in mouseReleased.
    +	 */
    +	protected transient boolean constrainedEvent = false;
    +
    +	/**
    +	 * Reference to the current drop target.
    +	 */
    +	protected transient DropTarget currentDropTarget = null;
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 */
    +	public mxGraphHandler(final mxGraphComponent graphComponent)
    +	{
    +		this.graphComponent = graphComponent;
    +		marker = createMarker();
    +		movePreview = createMovePreview();
    +
    +		// Installs the paint handler
    +		graphComponent.addListener(mxEvent.AFTER_PAINT, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				Graphics g = (Graphics) evt.getProperty("g");
    +				paint(g);
    +			}
    +		});
    +
    +		// Listens to all mouse events on the rendering control
    +		graphComponent.getGraphControl().addMouseListener(this);
    +		graphComponent.getGraphControl().addMouseMotionListener(this);
    +
    +		// Drag target creates preview image
    +		installDragGestureHandler();
    +
    +		// Listens to dropped graph cells
    +		installDropTargetHandler();
    +
    +		// Listens to changes of the transferhandler
    +		graphComponent.addPropertyChangeListener(new PropertyChangeListener()
    +		{
    +			public void propertyChange(PropertyChangeEvent evt)
    +			{
    +				if (evt.getPropertyName().equals("transferHandler"))
    +				{
    +					if (currentDropTarget != null)
    +					{
    +						currentDropTarget
    +								.removeDropTargetListener(mxGraphHandler.this);
    +					}
    +
    +					installDropTargetHandler();
    +				}
    +			}
    +		});
    +
    +		setVisible(false);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void installDragGestureHandler()
    +	{
    +		DragGestureListener dragGestureListener = new DragGestureListener()
    +		{
    +			public void dragGestureRecognized(DragGestureEvent e)
    +			{
    +				if (graphComponent.isDragEnabled() && first != null)
    +				{
    +					final TransferHandler th = graphComponent
    +							.getTransferHandler();
    +
    +					if (th instanceof mxGraphTransferHandler)
    +					{
    +						final mxGraphTransferable t = (mxGraphTransferable) ((mxGraphTransferHandler) th)
    +								.createTransferable(graphComponent);
    +
    +						if (t != null)
    +						{
    +							e.startDrag(null, mxSwingConstants.EMPTY_IMAGE,
    +									new Point(), t, new DragSourceAdapter()
    +									{
    +
    +										/**
    +										 * 
    +										 */
    +										public void dragDropEnd(
    +												DragSourceDropEvent dsde)
    +										{
    +											((mxGraphTransferHandler) th)
    +													.exportDone(
    +															graphComponent,
    +															t,
    +															TransferHandler.NONE);
    +											first = null;
    +										}
    +									});
    +						}
    +					}
    +				}
    +			}
    +		};
    +
    +		DragSource dragSource = new DragSource();
    +		dragSource.createDefaultDragGestureRecognizer(
    +				graphComponent.getGraphControl(),
    +				DnDConstants.ACTION_COPY_OR_MOVE, dragGestureListener);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void installDropTargetHandler()
    +	{
    +		DropTarget dropTarget = graphComponent.getDropTarget();
    +
    +		try
    +		{
    +			if (dropTarget != null)
    +			{
    +				dropTarget.addDropTargetListener(this);
    +				currentDropTarget = dropTarget;
    +			}
    +		}
    +		catch (TooManyListenersException tmle)
    +		{
    +			// should not happen... swing drop target is multicast
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isVisible()
    +	{
    +		return visible;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setVisible(boolean value)
    +	{
    +		if (visible != value)
    +		{
    +			visible = value;
    +
    +			if (previewBounds != null)
    +			{
    +				graphComponent.getGraphControl().repaint(previewBounds);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setPreviewBounds(Rectangle bounds)
    +	{
    +		if ((bounds == null && previewBounds != null)
    +				|| (bounds != null && previewBounds == null)
    +				|| (bounds != null && previewBounds != null && !bounds
    +						.equals(previewBounds)))
    +		{
    +			Rectangle dirty = null;
    +
    +			if (isVisible())
    +			{
    +				dirty = previewBounds;
    +
    +				if (dirty != null)
    +				{
    +					dirty.add(bounds);
    +				}
    +				else
    +				{
    +					dirty = bounds;
    +				}
    +			}
    +
    +			previewBounds = bounds;
    +
    +			if (dirty != null)
    +			{
    +				graphComponent.getGraphControl().repaint(dirty.x - 1,
    +						dirty.y - 1, dirty.width + 2, dirty.height + 2);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxMovePreview createMovePreview()
    +	{
    +		return new mxMovePreview(graphComponent);
    +	}
    +	
    +	/**
    +	 * 
    +	 */
    +	public mxMovePreview getMovePreview()
    +	{
    +		return movePreview;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxCellMarker createMarker()
    +	{
    +		mxCellMarker marker = new mxCellMarker(graphComponent, Color.BLUE)
    +		{
    +			/**
    +			 * 
    +			 */
    +			private static final long serialVersionUID = -8451338653189373347L;
    +
    +			/**
    +			 * 
    +			 */
    +			public boolean isEnabled()
    +			{
    +				return graphComponent.getGraph().isDropEnabled();
    +			}
    +
    +			/**
    +			 * 
    +			 */
    +			public Object getCell(MouseEvent e)
    +			{
    +				mxIGraphModel model = graphComponent.getGraph().getModel();
    +				TransferHandler th = graphComponent.getTransferHandler();
    +				boolean isLocal = th instanceof mxGraphTransferHandler
    +						&& ((mxGraphTransferHandler) th).isLocalDrag();
    +
    +				mxGraph graph = graphComponent.getGraph();
    +				Object cell = super.getCell(e);
    +				Object[] cells = (isLocal) ? graph.getSelectionCells()
    +						: dragCells;
    +				cell = graph.getDropTarget(cells, e.getPoint(), cell);
    +
    +				// Checks if parent is dropped into child
    +				Object parent = cell;
    +
    +				while (parent != null)
    +				{
    +					if (mxUtils.contains(cells, parent))
    +					{
    +						return null;
    +					}
    +					
    +					parent = model.getParent(parent);
    +				}
    +
    +				boolean clone = graphComponent.isCloneEvent(e) && cloneEnabled;
    +
    +				if (isLocal && cell != null && cells.length > 0 && !clone
    +						&& graph.getModel().getParent(cells[0]) == cell)
    +				{
    +					cell = null;
    +				}
    +
    +				return cell;
    +			}
    +
    +		};
    +
    +		// Swimlane content area will not be transparent drop targets
    +		marker.setSwimlaneContentEnabled(true);
    +
    +		return marker;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphComponent getGraphComponent()
    +	{
    +		return graphComponent;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		enabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isCloneEnabled()
    +	{
    +		return cloneEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setCloneEnabled(boolean value)
    +	{
    +		cloneEnabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isMoveEnabled()
    +	{
    +		return moveEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setMoveEnabled(boolean value)
    +	{
    +		moveEnabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isMarkerEnabled()
    +	{
    +		return markerEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setMarkerEnabled(boolean value)
    +	{
    +		markerEnabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCellMarker getMarker()
    +	{
    +		return marker;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setMarker(mxCellMarker value)
    +	{
    +		marker = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isSelectEnabled()
    +	{
    +		return selectEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setSelectEnabled(boolean value)
    +	{
    +		selectEnabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isRemoveCellsFromParent()
    +	{
    +		return removeCellsFromParent;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setRemoveCellsFromParent(boolean value)
    +	{
    +		removeCellsFromParent = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isLivePreview()
    +	{
    +		return livePreview;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setLivePreview(boolean value)
    +	{
    +		livePreview = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isImagePreview()
    +	{
    +		return imagePreview;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setImagePreview(boolean value)
    +	{
    +		imagePreview = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isCenterPreview()
    +	{
    +		return centerPreview;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setCenterPreview(boolean value)
    +	{
    +		centerPreview = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void updateDragImage(Object[] cells)
    +	{
    +		dragImage = null;
    +
    +		if (cells != null && cells.length > 0)
    +		{
    +			Image img = mxCellRenderer.createBufferedImage(
    +					graphComponent.getGraph(), cells, graphComponent.getGraph()
    +							.getView().getScale(), null,
    +					graphComponent.isAntiAlias(), null,
    +					graphComponent.getCanvas());
    +
    +			if (img != null)
    +			{
    +				dragImage = new ImageIcon(img);
    +				previewBounds.setSize(dragImage.getIconWidth(),
    +						dragImage.getIconHeight());
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseMoved(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed())
    +		{
    +			Cursor cursor = getCursor(e);
    +
    +			if (cursor != null)
    +			{
    +				graphComponent.getGraphControl().setCursor(cursor);
    +				e.consume();
    +			}
    +			else
    +			{
    +				graphComponent.getGraphControl().setCursor(DEFAULT_CURSOR);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Cursor getCursor(MouseEvent e)
    +	{
    +		Cursor cursor = null;
    +
    +		if (isMoveEnabled())
    +		{
    +			Object cell = graphComponent.getCellAt(e.getX(), e.getY(), false);
    +
    +			if (cell != null)
    +			{
    +				if (graphComponent.isFoldingEnabled()
    +						&& graphComponent.hitFoldingIcon(cell, e.getX(),
    +								e.getY()))
    +				{
    +					cursor = FOLD_CURSOR;
    +				}
    +				else if (graphComponent.getGraph().isCellMovable(cell))
    +				{
    +					cursor = MOVE_CURSOR;
    +				}
    +			}
    +		}
    +
    +		return cursor;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void dragEnter(DropTargetDragEvent e)
    +	{
    +		JComponent component = getDropTarget(e);
    +		TransferHandler th = component.getTransferHandler();
    +		boolean isLocal = th instanceof mxGraphTransferHandler
    +				&& ((mxGraphTransferHandler) th).isLocalDrag();
    +
    +		if (isLocal)
    +		{
    +			canImport = true;
    +		}
    +		else
    +		{
    +			canImport = graphComponent.isImportEnabled()
    +					&& th.canImport(component, e.getCurrentDataFlavors());
    +		}
    +
    +		if (canImport)
    +		{
    +			transferBounds = null;
    +			setVisible(false);
    +
    +			try
    +			{
    +				Transferable t = e.getTransferable();
    +
    +				if (t.isDataFlavorSupported(mxGraphTransferable.dataFlavor))
    +				{
    +					mxGraphTransferable gt = (mxGraphTransferable) t
    +							.getTransferData(mxGraphTransferable.dataFlavor);
    +					dragCells = gt.getCells();
    +
    +					if (gt.getBounds() != null)
    +					{
    +						mxGraph graph = graphComponent.getGraph();
    +						double scale = graph.getView().getScale();
    +						transferBounds = gt.getBounds();
    +						int w = (int) Math.ceil((transferBounds.getWidth() + 1)
    +								* scale);
    +						int h = (int) Math
    +								.ceil((transferBounds.getHeight() + 1) * scale);
    +						setPreviewBounds(new Rectangle(
    +								(int) transferBounds.getX(),
    +								(int) transferBounds.getY(), w, h));
    +
    +						if (imagePreview)
    +						{
    +							// Does not render fixed cells for local preview
    +							// but ignores movable state for non-local previews
    +							if (isLocal)
    +							{
    +								if (!isLivePreview())
    +								{
    +									updateDragImage(graph
    +											.getMovableCells(dragCells));
    +								}
    +							}
    +							else
    +							{
    +								Object[] tmp = graphComponent
    +										.getImportableCells(dragCells);
    +								updateDragImage(tmp);
    +
    +								// Shows no drag icon if import is allowed but none
    +								// of the cells can be imported
    +								if (tmp == null || tmp.length == 0)
    +								{
    +									canImport = false;
    +									e.rejectDrag();
    +
    +									return;
    +								}
    +							}
    +						}
    +
    +						setVisible(true);
    +					}
    +				}
    +
    +				e.acceptDrag(TransferHandler.COPY_OR_MOVE);
    +			}
    +			catch (Exception ex)
    +			{
    +				// do nothing
    +				ex.printStackTrace();
    +			}
    +
    +		}
    +		else
    +		{
    +			e.rejectDrag();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed()
    +				&& !graphComponent.isForceMarqueeEvent(e))
    +		{
    +			cell = graphComponent.getCellAt(e.getX(), e.getY(), false);
    +			initialCell = cell;
    +
    +			if (cell != null)
    +			{
    +				if (isSelectEnabled()
    +						&& !graphComponent.getGraph().isCellSelected(cell))
    +				{
    +					graphComponent.selectCellForEvent(cell, e);
    +					cell = null;
    +				}
    +
    +				// Starts move if the cell under the mouse is movable and/or any
    +				// cells of the selection are movable
    +				if (isMoveEnabled() && !e.isPopupTrigger())
    +				{
    +					start(e);
    +					e.consume();
    +				}
    +			}
    +			else if (e.isPopupTrigger())
    +			{
    +				graphComponent.getGraph().clearSelection();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object[] getCells(Object initialCell)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +
    +		return graph.getMovableCells(graph.getSelectionCells());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void start(MouseEvent e)
    +	{
    +		if (isLivePreview())
    +		{
    +			movePreview.start(e,
    +					graphComponent.getGraph().getView().getState(initialCell));
    +		}
    +		else
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +
    +			// Constructs an array with cells that are indeed movable
    +			cells = getCells(initialCell);
    +			cellBounds = graph.getView().getBounds(cells);
    +
    +			if (cellBounds != null)
    +			{
    +				// Updates the size of the graph handler that is in
    +				// charge of painting all other handlers
    +				bbox = graph.getView().getBoundingBox(cells);
    +
    +				Rectangle bounds = cellBounds.getRectangle();
    +				bounds.width += 1;
    +				bounds.height += 1;
    +				setPreviewBounds(bounds);
    +			}
    +		}
    +
    +		first = e.getPoint();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void dropActionChanged(DropTargetDragEvent e)
    +	{
    +		// do nothing
    +	}
    +
    +	/**
    +	 * 
    +	 * @param e
    +	 */
    +	public void dragOver(DropTargetDragEvent e)
    +	{
    +		if (canImport)
    +		{
    +			mouseDragged(createEvent(e));
    +			mxGraphTransferHandler handler = getGraphTransferHandler(e);
    +
    +			if (handler != null)
    +			{
    +				mxGraph graph = graphComponent.getGraph();
    +				double scale = graph.getView().getScale();
    +				Point pt = SwingUtilities.convertPoint(graphComponent,
    +						e.getLocation(), graphComponent.getGraphControl());
    +
    +				pt = graphComponent.snapScaledPoint(new mxPoint(pt)).getPoint();
    +				handler.setLocation(new Point(pt));
    +
    +				int dx = 0;
    +				int dy = 0;
    +
    +				// Centers the preview image
    +				if (centerPreview && transferBounds != null)
    +				{
    +					dx -= Math.round(transferBounds.getWidth() * scale / 2);
    +					dy -= Math.round(transferBounds.getHeight() * scale / 2);
    +				}
    +
    +				// Sets the drop offset so that the location in the transfer
    +				// handler reflects the actual mouse position
    +				handler.setOffset(new Point((int) graph.snap(dx / scale),
    +						(int) graph.snap(dy / scale)));
    +				pt.translate(dx, dy);
    +
    +				// Shifts the preview so that overlapping parts do not
    +				// affect the centering
    +				if (transferBounds != null && dragImage != null)
    +				{
    +					dx = (int) Math
    +							.round((dragImage.getIconWidth() - 2 - transferBounds
    +									.getWidth() * scale) / 2);
    +					dy = (int) Math
    +							.round((dragImage.getIconHeight() - 2 - transferBounds
    +									.getHeight() * scale) / 2);
    +					pt.translate(-dx, -dy);
    +				}
    +
    +				if (!handler.isLocalDrag() && previewBounds != null)
    +				{
    +					setPreviewBounds(new Rectangle(pt, previewBounds.getSize()));
    +				}
    +			}
    +		}
    +		else
    +		{
    +			e.rejectDrag();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Point convertPoint(Point pt)
    +	{
    +		pt = SwingUtilities.convertPoint(graphComponent, pt,
    +				graphComponent.getGraphControl());
    +
    +		pt.x -= graphComponent.getHorizontalScrollBar().getValue();
    +		pt.y -= graphComponent.getVerticalScrollBar().getValue();
    +
    +		return pt;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		// LATER: Check scrollborder, use scroll-increments, do not
    +		// scroll when over ruler dragging from library
    +		if (graphComponent.isAutoScroll())
    +		{
    +			graphComponent.getGraphControl().scrollRectToVisible(
    +					new Rectangle(e.getPoint()));
    +		}
    +
    +		if (!e.isConsumed())
    +		{
    +			gridEnabledEvent = graphComponent.isGridEnabledEvent(e);
    +			constrainedEvent = graphComponent.isConstrainedEvent(e);
    +
    +			if (constrainedEvent && first != null)
    +			{
    +				int x = e.getX();
    +				int y = e.getY();
    +
    +				if (Math.abs(e.getX() - first.x) > Math.abs(e.getY() - first.y))
    +				{
    +					y = first.y;
    +				}
    +				else
    +				{
    +					x = first.x;
    +				}
    +
    +				e = new MouseEvent(e.getComponent(), e.getID(), e.getWhen(),
    +						e.getModifiers(), x, y, e.getClickCount(),
    +						e.isPopupTrigger(), e.getButton());
    +			}
    +
    +			if (isVisible() && isMarkerEnabled())
    +			{
    +				marker.process(e);
    +			}
    +
    +			if (first != null)
    +			{
    +				if (movePreview.isActive())
    +				{
    +					double dx = e.getX() - first.x;
    +					double dy = e.getY() - first.y;
    +
    +					if (graphComponent.isGridEnabledEvent(e))
    +					{
    +						mxGraph graph = graphComponent.getGraph();
    +
    +						dx = graph.snap(dx);
    +						dy = graph.snap(dy);
    +					}
    +
    +					boolean clone = isCloneEnabled()
    +							&& graphComponent.isCloneEvent(e);
    +					movePreview.update(e, dx, dy, clone);
    +					e.consume();
    +				}
    +				else if (cellBounds != null)
    +				{
    +					double dx = e.getX() - first.x;
    +					double dy = e.getY() - first.y;
    +
    +					if (previewBounds != null)
    +					{
    +						setPreviewBounds(new Rectangle(getPreviewLocation(e,
    +								gridEnabledEvent), previewBounds.getSize()));
    +					}
    +
    +					if (!isVisible() && graphComponent.isSignificant(dx, dy))
    +					{
    +						if (imagePreview && dragImage == null
    +								&& !graphComponent.isDragEnabled())
    +						{
    +							updateDragImage(cells);
    +						}
    +
    +						setVisible(true);
    +					}
    +
    +					e.consume();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Point getPreviewLocation(MouseEvent e, boolean gridEnabled)
    +	{
    +		int x = 0;
    +		int y = 0;
    +
    +		if (first != null && cellBounds != null)
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +			double scale = graph.getView().getScale();
    +			mxPoint trans = graph.getView().getTranslate();
    +
    +			// LATER: Drag image _size_ depends on the initial position and may sometimes
    +			// not align with the grid when dragging. This is because the rounding of the width
    +			// and height at the initial position may be different than that at the current
    +			// position as the left and bottom side of the shape must align to the grid lines.
    +			// Only fix is a full repaint of the drag cells at each new mouse location.
    +			double dx = e.getX() - first.x;
    +			double dy = e.getY() - first.y;
    +
    +			double dxg = ((cellBounds.getX() + dx) / scale) - trans.getX();
    +			double dyg = ((cellBounds.getY() + dy) / scale) - trans.getY();
    +
    +			if (gridEnabled)
    +			{
    +				dxg = graph.snap(dxg);
    +				dyg = graph.snap(dyg);
    +			}
    +
    +			x = (int) Math.round((dxg + trans.getX()) * scale)
    +					+ (int) Math.round(bbox.getX())
    +					- (int) Math.round(cellBounds.getX());
    +			y = (int) Math.round((dyg + trans.getY()) * scale)
    +					+ (int) Math.round(bbox.getY())
    +					- (int) Math.round(cellBounds.getY());
    +		}
    +
    +		return new Point(x, y);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param e
    +	 */
    +	public void dragExit(DropTargetEvent e)
    +	{
    +		mxGraphTransferHandler handler = getGraphTransferHandler(e);
    +
    +		if (handler != null)
    +		{
    +			handler.setLocation(null);
    +		}
    +
    +		dragCells = null;
    +		setVisible(false);
    +		marker.reset();
    +		reset();
    +	}
    +
    +	/**
    +	 * 
    +	 * @param e
    +	 */
    +	public void drop(DropTargetDropEvent e)
    +	{
    +		if (canImport)
    +		{
    +			mxGraphTransferHandler handler = getGraphTransferHandler(e);
    +			MouseEvent event = createEvent(e);
    +
    +			// Ignores the event in mouseReleased if it is
    +			// handled by the transfer handler as a drop
    +			if (handler != null && !handler.isLocalDrag())
    +			{
    +				event.consume();
    +			}
    +
    +			mouseReleased(event);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed())
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +			double dx = 0;
    +			double dy = 0;
    +
    +			if (first != null && (cellBounds != null || movePreview.isActive()))
    +			{
    +				double scale = graph.getView().getScale();
    +				mxPoint trans = graph.getView().getTranslate();
    +
    +				// TODO: Simplify math below, this was copy pasted from
    +				// getPreviewLocation with the rounding removed
    +				dx = e.getX() - first.x;
    +				dy = e.getY() - first.y;
    +
    +				if (cellBounds != null)
    +				{
    +					double dxg = ((cellBounds.getX() + dx) / scale)
    +							- trans.getX();
    +					double dyg = ((cellBounds.getY() + dy) / scale)
    +							- trans.getY();
    +
    +					if (gridEnabledEvent)
    +					{
    +						dxg = graph.snap(dxg);
    +						dyg = graph.snap(dyg);
    +					}
    +
    +					double x = ((dxg + trans.getX()) * scale) + (bbox.getX())
    +							- (cellBounds.getX());
    +					double y = ((dyg + trans.getY()) * scale) + (bbox.getY())
    +							- (cellBounds.getY());
    +
    +					dx = Math.round((x - bbox.getX()) / scale);
    +					dy = Math.round((y - bbox.getY()) / scale);
    +				}
    +			}
    +
    +			if (first == null
    +					|| !graphComponent.isSignificant(e.getX() - first.x,
    +							e.getY() - first.y))
    +			{
    +				// Delayed handling of selection
    +				if (cell != null && !e.isPopupTrigger() && isSelectEnabled()
    +						&& (first != null || !isMoveEnabled()))
    +				{
    +					graphComponent.selectCellForEvent(cell, e);
    +				}
    +
    +				// Delayed folding for cell that was initially under the mouse
    +				if (graphComponent.isFoldingEnabled()
    +						&& graphComponent.hitFoldingIcon(initialCell, e.getX(),
    +								e.getY()))
    +				{
    +					fold(initialCell);
    +				}
    +				else
    +				{
    +					// Handles selection if no cell was initially under the mouse
    +					Object tmp = graphComponent.getCellAt(e.getX(), e.getY(),
    +							graphComponent.isSwimlaneSelectionEnabled());
    +
    +					if (cell == null && first == null)
    +					{
    +						if (tmp == null)
    +						{
    +							if (!graphComponent.isToggleEvent(e))
    +							{
    +								graph.clearSelection();
    +							}
    +						}
    +						else if (graph.isSwimlane(tmp)
    +								&& graphComponent.getCanvas()
    +										.hitSwimlaneContent(graphComponent,
    +												graph.getView().getState(tmp),
    +												e.getX(), e.getY()))
    +						{
    +							graphComponent.selectCellForEvent(tmp, e);
    +						}
    +					}
    +
    +					if (graphComponent.isFoldingEnabled()
    +							&& graphComponent.hitFoldingIcon(tmp, e.getX(),
    +									e.getY()))
    +					{
    +						fold(tmp);
    +						e.consume();
    +					}
    +				}
    +			}
    +			else if (movePreview.isActive())
    +			{
    +				if (graphComponent.isConstrainedEvent(e))
    +				{
    +					if (Math.abs(dx) > Math.abs(dy))
    +					{
    +						dy = 0;
    +					}
    +					else
    +					{
    +						dx = 0;
    +					}
    +				}
    +
    +				mxCellState markedState = marker.getMarkedState();
    +				Object target = (markedState != null) ? markedState.getCell()
    +						: null;
    +
    +				// FIXME: Cell is null if selection was carried out, need other variable
    +				//trace("cell", cell);
    +
    +				if (target == null
    +						&& isRemoveCellsFromParent()
    +						&& shouldRemoveCellFromParent(graph.getModel()
    +								.getParent(initialCell), cells, e))
    +				{
    +					target = graph.getDefaultParent();
    +				}
    +
    +				boolean clone = isCloneEnabled()
    +						&& graphComponent.isCloneEvent(e);
    +				Object[] result = movePreview.stop(true, e, dx, dy, clone,
    +						target);
    +
    +				if (cells != result)
    +				{
    +					graph.setSelectionCells(result);
    +				}
    +
    +				e.consume();
    +			}
    +			else if (isVisible())
    +			{
    +				if (constrainedEvent)
    +				{
    +					if (Math.abs(dx) > Math.abs(dy))
    +					{
    +						dy = 0;
    +					}
    +					else
    +					{
    +						dx = 0;
    +					}
    +				}
    +
    +				mxCellState targetState = marker.getValidState();
    +				Object target = (targetState != null) ? targetState.getCell()
    +						: null;
    +
    +				if (graph.isSplitEnabled()
    +						&& graph.isSplitTarget(target, cells))
    +				{
    +					graph.splitEdge(target, cells, dx, dy);
    +				}
    +				else
    +				{
    +					moveCells(cells, dx, dy, target, e);
    +				}
    +
    +				e.consume();
    +			}
    +		}
    +
    +		reset();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void fold(Object cell)
    +	{
    +		boolean collapse = !graphComponent.getGraph().isCellCollapsed(cell);
    +		graphComponent.getGraph().foldCells(collapse, false,
    +				new Object[] { cell });
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void reset()
    +	{
    +		if (movePreview.isActive())
    +		{
    +			movePreview.stop(false, null, 0, 0, false, null);
    +		}
    +
    +		setVisible(false);
    +		marker.reset();
    +		initialCell = null;
    +		dragCells = null;
    +		dragImage = null;
    +		cells = null;
    +		first = null;
    +		cell = null;
    +	}
    +
    +	/**
    +	 * Returns true if the given cells should be removed from the parent for the specified
    +	 * mousereleased event.
    +	 */
    +	protected boolean shouldRemoveCellFromParent(Object parent, Object[] cells,
    +			MouseEvent e)
    +	{
    +		if (graphComponent.getGraph().getModel().isVertex(parent))
    +		{
    +			mxCellState pState = graphComponent.getGraph().getView()
    +					.getState(parent);
    +
    +			return pState != null && !pState.contains(e.getX(), e.getY());
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param dx
    +	 * @param dy
    +	 * @param e
    +	 */
    +	protected void moveCells(Object[] cells, double dx, double dy,
    +			Object target, MouseEvent e)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		boolean clone = e.isControlDown() && isCloneEnabled();
    +
    +		if (clone)
    +		{
    +			cells = graph.getCloneableCells(cells);
    +		}
    +
    +		// Removes cells from parent
    +		if (target == null
    +				&& isRemoveCellsFromParent()
    +				&& shouldRemoveCellFromParent(
    +						graph.getModel().getParent(initialCell), cells, e))
    +		{
    +			target = graph.getDefaultParent();
    +		}
    +
    +		Object[] tmp = graph.moveCells(cells, dx, dy, clone, target,
    +				e.getPoint());
    +
    +		if (isSelectEnabled() && clone && tmp != null
    +				&& tmp.length == cells.length)
    +		{
    +			graph.setSelectionCells(tmp);
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (isVisible() && previewBounds != null)
    +		{
    +			if (dragImage != null)
    +			{
    +				// LATER: Clipping with mxUtils doesnt fix the problem
    +				// of the drawImage being painted over the scrollbars
    +				Graphics2D tmp = (Graphics2D) g.create();
    +
    +				if (graphComponent.getPreviewAlpha() < 1)
    +				{
    +					tmp.setComposite(AlphaComposite.getInstance(
    +							AlphaComposite.SRC_OVER,
    +							graphComponent.getPreviewAlpha()));
    +				}
    +
    +				tmp.drawImage(dragImage.getImage(), previewBounds.x,
    +						previewBounds.y, dragImage.getIconWidth(),
    +						dragImage.getIconHeight(), null);
    +				tmp.dispose();
    +			}
    +			else if (!imagePreview)
    +			{
    +				mxSwingConstants.PREVIEW_BORDER.paintBorder(graphComponent, g,
    +						previewBounds.x, previewBounds.y, previewBounds.width,
    +						previewBounds.height);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected MouseEvent createEvent(DropTargetEvent e)
    +	{
    +		JComponent component = getDropTarget(e);
    +		Point location = null;
    +		int action = 0;
    +
    +		if (e instanceof DropTargetDropEvent)
    +		{
    +			location = ((DropTargetDropEvent) e).getLocation();
    +			action = ((DropTargetDropEvent) e).getDropAction();
    +		}
    +		else if (e instanceof DropTargetDragEvent)
    +		{
    +			location = ((DropTargetDragEvent) e).getLocation();
    +			action = ((DropTargetDragEvent) e).getDropAction();
    +		}
    +
    +		if (location != null)
    +		{
    +			location = convertPoint(location);
    +			Rectangle r = graphComponent.getViewport().getViewRect();
    +			location.translate(r.x, r.y);
    +		}
    +
    +		// LATER: Fetch state of modifier keys from event or via global
    +		// key listener using Toolkit.getDefaultToolkit().addAWTEventListener(
    +		// new AWTEventListener() {...}, AWTEvent.KEY_EVENT_MASK). Problem
    +		// is the event does not contain the modifier keys and the global
    +		// handler is not called during drag and drop.
    +		int mod = (action == TransferHandler.COPY) ? InputEvent.CTRL_MASK : 0;
    +
    +		return new MouseEvent(component, 0, System.currentTimeMillis(), mod,
    +				location.x, location.y, 1, false, MouseEvent.BUTTON1);
    +	}
    +
    +	/**
    +	 * Helper method to return the component for a drop target event.
    +	 */
    +	protected static final mxGraphTransferHandler getGraphTransferHandler(
    +			DropTargetEvent e)
    +	{
    +		JComponent component = getDropTarget(e);
    +		TransferHandler transferHandler = component.getTransferHandler();
    +
    +		if (transferHandler instanceof mxGraphTransferHandler)
    +		{
    +			return (mxGraphTransferHandler) transferHandler;
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Helper method to return the component for a drop target event.
    +	 */
    +	protected static final JComponent getDropTarget(DropTargetEvent e)
    +	{
    +		return (JComponent) e.getDropTargetContext().getComponent();
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxGraphTransferHandler.java b/java/src/com/mxgraph/swing/handler/mxGraphTransferHandler.java
    new file mode 100644
    index 000000000..fe1340b8c
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxGraphTransferHandler.java
    @@ -0,0 +1,483 @@
    +/**
    + * $Id: mxGraphTransferHandler.java,v 1.20 2011-01-25 15:56:18 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Color;
    +import java.awt.Image;
    +import java.awt.Point;
    +import java.awt.datatransfer.DataFlavor;
    +import java.awt.datatransfer.Transferable;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.JComponent;
    +import javax.swing.TransferHandler;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxGraphTransferable;
    +import com.mxgraph.util.mxCellRenderer;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * 
    + */
    +public class mxGraphTransferHandler extends TransferHandler
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -6443287704811197675L;
    +
    +	/**
    +	 * Boolean that specifies if an image of the cells should be created for
    +	 * each transferable. Default is true.
    +	 */
    +	public static boolean DEFAULT_TRANSFER_IMAGE_ENABLED = true;
    +
    +	/**
    +	 * Specifies the background color of the transfer image. If no
    +	 * color is given here then the background color of the enclosing
    +	 * graph component is used. Default is Color.WHITE.
    +	 */
    +	public static Color DEFAULT_BACKGROUNDCOLOR = Color.WHITE;
    +
    +	/**
    +	 * Reference to the original cells for removal after a move.
    +	 */
    +	protected Object[] originalCells;
    +
    +	/**
    +	 * Reference to the last imported cell array.
    +	 */
    +	protected Transferable lastImported;
    +
    +	/**
    +	 * Sets the value for the initialImportCount. Default is 1. Updated in
    +	 * exportDone to contain 0 after a cut and 1 after a copy.
    +	 */
    +	protected int initialImportCount = 1;
    +
    +	/**
    +	 * Counter for the last imported cell array.
    +	 */
    +	protected int importCount = 0;
    +
    +	/**
    +	 * Specifies if a transfer image should be created for the transferable.
    +	 * Default is DEFAULT_TRANSFER_IMAGE.
    +	 */
    +	protected boolean transferImageEnabled = DEFAULT_TRANSFER_IMAGE_ENABLED;
    +
    +	/**
    +	 * Specifies the background color for the transfer image. Default is
    +	 * DEFAULT_BACKGROUNDCOLOR.
    +	 */
    +	protected Color transferImageBackground = DEFAULT_BACKGROUNDCOLOR;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Point location;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Point offset;
    +
    +	/**
    +	 * 
    +	 */
    +	public int getImportCount()
    +	{
    +		return importCount;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setImportCount(int value)
    +	{
    +		importCount = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setTransferImageEnabled(boolean transferImageEnabled)
    +	{
    +		this.transferImageEnabled = transferImageEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isTransferImageEnabled()
    +	{
    +		return this.transferImageEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setTransferImageBackground(Color transferImageBackground)
    +	{
    +		this.transferImageBackground = transferImageBackground;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getTransferImageBackground()
    +	{
    +		return this.transferImageBackground;
    +	}
    +
    +	/**
    +	 * Returns true if the DnD operation started from this handler.
    +	 */
    +	public boolean isLocalDrag()
    +	{
    +		return originalCells != null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setLocation(Point value)
    +	{
    +		location = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setOffset(Point value)
    +	{
    +		offset = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean canImport(JComponent comp, DataFlavor[] flavors)
    +	{
    +		for (int i = 0; i < flavors.length; i++)
    +		{
    +			if (flavors[i] != null
    +					&& flavors[i].equals(mxGraphTransferable.dataFlavor))
    +			{
    +				return true;
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * (non-Javadoc)
    +	 * 
    +	 * @see javax.swing.TransferHandler#createTransferable(javax.swing.JComponent)
    +	 */
    +	public Transferable createTransferable(JComponent c)
    +	{
    +		if (c instanceof mxGraphComponent)
    +		{
    +			mxGraphComponent graphComponent = (mxGraphComponent) c;
    +			mxGraph graph = graphComponent.getGraph();
    +
    +			if (!graph.isSelectionEmpty())
    +			{
    +				originalCells = graphComponent.getExportableCells(graph
    +						.getSelectionCells());
    +
    +				if (originalCells.length > 0)
    +				{
    +					ImageIcon icon = (transferImageEnabled) ? createTransferableImage(
    +							graphComponent, originalCells) : null;
    +
    +					return createGraphTransferable(graphComponent,
    +							originalCells, icon);
    +				}
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphTransferable createGraphTransferable(
    +			mxGraphComponent graphComponent, Object[] cells, ImageIcon icon)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxPoint tr = graph.getView().getTranslate();
    +		double scale = graph.getView().getScale();
    +
    +		mxRectangle bounds = graph.getPaintBounds(cells);
    +
    +		// Removes the scale and translation from the bounds
    +		bounds.setX(bounds.getX() / scale - tr.getX());
    +		bounds.setY(bounds.getY() / scale - tr.getY());
    +		bounds.setWidth(bounds.getWidth() / scale);
    +		bounds.setHeight(bounds.getHeight() / scale);
    +
    +		return createGraphTransferable(graphComponent, cells, bounds, icon);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphTransferable createGraphTransferable(
    +			mxGraphComponent graphComponent, Object[] cells,
    +			mxRectangle bounds, ImageIcon icon)
    +	{
    +		return new mxGraphTransferable(graphComponent.getGraph().cloneCells(
    +				cells), bounds, icon);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public ImageIcon createTransferableImage(mxGraphComponent graphComponent,
    +			Object[] cells)
    +	{
    +		ImageIcon icon = null;
    +		Color bg = (transferImageBackground != null) ? transferImageBackground
    +				: graphComponent.getBackground();
    +		Image img = mxCellRenderer.createBufferedImage(
    +				graphComponent.getGraph(), cells, 1, bg,
    +				graphComponent.isAntiAlias(), null, graphComponent.getCanvas());
    +
    +		if (img != null)
    +		{
    +			icon = new ImageIcon(img);
    +		}
    +
    +		return icon;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void exportDone(JComponent c, Transferable data, int action)
    +	{
    +		initialImportCount = 1;
    +		
    +		if (c instanceof mxGraphComponent
    +				&& data instanceof mxGraphTransferable)
    +		{
    +			// Requires that the graph handler resets the location to null if the drag leaves the
    +			// component. This is the condition to identify a cross-component move.
    +			boolean isLocalDrop = location != null;
    +
    +			if (action == TransferHandler.MOVE && !isLocalDrop)
    +			{
    +				removeCells((mxGraphComponent) c, originalCells);
    +				initialImportCount = 0;
    +			}
    +		}
    +
    +		originalCells = null;
    +		location = null;
    +		offset = null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void removeCells(mxGraphComponent graphComponent, Object[] cells)
    +	{
    +		graphComponent.getGraph().removeCells(cells);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getSourceActions(JComponent c)
    +	{
    +		return COPY_OR_MOVE;
    +	}
    +
    +	/**
    +	 * Checks if the mxGraphTransferable data flavour is supported and calls
    +	 * importGraphTransferable if possible.
    +	 */
    +	public boolean importData(JComponent c, Transferable t)
    +	{
    +		boolean result = false;
    +
    +		if (isLocalDrag())
    +		{
    +			// Enables visual feedback on the Mac
    +			result = true;
    +		}
    +		else
    +		{
    +			try
    +			{
    +				updateImportCount(t);
    +
    +				if (c instanceof mxGraphComponent)
    +				{
    +					mxGraphComponent graphComponent = (mxGraphComponent) c;
    +
    +					if (graphComponent.isEnabled()
    +							&& t.isDataFlavorSupported(mxGraphTransferable.dataFlavor))
    +					{
    +						mxGraphTransferable gt = (mxGraphTransferable) t
    +								.getTransferData(mxGraphTransferable.dataFlavor);
    +
    +						if (gt.getCells() != null)
    +						{
    +							result = importGraphTransferable(graphComponent, gt);
    +						}
    +
    +					}
    +				}
    +			}
    +			catch (Exception ex)
    +			{
    +				ex.printStackTrace();
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Counts the number of times that the given transferable has been imported.
    +	 */
    +	protected void updateImportCount(Transferable t)
    +	{
    +		if (lastImported != t)
    +		{
    +			importCount = initialImportCount;
    +		}
    +		else
    +		{
    +			importCount++;
    +		}
    +
    +		lastImported = t;
    +	}
    +
    +	/**
    +	 * Returns true if the cells have been imported using importCells.
    +	 */
    +	protected boolean importGraphTransferable(mxGraphComponent graphComponent,
    +			mxGraphTransferable gt)
    +	{
    +		boolean result = false;
    +
    +		try
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +			double scale = graph.getView().getScale();
    +			mxRectangle bounds = gt.getBounds();
    +			double dx = 0, dy = 0;
    +
    +			// Computes the offset for the placement of the imported cells
    +			if (location != null && bounds != null)
    +			{
    +				mxPoint translate = graph.getView().getTranslate();
    +
    +				dx = location.getX() - (bounds.getX() + translate.getX())
    +						* scale;
    +				dy = location.getY() - (bounds.getY() + translate.getY())
    +						* scale;
    +
    +				// Keeps the cells aligned to the grid
    +				dx = graph.snap(dx / scale);
    +				dy = graph.snap(dy / scale);
    +			}
    +			else
    +			{
    +				int gs = graph.getGridSize();
    +
    +				dx = importCount * gs;
    +				dy = importCount * gs;
    +			}
    +
    +			if (offset != null)
    +			{
    +				dx += offset.x;
    +				dy += offset.y;
    +			}
    +
    +			importCells(graphComponent, gt, dx, dy);
    +			location = null;
    +			offset = null;
    +			result = true;
    +
    +			// Requests the focus after an import
    +			graphComponent.requestFocus();
    +		}
    +		catch (Exception e)
    +		{
    +			e.printStackTrace();
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the drop target for the given transferable and location.
    +	 */
    +	protected Object getDropTarget(mxGraphComponent graphComponent,
    +			mxGraphTransferable gt)
    +	{
    +		Object[] cells = gt.getCells();
    +		Object target = null;
    +
    +		// Finds the target cell at the given location and checks if the
    +		// target is not already the parent of the first imported cell
    +		if (location != null)
    +		{
    +			target = graphComponent.getGraph().getDropTarget(cells, location,
    +					graphComponent.getCellAt(location.x, location.y));
    +
    +			if (cells.length > 0
    +					&& graphComponent.getGraph().getModel().getParent(cells[0]) == target)
    +			{
    +				target = null;
    +			}
    +		}
    +
    +		return target;
    +	}
    +
    +	/**
    +	 * Gets a drop target using getDropTarget and imports the cells using
    +	 * mxGraph.splitEdge or mxGraphComponent.importCells depending on the
    +	 * drop target and the return values of mxGraph.isSplitEnabled and
    +	 * mxGraph.isSplitTarget. Selects and returns the cells that have been
    +	 * imported.
    +	 */
    +	protected Object[] importCells(mxGraphComponent graphComponent,
    +			mxGraphTransferable gt, double dx, double dy)
    +	{
    +		Object target = getDropTarget(graphComponent, gt);
    +		mxGraph graph = graphComponent.getGraph();
    +		Object[] cells = gt.getCells();
    +
    +		cells = graphComponent.getImportableCells(cells);
    +
    +		if (graph.isSplitEnabled() && graph.isSplitTarget(target, cells))
    +		{
    +			graph.splitEdge(target, cells, dx, dy);
    +		}
    +		else
    +		{
    +			cells = graphComponent.importCells(cells, dx, dy, target, location);
    +			graph.setSelectionCells(cells);
    +		}
    +
    +		return cells;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxInsertHandler.java b/java/src/com/mxgraph/swing/handler/mxInsertHandler.java
    new file mode 100644
    index 000000000..08d1cff74
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxInsertHandler.java
    @@ -0,0 +1,281 @@
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.BasicStroke;
    +import java.awt.Color;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.event.MouseEvent;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxMouseAdapter;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.view.mxGraph;
    +
    +public class mxInsertHandler extends mxMouseAdapter
    +{
    +
    +	/**
    +	 * Reference to the enclosing graph component.
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Specifies if this handler is enabled. Default is true.
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected String style;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Point first;
    +
    +	/**
    +	 * 
    +	 */
    +	protected float lineWidth = 1;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Color lineColor = Color.black;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean rounded = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxRectangle current;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxEventSource eventSource = new mxEventSource(this);
    +
    +	/**
    +	 * 
    +	 */
    +	public mxInsertHandler(mxGraphComponent graphComponent, String style)
    +	{
    +		this.graphComponent = graphComponent;
    +		this.style = style;
    +
    +		// Installs the paint handler
    +		graphComponent.addListener(mxEvent.AFTER_PAINT, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				Graphics g = (Graphics) evt.getProperty("g");
    +				paint(g);
    +			}
    +		});
    +
    +		// Listens to all mouse events on the rendering control
    +		graphComponent.getGraphControl().addMouseListener(this);
    +		graphComponent.getGraphControl().addMouseMotionListener(this);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphComponent getGraphComponent()
    +	{
    +		return graphComponent;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		enabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isStartEvent(MouseEvent e)
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void start(MouseEvent e)
    +	{
    +		first = e.getPoint();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed()
    +				&& isStartEvent(e))
    +		{
    +			start(e);
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed()
    +				&& first != null)
    +		{
    +			mxRectangle dirty = current;
    +
    +			current = new mxRectangle(first.x, first.y, 0, 0);
    +			current.add(new mxRectangle(e.getX(), e.getY(), 0, 0));
    +
    +			if (dirty != null)
    +			{
    +				dirty.add(current);
    +			}
    +			else
    +			{
    +				dirty = current;
    +			}
    +
    +			Rectangle tmp = dirty.getRectangle();
    +			int b = (int) Math.ceil(lineWidth);
    +			graphComponent.getGraphControl().repaint(tmp.x - b, tmp.y - b,
    +					tmp.width + 2 * b, tmp.height + 2 * b);
    +
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed()
    +				&& current != null)
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +			double scale = graph.getView().getScale();
    +			mxPoint tr = graph.getView().getTranslate();
    +			current.setX(current.getX() / scale - tr.getX());
    +			current.setY(current.getY() / scale - tr.getY());
    +			current.setWidth(current.getWidth() / scale);
    +			current.setHeight(current.getHeight() / scale);
    +
    +			Object cell = insertCell(current);
    +			eventSource.fireEvent(new mxEventObject(mxEvent.INSERT, "cell",
    +					cell));
    +			e.consume();
    +		}
    +
    +		reset();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object insertCell(mxRectangle bounds)
    +	{
    +		// FIXME: Clone prototype cell for insert
    +		return graphComponent.getGraph().insertVertex(null, null, "",
    +				bounds.getX(), bounds.getY(), bounds.getWidth(),
    +				bounds.getHeight(), style);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void reset()
    +	{
    +		Rectangle dirty = null;
    +
    +		if (current != null)
    +		{
    +			dirty = current.getRectangle();
    +		}
    +
    +		current = null;
    +		first = null;
    +
    +		if (dirty != null)
    +		{
    +			int b = (int) Math.ceil(lineWidth);
    +			graphComponent.getGraphControl().repaint(dirty.x - b, dirty.y - b,
    +					dirty.width + 2 * b, dirty.height + 2 * b);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (first != null && current != null)
    +		{
    +			((Graphics2D) g).setStroke(new BasicStroke(lineWidth));
    +			g.setColor(lineColor);
    +			Rectangle rect = current.getRectangle();
    +
    +			if (rounded)
    +			{
    +				g.drawRoundRect(rect.x, rect.y, rect.width, rect.height, 8, 8);
    +			}
    +			else
    +			{
    +				g.drawRect(rect.x, rect.y, rect.width, rect.height);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void addListener(String eventName, mxIEventListener listener)
    +	{
    +		eventSource.addListener(eventName, listener);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void removeListener(mxIEventListener listener)
    +	{
    +		removeListener(listener, null);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void removeListener(mxIEventListener listener, String eventName)
    +	{
    +		eventSource.removeListener(listener, eventName);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxKeyboardHandler.java b/java/src/com/mxgraph/swing/handler/mxKeyboardHandler.java
    new file mode 100644
    index 000000000..6c1c92224
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxKeyboardHandler.java
    @@ -0,0 +1,125 @@
    +/**
    + * $Id: mxKeyboardHandler.java,v 1.4 2010-03-24 15:05:10 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.handler;
    +
    +import javax.swing.ActionMap;
    +import javax.swing.InputMap;
    +import javax.swing.JComponent;
    +import javax.swing.KeyStroke;
    +import javax.swing.SwingUtilities;
    +import javax.swing.TransferHandler;
    +import javax.swing.UIManager;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxGraphActions;
    +
    +/**
    + * @author Administrator
    + * 
    + */
    +public class mxKeyboardHandler
    +{
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 */
    +	public mxKeyboardHandler(mxGraphComponent graphComponent)
    +	{
    +		installKeyboardActions(graphComponent);
    +	}
    +
    +	/**
    +	 * Invoked as part from the boilerplate install block.
    +	 */
    +	protected void installKeyboardActions(mxGraphComponent graphComponent)
    +	{
    +		InputMap inputMap = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
    +		SwingUtilities.replaceUIInputMap(graphComponent,
    +				JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap);
    +
    +		inputMap = getInputMap(JComponent.WHEN_FOCUSED);
    +		SwingUtilities.replaceUIInputMap(graphComponent,
    +				JComponent.WHEN_FOCUSED, inputMap);
    +		SwingUtilities.replaceUIActionMap(graphComponent, createActionMap());
    +	}
    +
    +	/**
    +	 * Return JTree's input map.
    +	 */
    +	protected InputMap getInputMap(int condition)
    +	{
    +		InputMap map = null;
    +
    +		if (condition == JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
    +		{
    +			map = (InputMap) UIManager.get("ScrollPane.ancestorInputMap");
    +		}
    +		else if (condition == JComponent.WHEN_FOCUSED)
    +		{
    +			map = new InputMap();
    +
    +			map.put(KeyStroke.getKeyStroke("F2"), "edit");
    +			map.put(KeyStroke.getKeyStroke("DELETE"), "delete");
    +			map.put(KeyStroke.getKeyStroke("UP"), "selectParent");
    +			map.put(KeyStroke.getKeyStroke("DOWN"), "selectChild");
    +			map.put(KeyStroke.getKeyStroke("RIGHT"), "selectNext");
    +			map.put(KeyStroke.getKeyStroke("LEFT"), "selectPrevious");
    +			map.put(KeyStroke.getKeyStroke("PAGE_DOWN"), "enterGroup");
    +			map.put(KeyStroke.getKeyStroke("PAGE_UP"), "exitGroup");
    +			map.put(KeyStroke.getKeyStroke("HOME"), "home");
    +			map.put(KeyStroke.getKeyStroke("ENTER"), "expand");
    +			map.put(KeyStroke.getKeyStroke("BACK_SPACE"), "collapse");
    +			map.put(KeyStroke.getKeyStroke("control A"), "selectAll");
    +			map.put(KeyStroke.getKeyStroke("control D"), "selectNone");
    +			map.put(KeyStroke.getKeyStroke("control X"), "cut");
    +			map.put(KeyStroke.getKeyStroke("CUT"), "cut");
    +			map.put(KeyStroke.getKeyStroke("control C"), "copy");
    +			map.put(KeyStroke.getKeyStroke("COPY"), "copy");
    +			map.put(KeyStroke.getKeyStroke("control V"), "paste");
    +			map.put(KeyStroke.getKeyStroke("PASTE"), "paste");
    +			map.put(KeyStroke.getKeyStroke("control G"), "group");
    +			map.put(KeyStroke.getKeyStroke("control U"), "ungroup");
    +			map.put(KeyStroke.getKeyStroke("control ADD"), "zoomIn");
    +			map.put(KeyStroke.getKeyStroke("control SUBTRACT"), "zoomOut");
    +		}
    +
    +		return map;
    +	}
    +
    +	/**
    +	 * Return the mapping between JTree's input map and JGraph's actions.
    +	 */
    +	protected ActionMap createActionMap()
    +	{
    +		ActionMap map = (ActionMap) UIManager.get("ScrollPane.actionMap");
    +
    +		map.put("edit", mxGraphActions.getEditAction());
    +		map.put("delete", mxGraphActions.getDeleteAction());
    +		map.put("home", mxGraphActions.getHomeAction());
    +		map.put("enterGroup", mxGraphActions.getEnterGroupAction());
    +		map.put("exitGroup", mxGraphActions.getExitGroupAction());
    +		map.put("collapse", mxGraphActions.getCollapseAction());
    +		map.put("expand", mxGraphActions.getExpandAction());
    +		map.put("toBack", mxGraphActions.getToBackAction());
    +		map.put("toFront", mxGraphActions.getToFrontAction());
    +		map.put("selectNone", mxGraphActions.getSelectNoneAction());
    +		map.put("selectAll", mxGraphActions.getSelectAllAction());
    +		map.put("selectNext", mxGraphActions.getSelectNextAction());
    +		map.put("selectPrevious", mxGraphActions.getSelectPreviousAction());
    +		map.put("selectParent", mxGraphActions.getSelectParentAction());
    +		map.put("selectChild", mxGraphActions.getSelectChildAction());
    +		map.put("cut", TransferHandler.getCutAction());
    +		map.put("copy", TransferHandler.getCopyAction());
    +		map.put("paste", TransferHandler.getPasteAction());
    +		map.put("group", mxGraphActions.getGroupAction());
    +		map.put("ungroup", mxGraphActions.getUngroupAction());
    +		map.put("zoomIn", mxGraphActions.getZoomInAction());
    +		map.put("zoomOut", mxGraphActions.getZoomOutAction());
    +
    +		return map;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxMovePreview.java b/java/src/com/mxgraph/swing/handler/mxMovePreview.java
    new file mode 100644
    index 000000000..47d0dca12
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxMovePreview.java
    @@ -0,0 +1,506 @@
    +/**
    + * $Id: mxMovePreview.java,v 1.9 2012-01-13 13:19:25 david Exp $
    + * Copyright (c) 2008-2012, JGraph Ltd
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Graphics;
    +import java.awt.Rectangle;
    +import java.awt.event.MouseEvent;
    +import java.util.Collection;
    +import java.util.LinkedList;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.swing.view.mxCellStatePreview;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * Connection handler creates new connections between cells. This control is used to display the connector
    + * icon, while the preview is used to draw the line.
    + */
    +public class mxMovePreview extends mxEventSource
    +{
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Maximum number of cells to preview individually. Default is 200.
    +	 */
    +	protected int threshold = 200;
    +
    +	/**
    +	 * Specifies if the placeholder rectangle should be used for all
    +	 * previews. Default is false. This overrides all other preview
    +	 * settings if true.
    +	 */
    +	protected boolean placeholderPreview = false;
    +
    +	/**
    +	 * Specifies if the preview should use clones of the original shapes.
    +	 * Default is true.
    +	 */
    +	protected boolean clonePreview = true;
    +
    +	/**
    +	 * Specifies if connected, unselected edges should be included in the
    +	 * preview. Default is true. This should not be used if cloning is
    +	 * enabled.
    +	 */
    +	protected boolean contextPreview = true;
    +
    +	/**
    +	 * Specifies if the selection cells handler should be hidden while the
    +	 * preview is visible. Default is false.
    +	 */
    +	protected boolean hideSelectionHandler = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxCellState startState;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxCellState[] previewStates;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Object[] movingCells;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Rectangle initialPlaceholder;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Rectangle placeholder;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxRectangle lastDirty;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxCellStatePreview preview;
    +
    +	/**
    +	 * Constructs a new rubberband selection for the given graph component.
    +	 * 
    +	 * @param graphComponent Component that contains the rubberband.
    +	 */
    +	public mxMovePreview(mxGraphComponent graphComponent)
    +	{
    +		this.graphComponent = graphComponent;
    +
    +		// Installs the paint handler
    +		graphComponent.addListener(mxEvent.AFTER_PAINT, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				Graphics g = (Graphics) evt.getProperty("g");
    +				paint(g);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getThreshold()
    +	{
    +		return threshold;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setThreshold(int value)
    +	{
    +		threshold = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isPlaceholderPreview()
    +	{
    +		return placeholderPreview;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setPlaceholderPreview(boolean value)
    +	{
    +		placeholderPreview = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isClonePreview()
    +	{
    +		return clonePreview;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setClonePreview(boolean value)
    +	{
    +		clonePreview = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isContextPreview()
    +	{
    +		return contextPreview;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setContextPreview(boolean value)
    +	{
    +		contextPreview = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isHideSelectionHandler()
    +	{
    +		return hideSelectionHandler;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setHideSelectionHandler(boolean value)
    +	{
    +		hideSelectionHandler = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isActive()
    +	{
    +		return startState != null;
    +	}
    +
    +	/**
    +	 * FIXME: Cells should be assigned outside of getPreviewStates
    +	 */
    +	public Object[] getMovingCells()
    +	{
    +		return movingCells;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object[] getCells(mxCellState initialState)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +
    +		return graph.getMovableCells(graph.getSelectionCells());
    +	}
    +
    +	/**
    +	 * Returns the states that are affected by the move operation.
    +	 */
    +	protected mxCellState[] getPreviewStates()
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		Collection<mxCellState> result = new LinkedList<mxCellState>();
    +
    +		for (Object cell : movingCells)
    +		{
    +			mxCellState cellState = graph.getView().getState(cell);
    +
    +			if (cellState != null)
    +			{
    +				result.add(cellState);
    +
    +				// Terminates early if too many cells
    +				if (result.size() >= threshold)
    +				{
    +					return null;
    +				}
    +
    +				if (isContextPreview())
    +				{
    +					Object[] edges = graph.getAllEdges(new Object[] { cell });
    +
    +					for (Object edge : edges)
    +					{
    +						if (!graph.isCellSelected(edge))
    +						{
    +							mxCellState edgeState = graph.getView().getState(
    +									edge);
    +
    +							if (edgeState != null)
    +							{
    +								// Terminates early if too many cells
    +								if (result.size() >= threshold)
    +								{
    +									return null;
    +								}
    +
    +								result.add(edgeState);
    +							}
    +						}
    +					}
    +				}
    +			}
    +		}
    +
    +		return result.toArray(new mxCellState[result.size()]);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean isCellOpaque(Object cell)
    +	{
    +		return startState != null && startState.getCell() == cell;
    +	}
    +
    +	/**
    +	 * Sets the translation of the preview.
    +	 */
    +	public void start(MouseEvent e, mxCellState state)
    +	{
    +		startState = state;
    +		movingCells = getCells(state);
    +		previewStates = (!placeholderPreview) ? getPreviewStates() : null;
    +
    +		if (previewStates == null || previewStates.length >= threshold)
    +		{
    +			placeholder = getPlaceholderBounds(startState).getRectangle();
    +			initialPlaceholder = new Rectangle(placeholder);
    +			graphComponent.getGraphControl().repaint(placeholder);
    +		}
    +
    +		fireEvent(new mxEventObject(mxEvent.START, "event", e, "state",
    +				startState));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxRectangle getPlaceholderBounds(mxCellState startState)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +
    +		return graph.getView().getBounds(graph.getSelectionCells());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCellStatePreview createCellStatePreview()
    +	{
    +		return new mxCellStatePreview(graphComponent, isClonePreview())
    +		{
    +			protected float getOpacityForCell(Object cell)
    +			{
    +				if (isCellOpaque(cell))
    +				{
    +					return 1;
    +				}
    +
    +				return super.getOpacityForCell(cell);
    +			}
    +		};
    +	}
    +
    +	/**
    +	 * Sets the translation of the preview.
    +	 */
    +	public void update(MouseEvent e, double dx, double dy, boolean clone)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +
    +		if (placeholder != null)
    +		{
    +			Rectangle tmp = new Rectangle(placeholder);
    +			placeholder.x = initialPlaceholder.x + (int) dx;
    +			placeholder.y = initialPlaceholder.x + (int) dy;
    +			tmp.add(placeholder);
    +			graphComponent.getGraphControl().repaint(tmp);
    +		}
    +		else if (previewStates != null)
    +		{
    +			preview = createCellStatePreview();
    +			preview.setOpacity(graphComponent.getPreviewAlpha());
    +
    +			// Combines the layout result with the move preview
    +			for (mxCellState previewState : previewStates)
    +			{
    +				preview.moveState(previewState, dx, dy, false, false);
    +
    +				// FIXME: Move into show-handler?
    +				boolean visible = true;
    +
    +				if ((dx != 0 || dy != 0) && clone && isContextPreview())
    +				{
    +					visible = false;
    +					Object tmp = previewState.getCell();
    +
    +					while (!visible && tmp != null)
    +					{
    +						visible = graph.isCellSelected(tmp);
    +						tmp = graph.getModel().getParent(tmp);
    +					}
    +				}
    +			}
    +
    +			mxRectangle dirty = lastDirty;
    +
    +			lastDirty = preview.show();
    +
    +			if (dirty != null)
    +			{
    +				dirty.add(lastDirty);
    +			}
    +			else
    +			{
    +				dirty = lastDirty;
    +			}
    +
    +			if (dirty != null)
    +			{
    +				repaint(dirty);
    +			}
    +		}
    +
    +		if (isHideSelectionHandler())
    +		{
    +			graphComponent.getSelectionCellsHandler().setVisible(false);
    +		}
    +
    +		fireEvent(new mxEventObject(mxEvent.CONTINUE, "event", e, "dx", dx,
    +				"dy", dy));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void repaint(mxRectangle dirty)
    +	{
    +		if (dirty != null)
    +		{
    +			graphComponent.getGraphControl().repaint(dirty.getRectangle());
    +		}
    +		else
    +		{
    +			graphComponent.getGraphControl().repaint();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void reset()
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +
    +		if (placeholder != null)
    +		{
    +			Rectangle tmp = placeholder;
    +			placeholder = null;
    +			graphComponent.getGraphControl().repaint(tmp);
    +		}
    +
    +		if (isHideSelectionHandler())
    +		{
    +			graphComponent.getSelectionCellsHandler().setVisible(true);
    +		}
    +
    +		// Revalidates the screen
    +		// TODO: Should only revalidate moved cells
    +		if (!isClonePreview() && previewStates != null)
    +		{
    +			graph.getView().revalidate();
    +		}
    +
    +		previewStates = null;
    +		movingCells = null;
    +		startState = null;
    +		preview = null;
    +
    +		if (lastDirty != null)
    +		{
    +			graphComponent.getGraphControl().repaint(lastDirty.getRectangle());
    +			lastDirty = null;
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public Object[] stop(boolean commit, MouseEvent e, double dx, double dy,
    +			boolean clone, Object target)
    +	{
    +		Object[] cells = movingCells;
    +		reset();
    +
    +		mxGraph graph = graphComponent.getGraph();
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			if (commit)
    +			{
    +				double s = graph.getView().getScale();
    +				cells = graph.moveCells(cells, dx / s, dy / s, clone, target,
    +						e.getPoint());
    +			}
    +
    +			fireEvent(new mxEventObject(mxEvent.STOP, "event", e, "commit",
    +					commit));
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (placeholder != null)
    +		{
    +			mxSwingConstants.PREVIEW_BORDER.paintBorder(graphComponent, g,
    +					placeholder.x, placeholder.y, placeholder.width,
    +					placeholder.height);
    +		}
    +
    +		if (preview != null)
    +		{
    +			preview.paint(g);
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxPanningHandler.java b/java/src/com/mxgraph/swing/handler/mxPanningHandler.java
    new file mode 100644
    index 000000000..afe13901e
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxPanningHandler.java
    @@ -0,0 +1,129 @@
    +/**
    + * $Id: mxPanningHandler.java,v 1.8 2010-12-08 12:31:50 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.event.MouseEvent;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxMouseAdapter;
    +
    +/**
    + * 
    + */
    +public class mxPanningHandler extends mxMouseAdapter
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 7969814728058376339L;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphComponent graphComponent;
    +	
    +	/**
    +	 * 
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Point start;
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 */
    +	public mxPanningHandler(mxGraphComponent graphComponent)
    +	{
    +		this.graphComponent = graphComponent;
    +
    +		graphComponent.getGraphControl().addMouseListener(this);
    +		graphComponent.getGraphControl().addMouseMotionListener(this);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		enabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		if (isEnabled() && !e.isConsumed() && graphComponent.isPanningEvent(e)
    +				&& !e.isPopupTrigger())
    +		{
    +			start = e.getPoint();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		if (!e.isConsumed() && start != null)
    +		{
    +			int dx = e.getX() - start.x;
    +			int dy = e.getY() - start.y;
    +
    +			Rectangle r = graphComponent.getViewport().getViewRect();
    +
    +			int right = r.x + ((dx > 0) ? 0 : r.width) - dx;
    +			int bottom = r.y + ((dy > 0) ? 0 : r.height) - dy;
    +
    +			graphComponent.getGraphControl().scrollRectToVisible(
    +					new Rectangle(right, bottom, 0, 0));
    +
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		if (!e.isConsumed() && start != null)
    +		{
    +			int dx = Math.abs(start.x - e.getX());
    +			int dy = Math.abs(start.y - e.getY());
    +
    +			if (graphComponent.isSignificant(dx, dy))
    +			{
    +				e.consume();
    +			}
    +		}
    +
    +		start = null;
    +	}
    +
    +	/**
    +	 * Whether or not panning is currently active
    +	 * @return Whether or not panning is currently active
    +	 */
    +	public boolean isActive()
    +	{
    +		return (start != null);
    +	}
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxRotationHandler.java b/java/src/com/mxgraph/swing/handler/mxRotationHandler.java
    new file mode 100644
    index 000000000..c45b7d22c
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxRotationHandler.java
    @@ -0,0 +1,372 @@
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Cursor;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.event.MouseEvent;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.JComponent;
    +import javax.swing.JLabel;
    +import javax.swing.SwingUtilities;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxMouseAdapter;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * Placeholder for rotation handler
    + */
    +public class mxRotationHandler extends mxMouseAdapter
    +{
    +	/**
    +	 * 
    +	 */
    +	public static ImageIcon ROTATE_ICON = null;
    +
    +	/**
    +	 * Loads the collapse and expand icons.
    +	 */
    +	static
    +	{
    +		ROTATE_ICON = new ImageIcon(
    +				mxRotationHandler.class
    +						.getResource("/com/mxgraph/swing/images/rotate.gif"));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	private static double PI4 = Math.PI / 4;
    +
    +	/**
    +	 * Reference to the enclosing graph component.
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Specifies if this handler is enabled. Default is true.
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected JComponent handle;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxCellState currentState;
    +
    +	/**
    +	 * 
    +	 */
    +	protected double initialAngle;
    +
    +	/**
    +	 * 
    +	 */
    +	protected double currentAngle;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Point first;
    +
    +	/**
    +	 * Constructs a new rotation handler.
    +	 */
    +	public mxRotationHandler(mxGraphComponent graphComponent)
    +	{
    +		this.graphComponent = graphComponent;
    +		graphComponent.addMouseListener(this);
    +		handle = createHandle();
    +
    +		// Installs the paint handler
    +		graphComponent.addListener(mxEvent.AFTER_PAINT, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				Graphics g = (Graphics) evt.getProperty("g");
    +				paint(g);
    +			}
    +		});
    +
    +		// Listens to all mouse events on the rendering control
    +		graphComponent.getGraphControl().addMouseListener(this);
    +		graphComponent.getGraphControl().addMouseMotionListener(this);
    +
    +		// Needs to catch events because these are consumed
    +		handle.addMouseListener(this);
    +		handle.addMouseMotionListener(this);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphComponent getGraphComponent()
    +	{
    +		return graphComponent;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		enabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected JComponent createHandle()
    +	{
    +		JLabel label = new JLabel(ROTATE_ICON);
    +		label.setSize(ROTATE_ICON.getIconWidth(), ROTATE_ICON.getIconHeight());
    +		label.setOpaque(false);
    +
    +		return label;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isStateHandled(mxCellState state)
    +	{
    +		return graphComponent.getGraph().getModel().isVertex(state.getCell());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		if (currentState != null && handle.getParent() != null
    +				&& e.getSource() == handle /* mouse hits handle */)
    +		{
    +			start(e);
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void start(MouseEvent e)
    +	{
    +		initialAngle = mxUtils.getDouble(currentState.getStyle(),
    +				mxConstants.STYLE_ROTATION) * mxConstants.RAD_PER_DEG;
    +		currentAngle = initialAngle;
    +		first = SwingUtilities.convertPoint(e.getComponent(), e.getPoint(),
    +				graphComponent.getGraphControl());
    +
    +		if (!graphComponent.getGraph().isCellSelected(currentState.getCell()))
    +		{
    +			graphComponent.selectCellForEvent(currentState.getCell(), e);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseMoved(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed())
    +		{
    +			if (handle.getParent() != null && e.getSource() == handle /* mouse hits handle */)
    +			{
    +				graphComponent.getGraphControl().setCursor(
    +						new Cursor(Cursor.HAND_CURSOR));
    +				e.consume();
    +			}
    +			else if (currentState == null
    +					|| !currentState.getRectangle().contains(e.getPoint()))
    +			{
    +				mxCellState eventState = graphComponent
    +						.getGraph()
    +						.getView()
    +						.getState(
    +								graphComponent.getCellAt(e.getX(), e.getY(),
    +										false));
    +				mxCellState state = null;
    +
    +				if (eventState != null && isStateHandled(eventState))
    +				{
    +					state = eventState;
    +				}
    +
    +				if (currentState != state)
    +				{
    +					currentState = state;
    +
    +					if (currentState == null && handle.getParent() != null)
    +					{
    +						handle.setVisible(false);
    +						handle.getParent().remove(handle);
    +					}
    +					else if (currentState != null)
    +					{
    +						if (handle.getParent() == null)
    +						{
    +							// Adds component for rendering the handles (preview is separate)
    +							graphComponent.getGraphControl().add(handle, 0);
    +							handle.setVisible(true);
    +						}
    +
    +						handle.setLocation(
    +								(int) (currentState.getX()
    +										+ currentState.getWidth()
    +										- handle.getWidth() - 4),
    +								(int) (currentState.getY()
    +										+ currentState.getHeight()
    +										- handle.getWidth() - 4));
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed()
    +				&& first != null)
    +		{
    +			mxRectangle dirty = mxUtils.getBoundingBox(currentState,
    +					currentAngle * mxConstants.DEG_PER_RAD);
    +			Point pt = SwingUtilities.convertPoint(e.getComponent(),
    +					e.getPoint(), graphComponent.getGraphControl());
    +
    +			double cx = currentState.getCenterX();
    +			double cy = currentState.getCenterY();
    +			double dx = pt.getX() - cx;
    +			double dy = pt.getY() - cy;
    +			double c = Math.sqrt(dx * dx + dy * dy);
    +
    +			currentAngle = ((pt.getX() > cx) ? -1 : 1) * Math.acos(dy / c)
    +					+ PI4 + initialAngle;
    +
    +			dirty.add(mxUtils.getBoundingBox(currentState, currentAngle
    +					* mxConstants.DEG_PER_RAD));
    +			dirty.grow(1);
    +
    +			// TODO: Compute dirty rectangle and repaint
    +			graphComponent.getGraphControl().repaint(dirty.getRectangle());
    +			e.consume();
    +		}
    +		else if (handle.getParent() != null)
    +		{
    +			handle.getParent().remove(handle);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed()
    +				&& first != null)
    +		{
    +			double deg = 0;
    +			Object cell = null;
    +
    +			if (currentState != null)
    +			{
    +				cell = currentState.getCell();
    +				/*deg = mxUtils.getDouble(currentState.getStyle(),
    +						mxConstants.STYLE_ROTATION);*/
    +			}
    +
    +			deg += currentAngle * mxConstants.DEG_PER_RAD;
    +			boolean willExecute = cell != null && first != null;
    +
    +			// TODO: Call reset before execute in all handlers that
    +			// offer an execute method
    +			reset();
    +
    +			if (graphComponent.isEnabled() && isEnabled() && !e.isConsumed()
    +					&& willExecute)
    +			{
    +				graphComponent.getGraph().setCellStyles(
    +						mxConstants.STYLE_ROTATION, String.valueOf(deg),
    +						new Object[] { cell });
    +
    +				graphComponent.getGraphControl().repaint();
    +
    +				e.consume();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void reset()
    +	{
    +		if (handle.getParent() != null)
    +		{
    +			handle.getParent().remove(handle);
    +		}
    +
    +		mxRectangle dirty = null;
    +
    +		if (currentState != null && first != null)
    +		{
    +			dirty = mxUtils.getBoundingBox(currentState, currentAngle
    +					* mxConstants.DEG_PER_RAD);
    +			dirty.grow(1);
    +		}
    +
    +		currentState = null;
    +		currentAngle = 0;
    +		first = null;
    +
    +		if (dirty != null)
    +		{
    +			graphComponent.getGraphControl().repaint(dirty.getRectangle());
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (currentState != null && first != null)
    +		{
    +			Rectangle rect = currentState.getRectangle();
    +			double deg = currentAngle * mxConstants.DEG_PER_RAD;
    +
    +			if (deg != 0)
    +			{
    +				((Graphics2D) g).rotate(Math.toRadians(deg),
    +						currentState.getCenterX(), currentState.getCenterY());
    +			}
    +
    +			mxUtils.setAntiAlias((Graphics2D) g, true, false);
    +			g.drawRect(rect.x, rect.y, rect.width, rect.height);
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxRubberband.java b/java/src/com/mxgraph/swing/handler/mxRubberband.java
    new file mode 100644
    index 000000000..f1e763392
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxRubberband.java
    @@ -0,0 +1,344 @@
    +/**
    + * $Id: mxRubberband.java,v 1.14 2012-01-13 13:19:45 david Exp $
    + * Copyright (c) 2008-2012, JGraph Ltd
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Color;
    +import java.awt.Graphics;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.event.KeyAdapter;
    +import java.awt.event.KeyEvent;
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseListener;
    +import java.awt.event.MouseMotionListener;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.mxGraphComponent.mxGraphControl;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +
    +/**
    + * Implements a rubberband selection.
    + */
    +public class mxRubberband implements MouseListener, MouseMotionListener
    +{
    +
    +	/**
    +	 * Defines the border color for drawing the rubberband selection.
    +	 * Default is mxConstants.RUBBERBAND_BORDERCOLOR.
    +	 */
    +	protected Color borderColor = mxSwingConstants.RUBBERBAND_BORDERCOLOR;
    +
    +	/**
    +	 * Defines the color to be used for filling the rubberband selection.
    +	 * Default is mxConstants.RUBBERBAND_FILLCOLOR.
    +	 */
    +	protected Color fillColor = mxSwingConstants.RUBBERBAND_FILLCOLOR;
    +
    +	/**
    +	 * Reference to the enclosing graph container.
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Specifies if the rubberband is enabled.
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * Holds the point where the selection has started.
    +	 */
    +	protected transient Point first;
    +
    +	/**
    +	 * Holds the current rubberband bounds.
    +	 */
    +	protected transient Rectangle bounds;
    +
    +	/**
    +	 * Constructs a new rubberband selection for the given graph component.
    +	 * 
    +	 * @param graphComponent Component that contains the rubberband.
    +	 */
    +	public mxRubberband(final mxGraphComponent graphComponent)
    +	{
    +		this.graphComponent = graphComponent;
    +
    +		// Adds the required listeners
    +		graphComponent.getGraphControl().addMouseListener(this);
    +		graphComponent.getGraphControl().addMouseMotionListener(this);
    +
    +		graphComponent.addListener(mxEvent.AFTER_PAINT, new mxIEventListener()
    +		{
    +
    +			public void invoke(Object source, mxEventObject evt)
    +			{
    +				paintRubberband((Graphics) evt.getProperty("g"));
    +			}
    +
    +		});
    +
    +		// Handles escape keystrokes
    +		graphComponent.addKeyListener(new KeyAdapter()
    +		{
    +			/**
    +			 * 
    +			 * @param e
    +			 * @return
    +			 */
    +			public void keyPressed(KeyEvent e)
    +			{
    +				if (e.getKeyCode() == KeyEvent.VK_ESCAPE
    +						&& graphComponent.isEscapeEnabled())
    +				{
    +					reset();
    +				}
    +			}
    +		});
    +
    +		// LATER: Add destroy method for removing above listeners
    +	}
    +
    +	/**
    +	 * Returns the enabled state.
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * Sets the enabled state.
    +	 */
    +	public void setEnabled(boolean enabled)
    +	{
    +		this.enabled = enabled;
    +	}
    +
    +	/**
    +	 * Returns the border color.
    +	 */
    +	public Color getBorderColor()
    +	{
    +		return borderColor;
    +	}
    +
    +	/**
    +	 * Sets the border color.
    +	 */
    +	public void setBorderColor(Color value)
    +	{
    +		borderColor = value;
    +	}
    +
    +	/**
    +	 * Returns the fill color.
    +	 */
    +	public Color getFillColor()
    +	{
    +		return fillColor;
    +	}
    +
    +	/**
    +	 * Sets the fill color.
    +	 */
    +	public void setFillColor(Color value)
    +	{
    +		fillColor = value;
    +	}
    +
    +	/**
    +	 * Returns true if the given event should start the rubberband selection.
    +	 */
    +	public boolean isRubberbandTrigger(MouseEvent e)
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 * Starts the rubberband selection at the given point.
    +	 */
    +	public void start(Point point)
    +	{
    +		first = point;
    +		bounds = new Rectangle(first);
    +	}
    +
    +	/**
    +	 * Resets the rubberband selection without carrying out the selection.
    +	 */
    +	public void reset()
    +	{
    +		first = null;
    +
    +		if (bounds != null)
    +		{
    +			graphComponent.getGraphControl().repaint(bounds);
    +			bounds = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 * @param rect
    +	 * @param e
    +	 */
    +	public Object[] select(Rectangle rect, MouseEvent e)
    +	{
    +		return graphComponent.selectRegion(rect, e);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintRubberband(Graphics g)
    +	{
    +		if (first != null && bounds != null
    +				&& graphComponent.isSignificant(bounds.width, bounds.height))
    +		{
    +			Rectangle rect = new Rectangle(bounds);
    +			g.setColor(fillColor);
    +			mxUtils.fillClippedRect(g, rect.x, rect.y, rect.width, rect.height);
    +			g.setColor(borderColor);
    +			rect.width -= 1;
    +			rect.height -= 1;
    +			g.drawRect(rect.x, rect.y, rect.width, rect.height);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		if (!e.isConsumed() && isEnabled() && isRubberbandTrigger(e)
    +				&& !e.isPopupTrigger())
    +		{
    +			start(e.getPoint());
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		if (!e.isConsumed() && first != null)
    +		{
    +			Rectangle oldBounds = new Rectangle(bounds);
    +			bounds = new Rectangle(first);
    +			bounds.add(e.getPoint());
    +
    +			if (graphComponent.isSignificant(bounds.width, bounds.height))
    +			{
    +				mxGraphControl control = graphComponent.getGraphControl();
    +
    +				// Repaints exact difference between old and new bounds
    +				Rectangle union = new Rectangle(oldBounds);
    +				union.add(bounds);
    +
    +				if (bounds.x != oldBounds.x)
    +				{
    +					int maxleft = Math.max(bounds.x, oldBounds.x);
    +					Rectangle tmp = new Rectangle(union.x - 1, union.y, maxleft
    +							- union.x + 2, union.height);
    +					control.repaint(tmp);
    +				}
    +
    +				if (bounds.x + bounds.width != oldBounds.x + oldBounds.width)
    +				{
    +					int minright = Math.min(bounds.x + bounds.width,
    +							oldBounds.x + oldBounds.width);
    +					Rectangle tmp = new Rectangle(minright - 1, union.y,
    +							union.x + union.width - minright + 1, union.height);
    +					control.repaint(tmp);
    +				}
    +
    +				if (bounds.y != oldBounds.y)
    +				{
    +					int maxtop = Math.max(bounds.y, oldBounds.y);
    +					Rectangle tmp = new Rectangle(union.x, union.y - 1,
    +							union.width, maxtop - union.y + 2);
    +					control.repaint(tmp);
    +				}
    +
    +				if (bounds.y + bounds.height != oldBounds.y + oldBounds.height)
    +				{
    +					int minbottom = Math.min(bounds.y + bounds.height,
    +							oldBounds.y + oldBounds.height);
    +					Rectangle tmp = new Rectangle(union.x, minbottom - 1,
    +							union.width, union.y + union.height - minbottom + 1);
    +					control.repaint(tmp);
    +				}
    +
    +				if (!graphComponent.isToggleEvent(e)
    +						&& !graphComponent.getGraph().isSelectionEmpty())
    +				{
    +					graphComponent.getGraph().clearSelection();
    +				}
    +			}
    +
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		Rectangle rect = bounds;
    +		reset();
    +
    +		if (!e.isConsumed() && rect != null
    +				&& graphComponent.isSignificant(rect.width, rect.height))
    +		{
    +			select(rect, e);
    +			e.consume();
    +		}
    +
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseClicked(MouseEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseEntered(MouseEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseExited(MouseEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseMoved(MouseEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxSelectionCellsHandler.java b/java/src/com/mxgraph/swing/handler/mxSelectionCellsHandler.java
    new file mode 100644
    index 000000000..942ee464b
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxSelectionCellsHandler.java
    @@ -0,0 +1,483 @@
    +/**
    + * $Id: mxSelectionCellsHandler.java,v 1.11 2012-03-18 19:07:35 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + * 
    + * Known issue: Drag image size depends on the initial position and may sometimes
    + * not align with the grid when dragging. This is because the rounding of the width
    + * and height at the initial position may be different than that at the current
    + * position as the left and bottom side of the shape must align to the grid lines.
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Graphics;
    +import java.awt.Rectangle;
    +import java.awt.Stroke;
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseListener;
    +import java.awt.event.MouseMotionListener;
    +import java.beans.PropertyChangeEvent;
    +import java.beans.PropertyChangeListener;
    +import java.util.Iterator;
    +import java.util.LinkedHashMap;
    +import java.util.Map;
    +
    +import javax.swing.SwingUtilities;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +public class mxSelectionCellsHandler implements MouseListener,
    +		MouseMotionListener
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -882368002120921842L;
    +
    +	/**
    +	 * Defines the default value for maxHandlers. Default is 100.
    +	 */
    +	public static int DEFAULT_MAX_HANDLERS = 100;
    +
    +	/**
    +	 * Reference to the enclosing graph component.
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Specifies if this handler is enabled.
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * Specifies if this handler is visible.
    +	 */
    +	protected boolean visible = true;
    +
    +	/**
    +	 * Reference to the enclosing graph component.
    +	 */
    +	protected Rectangle bounds = null;
    +
    +	/**
    +	 * Defines the maximum number of handlers to paint individually.
    +	 * Default is DEFAULT_MAX_HANDLES.
    +	 */
    +	protected int maxHandlers = DEFAULT_MAX_HANDLERS;
    +
    +	/**
    +	 * Maps from cells to handlers in the order of the selection cells.
    +	 */
    +	protected transient Map<Object, mxCellHandler> handlers = new LinkedHashMap<Object, mxCellHandler>();
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxIEventListener refreshHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			if (graphComponent.isEnabled())
    +			{
    +				refresh();
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient PropertyChangeListener labelMoveHandler = new PropertyChangeListener()
    +	{
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
    +		 */
    +		public void propertyChange(PropertyChangeEvent evt)
    +		{
    +			if (evt.getPropertyName().equals("vertexLabelsMovable")
    +					|| evt.getPropertyName().equals("edgeLabelsMovable"))
    +			{
    +				refresh();
    +			}
    +		}
    +
    +	};
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 */
    +	public mxSelectionCellsHandler(final mxGraphComponent graphComponent)
    +	{
    +		this.graphComponent = graphComponent;
    +
    +		// Listens to all mouse events on the rendering control
    +		graphComponent.getGraphControl().addMouseListener(this);
    +		graphComponent.getGraphControl().addMouseMotionListener(this);
    +
    +		// Installs the graph listeners and keeps them in sync
    +		addGraphListeners(graphComponent.getGraph());
    +
    +		graphComponent.addPropertyChangeListener(new PropertyChangeListener()
    +		{
    +			public void propertyChange(PropertyChangeEvent evt)
    +			{
    +				if (evt.getPropertyName().equals("graph"))
    +				{
    +					removeGraphListeners((mxGraph) evt.getOldValue());
    +					addGraphListeners((mxGraph) evt.getNewValue());
    +				}
    +			}
    +		});
    +
    +		// Installs the paint handler
    +		graphComponent.addListener(mxEvent.PAINT, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				Graphics g = (Graphics) evt.getProperty("g");
    +				paintHandles(g);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Installs the listeners to update the handles after any changes.
    +	 */
    +	protected void addGraphListeners(mxGraph graph)
    +	{
    +		// LATER: Install change listener for graph model, selection model, view
    +		if (graph != null)
    +		{
    +			graph.getSelectionModel().addListener(mxEvent.CHANGE,
    +					refreshHandler);
    +			graph.getModel().addListener(mxEvent.CHANGE, refreshHandler);
    +			graph.getView().addListener(mxEvent.SCALE, refreshHandler);
    +			graph.getView().addListener(mxEvent.TRANSLATE, refreshHandler);
    +			graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,
    +					refreshHandler);
    +			graph.getView().addListener(mxEvent.DOWN, refreshHandler);
    +			graph.getView().addListener(mxEvent.UP, refreshHandler);
    +
    +			// Refreshes the handles if moveVertexLabels or moveEdgeLabels changes
    +			graph.addPropertyChangeListener(labelMoveHandler);
    +		}
    +	}
    +
    +	/**
    +	 * Removes all installed listeners.
    +	 */
    +	protected void removeGraphListeners(mxGraph graph)
    +	{
    +		if (graph != null)
    +		{
    +			graph.getSelectionModel().removeListener(refreshHandler,
    +					mxEvent.CHANGE);
    +			graph.getModel().removeListener(refreshHandler, mxEvent.CHANGE);
    +			graph.getView().removeListener(refreshHandler, mxEvent.SCALE);
    +			graph.getView().removeListener(refreshHandler, mxEvent.TRANSLATE);
    +			graph.getView().removeListener(refreshHandler,
    +					mxEvent.SCALE_AND_TRANSLATE);
    +			graph.getView().removeListener(refreshHandler, mxEvent.DOWN);
    +			graph.getView().removeListener(refreshHandler, mxEvent.UP);
    +
    +			// Refreshes the handles if moveVertexLabels or moveEdgeLabels changes
    +			graph.removePropertyChangeListener(labelMoveHandler);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphComponent getGraphComponent()
    +	{
    +		return graphComponent;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		enabled = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isVisible()
    +	{
    +		return visible;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setVisible(boolean value)
    +	{
    +		visible = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getMaxHandlers()
    +	{
    +		return maxHandlers;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setMaxHandlers(int value)
    +	{
    +		maxHandlers = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCellHandler getHandler(Object cell)
    +	{
    +		return handlers.get(cell);
    +	}
    +
    +	/**
    +	 * Dispatches the mousepressed event to the subhandles. This is
    +	 * called from the connection handler as subhandles have precedence
    +	 * over the connection handler.
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled()
    +				&& !graphComponent.isForceMarqueeEvent(e) && isEnabled())
    +		{
    +			Iterator<mxCellHandler> it = handlers.values().iterator();
    +
    +			while (it.hasNext() && !e.isConsumed())
    +			{
    +				it.next().mousePressed(e);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseMoved(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled())
    +		{
    +			Iterator<mxCellHandler> it = handlers.values().iterator();
    +
    +			while (it.hasNext() && !e.isConsumed())
    +			{
    +				it.next().mouseMoved(e);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled())
    +		{
    +			Iterator<mxCellHandler> it = handlers.values().iterator();
    +
    +			while (it.hasNext() && !e.isConsumed())
    +			{
    +				it.next().mouseDragged(e);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		if (graphComponent.isEnabled() && isEnabled())
    +		{
    +			Iterator<mxCellHandler> it = handlers.values().iterator();
    +
    +			while (it.hasNext() && !e.isConsumed())
    +			{
    +				it.next().mouseReleased(e);
    +			}
    +		}
    +
    +		reset();
    +	}
    +
    +	/**
    +	 * Redirects the tooltip handling of the JComponent to the graph
    +	 * component, which in turn may use getHandleToolTipText in this class to
    +	 * find a tooltip associated with a handle.
    +	 */
    +	public String getToolTipText(MouseEvent e)
    +	{
    +		MouseEvent tmp = SwingUtilities.convertMouseEvent(e.getComponent(), e,
    +				graphComponent.getGraphControl());
    +		Iterator<mxCellHandler> it = handlers.values().iterator();
    +		String tip = null;
    +
    +		while (it.hasNext() && tip == null)
    +		{
    +			tip = it.next().getToolTipText(tmp);
    +		}
    +
    +		return tip;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void reset()
    +	{
    +		Iterator<mxCellHandler> it = handlers.values().iterator();
    +
    +		while (it.hasNext())
    +		{
    +			it.next().reset();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void refresh()
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +
    +		// Creates a new map for the handlers and tries to
    +		// to reuse existing handlers from the old map
    +		Map<Object, mxCellHandler> oldHandlers = handlers;
    +		handlers = new LinkedHashMap<Object, mxCellHandler>();
    +
    +		// Creates handles for all selection cells
    +		Object[] tmp = graph.getSelectionCells();
    +		boolean handlesVisible = tmp.length <= getMaxHandlers();
    +		Rectangle handleBounds = null;
    +
    +		for (int i = 0; i < tmp.length; i++)
    +		{
    +			mxCellState state = graph.getView().getState(tmp[i]);
    +
    +			if (state != null && state.getCell() != graph.getView().getCurrentRoot())
    +			{
    +				mxCellHandler handler = oldHandlers.get(tmp[i]);
    +
    +				if (handler != null)
    +				{
    +					handler.refresh(state);
    +				}
    +				else
    +				{
    +					handler = graphComponent.createHandler(state);
    +				}
    +
    +				if (handler != null)
    +				{
    +					handler.setHandlesVisible(handlesVisible);
    +					handlers.put(tmp[i], handler);
    +					Rectangle bounds = handler.getBounds();
    +					Stroke stroke = handler.getSelectionStroke();
    +
    +					if (stroke != null)
    +					{
    +						bounds = stroke.createStrokedShape(bounds).getBounds();
    +					}
    +
    +					if (handleBounds == null)
    +					{
    +						handleBounds = bounds;
    +					}
    +					else
    +					{
    +						handleBounds.add(bounds);
    +					}
    +				}
    +			}
    +		}
    +
    +		Rectangle dirty = bounds;
    +
    +		if (handleBounds != null)
    +		{
    +			if (dirty != null)
    +			{
    +				dirty.add(handleBounds);
    +			}
    +			else
    +			{
    +				dirty = handleBounds;
    +			}
    +		}
    +
    +		if (dirty != null)
    +		{
    +			graphComponent.getGraphControl().repaint(dirty);
    +		}
    +
    +		// Stores current bounds for later use
    +		bounds = handleBounds;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintHandles(Graphics g)
    +	{
    +		Iterator<mxCellHandler> it = handlers.values().iterator();
    +
    +		while (it.hasNext())
    +		{
    +			it.next().paint(g);
    +		}
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseClicked(MouseEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseEntered(MouseEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
    +	 */
    +	public void mouseExited(MouseEvent arg0)
    +	{
    +		// empty
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/mxVertexHandler.java b/java/src/com/mxgraph/swing/handler/mxVertexHandler.java
    new file mode 100644
    index 000000000..365d36aa8
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/mxVertexHandler.java
    @@ -0,0 +1,427 @@
    +/**
    + * $Id: mxVertexHandler.java,v 1.15 2012-01-13 13:20:06 david Exp $
    + * Copyright (c) 2008-2012, JGraph Ltd
    + */
    +package com.mxgraph.swing.handler;
    +
    +import java.awt.Color;
    +import java.awt.Cursor;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Rectangle;
    +import java.awt.Stroke;
    +import java.awt.event.MouseEvent;
    +
    +import javax.swing.JComponent;
    +import javax.swing.JPanel;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.util.mxSwingConstants;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * 
    + */
    +public class mxVertexHandler extends mxCellHandler
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public static Cursor[] CURSORS = new Cursor[] {
    +			new Cursor(Cursor.NW_RESIZE_CURSOR),
    +			new Cursor(Cursor.N_RESIZE_CURSOR),
    +			new Cursor(Cursor.NE_RESIZE_CURSOR),
    +			new Cursor(Cursor.W_RESIZE_CURSOR),
    +			new Cursor(Cursor.E_RESIZE_CURSOR),
    +			new Cursor(Cursor.SW_RESIZE_CURSOR),
    +			new Cursor(Cursor.S_RESIZE_CURSOR),
    +			new Cursor(Cursor.SE_RESIZE_CURSOR), new Cursor(Cursor.MOVE_CURSOR) };
    +
    +	/**
    +	 * Workaround for alt-key-state not correct in mouseReleased.
    +	 */
    +	protected transient boolean gridEnabledEvent = false;
    +
    +	/**
    +	 * Workaround for shift-key-state not correct in mouseReleased.
    +	 */
    +	protected transient boolean constrainedEvent = false;
    +
    +	/**
    +	 * 
    +	 * @param graphComponent
    +	 * @param state
    +	 */
    +	public mxVertexHandler(mxGraphComponent graphComponent, mxCellState state)
    +	{
    +		super(graphComponent, state);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Rectangle[] createHandles()
    +	{
    +		Rectangle[] h = null;
    +
    +		if (graphComponent.getGraph().isCellResizable(getState().getCell()))
    +		{
    +			Rectangle bounds = getState().getRectangle();
    +			int half = mxConstants.HANDLE_SIZE / 2;
    +
    +			int left = bounds.x - half;
    +			int top = bounds.y - half;
    +
    +			int w2 = bounds.x + (bounds.width / 2) - half;
    +			int h2 = bounds.y + (bounds.height / 2) - half;
    +
    +			int right = bounds.x + bounds.width - half;
    +			int bottom = bounds.y + bounds.height - half;
    +
    +			h = new Rectangle[9];
    +
    +			int s = mxConstants.HANDLE_SIZE;
    +			h[0] = new Rectangle(left, top, s, s);
    +			h[1] = new Rectangle(w2, top, s, s);
    +			h[2] = new Rectangle(right, top, s, s);
    +			h[3] = new Rectangle(left, h2, s, s);
    +			h[4] = new Rectangle(right, h2, s, s);
    +			h[5] = new Rectangle(left, bottom, s, s);
    +			h[6] = new Rectangle(w2, bottom, s, s);
    +			h[7] = new Rectangle(right, bottom, s, s);
    +		}
    +		else
    +		{
    +			h = new Rectangle[1];
    +		}
    +
    +		int s = mxConstants.LABEL_HANDLE_SIZE;
    +		mxRectangle bounds = state.getLabelBounds();
    +		h[h.length - 1] = new Rectangle((int) (bounds.getX()
    +				+ bounds.getWidth() / 2 - s), (int) (bounds.getY()
    +				+ bounds.getHeight() / 2 - s), 2 * s, 2 * s);
    +
    +		return h;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected JComponent createPreview()
    +	{
    +		JPanel preview = new JPanel();
    +		preview.setBorder(mxSwingConstants.PREVIEW_BORDER);
    +		preview.setOpaque(false);
    +		preview.setVisible(false);
    +
    +		return preview;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		if (!e.isConsumed() && first != null)
    +		{
    +			gridEnabledEvent = graphComponent.isGridEnabledEvent(e);
    +			constrainedEvent = graphComponent.isConstrainedEvent(e);
    +
    +			double dx = e.getX() - first.x;
    +			double dy = e.getY() - first.y;
    +
    +			if (isLabel(index))
    +			{
    +				mxPoint pt = new mxPoint(e.getPoint());
    +
    +				if (gridEnabledEvent)
    +				{
    +					pt = graphComponent.snapScaledPoint(pt);
    +				}
    +
    +				int idx = (int) Math.round(pt.getX() - first.x);
    +				int idy = (int) Math.round(pt.getY() - first.y);
    +
    +				if (constrainedEvent)
    +				{
    +					if (Math.abs(idx) > Math.abs(idy))
    +					{
    +						idy = 0;
    +					}
    +					else
    +					{
    +						idx = 0;
    +					}
    +				}
    +
    +				Rectangle rect = state.getLabelBounds().getRectangle();
    +				rect.translate(idx, idy);
    +				preview.setBounds(rect);
    +			}
    +			else
    +			{
    +				mxGraph graph = graphComponent.getGraph();
    +				double scale = graph.getView().getScale();
    +
    +				if (gridEnabledEvent)
    +				{
    +					dx = graph.snap(dx / scale) * scale;
    +					dy = graph.snap(dy / scale) * scale;
    +				}
    +
    +				mxRectangle bounds = union(getState(), dx, dy, index);
    +				bounds.setWidth(bounds.getWidth() + 1);
    +				bounds.setHeight(bounds.getHeight() + 1);
    +				preview.setBounds(bounds.getRectangle());
    +			}
    +
    +			if (!preview.isVisible() && graphComponent.isSignificant(dx, dy))
    +			{
    +				preview.setVisible(true);
    +			}
    +
    +			e.consume();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		if (!e.isConsumed() && first != null)
    +		{
    +			if (preview != null && preview.isVisible())
    +			{
    +				if (isLabel(index))
    +				{
    +					moveLabel(e);
    +				}
    +				else
    +				{
    +					resizeCell(e);
    +				}
    +			}
    +
    +			e.consume();
    +		}
    +
    +		super.mouseReleased(e);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void moveLabel(MouseEvent e)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxGeometry geometry = graph.getModel().getGeometry(state.getCell());
    +
    +		if (geometry != null)
    +		{
    +			double scale = graph.getView().getScale();
    +			mxPoint pt = new mxPoint(e.getPoint());
    +
    +			if (gridEnabledEvent)
    +			{
    +				pt = graphComponent.snapScaledPoint(pt);
    +			}
    +
    +			double dx = (pt.getX() - first.x) / scale;
    +			double dy = (pt.getY() - first.y) / scale;
    +
    +			if (constrainedEvent)
    +			{
    +				if (Math.abs(dx) > Math.abs(dy))
    +				{
    +					dy = 0;
    +				}
    +				else
    +				{
    +					dx = 0;
    +				}
    +			}
    +
    +			mxPoint offset = geometry.getOffset();
    +
    +			if (offset == null)
    +			{
    +				offset = new mxPoint();
    +			}
    +
    +			dx += offset.getX();
    +			dy += offset.getY();
    +
    +			geometry = (mxGeometry) geometry.clone();
    +			geometry.setOffset(new mxPoint(Math.round(dx), Math.round(dy)));
    +			graph.getModel().setGeometry(state.getCell(), geometry);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 * @param e
    +	 */
    +	protected void resizeCell(MouseEvent e)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		double scale = graph.getView().getScale();
    +
    +		Object cell = state.getCell();
    +		mxGeometry geometry = graph.getModel().getGeometry(cell);
    +
    +		if (geometry != null)
    +		{
    +			double dx = (e.getX() - first.x) / scale;
    +			double dy = (e.getY() - first.y) / scale;
    +
    +			if (isLabel(index))
    +			{
    +				geometry = (mxGeometry) geometry.clone();
    +
    +				if (geometry.getOffset() != null)
    +				{
    +					dx += geometry.getOffset().getX();
    +					dy += geometry.getOffset().getY();
    +				}
    +
    +				if (gridEnabledEvent)
    +				{
    +					dx = graph.snap(dx);
    +					dy = graph.snap(dy);
    +				}
    +
    +				geometry.setOffset(new mxPoint(dx, dy));
    +				graph.getModel().setGeometry(cell, geometry);
    +			}
    +			else
    +			{
    +				mxRectangle bounds = union(geometry, dx, dy, index);
    +				Rectangle rect = bounds.getRectangle();
    +
    +				// Snaps new bounds to grid (unscaled)
    +				if (gridEnabledEvent)
    +				{
    +					int x = (int) graph.snap(rect.x);
    +					int y = (int) graph.snap(rect.y);
    +					rect.width = (int) graph.snap(rect.width - x + rect.x);
    +					rect.height = (int) graph.snap(rect.height - y + rect.y);
    +					rect.x = x;
    +					rect.y = y;
    +				}
    +
    +				graph.resizeCell(cell, new mxRectangle(rect));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Cursor getCursor(MouseEvent e, int index)
    +	{
    +		if (index >= 0 && index <= CURSORS.length)
    +		{
    +			return CURSORS[index];
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param bounds
    +	 * @param dx
    +	 * @param dy
    +	 * @param index
    +	 */
    +	protected mxRectangle union(mxRectangle bounds, double dx, double dy,
    +			int index)
    +	{
    +		double left = bounds.getX();
    +		double right = left + bounds.getWidth();
    +		double top = bounds.getY();
    +		double bottom = top + bounds.getHeight();
    +
    +		if (index > 4 /* Bottom Row */)
    +		{
    +			bottom = bottom + dy;
    +		}
    +		else if (index < 3 /* Top Row */)
    +		{
    +			top = top + dy;
    +		}
    +
    +		if (index == 0 || index == 3 || index == 5 /* Left */)
    +		{
    +			left += dx;
    +		}
    +		else if (index == 2 || index == 4 || index == 7 /* Right */)
    +		{
    +			right += dx;
    +		}
    +
    +		double width = right - left;
    +		double height = bottom - top;
    +
    +		// Flips over left side
    +		if (width < 0)
    +		{
    +			left += width;
    +			width = Math.abs(width);
    +		}
    +
    +		// Flips over top side
    +		if (height < 0)
    +		{
    +			top += height;
    +			height = Math.abs(height);
    +		}
    +
    +		return new mxRectangle(left, top, width, height);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Color getSelectionColor()
    +	{
    +		return mxSwingConstants.VERTEX_SELECTION_COLOR;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Stroke getSelectionStroke()
    +	{
    +		return mxSwingConstants.VERTEX_SELECTION_STROKE;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		Rectangle bounds = getState().getRectangle();
    +
    +		if (g.hitClip(bounds.x, bounds.y, bounds.width, bounds.height))
    +		{
    +			Graphics2D g2 = (Graphics2D) g;
    +
    +			Stroke stroke = g2.getStroke();
    +			g2.setStroke(getSelectionStroke());
    +			g.setColor(getSelectionColor());
    +			g.drawRect(bounds.x, bounds.y, bounds.width, bounds.height);
    +			g2.setStroke(stroke);
    +		}
    +
    +		super.paint(g);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/handler/package.html b/java/src/com/mxgraph/swing/handler/package.html
    new file mode 100644
    index 000000000..c72494a5d
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/handler/package.html
    @@ -0,0 +1,8 @@
    +<HTML>
    +<BODY>
    +  This package contains all classes required for mouse event handling in
    +  JFC/Swing. The classes implement rubberband selection, mouse tracking,
    +  creating connections, handling vertices and edges, moving cells, panning
    +  and keystroke handling.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/swing/images/collapsed.gif b/java/src/com/mxgraph/swing/images/collapsed.gif
    new file mode 100644
    index 000000000..0276444a6
    Binary files /dev/null and b/java/src/com/mxgraph/swing/images/collapsed.gif differ
    diff --git a/java/src/com/mxgraph/swing/images/expanded.gif b/java/src/com/mxgraph/swing/images/expanded.gif
    new file mode 100644
    index 000000000..3767b0baf
    Binary files /dev/null and b/java/src/com/mxgraph/swing/images/expanded.gif differ
    diff --git a/java/src/com/mxgraph/swing/images/rotate.gif b/java/src/com/mxgraph/swing/images/rotate.gif
    new file mode 100644
    index 000000000..f9f041b91
    Binary files /dev/null and b/java/src/com/mxgraph/swing/images/rotate.gif differ
    diff --git a/java/src/com/mxgraph/swing/images/warning.gif b/java/src/com/mxgraph/swing/images/warning.gif
    new file mode 100644
    index 000000000..705235f95
    Binary files /dev/null and b/java/src/com/mxgraph/swing/images/warning.gif differ
    diff --git a/java/src/com/mxgraph/swing/mxGraphComponent.java b/java/src/com/mxgraph/swing/mxGraphComponent.java
    new file mode 100644
    index 000000000..391efa703
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/mxGraphComponent.java
    @@ -0,0 +1,4578 @@
    +/**
    + * $Id: mxGraphComponent.java,v 1.144 2012-03-05 08:57:38 gaudenz Exp $
    + * Copyright (c) 2009-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.swing;
    +
    +import java.awt.BasicStroke;
    +import java.awt.Color;
    +import java.awt.Component;
    +import java.awt.Cursor;
    +import java.awt.Dimension;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.RenderingHints;
    +import java.awt.Stroke;
    +import java.awt.event.ComponentAdapter;
    +import java.awt.event.ComponentEvent;
    +import java.awt.event.KeyAdapter;
    +import java.awt.event.KeyEvent;
    +import java.awt.event.MouseAdapter;
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseListener;
    +import java.awt.event.MouseMotionListener;
    +import java.awt.image.BufferedImage;
    +import java.awt.print.PageFormat;
    +import java.awt.print.Printable;
    +import java.beans.PropertyChangeEvent;
    +import java.beans.PropertyChangeListener;
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.Collection;
    +import java.util.EventObject;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.Map;
    +
    +import javax.swing.BorderFactory;
    +import javax.swing.BoundedRangeModel;
    +import javax.swing.ImageIcon;
    +import javax.swing.JComponent;
    +import javax.swing.JPanel;
    +import javax.swing.JScrollBar;
    +import javax.swing.JScrollPane;
    +import javax.swing.RepaintManager;
    +import javax.swing.SwingUtilities;
    +import javax.swing.ToolTipManager;
    +import javax.swing.TransferHandler;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.model.mxGraphModel;
    +import com.mxgraph.model.mxGraphModel.Filter;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.swing.handler.mxCellHandler;
    +import com.mxgraph.swing.handler.mxConnectionHandler;
    +import com.mxgraph.swing.handler.mxEdgeHandler;
    +import com.mxgraph.swing.handler.mxElbowEdgeHandler;
    +import com.mxgraph.swing.handler.mxGraphHandler;
    +import com.mxgraph.swing.handler.mxGraphTransferHandler;
    +import com.mxgraph.swing.handler.mxPanningHandler;
    +import com.mxgraph.swing.handler.mxSelectionCellsHandler;
    +import com.mxgraph.swing.handler.mxVertexHandler;
    +import com.mxgraph.swing.util.mxCellOverlay;
    +import com.mxgraph.swing.util.mxICellOverlay;
    +import com.mxgraph.swing.view.mxCellEditor;
    +import com.mxgraph.swing.view.mxICellEditor;
    +import com.mxgraph.swing.view.mxInteractiveCanvas;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxEdgeStyle;
    +import com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +import com.mxgraph.view.mxTemporaryCellStates;
    +
    +/**
    + * For setting the preferred size of the viewport for scrolling, use
    + * mxGraph.setMinimumGraphSize. This component is a combined scrollpane with an
    + * inner mxGraphControl. The control contains the actual graph display.
    + * 
    + * To set the background color of the graph, use the following code:
    + * 
    + * <pre>
    + * graphComponent.getViewport().setOpaque(true);
    + * graphComponent.getViewport().setBackground(newColor);
    + * </pre>
    + * 
    + * This class fires the following events:
    + * 
    + * mxEvent.START_EDITING fires before starting the in-place editor for an
    + * existing cell in startEditingAtCell. The <code>cell</code> property contains
    + * the cell that is being edit and the <code>event</code> property contains
    + * optional EventObject which was passed to startEditingAtCell.
    + * 
    + * mxEvent.LABEL_CHANGED fires between begin- and endUpdate after the call to
    + * mxGraph.cellLabelChanged in labelChanged. The <code>cell</code> property
    + * contains the cell, the <code>value</code> property contains the new value for
    + * the cell and the optional <code>event</code> property contains the
    + * EventObject that started the edit.
    + * 
    + * mxEvent.ADD_OVERLAY and mxEvent.REMOVE_OVERLAY fire afer an overlay was added
    + * or removed using add-/removeOverlay. The <code>cell</code> property contains
    + * the cell for which the overlay was added or removed and the
    + * <code>overlay</code> property contain the mxOverlay.
    + * 
    + * mxEvent.BEFORE_PAINT and mxEvent.AFTER_PAINT fire before and after the paint
    + * method is called on the component. The <code>g</code> property contains the
    + * graphics context which is used for painting.
    + */
    +public class mxGraphComponent extends JScrollPane implements Printable
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -30203858391633447L;
    +
    +	/**
    +	 * 
    +	 */
    +	public static final int GRID_STYLE_DOT = 0;
    +
    +	/**
    +	 * 
    +	 */
    +	public static final int GRID_STYLE_CROSS = 1;
    +
    +	/**
    +	 * 
    +	 */
    +	public static final int GRID_STYLE_LINE = 2;
    +
    +	/**
    +	 * 
    +	 */
    +	public static final int GRID_STYLE_DASHED = 3;
    +
    +	/**
    +	 * 
    +	 */
    +	public static final int ZOOM_POLICY_NONE = 0;
    +
    +	/**
    +	 * 
    +	 */
    +	public static final int ZOOM_POLICY_PAGE = 1;
    +
    +	/**
    +	 * 
    +	 */
    +	public static final int ZOOM_POLICY_WIDTH = 2;
    +
    +	/**
    +	 * 
    +	 */
    +	public static ImageIcon DEFAULT_EXPANDED_ICON = null;
    +
    +	/**
    +	 * 
    +	 */
    +	public static ImageIcon DEFAULT_COLLAPSED_ICON = null;
    +
    +	/**
    +	 * 
    +	 */
    +	public static ImageIcon DEFAULT_WARNING_ICON = null;
    +
    +	/**
    +	 * Specifies the default page scale. Default is 1.4
    +	 */
    +	public static final double DEFAULT_PAGESCALE = 1.4;
    +
    +	/**
    +	 * Loads the collapse and expand icons.
    +	 */
    +	static
    +	{
    +		DEFAULT_EXPANDED_ICON = new ImageIcon(
    +				mxGraphComponent.class
    +						.getResource("/com/mxgraph/swing/images/expanded.gif"));
    +		DEFAULT_COLLAPSED_ICON = new ImageIcon(
    +				mxGraphComponent.class
    +						.getResource("/com/mxgraph/swing/images/collapsed.gif"));
    +		DEFAULT_WARNING_ICON = new ImageIcon(
    +				mxGraphComponent.class
    +						.getResource("/com/mxgraph/swing/images/warning.gif"));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraph graph;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphControl graphControl;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxEventSource eventSource = new mxEventSource(this);
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxICellEditor cellEditor;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxConnectionHandler connectionHandler;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxPanningHandler panningHandler;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxSelectionCellsHandler selectionCellsHandler;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphHandler graphHandler;
    +
    +	/**
    +	 * The transparency of previewed cells from 0.0. to 0.1. 0.0 indicates
    +	 * transparent, 1.0 indicates opaque. Default is 1.
    +	 */
    +	protected float previewAlpha = 0.5f;
    +
    +	/**
    +	 * Specifies the <mxImage> to be returned by <getBackgroundImage>. Default
    +	 * is null.
    +	 */
    +	protected ImageIcon backgroundImage;
    +
    +	/**
    +	 * Background page format.
    +	 */
    +	protected PageFormat pageFormat = new PageFormat();
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxInteractiveCanvas canvas;
    +
    +	/**
    +	 * 
    +	 */
    +	protected BufferedImage tripleBuffer;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Graphics2D tripleBufferGraphics;
    +
    +	/**
    +	 * Defines the scaling for the background page metrics. Default is
    +	 * {@link #DEFAULT_PAGESCALE}.
    +	 */
    +	protected double pageScale = DEFAULT_PAGESCALE;
    +
    +	/**
    +	 * Specifies if the background page should be visible. Default is false.
    +	 */
    +	protected boolean pageVisible = false;
    +
    +	/**
    +	 * If the pageFormat should be used to determine the minimal graph bounds
    +	 * even if the page is not visible (see pageVisible). Default is false.
    +	 */
    +	protected boolean preferPageSize = false;
    +
    +	/**
    +	 * Specifies if a dashed line should be drawn between multiple pages.
    +	 */
    +	protected boolean pageBreaksVisible = true;
    +
    +	/**
    +	 * Specifies the color of page breaks
    +	 */
    +	protected Color pageBreakColor = Color.darkGray;
    +
    +	/**
    +	 * Specifies the number of pages in the horizontal direction.
    +	 */
    +	protected int horizontalPageCount = 1;
    +
    +	/**
    +	 * Specifies the number of pages in the vertical direction.
    +	 */
    +	protected int verticalPageCount = 1;
    +
    +	/**
    +	 * Specifies if the background page should be centered by automatically
    +	 * setting the translate in the view. Default is true. This does only apply
    +	 * if pageVisible is true.
    +	 */
    +	protected boolean centerPage = true;
    +
    +	/**
    +	 * Color of the background area if layout view.
    +	 */
    +	protected Color pageBackgroundColor = new Color(144, 153, 174);
    +
    +	/**
    +	 * 
    +	 */
    +	protected Color pageShadowColor = new Color(110, 120, 140);
    +
    +	/**
    +	 * 
    +	 */
    +	protected Color pageBorderColor = Color.black;
    +
    +	/**
    +	 * Specifies if the grid is visible. Default is false.
    +	 */
    +	protected boolean gridVisible = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Color gridColor = new Color(192, 192, 192);
    +
    +	/**
    +	 * Whether or not to scroll the scrollable container the graph exists in if
    +	 * a suitable handler is active and the graph bounds already exist extended
    +	 * in the direction of mouse travel.
    +	 */
    +	protected boolean autoScroll = true;
    +
    +	/**
    +	 * Whether to extend the graph bounds and scroll towards the limit of those
    +	 * new bounds in the direction of mouse travel if a handler is active while
    +	 * the mouse leaves the container that the graph exists in.
    +	 */
    +	protected boolean autoExtend = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean dragEnabled = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean importEnabled = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean exportEnabled = true;
    +
    +	/**
    +	 * Specifies if folding (collapse and expand via an image icon in the graph
    +	 * should be enabled). Default is true.
    +	 */
    +	protected boolean foldingEnabled = true;
    +
    +	/**
    +	 * Specifies the tolerance for mouse clicks. Default is 4.
    +	 */
    +	protected int tolerance = 4;
    +
    +	/**
    +	 * Specifies if swimlanes are selected when the mouse is released over the
    +	 * swimlanes content area. Default is true.
    +	 */
    +	protected boolean swimlaneSelectionEnabled = true;
    +
    +	/**
    +	 * Specifies if the content area should be transparent to events. Default is
    +	 * true.
    +	 */
    +	protected boolean transparentSwimlaneContent = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected int gridStyle = GRID_STYLE_DOT;
    +
    +	/**
    +	 * 
    +	 */
    +	protected ImageIcon expandedIcon = DEFAULT_EXPANDED_ICON;
    +
    +	/**
    +	 * 
    +	 */
    +	protected ImageIcon collapsedIcon = DEFAULT_COLLAPSED_ICON;
    +
    +	/**
    +	 * 
    +	 */
    +	protected ImageIcon warningIcon = DEFAULT_WARNING_ICON;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean antiAlias = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean textAntiAlias = true;
    +
    +	/**
    +	 * Specifies <escape> should be invoked when the escape key is pressed.
    +	 * Default is true.
    +	 */
    +	protected boolean escapeEnabled = true;
    +
    +	/**
    +	 * If true, when editing is to be stopped by way of selection changing, data
    +	 * in diagram changing or other means stopCellEditing is invoked, and
    +	 * changes are saved. This is implemented in a mouse listener in this class.
    +	 * Default is true.
    +	 */
    +	protected boolean invokesStopCellEditing = true;
    +
    +	/**
    +	 * If true, pressing the enter key without pressing control will stop
    +	 * editing and accept the new value. This is used in <mxKeyHandler> to stop
    +	 * cell editing. Default is false.
    +	 */
    +	protected boolean enterStopsCellEditing = false;
    +
    +	/**
    +	 * Specifies the zoom policy. Default is ZOOM_POLICY_PAGE. The zoom policy
    +	 * does only apply if pageVisible is true.
    +	 */
    +	protected int zoomPolicy = ZOOM_POLICY_PAGE;
    +
    +	/**
    +	 * Internal flag to not reset zoomPolicy when zoom was set automatically.
    +	 */
    +	private transient boolean zooming = false;
    +
    +	/**
    +	 * Specifies the factor used for zoomIn and zoomOut. Default is 1.2 (120%).
    +	 */
    +	protected double zoomFactor = 1.2;
    +
    +	/**
    +	 * Specifies if the viewport should automatically contain the selection
    +	 * cells after a zoom operation. Default is false.
    +	 */
    +	protected boolean keepSelectionVisibleOnZoom = false;
    +
    +	/**
    +	 * Specifies if the zoom operations should go into the center of the actual
    +	 * diagram rather than going from top, left. Default is true.
    +	 */
    +	protected boolean centerZoom = true;
    +
    +	/**
    +	 * Specifies if an image buffer should be used for painting the component.
    +	 * Default is false.
    +	 */
    +	protected boolean tripleBuffered = false;
    +
    +	/**
    +	 * Used for debugging the dirty region.
    +	 */
    +	public boolean showDirtyRectangle = false;
    +
    +	/**
    +	 * Maps from cells to lists of heavyweights.
    +	 */
    +	protected Hashtable<Object, Component[]> components = new Hashtable<Object, Component[]>();
    +
    +	/**
    +	 * Maps from cells to lists of overlays.
    +	 */
    +	protected Hashtable<Object, mxICellOverlay[]> overlays = new Hashtable<Object, mxICellOverlay[]>();
    +
    +	/**
    +	 * Boolean flag to disable centering after the first time.
    +	 */
    +	private transient boolean centerOnResize = true;
    +
    +	/**
    +	 * Updates the heavyweight component structure after any changes.
    +	 */
    +	protected mxIEventListener updateHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object sender, mxEventObject evt)
    +		{
    +			updateComponents();
    +			graphControl.updatePreferredSize();
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIEventListener repaintHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			mxRectangle dirty = (mxRectangle) evt.getProperty("region");
    +			Rectangle rect = (dirty != null) ? dirty.getRectangle() : null;
    +
    +			if (rect != null)
    +			{
    +				rect.grow(1, 1);
    +			}
    +
    +			// Updates the triple buffer
    +			repaintTripleBuffer(rect);
    +
    +			// Repaints the control using the optional triple buffer
    +			graphControl.repaint((rect != null) ? rect : getViewport()
    +					.getViewRect());
    +
    +			// ----------------------------------------------------------
    +			// Shows the dirty region as a red rectangle (for debugging)
    +			JPanel panel = (JPanel) getClientProperty("dirty");
    +
    +			if (showDirtyRectangle)
    +			{
    +				if (panel == null)
    +				{
    +					panel = new JPanel();
    +					panel.setOpaque(false);
    +					panel.setBorder(BorderFactory.createLineBorder(Color.RED));
    +
    +					putClientProperty("dirty", panel);
    +					graphControl.add(panel);
    +				}
    +
    +				if (dirty != null)
    +				{
    +					panel.setBounds(dirty.getRectangle());
    +				}
    +
    +				panel.setVisible(dirty != null);
    +			}
    +			else if (panel != null && panel.getParent() != null)
    +			{
    +				panel.getParent().remove(panel);
    +				putClientProperty("dirty", null);
    +				repaint();
    +			}
    +			// ----------------------------------------------------------
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected PropertyChangeListener viewChangeHandler = new PropertyChangeListener()
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void propertyChange(PropertyChangeEvent evt)
    +		{
    +			if (evt.getPropertyName().equals("view"))
    +			{
    +				mxGraphView oldView = (mxGraphView) evt.getOldValue();
    +				mxGraphView newView = (mxGraphView) evt.getNewValue();
    +
    +				if (oldView != null)
    +				{
    +					oldView.removeListener(updateHandler);
    +				}
    +
    +				if (newView != null)
    +				{
    +					newView.addListener(mxEvent.SCALE, updateHandler);
    +					newView.addListener(mxEvent.TRANSLATE, updateHandler);
    +					newView.addListener(mxEvent.SCALE_AND_TRANSLATE,
    +							updateHandler);
    +					newView.addListener(mxEvent.UP, updateHandler);
    +					newView.addListener(mxEvent.DOWN, updateHandler);
    +				}
    +			}
    +			else if (evt.getPropertyName().equals("model"))
    +			{
    +				mxGraphModel oldModel = (mxGraphModel) evt.getOldValue();
    +				mxGraphModel newModel = (mxGraphModel) evt.getNewValue();
    +
    +				if (oldModel != null)
    +				{
    +					oldModel.removeListener(updateHandler);
    +				}
    +
    +				if (newModel != null)
    +				{
    +					newModel.addListener(mxEvent.CHANGE, updateHandler);
    +				}
    +			}
    +		}
    +
    +	};
    +
    +	/**
    +	 * Resets the zoom policy if the scale is changed manually.
    +	 */
    +	protected mxIEventListener scaleHandler = new mxIEventListener()
    +	{
    +		/**
    +		 * 
    +		 */
    +		public void invoke(Object sender, mxEventObject evt)
    +		{
    +			if (!zooming)
    +			{
    +				zoomPolicy = ZOOM_POLICY_NONE;
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 * @param graph
    +	 */
    +	public mxGraphComponent(mxGraph graph)
    +	{
    +		setCellEditor(createCellEditor());
    +		canvas = createCanvas();
    +
    +		// Initializes the buffered view and
    +		graphControl = createGraphControl();
    +		installFocusHandler();
    +		installKeyHandler();
    +		installResizeHandler();
    +		setGraph(graph);
    +
    +		// Adds the viewport view and initializes handlers
    +		setViewportView(graphControl);
    +		createHandlers();
    +		installDoubleClickHandler();
    +	}
    +
    +	/**
    +	 * installs a handler to set the focus to the container.
    +	 */
    +	protected void installFocusHandler()
    +	{
    +		graphControl.addMouseListener(new MouseAdapter()
    +		{
    +			public void mousePressed(MouseEvent e)
    +			{
    +				if (!hasFocus())
    +				{
    +					requestFocus();
    +				}
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Handles escape keystrokes.
    +	 */
    +	protected void installKeyHandler()
    +	{
    +		addKeyListener(new KeyAdapter()
    +		{
    +			public void keyPressed(KeyEvent e)
    +			{
    +				if (e.getKeyCode() == KeyEvent.VK_ESCAPE && isEscapeEnabled())
    +				{
    +					escape(e);
    +				}
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Applies the zoom policy if the size of the component changes.
    +	 */
    +	protected void installResizeHandler()
    +	{
    +		addComponentListener(new ComponentAdapter()
    +		{
    +			public void componentResized(ComponentEvent e)
    +			{
    +				zoomAndCenter();
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Adds handling of edit and stop-edit events after all other handlers have
    +	 * been installed.
    +	 */
    +	protected void installDoubleClickHandler()
    +	{
    +		graphControl.addMouseListener(new MouseAdapter()
    +		{
    +			public void mouseReleased(MouseEvent e)
    +			{
    +				if (isEnabled())
    +				{
    +					if (!e.isConsumed() && isEditEvent(e))
    +					{
    +						Object cell = getCellAt(e.getX(), e.getY(), false);
    +
    +						if (cell != null && getGraph().isCellEditable(cell))
    +						{
    +							startEditingAtCell(cell, e);
    +						}
    +					}
    +					else
    +					{
    +						// Other languages use focus traversal here, in Java
    +						// we explicitely stop editing after a click elsewhere
    +						stopEditing(!invokesStopCellEditing);
    +					}
    +				}
    +			}
    +
    +		});
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxICellEditor createCellEditor()
    +	{
    +		return new mxCellEditor(this);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setGraph(mxGraph value)
    +	{
    +		mxGraph oldValue = graph;
    +
    +		// Uninstalls listeners for existing graph
    +		if (graph != null)
    +		{
    +			graph.removeListener(repaintHandler);
    +			graph.getModel().removeListener(updateHandler);
    +			graph.getView().removeListener(updateHandler);
    +			graph.removePropertyChangeListener(viewChangeHandler);
    +			graph.getView().removeListener(scaleHandler);
    +		}
    +
    +		graph = value;
    +
    +		// Updates the buffer if the model changes
    +		graph.addListener(mxEvent.REPAINT, repaintHandler);
    +
    +		// Installs the update handler to sync the overlays and controls
    +		graph.getModel().addListener(mxEvent.CHANGE, updateHandler);
    +
    +		// Repaint after the following events is handled via
    +		// mxGraph.repaint-events
    +		// The respective handlers are installed in mxGraph.setView
    +		mxGraphView view = graph.getView();
    +
    +		view.addListener(mxEvent.SCALE, updateHandler);
    +		view.addListener(mxEvent.TRANSLATE, updateHandler);
    +		view.addListener(mxEvent.SCALE_AND_TRANSLATE, updateHandler);
    +		view.addListener(mxEvent.UP, updateHandler);
    +		view.addListener(mxEvent.DOWN, updateHandler);
    +
    +		graph.addPropertyChangeListener(viewChangeHandler);
    +
    +		// Resets the zoom policy if the scale changes
    +		graph.getView().addListener(mxEvent.SCALE, scaleHandler);
    +		graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE, scaleHandler);
    +
    +		// Invoke the update handler once for initial state
    +		updateHandler.invoke(graph.getView(), null);
    +
    +		firePropertyChange("graph", oldValue, graph);
    +	}
    +
    +	/**
    +	 * 
    +	 * @return Returns the object that contains the graph.
    +	 */
    +	public mxGraph getGraph()
    +	{
    +		return graph;
    +	}
    +
    +	/**
    +	 * Creates the inner control that handles tooltips, preferred size and can
    +	 * draw cells onto a canvas.
    +	 */
    +	protected mxGraphControl createGraphControl()
    +	{
    +		return new mxGraphControl();
    +	}
    +
    +	/**
    +	 * 
    +	 * @return Returns the control that renders the graph.
    +	 */
    +	public mxGraphControl getGraphControl()
    +	{
    +		return graphControl;
    +	}
    +
    +	/**
    +	 * Creates the connection-, panning and graphhandler (in this order).
    +	 */
    +	protected void createHandlers()
    +	{
    +		setTransferHandler(createTransferHandler());
    +		panningHandler = createPanningHandler();
    +		selectionCellsHandler = createSelectionCellsHandler();
    +		connectionHandler = createConnectionHandler();
    +		graphHandler = createGraphHandler();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected TransferHandler createTransferHandler()
    +	{
    +		return new mxGraphTransferHandler();
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	protected mxSelectionCellsHandler createSelectionCellsHandler()
    +	{
    +		return new mxSelectionCellsHandler(this);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	protected mxGraphHandler createGraphHandler()
    +	{
    +		return new mxGraphHandler(this);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxSelectionCellsHandler getSelectionCellsHandler()
    +	{
    +		return selectionCellsHandler;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphHandler getGraphHandler()
    +	{
    +		return graphHandler;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	protected mxConnectionHandler createConnectionHandler()
    +	{
    +		return new mxConnectionHandler(this);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxConnectionHandler getConnectionHandler()
    +	{
    +		return connectionHandler;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	protected mxPanningHandler createPanningHandler()
    +	{
    +		return new mxPanningHandler(this);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxPanningHandler getPanningHandler()
    +	{
    +		return panningHandler;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEditing()
    +	{
    +		return getCellEditor().getEditingCell() != null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxICellEditor getCellEditor()
    +	{
    +		return cellEditor;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setCellEditor(mxICellEditor value)
    +	{
    +		mxICellEditor oldValue = cellEditor;
    +		cellEditor = value;
    +
    +		firePropertyChange("cellEditor", oldValue, cellEditor);
    +	}
    +
    +	/**
    +	 * @return the tolerance
    +	 */
    +	public int getTolerance()
    +	{
    +		return tolerance;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the tolerance to set
    +	 */
    +	public void setTolerance(int value)
    +	{
    +		int oldValue = tolerance;
    +		tolerance = value;
    +
    +		firePropertyChange("tolerance", oldValue, tolerance);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public PageFormat getPageFormat()
    +	{
    +		return pageFormat;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setPageFormat(PageFormat value)
    +	{
    +		PageFormat oldValue = pageFormat;
    +		pageFormat = value;
    +
    +		firePropertyChange("pageFormat", oldValue, pageFormat);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public double getPageScale()
    +	{
    +		return pageScale;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setPageScale(double value)
    +	{
    +		double oldValue = pageScale;
    +		pageScale = value;
    +
    +		firePropertyChange("pageScale", oldValue, pageScale);
    +	}
    +
    +	/**
    +	 * Returns the size of the area that layouts can operate in.
    +	 */
    +	public mxRectangle getLayoutAreaSize()
    +	{
    +		if (pageVisible)
    +		{
    +			Dimension d = getPreferredSizeForPage();
    +
    +			return new mxRectangle(new Rectangle(d));
    +		}
    +		else
    +		{
    +			return new mxRectangle(new Rectangle(graphControl.getSize()));
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public ImageIcon getBackgroundImage()
    +	{
    +		return backgroundImage;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setBackgroundImage(ImageIcon value)
    +	{
    +		ImageIcon oldValue = backgroundImage;
    +		backgroundImage = value;
    +
    +		firePropertyChange("backgroundImage", oldValue, backgroundImage);
    +	}
    +
    +	/**
    +	 * @return the pageVisible
    +	 */
    +	public boolean isPageVisible()
    +	{
    +		return pageVisible;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>pageVisible</code>. zoomAndCenter
    +	 * should be called if this is set to true.
    +	 * 
    +	 * @param value
    +	 *            the pageVisible to set
    +	 */
    +	public void setPageVisible(boolean value)
    +	{
    +		boolean oldValue = pageVisible;
    +		pageVisible = value;
    +
    +		firePropertyChange("pageVisible", oldValue, pageVisible);
    +	}
    +
    +	/**
    +	 * @return the preferPageSize
    +	 */
    +	public boolean isPreferPageSize()
    +	{
    +		return preferPageSize;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>preferPageSize</code>.
    +	 * 
    +	 * @param value
    +	 *            the preferPageSize to set
    +	 */
    +	public void setPreferPageSize(boolean value)
    +	{
    +		boolean oldValue = preferPageSize;
    +		preferPageSize = value;
    +
    +		firePropertyChange("preferPageSize", oldValue, preferPageSize);
    +	}
    +
    +	/**
    +	 * @return the pageBreaksVisible
    +	 */
    +	public boolean isPageBreaksVisible()
    +	{
    +		return pageBreaksVisible;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the pageBreaksVisible to set
    +	 */
    +	public void setPageBreaksVisible(boolean value)
    +	{
    +		boolean oldValue = pageBreaksVisible;
    +		pageBreaksVisible = value;
    +
    +		firePropertyChange("pageBreaksVisible", oldValue, pageBreaksVisible);
    +	}
    +
    +	/**
    +	 * @return the pageBreakColor
    +	 */
    +	public Color getPageBreakColor()
    +	{
    +		return pageBreakColor;
    +	}
    +
    +	/**
    +	 * @param pageBreakColor the pageBreakColor to set
    +	 */
    +	public void setPageBreakColor(Color pageBreakColor)
    +	{
    +		this.pageBreakColor = pageBreakColor;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the horizontalPageCount to set
    +	 */
    +	public void setHorizontalPageCount(int value)
    +	{
    +		int oldValue = horizontalPageCount;
    +		horizontalPageCount = value;
    +
    +		firePropertyChange("horizontalPageCount", oldValue, horizontalPageCount);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getHorizontalPageCount()
    +	{
    +		return horizontalPageCount;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the verticalPageCount to set
    +	 */
    +	public void setVerticalPageCount(int value)
    +	{
    +		int oldValue = verticalPageCount;
    +		verticalPageCount = value;
    +
    +		firePropertyChange("verticalPageCount", oldValue, verticalPageCount);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getVerticalPageCount()
    +	{
    +		return verticalPageCount;
    +	}
    +
    +	/**
    +	 * @return the centerPage
    +	 */
    +	public boolean isCenterPage()
    +	{
    +		return centerPage;
    +	}
    +
    +	/**
    +	 * zoomAndCenter should be called if this is set to true.
    +	 * 
    +	 * @param value
    +	 *            the centerPage to set
    +	 */
    +	public void setCenterPage(boolean value)
    +	{
    +		boolean oldValue = centerPage;
    +		centerPage = value;
    +
    +		firePropertyChange("centerPage", oldValue, centerPage);
    +	}
    +
    +	/**
    +	 * @return the pageBackgroundColor
    +	 */
    +	public Color getPageBackgroundColor()
    +	{
    +		return pageBackgroundColor;
    +	}
    +
    +	/**
    +	 * Sets the color that appears behind the page.
    +	 * 
    +	 * @param value
    +	 *            the pageBackgroundColor to set
    +	 */
    +	public void setPageBackgroundColor(Color value)
    +	{
    +		Color oldValue = pageBackgroundColor;
    +		pageBackgroundColor = value;
    +
    +		firePropertyChange("pageBackgroundColor", oldValue, pageBackgroundColor);
    +	}
    +
    +	/**
    +	 * @return the pageShadowColor
    +	 */
    +	public Color getPageShadowColor()
    +	{
    +		return pageShadowColor;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the pageShadowColor to set
    +	 */
    +	public void setPageShadowColor(Color value)
    +	{
    +		Color oldValue = pageShadowColor;
    +		pageShadowColor = value;
    +
    +		firePropertyChange("pageShadowColor", oldValue, pageShadowColor);
    +	}
    +
    +	/**
    +	 * @return the pageShadowColor
    +	 */
    +	public Color getPageBorderColor()
    +	{
    +		return pageBorderColor;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the pageBorderColor to set
    +	 */
    +	public void setPageBorderColor(Color value)
    +	{
    +		Color oldValue = pageBorderColor;
    +		pageBorderColor = value;
    +
    +		firePropertyChange("pageBorderColor", oldValue, pageBorderColor);
    +	}
    +
    +	/**
    +	 * @return the keepSelectionVisibleOnZoom
    +	 */
    +	public boolean isKeepSelectionVisibleOnZoom()
    +	{
    +		return keepSelectionVisibleOnZoom;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the keepSelectionVisibleOnZoom to set
    +	 */
    +	public void setKeepSelectionVisibleOnZoom(boolean value)
    +	{
    +		boolean oldValue = keepSelectionVisibleOnZoom;
    +		keepSelectionVisibleOnZoom = value;
    +
    +		firePropertyChange("keepSelectionVisibleOnZoom", oldValue,
    +				keepSelectionVisibleOnZoom);
    +	}
    +
    +	/**
    +	 * @return the zoomFactor
    +	 */
    +	public double getZoomFactor()
    +	{
    +		return zoomFactor;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the zoomFactor to set
    +	 */
    +	public void setZoomFactor(double value)
    +	{
    +		double oldValue = zoomFactor;
    +		zoomFactor = value;
    +
    +		firePropertyChange("zoomFactor", oldValue, zoomFactor);
    +	}
    +
    +	/**
    +	 * @return the centerZoom
    +	 */
    +	public boolean isCenterZoom()
    +	{
    +		return centerZoom;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the centerZoom to set
    +	 */
    +	public void setCenterZoom(boolean value)
    +	{
    +		boolean oldValue = centerZoom;
    +		centerZoom = value;
    +
    +		firePropertyChange("centerZoom", oldValue, centerZoom);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setZoomPolicy(int value)
    +	{
    +		int oldValue = zoomPolicy;
    +		zoomPolicy = value;
    +
    +		if (zoomPolicy != ZOOM_POLICY_NONE)
    +		{
    +			zoom(zoomPolicy == ZOOM_POLICY_PAGE, true);
    +		}
    +
    +		firePropertyChange("zoomPolicy", oldValue, zoomPolicy);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getZoomPolicy()
    +	{
    +		return zoomPolicy;
    +	}
    +
    +	/**
    +	 * Callback to process an escape keystroke.
    +	 * 
    +	 * @param e
    +	 */
    +	public void escape(KeyEvent e)
    +	{
    +		if (selectionCellsHandler != null)
    +		{
    +			selectionCellsHandler.reset();
    +		}
    +
    +		if (connectionHandler != null)
    +		{
    +			connectionHandler.reset();
    +		}
    +
    +		if (graphHandler != null)
    +		{
    +			graphHandler.reset();
    +		}
    +
    +		if (cellEditor != null)
    +		{
    +			cellEditor.stopEditing(true);
    +		}
    +	}
    +
    +	/**
    +	 * Clones and inserts the given cells into the graph using the move method
    +	 * and returns the inserted cells. This shortcut is used if cells are
    +	 * inserted via datatransfer.
    +	 */
    +	public Object[] importCells(Object[] cells, double dx, double dy,
    +			Object target, Point location)
    +	{
    +		return graph.moveCells(cells, dx, dy, true, target, location);
    +	}
    +
    +	/**
    +	 * Refreshes the display and handles.
    +	 */
    +	public void refresh()
    +	{
    +		graph.refresh();
    +		selectionCellsHandler.refresh();
    +	}
    +
    +	/**
    +	 * Returns an mxPoint representing the given event in the unscaled,
    +	 * non-translated coordinate space and applies the grid.
    +	 */
    +	public mxPoint getPointForEvent(MouseEvent e)
    +	{
    +		return getPointForEvent(e, true);
    +	}
    +
    +	/**
    +	 * Returns an mxPoint representing the given event in the unscaled,
    +	 * non-translated coordinate space and applies the grid.
    +	 */
    +	public mxPoint getPointForEvent(MouseEvent e, boolean addOffset)
    +	{
    +		double s = graph.getView().getScale();
    +		mxPoint tr = graph.getView().getTranslate();
    +
    +		double off = (addOffset) ? graph.getGridSize() / 2 : 0;
    +		double x = graph.snap(e.getX() / s - tr.getX() - off);
    +		double y = graph.snap(e.getY() / s - tr.getY() - off);
    +
    +		return new mxPoint(x, y);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void startEditing()
    +	{
    +		startEditingAtCell(null);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void startEditingAtCell(Object cell)
    +	{
    +		startEditingAtCell(cell, null);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void startEditingAtCell(Object cell, EventObject evt)
    +	{
    +		if (cell == null)
    +		{
    +			cell = graph.getSelectionCell();
    +
    +			if (cell != null && !graph.isCellEditable(cell))
    +			{
    +				cell = null;
    +			}
    +		}
    +
    +		if (cell != null)
    +		{
    +			eventSource.fireEvent(new mxEventObject(mxEvent.START_EDITING,
    +					"cell", cell, "event", evt));
    +			cellEditor.startEditing(cell, evt);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public String getEditingValue(Object cell, EventObject trigger)
    +	{
    +		return graph.convertValueToString(cell);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void stopEditing(boolean cancel)
    +	{
    +		cellEditor.stopEditing(cancel);
    +	}
    +
    +	/**
    +	 * Sets the label of the specified cell to the given value using
    +	 * mxGraph.cellLabelChanged and fires mxEvent.LABEL_CHANGED while the
    +	 * transaction is in progress. Returns the cell whose label was changed.
    +	 * 
    +	 * @param cell
    +	 *            Cell whose label should be changed.
    +	 * @param value
    +	 *            New value of the label.
    +	 * @param evt
    +	 *            Optional event that triggered the change.
    +	 */
    +	public Object labelChanged(Object cell, Object value, EventObject evt)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			graph.cellLabelChanged(cell, value, graph.isAutoSizeCell(cell));
    +			eventSource.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,
    +					"cell", cell, "value", value, "event", evt));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cell;
    +	}
    +
    +	/**
    +	 * Returns the (unscaled) preferred size for the current page format (scaled
    +	 * by pageScale).
    +	 */
    +	protected Dimension getPreferredSizeForPage()
    +	{
    +		return new Dimension((int) Math.round(pageFormat.getWidth() * pageScale
    +				* horizontalPageCount), (int) Math.round(pageFormat.getHeight()
    +				* pageScale * verticalPageCount));
    +	}
    +
    +	/**
    +	 * Returns the vertical border between the page and the control.
    +	 */
    +	public int getVerticalPageBorder()
    +	{
    +		return (int) Math.round(pageFormat.getWidth() * pageScale);
    +	}
    +
    +	/**
    +	 * Returns the horizontal border between the page and the control.
    +	 */
    +	public int getHorizontalPageBorder()
    +	{
    +		return (int) Math.round(0.5 * pageFormat.getHeight() * pageScale);
    +	}
    +
    +	/**
    +	 * Returns the scaled preferred size for the current graph.
    +	 */
    +	protected Dimension getScaledPreferredSizeForGraph()
    +	{
    +		mxRectangle bounds = graph.getGraphBounds();
    +		int border = graph.getBorder();
    +
    +		return new Dimension(
    +				(int) Math.round(bounds.getX() + bounds.getWidth()) + border
    +						+ 1, (int) Math.round(bounds.getY()
    +						+ bounds.getHeight())
    +						+ border + 1);
    +	}
    +
    +	/**
    +	 * Should be called by a hook inside mxGraphView/mxGraph
    +	 */
    +	protected mxPoint getPageTranslate(double scale)
    +	{
    +		Dimension d = getPreferredSizeForPage();
    +		Dimension bd = new Dimension(d);
    +
    +		if (!preferPageSize)
    +		{
    +			bd.width += 2 * getHorizontalPageBorder();
    +			bd.height += 2 * getVerticalPageBorder();
    +		}
    +
    +		double width = Math.max(bd.width, (getViewport().getWidth() - 8)
    +				/ scale);
    +		double height = Math.max(bd.height, (getViewport().getHeight() - 8)
    +				/ scale);
    +
    +		double dx = Math.max(0, (width - d.width) / 2);
    +		double dy = Math.max(0, (height - d.height) / 2);
    +
    +		return new mxPoint(dx, dy);
    +	}
    +
    +	/**
    +	 * Invoked after the component was resized to update the zoom if the zoom
    +	 * policy is not none and/or update the translation of the diagram if
    +	 * pageVisible and centerPage are true.
    +	 */
    +	public void zoomAndCenter()
    +	{
    +		if (zoomPolicy != ZOOM_POLICY_NONE)
    +		{
    +			// Centers only on the initial zoom call
    +			zoom(zoomPolicy == ZOOM_POLICY_PAGE, centerOnResize
    +					|| zoomPolicy == ZOOM_POLICY_PAGE);
    +			centerOnResize = false;
    +		}
    +		else if (pageVisible && centerPage)
    +		{
    +			mxPoint translate = getPageTranslate(graph.getView().getScale());
    +			graph.getView().setTranslate(translate);
    +		}
    +		else
    +		{
    +			getGraphControl().updatePreferredSize();
    +		}
    +	}
    +
    +	/**
    +	 * Zooms into the graph by zoomFactor.
    +	 */
    +	public void zoomIn()
    +	{
    +		zoom(zoomFactor);
    +	}
    +
    +	/**
    +	 * Function: zoomOut
    +	 * 
    +	 * Zooms out of the graph by <zoomFactor>.
    +	 */
    +	public void zoomOut()
    +	{
    +		zoom(1 / zoomFactor);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void zoom(double factor)
    +	{
    +		mxGraphView view = graph.getView();
    +		double newScale = (double) ((int) (view.getScale() * 100 * factor)) / 100;
    +
    +		if (newScale != view.getScale() && newScale > 0.04)
    +		{
    +			mxPoint translate = (pageVisible && centerPage) ? getPageTranslate(newScale)
    +					: new mxPoint();
    +			graph.getView().scaleAndTranslate(newScale, translate.getX(),
    +					translate.getY());
    +
    +			if (keepSelectionVisibleOnZoom && !graph.isSelectionEmpty())
    +			{
    +				getGraphControl().scrollRectToVisible(
    +						view.getBoundingBox(graph.getSelectionCells())
    +								.getRectangle());
    +			}
    +			else
    +			{
    +				maintainScrollBar(true, factor, centerZoom);
    +				maintainScrollBar(false, factor, centerZoom);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void zoomTo(final double newScale, final boolean center)
    +	{
    +		mxGraphView view = graph.getView();
    +		final double scale = view.getScale();
    +
    +		mxPoint translate = (pageVisible && centerPage) ? getPageTranslate(newScale)
    +				: new mxPoint();
    +		graph.getView().scaleAndTranslate(newScale, translate.getX(),
    +				translate.getY());
    +
    +		// Causes two repaints on the scrollpane, namely one for the scale
    +		// change with the new preferred size and one for the change of
    +		// the scrollbar position. The latter cannot be done immediately
    +		// because the scrollbar keeps the value <= max - extent, and if
    +		// max is changed the value change will trigger a syncScrollPane
    +		// WithViewport in BasicScrollPaneUI, which will update the value
    +		// for the previous maximum (ie. it must be invoked later).
    +		SwingUtilities.invokeLater(new Runnable()
    +		{
    +			public void run()
    +			{
    +				maintainScrollBar(true, newScale / scale, center);
    +				maintainScrollBar(false, newScale / scale, center);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Function: zoomActual
    +	 * 
    +	 * Resets the zoom and panning in the view.
    +	 */
    +	public void zoomActual()
    +	{
    +		mxPoint translate = (pageVisible && centerPage) ? getPageTranslate(1)
    +				: new mxPoint();
    +		graph.getView()
    +				.scaleAndTranslate(1, translate.getX(), translate.getY());
    +
    +		if (isPageVisible())
    +		{
    +			// Causes two repaints, see zoomTo for more details
    +			SwingUtilities.invokeLater(new Runnable()
    +			{
    +				public void run()
    +				{
    +					Dimension pageSize = getPreferredSizeForPage();
    +
    +					if (getViewport().getWidth() > pageSize.getWidth())
    +					{
    +						scrollToCenter(true);
    +					}
    +					else
    +					{
    +						JScrollBar scrollBar = getHorizontalScrollBar();
    +
    +						if (scrollBar != null)
    +						{
    +							scrollBar.setValue((scrollBar.getMaximum() / 3) - 4);
    +						}
    +					}
    +
    +					if (getViewport().getHeight() > pageSize.getHeight())
    +					{
    +						scrollToCenter(false);
    +					}
    +					else
    +					{
    +						JScrollBar scrollBar = getVerticalScrollBar();
    +
    +						if (scrollBar != null)
    +						{
    +							scrollBar.setValue((scrollBar.getMaximum() / 4) - 4);
    +						}
    +					}
    +				}
    +			});
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void zoom(final boolean page, final boolean center)
    +	{
    +		if (pageVisible && !zooming)
    +		{
    +			zooming = true;
    +
    +			try
    +			{
    +				int off = (getPageShadowColor() != null) ? 8 : 0;
    +				
    +				// Adds some extra space for the shadow and border
    +				double width = getViewport().getWidth() - off;
    +				double height = getViewport().getHeight() - off;
    +
    +				Dimension d = getPreferredSizeForPage();
    +				double pageWidth = d.width;
    +				double pageHeight = d.height;
    +
    +				double scaleX = width / pageWidth;
    +				double scaleY = (page) ? height / pageHeight : scaleX;
    +
    +				// Rounds the new scale to 5% steps
    +				final double newScale = (double) ((int) (Math.min(scaleX,
    +						scaleY) * 20)) / 20;
    +
    +				if (newScale > 0)
    +				{
    +					mxGraphView graphView = graph.getView();
    +					final double scale = graphView.getScale();
    +					mxPoint translate = (centerPage) ? getPageTranslate(newScale)
    +							: new mxPoint();
    +					graphView.scaleAndTranslate(newScale, translate.getX(),
    +							translate.getY());
    +
    +					// Causes two repaints, see zoomTo for more details
    +					final double factor = newScale / scale;
    +
    +					SwingUtilities.invokeLater(new Runnable()
    +					{
    +						public void run()
    +						{
    +							if (center)
    +							{
    +								if (page)
    +								{
    +									scrollToCenter(true);
    +									scrollToCenter(false);
    +								}
    +								else
    +								{
    +									scrollToCenter(true);
    +									maintainScrollBar(false, factor, false);
    +								}
    +							}
    +							else if (factor != 1)
    +							{
    +								maintainScrollBar(true, factor, false);
    +								maintainScrollBar(false, factor, false);
    +							}
    +						}
    +					});
    +				}
    +			}
    +			finally
    +			{
    +				zooming = false;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	protected void maintainScrollBar(boolean horizontal, double factor,
    +			boolean center)
    +	{
    +		JScrollBar scrollBar = (horizontal) ? getHorizontalScrollBar()
    +				: getVerticalScrollBar();
    +
    +		if (scrollBar != null)
    +		{
    +			BoundedRangeModel model = scrollBar.getModel();
    +			int newValue = (int) Math.round(model.getValue() * factor)
    +					+ (int) Math.round((center) ? (model.getExtent()
    +							* (factor - 1) / 2) : 0);
    +			model.setValue(newValue);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void scrollToCenter(boolean horizontal)
    +	{
    +		JScrollBar scrollBar = (horizontal) ? getHorizontalScrollBar()
    +				: getVerticalScrollBar();
    +
    +		if (scrollBar != null)
    +		{
    +			final BoundedRangeModel model = scrollBar.getModel();
    +			final int newValue = ((model.getMaximum()) / 2) - model.getExtent()
    +					/ 2;
    +			model.setValue(newValue);
    +		}
    +	}
    +
    +	/**
    +	 * Scrolls the graph so that it shows the given cell.
    +	 * 
    +	 * @param cell
    +	 */
    +	public void scrollCellToVisible(Object cell)
    +	{
    +		scrollCellToVisible(cell, false);
    +	}
    +
    +	/**
    +	 * Scrolls the graph so that it shows the given cell.
    +	 * 
    +	 * @param cell
    +	 */
    +	public void scrollCellToVisible(Object cell, boolean center)
    +	{
    +		mxCellState state = graph.getView().getState(cell);
    +
    +		if (state != null)
    +		{
    +			mxRectangle bounds = state;
    +
    +			if (center)
    +			{
    +				bounds = (mxRectangle) bounds.clone();
    +
    +				bounds.setX(bounds.getCenterX() - getWidth() / 2);
    +				bounds.setWidth(getWidth());
    +				bounds.setY(bounds.getCenterY() - getHeight() / 2);
    +				bounds.setHeight(getHeight());
    +			}
    +
    +			getGraphControl().scrollRectToVisible(bounds.getRectangle());
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 * @return Returns the cell at the given location.
    +	 */
    +	public Object getCellAt(int x, int y)
    +	{
    +		return getCellAt(x, y, true);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param x
    +	 * @param y
    +	 * @param hitSwimlaneContent
    +	 * @return Returns the cell at the given location.
    +	 */
    +	public Object getCellAt(int x, int y, boolean hitSwimlaneContent)
    +	{
    +		return getCellAt(x, y, hitSwimlaneContent, null);
    +	}
    +
    +	/**
    +	 * Returns the bottom-most cell that intersects the given point (x, y) in
    +	 * the cell hierarchy starting at the given parent.
    +	 * 
    +	 * @param x
    +	 *            X-coordinate of the location to be checked.
    +	 * @param y
    +	 *            Y-coordinate of the location to be checked.
    +	 * @param parent
    +	 *            <mxCell> that should be used as the root of the recursion.
    +	 *            Default is <defaultParent>.
    +	 * @return Returns the child at the given location.
    +	 */
    +	public Object getCellAt(int x, int y, boolean hitSwimlaneContent,
    +			Object parent)
    +	{
    +		if (parent == null)
    +		{
    +			parent = graph.getDefaultParent();
    +		}
    +
    +		if (parent != null)
    +		{
    +			Point previousTranslate = canvas.getTranslate();
    +			double previousScale = canvas.getScale();
    +
    +			try
    +			{
    +				canvas.setScale(graph.getView().getScale());
    +				canvas.setTranslate(0, 0);
    +
    +				mxIGraphModel model = graph.getModel();
    +				mxGraphView view = graph.getView();
    +
    +				Rectangle hit = new Rectangle(x, y, 1, 1);
    +				int childCount = model.getChildCount(parent);
    +
    +				for (int i = childCount - 1; i >= 0; i--)
    +				{
    +					Object cell = model.getChildAt(parent, i);
    +					Object result = getCellAt(x, y, hitSwimlaneContent, cell);
    +
    +					if (result != null)
    +					{
    +						return result;
    +					}
    +					else if (graph.isCellVisible(cell))
    +					{
    +						mxCellState state = view.getState(cell);
    +
    +						if (state != null
    +								&& canvas.intersects(this, hit, state)
    +								&& (!graph.isSwimlane(cell)
    +										|| hitSwimlaneContent || (transparentSwimlaneContent && !canvas
    +										.hitSwimlaneContent(this, state, x, y))))
    +						{
    +							return cell;
    +						}
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				canvas.setScale(previousScale);
    +				canvas.setTranslate(previousTranslate.x, previousTranslate.y);
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setSwimlaneSelectionEnabled(boolean value)
    +	{
    +		boolean oldValue = swimlaneSelectionEnabled;
    +		swimlaneSelectionEnabled = value;
    +
    +		firePropertyChange("swimlaneSelectionEnabled", oldValue,
    +				swimlaneSelectionEnabled);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isSwimlaneSelectionEnabled()
    +	{
    +		return swimlaneSelectionEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object[] selectRegion(Rectangle rect, MouseEvent e)
    +	{
    +		Object[] cells = getCells(rect);
    +
    +		if (cells.length > 0)
    +		{
    +			selectCellsForEvent(cells, e);
    +		}
    +		else if (!graph.isSelectionEmpty() && !e.isConsumed())
    +		{
    +			graph.clearSelection();
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Returns the cells inside the given rectangle.
    +	 * 
    +	 * @return Returns the cells inside the given rectangle.
    +	 */
    +	public Object[] getCells(Rectangle rect)
    +	{
    +		return getCells(rect, null);
    +	}
    +
    +	/**
    +	 * Returns the children of the given parent that are contained in the given
    +	 * rectangle (x, y, width, height). The result is added to the optional
    +	 * result array, which is returned from the function. If no result array is
    +	 * specified then a new array is created and returned.
    +	 * 
    +	 * @return Returns the children inside the given rectangle.
    +	 */
    +	public Object[] getCells(Rectangle rect, Object parent)
    +	{
    +		Collection<Object> result = new ArrayList<Object>();
    +
    +		if (rect.width > 0 || rect.height > 0)
    +		{
    +			if (parent == null)
    +			{
    +				parent = graph.getDefaultParent();
    +			}
    +
    +			if (parent != null)
    +			{
    +				Point previousTranslate = canvas.getTranslate();
    +				double previousScale = canvas.getScale();
    +
    +				try
    +				{
    +					canvas.setScale(graph.getView().getScale());
    +					canvas.setTranslate(0, 0);
    +
    +					mxIGraphModel model = graph.getModel();
    +					mxGraphView view = graph.getView();
    +
    +					int childCount = model.getChildCount(parent);
    +
    +					for (int i = 0; i < childCount; i++)
    +					{
    +						Object cell = model.getChildAt(parent, i);
    +						mxCellState state = view.getState(cell);
    +
    +						if (graph.isCellVisible(cell) && state != null)
    +						{
    +							if (canvas.contains(this, rect, state))
    +							{
    +								result.add(cell);
    +							}
    +							else
    +							{
    +								result.addAll(Arrays
    +										.asList(getCells(rect, cell)));
    +							}
    +						}
    +					}
    +				}
    +				finally
    +				{
    +					canvas.setScale(previousScale);
    +					canvas.setTranslate(previousTranslate.x,
    +							previousTranslate.y);
    +				}
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Selects the cells for the given event.
    +	 */
    +	public void selectCellsForEvent(Object[] cells, MouseEvent event)
    +	{
    +		if (isToggleEvent(event))
    +		{
    +			graph.addSelectionCells(cells);
    +		}
    +		else
    +		{
    +			graph.setSelectionCells(cells);
    +		}
    +	}
    +
    +	/**
    +	 * Selects the cell for the given event.
    +	 */
    +	public void selectCellForEvent(Object cell, MouseEvent e)
    +	{
    +		boolean isSelected = graph.isCellSelected(cell);
    +
    +		if (isToggleEvent(e))
    +		{
    +			if (isSelected)
    +			{
    +				graph.removeSelectionCell(cell);
    +			}
    +			else
    +			{
    +				graph.addSelectionCell(cell);
    +			}
    +		}
    +		else if (!isSelected || graph.getSelectionCount() != 1)
    +		{
    +			graph.setSelectionCell(cell);
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if the absolute value of one of the given parameters is
    +	 * greater than the tolerance.
    +	 */
    +	public boolean isSignificant(double dx, double dy)
    +	{
    +		return Math.abs(dx) > tolerance || Math.abs(dy) > tolerance;
    +	}
    +
    +	/**
    +	 * Returns the icon used to display the collapsed state of the specified
    +	 * cell state. This returns null for all edges.
    +	 */
    +	public ImageIcon getFoldingIcon(mxCellState state)
    +	{
    +		if (state != null && isFoldingEnabled()
    +				&& !getGraph().getModel().isEdge(state.getCell()))
    +		{
    +			Object cell = state.getCell();
    +			boolean tmp = graph.isCellCollapsed(cell);
    +
    +			if (graph.isCellFoldable(cell, !tmp))
    +			{
    +				return (tmp) ? collapsedIcon : expandedIcon;
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Rectangle getFoldingIconBounds(mxCellState state, ImageIcon icon)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		boolean isEdge = model.isEdge(state.getCell());
    +		double scale = getGraph().getView().getScale();
    +
    +		int x = (int) Math.round(state.getX() + 4 * scale);
    +		int y = (int) Math.round(state.getY() + 4 * scale);
    +		int w = (int) Math.max(8, icon.getIconWidth() * scale);
    +		int h = (int) Math.max(8, icon.getIconHeight() * scale);
    +
    +		if (isEdge)
    +		{
    +			mxPoint pt = graph.getView().getPoint(state);
    +
    +			x = (int) pt.getX() - w / 2;
    +			y = (int) pt.getY() - h / 2;
    +		}
    +
    +		return new Rectangle(x, y, w, h);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public boolean hitFoldingIcon(Object cell, int x, int y)
    +	{
    +		if (cell != null)
    +		{
    +			mxIGraphModel model = graph.getModel();
    +
    +			// Draws the collapse/expand icons
    +			boolean isEdge = model.isEdge(cell);
    +
    +			if (foldingEnabled && (model.isVertex(cell) || isEdge))
    +			{
    +				mxCellState state = graph.getView().getState(cell);
    +
    +				if (state != null)
    +				{
    +					ImageIcon icon = getFoldingIcon(state);
    +
    +					if (icon != null)
    +					{
    +						return getFoldingIconBounds(state, icon).contains(x, y);
    +					}
    +				}
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param enabled
    +	 */
    +	public void setToolTips(boolean enabled)
    +	{
    +		if (enabled)
    +		{
    +			ToolTipManager.sharedInstance().registerComponent(graphControl);
    +		}
    +		else
    +		{
    +			ToolTipManager.sharedInstance().unregisterComponent(graphControl);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isConnectable()
    +	{
    +		return connectionHandler.isEnabled();
    +	}
    +
    +	/**
    +	 * @param connectable
    +	 */
    +	public void setConnectable(boolean connectable)
    +	{
    +		connectionHandler.setEnabled(connectable);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isPanning()
    +	{
    +		return panningHandler.isEnabled();
    +	}
    +
    +	/**
    +	 * @param enabled
    +	 */
    +	public void setPanning(boolean enabled)
    +	{
    +		panningHandler.setEnabled(enabled);
    +	}
    +
    +	/**
    +	 * @return the autoScroll
    +	 */
    +	public boolean isAutoScroll()
    +	{
    +		return autoScroll;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the autoScroll to set
    +	 */
    +	public void setAutoScroll(boolean value)
    +	{
    +		autoScroll = value;
    +	}
    +
    +	/**
    +	 * @return the autoExtend
    +	 */
    +	public boolean isAutoExtend()
    +	{
    +		return autoExtend;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the autoExtend to set
    +	 */
    +	public void setAutoExtend(boolean value)
    +	{
    +		autoExtend = value;
    +	}
    +
    +	/**
    +	 * @return the escapeEnabled
    +	 */
    +	public boolean isEscapeEnabled()
    +	{
    +		return escapeEnabled;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the escapeEnabled to set
    +	 */
    +	public void setEscapeEnabled(boolean value)
    +	{
    +		boolean oldValue = escapeEnabled;
    +		escapeEnabled = value;
    +
    +		firePropertyChange("escapeEnabled", oldValue, escapeEnabled);
    +	}
    +
    +	/**
    +	 * @return the escapeEnabled
    +	 */
    +	public boolean isInvokesStopCellEditing()
    +	{
    +		return invokesStopCellEditing;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the invokesStopCellEditing to set
    +	 */
    +	public void setInvokesStopCellEditing(boolean value)
    +	{
    +		boolean oldValue = invokesStopCellEditing;
    +		invokesStopCellEditing = value;
    +
    +		firePropertyChange("invokesStopCellEditing", oldValue,
    +				invokesStopCellEditing);
    +	}
    +
    +	/**
    +	 * @return the enterStopsCellEditing
    +	 */
    +	public boolean isEnterStopsCellEditing()
    +	{
    +		return enterStopsCellEditing;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the enterStopsCellEditing to set
    +	 */
    +	public void setEnterStopsCellEditing(boolean value)
    +	{
    +		boolean oldValue = enterStopsCellEditing;
    +		enterStopsCellEditing = value;
    +
    +		firePropertyChange("enterStopsCellEditing", oldValue,
    +				enterStopsCellEditing);
    +	}
    +
    +	/**
    +	 * @return the dragEnabled
    +	 */
    +	public boolean isDragEnabled()
    +	{
    +		return dragEnabled;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the dragEnabled to set
    +	 */
    +	public void setDragEnabled(boolean value)
    +	{
    +		boolean oldValue = dragEnabled;
    +		dragEnabled = value;
    +
    +		firePropertyChange("dragEnabled", oldValue, dragEnabled);
    +	}
    +
    +	/**
    +	 * @return the gridVisible
    +	 */
    +	public boolean isGridVisible()
    +	{
    +		return gridVisible;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>gridVisible</code>.
    +	 * 
    +	 * @param value
    +	 *            the gridVisible to set
    +	 */
    +	public void setGridVisible(boolean value)
    +	{
    +		boolean oldValue = gridVisible;
    +		gridVisible = value;
    +
    +		firePropertyChange("gridVisible", oldValue, gridVisible);
    +	}
    +
    +	/**
    +	 * @return the gridVisible
    +	 */
    +	public boolean isAntiAlias()
    +	{
    +		return antiAlias;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>antiAlias</code>.
    +	 * 
    +	 * @param value
    +	 *            the antiAlias to set
    +	 */
    +	public void setAntiAlias(boolean value)
    +	{
    +		boolean oldValue = antiAlias;
    +		antiAlias = value;
    +
    +		firePropertyChange("antiAlias", oldValue, antiAlias);
    +	}
    +
    +	/**
    +	 * @return the gridVisible
    +	 */
    +	public boolean isTextAntiAlias()
    +	{
    +		return antiAlias;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>textAntiAlias</code>.
    +	 * 
    +	 * @param value
    +	 *            the textAntiAlias to set
    +	 */
    +	public void setTextAntiAlias(boolean value)
    +	{
    +		boolean oldValue = textAntiAlias;
    +		textAntiAlias = value;
    +
    +		firePropertyChange("textAntiAlias", oldValue, textAntiAlias);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public float getPreviewAlpha()
    +	{
    +		return previewAlpha;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setPreviewAlpha(float value)
    +	{
    +		float oldValue = previewAlpha;
    +		previewAlpha = value;
    +
    +		firePropertyChange("previewAlpha", oldValue, previewAlpha);
    +	}
    +
    +	/**
    +	 * @return the tripleBuffered
    +	 */
    +	public boolean isTripleBuffered()
    +	{
    +		return tripleBuffered;
    +	}
    +
    +	/**
    +	 * Hook for dynamic triple buffering condition.
    +	 */
    +	public boolean isForceTripleBuffered()
    +	{
    +		// LATER: Dynamic condition (cell density) to use triple
    +		// buffering for a large number of cells on a small rect
    +		return false;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the tripleBuffered to set
    +	 */
    +	public void setTripleBuffered(boolean value)
    +	{
    +		boolean oldValue = tripleBuffered;
    +		tripleBuffered = value;
    +
    +		firePropertyChange("tripleBuffered", oldValue, tripleBuffered);
    +	}
    +
    +	/**
    +	 * @return the gridColor
    +	 */
    +	public Color getGridColor()
    +	{
    +		return gridColor;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>gridColor</code>.
    +	 * 
    +	 * @param value
    +	 *            the gridColor to set
    +	 */
    +	public void setGridColor(Color value)
    +	{
    +		Color oldValue = gridColor;
    +		gridColor = value;
    +
    +		firePropertyChange("gridColor", oldValue, gridColor);
    +	}
    +
    +	/**
    +	 * @return the gridStyle
    +	 */
    +	public int getGridStyle()
    +	{
    +		return gridStyle;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>gridStyle</code>.
    +	 * 
    +	 * @param value
    +	 *            the gridStyle to set
    +	 */
    +	public void setGridStyle(int value)
    +	{
    +		int oldValue = gridStyle;
    +		gridStyle = value;
    +
    +		firePropertyChange("gridStyle", oldValue, gridStyle);
    +	}
    +
    +	/**
    +	 * Returns importEnabled.
    +	 */
    +	public boolean isImportEnabled()
    +	{
    +		return importEnabled;
    +	}
    +
    +	/**
    +	 * Sets importEnabled.
    +	 */
    +	public void setImportEnabled(boolean value)
    +	{
    +		boolean oldValue = importEnabled;
    +		importEnabled = value;
    +
    +		firePropertyChange("importEnabled", oldValue, importEnabled);
    +	}
    +
    +	/**
    +	 * Returns all cells which may be imported via datatransfer.
    +	 */
    +	public Object[] getImportableCells(Object[] cells)
    +	{
    +		return mxGraphModel.filterCells(cells, new Filter()
    +		{
    +			public boolean filter(Object cell)
    +			{
    +				return canImportCell(cell);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Returns true if the given cell can be imported via datatransfer. This
    +	 * returns importEnabled.
    +	 */
    +	public boolean canImportCell(Object cell)
    +	{
    +		return isImportEnabled();
    +	}
    +
    +	/**
    +	 * @return the exportEnabled
    +	 */
    +	public boolean isExportEnabled()
    +	{
    +		return exportEnabled;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the exportEnabled to set
    +	 */
    +	public void setExportEnabled(boolean value)
    +	{
    +		boolean oldValue = exportEnabled;
    +		exportEnabled = value;
    +
    +		firePropertyChange("exportEnabled", oldValue, exportEnabled);
    +	}
    +
    +	/**
    +	 * Returns all cells which may be exported via datatransfer.
    +	 */
    +	public Object[] getExportableCells(Object[] cells)
    +	{
    +		return mxGraphModel.filterCells(cells, new Filter()
    +		{
    +			public boolean filter(Object cell)
    +			{
    +				return canExportCell(cell);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Returns true if the given cell can be exported via datatransfer.
    +	 */
    +	public boolean canExportCell(Object cell)
    +	{
    +		return isExportEnabled();
    +	}
    +
    +	/**
    +	 * @return the foldingEnabled
    +	 */
    +	public boolean isFoldingEnabled()
    +	{
    +		return foldingEnabled;
    +	}
    +
    +	/**
    +	 * @param value
    +	 *            the foldingEnabled to set
    +	 */
    +	public void setFoldingEnabled(boolean value)
    +	{
    +		boolean oldValue = foldingEnabled;
    +		foldingEnabled = value;
    +
    +		firePropertyChange("foldingEnabled", oldValue, foldingEnabled);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEditEvent(MouseEvent e)
    +	{
    +		return (e != null) ? e.getClickCount() == 2 : false;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param event
    +	 * @return Returns true if the given event should toggle selected cells.
    +	 */
    +	public boolean isCloneEvent(MouseEvent event)
    +	{
    +		return (event != null) ? event.isControlDown() : false;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param event
    +	 * @return Returns true if the given event should toggle selected cells.
    +	 */
    +	public boolean isToggleEvent(MouseEvent event)
    +	{
    +		// NOTE: IsMetaDown always returns true for right-clicks on the Mac, so
    +		// toggle selection for left mouse buttons requires CMD key to be pressed,
    +		// but toggle for right mouse buttons requires CTRL to be pressed.
    +		return (event != null) ? ((mxUtils.IS_MAC) ? ((SwingUtilities
    +				.isLeftMouseButton(event) && event.isMetaDown()) || (SwingUtilities
    +				.isRightMouseButton(event) && event.isControlDown()))
    +				: event.isControlDown())
    +				: false;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param event
    +	 * @return Returns true if the given event allows the grid to be applied.
    +	 */
    +	public boolean isGridEnabledEvent(MouseEvent event)
    +	{
    +		return (event != null) ? !event.isAltDown() : false;
    +	}
    +
    +	/**
    +	 * Note: This is not used during drag and drop operations due to limitations
    +	 * of the underlying API. To enable this for move operations set dragEnabled
    +	 * to false.
    +	 * 
    +	 * @param event
    +	 * @return Returns true if the given event is a panning event.
    +	 */
    +	public boolean isPanningEvent(MouseEvent event)
    +	{
    +		return (event != null) ? event.isShiftDown() && event.isControlDown()
    +				: false;
    +	}
    +
    +	/**
    +	 * Note: This is not used during drag and drop operations due to limitations
    +	 * of the underlying API. To enable this for move operations set dragEnabled
    +	 * to false.
    +	 * 
    +	 * @param event
    +	 * @return Returns true if the given event is constrained.
    +	 */
    +	public boolean isConstrainedEvent(MouseEvent event)
    +	{
    +		return (event != null) ? event.isShiftDown() : false;
    +	}
    +
    +	/**
    +	 * Note: This is not used during drag and drop operations due to limitations
    +	 * of the underlying API. To enable this for move operations set dragEnabled
    +	 * to false.
    +	 * 
    +	 * @param event
    +	 * @return Returns true if the given event is constrained.
    +	 */
    +	public boolean isForceMarqueeEvent(MouseEvent event)
    +	{
    +		return (event != null) ? event.isAltDown() : false;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxPoint snapScaledPoint(mxPoint pt)
    +	{
    +		return snapScaledPoint(pt, 0, 0);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxPoint snapScaledPoint(mxPoint pt, double dx, double dy)
    +	{
    +		if (pt != null)
    +		{
    +			double scale = graph.getView().getScale();
    +			mxPoint trans = graph.getView().getTranslate();
    +
    +			pt.setX((graph.snap(pt.getX() / scale - trans.getX() + dx / scale) + trans
    +					.getX()) * scale - dx);
    +			pt.setY((graph.snap(pt.getY() / scale - trans.getY() + dy / scale) + trans
    +					.getY()) * scale - dy);
    +		}
    +
    +		return pt;
    +	}
    +
    +	/**
    +	 * Prints the specified page on the specified graphics using
    +	 * <code>pageFormat</code> for the page format.
    +	 * 
    +	 * @param g
    +	 *            The graphics to paint the graph on.
    +	 * @param printFormat
    +	 *            The page format to use for printing.
    +	 * @param page
    +	 *            The page to print
    +	 * @return Returns {@link Printable#PAGE_EXISTS} or
    +	 *         {@link Printable#NO_SUCH_PAGE}.
    +	 */
    +	public int print(Graphics g, PageFormat printFormat, int page)
    +	{
    +		int result = NO_SUCH_PAGE;
    +
    +		// Disables double-buffering before printing
    +		RepaintManager currentManager = RepaintManager
    +				.currentManager(mxGraphComponent.this);
    +		currentManager.setDoubleBufferingEnabled(false);
    +
    +		// Gets the current state of the view
    +		mxGraphView view = graph.getView();
    +
    +		// Stores the old state of the view
    +		boolean eventsEnabled = view.isEventsEnabled();
    +		mxPoint translate = view.getTranslate();
    +
    +		// Disables firing of scale events so that there is no
    +		// repaint or update of the original graph while pages
    +		// are being printed
    +		view.setEventsEnabled(false);
    +
    +		// Uses the view to create temporary cell states for each cell
    +		mxTemporaryCellStates tempStates = new mxTemporaryCellStates(view,
    +				1 / pageScale);
    +
    +		try
    +		{
    +			view.setTranslate(new mxPoint(0, 0));
    +
    +			mxGraphics2DCanvas canvas = createCanvas();
    +			canvas.setGraphics((Graphics2D) g);
    +			canvas.setScale(1 / pageScale);
    +
    +			view.revalidate();
    +
    +			mxRectangle graphBounds = graph.getGraphBounds();
    +			Dimension pSize = new Dimension((int) Math.ceil(graphBounds.getX()
    +					+ graphBounds.getWidth()) + 1, (int) Math.ceil(graphBounds
    +					.getY() + graphBounds.getHeight()) + 1);
    +
    +			int w = (int) (printFormat.getImageableWidth());
    +			int h = (int) (printFormat.getImageableHeight());
    +			int cols = (int) Math.max(
    +					Math.ceil((double) (pSize.width - 5) / (double) w), 1);
    +			int rows = (int) Math.max(
    +					Math.ceil((double) (pSize.height - 5) / (double) h), 1);
    +
    +			if (page < cols * rows)
    +			{
    +				int dx = (int) ((page % cols) * printFormat.getImageableWidth());
    +				int dy = (int) (Math.floor(page / cols) * printFormat
    +						.getImageableHeight());
    +
    +				g.translate(-dx + (int) printFormat.getImageableX(), -dy
    +						+ (int) printFormat.getImageableY());
    +				g.setClip(dx, dy, (int) (dx + printFormat.getWidth()),
    +						(int) (dy + printFormat.getHeight()));
    +
    +				graph.drawGraph(canvas);
    +
    +				result = PAGE_EXISTS;
    +			}
    +		}
    +		finally
    +		{
    +			view.setTranslate(translate);
    +
    +			tempStates.destroy();
    +			view.setEventsEnabled(eventsEnabled);
    +
    +			// Enables double-buffering after printing
    +			currentManager.setDoubleBufferingEnabled(true);
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxInteractiveCanvas getCanvas()
    +	{
    +		return canvas;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public BufferedImage getTripleBuffer()
    +	{
    +		return tripleBuffer;
    +	}
    +
    +	/**
    +	 * Hook for subclassers to replace the graphics canvas for rendering and and
    +	 * printing. This must be overridden to return a custom canvas if there are
    +	 * any custom shapes.
    +	 */
    +	public mxInteractiveCanvas createCanvas()
    +	{
    +		// NOTE: http://forum.jgraph.com/questions/3354/ reports that we should not
    +		// pass image observer here as it will cause JVM to enter infinite loop.
    +		return new mxInteractiveCanvas();
    +	}
    +
    +	/**
    +	 * 
    +	 * @param state
    +	 *            Cell state for which a handler should be created.
    +	 * @return Returns the handler to be used for the given cell state.
    +	 */
    +	public mxCellHandler createHandler(mxCellState state)
    +	{
    +		if (graph.getModel().isVertex(state.getCell()))
    +		{
    +			return new mxVertexHandler(this, state);
    +		}
    +		else if (graph.getModel().isEdge(state.getCell()))
    +		{
    +			mxEdgeStyleFunction style = graph.getView().getEdgeStyle(state,
    +					null, null, null);
    +
    +			if (graph.isLoop(state) || style == mxEdgeStyle.ElbowConnector
    +					|| style == mxEdgeStyle.SideToSide
    +					|| style == mxEdgeStyle.TopToBottom)
    +			{
    +				return new mxElbowEdgeHandler(this, state);
    +			}
    +
    +			return new mxEdgeHandler(this, state);
    +		}
    +
    +		return new mxCellHandler(this, state);
    +	}
    +
    +	//
    +	// Heavyweights
    +	//
    +
    +	/**
    +	 * Hook for subclassers to create the array of heavyweights for the given
    +	 * state.
    +	 */
    +	public Component[] createComponents(mxCellState state)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void insertComponent(mxCellState state, Component c)
    +	{
    +		getGraphControl().add(c, 0);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void removeComponent(Component c, Object cell)
    +	{
    +		if (c.getParent() != null)
    +		{
    +			c.getParent().remove(c);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void updateComponent(mxCellState state, Component c)
    +	{
    +		int x = (int) state.getX();
    +		int y = (int) state.getY();
    +		int width = (int) state.getWidth();
    +		int height = (int) state.getHeight();
    +
    +		Dimension s = c.getMinimumSize();
    +
    +		if (s.width > width)
    +		{
    +			x -= (s.width - width) / 2;
    +			width = s.width;
    +		}
    +
    +		if (s.height > height)
    +		{
    +			y -= (s.height - height) / 2;
    +			height = s.height;
    +		}
    +
    +		c.setBounds(x, y, width, height);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void updateComponents()
    +	{
    +		Object root = graph.getModel().getRoot();
    +		Hashtable<Object, Component[]> result = updateComponents(root);
    +
    +		// Components now contains the mappings which are no
    +		// longer used, the result contains the new mappings
    +		removeAllComponents(components);
    +		components = result;
    +
    +		if (!overlays.isEmpty())
    +		{
    +			Hashtable<Object, mxICellOverlay[]> result2 = updateCellOverlays(root);
    +
    +			// Overlays now contains the mappings from cells which
    +			// are no longer in the model, the result contains the
    +			// mappings from cells which still exists, regardless
    +			// from whether a state exists for a particular cell
    +			removeAllOverlays(overlays);
    +			overlays = result2;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void removeAllComponents(Hashtable<Object, Component[]> map)
    +	{
    +		Iterator<Map.Entry<Object, Component[]>> it = map.entrySet().iterator();
    +
    +		while (it.hasNext())
    +		{
    +			Map.Entry<Object, Component[]> entry = it.next();
    +			Component[] c = entry.getValue();
    +
    +			for (int i = 0; i < c.length; i++)
    +			{
    +				removeComponent(c[i], entry.getKey());
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void removeAllOverlays(Hashtable<Object, mxICellOverlay[]> map)
    +	{
    +		Iterator<Map.Entry<Object, mxICellOverlay[]>> it = map.entrySet()
    +				.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			Map.Entry<Object, mxICellOverlay[]> entry = it.next();
    +			mxICellOverlay[] c = entry.getValue();
    +
    +			for (int i = 0; i < c.length; i++)
    +			{
    +				removeCellOverlayComponent(c[i], entry.getKey());
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Hashtable<Object, Component[]> updateComponents(Object cell)
    +	{
    +		Hashtable<Object, Component[]> result = new Hashtable<Object, Component[]>();
    +		Component[] c = components.remove(cell);
    +		mxCellState state = getGraph().getView().getState(cell);
    +
    +		if (state != null)
    +		{
    +			if (c == null)
    +			{
    +				c = createComponents(state);
    +
    +				if (c != null)
    +				{
    +					for (int i = 0; i < c.length; i++)
    +					{
    +						insertComponent(state, c[i]);
    +					}
    +				}
    +			}
    +
    +			if (c != null)
    +			{
    +				result.put(cell, c);
    +
    +				for (int i = 0; i < c.length; i++)
    +				{
    +					updateComponent(state, c[i]);
    +				}
    +			}
    +		}
    +		// Puts the component back into the map so that it will be removed
    +		else if (c != null)
    +		{
    +			components.put(cell, c);
    +		}
    +
    +		int childCount = getGraph().getModel().getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			result.putAll(updateComponents(getGraph().getModel().getChildAt(
    +					cell, i)));
    +		}
    +
    +		return result;
    +	}
    +
    +	//
    +	// Validation and overlays
    +	//
    +
    +	/**
    +	 * Validates the graph by validating each descendant of the given cell or
    +	 * the root of the model. Context is an object that contains the validation
    +	 * state for the complete validation run. The validation errors are attached
    +	 * to their cells using <setWarning>. This function returns true if no
    +	 * validation errors exist in the graph.
    +	 */
    +	public String validateGraph()
    +	{
    +		return validateGraph(graph.getModel().getRoot(),
    +				new Hashtable<Object, Object>());
    +	}
    +
    +	/**
    +	 * Validates the graph by validating each descendant of the given cell or
    +	 * the root of the model. Context is an object that contains the validation
    +	 * state for the complete validation run. The validation errors are attached
    +	 * to their cells using <setWarning>. This function returns true if no
    +	 * validation errors exist in the graph.
    +	 * 
    +	 * @param cell
    +	 *            Cell to start the validation recursion.
    +	 * @param context
    +	 *            Object that represents the global validation state.
    +	 */
    +	public String validateGraph(Object cell, Hashtable<Object, Object> context)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		mxGraphView view = graph.getView();
    +		boolean isValid = true;
    +		int childCount = model.getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object tmp = model.getChildAt(cell, i);
    +			Hashtable<Object, Object> ctx = context;
    +
    +			if (graph.isValidRoot(tmp))
    +			{
    +				ctx = new Hashtable<Object, Object>();
    +			}
    +
    +			String warn = validateGraph(tmp, ctx);
    +
    +			if (warn != null)
    +			{
    +				String html = warn.replaceAll("\n", "<br>");
    +				int len = html.length();
    +				setCellWarning(tmp, html.substring(0, Math.max(0, len - 4)));
    +			}
    +			else
    +			{
    +				setCellWarning(tmp, null);
    +			}
    +
    +			isValid = isValid && warn == null;
    +		}
    +
    +		StringBuffer warning = new StringBuffer();
    +
    +		// Adds error for invalid children if collapsed (children invisible)
    +		if (graph.isCellCollapsed(cell) && !isValid)
    +		{
    +			warning.append(mxResources.get("containsValidationErrors",
    +					"Contains Validation Errors") + "\n");
    +		}
    +
    +		// Checks edges and cells using the defined multiplicities
    +		if (model.isEdge(cell))
    +		{
    +			String tmp = graph.getEdgeValidationError(cell,
    +					model.getTerminal(cell, true),
    +					model.getTerminal(cell, false));
    +
    +			if (tmp != null)
    +			{
    +				warning.append(tmp);
    +			}
    +		}
    +		else
    +		{
    +			String tmp = graph.getCellValidationError(cell);
    +
    +			if (tmp != null)
    +			{
    +				warning.append(tmp);
    +			}
    +		}
    +
    +		// Checks custom validation rules
    +		String err = graph.validateCell(cell, context);
    +
    +		if (err != null)
    +		{
    +			warning.append(err);
    +		}
    +
    +		// Updates the display with the warning icons before any potential
    +		// alerts are displayed
    +		if (model.getParent(cell) == null)
    +		{
    +			view.validate();
    +		}
    +
    +		return (warning.length() > 0 || !isValid) ? warning.toString() : null;
    +	}
    +
    +	/**
    +	 * Adds an overlay for the specified cell. This method fires an addoverlay
    +	 * event and returns the new overlay.
    +	 * 
    +	 * @param cell
    +	 *            Cell to add the overlay for.
    +	 * @param overlay
    +	 *            Overlay to be added for the cell.
    +	 */
    +	public mxICellOverlay addCellOverlay(Object cell, mxICellOverlay overlay)
    +	{
    +		mxICellOverlay[] arr = getCellOverlays(cell);
    +
    +		if (arr == null)
    +		{
    +			arr = new mxICellOverlay[] { overlay };
    +		}
    +		else
    +		{
    +			mxICellOverlay[] arr2 = new mxICellOverlay[arr.length + 1];
    +			System.arraycopy(arr, 0, arr2, 0, arr.length);
    +			arr2[arr.length] = overlay;
    +			arr = arr2;
    +		}
    +
    +		overlays.put(cell, arr);
    +		mxCellState state = graph.getView().getState(cell);
    +
    +		if (state != null)
    +		{
    +			updateCellOverlayComponent(state, overlay);
    +		}
    +
    +		eventSource.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY, "cell",
    +				cell, "overlay", overlay));
    +
    +		return overlay;
    +	}
    +
    +	/**
    +	 * Returns the array of overlays for the given cell or null, if no overlays
    +	 * are defined.
    +	 * 
    +	 * @param cell
    +	 *            Cell whose overlays should be returned.
    +	 */
    +	public mxICellOverlay[] getCellOverlays(Object cell)
    +	{
    +		return overlays.get(cell);
    +	}
    +
    +	/**
    +	 * Removes and returns the given overlay from the given cell. This method
    +	 * fires a remove overlay event. If no overlay is given, then all overlays
    +	 * are removed using removeOverlays.
    +	 * 
    +	 * @param cell
    +	 *            Cell whose overlay should be removed.
    +	 * @param overlay
    +	 *            Optional overlay to be removed.
    +	 */
    +	public mxICellOverlay removeCellOverlay(Object cell, mxICellOverlay overlay)
    +	{
    +		if (overlay == null)
    +		{
    +			removeCellOverlays(cell);
    +		}
    +		else
    +		{
    +			mxICellOverlay[] arr = getCellOverlays(cell);
    +
    +			if (arr != null)
    +			{
    +				// TODO: Use arraycopy from/to same array to speed this up
    +				List<mxICellOverlay> list = new ArrayList<mxICellOverlay>(
    +						Arrays.asList(arr));
    +
    +				if (list.remove(overlay))
    +				{
    +					removeCellOverlayComponent(overlay, cell);
    +				}
    +
    +				arr = list.toArray(new mxICellOverlay[list.size()]);
    +				overlays.put(cell, arr);
    +			}
    +		}
    +
    +		return overlay;
    +	}
    +
    +	/**
    +	 * Removes all overlays from the given cell. This method fires a
    +	 * removeoverlay event for each removed overlay and returns the array of
    +	 * overlays that was removed from the cell.
    +	 * 
    +	 * @param cell
    +	 *            Cell whose overlays should be removed.
    +	 */
    +	public mxICellOverlay[] removeCellOverlays(Object cell)
    +	{
    +		mxICellOverlay[] ovls = overlays.remove(cell);
    +
    +		if (ovls != null)
    +		{
    +			// Removes the overlays from the cell hierarchy
    +			for (int i = 0; i < ovls.length; i++)
    +			{
    +				removeCellOverlayComponent(ovls[i], cell);
    +			}
    +		}
    +
    +		return ovls;
    +	}
    +
    +	/**
    +	 * Notified when an overlay has been removed from the graph. This
    +	 * implementation removes the given overlay from its parent if it is a
    +	 * component inside a component hierarchy.
    +	 */
    +	protected void removeCellOverlayComponent(mxICellOverlay overlay,
    +			Object cell)
    +	{
    +		if (overlay instanceof Component)
    +		{
    +			Component comp = (Component) overlay;
    +
    +			if (comp.getParent() != null)
    +			{
    +				comp.setVisible(false);
    +				comp.getParent().remove(comp);
    +				eventSource.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,
    +						"cell", cell, "overlay", overlay));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Notified when an overlay has been removed from the graph. This
    +	 * implementation removes the given overlay from its parent if it is a
    +	 * component inside a component hierarchy.
    +	 */
    +	protected void updateCellOverlayComponent(mxCellState state,
    +			mxICellOverlay overlay)
    +	{
    +		if (overlay instanceof Component)
    +		{
    +			Component comp = (Component) overlay;
    +
    +			if (comp.getParent() == null)
    +			{
    +				getGraphControl().add(comp, 0);
    +			}
    +
    +			mxRectangle rect = overlay.getBounds(state);
    +
    +			if (rect != null)
    +			{
    +				comp.setBounds(rect.getRectangle());
    +				comp.setVisible(true);
    +			}
    +			else
    +			{
    +				comp.setVisible(false);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Removes all overlays in the graph.
    +	 */
    +	public void clearCellOverlays()
    +	{
    +		clearCellOverlays(null);
    +	}
    +
    +	/**
    +	 * Removes all overlays in the graph for the given cell and all its
    +	 * descendants. If no cell is specified then all overlays are removed from
    +	 * the graph. This implementation uses removeOverlays to remove the overlays
    +	 * from the individual cells.
    +	 * 
    +	 * @param cell
    +	 *            Optional cell that represents the root of the subtree to
    +	 *            remove the overlays from. Default is the root in the model.
    +	 */
    +	public void clearCellOverlays(Object cell)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +
    +		if (cell == null)
    +		{
    +			cell = model.getRoot();
    +		}
    +
    +		removeCellOverlays(cell);
    +
    +		// Recursively removes all overlays from the children
    +		int childCount = model.getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object child = model.getChildAt(cell, i);
    +			clearCellOverlays(child); // recurse
    +		}
    +	}
    +
    +	/**
    +	 * Creates an overlay for the given cell using the warning and image or
    +	 * warningImage and returns the new overlay. If the warning is null or a
    +	 * zero length string, then all overlays are removed from the cell instead.
    +	 * 
    +	 * @param cell
    +	 *            Cell whose warning should be set.
    +	 * @param warning
    +	 *            String that represents the warning to be displayed.
    +	 */
    +	public mxICellOverlay setCellWarning(Object cell, String warning)
    +	{
    +		return setCellWarning(cell, warning, null, false);
    +	}
    +
    +	/**
    +	 * Creates an overlay for the given cell using the warning and image or
    +	 * warningImage and returns the new overlay. If the warning is null or a
    +	 * zero length string, then all overlays are removed from the cell instead.
    +	 * 
    +	 * @param cell
    +	 *            Cell whose warning should be set.
    +	 * @param warning
    +	 *            String that represents the warning to be displayed.
    +	 * @param icon
    +	 *            Optional image to be used for the overlay. Default is
    +	 *            warningImageBasename.
    +	 */
    +	public mxICellOverlay setCellWarning(Object cell, String warning,
    +			ImageIcon icon)
    +	{
    +		return setCellWarning(cell, warning, icon, false);
    +	}
    +
    +	/**
    +	 * Creates an overlay for the given cell using the warning and image or
    +	 * warningImage and returns the new overlay. If the warning is null or a
    +	 * zero length string, then all overlays are removed from the cell instead.
    +	 * 
    +	 * @param cell
    +	 *            Cell whose warning should be set.
    +	 * @param warning
    +	 *            String that represents the warning to be displayed.
    +	 * @param icon
    +	 *            Optional image to be used for the overlay. Default is
    +	 *            warningImageBasename.
    +	 * @param select
    +	 *            Optional boolean indicating if a click on the overlay should
    +	 *            select the corresponding cell. Default is false.
    +	 */
    +	public mxICellOverlay setCellWarning(final Object cell, String warning,
    +			ImageIcon icon, boolean select)
    +	{
    +		if (warning != null && warning.length() > 0)
    +		{
    +			icon = (icon != null) ? icon : warningIcon;
    +
    +			// Creates the overlay with the image and warning
    +			mxCellOverlay overlay = new mxCellOverlay(icon, warning);
    +
    +			// Adds a handler for single mouseclicks to select the cell
    +			if (select)
    +			{
    +				overlay.addMouseListener(new MouseAdapter()
    +				{
    +					/**
    +					 * Selects the associated cell in the graph
    +					 */
    +					public void mousePressed(MouseEvent e)
    +					{
    +						if (getGraph().isEnabled())
    +						{
    +							getGraph().setSelectionCell(cell);
    +						}
    +					}
    +				});
    +
    +				overlay.setCursor(new Cursor(Cursor.HAND_CURSOR));
    +			}
    +
    +			// Sets and returns the overlay in the graph
    +			return addCellOverlay(cell, overlay);
    +		}
    +		else
    +		{
    +			removeCellOverlays(cell);
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns a hashtable with all entries from the overlays variable where a
    +	 * cell still exists in the model. The entries are removed from the global
    +	 * hashtable so that the remaining entries reflect those whose cell have
    +	 * been removed from the model. If no state is available for a given cell
    +	 * then its overlays are temporarly removed from the rendering control, but
    +	 * kept in the result.
    +	 */
    +	public Hashtable<Object, mxICellOverlay[]> updateCellOverlays(Object cell)
    +	{
    +		Hashtable<Object, mxICellOverlay[]> result = new Hashtable<Object, mxICellOverlay[]>();
    +		mxICellOverlay[] c = overlays.remove(cell);
    +		mxCellState state = getGraph().getView().getState(cell);
    +
    +		if (c != null)
    +		{
    +			if (state != null)
    +			{
    +				for (int i = 0; i < c.length; i++)
    +				{
    +					updateCellOverlayComponent(state, c[i]);
    +				}
    +			}
    +			else
    +			{
    +				for (int i = 0; i < c.length; i++)
    +				{
    +					removeCellOverlayComponent(c[i], cell);
    +				}
    +			}
    +
    +			result.put(cell, c);
    +		}
    +
    +		int childCount = getGraph().getModel().getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			result.putAll(updateCellOverlays(getGraph().getModel().getChildAt(
    +					cell, i)));
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void paintBackground(Graphics g)
    +	{
    +		Rectangle clip = g.getClipBounds();
    +		Rectangle rect = paintBackgroundPage(g);
    +
    +		if (isPageVisible())
    +		{
    +			g.clipRect(rect.x + 1, rect.y + 1, rect.width - 1, rect.height - 1);
    +		}
    +
    +		// Paints the clipped background image
    +		paintBackgroundImage(g);
    +
    +		// Paints the grid directly onto the graphics
    +		paintGrid(g);
    +		g.setClip(clip);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Rectangle paintBackgroundPage(Graphics g)
    +	{
    +		mxPoint translate = graph.getView().getTranslate();
    +		double scale = graph.getView().getScale();
    +
    +		int x0 = (int) Math.round(translate.getX() * scale) - 1;
    +		int y0 = (int) Math.round(translate.getY() * scale) - 1;
    +
    +		Dimension d = getPreferredSizeForPage();
    +		int w = (int) Math.round(d.width * scale) + 2;
    +		int h = (int) Math.round(d.height * scale) + 2;
    +
    +		if (isPageVisible())
    +		{
    +			// Draws the background behind the page
    +			Color c = getPageBackgroundColor();
    +			
    +			if (c != null)
    +			{
    +				g.setColor(c);
    +				mxUtils.fillClippedRect(g, 0, 0, getGraphControl().getWidth(),
    +						getGraphControl().getHeight());
    +			}
    +
    +			// Draws the page drop shadow
    +			c = getPageShadowColor();
    +			
    +			if (c != null)
    +			{
    +				g.setColor(c);
    +				mxUtils.fillClippedRect(g, x0 + w, y0 + 6, 6, h - 6);
    +				mxUtils.fillClippedRect(g, x0 + 8, y0 + h, w - 2, 6);
    +			}
    +
    +			// Draws the page
    +			Color bg = getBackground();
    +
    +			if (getViewport().isOpaque())
    +			{
    +				bg = getViewport().getBackground();
    +			}
    +
    +			g.setColor(bg);
    +			mxUtils.fillClippedRect(g, x0 + 1, y0 + 1, w, h);
    +
    +			// Draws the page border
    +			c = getPageBorderColor();
    +			
    +			if (c != null)
    +			{
    +				g.setColor(c);
    +				g.drawRect(x0, y0, w, h);
    +			}
    +		}
    +
    +		if (isPageBreaksVisible()
    +				&& (horizontalPageCount > 1 || verticalPageCount > 1))
    +		{
    +			// Draws the pagebreaks
    +			// TODO: Use clipping
    +			Graphics2D g2 = (Graphics2D) g;
    +			Stroke previousStroke = g2.getStroke();
    +
    +			g2.setStroke(new BasicStroke(1, BasicStroke.CAP_BUTT,
    +					BasicStroke.JOIN_MITER, 10.0f, new float[] { 1, 2 }, 0));
    +			g2.setColor(pageBreakColor);
    +
    +			for (int i = 1; i <= horizontalPageCount - 1; i++)
    +			{
    +				int dx = i * w / horizontalPageCount;
    +				g2.drawLine(x0 + dx, y0 + 1, x0 + dx, y0 + h);
    +			}
    +
    +			for (int i = 1; i <= verticalPageCount - 1; i++)
    +			{
    +				int dy = i * h / verticalPageCount;
    +				g2.drawLine(x0 + 1, y0 + dy, x0 + w, y0 + dy);
    +			}
    +
    +			// Restores the graphics
    +			g2.setStroke(previousStroke);
    +		}
    +
    +		return new Rectangle(x0, y0, w, h);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void paintBackgroundImage(Graphics g)
    +	{
    +		if (backgroundImage != null)
    +		{
    +			mxPoint translate = graph.getView().getTranslate();
    +			double scale = graph.getView().getScale();
    +
    +			g.drawImage(backgroundImage.getImage(),
    +					(int) (translate.getX() * scale),
    +					(int) (translate.getY() * scale),
    +					(int) (backgroundImage.getIconWidth() * scale),
    +					(int) (backgroundImage.getIconHeight() * scale), this);
    +		}
    +	}
    +
    +	/**
    +	 * Paints the grid onto the given graphics object.
    +	 */
    +	protected void paintGrid(Graphics g)
    +	{
    +		if (isGridVisible())
    +		{
    +			g.setColor(getGridColor());
    +			Rectangle clip = g.getClipBounds();
    +
    +			if (clip == null)
    +			{
    +				clip = getGraphControl().getBounds();
    +			}
    +
    +			double left = clip.getX();
    +			double top = clip.getY();
    +			double right = left + clip.getWidth();
    +			double bottom = top + clip.getHeight();
    +
    +			// Double the grid line spacing if smaller than half the gridsize
    +			int style = getGridStyle();
    +			int gridSize = graph.getGridSize();
    +			int minStepping = gridSize;
    +
    +			// Smaller stepping for certain styles
    +			if (style == GRID_STYLE_CROSS || style == GRID_STYLE_DOT)
    +			{
    +				minStepping /= 2;
    +			}
    +
    +			// Fetches some global display state information
    +			mxPoint trans = graph.getView().getTranslate();
    +			double scale = graph.getView().getScale();
    +			double tx = trans.getX() * scale;
    +			double ty = trans.getY() * scale;
    +
    +			// Sets the distance of the grid lines in pixels
    +			double stepping = gridSize * scale;
    +
    +			if (stepping < minStepping)
    +			{
    +				int count = (int) Math
    +						.round(Math.ceil(minStepping / stepping) / 2) * 2;
    +				stepping = count * stepping;
    +			}
    +
    +			double xs = Math.floor((left - tx) / stepping) * stepping + tx;
    +			double xe = Math.ceil(right / stepping) * stepping;
    +			double ys = Math.floor((top - ty) / stepping) * stepping + ty;
    +			double ye = Math.ceil(bottom / stepping) * stepping;
    +
    +			switch (style)
    +			{
    +				case GRID_STYLE_CROSS:
    +				{
    +					// Sets the dot size
    +					int cs = (stepping > 16.0) ? 2 : 1;
    +
    +					for (double x = xs; x <= xe; x += stepping)
    +					{
    +						for (double y = ys; y <= ye; y += stepping)
    +						{
    +							// FIXME: Workaround for rounding errors when adding
    +							// stepping to
    +							// xs or ys multiple times (leads to double grid lines
    +							// when zoom
    +							// is set to eg. 121%)
    +							x = Math.round((x - tx) / stepping) * stepping + tx;
    +							y = Math.round((y - ty) / stepping) * stepping + ty;
    +
    +							int ix = (int) Math.round(x);
    +							int iy = (int) Math.round(y);
    +							g.drawLine(ix - cs, iy, ix + cs, iy);
    +							g.drawLine(ix, iy - cs, ix, iy + cs);
    +						}
    +					}
    +
    +					break;
    +				}
    +				case GRID_STYLE_LINE:
    +				{
    +					xe += (int) Math.ceil(stepping);
    +					ye += (int) Math.ceil(stepping);
    +
    +					int ixs = (int) Math.round(xs);
    +					int ixe = (int) Math.round(xe);
    +					int iys = (int) Math.round(ys);
    +					int iye = (int) Math.round(ye);
    +
    +					for (double x = xs; x <= xe; x += stepping)
    +					{
    +						// FIXME: Workaround for rounding errors when adding
    +						// stepping to
    +						// xs or ys multiple times (leads to double grid lines when
    +						// zoom
    +						// is set to eg. 121%)
    +						x = Math.round((x - tx) / stepping) * stepping + tx;
    +
    +						int ix = (int) Math.round(x);
    +						g.drawLine(ix, iys, ix, iye);
    +					}
    +
    +					for (double y = ys; y <= ye; y += stepping)
    +					{
    +
    +						// FIXME: Workaround for rounding errors when adding
    +						// stepping to
    +						// xs or ys multiple times (leads to double grid lines when
    +						// zoom
    +						// is set to eg. 121%)
    +						y = Math.round((y - ty) / stepping) * stepping + ty;
    +
    +						int iy = (int) Math.round(y);
    +						g.drawLine(ixs, iy, ixe, iy);
    +					}
    +
    +					break;
    +				}
    +				case GRID_STYLE_DASHED:
    +				{
    +					Graphics2D g2 = (Graphics2D) g;
    +					Stroke stroke = g2.getStroke();
    +
    +					xe += (int) Math.ceil(stepping);
    +					ye += (int) Math.ceil(stepping);
    +
    +					int ixs = (int) Math.round(xs);
    +					int ixe = (int) Math.round(xe);
    +					int iys = (int) Math.round(ys);
    +					int iye = (int) Math.round(ye);
    +
    +					// Creates a set of strokes with individual dash offsets
    +					// for each direction
    +					Stroke[] strokes = new Stroke[] {
    +							new BasicStroke(1, BasicStroke.CAP_BUTT,
    +									BasicStroke.JOIN_MITER, 1, new float[] { 3,
    +											1 }, Math.max(0, iys) % 4),
    +							new BasicStroke(1, BasicStroke.CAP_BUTT,
    +									BasicStroke.JOIN_MITER, 1, new float[] { 2,
    +											2 }, Math.max(0, iys) % 4),
    +							new BasicStroke(1, BasicStroke.CAP_BUTT,
    +									BasicStroke.JOIN_MITER, 1, new float[] { 1,
    +											1 }, 0),
    +							new BasicStroke(1, BasicStroke.CAP_BUTT,
    +									BasicStroke.JOIN_MITER, 1, new float[] { 2,
    +											2 }, Math.max(0, iys) % 4) };
    +
    +					for (double x = xs; x <= xe; x += stepping)
    +					{
    +						g2.setStroke(strokes[((int) (x / stepping))
    +								% strokes.length]);
    +
    +						// FIXME: Workaround for rounding errors when adding
    +						// stepping to
    +						// xs or ys multiple times (leads to double grid lines when
    +						// zoom
    +						// is set to eg. 121%)
    +						double xx = Math.round((x - tx) / stepping) * stepping
    +								+ tx;
    +
    +						int ix = (int) Math.round(xx);
    +						g.drawLine(ix, iys, ix, iye);
    +					}
    +
    +					strokes = new Stroke[] {
    +							new BasicStroke(1, BasicStroke.CAP_BUTT,
    +									BasicStroke.JOIN_MITER, 1, new float[] { 3,
    +											1 }, Math.max(0, ixs) % 4),
    +							new BasicStroke(1, BasicStroke.CAP_BUTT,
    +									BasicStroke.JOIN_MITER, 1, new float[] { 2,
    +											2 }, Math.max(0, ixs) % 4),
    +							new BasicStroke(1, BasicStroke.CAP_BUTT,
    +									BasicStroke.JOIN_MITER, 1, new float[] { 1,
    +											1 }, 0),
    +							new BasicStroke(1, BasicStroke.CAP_BUTT,
    +									BasicStroke.JOIN_MITER, 1, new float[] { 2,
    +											2 }, Math.max(0, ixs) % 4) };
    +
    +					for (double y = ys; y <= ye; y += stepping)
    +					{
    +						g2.setStroke(strokes[((int) (y / stepping))
    +								% strokes.length]);
    +
    +						// FIXME: Workaround for rounding errors when adding
    +						// stepping to
    +						// xs or ys multiple times (leads to double grid lines when
    +						// zoom
    +						// is set to eg. 121%)
    +						double yy = Math.round((y - ty) / stepping) * stepping
    +								+ ty;
    +
    +						int iy = (int) Math.round(yy);
    +						g.drawLine(ixs, iy, ixe, iy);
    +					}
    +
    +					g2.setStroke(stroke);
    +
    +					break;
    +				}
    +				default: // DOT_GRID_MODE
    +				{
    +					for (double x = xs; x <= xe; x += stepping)
    +					{
    +
    +						for (double y = ys; y <= ye; y += stepping)
    +						{
    +							// FIXME: Workaround for rounding errors when adding
    +							// stepping to
    +							// xs or ys multiple times (leads to double grid lines
    +							// when zoom
    +							// is set to eg. 121%)
    +							x = Math.round((x - tx) / stepping) * stepping + tx;
    +							y = Math.round((y - ty) / stepping) * stepping + ty;
    +
    +							int ix = (int) Math.round(x);
    +							int iy = (int) Math.round(y);
    +							g.drawLine(ix, iy, ix, iy);
    +						}
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	//
    +	// Triple Buffering
    +	//
    +
    +	/**
    +	 * Updates the buffer (if one exists) and repaints the given cell state.
    +	 */
    +	public void redraw(mxCellState state)
    +	{
    +		if (state != null)
    +		{
    +			Rectangle dirty = state.getBoundingBox().getRectangle();
    +			repaintTripleBuffer(new Rectangle(dirty));
    +			dirty = SwingUtilities.convertRectangle(graphControl, dirty, this);
    +			repaint(dirty);
    +		}
    +	}
    +
    +	/**
    +	 * Checks if the triple buffer exists and creates a new one if it does not.
    +	 * Also compares the size of the buffer with the size of the graph and drops
    +	 * the buffer if it has a different size.
    +	 */
    +	public void checkTripleBuffer()
    +	{
    +		mxRectangle bounds = graph.getGraphBounds();
    +		int width = (int) Math.ceil(bounds.getX() + bounds.getWidth() + 2);
    +		int height = (int) Math.ceil(bounds.getY() + bounds.getHeight() + 2);
    +
    +		if (tripleBuffer != null)
    +		{
    +			if (tripleBuffer.getWidth() != width
    +					|| tripleBuffer.getHeight() != height)
    +			{
    +				// Resizes the buffer (destroys existing and creates new)
    +				destroyTripleBuffer();
    +			}
    +		}
    +
    +		if (tripleBuffer == null)
    +		{
    +			createTripleBuffer(width, height);
    +		}
    +	}
    +
    +	/**
    +	 * Creates the tripleBufferGraphics and tripleBuffer for the given dimension
    +	 * and draws the complete graph onto the triplebuffer.
    +	 * 
    +	 * @param width
    +	 * @param height
    +	 */
    +	protected void createTripleBuffer(int width, int height)
    +	{
    +		try
    +		{
    +			tripleBuffer = mxUtils.createBufferedImage(width, height, null);
    +			tripleBufferGraphics = tripleBuffer.createGraphics();
    +			mxUtils.setAntiAlias(tripleBufferGraphics, antiAlias, textAntiAlias);
    +
    +			// Repaints the complete buffer
    +			repaintTripleBuffer(null);
    +		}
    +		catch (OutOfMemoryError error)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * Destroys the tripleBuffer and tripleBufferGraphics objects.
    +	 */
    +	public void destroyTripleBuffer()
    +	{
    +		if (tripleBuffer != null)
    +		{
    +			tripleBuffer = null;
    +			tripleBufferGraphics.dispose();
    +			tripleBufferGraphics = null;
    +		}
    +	}
    +
    +	/**
    +	 * Clears and repaints the triple buffer at the given rectangle or repaints
    +	 * the complete buffer if no rectangle is specified.
    +	 * 
    +	 * @param dirty
    +	 */
    +	public void repaintTripleBuffer(Rectangle dirty)
    +	{
    +		if (tripleBuffered && tripleBufferGraphics != null)
    +		{
    +			if (dirty == null)
    +			{
    +				dirty = new Rectangle(tripleBuffer.getWidth(),
    +						tripleBuffer.getHeight());
    +			}
    +
    +			// Clears and repaints the dirty rectangle using the
    +			// graphics canvas as a renderer
    +			mxUtils.clearRect(tripleBufferGraphics, dirty, null);
    +			tripleBufferGraphics.setClip(dirty);
    +			graphControl.drawGraph(tripleBufferGraphics, true);
    +			tripleBufferGraphics.setClip(null);
    +		}
    +	}
    +
    +	//
    +	// Redirected to event source
    +	//
    +
    +	/**
    +	 * @return Returns true if event dispatching is enabled in the event source.
    +	 * @see com.mxgraph.util.mxEventSource#isEventsEnabled()
    +	 */
    +	public boolean isEventsEnabled()
    +	{
    +		return eventSource.isEventsEnabled();
    +	}
    +
    +	/**
    +	 * @param eventsEnabled
    +	 * @see com.mxgraph.util.mxEventSource#setEventsEnabled(boolean)
    +	 */
    +	public void setEventsEnabled(boolean eventsEnabled)
    +	{
    +		eventSource.setEventsEnabled(eventsEnabled);
    +	}
    +
    +	/**
    +	 * @param eventName
    +	 * @param listener
    +	 * @see com.mxgraph.util.mxEventSource#addListener(java.lang.String,
    +	 *      com.mxgraph.util.mxEventSource.mxIEventListener)
    +	 */
    +	public void addListener(String eventName, mxIEventListener listener)
    +	{
    +		eventSource.addListener(eventName, listener);
    +	}
    +
    +	/**
    +	 * @param listener
    +	 *            Listener instance.
    +	 */
    +	public void removeListener(mxIEventListener listener)
    +	{
    +		eventSource.removeListener(listener);
    +	}
    +
    +	/**
    +	 * @param eventName
    +	 *            Name of the event.
    +	 * @param listener
    +	 *            Listener instance.
    +	 */
    +	public void removeListener(mxIEventListener listener, String eventName)
    +	{
    +		eventSource.removeListener(listener, eventName);
    +	}
    +
    +	/**
    +	 * 
    +	 * @author gaudenz
    +	 * 
    +	 */
    +	public class mxGraphControl extends JComponent
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = -8916603170766739124L;
    +
    +		/**
    +		 * Specifies a translation for painting. This should only be used during
    +		 * mouse drags and must be reset after any interactive repaints. Default
    +		 * is (0,0). This should not be null.
    +		 */
    +		protected Point translate = new Point(0, 0);
    +
    +		/**
    +		 * 
    +		 */
    +		public mxGraphControl()
    +		{
    +			addMouseListener(new MouseAdapter()
    +			{
    +				public void mouseReleased(MouseEvent e)
    +				{
    +					if (translate.x != 0 || translate.y != 0)
    +					{
    +						translate = new Point(0, 0);
    +						repaint();
    +					}
    +				}
    +			});
    +		}
    +
    +		/**
    +		 * Returns the translate.
    +		 */
    +		public Point getTranslate()
    +		{
    +			return translate;
    +		}
    +
    +		/**
    +		 * Sets the translate.
    +		 */
    +		public void setTranslate(Point value)
    +		{
    +			translate = value;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public mxGraphComponent getGraphContainer()
    +		{
    +			return mxGraphComponent.this;
    +		}
    +
    +		/**
    +		 * Overrides parent method to add extend flag for making the control
    +		 * larger during previews.
    +		 */
    +		public void scrollRectToVisible(Rectangle aRect, boolean extend)
    +		{
    +			super.scrollRectToVisible(aRect);
    +
    +			if (extend)
    +			{
    +				extendComponent(aRect);
    +			}
    +		}
    +
    +		/**
    +		 * Implements extension of the component in all directions. For
    +		 * extension below the origin (into negative space) the translate will
    +		 * temporaly be used and reset with the next mouse released event.
    +		 */
    +		protected void extendComponent(Rectangle rect)
    +		{
    +			int right = rect.x + rect.width;
    +			int bottom = rect.y + rect.height;
    +
    +			Dimension d = new Dimension(getPreferredSize());
    +			Dimension sp = getScaledPreferredSizeForGraph();
    +			mxRectangle min = graph.getMinimumGraphSize();
    +			double scale = graph.getView().getScale();
    +			boolean update = false;
    +
    +			if (rect.x < 0)
    +			{
    +				translate.x = Math.max(translate.x, Math.max(0, -rect.x));
    +				d.width = sp.width;
    +
    +				if (min != null)
    +				{
    +					d.width = (int) Math.max(d.width,
    +							Math.round(min.getWidth() * scale));
    +				}
    +
    +				d.width += translate.x;
    +				update = true;
    +			}
    +			else if (right > getWidth())
    +			{
    +				d.width = Math.max(right, getWidth());
    +				update = true;
    +			}
    +
    +			if (rect.y < 0)
    +			{
    +				translate.y = Math.max(translate.y, Math.max(0, -rect.y));
    +				d.height = sp.height;
    +
    +				if (min != null)
    +				{
    +					d.height = (int) Math.max(d.height,
    +							Math.round(min.getHeight() * scale));
    +				}
    +
    +				d.height += translate.y;
    +				update = true;
    +			}
    +			else if (bottom > getHeight())
    +			{
    +				d.height = Math.max(bottom, getHeight());
    +				update = true;
    +			}
    +
    +			if (update)
    +			{
    +				setPreferredSize(d);
    +				setMinimumSize(d);
    +				revalidate();
    +			}
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public String getToolTipText(MouseEvent e)
    +		{
    +			String tip = getSelectionCellsHandler().getToolTipText(e);
    +
    +			if (tip == null)
    +			{
    +				Object cell = getCellAt(e.getX(), e.getY());
    +
    +				if (cell != null)
    +				{
    +					if (hitFoldingIcon(cell, e.getX(), e.getY()))
    +					{
    +						tip = mxResources.get("collapse-expand");
    +					}
    +					else
    +					{
    +						tip = graph.getToolTipForCell(cell);
    +					}
    +				}
    +			}
    +
    +			if (tip != null && tip.length() > 0)
    +			{
    +				return tip;
    +			}
    +
    +			return super.getToolTipText(e);
    +		}
    +
    +		/**
    +		 * Updates the preferred size for the given scale if the page size
    +		 * should be preferred or the page is visible.
    +		 */
    +		public void updatePreferredSize()
    +		{
    +			double scale = graph.getView().getScale();
    +			Dimension d = null;
    +
    +			if (preferPageSize || pageVisible)
    +			{
    +				Dimension page = getPreferredSizeForPage();
    +
    +				if (!preferPageSize)
    +				{
    +					page.width += 2 * getHorizontalPageBorder();
    +					page.height += 2 * getVerticalPageBorder();
    +				}
    +
    +				d = new Dimension((int) (page.width * scale),
    +						(int) (page.height * scale));
    +			}
    +			else
    +			{
    +				d = getScaledPreferredSizeForGraph();
    +			}
    +
    +			mxRectangle min = graph.getMinimumGraphSize();
    +
    +			if (min != null)
    +			{
    +				d.width = (int) Math.max(d.width,
    +						Math.round(min.getWidth() * scale));
    +				d.height = (int) Math.max(d.height,
    +						Math.round(min.getHeight() * scale));
    +			}
    +
    +			if (!getPreferredSize().equals(d))
    +			{
    +				setPreferredSize(d);
    +				setMinimumSize(d);
    +				revalidate();
    +			}
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void paint(Graphics g)
    +		{
    +			g.translate(translate.x, translate.y);
    +			eventSource.fireEvent(new mxEventObject(mxEvent.BEFORE_PAINT, "g",
    +					g));
    +			super.paint(g);
    +			eventSource
    +					.fireEvent(new mxEventObject(mxEvent.AFTER_PAINT, "g", g));
    +			g.translate(-translate.x, -translate.y);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void paintComponent(Graphics g)
    +		{
    +			super.paintComponent(g);
    +
    +			// Draws the background
    +			paintBackground(g);
    +
    +			// Creates or destroys the triple buffer as needed
    +			if (tripleBuffered)
    +			{
    +				checkTripleBuffer();
    +			}
    +			else if (tripleBuffer != null)
    +			{
    +				destroyTripleBuffer();
    +			}
    +
    +			// Paints the buffer in the canvas onto the dirty region
    +			if (tripleBuffer != null)
    +			{
    +				mxUtils.drawImageClip(g, tripleBuffer, this);
    +			}
    +
    +			// Paints the graph directly onto the graphics
    +			else
    +			{
    +				Graphics2D g2 = (Graphics2D) g;
    +				RenderingHints tmp = g2.getRenderingHints();
    +
    +				// Sets the graphics in the canvas
    +				try
    +				{
    +					mxUtils.setAntiAlias(g2, antiAlias, textAntiAlias);
    +					drawGraph(g2, true);
    +				}
    +				finally
    +				{
    +					// Restores the graphics state
    +					g2.setRenderingHints(tmp);
    +				}
    +			}
    +
    +			eventSource.fireEvent(new mxEventObject(mxEvent.PAINT, "g", g));
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void drawGraph(Graphics2D g, boolean drawLabels)
    +		{
    +			Graphics2D previousGraphics = canvas.getGraphics();
    +			boolean previousDrawLabels = canvas.isDrawLabels();
    +			Point previousTranslate = canvas.getTranslate();
    +			double previousScale = canvas.getScale();
    +
    +			try
    +			{
    +				canvas.setScale(graph.getView().getScale());
    +				canvas.setDrawLabels(drawLabels);
    +				canvas.setTranslate(0, 0);
    +				canvas.setGraphics(g);
    +
    +				// Draws the graph using the graphics canvas
    +				drawFromRootCell();
    +			}
    +			finally
    +			{
    +				canvas.setScale(previousScale);
    +				canvas.setTranslate(previousTranslate.x, previousTranslate.y);
    +				canvas.setDrawLabels(previousDrawLabels);
    +				canvas.setGraphics(previousGraphics);
    +			}
    +		}
    +
    +		/**
    +		 * Hook to draw the root cell into the canvas.
    +		 */
    +		protected void drawFromRootCell()
    +		{
    +			drawCell(canvas, graph.getModel().getRoot());
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		protected boolean hitClip(mxGraphics2DCanvas canvas, mxCellState state)
    +		{
    +			Rectangle rect = getExtendedCellBounds(state);
    +
    +			return (rect == null || canvas.getGraphics().hitClip(rect.x,
    +					rect.y, rect.width, rect.height));
    +		}
    +
    +		/**
    +		 * @param state the cached state of the cell whose extended bounds are to be calculated
    +		 * @return the bounds of the cell, including the label and shadow and allowing for rotation
    +		 */
    +		protected Rectangle getExtendedCellBounds(mxCellState state)
    +		{
    +			Rectangle rect = null;
    +
    +			// Takes rotation into account
    +			double rotation = mxUtils.getDouble(state.getStyle(),
    +					mxConstants.STYLE_ROTATION);
    +			mxRectangle tmp = mxUtils.getBoundingBox(new mxRectangle(state),
    +					rotation);
    +
    +			// Adds scaled stroke width
    +			int border = (int) Math
    +					.ceil(mxUtils.getDouble(state.getStyle(),
    +							mxConstants.STYLE_STROKEWIDTH)
    +							* graph.getView().getScale()) + 1;
    +			tmp.grow(border);
    +
    +			if (mxUtils.isTrue(state.getStyle(), mxConstants.STYLE_SHADOW))
    +			{
    +				tmp.setWidth(tmp.getWidth() + mxConstants.SHADOW_OFFSETX);
    +				tmp.setHeight(tmp.getHeight() + mxConstants.SHADOW_OFFSETX);
    +			}
    +
    +			// Adds the bounds of the label
    +			if (state.getLabelBounds() != null)
    +			{
    +				tmp.add(state.getLabelBounds());
    +			}
    +
    +			rect = tmp.getRectangle();
    +			return rect;
    +		}
    +
    +		/**
    +		 * Draws the given cell onto the specified canvas. This is a modified
    +		 * version of mxGraph.drawCell which paints the label only if the
    +		 * corresponding cell is not being edited and invokes the cellDrawn hook
    +		 * after all descendants have been painted.
    +		 * 
    +		 * @param canvas
    +		 *            Canvas onto which the cell should be drawn.
    +		 * @param cell
    +		 *            Cell that should be drawn onto the canvas.
    +		 */
    +		public void drawCell(mxICanvas canvas, Object cell)
    +		{
    +			mxCellState state = graph.getView().getState(cell);
    +
    +			if (state != null
    +					&& isCellDisplayable(state.getCell())
    +					&& (!(canvas instanceof mxGraphics2DCanvas) || hitClip(
    +							(mxGraphics2DCanvas) canvas, state)))
    +			{
    +				graph.drawState(canvas, state,
    +						cell != cellEditor.getEditingCell());
    +			}
    +
    +			// Handles special ordering for edges (all in foreground
    +			// or background) or draws all children in order
    +			boolean edgesFirst = graph.isKeepEdgesInBackground();
    +			boolean edgesLast = graph.isKeepEdgesInForeground();
    +
    +			if (edgesFirst)
    +			{
    +				drawChildren(cell, true, false);
    +			}
    +
    +			drawChildren(cell, !edgesFirst && !edgesLast, true);
    +
    +			if (edgesLast)
    +			{
    +				drawChildren(cell, true, false);
    +			}
    +
    +			if (state != null)
    +			{
    +				cellDrawn(canvas, state);
    +			}
    +		}
    +
    +		/**
    +		 * Draws the child edges and/or all other children in the given cell
    +		 * depending on the boolean arguments.
    +		 */
    +		protected void drawChildren(Object cell, boolean edges, boolean others)
    +		{
    +			mxIGraphModel model = graph.getModel();
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				Object child = model.getChildAt(cell, i);
    +				boolean isEdge = model.isEdge(child);
    +
    +				if ((others && !isEdge) || (edges && isEdge))
    +				{
    +					drawCell(canvas, model.getChildAt(cell, i));
    +				}
    +			}
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		protected void cellDrawn(mxICanvas canvas, mxCellState state)
    +		{
    +			if (isFoldingEnabled() && canvas instanceof mxGraphics2DCanvas)
    +			{
    +				mxIGraphModel model = graph.getModel();
    +				mxGraphics2DCanvas g2c = (mxGraphics2DCanvas) canvas;
    +				Graphics2D g2 = g2c.getGraphics();
    +
    +				// Draws the collapse/expand icons
    +				boolean isEdge = model.isEdge(state.getCell());
    +
    +				if (state.getCell() != graph.getCurrentRoot()
    +						&& (model.isVertex(state.getCell()) || isEdge))
    +				{
    +					ImageIcon icon = getFoldingIcon(state);
    +
    +					if (icon != null)
    +					{
    +						Rectangle bounds = getFoldingIconBounds(state, icon);
    +						g2.drawImage(icon.getImage(), bounds.x, bounds.y,
    +								bounds.width, bounds.height, this);
    +					}
    +				}
    +			}
    +		}
    +
    +		/**
    +		 * Returns true if the given cell is not the current root or the root in
    +		 * the model. This can be overridden to not render certain cells in the
    +		 * graph display.
    +		 */
    +		protected boolean isCellDisplayable(Object cell)
    +		{
    +			return cell != graph.getView().getCurrentRoot()
    +					&& cell != graph.getModel().getRoot();
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class mxMouseRedirector implements MouseListener,
    +			MouseMotionListener
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		protected mxGraphComponent graphComponent;
    +
    +		/**
    +		 * 
    +		 */
    +		public mxMouseRedirector(mxGraphComponent graphComponent)
    +		{
    +			this.graphComponent = graphComponent;
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see
    +		 * java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseClicked(MouseEvent e)
    +		{
    +			graphComponent.getGraphControl().dispatchEvent(
    +					SwingUtilities.convertMouseEvent(e.getComponent(), e,
    +							graphComponent.getGraphControl()));
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see
    +		 * java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseEntered(MouseEvent e)
    +		{
    +			// Redirecting this would cause problems on the Mac
    +			// and is technically incorrect anyway
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see
    +		 * java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseExited(MouseEvent e)
    +		{
    +			mouseClicked(e);
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see
    +		 * java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
    +		 */
    +		public void mousePressed(MouseEvent e)
    +		{
    +			mouseClicked(e);
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see
    +		 * java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseReleased(MouseEvent e)
    +		{
    +			mouseClicked(e);
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see
    +		 * java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent
    +		 * )
    +		 */
    +		public void mouseDragged(MouseEvent e)
    +		{
    +			mouseClicked(e);
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * 
    +		 * @see
    +		 * java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent
    +		 * )
    +		 */
    +		public void mouseMoved(MouseEvent e)
    +		{
    +			mouseClicked(e);
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/mxGraphOutline.java b/java/src/com/mxgraph/swing/mxGraphOutline.java
    new file mode 100644
    index 000000000..9d185db21
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/mxGraphOutline.java
    @@ -0,0 +1,973 @@
    +/**
    + * $Id: mxGraphOutline.java,v 1.25 2011-09-29 13:55:00 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing;
    +
    +import java.awt.BasicStroke;
    +import java.awt.Color;
    +import java.awt.Cursor;
    +import java.awt.Dimension;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.Stroke;
    +import java.awt.event.AdjustmentEvent;
    +import java.awt.event.AdjustmentListener;
    +import java.awt.event.ComponentAdapter;
    +import java.awt.event.ComponentEvent;
    +import java.awt.event.ComponentListener;
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseListener;
    +import java.awt.event.MouseMotionListener;
    +import java.awt.geom.AffineTransform;
    +import java.awt.image.BufferedImage;
    +
    +import javax.swing.JComponent;
    +import javax.swing.JScrollBar;
    +
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource.mxIEventListener;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxGraphView;
    +
    +/**
    + * An outline view for a specific graph component.
    + */
    +public class mxGraphOutline extends JComponent
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -2521103946905154267L;
    +
    +	/**
    +	 * 
    +	 */
    +	public static Color DEFAULT_ZOOMHANDLE_FILL = new Color(0, 255, 255);
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * TODO: Not yet implemented.
    +	 */
    +	protected BufferedImage tripleBuffer;
    +
    +	/**
    +	 * Holds the graphics of the triple buffer.
    +	 */
    +	protected Graphics2D tripleBufferGraphics;
    +
    +	/**
    +	 * True if the triple buffer needs a full repaint.
    +	 */
    +	protected boolean repaintBuffer = false;
    +
    +	/**
    +	 * Clip of the triple buffer to be repainted.
    +	 */
    +	protected mxRectangle repaintClip = null;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean tripleBuffered = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Rectangle finderBounds = new Rectangle();
    +
    +	/**
    +	 * 
    +	 */
    +	protected Point zoomHandleLocation = null;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean finderVisible = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean zoomHandleVisible = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean useScaledInstance = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean antiAlias = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean drawLabels = false;
    +
    +	/**
    +	 * Specifies if the outline should be zoomed to the page if the graph
    +	 * component is in page layout mode. Default is true.
    +	 */
    +	protected boolean fitPage = true;
    +
    +	/**
    +	 * Not yet implemented.
    +	 * 
    +	 * Border to add around the page bounds if wholePage is true.
    +	 * Default is 4.
    +	 */
    +	protected int outlineBorder = 10;
    +
    +	/**
    +	 * 
    +	 */
    +	protected MouseTracker tracker = new MouseTracker();
    +
    +	/**
    +	 * 
    +	 */
    +	protected double scale = 1;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Point translate = new Point();
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient boolean zoomGesture = false;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIEventListener repaintHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			updateScaleAndTranslate();
    +			mxRectangle dirty = (mxRectangle) evt.getProperty("region");
    +
    +			if (dirty != null)
    +			{
    +				repaintClip = new mxRectangle(dirty);
    +			}
    +			else
    +			{
    +				repaintBuffer = true;
    +			}
    +
    +			if (dirty != null)
    +			{
    +				updateFinder(true);
    +
    +				dirty.grow(1 / scale);
    +
    +				dirty.setX(dirty.getX() * scale + translate.x);
    +				dirty.setY(dirty.getY() * scale + translate.y);
    +				dirty.setWidth(dirty.getWidth() * scale);
    +				dirty.setHeight(dirty.getHeight() * scale);
    +
    +				repaint(dirty.getRectangle());
    +			}
    +			else
    +			{
    +				updateFinder(false);
    +				repaint();
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected ComponentListener componentHandler = new ComponentAdapter()
    +	{
    +		public void componentResized(ComponentEvent e)
    +		{
    +			if (updateScaleAndTranslate())
    +			{
    +				repaintBuffer = true;
    +				updateFinder(false);
    +				repaint();
    +			}
    +			else
    +			{
    +				updateFinder(true);
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected AdjustmentListener adjustmentHandler = new AdjustmentListener()
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		public void adjustmentValueChanged(AdjustmentEvent e)
    +		{
    +			if (updateScaleAndTranslate())
    +			{
    +				repaintBuffer = true;
    +				updateFinder(false);
    +				repaint();
    +			}
    +			else
    +			{
    +				updateFinder(true);
    +			}
    +		}
    +
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphOutline(mxGraphComponent graphComponent)
    +	{
    +		addComponentListener(componentHandler);
    +		addMouseMotionListener(tracker);
    +		addMouseListener(tracker);
    +		setGraphComponent(graphComponent);
    +		setEnabled(true);
    +		setOpaque(true);
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>tripleBuffered</code>.
    +	 * 
    +	 * @param tripleBuffered the tripleBuffered to set
    +	 */
    +	public void setTripleBuffered(boolean tripleBuffered)
    +	{
    +		boolean oldValue = this.tripleBuffered;
    +		this.tripleBuffered = tripleBuffered;
    +
    +		if (!tripleBuffered)
    +		{
    +			destroyTripleBuffer();
    +		}
    +
    +		firePropertyChange("tripleBuffered", oldValue, tripleBuffered);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isTripleBuffered()
    +	{
    +		return tripleBuffered;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>drawLabels</code>.
    +	 * 
    +	 * @param drawLabels the drawLabels to set
    +	 */
    +	public void setDrawLabels(boolean drawLabels)
    +	{
    +		boolean oldValue = this.drawLabels;
    +		this.drawLabels = drawLabels;
    +		repaintTripleBuffer(null);
    +
    +		firePropertyChange("drawLabels", oldValue, drawLabels);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isDrawLabels()
    +	{
    +		return drawLabels;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>antiAlias</code>.
    +	 * 
    +	 * @param antiAlias the antiAlias to set
    +	 */
    +	public void setAntiAlias(boolean antiAlias)
    +	{
    +		boolean oldValue = this.antiAlias;
    +		this.antiAlias = antiAlias;
    +		repaintTripleBuffer(null);
    +
    +		firePropertyChange("antiAlias", oldValue, antiAlias);
    +	}
    +
    +	/**
    +	 * @return the antiAlias
    +	 */
    +	public boolean isAntiAlias()
    +	{
    +		return antiAlias;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setVisible(boolean visible)
    +	{
    +		super.setVisible(visible);
    +
    +		// Frees memory if the outline is hidden
    +		if (!visible)
    +		{
    +			destroyTripleBuffer();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setFinderVisible(boolean visible)
    +	{
    +		finderVisible = visible;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setZoomHandleVisible(boolean visible)
    +	{
    +		zoomHandleVisible = visible;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>fitPage</code>.
    +	 * 
    +	 * @param fitPage the fitPage to set
    +	 */
    +	public void setFitPage(boolean fitPage)
    +	{
    +		boolean oldValue = this.fitPage;
    +		this.fitPage = fitPage;
    +
    +		if (updateScaleAndTranslate())
    +		{
    +			repaintBuffer = true;
    +			updateFinder(false);
    +		}
    +
    +		firePropertyChange("fitPage", oldValue, fitPage);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isFitPage()
    +	{
    +		return fitPage;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphComponent getGraphComponent()
    +	{
    +		return graphComponent;
    +	}
    +
    +	/**
    +	 * Fires a property change event for <code>graphComponent</code>.
    +	 * 
    +	 * @param graphComponent the graphComponent to set
    +	 */
    +	public void setGraphComponent(mxGraphComponent graphComponent)
    +	{
    +		mxGraphComponent oldValue = this.graphComponent;
    +
    +		if (this.graphComponent != null)
    +		{
    +			this.graphComponent.getGraph().removeListener(repaintHandler);
    +			this.graphComponent.getGraphControl().removeComponentListener(
    +					componentHandler);
    +			this.graphComponent.getHorizontalScrollBar()
    +					.removeAdjustmentListener(adjustmentHandler);
    +			this.graphComponent.getVerticalScrollBar()
    +					.removeAdjustmentListener(adjustmentHandler);
    +		}
    +
    +		this.graphComponent = graphComponent;
    +
    +		if (this.graphComponent != null)
    +		{
    +			this.graphComponent.getGraph().addListener(mxEvent.REPAINT,
    +					repaintHandler);
    +			this.graphComponent.getGraphControl().addComponentListener(
    +					componentHandler);
    +			this.graphComponent.getHorizontalScrollBar().addAdjustmentListener(
    +					adjustmentHandler);
    +			this.graphComponent.getVerticalScrollBar().addAdjustmentListener(
    +					adjustmentHandler);
    +		}
    +
    +		if (updateScaleAndTranslate())
    +		{
    +			repaintBuffer = true;
    +			repaint();
    +		}
    +
    +		firePropertyChange("graphComponent", oldValue, graphComponent);
    +	}
    +
    +	/**
    +	 * Checks if the triple buffer exists and creates a new one if
    +	 * it does not. Also compares the size of the buffer with the
    +	 * size of the graph and drops the buffer if it has a
    +	 * different size.
    +	 */
    +	public void checkTripleBuffer()
    +	{
    +		if (tripleBuffer != null)
    +		{
    +			if (tripleBuffer.getWidth() != getWidth()
    +					|| tripleBuffer.getHeight() != getHeight())
    +			{
    +				// Resizes the buffer (destroys existing and creates new)
    +				destroyTripleBuffer();
    +			}
    +		}
    +
    +		if (tripleBuffer == null)
    +		{
    +			createTripleBuffer(getWidth(), getHeight());
    +		}
    +	}
    +
    +	/**
    +	 * Creates the tripleBufferGraphics and tripleBuffer for the given
    +	 * dimension and draws the complete graph onto the triplebuffer.
    +	 * 
    +	 * @param width
    +	 * @param height
    +	 */
    +	protected void createTripleBuffer(int width, int height)
    +	{
    +		try
    +		{
    +			tripleBuffer = mxUtils.createBufferedImage(width, height, null);
    +			tripleBufferGraphics = tripleBuffer.createGraphics();
    +
    +			// Repaints the complete buffer
    +			repaintTripleBuffer(null);
    +		}
    +		catch (OutOfMemoryError error)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * Destroys the tripleBuffer and tripleBufferGraphics objects.
    +	 */
    +	public void destroyTripleBuffer()
    +	{
    +		if (tripleBuffer != null)
    +		{
    +			tripleBuffer = null;
    +			tripleBufferGraphics.dispose();
    +			tripleBufferGraphics = null;
    +		}
    +	}
    +
    +	/**
    +	 * Clears and repaints the triple buffer at the given rectangle or repaints
    +	 * the complete buffer if no rectangle is specified.
    +	 * 
    +	 * @param clip
    +	 */
    +	public void repaintTripleBuffer(Rectangle clip)
    +	{
    +		if (tripleBuffered && tripleBufferGraphics != null)
    +		{
    +			if (clip == null)
    +			{
    +				clip = new Rectangle(tripleBuffer.getWidth(),
    +						tripleBuffer.getHeight());
    +			}
    +
    +			// Clears and repaints the dirty rectangle using the
    +			// graphics canvas of the graph component as a renderer
    +			mxUtils.clearRect(tripleBufferGraphics, clip, null);
    +			tripleBufferGraphics.setClip(clip);
    +			paintGraph(tripleBufferGraphics);
    +			tripleBufferGraphics.setClip(null);
    +
    +			repaintBuffer = false;
    +			repaintClip = null;
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void updateFinder(boolean repaint)
    +	{
    +		Rectangle rect = graphComponent.getViewport().getViewRect();
    +
    +		int x = (int) Math.round(rect.x * scale);
    +		int y = (int) Math.round(rect.y * scale);
    +		int w = (int) Math.round((rect.x + rect.width) * scale) - x;
    +		int h = (int) Math.round((rect.y + rect.height) * scale) - y;
    +
    +		updateFinderBounds(new Rectangle(x + translate.x, y + translate.y,
    +				w + 1, h + 1), repaint);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void updateFinderBounds(Rectangle bounds, boolean repaint)
    +	{
    +		if (bounds != null && !bounds.equals(finderBounds))
    +		{
    +			Rectangle old = new Rectangle(finderBounds);
    +			finderBounds = bounds;
    +
    +			// LATER: Fix repaint region to be smaller
    +			if (repaint)
    +			{
    +				old = old.union(finderBounds);
    +				old.grow(3, 3);
    +				repaint(old);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paintComponent(Graphics g)
    +	{
    +		super.paintComponent(g);
    +		paintBackground(g);
    +
    +		if (graphComponent != null)
    +		{
    +			// Creates or destroys the triple buffer as needed
    +			if (tripleBuffered)
    +			{
    +				checkTripleBuffer();
    +			}
    +			else if (tripleBuffer != null)
    +			{
    +				destroyTripleBuffer();
    +			}
    +
    +			// Updates the dirty region from the buffered graph image
    +			if (tripleBuffer != null)
    +			{
    +				if (repaintBuffer)
    +				{
    +					repaintTripleBuffer(null);
    +				}
    +				else if (repaintClip != null)
    +				{
    +					repaintClip.grow(1 / scale);
    +
    +					repaintClip.setX(repaintClip.getX() * scale + translate.x);
    +					repaintClip.setY(repaintClip.getY() * scale + translate.y);
    +					repaintClip.setWidth(repaintClip.getWidth() * scale);
    +					repaintClip.setHeight(repaintClip.getHeight() * scale);
    +
    +					repaintTripleBuffer(repaintClip.getRectangle());
    +				}
    +
    +				mxUtils.drawImageClip(g, tripleBuffer, this);
    +			}
    +
    +			// Paints the graph directly onto the graphics
    +			else
    +			{
    +				paintGraph(g);
    +			}
    +
    +			paintForeground(g);
    +		}
    +	}
    +
    +	/**
    +	 * Paints the background.
    +	 */
    +	protected void paintBackground(Graphics g)
    +	{
    +		if (graphComponent != null)
    +		{
    +			Graphics2D g2 = (Graphics2D) g;
    +			AffineTransform tx = g2.getTransform();
    +
    +			try
    +			{
    +				// Draws the background of the outline if a graph exists 
    +				g.setColor(graphComponent.getPageBackgroundColor());
    +				mxUtils.fillClippedRect(g, 0, 0, getWidth(), getHeight());
    +
    +				g2.translate(translate.x, translate.y);
    +				g2.scale(scale, scale);
    +
    +				// Draws the scaled page background
    +				if (!graphComponent.isPageVisible())
    +				{
    +					Color bg = graphComponent.getBackground();
    +
    +					if (graphComponent.getViewport().isOpaque())
    +					{
    +						bg = graphComponent.getViewport().getBackground();
    +					}
    +
    +					g.setColor(bg);
    +					Dimension size = graphComponent.getGraphControl().getSize();
    +
    +					// Paints the background of the drawing surface
    +					mxUtils.fillClippedRect(g, 0, 0, size.width, size.height);
    +					g.setColor(g.getColor().darker().darker());
    +					g.drawRect(0, 0, size.width, size.height);
    +				}
    +				else
    +				{
    +					// Paints the page background using the graphics scaling
    +					graphComponent.paintBackgroundPage(g);
    +				}
    +			}
    +			finally
    +			{
    +				g2.setTransform(tx);
    +			}
    +		}
    +		else
    +		{
    +			// Draws the background of the outline if no graph exists 
    +			g.setColor(getBackground());
    +			mxUtils.fillClippedRect(g, 0, 0, getWidth(), getHeight());
    +		}
    +	}
    +
    +	/**
    +	 * Paints the graph outline.
    +	 */
    +	public void paintGraph(Graphics g)
    +	{
    +		if (graphComponent != null)
    +		{
    +			Graphics2D g2 = (Graphics2D) g;
    +			AffineTransform tx = g2.getTransform();
    +
    +			try
    +			{
    +				Point tr = graphComponent.getGraphControl().getTranslate();
    +				g2.translate(translate.x + tr.getX() * scale,
    +						translate.y + tr.getY() * scale);
    +				g2.scale(scale, scale);
    +
    +				// Draws the scaled graph
    +				graphComponent.getGraphControl().drawGraph(g2, drawLabels);
    +			}
    +			finally
    +			{
    +				g2.setTransform(tx);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Paints the foreground. Foreground is dynamic and should never be made
    +	 * part of the triple buffer. It is painted on top of the buffer.
    +	 */
    +	protected void paintForeground(Graphics g)
    +	{
    +		if (graphComponent != null)
    +		{
    +			Graphics2D g2 = (Graphics2D) g;
    +
    +			Stroke stroke = g2.getStroke();
    +			g.setColor(Color.BLUE);
    +			g2.setStroke(new BasicStroke(3));
    +			g.drawRect(finderBounds.x, finderBounds.y, finderBounds.width,
    +					finderBounds.height);
    +
    +			if (zoomHandleVisible)
    +			{
    +				g2.setStroke(stroke);
    +				g.setColor(DEFAULT_ZOOMHANDLE_FILL);
    +				g.fillRect(finderBounds.x + finderBounds.width - 6, finderBounds.y
    +						+ finderBounds.height - 6, 8, 8);
    +				g.setColor(Color.BLACK);
    +				g.drawRect(finderBounds.x + finderBounds.width - 6, finderBounds.y
    +						+ finderBounds.height - 6, 8, 8);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if the scale or translate has changed.
    +	 */
    +	public boolean updateScaleAndTranslate()
    +	{
    +		double newScale = 1;
    +		int dx = 0;
    +		int dy = 0;
    +
    +		if (this.graphComponent != null)
    +		{
    +			Dimension graphSize = graphComponent.getGraphControl().getSize();
    +			Dimension outlineSize = getSize();
    +
    +			int gw = (int) graphSize.getWidth();
    +			int gh = (int) graphSize.getHeight();
    +
    +			if (gw > 0 && gh > 0)
    +			{
    +				boolean magnifyPage = graphComponent.isPageVisible()
    +						&& isFitPage()
    +						&& graphComponent.getHorizontalScrollBar().isVisible()
    +						&& graphComponent.getVerticalScrollBar().isVisible();
    +				double graphScale = graphComponent.getGraph().getView()
    +						.getScale();
    +				mxPoint trans = graphComponent.getGraph().getView()
    +						.getTranslate();
    +
    +				int w = (int) outlineSize.getWidth() - 2 * outlineBorder;
    +				int h = (int) outlineSize.getHeight() - 2 * outlineBorder;
    +
    +				if (magnifyPage)
    +				{
    +					gw -= 2 * Math.round(trans.getX() * graphScale);
    +					gh -= 2 * Math.round(trans.getY() * graphScale);
    +				}
    +
    +				newScale = Math.min((double) w / gw, (double) h / gh);
    +
    +				dx += (int) Math
    +						.round((outlineSize.getWidth() - gw * newScale) / 2);
    +				dy += (int) Math
    +						.round((outlineSize.getHeight() - gh * newScale) / 2);
    +
    +				if (magnifyPage)
    +				{
    +					dx -= Math.round(trans.getX() * newScale * graphScale);
    +					dy -= Math.round(trans.getY() * newScale * graphScale);
    +				}
    +			}
    +		}
    +
    +		if (newScale != scale || translate.x != dx || translate.y != dy)
    +		{
    +			scale = newScale;
    +			translate.setLocation(dx, dy);
    +
    +			return true;
    +		}
    +		else
    +		{
    +			return false;
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public class MouseTracker implements MouseListener, MouseMotionListener
    +	{
    +		/**
    +		 * 
    +		 */
    +		protected Point start = null;
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
    +		 */
    +		public void mousePressed(MouseEvent e)
    +		{
    +			zoomGesture = hitZoomHandle(e.getX(), e.getY());
    +
    +			if (graphComponent != null && !e.isConsumed()
    +					&& !e.isPopupTrigger()
    +					&& (finderBounds.contains(e.getPoint()) || zoomGesture))
    +			{
    +				start = e.getPoint();
    +			}
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseDragged(MouseEvent e)
    +		{
    +			if (isEnabled() && start != null)
    +			{
    +				if (zoomGesture)
    +				{
    +					Rectangle bounds = graphComponent.getViewport()
    +							.getViewRect();
    +					double viewRatio = bounds.getWidth() / bounds.getHeight();
    +
    +					bounds = new Rectangle(finderBounds);
    +					bounds.width = (int) Math
    +							.max(0, (e.getX() - bounds.getX()));
    +					bounds.height = (int) Math.max(0,
    +							(bounds.getWidth() / viewRatio));
    +
    +					updateFinderBounds(bounds, true);
    +				}
    +				else
    +				{
    +					// TODO: To enable constrained moving, that is, moving
    +					// into only x- or y-direction when shift is pressed,
    +					// we need the location of the first mouse event, since
    +					// the movement can not be constrained for incremental
    +					// steps as used below.
    +					int dx = (int) ((e.getX() - start.getX()) / scale);
    +					int dy = (int) ((e.getY() - start.getY()) / scale);
    +
    +					// Keeps current location as start for delta movement
    +					// of the scrollbars
    +					start = e.getPoint();
    +
    +					graphComponent.getHorizontalScrollBar().setValue(
    +							graphComponent.getHorizontalScrollBar().getValue()
    +									+ dx);
    +					graphComponent.getVerticalScrollBar().setValue(
    +							graphComponent.getVerticalScrollBar().getValue()
    +									+ dy);
    +				}
    +			}
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseReleased(MouseEvent e)
    +		{
    +			if (start != null)
    +			{
    +				if (zoomGesture)
    +				{
    +					double dx = e.getX() - start.getX();
    +					double w = finderBounds.getWidth();
    +
    +					final JScrollBar hs = graphComponent
    +							.getHorizontalScrollBar();
    +					final double sx;
    +
    +					if (hs != null)
    +					{
    +						sx = (double) hs.getValue() / hs.getMaximum();
    +					}
    +					else
    +					{
    +						sx = 0;
    +					}
    +
    +					final JScrollBar vs = graphComponent.getVerticalScrollBar();
    +					final double sy;
    +
    +					if (vs != null)
    +					{
    +						sy = (double) vs.getValue() / vs.getMaximum();
    +					}
    +					else
    +					{
    +						sy = 0;
    +					}
    +
    +					mxGraphView view = graphComponent.getGraph().getView();
    +					double scale = view.getScale();
    +					double newScale = scale - (dx * scale) / w;
    +					double factor = newScale / scale;
    +					view.setScale(newScale);
    +
    +					if (hs != null)
    +					{
    +						hs.setValue((int) (sx * hs.getMaximum() * factor));
    +					}
    +
    +					if (vs != null)
    +					{
    +						vs.setValue((int) (sy * vs.getMaximum() * factor));
    +					}
    +				}
    +
    +				zoomGesture = false;
    +				start = null;
    +			}
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public boolean hitZoomHandle(int x, int y)
    +		{
    +			return new Rectangle(finderBounds.x + finderBounds.width - 6,
    +					finderBounds.y + finderBounds.height - 6, 8, 8).contains(x,
    +					y);
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseMoved(MouseEvent e)
    +		{
    +			if (hitZoomHandle(e.getX(), e.getY()))
    +			{
    +				setCursor(new Cursor(Cursor.HAND_CURSOR));
    +			}
    +			else if (finderBounds.contains(e.getPoint()))
    +			{
    +				setCursor(new Cursor(Cursor.MOVE_CURSOR));
    +			}
    +			else
    +			{
    +				setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    +			}
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseClicked(MouseEvent e)
    +		{
    +			// ignore
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseEntered(MouseEvent e)
    +		{
    +			// ignore
    +		}
    +
    +		/*
    +		 * (non-Javadoc)
    +		 * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
    +		 */
    +		public void mouseExited(MouseEvent e)
    +		{
    +			// ignore
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/package.html b/java/src/com/mxgraph/swing/package.html
    new file mode 100644
    index 000000000..8a2f62306
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/package.html
    @@ -0,0 +1,6 @@
    +<HTML>
    +<BODY>
    +  This package contains the main component for JFC/Swing, namely the graph
    +  component and the outline component.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/swing/util/mxAnimation.java b/java/src/com/mxgraph/swing/util/mxAnimation.java
    new file mode 100644
    index 000000000..ad8a475f7
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/util/mxAnimation.java
    @@ -0,0 +1,114 @@
    +/**
    + * $Id: mxAnimation.java,v 1.1 2010-06-08 09:49:59 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.swing.util;
    +
    +import java.awt.event.ActionEvent;
    +import java.awt.event.ActionListener;
    +
    +import javax.swing.Timer;
    +
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +
    +/**
    + * Baseclass for all timer-based animations. Fires mxEvent.DONE when the
    + * stopAnimation method is called. Implement updateAnimation for the
    + * actual animation or listen to mxEvent.EXECUTE.
    + */
    +public class mxAnimation extends mxEventSource
    +{
    +	/**
    +	 * Specifies the default delay for animations in ms. Default is 20.
    +	 */
    +	public static int DEFAULT_DELAY = 20;
    +
    +	/**
    +	 * Default is DEFAULT_DELAY.
    +	 */
    +	protected int delay;
    +
    +	/**
    +	 * Time instance that is used for timing the animation.
    +	 */
    +	protected Timer timer;
    +
    +	/**
    +	 * Constructs a new animation instance with the given repaint delay.
    +	 */
    +	public mxAnimation()
    +	{
    +		this(DEFAULT_DELAY);
    +	}
    +
    +	/**
    +	 * Constructs a new animation instance with the given repaint delay.
    +	 */
    +	public mxAnimation(int delay)
    +	{
    +		this.delay = delay;
    +	}
    +
    +	/**
    +	 * Returns the delay for the animation.
    +	 */
    +	public int getDelay()
    +	{
    +		return delay;
    +	}
    +
    +	/**
    +	 * Sets the delay for the animation.
    +	 */
    +	public void setDelay(int value)
    +	{
    +		delay = value;
    +	}
    +
    +	/**
    +	 * Starts the animation by repeatedly invoking updateAnimation.
    +	 */
    +	public void startAnimation()
    +	{
    +		if (timer == null)
    +		{
    +			timer = new Timer(delay, new ActionListener()
    +			{
    +
    +				public void actionPerformed(ActionEvent e)
    +				{
    +					updateAnimation();
    +				}
    +
    +			});
    +
    +			timer.start();
    +		}
    +	}
    +
    +	/**
    +	 * Hook for subclassers to implement the animation. Invoke stopAnimation
    +	 * when finished, startAnimation to resume. This is called whenever the
    +	 * timer fires and fires an mxEvent.EXECUTE event with no properties.
    +	 */
    +	public void updateAnimation()
    +	{
    +		fireEvent(new mxEventObject(mxEvent.EXECUTE));
    +	}
    +
    +	/**
    +	 * Stops the animation by deleting the timer and fires mxEvent.DONE.
    +	 */
    +	public void stopAnimation()
    +	{
    +		if (timer != null)
    +		{
    +			timer.stop();
    +			timer = null;
    +			fireEvent(new mxEventObject(mxEvent.DONE));
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/util/mxCellOverlay.java b/java/src/com/mxgraph/swing/util/mxCellOverlay.java
    new file mode 100644
    index 000000000..0e5d6d107
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/util/mxCellOverlay.java
    @@ -0,0 +1,164 @@
    +package com.mxgraph.swing.util;
    +
    +import java.awt.Cursor;
    +import java.awt.Graphics;
    +
    +import javax.swing.ImageIcon;
    +import javax.swing.JComponent;
    +
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxCellOverlay extends JComponent implements mxICellOverlay
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 921991820491141221L;
    +
    +	/**
    +	 * 
    +	 */
    +	protected ImageIcon imageIcon;
    +
    +	/**
    +	 * Holds the horizontal alignment for the overlay.
    +	 * Default is ALIGN_RIGHT. For edges, the overlay
    +	 * always appears in the center of the edge.
    +	 */
    +	protected Object align = mxConstants.ALIGN_RIGHT;
    +
    +	/**
    +	 * Holds the vertical alignment for the overlay.
    +	 * Default is bottom. For edges, the overlay
    +	 * always appears in the center of the edge.
    +	 */
    +	protected Object verticalAlign = mxConstants.ALIGN_BOTTOM;
    +
    +	/**
    +	 * Defines the overlapping for the overlay, that is,
    +	 * the proportional distance from the origin to the
    +	 * point defined by the alignment. Default is 0.5.
    +	 */
    +	protected double defaultOverlap = 0.5;
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCellOverlay(ImageIcon icon, String warning)
    +	{
    +		this.imageIcon = icon;
    +		setToolTipText(warning);
    +		setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    +	}
    +
    +	/**
    +	 * @return the alignment of the overlay, see <code>mxConstants.ALIGN_*****</code>
    +	 */
    +	public Object getAlign()
    +	{
    +		return align;
    +	}
    +
    +	/**
    +	 * @param value the alignment to set, see <code>mxConstants.ALIGN_*****</code>
    +	 */
    +	public void setAlign(Object value)
    +	{
    +		align = value;
    +	}
    +
    +	/**
    +	 * @return the vertical alignment, see <code>mxConstants.ALIGN_*****</code>
    +	 */
    +	public Object getVerticalAlign()
    +	{
    +		return verticalAlign;
    +	}
    +
    +	/**
    +	 * @param value the vertical alignment to set, see <code>mxConstants.ALIGN_*****</code>
    +	 */
    +	public void setVerticalAlign(Object value)
    +	{
    +		verticalAlign = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		g.drawImage(imageIcon.getImage(), 0, 0, getWidth(), getHeight(), this);
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.swing.util.mxIOverlay#getBounds(com.mxgraph.view.mxCellState)
    +	 */
    +	public mxRectangle getBounds(mxCellState state)
    +	{
    +		boolean isEdge = state.getView().getGraph().getModel()
    +				.isEdge(state.getCell());
    +		double s = state.getView().getScale();
    +		mxPoint pt = null;
    +
    +		int w = imageIcon.getIconWidth();
    +		int h = imageIcon.getIconHeight();
    +
    +		if (isEdge)
    +		{
    +			int n = state.getAbsolutePointCount();
    +
    +			if (n % 2 == 1)
    +			{
    +				pt = state.getAbsolutePoint(n / 2 + 1);
    +			}
    +			else
    +			{
    +				int idx = n / 2;
    +				mxPoint p0 = state.getAbsolutePoint(idx - 1);
    +				mxPoint p1 = state.getAbsolutePoint(idx);
    +				pt = new mxPoint(p0.getX() + (p1.getX() - p0.getX()) / 2,
    +						p0.getY() + (p1.getY() - p0.getY()) / 2);
    +			}
    +		}
    +		else
    +		{
    +			pt = new mxPoint();
    +
    +			if (align.equals(mxConstants.ALIGN_LEFT))
    +			{
    +				pt.setX(state.getX());
    +			}
    +			else if (align.equals(mxConstants.ALIGN_CENTER))
    +			{
    +				pt.setX(state.getX() + state.getWidth() / 2);
    +			}
    +			else
    +			{
    +				pt.setX(state.getX() + state.getWidth());
    +			}
    +
    +			if (verticalAlign.equals(mxConstants.ALIGN_TOP))
    +			{
    +				pt.setY(state.getY());
    +			}
    +			else if (verticalAlign.equals(mxConstants.ALIGN_MIDDLE))
    +			{
    +				pt.setY(state.getY() + state.getHeight() / 2);
    +			}
    +			else
    +			{
    +				pt.setY(state.getY() + state.getHeight());
    +			}
    +		}
    +
    +		return new mxRectangle(pt.getX() - w * defaultOverlap * s, pt.getY()
    +				- h * defaultOverlap * s, w * s, h * s);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/util/mxGraphActions.java b/java/src/com/mxgraph/swing/util/mxGraphActions.java
    new file mode 100644
    index 000000000..8ea48b37d
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/util/mxGraphActions.java
    @@ -0,0 +1,842 @@
    +/**
    + * $Id: mxGraphActions.java,v 1.13 2010-01-04 09:19:36 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.util;
    +
    +import java.awt.event.ActionEvent;
    +
    +import javax.swing.AbstractAction;
    +import javax.swing.Action;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + *
    + */
    +public class mxGraphActions
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action deleteAction = new DeleteAction("delete");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action editAction = new EditAction("edit");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action groupAction = new GroupAction("group");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action ungroupAction = new UngroupAction("ungroup");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action removeFromParentAction = new RemoveFromParentAction(
    +			"removeFromParent");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action updateGroupBoundsAction = new UpdateGroupBoundsAction(
    +			"updateGroupBounds");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action selectAllAction = new SelectAction("selectAll");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action selectVerticesAction = new SelectAction("vertices");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action selectEdgesAction = new SelectAction("edges");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action selectNoneAction = new SelectAction("selectNone");
    +
    +	/**
    +	 *
    +	 */
    +	static final Action selectNextAction = new SelectAction("selectNext");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action selectPreviousAction = new SelectAction(
    +			"selectPrevious");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action selectParentAction = new SelectAction("selectParent");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action selectChildAction = new SelectAction("selectChild");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action collapseAction = new FoldAction("collapse");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action expandAction = new FoldAction("expand");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action enterGroupAction = new DrillAction("enterGroup");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action exitGroupAction = new DrillAction("exitGroup");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action homeAction = new DrillAction("home");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action zoomActualAction = new ZoomAction("actual");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action zoomInAction = new ZoomAction("zoomIn");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action zoomOutAction = new ZoomAction("zoomOut");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action toBackAction = new LayerAction("toBack");
    +
    +	/**
    +	 * 
    +	 */
    +	static final Action toFrontAction = new LayerAction("toFront");
    +
    +	/**
    +	 * 
    +	 * @return the delete action
    +	 */
    +	public static Action getDeleteAction()
    +	{
    +		return deleteAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the edit action
    +	 */
    +	public static Action getEditAction()
    +	{
    +		return editAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the edit action
    +	 */
    +	public static Action getGroupAction()
    +	{
    +		return groupAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the edit action
    +	 */
    +	public static Action getUngroupAction()
    +	{
    +		return ungroupAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the edit action
    +	 */
    +	public static Action getRemoveFromParentAction()
    +	{
    +		return removeFromParentAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the edit action
    +	 */
    +	public static Action getUpdateGroupBoundsAction()
    +	{
    +		return updateGroupBoundsAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the select all action
    +	 */
    +	public static Action getSelectAllAction()
    +	{
    +		return selectAllAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the select vertices action
    +	 */
    +	public static Action getSelectVerticesAction()
    +	{
    +		return selectVerticesAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the select edges action
    +	 */
    +	public static Action getSelectEdgesAction()
    +	{
    +		return selectEdgesAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the select none action
    +	 */
    +	public static Action getSelectNoneAction()
    +	{
    +		return selectNoneAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the select next action
    +	 */
    +	public static Action getSelectNextAction()
    +	{
    +		return selectNextAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the select previous action
    +	 */
    +	public static Action getSelectPreviousAction()
    +	{
    +		return selectPreviousAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the select parent action
    +	 */
    +	public static Action getSelectParentAction()
    +	{
    +		return selectParentAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the select child action
    +	 */
    +	public static Action getSelectChildAction()
    +	{
    +		return selectChildAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the go into action
    +	 */
    +	public static Action getEnterGroupAction()
    +	{
    +		return enterGroupAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the go up action
    +	 */
    +	public static Action getExitGroupAction()
    +	{
    +		return exitGroupAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the home action
    +	 */
    +	public static Action getHomeAction()
    +	{
    +		return homeAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the collapse action
    +	 */
    +	public static Action getCollapseAction()
    +	{
    +		return collapseAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the expand action
    +	 */
    +	public static Action getExpandAction()
    +	{
    +		return expandAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the zoom actual action
    +	 */
    +	public static Action getZoomActualAction()
    +	{
    +		return zoomActualAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the zoom in action
    +	 */
    +	public static Action getZoomInAction()
    +	{
    +		return zoomInAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the zoom out action
    +	 */
    +	public static Action getZoomOutAction()
    +	{
    +		return zoomOutAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the action that moves cell(s) to the backmost layer
    +	 */
    +	public static Action getToBackAction()
    +	{
    +		return toBackAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @return the action that moves cell(s) to the frontmost layer
    +	 */
    +	public static Action getToFrontAction()
    +	{
    +		return toFrontAction;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param e
    +	 * @return Returns the graph for the given action event.
    +	 */
    +	public static final mxGraph getGraph(ActionEvent e)
    +	{
    +		Object source = e.getSource();
    +
    +		if (source instanceof mxGraphComponent)
    +		{
    +			return ((mxGraphComponent) source).getGraph();
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class EditAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 4610112721356742702L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public EditAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			if (e.getSource() instanceof mxGraphComponent)
    +			{
    +				((mxGraphComponent) e.getSource()).startEditing();
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class DeleteAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = -8212339796803275529L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public DeleteAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				graph.removeCells();
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class GroupAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = -4718086600089409092L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public GroupAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		protected int getGroupBorder(mxGraph graph)
    +		{
    +			return 2 * graph.getGridSize();
    +
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				graph.setSelectionCell(graph.groupCells(null,
    +						getGroupBorder(graph)));
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class UngroupAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 2247770767961318251L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public UngroupAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				graph.setSelectionCells(graph.ungroupCells());
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class RemoveFromParentAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 7169443038859140811L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public RemoveFromParentAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				graph.removeCellsFromParent();
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class UpdateGroupBoundsAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = -4718086600089409092L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public UpdateGroupBoundsAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		protected int getGroupBorder(mxGraph graph)
    +		{
    +			return 2 * graph.getGridSize();
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				graph.updateGroupBounds(null, getGroupBorder(graph));
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class LayerAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 562519299806253741L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public LayerAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				boolean toBack = getValue(Action.NAME).toString()
    +						.equalsIgnoreCase("toBack");
    +				graph.orderCells(toBack);
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class FoldAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 4078517503905239901L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public FoldAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				boolean collapse = getValue(Action.NAME).toString()
    +						.equalsIgnoreCase("collapse");
    +				graph.foldCells(collapse);
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class DrillAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 5464382323663870291L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public DrillAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				String name = getValue(Action.NAME).toString();
    +
    +				if (name.equalsIgnoreCase("enterGroup"))
    +				{
    +					graph.enterGroup();
    +				}
    +				else if (name.equalsIgnoreCase("exitGroup"))
    +				{
    +					graph.exitGroup();
    +				}
    +				else
    +				{
    +					graph.home();
    +				}
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class ZoomAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = -7500195051313272384L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public ZoomAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			Object source = e.getSource();
    +
    +			if (source instanceof mxGraphComponent)
    +			{
    +				String name = getValue(Action.NAME).toString();
    +				mxGraphComponent graphComponent = (mxGraphComponent) source;
    +
    +				if (name.equalsIgnoreCase("zoomIn"))
    +				{
    +					graphComponent.zoomIn();
    +				}
    +				else if (name.equalsIgnoreCase("zoomOut"))
    +				{
    +					graphComponent.zoomOut();
    +				}
    +				else
    +				{
    +					graphComponent.zoomActual();
    +				}
    +			}
    +		}
    +
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static class SelectAction extends AbstractAction
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 6501585024845668187L;
    +
    +		/**
    +		 * 
    +		 * @param name
    +		 */
    +		public SelectAction(String name)
    +		{
    +			super(name);
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			mxGraph graph = getGraph(e);
    +
    +			if (graph != null)
    +			{
    +				String name = getValue(Action.NAME).toString();
    +
    +				if (name.equalsIgnoreCase("selectAll"))
    +				{
    +					graph.selectAll();
    +				}
    +				else if (name.equalsIgnoreCase("selectNone"))
    +				{
    +					graph.clearSelection();
    +				}
    +				else if (name.equalsIgnoreCase("selectNext"))
    +				{
    +					graph.selectNextCell();
    +				}
    +				else if (name.equalsIgnoreCase("selectPrevious"))
    +				{
    +					graph.selectPreviousCell();
    +				}
    +				else if (name.equalsIgnoreCase("selectParent"))
    +				{
    +					graph.selectParentCell();
    +				}
    +				else if (name.equalsIgnoreCase("vertices"))
    +				{
    +					graph.selectVertices();
    +				}
    +				else if (name.equalsIgnoreCase("edges"))
    +				{
    +					graph.selectEdges();
    +				}
    +				else
    +				{
    +					graph.selectChildCell();
    +				}
    +			}
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/util/mxGraphTransferable.java b/java/src/com/mxgraph/swing/util/mxGraphTransferable.java
    new file mode 100644
    index 000000000..bfd276b00
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/util/mxGraphTransferable.java
    @@ -0,0 +1,533 @@
    +/**
    + * $Id: mxGraphTransferable.java,v 1.10 2010-01-21 14:24:00 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.util;
    +
    +import java.awt.datatransfer.DataFlavor;
    +import java.awt.datatransfer.Transferable;
    +import java.awt.datatransfer.UnsupportedFlavorException;
    +import java.awt.image.RenderedImage;
    +import java.io.ByteArrayInputStream;
    +import java.io.ByteArrayOutputStream;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.io.Reader;
    +import java.io.Serializable;
    +import java.io.StringReader;
    +
    +import javax.imageio.ImageIO;
    +import javax.swing.ImageIcon;
    +import javax.swing.plaf.UIResource;
    +
    +import com.mxgraph.util.mxRectangle;
    +
    +/**
    + *
    + */
    +public class mxGraphTransferable implements Transferable, UIResource,
    +		Serializable
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 5123819419918087664L;
    +
    +	/**
    +	 * Serialized Data Flavor. Use the following code to switch to local 
    +	 * reference flavor:
    +	 * <code>
    +	 * try
    +	 * {
    +	 *   mxGraphTransferable.dataFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType
    +	 *     + "; class=com.mxgraph.swing.util.mxGraphTransferable");
    +	 * }
    +	 * catch (ClassNotFoundException cnfe)
    +	 * {
    +	 *   // do nothing
    +	 * }
    +	 * </code>
    +	 * 
    +	 * If you get a class not found exception, try the following instead:
    +	 * <code>
    +	 * mxGraphTransferable.dataFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType
    +	 *   + "; class=com.mxgraph.swing.util.mxGraphTransferable", null,
    +	 *   new com.mxgraph.swing.util.mxGraphTransferable(null, null).getClass().getClassLoader());
    +	 * </code>
    +	 */
    +	public static DataFlavor dataFlavor;
    +
    +	/**
    +	 * 
    +	 */
    +	private static DataFlavor[] htmlFlavors;
    +
    +	/**
    +	 * 
    +	 */
    +	private static DataFlavor[] stringFlavors;
    +
    +	/**
    +	 * 
    +	 */
    +	private static DataFlavor[] plainFlavors;
    +
    +	/**
    +	 * 
    +	 */
    +	private static DataFlavor[] imageFlavors;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Object[] cells;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxRectangle bounds;
    +
    +	/**
    +	 * 
    +	 */
    +	protected ImageIcon image;
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphTransferable(Object[] cells, mxRectangle bounds)
    +	{
    +		this(cells, bounds, null);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphTransferable(Object[] cells, mxRectangle bounds,
    +			ImageIcon image)
    +	{
    +		this.cells = cells;
    +		this.bounds = bounds;
    +		this.image = image;
    +	}
    +
    +	/**
    +	 * @return Returns the cells.
    +	 */
    +	public Object[] getCells()
    +	{
    +		return cells;
    +	}
    +
    +	/**
    +	 * Returns the unscaled, untranslated bounding box of the cells.
    +	 */
    +	public mxRectangle getBounds()
    +	{
    +		return bounds;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public ImageIcon getImage()
    +	{
    +		return image;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public DataFlavor[] getTransferDataFlavors()
    +	{
    +		DataFlavor[] richerFlavors = getRicherFlavors();
    +
    +		int nRicher = (richerFlavors != null) ? richerFlavors.length : 0;
    +		int nHtml = (isHtmlSupported()) ? htmlFlavors.length : 0;
    +		int nPlain = (isPlainSupported()) ? plainFlavors.length : 0;
    +		int nString = (isPlainSupported()) ? stringFlavors.length : 0;
    +		int nImage = (isImageSupported()) ? stringFlavors.length : 0;
    +		int nFlavors = nRicher + nHtml + nPlain + nString + nImage;
    +
    +		DataFlavor[] flavors = new DataFlavor[nFlavors];
    +
    +		// fill in the array
    +		int nDone = 0;
    +
    +		if (nRicher > 0)
    +		{
    +			System.arraycopy(richerFlavors, 0, flavors, nDone, nRicher);
    +			nDone += nRicher;
    +		}
    +
    +		if (nHtml > 0)
    +		{
    +			System.arraycopy(htmlFlavors, 0, flavors, nDone, nHtml);
    +			nDone += nHtml;
    +		}
    +
    +		if (nPlain > 0)
    +		{
    +			System.arraycopy(plainFlavors, 0, flavors, nDone, nPlain);
    +			nDone += nPlain;
    +		}
    +
    +		if (nString > 0)
    +		{
    +			System.arraycopy(stringFlavors, 0, flavors, nDone, nString);
    +			nDone += nString;
    +		}
    +
    +		if (nImage > 0)
    +		{
    +			System.arraycopy(imageFlavors, 0, flavors, nDone, nImage);
    +			nDone += nImage;
    +		}
    +
    +		return flavors;
    +	}
    +
    +	/**
    +	 * Some subclasses will have flavors that are more descriptive than HTML or
    +	 * plain text. If this method returns a non-null value, it will be placed at
    +	 * the start of the array of supported flavors.
    +	 */
    +	protected DataFlavor[] getRicherFlavors()
    +	{
    +		return new DataFlavor[] { dataFlavor };
    +	}
    +
    +	/**
    +	 * Returns whether or not the specified data flavor is supported for this
    +	 * object.
    +	 * 
    +	 * @param flavor
    +	 *            the requested flavor for the data
    +	 * @return boolean indicating whether or not the data flavor is supported
    +	 */
    +	public boolean isDataFlavorSupported(DataFlavor flavor)
    +	{
    +		DataFlavor[] flavors = getTransferDataFlavors();
    +
    +		for (int i = 0; i < flavors.length; i++)
    +		{
    +			if (flavors[i] != null && flavors[i].equals(flavor))
    +			{
    +				return true;
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns an object which represents the data to be transferred. The class
    +	 * of the object returned is defined by the representation class of the
    +	 * flavor.
    +	 * 
    +	 * @param flavor
    +	 *            the requested flavor for the data
    +	 * @see DataFlavor#getRepresentationClass
    +	 * @exception IOException
    +	 *                if the data is no longer available in the requested
    +	 *                flavor.
    +	 * @exception UnsupportedFlavorException
    +	 *                if the requested data flavor is not supported.
    +	 */
    +	public Object getTransferData(DataFlavor flavor)
    +			throws UnsupportedFlavorException, IOException
    +	{
    +		if (isRicherFlavor(flavor))
    +		{
    +			return getRicherData(flavor);
    +		}
    +		else if (isImageFlavor(flavor))
    +		{
    +			if (image != null && image.getImage() instanceof RenderedImage)
    +			{
    +				if (flavor.equals(DataFlavor.imageFlavor))
    +				{
    +					return image.getImage();
    +				}
    +				else
    +				{
    +					ByteArrayOutputStream stream = new ByteArrayOutputStream();
    +					ImageIO.write((RenderedImage) image.getImage(), "bmp",
    +							stream);
    +
    +					return new ByteArrayInputStream(stream.toByteArray());
    +				}
    +			}
    +		}
    +		else if (isHtmlFlavor(flavor))
    +		{
    +			String data = getHtmlData();
    +			data = (data == null) ? "" : data;
    +
    +			if (String.class.equals(flavor.getRepresentationClass()))
    +			{
    +				return data;
    +			}
    +			else if (Reader.class.equals(flavor.getRepresentationClass()))
    +			{
    +				return new StringReader(data);
    +			}
    +			else if (InputStream.class.equals(flavor.getRepresentationClass()))
    +			{
    +				return new ByteArrayInputStream(data.getBytes());
    +			}
    +			// fall through to unsupported
    +		}
    +		else if (isPlainFlavor(flavor))
    +		{
    +			String data = getPlainData();
    +			data = (data == null) ? "" : data;
    +
    +			if (String.class.equals(flavor.getRepresentationClass()))
    +			{
    +				return data;
    +			}
    +			else if (Reader.class.equals(flavor.getRepresentationClass()))
    +			{
    +				return new StringReader(data);
    +			}
    +			else if (InputStream.class.equals(flavor.getRepresentationClass()))
    +			{
    +				return new ByteArrayInputStream(data.getBytes());
    +			}
    +			// fall through to unsupported
    +
    +		}
    +		else if (isStringFlavor(flavor))
    +		{
    +			String data = getPlainData();
    +			data = (data == null) ? "" : data;
    +
    +			return data;
    +		}
    +
    +		throw new UnsupportedFlavorException(flavor);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param flavor
    +	 * @return Returns true if the given flavor is a richer flavor of this
    +	 * transferable.
    +	 */
    +	protected boolean isRicherFlavor(DataFlavor flavor)
    +	{
    +		DataFlavor[] richerFlavors = getRicherFlavors();
    +		int nFlavors = (richerFlavors != null) ? richerFlavors.length : 0;
    +
    +		for (int i = 0; i < nFlavors; i++)
    +		{
    +			if (richerFlavors[i].equals(flavor))
    +			{
    +				return true;
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param flavor
    +	 * @return the richer data flavor of this and the specified
    +	 * @throws UnsupportedFlavorException
    +	 */
    +	public Object getRicherData(DataFlavor flavor)
    +			throws UnsupportedFlavorException
    +	{
    +		if (flavor.equals(dataFlavor))
    +		{
    +			return this;
    +		}
    +		else
    +		{
    +			throw new UnsupportedFlavorException(flavor);
    +		}
    +	}
    +
    +	/**
    +	 * Returns whether or not the specified data flavor is an HTML flavor that
    +	 * is supported.
    +	 * 
    +	 * @param flavor
    +	 *            the requested flavor for the data
    +	 * @return boolean indicating whether or not the data flavor is supported
    +	 */
    +	protected boolean isHtmlFlavor(DataFlavor flavor)
    +	{
    +		DataFlavor[] flavors = htmlFlavors;
    +
    +		for (int i = 0; i < flavors.length; i++)
    +		{
    +			if (flavors[i].equals(flavor))
    +			{
    +				return true;
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Whether the HTML flavors are offered. If so, the method getHTMLData
    +	 * should be implemented to provide something reasonable.
    +	 */
    +	protected boolean isHtmlSupported()
    +	{
    +		return false;
    +	}
    +
    +	/**
    +	 * Fetch the data in a text/html format
    +	 */
    +	protected String getHtmlData()
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param flavor
    +	 * @return Returns true if the given flavor is an image flavor of this
    +	 * transferable.
    +	 */
    +	protected boolean isImageFlavor(DataFlavor flavor)
    +	{
    +		int nFlavors = (imageFlavors != null) ? imageFlavors.length : 0;
    +
    +		for (int i = 0; i < nFlavors; i++)
    +		{
    +			if (imageFlavors[i].equals(flavor))
    +			{
    +				return true;
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isImageSupported()
    +	{
    +		return image != null;
    +	}
    +
    +	/**
    +	 * Returns whether or not the specified data flavor is an plain flavor that
    +	 * is supported.
    +	 * 
    +	 * @param flavor
    +	 *            the requested flavor for the data
    +	 * @return boolean indicating whether or not the data flavor is supported
    +	 */
    +	protected boolean isPlainFlavor(DataFlavor flavor)
    +	{
    +		DataFlavor[] flavors = plainFlavors;
    +
    +		for (int i = 0; i < flavors.length; i++)
    +		{
    +			if (flavors[i].equals(flavor))
    +			{
    +				return true;
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Whether the plain text flavors are offered. If so, the method
    +	 * getPlainData should be implemented to provide something reasonable.
    +	 */
    +	protected boolean isPlainSupported()
    +	{
    +		return false;
    +	}
    +
    +	/**
    +	 * Fetch the data in a text/plain format.
    +	 */
    +	protected String getPlainData()
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns whether or not the specified data flavor is a String flavor that
    +	 * is supported.
    +	 * 
    +	 * @param flavor
    +	 *            the requested flavor for the data
    +	 * @return boolean indicating whether or not the data flavor is supported
    +	 */
    +	protected boolean isStringFlavor(DataFlavor flavor)
    +	{
    +		DataFlavor[] flavors = stringFlavors;
    +
    +		for (int i = 0; i < flavors.length; i++)
    +		{
    +			if (flavors[i].equals(flavor))
    +			{
    +				return true;
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Local Machine Reference Data Flavor.
    +	 */
    +	static
    +	{
    +		try
    +		{
    +			htmlFlavors = new DataFlavor[3];
    +			htmlFlavors[0] = new DataFlavor("text/html;class=java.lang.String");
    +			htmlFlavors[1] = new DataFlavor("text/html;class=java.io.Reader");
    +			htmlFlavors[2] = new DataFlavor(
    +					"text/html;charset=unicode;class=java.io.InputStream");
    +
    +			plainFlavors = new DataFlavor[3];
    +			plainFlavors[0] = new DataFlavor(
    +					"text/plain;class=java.lang.String");
    +			plainFlavors[1] = new DataFlavor("text/plain;class=java.io.Reader");
    +			plainFlavors[2] = new DataFlavor(
    +					"text/plain;charset=unicode;class=java.io.InputStream");
    +
    +			stringFlavors = new DataFlavor[2];
    +			stringFlavors[0] = new DataFlavor(
    +					DataFlavor.javaJVMLocalObjectMimeType
    +							+ ";class=java.lang.String");
    +			stringFlavors[1] = DataFlavor.stringFlavor;
    +
    +			imageFlavors = new DataFlavor[2];
    +			imageFlavors[0] = DataFlavor.imageFlavor;
    +			imageFlavors[1] = new DataFlavor("image/bmp");
    +		}
    +		catch (ClassNotFoundException cle)
    +		{
    +			System.err
    +					.println("error initializing javax.swing.plaf.basic.BasicTranserable");
    +		}
    +
    +		try
    +		{
    +			dataFlavor = new DataFlavor(DataFlavor.javaSerializedObjectMimeType
    +					+ "; class=com.mxgraph.swing.util.mxGraphTransferable");
    +		}
    +		catch (ClassNotFoundException cnfe)
    +		{
    +			// do nothing
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/util/mxICellOverlay.java b/java/src/com/mxgraph/swing/util/mxICellOverlay.java
    new file mode 100644
    index 000000000..486027c0b
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/util/mxICellOverlay.java
    @@ -0,0 +1,14 @@
    +package com.mxgraph.swing.util;
    +
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +
    +public interface mxICellOverlay
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	mxRectangle getBounds(mxCellState state);
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/util/mxMorphing.java b/java/src/com/mxgraph/swing/util/mxMorphing.java
    new file mode 100644
    index 000000000..a9b038fd8
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/util/mxMorphing.java
    @@ -0,0 +1,327 @@
    +/**
    + * $Id: mxMorphing.java,v 1.1 2010-06-08 09:49:59 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.swing.util;
    +
    +import java.awt.Graphics;
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.swing.view.mxCellStatePreview;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * Provides animation effects.
    + */
    +public class mxMorphing extends mxAnimation
    +{
    +
    +	/**
    +	 * Reference to the enclosing graph instance.
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Specifies the maximum number of steps for the morphing. Default is
    +	 * 6.
    +	 */
    +	protected int steps;
    +
    +	/**
    +	 * Counts the current number of steps of the animation.
    +	 */
    +	protected int step;
    +
    +	/**
    +	 * Ease-off for movement towards the given vector. Larger values are
    +	 * slower and smoother. Default is 1.5.
    +	 */
    +	protected double ease;
    +
    +	/**
    +	 * Maps from cells to origins. 
    +	 */
    +	protected Map<Object, mxPoint> origins = new HashMap<Object, mxPoint>();
    +
    +	/**
    +	 * Optional array of cells to limit the animation to. 
    +	 */
    +	protected Object[] cells;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxRectangle dirty;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient mxCellStatePreview preview;
    +
    +	/**
    +	 * Constructs a new morphing instance for the given graph.
    +	 */
    +	public mxMorphing(mxGraphComponent graphComponent)
    +	{
    +		this(graphComponent, 6, 1.5, DEFAULT_DELAY);
    +
    +		// Installs the paint handler
    +		graphComponent.addListener(mxEvent.AFTER_PAINT, new mxIEventListener()
    +		{
    +			public void invoke(Object sender, mxEventObject evt)
    +			{
    +				Graphics g = (Graphics) evt.getProperty("g");
    +				paint(g);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Constructs a new morphing instance for the given graph.
    +	 */
    +	public mxMorphing(mxGraphComponent graphComponent, int steps, double ease,
    +			int delay)
    +	{
    +		super(delay);
    +		this.graphComponent = graphComponent;
    +		this.steps = steps;
    +		this.ease = ease;
    +	}
    +
    +	/**
    +	 * Returns the number of steps for the animation.
    +	 */
    +	public int getSteps()
    +	{
    +		return steps;
    +	}
    +
    +	/**
    +	 * Sets the number of steps for the animation.
    +	 */
    +	public void setSteps(int value)
    +	{
    +		steps = value;
    +	}
    +
    +	/**
    +	 * Returns the easing for the movements.
    +	 */
    +	public double getEase()
    +	{
    +		return ease;
    +	}
    +
    +	/**
    +	 * Sets the easing for the movements.
    +	 */
    +	public void setEase(double value)
    +	{
    +		ease = value;
    +	}
    +
    +	/**
    +	 * Optional array of cells to be animated. If this is not specified
    +	 * then all cells are checked and animated if they have been moved
    +	 * in the current transaction.
    +	 */
    +	public void setCells(Object[] value)
    +	{
    +		cells = value;
    +	}
    +
    +	/**
    +	 * Animation step.
    +	 */
    +	public void updateAnimation()
    +	{
    +		preview = new mxCellStatePreview(graphComponent, false);
    +
    +		if (cells != null)
    +		{
    +			// Animates the given cells individually without recursion
    +			for (Object cell : cells)
    +			{
    +				animateCell(cell, preview, false);
    +			}
    +		}
    +		else
    +		{
    +			// Animates all changed cells by using recursion to find
    +			// the changed cells but not for the animation itself
    +			Object root = graphComponent.getGraph().getModel().getRoot();
    +			animateCell(root, preview, true);
    +		}
    +
    +		show(preview);
    +
    +		if (preview.isEmpty() || step++ >= steps)
    +		{
    +			stopAnimation();
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	public void stopAnimation()
    +	{
    +		graphComponent.getGraph().getView().revalidate();
    +		super.stopAnimation();
    +
    +		preview = null;
    +
    +		if (dirty != null)
    +		{
    +			graphComponent.getGraphControl().repaint(dirty.getRectangle());
    +		}
    +	}
    +
    +	/**
    +	 * Shows the changes in the given mxCellStatePreview.
    +	 */
    +	protected void show(mxCellStatePreview preview)
    +	{
    +		if (dirty != null)
    +		{
    +			graphComponent.getGraphControl().repaint(dirty.getRectangle());
    +		}
    +		else
    +		{
    +			graphComponent.getGraphControl().repaint();
    +		}
    +
    +		dirty = preview.show();
    +
    +		if (dirty != null)
    +		{
    +			graphComponent.getGraphControl().repaint(dirty.getRectangle());
    +		}
    +	}
    +
    +	/**
    +	 * Animates the given cell state using moveState.
    +	 */
    +	protected void animateCell(Object cell, mxCellStatePreview move,
    +			boolean recurse)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxCellState state = graph.getView().getState(cell);
    +		mxPoint delta = null;
    +
    +		if (state != null)
    +		{
    +			// Moves the animated state from where it will be after the model
    +			// change by subtracting the given delta vector from that location
    +			delta = getDelta(state);
    +
    +			if (graph.getModel().isVertex(cell)
    +					&& (delta.getX() != 0 || delta.getY() != 0))
    +			{
    +				mxPoint translate = graph.getView().getTranslate();
    +				double scale = graph.getView().getScale();
    +
    +				// FIXME: Something wrong with the scale
    +				delta.setX(delta.getX() + translate.getX() * scale);
    +				delta.setY(delta.getY() + translate.getY() * scale);
    +
    +				move.moveState(state, -delta.getX() / ease, -delta.getY()
    +						/ ease);
    +			}
    +		}
    +
    +		if (recurse && !stopRecursion(state, delta))
    +		{
    +			int childCount = graph.getModel().getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				animateCell(graph.getModel().getChildAt(cell, i), move, recurse);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if the animation should not recursively find more
    +	 * deltas for children if the given parent state has been animated.
    +	 */
    +	protected boolean stopRecursion(mxCellState state, mxPoint delta)
    +	{
    +		return delta != null && (delta.getX() != 0 || delta.getY() != 0);
    +	}
    +
    +	/**
    +	 * Returns the vector between the current rendered state and the future
    +	 * location of the state after the display will be updated.
    +	 */
    +	protected mxPoint getDelta(mxCellState state)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxPoint origin = getOriginForCell(state.getCell());
    +		mxPoint translate = graph.getView().getTranslate();
    +		double scale = graph.getView().getScale();
    +		mxPoint current = new mxPoint(state.getX() / scale - translate.getX(),
    +				state.getY() / scale - translate.getY());
    +
    +		return new mxPoint((origin.getX() - current.getX()) * scale, (origin
    +				.getY() - current.getY())
    +				* scale);
    +	}
    +
    +	/**
    +	 * Returns the top, left corner of the given cell.
    +	 */
    +	protected mxPoint getOriginForCell(Object cell)
    +	{
    +		mxPoint result = origins.get(cell);
    +
    +		if (result == null)
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +
    +			if (cell != null)
    +			{
    +				result = new mxPoint(getOriginForCell(graph.getModel()
    +						.getParent(cell)));
    +				mxGeometry geo = graph.getCellGeometry(cell);
    +
    +				// TODO: Handle offset, relative geometries etc
    +				if (geo != null)
    +				{
    +					result.setX(result.getX() + geo.getX());
    +					result.setY(result.getY() + geo.getY());
    +				}
    +			}
    +
    +			if (result == null)
    +			{
    +				mxPoint t = graph.getView().getTranslate();
    +				result = new mxPoint(-t.getX(), -t.getY());
    +			}
    +
    +			origins.put(cell, result);
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (preview != null)
    +		{
    +			preview.paint(g);
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/util/mxMouseAdapter.java b/java/src/com/mxgraph/swing/util/mxMouseAdapter.java
    new file mode 100644
    index 000000000..f604c1bf0
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/util/mxMouseAdapter.java
    @@ -0,0 +1,78 @@
    +/**
    + * $Id: mxMouseAdapter.java,v 1.1 2010-06-01 10:18:45 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.util;
    +
    +import java.awt.event.MouseEvent;
    +import java.awt.event.MouseListener;
    +import java.awt.event.MouseMotionListener;
    +
    +/**
    + *
    + */
    +public class mxMouseAdapter implements MouseMotionListener, MouseListener
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -6413162217897819199L;
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseDragged(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mousePressed(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseReleased(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseMoved(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseClicked(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseEntered(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void mouseExited(MouseEvent e)
    +	{
    +		// empty
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/util/mxSwingConstants.java b/java/src/com/mxgraph/swing/util/mxSwingConstants.java
    new file mode 100644
    index 000000000..49550074f
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/util/mxSwingConstants.java
    @@ -0,0 +1,179 @@
    +/**
    + * $Id: mxSwingConstants.java,v 1.3 2012-01-13 11:31:01 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.swing.util;
    +
    +import java.awt.BasicStroke;
    +import java.awt.Color;
    +import java.awt.Component;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Stroke;
    +import java.awt.image.BufferedImage;
    +
    +import javax.swing.border.Border;
    +import javax.swing.border.LineBorder;
    +
    +public class mxSwingConstants
    +{
    +	/**
    +	 * Contains an empty image of size 1, 1.
    +	 */
    +	public static BufferedImage EMPTY_IMAGE;
    +
    +	static
    +	{
    +		try
    +		{
    +			mxSwingConstants.EMPTY_IMAGE = new BufferedImage(1, 1,
    +					BufferedImage.TYPE_INT_RGB);
    +		}
    +		catch (Exception e)
    +		{
    +			// Occurs when running on GAE, BufferedImage is a
    +			// blacklisted class
    +			mxSwingConstants.EMPTY_IMAGE = null;
    +		}
    +	}
    +	
    +	/**
    +	 * Defines the color to be used for shadows. Default is gray.
    +	 */
    +	public static Color SHADOW_COLOR;
    +	
    +	/**
    +	 * Specifies the default valid color. Default is green.
    +	 */
    +	public static Color DEFAULT_VALID_COLOR;
    +
    +	/**
    +	 * Specifies the default invalid color. Default is red.
    +	 */
    +	public static Color DEFAULT_INVALID_COLOR;
    +	
    +	/**
    +	 * Defines the rubberband border color. 
    +	 */
    +	public static Color RUBBERBAND_BORDERCOLOR;
    +
    +	/**
    +	 * Defines the rubberband fill color with an alpha of 80.
    +	 */
    +	public static Color RUBBERBAND_FILLCOLOR;
    +	
    +	/**
    +	 * Defines the handle border color. Default is black.
    +	 */
    +	public static Color HANDLE_BORDERCOLOR;
    +
    +	/**
    +	 * Defines the handle fill color. Default is green.
    +	 */
    +	public static Color HANDLE_FILLCOLOR;
    +
    +	/**
    +	 * Defines the label handle fill color. Default is yellow.
    +	 */
    +	public static Color LABEL_HANDLE_FILLCOLOR;
    +
    +	/**
    +	 * Defines the connect handle fill color. Default is blue.
    +	 */
    +	public static Color CONNECT_HANDLE_FILLCOLOR;
    +
    +	/**
    +	 * Defines the handle fill color for locked handles. Default is red.
    +	 */
    +	public static Color LOCKED_HANDLE_FILLCOLOR;
    +	
    +	/**
    +	 * Defines the selection color for edges. Default is green.
    +	 */
    +	public static Color EDGE_SELECTION_COLOR;
    +
    +	/**
    +	 * Defines the selection color for vertices. Default is green.
    +	 */
    +	public static Color VERTEX_SELECTION_COLOR;
    +	
    +	static
    +	{
    +		try
    +		{
    +			mxSwingConstants.SHADOW_COLOR = Color.gray;
    +			mxSwingConstants.DEFAULT_VALID_COLOR = Color.GREEN;
    +			mxSwingConstants.DEFAULT_INVALID_COLOR = Color.RED;
    +			mxSwingConstants.RUBBERBAND_BORDERCOLOR = new Color(51, 153, 255);
    +			mxSwingConstants.RUBBERBAND_FILLCOLOR = new Color(51, 153, 255, 80);
    +			mxSwingConstants.HANDLE_BORDERCOLOR = Color.black;
    +			mxSwingConstants.HANDLE_FILLCOLOR = Color.green;
    +			mxSwingConstants.LABEL_HANDLE_FILLCOLOR = Color.yellow;
    +			mxSwingConstants.LOCKED_HANDLE_FILLCOLOR = Color.red;
    +			mxSwingConstants.CONNECT_HANDLE_FILLCOLOR = Color.blue;
    +			mxSwingConstants.EDGE_SELECTION_COLOR = Color.green;
    +			mxSwingConstants.VERTEX_SELECTION_COLOR = Color.green;
    +		}
    +		catch (Exception e)
    +		{
    +			// Occurs when running on GAE, Color is a
    +			// blacklisted class
    +			mxSwingConstants.SHADOW_COLOR = null;
    +			mxSwingConstants.DEFAULT_VALID_COLOR = null;
    +			mxSwingConstants.DEFAULT_INVALID_COLOR = null;
    +			mxSwingConstants.RUBBERBAND_BORDERCOLOR = null;
    +			mxSwingConstants.RUBBERBAND_FILLCOLOR = null;
    +			mxSwingConstants.HANDLE_BORDERCOLOR = null;
    +			mxSwingConstants.HANDLE_FILLCOLOR = null;
    +			mxSwingConstants.LABEL_HANDLE_FILLCOLOR = null;
    +			mxSwingConstants.LOCKED_HANDLE_FILLCOLOR = null;
    +			mxSwingConstants.CONNECT_HANDLE_FILLCOLOR = null;
    +			mxSwingConstants.EDGE_SELECTION_COLOR = null;
    +			mxSwingConstants.VERTEX_SELECTION_COLOR = null;
    +		}
    +	}
    +	
    +	/**
    +	 * Defines the stroke used for painting selected edges. Default is a dashed
    +	 * line.
    +	 */
    +	public static Stroke EDGE_SELECTION_STROKE = new BasicStroke(1,
    +			BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, new float[] {
    +					3, 3 }, 0.0f);
    +
    +	/**
    +	 * Defines the stroke used for painting the border of selected vertices.
    +	 * Default is a dashed line.
    +	 */
    +	public static Stroke VERTEX_SELECTION_STROKE = new BasicStroke(1,
    +			BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, new float[] {
    +					3, 3 }, 0.0f);
    +
    +	/**
    +	 * Defines the stroke used for painting the preview for new and existing edges
    +	 * that are being changed. Default is a dashed line.
    +	 */
    +	public static Stroke PREVIEW_STROKE = new BasicStroke(1,
    +			BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, new float[] {
    +					3, 3 }, 0.0f);
    +
    +	/**
    +	 * Defines the border used for painting the preview when vertices are being
    +	 * resized, or cells and labels are being moved.
    +	 */
    +	public static Border PREVIEW_BORDER = new LineBorder(
    +			mxSwingConstants.HANDLE_BORDERCOLOR)
    +	{
    +		/**
    +		 * 
    +		 */
    +		private static final long serialVersionUID = 1348016511717964310L;
    +
    +		public void paintBorder(Component c, Graphics g, int x, int y,
    +				int width, int height)
    +		{
    +			((Graphics2D) g).setStroke(VERTEX_SELECTION_STROKE);
    +			super.paintBorder(c, g, x, y, width, height);
    +		}
    +	};
    +}
    diff --git a/java/src/com/mxgraph/swing/util/package.html b/java/src/com/mxgraph/swing/util/package.html
    new file mode 100644
    index 000000000..7671b5939
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/util/package.html
    @@ -0,0 +1,6 @@
    +<HTML>
    +<BODY>
    +  This package contains all utility classes that require JFC/Swing, namely for
    +  mouse event handling, drag and drop, actions and overlays.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/swing/view/mxCellEditor.java b/java/src/com/mxgraph/swing/view/mxCellEditor.java
    new file mode 100644
    index 000000000..8c5de1047
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/view/mxCellEditor.java
    @@ -0,0 +1,664 @@
    +/**
    + * $Id: mxCellEditor.java,v 1.21 2010-10-28 10:41:05 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.view;
    +
    +import java.awt.BorderLayout;
    +import java.awt.Color;
    +import java.awt.Component;
    +import java.awt.Rectangle;
    +import java.awt.event.ActionEvent;
    +import java.io.IOException;
    +import java.io.Writer;
    +import java.util.EventObject;
    +
    +import javax.swing.AbstractAction;
    +import javax.swing.BorderFactory;
    +import javax.swing.InputMap;
    +import javax.swing.JEditorPane;
    +import javax.swing.JPanel;
    +import javax.swing.JScrollPane;
    +import javax.swing.JTextArea;
    +import javax.swing.KeyStroke;
    +import javax.swing.text.BadLocationException;
    +import javax.swing.text.Document;
    +import javax.swing.text.JTextComponent;
    +import javax.swing.text.StyledDocument;
    +import javax.swing.text.html.HTMLDocument;
    +import javax.swing.text.html.HTMLEditorKit;
    +import javax.swing.text.html.HTMLWriter;
    +import javax.swing.text.html.MinimalHTMLWriter;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * To control this editor, use mxGraph.invokesStopCellEditing, mxGraph.
    + * enterStopsCellEditing and mxGraph.escapeEnabled.
    + */
    +public class mxCellEditor implements mxICellEditor
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final String CANCEL_EDITING = "cancel-editing";
    +
    +	/**
    +	 * 
    +	 */
    +	private static final String INSERT_BREAK = "insert-break";
    +
    +	/**
    +	 * 
    +	 */
    +	private static final String SUBMIT_TEXT = "submit-text";
    +
    +	/**
    +	 * 
    +	 */
    +	public static int DEFAULT_MIN_WIDTH = 100;
    +
    +	/**
    +	 * 
    +	 */
    +	public static int DEFAULT_MIN_HEIGHT = 60;
    +
    +	/**
    +	 * 
    +	 */
    +	public static double DEFAULT_MINIMUM_EDITOR_SCALE = 1;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Defines the minimum scale to be used for the editor. Set this to
    +	 * 0 if the font size in the editor 
    +	 */
    +	protected double minimumEditorScale = DEFAULT_MINIMUM_EDITOR_SCALE;
    +
    +	/**
    +	 * 
    +	 */
    +	protected int minimumWidth = DEFAULT_MIN_WIDTH;
    +
    +	/**
    +	 * 
    +	 */
    +	protected int minimumHeight = DEFAULT_MIN_HEIGHT;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient Object editingCell;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient EventObject trigger;
    +
    +	/**
    +	 * 
    +	 */
    +	protected transient JScrollPane scrollPane;
    +
    +	/**
    +	 * Holds the editor for plain text editing.
    +	 */
    +	protected transient JTextArea textArea;
    +
    +	/**
    +	 * Holds the editor for HTML editing.
    +	 */
    +	protected transient JEditorPane editorPane;
    +
    +	/**
    +	 * Specifies if the text content of the HTML body should be extracted
    +	 * before and after editing for HTML markup. Default is true.
    +	 */
    +	protected boolean extractHtmlBody = true;
    +
    +	/**
    +	 * Specifies if linefeeds should be replaced with BREAKS before editing,
    +	 * and BREAKS should be replaced with linefeeds after editing. This
    +	 * value is ignored if extractHtmlBody is false. Default is true.
    +	 */
    +	protected boolean replaceLinefeeds = true;
    +
    +	/**
    +	 * Specifies if shift ENTER should submit text if enterStopsCellEditing
    +	 * is true. Default is false.
    +	 */
    +	protected boolean shiftEnterSubmitsText = false;
    +
    +	/**
    +	 * 
    +	 */
    +	transient Object editorEnterActionMapKey;
    +
    +	/**
    +	 * 
    +	 */
    +	transient Object textEnterActionMapKey;
    +
    +	/**
    +	 * 
    +	 */
    +	transient KeyStroke escapeKeystroke = KeyStroke.getKeyStroke("ESCAPE");
    +
    +	/**
    +	 * 
    +	 */
    +	transient KeyStroke enterKeystroke = KeyStroke.getKeyStroke("ENTER");
    +
    +	/**
    +	 * 
    +	 */
    +	transient KeyStroke shiftEnterKeystroke = KeyStroke
    +			.getKeyStroke("shift ENTER");
    +
    +	/**
    +	 * 
    +	 */
    +	protected AbstractAction cancelEditingAction = new AbstractAction()
    +	{
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			stopEditing(true);
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected AbstractAction textSubmitAction = new AbstractAction()
    +	{
    +		public void actionPerformed(ActionEvent e)
    +		{
    +			stopEditing(false);
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCellEditor(mxGraphComponent graphComponent)
    +	{
    +		this.graphComponent = graphComponent;
    +
    +		// Creates the plain text editor
    +		textArea = new JTextArea();
    +		textArea.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
    +		textArea.setOpaque(false);
    +
    +		// Creates the HTML editor
    +		editorPane = new JEditorPane();
    +		editorPane.setOpaque(false);
    +		editorPane.setContentType("text/html");
    +
    +		// Workaround for inserted linefeeds in HTML markup with
    +		// lines that are longar than 80 chars
    +		editorPane.setEditorKit(new NoLinefeedHtmlEditorKit());
    +
    +		// Creates the scollpane that contains the editor
    +		// FIXME: Cursor not visible when scrolling
    +		scrollPane = new JScrollPane();
    +		scrollPane.setBorder(BorderFactory.createEmptyBorder());
    +		scrollPane.getViewport().setOpaque(false);
    +		scrollPane.setVisible(false);
    +		scrollPane.setOpaque(false);
    +
    +		// Installs custom actions
    +		editorPane.getActionMap().put(CANCEL_EDITING, cancelEditingAction);
    +		textArea.getActionMap().put(CANCEL_EDITING, cancelEditingAction);
    +		editorPane.getActionMap().put(SUBMIT_TEXT, textSubmitAction);
    +		textArea.getActionMap().put(SUBMIT_TEXT, textSubmitAction);
    +
    +		// Remembers the action map key for the enter keystroke
    +		editorEnterActionMapKey = editorPane.getInputMap().get(enterKeystroke);
    +		textEnterActionMapKey = editorPane.getInputMap().get(enterKeystroke);
    +	}
    +
    +	/**
    +	 * Returns replaceHtmlLinefeeds
    +	 */
    +	public boolean isExtractHtmlBody()
    +	{
    +		return extractHtmlBody;
    +	}
    +
    +	/**
    +	 * Sets extractHtmlBody
    +	 */
    +	public void setExtractHtmlBody(boolean value)
    +	{
    +		extractHtmlBody = value;
    +	}
    +
    +	/**
    +	 * Returns replaceHtmlLinefeeds
    +	 */
    +	public boolean isReplaceHtmlLinefeeds()
    +	{
    +		return replaceLinefeeds;
    +	}
    +
    +	/**
    +	 * Sets replaceHtmlLinefeeds
    +	 */
    +	public void setReplaceHtmlLinefeeds(boolean value)
    +	{
    +		replaceLinefeeds = value;
    +	}
    +
    +	/**
    +	 * Returns shiftEnterSubmitsText
    +	 */
    +	public boolean isShiftEnterSubmitsText()
    +	{
    +		return shiftEnterSubmitsText;
    +	}
    +
    +	/**
    +	 * Sets shiftEnterSubmitsText
    +	 */
    +	public void setShiftEnterSubmitsText(boolean value)
    +	{
    +		shiftEnterSubmitsText = value;
    +	}
    +
    +	/**
    +	 * Installs the keyListener in the textArea and editorPane
    +	 * for handling the enter keystroke and updating the modified state.
    +	 */
    +	protected void configureActionMaps()
    +	{
    +		InputMap editorInputMap = editorPane.getInputMap();
    +		InputMap textInputMap = textArea.getInputMap();
    +
    +		// Adds handling for the escape key to cancel editing
    +		editorInputMap.put(escapeKeystroke, cancelEditingAction);
    +		textInputMap.put(escapeKeystroke, cancelEditingAction);
    +
    +		// Adds handling for shift-enter and redirects enter to stop editing
    +		if (graphComponent.isEnterStopsCellEditing())
    +		{
    +			editorInputMap.put(shiftEnterKeystroke, editorEnterActionMapKey);
    +			textInputMap.put(shiftEnterKeystroke, textEnterActionMapKey);
    +
    +			editorInputMap.put(enterKeystroke, SUBMIT_TEXT);
    +			textInputMap.put(enterKeystroke, SUBMIT_TEXT);
    +		}
    +		else
    +		{
    +			editorInputMap.put(enterKeystroke, editorEnterActionMapKey);
    +			textInputMap.put(enterKeystroke, textEnterActionMapKey);
    +
    +			if (isShiftEnterSubmitsText())
    +			{
    +				editorInputMap.put(shiftEnterKeystroke, SUBMIT_TEXT);
    +				textInputMap.put(shiftEnterKeystroke, SUBMIT_TEXT);
    +			}
    +			else
    +			{
    +				editorInputMap.remove(shiftEnterKeystroke);
    +				textInputMap.remove(shiftEnterKeystroke);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the current editor or null if no editing is in progress.
    +	 */
    +	public Component getEditor()
    +	{
    +		if (textArea.getParent() != null)
    +		{
    +			return textArea;
    +		}
    +		else if (editingCell != null)
    +		{
    +			return editorPane;
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns true if the label bounds of the state should be used for the
    +	 * editor.
    +	 */
    +	protected boolean useLabelBounds(mxCellState state)
    +	{
    +		mxIGraphModel model = state.getView().getGraph().getModel();
    +		mxGeometry geometry = model.getGeometry(state.getCell());
    +
    +		return ((geometry != null && geometry.getOffset() != null
    +				&& !geometry.isRelative() && (geometry.getOffset().getX() != 0 || geometry
    +				.getOffset().getY() != 0)) || model.isEdge(state.getCell()));
    +	}
    +
    +	/**
    +	 * Returns the bounds to be used for the editor.
    +	 */
    +	public Rectangle getEditorBounds(mxCellState state, double scale)
    +	{
    +		mxIGraphModel model = state.getView().getGraph().getModel();
    +		Rectangle bounds = null;
    +
    +		if (useLabelBounds(state))
    +		{
    +			bounds = state.getLabelBounds().getRectangle();
    +			bounds.height += 10;
    +		}
    +		else
    +		{
    +			bounds = state.getRectangle();
    +		}
    +
    +		// Applies the horizontal and vertical label positions
    +		if (model.isVertex(state.getCell()))
    +		{
    +			String horizontal = mxUtils.getString(state.getStyle(),
    +					mxConstants.STYLE_LABEL_POSITION, mxConstants.ALIGN_CENTER);
    +
    +			if (horizontal.equals(mxConstants.ALIGN_LEFT))
    +			{
    +				bounds.x -= state.getWidth();
    +			}
    +			else if (horizontal.equals(mxConstants.ALIGN_RIGHT))
    +			{
    +				bounds.x += state.getWidth();
    +			}
    +
    +			String vertical = mxUtils.getString(state.getStyle(),
    +					mxConstants.STYLE_VERTICAL_LABEL_POSITION,
    +					mxConstants.ALIGN_MIDDLE);
    +
    +			if (vertical.equals(mxConstants.ALIGN_TOP))
    +			{
    +				bounds.y -= state.getHeight();
    +			}
    +			else if (vertical.equals(mxConstants.ALIGN_BOTTOM))
    +			{
    +				bounds.y += state.getHeight();
    +			}
    +		}
    +
    +		bounds.setSize(
    +				(int) Math.max(bounds.getWidth(),
    +						Math.round(minimumWidth * scale)),
    +				(int) Math.max(bounds.getHeight(),
    +						Math.round(minimumHeight * scale)));
    +
    +		return bounds;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.swing.view.mxICellEditor#startEditing(java.lang.Object, java.util.EventObject)
    +	 */
    +	public void startEditing(Object cell, EventObject evt)
    +	{
    +		if (editingCell != null)
    +		{
    +			stopEditing(true);
    +		}
    +
    +		mxCellState state = graphComponent.getGraph().getView().getState(cell);
    +
    +		if (state != null)
    +		{
    +			editingCell = cell;
    +			trigger = evt;
    +
    +			double scale = Math.max(minimumEditorScale, graphComponent
    +					.getGraph().getView().getScale());
    +			scrollPane.setBounds(getEditorBounds(state, scale));
    +			scrollPane.setVisible(true);
    +
    +			String value = getInitialValue(state, evt);
    +			JTextComponent currentEditor = null;
    +
    +			// Configures the style of the in-place editor
    +			if (graphComponent.getGraph().isHtmlLabel(cell))
    +			{
    +				if (isExtractHtmlBody())
    +				{
    +					value = mxUtils.getBodyMarkup(value,
    +							isReplaceHtmlLinefeeds());
    +				}
    +
    +				editorPane.setDocument(mxUtils.createHtmlDocumentObject(
    +						state.getStyle(), scale));
    +				editorPane.setText(value);
    +
    +				// Workaround for wordwrapping in editor pane
    +				// FIXME: Cursor not visible at end of line
    +				JPanel wrapper = new JPanel(new BorderLayout());
    +				wrapper.setOpaque(false);
    +				wrapper.add(editorPane, BorderLayout.CENTER);
    +				scrollPane.setViewportView(wrapper);
    +
    +				currentEditor = editorPane;
    +			}
    +			else
    +			{
    +				textArea.setFont(mxUtils.getFont(state.getStyle(), scale));
    +				Color fontColor = mxUtils.getColor(state.getStyle(),
    +						mxConstants.STYLE_FONTCOLOR, Color.black);
    +				textArea.setForeground(fontColor);
    +				textArea.setText(value);
    +
    +				scrollPane.setViewportView(textArea);
    +				currentEditor = textArea;
    +			}
    +
    +			graphComponent.getGraphControl().add(scrollPane, 0);
    +
    +			if (isHideLabel(state))
    +			{
    +				graphComponent.redraw(state);
    +			}
    +
    +			currentEditor.revalidate();
    +			currentEditor.requestFocusInWindow();
    +			currentEditor.selectAll();
    +
    +			configureActionMaps();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected boolean isHideLabel(mxCellState state)
    +	{
    +		return true;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.swing.view.mxICellEditor#stopEditing(boolean)
    +	 */
    +	public void stopEditing(boolean cancel)
    +	{
    +		if (editingCell != null)
    +		{
    +			scrollPane.transferFocusUpCycle();
    +			Object cell = editingCell;
    +			editingCell = null;
    +
    +			if (!cancel)
    +			{
    +				EventObject trig = trigger;
    +				trigger = null;
    +				graphComponent.labelChanged(cell, getCurrentValue(), trig);
    +			}
    +			else
    +			{
    +				mxCellState state = graphComponent.getGraph().getView()
    +						.getState(cell);
    +				graphComponent.redraw(state);
    +			}
    +
    +			if (scrollPane.getParent() != null)
    +			{
    +				scrollPane.setVisible(false);
    +				scrollPane.getParent().remove(scrollPane);
    +			}
    +
    +			graphComponent.requestFocusInWindow();
    +		}
    +	}
    +
    +	/**
    +	 * Gets the initial editing value for the given cell.
    +	 */
    +	protected String getInitialValue(mxCellState state, EventObject trigger)
    +	{
    +		return graphComponent.getEditingValue(state.getCell(), trigger);
    +	}
    +
    +	/**
    +	 * Returns the current editing value.
    +	 */
    +	public String getCurrentValue()
    +	{
    +		String result;
    +
    +		if (textArea.getParent() != null)
    +		{
    +			result = textArea.getText();
    +		}
    +		else
    +		{
    +			result = editorPane.getText();
    +
    +			if (isExtractHtmlBody())
    +			{
    +				result = mxUtils
    +						.getBodyMarkup(result, isReplaceHtmlLinefeeds());
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/*
    +	 * (non-Javadoc)
    +	 * @see com.mxgraph.swing.view.mxICellEditor#getEditingCell()
    +	 */
    +	public Object getEditingCell()
    +	{
    +		return editingCell;
    +	}
    +
    +	/**
    +	 * @return the minimumEditorScale
    +	 */
    +	public double getMinimumEditorScale()
    +	{
    +		return minimumEditorScale;
    +	}
    +
    +	/**
    +	 * @param minimumEditorScale the minimumEditorScale to set
    +	 */
    +	public void setMinimumEditorScale(double minimumEditorScale)
    +	{
    +		this.minimumEditorScale = minimumEditorScale;
    +	}
    +
    +	/**
    +	 * @return the minimumWidth
    +	 */
    +	public int getMinimumWidth()
    +	{
    +		return minimumWidth;
    +	}
    +
    +	/**
    +	 * @param minimumWidth the minimumWidth to set
    +	 */
    +	public void setMinimumWidth(int minimumWidth)
    +	{
    +		this.minimumWidth = minimumWidth;
    +	}
    +
    +	/**
    +	 * @return the minimumHeight
    +	 */
    +	public int getMinimumHeight()
    +	{
    +		return minimumHeight;
    +	}
    +
    +	/**
    +	 * @param minimumHeight the minimumHeight to set
    +	 */
    +	public void setMinimumHeight(int minimumHeight)
    +	{
    +		this.minimumHeight = minimumHeight;
    +	}
    +
    +	/**
    +	 * Workaround for inserted linefeeds when getting text from HTML editor.
    +	 */
    +	class NoLinefeedHtmlEditorKit extends HTMLEditorKit
    +	{
    +		public void write(Writer out, Document doc, int pos, int len)
    +				throws IOException, BadLocationException
    +		{
    +			if (doc instanceof HTMLDocument)
    +			{
    +				NoLinefeedHtmlWriter w = new NoLinefeedHtmlWriter(out,
    +						(HTMLDocument) doc, pos, len);
    +
    +				// the default behavior of write() was to setLineLength(80) which resulted in
    +				// the inserting or a CR/LF around the 80ith character in any given
    +				// line. This was not good because if a merge tag was in that range, it would
    +				// insert CR/LF in between the merge tag and then the replacement of
    +				// merge tag with bean values was not working.
    +				w.setLineLength(Integer.MAX_VALUE);
    +				w.write();
    +			}
    +			else if (doc instanceof StyledDocument)
    +			{
    +				MinimalHTMLWriter w = new MinimalHTMLWriter(out,
    +						(StyledDocument) doc, pos, len);
    +				w.write();
    +			}
    +			else
    +			{
    +				super.write(out, doc, pos, len);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Subclassed to make setLineLength visible for the custom editor kit.
    +	 */
    +	class NoLinefeedHtmlWriter extends HTMLWriter
    +	{
    +		public NoLinefeedHtmlWriter(Writer buf, HTMLDocument doc, int pos,
    +				int len)
    +		{
    +			super(buf, doc, pos, len);
    +		}
    +
    +		protected void setLineLength(int l)
    +		{
    +			super.setLineLength(l);
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/view/mxCellStatePreview.java b/java/src/com/mxgraph/swing/view/mxCellStatePreview.java
    new file mode 100644
    index 000000000..171eeb2e8
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/view/mxCellStatePreview.java
    @@ -0,0 +1,524 @@
    +/**
    + * $Id: mxCellStatePreview.java,v 1.13 2011-03-23 13:30:21 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.swing.view;
    +
    +import java.awt.AlphaComposite;
    +import java.awt.Composite;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Point;
    +import java.util.Iterator;
    +import java.util.LinkedHashMap;
    +import java.util.LinkedList;
    +import java.util.List;
    +import java.util.Map;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +import com.mxgraph.view.mxGraph;
    +
    +/**
    + * Represents the current state of a cell in a given graph view.
    + */
    +public class mxCellStatePreview
    +{
    +	/**
    +	 * 
    +	 */
    +	protected Map<mxCellState, mxPoint> deltas = new LinkedHashMap<mxCellState, mxPoint>();
    +
    +	/**
    +	 * 
    +	 */
    +	protected int count = 0;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphComponent graphComponent;
    +
    +	/**
    +	 * Specifies if cell states should be cloned or changed in-place.
    +	 */
    +	protected boolean cloned;
    +
    +	/**
    +	 * 
    +	 */
    +	protected float opacity = 1;
    +
    +	/**
    +	 * 
    +	 */
    +	protected List<mxCellState> cellStates;
    +
    +	/**
    +	 * Constructs a new state preview. The paint handler to invoke the paint
    +	 * method must be installed elsewhere.
    +	 */
    +	public mxCellStatePreview(mxGraphComponent graphComponent, boolean cloned)
    +	{
    +		this.graphComponent = graphComponent;
    +		this.cloned = cloned;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isCloned()
    +	{
    +		return cloned;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setCloned(boolean value)
    +	{
    +		cloned = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEmpty()
    +	{
    +		return count == 0;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getCount()
    +	{
    +		return count;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Map<mxCellState, mxPoint> getDeltas()
    +	{
    +		return deltas;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setOpacity(float value)
    +	{
    +		opacity = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public float getOpacity()
    +	{
    +		return opacity;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxPoint moveState(mxCellState state, double dx, double dy)
    +	{
    +		return moveState(state, dx, dy, true, true);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxPoint moveState(mxCellState state, double dx, double dy,
    +			boolean add, boolean includeEdges)
    +	{
    +		mxPoint delta = deltas.get(state);
    +
    +		if (delta == null)
    +		{
    +			delta = new mxPoint(dx, dy);
    +			deltas.put(state, delta);
    +			count++;
    +		}
    +		else
    +		{
    +			if (add)
    +			{
    +				delta.setX(delta.getX() + dx);
    +				delta.setY(delta.getY() + dy);
    +			}
    +			else
    +			{
    +				delta.setX(dx);
    +				delta.setY(dy);
    +			}
    +		}
    +
    +		if (includeEdges)
    +		{
    +			addEdges(state);
    +		}
    +
    +		return delta;
    +	}
    +
    +	/**
    +	 * Returns a dirty rectangle to be repainted in mxGraphControl.
    +	 */
    +	public mxRectangle show()
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxIGraphModel model = graph.getModel();
    +
    +		// Stores a copy of the cell states
    +		List<mxCellState> previousStates = null;
    +
    +		if (isCloned())
    +		{
    +			previousStates = new LinkedList<mxCellState>();
    +			Iterator<mxCellState> it = deltas.keySet().iterator();
    +
    +			while (it.hasNext())
    +			{
    +				mxCellState state = it.next();
    +				previousStates.addAll(snapshot(state));
    +			}
    +		}
    +
    +		// Translates the states in step
    +		Iterator<mxCellState> it = deltas.keySet().iterator();
    +
    +		while (it.hasNext())
    +		{
    +			mxCellState state = it.next();
    +			mxPoint delta = deltas.get(state);
    +			mxCellState parentState = graph.getView().getState(
    +					model.getParent(state.getCell()));
    +			translateState(parentState, state, delta.getX(), delta.getY());
    +		}
    +
    +		// Revalidates the states in step
    +		mxRectangle dirty = null;
    +		it = deltas.keySet().iterator();
    +
    +		while (it.hasNext())
    +		{
    +			mxCellState state = it.next();
    +			mxPoint delta = deltas.get(state);
    +			mxCellState parentState = graph.getView().getState(
    +					model.getParent(state.getCell()));
    +			mxRectangle tmp = revalidateState(parentState, state, delta.getX(),
    +					delta.getY());
    +
    +			if (dirty != null)
    +			{
    +				dirty.add(tmp);
    +			}
    +			else
    +			{
    +				dirty = tmp;
    +			}
    +		}
    +
    +		// Takes a snapshot of the states for later drawing. If the states
    +		// are not cloned then this does nothing and just expects a repaint
    +		// of the dirty rectangle.
    +		if (previousStates != null)
    +		{
    +			cellStates = new LinkedList<mxCellState>();
    +			it = deltas.keySet().iterator();
    +
    +			while (it.hasNext())
    +			{
    +				mxCellState state = it.next();
    +				cellStates.addAll(snapshot(state));
    +			}
    +
    +			// Restores the previous states
    +			restore(previousStates);
    +		}
    +
    +		if (dirty != null)
    +		{
    +			dirty.grow(2);
    +		}
    +
    +		return dirty;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void restore(List<mxCellState> snapshot)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		Iterator<mxCellState> it = snapshot.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			mxCellState state = it.next();
    +			mxCellState orig = graph.getView().getState(state.getCell());
    +
    +			if (orig != null && orig != state)
    +			{
    +				restoreState(orig, state);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void restoreState(mxCellState state, mxCellState from)
    +	{
    +		state.setLabelBounds(from.getLabelBounds());
    +		state.setAbsolutePoints(from.getAbsolutePoints());
    +		state.setOrigin(from.getOrigin());
    +		state.setAbsoluteOffset(from.getAbsoluteOffset());
    +		state.setBoundingBox(from.getBoundingBox());
    +		state.setTerminalDistance(from.getTerminalDistance());
    +		state.setSegments(from.getSegments());
    +		state.setLength(from.getLength());
    +		state.setX(from.getX());
    +		state.setY(from.getY());
    +		state.setWidth(from.getWidth());
    +		state.setHeight(from.getHeight());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public List<mxCellState> snapshot(mxCellState state)
    +	{
    +		List<mxCellState> result = new LinkedList<mxCellState>();
    +
    +		if (state != null)
    +		{
    +			result.add((mxCellState) state.clone());
    +
    +			mxGraph graph = graphComponent.getGraph();
    +			mxIGraphModel model = graph.getModel();
    +			Object cell = state.getCell();
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				result.addAll(snapshot(graph.getView().getState(
    +						model.getChildAt(cell, i))));
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	protected void translateState(mxCellState parentState, mxCellState state,
    +			double dx, double dy)
    +	{
    +		if (state != null)
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +			mxIGraphModel model = graph.getModel();
    +			Object cell = state.getCell();
    +
    +			if (model.isVertex(cell))
    +			{
    +				// LATER: Use hashtable to store initial state bounds
    +				state.setInvalid(true);
    +				graph.getView().validateBounds(parentState, cell);
    +				mxGeometry geo = graph.getCellGeometry(cell);
    +
    +				// Moves selection cells and non-relative vertices in
    +				// the first phase so that edge terminal points will
    +				// be updated in the second phase
    +				if ((dx != 0 || dy != 0) && geo != null
    +						&& (!geo.isRelative() || deltas.get(state) != null))
    +				{
    +					state.setX(state.getX() + dx);
    +					state.setY(state.getY() + dy);
    +				}
    +			}
    +
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				translateState(state,
    +						graph.getView().getState(model.getChildAt(cell, i)),
    +						dx, dy);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	protected mxRectangle revalidateState(mxCellState parentState,
    +			mxCellState state, double dx, double dy)
    +	{
    +		mxRectangle dirty = null;
    +
    +		if (state != null)
    +		{
    +			mxGraph graph = graphComponent.getGraph();
    +			mxIGraphModel model = graph.getModel();
    +			Object cell = state.getCell();
    +
    +			// Updates the edge terminal points and restores the
    +			// (relative) positions of any (relative) children
    +			state.setInvalid(true);
    +			dirty = graph.getView().validatePoints(parentState, cell);
    +
    +			// Moves selection vertices which are relative
    +			mxGeometry geo = graph.getCellGeometry(cell);
    +
    +			if ((dx != 0 || dy != 0)
    +					&& geo != null
    +					&& geo.isRelative()
    +					&& model.isVertex(cell)
    +					&& (parentState == null
    +							|| model.isVertex(parentState.getCell()) || deltas
    +							.get(state) != null))
    +			{
    +				state.setX(state.getX() + dx);
    +				state.setY(state.getY() + dy);
    +
    +				// TODO: Check this change
    +				dirty.setX(dirty.getX() + dx);
    +				dirty.setY(dirty.getY() + dy);
    +
    +				graph.getView().updateLabelBounds(state);
    +			}
    +
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				mxRectangle tmp = revalidateState(state, graph.getView()
    +						.getState(model.getChildAt(cell, i)), dx, dy);
    +
    +				if (dirty != null)
    +				{
    +					dirty.add(tmp);
    +				}
    +				else
    +				{
    +					dirty = tmp;
    +				}
    +			}
    +		}
    +
    +		return dirty;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void addEdges(mxCellState state)
    +	{
    +		mxGraph graph = graphComponent.getGraph();
    +		mxIGraphModel model = graph.getModel();
    +		Object cell = state.getCell();
    +		int edgeCount = model.getEdgeCount(cell);
    +
    +		for (int i = 0; i < edgeCount; i++)
    +		{
    +			mxCellState state2 = graph.getView().getState(
    +					model.getEdgeAt(cell, i));
    +
    +			if (state2 != null)
    +			{
    +				moveState(state2, 0, 0);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void paint(Graphics g)
    +	{
    +		if (cellStates != null && cellStates.size() > 0)
    +		{
    +			mxGraphics2DCanvas canvas = graphComponent.getCanvas();
    +
    +			// Sets antialiasing
    +			if (graphComponent.isAntiAlias())
    +			{
    +				mxUtils.setAntiAlias((Graphics2D) g, true, true);
    +			}
    +
    +			Graphics2D previousGraphics = canvas.getGraphics();
    +			Point previousTranslate = canvas.getTranslate();
    +			double previousScale = canvas.getScale();
    +
    +			try
    +			{
    +				canvas.setScale(graphComponent.getGraph().getView().getScale());
    +				canvas.setTranslate(0, 0);
    +				canvas.setGraphics((Graphics2D) g);
    +
    +				paintPreview(canvas);
    +			}
    +			finally
    +			{
    +				canvas.setScale(previousScale);
    +				canvas.setTranslate(previousTranslate.x, previousTranslate.y);
    +				canvas.setGraphics(previousGraphics);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected float getOpacityForCell(Object cell)
    +	{
    +		return opacity;
    +	}
    +
    +	/**
    +	 * Draws the preview using the graphics canvas.
    +	 */
    +	protected void paintPreview(mxGraphics2DCanvas canvas)
    +	{
    +		Composite previousComposite = canvas.getGraphics().getComposite();
    +
    +		// Paints the preview states
    +		Iterator<mxCellState> it = cellStates.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			mxCellState state = it.next();
    +			canvas.getGraphics().setComposite(
    +					AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
    +							getOpacityForCell(state.getCell())));
    +			paintPreviewState(canvas, state);
    +		}
    +
    +		canvas.getGraphics().setComposite(previousComposite);
    +	}
    +
    +	/**
    +	 * Draws the preview using the graphics canvas.
    +	 */
    +	protected void paintPreviewState(mxGraphics2DCanvas canvas,
    +			mxCellState state)
    +	{
    +		graphComponent.getGraph().drawState(
    +				canvas,
    +				state,
    +				state.getCell() != graphComponent.getCellEditor()
    +						.getEditingCell());
    +	}
    +}
    diff --git a/java/src/com/mxgraph/swing/view/mxICellEditor.java b/java/src/com/mxgraph/swing/view/mxICellEditor.java
    new file mode 100644
    index 000000000..ad5f7508a
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/view/mxICellEditor.java
    @@ -0,0 +1,30 @@
    +/**
    + * $Id: mxICellEditor.java,v 1.1 2008-09-26 14:47:41 gaudenz Exp $
    + * Copyright (c) 2008, Gaudenz Alder
    + */
    +package com.mxgraph.swing.view;
    +
    +import java.util.EventObject;
    +
    +/**
    + *
    + */
    +public interface mxICellEditor
    +{
    +
    +	/**
    +	 * Returns the cell that is currently being edited.
    +	 */
    +	public Object getEditingCell();
    +
    +	/**
    +	 * Starts editing the given cell.
    +	 */
    +	public void startEditing(Object cell, EventObject trigger);
    +
    +	/**
    +	 * Stops the current editing.
    +	 */
    +	public void stopEditing(boolean cancel);
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/view/mxInteractiveCanvas.java b/java/src/com/mxgraph/swing/view/mxInteractiveCanvas.java
    new file mode 100644
    index 000000000..20393a639
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/view/mxInteractiveCanvas.java
    @@ -0,0 +1,197 @@
    +/**
    + * $Id: mxInteractiveCanvas.java,v 1.9 2011-09-26 15:37:01 gaudenz Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.swing.view;
    +
    +import java.awt.Dimension;
    +import java.awt.Image;
    +import java.awt.Rectangle;
    +import java.awt.Shape;
    +import java.awt.image.ImageObserver;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.shape.mxBasicShape;
    +import com.mxgraph.shape.mxIShape;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxCellState;
    +
    +public class mxInteractiveCanvas extends mxGraphics2DCanvas
    +{
    +	/**
    +	 * 
    +	 */
    +	protected ImageObserver imageObserver = null;
    +
    +	/**
    +	 * 
    +	 */
    +	public mxInteractiveCanvas()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxInteractiveCanvas(ImageObserver imageObserver)
    +	{
    +		setImageObserver(imageObserver);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setImageObserver(ImageObserver value)
    +	{
    +		imageObserver = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public ImageObserver getImageObserver()
    +	{
    +		return imageObserver;
    +	}
    +
    +	/**
    +	 * Overrides graphics call to use image observer.
    +	 */
    +	protected void drawImageImpl(Image image, int x, int y)
    +	{
    +		g.drawImage(image, x, y, imageObserver);
    +	}
    +
    +	/**
    +	 * Returns the size for the given image.
    +	 */
    +	protected Dimension getImageSize(Image image)
    +	{
    +		return new Dimension(image.getWidth(imageObserver),
    +				image.getHeight(imageObserver));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean contains(mxGraphComponent graphComponent, Rectangle rect,
    +			mxCellState state)
    +	{
    +		return state != null && state.getX() >= rect.x
    +				&& state.getY() >= rect.y
    +				&& state.getX() + state.getWidth() <= rect.x + rect.width
    +				&& state.getY() + state.getHeight() <= rect.y + rect.height;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean intersects(mxGraphComponent graphComponent, Rectangle rect,
    +			mxCellState state)
    +	{
    +		if (state != null)
    +		{
    +			// Checks if the label intersects
    +			if (state.getLabelBounds() != null
    +					&& state.getLabelBounds().getRectangle().intersects(rect))
    +			{
    +				return true;
    +			}
    +
    +			int pointCount = state.getAbsolutePointCount();
    +
    +			// Checks if the segments of the edge intersect
    +			if (pointCount > 0)
    +			{
    +				rect = (Rectangle) rect.clone();
    +				int tolerance = graphComponent.getTolerance();
    +				rect.grow(tolerance, tolerance);
    +
    +				Shape realShape = null;
    +
    +				// FIXME: Check if this should be used for all shapes
    +				if (mxUtils.getString(state.getStyle(),
    +						mxConstants.STYLE_SHAPE, "").equals(
    +						mxConstants.SHAPE_ARROW))
    +				{
    +					mxIShape shape = getShape(state.getStyle());
    +
    +					if (shape instanceof mxBasicShape)
    +					{
    +						realShape = ((mxBasicShape) shape).createShape(this,
    +								state);
    +					}
    +				}
    +
    +				if (realShape != null && realShape.intersects(rect))
    +				{
    +					return true;
    +				}
    +				else
    +				{
    +					mxPoint p0 = state.getAbsolutePoint(0);
    +
    +					for (int i = 0; i < pointCount; i++)
    +					{
    +						mxPoint p1 = state.getAbsolutePoint(i);
    +
    +						if (rect.intersectsLine(p0.getX(), p0.getY(),
    +								p1.getX(), p1.getY()))
    +						{
    +							return true;
    +						}
    +
    +						p0 = p1;
    +					}
    +				}
    +			}
    +			else
    +			{
    +				// Checks if the bounds of the shape intersect
    +				return state.getRectangle().intersects(rect);
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns true if the given point is inside the content area of the given
    +	 * swimlane. (The content area of swimlanes is transparent to events.) This
    +	 * implementation does not check if the given state is a swimlane, it is
    +	 * assumed that the caller has checked this before using this method.
    +	 */
    +	public boolean hitSwimlaneContent(mxGraphComponent graphComponent,
    +			mxCellState swimlane, int x, int y)
    +	{
    +		if (swimlane != null)
    +		{
    +			int start = (int) Math.max(2, Math.round(mxUtils.getInt(
    +					swimlane.getStyle(), mxConstants.STYLE_STARTSIZE,
    +					mxConstants.DEFAULT_STARTSIZE)
    +					* graphComponent.getGraph().getView().getScale()));
    +			Rectangle rect = swimlane.getRectangle();
    +
    +			if (mxUtils.isTrue(swimlane.getStyle(),
    +					mxConstants.STYLE_HORIZONTAL, true))
    +			{
    +				rect.y += start;
    +				rect.height -= start;
    +			}
    +			else
    +			{
    +				rect.x += start;
    +				rect.width -= start;
    +			}
    +
    +			return rect.contains(x, y);
    +		}
    +
    +		return false;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/swing/view/package.html b/java/src/com/mxgraph/swing/view/package.html
    new file mode 100644
    index 000000000..d74e05e12
    --- /dev/null
    +++ b/java/src/com/mxgraph/swing/view/package.html
    @@ -0,0 +1,7 @@
    +<HTML>
    +<BODY>
    +  This package contains all classes required for interaction, namely the
    +  mxCellEditor used for in-place editing and the mxInteractiveCanvas, which
    +  defines the requirements for a canvas that supports hit-detection on shapes.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/util/mxBase64.java b/java/src/com/mxgraph/util/mxBase64.java
    new file mode 100644
    index 000000000..c316872f7
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxBase64.java
    @@ -0,0 +1,612 @@
    +package com.mxgraph.util;
    +
    +import java.util.Arrays;
    +
    +/** A very fast and memory efficient class to encode and decode to and from BASE64 in full accordance
    + * with RFC 2045.<br><br>
    + * On Windows XP sp1 with 1.4.2_04 and later ;), this encoder and decoder is about 10 times faster
    + * on small arrays (10 - 1000 bytes) and 2-3 times as fast on larger arrays (10000 - 1000000 bytes)
    + * compared to <code>sun.misc.Encoder()/Decoder()</code>.<br><br>
    + *
    + * On byte arrays the encoder is about 20% faster than Jakarta Commons Base64 Codec for encode and
    + * about 50% faster for decoding large arrays. This implementation is about twice as fast on very small
    + * arrays (&lt 30 bytes). If source/destination is a <code>String</code> this
    + * version is about three times as fast due to the fact that the Commons Codec result has to be recoded
    + * to a <code>String</code> from <code>byte[]</code>, which is very expensive.<br><br>
    + *
    + * This encode/decode algorithm doesn't create any temporary arrays as many other codecs do, it only
    + * allocates the resulting array. This produces less garbage and it is possible to handle arrays twice
    + * as large as algorithms that create a temporary array. (E.g. Jakarta Commons Codec). It is unknown
    + * whether Sun's <code>sun.misc.Encoder()/Decoder()</code> produce temporary arrays but since performance
    + * is quite low it probably does.<br><br>
    + *
    + * The encoder produces the same output as the Sun one except that the Sun's encoder appends
    + * a trailing line separator if the last character isn't a pad. Unclear why but it only adds to the
    + * length and is probably a side effect. Both are in conformance with RFC 2045 though.<br>
    + * Commons codec seem to always att a trailing line separator.<br><br>
    + *
    + * <b>Note!</b>
    + * The encode/decode method pairs (types) come in three versions with the <b>exact</b> same algorithm and
    + * thus a lot of code redundancy. This is to not create any temporary arrays for transcoding to/from different
    + * format types. The methods not used can simply be commented out.<br><br>
    + *
    + * There is also a "fast" version of all decode methods that works the same way as the normal ones, but
    + * har a few demands on the decoded input. Normally though, these fast verions should be used if the source if
    + * the input is known and it hasn't bee tampered with.<br><br>
    + *
    + * If you find the code useful or you find a bug, please send me a note at base64 @ miginfocom . com.
    + *
    + * Licence (BSD):
    + * ==============
    + *
    + * Copyright (c) 2004, Mikael Grev, MiG InfoCom AB. (base64 @ miginfocom . com)
    + * All rights reserved.
    + *
    + * Redistribution and use in source and binary forms, with or without modification,
    + * are permitted provided that the following conditions are met:
    + * Redistributions of source code must retain the above copyright notice, this list
    + * of conditions and the following disclaimer.
    + * Redistributions in binary form must reproduce the above copyright notice, this
    + * list of conditions and the following disclaimer in the documentation and/or other
    + * materials provided with the distribution.
    + * Neither the name of the MiG InfoCom AB nor the names of its contributors may be
    + * used to endorse or promote products derived from this software without specific
    + * prior written permission.
    + *
    + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    + * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
    + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
    + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
    + * OF SUCH DAMAGE.
    + *
    + * @version 2.2
    + * @author Mikael Grev
    + *         Date: 2004-aug-02
    + *         Time: 11:31:11
    + */
    +
    +public class mxBase64
    +{
    +	private static final char[] CA = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    +			.toCharArray();
    +
    +	private static final int[] IA = new int[256];
    +	static
    +	{
    +		Arrays.fill(IA, -1);
    +		for (int i = 0, iS = CA.length; i < iS; i++)
    +			IA[CA[i]] = i;
    +		IA['='] = 0;
    +	}
    +
    +	// ****************************************************************************************
    +	// *  char[] version
    +	// ****************************************************************************************
    +
    +	/** Encodes a raw byte array into a BASE64 <code>char[]</code> representation i accordance with RFC 2045.
    +	 * @param sArr The bytes to convert. If <code>null</code> or length 0 an empty array will be returned.
    +	 * @param lineSep Optional "\r\n" after 76 characters, unless end of file.<br>
    +	 * No line separator will be in breach of RFC 2045 which specifies max 76 per line but will be a
    +	 * little faster.
    +	 * @return A BASE64 encoded array. Never <code>null</code>.
    +	 */
    +	public final static char[] encodeToChar(byte[] sArr, boolean lineSep)
    +	{
    +		// Check special case
    +		int sLen = sArr != null ? sArr.length : 0;
    +		if (sLen == 0)
    +			return new char[0];
    +
    +		int eLen = (sLen / 3) * 3; // Length of even 24-bits.
    +		int cCnt = ((sLen - 1) / 3 + 1) << 2; // Returned character count
    +		int dLen = cCnt + (lineSep ? (cCnt - 1) / 76 << 1 : 0); // Length of returned array
    +		char[] dArr = new char[dLen];
    +
    +		// Encode even 24-bits
    +		for (int s = 0, d = 0, cc = 0; s < eLen;)
    +		{
    +			// Copy next three bytes into lower 24 bits of int, paying attension to sign.
    +			int i = (sArr[s++] & 0xff) << 16 | (sArr[s++] & 0xff) << 8
    +					| (sArr[s++] & 0xff);
    +
    +			// Encode the int into four chars
    +			dArr[d++] = CA[(i >>> 18) & 0x3f];
    +			dArr[d++] = CA[(i >>> 12) & 0x3f];
    +			dArr[d++] = CA[(i >>> 6) & 0x3f];
    +			dArr[d++] = CA[i & 0x3f];
    +
    +			// Add optional line separator
    +			if (lineSep && ++cc == 19 && d < dLen - 2)
    +			{
    +				dArr[d++] = '\r';
    +				dArr[d++] = '\n';
    +				cc = 0;
    +			}
    +		}
    +
    +		// Pad and encode last bits if source isn't even 24 bits.
    +		int left = sLen - eLen; // 0 - 2.
    +		if (left > 0)
    +		{
    +			// Prepare the int
    +			int i = ((sArr[eLen] & 0xff) << 10)
    +					| (left == 2 ? ((sArr[sLen - 1] & 0xff) << 2) : 0);
    +
    +			// Set last four chars
    +			dArr[dLen - 4] = CA[i >> 12];
    +			dArr[dLen - 3] = CA[(i >>> 6) & 0x3f];
    +			dArr[dLen - 2] = left == 2 ? CA[i & 0x3f] : '=';
    +			dArr[dLen - 1] = '=';
    +		}
    +		return dArr;
    +	}
    +
    +	/** Decodes a BASE64 encoded char array. All illegal characters will be ignored and can handle both arrays with
    +	 * and without line separators.
    +	 * @param sArr The source array. <code>null</code> or length 0 will return an empty array.
    +	 * @return The decoded array of bytes. May be of length 0. Will be <code>null</code> if the legal characters
    +	 * (including '=') isn't divideable by 4.  (I.e. definitely corrupted).
    +	 */
    +	public final static byte[] decode(char[] sArr)
    +	{
    +		// Check special case
    +		int sLen = sArr != null ? sArr.length : 0;
    +		if (sLen == 0)
    +			return new byte[0];
    +
    +		// Count illegal characters (including '\r', '\n') to know what size the returned array will be,
    +		// so we don't have to reallocate & copy it later.
    +		int sepCnt = 0; // Number of separator characters. (Actually illegal characters, but that's a bonus...)
    +		for (int i = 0; i < sLen; i++)
    +			// If input is "pure" (I.e. no line separators or illegal chars) base64 this loop can be commented out.
    +			if (IA[sArr[i]] < 0)
    +				sepCnt++;
    +
    +		// Check so that legal chars (including '=') are evenly divideable by 4 as specified in RFC 2045.
    +		if ((sLen - sepCnt) % 4 != 0)
    +			return null;
    +
    +		int pad = 0;
    +		for (int i = sLen; i > 1 && IA[sArr[--i]] <= 0;)
    +			if (sArr[i] == '=')
    +				pad++;
    +
    +		int len = ((sLen - sepCnt) * 6 >> 3) - pad;
    +
    +		byte[] dArr = new byte[len]; // Preallocate byte[] of exact length
    +
    +		for (int s = 0, d = 0; d < len;)
    +		{
    +			// Assemble three bytes into an int from four "valid" characters.
    +			int i = 0;
    +			for (int j = 0; j < 4; j++)
    +			{ // j only increased if a valid char was found.
    +				int c = IA[sArr[s++]];
    +				if (c >= 0)
    +					i |= c << (18 - j * 6);
    +				else
    +					j--;
    +			}
    +			// Add the bytes
    +			dArr[d++] = (byte) (i >> 16);
    +			if (d < len)
    +			{
    +				dArr[d++] = (byte) (i >> 8);
    +				if (d < len)
    +					dArr[d++] = (byte) i;
    +			}
    +		}
    +		return dArr;
    +	}
    +
    +	/** Decodes a BASE64 encoded char array that is known to be resonably well formatted. The method is about twice as
    +	 * fast as {@link #decode(char[])}. The preconditions are:<br>
    +	 * + The array must have a line length of 76 chars OR no line separators at all (one line).<br>
    +	 * + Line separator must be "\r\n", as specified in RFC 2045
    +	 * + The array must not contain illegal characters within the encoded string<br>
    +	 * + The array CAN have illegal characters at the beginning and end, those will be dealt with appropriately.<br>
    +	 * @param sArr The source array. Length 0 will return an empty array. <code>null</code> will throw an exception.
    +	 * @return The decoded array of bytes. May be of length 0.
    +	 */
    +	public final static byte[] decodeFast(char[] sArr)
    +	{
    +		// Check special case
    +		int sLen = sArr.length;
    +		if (sLen == 0)
    +			return new byte[0];
    +
    +		int sIx = 0, eIx = sLen - 1; // Start and end index after trimming.
    +
    +		// Trim illegal chars from start
    +		while (sIx < eIx && IA[sArr[sIx]] < 0)
    +			sIx++;
    +
    +		// Trim illegal chars from end
    +		while (eIx > 0 && IA[sArr[eIx]] < 0)
    +			eIx--;
    +
    +		// get the padding count (=) (0, 1 or 2)
    +		int pad = sArr[eIx] == '=' ? (sArr[eIx - 1] == '=' ? 2 : 1) : 0; // Count '=' at end.
    +		int cCnt = eIx - sIx + 1; // Content count including possible separators
    +		int sepCnt = sLen > 76 ? (sArr[76] == '\r' ? cCnt / 78 : 0) << 1 : 0;
    +
    +		int len = ((cCnt - sepCnt) * 6 >> 3) - pad; // The number of decoded bytes
    +		byte[] dArr = new byte[len]; // Preallocate byte[] of exact length
    +
    +		// Decode all but the last 0 - 2 bytes.
    +		int d = 0;
    +		for (int cc = 0, eLen = (len / 3) * 3; d < eLen;)
    +		{
    +			// Assemble three bytes into an int from four "valid" characters.
    +			int i = IA[sArr[sIx++]] << 18 | IA[sArr[sIx++]] << 12
    +					| IA[sArr[sIx++]] << 6 | IA[sArr[sIx++]];
    +
    +			// Add the bytes
    +			dArr[d++] = (byte) (i >> 16);
    +			dArr[d++] = (byte) (i >> 8);
    +			dArr[d++] = (byte) i;
    +
    +			// If line separator, jump over it.
    +			if (sepCnt > 0 && ++cc == 19)
    +			{
    +				sIx += 2;
    +				cc = 0;
    +			}
    +		}
    +
    +		if (d < len)
    +		{
    +			// Decode last 1-3 bytes (incl '=') into 1-3 bytes
    +			int i = 0;
    +			for (int j = 0; sIx <= eIx - pad; j++)
    +				i |= IA[sArr[sIx++]] << (18 - j * 6);
    +
    +			for (int r = 16; d < len; r -= 8)
    +				dArr[d++] = (byte) (i >> r);
    +		}
    +
    +		return dArr;
    +	}
    +
    +	// ****************************************************************************************
    +	// *  byte[] version
    +	// ****************************************************************************************
    +
    +	/** Encodes a raw byte array into a BASE64 <code>byte[]</code> representation i accordance with RFC 2045.
    +	 * @param sArr The bytes to convert. If <code>null</code> or length 0 an empty array will be returned.
    +	 * @param lineSep Optional "\r\n" after 76 characters, unless end of file.<br>
    +	 * No line separator will be in breach of RFC 2045 which specifies max 76 per line but will be a
    +	 * little faster.
    +	 * @return A BASE64 encoded array. Never <code>null</code>.
    +	 */
    +	public final static byte[] encodeToByte(byte[] sArr, boolean lineSep)
    +	{
    +		// Check special case
    +		int sLen = sArr != null ? sArr.length : 0;
    +		if (sLen == 0)
    +			return new byte[0];
    +
    +		int eLen = (sLen / 3) * 3; // Length of even 24-bits.
    +		int cCnt = ((sLen - 1) / 3 + 1) << 2; // Returned character count
    +		int dLen = cCnt + (lineSep ? (cCnt - 1) / 76 << 1 : 0); // Length of returned array
    +		byte[] dArr = new byte[dLen];
    +
    +		// Encode even 24-bits
    +		for (int s = 0, d = 0, cc = 0; s < eLen;)
    +		{
    +			// Copy next three bytes into lower 24 bits of int, paying attension to sign.
    +			int i = (sArr[s++] & 0xff) << 16 | (sArr[s++] & 0xff) << 8
    +					| (sArr[s++] & 0xff);
    +
    +			// Encode the int into four chars
    +			dArr[d++] = (byte) CA[(i >>> 18) & 0x3f];
    +			dArr[d++] = (byte) CA[(i >>> 12) & 0x3f];
    +			dArr[d++] = (byte) CA[(i >>> 6) & 0x3f];
    +			dArr[d++] = (byte) CA[i & 0x3f];
    +
    +			// Add optional line separator
    +			if (lineSep && ++cc == 19 && d < dLen - 2)
    +			{
    +				dArr[d++] = '\r';
    +				dArr[d++] = '\n';
    +				cc = 0;
    +			}
    +		}
    +
    +		// Pad and encode last bits if source isn't an even 24 bits.
    +		int left = sLen - eLen; // 0 - 2.
    +		if (left > 0)
    +		{
    +			// Prepare the int
    +			int i = ((sArr[eLen] & 0xff) << 10)
    +					| (left == 2 ? ((sArr[sLen - 1] & 0xff) << 2) : 0);
    +
    +			// Set last four chars
    +			dArr[dLen - 4] = (byte) CA[i >> 12];
    +			dArr[dLen - 3] = (byte) CA[(i >>> 6) & 0x3f];
    +			dArr[dLen - 2] = left == 2 ? (byte) CA[i & 0x3f] : (byte) '=';
    +			dArr[dLen - 1] = '=';
    +		}
    +		return dArr;
    +	}
    +
    +	/** Decodes a BASE64 encoded byte array. All illegal characters will be ignored and can handle both arrays with
    +	 * and without line separators.
    +	 * @param sArr The source array. Length 0 will return an empty array. <code>null</code> will throw an exception.
    +	 * @return The decoded array of bytes. May be of length 0. Will be <code>null</code> if the legal characters
    +	 * (including '=') isn't divideable by 4. (I.e. definitely corrupted).
    +	 */
    +	public final static byte[] decode(byte[] sArr)
    +	{
    +		// Check special case
    +		int sLen = sArr.length;
    +
    +		// Count illegal characters (including '\r', '\n') to know what size the returned array will be,
    +		// so we don't have to reallocate & copy it later.
    +		int sepCnt = 0; // Number of separator characters. (Actually illegal characters, but that's a bonus...)
    +		for (int i = 0; i < sLen; i++)
    +			// If input is "pure" (I.e. no line separators or illegal chars) base64 this loop can be commented out.
    +			if (IA[sArr[i] & 0xff] < 0)
    +				sepCnt++;
    +
    +		// Check so that legal chars (including '=') are evenly divideable by 4 as specified in RFC 2045.
    +		if ((sLen - sepCnt) % 4 != 0)
    +			return null;
    +
    +		int pad = 0;
    +		for (int i = sLen; i > 1 && IA[sArr[--i] & 0xff] <= 0;)
    +			if (sArr[i] == '=')
    +				pad++;
    +
    +		int len = ((sLen - sepCnt) * 6 >> 3) - pad;
    +
    +		byte[] dArr = new byte[len]; // Preallocate byte[] of exact length
    +
    +		for (int s = 0, d = 0; d < len;)
    +		{
    +			// Assemble three bytes into an int from four "valid" characters.
    +			int i = 0;
    +			for (int j = 0; j < 4; j++)
    +			{ // j only increased if a valid char was found.
    +				int c = IA[sArr[s++] & 0xff];
    +				if (c >= 0)
    +					i |= c << (18 - j * 6);
    +				else
    +					j--;
    +			}
    +
    +			// Add the bytes
    +			dArr[d++] = (byte) (i >> 16);
    +			if (d < len)
    +			{
    +				dArr[d++] = (byte) (i >> 8);
    +				if (d < len)
    +					dArr[d++] = (byte) i;
    +			}
    +		}
    +
    +		return dArr;
    +	}
    +
    +	/** Decodes a BASE64 encoded byte array that is known to be resonably well formatted. The method is about twice as
    +	 * fast as {@link #decode(byte[])}. The preconditions are:<br>
    +	 * + The array must have a line length of 76 chars OR no line separators at all (one line).<br>
    +	 * + Line separator must be "\r\n", as specified in RFC 2045
    +	 * + The array must not contain illegal characters within the encoded string<br>
    +	 * + The array CAN have illegal characters at the beginning and end, those will be dealt with appropriately.<br>
    +	 * @param sArr The source array. Length 0 will return an empty array. <code>null</code> will throw an exception.
    +	 * @return The decoded array of bytes. May be of length 0.
    +	 */
    +	public final static byte[] decodeFast(byte[] sArr)
    +	{
    +		// Check special case
    +		int sLen = sArr.length;
    +		if (sLen == 0)
    +			return new byte[0];
    +
    +		int sIx = 0, eIx = sLen - 1; // Start and end index after trimming.
    +
    +		// Trim illegal chars from start
    +		while (sIx < eIx && IA[sArr[sIx] & 0xff] < 0)
    +			sIx++;
    +
    +		// Trim illegal chars from end
    +		while (eIx > 0 && IA[sArr[eIx] & 0xff] < 0)
    +			eIx--;
    +
    +		// get the padding count (=) (0, 1 or 2)
    +		int pad = sArr[eIx] == '=' ? (sArr[eIx - 1] == '=' ? 2 : 1) : 0; // Count '=' at end.
    +		int cCnt = eIx - sIx + 1; // Content count including possible separators
    +		int sepCnt = sLen > 76 ? (sArr[76] == '\r' ? cCnt / 78 : 0) << 1 : 0;
    +
    +		int len = ((cCnt - sepCnt) * 6 >> 3) - pad; // The number of decoded bytes
    +		byte[] dArr = new byte[len]; // Preallocate byte[] of exact length
    +
    +		// Decode all but the last 0 - 2 bytes.
    +		int d = 0;
    +		for (int cc = 0, eLen = (len / 3) * 3; d < eLen;)
    +		{
    +			// Assemble three bytes into an int from four "valid" characters.
    +			int i = IA[sArr[sIx++]] << 18 | IA[sArr[sIx++]] << 12
    +					| IA[sArr[sIx++]] << 6 | IA[sArr[sIx++]];
    +
    +			// Add the bytes
    +			dArr[d++] = (byte) (i >> 16);
    +			dArr[d++] = (byte) (i >> 8);
    +			dArr[d++] = (byte) i;
    +
    +			// If line separator, jump over it.
    +			if (sepCnt > 0 && ++cc == 19)
    +			{
    +				sIx += 2;
    +				cc = 0;
    +			}
    +		}
    +
    +		if (d < len)
    +		{
    +			// Decode last 1-3 bytes (incl '=') into 1-3 bytes
    +			int i = 0;
    +			for (int j = 0; sIx <= eIx - pad; j++)
    +				i |= IA[sArr[sIx++]] << (18 - j * 6);
    +
    +			for (int r = 16; d < len; r -= 8)
    +				dArr[d++] = (byte) (i >> r);
    +		}
    +
    +		return dArr;
    +	}
    +
    +	// ****************************************************************************************
    +	// * String version
    +	// ****************************************************************************************
    +
    +	/** Encodes a raw byte array into a BASE64 <code>String</code> representation i accordance with RFC 2045.
    +	 * @param sArr The bytes to convert. If <code>null</code> or length 0 an empty array will be returned.
    +	 * @param lineSep Optional "\r\n" after 76 characters, unless end of file.<br>
    +	 * No line separator will be in breach of RFC 2045 which specifies max 76 per line but will be a
    +	 * little faster.
    +	 * @return A BASE64 encoded array. Never <code>null</code>.
    +	 */
    +	public final static String encodeToString(byte[] sArr, boolean lineSep)
    +	{
    +		// Reuse char[] since we can't create a String incrementally anyway and StringBuffer/Builder would be slower.
    +		return new String(encodeToChar(sArr, lineSep));
    +	}
    +
    +	/** Decodes a BASE64 encoded <code>String</code>. All illegal characters will be ignored and can handle both strings with
    +	 * and without line separators.<br>
    +	 * <b>Note!</b> It can be up to about 2x the speed to call <code>decode(str.toCharArray())</code> instead. That
    +	 * will create a temporary array though. This version will use <code>str.charAt(i)</code> to iterate the string.
    +	 * @param str The source string. <code>null</code> or length 0 will return an empty array.
    +	 * @return The decoded array of bytes. May be of length 0. Will be <code>null</code> if the legal characters
    +	 * (including '=') isn't divideable by 4.  (I.e. definitely corrupted).
    +	 */
    +	public final static byte[] decode(String str)
    +	{
    +		// Check special case
    +		int sLen = str != null ? str.length() : 0;
    +		if (sLen == 0)
    +			return new byte[0];
    +
    +		// Count illegal characters (including '\r', '\n') to know what size the returned array will be,
    +		// so we don't have to reallocate & copy it later.
    +		int sepCnt = 0; // Number of separator characters. (Actually illegal characters, but that's a bonus...)
    +		for (int i = 0; i < sLen; i++)
    +			// If input is "pure" (I.e. no line separators or illegal chars) base64 this loop can be commented out.
    +			if (IA[str.charAt(i)] < 0)
    +				sepCnt++;
    +
    +		// Check so that legal chars (including '=') are evenly divideable by 4 as specified in RFC 2045.
    +		if ((sLen - sepCnt) % 4 != 0)
    +			return null;
    +
    +		// Count '=' at end
    +		int pad = 0;
    +		for (int i = sLen; i > 1 && IA[str.charAt(--i)] <= 0;)
    +			if (str.charAt(i) == '=')
    +				pad++;
    +
    +		int len = ((sLen - sepCnt) * 6 >> 3) - pad;
    +
    +		byte[] dArr = new byte[len]; // Preallocate byte[] of exact length
    +
    +		for (int s = 0, d = 0; d < len;)
    +		{
    +			// Assemble three bytes into an int from four "valid" characters.
    +			int i = 0;
    +			for (int j = 0; j < 4; j++)
    +			{ // j only increased if a valid char was found.
    +				int c = IA[str.charAt(s++)];
    +				if (c >= 0)
    +					i |= c << (18 - j * 6);
    +				else
    +					j--;
    +			}
    +			// Add the bytes
    +			dArr[d++] = (byte) (i >> 16);
    +			if (d < len)
    +			{
    +				dArr[d++] = (byte) (i >> 8);
    +				if (d < len)
    +					dArr[d++] = (byte) i;
    +			}
    +		}
    +		return dArr;
    +	}
    +
    +	/** Decodes a BASE64 encoded string that is known to be resonably well formatted. The method is about twice as
    +	 * fast as {@link #decode(String)}. The preconditions are:<br>
    +	 * + The array must have a line length of 76 chars OR no line separators at all (one line).<br>
    +	 * + Line separator must be "\r\n", as specified in RFC 2045
    +	 * + The array must not contain illegal characters within the encoded string<br>
    +	 * + The array CAN have illegal characters at the beginning and end, those will be dealt with appropriately.<br>
    +	 * @param s The source string. Length 0 will return an empty array. <code>null</code> will throw an exception.
    +	 * @return The decoded array of bytes. May be of length 0.
    +	 */
    +	public final static byte[] decodeFast(String s)
    +	{
    +		// Check special case
    +		int sLen = s.length();
    +		if (sLen == 0)
    +			return new byte[0];
    +
    +		int sIx = 0, eIx = sLen - 1; // Start and end index after trimming.
    +
    +		// Trim illegal chars from start
    +		while (sIx < eIx && IA[s.charAt(sIx) & 0xff] < 0)
    +			sIx++;
    +
    +		// Trim illegal chars from end
    +		while (eIx > 0 && IA[s.charAt(eIx) & 0xff] < 0)
    +			eIx--;
    +
    +		// get the padding count (=) (0, 1 or 2)
    +		int pad = s.charAt(eIx) == '=' ? (s.charAt(eIx - 1) == '=' ? 2 : 1) : 0; // Count '=' at end.
    +		int cCnt = eIx - sIx + 1; // Content count including possible separators
    +		int sepCnt = sLen > 76 ? (s.charAt(76) == '\r' ? cCnt / 78 : 0) << 1
    +				: 0;
    +
    +		int len = ((cCnt - sepCnt) * 6 >> 3) - pad; // The number of decoded bytes
    +		byte[] dArr = new byte[len]; // Preallocate byte[] of exact length
    +
    +		// Decode all but the last 0 - 2 bytes.
    +		int d = 0;
    +		for (int cc = 0, eLen = (len / 3) * 3; d < eLen;)
    +		{
    +			// Assemble three bytes into an int from four "valid" characters.
    +			int i = IA[s.charAt(sIx++)] << 18 | IA[s.charAt(sIx++)] << 12
    +					| IA[s.charAt(sIx++)] << 6 | IA[s.charAt(sIx++)];
    +
    +			// Add the bytes
    +			dArr[d++] = (byte) (i >> 16);
    +			dArr[d++] = (byte) (i >> 8);
    +			dArr[d++] = (byte) i;
    +
    +			// If line separator, jump over it.
    +			if (sepCnt > 0 && ++cc == 19)
    +			{
    +				sIx += 2;
    +				cc = 0;
    +			}
    +		}
    +
    +		if (d < len)
    +		{
    +			// Decode last 1-3 bytes (incl '=') into 1-3 bytes
    +			int i = 0;
    +			for (int j = 0; sIx <= eIx - pad; j++)
    +				i |= IA[s.charAt(sIx++)] << (18 - j * 6);
    +
    +			for (int r = 16; d < len; r -= 8)
    +				dArr[d++] = (byte) (i >> r);
    +		}
    +
    +		return dArr;
    +	}
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/util/mxCellRenderer.java b/java/src/com/mxgraph/util/mxCellRenderer.java
    new file mode 100644
    index 000000000..ff308c4e1
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxCellRenderer.java
    @@ -0,0 +1,217 @@
    +/**
    + * $Id: mxCellRenderer.java,v 1.12 2012-01-13 11:34:10 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.util;
    +
    +import java.awt.Color;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.image.BufferedImage;
    +
    +import org.w3c.dom.Document;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.canvas.mxHtmlCanvas;
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.canvas.mxImageCanvas;
    +import com.mxgraph.canvas.mxSvgCanvas;
    +import com.mxgraph.canvas.mxVmlCanvas;
    +import com.mxgraph.view.mxGraph;
    +import com.mxgraph.view.mxGraphView;
    +import com.mxgraph.view.mxTemporaryCellStates;
    +
    +public class mxCellRenderer
    +{
    +	/**
    +	 * 
    +	 */
    +	private mxCellRenderer()
    +	{
    +		// static class
    +	}
    +
    +	/**
    +	 * Draws the given cells using a Graphics2D canvas and returns the buffered image
    +	 * that represents the cells.
    +	 * 
    +	 * @param graph Graph to be painted onto the canvas.
    +	 * @return Returns the image that represents the canvas.
    +	 */
    +	public static mxICanvas drawCells(mxGraph graph, Object[] cells,
    +			double scale, mxRectangle clip, CanvasFactory factory)
    +	{
    +		mxICanvas canvas = null;
    +
    +		if (cells == null)
    +		{
    +			cells = new Object[] { graph.getModel().getRoot() };
    +		}
    +
    +		// Gets the current state of the view
    +		mxGraphView view = graph.getView();
    +
    +		// Keeps the existing translation as the cells might
    +		// be aligned to the grid in a different way in a graph
    +		// that has a translation other than zero
    +		boolean eventsEnabled = view.isEventsEnabled();
    +
    +		// Disables firing of scale events so that there is no
    +		// repaint or update of the original graph
    +		view.setEventsEnabled(false);
    +
    +		// Uses the view to create temporary cell states for each cell
    +		mxTemporaryCellStates temp = new mxTemporaryCellStates(view, scale,
    +				cells);
    +
    +		try
    +		{
    +			if (clip == null)
    +			{
    +				clip = graph.getPaintBounds(cells);
    +			}
    +
    +			if (clip != null && clip.getWidth() > 0 && clip.getHeight() > 0)
    +			{
    +				Rectangle rect = clip.getRectangle();
    +				canvas = factory.createCanvas(rect.width + 1, rect.height + 1);
    +
    +				if (canvas != null)
    +				{
    +					double previousScale = canvas.getScale();
    +					Point previousTranslate = canvas.getTranslate();
    +
    +					try
    +					{
    +						canvas.setTranslate(-rect.x, -rect.y);
    +						canvas.setScale(view.getScale());
    +
    +						for (int i = 0; i < cells.length; i++)
    +						{
    +							graph.drawCell(canvas, cells[i]);
    +						}
    +					}
    +					finally
    +					{
    +						canvas.setScale(previousScale);
    +						canvas.setTranslate(previousTranslate.x,
    +								previousTranslate.y);
    +					}
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			temp.destroy();
    +			view.setEventsEnabled(eventsEnabled);
    +		}
    +
    +		return canvas;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static BufferedImage createBufferedImage(mxGraph graph,
    +			Object[] cells, double scale, Color background, boolean antiAlias,
    +			mxRectangle clip)
    +	{
    +		return createBufferedImage(graph, cells, scale, background, antiAlias,
    +				clip, new mxGraphics2DCanvas());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static BufferedImage createBufferedImage(mxGraph graph,
    +			Object[] cells, double scale, final Color background,
    +			final boolean antiAlias, mxRectangle clip,
    +			final mxGraphics2DCanvas graphicsCanvas)
    +	{
    +		mxImageCanvas canvas = (mxImageCanvas) drawCells(graph, cells, scale,
    +				clip, new CanvasFactory()
    +				{
    +					public mxICanvas createCanvas(int width, int height)
    +					{
    +						return new mxImageCanvas(graphicsCanvas, width, height,
    +								background, antiAlias);
    +					}
    +
    +				});
    +
    +		return (canvas != null) ? canvas.destroy() : null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static Document createHtmlDocument(mxGraph graph, Object[] cells,
    +			double scale, Color background, mxRectangle clip)
    +	{
    +		mxHtmlCanvas canvas = (mxHtmlCanvas) drawCells(graph, cells, scale,
    +				clip, new CanvasFactory()
    +				{
    +					public mxICanvas createCanvas(int width, int height)
    +					{
    +						return new mxHtmlCanvas(mxDomUtils.createHtmlDocument());
    +					}
    +
    +				});
    +
    +		return canvas.getDocument();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static Document createSvgDocument(mxGraph graph, Object[] cells,
    +			double scale, Color background, mxRectangle clip)
    +	{
    +		mxSvgCanvas canvas = (mxSvgCanvas) drawCells(graph, cells, scale, clip,
    +				new CanvasFactory()
    +				{
    +					public mxICanvas createCanvas(int width, int height)
    +					{
    +						return new mxSvgCanvas(mxDomUtils.createSvgDocument(width,
    +								height));
    +					}
    +
    +				});
    +
    +		return canvas.getDocument();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static Document createVmlDocument(mxGraph graph, Object[] cells,
    +			double scale, Color background, mxRectangle clip)
    +	{
    +		mxVmlCanvas canvas = (mxVmlCanvas) drawCells(graph, cells, scale, clip,
    +				new CanvasFactory()
    +				{
    +					public mxICanvas createCanvas(int width, int height)
    +					{
    +						return new mxVmlCanvas(mxDomUtils.createVmlDocument());
    +					}
    +
    +				});
    +
    +		return canvas.getDocument();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static abstract class CanvasFactory
    +	{
    +
    +		/**
    +		 * Separates the creation of the canvas from its initialization, when the
    +		 * size of the required graphics buffer / document / container is known.
    +		 */
    +		public abstract mxICanvas createCanvas(int width, int height);
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxConstants.java b/java/src/com/mxgraph/util/mxConstants.java
    new file mode 100644
    index 000000000..e01d27877
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxConstants.java
    @@ -0,0 +1,1191 @@
    +/**
    + * $Id: mxConstants.java,v 1.79 2012-05-10 08:19:03 gaudenz Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.util;
    +
    +/**
    + * Contains all global constants.
    + */
    +public class mxConstants
    +{
    +	/**
    +	 * Defines the number of radians per degree.
    +	 */
    +	public static double RAD_PER_DEG = 0.0174532;
    +
    +	/**
    +	 * Defines the number of degrees per radian.
    +	 */
    +	public static double DEG_PER_RAD = 57.2957795;
    +
    +	/**
    +	 * Defines the ratio between px units in HTML markup and pixels on screen.
    +	 * Default is 0.77.
    +	 */
    +	public static double PX_PER_PIXEL = 0.77;
    +
    +	/**
    +	 * Defines the minimum scale at which rounded polylines should be painted.
    +	 * Default is 0.05.
    +	 */
    +	public static double MIN_SCALE_FOR_ROUNDED_LINES = 0.05;
    +
    +	/**
    +	 * Defines the portion of the cell which is to be used as a connectable
    +	 * region. Default is 0.3.
    +	 */
    +	public static double DEFAULT_HOTSPOT = 0.3;
    +
    +	/**
    +	 * Defines the minimum size in pixels of the portion of the cell which is
    +	 * to be used as a connectable region. Default is 8.
    +	 */
    +	public static int MIN_HOTSPOT_SIZE = 8;
    +
    +	/**
    +	 * Defines the maximum size in pixels of the portion of the cell which is
    +	 * to be used as a connectable region. Use 0 for no maximum. Default is 0.
    +	 */
    +	public static int MAX_HOTSPOT_SIZE = 0;
    +
    +	/**
    +	 * Defines the SVG namespace.
    +	 */
    +	public static String NS_SVG = "http://www.w3.org/2000/svg";
    +
    +	/**
    +	 * Defines the XHTML namespace.
    +	 */
    +	public static String NS_XHTML = "http://www.w3.org/1999/xhtml";
    +
    +	/**
    +	 * Defines the XLink namespace.
    +	 */
    +	public static String NS_XLINK = "http://www.w3.org/1999/xlink";
    +
    +	/**
    +	 * Comma separated list of default fonts for CSS properties.
    +	 * Default is Arial, Helvetica.
    +	 */
    +	public static String DEFAULT_FONTFAMILIES = "Arial,Helvetica";
    +
    +	/**
    +	 * Defines the default font family. Default is "Dialog". (To be replaced
    +	 * with Font.DIALOG after EOL of Java 1.5.)
    +	 */
    +	public static String DEFAULT_FONTFAMILY = "Dialog";
    +
    +	/**
    +	 * Defines the default font size. Default is 11.
    +	 */
    +	public static int DEFAULT_FONTSIZE = 11;
    +
    +	/**
    +	 * Defines the default start size for swimlanes. Default is 40.
    +	 */
    +	public static int DEFAULT_STARTSIZE = 40;
    +
    +	/**
    +	 * Specifies the line spacing. Default is 0.
    +	 */
    +	public static int LINESPACING = 0;
    +
    +	/**
    +	 * Whether or not to split whole words when applying word wrapping in mxUtils.wordWrap.
    +	 */
    +	public static boolean SPLIT_WORDS = true;
    +
    +	/**
    +	 * Defines the inset in absolute pixels between the label bounding box and
    +	 * the label text. Default is 3.
    +	 */
    +	public static int LABEL_INSET = 3;
    +
    +	/**
    +	 * Multiplier to the width that is passed into the word wrapping calculation
    +	 * See mxUtils.wordWrap for details
    +	 */
    +	public static double LABEL_SCALE_BUFFER = 0.9;
    +
    +	/**
    +	 * Defines the default marker size. Default is 6.
    +	 */
    +	public static int DEFAULT_MARKERSIZE = 6;
    +
    +	/**
    +	 * Defines the default image size. Default is 24.
    +	 */
    +	public static int DEFAULT_IMAGESIZE = 24;
    +
    +	/**
    +	 * Defines the default opacity for stencils shadows. Default is 1.
    +	 */
    +	public static int STENCIL_SHADOW_OPACITY = 1;
    +
    +	/**
    +	 * Defines the default shadow color for stencils. Default is "gray".
    +	 */
    +	public static String STENCIL_SHADOWCOLOR = "gray";
    +
    +	/**
    +	 * Defines the x-offset to be used for shadows. Default is 2.
    +	 */
    +	public static int SHADOW_OFFSETX = 2;
    +
    +	/**
    +	 * Defines the y-offset to be used for shadows. Default is 3.
    +	 */
    +	public static int SHADOW_OFFSETY = 3;
    +
    +	/**
    +	 * Defines the color to be used to draw shadows in W3C standards. Default
    +	 * is gray.
    +	 */
    +	public static String W3C_SHADOWCOLOR = "gray";
    +
    +	/**
    +	 * Defines the transformation used to draw shadows in SVG.
    +	 */
    +	public static String SVG_SHADOWTRANSFORM = "translate(2 3)";
    +
    +	/**
    +	 * Specifies the default dash pattern, 3 pixels solid, 3 pixels clear.
    +	 */
    +	public static float[] DEFAULT_DASHED_PATTERN = new float[] {3.0f , 3.0f};
    +
    +	/**
    +	 * Specifies the default distance at 1.0 scale that the label curve is 
    +	 * created from its base curve
    +	 */
    +	public static double DEFAULT_LABEL_BUFFER = 12.0;
    +
    +	/**
    +	 * Defines the handle size. Default is 7.
    +	 */
    +	public static int HANDLE_SIZE = 7;
    +
    +	/**
    +	 * Defines the handle size. Default is 4.
    +	 */
    +	public static int LABEL_HANDLE_SIZE = 4;
    +
    +	/**
    +	 * Defines the default value for the connect handle. Default is false.
    +	 */
    +	public static boolean CONNECT_HANDLE_ENABLED = false;
    +
    +	/**
    +	 * Defines the connect handle size. Default is 8.
    +	 */
    +	public static int CONNECT_HANDLE_SIZE = 8;
    +
    +	/**
    +	 * Defines the length of the horizontal segment of an Entity Relation.
    +	 * This can be overridden using mxConstants.STYLE_SEGMENT style.
    +	 * Default is 30.
    +	 */
    +	public static int ENTITY_SEGMENT = 30;
    +
    +	/**
    +	 * Defines the rounding factor for rounded rectangles in percent between
    +	 * 0 and 1. Values should be smaller than 0.5. Default is 0.15.
    +	 */
    +	public static double RECTANGLE_ROUNDING_FACTOR = 0.15;
    +
    +	/**
    +	 * Defines the size of the arcs for rounded edges. Default is 10.
    +	 */
    +	public static double LINE_ARCSIZE = 10;
    +
    +	/**
    +	 * Defines the spacing between the arrow shape and its terminals. Default
    +	 * is 10.
    +	 */
    +	public static int ARROW_SPACING = 10;
    +
    +	/**
    +	 * Defines the width of the arrow shape. Default is 30.
    +	 */
    +	public static int ARROW_WIDTH = 30;
    +
    +	/**
    +	 * Defines the size of the arrowhead in the arrow shape. Default is 30.
    +	 */
    +	public static int ARROW_SIZE = 30;
    +
    +	/**
    +	 * Defines the value for none. Default is "none".
    +	 */
    +	public static String NONE = "none";
    +
    +	/**
    +	 * Defines the key for the perimeter style.
    +	 * This is a function that defines the perimeter around a particular shape.
    +	 * Possible values are the functions defined in mxPerimeter that use the 
    +	 * <code>mxPerimeterFunction</code> interface. Alternatively, the constants
    +	 * in this class that start with <code>PERIMETER_</code> may be used to 
    +	 * access perimeter styles in <code>mxStyleRegistry</code>.
    +	 */
    +	public static String STYLE_PERIMETER = "perimeter";
    +
    +	/**
    +	 * Defines the ID of the cell that should be used for computing the
    +	 * perimeter point of the source for an edge. This allows for graphically
    +	 * connecting to a cell while keeping the actual terminal of the edge.
    +	 */
    +	public static String STYLE_SOURCE_PORT = "sourcePort";
    +
    +	/**
    +	 * Defines the ID of the cell that should be used for computing the
    +	 * perimeter point of the target for an edge. This allows for graphically
    +	 * connecting to a cell while keeping the actual terminal of the edge.
    +	 */
    +	public static String STYLE_TARGET_PORT = "targetPort";
    +
    +	/**
    +	 * Defines the direction(s) that edges are allowed to connect to cells in.
    +	 * Possible values are <code>DIRECTION_NORTH, DIRECTION_SOUTH, 
    +	 * DIRECTION_EAST</code> and <code>DIRECTION_WEST</code>.
    +	 * 
    +	 */
    +	public static String STYLE_PORT_CONSTRAINT = "portConstraint";
    +
    +	/**
    +	 * Defines the key for the opacity style. The type of the value is 
    +	 * <code>float</code> and the possible range is 0-100.
    +	 */
    +	public static String STYLE_OPACITY = "opacity";
    +
    +	/**
    +	 * Defines the key for the text opacity style. The type of the value is 
    +	 * <code>float</code> and the possible range is 0-100.
    +	 */
    +	public static String STYLE_TEXT_OPACITY = "textOpacity";
    +
    +	/**
    +	 * Defines the key for the overflow style. Possible values are "visible",
    +	 * "hidden" and "fill". The default value is "visible". This value
    +	 * specifies how overlapping vertex labels are handles. A value of
    +	 * "visible" will show the complete label. A value of "hidden" will clip
    +	 * the label so that it does not overlap the vertex bounds. A value of
    +	 * "fill" will use the vertex bounds for the label.
    +	 * 
    +	 * @see com.mxgraph.view.mxGraph#isLabelClipped(Object)
    +	 */
    +	public static String STYLE_OVERFLOW = "overflow";
    +
    +	/**
    +	* Defines if the connection points on either end of the edge should be
    +	* computed so that the edge is vertical or horizontal if possible and
    +	* if the point is not at a fixed location. Default is false. This is
    +	* used in mxGraph.isOrthogonal, which also returns true if the edgeStyle
    +	* of the edge is an elbow or entity.
    +	*/
    +	public static String STYLE_ORTHOGONAL = "orthogonal";
    +
    +	/**
    +	* Defines the key for the horizontal relative coordinate connection point
    +	* of an edge with its source terminal.
    +	*/
    +	public static String STYLE_EXIT_X = "exitX";
    +
    +	/**
    +	* Defines the key for the vertical relative coordinate connection point
    +	* of an edge with its source terminal.
    +	*/
    +	public static String STYLE_EXIT_Y = "exitY";
    +
    +	/**
    +	* Defines if the perimeter should be used to find the exact entry point
    +	* along the perimeter of the source. Possible values are 0 (false) and
    +	* 1 (true). Default is 1 (true).
    +	*/
    +	public static String STYLE_EXIT_PERIMETER = "exitPerimeter";
    +
    +	/**
    +	* Defines the key for the horizontal relative coordinate connection point
    +	* of an edge with its target terminal.
    +	*/
    +	public static String STYLE_ENTRY_X = "entryX";
    +
    +	/**
    +	* Defines the key for the vertical relative coordinate connection point
    +	* of an edge with its target terminal.
    +	*/
    +	public static String STYLE_ENTRY_Y = "entryY";
    +
    +	/**
    +	* Defines if the perimeter should be used to find the exact entry point
    +	* along the perimeter of the target. Possible values are 0 (false) and
    +	* 1 (true). Default is 1 (true).
    +	*/
    +	public static String STYLE_ENTRY_PERIMETER = "entryPerimeter";
    +
    +	/**
    +	 * Defines the key for the white-space style. Possible values are "nowrap"
    +	 * and "wrap". The default value is "nowrap". This value specifies how
    +	 * white-space inside a HTML vertex label should be handled. A value of
    +	 * "nowrap" means the text will never wrap to the next line until a
    +	 * linefeed is encountered. A value of "wrap" means text will wrap when
    +	 * necessary.
    +	 */
    +	public static String STYLE_WHITE_SPACE = "whiteSpace";
    +
    +	/**
    +	 * Defines the key for the rotation style. The type of the value is 
    +	 * <code>double</code> and the possible range is 0-360.
    +	 */
    +	public static String STYLE_ROTATION = "rotation";
    +
    +	/**
    +	 * Defines the key for the fillColor style. The value is a string
    +	 * expression supported by mxUtils.parseColor.
    +	 * 
    +	 * @see com.mxgraph.util.mxUtils#parseColor(String)
    +	 */
    +	public static String STYLE_FILLCOLOR = "fillColor";
    +
    +	/**
    +	 * Defines the key for the gradientColor style. The value is a string
    +	 * expression supported by mxUtils.parseColor. This is ignored if no fill
    +	 * color is defined.
    +	 * 
    +	 * @see com.mxgraph.util.mxUtils#parseColor(String)
    +	 */
    +	public static String STYLE_GRADIENTCOLOR = "gradientColor";
    +
    +	/**
    +	 * Defines the key for the gradient direction. Possible values are
    +	 * <code>DIRECTION_EAST</code>, <code>DIRECTION_WEST</code>,
    +	 * <code>DIRECTION_NORTH</code> and <code>DIRECTION_SOUTH</code>. Default
    +	 * is <code>DIRECTION_SOUTH</code>. Generally, and by default in mxGraph,
    +	 * gradient painting is done from the value of <code>STYLE_FILLCOLOR</code>
    +	 * to the value of <code>STYLE_GRADIENTCOLOR</code>. Taking the example of
    +	 * <code>DIRECTION_NORTH</code>, this means <code>STYLE_FILLCOLOR</code>
    +	 * color at the bottom of paint pattern and
    +	 * <code>STYLE_GRADIENTCOLOR</code> at top, with a gradient in-between.
    +	 */
    +	public static String STYLE_GRADIENT_DIRECTION = "gradientDirection";
    +
    +	/**
    +	 * Defines the key for the strokeColor style. The value is a string
    +	 * expression supported by mxUtils.parseColor.
    +	 * 
    +	 * @see com.mxgraph.util.mxUtils#parseColor(String)
    +	 */
    +	public static String STYLE_STROKECOLOR = "strokeColor";
    +
    +	/**
    +	 * Defines the key for the separatorColor style. The value is a string
    +	 * expression supported by mxUtils.parseColor. This style is only used
    +	 * for SHAPE_SWIMLANE shapes.
    +	 * 
    +	 * @see com.mxgraph.util.mxUtils#parseColor(String)
    +	 */
    +	public static String STYLE_SEPARATORCOLOR = "separatorColor";
    +
    +	/**
    +	 * Defines the key for the strokeWidth style. The type of the value is
    +	 * <code>float</code> and the possible range is any non-negative value.
    +	 * The value reflects the stroke width in pixels.
    +	 */
    +	public static String STYLE_STROKEWIDTH = "strokeWidth";
    +
    +	/**
    +	 * Defines the key for the align style. Possible values are
    +	 * <code>ALIGN_LEFT</code>, <code>ALIGN_CENTER</code> and
    +	 * <code>ALIGN_RIGHT</code>. This value defines how the lines of the label
    +	 * are horizontally aligned. <code>ALIGN_LEFT</code> mean label text lines
    +	 * are aligned to left of the label bounds, <code>ALIGN_RIGHT</code> to the
    +	 * right of the label bounds and <code>ALIGN_CENTER</code> means the
    +	 * center of the text lines are aligned in the center of the label bounds.
    +	 * Note this value doesn't affect the positioning of the overall label
    +	 * bounds relative to the vertex, to move the label bounds horizontally, use
    +	 * <code>STYLE_LABEL_POSITION</code>.
    +	 */
    +	public static String STYLE_ALIGN = "align";
    +
    +	/**
    +	 * Defines the key for the verticalAlign style. Possible values are
    +	 * <code>ALIGN_TOP</code>, <code>ALIGN_MIDDLE</code> and
    +	 * <code>ALIGN_BOTTOM</code>. This value defines how the lines of the label
    +	 * are vertically aligned. <code>ALIGN_TOP</code> means the topmost label
    +	 * text line is aligned against the top of the label bounds,
    +	 * <code>ALIGN_BOTTOM</code> means the bottom-most label text line is
    +	 * aligned against the bottom of the label bounds and
    +	 * <code>ALIGN_MIDDLE</code> means there is equal spacing between the
    +	 * topmost text label line and the top of the label bounds and the
    +	 * bottom-most text label line and the bottom of the label bounds. Note
    +	 * this value doesn't affect the positioning of the overall label bounds
    +	 * relative to the vertex, to move the label bounds vertically, use
    +	 * <code>STYLE_VERTICAL_LABEL_POSITION</code>.
    +	 */
    +	public static String STYLE_VERTICAL_ALIGN = "verticalAlign";
    +
    +	/**
    +	 * Defines the key for the horizontal label position of vertices. Possible
    +	 * values are <code>ALIGN_LEFT</code>, <code>ALIGN_CENTER</code> and
    +	 * <code>ALIGN_RIGHT</code>. Default is <code>ALIGN_CENTER</code>. The
    +	 * label align defines the position of the label relative to the cell.
    +	 * <code>ALIGN_LEFT</code> means the entire label bounds is placed
    +	 * completely just to the left of the vertex, <code>ALIGN_RIGHT</code>
    +	 * means adjust to the right and <code>ALIGN_CENTER</code> means the label
    +	 * bounds are vertically aligned with the bounds of the vertex. Note this
    +	 * value doesn't affect the positioning of label within the label bounds,
    +	 * to move the label horizontally within the label bounds, use
    +	 * <code>STYLE_ALIGN</code>.
    +	 */
    +	public static String STYLE_LABEL_POSITION = "labelPosition";
    +
    +	/**
    +	 * Defines the key for the vertical label position of vertices. Possible
    +	 * values are <code>ALIGN_TOP</code>, <code>ALIGN_BOTTOM</code> and
    +	 * <code>ALIGN_MIDDLE</code>. Default is <code>ALIGN_MIDDLE</code>. The
    +	 * label align defines the position of the label relative to the cell.
    +	 * <code>ALIGN_TOP</code> means the entire label bounds is placed
    +	 * completely just on the top of the vertex, <code>ALIGN_BOTTOM</code>
    +	 * means adjust on the bottom and <code>ALIGN_MIDDLE</code> means the label
    +	 * bounds are horizontally aligned with the bounds of the vertex. Note
    +	 * this value doesn't affect the positioning of label within the label
    +	 * bounds, to move the label vertically within the label bounds, use
    +	 * <code>STYLE_VERTICAL_ALIGN</code>.
    +	 */
    +	public static String STYLE_VERTICAL_LABEL_POSITION = "verticalLabelPosition";
    +
    +	/**
    +	 * Defines the key for the align style. Possible values are
    +	 * <code>ALIGN_LEFT</code>, <code>ALIGN_CENTER</code> and
    +	 * <code>ALIGN_RIGHT</code>. The value defines how any image in the vertex
    +	 * label is aligned horizontally within the label bounds of a SHAPE_LABEL
    +	 * shape.
    +	 */
    +	public static String STYLE_IMAGE_ALIGN = "imageAlign";
    +
    +	/**
    +	 * Defines the key for the verticalAlign style. Possible values are
    +	 * <code>ALIGN_TOP</code>, <code>ALIGN_MIDDLE</code> and
    +	 * <code>ALIGN_BOTTOM</code>. The value defines how any image in the vertex
    +	 * label is aligned vertically within the label bounds of a SHAPE_LABEL
    +	 * shape.
    +	 */
    +	public static String STYLE_IMAGE_VERTICAL_ALIGN = "imageVerticalAlign";
    +
    +	/**
    +	 * Defines the key for the glass style. Possible values are 0 (disabled) and
    +	 * 1(enabled). The default value is 0. This is used in mxLabel.
    +	 */
    +	public static String STYLE_GLASS = "glass";
    +
    +	/**
    +	 * Defines the key for the image style. Possible values are any image URL,
    +	 * registered key in mxImageResources or short data URI as defined in
    +	 * mxImageBundle.
    +	 * The type of the value is <code>String</code>. This is the path to the
    +	 * image to image that is to be displayed within the label of a vertex. See
    +	 * mxGraphics2DCanvas.getImageForStyle, loadImage and setImageBasePath on
    +	 * how the image URL is resolved. Finally, mxUtils.loadImage is used for
    +	 * loading the image for a given value.
    +	 */
    +	public static String STYLE_IMAGE = "image";
    +
    +	/**
    +	 * Defines the key for the imageWidth style. The type of this value is
    +	 * <code>int</code>, the value is the image width in pixels and must be
    +	 * greated than 0.
    +	 */
    +	public static String STYLE_IMAGE_WIDTH = "imageWidth";
    +
    +	/**
    +	 * Defines the key for the imageHeight style The type of this value is
    +	 * <code>int</code>, the value is the image height in pixels and must be
    +	 * greater than 0.
    +	 */
    +	public static String STYLE_IMAGE_HEIGHT = "imageHeight";
    +
    +	/**
    +	 * Defines the key for the image background color. This style is only used
    +	 * for image shapes. Possible values are all HTML color names or HEX codes.
    +	 */
    +	public static String STYLE_IMAGE_BACKGROUND = "imageBackground";
    +
    +	/**
    +	 * Defines the key for the image border color. This style is only used for
    +	 * image shapes. Possible values are all HTML color names or HEX codes.
    +	 */
    +	public static String STYLE_IMAGE_BORDER = "imageBorder";
    +
    +	/**
    +	 * Defines the key for the horizontal image flip. This style is only used
    +	 * in mxImageShape. Possible values are 0 and 1. Default is 0.
    +	 */
    +	public static String STYLE_IMAGE_FLIPH = "imageFlipH";
    +
    +	/**
    +	 * Defines the key for the vertical image flip. This style is only used
    +	 * in mxImageShape. Possible values are 0 and 1. Default is 0.
    +	 */
    +	public static String STYLE_IMAGE_FLIPV = "imageFlipV";
    +
    +	/**
    +	 * Defines the key for the horizontal stencil flip. This style is only used
    +	 * for <mxStencilShape>. Possible values are 0 and 1. Default is 0.
    +	 */
    +	public static String STYLE_STENCIL_FLIPH = "stencilFlipH";
    +
    +	/**
    +	 * Defines the key for the vertical stencil flip. This style is only used
    +	 * for <mxStencilShape>. Possible values are 0 and 1. Default is 0.
    +	 */
    +	public static String STYLE_STENCIL_FLIPV = "stencilFlipV";
    +
    +	/**
    +	 * Defines the key for the noLabel style. If this is
    +	 * true then no label is visible for a given cell.
    +	 * Possible values are true or false (1 or 0).
    +	 * Default is false.
    +	 */
    +	public static String STYLE_NOLABEL = "noLabel";
    +
    +	/**
    +	 * Defines the key for the noEdgeStyle style. If this is
    +	 * true then no edge style is applied for a given edge.
    +	 * Possible values are true or false (1 or 0).
    +	 * Default is false.
    +	 */
    +	public static String STYLE_NOEDGESTYLE = "noEdgeStyle";
    +
    +	/**
    +	 * Defines the key for the label background color. The value is a string
    +	 * expression supported by mxUtils.parseColor.
    +	 * 
    +	 * @see com.mxgraph.util.mxUtils#parseColor(String)
    +	 */
    +	public static String STYLE_LABEL_BACKGROUNDCOLOR = "labelBackgroundColor";
    +
    +	/**
    +	 * Defines the key for the label border color. The value is a string
    +	 * expression supported by mxUtils.parseColor.
    +	 * 
    +	 * @see com.mxgraph.util.mxUtils#parseColor(String)
    +	 */
    +	public static String STYLE_LABEL_BORDERCOLOR = "labelBorderColor";
    +
    +	/**
    +	 * Defines the key for the indicatorShape style.
    +	 * Possible values are any of the SHAPE_*
    +	 * constants.
    +	 */
    +	public static String STYLE_INDICATOR_SHAPE = "indicatorShape";
    +
    +	/**
    +	 * Defines the key for the indicatorImage style.
    +	 * Possible values are any image URL, the type of the value is
    +	 * <code>String</code>.
    +	 */
    +	public static String STYLE_INDICATOR_IMAGE = "indicatorImage";
    +
    +	/**
    +	 * Defines the key for the indicatorColor style. The value is a string
    +	 * expression supported by mxUtils.parseColor.
    +	 * 
    +	 * @see com.mxgraph.util.mxUtils#parseColor(String)
    +	 */
    +	public static String STYLE_INDICATOR_COLOR = "indicatorColor";
    +
    +	/**
    +	 * Defines the key for the indicatorGradientColor style. The value is a
    +	 * string expression supported by mxUtils.parseColor. This style is only
    +	 * supported in SHAPE_LABEL shapes.
    +	 * 
    +	 * @see com.mxgraph.util.mxUtils#parseColor(String)
    +	 */
    +	public static String STYLE_INDICATOR_GRADIENTCOLOR = "indicatorGradientColor";
    +
    +	/**
    +	 * Defines the key for the indicatorSpacing style (in px).
    +	 */
    +	public static String STYLE_INDICATOR_SPACING = "indicatorSpacing";
    +
    +	/**
    +	 * Defines the key for the indicatorWidth style (in px).
    +	 */
    +	public static String STYLE_INDICATOR_WIDTH = "indicatorWidth";
    +
    +	/**
    +	 * Defines the key for the indicatorHeight style (in px).
    +	 */
    +	public static String STYLE_INDICATOR_HEIGHT = "indicatorHeight";
    +
    +	/**
    +	 * Defines the key for the shadow style. The type of the value is
    +	 * <code>boolean</code>. This style applies to vertices and arrow style
    +	 * edges.
    +	 */
    +	public static String STYLE_SHADOW = "shadow";
    +
    +	/**
    +	 * Defines the key for the segment style. The type of this value is
    +	 * <code>float</code> and the value represents the size of the horizontal
    +	 * segment of the entity relation style. Default is ENTITY_SEGMENT.
    +	 */
    +	public static String STYLE_SEGMENT = "segment";
    +
    +	/**
    +	 * Defines the key for the endArrow style.
    +	 * Possible values are all constants in this
    +	 * class that start with ARROW_. This style is
    +	 * supported in the <code>mxConnector</code> shape.
    +	 */
    +	public static String STYLE_ENDARROW = "endArrow";
    +
    +	/**
    +	 * Defines the key for the startArrow style.
    +	 * Possible values are all constants in this
    +	 * class that start with ARROW_.
    +	 * See STYLE_ENDARROW.
    +	 * This style is supported in the mxConnector shape.
    +	 */
    +	public static String STYLE_STARTARROW = "startArrow";
    +
    +	/**
    +	 * Defines the key for the endSize style. The type of this value is 
    +	 * <code>float</code> and the value represents the size of the end 
    +	 * marker in pixels.
    +	 */
    +	public static String STYLE_ENDSIZE = "endSize";
    +
    +	/**
    +	 * Defines the key for the startSize style. The type of this value is
    +	 * <code>float</code> and the value represents the size of the start marker
    +	 * or the size of the swimlane title region depending on the shape it is
    +	 * used for.
    +	 */
    +	public static String STYLE_STARTSIZE = "startSize";
    +
    +	/**
    +	 * Defines the key for the endFill style. Use 0 for no fill or 1
    +	 * (default) for fill. (This style is only exported via <mxImageExport>.)
    +	 */
    +	public static String STYLE_ENDFILL = "endFill";
    +
    +	/**
    +	 * Defines the key for the startFill style. Use 0 for no fill or 1
    +	 * (default) for fill. (This style is only exported via <mxImageExport>.)
    +	 */
    +	public static String STYLE_STARTFILL = "startFill";
    +
    +	/**
    +	 * Defines the key for the dashed style. The type of this value is
    +	 * <code>boolean</code> and the value determines whether or not an edge or
    +	 * border is drawn with a dashed pattern along the line.
    +	 */
    +	public static String STYLE_DASHED = "dashed";
    +
    +	/**
    +	 * Defines the key for the dashed pattern style. The type of this value
    +	 * is <code>float[]</code> and the value specifies the dashed pattern 
    +	 * to apply to edges drawn with this style.
    +	 */
    +	public static String STYLE_DASH_PATTERN = "dashPattern";
    +
    +	/**
    +	 * Defines the key for the rounded style. The type of this value is
    +	 * <code>boolean</code>. For edges this determines whether or not joins
    +	 * between edges segments are smoothed to a rounded finish. For vertices
    +	 * that have the rectangle shape, this determines whether or not the
    +	 * rectangle is rounded.
    +	 */
    +	public static String STYLE_ROUNDED = "rounded";
    +
    +	/**
    +	 * Defines the key for the source perimeter spacing. The type of this value
    +	 * is <code>double</code>. This is the distance between the source
    +	 * connection point of an edge and the perimeter of the source vertex in
    +	 * pixels. This style only applies to edges.
    +	 */
    +	public static String STYLE_SOURCE_PERIMETER_SPACING = "sourcePerimeterSpacing";
    +
    +	/**
    +	 * Defines the key for the target perimeter spacing. The type of this value
    +	 * is <code>double</code>. This is the distance between the target
    +	 * connection point of an edge and the perimeter of the target vertex in
    +	 * pixels. This style only applies to edges.
    +	 */
    +	public static String STYLE_TARGET_PERIMETER_SPACING = "targetPerimeterSpacing";
    +
    +	/**
    +	 * Defines the key for the perimeter spacing. This is the distance between
    +	 * the connection point and the perimeter in pixels. When used in a vertex
    +	 * style, this applies to all incoming edges to floating ports (edges that
    +	 * terminate on the perimeter of the vertex). When used in an edge style,
    +	 * this spacing applies to the source and target separately, if they
    +	 * terminate in floating ports (on the perimeter of the vertex).
    +	 */
    +	public static String STYLE_PERIMETER_SPACING = "perimeterSpacing";
    +
    +	/**
    +	 * Defines the key for the spacing. The value represents the spacing, in
    +	 * pixels, added to each side of a label in a vertex (style applies to
    +	 * vertices only).
    +	 */
    +	public static String STYLE_SPACING = "spacing";
    +
    +	/**
    +	 * Defines the key for the spacingTop style. The value represents the
    +	 * spacing, in pixels, added to the top side of a label in a vertex (style
    +	 * applies to vertices only).
    +	 */
    +	public static String STYLE_SPACING_TOP = "spacingTop";
    +
    +	/**
    +	 * Defines the key for the spacingLeft style. The value represents the
    +	 * spacing, in pixels, added to the left side of a label in a vertex (style
    +	 * applies to vertices only).
    +	 */
    +	public static String STYLE_SPACING_LEFT = "spacingLeft";
    +
    +	/**
    +	 * Defines the key for the spacingBottom style The value represents the
    +	 * spacing, in pixels, added to the bottom side of a label in a vertex
    +	 * (style applies to vertices only).
    +	 */
    +	public static String STYLE_SPACING_BOTTOM = "spacingBottom";
    +
    +	/**
    +	 * Defines the key for the spacingRight style The value represents the
    +	 * spacing, in pixels, added to the right side of a label in a vertex (style
    +	 * applies to vertices only).
    +	 */
    +	public static String STYLE_SPACING_RIGHT = "spacingRight";
    +
    +	/**
    +	 * Defines the key for the horizontal style. Possible values are
    +	 * <code>true</code> or <code>false</code>. This value only applies to
    +	 * vertices. If the <code>STYLE_SHAPE</code> is <code>SHAPE_SWIMLANE</code>
    +	 * a value of <code>false</code> indicates that the swimlane should be drawn
    +	 * vertically, <code>true</code> indicates to draw it horizontally. If the
    +	 * shape style does not indicate that this vertex is a swimlane, this value
    +	 * affects only whether the label is drawn horizontally or vertically.
    +	 */
    +	public static String STYLE_HORIZONTAL = "horizontal";
    +
    +	/**
    +	 * Defines the key for the direction style. The direction style is used to
    +	 * specify the direction of certain shapes (eg. <code>mxTriangle</code>).
    +	 * Possible values are <code>DIRECTION_EAST</code> (default),
    +	 * <code>DIRECTION_WEST</code>, <code>DIRECTION_NORTH</code> and
    +	 * <code>DIRECTION_SOUTH</code>. This value only applies to vertices.
    +	 */
    +	public static String STYLE_DIRECTION = "direction";
    +
    +	/**
    +	 * Defines the key for the elbow style. Possible values are
    +	 * <code>ELBOW_HORIZONTAL</code> and <code>ELBOW_VERTICAL</code>. Default is
    +	 * <code>ELBOW_HORIZONTAL</code>. This defines how the three segment
    +	 * orthogonal edge style leaves its terminal vertices. The vertical style
    +	 * leaves the terminal vertices at the top and bottom sides.
    +	 */
    +	public static String STYLE_ELBOW = "elbow";
    +
    +	/**
    +	 * Defines the key for the fontColor style. The value is type
    +	 * <code>String</code> and of the expression supported by
    +	 * mxUtils.parseColor.
    +	 * 
    +	 * @see com.mxgraph.util.mxUtils#parseColor(String)
    +	 */
    +	public static String STYLE_FONTCOLOR = "fontColor";
    +
    +	/**
    +	 * Defines the key for the fontFamily style. Possible values are names such
    +	 * as Arial; Dialog; Verdana; Times New Roman. The value is of type
    +	 * <code>String</code>.
    +	 */
    +	public static String STYLE_FONTFAMILY = "fontFamily";
    +
    +	/**
    +	 * Defines the key for the fontSize style (in points). The type of the value
    +	 * is <code>int</code>.
    +	 */
    +	public static String STYLE_FONTSIZE = "fontSize";
    +
    +	/**
    +	 * Defines the key for the fontStyle style. Values may be any logical AND
    +	 * (sum) of FONT_BOLD, FONT_ITALIC, FONT_UNDERLINE and FONT_SHADOW. The type
    +	 * of the value is <code>int</code>.
    +	 */
    +	public static String STYLE_FONTSTYLE = "fontStyle";
    +
    +	/**
    +	 * Defines the key for the autosize style. This specifies if a cell should be
    +	 * resized automatically if the value has changed. Possible values are 0 or 1.
    +	 * Default is 0. See mxGraph.isAutoSizeCell. This is normally combined with
    +	 * STYLE_RESIZABLE to disable manual sizing.
    +	 */
    +	public static String STYLE_AUTOSIZE = "autosize";
    +
    +	/**
    +	 * Defines the key for the foldable style. This specifies if a cell is foldable
    +	 * using a folding icon. Possible values are 0 or 1. Default is 1. See
    +	 * mxGraph.isCellFoldable.
    +	 */
    +	public static String STYLE_FOLDABLE = "foldable";
    +
    +	/**
    +	 * Defines the key for the editable style. This specifies if the value of
    +	 * a cell can be edited using the in-place editor. Possible values are 0 or
    +	 * 1. Default is 1. See mxGraph.isCellEditable.
    +	 */
    +	public static String STYLE_EDITABLE = "editable";
    +
    +	/**
    +	 * Defines the key for the bendable style. This specifies if the control
    +	 * points of an edge can be moved. Possible values are 0 or 1. Default is
    +	 * 1. See mxGraph.isCellBendable.
    +	 */
    +	public static String STYLE_BENDABLE = "bendable";
    +
    +	/**
    +	 * Defines the key for the movable style. This specifies if a cell can
    +	 * be moved. Possible values are 0 or 1. Default is 1. See
    +	 * mxGraph.isCellMovable.
    +	 */
    +	public static String STYLE_MOVABLE = "movable";
    +
    +	/**
    +	 * Defines the key for the resizable style. This specifies if a cell can
    +	 * be resized. Possible values are 0 or 1. Default is 1. See
    +	 * mxGraph.isCellResizable.
    +	 */
    +	public static String STYLE_RESIZABLE = "resizable";
    +
    +	/**
    +	 * Defines the key for the cloneable style. This specifies if a cell can
    +	 * be cloned. Possible values are 0 or 1. Default is 1. See
    +	 * mxGraph.isCellCloneable.
    +	 */
    +	public static String STYLE_CLONEABLE = "cloneable";
    +
    +	/**
    +	 * Defines the key for the deletable style. This specifies if a cell can be
    +	 * deleted. Possible values are 0 or 1. Default is 1. See
    +	 * mxGraph.isCellDeletable.
    +	 */
    +	public static String STYLE_DELETABLE = "deletable";
    +
    +	/**
    +	 * Defines the key for the shape style.
    +	 * Possible values are any of the SHAPE_*
    +	 * constants.
    +	 */
    +	public static String STYLE_SHAPE = "shape";
    +
    +	/**
    +	 * Takes a function that creates points. Possible values are the
    +	 * functions defined in mxEdgeStyle.
    +	 */
    +	public static String STYLE_EDGE = "edgeStyle";
    +
    +	/**
    +	 * Defines the key for the loop style. Possible values are the
    +	 * functions defined in mxEdgeStyle.
    +	 */
    +	public static String STYLE_LOOP = "loopStyle";
    +
    +	/**
    +	 * Defines the key for the horizontal routing center. Possible values are
    +	 * between -0.5 and 0.5. This is the relative offset from the center used
    +	 * for connecting edges. The type of this value is <code>float</code>.
    +	 */
    +	public static String STYLE_ROUTING_CENTER_X = "routingCenterX";
    +
    +	/**
    +	 * Defines the key for the vertical routing center. Possible values are
    +	 * between -0.5 and 0.5. This is the relative offset from the center used
    +	 * for connecting edges. The type of this value is <code>float</code>.
    +	 */
    +	public static String STYLE_ROUTING_CENTER_Y = "routingCenterY";
    +
    +	/**
    +	 * FONT_BOLD
    +	 */
    +	public static final int FONT_BOLD = 1;
    +
    +	/**
    +	 * FONT_ITALIC
    +	 */
    +	public static final int FONT_ITALIC = 2;
    +
    +	/**
    +	 * FONT_UNDERLINE
    +	 */
    +	public static final int FONT_UNDERLINE = 4;
    +
    +	/**
    +	 * FONT_SHADOW
    +	 */
    +	public static final int FONT_SHADOW = 8;
    +
    +	/**
    +	 * SHAPE_RECTANGLE
    +	 */
    +	public static final String SHAPE_RECTANGLE = "rectangle";
    +
    +	/**
    +	 * SHAPE_ELLIPSE
    +	 */
    +	public static final String SHAPE_ELLIPSE = "ellipse";
    +
    +	/**
    +	 * SHAPE_DOUBLE_ELLIPSE
    +	 */
    +	public static final String SHAPE_DOUBLE_ELLIPSE = "doubleEllipse";
    +
    +	/**
    +	 * SHAPE_RHOMBUS
    +	 */
    +	public static final String SHAPE_RHOMBUS = "rhombus";
    +
    +	/**
    +	 * SHAPE_LINE
    +	 */
    +	public static final String SHAPE_LINE = "line";
    +
    +	/**
    +	 * SHAPE_IMAGE
    +	 */
    +	public static final String SHAPE_IMAGE = "image";
    +
    +	/**
    +	 * SHAPE_ARROW
    +	 */
    +	public static final String SHAPE_ARROW = "arrow";
    +
    +	/**
    +	 * SHAPE_ARROW
    +	 */
    +	public static final String SHAPE_CURVE = "curve";
    +
    +	/**
    +	 * SHAPE_LABEL
    +	 */
    +	public static final String SHAPE_LABEL = "label";
    +
    +	/**
    +	 * SHAPE_CYLINDER
    +	 */
    +	public static final String SHAPE_CYLINDER = "cylinder";
    +
    +	/**
    +	 * SHAPE_SWIMLANE
    +	 */
    +	public static final String SHAPE_SWIMLANE = "swimlane";
    +
    +	/**
    +	 * SHAPE_CONNECTOR
    +	 */
    +	public static final String SHAPE_CONNECTOR = "connector";
    +
    +	/**
    +	 * SHAPE_ACTOR
    +	 */
    +	public static final String SHAPE_ACTOR = "actor";
    +
    +	/**
    +	 * SHAPE_CLOUD
    +	 */
    +	public static final String SHAPE_CLOUD = "cloud";
    +
    +	/**
    +	 * SHAPE_TRIANGLE
    +	 */
    +	public static final String SHAPE_TRIANGLE = "triangle";
    +
    +	/**
    +	 * SHAPE_HEXAGON
    +	 */
    +	public static final String SHAPE_HEXAGON = "hexagon";
    +
    +	/**
    +	 * ARROW_CLASSIC
    +	 */
    +	public static final String ARROW_CLASSIC = "classic";
    +
    +	/**
    +	 * ARROW_BLOCK
    +	 */
    +	public static final String ARROW_BLOCK = "block";
    +
    +	/**
    +	 * ARROW_OPEN
    +	 */
    +	public static final String ARROW_OPEN = "open";
    +
    +	/**
    +	 * ARROW_BLOCK
    +	 */
    +	public static final String ARROW_OVAL = "oval";
    +
    +	/**
    +	 * ARROW_OPEN
    +	 */
    +	public static final String ARROW_DIAMOND = "diamond";
    +
    +	/**
    +	 * ALIGN_LEFT
    +	 */
    +	public static final String ALIGN_LEFT = "left";
    +
    +	/**
    +	 * ALIGN_CENTER
    +	 */
    +	public static final String ALIGN_CENTER = "center";
    +
    +	/**
    +	 * ALIGN_RIGHT
    +	 */
    +	public static final String ALIGN_RIGHT = "right";
    +
    +	/**
    +	 * ALIGN_TOP
    +	 */
    +	public static final String ALIGN_TOP = "top";
    +
    +	/**
    +	 * ALIGN_MIDDLE
    +	 */
    +	public static final String ALIGN_MIDDLE = "middle";
    +
    +	/**
    +	 * ALIGN_BOTTOM
    +	 */
    +	public static final String ALIGN_BOTTOM = "bottom";
    +
    +	/**
    +	 * DIRECTION_NORTH
    +	 */
    +	public static final String DIRECTION_NORTH = "north";
    +
    +	/**
    +	 * DIRECTION_SOUTH
    +	 */
    +	public static final String DIRECTION_SOUTH = "south";
    +
    +	/**
    +	 * DIRECTION_EAST
    +	 */
    +	public static final String DIRECTION_EAST = "east";
    +
    +	/**
    +	 * DIRECTION_WEST
    +	 */
    +	public static final String DIRECTION_WEST = "west";
    +
    +	/**
    +	 * DIRECTION_MASK_NONE
    +	 */
    +	public static final int DIRECTION_MASK_NONE = 0x00;
    +
    +	/**
    +	 * DIRECTION_MASK_WEST
    +	 */
    +	public static final int DIRECTION_MASK_WEST = 0x01;
    +	
    +	/**
    +	 * DIRECTION_MASK_NORTH
    +	 */
    +	public static final int DIRECTION_MASK_NORTH = 0x02;
    +
    +	/**
    +	 * DIRECTION_MASK_SOUTH
    +	 */
    +	public static final int DIRECTION_MASK_SOUTH = 0x04;
    +
    +	/**
    +	 * DIRECTION_MASK_EAST
    +	 */
    +	public static final int DIRECTION_MASK_EAST = 0x08;
    +	
    +	/**
    +	 * DIRECTION_MASK_EAST
    +	 */
    +	public static final int DIRECTION_MASK_ALL = 0x0F;
    +
    +	/**
    +	 * ELBOW_VERTICAL
    +	 */
    +	public static final String ELBOW_VERTICAL = "vertical";
    +
    +	/**
    +	 * ELBOW_HORIZONTAL
    +	 */
    +	public static final String ELBOW_HORIZONTAL = "horizontal";
    +
    +	/**
    +	 * Name of the elbow edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static final String EDGESTYLE_ELBOW = "elbowEdgeStyle";
    +
    +	/**
    +	 * Name of the entity relation edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static final String EDGESTYLE_ENTITY_RELATION = "entityRelationEdgeStyle";
    +
    +	/**
    +	 * Name of the loop edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static final String EDGESTYLE_LOOP = "loopEdgeStyle";
    +
    +	/**
    +	 * Name of the side to side edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static final String EDGESTYLE_SIDETOSIDE = "sideToSideEdgeStyle";
    +
    +	/**
    +	 * Name of the top to bottom edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static final String EDGESTYLE_TOPTOBOTTOM = "topToBottomEdgeStyle";
    +	
    +	/**
    +	 * Name of the orthogonal edge style. Can be used as a string value for
    +	 * the STYLE_EDGE style.
    +	 */
    +	public static final String EDGESTYLE_ORTHOGONAL = "orthogonalEdgeStyle";
    +
    +	/**
    +	 * Name of the ellipse perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	public static final String PERIMETER_ELLIPSE = "ellipsePerimeter";
    +
    +	/**
    +	 * Name of the rectangle perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	public static final String PERIMETER_RECTANGLE = "rectanglePerimeter";
    +
    +	/**
    +	 * Name of the rhombus perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	public static final String PERIMETER_RHOMBUS = "rhombusPerimeter";
    +
    +	/**
    +	 * Name of the triangle perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	public static final String PERIMETER_TRIANGLE = "trianglePerimeter";
    +
    +	/**
    +	 * Name of the hexagon perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	public static final String PERIMETER_HEXAGON  = "hexagonPerimeter";
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxCurve.java b/java/src/com/mxgraph/util/mxCurve.java
    new file mode 100644
    index 000000000..98094c60b
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxCurve.java
    @@ -0,0 +1,1340 @@
    +/**
    + * $Id: mxCurve.java,v 1.53 2012-01-13 11:17:38 david Exp $
    + * Copyright (c) 2009-2012, JGraph Ltd
    + */
    +package com.mxgraph.util;
    +
    +import java.awt.Rectangle;
    +import java.util.ArrayList;
    +import java.util.Collection;
    +import java.util.Hashtable;
    +import java.util.List;
    +import java.util.Map;
    +
    +public class mxCurve
    +{
    +	/**
    +	 * A collection of arrays of curve points
    +	 */
    +	protected Map<String, mxPoint[]> points;
    +
    +	// Rectangle just completely enclosing branch and label/
    +	protected double minXBounds = 10000000;
    +
    +	protected double maxXBounds = 0;
    +
    +	protected double minYBounds = 10000000;
    +
    +	protected double maxYBounds = 0;
    +
    +	/**
    +	 * An array of arrays of intervals. These intervals define the distance
    +	 * along the edge (0 to 1) that each point lies
    +	 */
    +	protected Map<String, double[]> intervals;
    +
    +	/**
    +	 * The curve lengths of the curves
    +	 */
    +	protected Map<String, Double> curveLengths;
    +
    +	/**
    +	 * Defines the key for the central curve index
    +	 */
    +	public static String CORE_CURVE = "Center_curve";
    +
    +	/**
    +	 * Defines the key for the label curve index
    +	 */
    +	public static String LABEL_CURVE = "Label_curve";;
    +
    +	/**
    +	 * Indicates that an invalid position on a curve was requested
    +	 */
    +	public static mxLine INVALID_POSITION = new mxLine(new mxPoint(0, 0),
    +			new mxPoint(1, 0));
    +
    +	/**
    +	 * Offset of the label curve from the curve the label curve is based on.
    +	 * If you wish to set this value, do so directly after creation of the curve.
    +	 * The first time the curve is used the label curve will be created with 
    +	 * whatever value is contained in this variable. Changes to it after that point 
    +	 * will have no effect.
    +	 */
    +	protected double labelBuffer = mxConstants.DEFAULT_LABEL_BUFFER;
    +
    +	/**
    +	 * The points this curve is drawn through. These are typically control
    +	 * points and are at distances from each other that straight lines
    +	 * between them do not describe a smooth curve. This class takes
    +	 * these guiding points and creates a finer set of internal points
    +	 * that visually appears to be a curve when linked by straight lines
    +	 */
    +	public List<mxPoint> guidePoints = new ArrayList<mxPoint>();
    +
    +	/**
    +	 * Whether or not the curve currently holds valid values
    +	 */
    +	protected boolean valid = false;
    +
    +	/**
    +	 * 
    +	 */
    +	public void setLabelBuffer(double buffer)
    +	{
    +		labelBuffer = buffer;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxRectangle getBounds()
    +	{
    +		if (!valid)
    +		{
    +			createCoreCurve();
    +		}
    +		return new mxRectangle(minXBounds, minYBounds, maxXBounds - minXBounds,
    +				maxYBounds - minYBounds);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCurve()
    +	{
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxCurve(List<mxPoint> points)
    +	{
    +		boolean nullPoints = false;
    +
    +		for (mxPoint point : points)
    +		{
    +			if (point == null)
    +			{
    +				nullPoints = true;
    +				break;
    +			}
    +		}
    +
    +		if (!nullPoints)
    +		{
    +			guidePoints = new ArrayList<mxPoint>(points);
    +		}
    +	}
    +
    +	/**
    +	 * Calculates the index of the lower point on the segment
    +	 * that contains the point <i>distance</i> along the 
    +	 */
    +	protected int getLowerIndexOfSegment(String index, double distance)
    +	{
    +		double[] curveIntervals = getIntervals(index);
    +
    +		if (curveIntervals == null)
    +		{
    +			return 0;
    +		}
    +
    +		int numIntervals = curveIntervals.length;
    +
    +		if (distance <= 0.0 || numIntervals < 3)
    +		{
    +			return 0;
    +		}
    +
    +		if (distance >= 1.0)
    +		{
    +			return numIntervals - 2;
    +		}
    +
    +		// Pick a starting index roughly where you expect the point
    +		// to be
    +		int testIndex = (int) (numIntervals * distance);
    +
    +		if (testIndex >= numIntervals)
    +		{
    +			testIndex = numIntervals - 1;
    +		}
    +
    +		// The max and min indices tested so far
    +		int lowerLimit = -1;
    +		int upperLimit = numIntervals;
    +
    +		// It cannot take more than the number of intervals to find
    +		// the correct segment
    +		for (int i = 0; i < numIntervals; i++)
    +		{
    +			double segmentDistance = curveIntervals[testIndex];
    +			double multiplier = 0.5;
    +
    +			if (distance < segmentDistance)
    +			{
    +				upperLimit = Math.min(upperLimit, testIndex);
    +				multiplier = -0.5;
    +			}
    +			else if (distance > segmentDistance)
    +			{
    +				lowerLimit = Math.max(lowerLimit, testIndex);
    +			}
    +			else
    +			{
    +				// Values equal
    +				if (testIndex == 0)
    +				{
    +					lowerLimit = 0;
    +					upperLimit = 1;
    +				}
    +				else
    +				{
    +					lowerLimit = testIndex - 1;
    +					upperLimit = testIndex;
    +				}
    +			}
    +
    +			int indexDifference = upperLimit - lowerLimit;
    +
    +			if (indexDifference == 1)
    +			{
    +				break;
    +			}
    +
    +			testIndex = (int) (testIndex + indexDifference * multiplier);
    +
    +			if (testIndex == lowerLimit)
    +			{
    +				testIndex = lowerLimit + 1;
    +			}
    +
    +			if (testIndex == upperLimit)
    +			{
    +				testIndex = upperLimit - 1;
    +			}
    +		}
    +
    +		if (lowerLimit != upperLimit - 1)
    +		{
    +			return -1;
    +		}
    +
    +		return lowerLimit;
    +	}
    +
    +	/**
    +	 * Returns a unit vector parallel to the curve at the specified
    +	 * distance along the curve. To obtain the angle the vector makes
    +	 * with (1,0) perform Math.atan(segVectorY/segVectorX).
    +	 * @param index the curve index specifying the curve to analyse
    +	 * @param distance the distance from start to end of curve (0.0...1.0)
    +	 * @return a unit vector at the specified point on the curve represented
    +	 * 		as a line, parallel with the curve. If the distance or curve is
    +	 * 		invalid, <code>mxCurve.INVALID_POSITION</code> is returned
    +	 */
    +	public mxLine getCurveParallel(String index, double distance)
    +	{
    +		mxPoint[] pointsCurve = getCurvePoints(index);
    +		double[] curveIntervals = getIntervals(index);
    +
    +		if (pointsCurve != null && pointsCurve.length > 0
    +				&& curveIntervals != null && distance >= 0.0 && distance <= 1.0)
    +		{
    +			// If the curve is zero length, it will only have one point
    +			// We can't calculate in this case
    +			if (pointsCurve.length == 1)
    +			{
    +				mxPoint point = pointsCurve[0];
    +				return new mxLine(point.getX(), point.getY(), new mxPoint(1, 0));
    +			}
    +
    +			int lowerLimit = getLowerIndexOfSegment(index, distance);
    +			mxPoint firstPointOfSeg = pointsCurve[lowerLimit];
    +			double segVectorX = pointsCurve[lowerLimit + 1].getX()
    +					- firstPointOfSeg.getX();
    +			double segVectorY = pointsCurve[lowerLimit + 1].getY()
    +					- firstPointOfSeg.getY();
    +			double distanceAlongSeg = (distance - curveIntervals[lowerLimit])
    +					/ (curveIntervals[lowerLimit + 1] - curveIntervals[lowerLimit]);
    +			double segLength = Math.sqrt(segVectorX * segVectorX + segVectorY
    +					* segVectorY);
    +			double startPointX = firstPointOfSeg.getX() + segVectorX
    +					* distanceAlongSeg;
    +			double startPointY = firstPointOfSeg.getY() + segVectorY
    +					* distanceAlongSeg;
    +			mxPoint endPoint = new mxPoint(segVectorX / segLength, segVectorY
    +					/ segLength);
    +			return new mxLine(startPointX, startPointY, endPoint);
    +		}
    +		else
    +		{
    +			return INVALID_POSITION;
    +		}
    +	}
    +
    +	/**
    +	 * Returns a section of the curve as an array of points
    +	 * @param index the curve index specifying the curve to analyse
    +	 * @param start the start position of the curve segment (0.0...1.0)
    +	 * @param end the end position of the curve segment (0.0...1.0)
    +	 * @return a sequence of point representing the curve section or null
    +	 * 			if it cannot be calculated
    +	 */
    +	public mxPoint[] getCurveSection(String index, double start, double end)
    +	{
    +		mxPoint[] pointsCurve = getCurvePoints(index);
    +		double[] curveIntervals = getIntervals(index);
    +
    +		if (pointsCurve != null && pointsCurve.length > 0
    +				&& curveIntervals != null && start >= 0.0 && start <= 1.0
    +				&& end >= 0.0 && end <= 1.0)
    +		{
    +			// If the curve is zero length, it will only have one point
    +			// We can't calculate in this case
    +			if (pointsCurve.length == 1)
    +			{
    +				mxPoint point = pointsCurve[0];
    +				return new mxPoint[] { new mxPoint(point.getX(), point.getY()) };
    +			}
    +
    +			int lowerLimit = getLowerIndexOfSegment(index, start);
    +			mxPoint firstPointOfSeg = pointsCurve[lowerLimit];
    +			double segVectorX = pointsCurve[lowerLimit + 1].getX()
    +					- firstPointOfSeg.getX();
    +			double segVectorY = pointsCurve[lowerLimit + 1].getY()
    +					- firstPointOfSeg.getY();
    +			double distanceAlongSeg = (start - curveIntervals[lowerLimit])
    +					/ (curveIntervals[lowerLimit + 1] - curveIntervals[lowerLimit]);
    +			mxPoint startPoint = new mxPoint(firstPointOfSeg.getX()
    +					+ segVectorX * distanceAlongSeg, firstPointOfSeg.getY()
    +					+ segVectorY * distanceAlongSeg);
    +
    +			List<mxPoint> result = new ArrayList<mxPoint>();
    +			result.add(startPoint);
    +
    +			double current = start;
    +			current = curveIntervals[++lowerLimit];
    +
    +			while (current <= end)
    +			{
    +				mxPoint nextPointOfSeg = pointsCurve[lowerLimit];
    +				result.add(nextPointOfSeg);
    +				current = curveIntervals[++lowerLimit];
    +			}
    +
    +			// Add whatever proportion of the last segment has to 
    +			// be added to make the exactly end distance
    +			if (lowerLimit > 0 && lowerLimit < pointsCurve.length
    +					&& end > curveIntervals[lowerLimit - 1])
    +			{
    +				firstPointOfSeg = pointsCurve[lowerLimit - 1];
    +				segVectorX = pointsCurve[lowerLimit].getX()
    +						- firstPointOfSeg.getX();
    +				segVectorY = pointsCurve[lowerLimit].getY()
    +						- firstPointOfSeg.getY();
    +				distanceAlongSeg = (end - curveIntervals[lowerLimit - 1])
    +						/ (curveIntervals[lowerLimit] - curveIntervals[lowerLimit - 1]);
    +				mxPoint endPoint = new mxPoint(firstPointOfSeg.getX()
    +						+ segVectorX * distanceAlongSeg, firstPointOfSeg.getY()
    +						+ segVectorY * distanceAlongSeg);
    +				result.add(endPoint);
    +			}
    +
    +			mxPoint[] resultArray = new mxPoint[result.size()];
    +			return result.toArray(resultArray);
    +		}
    +		else
    +		{
    +			return null;
    +		}
    +	}
    +
    +	/**
    +	 * Returns whether or not the rectangle passed in hits any part of this
    +	 * curve.
    +	 * @param rect the rectangle to detect for a hit
    +	 * @return whether or not the rectangle hits this curve
    +	 */
    +	public boolean intersectsRect(Rectangle rect)
    +	{
    +		// To save CPU, we can test if the rectangle intersects the entire
    +		// bounds of this curve
    +		if (!getBounds().getRectangle().intersects(rect))
    +		{
    +			return false;
    +		}
    +
    +		mxPoint[] pointsCurve = getCurvePoints(mxCurve.CORE_CURVE);
    +
    +		if (pointsCurve != null && pointsCurve.length > 1)
    +		{
    +			mxRectangle mxRect = new mxRectangle(rect);
    +			// First check for any of the curve points lying within the 
    +			// rectangle, then for any of the curve segments intersecting 
    +			// with the rectangle sides
    +			for (int i = 1; i < pointsCurve.length; i++)
    +			{
    +				if (mxRect.contains(pointsCurve[i].getX(),
    +						pointsCurve[i].getY())
    +						|| mxRect.contains(pointsCurve[i - 1].getX(),
    +								pointsCurve[i - 1].getY()))
    +				{
    +					return true;
    +				}
    +			}
    +
    +			for (int i = 1; i < pointsCurve.length; i++)
    +			{
    +				if (mxRect.intersectLine(pointsCurve[i].getX(),
    +						pointsCurve[i].getY(), pointsCurve[i - 1].getX(),
    +						pointsCurve[i - 1].getY()) != null)
    +				{
    +					return true;
    +				}
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns the point at which this curve intersects the boundary of 
    +	 * the given rectangle, if it does so. If it does not intersect, 
    +	 * null is returned. If it intersects multiple times, the first 
    +	 * intersection from the start end of the curve is returned.
    +	 * 
    +	 * @param index the curve index specifying the curve to analyse
    +	 * @param rect the whose boundary is to be tested for intersection
    +	 * with this curve
    +	 * @return the point at which this curve intersects the boundary of 
    +	 * the given rectangle, if it does so. If it does not intersect, 
    +	 * null is returned.
    +	 */
    +	public mxPoint intersectsRectPerimeter(String index, mxRectangle rect)
    +	{
    +		mxPoint result = null;
    +		mxPoint[] pointsCurve = getCurvePoints(index);
    +
    +		if (pointsCurve != null && pointsCurve.length > 1)
    +		{
    +			int crossingSeg = intersectRectPerimeterSeg(index, rect);
    +
    +			if (crossingSeg != -1)
    +			{
    +				result = intersectRectPerimeterPoint(index, rect, crossingSeg);
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the distance from the start of the curve at which this 
    +	 * curve intersects the boundary of the given rectangle, if it does 
    +	 * so. If it does not intersect, -1 is returned. 
    +	 * If it intersects multiple times, the first intersection from 
    +	 * the start end of the curve is returned.
    +	 * 
    +	 * @param index the curve index specifying the curve to analyse
    +	 * @param rect the whose boundary is to be tested for intersection
    +	 * with this curve
    +	 * @return the distance along the curve from the start at which
    +	 * the intersection occurs
    +	 */
    +	public double intersectsRectPerimeterDist(String index, mxRectangle rect)
    +	{
    +		double result = -1;
    +		mxPoint[] pointsCurve = getCurvePoints(index);
    +		double[] curveIntervals = getIntervals(index);
    +
    +		if (pointsCurve != null && pointsCurve.length > 1)
    +		{
    +			int segIndex = intersectRectPerimeterSeg(index, rect);
    +			mxPoint intersectPoint = null;
    +
    +			if (segIndex != -1)
    +			{
    +				intersectPoint = intersectRectPerimeterPoint(index, rect,
    +						segIndex);
    +			}
    +
    +			if (intersectPoint != null)
    +			{
    +				double startSegX = pointsCurve[segIndex - 1].getX();
    +				double startSegY = pointsCurve[segIndex - 1].getY();
    +				double distToStartSeg = curveIntervals[segIndex - 1]
    +						* getCurveLength(index);
    +				double intersectOffsetX = intersectPoint.getX() - startSegX;
    +				double intersectOffsetY = intersectPoint.getY() - startSegY;
    +				double lenToIntersect = Math.sqrt(intersectOffsetX
    +						* intersectOffsetX + intersectOffsetY
    +						* intersectOffsetY);
    +				result = distToStartSeg + lenToIntersect;
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns a point to move the input rectangle to, in order to
    +	 * attempt to place the rectangle away from the curve. NOTE: Curves
    +	 * are scaled, the input rectangle should be also.
    +	 * @param index  the curve index specifying the curve to analyse
    +	 * @param rect the rectangle that is to be moved
    +	 * @param buffer the amount by which the rectangle is to be moved,
    +	 * 			beyond the dimensions of the rect
    +	 * @return the point to move the top left of the input rect to
    +	 * 			, otherwise null if no point can be determined
    +	 */
    +	public mxPoint collisionMove(String index, mxRectangle rect, double buffer)
    +	{
    +		int hitSeg = intersectRectPerimeterSeg(index, rect);
    +
    +		// Could test for a second hit (the rect exit, unless the same 
    +		// segment is entry and exit) and allow for that in movement.
    +		
    +		if (hitSeg == -1)
    +		{
    +			return null;
    +		}
    +		else
    +		{
    +			mxPoint[] pointsCurve = getCurvePoints(index);
    +
    +			double x0 = pointsCurve[hitSeg - 1].getX();
    +			double y0 = pointsCurve[hitSeg - 1].getY();
    +			double x1 = pointsCurve[hitSeg].getX();
    +			double y1 = pointsCurve[hitSeg].getY();
    +			
    +			double x = rect.getX();
    +			double y = rect.getY();
    +			double width = rect.getWidth();
    +			double height = rect.getHeight();
    +
    +			// Whether the intersection is one of the horizontal sides of the rect
    +			@SuppressWarnings("unused")
    +			boolean horizIncident = false;
    +			mxPoint hitPoint = mxUtils.intersection(x, y, x + width, y, x0, y0, x1, y1);
    +			
    +			if (hitPoint != null)
    +			{
    +				horizIncident = true;
    +			}
    +			else
    +			{
    +				hitPoint = mxUtils.intersection(x + width, y, x + width, y + height,
    +						x0, y0, x1, y1);
    +			}
    +
    +			if (hitPoint == null)
    +			{
    +				hitPoint = mxUtils.intersection(x + width, y + height, x, y + height,
    +						x0, y0, x1, y1);
    +				
    +				if (hitPoint != null)
    +				{
    +					horizIncident = true;
    +				}
    +				else
    +				{
    +					hitPoint = mxUtils.intersection(x, y, x, y + height, x0, y0, x1, y1);
    +				}
    +			}
    +
    +			if (hitPoint != null)
    +			{
    +				
    +			}
    +
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Utility method to determine within which segment the specified rectangle
    +	 * intersects the specified curve
    +	 * 
    +	 * @param index the curve index specifying the curve to analyse
    +	 * @param rect the whose boundary is to be tested for intersection
    +	 * with this curve
    +	 * @return the point at which this curve intersects the boundary of 
    +	 * the given rectangle, if it does so. If it does not intersect, 
    +	 * -1 is returned
    +	 */
    +	protected int intersectRectPerimeterSeg(String index, mxRectangle rect)
    +	{
    +		return intersectRectPerimeterSeg(index, rect, 1);
    +	}
    +
    +	/**
    +	 * Utility method to determine within which segment the specified rectangle
    +	 * intersects the specified curve. This method specifies which segment to
    +	 * start searching at.
    +	 * 
    +	 * @param index the curve index specifying the curve to analyse
    +	 * @param rect the whose boundary is to be tested for intersection
    +	 * with this curve
    +	 * @param startSegment the segment to start searching at. To start at the 
    +	 * 			beginning of the curve, use 1, not 0.
    +	 * @return the point at which this curve intersects the boundary of 
    +	 * the given rectangle, if it does so. If it does not intersect, 
    +	 * -1 is returned
    +	 */
    +	protected int intersectRectPerimeterSeg(String index, mxRectangle rect,
    +			int startSegment)
    +	{
    +		mxPoint[] pointsCurve = getCurvePoints(index);
    +
    +		if (pointsCurve != null && pointsCurve.length > 1)
    +		{
    +			for (int i = startSegment; i < pointsCurve.length; i++)
    +			{
    +				if (rect.intersectLine(pointsCurve[i].getX(),
    +						pointsCurve[i].getY(), pointsCurve[i - 1].getX(),
    +						pointsCurve[i - 1].getY()) != null)
    +				{
    +					return i;
    +				}
    +			}
    +		}
    +
    +		return -1;
    +	}
    +
    +	/**
    +	 * Returns the point at which this curve segment intersects the boundary 
    +	 * of the given rectangle, if it does so. If it does not intersect, 
    +	 * null is returned.
    +	 * 
    +	 * @param curveIndex the curve index specifying the curve to analyse
    +	 * @param rect the whose boundary is to be tested for intersection
    +	 * with this curve
    +	 * @param indexSeg the segments on this curve being checked
    +	 * @return the point at which this curve segment  intersects the boundary 
    +	 * of the given rectangle, if it does so. If it does not intersect, 
    +	 * null is returned.
    +	 */
    +	protected mxPoint intersectRectPerimeterPoint(String curveIndex,
    +			mxRectangle rect, int indexSeg)
    +	{
    +		mxPoint result = null;
    +		mxPoint[] pointsCurve = getCurvePoints(curveIndex);
    +
    +		if (pointsCurve != null && pointsCurve.length > 1 && indexSeg >= 0
    +				&& indexSeg < pointsCurve.length)
    +		{
    +			double p1X = pointsCurve[indexSeg - 1].getX();
    +			double p1Y = pointsCurve[indexSeg - 1].getY();
    +			double p2X = pointsCurve[indexSeg].getX();
    +			double p2Y = pointsCurve[indexSeg].getY();
    +
    +			result = rect.intersectLine(p1X, p1Y, p2X, p2Y);
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Calculates the position of an absolute in terms relative
    +	 * to this curve.
    +	 * 
    +	 * @param absPoint the point whose relative point is to calculated
    +	 * @param index the index of the curve whom the relative position is to be 
    +	 * calculated from
    +	 * @return an mxRectangle where the x is the distance along the curve 
    +	 * (0 to 1), y is the orthogonal offset from the closest segment on the 
    +	 * curve and (width, height) is an additional Cartesian offset applied
    +	 * after the other calculations
    +	 */
    +	public mxRectangle getRelativeFromAbsPoint(mxPoint absPoint, String index)
    +	{
    +		// Work out which segment the absolute point is closest to
    +		mxPoint[] currentCurve = getCurvePoints(index);
    +		double[] currentIntervals = getIntervals(index);
    +		int closestSegment = 0;
    +		double closestSegDistSq = 10000000;
    +		mxLine segment = new mxLine(currentCurve[0], currentCurve[1]);
    +
    +		for (int i = 1; i < currentCurve.length; i++)
    +		{
    +			segment.setPoints(currentCurve[i - 1], currentCurve[i]);
    +			double segDistSq = segment.ptSegDistSq(absPoint);
    +
    +			if (segDistSq < closestSegDistSq)
    +			{
    +				closestSegDistSq = segDistSq;
    +				closestSegment = i - 1;
    +			}
    +		}
    +
    +		// Get the distance (squared) from the point to the
    +		// infinitely extrapolated line created by the closest
    +		// segment. If that value is the same as the distance
    +		// to the segment then an orthogonal offset from some
    +		// point on the line will intersect the point. If they
    +		// are not equal, an additional cartesian offset is
    +		// required
    +		mxPoint startSegPt = currentCurve[closestSegment];
    +		mxPoint endSegPt = currentCurve[closestSegment + 1];
    +
    +		mxLine closestSeg = new mxLine(startSegPt, endSegPt);
    +		double lineDistSq = closestSeg.ptLineDistSq(absPoint);
    +
    +		double orthogonalOffset = Math.sqrt(Math.min(lineDistSq,
    +				closestSegDistSq));
    +		double segX = endSegPt.getX() - startSegPt.getX();
    +		double segY = endSegPt.getY() - startSegPt.getY();
    +		double segDist = Math.sqrt(segX * segX + segY * segY);
    +		double segNormX = segX / segDist;
    +		double segNormY = segY / segDist;
    +		// The orthogonal offset could be in one of two opposite vectors
    +		// Try both solutions, one will be closer to one of the segment
    +		// end points (unless the point is on the line)
    +		double candidateOffX1 = (absPoint.getX() - segNormY * orthogonalOffset)
    +				- endSegPt.getX();
    +		double candidateOffY1 = (absPoint.getY() + segNormX * orthogonalOffset)
    +				- endSegPt.getY();
    +		double candidateOffX2 = (absPoint.getX() + segNormY * orthogonalOffset)
    +				- endSegPt.getX();
    +		double candidateOffY2 = (absPoint.getY() - segNormX * orthogonalOffset)
    +				- endSegPt.getY();
    +
    +		double candidateDist1 = (candidateOffX1 * candidateOffX1)
    +				+ (candidateOffY1 * candidateOffY1);
    +		double candidateDist2 = (candidateOffX2 * candidateOffX2)
    +				+ (candidateOffY2 * candidateOffY2);
    +
    +		double orthOffsetPointX = 0;
    +		double orthOffsetPointY = 0;
    +
    +		if (candidateDist2 < candidateDist1)
    +		{
    +			orthogonalOffset = -orthogonalOffset;
    +		}
    +
    +		orthOffsetPointX = absPoint.getX() - segNormY * orthogonalOffset;
    +		orthOffsetPointY = absPoint.getY() + segNormX * orthogonalOffset;
    +
    +		double distAlongEdge = 0;
    +		double cartOffsetX = 0;
    +		double cartOffsetY = 0;
    +
    +		// Don't compare for exact equality, there are often rounding errors
    +		if (Math.abs(closestSegDistSq - lineDistSq) > 0.0001)
    +		{
    +			// The orthogonal offset does not move the point onto the
    +			// segment. Work out an additional cartesian offset that moves
    +			// the offset point onto the closest end point of the
    +			// segment
    +
    +			// Not exact distances, but the equation holds
    +			double distToStartPoint = Math.abs(orthOffsetPointX
    +					- startSegPt.getX())
    +					+ Math.abs(orthOffsetPointY - startSegPt.getY());
    +			double distToEndPoint = Math
    +					.abs(orthOffsetPointX - endSegPt.getX())
    +					+ Math.abs(orthOffsetPointY - endSegPt.getY());
    +			if (distToStartPoint < distToEndPoint)
    +			{
    +				distAlongEdge = currentIntervals[closestSegment];
    +				cartOffsetX = orthOffsetPointX - startSegPt.getX();
    +				cartOffsetY = orthOffsetPointY - startSegPt.getY();
    +			}
    +			else
    +			{
    +				distAlongEdge = currentIntervals[closestSegment + 1];
    +				cartOffsetX = orthOffsetPointX - endSegPt.getX();
    +				cartOffsetY = orthOffsetPointY - endSegPt.getY();
    +			}
    +		}
    +		else
    +		{
    +			// The point, when orthogonally offset, lies on the segment
    +			// work out what proportion along the segment, and therefore
    +			// the entire curve, the offset point lies.
    +			double segmentLen = Math.sqrt((endSegPt.getX() - startSegPt.getX())
    +					* (endSegPt.getX() - startSegPt.getX())
    +					+ (endSegPt.getY() - startSegPt.getY())
    +					* (endSegPt.getY() - startSegPt.getY()));
    +			double offsetLen = Math.sqrt((orthOffsetPointX - startSegPt.getX())
    +					* (orthOffsetPointX - startSegPt.getX())
    +					+ (orthOffsetPointY - startSegPt.getY())
    +					* (orthOffsetPointY - startSegPt.getY()));
    +			double proportionAlongSeg = offsetLen / segmentLen;
    +			double segProportingDiff = currentIntervals[closestSegment + 1]
    +					- currentIntervals[closestSegment];
    +			distAlongEdge = currentIntervals[closestSegment]
    +					+ segProportingDiff * proportionAlongSeg;
    +		}
    +
    +		if (distAlongEdge > 1.0)
    +		{
    +			distAlongEdge = 1.0;
    +		}
    +
    +		return new mxRectangle(distAlongEdge, orthogonalOffset, cartOffsetX,
    +				cartOffsetY);
    +	}
    +
    +	/**
    +	 * Creates the core curve that is based on the guide points passed into
    +	 * this class instance
    +	 */
    +	protected void createCoreCurve()
    +	{
    +		// Curve is marked invalid until all of the error situations have
    +		// been checked
    +		valid = false;
    +
    +		if (guidePoints == null || guidePoints.isEmpty())
    +		{
    +			return;
    +		}
    +
    +		for (int i = 0; i < guidePoints.size(); i++)
    +		{
    +			if (guidePoints.get(i) == null)
    +			{
    +				return;
    +			}
    +		}
    +
    +		// Reset the cached bounds value
    +		minXBounds = minYBounds = 10000000;
    +		maxXBounds = maxYBounds = 0;
    +
    +		mxSpline spline = new mxSpline(guidePoints);
    +
    +		// Need the rough length of the spline, so we can get
    +		// more samples for longer edges
    +		double lengthSpline = spline.getLength();
    +
    +		// Check for errors in the spline calculation or zero length curves
    +		if (Double.isNaN(lengthSpline) || !spline.checkValues()
    +				|| lengthSpline < 1)
    +		{
    +			return;
    +		}
    +
    +		mxSpline1D splineX = spline.getSplineX();
    +		mxSpline1D splineY = spline.getSplineY();
    +		double baseInterval = 12.0 / lengthSpline;
    +		double minInterval = 1.0 / lengthSpline;
    +
    +		// Store the last two spline positions. If the next position is 
    +		// very close to where the extrapolation of the last two points 
    +		// then double the interval. This diviation is terms the "flatness".
    +		// There is a range where the interval is kept the same, any 
    +		// variation from this range of flatness invokes a proportional 
    +		// adjustment to try to reenter the range without 
    +		// over compensating
    +		double interval = baseInterval;
    +		// These deviations are only tested against either 
    +		// dimension individually, working out the correct 
    +		// distance is too computationally intensive
    +		double minDeviation = 0.15;
    +		double maxDeviation = 0.3;
    +		double preferedDeviation = (maxDeviation + minDeviation) / 2.0;
    +
    +		// x1, y1 are the position two iterations ago, x2, y2
    +		// the position on the last iteration
    +		double x1 = -1.0;
    +		double x2 = -1.0;
    +		double y1 = -1.0;
    +		double y2 = -1.0;
    +
    +		// Store the change in interval amount between iterations.
    +		// If it changes the extrapolation calculation must
    +		// take this into account.
    +		double intervalChange = 1;
    +
    +		List<mxPoint> coreCurve = new ArrayList<mxPoint>();
    +		List<Double> coreIntervals = new ArrayList<Double>();
    +		boolean twoLoopsComplete = false;
    +
    +		for (double t = 0; t <= 1.5; t += interval)
    +		{
    +			if (t > 1.0)
    +			{
    +				// Use the point regardless of the accuracy, 
    +				t = 1.0001;
    +				mxPoint endControlPoint = guidePoints
    +						.get(guidePoints.size() - 1);
    +				mxPoint finalPoint = new mxPoint(endControlPoint.getX(),
    +						endControlPoint.getY());
    +				coreCurve.add(finalPoint);
    +				coreIntervals.add(t);
    +				updateBounds(endControlPoint.getX(), endControlPoint.getY());
    +				break;
    +			}
    +			// Whether or not the accuracy of the current point is acceptable
    +			boolean currentPointAccepted = true;
    +
    +			double newX = splineX.getFastValue(t);
    +			double newY = splineY.getFastValue(t);
    +
    +			// Check if the last points are valid (indicated by
    +			// dissimilar values)
    +			// Check we're not in the first, second or last run
    +			if (x1 != -1.0 && twoLoopsComplete && t != 1.0001)
    +			{
    +				// Work out how far the new spline point
    +				// deviates from the extrapolation created 
    +				// by the last two points
    +				double diffX = Math.abs(((x2 - x1) * intervalChange + x2)
    +						- newX);
    +				double diffY = Math.abs(((y2 - y1) * intervalChange + y2)
    +						- newY);
    +
    +				// If either the x or y of the straight line
    +				// extrapolation from the last two points
    +				// is more than the 1D deviation allowed
    +				// go back and re-calculate with a smaller interval
    +				// It's possible that the edge has curved too fast
    +				// for the algorithmn. If the interval is
    +				// reduced to less than the minimum permitted
    +				// interval, it may be that it's impossible
    +				// to get within the deviation because of
    +				// the extrapolation overshoot. The minimum 
    +				// interval is set to draw correctly for the
    +				// vast majority of cases.
    +				if ((diffX > maxDeviation || diffY > maxDeviation)
    +						&& interval != minInterval)
    +				{
    +					double overshootProportion = maxDeviation
    +							/ Math.max(diffX, diffY);
    +
    +					if (interval * overshootProportion <= minInterval)
    +					{
    +						// Set the interval 
    +						intervalChange = minInterval / interval;
    +					}
    +					else
    +					{
    +						// The interval can still be reduced, half 
    +						// the interval and go back and redo
    +						// this iteration
    +						intervalChange = overshootProportion;
    +					}
    +
    +					t -= interval;
    +					interval *= intervalChange;
    +					currentPointAccepted = false;
    +				}
    +				else if (diffX < minDeviation && diffY < minDeviation)
    +				{
    +					intervalChange = 1.4;
    +					interval *= intervalChange;
    +				}
    +				else
    +				{
    +					// Try to keep the deviation around the prefered value
    +					double errorRatio = preferedDeviation
    +							/ Math.max(diffX, diffY);
    +					intervalChange = errorRatio / 4.0;
    +					interval *= intervalChange;
    +				}
    +
    +				if (currentPointAccepted)
    +				{
    +					x1 = x2;
    +					y1 = y2;
    +					x2 = newX;
    +					y2 = newY;
    +				}
    +			}
    +			else if (x1 == -1.0)
    +			{
    +				x1 = x2 = newX;
    +				y1 = y2 = newY;
    +			}
    +			else if (x1 == x2 && y1 == y2)
    +			{
    +				x2 = newX;
    +				y2 = newY;
    +				twoLoopsComplete = true;
    +			}
    +			if (currentPointAccepted)
    +			{
    +				mxPoint newPoint = new mxPoint(newX, newY);
    +				coreCurve.add(newPoint);
    +				coreIntervals.add(t);
    +				updateBounds(newX, newY);
    +			}
    +		}
    +
    +		if (coreCurve.size() < 2)
    +		{
    +			// A single point makes no sense, leave the curve as invalid
    +			return;
    +		}
    +
    +		mxPoint[] corePoints = new mxPoint[coreCurve.size()];
    +		int count = 0;
    +
    +		for (mxPoint point : coreCurve)
    +		{
    +			corePoints[count++] = point;
    +		}
    +
    +		points = new Hashtable<String, mxPoint[]>();
    +		curveLengths = new Hashtable<String, Double>();
    +		points.put(CORE_CURVE, corePoints);
    +		curveLengths.put(CORE_CURVE, lengthSpline);
    +
    +		double[] coreIntervalsArray = new double[coreIntervals.size()];
    +		count = 0;
    +
    +		for (Double tempInterval : coreIntervals)
    +		{
    +			coreIntervalsArray[count++] = tempInterval.doubleValue();
    +		}
    +
    +		intervals = new Hashtable<String, double[]>();
    +		intervals.put(CORE_CURVE, coreIntervalsArray);
    +
    +		valid = true;
    +	}
    +
    +	/** Whether or not the label curve starts from the end target
    +	 *  and traces to the start of the branch
    +	 * @return whether the label curve is reversed
    +	 */
    +	public boolean isLabelReversed()
    +	{
    +		if (valid)
    +		{
    +			mxPoint[] centralCurve = getCurvePoints(CORE_CURVE);
    +
    +			if (centralCurve != null)
    +			{
    +				double changeX = centralCurve[centralCurve.length - 1].getX()
    +						- centralCurve[0].getX();
    +
    +				if (changeX < 0)
    +				{
    +					return true;
    +				}
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	protected void createLabelCurve()
    +	{
    +		// Place the label on the "high" side of the vector
    +		// joining the start and end points of the curve
    +		mxPoint[] currentCurve = getBaseLabelCurve();
    +
    +		boolean labelReversed = isLabelReversed();
    +
    +		List<mxPoint> labelCurvePoints = new ArrayList<mxPoint>();
    +
    +		// Lower and upper curve start from the very ends
    +		// of their curves, so given that their middle points
    +		// are derived from the center of the central points
    +		// they will contain one more point and both
    +		// side curves contain the same end point
    +
    +		for (int i = 1; i < currentCurve.length; i++)
    +		{
    +			int currentIndex = i;
    +			int lastIndex = i - 1;
    +
    +			if (labelReversed)
    +			{
    +				currentIndex = currentCurve.length - i - 1;
    +				lastIndex = currentCurve.length - i;
    +			}
    +
    +			mxPoint segStartPoint = currentCurve[currentIndex];
    +			mxPoint segEndPoint = currentCurve[lastIndex];
    +			double segVectorX = segEndPoint.getX() - segStartPoint.getX();
    +			double segVectorY = segEndPoint.getY() - segStartPoint.getY();
    +			double segVectorLength = Math.sqrt(segVectorX * segVectorX
    +					+ segVectorY * segVectorY);
    +			double normSegVectorX = segVectorX / segVectorLength;
    +			double normSegVectorY = segVectorY / segVectorLength;
    +			double centerSegX = (segEndPoint.getX() + segStartPoint.getX()) / 2.0;
    +			double centerSegY = (segEndPoint.getY() + segStartPoint.getY()) / 2.0;
    +
    +			if (i == 1)
    +			{
    +				// Special case to work out the very end points at
    +				// the start of the curve
    +				mxPoint startPoint = new mxPoint(segEndPoint.getX()
    +						- (normSegVectorY * labelBuffer), segEndPoint.getY()
    +						+ (normSegVectorX * labelBuffer));
    +				labelCurvePoints.add(startPoint);
    +				updateBounds(startPoint.getX(), startPoint.getY());
    +			}
    +
    +			double pointX = centerSegX - (normSegVectorY * labelBuffer);
    +			double pointY = centerSegY + (normSegVectorX * labelBuffer);
    +			mxPoint labelCurvePoint = new mxPoint(pointX, pointY);
    +			updateBounds(pointX, pointY);
    +			labelCurvePoints.add(labelCurvePoint);
    +
    +			if (i == currentCurve.length - 1)
    +			{
    +				// Special case to work out the very end points at
    +				// the start of the curve
    +				mxPoint endPoint = new mxPoint(segStartPoint.getX()
    +						- (normSegVectorY * labelBuffer), segStartPoint.getY()
    +						+ (normSegVectorX * labelBuffer));
    +				labelCurvePoints.add(endPoint);
    +				updateBounds(endPoint.getX(), endPoint.getY());
    +			}
    +		}
    +
    +		mxPoint[] tmpPoints = new mxPoint[labelCurvePoints.size()];
    +		points.put(LABEL_CURVE, labelCurvePoints.toArray(tmpPoints));
    +		populateIntervals(LABEL_CURVE);
    +	}
    +
    +	/**
    +	 * Returns the curve the label curve is too be based on
    +	 */
    +	protected mxPoint[] getBaseLabelCurve()
    +	{
    +		return getCurvePoints(CORE_CURVE);
    +	}
    +
    +	protected void populateIntervals(String index)
    +	{
    +		mxPoint[] currentCurve = points.get(index);
    +
    +		double[] newIntervals = new double[currentCurve.length];
    +
    +		double totalLength = 0.0;
    +		newIntervals[0] = 0;
    +
    +		for (int i = 0; i < currentCurve.length - 1; i++)
    +		{
    +			double changeX = currentCurve[i + 1].getX()
    +					- currentCurve[i].getX();
    +			double changeY = currentCurve[i + 1].getY()
    +					- currentCurve[i].getY();
    +			double segLength = Math.sqrt(changeX * changeX + changeY * changeY);
    +			// We initially fill the intervals with the total distance to
    +			// the end of this segment then later normalize all the values
    +			totalLength += segLength;
    +			// The first index was populated before the loop (and is always 0)
    +			newIntervals[i + 1] = totalLength;
    +		}
    +
    +		// Normalize the intervals
    +		for (int j = 0; j < newIntervals.length; j++)
    +		{
    +			if (j == newIntervals.length - 1)
    +			{
    +				// Make the final interval slightly over
    +				// 1.0 so any analysis to find the lower 
    +				newIntervals[j] = 1.0001;
    +			}
    +			else
    +			{
    +				newIntervals[j] = newIntervals[j] / totalLength;
    +			}
    +		}
    +
    +		intervals.put(index, newIntervals);
    +		curveLengths.put(index, totalLength);
    +	}
    +
    +	/**
    +	 * Updates the existing curve using the points passed in. 
    +	 * @param newPoints the new guide points
    +	 */
    +	public void updateCurve(List<mxPoint> newPoints)
    +	{
    +		boolean pointsChanged = false;
    +
    +		// If any of the new points are null, ignore the list
    +		for (mxPoint point : newPoints)
    +		{
    +			if (point == null)
    +			{
    +				return;
    +			}
    +		}
    +
    +		if (newPoints.size() != guidePoints.size())
    +		{
    +			pointsChanged = true;
    +		}
    +		else
    +		{
    +			// Check for a constant translation of all guide points. In that 
    +			// case apply the translation directly to all curves.
    +			// Also check whether all of the translations are trivial
    +			if (newPoints.size() == guidePoints.size() && newPoints.size() > 1
    +					&& guidePoints.size() > 1)
    +			{
    +				boolean constantTranslation = true;
    +				boolean trivialTranslation = true;
    +				mxPoint newPoint0 = newPoints.get(0);
    +				mxPoint oldPoint0 = guidePoints.get(0);
    +				double transX = newPoint0.getX() - oldPoint0.getX();
    +				double transY = newPoint0.getY() - oldPoint0.getY();
    +
    +				if (Math.abs(transX) > 0.01 || Math.abs(transY) > 0.01)
    +				{
    +					trivialTranslation = false;
    +				}
    +
    +				for (int i = 1; i < newPoints.size(); i++)
    +				{
    +					double nextTransX = newPoints.get(i).getX()
    +							- guidePoints.get(i).getX();
    +					double nextTransY = newPoints.get(i).getY()
    +							- guidePoints.get(i).getY();
    +
    +					if (Math.abs(transX - nextTransX) > 0.01
    +							|| Math.abs(transY - nextTransY) > 0.01)
    +					{
    +						constantTranslation = false;
    +					}
    +
    +					if (Math.abs(nextTransX) > 0.01
    +							|| Math.abs(nextTransY) > 0.01)
    +					{
    +						trivialTranslation = false;
    +					}
    +				}
    +
    +				if (trivialTranslation)
    +				{
    +					pointsChanged = false;
    +				}
    +				else if (constantTranslation)
    +				{
    +					pointsChanged = false;
    +					// Translate all stored points by the translation amounts
    +					Collection<mxPoint[]> curves = points.values();
    +
    +					// Update all geometry information held by the curve
    +					// That is, all the curve points, the guide points
    +					// and the cached bounds
    +					for (mxPoint[] curve : curves)
    +					{
    +						for (int i = 0; i < curve.length; i++)
    +						{
    +							curve[i].setX(curve[i].getX() + transX);
    +							curve[i].setY(curve[i].getY() + transY);
    +						}
    +					}
    +
    +					guidePoints = new ArrayList<mxPoint>(newPoints);
    +					minXBounds += transX;
    +					minYBounds += transY;
    +					maxXBounds += transX;
    +					maxYBounds += transY;
    +				}
    +				else
    +				{
    +					pointsChanged = true;
    +				}
    +			}
    +		}
    +
    +		if (pointsChanged)
    +		{
    +			guidePoints = new ArrayList<mxPoint>(newPoints);
    +			points = new Hashtable<String, mxPoint[]>();
    +			valid = false;
    +		}
    +	}
    +
    +	/**
    +	 * Obtains the points that make up the curve for the specified
    +	 * curve index. If that curve, or the core curve that other curves
    +	 * are based on have not yet been created, then they are lazily
    +	 * created. If creation is impossible, null is returned
    +	 * @param index the key specifying the curve
    +	 * @return the points making up that curve, or null
    +	 */
    +	public mxPoint[] getCurvePoints(String index)
    +	{
    +		if (validateCurve())
    +		{
    +			if (points.get(LABEL_CURVE) == null && index == LABEL_CURVE)
    +			{
    +				createLabelCurve();
    +			}
    +
    +			return points.get(index);
    +		}
    +
    +		return null;
    +	}
    +
    +	public double[] getIntervals(String index)
    +	{
    +		if (validateCurve())
    +		{
    +			if (points.get(LABEL_CURVE) == null && index == LABEL_CURVE)
    +			{
    +				createLabelCurve();
    +			}
    +
    +			return intervals.get(index);
    +		}
    +
    +		return null;
    +	}
    +
    +	public double getCurveLength(String index)
    +	{
    +		if (validateCurve())
    +		{
    +			if (intervals.get(index) == null)
    +			{
    +				createLabelCurve();
    +			}
    +
    +			return curveLengths.get(index);
    +		}
    +
    +		return 0;
    +	}
    +
    +	/**
    +	 * Method must be called before any attempt to access curve information
    +	 * @return whether or not the curve may be used
    +	 */
    +	protected boolean validateCurve()
    +	{
    +		if (!valid)
    +		{
    +			createCoreCurve();
    +		}
    +
    +		return valid;
    +	}
    +
    +	/**
    +	 * Updates the total bounds of this curve, increasing any dimensions,
    +	 * if necessary, to fit in the specified point
    +	 */
    +	protected void updateBounds(double pointX, double pointY)
    +	{
    +		minXBounds = Math.min(minXBounds, pointX);
    +		maxXBounds = Math.max(maxXBounds, pointX);
    +		minYBounds = Math.min(minYBounds, pointY);
    +		maxYBounds = Math.max(maxYBounds, pointY);
    +	}
    +
    +	/**
    +	 * @return the guidePoints
    +	 */
    +	public List<mxPoint> getGuidePoints()
    +	{
    +		return guidePoints;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/mxDomUtils.java b/java/src/com/mxgraph/util/mxDomUtils.java
    new file mode 100644
    index 000000000..11986d9de
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxDomUtils.java
    @@ -0,0 +1,114 @@
    +/**
    + * $Id: mxDomUtils.java,v 1.1 2012-01-13 12:26:15 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.util;
    +
    +import javax.xml.parsers.DocumentBuilder;
    +import javax.xml.parsers.DocumentBuilderFactory;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +
    +/**
    + * Contains various DOM API helper methods for use with mxGraph.
    + */
    +public class mxDomUtils
    +{
    +	/**
    +	 * Returns a new, empty DOM document.
    +	 * 
    +	 * @return Returns a new DOM document.
    +	 */
    +	public static Document createDocument()
    +	{
    +		Document result = null;
    +
    +		try
    +		{
    +			DocumentBuilderFactory factory = DocumentBuilderFactory
    +					.newInstance();
    +			DocumentBuilder parser = factory.newDocumentBuilder();
    +
    +			result = parser.newDocument();
    +		}
    +		catch (Exception e)
    +		{
    +			System.out.println(e.getMessage());
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Creates a new SVG document for the given width and height.
    +	 */
    +	public static Document createSvgDocument(int width, int height)
    +	{
    +		Document document = createDocument();
    +		Element root = document.createElement("svg");
    +
    +		String w = String.valueOf(width);
    +		String h = String.valueOf(height);
    +
    +		root.setAttribute("width", w);
    +		root.setAttribute("height", h);
    +		root.setAttribute("viewBox", "0 0 " + w + " " + h);
    +		root.setAttribute("version", "1.1");
    +		root.setAttribute("xmlns", mxConstants.NS_SVG);
    +		root.setAttribute("xmlns:xlink", mxConstants.NS_XLINK);
    +
    +		document.appendChild(root);
    +
    +		return document;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static Document createVmlDocument()
    +	{
    +		Document document = createDocument();
    +
    +		Element root = document.createElement("html");
    +		root.setAttribute("xmlns:v", "urn:schemas-microsoft-com:vml");
    +		root.setAttribute("xmlns:o", "urn:schemas-microsoft-com:office:office");
    +
    +		document.appendChild(root);
    +
    +		Element head = document.createElement("head");
    +
    +		Element style = document.createElement("style");
    +		style.setAttribute("type", "text/css");
    +		style.appendChild(document
    +				.createTextNode("<!-- v\\:* {behavior: url(#default#VML);} -->"));
    +
    +		head.appendChild(style);
    +		root.appendChild(head);
    +
    +		Element body = document.createElement("body");
    +		root.appendChild(body);
    +
    +		return document;
    +	}
    +
    +	/**
    +	 * Returns a document with a HTML node containing a HEAD and BODY node.
    +	 */
    +	public static Document createHtmlDocument()
    +	{
    +		Document document = createDocument();
    +
    +		Element root = document.createElement("html");
    +
    +		document.appendChild(root);
    +
    +		Element head = document.createElement("head");
    +		root.appendChild(head);
    +
    +		Element body = document.createElement("body");
    +		root.appendChild(body);
    +
    +		return document;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/mxEvent.java b/java/src/com/mxgraph/util/mxEvent.java
    new file mode 100644
    index 000000000..ec25699d6
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxEvent.java
    @@ -0,0 +1,325 @@
    +/**
    + * $Id: mxEvent.java,v 1.14 2011-01-28 08:40:17 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.util;
    +
    +/**
    + * Contains all global constants.
    + */
    +public class mxEvent
    +{
    +	
    +	/**
    +	 * 
    +	 */
    +	public static final String DONE = "done";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String ADD_CELLS = "addCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CELLS_ADDED = "cellsAdded";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String ALIGN_CELLS = "alignCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CONNECT_CELL = "connectCell";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CONNECT = "connect";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CELL_CONNECTED = "cellConnected";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String FLIP_EDGE = "flipEdge";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String FOLD_CELLS = "foldCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CELLS_FOLDED = "cellsFolded";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String GROUP_CELLS = "groupCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String UNGROUP_CELLS = "ungroupCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String REMOVE_CELLS_FROM_PARENT = "removeCellsFromParent";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String MOVE_CELLS = "moveCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CELLS_MOVED = "cellsMoved";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String ORDER_CELLS = "orderCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CELLS_ORDERED = "cellsOrdered";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String REMOVE_CELLS = "removeCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CELLS_REMOVED = "cellsRemoved";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String REPAINT = "repaint";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String RESIZE_CELLS = "resizeCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CELLS_RESIZED = "cellsResized";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String SPLIT_EDGE = "splitEdge";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String TOGGLE_CELLS = "toggleCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CELLS_TOGGLED = "cellsToggled";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String UPDATE_CELL_SIZE = "updateCellSize";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String LABEL_CHANGED = "labelChanged";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String ADD_OVERLAY = "addOverlay";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String REMOVE_OVERLAY = "removeOverlay";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String BEFORE_PAINT = "beforePaint";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String PAINT = "paint";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String AFTER_PAINT = "afterPaint";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String START_EDITING = "startEditing";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String UNDO = "undo";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String REDO = "redo";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String UP = "up";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String DOWN = "down";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String SCALE = "scale";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String TRANSLATE = "translate";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String SCALE_AND_TRANSLATE = "scaleAndTranslate";
    +
    +	/**
    +	 * Holds the name for the change event. First and only argument in the
    +	 * argument array is the list of mxAtomicGraphChanges that have been
    +	 * executed on the model.
    +	 */
    +	public static final String CHANGE = "change";
    +
    +	/**
    +	 * Holds the name for the execute event. First and only argument in the
    +	 * argument array is the mxAtomicGraphChange that has been executed on the 
    +	 * model. This event fires before the change event.
    +	 */
    +	public static final String EXECUTE = "execute";
    +
    +	/**
    +	 * Holds the name for the beforeUndo event. First and only argument in the
    +	 * argument array is the current edit that is currently in progress in the 
    +	 * model. This event fires before notify is called on the currentEdit in
    +	 * the model.
    +	 */
    +	public static final String BEFORE_UNDO = "beforeUndo";
    +
    +	/**
    +	 * Holds the name for the norify event. First and only argument in the
    +	 * argument array is the list of mxAtomicGraphChanges that have been
    +	 * executed on the model. This event fires after the change event.
    +	 */
    +	public static final String NOTIFY = "notify";
    +
    +	/**
    +	 * Holds the name for the beginUpdate event. This event has no arguments and
    +	 * fires after the updateLevel has been changed in model.
    +	 */
    +	public static final String BEGIN_UPDATE = "beginUpdate";
    +
    +	/**
    +	 * Holds the name for the endUpdate event. This event has no arguments and fires
    +	 * after the updateLevel has been changed in the model. First argument is the
    +	 * currentEdit.
    +	 */
    +	public static final String END_UPDATE = "endUpdate";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String INSERT = "insert";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String ADD = "add";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String CLEAR = "clear";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String FIRED = "fired";
    +
    +	/**
    +	 * 
    +	 */
    +	public static final String SELECT = "select";
    +
    +	/**
    +	 * Holds the name for the mark event, which fires after a cell has been
    +	 * marked. First and only argument in the array is the cell state that has
    +	 * been marked or null, if no state has been marked.
    +	 * 
    +	 * To add a mark listener to the cell marker:
    +	 * 
    +	 * <code>
    +	 * addListener(
    +	 *   mxEvent.MARK, new mxEventListener()
    +	 *   {
    +	 *     public void invoke(Object source, Object[] args)
    +	 *     {
    +	 *       cellMarked((mxCellMarker) source, (mxCellState) args[0]);
    +	 *     }
    +	 *   });
    +	 * </code>
    +	 */
    +	public static String MARK = "mark";
    +
    +	/**
    +	 * 
    +	 */
    +	public static String ROOT = "root";
    +
    +	/**
    +	 * 
    +	 */
    +	public static String LAYOUT_CELLS = "layoutCells";
    +
    +	/**
    +	 * 
    +	 */
    +	public static String START = "start";
    +
    +	/**
    +	 * 
    +	 */
    +	public static String CONTINUE = "continue";
    +
    +	/**
    +	 * 
    +	 */
    +	public static String STOP = "stop";
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxEventObject.java b/java/src/com/mxgraph/util/mxEventObject.java
    new file mode 100644
    index 000000000..ff0e66cdc
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxEventObject.java
    @@ -0,0 +1,101 @@
    +/**
    + * $Id: mxEventObject.java,v 1.4 2009-12-01 15:21:30 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.util;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +/**
    + * Base class for objects that dispatch named events.
    + */
    +public class mxEventObject
    +{
    +
    +	/**
    +	 * Holds the name of the event.
    +	 */
    +	protected String name;
    +	
    +	/**
    +	 * Holds the properties of the event.
    +	 */
    +	protected Map<String, Object> properties;
    +	
    +	/**
    +	 * Holds the consumed state of the event. Default is false.
    +	 */
    +	protected boolean consumed = false;
    +
    +	/**
    +	 * Constructs a new event for the given name.
    +	 */
    +	public mxEventObject(String name)
    +	{
    +		this(name, (Object[]) null);
    +	}
    +
    +	/**
    +	 * Constructs a new event for the given name and properties. The optional
    +	 * properties are specified using a sequence of keys and values, eg.
    +	 * <code>new mxEventObject("eventName", key1, val1, .., keyN, valN))</code>
    +	 */
    +	public mxEventObject(String name, Object... args)
    +	{
    +		this.name = name;
    +		properties = new Hashtable<String, Object>();
    +		
    +		if (args != null)
    +		{
    +			for (int i = 0; i < args.length; i += 2)
    +			{
    +				if (args[i + 1] != null)
    +				{
    +					properties.put(String.valueOf(args[i]), args[i + 1]);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the name of the event.
    +	 */
    +	public String getName()
    +	{
    +		return name;
    +	}
    +	
    +	/**
    +	 * 
    +	 */
    +	public Map<String, Object> getProperties()
    +	{
    +		return properties;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object getProperty(String key)
    +	{
    +		return properties.get(key);
    +	}
    +
    +	/**
    +	 * Returns true if the event has been consumed.
    +	 */
    +	public boolean isConsumed()
    +	{
    +		return consumed;
    +	}
    +
    +	/**
    +	 * Consumes the event.
    +	 */
    +	public void consume()
    +	{
    +		consumed = true;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxEventSource.java b/java/src/com/mxgraph/util/mxEventSource.java
    new file mode 100644
    index 000000000..fc96fd11f
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxEventSource.java
    @@ -0,0 +1,186 @@
    +/**
    + * $Id: mxEventSource.java,v 1.12 2011-08-26 06:45:18 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.util;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +/**
    + * Base class for objects that dispatch named events.
    + */
    +public class mxEventSource
    +{
    +
    +	/**
    +	 * Defines the requirements for an object that listens to an event source.
    +	 */
    +	public interface mxIEventListener
    +	{
    +
    +		/**
    +		 * Called when the graph model has changed.
    +		 * 
    +		 * @param sender Reference to the source of the event.
    +		 * @param evt Event object to be dispatched.
    +		 */
    +		void invoke(Object sender, mxEventObject evt);
    +
    +	}
    +
    +	/**
    +	 * Holds the event names and associated listeners in an array. The array
    +	 * contains the event name followed by the respective listener for each
    +	 * registered listener.
    +	 */
    +	protected transient List<Object> eventListeners = null;
    +
    +	/**
    +	 * Holds the source object for this event source.
    +	 */
    +	protected Object eventSource;
    +
    +	/**
    +	 * Specifies if events can be fired. Default is true.
    +	 */
    +	protected boolean eventsEnabled = true;
    +
    +	/**
    +	 * Constructs a new event source using this as the source object.
    +	 */
    +	public mxEventSource()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * Constructs a new event source for the given source object.
    +	 */
    +	public mxEventSource(Object source)
    +	{
    +		setEventSource(source);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object getEventSource()
    +	{
    +		return eventSource;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setEventSource(Object value)
    +	{
    +		this.eventSource = value;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEventsEnabled()
    +	{
    +		return eventsEnabled;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setEventsEnabled(boolean eventsEnabled)
    +	{
    +		this.eventsEnabled = eventsEnabled;
    +	}
    +
    +	/**
    +	 * Binds the specified function to the given event name. If no event name
    +	 * is given, then the listener is registered for all events.
    +	 */
    +	public void addListener(String eventName, mxIEventListener listener)
    +	{
    +		if (eventListeners == null)
    +		{
    +			eventListeners = new ArrayList<Object>();
    +		}
    +
    +		eventListeners.add(eventName);
    +		eventListeners.add(listener);
    +	}
    +
    +	/**
    +	 * Function: removeListener
    +	 *
    +	 * Removes all occurances of the given listener from the list of listeners.
    +	 */
    +	public void removeListener(mxIEventListener listener)
    +	{
    +		removeListener(listener, null);
    +	}
    +
    +	/**
    +	 * Function: removeListener
    +	 *
    +	 * Removes all occurances of the given listener from the list of listeners.
    +	 */
    +	public void removeListener(mxIEventListener listener, String eventName)
    +	{
    +		if (eventListeners != null)
    +		{
    +			for (int i = eventListeners.size() - 2; i > -1; i -= 2)
    +			{
    +				if (eventListeners.get(i + 1) == listener
    +						&& (eventName == null || String.valueOf(
    +								eventListeners.get(i)).equals(eventName)))
    +				{
    +					eventListeners.remove(i + 1);
    +					eventListeners.remove(i);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Dispatches the given event name with this object as the event source.
    +	 * <code>fireEvent(new mxEventObject("eventName", key1, val1, .., keyN, valN))</code>
    +	 * 
    +	 */
    +	public void fireEvent(mxEventObject evt)
    +	{
    +		fireEvent(evt, null);
    +	}
    +
    +	/**
    +	 * Dispatches the given event name, passing all arguments after the given
    +	 * name to the registered listeners for the event.
    +	 */
    +	public void fireEvent(mxEventObject evt, Object sender)
    +	{
    +		if (eventListeners != null && !eventListeners.isEmpty()
    +				&& isEventsEnabled())
    +		{
    +			if (sender == null)
    +			{
    +				sender = getEventSource();
    +			}
    +
    +			if (sender == null)
    +			{
    +				sender = this;
    +			}
    +
    +			for (int i = 0; i < eventListeners.size(); i += 2)
    +			{
    +				String listen = (String) eventListeners.get(i);
    +
    +				if (listen == null || listen.equals(evt.getName()))
    +				{
    +					((mxIEventListener) eventListeners.get(i + 1)).invoke(
    +							sender, evt);
    +				}
    +			}
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxImage.java b/java/src/com/mxgraph/util/mxImage.java
    new file mode 100644
    index 000000000..9a751d105
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxImage.java
    @@ -0,0 +1,88 @@
    +/**
    + * $Id: mxImage.java,v 1.2 2009-11-24 12:00:28 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.util;
    +
    +import java.io.Serializable;
    +
    +/**
    + * Implements a 2-dimensional point with double precision coordinates.
    + */
    +public class mxImage implements Serializable, Cloneable
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 8541229679513497585L;
    +
    +	/**
    +	 * Holds the path or URL for the image.
    +	 */
    +	protected String src;
    +
    +	/**
    +	 * Holds the image width and height.
    +	 */
    +	protected int width, height;
    +
    +	/**
    +	 * Constructs a new point at (0, 0).
    +	 */
    +	public mxImage(String src, int width, int height)
    +	{
    +		this.src = src;
    +		this.width = width;
    +		this.height = height;
    +	}
    +
    +	/**
    +	 * @return the src
    +	 */
    +	public String getSrc()
    +	{
    +		return src;
    +	}
    +
    +	/**
    +	 * @param src the src to set
    +	 */
    +	public void setSrc(String src)
    +	{
    +		this.src = src;
    +	}
    +
    +	/**
    +	 * @return the width
    +	 */
    +	public int getWidth()
    +	{
    +		return width;
    +	}
    +
    +	/**
    +	 * @param width the width to set
    +	 */
    +	public void setWidth(int width)
    +	{
    +		this.width = width;
    +	}
    +
    +	/**
    +	 * @return the height
    +	 */
    +	public int getHeight()
    +	{
    +		return height;
    +	}
    +
    +	/**
    +	 * @param height the height to set
    +	 */
    +	public void setHeight(int height)
    +	{
    +		this.height = height;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxImageBundle.java b/java/src/com/mxgraph/util/mxImageBundle.java
    new file mode 100644
    index 000000000..acde6c9cd
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxImageBundle.java
    @@ -0,0 +1,82 @@
    +/**
    + * $Id: mxImageBundle.java,v 1.5 2011-01-19 20:06:16 gaudenz Exp $
    + * Copyright (c) 2010, Gaudenz Alder
    + */
    +package com.mxgraph.util;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +/**
    + * Maps from keys to base64 encoded images or file locations. All values must
    + * be URLs or use the format data:image/format followed by a comma and the base64
    + * encoded image data, eg. "data:image/gif,XYZ", where XYZ is the base64 encoded
    + * image data.
    + * 
    + * To add a new image bundle to an existing graph, the following code is used:
    + * 
    + * <code>
    + * mxImageBundle bundle = new mxImageBundle();
    + * bundle.PutImage("myImage", "data:image/gif,R0lGODlhEAAQAMIGAAAAAICAAICAgP" +
    + *    "//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAA" +
    + *    "EAAQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hi" +
    + *    "laSSASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs=");
    + * graph.addImageBundle(bundle);
    + * </code>
    + * 
    + * The image can then be referenced in any cell style using image=myImage.
    + * If you are using mxOutline, you should use the same image bundles in the
    + * graph that renders the outline.
    + * 
    + * To convert a given BufferedImage to a base64 encoded String, the following
    + * code can be used:
    + * 
    + * <code>
    + * ByteArrayOutputStream bos = new ByteArrayOutputStream();
    + * ImageIO.write(image, "png", bos);
    + * System.out.println("base64=" + mxBase64.encodeToString(
    + * 	 bos.toByteArray(), false));
    + * </code>
    + * 
    + * The value is decoded in mxUtils.loadImage. The keys for images are resolved
    + * and the short format above is converted to a data URI in
    + * mxGraph.postProcessCellStyle.
    + */
    +public class mxImageBundle
    +{
    +
    +	/**
    +	 * Maps from keys to images.
    +	 */
    +	protected Map<String, String> images = new Hashtable<String, String>();
    +
    +	/**
    +	 * Returns the images.
    +	 */
    +	public Map<String, String> getImages()
    +	{
    +		return images;
    +	}
    +
    +	/**
    +	 * Adds the specified entry to the map.
    +	 */
    +	public void putImage(String key, String value)
    +	{
    +		images.put(key, value);
    +	}
    +
    +	/**
    +	 * Returns the value for the given key.
    +	 */
    +	public String getImage(String key)
    +	{
    +		if (key != null)
    +		{
    +			return images.get(key);
    +		}
    +		
    +		return null;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxLightweightLabel.java b/java/src/com/mxgraph/util/mxLightweightLabel.java
    new file mode 100644
    index 000000000..238cc9b36
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxLightweightLabel.java
    @@ -0,0 +1,182 @@
    +/**
    + * $Id: mxLightweightLabel.java,v 1.2 2011-01-12 13:43:54 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.util;
    +
    +import java.awt.Font;
    +import java.awt.Rectangle;
    +
    +import javax.swing.JLabel;
    +import javax.swing.SwingConstants;
    +
    +/**
    + * @author Administrator
    + * 
    + */
    +public class mxLightweightLabel extends JLabel
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -6771477489533614010L;
    +
    +	/**
    +	 * 
    +	 */
    +	protected static mxLightweightLabel sharedInstance;
    +
    +	/**
    +	 * Initializes the shared instance.
    +	 */
    +	static
    +	{
    +		try
    +		{
    +			sharedInstance = new mxLightweightLabel();
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static mxLightweightLabel getSharedInstance()
    +	{
    +		return sharedInstance;
    +	}
    +
    +	/**
    +	 * 
    +	 * 
    +	 */
    +	public mxLightweightLabel()
    +	{
    +		setFont(new Font(mxConstants.DEFAULT_FONTFAMILY, 0,
    +				mxConstants.DEFAULT_FONTSIZE));
    +		setVerticalAlignment(SwingConstants.TOP);
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void validate()
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void revalidate()
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void repaint(long tm, int x, int y, int width, int height)
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void repaint(Rectangle r)
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	protected void firePropertyChange(String propertyName, Object oldValue,
    +			Object newValue)
    +	{
    +		// Strings get interned...
    +		if (propertyName == "text" || propertyName == "font")
    +		{
    +			super.firePropertyChange(propertyName, oldValue, newValue);
    +		}
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void firePropertyChange(String propertyName, byte oldValue,
    +			byte newValue)
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void firePropertyChange(String propertyName, char oldValue,
    +			char newValue)
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void firePropertyChange(String propertyName, short oldValue,
    +			short newValue)
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void firePropertyChange(String propertyName, int oldValue,
    +			int newValue)
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void firePropertyChange(String propertyName, long oldValue,
    +			long newValue)
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void firePropertyChange(String propertyName, float oldValue,
    +			float newValue)
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void firePropertyChange(String propertyName, double oldValue,
    +			double newValue)
    +	{
    +	}
    +
    +	/**
    +	 * Overridden for performance reasons.
    +	 * 
    +	 */
    +	public void firePropertyChange(String propertyName, boolean oldValue,
    +			boolean newValue)
    +	{
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxLine.java b/java/src/com/mxgraph/util/mxLine.java
    new file mode 100644
    index 000000000..ff391e206
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxLine.java
    @@ -0,0 +1,101 @@
    +/**
    + * $Id: mxLine.java,v 1.8 2011-01-25 13:13:34 david Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.util;
    +
    +import java.awt.geom.Line2D;
    +
    +/**
    + * Implements a line with double precision coordinates.
    + */
    +
    +public class mxLine extends mxPoint
    +{
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -4730972599169158546L;
    +	/**
    +	 * The end point of the line
    +	 */
    +	protected mxPoint endPoint;
    +
    +	/**
    +	 * Creates a new line
    +	 */
    +	public mxLine(mxPoint startPt, mxPoint endPt)
    +	{
    +		this.setX(startPt.getX());
    +		this.setY(startPt.getY());
    +		this.endPoint = endPt;
    +	}
    +	
    +	/**
    +	 * Creates a new line
    +	 */
    +	public mxLine(double startPtX, double startPtY, mxPoint endPt)
    +	{
    +		x = startPtX;
    +		y = startPtY;
    +		this.endPoint = endPt;
    +	}
    +
    +	/**
    +	 * Returns the end point of the line.
    +	 * 
    +	 * @return Returns the end point of the line.
    +	 */
    +	public mxPoint getEndPoint()
    +	{
    +		return this.endPoint;
    +	}
    +
    +	/**
    +	 * Sets the end point of the rectangle.
    +	 * 
    +	 * @param value The new end point of the line
    +	 */
    +	public void setEndPoint(mxPoint value)
    +	{
    +		this.endPoint = value;
    +	}
    +
    +	/**
    +	 * Sets the start and end points.
    +	 */
    +	public void setPoints(mxPoint startPt, mxPoint endPt)
    +	{
    +		this.setX(startPt.getX());
    +		this.setY(startPt.getY());
    +		this.endPoint = endPt;
    +	}
    +	
    +	/**
    +	 * Returns the square of the shortest distance from a point to this line.
    +	 * The line is considered extrapolated infinitely in both directions for 
    +	 * the purposes of the calculation.
    +	 *
    +	 * @param pt the point whose distance is being measured
    +	 * @return the square of the distance from the specified point to this line.
    +	 */
    +	public double ptLineDistSq(mxPoint pt)
    +	{
    +		return new Line2D.Double(getX(), getY(), endPoint.getX(), endPoint
    +				.getY()).ptLineDistSq(pt.getX(), pt.getY());
    +	}
    +
    +	/**
    +	 * Returns the square of the shortest distance from a point to this 
    +	 * line segment.
    +	 *
    +	 * @param pt the point whose distance is being measured
    +	 * @return the square of the distance from the specified point to this segment.
    +	 */
    +	public double ptSegDistSq(mxPoint pt)
    +	{
    +		return new Line2D.Double(getX(), getY(), endPoint.getX(), endPoint
    +				.getY()).ptSegDistSq(pt.getX(), pt.getY());
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxPoint.java b/java/src/com/mxgraph/util/mxPoint.java
    new file mode 100644
    index 000000000..e46b5a2d6
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxPoint.java
    @@ -0,0 +1,164 @@
    +/**
    + * $Id: mxPoint.java,v 1.8 2010-10-26 11:05:09 david Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.util;
    +
    +import java.awt.Point;
    +import java.awt.geom.Point2D;
    +import java.io.Serializable;
    +
    +/**
    + * Implements a 2-dimensional point with double precision coordinates.
    + */
    +public class mxPoint implements Serializable, Cloneable
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 6554231393215892186L;
    +
    +	/**
    +	 * Holds the x- and y-coordinates of the point. Default is 0.
    +	 */
    +	protected double x, y;
    +
    +	/**
    +	 * Constructs a new point at (0, 0).
    +	 */
    +	public mxPoint()
    +	{
    +		this(0, 0);
    +	}
    +
    +	/**
    +	 * Constructs a new point at the location of the given point.
    +	 * 
    +	 * @param point Point that specifies the location.
    +	 */
    +	public mxPoint(Point2D point)
    +	{
    +		this(point.getX(), point.getY());
    +	}
    +
    +	/**
    +	 * Constructs a new point at the location of the given point.
    +	 * 
    +	 * @param point Point that specifies the location.
    +	 */
    +	public mxPoint(mxPoint point)
    +	{
    +		this(point.getX(), point.getY());
    +	}
    +
    +	/**
    +	 * Constructs a new point at (x, y).
    +	 * 
    +	 * @param x X-coordinate of the point to be created.
    +	 * @param y Y-coordinate of the point to be created.
    +	 */
    +	public mxPoint(double x, double y)
    +	{
    +		setX(x);
    +		setY(y);
    +	}
    +
    +	/**
    +	 * Returns the x-coordinate of the point.
    +	 * 
    +	 * @return Returns the x-coordinate.
    +	 */
    +	public double getX()
    +	{
    +		return x;
    +	}
    +
    +	/**
    +	 * Sets the x-coordinate of the point.
    +	 * 
    +	 * @param value Double that specifies the new x-coordinate.
    +	 */
    +	public void setX(double value)
    +	{
    +		x = value;
    +	}
    +
    +	/**
    +	 * Returns the x-coordinate of the point.
    +	 * 
    +	 * @return Returns the x-coordinate.
    +	 */
    +	public double getY()
    +	{
    +		return y;
    +	}
    +
    +	/**
    +	 * Sets the x-coordinate of the point.
    +	 * 
    +	 * @param value Double that specifies the new x-coordinate.
    +	 */
    +	public void setY(double value)
    +	{
    +		y = value;
    +	}
    +
    +	/**
    +	 * Returns the coordinates as a new point.
    +	 * 
    +	 * @return Returns a new point for the location.
    +	 */
    +	public Point getPoint()
    +	{
    +		return new Point((int) Math.round(x), (int) Math.round(y));
    +	}
    +
    +	/**
    +	 * 
    +	 * Returns true if the given object equals this rectangle.
    +	 */
    +	public boolean equals(Object obj)
    +	{
    +		if (obj instanceof mxPoint)
    +		{
    +			mxPoint pt = (mxPoint) obj;
    +
    +			return pt.getX() == getX() && pt.getY() == getY();
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns a new instance of the same point.
    +	 */
    +	public Object clone()
    +	{
    +		mxPoint clone;
    +
    +		try
    +		{
    +			clone = (mxPoint) super.clone();
    +		}
    +		catch (CloneNotSupportedException e)
    +		{
    +			clone = new mxPoint();
    +		}
    +
    +		clone.setX(getX());
    +		clone.setY(getY());
    +
    +		return clone;
    +	}
    +
    +	/**
    +	 * Returns a <code>String</code> that represents the value
    +	 * of this <code>mxPoint</code>.
    +	 * @return a string representation of this <code>mxPoint</code>.
    +	 */
    +	public String toString()
    +	{
    +		return getClass().getName() + "[" + x + ", " + y + "]";
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/mxRectangle.java b/java/src/com/mxgraph/util/mxRectangle.java
    new file mode 100644
    index 000000000..79587ee05
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxRectangle.java
    @@ -0,0 +1,287 @@
    +/**
    + * $Id: mxRectangle.java,v 1.14 2010-12-08 12:46:03 gaudenz Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.util;
    +
    +import java.awt.Rectangle;
    +import java.awt.geom.Rectangle2D;
    +
    +/**
    + * Implements a 2-dimensional rectangle with double precision coordinates.
    + */
    +public class mxRectangle extends mxPoint
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -3793966043543578946L;
    +
    +	/**
    +	 * Holds the width and the height. Default is 0.
    +	 */
    +	protected double width, height;
    +
    +	/**
    +	 * Constructs a new rectangle at (0, 0) with the width and height set to 0.
    +	 */
    +	public mxRectangle()
    +	{
    +		this(0, 0, 0, 0);
    +	}
    +
    +	/**
    +	 * Constructs a copy of the given rectangle.
    +	 * 
    +	 * @param rect Rectangle to construct a copy of.
    +	 */
    +	public mxRectangle(Rectangle2D rect)
    +	{
    +		this(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight());
    +	}
    +
    +	/**
    +	 * Constructs a copy of the given rectangle.
    +	 * 
    +	 * @param rect Rectangle to construct a copy of.
    +	 */
    +	public mxRectangle(mxRectangle rect)
    +	{
    +		this(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight());
    +	}
    +
    +	/**
    +	 * Constructs a rectangle using the given parameters.
    +	 * 
    +	 * @param x X-coordinate of the new rectangle.
    +	 * @param y Y-coordinate of the new rectangle.
    +	 * @param width Width of the new rectangle.
    +	 * @param height Height of the new rectangle.
    +	 */
    +	public mxRectangle(double x, double y, double width, double height)
    +	{
    +		super(x, y);
    +
    +		setWidth(width);
    +		setHeight(height);
    +	}
    +
    +	/**
    +	 * Returns the width of the rectangle.
    +	 * 
    +	 * @return Returns the width.
    +	 */
    +	public double getWidth()
    +	{
    +		return width;
    +	}
    +
    +	/**
    +	 * Sets the width of the rectangle.
    +	 * 
    +	 * @param value Double that specifies the new width.
    +	 */
    +	public void setWidth(double value)
    +	{
    +		width = value;
    +	}
    +
    +	/**
    +	 * Returns the height of the rectangle.
    +	 * 
    +	 * @return Returns the height.
    +	 */
    +	public double getHeight()
    +	{
    +		return height;
    +	}
    +
    +	/**
    +	 * Sets the height of the rectangle.
    +	 * 
    +	 * @param value Double that specifies the new height.
    +	 */
    +	public void setHeight(double value)
    +	{
    +		height = value;
    +	}
    +
    +	/**
    +	 * Sets this rectangle to the specified values
    +	 * 
    +	 * @param x the new x-axis position
    +	 * @param y the new y-axis position
    +	 * @param w the new width of the rectangle
    +	 * @param h the new height of the rectangle
    +	 */
    +	public void setRect(double x, double y, double w, double h)
    +	{
    +	    this.x = x;
    +	    this.y = y;
    +	    this.width = w;
    +	    this.height = h;
    +	}
    +
    +	/**
    +	 * Adds the given rectangle to this rectangle.
    +	 */
    +	public void add(mxRectangle rect)
    +	{
    +		if (rect != null)
    +		{
    +			double minX = Math.min(x, rect.x);
    +			double minY = Math.min(y, rect.y);
    +			double maxX = Math.max(x + width, rect.x + rect.width);
    +			double maxY = Math.max(y + height, rect.y + rect.height);
    +
    +			x = minX;
    +			y = minY;
    +			width = maxX - minX;
    +			height = maxY - minY;
    +		}
    +	}
    +
    +	/**
    +	 * Returns the x-coordinate of the center.
    +	 * 
    +	 * @return Returns the x-coordinate of the center.
    +	 */
    +	public double getCenterX()
    +	{
    +		return getX() + getWidth() / 2;
    +	}
    +
    +	/**
    +	 * Returns the y-coordinate of the center.
    +	 * 
    +	 * @return Returns the y-coordinate of the center.
    +	 */
    +	public double getCenterY()
    +	{
    +		return getY() + getHeight() / 2;
    +	}
    +
    +	/**
    +	 * Grows the rectangle by the given amount, that is, this method subtracts
    +	 * the given amount from the x- and y-coordinates and adds twice the amount
    +	 * to the width and height.
    +	 *
    +	 * @param amount Amount by which the rectangle should be grown.
    +	 */
    +	public void grow(double amount)
    +	{
    +		x -= amount;
    +		y -= amount;
    +		width += 2 * amount;
    +		height += 2 * amount;
    +	}
    +
    +	/**
    +	 * Returns true if the given point is contained in the rectangle.
    +	 * 
    +	 * @param x X-coordinate of the point.
    +	 * @param y Y-coordinate of the point.
    +	 * @return Returns true if the point is contained in the rectangle.
    +	 */
    +	public boolean contains(double x, double y)
    +	{
    +		return (this.x <= x && this.x + width >= x && this.y <= y && this.y
    +				+ height >= y);
    +	}
    +
    +	/**
    +	 * Returns the point at which the specified point intersects the perimeter 
    +	 * of this rectangle or null if there is no intersection.
    +	 * 
    +	 * @param x0 the x co-ordinate of the first point of the line
    +	 * @param y0 the y co-ordinate of the first point of the line
    +	 * @param x1 the x co-ordinate of the second point of the line
    +	 * @param y1 the y co-ordinate of the second point of the line
    +	 * @return the point at which the line intersects this rectangle, or null
    +	 * 			if there is no intersection
    +	 */
    +	public mxPoint intersectLine(double x0, double y0, double x1, double y1)
    +	{
    +		mxPoint result = null;
    +
    +		result = mxUtils.intersection(x, y, x + width, y, x0, y0, x1, y1);
    +
    +		if (result == null)
    +		{
    +			result = mxUtils.intersection(x + width, y, x + width, y + height,
    +					x0, y0, x1, y1);
    +		}
    +
    +		if (result == null)
    +		{
    +			result = mxUtils.intersection(x + width, y + height, x, y + height,
    +					x0, y0, x1, y1);
    +		}
    +
    +		if (result == null)
    +		{
    +			result = mxUtils.intersection(x, y, x, y + height, x0, y0, x1, y1);
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the bounds as a new rectangle.
    +	 * 
    +	 * @return Returns a new rectangle for the bounds.
    +	 */
    +	public Rectangle getRectangle()
    +	{
    +		int ix = (int) Math.round(x);
    +		int iy = (int) Math.round(y);
    +		int iw = (int) Math.round(width - ix + x);
    +		int ih = (int) Math.round(height - iy + y);
    +
    +		return new Rectangle(ix, iy, iw, ih);
    +	}
    +
    +	/**
    +	 * 
    +	 * Returns true if the given object equals this rectangle.
    +	 */
    +	public boolean equals(Object obj)
    +	{
    +		if (obj instanceof mxRectangle)
    +		{
    +			mxRectangle rect = (mxRectangle) obj;
    +
    +			return rect.getX() == getX() && rect.getY() == getY()
    +					&& rect.getWidth() == getWidth()
    +					&& rect.getHeight() == getHeight();
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns a new instance of the same rectangle.
    +	 */
    +	public Object clone()
    +	{
    +		mxRectangle clone = (mxRectangle) super.clone();
    +
    +		clone.setWidth(getWidth());
    +		clone.setHeight(getHeight());
    +
    +		return clone;
    +	}
    +
    +	/**
    +	 * Returns the <code>String</code> representation of this
    +	 * <code>mxRectangle</code>.
    +	 * @return a <code>String</code> representing this
    +	 * <code>mxRectangle</code>.
    +	 */
    +	public String toString()
    +	{
    +		return getClass().getName() + "[x=" + x + ",y=" + y + ",w=" + width
    +				+ ",h=" + height + "]";
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/mxResources.java b/java/src/com/mxgraph/util/mxResources.java
    new file mode 100644
    index 000000000..35a5d03e6
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxResources.java
    @@ -0,0 +1,169 @@
    +/**
    + * $Id: mxResources.java,v 1.6 2010-11-09 16:10:31 gaudenz Exp $
    + * Copyright (c) 2010, Gaudenz Alder
    + */
    +package com.mxgraph.util;
    +
    +import java.util.Iterator;
    +import java.util.LinkedList;
    +import java.util.Locale;
    +import java.util.MissingResourceException;
    +import java.util.PropertyResourceBundle;
    +import java.util.ResourceBundle;
    +
    +public class mxResources
    +{
    +
    +	/**
    +	 * Ordered list of the inserted resource bundles.
    +	 */
    +	protected static LinkedList<ResourceBundle> bundles = new LinkedList<ResourceBundle>();
    +
    +	/**
    +	 * Returns the bundles.
    +	 * 
    +	 * @return Returns the bundles.
    +	 */
    +	public static LinkedList<ResourceBundle> getBundles()
    +	{
    +		return bundles;
    +	}
    +
    +	/**
    +	 * Sets the bundles.
    +	 * 
    +	 * @param value
    +	 *            The bundles to set.
    +	 */
    +	public static void setBundles(LinkedList<ResourceBundle> value)
    +	{
    +		bundles = value;
    +	}
    +
    +	/**
    +	 * Adds a resource bundle. This may throw a MissingResourceException that
    +	 * should be handled in the calling code.
    +	 * 
    +	 * @param basename
    +	 *            The basename of the resource bundle to add.
    +	 */
    +	public static void add(String basename)
    +	{
    +		bundles.addFirst(PropertyResourceBundle.getBundle(basename));
    +	}
    +	
    +	/**
    +	 * Adds a resource bundle. This may throw a MissingResourceException that
    +	 * should be handled in the calling code.
    +	 * 
    +	 * @param basename
    +	 *            The basename of the resource bundle to add.
    +	 */
    +	public static void add(String basename, Locale locale)
    +	{
    +		bundles.addFirst(PropertyResourceBundle.getBundle(basename, locale));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static String get(String key)
    +	{
    +		return get(key, null, null);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static String get(String key, String defaultValue)
    +	{
    +		return get(key, null, defaultValue);
    +	}
    +
    +	/**
    +	 * Returns the value for the specified resource key.
    +	 */
    +	public static String get(String key, String[] params)
    +	{
    +		return get(key, params, null);
    +	}
    +
    +	/**
    +	 * Returns the value for the specified resource key.
    +	 */
    +	public static String get(String key, String[] params, String defaultValue)
    +	{
    +		String value = getResource(key);
    +
    +		// Applies default value if required
    +		if (value == null)
    +		{
    +			value = defaultValue;
    +		}
    +
    +		// Replaces the placeholders with the values in the array
    +		if (value != null && params != null)
    +		{
    +			StringBuffer result = new StringBuffer();
    +			String index = null;
    +
    +			for (int i = 0; i < value.length(); i++)
    +			{
    +				char c = value.charAt(i);
    +
    +				if (c == '{')
    +				{
    +					index = "";
    +				}
    +				else if (index != null && c == '}')
    +				{
    +					int tmp = Integer.parseInt(index) - 1;
    +
    +					if (tmp >= 0 && tmp < params.length)
    +					{
    +						result.append(params[tmp]);
    +					}
    +
    +					index = null;
    +				}
    +				else if (index != null)
    +				{
    +					index += c;
    +				}
    +				else
    +				{
    +					result.append(c);
    +				}
    +			}
    +
    +			value = result.toString();
    +		}
    +
    +		return value;
    +	}
    +
    +	/**
    +	 * Returns the value for <code>key</code> by searching the resource
    +	 * bundles in inverse order or <code>null</code> if no value can be found
    +	 * for <code>key</code>.
    +	 */
    +	protected static String getResource(String key)
    +	{
    +		Iterator<ResourceBundle> it = bundles.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			try
    +			{
    +				return it.next().getString(key);
    +			}
    +			catch (MissingResourceException mrex)
    +			{
    +				// continue
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxSpline.java b/java/src/com/mxgraph/util/mxSpline.java
    new file mode 100644
    index 000000000..e4bf42921
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxSpline.java
    @@ -0,0 +1,153 @@
    +/**
    + * $Id: mxSpline.java,v 1.4 2010-12-15 10:01:21 david Exp $
    + * Copyright (c) 2010, David Benson
    + */
    +package com.mxgraph.util;
    +
    +import java.util.List;
    +
    +public class mxSpline
    +{
    +	/** 
    +	 *	Array representing the relative proportion of the total distance
    +	 *	of each point in the line ( i.e. first point is 0.0, end point is
    +	 *	1.0, a point halfway on line is 0.5 ).
    +	 */
    +	private double[] t;
    +
    +	private mxSpline1D splineX;
    +
    +	private mxSpline1D splineY;
    +
    +	/**
    +	 * Total length tracing the points on the spline
    +	 */
    +	private double length;
    +
    +	public mxSpline(List<mxPoint> points)
    +	{
    +		if (points != null)
    +		{
    +			double[] x = new double[points.size()];
    +			double[] y = new double[points.size()];
    +			int i = 0;
    +
    +			for (mxPoint point : points)
    +			{
    +				x[i] = point.getX();
    +				y[i++] = point.getY();
    +			}
    +
    +			init(x, y);
    +		}
    +	}
    +
    +	/**
    +	 * Creates a new mxSpline.
    +	 * @param x
    +	 * @param y
    +	 */
    +	public void Spline2D(double[] x, double[] y)
    +	{
    +		init(x, y);
    +	}
    +
    +	protected void init(double[] x, double[] y)
    +	{
    +		if (x.length != y.length)
    +		{
    +			// Arrays must have the same length
    +			// TODO log something
    +			return;
    +		}
    +
    +		if (x.length < 2)
    +		{
    +			// Spline edges must have at least two points
    +			// TODO log something
    +			return;
    +		}
    +
    +		t = new double[x.length];
    +		t[0] = 0.0; // start point is always 0.0
    +		length = 0.0;
    +
    +		// Calculate the partial proportions of each section between each set
    +		// of points and the total length of sum of all sections
    +		for (int i = 1; i < t.length; i++)
    +		{
    +			double lx = x[i] - x[i - 1];
    +			double ly = y[i] - y[i - 1];
    +
    +			// If either diff is zero there is no point performing the square root
    +			if (0.0 == lx)
    +			{
    +				t[i] = Math.abs(ly);
    +			}
    +			else if (0.0 == ly)
    +			{
    +				t[i] = Math.abs(lx);
    +			}
    +			else
    +			{
    +				t[i] = Math.sqrt(lx * lx + ly * ly);
    +			}
    +
    +			length += t[i];
    +			t[i] += t[i - 1];
    +		}
    +
    +		for (int j = 1; j < (t.length) - 1; j++)
    +		{
    +			t[j] = t[j] / length;
    +		}
    +
    +		t[(t.length) - 1] = 1.0; // end point is always 1.0
    +
    +		splineX = new mxSpline1D(t, x);
    +		splineY = new mxSpline1D(t, y);
    +	}
    +
    +	/**
    +	 * @param t 0 <= t <= 1
    +	 */
    +	public mxPoint getPoint(double t)
    +	{
    +		mxPoint result = new mxPoint(splineX.getValue(t), splineY.getValue(t));
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Used to check the correctness of this spline
    +	 */
    +	public boolean checkValues()
    +	{
    +		return (splineX.len.length > 1 && splineY.len.length > 1);
    +	}
    +
    +	public double getDx(double t)
    +	{
    +		return splineX.getDx(t);
    +	}
    +
    +	public double getDy(double t)
    +	{
    +		return splineY.getDx(t);
    +	}
    +
    +	public mxSpline1D getSplineX()
    +	{
    +		return splineX;
    +	}
    +
    +	public mxSpline1D getSplineY()
    +	{
    +		return splineY;
    +	}
    +
    +	public double getLength()
    +	{
    +		return length;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/mxSpline1D.java b/java/src/com/mxgraph/util/mxSpline1D.java
    new file mode 100644
    index 000000000..65c919b5c
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxSpline1D.java
    @@ -0,0 +1,250 @@
    +/**
    + * $Id: mxSpline1D.java,v 1.4 2011-12-05 17:22:09 david Exp $
    + * Copyright (c) 2010, David Benson
    + */
    +package com.mxgraph.util;
    +
    +import java.util.Arrays;
    +
    +/**
    + * One dimension of a spline curve
    + */
    +public class mxSpline1D
    +{
    +	protected double[] len;
    +	protected double[] pos1D;
    +
    +	protected double[] a;
    +	protected double[] b;
    +	protected double[] c;
    +	protected double[] d;
    +
    +	/** tracks the last index found since that is mostly commonly the next one used */
    +	private int storageIndex = 0;
    +	
    +	/**
    +	 * Creates a new Spline.
    +	 * @param controlPointProportions the proportion along the curve, from 0->1
    +	 * 			that each control point lies on
    +	 * @param positions1D the co-ordinate position in the current dimension that
    +	 * 			each control point lies on
    +	 */
    +	public mxSpline1D(double[] controlPointProportions, double[] positions1D)
    +	{
    +		setValues(controlPointProportions, positions1D);
    +	}
    +
    +	/**
    +	 * Set values for this Spline.
    +	 * @param controlPointProportions the proportion along the curve, from 0->1
    +	 * 			that each control point lies on
    +	 * @param positions1D the co-ordinate position in the current dimension that
    +	 * 			each control point lies on
    +	 */
    +	public void setValues(double[] controlPointProportions, double[] positions1D)
    +	{
    +		this.len = controlPointProportions;
    +		this.pos1D = positions1D;
    +		
    +		if (len.length > 1)
    +		{
    +			calculateCoefficients();
    +		}
    +	}
    +
    +	/**
    +	 * Returns an interpolated value.
    +	 * @param x
    +	 * @return the interpolated value
    +	 */
    +	public double getValue(double x)
    +	{
    +		if (len.length == 0)
    +		{
    +			return Double.NaN;
    +		}
    +
    +		if (len.length == 1)
    +		{
    +			if (len[0] == x)
    +			{
    +				return pos1D[0];
    +			}
    +			else
    +			{
    +				return Double.NaN;
    +			}
    +		}
    +
    +		int index = Arrays.binarySearch(len, x);
    +		if (index > 0)
    +		{
    +			return pos1D[index];
    +		}
    +
    +		index = - (index + 1) - 1;
    +		//TODO linear interpolation or extrapolation
    +		if (index < 0) {
    +			return pos1D[0];
    +		}
    +
    +		return a[index]
    +			+ b[index] * (x - len[index])
    +			+ c[index] * Math.pow(x - len[index], 2)
    +			+ d[index] * Math.pow(x - len[index], 3);
    +	}
    +
    +	/**
    +	 * Returns an interpolated value. To be used when a long sequence of values
    +	 * are required in order, but ensure checkValues() is called beforehand to
    +	 * ensure the boundary checks from getValue() are made
    +	 * @param x
    +	 * @return the interpolated value
    +	 */
    +	public double getFastValue(double x)
    +	{
    +		// Fast check to see if previous index is still valid
    +		if (storageIndex > -1 && storageIndex < len.length-1 && x > len[storageIndex] && x < len[storageIndex + 1])
    +		{
    +
    +		}
    +		else
    +		{
    +			int index = Arrays.binarySearch(len, x);
    +			if (index > 0)
    +			{
    +				return pos1D[index];
    +			}
    +			index = - (index + 1) - 1;
    +			storageIndex = index;
    +		}
    +	
    +		//TODO linear interpolation or extrapolation
    +		if (storageIndex < 0)
    +		{
    +			return pos1D[0];
    +		}
    +		double value = x - len[storageIndex];
    +		return a[storageIndex]
    +					+ b[storageIndex] * value
    +					+ c[storageIndex] * (value * value)
    +					+ d[storageIndex] * (value * value * value);
    +	}
    +
    +	/**
    +	 * Returns the first derivation at x.
    +	 * @param x
    +	 * @return the first derivation at x
    +	 */
    +	public double getDx(double x)
    +	{
    +		if (len.length == 0 || len.length == 1)
    +		{
    +			return 0;
    +		}
    +
    +		int index = Arrays.binarySearch(len, x);
    +		if (index < 0)
    +		{
    +			index = - (index + 1) - 1;
    +		}
    +
    +		return b[index]
    +			+ 2 * c[index] * (x - len[index])
    +			+ 3 * d[index] * Math.pow(x - len[index], 2);
    +	}
    +
    +	/**
    +	 * Calculates the Spline coefficients.
    +	 */
    +	private void calculateCoefficients()
    +	{
    +		int N = pos1D.length;
    +		a = new double[N];
    +		b = new double[N];
    +		c = new double[N];
    +		d = new double[N];
    +		
    +		if (N == 2) {
    +			a[0] = pos1D[0];
    +			b[0] = pos1D[1] - pos1D[0];
    +			return;
    +		}
    +
    +		double[] h = new double[N - 1];
    +		
    +		for (int i = 0; i < N - 1; i++)
    +		{
    +			a[i] = pos1D[i];
    +			h[i] = len[i + 1] - len[i];
    +			
    +			// h[i] is used for division later, avoid a NaN
    +			if (h[i] == 0.0)
    +			{
    +				h[i] = 0.01;
    +			}
    +		}
    +		a[N - 1] = pos1D[N - 1];
    +
    +		double[][] A = new double[N - 2][N - 2];
    +		double[] y = new double[N - 2];
    +		for (int i = 0; i < N - 2; i++)
    +		{
    +			y[i] =
    +				3
    +					* ((pos1D[i + 2] - pos1D[i + 1]) / h[i
    +						+ 1]
    +						- (pos1D[i + 1] - pos1D[i]) / h[i]);
    +
    +			A[i][i] = 2 * (h[i] + h[i + 1]);
    +
    +			if (i > 0)
    +			{
    +				A[i][i - 1] = h[i];
    +			}
    +
    +			if (i < N - 3)
    +			{
    +				A[i][i + 1] = h[i + 1];
    +			}
    +		}
    +		
    +		solve(A, y);
    +
    +		for (int i = 0; i < N - 2; i++)
    +		{
    +			c[i + 1] = y[i];
    +			b[i] = (a[i + 1] - a[i]) / h[i] - (2 * c[i] + c[i + 1]) / 3 * h[i];
    +			d[i] = (c[i + 1] - c[i]) / (3 * h[i]);
    +		}
    +		
    +		b[N - 2] =
    +			(a[N - 1] - a[N - 2]) / h[N
    +				- 2]
    +				- (2 * c[N - 2] + c[N - 1]) / 3 * h[N
    +				- 2];
    +		
    +		d[N - 2] = (c[N - 1] - c[N - 2]) / (3 * h[N - 2]);
    +	}
    +
    +	/**
    +	 * Solves Ax=b and stores the solution in b.
    +	 */
    +	public void solve(double[][] A, double[] b) {
    +		int n = b.length;
    +		
    +		for (int i = 1; i < n; i++)
    +		{
    +			A[i][i - 1] = A[i][i - 1] / A[i - 1][i - 1];
    +			A[i][i] = A[i][i] - A[i - 1][i] * A[i][i - 1];
    +			b[i] = b[i] - A[i][i - 1] * b[i - 1];
    +		}
    +
    +		b[n - 1] = b[n - 1] / A[n - 1][n - 1];
    +		
    +		for (int i = b.length - 2; i >= 0; i--)
    +		{
    +			b[i] = (b[i] - A[i][i + 1] * b[i + 1]) / A[i][i];
    +		}
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/mxStyleUtils.java b/java/src/com/mxgraph/util/mxStyleUtils.java
    new file mode 100644
    index 000000000..a027e4ce2
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxStyleUtils.java
    @@ -0,0 +1,389 @@
    +/**
    + * $Id: mxStyleUtils.java,v 1.1 2012-01-13 12:26:15 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.util;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import com.mxgraph.model.mxIGraphModel;
    +
    +/**
    + * Contains various style helper methods for use with mxGraph.
    + */
    +public class mxStyleUtils
    +{
    +	/**
    +	 * Returns the stylename in a style of the form stylename[;key=value] or an
    +	 * empty string if the given style does not contain a stylename.
    +	 * 
    +	 * @param style
    +	 *            String of the form stylename[;key=value].
    +	 * @return Returns the stylename from the given formatted string.
    +	 */
    +	public static String getStylename(String style)
    +	{
    +		if (style != null)
    +		{
    +			String[] pairs = style.split(";");
    +			String stylename = pairs[0];
    +
    +			if (stylename.indexOf("=") < 0)
    +			{
    +				return stylename;
    +			}
    +		}
    +
    +		return "";
    +	}
    +
    +	/**
    +	 * Returns the stylenames in a style of the form stylename[;key=value] or an
    +	 * empty array if the given style does not contain any stylenames.
    +	 * 
    +	 * @param style
    +	 *            String of the form stylename[;stylename][;key=value].
    +	 * @return Returns the stylename from the given formatted string.
    +	 */
    +	public static String[] getStylenames(String style)
    +	{
    +		List<String> result = new ArrayList<String>();
    +
    +		if (style != null)
    +		{
    +			String[] pairs = style.split(";");
    +
    +			for (int i = 0; i < pairs.length; i++)
    +			{
    +				if (pairs[i].indexOf("=") < 0)
    +				{
    +					result.add(pairs[i]);
    +				}
    +			}
    +		}
    +
    +		return result.toArray(new String[result.size()]);
    +	}
    +
    +	/**
    +	 * Returns the index of the given stylename in the given style. This returns
    +	 * -1 if the given stylename does not occur (as a stylename) in the given
    +	 * style, otherwise it returns the index of the first character.
    +	 */
    +	public static int indexOfStylename(String style, String stylename)
    +	{
    +		if (style != null && stylename != null)
    +		{
    +			String[] tokens = style.split(";");
    +			int pos = 0;
    +
    +			for (int i = 0; i < tokens.length; i++)
    +			{
    +				if (tokens[i].equals(stylename))
    +				{
    +					return pos;
    +				}
    +
    +				pos += tokens[i].length() + 1;
    +			}
    +		}
    +
    +		return -1;
    +	}
    +
    +	/**
    +	 * Adds the specified stylename to the given style if it does not already
    +	 * contain the stylename.
    +	 */
    +	public static String addStylename(String style, String stylename)
    +	{
    +		if (indexOfStylename(style, stylename) < 0)
    +		{
    +			if (style == null)
    +			{
    +				style = "";
    +			}
    +			else if (style.length() > 0
    +					&& style.charAt(style.length() - 1) != ';')
    +			{
    +				style += ';';
    +			}
    +
    +			style += stylename;
    +		}
    +
    +		return style;
    +	}
    +
    +	/**
    +	 * Removes all occurrences of the specified stylename in the given style and
    +	 * returns the updated style. Trailing semicolons are preserved.
    +	 */
    +	public static String removeStylename(String style, String stylename)
    +	{
    +		StringBuffer buffer = new StringBuffer();
    +
    +		if (style != null)
    +		{
    +			String[] tokens = style.split(";");
    +
    +			for (int i = 0; i < tokens.length; i++)
    +			{
    +				if (!tokens[i].equals(stylename))
    +				{
    +					buffer.append(tokens[i] + ";");
    +				}
    +			}
    +		}
    +
    +		return (buffer.length() > 1) ? buffer.substring(0, buffer.length() - 1)
    +				: buffer.toString();
    +	}
    +
    +	/**
    +	 * Removes all stylenames from the given style and returns the updated
    +	 * style.
    +	 */
    +	public static String removeAllStylenames(String style)
    +	{
    +		StringBuffer buffer = new StringBuffer();
    +
    +		if (style != null)
    +		{
    +			String[] tokens = style.split(";");
    +
    +			for (int i = 0; i < tokens.length; i++)
    +			{
    +				if (tokens[i].indexOf('=') >= 0)
    +				{
    +					buffer.append(tokens[i] + ";");
    +				}
    +			}
    +		}
    +
    +		return (buffer.length() > 1) ? buffer.substring(0, buffer.length() - 1)
    +				: buffer.toString();
    +	}
    +
    +	/**
    +	 * Assigns the value for the given key in the styles of the given cells, or
    +	 * removes the key from the styles if the value is null.
    +	 * 
    +	 * @param model
    +	 *            Model to execute the transaction in.
    +	 * @param cells
    +	 *            Array of cells to be updated.
    +	 * @param key
    +	 *            Key of the style to be changed.
    +	 * @param value
    +	 *            New value for the given key.
    +	 */
    +	public static void setCellStyles(mxIGraphModel model, Object[] cells,
    +			String key, String value)
    +	{
    +		if (cells != null && cells.length > 0)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (cells[i] != null)
    +					{
    +						String style = setStyle(model.getStyle(cells[i]), key,
    +								value);
    +						model.setStyle(cells[i], style);
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Adds or removes the given key, value pair to the style and returns the
    +	 * new style. If value is null or zero length then the key is removed from
    +	 * the style.
    +	 * 
    +	 * @param style
    +	 *            String of the form <code>stylename[;key=value]</code>.
    +	 * @param key
    +	 *            Key of the style to be changed.
    +	 * @param value
    +	 *            New value for the given key.
    +	 * @return Returns the new style.
    +	 */
    +	public static String setStyle(String style, String key, String value)
    +	{
    +		boolean isValue = value != null && value.length() > 0;
    +
    +		if (style == null || style.length() == 0)
    +		{
    +			if (isValue)
    +			{
    +				style = key + "=" + value;
    +			}
    +		}
    +		else
    +		{
    +			int index = style.indexOf(key + "=");
    +
    +			if (index < 0)
    +			{
    +				if (isValue)
    +				{
    +					String sep = (style.endsWith(";")) ? "" : ";";
    +					style = style + sep + key + '=' + value;
    +				}
    +			}
    +			else
    +			{
    +				String tmp = (isValue) ? key + "=" + value : "";
    +				int cont = style.indexOf(";", index);
    +
    +				if (!isValue)
    +				{
    +					cont++;
    +				}
    +
    +				style = style.substring(0, index) + tmp
    +						+ ((cont > index) ? style.substring(cont) : "");
    +			}
    +		}
    +
    +		return style;
    +	}
    +
    +	/**
    +	 * Sets or toggles the flag bit for the given key in the cell's styles. If
    +	 * value is null then the flag is toggled.
    +	 * 
    +	 * <code>
    +	 * mxUtils.setCellStyleFlags(graph.getModel(),
    +	 * 			cells,
    +	 * 			mxConstants.STYLE_FONTSTYLE,
    +	 * 			mxConstants.FONT_BOLD, null);
    +	 * </code>
    +	 * 
    +	 * Toggles the bold font style.
    +	 * 
    +	 * @param model
    +	 *            Model that contains the cells.
    +	 * @param cells
    +	 *            Array of cells to change the style for.
    +	 * @param key
    +	 *            Key of the style to be changed.
    +	 * @param flag
    +	 *            Integer for the bit to be changed.
    +	 * @param value
    +	 *            Optional boolean value for the flag.
    +	 */
    +	public static void setCellStyleFlags(mxIGraphModel model, Object[] cells,
    +			String key, int flag, Boolean value)
    +	{
    +		if (cells != null && cells.length > 0)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (cells[i] != null)
    +					{
    +						String style = setStyleFlag(model.getStyle(cells[i]),
    +								key, flag, value);
    +						model.setStyle(cells[i], style);
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Sets or removes the given key from the specified style and returns the
    +	 * new style. If value is null then the flag is toggled.
    +	 * 
    +	 * @param style
    +	 *            String of the form stylename[;key=value].
    +	 * @param key
    +	 *            Key of the style to be changed.
    +	 * @param flag
    +	 *            Integer for the bit to be changed.
    +	 * @param value
    +	 *            Optional boolean value for the given flag.
    +	 */
    +	public static String setStyleFlag(String style, String key, int flag,
    +			Boolean value)
    +	{
    +		if (style == null || style.length() == 0)
    +		{
    +			if (value == null || value.booleanValue())
    +			{
    +				style = key + "=" + flag;
    +			}
    +			else
    +			{
    +				style = key + "=0";
    +			}
    +		}
    +		else
    +		{
    +			int index = style.indexOf(key + "=");
    +
    +			if (index < 0)
    +			{
    +				String sep = (style.endsWith(";")) ? "" : ";";
    +
    +				if (value == null || value.booleanValue())
    +				{
    +					style = style + sep + key + "=" + flag;
    +				}
    +				else
    +				{
    +					style = style + sep + key + "=0";
    +				}
    +			}
    +			else
    +			{
    +				int cont = style.indexOf(";", index);
    +				String tmp = "";
    +				int result = 0;
    +
    +				if (cont < 0)
    +				{
    +					tmp = style.substring(index + key.length() + 1);
    +				}
    +				else
    +				{
    +					tmp = style.substring(index + key.length() + 1, cont);
    +				}
    +
    +				if (value == null)
    +				{
    +					result = Integer.parseInt(tmp) ^ flag;
    +				}
    +				else if (value.booleanValue())
    +				{
    +					result = Integer.parseInt(tmp) | flag;
    +				}
    +				else
    +				{
    +					result = Integer.parseInt(tmp) & ~flag;
    +				}
    +
    +				style = style.substring(0, index) + key + "=" + result
    +						+ ((cont >= 0) ? style.substring(cont) : "");
    +			}
    +		}
    +
    +		return style;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/mxUndoManager.java b/java/src/com/mxgraph/util/mxUndoManager.java
    new file mode 100644
    index 000000000..169781c6d
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxUndoManager.java
    @@ -0,0 +1,164 @@
    +/**
    + * $Id: mxUndoManager.java,v 1.13 2010-08-02 14:17:34 david Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.util;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +/**
    + * Implements an undo history.
    + * 
    + * This class fires the following events:
    + * 
    + * mxEvent.CLEAR fires after clear was executed. The event has no properties.
    + * 
    + * mxEvent.UNDO fires afer a significant edit was undone in undo. The
    + * <code>edit</code> property contains the mxUndoableEdit that was undone.
    + * 
    + * mxEvent.REDO fires afer a significant edit was redone in redo. The
    + * <code>edit</code> property contains the mxUndoableEdit that was redone.
    + * 
    + * mxEvent.ADD fires after an undoable edit was added to the history. The
    + * <code>edit</code> property contains the mxUndoableEdit that was added.
    + */
    +public class mxUndoManager extends mxEventSource
    +{
    +
    +	/**
    +	 * Maximum command history size. 0 means unlimited history. Default is 100.
    +	 */
    +	protected int size;
    +
    +	/**
    +	 * List that contains the steps of the command history.
    +	 */
    +	protected List<mxUndoableEdit> history;
    +
    +	/**
    +	 * Index of the element to be added next.
    +	 */
    +	protected int indexOfNextAdd;
    +
    +	/**
    +	 * Constructs a new undo manager with a default history size.
    +	 */
    +	public mxUndoManager()
    +	{
    +		this(100);
    +	}
    +
    +	/**
    +	 * Constructs a new undo manager for the specified size.
    +	 */
    +	public mxUndoManager(int size)
    +	{
    +		this.size = size;
    +		clear();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isEmpty()
    +	{
    +		return history.isEmpty();
    +	}
    +
    +	/**
    +	 * Clears the command history.
    +	 */
    +	public void clear()
    +	{
    +		history = new ArrayList<mxUndoableEdit>(size);
    +		indexOfNextAdd = 0;
    +		fireEvent(new mxEventObject(mxEvent.CLEAR));
    +	}
    +
    +	/**
    +	 * Returns true if an undo is possible.
    +	 */
    +	public boolean canUndo()
    +	{
    +		return indexOfNextAdd > 0;
    +	}
    +
    +	/**
    +	 * Undoes the last change.
    +	 */
    +	public void undo()
    +	{
    +		while (indexOfNextAdd > 0)
    +		{
    +			mxUndoableEdit edit = history.get(--indexOfNextAdd);
    +			edit.undo();
    +
    +			if (edit.isSignificant())
    +			{
    +				fireEvent(new mxEventObject(mxEvent.UNDO, "edit", edit));
    +				break;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if a redo is possible.
    +	 */
    +	public boolean canRedo()
    +	{
    +		return indexOfNextAdd < history.size();
    +	}
    +
    +	/**
    +	 * Redoes the last change.
    +	 */
    +	public void redo()
    +	{
    +		int n = history.size();
    +
    +		while (indexOfNextAdd < n)
    +		{
    +			mxUndoableEdit edit = history.get(indexOfNextAdd++);
    +			edit.redo();
    +
    +			if (edit.isSignificant())
    +			{
    +				fireEvent(new mxEventObject(mxEvent.REDO, "edit", edit));
    +				break;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Method to be called to add new undoable edits to the history.
    +	 */
    +	public void undoableEditHappened(mxUndoableEdit undoableEdit)
    +	{
    +		trim();
    +
    +		if (size > 0 && size == history.size())
    +		{
    +			history.remove(0);
    +		}
    +
    +		history.add(undoableEdit);
    +		indexOfNextAdd = history.size();
    +		fireEvent(new mxEventObject(mxEvent.ADD, "edit", undoableEdit));
    +	}
    +
    +	/**
    +	 * Removes all pending steps after indexOfNextAdd from the history,
    +	 * invoking die on each edit. This is called from undoableEditHappened.
    +	 */
    +	protected void trim()
    +	{
    +		while (history.size() > indexOfNextAdd)
    +		{
    +			mxUndoableEdit edit = history
    +					.remove(indexOfNextAdd);
    +			edit.die();
    +		}
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxUndoableEdit.java b/java/src/com/mxgraph/util/mxUndoableEdit.java
    new file mode 100644
    index 000000000..cf929e232
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxUndoableEdit.java
    @@ -0,0 +1,185 @@
    +/**
    + * $Id: mxUndoableEdit.java,v 1.3 2010-08-02 13:50:27 david Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.util;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +/**
    + * Implements a 2-dimensional rectangle with double precision coordinates.
    + */
    +public class mxUndoableEdit
    +{
    +
    +	/**
    +	 * Defines the requirements for an undoable change.
    +	 */
    +	public interface mxUndoableChange
    +	{
    +
    +		/**
    +		 * Undoes or redoes the change depending on its undo state.
    +		 */
    +		void execute();
    +
    +	}
    +
    +	/**
    +	 * Holds the source of the undoable edit.
    +	 */
    +	protected Object source;
    +
    +	/**
    +	 * Holds the list of changes that make up this undoable edit.
    +	 */
    +	protected List<mxUndoableChange> changes = new ArrayList<mxUndoableChange>();
    +
    +	/**
    +	 * Specifies this undoable edit is significant. Default is true.
    +	 */
    +	protected boolean significant = true;
    +
    +	/**
    +	 * Specifies the state of the undoable edit.
    +	 */
    +	protected boolean undone, redone;
    +
    +	/**
    +	 * Constructs a new undoable edit for the given source.
    +	 */
    +	public mxUndoableEdit(Object source)
    +	{
    +		this(source, true);
    +	}
    +
    +	/**
    +	 * Constructs a new undoable edit for the given source.
    +	 */
    +	public mxUndoableEdit(Object source, boolean significant)
    +	{
    +		this.source = source;
    +		this.significant = significant;
    +	}
    +
    +	/**
    +	 * Hook to notify any listeners of the changes after an undo or redo
    +	 * has been carried out. This implementation is empty.
    +	 */
    +	public void dispatch()
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * Hook to free resources after the edit has been removed from the command
    +	 * history. This implementation is empty.
    +	 */
    +	public void die()
    +	{
    +		// empty
    +	}
    +
    +	/**
    +	 * @return the source
    +	 */
    +	public Object getSource()
    +	{
    +		return source;
    +	}
    +
    +	/**
    +	 * @return the changes
    +	 */
    +	public List<mxUndoableChange> getChanges()
    +	{
    +		return changes;
    +	}
    +
    +	/**
    +	 * @return the significant
    +	 */
    +	public boolean isSignificant()
    +	{
    +		return significant;
    +	}
    +
    +	/**
    +	 * @return the undone
    +	 */
    +	public boolean isUndone()
    +	{
    +		return undone;
    +	}
    +
    +	/**
    +	 * @return the redone
    +	 */
    +	public boolean isRedone()
    +	{
    +		return redone;
    +	}
    +
    +	/**
    +	 * Returns true if the this edit contains no changes.
    +	 */
    +	public boolean isEmpty()
    +	{
    +		return changes.isEmpty();
    +	}
    +
    +	/**
    +	 * Adds the specified change to this edit. The change is an object that is
    +	 * expected to either have an undo and redo, or an execute function.
    +	 */
    +	public void add(mxUndoableChange change)
    +	{
    +		changes.add(change);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void undo()
    +	{
    +		if (!undone)
    +		{
    +			int count = changes.size();
    +
    +			for (int i = count - 1; i >= 0; i--)
    +			{
    +				mxUndoableChange change = changes.get(i);
    +				change.execute();
    +			}
    +
    +			undone = true;
    +			redone = false;
    +		}
    +
    +		dispatch();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void redo()
    +	{
    +		if (!redone)
    +		{
    +			int count = changes.size();
    +
    +			for (int i = 0; i < count; i++)
    +			{
    +				mxUndoableChange change = changes.get(i);
    +				change.execute();
    +			}
    +
    +			undone = false;
    +			redone = true;
    +		}
    +
    +		dispatch();
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxUtils.java b/java/src/com/mxgraph/util/mxUtils.java
    new file mode 100644
    index 000000000..54b5d2893
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxUtils.java
    @@ -0,0 +1,2517 @@
    +/**
    + * $Id: mxUtils.java,v 1.123 2012-05-10 11:13:58 gaudenz Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.util;
    +
    +import java.awt.AlphaComposite;
    +import java.awt.Color;
    +import java.awt.Dimension;
    +import java.awt.Font;
    +import java.awt.FontMetrics;
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +import java.awt.Rectangle;
    +import java.awt.RenderingHints;
    +import java.awt.font.FontRenderContext;
    +import java.awt.geom.Line2D;
    +import java.awt.geom.Rectangle2D;
    +import java.awt.image.BufferedImage;
    +import java.awt.image.ImageObserver;
    +import java.io.BufferedReader;
    +import java.io.ByteArrayInputStream;
    +import java.io.FileInputStream;
    +import java.io.FileWriter;
    +import java.io.IOException;
    +import java.io.InputStreamReader;
    +import java.net.URL;
    +import java.security.MessageDigest;
    +import java.security.NoSuchAlgorithmException;
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.Collection;
    +import java.util.Comparator;
    +import java.util.Formatter;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.SortedSet;
    +import java.util.Stack;
    +import java.util.TreeSet;
    +
    +import javax.imageio.ImageIO;
    +import javax.swing.text.html.HTMLDocument;
    +import javax.xml.parsers.DocumentBuilder;
    +import javax.xml.parsers.DocumentBuilderFactory;
    +import javax.xml.xpath.XPath;
    +import javax.xml.xpath.XPathConstants;
    +import javax.xml.xpath.XPathExpressionException;
    +import javax.xml.xpath.XPathFactory;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Element;
    +import org.w3c.dom.NamedNodeMap;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.io.mxCodecRegistry;
    +import com.mxgraph.model.mxCellPath;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.view.mxCellState;
    +
    +/**
    + * Contains various helper methods for use with mxGraph.
    + */
    +public class mxUtils
    +{
    +
    +	/**
    +	 * True if the machine is a Mac.
    +	 */
    +	public static boolean IS_MAC = System.getProperty("os.name").toLowerCase()
    +			.indexOf("mac") >= 0;
    +
    +	/**
    +	 * Static Graphics used for Font Metrics.
    +	 */
    +	protected static transient Graphics fontGraphics;
    +
    +	// Creates a renderer for HTML markup (only possible in
    +	// non-headless environment)
    +	static
    +	{
    +		try
    +		{
    +			fontGraphics = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB)
    +					.getGraphics();
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * Returns the size for the given label. If isHtml is true then any HTML
    +	 * markup in the label is computed as HTML and all newlines inside the HTML
    +	 * body are converted into linebreaks.
    +	 */
    +	public static mxRectangle getLabelSize(String label,
    +			Map<String, Object> style, boolean isHtml, double scale)
    +	{
    +		return getLabelSize(label, style, isHtml, scale, 0);
    +	}
    +
    +	/**
    +	 * Returns the size for the given label. If isHtml is true then any HTML
    +	 * markup in the label is computed as HTML and all newlines inside the HTML
    +	 * body are converted into linebreaks.
    +	 */
    +	public static mxRectangle getLabelSize(String label,
    +			Map<String, Object> style, boolean isHtml, double scale,
    +			double htmlWrapWidth)
    +	{
    +		mxRectangle size;
    +
    +		if (isHtml)
    +		{
    +			size = getSizeForHtml(getBodyMarkup(label, true), style, scale,
    +					htmlWrapWidth);
    +		}
    +		else
    +		{
    +			size = getSizeForString(label, getFont(style), scale);
    +		}
    +
    +		return size;
    +	}
    +
    +	/**
    +	 * Returns the body part of the given HTML markup.
    +	 */
    +	public static String getBodyMarkup(String markup, boolean replaceLinefeeds)
    +	{
    +		String lowerCase = markup.toLowerCase();
    +		int bodyStart = lowerCase.indexOf("<body>");
    +
    +		if (bodyStart >= 0)
    +		{
    +			bodyStart += 7;
    +			int bodyEnd = lowerCase.lastIndexOf("</body>");
    +
    +			if (bodyEnd > bodyStart)
    +			{
    +				markup = markup.substring(bodyStart, bodyEnd).trim();
    +			}
    +		}
    +
    +		if (replaceLinefeeds)
    +		{
    +			markup = markup.replaceAll("\n", "<br>");
    +		}
    +
    +		return markup;
    +	}
    +
    +	/**
    +	 * Returns the paint bounds for the given label.
    +	 */
    +	public static mxRectangle getLabelPaintBounds(String label,
    +			Map<String, Object> style, boolean isHtml, mxPoint offset,
    +			mxRectangle vertexBounds, double scale)
    +	{
    +		double wrapWidth = 0;
    +
    +		if (isHtml
    +				&& vertexBounds != null
    +				&& mxUtils.getString(style, mxConstants.STYLE_WHITE_SPACE,
    +						"nowrap").equals("wrap"))
    +		{
    +			wrapWidth = vertexBounds.getWidth();
    +		}
    +
    +		mxRectangle size = mxUtils.getLabelSize(label, style, isHtml, scale,
    +				wrapWidth);
    +
    +		// Measures font with full scale and scales back
    +		size.setWidth(size.getWidth() / scale);
    +		size.setHeight(size.getHeight() / scale);
    +
    +		double x = offset.getX();
    +		double y = offset.getY();
    +		double width = 0;
    +		double height = 0;
    +
    +		if (vertexBounds != null)
    +		{
    +			x += vertexBounds.getX();
    +			y += vertexBounds.getY();
    +
    +			if (mxUtils.getString(style, mxConstants.STYLE_SHAPE, "").equals(
    +					mxConstants.SHAPE_SWIMLANE))
    +			{
    +				// Limits the label to the swimlane title
    +				boolean horizontal = mxUtils.isTrue(style,
    +						mxConstants.STYLE_HORIZONTAL, true);
    +				double start = mxUtils.getDouble(style,
    +						mxConstants.STYLE_STARTSIZE,
    +						mxConstants.DEFAULT_STARTSIZE)
    +						* scale;
    +
    +				if (horizontal)
    +				{
    +					width += vertexBounds.getWidth();
    +					height += start;
    +				}
    +				else
    +				{
    +					width += start;
    +					height += vertexBounds.getHeight();
    +				}
    +			}
    +			else
    +			{
    +				width += vertexBounds.getWidth();
    +				height += vertexBounds.getHeight();
    +			}
    +		}
    +
    +		return mxUtils.getScaledLabelBounds(x, y, size, width, height, style,
    +				scale);
    +	}
    +
    +	/**
    +	 * Returns the bounds for a label for the given location and size, taking
    +	 * into account the alignment and spacing in the specified style, as well as
    +	 * the width and height of the rectangle that contains the label. (For edge
    +	 * labels this width and height is 0.) The scale is used to scale the given
    +	 * size and the spacings in the specified style.
    +	 */
    +	public static mxRectangle getScaledLabelBounds(double x, double y,
    +			mxRectangle size, double outerWidth, double outerHeight,
    +			Map<String, Object> style, double scale)
    +	{
    +		double inset = mxConstants.LABEL_INSET * scale;
    +
    +		// Scales the size of the label
    +		// FIXME: Correct rounded font size and not-rounded scale
    +		double width = size.getWidth() * scale + 2 * inset;
    +		double height = size.getHeight() * scale + 2 * inset;
    +
    +		// Gets the global spacing and orientation
    +		boolean horizontal = isTrue(style, mxConstants.STYLE_HORIZONTAL, true);
    +		int spacing = (int) (getInt(style, mxConstants.STYLE_SPACING) * scale);
    +
    +		// Gets the alignment settings
    +		Object align = getString(style, mxConstants.STYLE_ALIGN,
    +				mxConstants.ALIGN_CENTER);
    +		Object valign = getString(style, mxConstants.STYLE_VERTICAL_ALIGN,
    +				mxConstants.ALIGN_MIDDLE);
    +
    +		// Gets the vertical spacing
    +		int top = (int) (getInt(style, mxConstants.STYLE_SPACING_TOP) * scale);
    +		int bottom = (int) (getInt(style, mxConstants.STYLE_SPACING_BOTTOM) * scale);
    +
    +		// Gets the horizontal spacing
    +		int left = (int) (getInt(style, mxConstants.STYLE_SPACING_LEFT) * scale);
    +		int right = (int) (getInt(style, mxConstants.STYLE_SPACING_RIGHT) * scale);
    +
    +		// Applies the orientation to the spacings and dimension
    +		if (!horizontal)
    +		{
    +			int tmp = top;
    +			top = right;
    +			right = bottom;
    +			bottom = left;
    +			left = tmp;
    +
    +			double tmp2 = width;
    +			width = height;
    +			height = tmp2;
    +		}
    +
    +		// Computes the position of the label for the horizontal alignment
    +		if ((horizontal && align.equals(mxConstants.ALIGN_CENTER))
    +				|| (!horizontal && valign.equals(mxConstants.ALIGN_MIDDLE)))
    +		{
    +			x += (outerWidth - width) / 2 + left - right;
    +		}
    +		else if ((horizontal && align.equals(mxConstants.ALIGN_RIGHT))
    +				|| (!horizontal && valign.equals(mxConstants.ALIGN_BOTTOM)))
    +		{
    +			x += outerWidth - width - spacing - right;
    +		}
    +		else
    +		{
    +			x += spacing + left;
    +		}
    +
    +		// Computes the position of the label for the vertical alignment
    +		if ((!horizontal && align.equals(mxConstants.ALIGN_CENTER))
    +				|| (horizontal && valign.equals(mxConstants.ALIGN_MIDDLE)))
    +		{
    +			y += (outerHeight - height) / 2 + top - bottom;
    +		}
    +		else if ((!horizontal && align.equals(mxConstants.ALIGN_LEFT))
    +				|| (horizontal && valign.equals(mxConstants.ALIGN_BOTTOM)))
    +		{
    +			y += outerHeight - height - spacing - bottom;
    +		}
    +		else
    +		{
    +			y += spacing + top;
    +		}
    +
    +		return new mxRectangle(x, y, width, height);
    +	}
    +
    +	/**
    +	 * Returns the font metrics of the static font graphics instance
    +	 * @param font The font whose metrics are to be returned
    +	 * @return the font metrics of the specified font
    +	 */
    +	public static FontMetrics getFontMetrics(Font font)
    +	{
    +		if (fontGraphics != null)
    +		{
    +			return fontGraphics.getFontMetrics(font);
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns an <mxRectangle> with the size (width and height in pixels) of
    +	 * the given string.
    +	 * 
    +	 * @param text
    +	 *            String whose size should be returned.
    +	 * @param font
    +	 *            Font to be used for the computation.
    +	 */
    +	public static mxRectangle getSizeForString(String text, Font font,
    +			double scale)
    +	{
    +		FontRenderContext frc = new FontRenderContext(null, false, false);
    +		font = font.deriveFont((float) (font.getSize2D() * scale));
    +		FontMetrics metrics = null;
    +
    +		if (fontGraphics != null)
    +		{
    +			metrics = fontGraphics.getFontMetrics(font);
    +		}
    +
    +		double lineHeight = mxConstants.LINESPACING;
    +
    +		if (metrics != null)
    +		{
    +			lineHeight += metrics.getHeight();
    +		}
    +		else
    +		{
    +			lineHeight += font.getSize2D() * 1.27;
    +		}
    +
    +		String[] lines = text.split("\n");
    +
    +		Rectangle2D boundingBox = null;
    +
    +		for (int i = 0; i < lines.length; i++)
    +		{
    +			Rectangle2D bounds = font.getStringBounds(lines[i], frc);
    +
    +			if (boundingBox == null)
    +			{
    +				boundingBox = bounds;
    +			}
    +			else
    +			{
    +				boundingBox.setFrame(0, 0,
    +						Math.max(boundingBox.getWidth(), bounds.getWidth()),
    +						boundingBox.getHeight() + lineHeight);
    +			}
    +		}
    +
    +		return new mxRectangle(boundingBox);
    +	}
    +
    +	/**
    +	 * Returns the specified text in lines that fit within the specified
    +	 * width when the specified font metrics are applied to the text
    +	 * @param text the text to wrap
    +	 * @param metrics the font metrics to calculate the text size for
    +	 * @param width the width that the text must fit within
    +	 * @return the input text split in lines that fit the specified width
    +	 */
    +	public static String[] wordWrap(String text, FontMetrics metrics,
    +			double width)
    +	{
    +		List<String> result = new ArrayList<String>();
    +		// First split the processing into lines already delimited by
    +		// newlines. We want the result to retain all newlines in position.
    +		String[] lines = text.split("\n");
    +
    +		for (int i = 0; i < lines.length; i++)
    +		{
    +			int lineWidth = 0; // the display width of the current line
    +			int charCount = 0; // keeps count of current position in the line
    +			StringBuilder currentLine = new StringBuilder();
    +
    +			// Split the words of the current line by spaces and tabs
    +			// The words are trimmed of tabs, space and newlines, therefore
    +			String[] words = lines[i].split("\\s+");
    +
    +			// Need to a form a stack of the words in reverse order
    +			// This is because if a word is split during the process 
    +			// the remainder of the word is added to the front of the 
    +			// stack and processed next
    +			Stack<String> wordStack = new Stack<String>();
    +
    +			for (int j = words.length - 1; j >= 0; j--)
    +			{
    +				wordStack.push(words[j]);
    +			}
    +
    +			while (!wordStack.isEmpty())
    +			{
    +				String word = wordStack.pop();
    +
    +				// Work out what whitespace exists before this word.
    +				// and add the width of the whitespace to the calculation
    +				int whitespaceCount = 0;
    +
    +				if (word.length() > 0)
    +				{
    +					// Concatenate any preceding whitespace to the
    +					// word and calculate the number of characters of that
    +					// whitespace
    +					char firstWordLetter = word.charAt(0);
    +					int letterIndex = lines[i].indexOf(firstWordLetter,
    +							charCount);
    +					String whitespace = lines[i].substring(charCount,
    +							letterIndex);
    +					whitespaceCount = whitespace.length();
    +					word = whitespace.concat(word);
    +				}
    +
    +				double wordLength;
    +
    +				// If the line width is zero, we are at the start of a newline
    +				// We don't proceed preceeding whitespace in the width
    +				// calculation
    +				if (lineWidth > 0)
    +				{
    +					wordLength = metrics.stringWidth(word);
    +				}
    +				else
    +				{
    +					wordLength = metrics.stringWidth(word.trim());
    +				}
    +
    +				// Does the width of line so far plus the width of the 
    +				// current word exceed the allowed width?
    +				if (lineWidth + wordLength > width)
    +				{
    +					if (lineWidth > 0)
    +					{
    +						// There is already at least one word on this line
    +						// and the current word takes the overall width over
    +						// the allowed width. Because there is something on
    +						// the line, complete the current line, reset the width
    +						// counter, create a new line and put the current word
    +						// back on the stack for processing in the next round
    +						result.add(currentLine.toString());
    +						currentLine = new StringBuilder();
    +						wordStack.push(word.trim());
    +						lineWidth = 0;
    +					}
    +					else if (mxConstants.SPLIT_WORDS)
    +					{
    +						// There are no words on the current line and the 
    +						// current word does not fit on it. Find the maximum
    +						// number of characters of this word that just fit
    +						// in the available width
    +						word = word.trim();
    +
    +						for (int j = 1; j <= word.length(); j++)
    +						{
    +							wordLength = metrics.stringWidth(word.substring(0,
    +									j));
    +
    +							if (lineWidth + wordLength > width)
    +							{
    +								// The last character took us over the allowed
    +								// width, deducted it unless there is only one
    +								// character, in which case we have to use it
    +								// since we can't split it...
    +								j = j > 1 ? j - 1 : j;
    +								String chars = word.substring(0, j);
    +								currentLine = currentLine.append(chars);
    +								// Return the unprocessed part of the word 
    +								// to the stack
    +								wordStack
    +										.push(word.substring(j, word.length()));
    +								result.add(currentLine.toString());
    +								currentLine = new StringBuilder();
    +								lineWidth = 0;
    +								// Increment char counter allowing for white 
    +								// space in the original word
    +								charCount = charCount + chars.length()
    +										+ whitespaceCount;
    +								break;
    +							}
    +						}
    +					}
    +					else
    +					{
    +						// There are no words on the current line, but
    +						// we are not splitting.
    +						word = word.trim();
    +						result.add(word);
    +						currentLine = new StringBuilder();
    +						lineWidth = 0;
    +						// Increment char counter allowing for white 
    +						// space in the original word
    +						charCount = word.length() + whitespaceCount;
    +					}
    +				}
    +				else
    +				{
    +					// The current word does not take the total line width
    +					// over the allowed width. Append the word, removing
    +					// preceeding whitespace if it is the first word in the
    +					// line.
    +					if (lineWidth > 0)
    +					{
    +						currentLine = currentLine.append(word);
    +					}
    +					else
    +					{
    +						currentLine = currentLine.append(word.trim());
    +					}
    +
    +					lineWidth += wordLength;
    +					charCount += word.length();
    +				}
    +			}
    +
    +			result.add(currentLine.toString());
    +		}
    +
    +		return result.toArray(new String[result.size()]);
    +	}
    +
    +	/**
    +	 * Returns an mxRectangle with the size (width and height in pixels) of the
    +	 * given HTML markup.
    +	 * 
    +	 * @param markup
    +	 *            HTML markup whose size should be returned.
    +	 */
    +	public static mxRectangle getSizeForHtml(String markup,
    +			Map<String, Object> style, double scale, double wrapWidth)
    +	{
    +		mxLightweightLabel textRenderer = mxLightweightLabel
    +				.getSharedInstance();
    +
    +		if (textRenderer != null)
    +		{
    +			// First run measures size with no wrapping
    +			textRenderer.setText(createHtmlDocument(style, markup));
    +			Dimension size = textRenderer.getPreferredSize();
    +
    +			// Second run measures size with wrapping if required.
    +			// Note that this is only required because max-width
    +			// is not supported and we can't get the width of an
    +			// inner HTML element (or is this possible?).
    +			if (wrapWidth > 0)
    +			{
    +				textRenderer.setText(createHtmlDocument(
    +						style,
    +						markup,
    +						1,
    +						(int) Math.ceil(wrapWidth * mxConstants.PX_PER_PIXEL
    +								- mxConstants.LABEL_INSET * scale)));
    +				Dimension size2 = textRenderer.getPreferredSize();
    +
    +				// Uses wrapped text size if any text was actually wrapped
    +				if (size2.width < size.width)
    +				{
    +					size = size2;
    +				}
    +			}
    +
    +			return new mxRectangle(0, 0, size.width * scale, size.height
    +					* scale);
    +		}
    +		else
    +		{
    +			return getSizeForString(markup, getFont(style), scale);
    +		}
    +	}
    +
    +	/**
    +	 * Function: arcToCurves
    +	 * 
    +	 * Converts the given arc to a series of curves.
    +	 */
    +	public static double[] arcToCurves(double x0, double y0, double r1,
    +			double r2, double angle, double largeArcFlag, double sweepFlag,
    +			double x, double y)
    +	{
    +		x -= x0;
    +		y -= y0;
    +
    +		if (r1 == 0 || r2 == 0)
    +		{
    +			return new double[0];
    +		}
    +
    +		double fS = sweepFlag;
    +		double psai = angle;
    +		r1 = Math.abs(r1);
    +		r2 = Math.abs(r2);
    +		double ctx = -x / 2;
    +		double cty = -y / 2;
    +		double cpsi = Math.cos(psai * Math.PI / 180);
    +		double spsi = Math.sin(psai * Math.PI / 180);
    +		double rxd = cpsi * ctx + spsi * cty;
    +		double ryd = -1 * spsi * ctx + cpsi * cty;
    +		double rxdd = rxd * rxd;
    +		double rydd = ryd * ryd;
    +		double r1x = r1 * r1;
    +		double r2y = r2 * r2;
    +		double lamda = rxdd / r1x + rydd / r2y;
    +		double sds;
    +
    +		if (lamda > 1)
    +		{
    +			r1 = Math.sqrt(lamda) * r1;
    +			r2 = Math.sqrt(lamda) * r2;
    +			sds = 0;
    +		}
    +		else
    +		{
    +			double seif = 1;
    +
    +			if (largeArcFlag == fS)
    +			{
    +				seif = -1;
    +			}
    +
    +			sds = seif
    +					* Math.sqrt((r1x * r2y - r1x * rydd - r2y * rxdd)
    +							/ (r1x * rydd + r2y * rxdd));
    +		}
    +
    +		double txd = sds * r1 * ryd / r2;
    +		double tyd = -1 * sds * r2 * rxd / r1;
    +		double tx = cpsi * txd - spsi * tyd + x / 2;
    +		double ty = spsi * txd + cpsi * tyd + y / 2;
    +		double rad = Math.atan2((ryd - tyd) / r2, (rxd - txd) / r1)
    +				- Math.atan2(0, 1);
    +		double s1 = (rad >= 0) ? rad : 2 * Math.PI + rad;
    +		rad = Math.atan2((-ryd - tyd) / r2, (-rxd - txd) / r1)
    +				- Math.atan2((ryd - tyd) / r2, (rxd - txd) / r1);
    +		double dr = (rad >= 0) ? rad : 2 * Math.PI + rad;
    +
    +		if (fS == 0 && dr > 0)
    +		{
    +			dr -= 2 * Math.PI;
    +		}
    +		else if (fS != 0 && dr < 0)
    +		{
    +			dr += 2 * Math.PI;
    +		}
    +
    +		double sse = dr * 2 / Math.PI;
    +		int seg = (int) Math.ceil(sse < 0 ? -1 * sse : sse);
    +		double segr = dr / seg;
    +		double t = 8 / 3 * Math.sin(segr / 4) * Math.sin(segr / 4)
    +				/ Math.sin(segr / 2);
    +		double cpsir1 = cpsi * r1;
    +		double cpsir2 = cpsi * r2;
    +		double spsir1 = spsi * r1;
    +		double spsir2 = spsi * r2;
    +		double mc = Math.cos(s1);
    +		double ms = Math.sin(s1);
    +		double x2 = -t * (cpsir1 * ms + spsir2 * mc);
    +		double y2 = -t * (spsir1 * ms - cpsir2 * mc);
    +		double x3 = 0;
    +		double y3 = 0;
    +
    +		double[] result = new double[seg * 6];
    +
    +		for (int n = 0; n < seg; ++n)
    +		{
    +			s1 += segr;
    +			mc = Math.cos(s1);
    +			ms = Math.sin(s1);
    +
    +			x3 = cpsir1 * mc - spsir2 * ms + tx;
    +			y3 = spsir1 * mc + cpsir2 * ms + ty;
    +			double dx = -t * (cpsir1 * ms + spsir2 * mc);
    +			double dy = -t * (spsir1 * ms - cpsir2 * mc);
    +
    +			// CurveTo updates x0, y0 so need to restore it
    +			int index = n * 6;
    +			result[index] = x2 + x0;
    +			result[index + 1] = y2 + y0;
    +			result[index + 2] = x3 - dx + x0;
    +			result[index + 3] = y3 - dy + y0;
    +			result[index + 4] = x3 + x0;
    +			result[index + 5] = y3 + y0;
    +
    +			x2 = x3 + dx;
    +			y2 = y3 + dy;
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the bounding box for the rotated rectangle.
    +	 */
    +	public static mxRectangle getBoundingBox(mxRectangle rect, double rotation)
    +	{
    +		mxRectangle result = null;
    +
    +		if (rect != null && rotation != 0)
    +		{
    +			double rad = Math.toRadians(rotation);
    +			double cos = Math.cos(rad);
    +			double sin = Math.sin(rad);
    +
    +			mxPoint cx = new mxPoint(rect.getX() + rect.getWidth() / 2,
    +					rect.getY() + rect.getHeight() / 2);
    +
    +			mxPoint p1 = new mxPoint(rect.getX(), rect.getY());
    +			mxPoint p2 = new mxPoint(rect.getX() + rect.getWidth(), rect.getY());
    +			mxPoint p3 = new mxPoint(p2.getX(), rect.getY() + rect.getHeight());
    +			mxPoint p4 = new mxPoint(rect.getX(), p3.getY());
    +
    +			p1 = getRotatedPoint(p1, cos, sin, cx);
    +			p2 = getRotatedPoint(p2, cos, sin, cx);
    +			p3 = getRotatedPoint(p3, cos, sin, cx);
    +			p4 = getRotatedPoint(p4, cos, sin, cx);
    +
    +			Rectangle tmp = new Rectangle((int) p1.getX(), (int) p1.getY(), 0,
    +					0);
    +			tmp.add(p2.getPoint());
    +			tmp.add(p3.getPoint());
    +			tmp.add(p4.getPoint());
    +
    +			result = new mxRectangle(tmp);
    +		}
    +		else if (rect != null)
    +		{
    +			result = (mxRectangle) rect.clone();
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Find the first character matching the input character in the given
    +	 * string where the character has no letter preceding it.
    +	 * 
    +	 * @param text the string to test for the presence of the input character
    +	 * @param inputChar the test character
    +	 * @param fromIndex the index position of the string to start from
    +	 * @return the position of the first character matching the input character
    +	 * 			in the given string where the character has no letter preceding it.
    +	 */
    +	public static int firstCharAt(String text, int inputChar, int fromIndex)
    +	{
    +		int result = 0;
    +
    +		while (result >= 0)
    +		{
    +			result = text.indexOf(inputChar, fromIndex);
    +
    +			if (result == 0)
    +			{
    +				return result;
    +			}
    +			else if (result > 0)
    +			{
    +				// Check there is a whitespace or symbol before the hit character
    +				if (Character.isLetter(text.codePointAt(result - 1)))
    +				{
    +					// The pre-increment is used in if and else branches.
    +					if (++fromIndex >= text.length())
    +					{
    +						return -1;
    +					}
    +					else
    +					{
    +						// Test again from next candidate character
    +						// This isn't the first letter of this word
    +						result = text.indexOf(inputChar, fromIndex);
    +					}
    +				}
    +				else
    +				{
    +					return result;
    +				}
    +			}
    +
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Rotates the given point by the given cos and sin.
    +	 */
    +	public static mxPoint getRotatedPoint(mxPoint pt, double cos, double sin)
    +	{
    +		return getRotatedPoint(pt, cos, sin, new mxPoint());
    +	}
    +
    +	/**
    +	 * Finds the index of the nearest segment on the given cell state for the
    +	 * specified coordinate pair.
    +	 */
    +	public static int findNearestSegment(mxCellState state, double x, double y)
    +	{
    +		int index = -1;
    +
    +		if (state.getAbsolutePointCount() > 0)
    +		{
    +			mxPoint last = state.getAbsolutePoint(0);
    +			double min = Double.MAX_VALUE;
    +
    +			for (int i = 1; i < state.getAbsolutePointCount(); i++)
    +			{
    +				mxPoint current = state.getAbsolutePoint(i);
    +				double dist = new Line2D.Double(last.x, last.y, current.x,
    +						current.y).ptSegDistSq(x, y);
    +
    +				if (dist < min)
    +				{
    +					min = dist;
    +					index = i - 1;
    +				}
    +
    +				last = current;
    +			}
    +		}
    +
    +		return index;
    +	}
    +
    +	/**
    +	 * Rotates the given point by the given cos and sin.
    +	 */
    +	public static mxPoint getRotatedPoint(mxPoint pt, double cos, double sin,
    +			mxPoint c)
    +	{
    +		double x = pt.getX() - c.getX();
    +		double y = pt.getY() - c.getY();
    +
    +		double x1 = x * cos - y * sin;
    +		double y1 = y * cos + x * sin;
    +
    +		return new mxPoint(x1 + c.getX(), y1 + c.getY());
    +	}
    +
    +	/**
    +	 * Returns an integer mask of the port constraints of the given map
    +	 * @param terminal the cached cell state of the cell to determine the
    +	 * 			port constraints for
    +	 * @param edge the edge connected to the constrained terminal
    +	 * @param source whether or not the edge specified is connected to the
    +	 * 			terminal specified at its source end
    +	 * @return the mask of port constraint directions
    +	 */
    +	public static int getPortConstraints(mxCellState terminal,
    +			mxCellState edge, boolean source)
    +	{
    +		return getPortConstraints(terminal, edge, source,
    +				mxConstants.DIRECTION_MASK_ALL);
    +	}
    +
    +	/**
    +	 * Returns an integer mask of the port constraints of the given map
    +	 * @param terminal the cached cell state of the cell to determine the
    +	 * 			port constraints for
    +	 * @param edge the edge connected to the constrained terminal
    +	 * @param source whether or not the edge specified is connected to the
    +	 * 			terminal specified at its source end
    +	 * @param defaultValue Default value to return if the key is undefined.
    +	 * @return the mask of port constraint directions
    +	 */
    +	public static int getPortConstraints(mxCellState terminal,
    +			mxCellState edge, boolean source, int defaultValue)
    +	{
    +		Object value = terminal.getStyle().get(
    +				mxConstants.STYLE_PORT_CONSTRAINT);
    +
    +		if (value == null)
    +		{
    +			return defaultValue;
    +		}
    +		else
    +		{
    +			String directions = value.toString();
    +			int returnValue = mxConstants.DIRECTION_MASK_NONE;
    +
    +			if (directions.indexOf(mxConstants.DIRECTION_NORTH) >= 0)
    +			{
    +				returnValue |= mxConstants.DIRECTION_MASK_NORTH;
    +			}
    +			if (directions.indexOf(mxConstants.DIRECTION_WEST) >= 0)
    +			{
    +				returnValue |= mxConstants.DIRECTION_MASK_WEST;
    +			}
    +			if (directions.indexOf(mxConstants.DIRECTION_SOUTH) >= 0)
    +			{
    +				returnValue |= mxConstants.DIRECTION_MASK_SOUTH;
    +			}
    +			if (directions.indexOf(mxConstants.DIRECTION_EAST) >= 0)
    +			{
    +				returnValue |= mxConstants.DIRECTION_MASK_EAST;
    +			}
    +
    +			return returnValue;
    +		}
    +	}
    +
    +	public static int reversePortConstraints(int constraint)
    +	{
    +		int result = 0;
    +
    +		result = (constraint & mxConstants.DIRECTION_MASK_WEST) << 3;
    +		result |= (constraint & mxConstants.DIRECTION_MASK_NORTH) << 1;
    +		result |= (constraint & mxConstants.DIRECTION_MASK_SOUTH) >> 1;
    +		result |= (constraint & mxConstants.DIRECTION_MASK_EAST) >> 3;
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Draws the image inside the clip bounds to the given graphics object.
    +	 */
    +	public static void drawImageClip(Graphics g, BufferedImage image,
    +			ImageObserver observer)
    +	{
    +		Rectangle clip = g.getClipBounds();
    +
    +		if (clip != null)
    +		{
    +			int w = image.getWidth();
    +			int h = image.getHeight();
    +
    +			int x = Math.max(0, Math.min(clip.x, w));
    +			int y = Math.max(0, Math.min(clip.y, h));
    +
    +			w = Math.min(clip.width, w - x);
    +			h = Math.min(clip.height, h - y);
    +
    +			if (w > 0 && h > 0)
    +			{
    +				// TODO: Support for normal images using fast subimage copies
    +				g.drawImage(image.getSubimage(x, y, w, h), clip.x, clip.y,
    +						observer);
    +			}
    +		}
    +		else
    +		{
    +			g.drawImage(image, 0, 0, observer);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static void fillClippedRect(Graphics g, int x, int y, int width,
    +			int height)
    +	{
    +		Rectangle bg = new Rectangle(x, y, width, height);
    +
    +		try
    +		{
    +			if (g.getClipBounds() != null)
    +			{
    +				bg = bg.intersection(g.getClipBounds());
    +			}
    +		}
    +		catch (Exception e)
    +		{
    +			// FIXME: Getting clipbounds sometimes throws an NPE
    +		}
    +
    +		g.fillRect(bg.x, bg.y, bg.width, bg.height);
    +	}
    +
    +	/**
    +	 * Creates a new list of new points obtained by translating the points in
    +	 * the given list by the given vector. Elements that are not mxPoints are
    +	 * added to the result as-is.
    +	 */
    +	public static List<mxPoint> translatePoints(List<mxPoint> pts, double dx,
    +			double dy)
    +	{
    +		List<mxPoint> result = null;
    +
    +		if (pts != null)
    +		{
    +			result = new ArrayList<mxPoint>(pts.size());
    +			Iterator<mxPoint> it = pts.iterator();
    +
    +			while (it.hasNext())
    +			{
    +				mxPoint point = (mxPoint) it.next().clone();
    +
    +				point.setX(point.getX() + dx);
    +				point.setY(point.getY() + dy);
    +
    +				result.add(point);
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the intersection of two lines as an mxPoint.
    +	 * 
    +	 * @param x0
    +	 *            X-coordinate of the first line's startpoint.
    +	 * @param y0
    +	 *            Y-coordinate of the first line's startpoint.
    +	 * @param x1
    +	 *            X-coordinate of the first line's endpoint.
    +	 * @param y1
    +	 *            Y-coordinate of the first line's endpoint.
    +	 * @param x2
    +	 *            X-coordinate of the second line's startpoint.
    +	 * @param y2
    +	 *            Y-coordinate of the second line's startpoint.
    +	 * @param x3
    +	 *            X-coordinate of the second line's endpoint.
    +	 * @param y3
    +	 *            Y-coordinate of the second line's endpoint.
    +	 * @return Returns the intersection between the two lines.
    +	 */
    +	public static mxPoint intersection(double x0, double y0, double x1,
    +			double y1, double x2, double y2, double x3, double y3)
    +	{
    +		double denom = ((y3 - y2) * (x1 - x0)) - ((x3 - x2) * (y1 - y0));
    +		double nume_a = ((x3 - x2) * (y0 - y2)) - ((y3 - y2) * (x0 - x2));
    +		double nume_b = ((x1 - x0) * (y0 - y2)) - ((y1 - y0) * (x0 - x2));
    +
    +		double ua = nume_a / denom;
    +		double ub = nume_b / denom;
    +
    +		if (ua >= 0.0 && ua <= 1.0 && ub >= 0.0 && ub <= 1.0)
    +		{
    +			// Get the intersection point
    +			double intersectionX = x0 + ua * (x1 - x0);
    +			double intersectionY = y0 + ua * (y1 - y0);
    +
    +			return new mxPoint(intersectionX, intersectionY);
    +		}
    +
    +		// No intersection
    +		return null;
    +	}
    +
    +	/**
    +	 * Sorts the given cells according to the order in the cell hierarchy.
    +	 */
    +	public static Object[] sortCells(Object[] cells, final boolean ascending)
    +	{
    +		return sortCells(Arrays.asList(cells), ascending).toArray();
    +	}
    +
    +	/**
    +	 * Sorts the given cells according to the order in the cell hierarchy.
    +	 */
    +	public static Collection<Object> sortCells(Collection<Object> cells,
    +			final boolean ascending)
    +	{
    +		SortedSet<Object> result = new TreeSet<Object>(new Comparator<Object>()
    +		{
    +			public int compare(Object o1, Object o2)
    +			{
    +				int comp = mxCellPath.compare(mxCellPath.create((mxICell) o1),
    +						mxCellPath.create((mxICell) o2));
    +
    +				return (comp == 0) ? 0 : (((comp > 0) == ascending) ? 1 : -1);
    +			}
    +		});
    +
    +		result.addAll(cells);
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns true if the given array contains the given object.
    +	 */
    +	public static boolean contains(Object[] array, Object obj)
    +	{
    +		return indexOf(array, obj) >= 0;
    +	}
    +
    +	/**
    +	 * Returns the index of the given object in the given array of -1 if the
    +	 * object is not contained in the array.
    +	 */
    +	public static int indexOf(Object[] array, Object obj)
    +	{
    +		if (obj != null && array != null)
    +		{
    +			for (int i = 0; i < array.length; i++)
    +			{
    +				if (array[i] == obj)
    +				{
    +					return i;
    +				}
    +			}
    +		}
    +
    +		return -1;
    +	}
    +
    +	/**
    +	 * Returns the stylename in a style of the form stylename[;key=value] or an
    +	 * empty string if the given style does not contain a stylename.
    +	 * 
    +	 * @param style
    +	 *            String of the form stylename[;key=value].
    +	 * @return Returns the stylename from the given formatted string.
    +	 * @deprecated Use <code>mxStyleUtils.getStylename(String)</code> (Jan 2012)
    +	 */
    +	public static String getStylename(String style)
    +	{
    +		return mxStyleUtils.getStylename(style);
    +	}
    +
    +	/**
    +	 * Returns the stylenames in a style of the form stylename[;key=value] or an
    +	 * empty array if the given style does not contain any stylenames.
    +	 * 
    +	 * @param style
    +	 *            String of the form stylename[;stylename][;key=value].
    +	 * @return Returns the stylename from the given formatted string.
    +	 * @deprecated Use <code>mxStyleUtils.getStylenames(String)</code> (Jan 2012)
    +	 */
    +	public static String[] getStylenames(String style)
    +	{
    +		return mxStyleUtils.getStylenames(style);
    +	}
    +
    +	/**
    +	 * Returns the index of the given stylename in the given style. This returns
    +	 * -1 if the given stylename does not occur (as a stylename) in the given
    +	 * style, otherwise it returns the index of the first character.
    +	 * @deprecated Use <code>mxStyleUtils.indexOfStylename(String, String)</code> (Jan 2012)
    +	 */
    +	public static int indexOfStylename(String style, String stylename)
    +	{
    +		return mxStyleUtils.indexOfStylename(style, stylename);
    +	}
    +
    +	/**
    +	 * Removes all stylenames from the given style and returns the updated
    +	 * style.
    +	 * @deprecated Use <code>mxStyleUtils.removeAllStylenames(String)</code> (Jan 2012)
    +	 */
    +	public static String removeAllStylenames(String style)
    +	{
    +		return mxStyleUtils.removeAllStylenames(style);
    +	}
    +
    +	/**
    +	 * Assigns the value for the given key in the styles of the given cells, or
    +	 * removes the key from the styles if the value is null.
    +	 * 
    +	 * @param model
    +	 *            Model to execute the transaction in.
    +	 * @param cells
    +	 *            Array of cells to be updated.
    +	 * @param key
    +	 *            Key of the style to be changed.
    +	 * @param value
    +	 *            New value for the given key.
    +	 * @deprecated Use <code>mxStyleUtils.setCellStyles(mxIGraphModel, Object[], String, String)</code> (Jan 2012)
    +	 */
    +	public static void setCellStyles(mxIGraphModel model, Object[] cells,
    +			String key, String value)
    +	{
    +		mxStyleUtils.setCellStyles(model, cells, key, value);
    +	}
    +
    +	/**
    +	 * Adds or removes the given key, value pair to the style and returns the
    +	 * new style. If value is null or zero length then the key is removed from
    +	 * the style.
    +	 * 
    +	 * @param style
    +	 *            String of the form <code>stylename[;key=value]</code>.
    +	 * @param key
    +	 *            Key of the style to be changed.
    +	 * @param value
    +	 *            New value for the given key.
    +	 * @return Returns the new style.
    +	 * @deprecated Use <code>mxStyleUtils.setStyle(String, String, String)</code> (Jan 2012)
    +	 */
    +	public static String setStyle(String style, String key, String value)
    +	{
    +		return mxStyleUtils.setStyle(style, key, value);
    +	}
    +
    +	/**
    +	 * Sets or toggles the flag bit for the given key in the cell's styles. If
    +	 * value is null then the flag is toggled.
    +	 * 
    +	 * <code>
    +	 * mxUtils.setCellStyleFlags(graph.getModel(),
    +	 * 			cells,
    +	 * 			mxConstants.STYLE_FONTSTYLE,
    +	 * 			mxConstants.FONT_BOLD, null);
    +	 * </code>
    +	 * 
    +	 * Toggles the bold font style.
    +	 * 
    +	 * @param model
    +	 *            Model that contains the cells.
    +	 * @param cells
    +	 *            Array of cells to change the style for.
    +	 * @param key
    +	 *            Key of the style to be changed.
    +	 * @param flag
    +	 *            Integer for the bit to be changed.
    +	 * @param value
    +	 *            Optional boolean value for the flag.
    +	 * @deprecated Use <code>mxStyleUtils.setCellStyleFlags(mxIGraphModel, Object[],String, int, Boolean)</code> (Jan 2012)
    +	 */
    +	public static void setCellStyleFlags(mxIGraphModel model, Object[] cells,
    +			String key, int flag, Boolean value)
    +	{
    +		mxStyleUtils.setCellStyleFlags(model, cells, key, flag, value);
    +	}
    +
    +	/**
    +	 * Sets or removes the given key from the specified style and returns the
    +	 * new style. If value is null then the flag is toggled.
    +	 * 
    +	 * @param style
    +	 *            String of the form stylename[;key=value].
    +	 * @param key
    +	 *            Key of the style to be changed.
    +	 * @param flag
    +	 *            Integer for the bit to be changed.
    +	 * @param value
    +	 *            Optional boolean value for the given flag.
    +	 * @deprecated Use <code>mxStyleUtils.setStyleFlag(String, String, int, Boolean)</code> (Jan 2012)
    +	 */
    +	public static String setStyleFlag(String style, String key, int flag,
    +			Boolean value)
    +	{
    +		return mxStyleUtils.setStyleFlag(style, key, flag, value);
    +	}
    +
    +	public static boolean intersectsHotspot(mxCellState state, int x, int y,
    +			double hotspot)
    +	{
    +		return intersectsHotspot(state, x, y, hotspot, 0, 0);
    +	}
    +
    +	/**
    +	 * Returns true if the given coordinate pair intersects the hotspot of the
    +	 * given state.
    +	 */
    +	public static boolean intersectsHotspot(mxCellState state, int x, int y,
    +			double hotspot, int min, int max)
    +	{
    +		if (hotspot > 0)
    +		{
    +			int cx = (int) Math.round(state.getCenterX());
    +			int cy = (int) Math.round(state.getCenterY());
    +			int width = (int) Math.round(state.getWidth());
    +			int height = (int) Math.round(state.getHeight());
    +
    +			if (mxUtils
    +					.getString(state.getStyle(), mxConstants.STYLE_SHAPE, "")
    +					.equals(mxConstants.SHAPE_SWIMLANE))
    +			{
    +				int start = mxUtils.getInt(state.getStyle(),
    +						mxConstants.STYLE_STARTSIZE,
    +						mxConstants.DEFAULT_STARTSIZE);
    +
    +				if (mxUtils.isTrue(state.getStyle(),
    +						mxConstants.STYLE_HORIZONTAL, true))
    +				{
    +					cy = (int) Math.round(state.getY() + start / 2);
    +					height = start;
    +				}
    +				else
    +				{
    +					cx = (int) Math.round(state.getX() + start / 2);
    +					width = start;
    +				}
    +			}
    +
    +			int w = (int) Math.max(min, width * hotspot);
    +			int h = (int) Math.max(min, height * hotspot);
    +
    +			if (max > 0)
    +			{
    +				w = Math.min(w, max);
    +				h = Math.min(h, max);
    +			}
    +
    +			Rectangle rect = new Rectangle(Math.round(cx - w / 2),
    +					Math.round(cy - h / 2), w, h);
    +
    +			return rect.contains(x, y);
    +		}
    +
    +		return true;
    +	}
    +
    +	/**
    +	 * Returns true if the dictionary contains true for the given key or false
    +	 * if no value is defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @return Returns the boolean value for key in dict.
    +	 */
    +	public static boolean isTrue(Map<String, Object> dict, String key)
    +	{
    +		return isTrue(dict, key, false);
    +	}
    +
    +	/**
    +	 * Returns true if the dictionary contains true for the given key or the
    +	 * given default value if no value is defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @param defaultValue
    +	 *            Default value to return if the key is undefined.
    +	 * @return Returns the boolean value for key in dict.
    +	 */
    +	public static boolean isTrue(Map<String, Object> dict, String key,
    +			boolean defaultValue)
    +	{
    +		Object value = dict.get(key);
    +
    +		if (value == null)
    +		{
    +			return defaultValue;
    +		}
    +		else
    +		{
    +			return value.equals("1")
    +					|| value.toString().toLowerCase().equals("true");
    +		}
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as an int or 0 if no value is
    +	 * defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @return Returns the integer value for key in dict.
    +	 */
    +	public static int getInt(Map<String, Object> dict, String key)
    +	{
    +		return getInt(dict, key, 0);
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as an int or the given default
    +	 * value if no value is defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @param defaultValue
    +	 *            Default value to return if the key is undefined.
    +	 * @return Returns the integer value for key in dict.
    +	 */
    +	public static int getInt(Map<String, Object> dict, String key,
    +			int defaultValue)
    +	{
    +		Object value = dict.get(key);
    +
    +		if (value == null)
    +		{
    +			return defaultValue;
    +		}
    +		else
    +		{
    +			// Handles commas by casting them to an int
    +			return (int) Float.parseFloat(value.toString());
    +		}
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as a float or 0 if no value is
    +	 * defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @return Returns the float value for key in dict.
    +	 */
    +	public static float getFloat(Map<String, Object> dict, String key)
    +	{
    +		return getFloat(dict, key, 0);
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as a float or the given default
    +	 * value if no value is defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @param defaultValue
    +	 *            Default value to return if the key is undefined.
    +	 * @return Returns the float value for key in dict.
    +	 */
    +	public static float getFloat(Map<String, Object> dict, String key,
    +			float defaultValue)
    +	{
    +		Object value = dict.get(key);
    +
    +		if (value == null)
    +		{
    +			return defaultValue;
    +		}
    +		else
    +		{
    +			return Float.parseFloat(value.toString());
    +		}
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as a float array or the given default
    +	 * value if no value is defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @param defaultValue
    +	 *            Default value to return if the key is undefined.
    +	 * @return Returns the float array value for key in dict.
    +	 */
    +	public static float[] getFloatArray(Map<String, Object> dict, String key,
    +			float[] defaultValue)
    +	{
    +		Object value = dict.get(key);
    +
    +		if (value == null)
    +		{
    +			return defaultValue;
    +		}
    +		else
    +		{
    +			String[] floatChars = value.toString().split(",");
    +			float[] result = new float[floatChars.length];
    +
    +			for (int i = 0; i < floatChars.length; i++)
    +			{
    +				result[i] = Float.parseFloat(floatChars[i]);
    +			}
    +
    +			return result;
    +		}
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as a double or 0 if no value is
    +	 * defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @return Returns the double value for key in dict.
    +	 */
    +	public static double getDouble(Map<String, Object> dict, String key)
    +	{
    +		return getDouble(dict, key, 0);
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as a double or the given default
    +	 * value if no value is defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @param defaultValue
    +	 *            Default value to return if the key is undefined.
    +	 * @return Returns the double value for key in dict.
    +	 */
    +	public static double getDouble(Map<String, Object> dict, String key,
    +			double defaultValue)
    +	{
    +		Object value = dict.get(key);
    +
    +		if (value == null)
    +		{
    +			return defaultValue;
    +		}
    +		else
    +		{
    +			return Double.parseDouble(value.toString());
    +		}
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as a string or null if no value
    +	 * is defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @return Returns the string value for key in dict.
    +	 */
    +	public static String getString(Map<String, Object> dict, String key)
    +	{
    +		return getString(dict, key, null);
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as a string or the given default
    +	 * value if no value is defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @param defaultValue
    +	 *            Default value to return if the key is undefined.
    +	 * @return Returns the string value for key in dict.
    +	 */
    +	public static String getString(Map<String, Object> dict, String key,
    +			String defaultValue)
    +	{
    +		Object value = dict.get(key);
    +
    +		if (value == null)
    +		{
    +			return defaultValue;
    +		}
    +		else
    +		{
    +			return value.toString();
    +		}
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as a color or null if no value is
    +	 * defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @return Returns the color value for key in dict.
    +	 */
    +	public static Color getColor(Map<String, Object> dict, String key)
    +	{
    +		return getColor(dict, key, null);
    +	}
    +
    +	/**
    +	 * Returns the value for key in dictionary as a color or the given default
    +	 * value if no value is defined for the key.
    +	 * 
    +	 * @param dict
    +	 *            Dictionary that contains the key, value pairs.
    +	 * @param key
    +	 *            Key whose value should be returned.
    +	 * @param defaultValue
    +	 *            Default value to return if the key is undefined.
    +	 * @return Returns the color value for key in dict.
    +	 */
    +	public static Color getColor(Map<String, Object> dict, String key,
    +			Color defaultValue)
    +	{
    +		Object value = dict.get(key);
    +
    +		if (value == null)
    +		{
    +			return defaultValue;
    +		}
    +		else
    +		{
    +			return parseColor(value.toString());
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static Font getFont(Map<String, Object> style)
    +	{
    +		return getFont(style, 1);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static Font getFont(Map<String, Object> style, double scale)
    +	{
    +		String fontFamily = getString(style, mxConstants.STYLE_FONTFAMILY,
    +				mxConstants.DEFAULT_FONTFAMILY);
    +		int fontSize = getInt(style, mxConstants.STYLE_FONTSIZE,
    +				mxConstants.DEFAULT_FONTSIZE);
    +		int fontStyle = getInt(style, mxConstants.STYLE_FONTSTYLE);
    +
    +		int swingFontStyle = ((fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD) ? Font.BOLD
    +				: Font.PLAIN;
    +		swingFontStyle += ((fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC) ? Font.ITALIC
    +				: Font.PLAIN;
    +
    +		return new Font(fontFamily, swingFontStyle, (int) (fontSize * scale));
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public static String hexString(Color color)
    +	{
    +		int r = color.getRed();
    +		int g = color.getGreen();
    +		int b = color.getBlue();
    +
    +		return String.format("#%02X%02X%02X", r, g, b);
    +	}
    +
    +	/**
    +	 * Convert a string representing a 24/32bit hex color value into a Color
    +	 * object. The following color names are also supported: white, black, red,
    +	 * green, blue, orange, yellow, pink, turquoise, gray and none (null).
    +	 * Examples of possible hex color values are: #C3D9FF, #6482B9 and #774400,
    +	 * but note that you do not include the "#" in the string passed in
    +	 * 
    +	 * @param colorString
    +	 *            the 24/32bit hex string value (ARGB)
    +	 * @return java.awt.Color (24bit RGB on JDK 1.1, 24/32bit ARGB on JDK1.2)
    +	 * @exception NumberFormatException
    +	 *                if the specified string cannot be interpreted as a
    +	 *                hexidecimal integer
    +	 */
    +	public static Color parseColor(String colorString)
    +			throws NumberFormatException
    +	{
    +		if (colorString.equalsIgnoreCase("white"))
    +		{
    +			return Color.white;
    +		}
    +		else if (colorString.equalsIgnoreCase("black"))
    +		{
    +			return Color.black;
    +		}
    +		else if (colorString.equalsIgnoreCase("red"))
    +		{
    +			return Color.red;
    +		}
    +		else if (colorString.equalsIgnoreCase("green"))
    +		{
    +			return Color.green;
    +		}
    +		else if (colorString.equalsIgnoreCase("blue"))
    +		{
    +			return Color.blue;
    +		}
    +		else if (colorString.equalsIgnoreCase("orange"))
    +		{
    +			return Color.orange;
    +		}
    +		else if (colorString.equalsIgnoreCase("yellow"))
    +		{
    +			return Color.yellow;
    +		}
    +		else if (colorString.equalsIgnoreCase("pink"))
    +		{
    +			return Color.pink;
    +		}
    +		else if (colorString.equalsIgnoreCase("turqoise"))
    +		{
    +			return new Color(0, 255, 255);
    +		}
    +		else if (colorString.equalsIgnoreCase("gray"))
    +		{
    +			return Color.gray;
    +		}
    +		else if (colorString.equalsIgnoreCase("none"))
    +		{
    +			return null;
    +		}
    +		else if (colorString.startsWith("#") && colorString.length() == 4)
    +		{
    +			// Adds support for special short notation of hex colors, eg. #abc=#aabbcc
    +			colorString = new String(new char[] { '#', colorString.charAt(1),
    +					colorString.charAt(1), colorString.charAt(2),
    +					colorString.charAt(2), colorString.charAt(3),
    +					colorString.charAt(3) });
    +		}
    +
    +		int value;
    +		try
    +		{
    +			value = (int) Long.parseLong(colorString, 16);
    +		}
    +		catch (NumberFormatException nfe)
    +		{
    +			value = Long.decode(colorString).intValue();
    +		}
    +
    +		return new Color(value);
    +	}
    +
    +	/**
    +	 * Returns a hex representation for the given color.
    +	 * 
    +	 * @param color
    +	 *            Color to return the hex string for.
    +	 * @return Returns a hex string for the given color.
    +	 */
    +	public static String getHexColorString(Color color)
    +	{
    +		return Integer.toHexString((color.getRGB() & 0x00FFFFFF)
    +				| (color.getAlpha() << 24));
    +	}
    +
    +	/**
    +	 * Reads the given filename into a string.
    +	 * 
    +	 * @param filename
    +	 *            Name of the file to be read.
    +	 * @return Returns a string representing the file contents.
    +	 * @throws IOException
    +	 */
    +	public static String readFile(String filename) throws IOException
    +	{
    +		BufferedReader reader = new BufferedReader(new InputStreamReader(
    +				new FileInputStream(filename)));
    +		StringBuffer result = new StringBuffer();
    +		String tmp = reader.readLine();
    +
    +		while (tmp != null)
    +		{
    +			result.append(tmp + "\n");
    +			tmp = reader.readLine();
    +		}
    +
    +		reader.close();
    +
    +		return result.toString();
    +	}
    +
    +	/**
    +	 * Writes the given string into the given file.
    +	 * 
    +	 * @param contents
    +	 *            String representing the file contents.
    +	 * @param filename
    +	 *            Name of the file to be written.
    +	 * @throws IOException
    +	 */
    +	public static void writeFile(String contents, String filename)
    +			throws IOException
    +	{
    +		FileWriter fw = new FileWriter(filename);
    +		fw.write(contents);
    +		fw.flush();
    +		fw.close();
    +	}
    +
    +	/**
    +	 * Returns the Md5 hash for the given text.
    +	 * 
    +	 * @param text
    +	 *            String whose Md5 hash should be returned.
    +	 * @return Returns the Md5 hash for the given text.
    +	 */
    +	public static String getMd5Hash(String text)
    +	{
    +		StringBuffer result = new StringBuffer(32);
    +		try
    +		{
    +			MessageDigest md5 = MessageDigest.getInstance("MD5");
    +			md5.update(text.getBytes());
    +			Formatter f = new Formatter(result);
    +
    +			byte[] digest = md5.digest();
    +
    +			for (int i = 0; i < digest.length; i++)
    +			{
    +				f.format("%02x", new Object[] { new Byte(digest[i]) });
    +			}
    +		}
    +		catch (NoSuchAlgorithmException ex)
    +		{
    +			ex.printStackTrace();
    +		}
    +
    +		return result.toString();
    +	}
    +
    +	/**
    +	 * Returns true if the user object is an XML node with the specified type
    +	 * and and the optional attribute has the specified value or is not
    +	 * specified.
    +	 * 
    +	 * @param value
    +	 *            Object that should be examined as a node.
    +	 * @param nodeName
    +	 *            String that specifies the node name.
    +	 * @return Returns true if the node name of the user object is equal to the
    +	 *         given type.
    +	 */
    +
    +	public static boolean isNode(Object value, String nodeName)
    +	{
    +		return isNode(value, nodeName, null, null);
    +	}
    +
    +	/**
    +	 * Returns true if the given value is an XML node with the node name and if
    +	 * the optional attribute has the specified value.
    +	 * 
    +	 * @param value
    +	 *            Object that should be examined as a node.
    +	 * @param nodeName
    +	 *            String that specifies the node name.
    +	 * @param attributeName
    +	 *            Optional attribute name to check.
    +	 * @param attributeValue
    +	 *            Optional attribute value to check.
    +	 * @return Returns true if the value matches the given conditions.
    +	 */
    +	public static boolean isNode(Object value, String nodeName,
    +			String attributeName, String attributeValue)
    +	{
    +		if (value instanceof Element)
    +		{
    +			Element element = (Element) value;
    +
    +			if (nodeName == null
    +					|| element.getNodeName().equalsIgnoreCase(nodeName))
    +			{
    +				String tmp = (attributeName != null) ? element
    +						.getAttribute(attributeName) : null;
    +
    +				return attributeName == null
    +						|| (tmp != null && tmp.equals(attributeValue));
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * 
    +	 * @param g
    +	 * @param antiAlias
    +	 * @param textAntiAlias
    +	 */
    +	public static void setAntiAlias(Graphics2D g, boolean antiAlias,
    +			boolean textAntiAlias)
    +	{
    +		g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
    +				(antiAlias) ? RenderingHints.VALUE_ANTIALIAS_ON
    +						: RenderingHints.VALUE_ANTIALIAS_OFF);
    +		g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    +				(textAntiAlias) ? RenderingHints.VALUE_TEXT_ANTIALIAS_ON
    +						: RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
    +	}
    +
    +	/**
    +	 * Clears the given area of the specified graphics object with the given
    +	 * color or makes the region transparent.
    +	 */
    +	public static void clearRect(Graphics2D g, Rectangle rect, Color background)
    +	{
    +		if (background != null)
    +		{
    +			g.setColor(background);
    +			g.fillRect(rect.x, rect.y, rect.width, rect.height);
    +		}
    +		else
    +		{
    +			g.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR,
    +					0.0f));
    +			g.fillRect(rect.x, rect.y, rect.width, rect.height);
    +			g.setComposite(AlphaComposite.SrcOver);
    +		}
    +	}
    +
    +	/**
    +	 * Creates a buffered image for the given parameters. If there is not enough
    +	 * memory to create the image then a OutOfMemoryError is thrown.
    +	 */
    +	public static BufferedImage createBufferedImage(int w, int h,
    +			Color background) throws OutOfMemoryError
    +	{
    +		BufferedImage result = null;
    +
    +		if (w > 0 && h > 0)
    +		{
    +			// Checks if there is enough memory for allocating the buffer
    +			Runtime runtime = Runtime.getRuntime();
    +			long maxMemory = runtime.maxMemory();
    +			long allocatedMemory = runtime.totalMemory();
    +			long freeMemory = runtime.freeMemory();
    +			long totalFreeMemory = (freeMemory + (maxMemory - allocatedMemory)) / 1024;
    +
    +			int bytes = 4; // 1 if indexed
    +			long memoryRequired = w * h * bytes / 1024;
    +
    +			if (memoryRequired <= totalFreeMemory)
    +			{
    +				int type = (background != null) ? BufferedImage.TYPE_INT_RGB
    +						: BufferedImage.TYPE_INT_ARGB;
    +				result = new BufferedImage(w, h, type);
    +
    +				// Clears background
    +				if (background != null)
    +				{
    +					Graphics2D g2 = result.createGraphics();
    +					clearRect(g2, new Rectangle(w, h), background);
    +					g2.dispose();
    +				}
    +			}
    +			else
    +			{
    +				throw new OutOfMemoryError("Not enough memory for image (" + w
    +						+ " x " + h + ")");
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Loads an image from the local filesystem, a data URI or any other URL.
    +	 */
    +	public static BufferedImage loadImage(String url)
    +	{
    +		BufferedImage img = null;
    +
    +		if (url != null)
    +		{
    +			// Parses data URIs of the form data:image/format;base64,xxx
    +			if (url.startsWith("data:image/"))
    +			{
    +				try
    +				{
    +					int comma = url.indexOf(',');
    +					byte[] data = mxBase64.decode(url.substring(comma + 1));
    +					ByteArrayInputStream is = new ByteArrayInputStream(data);
    +					img = ImageIO.read(is);
    +				}
    +				catch (Exception e1)
    +				{
    +					// ignore
    +				}
    +			}
    +			else
    +			{
    +				URL realUrl = null;
    +
    +				try
    +				{
    +					realUrl = new URL(url);
    +				}
    +				catch (Exception e)
    +				{
    +					realUrl = mxUtils.class.getResource(url);
    +				}
    +
    +				if (realUrl != null)
    +				{
    +					try
    +					{
    +						img = ImageIO.read(realUrl);
    +					}
    +					catch (Exception e1)
    +					{
    +						// ignore
    +					}
    +				}
    +			}
    +		}
    +
    +		return img;
    +	}
    +
    +	/**
    +	 * Creates a table for the given text using the given document to create the
    +	 * DOM nodes. Returns the outermost table node.
    +	 */
    +	public static Element createTable(Document document, String text, int x,
    +			int y, int w, int h, double scale, Map<String, Object> style)
    +	{
    +		// Does not use a textbox as this must go inside another VML shape
    +		Element table = document.createElement("table");
    +
    +		if (text != null && text.length() > 0)
    +		{
    +			Element tr = document.createElement("tr");
    +			Element td = document.createElement("td");
    +
    +			table.setAttribute("cellspacing", "0");
    +			table.setAttribute("border", "0");
    +			td.setAttribute("align", mxUtils.getString(style,
    +					mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER));
    +
    +			String fontColor = getString(style, mxConstants.STYLE_FONTCOLOR,
    +					"black");
    +			String fontFamily = getString(style, mxConstants.STYLE_FONTFAMILY,
    +					mxConstants.DEFAULT_FONTFAMILIES);
    +			int fontSize = (int) (getInt(style, mxConstants.STYLE_FONTSIZE,
    +					mxConstants.DEFAULT_FONTSIZE) * scale);
    +
    +			String s = "position:absolute;" + "left:" + String.valueOf(x)
    +					+ "px;" + "top:" + String.valueOf(y) + "px;" + "width:"
    +					+ String.valueOf(w) + "px;" + "height:" + String.valueOf(h)
    +					+ "px;" + "font-size:" + String.valueOf(fontSize) + "px;"
    +					+ "font-family:" + fontFamily + ";" + "color:" + fontColor
    +					+ ";";
    +
    +			if (mxUtils.getString(style, mxConstants.STYLE_WHITE_SPACE,
    +					"nowrap").equals("wrap"))
    +			{
    +				s += "whiteSpace:wrap;";
    +			}
    +
    +			// Applies the background color
    +			String background = getString(style,
    +					mxConstants.STYLE_LABEL_BACKGROUNDCOLOR);
    +
    +			if (background != null)
    +			{
    +				s += "background:" + background + ";";
    +			}
    +
    +			// Applies the border color
    +			String border = getString(style,
    +					mxConstants.STYLE_LABEL_BORDERCOLOR);
    +
    +			if (border != null)
    +			{
    +				s += "border:" + border + " solid 1pt;";
    +			}
    +
    +			// Applies the opacity
    +			float opacity = getFloat(style, mxConstants.STYLE_TEXT_OPACITY, 100);
    +
    +			if (opacity < 100)
    +			{
    +				// Adds all rules (first for IE)
    +				s += "filter:alpha(opacity=" + opacity + ");";
    +				s += "opacity:" + (opacity / 100) + ";";
    +			}
    +
    +			td.setAttribute("style", s);
    +			String[] lines = text.split("\n");
    +
    +			for (int i = 0; i < lines.length; i++)
    +			{
    +				td.appendChild(document.createTextNode(lines[i]));
    +				td.appendChild(document.createElement("br"));
    +			}
    +
    +			tr.appendChild(td);
    +			table.appendChild(tr);
    +		}
    +
    +		return table;
    +	}
    +
    +	/**
    +	 * Returns a new, empty DOM document.
    +	 * 
    +	 * @return Returns a new DOM document.
    +	 * @deprecated Use <code>mxDomUtils.createDocument</code> (Jan 2012)
    +	 */
    +	public static Document createDocument()
    +	{
    +		return mxDomUtils.createDocument();
    +	}
    +
    +	/**
    +	 * Creates a new SVG document for the given width and height.
    +	 * @deprecated Use <code>mxDomUtils.createSvgDocument(int, int)</code> (Jan 2012)
    +	 */
    +	public static Document createSvgDocument(int width, int height)
    +	{
    +		return mxDomUtils.createSvgDocument(width, height);
    +	}
    +
    +	/**
    +	 * 
    +	 * @deprecated Use <code>mxDomUtils.createVmlDocument</code> (Jan 2012)
    +	 */
    +	public static Document createVmlDocument()
    +	{
    +		return mxDomUtils.createVmlDocument();
    +	}
    +
    +	/**
    +	 * Returns a document with a HTML node containing a HEAD and BODY node.
    +	 * @deprecated Use <code>mxDomUtils.createHtmlDocument</code> (Jan 2012)
    +	 */
    +	public static Document createHtmlDocument()
    +	{
    +		return mxDomUtils.createHtmlDocument();
    +	}
    +
    +	/**
    +	 * Returns a new, empty DOM document.
    +	 * 
    +	 * @return Returns a new DOM document.
    +	 */
    +	public static String createHtmlDocument(Map<String, Object> style,
    +			String text)
    +	{
    +		return createHtmlDocument(style, text, 1, 0);
    +	}
    +
    +	/**
    +	 * Returns a new, empty DOM document.
    +	 * 
    +	 * @return Returns a new DOM document.
    +	 */
    +	public static String createHtmlDocument(Map<String, Object> style,
    +			String text, double scale)
    +	{
    +		return createHtmlDocument(style, text, scale, 0);
    +	}
    +
    +	/**
    +	 * Returns a new, empty DOM document.
    +	 * 
    +	 * @return Returns a new DOM document.
    +	 */
    +	public static String createHtmlDocument(Map<String, Object> style,
    +			String text, double scale, int width)
    +	{
    +		return createHtmlDocument(style, text, scale, width, null);
    +	}
    +
    +	/**
    +	 * Returns a new, empty DOM document. The head argument can be used to
    +	 * provide an optional HEAD section without the HEAD tags as follows:
    +	 * 
    +	 * <pre>
    +	 * mxUtils.createHtmlDocument(style,  text, 1, 0, "<style type=\"text/css\">.classname { color:red; }</style>")
    +	 * </pre>
    +	 * 
    +	 * @return Returns a new DOM document.
    +	 */
    +	public static String createHtmlDocument(Map<String, Object> style,
    +			String text, double scale, int width, String head)
    +	{
    +		StringBuffer css = new StringBuffer();
    +		css.append("font-family:"
    +				+ getString(style, mxConstants.STYLE_FONTFAMILY,
    +						mxConstants.DEFAULT_FONTFAMILIES) + ";");
    +		css.append("font-size:"
    +				+ (int) (getInt(style, mxConstants.STYLE_FONTSIZE,
    +						mxConstants.DEFAULT_FONTSIZE) * scale) + " pt;");
    +
    +		String color = mxUtils.getString(style, mxConstants.STYLE_FONTCOLOR);
    +
    +		if (color != null)
    +		{
    +			css.append("color:" + color + ";");
    +		}
    +
    +		int fontStyle = mxUtils.getInt(style, mxConstants.STYLE_FONTSTYLE);
    +
    +		if ((fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD)
    +		{
    +			css.append("font-weight:bold;");
    +		}
    +
    +		if ((fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC)
    +		{
    +			css.append("font-style:italic;");
    +		}
    +
    +		if ((fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE)
    +		{
    +			css.append("text-decoration:underline;");
    +		}
    +
    +		String align = getString(style, mxConstants.STYLE_ALIGN,
    +				mxConstants.ALIGN_LEFT);
    +
    +		if (align.equals(mxConstants.ALIGN_CENTER))
    +		{
    +			css.append("text-align:center;");
    +		}
    +		else if (align.equals(mxConstants.ALIGN_RIGHT))
    +		{
    +			css.append("text-align:right;");
    +		}
    +
    +		if (width > 0)
    +		{
    +			// LATER: With max-width support, wrapped text can be measured in 1 step
    +			css.append("width:" + width + "px;");
    +		}
    +
    +		String result = "<html>";
    +
    +		if (head != null)
    +		{
    +			result += "<head>" + head + "</head>";
    +		}
    +
    +		return result + "<body style=\"" + css.toString() + "\">" + text
    +				+ "</body></html>";
    +	}
    +
    +	/**
    +	 * Returns a new, empty DOM document.
    +	 * 
    +	 * @return Returns a new DOM document.
    +	 */
    +	public static HTMLDocument createHtmlDocumentObject(
    +			Map<String, Object> style, double scale)
    +	{
    +		// Applies the font settings
    +		HTMLDocument document = new HTMLDocument();
    +
    +		StringBuffer rule = new StringBuffer("body {");
    +		rule.append(" font-family: "
    +				+ getString(style, mxConstants.STYLE_FONTFAMILY,
    +						mxConstants.DEFAULT_FONTFAMILIES) + " ; ");
    +		rule.append(" font-size: "
    +				+ (int) (getInt(style, mxConstants.STYLE_FONTSIZE,
    +						mxConstants.DEFAULT_FONTSIZE) * scale) + " pt ;");
    +
    +		String color = mxUtils.getString(style, mxConstants.STYLE_FONTCOLOR);
    +
    +		if (color != null)
    +		{
    +			rule.append("color: " + color + " ; ");
    +		}
    +
    +		int fontStyle = mxUtils.getInt(style, mxConstants.STYLE_FONTSTYLE);
    +
    +		if ((fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD)
    +		{
    +			rule.append(" font-weight: bold ; ");
    +		}
    +
    +		if ((fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC)
    +		{
    +			rule.append(" font-style: italic ; ");
    +		}
    +
    +		if ((fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE)
    +		{
    +			rule.append(" text-decoration: underline ; ");
    +		}
    +
    +		String align = getString(style, mxConstants.STYLE_ALIGN,
    +				mxConstants.ALIGN_LEFT);
    +
    +		if (align.equals(mxConstants.ALIGN_CENTER))
    +		{
    +			rule.append(" text-align: center ; ");
    +		}
    +		else if (align.equals(mxConstants.ALIGN_RIGHT))
    +		{
    +			rule.append(" text-align: right ; ");
    +		}
    +
    +		rule.append(" } ");
    +		document.getStyleSheet().addRule(rule.toString());
    +
    +		return document;
    +	}
    +
    +	/**
    +	 * Returns a new DOM document for the given URI.
    +	 * 
    +	 * @param uri
    +	 *            URI to parse into the document.
    +	 * @return Returns a new DOM document for the given URI.
    +	 */
    +	public static Document loadDocument(String uri)
    +	{
    +		try
    +		{
    +			DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
    +					.newInstance();
    +			DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    +			return docBuilder.parse(uri);
    +		}
    +		catch (Exception e)
    +		{
    +			e.printStackTrace();
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns a new document for the given XML string.
    +	 * 
    +	 * @param xml
    +	 *            String that represents the XML data.
    +	 * @return Returns a new XML document.
    +	 * @deprecated Use <code>mxXmlUtils.parseXml</code> (Jan 2012)
    +	 */
    +	public static Document parseXml(String xml)
    +	{
    +		return mxXmlUtils.parseXml(xml);
    +	}
    +
    +	/**
    +	 * Evaluates a Java expression as a class member using mxCodecRegistry. The
    +	 * range of supported expressions is limited to static class members such as
    +	 * mxEdgeStyle.ElbowConnector.
    +	 */
    +	public static Object eval(String expression)
    +	{
    +		int dot = expression.lastIndexOf(".");
    +
    +		if (dot > 0)
    +		{
    +			Class<?> clazz = mxCodecRegistry.getClassForName(expression
    +					.substring(0, dot));
    +
    +			if (clazz != null)
    +			{
    +				try
    +				{
    +					return clazz.getField(expression.substring(dot + 1)).get(
    +							null);
    +				}
    +				catch (Exception e)
    +				{
    +					// ignore
    +				}
    +			}
    +		}
    +
    +		return expression;
    +	}
    +
    +	/**
    +	 * Returns the first node where attr equals value. This implementation does
    +	 * not use XPath.
    +	 */
    +	public static Node findNode(Node node, String attr, String value)
    +	{
    +		String tmp = (node instanceof Element) ? ((Element) node)
    +				.getAttribute(attr) : null;
    +
    +		if (tmp != null && tmp.equals(value))
    +		{
    +			return node;
    +		}
    +
    +		node = node.getFirstChild();
    +
    +		while (node != null)
    +		{
    +			Node result = findNode(node, attr, value);
    +
    +			if (result != null)
    +			{
    +				return result;
    +			}
    +
    +			node = node.getNextSibling();
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns a single node that matches the given XPath expression.
    +	 * 
    +	 * @param doc
    +	 *            Document that contains the nodes.
    +	 * @param expression
    +	 *            XPath expression to be matched.
    +	 * @return Returns a single node matching the given expression.
    +	 */
    +	public static Node selectSingleNode(Document doc, String expression)
    +	{
    +		try
    +		{
    +			XPath xpath = XPathFactory.newInstance().newXPath();
    +
    +			return (Node) xpath.evaluate(expression, doc, XPathConstants.NODE);
    +		}
    +		catch (XPathExpressionException e)
    +		{
    +			// ignore
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Converts the ampersand, quote, prime, less-than and greater-than
    +	 * characters to their corresponding HTML entities in the given string.
    +	 */
    +	public static String htmlEntities(String text)
    +	{
    +		return text.replaceAll("&", "&amp;").replaceAll("\"", "&quot;")
    +				.replaceAll("'", "&prime;").replaceAll("<", "&lt;")
    +				.replaceAll(">", "&gt;");
    +	}
    +
    +	/**
    +	 * Returns a string that represents the given node.
    +	 * 
    +	 * @param node
    +	 *            Node to return the XML for.
    +	 * @return Returns an XML string.
    +	 * @deprecated Use <code>mxXmlUtils.getXml(Node)</code> (Jan 2012)
    +	 */
    +	public static String getXml(Node node)
    +	{
    +		return mxXmlUtils.getXml(node);
    +	}
    +
    +	/**
    +	 * Returns a pretty-printed XML string for the given node.
    +	 * 
    +	 * @param node
    +	 *            Node to return the XML for.
    +	 * @return Returns a formatted XML string.
    +	 */
    +	public static String getPrettyXml(Node node)
    +	{
    +		return getPrettyXml(node, "  ", "");
    +	}
    +
    +	/**
    +	 * Returns a pretty-printed XML string for the given node. Note that this
    +	 * string should only be used for humans to read (eg. debug output) but not
    +	 * for further processing as it does not use built-in mechanisms.
    +	 * 
    +	 * @param node
    +	 *            Node to return the XML for.
    +	 * @param tab
    +	 *            String to be used for indentation of inner nodes.
    +	 * @param indent
    +	 *            Current indentation for the node.
    +	 * @return Returns a formatted XML string.
    +	 */
    +	public static String getPrettyXml(Node node, String tab, String indent)
    +	{
    +		StringBuffer result = new StringBuffer();
    +
    +		if (node != null)
    +		{
    +			if (node.getNodeType() == Node.TEXT_NODE)
    +			{
    +				result.append(node.getNodeValue());
    +			}
    +			else
    +			{
    +				result.append(indent + "<" + node.getNodeName());
    +				NamedNodeMap attrs = node.getAttributes();
    +
    +				if (attrs != null)
    +				{
    +					for (int i = 0; i < attrs.getLength(); i++)
    +					{
    +						String value = attrs.item(i).getNodeValue();
    +						value = mxUtils.htmlEntities(value);
    +						result.append(" " + attrs.item(i).getNodeName() + "=\""
    +								+ value + "\"");
    +					}
    +				}
    +				Node tmp = node.getFirstChild();
    +
    +				if (tmp != null)
    +				{
    +					result.append(">\n");
    +
    +					while (tmp != null)
    +					{
    +						result.append(getPrettyXml(tmp, tab, indent + tab));
    +						tmp = tmp.getNextSibling();
    +					}
    +
    +					result.append(indent + "</" + node.getNodeName() + ">\n");
    +				}
    +				else
    +				{
    +					result.append("/>\n");
    +				}
    +			}
    +		}
    +
    +		return result.toString();
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/util/mxXmlUtils.java b/java/src/com/mxgraph/util/mxXmlUtils.java
    new file mode 100644
    index 000000000..2b18d5e96
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/mxXmlUtils.java
    @@ -0,0 +1,81 @@
    +/**
    + * $Id: mxXmlUtils.java,v 1.1 2012-01-13 12:26:15 david Exp $
    + * Copyright (c) 2007-2012, JGraph Ltd
    + */
    +package com.mxgraph.util;
    +
    +import java.io.StringReader;
    +import java.io.StringWriter;
    +
    +import javax.xml.parsers.DocumentBuilder;
    +import javax.xml.parsers.DocumentBuilderFactory;
    +import javax.xml.transform.OutputKeys;
    +import javax.xml.transform.Transformer;
    +import javax.xml.transform.TransformerFactory;
    +import javax.xml.transform.dom.DOMSource;
    +import javax.xml.transform.stream.StreamResult;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Node;
    +
    +import org.xml.sax.InputSource;
    +
    +/**
    + * Contains various XML helper methods for use with mxGraph.
    + */
    +public class mxXmlUtils
    +{
    +	/**
    +	 * Returns a new document for the given XML string.
    +	 * 
    +	 * @param xml
    +	 *            String that represents the XML data.
    +	 * @return Returns a new XML document.
    +	 */
    +	public static Document parseXml(String xml)
    +	{
    +		try
    +		{
    +			DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
    +					.newInstance();
    +			DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    +
    +			return docBuilder.parse(new InputSource(new StringReader(xml)));
    +		}
    +		catch (Exception e)
    +		{
    +			e.printStackTrace();
    +		}
    +
    +		return null;
    +	}
    +	
    +	/**
    +	 * Returns a string that represents the given node.
    +	 * 
    +	 * @param node
    +	 *            Node to return the XML for.
    +	 * @return Returns an XML string.
    +	 */
    +	public static String getXml(Node node)
    +	{
    +		try
    +		{
    +			Transformer tf = TransformerFactory.newInstance().newTransformer();
    +
    +			tf.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
    +			tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    +
    +			StreamResult dest = new StreamResult(new StringWriter());
    +			tf.transform(new DOMSource(node), dest);
    +
    +			return dest.getWriter().toString();
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +
    +		return "";
    +	}
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/util/package.html b/java/src/com/mxgraph/util/package.html
    new file mode 100644
    index 000000000..2d57a4ef6
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/package.html
    @@ -0,0 +1,7 @@
    +<HTML>
    +<BODY>
    +  This package provides utility classes such as mxConstants, mxUtils, mxPoint
    +  and mxRectangle as well as all classes for custom events and the undo
    +  history.
    +</BODY>
    +</HTML>
    diff --git a/java/src/com/mxgraph/util/png/mxPngEncodeParam.java b/java/src/com/mxgraph/util/png/mxPngEncodeParam.java
    new file mode 100644
    index 000000000..e39d61314
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/png/mxPngEncodeParam.java
    @@ -0,0 +1,1701 @@
    +/* $Id: mxPngEncodeParam.java,v 1.5 2010-08-09 16:41:04 david Exp $
    +   
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +/*
    + * Copyright (c) 2001 Sun Microsystems, Inc. All Rights Reserved.
    + *
    + * Redistribution and use in source and binary forms, with or without 
    + * modification, are permitted provided that the following conditions are met:
    + * 
    + * -Redistributions of source code must retain the above copyright notice, this 
    + * list of conditions and the following disclaimer.
    + *
    + * -Redistribution in binary form must reproduct the above copyright notice,
    + * this list of conditions and the following disclaimer in the documentation
    + * and/or other materials provided with the distribution.
    + * 
    + * Neither the name of Sun Microsystems, Inc. or the names of contributors may
    + * be used to endorse or promote products derived from this software without
    + * specific prior written permission.
    + * 
    + * This software is provided "AS IS," without a warranty of any kind. ALL
    + * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
    + * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
    + * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
    + * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
    + * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
    + * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
    + * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
    + * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
    + * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
    + * POSSIBILITY OF SUCH DAMAGES.
    + * 
    + * You acknowledge that Software is not designed,licensed or intended for use in 
    + * the design, construction, operation or maintenance of any nuclear facility.
    + */
    +package com.mxgraph.util.png;
    +
    +import java.awt.image.ColorModel;
    +import java.awt.image.IndexColorModel;
    +import java.awt.image.RenderedImage;
    +import java.awt.image.SampleModel;
    +import java.util.ArrayList;
    +import java.util.Date;
    +import java.util.List;
    +
    +/**
    + * An instance of <code>ImageEncodeParam</code> for encoding images in
    + * the PNG format.
    + *
    + * <p><b> This class is not a committed part of the JAI API.  It may
    + * be removed or changed in future releases of JAI.</b>
    + *
    + * @version $Id: mxPngEncodeParam.java,v 1.5 2010-08-09 16:41:04 david Exp $
    + */
    +public abstract class mxPngEncodeParam
    +{
    +
    +	/** Constant for use with the sRGB chunk. */
    +	public static final int INTENT_PERCEPTUAL = 0;
    +
    +	/** Constant for use with the sRGB chunk. */
    +	public static final int INTENT_RELATIVE = 1;
    +
    +	/** Constant for use with the sRGB chunk. */
    +	public static final int INTENT_SATURATION = 2;
    +
    +	/** Constant for use with the sRGB chunk. */
    +	public static final int INTENT_ABSOLUTE = 3;
    +
    +	/** Constant for use in filtering. */
    +	public static final int PNG_FILTER_NONE = 0;
    +
    +	/** Constant for use in filtering. */
    +	public static final int PNG_FILTER_SUB = 1;
    +
    +	/** Constant for use in filtering. */
    +	public static final int PNG_FILTER_UP = 2;
    +
    +	/** Constant for use in filtering. */
    +	public static final int PNG_FILTER_AVERAGE = 3;
    +
    +	/** Constant for use in filtering. */
    +	public static final int PNG_FILTER_PAETH = 4;
    +
    +	/**
    +	 * Returns an instance of <code>PNGEncodeParam.Palette</code>,
    +	 * <code>PNGEncodeParam.Gray</code>, or
    +	 * <code>PNGEncodeParam.RGB</code> appropriate for encoding
    +	 * the given image.
    +	 *
    +	 * <p> If the image has an <code>IndexColorModel</code>, an
    +	 * instance of <code>PNGEncodeParam.Palette</code> is returned.
    +	 * Otherwise, if the image has 1 or 2 bands an instance of
    +	 * <code>PNGEncodeParam.Gray</code> is returned.  In all other
    +	 * cases an instance of <code>PNGEncodeParam.RGB</code> is
    +	 * returned.
    +	 *
    +	 * <p> Note that this method does not provide any guarantee that
    +	 * the given image will be successfully encoded by the PNG
    +	 * encoder, as it only performs a very superficial analysis of
    +	 * the image structure.
    +	 */
    +	public static mxPngEncodeParam getDefaultEncodeParam(RenderedImage im)
    +	{
    +		ColorModel colorModel = im.getColorModel();
    +		if (colorModel instanceof IndexColorModel)
    +		{
    +			return new mxPngEncodeParam.Palette();
    +		}
    +
    +		SampleModel sampleModel = im.getSampleModel();
    +		int numBands = sampleModel.getNumBands();
    +
    +		if (numBands == 1 || numBands == 2)
    +		{
    +			return new mxPngEncodeParam.Gray();
    +		}
    +		else
    +		{
    +			return new mxPngEncodeParam.RGB();
    +		}
    +	}
    +
    +	public static class Palette extends mxPngEncodeParam
    +	{
    +
    +		/** Constructs an instance of <code>PNGEncodeParam.Palette</code>. */
    +		public Palette()
    +		{
    +		}
    +
    +		// bKGD chunk
    +
    +		private boolean backgroundSet = false;
    +
    +		/**
    +		 * Suppresses the 'bKGD' chunk from being output.
    +		 */
    +		public void unsetBackground()
    +		{
    +			backgroundSet = false;
    +		}
    +
    +		/**
    +		 * Returns true if a 'bKGD' chunk will be output.
    +		 */
    +		public boolean isBackgroundSet()
    +		{
    +			return backgroundSet;
    +		}
    +
    +		/**
    +		 * Sets the desired bit depth for a palette image.  The bit
    +		 * depth must be one of 1, 2, 4, or 8, or else an
    +		 * <code>IllegalArgumentException</code> will be thrown.
    +		 */
    +		public void setBitDepth(int bitDepth)
    +		{
    +			if (bitDepth != 1 && bitDepth != 2 && bitDepth != 4
    +					&& bitDepth != 8)
    +			{
    +				throw new IllegalArgumentException("PNGEncodeParam2");
    +			}
    +			this.bitDepth = bitDepth;
    +			bitDepthSet = true;
    +		}
    +
    +		// PLTE chunk
    +
    +		private int[] palette = null;
    +
    +		private boolean paletteSet = false;
    +
    +		/**
    +		 * Sets the RGB palette of the image to be encoded.
    +		 * The <code>rgb</code> parameter contains alternating
    +		 * R, G, B values for each color index used in the image.
    +		 * The number of elements must be a multiple of 3 between
    +		 * 3 and 3*256.
    +		 *
    +		 * <p> The 'PLTE' chunk will encode this information.
    +		 *
    +		 * @param rgb An array of <code>int</code>s.
    +		 */
    +		public void setPalette(int[] rgb)
    +		{
    +			if (rgb.length < 1 * 3 || rgb.length > 256 * 3)
    +			{
    +				throw new IllegalArgumentException("PNGEncodeParam0");
    +			}
    +			if ((rgb.length % 3) != 0)
    +			{
    +				throw new IllegalArgumentException("PNGEncodeParam1");
    +			}
    +
    +			palette = (rgb.clone());
    +			paletteSet = true;
    +		}
    +
    +		/**
    +		 * Returns the current RGB palette.
    +		 *
    +		 * <p> If the palette has not previously been set, or has been
    +		 * unset, an <code>IllegalStateException</code> will be thrown.
    +		 *
    +		 * @throws IllegalStateException if the palette is not set.
    +		 *
    +		 * @return An array of <code>int</code>s.
    +		 */
    +		public int[] getPalette()
    +		{
    +			if (!paletteSet)
    +			{
    +				throw new IllegalStateException("PNGEncodeParam3");
    +			}
    +			return (palette.clone());
    +		}
    +
    +		/**
    +		 * Suppresses the 'PLTE' chunk from being output.
    +		 */
    +		public void unsetPalette()
    +		{
    +			palette = null;
    +			paletteSet = false;
    +		}
    +
    +		/**
    +		 * Returns true if a 'PLTE' chunk will be output.
    +		 */
    +		public boolean isPaletteSet()
    +		{
    +			return paletteSet;
    +		}
    +
    +		// bKGD chunk
    +
    +		private int backgroundPaletteIndex;
    +
    +		/**
    +		 * Sets the palette index of the suggested background color.
    +		 *
    +		 * <p> The 'bKGD' chunk will encode this information.
    +		 */
    +		public void setBackgroundPaletteIndex(int index)
    +		{
    +			backgroundPaletteIndex = index;
    +			backgroundSet = true;
    +		}
    +
    +		/**
    +		 * Returns the palette index of the suggested background color.
    +		 *
    +		 * <p> If the background palette index has not previously been
    +		 * set, or has been unset, an
    +		 * <code>IllegalStateException</code> will be thrown.
    +		 *
    +		 * @throws IllegalStateException if the palette index is not set.
    +		 */
    +		public int getBackgroundPaletteIndex()
    +		{
    +			if (!backgroundSet)
    +			{
    +				throw new IllegalStateException("PNGEncodeParam4");
    +			}
    +			return backgroundPaletteIndex;
    +		}
    +
    +		// tRNS chunk
    +
    +		private int[] transparency;
    +
    +		/**
    +		 * Sets the alpha values associated with each palette entry.
    +		 * The <code>alpha</code> parameter should have as many entries
    +		 * as there are RGB triples in the palette.
    +		 *
    +		 * <p> The 'tRNS' chunk will encode this information.
    +		 */
    +		public void setPaletteTransparency(byte[] alpha)
    +		{
    +			transparency = new int[alpha.length];
    +			for (int i = 0; i < alpha.length; i++)
    +			{
    +				transparency[i] = alpha[i] & 0xff;
    +			}
    +			transparencySet = true;
    +		}
    +
    +		/**
    +		 * Returns the alpha values associated with each palette entry.
    +		 *
    +		 * <p> If the palette transparency has not previously been
    +		 * set, or has been unset, an
    +		 * <code>IllegalStateException</code> will be thrown.
    +		 *
    +		 * @throws IllegalStateException if the palette transparency is
    +		 *        not set.
    +		 */
    +		public byte[] getPaletteTransparency()
    +		{
    +			if (!transparencySet)
    +			{
    +				throw new IllegalStateException("PNGEncodeParam5");
    +			}
    +			byte[] alpha = new byte[transparency.length];
    +			for (int i = 0; i < alpha.length; i++)
    +			{
    +				alpha[i] = (byte) transparency[i];
    +			}
    +			return alpha;
    +		}
    +	}
    +
    +	public static class Gray extends mxPngEncodeParam
    +	{
    +
    +		/** Constructs an instance of <code>PNGEncodeParam.Gray</code>. */
    +		public Gray()
    +		{
    +		}
    +
    +		// bKGD chunk
    +
    +		private boolean backgroundSet = false;
    +
    +		/**
    +		 * Suppresses the 'bKGD' chunk from being output.
    +		 */
    +		public void unsetBackground()
    +		{
    +			backgroundSet = false;
    +		}
    +
    +		/**
    +		 * Returns true if a 'bKGD' chunk will be output.
    +		 */
    +		public boolean isBackgroundSet()
    +		{
    +			return backgroundSet;
    +		}
    +
    +		/**
    +		 * Sets the desired bit depth for a grayscale image.  The bit
    +		 * depth must be one of 1, 2, 4, 8, or 16.
    +		 *
    +		 * <p> When encoding a source image of a greater bit depth,
    +		 * pixel values will be clamped to the smaller range after
    +		 * shifting by the value given by <code>getBitShift()</code>.
    +		 * When encoding a source image of a smaller bit depth, pixel
    +		 * values will be shifted and left-filled with zeroes.
    +		 */
    +		public void setBitDepth(int bitDepth)
    +		{
    +			if (bitDepth != 1 && bitDepth != 2 && bitDepth != 4
    +					&& bitDepth != 8 && bitDepth != 16)
    +			{
    +				throw new IllegalArgumentException();
    +			}
    +			this.bitDepth = bitDepth;
    +			bitDepthSet = true;
    +		}
    +
    +		// bKGD chunk
    +
    +		private int backgroundPaletteGray;
    +
    +		/**
    +		 * Sets the suggested gray level of the background.
    +		 *
    +		 * <p> The 'bKGD' chunk will encode this information.
    +		 */
    +		public void setBackgroundGray(int gray)
    +		{
    +			backgroundPaletteGray = gray;
    +			backgroundSet = true;
    +		}
    +
    +		/**
    +		 * Returns the suggested gray level of the background.
    +		 *
    +		 * <p> If the background gray level has not previously been
    +		 * set, or has been unset, an
    +		 * <code>IllegalStateException</code> will be thrown.
    +		 *
    +		 * @throws IllegalStateException if the background gray level
    +		 *        is not set.
    +		 */
    +		public int getBackgroundGray()
    +		{
    +			if (!backgroundSet)
    +			{
    +				throw new IllegalStateException("PNGEncodeParam6");
    +			}
    +			return backgroundPaletteGray;
    +		}
    +
    +		// tRNS chunk
    +
    +		private int[] transparency;
    +
    +		/**
    +		 * Sets the gray value to be used to denote transparency.
    +		 *
    +		 * <p> Setting this attribute will cause the alpha channel
    +		 * of the input image to be ignored.
    +		 *
    +		 * <p> The 'tRNS' chunk will encode this information.
    +		 */
    +		public void setTransparentGray(int transparentGray)
    +		{
    +			transparency = new int[1];
    +			transparency[0] = transparentGray;
    +			transparencySet = true;
    +		}
    +
    +		/**
    +		 * Returns the gray value to be used to denote transparency.
    +		 *
    +		 * <p> If the transparent gray value has not previously been
    +		 * set, or has been unset, an
    +		 * <code>IllegalStateException</code> will be thrown.
    +		 *
    +		 * @throws IllegalStateException if the transparent gray value
    +		 *        is not set.
    +		 */
    +		public int getTransparentGray()
    +		{
    +			if (!transparencySet)
    +			{
    +				throw new IllegalStateException("PNGEncodeParam7");
    +			}
    +			int gray = transparency[0];
    +			return gray;
    +		}
    +
    +		private int bitShift;
    +
    +		private boolean bitShiftSet = false;
    +
    +		/**
    +		 * Sets the desired bit shift for a grayscale image.
    +		 * Pixels in the source image will be shifted right by
    +		 * the given amount prior to being clamped to the maximum
    +		 * value given by the encoded image's bit depth.
    +		 */
    +		public void setBitShift(int bitShift)
    +		{
    +			if (bitShift < 0)
    +			{
    +				throw new RuntimeException();
    +			}
    +			this.bitShift = bitShift;
    +			bitShiftSet = true;
    +		}
    +
    +		/**
    +		 * Returns the desired bit shift for a grayscale image.
    +		 *
    +		 * <p> If the bit shift has not previously been set, or has been
    +		 * unset, an <code>IllegalStateException</code> will be thrown.
    +		 *
    +		 * @throws IllegalStateException if the bit shift is not set.
    +		 */
    +		public int getBitShift()
    +		{
    +			if (!bitShiftSet)
    +			{
    +				throw new IllegalStateException("PNGEncodeParam8");
    +			}
    +			return bitShift;
    +		}
    +
    +		/**
    +		 * Suppresses the setting of the bit shift of a grayscale image.
    +		 * Pixels in the source image will not be shifted prior to encoding.
    +		 */
    +		public void unsetBitShift()
    +		{
    +			bitShiftSet = false;
    +		}
    +
    +		/**
    +		 * Returns true if the bit shift has been set.
    +		 */
    +		public boolean isBitShiftSet()
    +		{
    +			return bitShiftSet;
    +		}
    +
    +		/**
    +		 * Returns true if the bit depth has been set.
    +		 */
    +		public boolean isBitDepthSet()
    +		{
    +			return bitDepthSet;
    +		}
    +	}
    +
    +	public static class RGB extends mxPngEncodeParam
    +	{
    +
    +		/** Constructs an instance of <code>PNGEncodeParam.RGB</code>. */
    +		public RGB()
    +		{
    +		}
    +
    +		// bKGD chunk
    +
    +		private boolean backgroundSet = false;
    +
    +		/**
    +		 * Suppresses the 'bKGD' chunk from being output.
    +		 */
    +		public void unsetBackground()
    +		{
    +			backgroundSet = false;
    +		}
    +
    +		/**
    +		 * Returns true if a 'bKGD' chunk will be output.
    +		 */
    +		public boolean isBackgroundSet()
    +		{
    +			return backgroundSet;
    +		}
    +
    +		/**
    +		 * Sets the desired bit depth for an RGB image.  The bit
    +		 * depth must be 8 or 16.
    +		 */
    +		public void setBitDepth(int bitDepth)
    +		{
    +			if (bitDepth != 8 && bitDepth != 16)
    +			{
    +				throw new RuntimeException();
    +			}
    +			this.bitDepth = bitDepth;
    +			bitDepthSet = true;
    +		}
    +
    +		// bKGD chunk
    +
    +		private int[] backgroundRGB;
    +
    +		/**
    +		 * Sets the RGB value of the suggested background color.
    +		 * The <code>rgb</code> parameter should have 3 entries.
    +		 *
    +		 * <p> The 'bKGD' chunk will encode this information.
    +		 */
    +		public void setBackgroundRGB(int[] rgb)
    +		{
    +			if (rgb.length != 3)
    +			{
    +				throw new RuntimeException();
    +			}
    +			backgroundRGB = rgb;
    +			backgroundSet = true;
    +		}
    +
    +		/**
    +		 * Returns the RGB value of the suggested background color.
    +		 *
    +		 * <p> If the background color has not previously been set, or has been
    +		 * unset, an <code>IllegalStateException</code> will be thrown.
    +		 *
    +		 * @throws IllegalStateException if the background color is not set.
    +		 */
    +		public int[] getBackgroundRGB()
    +		{
    +			if (!backgroundSet)
    +			{
    +				throw new IllegalStateException("PNGEncodeParam9");
    +			}
    +			return backgroundRGB;
    +		}
    +
    +		// tRNS chunk
    +
    +		private int[] transparency;
    +
    +		/**
    +		 * Sets the RGB value to be used to denote transparency.
    +		 *
    +		 * <p> Setting this attribute will cause the alpha channel
    +		 * of the input image to be ignored.
    +		 *
    +		 * <p> The 'tRNS' chunk will encode this information.
    +		 */
    +		public void setTransparentRGB(int[] transparentRGB)
    +		{
    +			transparency = (transparentRGB.clone());
    +			transparencySet = true;
    +		}
    +
    +		/**
    +		 * Returns the RGB value to be used to denote transparency.
    +		 *
    +		 * <p> If the transparent color has not previously been set,
    +		 * or has been unset, an <code>IllegalStateException</code>
    +		 * will be thrown.
    +		 *
    +		 * @throws IllegalStateException if the transparent color is not set.
    +		 */
    +		public int[] getTransparentRGB()
    +		{
    +			if (!transparencySet)
    +			{
    +				throw new IllegalStateException("PNGEncodeParam10");
    +			}
    +			return (transparency.clone());
    +		}
    +	}
    +
    +	protected int bitDepth;
    +
    +	protected boolean bitDepthSet = false;
    +
    +	/**
    +	 * Sets the desired bit depth of an image.
    +	 */
    +	public abstract void setBitDepth(int bitDepth);
    +
    +	/**
    +	 * Returns the desired bit depth for a grayscale image.
    +	 *
    +	 * <p> If the bit depth has not previously been set, or has been
    +	 * unset, an <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the bit depth is not set.
    +	 */
    +	public int getBitDepth()
    +	{
    +		if (!bitDepthSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam11");
    +		}
    +		return bitDepth;
    +	}
    +
    +	/**
    +	 * Suppresses the setting of the bit depth of a grayscale image.
    +	 * The depth of the encoded image will be inferred from the source
    +	 * image bit depth, rounded up to the next power of 2 between 1
    +	 * and 16.
    +	 */
    +	public void unsetBitDepth()
    +	{
    +		bitDepthSet = false;
    +	}
    +
    +	private boolean useInterlacing = false;
    +
    +	/**
    +	 * Turns Adam7 interlacing on or off.
    +	 */
    +	public void setInterlacing(boolean useInterlacing)
    +	{
    +		this.useInterlacing = useInterlacing;
    +	}
    +
    +	/**
    +	 * Returns <code>true</code> if Adam7 interlacing will be used.
    +	 */
    +	public boolean getInterlacing()
    +	{
    +		return useInterlacing;
    +	}
    +
    +	// bKGD chunk - delegate to subclasses
    +
    +	// In JAI 1.0, 'backgroundSet' was private.  The JDK 1.2 compiler
    +	// was lenient and incorrectly allowed this variable to be
    +	// accessed from the subclasses.  The JDK 1.3 compiler correctly
    +	// flags this as a use of a non-static variable in a static
    +	// context.  Changing 'backgroundSet' to protected would have
    +	// solved the problem, but would have introduced a visible API
    +	// change.  Thus we are forced to adopt the solution of placing a
    +	// separate private variable in each subclass and providing
    +	// separate implementations of 'unsetBackground' and
    +	// 'isBackgroundSet' in each concrete subclass.
    +
    +	/**
    +	 * Suppresses the 'bKGD' chunk from being output.
    +	 * For API compatibility with JAI 1.0, the superclass
    +	 * defines this method to throw a <code>RuntimeException</code>;
    +	 * accordingly, subclasses must provide their own implementations.
    +	 */
    +	public void unsetBackground()
    +	{
    +		throw new RuntimeException("PNGEncodeParam23");
    +	}
    +
    +	/**
    +	 * Returns true if a 'bKGD' chunk will be output.
    +	 * For API compatibility with JAI 1.0, the superclass
    +	 * defines this method to throw a <code>RuntimeException</code>;
    +	 * accordingly, subclasses must provide their own implementations.
    +	 */
    +	public boolean isBackgroundSet()
    +	{
    +		throw new RuntimeException("PNGEncodeParam24");
    +	}
    +
    +	// cHRM chunk
    +
    +	private float[] chromaticity = null;
    +
    +	private boolean chromaticitySet = false;
    +
    +	/**
    +	 * Sets the white point and primary chromaticities in CIE (x, y)
    +	 * space.
    +	 *
    +	 * <p> The <code>chromaticity</code> parameter should be a
    +	 * <code>float</code> array of length 8 containing the white point
    +	 * X and Y, red X and Y, green X and Y, and blue X and Y values in
    +	 * order.
    +	 *
    +	 * <p> The 'cHRM' chunk will encode this information.
    +	 */
    +	public void setChromaticity(float[] chromaticity)
    +	{
    +		if (chromaticity.length != 8)
    +		{
    +			throw new IllegalArgumentException();
    +		}
    +		this.chromaticity = (chromaticity.clone());
    +		chromaticitySet = true;
    +	}
    +
    +	/**
    +	 * A convenience method that calls the array version.
    +	 */
    +	public void setChromaticity(float whitePointX, float whitePointY,
    +			float redX, float redY, float greenX, float greenY, float blueX,
    +			float blueY)
    +	{
    +		float[] chroma = new float[8];
    +		chroma[0] = whitePointX;
    +		chroma[1] = whitePointY;
    +		chroma[2] = redX;
    +		chroma[3] = redY;
    +		chroma[4] = greenX;
    +		chroma[5] = greenY;
    +		chroma[6] = blueX;
    +		chroma[7] = blueY;
    +		setChromaticity(chroma);
    +	}
    +
    +	/**
    +	 * Returns the white point and primary chromaticities in
    +	 * CIE (x, y) space.
    +	 *
    +	 * <p> See the documentation for the <code>setChromaticity</code>
    +	 * method for the format of the returned data.
    +	 *
    +	 * <p> If the chromaticity has not previously been set, or has been
    +	 * unset, an <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the chromaticity is not set.
    +	 */
    +	public float[] getChromaticity()
    +	{
    +		if (!chromaticitySet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam12");
    +		}
    +		return (chromaticity.clone());
    +	}
    +
    +	/**
    +	 * Suppresses the 'cHRM' chunk from being output.
    +	 */
    +	public void unsetChromaticity()
    +	{
    +		chromaticity = null;
    +		chromaticitySet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'cHRM' chunk will be output.
    +	 */
    +	public boolean isChromaticitySet()
    +	{
    +		return chromaticitySet;
    +	}
    +
    +	// gAMA chunk
    +
    +	private float gamma;
    +
    +	private boolean gammaSet = false;
    +
    +	/**
    +	 * Sets the file gamma value for the image.
    +	 *
    +	 * <p> The 'gAMA' chunk will encode this information.
    +	 */
    +	public void setGamma(float gamma)
    +	{
    +		this.gamma = gamma;
    +		gammaSet = true;
    +	}
    +
    +	/**
    +	 * Returns the file gamma value for the image.
    +	 *
    +	 * <p> If the file gamma has not previously been set, or has been
    +	 * unset, an <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the gamma is not set.
    +	 */
    +	public float getGamma()
    +	{
    +		if (!gammaSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam13");
    +		}
    +		return gamma;
    +	}
    +
    +	/**
    +	 * Suppresses the 'gAMA' chunk from being output.
    +	 */
    +	public void unsetGamma()
    +	{
    +		gammaSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'gAMA' chunk will be output.
    +	 */
    +	public boolean isGammaSet()
    +	{
    +		return gammaSet;
    +	}
    +
    +	// hIST chunk
    +
    +	private int[] paletteHistogram = null;
    +
    +	private boolean paletteHistogramSet = false;
    +
    +	/**
    +	 * Sets the palette histogram to be stored with this image.
    +	 * The histogram consists of an array of integers, one per
    +	 * palette entry.
    +	 *
    +	 * <p> The 'hIST' chunk will encode this information.
    +	 */
    +	public void setPaletteHistogram(int[] paletteHistogram)
    +	{
    +		this.paletteHistogram = (paletteHistogram.clone());
    +		paletteHistogramSet = true;
    +	}
    +
    +	/**
    +	 * Returns the palette histogram to be stored with this image.
    +	 *
    +	 * <p> If the histogram has not previously been set, or has been
    +	 * unset, an <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the histogram is not set.
    +	 */
    +	public int[] getPaletteHistogram()
    +	{
    +		if (!paletteHistogramSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam14");
    +		}
    +		return paletteHistogram;
    +	}
    +
    +	/**
    +	 * Suppresses the 'hIST' chunk from being output.
    +	 */
    +	public void unsetPaletteHistogram()
    +	{
    +		paletteHistogram = null;
    +		paletteHistogramSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'hIST' chunk will be output.
    +	 */
    +	public boolean isPaletteHistogramSet()
    +	{
    +		return paletteHistogramSet;
    +	}
    +
    +	// iCCP chunk
    +
    +	private byte[] ICCProfileData = null;
    +
    +	private boolean ICCProfileDataSet = false;
    +
    +	/**
    +	 * Sets the ICC profile data to be stored with this image.
    +	 * The profile is represented in raw binary form.
    +	 *
    +	 * <p> The 'iCCP' chunk will encode this information.
    +	 */
    +	public void setICCProfileData(byte[] ICCProfileData)
    +	{
    +		this.ICCProfileData = (ICCProfileData.clone());
    +		ICCProfileDataSet = true;
    +	}
    +
    +	/**
    +	 * Returns the ICC profile data to be stored with this image.
    +	 *
    +	 * <p> If the ICC profile has not previously been set, or has been
    +	 * unset, an <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the ICC profile is not set.
    +	 */
    +	public byte[] getICCProfileData()
    +	{
    +		if (!ICCProfileDataSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam15");
    +		}
    +		return (ICCProfileData.clone());
    +	}
    +
    +	/**
    +	 * Suppresses the 'iCCP' chunk from being output.
    +	 */
    +	public void unsetICCProfileData()
    +	{
    +		ICCProfileData = null;
    +		ICCProfileDataSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'iCCP' chunk will be output.
    +	 */
    +	public boolean isICCProfileDataSet()
    +	{
    +		return ICCProfileDataSet;
    +	}
    +
    +	// pHYS chunk
    +
    +	private int[] physicalDimension = null;
    +
    +	private boolean physicalDimensionSet = false;
    +
    +	/**
    +	 * Sets the physical dimension information to be stored with this
    +	 * image.  The physicalDimension parameter should be a 3-entry
    +	 * array containing the number of pixels per unit in the X
    +	 * direction, the number of pixels per unit in the Y direction,
    +	 * and the unit specifier (0 = unknown, 1 = meters).
    +	 *
    +	 * <p> The 'pHYS' chunk will encode this information.
    +	 */
    +	public void setPhysicalDimension(int[] physicalDimension)
    +	{
    +		this.physicalDimension = (physicalDimension.clone());
    +		physicalDimensionSet = true;
    +	}
    +
    +	/**
    +	 * A convenience method that calls the array version.
    +	 */
    +	public void setPhysicalDimension(int xPixelsPerUnit, int yPixelsPerUnit,
    +			int unitSpecifier)
    +	{
    +		int[] pd = new int[3];
    +		pd[0] = xPixelsPerUnit;
    +		pd[1] = yPixelsPerUnit;
    +		pd[2] = unitSpecifier;
    +
    +		setPhysicalDimension(pd);
    +	}
    +
    +	/**
    +	 * Returns the physical dimension information to be stored
    +	 * with this image.
    +	 *
    +	 * <p> If the physical dimension information has not previously
    +	 * been set, or has been unset, an
    +	 * <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the physical dimension information
    +	 *        is not set.
    +	 */
    +	public int[] getPhysicalDimension()
    +	{
    +		if (!physicalDimensionSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam16");
    +		}
    +		return (physicalDimension.clone());
    +	}
    +
    +	/**
    +	 * Suppresses the 'pHYS' chunk from being output.
    +	 */
    +	public void unsetPhysicalDimension()
    +	{
    +		physicalDimension = null;
    +		physicalDimensionSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'pHYS' chunk will be output.
    +	 */
    +	public boolean isPhysicalDimensionSet()
    +	{
    +		return physicalDimensionSet;
    +	}
    +
    +	// sPLT chunk
    +
    +	private mxPngSuggestedPaletteEntry[] suggestedPalette = null;
    +
    +	private boolean suggestedPaletteSet = false;
    +
    +	/**
    +	 * Sets the suggested palette information to be stored with this
    +	 * image.  The information is passed to this method as an array of
    +	 * <code>PNGSuggestedPaletteEntry</code> objects.
    +	 *
    +	 * <p> The 'sPLT' chunk will encode this information.
    +	 */
    +	public void setSuggestedPalette(mxPngSuggestedPaletteEntry[] palette)
    +	{
    +		suggestedPalette = (palette.clone());
    +		suggestedPaletteSet = true;
    +	}
    +
    +	/**
    +	 * Returns the suggested palette information to be stored with this
    +	 * image.
    +	 *
    +	 * <p> If the suggested palette information has not previously
    +	 * been set, or has been unset, an
    +	 * <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the suggested palette
    +	 *        information is not set.
    +	 */
    +	mxPngSuggestedPaletteEntry[] getSuggestedPalette()
    +	{
    +		if (!suggestedPaletteSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam17");
    +		}
    +		return (suggestedPalette.clone());
    +	}
    +
    +	/**
    +	 * Suppresses the 'sPLT' chunk from being output.
    +	 */
    +	public void unsetSuggestedPalette()
    +	{
    +		suggestedPalette = null;
    +		suggestedPaletteSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'sPLT' chunk will be output.
    +	 */
    +	public boolean isSuggestedPaletteSet()
    +	{
    +		return suggestedPaletteSet;
    +	}
    +
    +	// sBIT chunk
    +
    +	private int[] significantBits = null;
    +
    +	private boolean significantBitsSet = false;
    +
    +	/**
    +	 * Sets the number of significant bits for each band of the image.
    +	 *
    +	 * <p> The number of entries in the <code>significantBits</code>
    +	 * array must be equal to the number of output bands in the image:
    +	 * 1 for a gray image, 2 for gray+alpha, 3 for index or truecolor,
    +	 * and 4 for truecolor+alpha.
    +	 *
    +	 * <p> The 'sBIT' chunk will encode this information.
    +	 */
    +	public void setSignificantBits(int[] significantBits)
    +	{
    +		this.significantBits = (significantBits.clone());
    +		significantBitsSet = true;
    +	}
    +
    +	/**
    +	 * Returns the number of significant bits for each band of the image.
    +	 *
    +	 * <p> If the significant bits values have not previously been
    +	 * set, or have been unset, an <code>IllegalStateException</code>
    +	 * will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the significant bits values are
    +	 *        not set.
    +	 */
    +	public int[] getSignificantBits()
    +	{
    +		if (!significantBitsSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam18");
    +		}
    +		return significantBits.clone();
    +	}
    +
    +	/**
    +	 * Suppresses the 'sBIT' chunk from being output.
    +	 */
    +	public void unsetSignificantBits()
    +	{
    +		significantBits = null;
    +		significantBitsSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if an 'sBIT' chunk will be output.
    +	 */
    +	public boolean isSignificantBitsSet()
    +	{
    +		return significantBitsSet;
    +	}
    +
    +	// sRGB chunk
    +
    +	private int SRGBIntent;
    +
    +	private boolean SRGBIntentSet = false;
    +
    +	/**
    +	 * Sets the sRGB rendering intent to be stored with this image.
    +	 * The legal values are 0 = Perceptual, 1 = Relative Colorimetric,
    +	 * 2 = Saturation, and 3 = Absolute Colorimetric.  Refer to the
    +	 * PNG specification for information on these values.
    +	 *
    +	 * <p> The 'sRGB' chunk will encode this information.
    +	 */
    +	public void setSRGBIntent(int SRGBIntent)
    +	{
    +		this.SRGBIntent = SRGBIntent;
    +		SRGBIntentSet = true;
    +	}
    +
    +	/**
    +	 * Returns the sRGB rendering intent to be stored with this image.
    +	 *
    +	 * <p> If the sRGB intent has not previously been set, or has been
    +	 * unset, an <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the sRGB intent is not set.
    +	 */
    +	public int getSRGBIntent()
    +	{
    +		if (!SRGBIntentSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam19");
    +		}
    +		return SRGBIntent;
    +	}
    +
    +	/**
    +	 * Suppresses the 'sRGB' chunk from being output.
    +	 */
    +	public void unsetSRGBIntent()
    +	{
    +		SRGBIntentSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if an 'sRGB' chunk will be output.
    +	 */
    +	public boolean isSRGBIntentSet()
    +	{
    +		return SRGBIntentSet;
    +	}
    +
    +	// tEXt chunk
    +
    +	private String[] text = null;
    +
    +	private boolean textSet = false;
    +
    +	/**
    +	 * Sets the textual data to be stored in uncompressed form with this
    +	 * image.  The data is passed to this method as an array of
    +	 * <code>String</code>s.
    +	 *
    +	 * <p> The 'tEXt' chunk will encode this information.
    +	 */
    +	public void setText(String[] text)
    +	{
    +		this.text = text;
    +		textSet = true;
    +	}
    +
    +	/**
    +	 * Returns the text strings to be stored in uncompressed form with this
    +	 * image as an array of <code>String</code>s.
    +	 *
    +	 * <p> If the text strings have not previously been set, or have been
    +	 * unset, an <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the text strings are not set.
    +	 */
    +	public String[] getText()
    +	{
    +		if (!textSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam20");
    +		}
    +		return text;
    +	}
    +
    +	/**
    +	 * Suppresses the 'tEXt' chunk from being output.
    +	 */
    +	public void unsetText()
    +	{
    +		text = null;
    +		textSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'tEXt' chunk will be output.
    +	 */
    +	public boolean isTextSet()
    +	{
    +		return textSet;
    +	}
    +
    +	// tIME chunk
    +
    +	private Date modificationTime;
    +
    +	private boolean modificationTimeSet = false;
    +
    +	/**
    +	 * Sets the modification time, as a <code>Date</code>, to be
    +	 * stored with this image.  The internal storage format will use
    +	 * UTC regardless of how the <code>modificationTime</code>
    +	 * parameter was created.
    +	 *
    +	 * <p> The 'tIME' chunk will encode this information.
    +	 */
    +	public void setModificationTime(Date modificationTime)
    +	{
    +		this.modificationTime = modificationTime;
    +		modificationTimeSet = true;
    +	}
    +
    +	/**
    +	 * Returns the modification time to be stored with this image.
    +	 *
    +	 * <p> If the bit depth has not previously been set, or has been
    +	 * unset, an <code>IllegalStateException</code> will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the bit depth is not set.
    +	 */
    +	public Date getModificationTime()
    +	{
    +		if (!modificationTimeSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam21");
    +		}
    +		return modificationTime;
    +	}
    +
    +	/**
    +	 * Suppresses the 'tIME' chunk from being output.
    +	 */
    +	public void unsetModificationTime()
    +	{
    +		modificationTime = null;
    +		modificationTimeSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'tIME' chunk will be output.
    +	 */
    +	public boolean isModificationTimeSet()
    +	{
    +		return modificationTimeSet;
    +	}
    +
    +	// tRNS chunk
    +
    +	boolean transparencySet = false;
    +
    +	/**
    +	 * Suppresses the 'tRNS' chunk from being output.
    +	 */
    +	public void unsetTransparency()
    +	{
    +		transparencySet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'tRNS' chunk will be output.
    +	 */
    +	public boolean isTransparencySet()
    +	{
    +		return transparencySet;
    +	}
    +
    +	// zTXT chunk
    +
    +	private String[] zText = null;
    +
    +	private boolean zTextSet = false;
    +
    +	/**
    +	 * Sets the text strings to be stored in compressed form with this
    +	 * image.  The data is passed to this method as an array of
    +	 * <code>String</code>s.
    +	 *
    +	 * <p> The 'zTXt' chunk will encode this information.
    +	 */
    +	public void setCompressedText(String[] text)
    +	{
    +		this.zText = text;
    +		zTextSet = true;
    +	}
    +
    +	/**
    +	 * Returns the text strings to be stored in compressed form with
    +	 * this image as an array of <code>String</code>s.
    +	 *
    +	 * <p> If the compressed text strings have not previously been
    +	 * set, or have been unset, an <code>IllegalStateException</code>
    +	 * will be thrown.
    +	 *
    +	 * @throws IllegalStateException if the compressed text strings are
    +	 *        not set.
    +	 */
    +	public String[] getCompressedText()
    +	{
    +		if (!zTextSet)
    +		{
    +			throw new IllegalStateException("PNGEncodeParam22");
    +		}
    +		return zText;
    +	}
    +
    +	/**
    +	 * Suppresses the 'zTXt' chunk from being output.
    +	 */
    +	public void unsetCompressedText()
    +	{
    +		zText = null;
    +		zTextSet = false;
    +	}
    +
    +	/**
    +	 * Returns true if a 'zTXT' chunk will be output.
    +	 */
    +	public boolean isCompressedTextSet()
    +	{
    +		return zTextSet;
    +	}
    +
    +	// Other chunk types
    +
    +	List<String> chunkType = new ArrayList<String>();
    +
    +	List<byte[]> chunkData = new ArrayList<byte[]>();
    +
    +	/**
    +	 * Adds a private chunk, in binary form, to the list of chunks to
    +	 * be stored with this image.
    +	 *
    +	 * @param type a 4-character String giving the chunk type name.
    +	 * @param data an array of <code>byte</code>s containing the
    +	 *        chunk data.
    +	 */
    +	public synchronized void addPrivateChunk(String type, byte[] data)
    +	{
    +		chunkType.add(type);
    +		chunkData.add(data.clone());
    +	}
    +
    +	/**
    +	 * Returns the number of private chunks to be written to the
    +	 * output file.
    +	 */
    +	public synchronized int getNumPrivateChunks()
    +	{
    +		return chunkType.size();
    +	}
    +
    +	/**
    +	 * Returns the type of the private chunk at a given index, as a
    +	 * 4-character <code>String</code>.  The index must be smaller
    +	 * than the return value of <code>getNumPrivateChunks</code>.
    +	 */
    +	public synchronized String getPrivateChunkType(int index)
    +	{
    +		return chunkType.get(index);
    +	}
    +
    +	/**
    +	 * Returns the data associated of the private chunk at a given
    +	 * index, as an array of <code>byte</code>s.  The index must be
    +	 * smaller than the return value of
    +	 * <code>getNumPrivateChunks</code>.
    +	 */
    +	public synchronized byte[] getPrivateChunkData(int index)
    +	{
    +		return chunkData.get(index);
    +	}
    +
    +	/**
    +	 * Remove all private chunks associated with this parameter instance
    +	 * whose 'safe-to-copy' bit is not set.  This may be advisable when
    +	 * transcoding PNG images.
    +	 */
    +	public synchronized void removeUnsafeToCopyPrivateChunks()
    +	{
    +		List<String> newChunkType = new ArrayList<String>();
    +		List<byte[]> newChunkData = new ArrayList<byte[]>();
    +
    +		int len = getNumPrivateChunks();
    +		for (int i = 0; i < len; i++)
    +		{
    +			String type = getPrivateChunkType(i);
    +			char lastChar = type.charAt(3);
    +			if (lastChar >= 'a' && lastChar <= 'z')
    +			{
    +				newChunkType.add(type);
    +				newChunkData.add(getPrivateChunkData(i));
    +			}
    +		}
    +
    +		chunkType = newChunkType;
    +		chunkData = newChunkData;
    +	}
    +
    +	/**
    +	 * Remove all private chunks associated with this parameter instance.
    +	 */
    +	public synchronized void removeAllPrivateChunks()
    +	{
    +		chunkType = new ArrayList<String>();
    +		chunkData = new ArrayList<byte[]>();
    +	}
    +
    +	/**
    +	 * An abs() function for use by the Paeth predictor.
    +	 */
    +	private static final int abs(int x)
    +	{
    +		return (x < 0) ? -x : x;
    +	}
    +
    +	/**
    +	 * The Paeth predictor routine used in PNG encoding.  This routine
    +	 * is included as a convenience to subclasses that override the
    +	 * <code>filterRow</code> method.
    +	 */
    +	public static final int paethPredictor(int a, int b, int c)
    +	{
    +		int p = a + b - c;
    +		int pa = abs(p - a);
    +		int pb = abs(p - b);
    +		int pc = abs(p - c);
    +
    +		if ((pa <= pb) && (pa <= pc))
    +		{
    +			return a;
    +		}
    +		else if (pb <= pc)
    +		{
    +			return b;
    +		}
    +		else
    +		{
    +			return c;
    +		}
    +	}
    +
    +	/**
    +	 * Performs filtering on a row of an image.  This method may be
    +	 * overridden in order to provide a custom algorithm for choosing
    +	 * the filter type for a given row.
    +	 *
    +	 * <p> The method is supplied with the current and previous rows
    +	 * of the image.  For the first row of the image, or of an
    +	 * interlacing pass, the previous row array will be filled with
    +	 * zeros as required by the PNG specification.
    +	 *
    +	 * <p> The method is also supplied with five scratch arrays.
    +	 * These arrays may be used within the method for any purpose.
    +	 * At method exit, the array at the index given by the return
    +	 * value of the method should contain the filtered data.  The
    +	 * return value will also be used as the filter type.
    +	 *
    +	 * <p> The default implementation of the method performs a trial
    +	 * encoding with each of the filter types, and computes the sum of
    +	 * absolute values of the differences between the raw bytes of the
    +	 * current row and the predicted values.  The index of the filter
    +	 * producing the smallest result is returned.
    +	 *
    +	 * <p> As an example, to perform only 'sub' filtering, this method
    +	 * could be implemented (non-optimally) as follows:
    +	 *
    +	 * <pre>
    +	 * for (int i = bytesPerPixel; i < bytesPerRow + bytesPerPixel; i++) {
    +	 *     int curr = currRow[i] & 0xff;
    +	 *     int left = currRow[i - bytesPerPixel] & 0xff;
    +	 *     scratchRow[PNG_FILTER_SUB][i] = (byte)(curr - left);
    +	 * }
    +	 * return PNG_FILTER_SUB;
    +	 * </pre>
    +	 *
    +	 * @param currRow The current row as an array of <code>byte</code>s
    +	 *        of length at least <code>bytesPerRow + bytesPerPixel</code>.
    +	 *        The pixel data starts at index <code>bytesPerPixel</code>;
    +	 *        the initial <code>bytesPerPixel</code> bytes are zero.
    +	 * @param prevRow The current row as an array of <code>byte</code>s
    +	 *        The pixel data starts at index <code>bytesPerPixel</code>;
    +	 *        the initial <code>bytesPerPixel</code> bytes are zero.
    +	 * @param scratchRows An array of 5 <code>byte</code> arrays of
    +	 *        length at least <code>bytesPerRow +
    +	 *        bytesPerPixel</code>, useable to hold temporary results.
    +	 *        The filtered row will be returned as one of the entries
    +	 *        of this array.  The returned filtered data should start
    +	 *        at index <code>bytesPerPixel</code>; The initial
    +	 *        <code>bytesPerPixel</code> bytes are not used.
    +	 * @param bytesPerRow The number of bytes in the image row.
    +	 *        This value will always be greater than 0.
    +	 * @param bytesPerPixel The number of bytes representing a single
    +	 *        pixel, rounded up to an integer.  This is the 'bpp' parameter
    +	 *        described in the PNG specification.
    +	 *
    +	 * @return The filter type to be used.  The entry of
    +	 *         <code>scratchRows[]</code> at this index holds the
    +	 *         filtered data.  */
    +	public int filterRow(byte[] currRow, byte[] prevRow, byte[][] scratchRows,
    +			int bytesPerRow, int bytesPerPixel)
    +	{
    +
    +		int[] badness = { 0, 0, 0, 0, 0 };
    +		int curr, left, up, upleft, diff;
    +		int pa, pb, pc;
    +		for (int i = bytesPerPixel; i < bytesPerRow + bytesPerPixel; i++)
    +		{
    +			curr = currRow[i] & 0xff;
    +			left = currRow[i - bytesPerPixel] & 0xff;
    +			up = prevRow[i] & 0xff;
    +			upleft = prevRow[i - bytesPerPixel] & 0xff;
    +
    +			// no filter
    +			badness[0] += curr;
    +
    +			// sub filter
    +			diff = curr - left;
    +			scratchRows[1][i] = (byte) diff;
    +			badness[1] += (diff > 0) ? diff : -diff;
    +
    +			// up filter
    +			diff = curr - up;
    +			scratchRows[2][i] = (byte) diff;
    +			badness[2] += (diff >= 0) ? diff : -diff;
    +
    +			// average filter
    +			diff = curr - ((left + up) >> 1);
    +			scratchRows[3][i] = (byte) diff;
    +			badness[3] += (diff >= 0) ? diff : -diff;
    +
    +			// paeth filter
    +
    +			// Original code much simplier but doesn't take full
    +			// advantage of relationship between pa/b/c and
    +			// information gleaned in abs operations.
    +			/// pa = up  -upleft;
    +			/// pb = left-upleft;
    +			/// pc = pa+pb;
    +			/// pa = abs(pa);
    +			/// pb = abs(pb);
    +			/// pc = abs(pc);
    +			/// if ((pa <= pb) && (pa <= pc))
    +			///   diff = curr-left;
    +			/// else if (pb <= pc)
    +			///   diff = curr-up;
    +			/// else
    +			///   diff = curr-upleft;
    +
    +			pa = up - upleft;
    +			pb = left - upleft;
    +			if (pa < 0)
    +			{
    +				if (pb < 0)
    +				{
    +					// both pa & pb neg so pc is always greater than or
    +					// equal to pa or pb;
    +					if (pa >= pb) // since pa & pb neg check sense is reversed.
    +						diff = curr - left;
    +					else
    +						diff = curr - up;
    +				}
    +				else
    +				{
    +					// pa neg pb pos so we must compute pc...
    +					pc = pa + pb;
    +					pa = -pa;
    +					if (pa <= pb) // pc is positive and less than pb
    +						if (pa <= pc)
    +							diff = curr - left;
    +						else
    +							diff = curr - upleft;
    +					else
    +					// pc is negative and less than or equal to pa,
    +					// but since pa is greater than pb this isn't an issue...
    +					if (pb <= -pc)
    +						diff = curr - up;
    +					else
    +						diff = curr - upleft;
    +				}
    +			}
    +			else
    +			{
    +				if (pb < 0)
    +				{
    +					pb = -pb; // make it positive...
    +					if (pa <= pb)
    +					{
    +						// pc would be negative and less than or equal to pb
    +						pc = pb - pa;
    +						if (pa <= pc)
    +							diff = curr - left;
    +						else if (pb == pc)
    +							// if pa is zero then pc==pb otherwise
    +							// pc must be less than pb.
    +							diff = curr - up;
    +						else
    +							diff = curr - upleft;
    +					}
    +					else
    +					{
    +						// pc would be positive and less than pa.
    +						pc = pa - pb;
    +						if (pb <= pc)
    +							diff = curr - up;
    +						else
    +							diff = curr - upleft;
    +					}
    +				}
    +				else
    +				{
    +					// both pos so pa+pb is always greater than pa/pb
    +					if (pa <= pb)
    +						diff = curr - left;
    +					else
    +						diff = curr - up;
    +				}
    +			}
    +			scratchRows[4][i] = (byte) diff;
    +			badness[4] += (diff >= 0) ? diff : -diff;
    +		}
    +		int filterType = 0;
    +		int minBadness = badness[0];
    +
    +		for (int i = 1; i < 5; i++)
    +		{
    +			if (badness[i] < minBadness)
    +			{
    +				minBadness = badness[i];
    +				filterType = i;
    +			}
    +		}
    +
    +		if (filterType == 0)
    +		{
    +			System.arraycopy(currRow, bytesPerPixel, scratchRows[0],
    +					bytesPerPixel, bytesPerRow);
    +		}
    +
    +		return filterType;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/png/mxPngImageEncoder.java b/java/src/com/mxgraph/util/png/mxPngImageEncoder.java
    new file mode 100644
    index 000000000..78ef93cb2
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/png/mxPngImageEncoder.java
    @@ -0,0 +1,1267 @@
    +/* $Id: mxPngImageEncoder.java,v 1.5 2010-08-09 16:41:04 david Exp $
    +   
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +/*
    + * Copyright (c) 2001 Sun Microsystems, Inc. All Rights Reserved.
    + *
    + * Redistribution and use in source and binary forms, with or without 
    + * modification, are permitted provided that the following conditions are met:
    + * 
    + * -Redistributions of source code must retain the above copyright notice, this 
    + * list of conditions and the following disclaimer.
    + *
    + * -Redistribution in binary form must reproduct the above copyright notice,
    + * this list of conditions and the following disclaimer in the documentation
    + * and/or other materials provided with the distribution.
    + * 
    + * Neither the name of Sun Microsystems, Inc. or the names of contributors may
    + * be used to endorse or promote products derived from this software without
    + * specific prior written permission.
    + * 
    + * This software is provided "AS IS," without a warranty of any kind. ALL
    + * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
    + * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
    + * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
    + * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
    + * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
    + * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
    + * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
    + * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
    + * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
    + * POSSIBILITY OF SUCH DAMAGES.
    + * 
    + * You acknowledge that Software is not designed,licensed or intended for use in 
    + * the design, construction, operation or maintenance of any nuclear facility.
    + */
    +package com.mxgraph.util.png;
    +
    +import java.awt.Rectangle;
    +import java.awt.image.ColorModel;
    +import java.awt.image.IndexColorModel;
    +import java.awt.image.Raster;
    +import java.awt.image.RenderedImage;
    +import java.awt.image.SampleModel;
    +import java.io.ByteArrayOutputStream;
    +import java.io.DataOutput;
    +import java.io.DataOutputStream;
    +import java.io.FilterOutputStream;
    +import java.io.IOException;
    +import java.io.OutputStream;
    +import java.util.Calendar;
    +import java.util.Date;
    +import java.util.GregorianCalendar;
    +import java.util.TimeZone;
    +import java.util.zip.Deflater;
    +import java.util.zip.DeflaterOutputStream;
    +
    +class CRC
    +{
    +
    +	private static int[] crcTable = new int[256];
    +
    +	static
    +	{
    +		// Initialize CRC table
    +		for (int n = 0; n < 256; n++)
    +		{
    +			int c = n;
    +			for (int k = 0; k < 8; k++)
    +			{
    +				if ((c & 1) == 1)
    +				{
    +					c = 0xedb88320 ^ (c >>> 1);
    +				}
    +				else
    +				{
    +					c >>>= 1;
    +				}
    +
    +				crcTable[n] = c;
    +			}
    +		}
    +	}
    +
    +	public static int updateCRC(int crc, byte[] data, int off, int len)
    +	{
    +		int c = crc;
    +
    +		for (int n = 0; n < len; n++)
    +		{
    +			c = crcTable[(c ^ data[off + n]) & 0xff] ^ (c >>> 8);
    +		}
    +
    +		return c;
    +	}
    +}
    +
    +class ChunkStream extends OutputStream implements DataOutput
    +{
    +
    +	private String type;
    +
    +	private ByteArrayOutputStream baos;
    +
    +	private DataOutputStream dos;
    +
    +	ChunkStream(String type)
    +	{
    +		this.type = type;
    +
    +		this.baos = new ByteArrayOutputStream();
    +		this.dos = new DataOutputStream(baos);
    +	}
    +
    +	public void write(byte[] b) throws IOException
    +	{
    +		dos.write(b);
    +	}
    +
    +	public void write(byte[] b, int off, int len) throws IOException
    +	{
    +		dos.write(b, off, len);
    +	}
    +
    +	public void write(int b) throws IOException
    +	{
    +		dos.write(b);
    +	}
    +
    +	public void writeBoolean(boolean v) throws IOException
    +	{
    +		dos.writeBoolean(v);
    +	}
    +
    +	public void writeByte(int v) throws IOException
    +	{
    +		dos.writeByte(v);
    +	}
    +
    +	public void writeBytes(String s) throws IOException
    +	{
    +		dos.writeBytes(s);
    +	}
    +
    +	public void writeChar(int v) throws IOException
    +	{
    +		dos.writeChar(v);
    +	}
    +
    +	public void writeChars(String s) throws IOException
    +	{
    +		dos.writeChars(s);
    +	}
    +
    +	public void writeDouble(double v) throws IOException
    +	{
    +		dos.writeDouble(v);
    +	}
    +
    +	public void writeFloat(float v) throws IOException
    +	{
    +		dos.writeFloat(v);
    +	}
    +
    +	public void writeInt(int v) throws IOException
    +	{
    +		dos.writeInt(v);
    +	}
    +
    +	public void writeLong(long v) throws IOException
    +	{
    +		dos.writeLong(v);
    +	}
    +
    +	public void writeShort(int v) throws IOException
    +	{
    +		dos.writeShort(v);
    +	}
    +
    +	public void writeUTF(String str) throws IOException
    +	{
    +		dos.writeUTF(str);
    +	}
    +
    +	public void writeToStream(DataOutputStream output) throws IOException
    +	{
    +		byte[] typeSignature = new byte[4];
    +		typeSignature[0] = (byte) type.charAt(0);
    +		typeSignature[1] = (byte) type.charAt(1);
    +		typeSignature[2] = (byte) type.charAt(2);
    +		typeSignature[3] = (byte) type.charAt(3);
    +
    +		dos.flush();
    +		baos.flush();
    +
    +		byte[] data = baos.toByteArray();
    +		int len = data.length;
    +
    +		output.writeInt(len);
    +		output.write(typeSignature);
    +		output.write(data, 0, len);
    +
    +		int crc = 0xffffffff;
    +		crc = CRC.updateCRC(crc, typeSignature, 0, 4);
    +		crc = CRC.updateCRC(crc, data, 0, len);
    +		output.writeInt(crc ^ 0xffffffff);
    +	}
    +
    +	/**
    +	 * this doesnt do much, its main purpose is to stop complaints
    +	 * about 'outputStream not closed...'.
    +	 * 
    +	 * @throws IOException
    +	 */
    +	public void close() throws IOException
    +	{
    +
    +		if (baos != null)
    +		{
    +			baos.close();
    +			baos = null;
    +		}
    +		if (dos != null)
    +		{
    +			dos.close();
    +			dos = null;
    +		}
    +	}
    +}
    +
    +class IDATOutputStream extends FilterOutputStream
    +{
    +
    +	private static final byte[] typeSignature = { (byte) 'I', (byte) 'D',
    +			(byte) 'A', (byte) 'T' };
    +
    +	private int bytesWritten = 0;
    +
    +	private int segmentLength;
    +
    +	byte[] buffer;
    +
    +	public IDATOutputStream(OutputStream output, int segmentLength)
    +	{
    +		super(output);
    +		this.segmentLength = segmentLength;
    +		this.buffer = new byte[segmentLength];
    +	}
    +
    +	public void close() throws IOException
    +	{
    +		flush();
    +	}
    +
    +	private void writeInt(int x) throws IOException
    +	{
    +		out.write(x >> 24);
    +		out.write((x >> 16) & 0xff);
    +		out.write((x >> 8) & 0xff);
    +		out.write(x & 0xff);
    +	}
    +
    +	public void flush() throws IOException
    +	{
    +		// Length
    +		writeInt(bytesWritten);
    +		// 'IDAT' signature
    +		out.write(typeSignature);
    +		// Data
    +		out.write(buffer, 0, bytesWritten);
    +
    +		int crc = 0xffffffff;
    +		crc = CRC.updateCRC(crc, typeSignature, 0, 4);
    +		crc = CRC.updateCRC(crc, buffer, 0, bytesWritten);
    +
    +		// CRC
    +		writeInt(crc ^ 0xffffffff);
    +
    +		// Reset buffer
    +		bytesWritten = 0;
    +	}
    +
    +	public void write(byte[] b) throws IOException
    +	{
    +		this.write(b, 0, b.length);
    +	}
    +
    +	public void write(byte[] b, int off, int len) throws IOException
    +	{
    +		while (len > 0)
    +		{
    +			int bytes = Math.min(segmentLength - bytesWritten, len);
    +			System.arraycopy(b, off, buffer, bytesWritten, bytes);
    +			off += bytes;
    +			len -= bytes;
    +			bytesWritten += bytes;
    +
    +			if (bytesWritten == segmentLength)
    +			{
    +				flush();
    +			}
    +		}
    +	}
    +
    +	public void write(int b) throws IOException
    +	{
    +		buffer[bytesWritten++] = (byte) b;
    +		if (bytesWritten == segmentLength)
    +		{
    +			flush();
    +		}
    +	}
    +}
    +
    +/**
    + * An ImageEncoder for the PNG file format.
    + *
    + * @since EA4
    + * @version $Id: mxPngImageEncoder.java,v 1.5 2010-08-09 16:41:04 david Exp $
    + */
    +public class mxPngImageEncoder
    +{
    +
    +	private static final int PNG_COLOR_GRAY = 0;
    +
    +	private static final int PNG_COLOR_RGB = 2;
    +
    +	private static final int PNG_COLOR_PALETTE = 3;
    +
    +	private static final int PNG_COLOR_GRAY_ALPHA = 4;
    +
    +	private static final int PNG_COLOR_RGB_ALPHA = 6;
    +
    +	private static final byte[] magic = { (byte) 137, (byte) 80, (byte) 78,
    +			(byte) 71, (byte) 13, (byte) 10, (byte) 26, (byte) 10 };
    +
    +	private mxPngEncodeParam param;
    +
    +	private RenderedImage image;
    +
    +	private int width;
    +
    +	private int height;
    +
    +	private int bitDepth;
    +
    +	private int bitShift;
    +
    +	private int numBands;
    +
    +	private int colorType;
    +
    +	private int bpp; // bytes per pixel, rounded up
    +
    +	private boolean skipAlpha = false;
    +
    +	private boolean compressGray = false;
    +
    +	private boolean interlace;
    +
    +	private byte[] redPalette = null;
    +
    +	private byte[] greenPalette = null;
    +
    +	private byte[] bluePalette = null;
    +
    +	private byte[] alphaPalette = null;
    +
    +	private DataOutputStream dataOutput;
    +
    +	/** The OutputStream associcted with this ImageEncoder. */
    +	protected OutputStream output;
    +
    +	public mxPngImageEncoder(OutputStream output, mxPngEncodeParam param)
    +	{
    +		this.output = output;
    +		this.param = param;
    +
    +		this.dataOutput = new DataOutputStream(output);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public mxPngEncodeParam getParam()
    +	{
    +		return param;
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void setParam(mxPngEncodeParam param)
    +	{
    +		this.param = param;
    +	}
    +
    +	/** Returns the OutputStream associated with this ImageEncoder. */
    +	public OutputStream getOutputStream()
    +	{
    +		return output;
    +	}
    +
    +	private void writeMagic() throws IOException
    +	{
    +		dataOutput.write(magic);
    +	}
    +
    +	private void writeIHDR() throws IOException
    +	{
    +		ChunkStream cs = new ChunkStream("IHDR");
    +		cs.writeInt(width);
    +		cs.writeInt(height);
    +		cs.writeByte((byte) bitDepth);
    +		cs.writeByte((byte) colorType);
    +		cs.writeByte((byte) 0);
    +		cs.writeByte((byte) 0);
    +		cs.writeByte(interlace ? (byte) 1 : (byte) 0);
    +
    +		cs.writeToStream(dataOutput);
    +		cs.close();
    +	}
    +
    +	private byte[] prevRow = null;
    +
    +	private byte[] currRow = null;
    +
    +	private byte[][] filteredRows = null;
    +
    +	private void encodePass(OutputStream os, Raster ras, int xOffset,
    +			int yOffset, int xSkip, int ySkip) throws IOException
    +	{
    +		int minX = ras.getMinX();
    +		int minY = ras.getMinY();
    +		int width = ras.getWidth();
    +		int height = ras.getHeight();
    +
    +		xOffset *= numBands;
    +		xSkip *= numBands;
    +
    +		int samplesPerByte = 8 / bitDepth;
    +
    +		int numSamples = width * numBands;
    +		int[] samples = new int[numSamples];
    +
    +		int pixels = (numSamples - xOffset + xSkip - 1) / xSkip;
    +		int bytesPerRow = pixels * numBands;
    +		if (bitDepth < 8)
    +		{
    +			bytesPerRow = (bytesPerRow + samplesPerByte - 1) / samplesPerByte;
    +		}
    +		else if (bitDepth == 16)
    +		{
    +			bytesPerRow *= 2;
    +		}
    +
    +		if (bytesPerRow == 0)
    +		{
    +			return;
    +		}
    +
    +		currRow = new byte[bytesPerRow + bpp];
    +		prevRow = new byte[bytesPerRow + bpp];
    +
    +		filteredRows = new byte[5][bytesPerRow + bpp];
    +
    +		int maxValue = (1 << bitDepth) - 1;
    +
    +		for (int row = minY + yOffset; row < minY + height; row += ySkip)
    +		{
    +			ras.getPixels(minX, row, width, 1, samples);
    +
    +			if (compressGray)
    +			{
    +				int shift = 8 - bitDepth;
    +				for (int i = 0; i < width; i++)
    +				{
    +					samples[i] >>= shift;
    +				}
    +			}
    +
    +			int count = bpp; // leave first 'bpp' bytes zero
    +			int pos = 0;
    +			int tmp = 0;
    +
    +			switch (bitDepth)
    +			{
    +				case 1:
    +				case 2:
    +				case 4:
    +					// Image can only have a single band
    +
    +					int mask = samplesPerByte - 1;
    +					for (int s = xOffset; s < numSamples; s += xSkip)
    +					{
    +						int shiftSamp = samples[s] >> bitShift;
    +						int val = shiftSamp > maxValue ? maxValue : shiftSamp;
    +						tmp = (tmp << bitDepth) | val;
    +
    +						if (pos++ == mask)
    +						{
    +							currRow[count++] = (byte) tmp;
    +							tmp = 0;
    +							pos = 0;
    +						}
    +					}
    +
    +					// Left shift the last byte
    +					if (pos != 0)
    +					{
    +						tmp <<= (samplesPerByte - pos) * bitDepth;
    +						currRow[count++] = (byte) tmp;
    +					}
    +					break;
    +
    +				case 8:
    +					for (int s = xOffset; s < numSamples; s += xSkip)
    +					{
    +						for (int b = 0; b < numBands; b++)
    +						{
    +							int sampShift = samples[s + b] >> bitShift;
    +							currRow[count++] = (byte) (sampShift > maxValue ? maxValue : sampShift);
    +						}
    +					}
    +					break;
    +
    +				case 16:
    +					for (int s = xOffset; s < numSamples; s += xSkip)
    +					{
    +						for (int b = 0; b < numBands; b++)
    +						{
    +							int sampShift = samples[s + b] >> bitShift;
    +							int val = sampShift > maxValue ? maxValue : sampShift;
    +							currRow[count++] = (byte) (val >> 8);
    +							currRow[count++] = (byte) (val & 0xff);
    +						}
    +					}
    +					break;
    +			}
    +
    +			// Perform filtering
    +			int filterType = param.filterRow(currRow, prevRow, filteredRows,
    +					bytesPerRow, bpp);
    +
    +			os.write(filterType);
    +			os.write(filteredRows[filterType], bpp, bytesPerRow);
    +
    +			// Swap current and previous rows
    +			byte[] swap = currRow;
    +			currRow = prevRow;
    +			prevRow = swap;
    +		}
    +	}
    +
    +	private void writeIDAT() throws IOException
    +	{
    +		IDATOutputStream ios = new IDATOutputStream(dataOutput, 8192);
    +		DeflaterOutputStream dos = new DeflaterOutputStream(ios,
    +				new Deflater(9));
    +
    +		// Future work - don't convert entire image to a Raster It
    +		// might seem that you could just call image.getData() but
    +		// 'BufferedImage.subImage' doesn't appear to set the Width
    +		// and height properly of the Child Raster, so the Raster
    +		// you get back here appears larger than it should.
    +		// This solves that problem by bounding the raster to the
    +		// image's bounds...
    +		Raster ras = image.getData(new Rectangle(image.getMinX(), image
    +				.getMinY(), image.getWidth(), image.getHeight()));
    +		// System.out.println("Image: [" +
    +		//                    image.getMinY()  + ", " +
    +		//                    image.getMinX()  + ", " +
    +		//                    image.getWidth()  + ", " +
    +		//                    image.getHeight() + "]");
    +		// System.out.println("Ras: [" +
    +		//                    ras.getMinX()  + ", " +
    +		//                    ras.getMinY()  + ", " +
    +		//                    ras.getWidth()  + ", " +
    +		//                    ras.getHeight() + "]");
    +
    +		if (skipAlpha)
    +		{
    +			int numBands = ras.getNumBands() - 1;
    +			int[] bandList = new int[numBands];
    +			for (int i = 0; i < numBands; i++)
    +			{
    +				bandList[i] = i;
    +			}
    +			ras = ras.createChild(0, 0, ras.getWidth(), ras.getHeight(), 0, 0,
    +					bandList);
    +		}
    +
    +		if (interlace)
    +		{
    +			// Interlacing pass 1
    +			encodePass(dos, ras, 0, 0, 8, 8);
    +			// Interlacing pass 2
    +			encodePass(dos, ras, 4, 0, 8, 8);
    +			// Interlacing pass 3
    +			encodePass(dos, ras, 0, 4, 4, 8);
    +			// Interlacing pass 4
    +			encodePass(dos, ras, 2, 0, 4, 4);
    +			// Interlacing pass 5
    +			encodePass(dos, ras, 0, 2, 2, 4);
    +			// Interlacing pass 6
    +			encodePass(dos, ras, 1, 0, 2, 2);
    +			// Interlacing pass 7
    +			encodePass(dos, ras, 0, 1, 1, 2);
    +		}
    +		else
    +		{
    +			encodePass(dos, ras, 0, 0, 1, 1);
    +		}
    +
    +		dos.finish();
    +		ios.flush();
    +	}
    +
    +	private void writeIEND() throws IOException
    +	{
    +		ChunkStream cs = new ChunkStream("IEND");
    +		cs.writeToStream(dataOutput);
    +		cs.close();
    +	}
    +
    +	private static final float[] srgbChroma = { 0.31270F, 0.329F, 0.64F, 0.33F,
    +			0.3F, 0.6F, 0.15F, 0.06F };
    +
    +	private void writeCHRM() throws IOException
    +	{
    +		if (param.isChromaticitySet() || param.isSRGBIntentSet())
    +		{
    +			ChunkStream cs = new ChunkStream("cHRM");
    +
    +			float[] chroma;
    +			if (!param.isSRGBIntentSet())
    +			{
    +				chroma = param.getChromaticity();
    +			}
    +			else
    +			{
    +				chroma = srgbChroma; // SRGB chromaticities
    +			}
    +
    +			for (int i = 0; i < 8; i++)
    +			{
    +				cs.writeInt((int) (chroma[i] * 100000));
    +			}
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writeGAMA() throws IOException
    +	{
    +		if (param.isGammaSet() || param.isSRGBIntentSet())
    +		{
    +			ChunkStream cs = new ChunkStream("gAMA");
    +
    +			float gamma;
    +			if (!param.isSRGBIntentSet())
    +			{
    +				gamma = param.getGamma();
    +			}
    +			else
    +			{
    +				gamma = 1.0F / 2.2F; // SRGB gamma
    +			}
    +			// TD should include the .5 but causes regard to say
    +			// everything is different.
    +			cs.writeInt((int) (gamma * 100000/*+0.5*/));
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writeICCP() throws IOException
    +	{
    +		if (param.isICCProfileDataSet())
    +		{
    +			ChunkStream cs = new ChunkStream("iCCP");
    +			byte[] ICCProfileData = param.getICCProfileData();
    +			cs.write(ICCProfileData);
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writeSBIT() throws IOException
    +	{
    +		if (param.isSignificantBitsSet())
    +		{
    +			ChunkStream cs = new ChunkStream("sBIT");
    +			int[] significantBits = param.getSignificantBits();
    +			int len = significantBits.length;
    +			for (int i = 0; i < len; i++)
    +			{
    +				cs.writeByte(significantBits[i]);
    +			}
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writeSRGB() throws IOException
    +	{
    +		if (param.isSRGBIntentSet())
    +		{
    +			ChunkStream cs = new ChunkStream("sRGB");
    +
    +			int intent = param.getSRGBIntent();
    +			cs.write(intent);
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writePLTE() throws IOException
    +	{
    +		if (redPalette == null)
    +		{
    +			return;
    +		}
    +
    +		ChunkStream cs = new ChunkStream("PLTE");
    +		for (int i = 0; i < redPalette.length; i++)
    +		{
    +			cs.writeByte(redPalette[i]);
    +			cs.writeByte(greenPalette[i]);
    +			cs.writeByte(bluePalette[i]);
    +		}
    +
    +		cs.writeToStream(dataOutput);
    +		cs.close();
    +	}
    +
    +	private void writeBKGD() throws IOException
    +	{
    +		if (param.isBackgroundSet())
    +		{
    +			ChunkStream cs = new ChunkStream("bKGD");
    +
    +			switch (colorType)
    +			{
    +				case PNG_COLOR_GRAY:
    +				case PNG_COLOR_GRAY_ALPHA:
    +					int gray = ((mxPngEncodeParam.Gray) param)
    +							.getBackgroundGray();
    +					cs.writeShort(gray);
    +					break;
    +
    +				case PNG_COLOR_PALETTE:
    +					int index = ((mxPngEncodeParam.Palette) param)
    +							.getBackgroundPaletteIndex();
    +					cs.writeByte(index);
    +					break;
    +
    +				case PNG_COLOR_RGB:
    +				case PNG_COLOR_RGB_ALPHA:
    +					int[] rgb = ((mxPngEncodeParam.RGB) param)
    +							.getBackgroundRGB();
    +					cs.writeShort(rgb[0]);
    +					cs.writeShort(rgb[1]);
    +					cs.writeShort(rgb[2]);
    +					break;
    +			}
    +
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writeHIST() throws IOException
    +	{
    +		if (param.isPaletteHistogramSet())
    +		{
    +			ChunkStream cs = new ChunkStream("hIST");
    +
    +			int[] hist = param.getPaletteHistogram();
    +			for (int i = 0; i < hist.length; i++)
    +			{
    +				cs.writeShort(hist[i]);
    +			}
    +
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writeTRNS() throws IOException
    +	{
    +		if (param.isTransparencySet() && (colorType != PNG_COLOR_GRAY_ALPHA)
    +				&& (colorType != PNG_COLOR_RGB_ALPHA))
    +		{
    +			ChunkStream cs = new ChunkStream("tRNS");
    +
    +			if (param instanceof mxPngEncodeParam.Palette)
    +			{
    +				byte[] t = ((mxPngEncodeParam.Palette) param)
    +						.getPaletteTransparency();
    +				for (int i = 0; i < t.length; i++)
    +				{
    +					cs.writeByte(t[i]);
    +				}
    +			}
    +			else if (param instanceof mxPngEncodeParam.Gray)
    +			{
    +				int t = ((mxPngEncodeParam.Gray) param).getTransparentGray();
    +				cs.writeShort(t);
    +			}
    +			else if (param instanceof mxPngEncodeParam.RGB)
    +			{
    +				int[] t = ((mxPngEncodeParam.RGB) param).getTransparentRGB();
    +				cs.writeShort(t[0]);
    +				cs.writeShort(t[1]);
    +				cs.writeShort(t[2]);
    +			}
    +
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +		else if (colorType == PNG_COLOR_PALETTE)
    +		{
    +			int lastEntry = Math.min(255, alphaPalette.length - 1);
    +			int nonOpaque;
    +			for (nonOpaque = lastEntry; nonOpaque >= 0; nonOpaque--)
    +			{
    +				if (alphaPalette[nonOpaque] != (byte) 255)
    +				{
    +					break;
    +				}
    +			}
    +
    +			if (nonOpaque >= 0)
    +			{
    +				ChunkStream cs = new ChunkStream("tRNS");
    +				for (int i = 0; i <= nonOpaque; i++)
    +				{
    +					cs.writeByte(alphaPalette[i]);
    +				}
    +				cs.writeToStream(dataOutput);
    +				cs.close();
    +			}
    +		}
    +	}
    +
    +	private void writePHYS() throws IOException
    +	{
    +		if (param.isPhysicalDimensionSet())
    +		{
    +			ChunkStream cs = new ChunkStream("pHYs");
    +
    +			int[] dims = param.getPhysicalDimension();
    +			cs.writeInt(dims[0]);
    +			cs.writeInt(dims[1]);
    +			cs.writeByte((byte) dims[2]);
    +
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writeSPLT() throws IOException
    +	{
    +		if (param.isSuggestedPaletteSet())
    +		{
    +			ChunkStream cs = new ChunkStream("sPLT");
    +
    +			System.out.println("sPLT not supported yet.");
    +
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writeTIME() throws IOException
    +	{
    +		if (param.isModificationTimeSet())
    +		{
    +			ChunkStream cs = new ChunkStream("tIME");
    +
    +			Date date = param.getModificationTime();
    +			TimeZone gmt = TimeZone.getTimeZone("GMT");
    +
    +			GregorianCalendar cal = new GregorianCalendar(gmt);
    +			cal.setTime(date);
    +
    +			int year = cal.get(Calendar.YEAR);
    +			int month = cal.get(Calendar.MONTH);
    +			int day = cal.get(Calendar.DAY_OF_MONTH);
    +			int hour = cal.get(Calendar.HOUR_OF_DAY);
    +			int minute = cal.get(Calendar.MINUTE);
    +			int second = cal.get(Calendar.SECOND);
    +
    +			cs.writeShort(year);
    +			cs.writeByte(month + 1);
    +			cs.writeByte(day);
    +			cs.writeByte(hour);
    +			cs.writeByte(minute);
    +			cs.writeByte(second);
    +
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	private void writeTEXT() throws IOException
    +	{
    +		if (param.isTextSet())
    +		{
    +			String[] text = param.getText();
    +
    +			for (int i = 0; i < text.length / 2; i++)
    +			{
    +				byte[] keyword = text[2 * i].getBytes();
    +				byte[] value = text[2 * i + 1].getBytes();
    +
    +				ChunkStream cs = new ChunkStream("tEXt");
    +
    +				cs.write(keyword, 0, Math.min(keyword.length, 79));
    +				cs.write(0);
    +				cs.write(value);
    +
    +				cs.writeToStream(dataOutput);
    +				cs.close();
    +			}
    +		}
    +	}
    +
    +	private void writeZTXT() throws IOException
    +	{
    +		if (param.isCompressedTextSet())
    +		{
    +			String[] text = param.getCompressedText();
    +
    +			for (int i = 0; i < text.length / 2; i++)
    +			{
    +				byte[] keyword = text[2 * i].getBytes();
    +				byte[] value = text[2 * i + 1].getBytes();
    +
    +				ChunkStream cs = new ChunkStream("zTXt");
    +
    +				cs.write(keyword, 0, Math.min(keyword.length, 79));
    +				cs.write(0);
    +				cs.write(0);
    +
    +				DeflaterOutputStream dos = new DeflaterOutputStream(cs);
    +				dos.write(value);
    +				dos.finish();
    +
    +				cs.writeToStream(dataOutput);
    +				cs.close();
    +			}
    +		}
    +	}
    +
    +	private void writePrivateChunks() throws IOException
    +	{
    +		int numChunks = param.getNumPrivateChunks();
    +		for (int i = 0; i < numChunks; i++)
    +		{
    +			String type = param.getPrivateChunkType(i);
    +			byte[] data = param.getPrivateChunkData(i);
    +
    +			ChunkStream cs = new ChunkStream(type);
    +			cs.write(data);
    +			cs.writeToStream(dataOutput);
    +			cs.close();
    +		}
    +	}
    +
    +	/**
    +	 * Analyzes a set of palettes and determines if it can be expressed
    +	 * as a standard set of gray values, with zero or one values being
    +	 * fully transparent and the rest being fully opaque.  If it
    +	 * is possible to express the data thusly, the method returns
    +	 * a suitable instance of PNGEncodeParam.Gray; otherwise it
    +	 * returns null.
    +	 */
    +	private mxPngEncodeParam.Gray createGrayParam(byte[] redPalette,
    +			byte[] greenPalette, byte[] bluePalette, byte[] alphaPalette)
    +	{
    +		mxPngEncodeParam.Gray param = new mxPngEncodeParam.Gray();
    +		int numTransparent = 0;
    +
    +		int grayFactor = 255 / ((1 << bitDepth) - 1);
    +		int entries = 1 << bitDepth;
    +		for (int i = 0; i < entries; i++)
    +		{
    +			byte red = redPalette[i];
    +			if ((red != i * grayFactor) || (red != greenPalette[i])
    +					|| (red != bluePalette[i]))
    +			{
    +				return null;
    +			}
    +
    +			// All alphas must be 255 except at most 1 can be 0
    +			byte alpha = alphaPalette[i];
    +			if (alpha == (byte) 0)
    +			{
    +				param.setTransparentGray(i);
    +
    +				++numTransparent;
    +				if (numTransparent > 1)
    +				{
    +					return null;
    +				}
    +			}
    +			else if (alpha != (byte) 255)
    +			{
    +				return null;
    +			}
    +		}
    +
    +		return param;
    +	}
    +
    +	/**
    +	 * This method encodes a <code>RenderedImage</code> into PNG.
    +	 * The stream into which the PNG is dumped is not closed at
    +	 * the end of the operation, this should be done if needed
    +	 * by the caller of this method.
    +	 */
    +	public void encode(RenderedImage im) throws IOException
    +	{
    +		this.image = im;
    +		this.width = image.getWidth();
    +		this.height = image.getHeight();
    +
    +		SampleModel sampleModel = image.getSampleModel();
    +
    +		int[] sampleSize = sampleModel.getSampleSize();
    +
    +		// Set bitDepth to a sentinel value
    +		this.bitDepth = -1;
    +		this.bitShift = 0;
    +
    +		// Allow user to override the bit depth of gray images
    +		if (param instanceof mxPngEncodeParam.Gray)
    +		{
    +			mxPngEncodeParam.Gray paramg = (mxPngEncodeParam.Gray) param;
    +			if (paramg.isBitDepthSet())
    +			{
    +				this.bitDepth = paramg.getBitDepth();
    +			}
    +
    +			if (paramg.isBitShiftSet())
    +			{
    +				this.bitShift = paramg.getBitShift();
    +			}
    +		}
    +
    +		// Get bit depth from image if not set in param
    +		if (this.bitDepth == -1)
    +		{
    +			// Get bit depth from channel 0 of the image
    +
    +			this.bitDepth = sampleSize[0];
    +			// Ensure all channels have the same bit depth
    +			for (int i = 1; i < sampleSize.length; i++)
    +			{
    +				if (sampleSize[i] != bitDepth)
    +				{
    +					throw new RuntimeException();
    +				}
    +			}
    +
    +			// Round bit depth up to a power of 2
    +			if (bitDepth > 2 && bitDepth < 4)
    +			{
    +				bitDepth = 4;
    +			}
    +			else if (bitDepth > 4 && bitDepth < 8)
    +			{
    +				bitDepth = 8;
    +			}
    +			else if (bitDepth > 8 && bitDepth < 16)
    +			{
    +				bitDepth = 16;
    +			}
    +			else if (bitDepth > 16)
    +			{
    +				throw new RuntimeException();
    +			}
    +		}
    +
    +		this.numBands = sampleModel.getNumBands();
    +		this.bpp = numBands * ((bitDepth == 16) ? 2 : 1);
    +
    +		ColorModel colorModel = image.getColorModel();
    +		if (colorModel instanceof IndexColorModel)
    +		{
    +			if (bitDepth < 1 || bitDepth > 8)
    +			{
    +				throw new RuntimeException();
    +			}
    +			if (sampleModel.getNumBands() != 1)
    +			{
    +				throw new RuntimeException();
    +			}
    +
    +			IndexColorModel icm = (IndexColorModel) colorModel;
    +			int size = icm.getMapSize();
    +
    +			redPalette = new byte[size];
    +			greenPalette = new byte[size];
    +			bluePalette = new byte[size];
    +			alphaPalette = new byte[size];
    +
    +			icm.getReds(redPalette);
    +			icm.getGreens(greenPalette);
    +			icm.getBlues(bluePalette);
    +			icm.getAlphas(alphaPalette);
    +
    +			this.bpp = 1;
    +
    +			if (param == null)
    +			{
    +				param = createGrayParam(redPalette, greenPalette, bluePalette,
    +						alphaPalette);
    +			}
    +
    +			// If param is still null, it can't be expressed as gray
    +			if (param == null)
    +			{
    +				param = new mxPngEncodeParam.Palette();
    +			}
    +
    +			if (param instanceof mxPngEncodeParam.Palette)
    +			{
    +				// If palette not set in param, create one from the ColorModel.
    +				mxPngEncodeParam.Palette parami = (mxPngEncodeParam.Palette) param;
    +				if (parami.isPaletteSet())
    +				{
    +					int[] palette = parami.getPalette();
    +					size = palette.length / 3;
    +
    +					int index = 0;
    +					for (int i = 0; i < size; i++)
    +					{
    +						redPalette[i] = (byte) palette[index++];
    +						greenPalette[i] = (byte) palette[index++];
    +						bluePalette[i] = (byte) palette[index++];
    +						alphaPalette[i] = (byte) 255;
    +					}
    +				}
    +				this.colorType = PNG_COLOR_PALETTE;
    +			}
    +			else if (param instanceof mxPngEncodeParam.Gray)
    +			{
    +				redPalette = greenPalette = bluePalette = alphaPalette = null;
    +				this.colorType = PNG_COLOR_GRAY;
    +			}
    +			else
    +			{
    +				throw new RuntimeException();
    +			}
    +		}
    +		else if (numBands == 1)
    +		{
    +			if (param == null)
    +			{
    +				param = new mxPngEncodeParam.Gray();
    +			}
    +			this.colorType = PNG_COLOR_GRAY;
    +		}
    +		else if (numBands == 2)
    +		{
    +			if (param == null)
    +			{
    +				param = new mxPngEncodeParam.Gray();
    +			}
    +
    +			if (param.isTransparencySet())
    +			{
    +				skipAlpha = true;
    +				numBands = 1;
    +				if ((sampleSize[0] == 8) && (bitDepth < 8))
    +				{
    +					compressGray = true;
    +				}
    +				bpp = (bitDepth == 16) ? 2 : 1;
    +				this.colorType = PNG_COLOR_GRAY;
    +			}
    +			else
    +			{
    +				if (this.bitDepth < 8)
    +				{
    +					this.bitDepth = 8;
    +				}
    +				this.colorType = PNG_COLOR_GRAY_ALPHA;
    +			}
    +		}
    +		else if (numBands == 3)
    +		{
    +			if (param == null)
    +			{
    +				param = new mxPngEncodeParam.RGB();
    +			}
    +			this.colorType = PNG_COLOR_RGB;
    +		}
    +		else if (numBands == 4)
    +		{
    +			if (param == null)
    +			{
    +				param = new mxPngEncodeParam.RGB();
    +			}
    +			if (param.isTransparencySet())
    +			{
    +				skipAlpha = true;
    +				numBands = 3;
    +				bpp = (bitDepth == 16) ? 6 : 3;
    +				this.colorType = PNG_COLOR_RGB;
    +			}
    +			else
    +			{
    +				this.colorType = PNG_COLOR_RGB_ALPHA;
    +			}
    +		}
    +
    +		interlace = param.getInterlacing();
    +
    +		writeMagic();
    +
    +		writeIHDR();
    +
    +		writeCHRM();
    +		writeGAMA();
    +		writeICCP();
    +		writeSBIT();
    +		writeSRGB();
    +
    +		writePLTE();
    +
    +		writeHIST();
    +		writeTRNS();
    +		writeBKGD();
    +
    +		writePHYS();
    +		writeSPLT();
    +		writeTIME();
    +		writeTEXT();
    +		writeZTXT();
    +
    +		writePrivateChunks();
    +
    +		writeIDAT();
    +
    +		writeIEND();
    +
    +		dataOutput.flush();
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/png/mxPngSuggestedPaletteEntry.java b/java/src/com/mxgraph/util/png/mxPngSuggestedPaletteEntry.java
    new file mode 100644
    index 000000000..3d7ca953b
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/png/mxPngSuggestedPaletteEntry.java
    @@ -0,0 +1,75 @@
    +/*
    + * $Id: mxPngSuggestedPaletteEntry.java,v 1.4 2010-08-09 16:41:04 david Exp $
    + * Copyright (c) 2001 Sun Microsystems, Inc. All Rights Reserved.
    + *
    + * Redistribution and use in source and binary forms, with or without 
    + * modification, are permitted provided that the following conditions are met:
    + * 
    + * -Redistributions of source code must retain the above copyright notice, this 
    + * list of conditions and the following disclaimer.
    + *
    + * -Redistribution in binary form must reproduct the above copyright notice,
    + * this list of conditions and the following disclaimer in the documentation
    + * and/or other materials provided with the distribution.
    + * 
    + * Neither the name of Sun Microsystems, Inc. or the names of contributors may
    + * be used to endorse or promote products derived from this software without
    + * specific prior written permission.
    + * 
    + * This software is provided "AS IS," without a warranty of any kind. ALL
    + * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
    + * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
    + * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
    + * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
    + * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
    + * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
    + * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
    + * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
    + * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
    + * POSSIBILITY OF SUCH DAMAGES.
    + * 
    + * You acknowledge that Software is not designed,licensed or intended for use in 
    + * the design, construction, operation or maintenance of any nuclear facility.
    + */
    +package com.mxgraph.util.png;
    +
    +import java.io.Serializable;
    +
    +/**
    + * A class representing the fields of a PNG suggested palette entry.
    + *
    + * <p><b> This class is not a committed part of the JAI API.  It may
    + * be removed or changed in future releases of JAI.</b>
    + *
    + * @version $Id: mxPngSuggestedPaletteEntry.java,v 1.4 2010-08-09 16:41:04 david Exp $
    + */
    +public class mxPngSuggestedPaletteEntry implements Serializable
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -8711686482529372447L;
    +
    +	/** The name of the entry. */
    +	public String name;
    +
    +	/** The depth of the color samples. */
    +	public int sampleDepth;
    +
    +	/** The red color value of the entry. */
    +	public int red;
    +
    +	/** The green color value of the entry. */
    +	public int green;
    +
    +	/** The blue color value of the entry. */
    +	public int blue;
    +
    +	/** The alpha opacity value of the entry. */
    +	public int alpha;
    +
    +	/** The probable frequency of the color in the image. */
    +	public int frequency;
    +
    +}
    diff --git a/java/src/com/mxgraph/util/png/mxPngTextDecoder.java b/java/src/com/mxgraph/util/png/mxPngTextDecoder.java
    new file mode 100644
    index 000000000..d70c12df1
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/png/mxPngTextDecoder.java
    @@ -0,0 +1,114 @@
    +/**
    + * $Id: mxPngTextDecoder.java,v 1.6 2011-01-24 10:13:12 gaudenz Exp $
    + * Copyright (c) 2010, David Benson, Gaudenz Alder
    + */
    +package com.mxgraph.util.png;
    +
    +import java.io.BufferedInputStream;
    +import java.io.ByteArrayInputStream;
    +import java.io.DataInputStream;
    +import java.io.InputStream;
    +import java.util.Hashtable;
    +import java.util.Map;
    +import java.util.zip.InflaterInputStream;
    +
    +/**
    + * Utility class to extract the compression text portion of a PNG
    + */
    +public class mxPngTextDecoder
    +{
    +	/**
    +	 * 
    +	 */
    +	public static final int PNG_CHUNK_ZTXT = 2052348020;
    +
    +	/**
    +	 * 
    +	 */
    +	public static final int PNG_CHUNK_IEND = 1229278788;
    +
    +	/**
    +	 * Decodes the zTXt chunk of the given PNG image stream.
    +	 */
    +	public static Map<String, String> decodeCompressedText(InputStream stream)
    +	{
    +		Map<String, String> result = new Hashtable<String, String>();
    +
    +		if (!stream.markSupported())
    +		{
    +			stream = new BufferedInputStream(stream);
    +		}
    +		DataInputStream distream = new DataInputStream(stream);
    +
    +		try
    +		{
    +			long magic = distream.readLong();
    +			if (magic != 0x89504e470d0a1a0aL)
    +			{
    +				throw new RuntimeException("PNGImageDecoder0");
    +			}
    +		}
    +		catch (Exception e)
    +		{
    +			e.printStackTrace();
    +			throw new RuntimeException("PNGImageDecoder1");
    +		}
    +
    +		do
    +		{
    +			try
    +			{
    +				int length = distream.readInt();
    +				int type = distream.readInt();
    +				byte[] data = new byte[length];
    +				distream.readFully(data);
    +				distream.readInt(); // Move past the crc
    +
    +				if (type == PNG_CHUNK_IEND)
    +				{
    +					return result;
    +				}
    +				else if (type == PNG_CHUNK_ZTXT)
    +				{
    +					int currentIndex = 0;
    +					while ((data[currentIndex++]) != 0)
    +					{
    +					}
    +
    +					String key = new String(data, 0, currentIndex - 1);
    +
    +					// TODO Add option to decode uncompressed text
    +					// NOTE Do not comment this line out as the
    +					// increment of the currentIndex is required
    +					byte compressType = data[currentIndex++];
    +
    +					StringBuffer value = new StringBuffer();
    +					try
    +					{
    +						InputStream is = new ByteArrayInputStream(data,
    +								currentIndex, length);
    +						InputStream iis = new InflaterInputStream(is);
    +
    +						int c;
    +						while ((c = iis.read()) != -1)
    +						{
    +							value.append((char) c);
    +						}
    +
    +						result.put(String.valueOf(key), String.valueOf(value));
    +					}
    +					catch (Exception e)
    +					{
    +						e.printStackTrace();
    +					}
    +				}
    +			}
    +			catch (Exception e)
    +			{
    +				e.printStackTrace();
    +				return null;
    +			}
    +		}
    +		while (true);
    +	}
    +}
    \ No newline at end of file
    diff --git a/java/src/com/mxgraph/util/svg/AWTPathProducer.java b/java/src/com/mxgraph/util/svg/AWTPathProducer.java
    new file mode 100644
    index 000000000..f8e3ebcb2
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/AWTPathProducer.java
    @@ -0,0 +1,309 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.awt.Shape;
    +import java.awt.geom.Point2D;
    +
    +/**
    + * This class provides an implementation of the PathHandler that initializes
    + * a Shape from the value of a path's 'd' attribute.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: AWTPathProducer.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public class AWTPathProducer implements PathHandler, ShapeProducer
    +{
    +
    +	/**
    +	 * The temporary value of extendedGeneralPath.
    +	 */
    +	protected ExtendedGeneralPath path;
    +
    +	/**
    +	 * The current x position.
    +	 */
    +	protected float currentX;
    +
    +	/**
    +	 * The current y position.
    +	 */
    +	protected float currentY;
    +
    +	/**
    +	 * The reference x point for smooth arcs.
    +	 */
    +	protected float xCenter;
    +
    +	/**
    +	 * The reference y point for smooth arcs.
    +	 */
    +	protected float yCenter;
    +
    +	/**
    +	 * The winding rule to use to construct the path.
    +	 */
    +	protected int windingRule;
    +
    +	/**
    +	 * Utility method for creating an ExtendedGeneralPath.
    +	 * @param text The text representation of the path specification.
    +	 * @param wr The winding rule to use for creating the path.
    +	 */
    +	public static Shape createShape(String text, int wr) throws ParseException
    +	{
    +		AWTPathProducer ph = new AWTPathProducer();
    +
    +		ph.setWindingRule(wr);
    +		PathParser p = new PathParser(ph);
    +		p.parse(text);
    +
    +		return ph.getShape();
    +	}
    +
    +	/**
    +	 * Sets the winding rule used to construct the path.
    +	 */
    +	public void setWindingRule(int i)
    +	{
    +		windingRule = i;
    +	}
    +
    +	/**
    +	 * Returns the current winding rule.
    +	 */
    +	public int getWindingRule()
    +	{
    +		return windingRule;
    +	}
    +
    +	/**
    +	 * Returns the Shape object initialized during the last parsing.
    +	 * @return the shape or null if this handler has not been used by
    +	 *         a parser.
    +	 */
    +	public Shape getShape()
    +	{
    +		return path;
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#startPath()}.
    +	 */
    +	public void startPath() throws ParseException
    +	{
    +		currentX = 0;
    +		currentY = 0;
    +		xCenter = 0;
    +		yCenter = 0;
    +		path = new ExtendedGeneralPath(windingRule);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#endPath()}.
    +	 */
    +	public void endPath() throws ParseException
    +	{
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#movetoRel(float,float)}.
    +	 */
    +	public void movetoRel(float x, float y) throws ParseException
    +	{
    +		path.moveTo(xCenter = currentX += x, yCenter = currentY += y);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#movetoAbs(float,float)}.
    +	 */
    +	public void movetoAbs(float x, float y) throws ParseException
    +	{
    +		path.moveTo(xCenter = currentX = x, yCenter = currentY = y);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#closePath()}.
    +	 */
    +	public void closePath() throws ParseException
    +	{
    +		path.closePath();
    +		Point2D pt = path.getCurrentPoint();
    +		currentX = (float) pt.getX();
    +		currentY = (float) pt.getY();
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#linetoRel(float,float)}.
    +	 */
    +	public void linetoRel(float x, float y) throws ParseException
    +	{
    +		path.lineTo(xCenter = currentX += x, yCenter = currentY += y);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#linetoAbs(float,float)}.
    +	 */
    +	public void linetoAbs(float x, float y) throws ParseException
    +	{
    +		path.lineTo(xCenter = currentX = x, yCenter = currentY = y);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#linetoHorizontalRel(float)}.
    +	 */
    +	public void linetoHorizontalRel(float x) throws ParseException
    +	{
    +		path.lineTo(xCenter = currentX += x, yCenter = currentY);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#linetoHorizontalAbs(float)}.
    +	 */
    +	public void linetoHorizontalAbs(float x) throws ParseException
    +	{
    +		path.lineTo(xCenter = currentX = x, yCenter = currentY);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#linetoVerticalRel(float)}.
    +	 */
    +	public void linetoVerticalRel(float y) throws ParseException
    +	{
    +		path.lineTo(xCenter = currentX, yCenter = currentY += y);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#linetoVerticalAbs(float)}.
    +	 */
    +	public void linetoVerticalAbs(float y) throws ParseException
    +	{
    +		path.lineTo(xCenter = currentX, yCenter = currentY = y);
    +	}
    +
    +	/**
    +	 * Implements {@link
    +	 * PathHandler#curvetoCubicRel(float,float,float,float,float,float)}.
    +	 */
    +	public void curvetoCubicRel(float x1, float y1, float x2, float y2,
    +			float x, float y) throws ParseException
    +	{
    +		path.curveTo(currentX + x1, currentY + y1, xCenter = currentX + x2,
    +				yCenter = currentY + y2, currentX += x, currentY += y);
    +	}
    +
    +	/**
    +	 * Implements {@link
    +	 * PathHandler#curvetoCubicAbs(float,float,float,float,float,float)}.
    +	 */
    +	public void curvetoCubicAbs(float x1, float y1, float x2, float y2,
    +			float x, float y) throws ParseException
    +	{
    +		path.curveTo(x1, y1, xCenter = x2, yCenter = y2, currentX = x,
    +				currentY = y);
    +	}
    +
    +	/**
    +	 * Implements
    +	 * {@link PathHandler#curvetoCubicSmoothRel(float,float,float,float)}.
    +	 */
    +	public void curvetoCubicSmoothRel(float x2, float y2, float x, float y)
    +			throws ParseException
    +	{
    +		path.curveTo(currentX * 2 - xCenter, currentY * 2 - yCenter,
    +				xCenter = currentX + x2, yCenter = currentY + y2,
    +				currentX += x, currentY += y);
    +	}
    +
    +	/**
    +	 * Implements
    +	 * {@link PathHandler#curvetoCubicSmoothAbs(float,float,float,float)}.
    +	 */
    +	public void curvetoCubicSmoothAbs(float x2, float y2, float x, float y)
    +			throws ParseException
    +	{
    +		path.curveTo(currentX * 2 - xCenter, currentY * 2 - yCenter,
    +				xCenter = x2, yCenter = y2, currentX = x, currentY = y);
    +	}
    +
    +	/**
    +	 * Implements
    +	 * {@link PathHandler#curvetoQuadraticRel(float,float,float,float)}.
    +	 */
    +	public void curvetoQuadraticRel(float x1, float y1, float x, float y)
    +			throws ParseException
    +	{
    +		path.quadTo(xCenter = currentX + x1, yCenter = currentY + y1,
    +				currentX += x, currentY += y);
    +	}
    +
    +	/**
    +	 * Implements
    +	 * {@link PathHandler#curvetoQuadraticAbs(float,float,float,float)}.
    +	 */
    +	public void curvetoQuadraticAbs(float x1, float y1, float x, float y)
    +			throws ParseException
    +	{
    +		path.quadTo(xCenter = x1, yCenter = y1, currentX = x, currentY = y);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#curvetoQuadraticSmoothRel(float,float)}.
    +	 */
    +	public void curvetoQuadraticSmoothRel(float x, float y)
    +			throws ParseException
    +	{
    +		path.quadTo(xCenter = currentX * 2 - xCenter, yCenter = currentY * 2
    +				- yCenter, currentX += x, currentY += y);
    +	}
    +
    +	/**
    +	 * Implements {@link PathHandler#curvetoQuadraticSmoothAbs(float,float)}.
    +	 */
    +	public void curvetoQuadraticSmoothAbs(float x, float y)
    +			throws ParseException
    +	{
    +		path.quadTo(xCenter = currentX * 2 - xCenter, yCenter = currentY * 2
    +				- yCenter, currentX = x, currentY = y);
    +	}
    +
    +	/**
    +	 * Implements {@link
    +	 * PathHandler#arcRel(float,float,float,boolean,boolean,float,float)}.
    +	 */
    +	public void arcRel(float rx, float ry, float xAxisRotation,
    +			boolean largeArcFlag, boolean sweepFlag, float x, float y)
    +			throws ParseException
    +	{
    +		path.arcTo(rx, ry, xAxisRotation, largeArcFlag, sweepFlag,
    +				xCenter = currentX += x, yCenter = currentY += y);
    +	}
    +
    +	/**
    +	 * Implements {@link
    +	 * PathHandler#arcAbs(float,float,float,boolean,boolean,float,float)}.
    +	 */
    +	public void arcAbs(float rx, float ry, float xAxisRotation,
    +			boolean largeArcFlag, boolean sweepFlag, float x, float y)
    +			throws ParseException
    +	{
    +		path.arcTo(rx, ry, xAxisRotation, largeArcFlag, sweepFlag,
    +				xCenter = currentX = x, yCenter = currentY = y);
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/AWTPolygonProducer.java b/java/src/com/mxgraph/util/svg/AWTPolygonProducer.java
    new file mode 100644
    index 000000000..22e455e83
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/AWTPolygonProducer.java
    @@ -0,0 +1,54 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.awt.Shape;
    +
    +/**
    + * This class produces a polygon shape from a reader.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: AWTPolygonProducer.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public class AWTPolygonProducer extends AWTPolylineProducer
    +{
    +	/**
    +	 * Utility method for creating an ExtendedGeneralPath.
    +	 * @param text The text representation of the path specification.
    +	 * @param wr The winding rule to use for creating the path.
    +	 */
    +	public static Shape createShape(String text, int wr) throws ParseException
    +	{
    +		AWTPolygonProducer ph = new AWTPolygonProducer();
    +
    +		ph.setWindingRule(wr);
    +		PointsParser p = new PointsParser(ph);
    +		p.parse(text);
    +
    +		return ph.getShape();
    +	}
    +
    +	/**
    +	 * Implements {@link PointsHandler#endPoints()}.
    +	 */
    +	public void endPoints() throws ParseException
    +	{
    +		path.closePath();
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/AWTPolylineProducer.java b/java/src/com/mxgraph/util/svg/AWTPolylineProducer.java
    new file mode 100644
    index 000000000..d9713ab11
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/AWTPolylineProducer.java
    @@ -0,0 +1,120 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.awt.Shape;
    +import java.awt.geom.GeneralPath;
    +
    +/**
    + * This class produces a polyline shape from a reader.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: AWTPolylineProducer.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public class AWTPolylineProducer implements PointsHandler, ShapeProducer
    +{
    +	/**
    +	 * The current path.
    +	 */
    +	protected GeneralPath path;
    +
    +	/**
    +	 * Is the current path a new one?
    +	 */
    +	protected boolean newPath;
    +
    +	/**
    +	 * The winding rule to use to construct the path.
    +	 */
    +	protected int windingRule;
    +
    +	/**
    +	 * Utility method for creating an ExtendedGeneralPath.
    +	 * @param text The text representation of the path specification.
    +	 * @param wr The winding rule to use for creating the path.
    +	 */
    +	public static Shape createShape(String text, int wr) throws ParseException
    +	{
    +		AWTPolylineProducer ph = new AWTPolylineProducer();
    +
    +		ph.setWindingRule(wr);
    +		PointsParser p = new PointsParser(ph);
    +		p.parse(text);
    +
    +		return ph.getShape();
    +	}
    +
    +	/**
    +	 * Sets the winding rule used to construct the path.
    +	 */
    +	public void setWindingRule(int i)
    +	{
    +		windingRule = i;
    +	}
    +
    +	/**
    +	 * Returns the current winding rule.
    +	 */
    +	public int getWindingRule()
    +	{
    +		return windingRule;
    +	}
    +
    +	/**
    +	 * Returns the Shape object initialized during the last parsing.
    +	 * @return the shape or null if this handler has not been used by
    +	 *         a parser.
    +	 */
    +	public Shape getShape()
    +	{
    +		return path;
    +	}
    +
    +	/**
    +	 * Implements {@link PointsHandler#startPoints()}.
    +	 */
    +	public void startPoints() throws ParseException
    +	{
    +		path = new GeneralPath(windingRule);
    +		newPath = true;
    +	}
    +
    +	/**
    +	 * Implements {@link PointsHandler#point(float,float)}.
    +	 */
    +	public void point(float x, float y) throws ParseException
    +	{
    +		if (newPath)
    +		{
    +			newPath = false;
    +			path.moveTo(x, y);
    +		}
    +		else
    +		{
    +			path.lineTo(x, y);
    +		}
    +	}
    +
    +	/**
    +	 * Implements {@link PointsHandler#endPoints()}.
    +	 */
    +	public void endPoints() throws ParseException
    +	{
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/AbstractParser.java b/java/src/com/mxgraph/util/svg/AbstractParser.java
    new file mode 100644
    index 000000000..0743cf2e4
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/AbstractParser.java
    @@ -0,0 +1,223 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.io.IOException;
    +import java.util.MissingResourceException;
    +
    +/**
    + * This class is the superclass of all parsers. It provides localization
    + * and error handling methods.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: AbstractParser.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public abstract class AbstractParser implements Parser
    +{
    +
    +	/**
    +	 * The default resource bundle base name.
    +	 */
    +	public static final String BUNDLE_CLASSNAME = "org.apache.batik.parser.resources.Messages";
    +
    +	/**
    +	 * The error handler.
    +	 */
    +	protected ErrorHandler errorHandler = new DefaultErrorHandler();
    +
    +	/**
    +	 * The normalizing reader.
    +	 */
    +	protected NormalizingReader reader;
    +
    +	/**
    +	 * The current character.
    +	 */
    +	protected int current;
    +
    +	/**
    +	 * Returns the current character value.
    +	 */
    +	public int getCurrent()
    +	{
    +		return current;
    +	}
    +
    +	/**
    +	 * Allow an application to register an error event handler.
    +	 *
    +	 * <p>If the application does not register an error event handler,
    +	 * all error events reported by the parser will cause an exception
    +	 * to be thrown.
    +	 *
    +	 * <p>Applications may register a new or different handler in the
    +	 * middle of a parse, and the parser must begin using the new
    +	 * handler immediately.</p>
    +	 * @param handler The error handler.
    +	 */
    +	public void setErrorHandler(ErrorHandler handler)
    +	{
    +		errorHandler = handler;
    +	}
    +
    +	/**
    +	 * Parses the given string.
    +	 */
    +	public void parse(String s) throws ParseException
    +	{
    +		try
    +		{
    +			reader = new StringNormalizingReader(s);
    +			doParse();
    +		}
    +		catch (IOException e)
    +		{
    +			errorHandler.error(new ParseException(createErrorMessage(
    +					"io.exception", null), e));
    +		}
    +	}
    +
    +	/**
    +	 * Method responsible for actually parsing data after AbstractParser
    +	 * has initialized itself.
    +	 */
    +	protected abstract void doParse() throws ParseException, IOException;
    +
    +	/**
    +	 * Signals an error to the error handler.
    +	 * @param key The message key in the resource bundle.
    +	 * @param args The message arguments.
    +	 */
    +	protected void reportError(String key, Object[] args) throws ParseException
    +	{
    +		errorHandler.error(new ParseException(createErrorMessage(key, args),
    +				reader.getLine(), reader.getColumn()));
    +	}
    +
    +	/**
    +	 * simple api to call often reported error.
    +	 * Just a wrapper for reportError().
    +	 *
    +	 * @param expectedChar what caller expected
    +	 * @param currentChar what caller found
    +	 */
    +	protected void reportCharacterExpectedError(char expectedChar,
    +			int currentChar)
    +	{
    +		reportError("character.expected", new Object[] {
    +				new Character(expectedChar), new Integer(currentChar) });
    +
    +	}
    +
    +	/**
    +	 * simple api to call often reported error.
    +	 * Just a wrapper for reportError().
    +	 *
    +	 * @param currentChar what the caller found and didnt expect
    +	 */
    +	protected void reportUnexpectedCharacterError(int currentChar)
    +	{
    +		reportError("character.unexpected", new Object[] { new Integer(
    +				currentChar) });
    +
    +	}
    +
    +	/**
    +	 * Returns a localized error message.
    +	 * @param key The message key in the resource bundle.
    +	 * @param args The message arguments.
    +	 */
    +	protected String createErrorMessage(String key, Object[] args)
    +	{
    +		try
    +		{
    +			// TODO Replace with mx localisation
    +			// return formatMessage(key, args);
    +			return "";
    +		}
    +		catch (MissingResourceException e)
    +		{
    +			return key;
    +		}
    +	}
    +
    +	/**
    +	 * Returns the resource bundle base name.
    +	 * @return BUNDLE_CLASSNAME.
    +	 */
    +	protected String getBundleClassName()
    +	{
    +		return BUNDLE_CLASSNAME;
    +	}
    +
    +	/**
    +	 * Skips the whitespaces in the current reader.
    +	 */
    +	protected void skipSpaces() throws IOException
    +	{
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					return;
    +				case 0x20:
    +				case 0x09:
    +				case 0x0D:
    +				case 0x0A:
    +			}
    +			current = reader.read();
    +		}
    +	}
    +
    +	/**
    +	 * Skips the whitespaces and an optional comma.
    +	 */
    +	protected void skipCommaSpaces() throws IOException
    +	{
    +		wsp1: for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					break wsp1;
    +				case 0x20:
    +				case 0x9:
    +				case 0xD:
    +				case 0xA:
    +			}
    +			current = reader.read();
    +		}
    +		if (current == ',')
    +		{
    +			wsp2: for (;;)
    +			{
    +				switch (current = reader.read())
    +				{
    +					default:
    +						break wsp2;
    +					case 0x20:
    +					case 0x9:
    +					case 0xD:
    +					case 0xA:
    +				}
    +			}
    +		}
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/CSSConstants.java b/java/src/com/mxgraph/util/svg/CSSConstants.java
    new file mode 100644
    index 000000000..a54d7260d
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/CSSConstants.java
    @@ -0,0 +1,36 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +/**
    + * This interface defines constants for CSS.
    + * Important: Constants must not contain uppercase characters.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: CSSConstants.java,v 1.2 2010-11-10 07:42:10 gaudenz Exp $
    + */
    +public interface CSSConstants {
    +
    +	String CSS_STROKE_PROPERTY = "stroke";
    +	
    +    String CSS_FILL_PROPERTY = "fill";
    +	
    +	String CSS_NONE_VALUE = "none";
    +
    +}
    diff --git a/java/src/com/mxgraph/util/svg/DefaultErrorHandler.java b/java/src/com/mxgraph/util/svg/DefaultErrorHandler.java
    new file mode 100644
    index 000000000..95701fbba
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/DefaultErrorHandler.java
    @@ -0,0 +1,39 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +/**
    + * This class provides a default implementation of ErrorHandler.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: DefaultErrorHandler.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +
    +public class DefaultErrorHandler implements ErrorHandler
    +{
    +
    +	/**
    +	 * Implements {@link ErrorHandler#error(ParseException)}.
    +	 * Throws the given exception.
    +	 */
    +	public void error(ParseException e) throws ParseException
    +	{
    +		throw e;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/ErrorHandler.java b/java/src/com/mxgraph/util/svg/ErrorHandler.java
    new file mode 100644
    index 000000000..001b160a8
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/ErrorHandler.java
    @@ -0,0 +1,34 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +/**
    + * This interface must be implemented and then registred as the error handler
    + * in order to be notified of parsing errors. 
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: ErrorHandler.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public interface ErrorHandler
    +{
    +	/**
    +	 * Called when a parse error occurs.
    +	 */
    +	void error(ParseException e) throws ParseException;
    +}
    diff --git a/java/src/com/mxgraph/util/svg/ExtendedGeneralPath.java b/java/src/com/mxgraph/util/svg/ExtendedGeneralPath.java
    new file mode 100644
    index 000000000..5c62f5c8d
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/ExtendedGeneralPath.java
    @@ -0,0 +1,833 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.awt.Shape;
    +import java.awt.Rectangle;
    +import java.awt.geom.AffineTransform;
    +import java.awt.geom.Arc2D;
    +import java.awt.geom.GeneralPath;
    +import java.awt.geom.PathIterator;
    +import java.awt.geom.Point2D;
    +import java.awt.geom.Rectangle2D;
    +import java.util.Arrays;
    +
    +/**
    + * The <code>ExtendedGeneralPath</code> class represents a geometric
    + * path constructed from straight lines, quadratic and cubic (Bezier)
    + * curves and elliptical arc. This class delegates lines and curves to
    + * an enclosed <code>GeneralPath</code>. Elliptical arc is implemented
    + * using an <code>Arc2D</code> in float precision.
    + *
    + * <p><b>Warning</b> : An elliptical arc may be composed of several
    + * path segments. For futher details, see the SVG Appendix&nbsp;F.6
    + *
    + * @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
    + * @version $Id: ExtendedGeneralPath.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public class ExtendedGeneralPath implements Shape, Cloneable
    +{
    +
    +	/** The enclosed general path. */
    +	protected GeneralPath path;
    +
    +	int numVals = 0;
    +
    +	int numSeg = 0;
    +
    +	float[] values = null;
    +
    +	int[] types = null;
    +
    +	float mx, my, cx, cy;
    +
    +	/**
    +	  * Constructs a new <code>ExtendedGeneralPath</code>.
    +	  */
    +	public ExtendedGeneralPath()
    +	{
    +		path = new GeneralPath();
    +	}
    +
    +	/**
    +	 * Constructs a new <code>ExtendedGeneralPath</code> with the
    +	 * specified winding rule to control operations that require the
    +	 * interior of the path to be defined.
    +	 */
    +	public ExtendedGeneralPath(int rule)
    +	{
    +		path = new GeneralPath(rule);
    +	}
    +
    +	/**
    +	 * Constructs a new <code>ExtendedGeneralPath</code> object with
    +	 * the specified winding rule and the specified initial capacity
    +	 * to store path coordinates.
    +	 */
    +	public ExtendedGeneralPath(int rule, int initialCapacity)
    +	{
    +		path = new GeneralPath(rule, initialCapacity);
    +	}
    +
    +	/**
    +	 * Constructs a new <code>ExtendedGeneralPath</code> object from
    +	 * an arbitrary <code>Shape</code> object.
    +	 */
    +	public ExtendedGeneralPath(Shape s)
    +	{
    +		this();
    +		append(s, false);
    +	}
    +
    +	/**
    +	 * Adds an elliptical arc, defined by two radii, an angle from the
    +	 * x-axis, a flag to choose the large arc or not, a flag to
    +	 * indicate if we increase or decrease the angles and the final
    +	 * point of the arc.
    +	 *
    +	 * @param rx the x radius of the ellipse
    +	 * @param ry the y radius of the ellipse
    +	 *
    +	 * @param angle the angle from the x-axis of the current
    +	 * coordinate system to the x-axis of the ellipse in degrees.
    +	 *
    +	 * @param largeArcFlag the large arc flag. If true the arc
    +	 * spanning less than or equal to 180 degrees is chosen, otherwise
    +	 * the arc spanning greater than 180 degrees is chosen
    +	 *
    +	 * @param sweepFlag the sweep flag. If true the line joining
    +	 * center to arc sweeps through decreasing angles otherwise it
    +	 * sweeps through increasing angles
    +	 *
    +	 * @param x the absolute x coordinate of the final point of the arc.
    +	 * @param y the absolute y coordinate of the final point of the arc.
    +	 */
    +	public synchronized void arcTo(float rx, float ry, float angle,
    +			boolean largeArcFlag, boolean sweepFlag, float x, float y)
    +	{
    +
    +		// Ensure radii are valid
    +		if (rx == 0 || ry == 0)
    +		{
    +			lineTo(x, y);
    +			return;
    +		}
    +
    +		checkMoveTo(); // check if prev command was moveto
    +
    +		// Get the current (x, y) coordinates of the path
    +		double x0 = cx;
    +		double y0 = cy;
    +		if (x0 == x && y0 == y)
    +		{
    +			// If the endpoints (x, y) and (x0, y0) are identical, then this
    +			// is equivalent to omitting the elliptical arc segment entirely.
    +			return;
    +		}
    +
    +		Arc2D arc = computeArc(x0, y0, rx, ry, angle, largeArcFlag, sweepFlag,
    +				x, y);
    +		if (arc == null)
    +			return;
    +
    +		AffineTransform t = AffineTransform.getRotateInstance(
    +				Math.toRadians(angle), arc.getCenterX(), arc.getCenterY());
    +		Shape s = t.createTransformedShape(arc);
    +		path.append(s, true);
    +
    +		makeRoom(7);
    +		types[numSeg++] = ExtendedPathIterator.SEG_ARCTO;
    +		values[numVals++] = rx;
    +		values[numVals++] = ry;
    +		values[numVals++] = angle;
    +		values[numVals++] = largeArcFlag ? 1 : 0;
    +		values[numVals++] = sweepFlag ? 1 : 0;
    +		cx = values[numVals++] = x;
    +		cy = values[numVals++] = y;
    +	}
    +
    +	/**
    +	 * This constructs an unrotated Arc2D from the SVG specification of an
    +	 * Elliptical arc.  To get the final arc you need to apply a rotation
    +	 * transform such as:
    +	 *
    +	 * AffineTransform.getRotateInstance
    +	 *     (angle, arc.getX()+arc.getWidth()/2, arc.getY()+arc.getHeight()/2);
    +	 */
    +	public static Arc2D computeArc(double x0, double y0, double rx, double ry,
    +			double angle, boolean largeArcFlag, boolean sweepFlag, double x,
    +			double y)
    +	{
    +		//
    +		// Elliptical arc implementation based on the SVG specification notes
    +		//
    +
    +		// Compute the half distance between the current and the final point
    +		double dx2 = (x0 - x) / 2.0;
    +		double dy2 = (y0 - y) / 2.0;
    +		// Convert angle from degrees to radians
    +		angle = Math.toRadians(angle % 360.0);
    +		double cosAngle = Math.cos(angle);
    +		double sinAngle = Math.sin(angle);
    +
    +		//
    +		// Step 1 : Compute (x1, y1)
    +		//
    +		double x1 = (cosAngle * dx2 + sinAngle * dy2);
    +		double y1 = (-sinAngle * dx2 + cosAngle * dy2);
    +		// Ensure radii are large enough
    +		rx = Math.abs(rx);
    +		ry = Math.abs(ry);
    +		double Prx = rx * rx;
    +		double Pry = ry * ry;
    +		double Px1 = x1 * x1;
    +		double Py1 = y1 * y1;
    +		// check that radii are large enough
    +		double radiiCheck = Px1 / Prx + Py1 / Pry;
    +		if (radiiCheck > 1)
    +		{
    +			rx = Math.sqrt(radiiCheck) * rx;
    +			ry = Math.sqrt(radiiCheck) * ry;
    +			Prx = rx * rx;
    +			Pry = ry * ry;
    +		}
    +
    +		//
    +		// Step 2 : Compute (cx1, cy1)
    +		//
    +		double sign = (largeArcFlag == sweepFlag) ? -1 : 1;
    +		double sq = ((Prx * Pry) - (Prx * Py1) - (Pry * Px1))
    +				/ ((Prx * Py1) + (Pry * Px1));
    +		sq = (sq < 0) ? 0 : sq;
    +		double coef = (sign * Math.sqrt(sq));
    +		double cx1 = coef * ((rx * y1) / ry);
    +		double cy1 = coef * -((ry * x1) / rx);
    +
    +		//
    +		// Step 3 : Compute (cx, cy) from (cx1, cy1)
    +		//
    +		double sx2 = (x0 + x) / 2.0;
    +		double sy2 = (y0 + y) / 2.0;
    +		double cx = sx2 + (cosAngle * cx1 - sinAngle * cy1);
    +		double cy = sy2 + (sinAngle * cx1 + cosAngle * cy1);
    +
    +		//
    +		// Step 4 : Compute the angleStart (angle1) and the angleExtent (dangle)
    +		//
    +		double ux = (x1 - cx1) / rx;
    +		double uy = (y1 - cy1) / ry;
    +		double vx = (-x1 - cx1) / rx;
    +		double vy = (-y1 - cy1) / ry;
    +		double p, n;
    +		// Compute the angle start
    +		n = Math.sqrt((ux * ux) + (uy * uy));
    +		p = ux; // (1 * ux) + (0 * uy)
    +		sign = (uy < 0) ? -1.0 : 1.0;
    +		double angleStart = Math.toDegrees(sign * Math.acos(p / n));
    +
    +		// Compute the angle extent
    +		n = Math.sqrt((ux * ux + uy * uy) * (vx * vx + vy * vy));
    +		p = ux * vx + uy * vy;
    +		sign = (ux * vy - uy * vx < 0) ? -1.0 : 1.0;
    +		double angleExtent = Math.toDegrees(sign * Math.acos(p / n));
    +		if (!sweepFlag && angleExtent > 0)
    +		{
    +			angleExtent -= 360f;
    +		}
    +		else if (sweepFlag && angleExtent < 0)
    +		{
    +			angleExtent += 360f;
    +		}
    +		angleExtent %= 360f;
    +		angleStart %= 360f;
    +
    +		//
    +		// We can now build the resulting Arc2D in double precision
    +		//
    +		Arc2D.Double arc = new Arc2D.Double();
    +		arc.x = cx - rx;
    +		arc.y = cy - ry;
    +		arc.width = rx * 2.0;
    +		arc.height = ry * 2.0;
    +		arc.start = -angleStart;
    +		arc.extent = -angleExtent;
    +
    +		return arc;
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized void moveTo(float x, float y)
    +	{
    +		// Don't add moveto to general path unless there is a reason.
    +		makeRoom(2);
    +		types[numSeg++] = PathIterator.SEG_MOVETO;
    +		cx = mx = values[numVals++] = x;
    +		cy = my = values[numVals++] = y;
    +
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized void lineTo(float x, float y)
    +	{
    +		checkMoveTo(); // check if prev command was moveto
    +		path.lineTo(x, y);
    +
    +		makeRoom(2);
    +		types[numSeg++] = PathIterator.SEG_LINETO;
    +		cx = values[numVals++] = x;
    +		cy = values[numVals++] = y;
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized void quadTo(float x1, float y1, float x2, float y2)
    +	{
    +		checkMoveTo(); // check if prev command was moveto
    +		path.quadTo(x1, y1, x2, y2);
    +
    +		makeRoom(4);
    +		types[numSeg++] = PathIterator.SEG_QUADTO;
    +		values[numVals++] = x1;
    +		values[numVals++] = y1;
    +		cx = values[numVals++] = x2;
    +		cy = values[numVals++] = y2;
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized void curveTo(float x1, float y1, float x2, float y2,
    +			float x3, float y3)
    +	{
    +		checkMoveTo(); // check if prev command was moveto
    +		path.curveTo(x1, y1, x2, y2, x3, y3);
    +
    +		makeRoom(6);
    +		types[numSeg++] = PathIterator.SEG_CUBICTO;
    +		values[numVals++] = x1;
    +		values[numVals++] = y1;
    +		values[numVals++] = x2;
    +		values[numVals++] = y2;
    +		cx = values[numVals++] = x3;
    +		cy = values[numVals++] = y3;
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized void closePath()
    +	{
    +		// Don't double close path.
    +		if ((numSeg != 0) && (types[numSeg - 1] == PathIterator.SEG_CLOSE))
    +			return;
    +
    +		// Only close path if the previous command wasn't a moveto
    +		if ((numSeg != 0) && (types[numSeg - 1] != PathIterator.SEG_MOVETO))
    +			path.closePath();
    +
    +		makeRoom(0);
    +		types[numSeg++] = PathIterator.SEG_CLOSE;
    +		cx = mx;
    +		cy = my;
    +	}
    +
    +	/**
    +	 * Checks if previous command was a moveto command,
    +	 * skipping a close command (if present).
    +	 */
    +	protected void checkMoveTo()
    +	{
    +		if (numSeg == 0)
    +			return;
    +
    +		switch (types[numSeg - 1])
    +		{
    +
    +			case PathIterator.SEG_MOVETO:
    +				path.moveTo(values[numVals - 2], values[numVals - 1]);
    +				break;
    +
    +			case PathIterator.SEG_CLOSE:
    +				if (numSeg == 1)
    +					return;
    +				if (types[numSeg - 2] == PathIterator.SEG_MOVETO)
    +					path.moveTo(values[numVals - 2], values[numVals - 1]);
    +				break;
    +
    +			default:
    +				break;
    +		}
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public void append(Shape s, boolean connect)
    +	{
    +		append(s.getPathIterator(new AffineTransform()), connect);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public void append(PathIterator pi, boolean connect)
    +	{
    +		double[] vals = new double[6];
    +
    +		while (!pi.isDone())
    +		{
    +			Arrays.fill(vals, 0);
    +			int type = pi.currentSegment(vals);
    +			pi.next();
    +			if (connect && (numVals != 0))
    +			{
    +				if (type == PathIterator.SEG_MOVETO)
    +				{
    +					double x = vals[0];
    +					double y = vals[1];
    +					if ((x != cx) || (y != cy))
    +					{
    +						// Change MOVETO to LINETO.
    +						type = PathIterator.SEG_LINETO;
    +					}
    +					else
    +					{
    +						// Redundent segment (move to current loc) drop it...
    +						if (pi.isDone())
    +							break; // Nothing interesting
    +						type = pi.currentSegment(vals);
    +						pi.next();
    +					}
    +				}
    +				connect = false;
    +			}
    +
    +			switch (type)
    +			{
    +				case PathIterator.SEG_CLOSE:
    +					closePath();
    +					break;
    +				case PathIterator.SEG_MOVETO:
    +					moveTo((float) vals[0], (float) vals[1]);
    +					break;
    +				case PathIterator.SEG_LINETO:
    +					lineTo((float) vals[0], (float) vals[1]);
    +					break;
    +				case PathIterator.SEG_QUADTO:
    +					quadTo((float) vals[0], (float) vals[1], (float) vals[2],
    +							(float) vals[3]);
    +					break;
    +				case PathIterator.SEG_CUBICTO:
    +					curveTo((float) vals[0], (float) vals[1], (float) vals[2],
    +							(float) vals[3], (float) vals[4], (float) vals[5]);
    +					break;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public void append(ExtendedPathIterator epi, boolean connect)
    +	{
    +		float[] vals = new float[7];
    +		while (!epi.isDone())
    +		{
    +			Arrays.fill(vals, 0);
    +			int type = epi.currentSegment(vals);
    +			epi.next();
    +			if (connect && (numVals != 0))
    +			{
    +				if (type == PathIterator.SEG_MOVETO)
    +				{
    +					float x = vals[0];
    +					float y = vals[1];
    +					if ((x != cx) || (y != cy))
    +					{
    +						// Change MOVETO to LINETO.
    +						type = PathIterator.SEG_LINETO;
    +					}
    +					else
    +					{
    +						// Redundant segment (move to current loc) drop it...
    +						if (epi.isDone())
    +							break; // Nothing interesting
    +						type = epi.currentSegment(vals);
    +						epi.next();
    +					}
    +				}
    +				connect = false;
    +			}
    +
    +			switch (type)
    +			{
    +				case PathIterator.SEG_CLOSE:
    +					closePath();
    +					break;
    +				case PathIterator.SEG_MOVETO:
    +					moveTo(vals[0], vals[1]);
    +					break;
    +				case PathIterator.SEG_LINETO:
    +					lineTo(vals[0], vals[1]);
    +					break;
    +				case PathIterator.SEG_QUADTO:
    +					quadTo(vals[0], vals[1], vals[2], vals[3]);
    +					break;
    +				case PathIterator.SEG_CUBICTO:
    +					curveTo(vals[0], vals[1], vals[2], vals[3], vals[4],
    +							vals[5]);
    +					break;
    +				case ExtendedPathIterator.SEG_ARCTO:
    +					arcTo(vals[0], vals[1], vals[2], (vals[3] != 0),
    +							(vals[4] != 0), vals[5], vals[6]);
    +					break;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized int getWindingRule()
    +	{
    +		return path.getWindingRule();
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public void setWindingRule(int rule)
    +	{
    +		path.setWindingRule(rule);
    +	}
    +
    +	/**
    +	 * get the current position or <code>null</code>.
    +	 */
    +	public synchronized Point2D getCurrentPoint()
    +	{
    +		if (numVals == 0)
    +			return null;
    +		return new Point2D.Double(cx, cy);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized void reset()
    +	{
    +		path.reset();
    +
    +		numSeg = 0;
    +		numVals = 0;
    +		values = null;
    +		types = null;
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public void transform(AffineTransform at)
    +	{
    +		path.transform(at);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized Shape createTransformedShape(AffineTransform at)
    +	{
    +		return path.createTransformedShape(at);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized Rectangle getBounds()
    +	{
    +		return path.getBounds();
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public synchronized Rectangle2D getBounds2D()
    +	{
    +		return path.getBounds2D();
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public boolean contains(double x, double y)
    +	{
    +		return path.contains(x, y);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public boolean contains(Point2D p)
    +	{
    +		return path.contains(p);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public boolean contains(double x, double y, double w, double h)
    +	{
    +		return path.contains(x, y, w, h);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public boolean contains(Rectangle2D r)
    +	{
    +		return path.contains(r);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public boolean intersects(double x, double y, double w, double h)
    +	{
    +		return path.intersects(x, y, w, h);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public boolean intersects(Rectangle2D r)
    +	{
    +		return path.intersects(r);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public PathIterator getPathIterator(AffineTransform at)
    +	{
    +		return path.getPathIterator(at);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public PathIterator getPathIterator(AffineTransform at, double flatness)
    +	{
    +		return path.getPathIterator(at, flatness);
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public ExtendedPathIterator getExtendedPathIterator()
    +	{
    +		return new EPI();
    +	}
    +
    +	class EPI implements ExtendedPathIterator
    +	{
    +		int segNum = 0;
    +
    +		int valsIdx = 0;
    +
    +		public int currentSegment()
    +		{
    +			return types[segNum];
    +		}
    +
    +		public int currentSegment(double[] coords)
    +		{
    +			int ret = types[segNum];
    +			switch (ret)
    +			{
    +				case SEG_CLOSE:
    +					break;
    +				case SEG_MOVETO:
    +				case SEG_LINETO:
    +					coords[0] = values[valsIdx];
    +					coords[1] = values[valsIdx + 1];
    +					break;
    +				case SEG_QUADTO:
    +					coords[0] = values[valsIdx];
    +					coords[1] = values[valsIdx + 1];
    +					coords[2] = values[valsIdx + 2];
    +					coords[3] = values[valsIdx + 3];
    +					break;
    +				case SEG_CUBICTO:
    +					coords[0] = values[valsIdx];
    +					coords[1] = values[valsIdx + 1];
    +					coords[2] = values[valsIdx + 2];
    +					coords[3] = values[valsIdx + 3];
    +					coords[4] = values[valsIdx + 4];
    +					coords[5] = values[valsIdx + 5];
    +					break;
    +				case SEG_ARCTO:
    +					coords[0] = values[valsIdx];
    +					coords[1] = values[valsIdx + 1];
    +					coords[2] = values[valsIdx + 2];
    +					coords[3] = values[valsIdx + 3];
    +					coords[4] = values[valsIdx + 4];
    +					coords[5] = values[valsIdx + 5];
    +					coords[6] = values[valsIdx + 6];
    +					break;
    +			}
    +			// System.out.println("Seg: [" + segNum + "] type: " + ret +
    +			//                    " vals: [" + coords[0] + ", " + coords[1] +
    +			//                    "]");
    +			return ret;
    +		}
    +
    +		public int currentSegment(float[] coords)
    +		{
    +			int ret = types[segNum];
    +			switch (ret)
    +			{
    +				case SEG_CLOSE:
    +					break;
    +				case SEG_MOVETO:
    +				case SEG_LINETO:
    +					coords[0] = values[valsIdx];
    +					coords[1] = values[valsIdx + 1];
    +					break;
    +				case SEG_QUADTO:
    +					System.arraycopy(values, valsIdx, coords, 0, 4);
    +					break;
    +				case SEG_CUBICTO:
    +					System.arraycopy(values, valsIdx, coords, 0, 6);
    +					break;
    +				case SEG_ARCTO:
    +					System.arraycopy(values, valsIdx, coords, 0, 7);
    +					break;
    +			}
    +			return ret;
    +		}
    +
    +		public int getWindingRule()
    +		{
    +			return path.getWindingRule();
    +		}
    +
    +		public boolean isDone()
    +		{
    +			return segNum == numSeg;
    +		}
    +
    +		public void next()
    +		{
    +			int type = types[segNum++];
    +			switch (type)
    +			{
    +				case SEG_CLOSE:
    +					break;
    +				case SEG_MOVETO: // fallthrough is intended
    +				case SEG_LINETO:
    +					valsIdx += 2;
    +					break;
    +				case SEG_QUADTO:
    +					valsIdx += 4;
    +					break;
    +				case SEG_CUBICTO:
    +					valsIdx += 6;
    +					break;
    +				case SEG_ARCTO:
    +					valsIdx += 7;
    +					break;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Delegates to the enclosed <code>GeneralPath</code>.
    +	 */
    +	public Object clone()
    +	{
    +		try
    +		{
    +			ExtendedGeneralPath result = (ExtendedGeneralPath) super.clone();
    +			result.path = (GeneralPath) path.clone();
    +
    +			if (values != null)
    +			{
    +				result.values = new float[values.length];
    +				System.arraycopy(values, 0, result.values, 0, values.length);
    +			}
    +			result.numVals = numVals;
    +
    +			if (types != null)
    +			{
    +				result.types = new int[types.length];
    +				System.arraycopy(types, 0, result.types, 0, types.length);
    +			}
    +			result.numSeg = numSeg;
    +
    +			return result;
    +		}
    +		catch (CloneNotSupportedException ex)
    +		{
    +		}
    +		return null;
    +	}
    +
    +	/**
    +	 * Make sure, that the requested number of slots in vales[] are available.
    +	 * Must be called even for numValues = 0, because it is also
    +	 * used for initialization of those arrays.
    +	 *
    +	 * @param numValues number of requested coordinates
    +	 */
    +	private void makeRoom(int numValues)
    +	{
    +		if (values == null)
    +		{
    +			values = new float[2 * numValues];
    +			types = new int[2];
    +			numVals = 0;
    +			numSeg = 0;
    +			return;
    +		}
    +
    +		int newSize = numVals + numValues;
    +		if (newSize > values.length)
    +		{
    +			int nlen = values.length * 2;
    +			if (nlen < newSize)
    +				nlen = newSize;
    +
    +			float[] nvals = new float[nlen];
    +			System.arraycopy(values, 0, nvals, 0, numVals);
    +			values = nvals;
    +		}
    +
    +		if (numSeg == types.length)
    +		{
    +			int[] ntypes = new int[types.length * 2];
    +			System.arraycopy(types, 0, ntypes, 0, types.length);
    +			types = ntypes;
    +		}
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/ExtendedPathIterator.java b/java/src/com/mxgraph/util/svg/ExtendedPathIterator.java
    new file mode 100644
    index 000000000..0b61a4364
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/ExtendedPathIterator.java
    @@ -0,0 +1,119 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.awt.geom.PathIterator;
    +
    +/**
    + * The <code>ExtendedPathIterator</code> class represents a geometric
    + * path constructed from straight lines, quadratic and cubic (Bezier)
    + * curves and elliptical arcs.  This interface is identical to that of
    + * PathIterator except it can return SEG_ARCTO from currentSegment,
    + * also the array of values passed to currentSegment must be of length
    + * 7 or an error will be thrown.
    + * 
    + * This does not extend PathIterator as it would break the interface
    + * contract for that class.
    + *
    + * @author <a href="mailto:deweese@apache.org">Thomas DeWeese</a>
    + * @version $Id: ExtendedPathIterator.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public interface ExtendedPathIterator
    +{
    +
    +	/**
    +	 * The segment type constant that specifies that the preceding
    +	 * subpath should be closed by appending a line segment back to
    +	 * the point corresponding to the most recent SEG_MOVETO.
    +	 */
    +	int SEG_CLOSE = PathIterator.SEG_CLOSE;
    +
    +	/** 
    +	 * The segment type constant for a point that specifies the end
    +	 * point of a line to be drawn from the most recently specified
    +	 * point.  */
    +	int SEG_MOVETO = PathIterator.SEG_MOVETO;
    +
    +	/**
    +	 * The segment type constant for a point that specifies the end
    +	 * point of a line to be drawn from the most recently specified
    +	 * point.
    +	 */
    +	int SEG_LINETO = PathIterator.SEG_LINETO;
    +
    +	/**
    +	 * The segment type constant for the pair of points that specify a
    +	 * quadratic parametric curve to be drawn from the most recently
    +	 * specified point. The curve is interpolated by solving the
    +	 * parametric control equation in the range (t=[0..1]) using the
    +	 * most recently specified (current) point (CP), the first control
    +	 * point (P1), and the final interpolated control point (P2). 
    +	 */
    +	int SEG_QUADTO = PathIterator.SEG_QUADTO;
    +
    +	/**
    +	 * The segment type constant for the set of 3 points that specify
    +	 * a cubic parametric curve to be drawn from the most recently
    +	 * specified point. The curve is interpolated by solving the
    +	 * parametric control equation in the range (t=[0..1]) using the
    +	 * most recently specified (current) point (CP), the first control
    +	 * point (P1), the second control point (P2), and the final
    +	 * interpolated control point (P3).
    +	 */
    +	int SEG_CUBICTO = PathIterator.SEG_CUBICTO;
    +
    +	/** The segment type constant for an elliptical arc.  This consists of
    +	 *  Seven values [rx, ry, angle, largeArcFlag, sweepFlag, x, y].
    +	 *  rx, ry are the radious of the ellipse.
    +	 *  angle is angle of the x axis of the ellipse.
    +	 *  largeArcFlag is zero if the smaller of the two arcs are to be used.
    +	 *  sweepFlag is zero if the 'left' branch is taken one otherwise.
    +	 *  x and y are the destination for the ellipse.  */
    +	int SEG_ARCTO = 4321;
    +
    +	/** The winding rule constant for specifying an even-odd rule for
    +	 * determining the interior of a path. The even-odd rule specifies
    +	 * that a point lies inside the path if a ray drawn in any
    +	 * direction from that point to infinity is crossed by path
    +	 * segments an odd number of times.  
    +	 */
    +	int WIND_EVEN_ODD = PathIterator.WIND_EVEN_ODD;
    +
    +	/**
    +	 * The winding rule constant for specifying a non-zero rule for
    +	 * determining the interior of a path. The non-zero rule specifies
    +	 * that a point lies inside the path if a ray drawn in any
    +	 * direction from that point to infinity is crossed by path
    +	 * segments a different number of times in the counter-clockwise
    +	 * direction than the clockwise direction.
    +	 */
    +	int WIND_NON_ZERO = PathIterator.WIND_NON_ZERO;
    +
    +	int currentSegment();
    +
    +	int currentSegment(double[] coords);
    +
    +	int currentSegment(float[] coords);
    +
    +	int getWindingRule();
    +
    +	boolean isDone();
    +
    +	void next();
    +}
    diff --git a/java/src/com/mxgraph/util/svg/NormalizingReader.java b/java/src/com/mxgraph/util/svg/NormalizingReader.java
    new file mode 100644
    index 000000000..e5578a776
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/NormalizingReader.java
    @@ -0,0 +1,76 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.io.IOException;
    +import java.io.Reader;
    +
    +/**
    + * This class represents a reader which normalizes the line break: \n,
    + * \r, \r\n are replaced by \n.  The methods of this reader are not
    + * synchronized.  The input is buffered.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: NormalizingReader.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public abstract class NormalizingReader extends Reader
    +{
    +
    +	/**
    +	 * Read characters into a portion of an array.
    +	 * @param cbuf  Destination buffer
    +	 * @param off   Offset at which to start writing characters
    +	 * @param len   Maximum number of characters to read
    +	 * @return The number of characters read, or -1 if the end of the
    +	 * stream has been reached
    +	 */
    +	public int read(char[] cbuf, int off, int len) throws IOException
    +	{
    +		if (len == 0)
    +		{
    +			return 0;
    +		}
    +
    +		int c = read();
    +		if (c == -1)
    +		{
    +			return -1;
    +		}
    +		int result = 0;
    +		do
    +		{
    +			cbuf[result + off] = (char) c;
    +			result++;
    +			c = read();
    +		}
    +		while (c != -1 && result < len);
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the current line in the stream.
    +	 */
    +	public abstract int getLine();
    +
    +	/**
    +	 * Returns the current column in the stream.
    +	 */
    +	public abstract int getColumn();
    +
    +}
    diff --git a/java/src/com/mxgraph/util/svg/NumberParser.java b/java/src/com/mxgraph/util/svg/NumberParser.java
    new file mode 100644
    index 000000000..8407fee8e
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/NumberParser.java
    @@ -0,0 +1,370 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.io.IOException;
    +
    +/**
    + * This class represents a parser with support for numbers.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: NumberParser.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public abstract class NumberParser extends AbstractParser
    +{
    +
    +	/**
    +	 * Parses the content of the buffer and converts it to a float.
    +	 */
    +	protected float parseFloat() throws ParseException, IOException
    +	{
    +		int mant = 0;
    +		int mantDig = 0;
    +		boolean mantPos = true;
    +		boolean mantRead = false;
    +
    +		int exp = 0;
    +		int expDig = 0;
    +		int expAdj = 0;
    +		boolean expPos = true;
    +
    +		switch (current)
    +		{
    +			case '-':
    +				mantPos = false;
    +				// fallthrough
    +			case '+':
    +				current = reader.read();
    +		}
    +
    +		m1: switch (current)
    +		{
    +			default:
    +				reportUnexpectedCharacterError(current);
    +				return 0.0f;
    +
    +			case '.':
    +				break;
    +
    +			case '0':
    +				mantRead = true;
    +				l: for (;;)
    +				{
    +					current = reader.read();
    +					switch (current)
    +					{
    +						case '1':
    +						case '2':
    +						case '3':
    +						case '4':
    +						case '5':
    +						case '6':
    +						case '7':
    +						case '8':
    +						case '9':
    +							break l;
    +						case '.':
    +						case 'e':
    +						case 'E':
    +							break m1;
    +						default:
    +							return 0.0f;
    +						case '0':
    +					}
    +				}
    +
    +			case '1':
    +			case '2':
    +			case '3':
    +			case '4':
    +			case '5':
    +			case '6':
    +			case '7':
    +			case '8':
    +			case '9':
    +				mantRead = true;
    +				l: for (;;)
    +				{
    +					if (mantDig < 9)
    +					{
    +						mantDig++;
    +						mant = mant * 10 + (current - '0');
    +					}
    +					else
    +					{
    +						expAdj++;
    +					}
    +					current = reader.read();
    +					switch (current)
    +					{
    +						default:
    +							break l;
    +						case '0':
    +						case '1':
    +						case '2':
    +						case '3':
    +						case '4':
    +						case '5':
    +						case '6':
    +						case '7':
    +						case '8':
    +						case '9':
    +					}
    +				}
    +		}
    +
    +		if (current == '.')
    +		{
    +			current = reader.read();
    +			m2: switch (current)
    +			{
    +				default:
    +				case 'e':
    +				case 'E':
    +					if (!mantRead)
    +					{
    +						reportUnexpectedCharacterError(current);
    +						return 0.0f;
    +					}
    +					break;
    +
    +				case '0':
    +					if (mantDig == 0)
    +					{
    +						l: for (;;)
    +						{
    +							current = reader.read();
    +							expAdj--;
    +							switch (current)
    +							{
    +								case '1':
    +								case '2':
    +								case '3':
    +								case '4':
    +								case '5':
    +								case '6':
    +								case '7':
    +								case '8':
    +								case '9':
    +									break l;
    +								default:
    +									if (!mantRead)
    +									{
    +										return 0.0f;
    +									}
    +									break m2;
    +								case '0':
    +							}
    +						}
    +					}
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					l: for (;;)
    +					{
    +						if (mantDig < 9)
    +						{
    +							mantDig++;
    +							mant = mant * 10 + (current - '0');
    +							expAdj--;
    +						}
    +						current = reader.read();
    +						switch (current)
    +						{
    +							default:
    +								break l;
    +							case '0':
    +							case '1':
    +							case '2':
    +							case '3':
    +							case '4':
    +							case '5':
    +							case '6':
    +							case '7':
    +							case '8':
    +							case '9':
    +						}
    +					}
    +			}
    +		}
    +
    +		switch (current)
    +		{
    +			case 'e':
    +			case 'E':
    +				current = reader.read();
    +				switch (current)
    +				{
    +					default:
    +						reportUnexpectedCharacterError(current);
    +						return 0f;
    +					case '-':
    +						expPos = false;
    +					case '+':
    +						current = reader.read();
    +						switch (current)
    +						{
    +							default:
    +								reportUnexpectedCharacterError(current);
    +								return 0f;
    +							case '0':
    +							case '1':
    +							case '2':
    +							case '3':
    +							case '4':
    +							case '5':
    +							case '6':
    +							case '7':
    +							case '8':
    +							case '9':
    +						}
    +					case '0':
    +					case '1':
    +					case '2':
    +					case '3':
    +					case '4':
    +					case '5':
    +					case '6':
    +					case '7':
    +					case '8':
    +					case '9':
    +				}
    +
    +				en: switch (current)
    +				{
    +					case '0':
    +						l: for (;;)
    +						{
    +							current = reader.read();
    +							switch (current)
    +							{
    +								case '1':
    +								case '2':
    +								case '3':
    +								case '4':
    +								case '5':
    +								case '6':
    +								case '7':
    +								case '8':
    +								case '9':
    +									break l;
    +								default:
    +									break en;
    +								case '0':
    +							}
    +						}
    +
    +					case '1':
    +					case '2':
    +					case '3':
    +					case '4':
    +					case '5':
    +					case '6':
    +					case '7':
    +					case '8':
    +					case '9':
    +						l: for (;;)
    +						{
    +							if (expDig < 3)
    +							{
    +								expDig++;
    +								exp = exp * 10 + (current - '0');
    +							}
    +							current = reader.read();
    +							switch (current)
    +							{
    +								default:
    +									break l;
    +								case '0':
    +								case '1':
    +								case '2':
    +								case '3':
    +								case '4':
    +								case '5':
    +								case '6':
    +								case '7':
    +								case '8':
    +								case '9':
    +							}
    +						}
    +				}
    +			default:
    +		}
    +
    +		if (!expPos)
    +		{
    +			exp = -exp;
    +		}
    +		exp += expAdj;
    +		if (!mantPos)
    +		{
    +			mant = -mant;
    +		}
    +
    +		return buildFloat(mant, exp);
    +	}
    +
    +	/**
    +	 * Computes a float from mantissa and exponent.
    +	 */
    +	public static float buildFloat(int mant, int exp)
    +	{
    +		if (exp < -125 || mant == 0)
    +		{
    +			return 0.0f;
    +		}
    +
    +		if (exp >= 128)
    +		{
    +			return (mant > 0) ? Float.POSITIVE_INFINITY
    +					: Float.NEGATIVE_INFINITY;
    +		}
    +
    +		if (exp == 0)
    +		{
    +			return mant;
    +		}
    +
    +		if (mant >= (1 << 26))
    +		{
    +			mant++; // round up trailing bits if they will be dropped.
    +		}
    +
    +		return (float) ((exp > 0) ? mant * pow10[exp] : mant / pow10[-exp]);
    +	}
    +
    +	/**
    +	 * Array of powers of ten. Using double instead of float gives a tiny bit more precision.
    +	 */
    +	private static final double[] pow10 = new double[128];
    +
    +	static
    +	{
    +		for (int i = 0; i < pow10.length; i++)
    +		{
    +			pow10[i] = Math.pow(10, i);
    +		}
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/ParseException.java b/java/src/com/mxgraph/util/svg/ParseException.java
    new file mode 100644
    index 000000000..5cd1352d4
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/ParseException.java
    @@ -0,0 +1,140 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +/**
    + * This class encapsulates a general parse error or warning.
    + *
    + * <p>This class can contain basic error or warning information from
    + * either the parser or the application.
    + *
    + * <p>If the application needs to pass through other types of
    + * exceptions, it must wrap those exceptions in a ParseException.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: ParseException.java,v 1.1 2010-09-03 19:14:05 david Exp $
    + */
    +public class ParseException extends RuntimeException
    +{
    +
    +	/**
    +	 * @serial The embedded exception if tunnelling, or null.
    +	 */
    +	protected Exception exception;
    +
    +	/**
    +	 * @serial The line number.
    +	 */
    +	protected int lineNumber;
    +
    +	/**
    +	 * @serial The column number.
    +	 */
    +	protected int columnNumber;
    +
    +	/**
    +	 * Creates a new ParseException.
    +	 * @param message The error or warning message.
    +	 * @param line The line of the last parsed character.
    +	 * @param column The column of the last parsed character.
    +	 */
    +	public ParseException(String message, int line, int column)
    +	{
    +		super(message);
    +		exception = null;
    +		lineNumber = line;
    +		columnNumber = column;
    +	}
    +
    +	/**
    +	 * Creates a new ParseException wrapping an existing exception.
    +	 *
    +	 * <p>The existing exception will be embedded in the new
    +	 * one, and its message will become the default message for
    +	 * the ParseException.
    +	 * @param e The exception to be wrapped in a ParseException.
    +	 */
    +	public ParseException(Exception e)
    +	{
    +		exception = e;
    +		lineNumber = -1;
    +		columnNumber = -1;
    +	}
    +
    +	/**
    +	 * Creates a new ParseException from an existing exception.
    +	 *
    +	 * <p>The existing exception will be embedded in the new
    +	 * one, but the new exception will have its own message.
    +	 * @param message The detail message.
    +	 * @param e The exception to be wrapped in a SAXException.
    +	 */
    +	public ParseException(String message, Exception e)
    +	{
    +		super(message);
    +		this.exception = e;
    +	}
    +
    +	/**
    +	 * Return a detail message for this exception.
    +	 *
    +	 * <p>If there is a embedded exception, and if the ParseException
    +	 * has no detail message of its own, this method will return
    +	 * the detail message from the embedded exception.
    +	 * @return The error or warning message.
    +	 */
    +	public String getMessage()
    +	{
    +		String message = super.getMessage();
    +
    +		if (message == null && exception != null)
    +		{
    +			return exception.getMessage();
    +		}
    +		else
    +		{
    +			return message;
    +		}
    +	}
    +
    +	/**
    +	 * Return the embedded exception, if any.
    +	 * @return The embedded exception, or null if there is none.
    +	 */
    +	public Exception getException()
    +	{
    +		return exception;
    +	}
    +
    +	/**
    +	 * Returns the line of the last parsed character.
    +	 */
    +	public int getLineNumber()
    +	{
    +		return lineNumber;
    +	}
    +
    +	/**
    +	 * Returns the column of the last parsed character.
    +	 */
    +	public int getColumnNumber()
    +	{
    +		return columnNumber;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/Parser.java b/java/src/com/mxgraph/util/svg/Parser.java
    new file mode 100644
    index 000000000..caf1a1099
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/Parser.java
    @@ -0,0 +1,48 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +/**
    + * This interface represents a parser.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: Parser.java,v 1.2 2012-01-13 11:09:54 david Exp $
    + */
    +public interface Parser
    +{
    +
    +	/**
    +	 * Parses the given string
    +	 */
    +	void parse(String s) throws ParseException;
    +
    +	/**
    +	 * Allows an application to register an error event handler.
    +	 *
    +	 * <p>If the application does not register an error event handler,
    +	 * all error events reported by the parser will cause an exception
    +	 * to be thrown.
    +	 *
    +	 * <p>Applications may register a new or different handler in the
    +	 * middle of a parse, and the parser must begin using the new
    +	 * handler immediately.</p>
    +	 * @param handler The error handler.
    +	 */
    +	void setErrorHandler(ErrorHandler handler);
    +}
    diff --git a/java/src/com/mxgraph/util/svg/PathHandler.java b/java/src/com/mxgraph/util/svg/PathHandler.java
    new file mode 100644
    index 000000000..4754ca92a
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/PathHandler.java
    @@ -0,0 +1,255 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +/**
    + * This interface must be implemented and then registred as the
    + * handler of a <code>PathParser</code> instance in order to be
    + * notified of parsing events.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: PathHandler.java,v 1.1 2010-09-03 19:14:05 david Exp $
    + */
    +public interface PathHandler
    +{
    +	/**
    +	 * Invoked when the path starts.
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void startPath() throws ParseException;
    +
    +	/**
    +	 * Invoked when the path ends.
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void endPath() throws ParseException;
    +
    +	/**
    +	 * Invoked when a relative moveto command has been parsed.
    +	 * <p>Command : <b>m</b>
    +	 * @param x the relative x coordinate for the end point
    +	 * @param y the relative y coordinate for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void movetoRel(float x, float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when an absolute moveto command has been parsed.
    +	 * <p>Command : <b>M</b>
    +	 * @param x the absolute x coordinate for the end point
    +	 * @param y the absolute y coordinate for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void movetoAbs(float x, float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when a closepath has been parsed.
    +	 * <p>Command : <b>z</b> | <b>Z</b>
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void closePath() throws ParseException;
    +
    +	/**
    +	 * Invoked when a relative line command has been parsed.
    +	 * <p>Command : <b>l</b>
    +	 * @param x the relative x coordinates for the end point
    +	 * @param y the relative y coordinates for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void linetoRel(float x, float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when an absolute line command has been parsed.
    +	 * <p>Command : <b>L</b>
    +	 * @param x the absolute x coordinate for the end point
    +	 * @param y the absolute y coordinate for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void linetoAbs(float x, float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when an horizontal relative line command has been parsed.
    +	 * <p>Command : <b>h</b>
    +	 * @param x the relative X coordinate of the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void linetoHorizontalRel(float x) throws ParseException;
    +
    +	/**
    +	 * Invoked when an horizontal absolute line command has been parsed.
    +	 * <p>Command : <b>H</b>
    +	 * @param x the absolute X coordinate of the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void linetoHorizontalAbs(float x) throws ParseException;
    +
    +	/**
    +	 * Invoked when a vertical relative line command has been parsed.
    +	 * <p>Command : <b>v</b>
    +	 * @param y the relative Y coordinate of the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void linetoVerticalRel(float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when a vertical absolute line command has been parsed.
    +	 * <p>Command : <b>V</b>
    +	 * @param y the absolute Y coordinate of the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void linetoVerticalAbs(float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when a relative cubic bezier curve command has been parsed.
    +	 * <p>Command : <b>c</b>
    +	 * @param x1 the relative x coordinate for the first control point
    +	 * @param y1 the relative y coordinate for the first control point
    +	 * @param x2 the relative x coordinate for the second control point
    +	 * @param y2 the relative y coordinate for the second control point
    +	 * @param x the relative x coordinate for the end point
    +	 * @param y the relative y coordinate for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void curvetoCubicRel(float x1, float y1, float x2, float y2, float x,
    +			float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when an absolute cubic bezier curve command has been parsed.
    +	 * <p>Command : <b>C</b>
    +	 * @param x1 the absolute x coordinate for the first control point
    +	 * @param y1 the absolute y coordinate for the first control point
    +	 * @param x2 the absolute x coordinate for the second control point
    +	 * @param y2 the absolute y coordinate for the second control point
    +	 * @param x the absolute x coordinate for the end point
    +	 * @param y the absolute y coordinate for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void curvetoCubicAbs(float x1, float y1, float x2, float y2, float x,
    +			float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when a relative smooth cubic bezier curve command has
    +	 * been parsed. The first control point is assumed to be the
    +	 * reflection of the second control point on the previous command
    +	 * relative to the current point.
    +	 * <p>Command : <b>s</b>
    +	 * @param x2 the relative x coordinate for the second control point
    +	 * @param y2 the relative y coordinate for the second control point
    +	 * @param x the relative x coordinate for the end point
    +	 * @param y the relative y coordinate for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void curvetoCubicSmoothRel(float x2, float y2, float x, float y)
    +			throws ParseException;
    +
    +	/**
    +	 * Invoked when an absolute smooth cubic bezier curve command has
    +	 * been parsed. The first control point is assumed to be the
    +	 * reflection of the second control point on the previous command
    +	 * relative to the current point.
    +	 * <p>Command : <b>S</b>
    +	 * @param x2 the absolute x coordinate for the second control point
    +	 * @param y2 the absolute y coordinate for the second control point
    +	 * @param x the absolute x coordinate for the end point
    +	 * @param y the absolute y coordinate for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void curvetoCubicSmoothAbs(float x2, float y2, float x, float y)
    +			throws ParseException;
    +
    +	/**
    +	 * Invoked when a relative quadratic bezier curve command has been parsed.
    +	 * <p>Command : <b>q</b>
    +	 * @param x1 the relative x coordinate for the control point
    +	 * @param y1 the relative y coordinate for the control point
    +	 * @param x the relative x coordinate for the end point
    +	 * @param y the relative x coordinate for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void curvetoQuadraticRel(float x1, float y1, float x, float y)
    +			throws ParseException;
    +
    +	/**
    +	 * Invoked when an absolute quadratic bezier curve command has been parsed.
    +	 * <p>Command : <b>Q</b>
    +	 * @param x1 the absolute x coordinate for the control point
    +	 * @param y1 the absolute y coordinate for the control point
    +	 * @param x the absolute x coordinate for the end point
    +	 * @param y the absolute x coordinate for the end point
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void curvetoQuadraticAbs(float x1, float y1, float x, float y)
    +			throws ParseException;
    +
    +	/**
    +	 * Invoked when a relative smooth quadratic bezier curve command
    +	 * has been parsed. The control point is assumed to be the
    +	 * reflection of the control point on the previous command
    +	 * relative to the current point.
    +	 * <p>Command : <b>t</b>
    +	 * @param x the relative x coordinate for the end point 
    +	 * @param y the relative y coordinate for the end point 
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void curvetoQuadraticSmoothRel(float x, float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when an absolute smooth quadratic bezier curve command
    +	 * has been parsed. The control point is assumed to be the
    +	 * reflection of the control point on the previous command
    +	 * relative to the current point.
    +	 * <p>Command : <b>T</b>
    +	 * @param x the absolute x coordinate for the end point 
    +	 * @param y the absolute y coordinate for the end point 
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void curvetoQuadraticSmoothAbs(float x, float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when a relative elliptical arc command has been parsed. 
    +	 * <p>Command : <b>a</b>
    +	 * @param rx the X axis radius for the ellipse
    +	 * @param ry the Y axis radius for the ellipse 
    +	 * @param xAxisRotation the rotation angle in degrees for the ellipse's
    +	 *                      X-axis relative to the X-axis
    +	 * @param largeArcFlag the value of the large-arc-flag 
    +	 * @param sweepFlag the value of the sweep-flag 
    +	 * @param x the relative x coordinate for the end point 
    +	 * @param y the relative y coordinate for the end point 
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void arcRel(float rx, float ry, float xAxisRotation, boolean largeArcFlag,
    +			boolean sweepFlag, float x, float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when an absolute elliptical arc command has been parsed.
    +	 * <p>Command : <b>A</b>
    +	 * @param rx the X axis radius for the ellipse
    +	 * @param ry the Y axis radius for the ellipse 
    +	 * @param xAxisRotation the rotation angle in degrees for the ellipse's
    +	 *                      X-axis relative to the X-axis
    +	 * @param largeArcFlag the value of the large-arc-flag 
    +	 * @param sweepFlag the value of the sweep-flag 
    +	 * @param x the absolute x coordinate for the end point 
    +	 * @param y the absolute y coordinate for the end point 
    +	 * @exception ParseException if an error occured while processing the path
    +	 */
    +	void arcAbs(float rx, float ry, float xAxisRotation, boolean largeArcFlag,
    +			boolean sweepFlag, float x, float y) throws ParseException;
    +}
    diff --git a/java/src/com/mxgraph/util/svg/PathParser.java b/java/src/com/mxgraph/util/svg/PathParser.java
    new file mode 100644
    index 000000000..42599f70e
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/PathParser.java
    @@ -0,0 +1,1059 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.io.IOException;
    +
    +/**
    + * This class implements an event-based parser for the SVG path's d
    + * attribute values.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: PathParser.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public class PathParser extends NumberParser
    +{
    +
    +	/**
    +	 * The path handler used to report parse events.
    +	 */
    +	protected PathHandler pathHandler;
    +
    +	/**
    +	 * Creates a new PathParser.
    +	 */
    +	public PathParser(PathHandler handler)
    +	{
    +		pathHandler = handler;
    +	}
    +
    +	/**
    +	 * Allows an application to register a path handler.
    +	 *
    +	 * <p>If the application does not register a handler, all
    +	 * events reported by the parser will be silently ignored.
    +	 *
    +	 * <p>Applications may register a new or different handler in the
    +	 * middle of a parse, and the parser must begin using the new
    +	 * handler immediately.</p>
    +	 * @param handler The transform list handler.
    +	 */
    +	public void setPathHandler(PathHandler handler)
    +	{
    +		pathHandler = handler;
    +	}
    +
    +	/**
    +	 * Returns the path handler in use.
    +	 */
    +	public PathHandler getPathHandler()
    +	{
    +		return pathHandler;
    +	}
    +
    +	protected void doParse() throws ParseException, IOException
    +	{
    +		pathHandler.startPath();
    +
    +		current = reader.read();
    +		loop: for (;;)
    +		{
    +			try
    +			{
    +				switch (current)
    +				{
    +					case 0xD:
    +					case 0xA:
    +					case 0x20:
    +					case 0x9:
    +						current = reader.read();
    +						break;
    +					case 'z':
    +					case 'Z':
    +						current = reader.read();
    +						pathHandler.closePath();
    +						break;
    +					case 'm':
    +						parsem();
    +						break;
    +					case 'M':
    +						parseM();
    +						break;
    +					case 'l':
    +						parsel();
    +						break;
    +					case 'L':
    +						parseL();
    +						break;
    +					case 'h':
    +						parseh();
    +						break;
    +					case 'H':
    +						parseH();
    +						break;
    +					case 'v':
    +						parsev();
    +						break;
    +					case 'V':
    +						parseV();
    +						break;
    +					case 'c':
    +						parsec();
    +						break;
    +					case 'C':
    +						parseC();
    +						break;
    +					case 'q':
    +						parseq();
    +						break;
    +					case 'Q':
    +						parseQ();
    +						break;
    +					case 's':
    +						parses();
    +						break;
    +					case 'S':
    +						parseS();
    +						break;
    +					case 't':
    +						parset();
    +						break;
    +					case 'T':
    +						parseT();
    +						break;
    +					case 'a':
    +						parsea();
    +						break;
    +					case 'A':
    +						parseA();
    +						break;
    +					case -1:
    +						break loop;
    +					default:
    +						reportUnexpected(current);
    +						break;
    +				}
    +			}
    +			catch (ParseException e)
    +			{
    +				errorHandler.error(e);
    +				skipSubPath();
    +			}
    +		}
    +
    +		skipSpaces();
    +		if (current != -1)
    +		{
    +			reportError("end.of.stream.expected", new Object[] { new Integer(
    +					current) });
    +		}
    +
    +		pathHandler.endPath();
    +	}
    +
    +	/**
    +	 * Parses a 'm' command.
    +	 */
    +	protected void parsem() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +
    +		float x = parseFloat();
    +		skipCommaSpaces();
    +		float y = parseFloat();
    +		pathHandler.movetoRel(x, y);
    +
    +		boolean expectNumber = skipCommaSpaces2();
    +		_parsel(expectNumber);
    +	}
    +
    +	/**
    +	 * Parses a 'M' command.
    +	 */
    +	protected void parseM() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +
    +		float x = parseFloat();
    +		skipCommaSpaces();
    +		float y = parseFloat();
    +		pathHandler.movetoAbs(x, y);
    +
    +		boolean expectNumber = skipCommaSpaces2();
    +		_parseL(expectNumber);
    +	}
    +
    +	/**
    +	 * Parses a 'l' command.
    +	 */
    +	protected void parsel() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		_parsel(true);
    +	}
    +
    +	protected void _parsel(boolean expectNumber) throws ParseException,
    +			IOException
    +	{
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.linetoRel(x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'L' command.
    +	 */
    +	protected void parseL() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		_parseL(true);
    +	}
    +
    +	protected void _parseL(boolean expectNumber) throws ParseException,
    +			IOException
    +	{
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.linetoAbs(x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'h' command.
    +	 */
    +	protected void parseh() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +			float x = parseFloat();
    +			pathHandler.linetoHorizontalRel(x);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'H' command.
    +	 */
    +	protected void parseH() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +			float x = parseFloat();
    +			pathHandler.linetoHorizontalAbs(x);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'v' command.
    +	 */
    +	protected void parsev() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +			float x = parseFloat();
    +
    +			pathHandler.linetoVerticalRel(x);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'V' command.
    +	 */
    +	protected void parseV() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +			float x = parseFloat();
    +
    +			pathHandler.linetoVerticalAbs(x);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'c' command.
    +	 */
    +	protected void parsec() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float x1 = parseFloat();
    +			skipCommaSpaces();
    +			float y1 = parseFloat();
    +			skipCommaSpaces();
    +			float x2 = parseFloat();
    +			skipCommaSpaces();
    +			float y2 = parseFloat();
    +			skipCommaSpaces();
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.curvetoCubicRel(x1, y1, x2, y2, x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'C' command.
    +	 */
    +	protected void parseC() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float x1 = parseFloat();
    +			skipCommaSpaces();
    +			float y1 = parseFloat();
    +			skipCommaSpaces();
    +			float x2 = parseFloat();
    +			skipCommaSpaces();
    +			float y2 = parseFloat();
    +			skipCommaSpaces();
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.curvetoCubicAbs(x1, y1, x2, y2, x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'q' command.
    +	 */
    +	protected void parseq() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float x1 = parseFloat();
    +			skipCommaSpaces();
    +			float y1 = parseFloat();
    +			skipCommaSpaces();
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.curvetoQuadraticRel(x1, y1, x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'Q' command.
    +	 */
    +	protected void parseQ() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float x1 = parseFloat();
    +			skipCommaSpaces();
    +			float y1 = parseFloat();
    +			skipCommaSpaces();
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.curvetoQuadraticAbs(x1, y1, x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 's' command.
    +	 */
    +	protected void parses() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float x2 = parseFloat();
    +			skipCommaSpaces();
    +			float y2 = parseFloat();
    +			skipCommaSpaces();
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.curvetoCubicSmoothRel(x2, y2, x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'S' command.
    +	 */
    +	protected void parseS() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float x2 = parseFloat();
    +			skipCommaSpaces();
    +			float y2 = parseFloat();
    +			skipCommaSpaces();
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.curvetoCubicSmoothAbs(x2, y2, x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 't' command.
    +	 */
    +	protected void parset() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.curvetoQuadraticSmoothRel(x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'T' command.
    +	 */
    +	protected void parseT() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.curvetoQuadraticSmoothAbs(x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'a' command.
    +	 */
    +	protected void parsea() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float rx = parseFloat();
    +			skipCommaSpaces();
    +			float ry = parseFloat();
    +			skipCommaSpaces();
    +			float ax = parseFloat();
    +			skipCommaSpaces();
    +
    +			boolean laf;
    +			switch (current)
    +			{
    +				default:
    +					reportUnexpected(current);
    +					return;
    +				case '0':
    +					laf = false;
    +					break;
    +				case '1':
    +					laf = true;
    +					break;
    +			}
    +
    +			current = reader.read();
    +			skipCommaSpaces();
    +
    +			boolean sf;
    +			switch (current)
    +			{
    +				default:
    +					reportUnexpected(current);
    +					return;
    +				case '0':
    +					sf = false;
    +					break;
    +				case '1':
    +					sf = true;
    +					break;
    +			}
    +
    +			current = reader.read();
    +			skipCommaSpaces();
    +
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.arcRel(rx, ry, ax, laf, sf, x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Parses a 'A' command.
    +	 */
    +	protected void parseA() throws ParseException, IOException
    +	{
    +		current = reader.read();
    +		skipSpaces();
    +		boolean expectNumber = true;
    +
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					if (expectNumber)
    +						reportUnexpected(current);
    +					return;
    +
    +				case '+':
    +				case '-':
    +				case '.':
    +				case '0':
    +				case '1':
    +				case '2':
    +				case '3':
    +				case '4':
    +				case '5':
    +				case '6':
    +				case '7':
    +				case '8':
    +				case '9':
    +					break;
    +			}
    +
    +			float rx = parseFloat();
    +			skipCommaSpaces();
    +			float ry = parseFloat();
    +			skipCommaSpaces();
    +			float ax = parseFloat();
    +			skipCommaSpaces();
    +
    +			boolean laf;
    +			switch (current)
    +			{
    +				default:
    +					reportUnexpected(current);
    +					return;
    +				case '0':
    +					laf = false;
    +					break;
    +				case '1':
    +					laf = true;
    +					break;
    +			}
    +
    +			current = reader.read();
    +			skipCommaSpaces();
    +
    +			boolean sf;
    +			switch (current)
    +			{
    +				default:
    +					reportUnexpected(current);
    +					return;
    +				case '0':
    +					sf = false;
    +					break;
    +				case '1':
    +					sf = true;
    +					break;
    +			}
    +
    +			current = reader.read();
    +			skipCommaSpaces();
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pathHandler.arcAbs(rx, ry, ax, laf, sf, x, y);
    +			expectNumber = skipCommaSpaces2();
    +		}
    +	}
    +
    +	/**
    +	 * Skips a sub-path.
    +	 */
    +	protected void skipSubPath() throws ParseException, IOException
    +	{
    +		for (;;)
    +		{
    +			switch (current)
    +			{
    +				case -1:
    +				case 'm':
    +				case 'M':
    +					return;
    +				default:
    +					break;
    +			}
    +			current = reader.read();
    +		}
    +	}
    +
    +	protected void reportUnexpected(int ch) throws ParseException, IOException
    +	{
    +		reportUnexpectedCharacterError(current);
    +		skipSubPath();
    +	}
    +
    +	/**
    +	 * Skips the whitespaces and an optional comma.
    +	 * @return true if comma was skipped.
    +	 */
    +	protected boolean skipCommaSpaces2() throws IOException
    +	{
    +		wsp1: for (;;)
    +		{
    +			switch (current)
    +			{
    +				default:
    +					break wsp1;
    +				case 0x20:
    +				case 0x9:
    +				case 0xD:
    +				case 0xA:
    +					break;
    +			}
    +			current = reader.read();
    +		}
    +
    +		if (current != ',')
    +			return false; // no comma.
    +
    +		wsp2: for (;;)
    +		{
    +			switch (current = reader.read())
    +			{
    +				default:
    +					break wsp2;
    +				case 0x20:
    +				case 0x9:
    +				case 0xD:
    +				case 0xA:
    +					break;
    +			}
    +		}
    +		return true; // had comma
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/PointsHandler.java b/java/src/com/mxgraph/util/svg/PointsHandler.java
    new file mode 100644
    index 000000000..3bc890aaa
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/PointsHandler.java
    @@ -0,0 +1,54 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +/**
    + * This interface must be implemented and then registred as the
    + * handler of a <code>PointsParser</code> instance in order to be
    + * notified of parsing events.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: PointsHandler.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public interface PointsHandler
    +{
    +
    +	/**
    +	 * Invoked when the points attribute starts.
    +	 * @exception ParseException if an error occured while processing the
    +	 *                           points
    +	 */
    +	void startPoints() throws ParseException;
    +
    +	/**
    +	 * Invoked when a point has been parsed.
    +	 * @param x the x coordinate of the point
    +	 * @param y the y coordinate of the point
    +	 * @exception ParseException if an error occured while processing the
    +	 *                           points
    +	 */
    +	void point(float x, float y) throws ParseException;
    +
    +	/**
    +	 * Invoked when the points attribute ends.
    +	 * @exception ParseException if an error occured while processing the
    +	 *                           points
    +	 */
    +	void endPoints() throws ParseException;
    +}
    diff --git a/java/src/com/mxgraph/util/svg/PointsParser.java b/java/src/com/mxgraph/util/svg/PointsParser.java
    new file mode 100644
    index 000000000..6375622b7
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/PointsParser.java
    @@ -0,0 +1,101 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.io.IOException;
    +
    +/**
    + * This class implements an event-based parser for the SVG points
    + * attribute values (used with polyline and polygon elements).
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: PointsParser.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public class PointsParser extends NumberParser
    +{
    +
    +	/**
    +	 * The points handler used to report parse events.
    +	 */
    +	protected PointsHandler pointsHandler;
    +
    +	/**
    +	 * Whether the last character was a 'e' or 'E'.
    +	 */
    +	protected boolean eRead;
    +
    +	/**
    +	 * Creates a new PointsParser.
    +	 */
    +	public PointsParser(PointsHandler handler)
    +	{
    +		pointsHandler = handler;
    +	}
    +
    +	/**
    +	 * Allows an application to register a points handler.
    +	 *
    +	 * <p>If the application does not register a handler, all
    +	 * events reported by the parser will be silently ignored.
    +	 *
    +	 * <p>Applications may register a new or different handler in the
    +	 * middle of a parse, and the parser must begin using the new
    +	 * handler immediately.</p>
    +	 * @param handler The transform list handler.
    +	 */
    +	public void setPointsHandler(PointsHandler handler)
    +	{
    +		pointsHandler = handler;
    +	}
    +
    +	/**
    +	 * Returns the points handler in use.
    +	 */
    +	public PointsHandler getPointsHandler()
    +	{
    +		return pointsHandler;
    +	}
    +
    +	/**
    +	 * Parses the current stream.
    +	 */
    +	protected void doParse() throws ParseException, IOException
    +	{
    +		pointsHandler.startPoints();
    +
    +		current = reader.read();
    +		skipSpaces();
    +
    +		loop: for (;;)
    +		{
    +			if (current == -1)
    +			{
    +				break loop;
    +			}
    +			float x = parseFloat();
    +			skipCommaSpaces();
    +			float y = parseFloat();
    +
    +			pointsHandler.point(x, y);
    +			skipCommaSpaces();
    +		}
    +
    +		pointsHandler.endPoints();
    +	}
    +}
    diff --git a/java/src/com/mxgraph/util/svg/ShapeProducer.java b/java/src/com/mxgraph/util/svg/ShapeProducer.java
    new file mode 100644
    index 000000000..29d127878
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/ShapeProducer.java
    @@ -0,0 +1,47 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.awt.Shape;
    +
    +/**
    + * This interface represents objects which creates Shape objects.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: ShapeProducer.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public interface ShapeProducer
    +{
    +	/**
    +	 * Returns the Shape object initialized during the last parsing.
    +	 * @return the shape or null if this handler has not been used to
    +	 *         parse a path.
    +	 */
    +	Shape getShape();
    +
    +	/**
    +	 * Sets the winding rule used to construct the path.
    +	 */
    +	void setWindingRule(int i);
    +
    +	/**
    +	 * Returns the current winding rule.
    +	 */
    +	int getWindingRule();
    +}
    diff --git a/java/src/com/mxgraph/util/svg/StringNormalizingReader.java b/java/src/com/mxgraph/util/svg/StringNormalizingReader.java
    new file mode 100644
    index 000000000..93aeb8bd7
    --- /dev/null
    +++ b/java/src/com/mxgraph/util/svg/StringNormalizingReader.java
    @@ -0,0 +1,120 @@
    +/*
    +
    +   Licensed to the Apache Software Foundation (ASF) under one or more
    +   contributor license agreements.  See the NOTICE file distributed with
    +   this work for additional information regarding copyright ownership.
    +   The ASF licenses this file to You under the Apache License, Version 2.0
    +   (the "License"); you may not use this file except in compliance with
    +   the License.  You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + */
    +package com.mxgraph.util.svg;
    +
    +import java.io.IOException;
    +
    +/**
    + * This class represents a NormalizingReader which handles Strings.
    + *
    + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
    + * @version $Id: StringNormalizingReader.java,v 1.1 2010-09-03 19:14:06 david Exp $
    + */
    +public class StringNormalizingReader extends NormalizingReader
    +{
    +
    +	/**
    +	 * The characters.
    +	 */
    +	protected String string;
    +
    +	/**
    +	 * The length of the string.
    +	 */
    +	protected int length;
    +
    +	/**
    +	 * The index of the next character.
    +	 */
    +	protected int next;
    +
    +	/**
    +	 * The current line in the stream.
    +	 */
    +	protected int line = 1;
    +
    +	/**
    +	 * The current column in the stream.
    +	 */
    +	protected int column;
    +
    +	/**
    +	 * Creates a new StringNormalizingReader.
    +	 * @param s The string to read.
    +	 */
    +	public StringNormalizingReader(String s)
    +	{
    +		string = s;
    +		length = s.length();
    +	}
    +
    +	/**
    +	 * Read a single character.  This method will block until a
    +	 * character is available, an I/O error occurs, or the end of the
    +	 * stream is reached.
    +	 */
    +	public int read() throws IOException
    +	{
    +		int result = (length == next) ? -1 : string.charAt(next++);
    +		if (result <= 13)
    +		{
    +			switch (result)
    +			{
    +				case 13:
    +					column = 0;
    +					line++;
    +					int c = (length == next) ? -1 : string.charAt(next);
    +					if (c == 10)
    +					{
    +						next++;
    +					}
    +					return 10;
    +
    +				case 10:
    +					column = 0;
    +					line++;
    +			}
    +		}
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the current line in the stream.
    +	 */
    +	public int getLine()
    +	{
    +		return line;
    +	}
    +
    +	/**
    +	 * Returns the current column in the stream.
    +	 */
    +	public int getColumn()
    +	{
    +		return column;
    +	}
    +
    +	/**
    +	 * Close the stream.
    +	 */
    +	public void close() throws IOException
    +	{
    +		string = null;
    +	}
    +}
    diff --git a/java/src/com/mxgraph/view/mxCellState.java b/java/src/com/mxgraph/view/mxCellState.java
    new file mode 100644
    index 000000000..a711aca35
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxCellState.java
    @@ -0,0 +1,566 @@
    +/**
    + * $Id: mxCellState.java,v 1.34 2012-03-09 07:42:53 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.view;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +import java.util.Map;
    +
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +
    +/**
    + * Represents the current state of a cell in a given graph view.
    + */
    +public class mxCellState extends mxRectangle
    +{
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 7588335615324083354L;
    +
    +	/**
    +	 * Reference to the enclosing graph view.
    +	 */
    +	protected mxGraphView view;
    +
    +	/**
    +	 * Reference to the cell that is represented by this state.
    +	 */
    +	protected Object cell;
    +
    +	/**
    +	 * Holds the current label value, including newlines which result from
    +	 * word wrapping.
    +	 */
    +	protected String label;
    +
    +	/**
    +	 * Contains an array of key, value pairs that represent the style of the
    +	 * cell.
    +	 */
    +	protected Map<String, Object> style;
    +
    +	/**
    +	 * Holds the origin for all child cells.
    +	 */
    +	protected mxPoint origin = new mxPoint();
    +
    +	/**
    +	 * List of mxPoints that represent the absolute points of an edge.
    +	 */
    +	protected List<mxPoint> absolutePoints;
    +
    +	/**
    +	 * Holds the absolute offset. For edges, this is the absolute coordinates
    +	 * of the label position. For vertices, this is the offset of the label
    +	 * relative to the top, left corner of the vertex.
    +	 */
    +	protected mxPoint absoluteOffset = new mxPoint();
    +
    +	/**
    +	 * Caches the distance between the end points and the length of an edge.
    +	 */
    +	protected double terminalDistance, length;
    +
    +	/**
    +	 * Array of numbers that represent the cached length of each segment of the
    +	 * edge.
    +	 */
    +	protected double[] segments;
    +
    +	/**
    +	 * Holds the rectangle which contains the label.
    +	 */
    +	protected mxRectangle labelBounds;
    +
    +	/**
    +	 * Holds the largest rectangle which contains all rendering for this cell.
    +	 */
    +	protected mxRectangle boundingBox;
    +
    +	/**
    +	 * Specifies if the state is invalid. Default is true.
    +	 */
    +	protected boolean invalid = true;
    +
    +	/**
    +	 * Caches the visible source and target terminal states.
    +	 */
    +	protected mxCellState visibleSourceState, visibleTargetState;
    +
    +	/**
    +	 * Constructs an empty cell state.
    +	 */
    +	public mxCellState()
    +	{
    +		this(null, null, null);
    +	}
    +
    +	/**
    +	 * Constructs a new object that represents the current state of the given
    +	 * cell in the specified view.
    +	 * 
    +	 * @param view Graph view that contains the state.
    +	 * @param cell Cell that this state represents.
    +	 * @param style Array of key, value pairs that constitute the style.
    +	 */
    +	public mxCellState(mxGraphView view, Object cell, Map<String, Object> style)
    +	{
    +		setView(view);
    +		setCell(cell);
    +		setStyle(style);
    +	}
    +
    +	/**
    +	 * Returns true if the state is invalid.
    +	 */
    +	public boolean isInvalid()
    +	{
    +		return invalid;
    +	}
    +
    +	/**
    +	 * Sets the invalid state.
    +	 */
    +	public void setInvalid(boolean invalid)
    +	{
    +		this.invalid = invalid;
    +	}
    +
    +	/**
    +	 * Returns the enclosing graph view.
    +	 * 
    +	 * @return the view
    +	 */
    +	public mxGraphView getView()
    +	{
    +		return view;
    +	}
    +
    +	/**
    +	 * Sets the enclosing graph view. 
    +	 *
    +	 * @param view the view to set
    +	 */
    +	public void setView(mxGraphView view)
    +	{
    +		this.view = view;
    +	}
    +
    +	/**
    +	 * Returns the current label.
    +	 */
    +	public String getLabel()
    +	{
    +		return label;
    +	}
    +
    +	/**
    +	 * Returns the current label.
    +	 */
    +	public void setLabel(String value)
    +	{
    +		label = value;
    +	}
    +
    +	/**
    +	 * Returns the cell that is represented by this state.
    +	 * 
    +	 * @return the cell
    +	 */
    +	public Object getCell()
    +	{
    +		return cell;
    +	}
    +
    +	/**
    +	 * Sets the cell that this state represents.
    +	 * 
    +	 * @param cell the cell to set
    +	 */
    +	public void setCell(Object cell)
    +	{
    +		this.cell = cell;
    +	}
    +
    +	/**
    +	 * Returns the cell style as a map of key, value pairs.
    +	 * 
    +	 * @return the style
    +	 */
    +	public Map<String, Object> getStyle()
    +	{
    +		return style;
    +	}
    +
    +	/**
    +	 * Sets the cell style as a map of key, value pairs.
    +	 * 
    +	 * @param style the style to set
    +	 */
    +	public void setStyle(Map<String, Object> style)
    +	{
    +		this.style = style;
    +	}
    +
    +	/**
    +	 * Returns the origin for the children.
    +	 * 
    +	 * @return the origin
    +	 */
    +	public mxPoint getOrigin()
    +	{
    +		return origin;
    +	}
    +
    +	/**
    +	 * Sets the origin for the children.
    +	 * 
    +	 * @param origin the origin to set
    +	 */
    +	public void setOrigin(mxPoint origin)
    +	{
    +		this.origin = origin;
    +	}
    +
    +	/**
    +	 * Returns the absolute point at the given index.
    +	 * 
    +	 * @return the mxPoint at the given index
    +	 */
    +	public mxPoint getAbsolutePoint(int index)
    +	{
    +		return absolutePoints.get(index);
    +	}
    +
    +	/**
    +	 * Returns the absolute point at the given index.
    +	 * 
    +	 * @return the mxPoint at the given index
    +	 */
    +	public mxPoint setAbsolutePoint(int index, mxPoint point)
    +	{
    +		return absolutePoints.set(index, point);
    +	}
    +
    +	/**
    +	 * Returns the number of absolute points.
    +	 * 
    +	 * @return the absolutePoints
    +	 */
    +	public int getAbsolutePointCount()
    +	{
    +		return (absolutePoints != null) ? absolutePoints.size() : 0;
    +	}
    +
    +	/**
    +	 * Returns the absolute points.
    +	 * 
    +	 * @return the absolutePoints
    +	 */
    +	public List<mxPoint> getAbsolutePoints()
    +	{
    +		return absolutePoints;
    +	}
    +
    +	/**
    +	 * Returns the absolute points.
    +	 * 
    +	 * @param absolutePoints the absolutePoints to set
    +	 */
    +	public void setAbsolutePoints(List<mxPoint> absolutePoints)
    +	{
    +		this.absolutePoints = absolutePoints;
    +	}
    +
    +	/**
    +	 * Returns the absolute offset.
    +	 * 
    +	 * @return the absoluteOffset
    +	 */
    +	public mxPoint getAbsoluteOffset()
    +	{
    +		return absoluteOffset;
    +	}
    +
    +	/**
    +	 * Returns the absolute offset.
    +	 * 
    +	 * @param absoluteOffset the absoluteOffset to set
    +	 */
    +	public void setAbsoluteOffset(mxPoint absoluteOffset)
    +	{
    +		this.absoluteOffset = absoluteOffset;
    +	}
    +
    +	/**
    +	 * Returns the terminal distance.
    +	 * 
    +	 * @return the terminalDistance
    +	 */
    +	public double getTerminalDistance()
    +	{
    +		return terminalDistance;
    +	}
    +
    +	/**
    +	 * Sets the terminal distance.
    +	 * 
    +	 * @param terminalDistance the terminalDistance to set
    +	 */
    +	public void setTerminalDistance(double terminalDistance)
    +	{
    +		this.terminalDistance = terminalDistance;
    +	}
    +
    +	/**
    +	 * Returns the length.
    +	 * 
    +	 * @return the length
    +	 */
    +	public double getLength()
    +	{
    +		return length;
    +	}
    +
    +	/**
    +	 * Sets the length.
    +	 * 
    +	 * @param length the length to set
    +	 */
    +	public void setLength(double length)
    +	{
    +		this.length = length;
    +	}
    +
    +	/**
    +	 * Returns the length of the segments.
    +	 * 
    +	 * @return the segments
    +	 */
    +	public double[] getSegments()
    +	{
    +		return segments;
    +	}
    +
    +	/**
    +	 * Sets the length of the segments.
    +	 * 
    +	 * @param segments the segments to set
    +	 */
    +	public void setSegments(double[] segments)
    +	{
    +		this.segments = segments;
    +	}
    +
    +	/**
    +	 * Returns the label bounds.
    +	 * 
    +	 * @return Returns the label bounds for this state.
    +	 */
    +	public mxRectangle getLabelBounds()
    +	{
    +		return labelBounds;
    +	}
    +
    +	/**
    +	 * Sets the label bounds.
    +	 * 
    +	 * @param labelBounds
    +	 */
    +	public void setLabelBounds(mxRectangle labelBounds)
    +	{
    +		this.labelBounds = labelBounds;
    +	}
    +
    +	/**
    +	 * Returns the bounding box.
    +	 * 
    +	 * @return Returns the bounding box for this state.
    +	 */
    +	public mxRectangle getBoundingBox()
    +	{
    +		return boundingBox;
    +	}
    +
    +	/**
    +	 * Sets the bounding box.
    +	 * 
    +	 * @param boundingBox
    +	 */
    +	public void setBoundingBox(mxRectangle boundingBox)
    +	{
    +		this.boundingBox = boundingBox;
    +	}
    +
    +	/**
    +	 * Returns the rectangle that should be used as the perimeter of the cell.
    +	 * This implementation adds the perimeter spacing to the rectangle
    +	 * defined by this cell state.
    +	 * 
    +	 * @return Returns the rectangle that defines the perimeter.
    +	 */
    +	public mxRectangle getPerimeterBounds()
    +	{
    +		return getPerimeterBounds(0);
    +	}
    +
    +	/**
    +	 * Returns the rectangle that should be used as the perimeter of the cell.
    +	 * 
    +	 * @return Returns the rectangle that defines the perimeter.
    +	 */
    +	public mxRectangle getPerimeterBounds(double border)
    +	{
    +		mxRectangle bounds = new mxRectangle(getRectangle());
    +
    +		if (border != 0)
    +		{
    +			bounds.grow(border);
    +		}
    +
    +		return bounds;
    +	}
    +
    +	/**
    +	 * Sets the first or last point in the list of points depending on isSource.
    +	 * 
    +	 * @param point Point that represents the terminal point.
    +	 * @param isSource Boolean that specifies if the first or last point should
    +	 * be assigned.
    +	 */
    +	public void setAbsoluteTerminalPoint(mxPoint point, boolean isSource)
    +	{
    +		if (isSource)
    +		{
    +			if (absolutePoints == null)
    +			{
    +				absolutePoints = new ArrayList<mxPoint>();
    +			}
    +
    +			if (absolutePoints.size() == 0)
    +			{
    +				absolutePoints.add(point);
    +			}
    +			else
    +			{
    +				absolutePoints.set(0, point);
    +			}
    +		}
    +		else
    +		{
    +			if (absolutePoints == null)
    +			{
    +				absolutePoints = new ArrayList<mxPoint>();
    +				absolutePoints.add(null);
    +				absolutePoints.add(point);
    +			}
    +			else if (absolutePoints.size() == 1)
    +			{
    +				absolutePoints.add(point);
    +			}
    +			else
    +			{
    +				absolutePoints.set(absolutePoints.size() - 1, point);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the visible source or target terminal cell.
    +	 * 
    +	 * @param source Boolean that specifies if the source or target cell should be
    +	 * returned.
    +	 */
    +	public Object getVisibleTerminal(boolean source)
    +	{
    +		mxCellState tmp = getVisibleTerminalState(source);
    +
    +		return (tmp != null) ? tmp.getCell() : null;
    +	}
    +
    +	/**
    +	 * Returns the visible source or target terminal state.
    +	 * 
    +	 * @param Boolean that specifies if the source or target state should be
    +	 * returned.
    +	 */
    +	public mxCellState getVisibleTerminalState(boolean source)
    +	{
    +		return (source) ? visibleSourceState : visibleTargetState;
    +	}
    +
    +	/**
    +	 * Sets the visible source or target terminal state.
    +	 * 
    +	 * @param terminalState Cell state that represents the terminal.
    +	 * @param source Boolean that specifies if the source or target state should be set.
    +	 */
    +	public void setVisibleTerminalState(mxCellState terminalState,
    +			boolean source)
    +	{
    +		if (source)
    +		{
    +			visibleSourceState = terminalState;
    +		}
    +		else
    +		{
    +			visibleTargetState = terminalState;
    +		}
    +	}
    +
    +	/**
    +	 * Returns a clone of this state where all members are deeply cloned
    +	 * except the view and cell references, which are copied with no
    +	 * cloning to the new instance.
    +	 */
    +	public Object clone()
    +	{
    +		mxCellState clone = new mxCellState(view, cell, style);
    +
    +		if (absolutePoints != null)
    +		{
    +			clone.absolutePoints = new ArrayList<mxPoint>();
    +
    +			for (int i = 0; i < absolutePoints.size(); i++)
    +			{
    +				clone.absolutePoints.add((mxPoint) absolutePoints.get(i)
    +						.clone());
    +			}
    +		}
    +
    +		if (origin != null)
    +		{
    +			clone.origin = (mxPoint) origin.clone();
    +		}
    +
    +		if (absoluteOffset != null)
    +		{
    +			clone.absoluteOffset = (mxPoint) absoluteOffset.clone();
    +		}
    +
    +		if (labelBounds != null)
    +		{
    +			clone.labelBounds = (mxRectangle) labelBounds.clone();
    +		}
    +
    +		if (boundingBox != null)
    +		{
    +			clone.boundingBox = (mxRectangle) boundingBox.clone();
    +		}
    +
    +		clone.terminalDistance = terminalDistance;
    +		clone.segments = segments;
    +		clone.length = length;
    +		clone.x = x;
    +		clone.y = y;
    +		clone.width = width;
    +		clone.height = height;
    +
    +		return clone;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxConnectionConstraint.java b/java/src/com/mxgraph/view/mxConnectionConstraint.java
    new file mode 100644
    index 000000000..c0634eccc
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxConnectionConstraint.java
    @@ -0,0 +1,89 @@
    +/**
    + * $Id: mxConnectionConstraint.java,v 1.2 2010-04-29 09:33:53 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.view;
    +
    +import com.mxgraph.util.mxPoint;
    +
    +/**
    + * Defines an object that contains the constraints about how to connect one
    + * side of an edge to its terminal.
    + */
    +public class mxConnectionConstraint
    +{
    +	/**
    +	 * Point that specifies the fixed location of the connection point.
    +	 */
    +	protected mxPoint point;
    +
    +	/**
    +	 * Boolean that specifies if the point should be projected onto the perimeter
    +	 * of the terminal.
    +	 */
    +	protected boolean perimeter;
    +
    +	/**
    +	 * Constructs an empty connection constraint.
    +	 */
    +	public mxConnectionConstraint()
    +	{
    +		this(null);
    +	}
    +
    +	/**
    +	 * Constructs a connection constraint for the given point.
    +	 */
    +	public mxConnectionConstraint(mxPoint point)
    +	{
    +		this(point, true);
    +	}
    +
    +	/**
    +	 * Constructs a new connection constraint for the given point and boolean
    +	 * arguments.
    +	 * 
    +	 * @param point Optional mxPoint that specifies the fixed location of the point
    +	 * in relative coordinates. Default is null.
    +	 * @param perimeter Optional boolean that specifies if the fixed point should be
    +	 * projected onto the perimeter of the terminal. Default is true.
    +	 */
    +	public mxConnectionConstraint(mxPoint point, boolean perimeter)
    +	{
    +		setPoint(point);
    +		setPerimeter(perimeter);
    +	}
    +
    +	/**
    +	 * Returns the point.
    +	 */
    +	public mxPoint getPoint()
    +	{
    +		return point;
    +	}
    +
    +	/**
    +	 * Sets the point.
    +	 */
    +	public void setPoint(mxPoint value)
    +	{
    +		point = value;
    +	}
    +
    +	/**
    +	 * Returns perimeter.
    +	 */
    +	public boolean isPerimeter()
    +	{
    +		return perimeter;
    +	}
    +
    +	/**
    +	 * Sets perimeter.
    +	 */
    +	public void setPerimeter(boolean value)
    +	{
    +		perimeter = value;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxEdgeStyle.java b/java/src/com/mxgraph/view/mxEdgeStyle.java
    new file mode 100644
    index 000000000..bb4ba16dc
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxEdgeStyle.java
    @@ -0,0 +1,1084 @@
    +/**
    + * $Id: mxEdgeStyle.java,v 1.47 2011-09-06 19:43:50 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.view;
    +
    +import java.util.List;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Provides various edge styles to be used as the values for
    + * mxConstants.STYLE_EDGE in a cell style. Alternatevly, the mxConstants.
    + * EDGESTYLE_* constants can be used to reference an edge style via the
    + * mxStyleRegistry.
    + */
    +public class mxEdgeStyle
    +{
    +
    +	/**
    +	 * Defines the requirements for an edge style function.
    +	 */
    +	public interface mxEdgeStyleFunction
    +	{
    +
    +		/**
    +		 * Implements an edge style function. At the time the function is called, the result
    +		 * array contains a placeholder (null) for the first absolute point,
    +		 * that is, the point where the edge and source terminal are connected.
    +		 * The implementation of the style then adds all intermediate waypoints
    +		 * except for the last point, that is, the connection point between the
    +		 * edge and the target terminal. The first ant the last point in the
    +		 * result array are then replaced with mxPoints that take into account
    +		 * the terminal's perimeter and next point on the edge.
    +		 * 
    +		 * @param state Cell state that represents the edge to be updated.
    +		 * @param source Cell state that represents the source terminal.
    +		 * @param target Cell state that represents the target terminal.
    +		 * @param points List of relative control points.
    +		 * @param result Array of points that represent the actual points of the
    +		 * edge.
    +		 */
    +		void apply(mxCellState state, mxCellState source, mxCellState target,
    +				List<mxPoint> points, List<mxPoint> result);
    +
    +	}
    +
    +	/**
    +	 * Provides an entity relation style for edges (as used in database
    +	 * schema diagrams).
    +	 */
    +	public static mxEdgeStyleFunction EntityRelation = new mxEdgeStyleFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)
    +		 */
    +		public void apply(mxCellState state, mxCellState source,
    +				mxCellState target, List<mxPoint> points, List<mxPoint> result)
    +		{
    +			mxGraphView view = state.getView();
    +			mxIGraphModel model = view.getGraph().getModel();
    +			double segment = mxUtils.getDouble(state.getStyle(),
    +					mxConstants.STYLE_SEGMENT, mxConstants.ENTITY_SEGMENT)
    +					* state.view.getScale();
    +
    +			mxPoint p0 = state.getAbsolutePoint(0);
    +			mxPoint pe = state
    +					.getAbsolutePoint(state.getAbsolutePointCount() - 1);
    +
    +			boolean isSourceLeft = false;
    +
    +			if (p0 != null)
    +			{
    +				source = new mxCellState();
    +				source.setX(p0.getX());
    +				source.setY(p0.getY());
    +			}
    +			else if (source != null)
    +			{
    +				int constraint = mxUtils.getPortConstraints(source, state, true, mxConstants.DIRECTION_MASK_NONE);
    +				
    +				if (constraint != mxConstants.DIRECTION_MASK_NONE)
    +				{
    +					isSourceLeft = constraint == mxConstants.DIRECTION_MASK_WEST;
    +				}
    +				else
    +				{
    +					mxGeometry sourceGeometry = model.getGeometry(source.cell);
    +	
    +					if (sourceGeometry.isRelative())
    +					{
    +						isSourceLeft = sourceGeometry.getX() <= 0.5;
    +					}
    +					else if (target != null)
    +					{
    +						isSourceLeft = target.getX() + target.getWidth() < source
    +								.getX();
    +					}
    +				}
    +			}
    +
    +			boolean isTargetLeft = true;
    +
    +			if (pe != null)
    +			{
    +				target = new mxCellState();
    +				target.setX(pe.getX());
    +				target.setY(pe.getY());
    +			}
    +			else if (target != null)
    +			{
    +				int constraint = mxUtils.getPortConstraints(target, state, false, mxConstants.DIRECTION_MASK_NONE);
    +				
    +				if (constraint != mxConstants.DIRECTION_MASK_NONE)
    +				{
    +					isTargetLeft = constraint == mxConstants.DIRECTION_MASK_WEST;
    +				}
    +				else
    +				{
    +					mxGeometry targetGeometry = model.getGeometry(target.cell);
    +	
    +					if (targetGeometry.isRelative())
    +					{
    +						isTargetLeft = targetGeometry.getX() <= 0.5;
    +					}
    +					else if (source != null)
    +					{
    +						isTargetLeft = source.getX() + source.getWidth() < target
    +								.getX();
    +					}
    +				}
    +			}
    +
    +			if (source != null && target != null)
    +			{
    +				double x0 = (isSourceLeft) ? source.getX() : source.getX()
    +						+ source.getWidth();
    +				double y0 = view.getRoutingCenterY(source);
    +
    +				double xe = (isTargetLeft) ? target.getX() : target.getX()
    +						+ target.getWidth();
    +				double ye = view.getRoutingCenterY(target);
    +
    +				double seg = segment;
    +
    +				double dx = (isSourceLeft) ? -seg : seg;
    +				mxPoint dep = new mxPoint(x0 + dx, y0);
    +				result.add(dep);
    +
    +				dx = (isTargetLeft) ? -seg : seg;
    +				mxPoint arr = new mxPoint(xe + dx, ye);
    +
    +				// Adds intermediate points if both go out on same side
    +				if (isSourceLeft == isTargetLeft)
    +				{
    +					double x = (isSourceLeft) ? Math.min(x0, xe) - segment
    +							: Math.max(x0, xe) + segment;
    +					result.add(new mxPoint(x, y0));
    +					result.add(new mxPoint(x, ye));
    +				}
    +				else if ((dep.getX() < arr.getX()) == isSourceLeft)
    +				{
    +					double midY = y0 + (ye - y0) / 2;
    +					result.add(new mxPoint(dep.getX(), midY));
    +					result.add(new mxPoint(arr.getX(), midY));
    +				}
    +
    +				result.add(arr);
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * Provides a self-reference, aka. loop.
    +	 */
    +	public static mxEdgeStyleFunction Loop = new mxEdgeStyleFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)
    +		 */
    +		public void apply(mxCellState state, mxCellState source,
    +				mxCellState target, List<mxPoint> points, List<mxPoint> result)
    +		{
    +			if (source != null)
    +			{
    +				mxGraphView view = state.getView();
    +				mxGraph graph = view.getGraph();
    +				mxPoint pt = (points != null && points.size() > 0) ? points
    +						.get(0) : null;
    +
    +				if (pt != null)
    +				{
    +					pt = view.transformControlPoint(state, pt);
    +
    +					if (source.contains(pt.getX(), pt.getY()))
    +					{
    +						pt = null;
    +					}
    +				}
    +
    +				double x = 0;
    +				double dx = 0;
    +				double y = 0;
    +				double dy = 0;
    +
    +				double seg = mxUtils.getDouble(state.getStyle(),
    +						mxConstants.STYLE_SEGMENT, graph.getGridSize())
    +						* view.getScale();
    +				String dir = mxUtils
    +						.getString(state.getStyle(),
    +								mxConstants.STYLE_DIRECTION,
    +								mxConstants.DIRECTION_WEST);
    +
    +				if (dir.equals(mxConstants.DIRECTION_NORTH)
    +						|| dir.equals(mxConstants.DIRECTION_SOUTH))
    +				{
    +					x = view.getRoutingCenterX(source);
    +					dx = seg;
    +				}
    +				else
    +				{
    +					y = view.getRoutingCenterY(source);
    +					dy = seg;
    +				}
    +
    +				if (pt == null || pt.getX() < source.getX()
    +						|| pt.getX() > source.getX() + source.getWidth())
    +				{
    +					if (pt != null)
    +					{
    +						x = pt.getX();
    +						dy = Math.max(Math.abs(y - pt.getY()), dy);
    +					}
    +					else
    +					{
    +						if (dir.equals(mxConstants.DIRECTION_NORTH))
    +						{
    +							y = source.getY() - 2 * dx;
    +						}
    +						else if (dir.equals(mxConstants.DIRECTION_SOUTH))
    +						{
    +							y = source.getY() + source.getHeight() + 2 * dx;
    +						}
    +						else if (dir.equals(mxConstants.DIRECTION_EAST))
    +						{
    +							x = source.getX() - 2 * dy;
    +						}
    +						else
    +						{
    +							x = source.getX() + source.getWidth() + 2 * dy;
    +						}
    +					}
    +				}
    +				else
    +				{
    +					// pt != null
    +					x = view.getRoutingCenterX(source);
    +					dx = Math.max(Math.abs(x - pt.getX()), dy);
    +					y = pt.getY();
    +					dy = 0;
    +				}
    +
    +				result.add(new mxPoint(x - dx, y - dy));
    +				result.add(new mxPoint(x + dx, y + dy));
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * Uses either SideToSide or TopToBottom depending on the horizontal
    +	 * flag in the cell style. SideToSide is used if horizontal is true or
    +	 * unspecified.
    +	 */
    +	public static mxEdgeStyleFunction ElbowConnector = new mxEdgeStyleFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)
    +		 */
    +		public void apply(mxCellState state, mxCellState source,
    +				mxCellState target, List<mxPoint> points, List<mxPoint> result)
    +		{
    +			mxPoint pt = (points != null && points.size() > 0) ? points.get(0)
    +					: null;
    +
    +			boolean vertical = false;
    +			boolean horizontal = false;
    +
    +			if (source != null && target != null)
    +			{
    +				if (pt != null)
    +				{
    +					double left = Math.min(source.getX(), target.getX());
    +					double right = Math.max(source.getX() + source.getWidth(),
    +							target.getX() + target.getWidth());
    +
    +					double top = Math.min(source.getY(), target.getY());
    +					double bottom = Math.max(
    +							source.getY() + source.getHeight(), target.getY()
    +									+ target.getHeight());
    +
    +					pt = state.getView().transformControlPoint(state, pt);
    +
    +					vertical = pt.getY() < top || pt.getY() > bottom;
    +					horizontal = pt.getX() < left || pt.getX() > right;
    +				}
    +				else
    +				{
    +					double left = Math.max(source.getX(), target.getX());
    +					double right = Math.min(source.getX() + source.getWidth(),
    +							target.getX() + target.getWidth());
    +
    +					vertical = left == right;
    +
    +					if (!vertical)
    +					{
    +						double top = Math.max(source.getY(), target.getY());
    +						double bottom = Math.min(
    +								source.getY() + source.getHeight(),
    +								target.getY() + target.getHeight());
    +
    +						horizontal = top == bottom;
    +					}
    +				}
    +			}
    +
    +			if (!horizontal
    +					&& (vertical || mxUtils.getString(state.getStyle(),
    +							mxConstants.STYLE_ELBOW, "").equals(
    +							mxConstants.ELBOW_VERTICAL)))
    +			{
    +				mxEdgeStyle.TopToBottom.apply(state, source, target, points,
    +						result);
    +			}
    +			else
    +			{
    +				mxEdgeStyle.SideToSide.apply(state, source, target, points,
    +						result);
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * Provides a vertical elbow edge.
    +	 */
    +	public static mxEdgeStyleFunction SideToSide = new mxEdgeStyleFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)
    +		 */
    +		public void apply(mxCellState state, mxCellState source,
    +				mxCellState target, List<mxPoint> points, List<mxPoint> result)
    +		{
    +			mxGraphView view = state.getView();
    +			mxPoint pt = ((points != null && points.size() > 0) ? points.get(0)
    +					: null);
    +			mxPoint p0 = state.getAbsolutePoint(0);
    +			mxPoint pe = state
    +					.getAbsolutePoint(state.getAbsolutePointCount() - 1);
    +
    +			if (pt != null)
    +			{
    +				pt = view.transformControlPoint(state, pt);
    +			}
    +
    +			if (p0 != null)
    +			{
    +				source = new mxCellState();
    +				source.setX(p0.getX());
    +				source.setY(p0.getY());
    +			}
    +
    +			if (pe != null)
    +			{
    +				target = new mxCellState();
    +				target.setX(pe.getX());
    +				target.setY(pe.getY());
    +			}
    +
    +			if (source != null && target != null)
    +			{
    +				double l = Math.max(source.getX(), target.getX());
    +				double r = Math.min(source.getX() + source.getWidth(),
    +						target.getX() + target.getWidth());
    +
    +				double x = (pt != null) ? pt.getX() : r + (l - r) / 2;
    +
    +				double y1 = view.getRoutingCenterY(source);
    +				double y2 = view.getRoutingCenterY(target);
    +
    +				if (pt != null)
    +				{
    +					if (pt.getY() >= source.getY()
    +							&& pt.getY() <= source.getY() + source.getHeight())
    +					{
    +						y1 = pt.getY();
    +					}
    +
    +					if (pt.getY() >= target.getY()
    +							&& pt.getY() <= target.getY() + target.getHeight())
    +					{
    +						y2 = pt.getY();
    +					}
    +				}
    +
    +				if (!target.contains(x, y1) && !source.contains(x, y1))
    +				{
    +					result.add(new mxPoint(x, y1));
    +				}
    +
    +				if (!target.contains(x, y2) && !source.contains(x, y2))
    +				{
    +					result.add(new mxPoint(x, y2));
    +				}
    +
    +				if (result.size() == 1)
    +				{
    +					if (pt != null)
    +					{
    +						result.add(new mxPoint(x, pt.getY()));
    +					}
    +					else
    +					{
    +						double t = Math.max(source.getY(), target.getY());
    +						double b = Math.min(source.getY() + source.getHeight(),
    +								target.getY() + target.getHeight());
    +
    +						result.add(new mxPoint(x, t + (b - t) / 2));
    +					}
    +				}
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * Provides a horizontal elbow edge.
    +	 */
    +	public static mxEdgeStyleFunction TopToBottom = new mxEdgeStyleFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)
    +		 */
    +		public void apply(mxCellState state, mxCellState source,
    +				mxCellState target, List<mxPoint> points, List<mxPoint> result)
    +		{
    +			mxGraphView view = state.getView();
    +			mxPoint pt = ((points != null && points.size() > 0) ? points.get(0)
    +					: null);
    +			mxPoint p0 = state.getAbsolutePoint(0);
    +			mxPoint pe = state
    +					.getAbsolutePoint(state.getAbsolutePointCount() - 1);
    +
    +			if (pt != null)
    +			{
    +				pt = view.transformControlPoint(state, pt);
    +			}
    +
    +			if (p0 != null)
    +			{
    +				source = new mxCellState();
    +				source.setX(p0.getX());
    +				source.setY(p0.getY());
    +			}
    +
    +			if (pe != null)
    +			{
    +				target = new mxCellState();
    +				target.setX(pe.getX());
    +				target.setY(pe.getY());
    +			}
    +
    +			if (source != null && target != null)
    +			{
    +				double t = Math.max(source.getY(), target.getY());
    +				double b = Math.min(source.getY() + source.getHeight(),
    +						target.getY() + target.getHeight());
    +
    +				double x = view.getRoutingCenterX(source);
    +
    +				if (pt != null && pt.getX() >= source.getX()
    +						&& pt.getX() <= source.getX() + source.getWidth())
    +				{
    +					x = pt.getX();
    +				}
    +
    +				double y = (pt != null) ? pt.getY() : b + (t - b) / 2;
    +
    +				if (!target.contains(x, y) && !source.contains(x, y))
    +				{
    +					result.add(new mxPoint(x, y));
    +				}
    +
    +				if (pt != null && pt.getX() >= target.getX()
    +						&& pt.getX() <= target.getX() + target.getWidth())
    +				{
    +					x = pt.getX();
    +				}
    +				else
    +				{
    +					x = view.getRoutingCenterX(target);
    +				}
    +
    +				if (!target.contains(x, y) && !source.contains(x, y))
    +				{
    +					result.add(new mxPoint(x, y));
    +				}
    +
    +				if (result.size() == 1)
    +				{
    +					if (pt != null)
    +					{
    +						result.add(new mxPoint(pt.getX(), y));
    +					}
    +					else
    +					{
    +						double l = Math.max(source.getX(), target.getX());
    +						double r = Math.min(source.getX() + source.getWidth(),
    +								target.getX() + target.getWidth());
    +
    +						result.add(new mxPoint(l + (r - l) / 2, y));
    +					}
    +				}
    +			}
    +		}
    +	};
    +
    +	public static double orthBuffer = 10;
    +
    +	public static double[][] dirVectors = new double[][] { { -1, 0 },
    +			{ 0, -1 }, { 1, 0 }, { 0, 1 }, { -1, 0 }, { 0, -1 }, { 1, 0 } };
    +
    +	public static double[][] wayPoints1 = new double[128][2];
    +
    +	/**
    +	 * The default routing patterns for orthogonal connections
    +	 */
    +	public static int[][][] routePatterns = new int[][][] {
    +			{ { 513, 2308, 2081, 2562 }, { 513, 1090, 514, 2184, 2114, 2561 },
    +					{ 513, 1090, 514, 2564, 2184, 2562 },
    +					{ 513, 2308, 2561, 1090, 514, 2568, 2308 } },
    +			{ { 514, 1057, 513, 2308, 2081, 2562 }, { 514, 2184, 2114, 2561 },
    +					{ 514, 2184, 2562, 1057, 513, 2564, 2184 },
    +					{ 514, 1057, 513, 2568, 2308, 2561 } },
    +			{ { 1090, 514, 1057, 513, 2308, 2081, 2562 }, { 2114, 2561 },
    +					{ 1090, 2562, 1057, 513, 2564, 2184 },
    +					{ 1090, 514, 1057, 513, 2308, 2561, 2568 } },
    +			{ { 2081, 2562 }, { 1057, 513, 1090, 514, 2184, 2114, 2561 },
    +					{ 1057, 513, 1090, 514, 2184, 2562, 2564 },
    +					{ 1057, 2561, 1090, 514, 2568, 2308 } } };
    +
    +	/**
    +	 * Overriden routing patterns for orthogonal connections
    +	 * where the vertices have 
    +	 */
    +	public static int[][][] inlineRoutePatterns = new int[][][] {
    +			{ null, { 2114, 2568 }, null, null },
    +			{ null, { 514, 2081, 2114, 2568 }, null, null },
    +			{ null, { 2114, 2561 }, null, null },
    +			{ { 2081, 2562 }, { 1057, 2114, 2568 }, { 2184, 2562 }, null } };
    +
    +	public static double[] vertexSeperations = new double[5];
    +
    +	public static double[][] limits = new double[2][9];
    +
    +	public static int LEFT_MASK = 32;
    +
    +	public static int TOP_MASK = 64;
    +
    +	public static int RIGHT_MASK = 128;
    +
    +	public static int BOTTOM_MASK = 256;
    +
    +	public static int LEFT = 1;
    +
    +	public static int TOP = 2;
    +
    +	public static int RIGHT = 4;
    +
    +	public static int BOTTOM = 8;
    +
    +	public static int SIDE_MASK = LEFT_MASK | TOP_MASK | RIGHT_MASK
    +			| BOTTOM_MASK;
    +
    +	public static int CENTER_MASK = 512;
    +
    +	public static int SOURCE_MASK = 1024;
    +
    +	public static int TARGET_MASK = 2048;
    +
    +	public static int VERTEX_MASK = SOURCE_MASK | TARGET_MASK;
    +
    +	public static double vertBendProportion = 0.5;
    +
    +	public static double hozBendProportion = 0.5;
    +
    +	/**
    +	 * An orthogonal connector that avoids connecting vertices and 
    +	 * respects port constraints
    +	 */
    +	public static mxEdgeStyleFunction orthConnector = new mxEdgeStyleFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction#apply(com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, java.util.List, java.util.List)
    +		 */
    +		public void apply(mxCellState state, mxCellState source,
    +				mxCellState target, List<mxPoint> points, List<mxPoint> result)
    +		{
    +			if (source != null && target != null)
    +			{
    +				double scaledOrthBuffer = orthBuffer
    +						* state.getView().getScale();
    +				// Determine the side(s) of the source and target vertices
    +				// that the edge may connect to
    +				// portConstraint -> [source, target];
    +				int portConstraint[] = new int[2];
    +				portConstraint[0] = mxUtils.getPortConstraints(source, state,
    +						true);
    +				portConstraint[1] = mxUtils.getPortConstraints(target, state,
    +						false);
    +
    +				// dir -> [source, target] initial direction leaving vertices
    +				int dir[] = new int[2];
    +
    +				// Work out which faces of the vertices present against each other
    +				// in a way that would allow a 3-segment connection if port constraints
    +				// permitted.
    +				// geo -> [source, target] [x, y, width, height]
    +				double[][] geo = new double[2][4];
    +				geo[0][0] = source.getX();
    +				geo[0][1] = source.getY();
    +				geo[0][2] = source.getWidth();
    +				geo[0][3] = source.getHeight();
    +
    +				geo[1][0] = target.getX();
    +				geo[1][1] = target.getY();
    +				geo[1][2] = target.getWidth();
    +				geo[1][3] = target.getHeight();
    +
    +				for (int i = 0; i < 2; i++)
    +				{
    +					limits[i][1] = geo[i][0] - scaledOrthBuffer;
    +					limits[i][2] = geo[i][1] - scaledOrthBuffer;
    +					limits[i][4] = geo[i][0] + geo[i][2] + scaledOrthBuffer;
    +					limits[i][8] = geo[i][1] + geo[i][3] + scaledOrthBuffer;
    +				}
    +
    +				// Work out which quad the target is in
    +				double sourceCenX = geo[0][0] + geo[0][2] / 2.0;
    +				double sourceCenY = geo[0][1] + geo[0][3] / 2.0;
    +				double targetCenX = geo[1][0] + geo[1][2] / 2.0;
    +				double targetCenY = geo[1][1] + geo[1][3] / 2.0;
    +
    +				double dx = sourceCenX - targetCenX;
    +				double dy = sourceCenY - targetCenY;
    +
    +				int quad = 0;
    +
    +				if (dx < 0)
    +				{
    +					if (dy < 0)
    +					{
    +						quad = 2;
    +					}
    +					else
    +					{
    +						quad = 1;
    +					}
    +				}
    +				else
    +				{
    +					if (dy <= 0)
    +					{
    +						quad = 3;
    +
    +						// Special case on x = 0 and negative y
    +						if (dx == 0)
    +						{
    +							quad = 2;
    +						}
    +					}
    +
    +				}
    +
    +				// Check for connection constraints
    +				mxPoint p0 = state.getAbsolutePoint(0);
    +				mxPoint pe = state.getAbsolutePoint(state
    +						.getAbsolutePointCount() - 1);
    +				mxPoint currentTerm = p0;
    +
    +				// constraint[source, target] [x, y]
    +				double constraint[][] = new double[][] { { 0.5, 0.5 },
    +						{ 0.5, 0.5 } };
    +
    +				for (int i = 0; i < 2; i++)
    +				{
    +					if (currentTerm != null)
    +					{
    +						constraint[i][0] = (currentTerm.getX() - geo[i][0])
    +								/ geo[i][2];
    +
    +						if (constraint[i][0] < 0.01)
    +						{
    +							dir[i] = mxConstants.DIRECTION_MASK_WEST;
    +						}
    +						else if (constraint[i][0] > 0.99)
    +						{
    +							dir[i] = mxConstants.DIRECTION_MASK_EAST;
    +						}
    +
    +						constraint[i][1] = (currentTerm.getY() - geo[i][1])
    +								/ geo[i][3];
    +
    +						if (constraint[i][1] < 0.01)
    +						{
    +							dir[i] = mxConstants.DIRECTION_MASK_NORTH;
    +						}
    +						else if (constraint[i][1] > 0.99)
    +						{
    +							dir[i] = mxConstants.DIRECTION_MASK_SOUTH;
    +						}
    +					}
    +
    +					currentTerm = pe;
    +				}
    +
    +				double sourceTopDist = geo[0][1] - (geo[1][1] + geo[1][3]);
    +				double sourceLeftDist = geo[0][0] - (geo[1][0] + geo[1][2]);
    +				double sourceBottomDist = geo[1][1] - (geo[0][1] + geo[0][3]);
    +				double sourceRightDist = geo[1][0] - (geo[0][0] + geo[0][2]);
    +
    +				vertexSeperations[1] = Math.max(sourceLeftDist - 2
    +						* scaledOrthBuffer, 0);
    +				vertexSeperations[2] = Math.max(sourceTopDist - 2
    +						* scaledOrthBuffer, 0);
    +				vertexSeperations[4] = Math.max(sourceBottomDist - 2
    +						* scaledOrthBuffer, 0);
    +				vertexSeperations[3] = Math.max(sourceRightDist - 2
    +						* scaledOrthBuffer, 0);
    +
    +				//==============================================================
    +				// Start of source and target direction determination
    +
    +				// Work through the preferred orientations by relative positioning
    +				// of the vertices and list them in preferred and available order
    +				int dirPref[] = new int[2];
    +				int horPref[] = new int[2];
    +				int vertPref[] = new int[2];
    +
    +				horPref[0] = sourceLeftDist >= sourceRightDist ? mxConstants.DIRECTION_MASK_WEST
    +						: mxConstants.DIRECTION_MASK_EAST;
    +				vertPref[0] = sourceTopDist >= sourceBottomDist ? mxConstants.DIRECTION_MASK_NORTH
    +						: mxConstants.DIRECTION_MASK_SOUTH;
    +
    +				horPref[1] = mxUtils.reversePortConstraints(horPref[0]);
    +				vertPref[1] = mxUtils.reversePortConstraints(vertPref[0]);
    +
    +				double preferredHorizDist = sourceLeftDist >= sourceRightDist ? sourceLeftDist
    +						: sourceRightDist;
    +				double preferredVertDist = sourceTopDist >= sourceBottomDist ? sourceTopDist
    +						: sourceBottomDist;
    +
    +				int prefOrdering[][] = new int[2][2];
    +				boolean preferredOrderSet = false;
    +
    +				// If the preferred port isn't available, switch it
    +				for (int i = 0; i < 2; i++)
    +				{
    +					if (dir[i] != 0x0)
    +					{
    +						continue;
    +					}
    +
    +					if ((horPref[i] & portConstraint[i]) == 0)
    +					{
    +						horPref[i] = mxUtils.reversePortConstraints(horPref[i]);
    +					}
    +
    +					if ((vertPref[i] & portConstraint[i]) == 0)
    +					{
    +						vertPref[i] = mxUtils
    +								.reversePortConstraints(vertPref[i]);
    +					}
    +
    +					prefOrdering[i][0] = vertPref[i];
    +					prefOrdering[i][1] = horPref[i];
    +				}
    +
    +				if (preferredVertDist > scaledOrthBuffer * 2
    +						&& preferredHorizDist > scaledOrthBuffer * 2)
    +				{
    +					// Possibility of two segment edge connection
    +					if (((horPref[0] & portConstraint[0]) > 0)
    +							&& ((vertPref[1] & portConstraint[1]) > 0))
    +					{
    +						prefOrdering[0][0] = horPref[0];
    +						prefOrdering[0][1] = vertPref[0];
    +						prefOrdering[1][0] = vertPref[1];
    +						prefOrdering[1][1] = horPref[1];
    +						preferredOrderSet = true;
    +					}
    +					else if (((vertPref[0] & portConstraint[0]) > 0)
    +							&& ((horPref[1] & portConstraint[1]) > 0))
    +					{
    +						prefOrdering[0][0] = vertPref[0];
    +						prefOrdering[0][1] = horPref[0];
    +						prefOrdering[1][0] = horPref[1];
    +						prefOrdering[1][1] = vertPref[1];
    +						preferredOrderSet = true;
    +					}
    +				}
    +				if (preferredVertDist > scaledOrthBuffer * 2
    +						&& !preferredOrderSet)
    +				{
    +					prefOrdering[0][0] = vertPref[0];
    +					prefOrdering[0][1] = horPref[0];
    +					prefOrdering[1][0] = vertPref[1];
    +					prefOrdering[1][1] = horPref[1];
    +					preferredOrderSet = true;
    +
    +				}
    +				if (preferredHorizDist > scaledOrthBuffer * 2
    +						&& !preferredOrderSet)
    +				{
    +					prefOrdering[0][0] = horPref[0];
    +					prefOrdering[0][1] = vertPref[0];
    +					prefOrdering[1][0] = horPref[1];
    +					prefOrdering[1][1] = vertPref[1];
    +					preferredOrderSet = true;
    +				}
    +
    +				// The source and target prefs are now an ordered list of
    +				// the preferred port selections
    +				// It the list can contain gaps, compact it
    +
    +				for (int i = 0; i < 2; i++)
    +				{
    +					if (dir[i] != 0x0)
    +					{
    +						continue;
    +					}
    +
    +					if ((prefOrdering[i][0] & portConstraint[i]) == 0)
    +					{
    +						prefOrdering[i][0] = prefOrdering[i][1];
    +					}
    +
    +					dirPref[i] = prefOrdering[i][0] & portConstraint[i];
    +					dirPref[i] |= (prefOrdering[i][1] & portConstraint[i]) << 8;
    +					dirPref[i] |= (prefOrdering[1 - i][i] & portConstraint[i]) << 16;
    +					dirPref[i] |= (prefOrdering[1 - i][1 - i] & portConstraint[i]) << 24;
    +
    +					if ((dirPref[i] & 0xF) == 0)
    +					{
    +						dirPref[i] = dirPref[i] << 8;
    +					}
    +					if ((dirPref[i] & 0xF00) == 0)
    +					{
    +						dirPref[i] = (dirPref[i] & 0xF) | dirPref[i] >> 8;
    +					}
    +					if ((dirPref[i] & 0xF0000) == 0)
    +					{
    +						dirPref[i] = (dirPref[i] & 0xFFFF)
    +								| ((dirPref[i] & 0xF000000) >> 8);
    +					}
    +
    +					dir[i] = dirPref[i] & 0xF;
    +
    +					if (portConstraint[i] == mxConstants.DIRECTION_MASK_WEST
    +							|| portConstraint[i] == mxConstants.DIRECTION_MASK_NORTH
    +							|| portConstraint[i] == mxConstants.DIRECTION_MASK_EAST
    +							|| portConstraint[i] == mxConstants.DIRECTION_MASK_SOUTH)
    +					{
    +						dir[i] = portConstraint[i];
    +					}
    +				}
    +
    +				//==============================================================
    +				// End of source and target direction determination
    +
    +				int[] routePattern = getRoutePattern(dir, quad, dx, dy);
    +
    +				if (dx == 0 || dy == 0)
    +				{
    +
    +				}
    +
    +				wayPoints1[0][0] = geo[0][0];
    +				wayPoints1[0][1] = geo[0][1];
    +
    +				switch (dir[0])
    +				{
    +					case mxConstants.DIRECTION_MASK_WEST:
    +						wayPoints1[0][0] -= scaledOrthBuffer;
    +						wayPoints1[0][1] += constraint[0][1] * geo[0][3];
    +						break;
    +					case mxConstants.DIRECTION_MASK_SOUTH:
    +						wayPoints1[0][0] += constraint[0][0] * geo[0][2];
    +						wayPoints1[0][1] += geo[0][3] + scaledOrthBuffer;
    +						break;
    +					case mxConstants.DIRECTION_MASK_EAST:
    +						wayPoints1[0][0] += geo[0][2] + scaledOrthBuffer;
    +						wayPoints1[0][1] += constraint[0][1] * geo[0][3];
    +						break;
    +					case mxConstants.DIRECTION_MASK_NORTH:
    +						wayPoints1[0][0] += constraint[0][0] * geo[0][2];
    +						wayPoints1[0][1] -= scaledOrthBuffer;
    +						break;
    +				}
    +
    +				int currentIndex = 0;
    +
    +				int lastOrientation = (dir[0] & (mxConstants.DIRECTION_MASK_EAST | mxConstants.DIRECTION_MASK_WEST)) > 0 ? 0
    +						: 1;
    +				int currentOrientation = 0;
    +
    +				for (int i = 0; i < routePattern.length; i++)
    +				{
    +					int nextDirection = routePattern[i] & 0xF;
    +
    +					// Rotate the index of this direction by the quad
    +					// to get the real direction
    +					int directionIndex = nextDirection == mxConstants.DIRECTION_MASK_EAST ? 3
    +							: nextDirection;
    +
    +					directionIndex += quad;
    +
    +					if (directionIndex > 4)
    +					{
    +						directionIndex -= 4;
    +					}
    +
    +					double[] direction = dirVectors[directionIndex - 1];
    +
    +					currentOrientation = (directionIndex % 2 > 0) ? 0 : 1;
    +					// Only update the current index if the point moved
    +					// in the direction of the current segment move,
    +					// otherwise the same point is moved until there is 
    +					// a segment direction change
    +					if (currentOrientation != lastOrientation)
    +					{
    +						currentIndex++;
    +						// Copy the previous way point into the new one
    +						// We can't base the new position on index - 1
    +						// because sometime elbows turn out not to exist,
    +						// then we'd have to rewind.
    +						wayPoints1[currentIndex][0] = wayPoints1[currentIndex - 1][0];
    +						wayPoints1[currentIndex][1] = wayPoints1[currentIndex - 1][1];
    +					}
    +
    +					boolean tar = (routePattern[i] & TARGET_MASK) > 0;
    +					boolean sou = (routePattern[i] & SOURCE_MASK) > 0;
    +					int side = (routePattern[i] & SIDE_MASK) >> 5;
    +					side = side << quad;
    +
    +					if (side > 0xF)
    +					{
    +						side = side >> 4;
    +					}
    +
    +					boolean center = (routePattern[i] & CENTER_MASK) > 0;
    +
    +					if ((sou || tar) && side < 9)
    +					{
    +						double limit = 0;
    +						int souTar = sou ? 0 : 1;
    +
    +						if (center && currentOrientation == 0)
    +						{
    +							limit = geo[souTar][0] + constraint[souTar][0]
    +									* geo[souTar][2];
    +						}
    +						else if (center)
    +						{
    +							limit = geo[souTar][1] + constraint[souTar][1]
    +									* geo[souTar][3];
    +						}
    +						else
    +						{
    +							limit = limits[souTar][side];
    +						}
    +
    +						if (currentOrientation == 0)
    +						{
    +							double lastX = wayPoints1[currentIndex][0];
    +							double deltaX = (limit - lastX) * direction[0];
    +
    +							if (deltaX > 0)
    +							{
    +								wayPoints1[currentIndex][0] += direction[0]
    +										* deltaX;
    +							}
    +						}
    +						else
    +						{
    +							double lastY = wayPoints1[currentIndex][1];
    +							double deltaY = (limit - lastY) * direction[1];
    +
    +							if (deltaY > 0)
    +							{
    +								wayPoints1[currentIndex][1] += direction[1]
    +										* deltaY;
    +							}
    +						}
    +					}
    +
    +					else if (center)
    +					{
    +						// Which center we're travelling to depend on the current direction
    +						wayPoints1[currentIndex][0] += direction[0]
    +								* Math.abs(vertexSeperations[directionIndex] / 2);
    +						wayPoints1[currentIndex][1] += direction[1]
    +								* Math.abs(vertexSeperations[directionIndex] / 2);
    +					}
    +
    +					if (currentIndex > 0
    +							&& wayPoints1[currentIndex][currentOrientation] == wayPoints1[currentIndex - 1][currentOrientation])
    +					{
    +						currentIndex--;
    +					}
    +					else
    +					{
    +						lastOrientation = currentOrientation;
    +					}
    +				}
    +
    +				for (int i = 0; i <= currentIndex; i++)
    +				{
    +					result.add(new mxPoint(wayPoints1[i][0], wayPoints1[i][1]));
    +				}
    +
    +			}
    +		}
    +
    +		/**
    +		 * Hook method to return the routing pattern for the given state
    +		 * @param dir 
    +		 * @param quad 
    +		 * @param dx 
    +		 * @param dy 
    +		 * @return
    +		 */
    +		protected int[] getRoutePattern(int[] dir, double quad, double dx,
    +				double dy)
    +		{
    +			int sourceIndex = dir[0] == mxConstants.DIRECTION_MASK_EAST ? 3
    +					: dir[0];
    +			int targetIndex = dir[1] == mxConstants.DIRECTION_MASK_EAST ? 3
    +					: dir[1];
    +
    +			sourceIndex -= quad;
    +			targetIndex -= quad;
    +
    +			if (sourceIndex < 1)
    +			{
    +				sourceIndex += 4;
    +			}
    +			if (targetIndex < 1)
    +			{
    +				targetIndex += 4;
    +			}
    +
    +			int[] result = routePatterns[sourceIndex - 1][targetIndex - 1];
    +
    +			if (dx == 0 || dy == 0)
    +			{
    +				if (inlineRoutePatterns[sourceIndex - 1][targetIndex - 1] != null)
    +				{
    +					result = inlineRoutePatterns[sourceIndex - 1][targetIndex - 1];
    +				}
    +			}
    +
    +			return result;
    +		}
    +	};
    +}
    diff --git a/java/src/com/mxgraph/view/mxGraph.java b/java/src/com/mxgraph/view/mxGraph.java
    new file mode 100644
    index 000000000..3ee3a9e28
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxGraph.java
    @@ -0,0 +1,7992 @@
    +/**
    + * $Id: mxGraph.java,v 1.336 2012-05-10 13:36:12 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.view;
    +
    +import java.awt.Graphics;
    +import java.awt.Point;
    +import java.awt.Rectangle;
    +import java.awt.Shape;
    +import java.beans.PropertyChangeListener;
    +import java.beans.PropertyChangeSupport;
    +import java.util.ArrayList;
    +import java.util.Arrays;
    +import java.util.Collection;
    +import java.util.HashSet;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.LinkedHashSet;
    +import java.util.LinkedList;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +
    +import org.w3c.dom.Element;
    +
    +import com.mxgraph.canvas.mxGraphics2DCanvas;
    +import com.mxgraph.canvas.mxICanvas;
    +import com.mxgraph.canvas.mxImageCanvas;
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxGraphModel;
    +import com.mxgraph.model.mxGraphModel.Filter;
    +import com.mxgraph.model.mxGraphModel.mxChildChange;
    +import com.mxgraph.model.mxGraphModel.mxCollapseChange;
    +import com.mxgraph.model.mxGraphModel.mxGeometryChange;
    +import com.mxgraph.model.mxGraphModel.mxRootChange;
    +import com.mxgraph.model.mxGraphModel.mxStyleChange;
    +import com.mxgraph.model.mxGraphModel.mxTerminalChange;
    +import com.mxgraph.model.mxGraphModel.mxValueChange;
    +import com.mxgraph.model.mxGraphModel.mxVisibleChange;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxImageBundle;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxResources;
    +import com.mxgraph.util.mxStyleUtils;
    +import com.mxgraph.util.mxUndoableEdit;
    +import com.mxgraph.util.mxUndoableEdit.mxUndoableChange;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Implements a graph object that allows to create diagrams from a graph model
    + * and stylesheet.
    + * 
    + * <h3>Images</h3>
    + * To create an image from a graph, use the following code for a given
    + * XML document (doc) and File (file):
    + * 
    + * <code>
    + * Image img = mxCellRenderer.createBufferedImage(
    + * 		graph, null, 1, Color.WHITE, false, null);
    + * ImageIO.write(img, "png", file);
    + * </code>
    + * 
    + * If the XML is given as a string rather than a document, the document can
    + * be obtained using mxUtils.parse.
    + * 
    + * This class fires the following events:
    + * 
    + * mxEvent.ROOT fires if the root in the model has changed. This event has no
    + * properties.
    + * 
    + * mxEvent.ALIGN_CELLS fires between begin- and endUpdate in alignCells. The
    + * <code>cells</code> and <code>align</code> properties contain the respective
    + * arguments that were passed to alignCells.
    + * 
    + * mxEvent.FLIP_EDGE fires between begin- and endUpdate in flipEdge. The
    + * <code>edge</code> property contains the edge passed to flipEdge.
    + * 
    + * mxEvent.ORDER_CELLS fires between begin- and endUpdate in orderCells. The
    + * <code>cells</code> and <code>back</code> properties contain the respective
    + * arguments that were passed to orderCells.
    + *
    + * mxEvent.CELLS_ORDERED fires between begin- and endUpdate in cellsOrdered.
    + * The <code>cells</code> and <code>back</code> arguments contain the
    + * respective arguments that were passed to cellsOrdered.
    + * 
    + * mxEvent.GROUP_CELLS fires between begin- and endUpdate in groupCells. The
    + * <code>group</code>, <code>cells</code> and <code>border</code> arguments
    + * contain the respective arguments that were passed to groupCells.
    + * 
    + * mxEvent.UNGROUP_CELLS fires between begin- and endUpdate in ungroupCells.
    + * The <code>cells</code> property contains the array of cells that was passed
    + * to ungroupCells.
    + * 
    + * mxEvent.REMOVE_CELLS_FROM_PARENT fires between begin- and endUpdate in
    + * removeCellsFromParent. The <code>cells</code> property contains the array of
    + * cells that was passed to removeCellsFromParent.
    + * 
    + * mxEvent.ADD_CELLS fires between begin- and endUpdate in addCells. The
    + * <code>cells</code>, <code>parent</code>, <code>index</code>,
    + * <code>source</code> and <code>target</code> properties contain the
    + * respective arguments that were passed to addCells.
    + * 
    + * mxEvent.CELLS_ADDED fires between begin- and endUpdate in cellsAdded. The
    + * <code>cells</code>, <code>parent</code>, <code>index</code>,
    + * <code>source</code>, <code>target</code> and <code>absolute</code>
    + * properties contain the respective arguments that were passed to cellsAdded.
    + * 
    + * mxEvent.REMOVE_CELLS fires between begin- and endUpdate in removeCells. The
    + * <code>cells</code> and <code>includeEdges</code> arguments contain the
    + * respective arguments that were passed to removeCells.
    + * 
    + * mxEvent.CELLS_REMOVED fires between begin- and endUpdate in cellsRemoved.
    + * The <code>cells</code> argument contains the array of cells that was
    + * removed.
    + * 
    + * mxEvent.SPLIT_EDGE fires between begin- and endUpdate in splitEdge. The
    + * <code>edge</code> property contains the edge to be splitted, the
    + * <code>cells</code>, <code>newEdge</code>, <code>dx</code> and
    + * <code>dy</code> properties contain the respective arguments that were passed
    + * to splitEdge.
    + * 
    + * mxEvent.TOGGLE_CELLS fires between begin- and endUpdate in toggleCells. The
    + * <code>show</code>, <code>cells</code> and <code>includeEdges</code>
    + * properties contain the respective arguments that were passed to toggleCells.
    + * 
    + * mxEvent.FOLD_CELLS fires between begin- and endUpdate in foldCells. The
    + * <code>collapse</code>, <code>cells</code> and <code>recurse</code>
    + * properties contain the respective arguments that were passed to foldCells.
    + * 
    + * mxEvent.CELLS_FOLDED fires between begin- and endUpdate in cellsFolded. The
    + * <code>collapse</code>, <code>cells</code> and <code>recurse</code>
    + * properties contain the respective arguments that were passed to cellsFolded.
    + * 
    + * mxEvent.UPDATE_CELL_SIZE fires between begin- and endUpdate in
    + * updateCellSize. The <code>cell</code> and <code>ignoreChildren</code>
    + * properties contain the respective arguments that were passed to
    + * updateCellSize.
    + * 
    + * mxEvent.RESIZE_CELLS fires between begin- and endUpdate in resizeCells. The
    + * <code>cells</code> and <code>bounds</code> properties contain the respective
    + * arguments that were passed to resizeCells.
    + * 
    + * mxEvent.CELLS_RESIZED fires between begin- and endUpdate in cellsResized.
    + * The <code>cells</code> and <code>bounds</code> properties contain the
    + * respective arguments that were passed to cellsResized.
    + * 
    + * mxEvent.MOVE_CELLS fires between begin- and endUpdate in moveCells. The
    + * <code>cells</code>, <code>dx</code>, <code>dy</code>, <code>clone</code>,
    + * <code>target</code> and <code>location</code> properties contain the
    + * respective arguments that were passed to moveCells.
    + * 
    + * mxEvent.CELLS_MOVED fires between begin- and endUpdate in cellsMoved. The
    + * <code>cells</code>, <code>dx</code>, <code>dy</code> and
    + * <code>disconnect</code> properties contain the respective arguments that
    + * were passed to cellsMoved.
    + * 
    + * mxEvent.CONNECT_CELL fires between begin- and endUpdate in connectCell. The
    + * <code>edge</code>, <code>terminal</code> and <code>source</code> properties
    + * contain the respective arguments that were passed to connectCell.
    + * 
    + * mxEvent.CELL_CONNECTED fires between begin- and endUpdate in cellConnected.
    + * The <code>edge</code>, <code>terminal</code> and <code>source</code>
    + * properties contain the respective arguments that were passed to
    + * cellConnected.
    + * 
    + * mxEvent.REPAINT fires if a repaint was requested by calling repaint. The
    + * <code>region</code> property contains the optional mxRectangle that was
    + * passed to repaint to define the dirty region.
    + */
    +public class mxGraph extends mxEventSource
    +{
    +
    +	/**
    +	 * Adds required resources.
    +	 */
    +	static
    +	{
    +		try
    +		{
    +			mxResources.add("com.mxgraph.resources.graph");
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * Holds the version number of this release. Current version
    +	 * is 1.10.0.5.
    +	 */
    +	public static final String VERSION = "1.10.0.5";
    +
    +	/**
    +	 * 
    +	 */
    +	public interface mxICellVisitor
    +	{
    +
    +		/**
    +		 * 
    +		 * @param vertex
    +		 * @param edge
    +		 */
    +		boolean visit(Object vertex, Object edge);
    +
    +	}
    +
    +	/**
    +	 * Property change event handling.
    +	 */
    +	protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(
    +			this);
    +
    +	/**
    +	 * Holds the model that contains the cells to be displayed.
    +	 */
    +	protected mxIGraphModel model;
    +
    +	/**
    +	 * Holds the view that caches the cell states.
    +	 */
    +	protected mxGraphView view;
    +
    +	/**
    +	 * Holds the stylesheet that defines the appearance of the cells.
    +	 */
    +	protected mxStylesheet stylesheet;
    +
    +	/**
    +	 * Holds the <mxGraphSelection> that models the current selection.
    +	 */
    +	protected mxGraphSelectionModel selectionModel;
    +
    +	/**
    +	 * Specifies the grid size. Default is 10.
    +	 */
    +	protected int gridSize = 10;
    +
    +	/**
    +	 * Specifies if the grid is enabled. Default is true.
    +	 */
    +	protected boolean gridEnabled = true;
    +
    +	/**
    +	 * Value returned by getOverlap if isAllowOverlapParent returns
    +	 * true for the given cell. getOverlap is used in keepInside if
    +	 * isKeepInsideParentOnMove returns true. The value specifies the
    +	 * portion of the child which is allowed to overlap the parent.
    +	 */
    +	protected double defaultOverlap = 0.5;
    +
    +	/**
    +	 * Specifies the default parent to be used to insert new cells.
    +	 * This is used in getDefaultParent. Default is null.
    +	 */
    +	protected Object defaultParent;
    +
    +	/**
    +	 * Specifies the alternate edge style to be used if the main control point
    +	 * on an edge is being doubleclicked. Default is null.
    +	 */
    +	protected String alternateEdgeStyle;
    +
    +	/**
    +	 * Specifies the return value for isEnabled. Default is true.
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * Specifies the return value for isCell(s)Locked. Default is false.
    +	 */
    +	protected boolean cellsLocked = false;
    +
    +	/**
    +	 * Specifies the return value for isCell(s)Editable. Default is true.
    +	 */
    +	protected boolean cellsEditable = true;
    +
    +	/**
    +	 * Specifies the return value for isCell(s)Sizable. Default is true.
    +	 */
    +	protected boolean cellsResizable = true;
    +
    +	/**
    +	 * Specifies the return value for isCell(s)Movable. Default is true.
    +	 */
    +	protected boolean cellsMovable = true;
    +
    +	/**
    +	 * Specifies the return value for isCell(s)Bendable. Default is true.
    +	 */
    +	protected boolean cellsBendable = true;
    +
    +	/**
    +	 * Specifies the return value for isCell(s)Selectable. Default is true.
    +	 */
    +	protected boolean cellsSelectable = true;
    +
    +	/**
    +	 * Specifies the return value for isCell(s)Deletable. Default is true.
    +	 */
    +	protected boolean cellsDeletable = true;
    +
    +	/**
    +	 * Specifies the return value for isCell(s)Cloneable. Default is true.
    +	 */
    +	protected boolean cellsCloneable = true;
    +
    +	/**
    +	 * Specifies the return value for isCellDisconntableFromTerminal. Default
    +	 * is true.
    +	 */
    +	protected boolean cellsDisconnectable = true;
    +
    +	/**
    +	 * Specifies the return value for isLabel(s)Clipped. Default is false.
    +	 */
    +	protected boolean labelsClipped = false;
    +
    +	/**
    +	 * Specifies the return value for edges in isLabelMovable. Default is true.
    +	 */
    +	protected boolean edgeLabelsMovable = true;
    +
    +	/**
    +	 * Specifies the return value for vertices in isLabelMovable. Default is false.
    +	 */
    +	protected boolean vertexLabelsMovable = false;
    +
    +	/**
    +	 * Specifies the return value for isDropEnabled. Default is true.
    +	 */
    +	protected boolean dropEnabled = true;
    +
    +	/**
    +	 * Specifies if dropping onto edges should be enabled. Default is true.
    +	 */
    +	protected boolean splitEnabled = true;
    +
    +	/**
    +	 * Specifies if the graph should automatically update the cell size
    +	 * after an edit. This is used in isAutoSizeCell. Default is false.
    +	 */
    +	protected boolean autoSizeCells = false;
    +
    +	/**
    +	 * <mxRectangle> that specifies the area in which all cells in the
    +	 * diagram should be placed. Uses in getMaximumGraphBounds. Use a width
    +	 * or height of 0 if you only want to give a upper, left corner.
    +	 */
    +	protected mxRectangle maximumGraphBounds = null;
    +
    +	/**
    +	 * mxRectangle that specifies the minimum size of the graph canvas inside
    +	 * the scrollpane.
    +	 */
    +	protected mxRectangle minimumGraphSize = null;
    +
    +	/**
    +	 * Border to be added to the bottom and right side when the container is
    +	 * being resized after the graph has been changed. Default is 0.
    +	 */
    +	protected int border = 0;
    +
    +	/**
    +	 * Specifies if edges should appear in the foreground regardless of their
    +	 * order in the model. This has precendence over keepEdgeInBackground
    +	 * Default is false.
    +	 */
    +	protected boolean keepEdgesInForeground = false;
    +
    +	/**
    +	 * Specifies if edges should appear in the background regardless of their
    +	 * order in the model. Default is false.
    +	 */
    +	protected boolean keepEdgesInBackground = false;
    +
    +	/**
    +	 * Specifies if the cell size should be changed to the preferred size when
    +	 * a cell is first collapsed. Default is true.
    +	 */
    +	protected boolean collapseToPreferredSize = true;
    +
    +	/**
    +	 * Specifies if negative coordinates for vertices are allowed. Default is true.
    +	 */
    +	protected boolean allowNegativeCoordinates = true;
    +
    +	/**
    +	 * Specifies the return value for isConstrainChildren. Default is true.
    +	 */
    +	protected boolean constrainChildren = true;
    +
    +	/**
    +	 * Specifies if a parent should contain the child bounds after a resize of
    +	 * the child. Default is true.
    +	 */
    +	protected boolean extendParents = true;
    +
    +	/**
    +	 * Specifies if parents should be extended according to the <extendParents>
    +	 * switch if cells are added. Default is true.
    +	 */
    +	protected boolean extendParentsOnAdd = true;
    +
    +	/**
    +	 * Specifies if the scale and translate should be reset if
    +	 * the root changes in the model. Default is true.
    +	 */
    +	protected boolean resetViewOnRootChange = true;
    +
    +	/**
    +	 * Specifies if loops (aka self-references) are allowed.
    +	 * Default is false.
    +	 */
    +	protected boolean resetEdgesOnResize = false;
    +
    +	/**
    +	 * Specifies if edge control points should be reset after
    +	 * the move of a connected cell. Default is false.
    +	 */
    +	protected boolean resetEdgesOnMove = false;
    +
    +	/**
    +	 * Specifies if edge control points should be reset after
    +	 * the the edge has been reconnected. Default is true.
    +	 */
    +	protected boolean resetEdgesOnConnect = true;
    +
    +	/**
    +	 * Specifies if loops (aka self-references) are allowed.
    +	 * Default is false.
    +	 */
    +	protected boolean allowLoops = false;
    +
    +	/**
    +	 * Specifies the multiplicities to be used for validation of the graph.
    +	 */
    +	protected mxMultiplicity[] multiplicities;
    +
    +	/**
    +	 * Specifies the default style for loops.
    +	 */
    +	protected mxEdgeStyle.mxEdgeStyleFunction defaultLoopStyle = mxEdgeStyle.Loop;
    +
    +	/**
    +	 * Specifies if multiple edges in the same direction between
    +	 * the same pair of vertices are allowed. Default is true.
    +	 */
    +	protected boolean multigraph = true;
    +
    +	/**
    +	 * Specifies if edges are connectable. Default is false.
    +	 * This overrides the connectable field in edges.
    +	 */
    +	protected boolean connectableEdges = false;
    +
    +	/**
    +	 * Specifies if edges with disconnected terminals are
    +	 * allowed in the graph. Default is false.
    +	 */
    +	protected boolean allowDanglingEdges = true;
    +
    +	/**
    +	 * Specifies if edges that are cloned should be validated and only inserted
    +	 * if they are valid. Default is true.
    +	 */
    +	protected boolean cloneInvalidEdges = false;
    +
    +	/**
    +	 * Specifies if edges should be disconnected from their terminals when they
    +	 * are moved. Default is true.
    +	 */
    +	protected boolean disconnectOnMove = true;
    +
    +	/**
    +	 * Specifies if labels should be visible. This is used in
    +	 * getLabel. Default is true.
    +	 */
    +	protected boolean labelsVisible = true;
    +
    +	/**
    +	 * Specifies the return value for isHtmlLabel. Default is false.
    +	 */
    +	protected boolean htmlLabels = false;
    +
    +	/**
    +	 * Specifies if nesting of swimlanes is allowed. Default is true.
    +	 */
    +	protected boolean swimlaneNesting = true;
    +
    +	/**
    +	 * Specifies the maximum number of changes that should be processed to find
    +	 * the dirty region. If the number of changes is larger, then the complete
    +	 * grah is repainted. A value of zero will always compute the dirty region
    +	 * for any number of changes. Default is 1000.
    +	 */
    +	protected int changesRepaintThreshold = 1000;
    +
    +	/**
    +	 * Specifies if the origin should be automatically updated. 
    +	 */
    +	protected boolean autoOrigin = false;
    +
    +	/**
    +	 * Holds the current automatic origin.
    +	 */
    +	protected mxPoint origin = new mxPoint();
    +
    +	/**
    +	 * Holds the list of bundles.
    +	 */
    +	protected static List<mxImageBundle> imageBundles = new LinkedList<mxImageBundle>();
    +
    +	/**
    +	 * Fires repaint events for full repaints.
    +	 */
    +	protected mxIEventListener fullRepaintHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object sender, mxEventObject evt)
    +		{
    +			repaint();
    +		}
    +	};
    +
    +	/**
    +	 * Fires repaint events for full repaints.
    +	 */
    +	protected mxIEventListener updateOriginHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object sender, mxEventObject evt)
    +		{
    +			if (isAutoOrigin())
    +			{
    +				updateOrigin();
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * Fires repaint events for model changes.
    +	 */
    +	protected mxIEventListener graphModelChangeHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object sender, mxEventObject evt)
    +		{
    +			mxRectangle dirty = graphModelChanged((mxIGraphModel) sender,
    +					(List<mxUndoableChange>) ((mxUndoableEdit) evt
    +							.getProperty("edit")).getChanges());
    +			repaint(dirty);
    +		}
    +	};
    +
    +	/**
    +	 * Constructs a new graph with an empty
    +	 * {@link com.mxgraph.model.mxGraphModel}.
    +	 */
    +	public mxGraph()
    +	{
    +		this(null, null);
    +	}
    +
    +	/**
    +	 * Constructs a new graph for the specified model. If no model is
    +	 * specified, then a new, empty {@link com.mxgraph.model.mxGraphModel} is
    +	 * used.
    +	 * 
    +	 * @param model Model that contains the graph data
    +	 */
    +	public mxGraph(mxIGraphModel model)
    +	{
    +		this(model, null);
    +	}
    +
    +	/**
    +	 * Constructs a new graph for the specified model. If no model is
    +	 * specified, then a new, empty {@link com.mxgraph.model.mxGraphModel} is
    +	 * used.
    +	 * 
    +	 * @param stylesheet The stylesheet to use for the graph.
    +	 */
    +	public mxGraph(mxStylesheet stylesheet)
    +	{
    +		this(null, stylesheet);
    +	}
    +
    +	/**
    +	 * Constructs a new graph for the specified model. If no model is
    +	 * specified, then a new, empty {@link com.mxgraph.model.mxGraphModel} is
    +	 * used.
    +	 * 
    +	 * @param model Model that contains the graph data
    +	 */
    +	public mxGraph(mxIGraphModel model, mxStylesheet stylesheet)
    +	{
    +		selectionModel = createSelectionModel();
    +		setModel((model != null) ? model : new mxGraphModel());
    +		setStylesheet((stylesheet != null) ? stylesheet : createStylesheet());
    +		setView(createGraphView());
    +	}
    +
    +	/**
    +	 * Constructs a new selection model to be used in this graph.
    +	 */
    +	protected mxGraphSelectionModel createSelectionModel()
    +	{
    +		return new mxGraphSelectionModel(this);
    +	}
    +
    +	/**
    +	 * Constructs a new stylesheet to be used in this graph.
    +	 */
    +	protected mxStylesheet createStylesheet()
    +	{
    +		return new mxStylesheet();
    +	}
    +
    +	/**
    +	 * Constructs a new view to be used in this graph.
    +	 */
    +	protected mxGraphView createGraphView()
    +	{
    +		return new mxGraphView(this);
    +	}
    +
    +	/**
    +	 * Returns the graph model that contains the graph data.
    +	 * 
    +	 * @return Returns the model that contains the graph data
    +	 */
    +	public mxIGraphModel getModel()
    +	{
    +		return model;
    +	}
    +
    +	/**
    +	 * Sets the graph model that contains the data, and fires an
    +	 * mxEvent.CHANGE followed by an mxEvent.REPAINT event.
    +	 * 
    +	 * @param value Model that contains the graph data
    +	 */
    +	public void setModel(mxIGraphModel value)
    +	{
    +		if (model != null)
    +		{
    +			model.removeListener(graphModelChangeHandler);
    +		}
    +
    +		Object oldModel = model;
    +		model = value;
    +
    +		if (view != null)
    +		{
    +			view.revalidate();
    +		}
    +
    +		model.addListener(mxEvent.CHANGE, graphModelChangeHandler);
    +		changeSupport.firePropertyChange("model", oldModel, model);
    +		repaint();
    +	}
    +
    +	/**
    +	 * Returns the view that contains the cell states.
    +	 * 
    +	 * @return Returns the view that contains the cell states
    +	 */
    +	public mxGraphView getView()
    +	{
    +		return view;
    +	}
    +
    +	/**
    +	 * Sets the view that contains the cell states.
    +	 * 
    +	 * @param value View that contains the cell states
    +	 */
    +	public void setView(mxGraphView value)
    +	{
    +		if (view != null)
    +		{
    +			view.removeListener(fullRepaintHandler);
    +			view.removeListener(updateOriginHandler);
    +		}
    +
    +		Object oldView = view;
    +		view = value;
    +
    +		if (view != null)
    +		{
    +			view.revalidate();
    +		}
    +
    +		// Listens to changes in the view
    +		view.addListener(mxEvent.SCALE, fullRepaintHandler);
    +		view.addListener(mxEvent.SCALE, updateOriginHandler);
    +		view.addListener(mxEvent.TRANSLATE, fullRepaintHandler);
    +		view.addListener(mxEvent.SCALE_AND_TRANSLATE, fullRepaintHandler);
    +		view.addListener(mxEvent.SCALE_AND_TRANSLATE, updateOriginHandler);
    +		view.addListener(mxEvent.UP, fullRepaintHandler);
    +		view.addListener(mxEvent.DOWN, fullRepaintHandler);
    +
    +		changeSupport.firePropertyChange("view", oldView, view);
    +	}
    +
    +	/**
    +	 * Returns the stylesheet that provides the style.
    +	 * 
    +	 * @return Returns the stylesheet that provides the style.
    +	 */
    +	public mxStylesheet getStylesheet()
    +	{
    +		return stylesheet;
    +	}
    +
    +	/**
    +	 * Sets the stylesheet that provides the style.
    +	 * 
    +	 * @param value Stylesheet that provides the style.
    +	 */
    +	public void setStylesheet(mxStylesheet value)
    +	{
    +		mxStylesheet oldValue = stylesheet;
    +		stylesheet = value;
    +
    +		changeSupport.firePropertyChange("stylesheet", oldValue, stylesheet);
    +	}
    +
    +	/**
    +	 * Returns the cells to be selected for the given list of changes.
    +	 */
    +	public Object[] getSelectionCellsForChanges(List<mxUndoableChange> changes)
    +	{
    +		List<Object> cells = new ArrayList<Object>();
    +		Iterator<mxUndoableChange> it = changes.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			Object change = it.next();
    +
    +			if (change instanceof mxChildChange)
    +			{
    +				cells.add(((mxChildChange) change).getChild());
    +			}
    +			else if (change instanceof mxTerminalChange)
    +			{
    +				cells.add(((mxTerminalChange) change).getCell());
    +			}
    +			else if (change instanceof mxValueChange)
    +			{
    +				cells.add(((mxValueChange) change).getCell());
    +			}
    +			else if (change instanceof mxStyleChange)
    +			{
    +				cells.add(((mxStyleChange) change).getCell());
    +			}
    +			else if (change instanceof mxGeometryChange)
    +			{
    +				cells.add(((mxGeometryChange) change).getCell());
    +			}
    +			else if (change instanceof mxCollapseChange)
    +			{
    +				cells.add(((mxCollapseChange) change).getCell());
    +			}
    +			else if (change instanceof mxVisibleChange)
    +			{
    +				mxVisibleChange vc = (mxVisibleChange) change;
    +
    +				if (vc.isVisible())
    +				{
    +					cells.add(((mxVisibleChange) change).getCell());
    +				}
    +			}
    +		}
    +
    +		return mxGraphModel.getTopmostCells(model, cells.toArray());
    +	}
    +
    +	/**
    +	 * Called when the graph model changes. Invokes processChange on each
    +	 * item of the given array to update the view accordingly.
    +	 */
    +	public mxRectangle graphModelChanged(mxIGraphModel sender,
    +			List<mxUndoableChange> changes)
    +	{
    +		int thresh = getChangesRepaintThreshold();
    +		boolean ignoreDirty = thresh > 0 && changes.size() > thresh;
    +
    +		// Ignores dirty rectangle if there was a root change
    +		if (!ignoreDirty)
    +		{
    +			Iterator<mxUndoableChange> it = changes.iterator();
    +
    +			while (it.hasNext())
    +			{
    +				if (it.next() instanceof mxRootChange)
    +				{
    +					ignoreDirty = true;
    +					break;
    +				}
    +			}
    +		}
    +
    +		mxRectangle dirty = processChanges(changes, true, ignoreDirty);
    +		view.validate();
    +
    +		if (isAutoOrigin())
    +		{
    +			updateOrigin();
    +		}
    +
    +		if (!ignoreDirty)
    +		{
    +			mxRectangle tmp = processChanges(changes, false, ignoreDirty);
    +
    +			if (tmp != null)
    +			{
    +				if (dirty == null)
    +				{
    +					dirty = tmp;
    +				}
    +				else
    +				{
    +					dirty.add(tmp);
    +				}
    +			}
    +		}
    +
    +		removeSelectionCells(getRemovedCellsForChanges(changes));
    +
    +		return dirty;
    +	}
    +
    +	/**
    +	 * Extends the canvas by doing another validation with a shifted
    +	 * global translation if the bounds of the graph are below (0,0).
    +	 * 
    +	 * The first validation is required to compute the bounds of the graph
    +	 * while the second validation is required to apply the new translate.
    +	 */
    +	protected void updateOrigin()
    +	{
    +		mxRectangle bounds = getGraphBounds();
    +
    +		if (bounds != null)
    +		{
    +			double scale = getView().getScale();
    +			double x = bounds.getX() / scale - getBorder();
    +			double y = bounds.getY() / scale - getBorder();
    +
    +			if (x < 0 || y < 0)
    +			{
    +				double x0 = Math.min(0, x);
    +				double y0 = Math.min(0, y);
    +
    +				origin.setX(origin.getX() + x0);
    +				origin.setY(origin.getY() + y0);
    +
    +				mxPoint t = getView().getTranslate();
    +				getView().setTranslate(
    +						new mxPoint(t.getX() - x0, t.getY() - y0));
    +			}
    +			else if ((x > 0 || y > 0)
    +					&& (origin.getX() < 0 || origin.getY() < 0))
    +			{
    +				double dx = Math.min(-origin.getX(), x);
    +				double dy = Math.min(-origin.getY(), y);
    +
    +				origin.setX(origin.getX() + dx);
    +				origin.setY(origin.getY() + dy);
    +
    +				mxPoint t = getView().getTranslate();
    +				getView().setTranslate(
    +						new mxPoint(t.getX() - dx, t.getY() - dy));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the cells that have been removed from the model.
    +	 */
    +	public Object[] getRemovedCellsForChanges(List<mxUndoableChange> changes)
    +	{
    +		List<Object> result = new ArrayList<Object>();
    +		Iterator<mxUndoableChange> it = changes.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			Object change = it.next();
    +
    +			if (change instanceof mxRootChange)
    +			{
    +				break;
    +			}
    +			else if (change instanceof mxChildChange)
    +			{
    +				mxChildChange cc = (mxChildChange) change;
    +
    +				if (cc.getParent() == null)
    +				{
    +					result.addAll(mxGraphModel.getDescendants(model,
    +							cc.getChild()));
    +				}
    +			}
    +			else if (change instanceof mxVisibleChange)
    +			{
    +				Object cell = ((mxVisibleChange) change).getCell();
    +				result.addAll(mxGraphModel.getDescendants(model, cell));
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Processes the changes and returns the minimal rectangle to be
    +	 * repainted in the buffer. A return value of null means no repaint
    +	 * is required.
    +	 */
    +	public mxRectangle processChanges(List<mxUndoableChange> changes,
    +			boolean invalidate, boolean ignoreDirty)
    +	{
    +		mxRectangle bounds = null;
    +		Iterator<mxUndoableChange> it = changes.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			mxRectangle rect = processChange(it.next(), invalidate, ignoreDirty);
    +
    +			if (bounds == null)
    +			{
    +				bounds = rect;
    +			}
    +			else
    +			{
    +				bounds.add(rect);
    +			}
    +		}
    +
    +		return bounds;
    +	}
    +
    +	/**
    +	 * Processes the given change and invalidates the respective cached data
    +	 * in <view>. This fires a <root> event if the root has changed in the
    +	 * model.
    +	 */
    +	public mxRectangle processChange(mxUndoableChange change,
    +			boolean invalidate, boolean ignoreDirty)
    +	{
    +		mxRectangle result = null;
    +
    +		if (change instanceof mxRootChange)
    +		{
    +			result = (ignoreDirty) ? null : getGraphBounds();
    +
    +			if (invalidate)
    +			{
    +				clearSelection();
    +				removeStateForCell(((mxRootChange) change).getPrevious());
    +
    +				if (isResetViewOnRootChange())
    +				{
    +					view.setEventsEnabled(false);
    +
    +					try
    +					{
    +						view.scaleAndTranslate(1, 0, 0);
    +					}
    +					finally
    +					{
    +						view.setEventsEnabled(true);
    +					}
    +				}
    +
    +			}
    +
    +			fireEvent(new mxEventObject(mxEvent.ROOT));
    +		}
    +		else if (change instanceof mxChildChange)
    +		{
    +			mxChildChange cc = (mxChildChange) change;
    +
    +			// Repaints the parent area if it is a rendered cell (vertex or
    +			// edge) otherwise only the child area is repainted, same holds
    +			// if the parent and previous are the same object, in which case
    +			// only the child area needs to be repainted (change of order)
    +			if (!ignoreDirty)
    +			{
    +				if (cc.getParent() != cc.getPrevious())
    +				{
    +					if (model.isVertex(cc.getParent())
    +							|| model.isEdge(cc.getParent()))
    +					{
    +						result = getBoundingBox(cc.getParent(), true, true);
    +					}
    +
    +					if (model.isVertex(cc.getPrevious())
    +							|| model.isEdge(cc.getPrevious()))
    +					{
    +						if (result != null)
    +						{
    +							result.add(getBoundingBox(cc.getPrevious(), true,
    +									true));
    +						}
    +						else
    +						{
    +							result = getBoundingBox(cc.getPrevious(), true,
    +									true);
    +						}
    +					}
    +				}
    +
    +				if (result == null)
    +				{
    +					result = getBoundingBox(cc.getChild(), true, true);
    +				}
    +			}
    +
    +			if (invalidate)
    +			{
    +				if (cc.getParent() != null)
    +				{
    +					view.clear(cc.getChild(), false, true);
    +				}
    +				else
    +				{
    +					removeStateForCell(cc.getChild());
    +				}
    +			}
    +		}
    +		else if (change instanceof mxTerminalChange)
    +		{
    +			Object cell = ((mxTerminalChange) change).getCell();
    +
    +			if (!ignoreDirty)
    +			{
    +				result = getBoundingBox(cell, true);
    +			}
    +
    +			if (invalidate)
    +			{
    +				view.invalidate(cell);
    +			}
    +		}
    +		else if (change instanceof mxValueChange)
    +		{
    +			Object cell = ((mxValueChange) change).getCell();
    +
    +			if (!ignoreDirty)
    +			{
    +				result = getBoundingBox(cell);
    +			}
    +
    +			if (invalidate)
    +			{
    +				view.clear(cell, false, false);
    +			}
    +		}
    +		else if (change instanceof mxStyleChange)
    +		{
    +			Object cell = ((mxStyleChange) change).getCell();
    +
    +			if (!ignoreDirty)
    +			{
    +				result = getBoundingBox(cell, true);
    +			}
    +
    +			if (invalidate)
    +			{
    +				// TODO: Add includeEdges argument to clear method for
    +				// not having to call invalidate in this case (where it
    +				// is possible that the perimeter has changed, which
    +				// means the connected edges need to be invalidated)
    +				view.clear(cell, false, false);
    +				view.invalidate(cell);
    +			}
    +		}
    +		else if (change instanceof mxGeometryChange)
    +		{
    +			Object cell = ((mxGeometryChange) change).getCell();
    +
    +			if (!ignoreDirty)
    +			{
    +				result = getBoundingBox(cell, true, true);
    +			}
    +
    +			if (invalidate)
    +			{
    +				view.invalidate(cell);
    +			}
    +		}
    +		else if (change instanceof mxCollapseChange)
    +		{
    +			Object cell = ((mxCollapseChange) change).getCell();
    +
    +			if (!ignoreDirty)
    +			{
    +				result = getBoundingBox(((mxCollapseChange) change).getCell(),
    +						true, true);
    +			}
    +
    +			if (invalidate)
    +			{
    +				removeStateForCell(cell);
    +			}
    +		}
    +		else if (change instanceof mxVisibleChange)
    +		{
    +			Object cell = ((mxVisibleChange) change).getCell();
    +
    +			if (!ignoreDirty)
    +			{
    +				result = getBoundingBox(((mxVisibleChange) change).getCell(),
    +						true, true);
    +			}
    +
    +			if (invalidate)
    +			{
    +				removeStateForCell(cell);
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Removes all cached information for the given cell and its descendants.
    +	 * This is called when a cell was removed from the model.
    +	 * 
    +	 * @param cell Cell that was removed from the model.
    +	 */
    +	protected void removeStateForCell(Object cell)
    +	{
    +		int childCount = model.getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			removeStateForCell(model.getChildAt(cell, i));
    +		}
    +
    +		view.removeState(cell);
    +	}
    +
    +	//
    +	// Cell styles
    +	//
    +
    +	/**
    +	 * Returns an array of key, value pairs representing the cell style for the
    +	 * given cell. If no string is defined in the model that specifies the
    +	 * style, then the default style for the cell is returned or <EMPTY_ARRAY>,
    +	 * if not style can be found.
    +	 * 
    +	 * @param cell Cell whose style should be returned.
    +	 * @return Returns the style of the cell.
    +	 */
    +	public Map<String, Object> getCellStyle(Object cell)
    +	{
    +		Map<String, Object> style = (model.isEdge(cell)) ? stylesheet
    +				.getDefaultEdgeStyle() : stylesheet.getDefaultVertexStyle();
    +
    +		String name = model.getStyle(cell);
    +
    +		if (name != null)
    +		{
    +			style = postProcessCellStyle(stylesheet.getCellStyle(name, style));
    +		}
    +
    +		if (style == null)
    +		{
    +			style = mxStylesheet.EMPTY_STYLE;
    +		}
    +
    +		return style;
    +	}
    +
    +	/**
    +	 * Tries to resolve the value for the image style in the image bundles and
    +	 * turns short data URIs as defined in mxImageBundle to data URIs as
    +	 * defined in RFC 2397 of the IETF.
    +	 */
    +	protected Map<String, Object> postProcessCellStyle(Map<String, Object> style)
    +	{
    +		if (style != null)
    +		{
    +			String key = mxUtils.getString(style, mxConstants.STYLE_IMAGE);
    +			String image = getImageFromBundles(key);
    +
    +			if (image != null)
    +			{
    +				style.put(mxConstants.STYLE_IMAGE, image);
    +			}
    +			else
    +			{
    +				image = key;
    +			}
    +
    +			// Converts short data uris to normal data uris
    +			if (image != null && image.startsWith("data:image/"))
    +			{
    +				int comma = image.indexOf(',');
    +
    +				if (comma > 0)
    +				{
    +					image = image.substring(0, comma) + ";base64,"
    +							+ image.substring(comma + 1);
    +				}
    +
    +				style.put(mxConstants.STYLE_IMAGE, image);
    +			}
    +		}
    +
    +		return style;
    +	}
    +
    +	/**
    +	 * Sets the style of the selection cells to the given value.
    +	 * 
    +	 * @param style String representing the new style of the cells.
    +	 */
    +	public Object[] setCellStyle(String style)
    +	{
    +		return setCellStyle(style, null);
    +	}
    +
    +	/**
    +	 * Sets the style of the specified cells. If no cells are given, then the
    +	 * selection cells are changed.
    +	 * 
    +	 * @param style String representing the new style of the cells.
    +	 * @param cells Optional array of <mxCells> to set the style for. Default is the
    +	 * selection cells.
    +	 */
    +	public Object[] setCellStyle(String style, Object[] cells)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getSelectionCells();
    +		}
    +
    +		if (cells != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					model.setStyle(cells[i], style);
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Toggles the boolean value for the given key in the style of the
    +	 * given cell. If no cell is specified then the selection cell is
    +	 * used.
    +	 * 
    +	 * @param key Key for the boolean value to be toggled.
    +	 * @param defaultValue Default boolean value if no value is defined.
    +	 * @param cell Cell whose style should be modified.
    +	 */
    +	public Object toggleCellStyle(String key, boolean defaultValue, Object cell)
    +	{
    +		return toggleCellStyles(key, defaultValue, new Object[] { cell })[0];
    +	}
    +
    +	/**
    +	 * Toggles the boolean value for the given key in the style of the
    +	 * selection cells.
    +	 * 
    +	 * @param key Key for the boolean value to be toggled.
    +	 * @param defaultValue Default boolean value if no value is defined.
    +	 */
    +	public Object[] toggleCellStyles(String key, boolean defaultValue)
    +	{
    +		return toggleCellStyles(key, defaultValue, null);
    +	}
    +
    +	/**
    +	 * Toggles the boolean value for the given key in the style of the given
    +	 * cells. If no cells are specified, then the selection cells are used. For
    +	 * example, this can be used to toggle mxConstants.STYLE_ROUNDED or any
    +	 * other style with a boolean value.
    +	 * 
    +	 * @param key String representing the key of the boolean style to be toggled.
    +	 * @param defaultValue Default boolean value if no value is defined.
    +	 * @param cells Cells whose styles should be modified.
    +	 */
    +	public Object[] toggleCellStyles(String key, boolean defaultValue,
    +			Object[] cells)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getSelectionCells();
    +		}
    +
    +		if (cells != null && cells.length > 0)
    +		{
    +			mxCellState state = view.getState(cells[0]);
    +			Map<String, Object> style = (state != null) ? state.getStyle()
    +					: getCellStyle(cells[0]);
    +
    +			if (style != null)
    +			{
    +				String value = (mxUtils.isTrue(style, key, defaultValue)) ? "0"
    +						: "1";
    +				setCellStyles(key, value, cells);
    +			}
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Sets the key to value in the styles of the selection cells.
    +	 *
    +	 * @param key String representing the key to be assigned.
    +	 * @param value String representing the new value for the key.
    +	 */
    +	public Object[] setCellStyles(String key, String value)
    +	{
    +		return setCellStyles(key, value, null);
    +	}
    +
    +	/**
    +	 * Sets the key to value in the styles of the given cells. This will modify
    +	 * the existing cell styles in-place and override any existing assignment
    +	 * for the given key. If no cells are specified, then the selection cells
    +	 * are changed. If no value is specified, then the respective key is
    +	 * removed from the styles.
    +	 * 
    +	 * @param key String representing the key to be assigned.
    +	 * @param value String representing the new value for the key.
    +	 * @param cells Array of cells to change the style for.
    +	 */
    +	public Object[] setCellStyles(String key, String value, Object[] cells)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getSelectionCells();
    +		}
    +
    +		mxStyleUtils.setCellStyles(model, cells, key, value);
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Toggles the given bit for the given key in the styles of the selection
    +	 * cells.
    +	 * 
    +	 * @param key String representing the key to toggle the flag in.
    +	 * @param flag Integer that represents the bit to be toggled.
    +	 */
    +	public Object[] toggleCellStyleFlags(String key, int flag)
    +	{
    +		return toggleCellStyleFlags(key, flag, null);
    +	}
    +
    +	/**
    +	 * Toggles the given bit for the given key in the styles of the specified
    +	 * cells.
    +	 * 
    +	 * @param key String representing the key to toggle the flag in.
    +	 * @param flag Integer that represents the bit to be toggled.
    +	 * @param cells Optional array of <mxCells> to change the style for. Default is
    +	 * the selection cells.
    +	 */
    +	public Object[] toggleCellStyleFlags(String key, int flag, Object[] cells)
    +	{
    +		return setCellStyleFlags(key, flag, null, cells);
    +	}
    +
    +	/**
    +	 * Sets or toggles the given bit for the given key in the styles of the
    +	 * selection cells.
    +	 * 
    +	 * @param key String representing the key to toggle the flag in.
    +	 * @param flag Integer that represents the bit to be toggled.
    +	 * @param value Boolean value to be used or null if the value should be
    +	 * toggled.
    +	 */
    +	public Object[] setCellStyleFlags(String key, int flag, boolean value)
    +	{
    +		return setCellStyleFlags(key, flag, value, null);
    +	}
    +
    +	/**
    +	 * Sets or toggles the given bit for the given key in the styles of the
    +	 * specified cells.
    +	 * 
    +	 * @param key String representing the key to toggle the flag in.
    +	 * @param flag Integer that represents the bit to be toggled.
    +	 * @param value Boolean value to be used or null if the value should be
    +	 * toggled.
    +	 * @param cells Optional array of cells to change the style for. If no
    +	 * cells are specified then the selection cells are used.
    +	 */
    +	public Object[] setCellStyleFlags(String key, int flag, Boolean value,
    +			Object[] cells)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getSelectionCells();
    +		}
    +
    +		if (cells != null && cells.length > 0)
    +		{
    +			if (value == null)
    +			{
    +				mxCellState state = view.getState(cells[0]);
    +				Map<String, Object> style = (state != null) ? state.getStyle()
    +						: getCellStyle(cells[0]);
    +
    +				if (style != null)
    +				{
    +					int current = mxUtils.getInt(style, key);
    +					value = !((current & flag) == flag);
    +				}
    +			}
    +
    +			mxStyleUtils.setCellStyleFlags(model, cells, key, flag, value);
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Adds the specified bundle.
    +	 */
    +	public void addImageBundle(mxImageBundle bundle)
    +	{
    +		imageBundles.add(bundle);
    +	}
    +
    +	/**
    +	 * Removes the specified bundle.
    +	 */
    +	public void removeImageBundle(mxImageBundle bundle)
    +	{
    +		imageBundles.remove(bundle);
    +	}
    +
    +	/**
    +	 * Searches all bundles for the specified key and returns the value for the
    +	 * first match or null if the key is not found.
    +	 */
    +	public String getImageFromBundles(String key)
    +	{
    +		if (key != null)
    +		{
    +			Iterator<mxImageBundle> it = imageBundles.iterator();
    +
    +			while (it.hasNext())
    +			{
    +				String value = it.next().getImage(key);
    +
    +				if (value != null)
    +				{
    +					return value;
    +				}
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the image bundles
    +	 */
    +	public List<mxImageBundle> getImageBundles()
    +	{
    +		return imageBundles;
    +	}
    +
    +	/**
    +	 * Returns the image bundles
    +	 */
    +	public void getImageBundles(List<mxImageBundle> value)
    +	{
    +		imageBundles = value;
    +	}
    +
    +	//
    +	// Cell alignment and orientation
    +	//
    +
    +	/**
    +	 * Aligns the selection cells vertically or horizontally according to the
    +	 * given alignment.
    +	 * 
    +	 * @param align Specifies the alignment. Possible values are all constants
    +	 * in mxConstants with an ALIGN prefix.
    +	 */
    +	public Object[] alignCells(String align)
    +	{
    +		return alignCells(align, null);
    +	}
    +
    +	/**
    +	 * Aligns the given cells vertically or horizontally according to the given
    +	 * alignment.
    +	 * 
    +	 * @param align Specifies the alignment. Possible values are all constants
    +	 * in mxConstants with an ALIGN prefix.
    +	 * @param cells Array of cells to be aligned.
    +	 */
    +	public Object[] alignCells(String align, Object[] cells)
    +	{
    +		return alignCells(align, cells, null);
    +	}
    +
    +	/**
    +	 * Aligns the given cells vertically or horizontally according to the given
    +	 * alignment using the optional parameter as the coordinate.
    +	 * 
    +	 * @param align Specifies the alignment. Possible values are all constants
    +	 * in mxConstants with an ALIGN prefix.
    +	 * @param cells Array of cells to be aligned.
    +	 * @param param Optional coordinate for the alignment.
    +	 */
    +	public Object[] alignCells(String align, Object[] cells, Object param)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getSelectionCells();
    +		}
    +
    +		if (cells != null && cells.length > 1)
    +		{
    +			// Finds the required coordinate for the alignment
    +			if (param == null)
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					mxGeometry geo = getCellGeometry(cells[i]);
    +
    +					if (geo != null && !model.isEdge(cells[i]))
    +					{
    +						if (param == null)
    +						{
    +							if (align == null
    +									|| align.equals(mxConstants.ALIGN_LEFT))
    +							{
    +								param = geo.getX();
    +							}
    +							else if (align.equals(mxConstants.ALIGN_CENTER))
    +							{
    +								param = geo.getX() + geo.getWidth() / 2;
    +								break;
    +							}
    +							else if (align.equals(mxConstants.ALIGN_RIGHT))
    +							{
    +								param = geo.getX() + geo.getWidth();
    +							}
    +							else if (align.equals(mxConstants.ALIGN_TOP))
    +							{
    +								param = geo.getY();
    +							}
    +							else if (align.equals(mxConstants.ALIGN_MIDDLE))
    +							{
    +								param = geo.getY() + geo.getHeight() / 2;
    +								break;
    +							}
    +							else if (align.equals(mxConstants.ALIGN_BOTTOM))
    +							{
    +								param = geo.getY() + geo.getHeight();
    +							}
    +						}
    +						else
    +						{
    +							double tmp = Double.parseDouble(String
    +									.valueOf(param));
    +
    +							if (align == null
    +									|| align.equals(mxConstants.ALIGN_LEFT))
    +							{
    +								param = Math.min(tmp, geo.getX());
    +							}
    +							else if (align.equals(mxConstants.ALIGN_RIGHT))
    +							{
    +								param = Math.max(tmp,
    +										geo.getX() + geo.getWidth());
    +							}
    +							else if (align.equals(mxConstants.ALIGN_TOP))
    +							{
    +								param = Math.min(tmp, geo.getY());
    +							}
    +							else if (align.equals(mxConstants.ALIGN_BOTTOM))
    +							{
    +								param = Math.max(tmp,
    +										geo.getY() + geo.getHeight());
    +							}
    +						}
    +					}
    +				}
    +			}
    +
    +			// Aligns the cells to the coordinate
    +			model.beginUpdate();
    +			try
    +			{
    +				double tmp = Double.parseDouble(String.valueOf(param));
    +
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					mxGeometry geo = getCellGeometry(cells[i]);
    +
    +					if (geo != null && !model.isEdge(cells[i]))
    +					{
    +						geo = (mxGeometry) geo.clone();
    +
    +						if (align == null
    +								|| align.equals(mxConstants.ALIGN_LEFT))
    +						{
    +							geo.setX(tmp);
    +						}
    +						else if (align.equals(mxConstants.ALIGN_CENTER))
    +						{
    +							geo.setX(tmp - geo.getWidth() / 2);
    +						}
    +						else if (align.equals(mxConstants.ALIGN_RIGHT))
    +						{
    +							geo.setX(tmp - geo.getWidth());
    +						}
    +						else if (align.equals(mxConstants.ALIGN_TOP))
    +						{
    +							geo.setY(tmp);
    +						}
    +						else if (align.equals(mxConstants.ALIGN_MIDDLE))
    +						{
    +							geo.setY(tmp - geo.getHeight() / 2);
    +						}
    +						else if (align.equals(mxConstants.ALIGN_BOTTOM))
    +						{
    +							geo.setY(tmp - geo.getHeight());
    +						}
    +
    +						model.setGeometry(cells[i], geo);
    +
    +						if (isResetEdgesOnMove())
    +						{
    +							resetEdges(new Object[] { cells[i] });
    +						}
    +					}
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS, "cells",
    +						cells, "align", align));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Called when the main control point of the edge is double-clicked. This
    +	 * implementation switches between null (default) and alternateEdgeStyle
    +	 * and resets the edges control points. Finally, a flip event is fired
    +	 * before endUpdate is called on the model.
    +	 * 
    +	 * @param edge Cell that represents the edge to be flipped.
    +	 * @return Returns the edge that has been flipped.
    +	 */
    +	public Object flipEdge(Object edge)
    +	{
    +		if (edge != null && alternateEdgeStyle != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				String style = model.getStyle(edge);
    +
    +				if (style == null || style.length() == 0)
    +				{
    +					model.setStyle(edge, alternateEdgeStyle);
    +				}
    +				else
    +				{
    +					model.setStyle(edge, null);
    +				}
    +
    +				// Removes all existing control points
    +				resetEdge(edge);
    +				fireEvent(new mxEventObject(mxEvent.FLIP_EDGE, "edge", edge));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +
    +		return edge;
    +	}
    +
    +	//
    +	// Order
    +	//
    +
    +	/**
    +	 * Moves the selection cells to the front or back. This is a shortcut method.
    +	 * 
    +	 * @param back Specifies if the cells should be moved to back.
    +	 */
    +	public Object[] orderCells(boolean back)
    +	{
    +		return orderCells(back, null);
    +	}
    +
    +	/**
    +	 * Moves the given cells to the front or back. The change is carried out
    +	 * using cellsOrdered. This method fires mxEvent.ORDER_CELLS while the
    +	 * transaction is in progress.
    +	 * 
    +	 * @param back Specifies if the cells should be moved to back.
    +	 * @param cells Array of cells whose order should be changed. If null is
    +	 * specified then the selection cells are used.
    +	 */
    +	public Object[] orderCells(boolean back, Object[] cells)
    +	{
    +		if (cells == null)
    +		{
    +			cells = mxUtils.sortCells(getSelectionCells(), true);
    +		}
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			cellsOrdered(cells, back);
    +			fireEvent(new mxEventObject(mxEvent.ORDER_CELLS, "cells", cells,
    +					"back", back));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Moves the given cells to the front or back. This method fires
    +	 * mxEvent.CELLS_ORDERED while the transaction is in progress.
    +	 * 
    +	 * @param cells Array of cells whose order should be changed.
    +	 * @param back Specifies if the cells should be moved to back.
    +	 */
    +	public void cellsOrdered(Object[] cells, boolean back)
    +	{
    +		if (cells != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					Object parent = model.getParent(cells[i]);
    +
    +					if (back)
    +					{
    +						model.add(parent, cells[i], i);
    +					}
    +					else
    +					{
    +						model.add(parent, cells[i],
    +								model.getChildCount(parent) - 1);
    +					}
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED, "cells",
    +						cells, "back", back));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	//
    +	// Grouping
    +	//
    +
    +	/**
    +	 * Groups the selection cells. This is a shortcut method.
    +	 * 
    +	 * @return Returns the new group.
    +	 */
    +	public Object groupCells()
    +	{
    +		return groupCells(null);
    +	}
    +
    +	/**
    +	 * Groups the selection cells and adds them to the given group. This is a
    +	 * shortcut method.
    +	 * 
    +	 * @return Returns the new group.
    +	 */
    +	public Object groupCells(Object group)
    +	{
    +		return groupCells(group, 0);
    +	}
    +
    +	/**
    +	 * Groups the selection cells and adds them to the given group. This is a
    +	 * shortcut method.
    +	 * 
    +	 * @return Returns the new group.
    +	 */
    +	public Object groupCells(Object group, double border)
    +	{
    +		return groupCells(group, border, null);
    +	}
    +
    +	/**
    +	 * Adds the cells into the given group. The change is carried out using
    +	 * cellsAdded, cellsMoved and cellsResized. This method fires
    +	 * mxEvent.GROUP_CELLS while the transaction is in progress. Returns the
    +	 * new group. A group is only created if there is at least one entry in the
    +	 * given array of cells.
    +	 * 
    +	 * @param group Cell that represents the target group. If null is specified
    +	 * then a new group is created using createGroupCell.
    +	 * @param border Integer that specifies the border between the child area
    +	 * and the group bounds.
    +	 * @param cells Optional array of cells to be grouped. If null is specified
    +	 * then the selection cells are used.
    +	 */
    +	public Object groupCells(Object group, double border, Object[] cells)
    +	{
    +		if (cells == null)
    +		{
    +			cells = mxUtils.sortCells(getSelectionCells(), true);
    +		}
    +
    +		cells = getCellsForGroup(cells);
    +
    +		if (group == null)
    +		{
    +			group = createGroupCell(cells);
    +		}
    +
    +		mxRectangle bounds = getBoundsForGroup(group, cells, border);
    +
    +		if (cells.length > 0 && bounds != null)
    +		{
    +			// Uses parent of group or previous parent of first child
    +			Object parent = model.getParent(group);
    +
    +			if (parent == null)
    +			{
    +				parent = model.getParent(cells[0]);
    +			}
    +
    +			model.beginUpdate();
    +			try
    +			{
    +				// Checks if the group has a geometry and
    +				// creates one if one does not exist
    +				if (getCellGeometry(group) == null)
    +				{
    +					model.setGeometry(group, new mxGeometry());
    +				}
    +
    +				// Adds the children into the group and moves
    +				int index = model.getChildCount(group);
    +				cellsAdded(cells, group, index, null, null, false);
    +				cellsMoved(cells, -bounds.getX(), -bounds.getY(), false, true);
    +
    +				// Adds the group into the parent and resizes
    +				index = model.getChildCount(parent);
    +				cellsAdded(new Object[] { group }, parent, index, null, null,
    +						false);
    +				cellsResized(new Object[] { group },
    +						new mxRectangle[] { bounds });
    +
    +				fireEvent(new mxEventObject(mxEvent.GROUP_CELLS, "group",
    +						group, "cells", cells, "border", border));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +
    +		return group;
    +	}
    +
    +	/**
    +	 * Returns the cells with the same parent as the first cell
    +	 * in the given array.
    +	 */
    +	public Object[] getCellsForGroup(Object[] cells)
    +	{
    +		List<Object> result = new ArrayList<Object>(cells.length);
    +
    +		if (cells.length > 0)
    +		{
    +			Object parent = model.getParent(cells[0]);
    +			result.add(cells[0]);
    +
    +			// Filters selection cells with the same parent
    +			for (int i = 1; i < cells.length; i++)
    +			{
    +				if (model.getParent(cells[i]) == parent)
    +				{
    +					result.add(cells[i]);
    +				}
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Returns the bounds to be used for the given group and children. This
    +	 * implementation computes the bounding box of the geometries of all
    +	 * vertices in the given children array. Edges are ignored. If the group
    +	 * cell is a swimlane the title region is added to the bounds.
    +	 */
    +	public mxRectangle getBoundsForGroup(Object group, Object[] children,
    +			double border)
    +	{
    +		mxRectangle result = getBoundingBoxFromGeometry(children);
    +
    +		if (result != null)
    +		{
    +			if (isSwimlane(group))
    +			{
    +				mxRectangle size = getStartSize(group);
    +
    +				result.setX(result.getX() - size.getWidth());
    +				result.setY(result.getY() - size.getHeight());
    +				result.setWidth(result.getWidth() + size.getWidth());
    +				result.setHeight(result.getHeight() + size.getHeight());
    +			}
    +
    +			// Adds the border
    +			result.setX(result.getX() - border);
    +			result.setY(result.getY() - border);
    +			result.setWidth(result.getWidth() + 2 * border);
    +			result.setHeight(result.getHeight() + 2 * border);
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Hook for creating the group cell to hold the given array of <mxCells> if
    +	 * no group cell was given to the <group> function. The children are just
    +	 * for informational purpose, they will be added to the returned group
    +	 * later. Note that the returned group should have a geometry. The
    +	 * coordinates of which are later overridden.
    +	 * 
    +	 * @param cells
    +	 * @return Returns a new group cell.
    +	 */
    +	public Object createGroupCell(Object[] cells)
    +	{
    +		mxCell group = new mxCell("", new mxGeometry(), null);
    +		group.setVertex(true);
    +		group.setConnectable(false);
    +
    +		return group;
    +	}
    +
    +	/**
    +	 * Ungroups the selection cells. This is a shortcut method.
    +	 */
    +	public Object[] ungroupCells()
    +	{
    +		return ungroupCells(null);
    +	}
    +
    +	/**
    +	 * Ungroups the given cells by moving the children the children to their
    +	 * parents parent and removing the empty groups.
    +	 * 
    +	 * @param cells Array of cells to be ungrouped. If null is specified then
    +	 * the selection cells are used.
    +	 * @return Returns the children that have been removed from the groups.
    +	 */
    +	public Object[] ungroupCells(Object[] cells)
    +	{
    +		List<Object> result = new ArrayList<Object>();
    +
    +		if (cells == null)
    +		{
    +			cells = getSelectionCells();
    +
    +			// Finds the cells with children
    +			List<Object> tmp = new ArrayList<Object>(cells.length);
    +
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				if (model.getChildCount(cells[i]) > 0)
    +				{
    +					tmp.add(cells[i]);
    +				}
    +			}
    +
    +			cells = tmp.toArray();
    +		}
    +
    +		if (cells != null && cells.length > 0)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					Object[] children = mxGraphModel.getChildren(model,
    +							cells[i]);
    +
    +					if (children != null && children.length > 0)
    +					{
    +						Object parent = model.getParent(cells[i]);
    +						int index = model.getChildCount(parent);
    +
    +						cellsAdded(children, parent, index, null, null, true);
    +						result.addAll(Arrays.asList(children));
    +					}
    +				}
    +
    +				cellsRemoved(addAllEdges(cells));
    +				fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS, "cells",
    +						cells));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Removes the selection cells from their parents and adds them to the
    +	 * default parent returned by getDefaultParent.
    +	 */
    +	public Object[] removeCellsFromParent()
    +	{
    +		return removeCellsFromParent(null);
    +	}
    +
    +	/**
    +	 * Removes the specified cells from their parents and adds them to the
    +	 * default parent.
    +	 * 
    +	 * @param cells Array of cells to be removed from their parents.
    +	 * @return Returns the cells that were removed from their parents.
    +	 */
    +	public Object[] removeCellsFromParent(Object[] cells)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getSelectionCells();
    +		}
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			Object parent = getDefaultParent();
    +			int index = model.getChildCount(parent);
    +
    +			cellsAdded(cells, parent, index, null, null, true);
    +			fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,
    +					"cells", cells));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Updates the bounds of the given array of groups so that it includes
    +	 * all child vertices.
    +	 */
    +	public Object[] updateGroupBounds()
    +	{
    +		return updateGroupBounds(null);
    +	}
    +
    +	/**
    +	 * Updates the bounds of the given array of groups so that it includes
    +	 * all child vertices.
    +	 * 
    +	 * @param cells The groups whose bounds should be updated.
    +	 */
    +	public Object[] updateGroupBounds(Object[] cells)
    +	{
    +		return updateGroupBounds(cells, 0);
    +	}
    +
    +	/**
    +	 * Updates the bounds of the given array of groups so that it includes
    +	 * all child vertices.
    +	 * 
    +	 * @param cells The groups whose bounds should be updated.
    +	 * @param border The border to be added in the group.
    +	 */
    +	public Object[] updateGroupBounds(Object[] cells, int border)
    +	{
    +		return updateGroupBounds(cells, border, false);
    +	}
    +
    +	/**
    +	 * Updates the bounds of the given array of groups so that it includes
    +	 * all child vertices.
    +	 * 
    +	 * @param cells The groups whose bounds should be updated.
    +	 * @param border The border to be added in the group.
    +	 * @param moveParent Specifies if the group should be moved.
    +	 */
    +	public Object[] updateGroupBounds(Object[] cells, int border,
    +			boolean moveParent)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getSelectionCells();
    +		}
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				mxGeometry geo = getCellGeometry(cells[i]);
    +
    +				if (geo != null)
    +				{
    +					Object[] children = getChildCells(cells[i]);
    +
    +					if (children != null && children.length > 0)
    +					{
    +						mxRectangle childBounds = getBoundingBoxFromGeometry(children);
    +
    +						if (childBounds.getWidth() > 0
    +								&& childBounds.getHeight() > 0)
    +						{
    +							mxRectangle size = (isSwimlane(cells[i])) ? getStartSize(cells[i])
    +									: new mxRectangle();
    +
    +							geo = (mxGeometry) geo.clone();
    +
    +							if (moveParent)
    +							{
    +								geo.setX(geo.getX() + childBounds.getX()
    +										- size.getWidth() - border);
    +								geo.setY(geo.getY() + childBounds.getY()
    +										- size.getHeight() - border);
    +							}
    +
    +							geo.setWidth(childBounds.getWidth()
    +									+ size.getWidth() + 2 * border);
    +							geo.setHeight(childBounds.getHeight()
    +									+ size.getHeight() + 2 * border);
    +
    +							model.setGeometry(cells[i], geo);
    +							moveCells(children,
    +									-childBounds.getX() + size.getWidth()
    +											+ border, -childBounds.getY()
    +											+ size.getHeight() + border);
    +						}
    +					}
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cells;
    +	}
    +
    +	//
    +	// Cell cloning, insertion and removal
    +	//
    +
    +	/**
    +	 * Clones all cells in the given array. To clone all children in a cell and
    +	 * add them to another graph:
    +	 * 
    +	 * <code>
    +	 * graph2.addCells(graph.cloneCells(new Object[] { parent }));
    +	 * </code>
    +	 * 
    +	 * To clone all children in a graph layer if graph g1 and put them into the
    +	 * default parent (typically default layer) of another graph g2, the
    +	 * following code is used:
    +	 * 
    +	 * <code>
    +	 * g2.addCells(g1.cloneCells(g1.cloneCells(g1.getChildCells(g1.getDefaultParent()));
    +	 * </code>
    +	 */
    +	public Object[] cloneCells(Object[] cells)
    +	{
    +
    +		return cloneCells(cells, true);
    +	}
    +
    +	/**
    +	 * Returns the clones for the given cells. If the terminal of an edge is
    +	 * not in the given array, then the respective end is assigned a terminal
    +	 * point and the terminal is removed. If a cloned edge is invalid and
    +	 * allowInvalidEdges is false, then a null pointer will be at this position
    +	 * in the returned array. Use getCloneableCells on the input array to only
    +	 * clone the cells where isCellCloneable returns true.
    +	 * 
    +	 * @param cells Array of mxCells to be cloned.
    +	 * @return Returns the clones of the given cells.
    +	 */
    +	public Object[] cloneCells(Object[] cells, boolean allowInvalidEdges)
    +	{
    +		Object[] clones = null;
    +
    +		if (cells != null)
    +		{
    +			Collection<Object> tmp = new LinkedHashSet<Object>(cells.length);
    +			tmp.addAll(Arrays.asList(cells));
    +
    +			if (!tmp.isEmpty())
    +			{
    +				double scale = view.getScale();
    +				mxPoint trans = view.getTranslate();
    +				clones = model.cloneCells(cells, true);
    +
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (!allowInvalidEdges
    +							&& model.isEdge(clones[i])
    +							&& getEdgeValidationError(clones[i],
    +									model.getTerminal(clones[i], true),
    +									model.getTerminal(clones[i], false)) != null)
    +					{
    +						clones[i] = null;
    +					}
    +					else
    +					{
    +						mxGeometry g = model.getGeometry(clones[i]);
    +
    +						if (g != null)
    +						{
    +							mxCellState state = view.getState(cells[i]);
    +							mxCellState pstate = view.getState(model
    +									.getParent(cells[i]));
    +
    +							if (state != null && pstate != null)
    +							{
    +								double dx = pstate.getOrigin().getX();
    +								double dy = pstate.getOrigin().getY();
    +
    +								if (model.isEdge(clones[i]))
    +								{
    +									// Checks if the source is cloned or sets the terminal point
    +									Object src = model.getTerminal(cells[i],
    +											true);
    +
    +									while (src != null && !tmp.contains(src))
    +									{
    +										src = model.getParent(src);
    +									}
    +
    +									if (src == null)
    +									{
    +										mxPoint pt = state.getAbsolutePoint(0);
    +										g.setTerminalPoint(
    +												new mxPoint(pt.getX() / scale
    +														- trans.getX(), pt
    +														.getY()
    +														/ scale
    +														- trans.getY()), true);
    +									}
    +
    +									// Checks if the target is cloned or sets the terminal point
    +									Object trg = model.getTerminal(cells[i],
    +											false);
    +
    +									while (trg != null && !tmp.contains(trg))
    +									{
    +										trg = model.getParent(trg);
    +									}
    +
    +									if (trg == null)
    +									{
    +										mxPoint pt = state
    +												.getAbsolutePoint(state
    +														.getAbsolutePointCount() - 1);
    +										g.setTerminalPoint(
    +												new mxPoint(pt.getX() / scale
    +														- trans.getX(), pt
    +														.getY()
    +														/ scale
    +														- trans.getY()), false);
    +									}
    +
    +									// Translates the control points
    +									List<mxPoint> points = g.getPoints();
    +
    +									if (points != null)
    +									{
    +										Iterator<mxPoint> it = points
    +												.iterator();
    +
    +										while (it.hasNext())
    +										{
    +											mxPoint pt = it.next();
    +											pt.setX(pt.getX() + dx);
    +											pt.setY(pt.getY() + dy);
    +										}
    +									}
    +								}
    +								else
    +								{
    +									g.setX(g.getX() + dx);
    +									g.setY(g.getY() + dy);
    +								}
    +							}
    +						}
    +					}
    +				}
    +			}
    +			else
    +			{
    +				clones = new Object[] {};
    +			}
    +		}
    +
    +		return clones;
    +	}
    +
    +	/**
    +	 * Creates and adds a new vertex with an empty style.
    +	 */
    +	public Object insertVertex(Object parent, String id, Object value,
    +			double x, double y, double width, double height)
    +	{
    +		return insertVertex(parent, id, value, x, y, width, height, null);
    +	}
    +
    +	/**
    +	 * Adds a new vertex into the given parent using value as the user object
    +	 * and the given coordinates as the geometry of the new vertex. The id and
    +	 * style are used for the respective properties of the new cell, which is
    +	 * returned.
    +	 * 
    +	 * @param parent Cell that specifies the parent of the new vertex.
    +	 * @param id Optional string that defines the Id of the new vertex.
    +	 * @param value Object to be used as the user object.
    +	 * @param x Integer that defines the x coordinate of the vertex.
    +	 * @param y Integer that defines the y coordinate of the vertex.
    +	 * @param width Integer that defines the width of the vertex.
    +	 * @param height Integer that defines the height of the vertex.
    +	 * @param style Optional string that defines the cell style.
    +	 * @return Returns the new vertex that has been inserted.
    +	 */
    +	public Object insertVertex(Object parent, String id, Object value,
    +			double x, double y, double width, double height, String style)
    +	{
    +		return insertVertex(parent, id, value, x, y, width, height, style,
    +				false);
    +	}
    +
    +	/**
    +	 * Adds a new vertex into the given parent using value as the user object
    +	 * and the given coordinates as the geometry of the new vertex. The id and
    +	 * style are used for the respective properties of the new cell, which is
    +	 * returned.
    +	 * 
    +	 * @param parent Cell that specifies the parent of the new vertex.
    +	 * @param id Optional string that defines the Id of the new vertex.
    +	 * @param value Object to be used as the user object.
    +	 * @param x Integer that defines the x coordinate of the vertex.
    +	 * @param y Integer that defines the y coordinate of the vertex.
    +	 * @param width Integer that defines the width of the vertex.
    +	 * @param height Integer that defines the height of the vertex.
    +	 * @param style Optional string that defines the cell style.
    +	 * @param relative Specifies if the geometry should be relative.
    +	 * @return Returns the new vertex that has been inserted.
    +	 */
    +	public Object insertVertex(Object parent, String id, Object value,
    +			double x, double y, double width, double height, String style,
    +			boolean relative)
    +	{
    +		Object vertex = createVertex(parent, id, value, x, y, width, height,
    +				style, relative);
    +
    +		return addCell(vertex, parent);
    +	}
    +
    +	/**
    +	 * Hook method that creates the new vertex for insertVertex.
    +	 * 
    +	 * @param parent Cell that specifies the parent of the new vertex.
    +	 * @param id Optional string that defines the Id of the new vertex.
    +	 * @param value Object to be used as the user object.
    +	 * @param x Integer that defines the x coordinate of the vertex.
    +	 * @param y Integer that defines the y coordinate of the vertex.
    +	 * @param width Integer that defines the width of the vertex.
    +	 * @param height Integer that defines the height of the vertex.
    +	 * @param style Optional string that defines the cell style.
    +	 * @return Returns the new vertex to be inserted.
    +	 */
    +	public Object createVertex(Object parent, String id, Object value,
    +			double x, double y, double width, double height, String style)
    +	{
    +		return createVertex(parent, id, value, x, y, width, height, style,
    +				false);
    +	}
    +
    +	/**
    +	 * Hook method that creates the new vertex for insertVertex.
    +	 * 
    +	 * @param parent Cell that specifies the parent of the new vertex.
    +	 * @param id Optional string that defines the Id of the new vertex.
    +	 * @param value Object to be used as the user object.
    +	 * @param x Integer that defines the x coordinate of the vertex.
    +	 * @param y Integer that defines the y coordinate of the vertex.
    +	 * @param width Integer that defines the width of the vertex.
    +	 * @param height Integer that defines the height of the vertex.
    +	 * @param style Optional string that defines the cell style.
    +	 * @param relative Specifies if the geometry should be relative.
    +	 * @return Returns the new vertex to be inserted.
    +	 */
    +	public Object createVertex(Object parent, String id, Object value,
    +			double x, double y, double width, double height, String style,
    +			boolean relative)
    +	{
    +		mxGeometry geometry = new mxGeometry(x, y, width, height);
    +		geometry.setRelative(relative);
    +
    +		mxCell vertex = new mxCell(value, geometry, style);
    +		vertex.setId(id);
    +		vertex.setVertex(true);
    +		vertex.setConnectable(true);
    +
    +		return vertex;
    +	}
    +
    +	/**
    +	 * Creates and adds a new edge with an empty style.
    +	 */
    +	public Object insertEdge(Object parent, String id, Object value,
    +			Object source, Object target)
    +	{
    +		return insertEdge(parent, id, value, source, target, null);
    +	}
    +
    +	/**
    +	 * Adds a new edge into the given parent using value as the user object and
    +	 * the given source and target as the terminals of the new edge. The Id and
    +	 * style are used for the respective properties of the new cell, which is
    +	 * returned.
    +	 * 
    +	 * @param parent Cell that specifies the parent of the new edge.
    +	 * @param id Optional string that defines the Id of the new edge.
    +	 * @param value Object to be used as the user object.
    +	 * @param source Cell that defines the source of the edge.
    +	 * @param target Cell that defines the target of the edge.
    +	 * @param style Optional string that defines the cell style.
    +	 * @return Returns the new edge that has been inserted.
    +	 */
    +	public Object insertEdge(Object parent, String id, Object value,
    +			Object source, Object target, String style)
    +	{
    +		Object edge = createEdge(parent, id, value, source, target, style);
    +
    +		return addEdge(edge, parent, source, target, null);
    +	}
    +
    +	/**
    +	 * Hook method that creates the new edge for insertEdge. This
    +	 * implementation does not set the source and target of the edge, these
    +	 * are set when the edge is added to the model.
    +	 * 
    +	 * @param parent Cell that specifies the parent of the new edge.
    +	 * @param id Optional string that defines the Id of the new edge.
    +	 * @param value Object to be used as the user object.
    +	 * @param source Cell that defines the source of the edge.
    +	 * @param target Cell that defines the target of the edge.
    +	 * @param style Optional string that defines the cell style.
    +	 * @return Returns the new edge to be inserted.
    +	 */
    +	public Object createEdge(Object parent, String id, Object value,
    +			Object source, Object target, String style)
    +	{
    +		mxCell edge = new mxCell(value, new mxGeometry(), style);
    +
    +		edge.setId(id);
    +		edge.setEdge(true);
    +		edge.getGeometry().setRelative(true);
    +
    +		return edge;
    +	}
    +
    +	/**
    +	 * Adds the edge to the parent and connects it to the given source and
    +	 * target terminals. This is a shortcut method.
    +	 * 
    +	 * @param edge Edge to be inserted into the given parent.
    +	 * @param parent Object that represents the new parent. If no parent is
    +	 * given then the default parent is used.
    +	 * @param source Optional cell that represents the source terminal.
    +	 * @param target Optional cell that represents the target terminal.
    +	 * @param index Optional index to insert the cells at. Default is to append.
    +	 * @return Returns the edge that was added.
    +	 */
    +	public Object addEdge(Object edge, Object parent, Object source,
    +			Object target, Integer index)
    +	{
    +		return addCell(edge, parent, index, source, target);
    +	}
    +
    +	/**
    +	 * Adds the cell to the default parent. This is a shortcut method.
    +	 * 
    +	 * @param cell Cell to be inserted.
    +	 * @return Returns the cell that was added.
    +	 */
    +	public Object addCell(Object cell)
    +	{
    +		return addCell(cell, null);
    +	}
    +
    +	/**
    +	 * Adds the cell to the parent. This is a shortcut method.
    +	 * 
    +	 * @param cell Cell tobe inserted.
    +	 * @param parent Object that represents the new parent. If no parent is
    +	 * given then the default parent is used.
    +	 * @return Returns the cell that was added.
    +	 */
    +	public Object addCell(Object cell, Object parent)
    +	{
    +		return addCell(cell, parent, null, null, null);
    +	}
    +
    +	/**
    +	 * Adds the cell to the parent and connects it to the given source and
    +	 * target terminals. This is a shortcut method.
    +	 * 
    +	 * @param cell Cell to be inserted into the given parent.
    +	 * @param parent Object that represents the new parent. If no parent is
    +	 * given then the default parent is used.
    +	 * @param index Optional index to insert the cells at. Default is to append.
    +	 * @param source Optional cell that represents the source terminal.
    +	 * @param target Optional cell that represents the target terminal.
    +	 * @return Returns the cell that was added.
    +	 */
    +	public Object addCell(Object cell, Object parent, Integer index,
    +			Object source, Object target)
    +	{
    +		return addCells(new Object[] { cell }, parent, index, source, target)[0];
    +	}
    +
    +	/**
    +	 * Adds the cells to the default parent. This is a shortcut method.
    +	 * 
    +	 * @param cells Array of cells to be inserted.
    +	 * @return Returns the cells that were added.
    +	 */
    +	public Object[] addCells(Object[] cells)
    +	{
    +		return addCells(cells, null);
    +	}
    +
    +	/**
    +	 * Adds the cells to the parent. This is a shortcut method.
    +	 * 
    +	 * @param cells Array of cells to be inserted.
    +	 * @param parent Optional cell that represents the new parent. If no parent
    +	 * is specified then the default parent is used.
    +	 * @return Returns the cells that were added.
    +	 */
    +	public Object[] addCells(Object[] cells, Object parent)
    +	{
    +		return addCells(cells, parent, null);
    +	}
    +
    +	/**
    +	 * Adds the cells to the parent at the given index. This is a shortcut method.
    +	 * 
    +	 * @param cells Array of cells to be inserted.
    +	 * @param parent Optional cell that represents the new parent. If no parent
    +	 * is specified then the default parent is used.
    +	 * @param index Optional index to insert the cells at. Default is to append.
    +	 * @return Returns the cells that were added.
    +	 */
    +	public Object[] addCells(Object[] cells, Object parent, Integer index)
    +	{
    +		return addCells(cells, parent, index, null, null);
    +	}
    +
    +	/**
    +	 * Adds the cells to the parent at the given index, connecting each cell to
    +	 * the optional source and target terminal. The change is carried out using
    +	 * cellsAdded. This method fires mxEvent.ADD_CELLS while the transaction
    +	 * is in progress.
    +	 * 
    +	 * @param cells Array of cells to be added.
    +	 * @param parent Optional cell that represents the new parent. If no parent
    +	 * is specified then the default parent is used.
    +	 * @param index Optional index to insert the cells at. Default is to append.
    +	 * @param source Optional source terminal for all inserted cells.
    +	 * @param target Optional target terminal for all inserted cells.
    +	 * @return Returns the cells that were added.
    +	 */
    +	public Object[] addCells(Object[] cells, Object parent, Integer index,
    +			Object source, Object target)
    +	{
    +		if (parent == null)
    +		{
    +			parent = getDefaultParent();
    +		}
    +
    +		if (index == null)
    +		{
    +			index = model.getChildCount(parent);
    +		}
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			cellsAdded(cells, parent, index, source, target, false);
    +			fireEvent(new mxEventObject(mxEvent.ADD_CELLS, "cells", cells,
    +					"parent", parent, "index", index, "source", source,
    +					"target", target));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Adds the specified cells to the given parent. This method fires
    +	 * mxEvent.CELLS_ADDED while the transaction is in progress.
    +	 */
    +	public void cellsAdded(Object[] cells, Object parent, Integer index,
    +			Object source, Object target, boolean absolute)
    +	{
    +		if (cells != null && parent != null && index != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				mxCellState parentState = (absolute) ? view.getState(parent)
    +						: null;
    +				mxPoint o1 = (parentState != null) ? parentState.getOrigin()
    +						: null;
    +				mxPoint zero = new mxPoint(0, 0);
    +
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (cells[i] == null)
    +					{
    +						index--;
    +					}
    +					else
    +					{
    +						Object previous = model.getParent(cells[i]);
    +
    +						// Keeps the cell at its absolute location
    +						if (o1 != null && cells[i] != parent
    +								&& parent != previous)
    +						{
    +							mxCellState oldState = view.getState(previous);
    +							mxPoint o2 = (oldState != null) ? oldState
    +									.getOrigin() : zero;
    +							mxGeometry geo = model.getGeometry(cells[i]);
    +
    +							if (geo != null)
    +							{
    +								double dx = o2.getX() - o1.getX();
    +								double dy = o2.getY() - o1.getY();
    +
    +								geo = (mxGeometry) geo.clone();
    +								geo.translate(dx, dy);
    +
    +								if (!geo.isRelative()
    +										&& model.isVertex(cells[i])
    +										&& !isAllowNegativeCoordinates())
    +								{
    +									geo.setX(Math.max(0, geo.getX()));
    +									geo.setY(Math.max(0, geo.getY()));
    +								}
    +
    +								model.setGeometry(cells[i], geo);
    +							}
    +						}
    +
    +						// Decrements all following indices
    +						// if cell is already in parent
    +						if (parent == previous)
    +						{
    +							index--;
    +						}
    +
    +						model.add(parent, cells[i], index + i);
    +
    +						// Extends the parent
    +						if (isExtendParentsOnAdd() && isExtendParent(cells[i]))
    +						{
    +							extendParent(cells[i]);
    +						}
    +
    +						// Constrains the child
    +						constrainChild(cells[i]);
    +
    +						// Sets the source terminal
    +						if (source != null)
    +						{
    +							cellConnected(cells[i], source, true, null);
    +						}
    +
    +						// Sets the target terminal
    +						if (target != null)
    +						{
    +							cellConnected(cells[i], target, false, null);
    +						}
    +					}
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.CELLS_ADDED, "cells",
    +						cells, "parent", parent, "index", index, "source",
    +						source, "target", target, "absolute", absolute));
    +
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Removes the selection cells from the graph.
    +	 * 
    +	 * @return Returns the cells that have been removed.
    +	 */
    +	public Object[] removeCells()
    +	{
    +		return removeCells(null);
    +	}
    +
    +	/**
    +	 * Removes the given cells from the graph.
    +	 * 
    +	 * @param cells Array of cells to remove.
    +	 * @return Returns the cells that have been removed.
    +	 */
    +	public Object[] removeCells(Object[] cells)
    +	{
    +		return removeCells(cells, true);
    +	}
    +
    +	/**
    +	 * Removes the given cells from the graph including all connected edges if
    +	 * includeEdges is true. The change is carried out using cellsRemoved. This
    +	 * method fires mxEvent.REMOVE_CELLS while the transaction is in progress.
    +	 * 
    +	 * @param cells Array of cells to remove. If null is specified then the
    +	 * selection cells which are deletable are used.
    +	 * @param includeEdges Specifies if all connected edges should be removed as
    +	 * well.
    +	 */
    +	public Object[] removeCells(Object[] cells, boolean includeEdges)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getDeletableCells(getSelectionCells());
    +		}
    +
    +		// Adds all edges to the cells
    +		if (includeEdges)
    +		{
    +			cells = getDeletableCells(addAllEdges(cells));
    +		}
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			cellsRemoved(cells);
    +			fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS, "cells", cells,
    +					"includeEdges", includeEdges));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Removes the given cells from the model. This method fires
    +	 * mxEvent.CELLS_REMOVED while the transaction is in progress.
    +	 * 
    +	 * @param cells Array of cells to remove.
    +	 */
    +	public void cellsRemoved(Object[] cells)
    +	{
    +		if (cells != null && cells.length > 0)
    +		{
    +			double scale = view.getScale();
    +			mxPoint tr = view.getTranslate();
    +
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					// Disconnects edges which are not in cells
    +					Collection<Object> cellSet = new HashSet<Object>();
    +					cellSet.addAll(Arrays.asList(cells));
    +					Object[] edges = getConnections(cells[i]);
    +
    +					for (int j = 0; j < edges.length; j++)
    +					{
    +						if (!cellSet.contains(edges[j]))
    +						{
    +							mxGeometry geo = model.getGeometry(edges[j]);
    +
    +							if (geo != null)
    +							{
    +								mxCellState state = view.getState(edges[j]);
    +
    +								if (state != null)
    +								{
    +									geo = (mxGeometry) geo.clone();
    +									boolean source = state
    +											.getVisibleTerminal(true) == cells[i];
    +									int n = (source) ? 0 : state
    +											.getAbsolutePointCount() - 1;
    +									mxPoint pt = state.getAbsolutePoint(n);
    +
    +									geo.setTerminalPoint(new mxPoint(pt.getX()
    +											/ scale - tr.getX(), pt.getY()
    +											/ scale - tr.getY()), source);
    +									model.setTerminal(edges[j], null, source);
    +									model.setGeometry(edges[j], geo);
    +								}
    +							}
    +						}
    +					}
    +
    +					model.remove(cells[i]);
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED, "cells",
    +						cells));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object splitEdge(Object edge, Object[] cells)
    +	{
    +		return splitEdge(edge, cells, null, 0, 0);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public Object splitEdge(Object edge, Object[] cells, double dx, double dy)
    +	{
    +		return splitEdge(edge, cells, null, dx, dy);
    +	}
    +
    +	/**
    +	 * Splits the given edge by adding a newEdge between the previous source
    +	 * and the given cell and reconnecting the source of the given edge to the
    +	 * given cell. Fires mxEvent.SPLIT_EDGE while the transaction is in
    +	 * progress.
    +	 * 
    +	 * @param edge Object that represents the edge to be splitted.
    +	 * @param cells Array that contains the cells to insert into the edge.
    +	 * @param newEdge Object that represents the edge to be inserted.
    +	 * @return Returns the new edge that has been inserted.
    +	 */
    +	public Object splitEdge(Object edge, Object[] cells, Object newEdge,
    +			double dx, double dy)
    +	{
    +		if (newEdge == null)
    +		{
    +			newEdge = cloneCells(new Object[] { edge })[0];
    +		}
    +
    +		Object parent = model.getParent(edge);
    +		Object source = model.getTerminal(edge, true);
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			cellsMoved(cells, dx, dy, false, false);
    +			cellsAdded(cells, parent, model.getChildCount(parent), null, null,
    +					true);
    +			cellsAdded(new Object[] { newEdge }, parent,
    +					model.getChildCount(parent), source, cells[0], false);
    +			cellConnected(edge, cells[0], true, null);
    +			fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE, "edge", edge,
    +					"cells", cells, "newEdge", newEdge, "dx", dx, "dy", dy));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return newEdge;
    +	}
    +
    +	//
    +	// Cell visibility
    +	//
    +
    +	/**
    +	 * Sets the visible state of the selection cells. This is a shortcut
    +	 * method.
    +	 * 
    +	 * @param show Boolean that specifies the visible state to be assigned.
    +	 * @return Returns the cells whose visible state was changed.
    +	 */
    +	public Object[] toggleCells(boolean show)
    +	{
    +		return toggleCells(show, null);
    +	}
    +
    +	/**
    +	 * Sets the visible state of the specified cells. This is a shortcut
    +	 * method.
    +	 *
    +	 * @param show Boolean that specifies the visible state to be assigned.
    +	 * @param cells Array of cells whose visible state should be changed.
    +	 * @return Returns the cells whose visible state was changed.
    +	 */
    +	public Object[] toggleCells(boolean show, Object[] cells)
    +	{
    +		return toggleCells(show, cells, true);
    +	}
    +
    +	/**
    +	 * Sets the visible state of the specified cells and all connected edges
    +	 * if includeEdges is true. The change is carried out using cellsToggled.
    +	 * This method fires mxEvent.TOGGLE_CELLS while the transaction is in
    +	 * progress.
    +	 *
    +	 * @param show Boolean that specifies the visible state to be assigned.
    +	 * @param cells Array of cells whose visible state should be changed. If
    +	 * null is specified then the selection cells are used.
    +	 * @return Returns the cells whose visible state was changed.
    +	 */
    +	public Object[] toggleCells(boolean show, Object[] cells,
    +			boolean includeEdges)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getSelectionCells();
    +		}
    +
    +		// Adds all connected edges recursively
    +		if (includeEdges)
    +		{
    +			cells = addAllEdges(cells);
    +		}
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			cellsToggled(cells, show);
    +			fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS, "show", show,
    +					"cells", cells, "includeEdges", includeEdges));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Sets the visible state of the specified cells.
    +	 * 
    +	 * @param cells Array of cells whose visible state should be changed.
    +	 * @param show Boolean that specifies the visible state to be assigned.
    +	 */
    +	public void cellsToggled(Object[] cells, boolean show)
    +	{
    +		if (cells != null && cells.length > 0)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					model.setVisible(cells[i], show);
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	//
    +	// Folding
    +	//
    +
    +	/**
    +	 * Sets the collapsed state of the selection cells without recursion.
    +	 * This is a shortcut method.
    +	 * 
    +	 * @param collapse Boolean that specifies the collapsed state to be
    +	 * assigned.
    +	 * @return Returns the cells whose collapsed state was changed.
    +	 */
    +	public Object[] foldCells(boolean collapse)
    +	{
    +		return foldCells(collapse, false);
    +	}
    +
    +	/**
    +	 * Sets the collapsed state of the selection cells. This is a shortcut
    +	 * method.
    +	 * 
    +	 * @param collapse Boolean that specifies the collapsed state to be
    +	 * assigned.
    +	 * @param recurse Boolean that specifies if the collapsed state should
    +	 * be assigned to all descendants.
    +	 * @return Returns the cells whose collapsed state was changed.
    +	 */
    +	public Object[] foldCells(boolean collapse, boolean recurse)
    +	{
    +		return foldCells(collapse, recurse, null);
    +	}
    +
    +	/**
    +	 * Invokes foldCells with checkFoldable set to false.
    +	 */
    +	public Object[] foldCells(boolean collapse, boolean recurse, Object[] cells)
    +	{
    +		return foldCells(collapse, recurse, cells, false);
    +	}
    +
    +	/**
    +	 * Sets the collapsed state of the specified cells and all descendants
    +	 * if recurse is true. The change is carried out using cellsFolded.
    +	 * This method fires mxEvent.FOLD_CELLS while the transaction is in
    +	 * progress. Returns the cells whose collapsed state was changed.
    +	 * 
    +	 * @param collapse Boolean indicating the collapsed state to be assigned.
    +	 * @param recurse Boolean indicating if the collapsed state of all
    +	 * descendants should be set.
    +	 * @param cells Array of cells whose collapsed state should be set. If
    +	 * null is specified then the foldable selection cells are used.
    +	 * @param checkFoldable Boolean indicating of isCellFoldable should be
    +	 * checked. Default is false.
    +	 */
    +	public Object[] foldCells(boolean collapse, boolean recurse,
    +			Object[] cells, boolean checkFoldable)
    +	{
    +		if (cells == null)
    +		{
    +			cells = getFoldableCells(getSelectionCells(), collapse);
    +		}
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			cellsFolded(cells, collapse, recurse, checkFoldable);
    +			fireEvent(new mxEventObject(mxEvent.FOLD_CELLS, "cells", cells,
    +					"collapse", collapse, "recurse", recurse));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Invokes cellsFoldable with checkFoldable set to false.
    +	 */
    +	public void cellsFolded(Object[] cells, boolean collapse, boolean recurse)
    +	{
    +		cellsFolded(cells, collapse, recurse, false);
    +	}
    +
    +	/**
    +	 * Sets the collapsed state of the specified cells. This method fires
    +	 * mxEvent.CELLS_FOLDED while the transaction is in progress. Returns the
    +	 * cells whose collapsed state was changed.
    +	 * 
    +	 * @param cells Array of cells whose collapsed state should be set.
    +	 * @param collapse Boolean indicating the collapsed state to be assigned.
    +	 * @param recurse Boolean indicating if the collapsed state of all
    +	 * descendants should be set.
    +	 * @param checkFoldable Boolean indicating of isCellFoldable should be
    +	 * checked. Default is false.
    +	 */
    +	public void cellsFolded(Object[] cells, boolean collapse, boolean recurse,
    +			boolean checkFoldable)
    +	{
    +		if (cells != null && cells.length > 0)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if ((!checkFoldable || isCellFoldable(cells[i], collapse))
    +							&& collapse != isCellCollapsed(cells[i]))
    +					{
    +						model.setCollapsed(cells[i], collapse);
    +						swapBounds(cells[i], collapse);
    +
    +						if (isExtendParent(cells[i]))
    +						{
    +							extendParent(cells[i]);
    +						}
    +
    +						if (recurse)
    +						{
    +							Object[] children = mxGraphModel.getChildren(model,
    +									cells[i]);
    +							cellsFolded(children, collapse, recurse);
    +						}
    +					}
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED, "cells",
    +						cells, "collapse", collapse, "recurse", recurse));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Swaps the alternate and the actual bounds in the geometry of the given
    +	 * cell invoking updateAlternateBounds before carrying out the swap.
    +	 * 
    +	 * @param cell Cell for which the bounds should be swapped.
    +	 * @param willCollapse Boolean indicating if the cell is going to be collapsed.
    +	 */
    +	public void swapBounds(Object cell, boolean willCollapse)
    +	{
    +		if (cell != null)
    +		{
    +			mxGeometry geo = model.getGeometry(cell);
    +
    +			if (geo != null)
    +			{
    +				geo = (mxGeometry) geo.clone();
    +
    +				updateAlternateBounds(cell, geo, willCollapse);
    +				geo.swap();
    +
    +				model.setGeometry(cell, geo);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Updates or sets the alternate bounds in the given geometry for the given
    +	 * cell depending on whether the cell is going to be collapsed. If no
    +	 * alternate bounds are defined in the geometry and
    +	 * collapseToPreferredSize is true, then the preferred size is used for
    +	 * the alternate bounds. The top, left corner is always kept at the same
    +	 * location.
    +	 * 
    +	 * @param cell Cell for which the geometry is being udpated.
    +	 * @param geo Geometry for which the alternate bounds should be updated.
    +	 * @param willCollapse Boolean indicating if the cell is going to be collapsed.
    +	 */
    +	public void updateAlternateBounds(Object cell, mxGeometry geo,
    +			boolean willCollapse)
    +	{
    +		if (cell != null && geo != null)
    +		{
    +			if (geo.getAlternateBounds() == null)
    +			{
    +				mxRectangle bounds = null;
    +
    +				if (isCollapseToPreferredSize())
    +				{
    +					bounds = getPreferredSizeForCell(cell);
    +
    +					if (isSwimlane(cell))
    +					{
    +						mxRectangle size = getStartSize(cell);
    +
    +						bounds.setHeight(Math.max(bounds.getHeight(),
    +								size.getHeight()));
    +						bounds.setWidth(Math.max(bounds.getWidth(),
    +								size.getWidth()));
    +					}
    +				}
    +
    +				if (bounds == null)
    +				{
    +					bounds = geo;
    +				}
    +
    +				geo.setAlternateBounds(new mxRectangle(geo.getX(), geo.getY(),
    +						bounds.getWidth(), bounds.getHeight()));
    +			}
    +			else
    +			{
    +				geo.getAlternateBounds().setX(geo.getX());
    +				geo.getAlternateBounds().setY(geo.getY());
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns an array with the given cells and all edges that are connected
    +	 * to a cell or one of its descendants.
    +	 */
    +	public Object[] addAllEdges(Object[] cells)
    +	{
    +		List<Object> allCells = new ArrayList<Object>(cells.length);
    +		allCells.addAll(Arrays.asList(cells));
    +		allCells.addAll(Arrays.asList(getAllEdges(cells)));
    +
    +		return allCells.toArray();
    +	}
    +
    +	/**
    +	 * Returns all edges connected to the given cells or their descendants.
    +	 */
    +	public Object[] getAllEdges(Object[] cells)
    +	{
    +		List<Object> edges = new ArrayList<Object>();
    +
    +		if (cells != null)
    +		{
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				int edgeCount = model.getEdgeCount(cells[i]);
    +
    +				for (int j = 0; j < edgeCount; j++)
    +				{
    +					edges.add(model.getEdgeAt(cells[i], j));
    +				}
    +
    +				// Recurses
    +				Object[] children = mxGraphModel.getChildren(model, cells[i]);
    +				edges.addAll(Arrays.asList(getAllEdges(children)));
    +			}
    +		}
    +
    +		return edges.toArray();
    +	}
    +
    +	//
    +	// Cell sizing
    +	//
    +
    +	/**
    +	 * Updates the size of the given cell in the model using
    +	 * getPreferredSizeForCell to get the new size. This function
    +	 * fires beforeUpdateSize and afterUpdateSize events.
    +	 * 
    +	 * @param cell <mxCell> for which the size should be changed.
    +	 */
    +	public Object updateCellSize(Object cell)
    +	{
    +		return updateCellSize(cell, false);
    +	}
    +
    +	/**
    +	 * Updates the size of the given cell in the model using
    +	 * getPreferredSizeForCell to get the new size. This function
    +	 * fires mxEvent.UPDATE_CELL_SIZE.
    +	 * 
    +	 * @param cell Cell for which the size should be changed.
    +	 */
    +	public Object updateCellSize(Object cell, boolean ignoreChildren)
    +	{
    +		model.beginUpdate();
    +		try
    +		{
    +			cellSizeUpdated(cell, ignoreChildren);
    +			fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE, "cell", cell,
    +					"ignoreChildren", ignoreChildren));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cell;
    +	}
    +
    +	/**
    +	 * Updates the size of the given cell in the model using
    +	 * getPreferredSizeForCell to get the new size.
    +	 * 
    +	 * @param cell Cell for which the size should be changed.
    +	 */
    +	public void cellSizeUpdated(Object cell, boolean ignoreChildren)
    +	{
    +		if (cell != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				mxRectangle size = getPreferredSizeForCell(cell);
    +				mxGeometry geo = model.getGeometry(cell);
    +
    +				if (size != null && geo != null)
    +				{
    +					boolean collapsed = isCellCollapsed(cell);
    +					geo = (mxGeometry) geo.clone();
    +
    +					if (isSwimlane(cell))
    +					{
    +						mxCellState state = view.getState(cell);
    +						Map<String, Object> style = (state != null) ? state
    +								.getStyle() : getCellStyle(cell);
    +						String cellStyle = model.getStyle(cell);
    +
    +						if (cellStyle == null)
    +						{
    +							cellStyle = "";
    +						}
    +
    +						if (mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL,
    +								true))
    +						{
    +							cellStyle = mxStyleUtils.setStyle(cellStyle,
    +									mxConstants.STYLE_STARTSIZE,
    +									String.valueOf(size.getHeight() + 8));
    +
    +							if (collapsed)
    +							{
    +								geo.setHeight(size.getHeight() + 8);
    +							}
    +
    +							geo.setWidth(size.getWidth());
    +						}
    +						else
    +						{
    +							cellStyle = mxStyleUtils.setStyle(cellStyle,
    +									mxConstants.STYLE_STARTSIZE,
    +									String.valueOf(size.getWidth() + 8));
    +
    +							if (collapsed)
    +							{
    +								geo.setWidth(size.getWidth() + 8);
    +							}
    +
    +							geo.setHeight(size.getHeight());
    +						}
    +
    +						model.setStyle(cell, cellStyle);
    +					}
    +					else
    +					{
    +						geo.setWidth(size.getWidth());
    +						geo.setHeight(size.getHeight());
    +					}
    +
    +					if (!ignoreChildren && !collapsed)
    +					{
    +						mxRectangle bounds = view.getBounds(mxGraphModel
    +								.getChildren(model, cell));
    +
    +						if (bounds != null)
    +						{
    +							mxPoint tr = view.getTranslate();
    +							double scale = view.getScale();
    +
    +							double width = (bounds.getX() + bounds.getWidth())
    +									/ scale - geo.getX() - tr.getX();
    +							double height = (bounds.getY() + bounds.getHeight())
    +									/ scale - geo.getY() - tr.getY();
    +
    +							geo.setWidth(Math.max(geo.getWidth(), width));
    +							geo.setHeight(Math.max(geo.getHeight(), height));
    +						}
    +					}
    +
    +					cellsResized(new Object[] { cell },
    +							new mxRectangle[] { geo });
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the preferred width and height of the given <mxCell> as an
    +	 * <mxRectangle>.
    +	 * 
    +	 * @param cell <mxCell> for which the preferred size should be returned.
    +	 */
    +	public mxRectangle getPreferredSizeForCell(Object cell)
    +	{
    +		mxRectangle result = null;
    +
    +		if (cell != null)
    +		{
    +			mxCellState state = view.getState(cell);
    +			Map<String, Object> style = (state != null) ? state.style
    +					: getCellStyle(cell);
    +
    +			if (style != null && !model.isEdge(cell))
    +			{
    +				double dx = 0;
    +				double dy = 0;
    +
    +				// Adds dimension of image if shape is a label
    +				if (getImage(state) != null
    +						|| mxUtils.getString(style, mxConstants.STYLE_IMAGE) != null)
    +				{
    +					if (mxUtils.getString(style, mxConstants.STYLE_SHAPE, "")
    +							.equals(mxConstants.SHAPE_LABEL))
    +					{
    +						if (mxUtils.getString(style,
    +								mxConstants.STYLE_VERTICAL_ALIGN, "").equals(
    +								mxConstants.ALIGN_MIDDLE))
    +						{
    +							dx += mxUtils.getDouble(style,
    +									mxConstants.STYLE_IMAGE_WIDTH,
    +									mxConstants.DEFAULT_IMAGESIZE);
    +						}
    +
    +						if (mxUtils.getString(style, mxConstants.STYLE_ALIGN,
    +								"").equals(mxConstants.ALIGN_CENTER))
    +						{
    +							dy += mxUtils.getDouble(style,
    +									mxConstants.STYLE_IMAGE_HEIGHT,
    +									mxConstants.DEFAULT_IMAGESIZE);
    +						}
    +					}
    +				}
    +
    +				// Adds spacings
    +				double spacing = mxUtils.getDouble(style,
    +						mxConstants.STYLE_SPACING);
    +				dx += 2 * spacing;
    +				dx += mxUtils.getDouble(style, mxConstants.STYLE_SPACING_LEFT);
    +				dx += mxUtils.getDouble(style, mxConstants.STYLE_SPACING_RIGHT);
    +
    +				dy += 2 * spacing;
    +				dy += mxUtils.getDouble(style, mxConstants.STYLE_SPACING_TOP);
    +				dy += mxUtils
    +						.getDouble(style, mxConstants.STYLE_SPACING_BOTTOM);
    +
    +				// LATER: Add space for collapse/expand icon if applicable
    +
    +				// Adds space for label
    +				String value = getLabel(cell);
    +
    +				if (value != null && value.length() > 0)
    +				{
    +					mxRectangle size = mxUtils.getLabelSize(value, style,
    +							isHtmlLabel(cell), 1);
    +					double width = size.getWidth() + dx;
    +					double height = size.getHeight() + dy;
    +
    +					if (!mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL,
    +							true))
    +					{
    +						double tmp = height;
    +
    +						height = width;
    +						width = tmp;
    +					}
    +
    +					if (gridEnabled)
    +					{
    +						width = snap(width + gridSize / 2);
    +						height = snap(height + gridSize / 2);
    +					}
    +
    +					result = new mxRectangle(0, 0, width, height);
    +				}
    +				else
    +				{
    +					double gs2 = 4 * gridSize;
    +					result = new mxRectangle(0, 0, gs2, gs2);
    +				}
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Sets the bounds of the given cell using resizeCells. Returns the
    +	 * cell which was passed to the function.
    +	 * 
    +	 * @param cell <mxCell> whose bounds should be changed.
    +	 * @param bounds <mxRectangle> that represents the new bounds.
    +	 */
    +	public Object resizeCell(Object cell, mxRectangle bounds)
    +	{
    +		return resizeCells(new Object[] { cell }, new mxRectangle[] { bounds })[0];
    +	}
    +
    +	/**
    +	 * Sets the bounds of the given cells and fires a mxEvent.RESIZE_CELLS
    +	 * event. while the transaction is in progress. Returns the cells which
    +	 * have been passed to the function.
    +	 * 
    +	 * @param cells Array of cells whose bounds should be changed.
    +	 * @param bounds Array of rectangles that represents the new bounds.
    +	 */
    +	public Object[] resizeCells(Object[] cells, mxRectangle[] bounds)
    +	{
    +		model.beginUpdate();
    +		try
    +		{
    +			cellsResized(cells, bounds);
    +			fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS, "cells", cells,
    +					"bounds", bounds));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Sets the bounds of the given cells and fires a <mxEvent.CELLS_RESIZED>
    +	 * event. If extendParents is true, then the parent is extended if a child
    +	 * size is changed so that it overlaps with the parent.
    +	 * 
    +	 * @param cells Array of <mxCells> whose bounds should be changed.
    +	 * @param bounds Array of <mxRectangles> that represents the new bounds.
    +	 */
    +	public void cellsResized(Object[] cells, mxRectangle[] bounds)
    +	{
    +		if (cells != null && bounds != null && cells.length == bounds.length)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					mxRectangle tmp = bounds[i];
    +					mxGeometry geo = model.getGeometry(cells[i]);
    +
    +					if (geo != null
    +							&& (geo.getX() != tmp.getX()
    +									|| geo.getY() != tmp.getY()
    +									|| geo.getWidth() != tmp.getWidth() || geo
    +									.getHeight() != tmp.getHeight()))
    +					{
    +						geo = (mxGeometry) geo.clone();
    +
    +						if (geo.isRelative())
    +						{
    +							mxPoint offset = geo.getOffset();
    +
    +							if (offset != null)
    +							{
    +								offset.setX(offset.getX() + tmp.getX());
    +								offset.setY(offset.getY() + tmp.getY());
    +							}
    +						}
    +						else
    +						{
    +							geo.setX(tmp.getX());
    +							geo.setY(tmp.getY());
    +						}
    +
    +						geo.setWidth(tmp.getWidth());
    +						geo.setHeight(tmp.getHeight());
    +
    +						if (!geo.isRelative() && model.isVertex(cells[i])
    +								&& !isAllowNegativeCoordinates())
    +						{
    +							geo.setX(Math.max(0, geo.getX()));
    +							geo.setY(Math.max(0, geo.getY()));
    +						}
    +
    +						model.setGeometry(cells[i], geo);
    +
    +						if (isExtendParent(cells[i]))
    +						{
    +							extendParent(cells[i]);
    +						}
    +					}
    +				}
    +
    +				if (isResetEdgesOnResize())
    +				{
    +					resetEdges(cells);
    +				}
    +
    +				// RENAME BOUNDSARRAY TO BOUNDS
    +				fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED, "cells",
    +						cells, "bounds", bounds));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Resizes the parents recursively so that they contain the complete area
    +	 * of the resized child cell.
    +	 * 
    +	 * @param cell <mxCell> that has been resized.
    +	 */
    +	public void extendParent(Object cell)
    +	{
    +		if (cell != null)
    +		{
    +			Object parent = model.getParent(cell);
    +			mxGeometry p = model.getGeometry(parent);
    +
    +			if (parent != null && p != null && !isCellCollapsed(parent))
    +			{
    +				mxGeometry geo = model.getGeometry(cell);
    +
    +				if (geo != null
    +						&& (p.getWidth() < geo.getX() + geo.getWidth() || p
    +								.getHeight() < geo.getY() + geo.getHeight()))
    +				{
    +					p = (mxGeometry) p.clone();
    +
    +					p.setWidth(Math.max(p.getWidth(),
    +							geo.getX() + geo.getWidth()));
    +					p.setHeight(Math.max(p.getHeight(),
    +							geo.getY() + geo.getHeight()));
    +
    +					cellsResized(new Object[] { parent },
    +							new mxRectangle[] { p });
    +				}
    +			}
    +		}
    +	}
    +
    +	//
    +	// Cell moving
    +	//
    +
    +	/**
    +	 * Moves the cells by the given amount. This is a shortcut method.
    +	 */
    +	public Object[] moveCells(Object[] cells, double dx, double dy)
    +	{
    +		return moveCells(cells, dx, dy, false);
    +	}
    +
    +	/**
    +	 * Moves or clones the cells and moves the cells or clones by the given
    +	 * amount. This is a shortcut method.
    +	 */
    +	public Object[] moveCells(Object[] cells, double dx, double dy,
    +			boolean clone)
    +	{
    +		return moveCells(cells, dx, dy, clone, null, null);
    +	}
    +
    +	/**
    +	 * Moves or clones the specified cells and moves the cells or clones by the
    +	 * given amount, adding them to the optional target cell. The location is
    +	 * the position of the mouse pointer as the mouse was released. The change
    +	 * is carried out using cellsMoved. This method fires mxEvent.MOVE_CELLS
    +	 * while the transaction is in progress.
    +	 * 
    +	 * @param cells Array of cells to be moved, cloned or added to the target.
    +	 * @param dx Integer that specifies the x-coordinate of the vector.
    +	 * @param dy Integer that specifies the y-coordinate of the vector.
    +	 * @param clone Boolean indicating if the cells should be cloned.
    +	 * @param target Cell that represents the new parent of the cells.
    +	 * @param location Location where the mouse was released.
    +	 * @return Returns the cells that were moved.
    +	 */
    +	public Object[] moveCells(Object[] cells, double dx, double dy,
    +			boolean clone, Object target, Point location)
    +	{
    +		if (cells != null && (dx != 0 || dy != 0 || clone || target != null))
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				if (clone)
    +				{
    +					cells = cloneCells(cells, isCloneInvalidEdges());
    +
    +					if (target == null)
    +					{
    +						target = getDefaultParent();
    +					}
    +				}
    +
    +				// Need to disable allowNegativeCoordinates if target not null to
    +				// allow for temporary negative numbers until cellsAdded is called.
    +				boolean previous = isAllowNegativeCoordinates();
    +				
    +				if (target != null)
    +				{
    +					setAllowNegativeCoordinates(true);
    +				}
    +				
    +				cellsMoved(cells, dx, dy, !clone && isDisconnectOnMove()
    +						&& isAllowDanglingEdges(), target == null);
    +				
    +				setAllowNegativeCoordinates(previous);
    +
    +				if (target != null)
    +				{
    +					Integer index = model.getChildCount(target);
    +					cellsAdded(cells, target, index, null, null, true);
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.MOVE_CELLS, "cells", cells,
    +						"dx", dx, "dy", dy, "clone", clone, "target", target,
    +						"location", location));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +
    +		return cells;
    +	}
    +
    +	/**
    +	 * Moves the specified cells by the given vector, disconnecting the cells
    +	 * using disconnectGraph if disconnect is true. This method fires
    +	 * mxEvent.CELLS_MOVED while the transaction is in progress.
    +	 */
    +	public void cellsMoved(Object[] cells, double dx, double dy,
    +			boolean disconnect, boolean constrain)
    +	{
    +		if (cells != null && (dx != 0 || dy != 0))
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				if (disconnect)
    +				{
    +					disconnectGraph(cells);
    +				}
    +
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					translateCell(cells[i], dx, dy);
    +
    +					if (constrain)
    +					{
    +						constrainChild(cells[i]);
    +					}
    +				}
    +
    +				if (isResetEdgesOnMove())
    +				{
    +					resetEdges(cells);
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.CELLS_MOVED, "cells",
    +						cells, "dx", dx, "dy", dy, "disconnect", disconnect));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Translates the geometry of the given cell and stores the new,
    +	 * translated geometry in the model as an atomic change.
    +	 */
    +	public void translateCell(Object cell, double dx, double dy)
    +	{
    +		mxGeometry geo = model.getGeometry(cell);
    +
    +		if (geo != null)
    +		{
    +			geo = (mxGeometry) geo.clone();
    +			geo.translate(dx, dy);
    +
    +			if (!geo.isRelative() && model.isVertex(cell)
    +					&& !isAllowNegativeCoordinates())
    +			{
    +				geo.setX(Math.max(0, geo.getX()));
    +				geo.setY(Math.max(0, geo.getY()));
    +			}
    +
    +			if (geo.isRelative() && !model.isEdge(cell))
    +			{
    +				if (geo.getOffset() == null)
    +				{
    +					geo.setOffset(new mxPoint(dx, dy));
    +				}
    +				else
    +				{
    +					mxPoint offset = geo.getOffset();
    +
    +					offset.setX(offset.getX() + dx);
    +					offset.setY(offset.getY() + dy);
    +				}
    +			}
    +
    +			model.setGeometry(cell, geo);
    +		}
    +	}
    +
    +	/**
    +	 * Returns the mxRectangle inside which a cell is to be kept.
    +	 */
    +	public mxRectangle getCellContainmentArea(Object cell)
    +	{
    +		if (cell != null && !model.isEdge(cell))
    +		{
    +			Object parent = model.getParent(cell);
    +
    +			if (parent == getDefaultParent() || parent == getCurrentRoot())
    +			{
    +				return getMaximumGraphBounds();
    +			}
    +			else if (parent != null && parent != getDefaultParent())
    +			{
    +				mxGeometry g = model.getGeometry(parent);
    +
    +				if (g != null)
    +				{
    +					double x = 0;
    +					double y = 0;
    +					double w = g.getWidth();
    +					double h = g.getHeight();
    +
    +					if (isSwimlane(parent))
    +					{
    +						mxRectangle size = getStartSize(parent);
    +
    +						x = size.getWidth();
    +						w -= size.getWidth();
    +						y = size.getHeight();
    +						h -= size.getHeight();
    +					}
    +
    +					return new mxRectangle(x, y, w, h);
    +				}
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * @return the maximumGraphBounds
    +	 */
    +	public mxRectangle getMaximumGraphBounds()
    +	{
    +		return maximumGraphBounds;
    +	}
    +
    +	/**
    +	 * @param value the maximumGraphBounds to set
    +	 */
    +	public void setMaximumGraphBounds(mxRectangle value)
    +	{
    +		mxRectangle oldValue = maximumGraphBounds;
    +		maximumGraphBounds = value;
    +
    +		changeSupport.firePropertyChange("maximumGraphBounds", oldValue,
    +				maximumGraphBounds);
    +	}
    +
    +	/**
    +	 * Keeps the given cell inside the bounds returned by
    +	 * getCellContainmentArea for its parent, according to the rules defined by
    +	 * getOverlap and isConstrainChild. This modifies the cell's geometry
    +	 * in-place and does not clone it.
    +	 * 
    +	 * @param cell Cell which should be constrained.
    +	 */
    +	public void constrainChild(Object cell)
    +	{
    +		if (cell != null)
    +		{
    +			mxGeometry geo = model.getGeometry(cell);
    +			mxRectangle area = (isConstrainChild(cell)) ? getCellContainmentArea(cell)
    +					: getMaximumGraphBounds();
    +
    +			if (geo != null && area != null)
    +			{
    +				// Keeps child within the content area of the parent
    +				if (!geo.isRelative()
    +						&& (geo.getX() < area.getX()
    +								|| geo.getY() < area.getY()
    +								|| area.getWidth() < geo.getX()
    +										+ geo.getWidth() || area.getHeight() < geo
    +								.getY() + geo.getHeight()))
    +				{
    +					double overlap = getOverlap(cell);
    +
    +					if (area.getWidth() > 0)
    +					{
    +						geo.setX(Math.min(geo.getX(),
    +								area.getX() + area.getWidth() - (1 - overlap)
    +										* geo.getWidth()));
    +					}
    +
    +					if (area.getHeight() > 0)
    +					{
    +						geo.setY(Math.min(geo.getY(),
    +								area.getY() + area.getHeight() - (1 - overlap)
    +										* geo.getHeight()));
    +					}
    +
    +					geo.setX(Math.max(geo.getX(), area.getX() - geo.getWidth()
    +							* overlap));
    +					geo.setY(Math.max(geo.getY(), area.getY() - geo.getHeight()
    +							* overlap));
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Resets the control points of the edges that are connected to the given
    +	 * cells if not both ends of the edge are in the given cells array.
    +	 * 
    +	 * @param cells Array of mxCells for which the connected edges should be
    +	 * reset.
    +	 */
    +	public void resetEdges(Object[] cells)
    +	{
    +		if (cells != null)
    +		{
    +			// Prepares a hashtable for faster cell lookups
    +			HashSet<Object> set = new HashSet<Object>(Arrays.asList(cells));
    +
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					Object[] edges = mxGraphModel.getEdges(model, cells[i]);
    +
    +					if (edges != null)
    +					{
    +						for (int j = 0; j < edges.length; j++)
    +						{
    +							mxCellState state = view.getState(edges[j]);
    +							Object source = (state != null) ? state
    +									.getVisibleTerminal(true) : view
    +									.getVisibleTerminal(edges[j], true);
    +							Object target = (state != null) ? state
    +									.getVisibleTerminal(false) : view
    +									.getVisibleTerminal(edges[j], false);
    +
    +							// Checks if one of the terminals is not in the given array
    +							if (!set.contains(source) || !set.contains(target))
    +							{
    +								resetEdge(edges[j]);
    +							}
    +						}
    +					}
    +
    +					resetEdges(mxGraphModel.getChildren(model, cells[i]));
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Resets the control points of the given edge.
    +	 */
    +	public Object resetEdge(Object edge)
    +	{
    +		mxGeometry geo = model.getGeometry(edge);
    +
    +		if (geo != null)
    +		{
    +			// Resets the control points
    +			List<mxPoint> points = geo.getPoints();
    +
    +			if (points != null && !points.isEmpty())
    +			{
    +				geo = (mxGeometry) geo.clone();
    +				geo.setPoints(null);
    +				model.setGeometry(edge, geo);
    +			}
    +		}
    +
    +		return edge;
    +	}
    +
    +	//
    +	// Cell connecting and connection constraints
    +	//
    +
    +	/**
    +	 * Returns an array of all constraints for the given terminal.
    +	 * 
    +	 * @param terminal Cell state that represents the terminal.
    +	 * @param source Specifies if the terminal is the source or target.
    +	 */
    +	public mxConnectionConstraint[] getAllConnectionConstraints(
    +			mxCellState terminal, boolean source)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns an connection constraint that describes the given connection
    +	 * point. This result can then be passed to getConnectionPoint.
    +	 * 
    +	 * @param edge Cell state that represents the edge.
    +	 * @param terminal Cell state that represents the terminal.
    +	 * @param source Boolean indicating if the terminal is the source or target.
    +	 */
    +	public mxConnectionConstraint getConnectionConstraint(mxCellState edge,
    +			mxCellState terminal, boolean source)
    +	{
    +		mxPoint point = null;
    +		Object x = edge.getStyle()
    +				.get((source) ? mxConstants.STYLE_EXIT_X
    +						: mxConstants.STYLE_ENTRY_X);
    +
    +		if (x != null)
    +		{
    +			Object y = edge.getStyle().get(
    +					(source) ? mxConstants.STYLE_EXIT_Y
    +							: mxConstants.STYLE_ENTRY_Y);
    +
    +			if (y != null)
    +			{
    +				point = new mxPoint(Double.parseDouble(x.toString()),
    +						Double.parseDouble(y.toString()));
    +			}
    +		}
    +
    +		boolean perimeter = false;
    +
    +		if (point != null)
    +		{
    +			perimeter = mxUtils.isTrue(edge.style,
    +					(source) ? mxConstants.STYLE_EXIT_PERIMETER
    +							: mxConstants.STYLE_ENTRY_PERIMETER, true);
    +		}
    +
    +		return new mxConnectionConstraint(point, perimeter);
    +	}
    +
    +	/**
    +	 * Sets the connection constraint that describes the given connection point.
    +	 * If no constraint is given then nothing is changed. To remove an existing
    +	 * constraint from the given edge, use an empty constraint instead.
    +	 * 
    +	 * @param edge Cell that represents the edge.
    +	 * @param terminal Cell that represents the terminal.
    +	 * @param source Boolean indicating if the terminal is the source or target.
    +	 * @param constraint Optional connection constraint to be used for this connection.
    +	 */
    +	public void setConnectionConstraint(Object edge, Object terminal,
    +			boolean source, mxConnectionConstraint constraint)
    +	{
    +		if (constraint != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				Object[] cells = new Object[] { edge };
    +
    +				// FIXME, constraint can't be null, we've checked that above
    +				if (constraint == null || constraint.point == null)
    +				{
    +					setCellStyles((source) ? mxConstants.STYLE_EXIT_X
    +							: mxConstants.STYLE_ENTRY_X, null, cells);
    +					setCellStyles((source) ? mxConstants.STYLE_EXIT_Y
    +							: mxConstants.STYLE_ENTRY_Y, null, cells);
    +					setCellStyles((source) ? mxConstants.STYLE_EXIT_PERIMETER
    +							: mxConstants.STYLE_ENTRY_PERIMETER, null, cells);
    +				}
    +				else if (constraint.point != null)
    +				{
    +					setCellStyles((source) ? mxConstants.STYLE_EXIT_X
    +							: mxConstants.STYLE_ENTRY_X,
    +							String.valueOf(constraint.point.getX()), cells);
    +					setCellStyles((source) ? mxConstants.STYLE_EXIT_Y
    +							: mxConstants.STYLE_ENTRY_Y,
    +							String.valueOf(constraint.point.getY()), cells);
    +
    +					// Only writes 0 since 1 is default
    +					if (!constraint.perimeter)
    +					{
    +						setCellStyles(
    +								(source) ? mxConstants.STYLE_EXIT_PERIMETER
    +										: mxConstants.STYLE_ENTRY_PERIMETER,
    +								"0", cells);
    +					}
    +					else
    +					{
    +						setCellStyles(
    +								(source) ? mxConstants.STYLE_EXIT_PERIMETER
    +										: mxConstants.STYLE_ENTRY_PERIMETER,
    +								null, cells);
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Sets the connection constraint that describes the given connection point.
    +	 * If no constraint is given then nothing is changed. To remove an existing
    +	 * constraint from the given edge, use an empty constraint instead.
    +	 * 
    +	 * @param vertex Cell state that represents the vertex.
    +	 * @param constraint Connection constraint that represents the connection point
    +	 * constraint as returned by getConnectionConstraint.
    +	 */
    +	public mxPoint getConnectionPoint(mxCellState vertex,
    +			mxConnectionConstraint constraint)
    +	{
    +		mxPoint point = null;
    +
    +		if (vertex != null && constraint.point != null)
    +		{
    +			point = new mxPoint(vertex.getX() + constraint.getPoint().getX()
    +					* vertex.getWidth(), vertex.getY()
    +					+ constraint.getPoint().getY() * vertex.getHeight());
    +		}
    +
    +		if (point != null && constraint.perimeter)
    +		{
    +			point = view.getPerimeterPoint(vertex, point, false);
    +		}
    +
    +		return point;
    +	}
    +
    +	/**
    +	 * Connects the specified end of the given edge to the given terminal
    +	 * using cellConnected and fires mxEvent.CONNECT_CELL while the transaction
    +	 * is in progress.
    +	 */
    +	public Object connectCell(Object edge, Object terminal, boolean source)
    +	{
    +		return connectCell(edge, terminal, source, null);
    +	}
    +
    +	/**
    +	 * Connects the specified end of the given edge to the given terminal
    +	 * using cellConnected and fires mxEvent.CONNECT_CELL while the transaction
    +	 * is in progress.
    +	 * 
    +	 * @param edge Edge whose terminal should be updated.
    +	 * @param terminal New terminal to be used.
    +	 * @param source Specifies if the new terminal is the source or target.
    +	 * @param constraint Optional constraint to be used for this connection.
    +	 * @return Returns the update edge.
    +	 */
    +	public Object connectCell(Object edge, Object terminal, boolean source,
    +			mxConnectionConstraint constraint)
    +	{
    +		model.beginUpdate();
    +		try
    +		{
    +			Object previous = model.getTerminal(edge, source);
    +			cellConnected(edge, terminal, source, constraint);
    +			fireEvent(new mxEventObject(mxEvent.CONNECT_CELL, "edge", edge,
    +					"terminal", terminal, "source", source, "previous",
    +					previous));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +
    +		return edge;
    +	}
    +
    +	/**
    +	 * Sets the new terminal for the given edge and resets the edge points if
    +	 * isResetEdgesOnConnect returns true. This method fires
    +	 * <mxEvent.CELL_CONNECTED> while the transaction is in progress.
    +	 * 
    +	 * @param edge Edge whose terminal should be updated.
    +	 * @param terminal New terminal to be used.
    +	 * @param source Specifies if the new terminal is the source or target.
    +	 * @param constraint Constraint to be used for this connection.
    +	 */
    +	public void cellConnected(Object edge, Object terminal, boolean source,
    +			mxConnectionConstraint constraint)
    +	{
    +		if (edge != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				Object previous = model.getTerminal(edge, source);
    +
    +				// Updates the constraint
    +				setConnectionConstraint(edge, terminal, source, constraint);
    +
    +				// Checks if the new terminal is a port
    +				String id = null;
    +
    +				if (isPort(terminal) && terminal instanceof mxICell)
    +				{
    +					id = ((mxICell) terminal).getId();
    +					terminal = getTerminalForPort(terminal, source);
    +				}
    +
    +				// Sets or resets all previous information for connecting to a child port
    +				String key = (source) ? mxConstants.STYLE_SOURCE_PORT
    +						: mxConstants.STYLE_TARGET_PORT;
    +				setCellStyles(key, id, new Object[] { edge });
    +				model.setTerminal(edge, terminal, source);
    +
    +				if (isResetEdgesOnConnect())
    +				{
    +					resetEdge(edge);
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED, "edge",
    +						edge, "terminal", terminal, "source", source,
    +						"previous", previous));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Disconnects the given edges from the terminals which are not in the
    +	 * given array.
    +	 * 
    +	 * @param cells Array of <mxCells> to be disconnected.
    +	 */
    +	public void disconnectGraph(Object[] cells)
    +	{
    +		if (cells != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				double scale = view.getScale();
    +				mxPoint tr = view.getTranslate();
    +
    +				// Prepares a hashtable for faster cell lookups
    +				Set<Object> hash = new HashSet<Object>();
    +
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					hash.add(cells[i]);
    +				}
    +
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (model.isEdge(cells[i]))
    +					{
    +						mxGeometry geo = model.getGeometry(cells[i]);
    +
    +						if (geo != null)
    +						{
    +							mxCellState state = view.getState(cells[i]);
    +							mxCellState pstate = view.getState(model
    +									.getParent(cells[i]));
    +
    +							if (state != null && pstate != null)
    +							{
    +								geo = (mxGeometry) geo.clone();
    +
    +								double dx = -pstate.getOrigin().getX();
    +								double dy = -pstate.getOrigin().getY();
    +
    +								Object src = model.getTerminal(cells[i], true);
    +
    +								if (src != null
    +										&& isCellDisconnectable(cells[i], src,
    +												true))
    +								{
    +									while (src != null && !hash.contains(src))
    +									{
    +										src = model.getParent(src);
    +									}
    +
    +									if (src == null)
    +									{
    +										mxPoint pt = state.getAbsolutePoint(0);
    +										geo.setTerminalPoint(
    +												new mxPoint(pt.getX() / scale
    +														- tr.getX() + dx, pt
    +														.getY()
    +														/ scale
    +														- tr.getY() + dy), true);
    +										model.setTerminal(cells[i], null, true);
    +									}
    +								}
    +
    +								Object trg = model.getTerminal(cells[i], false);
    +
    +								if (trg != null
    +										&& isCellDisconnectable(cells[i], trg,
    +												false))
    +								{
    +									while (trg != null && !hash.contains(trg))
    +									{
    +										trg = model.getParent(trg);
    +									}
    +
    +									if (trg == null)
    +									{
    +										int n = state.getAbsolutePointCount() - 1;
    +										mxPoint pt = state.getAbsolutePoint(n);
    +										geo.setTerminalPoint(
    +												new mxPoint(pt.getX() / scale
    +														- tr.getX() + dx, pt
    +														.getY()
    +														/ scale
    +														- tr.getY() + dy),
    +												false);
    +										model.setTerminal(cells[i], null, false);
    +									}
    +								}
    +							}
    +
    +							model.setGeometry(cells[i], geo);
    +						}
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	//
    +	// Drilldown
    +	//
    +
    +	/**
    +	 * Returns the current root of the displayed cell hierarchy. This is a
    +	 * shortcut to <mxGraphView.currentRoot> in <view>.
    +	 * 
    +	 * @return Returns the current root in the view.
    +	 */
    +	public Object getCurrentRoot()
    +	{
    +		return view.getCurrentRoot();
    +	}
    +
    +	/**
    +	 * Returns the translation to be used if the given cell is the root cell as
    +	 * an <mxPoint>. This implementation returns null.
    +	 * 
    +	 * @param cell Cell that represents the root of the view.
    +	 * @return Returns the translation of the graph for the given root cell.
    +	 */
    +	public mxPoint getTranslateForRoot(Object cell)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is a "port", that is, when connecting to
    +	 * it, the cell returned by getTerminalForPort should be used as the
    +	 * terminal and the port should be referenced by the ID in either the
    +	 * mxConstants.STYLE_SOURCE_PORT or the or the
    +	 * mxConstants.STYLE_TARGET_PORT. Note that a port should not be movable.
    +	 * This implementation always returns false.
    +	 * 
    +	 * A typical implementation of this method looks as follows:
    +	 * 
    +	 * <code>
    +	 * public boolean isPort(Object cell)
    +	 * {
    +	 *   mxGeometry geo = getCellGeometry(cell);
    +	 *   
    +	 *   return (geo != null) ? geo.isRelative() : false;
    +	 * }
    +	 * </code>
    +	 * 
    +	 * @param cell Cell that represents the port.
    +	 * @return Returns true if the cell is a port.
    +	 */
    +	public boolean isPort(Object cell)
    +	{
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns the terminal to be used for a given port. This implementation
    +	 * always returns the parent cell.
    +	 * 
    +	 * @param cell Cell that represents the port.
    +	 * @param source If the cell is the source or target port.
    +	 * @return Returns the terminal to be used for the given port.
    +	 */
    +	public Object getTerminalForPort(Object cell, boolean source)
    +	{
    +		return getModel().getParent(cell);
    +	}
    +
    +	/**
    +	 * Returns the offset to be used for the cells inside the given cell. The
    +	 * root and layer cells may be identified using mxGraphModel.isRoot and
    +	 * mxGraphModel.isLayer. This implementation returns null.
    +	 *
    +	 * @param cell Cell whose offset should be returned.
    +	 * @return Returns the child offset for the given cell.
    +	 */
    +	public mxPoint getChildOffsetForCell(Object cell)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void enterGroup()
    +	{
    +		enterGroup(null);
    +	}
    +
    +	/**
    +	 * Uses the given cell as the root of the displayed cell hierarchy. If no
    +	 * cell is specified then the selection cell is used. The cell is only used
    +	 * if <isValidRoot> returns true.
    +	 * 
    +	 * @param cell
    +	 */
    +	public void enterGroup(Object cell)
    +	{
    +		if (cell == null)
    +		{
    +			cell = getSelectionCell();
    +		}
    +
    +		if (cell != null && isValidRoot(cell))
    +		{
    +			view.setCurrentRoot(cell);
    +			clearSelection();
    +		}
    +	}
    +
    +	/**
    +	 * Changes the current root to the next valid root in the displayed cell
    +	 * hierarchy.
    +	 */
    +	public void exitGroup()
    +	{
    +		Object root = model.getRoot();
    +		Object current = getCurrentRoot();
    +
    +		if (current != null)
    +		{
    +			Object next = model.getParent(current);
    +
    +			// Finds the next valid root in the hierarchy
    +			while (next != root && !isValidRoot(next)
    +					&& model.getParent(next) != root)
    +			{
    +				next = model.getParent(next);
    +			}
    +
    +			// Clears the current root if the new root is
    +			// the model's root or one of the layers.
    +			if (next == root || model.getParent(next) == root)
    +			{
    +				view.setCurrentRoot(null);
    +			}
    +			else
    +			{
    +				view.setCurrentRoot(next);
    +			}
    +
    +			mxCellState state = view.getState(current);
    +
    +			// Selects the previous root in the graph
    +			if (state != null)
    +			{
    +				setSelectionCell(current);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Uses the root of the model as the root of the displayed cell hierarchy
    +	 * and selects the previous root.
    +	 */
    +	public void home()
    +	{
    +		Object current = getCurrentRoot();
    +
    +		if (current != null)
    +		{
    +			view.setCurrentRoot(null);
    +			mxCellState state = view.getState(current);
    +
    +			if (state != null)
    +			{
    +				setSelectionCell(current);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is a valid root for the cell display
    +	 * hierarchy. This implementation returns true for all non-null values.
    +	 * 
    +	 * @param cell <mxCell> which should be checked as a possible root.
    +	 * @return Returns true if the given cell is a valid root.
    +	 */
    +	public boolean isValidRoot(Object cell)
    +	{
    +		return (cell != null);
    +	}
    +
    +	//
    +	// Graph display
    +	//
    +
    +	/**
    +	 * Returns the bounds of the visible graph.
    +	 */
    +	public mxRectangle getGraphBounds()
    +	{
    +		return view.getGraphBounds();
    +	}
    +
    +	/**
    +	 * Returns the bounds of the given cell.
    +	 */
    +	public mxRectangle getCellBounds(Object cell)
    +	{
    +		return getCellBounds(cell, false);
    +	}
    +
    +	/**
    +	 * Returns the bounds of the given cell including all connected edges
    +	 * if includeEdge is true.
    +	 */
    +	public mxRectangle getCellBounds(Object cell, boolean includeEdges)
    +	{
    +		return getCellBounds(cell, includeEdges, false);
    +	}
    +
    +	/**
    +	 * Returns the bounds of the given cell including all connected edges
    +	 * if includeEdge is true.
    +	 */
    +	public mxRectangle getCellBounds(Object cell, boolean includeEdges,
    +			boolean includeDescendants)
    +	{
    +		return getCellBounds(cell, includeEdges, includeDescendants, false);
    +	}
    +
    +	/**
    +	 * Returns the bounding box for the geometries of the vertices in the
    +	 * given array of cells.
    +	 */
    +	public mxRectangle getBoundingBoxFromGeometry(Object[] cells)
    +	{
    +		mxRectangle result = null;
    +
    +		if (cells != null)
    +		{
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				if (getModel().isVertex(cells[i]))
    +				{
    +					mxGeometry geo = getCellGeometry(cells[i]);
    +
    +					if (result == null)
    +					{
    +						result = new mxRectangle(geo);
    +					}
    +					else
    +					{
    +						result.add(geo);
    +					}
    +				}
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the bounds of the given cell.
    +	 */
    +	public mxRectangle getBoundingBox(Object cell)
    +	{
    +		return getBoundingBox(cell, false);
    +	}
    +
    +	/**
    +	 * Returns the bounding box of the given cell including all connected edges
    +	 * if includeEdge is true.
    +	 */
    +	public mxRectangle getBoundingBox(Object cell, boolean includeEdges)
    +	{
    +		return getBoundingBox(cell, includeEdges, false);
    +	}
    +
    +	/**
    +	 * Returns the bounding box of the given cell including all connected edges
    +	 * if includeEdge is true.
    +	 */
    +	public mxRectangle getBoundingBox(Object cell, boolean includeEdges,
    +			boolean includeDescendants)
    +	{
    +		return getCellBounds(cell, includeEdges, includeDescendants, true);
    +	}
    +
    +	/**
    +	 * Returns the bounding box of the given cells and their descendants.
    +	 */
    +	public mxRectangle getPaintBounds(Object[] cells)
    +	{
    +		return getBoundsForCells(cells, false, true, true);
    +	}
    +
    +	/**
    +	 * Returns the bounds for the given cells.
    +	 */
    +	public mxRectangle getBoundsForCells(Object[] cells, boolean includeEdges,
    +			boolean includeDescendants, boolean boundingBox)
    +	{
    +		mxRectangle result = null;
    +
    +		if (cells != null && cells.length > 0)
    +		{
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				mxRectangle tmp = getCellBounds(cells[i], includeEdges,
    +						includeDescendants, boundingBox);
    +
    +				if (tmp != null)
    +				{
    +					if (result == null)
    +					{
    +						result = new mxRectangle(tmp);
    +					}
    +					else
    +					{
    +						result.add(tmp);
    +					}
    +				}
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the bounds of the given cell including all connected edges
    +	 * if includeEdge is true.
    +	 */
    +	public mxRectangle getCellBounds(Object cell, boolean includeEdges,
    +			boolean includeDescendants, boolean boundingBox)
    +	{
    +		mxRectangle result = null;
    +		Object[] cells;
    +
    +		// Recursively includes connected edges
    +		if (includeEdges)
    +		{
    +			Set<Object> allCells = new HashSet<Object>();
    +			allCells.add(cell);
    +
    +			Set<Object> edges = new HashSet<Object>(
    +					Arrays.asList(getEdges(cell)));
    +
    +			while (!edges.isEmpty() && !allCells.containsAll(edges))
    +			{
    +				allCells.addAll(edges);
    +
    +				Set<Object> tmp = new HashSet<Object>();
    +				Iterator<Object> it = edges.iterator();
    +
    +				while (it.hasNext())
    +				{
    +					Object edge = it.next();
    +					tmp.addAll(Arrays.asList(getEdges(edge)));
    +				}
    +
    +				edges = tmp;
    +			}
    +
    +			cells = allCells.toArray();
    +		}
    +		else
    +		{
    +			cells = new Object[] { cell };
    +		}
    +
    +		if (boundingBox)
    +		{
    +			result = view.getBoundingBox(cells);
    +		}
    +		else
    +		{
    +			result = view.getBounds(cells);
    +		}
    +
    +		// Recursively includes the bounds of the children
    +		if (includeDescendants)
    +		{
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				mxRectangle tmp = getCellBounds(model.getChildAt(cell, i),
    +						includeEdges, true, boundingBox);
    +
    +				if (result != null)
    +				{
    +					result.add(tmp);
    +				}
    +				else
    +				{
    +					result = tmp;
    +				}
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Clears all cell states or the states for the hierarchy starting at the
    +	 * given cell and validates the graph.
    +	 */
    +	public void refresh()
    +	{
    +		view.reload();
    +		repaint();
    +	}
    +
    +	/**
    +	 * Fires a repaint event.
    +	 */
    +	public void repaint()
    +	{
    +		repaint(null);
    +	}
    +
    +	/**
    +	 * Fires a repaint event. The optional region is the rectangle that needs
    +	 * to be repainted.
    +	 */
    +	public void repaint(mxRectangle region)
    +	{
    +		fireEvent(new mxEventObject(mxEvent.REPAINT, "region", region));
    +	}
    +
    +	/**
    +	 * Snaps the given numeric value to the grid if <gridEnabled> is true.
    +	 *
    +	 * @param value Numeric value to be snapped to the grid.
    +	 * @return Returns the value aligned to the grid.
    +	 */
    +	public double snap(double value)
    +	{
    +		if (gridEnabled)
    +		{
    +			value = Math.round(value / gridSize) * gridSize;
    +		}
    +
    +		return value;
    +	}
    +
    +	/**
    +	 * Returns the geometry for the given cell.
    +	 * 
    +	 * @param cell Cell whose geometry should be returned.
    +	 * @return Returns the geometry of the cell.
    +	 */
    +	public mxGeometry getCellGeometry(Object cell)
    +	{
    +		return model.getGeometry(cell);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is visible in this graph. This
    +	 * implementation uses <mxGraphModel.isVisible>. Subclassers can override
    +	 * this to implement specific visibility for cells in only one graph, that
    +	 * is, without affecting the visible state of the cell.
    +	 * 
    +	 * When using dynamic filter expressions for cell visibility, then the
    +	 * graph should be revalidated after the filter expression has changed.
    +	 * 
    +	 * @param cell Cell whose visible state should be returned.
    +	 * @return Returns the visible state of the cell.
    +	 */
    +	public boolean isCellVisible(Object cell)
    +	{
    +		return model.isVisible(cell);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is collapsed in this graph. This
    +	 * implementation uses <mxGraphModel.isCollapsed>. Subclassers can override
    +	 * this to implement specific collapsed states for cells in only one graph,
    +	 * that is, without affecting the collapsed state of the cell.
    +	 * 
    +	 * When using dynamic filter expressions for the collapsed state, then the
    +	 * graph should be revalidated after the filter expression has changed.
    +	 * 
    +	 * @param cell Cell whose collapsed state should be returned.
    +	 * @return Returns the collapsed state of the cell.
    +	 */
    +	public boolean isCellCollapsed(Object cell)
    +	{
    +		return model.isCollapsed(cell);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is connectable in this graph. This
    +	 * implementation uses <mxGraphModel.isConnectable>. Subclassers can override
    +	 * this to implement specific connectable states for cells in only one graph,
    +	 * that is, without affecting the connectable state of the cell in the model.
    +	 * 
    +	 * @param cell Cell whose connectable state should be returned.
    +	 * @return Returns the connectable state of the cell.
    +	 */
    +	public boolean isCellConnectable(Object cell)
    +	{
    +		return model.isConnectable(cell);
    +	}
    +
    +	/**
    +	 * Returns true if perimeter points should be computed such that the
    +	 * resulting edge has only horizontal or vertical segments.
    +	 * 
    +	 * @param edge Cell state that represents the edge.
    +	 */
    +	public boolean isOrthogonal(mxCellState edge)
    +	{
    +		if (edge.getStyle().containsKey(mxConstants.STYLE_ORTHOGONAL))
    +		{
    +			return mxUtils
    +					.isTrue(edge.getStyle(), mxConstants.STYLE_ORTHOGONAL);
    +		}
    +
    +		mxEdgeStyle.mxEdgeStyleFunction tmp = view.getEdgeStyle(edge, null,
    +				null, null);
    +
    +		return tmp == mxEdgeStyle.ElbowConnector
    +				|| tmp == mxEdgeStyle.SideToSide
    +				|| tmp == mxEdgeStyle.TopToBottom
    +				|| tmp == mxEdgeStyle.EntityRelation;
    +	}
    +
    +	/**
    +	 * Returns true if the given cell state is a loop.
    +	 * 
    +	 * @param state <mxCellState> that represents a potential loop.
    +	 * @return Returns true if the given cell is a loop.
    +	 */
    +	public boolean isLoop(mxCellState state)
    +	{
    +		Object src = state.getVisibleTerminalState(true);
    +		Object trg = state.getVisibleTerminalState(false);
    +
    +		return (src != null && src == trg);
    +	}
    +
    +	//
    +	// Cell validation
    +	//
    +
    +	/**
    +	 * 
    +	 */
    +	public void setMultiplicities(mxMultiplicity[] value)
    +	{
    +		mxMultiplicity[] oldValue = multiplicities;
    +		multiplicities = value;
    +
    +		changeSupport.firePropertyChange("multiplicities", oldValue,
    +				multiplicities);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public mxMultiplicity[] getMultiplicities()
    +	{
    +		return multiplicities;
    +	}
    +
    +	/**
    +	 * Checks if the return value of getEdgeValidationError for the given
    +	 * arguments is null.
    +	 * 
    +	 * @param edge Cell that represents the edge to validate.
    +	 * @param source Cell that represents the source terminal.
    +	 * @param target Cell that represents the target terminal.
    +	 */
    +	public boolean isEdgeValid(Object edge, Object source, Object target)
    +	{
    +		return getEdgeValidationError(edge, source, target) == null;
    +	}
    +
    +	/**
    +	 * Returns the validation error message to be displayed when inserting or
    +	 * changing an edges' connectivity. A return value of null means the edge
    +	 * is valid, a return value of '' means it's not valid, but do not display
    +	 * an error message. Any other (non-empty) string returned from this method
    +	 * is displayed as an error message when trying to connect an edge to a
    +	 * source and target. This implementation uses the multiplicities, as
    +	 * well as multigraph and allowDanglingEdges to generate validation
    +	 * errors.
    +	 * 
    +	 * @param edge Cell that represents the edge to validate.
    +	 * @param source Cell that represents the source terminal.
    +	 * @param target Cell that represents the target terminal.
    +	 */
    +	public String getEdgeValidationError(Object edge, Object source,
    +			Object target)
    +	{
    +		if (edge != null && !isAllowDanglingEdges()
    +				&& (source == null || target == null))
    +		{
    +			return "";
    +		}
    +
    +		if (edge != null && model.getTerminal(edge, true) == null
    +				&& model.getTerminal(edge, false) == null)
    +		{
    +			return null;
    +		}
    +
    +		// Checks if we're dealing with a loop
    +		if (!isAllowLoops() && source == target && source != null)
    +		{
    +			return "";
    +		}
    +
    +		// Checks if the connection is generally allowed
    +		if (!isValidConnection(source, target))
    +		{
    +			return "";
    +		}
    +
    +		if (source != null && target != null)
    +		{
    +			StringBuffer error = new StringBuffer();
    +
    +			// Checks if the cells are already connected
    +			// and adds an error message if required			
    +			if (!multigraph)
    +			{
    +				Object[] tmp = mxGraphModel.getEdgesBetween(model, source,
    +						target, true);
    +
    +				// Checks if the source and target are not connected by another edge
    +				if (tmp.length > 1 || (tmp.length == 1 && tmp[0] != edge))
    +				{
    +					error.append(mxResources.get("alreadyConnected",
    +							"Already Connected") + "\n");
    +				}
    +			}
    +
    +			// Gets the number of outgoing edges from the source
    +			// and the number of incoming edges from the target
    +			// without counting the edge being currently changed.
    +			int sourceOut = mxGraphModel.getDirectedEdgeCount(model, source,
    +					true, edge);
    +			int targetIn = mxGraphModel.getDirectedEdgeCount(model, target,
    +					false, edge);
    +
    +			// Checks the change against each multiplicity rule
    +			if (multiplicities != null)
    +			{
    +				for (int i = 0; i < multiplicities.length; i++)
    +				{
    +					String err = multiplicities[i].check(this, edge, source,
    +							target, sourceOut, targetIn);
    +
    +					if (err != null)
    +					{
    +						error.append(err);
    +					}
    +				}
    +			}
    +
    +			// Validates the source and target terminals independently
    +			String err = validateEdge(edge, source, target);
    +
    +			if (err != null)
    +			{
    +				error.append(err);
    +			}
    +
    +			return (error.length() > 0) ? error.toString() : null;
    +		}
    +
    +		return (allowDanglingEdges) ? null : "";
    +	}
    +
    +	/**
    +	 * Hook method for subclassers to return an error message for the given
    +	 * edge and terminals. This implementation returns null.
    +	 * 
    +	 * @param edge Cell that represents the edge to validate.
    +	 * @param source Cell that represents the source terminal.
    +	 * @param target Cell that represents the target terminal.
    +	 */
    +	public String validateEdge(Object edge, Object source, Object target)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Checks all multiplicities that cannot be enforced while the graph is
    +	 * being modified, namely, all multiplicities that require a minimum of
    +	 * 1 edge.
    +	 * 
    +	 * @param cell Cell for which the multiplicities should be checked.
    +	 */
    +	public String getCellValidationError(Object cell)
    +	{
    +		int outCount = mxGraphModel.getDirectedEdgeCount(model, cell, true);
    +		int inCount = mxGraphModel.getDirectedEdgeCount(model, cell, false);
    +		StringBuffer error = new StringBuffer();
    +		Object value = model.getValue(cell);
    +
    +		if (multiplicities != null)
    +		{
    +			for (int i = 0; i < multiplicities.length; i++)
    +			{
    +				mxMultiplicity rule = multiplicities[i];
    +				int max = rule.getMaxValue();
    +
    +				if (rule.source
    +						&& mxUtils.isNode(value, rule.type, rule.attr,
    +								rule.value)
    +						&& ((max == 0 && outCount > 0)
    +								|| (rule.min == 1 && outCount == 0) || (max == 1 && outCount > 1)))
    +				{
    +					error.append(rule.countError + '\n');
    +				}
    +				else if (!rule.source
    +						&& mxUtils.isNode(value, rule.type, rule.attr,
    +								rule.value)
    +						&& ((max == 0 && inCount > 0)
    +								|| (rule.min == 1 && inCount == 0) || (max == 1 && inCount > 1)))
    +				{
    +					error.append(rule.countError + '\n');
    +				}
    +			}
    +		}
    +
    +		return (error.length() > 0) ? error.toString() : null;
    +	}
    +
    +	/**
    +	 * Hook method for subclassers to return an error message for the given
    +	 * cell and validation context. This implementation returns null.
    +	 * 
    +	 * @param cell Cell that represents the cell to validate.
    +	 * @param context Hashtable that represents the global validation state.
    +	 */
    +	public String validateCell(Object cell, Hashtable<Object, Object> context)
    +	{
    +		return null;
    +	}
    +
    +	//
    +	// Graph appearance
    +	//
    +
    +	/**
    +	 * @return the labelsVisible
    +	 */
    +	public boolean isLabelsVisible()
    +	{
    +		return labelsVisible;
    +	}
    +
    +	/**
    +	 * @param value the labelsVisible to set
    +	 */
    +	public void setLabelsVisible(boolean value)
    +	{
    +		boolean oldValue = labelsVisible;
    +		labelsVisible = value;
    +
    +		changeSupport.firePropertyChange("labelsVisible", oldValue,
    +				labelsVisible);
    +	}
    +
    +	/**
    +	 * @param value the htmlLabels to set
    +	 */
    +	public void setHtmlLabels(boolean value)
    +	{
    +		boolean oldValue = htmlLabels;
    +		htmlLabels = value;
    +
    +		changeSupport.firePropertyChange("htmlLabels", oldValue, htmlLabels);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isHtmlLabels()
    +	{
    +		return htmlLabels;
    +	}
    +
    +	/**
    +	 * Returns the textual representation for the given cell.
    +	 * 
    +	 * @param cell Cell to be converted to a string.
    +	 * @return Returns the textual representation of the cell.
    +	 */
    +	public String convertValueToString(Object cell)
    +	{
    +		Object result = model.getValue(cell);
    +
    +		return (result != null) ? result.toString() : "";
    +	}
    +
    +	/**
    +	 * Returns a string or DOM node that represents the label for the given
    +	 * cell. This implementation uses <convertValueToString> if <labelsVisible>
    +	 * is true. Otherwise it returns an empty string.
    +	 * 
    +	 * @param cell <mxCell> whose label should be returned.
    +	 * @return Returns the label for the given cell.
    +	 */
    +	public String getLabel(Object cell)
    +	{
    +		String result = "";
    +
    +		if (cell != null)
    +		{
    +			mxCellState state = view.getState(cell);
    +			Map<String, Object> style = (state != null) ? state.getStyle()
    +					: getCellStyle(cell);
    +
    +			if (labelsVisible
    +					&& !mxUtils.isTrue(style, mxConstants.STYLE_NOLABEL, false))
    +			{
    +				result = convertValueToString(cell);
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Sets the new label for a cell. If autoSize is true then
    +	 * <cellSizeUpdated> will be called.
    +	 * 
    +	 * @param cell Cell whose label should be changed.
    +	 * @param value New label to be assigned.
    +	 * @param autoSize Specifies if cellSizeUpdated should be called.
    +	 */
    +	public void cellLabelChanged(Object cell, Object value, boolean autoSize)
    +	{
    +		model.beginUpdate();
    +		try
    +		{
    +			getModel().setValue(cell, value);
    +
    +			if (autoSize)
    +			{
    +				cellSizeUpdated(cell, false);
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * Returns true if the label must be rendered as HTML markup. The default
    +	 * implementation returns <htmlLabels>.
    +	 * 
    +	 * @param cell <mxCell> whose label should be displayed as HTML markup.
    +	 * @return Returns true if the given cell label is HTML markup.
    +	 */
    +	public boolean isHtmlLabel(Object cell)
    +	{
    +		return isHtmlLabels();
    +	}
    +
    +	/**
    +	 * Returns the tooltip to be used for the given cell.
    +	 */
    +	public String getToolTipForCell(Object cell)
    +	{
    +		return convertValueToString(cell);
    +	}
    +
    +	/**
    +	 * Returns the start size of the given swimlane, that is, the width or
    +	 * height of the part that contains the title, depending on the
    +	 * horizontal style. The return value is an <mxRectangle> with either
    +	 * width or height set as appropriate.
    +	 * 
    +	 * @param swimlane <mxCell> whose start size should be returned.
    +	 * @return Returns the startsize for the given swimlane.
    +	 */
    +	public mxRectangle getStartSize(Object swimlane)
    +	{
    +		mxRectangle result = new mxRectangle();
    +		mxCellState state = view.getState(swimlane);
    +		Map<String, Object> style = (state != null) ? state.getStyle()
    +				: getCellStyle(swimlane);
    +
    +		if (style != null)
    +		{
    +			double size = mxUtils.getDouble(style, mxConstants.STYLE_STARTSIZE,
    +					mxConstants.DEFAULT_STARTSIZE);
    +
    +			if (mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL, true))
    +			{
    +				result.setHeight(size);
    +			}
    +			else
    +			{
    +				result.setWidth(size);
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Returns the image URL for the given cell state. This implementation
    +	 * returns the value stored under <mxConstants.STYLE_IMAGE> in the cell
    +	 * style.
    +	 * 
    +	 * @param state
    +	 * @return Returns the image associated with the given cell state.
    +	 */
    +	public String getImage(mxCellState state)
    +	{
    +		return (state != null && state.getStyle() != null) ? mxUtils.getString(
    +				state.getStyle(), mxConstants.STYLE_IMAGE) : null;
    +	}
    +
    +	/**
    +	 * Returns the value of <border>.
    +	 * 
    +	 * @return Returns the border.
    +	 */
    +	public int getBorder()
    +	{
    +		return border;
    +	}
    +
    +	/**
    +	 * Sets the value of <border>.
    +	 * 
    +	 * @param value Positive integer that represents the border to be used.
    +	 */
    +	public void setBorder(int value)
    +	{
    +		border = value;
    +	}
    +
    +	/**
    +	 * Returns the default edge style used for loops.
    +	 * 
    +	 * @return Returns the default loop style.
    +	 */
    +	public mxEdgeStyle.mxEdgeStyleFunction getDefaultLoopStyle()
    +	{
    +		return defaultLoopStyle;
    +	}
    +
    +	/**
    +	 * Sets the default style used for loops.
    +	 * 
    +	 * @param value Default style to be used for loops.
    +	 */
    +	public void setDefaultLoopStyle(mxEdgeStyle.mxEdgeStyleFunction value)
    +	{
    +		mxEdgeStyle.mxEdgeStyleFunction oldValue = defaultLoopStyle;
    +		defaultLoopStyle = value;
    +
    +		changeSupport.firePropertyChange("defaultLoopStyle", oldValue,
    +				defaultLoopStyle);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is a swimlane. This implementation always
    +	 * returns false.
    +	 * 
    +	 * @param cell Cell that should be checked. 
    +	 * @return Returns true if the cell is a swimlane.
    +	 */
    +	public boolean isSwimlane(Object cell)
    +	{
    +		if (cell != null)
    +		{
    +			if (model.getParent(cell) != model.getRoot())
    +			{
    +				mxCellState state = view.getState(cell);
    +				Map<String, Object> style = (state != null) ? state.getStyle()
    +						: getCellStyle(cell);
    +
    +				if (style != null && !model.isEdge(cell))
    +				{
    +					return mxUtils
    +							.getString(style, mxConstants.STYLE_SHAPE, "")
    +							.equals(mxConstants.SHAPE_SWIMLANE);
    +				}
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	//
    +	// Cells and labels control options
    +	//
    +
    +	/**
    +	 * Returns true if the given cell may not be moved, sized, bended,
    +	 * disconnected, edited or selected. This implementation returns true for
    +	 * all vertices with a relative geometry if cellsLocked is false.
    +	 * 
    +	 * @param cell Cell whose locked state should be returned.
    +	 * @return Returns true if the given cell is locked.
    +	 */
    +	public boolean isCellLocked(Object cell)
    +	{
    +		mxGeometry geometry = model.getGeometry(cell);
    +
    +		return isCellsLocked()
    +				|| (geometry != null && model.isVertex(cell) && geometry
    +						.isRelative());
    +	}
    +
    +	/**
    +	 * Returns cellsLocked, the default return value for isCellLocked.
    +	 */
    +	public boolean isCellsLocked()
    +	{
    +		return cellsLocked;
    +	}
    +
    +	/**
    +	 * Sets cellsLocked, the default return value for isCellLocked and fires a
    +	 * property change event for cellsLocked.
    +	 */
    +	public void setCellsLocked(boolean value)
    +	{
    +		boolean oldValue = cellsLocked;
    +		cellsLocked = value;
    +
    +		changeSupport.firePropertyChange("cellsLocked", oldValue, cellsLocked);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is movable. This implementation returns editable.
    +	 * 
    +	 * @param cell Cell whose editable state should be returned.
    +	 * @return Returns true if the cell is editable.
    +	 */
    +	public boolean isCellEditable(Object cell)
    +	{
    +		mxCellState state = view.getState(cell);
    +		Map<String, Object> style = (state != null) ? state.getStyle()
    +				: getCellStyle(cell);
    +
    +		return isCellsEditable() && !isCellLocked(cell)
    +				&& mxUtils.isTrue(style, mxConstants.STYLE_EDITABLE, true);
    +	}
    +
    +	/**
    +	 * Returns true if editing is allowed in this graph.
    +	 * 
    +	 * @return Returns true if the graph is editable.
    +	 */
    +	public boolean isCellsEditable()
    +	{
    +		return cellsEditable;
    +	}
    +
    +	/**
    +	 * Sets if the graph is editable.
    +	 */
    +	public void setCellsEditable(boolean value)
    +	{
    +		boolean oldValue = cellsEditable;
    +		cellsEditable = value;
    +
    +		changeSupport.firePropertyChange("cellsEditable", oldValue,
    +				cellsEditable);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is resizable. This implementation returns
    +	 * cellsSizable for all cells.
    +	 * 
    +	 * @param cell Cell whose resizable state should be returned.
    +	 * @return Returns true if the cell is sizable.
    +	 */
    +	public boolean isCellResizable(Object cell)
    +	{
    +		mxCellState state = view.getState(cell);
    +		Map<String, Object> style = (state != null) ? state.getStyle()
    +				: getCellStyle(cell);
    +
    +		return isCellsResizable() && !isCellLocked(cell)
    +				&& mxUtils.isTrue(style, mxConstants.STYLE_RESIZABLE, true);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is resizable. This implementation return sizable.
    +	 */
    +	public boolean isCellsResizable()
    +	{
    +		return cellsResizable;
    +	}
    +
    +	/**
    +	 * Sets if the graph is resizable.
    +	 */
    +	public void setCellsResizable(boolean value)
    +	{
    +		boolean oldValue = cellsResizable;
    +		cellsResizable = value;
    +
    +		changeSupport.firePropertyChange("cellsResizable", oldValue,
    +				cellsResizable);
    +	}
    +
    +	/**
    +	 * Returns the cells which are movable in the given array of cells.
    +	 */
    +	public Object[] getMovableCells(Object[] cells)
    +	{
    +		return mxGraphModel.filterCells(cells, new Filter()
    +		{
    +			public boolean filter(Object cell)
    +			{
    +				return isCellMovable(cell);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is movable. This implementation
    +	 * returns movable.
    +	 * 
    +	 * @param cell Cell whose movable state should be returned.
    +	 * @return Returns true if the cell is movable.
    +	 */
    +	public boolean isCellMovable(Object cell)
    +	{
    +		mxCellState state = view.getState(cell);
    +		Map<String, Object> style = (state != null) ? state.getStyle()
    +				: getCellStyle(cell);
    +
    +		return isCellsMovable() && !isCellLocked(cell)
    +				&& mxUtils.isTrue(style, mxConstants.STYLE_MOVABLE, true);
    +	}
    +
    +	/**
    +	 * Returns cellsMovable.
    +	 */
    +	public boolean isCellsMovable()
    +	{
    +		return cellsMovable;
    +	}
    +
    +	/**
    +	 * Sets cellsMovable.
    +	 */
    +	public void setCellsMovable(boolean value)
    +	{
    +		boolean oldValue = cellsMovable;
    +		cellsMovable = value;
    +
    +		changeSupport
    +				.firePropertyChange("cellsMovable", oldValue, cellsMovable);
    +	}
    +
    +	/**
    +	 * Function: isTerminalPointMovable
    +	 *
    +	 * Returns true if the given terminal point is movable. This is independent
    +	 * from isCellConnectable and isCellDisconnectable and controls if terminal
    +	 * points can be moved in the graph if the edge is not connected. Note that
    +	 * it is required for this to return true to connect unconnected edges.
    +	 * This implementation returns true.
    +	 * 
    +	 * @param cell Cell whose terminal point should be moved.
    +	 * @param source Boolean indicating if the source or target terminal should be moved.
    +	 */
    +	public boolean isTerminalPointMovable(Object cell, boolean source)
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is bendable. This implementation returns
    +	 * bendable. This is used in mxElbowEdgeHandler to determine if the middle
    +	 * handle should be shown.
    +	 * 
    +	 * @param cell Cell whose bendable state should be returned.
    +	 * @return Returns true if the cell is bendable.
    +	 */
    +	public boolean isCellBendable(Object cell)
    +	{
    +		mxCellState state = view.getState(cell);
    +		Map<String, Object> style = (state != null) ? state.getStyle()
    +				: getCellStyle(cell);
    +
    +		return isCellsBendable() && !isCellLocked(cell)
    +				&& mxUtils.isTrue(style, mxConstants.STYLE_BENDABLE, true);
    +	}
    +
    +	/**
    +	 * Returns cellsBendable.
    +	 */
    +	public boolean isCellsBendable()
    +	{
    +		return cellsBendable;
    +	}
    +
    +	/**
    +	 * Sets cellsBendable.
    +	 */
    +	public void setCellsBendable(boolean value)
    +	{
    +		boolean oldValue = cellsBendable;
    +		cellsBendable = value;
    +
    +		changeSupport.firePropertyChange("cellsBendable", oldValue,
    +				cellsBendable);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is selectable. This implementation returns
    +	 * <selectable>.
    +	 * 
    +	 * @param cell <mxCell> whose selectable state should be returned.
    +	 * @return Returns true if the given cell is selectable.
    +	 */
    +	public boolean isCellSelectable(Object cell)
    +	{
    +		return isCellsSelectable();
    +	}
    +
    +	/**
    +	 * Returns cellsSelectable.
    +	 */
    +	public boolean isCellsSelectable()
    +	{
    +		return cellsSelectable;
    +	}
    +
    +	/**
    +	 * Sets cellsSelectable.
    +	 */
    +	public void setCellsSelectable(boolean value)
    +	{
    +		boolean oldValue = cellsSelectable;
    +		cellsSelectable = value;
    +
    +		changeSupport.firePropertyChange("cellsSelectable", oldValue,
    +				cellsSelectable);
    +	}
    +
    +	/**
    +	 * Returns the cells which are movable in the given array of cells.
    +	 */
    +	public Object[] getDeletableCells(Object[] cells)
    +	{
    +		return mxGraphModel.filterCells(cells, new Filter()
    +		{
    +			public boolean filter(Object cell)
    +			{
    +				return isCellDeletable(cell);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is movable. This implementation always
    +	 * returns true.
    +	 * 
    +	 * @param cell Cell whose movable state should be returned.
    +	 * @return Returns true if the cell is movable.
    +	 */
    +	public boolean isCellDeletable(Object cell)
    +	{
    +		mxCellState state = view.getState(cell);
    +		Map<String, Object> style = (state != null) ? state.getStyle()
    +				: getCellStyle(cell);
    +
    +		return isCellsDeletable()
    +				&& mxUtils.isTrue(style, mxConstants.STYLE_DELETABLE, true);
    +	}
    +
    +	/**
    +	 * Returns cellsDeletable.
    +	 */
    +	public boolean isCellsDeletable()
    +	{
    +		return cellsDeletable;
    +	}
    +
    +	/**
    +	 * Sets cellsDeletable.
    +	 */
    +	public void setCellsDeletable(boolean value)
    +	{
    +		boolean oldValue = cellsDeletable;
    +		cellsDeletable = value;
    +
    +		changeSupport.firePropertyChange("cellsDeletable", oldValue,
    +				cellsDeletable);
    +	}
    +
    +	/**
    +	 * Returns the cells which are movable in the given array of cells.
    +	 */
    +	public Object[] getCloneableCells(Object[] cells)
    +	{
    +		return mxGraphModel.filterCells(cells, new Filter()
    +		{
    +			public boolean filter(Object cell)
    +			{
    +				return isCellCloneable(cell);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Returns the constant true. This does not use the cloneable field to
    +	 * return a value for a given cell, it is simply a hook for subclassers
    +	 * to disallow cloning of individual cells.
    +	 */
    +	public boolean isCellCloneable(Object cell)
    +	{
    +		mxCellState state = view.getState(cell);
    +		Map<String, Object> style = (state != null) ? state.getStyle()
    +				: getCellStyle(cell);
    +
    +		return isCellsCloneable()
    +				&& mxUtils.isTrue(style, mxConstants.STYLE_CLONEABLE, true);
    +	}
    +
    +	/**
    +	 * Returns cellsCloneable.
    +	 */
    +	public boolean isCellsCloneable()
    +	{
    +		return cellsCloneable;
    +	}
    +
    +	/**
    +	 * Specifies if the graph should allow cloning of cells by holding down the
    +	 * control key while cells are being moved. This implementation updates
    +	 * cellsCloneable.
    +	 *
    +	 * @param value Boolean indicating if the graph should be cloneable.
    +	 */
    +	public void setCellsCloneable(boolean value)
    +	{
    +		boolean oldValue = cellsCloneable;
    +		cellsCloneable = value;
    +
    +		changeSupport.firePropertyChange("cellsCloneable", oldValue,
    +				cellsCloneable);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is disconnectable from the source or
    +	 * target terminal. This returns <disconnectable> for all given cells if
    +	 * <isLocked> does not return true for the given cell.
    +	 * 
    +	 * @param cell <mxCell> whose disconnectable state should be returned.
    +	 * @param terminal <mxCell> that represents the source or target terminal.
    +	 * @param source Boolean indicating if the source or target terminal is to be
    +	 * disconnected.
    +	 * @return Returns true if the given edge can be disconnected from the given
    +	 * terminal.
    +	 */
    +	public boolean isCellDisconnectable(Object cell, Object terminal,
    +			boolean source)
    +	{
    +		return isCellsDisconnectable() && !isCellLocked(cell);
    +	}
    +
    +	/**
    +	 * Returns cellsDisconnectable.
    +	 */
    +	public boolean isCellsDisconnectable()
    +	{
    +		return cellsDisconnectable;
    +	}
    +
    +	/**
    +	 * Sets cellsDisconnectable.
    +	 * 
    +	 * @param value Boolean indicating if the graph should allow disconnecting of
    +	 * edges.
    +	 */
    +	public void setCellsDisconnectable(boolean value)
    +	{
    +		boolean oldValue = cellsDisconnectable;
    +		cellsDisconnectable = value;
    +
    +		changeSupport.firePropertyChange("cellsDisconnectable", oldValue,
    +				cellsDisconnectable);
    +	}
    +
    +	/**
    +	 * Returns true if the overflow portion of labels should be hidden. If this
    +	 * returns true then vertex labels will be clipped to the size of the vertices.
    +	 * This implementation returns true if <mxConstants.STYLE_OVERFLOW> in the
    +	 * style of the given cell is "hidden".
    +	 * 
    +	 * @param cell Cell whose label should be clipped.
    +	 * @return Returns true if the cell label should be clipped.
    +	 */
    +	public boolean isLabelClipped(Object cell)
    +	{
    +		if (!isLabelsClipped())
    +		{
    +			mxCellState state = view.getState(cell);
    +			Map<String, Object> style = (state != null) ? state.getStyle()
    +					: getCellStyle(cell);
    +
    +			return (style != null) ? mxUtils.getString(style,
    +					mxConstants.STYLE_OVERFLOW, "").equals("hidden") : false;
    +		}
    +
    +		return isLabelsClipped();
    +	}
    +
    +	/**
    +	 * Returns labelsClipped.
    +	 */
    +	public boolean isLabelsClipped()
    +	{
    +		return labelsClipped;
    +	}
    +
    +	/**
    +	 * Sets labelsClipped.
    +	 */
    +	public void setLabelsClipped(boolean value)
    +	{
    +		boolean oldValue = labelsClipped;
    +		labelsClipped = value;
    +
    +		changeSupport.firePropertyChange("labelsClipped", oldValue,
    +				labelsClipped);
    +	}
    +
    +	/**
    +	 * Returns true if the given edges's label is moveable. This returns
    +	 * <movable> for all given cells if <isLocked> does not return true
    +	 * for the given cell.
    +	 * 
    +	 * @param cell <mxCell> whose label should be moved.
    +	 * @return Returns true if the label of the given cell is movable.
    +	 */
    +	public boolean isLabelMovable(Object cell)
    +	{
    +		return !isCellLocked(cell)
    +				&& ((model.isEdge(cell) && isEdgeLabelsMovable()) || (model
    +						.isVertex(cell) && isVertexLabelsMovable()));
    +	}
    +
    +	/**
    +	 * Returns vertexLabelsMovable.
    +	 */
    +	public boolean isVertexLabelsMovable()
    +	{
    +		return vertexLabelsMovable;
    +	}
    +
    +	/**
    +	 * Sets vertexLabelsMovable.
    +	 */
    +	public void setVertexLabelsMovable(boolean value)
    +	{
    +		boolean oldValue = vertexLabelsMovable;
    +		vertexLabelsMovable = value;
    +
    +		changeSupport.firePropertyChange("vertexLabelsMovable", oldValue,
    +				vertexLabelsMovable);
    +	}
    +
    +	/**
    +	 * Returns edgeLabelsMovable.
    +	 */
    +	public boolean isEdgeLabelsMovable()
    +	{
    +		return edgeLabelsMovable;
    +	}
    +
    +	/**
    +	 * Returns edgeLabelsMovable.
    +	 */
    +	public void setEdgeLabelsMovable(boolean value)
    +	{
    +		boolean oldValue = edgeLabelsMovable;
    +		edgeLabelsMovable = value;
    +
    +		changeSupport.firePropertyChange("edgeLabelsMovable", oldValue,
    +				edgeLabelsMovable);
    +	}
    +
    +	//
    +	// Graph control options
    +	//
    +
    +	/**
    +	 * Returns true if the graph is <enabled>.
    +	 * 
    +	 * @return Returns true if the graph is enabled.
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * Specifies if the graph should allow any interactions. This
    +	 * implementation updates <enabled>.
    +	 * 
    +	 * @param value Boolean indicating if the graph should be enabled.
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		boolean oldValue = enabled;
    +		enabled = value;
    +
    +		changeSupport.firePropertyChange("enabled", oldValue, enabled);
    +	}
    +
    +	/**
    +	 * Returns true if the graph allows drop into other cells.
    +	 */
    +	public boolean isDropEnabled()
    +	{
    +		return dropEnabled;
    +	}
    +
    +	/**
    +	 * Sets dropEnabled.
    +	 */
    +	public void setDropEnabled(boolean value)
    +	{
    +		boolean oldValue = dropEnabled;
    +		dropEnabled = value;
    +
    +		changeSupport.firePropertyChange("dropEnabled", oldValue, dropEnabled);
    +	}
    +
    +	/**
    +	 * Affects the return values of isValidDropTarget to allow for edges as
    +	 * drop targets. The splitEdge method is called in mxGraphHandler if
    +	 * mxGraphComponent.isSplitEvent returns true for a given configuration.
    +	 */
    +	public boolean isSplitEnabled()
    +	{
    +		return splitEnabled;
    +	}
    +
    +	/**
    +	 * Sets splitEnabled.
    +	 */
    +	public void setSplitEnabled(boolean value)
    +	{
    +		splitEnabled = value;
    +	}
    +
    +	/**
    +	 * Returns multigraph.
    +	 */
    +	public boolean isMultigraph()
    +	{
    +		return multigraph;
    +	}
    +
    +	/**
    +	 * Sets multigraph.
    +	 */
    +	public void setMultigraph(boolean value)
    +	{
    +		boolean oldValue = multigraph;
    +		multigraph = value;
    +
    +		changeSupport.firePropertyChange("multigraph", oldValue, multigraph);
    +	}
    +
    +	/**
    +	 * Returns swimlaneNesting.
    +	 */
    +	public boolean isSwimlaneNesting()
    +	{
    +		return swimlaneNesting;
    +	}
    +
    +	/**
    +	 * Sets swimlaneNesting.
    +	 */
    +	public void setSwimlaneNesting(boolean value)
    +	{
    +		boolean oldValue = swimlaneNesting;
    +		swimlaneNesting = value;
    +
    +		changeSupport.firePropertyChange("swimlaneNesting", oldValue,
    +				swimlaneNesting);
    +	}
    +
    +	/**
    +	 * Returns allowDanglingEdges
    +	 */
    +	public boolean isAllowDanglingEdges()
    +	{
    +		return allowDanglingEdges;
    +	}
    +
    +	/**
    +	 * Sets allowDanglingEdges.
    +	 */
    +	public void setAllowDanglingEdges(boolean value)
    +	{
    +		boolean oldValue = allowDanglingEdges;
    +		allowDanglingEdges = value;
    +
    +		changeSupport.firePropertyChange("allowDanglingEdges", oldValue,
    +				allowDanglingEdges);
    +	}
    +
    +	/**
    +	 * Returns cloneInvalidEdges.
    +	 */
    +	public boolean isCloneInvalidEdges()
    +	{
    +		return cloneInvalidEdges;
    +	}
    +
    +	/**
    +	 * Sets cloneInvalidEdge.
    +	 */
    +	public void setCloneInvalidEdges(boolean value)
    +	{
    +		boolean oldValue = cloneInvalidEdges;
    +		cloneInvalidEdges = value;
    +
    +		changeSupport.firePropertyChange("cloneInvalidEdges", oldValue,
    +				cloneInvalidEdges);
    +	}
    +
    +	/**
    +	 * Returns disconnectOnMove
    +	 */
    +	public boolean isDisconnectOnMove()
    +	{
    +		return disconnectOnMove;
    +	}
    +
    +	/**
    +	 * Sets disconnectOnMove.
    +	 */
    +	public void setDisconnectOnMove(boolean value)
    +	{
    +		boolean oldValue = disconnectOnMove;
    +		disconnectOnMove = value;
    +
    +		changeSupport.firePropertyChange("disconnectOnMove", oldValue,
    +				disconnectOnMove);
    +
    +	}
    +
    +	/**
    +	 * Returns allowLoops.
    +	 */
    +	public boolean isAllowLoops()
    +	{
    +		return allowLoops;
    +	}
    +
    +	/**
    +	 * Sets allowLoops.
    +	 */
    +	public void setAllowLoops(boolean value)
    +	{
    +		boolean oldValue = allowLoops;
    +		allowLoops = value;
    +
    +		changeSupport.firePropertyChange("allowLoops", oldValue, allowLoops);
    +	}
    +
    +	/**
    +	 * Returns connectableEdges.
    +	 */
    +	public boolean isConnectableEdges()
    +	{
    +		return connectableEdges;
    +	}
    +
    +	/**
    +	 * Sets connetableEdges.
    +	 */
    +	public void setConnectableEdges(boolean value)
    +	{
    +		boolean oldValue = connectableEdges;
    +		connectableEdges = value;
    +
    +		changeSupport.firePropertyChange("connectableEdges", oldValue,
    +				connectableEdges);
    +
    +	}
    +
    +	/**
    +	 * Returns resetEdgesOnMove.
    +	 */
    +	public boolean isResetEdgesOnMove()
    +	{
    +		return resetEdgesOnMove;
    +	}
    +
    +	/**
    +	 * Sets resetEdgesOnMove.
    +	 */
    +	public void setResetEdgesOnMove(boolean value)
    +	{
    +		boolean oldValue = resetEdgesOnMove;
    +		resetEdgesOnMove = value;
    +
    +		changeSupport.firePropertyChange("resetEdgesOnMove", oldValue,
    +				resetEdgesOnMove);
    +	}
    +
    +	/**
    +	 * Returns resetViewOnRootChange.
    +	 */
    +	public boolean isResetViewOnRootChange()
    +	{
    +		return resetViewOnRootChange;
    +	}
    +
    +	/**
    +	 * Sets resetEdgesOnResize.
    +	 */
    +	public void setResetViewOnRootChange(boolean value)
    +	{
    +		boolean oldValue = resetViewOnRootChange;
    +		resetViewOnRootChange = value;
    +
    +		changeSupport.firePropertyChange("resetViewOnRootChange", oldValue,
    +				resetViewOnRootChange);
    +	}
    +
    +	/**
    +	 * Returns resetEdgesOnResize.
    +	 */
    +	public boolean isResetEdgesOnResize()
    +	{
    +		return resetEdgesOnResize;
    +	}
    +
    +	/**
    +	 * Sets resetEdgesOnResize.
    +	 */
    +	public void setResetEdgesOnResize(boolean value)
    +	{
    +		boolean oldValue = resetEdgesOnResize;
    +		resetEdgesOnResize = value;
    +
    +		changeSupport.firePropertyChange("resetEdgesOnResize", oldValue,
    +				resetEdgesOnResize);
    +	}
    +
    +	/**
    +	 * Returns resetEdgesOnConnect.
    +	 */
    +	public boolean isResetEdgesOnConnect()
    +	{
    +		return resetEdgesOnConnect;
    +	}
    +
    +	/**
    +	 * Sets resetEdgesOnConnect.
    +	 */
    +	public void setResetEdgesOnConnect(boolean value)
    +	{
    +		boolean oldValue = resetEdgesOnConnect;
    +		resetEdgesOnConnect = value;
    +
    +		changeSupport.firePropertyChange("resetEdgesOnConnect", oldValue,
    +				resetEdgesOnResize);
    +	}
    +
    +	/**
    +	 * Returns true if the size of the given cell should automatically be
    +	 * updated after a change of the label. This implementation returns
    +	 * autoSize for all given cells or checks if the cell style does specify
    +	 * mxConstants.STYLE_AUTOSIZE to be 1.
    +	 * 
    +	 * @param cell Cell that should be resized.
    +	 * @return Returns true if the size of the given cell should be updated.
    +	 */
    +	public boolean isAutoSizeCell(Object cell)
    +	{
    +		mxCellState state = view.getState(cell);
    +		Map<String, Object> style = (state != null) ? state.getStyle()
    +				: getCellStyle(cell);
    +
    +		return isAutoSizeCells()
    +				|| mxUtils.isTrue(style, mxConstants.STYLE_AUTOSIZE, false);
    +	}
    +
    +	/**
    +	 * Returns true if the size of the given cell should automatically be
    +	 * updated after a change of the label. This implementation returns
    +	 * autoSize for all given cells.
    +	 */
    +	public boolean isAutoSizeCells()
    +	{
    +		return autoSizeCells;
    +	}
    +
    +	/**
    +	 * Specifies if cell sizes should be automatically updated after a label
    +	 * change. This implementation sets autoSize to the given parameter.
    +	 * 
    +	 * @param value Boolean indicating if cells should be resized
    +	 * automatically.
    +	 */
    +	public void setAutoSizeCells(boolean value)
    +	{
    +		boolean oldValue = autoSizeCells;
    +		autoSizeCells = value;
    +
    +		changeSupport.firePropertyChange("autoSizeCells", oldValue,
    +				autoSizeCells);
    +	}
    +
    +	/**
    +	 * Returns true if the parent of the given cell should be extended if the
    +	 * child has been resized so that it overlaps the parent. This
    +		 * implementation returns ExtendParents if cell is not an edge.
    +	 * 
    +	 * @param cell Cell that has been resized.
    +	 */
    +	public boolean isExtendParent(Object cell)
    +	{
    +		return !getModel().isEdge(cell) && isExtendParents();
    +	}
    +
    +	/**
    +	 * Returns extendParents.
    +	 */
    +	public boolean isExtendParents()
    +	{
    +		return extendParents;
    +	}
    +
    +	/**
    +	 * Sets extendParents.
    +	 */
    +	public void setExtendParents(boolean value)
    +	{
    +		boolean oldValue = extendParents;
    +		extendParents = value;
    +
    +		changeSupport.firePropertyChange("extendParents", oldValue,
    +				extendParents);
    +	}
    +
    +	/**
    +	 * Returns extendParentsOnAdd.
    +	 */
    +	public boolean isExtendParentsOnAdd()
    +	{
    +		return extendParentsOnAdd;
    +	}
    +
    +	/**
    +	 * Sets extendParentsOnAdd.
    +	 */
    +	public void setExtendParentsOnAdd(boolean value)
    +	{
    +		boolean oldValue = extendParentsOnAdd;
    +		extendParentsOnAdd = value;
    +
    +		changeSupport.firePropertyChange("extendParentsOnAdd", oldValue,
    +				extendParentsOnAdd);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell should be kept inside the bounds of its
    +	 * parent according to the rules defined by getOverlap and
    +	 * isAllowOverlapParent. This implementation returns false for all children
    +	 * of edges and isConstrainChildren() otherwise.
    +	 */
    +	public boolean isConstrainChild(Object cell)
    +	{
    +		return isConstrainChildren()
    +				&& !getModel().isEdge(getModel().getParent(cell));
    +	}
    +
    +	/**
    +	 * Returns constrainChildren.
    +	 * 
    +	 * @return the keepInsideParentOnMove
    +	 */
    +	public boolean isConstrainChildren()
    +	{
    +		return constrainChildren;
    +	}
    +
    +	/**
    +	 * @param value the constrainChildren to set
    +	 */
    +	public void setConstrainChildren(boolean value)
    +	{
    +		boolean oldValue = constrainChildren;
    +		constrainChildren = value;
    +
    +		changeSupport.firePropertyChange("constrainChildren", oldValue,
    +				constrainChildren);
    +	}
    +
    +	/**
    +	 * Returns autoOrigin.
    +	 */
    +	public boolean isAutoOrigin()
    +	{
    +		return autoOrigin;
    +	}
    +
    +	/**
    +	 * @param value the autoOrigin to set
    +	 */
    +	public void setAutoOrigin(boolean value)
    +	{
    +		boolean oldValue = autoOrigin;
    +		autoOrigin = value;
    +
    +		changeSupport.firePropertyChange("autoOrigin", oldValue, autoOrigin);
    +	}
    +
    +	/**
    +	 * Returns origin.
    +	 */
    +	public mxPoint getOrigin()
    +	{
    +		return origin;
    +	}
    +
    +	/**
    +	 * @param value the origin to set
    +	 */
    +	public void setOrigin(mxPoint value)
    +	{
    +		mxPoint oldValue = origin;
    +		origin = value;
    +
    +		changeSupport.firePropertyChange("origin", oldValue, origin);
    +	}
    +
    +	/**
    +	 * @return Returns changesRepaintThreshold.
    +	 */
    +	public int getChangesRepaintThreshold()
    +	{
    +		return changesRepaintThreshold;
    +	}
    +
    +	/**
    +	 * @param value the changesRepaintThreshold to set
    +	 */
    +	public void setChangesRepaintThreshold(int value)
    +	{
    +		int oldValue = changesRepaintThreshold;
    +		changesRepaintThreshold = value;
    +
    +		changeSupport.firePropertyChange("changesRepaintThreshold", oldValue,
    +				changesRepaintThreshold);
    +	}
    +
    +	/**
    +	 * Returns isAllowNegativeCoordinates.
    +	 * 
    +	 * @return the allowNegativeCoordinates
    +	 */
    +	public boolean isAllowNegativeCoordinates()
    +	{
    +		return allowNegativeCoordinates;
    +	}
    +
    +	/**
    +	 * @param value the allowNegativeCoordinates to set
    +	 */
    +	public void setAllowNegativeCoordinates(boolean value)
    +	{
    +		boolean oldValue = allowNegativeCoordinates;
    +		allowNegativeCoordinates = value;
    +
    +		changeSupport.firePropertyChange("allowNegativeCoordinates", oldValue,
    +				allowNegativeCoordinates);
    +	}
    +
    +	/**
    +	 * Returns collapseToPreferredSize.
    +	 * 
    +	 * @return the collapseToPreferredSize
    +	 */
    +	public boolean isCollapseToPreferredSize()
    +	{
    +		return collapseToPreferredSize;
    +	}
    +
    +	/**
    +	 * @param value the collapseToPreferredSize to set
    +	 */
    +	public void setCollapseToPreferredSize(boolean value)
    +	{
    +		boolean oldValue = collapseToPreferredSize;
    +		collapseToPreferredSize = value;
    +
    +		changeSupport.firePropertyChange("collapseToPreferredSize", oldValue,
    +				collapseToPreferredSize);
    +	}
    +
    +	/**
    +	 * @return Returns true if edges are rendered in the foreground.
    +	 */
    +	public boolean isKeepEdgesInForeground()
    +	{
    +		return keepEdgesInForeground;
    +	}
    +
    +	/**
    +	 * @param value the keepEdgesInForeground to set
    +	 */
    +	public void setKeepEdgesInForeground(boolean value)
    +	{
    +		boolean oldValue = keepEdgesInForeground;
    +		keepEdgesInForeground = value;
    +
    +		changeSupport.firePropertyChange("keepEdgesInForeground", oldValue,
    +				keepEdgesInForeground);
    +	}
    +
    +	/**
    +	 * @return Returns true if edges are rendered in the background.
    +	 */
    +	public boolean isKeepEdgesInBackground()
    +	{
    +		return keepEdgesInBackground;
    +	}
    +
    +	/**
    +	 * @param value the keepEdgesInBackground to set
    +	 */
    +	public void setKeepEdgesInBackground(boolean value)
    +	{
    +		boolean oldValue = keepEdgesInBackground;
    +		keepEdgesInBackground = value;
    +
    +		changeSupport.firePropertyChange("keepEdgesInBackground", oldValue,
    +				keepEdgesInBackground);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is a valid source for new connections.
    +	 * This implementation returns true for all non-null values and is
    +	 * called by is called by <isValidConnection>.
    +	 * 
    +	 * @param cell Object that represents a possible source or null.
    +	 * @return Returns true if the given cell is a valid source terminal.
    +	 */
    +	public boolean isValidSource(Object cell)
    +	{
    +		return (cell == null && allowDanglingEdges)
    +				|| (cell != null
    +						&& (!model.isEdge(cell) || isConnectableEdges()) && isCellConnectable(cell));
    +	}
    +
    +	/**
    +	 * Returns isValidSource for the given cell. This is called by
    +	 * isValidConnection.
    +	 *
    +	 * @param cell Object that represents a possible target or null.
    +	 * @return Returns true if the given cell is a valid target.
    +	 */
    +	public boolean isValidTarget(Object cell)
    +	{
    +		return isValidSource(cell);
    +	}
    +
    +	/**
    +	 * Returns true if the given target cell is a valid target for source.
    +	 * This is a boolean implementation for not allowing connections between
    +	 * certain pairs of vertices and is called by <getEdgeValidationError>.
    +	 * This implementation returns true if <isValidSource> returns true for
    +	 * the source and <isValidTarget> returns true for the target.
    +	 * 
    +	 * @param source Object that represents the source cell.
    +	 * @param target Object that represents the target cell.
    +	 * @return Returns true if the the connection between the given terminals
    +	 * is valid.
    +	 */
    +	public boolean isValidConnection(Object source, Object target)
    +	{
    +		return isValidSource(source) && isValidTarget(target)
    +				&& (isAllowLoops() || source != target);
    +	}
    +
    +	/**
    +	 * Returns the minimum size of the diagram.
    +	 * 
    +	 * @return Returns the minimum container size.
    +	 */
    +	public mxRectangle getMinimumGraphSize()
    +	{
    +		return minimumGraphSize;
    +	}
    +
    +	/**
    +	 * @param value the minimumGraphSize to set
    +	 */
    +	public void setMinimumGraphSize(mxRectangle value)
    +	{
    +		mxRectangle oldValue = minimumGraphSize;
    +		minimumGraphSize = value;
    +
    +		changeSupport.firePropertyChange("minimumGraphSize", oldValue, value);
    +	}
    +
    +	/**
    +	 * Returns a decimal number representing the amount of the width and height
    +	 * of the given cell that is allowed to overlap its parent. A value of 0
    +	 * means all children must stay inside the parent, 1 means the child is
    +	 * allowed to be placed outside of the parent such that it touches one of
    +	 * the parents sides. If <isAllowOverlapParent> returns false for the given
    +	 * cell, then this method returns 0.
    +	 * 
    +	 * @param cell
    +	 * @return Returns the overlapping value for the given cell inside its
    +	 * parent.
    +	 */
    +	public double getOverlap(Object cell)
    +	{
    +		return (isAllowOverlapParent(cell)) ? getDefaultOverlap() : 0;
    +	}
    +
    +	/**
    +	 * Gets defaultOverlap.
    +	 */
    +	public double getDefaultOverlap()
    +	{
    +		return defaultOverlap;
    +	}
    +
    +	/**
    +	 * Sets defaultOverlap.
    +	 */
    +	public void setDefaultOverlap(double value)
    +	{
    +		double oldValue = defaultOverlap;
    +		defaultOverlap = value;
    +
    +		changeSupport.firePropertyChange("defaultOverlap", oldValue, value);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is allowed to be placed outside of the
    +	 * parents area.
    +	 * 
    +	 * @param cell
    +	 * @return Returns true if the given cell may overlap its parent.
    +	 */
    +	public boolean isAllowOverlapParent(Object cell)
    +	{
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns the cells which are movable in the given array of cells.
    +	 */
    +	public Object[] getFoldableCells(Object[] cells, final boolean collapse)
    +	{
    +		return mxGraphModel.filterCells(cells, new Filter()
    +		{
    +			public boolean filter(Object cell)
    +			{
    +				return isCellFoldable(cell, collapse);
    +			}
    +		});
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is expandable. This implementation
    +	 * returns true if the cell has at least one child and its style
    +	 * does not specify mxConstants.STYLE_FOLDABLE to be 0.
    +	 *
    +	 * @param cell <mxCell> whose expandable state should be returned.
    +	 * @return Returns true if the given cell is expandable.
    +	 */
    +	public boolean isCellFoldable(Object cell, boolean collapse)
    +	{
    +		mxCellState state = view.getState(cell);
    +		Map<String, Object> style = (state != null) ? state.getStyle()
    +				: getCellStyle(cell);
    +
    +		return model.getChildCount(cell) > 0
    +				&& mxUtils.isTrue(style, mxConstants.STYLE_FOLDABLE, true);
    +	}
    +
    +	/**
    +	 * Returns true if the grid is enabled.
    +	 * 
    +	 * @return Returns the enabled state of the grid.
    +	 */
    +	public boolean isGridEnabled()
    +	{
    +		return gridEnabled;
    +	}
    +
    +	/**
    +	 * Sets if the grid is enabled.
    +	 * 
    +	 * @param value Specifies if the grid should be enabled.
    +	 */
    +	public void setGridEnabled(boolean value)
    +	{
    +		boolean oldValue = gridEnabled;
    +		gridEnabled = value;
    +
    +		changeSupport.firePropertyChange("gridEnabled", oldValue, gridSize);
    +	}
    +
    +	/**
    +	 * Returns the grid size.
    +	 * 
    +	 * @return Returns the grid size
    +	 */
    +	public int getGridSize()
    +	{
    +		return gridSize;
    +	}
    +
    +	/**
    +	 * Sets the grid size and fires a property change event for gridSize.
    +	 * 
    +	 * @param value New grid size to be used.
    +	 */
    +	public void setGridSize(int value)
    +	{
    +		int oldValue = gridSize;
    +		gridSize = value;
    +
    +		changeSupport.firePropertyChange("gridSize", oldValue, gridSize);
    +	}
    +
    +	/**
    +	 * Returns alternateEdgeStyle.
    +	 */
    +	public String getAlternateEdgeStyle()
    +	{
    +		return alternateEdgeStyle;
    +	}
    +
    +	/**
    +	 * Sets alternateEdgeStyle.
    +	 */
    +	public void setAlternateEdgeStyle(String value)
    +	{
    +		String oldValue = alternateEdgeStyle;
    +		alternateEdgeStyle = value;
    +
    +		changeSupport.firePropertyChange("alternateEdgeStyle", oldValue,
    +				alternateEdgeStyle);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is a valid drop target for the specified
    +	 * cells. This returns true if the cell is a swimlane, has children and is
    +	 * not collapsed, or if splitEnabled is true and isSplitTarget returns
    +	 * true for the given arguments
    +	 * 
    +	 * @param cell Object that represents the possible drop target.
    +	 * @param cells Objects that are going to be dropped.
    +	 * @return Returns true if the cell is a valid drop target for the given
    +	 * cells.
    +	 */
    +	public boolean isValidDropTarget(Object cell, Object[] cells)
    +	{
    +		return cell != null
    +				&& ((isSplitEnabled() && isSplitTarget(cell, cells)) || (!model
    +						.isEdge(cell) && (isSwimlane(cell) || (model
    +						.getChildCount(cell) > 0 && !isCellCollapsed(cell)))));
    +	}
    +
    +	/**
    +	 * Returns true if split is enabled and the given edge may be splitted into
    +	 * two edges with the given cell as a new terminal between the two.
    +	 * 
    +	 * @param target Object that represents the edge to be splitted.
    +	 * @param cells Array of cells to add into the given edge.
    +	 * @return Returns true if the given edge may be splitted by the given
    +	 * cell.
    +	 */
    +	public boolean isSplitTarget(Object target, Object[] cells)
    +	{
    +		if (target != null && cells != null && cells.length == 1)
    +		{
    +			Object src = model.getTerminal(target, true);
    +			Object trg = model.getTerminal(target, false);
    +
    +			return (model.isEdge(target)
    +					&& isCellConnectable(cells[0])
    +					&& getEdgeValidationError(target,
    +							model.getTerminal(target, true), cells[0]) == null
    +					&& !model.isAncestor(cells[0], src) && !model.isAncestor(
    +					cells[0], trg));
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns the given cell if it is a drop target for the given cells or the
    +	 * nearest ancestor that may be used as a drop target for the given cells.
    +	 * If the given array contains a swimlane and swimlaneNesting is false
    +	 * then this always returns null. If no cell is given, then the bottommost
    +	 * swimlane at the location of the given event is returned.
    +	 * 
    +	 * This function should only be used if isDropEnabled returns true.
    +	 */
    +	public Object getDropTarget(Object[] cells, Point pt, Object cell)
    +	{
    +		if (!isSwimlaneNesting())
    +		{
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				if (isSwimlane(cells[i]))
    +				{
    +					return null;
    +				}
    +			}
    +		}
    +
    +		// FIXME the else below does nothing if swimlane is null
    +		Object swimlane = null; //getSwimlaneAt(pt.x, pt.y);
    +
    +		if (cell == null)
    +		{
    +			cell = swimlane;
    +		}
    +		/*else if (swimlane != null)
    +		{
    +			// Checks if the cell is an ancestor of the swimlane
    +			// under the mouse and uses the swimlane in that case
    +			Object tmp = model.getParent(swimlane);
    +
    +			while (tmp != null && isSwimlane(tmp) && tmp != cell)
    +			{
    +				tmp = model.getParent(tmp);
    +			}
    +
    +			if (tmp == cell)
    +			{
    +				cell = swimlane;
    +			}
    +		}*/
    +
    +		while (cell != null && !isValidDropTarget(cell, cells)
    +				&& model.getParent(cell) != model.getRoot())
    +		{
    +			cell = model.getParent(cell);
    +		}
    +
    +		return (model.getParent(cell) != model.getRoot() && !mxUtils.contains(
    +				cells, cell)) ? cell : null;
    +	};
    +
    +	//
    +	// Cell retrieval
    +	//
    +
    +	/**
    +	 * Returns the first child of the root in the model, that is, the first or
    +	 * default layer of the diagram. 
    +	 * 
    +	 * @return Returns the default parent for new cells.
    +	 */
    +	public Object getDefaultParent()
    +	{
    +		Object parent = defaultParent;
    +
    +		if (parent == null)
    +		{
    +			parent = view.getCurrentRoot();
    +
    +			if (parent == null)
    +			{
    +				Object root = model.getRoot();
    +				parent = model.getChildAt(root, 0);
    +			}
    +		}
    +
    +		return parent;
    +	}
    +
    +	/**
    +	 * Sets the default parent to be returned by getDefaultParent.
    +	 * Set this to null to return the first child of the root in
    +	 * getDefaultParent.
    +	 */
    +	public void setDefaultParent(Object value)
    +	{
    +		defaultParent = value;
    +	}
    +
    +	/**
    +	 * Returns the visible child vertices of the given parent.
    +	 * 
    +	 * @param parent Cell whose children should be returned.
    +	 */
    +	public Object[] getChildVertices(Object parent)
    +	{
    +		return getChildCells(parent, true, false);
    +	}
    +
    +	/**
    +	 * Returns the visible child edges of the given parent.
    +	 * 
    +	 * @param parent Cell whose children should be returned.
    +	 */
    +	public Object[] getChildEdges(Object parent)
    +	{
    +		return getChildCells(parent, false, true);
    +	}
    +
    +	/**
    +	 * Returns the visible children of the given parent.
    +	 * 
    +	 * @param parent Cell whose children should be returned.
    +	 */
    +	public Object[] getChildCells(Object parent)
    +	{
    +		return getChildCells(parent, false, false);
    +	}
    +
    +	/**
    +	 * Returns the visible child vertices or edges in the given parent. If
    +	 * vertices and edges is false, then all children are returned.
    +	 * 
    +	 * @param parent Cell whose children should be returned.
    +	 * @param vertices Specifies if child vertices should be returned.
    +	 * @param edges Specifies if child edges should be returned.
    +	 * @return Returns the child vertices and edges.
    +	 */
    +	public Object[] getChildCells(Object parent, boolean vertices, boolean edges)
    +	{
    +		Object[] cells = mxGraphModel.getChildCells(model, parent, vertices,
    +				edges);
    +		List<Object> result = new ArrayList<Object>(cells.length);
    +
    +		// Filters out the non-visible child cells
    +		for (int i = 0; i < cells.length; i++)
    +		{
    +			if (isCellVisible(cells[i]))
    +			{
    +				result.add(cells[i]);
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Returns all visible edges connected to the given cell without loops.
    +	 * 
    +	 * @param cell Cell whose connections should be returned.
    +	 * @return Returns the connected edges for the given cell.
    +	 */
    +	public Object[] getConnections(Object cell)
    +	{
    +		return getConnections(cell, null);
    +	}
    +
    +	/**
    +	 * Returns all visible edges connected to the given cell without loops.
    +	 * If the optional parent argument is specified, then only child
    +	 * edges of the given parent are returned.
    +	 * 
    +	 * @param cell Cell whose connections should be returned.
    +	 * @param parent Optional parent of the opposite end for a connection
    +	 * to be returned.
    +	 * @return Returns the connected edges for the given cell.
    +	 */
    +	public Object[] getConnections(Object cell, Object parent)
    +	{
    +		return getConnections(cell, parent, false);
    +	}
    +
    +	/**
    +	 * Returns all visible edges connected to the given cell without loops.
    +	 * If the optional parent argument is specified, then only child
    +	 * edges of the given parent are returned.
    +	 * 
    +	 * @param cell Cell whose connections should be returned.
    +	 * @param parent Optional parent of the opposite end for a connection
    +	 * to be returned.
    +	 * @return Returns the connected edges for the given cell.
    +	 */
    +	public Object[] getConnections(Object cell, Object parent, boolean recurse)
    +	{
    +		return getEdges(cell, parent, true, true, false, recurse);
    +	}
    +
    +	/**
    +	 * Returns all incoming visible edges connected to the given cell without
    +	 * loops.
    +	 * 
    +	 * @param cell Cell whose incoming edges should be returned.
    +	 * @return Returns the incoming edges of the given cell.
    +	 */
    +	public Object[] getIncomingEdges(Object cell)
    +	{
    +		return getIncomingEdges(cell, null);
    +	}
    +
    +	/**
    +	 * Returns the visible incoming edges for the given cell. If the optional
    +	 * parent argument is specified, then only child edges of the given parent
    +	 * are returned.
    +	 * 
    +	 * @param cell Cell whose incoming edges should be returned.
    +	 * @param parent Optional parent of the opposite end for an edge
    +	 * to be returned.
    +	 * @return Returns the incoming edges of the given cell.
    +	 */
    +	public Object[] getIncomingEdges(Object cell, Object parent)
    +	{
    +		return getEdges(cell, parent, true, false, false);
    +	}
    +
    +	/**
    +	 * Returns all outgoing visible edges connected to the given cell without
    +	 * loops.
    +	 * 
    +	 * @param cell Cell whose outgoing edges should be returned.
    +	 * @return Returns the outgoing edges of the given cell.
    +	 */
    +	public Object[] getOutgoingEdges(Object cell)
    +	{
    +		return getOutgoingEdges(cell, null);
    +	}
    +
    +	/**
    +	 * Returns the visible outgoing edges for the given cell. If the optional
    +	 * parent argument is specified, then only child edges of the given parent
    +	 * are returned.
    +	 * 
    +	 * @param cell Cell whose outgoing edges should be returned.
    +	 * @param parent Optional parent of the opposite end for an edge
    +	 * to be returned.
    +	 * @return Returns the outgoing edges of the given cell.
    +	 */
    +	public Object[] getOutgoingEdges(Object cell, Object parent)
    +	{
    +		return getEdges(cell, parent, false, true, false);
    +	}
    +
    +	/**
    +	 * Returns all visible edges connected to the given cell including loops.
    +	 *
    +	 * @param cell Cell whose edges should be returned.
    +	 * @return Returns the edges of the given cell.
    +	 */
    +	public Object[] getEdges(Object cell)
    +	{
    +		return getEdges(cell, null);
    +	}
    +
    +	/**
    +	 * Returns all visible edges connected to the given cell including loops.
    +	 * 
    +	 * @param cell Cell whose edges should be returned.
    +	 * @param parent Optional parent of the opposite end for an edge
    +	 * to be returned.
    +	 * @return Returns the edges of the given cell.
    +	 */
    +	public Object[] getEdges(Object cell, Object parent)
    +	{
    +		return getEdges(cell, parent, true, true, true);
    +	}
    +
    +	/**
    +	 * Returns the incoming and/or outgoing edges for the given cell.
    +	 * If the optional parent argument is specified, then only edges are returned
    +	 * where the opposite is in the given parent cell.
    +	 * 
    +	 * @param cell Cell whose edges should be returned.
    +	 * @param parent Optional parent. If specified the opposite end of any edge
    +	 * must be a direct child of that parent in order for the edge to be returned.
    +	 * @param incoming Specifies if incoming edges should be included in the
    +	 * result.
    +	 * @param outgoing Specifies if outgoing edges should be included in the
    +	 * result.
    +	 * @param includeLoops Specifies if loops should be included in the result.
    +	 * @return Returns the edges connected to the given cell.
    +	 */
    +	public Object[] getEdges(Object cell, Object parent, boolean incoming,
    +			boolean outgoing, boolean includeLoops)
    +	{
    +		return getEdges(cell, parent, incoming, outgoing, includeLoops, false);
    +	}
    +
    +	/**
    +	 * Returns the incoming and/or outgoing edges for the given cell.
    +	 * If the optional parent argument is specified, then only edges are returned
    +	 * where the opposite is in the given parent cell.
    +	 * 
    +	 * @param cell Cell whose edges should be returned.
    +	 * @param parent Optional parent. If specified the opposite end of any edge
    +	 * must be a child of that parent in order for the edge to be returned. The
    +	 * recurse parameter specifies whether or not it must be the direct child
    +	 * or the parent just be an ancestral parent.
    +	 * @param incoming Specifies if incoming edges should be included in the
    +	 * result.
    +	 * @param outgoing Specifies if outgoing edges should be included in the
    +	 * result.
    +	 * @param includeLoops Specifies if loops should be included in the result.
    +	 * @param recurse Specifies if the parent specified only need be an ancestral
    +	 * parent, <code>true</code>, or the direct parent, <code>false</code>
    +	 * @return Returns the edges connected to the given cell.
    +	 */
    +	public Object[] getEdges(Object cell, Object parent, boolean incoming,
    +			boolean outgoing, boolean includeLoops, boolean recurse)
    +	{
    +		boolean isCollapsed = isCellCollapsed(cell);
    +		List<Object> edges = new ArrayList<Object>();
    +		int childCount = model.getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object child = model.getChildAt(cell, i);
    +
    +			if (isCollapsed || !isCellVisible(child))
    +			{
    +				edges.addAll(Arrays.asList(mxGraphModel.getEdges(model, child,
    +						incoming, outgoing, includeLoops)));
    +			}
    +		}
    +
    +		edges.addAll(Arrays.asList(mxGraphModel.getEdges(model, cell, incoming,
    +				outgoing, includeLoops)));
    +		List<Object> result = new ArrayList<Object>(edges.size());
    +		Iterator<Object> it = edges.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			Object edge = it.next();
    +			mxCellState state = view.getState(edge);
    +			Object source = (state != null) ? state.getVisibleTerminal(true)
    +					: view.getVisibleTerminal(edge, true);
    +			Object target = (state != null) ? state.getVisibleTerminal(false)
    +					: view.getVisibleTerminal(edge, false);
    +
    +			if ((includeLoops && source == target)
    +					|| ((source != target) && ((incoming && target == cell && (parent == null || isValidAncestor(
    +							source, parent, recurse))) || (outgoing
    +							&& source == cell && (parent == null || isValidAncestor(
    +							target, parent, recurse))))))
    +			{
    +				result.add(edge);
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Returns whether or not the specified parent is a valid
    +	 * ancestor of the specified cell, either direct or indirectly
    +	 * based on whether ancestor recursion is enabled.
    +	 * @param cell the possible child cell
    +	 * @param parent the possible parent cell
    +	 * @param recurse whether or not to recurse the child ancestors
    +	 * @return whether or not the specified parent is a valid
    +	 * ancestor of the specified cell, either direct or indirectly
    +	 * based on whether ancestor recursion is enabled.
    +	 */
    +	public boolean isValidAncestor(Object cell, Object parent, boolean recurse)
    +	{
    +		return (recurse ? model.isAncestor(parent, cell) : model
    +				.getParent(cell) == parent);
    +	}
    +
    +	/**
    +	 * Returns all distinct visible opposite cells of the terminal on the given
    +	 * edges.
    +	 * 
    +	 * @param edges
    +	 * @param terminal
    +	 * @return Returns the terminals at the opposite ends of the given edges.
    +	 */
    +	public Object[] getOpposites(Object[] edges, Object terminal)
    +	{
    +		return getOpposites(edges, terminal, true, true);
    +	}
    +
    +	/**
    +	 * Returns all distincts visible opposite cells for the specified terminal
    +	 * on the given edges.
    +	 * 
    +	 * @param edges Edges whose opposite terminals should be returned.
    +	 * @param terminal Terminal that specifies the end whose opposite should be
    +	 * returned.
    +	 * @param sources Specifies if source terminals should be included in the
    +	 * result.
    +	 * @param targets Specifies if targer terminals should be included in the
    +	 * result.
    +	 * @return Returns the cells at the oppsite ends of the given edges.
    +	 */
    +	public Object[] getOpposites(Object[] edges, Object terminal,
    +			boolean sources, boolean targets)
    +	{
    +		Collection<Object> terminals = new LinkedHashSet<Object>();
    +
    +		if (edges != null)
    +		{
    +			for (int i = 0; i < edges.length; i++)
    +			{
    +				mxCellState state = view.getState(edges[i]);
    +				Object source = (state != null) ? state
    +						.getVisibleTerminal(true) : view.getVisibleTerminal(
    +						edges[i], true);
    +				Object target = (state != null) ? state
    +						.getVisibleTerminal(false) : view.getVisibleTerminal(
    +						edges[i], false);
    +
    +				// Checks if the terminal is the source of
    +				// the edge and if the target should be
    +				// stored in the result
    +				if (targets && source == terminal && target != null
    +						&& target != terminal)
    +				{
    +					terminals.add(target);
    +				}
    +
    +				// Checks if the terminal is the taget of
    +				// the edge and if the source should be
    +				// stored in the result
    +				else if (sources && target == terminal && source != null
    +						&& source != terminal)
    +				{
    +					terminals.add(source);
    +				}
    +			}
    +		}
    +
    +		return terminals.toArray();
    +	}
    +
    +	/**
    +	 * Returns the edges between the given source and target. This takes into
    +	 * account collapsed and invisible cells and returns the connected edges
    +	 * as displayed on the screen.
    +	 * 
    +	 * @param source
    +	 * @param target
    +	 * @return Returns all edges between the given terminals.
    +	 */
    +	public Object[] getEdgesBetween(Object source, Object target)
    +	{
    +		return getEdgesBetween(source, target, false);
    +	}
    +
    +	/**
    +	 * Returns the edges between the given source and target. This takes into
    +	 * account collapsed and invisible cells and returns the connected edges
    +	 * as displayed on the screen.
    +	 * 
    +	 * @param source
    +	 * @param target
    +	 * @param directed
    +	 * @return Returns all edges between the given terminals.
    +	 */
    +	public Object[] getEdgesBetween(Object source, Object target,
    +			boolean directed)
    +	{
    +		Object[] edges = getEdges(source);
    +		List<Object> result = new ArrayList<Object>(edges.length);
    +
    +		// Checks if the edge is connected to the correct
    +		// cell and adds any match to the result
    +		for (int i = 0; i < edges.length; i++)
    +		{
    +			mxCellState state = view.getState(edges[i]);
    +			Object src = (state != null) ? state.getVisibleTerminal(true)
    +					: view.getVisibleTerminal(edges[i], true);
    +			Object trg = (state != null) ? state.getVisibleTerminal(false)
    +					: view.getVisibleTerminal(edges[i], false);
    +
    +			if ((src == source && trg == target)
    +					|| (!directed && src == target && trg == source))
    +			{
    +				result.add(edges[i]);
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Returns the children of the given parent that are contained in the
    +	 * halfpane from the given point (x0, y0) rightwards and downwards
    +	 * depending on rightHalfpane and bottomHalfpane.
    +	 * 
    +	 * @param x0 X-coordinate of the origin.
    +	 * @param y0 Y-coordinate of the origin.
    +	 * @param parent <mxCell> whose children should be checked.
    +	 * @param rightHalfpane Boolean indicating if the cells in the right halfpane
    +	 * from the origin should be returned.
    +	 * @param bottomHalfpane Boolean indicating if the cells in the bottom halfpane
    +	 * from the origin should be returned.
    +	 * @return Returns the cells beyond the given halfpane.
    +	 */
    +	public Object[] getCellsBeyond(double x0, double y0, Object parent,
    +			boolean rightHalfpane, boolean bottomHalfpane)
    +	{
    +		if (parent == null)
    +		{
    +			parent = getDefaultParent();
    +		}
    +
    +		int childCount = model.getChildCount(parent);
    +		List<Object> result = new ArrayList<Object>(childCount);
    +
    +		if (rightHalfpane || bottomHalfpane)
    +		{
    +
    +			if (parent != null)
    +			{
    +				for (int i = 0; i < childCount; i++)
    +				{
    +					Object child = model.getChildAt(parent, i);
    +					mxCellState state = view.getState(child);
    +
    +					if (isCellVisible(child) && state != null)
    +					{
    +						if ((!rightHalfpane || state.getX() >= x0)
    +								&& (!bottomHalfpane || state.getY() >= y0))
    +						{
    +							result.add(child);
    +						}
    +					}
    +				}
    +			}
    +		}
    +
    +		return result.toArray();
    +	}
    +
    +	/**
    +	 * Returns all visible children in the given parent which do not have
    +	 * incoming edges. If the result is empty then the with the greatest
    +	 * difference between incoming and outgoing edges is returned. This
    +	 * takes into account edges that are being promoted to the given
    +	 * root due to invisible children or collapsed cells.
    +	 * 
    +	 * @param parent Cell whose children should be checked.
    +	 * @return List of tree roots in parent.
    +	 */
    +	public List<Object> findTreeRoots(Object parent)
    +	{
    +		return findTreeRoots(parent, false);
    +	}
    +
    +	/**
    +	 * Returns all visible children in the given parent which do not have
    +	 * incoming edges. If the result is empty then the children with the
    +	 * maximum difference between incoming and outgoing edges are returned.
    +	 * This takes into account edges that are being promoted to the given
    +	 * root due to invisible children or collapsed cells.
    +	 * 
    +	 * @param parent Cell whose children should be checked.
    +	 * @param isolate Specifies if edges should be ignored if the opposite
    +	 * end is not a child of the given parent cell.
    +	 * @return List of tree roots in parent.
    +	 */
    +	public List<Object> findTreeRoots(Object parent, boolean isolate)
    +	{
    +		return findTreeRoots(parent, isolate, false);
    +	}
    +
    +	/**
    +	 * Returns all visible children in the given parent which do not have
    +	 * incoming edges. If the result is empty then the children with the
    +	 * maximum difference between incoming and outgoing edges are returned.
    +	 * This takes into account edges that are being promoted to the given
    +	 * root due to invisible children or collapsed cells.
    +	 * 
    +	 * @param parent Cell whose children should be checked.
    +	 * @param isolate Specifies if edges should be ignored if the opposite
    +	 * end is not a child of the given parent cell.
    +	 * @param invert Specifies if outgoing or incoming edges should be counted
    +	 * for a tree root. If false then outgoing edges will be counted.
    +	 * @return List of tree roots in parent.
    +	 */
    +	public List<Object> findTreeRoots(Object parent, boolean isolate,
    +			boolean invert)
    +	{
    +		List<Object> roots = new ArrayList<Object>();
    +
    +		if (parent != null)
    +		{
    +			int childCount = model.getChildCount(parent);
    +			Object best = null;
    +			int maxDiff = 0;
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				Object cell = model.getChildAt(parent, i);
    +
    +				if (model.isVertex(cell) && isCellVisible(cell))
    +				{
    +					Object[] conns = getConnections(cell, (isolate) ? parent
    +							: null);
    +					int fanOut = 0;
    +					int fanIn = 0;
    +
    +					for (int j = 0; j < conns.length; j++)
    +					{
    +						Object src = view.getVisibleTerminal(conns[j], true);
    +
    +						if (src == cell)
    +						{
    +							fanOut++;
    +						}
    +						else
    +						{
    +							fanIn++;
    +						}
    +					}
    +
    +					if ((invert && fanOut == 0 && fanIn > 0)
    +							|| (!invert && fanIn == 0 && fanOut > 0))
    +					{
    +						roots.add(cell);
    +					}
    +
    +					int diff = (invert) ? fanIn - fanOut : fanOut - fanIn;
    +
    +					if (diff > maxDiff)
    +					{
    +						maxDiff = diff;
    +						best = cell;
    +					}
    +				}
    +			}
    +
    +			if (roots.isEmpty() && best != null)
    +			{
    +				roots.add(best);
    +			}
    +		}
    +
    +		return roots;
    +	}
    +
    +	/**
    +	 * Traverses the tree starting at the given vertex. Here is how to use this
    +	 * method for a given vertex (root) which is typically the root of a tree:
    +	 * <code>
    +	 * graph.traverse(root, true, new mxICellVisitor()
    +	 * {
    +	 *   public boolean visit(Object vertex, Object edge)
    +	 *   {
    +	 *     System.out.println("edge="+graph.convertValueToString(edge)+
    +	 *       " vertex="+graph.convertValueToString(vertex));
    +	 *     
    +	 *     return true;
    +	 *   }
    +	 * });
    +	 * </code>
    +	 * 
    +	 * @param vertex
    +	 * @param directed
    +	 * @param visitor
    +	 */
    +	public void traverse(Object vertex, boolean directed, mxICellVisitor visitor)
    +	{
    +		traverse(vertex, directed, visitor, null, null);
    +	}
    +
    +	/**
    +	 * Traverses the (directed) graph invoking the given function for each
    +	 * visited vertex and edge. The function is invoked with the current vertex
    +	 * and the incoming edge as a parameter. This implementation makes sure
    +	 * each vertex is only visited once. The function may return false if the
    +	 * traversal should stop at the given vertex.
    +	 * 
    +	 * @param vertex <mxCell> that represents the vertex where the traversal starts.
    +	 * @param directed Optional boolean indicating if edges should only be traversed
    +	 * from source to target. Default is true.
    +	 * @param visitor Visitor that takes the current vertex and the incoming edge.
    +	 * The traversal stops if the function returns false.
    +	 * @param edge Optional <mxCell> that represents the incoming edge. This is
    +	 * null for the first step of the traversal.
    +	 * @param visited Optional array of cell paths for the visited cells.
    +	 */
    +	public void traverse(Object vertex, boolean directed,
    +			mxICellVisitor visitor, Object edge, Set<Object> visited)
    +	{
    +		if (vertex != null && visitor != null)
    +		{
    +			if (visited == null)
    +			{
    +				visited = new HashSet<Object>();
    +			}
    +
    +			if (!visited.contains(vertex))
    +			{
    +				visited.add(vertex);
    +
    +				if (visitor.visit(vertex, edge))
    +				{
    +					int edgeCount = model.getEdgeCount(vertex);
    +
    +					if (edgeCount > 0)
    +					{
    +						for (int i = 0; i < edgeCount; i++)
    +						{
    +							Object e = model.getEdgeAt(vertex, i);
    +							boolean isSource = model.getTerminal(e, true) == vertex;
    +
    +							if (!directed || isSource)
    +							{
    +								Object next = model.getTerminal(e, !isSource);
    +								traverse(next, directed, visitor, e, visited);
    +							}
    +						}
    +					}
    +				}
    +			}
    +		}
    +	}
    +
    +	//
    +	// Selection
    +	//
    +
    +	/**
    +	 * 
    +	 */
    +	public mxGraphSelectionModel getSelectionModel()
    +	{
    +		return selectionModel;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public int getSelectionCount()
    +	{
    +		return selectionModel.size();
    +	}
    +
    +	/**
    +	 * 
    +	 * @param cell
    +	 * @return Returns true if the given cell is selected.
    +	 */
    +	public boolean isCellSelected(Object cell)
    +	{
    +		return selectionModel.isSelected(cell);
    +	}
    +
    +	/**
    +	 * 
    +	 * @return Returns true if the selection is empty.
    +	 */
    +	public boolean isSelectionEmpty()
    +	{
    +		return selectionModel.isEmpty();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void clearSelection()
    +	{
    +		selectionModel.clear();
    +	}
    +
    +	/**
    +	 * 
    +	 * @return Returns the selection cell.
    +	 */
    +	public Object getSelectionCell()
    +	{
    +		return selectionModel.getCell();
    +	}
    +
    +	/**
    +	 * 
    +	 * @param cell
    +	 */
    +	public void setSelectionCell(Object cell)
    +	{
    +		selectionModel.setCell(cell);
    +	}
    +
    +	/**
    +	 * 
    +	 * @return Returns the selection cells.
    +	 */
    +	public Object[] getSelectionCells()
    +	{
    +		return selectionModel.getCells();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void setSelectionCells(Object[] cells)
    +	{
    +		selectionModel.setCells(cells);
    +	}
    +
    +	/**
    +	 * 
    +	 * @param cells
    +	 */
    +	public void setSelectionCells(Collection<Object> cells)
    +	{
    +		if (cells != null)
    +		{
    +			setSelectionCells(cells.toArray());
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void addSelectionCell(Object cell)
    +	{
    +		selectionModel.addCell(cell);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void addSelectionCells(Object[] cells)
    +	{
    +		selectionModel.addCells(cells);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void removeSelectionCell(Object cell)
    +	{
    +		selectionModel.removeCell(cell);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void removeSelectionCells(Object[] cells)
    +	{
    +		selectionModel.removeCells(cells);
    +	}
    +
    +	/**
    +	 * Selects the next cell.
    +	 */
    +	public void selectNextCell()
    +	{
    +		selectCell(true, false, false);
    +	}
    +
    +	/**
    +	 * Selects the previous cell.
    +	 */
    +	public void selectPreviousCell()
    +	{
    +		selectCell(false, false, false);
    +	}
    +
    +	/**
    +	 * Selects the parent cell.
    +	 */
    +	public void selectParentCell()
    +	{
    +		selectCell(false, true, false);
    +	}
    +
    +	/**
    +	 * Selects the first child cell.
    +	 */
    +	public void selectChildCell()
    +	{
    +		selectCell(false, false, true);
    +	}
    +
    +	/**
    +	 * Selects the next, parent, first child or previous cell, if all arguments
    +	 * are false.
    +	 * 
    +	 * @param isNext
    +	 * @param isParent
    +	 * @param isChild
    +	 */
    +	public void selectCell(boolean isNext, boolean isParent, boolean isChild)
    +	{
    +		Object cell = getSelectionCell();
    +
    +		if (getSelectionCount() > 1)
    +		{
    +			clearSelection();
    +		}
    +
    +		Object parent = (cell != null) ? model.getParent(cell)
    +				: getDefaultParent();
    +		int childCount = model.getChildCount(parent);
    +
    +		if (cell == null && childCount > 0)
    +		{
    +			Object child = model.getChildAt(parent, 0);
    +			setSelectionCell(child);
    +		}
    +		else if ((cell == null || isParent) && view.getState(parent) != null
    +				&& model.getGeometry(parent) != null)
    +		{
    +			if (getCurrentRoot() != parent)
    +			{
    +				setSelectionCell(parent);
    +			}
    +		}
    +		else if (cell != null && isChild)
    +		{
    +			int tmp = model.getChildCount(cell);
    +
    +			if (tmp > 0)
    +			{
    +				Object child = model.getChildAt(cell, 0);
    +				setSelectionCell(child);
    +			}
    +		}
    +		else if (childCount > 0)
    +		{
    +			int i = ((mxICell) parent).getIndex((mxICell) cell);
    +
    +			if (isNext)
    +			{
    +				i++;
    +				setSelectionCell(model.getChildAt(parent, i % childCount));
    +			}
    +			else
    +			{
    +				i--;
    +				int index = (i < 0) ? childCount - 1 : i;
    +				setSelectionCell(model.getChildAt(parent, index));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Selects all vertices inside the default parent.
    +	 */
    +	public void selectVertices()
    +	{
    +		selectVertices(null);
    +	}
    +
    +	/**
    +	 * Selects all vertices inside the given parent or the default parent
    +	 * if no parent is given.
    +	 */
    +	public void selectVertices(Object parent)
    +	{
    +		selectCells(true, false, parent);
    +	}
    +
    +	/**
    +	 * Selects all vertices inside the default parent.
    +	 */
    +	public void selectEdges()
    +	{
    +		selectEdges(null);
    +	}
    +
    +	/**
    +	 * Selects all vertices inside the given parent or the default parent
    +	 * if no parent is given.
    +	 */
    +	public void selectEdges(Object parent)
    +	{
    +		selectCells(false, true, parent);
    +	}
    +
    +	/**
    +	 * Selects all vertices and/or edges depending on the given boolean
    +	 * arguments recursively, starting at the default parent. Use
    +	 * <code>selectAll</code> to select all cells.
    +	 *  
    +	 * @param vertices Boolean indicating if vertices should be selected.
    +	 * @param edges Boolean indicating if edges should be selected.
    +	 */
    +	public void selectCells(boolean vertices, boolean edges)
    +	{
    +		selectCells(vertices, edges, null);
    +	}
    +
    +	/**
    +	 * Selects all vertices and/or edges depending on the given boolean
    +	 * arguments recursively, starting at the given parent or the default
    +	 * parent if no parent is specified. Use <code>selectAll</code> to select
    +	 * all cells.
    +	 * 
    +	 * @param vertices Boolean indicating if vertices should be selected.
    +	 * @param edges Boolean indicating if edges should be selected.
    +	 * @param parent Optional cell that acts as the root of the recursion.
    +	 * Default is <code>defaultParent</code>.
    +	 */
    +	public void selectCells(final boolean vertices, final boolean edges,
    +			Object parent)
    +	{
    +		if (parent == null)
    +		{
    +			parent = getDefaultParent();
    +		}
    +
    +		Collection<Object> cells = mxGraphModel.filterDescendants(getModel(),
    +				new mxGraphModel.Filter()
    +				{
    +
    +					/**
    +					 * 
    +					 */
    +					public boolean filter(Object cell)
    +					{
    +						return view.getState(cell) != null
    +								&& model.getChildCount(cell) == 0
    +								&& ((model.isVertex(cell) && vertices) || (model
    +										.isEdge(cell) && edges));
    +					}
    +
    +				});
    +		setSelectionCells(cells);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void selectAll()
    +	{
    +		selectAll(null);
    +	}
    +
    +	/**
    +	 * Selects all children of the given parent cell or the children of the
    +	 * default parent if no parent is specified. To select leaf vertices and/or
    +	 * edges use <selectCells>.
    +	 * 
    +	 * @param parent  Optional <mxCell> whose children should be selected.
    +	 * Default is <defaultParent>.
    +	 */
    +	public void selectAll(Object parent)
    +	{
    +		if (parent == null)
    +		{
    +			parent = getDefaultParent();
    +		}
    +
    +		Object[] children = mxGraphModel.getChildren(model, parent);
    +
    +		if (children != null)
    +		{
    +			setSelectionCells(children);
    +		}
    +	}
    +
    +	//
    +	// Images and drawing
    +	//
    +
    +	/**
    +	 * Draws the graph onto the given canvas.
    +	 * 
    +	 * @param canvas Canvas onto which the graph should be drawn.
    +	 */
    +	public void drawGraph(mxICanvas canvas)
    +	{
    +		drawCell(canvas, getModel().getRoot());
    +	}
    +
    +	/**
    +	 * Draws the given cell and its descendants onto the specified canvas.
    +	 * 
    +	 * @param canvas Canvas onto which the cell should be drawn.
    +	 * @param cell Cell that should be drawn onto the canvas.
    +	 */
    +	public void drawCell(mxICanvas canvas, Object cell)
    +	{
    +		drawState(canvas, getView().getState(cell), true);
    +
    +		// Draws the children on top of their parent
    +		int childCount = model.getChildCount(cell);
    +
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object child = model.getChildAt(cell, i);
    +			drawCell(canvas, child);
    +		}
    +	}
    +
    +	/**
    +	 * Draws the cell state with the given label onto the canvas. No
    +	 * children or descendants are painted here. This method invokes
    +	 * cellDrawn after the cell, but not its descendants have been
    +	 * painted.
    +	 * 
    +	 * @param canvas Canvas onto which the cell should be drawn.
    +	 * @param state State of the cell to be drawn.
    +	 * @param drawLabel Indicates if the label should be drawn.
    +	 */
    +	public void drawState(mxICanvas canvas, mxCellState state, boolean drawLabel)
    +	{
    +		Object cell = (state != null) ? state.getCell() : null;
    +
    +		if (cell != null && cell != view.getCurrentRoot()
    +				&& cell != model.getRoot()
    +				&& (model.isVertex(cell) || model.isEdge(cell)))
    +		{
    +			Object obj = canvas.drawCell(state);
    +			Object lab = null;
    +
    +			// Holds the current clipping region in case the label will
    +			// be clipped
    +			Shape clip = null;
    +			Rectangle newClip = state.getRectangle();
    +
    +			// Indirection for image canvas that contains a graphics canvas
    +			mxICanvas clippedCanvas = (isLabelClipped(state.getCell())) ? canvas
    +					: null;
    +
    +			if (clippedCanvas instanceof mxImageCanvas)
    +			{
    +				clippedCanvas = ((mxImageCanvas) clippedCanvas)
    +						.getGraphicsCanvas();
    +				// TODO: Shift newClip to match the image offset
    +				//Point pt = ((mxImageCanvas) canvas).getTranslate();
    +				//newClip.translate(-pt.x, -pt.y);
    +			}
    +
    +			if (clippedCanvas instanceof mxGraphics2DCanvas)
    +			{
    +				Graphics g = ((mxGraphics2DCanvas) clippedCanvas).getGraphics();
    +				clip = g.getClip();
    +				g.setClip(newClip);
    +			}
    +
    +			if (drawLabel)
    +			{
    +				String label = state.getLabel();
    +
    +				if (label != null && state.getLabelBounds() != null)
    +				{
    +					lab = canvas.drawLabel(label, state, isHtmlLabel(cell));
    +				}
    +			}
    +
    +			// Restores the previous clipping region
    +			if (clippedCanvas instanceof mxGraphics2DCanvas)
    +			{
    +				((mxGraphics2DCanvas) clippedCanvas).getGraphics()
    +						.setClip(clip);
    +			}
    +
    +			// Invokes the cellDrawn callback with the object which was created
    +			// by the canvas to represent the cell graphically
    +			if (obj != null)
    +			{
    +				cellDrawn(canvas, state, obj, lab);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Called when a cell has been painted as the specified object, typically a
    +	 * DOM node that represents the given cell graphically in a document.
    +	 */
    +	protected void cellDrawn(mxICanvas canvas, mxCellState state,
    +			Object element, Object labelElement)
    +	{
    +		if (element instanceof Element)
    +		{
    +			String link = getLinkForCell(state.getCell());
    +
    +			if (link != null)
    +			{
    +				String title = getToolTipForCell(state.getCell());
    +				Element elem = (Element) element;
    +
    +				if (elem.getNodeName().startsWith("v:"))
    +				{
    +					elem.setAttribute("href", link.toString());
    +
    +					if (title != null)
    +					{
    +						elem.setAttribute("title", title);
    +					}
    +				}
    +				else if (elem.getOwnerDocument().getElementsByTagName("svg")
    +						.getLength() > 0)
    +				{
    +					Element xlink = elem.getOwnerDocument().createElement("a");
    +					xlink.setAttribute("xlink:href", link.toString());
    +
    +					elem.getParentNode().replaceChild(xlink, elem);
    +					xlink.appendChild(elem);
    +
    +					if (title != null)
    +					{
    +						xlink.setAttribute("xlink:title", title);
    +					}
    +
    +					elem = xlink;
    +				}
    +				else
    +				{
    +					Element a = elem.getOwnerDocument().createElement("a");
    +					a.setAttribute("href", link.toString());
    +					a.setAttribute("style", "text-decoration:none;");
    +
    +					elem.getParentNode().replaceChild(a, elem);
    +					a.appendChild(elem);
    +
    +					if (title != null)
    +					{
    +						a.setAttribute("title", title);
    +					}
    +
    +					elem = a;
    +				}
    +
    +				String target = getTargetForCell(state.getCell());
    +
    +				if (target != null)
    +				{
    +					elem.setAttribute("target", target);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the hyperlink to be used for the given cell.
    +	 */
    +	protected String getLinkForCell(Object cell)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the hyperlink to be used for the given cell.
    +	 */
    +	protected String getTargetForCell(Object cell)
    +	{
    +		return null;
    +	}
    +
    +	//
    +	// Redirected to change support
    +	//
    +
    +	/**
    +	 * @param listener
    +	 * @see java.beans.PropertyChangeSupport#addPropertyChangeListener(java.beans.PropertyChangeListener)
    +	 */
    +	public void addPropertyChangeListener(PropertyChangeListener listener)
    +	{
    +		changeSupport.addPropertyChangeListener(listener);
    +	}
    +
    +	/**
    +	 * @param propertyName
    +	 * @param listener
    +	 * @see java.beans.PropertyChangeSupport#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
    +	 */
    +	public void addPropertyChangeListener(String propertyName,
    +			PropertyChangeListener listener)
    +	{
    +		changeSupport.addPropertyChangeListener(propertyName, listener);
    +	}
    +
    +	/**
    +	 * @param listener
    +	 * @see java.beans.PropertyChangeSupport#removePropertyChangeListener(java.beans.PropertyChangeListener)
    +	 */
    +	public void removePropertyChangeListener(PropertyChangeListener listener)
    +	{
    +		changeSupport.removePropertyChangeListener(listener);
    +	}
    +
    +	/**
    +	 * @param propertyName
    +	 * @param listener
    +	 * @see java.beans.PropertyChangeSupport#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
    +	 */
    +	public void removePropertyChangeListener(String propertyName,
    +			PropertyChangeListener listener)
    +	{
    +		changeSupport.removePropertyChangeListener(propertyName, listener);
    +	}
    +
    +	/**
    +	 * Prints the version number on the console. 
    +	 */
    +	public static void main(String[] args)
    +	{
    +		System.out.println("mxGraph version \"" + VERSION + "\"");
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxGraphSelectionModel.java b/java/src/com/mxgraph/view/mxGraphSelectionModel.java
    new file mode 100644
    index 000000000..330f64065
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxGraphSelectionModel.java
    @@ -0,0 +1,395 @@
    +/*
    + * $Id: mxGraphSelectionModel.java,v 1.10 2011-01-06 08:14:09 gaudenz Exp $
    + * Copyright (c) 2001-2005, Gaudenz Alder
    + * 
    + * All rights reserved.
    + * 
    + * See LICENSE file for license details. If you are unable to locate
    + * this file please contact info (at) jgraph (dot) com.
    + */
    +package com.mxgraph.view;
    +
    +import java.util.ArrayList;
    +import java.util.Collection;
    +import java.util.Iterator;
    +import java.util.LinkedHashSet;
    +import java.util.List;
    +import java.util.Set;
    +
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxUndoableEdit;
    +import com.mxgraph.util.mxUndoableEdit.mxUndoableChange;
    +
    +/**
    + * Implements the selection model for a graph.
    + * 
    + * This class fires the following events:
    + * 
    + * mxEvent.UNDO fires after the selection was changed in changeSelection. The
    + * <code>edit</code> property contains the mxUndoableEdit which contains the
    + * mxSelectionChange.
    + * 
    + * mxEvent.CHANGE fires after the selection changes by executing an
    + * mxSelectionChange. The <code>added</code> and <code>removed</code>
    + * properties contain Collections of cells that have been added to or removed
    + * from the selection, respectively.
    + *  
    + * To add a change listener to the graph selection model:
    + * 
    + * <code>
    + * addListener(
    + *   mxEvent.CHANGE, new mxIEventListener()
    + *   {
    + *     public void invoke(Object sender, mxEventObject evt)
    + *     {
    + *       mxGraphSelectionModel model = (mxSelectionModel) sender;
    + *       Collection added = (Collection) evt.getProperty("added");
    + *       Collection removed = (Collection) evt.getProperty("removed");
    + *       selectionChanged(model, added, removed);
    + *     }
    + *   });
    + * </code>
    + */
    +public class mxGraphSelectionModel extends mxEventSource
    +{
    +
    +	/**
    +	 * Reference to the enclosing graph.
    +	 */
    +	protected mxGraph graph;
    +
    +	/**
    +	 * Specifies if only one selected item at a time is allowed.
    +	 * Default is false.
    +	 */
    +	protected boolean singleSelection = false;
    +
    +	/**
    +	 * Holds the selection cells.
    +	 */
    +	protected Set<Object> cells = new LinkedHashSet<Object>();
    +
    +	/**
    +	 * Constructs a new selection model for the specified graph.
    +	 * 
    +	 * @param graph
    +	 */
    +	public mxGraphSelectionModel(mxGraph graph)
    +	{
    +		this.graph = graph;
    +	}
    +
    +	/**
    +	 * @return the singleSelection
    +	 */
    +	public boolean isSingleSelection()
    +	{
    +		return singleSelection;
    +	}
    +
    +	/**
    +	 * @param singleSelection the singleSelection to set
    +	 */
    +	public void setSingleSelection(boolean singleSelection)
    +	{
    +		this.singleSelection = singleSelection;
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is selected.
    +	 * 
    +	 * @param cell
    +	 * @return Returns true if the given cell is selected.
    +	 */
    +	public boolean isSelected(Object cell)
    +	{
    +		return (cell == null) ? false : cells.contains(cell);
    +	}
    +
    +	/**
    +	 * Returns true if no cells are selected.
    +	 */
    +	public boolean isEmpty()
    +	{
    +		return cells.isEmpty();
    +	}
    +
    +	/**
    +	 * Returns the number of selected cells.
    +	 */
    +	public int size()
    +	{
    +		return cells.size();
    +	}
    +
    +	/**
    +	 * Clears the selection.
    +	 */
    +	public void clear()
    +	{
    +		changeSelection(null, cells);
    +	}
    +
    +	/**
    +	 * Returns the first selected cell.
    +	 */
    +	public Object getCell()
    +	{
    +		return (cells.isEmpty()) ? null : cells.iterator().next();
    +	}
    +
    +	/**
    +	 * Returns the selection cells.
    +	 */
    +	public Object[] getCells()
    +	{
    +		return cells.toArray();
    +	}
    +
    +	/**
    +	 * Clears the selection and adds the given cell to the selection.
    +	 */
    +	public void setCell(Object cell)
    +	{
    +		if (cell != null)
    +		{
    +			setCells(new Object[] { cell });
    +		}
    +		else
    +		{
    +			clear();
    +		}
    +	}
    +
    +	/**
    +	 * Clears the selection and adds the given cells.
    +	 */
    +	public void setCells(Object[] cells)
    +	{
    +		if (cells != null)
    +		{
    +			if (singleSelection)
    +			{
    +				cells = new Object[] { getFirstSelectableCell(cells) };
    +			}
    +
    +			List<Object> tmp = new ArrayList<Object>(cells.length);
    +
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				if (graph.isCellSelectable(cells[i]))
    +				{
    +					tmp.add(cells[i]);
    +				}
    +			}
    +
    +			changeSelection(tmp, this.cells);
    +		}
    +		else
    +		{
    +			clear();
    +		}
    +	}
    +
    +	/**
    +	 * Returns the first selectable cell in the given array of cells.
    +	 * 
    +	 * @param cells Array of cells to return the first selectable cell for.
    +	 * @return Returns the first cell that may be selected.
    +	 */
    +	protected Object getFirstSelectableCell(Object[] cells)
    +	{
    +		if (cells != null)
    +		{
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				if (graph.isCellSelectable(cells[i]))
    +				{
    +					return cells[i];
    +				}
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Adds the given cell to the selection.
    +	 */
    +	public void addCell(Object cell)
    +	{
    +		if (cell != null)
    +		{
    +			addCells(new Object[] { cell });
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void addCells(Object[] cells)
    +	{
    +		if (cells != null)
    +		{
    +			Collection<Object> remove = null;
    +
    +			if (singleSelection)
    +			{
    +				remove = this.cells;
    +				cells = new Object[] { getFirstSelectableCell(cells) };
    +			}
    +
    +			List<Object> tmp = new ArrayList<Object>(cells.length);
    +
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				if (!isSelected(cells[i]) && graph.isCellSelectable(cells[i]))
    +				{
    +					tmp.add(cells[i]);
    +				}
    +			}
    +
    +			changeSelection(tmp, remove);
    +		}
    +	}
    +
    +	/**
    +	 * Removes the given cell from the selection.
    +	 */
    +	public void removeCell(Object cell)
    +	{
    +		if (cell != null)
    +		{
    +			removeCells(new Object[] { cell });
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void removeCells(Object[] cells)
    +	{
    +		if (cells != null)
    +		{
    +			List<Object> tmp = new ArrayList<Object>(cells.length);
    +
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				if (isSelected(cells[i]))
    +				{
    +					tmp.add(cells[i]);
    +				}
    +			}
    +
    +			changeSelection(null, tmp);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void changeSelection(Collection<Object> added,
    +			Collection<Object> removed)
    +	{
    +		if ((added != null && !added.isEmpty())
    +				|| (removed != null && !removed.isEmpty()))
    +		{
    +			mxSelectionChange change = new mxSelectionChange(this, added,
    +					removed);
    +			change.execute();
    +			mxUndoableEdit edit = new mxUndoableEdit(this, false);
    +			edit.add(change);
    +			fireEvent(new mxEventObject(mxEvent.UNDO, "edit", edit));
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void cellAdded(Object cell)
    +	{
    +		if (cell != null)
    +		{
    +			cells.add(cell);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void cellRemoved(Object cell)
    +	{
    +		if (cell != null)
    +		{
    +			cells.remove(cell);
    +		}
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public static class mxSelectionChange implements mxUndoableChange
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		protected mxGraphSelectionModel model;
    +
    +		/**
    +		 * 
    +		 */
    +		protected Collection<Object> added, removed;
    +
    +		/**
    +		 * 
    +		 * @param model
    +		 * @param added
    +		 * @param removed
    +		 */
    +		public mxSelectionChange(mxGraphSelectionModel model,
    +				Collection<Object> added, Collection<Object> removed)
    +		{
    +			this.model = model;
    +			this.added = (added != null) ? new ArrayList<Object>(added) : null;
    +			this.removed = (removed != null) ? new ArrayList<Object>(removed)
    +					: null;
    +		}
    +
    +		/**
    +		 * 
    +		 */
    +		public void execute()
    +		{
    +			if (removed != null)
    +			{
    +				Iterator<Object> it = removed.iterator();
    +
    +				while (it.hasNext())
    +				{
    +					model.cellRemoved(it.next());
    +				}
    +			}
    +
    +			if (added != null)
    +			{
    +				Iterator<Object> it = added.iterator();
    +
    +				while (it.hasNext())
    +				{
    +					model.cellAdded(it.next());
    +				}
    +			}
    +
    +			Collection<Object> tmp = added;
    +			added = removed;
    +			removed = tmp;
    +			model.fireEvent(new mxEventObject(mxEvent.CHANGE, "added", added,
    +					"removed", removed));
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxGraphView.java b/java/src/com/mxgraph/view/mxGraphView.java
    new file mode 100644
    index 000000000..e33910ab3
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxGraphView.java
    @@ -0,0 +1,1833 @@
    +/**
    + * $Id: mxGraphView.java,v 1.157 2012-05-10 08:57:36 gaudenz Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.view;
    +
    +import java.awt.geom.Line2D;
    +import java.util.ArrayList;
    +import java.util.Hashtable;
    +import java.util.List;
    +import java.util.Map;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxGraphModel;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUndoableEdit;
    +import com.mxgraph.util.mxUndoableEdit.mxUndoableChange;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.view.mxEdgeStyle.mxEdgeStyleFunction;
    +import com.mxgraph.view.mxPerimeter.mxPerimeterFunction;
    +
    +/**
    + * Implements a view for the graph. This class is in charge of computing the
    + * absolute coordinates for the relative child geometries, the points for
    + * perimeters and edge styles and keeping them cached in cell states for
    + * faster retrieval. The states are updated whenever the model or the view
    + * state (translate, scale) changes. The scale and translate are honoured in
    + * the bounds.
    + * 
    + * This class fires the following events:
    + * 
    + * mxEvent.UNDO fires after the root was changed in setCurrentRoot. The
    + * <code>edit</code> property contains the mxUndoableEdit which contains the
    + * mxCurrentRootChange.
    + * 
    + * mxEvent.SCALE_AND_TRANSLATE fires after the scale and transle have been
    + * changed in scaleAndTranslate. The <code>scale</code>, <code>previousScale</code>,
    + * <code>translate</code> and <code>previousTranslate</code> properties contain
    + * the new and previous scale and translate, respectively.
    + * 
    + * mxEvent.SCALE fires after the scale was changed in setScale. The
    + * <code>scale</code> and <code>previousScale</code> properties contain the
    + * new and previous scale.
    + * 
    + * mxEvent.TRANSLATE fires after the translate was changed in setTranslate. The
    + * <code>translate</code> and <code>previousTranslate</code> properties contain
    + * the new and previous value for translate.
    + * 
    + * mxEvent.UP and mxEvent.DOWN fire if the current root is changed by executing
    + * a mxCurrentRootChange. The event name depends on the location of the root
    + * in the cell hierarchy with respect to the current root. The
    + * <code>root</code> and <code>previous</code> properties contain the new and
    + * previous root, respectively.
    + */
    +public class mxGraphView extends mxEventSource
    +{
    +
    +	/**
    +	 *
    +	 */
    +	private static mxPoint EMPTY_POINT = new mxPoint();
    +
    +	/**
    +	 * Reference to the enclosing graph.
    +	 */
    +	protected mxGraph graph;
    +
    +	/**
    +	 * mxCell that acts as the root of the displayed cell hierarchy.
    +	 */
    +	protected Object currentRoot = null;
    +
    +	/**
    +	 * Caches the current bounds of the graph.
    +	 */
    +	protected mxRectangle graphBounds = new mxRectangle();
    +
    +	/**
    +	 * Specifies the scale. Default is 1 (100%).
    +	 */
    +	protected double scale = 1;
    +
    +	/**
    +	 * Point that specifies the current translation. Default is a new
    +	 * empty point.
    +	 */
    +	protected mxPoint translate = new mxPoint(0, 0);
    +
    +	/**
    +	 * Maps from cells to cell states.
    +	 */
    +	protected Hashtable<Object, mxCellState> states = new Hashtable<Object, mxCellState>();
    +
    +	/**
    +	 * Constructs a new view for the given graph.
    +	 * 
    +	 * @param graph Reference to the enclosing graph.
    +	 */
    +	public mxGraphView(mxGraph graph)
    +	{
    +		this.graph = graph;
    +	}
    +
    +	/**
    +	 * Returns the enclosing graph.
    +	 * 
    +	 * @return Returns the enclosing graph.
    +	 */
    +	public mxGraph getGraph()
    +	{
    +		return graph;
    +	}
    +
    +	/**
    +	 * Returns the dictionary that maps from cells to states.
    +	 */
    +	public Hashtable<Object, mxCellState> getStates()
    +	{
    +		return states;
    +	}
    +
    +	/**
    +	 * Returns the dictionary that maps from cells to states.
    +	 */
    +	public void setStates(Hashtable<Object, mxCellState> states)
    +	{
    +		this.states = states;
    +	}
    +
    +	/**
    +	 * Returns the cached diagram bounds.
    +	 * 
    +	 * @return Returns the diagram bounds.
    +	 */
    +	public mxRectangle getGraphBounds()
    +	{
    +		return graphBounds;
    +	}
    +
    +	/**
    +	 * Sets the graph bounds.
    +	 */
    +	public void setGraphBounds(mxRectangle value)
    +	{
    +		graphBounds = value;
    +	}
    +
    +	/**
    +	 * Returns the current root.
    +	 */
    +	public Object getCurrentRoot()
    +	{
    +		return currentRoot;
    +	}
    +
    +	/**
    +	 * Sets and returns the current root and fires an undo event.
    +	 * 
    +	 * @param root mxCell that specifies the root of the displayed cell hierarchy.
    +	 * @return Returns the object that represents the current root.
    +	 */
    +	public Object setCurrentRoot(Object root)
    +	{
    +		if (currentRoot != root)
    +		{
    +			mxCurrentRootChange change = new mxCurrentRootChange(this, root);
    +			change.execute();
    +			mxUndoableEdit edit = new mxUndoableEdit(this, false);
    +			edit.add(change);
    +			fireEvent(new mxEventObject(mxEvent.UNDO, "edit", edit));
    +		}
    +
    +		return root;
    +	}
    +
    +	/**
    +	 * Sets the scale and translation. Fires a "scaleAndTranslate"
    +	 * event after calling revalidate. Revalidate is only called if
    +	 * isEventsEnabled.
    +	 * 
    +	 * @param scale Decimal value that specifies the new scale (1 is 100%).
    +	 * @param dx X-coordinate of the translation.
    +	 * @param dy Y-coordinate of the translation.
    +	 */
    +	public void scaleAndTranslate(double scale, double dx, double dy)
    +	{
    +		double previousScale = this.scale;
    +		Object previousTranslate = translate.clone();
    +
    +		if (scale != this.scale || dx != translate.getX()
    +				|| dy != translate.getY())
    +		{
    +			this.scale = scale;
    +			translate = new mxPoint(dx, dy);
    +
    +			if (isEventsEnabled())
    +			{
    +				revalidate();
    +			}
    +		}
    +
    +		fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE, "scale",
    +				scale, "previousScale", previousScale, "translate", translate,
    +				"previousTranslate", previousTranslate));
    +	}
    +
    +	/**
    +	 * Returns the current scale.
    +	 * 
    +	 * @return Returns the scale.
    +	 */
    +	public double getScale()
    +	{
    +		return scale;
    +	}
    +
    +	/**
    +	 * Sets the current scale and revalidates the view. Fires a "scale"
    +	 * event after calling revalidate. Revalidate is only called if
    +	 * isEventsEnabled.
    +	 * 
    +	 * @param value New scale to be used.
    +	 */
    +	public void setScale(double value)
    +	{
    +		double previousScale = scale;
    +
    +		if (scale != value)
    +		{
    +			scale = value;
    +
    +			if (isEventsEnabled())
    +			{
    +				revalidate();
    +			}
    +		}
    +
    +		fireEvent(new mxEventObject(mxEvent.SCALE, "scale", scale,
    +				"previousScale", previousScale));
    +	}
    +
    +	/**
    +	 * Returns the current translation.
    +	 * 
    +	 * @return Returns the translation.
    +	 */
    +	public mxPoint getTranslate()
    +	{
    +		return translate;
    +	}
    +
    +	/**
    +	 * Sets the current translation and invalidates the view. Fires
    +	 * a property change event for "translate" after calling
    +	 * revalidate. Revalidate is only called if isEventsEnabled.
    +	 * 
    +	 * @param value New translation to be used.
    +	 */
    +	public void setTranslate(mxPoint value)
    +	{
    +		Object previousTranslate = translate.clone();
    +
    +		if (value != null
    +				&& (value.getX() != translate.getX() || value.getY() != translate
    +						.getY()))
    +		{
    +			translate = value;
    +
    +			if (isEventsEnabled())
    +			{
    +				revalidate();
    +			}
    +		}
    +
    +		fireEvent(new mxEventObject(mxEvent.TRANSLATE, "translate", translate,
    +				"previousTranslate", previousTranslate));
    +	}
    +
    +	/**
    +	 * Returns the bounding box for an array of cells or null, if no cells are
    +	 * specified.
    +	 * 
    +	 * @param cells
    +	 * @return Returns the bounding box for the given cells.
    +	 */
    +	public mxRectangle getBounds(Object[] cells)
    +	{
    +		return getBounds(cells, false);
    +	}
    +
    +	/**
    +	 * Returns the bounding box for an array of cells or null, if no cells are
    +	 * specified.
    +	 * 
    +	 * @param cells
    +	 * @return Returns the bounding box for the given cells.
    +	 */
    +	public mxRectangle getBoundingBox(Object[] cells)
    +	{
    +		return getBounds(cells, true);
    +	}
    +
    +	/**
    +	 * Returns the bounding box for an array of cells or null, if no cells are
    +	 * specified.
    +	 * 
    +	 * @param cells
    +	 * @return Returns the bounding box for the given cells.
    +	 */
    +	public mxRectangle getBounds(Object[] cells, boolean boundingBox)
    +	{
    +		mxRectangle result = null;
    +
    +		if (cells != null && cells.length > 0)
    +		{
    +			mxIGraphModel model = graph.getModel();
    +
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				if (model.isVertex(cells[i]) || model.isEdge(cells[i]))
    +				{
    +					mxCellState state = getState(cells[i]);
    +
    +					if (state != null)
    +					{
    +						mxRectangle tmp = (boundingBox) ? state
    +								.getBoundingBox() : state;
    +
    +						if (tmp != null)
    +						{
    +							if (result == null)
    +							{
    +								result = new mxRectangle(tmp);
    +							}
    +							else
    +							{
    +								result.add(tmp);
    +							}
    +						}
    +					}
    +				}
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Removes all existing cell states and invokes validate.
    +	 */
    +	public void reload()
    +	{
    +		states.clear();
    +		validate();
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void revalidate()
    +	{
    +		invalidate();
    +		validate();
    +	}
    +
    +	/**
    +	 * Invalidates all cell states.
    +	 */
    +	public void invalidate()
    +	{
    +		invalidate(null);
    +	}
    +
    +	/**
    +	 * Removes the state of the given cell and all descendants if the given
    +	 * cell is not the current root.
    +	 * 
    +	 * @param cell
    +	 * @param force
    +	 * @param recurse
    +	 */
    +	public void clear(Object cell, boolean force, boolean recurse)
    +	{
    +		removeState(cell);
    +
    +		if (recurse && (force || cell != currentRoot))
    +		{
    +			mxIGraphModel model = graph.getModel();
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				clear(model.getChildAt(cell, i), force, recurse);
    +			}
    +		}
    +		else
    +		{
    +			invalidate(cell);
    +		}
    +	}
    +
    +	/**
    +	 * Invalidates the state of the given cell, all its descendants and
    +	 * connected edges.
    +	 */
    +	public void invalidate(Object cell)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		cell = (cell != null) ? cell : model.getRoot();
    +		mxCellState state = getState(cell);
    +
    +		if (state == null || !state.isInvalid())
    +		{
    +			if (state != null)
    +			{
    +				state.setInvalid(true);
    +			}
    +
    +			// Recursively invalidates all descendants
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				Object child = model.getChildAt(cell, i);
    +				invalidate(child);
    +			}
    +
    +			// Propagates invalidation to all connected edges
    +			int edgeCount = model.getEdgeCount(cell);
    +
    +			for (int i = 0; i < edgeCount; i++)
    +			{
    +				invalidate(model.getEdgeAt(cell, i));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * First validates all bounds and then validates all points recursively on
    +	 * all visible cells.
    +	 */
    +	public void validate()
    +	{
    +		Object cell = (currentRoot != null) ? currentRoot : graph.getModel()
    +				.getRoot();
    +
    +		if (cell != null)
    +		{
    +			validateBounds(null, cell);
    +			mxRectangle bounds = validatePoints(null, cell);
    +
    +			if (bounds == null)
    +			{
    +				bounds = new mxRectangle();
    +			}
    +
    +			setGraphBounds(bounds);
    +		}
    +	}
    +
    +	/**
    +	 * Validates the bounds of the given parent's child using the given parent
    +	 * state as the origin for the child. The validation is carried out
    +	 * recursively for all non-collapsed descendants.
    +	 * 
    +	 * @param parentState Object that represents the state of the parent cell.
    +	 * @param cell Cell for which the bounds in the state should be updated.
    +	 */
    +	public void validateBounds(mxCellState parentState, Object cell)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		mxCellState state = getState(cell, true);
    +
    +		if (state != null && state.isInvalid())
    +		{
    +			if (!graph.isCellVisible(cell))
    +			{
    +				removeState(cell);
    +			}
    +			else if (cell != currentRoot && parentState != null)
    +			{
    +				state.getAbsoluteOffset().setX(0);
    +				state.getAbsoluteOffset().setY(0);
    +				state.setOrigin(new mxPoint(parentState.getOrigin()));
    +				mxGeometry geo = graph.getCellGeometry(cell);
    +
    +				if (geo != null)
    +				{
    +					if (!model.isEdge(cell))
    +					{
    +						mxPoint origin = state.getOrigin();
    +						mxPoint offset = geo.getOffset();
    +
    +						if (offset == null)
    +						{
    +							offset = EMPTY_POINT;
    +						}
    +
    +						if (geo.isRelative())
    +						{
    +							origin.setX(origin.getX() + geo.getX()
    +									* parentState.getWidth() / scale
    +									+ offset.getX());
    +							origin.setY(origin.getY() + geo.getY()
    +									* parentState.getHeight() / scale
    +									+ offset.getY());
    +						}
    +						else
    +						{
    +							state.setAbsoluteOffset(new mxPoint(scale
    +									* offset.getX(), scale * offset.getY()));
    +							origin.setX(origin.getX() + geo.getX());
    +							origin.setY(origin.getY() + geo.getY());
    +						}
    +					}
    +
    +					// Updates the cell state's bounds
    +					state.setX(scale
    +							* (translate.getX() + state.getOrigin().getX()));
    +					state.setY(scale
    +							* (translate.getY() + state.getOrigin().getY()));
    +					state.setWidth(scale * geo.getWidth());
    +					state.setHeight(scale * geo.getHeight());
    +
    +					if (model.isVertex(cell))
    +					{
    +						updateVertexLabelOffset(state);
    +					}
    +
    +					// Updates the cached label
    +					updateLabel(state);
    +				}
    +			}
    +
    +			// Applies child offset to origin
    +			mxPoint offset = graph.getChildOffsetForCell(cell);
    +
    +			if (offset != null)
    +			{
    +				state.getOrigin()
    +						.setX(state.getOrigin().getX() + offset.getX());
    +				state.getOrigin()
    +						.setY(state.getOrigin().getY() + offset.getY());
    +			}
    +		}
    +
    +		// Recursively validates the child bounds
    +		if (state != null
    +				&& (!graph.isCellCollapsed(cell) || cell == currentRoot))
    +		{
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				validateBounds(state, model.getChildAt(cell, i));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Updates the absoluteOffset of the given vertex cell state. This takes
    +	 * into account the label position styles.
    +	 * 
    +	 * @param state Cell state whose absolute offset should be updated.
    +	 */
    +	public void updateVertexLabelOffset(mxCellState state)
    +	{
    +		String horizontal = mxUtils.getString(state.getStyle(),
    +				mxConstants.STYLE_LABEL_POSITION, mxConstants.ALIGN_CENTER);
    +
    +		if (horizontal.equals(mxConstants.ALIGN_LEFT))
    +		{
    +			state.absoluteOffset.setX(state.absoluteOffset.getX()
    +					- state.getWidth());
    +		}
    +		else if (horizontal.equals(mxConstants.ALIGN_RIGHT))
    +		{
    +			state.absoluteOffset.setX(state.absoluteOffset.getX()
    +					+ state.getWidth());
    +		}
    +
    +		String vertical = mxUtils.getString(state.getStyle(),
    +				mxConstants.STYLE_VERTICAL_LABEL_POSITION,
    +				mxConstants.ALIGN_MIDDLE);
    +
    +		if (vertical.equals(mxConstants.ALIGN_TOP))
    +		{
    +			state.absoluteOffset.setY(state.absoluteOffset.getY()
    +					- state.getHeight());
    +		}
    +		else if (vertical.equals(mxConstants.ALIGN_BOTTOM))
    +		{
    +			state.absoluteOffset.setY(state.absoluteOffset.getY()
    +					+ state.getHeight());
    +		}
    +	}
    +
    +	/**
    +	 * Validates the points for the state of the given cell recursively if the
    +	 * cell is not collapsed and returns the bounding box of all visited states
    +	 * as a rectangle.
    +	 * 
    +	 * @param parentState Object that represents the state of the parent cell.
    +	 * @param cell Cell for which the points in the state should be updated.
    +	 * @return Returns the bounding box for the given cell.
    +	 */
    +	public mxRectangle validatePoints(mxCellState parentState, Object cell)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		mxCellState state = getState(cell);
    +		mxRectangle bbox = null;
    +
    +		if (state != null)
    +		{
    +			if (state.isInvalid())
    +			{
    +				mxGeometry geo = graph.getCellGeometry(cell);
    +
    +				if (geo != null && model.isEdge(cell))
    +				{
    +					// Updates the points on the source terminal if its an edge
    +					mxCellState source = getState(getVisibleTerminal(cell, true));
    +					state.setVisibleTerminalState(source, true);
    +
    +					if (source != null && model.isEdge(source.getCell())
    +							&& !model.isAncestor(source, cell))
    +					{
    +						mxCellState tmp = getState(model.getParent(source
    +								.getCell()));
    +						validatePoints(tmp, source);
    +					}
    +
    +					// Updates the points on the source terminal if its an edge
    +					mxCellState target = getState(getVisibleTerminal(cell,
    +							false));
    +					state.setVisibleTerminalState(target, false);
    +
    +					if (target != null && model.isEdge(target.getCell())
    +							&& !model.isAncestor(target, cell))
    +					{
    +						mxCellState tmp = getState(model.getParent(target
    +								.getCell()));
    +						validatePoints(tmp, target);
    +					}
    +
    +					updateFixedTerminalPoints(state, source, target);
    +					updatePoints(state, geo.getPoints(), source, target);
    +					updateFloatingTerminalPoints(state, source, target);
    +					updateEdgeBounds(state);
    +					state.setAbsoluteOffset(getPoint(state, geo));
    +				}
    +				else if (geo != null && geo.isRelative() && parentState != null
    +						&& model.isEdge(parentState.getCell()))
    +				{
    +					mxPoint origin = getPoint(parentState, geo);
    +
    +					if (origin != null)
    +					{
    +						state.setX(origin.getX());
    +						state.setY(origin.getY());
    +
    +						origin.setX((origin.getX() / scale) - translate.getX());
    +						origin.setY((origin.getY() / scale) - translate.getY());
    +						state.setOrigin(origin);
    +
    +						childMoved(parentState, state);
    +					}
    +				}
    +
    +				state.setInvalid(false);
    +			}
    +
    +			if (model.isEdge(cell) || model.isVertex(cell))
    +			{
    +				updateLabelBounds(state);
    +				bbox = new mxRectangle(updateBoundingBox(state));
    +			}
    +		}
    +
    +		if (state != null
    +				&& (!graph.isCellCollapsed(cell) || cell == currentRoot))
    +		{
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				Object child = model.getChildAt(cell, i);
    +				mxRectangle bounds = validatePoints(state, child);
    +
    +				if (bounds != null)
    +				{
    +					if (bbox == null)
    +					{
    +						bbox = bounds;
    +					}
    +					else
    +					{
    +						bbox.add(bounds);
    +					}
    +				}
    +			}
    +		}
    +
    +		return bbox;
    +	}
    +
    +	/**
    +	 * Invoked when a child state was moved as a result of late evaluation
    +	 * of its position. This is invoked for relative edge children whose
    +	 * position can only be determined after the points of the parent edge
    +	 * are updated in validatePoints, and validates the bounds of all
    +	 * descendants of the child using validateBounds.
    +	 */
    +	protected void childMoved(mxCellState parent, mxCellState child)
    +	{
    +		Object cell = child.getCell();
    +
    +		// Children of relative edge children need to validate
    +		// their bounds after their parent state was updated
    +		if (!graph.isCellCollapsed(cell) || cell == currentRoot)
    +		{
    +			mxIGraphModel model = graph.getModel();
    +			int childCount = model.getChildCount(cell);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				validateBounds(child, model.getChildAt(cell, i));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Updates the label of the given state.
    +	 */
    +	public void updateLabel(mxCellState state)
    +	{
    +		String label = graph.getLabel(state.getCell());
    +		Map<String, Object> style = state.getStyle();
    +
    +		// Applies word wrapping to non-HTML labels and stores the result in the state
    +		if (label != null
    +				&& label.length() > 0
    +				&& !graph.isHtmlLabel(state.getCell())
    +				&& !graph.getModel().isEdge(state.getCell())
    +				&& mxUtils.getString(style, mxConstants.STYLE_WHITE_SPACE,
    +						"nowrap").equals("wrap"))
    +		{
    +			double w = getWordWrapWidth(state);
    +
    +			// The lines for wrapping within the given width are calculated for no
    +			// scale. The reason for this is the granularity of actual displayed 
    +			// font can cause the displayed lines to change based on scale. A factor 
    +			// is used to allow for different overalls widths, it ensures the largest 
    +			// font size/scale factor still stays within the bounds. All this ensures
    +			// the wrapped lines are constant overing scaling, at the expense the 
    +			// label bounds will vary.
    +			String[] lines = mxUtils.wordWrap(label,
    +					mxUtils.getFontMetrics(mxUtils.getFont(state.getStyle())),
    +					w * mxConstants.LABEL_SCALE_BUFFER);
    +
    +			if (lines.length > 0)
    +			{
    +				StringBuffer buffer = new StringBuffer();
    +
    +				for (String line : lines)
    +				{
    +					buffer.append(line + '\n');
    +				}
    +
    +				label = buffer.substring(0, buffer.length() - 1);
    +			}
    +		}
    +
    +		state.setLabel(label);
    +	}
    +
    +	/**
    +	 * Returns the width for wrapping the label of the given state at
    +	 * scale 1.
    +	 */
    +	public double getWordWrapWidth(mxCellState state)
    +	{
    +		Map<String, Object> style = state.getStyle();
    +		boolean horizontal = mxUtils.isTrue(style,
    +				mxConstants.STYLE_HORIZONTAL, true);
    +		double w = 0;
    +
    +		// Computes the available width for the wrapped label
    +		if (horizontal)
    +		{
    +			w = (state.getWidth() / scale) - 2 * mxConstants.LABEL_INSET - 2
    +					* mxUtils.getDouble(style, mxConstants.STYLE_SPACING)
    +					- mxUtils.getDouble(style, mxConstants.STYLE_SPACING_LEFT)
    +					- mxUtils.getDouble(style, mxConstants.STYLE_SPACING_RIGHT);
    +		}
    +		else
    +		{
    +			w = (state.getHeight() / scale)
    +					- 2
    +					* mxConstants.LABEL_INSET
    +					- 2
    +					* mxUtils.getDouble(style, mxConstants.STYLE_SPACING)
    +					- mxUtils.getDouble(style, mxConstants.STYLE_SPACING_TOP)
    +					+ mxUtils
    +							.getDouble(style, mxConstants.STYLE_SPACING_BOTTOM);
    +		}
    +
    +		return w;
    +	}
    +
    +	/**
    +	 * Updates the label bounds in the given state.
    +	 */
    +	public void updateLabelBounds(mxCellState state)
    +	{
    +		Object cell = state.getCell();
    +		Map<String, Object> style = state.getStyle();
    +
    +		if (mxUtils.getString(style, mxConstants.STYLE_OVERFLOW, "").equals(
    +				"fill"))
    +		{
    +			state.setLabelBounds(new mxRectangle(state));
    +		}
    +		else if (state.getLabel() != null)
    +		{
    +			mxRectangle vertexBounds = (!graph.getModel().isEdge(cell)) ? state
    +					: null;
    +			state.setLabelBounds(mxUtils.getLabelPaintBounds(state.getLabel(),
    +					style, graph.isHtmlLabel(cell), state.getAbsoluteOffset(),
    +					vertexBounds, scale));
    +		}
    +	}
    +
    +	/**
    +	 * Updates the bounding box in the given cell state.
    +	 *  
    +	 * @param state Cell state whose bounding box should be
    +	 * updated.
    +	 */
    +	public mxRectangle updateBoundingBox(mxCellState state)
    +	{
    +		// Gets the cell bounds and adds shadows and markers
    +		mxRectangle rect = new mxRectangle(state);
    +		Map<String, Object> style = state.getStyle();
    +
    +		// Adds extra pixels for the marker and stroke assuming
    +		// that the border stroke is centered around the bounds
    +		// and the first pixel is drawn inside the bounds
    +		double strokeWidth = Math.max(
    +				1,
    +				Math.round(mxUtils.getInt(style, mxConstants.STYLE_STROKEWIDTH,
    +						1) * scale));
    +		strokeWidth -= Math.max(1, strokeWidth / 2);
    +
    +		if (graph.getModel().isEdge(state.getCell()))
    +		{
    +			int ms = 0;
    +
    +			if (style.containsKey(mxConstants.STYLE_ENDARROW)
    +					|| style.containsKey(mxConstants.STYLE_STARTARROW))
    +			{
    +				ms = (int) Math.round(mxConstants.DEFAULT_MARKERSIZE * scale);
    +			}
    +
    +			// Adds the strokewidth
    +			rect.grow(ms + strokeWidth);
    +
    +			// Adds worst case border for an arrow shape
    +			if (mxUtils.getString(style, mxConstants.STYLE_SHAPE, "").equals(
    +					mxConstants.SHAPE_ARROW))
    +			{
    +				rect.grow(mxConstants.ARROW_WIDTH / 2);
    +			}
    +		}
    +		else
    +		{
    +			rect.grow(strokeWidth);
    +		}
    +
    +		// Adds extra pixels for the shadow
    +		if (mxUtils.isTrue(style, mxConstants.STYLE_SHADOW))
    +		{
    +			rect.setWidth(rect.getWidth() + mxConstants.SHADOW_OFFSETX);
    +			rect.setHeight(rect.getHeight() + mxConstants.SHADOW_OFFSETY);
    +		}
    +
    +		// Adds oversize images in labels
    +		if (mxUtils.getString(style, mxConstants.STYLE_SHAPE, "").equals(
    +				mxConstants.SHAPE_LABEL))
    +		{
    +			if (mxUtils.getString(style, mxConstants.STYLE_IMAGE) != null)
    +			{
    +				double w = mxUtils.getInt(style, mxConstants.STYLE_IMAGE_WIDTH,
    +						mxConstants.DEFAULT_IMAGESIZE) * scale;
    +				double h = mxUtils.getInt(style,
    +						mxConstants.STYLE_IMAGE_HEIGHT,
    +						mxConstants.DEFAULT_IMAGESIZE)
    +						* scale;
    +
    +				double x = state.getX();
    +				double y = 0;
    +
    +				String imgAlign = mxUtils.getString(style,
    +						mxConstants.STYLE_IMAGE_ALIGN, mxConstants.ALIGN_LEFT);
    +				String imgValign = mxUtils.getString(style,
    +						mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,
    +						mxConstants.ALIGN_MIDDLE);
    +
    +				if (imgAlign.equals(mxConstants.ALIGN_RIGHT))
    +				{
    +					x += state.getWidth() - w;
    +				}
    +				else if (imgAlign.equals(mxConstants.ALIGN_CENTER))
    +				{
    +					x += (state.getWidth() - w) / 2;
    +				}
    +
    +				if (imgValign.equals(mxConstants.ALIGN_TOP))
    +				{
    +					y = state.getY();
    +				}
    +				else if (imgValign.equals(mxConstants.ALIGN_BOTTOM))
    +				{
    +					y = state.getY() + state.getHeight() - h;
    +				}
    +				else
    +				// MIDDLE
    +				{
    +					y = state.getY() + (state.getHeight() - h) / 2;
    +				}
    +
    +				rect.add(new mxRectangle(x, y, w, h));
    +			}
    +		}
    +
    +		// Adds the rotated bounds to the bounding box if the
    +		// shape is rotated
    +		double rotation = mxUtils.getDouble(style, mxConstants.STYLE_ROTATION);
    +		mxRectangle bbox = mxUtils.getBoundingBox(rect, rotation);
    +
    +		// Add the rotated bounding box to the non-rotated so
    +		// that all handles are also covered
    +		rect.add(bbox);
    +
    +		// Unifies the cell bounds and the label bounds
    +		if (!graph.isLabelClipped(state.getCell()))
    +		{
    +			rect.add(state.getLabelBounds());
    +		}
    +
    +		state.setBoundingBox(rect);
    +
    +		return rect;
    +	}
    +
    +	/**
    +	 * Sets the initial absolute terminal points in the given state before the edge
    +	 * style is computed.
    +	 * 
    +	 * @param edge Cell state whose initial terminal points should be updated.
    +	 * @param source Cell state which represents the source terminal.
    +	 * @param target Cell state which represents the target terminal.
    +	 */
    +	public void updateFixedTerminalPoints(mxCellState edge, mxCellState source,
    +			mxCellState target)
    +	{
    +		updateFixedTerminalPoint(edge, source, true,
    +				graph.getConnectionConstraint(edge, source, true));
    +		updateFixedTerminalPoint(edge, target, false,
    +				graph.getConnectionConstraint(edge, target, false));
    +	}
    +
    +	/**
    +	 * Sets the fixed source or target terminal point on the given edge.
    +	 * 
    +	 * @param edge Cell state whose initial terminal points should be
    +	 * updated.
    +	 */
    +	public void updateFixedTerminalPoint(mxCellState edge,
    +			mxCellState terminal, boolean source,
    +			mxConnectionConstraint constraint)
    +	{
    +		mxPoint pt = null;
    +
    +		if (constraint != null)
    +		{
    +			pt = graph.getConnectionPoint(terminal, constraint);
    +		}
    +
    +		if (pt == null && terminal == null)
    +		{
    +			mxPoint orig = edge.getOrigin();
    +			mxGeometry geo = graph.getCellGeometry(edge.cell);
    +			pt = geo.getTerminalPoint(source);
    +
    +			if (pt != null)
    +			{
    +				pt = new mxPoint(scale
    +						* (translate.getX() + pt.getX() + orig.getX()), scale
    +						* (translate.getY() + pt.getY() + orig.getY()));
    +			}
    +		}
    +
    +		edge.setAbsoluteTerminalPoint(pt, source);
    +	}
    +
    +	/**
    +	 * Updates the absolute points in the given state using the specified array
    +	 * of points as the relative points.
    +	 * 
    +	 * @param edge Cell state whose absolute points should be updated.
    +	 * @param points Array of points that constitute the relative points.
    +	 * @param source Cell state that represents the source terminal.
    +	 * @param target Cell state that represents the target terminal.
    +	 */
    +	public void updatePoints(mxCellState edge, List<mxPoint> points,
    +			mxCellState source, mxCellState target)
    +	{
    +		if (edge != null)
    +		{
    +			List<mxPoint> pts = new ArrayList<mxPoint>();
    +			pts.add(edge.getAbsolutePoint(0));
    +			mxEdgeStyleFunction edgeStyle = getEdgeStyle(edge, points, source,
    +					target);
    +
    +			if (edgeStyle != null)
    +			{
    +				mxCellState src = getTerminalPort(edge, source, true);
    +				mxCellState trg = getTerminalPort(edge, target, false);
    +
    +				edgeStyle.apply(edge, src, trg, points, pts);
    +			}
    +			else if (points != null)
    +			{
    +				for (int i = 0; i < points.size(); i++)
    +				{
    +					pts.add(transformControlPoint(edge, points.get(i)));
    +				}
    +			}
    +
    +			pts.add(edge.getAbsolutePoint(edge.getAbsolutePointCount() - 1));
    +			edge.setAbsolutePoints(pts);
    +		}
    +	}
    +
    +	/**
    +	 * Transforms the given control point to an absolute point.
    +	 */
    +	public mxPoint transformControlPoint(mxCellState state, mxPoint pt)
    +	{
    +		mxPoint origin = state.getOrigin();
    +
    +		return new mxPoint(scale
    +				* (pt.getX() + translate.getX() + origin.getX()), scale
    +				* (pt.getY() + translate.getY() + origin.getY()));
    +	}
    +
    +	/**
    +	 * Returns the edge style function to be used to compute the absolute
    +	 * points for the given state, control points and terminals.
    +	 */
    +	public mxEdgeStyleFunction getEdgeStyle(mxCellState edge,
    +			List<mxPoint> points, Object source, Object target)
    +	{
    +		Object edgeStyle = null;
    +
    +		if (source != null && source == target)
    +		{
    +			edgeStyle = edge.getStyle().get(mxConstants.STYLE_LOOP);
    +
    +			if (edgeStyle == null)
    +			{
    +				edgeStyle = graph.getDefaultLoopStyle();
    +			}
    +		}
    +		else if (!mxUtils.isTrue(edge.getStyle(),
    +				mxConstants.STYLE_NOEDGESTYLE, false))
    +		{
    +			edgeStyle = edge.getStyle().get(mxConstants.STYLE_EDGE);
    +		}
    +
    +		// Converts string values to objects
    +		if (edgeStyle instanceof String)
    +		{
    +			String str = String.valueOf(edgeStyle);
    +			Object tmp = mxStyleRegistry.getValue(str);
    +
    +			if (tmp == null)
    +			{
    +				tmp = mxUtils.eval(str);
    +			}
    +
    +			edgeStyle = tmp;
    +		}
    +
    +		if (edgeStyle instanceof mxEdgeStyleFunction)
    +		{
    +			return (mxEdgeStyleFunction) edgeStyle;
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Updates the terminal points in the given state after the edge style was
    +	 * computed for the edge.
    +	 * 
    +	 * @param state Cell state whose terminal points should be updated.
    +	 * @param source Cell state that represents the source terminal.
    +	 * @param target Cell state that represents the target terminal.
    +	 */
    +	public void updateFloatingTerminalPoints(mxCellState state,
    +			mxCellState source, mxCellState target)
    +	{
    +		mxPoint p0 = state.getAbsolutePoint(0);
    +		mxPoint pe = state.getAbsolutePoint(state.getAbsolutePointCount() - 1);
    +
    +		if (pe == null && target != null)
    +		{
    +			updateFloatingTerminalPoint(state, target, source, false);
    +		}
    +
    +		if (p0 == null && source != null)
    +		{
    +			updateFloatingTerminalPoint(state, source, target, true);
    +		}
    +	}
    +
    +	/**
    +	 * Updates the absolute terminal point in the given state for the given
    +	 * start and end state, where start is the source if source is true.
    +	 * 
    +	 * @param edge Cell state whose terminal point should be updated.
    +	 * @param start Cell state for the terminal on "this" side of the edge.
    +	 * @param end Cell state for the terminal on the other side of the edge.
    +	 * @param source Boolean indicating if start is the source terminal state.
    +	 */
    +	public void updateFloatingTerminalPoint(mxCellState edge,
    +			mxCellState start, mxCellState end, boolean source)
    +	{
    +		start = getTerminalPort(edge, start, source);
    +		mxPoint next = getNextPoint(edge, end, source);
    +		double border = mxUtils.getDouble(edge.getStyle(),
    +				mxConstants.STYLE_PERIMETER_SPACING);
    +		border += mxUtils.getDouble(edge.getStyle(),
    +				(source) ? mxConstants.STYLE_SOURCE_PERIMETER_SPACING
    +						: mxConstants.STYLE_TARGET_PERIMETER_SPACING);
    +		mxPoint pt = getPerimeterPoint(start, next, graph.isOrthogonal(edge),
    +				border);
    +		edge.setAbsoluteTerminalPoint(pt, source);
    +	}
    +
    +	/**
    +	 * Returns a cell state that represents the source or target terminal or
    +	 * port for the given edge.
    +	 */
    +	public mxCellState getTerminalPort(mxCellState state, mxCellState terminal,
    +			boolean source)
    +	{
    +		String key = (source) ? mxConstants.STYLE_SOURCE_PORT
    +				: mxConstants.STYLE_TARGET_PORT;
    +		String id = mxUtils.getString(state.style, key);
    +
    +		if (id != null && graph.getModel() instanceof mxGraphModel)
    +		{
    +			mxCellState tmp = getState(((mxGraphModel) graph.getModel())
    +					.getCell(id));
    +
    +			// Only uses ports where a cell state exists
    +			if (tmp != null)
    +			{
    +				terminal = tmp;
    +			}
    +		}
    +
    +		return terminal;
    +	}
    +
    +	/**
    +	 * Returns a point that defines the location of the intersection point between
    +	 * the perimeter and the line between the center of the shape and the given point.
    +	 */
    +	public mxPoint getPerimeterPoint(mxCellState terminal, mxPoint next,
    +			boolean orthogonal)
    +	{
    +		return getPerimeterPoint(terminal, next, orthogonal, 0);
    +	}
    +
    +	/**
    +	 * Returns a point that defines the location of the intersection point between
    +	 * the perimeter and the line between the center of the shape and the given point.
    +	 * 
    +	 * @param terminal Cell state for the source or target terminal.
    +	 * @param next Point that lies outside of the given terminal.
    +	 * @param orthogonal Boolean that specifies if the orthogonal projection onto
    +	 * the perimeter should be returned. If this is false then the intersection
    +	 * of the perimeter and the line between the next and the center point is
    +	 * returned.
    +	 * @param border Optional border between the perimeter and the shape.
    +	 */
    +	public mxPoint getPerimeterPoint(mxCellState terminal, mxPoint next,
    +			boolean orthogonal, double border)
    +	{
    +		mxPoint point = null;
    +
    +		if (terminal != null)
    +		{
    +			mxPerimeterFunction perimeter = getPerimeterFunction(terminal);
    +
    +			if (perimeter != null && next != null)
    +			{
    +				mxRectangle bounds = getPerimeterBounds(terminal, border);
    +
    +				if (bounds.getWidth() > 0 || bounds.getHeight() > 0)
    +				{
    +					point = perimeter.apply(bounds, terminal, next, orthogonal);
    +				}
    +			}
    +
    +			if (point == null)
    +			{
    +				point = getPoint(terminal);
    +			}
    +		}
    +
    +		return point;
    +	}
    +
    +	/**
    +	 * Returns the x-coordinate of the center point for automatic routing.
    +	 * 
    +	 * @return Returns the x-coordinate of the routing center point.
    +	 */
    +	public double getRoutingCenterX(mxCellState state)
    +	{
    +		float f = (state.getStyle() != null) ? mxUtils.getFloat(
    +				state.getStyle(), mxConstants.STYLE_ROUTING_CENTER_X) : 0;
    +
    +		return state.getCenterX() + f * state.getWidth();
    +	}
    +
    +	/**
    +	 * Returns the y-coordinate of the center point for automatic routing.
    +	 * 
    +	 * @return Returns the y-coordinate of the routing center point.
    +	 */
    +	public double getRoutingCenterY(mxCellState state)
    +	{
    +		float f = (state.getStyle() != null) ? mxUtils.getFloat(
    +				state.getStyle(), mxConstants.STYLE_ROUTING_CENTER_Y) : 0;
    +
    +		return state.getCenterY() + f * state.getHeight();
    +	}
    +
    +	/**
    +	 * Returns the perimeter bounds for the given terminal, edge pair.
    +	 */
    +	public mxRectangle getPerimeterBounds(mxCellState terminal, double border)
    +	{
    +		if (terminal != null)
    +		{
    +			border += mxUtils.getDouble(terminal.getStyle(),
    +					mxConstants.STYLE_PERIMETER_SPACING);
    +		}
    +
    +		return terminal.getPerimeterBounds(border * scale);
    +	}
    +
    +	/**
    +	 * Returns the perimeter function for the given state.
    +	 */
    +	public mxPerimeterFunction getPerimeterFunction(mxCellState state)
    +	{
    +		Object perimeter = state.getStyle().get(mxConstants.STYLE_PERIMETER);
    +
    +		// Converts string values to objects
    +		if (perimeter instanceof String)
    +		{
    +			String str = String.valueOf(perimeter);
    +			Object tmp = mxStyleRegistry.getValue(str);
    +
    +			if (tmp == null)
    +			{
    +				tmp = mxUtils.eval(str);
    +			}
    +
    +			perimeter = tmp;
    +		}
    +
    +		if (perimeter instanceof mxPerimeterFunction)
    +		{
    +			return (mxPerimeterFunction) perimeter;
    +		}
    +
    +		return null;
    +	}
    +
    +	/**
    +	 * Returns the nearest point in the list of absolute points or the center
    +	 * of the opposite terminal.
    +	 * 
    +	 * @param edge Cell state that represents the edge.
    +	 * @param opposite Cell state that represents the opposite terminal.
    +	 * @param source Boolean indicating if the next point for the source or target
    +	 * should be returned.
    +	 * @return Returns the nearest point of the opposite side.
    +	 */
    +	public mxPoint getNextPoint(mxCellState edge, mxCellState opposite,
    +			boolean source)
    +	{
    +		List<mxPoint> pts = edge.getAbsolutePoints();
    +		mxPoint point = null;
    +
    +		if (pts != null && (source || pts.size() > 2 || opposite == null))
    +		{
    +			int count = pts.size();
    +			int index = (source) ? Math.min(1, count - 1) : Math.max(0,
    +					count - 2);
    +			point = pts.get(index);
    +		}
    +
    +		if (point == null && opposite != null)
    +		{
    +			point = new mxPoint(opposite.getCenterX(), opposite.getCenterY());
    +		}
    +
    +		return point;
    +	}
    +
    +	/**
    +	 * Returns the nearest ancestor terminal that is visible. The edge appears
    +	 * to be connected to this terminal on the display.
    +	 * 
    +	 * @param edge Cell whose visible terminal should be returned.
    +	 * @param source Boolean that specifies if the source or target terminal
    +	 * should be returned.
    +	 * @return Returns the visible source or target terminal.
    +	 */
    +	public Object getVisibleTerminal(Object edge, boolean source)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		Object result = model.getTerminal(edge, source);
    +		Object best = result;
    +
    +		while (result != null && result != currentRoot)
    +		{
    +			if (!graph.isCellVisible(best) || graph.isCellCollapsed(result))
    +			{
    +				best = result;
    +			}
    +
    +			result = model.getParent(result);
    +		}
    +
    +		// Checks if the result is not a layer
    +		if (model.getParent(best) == model.getRoot())
    +		{
    +			best = null;
    +		}
    +
    +		return best;
    +	}
    +
    +	/**
    +	 * Updates the given state using the bounding box of the absolute points.
    +	 * Also updates terminal distance, length and segments.
    +	 * 
    +	 * @param state Cell state whose bounds should be updated.
    +	 */
    +	public void updateEdgeBounds(mxCellState state)
    +	{
    +		List<mxPoint> points = state.getAbsolutePoints();
    +
    +		if (points != null && points.size() > 0)
    +		{
    +			mxPoint p0 = points.get(0);
    +			mxPoint pe = points.get(points.size() - 1);
    +
    +			if (p0 == null || pe == null)
    +			{
    +				// Note: This is an error that normally occurs
    +				// if a connected edge has a null-terminal, ie.
    +				// source is null and/or target is null and no
    +				// additional control points are defined
    +				removeState(state.getCell());
    +			}
    +			else
    +			{
    +				if (p0.getX() != pe.getX() || p0.getY() != pe.getY())
    +				{
    +					double dx = pe.getX() - p0.getX();
    +					double dy = pe.getY() - p0.getY();
    +					state.setTerminalDistance(Math.sqrt(dx * dx + dy * dy));
    +				}
    +				else
    +				{
    +					state.setTerminalDistance(0);
    +				}
    +
    +				double length = 0;
    +				double[] segments = new double[points.size() - 1];
    +				mxPoint pt = p0;
    +
    +				double minX = pt.getX();
    +				double minY = pt.getY();
    +				double maxX = minX;
    +				double maxY = minY;
    +
    +				for (int i = 1; i < points.size(); i++)
    +				{
    +					mxPoint tmp = points.get(i);
    +
    +					if (tmp != null)
    +					{
    +						double dx = pt.getX() - tmp.getX();
    +						double dy = pt.getY() - tmp.getY();
    +
    +						double segment = Math.sqrt(dx * dx + dy * dy);
    +						segments[i - 1] = segment;
    +						length += segment;
    +						pt = tmp;
    +
    +						minX = Math.min(pt.getX(), minX);
    +						minY = Math.min(pt.getY(), minY);
    +						maxX = Math.max(pt.getX(), maxX);
    +						maxY = Math.max(pt.getY(), maxY);
    +					}
    +				}
    +
    +				state.setLength(length);
    +				state.setSegments(segments);
    +				double markerSize = 1; // TODO: include marker size
    +
    +				state.setX(minX);
    +				state.setY(minY);
    +				state.setWidth(Math.max(markerSize, maxX - minX));
    +				state.setHeight(Math.max(markerSize, maxY - minY));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the absolute center point along the given edge.
    +	 */
    +	public mxPoint getPoint(mxCellState state)
    +	{
    +		return getPoint(state, null);
    +	}
    +
    +	/**
    +	 * Returns the absolute point on the edge for the given relative
    +	 * geometry as a point. The edge is represented by the given cell state.
    +	 * 
    +	 * @param state Represents the state of the parent edge.
    +	 * @param geometry Optional geometry that represents the relative location.
    +	 * @return Returns the mxpoint that represents the absolute location
    +	 * of the given relative geometry.
    +	 */
    +	public mxPoint getPoint(mxCellState state, mxGeometry geometry)
    +	{
    +		double x = state.getCenterX();
    +		double y = state.getCenterY();
    +
    +		if (state.getSegments() != null
    +				&& (geometry == null || geometry.isRelative()))
    +		{
    +			double gx = (geometry != null) ? geometry.getX() / 2 : 0;
    +			int pointCount = state.getAbsolutePointCount();
    +			double dist = (gx + 0.5) * state.getLength();
    +			double[] segments = state.getSegments();
    +			double segment = segments[0];
    +			double length = 0;
    +			int index = 1;
    +
    +			while (dist > length + segment && index < pointCount - 1)
    +			{
    +				length += segment;
    +				segment = segments[index++];
    +			}
    +
    +			double factor = (segment == 0) ? 0 : (dist - length) / segment;
    +			mxPoint p0 = state.getAbsolutePoint(index - 1);
    +			mxPoint pe = state.getAbsolutePoint(index);
    +
    +			if (p0 != null && pe != null)
    +			{
    +				double gy = 0;
    +				double offsetX = 0;
    +				double offsetY = 0;
    +
    +				if (geometry != null)
    +				{
    +					gy = geometry.getY();
    +					mxPoint offset = geometry.getOffset();
    +
    +					if (offset != null)
    +					{
    +						offsetX = offset.getX();
    +						offsetY = offset.getY();
    +					}
    +				}
    +
    +				double dx = pe.getX() - p0.getX();
    +				double dy = pe.getY() - p0.getY();
    +				double nx = (segment == 0) ? 0 : dy / segment;
    +				double ny = (segment == 0) ? 0 : dx / segment;
    +
    +				x = p0.getX() + dx * factor + (nx * gy + offsetX) * scale;
    +				y = p0.getY() + dy * factor - (ny * gy - offsetY) * scale;
    +			}
    +		}
    +		else if (geometry != null)
    +		{
    +			mxPoint offset = geometry.getOffset();
    +
    +			if (offset != null)
    +			{
    +				x += offset.getX();
    +				y += offset.getY();
    +			}
    +		}
    +
    +		return new mxPoint(x, y);
    +	}
    +
    +	/**
    +	 * Gets the relative point that describes the given, absolute label
    +	 * position for the given edge state.
    +	 */
    +	public mxPoint getRelativePoint(mxCellState edgeState, double x, double y)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		mxGeometry geometry = model.getGeometry(edgeState.getCell());
    +
    +		if (geometry != null)
    +		{
    +			int pointCount = edgeState.getAbsolutePointCount();
    +
    +			if (geometry.isRelative() && pointCount > 1)
    +			{
    +				double totalLength = edgeState.getLength();
    +				double[] segments = edgeState.getSegments();
    +
    +				// Works which line segment the point of the label is closest to
    +				mxPoint p0 = edgeState.getAbsolutePoint(0);
    +				mxPoint pe = edgeState.getAbsolutePoint(1);
    +				Line2D line = new Line2D.Double(p0.getPoint(), pe.getPoint());
    +				double minDist = line.ptSegDistSq(x, y);
    +
    +				int index = 0;
    +				double tmp = 0;
    +				double length = 0;
    +
    +				for (int i = 2; i < pointCount; i++)
    +				{
    +					tmp += segments[i - 2];
    +					pe = edgeState.getAbsolutePoint(i);
    +
    +					line = new Line2D.Double(p0.getPoint(), pe.getPoint());
    +					double dist = line.ptSegDistSq(x, y);
    +
    +					if (dist < minDist)
    +					{
    +						minDist = dist;
    +						index = i - 1;
    +						length = tmp;
    +					}
    +
    +					p0 = pe;
    +				}
    +
    +				double seg = segments[index];
    +				p0 = edgeState.getAbsolutePoint(index);
    +				pe = edgeState.getAbsolutePoint(index + 1);
    +
    +				double x2 = p0.getX();
    +				double y2 = p0.getY();
    +
    +				double x1 = pe.getX();
    +				double y1 = pe.getY();
    +
    +				double px = x;
    +				double py = y;
    +
    +				double xSegment = x2 - x1;
    +				double ySegment = y2 - y1;
    +
    +				px -= x1;
    +				py -= y1;
    +				double projlenSq = 0;
    +
    +				px = xSegment - px;
    +				py = ySegment - py;
    +				double dotprod = px * xSegment + py * ySegment;
    +
    +				if (dotprod <= 0.0)
    +				{
    +					projlenSq = 0;
    +				}
    +				else
    +				{
    +					projlenSq = dotprod * dotprod
    +							/ (xSegment * xSegment + ySegment * ySegment);
    +				}
    +
    +				double projlen = Math.sqrt(projlenSq);
    +
    +				if (projlen > seg)
    +				{
    +					projlen = seg;
    +				}
    +
    +				double yDistance = Line2D.ptLineDist(p0.getX(), p0.getY(),
    +						pe.getX(), pe.getY(), x, y);
    +				int direction = Line2D.relativeCCW(p0.getX(), p0.getY(),
    +						pe.getX(), pe.getY(), x, y);
    +
    +				if (direction == -1)
    +				{
    +					yDistance = -yDistance;
    +				}
    +
    +				// Constructs the relative point for the label
    +				return new mxPoint(
    +						Math.round(((totalLength / 2 - length - projlen) / totalLength)
    +								* -2), Math.round(yDistance / scale));
    +			}
    +		}
    +
    +		return new mxPoint();
    +	}
    +
    +	/**
    +	 * Returns the states for the given array of cells. The array contains all
    +	 * states that are not null, that is, the returned array may have less
    +	 * elements than the given array.
    +	 */
    +	public mxCellState[] getCellStates(Object[] cells)
    +	{
    +		List<mxCellState> result = new ArrayList<mxCellState>(cells.length);
    +
    +		for (int i = 0; i < cells.length; i++)
    +		{
    +			mxCellState state = getState(cells[i]);
    +
    +			if (state != null)
    +			{
    +				result.add(state);
    +			}
    +		}
    +
    +		mxCellState[] resultArray = new mxCellState[result.size()];
    +		return result.toArray(resultArray);
    +	}
    +
    +	/**
    +	 * Returns the state for the given cell or null if no state is defined for
    +	 * the cell.
    +	 * 
    +	 * @param cell Cell whose state should be returned.
    +	 * @return Returns the state for the given cell.
    +	 */
    +	public mxCellState getState(Object cell)
    +	{
    +		return getState(cell, false);
    +	}
    +
    +	/**
    +	 * Returns the cell state for the given cell. If create is true, then
    +	 * the state is created if it does not yet exist.
    +	 * 
    +	 * @param cell Cell for which a new state should be returned.
    +	 * @param create Boolean indicating if a new state should be created if it
    +	 * does not yet exist.
    +	 * @return Returns the state for the given cell.
    +	 */
    +	public mxCellState getState(Object cell, boolean create)
    +	{
    +		mxCellState state = null;
    +
    +		if (cell != null)
    +		{
    +			state = states.get(cell);
    +
    +			if (state == null && create && graph.isCellVisible(cell))
    +			{
    +				state = createState(cell);
    +				states.put(cell, state);
    +			}
    +		}
    +
    +		return state;
    +	}
    +
    +	/**
    +	 * Removes and returns the mxCellState for the given cell.
    +	 * 
    +	 * @param cell mxCell for which the mxCellState should be removed.
    +	 * @return Returns the mxCellState that has been removed.
    +	 */
    +	public mxCellState removeState(Object cell)
    +	{
    +		return (cell != null) ? (mxCellState) states.remove(cell) : null;
    +	}
    +
    +	/**
    +	 * Creates and returns a cell state for the given cell.
    +	 * 
    +	 * @param cell Cell for which a new state should be created.
    +	 * @return Returns a new state for the given cell.
    +	 */
    +	public mxCellState createState(Object cell)
    +	{
    +		return new mxCellState(this, cell, graph.getCellStyle(cell));
    +	}
    +
    +	/**
    +	 * Action to change the current root in a view.
    +	 */
    +	public static class mxCurrentRootChange implements mxUndoableChange
    +	{
    +
    +		/**
    +		 * 
    +		 */
    +		protected mxGraphView view;
    +
    +		/**
    +		 * 
    +		 */
    +		protected Object root, previous;
    +
    +		/**
    +		 * 
    +		 */
    +		protected boolean up;
    +
    +		/**
    +		 * Constructs a change of the current root in the given view.
    +		 */
    +		public mxCurrentRootChange(mxGraphView view, Object root)
    +		{
    +			this.view = view;
    +			this.root = root;
    +			this.previous = this.root;
    +			this.up = (root == null);
    +
    +			if (!up)
    +			{
    +				Object tmp = view.getCurrentRoot();
    +				mxIGraphModel model = view.graph.getModel();
    +
    +				while (tmp != null)
    +				{
    +					if (tmp == root)
    +					{
    +						up = true;
    +						break;
    +					}
    +
    +					tmp = model.getParent(tmp);
    +				}
    +			}
    +		}
    +
    +		/**
    +		 * Returns the graph view where the change happened.
    +		 */
    +		public mxGraphView getView()
    +		{
    +			return view;
    +		}
    +
    +		/**
    +		 * Returns the root.
    +		 */
    +		public Object getRoot()
    +		{
    +			return root;
    +		}
    +
    +		/**
    +		 * Returns the previous root.
    +		 */
    +		public Object getPrevious()
    +		{
    +			return previous;
    +		}
    +
    +		/**
    +		 * Returns true if the drilling went upwards.
    +		 */
    +		public boolean isUp()
    +		{
    +			return up;
    +		}
    +
    +		/**
    +		 * Changes the current root of the view.
    +		 */
    +		public void execute()
    +		{
    +			Object tmp = view.getCurrentRoot();
    +			view.currentRoot = previous;
    +			previous = tmp;
    +
    +			mxPoint translate = view.graph.getTranslateForRoot(view
    +					.getCurrentRoot());
    +
    +			if (translate != null)
    +			{
    +				view.translate = new mxPoint(-translate.getX(),
    +						translate.getY());
    +			}
    +
    +			// Removes all existing cell states and revalidates
    +			view.reload();
    +			up = !up;
    +
    +			String eventName = (up) ? mxEvent.UP : mxEvent.DOWN;
    +			view.fireEvent(new mxEventObject(eventName, "root",
    +					view.currentRoot, "previous", previous));
    +		}
    +
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxLayoutManager.java b/java/src/com/mxgraph/view/mxLayoutManager.java
    new file mode 100644
    index 000000000..d56a87852
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxLayoutManager.java
    @@ -0,0 +1,348 @@
    +package com.mxgraph.view;
    +
    +import java.awt.Point;
    +import java.util.Arrays;
    +import java.util.Collection;
    +import java.util.HashSet;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.Set;
    +
    +import com.mxgraph.layout.mxIGraphLayout;
    +import com.mxgraph.model.mxGraphModel;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.model.mxGraphModel.mxChildChange;
    +import com.mxgraph.model.mxGraphModel.mxGeometryChange;
    +import com.mxgraph.model.mxGraphModel.mxRootChange;
    +import com.mxgraph.model.mxGraphModel.mxTerminalChange;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxUndoableEdit;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.util.mxUndoableEdit.mxUndoableChange;
    +
    +/**
    + * Implements a layout manager that updates the layout for a given transaction.
    + * The following example installs an automatic tree layout in a graph:
    + * 
    + * <code>
    + * new mxLayoutManager(graph) {
    + * 
    + *   mxCompactTreeLayout layout = new mxCompactTreeLayout(graph);
    + *   
    + *   public mxIGraphLayout getLayout(Object parent)
    + *   {
    + *     if (graph.getModel().getChildCount(parent) > 0) {
    + *       return layout;
    + *     }
    + *     return null;
    + *   }
    + * };
    + * </code>
    + * 
    + * This class fires the following event:
    + * 
    + * mxEvent.LAYOUT_CELLS fires between begin- and endUpdate after all cells have
    + * been layouted in layoutCells. The <code>cells</code> property contains all
    + * cells that have been passed to layoutCells.
    + */
    +public class mxLayoutManager extends mxEventSource
    +{
    +
    +	/**
    +	 * Defines the type of the source or target terminal. The type is a string
    +	 * passed to mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected mxGraph graph;
    +
    +	/**
    +	 * Optional string that specifies the value of the attribute to be passed
    +	 * to mxCell.is to check if the rule applies to a cell. Default is true.
    +	 */
    +	protected boolean enabled = true;
    +
    +	/**
    +	 * Optional string that specifies the attributename to be passed to
    +	 * mxCell.is to check if the rule applies to a cell. Default is true.
    +	 */
    +	protected boolean bubbling = true;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIEventListener undoHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			if (isEnabled())
    +			{
    +				beforeUndo((mxUndoableEdit) evt.getProperty("edit"));
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIEventListener moveHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			if (isEnabled())
    +			{
    +				cellsMoved((Object[]) evt.getProperty("cells"), (Point) evt
    +						.getProperty("location"));
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	public mxLayoutManager(mxGraph graph)
    +	{
    +		setGraph(graph);
    +	}
    +
    +	/**
    +	 * @return the enabled
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * @param value the enabled to set
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		enabled = value;
    +	}
    +
    +	/**
    +	 * @return the bubbling
    +	 */
    +	public boolean isBubbling()
    +	{
    +		return bubbling;
    +	}
    +
    +	/**
    +	 * @param value the bubbling to set
    +	 */
    +	public void setBubbling(boolean value)
    +	{
    +		bubbling = value;
    +	}
    +
    +	/**
    +	 * @return the graph
    +	 */
    +	public mxGraph getGraph()
    +	{
    +		return graph;
    +	}
    +
    +	/**
    +	 * @param value the graph to set
    +	 */
    +	public void setGraph(mxGraph value)
    +	{
    +		if (graph != null)
    +		{
    +			mxIGraphModel model = graph.getModel();
    +			model.removeListener(undoHandler);
    +			graph.removeListener(moveHandler);
    +		}
    +
    +		graph = value;
    +
    +		if (graph != null)
    +		{
    +			mxIGraphModel model = graph.getModel();
    +			model.addListener(mxEvent.BEFORE_UNDO, undoHandler);
    +			graph.addListener(mxEvent.MOVE_CELLS, moveHandler);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIGraphLayout getLayout(Object parent)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void cellsMoved(Object[] cells, Point location)
    +	{
    +		if (cells != null && location != null)
    +		{
    +			mxIGraphModel model = getGraph().getModel();
    +
    +			// Checks if a layout exists to take care of the moving
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				mxIGraphLayout layout = getLayout(model.getParent(cells[i]));
    +
    +				if (layout != null)
    +				{
    +					layout.moveCell(cells[i], location.x, location.y);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void beforeUndo(mxUndoableEdit edit)
    +	{
    +		Collection<Object> cells = getCellsForChanges(edit.getChanges());
    +		mxIGraphModel model = getGraph().getModel();
    +
    +		if (isBubbling())
    +		{
    +			Object[] tmp = mxGraphModel.getParents(model, cells.toArray());
    +
    +			while (tmp.length > 0)
    +			{
    +				cells.addAll(Arrays.asList(tmp));
    +				tmp = mxGraphModel.getParents(model, tmp);
    +			}
    +		}
    +
    +		layoutCells(mxUtils.sortCells(cells, false).toArray());
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Collection<Object> getCellsForChanges(
    +			List<mxUndoableChange> changes)
    +	{
    +		Set<Object> result = new HashSet<Object>();
    +		Iterator<mxUndoableChange> it = changes.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			mxUndoableChange change = it.next();
    +
    +			if (change instanceof mxRootChange)
    +			{
    +				return new HashSet<Object>();
    +			}
    +			else
    +			{
    +				result.addAll(getCellsForChange(change));
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Collection<Object> getCellsForChange(mxUndoableChange change)
    +	{
    +		mxIGraphModel model = getGraph().getModel();
    +		Set<Object> result = new HashSet<Object>();
    +
    +		if (change instanceof mxChildChange)
    +		{
    +			mxChildChange cc = (mxChildChange) change;
    +			Object parent = model.getParent(cc.getChild());
    +
    +			if (cc.getChild() != null)
    +			{
    +				result.add(cc.getChild());
    +			}
    +
    +			if (parent != null)
    +			{
    +				result.add(parent);
    +			}
    +
    +			if (cc.getPrevious() != null)
    +			{
    +				result.add(cc.getPrevious());
    +			}
    +		}
    +		else if (change instanceof mxTerminalChange
    +				|| change instanceof mxGeometryChange)
    +		{
    +			Object cell = (change instanceof mxTerminalChange) ? ((mxTerminalChange) change)
    +					.getCell()
    +					: ((mxGeometryChange) change).getCell();
    +
    +			if (cell != null)
    +			{
    +				result.add(cell);
    +				Object parent = model.getParent(cell);
    +
    +				if (parent != null)
    +				{
    +					result.add(parent);
    +				}
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void layoutCells(Object[] cells)
    +	{
    +		if (cells.length > 0)
    +		{
    +			// Invokes the layouts while removing duplicates
    +			mxIGraphModel model = getGraph().getModel();
    +
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (cells[i] != model.getRoot())
    +					{
    +						executeLayout(getLayout(cells[i]), cells[i]);
    +					}
    +				}
    +
    +				fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS, "cells",
    +						cells));
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void executeLayout(mxIGraphLayout layout, Object parent)
    +	{
    +		if (layout != null && parent != null)
    +		{
    +			layout.execute(parent);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void destroy()
    +	{
    +		setGraph(null);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxMultiplicity.java b/java/src/com/mxgraph/view/mxMultiplicity.java
    new file mode 100644
    index 000000000..60bec8cd1
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxMultiplicity.java
    @@ -0,0 +1,240 @@
    +package com.mxgraph.view;
    +
    +import java.util.Collection;
    +import java.util.Iterator;
    +
    +import org.w3c.dom.Element;
    +
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxUtils;
    +
    +public class mxMultiplicity
    +{
    +
    +	/**
    +	 * Defines the type of the source or target terminal. The type is a string
    +	 * passed to mxUtils.isNode together with the source or target vertex
    +	 * value as the first argument.
    +	 */
    +	protected String type;
    +
    +	/**
    +	 * Optional string that specifies the attributename to be passed to
    +	 * mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected String attr;
    +
    +	/**
    +	 * Optional string that specifies the value of the attribute to be passed
    +	 * to mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected String value;
    +
    +	/**
    +	 * Boolean that specifies if the rule is applied to the source or target
    +	 * terminal of an edge.
    +	 */
    +	protected boolean source;
    +
    +	/**
    +	 * Defines the minimum number of connections for which this rule applies.
    +	 * Default is 0.
    +	 */
    +	protected int min = 0;
    +
    +	/**
    +	 * Defines the maximum number of connections for which this rule applies.
    +	 * A value of 'n' means unlimited times. Default is 'n'. 
    +	 */
    +	protected String max = "n";
    +
    +	/**
    +	 * Holds an array of strings that specify the type of neighbor for which
    +	 * this rule applies. The strings are used in mxCell.is on the opposite
    +	 * terminal to check if the rule applies to the connection.
    +	 */
    +	protected Collection<String> validNeighbors;
    +
    +	/**
    +	 * Boolean indicating if the list of validNeighbors are those that are allowed
    +	 * for this rule or those that are not allowed for this rule.
    +	 */
    +	protected boolean validNeighborsAllowed = true;
    +
    +	/**
    +	 * Holds the localized error message to be displayed if the number of
    +	 * connections for which the rule applies is smaller than min or greater
    +	 * than max.
    +	 */
    +	protected String countError;
    +
    +	/**
    +	 * Holds the localized error message to be displayed if the type of the
    +	 * neighbor for a connection does not match the rule.
    +	 */
    +	protected String typeError;
    +
    +	/**
    +	 * 
    +	 */
    +	public mxMultiplicity(boolean source, String type, String attr,
    +			String value, int min, String max,
    +			Collection<String> validNeighbors, String countError,
    +			String typeError, boolean validNeighborsAllowed)
    +	{
    +		this.source = source;
    +		this.type = type;
    +		this.attr = attr;
    +		this.value = value;
    +		this.min = min;
    +		this.max = max;
    +		this.validNeighbors = validNeighbors;
    +		this.countError = countError;
    +		this.typeError = typeError;
    +		this.validNeighborsAllowed = validNeighborsAllowed;
    +	}
    +
    +	/**
    +	 * Function: check
    +	 * 
    +	 * Checks the multiplicity for the given arguments and returns the error
    +	 * for the given connection or null if the multiplicity does not apply.
    +	 *  
    +	 * Parameters:
    +	 * 
    +	 * graph - Reference to the enclosing graph instance.
    +	 * edge - Cell that represents the edge to validate.
    +	 * source - Cell that represents the source terminal.
    +	 * target - Cell that represents the target terminal.
    +	 * sourceOut - Number of outgoing edges from the source terminal.
    +	 * targetIn - Number of incoming edges for the target terminal.
    +	 */
    +	public String check(mxGraph graph, Object edge, Object source,
    +			Object target, int sourceOut, int targetIn)
    +	{
    +		StringBuffer error = new StringBuffer();
    +
    +		if ((this.source && checkTerminal(graph, source, edge))
    +				|| (!this.source && checkTerminal(graph, target, edge)))
    +		{
    +			if (!isUnlimited())
    +			{
    +				int m = getMaxValue();
    +
    +				if (m == 0 || (this.source && sourceOut >= m)
    +						|| (!this.source && targetIn >= m))
    +				{
    +					error.append(countError + "\n");
    +				}
    +			}
    +
    +			if (validNeighbors != null && typeError != null && validNeighbors.size() > 0)
    +			{
    +				boolean isValid = checkNeighbors(graph, edge, source, target);
    +
    +				if (!isValid)
    +				{
    +					error.append(typeError + "\n");
    +				}
    +			}
    +		}
    +
    +		return (error.length() > 0) ? error.toString() : null;
    +	}
    +
    +	/**
    +	 * Checks the type of the given value.
    +	 */
    +	public boolean checkNeighbors(mxGraph graph, Object edge, Object source,
    +			Object target)
    +	{
    +		mxIGraphModel model = graph.getModel();
    +		Object sourceValue = model.getValue(source);
    +		Object targetValue = model.getValue(target);
    +		boolean isValid = !validNeighborsAllowed;
    +		Iterator<String> it = validNeighbors.iterator();
    +
    +		while (it.hasNext())
    +		{
    +			String tmp = it.next();
    +
    +			if (this.source && checkType(graph, targetValue, tmp))
    +			{
    +				isValid = validNeighborsAllowed;
    +				break;
    +			}
    +			else if (!this.source && checkType(graph, sourceValue, tmp))
    +			{
    +				isValid = validNeighborsAllowed;
    +				break;
    +			}
    +		}
    +
    +		return isValid;
    +	}
    +
    +	/**
    +	 * Checks the type of the given value.
    +	 */
    +	public boolean checkTerminal(mxGraph graph, Object terminal, Object edge)
    +	{
    +		Object userObject = graph.getModel().getValue(terminal);
    +
    +		return checkType(graph, userObject, type, attr, value);
    +	}
    +
    +	/**
    +	 * Checks the type of the given value.
    +	 */
    +	public boolean checkType(mxGraph graph, Object value, String type)
    +	{
    +		return checkType(graph, value, type, null, null);
    +	}
    +
    +	/**
    +	 * Checks the type of the given value.
    +	 */
    +	public boolean checkType(mxGraph graph, Object value, String type,
    +			String attr, String attrValue)
    +	{
    +		if (value != null)
    +		{
    +			if (value instanceof Element)
    +			{
    +				return mxUtils.isNode(value, type, attr, attrValue);
    +			}
    +			else
    +			{
    +				return value.equals(type);
    +			}
    +		}
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns true if max is "n" (unlimited).
    +	 */
    +	public boolean isUnlimited()
    +	{
    +		return max == null || max == "n";
    +	}
    +
    +	/**
    +	 * Returns the numeric value of max.
    +	 */
    +	public int getMaxValue()
    +	{
    +		try
    +		{
    +			return Integer.parseInt(max);
    +		}
    +		catch (NumberFormatException e)
    +		{
    +			// ignore
    +		}
    +
    +		return 0;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxPerimeter.java b/java/src/com/mxgraph/view/mxPerimeter.java
    new file mode 100644
    index 000000000..f06d1333e
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxPerimeter.java
    @@ -0,0 +1,935 @@
    +/**
    + * $Id: mxPerimeter.java,v 1.22 2012-01-11 09:06:56 gaudenz Exp $
    + * Copyright (c) 2007-2010, Gaudenz Alder, David Benson
    + */
    +package com.mxgraph.view;
    +
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Provides various perimeter functions to be used in a style
    + * as the value of mxConstants.STYLE_PERIMETER. Alternately, the mxConstants.
    + * PERIMETER_* constants can be used to reference a perimeter via the
    + * mxStyleRegistry.
    + */
    +public class mxPerimeter
    +{
    +
    +	/**
    +	 * Defines the requirements for a perimeter function.
    +	 */
    +	public interface mxPerimeterFunction
    +	{
    +
    +		/**
    +		 * Implements a perimeter function.
    +		 * 
    +		 * @param bounds Rectangle that represents the absolute bounds of the
    +		 * vertex.
    +		 * @param vertex Cell state that represents the vertex.
    +		 * @param next Point that represents the nearest neighbour point on the
    +		 * given edge.
    +		 * @param orthogonal Boolean that specifies if the orthogonal projection onto
    +		 * the perimeter should be returned. If this is false then the intersection
    +		 * of the perimeter and the line between the next and the center point is
    +		 * returned.
    +		 * @return Returns the perimeter point.
    +		 */
    +		mxPoint apply(mxRectangle bounds, mxCellState vertex, mxPoint next,
    +				boolean orthogonal);
    +
    +	}
    +
    +	/**
    +	 * Describes a rectangular perimeter for the given bounds. 
    +	 */
    +	public static mxPerimeterFunction RectanglePerimeter = new mxPerimeterFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxPerimeter.mxPerimeterFunction#apply
    +		 */
    +		public mxPoint apply(mxRectangle bounds, mxCellState vertex,
    +				mxPoint next, boolean orthogonal)
    +		{
    +			double cx = bounds.getCenterX();
    +			double cy = bounds.getCenterY();
    +			double dx = next.getX() - cx;
    +			double dy = next.getY() - cy;
    +			double alpha = Math.atan2(dy, dx);
    +
    +			mxPoint p = new mxPoint();
    +			double pi = Math.PI;
    +			double pi2 = Math.PI / 2;
    +			double beta = pi2 - alpha;
    +			double t = Math.atan2(bounds.getHeight(), bounds.getWidth());
    +
    +			if (alpha < -pi + t || alpha > pi - t)
    +			{
    +				// Left edge
    +				p.setX(bounds.getX());
    +				p.setY(cy - bounds.getWidth() * Math.tan(alpha) / 2);
    +			}
    +			else if (alpha < -t)
    +			{
    +				// Top Edge
    +				p.setY(bounds.getY());
    +				p.setX(cx - bounds.getHeight() * Math.tan(beta) / 2);
    +			}
    +			else if (alpha < t)
    +			{
    +				// Right Edge
    +				p.setX(bounds.getX() + bounds.getWidth());
    +				p.setY(cy + bounds.getWidth() * Math.tan(alpha) / 2);
    +			}
    +			else
    +			{
    +				// Bottom Edge
    +				p.setY(bounds.getY() + bounds.getHeight());
    +				p.setX(cx + bounds.getHeight() * Math.tan(beta) / 2);
    +			}
    +
    +			if (orthogonal)
    +			{
    +				if (next.getX() >= bounds.getX()
    +						&& next.getX() <= bounds.getX() + bounds.getWidth())
    +				{
    +					p.setX(next.getX());
    +				}
    +				else if (next.getY() >= bounds.getY()
    +						&& next.getY() <= bounds.getY() + bounds.getHeight())
    +				{
    +					p.setY(next.getY());
    +				}
    +
    +				if (next.getX() < bounds.getX())
    +				{
    +					p.setX(bounds.getX());
    +				}
    +				else if (next.getX() > bounds.getX() + bounds.getWidth())
    +				{
    +					p.setX(bounds.getX() + bounds.getWidth());
    +				}
    +
    +				if (next.getY() < bounds.getY())
    +				{
    +					p.setY(bounds.getY());
    +				}
    +				else if (next.getY() > bounds.getY() + bounds.getHeight())
    +				{
    +					p.setY(bounds.getY() + bounds.getHeight());
    +				}
    +			}
    +
    +			return p;
    +		}
    +
    +	};
    +
    +	/**
    +	 * Describes an elliptic perimeter.
    +	 */
    +	public static mxPerimeterFunction EllipsePerimeter = new mxPerimeterFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxPerimeter.mxPerimeterFunction#apply
    +		 */
    +		public mxPoint apply(mxRectangle bounds, mxCellState vertex,
    +				mxPoint next, boolean orthogonal)
    +		{
    +			double x = bounds.getX();
    +			double y = bounds.getY();
    +			double a = bounds.getWidth() / 2;
    +			double b = bounds.getHeight() / 2;
    +			double cx = x + a;
    +			double cy = y + b;
    +			double px = next.getX();
    +			double py = next.getY();
    +
    +			// Calculates straight line equation through
    +			// point and ellipse center y = d * x + h
    +			double dx = px - cx;
    +			double dy = py - cy;
    +
    +			if (dx == 0 && dy != 0)
    +			{
    +				return new mxPoint(cx, cy + b * dy / Math.abs(dy));
    +			}
    +			else if (dx == 0 && dy == 0)
    +			{
    +				return new mxPoint(px, py);
    +			}
    +
    +			if (orthogonal)
    +			{
    +				if (py >= y && py <= y + bounds.getHeight())
    +				{
    +					double ty = py - cy;
    +					double tx = Math.sqrt(a * a * (1 - (ty * ty) / (b * b)));
    +
    +					if (Double.isNaN(tx))
    +					{
    +						tx = 0;
    +					}
    +
    +					if (px <= x)
    +					{
    +						tx = -tx;
    +					}
    +
    +					return new mxPoint(cx + tx, py);
    +				}
    +
    +				if (px >= x && px <= x + bounds.getWidth())
    +				{
    +					double tx = px - cx;
    +					double ty = Math.sqrt(b * b * (1 - (tx * tx) / (a * a)));
    +
    +					if (Double.isNaN(ty))
    +					{
    +						ty = 0;
    +					}
    +
    +					if (py <= y)
    +					{
    +						ty = -ty;
    +					}
    +
    +					return new mxPoint(px, cy + ty);
    +				}
    +			}
    +
    +			// Calculates intersection
    +			double d = dy / dx;
    +			double h = cy - d * cx;
    +			double e = a * a * d * d + b * b;
    +			double f = -2 * cx * e;
    +			double g = a * a * d * d * cx * cx + b * b * cx * cx - a * a * b
    +					* b;
    +			double det = Math.sqrt(f * f - 4 * e * g);
    +
    +			// Two solutions (perimeter points)
    +			double xout1 = (-f + det) / (2 * e);
    +			double xout2 = (-f - det) / (2 * e);
    +			double yout1 = d * xout1 + h;
    +			double yout2 = d * xout2 + h;
    +			double dist1 = Math.sqrt(Math.pow((xout1 - px), 2)
    +					+ Math.pow((yout1 - py), 2));
    +			double dist2 = Math.sqrt(Math.pow((xout2 - px), 2)
    +					+ Math.pow((yout2 - py), 2));
    +
    +			// Correct solution
    +			double xout = 0;
    +			double yout = 0;
    +
    +			if (dist1 < dist2)
    +			{
    +				xout = xout1;
    +				yout = yout1;
    +			}
    +			else
    +			{
    +				xout = xout2;
    +				yout = yout2;
    +			}
    +
    +			return new mxPoint(xout, yout);
    +		}
    +
    +	};
    +
    +	/**
    +	 * Describes a rhombus (aka diamond) perimeter.
    +	 */
    +	public static mxPerimeterFunction RhombusPerimeter = new mxPerimeterFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxPerimeter.mxPerimeterFunction#apply
    +		 */
    +		public mxPoint apply(mxRectangle bounds, mxCellState vertex,
    +				mxPoint next, boolean orthogonal)
    +		{
    +			double x = bounds.getX();
    +			double y = bounds.getY();
    +			double w = bounds.getWidth();
    +			double h = bounds.getHeight();
    +
    +			double cx = x + w / 2;
    +			double cy = y + h / 2;
    +
    +			double px = next.getX();
    +			double py = next.getY();
    +
    +			// Special case for intersecting the diamond's corners
    +			if (cx == px)
    +			{
    +				if (cy > py)
    +				{
    +					return new mxPoint(cx, y); // top
    +				}
    +				else
    +				{
    +					return new mxPoint(cx, y + h); // bottom
    +				}
    +			}
    +			else if (cy == py)
    +			{
    +				if (cx > px)
    +				{
    +					return new mxPoint(x, cy); // left
    +				}
    +				else
    +				{
    +					return new mxPoint(x + w, cy); // right
    +				}
    +			}
    +
    +			double tx = cx;
    +			double ty = cy;
    +
    +			if (orthogonal)
    +			{
    +				if (px >= x && px <= x + w)
    +				{
    +					tx = px;
    +				}
    +				else if (py >= y && py <= y + h)
    +				{
    +					ty = py;
    +				}
    +			}
    +
    +			// In which quadrant will the intersection be?
    +			// set the slope and offset of the border line accordingly
    +			if (px < cx)
    +			{
    +				if (py < cy)
    +				{
    +					return mxUtils.intersection(px, py, tx, ty, cx, y, x, cy);
    +				}
    +				else
    +				{
    +					return mxUtils.intersection(px, py, tx, ty, cx, y + h, x,
    +							cy);
    +				}
    +			}
    +			else if (py < cy)
    +			{
    +				return mxUtils.intersection(px, py, tx, ty, cx, y, x + w, cy);
    +			}
    +			else
    +			{
    +				return mxUtils.intersection(px, py, tx, ty, cx, y + h, x + w,
    +						cy);
    +			}
    +		}
    +
    +	};
    +
    +	/**
    +	 * Describes a triangle perimeter. See RectanglePerimeter
    +	 * for a description of the parameters.
    +	 */
    +	public static mxPerimeterFunction TrianglePerimeter = new mxPerimeterFunction()
    +	{
    +
    +		/* (non-Javadoc)
    +		 * @see com.mxgraph.view.mxPerimeter.mxPerimeterFunction#apply(com.mxgraph.utils.mxRectangle, com.mxgraph.view.mxCellState, com.mxgraph.view.mxCellState, boolean, com.mxgraph.utils.mxPoint)
    +		 */
    +		public mxPoint apply(mxRectangle bounds, mxCellState vertex,
    +				mxPoint next, boolean orthogonal)
    +		{
    +			Object direction = (vertex != null) ? mxUtils.getString(
    +					vertex.style, mxConstants.STYLE_DIRECTION,
    +					mxConstants.DIRECTION_EAST) : mxConstants.DIRECTION_EAST;
    +			boolean vertical = direction.equals(mxConstants.DIRECTION_NORTH)
    +					|| direction.equals(mxConstants.DIRECTION_SOUTH);
    +
    +			double x = bounds.getX();
    +			double y = bounds.getY();
    +			double w = bounds.getWidth();
    +			double h = bounds.getHeight();
    +
    +			double cx = x + w / 2;
    +			double cy = y + h / 2;
    +
    +			mxPoint start = new mxPoint(x, y);
    +			mxPoint corner = new mxPoint(x + w, cy);
    +			mxPoint end = new mxPoint(x, y + h);
    +
    +			if (direction.equals(mxConstants.DIRECTION_NORTH))
    +			{
    +				start = end;
    +				corner = new mxPoint(cx, y);
    +				end = new mxPoint(x + w, y + h);
    +			}
    +			else if (direction.equals(mxConstants.DIRECTION_SOUTH))
    +			{
    +				corner = new mxPoint(cx, y + h);
    +				end = new mxPoint(x + w, y);
    +			}
    +			else if (direction.equals(mxConstants.DIRECTION_WEST))
    +			{
    +				start = new mxPoint(x + w, y);
    +				corner = new mxPoint(x, cy);
    +				end = new mxPoint(x + w, y + h);
    +			}
    +
    +			// Compute angle
    +			double dx = next.getX() - cx;
    +			double dy = next.getY() - cy;
    +
    +			double alpha = (vertical) ? Math.atan2(dx, dy) : Math.atan2(dy, dx);
    +			double t = (vertical) ? Math.atan2(w, h) : Math.atan2(h, w);
    +
    +			boolean base = false;
    +
    +			if (direction.equals(mxConstants.DIRECTION_NORTH)
    +					|| direction.equals(mxConstants.DIRECTION_WEST))
    +			{
    +				base = alpha > -t && alpha < t;
    +			}
    +			else
    +			{
    +				base = alpha < -Math.PI + t || alpha > Math.PI - t;
    +			}
    +
    +			mxPoint result = null;
    +
    +			if (base)
    +			{
    +				if (orthogonal
    +						&& ((vertical && next.getX() >= start.getX() && next
    +								.getX() <= end.getX()) || (!vertical
    +								&& next.getY() >= start.getY() && next.getY() <= end
    +								.getY())))
    +				{
    +					if (vertical)
    +					{
    +						result = new mxPoint(next.getX(), start.getY());
    +					}
    +					else
    +					{
    +						result = new mxPoint(start.getX(), next.getY());
    +					}
    +				}
    +				else
    +				{
    +					if (direction.equals(mxConstants.DIRECTION_EAST))
    +					{
    +						result = new mxPoint(x, y + h / 2 - w * Math.tan(alpha)
    +								/ 2);
    +					}
    +					else if (direction.equals(mxConstants.DIRECTION_NORTH))
    +					{
    +						result = new mxPoint(x + w / 2 + h * Math.tan(alpha)
    +								/ 2, y + h);
    +					}
    +					else if (direction.equals(mxConstants.DIRECTION_SOUTH))
    +					{
    +						result = new mxPoint(x + w / 2 - h * Math.tan(alpha)
    +								/ 2, y);
    +					}
    +					else if (direction.equals(mxConstants.DIRECTION_WEST))
    +					{
    +						result = new mxPoint(x + w, y + h / 2 + w
    +								* Math.tan(alpha) / 2);
    +					}
    +				}
    +			}
    +			else
    +			{
    +				if (orthogonal)
    +				{
    +					mxPoint pt = new mxPoint(cx, cy);
    +
    +					if (next.getY() >= y && next.getY() <= y + h)
    +					{
    +						pt.setX((vertical) ? cx : ((direction
    +								.equals(mxConstants.DIRECTION_WEST)) ? x + w
    +								: x));
    +						pt.setY(next.getY());
    +					}
    +					else if (next.getX() >= x && next.getX() <= x + w)
    +					{
    +						pt.setX(next.getX());
    +						pt.setY((!vertical) ? cy : ((direction
    +								.equals(mxConstants.DIRECTION_NORTH)) ? y + h
    +								: y));
    +					}
    +
    +					// Compute angle
    +					dx = next.getX() - pt.getX();
    +					dy = next.getY() - pt.getY();
    +
    +					cx = pt.getX();
    +					cy = pt.getY();
    +				}
    +
    +				if ((vertical && next.getX() <= x + w / 2)
    +						|| (!vertical && next.getY() <= y + h / 2))
    +				{
    +					result = mxUtils.intersection(next.getX(), next.getY(), cx,
    +							cy, start.getX(), start.getY(), corner.getX(),
    +							corner.getY());
    +				}
    +				else
    +				{
    +					result = mxUtils.intersection(next.getX(), next.getY(), cx,
    +							cy, corner.getX(), corner.getY(), end.getX(),
    +							end.getY());
    +				}
    +			}
    +
    +			if (result == null)
    +			{
    +				result = new mxPoint(cx, cy);
    +			}
    +
    +			return result;
    +		}
    +
    +	};
    +
    +	/**
    +	 * Describes a hexagon perimeter. See RectanglePerimeter
    +	 * for a description of the parameters.
    +	 */
    +	public static mxPerimeterFunction HexagonPerimeter = new mxPerimeterFunction()
    +	{
    +		public mxPoint apply(mxRectangle bounds, mxCellState vertex,
    +				mxPoint next, boolean orthogonal)
    +		{
    +			double x = bounds.getX();
    +			double y = bounds.getY();
    +			double w = bounds.getWidth();
    +			double h = bounds.getHeight();
    +
    +			double cx = bounds.getCenterX();
    +			double cy = bounds.getCenterY();
    +			double px = next.getX();
    +			double py = next.getY();
    +			double dx = px - cx;
    +			double dy = py - cy;
    +			double alpha = -Math.atan2(dy, dx);
    +			double pi = Math.PI;
    +			double pi2 = Math.PI / 2;
    +
    +			mxPoint result = new mxPoint(cx, cy);
    +
    +			Object direction = (vertex != null) ? mxUtils.getString(
    +					vertex.style, mxConstants.STYLE_DIRECTION,
    +					mxConstants.DIRECTION_EAST) : mxConstants.DIRECTION_EAST;
    +			boolean vertical = direction.equals(mxConstants.DIRECTION_NORTH)
    +					|| direction.equals(mxConstants.DIRECTION_SOUTH);
    +			mxPoint a = new mxPoint();
    +			mxPoint b = new mxPoint();
    +
    +			//Only consider corrects quadrants for the orthogonal case.
    +			if ((px < x) && (py < y) || (px < x) && (py > y + h)
    +					|| (px > x + w) && (py < y) || (px > x + w) && (py > y + h))
    +			{
    +				orthogonal = false;
    +			}
    +
    +			if (orthogonal)
    +			{
    +				if (vertical)
    +				{
    +					//Special cases where intersects with hexagon corners
    +					if (px == cx)
    +					{
    +						if (py <= y)
    +						{
    +							return new mxPoint(cx, y);
    +						}
    +						else if (py >= y + h)
    +						{
    +							return new mxPoint(cx, y + h);
    +						}
    +					}
    +					else if (px < x)
    +					{
    +						if (py == y + h / 4)
    +						{
    +							return new mxPoint(x, y + h / 4);
    +						}
    +						else if (py == y + 3 * h / 4)
    +						{
    +							return new mxPoint(x, y + 3 * h / 4);
    +						}
    +					}
    +					else if (px > x + w)
    +					{
    +						if (py == y + h / 4)
    +						{
    +							return new mxPoint(x + w, y + h / 4);
    +						}
    +						else if (py == y + 3 * h / 4)
    +						{
    +							return new mxPoint(x + w, y + 3 * h / 4);
    +						}
    +					}
    +					else if (px == x)
    +					{
    +						if (py < cy)
    +						{
    +							return new mxPoint(x, y + h / 4);
    +						}
    +						else if (py > cy)
    +						{
    +							return new mxPoint(x, y + 3 * h / 4);
    +						}
    +					}
    +					else if (px == x + w)
    +					{
    +						if (py < cy)
    +						{
    +							return new mxPoint(x + w, y + h / 4);
    +						}
    +						else if (py > cy)
    +						{
    +							return new mxPoint(x + w, y + 3 * h / 4);
    +						}
    +					}
    +					if (py == y)
    +					{
    +						return new mxPoint(cx, y);
    +					}
    +					else if (py == y + h)
    +					{
    +						return new mxPoint(cx, y + h);
    +					}
    +
    +					if (px < cx)
    +					{
    +						if ((py > y + h / 4) && (py < y + 3 * h / 4))
    +						{
    +							a = new mxPoint(x, y);
    +							b = new mxPoint(x, y + h);
    +						}
    +						else if (py < y + h / 4)
    +						{
    +							a = new mxPoint(x - (int) (0.5 * w), y
    +									+ (int) (0.5 * h));
    +							b = new mxPoint(x + w, y - (int) (0.25 * h));
    +						}
    +						else if (py > y + 3 * h / 4)
    +						{
    +							a = new mxPoint(x - (int) (0.5 * w), y
    +									+ (int) (0.5 * h));
    +							b = new mxPoint(x + w, y + (int) (1.25 * h));
    +						}
    +					}
    +					else if (px > cx)
    +					{
    +						if ((py > y + h / 4) && (py < y + 3 * h / 4))
    +						{
    +							a = new mxPoint(x + w, y);
    +							b = new mxPoint(x + w, y + h);
    +						}
    +						else if (py < y + h / 4)
    +						{
    +							a = new mxPoint(x, y - (int) (0.25 * h));
    +							b = new mxPoint(x + (int) (1.5 * w), y
    +									+ (int) (0.5 * h));
    +						}
    +						else if (py > y + 3 * h / 4)
    +						{
    +							a = new mxPoint(x + (int) (1.5 * w), y
    +									+ (int) (0.5 * h));
    +							b = new mxPoint(x, y + (int) (1.25 * h));
    +						}
    +					}
    +
    +				}
    +				else
    +				{
    +					//Special cases where intersects with hexagon corners
    +					if (py == cy)
    +					{
    +						if (px <= x)
    +						{
    +							return new mxPoint(x, y + h / 2);
    +						}
    +						else if (px >= x + w)
    +						{
    +							return new mxPoint(x + w, y + h / 2);
    +						}
    +					}
    +					else if (py < y)
    +					{
    +						if (px == x + w / 4)
    +						{
    +							return new mxPoint(x + w / 4, y);
    +						}
    +						else if (px == x + 3 * w / 4)
    +						{
    +							return new mxPoint(x + 3 * w / 4, y);
    +						}
    +					}
    +					else if (py > y + h)
    +					{
    +						if (px == x + w / 4)
    +						{
    +							return new mxPoint(x + w / 4, y + h);
    +						}
    +						else if (px == x + 3 * w / 4)
    +						{
    +							return new mxPoint(x + 3 * w / 4, y + h);
    +						}
    +					}
    +					else if (py == y)
    +					{
    +						if (px < cx)
    +						{
    +							return new mxPoint(x + w / 4, y);
    +						}
    +						else if (px > cx)
    +						{
    +							return new mxPoint(x + 3 * w / 4, y);
    +						}
    +					}
    +					else if (py == y + h)
    +					{
    +						if (px < cx)
    +						{
    +							return new mxPoint(x + w / 4, y + h);
    +						}
    +						else if (py > cy)
    +						{
    +							return new mxPoint(x + 3 * w / 4, y + h);
    +						}
    +					}
    +					if (px == x)
    +					{
    +						return new mxPoint(x, cy);
    +					}
    +					else if (px == x + w)
    +					{
    +						return new mxPoint(x + w, cy);
    +					}
    +
    +					if (py < cy)
    +					{
    +						if ((px > x + w / 4) && (px < x + 3 * w / 4))
    +						{
    +							a = new mxPoint(x, y);
    +							b = new mxPoint(x + w, y);
    +						}
    +						else if (px < x + w / 4)
    +						{
    +							a = new mxPoint(x - (int) (0.25 * w), y + h);
    +							b = new mxPoint(x + (int) (0.5 * w), y
    +									- (int) (0.5 * h));
    +						}
    +						else if (px > x + 3 * w / 4)
    +						{
    +							a = new mxPoint(x + (int) (0.5 * w), y
    +									- (int) (0.5 * h));
    +							b = new mxPoint(x + (int) (1.25 * w), y + h);
    +						}
    +					}
    +					else if (py > cy)
    +					{
    +						if ((px > x + w / 4) && (px < x + 3 * w / 4))
    +						{
    +							a = new mxPoint(x, y + h);
    +							b = new mxPoint(x + w, y + h);
    +						}
    +						else if (px < x + w / 4)
    +						{
    +							a = new mxPoint(x - (int) (0.25 * w), y);
    +							b = new mxPoint(x + (int) (0.5 * w), y
    +									+ (int) (1.5 * h));
    +						}
    +						else if (px > x + 3 * w / 4)
    +						{
    +							a = new mxPoint(x + (int) (0.5 * w), y
    +									+ (int) (1.5 * h));
    +							b = new mxPoint(x + (int) (1.25 * w), y);
    +						}
    +					}
    +				}
    +
    +				double tx = cx;
    +				double ty = cy;
    +
    +				if (px >= x && px <= x + w)
    +				{
    +					tx = px;
    +					if (py < cy)
    +					{
    +						ty = y + h;
    +					}
    +					else
    +					{
    +						ty = y;
    +					}
    +				}
    +				else if (py >= y && py <= y + h)
    +				{
    +					ty = py;
    +					if (px < cx)
    +					{
    +						tx = x + w;
    +					}
    +					else
    +					{
    +						tx = x;
    +					}
    +				}
    +
    +				result = mxUtils.intersection(tx, ty, next.getX(), next.getY(),
    +						a.getX(), a.getY(), b.getX(), b.getY());
    +			}
    +			else
    +			{
    +				if (vertical)
    +				{
    +					double beta = Math.atan2(h / 4, w / 2);
    +
    +					//Special cases where intersects with hexagon corners
    +					if (alpha == beta)
    +					{
    +						return new mxPoint(x + w, y + (int) (0.25 * h));
    +					}
    +					else if (alpha == pi2)
    +					{
    +						return new mxPoint(x + (int) (0.5 * w), y);
    +					}
    +					else if (alpha == (pi - beta))
    +					{
    +						return new mxPoint(x, y + (int) (0.25 * h));
    +					}
    +					else if (alpha == -beta)
    +					{
    +						return new mxPoint(x + w, y + (int) (0.75 * h));
    +					}
    +					else if (alpha == (-pi2))
    +					{
    +						return new mxPoint(x + (int) (0.5 * w), y + h);
    +					}
    +					else if (alpha == (-pi + beta))
    +					{
    +						return new mxPoint(x, y + (int) (0.75 * h));
    +					}
    +
    +					if ((alpha < beta) && (alpha > -beta))
    +					{
    +						a = new mxPoint(x + w, y);
    +						b = new mxPoint(x + w, y + h);
    +					}
    +					else if ((alpha > beta) && (alpha < pi2))
    +					{
    +						a = new mxPoint(x, y - (int) (0.25 * h));
    +						b = new mxPoint(x + (int) (1.5 * w), y
    +								+ (int) (0.5 * h));
    +					}
    +					else if ((alpha > pi2) && (alpha < (pi - beta)))
    +					{
    +						a = new mxPoint(x - (int) (0.5 * w), y
    +								+ (int) (0.5 * h));
    +						b = new mxPoint(x + w, y - (int) (0.25 * h));
    +					}
    +					else if (((alpha > (pi - beta)) && (alpha <= pi))
    +							|| ((alpha < (-pi + beta)) && (alpha >= -pi)))
    +					{
    +						a = new mxPoint(x, y);
    +						b = new mxPoint(x, y + h);
    +					}
    +					else if ((alpha < -beta) && (alpha > -pi2))
    +					{
    +						a = new mxPoint(x + (int) (1.5 * w), y
    +								+ (int) (0.5 * h));
    +						b = new mxPoint(x, y + (int) (1.25 * h));
    +					}
    +					else if ((alpha < -pi2) && (alpha > (-pi + beta)))
    +					{
    +						a = new mxPoint(x - (int) (0.5 * w), y
    +								+ (int) (0.5 * h));
    +						b = new mxPoint(x + w, y + (int) (1.25 * h));
    +					}
    +				}
    +				else
    +				{
    +					double beta = Math.atan2(h / 2, w / 4);
    +
    +					//Special cases where intersects with hexagon corners
    +					if (alpha == beta)
    +					{
    +						return new mxPoint(x + (int) (0.75 * w), y);
    +					}
    +					else if (alpha == (pi - beta))
    +					{
    +						return new mxPoint(x + (int) (0.25 * w), y);
    +					}
    +					else if ((alpha == pi) || (alpha == -pi))
    +					{
    +						return new mxPoint(x, y + (int) (0.5 * h));
    +					}
    +					else if (alpha == 0)
    +					{
    +						return new mxPoint(x + w, y + (int) (0.5 * h));
    +					}
    +					else if (alpha == -beta)
    +					{
    +						return new mxPoint(x + (int) (0.75 * w), y + h);
    +					}
    +					else if (alpha == (-pi + beta))
    +					{
    +						return new mxPoint(x + (int) (0.25 * w), y + h);
    +					}
    +
    +					if ((alpha > 0) && (alpha < beta))
    +					{
    +						a = new mxPoint(x + (int) (0.5 * w), y
    +								- (int) (0.5 * h));
    +						b = new mxPoint(x + (int) (1.25 * w), y + h);
    +					}
    +					else if ((alpha > beta) && (alpha < (pi - beta)))
    +					{
    +						a = new mxPoint(x, y);
    +						b = new mxPoint(x + w, y);
    +					}
    +					else if ((alpha > (pi - beta)) && (alpha < pi))
    +					{
    +						a = new mxPoint(x - (int) (0.25 * w), y + h);
    +						b = new mxPoint(x + (int) (0.5 * w), y
    +								- (int) (0.5 * h));
    +					}
    +					else if ((alpha < 0) && (alpha > -beta))
    +					{
    +						a = new mxPoint(x + (int) (0.5 * w), y
    +								+ (int) (1.5 * h));
    +						b = new mxPoint(x + (int) (1.25 * w), y);
    +					}
    +					else if ((alpha < -beta) && (alpha > (-pi + beta)))
    +					{
    +						a = new mxPoint(x, y + h);
    +						b = new mxPoint(x + w, y + h);
    +					}
    +					else if ((alpha < (-pi + beta)) && (alpha > -pi))
    +					{
    +						a = new mxPoint(x - (int) (0.25 * w), y);
    +						b = new mxPoint(x + (int) (0.5 * w), y
    +								+ (int) (1.5 * h));
    +					}
    +				}
    +
    +				result = mxUtils.intersection(cx, cy, next.getX(), next.getY(),
    +						a.getX(), a.getY(), b.getX(), b.getY());
    +			}
    +			if (result == null)
    +			{
    +				return new mxPoint(cx, cy);
    +			}
    +			return result;
    +		}
    +	};
    +}
    diff --git a/java/src/com/mxgraph/view/mxSpaceManager.java b/java/src/com/mxgraph/view/mxSpaceManager.java
    new file mode 100644
    index 000000000..0cbd5a420
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxSpaceManager.java
    @@ -0,0 +1,353 @@
    +package com.mxgraph.view;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxPoint;
    +
    +public class mxSpaceManager extends mxEventSource
    +{
    +
    +	/**
    +	 * Defines the type of the source or target terminal. The type is a string
    +	 * passed to mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected mxGraph graph;
    +
    +	/**
    +	 * Optional string that specifies the value of the attribute to be passed
    +	 * to mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected boolean enabled;
    +
    +	/**
    +	 * Optional string that specifies the attributename to be passed to
    +	 * mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected boolean shiftRightwards;
    +
    +	/**
    +	 * Optional string that specifies the attributename to be passed to
    +	 * mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected boolean shiftDownwards;
    +
    +	/**
    +	 * Optional string that specifies the attributename to be passed to
    +	 * mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected boolean extendParents;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIEventListener resizeHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			if (isEnabled())
    +			{
    +				cellsResized((Object[]) evt.getProperty("cells"));
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	public mxSpaceManager(mxGraph graph)
    +	{
    +		setGraph(graph);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isCellIgnored(Object cell)
    +	{
    +		return !getGraph().getModel().isVertex(cell);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public boolean isCellShiftable(Object cell)
    +	{
    +		return getGraph().getModel().isVertex(cell)
    +				&& getGraph().isCellMovable(cell);
    +	}
    +
    +	/**
    +	 * @return the enabled
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * @param value the enabled to set
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		enabled = value;
    +	}
    +
    +	/**
    +	 * @return the shiftRightwards
    +	 */
    +	public boolean isShiftRightwards()
    +	{
    +		return shiftRightwards;
    +	}
    +
    +	/**
    +	 * @param shiftRightwards the shiftRightwards to set
    +	 */
    +	public void setShiftRightwards(boolean shiftRightwards)
    +	{
    +		this.shiftRightwards = shiftRightwards;
    +	}
    +
    +	/**
    +	 * @return the shiftDownwards
    +	 */
    +	public boolean isShiftDownwards()
    +	{
    +		return shiftDownwards;
    +	}
    +
    +	/**
    +	 * @param shiftDownwards the shiftDownwards to set
    +	 */
    +	public void setShiftDownwards(boolean shiftDownwards)
    +	{
    +		this.shiftDownwards = shiftDownwards;
    +	}
    +
    +	/**
    +	 * @return the extendParents
    +	 */
    +	public boolean isExtendParents()
    +	{
    +		return extendParents;
    +	}
    +
    +	/**
    +	 * @param extendParents the extendParents to set
    +	 */
    +	public void setExtendParents(boolean extendParents)
    +	{
    +		this.extendParents = extendParents;
    +	}
    +
    +	/**
    +	 * @return the graph
    +	 */
    +	public mxGraph getGraph()
    +	{
    +		return graph;
    +	}
    +
    +	/**
    +	 * @param graph the graph to set
    +	 */
    +	public void setGraph(mxGraph graph)
    +	{
    +		if (this.graph != null)
    +		{
    +			this.graph.removeListener(resizeHandler);
    +		}
    +
    +		this.graph = graph;
    +
    +		if (this.graph != null)
    +		{
    +			this.graph.addListener(mxEvent.RESIZE_CELLS, resizeHandler);
    +			this.graph.addListener(mxEvent.FOLD_CELLS, resizeHandler);
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void cellsResized(Object[] cells)
    +	{
    +		if (cells != null)
    +		{
    +			mxIGraphModel model = getGraph().getModel();
    +
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (!isCellIgnored(cells[i]))
    +					{
    +						cellResized(cells[i]);
    +						break;
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void cellResized(Object cell)
    +	{
    +		mxGraph graph = getGraph();
    +		mxGraphView view = graph.getView();
    +		mxIGraphModel model = graph.getModel();
    +
    +		mxCellState state = view.getState(cell);
    +		mxCellState pstate = view.getState(model.getParent(cell));
    +
    +		if (state != null && pstate != null)
    +		{
    +			Object[] cells = getCellsToShift(state);
    +			mxGeometry geo = model.getGeometry(cell);
    +
    +			if (cells != null && geo != null)
    +			{
    +				mxPoint tr = view.getTranslate();
    +				double scale = view.getScale();
    +
    +				double x0 = state.getX() - pstate.getOrigin().getX()
    +						- tr.getX() * scale;
    +				double y0 = state.getY() - pstate.getOrigin().getY()
    +						- tr.getY() * scale;
    +				double right = state.getX() + state.getWidth();
    +				double bottom = state.getY() + state.getHeight();
    +
    +				double dx = state.getWidth() - geo.getWidth() * scale + x0
    +						- geo.getX() * scale;
    +				double dy = state.getHeight() - geo.getHeight() * scale + y0
    +						- geo.getY() * scale;
    +
    +				double fx = 1 - geo.getWidth() * scale / state.getWidth();
    +				double fy = 1 - geo.getHeight() * scale / state.getHeight();
    +
    +				model.beginUpdate();
    +				try
    +				{
    +					for (int i = 0; i < cells.length; i++)
    +					{
    +						if (cells[i] != cell && isCellShiftable(cells[i]))
    +						{
    +							shiftCell(cells[i], dx, dy, x0, y0, right, bottom,
    +									fx, fy, isExtendParents()
    +											&& graph.isExtendParent(cells[i]));
    +						}
    +					}
    +				}
    +				finally
    +				{
    +					model.endUpdate();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected void shiftCell(Object cell, double dx, double dy, double x0,
    +			double y0, double right, double bottom, double fx, double fy,
    +			boolean extendParent)
    +	{
    +		mxGraph graph = getGraph();
    +		mxCellState state = graph.getView().getState(cell);
    +
    +		if (state != null)
    +		{
    +			mxIGraphModel model = graph.getModel();
    +			mxGeometry geo = model.getGeometry(cell);
    +
    +			if (geo != null)
    +			{
    +				model.beginUpdate();
    +				try
    +				{
    +					if (isShiftRightwards())
    +					{
    +						if (state.getX() >= right)
    +						{
    +							geo = (mxGeometry) geo.clone();
    +							geo.translate(-dx, 0);
    +						}
    +						else
    +						{
    +							double tmpDx = Math.max(0, state.getX() - x0);
    +							geo = (mxGeometry) geo.clone();
    +							geo.translate(-fx * tmpDx, 0);
    +						}
    +					}
    +
    +					if (isShiftDownwards())
    +					{
    +						if (state.getY() >= bottom)
    +						{
    +							geo = (mxGeometry) geo.clone();
    +							geo.translate(0, -dy);
    +						}
    +						else
    +						{
    +							double tmpDy = Math.max(0, state.getY() - y0);
    +							geo = (mxGeometry) geo.clone();
    +							geo.translate(0, -fy * tmpDy);
    +						}
    +
    +						if (geo != model.getGeometry(cell))
    +						{
    +							model.setGeometry(cell, geo);
    +
    +							// Parent size might need to be updated if this
    +							// is seen as part of the resize
    +							if (extendParent)
    +							{
    +								graph.extendParent(cell);
    +							}
    +						}
    +					}
    +				}
    +				finally
    +				{
    +					model.endUpdate();
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	protected Object[] getCellsToShift(mxCellState state)
    +	{
    +		mxGraph graph = this.getGraph();
    +		Object parent = graph.getModel().getParent(state.getCell());
    +		boolean down = isShiftDownwards();
    +		boolean right = isShiftRightwards();
    +
    +		return graph.getCellsBeyond(state.getX()
    +				+ ((down) ? 0 : state.getWidth()), state.getY()
    +				+ ((down && right) ? 0 : state.getHeight()), parent, right,
    +				down);
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void destroy()
    +	{
    +		setGraph(null);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxStyleRegistry.java b/java/src/com/mxgraph/view/mxStyleRegistry.java
    new file mode 100644
    index 000000000..d27041726
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxStyleRegistry.java
    @@ -0,0 +1,80 @@
    +/**
    + * $Id: mxStyleRegistry.java,v 1.6 2011-07-15 12:07:35 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.view;
    +
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.Map;
    +
    +import com.mxgraph.util.mxConstants;
    +
    +/**
    + * Singleton class that acts as a global converter from string to object values
    + * in a style. This is currently only used to perimeters and edge styles.
    + */
    +public class mxStyleRegistry
    +{
    +
    +	/**
    +	 * Maps from strings to objects.
    +	 */
    +	protected static Map<String, Object> values = new Hashtable<String, Object>();
    +
    +	// Registers the known object styles
    +	static
    +	{
    +		putValue(mxConstants.EDGESTYLE_ELBOW, mxEdgeStyle.ElbowConnector);
    +		putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,
    +				mxEdgeStyle.EntityRelation);
    +		putValue(mxConstants.EDGESTYLE_LOOP, mxEdgeStyle.Loop);
    +		putValue(mxConstants.EDGESTYLE_SIDETOSIDE, mxEdgeStyle.SideToSide);
    +		putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM, mxEdgeStyle.TopToBottom);
    +		putValue(mxConstants.EDGESTYLE_ORTHOGONAL, mxEdgeStyle.orthConnector);
    +
    +		putValue(mxConstants.PERIMETER_ELLIPSE, mxPerimeter.EllipsePerimeter);
    +		putValue(mxConstants.PERIMETER_RECTANGLE,
    +				mxPerimeter.RectanglePerimeter);
    +		putValue(mxConstants.PERIMETER_RHOMBUS, mxPerimeter.RhombusPerimeter);
    +		putValue(mxConstants.PERIMETER_TRIANGLE, mxPerimeter.TrianglePerimeter);
    +		putValue(mxConstants.PERIMETER_HEXAGON, mxPerimeter.HexagonPerimeter);
    +	}
    +
    +	/**
    +	 * Puts the given object into the registry under the given name.
    +	 */
    +	public static void putValue(String name, Object value)
    +	{
    +		values.put(name, value);
    +	}
    +
    +	/**
    +	 * Returns the value associated with the given name.
    +	 */
    +	public static Object getValue(String name)
    +	{
    +		return values.get(name);
    +	}
    +
    +	/**
    +	 * Returns the name for the given value.
    +	 */
    +	public static String getName(Object value)
    +	{
    +		Iterator<Map.Entry<String, Object>> it = values.entrySet().iterator();
    +
    +		while (it.hasNext())
    +		{
    +			Map.Entry<String, Object> entry = it.next();
    +
    +			if (entry.getValue() == value)
    +			{
    +				return entry.getKey();
    +			}
    +		}
    +
    +		return null;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxStylesheet.java b/java/src/com/mxgraph/view/mxStylesheet.java
    new file mode 100644
    index 000000000..1c1b7f9f1
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxStylesheet.java
    @@ -0,0 +1,214 @@
    +/**
    + * $Id: mxStylesheet.java,v 1.27 2010-03-26 10:24:58 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.view;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +import com.mxgraph.util.mxConstants;
    +
    +/**
    + * Defines the appearance of the cells in a graph. The following example
    + * changes the font size for all vertices by changing the default vertex
    + * style in-place:
    + * <code>
    + * getDefaultVertexStyle().put(mxConstants.STYLE_FONTSIZE, 16);
    + * </code>
    + * 
    + * To change the default font size for all cells, set
    + * mxConstants.DEFAULT_FONTSIZE.
    + */
    +public class mxStylesheet
    +{
    +
    +	/**
    +	 * Shared immutable empty hashtable (for undefined cell styles).
    +	 */
    +	public static final Map<String, Object> EMPTY_STYLE = new Hashtable<String, Object>();
    +
    +	/**
    +	 * Maps from names to styles.
    +	 */
    +	protected Map<String, Map<String, Object>> styles = new Hashtable<String, Map<String, Object>>();
    +
    +	/**
    +	 * Constructs a new stylesheet and assigns default styles.
    +	 */
    +	public mxStylesheet()
    +	{
    +		setDefaultVertexStyle(createDefaultVertexStyle());
    +		setDefaultEdgeStyle(createDefaultEdgeStyle());
    +	}
    +
    +	/**
    +	 * Returns all styles as map of name, hashtable pairs.
    +	 * 
    +	 * @return All styles in this stylesheet.
    +	 */
    +	public Map<String, Map<String, Object>> getStyles()
    +	{
    +		return styles;
    +	}
    +
    +	/**
    +	 * Sets all styles in the stylesheet.
    +	 */
    +	public void setStyles(Map<String, Map<String, Object>> styles)
    +	{
    +		this.styles = styles;
    +	}
    +
    +	/**
    +	 * Creates and returns the default vertex style.
    +	 * 
    +	 * @return Returns the default vertex style.
    +	 */
    +	protected Map<String, Object> createDefaultVertexStyle()
    +	{
    +		Map<String, Object> style = new Hashtable<String, Object>();
    +
    +		style.put(mxConstants.STYLE_SHAPE, mxConstants.SHAPE_RECTANGLE);
    +		style.put(mxConstants.STYLE_PERIMETER, mxPerimeter.RectanglePerimeter);
    +		style.put(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE);
    +		style.put(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER);
    +		style.put(mxConstants.STYLE_FILLCOLOR, "#C3D9FF");
    +		style.put(mxConstants.STYLE_STROKECOLOR, "#6482B9");
    +		style.put(mxConstants.STYLE_FONTCOLOR, "#774400");
    +
    +		return style;
    +	}
    +
    +	/**
    +	 * Creates and returns the default edge style.
    +	 * 
    +	 * @return Returns the default edge style.
    +	 */
    +	protected Map<String, Object> createDefaultEdgeStyle()
    +	{
    +		Map<String, Object> style = new Hashtable<String, Object>();
    +
    +		style.put(mxConstants.STYLE_SHAPE, mxConstants.SHAPE_CONNECTOR);
    +		style.put(mxConstants.STYLE_ENDARROW, mxConstants.ARROW_CLASSIC);
    +		style.put(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE);
    +		style.put(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER);
    +		style.put(mxConstants.STYLE_STROKECOLOR, "#6482B9");
    +		style.put(mxConstants.STYLE_FONTCOLOR, "#446299");
    +
    +		return style;
    +	}
    +
    +	/**
    +	 * Returns the default style for vertices.
    +	 * 
    +	 * @return Returns the default vertex style.
    +	 */
    +	public Map<String, Object> getDefaultVertexStyle()
    +	{
    +		return styles.get("defaultVertex");
    +	}
    +
    +	/**
    +	 * Sets the default style for vertices.
    +	 * 
    +	 * @param value Style to be used for vertices.
    +	 */
    +	public void setDefaultVertexStyle(Map<String, Object> value)
    +	{
    +		putCellStyle("defaultVertex", value);
    +	}
    +
    +	/**
    +	 * Returns the default style for edges.
    +	 * 
    +	 * @return Returns the default edge style.
    +	 */
    +	public Map<String, Object> getDefaultEdgeStyle()
    +	{
    +		return styles.get("defaultEdge");
    +	}
    +
    +	/**
    +	 * Sets the default style for edges.
    +	 * 
    +	 * @param value Style to be used for edges.
    +	 */
    +	public void setDefaultEdgeStyle(Map<String, Object> value)
    +	{
    +		putCellStyle("defaultEdge", value);
    +	}
    +
    +	/**
    +	 * Stores the specified style under the given name.
    +	 * 
    +	 * @param name Name for the style to be stored.
    +	 * @param style Key, value pairs that define the style.
    +	 */
    +	public void putCellStyle(String name, Map<String, Object> style)
    +	{
    +		styles.put(name, style);
    +	}
    +
    +	/**
    +	 * Returns the cell style for the specified cell or the given defaultStyle
    +	 * if no style can be found for the given stylename.
    +	 * 
    +	 * @param name String of the form [(stylename|key=value);] that represents the
    +	 * style.
    +	 * @param defaultStyle Default style to be returned if no style can be found.
    +	 * @return Returns the style for the given formatted cell style.
    +	 */
    +	public Map<String, Object> getCellStyle(String name,
    +			Map<String, Object> defaultStyle)
    +	{
    +		Map<String, Object> style = defaultStyle;
    +
    +		if (name != null && name.length() > 0)
    +		{
    +			String[] pairs = name.split(";");
    +
    +			if (style != null && !name.startsWith(";"))
    +			{
    +				style = new Hashtable<String, Object>(style);
    +			}
    +			else
    +			{
    +				style = new Hashtable<String, Object>();
    +			}
    +
    +			for (int i = 0; i < pairs.length; i++)
    +			{
    +				String tmp = pairs[i];
    +				int c = tmp.indexOf('=');
    +
    +				if (c >= 0)
    +				{
    +					String key = tmp.substring(0, c);
    +					String value = tmp.substring(c + 1);
    +
    +					if (value.equals(mxConstants.NONE))
    +					{
    +						style.remove(key);
    +					}
    +					else
    +					{
    +						style.put(key, value);
    +					}
    +				}
    +				else
    +				{
    +					Map<String, Object> tmpStyle = styles.get(tmp);
    +
    +					if (tmpStyle != null)
    +					{
    +						style.putAll(tmpStyle);
    +					}
    +				}
    +			}
    +		}
    +
    +		return style;
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxSwimlaneManager.java b/java/src/com/mxgraph/view/mxSwimlaneManager.java
    new file mode 100644
    index 000000000..82d71c322
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxSwimlaneManager.java
    @@ -0,0 +1,389 @@
    +/**
    + * $Id: mxSwimlaneManager.java,v 1.8 2011-01-14 15:21:10 gaudenz Exp $
    + * Copyright (c) 2007, Gaudenz Alder
    + */
    +package com.mxgraph.view;
    +
    +import java.util.Map;
    +
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.util.mxConstants;
    +import com.mxgraph.util.mxEvent;
    +import com.mxgraph.util.mxEventObject;
    +import com.mxgraph.util.mxEventSource;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Manager for swimlanes and nested swimlanes that sets the size of newly added
    + * swimlanes to that of their siblings, and propagates changes to the size of a
    + * swimlane to its siblings, if siblings is true, and its ancestors, if
    + * bubbling is true.
    + */
    +public class mxSwimlaneManager extends mxEventSource
    +{
    +
    +	/**
    +	 * Defines the type of the source or target terminal. The type is a string
    +	 * passed to mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected mxGraph graph;
    +
    +	/**
    +	 * Optional string that specifies the value of the attribute to be passed
    +	 * to mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected boolean enabled;
    +
    +	/**
    +	 * Optional string that specifies the attributename to be passed to
    +	 * mxCell.is to check if the rule applies to a cell.
    +	 */
    +	protected boolean horizontal;
    +
    +	/**
    +	 * Specifies if newly added cells should be resized to match the size of their
    +	 * existing siblings. Default is true.
    +	 */
    +	protected boolean addEnabled;
    +
    +	/**
    +	 * Specifies if resizing of swimlanes should be handled. Default is true.
    +	 */
    +	protected boolean resizeEnabled;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIEventListener addHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			if (isEnabled() && isAddEnabled())
    +			{
    +				cellsAdded((Object[]) evt.getProperty("cells"));
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxIEventListener resizeHandler = new mxIEventListener()
    +	{
    +		public void invoke(Object source, mxEventObject evt)
    +		{
    +			if (isEnabled() && isResizeEnabled())
    +			{
    +				cellsResized((Object[]) evt.getProperty("cells"));
    +			}
    +		}
    +	};
    +
    +	/**
    +	 * 
    +	 */
    +	public mxSwimlaneManager(mxGraph graph)
    +	{
    +		setGraph(graph);
    +	}
    +
    +	/**
    +	 * @return the enabled
    +	 */
    +	public boolean isEnabled()
    +	{
    +		return enabled;
    +	}
    +
    +	/**
    +	 * @param value the enabled to set
    +	 */
    +	public void setEnabled(boolean value)
    +	{
    +		enabled = value;
    +	}
    +
    +	/**
    +	 * @return the bubbling
    +	 */
    +	public boolean isHorizontal()
    +	{
    +		return horizontal;
    +	}
    +
    +	/**
    +	 * @param value the bubbling to set
    +	 */
    +	public void setHorizontal(boolean value)
    +	{
    +		horizontal = value;
    +	}
    +
    +	/**
    +	 * @return the addEnabled
    +	 */
    +	public boolean isAddEnabled()
    +	{
    +		return addEnabled;
    +	}
    +
    +	/**
    +	 * @param value the addEnabled to set
    +	 */
    +	public void setAddEnabled(boolean value)
    +	{
    +		addEnabled = value;
    +	}
    +
    +	/**
    +	 * @return the resizeEnabled
    +	 */
    +	public boolean isResizeEnabled()
    +	{
    +		return resizeEnabled;
    +	}
    +
    +	/**
    +	 * @param value the resizeEnabled to set
    +	 */
    +	public void setResizeEnabled(boolean value)
    +	{
    +		resizeEnabled = value;
    +	}
    +
    +	/**
    +	 * @return the graph
    +	 */
    +	public mxGraph getGraph()
    +	{
    +		return graph;
    +	}
    +
    +	/**
    +	 * @param graph the graph to set
    +	 */
    +	public void setGraph(mxGraph graph)
    +	{
    +		if (this.graph != null)
    +		{
    +			this.graph.removeListener(addHandler);
    +			this.graph.removeListener(resizeHandler);
    +		}
    +
    +		this.graph = graph;
    +
    +		if (this.graph != null)
    +		{
    +			this.graph.addListener(mxEvent.ADD_CELLS, addHandler);
    +			this.graph.addListener(mxEvent.CELLS_RESIZED, resizeHandler);
    +		}
    +	}
    +
    +	/**
    +	 *  Returns true if the given swimlane should be ignored.
    +	 */
    +	protected boolean isSwimlaneIgnored(Object swimlane)
    +	{
    +		return !getGraph().isSwimlane(swimlane);
    +	}
    +
    +	/**
    +	 * Returns true if the given cell is horizontal. If the given cell is not a
    +	 * swimlane, then the <horizontal> value is returned.
    +	 */
    +	protected boolean isCellHorizontal(Object cell)
    +	{
    +		if (graph.isSwimlane(cell))
    +		{
    +			mxCellState state = graph.getView().getState(cell);
    +			Map<String, Object> style = (state != null) ? state.getStyle()
    +					: graph.getCellStyle(cell);
    +
    +			return mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL, true);
    +		}
    +
    +		return !isHorizontal();
    +	}
    +
    +	/**
    +	 * Called if any cells have been added. Calls swimlaneAdded for all swimlanes
    +	 * where isSwimlaneIgnored returns false.
    +	 */
    +	protected void cellsAdded(Object[] cells)
    +	{
    +		if (cells != null)
    +		{
    +			mxIGraphModel model = getGraph().getModel();
    +
    +			model.beginUpdate();
    +			try
    +			{
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (!isSwimlaneIgnored(cells[i]))
    +					{
    +						swimlaneAdded(cells[i]);
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Called for each swimlane which has been added. This finds a reference
    +	 * sibling swimlane and applies its size to the newly added swimlane. If no
    +	 * sibling can be found then the parent swimlane is resized so that the
    +	 * new swimlane fits into the parent swimlane.
    +	 */
    +	protected void swimlaneAdded(Object swimlane)
    +	{
    +		mxIGraphModel model = getGraph().getModel();
    +		Object parent = model.getParent(swimlane);
    +		int childCount = model.getChildCount(parent);
    +		mxGeometry geo = null;
    +
    +		// Finds the first valid sibling swimlane as reference
    +		for (int i = 0; i < childCount; i++)
    +		{
    +			Object child = model.getChildAt(parent, i);
    +
    +			if (child != swimlane && !this.isSwimlaneIgnored(child))
    +			{
    +				geo = model.getGeometry(child);
    +
    +				if (geo != null)
    +				{
    +					break;
    +				}
    +			}
    +		}
    +
    +		// Applies the size of the refernece to the newly added swimlane
    +		if (geo != null)
    +		{
    +			resizeSwimlane(swimlane, geo.getWidth(), geo.getHeight());
    +		}
    +	}
    +
    +	/**
    +	 * Called if any cells have been resizes. Calls swimlaneResized for all
    +	 * swimlanes where isSwimlaneIgnored returns false.
    +	 */
    +	protected void cellsResized(Object[] cells)
    +	{
    +		if (cells != null)
    +		{
    +			mxIGraphModel model = this.getGraph().getModel();
    +			
    +			model.beginUpdate();
    +			try
    +			{
    +				// Finds the top-level swimlanes and adds offsets
    +				for (int i = 0; i < cells.length; i++)
    +				{
    +					if (!this.isSwimlaneIgnored(cells[i]))
    +					{
    +						mxGeometry geo = model.getGeometry(cells[i]);
    +						
    +						if (geo != null)
    +						{
    +							mxRectangle size = new mxRectangle(0, 0, geo.getWidth(), geo.getHeight());
    +							Object top = cells[i];
    +							Object current = top;
    +							
    +							while (current != null)
    +							{
    +								top = current;
    +								current = model.getParent(current);
    +								mxRectangle tmp = (graph.isSwimlane(current)) ?
    +										graph.getStartSize(current) :
    +										new mxRectangle();
    +								size.setWidth(size.getWidth() + tmp.getWidth());
    +								size.setHeight(size.getHeight() + tmp.getHeight());
    +							}
    +							
    +							this.resizeSwimlane(top, size.getWidth(), size.getHeight());
    +						}
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Sets the width or height of the given swimlane to the given value depending
    +	 * on <horizontal>. If <horizontal> is true, then the width is set, otherwise,
    +	 * the height is set.
    +	 */
    +	protected void resizeSwimlane(Object swimlane, double w, double h)
    +	{
    +		mxIGraphModel model = getGraph().getModel();
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			if (!this.isSwimlaneIgnored(swimlane))
    +			{
    +				mxGeometry geo = model.getGeometry(swimlane);
    +
    +				if (geo != null)
    +				{
    +					boolean horizontal = isCellHorizontal(swimlane);
    +
    +					if ((horizontal && geo.getHeight() != h)
    +							|| (!horizontal && geo.getWidth() != w))
    +					{
    +						geo = (mxGeometry) geo.clone();
    +
    +						if (horizontal)
    +						{
    +							geo.setHeight(h);
    +						}
    +						else
    +						{
    +							geo.setWidth(w);
    +						}
    +
    +						model.setGeometry(swimlane, geo);
    +					}
    +				}
    +			}
    +
    +			mxRectangle tmp = (graph.isSwimlane(swimlane)) ? graph
    +					.getStartSize(swimlane) : new mxRectangle();
    +			w -= tmp.getWidth();
    +			h -= tmp.getHeight();
    +
    +			int childCount = model.getChildCount(swimlane);
    +
    +			for (int i = 0; i < childCount; i++)
    +			{
    +				Object child = model.getChildAt(swimlane, i);
    +				resizeSwimlane(child, w, h);
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * 
    +	 */
    +	public void destroy()
    +	{
    +		setGraph(null);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/mxTemporaryCellStates.java b/java/src/com/mxgraph/view/mxTemporaryCellStates.java
    new file mode 100644
    index 000000000..df65c9de6
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/mxTemporaryCellStates.java
    @@ -0,0 +1,112 @@
    +package com.mxgraph.view;
    +
    +import java.util.Hashtable;
    +
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.util.mxRectangle;
    +
    +public class mxTemporaryCellStates
    +{
    +	/**
    +	 * 
    +	 */
    +	protected mxGraphView view;
    +
    +	/**
    +	 * 
    +	 */
    +	protected Hashtable<Object, mxCellState> oldStates;
    +
    +	/**
    +	 * 
    +	 */
    +	protected mxRectangle oldBounds;
    +
    +	/**
    +	 * 
    +	 */
    +	protected double oldScale;
    +
    +	/**
    +	 * Constructs a new temporary cell states instance.
    +	 */
    +	public mxTemporaryCellStates(mxGraphView view)
    +	{
    +		this(view, 1, null);
    +	}
    +
    +	/**
    +	 * Constructs a new temporary cell states instance.
    +	 */
    +	public mxTemporaryCellStates(mxGraphView view, double scale)
    +	{
    +		this(view, scale, null);
    +	}
    +
    +	/**
    +	 * Constructs a new temporary cell states instance.
    +	 */
    +	public mxTemporaryCellStates(mxGraphView view, double scale, Object[] cells)
    +	{
    +		this.view = view;
    +
    +		// Stores the previous state
    +		oldBounds = view.getGraphBounds();
    +		oldStates = view.getStates();
    +		oldScale = view.getScale();
    +
    +		// Creates space for the new states
    +		view.setStates(new Hashtable<Object, mxCellState>());
    +		view.setScale(scale);
    +
    +		if (cells != null)
    +		{
    +			// Creates virtual parent state for validation
    +			mxCellState state = view.createState(new mxCell());
    +
    +			// Validates the vertices and edges without adding them to
    +			// the model so that the original cells are not modified
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				view.validateBounds(state, cells[i]);
    +			}
    +			
    +			mxRectangle bbox = null;
    +			
    +			for (int i = 0; i < cells.length; i++)
    +			{
    +				mxRectangle bounds = view.validatePoints(state, cells[i]);
    +				
    +				if (bounds != null)
    +				{
    +					if (bbox == null)
    +					{
    +						bbox = bounds;
    +					}
    +					else
    +					{
    +						bbox.add(bounds);
    +					}
    +				}
    +			}
    +			
    +			if (bbox == null)
    +			{
    +				bbox = new mxRectangle();
    +			}
    +
    +			view.setGraphBounds(bbox);
    +		}
    +	}
    +
    +	/**
    +	 * Destroys the cell states and restores the state of the graph view.
    +	 */
    +	public void destroy()
    +	{
    +		view.setScale(oldScale);
    +		view.setStates(oldStates);
    +		view.setGraphBounds(oldBounds);
    +	}
    +
    +}
    diff --git a/java/src/com/mxgraph/view/package.html b/java/src/com/mxgraph/view/package.html
    new file mode 100644
    index 000000000..4c14d8723
    --- /dev/null
    +++ b/java/src/com/mxgraph/view/package.html
    @@ -0,0 +1,9 @@
    +<HTML>
    +<BODY>
    +  This package implements the graph component, represented by the mxGraph
    +  class. The graph holds an mxGraphModel which contains mxCells and caches the
    +  state of the cells in mxGraphView. The cells are painted using a canvas from
    +  the canvas package. The style of the graph is represented by the mxStylesheet
    +  class.
    +</BODY>
    +</HTML>
    diff --git a/java/test/com/mxgraph/test/FontSize.java b/java/test/com/mxgraph/test/FontSize.java
    new file mode 100644
    index 000000000..2392467f7
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/FontSize.java
    @@ -0,0 +1,43 @@
    +package com.mxgraph.test;
    +
    +import java.awt.Graphics;
    +import java.awt.Graphics2D;
    +
    +import javax.swing.JFrame;
    +
    +public class FontSize extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -582322953993029295L;
    +
    +	public FontSize()
    +	{
    +		super("Hello, World!");
    +	}
    +
    +	public void paint(Graphics g)
    +	{
    +		super.paint(g);
    +
    +		g.setFont(g.getFont().deriveFont(15.5f));
    +		g.drawString("Hello, World", 50, 50);
    +
    +		g.setFont(g.getFont().deriveFont(10f));
    +		((Graphics2D) g).scale(1.55, 1.55);
    +		g.drawString("Hello, World", (int) (50/1.55) + 1, (int) (50/1.55) + 1);
    +		
    +		System.out.println("Done");
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		FontSize frame = new FontSize();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/test/com/mxgraph/test/InsertPerformance.java b/java/test/com/mxgraph/test/InsertPerformance.java
    new file mode 100644
    index 000000000..9d72cb695
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/InsertPerformance.java
    @@ -0,0 +1,107 @@
    +package com.mxgraph.test;
    +
    +import java.io.IOException;
    +
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.view.mxGraph;
    +
    +public class InsertPerformance {
    +
    +	public static long testStartTime = 0;
    +	
    +	public static void main(String[] args)
    +	{
    +		testStartTime = System.currentTimeMillis();
    +		System.out.println("================");
    +
    +		// Creates graph with model
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +
    +		int nodeCount = 10000;
    +		int edgeCount = 2000000;
    +		
    +		System.out.println("Start time " + resourceStamp());
    +		
    +		graph.getModel().beginUpdate();
    +		//try
    +		{
    +			mxCell[] nodes = new mxCell[nodeCount];
    +			mxCell[] edges = new mxCell[edgeCount];
    +
    +			mxICell dummyGroup = (mxCell) graph.createVertex(parent, null, "I iz a group", 0, 0, 30, 30, null);
    +			
    +			for (int i = 0; i < nodeCount; i++)
    +			{
    +				nodes[i] = new mxCell(null, null, null);
    +				nodes[i].setVertex(true);
    +				nodes[i].setConnectable(true);
    +			}
    +
    +			for (int i = 0; i < edgeCount; i++)
    +			{
    +				int r1 = (int) (Math.random() * nodeCount);
    +				int r2 = (int) (Math.random() * nodeCount);
    +				edges[i] = new mxCell(null, null, null);
    +				edges[i].setEdge(true);
    +
    +				nodes[r1].insertEdge(edges[i], true);
    +				nodes[r2].insertEdge(edges[i], false);
    +			}
    +			graph.addCell(dummyGroup, parent, null,null, null);
    +		}
    +		//finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +		
    +		
    +//		try
    +//		{
    +//			Object[] nodes = new Object[nodeCount];
    +//			Object[] edges = new Object[edgeCount];
    +//
    +//			for (int i = 0; i < nodeCount; i++)
    +//			{
    +//				nodes[i] = graph.insertVertex(parent, null, "N" + i, 0, 0, 30,
    +//						30);
    +//			}
    +//
    +//			for (int i = 0; i < edgeCount; i++)
    +//			{
    +//				int r1 = (int) (Math.random() * nodeCount);
    +//				int r2 = (int) (Math.random() * nodeCount);
    +//				edges[i] = graph.insertEdge(parent, null, r1 + "-" + r2,
    +//						nodes[r1], nodes[r2]);
    +//			}
    +//		}
    +//		finally
    +//		{
    +//			graph.getModel().endUpdate();
    +//		}
    +
    +		System.out.println("End update finished " + resourceStamp());
    +		System.out.println("Number of vertices = " + nodeCount);
    +		System.out.println("Number of edges = " + edgeCount);
    +
    +        System.out.print("Paused, press any key to complete");
    +
    +        try {
    +            System.in.read();
    +        } catch (IOException e) {
    +            e.printStackTrace();
    +        }
    +
    +        System.out.println("Finished");
    +	}
    +	
    +    private static String resourceStamp()
    +    {
    +        double time = (System.currentTimeMillis() - testStartTime) / 1000.0;
    +        double mem = (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())
    +            / (1024.0 * 1024.0);
    +        mem = Math.round(mem * 100) / 100.0;
    +        return new String(time + " sec, " + mem + "MB");
    +    }
    +}
    diff --git a/java/test/com/mxgraph/test/OrganicTest.java b/java/test/com/mxgraph/test/OrganicTest.java
    new file mode 100644
    index 000000000..8ff82561f
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/OrganicTest.java
    @@ -0,0 +1,52 @@
    +package com.mxgraph.test;
    +
    +import javax.swing.JFrame;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.view.*;
    +import com.mxgraph.layout.*;
    +
    +public class OrganicTest extends JFrame
    +{
    +
    +   private static final long serialVersionUID = -2707712944901661771L;
    +
    +    public OrganicTest()
    +    {
    +        super("Hello, World!");
    +
    +        mxGraph graph = new mxGraph();
    +        Object parent = graph.getDefaultParent();
    +        Object[] vertices = new Object[3];
    +        
    +        graph.getModel().beginUpdate();
    +        try
    +        {
    +            for(int i = 0; i < 3; i++) {
    +            	vertices[i] = graph.insertVertex(parent, null, String.valueOf(i), 20+i*10, 20, 80,30);
    +            }
    +            
    +            graph.insertEdge(parent, null, "Edge1", vertices[0], vertices[1]);
    +            graph.insertEdge(parent, null, "Edge2", vertices[0], vertices[2]);
    +        }
    +        finally
    +        {
    +            graph.getModel().endUpdate();
    +        }
    +
    +        mxGraphComponent graphComponent = new mxGraphComponent(graph);
    +        graphComponent.setConnectable(false);
    +        getContentPane().add(graphComponent);
    +        mxOrganicLayout organicLayout = new mxOrganicLayout(graph);
    +        organicLayout.execute(graph.getDefaultParent());
    +    }
    +
    +    public static void main(String[] args)
    +    {
    +        OrganicTest frame = new OrganicTest();
    +        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +        frame.setSize(400, 320);
    +        frame.setVisible(true);
    +    }
    +
    +}
    \ No newline at end of file
    diff --git a/java/test/com/mxgraph/test/PerformanceTest.java b/java/test/com/mxgraph/test/PerformanceTest.java
    new file mode 100644
    index 000000000..c915d0615
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/PerformanceTest.java
    @@ -0,0 +1,94 @@
    +package com.mxgraph.test;
    +
    +import java.awt.event.MouseWheelEvent;
    +import java.awt.event.MouseWheelListener;
    +import java.util.Random;
    +
    +import javax.swing.JFrame;
    +
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.model.mxGeometry;
    +import com.mxgraph.model.mxICell;
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.util.mxPoint;
    +import com.mxgraph.util.mxRectangle;
    +import com.mxgraph.view.mxGraph;
    +
    +public class PerformanceTest extends JFrame
    +{
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = 6383140264262860886L;
    +	final mxGraph graph;
    +
    +	public PerformanceTest()
    +	{
    +		super("JGraphX");
    +		setSize(640, 480);
    +		setDefaultCloseOperation(EXIT_ON_CLOSE);
    +
    +		graph = new mxGraph();
    +		graph.setMinimumGraphSize(new mxRectangle(0, 0, 20000, 10000));
    +
    +		final mxGraphComponent graphComponent = new mxGraphComponent(graph);
    +
    +		// Use if no folding icons are needed
    +		graphComponent.setFoldingEnabled(false);
    +
    +		// Use if no drop into cells or edge splitting are needed
    +		graphComponent.getGraphHandler().setMarkerEnabled(false);
    +
    +		graphComponent.addMouseWheelListener(new MouseWheelListener()
    +		{
    +			public void mouseWheelMoved(MouseWheelEvent event)
    +			{
    +				if (event.getWheelRotation() < 0)
    +					graphComponent.zoomIn();
    +				else
    +					graphComponent.zoomOut();
    +			}
    +		});
    +
    +		getContentPane().add(graphComponent);
    +
    +		Random random = new Random();
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			for (int i = 0; i < 5000; i++)
    +			{
    +				insertPart(random.nextInt(20000), random.nextInt(10000));
    +			}
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +	}
    +
    +	void insertPart(float x, float y)
    +	{
    +		mxICell part = (mxICell) graph.insertVertex(graph.getDefaultParent(),
    +				null, "NAME", x, y, 50, 30);
    +
    +		mxPoint offset = new mxPoint(-2.5, -2.5);
    +
    +		mxICell port = (mxICell) graph.insertVertex(part, null, null, 0.0, 0.5,
    +				5, 5);
    +		mxGeometry geometry = port.getGeometry();
    +		geometry.setRelative(true);
    +		geometry.setOffset(offset);
    +
    +		port = (mxCell) graph.insertVertex(part, null, null, 1.0, 0.5, 5, 5);
    +		geometry = port.getGeometry();
    +		geometry.setRelative(true);
    +		geometry.setOffset(offset);
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		(new PerformanceTest()).show();
    +	}
    +}
    \ No newline at end of file
    diff --git a/java/test/com/mxgraph/test/PrintTest.java b/java/test/com/mxgraph/test/PrintTest.java
    new file mode 100644
    index 000000000..04468479d
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/PrintTest.java
    @@ -0,0 +1,78 @@
    +package com.mxgraph.test;
    +
    +import java.awt.BorderLayout;
    +import java.awt.event.MouseAdapter;
    +import java.awt.event.MouseEvent;
    +import java.awt.print.PageFormat;
    +import java.awt.print.Paper;
    +import java.awt.print.PrinterException;
    +import java.awt.print.PrinterJob;
    +
    +import javax.swing.JButton;
    +import javax.swing.JFrame;
    +
    +import com.mxgraph.swing.mxGraphComponent;
    +import com.mxgraph.view.mxGraph;
    +
    +public class PrintTest extends JFrame
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -2707712944901661771L;
    +
    +	public PrintTest()
    +	{
    +		super("Hello, World!");
    +
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +		graph.insertVertex(parent, null, "", 20, 20, 80, 50,
    +				"shape=image;image=http://www.jgraph.com/images/mxgraph.gif");
    +		graph.insertVertex(parent, null, "", 120, 20, 160, 100,
    +				"shape=image;image=http://www.jgraph.com/images/mxgraph.gif");
    +
    +		final mxGraphComponent graphComponent = new mxGraphComponent(graph);
    +		getContentPane().setLayout(new BorderLayout());
    +		getContentPane().add(graphComponent);
    +		JButton button = new JButton("Print");
    +		button.addMouseListener(new MouseAdapter()
    +		{
    +			public void mouseClicked(MouseEvent e)
    +			{
    +				PrinterJob pj = PrinterJob.getPrinterJob();
    +
    +				if (pj.printDialog())
    +				{
    +					PageFormat pf = graphComponent.getPageFormat();
    +					Paper paper = new Paper();
    +					double margin = 36;
    +					paper.setImageableArea(margin, margin, paper.getWidth()
    +							- margin * 2, paper.getHeight() - margin * 2);
    +					pf.setPaper(paper);
    +					pj.setPrintable(graphComponent, pf);
    +
    +					try
    +					{
    +						pj.print();
    +					}
    +					catch (PrinterException e2)
    +					{
    +						System.out.println(e2);
    +					}
    +				}
    +			}
    +		});
    +		getContentPane().add(button, BorderLayout.SOUTH);
    +	}
    +
    +	public static void main(String[] args)
    +	{
    +		PrintTest frame = new PrintTest();
    +		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    +		frame.setSize(400, 320);
    +		frame.setVisible(true);
    +	}
    +
    +}
    diff --git a/java/test/com/mxgraph/test/imageoutput.xml b/java/test/com/mxgraph/test/imageoutput.xml
    new file mode 100644
    index 000000000..3d7c3a59f
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/imageoutput.xml
    @@ -0,0 +1,436 @@
    +<output>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <roundrect x="80" y="40" w="40" h="80" dx="8" dy="8"/>
    +  <fillstroke/>
    +  <restore/>
    +  <save/>
    +  <fontstyle style="1"/>
    +  <fontsize size="12"/>
    +  <text x="90" y="21.4" w="20" h="18" str="J1" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="71" y="50.5"/>
    +  <line x="87" y="50.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="72" y="40.2" w="10" h="13" str="1" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="71" y="70.5"/>
    +  <line x="87" y="70.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="72" y="60.2" w="10" h="13" str="2" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="71" y="90.5"/>
    +  <line x="87" y="90.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="72" y="80.2" w="10" h="13" str="3" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="71" y="110.5"/>
    +  <line x="87" y="110.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="72" y="100.2" w="10" h="13" str="4" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="115" y="50.5"/>
    +  <line x="131" y="50.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="120" y="40.2" w="10" h="13" str="5" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="115" y="70.5"/>
    +  <line x="131" y="70.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="120" y="60.2" w="10" h="13" str="6" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="115" y="90.5"/>
    +  <line x="131" y="90.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="120" y="80.2" w="10" h="13" str="7" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="115" y="110.5"/>
    +  <line x="131" y="110.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="120" y="100.2" w="10" h="13" str="8" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <rotate theta="270" flipH="0" flipV="0" cx="102" cy="118"/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <fillcolor color="#909090"/>
    +  <begin/>
    +  <move x="97" y="120"/>
    +  <line x="102" y="116"/>
    +  <line x="107" y="120"/>
    +  <close/>
    +  <fillstroke/>
    +  <restore/>
    +  <save/>
    +  <fontstyle style="1"/>
    +  <fontsize size="9"/>
    +  <text x="92.5" y="106.23" w="19" h="14" str="clk" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="3"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <end/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="220" y="230"/>
    +  <line x="230" y="230"/>
    +  <line x="235" y="220"/>
    +  <line x="245" y="240"/>
    +  <line x="255" y="220"/>
    +  <line x="265" y="240"/>
    +  <line x="275" y="220"/>
    +  <line x="285" y="240"/>
    +  <line x="290" y="230"/>
    +  <line x="300" y="230"/>
    +  <end/>
    +  <fillstroke/>
    +  <restore/>
    +  <save/>
    +  <fontstyle style="1"/>
    +  <fontsize size="12"/>
    +  <text x="249.5" y="201.4" w="21" h="18" str="R1" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <roundrect x="420" y="340" w="40" h="80" dx="8" dy="8"/>
    +  <fillstroke/>
    +  <restore/>
    +  <save/>
    +  <fontstyle style="1"/>
    +  <fontsize size="12"/>
    +  <text x="430" y="321.4" w="20" h="18" str="J3" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="411" y="350.5"/>
    +  <line x="427" y="350.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="412" y="340.2" w="10" h="13" str="1" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="411" y="370.5"/>
    +  <line x="427" y="370.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="412" y="360.2" w="10" h="13" str="2" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="411" y="390.5"/>
    +  <line x="427" y="390.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="412" y="380.2" w="10" h="13" str="3" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="411" y="410.5"/>
    +  <line x="427" y="410.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="412" y="400.2" w="10" h="13" str="4" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="455" y="350.5"/>
    +  <line x="471" y="350.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="460" y="340.2" w="10" h="13" str="5" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="455" y="370.5"/>
    +  <line x="471" y="370.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="460" y="360.2" w="10" h="13" str="6" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="455" y="390.5"/>
    +  <line x="471" y="390.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="460" y="380.2" w="10" h="13" str="7" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <begin/>
    +  <move x="455" y="410.5"/>
    +  <line x="471" y="410.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#4c4c4c"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="8"/>
    +  <text x="460" y="400.2" w="10" h="13" str="8" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <rotate theta="270" flipH="0" flipV="0" cx="442" cy="418"/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <fillcolor color="#909090"/>
    +  <begin/>
    +  <move x="437" y="420"/>
    +  <line x="442" y="416"/>
    +  <line x="447" y="420"/>
    +  <close/>
    +  <fillstroke/>
    +  <restore/>
    +  <save/>
    +  <fontstyle style="1"/>
    +  <fontsize size="9"/>
    +  <text x="432.5" y="406.23" w="19" h="14" str="clk" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <fillcolor color="#000000"/>
    +  <begin/>
    +  <move x="131" y="110.5"/>
    +  <line x="180" y="110.5"/>
    +  <line x="180" y="230"/>
    +  <line x="220" y="230"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#FFFFFF"/>
    +  <rect x="172" y="159.98" w="16" h="15"/>
    +  <fill/>
    +  <fontstyle style="0"/>
    +  <fontsize size="9"/>
    +  <text x="172" y="159.98" w="16" h="15" str="e1" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <fillcolor color="#000000"/>
    +  <begin/>
    +  <move x="131" y="50.5"/>
    +  <line x="320" y="50.5"/>
    +  <line x="320" y="200"/>
    +  <line x="300" y="200"/>
    +  <line x="300" y="230"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#FFFFFF"/>
    +  <rect x="312" y="49.97" w="16" h="15"/>
    +  <fill/>
    +  <fontstyle style="0"/>
    +  <fontsize size="9"/>
    +  <text x="312" y="49.97" w="16" h="15" str="e2" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <fillcolor color="#000000"/>
    +  <ellipse x="179.6" y="157.6" w="4.8" h="4.8"/>
    +  <fillstroke/>
    +  <ellipse x="315.6" y="157.6" w="4.8" h="4.8"/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="181" y="160"/>
    +  <line x="319" y="160"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#FFFFFF"/>
    +  <rect x="226" y="154.23" w="48" h="15"/>
    +  <fill/>
    +  <fontstyle style="0"/>
    +  <fontsize size="9"/>
    +  <fontstyle style="5"/>
    +  <text x="226" y="154.23" w="48" h="15" str="crossover" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <fillcolor color="#000000"/>
    +  <begin/>
    +  <move x="300" y="230"/>
    +  <line x="411" y="230"/>
    +  <line x="411" y="350.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#FFFFFF"/>
    +  <rect x="403" y="228.98" w="16" h="15"/>
    +  <fill/>
    +  <fontstyle style="0"/>
    +  <fontsize size="9"/>
    +  <text x="403" y="228.98" w="16" h="15" str="e4" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <fillcolor color="#000000"/>
    +  <begin/>
    +  <move x="471" y="370.5"/>
    +  <line x="500" y="370.5"/>
    +  <line x="500" y="20"/>
    +  <line x="20" y="20"/>
    +  <line x="20" y="50.5"/>
    +  <line x="71" y="50.5"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#FFFFFF"/>
    +  <rect x="401" y="14.23" w="16" h="15"/>
    +  <fill/>
    +  <fontstyle style="0"/>
    +  <fontsize size="9"/>
    +  <text x="401" y="14.23" w="16" h="15" str="e5" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <fillcolor color="#000000"/>
    +  <begin/>
    +  <move x="100" y="500"/>
    +  <line x="600" y="500"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="2"/>
    +  <strokecolor color="#000000"/>
    +  <fillcolor color="#000000"/>
    +  <ellipse x="497.6" y="495.6" w="4.8" h="4.8"/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="471" y="410.5"/>
    +  <line x="500" y="410.5"/>
    +  <line x="500" y="499"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#FFFFFF"/>
    +  <rect x="492" y="434.98" w="16" h="15"/>
    +  <fill/>
    +  <fontstyle style="0"/>
    +  <fontsize size="9"/>
    +  <text x="492" y="434.98" w="16" h="15" str="e7" align="center" vertical="0"/>
    +  <restore/>
    +</output>
    diff --git a/java/test/com/mxgraph/test/imageoutput2.xml b/java/test/com/mxgraph/test/imageoutput2.xml
    new file mode 100644
    index 000000000..05c5b0142
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/imageoutput2.xml
    @@ -0,0 +1,764 @@
    +<output>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <rect x="10" y="10" w="520" h="28"/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="10" y="10" w="520" h="28"/>
    +  <rect x="10" y="10" w="520" h="28"/>
    +  <fillstroke/>
    +  <rect x="10" y="10" w="520" h="640"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="3"/>
    +  <fontsize size="14"/>
    +  <text x="233.5" y="13.35" w="73" h="19" str="Container" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <roundrect x="30" y="50" w="120" h="40" dx="6" dy="6"/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="30" y="50" w="120" h="40"/>
    +  <roundrect x="30" y="50" w="120" h="40" dx="6" dy="6"/>
    +  <fillstroke/>
    +  <roundrect x="29.5" y="49.5" w="121" h="41" dx="6.05" dy="6.05"/>
    +  <save/>
    +  <clip/>
    +  <glass x="29.5" y="49.5" w="121" h="41"/>
    +  <begin/>
    +  <move x="29.5" y="49.5"/>
    +  <line x="29.5" y="65.9"/>
    +  <quad x1="90" y1="78.2" x2="150.5" y2="65.9"/>
    +  <line x="150.5" y="49.5"/>
    +  <close/>
    +  <fill/>
    +  <restore/>
    +  <image x="36" y="59" w="22" h="22" src="logo.png" aspect="1" flipH="0" flipV="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="1"/>
    +  <text x="62" y="62.28" w="73" h="17" str="Bold + Glass" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <roundrect x="80" y="70" w="120" h="40" dx="6" dy="6"/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="80" y="70" w="120" h="40"/>
    +  <roundrect x="80" y="70" w="120" h="40" dx="6" dy="6"/>
    +  <fillstroke/>
    +  <roundrect x="79.5" y="69.5" w="121" h="41" dx="6.05" dy="6.05"/>
    +  <save/>
    +  <clip/>
    +  <glass x="79.5" y="69.5" w="121" h="41"/>
    +  <begin/>
    +  <move x="79.5" y="69.5"/>
    +  <line x="79.5" y="85.9"/>
    +  <quad x1="140" y1="98.2" x2="200.5" y2="85.9"/>
    +  <line x="200.5" y="69.5"/>
    +  <close/>
    +  <fill/>
    +  <restore/>
    +  <image x="86" y="79" w="22" h="22" src="logo.png" aspect="1" flipH="0" flipV="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="1"/>
    +  <text x="112" y="82.28" w="73" h="17" str="Bold + Glass" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <roundrect x="130" y="60" w="120" h="40" dx="6" dy="6"/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="130" y="60" w="120" h="40"/>
    +  <roundrect x="130" y="60" w="120" h="40" dx="6" dy="6"/>
    +  <fillstroke/>
    +  <roundrect x="129.5" y="59.5" w="121" h="41" dx="6.05" dy="6.05"/>
    +  <save/>
    +  <clip/>
    +  <glass x="129.5" y="59.5" w="121" h="41"/>
    +  <begin/>
    +  <move x="129.5" y="59.5"/>
    +  <line x="129.5" y="75.9"/>
    +  <quad x1="190" y1="88.2" x2="250.5" y2="75.9"/>
    +  <line x="250.5" y="59.5"/>
    +  <close/>
    +  <fill/>
    +  <restore/>
    +  <image x="136" y="69" w="22" h="22" src="logo.png" aspect="1" flipH="0" flipV="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="1"/>
    +  <fontsize size="14"/>
    +  <text x="162" y="69.35" w="72" h="19" str="Bold 14pt" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="270" y="60" w="120" h="40"/>
    +  <roundrect x="270" y="60" w="120" h="40" dx="6" dy="6"/>
    +  <fillstroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="294.5" y="72.28" w="71" h="17" str="Blue Gradient" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <alpha alpha="0.75"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="330" y="60" w="120" h="40"/>
    +  <roundrect x="330" y="60" w="120" h="40" dx="6" dy="6"/>
    +  <fillstroke/>
    +  <restore/>
    +  <save/>
    +  <alpha alpha="0.75"/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="356" y="72.28" w="68" h="17" str="75% Opacity" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <alpha alpha="0.25"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="390" y="60" w="120" h="40"/>
    +  <roundrect x="390" y="60" w="120" h="40" dx="6" dy="6"/>
    +  <fillstroke/>
    +  <restore/>
    +  <save/>
    +  <alpha alpha="0.25"/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="416" y="72.28" w="68" h="17" str="25% Opacity" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <alpha alpha="0.5"/>
    +  <image x="30" y="120" w="80" h="40" src="mxlogo.jpg" aspect="1" flipH="0" flipV="1"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="42" y="162" w="56" h="31" str="JPG Image&#xa;(flipped)" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <image x="130" y="120" w="80" h="40" src="logo.png" aspect="1" flipH="0" flipV="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="130" y="162" w="62" h="31" str="PNG Image&#xa;(non-alpha)" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokecolor color="#FF00FF"/>
    +  <fillcolor color="#FFFF00"/>
    +  <rect x="230" y="120" w="80" h="40"/>
    +  <fillstroke/>
    +  <image x="230" y="120" w="80" h="40" src="logo.png" aspect="1" flipH="1" flipV="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="231.5" y="162" w="77" h="31" str="PNG Image&#xa;(flipped w/ bg)" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <image x="330" y="120" w="80" h="40" src="bell.png" aspect="1" flipH="0" flipV="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="352" y="162" w="58" h="31" str="PNG Image&#xa;(alpha)" align="right" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <image x="430" y="120" w="80" h="40" src="image.gif" aspect="1" flipH="0" flipV="0"/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#ff0000"/>
    +  <strokecolor color="#0000ff"/>
    +  <rect x="439" y="162" w="62" h="33"/>
    +  <fillstroke/>
    +  <fontcolor color="#ffffff"/>
    +  <fontstyle style="1"/>
    +  <text x="439" y="162" w="62" h="33" str="GIF Image&#xa;(GIF89a)" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <begin/>
    +  <move x="30" y="210"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="30" y="290"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="30" y="210" w="80" h="80"/>
    +  <begin/>
    +  <move x="30" y="210"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="30" y="290"/>
    +  <close/>
    +  <fillstroke/>
    +  <text x="30" y="210" w="0" h="0" str="Label1" vertical="0"/>
    +  <text x="70" y="250" w="0" h="0" str="X" align="center" valign="middle" vertical="0"/>
    +  <text x="110" y="250" w="0" h="0" str="Right" align="right" valign="middle" vertical="0"/>
    +  <fontcolor color="#ff0000"/>
    +  <fontfamily family="Times"/>
    +  <text x="110" y="290" w="0" h="0" str="OR" align="right" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="59.5" y="242.27" w="21" h="17" str="OR" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <rotate theta="90" flipH="0" flipV="0" cx="190" cy="250"/>
    +  <translate dx="4" dy="-4"/>
    +  <strokewidth width="0.8"/>
    +  <linejoin join="round"/>
    +  <begin/>
    +  <move x="170" y="210"/>
    +  <line x="210" y="250"/>
    +  <line x="170" y="290"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="4"/>
    +  <strokecolor color="#0000ff"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="150" y="210" w="80" h="80" direction="south"/>
    +  <linejoin join="round"/>
    +  <begin/>
    +  <move x="170" y="210"/>
    +  <line x="210" y="250"/>
    +  <line x="170" y="290"/>
    +  <close/>
    +  <fillstroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="176" y="212" w="28" h="17" str="AND" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <begin/>
    +  <move x="270" y="210"/>
    +  <quad x1="350" y1="210" x2="350" y2="250"/>
    +  <quad x1="350" y1="290" x2="270" y2="290"/>
    +  <quad x1="310" y1="250" x2="270" y2="210"/>
    +  <close/>
    +  <alpha alpha="0.5"/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="270" y="210" w="80" h="80"/>
    +  <begin/>
    +  <move x="270" y="210"/>
    +  <quad x1="350" y1="210" x2="350" y2="250"/>
    +  <quad x1="350" y1="290" x2="270" y2="290"/>
    +  <quad x1="310" y1="250" x2="270" y2="210"/>
    +  <close/>
    +  <fillstroke/>
    +  <image x="294" y="234" w="32" h="32" src="bell.png" aspect="0" flipH="1" flipV="0"/>
    +  <fontcolor color="#ffffff"/>
    +  <fontstyle style="1"/>
    +  <text x="281.2" y="214.8" w="0" h="0" str="Oben" align="left" valign="top" vertical="0"/>
    +  <text x="281.2" y="285.2" w="0" h="0" str="Unten" align="left" valign="bottom" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="270" y="242.27" w="28" h="17" str="XOR" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="430" y="210" w="80" h="80"/>
    +  <strokewidth width="0.8"/>
    +  <strokecolor color="#000000"/>
    +  <strokewidth width="6.4"/>
    +  <save/>
    +  <ellipse x="430" y="210" w="80" h="80"/>
    +  <stroke/>
    +  <restore/>
    +  <strokewidth width="0.72"/>
    +  <strokecolor color="#000000"/>
    +  <strokewidth width="4.32"/>
    +  <linecap cap="round"/>
    +  <begin/>
    +  <move x="452" y="232"/>
    +  <line x="488" y="268"/>
    +  <stroke/>
    +  <begin/>
    +  <move x="488" y="232"/>
    +  <line x="452" y="268"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#ffff00"/>
    +  <strokecolor color="#000000"/>
    +  <rect x="462.28" y="227.5" w="19" h="45"/>
    +  <fillstroke/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="449.28" y="240.5" w="45" h="19" str="Vertical" align="center" vertical="1"/>
    +  <restore/>
    +  <save/>
    +  <rotate theta="270" flipH="0" flipV="0" cx="70" cy="350"/>
    +  <translate dx="-4" dy="4"/>
    +  <begin/>
    +  <move x="30" y="310"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="30" y="390"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="30" y="310" w="80" h="80" direction="north"/>
    +  <begin/>
    +  <move x="30" y="310"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="30" y="390"/>
    +  <close/>
    +  <fillstroke/>
    +  <text x="30" y="310" w="0" h="0" str="Label1" vertical="0"/>
    +  <text x="70" y="350" w="0" h="0" str="X" align="center" valign="middle" vertical="0"/>
    +  <text x="110" y="350" w="0" h="0" str="Right" align="right" valign="middle" vertical="0"/>
    +  <fontcolor color="#ff0000"/>
    +  <fontfamily family="Times"/>
    +  <text x="110" y="390" w="0" h="0" str="OR" align="right" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="59.5" y="342.28" w="21" h="17" str="OR" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="8"/>
    +  <translate dx="4" dy="4"/>
    +  <begin/>
    +  <move x="150" y="310"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="150" y="390"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#0000ff"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="150" y="310" w="80" h="80" direction="east"/>
    +  <begin/>
    +  <move x="150" y="310"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="150" y="390"/>
    +  <close/>
    +  <fillstroke/>
    +  <text x="150" y="310" w="0" h="0" str="Label1" vertical="0"/>
    +  <text x="190" y="350" w="0" h="0" str="X" align="center" valign="middle" vertical="0"/>
    +  <text x="230" y="350" w="0" h="0" str="Right" align="right" valign="middle" vertical="0"/>
    +  <fontcolor color="#ff0000"/>
    +  <fontfamily family="Times"/>
    +  <text x="230" y="390" w="0" h="0" str="OR" align="right" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="179.5" y="342.28" w="21" h="17" str="OR" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <rotate theta="90" flipH="0" flipV="0" cx="310" cy="350"/>
    +  <translate dx="4" dy="-4"/>
    +  <begin/>
    +  <move x="270" y="310"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="270" y="390"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="270" y="310" w="80" h="80" direction="south"/>
    +  <begin/>
    +  <move x="270" y="310"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="270" y="390"/>
    +  <close/>
    +  <fillstroke/>
    +  <text x="270" y="310" w="0" h="0" str="Label1" vertical="0"/>
    +  <text x="310" y="350" w="0" h="0" str="X" align="center" valign="middle" vertical="0"/>
    +  <text x="350" y="350" w="0" h="0" str="Right" align="right" valign="middle" vertical="0"/>
    +  <fontcolor color="#ff0000"/>
    +  <fontfamily family="Times"/>
    +  <text x="350" y="390" w="0" h="0" str="OR" align="right" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="299.5" y="342.28" w="21" h="17" str="OR" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <rotate theta="180" flipH="0" flipV="0" cx="470" cy="350"/>
    +  <translate dx="-4" dy="-4"/>
    +  <begin/>
    +  <move x="430" y="310"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="430" y="390"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="4" dy="4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="430" y="310" w="80" h="80" direction="west"/>
    +  <begin/>
    +  <move x="430" y="310"/>
    +  <arc rx="80" ry="40" theta="0" arc="1" sweep="1" x="430" y="390"/>
    +  <close/>
    +  <fillstroke/>
    +  <text x="430" y="310" w="0" h="0" str="Label1" vertical="0"/>
    +  <text x="470" y="350" w="0" h="0" str="X" align="center" valign="middle" vertical="0"/>
    +  <text x="510" y="350" w="0" h="0" str="Right" align="right" valign="middle" vertical="0"/>
    +  <fontcolor color="#ff0000"/>
    +  <fontfamily family="Times"/>
    +  <text x="510" y="390" w="0" h="0" str="OR" align="right" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#ffff00"/>
    +  <strokecolor color="#000000"/>
    +  <rect x="462.28" y="338.5" w="19" h="23"/>
    +  <fillstroke/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="460.28" y="340.5" w="23" h="19" str="OR" align="center" vertical="1"/>
    +  <restore/>
    +  <save/>
    +  <rotate theta="270" flipH="0" flipV="0" cx="70" cy="450"/>
    +  <strokewidth width="8"/>
    +  <translate dx="-4" dy="4"/>
    +  <begin/>
    +  <move x="30" y="410"/>
    +  <quad x1="110" y1="410" x2="110" y2="450"/>
    +  <quad x1="110" y1="490" x2="30" y2="490"/>
    +  <quad x1="70" y1="450" x2="30" y2="410"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="30" y="410" w="80" h="80" direction="north"/>
    +  <begin/>
    +  <move x="30" y="410"/>
    +  <quad x1="110" y1="410" x2="110" y2="450"/>
    +  <quad x1="110" y1="490" x2="30" y2="490"/>
    +  <quad x1="70" y1="450" x2="30" y2="410"/>
    +  <close/>
    +  <fillstroke/>
    +  <image x="54" y="434" w="32" h="32" src="bell.png" aspect="0" flipH="1" flipV="0"/>
    +  <fontcolor color="#ffffff"/>
    +  <fontstyle style="1"/>
    +  <text x="41.2" y="414.8" w="0" h="0" str="Oben" align="left" valign="top" vertical="0"/>
    +  <text x="41.2" y="485.2" w="0" h="0" str="Unten" align="left" valign="bottom" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="56" y="442.28" w="28" h="17" str="XOR" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokewidth width="6"/>
    +  <translate dx="4" dy="4"/>
    +  <begin/>
    +  <move x="150" y="410"/>
    +  <quad x1="230" y1="410" x2="230" y2="450"/>
    +  <quad x1="230" y1="490" x2="150" y2="490"/>
    +  <quad x1="190" y1="450" x2="150" y2="410"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#0000ff"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="150" y="410" w="80" h="80" direction="east"/>
    +  <begin/>
    +  <move x="150" y="410"/>
    +  <quad x1="230" y1="410" x2="230" y2="450"/>
    +  <quad x1="230" y1="490" x2="150" y2="490"/>
    +  <quad x1="190" y1="450" x2="150" y2="410"/>
    +  <close/>
    +  <fillstroke/>
    +  <image x="174" y="434" w="32" h="32" src="bell.png" aspect="0" flipH="1" flipV="0"/>
    +  <fontcolor color="#ffffff"/>
    +  <fontstyle style="1"/>
    +  <text x="161.2" y="414.8" w="0" h="0" str="Oben" align="left" valign="top" vertical="0"/>
    +  <text x="161.2" y="485.2" w="0" h="0" str="Unten" align="left" valign="bottom" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="176" y="442.28" w="28" h="17" str="XOR" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <rotate theta="90" flipH="0" flipV="0" cx="310" cy="450"/>
    +  <strokewidth width="4"/>
    +  <translate dx="4" dy="-4"/>
    +  <begin/>
    +  <move x="270" y="410"/>
    +  <quad x1="350" y1="410" x2="350" y2="450"/>
    +  <quad x1="350" y1="490" x2="270" y2="490"/>
    +  <quad x1="310" y1="450" x2="270" y2="410"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="-4" dy="4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="270" y="410" w="80" h="80" direction="south"/>
    +  <begin/>
    +  <move x="270" y="410"/>
    +  <quad x1="350" y1="410" x2="350" y2="450"/>
    +  <quad x1="350" y1="490" x2="270" y2="490"/>
    +  <quad x1="310" y1="450" x2="270" y2="410"/>
    +  <close/>
    +  <fillstroke/>
    +  <image x="294" y="434" w="32" h="32" src="bell.png" aspect="0" flipH="1" flipV="0"/>
    +  <fontcolor color="#ffffff"/>
    +  <fontstyle style="1"/>
    +  <text x="281.2" y="414.8" w="0" h="0" str="Oben" align="left" valign="top" vertical="0"/>
    +  <text x="281.2" y="485.2" w="0" h="0" str="Unten" align="left" valign="bottom" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="296" y="442.28" w="28" h="17" str="XOR" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <rotate theta="180" flipH="0" flipV="0" cx="470" cy="450"/>
    +  <strokewidth width="2"/>
    +  <translate dx="-4" dy="-4"/>
    +  <begin/>
    +  <move x="430" y="410"/>
    +  <quad x1="510" y1="410" x2="510" y2="450"/>
    +  <quad x1="510" y1="490" x2="430" y2="490"/>
    +  <quad x1="470" y1="450" x2="430" y2="410"/>
    +  <close/>
    +  <shadow value="#E3E3E3"/>
    +  <translate dx="4" dy="4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="430" y="410" w="80" h="80" direction="west"/>
    +  <begin/>
    +  <move x="430" y="410"/>
    +  <quad x1="510" y1="410" x2="510" y2="450"/>
    +  <quad x1="510" y1="490" x2="430" y2="490"/>
    +  <quad x1="470" y1="450" x2="430" y2="410"/>
    +  <close/>
    +  <fillstroke/>
    +  <image x="454" y="434" w="32" h="32" src="bell.png" aspect="0" flipH="1" flipV="0"/>
    +  <fontcolor color="#ffffff"/>
    +  <fontstyle style="1"/>
    +  <text x="441.2" y="414.8" w="0" h="0" str="Oben" align="left" valign="top" vertical="0"/>
    +  <text x="441.2" y="485.2" w="0" h="0" str="Unten" align="left" valign="bottom" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#ffff00"/>
    +  <strokecolor color="#000000"/>
    +  <rect x="462.28" y="435" w="19" h="30"/>
    +  <fillstroke/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="456.78" y="440.5" w="30" h="19" str="XOR" align="center" vertical="1"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="30" y="510" w="80" h="80"/>
    +  <strokewidth width="0.8"/>
    +  <rect x="30" y="510" w="16" h="16"/>
    +  <fillstroke/>
    +  <rect x="30" y="574" w="16" h="16"/>
    +  <fillstroke/>
    +  <fillcolor color="#ff0000"/>
    +  <rect x="94" y="542" w="16" h="16"/>
    +  <fillstroke/>
    +  <fillcolor color="#00ff00"/>
    +  <roundrect x="94" y="558" w="16" h="16" dx="0" dy="0"/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="46" y="518"/>
    +  <line x="102" y="518"/>
    +  <line x="102" y="542"/>
    +  <move x="46" y="582"/>
    +  <line x="70" y="582"/>
    +  <line x="70" y="566"/>
    +  <line x="94" y="566"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="56" y="542.28" w="28" h="17" str="AND" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="150" y="510" w="80" h="80"/>
    +  <strokewidth width="0.8"/>
    +  <rect x="150" y="510" w="16" h="16"/>
    +  <fillstroke/>
    +  <rect x="150" y="574" w="16" h="16"/>
    +  <fillstroke/>
    +  <fillcolor color="#ff0000"/>
    +  <rect x="214" y="542" w="16" h="16"/>
    +  <fillstroke/>
    +  <fillcolor color="#00ff00"/>
    +  <roundrect x="214" y="558" w="16" h="16" dx="0" dy="0"/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="166" y="518"/>
    +  <line x="222" y="518"/>
    +  <line x="222" y="542"/>
    +  <move x="166" y="582"/>
    +  <line x="190" y="582"/>
    +  <line x="190" y="566"/>
    +  <line x="214" y="566"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="176" y="542.28" w="28" h="17" str="AND" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="270" y="510" w="80" h="80"/>
    +  <strokewidth width="0.8"/>
    +  <rect x="270" y="510" w="16" h="16"/>
    +  <fillstroke/>
    +  <rect x="270" y="574" w="16" h="16"/>
    +  <fillstroke/>
    +  <fillcolor color="#ff0000"/>
    +  <rect x="334" y="542" w="16" h="16"/>
    +  <fillstroke/>
    +  <fillcolor color="#00ff00"/>
    +  <roundrect x="334" y="558" w="16" h="16" dx="0" dy="0"/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="286" y="518"/>
    +  <line x="342" y="518"/>
    +  <line x="342" y="542"/>
    +  <move x="286" y="582"/>
    +  <line x="310" y="582"/>
    +  <line x="310" y="566"/>
    +  <line x="334" y="566"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="296" y="542.28" w="28" h="17" str="AND" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <translate dx="4" dy="4"/>
    +  <translate dx="-4" dy="-4"/>
    +  <strokecolor color="#6482B9"/>
    +  <gradient c1="#adc5ff" c2="#7d85df" x="430" y="510" w="80" h="80"/>
    +  <strokewidth width="0.8"/>
    +  <rect x="430" y="510" w="16" h="16"/>
    +  <fillstroke/>
    +  <rect x="430" y="574" w="16" h="16"/>
    +  <fillstroke/>
    +  <fillcolor color="#ff0000"/>
    +  <rect x="494" y="542" w="16" h="16"/>
    +  <fillstroke/>
    +  <fillcolor color="#00ff00"/>
    +  <roundrect x="494" y="558" w="16" h="16" dx="0" dy="0"/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="446" y="518"/>
    +  <line x="502" y="518"/>
    +  <line x="502" y="542"/>
    +  <move x="446" y="582"/>
    +  <line x="470" y="582"/>
    +  <line x="470" y="566"/>
    +  <line x="494" y="566"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#ffff00"/>
    +  <strokecolor color="#000000"/>
    +  <rect x="462.28" y="535" w="19" h="30"/>
    +  <fillstroke/>
    +  <fontcolor color="#774400"/>
    +  <fontstyle style="0"/>
    +  <text x="456.78" y="540.5" w="30" h="19" str="AND" align="center" vertical="1"/>
    +  <restore/>
    +  <save/>
    +  <strokecolor color="#6482B9"/>
    +  <fillcolor color="#6482B9"/>
    +  <ellipse x="107.4" y="246.4" w="7.2" h="7.2"/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="169" y="250"/>
    +  <line x="163" y="253"/>
    +  <line x="164.5" y="250"/>
    +  <line x="163" y="247"/>
    +  <close/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="110.5" y="250"/>
    +  <line x="163.5" y="250"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#ffffff"/>
    +  <rect x="131" y="242.27" w="18" h="17"/>
    +  <fill/>
    +  <fontcolor color="#446299"/>
    +  <fontstyle style="0"/>
    +  <text x="131" y="242.27" w="18" h="17" str="e1" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <strokecolor color="#6482B9"/>
    +  <fillcolor color="#6482B9"/>
    +  <begin/>
    +  <move x="211" y="250"/>
    +  <line x="214.6" y="246.4"/>
    +  <line x="218.2" y="250"/>
    +  <line x="214.6" y="253.6"/>
    +  <close/>
    +  <fillstroke/>
    +  <begin/>
    +  <move x="261.8" y="253.6"/>
    +  <line x="267.8" y="250"/>
    +  <line x="261.8" y="246.4"/>
    +  <stroke/>
    +  <begin/>
    +  <move x="214.1" y="250"/>
    +  <line x="265.9" y="250"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#ffffff"/>
    +  <rect x="231" y="242.27" w="18" h="17"/>
    +  <fill/>
    +  <fontcolor color="#446299"/>
    +  <fontstyle style="0"/>
    +  <text x="231" y="242.27" w="18" h="17" str="e2" align="center" vertical="0"/>
    +  <restore/>
    +  <save/>
    +  <dashed dashed="1"/>
    +  <strokecolor color="#6482B9"/>
    +  <fillcolor color="#6482B9"/>
    +  <dashed dashed="0"/>
    +  <begin/>
    +  <move x="429" y="250"/>
    +  <line x="423" y="253"/>
    +  <line x="423" y="247"/>
    +  <close/>
    +  <fillstroke/>
    +  <dashed dashed="1"/>
    +  <begin/>
    +  <move x="350" y="250"/>
    +  <line x="423.5" y="250"/>
    +  <stroke/>
    +  <restore/>
    +  <save/>
    +  <fillcolor color="#ffff00"/>
    +  <strokecolor color="#000000"/>
    +  <rect x="380" y="242.27" w="20" h="19"/>
    +  <fillstroke/>
    +  <fontcolor color="#446299"/>
    +  <fontstyle style="0"/>
    +  <text x="380" y="242.27" w="20" h="19" str="e3" align="center" vertical="0"/>
    +  <restore/>
    +</output>
    \ No newline at end of file
    diff --git a/java/test/com/mxgraph/test/mxCodecTest.java b/java/test/com/mxgraph/test/mxCodecTest.java
    new file mode 100644
    index 000000000..1873a1516
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/mxCodecTest.java
    @@ -0,0 +1,117 @@
    +/**
    + * $Id: mxCodecTest.java,v 1.14 2012-01-13 12:48:16 david Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +package com.mxgraph.test;
    +
    +import java.util.Hashtable;
    +import java.util.Map;
    +
    +import junit.framework.TestCase;
    +import junit.framework.TestSuite;
    +import junit.textui.TestRunner;
    +
    +import org.w3c.dom.Document;
    +import org.w3c.dom.Node;
    +
    +import com.mxgraph.io.mxCodec;
    +import com.mxgraph.model.mxCell;
    +import com.mxgraph.util.mxDomUtils;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.util.mxXmlUtils;
    +import com.mxgraph.view.mxGraph;
    +
    +public class mxCodecTest extends TestCase
    +{
    +
    +	/**
    +	 * Constructs a new test case for the specified name.
    +	 * 
    +	 * @param name
    +	 *            The name of the test case to be constructed.
    +	 */
    +	public mxCodecTest(String name)
    +	{
    +		super(name);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void test1() throws Exception
    +	{
    +
    +		// Creates graph with model
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +		Object v1, v2;
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80, 30);
    +			v2 = graph.insertVertex(parent, null, "World!", 200, 150, 80, 30);
    +			graph.insertEdge(parent, null, "e1", v1, v2);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		mxCodec codec = new mxCodec();
    +		Node node = codec.encode(graph.getModel());
    +		String xml1 = mxXmlUtils.getXml(node);
    +
    +		System.out.println("xml=" + mxUtils.getPrettyXml(node));
    +
    +		Document doc = mxDomUtils.createDocument();
    +		doc.appendChild(doc.importNode(node, true));
    +		codec = new mxCodec(doc);
    +		Object model = codec.decode(node);
    +
    +		codec = new mxCodec();
    +		node = codec.encode(model);
    +		String xml2 = mxXmlUtils.getXml(node);
    +
    +		assertEquals(xml1, xml2);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	@SuppressWarnings("unchecked")
    +	public void test2() throws Exception
    +	{
    +		Map<String, Object> map = new Hashtable<String, Object>();
    +		map.put("a", "b");
    +		map.put("b", new mxCell("Hello, World!"));
    +
    +		mxCodec codec = new mxCodec();
    +		Node node = codec.encode(map);
    +		String xml1 = mxXmlUtils.getXml(node);
    +
    +		codec = new mxCodec();
    +		Map<String, Object> map2 = (Hashtable<String, Object>) codec
    +				.decode(node);
    +
    +		codec = new mxCodec();
    +		node = codec.encode(map2);
    +		String xml2 = mxXmlUtils.getXml(node);
    +
    +		assertEquals(xml1, xml2);
    +		assertEquals(map.size(), map2.size());
    +		assertEquals(map.get("a"), map2.get("a"));
    +	}
    +
    +	/**
    +	 * The main method of the template test suite.
    +	 * 
    +	 * @param args
    +	 *            The array of runtime arguments.
    +	 */
    +	public static void main(String[] args)
    +	{
    +		TestRunner.runAndWait(new TestSuite(mxCodecTest.class));
    +	}
    +
    +}
    diff --git a/java/test/com/mxgraph/test/mxImageExportTest.java b/java/test/com/mxgraph/test/mxImageExportTest.java
    new file mode 100644
    index 000000000..16f283098
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/mxImageExportTest.java
    @@ -0,0 +1,144 @@
    +/**
    + * $Id: mxImageExportTest.java,v 1.7 2012-03-16 15:51:14 gaudenz Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +package com.mxgraph.test;
    +
    +import java.awt.Color;
    +import java.awt.Graphics2D;
    +import java.awt.image.BufferedImage;
    +import java.io.File;
    +import java.io.FileOutputStream;
    +import java.io.IOException;
    +import java.io.StringReader;
    +
    +import javax.imageio.ImageIO;
    +import javax.xml.parsers.ParserConfigurationException;
    +import javax.xml.parsers.SAXParserFactory;
    +
    +import junit.framework.TestCase;
    +import junit.framework.TestSuite;
    +import junit.textui.TestRunner;
    +
    +import org.xml.sax.InputSource;
    +import org.xml.sax.SAXException;
    +import org.xml.sax.XMLReader;
    +
    +import com.lowagie.text.Document;
    +import com.lowagie.text.Rectangle;
    +import com.lowagie.text.pdf.PdfWriter;
    +import com.mxgraph.canvas.mxGraphicsCanvas2D;
    +import com.mxgraph.canvas.mxICanvas2D;
    +import com.mxgraph.reader.mxDomOutputParser;
    +import com.mxgraph.reader.mxSaxOutputHandler;
    +import com.mxgraph.util.mxUtils;
    +import com.mxgraph.util.mxXmlUtils;
    +
    +public class mxImageExportTest extends TestCase
    +{
    +
    +	/**
    +	 * Constructs a new test case for the specified name.
    +	 * 
    +	 * @param name
    +	 *            The name of the test case to be constructed.
    +	 */
    +	public mxImageExportTest(String name)
    +	{
    +		super(name);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void test1() throws Exception
    +	{
    +		String xml = mxUtils.readFile(mxImageExportTest.class.getResource(
    +				"/com/mxgraph/test/imageoutput.xml").getPath());
    +		int w = 704;
    +		int h = 685;
    +
    +		long t0 = System.currentTimeMillis();
    +		BufferedImage image = mxUtils.createBufferedImage(w, h, Color.WHITE);
    +
    +		// Creates handle and configures anti-aliasing
    +		Graphics2D g2 = image.createGraphics();
    +		mxUtils.setAntiAlias(g2, true, true);
    +		long t1 = System.currentTimeMillis();
    +
    +		// Parses request into graphics canvas
    +		mxGraphicsCanvas2D gc2 = new mxGraphicsCanvas2D(g2);
    +		gc2.setAutoAntiAlias(true);
    +		parseXmlSax(xml, gc2);
    +		long t2 = System.currentTimeMillis();
    +
    +		ImageIO.write(image, "png", new File("imageexport.png"));
    +		long t3 = System.currentTimeMillis();
    +
    +		// For PDF export using iText from http://www.lowagie.com/iText/
    +		Document document = new Document(new Rectangle((float) w, (float) h));
    +		PdfWriter writer = PdfWriter.getInstance(document,
    +				new FileOutputStream("example.pdf"));
    +		document.open();
    +		gc2 = new mxGraphicsCanvas2D(writer.getDirectContent().createGraphics(w, h));
    +		gc2.setAutoAntiAlias(true);
    +		parseXmlSax(xml, gc2);
    +
    +		gc2.getGraphics().dispose();
    +		document.close();
    +
    +		System.out.println("Create img: " + (t1 - t0) + " ms, Parse XML: "
    +				+ (t2 - t1) + " ms, Write File: " + (t3 - t2));
    +	}
    +
    +	/**
    +	 * Creates and returns the image for the given request.
    +	 * 
    +	 * @param request
    +	 * @return
    +	 * @throws SAXException
    +	 * @throws ParserConfigurationException
    +	 * @throws IOException
    +	 */
    +	protected void parseXmlDom(String xml, mxICanvas2D canvas)
    +	{
    +		new mxDomOutputParser(canvas).read(mxXmlUtils.parseXml(xml)
    +				.getDocumentElement().getFirstChild());
    +	}
    +
    +	/**
    +	 * Creates and returns the image for the given request.
    +	 * 
    +	 * @param request
    +	 * @return
    +	 * @throws SAXException
    +	 * @throws ParserConfigurationException
    +	 * @throws IOException
    +	 */
    +	protected void parseXmlSax(String xml, mxICanvas2D canvas)
    +			throws SAXException, ParserConfigurationException, IOException
    +	{
    +		// Creates SAX handler for drawing to graphics handle
    +		mxSaxOutputHandler handler = new mxSaxOutputHandler(canvas);
    +
    +		// Creates SAX parser for handler
    +		XMLReader reader = SAXParserFactory.newInstance().newSAXParser()
    +				.getXMLReader();
    +		reader.setContentHandler(handler);
    +
    +		// Renders XML data into image
    +		reader.parse(new InputSource(new StringReader(xml)));
    +	}
    +
    +	/**
    +	 * The main method of the template test suite.
    +	 * 
    +	 * @param args
    +	 *            The array of runtime arguments.
    +	 */
    +	public static void main(String[] args)
    +	{
    +		TestRunner.run(new TestSuite(mxImageExportTest.class));
    +	}
    +
    +}
    diff --git a/java/test/com/mxgraph/test/mxModelTest.java b/java/test/com/mxgraph/test/mxModelTest.java
    new file mode 100644
    index 000000000..f91fb3f50
    --- /dev/null
    +++ b/java/test/com/mxgraph/test/mxModelTest.java
    @@ -0,0 +1,69 @@
    +/**
    + * $Id: mxModelTest.java,v 1.2 2008-03-06 10:14:30 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +package com.mxgraph.test;
    +
    +import junit.framework.TestCase;
    +import junit.framework.TestSuite;
    +import junit.textui.TestRunner;
    +
    +import com.mxgraph.model.mxIGraphModel;
    +import com.mxgraph.view.mxGraph;
    +
    +public class mxModelTest extends TestCase
    +{
    +
    +	/**
    +	 * Constructs a new test case for the specified name.
    +	 * 
    +	 * @param name
    +	 *            The name of the test case to be constructed.
    +	 */
    +	public mxModelTest(String name)
    +	{
    +		super(name);
    +	}
    +
    +	/**
    +	 *
    +	 */
    +	public void test1() throws Exception
    +	{
    +
    +		// Creates graph with model
    +		mxGraph graph = new mxGraph();
    +		Object parent = graph.getDefaultParent();
    +		Object v1, v2, e1;
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80, 30);
    +			v2 = graph.insertVertex(parent, null, "World!", 200, 150, 80, 30);
    +			e1 = graph.insertEdge(parent, null, "e1", v1, v2);
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +
    +		mxIGraphModel model = graph.getModel();
    +		assertEquals(model.getTerminal(e1, true), v1);
    +		assertEquals(model.getTerminal(e1, false), v2);
    +		assertEquals(model.getParent(v1), model.getParent(v2));
    +		assertEquals(model.getChildCount(parent), 3);
    +	}
    +
    +	/**
    +	 * The main method of the template test suite.
    +	 * 
    +	 * @param args
    +	 *            The array of runtime arguments.
    +	 */
    +	public static void main(String[] args)
    +	{
    +		TestRunner.runAndWait(new TestSuite(mxModelTest.class));
    +	}
    +
    +}
    diff --git a/javascript/examples/codec.html b/javascript/examples/codec.html
    new file mode 100644
    index 000000000..de075b561
    --- /dev/null
    +++ b/javascript/examples/codec.html
    @@ -0,0 +1,97 @@
    +<!--
    +  $Id: codec.html,v 1.22 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Codec example for mxGraph. This example demonstrates dynamically
    +  creating a graph from XML and encoding the model into XML, as well
    +  as changing the default style for edges in-place.
    +-->
    +<html>
    +<head>
    +	<title>Codec example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (mxClient.isBrowserSupported())
    +			{
    +				// This code can replace multiple textareas with encoded graphs
    +				var textareas = document.getElementsByTagName('textarea');
    +				var count = textareas.length;
    +				
    +				for (var i = 0; i < count; i++)
    +				{
    +					try
    +					{
    +						var container = document.createElement('div');
    +						container.style.cssText = textareas[i].style.cssText;
    +						container.style.position = 'relative';
    +						container.style.overflow = 'hidden';
    +						
    +						// Creates a read-only graph in the new container
    +						var graph = new mxGraph(container);
    +						graph.setEnabled(false);
    +						
    +						// Changes the default style for edges "in-place"
    +						var style = graph.getStylesheet().getDefaultEdgeStyle();
    +						style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +
    +						// Reads the XML into the graph
    +						var xml = textareas[i].value;
    +						var xmlDocument = mxUtils.parseXml(xml);
    +						var decoder = new mxCodec(xmlDocument);
    +						var node = xmlDocument.documentElement;
    +						decoder.decode(node, graph.getModel());
    +						
    +						// Fit the container to the graph size
    +						var bounds = graph.getGraphBounds();
    +						container.style.width = (bounds.x + bounds.width + 1) + 'px';
    +						container.style.height = (bounds.y + bounds.height + 1) + 'px';
    +						document.body.insertBefore(container, textareas[i]);
    +
    +						var button = mxUtils.button('View XML', function()
    +						{
    +							var encoder = new mxCodec();
    +							var node = encoder.encode(graph.getModel());
    +							mxUtils.popup(mxUtils.getPrettyXml(node), true);
    +						});
    +						
    +						document.body.insertBefore(button, container.nextSibling);
    +						
    +						// Hides the textarea
    +						textareas[i].style.visibility = 'hidden';
    +					}
    +					catch (err)
    +					{
    +						// ignore
    +						throw err;
    +					}
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Calls the main function after the page has loaded. Container is dynamically created. -->
    +<body onload="main();">
    +
    +	<!-- Contains a graph description which will be converted. -->
    +	<textarea style="background:#EEEEEE;">&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id="0"/&gt;&lt;mxCell id="1" parent="0"/&gt;&lt;mxCell id="2" vertex="-1" parent="1" value="Interval 1"&gt;&lt;mxGeometry x="380" y="20" width="140" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="3" vertex="-1" parent="1" value="Interval 2"&gt;&lt;mxGeometry x="200" y="80" width="380" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="4" vertex="-1" parent="1" value="Interval 3"&gt;&lt;mxGeometry x="40" y="140" width="260" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="5" vertex="-1" parent="1" value="Interval 4"&gt;&lt;mxGeometry x="120" y="200" width="240" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="6" vertex="-1" parent="1" value="Interval 5"&gt;&lt;mxGeometry x="420" y="260" width="80" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="7" edge="1" source="2" target="3" parent="1" value="Transfer1"&gt;&lt;mxGeometry as="geometry"&gt;&lt;Array as="points"&gt;&lt;Object x="420" y="60"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id="8" edge="1" source="2" target="6" parent="1" value="Transfer2"&gt;&lt;mxGeometry as="geometry" relative="1" y="-30"&gt;&lt;Array as="points"&gt;&lt;Object x="600" y="60"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id="9" edge="1" source="3" target="4" parent="1" value="Transfer3"&gt;&lt;mxGeometry as="geometry"&gt;&lt;Array as="points"&gt;&lt;Object x="260" y="120"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id="10" edge="1" source="4" target="5" parent="1" value="Transfer4"&gt;&lt;mxGeometry as="geometry"&gt;&lt;Array as="points"&gt;&lt;Object x="200" y="180"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id="11" edge="1" source="4" target="6" parent="1" value="Transfer5"&gt;&lt;mxGeometry as="geometry" relative="1" y="-10"&gt;&lt;Array as="points"&gt;&lt;Object x="460" y="155"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;</textarea>
    +	<textarea style="background:#EEEEEE;">&lt;mxGraphModel&gt;&lt;root&gt;&lt;mxCell id="0"/&gt;&lt;mxCell id="1" parent="0"/&gt;&lt;mxCell id="2" vertex="-1" parent="1" value="Interval 1"&gt;&lt;mxGeometry x="380" y="20" width="140" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="3" vertex="-1" parent="1" value="Interval 2"&gt;&lt;mxGeometry x="200" y="80" width="380" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="4" vertex="-1" parent="1" value="Interval 3"&gt;&lt;mxGeometry x="40" y="140" width="260" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="5" vertex="-1" parent="1" value="Interval 4"&gt;&lt;mxGeometry x="120" y="200" width="240" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="6" vertex="-1" parent="1" value="Interval 5"&gt;&lt;mxGeometry x="420" y="260" width="80" height="30" as="geometry"/&gt;&lt;/mxCell&gt;&lt;mxCell id="7" edge="1" source="2" target="3" parent="1" value="Transfer1"&gt;&lt;mxGeometry as="geometry"&gt;&lt;Array as="points"&gt;&lt;Object x="420" y="60"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id="8" edge="1" source="2" target="6" parent="1" value="Transfer2"&gt;&lt;mxGeometry as="geometry" relative="1" y="-30"&gt;&lt;Array as="points"&gt;&lt;Object x="600" y="60"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id="9" edge="1" source="3" target="4" parent="1" value="Transfer3"&gt;&lt;mxGeometry as="geometry"&gt;&lt;Array as="points"&gt;&lt;Object x="260" y="120"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id="10" edge="1" source="4" target="5" parent="1" value="Transfer4"&gt;&lt;mxGeometry as="geometry"&gt;&lt;Array as="points"&gt;&lt;Object x="200" y="180"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id="11" edge="1" source="4" target="6" parent="1" value="Transfer5"&gt;&lt;mxGeometry as="geometry" relative="1" y="-10"&gt;&lt;Array as="points"&gt;&lt;Object x="460" y="155"/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;</textarea>
    +
    +</body>
    +</html>
    diff --git a/javascript/examples/contexticons.html b/javascript/examples/contexticons.html
    new file mode 100644
    index 000000000..7707490cd
    --- /dev/null
    +++ b/javascript/examples/contexticons.html
    @@ -0,0 +1,214 @@
    +<!--
    +  $Id: contexticons.html,v 1.9 2011-06-02 07:30:21 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Context icons example for mxGraph. This example demonstrates adding
    +  icons to selected vertices to carry out special operations.
    +-->
    +<html>
    +<head>
    +	<title>Context icons example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Defines a subclass for mxVertexHandler that adds a set of clickable
    +		// icons to every selected vertex.
    +		function mxVertexToolHandler(state)
    +		{
    +			mxVertexHandler.apply(this, arguments);
    +		};
    +
    +		mxVertexToolHandler.prototype = new mxVertexHandler();
    +		mxVertexToolHandler.prototype.constructor = mxVertexToolHandler;
    +
    +		mxVertexToolHandler.prototype.domNode = null;
    +
    +		mxVertexToolHandler.prototype.init = function()
    +		{
    +			mxVertexHandler.prototype.init.apply(this, arguments);
    +
    +			// In this example we force the use of DIVs for images in IE. This
    +			// handles transparency in PNG images properly in IE and fixes the
    +			// problem that IE routes all mouse events for a gesture via the
    +			// initial IMG node, which means the target vertices 
    +			this.domNode = document.createElement('div');
    +			this.domNode.style.position = 'absolute';
    +			this.domNode.style.whiteSpace = 'nowrap';
    +			var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +
    +			// Delete
    +			var img = mxUtils.createImage('images/delete2.png');
    +			img.style.cursor = 'pointer';
    +			img.style.width = '16px';
    +			img.style.height = '16px';
    +			mxEvent.addListener(img, md,
    +				mxUtils.bind(this, function(evt)
    +				{
    +					// Disables dragging the image
    +					mxEvent.consume(evt);
    +				})
    +			);
    +			mxEvent.addListener(img, 'click',
    +				mxUtils.bind(this, function(evt)
    +				{
    +					this.graph.removeCells([this.state.cell]);
    +					mxEvent.consume(evt);
    +				})
    +			);
    +			this.domNode.appendChild(img);
    +
    +			// Size
    +			var img = mxUtils.createImage('images/fit_to_size.png');
    +			img.style.cursor = 'se-resize';
    +			img.style.width = '16px';
    +			img.style.height = '16px';
    +			mxEvent.addListener(img, md,
    +				mxUtils.bind(this, function(evt)
    +				{
    +					this.start(mxEvent.getClientX(evt), mxEvent.getClientY(evt), 7);
    +					this.graph.isMouseDown = true;
    +					mxEvent.consume(evt);
    +				})
    +			);
    +			this.domNode.appendChild(img);
    +
    +			// Move
    +			var img = mxUtils.createImage('images/plus.png');
    +			img.style.cursor = 'move';
    +			img.style.width = '16px';
    +			img.style.height = '16px';
    +			mxEvent.addListener(img, md,
    +				mxUtils.bind(this, function(evt)
    +				{
    +					this.graph.graphHandler.start(this.state.cell,
    +						mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +					this.graph.graphHandler.cellWasClicked = true;
    +					this.graph.isMouseDown = true;
    +					mxEvent.consume(evt);
    +				})
    +			);
    +			this.domNode.appendChild(img);
    +
    +			// Connect
    +			var img = mxUtils.createImage('images/check.png');
    +			img.style.cursor = 'pointer';
    +			img.style.width = '16px';
    +			img.style.height = '16px';
    +			mxEvent.addListener(img, md,
    +				mxUtils.bind(this, function(evt)
    +				{
    +					var pt = mxUtils.convertPoint(this.graph.container,
    +							mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +					this.graph.connectionHandler.start(this.state, pt.x, pt.y);
    +					this.graph.isMouseDown = true;
    +					mxEvent.consume(evt);
    +				})
    +			);
    +			this.domNode.appendChild(img);
    +			
    +			this.graph.container.appendChild(this.domNode);
    +			this.redrawTools();
    +		};
    +
    +		mxVertexToolHandler.prototype.redraw = function()
    +		{
    +			mxVertexHandler.prototype.redraw.apply(this);
    +			this.redrawTools();
    +		};
    +
    +		mxVertexToolHandler.prototype.redrawTools = function()
    +		{
    +			if (this.state != null && this.domNode != null)
    +			{
    +				var dy = (mxClient.IS_VML && document.compatMode == 'CSS1Compat') ? 20 : 4;
    +				this.domNode.style.left = (this.state.x + this.state.width - 56) + 'px';
    +				this.domNode.style.top = (this.state.y + this.state.height + dy) + 'px';
    +			}
    +		};
    +		
    +		mxVertexToolHandler.prototype.destroy = function(sender, me)
    +		{
    +			mxVertexHandler.prototype.destroy.apply(this, arguments);
    +
    +			if (this.domNode != null)
    +			{
    +				this.domNode.parentNode.removeChild(this.domNode);
    +				this.domNode = null;
    +			}
    +		};
    +		
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setConnectable(true);
    +				graph.connectionHandler.createTarget = true;
    +
    +				graph.createHandler = function(state)
    +				{
    +					if (state != null &&
    +						this.model.isVertex(state.cell))
    +					{
    +						return new mxVertexToolHandler(state);
    +					}
    +
    +					return mxGraph.prototype.createHandler.apply(this, arguments);
    +				};
    +
    +				// Uncomment the following if you want the container
    +				// to fit the size of the graph
    +				//graph.setResizeContainer(true);
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/control.html b/javascript/examples/control.html
    new file mode 100644
    index 000000000..32f739ea4
    --- /dev/null
    +++ b/javascript/examples/control.html
    @@ -0,0 +1,181 @@
    +<!--
    +  $Id: control.html,v 1.2 2011-09-06 12:45:05 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Control example for mxGraph. This example demonstrates adding
    +  controls to specific cells in a graph.
    +-->
    +<html>
    +<head>
    +	<title>Control example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setPanning(true);
    +				
    +				// Specifies the URL and size of the new control
    +				var deleteImage = new mxImage('editors/images/overlays/forbidden.png', 16, 16);
    +
    +				// Overridden to add an additional control to the state at creation time
    +				mxCellRendererCreateControl = mxCellRenderer.prototype.createControl;
    +				mxCellRenderer.prototype.createControl = function(state)
    +				{
    +					mxCellRendererCreateControl.apply(this, arguments);
    +					
    +					var graph = state.view.graph;
    +					
    +					if (graph.getModel().isVertex(state.cell))
    +					{
    +						if (state.deleteControl == null)
    +						{
    +							var b = new mxRectangle(0, 0, deleteImage.width, deleteImage.height);
    +							state.deleteControl = new mxImageShape(b, deleteImage.src);
    +							state.deleteControl.dialect = graph.dialect;
    +							state.deleteControl.preserveImageAspect = false;
    +							
    +							this.initControl(state, state.deleteControl, false, function (evt)
    +							{
    +								if (graph.isEnabled())
    +								{
    +									graph.removeCells([state.cell]);
    +									mxEvent.consume(evt);
    +								}
    +							});
    +						}
    +					}
    +					else if (state.deleteControl != null)
    +					{
    +						state.deleteControl.destroy();
    +						state.deleteControl = null;
    +					}
    +				};
    +				
    +				// Helper function to compute the bounds of the control
    +				var getDeleteControlBounds = function(state)
    +				{
    +					if (state.deleteControl != null)
    +					{
    +						var oldScale = state.deleteControl.scale;
    +						var w = state.deleteControl.bounds.width / oldScale;
    +						var h = state.deleteControl.bounds.height / oldScale;
    +						var s = state.view.scale;			
    +
    +						return (state.view.graph.getModel().isEdge(state.cell)) ? 
    +							new mxRectangle(state.x + state.width / 2 - w / 2 * s,
    +								state.y + state.height / 2 - h / 2 * s, w * s, h * s)
    +							: new mxRectangle(state.x + state.width - w * s,
    +								state.y, w * s, h * s);
    +					}
    +					
    +					return null;
    +				};
    +				
    +				// Overridden to update the scale and bounds of the control
    +				mxCellRendererRedrawControl = mxCellRenderer.prototype.redrawControl;
    +				mxCellRenderer.prototype.redrawControl = function(state)
    +				{
    +					mxCellRendererRedrawControl.apply(this, arguments);
    +					
    +					if (state.deleteControl != null)
    +					{
    +						var bounds = getDeleteControlBounds(state);
    +						var s = state.view.scale;
    +						
    +						if (state.deleteControl.scale != s || !state.deleteControl.bounds.equals(bounds))
    +						{
    +							state.deleteControl.bounds = bounds;
    +							state.deleteControl.scale = s;
    +							state.deleteControl.redraw();
    +						}
    +					}
    +				};
    +				
    +				// Overridden to remove the control if the state is destroyed
    +				mxCellRendererDestroy = mxCellRenderer.prototype.destroy;
    +				mxCellRenderer.prototype.destroy = function(state)
    +				{
    +					mxCellRendererDestroy.apply(this, arguments);
    +
    +					if (state.deleteControl != null)
    +					{
    +						state.deleteControl.destroy();
    +						state.deleteControl = null;
    +					}
    +				};
    +
    +				// Uncomment the following if you want the container
    +				// to fit the size of the graph
    +				//graph.setResizeContainer(true);
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +				
    +				graph.centerZoom = false;
    +				
    +				document.body.appendChild(mxUtils.button('Zoom In', function()
    +				{
    +					graph.zoomIn();
    +				}));
    +				
    +				document.body.appendChild(mxUtils.button('Zoom Out', function()
    +				{
    +					graph.zoomOut();
    +				}));
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:621px;height:441px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/dbeditor.html b/javascript/examples/dbeditor.html
    new file mode 100644
    index 000000000..7964ce1c3
    --- /dev/null
    +++ b/javascript/examples/dbeditor.html
    @@ -0,0 +1,1031 @@
    +<!--
    +  $Id: dbeditor.html,v 1.25 2012-01-09 06:35:02 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  dbEditor example for mxGraph. Uses Google Gears database for database
    +  content editor. The database contains Persons, Locations and connections
    +  between persons and locations. The database is updated as the diagram
    +  is being changed using the callbacks provided by the model.
    +-->
    +<html>
    +<head>
    +	<title>dbEditor Example</title>
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +	<script type="text/javascript" src="http://code.google.com/apis/gears/gears_init.js"></script>
    +	<script type="text/javascript">
    +	
    +		// Program starts here. The document.onLoad executes the
    +		// mxApplication constructor with a given configuration.
    +		// In the config file, the mxEditor.onInit method is
    +		// overridden to invoke this global function as the
    +		// last step in the editor constructor.
    +		function main(graphContainer, toolbarContainer, sidebarContainer)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Checks if Google Gears is installed and redirects
    +				if (!window.google || !google.gears)
    +				{
    +					location.href = 'http://gears.google.com/?action=install';
    +				}
    +				else
    +				{
    +					// Creates a wrapper editor with a graph inside the given container
    +					var editor = new mxEditor();
    +					editor.setGraphContainer(graphContainer);
    +					
    +					var graph = editor.graph;
    +					var model = graph.model;
    +					var parent = graph.getDefaultParent();
    +					
    +					// Allows new connections to be created
    +					graph.setConnectable(true);
    +					
    +					// Uses a different perimeter style
    +					var style = graph.getStylesheet().getDefaultVertexStyle();
    +					style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +					style[mxConstants.STYLE_SPACING] = 8;
    +					
    +					createSidebar(sidebarContainer, editor);
    +					createToolbar(toolbarContainer, editor);
    +	
    +					// Returns a label for the cell
    +					graph.getLabel = function(cell)
    +					{
    +						if (cell.value != null)
    +						{
    +							if (cell.value instanceof Person)
    +							{
    +								return cell.value.lastName + ', '+ cell.value.firstName;
    +							}
    +							else if (cell.value instanceof Location)
    +							{
    +								return cell.value.building + ' ' + cell.value.office;
    +							}
    +							else if (cell.value instanceof LocatedAt)
    +							{
    +								return cell.value.remark;
    +							}
    +						}
    +						
    +						return mxGraph.prototype.getLabel.apply(this, arguments); // "supercall"
    +					};
    +	
    +					// Returns the type as the tooltip for column cells
    +					graph.getTooltip = function(cell)
    +					{
    +						return cell.getId();
    +					};
    +					
    +					// Disallows drag and drop into edges
    +					graph.isSplitDropTarget = function()
    +					{
    +						return false;
    +					};
    +					
    +					// Only allow connections from person to location
    +					graph.getEdgeValidationError = function(edge, source, target)
    +					{
    +						if (source != null && source.value instanceof Person &&
    +							target != null && target.value instanceof Location)
    +						{
    +							// Allows connections from person to location
    +							return null;
    +						}
    +						else if (source == target || target == null)
    +						{
    +							// Loops and connections to nothing are not allowed
    +							// but no error message is displayed in these cases
    +							// for easier double clicks
    +							return '';
    +						}
    +						
    +						return 'Can only connect person to location';
    +					}
    +					
    +					// Shows property window for cell editing
    +					graph.startEditingAtCell = function(cell)
    +					{
    +						showProperties(this, cell);
    +					}
    +					
    +					// Creates user object for new edges
    +					graph.connectionHandler.factoryMethod = function(source, target)
    +					{
    +						if (source.value instanceof Person &&
    +							target.value instanceof Location)
    +						{
    +							var locatedAt = new LocatedAt();
    +							locatedAt.remark = 'works in';
    +						
    +							edge = new mxCell(locatedAt);
    +							edge.setEdge(true);
    +							
    +							return edge;
    +						}
    +					}
    +					
    +					// Create a model for the database
    +					model.db = google.gears.factory.create('beta.database', '1.0');
    +					
    +					var dbname = 'test'; //mxUtils.prompt('Please enter database name', 'test');
    +					
    +					// Shows the database name in the window
    +					var div = document.createElement('div');
    +	
    +					div.style.position = 'absolute';
    +					
    +					div.style.top = 0;
    +					div.style.right = 0;
    +					div.style.padding = 4;
    +					
    +					mxUtils.write(div, 'DB: '+dbname);
    +					
    +					document.body.appendChild(div);
    +					
    +					model.db.open(dbname);
    +					model.transactionInProgress = false;
    +					
    +					// Global function to execute SQL
    +					model.exec = function(sql, args)
    +					{
    +						mxLog.show();
    +	
    +						if (!this.transactionInProgress)
    +						{
    +							this.transactionInProgress = true;
    +							this.db.execute('BEGIN TRANSACTION');
    +							mxLog.debug('BEGIN TRANSACTION');
    +						}
    +	
    +						mxLog.debug(sql);
    +					
    +						return this.db.execute(sql, args);
    +					}
    +					
    +					// FIXME: Cannot override mxEventSource.fireEvent
    +					model.addListener(mxEvent.CHANGE, function()
    +					{
    +						if (model.transactionInProgress)
    +						{
    +							model.db.execute('COMMIT TRANSACTION');
    +							mxLog.debug('COMMIT TRANSACTION');
    +							this.transactionInProgress = false;
    +						}
    +					});
    +	
    +					// Create the tables
    +					model.db.execute('CREATE TABLE IF NOT EXISTS PERSON (PERSON_ID INTEGER PRIMARY KEY AUTOINCREMENT, FIRST_NAME TEXT, LAST_NAME TEXT)');
    +					model.db.execute('CREATE TABLE IF NOT EXISTS LOCATION (LOCATION_ID INTEGER PRIMARY KEY AUTOINCREMENT, OFFICE TEXT, BUILDING TEXT)');
    +					model.db.execute('CREATE TABLE IF NOT EXISTS LOCATED_AT (LOCATED_AT_ID INTEGER PRIMARY KEY AUTOINCREMENT, PERSON_ID INTEGER, LOCATION_ID INTEGER, REMARK TEXT)');
    +	
    +					// Returns some specific style based on user object
    +					model.getStyle = function(cell)
    +					{
    +						if (cell.value != null)
    +						{
    +							if (cell.value instanceof Person)
    +							{
    +								return 'shape=label;image=editors/images/overlays/user3.png;imageWidth=16;imageHeight=16;spacing=6;spacingLeft=16;fillColor=white;shadow=1';
    +							}
    +							else if (cell.value instanceof Location)
    +							{
    +								return 'shape=label;image=editors/images/overlays/house.png;imageWidth=16;imageHeight=16;spacing=6;spacingLeft=16;fillColor=white;shadow=1;rounded=1';
    +							}
    +							else if (cell.value instanceof LocatedAt)
    +							{
    +								return 'strokeColor=black;strokeWidth=1';
    +							}
    +						}
    +						
    +						return mxGraphModel.prototype.getStyle.apply(this, arguments); // "supercall"
    +					}
    +	
    +					model.cellAdded = function(cell)
    +					{
    +						try
    +						{
    +							if (cell.value != null &&
    +								cell.value.id == null)
    +							{
    +								if (cell.value instanceof Person)
    +								{
    +									this.exec('INSERT INTO PERSON (FIRST_NAME, LAST_NAME) VALUES (?, ?)',
    +										[cell.value.firstName, cell.value.lastName]);
    +									var sequence = getSequence(editor.graph.model.db, 'PERSON');
    +									cell.value.id = sequence;
    +									cell.setId('PERSON_'+sequence);
    +								}
    +								else if (cell.value instanceof Location)
    +								{
    +									this.exec('INSERT INTO LOCATION (OFFICE, BUILDING) VALUES (?, ?)',
    +										[cell.value.office, cell.value.building]);
    +									var sequence = getSequence(editor.graph.model.db, 'LOCATION');
    +									cell.value.id = sequence;
    +									cell.setId('LOCATION_'+sequence);
    +								}
    +								else if (cell.value instanceof LocatedAt)
    +								{
    +									this.exec('INSERT INTO LOCATED_AT (REMARK) VALUES (?)',
    +										[cell.value.remark]);
    +									var sequence = getSequence(editor.graph.model.db, 'LOCATED_AT');
    +									cell.value.id = sequence;
    +									cell.setId('LOCATEDAT_'+sequence);
    +								}
    +							}
    +						}
    +						catch (e)
    +						{
    +							mxUtils.alert(e.message);
    +						}
    +						
    +						mxGraphModel.prototype.cellAdded.apply(this, arguments); // "supercall"
    +					}
    +		
    +					model.cellRemoved = function(cell)
    +					{
    +						try
    +						{
    +							if (cell.value != null && cell.value.id != null)
    +							{
    +								if (cell.value instanceof Person)
    +								{
    +									this.exec('DELETE FROM PERSON WHERE PERSON_ID = ?', [cell.value.id]);
    +									cell.value.id = null;
    +								}
    +								else if (cell.value instanceof Location)
    +								{
    +									this.exec('DELETE FROM LOCATION WHERE LOCATION_ID = ?', [cell.value.id]);
    +									cell.value.id = null;
    +								}
    +								else if (cell.value instanceof LocatedAt)
    +								{
    +									this.exec('DELETE FROM LOCATED_AT WHERE LOCATED_AT_ID = ?', [cell.value.id]);
    +									cell.value.id = null;
    +								}
    +							}
    +						}
    +						catch (e)
    +						{
    +							mxUtils.alert(e.message);
    +						}
    +						
    +						mxGraphModel.prototype.cellRemoved.apply(this, arguments); // "supercall"					
    +					}
    +									
    +					model.valueForCellChanged = function(cell, value)
    +					{
    +						try
    +						{
    +							if (value != null &&
    +								value.id != null)
    +							{
    +								if (value instanceof Person)
    +								{
    +									this.exec('UPDATE PERSON SET FIRST_NAME=?, LAST_NAME=? WHERE PERSON_ID=?',
    +										[value.firstName, value.lastName, value.id]);
    +								}
    +								else if (value instanceof Location)
    +								{
    +									this.exec('UPDATE LOCATION SET OFFICE=?, BUILDING=? WHERE LOCATION_ID=?',
    +										[value.office, value.building, value.id]);
    +								}
    +								else if (value instanceof LocatedAt)
    +								{
    +									this.exec('UPDATE LOCATED_AT SET REMARK=? WHERE LOCATED_AT_ID=?',
    +										[value.remark, value.id]);
    +								}
    +							}
    +						}
    +						catch (e)
    +						{
    +							mxUtils.alert(e.message);
    +						}
    +	
    +						return mxGraphModel.prototype.valueForCellChanged.apply(this, arguments); // "supercall"						
    +					}
    +		
    +					model.terminalForCellChanged = function(edge, terminal, isSource)
    +					{
    +						try
    +						{
    +							if (edge.value != null && edge.value instanceof LocatedAt)
    +							{
    +								if (isSource && terminal != null &&
    +									terminal.value instanceof Person &&
    +									edge.value.person != terminal.value)
    +								{
    +									this.exec('UPDATE LOCATED_AT SET PERSON_ID=? WHERE LOCATED_AT_ID=?',
    +										[terminal.value.id, edge.value.id]);
    +									edge.value.person = terminal.value;
    +								}
    +								else if (isSource && terminal == null)
    +								{
    +									this.exec('UPDATE LOCATED_AT SET PERSON_ID=NULL WHERE LOCATED_AT_ID=?',
    +										[edge.value.id]);
    +									edge.value.person = null;
    +								}
    +								else if (!isSource && terminal != null &&
    +									terminal.value instanceof Location &&
    +									edge.value.location != terminal.value)
    +								{
    +									this.exec('UPDATE LOCATED_AT SET LOCATION_ID=? WHERE LOCATED_AT_ID=?',
    +										[terminal.value.id, edge.value.id]);
    +									edge.value.location = terminal.value;
    +								}
    +								else if (!isSource && terminal == null)
    +								{
    +									this.exec('UPDATE LOCATED_AT SET LOCATION_ID=NULL WHERE LOCATED_AT_ID=?',
    +										[edge.value.id]);
    +									edge.value.location = null;
    +								}
    +							}
    +						}
    +						catch (e)
    +						{
    +							mxUtils.alert(e.message);
    +						}
    +							
    +						return mxGraphModel.prototype.terminalForCellChanged.apply(this, arguments); // "supercall"
    +					}
    +				}
    +			}
    +		};
    +		
    +		// Creates the sidebar
    +		function createSidebar(container, editor)
    +		{
    +			mxUtils.writeln(container, 'Search:');
    +		
    +			var input = document.createElement('input');
    +			input.setAttribute('type', 'text');
    +			input.setAttribute('size', '16');
    +			
    +			container.appendChild(input);
    +			
    +			mxUtils.br(container);
    +			
    +			var button = document.createElement('button');
    +			mxUtils.write(button, 'Search');
    +
    +			container.appendChild(button);
    +			
    +			mxUtils.br(container);
    +			mxUtils.br(container);
    +			
    +			mxUtils.writeln(container, 'Results:');
    +			
    +			var div = document.createElement('div');
    +			div.style.cssText = 'border-style:none;border-width:1px;border-color:black;'+
    +				'width:120px;max-height:260px;padding:2px;overflow:auto;'+
    +				'font-size:10pt;font-family:Arial,Helvetica;';
    +
    +			container.appendChild(div);
    +			
    +			mxUtils.write(div, 'No results');
    +			
    +			var onClick = function()
    +			{
    +				removeChildren(div);
    +				
    +				var results = false;
    +				
    +				var rs = editor.graph.model.db.execute('SELECT * FROM PERSON WHERE '+
    +					'FIRST_NAME || " " || LAST_NAME LIKE ? '+
    +					'OR LAST_NAME || ", " || FIRST_NAME LIKE ? '+
    +					'ORDER BY LAST_NAME || ", " || FIRST_NAME',
    +					['%'+input.value+'%', '%'+input.value+'%']);
    +				
    +				results = rs.isValidRow();
    +				
    +				while (rs.isValidRow())
    +				{
    +					var id = rs.fieldByName('PERSON_ID');
    +					var lastName = rs.fieldByName('LAST_NAME');
    +					var firstName = rs.fieldByName('FIRST_NAME');
    +					
    +					// Note: When using a DIV the DnD does only work in FF if
    +					// it is started from over the area which contains the text
    +					var result = document.createElement('span');
    +					result.style.cssText = 'cursor:default;white-space:nowrap;font-size:10pt;font-family:Arial,Helvetica;';
    +						
    +					var img = document.createElement('img');
    +					img.setAttribute('src', 'editors/images/overlays/user3.png');
    +					img.style.marginTop = 8;
    +					img.style.marginRight = 4;
    +					result.appendChild(img);
    +					
    +					mxUtils.writeln(result, lastName+', '+firstName);
    +
    +					div.appendChild(result);
    +					
    +					var funct = createPersonInsertFunction(editor, id, lastName, firstName);				
    +					mxUtils.makeDraggable(result, editor.graph, funct);
    +					
    +					rs.next();
    +				}
    +				
    +				rs.close();
    +				
    +				rs = editor.graph.model.db.execute('SELECT * FROM LOCATION WHERE '+
    +					'BUILDING || " " || OFFICE LIKE ? '+
    +					'ORDER BY BUILDING || " " || OFFICE',
    +					['%'+input.value+'%']);
    +				
    +				results = results || rs.isValidRow();
    +				
    +				while (rs.isValidRow())
    +				{
    +					var id = rs.fieldByName('LOCATION_ID');
    +					var building = rs.fieldByName('BUILDING');
    +					var office = rs.fieldByName('OFFICE');
    +										
    +					// Note: When using a DIV the DnD does only work in FF if
    +					// it is started from over the area which contains the text
    +					var result = document.createElement('span');
    +					result.style.cssText = 'cursor:default;white-space:nowrap;font-size:10pt;font-family:Arial,Helvetica;';
    +					
    +					var img = document.createElement('img');
    +					img.setAttribute('src', 'editors/images/overlays/house.png');
    +					img.style.marginTop = 8;
    +					img.style.marginRight = 4;
    +					result.appendChild(img);
    +						
    +					mxUtils.writeln(result, building+' '+office);
    +
    +					div.appendChild(result);
    +					
    +					var funct = createLocationInsertFunction(editor, id, office, building);				
    +					mxUtils.makeDraggable(result, editor.graph, funct);
    +					
    +					rs.next();
    +				}
    +				
    +				rs.close();
    +				
    +				if (!results)
    +				{
    +					mxUtils.write(div, 'No results');
    +				}
    +			}
    +			
    +			mxEvent.addListener(button, 'click', onClick);
    +			
    +			// Executes onClick if return is pressed
    +			mxEvent.addListener(input, 'keydown', function(evt)
    +			{
    +				if (evt.keyCode == 13)
    +				{
    +					onClick();
    +				}
    +			});
    +		};
    +		
    +		function createPersonInsertFunction(editor, id, lastName, firstName)
    +		{
    +			return function(graph, evt)
    +			{
    +				var pt = editor.graph.getPointForEvent(evt);
    +
    +				var cellId = 'PERSON_'+id;
    +				var cell = editor.graph.model.getCell(cellId);
    +				
    +				if (cell == null)
    +				{
    +					var person = new Person(id);
    +					person.firstName = firstName;
    +					person.lastName = lastName;
    +
    +					cell = new mxCell(person, new mxGeometry(0, 0, 0, 0));
    +					cell.setId(cellId);
    +					cell.setConnectable(true);
    +					cell.setVertex(true);
    +					
    +					editor.graph.model.beginUpdate();
    +					try
    +					{
    +						editor.addVertex(null, cell, pt.x, pt.y);
    +						editor.graph.updateCellSize(cell);
    +						
    +						var rs = editor.graph.model.db.execute(
    +							'SELECT * FROM LOCATED_AT WHERE PERSON_ID=?', [id]);
    +
    +						while (rs.isValidRow())
    +						{
    +							var locationId = rs.fieldByName('LOCATION_ID');
    +							var target = editor.graph.model.getCell('LOCATION_'+locationId);
    +							
    +							if (target != null)
    +							{
    +								var locatedAtId = rs.fieldByName('LOCATED_AT_ID');
    +								
    +								if (editor.graph.model.getCell('LOCATEDAT_'+locatedAtId) == null)
    +								{
    +									var locatedAt = new LocatedAt(locatedAtId);
    +									locatedAt.remark = rs.fieldByName('REMARK');
    +									locatedAt.person = cell.value;
    +									locatedAt.location = target.value;
    +									
    +									var edge = new mxCell(locatedAt);
    +									edge.setId('LOCATEDAT_'+locatedAtId);
    +									edge.setEdge(true);
    +									edge.setGeometry(new mxGeometry());
    +									edge.getGeometry().relative = true;
    +									
    +									editor.graph.addEdge(edge, null, cell, target);
    +								}
    +							}
    +							
    +							rs.next();
    +						}
    +						
    +						rs.close();
    +					}
    +					finally
    +					{
    +						editor.graph.model.endUpdate();
    +					}
    +				}
    +				else
    +				{
    +					var geo = editor.graph.model.getGeometry(cell);
    +					
    +					if (geo != null)
    +					{
    +						geo = geo.clone();
    +						
    +						geo.x = pt.x;
    +						geo.y = pt.y;
    +						
    +						editor.graph.model.setGeometry(cell, geo);
    +					}
    +				}
    +				
    +				editor.graph.scrollCellToVisible(cell);
    +				editor.graph.setSelectionCell(cell);
    +				
    +				mxEvent.consume(evt);
    +			}
    +		};
    +		
    +		function createLocationInsertFunction(editor, id, office, building)
    +		{
    +			return function(graph, evt)
    +			{
    +				var pt = editor.graph.getPointForEvent(evt);
    +
    +				var cellId = 'LOCATION_'+id;
    +				var cell = editor.graph.model.getCell(cellId);
    +				
    +				if (cell == null)
    +				{
    +					var location = new Location(id);
    +					location.office = office;
    +					location.building = building;
    +
    +					cell = new mxCell(location, new mxGeometry(0, 0, 0, 0));
    +					cell.setId(cellId);
    +					cell.setConnectable(true);
    +					cell.setVertex(true);
    +					
    +					editor.graph.model.beginUpdate();
    +					try
    +					{
    +						editor.addVertex(null, cell, pt.x, pt.y);
    +						editor.graph.updateCellSize(cell);
    +						
    +						var rs = editor.graph.model.db.execute(
    +							'SELECT * FROM LOCATED_AT WHERE LOCATION_ID=?', [id]);
    +
    +						while (rs.isValidRow())
    +						{
    +							var personId = rs.fieldByName('PERSON_ID');
    +							var source = editor.graph.model.getCell('PERSON_'+personId);
    +							
    +							if (source != null)
    +							{
    +								var locatedAtId = rs.fieldByName('LOCATED_AT_ID');
    +								
    +								if (editor.graph.model.getCell('LOCATEDAT_'+locatedAtId) == null)
    +								{
    +									var locatedAt = new LocatedAt(locatedAtId);
    +									locatedAt.remark = rs.fieldByName('REMARK');
    +									locatedAt.person = source.value;
    +									locatedAt.location = cell.value;
    +									
    +									var edge = new mxCell(locatedAt);
    +									edge.setId('LOCATEDAT_'+locatedAtId);
    +									edge.setEdge(true);
    +									edge.setGeometry(new mxGeometry());
    +									edge.getGeometry().relative = true;
    +																		
    +									editor.graph.addEdge(edge, null, source, cell);
    +								}
    +							}
    +							
    +							rs.next();
    +						}
    +						
    +						rs.close();
    +					}
    +					finally
    +					{
    +						editor.graph.model.endUpdate();
    +					}
    +				}
    +				else
    +				{
    +					var geo = editor.graph.model.getGeometry(cell);
    +					
    +					if (geo != null)
    +					{
    +						geo = geo.clone();
    +						
    +						geo.x = pt.x;
    +						geo.y = pt.y;
    +						
    +						editor.graph.model.setGeometry(cell, geo);
    +					}
    +				}
    +				
    +				editor.graph.scrollCellToVisible(cell);
    +				editor.graph.setSelectionCell(cell);
    +				
    +				mxEvent.consume(evt);
    +			}
    +		};
    +		
    +		// Creates the toolbar
    +		function createToolbar(container, editor)
    +		{
    +			var model = editor.graph.model;
    +			var button = null;
    +			
    +			button = document.createElement('button');
    +			mxUtils.write(button, 'Clear');
    +			
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				model.exec('DELETE FROM PERSON');
    +				model.exec('DELETE FROM LOCATION');
    +				model.exec('DELETE FROM LOCATED_AT');
    +				
    +				var root = new mxCell();
    +				root.insert(new mxCell());
    +				
    +				model.setRoot(root);
    +				
    +				editor.resetHistory();
    +				
    +				mxUtils.alert('Database has been cleared');
    +			});
    +			
    +			container.appendChild(button);
    +			
    +			button = document.createElement('button');
    +			mxUtils.write(button, 'Dump');
    +			
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				var s = 'Person table:\n';
    +				s += dump(model.db.execute('SELECT * FROM PERSON'));
    +
    +				s += '\nLocation table:\n';
    +				s += dump(model.db.execute('SELECT * FROM LOCATION'));
    +
    +				s += '\nLocated_at table:\n';
    +				s += dump(model.db.execute('SELECT * FROM LOCATED_AT'));
    +				
    +				mxUtils.popup(s);
    +			});
    +			
    +			container.appendChild(button);			
    +		
    +			button = document.createElement('button');
    +			mxUtils.write(button, 'Create Person');
    +			
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				var person = new Person();
    +				person.firstName = 'First';
    +				person.lastName = 'Name';
    +			
    +				var cell = new mxCell(person, new mxGeometry(0, 0, 0, 0));
    +				cell.setConnectable(true);
    +				cell.setVertex(true);
    +				
    +				model.beginUpdate();
    +				try
    +				{
    +					editor.addVertex(null, cell, 10, 10);
    +					editor.graph.updateCellSize(cell);
    +					
    +					showProperties(editor.graph, cell);
    +				}
    +				finally
    +				{
    +					model.endUpdate();
    +				}
    +				
    +				editor.graph.setSelectionCell(cell);
    +			});
    +			
    +			container.appendChild(button);
    +			
    +			button = document.createElement('button');
    +			mxUtils.write(button, 'Create Location');
    +			
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				var location = new Location();
    +				location.office = 'Office';
    +				location.building = 'Bldg';
    +			
    +				var cell = new mxCell(location, new mxGeometry(0, 0, 0, 0));
    +				cell.setConnectable(true);
    +				cell.setVertex(true);
    +				
    +				model.beginUpdate();
    +				try
    +				{
    +					editor.addVertex(null, cell, 10, 10);
    +					editor.graph.updateCellSize(cell);
    +					
    +					showProperties(editor.graph, cell);
    +				}
    +				finally
    +				{
    +					model.endUpdate();
    +				}
    +				
    +				editor.graph.setSelectionCell(cell);
    +			});
    +			
    +			container.appendChild(button);
    +			
    +			button = document.createElement('button');
    +			mxUtils.write(button, 'Delete');
    +			
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				editor.graph.removeCells();
    +			});
    +			
    +			container.appendChild(button);
    +			
    +			button = document.createElement('button');
    +			mxUtils.write(button, 'Undo');
    +			
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				editor.execute('undo');
    +			});
    +			
    +			container.appendChild(button);
    +			
    +			button = document.createElement('button');
    +			mxUtils.write(button, 'Redo');
    +			
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				editor.execute('redo');
    +			});
    +			
    +			container.appendChild(button);
    +			
    +			button = document.createElement('button');
    +			mxUtils.write(button, 'Arrange');
    +			
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				// Creates a layout algorithm to be used
    +				// with the graph
    +				var layout = new mxFastOrganicLayout(editor.graph);
    +
    +				// Moves stuff wider apart than usual
    +				layout.forceConstant = 120;
    +				
    +				layout.execute(editor.graph.getDefaultParent());
    +			});
    +			
    +			container.appendChild(button);
    +		};
    +		
    +		// Dumps the given table to the console
    +		function dump(rs)
    +		{
    +			var result = [];
    +			var fieldCount = rs.fieldCount();
    +			
    +			while (rs.isValidRow())
    +			{
    +
    +				result.push('{');
    +				
    +				for (var i=0; i<fieldCount; i++)
    +				{
    +					result.push('  '+rs.fieldName(i)+': '+rs.field(i));
    +				}
    +				
    +				result.push('}');
    +								
    +				rs.next();
    +			}
    +			
    +			rs.close();
    +			
    +			return result.join('\n');
    +		};
    +		
    +		// Removes all child nodes from the given container
    +		function removeChildren(container)
    +		{
    +			while (container.firstChild != null)
    +			{
    +				container.removeChild(container.firstChild);
    +			}
    +		};
    +		
    +		// Gets the current sequence number for the given table
    +		function getSequence(db, tablename)
    +		{
    +			var rs = db.execute('SELECT seq FROM sqlite_sequence WHERE name=?', [tablename])
    +			var seq = null;
    +			
    +			if (rs.isValidRow())
    +			{
    +				seq = parseInt(rs.fieldByName('seq'));
    +			}
    +			
    +			rs.close();
    +			
    +			return seq;
    +		};
    +		
    +		function showProperties(graph, cell)
    +		{
    +			// Creates a form for the user object inside
    +			// the cell
    +			var form = new mxForm('properties');
    +
    +			// Adds a field for the columnname
    +			var fields = [];
    +			var firstField = null;
    +			
    +		    for (var i in cell.value)
    +		    {
    +		    	if (i != 'id' &&
    +		    		typeof(cell.value[i]) != 'function' &&
    +		    		typeof(cell.value[i]) != 'object')
    +		    	{
    +		    		fields[i] = form.addText(i, cell.value[i]);
    +		    		
    +		    		if (firstField == null)
    +		    		{
    +		    			firstField = fields[i];
    +		    		}
    +				}
    +		    }
    +
    +			var wnd = null;
    +
    +			// Defines the function to be executed when the
    +			// OK button is pressed in the dialog
    +			var okFunction = function()
    +			{
    +				var clone = cell.value.clone();
    +				
    +				for (var i in fields)
    +			    {
    +			    	clone[i] = fields[i].value;
    +			    }
    +
    +				graph.model.beginUpdate();
    +				try
    +				{
    +					graph.model.setValue(cell, clone);
    +					graph.updateCellSize(cell);
    +				}
    +				finally
    +				{
    +					graph.model.endUpdate();
    +				}
    +			
    +				wnd.destroy();
    +			}
    +			
    +			// Defines the function to be executed when the
    +			// Cancel button is pressed in the dialog
    +			var cancelFunction = function()
    +			{
    +				wnd.destroy();
    +			}
    +
    +			form.addButtons(okFunction, cancelFunction);
    +
    +			wnd = showModalWindow(cell.getId(), form.table, 240, 240);
    +			
    +			firstField.focus();
    +			firstField.select();
    +		};
    +		
    +		function showModalWindow(title, content, width, height)
    +		{
    +			var background = document.createElement('div');
    +			background.style.position = 'absolute';
    +			background.style.left = '0px';
    +			background.style.top = '0px';
    +			background.style.right = '0px';
    +			background.style.bottom = '0px';
    +			background.style.background = 'black';
    +			mxUtils.setOpacity(background, 50);
    +			document.body.appendChild(background);
    +			
    +			if (mxClient.IS_IE)
    +			{
    +				new mxDivResizer(background);
    +			}
    +			
    +			var x = Math.max(0, document.body.scrollWidth/2-width/2);
    +			var y = Math.max(10, (document.body.scrollHeight ||
    +						document.documentElement.scrollHeight)/2-height*2/3);
    +			var wnd = new mxWindow(title, content, x, y, width, height, false, true);
    +			wnd.setClosable(true);
    +			
    +			// Fades the background out after after the window has been closed
    +			wnd.addListener(mxEvent.DESTROY, function(sender, evt)
    +			{
    +				mxEffects.fadeOut(background, 50, true, 
    +					10, 30, true);
    +			});
    +
    +			wnd.setVisible(true);
    +			
    +			return wnd;
    +		};
    +		
    +		// Person
    +		function Person(id)
    +		{
    +			this.id = id;
    +		};
    +
    +		Person.prototype.clone = function()
    +		{
    +			return mxUtils.clone(this);
    +		};
    +		
    +		// Location
    +		function Location(id)
    +		{
    +			this.id = id;
    +		}
    +		
    +		Location.prototype.clone = function()
    +		{
    +			return mxUtils.clone(this);
    +		};
    +		
    +		// LocatedAt
    +		function LocatedAt(id)
    +		{
    +			this.id = id;
    +		};
    +		
    +		LocatedAt.prototype.clone = function()
    +		{
    +			return mxUtils.clone(this, ["person", "terminal"]);
    +		};
    +	</script>
    +</head>
    +<body onload="main(document.getElementById('graph'),
    +				   document.getElementById('toolbar'),
    +				   document.getElementById('sidebar'));">
    +	<table border="0" width="100%" height="100%">
    +		<tr>
    +			<td id="toolbar" valign="top" colspan="2" style="height:10px;">
    +				<!-- Toolbar Here -->
    +			</td>
    +		</tr>
    +		<tr>
    +			<td id="sidebar" style="width:10px;" valign="top">
    +				<!-- Sidebar Here -->
    +			</td>
    +			<td style="border-width:1px;border-style:solid;border-color:black;width:100%;">
    +				<div id="graph" style="width:100%;height:100%;cursor:default;overflow:hidden;">
    +					<!-- Graph Here -->
    +				</div>
    +			</td>
    +		</tr>
    +	</table>
    +</body>
    +</html>
    diff --git a/javascript/examples/dragsource.html b/javascript/examples/dragsource.html
    new file mode 100644
    index 000000000..1a35b073a
    --- /dev/null
    +++ b/javascript/examples/dragsource.html
    @@ -0,0 +1,224 @@
    +<!--
    +  $Id: dragsource.html,v 1.5 2011-07-18 09:16:43 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Dragsource example for mxGraph. This example demonstrates using
    +  one drag source for multiple graphs and changing the drag icon.
    +-->
    +<html>
    +<head>
    +	<title>Dragsource example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main()
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +
    +				// Enables guides
    +				mxGraphHandler.prototype.guidesEnabled = true;
    +				
    +			    // Alt disables guides
    +			    mxGuide.prototype.isEnabledForEvent = function(evt)
    +			    {
    +			    	return !mxEvent.isAltDown(evt);
    +			    };
    +				
    +				// Enables snapping waypoints to terminals
    +				mxEdgeHandler.prototype.snapToTerminals = true;
    +				
    +				var graphs = [];
    +				
    +				// Creates the graph inside the given container
    +				for (var i = 0; i < 2; i++)
    +				{
    +					var container = document.createElement('div');
    +					container.style.overflow = 'hidden';
    +					container.style.width = '321px';
    +					container.style.height = '241px';
    +					container.style.background = 'url(\'editors/images/grid.gif\')';
    +					container.style.cursor = 'default';
    +
    +					document.body.appendChild(container);
    +					
    +					var graph = new mxGraph(container);
    +					graph.gridSize = 30;
    +					
    +					// Uncomment the following if you want the container
    +					// to fit the size of the graph
    +					//graph.setResizeContainer(true);
    +					
    +					// Enables rubberband selection
    +					new mxRubberband(graph);
    +					
    +					// Gets the default parent for inserting new cells. This
    +					// is normally the first child of the root (ie. layer 0).
    +					var parent = graph.getDefaultParent();
    +									
    +					// Adds cells to the model in a single step
    +					graph.getModel().beginUpdate();
    +					try
    +					{
    +						var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +						var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +						var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +					}
    +					finally
    +					{
    +						// Updates the display
    +						graph.getModel().endUpdate();
    +					}
    +					
    +					graphs.push(graph);
    +				}
    +				
    +				// Helper function to check if DOM node is inside graph container.
    +				function containsElt(graph, elt)
    +				{
    +					while (elt != null)
    +					{
    +						if (elt == graph.container)
    +						{
    +							return true;
    +						}
    +						
    +						elt = elt.parentNode;
    +					}
    +					
    +					return false;
    +				};
    +				
    +				// Returns the graph under the mouse
    +				var graphF = function(evt)
    +				{
    +					var x = mxEvent.getClientX(evt);
    +					var y = mxEvent.getClientY(evt);
    +					var elt = document.elementFromPoint(x, y);
    +					
    +					for (var i = 0; i < graphs.length; i++)
    +					{
    +						if (containsElt(graphs[i], elt))
    +						{
    +							return graphs[i];
    +						}
    +					}
    +					
    +					return null;
    +				};
    +				
    +				// Inserts a cell at the given location
    +				var funct = function(graph, evt, target, x, y)
    +				{
    +					var cell = new mxCell('Test', new mxGeometry(0, 0, 120, 40));
    +					cell.vertex = true;
    +					var cells = graph.importCells([cell], x, y, target);
    +
    +					if (cells != null && cells > 0)
    +					{
    +						graph.scrollCellToVisible(cells[0]);
    +						graph.setSelectionCells(cells);
    +					}
    +				};
    +				
    +				// Creates a DOM node that acts as the drag source
    +				var img = mxUtils.createImage('images/icons48/gear.png');
    +				img.style.width = '48px';
    +				img.style.height = '48px';
    +				document.body.appendChild(img);
    +				
    +				// Disables built-in DnD in IE (this is needed for cross-frame DnD, see below)
    +				if (mxClient.IS_IE)
    +				{
    +					mxEvent.addListener(img, 'dragstart', function(evt)
    +					{
    +						evt.returnValue = false;
    +					});
    +				}
    +				
    +				// Creates the element that is being for the actual preview.
    +				var dragElt = document.createElement('div');
    +				dragElt.style.border = 'dashed black 1px';
    +				dragElt.style.width = '120px';
    +				dragElt.style.height = '40px';
    +				
    +				// Drag source is configured to use dragElt for preview and as drag icon
    +				// if scalePreview (last) argument is true. Dx and dy are null to force
    +				// the use of the defaults. Note that dx and dy are only used for the
    +				// drag icon but not for the preview.
    +				var ds = mxUtils.makeDraggable(img, graphF, funct, dragElt, null, null, graph.autoscroll, true);
    +				
    +				// Redirects feature to global switch. Note that this feature should only be used
    +				// if the the x and y arguments are used in funct to insert the cell.
    +				ds.isGuidesEnabled = function()
    +				{
    +					return graph.graphHandler.guidesEnabled;
    +				};
    +				
    +				// Restores original drag icon while outside of graph
    +				ds.createDragElement = mxDragSource.prototype.createDragElement;
    +			}
    +		};
    +		
    +		// NOTE: To enable cross-document DnD (eg. between frames),
    +		// the following methods need to be overridden:
    +		/*mxDragSourceMouseUp = mxDragSource.prototype.mouseUp;
    +		mxDragSource.prototype.mouseUp = function(evt)
    +		{
    +			var doc = this.element.ownerDocument;
    +			
    +			if (doc != document)
    +			{
    +				var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +				
    +				if (this.mouseUpHandler != null)
    +				{
    +					
    +					mxEvent.removeListener(doc, mu, this.mouseUpHandler);
    +				}
    +			}
    +			
    +			mxDragSourceMouseUp.apply(this, arguments);
    +		};*/
    +		
    +		/*mxDragSourceMouseDown = mxDragSource.prototype.mouseDown;
    +		mxDragSource.prototype.mouseDown = function(evt)
    +		{
    +			if (this.enabled && !mxEvent.isConsumed(evt))
    +			{
    +				mxDragSourceMouseDown.apply(this, arguments);
    +				var doc = this.element.ownerDocument;
    +				
    +				if (doc != document)
    +				{
    +					var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +					mxEvent.addListener(doc, mu, this.mouseUpHandler);
    +				}
    +			}
    +		};*/
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main();">
    +</body>
    +</html>
    diff --git a/javascript/examples/dynamicloading.html b/javascript/examples/dynamicloading.html
    new file mode 100644
    index 000000000..5f0091f64
    --- /dev/null
    +++ b/javascript/examples/dynamicloading.html
    @@ -0,0 +1,246 @@
    +<!--
    +  $Id: dynamicloading.html,v 1.11 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Dynamic loading example for mxGraph. This example demonstrates loading
    +  graph model data dynamically to limit the number of cells in the model.
    +-->
    +<html>
    +<head>
    +	<title>Dynamic loading example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		
    +		// Global variable to make sure each cell in a response has
    +		// a unique ID throughout the complete life of the program,
    +		// in a real-life setup each cell should have an external
    +		// ID on the business object or else the cell ID should be
    +		// globally unique for the lifetime of the graph model.
    +		var requestId = 0;
    +		
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Disables all built-in interactions
    +				graph.setEnabled(false);
    +
    +				// Handles clicks on cells
    +				graph.addListener(mxEvent.CLICK, function(sender, evt)
    +				{
    +					var cell = evt.getProperty('cell');
    +
    +					if (cell != null)
    +					{
    +						load(graph, cell);
    +					}
    +				});
    +
    +				// Changes the default vertex style in-place
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_ELLIPSE;
    +				style[mxConstants.STYLE_PERIMETER] = mxPerimeter.EllipsePerimeter;
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +								
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +
    +				var cx = graph.container.scrollWidth / 2;
    +				var cy = graph.container.scrollHeight / 2;
    +				
    +				var cell = graph.insertVertex(parent, '0-0', '0-0', cx - 20, cy - 15, 40, 30);
    +
    +				// Animates the changes in the graph model
    +				graph.getModel().addListener(mxEvent.CHANGE, function(sender, evt)
    +				{
    +					var changes = evt.getProperty('edit').changes;
    +					mxEffects.animateChanges(graph, changes);
    +				});
    +
    +				load(graph, cell);
    +			}
    +		};
    +
    +		// Loads the links for the given cell into the given graph
    +		// by requesting the respective data in the server-side
    +		// (implemented for this demo using the server-function)
    +		function load(graph, cell)
    +		{
    +			if (graph.getModel().isVertex(cell))
    +			{
    +				var cx = graph.container.scrollWidth / 2;
    +				var cy = graph.container.scrollHeight / 2;
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var xml = server(cell.id);
    +					var doc = mxUtils.parseXml(xml);
    +					var dec = new mxCodec(doc);
    +					var model = dec.decode(doc.documentElement);
    +
    +					// Removes all cells which are not in the response
    +					for (var key in graph.getModel().cells)
    +					{
    +						var tmp = graph.getModel().getCell(key);
    +						
    +						if (tmp != cell &&
    +							graph.getModel().isVertex(tmp))
    +						{
    +							graph.removeCells([tmp]);
    +						}
    +					}
    +
    +					// Merges the response model with the client model
    +					graph.getModel().mergeChildren(model.getRoot().getChildAt(0), parent);
    +
    +					// Moves the given cell to the center
    +					var geo = graph.getModel().getGeometry(cell);
    +
    +					if (geo != null)
    +					{
    +						geo = geo.clone();
    +						geo.x = cx - geo.width / 2;
    +						geo.y = cy - geo.height / 2;
    +
    +						graph.getModel().setGeometry(cell, geo);
    +					}
    +
    +					// Creates a list of the new vertices, if there is more
    +					// than the center vertex which might have existed
    +					// previously, then this needs to be changed to analyze
    +					// the target model before calling mergeChildren above
    +					var vertices = [];
    +					
    +					for (var key in graph.getModel().cells)
    +					{
    +						var tmp = graph.getModel().getCell(key);
    +						
    +						if (tmp != cell &&
    +							model.isVertex(tmp))
    +						{
    +							vertices.push(tmp);
    +
    +							// Changes the initial location "in-place"
    +							// to get a nice animation effect from the
    +							// center to the radius of the circle
    +							var geo = model.getGeometry(tmp);
    +
    +							if (geo != null)
    +							{
    +								geo.x = cx - geo.width / 2;
    +								geo.y = cy - geo.height / 2;
    +							}
    +						}
    +					}
    +					
    +					// Arranges the response in a circle
    +					var cellCount = vertices.length;
    +					var phi = 2 * Math.PI / cellCount;
    +					var r = Math.min(graph.container.scrollWidth / 4,
    +							graph.container.scrollHeight / 4);
    +					
    +					for (var i = 0; i < cellCount; i++)
    +					{
    +						var geo = graph.getModel().getGeometry(vertices[i]);
    +						
    +						if (geo != null)
    +						{
    +							geo = geo.clone();
    +							geo.x += r * Math.sin(i * phi);
    +							geo.y += r * Math.cos(i * phi);
    +
    +							graph.getModel().setGeometry(vertices[i], geo);
    +						}
    +					}
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +
    +		// Simulates the existence of a server that can crawl the
    +		// big graph with a certain depth and create a graph model
    +		// for the traversed cells, which is then sent to the client
    +		function server(cellId)
    +		{
    +			// Increments the request ID as a prefix for the cell IDs
    +			requestId++;
    +
    +			// Creates a local graph with no display
    +			var graph = new mxGraph();
    +			
    +			// Gets the default parent for inserting new cells. This
    +			// is normally the first child of the root (ie. layer 0).
    +			var parent = graph.getDefaultParent();
    +
    +			// Adds cells to the model in a single step
    +			graph.getModel().beginUpdate();
    +			try
    +			{
    +				var v0 = graph.insertVertex(parent, cellId, 'Dummy', 0, 0, 40, 30);
    +				var cellCount = parseInt(Math.random() * 16) + 4;
    +
    +				// Creates the random links and cells for the response
    +				for (var i = 0; i < cellCount; i++)
    +				{
    +					var id = requestId + '-' + i;
    +					var v = graph.insertVertex(parent, id, id, 0, 0, 40, 30);
    +					var e = graph.insertEdge(parent, null, 'Link ' + i, v0, v);
    +				}
    +			}
    +			finally
    +			{
    +				// Updates the display
    +				graph.getModel().endUpdate();
    +			}
    +
    +			var enc = new mxCodec();
    +			var node = enc.encode(graph.getModel());
    +			
    +			return mxUtils.getXml(node);
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper. Make sure to define the position
    +		and overflow attributes! See comments on the adding of the size-listener on line 54 ff!  -->
    +	<div id="graphContainer"
    +		style="overflow:visible;width:100%;height:100%;background:url('editors/images/grid.gif');">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/dynamicstyle.html b/javascript/examples/dynamicstyle.html
    new file mode 100644
    index 000000000..a63181517
    --- /dev/null
    +++ b/javascript/examples/dynamicstyle.html
    @@ -0,0 +1,124 @@
    +<!--
    +  $Id: dynamicstyle.html,v 1.11 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Dynamic Style example for mxGraph. This example demonstrates changing
    +  the style of a cell dynamically by overriding mxGraphModel.getStyle.
    +-->
    +<html>
    +<head>
    +	<title>Dynamic Style example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Disables moving of edge labels in this examples
    +				graph.edgeLabelsMovable = false;
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +
    +				// Needs to set a flag to check for dynamic style changes,
    +				// that is, changes to styles on cells where the style was
    +				// not explicitely changed using mxStyleChange
    +				graph.getView().updateStyle = true;
    +				
    +				// Overrides mxGraphModel.getStyle to return a specific style
    +				// for edges that reflects their target terminal (in this case
    +				// the strokeColor will be equal to the target's fillColor).
    +				var previous = graph.model.getStyle;
    +				
    +				graph.model.getStyle = function(cell)
    +				{
    +					if (cell != null)
    +					{
    +						var style = previous.apply(this, arguments);
    +						
    +						if (this.isEdge(cell))
    +						{
    +							var target = this.getTerminal(cell, false);
    +
    +							if (target != null)
    +							{
    +								var state = graph.getView().getState(target);
    +								var targetStyle = (state != null) ? state.style : graph.getCellStyle(target);
    +								var fill = mxUtils.getValue(targetStyle, mxConstants.STYLE_FILLCOLOR);
    +								
    +								if (fill != null)
    +								{
    +									style += ';strokeColor='+fill;
    +								}
    +							}
    +						}
    +						else if (this.isVertex(cell))
    +						{
    +							var geometry = this.getGeometry(cell);
    +							
    +							if (geometry != null &&
    +								geometry.width > 80)
    +							{
    +								style += ';fillColor=green';
    +							}
    +						}
    +						
    +						return style;
    +					}
    +					
    +					return null;
    +				};
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30, 'fillColor=green');
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30, 'fillColor=blue');
    +					var v3 = graph.insertVertex(parent, null, 'World!', 20, 150, 80, 30, 'fillColor=red');
    +					var e1 = graph.insertEdge(parent, null, 'Connect', v1, v2, 'perimeterSpacing=4;strokeWidth=4;labelBackgroundColor=white;fontStyle=1');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/dynamictoolbar.html b/javascript/examples/dynamictoolbar.html
    new file mode 100644
    index 000000000..963b9ff81
    --- /dev/null
    +++ b/javascript/examples/dynamictoolbar.html
    @@ -0,0 +1,172 @@
    +<!--
    +  $Id: dynamictoolbar.html,v 1.14 2011-11-11 13:54:45 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Dynamic toolbar example for mxGraph. This example demonstrates changing the
    +  state of the toolbar at runtime.
    +-->
    +<html>
    +<head>
    +	<title>Toolbar example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main()
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Defines an icon for creating new connections in the connection handler.
    +				// This will automatically disable the highlighting of the source vertex.
    +				mxConnectionHandler.prototype.connectImage = new mxImage('images/connector.gif', 16, 16);
    +
    +				// Creates the div for the toolbar
    +				var tbContainer = document.createElement('div');
    +				tbContainer.style.position = 'absolute';
    +				tbContainer.style.overflow = 'hidden';
    +				tbContainer.style.padding = '2px';
    +				tbContainer.style.left = '0px';
    +				tbContainer.style.top = '0px';
    +				tbContainer.style.width = '24px';
    +				tbContainer.style.bottom = '0px';
    +				
    +				document.body.appendChild(tbContainer);
    +				
    +				// Workaround for Internet Explorer ignoring certain styles
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(tbContainer);
    +				}
    +								
    +				// Creates new toolbar without event processing
    +				var toolbar = new mxToolbar(tbContainer);
    +				toolbar.enabled = false
    +				
    +				// Creates the div for the graph
    +				var container = document.createElement('div');
    +				container.style.position = 'absolute';
    +				container.style.overflow = 'hidden';
    +				container.style.left = '24px';
    +				container.style.top = '0px';
    +				container.style.right = '0px';
    +				container.style.bottom = '0px';
    +				container.style.background = 'url("editors/images/grid.gif")';
    +
    +				document.body.appendChild(container);
    +				
    +				// Workaround for Internet Explorer ignoring certain styles
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +				}
    +	
    +				// Creates the model and the graph inside the container
    +				// using the fastest rendering available on the browser
    +				var model = new mxGraphModel();
    +				var graph = new mxGraph(container, model);
    +
    +				// Enables new connections in the graph
    +				graph.setConnectable(true);
    +				graph.setMultigraph(false);
    +
    +				// Stops editing on enter or escape keypress
    +				var keyHandler = new mxKeyHandler(graph);
    +				var rubberband = new mxRubberband(graph);
    +				
    +				var addVertex = function(icon, w, h, style)
    +				{
    +					var vertex = new mxCell(null, new mxGeometry(0, 0, w, h), style);
    +					vertex.setVertex(true);
    +				
    +					var img = addToolbarItem(graph, toolbar, vertex, icon);
    +					img.enabled = true;
    +					
    +					graph.getSelectionModel().addListener(mxEvent.CHANGE, function()
    +					{
    +						var tmp = graph.isSelectionEmpty();
    +						mxUtils.setOpacity(img, (tmp) ? 100 : 20);
    +						img.enabled = tmp;
    +					});
    +				};
    +				
    +				addVertex('editors/images/rectangle.gif', 100, 40, '');
    +				addVertex('editors/images/rounded.gif', 100, 40, 'shape=rounded');
    +				addVertex('editors/images/ellipse.gif', 40, 40, 'shape=ellipse');
    +				addVertex('editors/images/rhombus.gif', 40, 40, 'shape=rhombus');
    +				addVertex('editors/images/triangle.gif', 40, 40, 'shape=triangle');
    +				addVertex('editors/images/cylinder.gif', 40, 40, 'shape=cylinder');
    +				addVertex('editors/images/actor.gif', 30, 40, 'shape=actor');
    +			}
    +		}
    +
    +		function addToolbarItem(graph, toolbar, prototype, image)
    +		{
    +			// Function that is executed when the image is dropped on
    +			// the graph. The cell argument points to the cell under
    +			// the mousepointer if there is one.
    +			var funct = function(graph, evt, cell, x, y)
    +			{
    +				graph.stopEditing(false);
    +
    +				var vertex = graph.getModel().cloneCell(prototype);
    +				vertex.geometry.x = x;
    +				vertex.geometry.y = y;
    +					
    +				graph.addCell(vertex);
    +				graph.setSelectionCell(vertex);
    +			}
    +			
    +			// Creates the image which is used as the drag icon (preview)
    +			var img = toolbar.addMode(null, image, function(evt, cell)
    +			{
    +				var pt = this.graph.getPointForEvent(evt);
    +				funct(graph, evt, cell, pt.x, pt.y);
    +			});
    +			
    +			// Disables dragging if element is disabled. This is a workaround
    +			// for wrong event order in IE. Following is a dummy listener that
    +			// is invoked as the last listener in IE.
    +			mxEvent.addListener(img, 'mousedown', function(evt)
    +			{
    +				// do nothing
    +			});
    +			
    +			// This listener is always called first before any other listener
    +			// in all browsers.
    +			mxEvent.addListener(img, 'mousedown', function(evt)
    +			{
    +				if (img.enabled == false)
    +				{
    +					mxEvent.consume(evt);
    +				}
    +			});
    +						
    +			mxUtils.makeDraggable(img, graph, funct);
    +			
    +			return img;
    +		}
    +
    +	</script>
    +</head>
    +
    +<!-- Calls the main function after the page has loaded. Container is dynamically created. -->
    +<body onload="main();">
    +</body>
    +</html>
    diff --git a/javascript/examples/edgetolerance.html b/javascript/examples/edgetolerance.html
    new file mode 100644
    index 000000000..82aeb00f7
    --- /dev/null
    +++ b/javascript/examples/edgetolerance.html
    @@ -0,0 +1,128 @@
    +<!--
    +  $Id: edgetolerance.html,v 1.3 2011-05-30 14:18:52 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Edge tolerance example for mxGraph. This example demonstrates increasing
    +  the tolerance for hit detection on edges.
    +-->
    +<html>
    +<head>
    +	<title>Edge tolerance example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Overrides the mouse event dispatching mechanism to update the
    +				// cell which is associated with the event in case the native hit
    +				// detection did not return anything.
    +				var mxGraphFireMouseEvent = mxGraph.prototype.fireMouseEvent;
    +				mxGraph.prototype.fireMouseEvent = function(evtName, me, sender)
    +				{
    +					// Checks if native hit detection did not return anything
    +					if (me.getState() == null)
    +					{
    +						// Updates the graph coordinates in the event since we need
    +						// them here. Storing them in the event means the overridden
    +						// method doesn't have to do this again.
    +						if (me.graphX == null || me.graphY == null)
    +						{
    +							var pt = mxUtils.convertPoint(this.container, me.getX(), me.getY());
    +							
    +							me.graphX = pt.x;
    +							me.graphY = pt.y;
    +						}
    +						
    +						var cell = this.getCellAt(me.graphX, me.graphY);
    +						
    +						if (this.getModel().isEdge(cell))
    +						{
    +							me.state = this.view.getState(cell);
    +							
    +							if (me.state != null && me.state.shape != null)
    +							{
    +								graph.container.style.cursor = me.state.shape.node.style.cursor;
    +							}
    +						}
    +					}
    +					
    +					if (me.state == null)
    +					{
    +						graph.container.style.cursor = 'default';
    +					}
    +					
    +					mxGraphFireMouseEvent.apply(this, arguments);
    +				};
    +				
    +				// Overrides double click handling to use the tolerance
    +				var mxGraphDblClick = mxGraph.prototype.dblClick;
    +				mxGraph.prototype.dblClick = function(evt, cell)
    +				{
    +					if (cell == null)
    +					{
    +						var pt = mxUtils.convertPoint(this.container,
    +							mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +						cell = this.getCellAt(pt.x, pt.y);
    +					}
    +					
    +					mxGraphDblClick.call(this, evt, cell);
    +				};
    +
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setTolerance(20);
    +
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 120, 120, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 400, 250, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2, 'edgeStyle=orthogonalEdgeStyle;');
    +					var e2 = graph.insertEdge(parent, null, '', v2, v1, 'edgeStyle=orthogonalEdgeStyle;');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:641px;height:481px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/editing.html b/javascript/examples/editing.html
    new file mode 100644
    index 000000000..e09797176
    --- /dev/null
    +++ b/javascript/examples/editing.html
    @@ -0,0 +1,161 @@
    +<!--
    +  $Id: editing.html,v 1.8 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Editing example for mxGraph. This example demonstrates using the in-place
    +  editor trigger to specify the editing value and write the new value into
    +  a specific field of the user object. Wrapping and DOM nodes as labels are
    +  also demonstrated here.
    +-->
    +<html>
    +<head>
    +	<title>Editing example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setHtmlLabels(true);
    +				
    +				// Adds handling of return and escape keystrokes for editing
    +				var keyHandler = new mxKeyHandler(graph);
    +				
    +				// Helper method that returns the fieldname to be used for
    +				// a mouse event
    +				var getFieldnameForEvent = function(cell, evt)
    +				{
    +					if (evt != null)
    +					{
    +						// Finds the relative coordinates inside the cell
    +						var point = mxUtils.convertPoint(graph.container,
    +								evt.clientX, evt.clientY);
    +						var state = graph.getView().getState(cell);
    +						
    +						if (state != null)
    +						{
    +							point.x -= state.x;
    +							point.y -= state.y;
    +							
    +							// Returns second if mouse in second half of cell
    +							if (point.y > state.height / 2)
    +							{
    +								return 'second';
    +							}
    +						}
    +					}
    +					
    +					return 'first';
    +				};
    +				
    +				// Returns a HTML representation of the cell where the
    +				// upper half is the first value, lower half is second
    +				// value
    +				graph.getLabel = function(cell)
    +				{
    +					var table = document.createElement('table');
    +					table.style.height = '100%';
    +					table.style.width = '100%';
    +					
    +					var body = document.createElement('tbody');
    +					var tr1 = document.createElement('tr');
    +					var td1 = document.createElement('td');
    +					td1.style.fontSize = '12px';
    +					mxUtils.write(td1, cell.value.first);
    +					
    +					var tr2 = document.createElement('tr');
    +					var td2 = document.createElement('td');
    +					td2.style.fontSize = '12px';
    +					mxUtils.write(td2, cell.value.second);
    +					
    +					tr1.appendChild(td1);
    +					tr2.appendChild(td2);
    +					body.appendChild(tr1);
    +					body.appendChild(tr2);
    +					table.appendChild(body);
    +					
    +					return table;
    +				};
    +				
    +				// Returns the editing value for the given cell and event
    +				graph.getEditingValue = function(cell, evt)
    +				{
    +					evt.fieldname = getFieldnameForEvent(cell, evt);
    +
    +					return cell.value[evt.fieldname] || '';
    +				};
    +								
    +				// Sets the new value for the given cell and trigger
    +				graph.labelChanged = function(cell, newValue, trigger)
    +				{
    +					var name = (trigger != null) ? trigger.fieldname : null;
    +					
    +					if (name != null)
    +					{
    +						// Clones the user object for correct undo and puts
    +						// the new value in the correct field.
    +						var value = mxUtils.clone(cell.value);
    +						value[name] = newValue;
    +						newValue = value;
    +						
    +						mxGraph.prototype.labelChanged.apply(this, arguments);
    +					}
    +				};
    +				
    +				// Sample user objects with 2 fields
    +				var value = new Object();
    +				value.first = 'First value';
    +				value.second = 'Second value';
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, value, 100, 60, 120, 80, 'overflow=fill;');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +	<p>
    +	  Double-click the upper/lower half of the cell to edit different fields of the user object.
    +	</p>
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/editors/archive/grapheditor/css/grapheditor.css b/javascript/examples/editors/archive/grapheditor/css/grapheditor.css
    new file mode 100644
    index 000000000..6c5df452e
    --- /dev/null
    +++ b/javascript/examples/editors/archive/grapheditor/css/grapheditor.css
    @@ -0,0 +1,339 @@
    +/*
    + * Ext JS Library 2.1
    + * Copyright(c) 2006-2008, Ext JS, LLC.
    + * licensing@extjs.com
    + * 
    + * http://extjs.com/license
    + */
    +
    +html, body {
    +	font: normal 12px tahoma, arial, verdana, sans-serif;
    +	margin: 0;
    +	padding: 0;
    +	border: 0 none;
    +	overflow: hidden;
    +	height: 100%;
    +}
    +
    +.ext-el-mask {
    +    background:#dadadb;
    +}
    +.x-grid3-td-title b {
    +    font-family:tahoma, verdana;
    +    display:block;
    +    color:#333;
    +}
    +.x-grid3-td-title b i {
    +    font-weight:normal;
    +    font-style: normal;
    +    color:#000;
    +}
    +.x-grid3-td-title .topic {
    +    padding-left:20px;
    +}
    +.x-grid3-td-title .x-grid3-cell-inner {
    +    white-space:normal;
    +}
    +.x-grid3-td-title a {
    +    color: #385F95;
    +    text-decoration:none;
    +}
    +.x-grid3-td-title a:hover {
    +    text-decoration:underline;
    +}
    +.x-grid3-row-body p {
    +    margin:5px 20px 10px 25px !important;
    +    color:#555;
    +}
    +.post-date {
    +    font-weight:bold;
    +    color:#333;
    +}
    +.author {
    +    color:#333;
    +}
    +.x-tree {
    +    background:#fff !important;
    +}
    +.x-border-layout-ct {
    +    background:transparent;
    +}
    +body.x-border-layout-ct {
    +    background:#c3d5ed url(../../../images/bg.gif) repeat-x left top !important;
    +}
    +.x-layout-split {
    +    background-color:transparent !important;
    +}
    +.x-tree-node div.feeds-node{
    +    background:#eee url(../../../images/cmp-bg.gif) repeat-x;
    +    margin-top:1px;
    +    border-top:1px solid #ddd;
    +    border-bottom:1px solid #ccc;
    +    padding-top:2px;
    +    padding-bottom:1px;
    +}
    +.feeds-node .x-tree-node-icon {
    +    display:none;
    +}
    +.forum-ct a span {
    +    font-weight:bold;
    +    color:#222;
    +}
    +.feed {
    +    border:1px solid #fff;
    +    margin:3px;
    +}
    +.feed .x-tree-ec-icon {
    +    display:none;
    +}
    +.cut-icon {
    +    background-image:url(../../../images/cut.gif) !important;
    +}
    +.copy-icon {
    +    background-image:url(../../../images/copy.gif) !important;
    +}
    +.paste-icon {
    +    background-image:url(../../../images/paste.gif) !important;
    +}
    +.undo-icon {
    +    background-image:url(../../../images/undo.gif) !important;
    +}
    +.redo-icon {
    +    background-image:url(../../../images/redo.gif) !important;
    +}
    +.group-icon {
    +    background-image:url(../../../images/group.gif) !important;
    +}
    +.ungroup-icon {
    +    background-image:url(../../../images/ungroup.gif) !important;
    +}
    +.grid-icon {
    +    background-image:url(../../../images/grid.gif) !important;
    +}
    +.connect-icon {
    +    background-image:url(../../../images/connect.gif) !important;
    +}
    +.bold-icon {
    +    background-image:url(../../../images/bold.gif) !important;
    +}
    +.italic-icon {
    +    background-image:url(../../../images/italic.gif) !important;
    +}
    +.underline-icon {
    +    background-image:url(../../../images/underline.gif) !important;
    +}
    +.preferences-icon {
    +    background-image:url(../../../images/preferences.gif) !important;
    +}
    +.fit-icon {
    +    background-image:url(../../../images/fit.gif) !important;
    +}
    +.preview-icon {
    +    background-image:url(../../../images/preview.gif) !important;
    +}
    +.print-icon {
    +    background-image:url(../../../images/print.gif) !important;
    +}
    +.press-icon {
    +    background-image:url(../../../images/press.gif) !important;
    +}
    +.zoom-icon {
    +    background-image:url(../../../images/zoom.gif) !important;
    +}
    +.zoomin-icon {
    +    background-image:url(../../../images/zoomin.gif) !important;
    +}
    +.zoomout-icon {
    +    background-image:url(../../../images/zoomout.gif) !important;
    +}
    +.zoomactual-icon {
    +    background-image:url(../../../images/zoomactual.gif) !important;
    +}
    +.collapse-icon {
    +    background-image:url(../../../images/collapse.gif) !important;
    +}
    +.expand-icon {
    +    background-image:url(../../../images/expand.gif) !important;
    +}
    +.new-icon {
    +    background-image:url(../../../images/new.gif) !important;
    +}
    +.open-icon {
    +    background-image:url(../../../images/open.gif) !important;
    +}
    +.save-icon {
    +    background-image:url(../../../images/save.gif) !important;
    +}
    +.saveas-icon {
    +    background-image:url(../../../images/saveas.gif) !important;
    +}
    +.gear-icon {
    +    background-image:url(../../../images/gear.gif) !important;
    +}
    +.tree-icon {
    +    background-image:url(../../../images/tree.gif) !important;
    +}
    +.diagram-icon {
    +    background-image:url(../../../images/diagram.gif) !important;
    +}
    +.left-icon {
    +    background-image:url(../../../images/left.gif) !important;
    +}
    +.right-icon {
    +    background-image:url(../../../images/right.gif) !important;
    +}
    +.center-icon {
    +    background-image:url(../../../images/center.gif) !important;
    +}
    +.top-icon {
    +    background-image:url(../../../images/top.gif) !important;
    +}
    +.bottom-icon {
    +    background-image:url(../../../images/bottom.gif) !important;
    +}
    +.middle-icon {
    +    background-image:url(../../../images/middle.gif) !important;
    +}
    +.fillcolor-icon {
    +    background-image:url(../../../images/fillcolor.gif) !important;
    +}
    +.linecolor-icon {
    +    background-image:url(../../../images/linecolor.gif) !important;
    +}
    +.fontcolor-icon {
    +    background-image:url(../../../images/fontcolor.gif) !important;
    +}
    +.collapse-icon {
    +    background-image:url(../../../images/collapse.gif) !important;
    +}
    +.expand-icon {
    +    background-image:url(../../../images/expand.gif) !important;
    +}
    +.up-icon {
    +    background-image:url(../../../images/up.gif) !important;
    +}
    +.home-icon {
    +    background-image:url(../../../images/house.gif) !important;
    +}
    +.down-icon {
    +    background-image:url(../../../images/down.gif) !important;
    +}
    +.delete-icon {
    +    background-image:url(../../../images/delete.gif) !important;
    +}
    +.x-tree-selected {
    +    border:1px dotted #a3bae9;
    +    background:#DFE8F6;
    +}
    +.x-tree-node .x-tree-selected a span{
    +	background:transparent;
    +	color:#15428b;
    +    font-weight:bold;
    +}
    +
    +#topic-grid .x-panel-tbar .x-toolbar {
    +   /* border-top:0 none; */
    +}
    +
    +
    +#main-tabs .x-tab-panel-body {
    +    background:transparent;
    +    border:0 none;
    +}
    +
    +/* Preview classes */
    +
    +.preview .x-panel-body {
    +    background:#fff;
    +    color:#222;
    +    font:normal 12px tahoma,verdana,arial,sans-serif;
    +}
    +
    +.preview .x-panel-body p {
    +    line-height:18px;
    +    margin:8px 0;
    +}
    +
    +.preview .x-panel-body ul {
    +    margin-left:18px;
    +}
    +
    +.preview .x-panel-body ul li {
    +    display:list-item;
    +    list-style-image:none !important;
    +    list-style-position:outside !important;
    +    list-style-type:disc !important;
    +    margin-left:18px;
    +}
    +
    +.preview .x-panel-body pre, #preview .x-panel-body code {
    +    background:#f1f1f1;
    +    display:block;
    +}
    +
    +.preview .x-panel-body h4.post-author {
    +    font-weight:normal;
    +    color:#555;
    +    font-size:11px;
    +}
    +.preview .x-panel-body span.post-date {
    +    font-weight:normal;
    +    color:#555;
    +    float:right;
    +    font-size:11px;
    +}
    +.preview .x-panel-body div.post-data {
    +    background:#f1f2f4;
    +    padding:5px;
    +    border-bottom:1px solid #dadadb;
    +}
    +.preview .x-panel-body div.post-body {
    +    padding:10px;
    +}
    +/*.single-preview .x-toolbar, #right-preview .preview .x-toolbar {
    +    border-top:0 none;
    +}*/
    +.reading-menu .x-menu-item-checked {
    +   border:1px dotted #a3bae9 !important;
    +    background:#DFE8F6;
    +	padding:0;
    +}
    +.x-tab-panel-header {
    +    border-bottom-width:0 !important;
    +}
    +#suggested {
    +    border-top:0 none;
    +}
    +#suggested a {
    +    text-decoration:none;
    +    font-size:11px;
    +    color:#15428B;
    +    display:block;
    +    padding:3px;
    +    float:right;
    +    margin-right:4px;
    +}
    +#suggested a:hover {
    +    text-decoration:underline;
    +    color:#15428B;
    +}
    +.x-combo-list-item {
    +    zoom:1;
    +}
    +.x-combo-list-item strong {
    +    color:#777;
    +    font-size:11px;
    +    font-style: normal;
    +    float:left;
    +}
    +.x-combo-list-item em {
    +    color:#222;
    +    font-size:12px;
    +    font-style: normal;
    +    float:left;
    +    width:325px;
    +}
    +.x-node-ctx {
    +    background:#eee !important;
    +    border:1px solid #ccc !important;
    +}
    \ No newline at end of file
    diff --git a/javascript/examples/editors/archive/grapheditor/grapheditor.html b/javascript/examples/editors/archive/grapheditor/grapheditor.html
    new file mode 100644
    index 000000000..04d4c4dd5
    --- /dev/null
    +++ b/javascript/examples/editors/archive/grapheditor/grapheditor.html
    @@ -0,0 +1,86 @@
    +<!--
    +  $Id: grapheditor.html,v 1.4 2012-05-11 07:55:25 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +
    +  Graph Editor example for mxGraph. This example demonstrates using
    +  mxGraph inside an ExtJs panel, and integrating tooltips, popupmenus,
    +  toolbars and dialogs into mxGraph.
    +-->
    +<html>
    +<head>
    +    <title>Graph Editor</title>
    +
    + 	<link rel="stylesheet" type="text/css" href="http://dev.sencha.com/deploy/ext-3.3.1/resources/css/ext-all.css" />
    +	<script type="text/javascript" src="http://dev.sencha.com/deploy/ext-3.3.1/adapter/ext/ext-base.js"></script>
    +	<script type="text/javascript" src="http://dev.sencha.com/deploy/ext-3.3.1/ext-all.js"></script>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../../../../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../../../../src/js/mxClient.js"></script>
    +
    +    <link rel="stylesheet" type="text/css" href="css/grapheditor.css" />
    +
    +    <script type="text/javascript" src="js/GraphEditor.js"></script>
    +    <script type="text/javascript" src="js/MainPanel.js"></script>
    +    <script type="text/javascript" src="js/LibraryPanel.js"></script>
    +    <script type="text/javascript" src="js/DiagramStore.js"></script>
    +    <script type="text/javascript" src="js/DiagramPanel.js"></script>
    +
    +	<script type="text/javascript">
    +		// Enables guides
    +		mxGraphHandler.prototype.guidesEnabled = true;
    +
    +	    // Alt disables guides
    +	    mxGuide.prototype.isEnabledForEvent = function(evt)
    +	    {
    +	    	return !mxEvent.isAltDown(evt);
    +	    };
    +
    +		// Enables snapping waypoints to terminals
    +		mxEdgeHandler.prototype.snapToTerminals = true;
    +
    +		// Replaces the built-in alert dialog with ExtJs message dialog (can't
    +		// replace confirm and prompt as they are callback-based and we require
    +		// a synchronous call with a return value).
    +		// Ext.MessageBox.prompt('Prompt', message, null, null, null, defaultValue);
    +		// Ext.MessageBox.confirm('Confirm', message);
    +		mxUtils.alert = function(message)
    +		{
    +			Ext.example.msg(message, '', '');
    +		};
    +		
    +		/*  To add a new accordion in the LibraryPanel.js, use the following
    +			code:
    +		
    +			this.myAccordion = this.root.appendChild(
    +			  new Ext.tree.TreeNode({
    +			    text:'Title',
    +			    cls:'feeds-node',
    +			    expanded:false
    +			  }) 
    +			);
    +		
    +			To add new vertices to this new accordion, you can create a new
    +			method as follows (or use the panel parameter of
    +			insertVertexTemplate) in GraphEditor.js:
    +			
    +			function insertAccordionTemplate(panel, graph, label, icon, style, width, height) 
    +			{ 
    +			  var myAccordionNode = panel.myAccordion; 
    +			  return insertVertexTemplate(panel, graph, label, icon, style, width, height, '', myAccordionNode); 
    +			};
    +
    +			This can then be used to add new vertices as follows:
    +
    +			insertAccordionTemplate(library, graph, 'Title', '../../images/cloud.gif', 'ellipse;shape=cloud', 90, 70);
    +		*/
    +	</script>
    +</head>
    +<body onload="main(); /* see js/GraphEditor.js */ ">
    +<div id="header"><div style="float:right;margin:5px;" class="x-small-editor"></div></div>
    +</body>
    +</html>
    diff --git a/javascript/examples/editors/archive/grapheditor/js/DiagramPanel.js b/javascript/examples/editors/archive/grapheditor/js/DiagramPanel.js
    new file mode 100644
    index 000000000..0b6712814
    --- /dev/null
    +++ b/javascript/examples/editors/archive/grapheditor/js/DiagramPanel.js
    @@ -0,0 +1,65 @@
    +/*
    + * $Id: DiagramPanel.js,v 1.1 2012-03-06 12:36:45 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +DiagramPanel = function(store, mainPanel)
    +{
    +	DiagramPanel.superclass.constructor.call(this,
    +    {
    +		// TODO: Set initial sorting column and order to name, desc
    +        title: 'Diagrams',
    +        store: store,
    +		hideHeaders: false,
    +		columnSort: true,
    +		singleSelect: true,
    +		reserveScrollOffset: true,
    +        emptyText: 'No diagrams',
    +
    +        columns: [{
    +            header: 'Name',
    +            width: 1,
    +            dataIndex: 'name'
    +        }],
    +        
    +        onContextMenu: function(e, node, scope)
    +        {
    +			var idx = this.getSelectedIndexes();
    +			
    +			if (idx.length > 0)
    +			{
    +				var name = store.getAt(idx[0]).get('name');
    +				
    +				if (name != null)
    +				{
    +		    		var menu = new Ext.menu.Menu(
    +		    		{
    +		                items: [{
    +		                    text:'Open',
    +		                    iconCls:'open-icon',
    +		                    scope: this,
    +		                    handler:function()
    +		                    {
    +	                			mainPanel.openDiagram(name);
    +		                    }
    +		                },'-',{
    +		                    text:'Delete',
    +		                    iconCls:'delete-icon',
    +		                    scope: this,
    +		                    handler:function()
    +		                    {
    +		                		if (mxUtils.confirm('Delete "'+name+'"?'))
    +		                		{
    +		                			DiagramStore.remove(name);
    +		                		}
    +		                    }
    +		                }]
    +		            });
    +		
    +		            menu.showAt([e.browserEvent.clientX, e.browserEvent.clientY]);
    +				}
    +			}
    +        }
    +    });
    +};
    +
    +Ext.extend(DiagramPanel, Ext.ListView);
    diff --git a/javascript/examples/editors/archive/grapheditor/js/DiagramStore.js b/javascript/examples/editors/archive/grapheditor/js/DiagramStore.js
    new file mode 100644
    index 000000000..146bf8093
    --- /dev/null
    +++ b/javascript/examples/editors/archive/grapheditor/js/DiagramStore.js
    @@ -0,0 +1,222 @@
    +/**
    + * $Id: DiagramStore.js,v 1.1 2012-03-06 12:36:45 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + *
    + * Class: DiagramStore
    + * 
    + * A class for storing diagrams. This implementation uses Google Gears, HTML 5
    + * (disabled) or a local variable. 
    + */
    +var DiagramStore =
    +{
    +	/**
    +	 * Variable: useLocalStorage
    +	 * 
    +	 * Uses localStorage object in HTML 5. The support in browsers for this
    +	 * feature is still shaky so it's disabled.
    +	 */
    +	useLocalStorage: false,
    +		
    +	/**
    +	 * Variable: diagrams
    +	 * 
    +	 * Array for in-memory storage of the diagrams. This is not persistent
    +	 * across multiplace invocations and is only used as a fallback if no
    +	 * client- or server-side storage is available.
    +	 */
    +	diagrams: new Object(),
    +
    +	/**
    +	 * Variable: diagrams
    +	 * 
    +	 * Array for in-memory storage of the diagrams. This is not persistent
    +	 * across multiplace invocations and is only used as a fallback if no
    +	 * client- or server-side storage is available.
    +	 */
    +	eventSource: new mxEventSource(this),
    +	
    +	/**
    +	 * Function: isAvailable
    +	 * 
    +	 * Returns true if any of the storage mechanisms for driving the diagram
    +	 * store is available. Currently supported mechanisms are Google Gears
    +	 * and HTML 5 local storage.
    +	 */
    +	isAvailable: function()
    +	{
    +		return (DiagramStore.useLocalStorage &&
    +			typeof(localStorage) != 'undefined') ||
    +			(window.google &&
    +			google.gears);
    +	},
    +
    +	/**
    +	 * Function: init
    +	 * 
    +	 * Initializes the diagram store. This is invoked at class creation time
    +	 * and returns the db instance to operate on.
    +	 */
    +	db: function()
    +	{
    +		var db = null;
    +		
    +		try
    +		{					
    +			db = google.gears.factory.create('beta.database', '1.0');
    +			db.open('mxGraphEditor');
    +			db.execute('CREATE TABLE IF NOT EXISTS Diagrams ('+
    +				'NAME PRIMARY KEY,'+
    +				'XML TEXT' +
    +				');');
    +			
    +			return db;
    +		}
    +		catch (e)
    +		{
    +			// ignore
    +		}
    +		
    +		return db;
    +	}(),
    +	
    +	/**
    +	 * Function: addListener
    +	 */
    +	addListener: function(name, funct)
    +	{
    +		DiagramStore.eventSource.addListener(name, funct);
    +	},
    +
    +	/**
    +	 * Function: removeListener
    +	 */
    +	removeListener: function(funct)
    +	{
    +		DiagramStore.eventSource.removeListener(funct);
    +	},
    +
    +	/**
    +	 * Function: put
    +	 * 
    +	 * Puts the given diagram into the store, replacing any existing diagram
    +	 * for the given name.
    +	 */
    +	put: function(name, xml)
    +	{
    +		if (DiagramStore.useLocalStorage &&
    +			typeof(localStorage) != 'undefined')
    +		{
    +			return localStorage.setItem(name, xml);
    +		}
    +		else if (DiagramStore.db != null)
    +		{
    +			DiagramStore.db.execute('DELETE FROM Diagrams WHERE name = ?;', [name]);
    +			DiagramStore.db.execute('INSERT INTO Diagrams (NAME, XML) VALUES (?, ?);', [name, xml]);
    +		}
    +		else
    +		{
    +			DiagramStore.diagrams[name] = xml;
    +		}
    +		
    +		DiagramStore.eventSource.fireEvent(new mxEventObject('put'));
    +	},
    +
    +	/**
    +	 * Function: remove
    +	 * 
    +	 * Removes the given diagram from the store and returns
    +	 */
    +	remove: function(name)
    +	{
    +		if (DiagramStore.useLocalStorage &&
    +			typeof(localStorage) != 'undefined')
    +		{
    +			localStorage.removeItem(name);
    +		}
    +		else if (DiagramStore.db != null)
    +		{
    +			DiagramStore.db.execute('DELETE FROM Diagrams WHERE name = ?;', [name]);
    +		}
    +		else
    +		{
    +			delete DiagramStore.diagrams[name];
    +		}
    +
    +		DiagramStore.eventSource.fireEvent(new mxEventObject('remove'));
    +	},
    +
    +	/**
    +	 * Function: get
    +	 * 
    +	 * Returns the given diagram from the store or null of no such diagram
    +	 * can be found.
    +	 */
    +	get: function(name)
    +	{
    +		var xml = null;
    +		
    +		if (DiagramStore.useLocalStorage &&
    +			typeof(localStorage) != 'undefined')
    +		{
    +			xml = localStorage.getItem(name);
    +		}
    +		else if (DiagramStore.db != null)
    +		{
    +			var rs = DiagramStore.db.execute('SELECT xml FROM Diagrams WHERE NAME = ?;', [name]);
    +			
    +			if (rs.isValidRow())
    +			{
    +				xml = rs.field(0);
    +			}
    +			
    +			rs.close();
    +		}
    +		else
    +		{
    +			xml = DiagramStore.diagrams[name];
    +		}
    +		
    +		return xml; 
    +	},
    +
    +	/**
    +	 * Function: getNames
    +	 * 
    +	 * Returns all diagram names in the store as an array.
    +	 */
    +	getNames: function()
    +	{
    +		var names = [];
    +		
    +		if (DiagramStore.useLocalStorage &&
    +			typeof(localStorage) != 'undefined')
    +		{
    +			for (var i = 0; i < localStorage.length; i++)
    +			{
    +				names.push(localStorage.key(i));
    +			}
    +		}
    +		else if (DiagramStore.db != null)
    +		{
    +			var rs = DiagramStore.db.execute('SELECT name FROM Diagrams;');
    +	
    +			while (rs.isValidRow())
    +			{
    +				names.push(rs.field(0));
    +				rs.next();
    +			}
    +			
    +			rs.close();
    +		}
    +		else
    +		{
    +		    for (var name in DiagramStore.diagrams)
    +		    {
    +		    	names.push(name);
    +		    }
    +		}
    +	    
    +	    return names;
    +	}
    +
    +};
    diff --git a/javascript/examples/editors/archive/grapheditor/js/GraphEditor.js b/javascript/examples/editors/archive/grapheditor/js/GraphEditor.js
    new file mode 100644
    index 000000000..c85456c2d
    --- /dev/null
    +++ b/javascript/examples/editors/archive/grapheditor/js/GraphEditor.js
    @@ -0,0 +1,710 @@
    +/*
    + * $Id: GraphEditor.js,v 1.3 2012-03-22 09:22:39 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +GraphEditor = {};
    +
    +function main()
    +{
    +    Ext.QuickTips.init();
    +
    +	// Disables browser context menu
    +	mxEvent.disableContextMenu(document.body);	
    +	
    +	// Makes the connection hotspot smaller
    +	mxConstants.DEFAULT_HOTSPOT = 0.3;
    +	
    +	// Makes the shadow brighter
    +	mxConstants.SHADOWCOLOR = '#C0C0C0';
    +    
    +	// Creates the graph and loads the default stylesheet
    +    var graph = new mxGraph();
    +    
    +    // Inverts the elbow edge style without removing existing styles
    +    graph.flipEdge = function(edge)
    +    {
    +		if (edge != null)
    +		{
    +			var state = this.view.getState(edge);
    +			var style = (state != null) ? state.style : this.getCellStyle(edge);
    +			
    +			if (style != null)
    +			{
    +				var elbow = mxUtils.getValue(style, mxConstants.STYLE_ELBOW,
    +					mxConstants.ELBOW_HORIZONTAL);
    +				var value = (elbow == mxConstants.ELBOW_HORIZONTAL) ?
    +					mxConstants.ELBOW_VERTICAL : mxConstants.ELBOW_HORIZONTAL;
    +				this.setCellStyles(mxConstants.STYLE_ELBOW, value, [edge]);
    +			}
    +		}
    +    };
    +    
    +    // Creates the command history (undo/redo)
    +    var history = new mxUndoManager();
    +
    +    // Loads the default stylesheet into the graph
    +    var node = mxUtils.load('resources/default-style.xml').getDocumentElement();
    +		var dec = new mxCodec(node.ownerDocument);
    +		dec.decode(node, graph.getStylesheet());
    +	
    +	// Sets the style to be used when an elbow edge is double clicked
    +	graph.alternateEdgeStyle = 'vertical';
    +	
    +	// Creates the main containers
    +	var mainPanel = new MainPanel(graph, history);
    +	var library = new LibraryPanel();
    +	
    +	var store = new Ext.data.ArrayStore({
    +	    fields: ['name']
    +	});
    +    store.loadData([['test'], ['test2']]);
    +    
    +    var updateHandler = function()
    +    {
    +		var data = [];
    +		var names = DiagramStore.getNames();
    +		
    +		for (var i = 0; i < names.length; i++)
    +		{
    +			data.push([names[i]]);
    +		}
    +		
    +		store.loadData(data);
    +    };
    +    
    +    DiagramStore.addListener('put', updateHandler);
    +    DiagramStore.addListener('remove', updateHandler);
    +    updateHandler();
    +    
    +	var diagramPanel = new DiagramPanel(store, mainPanel);
    +	
    +	diagramPanel.on('dblclick', function(view, index, node, e)
    +	{
    +		var name = store.getAt(index).get('name');
    +		mainPanel.openDiagram(name);
    +	});
    +	
    +	var tabItems = (DiagramStore.isAvailable()) ? [library, diagramPanel] : [library];
    +	
    +    // Creates the container for the outline
    +	var tabPanel = new Ext.TabPanel(
    +	{
    +		id: 'tabPanel',
    +		region: 'center',
    +		activeTab: 0,
    +		width: 180,
    +		items: tabItems
    +    });
    +
    +	
    +    // Creates the container for the outline
    +	var mainTabPanel = new Ext.TabPanel(
    +	{
    +		id: 'mainTabPanel',
    +		region: 'center',
    +		activeTab: 0,
    +		items: [mainPanel]
    +    });
    +	
    +    // Creates the container for the outline
    +	var outlinePanel = new Ext.Panel(
    +	{
    +		id: 'outlinePanel',
    +		layout: 'fit',
    +		split: true,
    +		height: 200,
    +        region:'south'
    +    });
    +
    +	// Creates the enclosing viewport
    +    var viewport = new Ext.Viewport(
    +    {
    +    	layout:'border',
    +    	items:
    +        [{
    +	        xtype: 'panel',
    +	       	margins: '5 5 5 5',
    +	        region: 'center',
    +	        layout: 'border',
    +	        border: false,
    +        	items:
    +        	[
    +	            new Ext.Panel(
    +	            {
    +			        region: 'west',
    +			        layout: 'border',
    +			        split: true,
    +			        width: 180,
    +			        border: false,
    +			        items:
    +			        [
    +			         	tabPanel,
    +			        	outlinePanel
    +					]
    +		    	}),
    +		    	mainTabPanel
    +        	]
    +       	  } // end master panel
    +       	] // end viewport items
    +    }); // end of new Viewport
    +
    +    // Enables scrollbars for the graph container to make it more
    +    // native looking, this will affect the panning to use the
    +    // scrollbars rather than moving the container contents inline
    +   	mainPanel.graphPanel.body.dom.style.overflow = 'auto';
    +
    +    // Installs the command history after the initial graph
    +    // has been created
    +	var listener = function(sender, evt)
    +	{
    +		history.undoableEditHappened(evt.getProperty('edit'));
    +	};
    +	
    +	graph.getModel().addListener(mxEvent.UNDO, listener);
    +	graph.getView().addListener(mxEvent.UNDO, listener);
    +
    +	// Keeps the selection in sync with the history
    +	var undoHandler = function(sender, evt)
    +	{
    +		var changes = evt.getProperty('edit').changes;
    +		graph.setSelectionCells(graph.getSelectionCellsForChanges(changes));
    +	};
    +	
    +	history.addListener(mxEvent.UNDO, undoHandler);
    +	history.addListener(mxEvent.REDO, undoHandler);
    +
    +	// Initializes the graph as the DOM for the panel has now been created	
    +    graph.init(mainPanel.graphPanel.body.dom);
    +    
    +    if (mxClient.IS_GC || mxClient.IS_SF)
    +    {
    +    	graph.container.style.background = '-webkit-gradient(linear, 0% 0%, 100% 0%, from(#FFFFFF), to(#FFFFEE))';
    +    }
    +    else if (mxClient.IS_NS)
    +    {
    +    	graph.container.style.background = '-moz-linear-gradient(left, #FFFFFF, #FFFFEE)';  
    +    }
    +    else if (mxClient.IS_IE)
    +    {
    +    	graph.container.style.filter = 'progid:DXImageTransform.Microsoft.Gradient('+
    +                'StartColorStr=\'#FFFFFF\', EndColorStr=\'#FFFFEE\', GradientType=1)';
    +    }
    +    
    +    graph.setConnectable(true);
    +	graph.setDropEnabled(true);
    +    graph.setPanning(true);
    +    graph.setTooltips(true);
    +    graph.connectionHandler.setCreateTarget(true);
    +    
    +    // Sets the cursor
    +    graph.container.style.cursor = 'default';
    +
    +	// Creates rubberband selection
    +    var rubberband = new mxRubberband(graph);
    +
    +	// Adds some example cells into the graph
    +	mainPanel.newDiagram();
    +    var parent = graph.getDefaultParent();
    +	graph.getModel().beginUpdate();
    +	try
    +	{
    +		var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 40, 'rounded=1');
    +		var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 40, 'rounded=1');
    +		var e1 = graph.insertEdge(parent, null, 'Hello, World!', v1, v2);
    +	}
    +	finally
    +	{
    +		// Updates the display
    +		graph.getModel().endUpdate();
    +	}
    +
    +	// Toolbar object for updating buttons in listeners
    +	var toolbarItems = mainPanel.graphPanel.getTopToolbar().items;
    +	
    +	// Hides the buttons which are only used if we have client-side storage
    +	if (!DiagramStore.isAvailable())
    +	{
    +		toolbarItems.get('saveButton').setVisible(false);
    +		toolbarItems.get('saveAsButton').setVisible(false);
    +	}
    +	
    +    // Updates the states of all buttons that require a selection
    +    var selectionListener = function()
    +    {
    +    	var selected = !graph.isSelectionEmpty();
    +    	
    +    	toolbarItems.get('cut').setDisabled(!selected);
    +    	toolbarItems.get('copy').setDisabled(!selected);
    +    	toolbarItems.get('delete').setDisabled(!selected);
    +    	toolbarItems.get('italic').setDisabled(!selected);
    +    	toolbarItems.get('bold').setDisabled(!selected);
    +    	toolbarItems.get('underline').setDisabled(!selected);
    +    	toolbarItems.get('fillcolor').setDisabled(!selected);
    +    	toolbarItems.get('fontcolor').setDisabled(!selected);
    +    	toolbarItems.get('linecolor').setDisabled(!selected);
    +    	toolbarItems.get('align').setDisabled(!selected);
    +    };
    +    
    +    graph.getSelectionModel().addListener(mxEvent.CHANGE, selectionListener);
    +
    +    // Updates the states of the undo/redo buttons in the toolbar
    +    var historyListener = function()
    +    {
    +    	toolbarItems.get('undo').setDisabled(!history.canUndo());
    +    	toolbarItems.get('redo').setDisabled(!history.canRedo());
    +    };
    +
    +	history.addListener(mxEvent.ADD, historyListener);
    +	history.addListener(mxEvent.UNDO, historyListener);
    +	history.addListener(mxEvent.REDO, historyListener);
    +	
    +	// Updates the button states once
    +	selectionListener();
    +	historyListener();
    +	
    +    // Installs outline in outlinePanel
    +	var outline = new mxOutline(graph, outlinePanel.body.dom);
    +	outlinePanel.body.dom.style.cursor = 'move';
    +	
    +    // Adds the entries into the library
    +    insertVertexTemplate(library, graph, 'Container', '../../images/swimlane.gif', 'swimlane', 200, 200, 'Container');
    +    insertVertexTemplate(library, graph, 'Icon', '../../images/rounded.gif', 'icon;image=../../images/wrench.png', 70, 70, "Icon");
    +    insertVertexTemplate(library, graph, 'Label', '../../images/rounded.gif', 'label;image=../../images/gear.png', 130, 50, "Label");
    +    insertVertexTemplate(library, graph, 'Rectangle', '../../images/rectangle.gif', null, 120, 50);
    +    insertVertexTemplate(library, graph, 'Rounded Rectangle', '../../images/rounded.gif', 'rounded=1', 120, 50);
    +    insertVertexTemplate(library, graph, 'Ellipse', '../../images/ellipse.gif', 'ellipse', 50, 50);
    +    insertVertexTemplate(library, graph, 'Double Ellipse', '../../images/doubleellipse.gif', 'ellipse;shape=doubleEllipse', 50, 50);
    +    insertVertexTemplate(library, graph, 'Triangle', '../../images/triangle.gif', 'triangle', 50, 70);
    +    insertVertexTemplate(library, graph, 'Rhombus', '../../images/rhombus.gif', 'rhombus', 50, 50);
    +	insertVertexTemplate(library, graph, 'Horizontal Line', '../../images/hline.gif', 'line', 120, 10);
    +    insertVertexTemplate(library, graph, 'Hexagon', '../../images/hexagon.gif', 'shape=hexagon', 90, 70);
    +    insertVertexTemplate(library, graph, 'Cylinder', '../../images/cylinder.gif', 'shape=cylinder', 70, 90);
    +    insertVertexTemplate(library, graph, 'Actor', '../../images/actor.gif', 'shape=actor', 70, 90);
    +    insertVertexTemplate(library, graph, 'Cloud', '../../images/cloud.gif', 'ellipse;shape=cloud', 90, 70);
    +
    +    insertImageTemplate(library, graph, 'Bell', '../../images/bell.png', false);
    +    insertImageTemplate(library, graph, 'Box', '../../images/box.png', false);
    +    insertImageTemplate(library, graph, 'Cube', '../../images/cube_green.png', false);
    +    insertImageTemplate(library, graph, 'User', '../../images/dude3.png', true);
    +    insertImageTemplate(library, graph, 'Earth', '../../images/earth.png', true);
    +    insertImageTemplate(library, graph, 'Gear', '../../images/gear.png', true);
    +    insertImageTemplate(library, graph, 'Home', '../../images/house.png', false);
    +    insertImageTemplate(library, graph, 'Package', '../../images/package.png', false);
    +    insertImageTemplate(library, graph, 'Printer', '../../images/printer.png', false);
    +    insertImageTemplate(library, graph, 'Server', '../../images/server.png', false);
    +    insertImageTemplate(library, graph, 'Workplace', '../../images/workplace.png', false);
    +    insertImageTemplate(library, graph, 'Wrench', '../../images/wrench.png', true);
    +
    +    insertSymbolTemplate(library, graph, 'Cancel', '../../images/symbols/cancel_end.png', false);
    +    insertSymbolTemplate(library, graph, 'Error', '../../images/symbols/error.png', false);
    +    insertSymbolTemplate(library, graph, 'Event', '../../images/symbols/event.png', false);
    +    insertSymbolTemplate(library, graph, 'Fork', '../../images/symbols/fork.png', true);
    +    insertSymbolTemplate(library, graph, 'Inclusive', '../../images/symbols/inclusive.png', true);
    +    insertSymbolTemplate(library, graph, 'Link', '../../images/symbols/link.png', false);
    +    insertSymbolTemplate(library, graph, 'Merge', '../../images/symbols/merge.png', true);
    +    insertSymbolTemplate(library, graph, 'Message', '../../images/symbols/message.png', false);
    +    insertSymbolTemplate(library, graph, 'Multiple', '../../images/symbols/multiple.png', false);
    +    insertSymbolTemplate(library, graph, 'Rule', '../../images/symbols/rule.png', false);
    +    insertSymbolTemplate(library, graph, 'Terminate', '../../images/symbols/terminate.png', false);
    +    insertSymbolTemplate(library, graph, 'Timer', '../../images/symbols/timer.png', false);
    +
    +	insertEdgeTemplate(library, graph, 'Straight', '../../images/straight.gif', 'straight', 100, 100);
    +	insertEdgeTemplate(library, graph, 'Horizontal Connector', '../../images/connect.gif', null, 100, 100);
    +    insertEdgeTemplate(library, graph, 'Vertical Connector', '../../images/vertical.gif', 'vertical', 100, 100);
    +    insertEdgeTemplate(library, graph, 'Entity Relation', '../../images/entity.gif', 'entity', 100, 100);
    +	insertEdgeTemplate(library, graph, 'Arrow', '../../images/arrow.gif', 'arrow', 100, 100);
    +
    +    // Overrides createGroupCell to set the group style for new groups to 'group'
    +    var previousCreateGroupCell = graph.createGroupCell;
    +    
    +    graph.createGroupCell = function()
    +    {
    +    	var group = previousCreateGroupCell.apply(this, arguments);
    +    	group.setStyle('group');
    +    	
    +    	return group;
    +    };
    +    
    +    
    +    // Connect preview
    +    graph.connectionHandler.createEdgeState = function(me)
    +	{
    +    	if (GraphEditor.edgeTemplate != null)
    +    	{
    +    		return graph.view.createState(GraphEditor.edgeTemplate);
    +    	}
    +    	
    +    	return null;
    +    };
    +
    +    graph.connectionHandler.factoryMethod = function()
    +    {
    +		if (GraphEditor.edgeTemplate != null)
    +		{
    +    		return graph.cloneCells([GraphEditor.edgeTemplate])[0];
    +    	}
    +		
    +		return null;
    +    };
    +
    +    // Uses the selected edge in the library as a template for new edges
    +    library.getSelectionModel().on('selectionchange', function(sm, node)
    +    {
    +    	if (node != null &&
    +    		node.attributes.cells != null)
    +    	{
    +    		var cell = node.attributes.cells[0];
    +    		
    +    		if (cell != null &&
    +    			graph.getModel().isEdge(cell))
    +    		{
    +    			GraphEditor.edgeTemplate = cell;
    +    		}
    +    	}
    +    });
    +
    +    // Updates the document title if the current root changes (drilling)
    +	var drillHandler = function(sender)
    +	{
    +		var model = graph.getModel();
    +		var cell = graph.getCurrentRoot();
    +		var title = '';
    +		
    +		while (cell != null &&
    +			  model.getParent(model.getParent(cell)) != null)
    +		{
    +			// Append each label of a valid root
    +			if (graph.isValidRoot(cell))
    +			{
    +				title = ' > ' +
    +				graph.convertValueToString(cell) + title;
    +			}
    +			
    +			cell = graph.getModel().getParent(cell);
    +		}
    +		
    +		document.title = 'Graph Editor' + title;
    +	};
    +		
    +	graph.getView().addListener(mxEvent.DOWN, drillHandler);
    +	graph.getView().addListener(mxEvent.UP, drillHandler);
    +
    +	// Transfer initial focus to graph container for keystroke handling
    +	graph.container.focus();
    +	    
    +    // Handles keystroke events
    +    var keyHandler = new mxKeyHandler(graph);
    +    
    +    // Ignores enter keystroke. Remove this line if you want the
    +    // enter keystroke to stop editing
    +    keyHandler.enter = function() {};
    +    
    +    keyHandler.bindKey(8, function()
    +    {
    +    	graph.foldCells(true);
    +    });
    +    
    +    keyHandler.bindKey(13, function()
    +    {
    +    	graph.foldCells(false);
    +    });
    +    
    +    keyHandler.bindKey(33, function()
    +    {
    +    	graph.exitGroup();
    +    });
    +    
    +    keyHandler.bindKey(34, function()
    +    {
    +    	graph.enterGroup();
    +    });
    +    
    +    keyHandler.bindKey(36, function()
    +    {
    +    	graph.home();
    +    });
    +
    +    keyHandler.bindKey(35, function()
    +    {
    +    	graph.refresh();
    +    });
    +    
    +    keyHandler.bindKey(37, function()
    +    {
    +    	graph.selectPreviousCell();
    +    });
    +        
    +    keyHandler.bindKey(38, function()
    +    {
    +    	graph.selectParentCell();
    +    });
    +
    +    keyHandler.bindKey(39, function()
    +    {
    +    	graph.selectNextCell();
    +    });
    +    
    +    keyHandler.bindKey(40, function()
    +    {
    +    	graph.selectChildCell();
    +    });
    +    
    +    keyHandler.bindKey(46, function()
    +    {
    +    	graph.removeCells();
    +    });
    +    
    +    keyHandler.bindKey(107, function()
    +    {
    +    	graph.zoomIn();
    +    });
    +    
    +    keyHandler.bindKey(109, function()
    +    {
    +    	graph.zoomOut();
    +    });
    +    
    +    keyHandler.bindKey(113, function()
    +    {
    +    	graph.startEditingAtCell();
    +    });
    +  
    +    keyHandler.bindControlKey(65, function()
    +    {
    +    	graph.selectAll();
    +    });
    +
    +    keyHandler.bindControlKey(89, function()
    +    {
    +    	history.redo();
    +    });
    +    
    +    keyHandler.bindControlKey(90, function()
    +    {
    +    	history.undo();
    +    });
    +    
    +    keyHandler.bindControlKey(88, function()
    +    {
    +    	mxClipboard.cut(graph);
    +    });
    +    
    +    keyHandler.bindControlKey(67, function()
    +    {
    +    	mxClipboard.copy(graph);
    +    });
    +    
    +    keyHandler.bindControlKey(86, function()
    +    {
    +    	mxClipboard.paste(graph);
    +    });
    +    
    +    keyHandler.bindControlKey(71, function()
    +    {
    +    	graph.setSelectionCell(graph.groupCells(null, 20));
    +    });
    +    
    +    keyHandler.bindControlKey(85, function()
    +    {
    +    	graph.setSelectionCells(graph.ungroupCells());
    +    });
    +}; // end of main
    +
    +function insertSymbolTemplate(panel, graph, name, icon, rhombus)
    +{
    +    var imagesNode = panel.symbols;
    +    var style = (rhombus) ? 'rhombusImage' : 'roundImage';
    +    return insertVertexTemplate(panel, graph, name, icon, style+';image='+icon, 50, 50, '', imagesNode);
    +};
    +
    +function insertImageTemplate(panel, graph, name, icon, round)
    +{
    +    var imagesNode = panel.images;
    +    var style = (round) ? 'roundImage' : 'image';
    +    return insertVertexTemplate(panel, graph, name, icon, style+';image='+icon, 50, 50, name, imagesNode);
    +};
    +
    +function insertVertexTemplate(panel, graph, name, icon, style, width, height, value, parentNode)
    +{
    +		var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0, width, height), style)];
    +		cells[0].vertex = true;
    +		
    +		var funct = function(graph, evt, target, x, y)
    +		{
    +			cells = graph.getImportableCells(cells);
    +			
    +			if (cells.length > 0)
    +			{
    +				var validDropTarget = (target != null) ?
    +					graph.isValidDropTarget(target, cells, evt) : false;
    +				var select = null;
    +				
    +				if (target != null &&
    +					!validDropTarget &&
    +					graph.getModel().getChildCount(target) == 0 &&
    +					graph.getModel().isVertex(target) == cells[0].vertex)
    +				{
    +					graph.getModel().setStyle(target, style);
    +					select = [target];
    +				}
    +				else
    +				{
    +					if (target != null &&
    +						!validDropTarget)
    +					{
    +						target = null;
    +					}
    +					
    +					// Splits the target edge or inserts into target group
    +					if (graph.isSplitEnabled() && graph.isSplitTarget(target, cells, evt))
    +					{
    +						graph.splitEdge(target, cells, null, x, y);
    +						select = cells;
    +					}
    +					else
    +					{
    +						cells = graph.getImportableCells(cells);
    +						
    +						if (cells.length > 0)
    +						{
    +							select = graph.importCells(cells, x, y, target);
    +						}
    +					}
    +				}
    +				
    +				if (select != null && select.length > 0)
    +				{
    +					graph.scrollCellToVisible(select[0]);
    +					graph.setSelectionCells(select);
    +				}
    +			}
    +		};
    +		
    +		// Small hack to install the drag listener on the node's DOM element
    +		// after it has been created. The DOM node does not exist if the parent
    +		// is not expanded.
    +		var node = panel.addTemplate(name, icon, parentNode, cells);
    +		var installDrag = function(expandedNode)
    +		{
    +			if (node.ui.elNode != null)
    +			{
    +				// Creates the element that is being shown while the drag is in progress
    +				var dragPreview = document.createElement('div');
    +				dragPreview.style.border = 'dashed black 1px';
    +				dragPreview.style.width = width+'px';
    +				dragPreview.style.height = height+'px';
    +				
    +				var ds = mxUtils.makeDraggable(node.ui.elNode, graph, funct, dragPreview, 0, 0,
    +						graph.autoscroll, true);
    +				ds.isGuidesEnabled = function()
    +				{
    +					return graph.graphHandler.guidesEnabled;
    +				};
    +			}
    +		};
    +		
    +		if (!node.parentNode.isExpanded())
    +		{
    +			panel.on('expandnode', installDrag);
    +		}
    +		else
    +		{
    +			installDrag(node.parentNode);
    +		}
    +		
    +		return node;
    +};
    +
    +function insertEdgeTemplate(panel, graph, name, icon, style, width, height, value, parentNode)
    +{
    +		var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0, width, height), style)];
    +		cells[0].geometry.setTerminalPoint(new mxPoint(0, height), true);
    +		cells[0].geometry.setTerminalPoint(new mxPoint(width, 0), false);
    +		cells[0].edge = true;
    +		
    +		var funct = function(graph, evt, target)
    +		{
    +			cells = graph.getImportableCells(cells);
    +			
    +			if (cells.length > 0)
    +			{
    +				var validDropTarget = (target != null) ?
    +					graph.isValidDropTarget(target, cells, evt) : false;
    +				var select = null;
    +				
    +				if (target != null &&
    +					!validDropTarget)
    +				{
    +					target = null;
    +				}
    +				
    +				var pt = graph.getPointForEvent(evt);
    +				var scale = graph.view.scale;
    +				
    +				pt.x -= graph.snap(width / 2);
    +				pt.y -= graph.snap(height / 2);
    +				
    +				select = graph.importCells(cells, pt.x, pt.y, target);
    +				
    +				// Uses this new cell as a template for all new edges
    +				GraphEditor.edgeTemplate = select[0];
    +				
    +				graph.scrollCellToVisible(select[0]);
    +				graph.setSelectionCells(select);
    +			}
    +		};
    +		
    +		// Small hack to install the drag listener on the node's DOM element
    +		// after it has been created. The DOM node does not exist if the parent
    +		// is not expanded.
    +		var node = panel.addTemplate(name, icon, parentNode, cells);
    +		var installDrag = function(expandedNode)
    +		{
    +			if (node.ui.elNode != null)
    +			{
    +				// Creates the element that is being shown while the drag is in progress
    +				var dragPreview = document.createElement('div');
    +				dragPreview.style.border = 'dashed black 1px';
    +				dragPreview.style.width = width+'px';
    +				dragPreview.style.height = height+'px';
    +				
    +				mxUtils.makeDraggable(node.ui.elNode, graph, funct, dragPreview, -width / 2, -height / 2,
    +						graph.autoscroll, true);
    +			}
    +		};
    +		
    +		if (!node.parentNode.isExpanded())
    +		{
    +			panel.on('expandnode', installDrag);
    +		}
    +		else
    +		{
    +			installDrag(node.parentNode);
    +		}
    +		
    +		return node;
    +};
    +
    +// Defines a global functionality for displaying short information messages
    +Ext.example = function(){
    +    var msgCt;
    +
    +    function createBox(t, s){
    +        return ['<div class="msg">',
    +                '<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>',
    +                '<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>', t, '</h3>', s, '</div></div></div>',
    +                '<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',
    +                '</div>'].join('');
    +    }
    +    return {
    +        msg : function(title, format){
    +            if(!msgCt){
    +                msgCt = Ext.DomHelper.append(document.body, {id:'msg-div'}, true);
    +            }
    +            msgCt.alignTo(document, 't-t');
    +            var s = String.format.apply(String, Array.prototype.slice.call(arguments, 1));
    +            var m = Ext.DomHelper.append(msgCt, {html:createBox(title, s)}, true);
    +            m.slideIn('t').pause(1).ghost("t", {remove:true});
    +        }
    +    };
    +}();
    diff --git a/javascript/examples/editors/archive/grapheditor/js/LibraryPanel.js b/javascript/examples/editors/archive/grapheditor/js/LibraryPanel.js
    new file mode 100644
    index 000000000..120ce625a
    --- /dev/null
    +++ b/javascript/examples/editors/archive/grapheditor/js/LibraryPanel.js
    @@ -0,0 +1,94 @@
    +/*
    + * $Id: LibraryPanel.js,v 1.3 2012-03-22 09:22:39 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +LibraryPanel = function()
    +{
    +    LibraryPanel.superclass.constructor.call(this,
    +    {
    +    	title: 'Library',
    +        region:'center',
    +        split:true,
    +        rootVisible:false,
    +        lines:false,
    +        autoScroll:true,
    +        root: new Ext.tree.TreeNode('Graph Editor'),
    +        collapseFirst:false
    +    });
    +
    +	// Adds 3 main categories for shapes and stores a reference to the treenode
    +    // under templates, images and symbols respectively
    +    this.templates = this.root.appendChild(
    +        new Ext.tree.TreeNode({
    +            text:'Shapes',
    +            cls:'feeds-node',
    +            expanded:true
    +        })
    +    );
    +
    +    this.images = this.root.appendChild(
    +        new Ext.tree.TreeNode({
    +            text:'Images',
    +            cls:'feeds-node',
    +            expanded:false
    +        })
    +    );
    +    
    +    this.symbols = this.root.appendChild(
    +        new Ext.tree.TreeNode({
    +            text:'Symbols',
    +            cls:'feeds-node',
    +            expanded:false
    +        })
    +    );
    +};
    +
    +Ext.extend(LibraryPanel, Ext.tree.TreePanel, {
    +
    +    addTemplate : function(name, icon, parentNode, cells)
    +    {
    +        var exists = this.getNodeById(name);
    +        
    +        if(exists)
    +        {
    +            if(!inactive)
    +            {
    +                exists.select();
    +                exists.ui.highlight();
    +            }
    +            
    +            return;
    +        }
    +
    +        var node = new Ext.tree.TreeNode(
    +        {
    +        	text: name,
    +            icon: icon,
    +            leaf: true,
    +            cls: 'feed',
    +            cells: cells,
    +            id: name
    +        });
    +        
    +        if (parentNode == null)
    +        {
    +        	parentNode = this.templates;
    +        }
    +
    +        parentNode.appendChild(node);
    +        
    +        return node;
    +    },
    +
    +    // prevent the default context menu when you miss the node
    +    afterRender : function()
    +    {
    +        LibraryPanel.superclass.afterRender.call(this);
    +        /*
    +        this.el.on('contextmenu', function(e)
    +        {
    +            e.preventDefault();
    +        });
    +        */
    +    }
    +});
    \ No newline at end of file
    diff --git a/javascript/examples/editors/archive/grapheditor/js/MainPanel.js b/javascript/examples/editors/archive/grapheditor/js/MainPanel.js
    new file mode 100644
    index 000000000..5eb1e94bb
    --- /dev/null
    +++ b/javascript/examples/editors/archive/grapheditor/js/MainPanel.js
    @@ -0,0 +1,2283 @@
    +/*
    + * $Id: MainPanel.js,v 1.1 2012-03-06 12:36:45 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +MainPanel = function(graph, history)
    +{
    +	var executeLayout = function(layout, animate, ignoreChildCount)
    +	{
    +		var cell = graph.getSelectionCell();
    +		
    +		if (cell == null ||
    +			(!ignoreChildCount &&
    +			graph.getModel().getChildCount(cell) == 0))
    +		{
    +			cell = graph.getDefaultParent();
    +		}
    +
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			layout.execute(cell);
    +		}
    +		catch (e)
    +		{
    +			throw e;
    +		}
    +		finally
    +		{
    +			// Animates the changes in the graph model except
    +			// for Camino, where animation is too slow
    +			if (animate && navigator.userAgent.indexOf('Camino') < 0)
    +			{
    +				// New API for animating graph layout results asynchronously
    +				var morph = new mxMorphing(graph);
    +				morph.addListener(mxEvent.DONE, function()
    +				{
    +					graph.getModel().endUpdate();
    +				});
    +				
    +				morph.startAnimation();
    +			}
    +			else
    +			{
    +				graph.getModel().endUpdate();
    +			}
    +		}
    +        
    +	};
    +	
    +	// Defines various color menus for different colors
    +    var fillColorMenu = new Ext.menu.ColorMenu(
    +    {
    +    	items: [
    +    	{
    +    		text: 'None',
    +    		handler: function()
    +    		{
    +    			graph.setCellStyles(mxConstants.STYLE_FILLCOLOR, mxConstants.NONE);
    +    		}
    +    	},
    +    	'-'
    +    	],
    +        handler : function(cm, color)
    +        {
    +    		if (typeof(color) == "string")
    +    		{
    +				graph.setCellStyles(mxConstants.STYLE_FILLCOLOR, '#'+color);
    +			}
    +        }
    +    });
    +
    +    var gradientColorMenu = new Ext.menu.ColorMenu(
    +    {
    +		items: [
    +        {
    +            text: 'North',
    +            handler: function()
    +            {
    +                graph.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION, mxConstants.DIRECTION_NORTH);
    +            }
    +        },
    +        {
    +            text: 'East',
    +            handler: function()
    +            {
    +                graph.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION, mxConstants.DIRECTION_EAST);
    +            }
    +        },
    +        {
    +            text: 'South',
    +            handler: function()
    +            {
    +                graph.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION, mxConstants.DIRECTION_SOUTH);
    +            }
    +        },
    +        {
    +            text: 'West',
    +            handler: function()
    +            {
    +                graph.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION, mxConstants.DIRECTION_WEST);
    +            }
    +        },
    +        '-',
    +		{
    +			text: 'None',
    +			handler: function()
    +			{
    +        		graph.setCellStyles(mxConstants.STYLE_GRADIENTCOLOR, mxConstants.NONE);
    +        	}
    +		},
    +		'-'
    +		],
    +        handler : function(cm, color)
    +        {
    +    		if (typeof(color) == "string")
    +    		{
    +    			graph.setCellStyles(mxConstants.STYLE_GRADIENTCOLOR, '#'+color);
    +			}
    +        }
    +    });
    +
    +    var fontColorMenu = new Ext.menu.ColorMenu(
    +    {
    +    	items: [
    +    	{
    +    		text: 'None',
    +    		handler: function()
    +    		{
    +    			graph.setCellStyles(mxConstants.STYLE_FONTCOLOR, mxConstants.NONE);
    +    		}
    +    	},
    +    	'-'
    +    	],
    +        handler : function(cm, color)
    +        {
    +    		if (typeof(color) == "string")
    +    		{
    +    			graph.setCellStyles(mxConstants.STYLE_FONTCOLOR, '#'+color);
    +			}
    +        }
    +    });
    +
    +    var lineColorMenu = new Ext.menu.ColorMenu(
    +    {
    +    	items: [
    +		{
    +			text: 'None',
    +			handler: function()
    +			{
    +				graph.setCellStyles(mxConstants.STYLE_STROKECOLOR, mxConstants.NONE);
    +			}
    +		},
    +		'-'
    +		],
    +        handler : function(cm, color)
    +        {
    +    		if (typeof(color) == "string")
    +    		{
    +				graph.setCellStyles(mxConstants.STYLE_STROKECOLOR, '#'+color);
    +			}
    +        }
    +    });
    +
    +    var labelBackgroundMenu = new Ext.menu.ColorMenu(
    +    {
    +		items: [
    +		{
    +			text: 'None',
    +			handler: function()
    +			{
    +				graph.setCellStyles(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR, mxConstants.NONE);
    +			}
    +		},
    +		'-'
    +		],
    +        handler : function(cm, color)
    +        {
    +    		if (typeof(color) == "string")
    +    		{
    +    			graph.setCellStyles(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR, '#'+color);
    +    		}
    +        }
    +    });
    +
    +    var labelBorderMenu = new Ext.menu.ColorMenu(
    +    {
    +		items: [
    +		{
    +			text: 'None',
    +			handler: function()
    +			{
    +				graph.setCellStyles(mxConstants.STYLE_LABEL_BORDERCOLOR, mxConstants.NONE);
    +			}
    +		},
    +		'-'
    +		],
    +        handler : function(cm, color)
    +        {
    +    		if (typeof(color) == "string")
    +    		{
    +    			graph.setCellStyles(mxConstants.STYLE_LABEL_BORDERCOLOR, '#'+color);
    +			}
    +        }
    +    });
    +    
    +    // Defines the font family menu
    +    var fonts = new Ext.data.SimpleStore(
    +    {
    +        fields: ['label', 'font'],
    +        data : [['Helvetica', 'Helvetica'], ['Verdana', 'Verdana'],
    +        	['Times New Roman', 'Times New Roman'], ['Garamond', 'Garamond'],
    +        	['Courier New', 'Courier New']]
    +    });
    +    
    +    var fontCombo = new Ext.form.ComboBox(
    +    {
    +        store: fonts,
    +        displayField:'label',
    +        mode: 'local',
    +        width:120,
    +        triggerAction: 'all',
    +        emptyText:'Select a font...',
    +        selectOnFocus:true,
    +        onSelect: function(entry)
    +        {
    +        	if (entry != null)
    +        	{
    +				graph.setCellStyles(mxConstants.STYLE_FONTFAMILY, entry.data.font);
    +				this.collapse();
    +        	}
    +        }
    +    });
    +    
    +	// Handles typing a font name and pressing enter
    +    fontCombo.on('specialkey', function(field, evt)
    +    {
    +    	if (evt.keyCode == 10 ||
    +    		evt.keyCode == 13)
    +    	{
    +    		var family = field.getValue();
    +    		
    +    		if (family != null &&
    +    			family.length > 0)
    +    		{
    +    			graph.setCellStyles(mxConstants.STYLE_FONTFAMILY, family);
    +    		}
    +    	}
    +    });
    +
    +    // Defines the font size menu
    +    var sizes = new Ext.data.SimpleStore({
    +        fields: ['label', 'size'],
    +        data : [['6pt', 6], ['8pt', 8], ['9pt', 9], ['10pt', 10], ['12pt', 12],
    +        	['14pt', 14], ['18pt', 18], ['24pt', 24], ['30pt', 30], ['36pt', 36],
    +        	['48pt', 48],['60pt', 60]]
    +    });
    +    
    +    var sizeCombo = new Ext.form.ComboBox(
    +    {
    +        store: sizes,
    +        displayField:'label',
    +        mode: 'local',
    +        width:50,
    +        triggerAction: 'all',
    +        emptyText:'12pt',
    +        selectOnFocus:true,
    +        onSelect: function(entry)
    +        {
    +        	if (entry != null)
    +        	{
    +				graph.setCellStyles(mxConstants.STYLE_FONTSIZE, entry.data.size);
    +				this.collapse();
    +        	}
    +        }
    +    });
    +    
    +	// Handles typing a font size and pressing enter
    +    sizeCombo.on('specialkey', function(field, evt)
    +    {
    +    	if (evt.keyCode == 10 ||
    +    		evt.keyCode == 13)
    +    	{
    +    		var size = parseInt(field.getValue());
    +    		
    +    		if (!isNaN(size) &&
    +    			size > 0)
    +    		{
    +    			graph.setCellStyles(mxConstants.STYLE_FONTSIZE, size);
    +    		}
    +    	}
    +    });
    +    
    +    var sizeCombo = new Ext.form.ComboBox(
    +    {
    +        store: sizes,
    +        displayField:'label',
    +        mode: 'local',
    +        width:50,
    +        triggerAction: 'all',
    +        emptyText:'12pt',
    +        selectOnFocus:true,
    +        onSelect: function(entry)
    +        {
    +        	if (entry != null)
    +        	{
    +				graph.setCellStyles(mxConstants.STYLE_FONTSIZE, entry.data.size);
    +				this.collapse();
    +        	}
    +        }
    +    });
    +    
    +    // Simplified file and modified state handling
    +    this.filename = null;
    +    this.modified = false;
    +
    +	var updateTitle = mxUtils.bind(this, function()
    +	{
    +		this.setTitle((this.filename || 'New Diagram') + ((this.modified) ? ' *' : '') + ' ');
    +	});
    +    
    +	var changeHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		this.modified = true;
    +		updateTitle();
    +	});
    +	
    +	graph.getModel().addListener(mxEvent.CHANGE, changeHandler);
    +    
    +    this.saveDiagram = function(forceDialog)
    +    {
    +    	var name = this.filename;
    +    	
    +    	if (name == null ||
    +    		forceDialog)
    +    	{
    +        	var defaultValue = this.filename;
    +        	
    +        	if (defaultValue == null)
    +        	{
    +        		defaultValue = "MyDiagram";
    +	        	var current = defaultValue;
    +	        	
    +	        	// Finds unused filename
    +	        	var i = 2;
    +	        	
    +	        	while (DiagramStore.get(current) != null)
    +	        	{
    +	        		current = defaultValue + i++;
    +	        	}
    +	        	
    +	        	defaultValue = current;
    +        	}
    +    		
    +    		do
    +    		{
    +	    		name = mxUtils.prompt('Enter filename', defaultValue);
    +	    		
    +	    		if (name != null)
    +	    		{
    +		    		if (name.length > 0)
    +		    		{
    +		    			if (name != this.filename &&
    +		    				DiagramStore.get(name) != null)
    +		    			{
    +		    				alert('File exists, please choose a different name');
    +		    				defaultValue = name;
    +		    				name = '';
    +		    			}
    +		    		}
    +		    		else
    +		    		{
    +		    			alert('Please choose a name');
    +		    		}
    +	    		}
    +    		}
    +    		while (name != null && name.length == 0);
    +    	}
    +    	
    +    	if (name != null)
    +    	{
    +    		var enc = new mxCodec(mxUtils.createXmlDocument());
    +			var node = enc.encode(graph.getModel());
    +			var xml = mxUtils.getXml(node);
    +			DiagramStore.put(name, xml);
    +			this.filename = name;
    +			this.modified = false;
    +			updateTitle();
    +			mxUtils.alert('Saved "'+name+'": '+xml.length+' byte(s)');
    +    	}
    +    	else
    +    	{
    +    		mxUtils.alert('Not saved');
    +    	}
    +    };
    +    
    +    this.openDiagram = function(name)
    +    {
    +    	if (!this.modified ||
    +    		mxUtils.confirm('Lose changes?'))
    +   		{
    +			var xml = DiagramStore.get(name);
    +			
    +			if (xml != null && xml.length > 0)
    +			{
    +				var doc = mxUtils.parseXml(xml); 
    +				var dec = new mxCodec(doc); 
    +				dec.decode(doc.documentElement, graph.getModel());
    +				history.clear();
    +				this.filename = name;
    +				this.modified = false;
    +				updateTitle();
    +				mxUtils.alert('Opened "'+name+'": '+xml.length+' byte(s)');
    +			}
    +   		}
    +    };
    +
    +    this.newDiagram = function()
    +    {
    +    	if (!this.modified ||
    +    		mxUtils.confirm('Lose changes?'))
    +   		{
    +	    	var cell = new mxCell();
    +	    	cell.insert(new mxCell());
    +	    	graph.getModel().setRoot(cell);
    +	    	history.clear();
    +	    	this.filename = null;
    +			this.modified = false;
    +	    	updateTitle();
    +   		}
    +    };
    +
    +	this.graphPanel = new Ext.Panel(
    +    {
    +    	region: 'center',
    +    	border:false,
    +        tbar:[     
    +        {
    +            text:'',
    +            iconCls: 'new-icon',
    +            tooltip: 'New Diagram',
    +            handler: function()
    +            {
    +        		this.newDiagram();
    +            },
    +            scope:this
    +        },
    +        {
    +        	id: 'saveButton',
    +            text:'',
    +            iconCls: 'save-icon',
    +            tooltip: 'Save Diagram',
    +            handler: function()
    +            {
    +        		this.saveDiagram();
    +            },
    +            scope:this
    +        },
    +        {
    +        	id: 'saveAsButton',
    +            text:'',
    +            iconCls: 'saveas-icon',
    +            tooltip: 'Save Diagram As',
    +            handler: function()
    +            {
    +        		this.saveDiagram(true);
    +            },
    +            scope:this
    +        },
    +        '-',
    +        {
    +        	id: 'print',
    +            text:'',
    +            iconCls: 'print-icon',
    +            tooltip: 'Print Preview',
    +            handler: function()
    +            {
    +        		var preview = new mxPrintPreview(graph);
    +        		preview.autoOrigin = false;
    +        		preview.open();
    +            },
    +            scope:this
    +        },
    +        {
    +        	id: 'posterprint',
    +            text:'',
    +            iconCls: 'press-icon',
    +            tooltip: 'Poster Print Preview',
    +            handler: function()
    +            {
    +	        	try
    +	        	{
    +	        		var pageCount = mxUtils.prompt('Enter maximum page count', '1');
    +					
    +					if (pageCount != null)
    +					{
    +						var scale = mxUtils.getScaleForPageCount(pageCount, graph);
    +						var preview = new mxPrintPreview(graph, scale);
    +						preview.open();
    +					}
    +	        	}
    +	        	catch (e)
    +	        	{
    +	        		// ignore
    +	        	}
    +            },
    +            scope:this
    +        },
    +        {
    +        	id: 'view',
    +            text:'',
    +            iconCls: 'preview-icon',
    +            tooltip: 'Show',
    +            handler: function()
    +            {
    +        		mxUtils.show(graph, null, 10, 10);
    +            },
    +            scope:this
    +        },
    +        '-',
    +        {
    +        	id: 'cut',
    +            text:'',
    +            iconCls: 'cut-icon',
    +            tooltip: 'Cut',
    +            handler: function()
    +            {
    +        		mxClipboard.cut(graph);
    +        	},
    +            scope:this
    +        },{
    +       		id: 'copy',
    +            text:'',
    +            iconCls: 'copy-icon',
    +            tooltip: 'Copy',
    +            handler: function()
    +            {
    +        		mxClipboard.copy(graph);
    +        	},
    +            scope:this
    +        },{
    +            text:'',
    +            iconCls: 'paste-icon',
    +            tooltip: 'Paste',
    +            handler: function()
    +            {
    +            	mxClipboard.paste(graph);
    +            },
    +            scope:this
    +        },
    +        '-',
    +        {
    +       		id: 'delete',
    +            text:'',
    +            iconCls: 'delete-icon',
    +            tooltip: 'Delete',
    +            handler: function()
    +            {
    +        		graph.removeCells();
    +        	},
    +            scope:this
    +        },
    +        '-',
    +        {
    +        	id: 'undo',
    +            text:'',
    +            iconCls: 'undo-icon',
    +            tooltip: 'Undo',
    +            handler: function()
    +            {
    +            	history.undo();
    +            },
    +            scope:this
    +        },{
    +        	id: 'redo',
    +            text:'',
    +            iconCls: 'redo-icon',
    +            tooltip: 'Redo',
    +            handler: function()
    +            {
    +        		history.redo();
    +            },
    +            scope:this
    +        },
    +        '-',
    +        fontCombo,
    +        ' ',
    +        sizeCombo,
    +        '-',
    +		{
    +			id: 'bold',
    +            text: '',
    +            iconCls:'bold-icon',
    +            tooltip: 'Bold',
    +            handler: function()
    +            {
    +        		graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, mxConstants.FONT_BOLD);
    +        	},
    +            scope:this
    +        },
    +		{
    +			id: 'italic',
    +            text: '',
    +            tooltip: 'Italic',
    +            iconCls:'italic-icon',
    +            handler: function()
    +            {
    +            	graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, mxConstants.FONT_ITALIC);
    +            },
    +            scope:this
    +        },
    +		{
    +			id: 'underline',
    +            text: '',
    +            tooltip: 'Underline',
    +            iconCls:'underline-icon',
    +            handler: function()
    +            {
    +        		graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, mxConstants.FONT_UNDERLINE);
    +        	},
    +            scope:this
    +        },
    +        '-',
    +        {
    +            id: 'align',
    +            text:'',
    +            iconCls: 'left-icon',
    +            tooltip: 'Text Alignment',
    +            handler: function() { },
    +            menu:
    +            {
    +                id:'reading-menu',
    +                cls:'reading-menu',
    +                items: [
    +                {
    +                    text:'Left',
    +                    checked:false,
    +                    group:'rp-group',
    +                    scope:this,
    +                    iconCls:'left-icon',
    +                    handler: function()
    +                    {
    +                		graph.setCellStyles(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_LEFT);
    +                	}
    +                },
    +                {
    +                    text:'Center',
    +                    checked:true,
    +                    group:'rp-group',
    +                    scope:this,
    +                    iconCls:'center-icon',
    +                    handler: function()
    +                    {
    +                		graph.setCellStyles(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER);
    +                	}
    +                },
    +                {
    +                    text:'Right',
    +                    checked:false,
    +                    group:'rp-group',
    +                    scope:this,
    +                    iconCls:'right-icon',
    +                    handler: function()
    +                    {
    +                		graph.setCellStyles(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_RIGHT);
    +                	}
    +                },
    +                '-',
    +                {
    +                    text:'Top',
    +                    checked:false,
    +                    group:'vrp-group',
    +                    scope:this,
    +                    iconCls:'top-icon',
    +                    handler: function()
    +                    {
    +                		graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_TOP);
    +                	}
    +                },
    +                {
    +                    text:'Middle',
    +                    checked:true,
    +                    group:'vrp-group',
    +                    scope:this,
    +                    iconCls:'middle-icon',
    +                    handler: function()
    +                    {
    +                		graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE);
    +                	}
    +                },
    +                {
    +                    text:'Bottom',
    +                    checked:false,
    +                    group:'vrp-group',
    +                    scope:this,
    +                    iconCls:'bottom-icon',
    +                    handler: function()
    +                    {
    +                		graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_BOTTOM);
    +                    }
    +                }]
    +            }
    +        },
    +        '-',
    +		{
    +			id: 'fontcolor',
    +            text: '',
    +            tooltip: 'Fontcolor',
    +            iconCls:'fontcolor-icon',
    +            menu: fontColorMenu // <-- submenu by reference
    +        },
    +		{
    +			id: 'linecolor',
    +            text: '',
    +            tooltip: 'Linecolor',
    +            iconCls:'linecolor-icon',
    +            menu: lineColorMenu // <-- submenu by reference
    +        },
    +		{
    +			id: 'fillcolor',
    +            text: '',
    +            tooltip: 'Fillcolor',
    +            iconCls:'fillcolor-icon',
    +            menu: fillColorMenu // <-- submenu by reference
    +        }],
    +        bbar:[
    +        {
    +            text:'Zoom',
    +            iconCls: 'zoom-icon',
    +            handler: function(menu) { },
    +            menu:
    +            {
    +                items: [
    +                {
    +		            text:'Custom',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		            	var value = mxUtils.prompt('Enter zoom (%)', parseInt(graph.getView().getScale() * 100));
    +										            	
    +		            	if (value != null)
    +		            	{
    +			            	graph.getView().setScale(parseInt(value) / 100);
    +			            }
    +		            }
    +		        },
    +		        '-',
    +                {
    +		            text:'400%',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +						graph.getView().setScale(4);
    +		            }
    +		        },
    +                {
    +		            text:'200%',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +						graph.getView().setScale(2);
    +		            }
    +		        },
    +                {
    +		            text:'150%',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +						graph.getView().setScale(1.5);
    +		            }
    +		        },
    +		        {
    +		            text:'100%',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		                graph.getView().setScale(1);
    +		            }
    +		        },
    +                {
    +		            text:'75%',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +						graph.getView().setScale(0.75);
    +		            }
    +		        },
    +                {
    +		            text:'50%',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +						graph.getView().setScale(0.5);
    +		            }
    +		        },
    +                {
    +		            text:'25%',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +						graph.getView().setScale(0.25);
    +		            }
    +		        },
    +                '-',
    +                {
    +		            text:'Zoom In',
    +		            iconCls: 'zoomin-icon',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +						graph.zoomIn();
    +		            }
    +		        },
    +		        {
    +		            text:'Zoom Out',
    +		            iconCls: 'zoomout-icon',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		                graph.zoomOut();
    +		            }
    +		        },
    +		        '-',
    +		        {
    +		            text:'Actual Size',
    +		            iconCls: 'zoomactual-icon',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		                graph.zoomActual();
    +		            }
    +		        },
    +		        {
    +		            text:'Fit Window',
    +		            iconCls: 'fit-icon',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		                graph.fit();
    +		            }
    +		        }]
    +            }
    +        },
    +        '-',
    +        {
    +            text:'Layout',
    +            iconCls: 'diagram-icon',
    +            handler: function(menu) { },
    +            menu:
    +            {
    +                items: [
    +		        {
    +		            text:'Vertical Partition Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		        		executeLayout(new mxPartitionLayout(graph, false));
    +		            }
    +		        },
    +		        {
    +		            text:'Horizontal Partition Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +	        			executeLayout(new mxPartitionLayout(graph));
    +		            }
    +		        },
    +		        '-',
    +		        {
    +		            text:'Vertical Stack Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		                var layout = new mxStackLayout(graph, false);
    +		                layout.fill = true;
    +		                executeLayout(layout);
    +		            }
    +		        },
    +		        {
    +		            text:'Horizontal Stack Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		                var layout = new mxStackLayout(graph, false);
    +		                layout.fill = true;
    +		                executeLayout(layout);
    +		            }
    +		        },
    +		        '-',
    +		        {
    +		            text:'Place Edge Labels',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		        		executeLayout(new mxEdgeLabelLayout(graph));
    +		            }
    +		        },
    +		        {
    +		            text:'Parallel Edges',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		        		executeLayout(new mxParallelEdgeLayout(graph));
    +		            }
    +		        },
    +		        '-',
    +		        {
    +		            text:'Vertical Hierarchical Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +	        			var layout = new mxHierarchicalLayout(graph);
    +		        		executeLayout(layout, true);
    +		            }
    +		        },
    +		        {
    +		            text:'Horizontal Hierarchical Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		        		var layout = new mxHierarchicalLayout(graph,
    +	        				mxConstants.DIRECTION_WEST);
    +		        		executeLayout(layout, true);
    +		            }
    +		        },
    +		        '-',
    +		        {
    +		            text:'Vertical Tree Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		        		var layout = new mxCompactTreeLayout(graph, false);
    +		        		executeLayout(layout, true, true);
    +		            }
    +		        },
    +		        {
    +		            text:'Horizontal Tree Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		        		var layout = new mxCompactTreeLayout(graph);
    +		        		executeLayout(layout, true, true);
    +		            }
    +		        },
    +		        '-',
    +		        {
    +		            text:'Organic Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		                var layout = new mxFastOrganicLayout(graph);
    +		                layout.forceConstant = 80;
    +		        		executeLayout(layout, true);
    +		            }
    +		        },
    +		        {
    +		            text:'Circle Layout',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		        		executeLayout(new mxCircleLayout(graph), true);
    +		            }
    +		        }]
    +            }
    +        },
    +        '-',
    +        {
    +            text:'Options',
    +            iconCls: 'preferences-icon',
    +            handler: function(menu) { },
    +            menu:
    +            {
    +                items: [
    +                {
    +                    text:'Grid',
    +                    handler: function(menu) { },
    +                    menu:
    +                    {
    +                    	items: [
    +        		        {
    +        		            text:'Grid Size',
    +        		            scope:this,
    +        		            handler: function()
    +        		            {
    +        						var value = mxUtils.prompt('Enter Grid Size (Pixels)', graph.gridSize);
    +        										            	
    +        		            	if (value != null)
    +        		            	{
    +        			            	graph.gridSize = value;
    +        			            }
    +        		            }
    +        		        },
    +        		        {
    +        		            checked: true,
    +        		            text:'Grid Enabled',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		                graph.setGridEnabled(checked);
    +        		            }
    +        		        }
    +        		        ]
    +                    }
    +                },
    +                {
    +	                text:'Stylesheet',
    +	                handler: function(menu) { },
    +	                menu:
    +	                {
    +	                	items: [
    +	                	{
    +				            text:'Basic Style',
    +				            scope:this,
    +				            handler: function(item)
    +				            {
    +							    var node = mxUtils.load('resources/basic-style.xml').getDocumentElement();
    +								var dec = new mxCodec(node.ownerDocument);
    +								dec.decode(node, graph.getStylesheet());    
    +								graph.refresh();
    +				            }
    +				        },
    +				        {
    +				            text:'Default Style',
    +				            scope:this,
    +				            handler: function(item)
    +				            {
    +							    var node = mxUtils.load('resources/default-style.xml').getDocumentElement();
    +								var dec = new mxCodec(node.ownerDocument);
    +								dec.decode(node, graph.getStylesheet());    
    +								graph.refresh();
    +				            }
    +				        }]
    +	                }
    +                },
    +                {
    +                    text:'Labels',
    +                    handler: function(menu) { },
    +                    menu:
    +                    {
    +                    	items: [
    +        		        {
    +        		            checked: true,
    +        		            text:'Show Labels',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		            	graph.labelsVisible = checked;
    +        		            	graph.refresh();
    +        		            }
    +        		        },
    +        		        {
    +        		            checked: true,
    +        		            text:'Move Edge Labels',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		            	graph.edgeLabelsMovable = checked;
    +        		            }
    +        		        },
    +        		        {
    +        		            checked: false,
    +        		            text:'Move Vertex Labels',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		           		graph.vertexLabelsMovable = checked;
    +        		            }
    +        		        },
    +        		        '-',
    +        		        {
    +        		            checked: false,
    +        		            text:'HTML Labels',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		           		graph.setHtmlLabels(checked);
    +        		           		graph.refresh();
    +        		            }
    +        		        }
    +            	        ]
    +                    }
    +                },
    +                '-',
    +                {
    +                    text:'Connections',
    +                    handler: function(menu) { },
    +                    menu:
    +                    {
    +                    	items: [
    +                        {
    +        		            checked: true,
    +        		            text:'Connectable',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		                graph.setConnectable(checked);
    +        		            }
    +        		        },
    +        		        {
    +        		            checked: false,
    +        		            text:'Connectable Edges',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		                graph.setConnectableEdges(checked);
    +        		            }
    +        		        },
    +        		        '-',
    +                        {
    +        		            checked: true,
    +        		            text:'Create Target',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		                graph.connectionHandler.setCreateTarget(checked);
    +        		            }
    +        		        },
    +        		        {
    +        		            checked: true,
    +        		            text:'Disconnect On Move',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		                graph.setDisconnectOnMove(checked);
    +        		            }
    +        		        },
    +        		        '-',
    +        		        {
    +        		        	checked: false,
    +        		        	text:'Add/Remove Bends',
    +        		        	scope:this,
    +        		        	checkHandler: function(item, checked)
    +        		        	{
    +        		        		mxEdgeHandler.prototype.addEnabled = checked;
    +        		        		mxEdgeHandler.prototype.removeEnabled = checked;
    +        		        	}
    +        		        }
    +            	        ]
    +                    }
    +                },
    +                {
    +                    text:'Validation',
    +                    handler: function(menu) { },
    +                    menu:
    +                    {
    +                    	items: [
    +        		        {
    +        		            checked: true,
    +        		            text:'Allow Dangling Edges',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		                graph.setAllowDanglingEdges(checked);
    +        		            }
    +        		        },
    +        		        {
    +        		            checked: false,
    +        		            text:'Clone Invalid Edges',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		                graph.setCloneInvalidEdges(checked);
    +        		            }
    +        		        },
    +        		        '-',
    +        		        {
    +        		            checked: false,
    +        		            text:'Allow Loops',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		                graph.setAllowLoops(checked);
    +        		            }
    +        		        },
    +        		        {
    +        		            checked: true,
    +        		            text:'Multigraph',
    +        		            scope:this,
    +        		            checkHandler: function(item, checked)
    +        		            {
    +        		                graph.setMultigraph(checked);
    +        		            }
    +        		        }
    +            	        ]
    +                    }
    +                },
    +                '-',
    +		        {
    +		            checked: false,
    +		            text:'Page Layout',
    +		            scope:this,
    +		            checkHandler: function(item, checked)
    +		            {
    +						graph.pageVisible = checked;
    +						graph.preferPageSize = graph.pageBreaksVisible;
    +						graph.view.validate();
    +						graph.sizeDidChange();
    +		            }
    +		        },
    +		        {
    +		            checked: false,
    +		            text:'Page Breaks',
    +		            scope:this,
    +		            checkHandler: function(item, checked)
    +		            {
    +						graph.pageBreaksVisible = checked;
    +						graph.preferPageSize = graph.pageBreaksVisible;
    +						graph.sizeDidChange();
    +		            }
    +		        },
    +                '-',
    +		        {
    +		            checked: true,
    +		            text:'Strict Scrollarea',
    +		            scope:this,
    +		            checkHandler: function(item, checked)
    +		            {
    +						graph.useScrollbarsForPanning = checked;
    +		            }
    +		        },
    +		        {
    +		            checked: true,
    +		            text:'Allow Negative Coordinates',
    +		            scope:this,
    +		            checkHandler: function(item, checked)
    +		            {
    +						graph.setAllowNegativeCoordinates(checked);
    +		            }
    +		        },
    +                '-',
    +		        {
    +		            text:'Show XML',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +						var enc = new mxCodec(mxUtils.createXmlDocument());
    +						var node = enc.encode(graph.getModel());
    +						
    +						mxUtils.popup(mxUtils.getPrettyXml(node));
    +		            }
    +		        },
    +		        {
    +		            text:'Parse XML',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		        		var xml = mxUtils.prompt('Enter XML:', '');
    +		        		
    +		        		if (xml != null && xml.length > 0)
    +		        		{
    +		        			var doc = mxUtils.parseXml(xml); 
    +		        			var dec = new mxCodec(doc); 
    +		        			dec.decode(doc.documentElement, graph.getModel()); 
    +		        		}
    +		            }
    +		        },
    +		        '-',
    +		        {
    +		            text:'Console',
    +		            scope:this,
    +		            handler: function(item)
    +		            {
    +		            	mxLog.setVisible(!mxLog.isVisible());
    +		            }
    +		        }]
    +            }
    +        }],
    +
    +        onContextMenu : function(node, e)
    +        {
    +    		var selected = !graph.isSelectionEmpty();
    +
    +    		this.menu = new Ext.menu.Menu(
    +    		{
    +                items: [{
    +                    text:'Undo',
    +                    iconCls:'undo-icon',
    +                    disabled: !history.canUndo(),
    +                    scope: this,
    +                    handler:function()
    +                    {
    +                        history.undo();
    +                    }
    +                },'-',{
    +                    text:'Cut',
    +                    iconCls:'cut-icon',
    +                    disabled: !selected,
    +                    scope: this,
    +                    handler:function()
    +                    {
    +                    	mxClipboard.cut(graph);
    +                    }
    +                },{
    +                    text:'Copy',
    +                    iconCls:'copy-icon',
    +                    disabled: !selected,
    +                    scope: this,
    +                    handler:function()
    +                    {
    +                    	mxClipboard.copy(graph);
    +                    }
    +                },{
    +                    text:'Paste',
    +                    iconCls:'paste-icon',
    +                    disabled: mxClipboard.isEmpty(),
    +                    scope: this,
    +                    handler:function()
    +                    {
    +                    	mxClipboard.paste(graph);
    +                    }
    +                },
    +                '-',
    +                {
    +                    text:'Delete',
    +                    iconCls:'delete-icon',
    +                    disabled: !selected,
    +                    scope: this,
    +                    handler:function()
    +                    {
    +                    	graph.removeCells();
    +                    }
    +                },
    +              	'-',
    +              	{
    +		            text:'Format',
    +		            disabled: !selected,
    +		            handler: function() { },
    +		            menu:
    +		            {
    +		            	items: [
    +		            	{
    +		            		text:'Background',
    +				            disabled: !selected,
    +				            handler: function() { },
    +				            menu:
    +				            {
    +				            	items: [
    +				                {
    +						            text: 'Fillcolor',
    +						            iconCls:'fillcolor-icon',
    +						            menu: fillColorMenu
    +						        },
    +				                {
    +						            text: 'Gradient',
    +						            menu: gradientColorMenu
    +						        },
    +						        '-',
    +						        {
    +						            text: 'Image',
    +						            handler: function()
    +						            {
    +						            	var value = '';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_IMAGE] || value;
    +						            	}
    +
    +					            		value = mxUtils.prompt('Enter Image URL', value);
    +						            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_IMAGE, value);
    +							            }
    +						            }
    +						        },
    +						        {
    +						            text:'Shadow',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						                graph.toggleCellStyles(mxConstants.STYLE_SHADOW);
    +						            }
    +						        },
    +						        '-',
    +						        {
    +						            text:'Opacity',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						            	var value = mxUtils.prompt('Enter Opacity (0-100%)', '100');
    +						            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_OPACITY, value);
    +							            }
    +						            }
    +						        }]
    +				            }
    +		            	},
    +			            {
    +		            		text:'Label',
    +				            disabled: !selected,
    +				            handler: function() { },
    +				            menu:
    +				            {
    +				            	items: [
    +								{
    +						            text: 'Fontcolor',
    +						            iconCls:'fontcolor-icon',
    +						            menu: fontColorMenu
    +						        },
    +						        '-',
    +				                {
    +						            text: 'Label Fill',
    +						            menu: labelBackgroundMenu
    +						        },
    +				                {
    +						            text: 'Label Border',
    +						            menu: labelBorderMenu
    +						        },
    +						        '-',
    +								{
    +						            text:'Rotate Label',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						                graph.toggleCellStyles(mxConstants.STYLE_HORIZONTAL, true);
    +						            }
    +						        },
    +						        {
    +						            text:'Text opacity',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						            	var value = mxUtils.prompt('Enter text opacity (0-100%)', '100');
    +						            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_TEXT_OPACITY, value);
    +							            }
    +						            }
    +						        },
    +						        '-',
    +					            {
    +				            		text:'Position',
    +						            disabled: !selected,
    +						            handler: function() { },
    +						            menu:
    +						            {
    +						            	items: [
    +					            		{
    +								            text: 'Top',
    +								            scope:this,
    +								            handler: function()
    +								            {
    +					            				graph.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.ALIGN_TOP);
    +					            				graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_BOTTOM);
    +								            }
    +								        },
    +					            		{
    +								            text: 'Middle',
    +								            scope:this,
    +								            handler: function()
    +								            {
    +					            				graph.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.ALIGN_MIDDLE);
    +					            				graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE);
    +								            }
    +								        },
    +					            		{
    +								            text: 'Bottom',
    +								            scope:this,
    +								            handler: function()
    +								            {
    +					            				graph.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.ALIGN_BOTTOM);
    +					            				graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_TOP);
    +								            }
    +								        },
    +								        '-',
    +					            		{
    +								            text: 'Left',
    +								            scope:this,
    +								            handler: function()
    +								            {
    +					            				graph.setCellStyles(mxConstants.STYLE_LABEL_POSITION, mxConstants.ALIGN_LEFT);
    +					            				graph.setCellStyles(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_RIGHT);
    +								            }
    +								        },
    +					            		{
    +								            text: 'Center',
    +								            scope:this,
    +								            handler: function()
    +								            {
    +				            				graph.setCellStyles(mxConstants.STYLE_LABEL_POSITION, mxConstants.ALIGN_CENTER);
    +				            				graph.setCellStyles(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER);
    +								            }
    +								        },
    +					            		{
    +								            text: 'Right',
    +								            scope:this,
    +								            handler: function()
    +								            {
    +				            				graph.setCellStyles(mxConstants.STYLE_LABEL_POSITION, mxConstants.ALIGN_RIGHT);
    +				            				graph.setCellStyles(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_LEFT);
    +								            }
    +								        }]
    +						            }
    +					            },
    +						        '-',
    +								{
    +						            text:'Hide',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						                graph.toggleCellStyles(mxConstants.STYLE_NOLABEL, false);
    +						            }
    +						        }]
    +				            }
    +			            },
    +			            '-',
    +			            {
    +		            		text:'Line',
    +				            disabled: !selected,
    +				            handler: function() { },
    +				            menu:
    +				            {
    +				            	items: [
    +			            		{
    +						            text: 'Linecolor',
    +						            iconCls:'linecolor-icon',
    +						            menu: lineColorMenu
    +						        },
    +						        '-',
    +						        {
    +						            text:'Dashed',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						                graph.toggleCellStyles(mxConstants.STYLE_DASHED);
    +						            }
    +						        },
    +								{
    +						            text: 'Linewidth',
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_STROKEWIDTH] || 1;
    +						            	}
    +	
    +					            		value = mxUtils.prompt('Enter Linewidth (Pixels)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_STROKEWIDTH, value);
    +							            }
    +						            }
    +						        }]
    +				            }
    +			            },
    +		            	{
    +		            		text:'Connector',
    +		            		menu:
    +		            		{
    +		            			items: [
    +		            			{
    +						            text: 'Straight',
    +						            icon: '../../images/straight.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyle('straight');
    +						            }
    +						        },
    +						        '-',
    +						        {
    +						            text: 'Horizontal',
    +						            icon: '../../images/connect.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyle(null);
    +						            }
    +						        },
    +						        {
    +						            text: 'Vertical',
    +						            icon: '../../images/vertical.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyle('vertical');
    +						            }
    +						        },
    +						        '-',
    +						        {
    +						            text: 'Entity Relation',
    +						           	icon: '../../images/entity.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyle('edgeStyle=entityRelationEdgeStyle');
    +						            }
    +						        },
    +						        {
    +						            text: 'Arrow',
    +						            icon: '../../images/arrow.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyle('arrow');
    +						            }
    +						        },
    +						        '-',
    +						        {
    +						            text: 'Plain',
    +						            handler: function()
    +						            {
    +						        		graph.toggleCellStyles(mxConstants.STYLE_NOEDGESTYLE, false);
    +						            }
    +						        }]
    +		            		}
    +		            	},
    +				        '-',
    +		            	{
    +							text:'Linestart',
    +							menu:
    +							{
    +		            			items: [
    +		            			{
    +		            				text: 'Open',
    +						            icon: '../../images/open_start.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_STARTARROW, mxConstants.ARROW_OPEN);
    +						            }
    +						        },
    +						        {
    +						            text: 'Classic',
    +						            icon: '../../images/classic_start.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_STARTARROW, mxConstants.ARROW_CLASSIC);
    +						            }
    +						        },
    +						        {
    +						            text: 'Block',
    +						            icon: '../../images/block_start.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_STARTARROW, mxConstants.ARROW_BLOCK);
    +						            }
    +						        },
    +						        '-',
    +						        {
    +						            text: 'Diamond',
    +						            icon: '../../images/diamond_start.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_STARTARROW, mxConstants.ARROW_DIAMOND);
    +						            }
    +						        },
    +						        {
    +						            text: 'Oval',
    +						            icon: '../../images/oval_start.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_STARTARROW, mxConstants.ARROW_OVAL);
    +						            }
    +						        },
    +						        '-',
    +				                {
    +						            text: 'None',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_STARTARROW, mxConstants.NONE);
    +						            }
    +						        },
    +				                {
    +						            text: 'Size',
    +						            handler: function()
    +						            {
    +						            	var size = mxUtils.prompt('Enter Size', mxConstants.DEFAULT_MARKERSIZE);
    +						            	
    +						            	if (size != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_STARTSIZE, size);
    +							            }
    +						            }
    +				                }]
    +							}
    +						},
    +						{
    +							text:'Lineend',
    +							menu:
    +							{
    +								items: [
    +								{
    +						            text: 'Open',
    +						            icon: '../../images/open_end.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_ENDARROW, mxConstants.ARROW_OPEN);
    +						            }
    +						        },
    +						        {
    +						            text: 'Classic',
    +						            icon: '../../images/classic_end.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_ENDARROW, mxConstants.ARROW_CLASSIC);
    +						            }
    +						        },
    +						        {
    +						            text: 'Block',
    +						            icon: '../../images/block_end.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_ENDARROW, mxConstants.ARROW_BLOCK);
    +						            }
    +						        },
    +						        '-',
    +						        {
    +						            text: 'Diamond',
    +						            icon: '../../images/diamond_end.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_ENDARROW, mxConstants.ARROW_DIAMOND);
    +						            }
    +						        },
    +						        {
    +						            text: 'Oval',
    +						            icon: '../../images/oval_end.gif',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_ENDARROW, mxConstants.ARROW_OVAL);
    +						            }
    +						        },
    +						        '-',
    +				                {
    +						            text: 'None',
    +						            handler: function()
    +						            {
    +						            	graph.setCellStyles(mxConstants.STYLE_ENDARROW, 'none');
    +						            }
    +				                },
    +				                {
    +				                	text: 'Size',
    +				                	handler: function()
    +						            {
    +						            	var size = mxUtils.prompt('Enter Size', mxConstants.DEFAULT_MARKERSIZE);
    +						            	
    +						            	if (size != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_ENDSIZE, size);
    +							            }
    +						            }
    +						        }]
    +							}
    +						},
    +						'-',
    +						{
    +							text:'Spacing',
    +							menu:
    +							{
    +				                items: [
    +							    {
    +						            text: 'Top',
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_SPACING_TOP] || value;
    +						            	}
    +
    +					            		value = mxUtils.prompt('Enter Top Spacing (Pixels)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_SPACING_TOP, value);
    +							            }
    +						            }
    +						        },
    +						        {
    +						            text: 'Right',
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_SPACING_RIGHT] || value;
    +						            	}
    +
    +					            		value = mxUtils.prompt('Enter Right Spacing (Pixels)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_SPACING_RIGHT, value);
    +							            }
    +						            }
    +						        },
    +						        {
    +						            text: 'Bottom',
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_SPACING_BOTTOM] || value;
    +						            	}
    +
    +					            		value = mxUtils.prompt('Enter Bottom Spacing (Pixels)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_SPACING_BOTTOM, value);
    +							            }
    +						            }
    +						        },
    +						        {
    +						            text: 'Left',
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_SPACING_LEFT] || value;
    +						            	}
    +
    +					            		value = mxUtils.prompt('Enter Left Spacing (Pixels)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_SPACING_LEFT, value);
    +							            }
    +						            }
    +						        },
    +						        '-',
    +				                {
    +						            text: 'Global',
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_SPACING] || value;
    +						            	}
    +
    +					            		value = mxUtils.prompt('Enter Spacing (Pixels)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_SPACING, value);
    +							            }
    +						            }
    +				                },
    +				                '-',
    +						        {
    +						            text: 'Source spacing',
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_SOURCE_PERIMETER_SPACING] || value;
    +						            	}
    +	
    +					            		value = mxUtils.prompt('Enter source spacing (pixels)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING, value);
    +							            }
    +						            }
    +						        },
    +								{
    +						            text: 'Target spacing',
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_TARGET_PERIMETER_SPACING] || value;
    +						            	}
    +	
    +					            		value = mxUtils.prompt('Enter target spacing (pixels)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING, value);
    +							            }
    +						            }
    +						        },
    +						        '-',
    +						        {
    +						            text: 'Perimeter',
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_PERIMETER_SPACING] || value;
    +						            	}
    +
    +					            		value = mxUtils.prompt('Enter Perimeter Spacing (Pixels)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_PERIMETER_SPACING, value);
    +							            }
    +						            }
    +						        }]
    +							}
    +						},
    +						{
    +							text:'Direction',
    +							menu:
    +							{
    +				                items: [
    +				                {
    +						            text: 'North',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						                graph.setCellStyles(mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_NORTH);
    +						            }
    +						        },
    +						        {
    +						            text: 'East',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						                graph.setCellStyles(mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_EAST);
    +						            }
    +						        },
    +						        {
    +						            text: 'South',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						                graph.setCellStyles(mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_SOUTH);
    +						            }
    +						        },
    +						        {
    +						            text: 'West',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						                graph.setCellStyles(mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_WEST);
    +						            }
    +						        },
    +						        '-',
    +						        {
    +						            text:'Rotation',
    +						            scope:this,
    +						            handler: function()
    +						            {
    +						            	var value = '0';
    +						            	var state = graph.getView().getState(graph.getSelectionCell());
    +						            	
    +						            	if (state != null)
    +						            	{
    +						            		value = state.style[mxConstants.STYLE_ROTATION] || value;
    +						            	}
    +
    +					            		value = mxUtils.prompt('Enter Angle (0-360)', value);
    +							            	
    +						            	if (value != null)
    +						            	{
    +							            	graph.setCellStyles(mxConstants.STYLE_ROTATION, value);
    +							            }
    +						            }
    +						        }]
    +							}
    +						},
    +				        '-',
    +				        {
    +				            text:'Rounded',
    +				            scope:this,
    +				            handler: function()
    +				            {
    +				               graph.toggleCellStyles(mxConstants.STYLE_ROUNDED);
    +				            }
    +				        },
    +				       	{
    +				            text:'Style',
    +				            scope:this,
    +				            handler: function()
    +				            {
    +				        		var cells = graph.getSelectionCells();
    +
    +								if (cells != null &&
    +									cells.length > 0)
    +								{
    +									var model = graph.getModel();
    +									var style = mxUtils.prompt('Enter Style', model.getStyle(cells[0]) || '');
    +				
    +									if (style != null)
    +									{
    +										graph.setCellStyle(style, cells);
    +									}
    +								}
    +				            }
    +				        }]
    +		            }
    +              	},
    +              	{
    +              		split:true,
    +		            text:'Shape',
    +		            handler: function() { },
    +		            menu:
    +		            {
    +		                items: [
    +		                {
    +		                    text:'Home',
    +		                    iconCls: 'home-icon',
    +		                    disabled: graph.view.currentRoot == null,
    +		                    scope: this,
    +		                    handler:function()
    +		                    {
    +		                    	graph.home();
    +		                    }
    +		              	},
    +		              	'-',
    +		                {
    +		                    text:'Exit group',
    +		                    iconCls:'up-icon',
    +		                    disabled: graph.view.currentRoot == null,
    +		                    scope: this,
    +		                    handler:function()
    +		                    {
    +		                    	graph.exitGroup();
    +		                    }
    +		              	},
    +		                {
    +		                    text:'Enter group',
    +		                    iconCls:'down-icon',
    +		                    disabled: !selected,
    +		                    scope: this,
    +		                    handler:function()
    +		                    {
    +		                    	graph.enterGroup();
    +		                    }
    +		              	},
    +				        '-',
    +                        {
    +				            text:'Group',
    +				            icon: '../../images/group.gif',
    +				            disabled: graph.getSelectionCount() <= 1,
    +				            scope:this,
    +				            handler: function()
    +				            {
    +				                graph.setSelectionCell(graph.groupCells(null, 20));
    +				            }
    +				        },
    +				        {
    +				            text:'Ungroup',
    +				            icon: '../../images/ungroup.gif',
    +				            scope:this,
    +				            handler: function()
    +				            {
    +				        		graph.setSelectionCells(graph.ungroupCells());
    +				            }
    +				        },
    +				        '-',
    +				       	{
    +				            text:'Remove from group',
    +				            scope:this,
    +				            handler: function()
    +				            {
    +				                graph.removeCellsFromParent();
    +				            }
    +				        },
    +				       	{
    +				            text:'Update group bounds',
    +				            scope:this,
    +				            handler: function()
    +				            {
    +				        		graph.updateGroupBounds(null, 20);
    +				            }
    +				        },
    +		              	'-',
    +						{
    +		                    text:'Collapse',
    +		                    iconCls:'collapse-icon',
    +		                    disabled: !selected,
    +		                    scope: this,
    +		                    handler:function()
    +		                    {
    +		                    	graph.foldCells(true);
    +		                    }
    +		              	},
    +		                {
    +		                    text:'Expand',
    +		                    iconCls:'expand-icon',
    +		                    disabled: !selected,
    +		                    scope: this,
    +		                    handler:function()
    +		                    {
    +		                    	graph.foldCells(false);
    +		                    }
    +		              	},
    +		              	'-',
    +		                {
    +				            text:'To Back',
    +				            icon: '../../images/toback.gif',
    +				            scope:this,
    +				            handler: function()
    +				            {
    +				                graph.orderCells(true);
    +				            }
    +				        },
    +				        {
    +				            text:'To Front',
    +				            icon: '../../images/tofront.gif',
    +				            scope:this,
    +				            handler: function()
    +				            {
    +				                graph.orderCells(false);
    +				            }
    +				        },
    +				        '-',
    +				        
    +				        
    +				        {
    +							text:'Align',
    +							menu:
    +							{
    +								items: [
    +								{
    +						            text: 'Left',
    +						            icon: '../../images/alignleft.gif',
    +						            handler: function()
    +						            {
    +										graph.alignCells(mxConstants.ALIGN_LEFT);
    +						            }
    +						        },
    +						        {
    +						            text: 'Center',
    +						            icon: '../../images/aligncenter.gif',
    +						            handler: function()
    +						            {
    +						        		graph.alignCells(mxConstants.ALIGN_CENTER);
    +						            }
    +						        },
    +						        {
    +						            text: 'Right',
    +						            icon: '../../images/alignright.gif',
    +						            handler: function()
    +						            {
    +						        		graph.alignCells(mxConstants.ALIGN_RIGHT);
    +						            }
    +						        },
    +						        '-',
    +						        {
    +						            text: 'Top',
    +						            icon: '../../images/aligntop.gif',
    +						            handler: function()
    +						            {
    +						        		graph.alignCells(mxConstants.ALIGN_TOP);
    +						            }
    +						        },
    +						        {
    +						            text: 'Middle',
    +						            icon: '../../images/alignmiddle.gif',
    +						            handler: function()
    +						            {
    +						        		graph.alignCells(mxConstants.ALIGN_MIDDLE);
    +						            }
    +						        },
    +						        {
    +						            text: 'Bottom',
    +						            icon: '../../images/alignbottom.gif',
    +						            handler: function()
    +						            {
    +						        		graph.alignCells(mxConstants.ALIGN_BOTTOM);
    +						            }
    +						        }]
    +							}
    +						},
    +				        '-',
    +				       	{
    +				            text:'Autosize',
    +				            scope:this,
    +				            handler: function()
    +				            {
    +				            	if (!graph.isSelectionEmpty())
    +				            	{
    +				            		graph.updateCellSize(graph.getSelectionCell());
    +				            	}
    +				            }
    +				        }]
    +		            }
    +			    },
    +			    '-',
    +		       	{
    +		            text:'Edit',
    +		            scope:this,
    +		            handler: function()
    +		            {
    +		                graph.startEditing();
    +		            }
    +		        },
    +			    '-',
    +                {
    +                    text:'Select Vertices',
    +                    scope: this,
    +                    handler:function()
    +                    {
    +			    		graph.selectVertices();
    +                    }
    +              	},
    +              	{
    +                    text:'Select Edges',
    +                    scope: this,
    +                    handler:function()
    +                    {
    +              			graph.selectEdges();
    +                    }
    +              	},
    +              	'-',
    +              	{
    +                    text:'Select All',
    +                    scope: this,
    +                    handler:function()
    +                    {
    +                    	graph.selectAll();
    +                    }
    +              	}]
    +            });
    +	            
    +            this.menu.on('hide', this.onContextHide, this);
    +            
    +            
    +            // Adds a small offset to make sure the mouse released event
    +            // is routed via the shape which was initially clicked. This
    +            // is required to avoid a reset of the selection in Safari.
    +            this.menu.showAt([e.clientX + 1, e.clientY + 1]);
    +	    },
    +	
    +	    onContextHide : function()
    +	    {
    +	        if(this.ctxNode)
    +	        {
    +	            this.ctxNode.ui.removeClass('x-node-ctx');
    +	            this.ctxNode = null;
    +	        }
    +	    }
    +    });
    +
    +    MainPanel.superclass.constructor.call(this,
    +    {
    +        region:'center',
    +        layout: 'fit',
    +        items: this.graphPanel
    +    });
    +
    +    // Redirects the context menu to ExtJs menus
    +    graph.panningHandler.popup = mxUtils.bind(this, function(x, y, cell, evt)
    +    {
    +    	this.graphPanel.onContextMenu(null, evt);
    +    });
    +
    +    graph.panningHandler.hideMenu = mxUtils.bind(this, function()
    +    {
    +		if (this.graphPanel.menuPanel != null)
    +    	{
    +			this.graphPanel.menuPanel.hide();
    +    	}
    +    });
    +
    +    // Fits the SVG container into the panel body
    +    this.graphPanel.on('resize', function()
    +    {
    +        graph.sizeDidChange();
    +    });
    +};
    +
    +Ext.extend(MainPanel, Ext.Panel);
    diff --git a/javascript/examples/editors/archive/grapheditor/resources/basic-style.xml b/javascript/examples/editors/archive/grapheditor/resources/basic-style.xml
    new file mode 100644
    index 000000000..8be6fdec0
    --- /dev/null
    +++ b/javascript/examples/editors/archive/grapheditor/resources/basic-style.xml
    @@ -0,0 +1,104 @@
    +<mxStylesheet>
    +	<add as="defaultVertex">
    +		<add as="shape" value="label"/>
    +		<add as="perimeter" value="rectanglePerimeter"/>
    +		<add as="fontSize" value="12"/>
    +		<add as="fontFamily" value="Verdana"/>
    +		<add as="align" value="center"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="strokeColor" value="black"/>
    +		<add as="fillColor" value="white"/>
    +	</add>
    +	<add as="defaultEdge">
    +		<add as="shape" value="connector"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="endArrow" value="classic"/>
    +		<add as="fontSize" value="10"/>
    +		<add as="align" value="center"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="strokeColor" value="black"/>
    +	</add>
    +	<add as="label">
    +		<add as="shape" value="label"/>
    +		<add as="perimeter" value="rectanglePerimeter"/>
    +		<add as="fontStyle" value="1"/>
    +		<add as="align" value="left"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="spacing" value="2"/>
    +		<add as="spacingLeft" value="40"/>
    +		<add as="imageWidth" value="32"/>
    +		<add as="imageHeight" value="32"/>
    +		<add as="rounded" value="1"/>
    +	</add>
    +	<add as="icon" extend="label">
    +		<add as="align" value="center"/>
    +		<add as="imageAlign" value="center"/>
    +		<add as="verticalLabelPosition" value="bottom"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="spacingTop" value="4"/>
    +		<add as="labelBackgroundColor" value="#FFFFFF"/>
    +		<add as="spacing" value="0"/>
    +		<add as="spacingLeft" value="0"/>
    +		<add as="spacingTop" value="6"/>
    +		<add as="fontStyle" value="0"/>
    +		<add as="imageWidth" value="48"/>
    +		<add as="imageHeight" value="48"/>
    +	</add>
    +	<add as="entity">
    +		<add as="edgeStyle" value="entityRelationEdgeStyle"/>
    +	</add>
    +	<add as="vertical">
    +		<add as="elbow" value="vertical"/>
    +	</add>
    +	<add as="straight">
    +		<add as="shape" value="connector"/>
    +		<add as="endArrow" value="classic"/>
    +		<add as="edgeStyle" value="none"/>
    +	</add>
    +	<add as="arrow">
    +		<add as="shape" value="arrow"/>
    +		<add as="fillColor" value="red"/>
    +	</add>
    +	<add as="swimlane">
    +		<add as="shape" value="swimlane"/>
    +		<add as="fontSize" value="12"/>
    +		<add as="fontStyle" value="1"/>
    +		<add as="startSize" value="23"/>
    +	</add>
    +	<add as="group">
    +		<add as="verticalAlign" value="top"/>
    +		<add as="dashed" value="1"/>
    +		<add as="opacity" value="50"/>
    +	</add>
    +	<add as="ellipse">
    +		<add as="shape" value="ellipse"/>
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombus">
    +		<add as="shape" value="rhombus"/>
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +	<add as="triangle">
    +		<add as="shape" value="triangle"/>
    +		<add as="perimeter" value="trianglePerimeter"/>
    +	</add>
    +	<add as="line">
    +		<add as="shape" value="line"/>
    +		<add as="strokeWidth" value="4"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="spacingTop" value="8"/>
    +	</add>
    +	<add as="image">
    +		<add as="shape" value="image"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="verticalLabelPosition" value="bottom"/>
    +	</add>
    +	<add as="roundImage" extend="image">
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombusImage" extend="image">
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +</mxStylesheet>
    diff --git a/javascript/examples/editors/archive/grapheditor/resources/default-style.xml b/javascript/examples/editors/archive/grapheditor/resources/default-style.xml
    new file mode 100644
    index 000000000..60ff83f27
    --- /dev/null
    +++ b/javascript/examples/editors/archive/grapheditor/resources/default-style.xml
    @@ -0,0 +1,104 @@
    +<mxStylesheet>
    +	<include name="resources/basic-style.xml"/>
    +	<add as="defaultVertex" extend="defaultVertex">
    +		<add as="fillColor" value="#adc5ff"/>
    +		<add as="gradientColor" value="#7d85df"/>
    +		<add as="strokeColor" value="#5d65df"/>
    +		<add as="fontSize" value="12"/>
    +		<add as="fontColor" value="#1d258f"/>
    +		<add as="fontFamily" value="Verdana"/>
    +	</add>
    +	<add as="defaultEdge" extend="defaultEdge">
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="rounded" value="1"/>
    +		<add as="edgeStyle" value="elbowEdgeStyle"/>
    +		<add as="strokeColor" value="#5d65df"/>
    +		<add as="fontSize" value="11"/>
    +		<add as="fontColor" value="#1d258f"/>
    +		<add as="fontFamily" value="Verdana"/>
    +	</add>
    +	<add as="label">
    +		<add as="shape" value="label"/>
    +		<add as="perimeter" value="rectanglePerimeter"/>
    +		<add as="fontStyle" value="1"/>
    +		<add as="align" value="left"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="spacing" value="2"/>
    +		<add as="spacingLeft" value="40"/>
    +		<add as="imageWidth" value="32"/>
    +		<add as="imageHeight" value="32"/>
    +		<add as="rounded" value="1"/>
    +		<add as="shadow" value="1"/>
    +		<add as="glass" value="1"/>
    +	</add>
    +	<add as="icon" extend="label">
    +		<add as="align" value="center"/>
    +		<add as="imageAlign" value="center"/>
    +		<add as="verticalLabelPosition" value="bottom"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="spacingTop" value="4"/>
    +		<add as="labelBackgroundColor" value="#FFFFFF"/>
    +		<add as="spacing" value="0"/>
    +		<add as="spacingLeft" value="0"/>
    +		<add as="spacingTop" value="6"/>
    +		<add as="fontStyle" value="0"/>
    +		<add as="imageWidth" value="48"/>
    +		<add as="imageHeight" value="48"/>
    +	</add>
    +	<add as="entity">
    +		<add as="edgeStyle" value="entityRelationEdgeStyle"/>
    +	</add>
    +	<add as="vertical">
    +		<add as="elbow" value="vertical"/>
    +	</add>
    +	<add as="straight">
    +		<add as="shape" value="connector"/>
    +		<add as="endArrow" value="classic"/>
    +		<add as="edgeStyle" value="none"/>
    +	</add>
    +	<add as="arrow">
    +		<add as="shape" value="arrow"/>
    +	</add>
    +	<add as="swimlane">
    +		<add as="shape" value="swimlane"/>
    +		<add as="fontSize" value="12"/>
    +		<add as="fontStyle" value="1"/>
    +		<add as="startSize" value="23"/>
    +	</add>
    +	<add as="group">
    +		<add as="verticalAlign" value="top"/>
    +		<add as="dashed" value="1"/>
    +		<add as="opacity" value="50"/>
    +	</add>
    +	<add as="ellipse">
    +		<add as="shape" value="ellipse"/>
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombus">
    +		<add as="shape" value="rhombus"/>
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +	<add as="triangle">
    +		<add as="shape" value="triangle"/>
    +		<add as="perimeter" value="trianglePerimeter"/>
    +	</add>
    +	<add as="line">
    +		<add as="shape" value="line"/>
    +		<add as="strokeWidth" value="4"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="spacingTop" value="8"/>
    +	</add>
    +	<add as="image">
    +		<add as="shape" value="image"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="verticalLabelPosition" value="bottom"/>
    +		<add as="verticalAlign" value="top"/>
    +	</add>
    +	<add as="roundImage" extend="image">
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombusImage" extend="image">
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +</mxStylesheet>
    diff --git a/javascript/examples/editors/config/diagrameditor.xml b/javascript/examples/editors/config/diagrameditor.xml
    new file mode 100644
    index 000000000..d67ef1d1e
    --- /dev/null
    +++ b/javascript/examples/editors/config/diagrameditor.xml
    @@ -0,0 +1,338 @@
    +<mxEditor defaultGroup="group" defaultEdge="connector">
    +<!-- 
    +	The following line is used to dynamically add a configuration hook for various backends.
    +	The hook must have an ASP.NET extension because IIS does not handle any other extensions.
    +	In the Dotnet and Java server examples, this hook is implemented so that it returns the
    +	required configuration for using a backend, namely, the diagrameditor-backend.xml 
    +	in the java and dotnet directories, respectively.
    + -->
    +	<include name="/Config.ashx"/>
    +	<include name="config/editor-commons.xml"/>
    +	<add as="onInit"><![CDATA[
    +		function ()
    +		{
    +			onInit(this);
    +		}
    +	]]></add>
    +	<ui>
    +		<add as="graph" element="graph"/>
    +		<add as="status" element="status"/>
    +		<add as="toolbar" element="toolbar"/>
    +	</ui>
    +	<Array as="templates">
    +		<add as="group">
    +			<Group label="" href="">
    +				<mxCell vertex="1" style="group" connectable="0"/>
    +			</Group>
    +		</add>
    +		<add as="connector">
    +			<Connector label="" href="">
    +				<mxCell edge="1">
    +					<mxGeometry as="geometry" relative="1"/>
    +				</mxCell>
    +			</Connector>
    +		</add>
    +		<add as="container">
    +			<Container label="Container" href="">
    +				<mxCell vertex="1" style="swimlane" connectable="0">
    +					<mxGeometry as="geometry" width="200" height="200"/>
    +				</mxCell>
    +			</Container>
    +		</add>
    +		<add as="rectangle">
    +			<Rect label="Rectangle" href="">
    +				<mxCell vertex="1">	
    +					<mxGeometry as="geometry" width="80" height="40"/>
    +				</mxCell>
    +			</Rect>
    +		</add>
    +		<add as="text">
    +			<Text label="Text Here" href="">
    +				<mxCell vertex="1" style="text">	
    +					<mxGeometry as="geometry" width="80" height="20"/>
    +				</mxCell>
    +			</Text>
    +		</add>
    +		<add as="image">
    +			<Image label="" href="">
    +				<mxCell vertex="1" style="image">	
    +					<mxGeometry as="geometry" width="80" height="50"/>
    +				</mxCell>
    +			</Image>
    +		</add>
    +		<add as="rounded">
    +			<Roundrect label="Rounded" href="">
    +				<mxCell vertex="1" style="rounded">		
    +					<mxGeometry as="geometry" width="80" height="40"/>
    +				</mxCell>
    +			</Roundrect>
    +		</add>
    +		<add as="shape">
    +			<Shape label="Shape" href="">
    +				<mxCell vertex="1" style="ellipse">		
    +					<mxGeometry as="geometry" width="60" height="60"/>
    +				</mxCell>
    +			</Shape>
    +		</add>
    +		<add as="actor">
    +			<Shape label="Shape" href="">
    +				<mxCell vertex="1" style="actor">		
    +					<mxGeometry as="geometry" width="40" height="60"/>
    +				</mxCell>
    +			</Shape>
    +		</add>
    +		<add as="cloud">
    +			<Shape label="Shape" href="">
    +				<mxCell vertex="1" style="cloud">		
    +					<mxGeometry as="geometry" width="80" height="60"/>
    +				</mxCell>
    +			</Shape>
    +		</add>
    +		<add as="hline">
    +			<Shape label="" href="">
    +				<mxCell vertex="1" style="ellipse">		
    +					<mxGeometry as="geometry" width="60" height="10"/>
    +				</mxCell>
    +			</Shape>
    +		</add>
    +	</Array>
    +	<mxGraph as="graph" alternateEdgeStyle="verticalConnector" allowLoops="1" dropEnabled="1">
    +		<add as="isAutoSizeCell"><![CDATA[
    +			function(cell)
    +			{
    +				return mxUtils.isNode(this.model.getValue(cell), 'text');
    +			}
    +		]]></add>
    +		<add as="isSwimlane"><![CDATA[
    +			function (cell)
    +			{
    +				return mxUtils.isNode(this.model.getValue(cell), 'container');
    +			}
    +		]]></add>
    +		<add as="getTooltipForCell"><![CDATA[
    +			function(cell)
    +			{
    +				return '<b>'+cell.getAttribute('label')+
    +						'</b> ('+cell.getId()+')'+
    +						'<br>Style: '+cell.getStyle()+
    +						'<br>Connections: '+cell.getEdgeCount()+
    +						'<br>Children: '+cell.getChildCount();
    +			}
    +		]]></add>
    +		<add as="convertValueToString"><![CDATA[
    +			function(cell)
    +			{
    +				return cell.getAttribute('label');
    +			}
    +		]]></add>
    +		<mxStylesheet as="stylesheet">
    +			<add as="text">
    +				<add as="shape" value="rectangle"/>
    +				<add as="perimeter" value="rectanglePerimeter"/>
    +				<add as="fontSize" value="12"/>
    +				<add as="align" value="left"/>
    +				<add as="verticalAlign" value="top"/>
    +				<add as="shadow" value="0"/>
    +				<add as="strokeColor" value="none"/>
    +				<add as="fillColor" value="none"/>
    +				<add as="gradientColor" value="none"/>
    +			</add>
    +			<add as="defaultVertex" extend="text">
    +				<add as="shape" value="rectangle"/>
    +				<add as="fontSize" value="11"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="middle"/>
    +				<add as="shadow" value="1"/>
    +				<add as="strokeColor" value="#C3D9FF"/>
    +				<add as="fillColor" value="#C3D9FF"/>
    +				<add as="gradientColor" value="white"/>
    +			</add>
    +			<add as="group">
    +				<add as="shape" value="rectangle"/>
    +				<add as="perimeter" value="rectanglePerimeter"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="middle"/>
    +				<add as="strokeColor" value="gray"/>
    +				<add as="dashed" value="1"/>
    +			</add>
    +			<add as="defaultEdge">
    +				<add as="shape" value="connector"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="middle"/>
    +				<add as="rounded" value="1"/>
    +				<add as="labelBackgroundColor" value="white"/>
    +				<add as="strokeColor" value="#36393D"/>
    +				<add as="strokeWidth" value="1"/>
    +				<add as="edgeStyle" value="elbowEdgeStyle"/>
    +				<add as="endArrow" value="classic"/>
    +			</add>
    +			<add as="verticalConnector">
    +				<add as="elbow" value="vertical"/>
    +			</add>
    +			<add as="straightConnector">
    +				<add as="shape" value="connector"/>
    +				<add as="endArrow" value="classic"/>
    +				<add as="edgeStyle">null</add>
    +			</add>
    +			<add as="arrowConnector">
    +				<add as="shape" value="arrow"/>
    +				<add as="fillColor" value="#C3D9FF"/>
    +				<add as="endSize" value="20"/>
    +				<remove as="edgeStyle"/>
    +			</add>
    +			<add as="swimlane">
    +				<add as="shape" value="swimlane"/>
    +				<add as="shadow" value="0"/>
    +				<add as="startSize" value="23"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="top"/>
    +				<add as="strokeColor" value="#EEEEEE"/>
    +				<add as="fillColor" value="#D4D4D4"/>
    +			</add>
    +			<add as="rounded">
    +				<add as="rounded" value="1"/>
    +			</add>
    +			<add as="ellipse">
    +				<add as="shape" value="ellipse"/>
    +				<add as="perimeter" value="ellipsePerimeter"/>
    +				<add as="strokeColor" value="#CDEB8B"/>
    +				<add as="fillColor" value="#CDEB8B"/>
    +			</add>
    +			<add as="doubleEllipse" extend="ellipse">
    +				<add as="shape" value="doubleEllipse"/>
    +			</add>
    +			<add as="rhombus">
    +				<add as="shape" value="rhombus"/>
    +				<add as="perimeter" value="rhombusPerimeter"/>
    +				<add as="strokeColor" value="#FFCF8A"/>
    +				<add as="fillColor" value="#FFCF8A"/>
    +			</add>
    +			<add as="triangle" extend="rhombus">
    +				<add as="shape" value="triangle"/>
    +				<add as="perimeter" value="trianglePerimeter"/>
    +				<add as="align" value="left"/>
    +			</add>
    +			<add as="hexagon">
    +				<add as="shape" value="hexagon"/>
    +			</add>
    +			<add as="actor">
    +				<add as="shape" value="actor"/>
    +				<add as="strokeColor" value="#FFC7C7"/>
    +				<add as="fillColor" value="#FFC7C7"/>
    +			</add>
    +			<add as="cloud">
    +				<add as="shape" value="cloud"/>
    +				<add as="perimeter" value="ellipsePerimeter"/>
    +				<add as="strokeColor" value="#CDEB8B"/>
    +				<add as="fillColor" value="#CDEB8B"/>
    +			</add>
    +			<add as="cylinder">
    +				<add as="shape" value="cylinder"/>
    +				<add as="spacingTop" value="10"/>
    +				<add as="strokeColor" value="#4096EE"/>
    +				<add as="fillColor" value="#4096EE"/>
    +			</add>
    +			<add as="hline">
    +				<add as="shape" value="line"/>
    +				<add as="strokeWidth" value="3"/>
    +				<add as="perimeter" value="rectanglePerimeter"/>
    +				<add as="fontColor" value="black"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="bottom"/>
    +				<add as="strokeColor" value="#36393D"/>
    +			</add>
    +			<add as="image">
    +				<add as="shape" value="image"/>
    +				<add as="perimeter" value="rectanglePerimeter"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="middle"/>
    +				<add as="image" value="images/draw/mxlogo.jpg"/>
    +			</add>
    +		</mxStylesheet>
    +		<mxGraphModel as="model">
    +			<add as="valueForCellChanged"><![CDATA[
    +				function(cell, value)
    +				{
    +					var previous = null;
    +					
    +					if (value == null || isNaN(value.nodeType))
    +					{
    +						previous = cell.value.getAttribute('label');
    +
    +						if (value == null)
    +						{
    +							cell.value.removeAttribute('label');
    +						}
    +						else
    +						{
    +							cell.setAttribute('label', value);
    +						}
    +					}
    +					else
    +					{
    +						previous = cell.value;
    +						cell.value = value;
    +					}
    +					
    +					return previous;
    +				}
    +			]]></add>
    +			<root>
    +				<Diagram label="My Diagram" href="http://www.mxgraph.com/" id="0">
    +					<mxCell/>
    +				</Diagram>
    +				<Layer label="Default Layer" id="1">
    +					<mxCell parent="0"/>
    +				</Layer>
    +			</root>
    +		</mxGraphModel>
    +	</mxGraph>
    +	<mxDefaultToolbar as="toolbar">
    +		<add as="connect" mode="connect" icon="images/connect.gif"><![CDATA[
    +			function (editor)
    +			{
    +				if (editor.defaultEdge != null)
    +				{
    +					editor.defaultEdge.style = null;
    +				}
    +			}
    +		]]></add>
    +		<add as="connect" mode="connect" icon="images/straight.gif"><![CDATA[
    +			function (editor)
    +			{
    +				if (editor.defaultEdge != null)
    +				{
    +					editor.defaultEdge.style = 'straightConnector';
    +				}
    +			}
    +		]]></add>
    +		<add as="connect" mode="connect" icon="images/arrow.gif"><![CDATA[
    +			function (editor)
    +			{
    +				if (editor.defaultEdge != null)
    +				{
    +					editor.defaultEdge.style = 'arrowConnector';
    +				}
    +			}
    +		]]></add>
    +		<br/><br/>
    +		<add as="Text" template="text" icon="images/text.gif"/>
    +		<add as="Container" template="container" icon="images/swimlane.gif"/>
    +		<add as="Rectangle" template="rectangle" icon="images/rectangle.gif"/>
    +		<add as="Rounded" template="rounded" icon="images/rounded.gif"/>
    +		<add as="Ellipse" template="shape" style="ellipse" icon="images/ellipse.gif"/>
    +		<add as="Double Ellipse" template="shape" style="doubleEllipse" icon="images/doubleellipse.gif"/>
    +		<add as="Rhombus" template="shape" style="rhombus" icon="images/rhombus.gif"/>
    +		<add as="Triangle" template="actor" style="triangle" icon="images/triangle.gif"/>
    +		<add as="Hexagon" template="cloud" style="hexagon" icon="images/hexagon.gif"/>
    +		<add as="Actor" template="actor" style="actor" icon="images/actor.gif"/>
    +		<add as="Cylinder" template="shape" style="cylinder" icon="images/cylinder.gif"/>
    +		<add as="Cloud" template="cloud" style="cloud" icon="images/cloud.gif"/>
    +		<add as="Line" template="hline" style="hline" icon="images/hline.gif"/>
    +		<add as="Image" template="image" icon="images/image.gif"/>
    +	</mxDefaultToolbar>
    +</mxEditor>
    diff --git a/javascript/examples/editors/config/editor-commons.xml b/javascript/examples/editors/config/editor-commons.xml
    new file mode 100644
    index 000000000..d2dab8478
    --- /dev/null
    +++ b/javascript/examples/editors/config/editor-commons.xml
    @@ -0,0 +1,267 @@
    +<mxEditor>
    +	<ui>
    +		<resource basename="resources/mxApplication"/>
    +	</ui>
    +	<mxDefaultPopupMenu as="popupHandler">		
    +		<add as="cut" action="cut" icon="images/cut.gif"/>
    +		<add as="copy" action="copy" icon="images/copy.gif"/>
    +		<add as="paste" action="paste" icon="images/paste.gif"/>
    +		<separator/>
    +		<add as="delete" action="delete" icon="images/delete.gif" if="cell"/>
    +		<separator/>
    +		<add as="exitGroup" action="exitGroup" icon="images/up.gif" if="notRoot"/>
    +		<add as="enterGroup" action="enterGroup" icon="images/down.gif" if="validRoot"/>
    +		<separator/>
    +		<add as="shape" if="cell">
    +			<add as="group" action="group" icon="images/group.gif" if="ncells"/>
    +			<add as="ungroup" action="ungroup" icon="images/ungroup.gif" if="cell"/>
    +			<separator/>
    +			<add as="removeFromParent" action="removeFromParent" if="cell"/>
    +			<separator/>
    +			<add as="collapse" action="collapse" icon="images/collapse.gif" if="expandable"/>
    +			<add as="expand" action="expand" icon="images/expand.gif" if="collapsable"/>
    +			<separator/>
    +			<add as="toFront" action="toFront" icon="images/tofront.gif" if="cell"/>
    +			<add as="toBack" action="toBack" icon="images/toback.gif" if="cell"/>
    +			<separator/>
    +			<add as="editStyle" action="editStyle" if="cell"/>
    +		</add>
    +		<add as="format" if="cell">
    +			<add as="fillColor" action="fillColor" icon="images/fillcolor.gif" if="cell"/>
    +			<add as="gradientColor" action="gradientColor" if="cell"/>
    +			<add as="strokeColor" action="strokeColor" icon="images/linecolor.gif" if="cell"/>
    +			<separator/>
    +			<add as="toggleRounded" action="toggleRounded" if="cell"/>
    +			<add as="toggleShadow" action="toggleShadow" if="cell"/>
    +		</add>
    +		<add as="font" if="cell">
    +			<add as="fontColor" action="fontColor" icon="images/fontcolor.gif" if="cell"/>
    +			<add as="fontFamily" action="fontFamily" if="cell"/>
    +			<add as="fontSize" action="fontSize" if="cell"/>
    +			<separator/>
    +			<add as="bold" action="bold" icon="images/bold.gif" if="cell"/>
    +			<add as="italic" action="italic" icon="images/italic.gif" if="cell"/>
    +		</add>
    +		<separator/>
    +		<add as="properties" action="showProperties" icon="images/properties.gif"/>
    +		<separator/>
    +		<add as="openHref" action="openHref" icon="images/link.gif"/>
    +	</mxDefaultPopupMenu>
    +	<include name="config/keyhandler-commons.xml"/>
    +	<Array as="actions">
    +		<add as="open"><![CDATA[
    +			function (editor)
    +			{
    +				editor.open(mxUtils.prompt('Enter filename', 'workflow.xml'));
    +			}
    +		]]></add>
    +		<add as="openHref"><![CDATA[
    +			function (editor, cell)
    +			{
    +				cell = cell || editor.graph.getSelectionCell();
    +				
    +				if (cell == null)
    +				{
    +					cell = editor.graph.getCurrentRoot();
    +
    +					if (cell == null)
    +					{
    +						cell = editor.graph.getModel().getRoot();
    +					}
    +				}
    +
    +				if (cell != null)
    +				{
    +					var href = cell.getAttribute('href');
    +					
    +					if (href != null && href.length > 0)
    +					{
    +						window.open(href);
    +					}
    +					else
    +					{
    +						mxUtils.alert('No URL defined. Showing properties...');
    +						editor.execute('showProperties', cell);
    +					}
    +				}
    +			}
    +		]]></add>
    +		<add as="editStyle"><![CDATA[
    +			function (editor)
    +			{
    +				var cell = editor.graph.getSelectionCell();
    +				
    +				if (cell != null)
    +				{
    +					var model = editor.graph.getModel();
    +					var style = mxUtils.prompt(mxResources.get('enterStyle'), model.getStyle(cell) || '');
    +
    +					if (style != null)
    +					{
    +						model.setStyle(cell, style);
    +					}
    +				}
    +			}
    +		]]></add>
    +		<add as="fillColor"><![CDATA[
    +			function (editor)
    +			{
    +				var color = mxUtils.prompt(mxResources.get('enterColorname'), 'red');
    +				
    +				if (color != null)
    +				{
    +					editor.graph.model.beginUpdate();
    +					try
    +					{
    +						editor.graph.setCellStyles("strokeColor", color);
    +						editor.graph.setCellStyles("fillColor", color);
    +					}
    +					finally
    +					{
    +						editor.graph.model.endUpdate();
    +					}
    +				}
    +			}
    +		]]></add>
    +		<add as="gradientColor"><![CDATA[
    +			function (editor)
    +			{
    +				var color = mxUtils.prompt(mxResources.get('enterColorname'), 'white');
    +				
    +				if (color != null)
    +				{
    +					editor.graph.setCellStyles("gradientColor", color);
    +				}
    +			}
    +		]]></add>
    +		<add as="strokeColor"><![CDATA[
    +			function (editor)
    +			{
    +				var color = mxUtils.prompt(mxResources.get('enterColorname'), 'red');
    +				
    +				if (color != null)
    +				{
    +					editor.graph.setCellStyles("strokeColor", color);
    +				}
    +			}
    +		]]></add>
    +		<add as="fontColor"><![CDATA[
    +			function (editor)
    +			{
    +				var color = mxUtils.prompt(mxResources.get('enterColorname'), 'red');
    +				
    +				if (color != null)
    +				{
    +					editor.graph.setCellStyles("fontColor", color);
    +				}
    +			}
    +		]]></add>
    +		<add as="fontFamily"><![CDATA[
    +			function (editor)
    +			{
    +				var family = mxUtils.prompt(mxResources.get('enterFontfamily'), 'Arial');
    +				
    +				if (family != null && family.length > 0)
    +				{
    +					editor.graph.setCellStyles("fontFamily", family);
    +				}
    +			}
    +		]]></add>
    +		<add as="fontSize"><![CDATA[
    +			function (editor)
    +			{
    +				var size = mxUtils.prompt(mxResources.get('enterFontsize'), '10');
    +				
    +				if (size != null && size > 0 && size < 999)
    +				{
    +					editor.graph.setCellStyles("fontSize", size);
    +				}
    +			}
    +		]]></add>
    +		<add as="image"><![CDATA[
    +			function (editor)
    +			{
    +				var image = mxUtils.prompt(mxResources.get('enterImageUrl'),
    +					'examples/images/image.gif');
    +				
    +				if (image != null)
    +				{
    +					editor.graph.setCellStyles("image", image);
    +				}
    +			}
    +		]]></add>
    +		<add as="opacity"><![CDATA[
    +			function (editor)
    +			{
    +				var opacity = mxUtils.prompt(mxResources.get('enterOpacity'), '100');
    +				
    +				if (opacity != null && opacity >= 0 && opacity <= 100)
    +				{
    +					editor.graph.setCellStyles("opacity", opacity);
    +				}
    +			}
    +		]]></add>
    +		<add as="straightConnector"><![CDATA[
    +			function (editor)
    +			{
    +				editor.graph.setCellStyle("straightEdge");
    +			}
    +		]]></add>
    +		<add as="elbowConnector"><![CDATA[
    +			function (editor)
    +			{
    +				editor.graph.setCellStyle("");
    +			}
    +		]]></add>
    +		<add as="arrowConnector"><![CDATA[
    +			function (editor)
    +			{
    +				editor.graph.setCellStyle("arrowEdge");
    +			}
    +		]]></add>
    +		<add as="toggleOrientation"><![CDATA[
    +			function (editor, cell)
    +			{
    +				editor.graph.toggleCellStyles(mxConstants.STYLE_HORIZONTAL, true);
    +			}
    +		]]></add>
    +		<add as="toggleRounded"><![CDATA[
    +			function (editor)
    +			{
    +				editor.graph.toggleCellStyles(mxConstants.STYLE_ROUNDED);
    +			}
    +		]]></add>
    +		<add as="toggleShadow"><![CDATA[
    +			function (editor)
    +			{
    +				editor.graph.toggleCellStyles(mxConstants.STYLE_SHADOW);
    +			}
    +		]]></add>
    +		<add as="horizontalTree"><![CDATA[
    +			function (editor, cell)
    +			{
    +				cell = cell || editor.graph.getSelectionCell();
    +				
    +				if (cell == null)
    +				{
    +					cell = editor.graph.getDefaultParent();
    +				}
    +				
    +				editor.treeLayout(cell, true);
    +			}
    +		]]></add>
    +		<add as="verticalTree"><![CDATA[
    +			function (editor, cell)
    +			{
    +				cell = cell || editor.graph.getSelectionCell();
    +				
    +				if (cell == null)
    +				{
    +					cell = editor.graph.getDefaultParent();
    +				}
    +				
    +				editor.treeLayout(cell, false);
    +			}
    +		]]></add>
    +	</Array>
    +</mxEditor>
    diff --git a/javascript/examples/editors/config/keyhandler-commons.xml b/javascript/examples/editors/config/keyhandler-commons.xml
    new file mode 100644
    index 000000000..1e2c159c8
    --- /dev/null
    +++ b/javascript/examples/editors/config/keyhandler-commons.xml
    @@ -0,0 +1,27 @@
    +<mxEditor>
    +	<mxDefaultKeyHandler as="keyHandler">
    +		<add as="8" action="collapse"/>
    +		<add as="13" action="expand"/>
    +		<add as="33" action="exitGroup"/>
    +		<add as="34" action="enterGroup"/>
    +		<add as="35" action="refresh"/>
    +		<add as="36" action="home"/>
    +		<add as="37" action="selectPrevious"/>
    +		<add as="38" action="selectParent"/>
    +		<add as="40" action="selectChild"/>
    +		<add as="39" action="selectNext"/>
    +		<add as="46" action="delete"/>
    +		<add as="65" control="1" action="selectAll"/>
    +		<add as="90" control="1" action="undo"/>
    +		<add as="89" control="1" action="redo"/>
    +		<add as="88" control="1" action="cut"/>
    +		<add as="67" control="1" action="copy"/>
    +		<add as="86" control="1" action="paste"/>
    +		<add as="71" control="1" action="group"/>
    +		<add as="85" control="1" action="ungroup"/>
    +		<add as="113" action="edit"/>		
    +		<add as="123" action="showProperties"/>
    +		<add as="107" action="zoomIn"/>
    +		<add as="109" action="zoomOut"/>
    +	</mxDefaultKeyHandler>
    +</mxEditor>
    diff --git a/javascript/examples/editors/config/keyhandler-minimal.xml b/javascript/examples/editors/config/keyhandler-minimal.xml
    new file mode 100644
    index 000000000..7f4ce3cb4
    --- /dev/null
    +++ b/javascript/examples/editors/config/keyhandler-minimal.xml
    @@ -0,0 +1,16 @@
    +<mxEditor>
    +	<mxDefaultKeyHandler as="keyHandler">
    +		<add as="35" action="refresh"/>
    +		<add as="37" action="selectPrevious"/>
    +		<add as="38" action="selectParent"/>
    +		<add as="40" action="selectChild"/>
    +		<add as="39" action="selectNext"/>
    +		<add as="46" action="delete"/>
    +		<add as="65" control="1" action="selectAll"/>
    +		<add as="90" control="1" action="undo"/>
    +		<add as="89" control="1" action="redo"/>
    +		<add as="113" action="edit"/>		
    +		<add as="107" action="zoomIn"/>
    +		<add as="109" action="zoomOut"/>
    +	</mxDefaultKeyHandler>
    +</mxEditor>
    diff --git a/javascript/examples/editors/config/layouteditor.xml b/javascript/examples/editors/config/layouteditor.xml
    new file mode 100644
    index 000000000..09f3a097a
    --- /dev/null
    +++ b/javascript/examples/editors/config/layouteditor.xml
    @@ -0,0 +1,36 @@
    +<mxEditor layoutDiagram="1" layoutSwimlanes="1" maintainSwimlanes="1">
    +	<include name="config/wfeditor-commons.xml"/>
    +	<ui>
    +		<add as="graph" element="graph"
    +			style="left:70px;right:20px;top:20px;bottom:40px"/>
    +		<add as="status" element="status"
    +			style="height:20px;bottom:20px;left:20px;right:20px"/>
    +		<add as="toolbar" x="10" y="20" width="54"/>
    +	</ui>
    +	<Array as="templates">
    +		<add as="swimlane">
    +			<Swimlane label="Swimlane" customAttribute="text value">
    +				<mxCell vertex="1" style="swimlane;horizontal=1" connectable="0">
    +					<mxGeometry as="geometry" width="190" height="400"/>
    +				</mxCell>
    +			</Swimlane>
    +		</add>
    +	</Array>
    +	<mxGraph as="graph" swimlaneNesting="0">
    +		<include name="config/wfgraph-commons.xml"/>
    +		<mxStylesheet as="stylesheet">
    +			<add as="defaultEdge">
    +				<add as="shape" value="connector"/>
    +				<add as="elbow" value="vertical"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="strokeColor" value="black"/>
    +				<add as="rounded" value="1"/>
    +				<add as="edgeStyle" value="elbowEdgeStyle"/>
    +				<add as="endArrow" value="classic"/>
    +			</add>
    +		</mxStylesheet>
    +	</mxGraph>
    +	<mxDefaultToolbar as="toolbar">
    +		<include name="config/wftoolbar-commons.xml"/>
    +	</mxDefaultToolbar>
    +</mxEditor>
    diff --git a/javascript/examples/editors/config/processeditor.xml b/javascript/examples/editors/config/processeditor.xml
    new file mode 100644
    index 000000000..8d2bc7f4e
    --- /dev/null
    +++ b/javascript/examples/editors/config/processeditor.xml
    @@ -0,0 +1,332 @@
    +<mxEditor defaultGroup="group" defaultEdge="edge"
    +	layoutDiagram="1" maintainSwimlanes="1"
    +	swimlaneRequired="1" forcedInserting="1"
    +	helpWindowImage="images/help.gif"
    +	tasksWindowImage="images/tasks.gif">
    +	<include name="config/editor-commons.xml"/>
    +	<add as="onInit"><![CDATA[
    +		function ()
    +		{
    +			// Disables removing cells from parents
    +			this.graph.graphHandler.setRemoveCellsFromParent(false);
    +			this.showTasks();
    +			this.showHelp();
    +		}
    +	]]></add>
    +	<ui>
    +		<stylesheet name="css/process.css"/>
    +		<add as="graph" element="graph"/>
    +		<add as="status" element="status"/>
    +		<add as="toolbar" element="toolbar"/>
    +	</ui>
    +	<Array as="cycleAttributeValues">
    +		<add value="#83027F"/>
    +		<add value="#66B922"/>
    +		<add value="#808913"/>
    +		<add value="#CF0056"/>
    +		<add value="#4679B6"/>
    +	</Array>
    +	<Array as="templates">
    +		<add as="group">
    +			<Group label="" description="">
    +				<mxCell vertex="1" style="group" connectable="0"/>
    +			</Group>
    +		</add>
    +		<add as="edge">
    +			<Edge label="" description="">
    +				<mxCell edge="1">
    +					<mxGeometry as="geometry" isRelative="1"/>
    +				</mxCell>
    +			</Edge>
    +		</add>
    +		<add as="swimlane">
    +			<Swimlane label="Role" customAttribute="text value">
    +				<mxCell vertex="1" style="swimlane" connectable="0">
    +					<mxGeometry as="geometry" width="160" height="400"/>
    +				</mxCell>
    +			</Swimlane>
    +		</add>
    +		<add as="task">
    +			<Task label="Task">
    +				<mxCell vertex="1">	
    +					<mxGeometry as="geometry" width="80" height="30"/>
    +				</mxCell>
    +			</Task>
    +		</add>
    +		<add as="subprocess">
    +			<Subprocess label="Subprocess">
    +				<mxCell vertex="1" style="rounded">		
    +					<mxGeometry as="geometry" width="80" height="30"/>
    +				</mxCell>
    +			</Subprocess>
    +		</add>
    +		<add as="shape">
    +			<Shape label="Element">
    +				<mxCell vertex="1" style="ellipse">		
    +					<mxGeometry as="geometry" width="60" height="50"/>
    +				</mxCell>
    +			</Shape>
    +		</add>
    +		<add as="hline">
    +			<Shape label="">
    +				<mxCell vertex="1" style="ellipse">		
    +					<mxGeometry as="geometry" width="60" height="10"/>
    +				</mxCell>
    +			</Shape>
    +		</add>
    +	</Array>
    +	<add as="createTasks"><![CDATA[
    +		function (div)
    +		{
    +			var off = 30;
    +			
    +			if (this.graph != null)
    +			{
    +				var layer = this.graph.getModel().getRoot().getChildAt(0);
    +				
    +				if (layer == null || layer.getChildCount() == 0)
    +				{
    +					mxUtils.para(div, 'Examples:');
    +					mxUtils.linkInvoke(div, 'Withdrawal', this, 'open',
    +						'diagrams/withdrawal.xml', off);
    +					mxUtils.br(div);
    +				}
    +				else
    +				{
    +					mxUtils.para(div, 'Clipboard:');
    +					
    +					if (!this.graph.isSelectionEmpty())
    +					{
    +						mxUtils.linkAction(div, 'Copy to Clipboard', this, 'copy', off);
    +						mxUtils.br(div);
    +					}
    +					
    +					mxUtils.linkAction(div, 'Paste from Clipboard', this, 'paste', off);
    +					mxUtils.br(div);
    +					
    +					if (!this.graph.isSelectionEmpty())
    +					{
    +						mxUtils.linkAction(div, 'Delete Selected Cells', this, 'delete', off);
    +						mxUtils.br(div);
    +						mxUtils.linkAction(div, 'Clear Selection', this, 'selectNone', off);
    +						mxUtils.br(div);
    +					}
    +					else
    +					{
    +						mxUtils.linkAction(div, 'Select All Cells', this, 'selectAll', off);
    +						mxUtils.br(div);
    +					}
    +					
    +					mxUtils.para(div, 'History:');
    +					mxUtils.linkAction(div, 'Undo Last Change', this, 'undo', off);
    +					mxUtils.br(div);
    +					mxUtils.linkAction(div, 'Redo Last Change', this, 'redo', off);
    +					mxUtils.br(div);
    +				}
    +				
    +				mxUtils.br(div);
    +			}
    +		}
    +	]]></add>
    +	<mxGraph as="graph" alternateEdgeStyle="verticalEdge"
    +		swimlaneNesting="0" dropEnabled="1">
    +		<add as="isAutoSizeCell"><![CDATA[
    +			function(cell)
    +			{
    +				return this.isSwimlane(cell);
    +			}
    +		]]></add>
    +		<add as="isValidRoot"><![CDATA[
    +			function(cell)
    +			{
    +				return !this.isSwimlane(cell);
    +			}
    +		]]></add>
    +		<add as="isCellFoldable"><![CDATA[
    +			function(cell, collapse)
    +			{
    +				return !this.isSwimlane(cell) &&
    +					cell.getChildCount() > 0;
    +			}
    +		]]></add>
    +		<add as="isSwimlane">
    +			function (cell)
    +			{
    +				return mxUtils.isNode(this.model.getValue(cell), 'swimlane');
    +			}
    +		</add>
    +		<add as="isAllowOverlapParent">
    +			function(cell)
    +			{
    +				return !this.isSwimlane(cell.parent);
    +			}
    +		</add>
    +		<add as="getTooltipForCell"><![CDATA[
    +			function(cell)
    +			{
    +				return '<b>'+cell.getAttribute('label')+
    +						'</b> ('+cell.getId()+')'+
    +						'<br>Style: '+cell.getStyle()+
    +						'<br>Edges: '+cell.getEdgeCount()+
    +						'<br>Children: '+cell.getChildCount();
    +			}
    +		]]></add>
    +		<add as="convertValueToString"><![CDATA[
    +			function(cell)
    +			{
    +				return cell.getAttribute('label');
    +			}
    +		]]></add>
    +		<mxStylesheet as="stylesheet">
    +			<add as="defaultVertex">
    +				<add as="shape" value="rectangle"/>
    +				<add as="perimeter" value="rectanglePerimeter"/>
    +				<add as="fontColor" value="black"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="middle"/>
    +				<add as="fillColor" value="indicated"/>
    +				<add as="indicatorColor" value="swimlane"/>
    +				<add as="gradientColor" value="white"/>
    +			</add>
    +			<add as="group">
    +				<add as="shape" value="rectangle"/>
    +				<add as="perimeter" value="rectanglePerimeter"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="middle"/>
    +				<add as="strokeColor" value="gray"/>
    +				<add as="dashed" value="1"/>
    +			</add>
    +			<add as="defaultEdge">
    +				<add as="shape" value="connector"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="rounded" value="1"/>
    +				<add as="strokeColor" value="gray"/>
    +				<add as="edgeStyle" value="elbowEdgeStyle"/>
    +				<add as="endArrow" value="classic"/>
    +			</add>
    +			<add as="verticalEdge">
    +				<add as="elbow" value="vertical"/>
    +			</add>
    +			<add as="swimlane">
    +				<add as="shape" value="swimlane"/>
    +				<add as="perimeter" value="rectanglePerimeter"/>
    +				<add as="fontSize" value="12"/>
    +				<add as="startSize" value="23"/>
    +				<add as="rounded" value="1"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="top"/>
    +				<add as="fontColor" value="white"/>
    +				<add as="separatorColor" value="#9597BE"/>
    +			</add>
    +			<add as="rounded">
    +				<add as="rounded" value="1"/>
    +			</add>
    +			<add as="ellipse">
    +				<add as="shape" value="label"/>
    +				<add as="indicatorShape" value="ellipse"/>
    +				<add as="indicatorWidth" value="34"/>
    +				<add as="indicatorHeight" value="34"/>
    +				<add as="imageVerticalAlign" value="top"/>
    +				<add as="imageAlign" value="center"/>
    +				<add as="spacingTop" value="40"/>
    +				<add as="perimeter" value="rectanglePerimeter"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="top"/>
    +				<add as="indicatorColor" value="swimlane"/>
    +				<add as="indicatorGradientColor" value="white"/>
    +				<add as="fillColor" value="none"/>
    +				<add as="gradientColor" value="none"/>
    +			</add>
    +			<add as="rhombus" extend="ellipse">
    +				<add as="indicatorShape" value="rhombus"/>
    +			</add>
    +			<add as="actor" extend="ellipse">
    +				<add as="indicatorShape" value="actor"/>
    +				<add as="indicatorWidth" value="26"/>
    +			</add>
    +			<add as="cylinder" extend="actor">
    +				<add as="indicatorShape" value="cylinder"/>
    +				<add as="imageVerticalAlign" value="bottom"/>
    +				<add as="indicatorHeight" value="30"/>
    +				<add as="verticalAlign" value="top"/>
    +				<add as="spacingTop" value="0"/>
    +			</add>
    +			<add as="hline">
    +				<add as="shape" value="line"/>
    +				<add as="strokeWidth" value="3"/>
    +				<add as="perimeter" value="rectanglePerimeter"/>
    +				<add as="fontColor" value="black"/>
    +				<add as="fontSize" value="10"/>
    +				<add as="align" value="center"/>
    +				<add as="verticalAlign" value="bottom"/>
    +				<add as="strokeColor" value="indicated"/>
    +			</add>
    +		</mxStylesheet>
    +		<mxGraphModel as="model">
    +			<add as="valueForCellChanged"><![CDATA[
    +				function(cell, value)
    +				{
    +					var previous = null;
    +					
    +					if (isNaN(value.nodeType))
    +					{
    +						previous = cell.getAttribute('label');
    +						cell.setAttribute('label', value);
    +					}
    +					else
    +					{
    +						previous = cell.value;
    +						cell.value = value;
    +					}
    +					
    +					return previous;
    +				}
    +			]]></add>
    +			<root>
    +				<Workflow label="MyWorkflow" id="0"/>
    +				<Layer label="Default Layer">
    +					<mxCell parent="0"/>
    +				</Layer>
    +			</root>
    +		</mxGraphModel>
    +	</mxGraph>
    +	<mxDefaultToolbar as="toolbar">
    +		<add as="Save" action="save" icon="images/save.gif"/>
    +		<separator/>
    +		<add as="Undo" action="undo" icon="images/undo.gif"/>
    +		<add as="Redo" action="redo" icon="images/redo.gif"/>
    +		<add as="Cut" action="cut" icon="images/cut.gif"/>
    +		<add as="Copy" action="copy" icon="images/copy.gif"/>
    +		<add as="Paste" action="paste" icon="images/paste.gif"/>
    +		<add as="Delete" action="delete" icon="images/delete.gif"/>
    +		<add as="Group" action="group" icon="images/group.gif"/>
    +		<add as="Ungroup" action="ungroup" icon="images/ungroup.gif"/>
    +		<separator/>
    +		<add as="Select" mode="select" icon="images/select.gif"/>
    +		<add as="Pan" mode="pan" icon="images/pan.gif"/>
    +		<add as="Connect" mode="connect" icon="images/connect.gif"/>
    +		<separator/>
    +		<add as="Swimlane" template="swimlane" icon="images/swimlane.gif"/>
    +		<add as="Task" template="task" icon="images/rectangle.gif"/>
    +		<add as="Subprocess" template="subprocess" icon="images/rounded.gif"/>
    +		<add as="Ellipse" template="shape" style="ellipse" icon="images/ellipse.gif"/>
    +		<add as="Rhombus" template="shape" style="rhombus" icon="images/rhombus.gif"/>
    +		<add as="Actor" template="shape" style="actor" icon="images/actor.gif"/>
    +		<add as="Cylinder" template="shape" style="cylinder" icon="images/cylinder.gif"/>
    +		<add as="Line" template="hline" style="hline" icon="images/hline.gif"/>
    +		<separator/>
    +		<add as="Fit" action="fit" icon="images/zoom.gif"/>
    +		<add as="Zoom In" action="zoomIn" icon="images/zoomin.gif"/>
    +		<add as="Zoom Out" action="zoomOut" icon="images/zoomout.gif"/>
    +		<add as="Actual Size" action="actualSize" icon="images/zoomactual.gif"/>
    +		<add as="Zoom" action="zoom" icon="images/zoom.gif"/>
    +		<separator/>
    +		<add as="outline" action="toggleOutline" icon="images/outline.gif"/>
    +		<add as="Tasks" action="toggleTasks" icon="images/tasks.gif"/>
    +		<add as="Help" action="toggleHelp" icon="images/help.gif"/>
    +		<add as="Console" action="toggleConsole" icon="images/console.gif"/>
    +	</mxDefaultToolbar>
    +</mxEditor>
    diff --git a/javascript/examples/editors/config/wfeditor-commons.xml b/javascript/examples/editors/config/wfeditor-commons.xml
    new file mode 100644
    index 000000000..eea4da313
    --- /dev/null
    +++ b/javascript/examples/editors/config/wfeditor-commons.xml
    @@ -0,0 +1,184 @@
    +<mxEditor defaultGroup="group" defaultEdge="edge"
    +	helpWindowImage="images/help.gif"
    +	tasksWindowImage="images/tasks.gif"
    +	forcedInserting="0"
    +	swimlaneRequired="0">
    +	<include name="config/editor-commons.xml"/>
    +	<add as="onInit">
    +		function ()
    +		{
    +			this.showTasks();
    +		}
    +	</add>
    +	<Array as="cycleAttributeValues">
    +		<add value="#83027F"/>
    +		<add value="#66B922"/>
    +		<add value="#808913"/>
    +		<add value="#CF0056"/>
    +		<add value="#4679B6"/>
    +	</Array>
    +	<Array as="templates">
    +		<add as="group">
    +			<Group label="" description="" href="">
    +				<mxCell vertex="1" style="group" connectable="0"/>
    +			</Group>
    +		</add>
    +		<add as="edge">
    +			<Edge label="" description="">
    +				<mxCell edge="1">
    +					<mxGeometry as="geometry" relative="1"/>
    +				</mxCell>
    +			</Edge>
    +		</add>
    +		<add as="swimlane">
    +			<Swimlane label="Swimlane" description="" href="">
    +				<mxCell vertex="1" style="swimlane" connectable="0">
    +					<mxGeometry as="geometry" width="300" height="160"/>
    +				</mxCell>
    +			</Swimlane>
    +		</add>
    +		<add as="task">
    +			<Task label="Task" description="" href="">
    +				<mxCell vertex="1">	
    +					<mxGeometry as="geometry" width="72" height="32"/>
    +				</mxCell>
    +			</Task>
    +		</add>
    +		<add as="subprocess">
    +			<Subprocess label="Subprocess" description="" href="">
    +				<mxCell vertex="1" style="rounded">		
    +					<mxGeometry as="geometry" width="72" height="32"/>
    +				</mxCell>
    +			</Subprocess>
    +		</add>
    +		<add as="shape">
    +			<Shape label="" description="" href="">
    +				<mxCell vertex="1" style="ellipse">		
    +					<mxGeometry as="geometry" width="32" height="32"/>
    +				</mxCell>
    +			</Shape>
    +		</add>
    +		<add as="symbol">
    +			<Symbol label="Symbol" description="" href="">
    +				<mxCell vertex="1" style="symbol;image=images/symbols/event.png">		
    +					<mxGeometry as="geometry" width="32" height="32"/>
    +				</mxCell>
    +			</Symbol>
    +		</add>
    +	</Array>
    +	<add as="createTasks"><![CDATA[
    +		function (div)
    +		{
    +			var off = 30;
    +			
    +			if (this.graph != null)
    +			{
    +				var layer = this.graph.model.root.getChildAt(0);
    +				mxUtils.para(div,  mxResources.get('examples'));
    +				mxUtils.linkInvoke(div, mxResources.get('newDiagram'), this,
    +					'open', 'diagrams/empty.xml', off);
    +				mxUtils.br(div);
    +				mxUtils.linkInvoke(div, mxResources.get('swimlanes'), this,
    +					'open', 'diagrams/swimlanes.xml', off);
    +				mxUtils.br(div);
    +				mxUtils.linkInvoke(div, mxResources.get('travelBooking'), this,
    +					'open', 'diagrams/travel-booking.xml', off);
    +				mxUtils.br(div);
    +				
    +				if (!this.graph.isSelectionEmpty())
    +				{
    +					var cell = this.graph.getSelectionCell();
    +					if (this.graph.getSelectionCount() == 1 &&
    +						(this.graph.model.isVertex(cell) &&
    +						cell.getEdgeCount() > 0) || this.graph.isSwimlane(cell))
    +					{
    +						mxUtils.para(div, 'Layout');
    +						mxUtils.linkAction(div, mxResources.get('verticalTree'),
    +							this, 'verticalTree', off);
    +						mxUtils.br(div);
    +						mxUtils.linkAction(div, mxResources.get('horizontalTree'),
    +							this, 'horizontalTree', off);
    +						mxUtils.br(div);
    +					}
    +					
    +					mxUtils.para(div, 'Format');
    +					
    +					if (mxUtils.isNode(cell.value, 'Symbol'))
    +					{
    +						mxUtils.linkAction(div, mxResources.get('image'),
    +							this, 'image', off);
    +						mxUtils.br(div);
    +					}
    +					else
    +					{
    +						mxUtils.linkAction(div, mxResources.get('opacity'),
    +							this, 'opacity', off);
    +						mxUtils.br(div);
    +						if (this.graph.model.isVertex(cell) ||
    +							(cell.style != null && 
    +							cell.style.indexOf("arrowEdge") >= 0))
    +						{
    +							mxUtils.linkAction(div, mxResources.get('gradientColor'),
    +								this, 'gradientColor', off);
    +							mxUtils.br(div);
    +						}
    +						if (this.graph.model.isEdge(cell))
    +						{
    +							mxUtils.linkAction(div, 'Straight Connector', this, 'straightConnector', off);
    +							mxUtils.br(div);
    +							mxUtils.linkAction(div, 'Elbow Connector', this, 'elbowConnector', off);
    +							mxUtils.br(div);
    +							mxUtils.linkAction(div, 'Arrow Connector', this, 'arrowConnector', off);
    +							mxUtils.br(div);
    +						}
    +					}
    +					
    +					mxUtils.linkAction(div, 'Rounded', this, 'toggleRounded', off);
    +					mxUtils.br(div);
    +					if (this.graph.isSwimlane(cell) || this.graph.model.isEdge(cell))
    +					{
    +						mxUtils.linkAction(div, 'Orientation', this, 'toggleOrientation', off);
    +						mxUtils.br(div);
    +					}
    +					
    +					if (this.graph.getSelectionCount() > 1)
    +					{
    +						mxUtils.para(div, mxResources.get('align'));
    +						mxUtils.linkAction(div, mxResources.get('left'),
    +							this, 'alignCellsLeft', off);
    +						mxUtils.br(div);
    +						mxUtils.linkAction(div, mxResources.get('center'),
    +							this, 'alignCellsCenter', off);
    +						mxUtils.br(div);
    +						mxUtils.linkAction(div, mxResources.get('right'),
    +							this, 'alignCellsRight', off);
    +						mxUtils.br(div);
    +						mxUtils.linkAction(div, mxResources.get('top'),
    +							this, 'alignCellsTop', off);
    +						mxUtils.br(div);
    +						mxUtils.linkAction(div, mxResources.get('middle'),
    +							this, 'alignCellsMiddle', off);
    +						mxUtils.br(div);
    +						mxUtils.linkAction(div, mxResources.get('bottom'),
    +							this, 'alignCellsBottom', off);
    +						mxUtils.br(div);
    +					}
    +					
    +					mxUtils.para(div, mxResources.get('selection'));
    +					mxUtils.linkAction(div, mxResources.get('clearSelection'),
    +						this, 'selectNone', off);
    +					mxUtils.br(div);
    +				}
    +				else if (layer.getChildCount() > 0)
    +				{
    +					mxUtils.para(div, mxResources.get('selection'));
    +					mxUtils.linkAction(div, mxResources.get('selectAll'),
    +						this, 'selectAll', off);
    +					mxUtils.br(div);
    +				}
    +				
    +				mxUtils.br(div);
    +			}
    +		}
    +	]]></add>
    +</mxEditor>
    diff --git a/javascript/examples/editors/config/wfgraph-commons.xml b/javascript/examples/editors/config/wfgraph-commons.xml
    new file mode 100644
    index 000000000..b18dc48a1
    --- /dev/null
    +++ b/javascript/examples/editors/config/wfgraph-commons.xml
    @@ -0,0 +1,152 @@
    +<mxGraph alternateEdgeStyle="verticalEdge" dropEnabled="1">
    +	<add as="isAutoSizeCell"><![CDATA[
    +		function(cell)
    +		{
    +			return this.isSwimlane(cell);
    +		}
    +	]]></add>
    +	<add as="isSwimlane"><![CDATA[
    +		function (cell)
    +		{
    +			return mxUtils.isNode(this.model.getValue(cell), 'swimlane');
    +		}
    +	]]></add>
    +	<add as="isAllowOverlapParent"><![CDATA[
    +		function(cell)
    +		{
    +			return !this.isSwimlane(cell.parent);
    +		}
    +	]]></add>
    +	<add as="getTooltipForCell"><![CDATA[
    +		function(cell)
    +		{
    +			var href = cell.getAttribute('href');
    +			href = (href != null && href.length > 0) ?
    +				'<br>'+href : '';
    +			var maxlen = 30;
    +			var desc = cell.getAttribute('description');
    +			if (desc == null || desc.length == 0)
    +			{
    +				desc = '';
    +			}
    +			else if (desc.length < maxlen)
    +			{
    +				desc = '<br>'+desc;
    +			}
    +			else
    +			{
    +				desc = '<br>'+desc.substring(0, maxlen)+'...';
    +			}
    +			return '<b>'+cell.getAttribute('label')+
    +					'</b> ('+cell.getId()+')'+href+desc+
    +					'<br>Edges: '+cell.getEdgeCount()+
    +					'<br>Children: '+cell.getChildCount();
    +		}
    +	]]></add>
    +	<add as="convertValueToString">
    +		function(cell)
    +		{
    +			return cell.getAttribute('label');
    +		}
    +	</add>
    +	<mxGraphModel as="model">
    +		<add as="valueForCellChanged"><![CDATA[
    +			function(cell, value)
    +			{
    +				var previous = null;
    +				
    +				if (isNaN(value.nodeType))
    +				{
    +					previous = cell.getAttribute('label');
    +					cell.setAttribute('label', value);
    +				}
    +				else
    +				{
    +					previous = cell.value;
    +					cell.value = value;
    +				}
    +				
    +				return previous;
    +			}
    +		]]></add>
    +		<root>
    +			<Workflow label="MyWorkflow" description="" href="" id="0"/>
    +			<Layer label="Default Layer">
    +				<mxCell parent="0"/>
    +			</Layer>
    +		</root>
    +	</mxGraphModel>
    +	<mxStylesheet as="stylesheet">
    +		<add as="defaultVertex">
    +			<add as="shape" value="label"/>
    +			<add as="perimeter" value="rectanglePerimeter"/>
    +			<add as="labelBackgroundColor" value="white"/>
    +			<add as="fontSize" value="10"/>
    +			<add as="align" value="center"/>
    +			<add as="verticalAlign" value="middle"/>
    +			<add as="strokeColor" value="black"/>
    +		</add>
    +		<add as="defaultEdge">
    +			<add as="shape" value="connector"/>
    +			<add as="labelBackgroundColor" value="white"/>
    +			<add as="rounded" value="1"/>
    +			<add as="edgeStyle" value="elbowEdgeStyle"/>
    +			<add as="endArrow" value="classic"/>
    +			<add as="fontSize" value="10"/>
    +			<add as="align" value="center"/>
    +			<add as="verticalAlign" value="middle"/>
    +			<add as="strokeColor" value="black"/>
    +		</add>
    +		<add as="verticalEdge">
    +			<add as="elbow" value="vertical"/>
    +		</add>
    +		<add as="straightEdge">
    +			<add as="shape" value="connector"/>
    +			<add as="endArrow" value="classic"/>
    +		</add>
    +		<add as="arrowEdge">
    +			<add as="shape" value="arrow"/>
    +			<add as="fillColor" value="red"/>
    +		</add>
    +		<add as="swimlane">
    +			<add as="shape" value="swimlane"/>
    +			<add as="fontSize" value="12"/>
    +			<add as="startSize" value="23"/>
    +			<add as="horizontal" value="0"/>
    +			<add as="verticalAlign" value="top"/>
    +			<add as="fontColor" value="white"/>
    +			<add as="labelBackgroundColor" value="none"/>
    +		</add>
    +		<add as="group">
    +			<add as="shape" value="rectangle"/>
    +			<add as="rounded" value="1"/>
    +			<add as="verticalAlign" value="top"/>
    +			<add as="strokeColor" value="black"/>
    +			<add as="dashed" value="1"/>
    +			<add as="opacity" value="50"/>
    +		</add>
    +		<add as="rounded">
    +			<add as="rounded" value="1"/>
    +		</add>
    +		<add as="ellipse">
    +			<add as="shape" value="ellipse"/>
    +			<add as="perimeter" value="ellipsePerimeter"/>
    +		</add>
    +		<add as="rhombus">
    +			<add as="shape" value="rhombus"/>
    +			<add as="perimeter" value="rhombusPerimeter"/>
    +		</add>
    +		<add as="actor">
    +			<add as="shape" value="actor"/>
    +		</add>
    +		<add as="symbol">
    +			<add as="shape" value="image"/>
    +			<add as="perimeter" value="rectanglePerimeter"/>
    +			<add as="labelBackgroundColor" value="white"/>
    +			<add as="fontSize" value="10"/>
    +			<add as="align" value="center"/>
    +			<add as="verticalAlign" value="top"/>
    +			<add as="verticalLabelPosition" value="bottom"/>
    +		</add>
    +	</mxStylesheet>
    +</mxGraph>
    diff --git a/javascript/examples/editors/config/wftoolbar-commons.xml b/javascript/examples/editors/config/wftoolbar-commons.xml
    new file mode 100644
    index 000000000..ca91e1e57
    --- /dev/null
    +++ b/javascript/examples/editors/config/wftoolbar-commons.xml
    @@ -0,0 +1,74 @@
    +<mxDefaultToolbar>
    +	<add as="save" action="save" icon="images/save.gif"/>
    +	<add as="show" action="show" icon="images/preview.gif"/>
    +	<add as="print" action="print" icon="images/print.gif"/>
    +	<add as="exportImage" action="exportImage" icon="images/image.gif"/>
    +	<br/><hr/>
    +	<add as="select" mode="select" icon="images/select.gif"/>
    +	<add as="pan" mode="pan" icon="images/pan.gif"/>
    +	<add as="connect" mode="connect" icon="images/connect.gif"><![CDATA[
    +		function (editor)
    +		{
    +			if (editor.defaultEdge != null)
    +			{
    +				editor.defaultEdge.style = null;
    +			}
    +		}
    +	]]></add>
    +	<add as="connect" mode="connect" icon="images/straight.gif"><![CDATA[
    +		function (editor)
    +		{
    +			if (editor.defaultEdge != null)
    +			{
    +				editor.defaultEdge.style = 'straightEdge';
    +			}
    +		}
    +	]]></add>
    +	<br/><hr/>
    +	<add as="undo" action="undo" icon="images/undo.gif"/>
    +	<add as="redo" action="redo" icon="images/redo.gif"/>
    +	<br/><hr/>
    +	<add as="cut" action="cut" icon="images/cut.gif"/>
    +	<add as="copy" action="copy" icon="images/copy.gif"/>
    +	<add as="paste" action="paste" icon="images/paste.gif"/>
    +	<add as="delete" action="delete" icon="images/delete.gif"/>
    +	<br/><hr/>
    +	<add as="group" action="group" icon="images/group.gif"/>
    +	<add as="ungroup" action="ungroup" icon="images/ungroup.gif"/>
    +	<br/><hr/>
    +	<add as="Swimlane" template="swimlane" icon="images/swimlane.gif"/>
    +	<add as="Task" template="task" icon="images/rectangle.gif"/>
    +	<add as="Subprocess" template="subprocess" icon="images/rounded.gif"/>
    +	<add as="Ellipse" template="shape" style="ellipse" icon="images/ellipse.gif"/>
    +	<add as="Rhombus" template="shape" style="rhombus" icon="images/rhombus.gif"/>
    +	<add as="Actor" template="shape" style="actor" icon="images/actor.gif"/>
    +	<br/><hr/>
    +	<add as="Event" template="symbol" style="symbol;image=images/symbols/event.png" icon="images/symbols/small_event.gif"/>
    +	<add as="Event (Intermediate)" template="symbol" style="symbol;image=images/symbols/event_intermediate.png" icon="images/symbols/small_event_intermediate.gif"/>
    +	<add as="Event (End)" template="symbol" style="symbol;image=images/symbols/event_end.png" icon="images/symbols/small_event_end.gif"/>
    +	<add as="Timer" template="symbol" style="symbol;image=images/symbols/timer.png" icon="images/symbols/small_timer.gif"/>
    +	<add as="Message" template="symbol" style="symbol;image=images/symbols/message.png" icon="images/symbols/small_message.gif"/>
    +	<add as="Message (Intermediate)" template="symbol" style="symbol;image=images/symbols/message_intermediate.png" icon="images/symbols/small_message_intermediate.gif"/>
    +	<add as="Message (End)" template="symbol" style="symbol;image=images/symbols/message_end.png" icon="images/symbols/small_message_end.gif"/>
    +	<add as="Terminate" template="symbol" style="symbol;image=images/symbols/terminate.png" icon="images/symbols/small_terminate.gif"/>
    +	<add as="Link" template="symbol" style="symbol;image=images/symbols/link.png" icon="images/symbols/small_link.gif"/>
    +	<add as="Rule" template="symbol" style="symbol;image=images/symbols/rule.png" icon="images/symbols/small_rule.gif"/>
    +	<add as="Multiple" template="symbol" style="symbol;image=images/symbols/multiple.png" icon="images/symbols/small_multiple.gif"/>
    +	<add as="Error" template="symbol" style="symbol;image=images/symbols/error.png" icon="images/symbols/small_error.gif"/>
    +	<add as="Cancel (End)" template="symbol" style="symbol;image=images/symbols/cancel_end.png" icon="images/symbols/small_cancel_end.gif"/>
    +	<add as="Cancel (Intermediate)" template="symbol" style="symbol;image=images/symbols/cancel_intermediate.png" icon="images/symbols/small_cancel_intermediate.gif"/>
    +	<add as="Fork" template="symbol" style="symbol;image=images/symbols/fork.png" icon="images/symbols/small_fork.gif"/>
    +	<add as="Merge" template="symbol" style="symbol;image=images/symbols/merge.png" icon="images/symbols/small_merge.gif"/>
    +	<add as="Inclusive" template="symbol" style="symbol;image=images/symbols/inclusive.png" icon="images/symbols/small_inclusive.gif"/>
    +	<br/><hr/>
    +	<add as="fit" action="fit" icon="images/zoom.gif"/>
    +	<add as="zoomIn" action="zoomIn" icon="images/zoomin.gif"/>
    +	<add as="zoomOut" action="zoomOut" icon="images/zoomout.gif"/>
    +	<add as="actualSize" action="actualSize" icon="images/zoomactual.gif"/>
    +	<add as="zoom" action="zoom" icon="images/zoom.gif"/>
    +	<br/><hr/>
    +	<add as="outline" action="toggleOutline" icon="images/outline.gif"/>
    +	<add as="tasks" action="toggleTasks" icon="images/tasks.gif"/>
    +	<add as="help" action="toggleHelp" icon="images/help.gif"/>
    +	<add as="console" action="toggleConsole" icon="images/console.gif"/>
    +</mxDefaultToolbar>
    diff --git a/javascript/examples/editors/config/workfloweditor.xml b/javascript/examples/editors/config/workfloweditor.xml
    new file mode 100644
    index 000000000..846e7f358
    --- /dev/null
    +++ b/javascript/examples/editors/config/workfloweditor.xml
    @@ -0,0 +1,16 @@
    +<mxEditor>
    +	<include name="config/wfeditor-commons.xml"/>
    +	<ui>
    +		<add as="graph" element="graph"
    +			style="left:70px;right:20px;top:20px;bottom:40px"/>
    +		<add as="status" element="status"
    +			style="height:20px;bottom:20px;left:20px;right:20px"/>
    +		<add as="toolbar" x="16" y="20" width="50" style="padding:5px;padding-top:8px;padding-right:0px;"/>
    +	</ui>
    +	<mxGraph as="graph">
    +		<include name="config/wfgraph-commons.xml"/>
    +	</mxGraph>
    +	<mxDefaultToolbar as="toolbar">
    +		<include name="config/wftoolbar-commons.xml"/>
    +	</mxDefaultToolbar>
    +</mxEditor>
    diff --git a/javascript/examples/editors/css/process.css b/javascript/examples/editors/css/process.css
    new file mode 100644
    index 000000000..e5d01c064
    --- /dev/null
    +++ b/javascript/examples/editors/css/process.css
    @@ -0,0 +1,3 @@
    +img.mxToolbarMode {
    +	margin-right: 7px;
    +}
    diff --git a/javascript/examples/editors/css/wordpress.css b/javascript/examples/editors/css/wordpress.css
    new file mode 100644
    index 000000000..c6d4971f1
    --- /dev/null
    +++ b/javascript/examples/editors/css/wordpress.css
    @@ -0,0 +1,599 @@
    +/* Begin Typography & Colors */
    +body {
    +	font-size: 62.5%; /* Resets 1em to 10px */
    +	font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
    +	background: #d5d6d7 url('../images/draw/drawbgcolor.jpg');
    +	color: #333;
    +	text-align: center;
    +	}
    +
    +#page {
    +	background-color: white;
    +	border: 1px solid #959596;
    +	text-align: left;
    +	}
    +
    +#header {
    +	background: #73a0c5 url('../images/draw/drawheader.jpg') no-repeat bottom center;
    +	}
    +
    +#headerimg 	{ 
    +	margin: 7px 9px 0; 
    +	height: 62px; 
    +	width: 740px; 
    +	} 
    +
    +#content {
    +	font-size: 1.2em
    +	}
    +
    +.widecolumn .entry p {
    +	font-size: 1.05em;
    +	}
    +
    +.narrowcolumn .entry, .widecolumn .entry {
    +	line-height: 1.4em;
    +	}
    +
    +.widecolumn {
    +	line-height: 1.6em;
    +	}
    +
    +.narrowcolumn .postmetadata {
    +	text-align: center;
    +	}
    +
    +.alt {
    +	background-color: #f8f8f8;
    +	border-top: 1px solid #ddd;
    +	border-bottom: 1px solid #ddd;
    +	}
    +
    +pre {
    +	background: #f8f8f8;
    +	font-size: 12px;
    +	padding: 8px;
    +}
    +
    +#footer {
    +	background: #eee url('../images/draw/drawfooter.jpg') no-repeat top; 
    +	border: none;
    +	}
    +
    +small {
    +	font-family: Arial, Helvetica, Sans-Serif;
    +	font-size: 0.9em;
    +	line-height: 1.5em;
    +	}
    +
    +h1, h2, h3 {
    +	font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
    +	font-weight: bold;
    +	}
    +
    +h1 {
    +	font-size: 2em;
    +	text-align: center;
    +	}
    +
    +#headerimg .description {
    +	font-size: 1.2em;
    +	text-align: center;
    +	}
    +
    +h2 {
    +	font-size: 1.6em;
    +	}
    +
    +h2.pagetitle {
    +	font-size: 1.6em;
    +	}
    +
    +#sidebar h2 {
    +	font-family: 'Lucida Grande', Verdana, Sans-Serif;
    +	font-size: 1.2em;
    +	}
    +
    +h3 {
    +	font-size: 1.3em;
    +	}
    +
    +h1, h1 a, h1 a:hover, h1 a:visited, #headerimg .description {
    +	text-decoration: none;
    +	color: white;
    +	}
    +
    +h2, h2 a, h2 a:visited, h3, h3 a, h3 a:visited {
    +	color: #333;
    +	}
    +
    +h2, h2 a, h2 a:hover, h2 a:visited, h3, h3 a, h3 a:hover, h3 a:visited, #sidebar h2, #wp-calendar caption, cite {
    +	text-decoration: none;
    +	}
    +
    +.entry p a:visited {
    +	color: #b85b5a;
    +	}
    +
    +.commentlist li, #commentform input, #commentform textarea {
    +	font: 0.9em 'Lucida Grande', Verdana, Arial, Sans-Serif;
    +	}
    +
    +.commentlist li {
    +	font-weight: bold;
    +	}
    +
    +.commentlist cite, .commentlist cite a {
    +	font-weight: bold;
    +	font-style: normal;
    +	font-size: 1.1em;
    +	}
    +
    +.commentlist p {
    +	font-weight: normal;
    +	line-height: 1.5em;
    +	text-transform: none;
    +	}
    +
    +#commentform p {
    +	font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
    +	}
    +
    +.commentmetadata {
    +	font-weight: normal;
    +	}
    +
    +#sidebar {
    +	font: 1em 'Lucida Grande', Verdana, Arial, Sans-Serif;
    +	}
    +
    +small, #sidebar ul ul li, #sidebar ul ol li, .nocomments, .postmetadata, blockquote, strike {
    +	color: #777;
    +	}
    +
    +code {
    +	font: 1.1em 'Courier New', Courier, Fixed;
    +	}
    +
    +acronym, abbr, span.caps
    +{
    +	font-size: 0.9em;
    +	letter-spacing: .07em;
    +	}
    +
    +a, h2 a:hover, h3 a:hover {
    +	color: #06c;
    +	text-decoration: none;
    +	}
    +
    +a:hover {
    +	color: #147;
    +	text-decoration: underline;
    +	}
    +
    +#wp-calendar #prev a {
    +	font-size: 9pt;
    +	}
    +
    +#wp-calendar a {
    +	text-decoration: none;
    +	}
    +
    +#wp-calendar caption {
    +	font: bold 1.3em 'Lucida Grande', Verdana, Arial, Sans-Serif;
    +	text-align: center;
    +	}
    +
    +#wp-calendar th {
    +	font-style: normal;
    +	text-transform: capitalize;
    +	}
    +/* End Typography & Colors */
    +
    +
    +
    +/* Begin Structure */
    +body {
    +	margin: 0 0 20px 0;
    +	padding: 0; 
    +	}
    +
    +#page {
    +	background-color: white;
    +	margin: 20px auto;
    +	padding: 0;
    +	width: 760px;
    +	border: 1px solid #959596;
    +	}
    +
    +#header {
    +	background-color: #73a0c5;
    +	margin: 0 0 0 1px; 
    +	padding: 0; 
    +	height: 70px;
    +	width: 758px;
    +	}
    +
    +#headerimg {
    +	margin: 0;
    +	height: 70px;
    +	width: 100%;
    +	}
    +
    +.narrowcolumn {
    +	float: left;
    +	padding: 0 0 20px 45px;
    +	margin: 0px 0 0;
    +	width: 450px;
    +	}
    +
    +.widecolumn {
    +	padding: 10px 0 20px 0;
    +	margin: 5px 0 0 150px;
    +	width: 450px;
    +	}
    +
    +.post {
    +	margin: 0 0 40px;
    +/*	text-align: justify; */
    +	}
    +
    +.widecolumn .post {
    +	margin: 0;
    +	}
    +
    +.narrowcolumn .postmetadata {
    +	padding-top: 5px;
    +	}
    +
    +.widecolumn .postmetadata {
    +	margin: 30px 0;
    +	}
    +
    +.widecolumn .smallattachment {
    +	text-align: center;
    +	float: left;
    +	width: 128px;
    +	margin: 5px 5px 5px 0px;
    +}
    +
    +.widecolumn .attachment {
    +	text-align: center;
    +	margin: 5px 0px;
    +}
    +
    +.postmetadata {
    +	clear: left;
    +}
    +
    +#footer {
    +	padding: 0;
    +	margin: 0 auto;
    +	width: 760px;
    +	clear: both;
    +	}
    +
    +#footer p {
    +	margin: 0;
    +	padding: 20px 0;
    +	text-align: center;
    +	}
    +/* End Structure */
    +
    +
    +
    +/*	Begin Headers */
    +h1 {
    +	padding-top: 30px;
    +	margin: 0;
    +	}
    +
    +h2 {
    +	margin: 30px 0 0;
    +	}
    +
    +h2.pagetitle {
    +	margin-top: 30px;
    +	text-align: center;
    +}
    +
    +#sidebar h2 {
    +	margin: 5px 0 0;
    +	padding: 0;
    +	}
    +
    +h3 {
    +	padding: 0;
    +	margin: 30px 0 0;
    +	}
    +
    +h3.comments {
    +	padding: 0;
    +	margin: 40px auto 20px ;
    +	}
    +/* End Headers */
    +
    +
    +
    +/* Begin Images */
    +p img {
    +	padding: 0;
    +	max-width: 100%;
    +	}
    +
    +/*	Using 'class="alignright"' on an image will (who would've
    +	thought?!) align the image to the right. And using 'class="centered',
    +	will of course center the image. This is much better than using
    +	align="center", being much more futureproof (and valid) */
    +
    +img.centered {
    +	display: block;
    +	margin-left: auto;
    +	margin-right: auto;
    +	}
    +
    +img.alignright {
    +	padding: 4px;
    +	margin: 0 0 2px 7px;
    +	display: inline;
    +	}
    +
    +img.alignleft {
    +	padding: 4px;
    +	margin: 0 7px 2px 0;
    +	display: inline;
    +	}
    +
    +.alignright {
    +	float: right;
    +	}
    +
    +.alignleft {
    +	float: left
    +	}
    +/* End Images */
    +
    +
    +
    +/* Begin Lists
    +
    +	Special stylized non-IE bullets
    +	Do not work in Internet Explorer, which merely default to normal bullets. */
    +
    +html>body .entry ul {
    +	margin-left: 0px;
    +	padding: 0 0 0 30px;
    +	list-style: none;
    +	padding-left: 10px;
    +	text-indent: -10px;
    +	} 
    +
    +html>body .entry li {
    +	margin: 7px 0 8px 10px;
    +	}
    +
    +.entry ul li:before, #sidebar ul ul li:before {
    +	content: "\00BB \0020";
    +	}
    +
    +.entry ol {
    +	padding: 0 0 0 35px;
    +	margin: 0;
    +	}
    +
    +.entry ol li {
    +	margin: 0;
    +	padding: 0;
    +	}
    +
    +.postmetadata ul, .postmetadata li {
    +	display: inline;
    +	list-style-type: none;
    +	list-style-image: none;
    +	}
    +
    +#sidebar ul, #sidebar ul ol {
    +	margin: 0;
    +	padding: 0;
    +	}
    +
    +#sidebar ul li {
    +	list-style-type: none;
    +	list-style-image: none;
    +	margin-bottom: 15px;
    +	}
    +
    +#sidebar ul p, #sidebar ul select {
    +	margin: 5px 0 8px;
    +	}
    +
    +#sidebar ul ul, #sidebar ul ol {
    +	margin: 5px 0 0 10px;
    +	}
    +
    +#sidebar ul ul ul, #sidebar ul ol {
    +	margin: 0 0 0 10px;
    +	}
    +
    +ol li, #sidebar ul ol li {
    +	list-style: decimal outside;
    +	}
    +
    +#sidebar ul ul li, #sidebar ul ol li {
    +	margin: 3px 0 0;
    +	padding: 0;
    +	}
    +/* End Entry Lists */
    +
    +
    +
    +/* Begin Form Elements */
    +#searchform {
    +	margin: 10px auto;
    +	padding: 5px 3px; 
    +	text-align: center;
    +	}
    +
    +#sidebar #searchform #s {
    +	width: 108px;
    +	padding: 2px;
    +	}
    +
    +#sidebar #searchsubmit {
    +	padding: 1px;
    +	}
    +
    +.entry form { /* This is mainly for password protected posts, makes them look better. */
    +	text-align:center;
    +	}
    +
    +select {
    +	width: 130px;
    +	}
    +
    +#commentform input {
    +	width: 170px;
    +	padding: 2px;
    +	margin: 5px 5px 1px 0;
    +	}
    +
    +#commentform textarea {
    +	width: 100%;
    +	padding: 2px;
    +	}
    +
    +#commentform #submit {
    +	margin: 0;
    +	float: right;
    +	}
    +/* End Form Elements */
    +
    +
    +
    +/* Begin Comments*/
    +.alt {
    +	margin: 0;
    +	padding: 10px;
    +	}
    +
    +.commentlist {
    +	padding: 0;
    +/*	text-align: justify; */
    +	}
    +
    +.commentlist li {
    +	margin: 15px 0 3px;
    +	padding: 5px 10px 3px;
    +	list-style: none;
    +	}
    +
    +.commentlist p {
    +	margin: 10px 5px 10px 0;
    +	}
    +
    +#commentform p {
    +	margin: 5px 0;
    +	}
    +
    +.nocomments {
    +	text-align: center;
    +	margin: 0;
    +	padding: 0;
    +	}
    +
    +.commentmetadata {
    +	margin: 0;
    +	display: block;
    +	}
    +/* End Comments */
    +
    +
    +
    +/* Begin Sidebar */
    +#sidebar
    +{
    +	padding: 20px 0 10px 0;
    +	margin-left: 545px;
    +	width: 190px;
    +	}
    +
    +#sidebar form {
    +	margin: 0;
    +	}
    +/* End Sidebar */
    +
    +
    +
    +/* Begin Calendar */
    +#wp-calendar {
    +	empty-cells: show;
    +	margin: 10px auto 0;
    +	width: 155px;
    +	}
    +
    +#wp-calendar #next a {
    +	padding-right: 10px;
    +	text-align: right;
    +	}
    +
    +#wp-calendar #prev a {
    +	padding-left: 10px;
    +	text-align: left;
    +	}
    +
    +#wp-calendar a {
    +	display: block;
    +	}
    +
    +#wp-calendar caption {
    +	text-align: center;
    +	width: 100%;
    +	}
    +
    +#wp-calendar td {
    +	padding: 3px 0;
    +	text-align: center;
    +	}
    +
    +#wp-calendar td.pad:hover { /* Doesn't work in IE */
    +	background-color: #fff; }
    +/* End Calendar */
    +
    +
    +
    +/* Begin Various Tags & Classes */
    +acronym, abbr, span.caps {
    +	cursor: help;
    +	}
    +
    +acronym, abbr {
    +	border-bottom: 1px dashed #999;
    +	}
    +
    +blockquote {
    +	margin: 15px 30px 0 10px;
    +	padding-left: 20px;
    +	border-left: 5px solid #ddd;
    +	}
    +
    +blockquote cite {
    +	margin: 5px 0 0;
    +	display: block;
    +	}
    +
    +.center {
    +	text-align: center;
    +	}
    +
    +a img {
    +	border: none;
    +	}
    +
    +.navigation {
    +	display: block;
    +	text-align: center;
    +	margin-top: 10px;
    +	margin-bottom: 60px;
    +	}
    +/* End Various Tags & Classes*/
    +
    diff --git a/javascript/examples/editors/diagrameditor.html b/javascript/examples/editors/diagrameditor.html
    new file mode 100644
    index 000000000..f8c19efec
    --- /dev/null
    +++ b/javascript/examples/editors/diagrameditor.html
    @@ -0,0 +1,320 @@
    +<html>
    +<head>
    +	<title>mxDraw Example</title>
    + 	<link rel="stylesheet" href="css/wordpress.css" type="text/css" media="screen" />
    +	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    +	<style type="text/css" media="screen">
    +		#page { background: url("images/draw/drawbg.jpg") repeat-y top; border: none; }
    +	</style>
    +	<script type="text/javascript">
    +		mxBasePath = '../../src';
    +	</script>
    +	<script type="text/javascript" src="../../src/js/mxClient.js"></script>
    +	<script type="text/javascript" src="js/mxApplication.js"></script>
    +	<script type="text/javascript">
    +		// Program starts here. The document.onLoad executes the
    +		// mxApplication constructor with a given configuration.
    +		// In the config file, the mxEditor.onInit method is
    +		// overridden to invoke this global function as the
    +		// last step in the editor constructor.
    +		function onInit(editor)
    +		{
    +			// Crisp rendering in SVG except for connectors, actors, cylinder, ellipses
    +			mxShape.prototype.crisp = true;
    +			mxActor.prototype.crisp = false;
    +			mxCylinder.prototype.crisp = false;
    +			mxEllipse.prototype.crisp = false;
    +			mxDoubleEllipse.prototype.crisp = false;
    +			mxConnector.prototype.crisp = false;
    +			
    +			// Enables guides
    +			mxGraphHandler.prototype.guidesEnabled = true;
    +			
    +		    // Alt disables guides
    +		    mxGuide.prototype.isEnabledForEvent = function(evt)
    +		    {
    +		    	return !mxEvent.isAltDown(evt);
    +		    };
    +			
    +			// Enables snapping waypoints to terminals
    +			mxEdgeHandler.prototype.snapToTerminals = true;
    +			
    +			// Defines an icon for creating new connections in the connection handler.
    +			// This will automatically disable the highlighting of the source vertex.
    +			mxConnectionHandler.prototype.connectImage = new mxImage('images/connector.gif', 16, 16);
    +			
    +			// Enables connections in the graph and disables
    +			// reset of zoom and translate on root change
    +			// (ie. switch between XML and graphical mode).
    +			editor.graph.setConnectable(true);
    +
    +			// Clones the source if new connection has no target
    +			editor.graph.connectionHandler.setCreateTarget(true);
    +			
    +			// Displays information about the session
    +			// in the status bar
    +			editor.addListener(mxEvent.SESSION, function(editor, evt)
    +			{
    +				var session = evt.getProperty('session');
    +				
    +				if (session.connected)
    +				{
    +					var tstamp = new Date().toLocaleString();
    +					editor.setStatus(tstamp+':'+
    +						' '+session.sent+' bytes sent, '+
    +						' '+session.received+' bytes received');
    +				}
    +				else
    +				{
    +					editor.setStatus('Not connected');
    +				}
    +			});
    +			
    +			// Updates the title if the root changes
    +			var title = document.getElementById('title');
    +			
    +			if (title != null)
    +			{
    +				var f = function(sender)
    +				{
    +					title.innerHTML = 'mxDraw - ' + sender.getTitle();
    +				};
    +				
    +				editor.addListener(mxEvent.ROOT, f);
    +				f(editor);
    +			}
    +			
    +		    // Changes the zoom on mouseWheel events
    +		    mxEvent.addMouseWheelListener(function (evt, up)
    +		    {
    +			    if (!mxEvent.isConsumed(evt))
    +			    {
    +			    	if (up)
    +					{
    +			    		editor.execute('zoomIn');
    +					}
    +					else
    +					{
    +						editor.execute('zoomOut');
    +					}
    +					
    +					mxEvent.consume(evt);
    +			    }
    +		    });
    +
    +			// Defines a new action to switch between
    +			// XML and graphical display
    +			var textNode = document.getElementById('xml');
    +			var graphNode = editor.graph.container;
    +			var sourceInput = document.getElementById('source');
    +			sourceInput.checked = false;
    +
    +			var funct = function(editor)
    +			{
    +				if (sourceInput.checked)
    +				{
    +					graphNode.style.display = 'none';
    +					textNode.style.display = 'inline';
    +					
    +					var enc = new mxCodec();
    +					var node = enc.encode(editor.graph.getModel());
    +					
    +					textNode.value = mxUtils.getPrettyXml(node);
    +					textNode.originalValue = textNode.value;
    +					textNode.focus();
    +				}
    +				else
    +				{
    +					graphNode.style.display = '';
    +					
    +					if (textNode.value != textNode.originalValue)
    +					{
    +						var doc = mxUtils.parseXml(textNode.value);
    +						var dec = new mxCodec(doc);
    +						dec.decode(doc.documentElement, editor.graph.getModel());
    +					}
    +
    +					textNode.originalValue = null;
    +					
    +					// Makes sure nothing is selected in IE
    +					if (mxClient.IS_IE)
    +					{
    +						mxUtils.clearSelection();
    +					}
    +
    +					textNode.style.display = 'none';
    +
    +					// Moves the focus back to the graph
    +					textNode.blur();
    +					editor.graph.container.focus();
    +				}
    +			};
    +			
    +			editor.addAction('switchView', funct);
    +			
    +			// Client-side code for new image export
    +			var newExportImage = function(editor)
    +			{
    +    			var scale = 1;
    +    			var bounds = editor.graph.getGraphBounds();
    +    			
    +            	// Creates XML node to hold output
    +    			var xmlDoc = mxUtils.createXmlDocument();
    +    			var root = xmlDoc.createElement('output');
    +    			xmlDoc.appendChild(root);
    +
    +    			// Creates interface for rendering output
    +    			var xmlCanvas = new mxXmlCanvas2D(root);
    +    			xmlCanvas.scale(scale);
    +    			xmlCanvas.translate(Math.round(-bounds.x * scale), Math.round(-bounds.y * scale));
    +    			
    +    			// Renders output to interface
    +    			var imgExport = new mxImageExport();
    +    			imgExport.drawState(editor.graph.getView().getState(editor.graph.model.root), xmlCanvas);
    +
    +    			// Puts request data together
    +    			var filename = 'export.png';
    +    			var format = 'png';
    +    			var bg = '#FFFFFF';
    +    			var w = Math.round((bounds.width + 4) * scale);
    +    			var h = Math.round((bounds.height + 4) * scale);
    +    			var xml = mxUtils.getXml(root);
    +    			
    +    			// Compression is currently not used in this example
    +    			// Requires base64.js and redeflate.js
    +    			// xml = encodeURIComponent(Base64.encode(RawDeflate.deflate(xml), true));
    +
    +				new mxXmlRequest('/New' + editor.urlImage.substring(1), 'filename=' + filename +
    +						'&format=' + format + '&bg=' + bg + '&w=' + w + '&h=' + h + '&xml=' +
    +						encodeURIComponent(xml)).simulate(document, '_blank');
    +			};
    +			
    +			editor.addAction('newExportImage', newExportImage);
    +			
    +			// Defines a new action to switch between
    +			// XML and graphical display
    +			mxEvent.addListener(sourceInput, 'click', function()
    +			{
    +				editor.execute('switchView');
    +			});
    +
    +			// Create select actions in page
    +			var node = document.getElementById('mainActions');
    +			var buttons = ['group', 'delete', 'undo', 'print'];
    +			
    +			for (var i = 0; i < buttons.length; i++)
    +			{
    +				var button = document.createElement('button');
    +				mxUtils.write(button, mxResources.get(buttons[i]));
    +			
    +				var factory = function(name)
    +				{
    +					return function()
    +					{
    +						editor.execute(name);
    +					};
    +				};
    +			
    +				mxEvent.addListener(button, 'click', factory(buttons[i]));
    +				node.appendChild(button);
    +			}
    +
    +			var select = document.createElement('select');
    +			var option = document.createElement('option');
    +			mxUtils.writeln(option, 'More Actions...');
    +			select.appendChild(option);
    +
    +			var items = ['redo', 'ungroup', 'cut', 'copy', 'paste', 'show', 'exportImage', 'newExportImage'];
    +
    +			for (var i=0; i<items.length; i++)
    +			{
    +				var option = document.createElement('option');
    +				mxUtils.writeln(option, mxResources.get(items[i]));
    +				option.setAttribute('value', items[i]);
    +				select.appendChild(option);
    +			}
    +			
    +			mxEvent.addListener(select, 'change', function(evt)
    +			{
    +				if (select.selectedIndex > 0)
    +				{
    +					var option = select.options[select.selectedIndex];
    +					select.selectedIndex = 0;
    +				
    +					if (option.value != null)
    +					{
    +						editor.execute(option.value);
    +					}
    +				}
    +			});
    +			
    +			node.appendChild(select);
    +
    +			// Create select actions in page
    +			var node = document.getElementById('selectActions');
    +			mxUtils.write(node, 'Select: ');
    +			mxUtils.linkAction(node, 'All', editor, 'selectAll');
    +			mxUtils.write(node, ', ');
    +			mxUtils.linkAction(node, 'None', editor, 'selectNone');
    +			mxUtils.write(node, ', ');
    +			mxUtils.linkAction(node, 'Vertices', editor, 'selectVertices');
    +			mxUtils.write(node, ', ');
    +			mxUtils.linkAction(node, 'Edges', editor, 'selectEdges');
    +
    +			// Create select actions in page
    +			var node = document.getElementById('zoomActions');
    +			mxUtils.write(node, 'Zoom: ');
    +			mxUtils.linkAction(node, 'In', editor, 'zoomIn');
    +			mxUtils.write(node, ', ');
    +			mxUtils.linkAction(node, 'Out', editor, 'zoomOut');
    +			mxUtils.write(node, ', ');
    +			mxUtils.linkAction(node, 'Actual', editor, 'actualSize');
    +			mxUtils.write(node, ', ');
    +			mxUtils.linkAction(node, 'Fit', editor, 'fit');
    +		}
    +
    +		window.onbeforeunload = function() { return mxResources.get('changesLost'); };
    +	</script>
    +</head>
    +<body onload="new mxApplication('config/diagrameditor.xml');">
    +	<div id="page">
    +		<div id="header">
    +			<div id="headerimg" style="overflow:hidden;">
    +				<h1 id="title">mxDraw</h1>
    +			</div>
    +		</div>
    +		<div id="mainActions"
    +			style="width:100%;padding-top:8px;padding-left:24px;padding-bottom:8px;">
    +		</div>
    +		<div id="selectActions" style="width:100%;padding-left:54px;padding-bottom:4px;">
    +		</div>
    +		<table border="0" width="730px">
    +			<tr>
    +				<td id="toolbar" style="width:16px;padding-left:20px;" valign="top">
    +					<!-- Toolbar Here -->				
    +				</td>
    +				<td valign="top" style="border-width:1px;border-style:solid;border-color:black;">
    +					<div id="graph" style="position:relative;height:480px;width:684px;overflow:hidden;cursor:default;">
    +						<!-- Graph Here -->
    +						<center id="splash" style="padding-top:230px;">
    +							<img src="images/loading.gif">
    +						</center>
    +					</div>
    +					<textarea id="xml" style="height:480;width:684px;display:none;border-style:none;"></textarea>
    +				</td>
    +			</tr>
    +		</table>
    +		<span style="float:right;padding-right:36px;">
    +			<input id="source" type="checkbox"/>Source
    +		</span>
    +		<div id="zoomActions" style="width:100%;padding-left:54px;padding-top:4px;">
    +		</div>
    +		<div id="footer">
    +			<p id="status">
    +				<!-- Status Here -->Loading...
    +			</p>
    +			<br/>
    +		</div>
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/editors/diagrams/empty.xml b/javascript/examples/editors/diagrams/empty.xml
    new file mode 100644
    index 000000000..4d02c0696
    --- /dev/null
    +++ b/javascript/examples/editors/diagrams/empty.xml
    @@ -0,0 +1,8 @@
    +<mxGraphModel>
    +	<root>
    +		<Workflow label="MyWorkflow" description="" id="0"/>
    +		<Layer label="Default Layer" description="">
    +			<mxCell parent="0"/>
    +		</Layer>
    +	</root>
    +</mxGraphModel>
    diff --git a/javascript/examples/editors/diagrams/swimlanes.xml b/javascript/examples/editors/diagrams/swimlanes.xml
    new file mode 100644
    index 000000000..304457658
    --- /dev/null
    +++ b/javascript/examples/editors/diagrams/swimlanes.xml
    @@ -0,0 +1,119 @@
    +<mxGraphModel>
    +	<root>
    +		<Workflow label="Swimlanes" description="" href="" id="0">
    +			<mxCell />
    +		</Workflow>
    +		<Layer label="Default Layer" description="" href="" id="1">
    +			<mxCell parent="0" />
    +		</Layer>
    +		<Swimlane label="Customer Service&#xa;Representative"
    +			customAttribute="text value" description="" href="" id="2">
    +			<mxCell style="swimlane;fillColor=#83027F;startSize=38"
    +				vertex="1" connectable="0" parent="1">
    +				<mxGeometry x="20" y="20" width="620" height="160"
    +					as="geometry" />
    +			</mxCell>
    +		</Swimlane>
    +		<Subprocess label="Enter Order" description="" href="" id="5">
    +			<mxCell style="rounded" vertex="1" parent="2">
    +				<mxGeometry x="80" y="50" width="102" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Subprocess label="Communicate&#xa;Delay&#xa;To Customer" description="" href="" id="13">
    +			<mxCell style="rounded" vertex="1" parent="2">
    +				<mxGeometry x="230" y="50" width="102" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Swimlane label="Warehouse&#xa;Engineer"
    +			customAttribute="text value" description="" href="" id="3">
    +			<mxCell style="swimlane;fillColor=#66B922;startSize=38"
    +				vertex="1" connectable="0" parent="1">
    +				<mxGeometry x="20" y="180" width="620" height="160"
    +					as="geometry" />
    +			</mxCell>
    +		</Swimlane>
    +		<Subprocess label="Receive Order" description="" href="" id="9">
    +			<mxCell style="rounded" vertex="1" parent="3">
    +				<mxGeometry x="80" y="50" width="102" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Shape label="Check Inventory" description="" href="" id="11">
    +			<mxCell style="rhombus" vertex="1" parent="3">
    +				<mxGeometry x="240" y="50" width="92" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Edge description="" href="" id="12">
    +			<mxCell edge="1" parent="3" source="9" target="11">
    +				<mxGeometry as="geometry" />
    +			</mxCell>
    +		</Edge>
    +		<Subprocess label="Ship Product&#xa;To Customer" description="" href="" id="15">
    +			<mxCell style="rounded" vertex="1" parent="3">
    +				<mxGeometry x="400" y="50" width="102" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Edge description="" href="" id="16">
    +			<mxCell edge="1" parent="3" source="11" target="15">
    +				<mxGeometry as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Swimlane label="Supplier&#xa;" customAttribute="text value"
    +			id="4">
    +			<mxCell style="swimlane;fillColor=#808913;startSize=38"
    +				vertex="1" connectable="0" parent="1">
    +				<mxGeometry x="20" y="340" width="620" height="160"
    +					as="geometry" />
    +			</mxCell>
    +		</Swimlane>
    +		<Subprocess label="Manufacture Product" description="" href="" id="19">
    +			<mxCell style="rounded" vertex="1" parent="4">
    +				<mxGeometry x="230" y="50" width="102" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Subprocess label="Ship Product&#xa;To Partner" description="" href="" id="23">
    +			<mxCell style="rounded" vertex="1" parent="4">
    +				<mxGeometry x="400" y="50" width="102" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Edge description="" href="" id="24">
    +			<mxCell edge="1" target="23" parent="4" source="19">
    +				<mxGeometry x="-20" y="-180" as="geometry">
    +					<Object x="332" y="75" as="sourcePoint" />
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="10">
    +			<mxCell edge="1" parent="1" source="5" target="9">
    +				<mxGeometry as="geometry" />
    +			</mxCell>
    +		</Edge>
    +		<Edge label="no" description="" href="" id="14">
    +			<mxCell edge="1" parent="1" source="11" target="13">
    +				<mxGeometry as="geometry" />
    +			</mxCell>
    +		</Edge>
    +		<Edge label="no" description="" href="" id="20">
    +			<mxCell edge="1" target="19" parent="1" source="11">
    +				<mxGeometry x="-20" y="-30" as="geometry">
    +					<Object x="286" y="200" as="sourcePoint" />
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="25">
    +			<mxCell edge="1" parent="1" source="23" target="15">
    +				<mxGeometry as="geometry" />
    +			</mxCell>
    +		</Edge>
    +	</root>
    +</mxGraphModel>
    diff --git a/javascript/examples/editors/diagrams/travel-booking.xml b/javascript/examples/editors/diagrams/travel-booking.xml
    new file mode 100644
    index 000000000..e3d5c8422
    --- /dev/null
    +++ b/javascript/examples/editors/diagrams/travel-booking.xml
    @@ -0,0 +1,230 @@
    +<mxGraphModel>
    +	<root>
    +		<Workflow label="Travel Booking" description="" href="" id="0">
    +			<mxCell />
    +		</Workflow>
    +		<Layer label="Default Layer" description="" href="" id="1">
    +			<mxCell parent="0" />
    +		</Layer>
    +		<Swimlane label="Travel Booking" customAttribute="text value"
    +			id="2">
    +			<mxCell style="swimlane;fillColor=#83027F" parent="1"
    +				vertex="1" connectable="0">
    +				<mxGeometry x="10" y="30" width="770" height="370"
    +					as="geometry" />
    +			</mxCell>
    +		</Swimlane>
    +		<Edge label="Check Again" description="" href="" id="3">
    +			<mxCell style="verticalEdge" parent="2" source="14"
    +				target="11" edge="1">
    +				<mxGeometry x="0" y="0" as="geometry" relative="1">
    +					<Object x="-30" y="2" as="offset"/>
    +					<Array as="points">
    +						<Object x="440" y="30" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Symbol label="Symbol" description="" href="" id="4">
    +			<mxCell
    +				style="symbol;image=images/symbols/message.png" parent="2"
    +				vertex="1">
    +				<mxGeometry x="40" y="150" width="32" height="32"
    +					as="geometry" />
    +			</mxCell>
    +		</Symbol>
    +		<Subprocess label="Check Credit&#xa;Card" description="" href="" id="5">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="92" y="140" width="72" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Symbol label="Symbol" description="" href="" id="6">
    +			<mxCell
    +				style="symbol;image=images/symbols/error.png" parent="5"
    +				vertex="1">
    +				<mxGeometry x="8" y="34" width="32" height="32"
    +					as="geometry" />
    +			</mxCell>
    +		</Symbol>
    +		<Subprocess label="Handle&#xa;Fault" description="" href="" id="7">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="162" y="280" width="72" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Subprocess label="Check Hotel&#xa;Reservation" description="" href="" id="8">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="202" y="140" width="72" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Subprocess label="Check Flight&#xa;Reservation" description="" href="" id="9">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="202" y="210" width="72" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Subprocess label="Data Map" description="" href="" id="10">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="202" y="70" width="72" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Subprocess label="Check Car&#xa;Reservation" description="" href="" id="11">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="302" y="70" width="72" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Symbol label="Symbol" description="" href="" id="12">
    +			<mxCell
    +				style="symbol;image=images/symbols/fork.png" parent="2"
    +				vertex="1">
    +				<mxGeometry x="550" y="140" width="52" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Symbol>
    +		<Subprocess label="Evaluate&#xa;Reservation&#xa;Result" description="" href="" id="13">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="402" y="70" width="72" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Shape label="" description="" href="" id="14">
    +			<mxCell style="rhombus" parent="2" vertex="1">
    +				<mxGeometry x="504" y="69" width="52" height="51"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Subprocess label="Confirmation" description="" href="" id="15">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="622" y="140" width="72" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Symbol label="Reply" description="" href="" id="16">
    +			<mxCell
    +				style="symbol;image=images/symbols/message_end.png"
    +				parent="2" vertex="1">
    +				<mxGeometry x="260" y="290" width="32" height="32"
    +					as="geometry" />
    +			</mxCell>
    +		</Symbol>
    +		<Symbol label="Reply" description="" href="" id="17">
    +			<mxCell
    +				style="symbol;image=images/symbols/message_end.png"
    +				parent="2" vertex="1">
    +				<mxGeometry x="720" y="150" width="32" height="32"
    +					as="geometry" />
    +			</mxCell>
    +		</Symbol>
    +		<Edge description="" href="" id="18">
    +			<mxCell parent="2" source="4" target="5" edge="1">
    +				<mxGeometry x="-60300" y="-300-10" as="geometry">
    +					<Object x="52" y="166" as="sourcePoint" />
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="19">
    +			<mxCell parent="2" source="6" target="7" edge="1">
    +				<mxGeometry x="-60300" y="-300-10" as="geometry">
    +					<Array as="points">
    +						<Object x="120" y="250" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="20">
    +			<mxCell parent="2" source="7" target="16" edge="1">
    +				<mxGeometry x="-60300" y="-300-10" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="21">
    +			<mxCell parent="2" source="5" target="8" edge="1">
    +				<mxGeometry x="-60300" y="-300-10" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="22">
    +			<mxCell parent="2" source="5" target="9" edge="1">
    +				<mxGeometry x="-90300" y="-500-10" as="geometry">
    +					<Object x="244" y="205" as="sourcePoint" />
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="23">
    +			<mxCell parent="2" source="5" target="10" edge="1">
    +				<mxGeometry x="-130300" y="-2200-10" as="geometry">
    +					<Object x="234" y="55" as="sourcePoint" />
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="24">
    +			<mxCell parent="2" source="10" target="11" edge="1">
    +				<mxGeometry x="-20300" y="-10" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="25">
    +			<mxCell parent="2" source="12" target="15" edge="1">
    +				<mxGeometry x="40" y="-10" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="26">
    +			<mxCell parent="2" source="8" target="12" edge="1">
    +				<mxGeometry x="-20300" y="-10" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="27">
    +			<mxCell parent="2" source="11" target="13" edge="1">
    +				<mxGeometry x="-20300" y="-10" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="28">
    +			<mxCell parent="2" source="13" target="14" edge="1">
    +				<mxGeometry x="-20300" y="-10" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="29">
    +			<mxCell parent="2" source="9" target="12" edge="1">
    +				<mxGeometry x="-20300" y="-10" as="geometry">
    +					<Array as="points">
    +						<Object x="570" y="200" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="30">
    +			<mxCell parent="2" source="14" target="12" edge="1">
    +				<mxGeometry x="-20300" y="-10" as="geometry">
    +					<Array as="points">
    +						<Object x="570" y="130" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge description="" href="" id="31">
    +			<mxCell parent="2" source="15" target="17" edge="1">
    +				<mxGeometry x="-30300" y="-10" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +	</root>
    +</mxGraphModel>
    \ No newline at end of file
    diff --git a/javascript/examples/editors/diagrams/withdrawal.xml b/javascript/examples/editors/diagrams/withdrawal.xml
    new file mode 100644
    index 000000000..0593e88ea
    --- /dev/null
    +++ b/javascript/examples/editors/diagrams/withdrawal.xml
    @@ -0,0 +1,286 @@
    +<mxGraphModel>
    +	<root>
    +		<Workflow label="Withdrawal" id="0">
    +			<mxCell />
    +		</Workflow>
    +		<Layer label="Default Layer" id="1">
    +			<mxCell parent="0" />
    +		</Layer>
    +		<Swimlane label="Customer" customAttribute="text value"
    +			id="2">
    +			<mxCell style="swimlane;fillColor=#66B922;startSize=23"
    +				parent="1" connectable="0" vertex="1">
    +				<mxGeometry x="20" y="20" width="220" height="900"
    +					as="geometry" />
    +			</mxCell>
    +		</Swimlane>
    +		<Shape label="Start" id="3">
    +			<mxCell style="ellipse" parent="2" vertex="1">
    +				<mxGeometry x="70" y="40" width="60" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Subprocess label="Insert Card" id="4">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="50" y="110" width="100" height="30"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Edge id="5">
    +			<mxCell parent="2" source="3" target="4" edge="1">
    +				<mxGeometry as="geometry" />
    +			</mxCell>
    +		</Edge>
    +		<Subprocess label="Enter PIN" id="6">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="50" y="160" width="100" height="30"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Edge id="7">
    +			<mxCell parent="2" source="4" target="6" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Subprocess label="Enter Amount" id="8">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="50" y="260" width="100" height="30"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Shape label="" id="9">
    +			<mxCell style="hline" parent="2" vertex="1">
    +				<mxGeometry y="390" width="600" height="10"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Subprocess label="Take Money&#xa;from Slot" id="10">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="40" y="430" width="100" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Edge id="11">
    +			<mxCell parent="2" source="9" target="10" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points">
    +						<Object x="90" y="420" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Subprocess label="Take Card" id="12">
    +			<mxCell style="rounded" parent="2" vertex="1">
    +				<mxGeometry x="40" y="790" width="100" height="30"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Shape label="End" id="13">
    +			<mxCell style="ellipse" parent="2" vertex="1">
    +				<mxGeometry x="60" y="850" width="60" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Edge id="14">
    +			<mxCell parent="2" source="12" target="13" edge="1">
    +				<mxGeometry as="geometry" />
    +			</mxCell>
    +		</Edge>
    +		<Swimlane label="ATM Machine" customAttribute="text value"
    +			id="15">
    +			<mxCell style="swimlane;fillColor=#CF0056;startSize=23"
    +				parent="1" connectable="0" vertex="1">
    +				<mxGeometry x="240" y="20" width="200" height="900"
    +					as="geometry" />
    +			</mxCell>
    +		</Swimlane>
    +		<Shape label="" id="16">
    +			<mxCell style="hline" parent="15" vertex="1">
    +				<mxGeometry x="40" y="510" width="100" height="10"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Shape label="" id="17">
    +			<mxCell style="rhombus" parent="15" vertex="1">
    +				<mxGeometry x="70" y="550" width="40" height="40"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Edge id="18">
    +			<mxCell parent="15" source="16" target="17" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Subprocess label="Show Balance" id="19">
    +			<mxCell style="rounded" parent="15" vertex="1">
    +				<mxGeometry x="40" y="610" width="100" height="30"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Edge id="20">
    +			<mxCell parent="15" source="17" target="19" edge="1">
    +				<mxGeometry y="10" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Shape label="" id="21">
    +			<mxCell style="rhombus" parent="15" vertex="1">
    +				<mxGeometry x="70" y="660" width="40" height="40"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Edge id="22">
    +			<mxCell parent="15" source="19" target="21" edge="1">
    +				<mxGeometry as="geometry" />
    +			</mxCell>
    +		</Edge>
    +		<Subprocess label="Eject Card" id="23">
    +			<mxCell style="rounded" parent="15" vertex="1">
    +				<mxGeometry x="40" y="730" width="100" height="30"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Edge id="24">
    +			<mxCell parent="15" source="21" target="23" edge="1">
    +				<mxGeometry as="geometry" />
    +			</mxCell>
    +		</Edge>
    +		<Swimlane label="Bank" customAttribute="text value" id="25">
    +			<mxCell style="swimlane;fillColor=#4679B6;startSize=23"
    +				parent="1" connectable="0" vertex="1">
    +				<mxGeometry x="440" y="20" width="210" height="900"
    +					as="geometry" />
    +			</mxCell>
    +		</Swimlane>
    +		<Shape label="" id="26">
    +			<mxCell style="rhombus" parent="25" vertex="1">
    +				<mxGeometry x="80" y="160" width="40" height="40"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Subprocess label="Check Account&#xa;Balance" id="27">
    +			<mxCell style="rounded" parent="25" vertex="1">
    +				<mxGeometry x="50" y="250" width="100" height="50"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Subprocess label="Authorize" id="28">
    +			<mxCell style="rounded" parent="25" vertex="1">
    +				<mxGeometry x="50" y="110" width="100" height="30"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Edge id="29">
    +			<mxCell parent="25" source="28" target="26" edge="1">
    +				<mxGeometry y="-50" as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Shape label="" id="30">
    +			<mxCell style="rhombus" parent="25" vertex="1">
    +				<mxGeometry x="80" y="330" width="40" height="40"
    +					as="geometry" />
    +			</mxCell>
    +		</Shape>
    +		<Edge id="31">
    +			<mxCell parent="25" source="27" target="30" edge="1">
    +				<mxGeometry as="geometry" />
    +			</mxCell>
    +		</Edge>
    +		<Subprocess label="Debit Account" id="32">
    +			<mxCell style="rounded" parent="25" vertex="1">
    +				<mxGeometry x="50" y="440" width="100" height="30"
    +					as="geometry" />
    +			</mxCell>
    +		</Subprocess>
    +		<Edge id="33">
    +			<mxCell parent="1" source="6" target="28" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge label="[Valid PIN]" id="34">
    +			<mxCell style="verticalEdge" parent="1" source="26"
    +				target="8" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge id="35">
    +			<mxCell parent="1" source="8" target="27" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge label="[balance &gt;= amount]" id="36">
    +			<mxCell parent="1" source="30" target="9" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points" />
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge id="37">
    +			<mxCell parent="1" source="9" target="32" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points">
    +						<Object x="540" y="440" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge id="38">
    +			<mxCell parent="1" source="32" target="16" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points">
    +						<Object x="364" y="503" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge id="39">
    +			<mxCell parent="1" source="10" target="16" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points">
    +						<Object x="304" y="503" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge label="" id="40">
    +			<mxCell parent="1" source="30" target="17" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points">
    +						<Object x="654" y="463" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge id="41">
    +			<mxCell parent="1" source="26" target="21" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points">
    +						<Object x="664" y="453" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +		<Edge id="42">
    +			<mxCell parent="1" source="23" target="12" edge="1">
    +				<mxGeometry as="geometry">
    +					<Array as="points">
    +						<Object x="110" y="783" />
    +					</Array>
    +				</mxGeometry>
    +			</mxCell>
    +		</Edge>
    +	</root>
    +</mxGraphModel>
    diff --git a/javascript/examples/editors/grapheditor.html b/javascript/examples/editors/grapheditor.html
    new file mode 100644
    index 000000000..551ae496b
    --- /dev/null
    +++ b/javascript/examples/editors/grapheditor.html
    @@ -0,0 +1,9 @@
    +<html>
    +<head>
    +    <title>Deprecation Warning</title>
    +</head>
    +<body>
    +This example has been deprecated. A new implementation is available <a href="../grapheditor/www/index.html">here</a>.
    +A copy of the old example is <a href="archive/grapheditor/grapheditor.html">here</a>.
    +</body>
    +</html>
    diff --git a/javascript/examples/editors/help/index-all.html b/javascript/examples/editors/help/index-all.html
    new file mode 100644
    index 000000000..3f03c1d7d
    --- /dev/null
    +++ b/javascript/examples/editors/help/index-all.html
    @@ -0,0 +1,45 @@
    +<html>
    +<head>
    +  <title>mxGraph Workflow Editor Help Index</title>
    +  <style type="text/css" media="screen">
    +	body {
    +		font-family: Arial;
    +		font-size: 8pt;
    +	}
    +	h1 {
    +		font-family: Arial;
    +		font-size: 13pt;
    +	}
    +	h2 {
    +		font-family: Arial;
    +		font-size: 12pt;
    +	}
    +	h3 {
    +		font-family: Arial;
    +		font-size: 10pt;
    +	}
    +	h4 {
    +		font-family: Arial;
    +		font-size: 9pt;
    +	}
    +  </style>
    +</head>
    +<body>
    +	<h1>Help Index</h1>
    +	<h1>Help Index</h1>
    +	<hr>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +	<a href="index.html">Lorem Ipsum</a><br>
    +</body>
    +</html>
    diff --git a/javascript/examples/editors/help/index.html b/javascript/examples/editors/help/index.html
    new file mode 100644
    index 000000000..cb0e7207b
    --- /dev/null
    +++ b/javascript/examples/editors/help/index.html
    @@ -0,0 +1,41 @@
    +<html>
    +<head>
    +  <title>mxGraph Workflow Editor Help</title>
    +  <style type="text/css" media="screen">
    +	body {
    +		font-family: Arial;
    +		font-size: 8pt;
    +	}
    +	h1 {
    +		font-family: Arial;
    +		font-size: 13pt;
    +		  border-width: 0 0 1px 0;
    +		  border-style: solid;
    +		  border-color: #000000;
    +	}
    +	h2 {
    +		font-family: Arial;
    +		font-size: 12pt;
    +	}
    +	h3 {
    +		font-family: Arial;
    +		font-size: 10pt;
    +	}
    +	h4 {
    +		font-family: Arial;
    +		font-size: 9pt;
    +	}
    +  </style>
    +</head>
    +<body>
    +	<h1>mxGraph Online Help</h1>
    +	<p>
    +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et 
    +dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip 
    +ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu 
    +fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt 
    +mollit anim id est laborum.
    +	</p>
    +	See <a href="index-all.html">Help Index</a>
    +</body>
    +</html>
    diff --git a/javascript/examples/editors/images/actor.gif b/javascript/examples/editors/images/actor.gif
    new file mode 100644
    index 000000000..1f7652704
    Binary files /dev/null and b/javascript/examples/editors/images/actor.gif differ
    diff --git a/javascript/examples/editors/images/alignbottom.gif b/javascript/examples/editors/images/alignbottom.gif
    new file mode 100644
    index 000000000..bdbfc2810
    Binary files /dev/null and b/javascript/examples/editors/images/alignbottom.gif differ
    diff --git a/javascript/examples/editors/images/aligncenter.gif b/javascript/examples/editors/images/aligncenter.gif
    new file mode 100644
    index 000000000..70458d423
    Binary files /dev/null and b/javascript/examples/editors/images/aligncenter.gif differ
    diff --git a/javascript/examples/editors/images/alignleft.gif b/javascript/examples/editors/images/alignleft.gif
    new file mode 100644
    index 000000000..270281583
    Binary files /dev/null and b/javascript/examples/editors/images/alignleft.gif differ
    diff --git a/javascript/examples/editors/images/alignmiddle.gif b/javascript/examples/editors/images/alignmiddle.gif
    new file mode 100644
    index 000000000..bdd401313
    Binary files /dev/null and b/javascript/examples/editors/images/alignmiddle.gif differ
    diff --git a/javascript/examples/editors/images/alignright.gif b/javascript/examples/editors/images/alignright.gif
    new file mode 100644
    index 000000000..3530a615a
    Binary files /dev/null and b/javascript/examples/editors/images/alignright.gif differ
    diff --git a/javascript/examples/editors/images/aligntop.gif b/javascript/examples/editors/images/aligntop.gif
    new file mode 100644
    index 000000000..7b06da43c
    Binary files /dev/null and b/javascript/examples/editors/images/aligntop.gif differ
    diff --git a/javascript/examples/editors/images/arrow.gif b/javascript/examples/editors/images/arrow.gif
    new file mode 100644
    index 000000000..28b08e5d0
    Binary files /dev/null and b/javascript/examples/editors/images/arrow.gif differ
    diff --git a/javascript/examples/editors/images/bell.png b/javascript/examples/editors/images/bell.png
    new file mode 100644
    index 000000000..3d30cc98f
    Binary files /dev/null and b/javascript/examples/editors/images/bell.png differ
    diff --git a/javascript/examples/editors/images/bg.gif b/javascript/examples/editors/images/bg.gif
    new file mode 100644
    index 000000000..9a0cc74f1
    Binary files /dev/null and b/javascript/examples/editors/images/bg.gif differ
    diff --git a/javascript/examples/editors/images/block_end.gif b/javascript/examples/editors/images/block_end.gif
    new file mode 100644
    index 000000000..1079eaee7
    Binary files /dev/null and b/javascript/examples/editors/images/block_end.gif differ
    diff --git a/javascript/examples/editors/images/block_start.gif b/javascript/examples/editors/images/block_start.gif
    new file mode 100644
    index 000000000..deacc194d
    Binary files /dev/null and b/javascript/examples/editors/images/block_start.gif differ
    diff --git a/javascript/examples/editors/images/bold.gif b/javascript/examples/editors/images/bold.gif
    new file mode 100644
    index 000000000..06d523cc7
    Binary files /dev/null and b/javascript/examples/editors/images/bold.gif differ
    diff --git a/javascript/examples/editors/images/bottom.gif b/javascript/examples/editors/images/bottom.gif
    new file mode 100644
    index 000000000..24fa94427
    Binary files /dev/null and b/javascript/examples/editors/images/bottom.gif differ
    diff --git a/javascript/examples/editors/images/box.png b/javascript/examples/editors/images/box.png
    new file mode 100644
    index 000000000..cbff40d40
    Binary files /dev/null and b/javascript/examples/editors/images/box.png differ
    diff --git a/javascript/examples/editors/images/camera.gif b/javascript/examples/editors/images/camera.gif
    new file mode 100644
    index 000000000..2d154fada
    Binary files /dev/null and b/javascript/examples/editors/images/camera.gif differ
    diff --git a/javascript/examples/editors/images/center.gif b/javascript/examples/editors/images/center.gif
    new file mode 100644
    index 000000000..34c09f34d
    Binary files /dev/null and b/javascript/examples/editors/images/center.gif differ
    diff --git a/javascript/examples/editors/images/classic_end.gif b/javascript/examples/editors/images/classic_end.gif
    new file mode 100644
    index 000000000..69693e3b5
    Binary files /dev/null and b/javascript/examples/editors/images/classic_end.gif differ
    diff --git a/javascript/examples/editors/images/classic_start.gif b/javascript/examples/editors/images/classic_start.gif
    new file mode 100644
    index 000000000..9d25f092f
    Binary files /dev/null and b/javascript/examples/editors/images/classic_start.gif differ
    diff --git a/javascript/examples/editors/images/cloud.gif b/javascript/examples/editors/images/cloud.gif
    new file mode 100644
    index 000000000..560612e8c
    Binary files /dev/null and b/javascript/examples/editors/images/cloud.gif differ
    diff --git a/javascript/examples/editors/images/cmp-bg.gif b/javascript/examples/editors/images/cmp-bg.gif
    new file mode 100644
    index 000000000..5eb8b88a4
    Binary files /dev/null and b/javascript/examples/editors/images/cmp-bg.gif differ
    diff --git a/javascript/examples/editors/images/collapse.gif b/javascript/examples/editors/images/collapse.gif
    new file mode 100644
    index 000000000..c45625eb7
    Binary files /dev/null and b/javascript/examples/editors/images/collapse.gif differ
    diff --git a/javascript/examples/editors/images/connect.gif b/javascript/examples/editors/images/connect.gif
    new file mode 100644
    index 000000000..39f5d2122
    Binary files /dev/null and b/javascript/examples/editors/images/connect.gif differ
    diff --git a/javascript/examples/editors/images/connector.gif b/javascript/examples/editors/images/connector.gif
    new file mode 100644
    index 000000000..326e061ea
    Binary files /dev/null and b/javascript/examples/editors/images/connector.gif differ
    diff --git a/javascript/examples/editors/images/console.gif b/javascript/examples/editors/images/console.gif
    new file mode 100644
    index 000000000..a598f6082
    Binary files /dev/null and b/javascript/examples/editors/images/console.gif differ
    diff --git a/javascript/examples/editors/images/copy.gif b/javascript/examples/editors/images/copy.gif
    new file mode 100644
    index 000000000..18c903e61
    Binary files /dev/null and b/javascript/examples/editors/images/copy.gif differ
    diff --git a/javascript/examples/editors/images/cube_green.png b/javascript/examples/editors/images/cube_green.png
    new file mode 100644
    index 000000000..af0cdc1b0
    Binary files /dev/null and b/javascript/examples/editors/images/cube_green.png differ
    diff --git a/javascript/examples/editors/images/cut.gif b/javascript/examples/editors/images/cut.gif
    new file mode 100644
    index 000000000..d5ffbbd24
    Binary files /dev/null and b/javascript/examples/editors/images/cut.gif differ
    diff --git a/javascript/examples/editors/images/cylinder.gif b/javascript/examples/editors/images/cylinder.gif
    new file mode 100644
    index 000000000..89c03e682
    Binary files /dev/null and b/javascript/examples/editors/images/cylinder.gif differ
    diff --git a/javascript/examples/editors/images/delete.gif b/javascript/examples/editors/images/delete.gif
    new file mode 100644
    index 000000000..e1956be4d
    Binary files /dev/null and b/javascript/examples/editors/images/delete.gif differ
    diff --git a/javascript/examples/editors/images/diagram.gif b/javascript/examples/editors/images/diagram.gif
    new file mode 100644
    index 000000000..66a546529
    Binary files /dev/null and b/javascript/examples/editors/images/diagram.gif differ
    diff --git a/javascript/examples/editors/images/diamond_end.gif b/javascript/examples/editors/images/diamond_end.gif
    new file mode 100644
    index 000000000..7b42fb588
    Binary files /dev/null and b/javascript/examples/editors/images/diamond_end.gif differ
    diff --git a/javascript/examples/editors/images/diamond_start.gif b/javascript/examples/editors/images/diamond_start.gif
    new file mode 100644
    index 000000000..8d5ba0515
    Binary files /dev/null and b/javascript/examples/editors/images/diamond_start.gif differ
    diff --git a/javascript/examples/editors/images/doubleellipse.gif b/javascript/examples/editors/images/doubleellipse.gif
    new file mode 100644
    index 000000000..9f1380f96
    Binary files /dev/null and b/javascript/examples/editors/images/doubleellipse.gif differ
    diff --git a/javascript/examples/editors/images/down.gif b/javascript/examples/editors/images/down.gif
    new file mode 100644
    index 000000000..3bed86ef2
    Binary files /dev/null and b/javascript/examples/editors/images/down.gif differ
    diff --git a/javascript/examples/editors/images/draw/drawbg.jpg b/javascript/examples/editors/images/draw/drawbg.jpg
    new file mode 100644
    index 000000000..c53881818
    Binary files /dev/null and b/javascript/examples/editors/images/draw/drawbg.jpg differ
    diff --git a/javascript/examples/editors/images/draw/drawbgcolor.jpg b/javascript/examples/editors/images/draw/drawbgcolor.jpg
    new file mode 100644
    index 000000000..4653b68e6
    Binary files /dev/null and b/javascript/examples/editors/images/draw/drawbgcolor.jpg differ
    diff --git a/javascript/examples/editors/images/draw/drawfooter.jpg b/javascript/examples/editors/images/draw/drawfooter.jpg
    new file mode 100644
    index 000000000..d7a4c6599
    Binary files /dev/null and b/javascript/examples/editors/images/draw/drawfooter.jpg differ
    diff --git a/javascript/examples/editors/images/draw/drawheader.jpg b/javascript/examples/editors/images/draw/drawheader.jpg
    new file mode 100644
    index 000000000..e1f8c9d0f
    Binary files /dev/null and b/javascript/examples/editors/images/draw/drawheader.jpg differ
    diff --git a/javascript/examples/editors/images/draw/mxlogo.jpg b/javascript/examples/editors/images/draw/mxlogo.jpg
    new file mode 100644
    index 000000000..f9b9fa429
    Binary files /dev/null and b/javascript/examples/editors/images/draw/mxlogo.jpg differ
    diff --git a/javascript/examples/editors/images/dude3.png b/javascript/examples/editors/images/dude3.png
    new file mode 100644
    index 000000000..fa5ca5aaa
    Binary files /dev/null and b/javascript/examples/editors/images/dude3.png differ
    diff --git a/javascript/examples/editors/images/earth.png b/javascript/examples/editors/images/earth.png
    new file mode 100644
    index 000000000..4493880c2
    Binary files /dev/null and b/javascript/examples/editors/images/earth.png differ
    diff --git a/javascript/examples/editors/images/ellipse.gif b/javascript/examples/editors/images/ellipse.gif
    new file mode 100644
    index 000000000..5b5fad0c2
    Binary files /dev/null and b/javascript/examples/editors/images/ellipse.gif differ
    diff --git a/javascript/examples/editors/images/entity.gif b/javascript/examples/editors/images/entity.gif
    new file mode 100644
    index 000000000..d04e93a0d
    Binary files /dev/null and b/javascript/examples/editors/images/entity.gif differ
    diff --git a/javascript/examples/editors/images/expand.gif b/javascript/examples/editors/images/expand.gif
    new file mode 100644
    index 000000000..7da3ff8a6
    Binary files /dev/null and b/javascript/examples/editors/images/expand.gif differ
    diff --git a/javascript/examples/editors/images/fillcolor.gif b/javascript/examples/editors/images/fillcolor.gif
    new file mode 100644
    index 000000000..dffe6f545
    Binary files /dev/null and b/javascript/examples/editors/images/fillcolor.gif differ
    diff --git a/javascript/examples/editors/images/fit.gif b/javascript/examples/editors/images/fit.gif
    new file mode 100644
    index 000000000..8d7bff811
    Binary files /dev/null and b/javascript/examples/editors/images/fit.gif differ
    diff --git a/javascript/examples/editors/images/font.gif b/javascript/examples/editors/images/font.gif
    new file mode 100644
    index 000000000..7f276c327
    Binary files /dev/null and b/javascript/examples/editors/images/font.gif differ
    diff --git a/javascript/examples/editors/images/fontcolor.gif b/javascript/examples/editors/images/fontcolor.gif
    new file mode 100644
    index 000000000..0a7f017a1
    Binary files /dev/null and b/javascript/examples/editors/images/fontcolor.gif differ
    diff --git a/javascript/examples/editors/images/gear.gif b/javascript/examples/editors/images/gear.gif
    new file mode 100644
    index 000000000..30310d610
    Binary files /dev/null and b/javascript/examples/editors/images/gear.gif differ
    diff --git a/javascript/examples/editors/images/gear.png b/javascript/examples/editors/images/gear.png
    new file mode 100644
    index 000000000..647d897fd
    Binary files /dev/null and b/javascript/examples/editors/images/gear.png differ
    diff --git a/javascript/examples/editors/images/grid.gif b/javascript/examples/editors/images/grid.gif
    new file mode 100644
    index 000000000..a82a20d00
    Binary files /dev/null and b/javascript/examples/editors/images/grid.gif differ
    diff --git a/javascript/examples/editors/images/group.gif b/javascript/examples/editors/images/group.gif
    new file mode 100644
    index 000000000..af798364c
    Binary files /dev/null and b/javascript/examples/editors/images/group.gif differ
    diff --git a/javascript/examples/editors/images/help.gif b/javascript/examples/editors/images/help.gif
    new file mode 100644
    index 000000000..35d7a1e92
    Binary files /dev/null and b/javascript/examples/editors/images/help.gif differ
    diff --git a/javascript/examples/editors/images/hexagon.gif b/javascript/examples/editors/images/hexagon.gif
    new file mode 100644
    index 000000000..6c0568a11
    Binary files /dev/null and b/javascript/examples/editors/images/hexagon.gif differ
    diff --git a/javascript/examples/editors/images/hline.gif b/javascript/examples/editors/images/hline.gif
    new file mode 100644
    index 000000000..803f8a379
    Binary files /dev/null and b/javascript/examples/editors/images/hline.gif differ
    diff --git a/javascript/examples/editors/images/house.gif b/javascript/examples/editors/images/house.gif
    new file mode 100644
    index 000000000..84c6b1565
    Binary files /dev/null and b/javascript/examples/editors/images/house.gif differ
    diff --git a/javascript/examples/editors/images/house.png b/javascript/examples/editors/images/house.png
    new file mode 100644
    index 000000000..e4986bcb6
    Binary files /dev/null and b/javascript/examples/editors/images/house.png differ
    diff --git a/javascript/examples/editors/images/image.gif b/javascript/examples/editors/images/image.gif
    new file mode 100644
    index 000000000..0a503569f
    Binary files /dev/null and b/javascript/examples/editors/images/image.gif differ
    diff --git a/javascript/examples/editors/images/italic.gif b/javascript/examples/editors/images/italic.gif
    new file mode 100644
    index 000000000..301cfc794
    Binary files /dev/null and b/javascript/examples/editors/images/italic.gif differ
    diff --git a/javascript/examples/editors/images/left.gif b/javascript/examples/editors/images/left.gif
    new file mode 100644
    index 000000000..235e780fb
    Binary files /dev/null and b/javascript/examples/editors/images/left.gif differ
    diff --git a/javascript/examples/editors/images/linecolor.gif b/javascript/examples/editors/images/linecolor.gif
    new file mode 100644
    index 000000000..96068a64d
    Binary files /dev/null and b/javascript/examples/editors/images/linecolor.gif differ
    diff --git a/javascript/examples/editors/images/link.gif b/javascript/examples/editors/images/link.gif
    new file mode 100644
    index 000000000..8681802c7
    Binary files /dev/null and b/javascript/examples/editors/images/link.gif differ
    diff --git a/javascript/examples/editors/images/loading.gif b/javascript/examples/editors/images/loading.gif
    new file mode 100644
    index 000000000..7bb834d66
    Binary files /dev/null and b/javascript/examples/editors/images/loading.gif differ
    diff --git a/javascript/examples/editors/images/middle.gif b/javascript/examples/editors/images/middle.gif
    new file mode 100644
    index 000000000..33eed00fc
    Binary files /dev/null and b/javascript/examples/editors/images/middle.gif differ
    diff --git a/javascript/examples/editors/images/new.gif b/javascript/examples/editors/images/new.gif
    new file mode 100644
    index 000000000..6fcd1bc5a
    Binary files /dev/null and b/javascript/examples/editors/images/new.gif differ
    diff --git a/javascript/examples/editors/images/open.gif b/javascript/examples/editors/images/open.gif
    new file mode 100644
    index 000000000..2df1d8957
    Binary files /dev/null and b/javascript/examples/editors/images/open.gif differ
    diff --git a/javascript/examples/editors/images/open_end.gif b/javascript/examples/editors/images/open_end.gif
    new file mode 100644
    index 000000000..5ae275e97
    Binary files /dev/null and b/javascript/examples/editors/images/open_end.gif differ
    diff --git a/javascript/examples/editors/images/open_start.gif b/javascript/examples/editors/images/open_start.gif
    new file mode 100644
    index 000000000..d58ca46f7
    Binary files /dev/null and b/javascript/examples/editors/images/open_start.gif differ
    diff --git a/javascript/examples/editors/images/outline.gif b/javascript/examples/editors/images/outline.gif
    new file mode 100644
    index 000000000..e04d92bc0
    Binary files /dev/null and b/javascript/examples/editors/images/outline.gif differ
    diff --git a/javascript/examples/editors/images/oval_end.gif b/javascript/examples/editors/images/oval_end.gif
    new file mode 100644
    index 000000000..c13fc6aa8
    Binary files /dev/null and b/javascript/examples/editors/images/oval_end.gif differ
    diff --git a/javascript/examples/editors/images/oval_start.gif b/javascript/examples/editors/images/oval_start.gif
    new file mode 100644
    index 000000000..213de962c
    Binary files /dev/null and b/javascript/examples/editors/images/oval_start.gif differ
    diff --git a/javascript/examples/editors/images/overlays/check.png b/javascript/examples/editors/images/overlays/check.png
    new file mode 100644
    index 000000000..3f3110a14
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/check.png differ
    diff --git a/javascript/examples/editors/images/overlays/error.png b/javascript/examples/editors/images/overlays/error.png
    new file mode 100644
    index 000000000..eb1491b41
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/error.png differ
    diff --git a/javascript/examples/editors/images/overlays/flash.png b/javascript/examples/editors/images/overlays/flash.png
    new file mode 100644
    index 000000000..aa6fd2d1e
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/flash.png differ
    diff --git a/javascript/examples/editors/images/overlays/forbidden.png b/javascript/examples/editors/images/overlays/forbidden.png
    new file mode 100644
    index 000000000..04d5f4ab1
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/forbidden.png differ
    diff --git a/javascript/examples/editors/images/overlays/help.png b/javascript/examples/editors/images/overlays/help.png
    new file mode 100644
    index 000000000..e8ceddb37
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/help.png differ
    diff --git a/javascript/examples/editors/images/overlays/house.png b/javascript/examples/editors/images/overlays/house.png
    new file mode 100644
    index 000000000..c652bc8da
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/house.png differ
    diff --git a/javascript/examples/editors/images/overlays/information.png b/javascript/examples/editors/images/overlays/information.png
    new file mode 100644
    index 000000000..5df185744
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/information.png differ
    diff --git a/javascript/examples/editors/images/overlays/lightbulb_on.png b/javascript/examples/editors/images/overlays/lightbulb_on.png
    new file mode 100644
    index 000000000..8b594120d
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/lightbulb_on.png differ
    diff --git a/javascript/examples/editors/images/overlays/pencil.png b/javascript/examples/editors/images/overlays/pencil.png
    new file mode 100644
    index 000000000..712443eb6
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/pencil.png differ
    diff --git a/javascript/examples/editors/images/overlays/printer.png b/javascript/examples/editors/images/overlays/printer.png
    new file mode 100644
    index 000000000..6004816bc
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/printer.png differ
    diff --git a/javascript/examples/editors/images/overlays/user3.png b/javascript/examples/editors/images/overlays/user3.png
    new file mode 100644
    index 000000000..7e8325833
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/user3.png differ
    diff --git a/javascript/examples/editors/images/overlays/users3.png b/javascript/examples/editors/images/overlays/users3.png
    new file mode 100644
    index 000000000..2185bf46c
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/users3.png differ
    diff --git a/javascript/examples/editors/images/overlays/workplace.png b/javascript/examples/editors/images/overlays/workplace.png
    new file mode 100644
    index 000000000..2a0bedd55
    Binary files /dev/null and b/javascript/examples/editors/images/overlays/workplace.png differ
    diff --git a/javascript/examples/editors/images/package.png b/javascript/examples/editors/images/package.png
    new file mode 100644
    index 000000000..2bc612307
    Binary files /dev/null and b/javascript/examples/editors/images/package.png differ
    diff --git a/javascript/examples/editors/images/pan.gif b/javascript/examples/editors/images/pan.gif
    new file mode 100644
    index 000000000..ecd68bff0
    Binary files /dev/null and b/javascript/examples/editors/images/pan.gif differ
    diff --git a/javascript/examples/editors/images/paste.gif b/javascript/examples/editors/images/paste.gif
    new file mode 100644
    index 000000000..242ecb184
    Binary files /dev/null and b/javascript/examples/editors/images/paste.gif differ
    diff --git a/javascript/examples/editors/images/plain.gif b/javascript/examples/editors/images/plain.gif
    new file mode 100644
    index 000000000..6c914d821
    Binary files /dev/null and b/javascript/examples/editors/images/plain.gif differ
    diff --git a/javascript/examples/editors/images/preferences.gif b/javascript/examples/editors/images/preferences.gif
    new file mode 100644
    index 000000000..1f6407e6f
    Binary files /dev/null and b/javascript/examples/editors/images/preferences.gif differ
    diff --git a/javascript/examples/editors/images/press.gif b/javascript/examples/editors/images/press.gif
    new file mode 100644
    index 000000000..75b417765
    Binary files /dev/null and b/javascript/examples/editors/images/press.gif differ
    diff --git a/javascript/examples/editors/images/preview.gif b/javascript/examples/editors/images/preview.gif
    new file mode 100644
    index 000000000..a77258bcf
    Binary files /dev/null and b/javascript/examples/editors/images/preview.gif differ
    diff --git a/javascript/examples/editors/images/print.gif b/javascript/examples/editors/images/print.gif
    new file mode 100644
    index 000000000..ac948dfea
    Binary files /dev/null and b/javascript/examples/editors/images/print.gif differ
    diff --git a/javascript/examples/editors/images/printer.png b/javascript/examples/editors/images/printer.png
    new file mode 100644
    index 000000000..7d364686a
    Binary files /dev/null and b/javascript/examples/editors/images/printer.png differ
    diff --git a/javascript/examples/editors/images/properties.gif b/javascript/examples/editors/images/properties.gif
    new file mode 100644
    index 000000000..509b3fe40
    Binary files /dev/null and b/javascript/examples/editors/images/properties.gif differ
    diff --git a/javascript/examples/editors/images/rectangle.gif b/javascript/examples/editors/images/rectangle.gif
    new file mode 100644
    index 000000000..116acc6ca
    Binary files /dev/null and b/javascript/examples/editors/images/rectangle.gif differ
    diff --git a/javascript/examples/editors/images/redo.gif b/javascript/examples/editors/images/redo.gif
    new file mode 100644
    index 000000000..2090f344f
    Binary files /dev/null and b/javascript/examples/editors/images/redo.gif differ
    diff --git a/javascript/examples/editors/images/refresh.gif b/javascript/examples/editors/images/refresh.gif
    new file mode 100644
    index 000000000..2f7163ac1
    Binary files /dev/null and b/javascript/examples/editors/images/refresh.gif differ
    diff --git a/javascript/examples/editors/images/rhombus.gif b/javascript/examples/editors/images/rhombus.gif
    new file mode 100644
    index 000000000..bd042c0f9
    Binary files /dev/null and b/javascript/examples/editors/images/rhombus.gif differ
    diff --git a/javascript/examples/editors/images/right.gif b/javascript/examples/editors/images/right.gif
    new file mode 100644
    index 000000000..9c06d30c4
    Binary files /dev/null and b/javascript/examples/editors/images/right.gif differ
    diff --git a/javascript/examples/editors/images/rounded.gif b/javascript/examples/editors/images/rounded.gif
    new file mode 100644
    index 000000000..4159f6dd5
    Binary files /dev/null and b/javascript/examples/editors/images/rounded.gif differ
    diff --git a/javascript/examples/editors/images/save.gif b/javascript/examples/editors/images/save.gif
    new file mode 100644
    index 000000000..d0d261cbd
    Binary files /dev/null and b/javascript/examples/editors/images/save.gif differ
    diff --git a/javascript/examples/editors/images/saveas.gif b/javascript/examples/editors/images/saveas.gif
    new file mode 100644
    index 000000000..4a114aff8
    Binary files /dev/null and b/javascript/examples/editors/images/saveas.gif differ
    diff --git a/javascript/examples/editors/images/script.gif b/javascript/examples/editors/images/script.gif
    new file mode 100644
    index 000000000..978542225
    Binary files /dev/null and b/javascript/examples/editors/images/script.gif differ
    diff --git a/javascript/examples/editors/images/select.gif b/javascript/examples/editors/images/select.gif
    new file mode 100644
    index 000000000..bbe3c080f
    Binary files /dev/null and b/javascript/examples/editors/images/select.gif differ
    diff --git a/javascript/examples/editors/images/server.png b/javascript/examples/editors/images/server.png
    new file mode 100644
    index 000000000..9621c6e46
    Binary files /dev/null and b/javascript/examples/editors/images/server.png differ
    diff --git a/javascript/examples/editors/images/straight.gif b/javascript/examples/editors/images/straight.gif
    new file mode 100644
    index 000000000..3b5b06115
    Binary files /dev/null and b/javascript/examples/editors/images/straight.gif differ
    diff --git a/javascript/examples/editors/images/swimlane.gif b/javascript/examples/editors/images/swimlane.gif
    new file mode 100644
    index 000000000..3506687b8
    Binary files /dev/null and b/javascript/examples/editors/images/swimlane.gif differ
    diff --git a/javascript/examples/editors/images/symbols/cancel_end.png b/javascript/examples/editors/images/symbols/cancel_end.png
    new file mode 100644
    index 000000000..7aa854c78
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/cancel_end.png differ
    diff --git a/javascript/examples/editors/images/symbols/cancel_intermediate.png b/javascript/examples/editors/images/symbols/cancel_intermediate.png
    new file mode 100644
    index 000000000..920299cee
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/cancel_intermediate.png differ
    diff --git a/javascript/examples/editors/images/symbols/error.png b/javascript/examples/editors/images/symbols/error.png
    new file mode 100644
    index 000000000..ffcfe8afd
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/error.png differ
    diff --git a/javascript/examples/editors/images/symbols/event.png b/javascript/examples/editors/images/symbols/event.png
    new file mode 100644
    index 000000000..50486be0d
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/event.png differ
    diff --git a/javascript/examples/editors/images/symbols/event_end.png b/javascript/examples/editors/images/symbols/event_end.png
    new file mode 100644
    index 000000000..928d08303
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/event_end.png differ
    diff --git a/javascript/examples/editors/images/symbols/event_intermediate.png b/javascript/examples/editors/images/symbols/event_intermediate.png
    new file mode 100644
    index 000000000..f14bd8023
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/event_intermediate.png differ
    diff --git a/javascript/examples/editors/images/symbols/fork.png b/javascript/examples/editors/images/symbols/fork.png
    new file mode 100644
    index 000000000..042cd9bcf
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/fork.png differ
    diff --git a/javascript/examples/editors/images/symbols/inclusive.png b/javascript/examples/editors/images/symbols/inclusive.png
    new file mode 100644
    index 000000000..6111cc194
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/inclusive.png differ
    diff --git a/javascript/examples/editors/images/symbols/link.png b/javascript/examples/editors/images/symbols/link.png
    new file mode 100644
    index 000000000..792572b4e
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/link.png differ
    diff --git a/javascript/examples/editors/images/symbols/merge.png b/javascript/examples/editors/images/symbols/merge.png
    new file mode 100644
    index 000000000..abc17ebbc
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/merge.png differ
    diff --git a/javascript/examples/editors/images/symbols/message.png b/javascript/examples/editors/images/symbols/message.png
    new file mode 100644
    index 000000000..21cc97dd3
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/message.png differ
    diff --git a/javascript/examples/editors/images/symbols/message_end.png b/javascript/examples/editors/images/symbols/message_end.png
    new file mode 100644
    index 000000000..3b2a4d8ff
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/message_end.png differ
    diff --git a/javascript/examples/editors/images/symbols/message_intermediate.png b/javascript/examples/editors/images/symbols/message_intermediate.png
    new file mode 100644
    index 000000000..80b25048c
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/message_intermediate.png differ
    diff --git a/javascript/examples/editors/images/symbols/multiple.png b/javascript/examples/editors/images/symbols/multiple.png
    new file mode 100644
    index 000000000..89a12001b
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/multiple.png differ
    diff --git a/javascript/examples/editors/images/symbols/rule.png b/javascript/examples/editors/images/symbols/rule.png
    new file mode 100644
    index 000000000..4b2d7695b
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/rule.png differ
    diff --git a/javascript/examples/editors/images/symbols/small_cancel_end.gif b/javascript/examples/editors/images/symbols/small_cancel_end.gif
    new file mode 100644
    index 000000000..42adc37b4
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_cancel_end.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_cancel_intermediate.gif b/javascript/examples/editors/images/symbols/small_cancel_intermediate.gif
    new file mode 100644
    index 000000000..8a806f29d
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_cancel_intermediate.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_error.gif b/javascript/examples/editors/images/symbols/small_error.gif
    new file mode 100644
    index 000000000..00fa23578
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_error.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_event.gif b/javascript/examples/editors/images/symbols/small_event.gif
    new file mode 100644
    index 000000000..4ccdad954
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_event.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_event_end.gif b/javascript/examples/editors/images/symbols/small_event_end.gif
    new file mode 100644
    index 000000000..a0c89b43d
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_event_end.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_event_intermediate.gif b/javascript/examples/editors/images/symbols/small_event_intermediate.gif
    new file mode 100644
    index 000000000..14bc10a65
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_event_intermediate.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_fork.gif b/javascript/examples/editors/images/symbols/small_fork.gif
    new file mode 100644
    index 000000000..5ed72e4d4
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_fork.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_inclusive.gif b/javascript/examples/editors/images/symbols/small_inclusive.gif
    new file mode 100644
    index 000000000..a10da9d14
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_inclusive.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_link.gif b/javascript/examples/editors/images/symbols/small_link.gif
    new file mode 100644
    index 000000000..073288303
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_link.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_merge.gif b/javascript/examples/editors/images/symbols/small_merge.gif
    new file mode 100644
    index 000000000..f0c6166f5
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_merge.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_message.gif b/javascript/examples/editors/images/symbols/small_message.gif
    new file mode 100644
    index 000000000..1940da8cb
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_message.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_message_end.gif b/javascript/examples/editors/images/symbols/small_message_end.gif
    new file mode 100644
    index 000000000..467b024bb
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_message_end.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_message_intermediate.gif b/javascript/examples/editors/images/symbols/small_message_intermediate.gif
    new file mode 100644
    index 000000000..d6a58f155
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_message_intermediate.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_multiple.gif b/javascript/examples/editors/images/symbols/small_multiple.gif
    new file mode 100644
    index 000000000..9d2b67582
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_multiple.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_rule.gif b/javascript/examples/editors/images/symbols/small_rule.gif
    new file mode 100644
    index 000000000..8df6be084
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_rule.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_terminate.gif b/javascript/examples/editors/images/symbols/small_terminate.gif
    new file mode 100644
    index 000000000..da8206782
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_terminate.gif differ
    diff --git a/javascript/examples/editors/images/symbols/small_timer.gif b/javascript/examples/editors/images/symbols/small_timer.gif
    new file mode 100644
    index 000000000..8d7841d79
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/small_timer.gif differ
    diff --git a/javascript/examples/editors/images/symbols/terminate.png b/javascript/examples/editors/images/symbols/terminate.png
    new file mode 100644
    index 000000000..e862039fc
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/terminate.png differ
    diff --git a/javascript/examples/editors/images/symbols/timer.png b/javascript/examples/editors/images/symbols/timer.png
    new file mode 100644
    index 000000000..247eb9eaa
    Binary files /dev/null and b/javascript/examples/editors/images/symbols/timer.png differ
    diff --git a/javascript/examples/editors/images/tasks.gif b/javascript/examples/editors/images/tasks.gif
    new file mode 100644
    index 000000000..96a231f0c
    Binary files /dev/null and b/javascript/examples/editors/images/tasks.gif differ
    diff --git a/javascript/examples/editors/images/text.gif b/javascript/examples/editors/images/text.gif
    new file mode 100644
    index 000000000..5535ce62e
    Binary files /dev/null and b/javascript/examples/editors/images/text.gif differ
    diff --git a/javascript/examples/editors/images/toback.gif b/javascript/examples/editors/images/toback.gif
    new file mode 100644
    index 000000000..da3e471b5
    Binary files /dev/null and b/javascript/examples/editors/images/toback.gif differ
    diff --git a/javascript/examples/editors/images/tofront.gif b/javascript/examples/editors/images/tofront.gif
    new file mode 100644
    index 000000000..c3b6cdc0b
    Binary files /dev/null and b/javascript/examples/editors/images/tofront.gif differ
    diff --git a/javascript/examples/editors/images/toolbar.gif b/javascript/examples/editors/images/toolbar.gif
    new file mode 100644
    index 000000000..e487713d9
    Binary files /dev/null and b/javascript/examples/editors/images/toolbar.gif differ
    diff --git a/javascript/examples/editors/images/top.gif b/javascript/examples/editors/images/top.gif
    new file mode 100644
    index 000000000..5840a52c8
    Binary files /dev/null and b/javascript/examples/editors/images/top.gif differ
    diff --git a/javascript/examples/editors/images/tree.gif b/javascript/examples/editors/images/tree.gif
    new file mode 100644
    index 000000000..d067858ac
    Binary files /dev/null and b/javascript/examples/editors/images/tree.gif differ
    diff --git a/javascript/examples/editors/images/triangle.gif b/javascript/examples/editors/images/triangle.gif
    new file mode 100644
    index 000000000..7847acd65
    Binary files /dev/null and b/javascript/examples/editors/images/triangle.gif differ
    diff --git a/javascript/examples/editors/images/underline.gif b/javascript/examples/editors/images/underline.gif
    new file mode 100644
    index 000000000..a580b4279
    Binary files /dev/null and b/javascript/examples/editors/images/underline.gif differ
    diff --git a/javascript/examples/editors/images/undo.gif b/javascript/examples/editors/images/undo.gif
    new file mode 100644
    index 000000000..30e28ce40
    Binary files /dev/null and b/javascript/examples/editors/images/undo.gif differ
    diff --git a/javascript/examples/editors/images/ungroup.gif b/javascript/examples/editors/images/ungroup.gif
    new file mode 100644
    index 000000000..0b0139a5a
    Binary files /dev/null and b/javascript/examples/editors/images/ungroup.gif differ
    diff --git a/javascript/examples/editors/images/up.gif b/javascript/examples/editors/images/up.gif
    new file mode 100644
    index 000000000..07164754e
    Binary files /dev/null and b/javascript/examples/editors/images/up.gif differ
    diff --git a/javascript/examples/editors/images/vertical.gif b/javascript/examples/editors/images/vertical.gif
    new file mode 100644
    index 000000000..be1ba6ce1
    Binary files /dev/null and b/javascript/examples/editors/images/vertical.gif differ
    diff --git a/javascript/examples/editors/images/workplace.png b/javascript/examples/editors/images/workplace.png
    new file mode 100644
    index 000000000..3e2fad8a3
    Binary files /dev/null and b/javascript/examples/editors/images/workplace.png differ
    diff --git a/javascript/examples/editors/images/wrench.png b/javascript/examples/editors/images/wrench.png
    new file mode 100644
    index 000000000..1be38b51a
    Binary files /dev/null and b/javascript/examples/editors/images/wrench.png differ
    diff --git a/javascript/examples/editors/images/zoom.gif b/javascript/examples/editors/images/zoom.gif
    new file mode 100644
    index 000000000..b7a21a979
    Binary files /dev/null and b/javascript/examples/editors/images/zoom.gif differ
    diff --git a/javascript/examples/editors/images/zoomactual.gif b/javascript/examples/editors/images/zoomactual.gif
    new file mode 100644
    index 000000000..18119d535
    Binary files /dev/null and b/javascript/examples/editors/images/zoomactual.gif differ
    diff --git a/javascript/examples/editors/images/zoomin.gif b/javascript/examples/editors/images/zoomin.gif
    new file mode 100644
    index 000000000..fa1de900f
    Binary files /dev/null and b/javascript/examples/editors/images/zoomin.gif differ
    diff --git a/javascript/examples/editors/images/zoomout.gif b/javascript/examples/editors/images/zoomout.gif
    new file mode 100644
    index 000000000..21427ddd3
    Binary files /dev/null and b/javascript/examples/editors/images/zoomout.gif differ
    diff --git a/javascript/examples/editors/js/mxApplication.js b/javascript/examples/editors/js/mxApplication.js
    new file mode 100644
    index 000000000..ff4147002
    --- /dev/null
    +++ b/javascript/examples/editors/js/mxApplication.js
    @@ -0,0 +1,79 @@
    +/*
    + * $Id: mxApplication.js,v 1.21 2010-11-08 20:09:40 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + *
    + * Defines the startup sequence of the application.
    + *
    + */
    +{
    +
    +	/**
    +	 * Constructs a new application (note that this returns an mxEditor
    +	 * instance).
    +	 */
    +	function mxApplication(config)
    +	{
    +		var hideSplash = function()
    +		{
    +			// Fades-out the splash screen
    +			var splash = document.getElementById('splash');
    +			
    +			if (splash != null)
    +			{
    +				try
    +				{
    +					mxEvent.release(splash);
    +					mxEffects.fadeOut(splash, 100, true);
    +				}
    +				catch (e)
    +				{
    +					splash.parentNode.removeChild(splash);
    +				}
    +			}
    +		};
    +		
    +		try
    +		{
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				var node = mxUtils.load(config).getDocumentElement();
    +				var editor = new mxEditor(node);
    +				
    +				// Updates the window title after opening new files
    +				var title = document.title;
    +				var funct = function(sender)
    +				{
    +					document.title = title + ' - ' + sender.getTitle();
    +				};
    +				
    +				editor.addListener(mxEvent.OPEN, funct);
    +				
    +				// Prints the current root in the window title if the
    +				// current root of the graph changes (drilling).
    +				editor.addListener(mxEvent.ROOT, funct);
    +				funct(editor);
    +				
    +				// Displays version in statusbar
    +				editor.setStatus('mxGraph '+mxClient.VERSION);
    +
    +				// Shows the application
    +				hideSplash();
    +			}
    +		}
    +		catch (e)
    +		{
    +			hideSplash();
    +
    +			// Shows an error message if the editor cannot start
    +			mxUtils.alert('Cannot start application: '+e.message);
    +			throw e; // for debugging
    +		}
    +								
    +		return editor;
    +	}
    +
    +}
    diff --git a/javascript/examples/editors/layouteditor.html b/javascript/examples/editors/layouteditor.html
    new file mode 100644
    index 000000000..49b3989e0
    --- /dev/null
    +++ b/javascript/examples/editors/layouteditor.html
    @@ -0,0 +1,35 @@
    +<html>
    +<head>
    +	<title>mxGraph Workflow Designer</title>
    +	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    +	<style type="text/css" media="screen">
    +		div.base {
    +			position: absolute;
    +			overflow: hidden;
    +			white-space: nowrap;
    +			font-family: Arial;
    +			font-size: 8pt;
    +		}
    +		div.base#graph {
    +			border-style: solid;
    +			border-color: #F2F2F2;
    +			border-width: 1px;
    +			background: url('images/grid.gif');
    +		}
    +	</style>
    +	<script type="text/javascript">
    +		mxBasePath = '../../src';
    +		window.onbeforeunload = function() { return mxResources.get('changesLost'); };
    +	</script>
    +	<script type="text/javascript" src="../../src/js/mxClient.js"></script>
    +	<script type="text/javascript" src="js/mxApplication.js"></script>
    +</head>
    +<body onload="new mxApplication('config/layouteditor.xml');">
    +	<div id="graph" class="base">
    +		<!-- Graph Here -->
    +	</div>
    +	<div id="status" class="base" align="right">
    +		<!-- Status Here -->Done
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/editors/processeditor.html b/javascript/examples/editors/processeditor.html
    new file mode 100644
    index 000000000..82852e9ea
    --- /dev/null
    +++ b/javascript/examples/editors/processeditor.html
    @@ -0,0 +1,66 @@
    +<html>
    +<head>
    +	<title>mxGraph Process Example</title>
    +	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    +	<style type="text/css" media="screen">
    +		div.base {
    +			position: absolute;
    +			overflow: hidden;
    +			white-space: nowrap;
    +			font-family: Arial;
    +			font-size: 8pt;
    +		}
    +		div.base#toolbar {
    +			padding-left: 8px;
    +			padding-top: 1px;
    +			background: url('images/toolbar.gif');
    +		}
    +		div.base#status {
    +			color: gray;
    +			border-style: none;
    +			border-top-style: solid;
    +			border-color: silver;
    +			border-width: 1px;
    +			padding-top: 6px;
    +			_padding-top: 4px;
    +			padding-right: 8px;
    +			background: url('images/toolbar.gif');
    +		}
    +	</style>
    +	<script type="text/javascript">
    +		mxBasePath = '../../src';
    +	</script>
    +	<script type="text/javascript" src="../../src/js/mxClient.js"></script>
    +	<script type="text/javascript" src="js/mxApplication.js"></script>
    +	<script type="text/javascript">
    +		mxConstants.DEFAULT_HOTSPOT = 1;
    +		window.onbeforeunload = function() { return mxResources.get('changesLost'); };
    +		
    +		// Enables guides
    +		mxGraphHandler.prototype.guidesEnabled = true;
    +		
    +	    // Alt disables guides
    +	    mxGuide.prototype.isEnabledForEvent = function(evt)
    +	    {
    +	    	return !mxEvent.isAltDown(evt);
    +	    };
    +		
    +		// Enables snapping waypoints to terminals
    +		mxEdgeHandler.prototype.snapToTerminals = true;
    +		
    +		window.onbeforeunload = function() { return mxResources.get('changesLost'); };
    +	</script>
    +</head>
    +<body onload="new mxApplication('config/processeditor.xml');">
    +	<div id="toolbar" class="base" style="top:0px;height:36px;left:0px;right:0px;">
    +		<!-- Toolbar Here -->
    +	</div>
    +	<div id="graph" class="base" style="left:0px;right:0px;top:36px;bottom:20px;background:white;">
    +		<!-- Graph Here -->
    +	</div>
    +	<div id="status" class="base" align="right"
    +		style="height:20px;bottom:0px;left:0px;right:0px;">
    +		<!-- Status Here -->Done
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/editors/resources/mxApplication.properties b/javascript/examples/editors/resources/mxApplication.properties
    new file mode 100644
    index 000000000..4dc2cdf81
    --- /dev/null
    +++ b/javascript/examples/editors/resources/mxApplication.properties
    @@ -0,0 +1,75 @@
    +// Use http://centricle.com/tools/ascii-hex/ for hex codes
    +urlHelp=help/index.html
    +lastSaved=Last Saved
    +currentFile=Current File
    +toolbar=Tools
    +save=Save
    +print=Print
    +cut=Cut
    +copy=Copy
    +paste=Paste
    +delete=Delete
    +undo=Undo
    +redo=Redo
    +select=Select
    +connect=Connect
    +pan=Pan
    +zoomIn=Zoom In
    +zoomOut=Zoom Out
    +zoom=Zoom
    +fit=Fit
    +actualSize=Actual Size
    +selectAll=Select All
    +clearSelection=Clear Selection
    +shape=Shape
    +format=Format
    +font=Font
    +group=Group
    +ungroup=Ungroup
    +removeFromParent=Orphan
    +align=Align
    +left=Left
    +right=Right
    +center=Center
    +top=Top
    +middle=Middle
    +bottom=Bottom
    +collapse=Collapse
    +expand=Expand
    +toBack=Send to back
    +toFront=Bring to front
    +enterGroup=Enter group
    +exitGroup=Exit group
    +layout=Layout
    +horizontalTree=Horizontal Tree
    +verticalTree=Vertical Tree
    +fillColor=Fill Color
    +strokeColor=Line Color
    +gradientColor=Gradient Color
    +bold=Bold
    +italic=Italic
    +fontColor=Font Color
    +fontSize=Font Size
    +fontFamily=Font Family
    +examples=Examples
    +newDiagram=New Diagram
    +image=Image
    +opacity=Opacity
    +selection=Selection
    +editStyle=Edit Style
    +enterStyle=Enter Style
    +enterColorname=Enter Colorname
    +enterImageUrl=Enter Image URL
    +enterOpacity=Enter Opacity (%)
    +enterFontsize=Enter Fontsize (pt)
    +enterFontfamily=Enter Fontfamily
    +toggleRounded=Rounded
    +toggleShadow=Shadow
    +openHref=Open URL
    +show=Show
    +exportImage=Export Image
    +newExportImage=Export Image (New)
    +changesLost=All changes will be lost!
    +swimlanes=Swimlanes
    +travelBooking=Travel Booking
    +notAvailable=Not available
    diff --git a/javascript/examples/editors/resources/mxApplication_de.properties b/javascript/examples/editors/resources/mxApplication_de.properties
    new file mode 100644
    index 000000000..412bca4b4
    --- /dev/null
    +++ b/javascript/examples/editors/resources/mxApplication_de.properties
    @@ -0,0 +1,73 @@
    +// Use http://centricle.com/tools/ascii-hex/ for hex codes
    +urlHelp=help/index.html
    +lastSaved=Zuletzt Gespeichert
    +currentFile=Aktuelle Datei
    +toolbar=Tools
    +save=Speichern
    +print=Drucken
    +cut=Ausschneiden
    +copy=Kopieren
    +paste=Einf%FCgen
    +delete=L%F6schen
    +undo=R%FCckg%E4ngig
    +redo=Wiederherstellen
    +select=Markieren
    +connect=Verbinden
    +pan=Verschieben
    +zoomIn=Hineinzoomen
    +zoomOut=Herauszoomen
    +zoom=Zoom
    +fit=Anpassen
    +actualSize=Aktuelle Gr%F6sse
    +selectAll=Alle Markieren
    +clearSelection=Markierung aufheben
    +shape=Element
    +format=Format
    +font=Schrift
    +group=Gruppieren
    +ungroup=Gruppe aufheben
    +removeFromParent=Herausl%F6sen
    +align=Ausrichten
    +left=Links
    +right=Rechts
    +center=Zentriert
    +top=Oben
    +middle=Mitte
    +bottom=Unten
    +collapse=Zusammenziehen
    +expand=Expandieren
    +toBack=Nach hinten
    +toFront=Nach vorne
    +enterGroup=In Gruppe hinein
    +exitGroup=Aus Gruppe heraus
    +layout=Anordnen
    +horizontalTree=Horizontaler Baum
    +verticalTree=Vertikaler Baum
    +fillColor=F%FCllfarbe
    +strokeColor=Linienfarbe
    +gradientColor=Farbverlauf
    +bold=Fett
    +italic=Kursiv
    +fontColor=Schriftfarbe
    +fontSize=Schriftgr%F6sse
    +fontFamily=Schriftart
    +examples=Beispiele
    +newDiagram=Neues Diagramm
    +image=Bild
    +opacity=Transparenz
    +selection=Markierung
    +editStyle=Style bearbeiten
    +enterStyle=Style eingeben
    +enterColorname=Farbname eingeben
    +enterImageUrl=Bild URL eingeben
    +enterOpacity=Deckkraft eingeben (%)
    +enterFontsize=Schriftgr%F6sse eingeben (pt)
    +enterFontfamily=Schriftart eingeben
    +toggleRounded=Abgerundet
    +toggleShadow=Schatten
    +openHref=URL %D6ffnen
    +show=Anzeigen
    +exportImage=Exportiere Bild
    +newExportImage=Exportiere Bild (Neu)
    +changesLost=Alle Aenderungen gehen verloren!
    +notAvailable=Nicht verfügbar
    diff --git a/javascript/examples/editors/resources/mxApplication_zh.properties b/javascript/examples/editors/resources/mxApplication_zh.properties
    new file mode 100644
    index 000000000..410a43a05
    --- /dev/null
    +++ b/javascript/examples/editors/resources/mxApplication_zh.properties
    @@ -0,0 +1,74 @@
    +// Use http://centricle.com/tools/ascii-hex/ for hex codes
    +urlHelp=help/index.html
    +lastSaved=Last Saved
    +currentFile=Current File
    +toolbar=Tools
    +save=%u4FDD%u5B58
    +print=%u6253%u5370
    +cut=%u526a%u5207
    +copy=%u590d%u5236
    +paste=%u7c98%u8d34
    +delete=%u5220%u9664
    +undo=%u64a4%u6d88
    +redo=%u91cd%u505a
    +select=Select
    +connect=Connect
    +pan=Pan
    +zoomIn=Zoom In
    +zoomOut=Zoom Out
    +zoom=%u5927%u5c0f
    +fit=%u9002%u5408%u5927%u5c0f
    +actualSize=Actual Size
    +selectAll=Select All
    +clearSelection=Clear Selection
    +shape=Shape
    +format=%u683c%u5f0f
    +font=Font
    +group=%u5206%u7ec4
    +ungroup=%u53d6%u6d88%u5206%u7ec4
    +removeFromParent=Orphan
    +align=%u5bf9%u9f50
    +left=Left
    +right=Right
    +center=Center
    +top=Top
    +middle=Middle
    +bottom=Bottom
    +collapse=Collapse
    +expand=Expand
    +toBack=Send to back
    +toFront=Bring to front
    +enterGroup=Enter group
    +exitGroup=Exit group
    +layout=Layout
    +horizontalTree=Horizontal Tree
    +verticalTree=Vertical Tree
    +fillColor=%u586b%u5145%u989c%u8272
    +strokeColor=%u7ebf%u989c%u8272
    +gradientColor=Gradient Color
    +bold=%u7c97%u4f53
    +italic=%u659c%u4f53
    +fontColor=%u5b57%u4f53%u989c%u8272
    +fontSize=Font Size
    +fontFamily=Font Family
    +examples=Examples
    +newDiagram=New Diagram
    +image=Image
    +opacity=Opacity
    +selection=Selection
    +editStyle=Edit Style
    +enterStyle=Enter Style
    +enterColorname=Enter Colorname
    +enterImageUrl=Enter Image URL
    +enterOpacity=Enter Opacity (%)
    +enterFontsize=Enter Fontsize (pt)
    +enterFontfamily=Enter Fontfamily
    +toggleRounded=Rounded
    +toggleShadow=Shadow
    +openHref=Open URL
    +show=%u663e%u793a
    +exportImage=Export Image
    +changesLost=All changes will be lost!
    +swimlanes=Swimlanes
    +travelBooking=Travel Booking
    +notAvailable=Not available
    diff --git a/javascript/examples/editors/workfloweditor.html b/javascript/examples/editors/workfloweditor.html
    new file mode 100644
    index 000000000..c8133dc7b
    --- /dev/null
    +++ b/javascript/examples/editors/workfloweditor.html
    @@ -0,0 +1,59 @@
    +<html>
    +<head>
    +	<title>mxGraph Workflow Example</title>
    +	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    +	<style type="text/css" media="screen">
    +		div.base {
    +			position: absolute;
    +			overflow: hidden;
    +			white-space: nowrap;
    +			font-family: Arial;
    +			font-size: 8pt;
    +		}
    +		div.base#graph {
    +			border-style: solid;
    +			border-color: #F2F2F2;
    +			border-width: 1px;
    +			background: url('images/grid.gif');
    +		}
    +	</style>
    +	<script type="text/javascript">
    +		mxBasePath = '../../src';
    +	</script>
    +	<script type="text/javascript" src="../../src/js/mxClient.js"></script>
    +	<script type="text/javascript" src="js/mxApplication.js"></script>
    +	<script type="text/javascript">
    +		mxConstants.DEFAULT_HOTSPOT = 1;
    +		
    +		// Enables guides
    +		mxGraphHandler.prototype.guidesEnabled = true;
    +		
    +	    // Alt disables guides
    +	    mxGuide.prototype.isEnabledForEvent = function(evt)
    +	    {
    +	    	return !mxEvent.isAltDown(evt);
    +	    };
    +		
    +		// Enables snapping waypoints to terminals
    +		mxEdgeHandler.prototype.snapToTerminals = true;
    +		
    +		window.onbeforeunload = function() { return mxResources.get('changesLost'); };
    +	</script>
    +</head>
    +<body onload="new mxApplication('config/workfloweditor.xml');">
    +	<table id="splash" width="100%" height="100%"
    +		style="background:white;position:absolute;top:0px;left:0px;z-index:4;">
    +		<tr>
    +			<td align="center" valign="middle">
    +				<img src="images/loading.gif">
    +			</td>
    +		</tr>
    +	</table>
    +	<div id="graph" class="base">
    +		<!-- Graph Here -->
    +	</div>
    +	<div id="status" class="base" align="right">
    +		<!-- Status Here -->
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/events.html b/javascript/examples/events.html
    new file mode 100644
    index 000000000..82b0f012a
    --- /dev/null
    +++ b/javascript/examples/events.html
    @@ -0,0 +1,167 @@
    +<!--
    +  $Id: events.html,v 1.42 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Events example for mxGraph. This example demonstrates creating
    +  a graph container and using the mxDivResizer to update the size,
    +  interaction on the graph, including marquee selection, custom 
    +  tooltips, context menu handling and changing the default menu
    +  opacity. It also demonstrates how to use an edgestyle in the 
    +  default stylesheet, and handle the doubleclick on the adjustment
    +  point. See also: overlays.html for click event handling.
    +-->
    +<html>
    +<head>
    +	<title>Events example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the dynamically
    +		// created DOM node called container which is created below.
    +		function main()
    +		{
    +			// Sets the image to be used for creating new connections
    +			mxConnectionHandler.prototype.connectImage = new mxImage('images/green-dot.gif', 14, 14);
    +			
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				var container = document.createElement('div');
    +				container.style.position = 'absolute';
    +				container.style.overflow = 'hidden';
    +				container.style.left = '0px';
    +				container.style.top = '0px';
    +				container.style.right = '0px';
    +				container.style.bottom = '0px';
    +				container.style.background = 'url("editors/images/grid.gif")';
    +
    +				// Disables built-in context menu
    +				mxEvent.disableContextMenu(container);
    +
    +				// Workaround for Internet Explorer ignoring certain styles
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +				}
    +
    +				document.body.appendChild(container);
    +			
    +				// Creates the graph inside the DOM node.
    +				// Optionally you can enable panning, tooltips and connections
    +				// using graph.setPanning(), setTooltips() & setConnectable().
    +				// To enable rubberband selection and basic keyboard events,
    +				// use new mxRubberband(graph) and new mxKeyHandler(graph).
    +				var graph = new mxGraph(container);
    +
    +				// Enables tooltips, new connections and panning
    +				graph.setPanning(true);
    +				graph.setTooltips(true);
    +				graph.setConnectable(true);
    +				
    +				// Automatically handle parallel edges
    + 				var layout = new mxParallelEdgeLayout(graph);
    + 				var layoutMgr = new mxLayoutManager(graph);
    + 				
    + 				layoutMgr.getLayout = function(cell)
    +				{
    +					if (cell.getChildCount() > 0)
    +					{
    +						return layout;
    +					}
    +				};
    +				
    +				// Enables rubberband (marquee) selection and a handler
    +				// for basic keystrokes (eg. return, escape during editing).
    +				var rubberband = new mxRubberband(graph);
    +				var keyHandler = new mxKeyHandler(graph);
    +
    +				// Changes the default style for edges "in-place" and assigns
    +				// an alternate edge style which is applied in mxGraph.flip
    +				// when the user double clicks on the adjustment control point
    +				// of the edge. The ElbowConnector edge style switches to TopToBottom
    +				// if the horizontal style is true.
    +				var style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +		
    +				graph.alternateEdgeStyle = 'elbow=vertical';
    +
    +				// Installs a custom tooltip for cells
    +				graph.getTooltipForCell = function(cell)
    +				{
    +					return 'Doubleclick and right- or shiftclick';
    +				}
    +				
    +				// Installs a popupmenu handler using local function (see below).
    +				graph.panningHandler.factoryMethod = function(menu, cell, evt)
    +				{
    +					return createPopupMenu(graph, menu, cell, evt);
    +				};
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Doubleclick', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'Right-/Shiftclick', 200, 150, 120, 30);
    +					var v3 = graph.insertVertex(parent, null, 'Connect/Reconnect', 200, 20, 120, 30);
    +					var v4 = graph.insertVertex(parent, null, 'Control-Drag', 20, 150, 100, 30);
    +					var e1 = graph.insertEdge(parent, null, 'Tooltips', v1, v2);
    +					var e2 = graph.insertEdge(parent, null, '', v2, v3);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +		
    +		// Function to create the entries in the popupmenu
    +		function createPopupMenu(graph, menu, cell, evt)
    +		{
    +			if (cell != null)
    +			{
    +				menu.addItem('Cell Item', 'editors/images/image.gif', function()
    +				{
    +					mxUtils.alert('MenuItem1');
    +				});
    +			}
    +			else
    +			{
    +				menu.addItem('No-Cell Item', 'editors/images/image.gif', function()
    +				{
    +					mxUtils.alert('MenuItem2');
    +				});
    +			}
    +			menu.addSeparator();
    +			menu.addItem('MenuItem3', '../src/images/warning.gif', function()
    +			{
    +				mxUtils.alert('MenuItem3: '+graph.getSelectionCount()+' selected');
    +			});
    +		};
    +	</script>
    +</head>
    +
    +<!-- Calls the main function after the page has loaded. Container is dynamically created. -->
    +<body onload="main();">
    +</body>
    +</html>
    diff --git a/javascript/examples/extjs.html b/javascript/examples/extjs.html
    new file mode 100644
    index 000000000..0c70e1f46
    --- /dev/null
    +++ b/javascript/examples/extjs.html
    @@ -0,0 +1,141 @@
    +<!--
    +  $Id: extjs.html,v 1.9 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +
    +  ExtJs example for mxGraph. This example demonstrates using
    +  mxGraph inside an ExtJS window.
    +-->
    +<html>
    +<head>
    +	<title>Hello, World! example for mxGraph</title>
    +
    +	<link rel="stylesheet" type="text/css" href="http://www.diagramly.com/js/sencha/resources/css/ext-all.css" />
    +	<!-- <link rel="stylesheet" type="text/css" href="http://extjs.com/deploy/dev/resources/css/xtheme-default.css" /> -->
    +	<script type="text/javascript" src="http://www.diagramly.com/js/sencha/adapter/ext/ext-base.js"></script>
    +	<script type="text/javascript" src="http://www.diagramly.com/js/sencha/ext-all.js"></script>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		var graph;
    +
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				graph = new mxGraph(container);
    +
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				graph.setPanning(true);
    +				graph.setTooltips(true);
    +
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +
    +		Ext.onReady(function()
    +		{
    +		    var win;
    +		    var button = Ext.get('show-btn');
    +
    +		    button.on('click', function()
    +		    {
    +		        // create the window on the first click and reuse on subsequent clicks
    +		        if(!win)
    +		        {
    +		            win = new Ext.Window(
    +		            {
    +		                el:'hello-win',
    +		                layout:'fit',
    +		                width:500,
    +		                height:300,
    +		                closeAction:'hide',
    +		                plain: true,
    +
    +		                items: new Ext.TabPanel(
    +		                {
    +		                    el: 'hello-tabs',
    +		                    autoTabs:true,
    +		                    activeTab:0,
    +		                    deferredRender:false,
    +		                    border:false
    +		                }),
    +
    +		                buttons: [
    +		                {
    +		                    text:'Submit',
    +		                    disabled:true
    +		                },
    +		                {
    +		                    text: 'Close',
    +		                    handler: function()
    +		                    {
    +		                        win.hide();
    +		                    }
    +		                }]
    +		            });
    +
    +		            // Fits the SVG container into the window
    +		            win.on('resize', function()
    +		            {
    +		                graph.sizeDidChange();
    +		            });
    +		        }
    +
    +		        win.show(this);
    +		    });
    +		});
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +<input type="button" id="show-btn" value="Hello World" /><br /><br />
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="hello-win" class="x-hidden">
    +	    <div class="x-window-header">Hello Dialog</div>
    +	    <div id="hello-tabs">
    +	        <!-- Auto create tab 1 -->
    +			<div id="graphContainer" class="x-tab" title="Hello World 1"
    +				style="background:url('editors/images/grid.gif');">
    +			</div>
    +		</div>
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/fileio.html b/javascript/examples/fileio.html
    new file mode 100644
    index 000000000..d674088d3
    --- /dev/null
    +++ b/javascript/examples/fileio.html
    @@ -0,0 +1,218 @@
    +<!--
    +  $Id: fileio.html,v 1.25 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  File I/O example for mxGraph. This example demonstrates reading an
    +  XML file, writing a custom parser, applying an automatic layout and
    +  defining a 2-way edge.
    +-->
    +<html>
    +<head>
    +	<title>File I/O example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				graph.setEnabled(false);
    +				graph.setPanning(true);
    +				graph.setTooltips(true);
    +				graph.panningHandler.useLeftButtonForPanning = true;
    +				
    +				// Adds a highlight on the cell under the mousepointer
    +				new mxCellTracker(graph);
    +				
    +				// Changes the default vertex style in-place
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_ROUNDED;
    +				style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +				style[mxConstants.STYLE_PERIMETER_SPACING] = 4;
    +				style[mxConstants.STYLE_SHADOW] = true;
    +				
    +				style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR] = 'white';
    +								
    +				style = mxUtils.clone(style);
    +				style[mxConstants.STYLE_STARTARROW] = mxConstants.ARROW_CLASSIC;
    +				graph.getStylesheet().putCellStyle('2way', style);
    +				
    +				graph.isHtmlLabel = function(cell)
    +				{
    +					return true;
    +				};
    +				
    +				// Larger grid size yields cleaner layout result
    +				graph.gridSize = 20;
    +			
    +				// Creates a layout algorithm to be used
    +				// with the graph
    +				var layout = new mxFastOrganicLayout(graph);
    +
    +				// Moves stuff wider apart than usual
    +				layout.forceConstant = 140;
    +			
    +				// Adds a button to execute the layout
    +				document.body.appendChild(mxUtils.button('Arrange',function(evt)
    +				{
    +					var parent = graph.getDefaultParent();
    +					layout.execute(parent);
    +				}));
    +				
    +				// Load cells and layouts the graph
    +				graph.getModel().beginUpdate();
    +				try
    +				{	
    +					// Loads the custom file format (TXT file)
    +					parse(graph, 'fileio.txt');
    +	
    +					// Loads the mxGraph file format (XML file)
    +					//read(graph, 'fileio.xml');
    +										
    +					// Gets the default parent for inserting new cells. This
    +					// is normally the first child of the root (ie. layer 0).
    +					var parent = graph.getDefaultParent();
    +
    +					// Executes the layout
    +					layout.execute(parent);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +				graph.dblClick = function(evt, cell)
    +				{
    +					var mxe = new mxEventObject(mxEvent.DOUBLE_CLICK, 'event', evt, 'cell', cell);
    +					this.fireEvent(mxe);
    +					
    +					if (this.isEnabled() &&
    +						!mxEvent.isConsumed(evt) &&
    +						!mxe.isConsumed() &&
    +						cell != null)
    +					{
    +						mxUtils.alert('Show properties for cell '+(cell.customId || cell.getId()));
    +					}
    +				};
    +				
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +				}
    +			}
    +		};
    +		
    +		// Custom parser for simple file format
    +		function parse(graph, filename)
    +		{
    +			var model = graph.getModel();
    +								
    +			// Gets the default parent for inserting new cells. This
    +			// is normally the first child of the root (ie. layer 0).
    +			var parent = graph.getDefaultParent();
    +
    +			var req = mxUtils.load(filename);
    +			var text = req.getText();
    +
    +			var lines = text.split('\n');
    +			
    +			// Creates the lookup table for the vertices
    +			var vertices = [];
    +
    +			// Parses all lines (vertices must be first in the file)
    +			graph.getModel().beginUpdate();
    +			try
    +			{
    +				for (var i=0; i<lines.length; i++)
    +				{
    +					// Ignores comments (starting with #)
    +					var colon = lines[i].indexOf(':');
    +	
    +					if (lines[i].substring(0, 1) != "#" ||
    +						colon == -1)
    +					{
    +						var comma = lines[i].indexOf(',');
    +						var value = lines[i].substring(colon+2, lines[i].length);
    +						
    +						if (comma == -1 || comma > colon)
    +						{
    +							var key = lines[i].substring(0, colon);
    +							
    +							if (key.length > 0)
    +							{
    +								vertices[key] = graph.insertVertex(parent, null, value, 0, 0, 80, 70);
    +							}
    +						}
    +						else if (comma < colon)
    +						{
    +							// Looks up the vertices in the lookup table
    +							var source = vertices[lines[i].substring(0, comma)];
    +							var target = vertices[lines[i].substring(comma+1, colon)];
    +							
    +							if (source != null && target != null)
    +							{
    +								var e = graph.insertEdge(parent, null, value, source, target);
    +	
    +								// Uses the special 2-way style for 2-way labels
    +								if (value.indexOf('2-Way') >= 0)
    +								{
    +									e.style = '2way';
    +								}
    +							}
    +						}
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				graph.getModel().endUpdate();
    +			}
    +		};
    +		
    +		// Parses the mxGraph XML file format
    +		function read(graph, filename)
    +		{
    +			var req = mxUtils.load(filename);
    +			var root = req.getDocumentElement();
    +			var dec = new mxCodec(root.ownerDocument);
    +			
    +			dec.decode(root, graph.getModel());
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper. Make sure to define the position
    +		and overflow attributes! See comments on the adding of the size-listener on line 54 ff!  -->
    +	<div id="graphContainer"
    +		style="position:absolute;overflow:auto;top:38px;bottom:20px;left:20px;right:20px;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/fileio.txt b/javascript/examples/fileio.txt
    new file mode 100644
    index 000000000..1fdd1a616
    --- /dev/null
    +++ b/javascript/examples/fileio.txt
    @@ -0,0 +1,19 @@
    +# Custom file format for fileio.html (comments start with #, all vertices first)
    +
    +# Vertices (id: label)
    +1: <img src="editors/images/overlays/user3.png"><br><b>Last, First</b><br>Status<br>Info
    +2: <img src="editors/images/overlays/error.png"><br><b>Errorcode</b><br>Status<br>Info
    +3: <img src="editors/images/overlays/flash.png"><br><b>Warning</b><br>Status<br>Info
    +4: <img src="editors/images/overlays/users3.png"><br><b>Groupname</b><br>Status<br>Info
    +5: <img src="editors/images/overlays/workplace.png"><br><b>Workplace</b><br>Status<br>Info
    +6: <img src="editors/images/overlays/information.png"><br><b>Information</b><br>Status<br>Info
    +7: <img src="editors/images/overlays/printer.png"><br><b>Printername</b><br>Status<br>Info
    +
    +# Edges (source-id,target-id: label)
    +1,2: <img src="editors/images/overlays/lightbulb_on.png"> Hint
    +1,3: <img src="editors/images/overlays/help.png"> News
    +1,4: <img src="editors/images/overlays/information.png"> Member
    +5,6: <img src="editors/images/overlays/pencil.png"> Details
    +5,7: <img src="editors/images/overlays/check.png"> Access
    +4,5: <img src="editors/images/overlays/forbidden.png"> Access
    +1,5: <img src="editors/images/overlays/lightbulb_on.png"> 2-Way
    diff --git a/javascript/examples/fileio.xml b/javascript/examples/fileio.xml
    new file mode 100644
    index 000000000..72d9c3411
    --- /dev/null
    +++ b/javascript/examples/fileio.xml
    @@ -0,0 +1,48 @@
    +<mxGraphModel>
    +  <root>
    +    <mxCell id="0"/>
    +    <mxCell id="1" parent="0"/>
    +    <mxCell id="2" customId="2" value="&lt;img src=&quot;editors/images/overlays/user3.png&quot;&gt;&lt;br&gt;&lt;b&gt;Last, First&lt;/b&gt;&lt;br&gt;Status&lt;br&gt;Info" vertex="1" parent="1">
    +      <mxGeometry x="0" y="0" width="80" height="70" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="3" customId="3" value="&lt;img src=&quot;editors/images/overlays/error.png&quot;&gt;&lt;br&gt;&lt;b&gt;Errorcode&lt;/b&gt;&lt;br&gt;Status&lt;br&gt;Info" vertex="1" parent="1">
    +      <mxGeometry x="0" y="0" width="80" height="70" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="4" customId="4" value="&lt;img src=&quot;editors/images/overlays/flash.png&quot;&gt;&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;&lt;br&gt;Status&lt;br&gt;Info" vertex="1" parent="1">
    +      <mxGeometry x="0" y="0" width="120" height="70" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="5" customId="5" value="&lt;img src=&quot;editors/images/overlays/users3.png&quot;&gt;&lt;br&gt;&lt;b&gt;Groupname&lt;/b&gt;&lt;br&gt;Status&lt;br&gt;Info" vertex="1" parent="1">
    +      <mxGeometry x="0" y="0" width="80" height="70" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="6" customId="6" value="&lt;img src=&quot;editors/images/overlays/workplace.png&quot;&gt;&lt;br&gt;&lt;b&gt;Workplace&lt;/b&gt;&lt;br&gt;Status&lt;br&gt;Info" vertex="1" parent="1">
    +      <mxGeometry x="0" y="0" width="80" height="70" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="7" customId="6" value="&lt;img src=&quot;editors/images/overlays/information.png&quot;&gt;&lt;br&gt;&lt;b&gt;Information&lt;/b&gt;&lt;br&gt;Status&lt;br&gt;Info" vertex="1" parent="1">
    +      <mxGeometry x="0" y="0" width="80" height="70" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="8" customId="7" value="&lt;img src=&quot;editors/images/overlays/printer.png&quot;&gt;&lt;br&gt;&lt;b&gt;Printername&lt;/b&gt;&lt;br&gt;Status&lt;br&gt;Info" vertex="1" parent="1">
    +      <mxGeometry x="0" y="0" width="120" height="70" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="edge-1" customId="edge-1" value="&lt;img src=&quot;editors/images/overlays/lightbulb_on.png&quot;&gt; Hint" edge="1" parent="1" source="2" target="3">
    +      <mxGeometry relative="1" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="edge-2" customId="edge-2" value="&lt;img src=&quot;editors/images/overlays/help.png&quot;&gt; News" edge="1" parent="1" source="2" target="4">
    +      <mxGeometry relative="1" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="edge-3" customId="edge-3" value="&lt;img src=&quot;editors/images/overlays/information.png&quot;&gt; Member" edge="1" parent="1" source="2" target="5">
    +      <mxGeometry relative="1" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="edge-4" customId="edge-4" value="&lt;img src=&quot;editors/images/overlays/pencil.png&quot;&gt; Details" edge="1" parent="1" source="6" target="7">
    +      <mxGeometry relative="1" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="edge-5" customId="edge-5" value="&lt;img src=&quot;editors/images/overlays/check.png&quot;&gt; Access" edge="1" parent="1" source="6" target="8">
    +      <mxGeometry relative="1" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="edge-6" customId="edge-6" value="&lt;img src=&quot;editors/images/overlays/forbidden.png&quot;&gt; Access" edge="1" parent="1" source="5" target="6">
    +      <mxGeometry relative="1" as="geometry"/>
    +    </mxCell>
    +    <mxCell id="edge-7" customId="edge-7" value="&lt;img src=&quot;editors/images/overlays/lightbulb_on.png&quot;&gt; 2-Way" style="2way" edge="1" parent="1" source="2" target="6">
    +      <mxGeometry relative="1" as="geometry"/>
    +    </mxCell>
    +  </root>
    +</mxGraphModel>
    diff --git a/javascript/examples/fixedicon.html b/javascript/examples/fixedicon.html
    new file mode 100644
    index 000000000..8785454c4
    --- /dev/null
    +++ b/javascript/examples/fixedicon.html
    @@ -0,0 +1,147 @@
    +<!--
    +  $Id: fixedicon.html,v 1.2 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  FixedIcon example for mxGraph. This example demonstrates
    +  customizing the icon position in the mxLabel shape.
    +-->
    +<html>
    +<head>
    +	<title>Fixed icon example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Overrides the label redraw code to place the icon
    +		mxLabel.prototype.redraw = function()
    +		{
    +			var isSvg = (this.dialect == mxConstants.DIALECT_SVG);
    +			var isVml = mxUtils.isVml(this.node);
    +			
    +			// Updates the bounds of the outermost shape
    +			if (isSvg)
    +			{
    +				this.updateSvgShape(this.innerNode);
    +				
    +				if (this.shadowNode != null)
    +				{
    +					this.updateSvgShape(this.shadowNode);
    +				}
    +	
    +				this.updateSvgGlassPane();
    +			}
    +			else if (isVml)
    +			{
    +				this.updateVmlShape(this.node);
    +				this.updateVmlShape(this.rectNode);
    +				this.label.style.width = this.node.style.width;
    +				this.label.style.height = this.node.style.height;
    +				
    +				this.updateVmlGlassPane();
    +			}
    +			else
    +			{
    +				this.updateHtmlShape(this.node);
    +			}
    +	
    +			// Updates the imagewidth and imageheight		
    +			var imageWidth = 0;
    +			var imageHeight = 0;
    +			
    +			if (this.imageNode != null)
    +			{
    +				imageWidth = (this.style[mxConstants.STYLE_IMAGE_WIDTH] ||
    +					this.imageSize) * this.scale;
    +				imageHeight = (this.style[mxConstants.STYLE_IMAGE_HEIGHT] ||
    +					this.imageSize) * this.scale;
    +	
    +				// Places the icon
    +				var x = (this.bounds.width - imageWidth) / 2;
    +				var y = this.bounds.height - imageHeight;
    +
    +				if (isSvg)
    +				{
    +					this.imageNode.setAttribute('x', (this.bounds.x + x) + 'px');
    +					this.imageNode.setAttribute('y', (this.bounds.y + y) + 'px');
    +					this.imageNode.setAttribute('width', imageWidth + 'px');
    +					this.imageNode.setAttribute('height', imageHeight + 'px');
    +				}
    +				else
    +				{
    +					this.imageNode.style.position = 'relative';
    +					this.imageNode.style.left = x + 'px';
    +					this.imageNode.style.top = y + 'px';
    +					this.imageNode.style.width = imageWidth + 'px';
    +					this.imageNode.style.height = imageHeight + 'px';
    +					this.imageNode.setAttribute('stroked', 'false');
    +				}
    +			}
    +		};
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxLabel.prototype.crisp = true;
    +				
    +				// Makes the shadow brighter
    +				mxConstants.SHADOWCOLOR = '#C0C0C0';
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Uncomment the following if you want the container
    +				// to fit the size of the graph
    +				//graph.setResizeContainer(true);
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Fixed icon', 20, 20, 80, 50,
    +						'shape=label;image=images/plus.png;imageWidth=16;imageHeight=16;spacingBottom=10;' +
    +						'fillColor=#adc5ff;gradientColor=#7d85df;glass=1;rounded=1;shadow=1;');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/fixedpoints.html b/javascript/examples/fixedpoints.html
    new file mode 100644
    index 000000000..74d4dc129
    --- /dev/null
    +++ b/javascript/examples/fixedpoints.html
    @@ -0,0 +1,118 @@
    +<!--
    +  $Id: fixedpoints.html,v 1.7 2011-07-25 21:18:08 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Fixed points example for mxGraph. This example demonstrates using
    +  fixed connection points for connecting edges to vertices.
    +-->
    +<html>
    +<head>
    +	<title>Fixed points example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of all shapes in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setConnectable(true);
    +
    +				graph.getAllConnectionConstraints = function(terminal)
    +				{
    +					if (terminal != null && this.model.isVertex(terminal.cell))
    +					{
    +						return [new mxConnectionConstraint(new mxPoint(0, 0), true),
    +					    	new mxConnectionConstraint(new mxPoint(0.5, 0), true),
    +					    	new mxConnectionConstraint(new mxPoint(1, 0), true),
    +					    	new mxConnectionConstraint(new mxPoint(0, 0.5), true),
    +							new mxConnectionConstraint(new mxPoint(1, 0.5), true),
    +							new mxConnectionConstraint(new mxPoint(0, 1), true),
    +							new mxConnectionConstraint(new mxPoint(0.5, 1), true),
    +							new mxConnectionConstraint(new mxPoint(1, 1), true)];
    +					}
    +
    +					return null;
    +				};
    +				
    +				// Connect preview for elbow edges
    +				graph.connectionHandler.createEdgeState = function(me)
    +				{
    +					var edge = graph.createEdge(null, null, null, null, null, 'edgeStyle=elbowEdgeStyle');
    +					
    +					return new mxCellState(this.graph.view, edge, this.graph.getCellStyle(edge));
    +				};
    +
    +				// Disables floating connections
    +				graph.connectionHandler.isConnectableCell = function(cell)
    +				{
    +				   return false;
    +				};
    +				mxEdgeHandler.prototype.isConnectableCell = function(cell)
    +				{
    +					return graph.connectionHandler.isConnectableCell(cell);
    +				};
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 60,
    +						'shape=triangle;perimeter=trianglePerimeter');
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 60,
    +						'shape=ellipse;perimeter=ellipsePerimeter');
    +					var v3 = graph.insertVertex(parent, null, 'Hello,', 200, 20, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2,
    +						'edgeStyle=elbowEdgeStyle;elbow=horizontal;'+
    +						'exitX=0.5;exitY=1;exitPerimeter=1;entryX=0;entryY=0;entryPerimeter=1;');
    +					var e2 = graph.insertEdge(parent, null, '', v3, v2,
    +						'edgeStyle=elbowEdgeStyle;elbow=horizontal;orthogonal=0;'+
    +						'entryX=0;entryY=0;entryPerimeter=1;');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/Constants.java b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/Constants.java
    new file mode 100644
    index 000000000..663749e0b
    --- /dev/null
    +++ b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/Constants.java
    @@ -0,0 +1,42 @@
    +package com.mxgraph.examples.web;
    +
    +import java.awt.image.BufferedImage;
    +
    +public class Constants
    +{
    +	/**
    +	 * Contains an empty image.
    +	 */
    +	public static BufferedImage EMPTY_IMAGE;
    +
    +	/**
    +	 * Initializes the empty image.
    +	 */
    +	static
    +	{
    +		try
    +		{
    +			EMPTY_IMAGE = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
    +		}
    +		catch (Exception e)
    +		{
    +			// ignore
    +		}
    +	}
    +
    +	/**
    +	 * Maximum size (in bytes) for request payloads. Default is 10485760 (10MB).
    +	 */
    +	public static final int MAX_REQUEST_SIZE = 10485760;
    +
    +	/**
    +	 * Maximum width for exüprts. Default is 5000px.
    +	 */
    +	public static final int MAX_WIDTH = 6000;
    +
    +	/**
    +	 * Maximum height for exports. Default is 5000px.
    +	 */
    +	public static final int MAX_HEIGHT = 6000;
    +
    +}
    diff --git a/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/ExportServlet.java b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/ExportServlet.java
    new file mode 100644
    index 000000000..b73fc0e28
    --- /dev/null
    +++ b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/ExportServlet.java
    @@ -0,0 +1,313 @@
    +/**
    + * $Id: ExportServlet.java,v 1.4 2012-03-27 13:08:48 gaudenz Exp $
    + * Copyright (c) 2011-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.web;
    +
    +import java.awt.Color;
    +import java.awt.Graphics2D;
    +import java.awt.Image;
    +import java.awt.image.BufferedImage;
    +import java.io.IOException;
    +import java.io.StringReader;
    +import java.io.UnsupportedEncodingException;
    +import java.net.URLDecoder;
    +import java.util.Hashtable;
    +
    +import javax.imageio.ImageIO;
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +import javax.xml.parsers.ParserConfigurationException;
    +import javax.xml.parsers.SAXParserFactory;
    +
    +import org.xml.sax.InputSource;
    +import org.xml.sax.SAXException;
    +import org.xml.sax.XMLReader;
    +
    +import com.lowagie.text.Document;
    +import com.lowagie.text.DocumentException;
    +import com.lowagie.text.Rectangle;
    +import com.lowagie.text.pdf.PdfWriter;
    +import com.mxgraph.canvas.mxGraphicsCanvas2D;
    +import com.mxgraph.canvas.mxICanvas2D;
    +import com.mxgraph.reader.mxSaxOutputHandler;
    +import com.mxgraph.util.mxUtils;
    +
    +/**
    + * Servlet implementation class ImageServlet.
    + */
    +public class ExportServlet extends HttpServlet
    +{
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -5040708166131034515L;
    +
    +	/**
    +	 * 
    +	 */
    +	private transient SAXParserFactory parserFactory = SAXParserFactory
    +			.newInstance();
    +
    +	/**
    +	 * Cache for all images.
    +	 */
    +	private transient Hashtable<String, Image> imageCache = new Hashtable<String, Image>();
    +
    +	/**
    +	 * Handles exceptions and the output stream buffer.
    +	 */
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		try
    +		{
    +			if (request.getContentLength() < Constants.MAX_REQUEST_SIZE)
    +			{
    +				long t0 = System.currentTimeMillis();
    +
    +				handleRequest(request, response);
    +
    +				long mem = Runtime.getRuntime().totalMemory()
    +						- Runtime.getRuntime().freeMemory();
    +				long dt = System.currentTimeMillis() - t0;
    +
    +				System.out.println("Export: ip=" + request.getRemoteAddr()
    +						+ " ref=\"" + request.getHeader("Referer")
    +						+ "\" length=" + request.getContentLength() + " mem="
    +						+ mem + " dt=" + dt);
    +			}
    +			else
    +			{
    +				response.setStatus(HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE);
    +			}
    +		}
    +		catch (OutOfMemoryError e)
    +		{
    +			e.printStackTrace();
    +			final Runtime r = Runtime.getRuntime();
    +			System.out.println("r.freeMemory() = " + r.freeMemory() / 1024.0
    +					/ 1024);
    +			System.out.println("r.totalMemory() = " + r.totalMemory() / 1024.0
    +					/ 1024);
    +			System.out.println("r.maxMemory() = " + r.maxMemory() / 1024.0
    +					/ 1024);
    +			response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    +		}
    +		catch (Exception e)
    +		{
    +			e.printStackTrace();
    +			response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    +		}
    +		finally
    +		{
    +			response.getOutputStream().flush();
    +			response.getOutputStream().close();
    +		}
    +	}
    +
    +	/**
    +	 * Gets the parameters and logs the request.
    +	 * 
    +	 * @throws ParserConfigurationException 
    +	 * @throws SAXException 
    +	 * @throws DocumentException 
    +	 */
    +	protected void handleRequest(HttpServletRequest request,
    +			HttpServletResponse response) throws Exception
    +	{
    +		// Parses parameters
    +		String format = request.getParameter("format");
    +		String fname = request.getParameter("filename");
    +		int w = Integer.parseInt(request.getParameter("w"));
    +		int h = Integer.parseInt(request.getParameter("h"));
    +		String tmp = request.getParameter("bg");
    +		String xml = getRequestXml(request);
    +
    +		Color bg = (tmp != null) ? mxUtils.parseColor(tmp) : Color.WHITE;
    +
    +		// Checks parameters
    +		if (w > 0 && w <= Constants.MAX_WIDTH && h > 0
    +				&& h <= Constants.MAX_HEIGHT && format != null && xml != null
    +				&& xml.length() > 0)
    +		{
    +			if (fname != null && fname.toLowerCase().endsWith(".xml"))
    +			{
    +				fname = fname.substring(0, fname.length() - 4) + format;
    +			}
    +
    +			String url = request.getRequestURL().toString();
    +
    +			// Writes response
    +			if (format.equals("pdf"))
    +			{
    +				writePdf(url, fname, w, h, bg, xml, response);
    +			}
    +			else
    +			{
    +				writeImage(url, format, fname, w, h, bg, xml, response);
    +			}
    +
    +			response.setStatus(HttpServletResponse.SC_OK);
    +		}
    +		else
    +		{
    +			response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    +		}
    +	}
    +
    +	/**
    +	 * Gets the XML request parameter.
    +	 */
    +	protected String getRequestXml(HttpServletRequest request)
    +			throws IOException, UnsupportedEncodingException
    +	{
    +		return URLDecoder.decode(request.getParameter("plain"), "UTF-8");
    +	}
    +
    +	/**
    +	 * @throws ParserConfigurationException
    +	 * @throws SAXException
    +	 * @throws IOException
    +	 * 
    +	 */
    +	protected void writeImage(String url, String format, String fname, int w, int h,
    +			Color bg, String xml, HttpServletResponse response)
    +			throws IOException, SAXException, ParserConfigurationException
    +	{
    +		BufferedImage image = mxUtils.createBufferedImage(w, h, bg);
    +
    +		if (image != null)
    +		{
    +			Graphics2D g2 = image.createGraphics();
    +			mxUtils.setAntiAlias(g2, true, true);
    +			renderXml(xml, createCanvas(url, g2));
    +
    +			if (fname != null)
    +			{
    +				response.setContentType("application/x-unknown");
    +				response.setHeader("Content-Disposition",
    +						"attachment; filename=\"" + fname + "\"");
    +			}
    +			else if (format != null)
    +			{
    +				response.setContentType("image/" + format.toLowerCase());
    +			}
    +
    +			// Optional: For faster PNG encoding
    +			//			if (format.equalsIgnoreCase("png"))
    +			//			{
    +			//				PngEncoder encoder = new PngEncoder();
    +			//				encoder.encode(image, response.getOutputStream());
    +			//			}
    +			//			else
    +			//			{
    +			ImageIO.write(image, format, response.getOutputStream());
    +			//			}
    +		}
    +	}
    +
    +	/**
    +	 * Creates and returns the canvas for rendering.
    +	 * @throws IOException 
    +	 * @throws DocumentException 
    +	 * @throws ParserConfigurationException 
    +	 * @throws SAXException 
    +	 */
    +	protected void writePdf(String url, String fname, int w, int h, Color bg, String xml,
    +			HttpServletResponse response) throws DocumentException,
    +			IOException, SAXException, ParserConfigurationException
    +	{
    +		response.setContentType("application/pdf");
    +
    +		if (fname != null)
    +		{
    +			response.setHeader("Content-Disposition", "attachment; filename=\""
    +					+ fname + "\"");
    +		}
    +
    +		// Fixes PDF offset
    +		w += 1;
    +		h += 1;
    +
    +		Document document = new Document(new Rectangle(w, h));
    +		PdfWriter writer = PdfWriter.getInstance(document,
    +				response.getOutputStream());
    +		document.open();
    +
    +		mxGraphicsCanvas2D gc = createCanvas(url, writer.getDirectContent()
    +				.createGraphics(w, h));
    +
    +		// Fixes PDF offset
    +		gc.translate(1, 1);
    +
    +		renderXml(xml, gc);
    +		gc.getGraphics().dispose();
    +		document.close();
    +	}
    +
    +	/**
    +	 * Renders the XML to the given canvas.
    +	 */
    +	protected void renderXml(String xml, mxICanvas2D canvas)
    +			throws SAXException, ParserConfigurationException, IOException
    +	{
    +		XMLReader reader = parserFactory.newSAXParser().getXMLReader();
    +		reader.setContentHandler(new mxSaxOutputHandler(canvas));
    +		reader.parse(new InputSource(new StringReader(xml)));
    +	}
    +
    +	/**
    +	 * Creates a graphics canvas with an image cache.
    +	 */
    +	protected mxGraphicsCanvas2D createCanvas(String url, Graphics2D g2)
    +	{
    +		// Caches custom images for the time of the request
    +		final Hashtable<String, Image> shortCache = new Hashtable<String, Image>();
    +		final String domain = url.substring(0, url.lastIndexOf("/"));
    +
    +		mxGraphicsCanvas2D g2c = new mxGraphicsCanvas2D(g2)
    +		{
    +			public Image loadImage(String src)
    +			{
    +				// Uses local image cache by default
    +				Hashtable<String, Image> cache = shortCache;
    +
    +				// Uses global image cache for local images
    +				if (src.startsWith(domain))
    +				{
    +					cache = imageCache;
    +				}
    +
    +				Image image = cache.get(src);
    +
    +				if (image == null)
    +				{
    +					image = super.loadImage(src);
    +
    +					if (image != null)
    +					{
    +						cache.put(src, image);
    +					}
    +					else
    +					{
    +						cache.put(src, Constants.EMPTY_IMAGE);
    +					}
    +				}
    +				else if (image == Constants.EMPTY_IMAGE)
    +				{
    +					image = null;
    +				}
    +
    +				return image;
    +			}
    +		};
    +
    +		g2c.setAutoAntiAlias(true);
    +
    +		return g2c;
    +	}
    +
    +}
    diff --git a/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/GraphEditor.java b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/GraphEditor.java
    new file mode 100644
    index 000000000..653a7f7d2
    --- /dev/null
    +++ b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/GraphEditor.java
    @@ -0,0 +1,49 @@
    +package com.mxgraph.examples.web;
    +
    +import org.mortbay.jetty.Handler;
    +import org.mortbay.jetty.Server;
    +import org.mortbay.jetty.handler.HandlerList;
    +import org.mortbay.jetty.handler.ResourceHandler;
    +import org.mortbay.jetty.servlet.Context;
    +import org.mortbay.jetty.servlet.ServletHolder;
    +
    +/**
    + * The save servlet is used to echo XML to the client, eg. for SVG export and saving
    + * (see Dialogs.js:SaveDialog and ExportDialog). The export servlet is used to
    + * implement image and PDF export (see Dialogs.js:ExportDialog). Note that the
    + * CSS support is limited to the following for all HTML markup:
    + * http://docs.oracle.com/javase/6/docs/api/index.html?javax/swing/text/html/CSS.html
    + * The open servlet is used to open files. It does this by calling some JavaScript
    + * hook in the client-side page (see open.html).
    + */
    +public class GraphEditor
    +{
    +
    +	public static int PORT = 8080;
    +
    +	/**
    +	 * Point your browser to http://localhost:8080/javascript/examples/grapheditor/www/index.html
    +	 */
    +	public static void main(String[] args) throws Exception
    +	{
    +		Server server = new Server(PORT);
    +
    +		// Servlets
    +		Context context = new Context(server, "/");
    +		context.addServlet(new ServletHolder(new SaveServlet()), "/save");
    +		context.addServlet(new ServletHolder(new ExportServlet()), "/export");
    +		context.addServlet(new ServletHolder(new OpenServlet()), "/open");
    +
    +		ResourceHandler fileHandler = new ResourceHandler();
    +		fileHandler.setResourceBase(".");
    +
    +		HandlerList handlers = new HandlerList();
    +		handlers.setHandlers(new Handler[] { fileHandler, context });
    +		server.setHandler(handlers);
    +
    +		System.out.println("Go to http://localhost:8080/javascript/examples/grapheditor/www/index.html");
    +		
    +		server.start();
    +		server.join();
    +	}
    +}
    diff --git a/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/OpenServlet.java b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/OpenServlet.java
    new file mode 100644
    index 000000000..011e03775
    --- /dev/null
    +++ b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/OpenServlet.java
    @@ -0,0 +1,303 @@
    +/**
    + * $Id: OpenServlet.java,v 1.2 2012-03-22 09:18:16 gaudenz Exp $
    + * Copyright (c) 2011-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.web;
    +
    +import java.io.BufferedReader;
    +import java.io.IOException;
    +import java.io.InputStream;
    +import java.io.InputStreamReader;
    +import java.io.OutputStream;
    +import java.io.PrintWriter;
    +import java.io.Reader;
    +import java.io.UnsupportedEncodingException;
    +import java.net.URLEncoder;
    +import java.util.Hashtable;
    +import java.util.Iterator;
    +import java.util.LinkedList;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.zip.GZIPOutputStream;
    +
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +
    +/**
    + * Servlet implementation class OpenServlet.
    + * 
    + * open.html implements the user interface. This file is displayed within an
    + * IFRAME in order to better handle the response. The form is then processed
    + * either locally if the browser implements the HTML5 FileReader API or via the
    + * OpenServlet. Note that the mechanism to open files uses OpenFile in
    + * Editor.js, as well as Editor.openFile when the client starts. This is
    + * required to abstract away the asynchronous loading of the new editor and
    + * handling of the response, which in turn calls the setData method on the
    + * OpenFile instance of the parent window of the frame where open.html was
    + * displayed (see below).
    + */
    +public class OpenServlet extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -4442397463551836919L;
    +
    +	/**
    +	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    +	 */
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		request.setCharacterEncoding("UTF-8");
    +		response.setCharacterEncoding("UTF-8");
    +		response.setContentType("text/html; charset=UTF-8");
    +
    +		OutputStream out = response.getOutputStream();
    +		String encoding = request.getHeader("Accept-Encoding");
    +
    +		// Supports GZIP content encoding
    +		if (encoding != null && encoding.indexOf("gzip") >= 0)
    +		{
    +			response.setHeader("Content-Encoding", "gzip");
    +			out = new GZIPOutputStream(out);
    +		}
    +
    +		PrintWriter writer = new PrintWriter(out);
    +		writer.println("<html>");
    +		writer.println("<head>");
    +		writer.println("</head>");
    +		writer.println("<body>");
    +		writer.println("<script type=\"text/javascript\">");
    +
    +		try
    +		{
    +			if (request.getContentLength() < Constants.MAX_REQUEST_SIZE)
    +			{
    +				Map<String, String> post = parseMultipartRequest(request);
    +				String xml = new String(post.get("upfile").getBytes(ENCODING),
    +						"UTF-8");
    +				String filename = post.get("filename");
    +
    +				// Uses JavaScript to load the XML on the client-side
    +				writer.println("window.parent.openFile.setData(decodeURIComponent('"
    +						+ encodeURIComponent(xml) + "'), '" + filename + "');");
    +			}
    +			else
    +			{
    +				error(writer, "drawingTooLarge");
    +			}
    +		}
    +		catch (Exception e)
    +		{
    +			error(writer, "invalidOrMissingFile");
    +		}
    +
    +		writer.println("</script>");
    +		writer.println("</body>");
    +		writer.println("</html>");
    +
    +		writer.flush();
    +		writer.close();
    +	}
    +
    +	public static void error(PrintWriter w, String key)
    +	{
    +		w.println("window.parent.openFile.error(window.parent.mxResources.get('"
    +				+ key + "'));");
    +	}
    +
    +	/**
    +	   * Encodes the passed String as UTF-8 using an algorithm that's compatible
    +	   * with JavaScript's <code>encodeURIComponent</code> function. Returns
    +	   * <code>null</code> if the String is <code>null</code>.
    +	   * 
    +	   * @param s The String to be encoded
    +	   * @return the encoded String
    +	   */
    +	public static String encodeURIComponent(String s)
    +	{
    +		String result = null;
    +
    +		try
    +		{
    +			result = URLEncoder.encode(s, "UTF-8").replaceAll("\\+", "%20")
    +					.replaceAll("\\%21", "!").replaceAll("\\%28", "(")
    +					.replaceAll("\\%29", ")").replaceAll("\\%7E", "~");
    +		}
    +
    +		// This exception should never occur.
    +		catch (UnsupportedEncodingException e)
    +		{
    +			result = s;
    +		}
    +
    +		return result;
    +	}
    +
    +	//
    +	// Handling of multipart/form-data *** NOT FOR PRODUCTION USE ***
    +	//
    +
    +	/**
    +	 * Encoding for the multipart/form-data.
    +	 */
    +	protected static final String ENCODING = "ISO-8859-1";
    +
    +	/**
    +	 * Parses the given multipart/form-data request into a map that maps from
    +	 * names to values. Note that this implementation ignores the file type and
    +	 * filename and does only return the actual data as the value for the name
    +	 * of the file input in the form. Returns an empty map if the form does not
    +	 * contain any multipart/form-data.
    +	 */
    +	protected Map<String, String> parseMultipartRequest(
    +			HttpServletRequest request) throws IOException
    +	{
    +		Map<String, String> result = new Hashtable<String, String>();
    +		String contentType = request.getHeader("Content-Type");
    +
    +		// Checks if the form is of the correct content type
    +		if (contentType != null
    +				&& contentType.indexOf("multipart/form-data") == 0)
    +		{
    +			// Extracts the boundary from the header
    +			int boundaryIndex = contentType.indexOf("boundary=");
    +			String boundary = "--"
    +					+ contentType.substring(boundaryIndex + 9).trim();
    +
    +			// Splits the multipart/form-data into its different parts
    +			Iterator<String> it = splitFormData(
    +					readStream(request.getInputStream()), boundary).iterator();
    +
    +			while (it.hasNext())
    +			{
    +				parsePart(it.next(), result);
    +			}
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Parses the values in the given form-data part into the given map. The
    +	 * value of the name attribute will be used as the name for the data. The
    +	 * filename will be stored under filename in the given map and the
    +	 * content-type is ignored in this implementation.
    +	 */
    +	protected void parsePart(String part, Map<String, String> into)
    +	{
    +		String[] lines = part.split("\r\n");
    +
    +		if (lines.length > 1)
    +		{
    +			// First line contains content-disposition in the following format:
    +			// form-data; name="upfile"; filename="avatar.jpg"
    +			String[] tokens = lines[1].split(";");
    +
    +			// Stores the value of the name attribute for the form-data
    +			String name = null;
    +
    +			for (int i = 0; i < tokens.length; i++)
    +			{
    +				String tmp = tokens[i];
    +				int index = tmp.indexOf("=");
    +
    +				// Checks if the token contains a key=value pair
    +				if (index >= 0)
    +				{
    +					String key = tmp.substring(0, index).trim();
    +					String value = tmp.substring(index + 2, tmp.length() - 1);
    +
    +					if (key.equals("name"))
    +					{
    +						name = value;
    +					}
    +					else
    +					{
    +						into.put(key, value);
    +					}
    +				}
    +			}
    +
    +			// Parses all lines starting from the first empty line
    +			if (name != null && lines.length > 2)
    +			{
    +				boolean active = false;
    +				StringBuffer value = new StringBuffer();
    +
    +				for (int i = 2; i < lines.length; i++)
    +				{
    +					if (active)
    +					{
    +						value.append(lines[i]);
    +					}
    +					else if (!active)
    +					{
    +						active = lines[i].length() == 0;
    +					}
    +				}
    +
    +				into.put(name, value.toString());
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Returns the parts of the given multipart/form-data.
    +	 */
    +	protected List<String> splitFormData(String formData, String boundary)
    +	{
    +		List<String> result = new LinkedList<String>();
    +		int nextBoundary = formData.indexOf(boundary);
    +
    +		while (nextBoundary >= 0)
    +		{
    +			if (nextBoundary > 0)
    +			{
    +				result.add(formData.substring(0, nextBoundary));
    +			}
    +
    +			formData = formData.substring(nextBoundary + boundary.length());
    +			nextBoundary = formData.indexOf(boundary);
    +		}
    +
    +		return result;
    +	}
    +
    +	/**
    +	 * Reads the complete stream into memory as a String.
    +	 */
    +	protected String readStream(InputStream is) throws IOException
    +	{
    +		if (is != null)
    +		{
    +			StringBuffer buffer = new StringBuffer();
    +			try
    +			{
    +				Reader in = new BufferedReader(new InputStreamReader(is,
    +						ENCODING));
    +				int ch;
    +
    +				while ((ch = in.read()) > -1)
    +				{
    +					buffer.append((char) ch);
    +				}
    +			}
    +			finally
    +			{
    +				is.close();
    +			}
    +
    +			return buffer.toString();
    +		}
    +		else
    +		{
    +			return "";
    +		}
    +	}
    +
    +}
    diff --git a/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/SaveServlet.java b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/SaveServlet.java
    new file mode 100644
    index 000000000..2648410c8
    --- /dev/null
    +++ b/javascript/examples/grapheditor/java/src/com/mxgraph/examples/web/SaveServlet.java
    @@ -0,0 +1,91 @@
    +/**
    + * $Id: SaveServlet.java,v 1.2 2012-03-22 09:16:11 gaudenz Exp $
    + * Copyright (c) 2011-2012, JGraph Ltd
    + */
    +package com.mxgraph.examples.web;
    +
    +import java.io.IOException;
    +import java.io.OutputStream;
    +import java.net.URLDecoder;
    +import java.util.zip.GZIPOutputStream;
    +
    +import javax.servlet.ServletException;
    +import javax.servlet.http.HttpServlet;
    +import javax.servlet.http.HttpServletRequest;
    +import javax.servlet.http.HttpServletResponse;
    +
    +/**
    + * Servlet implementation class SaveServlet.
    + * 
    + * The SaveDialog in Dialogs.js implements the user interface. Editor.saveFile
    + * in Editor.js implements the request to the server. Note that this request
    + * is carried out in a separate iframe in order to allow for the response to
    + * be handled by the browser. (This is required in order to bring up a native
    + * Save dialog and save the file to the local filestyem.) Finally, the code in
    + * this servlet echoes the XML and sends it back to the client with the
    + * required headers (see Content-Disposition in RFC 2183).
    + */
    +public class SaveServlet extends HttpServlet
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	private static final long serialVersionUID = -5308353652899057537L;
    +
    +	/**
    +	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    +	 */
    +	protected void doPost(HttpServletRequest request,
    +			HttpServletResponse response) throws ServletException, IOException
    +	{
    +		if (request.getContentLength() < Constants.MAX_REQUEST_SIZE)
    +		{
    +			String filename = request.getParameter("filename");
    +			String xml = request.getParameter("xml");
    +
    +			if (xml != null && xml.length() > 0)
    +			{
    +				String format = request.getParameter("format");
    +
    +				if (format == null)
    +				{
    +					format = "xml";
    +				}
    +
    +				if (!filename.toLowerCase().endsWith("." + format))
    +				{
    +					filename += "." + format;
    +				}
    +
    +				response.setContentType("application/xml");
    +				response.setHeader("Content-Disposition",
    +						"attachment; filename=\"" + filename + "\"");
    +				response.setStatus(HttpServletResponse.SC_OK);
    +
    +				OutputStream out = response.getOutputStream();
    +				String encoding = request.getHeader("Accept-Encoding");
    +
    +				// Supports GZIP content encoding
    +				if (encoding != null && encoding.indexOf("gzip") >= 0)
    +				{
    +					response.setHeader("Content-Encoding", "gzip");
    +					out = new GZIPOutputStream(out);
    +				}
    +
    +				out.write(URLDecoder.decode(xml, "UTF-8").getBytes("UTF-8"));
    +				out.flush();
    +				out.close();
    +			}
    +			else
    +			{
    +				response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    +			}
    +		}
    +		else
    +		{
    +			response.setStatus(HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE);
    +		}
    +	}
    +
    +}
    diff --git a/javascript/examples/grapheditor/www/images/checkmark.gif b/javascript/examples/grapheditor/www/images/checkmark.gif
    new file mode 100644
    index 000000000..d79444daa
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/checkmark.gif differ
    diff --git a/javascript/examples/grapheditor/www/images/close.png b/javascript/examples/grapheditor/www/images/close.png
    new file mode 100644
    index 000000000..d319efb6e
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/close.png differ
    diff --git a/javascript/examples/grapheditor/www/images/collapsed.gif b/javascript/examples/grapheditor/www/images/collapsed.gif
    new file mode 100644
    index 000000000..568e8f7cd
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/collapsed.gif differ
    diff --git a/javascript/examples/grapheditor/www/images/connector.png b/javascript/examples/grapheditor/www/images/connector.png
    new file mode 100644
    index 000000000..e545f8ee8
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/connector.png differ
    diff --git a/javascript/examples/grapheditor/www/images/expanded.gif b/javascript/examples/grapheditor/www/images/expanded.gif
    new file mode 100644
    index 000000000..3a974e279
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/expanded.gif differ
    diff --git a/javascript/examples/grapheditor/www/images/grid.gif b/javascript/examples/grapheditor/www/images/grid.gif
    new file mode 100644
    index 000000000..f4e7063e8
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/grid.gif differ
    diff --git a/javascript/examples/grapheditor/www/images/logo.png b/javascript/examples/grapheditor/www/images/logo.png
    new file mode 100644
    index 000000000..053a1eb2b
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/logo.png differ
    diff --git a/javascript/examples/grapheditor/www/images/nocolor.png b/javascript/examples/grapheditor/www/images/nocolor.png
    new file mode 100644
    index 000000000..aec4534d6
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/nocolor.png differ
    diff --git a/javascript/examples/grapheditor/www/images/tooltip.png b/javascript/examples/grapheditor/www/images/tooltip.png
    new file mode 100644
    index 000000000..ad20c04e8
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/tooltip.png differ
    diff --git a/javascript/examples/grapheditor/www/images/touch-connector.png b/javascript/examples/grapheditor/www/images/touch-connector.png
    new file mode 100644
    index 000000000..95b5ea2ee
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/touch-connector.png differ
    diff --git a/javascript/examples/grapheditor/www/images/touch-handle.png b/javascript/examples/grapheditor/www/images/touch-handle.png
    new file mode 100644
    index 000000000..13d60be75
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/touch-handle.png differ
    diff --git a/javascript/examples/grapheditor/www/images/touch-submenu.png b/javascript/examples/grapheditor/www/images/touch-submenu.png
    new file mode 100644
    index 000000000..8e6745998
    Binary files /dev/null and b/javascript/examples/grapheditor/www/images/touch-submenu.png differ
    diff --git a/javascript/examples/grapheditor/www/index.html b/javascript/examples/grapheditor/www/index.html
    new file mode 100644
    index 000000000..8ac82b70f
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/index.html
    @@ -0,0 +1,110 @@
    +<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]-->
    +<!DOCTYPE html>
    +<html>
    +<head>
    +    <title>Graph Editor</title>
    +    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    +    <link rel="stylesheet" type="text/css" href="styles/grapheditor.css">
    +	<script type="text/javascript">
    +		// Public global variables
    +		var MAX_REQUEST_SIZE = 10485760;
    +		var MAX_WIDTH = 6000;
    +		var MAX_HEIGHT = 6000;
    +	
    +		// URLs for save and export
    +		var EXPORT_URL = '/export';
    +		var SAVE_URL = '/save';
    +		var OPEN_URL = '/open';
    +		var RESOURCES_PATH = 'resources';
    +		var RESOURCE_BASE = RESOURCES_PATH + '/grapheditor';
    +		var STENCIL_PATH = 'stencils';
    +		var IMAGE_PATH = 'images';
    +		var STYLE_PATH = 'styles';
    +		var CSS_PATH = 'styles';
    +		var OPEN_FORM = 'open.html';
    +	
    +		// Specifies connection mode for touch devices (at least one should be true)
    +		var tapAndHoldStartsConnection = true;
    +		var showConnectorImg = true;
    +
    +		// Parses URL parameters. Supported parameters are:
    +		// - lang=xy: Specifies the language of the user interface.
    +		// - touch=1: Enables a touch-style user interface.
    +		// - storage=local: Enables HTML5 local storage.
    +		var urlParams = (function(url)
    +		{
    +			var result = new Object();
    +			var idx = url.lastIndexOf('?');
    +	
    +			if (idx > 0)
    +			{
    +				var params = url.substring(idx + 1).split('&');
    +				
    +				for (var i = 0; i < params.length; i++)
    +				{
    +					idx = params[i].indexOf('=');
    +					
    +					if (idx > 0)
    +					{
    +						result[params[i].substring(0, idx)] = params[i].substring(idx + 1);
    +					}
    +				}
    +			}
    +			
    +			return result;
    +		})(window.location.href);
    +
    +		// Sets the base path, the UI language via URL param and configures the
    +		// supported languages to avoid 404s. The loading of all core language
    +		// resources is disabled as all required resources are in grapheditor.
    +		// properties. Note that in this example the loading of two resource
    +		// files (the special bundle and the default bundle) is disabled to
    +		// save a GET request. This requires that all resources be present in
    +		// the special bundle.
    +		mxLoadResources = false;
    +		mxBasePath = '../../../src';
    +		mxLanguage = urlParams['lang'];
    +		mxLanguages = ['de'];
    +	</script>
    +	<script type="text/javascript" src="../../../src/js/mxClient.js"></script>
    +	<script type="text/javascript" src="js/Editor.js"></script>
    +	<script type="text/javascript" src="js/Graph.js"></script>
    +	<script type="text/javascript" src="js/EditorUi.js"></script>
    +	<script type="text/javascript" src="js/Actions.js"></script>
    +	<script type="text/javascript" src="js/Menus.js"></script>
    +	<script type="text/javascript" src="js/Sidebar.js"></script>
    +	<script type="text/javascript" src="js/Toolbar.js"></script>
    +	<script type="text/javascript" src="js/Dialogs.js"></script>
    +	<script type="text/javascript" src="jscolor/jscolor.js"></script>
    +</head>
    +<body class="editor">
    +	<script type="text/javascript">
    +		// Extends EditorUi to update I/O action states
    +		(function()
    +		{
    +			var editorUiInit = EditorUi.prototype.init;
    +			
    +			EditorUi.prototype.init = function()
    +			{
    +				editorUiInit.apply(this, arguments);
    +				this.actions.get('export').setEnabled(false);
    +
    +				// Updates action states which require a backend
    +				if (!useLocalStorage)
    +				{
    +					mxUtils.post(OPEN_URL, '', mxUtils.bind(this, function(req)
    +					{
    +						var enabled = req.getStatus() != 404;
    +						this.actions.get('open').setEnabled(enabled || fileSupport);
    +						this.actions.get('save').setEnabled(enabled);
    +						this.actions.get('saveAs').setEnabled(enabled);
    +						this.actions.get('export').setEnabled(enabled);
    +					}));
    +				}
    +			};
    +		})();
    +	
    +		new EditorUi(new Editor());
    +	</script>
    +</body>
    +</html>
    diff --git a/javascript/examples/grapheditor/www/js/Actions.js b/javascript/examples/grapheditor/www/js/Actions.js
    new file mode 100644
    index 000000000..380b8dcfe
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/js/Actions.js
    @@ -0,0 +1,497 @@
    +/**
    + * $Id: Actions.js,v 1.25 2012-05-16 13:12:03 gaudenz Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +/**
    + * Constructs the actions object for the given UI.
    + */
    +function Actions(editorUi)
    +{
    +	this.editorUi = editorUi;
    +	this.actions = new Object();
    +	this.init();
    +};
    +
    +/**
    + * Adds the default actions.
    + */
    +Actions.prototype.init = function()
    +{
    +	var ui = this.editorUi;
    +	var editor = ui.editor;
    +	var graph = editor.graph;
    +
    +	// File actions
    +	this.addAction('new', function() { window.open(ui.getUrl()); });
    +	this.addAction('open', function() { ui.openFile(); });
    +	this.addAction('save', function() { ui.saveFile(false); }, null, null, 'Ctrl+S');
    +	this.addAction('saveAs', function() { ui.saveFile(true); }, null, null, 'Ctrl+Shift-S');
    +	this.addAction('export', function() { ui.showDialog(new ExportDialog(ui).container, 300, 200, true, true); }, null, null, 'Ctrl+E');
    +	this.put('editFile', new Action(mxResources.get('edit'), mxUtils.bind(this, function()
    +	{
    +		this.editorUi.showDialog(new EditFileDialog(ui).container, 620, 420, true, true);
    +	})));
    +	this.addAction('print', function() { ui.showDialog(new PrintDialog(ui).container, 300, 200, true, true); }, null, 'sprite-print', 'Ctrl+P');
    +	this.addAction('preview', function() { mxUtils.show(graph, null, 10, 10); });
    +	
    +	// Edit actions
    +	this.addAction('undo', function() { editor.undoManager.undo(); }, null, 'sprite-undo', 'Ctrl+Z');
    +	this.addAction('redo', function() { editor.undoManager.redo(); }, null, 'sprite-redo', 'Ctrl+Y');
    +	this.addAction('cut', function() { mxClipboard.cut(graph); }, null, 'sprite-cut', 'Ctrl+X');
    +	this.addAction('copy', function() { mxClipboard.copy(graph); }, null, 'sprite-copy', 'Ctrl+C');
    +	this.addAction('paste', function() { mxClipboard.paste(graph); }, false, 'sprite-paste', 'Ctrl+V');
    +	this.addAction('delete', function() { graph.removeCells(); }, null, null, 'Delete');
    +	this.addAction('duplicate', function()
    +    {
    +		var s = graph.gridSize;
    +		graph.setSelectionCells(graph.moveCells(graph.getSelectionCells(), s, s, true));
    +    }, null, null, 'Ctrl+D');
    +	this.addAction('selectVertices', function() { graph.selectVertices(); }, null, null, 'Ctrl+Shift+V');
    +	this.addAction('selectEdges', function() { graph.selectEdges(); }, null, null, 'Ctrl+Shift+E');
    +	this.addAction('selectAll', function() { graph.selectAll(); }, null, null, 'Ctrl+A');
    +
    +	// Navigation actions
    +	this.addAction('home', function() { graph.home(); }, null, null, 'Home');
    +	this.addAction('exitGroup', function() { graph.exitGroup(); }, null, null, 'Page Up');
    +	this.addAction('enterGroup', function() { graph.enterGroup(); }, null, null, 'Page Down');
    +	this.addAction('expand', function() { graph.foldCells(false); }, null, null, 'Enter');
    +	this.addAction('collapse', function() { graph.foldCells(true); }, null, null, 'Backspace');
    +
    +	// Arrange actions
    +	this.addAction('toFront', function() { graph.orderCells(false); }, null, null, 'Ctrl+F');
    +	this.addAction('toBack', function() { graph.orderCells(true); }, null, null, 'Ctrl+B');
    +	this.addAction('group', function() { graph.setSelectionCell(graph.groupCells(null, 0)); }, null, null, 'Ctrl+G');
    +	this.addAction('ungroup', function() { graph.setSelectionCells(graph.ungroupCells()); }, null, null, 'Ctrl+U');
    +	this.addAction('removeFromGroup', function() { graph.removeCellsFromParent(); });
    +	this.addAction('autosize', function()
    +	{
    +		if (graph.getModel().getChildCount(graph.getSelectionCell()))
    +		{
    +			graph.updateGroupBounds([graph.getSelectionCell()], 20);
    +		}
    +		else
    +		{
    +			graph.updateCellSize(graph.getSelectionCell());
    +		}
    +	});
    +	this.addAction('rotation', function()
    +	{
    +		var value = '0';
    +    	var state = graph.getView().getState(graph.getSelectionCell());
    +    	
    +    	if (state != null)
    +    	{
    +    		value = state.style[mxConstants.STYLE_ROTATION] || value;
    +    	}
    +
    +		value = mxUtils.prompt(mxResources.get('enterValue') + ' (' +
    +				mxResources.get('rotation') + ' 0-360)', value);
    +        	
    +    	if (value != null)
    +    	{
    +        	graph.setCellStyles(mxConstants.STYLE_ROTATION, value);
    +        }
    +	});
    +	this.addAction('rotate', function()
    +	{
    +		var cell = graph.getSelectionCell();
    +		
    +		if (cell != null)
    +		{
    +			var geo = graph.getCellGeometry(cell);
    +
    +			if (geo != null)
    +			{
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					// Rotates the size and position in the geometry
    +					geo = geo.clone();
    +					geo.x += geo.width / 2 - geo.height / 2;
    +					geo.y += geo.height / 2 - geo.width / 2;
    +					var tmp = geo.width;
    +					geo.width = geo.height;
    +					geo.height = tmp;
    +					graph.getModel().setGeometry(cell, geo);
    +					
    +					// Reads the current direction and advances by 90 degrees
    +					var state = graph.view.getState(cell);
    +					
    +					if (state != null)
    +					{
    +						var dir = state.style[mxConstants.STYLE_DIRECTION] || 'east'/*default*/;
    +						
    +						if (dir == 'east')
    +						{
    +							dir = 'south';
    +						}
    +						else if (dir == 'south')
    +						{
    +							dir = 'west';
    +						}
    +						else if (dir == 'west')
    +						{
    +							dir = 'north';
    +						}
    +						else if (dir == 'north')
    +						{
    +							dir = 'east';
    +						}
    +						
    +						graph.setCellStyles(mxConstants.STYLE_DIRECTION, dir, [cell]);
    +					}
    +				}
    +				finally
    +				{
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		}
    +	}, null, null, 'Ctrl+R');
    +	
    +	// View actions
    +	this.addAction('actualSize', function()
    +	{
    +		var tr = graph.view.translate;
    +		graph.view.scaleAndTranslate(1, tr.x, tr.y);
    +	});
    +	this.addAction('zoomIn', function() { graph.zoomIn(); }, null, null, 'Add');
    +	this.addAction('zoomOut', function() { graph.zoomOut(); }, null, null, 'Subtract');
    +	this.addAction('fitWindow', function() { graph.fit(); });
    +	this.put('customZoom', new Action(mxResources.get('custom'), function()
    +	{
    +    	var value = mxUtils.prompt(mxResources.get('enterValue') + ' (%)', parseInt(graph.getView().getScale() * 100));
    +    	
    +    	if (value != null && value.length > 0 && !isNaN(parseInt(value)))
    +    	{
    +        	graph.getView().setScale(parseInt(value) / 100);
    +        }
    +	}));
    +	
    +	// Option actions
    +	var action = null;
    +	action = this.addAction('grid', function()
    +	{
    +		graph.setGridEnabled(!graph.isGridEnabled());
    +		editor.updateGraphComponents();
    +	}, null, null, 'Ctrl+Shift+G');
    +	action.setToggleAction(true);
    +	action.setSelectedCallback(function() { return graph.container.style.backgroundImage != 'none'; });
    +	action = this.addAction('guides', function() { graph.graphHandler.guidesEnabled = !graph.graphHandler.guidesEnabled; });
    +	action.setToggleAction(true);
    +	action.setSelectedCallback(function() { return graph.graphHandler.guidesEnabled; });
    +	action = this.addAction('tooltips', function()
    +	{
    +		graph.tooltipHandler.setEnabled(!graph.tooltipHandler.isEnabled());
    +	});
    +	action.setToggleAction(true);
    +	action.setSelectedCallback(function() { return graph.tooltipHandler.isEnabled(); });
    +	action = this.addAction('navigation', function()
    +	{
    +		graph.foldingEnabled = !graph.foldingEnabled;
    +    	graph.view.revalidate();
    +	});
    +	action.setToggleAction(true);
    +	action.setSelectedCallback(function() { return graph.foldingEnabled; });
    +	action = this.addAction('scrollbars', function()
    +	{
    +		graph.scrollbars = !graph.scrollbars;
    +		editor.updateGraphComponents();
    +
    +		if (!graph.scrollbars)
    +		{
    +			graph.container.scrollLeft = 0;
    +			graph.container.scrollTop = 0;
    +		}
    +		else
    +		{
    +			var dx = graph.view.translate.x;
    +			var dy = graph.view.translate.y;
    +
    +			graph.view.setTranslate(0, 0);
    +			graph.container.scrollLeft = Math.max(0, -dx);
    +			graph.container.scrollTop = Math.max(0, -dy);
    +		}
    +	}, !mxClient.IS_TOUCH);
    +	action.setToggleAction(true);
    +	action.setSelectedCallback(function() { return graph.container.style.overflow == 'auto'; });
    +	action = this.addAction('pageView', function()
    +	{
    +		graph.pageVisible = !graph.pageVisible;
    +		graph.pageBreaksVisible = graph.pageVisible; 
    +		graph.preferPageSize = graph.pageBreaksVisible;
    +		
    +		// Resets translate only if page is visible
    +		if (graph.pageVisible)
    +		{
    +			graph.view.setTranslate(0, 0);
    +		}
    +		
    +		graph.view.validate();
    +		graph.sizeDidChange();
    +		editor.updateGraphComponents();
    +	});
    +	action.setToggleAction(true);
    +	action.setSelectedCallback(function() { return graph.pageVisible; });
    +	this.put('pageBackgroundColor', new Action(mxResources.get('backgroundColor'), function()
    +	{
    +		var apply = function(color)
    +		{
    +			graph.background = color;
    +			editor.updateGraphComponents();
    +		};
    +
    +		var cd = new ColorDialog(ui, graph.background || 'none', apply);
    +		ui.showDialog(cd.container, 220, 360, true, false);
    +		
    +		if (!mxClient.IS_TOUCH)
    +		{
    +			cd.colorInput.focus();
    +		}
    +	}));
    +	action = this.addAction('connect', function()
    +	{
    +		graph.setConnectable(!graph.connectionHandler.isEnabled());
    +	});
    +	action.setToggleAction(true);
    +	action.setSelectedCallback(function() { return graph.connectionHandler.isEnabled(); });
    +	
    +	// Help actions
    +	this.addAction('help', function()
    +	{
    +		var ext = '';
    +		
    +		if (mxResources.isLanguageSupported(mxClient.language))
    +		{
    +			ext = '_' + mxClient.language;
    +		}
    +		
    +		window.open(RESOURCES_PATH + '/help' + ext + '.html');
    +	});
    +	this.put('about', new Action(mxResources.get('about') + ' Graph Editor', function()
    +	{
    +		ui.showDialog(new AboutDialog(ui).container, 320, 280, true, true);
    +	}, null, null, 'F1'));
    +	
    +	// Font style actions
    +	var toggleFontStyle = mxUtils.bind(this, function(key, style)
    +	{
    +		this.addAction(key, function()
    +		{
    +			graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, style);
    +		});
    +	});
    +	
    +	toggleFontStyle('bold', mxConstants.FONT_BOLD);
    +	toggleFontStyle('italic', mxConstants.FONT_ITALIC);
    +	toggleFontStyle('underline', mxConstants.FONT_UNDERLINE);
    +	
    +	// Color actions
    +	this.addAction('fontColor', function() { ui.menus.pickColor(mxConstants.STYLE_FONTCOLOR); });
    +	this.addAction('strokeColor', function() { ui.menus.pickColor(mxConstants.STYLE_STROKECOLOR); });
    +	this.addAction('fillColor', function() { ui.menus.pickColor(mxConstants.STYLE_FILLCOLOR); });
    +	this.addAction('gradientColor', function() { ui.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR); });
    +	this.addAction('backgroundColor', function() { ui.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR); });
    +	this.addAction('borderColor', function() { ui.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR); });
    +	
    +	// Format actions
    +	this.addAction('shadow', function() { graph.toggleCellStyles(mxConstants.STYLE_SHADOW); });
    +	this.addAction('dashed', function() { graph.toggleCellStyles(mxConstants.STYLE_DASHED); });
    +	this.addAction('rounded', function() { graph.toggleCellStyles(mxConstants.STYLE_ROUNDED); });
    +	this.addAction('style', function()
    +	{
    +		var cells = graph.getSelectionCells();
    +		
    +		if (cells != null && cells.length > 0)
    +		{
    +			var model = graph.getModel();
    +			var style = mxUtils.prompt(mxResources.get('enterValue')+ ' (' + mxResources.get('style') + ')',
    +					model.getStyle(cells[0]) || '');
    +
    +			if (style != null)
    +			{
    +				graph.setCellStyle(style, cells);
    +			}
    +		}
    +	});
    +	this.addAction('useAsDefaultEdge', function()
    +	{
    +		var cell = graph.getSelectionCell();
    +		
    +		if (cell != null && graph.getModel().isEdge(cell))
    +		{
    +			// Take a snapshot of the cell at the moment of calling
    +			var proto = graph.getModel().cloneCells([cell])[0];
    +			
    +			// Uses edge template for connect preview
    +			graph.connectionHandler.createEdgeState = function(me)
    +			{
    +	    		return graph.view.createState(proto);
    +		    };
    +	
    +		    // Creates new connections from edge template
    +		    graph.connectionHandler.factoryMethod = function()
    +		    {
    +	    		return graph.cloneCells([proto])[0];
    +		    };
    +		}
    +	});
    +	this.addAction('image', function()
    +	{
    +		function updateImage(value, w, h)
    +		{
    +			var select = null;
    +			var cells = graph.getSelectionCells();
    +			
    +			graph.getModel().beginUpdate();
    +        	try
    +        	{
    +        		// Inserts new cell if no cell is selected
    +    			if (cells.length == 0)
    +    			{
    +    				var gs = graph.getGridSize();
    +    				cells = [graph.insertVertex(graph.getDefaultParent(), null, '', gs, gs, w, h)];
    +    				select = cells;
    +    			}
    +    			
    +        		graph.setCellStyles(mxConstants.STYLE_IMAGE, value, cells);
    +	        	graph.setCellStyles(mxConstants.STYLE_SHAPE, 'image', cells);
    +	        	
    +	        	if (graph.getSelectionCount() == 1)
    +	        	{
    +		        	if (w != null && h != null)
    +		        	{
    +		        		var cell = cells[0];
    +		        		var geo = graph.getModel().getGeometry(cell);
    +		        		
    +		        		if (geo != null)
    +		        		{
    +		        			geo = geo.clone();
    +			        		geo.width = w;
    +			        		geo.height = h;
    +			        		graph.getModel().setGeometry(cell, geo);
    +		        		}
    +		        	}
    +	        	}
    +        	}
    +        	finally
    +        	{
    +        		graph.getModel().endUpdate();
    +        	}
    +        	
    +        	if (select != null)
    +        	{
    +        		graph.setSelectionCells(select);
    +        		graph.scrollCellToVisible(select[0]);
    +        	}
    +		};
    +
    +    	var value = '';
    +    	var state = graph.getView().getState(graph.getSelectionCell());
    +    	
    +    	if (state != null)
    +    	{
    +    		value = state.style[mxConstants.STYLE_IMAGE] || value;
    +    	}
    +
    +    	value = mxUtils.prompt(mxResources.get('enterValue') + ' (' + mxResources.get('url') + ')', value);
    +
    +    	if (value != null)
    +    	{
    +    		if (value.length > 0)
    +    		{
    +    			value == null;
    +	    		var img = new Image();
    +	    		
    +	    		img.onload = function()
    +	    		{
    +	    			updateImage(value, img.width, img.height);
    +	    		};
    +	    		img.onerror = function()
    +	    		{
    +	    			mxUtils.alert(mxResources.get('fileNotFound'));
    +	    		};
    +	    		
    +	    		img.src = value;
    +    		}
    +        }
    +	});
    +};
    +
    +/**
    + * Registers the given action under the given name.
    + */
    +Actions.prototype.addAction = function(key, funct, enabled, iconCls, shortcut)
    +{
    +	return this.put(key, new Action(mxResources.get(key), funct, enabled, iconCls, shortcut));
    +};
    +
    +/**
    + * Registers the given action under the given name.
    + */
    +Actions.prototype.put = function(name, action)
    +{
    +	this.actions[name] = action;
    +	
    +	return action;
    +};
    +
    +/**
    + * Returns the action for the given name or null if no such action exists.
    + */
    +Actions.prototype.get = function(name)
    +{
    +	return this.actions[name];
    +};
    +
    +/**
    + * Constructs a new action for the given parameters.
    + */
    +function Action(label, funct, enabled, iconCls, shortcut)
    +{
    +	mxEventSource.call(this);
    +	this.label = label;
    +	this.funct = funct;
    +	this.enabled = (enabled != null) ? enabled : true;
    +	this.iconCls = iconCls;
    +	this.shortcut = shortcut;
    +};
    +
    +// Action inherits from mxEventSource
    +mxUtils.extend(Action, mxEventSource);
    +
    +/**
    + * Sets the enabled state of the action and fires a stateChanged event.
    + */
    +Action.prototype.setEnabled = function(value)
    +{
    +	if (this.enabled != value)
    +	{
    +		this.enabled = value;
    +		this.fireEvent(new mxEventObject('stateChanged'));
    +	}
    +};
    +
    +/**
    + * Sets the enabled state of the action and fires a stateChanged event.
    + */
    +Action.prototype.setToggleAction = function(value)
    +{
    +	this.toggleAction = value;
    +};
    +
    +/**
    + * Sets the enabled state of the action and fires a stateChanged event.
    + */
    +Action.prototype.setSelectedCallback = function(funct)
    +{
    +	this.selectedCallback = funct;
    +};
    +
    +/**
    + * Sets the enabled state of the action and fires a stateChanged event.
    + */
    +Action.prototype.isSelected = function()
    +{
    +	return this.selectedCallback();
    +};
    diff --git a/javascript/examples/grapheditor/www/js/Dialogs.js b/javascript/examples/grapheditor/www/js/Dialogs.js
    new file mode 100644
    index 000000000..6c9b0e273
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/js/Dialogs.js
    @@ -0,0 +1,946 @@
    +/**
    + * $Id: Dialogs.js,v 1.38 2012-05-15 12:49:55 gaudenz Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +/**
    + * Constructs a new dialog.
    + */
    +function Dialog(editorUi, elt, w, h, modal, closable, onClose)
    +{
    +	var dx = 0;
    +	
    +	if (mxClient.IS_IE && document.documentMode != 9)
    +	{
    +		dx = 60;
    +	}
    +
    +	w += dx;
    +	h += dx;
    +	
    +	var left = Math.max(0, Math.round((document.body.scrollWidth - w) / 2));
    +	var top = Math.max(0, Math.round((Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) - h) / 3));
    +	
    +	var div = editorUi.createDiv('dialog');
    +	div.style.width = w + 'px';
    +	div.style.height = h + 'px';
    +	div.style.left = left + 'px';
    +	div.style.top = top + 'px';
    +	
    +	if (this.bg == null)
    +	{
    +		this.bg = editorUi.createDiv('background');
    +		this.bg.style.position = 'absolute';
    +		this.bg.style.background = 'white';
    +		this.bg.style.left = '0px';
    +		this.bg.style.top = '0px';
    +		this.bg.style.bottom = '0px';
    +		this.bg.style.right = '0px';
    +		mxUtils.setOpacity(this.bg, 80);
    +		
    +		if (mxClient.IS_IE && (document.documentMode == null || document.documentMode == 5))
    +		{
    +			new mxDivResizer(this.bg);
    +		}
    +	}
    +
    +	if (modal)
    +	{
    +		document.body.appendChild(this.bg);
    +	}
    +	
    +	div.appendChild(elt);
    +	document.body.appendChild(div);
    +	
    +	if (closable)
    +	{
    +		var img = document.createElement('img');
    +
    +		img.setAttribute('src', IMAGE_PATH + '/close.png');
    +		img.setAttribute('title', mxResources.get('close'));
    +		img.className = 'dialogClose';
    +		img.style.top = (top + 14) + 'px';
    +		img.style.left = (left + w + 38 - dx) + 'px';
    +		
    +		mxEvent.addListener(img, 'click', mxUtils.bind(this, function()
    +		{
    +			editorUi.hideDialog();
    +		}));
    +		
    +		document.body.appendChild(img);
    +		this.dialogImg = img;
    +	}
    +	
    +	this.onDialogClose = onClose;
    +	this.container = div;
    +};
    +
    +/**
    + * Removes the dialog from the DOM.
    + */
    +Dialog.prototype.close = function()
    +{
    +	if (this.onDialogClose != null)
    +	{
    +		this.onDialogClose();
    +		this.onDialogClose = null;
    +	}
    +	
    +	if (this.dialogImg != null)
    +	{
    +		this.dialogImg.parentNode.removeChild(this.dialogImg);
    +		this.dialogImg = null;
    +	}
    +	
    +	this.container.parentNode.removeChild(this.container);
    +	this.bg.parentNode.removeChild(this.bg);
    +};
    +
    +/**
    + * Constructs a new open dialog.
    + */
    +function OpenDialog()
    +{
    +	var iframe = document.createElement('iframe');
    +	iframe.style.backgroundColor = 'transparent';
    +	iframe.allowTransparency = 'true';
    +	iframe.style.borderStyle = 'none';
    +	iframe.style.borderWidth = '0px';
    +	iframe.style.overflow = 'hidden';
    +	iframe.frameBorder = '0';
    +	iframe.setAttribute('width', '320px');
    +	iframe.setAttribute('height', '190px');
    +	iframe.setAttribute('src', OPEN_FORM);
    +	
    +	this.container = iframe;
    +};
    +
    +/**
    + * Constructs a new color dialog.
    + */
    +function ColorDialog(editorUi, color, apply)
    +{
    +	this.editorUi = editorUi;
    +	
    +	var input = document.createElement('input');
    +	input.style.marginBottom = '10px';
    +	input.style.width = '216px';
    +	
    +	// Required for picker to render in IE
    +	if (mxClient.IS_IE)
    +	{
    +		input.style.marginTop = '10px';
    +		document.body.appendChild(input);
    +	}
    +
    +	var picker = new jscolor.color(input);
    +	picker.pickerOnfocus = false;
    +	picker.showPicker();
    +
    +	var div = document.createElement('div');
    +	jscolor.picker.box.style.position = 'relative';
    +	jscolor.picker.box.style.width = '230px';
    +	jscolor.picker.box.style.height = '100px';
    +	jscolor.picker.box.style.paddingBottom = '10px';
    +	div.appendChild(jscolor.picker.box);
    +	
    +	function addPresets(presets)
    +	{
    +		var table = document.createElement('table');
    +		table.style.borderCollapse = 'collapse';
    +		table.setAttribute('cellspacing', '0');
    +		table.style.marginBottom = '20px';
    +		table.style.cellSpacing = '0px';
    +		var tbody = document.createElement('tbody');
    +		table.appendChild(tbody);
    +		
    +		var rows = presets.length / 12;
    +		
    +		for (var row = 0; row < rows; row++)
    +		{
    +			var tr = document.createElement('tr');
    +			
    +			for (var i = 0; i < 12; i++)
    +			{
    +				(function(clr)
    +				{
    +					var td = document.createElement('td');
    +					td.style.border = '1px solid black';
    +					td.style.padding = '0px';
    +					td.style.width = '16px';
    +					td.style.height = '16px';
    +					
    +					if (clr == 'none')
    +					{
    +						td.style.background = 'url(\'' + IMAGE_PATH + '/nocolor.png' + '\')';
    +					}
    +					else
    +					{
    +						td.style.backgroundColor = '#' + clr;
    +					}
    +					
    +					tr.appendChild(td);
    +					
    +					mxEvent.addListener(td, 'click', function()
    +					{
    +						if (clr == 'none')
    +						{
    +							picker.fromString('ffffff');
    +							input.value = 'none';
    +						}
    +						else
    +						{
    +							picker.fromString(clr);
    +						}
    +					});
    +				})(presets[row * 12 + i]);
    +			}
    +			
    +			tbody.appendChild(tr);
    +		}
    +		
    +		var center = document.createElement('center');
    +		center.appendChild(table);
    +		div.appendChild(center);
    +	};
    +
    +	div.appendChild(input);
    +	mxUtils.br(div);
    +	
    +	// Adds presets
    +	addPresets(['none', 'FFFFFF', 'E6E6E6', 'CCCCCC', 'B3B3B3', '999999', '808080', '666666', '4D4D4D', '333333', '1A1A1A', '000000', 'FFCCCC', 'FFE6CC', 'FFFFCC', 'E6FFCC', 'CCFFCC', 'CCFFE6', 'CCFFFF', 'CCE5FF', 'CCCCFF', 'E5CCFF', 'FFCCFF', 'FFCCE6', 'FF9999', 'FFCC99', 'FFFF99', 'CCFF99', '99FF99', '99FFCC', '99FFFF', '99CCFF', '9999FF', 'CC99FF', 'FF99FF', 'FF99CC', 'FF6666', 'FFB366', 'FFFF66', 'B3FF66', '66FF66', '66FFB3', '66FFFF', '66B2FF', '6666FF', 'B266FF', 'FF66FF', 'FF66B3', 'FF3333', 'FF9933', 'FFFF33', '99FF33', '33FF33', '33FF99', '33FFFF', '3399FF', '3333FF', '9933FF', 'FF33FF', 'FF3399', 'FF0000', 'FF8000', 'FFFF00', '80FF00', '00FF00', '00FF80', '00FFFF', '007FFF', '0000FF', '7F00FF', 'FF00FF', 'FF0080', 'CC0000', 'CC6600', 'CCCC00', '66CC00', '00CC00', '00CC66', '00CCCC', '0066CC', '0000CC', '6600CC', 'CC00CC', 'CC0066', '990000', '994C00', '999900', '4D9900', '009900', '00994D', '009999', '004C99', '000099', '4C0099', '990099', '99004D', '660000', '663300', '666600', '336600', '006600', '006633', '006666', '003366', '000066', '330066', '660066', '660033', '330000', '331A00', '333300', '1A3300', '003300', '00331A', '003333', '001933', '000033', '190033', '330033', '33001A']);
    +
    +	var buttons = document.createElement('div');
    +	buttons.style.whiteSpace = 'nowrap';
    +	
    +	var applyFunction = (apply != null) ? apply : this.createApplyFunction();
    +	
    +	buttons.appendChild(mxUtils.button(mxResources.get('apply'), function()
    +	{
    +		var color = input.value;
    +		
    +		if (color != 'none')
    +		{
    +			color = '#' + color;
    +		}
    +		
    +		applyFunction(color);
    +		editorUi.hideDialog();
    +	}));
    +	buttons.appendChild(mxUtils.button(mxResources.get('cancel'), function()
    +	{
    +		editorUi.hideDialog();
    +	}));
    +	
    +	if (color != null)
    +	{
    +		if (color == 'none')
    +		{
    +			picker.fromString('ffffff');
    +			input.value = 'none';
    +		}
    +		else
    +		{
    +			picker.fromString(color);
    +		}
    +	}
    +	
    +	div.appendChild(buttons);
    +	this.picker = picker;
    +	this.colorInput = input;
    +	this.container = div;
    +};
    +
    +/* Creates function to apply value */
    +ColorDialog.prototype.createApplyFunction = function()
    +{
    +	return mxUtils.bind(this, function(color)
    +	{
    +		editorUi.editor.graph.setCellStyles(this.currentColorKey, (color == 'none') ? 'none' : color);
    +	});
    +};
    +
    +/**
    + * Constructs a new about dialog.
    + */
    +function AboutDialog(editorUi)
    +{
    +	var div = document.createElement('div');
    +	div.setAttribute('align', 'center');
    +	var h3 = document.createElement('h3');
    +	mxUtils.write(h3, mxResources.get('about') + ' GraphEditor');
    +	div.appendChild(h3);
    +	var img = document.createElement('img');
    +	img.style.border = '0px';
    +	img.setAttribute('width', '176');
    +	img.setAttribute('width', '151');
    +	img.setAttribute('src', IMAGE_PATH + '/logo.png');
    +	div.appendChild(img);
    +	mxUtils.br(div);
    +	mxUtils.write(div, 'Powered by mxGraph ' + mxClient.VERSION);
    +	mxUtils.br(div);
    +	var link = document.createElement('a');
    +	link.setAttribute('href', 'http://www.jgraph.com/');
    +	link.setAttribute('target', '_blank');
    +	mxUtils.write(link, 'www.jgraph.com');
    +	div.appendChild(link);
    +	mxUtils.br(div);
    +	mxUtils.br(div);
    +	div.appendChild(mxUtils.button(mxResources.get('close'), function()
    +	{
    +		editorUi.hideDialog();
    +	}));
    +	
    +	this.container = div;
    +};
    +
    +/**
    + * Constructs a new print dialog.
    + */
    +function PrintDialog(editorUi)
    +{
    +	var graph = editorUi.editor.graph;
    +	var row, td;
    +	
    +	var table = document.createElement('table');
    +	table.style.width = '100%';
    +	table.style.height = '100%';
    +	var tbody = document.createElement('tbody');
    +	
    +	row = document.createElement('tr');
    +	
    +	td = document.createElement('td');
    +	td.style.fontSize = '10pt';
    +	mxUtils.write(td, mxResources.get('paperSize') + ':');
    +	
    +	row.appendChild(td);
    +	
    +	var paperSizeSelect = document.createElement('select');
    +
    +	var paperSizeA4Option = document.createElement('option');
    +	paperSizeA4Option.setAttribute('value', 'a4');
    +	mxUtils.write(paperSizeA4Option, 'A4');
    +	paperSizeSelect.appendChild(paperSizeA4Option);
    +	
    +	var paperSizeLetterOption = document.createElement('option');
    +	paperSizeLetterOption.setAttribute('value', 'letter');
    +	mxUtils.write(paperSizeLetterOption, 'Letter');
    +	paperSizeSelect.appendChild(paperSizeLetterOption);
    +
    +	var landscapeCheckBox = document.createElement('input');
    +	landscapeCheckBox.setAttribute('type', 'checkbox');
    +	
    +	td = document.createElement('td');
    +	td.style.fontSize = '10pt';
    +	td.appendChild(paperSizeSelect);
    +	row.appendChild(td);
    +	
    +	tbody.appendChild(row);
    +	
    +	row = document.createElement('tr');
    +	
    +	td = document.createElement('td');
    +	row.appendChild(td);
    +
    +	var landscapeCheckBox = document.createElement('input');
    +	landscapeCheckBox.setAttribute('type', 'checkbox');
    +	
    +	td = document.createElement('td');
    +	td.style.padding = '4 0 16 2px';
    +	td.style.fontSize = '10pt';
    +	td.appendChild(landscapeCheckBox);
    +	mxUtils.write(td, ' ' + mxResources.get('landscape'));
    +	row.appendChild(td);
    +	
    +	tbody.appendChild(row);
    +
    +	row = document.createElement('tr');
    +	
    +	var pageCountCheckBox = document.createElement('input');
    +	pageCountCheckBox.setAttribute('type', 'checkbox');
    +	td = document.createElement('td');
    +	td.style.paddingRight = '10px';
    +	td.style.fontSize = '10pt';
    +	td.appendChild(pageCountCheckBox);
    +	mxUtils.write(td, ' ' + mxResources.get('posterPrint') + ':');
    +	row.appendChild(td);
    +	
    +	var pageCountInput = document.createElement('input');
    +	pageCountInput.setAttribute('value', '1');
    +	pageCountInput.setAttribute('type', 'number');
    +	pageCountInput.setAttribute('min', '1');
    +	pageCountInput.setAttribute('size', '4');
    +	pageCountInput.setAttribute('disabled', 'disabled');
    +	pageCountInput.style.width = '50px';
    +
    +	td = document.createElement('td');
    +	td.style.fontSize = '10pt';
    +	td.appendChild(pageCountInput);
    +	mxUtils.write(td, ' ' + mxResources.get('pages'));
    +	row.appendChild(td);
    +	tbody.appendChild(row);
    +
    +	mxEvent.addListener(pageCountCheckBox, 'change', function()
    +	{
    +		if (pageCountCheckBox.checked)
    +		{
    +			pageCountInput.removeAttribute('disabled');
    +		}
    +		else
    +		{
    +			pageCountInput.setAttribute('disabled', 'disabled');
    +		}
    +	});
    +	
    +	row = document.createElement('tr');
    +	td = document.createElement('td');
    +	td.colSpan = 2;
    +	td.style.paddingTop = '40px';
    +	td.setAttribute('align', 'right');
    +	
    +	function preview()
    +	{
    +		var ls = landscapeCheckBox.checked;
    +		var pf = (paperSizeSelect.value == 'letter') ?
    +			((ls) ? mxConstants.PAGE_FORMAT_LETTER_LANDSCAPE : mxConstants.PAGE_FORMAT_LETTER_PORTRAIT) :
    +			((ls) ? mxConstants.PAGE_FORMAT_A4_LANDSCAPE : mxConstants.PAGE_FORMAT_A4_PORTRAIT);
    +		
    +		var scale = 1 / graph.pageScale;
    +		
    +		if (pageCountCheckBox.checked)
    +		{
    +    		var pageCount = parseInt(pageCountInput.value);
    +			
    +			if (!isNaN(pageCount))
    +			{
    +				scale = mxUtils.getScaleForPageCount(pageCount, graph, pf);
    +			}
    +		}
    +
    +		// Negative coordinates are cropped or shifted if page visible
    +		var gb = graph.getGraphBounds();
    +		var autoOrigin = pageCountCheckBox.checked;
    +		var border = 0;
    +		var x0 = 0;
    +		var y0 = 0;
    +		
    +		// Computes unscaled, untranslated graph bounds
    +		var x = (gb.width > 0) ? gb.x / graph.view.scale - graph.view.translate.x : 0;
    +		var y = (gb.height > 0) ? gb.y / graph.view.scale - graph.view.translate.y : 0;
    +
    +		if (x < 0 || y < 0)
    +		{
    +			autoOrigin = true;
    +			
    +			if (graph.pageVisible)
    +			{
    +				var ps = graph.pageScale;
    +				var pw = pf.width * ps;
    +				var ph = pf.height * ps;
    +
    +				x0 = (x > 0) ? x : pf.width * -Math.floor(Math.min(0, x) / pw) + Math.min(0, x) / graph.pageScale;
    +				y0 = (y > 0) ? y : pf.height * -Math.floor(Math.min(0, y) / ph) + Math.min(0, y) / graph.pageScale;
    +			}
    +			else
    +			{
    +				x0 = 10;
    +				y0 = 10;
    +			}
    +		}
    +
    +		var preview = new mxPrintPreview(graph, scale, pf, border, x0, y0);
    +		preview.title = mxResources.get('preview');
    +		preview.autoOrigin = autoOrigin;
    +		
    +		return preview.open();
    +	};
    +
    +	td.appendChild(mxUtils.button(mxResources.get('print'), function()
    +	{
    +		editorUi.hideDialog();
    +		preview().print();
    +	}));
    +
    +	td.appendChild(mxUtils.button(mxResources.get('preview'), function()
    +	{
    +		editorUi.hideDialog();
    +		preview();
    +	}));
    +	
    +	td.appendChild(mxUtils.button(mxResources.get('cancel'), function()
    +	{
    +		editorUi.hideDialog();
    +	}));
    +	
    +	row.appendChild(td);
    +	tbody.appendChild(row);
    +	
    +	tbody.appendChild(row);
    +	table.appendChild(tbody);
    +	this.container = table;
    +};
    +
    +/**
    + * Constructs a new save dialog.
    + */
    +function SaveDialog(editorUi)
    +{
    +	var row, td;
    +	
    +	var table = document.createElement('table');
    +	var tbody = document.createElement('tbody');
    +	
    +	row = document.createElement('tr');
    +	
    +	td = document.createElement('td');
    +	td.style.fontSize = '10pt';
    +	td.style.width = '100px';
    +	mxUtils.write(td, mxResources.get('filename') + ':');
    +	
    +	row.appendChild(td);
    +	
    +	var nameInput = document.createElement('input');
    +	nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
    +	nameInput.style.width = '180px';
    +
    +	td = document.createElement('td');
    +	td.appendChild(nameInput);
    +	row.appendChild(td);
    +	
    +	tbody.appendChild(row);
    +
    +	row = document.createElement('tr');
    +	td = document.createElement('td');
    +	td.colSpan = 2;
    +	td.style.paddingTop = '30px';
    +	td.style.whiteSpace = 'nowrap';
    +	td.setAttribute('align', 'right');
    +
    +	var saveBtn = mxUtils.button(mxResources.get('save'), function()
    +	{
    +    	editorUi.save(nameInput.value);
    +    	editorUi.hideDialog();
    +	});
    +	
    +	td.appendChild(saveBtn);
    +	td.appendChild(mxUtils.button(mxResources.get('cancel'), function()
    +	{
    +		editorUi.hideDialog();
    +	}));
    +	
    +	row.appendChild(td);
    +	tbody.appendChild(row);
    +	
    +	tbody.appendChild(row);
    +	table.appendChild(tbody);
    +	this.container = table;
    +};
    +
    +/**
    + * Constructs a new edit file dialog.
    + */
    +function EditFileDialog(editorUi)
    +{
    +	var div = document.createElement('div');
    +	div.style.textAlign = 'right';
    +	var textarea = document.createElement('textarea');
    +	textarea.style.width = '600px';
    +	textarea.style.height = '374px';
    +	
    +	textarea.value = mxUtils.getPrettyXml(editorUi.editor.getGraphXml());
    +	div.appendChild(textarea);
    +	
    +	// Enables dropping files
    +	if (fileSupport)
    +	{
    +		function handleDrop(evt)
    +		{
    +		    evt.stopPropagation();
    +		    evt.preventDefault();
    +		    
    +    		for (var i = 0; i < evt.dataTransfer.files.length; i++)
    +    		{
    +    			var file = evt.dataTransfer.files[i];
    +    			
    +				var reader = new FileReader();
    +				reader.onload = function(e) { textarea.value = e.target.result; };
    +				reader.readAsText(file);
    +				
    +				break;
    +    		}
    +		};
    +		
    +		function handleDragOver(evt)
    +		{
    +			evt.stopPropagation();
    +			evt.preventDefault();
    +		};
    +
    +		// Setup the dnd listeners.
    +		textarea.addEventListener('dragover', handleDragOver, false);
    +		textarea.addEventListener('drop', handleDrop, false);
    +	}
    +
    +	div.appendChild(mxUtils.button(mxResources.get('apply'), function()
    +	{
    +		var doc = mxUtils.parseXml(textarea.value); 
    +		editorUi.editor.setGraphXml(doc.documentElement);
    +		editorUi.hideDialog();
    +	}));
    +
    +	div.appendChild(mxUtils.button(mxResources.get('open'), function()
    +	{
    +		window.openFile = new OpenFile(function()
    +		{
    +			editorUi.hideDialog();
    +			window.openFile = null;
    +		});
    +		
    +		window.openFile.setData(textarea.value, null);
    +		window.open(editorUi.getUrl());
    +	}));
    +	
    +	div.appendChild(mxUtils.button(mxResources.get('cancel'), function()
    +	{
    +		editorUi.hideDialog();
    +	}));
    +	
    +	this.container = div;
    +};
    +
    +/**
    + * Constructs a new export dialog.
    + */
    +function ExportDialog(editorUi)
    +{
    +	var graph = editorUi.editor.graph;
    +	var bounds = graph.getGraphBounds();
    +	var scale = graph.view.scale;
    +	
    +	var width = Math.ceil(bounds.width / scale);
    +	var height = Math.ceil(bounds.height / scale);
    +
    +	var row, td;
    +	
    +	var table = document.createElement('table');
    +	var tbody = document.createElement('tbody');
    +	
    +	row = document.createElement('tr');
    +	
    +	td = document.createElement('td');
    +	td.style.fontSize = '10pt';
    +	td.style.width = '100px';
    +	mxUtils.write(td, mxResources.get('filename') + ':');
    +	
    +	row.appendChild(td);
    +	
    +	var nameInput = document.createElement('input');
    +	nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
    +	nameInput.style.width = '180px';
    +
    +	td = document.createElement('td');
    +	td.appendChild(nameInput);
    +	row.appendChild(td);
    +	
    +	tbody.appendChild(row);
    +		
    +	row = document.createElement('tr');
    +	
    +	td = document.createElement('td');
    +	td.style.fontSize = '10pt';
    +	mxUtils.write(td, mxResources.get('format') + ':');
    +	
    +	row.appendChild(td);
    +	
    +	var imageFormatSelect = document.createElement('select');
    +	imageFormatSelect.style.width = '180px';
    +
    +	var pngOption = document.createElement('option');
    +	pngOption.setAttribute('value', 'png');
    +	mxUtils.write(pngOption, 'PNG - Portable Network Graphics');
    +	imageFormatSelect.appendChild(pngOption);
    +
    +	var gifOption = document.createElement('option');
    +	gifOption.setAttribute('value', 'gif');
    +	mxUtils.write(gifOption, 'GIF - Graphics Interchange Format');
    +	imageFormatSelect.appendChild(gifOption);
    +	
    +	var jpgOption = document.createElement('option');
    +	jpgOption.setAttribute('value', 'jpg');
    +	mxUtils.write(jpgOption, 'JPG - JPEG File Interchange Format');
    +	imageFormatSelect.appendChild(jpgOption);
    +
    +	var pdfOption = document.createElement('option');
    +	pdfOption.setAttribute('value', 'pdf');
    +	mxUtils.write(pdfOption, 'PDF - Portable Document Format');
    +	imageFormatSelect.appendChild(pdfOption);
    +	
    +	var svgOption = document.createElement('option');
    +	svgOption.setAttribute('value', 'svg');
    +	mxUtils.write(svgOption, 'SVG - Scalable Vector Graphics');
    +	imageFormatSelect.appendChild(svgOption);
    +	
    +	var xmlOption = document.createElement('option');
    +	xmlOption.setAttribute('value', 'xml');
    +	mxUtils.write(xmlOption, 'XML - Diagramly XML Document');
    +	imageFormatSelect.appendChild(xmlOption);
    +
    +	td = document.createElement('td');
    +	td.appendChild(imageFormatSelect);
    +	row.appendChild(td);
    +	
    +	tbody.appendChild(row);
    +			
    +	row = document.createElement('tr');
    +
    +	td = document.createElement('td');
    +	td.style.fontSize = '10pt';
    +	mxUtils.write(td, mxResources.get('width') + ':');
    +	
    +	row.appendChild(td);
    +	
    +	var widthInput = document.createElement('input');
    +	widthInput.setAttribute('value', width);
    +	widthInput.style.width = '180px';
    +
    +	td = document.createElement('td');
    +	td.appendChild(widthInput);
    +	row.appendChild(td);
    +
    +	tbody.appendChild(row);
    +	
    +	row = document.createElement('tr');
    +	
    +	td = document.createElement('td');
    +	td.style.fontSize = '10pt';
    +	mxUtils.write(td, mxResources.get('height') + ':');
    +	
    +	row.appendChild(td);
    +	
    +	var heightInput = document.createElement('input');
    +	heightInput.setAttribute('value', height);
    +	heightInput.style.width = '180px';
    +
    +	td = document.createElement('td');
    +	td.appendChild(heightInput);
    +	row.appendChild(td);
    +
    +	tbody.appendChild(row);
    +	
    +	row = document.createElement('tr');
    +
    +	td = document.createElement('td');
    +	td.style.fontSize = '10pt';
    +	mxUtils.write(td, mxResources.get('border') + ':');
    +	
    +	row.appendChild(td);
    +	
    +	var borderInput = document.createElement('input');
    +	borderInput.setAttribute('value', width);
    +	borderInput.style.width = '180px';
    +	borderInput.value = '0';
    +
    +	td = document.createElement('td');
    +	td.appendChild(borderInput);
    +	row.appendChild(td);
    +
    +	tbody.appendChild(row);
    +	table.appendChild(tbody);
    +	
    +	// Handles changes in the export format
    +	function formatChanged()
    +	{
    +		var name = nameInput.value;
    +		var dot = name.lastIndexOf('.');
    +		
    +		if (dot > 0)
    +		{
    +			nameInput.value = name.substring(0, dot + 1) + imageFormatSelect.value;
    +		}
    +		else
    +		{
    +			nameInput.value = name + '.' + imageFormatSelect.value;
    +		}
    +		
    +		if (imageFormatSelect.value === 'xml')
    +		{
    +			widthInput.setAttribute('disabled', 'true');
    +			heightInput.setAttribute('disabled', 'true');
    +			borderInput.setAttribute('disabled', 'true');
    +		}
    +		else
    +		{
    +			widthInput.removeAttribute('disabled');
    +			heightInput.removeAttribute('disabled');
    +			borderInput.removeAttribute('disabled');
    +		}
    +	};
    +	
    +	mxEvent.addListener(imageFormatSelect, 'change', formatChanged);
    +	formatChanged();
    +	
    +	function checkValues()
    +	{
    +		if (widthInput.value > MAX_WIDTH || widthInput.value < 0)
    +		{
    +			widthInput.style.backgroundColor = 'red';
    +		}
    +		else
    +		{
    +			widthInput.style.backgroundColor = '';
    +		}
    +		
    +		if (heightInput.value > MAX_HEIGHT || heightInput.value < 0)
    +		{
    +			heightInput.style.backgroundColor = 'red';
    +		}
    +		else
    +		{
    +			heightInput.style.backgroundColor = '';
    +		}
    +	};
    +
    +	mxEvent.addListener(widthInput, 'change', function()
    +	{
    +		if (width > 0)
    +		{
    +			heightInput.value = Math.ceil(parseInt(widthInput.value) * height / width);
    +		}
    +		else
    +		{
    +			heightInput.value = '0';
    +		}
    +		
    +		checkValues();
    +	});
    +
    +	mxEvent.addListener(heightInput, 'change', function()
    +	{
    +		if (height > 0)
    +		{
    +			widthInput.value = Math.ceil(parseInt(heightInput.value) * width / height);
    +		}
    +		else
    +		{
    +			widthInput.value = '0';
    +		}
    +		
    +		checkValues();
    +	});
    +
    +	// Resuable image export instance
    +	var imgExport = new mxImageExport();
    +
    +	row = document.createElement('tr');
    +	td = document.createElement('td');
    +	td.colSpan = 2;
    +	td.style.paddingTop = '40px';
    +	td.setAttribute('align', 'right');
    +	td.appendChild(mxUtils.button(mxResources.get('save'), mxUtils.bind(this, function()
    +	{
    +		if (parseInt(widthInput.value) <= 0 && parseInt(heightInput.value) <= 0)
    +		{
    +			mxUtils.alert(mxResources.get('drawingEmpty'));
    +		}
    +		else
    +		{
    +			var format = imageFormatSelect.value;
    +	    	var name = nameInput.value;
    +	    	
    +	        if (format == 'xml')
    +	    	{
    +	        	var xml = encodeURIComponent(mxUtils.getXml(editorUi.editor.getGraphXml()));
    +				new mxXmlRequest(SAVE_URL, 'filename=' + name + '&xml=' + xml).simulate(document, "_blank");
    +	    	}
    +	        else if (format == 'svg')
    +	    	{
    +				var border = Math.max(0, parseInt(borderInput.value)) + 1;
    +				var scale = parseInt(widthInput.value) / width;
    +			    var bounds = graph.getGraphBounds();
    +	
    +			    // Prepares SVG document that holds the output
    +			    var svgDoc = mxUtils.createXmlDocument();
    +			    var root = (svgDoc.createElementNS != null) ?
    +			    	svgDoc.createElementNS(mxConstants.NS_SVG, 'svg') : svgDoc.createElement('svg');
    +			    
    +			    if (svgDoc.createElementNS == null)
    +			    {
    +			    	root.setAttribute('xmlns', mxConstants.NS_SVG);
    +			    }
    +			    root.setAttribute('width', (Math.ceil(bounds.width * scale) + 2 * border) + 'px');
    +			    root.setAttribute('height', (Math.ceil(bounds.height * scale) + 2 * border) + 'px');
    +			    root.setAttribute('version', '1.1');
    +			    svgDoc.appendChild(root);
    +	
    +			    // Render graph
    +			    var svgCanvas = new mxSvgCanvas2D(root);
    +			    svgCanvas.scale(scale);
    +			    svgCanvas.translate(Math.floor(-bounds.x) + border, Math.floor(-bounds.y) + border);
    +			    imgExport.drawState(graph.getView().getState(graph.model.root), svgCanvas);
    +	
    +				var xml = mxUtils.getXml(root);
    +	
    +				if (xml.length < MAX_REQUEST_SIZE)
    +				{
    +					xml = encodeURIComponent(xml);
    +					new mxXmlRequest(SAVE_URL, 'filename=' + name + '&format=' + format +
    +							'&xml=' + xml).simulate(document, "_blank");
    +				}
    +				else
    +				{
    +					mxUtils.alert(mxResources.get('drawingTooLarge'));
    +					mxUtils.popup(xml);
    +				}
    +	    	}
    +	        else
    +	        {
    +				var border = Math.max(0, parseInt(borderInput.value)) + 1;
    +				var scale = parseInt(widthInput.value) / width;
    +				var bounds = graph.getGraphBounds();
    +				
    +	        	// New image export
    +				var xmlDoc = mxUtils.createXmlDocument();
    +				var root = xmlDoc.createElement('output');
    +				xmlDoc.appendChild(root);
    +				var xmlCanvas = new mxXmlCanvas2D(root);
    +				
    +				// Render graph
    +				xmlCanvas.scale(scale);
    +				xmlCanvas.translate(Math.floor(-bounds.x * scale) + border, Math.floor(-bounds.y * scale) + border);
    +				imgExport.drawState(graph.getView().getState(graph.model.root), xmlCanvas);
    +	
    +				// Puts request data together
    +				var w = Math.ceil(bounds.width * scale) + 2 * border;
    +				var h = Math.ceil(bounds.height * scale) + 2 * border;
    +				var xml = mxUtils.getXml(root);
    +				
    +				// Requests image if request is valid
    +				if (xml.length <= MAX_REQUEST_SIZE && width < MAX_WIDTH && width > 0 &&
    +					height < MAX_HEIGHT && height > 0)
    +				{
    +					var bg = graph.background || '#ffffff';
    +					
    +					new mxXmlRequest(EXPORT_URL, 'filename=' + name + '&format=' + format +
    +	        			'&bg=' + bg + '&w=' + w + '&h=' + h + '&plain=' + encodeURIComponent(xml)).
    +	        			simulate(document, '_blank');
    +				}
    +				else
    +				{
    +					mxUtils.alert(mxResources.get('drawingTooLarge'));
    +				}
    +	    	}
    +	        
    +			editorUi.hideDialog();
    +		}
    +	})));
    +	td.appendChild(mxUtils.button(mxResources.get('cancel'), function()
    +	{
    +		editorUi.hideDialog();
    +	}));
    +	
    +	row.appendChild(td);
    +	tbody.appendChild(row);
    +	
    +	tbody.appendChild(row);
    +	table.appendChild(tbody);
    +	this.container = table;
    +};
    diff --git a/javascript/examples/grapheditor/www/js/Editor.js b/javascript/examples/grapheditor/www/js/Editor.js
    new file mode 100644
    index 000000000..6d0b36f0a
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/js/Editor.js
    @@ -0,0 +1,672 @@
    +/**
    + * $Id: Editor.js,v 1.37 2012-05-15 12:49:55 gaudenz Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +// Specifies if local storage should be used (eg. on the iPad which has no filesystem)
    +var useLocalStorage = (mxClient.IS_TOUCH || urlParams['storage'] == 'local') && typeof(localStorage) != 'undefined';
    +var fileSupport = window.File != null && window.FileReader != null && window.FileList != null;
    +
    +// Specifies if connector should be shown on selected cells
    +var touchStyle = mxClient.IS_TOUCH || urlParams['touch'] == '1';
    +
    +// Counts open editor tabs (must be global for cross-window access)
    +var counter = 0;
    +
    +// Cross-domain window access is not allowed in FF, so if we
    +// were opened from another domain then this will fail. 
    +try
    +{
    +	var op = window;
    +	
    +	while (op.opener != null && !isNaN(op.opener.counter))
    +	{
    +		op = op.opener;
    +	}
    +	
    +	// Increments the counter in the first opener in the chain
    +	if (op != null)
    +	{
    +		op.counter++;
    +		counter = op.counter;
    +	}
    +}
    +catch (e)
    +{
    +	// ignore
    +}
    +
    +/**
    + * Editor constructor executed on page load.
    + */
    +Editor = function()
    +{
    +	mxEventSource.call(this);
    +	this.init();
    +	this.initStencilRegistry();
    +	this.graph = new Graph();
    +	this.outline = new mxOutline(this.graph);
    +	this.outline.updateOnPan = true;
    +	this.undoManager = this.createUndoManager();
    +	this.status = '';
    +	
    +	// Contains the name which was used for the last save. Default value is null.
    +	this.filename = null;
    +
    +	this.getOrCreateFilename = function()
    +	{
    +		return this.filename || mxResources.get('drawing', [counter]) + '.xml';
    +	};
    +	
    +	this.getFilename = function()
    +	{
    +		return this.filename;
    +	};
    +	
    +	// Sets the status and fires a statusChanged event
    +	this.setStatus = function(value)
    +	{
    +		this.status = value;
    +		this.fireEvent(new mxEventObject('statusChanged'));
    +	};
    +	
    +	// Returns the current status
    +	this.getStatus = function()
    +	{
    +		return this.status;
    +	};
    +
    +	// Contains the current modified state of the diagram. This is false for
    +	// new diagrams and after the diagram was saved.
    +	this.modified = false;
    +
    +	// Updates modified state if graph changes
    +	this.graph.getModel().addListener(mxEvent.CHANGE, mxUtils.bind(this, function()
    +	{
    +		this.modified = true;
    +	}));
    +	
    +	// Installs dialog if browser window is closed without saving
    +	// This must be disabled during save and image export
    +	window.onbeforeunload = function()
    +	{
    +		if (modified)
    +		{
    +			return mxResources.get('allChangesLost');
    +		}
    +	};
    +	
    +	// Sets persistent graph state defaults
    +	this.graph.resetViewOnRootChange = false;
    +	this.graph.scrollbars = true;
    +	this.graph.background = null;
    +};
    +
    +// Editor inherits from mxEventSource
    +mxUtils.extend(Editor, mxEventSource);
    +
    +/**
    + * Sets the XML node for the current diagram.
    + */
    +Editor.prototype.setGraphXml = function(node)
    +{
    +	var dec = new mxCodec(node.ownerDocument);
    +	
    +	if (node.nodeName == 'mxGraphModel')
    +	{
    +		this.graph.view.translate.x = Number(node.getAttribute('dx') || 0);
    +		this.graph.view.translate.y = Number(node.getAttribute('dy') || 0);
    +		this.graph.view.scale = Number(node.getAttribute('scale') || 1);
    +		this.graph.gridEnabled = node.getAttribute('grid') != '0';
    +		this.graph.graphHandler.guidesEnabled = node.getAttribute('guides') != '0';
    +		this.graph.setTooltips(node.getAttribute('tooltips') != '0');
    +		this.graph.setConnectable(node.getAttribute('connect') != '0');
    +		this.graph.foldingEnabled = node.getAttribute('fold') != '0';
    +		this.graph.scrollbars = node.getAttribute('scrollbars') != '0';
    +
    +		this.graph.pageVisible = node.getAttribute('page') == '1';
    +		this.graph.pageBreaksVisible = this.graph.pageVisible; 
    +		this.graph.preferPageSize = this.graph.pageBreaksVisible;
    +
    +		dec.decode(node, this.graph.getModel());
    +		
    +		// Loads the persistent state settings
    +		var bg = node.getAttribute('background');
    +		
    +		if (bg != null && bg.length > 0)
    +		{
    +			this.graph.background = bg;
    +		}
    +		
    +		this.updateGraphComponents();
    +	}
    +};
    +
    +/**
    + * Returns the XML node that represents the current diagram.
    + */
    +Editor.prototype.getGraphXml = function()
    +{
    +	var enc = new mxCodec(mxUtils.createXmlDocument());
    +	var node = enc.encode(this.graph.getModel());
    +
    +	if (this.graph.view.translate.x != 0 || this.graph.view.translate.y != 0)
    +	{
    +		node.setAttribute('dx', Math.round(this.graph.view.translate.x * 100) / 100);
    +		node.setAttribute('dy', Math.round(this.graph.view.translate.y * 100) / 100);
    +	}
    +	
    +	if (this.graph.view.scale != 1)
    +	{
    +		node.setAttribute('scale', Math.round(this.graph.view.scale * 1000) / 1000);
    +	}
    +	
    +	node.setAttribute('grid', (this.graph.isGridEnabled()) ? '1' : '0');
    +	node.setAttribute('guides', (this.graph.graphHandler.guidesEnabled) ? '1' : '0');
    +	node.setAttribute('guides', (this.graph.graphHandler.guidesEnabled) ? '1' : '0');
    +	node.setAttribute('tooltips', (this.graph.tooltipHandler.isEnabled()) ? '1' : '0');
    +	node.setAttribute('connect', (this.graph.connectionHandler.isEnabled()) ? '1' : '0');	
    +	node.setAttribute('fold', (this.graph.foldingEnabled) ? '1' : '0');
    +	node.setAttribute('page', (this.graph.pageVisible) ? '1' : '0');
    +	
    +	if (!this.graph.scrollbars)
    +	{
    +		node.setAttribute('scrollbars', '0');
    +	}
    +
    +	if (this.graph.background != null)
    +	{
    +		node.setAttribute('background', this.graph.background);
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Keeps the graph container in sync with the persistent graph state
    + */
    +Editor.prototype.updateGraphComponents = function()
    +{
    +	var graph = this.graph;
    +	var outline = this.outline;
    +	
    +	if (graph.container != null && outline.outline.container != null)
    +	{
    +		if (graph.background != null)
    +		{
    +			if (graph.background == 'none')
    +			{
    +				graph.container.style.backgroundColor = 'transparent';
    +			}
    +			else
    +			{
    +				if (graph.view.backgroundPageShape != null)
    +				{
    +					graph.view.backgroundPageShape.fill = graph.background;
    +					graph.view.backgroundPageShape.reconfigure();
    +				}
    +				
    +				graph.container.style.backgroundColor = graph.background;
    +			}
    +		}
    +		else
    +		{
    +			graph.container.style.backgroundColor = '';
    +		}
    +		
    +		outline.outline.container.style.backgroundColor = graph.container.style.backgroundColor;
    +		
    +		if (graph.pageVisible)
    +		{
    +			graph.container.style.backgroundColor = 'whiteSmoke';
    +			graph.container.style.border = '1px solid #e5e5e5';
    +		}
    +		else
    +		{
    +			graph.container.style.border = '';
    +		}
    +		
    +		if (graph.scrollbars && graph.container.style.overflow == 'hidden' && !touchStyle)
    +		{
    +			graph.container.style.overflow = 'auto';
    +		}
    +		else if (!graph.scrollbars || touchStyle)
    +		{
    +			graph.container.style.overflow = 'hidden';
    +		}
    +		
    +		graph.container.style.backgroundImage = (graph.isGridEnabled()) ? 'url(images/grid.gif)' : 'none';
    +	}
    +};
    +
    +/**
    + * Initializes the environment.
    + */
    +Editor.prototype.init = function()
    +{
    +	// Adds stylesheet for IE6
    +	if (mxClient.IS_IE6)
    +	{
    +		mxClient.link('stylesheet', CSS_PATH + '/grapheditor-ie6.css');
    +	}
    +
    +	// Adds stylesheet for touch devices
    +	if (touchStyle)
    +	{
    +		mxClient.link('stylesheet', CSS_PATH + '/grapheditor-touch.css');
    +	}
    +
    +	// Adds required resources (disables loading of fallback properties, this can only
    +	// be used if we know that all keys are defined in the language specific file)
    +	mxResources.loadDefaultBundle = false;
    +	mxResources.add(RESOURCE_BASE);
    +
    +	// Makes the connection hotspot smaller
    +	mxConstants.DEFAULT_HOTSPOT = 0.3;
    +
    +	var mxConnectionHandlerCreateMarker = mxConnectionHandler.prototype.createMarker;
    +	mxConnectionHandler.prototype.createMarker = function()
    +	{
    +		var marker = mxConnectionHandlerCreateMarker.apply(this, arguments);
    +		
    +		// Overrides to ignore hotspot only for target terminal
    +		marker.intersects = mxUtils.bind(this, function(state, evt)
    +		{
    +			if (this.isConnecting())
    +			{
    +				return true;
    +			}
    +			
    +			return mxCellMarker.prototype.intersects.apply(marker, arguments);
    +		});
    +		
    +		return marker;
    +	};
    +
    +	// Makes the shadow brighter
    +	mxConstants.SHADOWCOLOR = '#d0d0d0';
    +	
    +	// Changes some default colors
    +	mxConstants.HANDLE_FILLCOLOR = '#99ccff';
    +	mxConstants.HANDLE_STROKECOLOR = '#0088cf';
    +	mxConstants.VERTEX_SELECTION_COLOR = '#00a8ff';
    +	mxConstants.OUTLINE_COLOR = '#00a8ff';
    +	mxConstants.OUTLINE_HANDLE_FILLCOLOR = '#99ccff';
    +	mxConstants.OUTLINE_HANDLE_STROKECOLOR = '#00a8ff';
    +	mxConstants.CONNECT_HANDLE_FILLCOLOR = '#cee7ff';
    +	mxConstants.EDGE_SELECTION_COLOR = '#00a8ff';
    +	mxConstants.DEFAULT_VALID_COLOR = '#00a8ff';
    +	mxConstants.LABEL_HANDLE_FILLCOLOR = '#cee7ff';
    +	mxConstants.GUIDE_COLOR = '#0088cf';
    +	
    +	// Increases default rubberband opacity (default is 20)
    +	mxRubberband.prototype.defaultOpacity = 30;
    +	
    +	// Changes border color of background page shape
    +	mxGraphView.prototype.createBackgroundPageShape = function(bounds)
    +	{
    +		return new mxRectangleShape(bounds, this.graph.background || 'white', 'gray');
    +	};
    +
    +	// Fits the number of background pages to the graph
    +	mxGraphView.prototype.getBackgroundPageBounds = function()
    +	{
    +		var gb = this.getGraphBounds();
    +		
    +		// Computes unscaled, untranslated graph bounds
    +		var x = (gb.width > 0) ? gb.x / this.scale - this.translate.x : 0;
    +		var y = (gb.height > 0) ? gb.y / this.scale - this.translate.y : 0;
    +		var w = gb.width / this.scale;
    +		var h = gb.height / this.scale;
    +		
    +		var fmt = this.graph.pageFormat;
    +		var ps = this.graph.pageScale;
    +
    +		var pw = fmt.width * ps;
    +		var ph = fmt.height * ps;
    +
    +		var x0 = Math.floor(Math.min(0, x) / pw);
    +		var y0 = Math.floor(Math.min(0, y) / ph);
    +		var xe = Math.ceil(Math.max(1, x + w) / pw);
    +		var ye = Math.ceil(Math.max(1, y + h) / ph);
    +		
    +		var rows = xe - x0;
    +		var cols = ye - y0;
    +
    +		var bounds = new mxRectangle(this.scale * (this.translate.x + x0 * pw), this.scale *
    +				(this.translate.y + y0 * ph), this.scale * rows * pw, this.scale * cols * ph);
    +		
    +		return bounds;
    +	};
    +	
    +	// Enables snapping to off-grid terminals for edge waypoints
    +	mxEdgeHandler.prototype.snapToTerminals = true;
    +
    +	// Enables guides
    +	mxGraphHandler.prototype.guidesEnabled = true;
    +
    +	// Disables removing relative children from parents
    +	var mxGraphHandlerShouldRemoveCellsFromParent = mxGraphHandler.prototype.shouldRemoveCellsFromParent;
    +	mxGraphHandler.prototype.shouldRemoveCellsFromParent = function(parent, cells, evt)
    +	{
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (this.graph.getModel().isVertex(cells[i]))
    +			{
    +				var geo = this.graph.getCellGeometry(cells[i]);
    +				
    +				if (geo != null && geo.relative)
    +				{
    +					return false;
    +				}
    +			}
    +		}
    +		
    +		return mxGraphHandlerShouldRemoveCellsFromParent.apply(this, arguments);
    +	};
    +	
    +	// Alt-move disables guides
    +	mxGuide.prototype.isEnabledForEvent = function(evt)
    +	{
    +		return !mxEvent.isAltDown(evt);
    +	};
    +	
    +	// Consumes click events for disabled menu items
    +	mxPopupMenuAddItem = mxPopupMenu.prototype.addItem;
    +	mxPopupMenu.prototype.addItem = function(title, image, funct, parent, iconCls, enabled)
    +	{
    +		var result = mxPopupMenuAddItem.apply(this, arguments);
    +		
    +		if (enabled != null && !enabled)
    +		{
    +			mxEvent.addListener(result, 'mousedown', function(evt)
    +			{
    +				mxEvent.consume(evt);
    +			});
    +		}
    +		
    +		return result;
    +	};
    +	
    +	
    +	// Experimental add/remove waypoints
    +	mxEdgeHandler.prototype.addEnabled = true;
    +	mxEdgeHandler.prototype.removeEnabled = true;
    +
    +	// Selects descendants before children selection mode
    +	var graphHandlerGetInitialCellForEvent = mxGraphHandler.prototype.getInitialCellForEvent;
    +	mxGraphHandler.prototype.getInitialCellForEvent = function(me)
    +	{
    +		var model = this.graph.getModel();
    +		var psel = model.getParent(this.graph.getSelectionCell());
    +		var cell = graphHandlerGetInitialCellForEvent.apply(this, arguments);
    +		var parent = model.getParent(cell);
    +		
    +		if (psel == null || (psel != cell && psel != parent))
    +		{
    +			while (!this.graph.isCellSelected(cell) && !this.graph.isCellSelected(parent) &&
    +					(model.isVertex(parent) || model.isEdge(parent)) && !this.graph.isValidRoot(parent))
    +			{
    +				cell = parent;
    +				parent = this.graph.getModel().getParent(cell);
    +			}
    +		}
    +		
    +		return cell;
    +	};
    +	
    +	// Selection is delayed to mouseup if child selected
    +	var graphHandlerIsDelayedSelection = mxGraphHandler.prototype.isDelayedSelection;
    +	mxGraphHandler.prototype.isDelayedSelection = function(cell)
    +	{
    +		var result = graphHandlerIsDelayedSelection.apply(this, arguments);
    +		var model = this.graph.getModel();
    +		var psel = model.getParent(this.graph.getSelectionCell());
    +		var parent = model.getParent(cell);
    +		
    +		if (psel == null || (psel != cell && psel != parent))
    +		{
    +			if (!this.graph.isCellSelected(cell) && (model.isVertex(parent) || model.isEdge(parent)) && !this.graph.isValidRoot(parent))
    +			{
    +				result = true;
    +			}
    +		}
    +		
    +		return result;
    +	};
    +	
    +	// Delayed selection of parent group
    +	mxGraphHandler.prototype.selectDelayed = function(me)
    +	{
    +		var cell = me.getCell();
    +		
    +		if (cell == null)
    +		{
    +			cell = this.cell;
    +		}
    +		
    +		var model = this.graph.getModel();
    +		var parent = model.getParent(cell);
    +		
    +		while (this.graph.isCellSelected(cell) && (model.isVertex(parent) || model.isEdge(parent)) && !this.graph.isValidRoot(parent))
    +		{
    +			cell = parent;
    +			parent = model.getParent(cell);
    +		}
    +		
    +		this.graph.selectCellForEvent(cell, me.getEvent());
    +	};
    +
    +	// Returns last selected ancestor
    +	mxPanningHandler.prototype.getCellForPopupEvent = function(me)
    +	{
    +		var cell = me.getCell();
    +		var model = this.graph.getModel();
    +		var parent = model.getParent(cell);
    +		
    +		while ((model.isVertex(parent) || model.isEdge(parent)) && !this.graph.isValidRoot(parent))
    +		{
    +			if (this.graph.isCellSelected(parent))
    +			{
    +				cell = parent;
    +			}
    +			
    +			parent = model.getParent(parent);
    +		}
    +		
    +		return cell;
    +	};
    +};
    +
    +/**
    + * Creates and returns a new undo manager.
    + */
    +Editor.prototype.createUndoManager = function()
    +{
    +	var graph = this.graph;
    +	var undoMgr = new mxUndoManager();
    +
    +    // Installs the command history
    +	var listener = function(sender, evt)
    +	{
    +		undoMgr.undoableEditHappened(evt.getProperty('edit'));
    +	};
    +	
    +	graph.getModel().addListener(mxEvent.UNDO, listener);
    +	graph.getView().addListener(mxEvent.UNDO, listener);
    +
    +	// Keeps the selection in sync with the history
    +	var undoHandler = function(sender, evt)
    +	{
    +		var cand = graph.getSelectionCellsForChanges(evt.getProperty('edit').changes);
    +		var cells = [];
    +		
    +		for (var i = 0; i < cand.length; i++)
    +		{
    +			if (graph.view.getState(cand[i]) != null)
    +			{
    +				cells.push(cand[i]);
    +			}
    +		}
    +		
    +		graph.setSelectionCells(cells);
    +	};
    +	
    +	undoMgr.addListener(mxEvent.UNDO, undoHandler);
    +	undoMgr.addListener(mxEvent.REDO, undoHandler);
    +
    +	return undoMgr;
    +};
    +
    +/**
    + * Overrides stencil registry to add dynamic loading.
    + */
    +Editor.prototype.initStencilRegistry = function()
    +{
    +	mxStencilRegistry.packages = [];
    +
    +	// Extends the default stencil registry to add dynamic loading
    +	mxStencilRegistry.getStencil = function(name)
    +	{
    +		var result = mxStencilRegistry.stencils[name];
    +		
    +		var parts = name.split('.');
    +		
    +		if (parts.length > 0 && parts[0] == 'mxgraph')
    +		{
    +			var tmp = parts[1];
    +			
    +			for (var i = 2; i < parts.length - 1; i++)
    +			{
    +				tmp += '/' + parts[i];
    +			}
    +
    +			mxStencilRegistry.loadStencilSet(STENCIL_PATH + '/' + tmp + '.xml', null);
    +
    +			// Tries again after all shapes for file have been registered
    +			result = mxStencilRegistry.stencils[name];
    +		}
    +		
    +		return result;
    +	};
    +
    +	// Loads the given stencil set
    +	mxStencilRegistry.loadStencilSet = function(stencilFile, postStencilLoad, force)
    +	{
    +		force = (force != null) ? force : false;
    +		
    +		// Uses additional cache for detecting previous load attempts
    +		var installed = mxStencilRegistry.packages[stencilFile] != null;
    +		
    +		if (force || !installed)
    +		{
    +			mxStencilRegistry.packages[stencilFile] = 1;
    +			var req = mxUtils.load(stencilFile);
    +			var root = req.getDocumentElement();
    +			var shape = root.firstChild;
    +			var packageName = '';
    +			var name = root.getAttribute('name');
    +			
    +			if (name != null)
    +			{
    +				packageName = name + '.';
    +			}
    +			
    +			while (shape != null)
    +			{
    +				if (shape.nodeType == mxConstants.NODETYPE_ELEMENT)
    +				{
    +					name = shape.getAttribute('name');
    +					
    +					if (name != null)
    +					{
    +						var w = shape.getAttribute('w');
    +						var h = shape.getAttribute('h');
    +						
    +						w = (w == null) ? 80 : parseInt(w, 10);
    +						h = (h == null) ? 80 : parseInt(h, 10);
    +						
    +						packageName = packageName.toLowerCase();
    +						var stencilName = name.replace(/ /g,"_");
    +							
    +						if (!installed)
    +						{
    +							mxStencilRegistry.addStencil(packageName + stencilName.toLowerCase(), new mxStencil(shape));
    +						}
    +		
    +						if (postStencilLoad != null)
    +						{
    +							postStencilLoad(packageName, stencilName, name, w, h);
    +						}
    +					}
    +				}
    +				
    +				shape = shape.nextSibling;
    +			}
    +		}
    +	};
    +
    +	// Loads default stencils
    +	mxStencilRegistry.loadStencilSet(STENCIL_PATH + '/general.xml');
    +};
    +
    +/**
    + * Class for asynchronously opening a new window and loading a file at the same
    + * time. This acts as a bridge between the open dialog and the new editor.
    + */
    +OpenFile = function(done)
    +{
    +	this.producer = null;
    +	this.consumer = null;
    +	this.done = done;
    +};
    +
    +/**
    + * Registers the editor from the new window.
    + */
    +OpenFile.prototype.setConsumer = function(value)
    +{
    +	this.consumer = value;
    +	this.execute();
    +};
    +
    +/**
    + * Sets the data from the loaded file.
    + */
    +OpenFile.prototype.setData = function(value, filename)
    +{
    +	this.data = value;
    +	this.filename = filename;
    +	this.execute();
    +};
    +
    +/**
    + * Displays an error message.
    + */
    +OpenFile.prototype.error = function(msg)
    +{
    +	this.cancel();
    +	mxUtils.alert(msg);
    +};
    +
    +/**
    + * Consumes the data.
    + */
    +OpenFile.prototype.execute = function()
    +{
    +	if (this.consumer != null && this.data != null)
    +	{
    +		this.consumer(this.data, this.filename);
    +		this.cancel();
    +	}
    +};
    +
    +/**
    + * Cancels the operation.
    + */
    +OpenFile.prototype.cancel = function()
    +{
    +	if (this.done != null)
    +	{
    +		this.done();
    +	}
    +};
    diff --git a/javascript/examples/grapheditor/www/js/EditorUi.js b/javascript/examples/grapheditor/www/js/EditorUi.js
    new file mode 100644
    index 000000000..9e7daeead
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/js/EditorUi.js
    @@ -0,0 +1,926 @@
    +/**
    + * $Id: EditorUi.js,v 1.43 2012-05-15 12:48:52 gaudenz Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +/**
    + * Constructs a new graph editor
    + */
    +EditorUi = function(editor)
    +{
    +	this.editor = editor;
    +	var graph = editor.graph;
    +
    +	// Disables page scrollbars
    +	document.body.style.overflow = 'hidden';
    +	
    +	// Disables text selection while not editing and no dialog visible 
    +	var textEditing =  mxUtils.bind(this, function() { return graph.isEditing() || this.dialog != null; });
    +	document.onselectstart = textEditing;
    +    document.onmousedown = textEditing;
    +
    +	// And uses built-in context menu while not editing
    +	if (mxClient.IS_IE && document.documentMode != 9)
    +	{
    +		mxEvent.addListener(document.body, 'contextmenu', textEditing);
    +	}
    +	else
    +	{
    +		document.body.oncontextmenu = textEditing;
    +	}
    +
    +    // Creates the user interface
    +	this.actions = new Actions(this);
    +	this.menus = new Menus(this);
    +	this.createDivs();
    +	this.refresh();
    +	this.createUi();
    +
    +	// Contains the main graph instance inside the given panel
    +	graph.init(this.diagramContainer);
    +	graph.refresh();
    +    
    +    // Enables scrollbars and sets cursor style for the container
    +	graph.container.setAttribute('tabindex', '0');
    +   	graph.container.style.overflow = (touchStyle) ? 'hidden' : 'auto';
    +   	graph.container.style.cursor = 'default';
    +    graph.container.style.backgroundImage = 'url(' + IMAGE_PATH + '/grid.gif)';
    +   	graph.container.focus();
    +   	
    +   	// Keeps graph container focused on mouse down
    +   	var graphFireMouseEvent = graph.fireMouseEvent;
    +   	graph.fireMouseEvent = function(evtName, me, sender)
    +   	{
    +   		if (evtName == mxEvent.MOUSE_DOWN)
    +   		{
    +   			this.container.focus();
    +   		}
    +   		
    +   		graphFireMouseEvent.apply(this, arguments);
    +   	};
    +
    +   	// Configures automatic expand on mouseover
    +	graph.panningHandler.autoExpand = true;
    +
    +    // Installs context menu
    +	graph.panningHandler.factoryMethod = mxUtils.bind(this, function(menu, cell, evt)
    +	{
    +		this.menus.createPopupMenu(menu, cell, evt);
    +	});
    +	
    +	// Initializes the outline
    +	editor.outline.init(this.outlineContainer);
    +	
    +	// Hides context menu
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	mxEvent.addListener(document, md, mxUtils.bind(this, function(evt)
    +	{
    +		graph.panningHandler.hideMenu();
    +	}));
    +
    +	// Adds gesture handling (pinch to zoom)
    +	if (mxClient.IS_TOUCH)
    +	{
    +		mxEvent.addListener(graph.container, 'gesturechange',
    +			mxUtils.bind(this, function(evt)
    +			{
    +				graph.view.getDrawPane().setAttribute('transform', 'scale(' + evt.scale + ')');
    +				graph.view.getOverlayPane().style.visibility = 'hidden';
    +			})
    +		);
    +	
    +		mxEvent.addListener(graph.container, 'gestureend',
    +			mxUtils.bind(this, function(evt)
    +			{
    +				graph.view.getDrawPane().removeAttribute('transform');
    +				graph.zoomToCenter = true;
    +				graph.zoom(evt.scale);
    +				graph.view.getOverlayPane().style.visibility = 'visible';
    +			})
    +		);
    +	}
    +	
    +    // Create handler for key events
    +	var keyHandler = this.createKeyHandler(editor);
    +    
    +	// Getter for key handler
    +	this.getKeyHandler = function()
    +	{
    +		return keyHandler;
    +	};
    +
    +	// Shows dialog if changes are lost
    +	window.onbeforeunload = function()
    +	{
    +		if (editor.modified)
    +		{
    +			return mxResources.get('allChangesLost');
    +		}
    +	};
    +
    +	// Contains the outline (aka. birds-eye) view.
    +   	mxEvent.addListener(window, 'resize', mxUtils.bind(this, function()
    +   	{
    +   		this.refresh();
    +   		graph.sizeDidChange();
    +   		this.editor.outline.update(false);
    +   		this.editor.outline.outline.sizeDidChange();
    +   	}));
    +
    +	// Updates action and menu states
    +   	this.init();
    +   	this.open();
    +};
    +
    +/**
    + * Specifies the size of the split bar.
    + */
    +EditorUi.prototype.splitSize = (mxClient.IS_TOUCH) ? 16 : 8;
    +
    +/**
    + * Specifies the height of the menubar. Default is 34.
    + */
    +EditorUi.prototype.menubarHeight = 34;
    +
    +/**
    + * Specifies the height of the toolbar. Default is 46.
    + */
    +EditorUi.prototype.toolbarHeight = 46;
    +
    +/**
    + * Specifies the height of the footer. Default is 28.
    + */
    +EditorUi.prototype.footerHeight = 28;
    +
    +/**
    + * Specifies the position of the horizontal split bar. Default is 190.
    + */
    +EditorUi.prototype.hsplitPosition = 190;
    +
    +/**
    + * Specifies the position of the vertical split bar. Default is 190.
    + */
    +EditorUi.prototype.vsplitPosition = 190;
    +
    +/**
    + * Installs the listeners to update the action states.
    + */
    +EditorUi.prototype.init = function()
    +{
    +	// Updates action states
    +	this.addUndoListener();
    +	this.addSelectionListener();
    +
    +	// Overrides clipboard to update paste action state
    +	var paste = this.actions.get('paste');
    +	
    +	var updatePaste = function()
    +	{
    +		paste.setEnabled(!mxClipboard.isEmpty());
    +	};
    +	
    +	var mxClipboardCut = mxClipboard.cut;
    +	mxClipboard.cut = function()
    +	{
    +		mxClipboardCut.apply(this, arguments);
    +		updatePaste();
    +	};
    +	
    +	var mxClipboardCopy = mxClipboard.copy;
    +	mxClipboard.copy = function()
    +	{
    +		mxClipboardCopy.apply(this, arguments);
    +		updatePaste();
    +	};
    +};
    +
    +/**
    + * Opens the current diagram via the window.opener if one exists.
    + */
    +EditorUi.prototype.open = function()
    +{
    +	// Cross-domain window access is not allowed in FF, so if we
    +	// were opened from another domain then this will fail.
    +	try
    +	{
    +		if (window.opener != null && window.opener.openFile != null)
    +		{
    +			window.opener.openFile.setConsumer(mxUtils.bind(this, function(xml, filename)
    +			{
    +				try
    +				{
    +					var doc = mxUtils.parseXml(xml); 
    +					this.editor.setGraphXml(doc.documentElement);
    +					this.editor.modified = false;
    +					this.editor.undoManager.clear();
    +					
    +					if (filename != null)
    +					{
    +						this.editor.filename = filename;
    +					}
    +				}
    +				catch (e)
    +				{
    +					mxUtils.alert(mxResources.get('invalidOrMissingFile') + ': ' + e.message);
    +				}
    +			}));
    +		}
    +	}
    +	catch(e)
    +	{
    +		// ignore
    +	}
    +};
    +
    +/**
    + * Saves the current graph under the given filename.
    + */
    +EditorUi.prototype.save = function(name)
    +{
    +	if (name != null)
    +	{
    +		var xml = mxUtils.getXml(this.editor.getGraphXml());
    +		
    +		try
    +		{
    +			if (useLocalStorage)
    +			{
    +				if (localStorage.getItem(name) != null &&
    +					!mxUtils.confirm(mxResources.get('replace', [name])))
    +				{
    +					return;
    +				}
    +
    +				localStorage.setItem(name, xml);
    +				this.editor.setStatus(mxResources.get('saved'));
    +			}
    +			else
    +			{
    +				if (xml.length < MAX_REQUEST_SIZE)
    +				{
    +					xml = encodeURIComponent(xml);
    +					new mxXmlRequest(SAVE_URL, 'filename=' + name + '&xml=' + xml).simulate(document, "_blank");
    +				}
    +				else
    +				{
    +					mxUtils.alert(mxResources.get('drawingTooLarge'));
    +					mxUtils.popup(xml);
    +					
    +					return;
    +				}
    +			}
    +
    +			this.editor.filename = name;
    +			this.editor.modified = false;
    +		}
    +		catch (e)
    +		{
    +			this.editor.setStatus('Error saving file');
    +		}
    +	}
    +};
    +
    +/**
    + * Returns the URL for a copy of this editor with no state.
    + */
    +EditorUi.prototype.getUrl = function(pathname)
    +{
    +	var href = (pathname != null) ? pathname : window.location.pathname;
    +	var parms = (pathname.indexOf('?') > 0) ? 1 : 0;
    +	
    +	// Removes template URL parameter for new blank diagram
    +	for (var key in urlParams)
    +	{
    +		if (parms == 0)
    +		{
    +			href += '?';
    +		}
    +		else
    +		{
    +			href += '&';
    +		}
    +	
    +		href += key + '=' + urlParams[key];
    +		parms++;
    +	}
    +	
    +	return href;
    +};
    +
    +/**
    + * Returns the URL for a copy of this editor with no state.
    + */
    +EditorUi.prototype.getUrl = function()
    +{
    +	var href = window.location.pathname;
    +	var parms = 0;
    +	
    +	// Removes template URL parameter for new blank diagram
    +	for (var key in urlParams)
    +	{
    +		if (key != 'tmp' && key != 'libs')
    +		{
    +			if (parms == 0)
    +			{
    +				href += '?';
    +			}
    +			else
    +			{
    +				href += '&';
    +			}
    +		
    +			href += key + '=' + urlParams[key];
    +			parms++;
    +		}
    +	}
    +	
    +	return href;
    +};
    +
    +/**
    + * Updates the states of the given undo/redo items.
    + */
    +EditorUi.prototype.addUndoListener = function()
    +{
    +	var undo = this.actions.get('undo');
    +	var redo = this.actions.get('redo');
    +	
    +	var undoMgr = this.editor.undoManager;
    +	
    +    var undoListener = function()
    +    {
    +    	undo.setEnabled(undoMgr.canUndo());
    +    	redo.setEnabled(undoMgr.canRedo());
    +    };
    +
    +    undoMgr.addListener(mxEvent.ADD, undoListener);
    +    undoMgr.addListener(mxEvent.UNDO, undoListener);
    +    undoMgr.addListener(mxEvent.REDO, undoListener);
    +    undoMgr.addListener(mxEvent.CLEAR, undoListener);
    +	
    +	// Updates the button states once
    +    undoListener();
    +};
    +
    +/**
    + * Updates the states of the given toolbar items based on the selection.
    + */
    +EditorUi.prototype.addSelectionListener = function()
    +{
    +	var selectionListener = mxUtils.bind(this, function()
    +    {
    +		var graph = this.editor.graph;
    +		var selected = !graph.isSelectionEmpty();
    +		var vertexSelected = false;
    +		var edgeSelected = false;
    +
    +		var cells = graph.getSelectionCells();
    +		
    +		if (cells != null)
    +		{
    +	    	for (var i = 0; i < cells.length; i++)
    +	    	{
    +	    		var cell = cells[i];
    +	    		
    +	    		if (graph.getModel().isEdge(cell))
    +	    		{
    +	    			edgeSelected = true;
    +	    		}
    +	    		
    +	    		if (graph.getModel().isVertex(cell))
    +	    		{
    +	    			vertexSelected = true;
    +	    		}
    +	    		
    +	    		if (edgeSelected && vertexSelected)
    +				{
    +					break;
    +				}
    +	    	}
    +		}
    +		
    +		// Updates action states
    +		var actions = ['cut', 'copy', 'delete', 'duplicate', 'bold', 'italic', 'style', 'fillColor',
    +		               'gradientColor', 'underline', 'fontColor', 'strokeColor', 'backgroundColor',
    +		               'borderColor', 'toFront', 'toBack', 'dashed', 'rounded', 'shadow'];
    +    	
    +    	for (var i = 0; i < actions.length; i++)
    +    	{
    +    		this.actions.get(actions[i]).setEnabled(selected);
    +    	}
    +    	
    +		actions = ['rotation', 'rotate'];
    +		       	
    +       	for (var i = 0; i < actions.length; i++)
    +       	{
    +       		this.actions.get(actions[i]).setEnabled(vertexSelected);
    +       	}
    +       	
    +       	this.actions.get('group').setEnabled(graph.getSelectionCount() > 1);
    +       	this.actions.get('ungroup').setEnabled(graph.getSelectionCount() == 1 &&
    +       			graph.getModel().getChildCount(graph.getSelectionCell()) > 0);
    +       	var oneVertexSelected = vertexSelected && graph.getSelectionCount() == 1;
    +       	this.actions.get('autosize').setEnabled(oneVertexSelected);
    +       	this.actions.get('removeFromGroup').setEnabled(oneVertexSelected &&
    +       			graph.getModel().isVertex(graph.getModel().getParent(graph.getSelectionCell())));
    +       	this.actions.get('rotate').setEnabled(oneVertexSelected &&
    +       			graph.getModel().getChildCount(graph.getSelectionCell()) == 0);
    +
    +    	// Updates menu states
    +    	var menus = ['fontFamily', 'fontSize', 'alignment', 'position', 'text', 'format',
    +    	    'arrange', 'linewidth', 'spacing', 'gradient'];
    +
    +    	for (var i = 0; i < menus.length; i++)
    +    	{
    +    		this.menus.get(menus[i]).setEnabled(selected);
    +    	}
    +    	
    +    	menus = ['line', 'lineend', 'linestart'];
    +
    +     	for (var i = 0; i < menus.length; i++)
    +     	{
    +     		this.menus.get(menus[i]).setEnabled(edgeSelected);
    +     	}
    +        	
    +        this.menus.get('align').setEnabled(graph.getSelectionCount() > 1);
    +        this.menus.get('direction').setEnabled(vertexSelected || (edgeSelected &&
    +        		graph.isLoop(graph.view.getState(graph.getSelectionCell()))));
    +        var layoutEnabled = vertexSelected && graph.getSelectionCount() == 1 &&
    +        	graph.getOutgoingEdges(graph.getSelectionCell()).length > 0;
    +        this.menus.get('layout').setEnabled(layoutEnabled);
    +        this.menus.get('navigation').setEnabled(graph.foldingEnabled && ((graph.view.currentRoot != null) ||
    +				(graph.getSelectionCount() == 1 && graph.isValidRoot(graph.getSelectionCell()))));
    +        this.actions.get('home').setEnabled(graph.view.currentRoot != null);
    +        this.actions.get('exitGroup').setEnabled(graph.view.currentRoot != null);
    +        var groupEnabled = graph.getSelectionCount() == 1 && graph.isValidRoot(graph.getSelectionCell());
    +        this.actions.get('enterGroup').setEnabled(groupEnabled);
    +        this.actions.get('expand').setEnabled(groupEnabled);
    +        this.actions.get('collapse').setEnabled(groupEnabled);
    +    });
    +	    
    +    this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE, selectionListener);
    +    selectionListener();
    +};
    +
    +/**
    + * Refreshes the viewport.
    + */
    +EditorUi.prototype.refresh = function()
    +{
    +	var w = document.body.clientWidth || document.documentElement.clientWidth;
    +	var quirks = mxClient.IS_IE && (document.documentMode == null || document.documentMode == 5);
    +	var h = (quirks) ? document.body.clientHeight || document.documentElement.clientHeight : document.documentElement.clientHeight;
    +	
    +	var effHsplitPosition = Math.max(0, Math.min(this.hsplitPosition, w - this.splitSize - 20));
    +	var effVsplitPosition = Math.max(0, Math.min(this.vsplitPosition, h - this.menubarHeight - this.toolbarHeight - this.footerHeight - this.splitSize - 1));
    +	
    +	this.menubarContainer.style.height = this.menubarHeight + 'px';
    +	this.toolbarContainer.style.top = this.menubarHeight + 'px';
    +	this.toolbarContainer.style.height = this.toolbarHeight + 'px';
    +	this.sidebarContainer.style.top = (this.menubarHeight + this.toolbarHeight) + 'px';
    +	this.sidebarContainer.style.width = effHsplitPosition + 'px';
    +	this.outlineContainer.style.width = effHsplitPosition + 'px';
    +	this.outlineContainer.style.height = effVsplitPosition + 'px';
    +	this.outlineContainer.style.bottom = this.footerHeight + 'px';
    +	this.diagramContainer.style.left = (effHsplitPosition + this.splitSize) + 'px';
    +	this.diagramContainer.style.top = this.sidebarContainer.style.top;
    +	this.footerContainer.style.height = this.footerHeight + 'px';
    +	this.hsplit.style.top = this.sidebarContainer.style.top;
    +	this.hsplit.style.bottom = this.outlineContainer.style.bottom;
    +	this.hsplit.style.left = effHsplitPosition + 'px';
    +	this.vsplit.style.width = this.sidebarContainer.style.width;
    +	this.vsplit.style.bottom = (effVsplitPosition + this.footerHeight) + 'px';
    +	
    +	if (quirks)
    +	{
    +		this.menubarContainer.style.width = w + 'px';
    +		this.toolbarContainer.style.width = this.menubarContainer.style.width;
    +		var sidebarHeight = (h - effVsplitPosition - this.splitSize - this.footerHeight - this.menubarHeight - this.toolbarHeight);
    +		this.sidebarContainer.style.height = sidebarHeight + 'px';
    +		this.diagramContainer.style.width = (w - effHsplitPosition - this.splitSize) + 'px';
    +		var diagramHeight = (h - this.footerHeight - this.menubarHeight - this.toolbarHeight);
    +		this.diagramContainer.style.height = diagramHeight + 'px';
    +		this.footerContainer.style.width = this.menubarContainer.style.width;
    +		this.hsplit.style.height = diagramHeight + 'px';
    +	}
    +	else
    +	{
    +		this.sidebarContainer.style.bottom = (effVsplitPosition + this.splitSize + this.footerHeight) + 'px';
    +		this.diagramContainer.style.bottom = this.outlineContainer.style.bottom;
    +	}
    +};
    +
    +/**
    + * Creates the required containers.
    + */
    +EditorUi.prototype.createDivs = function()
    +{
    +	this.menubarContainer = this.createDiv('menubarContainer');
    +	this.toolbarContainer = this.createDiv('toolbarContainer');
    +	this.sidebarContainer = this.createDiv('sidebarContainer');
    +	this.outlineContainer = this.createDiv('outlineContainer');
    +	this.diagramContainer = this.createDiv('diagramContainer');
    +	this.footerContainer = this.createDiv('footerContainer');
    +	this.hsplit = this.createDiv('hsplit');
    +	this.vsplit = this.createDiv('vsplit');
    +
    +	// Sets static style for containers
    +	this.menubarContainer.style.top = '0px';
    +	this.menubarContainer.style.left = '0px';
    +	this.menubarContainer.style.right = '0px';
    +	this.toolbarContainer.style.left = '0px';
    +	this.toolbarContainer.style.right = '0px';
    +	this.sidebarContainer.style.left = '0px';
    +	this.outlineContainer.style.left = '0px';
    +	this.diagramContainer.style.right = '0px';
    +	this.footerContainer.style.left = '0px';
    +	this.footerContainer.style.right = '0px';
    +	this.footerContainer.style.bottom = '0px';
    +	this.vsplit.style.left = '0px';
    +	this.vsplit.style.height = this.splitSize + 'px';
    +	this.hsplit.style.width = this.splitSize + 'px';
    +};
    +
    +/**
    + * Creates the required containers.
    + */
    +EditorUi.prototype.createUi = function()
    +{
    +	// Creates menubar
    +	this.menubar = this.menus.createMenubar(this.createDiv('menubar'));
    +	this.menubarContainer.appendChild(this.menubar.container);
    +	
    +	// Creates toolbar
    +	this.toolbar = this.createToolbar(this.createDiv('toolbar'));
    +	this.toolbarContainer.appendChild(this.toolbar.container);
    +	
    +	// Creates the sidebar
    +	this.sidebar = this.createSidebar(this.sidebarContainer);
    +
    +	// Creates the footer
    +	this.footerContainer.appendChild(this.createFooter());
    +
    +	// Adds status bar in menubar
    +	this.statusContainer = this.createStatusContainer();
    +
    +	// Connects the status bar to the editor status
    +	this.editor.addListener('statusChanged', mxUtils.bind(this, function()
    +	{
    +		this.setStatusText(this.editor.getStatus());
    +	}));
    +	
    +	this.setStatusText(this.editor.getStatus());
    +	this.menubar.container.appendChild(this.statusContainer);
    +	
    +	// Inserts into DOM
    +	document.body.appendChild(this.menubarContainer);
    +	document.body.appendChild(this.toolbarContainer);
    +	document.body.appendChild(this.sidebarContainer);
    +	document.body.appendChild(this.outlineContainer);
    +	document.body.appendChild(this.diagramContainer);
    +	document.body.appendChild(this.footerContainer);
    +	document.body.appendChild(this.hsplit);
    +	document.body.appendChild(this.vsplit);
    +	
    +	// HSplit
    +	this.addSplitHandler(this.hsplit, true, 0, mxUtils.bind(this, function(value)
    +	{
    +		this.hsplitPosition = value;
    +		this.refresh();
    +		this.editor.graph.sizeDidChange();
    +		this.editor.outline.update(false);
    +		this.editor.outline.outline.sizeDidChange();
    +	}));
    +
    +	// VSplit
    +	this.addSplitHandler(this.vsplit, false, this.footerHeight, mxUtils.bind(this, function(value)
    +	{
    +		this.vsplitPosition = value;
    +		this.refresh();
    +		this.editor.outline.update(false);
    +		this.editor.outline.outline.sizeDidChange();
    +	}));
    +};
    +
    +/**
    + * Creates a new toolbar for the given container.
    + */
    +EditorUi.prototype.createStatusContainer = function()
    +{
    +	var container = document.createElement('a');
    +	container.className = 'item status';
    +	
    +	return container;
    +};
    +
    +/**
    + * Creates a new toolbar for the given container.
    + */
    +EditorUi.prototype.setStatusText = function(value)
    +{
    +	this.statusContainer.innerHTML = value;
    +};
    +
    +/**
    + * Creates a new toolbar for the given container.
    + */
    +EditorUi.prototype.createToolbar = function(container)
    +{
    +	return new Toolbar(this, container);
    +};
    +
    +/**
    + * Creates a new sidebar for the given container.
    + */
    +EditorUi.prototype.createSidebar = function(container)
    +{
    +	return new Sidebar(this, container);
    +};
    +
    +/**
    + * Creates and returns a new footer.
    + */
    +EditorUi.prototype.createFooter = function()
    +{
    +	return this.createDiv('footer');
    +};
    +
    +/**
    + * Creates the actual toolbar for the toolbar container.
    + */
    +EditorUi.prototype.createDiv = function(classname)
    +{
    +	var elt = document.createElement('div');
    +	elt.className = classname;
    +	
    +	return elt;
    +};
    +
    +/**
    + * Updates the states of the given undo/redo items.
    + */
    +EditorUi.prototype.addSplitHandler = function(elt, horizontal, dx, onChange)
    +{
    +	var start = null;
    +	var initial = null;
    +	
    +	function getValue()
    +	{
    +		return parseInt(((horizontal) ? elt.style.left : elt.style.bottom));
    +	}
    +
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +	var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +	
    +	mxEvent.addListener(elt, md, function(evt)
    +	{
    +		start = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +		initial = getValue();
    +		mxEvent.consume(evt);
    +	});
    +	
    +	function moveHandler(evt)
    +	{
    +		if (start != null)
    +		{
    +			var pt = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +			onChange(Math.max(0, initial + ((horizontal) ? (pt.x - start.x) : (start.y - pt.y)) - dx));
    +			mxEvent.consume(evt);
    +		}
    +	}
    +	
    +	mxEvent.addListener(document, mm, moveHandler);
    +	
    +	mxEvent.addListener(document, mu, function(evt)
    +	{
    +		moveHandler(evt);
    +		start = null;
    +		initial = null;
    +	});
    +};
    +
    +/**
    + * Displays a print dialog.
    + */
    +EditorUi.prototype.showDialog = function(elt, w, h, modal, closable, onClose)
    +{
    +	this.hideDialog();
    +	this.dialog = new Dialog(this, elt, w, (mxClient.IS_VML) ? h - 12 : h, modal, closable, onClose);
    +};
    +
    +/**
    + * Displays a print dialog.
    + */
    +EditorUi.prototype.hideDialog = function()
    +{
    +	if (this.dialog != null)
    +	{
    +		this.dialog.close();
    +		this.dialog = null;
    +		this.editor.graph.container.focus();
    +	}
    +};
    +
    +/**
    + * Adds the label menu items to the given menu and parent.
    + */
    +EditorUi.prototype.openFile = function()
    +{
    +	// Closes dialog after open
    +	window.openFile = new OpenFile(mxUtils.bind(this, function()
    +	{
    +		this.hideDialog();
    +	}));
    +
    +	// Removes openFile if dialog is closed
    +	this.showDialog(new OpenDialog(this).container, 300, 180, true, true, function()
    +	{
    +		window.openFile = null;
    +	});
    +};
    +
    +/**
    + * Adds the label menu items to the given menu and parent.
    + */
    +EditorUi.prototype.saveFile = function(forceDialog)
    +{
    +	if (!forceDialog && this.editor.filename != null)
    +	{
    +		this.save(this.editor.getOrCreateFilename());
    +	}
    +	else
    +	{
    +		this.showDialog(new SaveDialog(this).container, 300, 100, true, true);
    +	}
    +};
    +
    +/**
    + * Executes the given layout.
    + */
    +EditorUi.prototype.executeLayout = function(layout, animate, ignoreChildCount)
    +{
    +	var graph = this.editor.graph;
    +	var cell = graph.getSelectionCell();
    +
    +	graph.getModel().beginUpdate();
    +	try
    +	{
    +		layout.execute(graph.getDefaultParent(), cell);
    +	}
    +	catch (e)
    +	{
    +		throw e;
    +	}
    +	finally
    +	{
    +		// Animates the changes in the graph model except
    +		// for Camino, where animation is too slow
    +		if (animate && navigator.userAgent.indexOf('Camino') < 0)
    +		{
    +			// New API for animating graph layout results asynchronously
    +			var morph = new mxMorphing(graph);
    +			morph.addListener(mxEvent.DONE, mxUtils.bind(this, function()
    +			{
    +				graph.getModel().endUpdate();
    +			}));
    +			
    +			morph.startAnimation();
    +		}
    +		else
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Creates the keyboard event handler for the current graph and history.
    + */
    +EditorUi.prototype.createKeyHandler = function(editor)
    +{
    +	var graph = this.editor.graph;
    +    var keyHandler = new mxKeyHandler(graph);
    +    
    +    // Routes command-key to control-key on Mac
    +    keyHandler.isControlDown = function(evt)
    +    {
    +    	return mxEvent.isControlDown(evt) || (mxClient.IS_MAC && evt.metaKey);
    +    };
    +	
    +	// Helper function to move cells with the cursor keys
    +    function nudge(keyCode)
    +    {
    +    	if (!graph.isSelectionEmpty())
    +		{
    +    		var dx = 0;
    +    		var dy = 0;
    +    		
    +    		if (keyCode == 37)
    +			{
    +    			dx = -1;
    +			}
    +    		else if (keyCode == 38)
    +    		{
    +    			dy = -1;
    +    		}
    +    		else if (keyCode == 39)
    +    		{
    +    			dx = 1;
    +    		}
    +    		else if (keyCode == 40)
    +    		{
    +    			dy = 1;
    +    		}
    +    		
    +    		graph.moveCells(graph.getSelectionCells(), dx, dy);
    +    		graph.scrollCellVisible(graph.getSelectionCell());
    +		}
    +    };
    +
    +    // Binds keystrokes to actions
    +    var bindAction = mxUtils.bind(this, function(code, control, key, shift)
    +    {
    +    	var action = this.actions.get(key);
    +    	
    +    	if (action != null)
    +    	{
    +    		var f = function()
    +    		{
    +				if (action.enabled)
    +				{
    +					action.funct();
    +				}
    +    		};
    +    		
    +    		if (control)
    +    		{
    +    			if (shift)
    +    			{
    +    				keyHandler.bindControlShiftKey(code, f);
    +    			}
    +    			else
    +    			{
    +    				keyHandler.bindControlKey(code, f);
    +    			}
    +    		}
    +    		else
    +    		{
    +    			if (shift)
    +    			{
    +    				keyHandler.bindShiftKey(code, f);
    +    			}
    +    			else
    +    			{
    +    				keyHandler.bindKey(code, f);
    +    			}
    +    		}
    +    	}
    +    });
    +    
    +    var ui = this;
    +    var keyHandleEscape = keyHandler.escape;
    +    keyHandler.escape = function(evt)
    +    {
    +    	ui.hideDialog();
    +    	keyHandleEscape.apply(this, arguments);
    +    };
    +    
    +    // Ignores enter keystroke. Remove this line if you want the
    +    // enter keystroke to stop editing.
    +    keyHandler.enter = function() {};
    +    keyHandler.bindKey(8, function() { graph.foldCells(true); }); // Backspace
    +    keyHandler.bindKey(13, function() { graph.foldCells(false); }); // Enter
    +    keyHandler.bindKey(33, function() { graph.exitGroup(); }); // Page Up
    +    keyHandler.bindKey(34, function() { graph.enterGroup(); }); // Page Down
    +    keyHandler.bindKey(36, function() { graph.home(); }); // Home
    +    keyHandler.bindKey(35, function() { graph.refresh(); }); // End
    +    keyHandler.bindKey(37, function() { nudge(37); }); // Left arrow
    +    keyHandler.bindKey(38, function() { nudge(38); }); // Up arrow
    +    keyHandler.bindKey(39, function() { nudge(39); }); // Right arrow
    +    keyHandler.bindKey(40, function() { nudge(40); }); // Down arrow
    +    keyHandler.bindKey(113, function() { graph.startEditingAtCell(); });
    +    bindAction(46, false, 'delete'); // Delete
    +    bindAction(82, true, 'rotate'); // Ctrl+R
    +    bindAction(83, true, 'save'); // Ctrl+S
    +    bindAction(83, true, 'saveAs', true); // Ctrl+Shift+S
    +    bindAction(107, false, 'zoomIn'); // Add
    +    bindAction(109, false, 'zoomOut'); // Subtract
    +    bindAction(65, true, 'selectAll'); // Ctrl+A
    +    bindAction(86, true, 'selectVertices', true); // Ctrl+Shift+V
    +    bindAction(69, true, 'selectEdges', true); // Ctrl+Shift+E
    +    bindAction(69, true, 'export'); // Ctrl+Shift+E
    +    bindAction(66, true, 'toBack'); // Ctrl+B
    +    bindAction(70, true, 'toFront'); // Ctrl+F
    +    bindAction(68, true, 'duplicate'); // Ctrl+D
    +    bindAction(90, true, 'undo'); // Ctrl+Z
    +    bindAction(89, true, 'redo'); // Ctrl+Y
    +    bindAction(88, true, 'cut'); // Ctrl+X
    +    bindAction(67, true, 'copy'); // Ctrl+C
    +    bindAction(86, true, 'paste'); // Ctrl+V
    +    bindAction(71, true, 'group'); // Ctrl+G
    +    bindAction(71, true, 'grid', true); // Ctrl+Shift+G
    +    bindAction(85, true, 'ungroup'); // Ctrl+U
    +    bindAction(112, false, 'about'); // F1
    +    
    +    return keyHandler;
    +};
    diff --git a/javascript/examples/grapheditor/www/js/Graph.js b/javascript/examples/grapheditor/www/js/Graph.js
    new file mode 100644
    index 000000000..67dc4e4aa
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/js/Graph.js
    @@ -0,0 +1,1058 @@
    +/**
    + * $Id: Graph.js,v 1.29 2012-05-02 22:28:01 gaudenz Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +/**
    + * Constructs a new graph instance. Note that the constructor does not take a
    + * container because the graph instance is needed for creating the UI, which
    + * in turn will create the container for the graph. Hence, the container is
    + * assigned later in EditorUi.
    + */
    +Graph = function(container, model, renderHint, stylesheet)
    +{
    +	mxGraph.call(this, container, model, renderHint, stylesheet);
    +	
    +	this.setConnectable(true);
    +	this.setDropEnabled(true);
    +	this.setPanning(true);
    +	this.setTooltips(!mxClient.IS_TOUCH);
    +	this.setAllowLoops(true);
    +	this.allowAutoPanning = true;
    +	
    +	this.connectionHandler.setCreateTarget(true);
    +
    +	// Sets the style to be used when an elbow edge is double clicked
    +	this.alternateEdgeStyle = 'vertical';
    +	this.loadStylesheet();
    +	
    +	// Creates rubberband selection
    +    var rubberband = new mxRubberband(this);
    +    
    +    this.getRubberband = function()
    +    {
    +    	return rubberband;
    +    };
    +    
    +    // Adds support for HTML labels via style. Note: Currently, only the Java
    +    // backend supports HTML labels but CSS support is limited to the following:
    +    // http://docs.oracle.com/javase/6/docs/api/index.html?javax/swing/text/html/CSS.html
    +	this.isHtmlLabel = function(cell)
    +	{
    +		var state = this.view.getState(cell);
    +		var style = (state != null) ? state.style : this.getCellStyle(cell);
    +		
    +		return style['html'] == '1';
    +	};
    +	
    +	// Unlocks all cells
    +	this.isCellLocked = function(cell)
    +	{
    +		return false;
    +	};
    +
    +	// Tap and hold brings up context menu.
    +	// Tolerance slightly below graph tolerance is better.
    +	this.connectionHandler.tapAndHoldTolerance = 16;
    +	
    +	//  Tap and hold on background starts rubberband on cell starts connecting
    +	var connectionHandlerTapAndHold = this.connectionHandler.tapAndHold;
    +	this.connectionHandler.tapAndHold = function(me, state)
    +	{
    +		if (state == null)
    +		{
    +			if (!this.graph.panningHandler.active)
    +			{
    +				rubberband.start(me.getGraphX(), me.getGraphY());
    +				this.graph.panningHandler.panningTrigger = false;
    +			}
    +		}
    +		else if (tapAndHoldStartsConnection)
    +		{
    +			connectionHandlerTapAndHold.apply(this, arguments);	
    +		}
    +		else if (this.graph.isCellSelected(state.cell) && this.graph.getSelectionCount() > 1)
    +		{
    +			this.graph.removeSelectionCell(state.cell);
    +		}
    +	};
    +
    +	if (touchStyle)
    +	{
    +		this.initTouch();
    +	}
    +};
    +
    +// Graph inherits from mxGraph
    +mxUtils.extend(Graph, mxGraph);
    +
    +/**
    + * Loads the stylesheet for this graph.
    + */
    +Graph.prototype.loadStylesheet = function()
    +{
    +    var node = mxUtils.load(STYLE_PATH + '/default.xml').getDocumentElement();
    +	var dec = new mxCodec(node.ownerDocument);
    +	dec.decode(node, this.getStylesheet());
    +};
    +
    +/**
    + * Inverts the elbow edge style without removing existing styles.
    + */
    +Graph.prototype.flipEdge = function(edge)
    +{
    +	if (edge != null)
    +	{
    +		var state = this.view.getState(edge);
    +		var style = (state != null) ? state.style : this.getCellStyle(edge);
    +		
    +		if (style != null)
    +		{
    +			var elbow = mxUtils.getValue(style, mxConstants.STYLE_ELBOW,
    +				mxConstants.ELBOW_HORIZONTAL);
    +			var value = (elbow == mxConstants.ELBOW_HORIZONTAL) ?
    +				mxConstants.ELBOW_VERTICAL : mxConstants.ELBOW_HORIZONTAL;
    +			this.setCellStyles(mxConstants.STYLE_ELBOW, value, [edge]);
    +		}
    +	}
    +};
    +
    +/**
    + * Disables folding for non-swimlanes.
    + */
    +Graph.prototype.isCellFoldable = function(cell)
    +{
    +	return this.foldingEnabled && this.isSwimlane(cell);
    +};
    +
    +/**
    + * Disables drill-down for non-swimlanes.
    + */
    +Graph.prototype.isValidRoot = function(cell)
    +{
    +	return this.isSwimlane(cell);
    +};
    +
    +/**
    + * Overrides createGroupCell to set the group style for new groups to 'group'.
    + */
    +Graph.prototype.createGroupCell = function()
    +{
    +	var group = mxGraph.prototype.createGroupCell.apply(this, arguments);
    +	group.setStyle('group');
    +	
    +	return group;
    +};
    +
    +/**
    + * Overrides tooltips to show position and size
    + */
    +Graph.prototype.getTooltipForCell = function(cell)
    +{
    +	var tip = '';
    +	
    +	if (this.getModel().isVertex(cell))
    +	{
    +		var geo = this.getCellGeometry(cell);
    +		
    +		var f2 = function(x)
    +		{
    +			return Math.round(parseFloat(x) * 100) / 100;
    +		};
    +		
    +		if (geo != null)
    +		{
    +			if (tip == null)
    +			{
    +				tip = '';
    +			}
    +			else if (tip.length > 0)
    +			{
    +				tip += '\n';
    +			}
    +			
    +			tip += 'X: ' + f2(geo.x) + '\nY: ' + f2(geo.y) + '\nW: ' + f2(geo.width) + '\nH: ' + f2(geo.height);
    +		}
    +	}
    +	else if (this.getModel().isEdge(cell))
    +	{
    +		tip = mxGraph.prototype.getTooltipForCell.apply(this, arguments);
    +	}
    +	
    +	return tip;
    +};
    +
    +/**
    + * Customized graph for touch devices.
    + */
    +Graph.prototype.initTouch = function()
    +{
    +	// Disables new connections via "hotspot"
    +	this.connectionHandler.marker.isEnabled = function()
    +	{
    +		return this.graph.connectionHandler.first != null;
    +	};
    +
    +	// Hides menu when editing starts
    +	this.addListener(mxEvent.START_EDITING, function(sender, evt)
    +	{
    +		this.panningHandler.hideMenu();
    +	});
    +
    +	// Context menu for touchstyle
    +	var showMenu = false;
    +	var menuCell = null;
    +
    +	// Checks if native hit detection did not return anything and does custom
    +	// hit detection for edges to take into account the tolerance
    +	this.updateMouseEvent = function(me)
    +	{
    +		mxGraph.prototype.updateMouseEvent.apply(this, arguments);
    +
    +		if (me.getState() == null)
    +		{
    +			var cell = this.getCellAt(me.graphX, me.graphY);
    +			
    +			if (this.getModel().isEdge(cell))
    +			{
    +				me.state = this.view.getState(cell);
    +				
    +				if (me.state != null && me.state.shape != null)
    +				{
    +					this.container.style.cursor = me.state.shape.node.style.cursor;
    +				}
    +			}
    +		}
    +		
    +		if (me.getState() == null)
    +		{
    +			this.container.style.cursor = 'default';
    +		}
    +	};
    +	
    +	// Handles popup menu on touch devices (tap selected cell)
    +	this.fireMouseEvent = function(evtName, me, sender)
    +	{
    +		if (evtName == mxEvent.MOUSE_DOWN)
    +		{
    +			if (!this.panningHandler.isMenuShowing())
    +			{
    +				menuCell = me.getCell();
    +				showMenu = (menuCell != null) ? this.isCellSelected(menuCell) : this.isSelectionEmpty();
    +			}
    +			else
    +			{
    +				showMenu = false;
    +				menuCell = null;
    +			}
    +		}
    +		else if (evtName == mxEvent.MOUSE_UP)
    +		{
    +			if (showMenu && !this.isEditing())
    +			{
    +				if (!this.panningHandler.isMenuShowing())
    +				{
    +					var x = mxEvent.getClientX(me.getEvent());
    +					var y = mxEvent.getClientY(me.getEvent());
    +					
    +					this.panningHandler.popup(x + 16, y, menuCell, me.getEvent());
    +				}
    +				
    +				showMenu = false;
    +				menuCell = null;
    +				me.consume();
    +				
    +				return;
    +			}
    +			
    +			showMenu = false;
    +			menuCell = null;
    +		}
    +
    +		mxGraph.prototype.fireMouseEvent.apply(this, arguments);
    +
    +		if (evtName == mxEvent.MOUSE_MOVE && me.isConsumed())
    +		{
    +			showMenu = false;
    +			menuCell = null;
    +		}
    +	};
    +};
    +
    +/**
    + * Registers shapes.
    + */
    +(function()
    +{
    +	// Touch-specific static overrides
    +	if (touchStyle)
    +	{
    +		// Sets constants for touch style
    +		mxConstants.HANDLE_SIZE = 16;
    +		mxConstants.LABEL_HANDLE_SIZE = 7;
    +		
    +		// Larger tolerance and grid for real touch devices
    +		if (mxClient.IS_TOUCH)
    +		{
    +			mxVertexHandler.prototype.tolerance = 4;
    +			mxEdgeHandler.prototype.tolerance = 6;
    +			Graph.prototype.tolerance = 14;
    +			Graph.prototype.gridSize = 20;
    +			
    +			// One finger pans (no rubberband selection) must start regardless of mouse button
    +			mxPanningHandler.prototype.selectOnPopup = false;
    +			mxPanningHandler.prototype.useLeftButtonForPanning = true;
    +			mxPanningHandler.prototype.isPanningTrigger = function(me)
    +			{
    +				var evt = me.getEvent();
    +			 	
    +			 	return (this.useLeftButtonForPanning && (this.ignoreCell || me.getState() == null)/* &&
    +			 			mxEvent.isLeftMouseButton(evt)*/) || (mxEvent.isControlDown(evt) &&
    +			 			mxEvent.isShiftDown(evt)) || (this.usePopupTrigger &&
    +			 		   	mxEvent.isPopupTrigger(evt));
    +			};
    +		}
    +		
    +		// Don't clear selection if multiple cells selected
    +		var graphHandlerMouseDown = mxGraphHandler.prototype.mouseDown;
    +		mxGraphHandler.prototype.mouseDown = function(sender, me)
    +		{
    +			graphHandlerMouseDown.apply(this, arguments);
    +
    +			if (this.graph.isCellSelected(me.getCell()) && this.graph.getSelectionCount() > 1)
    +			{
    +				this.delayedSelection = false;
    +			}
    +		};
    +
    +		// Changes order of panninghandler
    +		Graph.prototype.createHandlers = function(container)
    +		{
    +			this.tooltipHandler = new mxTooltipHandler(this);
    +			this.tooltipHandler.setEnabled(false);
    +			// Selection cells first
    +			this.selectionCellsHandler = new mxSelectionCellsHandler(this);
    +			this.panningHandler = new mxPanningHandler(this);
    +			this.panningHandler.panningEnabled = false;
    +			this.connectionHandler = new mxConnectionHandler(this);
    +			this.connectionHandler.setEnabled(false);
    +			this.graphHandler = new mxGraphHandler(this);
    +		};
    +
    +		// On connect the target is selected and we clone the cell of the preview edge for insert
    +		mxConnectionHandler.prototype.selectCells = function(edge, target)
    +		{
    +			if (touchStyle && target != null)
    +			{
    +				this.graph.setSelectionCell(target);
    +			}
    +			else
    +			{
    +				this.graph.setSelectionCell(edge);
    +			}
    +		};
    +
    +		// Overrides double click handling to use the tolerance
    +		// FIXME: Double click on edges in iPad needs focus on textarea
    +		var graphDblClick = mxGraph.prototype.dblClick;
    +		Graph.prototype.dblClick = function(evt, cell)
    +		{
    +			if (cell == null)
    +			{
    +				var pt = mxUtils.convertPoint(this.container,
    +					mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +				cell = this.getCellAt(pt.x, pt.y);
    +			}
    +
    +			graphDblClick.call(this, evt, cell);
    +		};
    +		
    +		
    +		// Sets the submenu icon
    +		mxPopupMenu.prototype.submenuImage = IMAGE_PATH + '/touch-submenu.png';
    +		
    +		// Rounded edge and vertex handles
    +		var touchHandle = new mxImage(IMAGE_PATH + '/touch-handle.png', 16, 16);
    +		mxVertexHandler.prototype.handleImage = touchHandle;
    +		mxEdgeHandler.prototype.handleImage = touchHandle;
    +		mxOutline.prototype.sizerImage = touchHandle;
    +		
    +		// Pre-fetches touch handle
    +		new Image().src = touchHandle.src;
    +
    +		// Adds connect icon to selected vertices
    +		var connectorSrc = IMAGE_PATH + '/touch-connector.png';
    +		
    +		var vertexHandlerInit = mxVertexHandler.prototype.init;
    +		mxVertexHandler.prototype.init = function()
    +		{
    +			vertexHandlerInit.apply(this, arguments);
    +			var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +
    +			// Only show connector image on one cell and do not show on containers
    +			if (showConnectorImg && this.graph.connectionHandler.isEnabled() &&
    +				this.graph.isCellConnectable(this.state.cell) &&
    +				!this.graph.isValidRoot(this.state.cell) &&
    +				this.graph.getSelectionCount() == 1)
    +			{
    +				this.connectorImg = mxUtils.createImage(connectorSrc);
    +				this.connectorImg.style.cursor = 'pointer';
    +				this.connectorImg.style.width = '29px';
    +				this.connectorImg.style.height = '29px';
    +				this.connectorImg.style.position = 'absolute';
    +				
    +				if (!mxClient.IS_TOUCH)
    +				{
    +					this.connectorImg.setAttribute('title', mxResources.get('connect'));
    +					mxEvent.redirectMouseEvents(this.connectorImg, this.graph, this.state);
    +				}
    +
    +				// Adds 2px tolerance
    +				this.connectorImg.style.padding = '2px';
    +				
    +				// Starts connecting on touch/mouse down
    +				mxEvent.addListener(this.connectorImg, md,
    +					mxUtils.bind(this, function(evt)
    +					{
    +						this.graph.panningHandler.hideMenu();
    +						var pt = mxUtils.convertPoint(this.graph.container,
    +								mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +						this.graph.connectionHandler.start(this.state, pt.x, pt.y);
    +						this.graph.isMouseDown = true;
    +						mxEvent.consume(evt);
    +					})
    +				);
    +
    +				this.graph.container.appendChild(this.connectorImg);
    +			}
    +
    +			this.redrawTools();
    +		};
    +		
    +		var vertexHandlerRedraw = mxVertexHandler.prototype.redraw;
    +		mxVertexHandler.prototype.redraw = function()
    +		{
    +			vertexHandlerRedraw.apply(this);
    +			this.redrawTools();
    +		};
    +		
    +		mxVertexHandler.prototype.redrawTools = function()
    +		{
    +			if (this.state != null && this.connectorImg != null)
    +			{
    +				// Top right for single-sizer
    +				if (mxVertexHandler.prototype.singleSizer)
    +				{
    +					this.connectorImg.style.left = (this.state.x + this.state.width - this.connectorImg.offsetWidth / 2) + 'px';
    +					this.connectorImg.style.top = (this.state.y - this.connectorImg.offsetHeight / 2) + 'px';
    +				}
    +				else
    +				{
    +					this.connectorImg.style.left = (this.state.x + this.state.width + mxConstants.HANDLE_SIZE / 2 + 4/* - 2 padding*/) + 'px';
    +					this.connectorImg.style.top = (this.state.y + (this.state.height - this.connectorImg.offsetHeight) / 2) + 'px';
    +				}
    +			}
    +		};
    +		
    +		var vertexHandlerDestroy = mxVertexHandler.prototype.destroy;
    +		mxVertexHandler.prototype.destroy = function(sender, me)
    +		{
    +			vertexHandlerDestroy.apply(this, arguments);
    +
    +			if (this.connectorImg != null)
    +			{
    +				this.connectorImg.parentNode.removeChild(this.connectorImg);
    +				this.connectorImg = null;
    +			}
    +		};
    +		
    +		// Pre-fetches touch connector
    +		new Image().src = connectorSrc;
    +	}
    +	else // not touchStyle
    +	{
    +		mxConnectionHandler.prototype.connectImage = new mxImage(IMAGE_PATH + '/connector.png', 15, 15);
    +	}
    +
    +	// Pre-fetches submenu image
    +	new Image().src = mxPopupMenu.prototype.submenuImage;
    +
    +	// Pre-fetches connect image
    +	if (mxConnectionHandler.prototype.connectImage != null)
    +	{
    +		new Image().src = mxConnectionHandler.prototype.connectImage.src;
    +	}
    +	
    +	// Cube Shape, supports size style
    +	function CubeShape() { };
    +	CubeShape.prototype = new mxCylinder();
    +	CubeShape.prototype.constructor = CubeShape;
    +	CubeShape.prototype.size = 20;
    +	CubeShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		var s = mxUtils.getValue(this.style, 'size', this.size);
    +		var dy = s * this.scale;
    +		var dx = s * this.scale;
    +
    +		if (isForeground)
    +		{
    +			path.moveTo(dx, h);
    +			path.lineTo(dx, dy);
    +			path.lineTo(0, 0);
    +			path.moveTo(dx, dy);
    +			path.lineTo(w, dy);
    +			path.end();
    +		}
    +		else
    +		{
    +			path.moveTo(0, 0);
    +			path.lineTo(w - dx, 0);
    +			path.lineTo(w, dy);
    +			path.lineTo(w, h);
    +			path.lineTo(dx, h);
    +			path.lineTo(0, h - dy);
    +			path.lineTo(0, 0);
    +			path.close();
    +			path.end();
    +		}
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['cube'] = CubeShape;
    +
    +	// Note Shape, supports size style
    +	function NoteShape() { };
    +	NoteShape.prototype = new mxCylinder();
    +	NoteShape.prototype.constructor = NoteShape;
    +	NoteShape.prototype.size = 30;
    +	NoteShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		var s = mxUtils.getValue(this.style, 'size', this.size);
    +		var dx = s * this.scale;
    +		var dy = s * this.scale;
    +
    +		if (isForeground)
    +		{
    +			path.moveTo(w - dx, 0);
    +			path.lineTo(w - dx, dy);
    +			path.lineTo(w, dy);
    +			path.end();
    +		}
    +		else
    +		{
    +			path.moveTo(0, 0);
    +			path.lineTo(w - dx, 0);
    +			path.lineTo(w, dy);
    +			path.lineTo(w, h);
    +			path.lineTo(0, h);
    +			path.lineTo(0, 0);
    +			path.close();
    +			path.end();
    +		}
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['note'] = NoteShape;
    +
    +	// Folder Shape, supports tabWidth, tabHeight styles
    +	function FolderShape() { };
    +	FolderShape.prototype = new mxCylinder();
    +	FolderShape.prototype.constructor = FolderShape;
    +	FolderShape.prototype.tabWidth = 60;
    +	FolderShape.prototype.tabHeight = 20;
    +	FolderShape.prototype.tabPosition = 'right';
    +	FolderShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		var tw = mxUtils.getValue(this.style, 'tabWidth', this.tabWidth);
    +		var th = mxUtils.getValue(this.style, 'tabHeight', this.tabHeight);
    +		var tp = mxUtils.getValue(this.style, 'tabPosition', this.tabPosition);
    +		var dx = tw * this.scale;
    +		var dy = th * this.scale;
    +
    +		if (isForeground)
    +		{
    +			if (tp == 'left')
    +			{
    +				path.moveTo(0, dy);
    +				path.lineTo(dx, dy);
    +			}
    +			// Right is default
    +			else
    +			{
    +				path.moveTo(w - dx, dy);
    +				path.lineTo(w, dy);
    +			}
    +			
    +			path.end();
    +		}
    +		else
    +		{
    +			if (tp == 'left')
    +			{
    +				path.moveTo(0, 0);
    +				path.lineTo(dx, 0);
    +				path.lineTo(dx, dy);
    +				path.lineTo(w, dy);
    +			}
    +			// Right is default
    +			else
    +			{
    +				path.moveTo(0, dy);
    +				path.lineTo(w - dx, dy);
    +				path.lineTo(w - dx, 0);
    +				path.lineTo(w, 0);
    +			}
    +			
    +			path.lineTo(w, h);
    +			path.lineTo(0, h);
    +			path.lineTo(0, dy);
    +			path.close();
    +			path.end();
    +		}
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['folder'] = FolderShape;
    +
    +	// Card Shape, supports size style
    +	function CardShape() { };
    +	CardShape.prototype = new mxCylinder();
    +	CardShape.prototype.constructor = CardShape;
    +	CardShape.prototype.size = 30;
    +	CardShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		var s = mxUtils.getValue(this.style, 'size', this.size);
    +		var dx = s * this.scale;
    +		var dy = s * this.scale;
    +
    +		if (!isForeground)
    +		{
    +			path.moveTo(dx, 0);
    +			path.lineTo(w, 0);
    +			path.lineTo(w, h);
    +			path.lineTo(0, h);
    +			path.lineTo(0, dy);
    +			path.lineTo(dx, 0);
    +			path.close();
    +			path.end();
    +		}
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['card'] = CardShape;
    +
    +	// Tape Shape, supports size style
    +	function TapeShape() { };
    +	TapeShape.prototype = new mxCylinder();
    +	TapeShape.prototype.constructor = TapeShape;
    +	TapeShape.prototype.size = 0.4;
    +	TapeShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		var s = mxUtils.getValue(this.style, 'size', this.size);
    +		var dy = h * s;
    +		var fy = 1.4;
    +
    +		if (!isForeground)
    +		{
    +			path.moveTo(0, dy / 2);
    +			path.quadTo(w / 4, dy * fy, w / 2, dy / 2);
    +			path.quadTo(w * 3 / 4, dy * (1 - fy), w, dy / 2);
    +			path.lineTo(w, h - dy / 2);
    +			path.quadTo(w * 3 / 4, h - dy * fy, w / 2, h - dy / 2);
    +			path.quadTo(w / 4, h - dy * (1 - fy), 0, h - dy / 2);
    +			path.lineTo(0, dy / 2);
    +			path.close();
    +			path.end();
    +		}
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['tape'] = TapeShape;
    +
    +	// Tape Shape, supports size style
    +	function PlusShape() { };
    +	PlusShape.prototype = new mxCylinder();
    +	PlusShape.prototype.constructor = PlusShape;
    +	PlusShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		var border = Math.min(w / 5, h / 5) + 1;
    +		
    +		if (isForeground)
    +		{
    +			path.moveTo(w / 2, border);
    +			path.lineTo(w / 2, h - border);
    +			path.moveTo(border, h / 2);
    +			path.lineTo(w - border, h / 2);
    +			path.end();
    +		}
    +		else
    +		{
    +			path.moveTo(0, 0);
    +			path.lineTo(w, 0);
    +			path.lineTo(w, h);
    +			path.lineTo(0, h);
    +			path.close();
    +		}
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['plus'] = PlusShape;
    +
    +	// Tape Shape, supports size style
    +	function MessageShape() { };
    +	MessageShape.prototype = new mxCylinder();
    +	MessageShape.prototype.constructor = MessageShape;
    +	MessageShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		if (isForeground)
    +		{
    +			path.moveTo(0, 0);
    +			path.lineTo(w / 2, h / 2);
    +			path.lineTo(w, 0);
    +			path.end();
    +		}
    +		else
    +		{
    +			path.moveTo(0, 0);
    +			path.lineTo(w, 0);
    +			path.lineTo(w, h);
    +			path.lineTo(0, h);
    +			path.close();
    +		}
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['message'] = MessageShape;
    +	
    +	// New Actor Shape
    +	function UmlActorShape() { };
    +	UmlActorShape.prototype = new mxCylinder();
    +	UmlActorShape.prototype.constructor = UmlActorShape;
    +	UmlActorShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		var width = w / 3;
    +		var height = h / 4;
    +		
    +		if (!isForeground)
    +		{
    +			path.moveTo(w / 2, height);
    +			path.curveTo(w / 2 - width, height, w / 2 - width, 0, w / 2, 0);
    +			path.curveTo(w / 2 + width, 0, w / 2 + width, height, w / 2, height);
    +			path.close();
    +		}
    +		else
    +		{
    +			path.moveTo(w / 2, height);
    +			path.lineTo(w / 2, 2 * h / 3);
    +			
    +			// Arms
    +			path.moveTo(w / 2, h / 3);
    +			path.lineTo(0, h / 3);
    +			path.moveTo(w / 2, h / 3);
    +			path.lineTo(w, h / 3);
    +			
    +			// Legs
    +			path.moveTo(w / 2, 2 * h / 3);
    +			path.lineTo(0, h);
    +			path.moveTo(w / 2, 2 * h / 3);
    +			path.lineTo(w, h);
    +			path.end();
    +		}
    +	};
    +
    +	// Replaces existing actor shape
    +	mxCellRenderer.prototype.defaultShapes['umlActor'] = UmlActorShape;
    +
    +	// New Actor Shape
    +	function LollipopShape() { };
    +	LollipopShape.prototype = new mxCylinder();
    +	LollipopShape.prototype.constructor = LollipopShape;
    +	LollipopShape.prototype.size = 10;
    +	LollipopShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		var ss = this.scale * mxUtils.getValue(this.style, 'size', this.size);
    +		var width = ss * 2 / 3;
    +		var height = ss;
    +		
    +		if (!isForeground)
    +		{
    +			path.moveTo(w / 2, height);
    +			path.curveTo(w / 2 - width, height, w / 2 - width, 0, w / 2, 0);
    +			path.curveTo(w / 2 + width, 0, w / 2 + width, height, w / 2, height);
    +			path.close();
    +		}
    +		else
    +		{
    +			path.moveTo(w / 2, height);
    +			path.lineTo(w / 2, h);
    +			path.end();
    +		}
    +	};
    +
    +	// Replaces existing actor shape
    +	mxCellRenderer.prototype.defaultShapes['lollipop'] = LollipopShape;
    +	
    +	// Folder Shape, supports tabWidth, tabHeight styles
    +	function ComponentShape() { };
    +	ComponentShape.prototype = new mxCylinder();
    +	ComponentShape.prototype.constructor = ComponentShape;
    +	ComponentShape.prototype.jettyWidth = 32;
    +	ComponentShape.prototype.jettyHeight = 12;
    +	ComponentShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +	{
    +		var jw = mxUtils.getValue(this.style, 'jettyWidth', this.jettyWidth);
    +		var jh = mxUtils.getValue(this.style, 'jettyHeight', this.jettyHeight);
    +		var dx = jw * this.scale;
    +		var dy = jh * this.scale;
    +		var x0 = dx / 2;
    +		var x1 = x0 + dx / 2;
    +		var y0 = 0.3 * h - dy / 2;
    +		var y1 = 0.7 * h - dy / 2;
    +
    +		if (isForeground)
    +		{
    +			path.moveTo(x0, y0);
    +			path.lineTo(x1, y0);
    +			path.lineTo(x1, y0 + dy);
    +			path.lineTo(x0, y0 + dy);
    +			path.moveTo(x0, y1);
    +			path.lineTo(x1, y1);
    +			path.lineTo(x1, y1 + dy);
    +			path.lineTo(x0, y1 + dy);
    +			path.end();
    +		}
    +		else
    +		{
    +			path.moveTo(x0, 0);
    +			path.lineTo(w, 0);
    +			path.lineTo(w, h);
    +			path.lineTo(x0, h);
    +			path.lineTo(x0, y1 + dy);
    +			path.lineTo(0, y1 + dy);
    +			path.lineTo(0, y1);
    +			path.lineTo(x0, y1);
    +			path.lineTo(x0, y0 + dy);
    +			path.lineTo(0, y0 + dy);
    +			path.lineTo(0, y0);
    +			path.lineTo(x0, y0);
    +			path.close();
    +			path.end();
    +		}
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['component'] = ComponentShape;
    +	
    +	// State Shapes derives from double ellipse
    +	function StateShape() { };
    +	StateShape.prototype = new mxDoubleEllipse();
    +	StateShape.prototype.constructor = StateShape;
    +	StateShape.prototype.outerStroke = true;
    +	StateShape.prototype.createSvg = function()
    +	{
    +		var g = mxDoubleEllipse.prototype.createSvg.apply(this, arguments);
    +		this.foreground.setAttribute('fill', this.innerNode.getAttribute('fill'));
    +		this.foreground.setAttribute('stroke', this.stroke);
    +		this.innerNode.setAttribute('fill', 'none');
    +		this.innerNode.setAttribute('stroke', (this.outerStroke) ? this.stroke : 'none');
    +		
    +		return g;
    +	};
    +	StateShape.prototype.redrawSvg = function()
    +	{
    +		mxDoubleEllipse.prototype.redrawSvg.apply(this, arguments);
    +		
    +		// Workaround for visible background
    +		this.innerNode.setAttribute('fill', 'none');
    +		
    +		if (this.shadowNode != null)
    +		{
    +			this.shadowNode.setAttribute('cx', this.foreground.getAttribute('cx'));
    +			this.shadowNode.setAttribute('cy', this.foreground.getAttribute('cy'));
    +			this.shadowNode.setAttribute('rx', this.foreground.getAttribute('rx'));
    +			this.shadowNode.setAttribute('ry', this.foreground.getAttribute('ry'));
    +		}
    +	};
    +	StateShape.prototype.createVml = function()
    +	{
    +		var result = mxDoubleEllipse.prototype.createVml.apply(this, arguments);
    +		
    +		if (this.fillNode != null)
    +		{
    +			this.foreground.appendChild(this.fillNode);
    +			this.foreground.filled = 'true';
    +		}
    +		
    +		this.background.filled = 'false';
    +		this.background.stroked = (this.outerStroke) ? 'true' : 'false';
    +		
    +		if (this.shadowNode != null)
    +		{
    +			this.foreground.appendChild(this.shadowNode);
    +		}
    +		
    +		return result;
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['endState'] = StateShape;
    +
    +	function StartStateShape() { };
    +	StartStateShape.prototype = new StateShape();
    +	StartStateShape.prototype.constructor = StartStateShape;
    +	StartStateShape.prototype.outerStroke = false;
    +	
    +	mxCellRenderer.prototype.defaultShapes['startState'] = StartStateShape;
    +
    +	// Image export for state shapes
    +	var imageExportInitShapes = mxImageExport.prototype.initShapes;
    +	mxImageExport.prototype.initShapes = function()
    +	{
    +		imageExportInitShapes.apply(this, arguments);
    +
    +		function createStateShape(outerStroke)
    +		{
    +			return {
    +				drawShape: function(canvas, state, bounds, background)
    +				{
    +					var x = bounds.x;
    +					var y = bounds.y;
    +					var w = bounds.width;
    +					var h = bounds.height;
    +					
    +					if (background)
    +					{
    +						var inset = Math.min(4, Math.min(w / 5, h / 5));
    +						x += inset;
    +						y += inset;
    +						w -= 2 * inset;
    +						h -= 2 * inset;
    +						
    +						if (w > 0 && h > 0)
    +						{
    +							canvas.ellipse(x, y, w, h);
    +						}
    +						
    +						return true;
    +					}
    +					else
    +					{
    +						canvas.fillAndStroke();
    +		
    +						if (outerStroke)
    +						{
    +							canvas.ellipse(x, y, w, h);
    +							canvas.stroke();
    +						}
    +					}
    +				}
    +			};
    +		};
    +		
    +		this.shapes['endState'] = createStateShape(true);
    +		this.shapes['startState'] = createStateShape(false);
    +	};
    +
    +	// Custom edge shape
    +	function LinkShape() { };
    +	LinkShape.prototype = new mxArrow();
    +	LinkShape.prototype.constructor = LinkShape;
    +	LinkShape.prototype.enableFill = false;
    +	LinkShape.prototype.addPipe = true;
    +	
    +	LinkShape.prototype.redrawPath = function(path, x, y, w, h)
    +	{
    +		// All points are offset
    +		path.translate.x -= x;
    +		path.translate.y -= y;
    +
    +		// Geometry of arrow
    +		var width = 10 * this.scale;
    +
    +		// Base vector (between end points)
    +		var p0 = this.points[0];
    +		var pe = this.points[this.points.length - 1];
    +		
    +		var dx = pe.x - p0.x;
    +		var dy = pe.y - p0.y;
    +		var dist = Math.sqrt(dx * dx + dy * dy);
    +		var length = dist;
    +		
    +		// Computes the norm and the inverse norm
    +		var nx = dx / dist;
    +		var ny = dy / dist;
    +		var basex = length * nx;
    +		var basey = length * ny;
    +		var floorx = width * ny/3;
    +		var floory = -width * nx/3;
    +		
    +		// Computes points
    +		var p0x = p0.x - floorx / 2;
    +		var p0y = p0.y - floory / 2;
    +		var p1x = p0x + floorx;
    +		var p1y = p0y + floory;
    +		var p2x = p1x + basex;
    +		var p2y = p1y + basey;
    +		var p3x = p2x + floorx;
    +		var p3y = p2y + floory;
    +		// p4 not needed
    +		var p5x = p3x - 3 * floorx;
    +		var p5y = p3y - 3 * floory;
    +		
    +		// LATER: Add support for n points
    +		path.moveTo(p1x, p1y);
    +		path.lineTo(p2x, p2y);
    +		path.moveTo(p5x + floorx, p5y + floory);
    +		path.lineTo(p0x, p0y);
    +		path.end();
    +	};
    +
    +	mxCellRenderer.prototype.defaultShapes['link'] = LinkShape;
    +	
    +	// Defines custom marker
    +	mxMarker.markers['dash'] = function(node, type, pe, nx, ny, strokewidth, size, scale, isVml)
    +	{
    +		nx = nx * (size + strokewidth);
    +		ny = ny * (size + strokewidth);
    +		
    +		if (isVml)
    +		{
    +			node.setAttribute('path', 'm' + Math.floor(pe.x - nx / 2- ny / 2) + ' ' + Math.floor(pe.y - ny / 2 + nx / 2) +
    +				' l ' + Math.floor(pe.x + ny / 2 - 3 * nx / 2) + ' ' + Math.floor(pe.y - 3 * ny / 2 - nx / 2) +
    +				' e');
    +		}
    +		else
    +		{
    +			node.setAttribute('d', 'M ' + (pe.x - nx / 2 - ny / 2) + ' ' + (pe.y - ny / 2 + nx / 2) +
    +					' L ' + (pe.x + ny / 2 - 3 * nx / 2) + ' ' + (pe.y - 3 * ny / 2 - nx / 2) +
    +					' z');
    +		}
    +		
    +		// Returns the offset for the edge
    +		return new mxPoint(0, 0);
    +	};
    +
    +	// Registers the marker in mxImageExport
    +	var mxImageExportInitMarkers = mxImageExport.prototype.initMarkers;
    +	mxImageExport.prototype.initMarkers = function()
    +	{
    +		mxImageExportInitMarkers.apply(this, arguments);
    +		
    +		this.markers['dash'] = function(canvas, state, type, pe, unitX, unitY, size, source, sw)
    +		{
    +			nx = unitX * (size + sw);
    +			ny = unitY * (size + sw);
    +			
    +			canvas.begin();
    +			canvas.moveTo(pe.x - nx / 2 - ny / 2, pe.y - ny / 2 + nx / 2);
    +			canvas.lineTo(pe.x + ny / 2 - 3 * nx / 2, pe.y - 3 * ny / 2 - nx / 2);
    +			canvas.stroke();
    +			
    +			// Returns the offset for the edge
    +			return new mxPoint(0, 0);
    +		};
    +	};
    +
    +	// Enables crisp rendering in SVG except for connectors, actors, cylinder,
    +	// ellipses must be enabled after rendering the sidebar items
    +	mxShape.prototype.crisp = true;
    +	mxShape.prototype.roundedCrispSvg = false;
    +	mxActor.prototype.crisp = false;
    +	mxCylinder.prototype.crisp = false;
    +	mxEllipse.prototype.crisp = false;
    +	mxDoubleEllipse.prototype.crisp = false;
    +	mxConnector.prototype.crisp = false;
    +	FolderShape.prototype.crisp = true;
    +	ComponentShape.prototype.crisp = true;
    +})();
    +
    diff --git a/javascript/examples/grapheditor/www/js/Menus.js b/javascript/examples/grapheditor/www/js/Menus.js
    new file mode 100644
    index 000000000..ab676cd5e
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/js/Menus.js
    @@ -0,0 +1,666 @@
    +/**
    + * $Id: Menus.js,v 1.40 2012-05-15 12:49:55 gaudenz Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +/**
    + * Constructs a new graph editor
    + */
    +Menus = function(editorUi)
    +{
    +	this.editorUi = editorUi;
    +	this.menus = new Object();
    +	this.init();
    +	
    +	// Pre-fetches checkmark image
    +	new Image().src = IMAGE_PATH + '/checkmark.gif';
    +};
    +
    +/**
    + * Adds the label menu items to the given menu and parent.
    + */
    +Menus.prototype.init = function()
    +{
    +	var graph = this.editorUi.editor.graph;
    +	
    +	this.put('fontFamily', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		var fonts = ['Helvetica', 'Verdana', 'Times New Roman', 'Garamond', 'Comic Sans MS',
    +		             'Courier New', 'Georgia', 'Lucida Console', 'Tahoma'];
    +
    +		for (var i = 0; i < fonts.length; i++)
    +		{
    +			var tr = this.styleChange(menu, fonts[i], [mxConstants.STYLE_FONTFAMILY], [fonts[i]], null, parent);
    +			tr.firstChild.nextSibling.style.fontFamily = fonts[i];
    +		}
    +		
    +		menu.addSeparator(parent);
    +		this.promptChange(menu, mxResources.get('custom'), '', mxConstants.DEFAULT_FONTFAMILY, mxConstants.STYLE_FONTFAMILY, parent);
    +	})));
    +	this.put('fontSize', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		var sizes = [6, 8, 9, 10, 11, 12, 14, 18, 24, 36, 48, 72];
    +		
    +		for (var i = 0; i < sizes.length; i++)
    +		{
    +			this.styleChange(menu, sizes[i], [mxConstants.STYLE_FONTSIZE], [sizes[i]], null, parent);
    +		}
    +
    +		menu.addSeparator(parent);
    +		this.promptChange(menu, mxResources.get('custom'), '(pt)', '12', mxConstants.STYLE_FONTSIZE, parent);
    +	})));
    +	this.put('linewidth', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		var sizes = [1, 2, 3, 4, 8, 12, 16, 24];
    +		
    +		for (var i = 0; i < sizes.length; i++)
    +		{
    +			this.styleChange(menu, sizes[i] + 'px', [mxConstants.STYLE_STROKEWIDTH], [sizes[i]], null, parent);
    +		}
    +		
    +		menu.addSeparator(parent);
    +		this.promptChange(menu, mxResources.get('custom'), '(px)', '1', mxConstants.STYLE_STROKEWIDTH, parent);
    +	})));
    +	this.put('line', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.styleChange(menu, mxResources.get('straight'), [mxConstants.STYLE_EDGE], [null], null, parent);
    +		this.styleChange(menu, mxResources.get('entityRelation'), [mxConstants.STYLE_EDGE], ['entityRelationEdgeStyle'], null, parent);
    +		menu.addSeparator(parent);
    +		this.styleChange(menu, mxResources.get('horizontal'), [mxConstants.STYLE_EDGE, mxConstants.STYLE_ELBOW], ['elbowEdgeStyle', 'horizontal'], null, parent);
    +		this.styleChange(menu, mxResources.get('vertical'), [mxConstants.STYLE_EDGE, mxConstants.STYLE_ELBOW], ['elbowEdgeStyle', 'vertical'], null, parent);
    +		menu.addSeparator(parent);
    +		this.styleChange(menu, mxResources.get('plain'), [mxConstants.STYLE_EDGE], ['segmentEdgeStyle'], null, parent);
    +		this.styleChange(menu, mxResources.get('orthogonal'), [mxConstants.STYLE_EDGE], ['orthogonalEdgeStyle'], null, parent);
    +	})));
    +	this.put('lineend', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.styleChange(menu, mxResources.get('classic'), [mxConstants.STYLE_ENDARROW], [mxConstants.ARROW_CLASSIC], null, parent);
    +		this.styleChange(menu, mxResources.get('openArrow'), [mxConstants.STYLE_ENDARROW], [mxConstants.ARROW_OPEN], null, parent);
    +		this.styleChange(menu, mxResources.get('block') , [mxConstants.STYLE_ENDARROW], [mxConstants.ARROW_BLOCK], null, parent);
    +		menu.addSeparator(parent);
    +		this.styleChange(menu, mxResources.get('oval'), [mxConstants.STYLE_ENDARROW], [mxConstants.ARROW_OVAL], null, parent);
    +		this.styleChange(menu, mxResources.get('diamond'), [mxConstants.STYLE_ENDARROW], [mxConstants.ARROW_DIAMOND], null, parent);
    +		this.styleChange(menu, mxResources.get('diamondThin'), [mxConstants.STYLE_ENDARROW], [mxConstants.ARROW_DIAMOND_THIN], null, parent);
    +		menu.addSeparator(parent);
    +		this.styleChange(menu, mxResources.get('none'), [mxConstants.STYLE_ENDARROW], [mxConstants.NONE], null, parent);
    +		menu.addSeparator(parent);
    +		menu.addItem(mxResources.get('transparent'), null, function() { graph.toggleCellStyles('endFill', true); }, parent, null, true);
    +		menu.addSeparator(parent);
    +		this.promptChange(menu, mxResources.get('size'), '(px)', mxConstants.DEFAULT_MARKERSIZE, mxConstants.STYLE_ENDSIZE, parent);
    +	})));
    +	this.put('linestart', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.styleChange(menu, mxResources.get('classic'), [mxConstants.STYLE_STARTARROW], [mxConstants.ARROW_CLASSIC], null, parent);
    +		this.styleChange(menu, mxResources.get('openArrow'), [mxConstants.STYLE_STARTARROW], [mxConstants.ARROW_OPEN], null, parent);
    +		this.styleChange(menu, mxResources.get('block'), [mxConstants.STYLE_STARTARROW], [mxConstants.ARROW_BLOCK], null, parent);
    +		menu.addSeparator(parent);
    +		this.styleChange(menu, mxResources.get('oval'), [mxConstants.STYLE_STARTARROW], [mxConstants.ARROW_OVAL], null, parent);
    +		this.styleChange(menu, mxResources.get('diamond'), [mxConstants.STYLE_STARTARROW], [mxConstants.ARROW_DIAMOND], null, parent);
    +		this.styleChange(menu, mxResources.get('diamondThin'), [mxConstants.STYLE_STARTARROW], [mxConstants.ARROW_DIAMOND_THIN], null, parent);
    +		menu.addSeparator(parent);
    +		this.styleChange(menu, mxResources.get('none'), [mxConstants.STYLE_STARTARROW], [mxConstants.NONE], null, parent);
    +		menu.addSeparator(parent);
    +		menu.addItem(mxResources.get('transparent'), null, function() { graph.toggleCellStyles('startFill', true); }, parent, null, true);
    +		menu.addSeparator(parent);
    +		this.promptChange(menu, mxResources.get('size'), '(px)', mxConstants.DEFAULT_MARKERSIZE, mxConstants.STYLE_STARTSIZE, parent);
    +	})));
    +	this.put('spacing', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		// Uses shadow action and line menu to analyze selection
    +		var vertexSelected = this.editorUi.actions.get('shadow').enabled;
    +		var edgeSelected = this.get('line').enabled;
    +		
    +		if (vertexSelected || menu.showDisabled)
    +		{
    +			this.promptChange(menu, mxResources.get('top'), '(px)', '0', mxConstants.STYLE_SPACING_TOP, parent, vertexSelected);
    +			this.promptChange(menu, mxResources.get('right'), '(px)', '0', mxConstants.STYLE_SPACING_RIGHT, parent, vertexSelected);
    +			this.promptChange(menu, mxResources.get('bottom'), '(px)', '0', mxConstants.STYLE_SPACING_BOTTOM, parent, vertexSelected);
    +			this.promptChange(menu, mxResources.get('left'), '(px)', '0', mxConstants.STYLE_SPACING_LEFT, parent, vertexSelected);
    +			menu.addSeparator(parent);
    +			this.promptChange(menu, mxResources.get('global'), '(px)', '0', mxConstants.STYLE_SPACING, parent, vertexSelected);
    +			this.promptChange(menu, mxResources.get('perimeter'), '(px)', '0', mxConstants.STYLE_PERIMETER_SPACING, parent, vertexSelected);
    +		}
    +
    +		if (edgeSelected || menu.showDisabled)
    +		{
    +			menu.addSeparator(parent);
    +			this.promptChange(menu, mxResources.get('sourceSpacing'), '(px)', '0', mxConstants.STYLE_SOURCE_PERIMETER_SPACING, parent, edgeSelected);
    +			this.promptChange(menu, mxResources.get('targetSpacing'), '(px)', '0', mxConstants.STYLE_TARGET_PERIMETER_SPACING, parent, edgeSelected);
    +		}
    +	})));
    +	this.put('format', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addSubmenu('spacing', menu, parent);
    +		this.addMenuItems(menu, ['-', 'fillColor'], parent);
    +		this.addSubmenu('gradient', menu, parent);
    +		this.addMenuItems(menu, ['-', 'shadow'], parent);
    +		this.promptChange(menu, mxResources.get('opacity'), '(%)', '100', mxConstants.STYLE_OPACITY, parent, this.get('format').enabled);
    +		this.addMenuItems(menu, ['-', 'rounded', 'dashed', '-', 'strokeColor'], parent);
    +		this.addSubmenu('linewidth', menu, parent);
    +		this.addMenuItems(menu, ['-'], parent);
    +		this.addSubmenu('line', menu, parent);
    +		this.addMenuItems(menu, ['-'], parent);
    +		this.addSubmenu('linestart', menu, parent);
    +		this.addSubmenu('lineend', menu, parent);
    +		menu.addSeparator(parent);
    +		this.addMenuItem(menu, 'style', parent);
    +	})));
    +	this.put('gradient', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addMenuItems(menu, ['gradientColor', '-'], parent);
    +		this.styleChange(menu, mxResources.get('north'), [mxConstants.STYLE_GRADIENT_DIRECTION], [mxConstants.DIRECTION_NORTH], null, parent);
    +		this.styleChange(menu, mxResources.get('east'), [mxConstants.STYLE_GRADIENT_DIRECTION], [mxConstants.DIRECTION_EAST], null, parent);
    +		this.styleChange(menu, mxResources.get('south'), [mxConstants.STYLE_GRADIENT_DIRECTION], [mxConstants.DIRECTION_SOUTH], null, parent);
    +		this.styleChange(menu, mxResources.get('west'), [mxConstants.STYLE_GRADIENT_DIRECTION], [mxConstants.DIRECTION_WEST], null, parent);
    +	})));
    +	this.put('text', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addMenuItem(menu, 'fontColor', parent);
    +		menu.addSeparator(parent);
    +		this.addSubmenu('fontFamily', menu, parent);
    +		this.addSubmenu('fontSize', menu, parent);
    +		
    +		this.addMenuItems(menu, ['-', 'bold', 'italic', 'underline', '-'], parent);
    +	    this.addSubmenu('alignment', menu, parent);
    +	    this.addSubmenu('position', menu, parent);
    +		this.addMenuItems(menu, ['-', 'backgroundColor', 'borderColor', '-'], parent);
    +		
    +		var enabled = this.get('text').enabled;
    +		this.promptChange(menu, mxResources.get('textOpacity'), '(%)', '100', mxConstants.STYLE_TEXT_OPACITY, parent, enabled);
    +		menu.addItem(mxResources.get('hide'), null, function() { graph.toggleCellStyles(mxConstants.STYLE_NOLABEL, false); }, parent, null, enabled);
    +		menu.addItem(mxResources.get('rotate'), null, function() { graph.toggleCellStyles(mxConstants.STYLE_HORIZONTAL, true); }, parent, null, enabled);
    +	})));
    +	this.put('alignment', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.styleChange(menu, mxResources.get('leftAlign'), [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_LEFT], null, parent);
    +		this.styleChange(menu, mxResources.get('center'), [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_CENTER], null, parent);
    +		this.styleChange(menu, mxResources.get('rightAlign'), [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_RIGHT], null, parent);
    +		menu.addSeparator(parent);
    +		this.styleChange(menu, mxResources.get('topAlign'), [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_TOP], null, parent);
    +		this.styleChange(menu, mxResources.get('middle'), [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_MIDDLE], null, parent);
    +		this.styleChange(menu, mxResources.get('bottomAlign'), [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_BOTTOM], null, parent);
    +	})));
    +	this.put('position', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +	    this.styleChange(menu, mxResources.get('left'), [mxConstants.STYLE_LABEL_POSITION, mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_LEFT, mxConstants.ALIGN_RIGHT], null, parent);
    +	    this.styleChange(menu, mxResources.get('center'), [mxConstants.STYLE_LABEL_POSITION, mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_CENTER, mxConstants.ALIGN_CENTER], null, parent);
    +	    this.styleChange(menu, mxResources.get('right'), [mxConstants.STYLE_LABEL_POSITION, mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_RIGHT, mxConstants.ALIGN_LEFT], null, parent);
    +		menu.addSeparator(parent);
    +		this.styleChange(menu, mxResources.get('top'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_TOP, mxConstants.ALIGN_BOTTOM], null, parent);
    +		this.styleChange(menu, mxResources.get('middle'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_MIDDLE, mxConstants.ALIGN_MIDDLE], null, parent);
    +		this.styleChange(menu, mxResources.get('bottom'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_BOTTOM, mxConstants.ALIGN_TOP], null, parent);
    +	})));
    +	this.put('direction', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.styleChange(menu, mxResources.get('north'), [mxConstants.STYLE_DIRECTION], [mxConstants.DIRECTION_NORTH], null, parent);
    +		this.styleChange(menu, mxResources.get('east'), [mxConstants.STYLE_DIRECTION], [mxConstants.DIRECTION_EAST], null, parent);
    +		this.styleChange(menu, mxResources.get('south'), [mxConstants.STYLE_DIRECTION], [mxConstants.DIRECTION_SOUTH], null, parent);
    +		this.styleChange(menu, mxResources.get('west'), [mxConstants.STYLE_DIRECTION], [mxConstants.DIRECTION_WEST], null, parent);
    +		menu.addSeparator(parent);
    +		menu.addItem(mxResources.get('flipH'), null, function() { graph.toggleCellStyles(mxConstants.STYLE_STENCIL_FLIPH, false); }, parent);
    +		menu.addItem(mxResources.get('flipV'), null, function() { graph.toggleCellStyles(mxConstants.STYLE_STENCIL_FLIPV, false); }, parent);
    +		this.addMenuItem(menu, 'rotation', parent);
    +	})));
    +	this.put('align', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		menu.addItem(mxResources.get('leftAlign'), null, function() { graph.alignCells(mxConstants.ALIGN_LEFT); }, parent);
    +		menu.addItem(mxResources.get('center'), null, function() { graph.alignCells(mxConstants.ALIGN_CENTER); }, parent);
    +		menu.addItem(mxResources.get('rightAlign'), null, function() { graph.alignCells(mxConstants.ALIGN_RIGHT); }, parent);
    +		menu.addSeparator(parent);
    +		menu.addItem(mxResources.get('topAlign'), null, function() { graph.alignCells(mxConstants.ALIGN_TOP); }, parent);
    +		menu.addItem(mxResources.get('middle'), null, function() { graph.alignCells(mxConstants.ALIGN_MIDDLE); }, parent);
    +		menu.addItem(mxResources.get('bottomAlign'), null, function() { graph.alignCells(mxConstants.ALIGN_BOTTOM); }, parent);
    +	})));
    +	this.put('layout', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		menu.addItem(mxResources.get('horizontalTree'), null, mxUtils.bind(this, function()
    +		{
    +			var layout = new mxCompactTreeLayout(graph, true);
    +			layout.edgeRouting = false;
    +			layout.levelDistance = 30;
    +    		this.editorUi.executeLayout(layout, graph.getDefaultParent(), graph.getSelectionCell(), true);
    +		}), parent);
    +		menu.addItem(mxResources.get('verticalTree'), null, mxUtils.bind(this, function()
    +		{
    +			var layout = new mxCompactTreeLayout(graph, false);
    +			layout.edgeRouting = false;
    +			layout.levelDistance = 30;
    +    		this.editorUi.executeLayout(layout, graph.getDefaultParent(), graph.getSelectionCell(), true);
    +		}), parent);
    +	})));
    +	this.put('navigation', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addMenuItems(menu, ['home', '-', 'exitGroup', 'enterGroup', '-', 'expand', 'collapse'], parent);
    +	})));
    +	this.put('arrange', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addMenuItems(menu, ['toFront', 'toBack', '-'], parent);
    +		this.addSubmenu('direction', menu, parent);
    +		this.addSubmenu('layout', menu, parent);
    +		this.addSubmenu('align', menu, parent);
    +		menu.addSeparator(parent);
    +		this.addSubmenu('navigation', menu, parent);
    +		this.addMenuItems(menu, ['-', 'group', 'ungroup', 'removeFromGroup', '-', 'autosize', 'rotate'], parent);
    +	})));
    +	this.put('view', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addMenuItems(menu, ['actualSize'], parent);
    +		menu.addSeparator();
    +		var scales = [0.25, 0.5, 0.75, 1, 2, 4];
    +		
    +		for (var i = 0; i < scales.length; i++)
    +		{
    +			(function(scale)
    +			{
    +				menu.addItem((scale * 100) + '%', null, function() { graph.getView().setScale(scale); }, parent);
    +			})(scales[i]);
    +		}
    +		
    +		this.addMenuItems(menu, ['zoomIn', 'zoomOut', '-', 'fitWindow', 'customZoom'], parent);
    +	})));
    +	this.put('file', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addMenuItems(menu, ['new', 'open', '-', 'save', 'saveAs', '-', 'export', 'editFile', '-', 'print'], parent);
    +	})));
    +	this.put('edit', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addMenuItems(menu, ['undo', 'redo', '-', 'cut', 'copy', 'paste', 'delete', '-',
    +		                         'duplicate', '-', 'selectVertices', 'selectEdges', 'selectAll']);
    +	})));
    +	this.put('options', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addMenuItems(menu, ['grid', 'guides', 'tooltips', '-', 'connect', 'navigation',
    +		                         'scrollbars', '-', 'pageView', '-', 'pageBackgroundColor']);
    +	})));
    +	this.put('help', new Menu(mxUtils.bind(this, function(menu, parent)
    +	{
    +		this.addMenuItems(menu, ['help', '-', 'about']);
    +	})));
    +};
    +
    +/**
    + * Adds the label menu items to the given menu and parent.
    + */
    +Menus.prototype.put = function(name, menu)
    +{
    +	this.menus[name] = menu;
    +};
    +
    +/**
    + * Adds the label menu items to the given menu and parent.
    + */
    +Menus.prototype.get = function(name)
    +{
    +	return this.menus[name];
    +};
    +
    +/**
    + * Adds the given submenu.
    + */
    +Menus.prototype.addSubmenu = function(name, menu, parent)
    +{
    +	var enabled = this.get(name).enabled;
    +	
    +	if (menu.showDisabled || enabled)
    +	{
    +		var submenu = menu.addItem(mxResources.get(name), null, null, parent, null, enabled);
    +		this.addMenu(name, menu, submenu);
    +	}
    +};
    +
    +/**
    + * Adds the label menu items to the given menu and parent.
    + */
    +Menus.prototype.addMenu = function(name, popupMenu, parent)
    +{
    +	var menu = this.get(name);
    +	
    +	if (menu != null && (popupMenu.showDisabled || menu.enabled))
    +	{
    +		this.get(name).execute(popupMenu, parent);
    +	}
    +};
    +
    +/**
    + * Adds a style change item to the given menu.
    + */
    +Menus.prototype.styleChange = function(menu, label, keys, values, sprite, parent)
    +{
    +	return menu.addItem(label, null, mxUtils.bind(this, function()
    +	{
    +		var graph = this.editorUi.editor.graph;
    +		
    +		graph.getModel().beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < keys.length; i++)
    +			{
    +				graph.setCellStyles(keys[i], values[i]);
    +			}
    +		}
    +		finally
    +		{
    +			graph.getModel().endUpdate();
    +		}
    +	}), parent, sprite);
    +};
    +
    +/**
    + * Adds a style change item with a prompt to the given menu.
    + */
    +Menus.prototype.promptChange = function(menu, label, hint, defaultValue, key, parent, enabled)
    +{
    +	return menu.addItem(label, null, mxUtils.bind(this, function()
    +	{
    +		var graph = this.editorUi.editor.graph;
    +		var value = defaultValue;
    +    	var state = graph.getView().getState(graph.getSelectionCell());
    +    	
    +    	if (state != null)
    +    	{
    +    		value = state.style[key] || value;
    +    	}
    +		
    +		value = mxUtils.prompt(mxResources.get('enterValue') + ((hint.length > 0) ? (' ' + hint) : ''), value);
    +
    +    	if (value != null && value.length > 0)
    +    	{
    +        	graph.setCellStyles(key, value);
    +        }
    +	}), parent, null, enabled);
    +};
    +
    +/**
    + * Adds a handler for showing a menu in the given element.
    + */
    +Menus.prototype.pickColor = function(key)
    +{
    +	if (this.colorDialog == null)
    +	{
    +		this.colorDialog = new ColorDialog(this.editorUi);
    +	}
    +
    +	this.colorDialog.currentColorKey = key;
    +	var graph = this.editorUi.editor.graph;
    +	var state = graph.getView().getState(graph.getSelectionCell());
    +	var color = 'none';
    +	
    +	if (state != null)
    +	{
    +		color = state.style[key] || color;
    +	}
    +	
    +	if (color == 'none')
    +	{
    +		color = 'ffffff';
    +		this.colorDialog.picker.fromString('ffffff');
    +		this.colorDialog.colorInput.value = 'none';
    +	}
    +	else
    +	{
    +		this.colorDialog.picker.fromString(color);
    +	}
    +
    +	this.editorUi.showDialog(this.colorDialog.container, 220, 360, true, false);
    +	
    +	if (!mxClient.IS_TOUCH)
    +	{
    +		this.colorDialog.colorInput.focus();
    +	}
    +};
    +
    +/**
    + * Creates the keyboard event handler for the current graph and history.
    + */
    +Menus.prototype.addMenuItem = function(menu, key, parent)
    +{
    +	var action = this.editorUi.actions.get(key);
    +
    +	if (action != null && (menu.showDisabled || action.enabled))
    +	{
    +		var item = menu.addItem(action.label, null, action.funct, parent, null, action.enabled);
    +		
    +		// Adds checkmark image
    +		if (action.toggleAction && action.isSelected())
    +		{
    +			this.addCheckmark(item);
    +		}
    +
    +		this.addShortcut(item, action);
    +		
    +		return item;
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Adds a checkmark to the given menuitem.
    + */
    +Menus.prototype.addShortcut = function(item, action)
    +{
    +	if (action.shortcut != null)
    +	{
    +		var td = item.firstChild.nextSibling.nextSibling;
    +		var span = document.createElement('span');
    +		span.style.color = 'gray';
    +		mxUtils.write(span, action.shortcut);
    +		td.appendChild(span);
    +	}
    +};
    +
    +/**
    + * Adds a checkmark to the given menuitem.
    + */
    +Menus.prototype.addCheckmark = function(item)
    +{
    +	var td = item.firstChild.nextSibling;
    +	td.style.backgroundImage = 'url(' + IMAGE_PATH + '/checkmark.gif)';
    +	td.style.backgroundRepeat = 'no-repeat';
    +	td.style.backgroundPosition = '2px 50%';
    +	td.style.width = '20px';
    +};
    +
    +/**
    + * Creates the keyboard event handler for the current graph and history.
    + */
    +Menus.prototype.addMenuItems = function(menu, keys, parent)
    +{
    +	for (var i = 0; i < keys.length; i++)
    +	{
    +		if (keys[i] == '-')
    +		{
    +			menu.addSeparator(parent);
    +		}
    +		else
    +		{
    +			this.addMenuItem(menu, keys[i], parent);
    +		}
    +	}
    +};
    +
    +/**
    + * Creates the keyboard event handler for the current graph and history.
    + */
    +Menus.prototype.createPopupMenu = function(menu, cell, evt)
    +{
    +	var graph = this.editorUi.editor.graph;
    +	menu.smartSeparators = true;
    +	
    +	this.addMenuItems(menu, ['undo', 'redo', '-', 'delete', '-', 'cut', 'copy', 'paste', '-', 'duplicate', '-']);
    +	
    +	if (graph.getSelectionCount() > 0)
    +	{
    +		this.addMenuItems(menu, ['toFront', 'toBack', '-']);
    +		this.addSubmenu('linewidth', menu);
    +
    +		if (graph.getSelectionCount() > 0 && graph.getModel().isEdge(graph.getSelectionCell()))
    +		{
    +			this.addSubmenu('line', menu);
    +			menu.addSeparator();
    +			this.addMenuItems(menu, ['useAsDefaultEdge']);
    +		}
    +		else if (graph.getSelectionCount() > 1)	
    +		{
    +			menu.addSeparator();
    +			this.addMenuItems(menu, ['group']);
    +		}
    +		else
    +		{
    +			this.addSubmenu('layout', menu);
    +		}
    +	}
    +	else
    +	{
    +		this.addMenuItems(menu, ['selectVertices', 'selectEdges', '-', 'selectAll']);
    +	}
    +};
    +
    +/**
    + * Creates the keyboard event handler for the current graph and history.
    + */
    +Menus.prototype.createMenubar = function(container)
    +{
    +	var menubar = new Menubar(this.editorUi, container);
    +	var menus = ['file', 'edit', 'view', 'format', 'text', 'arrange', 'options', 'help'];
    +	
    +	for (var i = 0; i < menus.length; i++)
    +	{
    +		menubar.addMenu(mxResources.get(menus[i]), this.get(menus[i]).funct);
    +	}
    +
    +	return menubar;
    +};
    +
    +/**
    + * Construcs a new menubar for the given editor.
    + */
    +function Menubar(editorUi, container)
    +{
    +	this.editorUi = editorUi;
    +	this.container = container;
    +	
    +	// Global handler to hide the current menu
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	mxEvent.addListener(document, md, mxUtils.bind(this, function(evt)
    +	{
    +		this.hideMenu();
    +	}));
    +};
    +
    +/**
    + * Adds the menubar elements.
    + */
    +Menubar.prototype.hideMenu = function()
    +{
    +	if (this.currentMenu != null)
    +	{
    +		this.currentMenu.hideMenu();
    +	}
    +};
    +
    +/**
    + * Adds a submenu to this menubar.
    + */
    +Menubar.prototype.addMenu = function(label, funct)
    +{
    +	var elt = document.createElement('a');
    +	elt.setAttribute('href', 'javascript:void(0);');
    +	elt.className = 'item';
    +	mxUtils.write(elt, label);
    +
    +	this.addMenuHandler(elt, funct);
    +	this.container.appendChild(elt);
    +	
    +	return elt;
    +};
    +
    +/**
    + * Adds a handler for showing a menu in the given element.
    + */
    +Menubar.prototype.addMenuHandler = function(elt, funct)
    +{
    +	if (funct != null)
    +	{
    +		var show = true;
    +		
    +		var clickHandler = mxUtils.bind(this, function(evt)
    +		{
    +			if (show && elt.enabled == null || elt.enabled)
    +			{
    +				this.editorUi.editor.graph.panningHandler.hideMenu();
    +				var menu = new mxPopupMenu(funct);
    +				menu.div.className += ' menubarMenu';
    +				menu.smartSeparators = true;
    +				menu.showDisabled = true;
    +				menu.autoExpand = true;
    +				
    +				// Disables autoexpand and destroys menu when hidden
    +				menu.hideMenu = mxUtils.bind(this, function()
    +				{
    +					mxPopupMenu.prototype.hideMenu.apply(menu, arguments);
    +					menu.destroy();
    +					this.currentMenu = null;
    +					this.currentElt = null;
    +				});
    +
    +				menu.popup(elt.offsetLeft + 4, elt.offsetTop + elt.offsetHeight + 4, null, evt);
    +				this.currentMenu = menu;
    +				this.currentElt = elt;
    +			}
    +			
    +			show = true;
    +			mxEvent.consume(evt);
    +		});
    +		
    +		// Shows menu automatically while in expanded state
    +		mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt)
    +		{
    +			if (this.currentMenu != null && this.currentElt != elt)
    +			{
    +				this.hideMenu();
    +				clickHandler(evt);
    +			}
    +		}));
    +
    +		// Hides menu if already showing
    +		mxEvent.addListener(elt, 'mousedown', mxUtils.bind(this, function()
    +		{
    +			show = this.currentElt != elt;
    +		}));
    +		
    +		mxEvent.addListener(elt, 'click', clickHandler);
    +	}
    +};
    +
    +/**
    + * Constructs a new action for the given parameters.
    + */
    +function Menu(funct, enabled)
    +{
    +	mxEventSource.call(this);
    +	this.funct = funct;
    +	this.enabled = (enabled != null) ? enabled : true;
    +};
    +
    +// Menu inherits from mxEventSource
    +mxUtils.extend(Menu, mxEventSource);
    +
    +/**
    + * Sets the enabled state of the action and fires a stateChanged event.
    + */
    +Menu.prototype.setEnabled = function(value)
    +{
    +	if (this.enabled != value)
    +	{
    +		this.enabled = value;
    +		this.fireEvent(new mxEventObject('stateChanged'));
    +	}
    +};
    +
    +/**
    + * Sets the enabled state of the action and fires a stateChanged event.
    + */
    +Menu.prototype.execute = function(menu, parent)
    +{
    +	this.funct(menu, parent);
    +};
    diff --git a/javascript/examples/grapheditor/www/js/Sidebar.js b/javascript/examples/grapheditor/www/js/Sidebar.js
    new file mode 100644
    index 000000000..eb9ff7f7a
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/js/Sidebar.js
    @@ -0,0 +1,1134 @@
    +/**
    + * $Id: Sidebar.js,v 1.56 2012-05-15 16:31:55 gaudenz Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +/**
    + * Construcs a new sidebar for the given editor.
    + */
    +function Sidebar(editorUi, container)
    +{
    +	this.editorUi = editorUi;
    +	this.container = container;
    +	this.palettes = new Object();
    +	this.showTooltips = true;
    +
    +	// Note: For this to work in IE8 standards mode all containers must be in the DOM at this point
    +	// including the actual graph container so that VML references can be restored in mxShape.init.
    +	this.graph = new Graph(document.createElement('div'), null, null, this.editorUi.editor.graph.getStylesheet());
    +	this.graph.foldingEnabled = false;
    +	this.graph.autoScroll = false;
    +	this.graph.setTooltips(false);
    +	this.graph.setConnectable(false);
    +	this.graph.resetViewOnRootChange = false;
    +	this.graph.view.setTranslate(this.thumbBorder, this.thumbBorder);
    +	this.graph.setEnabled(false);
    +	
    +	// Workaround for no rendering in 0 coordinate in FF 10
    +	if (this.shiftThumbs)
    +	{
    +		this.graph.view.canvas.setAttribute('transform', 'translate(1, 1)');
    +	}
    +	
    +	if (!mxClient.IS_TOUCH)
    +	{
    +		mxEvent.addListener(document, 'mouseup', mxUtils.bind(this, function()
    +		{
    +			this.showTooltips = true;
    +		}));
    +	
    +		// Enables tooltips after scroll
    +		mxEvent.addListener(container, 'scroll', mxUtils.bind(this, function()
    +		{
    +			this.showTooltips = true;
    +		}));
    +		
    +		mxEvent.addListener(document, 'mousedown', mxUtils.bind(this, function()
    +		{
    +			this.showTooltips = false;
    +			this.hideTooltip();
    +		}));
    +
    +		mxEvent.addListener(document, 'mousemove', mxUtils.bind(this, function(evt)
    +		{
    +			var src = mxEvent.getSource(evt);
    +			
    +			while (src != null)
    +			{
    +				if (src == this.currentElt)
    +				{
    +					return;
    +				}
    +				
    +				src = src.parentNode;
    +			}
    +			
    +			this.hideTooltip();
    +		}));
    +
    +		// Handles mouse leaving the window
    +		mxEvent.addListener(document, 'mouseout', mxUtils.bind(this, function(evt)
    +		{
    +			if (evt.toElement == null && evt.relatedTarget == null)
    +			{
    +				this.hideTooltip();
    +			}
    +		}));
    +	}
    +	
    +	this.init();
    +	
    +	
    +	// Pre-fetches tooltip image
    +	new Image().src = IMAGE_PATH + '/tooltip.png';
    +};
    +
    +/**
    + * Adds all palettes to the sidebar.
    + */
    +Sidebar.prototype.init = function()
    +{
    +	var dir = STENCIL_PATH;
    +	
    +	this.addGeneralPalette(true);
    +	this.addUmlPalette(false);
    +	this.addBpmnPalette(dir, false);
    +	this.addStencilPalette('flowchart', 'Flowchart', dir + '/flowchart.xml',
    +		';fillColor=#ffffff;strokeColor=#000000;strokeWidth=2');
    +	this.addStencilPalette('basic', mxResources.get('basic'), dir + '/basic.xml',
    +		';fillColor=#ffffff;strokeColor=#000000;strokeWidth=2');
    +	this.addStencilPalette('arrows', mxResources.get('arrows'), dir + '/arrows.xml',
    +		';fillColor=#ffffff;strokeColor=#000000;strokeWidth=2');
    +	this.addImagePalette('clipart', mxResources.get('clipart'), dir + '/clipart/', '_128x128.png',
    +		['Earth_globe', 'Empty_Folder', 'Full_Folder', 'Gear', 'Lock', 'Software', 'Virus', 'Email',
    +		 'Database', 'Router_Icon', 'iPad', 'iMac', 'Laptop', 'MacBook', 'Monitor_Tower', 'Printer',
    +		 'Server_Tower', 'Workstation', 'Firewall_02', 'Wireless_Router_N', 'Credit_Card',
    +		 'Piggy_Bank', 'Graph', 'Safe', 'Shopping_Cart', 'Suit1', 'Suit2', 'Suit3', 'Pilot1',
    +		 'Worker1', 'Soldier1', 'Doctor1', 'Tech1', 'Security1', 'Telesales1']);
    +};
    +
    +/**
    + * Specifies if tooltips should be visible. Default is true.
    + */
    +Sidebar.prototype.enableTooltips = !mxClient.IS_TOUCH;
    +
    +/**
    + * Shifts the thumbnail by 1 px.
    + */
    +Sidebar.prototype.shiftThumbs = mxClient.IS_SVG;
    +
    +/**
    + * Specifies the delay for the tooltip. Default is 16 px.
    + */
    +Sidebar.prototype.tooltipBorder = 16;
    +
    +/**
    + * Specifies the delay for the tooltip. Default is 2 px.
    + */
    +Sidebar.prototype.thumbBorder = 2;
    +
    +/**
    + * Specifies the delay for the tooltip. Default is 300 ms.
    + */
    +Sidebar.prototype.tooltipDelay = 300;
    +
    +/**
    + * Specifies if edges should be used as templates if clicked. Default is true.
    + */
    +Sidebar.prototype.installEdges = true;
    +
    +/**
    + * Specifies the URL of the gear image.
    + */
    +Sidebar.prototype.gearImage = 'stencils/clipart/Gear_128x128.png';
    +
    +/**
    + * Specifies the width of the thumbnails.
    + */
    +Sidebar.prototype.thumbWidth = 26;
    +
    +/**
    + * Specifies the height of the thumbnails.
    + */
    +Sidebar.prototype.thumbHeight = 26;
    +
    +/**
    + * Adds all palettes to the sidebar.
    + */
    +Sidebar.prototype.showTooltip = function(elt, cells)
    +{
    +	if (this.enableTooltips && this.showTooltips)
    +	{
    +		if (this.currentElt != elt)
    +		{
    +			if (this.thread != null)
    +			{
    +				window.clearTimeout(this.thread);
    +				this.thread = null;
    +			}
    +			
    +			var show = mxUtils.bind(this, function()
    +			{
    +				// Lazy creation of the DOM nodes and graph instance
    +				if (this.tooltip == null)
    +				{
    +					this.tooltip = document.createElement('div');
    +					this.tooltip.className = 'sidebarTooltip';
    +					this.graph2 = new Graph(this.tooltip, null, null, this.editorUi.editor.graph.getStylesheet());
    +					this.graph2.view.setTranslate(this.tooltipBorder, this.tooltipBorder);
    +					this.graph2.resetViewOnRootChange = false;
    +					this.graph2.foldingEnabled = false;
    +					this.graph2.autoScroll = false;
    +					this.graph2.setTooltips(false);
    +					this.graph2.setConnectable(false);
    +					this.graph2.setEnabled(false);
    +					
    +					this.tooltipImage = mxUtils.createImage(IMAGE_PATH + '/tooltip.png');
    +					this.tooltipImage.style.position = 'absolute';
    +					this.tooltipImage.style.width = '14px';
    +					this.tooltipImage.style.height = '27px';
    +					document.body.appendChild(this.tooltip);
    +					document.body.appendChild(this.tooltipImage);
    +				}
    +				
    +				this.graph2.model.clear();
    +				this.graph2.addCells(cells);
    +				
    +				var bounds = this.graph2.getGraphBounds();
    +				var width = bounds.x + bounds.width + this.tooltipBorder;
    +				var height = bounds.y + bounds.height + this.tooltipBorder;
    +				
    +				if (mxClient.IS_IE && (document.documentMode == null || document.documentMode == 5))
    +				{
    +					width += 4;
    +					height += 4;
    +				}
    +				
    +				this.tooltip.style.display = 'block';
    +				this.tooltipImage.style.visibility = 'visible';
    +				this.tooltip.style.width = width + 'px';
    +				this.tooltip.style.height = height + 'px';
    +		
    +				var left = this.container.clientWidth + this.editorUi.splitSize + 3;
    +				var top = Math.max(0, (this.container.offsetTop + elt.offsetTop - this.container.scrollTop - height / 2 + 16));
    +
    +				// Workaround for ignored position CSS style in IE9
    +				// (changes to relative without the following line)
    +				this.tooltip.style.position = 'absolute';
    +				this.tooltip.style.left = left + 'px';
    +				this.tooltip.style.top = top + 'px';
    +				this.tooltipImage.style.left = (left - 13) + 'px';
    +				this.tooltipImage.style.top = (top + height / 2 - 13) + 'px';
    +			});
    +
    +			if (this.tooltip != null && this.tooltip.style.display != 'none')
    +			{
    +				show();
    +			}
    +			else
    +			{
    +				this.thread = window.setTimeout(show, this.tooltipDelay);
    +			}
    +
    +			this.currentElt = elt;
    +		}
    +	}
    +};
    +
    +/**
    + * Hides the current tooltip.
    + */
    +Sidebar.prototype.hideTooltip = function()
    +{
    +	if (this.thread != null)
    +	{
    +		window.clearTimeout(this.thread);
    +		this.thread = null;
    +	}
    +	
    +	if (this.tooltip != null)
    +	{
    +		this.tooltip.style.display = 'none';
    +		this.tooltipImage.style.visibility = 'hidden';
    +		this.currentElt = null;
    +	}
    +};
    +
    +/**
    + * Adds the general palette to the sidebar.
    + */
    +Sidebar.prototype.addGeneralPalette = function(expand)
    +{
    +	this.addPalette('general', mxResources.get('general'), expand || true, mxUtils.bind(this, function(content)
    +	{
    +		content.appendChild(this.createVertexTemplate('swimlane', 200, 200, 'Container'));
    +		content.appendChild(this.createVertexTemplate('swimlane;horizontal=0', 200, 200, 'Pool'));
    +	    content.appendChild(this.createVertexTemplate('text', 40, 26, 'Text'));
    +	    content.appendChild(this.createVertexTemplate('icon;image=' + this.gearImage, 60, 60, 'Image'));
    +	    content.appendChild(this.createVertexTemplate('label;image=' + this.gearImage, 140, 60, 'Label'));
    +	    content.appendChild(this.createVertexTemplate(null, 120, 60));
    +	    content.appendChild(this.createVertexTemplate('rounded=1', 120, 60));
    +	    content.appendChild(this.createVertexTemplate('ellipse', 80, 80));
    +	    content.appendChild(this.createVertexTemplate('ellipse;shape=doubleEllipse', 80, 80));
    +	    content.appendChild(this.createVertexTemplate('triangle', 60, 80));
    +	    content.appendChild(this.createVertexTemplate('rhombus', 80, 80));
    +	    content.appendChild(this.createVertexTemplate('shape=hexagon', 120, 80));
    +	    content.appendChild(this.createVertexTemplate('shape=actor;verticalLabelPosition=bottom;verticalAlign=top', 40, 60));
    +	    content.appendChild(this.createVertexTemplate('ellipse;shape=cloud', 120, 80));
    +	    content.appendChild(this.createVertexTemplate('shape=cylinder', 60, 80));
    +	    content.appendChild(this.createVertexTemplate('line', 120, 10));
    +	    content.appendChild(this.createVertexTemplate('line;direction=south', 10, 120));
    +	    content.appendChild(this.createVertexTemplate('shape=xor', 60, 80));
    +	    content.appendChild(this.createVertexTemplate('shape=or', 60, 80));
    +	    content.appendChild(this.createVertexTemplate('shape=step', 120, 80));
    +	    content.appendChild(this.createVertexTemplate('shape=tape', 120, 100));
    +	    content.appendChild(this.createVertexTemplate('shape=cube', 120, 80));
    +	    content.appendChild(this.createVertexTemplate('shape=note', 80, 100));
    +	    content.appendChild(this.createVertexTemplate('shape=folder', 120, 120));
    +	    content.appendChild(this.createVertexTemplate('shape=card', 60, 80));
    +	    content.appendChild(this.createVertexTemplate('shape=plus', 20, 20));
    +
    +	    content.appendChild(this.createEdgeTemplate('edgeStyle=none;endArrow=none;', 100, 100));
    +	    content.appendChild(this.createEdgeTemplate('edgeStyle=none', 100, 100));
    +	    content.appendChild(this.createEdgeTemplate('edgeStyle=elbowEdgeStyle;elbow=horizontal', 100, 100));
    +	    content.appendChild(this.createEdgeTemplate('edgeStyle=elbowEdgeStyle;elbow=vertical', 100, 100));
    +	    content.appendChild(this.createEdgeTemplate('edgeStyle=entityRelationEdgeStyle', 100, 100));
    +	    content.appendChild(this.createEdgeTemplate('edgeStyle=segmentEdgeStyle', 100, 100));
    +	    content.appendChild(this.createEdgeTemplate('edgeStyle=orthogonalEdgeStyle', 100, 100));
    +	    content.appendChild(this.createEdgeTemplate('shape=link', 100, 100));
    +	    content.appendChild(this.createEdgeTemplate('arrow', 100, 100));
    +	}));
    +};
    +
    +/**
    + * Adds the general palette to the sidebar.
    + */
    +Sidebar.prototype.addUmlPalette = function(expand)
    +{
    +	this.addPalette('uml', 'UML', expand || false, mxUtils.bind(this, function(content)
    +	{
    +	    content.appendChild(this.createVertexTemplate('', 110, 50, 'Object'));
    +    	
    +	    var classCell = new mxCell('<p style="margin:0px;margin-top:4px;text-align:center;">' +
    +    			'<b>Class</b></p>' +
    +				'<hr/><div style="height:2px;"></div><hr/>', new mxGeometry(0, 0, 140, 60),
    +				'verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1');
    +    	classCell.vertex = true;
    +    	content.appendChild(this.createVertexTemplateFromCells([classCell], 140, 60));
    +    	
    +	    var classCell = new mxCell('<p style="margin:0px;margin-top:4px;text-align:center;">' +
    +    			'<b>Class</b></p>' +
    +				'<hr/><p style="margin:0px;margin-left:4px;">+ field: Type</p><hr/>' +
    +				'<p style="margin:0px;margin-left:4px;">+ method(): Type</p>', new mxGeometry(0, 0, 160, 90),
    +				'verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1');
    +    	classCell.vertex = true;
    +    	content.appendChild(this.createVertexTemplateFromCells([classCell], 160, 90));
    +    	
    +	    var classCell = new mxCell('<p style="margin:0px;margin-top:4px;text-align:center;">' +
    +    			'<i>&lt;&lt;Interface&gt;&gt;</i><br/><b>Interface</b></p>' +
    +				'<hr/><p style="margin:0px;margin-left:4px;">+ field1: Type<br/>' +
    +				'+ field2: Type</p>' +
    +				'<hr/><p style="margin:0px;margin-left:4px;">' +
    +				'+ method1(Type): Type<br/>' +
    +				'+ method2(Type, Type): Type</p>', new mxGeometry(0, 0, 190, 140),
    +				'verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1');
    +    	classCell.vertex = true;
    +    	content.appendChild(this.createVertexTemplateFromCells([classCell], 190, 140));
    +
    +		var classCell = new mxCell('Module', new mxGeometry(0, 0, 120, 60),
    +	    	'shape=component;align=left;spacingLeft=36');
    +    	classCell.vertex = true;
    +
    +    	content.appendChild(this.createVertexTemplateFromCells([classCell], 120, 60));
    +
    +	    var classCell = new mxCell('&lt;&lt;component&gt;&gt;<br/><b>Component</b>', new mxGeometry(0, 0, 180, 90),
    +	    	'overflow=fill;html=1');
    +		classCell.vertex = true;
    +		var classCell1 = new mxCell('', new mxGeometry(1, 0, 20, 20), 'shape=component;jettyWidth=8;jettyHeight=4;');
    +		classCell1.vertex = true;
    +		classCell1.connectable = false;
    +		classCell1.geometry.relative = true;
    +		classCell1.geometry.offset = new mxPoint(-30, 10);
    +		classCell.insert(classCell1);
    +	
    +		content.appendChild(this.createVertexTemplateFromCells([classCell], 180, 90));
    +
    +	    var classCell = new mxCell('<p style="margin:0px;margin-top:6px;text-align:center;"><b>Component</b></p>' +
    +				'<hr/><p style="margin:0px;margin-left:8px;">+ Attribute1: Type<br/>+ Attribute2: Type</p>', new mxGeometry(0, 0, 180, 90),
    +	    	'verticalAlign=top;align=left;overflow=fill;html=1');
    +		classCell.vertex = true;
    +		var classCell1 = new mxCell('', new mxGeometry(1, 0, 20, 20), 'shape=component;jettyWidth=8;jettyHeight=4;');
    +		classCell1.vertex = true;
    +		classCell1.connectable = false;
    +		classCell1.geometry.relative = true;
    +		classCell1.geometry.offset = new mxPoint(-23, 3);
    +		classCell.insert(classCell1);
    +
    +		content.appendChild(this.createVertexTemplateFromCells([classCell], 180, 90));
    +
    +		content.appendChild(this.createVertexTemplate('shape=lollipop;direction=south;', 30, 10));
    +
    +    	var cardCell = new mxCell('Block', new mxGeometry(0, 0, 180, 120),
    +    			'verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;');
    +    	cardCell.vertex = true;
    +    	content.appendChild(this.createVertexTemplateFromCells([cardCell], 180, 120));
    +
    +	    content.appendChild(this.createVertexTemplate('shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;', 70, 50,
    +	    	'package'));
    +
    +	    var classCell = new mxCell('<p style="margin:0px;margin-top:4px;text-align:center;text-decoration:underline;">' +
    +    			'<b>Object:Type</b></p><hr/>' +
    +				'<p style="margin:0px;margin-left:8px;">field1 = value1<br/>field2 = value2<br>field3 = value3</p>',
    +				new mxGeometry(0, 0, 160, 90),
    +				'verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1');
    +    	classCell.vertex = true;
    +    	content.appendChild(this.createVertexTemplateFromCells([classCell], 160, 90));
    +
    +    	var tableCell = new mxCell('<table cellpadding="5" style="font-size:9pt;border:none;border-collapse:collapse;width:100%;">' +
    +    			'<tr><td colspan="2" style="border:1px solid gray;background:#e4e4e4;">Tablename</td></tr>' +
    +				'<tr><td style="border:1px solid gray;">PK</td><td style="border:1px solid gray;">uniqueId</td></tr>' +
    +				'<tr><td style="border:1px solid gray;">FK1</td><td style="border:1px solid gray;">foreignKey</td></tr>' +
    +				'<tr><td style="border:1px solid gray;"></td><td style="border:1px solid gray;">fieldname</td></tr>' +
    +				'</table>', new mxGeometry(0, 0, 180, 99), 'verticalAlign=top;align=left;overflow=fill;html=1');
    +    	tableCell.vertex = true;
    +    	content.appendChild(this.createVertexTemplateFromCells([tableCell], 180, 99));
    +    	
    +    	content.appendChild(this.createVertexTemplate('shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top', 40, 80, 'Actor'));
    +	    content.appendChild(this.createVertexTemplate('ellipse', 140, 70, 'Use Case'));
    +
    +    	var cardCell = new mxCell('', new mxGeometry(0, 0, 30, 30),
    +    		'ellipse;shape=startState;fillColor=#000000;strokeColor=#ff0000;');
    +    	cardCell.vertex = true;
    +    	
    +		var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=horizontal;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;');
    +		assoc2.geometry.setTerminalPoint(new mxPoint(15, 70), false);
    +		assoc2.edge = true;
    +		
    +		cardCell.insertEdge(assoc2, true);
    +    	
    +		content.appendChild(this.createVertexTemplateFromCells([cardCell, assoc2], 30, 30));
    +	    
    +    	var cardCell = new mxCell('Activity', new mxGeometry(0, 0, 120, 40),
    +    		'rounded=1;arcSize=40;fillColor=#ffffc0;strokeColor=#ff0000;');
    +    	cardCell.vertex = true;
    +    	
    +		var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=horizontal;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;');
    +		assoc2.geometry.setTerminalPoint(new mxPoint(60, 80), false);
    +		assoc2.edge = true;
    +		
    +		cardCell.insertEdge(assoc2, true);
    +    	
    +		content.appendChild(this.createVertexTemplateFromCells([cardCell, assoc2], 120, 40));
    +    	
    +    	var cardCell = new mxCell('<div style="margin-top:8px;"><b>Composite State</b><hr/>Subtitle</div>', new mxGeometry(0, 0, 160, 60),
    +			'rounded=1;arcSize=40;overflow=fill;html=1;verticalAlign=top;fillColor=#ffffc0;strokeColor=#ff0000;');
    +		cardCell.vertex = true;
    +		
    +		var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=horizontal;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;');
    +		assoc2.geometry.setTerminalPoint(new mxPoint(80, 100), false);
    +		assoc2.edge = true;
    +		
    +		cardCell.insertEdge(assoc2, true);
    +		
    +		content.appendChild(this.createVertexTemplateFromCells([cardCell, assoc2], 160, 60));
    +		
    +    	var cardCell = new mxCell('Condition', new mxGeometry(0, 0, 80, 40),
    +    		'rhombus;fillColor=#ffffc0;strokeColor=#ff0000;');
    +    	cardCell.vertex = true;
    +    	
    +		var assoc1 = new mxCell('no', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=horizontal;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;');
    +		assoc1.geometry.setTerminalPoint(new mxPoint(120, 20), false);
    +		assoc1.geometry.relative = true;
    +		assoc1.geometry.x = -1;
    +		assoc1.edge = true;
    +		
    +		cardCell.insertEdge(assoc1, true);
    +    	
    +		var assoc2 = new mxCell('yes', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=horizontal;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;');
    +		assoc2.geometry.setTerminalPoint(new mxPoint(40, 80), false);
    +		assoc2.geometry.relative = true;
    +		assoc2.geometry.x = -1;
    +		assoc2.edge = true;
    +		
    +		cardCell.insertEdge(assoc2, true);
    +		
    +		content.appendChild(this.createVertexTemplateFromCells([cardCell, assoc1, assoc2], 80, 40));
    +	    
    +    	var cardCell = new mxCell('', new mxGeometry(0, 0, 200, 10),
    +			'shape=line;strokeWidth=6;strokeColor=#ff0000;');
    +		cardCell.vertex = true;
    +		
    +		var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=horizontal;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;');
    +		assoc2.geometry.setTerminalPoint(new mxPoint(100, 50), false);
    +		assoc2.edge = true;
    +		
    +		cardCell.insertEdge(assoc2, true);
    +	
    +		content.appendChild(this.createVertexTemplateFromCells([cardCell, assoc2], 200, 10));
    +
    +		content.appendChild(this.createVertexTemplate('ellipse;shape=endState;fillColor=#000000;strokeColor=#ff0000', 30, 30));
    +	    
    +    	var classCell1 = new mxCell(':Object', new mxGeometry(0, 0, 100, 50));
    +     	classCell1.vertex = true;
    +     	
    +     	var classCell2 = new mxCell('', new mxGeometry(40, 50, 20, 240), 'shape=line;direction=north;dashed=1');
    +     	classCell2.vertex = true;
    +     	
    +    	content.appendChild(this.createVertexTemplateFromCells([classCell1, classCell2], 100, 290));
    +    	
    +    	var classCell1 = new mxCell('', new mxGeometry(100, 0, 20, 70));
    +     	classCell1.vertex = true;
    +
    +		var assoc1 = new mxCell('invoke', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=vertical;verticalAlign=bottom;endArrow=block;');
    +		assoc1.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +		assoc1.edge = true;
    +		
    +		classCell1.insertEdge(assoc1, false);
    +
    +    	content.appendChild(this.createVertexTemplateFromCells([classCell1, assoc1], 120, 70));
    +    	
    +     	var classCell1 = new mxCell('', new mxGeometry(100, 0, 20, 70));
    +     	classCell1.vertex = true;
    +
    +		var assoc1 = new mxCell('invoke', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=vertical;verticalAlign=bottom;endArrow=block;');
    +		assoc1.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +		assoc1.edge = true;
    +		
    +		classCell1.insertEdge(assoc1, false);
    +		
    +		var assoc2 = new mxCell('return', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=vertical;verticalAlign=bottom;dashed=1;endArrow=open;endSize=8;');
    +		assoc2.geometry.setTerminalPoint(new mxPoint(0, 70), false);
    +		assoc2.edge = true;
    +		
    +		classCell1.insertEdge(assoc2, true);
    +		
    +		var assoc3 = new mxCell('invoke', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;elbow=vertical;align=left;endArrow=open;');
    +		assoc3.edge = true;
    +		
    +		classCell1.insertEdge(assoc3, true);
    +		classCell1.insertEdge(assoc3, false);
    +		
    +    	content.appendChild(this.createVertexTemplateFromCells([classCell1, assoc1, assoc2, assoc3], 120, 70));
    +    	
    +		var assoc = new mxCell('name', new mxGeometry(0, 0, 0, 0), 'endArrow=block;endFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;');
    +		assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +		assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +		assoc.geometry.relative = true;
    +		assoc.geometry.x = -1;
    +		assoc.edge = true;
    +		
    +    	var sourceLabel = new mxCell('1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10');
    +    	sourceLabel.geometry.relative = true;
    +    	sourceLabel.setConnectable(false);
    +    	sourceLabel.vertex = true;
    +    	assoc.insert(sourceLabel);
    +    	
    +		content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +		
    +		var assoc = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=orthogonalEdgeStyle;');
    +		assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +		assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +		assoc.edge = true;
    +		
    +    	var sourceLabel = new mxCell('parent', new mxGeometry(-1, 0, 0, 0), 'resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10');
    +    	sourceLabel.geometry.relative = true;
    +    	sourceLabel.setConnectable(false);
    +    	sourceLabel.vertex = true;
    +    	assoc.insert(sourceLabel);
    +		
    +    	var targetLabel = new mxCell('child', new mxGeometry(1, 0, 0, 0), 'resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10');
    +    	targetLabel.geometry.relative = true;
    +    	targetLabel.setConnectable(false);
    +    	targetLabel.vertex = true;
    +    	assoc.insert(targetLabel);
    +    	
    +		content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +    	
    +		var assoc = new mxCell('1', new mxGeometry(0, 0, 0, 0), 'endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;');
    +		assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +		assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +		assoc.geometry.relative = true;
    +		assoc.geometry.x = -1;
    +		assoc.edge = true;
    +		
    +		content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +		
    +		var assoc = new mxCell('Relation', new mxGeometry(0, 0, 0, 0), 'endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;');
    +		assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +		assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +		assoc.edge = true;
    +		
    +    	var sourceLabel = new mxCell('0..n', new mxGeometry(-1, 0, 0, 0), 'resizable=0;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10');
    +    	sourceLabel.geometry.relative = true;
    +    	sourceLabel.setConnectable(false);
    +    	sourceLabel.vertex = true;
    +    	assoc.insert(sourceLabel);
    +		
    +    	var targetLabel = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'resizable=0;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10');
    +    	targetLabel.geometry.relative = true;
    +    	targetLabel.setConnectable(false);
    +    	targetLabel.vertex = true;
    +    	assoc.insert(targetLabel);
    +    	
    +		content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +		
    +		var assoc = new mxCell('Use', new mxGeometry(0, 0, 0, 0), 'endArrow=open;endSize=12;dashed=1');
    +		assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +		assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +		assoc.edge = true;
    +		
    +		content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +		
    +		var assoc = new mxCell('Extends', new mxGeometry(0, 0, 0, 0), 'endArrow=block;endSize=16;endFill=0;dashed=1');
    +		assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +		assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +		assoc.edge = true;
    +		
    +		content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +		
    +		var assoc = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=block;startArrow=block;endFill=1;startFill=1');
    +		assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +		assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +		assoc.edge = true;
    +		
    +		content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +	}));
    +};
    +
    +/**
    + * Adds the BPMN library to the sidebar.
    + */
    +Sidebar.prototype.addBpmnPalette = function(dir, expand)
    +{
    +	this.addStencilPalette('bpmn', 'BPMN', dir + '/bpmn.xml',
    +		';fillColor=#ffffff;strokeColor=#000000;perimeter=ellipsePerimeter;',
    +		['Cancel', 'Error', 'Link', 'Message', 'Compensation', 'Multiple', 'Rule', 'Timer'],
    +		function(content)
    +		{
    +			content.appendChild(this.createVertexTemplate('swimlane;horizontal=0;', 300, 160, 'Pool'));
    +		
    +			var classCell = new mxCell('Process', new mxGeometry(0, 0, 140, 60),
    +		    	'rounded=1');
    +			classCell.vertex = true;
    +			var classCell1 = new mxCell('', new mxGeometry(1, 1, 30, 30), 'shape=mxgraph.bpmn.timer_start;perimeter=ellipsePerimeter;');
    +			classCell1.vertex = true;
    +			classCell1.geometry.relative = true;
    +			classCell1.geometry.offset = new mxPoint(-40, -15);
    +			classCell.insert(classCell1);
    +			
    +			content.appendChild(this.createVertexTemplateFromCells([classCell], 140, 60));
    +			
    +			var classCell = new mxCell('Process', new mxGeometry(0, 0, 140, 60),
    +		    	'rounded=1');
    +			classCell.vertex = true;
    +			var classCell1 = new mxCell('', new mxGeometry(0.5, 1, 12, 12), 'shape=plus');
    +			classCell1.vertex = true;
    +			classCell1.connectable = false;
    +			classCell1.geometry.relative = true;
    +			classCell1.geometry.offset = new mxPoint(-6, -12);
    +			classCell.insert(classCell1);
    +			
    +			content.appendChild(this.createVertexTemplateFromCells([classCell], 140, 60));
    +			
    +			var classCell = new mxCell('Process', new mxGeometry(0, 0, 140, 60),
    +		    	'rounded=1');
    +			classCell.vertex = true;
    +			var classCell1 = new mxCell('', new mxGeometry(0, 0, 20, 14), 'shape=message');
    +			classCell1.vertex = true;
    +			classCell1.connectable = false;
    +			classCell1.geometry.relative = true;
    +			classCell1.geometry.offset = new mxPoint(5, 5);
    +			classCell.insert(classCell1);
    +			
    +			content.appendChild(this.createVertexTemplateFromCells([classCell], 140, 60));
    +			
    +		    var classCell = new mxCell('', new mxGeometry(0, 0, 60, 40), 'shape=message');
    +	    	classCell.vertex = true;
    +	
    +			content.appendChild(this.createEdgeTemplateFromCells([classCell], 60, 40));
    +	
    +			var assoc = new mxCell('Sequence', new mxGeometry(0, 0, 0, 0), 'endArrow=block;endFill=1;endSize=6');
    +			assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +			assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +			assoc.edge = true;
    +	
    +			content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +			
    +			var assoc = new mxCell('Default', new mxGeometry(0, 0, 0, 0), 'startArrow=dash;startSize=8;endArrow=block;endFill=1;endSize=6');
    +			assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +			assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +			assoc.edge = true;
    +			
    +			content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +			
    +			var assoc = new mxCell('Conditional', new mxGeometry(0, 0, 0, 0), 'startArrow=diamondThin;startFill=0;startSize=14;endArrow=block;endFill=1;endSize=6');
    +			assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +			assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +			assoc.edge = true;
    +			
    +			content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +			
    +			var assoc = new mxCell('', new mxGeometry(0, 0, 0, 0), 'startArrow=oval;startFill=0;startSize=7;endArrow=block;endFill=0;endSize=10;dashed=1');
    +			assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +			assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +			assoc.edge = true;
    +	
    +			content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +	
    +			var assoc = new mxCell('', new mxGeometry(0, 0, 0, 0), 'startArrow=oval;startFill=0;startSize=7;endArrow=block;endFill=0;endSize=10;dashed=1');
    +			assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +			assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +			assoc.edge = true;
    +			
    +	    	var sourceLabel = new mxCell('', new mxGeometry(0, 0, 20, 14), 'shape=message');
    +	    	sourceLabel.geometry.relative = true;
    +	    	sourceLabel.setConnectable(false);
    +	    	sourceLabel.vertex = true;
    +	    	sourceLabel.geometry.offset = new mxPoint(-10, -7);
    +	    	assoc.insert(sourceLabel);
    +	
    +			content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +			
    +			var assoc = new mxCell('', new mxGeometry(0, 0, 0, 0), 'shape=link');
    +			assoc.geometry.setTerminalPoint(new mxPoint(0, 0), true);
    +			assoc.geometry.setTerminalPoint(new mxPoint(160, 0), false);
    +			assoc.edge = true;
    +	
    +			content.appendChild(this.createEdgeTemplateFromCells([assoc], 160, 0));
    +		}, 0.5);
    +};
    +
    +/**
    + * Creates and returns the given title element.
    + */
    +Sidebar.prototype.createTitle = function(label)
    +{
    +	var elt = document.createElement('a');
    +	elt.setAttribute('href', 'javascript:void(0);');
    +	elt.className = 'title';
    +	mxUtils.write(elt, label);
    +
    +	return elt;
    +};
    +
    +/**
    + * Creates a thumbnail for the given cells.
    + */
    +Sidebar.prototype.createThumb = function(cells, width, height, parent)
    +{
    +	var prev = mxImageShape.prototype.preserveImageAspect;
    +	mxImageShape.prototype.preserveImageAspect = false;
    +	
    +	this.graph.view.rendering = false;
    +	this.graph.view.setScale(1);
    +	this.graph.addCells(cells);
    +	var bounds = this.graph.getGraphBounds();
    +
    +	var corr = (this.shiftThumbs) ? this.thumbBorder + 1 : this.thumbBorder;
    +	var s = Math.min((width - 1) / (bounds.x + bounds.width + corr),
    +		(height - 1) / (bounds.y + bounds.height + corr));
    +	this.graph.view.setScale(s);
    +	this.graph.view.rendering = true;
    +	this.graph.refresh();
    +	mxImageShape.prototype.preserveImageAspect = prev;
    +
    +	bounds = this.graph.getGraphBounds();
    +	var dx = Math.max(0, Math.floor((width - bounds.width) / 2));
    +	var dy = Math.max(0, Math.floor((height - bounds.height) / 2));
    +	
    +	var node = null;
    +	
    +	// For supporting HTML labels in IE9 standards mode the container is cloned instead
    +	if (this.graph.dialect == mxConstants.DIALECT_SVG && !mxClient.IS_IE)
    +	{
    +		node = this.graph.view.getCanvas().ownerSVGElement.cloneNode(true);
    +	}
    +	else
    +	{
    +		node = this.graph.container.cloneNode(true);
    +	}
    +	
    +	this.graph.getModel().clear();
    +	
    +	// Outer dimension is (32, 32)
    +	var dd = (this.shiftThumbs) ? 2 : 3;
    +	node.style.position = 'relative';
    +	node.style.cursor = 'pointer';
    +	node.style.left = (dx + dd) + 'px';
    +	node.style.top = (dy + dd) + 'px';
    +	node.style.width = width + 'px';
    +	node.style.height = height + 'px';
    +	
    +	parent.appendChild(node);
    +};
    +
    +/**
    + * Creates and returns a new palette item for the given image.
    + */
    +Sidebar.prototype.createItem = function(cells)
    +{
    +	var elt = document.createElement('a');
    +	elt.setAttribute('href', 'javascript:void(0);');
    +	elt.className = 'item';
    +	
    +	// Blocks default click action
    +	mxEvent.addListener(elt, 'click', function(evt)
    +	{
    +		mxEvent.consume(evt);
    +	});
    +
    +	this.createThumb(cells, this.thumbWidth, this.thumbHeight, elt);
    +	
    +	return elt;
    +};
    +
    +/**
    + * Creates a drop handler for inserting the given cells.
    + */
    +Sidebar.prototype.createDropHandler = function(cells, allowSplit)
    +{
    +	return function(graph, evt, target, x, y)
    +	{
    +		cells = graph.getImportableCells(cells);
    +		
    +		if (cells.length > 0)
    +		{
    +			var validDropTarget = (target != null) ?
    +				graph.isValidDropTarget(target, cells, evt) : false;
    +			var select = null;
    +			
    +			if (target != null && !validDropTarget)
    +			{
    +				target = null;
    +			}
    +			
    +			// Splits the target edge or inserts into target group
    +			if (allowSplit && graph.isSplitEnabled() && graph.isSplitTarget(target, cells, evt))
    +			{
    +				graph.splitEdge(target, cells, null, x, y);
    +				select = cells;
    +			}
    +			else if (cells.length > 0)
    +			{
    +				select = graph.importCells(cells, x, y, target);
    +			}
    +			
    +			if (select != null && select.length > 0)
    +			{
    +				graph.scrollCellToVisible(select[0]);
    +				graph.setSelectionCells(select);
    +			}
    +		}
    +	};
    +};
    +
    +/**
    + * Creates and returns a preview element for the given width and height.
    + */
    +Sidebar.prototype.createDragPreview = function(width, height)
    +{
    +	var elt = document.createElement('div');
    +	elt.style.border = '1px dashed black';
    +	elt.style.width = width + 'px';
    +	elt.style.height = height + 'px';
    +	
    +	return elt;
    +};
    +
    +/**
    + * Creates a drag source for the given element.
    + */
    +Sidebar.prototype.createDragSource = function(elt, dropHandler, preview)
    +{
    +	var dragSource = mxUtils.makeDraggable(elt, this.editorUi.editor.graph, dropHandler,
    +		preview, 0, 0, this.editorUi.editor.graph.autoscroll, true, true);
    +
    +	// Allows drop into cell only if target is a valid root
    +	dragSource.getDropTarget = function(graph, x, y)
    +	{
    +		var target = mxDragSource.prototype.getDropTarget.apply(this, arguments);
    +		
    +		if (!graph.isValidRoot(target))
    +		{
    +			target = null;
    +		}
    +		
    +		return target;
    +	};
    +	
    +	return dragSource;
    +};
    +
    +/**
    + * Adds a handler for inserting the cell with a single click.
    + */
    +Sidebar.prototype.addClickHandler = function(elt, ds)
    +{
    +	var graph = this.editorUi.editor.graph;
    +	var first = null;
    +	
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	mxEvent.addListener(elt, md, function(evt)
    +	{
    +		first = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +	});
    +	
    +	var oldMouseUp = ds.mouseUp;
    +	ds.mouseUp = function(evt)
    +	{
    +		if (!mxEvent.isPopupTrigger(evt) && this.currentGraph == null && first != null)
    +		{
    +			var tol = graph.tolerance;
    +			
    +			if (Math.abs(first.x - mxEvent.getClientX(evt)) <= tol &&
    +				Math.abs(first.y - mxEvent.getClientY(evt)) <= tol)
    +			{
    +				var gs = graph.getGridSize();
    +				ds.drop(graph, evt, null, gs, gs);
    +			}
    +		}
    +
    +		oldMouseUp.apply(this, arguments);
    +		first = null;
    +	};
    +};
    +
    +/**
    + * Creates a drop handler for inserting the given cells.
    + */
    +Sidebar.prototype.createVertexTemplate = function(style, width, height, value)
    +{
    +	var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0, width, height), style)];
    +	cells[0].vertex = true;
    +	
    +	return this.createVertexTemplateFromCells(cells, width, height);
    +};
    +
    +/**
    + * Creates a drop handler for inserting the given cells.
    + */
    +Sidebar.prototype.createVertexTemplateFromCells = function(cells, width, height)
    +{
    +	var elt = this.createItem(cells);
    +	var ds = this.createDragSource(elt, this.createDropHandler(cells, true), this.createDragPreview(width, height));
    +	this.addClickHandler(elt, ds);
    +
    +	// Uses guides for vertices only if enabled in graph
    +	ds.isGuidesEnabled = mxUtils.bind(this, function()
    +	{
    +		return this.editorUi.editor.graph.graphHandler.guidesEnabled;
    +	});
    +
    +	// Shows a tooltip with the rendered cell
    +	if (!touchStyle)
    +	{
    +		mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt)
    +		{
    +			this.showTooltip(elt, cells);
    +		}));
    +	}
    +	
    +	return elt;
    +};
    +
    +/**
    + * Creates a drop handler for inserting the given cells.
    + */
    +Sidebar.prototype.createEdgeTemplate = function(style, width, height, value)
    +{
    +	var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0, width, height), style)];
    +	cells[0].geometry.setTerminalPoint(new mxPoint(0, height), true);
    +	cells[0].geometry.setTerminalPoint(new mxPoint(width, 0), false);
    +	cells[0].edge = true;
    +	
    +	return this.createEdgeTemplateFromCells(cells, width, height);
    +};
    +
    +/**
    + * Creates a drop handler for inserting the given cells.
    + */
    +Sidebar.prototype.createEdgeTemplateFromCells = function(cells, width, height)
    +{
    +	var elt = this.createItem(cells);
    +	this.createDragSource(elt, this.createDropHandler(cells, false), this.createDragPreview(width, height));
    +
    +	// Installs the default edge
    +	var graph = this.editorUi.editor.graph;
    +	mxEvent.addListener(elt, 'click', mxUtils.bind(this, function(evt)
    +	{
    +		if (this.installEdges)
    +		{
    +			// Uses edge template for connect preview
    +			graph.connectionHandler.createEdgeState = function(me)
    +			{
    +	    		return graph.view.createState(cells[0]);
    +		    };
    +	
    +		    // Creates new connections from edge template
    +		    graph.connectionHandler.factoryMethod = function()
    +		    {
    +	    		return graph.cloneCells([cells[0]])[0];
    +		    };
    +		}
    +		
    +		// Highlights the entry for 200ms
    +		elt.style.backgroundColor = '#ffffff';
    +		
    +		window.setTimeout(function()
    +		{
    +			elt.style.backgroundColor = '';
    +		}, 200);
    +	    
    +	    mxEvent.consume(evt);
    +	}));
    +
    +	// Shows a tooltip with the rendered cell
    +	if (!touchStyle)
    +	{
    +		mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt)
    +		{
    +			this.showTooltip(elt, cells);
    +		}));
    +	}
    +	
    +	return elt;
    +};
    +
    +/**
    + * Adds the given palette.
    + */
    +Sidebar.prototype.addPalette = function(id, title, expanded, onInit)
    +{
    +	var elt = this.createTitle(title);
    +	this.container.appendChild(elt);
    +	
    +	var div = document.createElement('div');
    +	div.className = 'sidebar';
    +	
    +	if (expanded)
    +	{
    +		onInit(div);
    +		onInit = null;
    +	}
    +	else
    +	{
    +		div.style.display = 'none';
    +	}
    +	
    +    this.addFoldingHandler(elt, div, onInit);
    +	
    +	var outer = document.createElement('div');
    +    outer.appendChild(div);
    +    this.container.appendChild(outer);
    +    
    +    // Keeps references to the DOM nodes
    +    if (id != null)
    +    {
    +    	this.palettes[id] = [elt, outer];
    +    }
    +};
    +
    +/**
    + * Create the given title element.
    + */
    +Sidebar.prototype.addFoldingHandler = function(title, content, funct)
    +{
    +	var initialized = false;
    +
    +	title.style.backgroundImage = (content.style.display == 'none') ?
    +		'url(' + IMAGE_PATH + '/collapsed.gif)' : 'url(' + IMAGE_PATH + '/expanded.gif)';
    +	title.style.backgroundRepeat = 'no-repeat';
    +	title.style.backgroundPosition = '100% 50%';
    +	
    +	mxEvent.addListener(title, 'click', function(evt)
    +	{
    +		if (content.style.display == 'none')
    +		{
    +			if (!initialized)
    +			{
    +				initialized = true;
    +				
    +				if (funct != null)
    +				{
    +					funct(content);
    +				}
    +			}
    +			
    +			title.style.backgroundImage = 'url(' + IMAGE_PATH + '/expanded.gif)';
    +			content.style.display = 'block';
    +		}
    +		else
    +		{
    +			title.style.backgroundImage = 'url(' + IMAGE_PATH + '/collapsed.gif)';
    +			content.style.display = 'none';
    +		}
    +		
    +		mxEvent.consume(evt);
    +	});
    +};
    +
    +/**
    + * Removes the palette for the given ID.
    + */
    +Sidebar.prototype.removePalette = function(id)
    +{
    +	var elts = this.palettes[id];
    +	
    +	if (elts != null)
    +	{
    +		this.palettes[id] = null;
    +		
    +		for (var i = 0; i < elts.length; i++)
    +		{
    +			this.container.removeChild(elts[i]);
    +		}
    +		
    +		return true;
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Adds the given image palette.
    + */
    +Sidebar.prototype.addImagePalette = function(id, title, prefix, postfix, items)
    +{
    +	this.addPalette(id, title, false, mxUtils.bind(this, function(content)
    +    {
    +    	for (var i = 0; i < items.length; i++)
    +		{
    +			var icon = prefix + items[i] + postfix;
    +			content.appendChild(this.createVertexTemplate('image;image=' + icon, 80, 80, ''));
    +		}
    +    }));
    +};
    +
    +/**
    + * Adds the given stencil palette.
    + */
    +Sidebar.prototype.addStencilPalette = function(id, title, stencilFile, style, ignore, onInit, scale)
    +{
    +	scale = (scale != null) ? scale : 1;
    +	
    +	this.addPalette(id, title, false, mxUtils.bind(this, function(content)
    +    {
    +		if (style == null)
    +		{
    +			style = '';
    +		}
    +		
    +		if (onInit != null)
    +		{
    +			onInit.call(this, content);
    +		}
    +
    +		mxStencilRegistry.loadStencilSet(stencilFile, mxUtils.bind(this, function(packageName, stencilName, displayName, w, h)
    +		{
    +			if (ignore == null || mxUtils.indexOf(ignore, stencilName) < 0)
    +			{
    +				content.appendChild(this.createVertexTemplate('shape=' + packageName + stencilName.toLowerCase() + style,
    +					Math.round(w * scale), Math.round(h * scale), ''));
    +			}
    +		}), true);
    +    }));
    +};
    diff --git a/javascript/examples/grapheditor/www/js/Toolbar.js b/javascript/examples/grapheditor/www/js/Toolbar.js
    new file mode 100644
    index 000000000..41b9d2c4f
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/js/Toolbar.js
    @@ -0,0 +1,330 @@
    +/**
    + * $Id: Toolbar.js,v 1.9 2012-03-30 07:54:40 gaudenz Exp $
    + * Copyright (c) 2006-2012, JGraph Ltd
    + */
    +/**
    + * Construcs a new toolbar for the given editor.
    + */
    +function Toolbar(editorUi, container)
    +{
    +	this.editorUi = editorUi;
    +	this.container = container;
    +	this.init();
    +
    +	// Global handler to hide the current menu
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	mxEvent.addListener(document, md, mxUtils.bind(this, function(evt)
    +	{
    +		this.hideMenu();
    +	}));
    +};
    +
    +/**
    + * Adds the toolbar elements.
    + */
    +Toolbar.prototype.init = function()
    +{
    +	this.addItems(['print', 'undo', 'redo', 'delete', '-', 'actualSize', 'zoomIn', 'zoomOut', '-']);
    +	var fontElt = this.addMenu('Helvetica', mxResources.get('fontFamily'), true, 'fontFamily');
    +	fontElt.style.whiteSpace = 'nowrap';
    +	fontElt.style.overflow = 'hidden';
    +	fontElt.style.width = '70px';
    +	this.addSeparator();
    +	var sizeElt = this.addMenu('12', mxResources.get('fontSize'), true, 'fontSize');
    +	fontElt.style.whiteSpace = 'nowrap';
    +	sizeElt.style.overflow = 'hidden';
    +	sizeElt.style.width = '30px';
    +
    +	this.addItems(['-', 'bold', 'italic', 'underline']);
    +	var align = this.addMenuFunction('sprite-left', mxResources.get('align'), false, mxUtils.bind(this, function(menu)
    +	{
    +		this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_LEFT], 'icon sprite sprite-left', null).setAttribute('title', mxResources.get('left'));
    +		this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_CENTER], 'icon sprite sprite-center', null).setAttribute('title', mxResources.get('center'));
    +		this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_RIGHT], 'icon sprite sprite-right', null).setAttribute('title', mxResources.get('right'));
    +		this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_TOP], 'icon sprite sprite-top', null).setAttribute('title', mxResources.get('top'));
    +		this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_MIDDLE], 'icon sprite sprite-middle', null).setAttribute('title', mxResources.get('middle'));
    +		this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_BOTTOM], 'icon sprite sprite-bottom', null).setAttribute('title', mxResources.get('bottom'));
    +	}));
    +	this.addItems(['fontColor', '-', 'strokeColor', 'image', 'fillColor']);
    +	this.addItem('sprite-gradientcolor', 'gradientColor').setAttribute('title', mxResources.get('gradient'));
    +	this.addItems(['shadow']);
    +	
    +	var graph = this.editorUi.editor.graph;
    +
    +	// Update font size and font family labels
    +	var update = mxUtils.bind(this, function()
    +	{
    +		var ff = 'Helvetica';
    +		var fs = '12';
    +    	var state = graph.getView().getState(graph.getSelectionCell());
    +    	
    +    	if (state != null)
    +    	{
    +    		ff = state.style[mxConstants.STYLE_FONTFAMILY] || ff;
    +    		fs = state.style[mxConstants.STYLE_FONTSIZE] || fs;
    +    		
    +    		if (ff.length > 10)
    +    		{
    +    			ff = ff.substring(0, 8) + '...';
    +    		}
    +    		
    +    		fontElt.innerHTML = ff;
    +    		sizeElt.innerHTML = fs;
    +    	}
    +	});
    +	
    +    graph.getSelectionModel().addListener(mxEvent.CHANGE, update);
    +    graph.getModel().addListener(mxEvent.CHANGE, update);
    +	
    +	// Updates button states
    +	this.addSelectionHandler([align]);
    +};
    +
    +/**
    + * Hides the current menu.
    + */
    +Toolbar.prototype.hideMenu = function()
    +{
    +	if (this.currentMenu != null)
    +	{
    +		this.currentMenu.hideMenu();
    +		this.currentMenu.destroy();
    +		this.currentMenu = null;
    +	}
    +};
    +
    +/**
    + * Adds a label to the toolbar.
    + */
    +Toolbar.prototype.addMenu = function(label, tooltip, showLabels, name)
    +{
    +	var menu = this.editorUi.menus.get(name);
    +	var elt = this.addMenuFunction(label, tooltip, showLabels, menu.funct);
    +	
    +	menu.addListener('stateChanged', function()
    +	{
    +		elt.setEnabled(menu.enabled);
    +	});
    +
    +	return elt;
    +};
    +
    +/**
    + * Adds a label to the toolbar.
    + */
    +Toolbar.prototype.addMenuFunction = function(label, tooltip, showLabels, funct)
    +{
    +	var elt = (showLabels) ? this.createLabel(label) : this.createButton(label);
    +	this.initElement(elt, tooltip);
    +	this.addMenuHandler(elt, showLabels, funct);
    +	this.container.appendChild(elt);
    +	
    +	return elt;
    +};
    +
    +/**
    + * Adds a separator to the separator.
    + */
    +Toolbar.prototype.addSeparator = function()
    +{
    +	var elt = document.createElement('div');
    +	elt.className = 'separator';
    +	this.container.appendChild(elt);
    +	
    +	return elt;
    +};
    +
    +/**
    + * Adds given action item
    + */
    +Toolbar.prototype.addItems = function(keys)
    +{
    +	for (var i = 0; i < keys.length; i++)
    +	{
    +		var key = keys[i];
    +		
    +		if (key == '-')
    +		{
    +			this.addSeparator();
    +		}
    +		else
    +		{
    +			this.addItem('sprite-' + key.toLowerCase(), key);
    +		}
    +	}
    +};
    +
    +/**
    + * Adds given action item
    + */
    +Toolbar.prototype.addItem = function(sprite, key)
    +{
    +	var action = this.editorUi.actions.get(key);
    +	var elt = null;
    +	
    +	if (action != null)
    +	{
    +		elt = this.addButton(sprite, action.label, action.funct);
    +		elt.setEnabled(action.enabled);
    +		
    +		action.addListener('stateChanged', function()
    +		{
    +			elt.setEnabled(action.enabled);
    +		});
    +	}
    +	
    +	return elt;
    +};
    +
    +/**
    + * Adds a button to the toolbar.
    + */
    +Toolbar.prototype.addButton = function(classname, tooltip, funct)
    +{
    +	var elt = this.createButton(classname);
    +	
    +	this.initElement(elt, tooltip);
    +	this.addClickHandler(elt, funct);
    +	this.container.appendChild(elt);
    +	
    +	return elt;
    +};
    +
    +/**
    + * Updates the states of the given toolbar items based on the selection.
    + */
    +Toolbar.prototype.addSelectionHandler = function(items)
    +{
    +	var graph = this.editorUi.editor.graph;
    +	
    +	var selectionListener = function()
    +    {
    +    	var selected = !graph.isSelectionEmpty();
    +    	
    +    	for (var i = 0; i < items.length; i++)
    +    	{
    +    		items[i].setEnabled(selected);
    +    	}
    +    };
    +	    
    +    graph.getSelectionModel().addListener(mxEvent.CHANGE, selectionListener);
    +    selectionListener();
    +};
    +
    +/**
    + * Initializes the given toolbar element.
    + */
    +Toolbar.prototype.initElement = function(elt, tooltip)
    +{
    +	elt.setAttribute('tabindex', '0');
    +	
    +	// Adds tooltip
    +	if (tooltip != null)
    +	{
    +		elt.setAttribute('title', tooltip);
    +	}
    +
    +	this.addEnabledState(elt);
    +};
    +
    +/**
    + * Adds enabled state with setter to DOM node (avoids JS wrapper).
    + */
    +Toolbar.prototype.addEnabledState = function(elt)
    +{
    +	var classname = elt.className;
    +	
    +	elt.setEnabled = function(value)
    +	{
    +		elt.enabled = value;
    +		
    +		if (value)
    +		{
    +			elt.className = classname;
    +		}
    +		else
    +		{
    +			elt.className = classname + ' disabled';
    +		}
    +	};
    +	
    +	elt.setEnabled(true);
    +};
    +
    +/**
    + * Adds enabled state with setter to DOM node (avoids JS wrapper).
    + */
    +Toolbar.prototype.addClickHandler = function(elt, funct)
    +{
    +	if (funct != null)
    +	{
    +		mxEvent.addListener(elt, 'click', function(evt)
    +		{
    +			if (elt.enabled)
    +			{
    +				funct(evt);
    +			}
    +			
    +			mxEvent.consume(evt);
    +		});
    +	}
    +};
    +
    +/**
    + * Creates and returns a new button.
    + */
    +Toolbar.prototype.createButton = function(classname)
    +{
    +	var elt = document.createElement('a');
    +	elt.setAttribute('href', 'javascript:void(0);');
    +	elt.className = 'button';
    +
    +	var inner = document.createElement('div');
    +	inner.className = 'sprite ' + classname;
    +	elt.appendChild(inner);
    +	
    +	return elt;
    +};
    +
    +/**
    + * Creates and returns a new button.
    + */
    +Toolbar.prototype.createLabel = function(label, tooltip)
    +{
    +	var elt = document.createElement('a');
    +	elt.setAttribute('href', 'javascript:void(0);');
    +	elt.className = 'label';
    +	mxUtils.write(elt, label);
    +	
    +	return elt;
    +};
    +
    +/**
    + * Adds a handler for showing a menu in the given element.
    + */
    +Toolbar.prototype.addMenuHandler = function(elt, showLabels, funct, showAll)
    +{
    +	if (funct != null)
    +	{
    +		var graph = this.editorUi.editor.graph;
    +		var menu = null;
    +
    +		mxEvent.addListener(elt, 'click', mxUtils.bind(this, function(evt)
    +		{
    +			if (elt.enabled == null || elt.enabled)
    +			{
    +				graph.panningHandler.hideMenu();
    +				menu = new mxPopupMenu(funct);
    +				menu.div.className += ' toolbarMenu';
    +				menu.showDisabled = showAll;
    +				menu.labels = showLabels;
    +				menu.autoExpand = true;
    +
    +				menu.popup(elt.offsetLeft, elt.offsetTop + elt.offsetHeight + 34, null, evt);
    +				this.currentMenu = menu;
    +			}
    +			
    +			mxEvent.consume(evt);
    +		}));
    +	}
    +};
    diff --git a/javascript/examples/grapheditor/www/jscolor/arrow.gif b/javascript/examples/grapheditor/www/jscolor/arrow.gif
    new file mode 100644
    index 000000000..246478a86
    Binary files /dev/null and b/javascript/examples/grapheditor/www/jscolor/arrow.gif differ
    diff --git a/javascript/examples/grapheditor/www/jscolor/cross.gif b/javascript/examples/grapheditor/www/jscolor/cross.gif
    new file mode 100644
    index 000000000..0ee9c7ac5
    Binary files /dev/null and b/javascript/examples/grapheditor/www/jscolor/cross.gif differ
    diff --git a/javascript/examples/grapheditor/www/jscolor/hs.png b/javascript/examples/grapheditor/www/jscolor/hs.png
    new file mode 100644
    index 000000000..3d94486ce
    Binary files /dev/null and b/javascript/examples/grapheditor/www/jscolor/hs.png differ
    diff --git a/javascript/examples/grapheditor/www/jscolor/hv.png b/javascript/examples/grapheditor/www/jscolor/hv.png
    new file mode 100644
    index 000000000..1c5e01f8b
    Binary files /dev/null and b/javascript/examples/grapheditor/www/jscolor/hv.png differ
    diff --git a/javascript/examples/grapheditor/www/jscolor/jscolor.js b/javascript/examples/grapheditor/www/jscolor/jscolor.js
    new file mode 100644
    index 000000000..b8093d88c
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/jscolor/jscolor.js
    @@ -0,0 +1,913 @@
    +/**
    + * jscolor, JavaScript Color Picker
    + *
    + * @version 1.3.13
    + * @license GNU Lesser General Public License, http://www.gnu.org/copyleft/lesser.html
    + * @author  Jan Odvarko, http://odvarko.cz
    + * @created 2008-06-15
    + * @updated 2012-01-19
    + * @link    http://jscolor.com
    + */
    +
    +
    +var jscolor = {
    +
    +
    +	dir : '', // location of jscolor directory (leave empty to autodetect)
    +	bindClass : 'color', // class name
    +	binding : true, // automatic binding via <input class="...">
    +	preloading : true, // use image preloading?
    +
    +
    +	install : function() {
    +		//jscolor.addEvent(window, 'load', jscolor.init);
    +	},
    +
    +
    +	init : function() {
    +		if(jscolor.preloading) {
    +			jscolor.preload();
    +		}
    +	},
    +
    +
    +	getDir : function() {
    +		if(!jscolor.dir) {
    +			var detected = jscolor.detectDir();
    +			jscolor.dir = detected!==false ? detected : 'jscolor/';
    +		}
    +		return jscolor.dir;
    +	},
    +
    +
    +	detectDir : function() {
    +		var base = location.href;
    +
    +		var e = document.getElementsByTagName('base');
    +		for(var i=0; i<e.length; i+=1) {
    +			if(e[i].href) { base = e[i].href; }
    +		}
    +
    +		var e = document.getElementsByTagName('script');
    +		for(var i=0; i<e.length; i+=1) {
    +			if(e[i].src && /(^|\/)jscolor\.js([?#].*)?$/i.test(e[i].src)) {
    +				var src = new jscolor.URI(e[i].src);
    +				var srcAbs = src.toAbsolute(base);
    +				srcAbs.path = srcAbs.path.replace(/[^\/]+$/, ''); // remove filename
    +				srcAbs.query = null;
    +				srcAbs.fragment = null;
    +				return srcAbs.toString();
    +			}
    +		}
    +		return false;
    +	},
    +
    +	preload : function() {
    +		for(var fn in jscolor.imgRequire) {
    +			if(jscolor.imgRequire.hasOwnProperty(fn)) {
    +				jscolor.loadImage(fn);
    +			}
    +		}
    +	},
    +
    +
    +	images : {
    +		pad : [ 181, 101 ],
    +		sld : [ 16, 101 ],
    +		cross : [ 15, 15 ],
    +		arrow : [ 7, 11 ]
    +	},
    +
    +
    +	imgRequire : {},
    +	imgLoaded : {},
    +
    +
    +	requireImage : function(filename) {
    +		jscolor.imgRequire[filename] = true;
    +	},
    +
    +
    +	loadImage : function(filename) {
    +		if(!jscolor.imgLoaded[filename]) {
    +			jscolor.imgLoaded[filename] = new Image();
    +			jscolor.imgLoaded[filename].src = jscolor.getDir()+filename;
    +		}
    +	},
    +
    +
    +	fetchElement : function(mixed) {
    +		return typeof mixed === 'string' ? document.getElementById(mixed) : mixed;
    +	},
    +
    +
    +	addEvent : function(el, evnt, func) {
    +		if(el.addEventListener) {
    +			el.addEventListener(evnt, func, false);
    +		} else if(el.attachEvent) {
    +			el.attachEvent('on'+evnt, func);
    +		}
    +	},
    +
    +
    +	fireEvent : function(el, evnt) {
    +		if(!el) {
    +			return;
    +		}
    +		if(document.createEvent) {
    +			var ev = document.createEvent('HTMLEvents');
    +			ev.initEvent(evnt, true, true);
    +			el.dispatchEvent(ev);
    +		} else if(document.createEventObject) {
    +			var ev = document.createEventObject();
    +			el.fireEvent('on'+evnt, ev);
    +		} else if(el['on'+evnt]) { // alternatively use the traditional event model (IE5)
    +			el['on'+evnt]();
    +		}
    +	},
    +
    +
    +	getElementPos : function(e) {
    +		var e1=e, e2=e;
    +		var x=0, y=0;
    +		if(e1.offsetParent) {
    +			do {
    +				x += e1.offsetLeft;
    +				y += e1.offsetTop;
    +			} while(e1 = e1.offsetParent);
    +		}
    +		while((e2 = e2.parentNode) && e2.nodeName.toUpperCase() !== 'BODY') {
    +			x -= e2.scrollLeft;
    +			y -= e2.scrollTop;
    +		}
    +		return [x, y];
    +	},
    +
    +
    +	getElementSize : function(e) {
    +		return [e.offsetWidth, e.offsetHeight];
    +	},
    +
    +
    +	getRelMousePos : function(e) {
    +		var x = 0, y = 0;
    +		if (!e) { e = window.event; }
    +		if (typeof e.offsetX === 'number') {
    +			x = e.offsetX;
    +			y = e.offsetY;
    +		} else if (typeof e.layerX === 'number') {
    +			x = e.layerX;
    +			y = e.layerY;
    +		}
    +		return { x: x, y: y };
    +	},
    +
    +
    +	getViewPos : function() {
    +		if(typeof window.pageYOffset === 'number') {
    +			return [window.pageXOffset, window.pageYOffset];
    +		} else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) {
    +			return [document.body.scrollLeft, document.body.scrollTop];
    +		} else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
    +			return [document.documentElement.scrollLeft, document.documentElement.scrollTop];
    +		} else {
    +			return [0, 0];
    +		}
    +	},
    +
    +
    +	getViewSize : function() {
    +		if(typeof window.innerWidth === 'number') {
    +			return [window.innerWidth, window.innerHeight];
    +		} else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
    +			return [document.body.clientWidth, document.body.clientHeight];
    +		} else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
    +			return [document.documentElement.clientWidth, document.documentElement.clientHeight];
    +		} else {
    +			return [0, 0];
    +		}
    +	},
    +
    +
    +	URI : function(uri) { // See RFC3986
    +
    +		this.scheme = null;
    +		this.authority = null;
    +		this.path = '';
    +		this.query = null;
    +		this.fragment = null;
    +
    +		this.parse = function(uri) {
    +			var m = uri.match(/^(([A-Za-z][0-9A-Za-z+.-]*)(:))?((\/\/)([^\/?#]*))?([^?#]*)((\?)([^#]*))?((#)(.*))?/);
    +			this.scheme = m[3] ? m[2] : null;
    +			this.authority = m[5] ? m[6] : null;
    +			this.path = m[7];
    +			this.query = m[9] ? m[10] : null;
    +			this.fragment = m[12] ? m[13] : null;
    +			return this;
    +		};
    +
    +		this.toString = function() {
    +			var result = '';
    +			if(this.scheme !== null) { result = result + this.scheme + ':'; }
    +			if(this.authority !== null) { result = result + '//' + this.authority; }
    +			if(this.path !== null) { result = result + this.path; }
    +			if(this.query !== null) { result = result + '?' + this.query; }
    +			if(this.fragment !== null) { result = result + '#' + this.fragment; }
    +			return result;
    +		};
    +
    +		this.toAbsolute = function(base) {
    +			var base = new jscolor.URI(base);
    +			var r = this;
    +			var t = new jscolor.URI;
    +
    +			if(base.scheme === null) { return false; }
    +
    +			if(r.scheme !== null && r.scheme.toLowerCase() === base.scheme.toLowerCase()) {
    +				r.scheme = null;
    +			}
    +
    +			if(r.scheme !== null) {
    +				t.scheme = r.scheme;
    +				t.authority = r.authority;
    +				t.path = removeDotSegments(r.path);
    +				t.query = r.query;
    +			} else {
    +				if(r.authority !== null) {
    +					t.authority = r.authority;
    +					t.path = removeDotSegments(r.path);
    +					t.query = r.query;
    +				} else {
    +					if(r.path === '') { // TODO: == or === ?
    +						t.path = base.path;
    +						if(r.query !== null) {
    +							t.query = r.query;
    +						} else {
    +							t.query = base.query;
    +						}
    +					} else {
    +						if(r.path.substr(0,1) === '/') {
    +							t.path = removeDotSegments(r.path);
    +						} else {
    +							if(base.authority !== null && base.path === '') { // TODO: == or === ?
    +								t.path = '/'+r.path;
    +							} else {
    +								t.path = base.path.replace(/[^\/]+$/,'')+r.path;
    +							}
    +							t.path = removeDotSegments(t.path);
    +						}
    +						t.query = r.query;
    +					}
    +					t.authority = base.authority;
    +				}
    +				t.scheme = base.scheme;
    +			}
    +			t.fragment = r.fragment;
    +
    +			return t;
    +		};
    +
    +		function removeDotSegments(path) {
    +			var out = '';
    +			while(path) {
    +				if(path.substr(0,3)==='../' || path.substr(0,2)==='./') {
    +					path = path.replace(/^\.+/,'').substr(1);
    +				} else if(path.substr(0,3)==='/./' || path==='/.') {
    +					path = '/'+path.substr(3);
    +				} else if(path.substr(0,4)==='/../' || path==='/..') {
    +					path = '/'+path.substr(4);
    +					out = out.replace(/\/?[^\/]*$/, '');
    +				} else if(path==='.' || path==='..') {
    +					path = '';
    +				} else {
    +					var rm = path.match(/^\/?[^\/]*/)[0];
    +					path = path.substr(rm.length);
    +					out = out + rm;
    +				}
    +			}
    +			return out;
    +		}
    +
    +		if(uri) {
    +			this.parse(uri);
    +		}
    +
    +	},
    +
    +
    +	/*
    +	 * Usage example:
    +	 * var myColor = new jscolor.color(myInputElement)
    +	 */
    +
    +	color : function(target, prop) {
    +
    +
    +		this.required = true; // refuse empty values?
    +		this.adjust = true; // adjust value to uniform notation?
    +		this.hash = false; // prefix color with # symbol?
    +		this.caps = true; // uppercase?
    +		this.slider = true; // show the value/saturation slider?
    +		this.valueElement = target; // value holder
    +		this.styleElement = target; // where to reflect current color
    +		this.onImmediateChange = null; // onchange callback (can be either string or function)
    +		this.hsv = [0, 0, 1]; // read-only  0-6, 0-1, 0-1
    +		this.rgb = [1, 1, 1]; // read-only  0-1, 0-1, 0-1
    +
    +		this.pickerOnfocus = true; // display picker on focus?
    +		this.pickerMode = 'HSV'; // HSV | HVS
    +		this.pickerPosition = 'bottom'; // left | right | top | bottom
    +		this.pickerSmartPosition = true; // automatically adjust picker position when necessary
    +		this.pickerButtonHeight = 20; // px
    +		this.pickerClosable = false;
    +		this.pickerCloseText = 'Close';
    +		this.pickerButtonColor = 'ButtonText'; // px
    +		this.pickerFace = 0; // px
    +		this.pickerFaceColor = 'ThreeDFace'; // CSS color
    +		this.pickerBorder = 1; // px
    +		this.pickerBorderColor = 'ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight'; // CSS color
    +		this.pickerInset = 1; // px
    +		this.pickerInsetColor = 'ThreeDShadow ThreeDHighlight ThreeDHighlight ThreeDShadow'; // CSS color
    +		this.pickerZIndex = 10000;
    +
    +
    +		for(var p in prop) {
    +			if(prop.hasOwnProperty(p)) {
    +				this[p] = prop[p];
    +			}
    +		}
    +
    +
    +		this.hidePicker = function() {
    +			if(isPickerOwner()) {
    +				removePicker();
    +			}
    +		};
    +
    +
    +		this.showPicker = function() {
    +			if(!isPickerOwner()) {
    +				var tp = jscolor.getElementPos(target); // target pos
    +				var ts = jscolor.getElementSize(target); // target size
    +				var vp = jscolor.getViewPos(); // view pos
    +				var vs = jscolor.getViewSize(); // view size
    +				var ps = getPickerDims(this); // picker size
    +				var a, b, c;
    +				switch(this.pickerPosition.toLowerCase()) {
    +					case 'left': a=1; b=0; c=-1; break;
    +					case 'right':a=1; b=0; c=1; break;
    +					case 'top':  a=0; b=1; c=-1; break;
    +					default:     a=0; b=1; c=1; break;
    +				}
    +				var l = (ts[b]+ps[b])/2;
    +
    +				// picker pos
    +				if (!this.pickerSmartPosition) {
    +					var pp = [
    +						tp[a],
    +						tp[b]+ts[b]-l+l*c
    +					];
    +				} else {
    +					var pp = [
    +						-vp[a]+tp[a]+ps[a] > vs[a] ?
    +							(-vp[a]+tp[a]+ts[a]/2 > vs[a]/2 && tp[a]+ts[a]-ps[a] >= 0 ? tp[a]+ts[a]-ps[a] : tp[a]) :
    +							tp[a],
    +						-vp[b]+tp[b]+ts[b]+ps[b]-l+l*c > vs[b] ?
    +							(-vp[b]+tp[b]+ts[b]/2 > vs[b]/2 && tp[b]+ts[b]-l-l*c >= 0 ? tp[b]+ts[b]-l-l*c : tp[b]+ts[b]-l+l*c) :
    +							(tp[b]+ts[b]-l+l*c >= 0 ? tp[b]+ts[b]-l+l*c : tp[b]+ts[b]-l-l*c)
    +					];
    +				}
    +				drawPicker(0, 0);
    +			}
    +		};
    +
    +
    +		this.importColor = function() {
    +			if(!valueElement) {
    +				this.exportColor();
    +			} else {
    +				if(!this.adjust) {
    +					if(!this.fromString(valueElement.value, leaveValue)) {
    +						styleElement.style.backgroundImage = styleElement.jscStyle.backgroundImage;
    +						styleElement.style.backgroundColor = styleElement.jscStyle.backgroundColor;
    +						styleElement.style.color = styleElement.jscStyle.color;
    +						this.exportColor(leaveValue | leaveStyle);
    +					}
    +				} else if(!this.required && /^\s*$/.test(valueElement.value)) {
    +					valueElement.value = '';
    +					styleElement.style.backgroundImage = styleElement.jscStyle.backgroundImage;
    +					styleElement.style.backgroundColor = styleElement.jscStyle.backgroundColor;
    +					styleElement.style.color = styleElement.jscStyle.color;
    +					this.exportColor(leaveValue | leaveStyle);
    +
    +				} else if(this.fromString(valueElement.value)) {
    +					// OK
    +				} else {
    +					this.exportColor();
    +				}
    +			}
    +		};
    +
    +
    +		this.exportColor = function(flags) {
    +			if(!(flags & leaveValue) && valueElement) {
    +				var value = this.toString();
    +				if(this.caps) { value = value.toUpperCase(); }
    +				if(this.hash) { value = '#'+value; }
    +				valueElement.value = value;
    +			}
    +			if(!(flags & leaveStyle) && styleElement) {
    +				styleElement.style.backgroundImage = "none";
    +				styleElement.style.backgroundColor =
    +					'#'+this.toString();
    +				styleElement.style.color =
    +					0.213 * this.rgb[0] +
    +					0.715 * this.rgb[1] +
    +					0.072 * this.rgb[2]
    +					< 0.5 ? '#FFF' : '#000';
    +			}
    +			if(!(flags & leavePad) && isPickerOwner()) {
    +				redrawPad();
    +			}
    +			if(!(flags & leaveSld) && isPickerOwner()) {
    +				redrawSld();
    +			}
    +		};
    +
    +
    +		this.fromHSV = function(h, s, v, flags) { // null = don't change
    +			h<0 && (h=0) || h>6 && (h=6);
    +			s<0 && (s=0) || s>1 && (s=1);
    +			v<0 && (v=0) || v>1 && (v=1);
    +			this.rgb = HSV_RGB(
    +				h===null ? this.hsv[0] : (this.hsv[0]=h),
    +				s===null ? this.hsv[1] : (this.hsv[1]=s),
    +				v===null ? this.hsv[2] : (this.hsv[2]=v)
    +			);
    +			this.exportColor(flags);
    +		};
    +
    +
    +		this.fromRGB = function(r, g, b, flags) { // null = don't change
    +			r<0 && (r=0) || r>1 && (r=1);
    +			g<0 && (g=0) || g>1 && (g=1);
    +			b<0 && (b=0) || b>1 && (b=1);
    +			var hsv = RGB_HSV(
    +				r===null ? this.rgb[0] : (this.rgb[0]=r),
    +				g===null ? this.rgb[1] : (this.rgb[1]=g),
    +				b===null ? this.rgb[2] : (this.rgb[2]=b)
    +			);
    +			if(hsv[0] !== null) {
    +				this.hsv[0] = hsv[0];
    +			}
    +			if(hsv[2] !== 0) {
    +				this.hsv[1] = hsv[1];
    +			}
    +			this.hsv[2] = hsv[2];
    +			this.exportColor(flags);
    +		};
    +
    +
    +		this.fromString = function(hex, flags) {
    +			var m = hex.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);
    +			if(!m) {
    +				return false;
    +			} else {
    +				if(m[1].length === 6) { // 6-char notation
    +					this.fromRGB(
    +						parseInt(m[1].substr(0,2),16) / 255,
    +						parseInt(m[1].substr(2,2),16) / 255,
    +						parseInt(m[1].substr(4,2),16) / 255,
    +						flags
    +					);
    +				} else { // 3-char notation
    +					this.fromRGB(
    +						parseInt(m[1].charAt(0)+m[1].charAt(0),16) / 255,
    +						parseInt(m[1].charAt(1)+m[1].charAt(1),16) / 255,
    +						parseInt(m[1].charAt(2)+m[1].charAt(2),16) / 255,
    +						flags
    +					);
    +				}
    +				return true;
    +			}
    +		};
    +
    +
    +		this.toString = function() {
    +			return (
    +				(0x100 | Math.round(255*this.rgb[0])).toString(16).substr(1) +
    +				(0x100 | Math.round(255*this.rgb[1])).toString(16).substr(1) +
    +				(0x100 | Math.round(255*this.rgb[2])).toString(16).substr(1)
    +			);
    +		};
    +
    +
    +		function RGB_HSV(r, g, b) {
    +			var n = Math.min(Math.min(r,g),b);
    +			var v = Math.max(Math.max(r,g),b);
    +			var m = v - n;
    +			if(m === 0) { return [ null, 0, v ]; }
    +			var h = r===n ? 3+(b-g)/m : (g===n ? 5+(r-b)/m : 1+(g-r)/m);
    +			return [ h===6?0:h, m/v, v ];
    +		}
    +
    +
    +		function HSV_RGB(h, s, v) {
    +			if(h === null) { return [ v, v, v ]; }
    +			var i = Math.floor(h);
    +			var f = i%2 ? h-i : 1-(h-i);
    +			var m = v * (1 - s);
    +			var n = v * (1 - s*f);
    +			switch(i) {
    +				case 6:
    +				case 0: return [v,n,m];
    +				case 1: return [n,v,m];
    +				case 2: return [m,v,n];
    +				case 3: return [m,n,v];
    +				case 4: return [n,m,v];
    +				case 5: return [v,m,n];
    +			}
    +		}
    +
    +
    +		function removePicker() {
    +			delete jscolor.picker.owner;
    +			document.getElementsByTagName('body')[0].removeChild(jscolor.picker.boxB);
    +		}
    +
    +
    +		function drawPicker(x, y) {
    +			if(!jscolor.picker) {
    +				jscolor.picker = {
    +					box : document.createElement('div'),
    +					boxB : document.createElement('div'),
    +					pad : document.createElement('div'),
    +					padB : document.createElement('div'),
    +					padM : document.createElement('div'),
    +					sld : document.createElement('div'),
    +					sldB : document.createElement('div'),
    +					sldM : document.createElement('div'),
    +					btn : document.createElement('div'),
    +					btnS : document.createElement('span'),
    +					btnT : document.createTextNode(THIS.pickerCloseText)
    +				};
    +				for(var i=0,segSize=4; i<jscolor.images.sld[1]; i+=segSize) {
    +					var seg = document.createElement('div');
    +					seg.style.height = segSize+'px';
    +					seg.style.fontSize = '1px';
    +					seg.style.lineHeight = '0';
    +					jscolor.picker.sld.appendChild(seg);
    +				}
    +				jscolor.picker.sldB.appendChild(jscolor.picker.sld);
    +				jscolor.picker.box.appendChild(jscolor.picker.sldB);
    +				jscolor.picker.box.appendChild(jscolor.picker.sldM);
    +				jscolor.picker.padB.appendChild(jscolor.picker.pad);
    +				jscolor.picker.box.appendChild(jscolor.picker.padB);
    +				jscolor.picker.box.appendChild(jscolor.picker.padM);
    +				jscolor.picker.btnS.appendChild(jscolor.picker.btnT);
    +				jscolor.picker.btn.appendChild(jscolor.picker.btnS);
    +				jscolor.picker.box.appendChild(jscolor.picker.btn);
    +				jscolor.picker.boxB.appendChild(jscolor.picker.box);
    +			}
    +
    +			var p = jscolor.picker;
    +
    +			// controls interaction
    +			p.box.onmouseup =
    +			p.box.onmouseout = function() { if (!mxClient.IS_TOUCH) { target.focus(); } };
    +			p.box.onmousedown = function() { abortBlur=true; };
    +			p.box.onmousemove = function(e) {
    +				if (holdPad || holdSld) {
    +					holdPad && setPad(e);
    +					holdSld && setSld(e);
    +					if (document.selection) {
    +						document.selection.empty();
    +					} else if (window.getSelection) {
    +						window.getSelection().removeAllRanges();
    +					}
    +					dispatchImmediateChange();
    +				}
    +			};
    +			p.padM.onmouseup =
    +			p.padM.onmouseout = function() { if(holdPad) { holdPad=false; jscolor.fireEvent(valueElement,'change'); } };
    +			p.padM.onmousedown = function(e) {
    +				// if the slider is at the bottom, move it up
    +				switch(modeID) {
    +					case 0: if (THIS.hsv[2] === 0) { THIS.fromHSV(null, null, 1.0); }; break;
    +					case 1: if (THIS.hsv[1] === 0) { THIS.fromHSV(null, 1.0, null); }; break;
    +				}
    +				holdPad=true;
    +				setPad(e);
    +				dispatchImmediateChange();
    +			};
    +			p.sldM.onmouseup =
    +			p.sldM.onmouseout = function() { if(holdSld) { holdSld=false; jscolor.fireEvent(valueElement,'change'); } };
    +			p.sldM.onmousedown = function(e) {
    +				holdSld=true;
    +				setSld(e);
    +				dispatchImmediateChange();
    +			};
    +
    +			// picker
    +			var dims = getPickerDims(THIS);
    +			p.box.style.width = dims[0] + 'px';
    +			p.box.style.height = dims[1] + 'px';
    +
    +			// picker border
    +			p.boxB.style.position = 'absolute';
    +			p.boxB.style.clear = 'both';
    +			p.boxB.style.left = x+'px';
    +			p.boxB.style.top = y+'px';
    +			p.boxB.style.zIndex = THIS.pickerZIndex;
    +			p.boxB.style.border = THIS.pickerBorder+'px solid';
    +			p.boxB.style.borderColor = THIS.pickerBorderColor;
    +			p.boxB.style.background = THIS.pickerFaceColor;
    +
    +			// pad image
    +			p.pad.style.width = jscolor.images.pad[0]+'px';
    +			p.pad.style.height = jscolor.images.pad[1]+'px';
    +
    +			// pad border
    +			p.padB.style.position = 'absolute';
    +			p.padB.style.left = THIS.pickerFace+'px';
    +			p.padB.style.top = THIS.pickerFace+'px';
    +			p.padB.style.border = THIS.pickerInset+'px solid';
    +			p.padB.style.borderColor = THIS.pickerInsetColor;
    +
    +			// pad mouse area
    +			p.padM.style.position = 'absolute';
    +			p.padM.style.left = '0';
    +			p.padM.style.top = '0';
    +			p.padM.style.width = THIS.pickerFace + 2*THIS.pickerInset + jscolor.images.pad[0] + jscolor.images.arrow[0] + 'px';
    +			p.padM.style.height = p.box.style.height;
    +			p.padM.style.cursor = 'crosshair';
    +
    +			// slider image
    +			p.sld.style.overflow = 'hidden';
    +			p.sld.style.width = jscolor.images.sld[0]+'px';
    +			p.sld.style.height = jscolor.images.sld[1]+'px';
    +
    +			// slider border
    +			p.sldB.style.display = THIS.slider ? 'block' : 'none';
    +			p.sldB.style.position = 'absolute';
    +			p.sldB.style.right = THIS.pickerFace+'px';
    +			p.sldB.style.top = THIS.pickerFace+'px';
    +			p.sldB.style.border = THIS.pickerInset+'px solid';
    +			p.sldB.style.borderColor = THIS.pickerInsetColor;
    +
    +			// slider mouse area
    +			p.sldM.style.display = THIS.slider ? 'block' : 'none';
    +			p.sldM.style.position = 'absolute';
    +			p.sldM.style.right = '0';
    +			p.sldM.style.top = '0';
    +			p.sldM.style.width = jscolor.images.sld[0] + jscolor.images.arrow[0] + THIS.pickerFace + 2*THIS.pickerInset + 'px';
    +			p.sldM.style.height = p.box.style.height;
    +			try {
    +				p.sldM.style.cursor = 'pointer';
    +			} catch(eOldIE) {
    +				p.sldM.style.cursor = 'hand';
    +			}
    +
    +			// "close" button
    +			function setBtnBorder() {
    +				var insetColors = THIS.pickerInsetColor.split(/\s+/);
    +				var pickerOutsetColor = insetColors.length < 2 ? insetColors[0] : insetColors[1] + ' ' + insetColors[0] + ' ' + insetColors[0] + ' ' + insetColors[1];
    +				p.btn.style.borderColor = pickerOutsetColor;
    +			}
    +			p.btn.style.display = THIS.pickerClosable ? 'block' : 'none';
    +			p.btn.style.position = 'absolute';
    +			p.btn.style.left = THIS.pickerFace + 'px';
    +			p.btn.style.bottom = THIS.pickerFace + 'px';
    +			p.btn.style.padding = '0 15px';
    +			p.btn.style.height = '18px';
    +			p.btn.style.border = THIS.pickerInset + 'px solid';
    +			setBtnBorder();
    +			p.btn.style.color = THIS.pickerButtonColor;
    +			p.btn.style.font = '12px sans-serif';
    +			p.btn.style.textAlign = 'center';
    +			try {
    +				p.btn.style.cursor = 'pointer';
    +			} catch(eOldIE) {
    +				p.btn.style.cursor = 'hand';
    +			}
    +			p.btn.onmousedown = function () {
    +				THIS.hidePicker();
    +			};
    +			p.btnS.style.lineHeight = p.btn.style.height;
    +
    +			// load images in optimal order
    +			switch(modeID) {
    +				case 0: var padImg = 'hs.png'; break;
    +				case 1: var padImg = 'hv.png'; break;
    +			}
    +			p.padM.style.backgroundImage = "url('"+jscolor.getDir()+"cross.gif')";
    +			p.padM.style.backgroundRepeat = "no-repeat";
    +			p.sldM.style.backgroundImage = "url('"+jscolor.getDir()+"arrow.gif')";
    +			p.sldM.style.backgroundRepeat = "no-repeat";
    +			p.pad.style.backgroundImage = "url('"+jscolor.getDir()+padImg+"')";
    +			p.pad.style.backgroundRepeat = "no-repeat";
    +			p.pad.style.backgroundPosition = "0 0";
    +
    +			// place pointers
    +			redrawPad();
    +			redrawSld();
    +
    +			jscolor.picker.owner = THIS;
    +			document.getElementsByTagName('body')[0].appendChild(p.boxB);
    +		}
    +
    +
    +		function getPickerDims(o) {
    +			var dims = [
    +				2*o.pickerInset + 2*o.pickerFace + jscolor.images.pad[0] +
    +					(o.slider ? 2*o.pickerInset + 2*jscolor.images.arrow[0] + jscolor.images.sld[0] : 0),
    +				o.pickerClosable ?
    +					4*o.pickerInset + 3*o.pickerFace + jscolor.images.pad[1] + o.pickerButtonHeight :
    +					2*o.pickerInset + 2*o.pickerFace + jscolor.images.pad[1]
    +			];
    +			return dims;
    +		}
    +
    +
    +		function redrawPad() {
    +			// redraw the pad pointer
    +			switch(modeID) {
    +				case 0: var yComponent = 1; break;
    +				case 1: var yComponent = 2; break;
    +			}
    +			var x = Math.round((THIS.hsv[0]/6) * (jscolor.images.pad[0]-1));
    +			var y = Math.round((1-THIS.hsv[yComponent]) * (jscolor.images.pad[1]-1));
    +			jscolor.picker.padM.style.backgroundPosition =
    +				(THIS.pickerFace+THIS.pickerInset+x - Math.floor(jscolor.images.cross[0]/2)) + 'px ' +
    +				(THIS.pickerFace+THIS.pickerInset+y - Math.floor(jscolor.images.cross[1]/2)) + 'px';
    +
    +			// redraw the slider image
    +			var seg = jscolor.picker.sld.childNodes;
    +
    +			switch(modeID) {
    +				case 0:
    +					var rgb = HSV_RGB(THIS.hsv[0], THIS.hsv[1], 1);
    +					for(var i=0; i<seg.length; i+=1) {
    +						seg[i].style.backgroundColor = 'rgb('+
    +							(rgb[0]*(1-i/seg.length)*100)+'%,'+
    +							(rgb[1]*(1-i/seg.length)*100)+'%,'+
    +							(rgb[2]*(1-i/seg.length)*100)+'%)';
    +					}
    +					break;
    +				case 1:
    +					var rgb, s, c = [ THIS.hsv[2], 0, 0 ];
    +					var i = Math.floor(THIS.hsv[0]);
    +					var f = i%2 ? THIS.hsv[0]-i : 1-(THIS.hsv[0]-i);
    +					switch(i) {
    +						case 6:
    +						case 0: rgb=[0,1,2]; break;
    +						case 1: rgb=[1,0,2]; break;
    +						case 2: rgb=[2,0,1]; break;
    +						case 3: rgb=[2,1,0]; break;
    +						case 4: rgb=[1,2,0]; break;
    +						case 5: rgb=[0,2,1]; break;
    +					}
    +					for(var i=0; i<seg.length; i+=1) {
    +						s = 1 - 1/(seg.length-1)*i;
    +						c[1] = c[0] * (1 - s*f);
    +						c[2] = c[0] * (1 - s);
    +						seg[i].style.backgroundColor = 'rgb('+
    +							(c[rgb[0]]*100)+'%,'+
    +							(c[rgb[1]]*100)+'%,'+
    +							(c[rgb[2]]*100)+'%)';
    +					}
    +					break;
    +			}
    +		}
    +
    +
    +		function redrawSld() {
    +			// redraw the slider pointer
    +			switch(modeID) {
    +				case 0: var yComponent = 2; break;
    +				case 1: var yComponent = 1; break;
    +			}
    +			var y = Math.round((1-THIS.hsv[yComponent]) * (jscolor.images.sld[1]-1));
    +			jscolor.picker.sldM.style.backgroundPosition =
    +				'0 ' + (THIS.pickerFace+THIS.pickerInset+y - Math.floor(jscolor.images.arrow[1]/2)) + 'px';
    +		}
    +
    +
    +		function isPickerOwner() {
    +			return jscolor.picker && jscolor.picker.owner === THIS;
    +		}
    +
    +
    +		function blurTarget() {
    +			if(valueElement === target) {
    +				THIS.importColor();
    +			}
    +			if(THIS.pickerOnfocus) {
    +				THIS.hidePicker();
    +			}
    +		}
    +
    +
    +		function blurValue() {
    +			if(valueElement !== target) {
    +				THIS.importColor();
    +			}
    +		}
    +
    +
    +		function setPad(e) {
    +			var mpos = jscolor.getRelMousePos(e);
    +			var x = mpos.x - THIS.pickerFace - THIS.pickerInset;
    +			var y = mpos.y - THIS.pickerFace - THIS.pickerInset;
    +			switch(modeID) {
    +				case 0: THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)), 1 - y/(jscolor.images.pad[1]-1), null, leaveSld); break;
    +				case 1: THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)), null, 1 - y/(jscolor.images.pad[1]-1), leaveSld); break;
    +			}
    +		}
    +
    +
    +		function setSld(e) {
    +			var mpos = jscolor.getRelMousePos(e);
    +			var y = mpos.y - THIS.pickerFace - THIS.pickerInset;
    +			switch(modeID) {
    +				case 0: THIS.fromHSV(null, null, 1 - y/(jscolor.images.sld[1]-1), leavePad); break;
    +				case 1: THIS.fromHSV(null, 1 - y/(jscolor.images.sld[1]-1), null, leavePad); break;
    +			}
    +		}
    +
    +
    +		function dispatchImmediateChange() {
    +			if (THIS.onImmediateChange) {
    +				if (typeof THIS.onImmediateChange === 'string') {
    +					eval(THIS.onImmediateChange);
    +				} else {
    +					THIS.onImmediateChange(THIS);
    +				}
    +			}
    +		}
    +
    +
    +		var THIS = this;
    +		var modeID = this.pickerMode.toLowerCase()==='hvs' ? 1 : 0;
    +		var abortBlur = false;
    +		var
    +			valueElement = jscolor.fetchElement(this.valueElement),
    +			styleElement = jscolor.fetchElement(this.styleElement);
    +		var
    +			holdPad = false,
    +			holdSld = false;
    +		var
    +			leaveValue = 1<<0,
    +			leaveStyle = 1<<1,
    +			leavePad = 1<<2,
    +			leaveSld = 1<<3;
    +
    +		// target
    +		/*jscolor.addEvent(target, 'focus', function() {
    +			if(THIS.pickerOnfocus) { THIS.showPicker(); }
    +		});
    +		jscolor.addEvent(target, 'blur', function() {
    +			if(!abortBlur) {
    +				window.setTimeout(function(){ abortBlur || blurTarget(); abortBlur=false; }, 0);
    +			} else {
    +				abortBlur = false;
    +			}
    +		});*/
    +
    +		// valueElement
    +		if(valueElement) {
    +			var updateField = function() {
    +				THIS.fromString(valueElement.value, leaveValue);
    +				dispatchImmediateChange();
    +			};
    +			jscolor.addEvent(valueElement, 'keyup', updateField);
    +			jscolor.addEvent(valueElement, 'input', updateField);
    +			jscolor.addEvent(valueElement, 'blur', blurValue);
    +			valueElement.setAttribute('autocomplete', 'off');
    +		}
    +
    +		// styleElement
    +		if(styleElement) {
    +			styleElement.jscStyle = {
    +				backgroundImage : styleElement.style.backgroundImage,
    +				backgroundColor : styleElement.style.backgroundColor,
    +				color : styleElement.style.color
    +			};
    +		}
    +
    +		// require images
    +		switch(modeID) {
    +			case 0: jscolor.requireImage('hs.png'); break;
    +			case 1: jscolor.requireImage('hv.png'); break;
    +		}
    +		jscolor.requireImage('cross.gif');
    +		jscolor.requireImage('arrow.gif');
    +
    +		this.importColor();
    +	}
    +
    +};
    +
    +
    +jscolor.install();
    diff --git a/javascript/examples/grapheditor/www/open.html b/javascript/examples/grapheditor/www/open.html
    new file mode 100644
    index 000000000..93f29ea30
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/open.html
    @@ -0,0 +1,211 @@
    +<!DOCTYPE html>
    +<html>
    +<head>
    +    <title>Open Diagram</title>
    +    <link rel="stylesheet" type="text/css" href="styles/grapheditor.css" />
    +    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    +</head>
    +<script type="text/javascript">
    +	// Reads files locally
    +	function handleFiles(files)
    +	{
    +		for (var i = 0; i < files.length; i++)
    +		{
    +			(function(file)
    +			{
    +				window.parent.open(window.parent.location.href);
    +				
    +				var reader = new FileReader();
    +				reader.onload = function(e)
    +				{
    +					window.parent.openFile.setData(e.target.result, file.name);
    +				};
    +				reader.onerror = function(e)
    +				{
    +					console.log(e);
    +				};
    +				reader.readAsText(file);
    +			})(files[i]);
    +		}
    +	};
    +
    +	// Handles form-submit by preparing to process response
    +	function handleSubmit()
    +	{
    +		var form = window.openForm || document.getElementById('openForm');
    +		
    +		// Checks for support of the File API for local file access
    +		// except for Visio files where the parse is on the server
    +		if (window.parent.fileSupport && form.upfile.files.length > 0)
    +		{
    +			handleFiles(form.upfile.files);
    +			
    +			return false;
    +		}
    +		else
    +		{
    +			if (/(\.xml)$/i.test(form.upfile.value) || /(\.txt)$/i.test(form.upfile.value) ||
    +				/(\.mxe)$/i.test(form.upfile.value))
    +			{
    +				window.parent.open(window.parent.location.href);
    +				
    +				// NOTE: File is loaded via JS injection into the iframe, which in turn sets the
    +				// file contents in the parent window. The new window asks its opener if any file
    +				// contents are available or waits for the contents to become available.
    +				return true;
    +			}
    +			else
    +			{
    +				window.parent.mxUtils.alert(window.parent.mxResources.get('invalidOrMissingFile'));
    +				
    +				return false;
    +			}
    +		}
    +	};
    +	
    +	// Hides this dialog
    +	function hideWindow()
    +	{
    +		window.parent.openFile.cancel();
    +	}
    +	
    +	function fileChanged()
    +	{
    +		var form = window.openForm || document.getElementById('openForm');
    +		var openButton = document.getElementById('openButton');
    +		
    +		if (form.upfile.value.length > 0)
    +		{
    +			openButton.removeAttribute('disabled');
    +		}
    +		else
    +		{
    +			openButton.setAttribute('disabled', 'disabled');
    +		}		
    +	}
    +
    +	function main()
    +	{
    +		if (window.parent.useLocalStorage)
    +		{
    +			document.body.innerHTML = '';
    +			var div = document.createElement('div');
    +			div.style.fontFamily = 'Arial';
    +			
    +			if (localStorage.length == 0)
    +			{
    +				window.parent.mxUtils.write(div, window.parent.mxResources.get('noFiles'));
    +			}
    +			else
    +			{
    +				// TODO: Size is known
    +				var keys = [];
    +				
    +				for (var i = 0; i < localStorage.length; i++)
    +				{
    +					keys.push(localStorage.key(i));
    +				}
    +				
    +				// Sorts the array by filename (key)
    +				keys.sort();
    +				
    +				for (var i = 0; i < keys.length; i++)
    +				{
    +					var link = document.createElement('a');
    +					link.style.fontDecoration = 'none';
    +					link.style.fontSize = '14pt';
    +					var key = keys[i];
    +					window.parent.mxUtils.write(link, key);
    +					link.setAttribute('href', 'javascript:void(0);');
    +					div.appendChild(link);
    +					
    +					var img = document.createElement('span');
    +					img.className = 'sprite sprite-delete';
    +					img.style.position = 'relative';
    +					img.style.cursor = 'pointer';
    +					img.style.display = 'inline-block';
    +					div.appendChild(img);
    +					
    +					window.parent.mxUtils.br(div);
    +					
    +					window.parent.mxEvent.addListener(img, 'click', (function(k)
    +					{
    +						return function()
    +						{
    +							if (window.parent.mxUtils.confirm(window.parent.mxResources.get('delete') + ' "' + k + '"?'))
    +							{
    +								localStorage.removeItem(k);
    +								window.location.reload();
    +							}
    +						};
    +					})(key));
    +
    +					window.parent.mxEvent.addListener(link, 'click', (function(k)
    +					{
    +						return function()
    +						{
    +							try
    +							{
    +								window.parent.open(window.parent.location.href);
    +								window.parent.openFile.setData(localStorage.getItem(k), k);
    +							}
    +							catch (e)
    +							{
    +								window.parent.mxUtils.alert(e.message);
    +							}
    +						};
    +					})(key));
    +				}
    +			}
    +
    +			window.parent.mxUtils.br(div);
    +			window.parent.mxUtils.br(div);
    +			
    +			div.appendChild(window.parent.mxUtils.button(window.parent.mxResources.get('cancel'), function()
    +			{
    +				hideWindow();
    +			}));
    +			
    +			document.body.appendChild(div);
    +		}
    +		else
    +		{
    +			var editLink = document.getElementById('editLink');
    +			var openButton = document.getElementById('openButton');
    +			openButton.value = window.parent.mxResources.get('open');
    +			var cancelButton = document.getElementById('cancelButton');
    +			cancelButton.value = window.parent.mxResources.get('cancel');
    +			var supportedText = document.getElementById('openSupported');
    +			supportedText.innerHTML = window.parent.mxResources.get('openSupported');
    +			var form = window.openForm || document.getElementById('openForm');
    +			
    +			// FIXME: Adds .html in IE
    +			form.setAttribute('action', window.parent.OPEN_URL);
    +		}
    +	};
    +</script>
    +<body onload="main();">
    +<form method="POST" enctype="multipart/form-data" action="" name="openForm"
    +	id="openForm" onsubmit="return handleSubmit();" accept-charset="UTF-8">
    +<table>
    +<tr>
    +<td style="height:40px;vertical-align:top;" colspan="2">
    +<input type="file" name="upfile" onchange="fileChanged()">
    +</td>
    +</tr>
    +<tr>
    +<td colspan="2" height="80px" id="openSupported" style="font-family:arial;color:grey;font-size:9pt;vertical-align:top;text-align:left;">
    +</td>
    +</tr>
    +<tr>
    +<td>
    +</td>
    +<td style="vertical-align:middle;text-align:right;white-space:nowrap;">
    +<input type="submit" id="openButton" value="Open" disabled="disabled">
    +<input type="button" id="cancelButton" value="Cancel" onclick="hideWindow();">
    +</td>
    +</tr>
    +</table>
    +</form>
    +</body>
    +</html>
    diff --git a/javascript/examples/grapheditor/www/resources/grapheditor.properties b/javascript/examples/grapheditor/www/resources/grapheditor.properties
    new file mode 100644
    index 000000000..c39034cf7
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/resources/grapheditor.properties
    @@ -0,0 +1,167 @@
    +# Resources from graph.properties
    +alreadyConnected=Nodes already connected
    +cancel=Cancel
    +close=Close
    +collapse-expand=Collapse/Expand
    +containsValidationErrors=Contains validation errors
    +done=Done
    +doubleClickOrientation=Doubleclick to change orientation
    +error=Error
    +ok=OK
    +updatingDocument=Updating Document. Please wait...
    +updatingSelection=Updating Selection. Please wait...
    +# Custom resources
    +about=About
    +actualSize=Actual Size
    +align=Align
    +alignment=Alignment
    +allChangesLost=All changes will be lost!
    +apply=Apply
    +arrange=Arrange
    +arrow=Arrow
    +arrows=Arrows
    +autosize=Autosize
    +backgroundColor=Background color
    +basic=Basic
    +block=Block
    +bold=Bold
    +border=Border
    +borderColor=Border color
    +bottom=Bottom
    +bottomAlign=Bottom Align
    +center=Center
    +changeOrientation=Change Orientation
    +classic=Classic
    +clipart=Clipart
    +collapse=Collapse
    +connect=Connect
    +connection=Connection
    +copy=Copy
    +custom=Custom
    +cut=Cut
    +dashed=Dashed
    +delete=Delete
    +diamond=Diamond
    +diamondThin=Diamond (Thin)
    +direction=Direction
    +drawing=Drawing{1}
    +drawingEmpty=Drawing is empty
    +drawingTooLarge=Drawing is too large
    +duplicate=Duplicate
    +east=East
    +edit=Edit
    +enterGroup=Enter Group
    +enterValue=Enter value
    +entityRelation=Entity Relation
    +exitGroup=Exit Group
    +expand=Expand
    +export=Export
    +file=File
    +fileNotFound=File not found
    +filename=Filename
    +fillColor=Fill color
    +fitWindow=Fit Window
    +flipH=Flip Horizontal
    +flipV=Flip Vertical
    +fontFamily=Font family
    +fontColor=Font color
    +fontSize=Font size
    +format=Format
    +general=General
    +global=Global
    +gradient=Gradient
    +gradientColor=Color
    +grid=Grid
    +group=Group
    +guides=Guides
    +height=Height
    +help=Help
    +hide=Hide
    +home=Home
    +horizontal=Horizontal
    +horizontalTree=Horizontal tree
    +image=Image
    +invalidOrMissingFile=Invalid or missing file
    +italic=Italic
    +landscape=Landscape
    +layout=Layout
    +left=Left
    +leftAlign=Left Align
    +line=Line
    +lineend=Line End
    +linestart=Line Start
    +linewidth=Linewidth
    +middle=Middle
    +move=Move
    +navigation=Navigation
    +new=New
    +noColor=No color
    +noFiles=No files
    +none=None
    +north=North
    +opacity=Opacity
    +open=Open
    +openArrow=Open Arrow
    +openFile=Open File
    +openSupported=Supported format is .XML files saved from this software
    +options=Options
    +orthogonal=Orthogonal
    +oval=Oval
    +pageView=Page View
    +pages=Pages
    +paperSize=Paper Size
    +paste=Paste
    +perimeter=Perimeter
    +plain=Plain
    +position=Position
    +posterPrint=Poster Print
    +preview=Preview
    +print=Print
    +redo=Redo
    +removeFromGroup=Remove from group
    +replace={1} already exists. Do you want to replace it?
    +right=Right
    +rightAlign=Right Align
    +rotate=Rotate
    +rotation=Rotation
    +rounded=Rounded
    +save=Save
    +saveAs=Save As
    +saved=Saved
    +scrollbars=Scrollbars
    +selectAll=Select All
    +selectEdges=Select Edges
    +selectFont=Select a font
    +selectVertices=Select Vertices
    +shadow=Shadow
    +shape=Shape
    +size=Size
    +sourceSpacing=Source Spacing
    +south=South
    +spacing=Spacing
    +straight=Straight
    +strokeColor=Line color
    +style=Style
    +targetSpacing=Target Spacing
    +text=Text
    +textAlignment=Text Alignment
    +textOpacity=Text Opacity
    +toBack=To Back
    +toFront=To Front
    +tooltips=Tooltips
    +top=Top
    +topAlign=Top Align
    +transparent=Transparent
    +underline=Underline
    +undo=Undo
    +ungroup=Ungroup
    +url=URL
    +useAsDefaultEdge=Use as default edge
    +vertical=Vertical
    +verticalTree=Vertical tree
    +view=View
    +west=West
    +width=Width
    +zoom=Zoom
    +zoomIn=Zoom In
    +zoomOut=Zoom Out
    diff --git a/javascript/examples/grapheditor/www/resources/grapheditor_de.properties b/javascript/examples/grapheditor/www/resources/grapheditor_de.properties
    new file mode 100644
    index 000000000..ac6ae67f5
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/resources/grapheditor_de.properties
    @@ -0,0 +1,167 @@
    +# Resources from graph.properties
    +alreadyConnected=Knoten schon verbunden
    +cancel=Abbrechen
    +close=Schliessen
    +collapse-expand=Einklappen/Ausklappen
    +containsValidationErrors=Enth%e4lt Validierungsfehler
    +done=Fertig
    +doubleClickOrientation=Doppelklicken um Orientierung zu %e4ndern
    +error=Fehler
    +ok=OK
    +updatingDocument=Aktualisiere Dokument. Bitte warten...
    +updatingSelection=Aktualisiere Markierung. Bitte warten...
    +# Custom resources
    +about=%dcber
    +actualSize=Tats%e4chliche Gr%f6sse
    +align=Ausrichten
    +alignment=Ausrichtung
    +allChangesLost=Alle %c4nderungen gehen verloren!
    +apply=Anwenden
    +arrange=Anordnen
    +arrow=Pfeil
    +arrows=Pfeile
    +autosize=Gr%f6sse anpassen
    +backgroundColor=Hintergrundfarbe
    +basic=Einfach
    +block=Block
    +bold=Fett
    +border=Rand
    +borderColor=Rahmenfarbe
    +bottom=Unten
    +bottomAlign=Unten
    +center=Zentriert
    +changeOrientation=Orientierung %E4ndern
    +classic=Klassisch
    +clipart=Clipart
    +collapse=Einklappen
    +connect=Verbinden
    +connection=Verbindung
    +copy=Kopieren
    +custom=Benutzerdefiniert
    +cut=Ausschneiden
    +dashed=Gestrichelt
    +delete=L%f6schen
    +diamond=Diamant
    +diamondThin=Diamant (Schmal)
    +direction=Richtung
    +drawing=Zeichnung{1}
    +drawingEmpty=Zeichnung ist leer
    +drawingTooLarge=Zeichnung ist zu gross
    +duplicate=Duplizieren
    +east=Ost
    +edit=Bearbeiten
    +enterGroup=In Gruppe Hinein
    +enterValue=Wert eingeben
    +entityRelation=Entity Relation
    +exitGroup=Aus Gruppe Heraus
    +expand=Ausklappen
    +export=Exportieren
    +file=Datei
    +fileNotFound=Datei nicht gefunden
    +filename=Dateiname
    +fillColor=F%fcllfarbe
    +fitWindow=An Fenstergr%f6sse anpassen
    +flipH=Horizontal Spiegeln
    +flipV=Vertikal Spiegeln
    +fontFamily=Schriftart
    +fontColor=Schriftfarbe
    +fontSize=Schriftgr%f6sse
    +format=Format
    +general=Allgemein
    +global=Global
    +gradient=Farbverlauf
    +gradientColor=Farbe
    +grid=Gitternetz
    +group=Gruppieren
    +guides=Hilfslinien
    +height=H%f6he
    +help=Hilfe
    +hide=Verstecken
    +home=Ursprung
    +horizontal=Horizontal
    +horizontalTree=Horizontaler Baum
    +image=Bild
    +invalidOrMissingFile=Ung%fcltige oder fehlende Datei
    +italic=Kursiv
    +landscape=Querformat
    +layout=Layout
    +left=Links
    +leftAlign=Links
    +line=Linie
    +lineend=Linienende
    +linestart=Linienanfang
    +linewidth=Linienbreite
    +middle=Mitte
    +move=Verschieben
    +navigation=Navigation
    +new=Neu
    +noColor=Keine Farbe
    +noFiles=Keine Dateien
    +none=Keine
    +north=Nord
    +opacity=Deckkraft
    +open=%d6ffnen
    +openArrow=Offen
    +openFile=Datei %f6ffnen
    +openSupported=Unterst%fctzte Formate sind mit dieser Anwendung erstellte .XML Dateien
    +options=Optionen
    +orthogonal=Orthogonal
    +oval=Oval
    +pageView=Seitenansicht
    +pages=Seiten
    +paperSize=Papiergr%f6sse
    +paste=Einf%fcgen
    +perimeter=Umfang
    +plain=Einfach
    +position=Position
    +posterPrint=Posterdruck
    +preview=Vorschau
    +print=Drucken
    +redo=Wiederherstellen
    +removeFromGroup=Aus Gruppe entfernen
    +replace={1} existiert bereits. Soll die Datei %fcberschrieben werden?
    +right=Rechts
    +rightAlign=Rechts
    +rotate=Rotieren
    +rotation=Rotation
    +rounded=Abgerundet
    +save=Speichern
    +saveAs=Speichern unter
    +saved=Gespeichert
    +scrollbars=Scrollbars
    +selectAll=Alles markieren
    +selectEdges=Kanten markieren
    +selectFont=Schriftart w%e4hlen
    +selectVertices=Knoten markieren
    +shadow=Schatten
    +shape=Shape
    +size=Gr%f6sse
    +sourceSpacing=Anfangsabstand
    +south=S%fcd
    +spacing=Abstand
    +straight=Gerade
    +strokeColor=Linienfarbe
    +style=Style
    +targetSpacing=Endabstand
    +text=Text
    +textAlignment=Text Ausrichtung
    +textOpacity=Text Deckkraft
    +toBack=Nach Hinten
    +toFront=Nach Vorne
    +tooltips=Tooltips
    +top=Oben
    +topAlign=Oben
    +transparent=Transparent
    +underline=Unterstrichen
    +undo=R%fcckg%e4ngig
    +ungroup=Gruppierung aufheben
    +url=URL
    +useAsDefaultEdge=Als Standardkante verwenden
    +vertical=Vertikal
    +verticalTree=Vertikaler Baum
    +view=Ansicht
    +west=West
    +width=Breite
    +zoom=Zoom
    +zoomIn=Hineinzoomen
    +zoomOut=Herauszoomen
    diff --git a/javascript/examples/grapheditor/www/resources/help.html b/javascript/examples/grapheditor/www/resources/help.html
    new file mode 100644
    index 000000000..4d2ecbcbf
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/resources/help.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE html>
    +<html>
    +<head>
    +    <title>Graph Editor Help</title>
    +    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    +    <link rel="stylesheet" type="text/css" href="../styles/help.css">
    +</head>
    +<body>
    +	<h1>Graph Editor Help</h1>
    +	<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
    +	eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
    +	voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
    +	clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
    +	amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
    +	nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
    +	diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
    +	Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
    +	sit amet.</p>
    +</body>
    +</html>
    diff --git a/javascript/examples/grapheditor/www/resources/help_de.html b/javascript/examples/grapheditor/www/resources/help_de.html
    new file mode 100644
    index 000000000..165f552cd
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/resources/help_de.html
    @@ -0,0 +1,20 @@
    +<!DOCTYPE html>
    +<html>
    +<head>
    +    <title>Graph Editor Hilfe</title>
    +    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    +    <link rel="stylesheet" type="text/css" href="../styles/help.css">
    +</head>
    +<body>
    +	<h1>Graph Editor Hilfe</h1>
    +	<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
    +	eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
    +	voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
    +	clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
    +	amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
    +	nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
    +	diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
    +	Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
    +	sit amet.</p>
    +</body>
    +</html>
    diff --git a/javascript/examples/grapheditor/www/stencils/arrows.xml b/javascript/examples/grapheditor/www/stencils/arrows.xml
    new file mode 100644
    index 000000000..3d09d0007
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/stencils/arrows.xml
    @@ -0,0 +1,849 @@
    +<shapes name="mxGraph.arrows">
    +<shape name="Arrow Down" h="97.5" w="70" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +</connections>
    +<background>
    +<path>
    +<move x="20" y="0"/>
    +<line x="20" y="59"/>
    +<line x="0" y="59"/>
    +<line x="35" y="97.5"/>
    +<line x="70" y="59"/>
    +<line x="50" y="59"/>
    +<line x="50" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Arrow Left" h="70" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="97.5" y="20"/>
    +<line x="38.5" y="20"/>
    +<line x="38.5" y="0"/>
    +<line x="0" y="35"/>
    +<line x="38.5" y="70"/>
    +<line x="38.5" y="50"/>
    +<line x="97.5" y="50"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Arrow Right" h="70" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="20"/>
    +<line x="59" y="20"/>
    +<line x="59" y="0"/>
    +<line x="97.5" y="35"/>
    +<line x="59" y="70"/>
    +<line x="59" y="50"/>
    +<line x="0" y="50"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Arrow Up" h="97.5" w="70" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +</connections>
    +<background>
    +<path>
    +<move x="20" y="97.5"/>
    +<line x="20" y="38.5"/>
    +<line x="0" y="38.5"/>
    +<line x="35" y="0"/>
    +<line x="70" y="38.5"/>
    +<line x="50" y="38.5"/>
    +<line x="50" y="97.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Bent Left Arrow" h="97" w="97.01" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.85" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.29" perimeter="0" name="W"/>
    +</connections>
    +<background>
    +<path>
    +<move x="68" y="97"/>
    +<line x="68" y="48"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="63" y="43"/>
    +<line x="38" y="43"/>
    +<line x="38" y="56"/>
    +<line x="0" y="28"/>
    +<line x="38" y="0"/>
    +<line x="38" y="13"/>
    +<line x="63" y="13"/>
    +<arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="97" y="48"/>
    +<line x="97" y="97"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Bent Right Arrow" h="97" w="97.01" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.15" y="1" perimeter="0" name="S"/>
    +<constraint x="1" y="0.29" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="29.01" y="97"/>
    +<line x="29.01" y="48"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="34.01" y="43"/>
    +<line x="59.01" y="43"/>
    +<line x="59.01" y="56"/>
    +<line x="97.01" y="28"/>
    +<line x="59.01" y="0"/>
    +<line x="59.01" y="13"/>
    +<line x="34.01" y="13"/>
    +<arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="0.01" y="48"/>
    +<line x="0.01" y="97"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Bent Up Arrow" h="83.5" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.71" y="0" perimeter="0" name="N"/>
    +<constraint x="0" y="0.82" perimeter="0" name="W"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="53.5"/>
    +<line x="54" y="53.5"/>
    +<line x="54" y="23.5"/>
    +<line x="42" y="23.5"/>
    +<line x="69" y="0"/>
    +<line x="97" y="23.5"/>
    +<line x="84" y="23.5"/>
    +<line x="84" y="83.5"/>
    +<line x="0" y="83.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Callout Double Arrow" h="97.5" w="50" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +</connections>
    +<background>
    +<path>
    +<move x="15" y="24"/>
    +<line x="15" y="19"/>
    +<line x="6" y="19"/>
    +<line x="25" y="0"/>
    +<line x="44" y="19"/>
    +<line x="35" y="19"/>
    +<line x="35" y="24"/>
    +<line x="50" y="24"/>
    +<line x="50" y="74"/>
    +<line x="35" y="74"/>
    +<line x="35" y="79"/>
    +<line x="44" y="79"/>
    +<line x="25" y="97.5"/>
    +<line x="6" y="79"/>
    +<line x="15" y="79"/>
    +<line x="15" y="74"/>
    +<line x="0" y="74"/>
    +<line x="0" y="24"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Callout Quad Arrow" h="97" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="38.5" y="23.5"/>
    +<line x="38.5" y="18.5"/>
    +<line x="29.5" y="18.5"/>
    +<line x="48.5" y="0"/>
    +<line x="67.5" y="18.5"/>
    +<line x="58.5" y="18.5"/>
    +<line x="58.5" y="23.5"/>
    +<line x="73.5" y="23.5"/>
    +<line x="73.5" y="38.5"/>
    +<line x="78.5" y="38.5"/>
    +<line x="78.5" y="29.5"/>
    +<line x="97" y="48.5"/>
    +<line x="78.5" y="67.5"/>
    +<line x="78.5" y="58.5"/>
    +<line x="73.5" y="58.5"/>
    +<line x="73.5" y="73.5"/>
    +<line x="58.5" y="73.5"/>
    +<line x="58.5" y="78.5"/>
    +<line x="67.5" y="78.5"/>
    +<line x="48.5" y="97"/>
    +<line x="29.5" y="78.5"/>
    +<line x="38.5" y="78.5"/>
    +<line x="38.5" y="73.5"/>
    +<line x="23.5" y="73.5"/>
    +<line x="23.5" y="58.5"/>
    +<line x="18.5" y="58.5"/>
    +<line x="18.5" y="67.5"/>
    +<line x="0" y="48.5"/>
    +<line x="18.5" y="29.5"/>
    +<line x="18.5" y="38.5"/>
    +<line x="23.5" y="38.5"/>
    +<line x="23.5" y="23.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Callout Up Arrow" h="98" w="60" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +</connections>
    +<background>
    +<path>
    +<move x="20" y="39"/>
    +<line x="20" y="19"/>
    +<line x="11" y="19"/>
    +<line x="30" y="0"/>
    +<line x="49" y="19"/>
    +<line x="40" y="19"/>
    +<line x="40" y="39"/>
    +<line x="60" y="39"/>
    +<line x="60" y="98"/>
    +<line x="0" y="98"/>
    +<line x="0" y="39"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Chevron Arrow" h="60" w="96" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.31" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="30" y="30"/>
    +<line x="0" y="0"/>
    +<line x="66" y="0"/>
    +<line x="96" y="30"/>
    +<line x="66" y="60"/>
    +<line x="0" y="60"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Circular Arrow" h="69.5" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.12" y="0.64" perimeter="0" name="SW"/>
    +<constraint x="0.794" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="44.5"/>
    +<arc rx="44.5" ry="44.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="89" y="44.5"/>
    +<line x="97" y="44.5"/>
    +<line x="77" y="69.5"/>
    +<line x="57" y="44.5"/>
    +<line x="65" y="44.5"/>
    +<arc rx="20.5" ry="20.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="24" y="44.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Jump-in Arrow 1" h="99.41" w="96" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.024" perimeter="0" name="NW"/>
    +<constraint x="0.657" y="1" perimeter="0" name="S"/>
    +</connections>
    +<background>
    +
    +<linejoin join="round"/>
    +<path>
    +<move x="30" y="60.41"/>
    +<line x="48" y="60.41"/>
    +<arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="0" y="2.41"/>
    +<arc rx="75" ry="75" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="78" y="60.41"/>
    +<line x="96" y="60.41"/>
    +<line x="63" y="99.41"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Jump-in Arrow 2" h="99.41" w="96" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="1" y="0.024" perimeter="0" name="NE"/>
    +<constraint x="0.343" y="1" perimeter="0" name="S"/>
    +</connections>
    +<background>
    +
    +<linejoin join="round"/>
    +<path>
    +<move x="66" y="60.41"/>
    +<line x="48" y="60.41"/>
    +<arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="96" y="2.41"/>
    +<arc rx="75" ry="75" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="18" y="60.41"/>
    +<line x="0" y="60.41"/>
    +<line x="33" y="99.41"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Left and Up Arrow" h="96.5" w="96.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.71" perimeter="0" name="W"/>
    +<constraint x="0.71" y="0" perimeter="0" name="N"/>
    +</connections>
    +<background>
    +<path>
    +<move x="23.5" y="53.5"/>
    +<line x="53.5" y="53.5"/>
    +<line x="53.5" y="23.5"/>
    +<line x="41.5" y="23.5"/>
    +<line x="68.5" y="0"/>
    +<line x="96.5" y="23.5"/>
    +<line x="83.5" y="23.5"/>
    +<line x="83.5" y="83.5"/>
    +<line x="23.5" y="83.5"/>
    +<line x="23.5" y="96.5"/>
    +<line x="0" y="68.5"/>
    +<line x="23.5" y="41.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Left Sharp Edged Head Arrow" h="60" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="97.5" y="20"/>
    +<line x="18.5" y="20"/>
    +<line x="30.5" y="0"/>
    +<line x="18.5" y="0"/>
    +<line x="0" y="30"/>
    +<line x="18.5" y="60"/>
    +<line x="30.5" y="60"/>
    +<line x="18.5" y="40"/>
    +<line x="97.5" y="40"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Notched Signal-in Arrow" h="30" w="96.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.13" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="0"/>
    +<line x="83" y="0"/>
    +<line x="96.5" y="15"/>
    +<line x="83" y="30"/>
    +<line x="0" y="30"/>
    +<line x="13" y="15"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Quad Arrow" h="97.5" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="39" y="39"/>
    +<line x="39" y="19"/>
    +<line x="30" y="19"/>
    +<line x="49" y="0"/>
    +<line x="68" y="19"/>
    +<line x="59" y="19"/>
    +<line x="59" y="39"/>
    +<line x="79" y="39"/>
    +<line x="79" y="30"/>
    +<line x="97.5" y="49"/>
    +<line x="79" y="68"/>
    +<line x="79" y="59"/>
    +<line x="59" y="59"/>
    +<line x="59" y="79"/>
    +<line x="68" y="79"/>
    +<line x="49" y="97.5"/>
    +<line x="30" y="79"/>
    +<line x="39" y="79"/>
    +<line x="39" y="59"/>
    +<line x="19" y="59"/>
    +<line x="19" y="68"/>
    +<line x="0" y="49"/>
    +<line x="19" y="30"/>
    +<line x="19" y="39"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Right Notched Arrow" h="70" w="96.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.13" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="20"/>
    +<line x="58" y="20"/>
    +<line x="58" y="0"/>
    +<line x="96.5" y="35"/>
    +<line x="58" y="70"/>
    +<line x="58" y="50"/>
    +<line x="0" y="50"/>
    +<line x="13" y="35"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Sharp Edged Arrow" h="60" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="97.5" y="20"/>
    +<line x="18.5" y="20"/>
    +<line x="27.5" y="5"/>
    +<line x="18.5" y="0"/>
    +<line x="0" y="30"/>
    +<line x="18.5" y="60"/>
    +<line x="27.5" y="55"/>
    +<line x="18.5" y="40"/>
    +<line x="97.5" y="40"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Signal-in Arrow" h="30" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="0"/>
    +<line x="84" y="0"/>
    +<line x="97.5" y="15"/>
    +<line x="84" y="30"/>
    +<line x="0" y="30"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Slender Left Arrow" h="60" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="97.5" y="20"/>
    +<line x="18.5" y="20"/>
    +<line x="18.5" y="0"/>
    +<line x="0" y="30"/>
    +<line x="18.5" y="60"/>
    +<line x="18.5" y="40"/>
    +<line x="97.5" y="40"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Slender Two Way Arrow" h="60" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="78.5" y="20"/>
    +<line x="18.5" y="20"/>
    +<line x="18.5" y="0"/>
    +<line x="0" y="30"/>
    +<line x="18.5" y="60"/>
    +<line x="18.5" y="40"/>
    +<line x="78.5" y="40"/>
    +<line x="78.5" y="60"/>
    +<line x="97.5" y="30"/>
    +<line x="78.5" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Slender Wide Tailed Arrow" h="60" w="96.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="0.8" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="58.5" y="20"/>
    +<line x="18.5" y="20"/>
    +<line x="18.5" y="0"/>
    +<line x="0" y="30"/>
    +<line x="18.5" y="60"/>
    +<line x="18.5" y="40"/>
    +<line x="58.5" y="40"/>
    +<line x="73.5" y="60"/>
    +<line x="96.5" y="60"/>
    +<line x="76.5" y="30"/>
    +<line x="96.5" y="0"/>
    +<line x="73.5" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Striped Arrow" h="70" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="24" y="20"/>
    +<line x="59" y="20"/>
    +<line x="59" y="0"/>
    +<line x="97.5" y="35"/>
    +<line x="59" y="70"/>
    +<line x="59" y="50"/>
    +<line x="24" y="50"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<rect x="8" y="20" w="12" h="30"/>
    +<fillstroke/>
    +<rect x="0" y="20" w="4" h="30"/>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Stylised Notched Arrow" h="60" w="96.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.13" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +
    +<miterlimit limit="8"/>
    +<path>
    +<move x="0" y="5"/>
    +<line x="68" y="20"/>
    +<line x="58" y="0"/>
    +<line x="96.5" y="30"/>
    +<line x="58" y="60"/>
    +<line x="68" y="45"/>
    +<line x="0" y="55"/>
    +<line x="13" y="30"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Triad Arrow" h="68" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.72" perimeter="0" name="W"/>
    +<constraint x="1" y="0.72" perimeter="0" name="E"/>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +</connections>
    +<background>
    +<path>
    +<move x="39" y="39"/>
    +<line x="39" y="19"/>
    +<line x="30" y="19"/>
    +<line x="49" y="0"/>
    +<line x="68" y="19"/>
    +<line x="59" y="19"/>
    +<line x="59" y="39"/>
    +<line x="79" y="39"/>
    +<line x="79" y="30"/>
    +<line x="97.5" y="49"/>
    +<line x="79" y="68"/>
    +<line x="79" y="59"/>
    +<line x="39" y="59"/>
    +<line x="19" y="59"/>
    +<line x="19" y="68"/>
    +<line x="0" y="49"/>
    +<line x="19" y="30"/>
    +<line x="19" y="39"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Two Way Arrow Horizontal" h="60" w="96" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="63" y="15"/>
    +<line x="63" y="0"/>
    +<line x="96" y="30"/>
    +<line x="63" y="60"/>
    +<line x="63" y="45"/>
    +<line x="33" y="45"/>
    +<line x="33" y="60"/>
    +<line x="0" y="30"/>
    +<line x="33" y="0"/>
    +<line x="33" y="15"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Two Way Arrow Vertical" h="96" w="60" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +</connections>
    +<background>
    +<path>
    +<move x="15" y="63"/>
    +<line x="0" y="63"/>
    +<line x="30" y="96"/>
    +<line x="60" y="63"/>
    +<line x="45" y="63"/>
    +<line x="45" y="33"/>
    +<line x="60" y="33"/>
    +<line x="30" y="0"/>
    +<line x="0" y="33"/>
    +<line x="15" y="33"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="U Turn Arrow" h="98" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.12" y="1" perimeter="0" name="SW"/>
    +<constraint x="0.792" y="0.71" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="44.5"/>
    +<arc rx="44.5" ry="44.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="89" y="44.5"/>
    +<line x="97" y="44.5"/>
    +<line x="77" y="69.5"/>
    +<line x="57" y="44.5"/>
    +<line x="65" y="44.5"/>
    +<arc rx="20.5" ry="20.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="24" y="44.83"/>
    +<line x="24" y="98"/>
    +<line x="0" y="98"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="U Turn Down Arrow" h="62" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.91" y="1" perimeter="0" name="SE"/>
    +<constraint x="0.237" y="1" perimeter="0" name="SW"/>
    +</connections>
    +<background>
    +<path>
    +<move x="97" y="62"/>
    +<line x="97" y="32"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="33" y="32"/>
    +<line x="46" y="32"/>
    +<line x="23" y="62"/>
    +<line x="0" y="32"/>
    +<line x="13" y="32"/>
    +<arc rx="32" ry="32" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="45" y="0"/>
    +<line x="65" y="0"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="53" y="3"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="78" y="32"/>
    +<line x="78" y="62"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="U Turn Left Arrow" h="97.07" w="62.23" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.89" perimeter="0" name="SW"/>
    +<constraint x="0" y="0.24" perimeter="0" name="NW"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="0.19"/>
    +<line x="30" y="0.07"/>
    +<arc rx="30" ry="30" x-axis-rotation="-90.22" large-arc-flag="0" sweep-flag="1" x="30.25" y="64.07"/>
    +<line x="30.2" y="51.07"/>
    +<line x="0.29" y="74.19"/>
    +<line x="30.37" y="97.07"/>
    +<line x="30.32" y="84.07"/>
    +<arc rx="32" ry="32" x-axis-rotation="-90.22" large-arc-flag="0" sweep-flag="0" x="62.2" y="51.95"/>
    +<line x="62.13" y="31.95"/>
    +<arc rx="30" ry="30" x-axis-rotation="-90.22" large-arc-flag="0" sweep-flag="1" x="59.17" y="43.96"/>
    +<arc rx="30" ry="30" x-axis-rotation="-90.22" large-arc-flag="0" sweep-flag="0" x="30.08" y="19.07"/>
    +<line x="0.08" y="19.19"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="U Turn Right Arrow" h="97.07" w="62.23" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="1" y="0.89" perimeter="0" name="SE"/>
    +<constraint x="1" y="0.24" perimeter="0" name="NE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="62.23" y="0.19"/>
    +<line x="32.23" y="0.07"/>
    +<arc rx="30" ry="30" x-axis-rotation="-89.78" large-arc-flag="0" sweep-flag="0" x="31.99" y="64.07"/>
    +<line x="32.03" y="51.07"/>
    +<line x="61.95" y="74.19"/>
    +<line x="31.86" y="97.07"/>
    +<line x="31.91" y="84.07"/>
    +<arc rx="32" ry="32" x-axis-rotation="-89.78" large-arc-flag="0" sweep-flag="1" x="0.03" y="51.95"/>
    +<line x="0.11" y="31.95"/>
    +<arc rx="30" ry="30" x-axis-rotation="-89.78" large-arc-flag="0" sweep-flag="0" x="3.06" y="43.96"/>
    +<arc rx="30" ry="30" x-axis-rotation="-89.78" large-arc-flag="0" sweep-flag="1" x="32.16" y="19.07"/>
    +<line x="62.16" y="19.19"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="U Turn Up Arrow" h="62" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.91" y="0" perimeter="0" name="NE"/>
    +<constraint x="0.237" y="0" perimeter="0" name="NW"/>
    +</connections>
    +<background>
    +<path>
    +<move x="97" y="0"/>
    +<line x="97" y="30"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="33" y="30"/>
    +<line x="46" y="30"/>
    +<line x="23" y="0"/>
    +<line x="0" y="30"/>
    +<line x="13" y="30"/>
    +<arc rx="32" ry="32" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="45" y="62"/>
    +<line x="65" y="62"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="53" y="59"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="78" y="30"/>
    +<line x="78" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +</shapes>
    \ No newline at end of file
    diff --git a/javascript/examples/grapheditor/www/stencils/basic.xml b/javascript/examples/grapheditor/www/stencils/basic.xml
    new file mode 100644
    index 000000000..81af06e40
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/stencils/basic.xml
    @@ -0,0 +1,897 @@
    +<shapes name="mxGraph.basic">
    +<shape name="4 Point Star" h="92" w="92" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="46" y="0"/>
    +<line x="56" y="36"/>
    +<line x="92" y="46"/>
    +<line x="56" y="56"/>
    +<line x="46" y="92"/>
    +<line x="36" y="56"/>
    +<line x="0" y="46"/>
    +<line x="36" y="36"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="6 Point Star" h="84.5" w="96" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.24" y="0" perimeter="0" name="N1"/>
    +<constraint x="0.24" y="1" perimeter="0" name="S1"/>
    +<constraint x="0.76" y="0" perimeter="0" name="N2"/>
    +<constraint x="0.76" y="1" perimeter="0" name="S2"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="23" y="28.9"/>
    +<line x="23" y="0"/>
    +<line x="48" y="14.4"/>
    +<line x="73" y="0"/>
    +<line x="73" y="28.9"/>
    +<line x="96" y="42.2"/>
    +<line x="73" y="55.6"/>
    +<line x="73" y="84.5"/>
    +<line x="48" y="70"/>
    +<line x="23" y="84.5"/>
    +<line x="23" y="55.6"/>
    +<line x="0" y="42.2"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="8 Point Star" h="96" w="96" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.29" y="0" perimeter="0" name="N1"/>
    +<constraint x="0.29" y="1" perimeter="0" name="S1"/>
    +<constraint x="0.71" y="0" perimeter="0" name="N2"/>
    +<constraint x="0.71" y="1" perimeter="0" name="S2"/>
    +<constraint x="0" y="0.29" perimeter="0" name="W1"/>
    +<constraint x="0" y="0.71" perimeter="0" name="W2"/>
    +<constraint x="1" y="0.29" perimeter="0" name="E1"/>
    +<constraint x="1" y="0.71" perimeter="0" name="E2"/>
    +</connections>
    +<background>
    +<path>
    +<move x="28" y="28"/>
    +<line x="28" y="0"/>
    +<line x="48" y="20"/>
    +<line x="68" y="0"/>
    +<line x="68" y="28"/>
    +<line x="96" y="28"/>
    +<line x="76" y="48"/>
    +<line x="96" y="68"/>
    +<line x="68" y="68"/>
    +<line x="68" y="96"/>
    +<line x="48" y="76"/>
    +<line x="28" y="96"/>
    +<line x="28" y="68"/>
    +<line x="0" y="68"/>
    +<line x="20" y="48"/>
    +<line x="0" y="28"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Banner" h="50" w="96" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.8" perimeter="0" name="S"/>
    +<constraint x="0.13" y="0.6" perimeter="0" name="W"/>
    +<constraint x="0.87" y="0.6" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="50"/>
    +<line x="38" y="50"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="40.5" y="47.5"/>
    +<line x="40.5" y="40"/>
    +<line x="55.5" y="40"/>
    +<line x="55.5" y="47.5"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="58" y="50"/>
    +<line x="96" y="50"/>
    +<line x="83" y="30"/>
    +<line x="96" y="10"/>
    +<line x="70.5" y="10"/>
    +<line x="70.5" y="2.5"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="68" y="0"/>
    +<line x="28" y="0"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="25.5" y="2.5"/>
    +<line x="25.5" y="10"/>
    +<line x="0" y="10"/>
    +<line x="13" y="30"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="40.5" y="47.5"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="38" y="45"/>
    +<line x="28" y="45"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="28" y="40"/>
    +<line x="68" y="40"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="68" y="45"/>
    +<line x="58" y="45"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="55.5" y="47.5"/>
    +<move x="25.5" y="42.5"/>
    +<line x="25.5" y="10"/>
    +<move x="70.5" y="42.5"/>
    +<line x="70.5" y="10"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Cloud Callout" h="61.4" w="90.41" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.74" perimeter="0" name="S"/>
    +<constraint x="0.015" y="0.4" perimeter="0" name="W"/>
    +<constraint x="0.993" y="0.4" perimeter="0" name="E"/>
    +<constraint x="0.01" y="0.995" perimeter="0" name="SW"/>
    +</connections>
    +<background>
    +<save/>
    +<linejoin join="round"/>
    +<path>
    +<move x="12.1" y="31.8"/>
    +<arc rx="8" ry="8" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="12.1" y="16.8"/>
    +<arc rx="12" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="33.1" y="8.8"/>
    +<arc rx="14" ry="14" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="59.1" y="8.8"/>
    +<arc rx="12" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="79.1" y="16.8"/>
    +<arc rx="8" ry="8" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="79.1" y="31.8"/>
    +<arc rx="12" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="58.1" y="38.8"/>
    +<arc rx="14" ry="14" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="34.1" y="38.8"/>
    +<arc rx="10" ry="8" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="12.1" y="31.8"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<restore/>
    +<linejoin join="miter"/>
    +<ellipse x="9.1" y="46.1" w="12" h="5.4"/>
    +<fillstroke/>
    +<ellipse x="4.3" y="53.5" w="7.6" h="3.6"/>
    +<fillstroke/>
    +<ellipse x="0" y="58.8" w="4.8" h="2.6"/>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Cone" h="96.91" w="99" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +</connections>
    +<background>
    +<path>
    +<move x="49.5" y="0"/>
    +<line x="99" y="88"/>
    +<arc rx="25" ry="4.5" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="0" y="88"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="0" y="88"/>
    +<arc rx="25" ry="4.5" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="99" y="88"/>
    +</path>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Cross" h="98" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="34"/>
    +<line x="34" y="34"/>
    +<line x="34" y="0"/>
    +<line x="64" y="0"/>
    +<line x="64" y="34"/>
    +<line x="98" y="34"/>
    +<line x="98" y="64"/>
    +<line x="64" y="64"/>
    +<line x="64" y="98"/>
    +<line x="34" y="98"/>
    +<line x="34" y="64"/>
    +<line x="0" y="64"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Document" h="98" w="99" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="98" y="14"/>
    +<line x="98" y="98"/>
    +<line x="0" y="98"/>
    +<line x="0" y="0"/>
    +<line x="84" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="84" y="0"/>
    +<arc rx="18" ry="10" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="79" y="9"/>
    +<line x="99" y="14.7"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Flash" h="95.5" w="60" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.565" y="0" perimeter="0" name="N"/>
    +<constraint x="0" y="0.995" perimeter="0" name="SW"/>
    +</connections>
    +<background>
    +
    +<miterlimit limit="6"/>
    +<path>
    +<move x="0" y="95.5"/>
    +<line x="20" y="75.5"/>
    +<line x="3" y="61.5"/>
    +<line x="20" y="49.5"/>
    +<line x="3" y="31.5"/>
    +<line x="34" y="0"/>
    +<line x="60" y="25.5"/>
    +<line x="36" y="39.5"/>
    +<line x="50" y="53.5"/>
    +<line x="29" y="65.5"/>
    +<line x="42" y="76.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Half Circle" h="49" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="0"/>
    +<arc rx="44.5" ry="44.5" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0" x="98" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Heart" h="94.74" w="103.89" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0.115" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0.07" y="0.5" perimeter="0" name="W"/>
    +<constraint x="0.93" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="51.94" y="94.74"/>
    +<curve x1="55.79" y1="90.78" x2="77.8" y2="68.16" x3="91.56" y3="54.03"/>
    +<curve x1="103.89" y1="41.37" x2="103.62" y2="22.91" x3="92.42" y3="11.46"/>
    +<curve x1="81.21" y1="0" x2="63.09" y2="0.05" x3="51.94" y3="11.56"/>
    +<curve x1="40.79" y1="0.05" x2="22.67" y2="0" x3="11.47" y3="11.45"/>
    +<curve x1="0.26" y1="22.9" x2="0" y2="41.36" x3="12.32" y3="54.03"/>
    +<curve x1="26.08" y1="68.16" x2="48.09" y2="90.78" x3="51.94" y3="94.74"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Loud Callout" h="59.9" w="93.3" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.49" y="0" perimeter="0" name="N"/>
    +<constraint x="0.52" y="0.91" perimeter="0" name="S"/>
    +<constraint x="0" y="0.51" perimeter="0" name="W"/>
    +<constraint x="0.99" y="0.503" perimeter="0" name="E"/>
    +<constraint x="0.04" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +
    +<miterlimit limit="10"/>
    +<path>
    +<move x="14.9" y="43.9"/>
    +<line x="9.3" y="46.7"/>
    +<line x="11.1" y="40.9"/>
    +<line x="6.6" y="43.9"/>
    +<line x="8.3" y="39.2"/>
    +<line x="2.8" y="40.8"/>
    +<line x="6.6" y="36.4"/>
    +<line x="0.9" y="36.2"/>
    +<line x="5.8" y="32.7"/>
    +<line x="0" y="30.8"/>
    +<line x="5.3" y="28.2"/>
    +<line x="0.3" y="25.6"/>
    +<line x="5.9" y="24.19"/>
    +<line x="0.8" y="19.9"/>
    +<line x="6.5" y="19.8"/>
    +<line x="2.8" y="15.1"/>
    +<line x="8.2" y="16.1"/>
    +<line x="5.9" y="11.3"/>
    +<line x="11.5" y="13.2"/>
    +<line x="10.2" y="8.7"/>
    +<line x="15.7" y="10.6"/>
    +<line x="14.9" y="6.15"/>
    +<line x="19.2" y="9.3"/>
    +<line x="19.8" y="4.3"/>
    +<line x="23.4" y="8"/>
    +<line x="23.8" y="3.4"/>
    +<line x="28.5" y="6.9"/>
    +<line x="30.3" y="1.3"/>
    +<line x="33.3" y="6.2"/>
    +<line x="34.7" y="0.6"/>
    +<line x="38.2" y="6"/>
    +<line x="40.6" y="0"/>
    +<line x="42.8" y="5.8"/>
    +<line x="45.6" y="0"/>
    +<line x="47.1" y="6"/>
    +<line x="51.3" y="1"/>
    +<line x="50.8" y="6.3"/>
    +<line x="55.4" y="0.6"/>
    +<line x="55.1" y="6.6"/>
    +<line x="60.5" y="1.4"/>
    +<line x="61.1" y="7.1"/>
    +<line x="66.1" y="2.7"/>
    +<line x="66.2" y="8.7"/>
    +<line x="71.9" y="4.4"/>
    +<line x="70.5" y="10"/>
    +<line x="77.6" y="6.2"/>
    +<line x="74.9" y="11.8"/>
    +<line x="83.9" y="7.8"/>
    +<line x="80.1" y="13.6"/>
    +<line x="88.1" y="11.9"/>
    +<line x="85.2" y="17"/>
    +<line x="91.2" y="16.9"/>
    +<line x="87" y="20.1"/>
    +<line x="93.3" y="21.2"/>
    +<line x="87.9" y="24"/>
    +<line x="93.2" y="25.8"/>
    +<line x="86.8" y="26.8"/>
    +<line x="92.4" y="30.3"/>
    +<line x="86.6" y="30.8"/>
    +<line x="90.9" y="34.8"/>
    +<line x="84.2" y="33.5"/>
    +<line x="87.8" y="38.8"/>
    +<line x="82" y="36.6"/>
    +<line x="84.7" y="41.7"/>
    +<line x="79.2" y="40.7"/>
    +<line x="79.8" y="46"/>
    +<line x="76.3" y="42.9"/>
    +<line x="75.6" y="48.6"/>
    +<line x="72" y="44.7"/>
    +<line x="71.7" y="51.2"/>
    +<line x="68" y="46"/>
    +<line x="66.2" y="52.1"/>
    +<line x="63.7" y="46.6"/>
    +<line x="61.2" y="53.7"/>
    +<line x="59.7" y="47.6"/>
    +<line x="56.9" y="53.8"/>
    +<line x="55" y="48.1"/>
    +<line x="52.8" y="53.9"/>
    +<line x="50.9" y="48.1"/>
    +<line x="48.4" y="54.5"/>
    +<line x="47" y="48.1"/>
    +<line x="44.4" y="53.7"/>
    +<line x="43.2" y="47.4"/>
    +<line x="40.1" y="54.2"/>
    +<line x="38.8" y="47.4"/>
    +<line x="36.3" y="54.7"/>
    +<line x="35.6" y="47.8"/>
    +<line x="32.4" y="55.1"/>
    +<line x="30.9" y="46.6"/>
    +<line x="28.6" y="53.3"/>
    +<line x="26.8" y="47.8"/>
    +<line x="3.8" y="59.9"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Moon" h="103.05" w="77.05" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.48" y="0" perimeter="0" name="N"/>
    +<constraint x="1" y="0.89" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="37.05" y="0"/>
    +<arc rx="48" ry="48" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0" x="77.05" y="92"/>
    +<arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="37.05" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="No Symbol" h="100" w="100" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="50"/>
    +<arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="100" y="50"/>
    +<arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="50"/>
    +<close/>
    +<move x="78.95" y="69.7"/>
    +<arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="30.3" y="21.05"/>
    +<close/>
    +<move x="21.15" y="30.3"/>
    +<arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="69.7" y="79"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Octagon" h="98" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="29"/>
    +<line x="29" y="0"/>
    +<line x="69" y="0"/>
    +<line x="98" y="29"/>
    +<line x="98" y="69"/>
    +<line x="69" y="98"/>
    +<line x="29" y="98"/>
    +<line x="0" y="69"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Orthogonal Triangle" h="97" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0" perimeter="0" name="NW"/>
    +<constraint x="0" y="1" perimeter="0" name="SW"/>
    +<constraint x="1" y="1" perimeter="0" name="SE"/>
    +<constraint x="0.5" y="0.5" perimeter="0" name="center"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="97"/>
    +<line x="0" y="0"/>
    +<line x="97" y="97"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Oval Callout" h="63.15" w="109.43" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0.045" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.84" perimeter="0" name="S"/>
    +<constraint x="0.045" y="0.45" perimeter="0" name="W"/>
    +<constraint x="0.945" y="0.45" perimeter="0" name="E"/>
    +<constraint x="0.08" y="1" perimeter="0" name="SW"/>
    +</connections>
    +<background>
    +
    +<miterlimit limit="15"/>
    +<path>
    +<move x="20.53" y="46.15"/>
    +<arc rx="49" ry="25" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="31.53" y="50.15"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="9.03" y="63.15"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="20.53" y="46.15"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Parallelepiped" h="60" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0.12" y="0.5" perimeter="0" name="W"/>
    +<constraint x="0.88" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.24" y="0" perimeter="0" name="NW"/>
    +<constraint x="1" y="0" perimeter="0" name="NE"/>
    +<constraint x="0.76" y="1" perimeter="0" name="SE"/>
    +<constraint x="0" y="1" perimeter="0" name="SW"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="60"/>
    +<line x="23.5" y="0"/>
    +<line x="97" y="0"/>
    +<line x="73.5" y="60"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Pentagon" h="90" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0" y="0.365" perimeter="0" name="W"/>
    +<constraint x="1" y="0.365" perimeter="0" name="E"/>
    +<constraint x="0.81" y="1" perimeter="0" name="SE"/>
    +<constraint x="0.19" y="1" perimeter="0" name="SW"/>
    +</connections>
    +<background>
    +<path>
    +<move x="18.5" y="90"/>
    +<line x="0" y="33"/>
    +<line x="48.5" y="0"/>
    +<line x="97" y="33"/>
    +<line x="78.5" y="90"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Rectangular Callout" h="60" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.715" perimeter="0" name="S"/>
    +<constraint x="0" y="0.355" perimeter="0" name="W"/>
    +<constraint x="1" y="0.355" perimeter="0" name="E"/>
    +<constraint x="0.04" y="1" perimeter="0" name="SW"/>
    +</connections>
    +<background>
    +
    +<miterlimit limit="10"/>
    +<path>
    +<move x="15" y="43"/>
    +<line x="0" y="43"/>
    +<line x="0" y="0"/>
    +<line x="98" y="0"/>
    +<line x="98" y="43"/>
    +<line x="29" y="43"/>
    +<line x="4" y="60"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Rounded Rectangular Callout" h="60" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.715" perimeter="0" name="S"/>
    +<constraint x="0" y="0.355" perimeter="0" name="W"/>
    +<constraint x="1" y="0.355" perimeter="0" name="E"/>
    +<constraint x="0.04" y="1" perimeter="0" name="SW"/>
    +</connections>
    +<background>
    +
    +<miterlimit limit="15"/>
    +<path>
    +<move x="15.5" y="43"/>
    +<line x="5" y="43"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="38"/>
    +<line x="0" y="5"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="0"/>
    +<line x="93" y="0"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5"/>
    +<line x="98" y="38"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="93" y="43"/>
    +<line x="29" y="43"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="4" y="60"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="15.5" y="43"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Smiley" h="98" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="98" h="98"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<save/>
    +<path>
    +<move x="11" y="54"/>
    +<arc rx="38" ry="27" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0" x="87" y="54"/>
    +</path>
    +<stroke/>
    +<restore/>
    +<strokewidth width="1"/>
    +<path>
    +<move x="16" y="51"/>
    +<line x="6" y="57"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="82" y="51"/>
    +<line x="92" y="57"/>
    +</path>
    +<stroke/>
    +
    +<ellipse x="24" y="27" w="6" h="16"/>
    +<fillstroke/>
    +<strokewidth width="6"/>
    +<ellipse x="68" y="27" w="6" h="16"/>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Star" h="90" w="95" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.76" perimeter="0" name="S"/>
    +<constraint x="0" y="0.367" perimeter="0" name="W"/>
    +<constraint x="1" y="0.367" perimeter="0" name="E"/>
    +<constraint x="0.185" y="1" perimeter="0" name="SW"/>
    +<constraint x="0.815" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="33"/>
    +<line x="36.4" y="33"/>
    +<line x="47.5" y="0"/>
    +<line x="58.6" y="33"/>
    +<line x="95" y="33"/>
    +<line x="66" y="55.1"/>
    +<line x="77.5" y="90"/>
    +<line x="47.5" y="68.4"/>
    +<line x="17.5" y="90"/>
    +<line x="29" y="55.1"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Sun" h="95" w="95" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="17.5" y="17.5" w="60" h="60"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="42.5" y="14.5"/>
    +<line x="47.5" y="0"/>
    +<line x="52.5" y="14.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="42.5" y="80.5"/>
    +<line x="47.5" y="95"/>
    +<line x="52.5" y="80.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="14.5" y="42.5"/>
    +<line x="0" y="47.5"/>
    +<line x="14.5" y="52.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="80.5" y="42.5"/>
    +<line x="95" y="47.5"/>
    +<line x="80.5" y="52.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="67.5" y="20.5"/>
    +<line x="81.2" y="13.9"/>
    +<line x="74.5" y="27.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="67.5" y="74.5"/>
    +<line x="81.2" y="81.1"/>
    +<line x="74.5" y="67.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="27.5" y="20.5"/>
    +<line x="13.8" y="13.9"/>
    +<line x="20.5" y="27.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="27.5" y="74.5"/>
    +<line x="13.8" y="81.1"/>
    +<line x="20.5" y="67.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Tick" h="97.54" w="84.4" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.9" y="0.01" perimeter="0" name="N"/>
    +<constraint x="0.32" y="0.992" perimeter="0" name="S"/>
    +<constraint x="0" y="0.7" perimeter="0" name="W"/>
    +<constraint x="1" y="0.06" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0.36" y="66.69"/>
    +<arc rx="12" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="16.36" y="58.69"/>
    +<arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="26.36" y="69.69"/>
    +<arc rx="200" ry="200" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="63.36" y="5.69"/>
    +<arc rx="18" ry="18" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="80.36" y="1.69"/>
    +<arc rx="4.5" ry="4.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="83.36" y="8.69"/>
    +<arc rx="230" ry="230" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="35.36" y="94.69"/>
    +<arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="17.36" y="94.69"/>
    +<arc rx="100" ry="100" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="0.36" y="68.69"/>
    +<arc rx="2" ry="2" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0.36" y="66.69"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Trapezoid" h="98" w="97" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0.12" y="0.5" perimeter="0" name="W"/>
    +<constraint x="0.88" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.24" y="0" perimeter="0" name="NW"/>
    +<constraint x="0" y="1" perimeter="0" name="SW"/>
    +<constraint x="0.76" y="0" perimeter="0" name="NE"/>
    +<constraint x="1" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="98"/>
    +<line x="23.5" y="0"/>
    +<line x="73.5" y="0"/>
    +<line x="97" y="98"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Wave" h="56.7" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0.295" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="8.7"/>
    +<arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="33" y="8.7"/>
    +<arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="65" y="8.7"/>
    +<arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="8.7"/>
    +<line x="98" y="48.7"/>
    +<arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="65" y="48.7"/>
    +<arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="33" y="48.7"/>
    +<arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="0" y="48.7"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="X" h="98" w="96" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0.29" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.71" perimeter="0" name="S"/>
    +<constraint x="0.33" y="0.5" perimeter="0" name="W"/>
    +<constraint x="0.65" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0" y="0" perimeter="0" name="NW"/>
    +<constraint x="0" y="1" perimeter="0" name="SW"/>
    +<constraint x="1" y="0" perimeter="0" name="NE"/>
    +<constraint x="1" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="0"/>
    +<line x="28" y="0"/>
    +<line x="48" y="29"/>
    +<line x="68" y="0"/>
    +<line x="96" y="0"/>
    +<line x="62" y="49"/>
    +<line x="96" y="98"/>
    +<line x="68" y="98"/>
    +<line x="48" y="69"/>
    +<line x="28" y="98"/>
    +<line x="0" y="98"/>
    +<line x="32" y="49"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +</shapes>
    \ No newline at end of file
    diff --git a/javascript/examples/grapheditor/www/stencils/bpmn.xml b/javascript/examples/grapheditor/www/stencils/bpmn.xml
    new file mode 100644
    index 000000000..64ecba8ce
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/stencils/bpmn.xml
    @@ -0,0 +1,993 @@
    +<shapes name="mxGraph.BPMN">
    +<shape name="Cancel End" h="97" w="97" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +
    +<ellipse x="0" y="0" w="97" h="97"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<strokewidth width="3"/>
    +<path>
    +<move x="23.5" y="23.5"/>
    +<line x="73.5" y="73.5"/>
    +</path>
    +<stroke/>
    +<strokewidth width="3"/>
    +<path>
    +<move x="73.5" y="23.5"/>
    +<line x="23.5" y="73.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Cancel Intermediate" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="3.5" y="3.5" w="92" h="92"/>
    +<fillstroke/>
    +
    +<path>
    +<move x="24.5" y="24.5"/>
    +<line x="74.5" y="74.5"/>
    +</path>
    +<stroke/>
    +<strokewidth width="3"/>
    +<path>
    +<move x="74.5" y="24.5"/>
    +<line x="24.5" y="74.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Compensation End" h="97" w="97" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<save/>
    +<ellipse x="0" y="0" w="97" h="97"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<restore/>
    +<strokewidth width="1"/>
    +<path>
    +<move x="26.5" y="48.5"/>
    +<line x="48.5" y="33.5"/>
    +<line x="48.5" y="63.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="48.5" y="48.5"/>
    +<line x="70.5" y="33.5"/>
    +<line x="70.5" y="63.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Compensation Intermediate" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="3.5" y="3.5" w="92" h="92"/>
    +<fillstroke/>
    +<path>
    +<move x="27.5" y="49.5"/>
    +<line x="49.5" y="34.5"/>
    +<line x="49.5" y="64.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="49.5" y="49.5"/>
    +<line x="71.5" y="34.5"/>
    +<line x="71.5" y="64.5"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Error End" h="97" w="97" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<save/>
    +<ellipse x="0" y="0" w="97" h="97"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<restore/>
    +<strokewidth width="1"/>
    +<path>
    +<move x="26.5" y="79.5"/>
    +<line x="39.5" y="24.5"/>
    +<line x="58.5" y="61.5"/>
    +<line x="69.5" y="18.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Error Intermediate" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="3.5" y="3.5" w="92" h="92"/>
    +<fillstroke/>
    +<path>
    +<move x="27.5" y="80.5"/>
    +<line x="40.5" y="25.5"/>
    +<line x="59.5" y="62.5"/>
    +<line x="70.5" y="19.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Gateway" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="49.5" y="0"/>
    +<line x="99" y="49.5"/>
    +<line x="49.5" y="99"/>
    +<line x="0" y="49.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Gateway AND" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="49.5" y="0"/>
    +<line x="99" y="49.5"/>
    +<line x="49.5" y="99"/>
    +<line x="0" y="49.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="49.5" y="19.5"/>
    +<line x="49.5" y="79.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="79.5" y="49.5"/>
    +<line x="19.5" y="49.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Gateway COMPLEX" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="49.5" y="0"/>
    +<line x="99" y="49.5"/>
    +<line x="49.5" y="99"/>
    +<line x="0" y="49.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +
    +<path>
    +<move x="79.5" y="49.5"/>
    +<line x="19.5" y="49.5"/>
    +</path>
    +<stroke/>
    +<strokewidth width="3"/>
    +<path>
    +<move x="49.5" y="19.5"/>
    +<line x="49.5" y="79.5"/>
    +</path>
    +<stroke/>
    +<strokewidth width="3"/>
    +<path>
    +<move x="28.5" y="28.5"/>
    +<line x="70.5" y="70.5"/>
    +</path>
    +<stroke/>
    +<strokewidth width="3"/>
    +<path>
    +<move x="70.5" y="28.5"/>
    +<line x="28.5" y="70.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Gateway OR" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="49.5" y="0"/>
    +<line x="99" y="49.5"/>
    +<line x="49.5" y="99"/>
    +<line x="0" y="49.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +
    +<ellipse x="24.5" y="24.5" w="50" h="50"/>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Gateway XOR (data)" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="49.5" y="0"/>
    +<line x="99" y="49.5"/>
    +<line x="49.5" y="99"/>
    +<line x="0" y="49.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="37.5" y="23.5"/>
    +<line x="61.5" y="75.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="61.5" y="23.5"/>
    +<line x="37.5" y="75.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Gateway XOR (event)" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="49.5" y="0"/>
    +<line x="99" y="49.5"/>
    +<line x="49.5" y="99"/>
    +<line x="0" y="49.5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="24.6" y="24.6" w="49.8" h="49.8"/>
    +<fillstroke/>
    +<ellipse x="26.4" y="26.4" w="46.2" h="46.2"/>
    +<fillstroke/>
    +<path>
    +<move x="49.5" y="37.1"/>
    +<line x="60.2" y="55.7"/>
    +<line x="38.8" y="55.7"/>
    +<close/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="49.5" y="61.9"/>
    +<line x="59.5" y="43.3"/>
    +<line x="38.5" y="43.3"/>
    +<close/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="General End" h="97" w="97" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +
    +<ellipse x="0" y="0" w="97" h="97"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="General Intermediate" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="3.5" y="3.5" w="92" h="92"/>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="General Start" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Link End" h="97" w="97" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<save/>
    +<ellipse x="0" y="0" w="97" h="97"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<restore/>
    +<strokewidth width="1"/>
    +<path>
    +<move x="25.5" y="57.5"/>
    +<line x="25.5" y="39.5"/>
    +<line x="54.5" y="39.5"/>
    +<line x="54.5" y="31.5"/>
    +<line x="71.5" y="48.5"/>
    +<line x="54.5" y="65.5"/>
    +<line x="54.5" y="57.5"/>
    +<close/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Link Intermediate" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="3.5" y="3.5" w="92" h="92"/>
    +<fillstroke/>
    +<path>
    +<move x="26.5" y="58.5"/>
    +<line x="26.5" y="40.5"/>
    +<line x="55.5" y="40.5"/>
    +<line x="55.5" y="32.5"/>
    +<line x="72.5" y="49.5"/>
    +<line x="55.5" y="66.5"/>
    +<line x="55.5" y="58.5"/>
    +<close/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Link Start" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="26.5" y="58.5"/>
    +<line x="26.5" y="40.5"/>
    +<line x="55.5" y="40.5"/>
    +<line x="55.5" y="32.5"/>
    +<line x="72.5" y="49.5"/>
    +<line x="55.5" y="66.5"/>
    +<line x="55.5" y="58.5"/>
    +<close/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Message End" h="97" w="97" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<save/>
    +<ellipse x="0" y="0" w="97" h="97"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<restore/>
    +<strokewidth width="1"/>
    +<rect x="13.5" y="28.5" w="70" h="40"/>
    +<stroke/>
    +<path>
    +<move x="13.5" y="28.5"/>
    +<line x="48.5" y="48.5"/>
    +<line x="83.5" y="28.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Message Intermediate" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="3.5" y="3.5" w="92" h="92"/>
    +<fillstroke/>
    +<rect x="14.5" y="29.5" w="70" h="40"/>
    +<stroke/>
    +<path>
    +<move x="14.5" y="29.5"/>
    +<line x="49.5" y="49.5"/>
    +<line x="84.5" y="29.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Message Start" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<rect x="14.5" y="29.5" w="70" h="40"/>
    +<stroke/>
    +<path>
    +<move x="14.5" y="29.5"/>
    +<line x="49.5" y="49.5"/>
    +<line x="84.5" y="29.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Multiple End" h="97" w="97" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<save/>
    +<ellipse x="0" y="0" w="97" h="97"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<restore/>
    +<strokewidth width="1"/>
    +<path>
    +<move x="48.5" y="23.5"/>
    +<line x="70.5" y="60.5"/>
    +<line x="26.5" y="60.5"/>
    +<close/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="48.5" y="73.5"/>
    +<line x="70.5" y="36.5"/>
    +<line x="26.5" y="36.5"/>
    +<close/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Multiple Intermediate" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="3.5" y="3.5" w="92" h="92"/>
    +<fillstroke/>
    +<path>
    +<move x="49.5" y="24.5"/>
    +<line x="71.5" y="61.5"/>
    +<line x="27.5" y="61.5"/>
    +<close/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="49.5" y="74.5"/>
    +<line x="71.5" y="37.5"/>
    +<line x="27.5" y="37.5"/>
    +<close/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Multiple Start" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="49.5" y="24.5"/>
    +<line x="71.5" y="61.5"/>
    +<line x="27.5" y="61.5"/>
    +<close/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="49.5" y="74.5"/>
    +<line x="71.5" y="37.5"/>
    +<line x="27.5" y="37.5"/>
    +<close/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Rule Intermediate" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="3.5" y="3.5" w="92" h="92"/>
    +<fillstroke/>
    +<rect x="29.5" y="15.5" w="40" h="68"/>
    +<fillstroke/>
    +<path>
    +<move x="29.5" y="22.5"/>
    +<line x="61.5" y="22.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="29.5" y="40.5"/>
    +<line x="61.5" y="40.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="29.5" y="58.5"/>
    +<line x="61.5" y="58.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="29.5" y="76.5"/>
    +<line x="61.5" y="76.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Rule Start" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<rect x="29.5" y="15.5" w="40" h="68"/>
    +<fillstroke/>
    +<path>
    +<move x="29.5" y="22.5"/>
    +<line x="61.5" y="22.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="29.5" y="40.5"/>
    +<line x="61.5" y="40.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="29.5" y="58.5"/>
    +<line x="61.5" y="58.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="29.5" y="76.5"/>
    +<line x="61.5" y="76.5"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Terminate" h="97" w="97" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +
    +<ellipse x="0" y="0" w="97" h="97"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<strokewidth width="42"/>
    +<ellipse x="27.5" y="27.5" w="42" h="42"/>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Timer Intermediate" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="3.5" y="3.5" w="92" h="92"/>
    +<fillstroke/>
    +<ellipse x="10.5" y="10.5" w="78" h="78"/>
    +<fillstroke/>
    +<path>
    +<move x="49.5" y="49.5"/>
    +<line x="51.5" y="16"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="49.5" y="49.5"/>
    +<line x="71.5" y="49.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="49.5" y="10.5"/>
    +<line x="49.5" y="15.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="69" y="15.6"/>
    +<line x="66.2" y="20.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="83.2" y="29.8"/>
    +<line x="78.3" y="32.8"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="88.5" y="49.5"/>
    +<line x="83.5" y="49.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="83.2" y="69.2"/>
    +<line x="78.3" y="66.2"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="30" y="15.6"/>
    +<line x="32.8" y="20.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="69" y="83.4"/>
    +<line x="66.2" y="78.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="49.5" y="83.5"/>
    +<line x="49.5" y="88.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="30" y="83.4"/>
    +<line x="32.8" y="78.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="15.8" y="69.2"/>
    +<line x="20.7" y="66.2"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="10.5" y="49.5"/>
    +<line x="15.5" y="49.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="15.8" y="29.8"/>
    +<line x="20.7" y="32.8"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Timer Start" h="99" w="99" aspect="fixed" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<ellipse x="10.5" y="10.5" w="78" h="78"/>
    +<fillstroke/>
    +<path>
    +<move x="49.5" y="49.5"/>
    +<line x="51.5" y="16"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="49.5" y="49.5"/>
    +<line x="71.5" y="49.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="49.5" y="10.5"/>
    +<line x="49.5" y="15.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="69" y="15.6"/>
    +<line x="66.2" y="20.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="83.2" y="29.8"/>
    +<line x="78.3" y="32.8"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="88.5" y="49.5"/>
    +<line x="83.5" y="49.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="83.2" y="69.2"/>
    +<line x="78.3" y="66.2"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="30" y="15.6"/>
    +<line x="32.8" y="20.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="69" y="83.4"/>
    +<line x="66.2" y="78.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="49.5" y="83.5"/>
    +<line x="49.5" y="88.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="30" y="83.4"/>
    +<line x="32.8" y="78.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="15.8" y="69.2"/>
    +<line x="20.7" y="66.2"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="10.5" y="49.5"/>
    +<line x="15.5" y="49.5"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="15.8" y="29.8"/>
    +<line x="20.7" y="32.8"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +</shapes>
    \ No newline at end of file
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Credit_Card_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Credit_Card_128x128.png
    new file mode 100644
    index 000000000..d280580cc
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Credit_Card_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Database_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Database_128x128.png
    new file mode 100644
    index 000000000..4add7147c
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Database_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Doctor1_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Doctor1_128x128.png
    new file mode 100644
    index 000000000..d5a4bb7b4
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Doctor1_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Earth_globe_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Earth_globe_128x128.png
    new file mode 100644
    index 000000000..438d41460
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Earth_globe_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Email_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Email_128x128.png
    new file mode 100644
    index 000000000..af81e0ba4
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Email_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Empty_Folder_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Empty_Folder_128x128.png
    new file mode 100644
    index 000000000..85d5b0f7c
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Empty_Folder_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Firewall_02_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Firewall_02_128x128.png
    new file mode 100644
    index 000000000..0cf90fdd6
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Firewall_02_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Full_Folder_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Full_Folder_128x128.png
    new file mode 100644
    index 000000000..6a6496ea6
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Full_Folder_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Gear_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Gear_128x128.png
    new file mode 100644
    index 000000000..a44e376c3
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Gear_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Graph_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Graph_128x128.png
    new file mode 100644
    index 000000000..7f20b4e43
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Graph_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Laptop_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Laptop_128x128.png
    new file mode 100644
    index 000000000..ab7ea6596
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Laptop_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Lock_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Lock_128x128.png
    new file mode 100644
    index 000000000..d815f0eb9
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Lock_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/MacBook_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/MacBook_128x128.png
    new file mode 100644
    index 000000000..0f6802ccf
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/MacBook_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Monitor_Tower_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Monitor_Tower_128x128.png
    new file mode 100644
    index 000000000..223b27ad7
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Monitor_Tower_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Piggy_Bank_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Piggy_Bank_128x128.png
    new file mode 100644
    index 000000000..89f51c154
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Piggy_Bank_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Pilot1_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Pilot1_128x128.png
    new file mode 100644
    index 000000000..5b7dea035
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Pilot1_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Printer_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Printer_128x128.png
    new file mode 100644
    index 000000000..3cee0427c
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Printer_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Router_Icon_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Router_Icon_128x128.png
    new file mode 100644
    index 000000000..49345e545
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Router_Icon_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Safe_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Safe_128x128.png
    new file mode 100644
    index 000000000..51115e8ec
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Safe_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Security1_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Security1_128x128.png
    new file mode 100644
    index 000000000..9cf20a29d
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Security1_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Server_Tower_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Server_Tower_128x128.png
    new file mode 100644
    index 000000000..a0ec7b16d
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Server_Tower_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Shopping_Cart_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Shopping_Cart_128x128.png
    new file mode 100644
    index 000000000..ec1e18446
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Shopping_Cart_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Software_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Software_128x128.png
    new file mode 100644
    index 000000000..a3deb93e7
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Software_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Soldier1_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Soldier1_128x128.png
    new file mode 100644
    index 000000000..27f4b4bdf
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Soldier1_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Suit1_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Suit1_128x128.png
    new file mode 100644
    index 000000000..f6c0a8ded
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Suit1_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Suit2_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Suit2_128x128.png
    new file mode 100644
    index 000000000..a8b714de3
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Suit2_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Suit3_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Suit3_128x128.png
    new file mode 100644
    index 000000000..68a1f1c63
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Suit3_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Tech1_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Tech1_128x128.png
    new file mode 100644
    index 000000000..95e411012
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Tech1_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Telesales1_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Telesales1_128x128.png
    new file mode 100644
    index 000000000..6ef7b8a7f
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Telesales1_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Virtual_Machine_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Virtual_Machine_128x128.png
    new file mode 100644
    index 000000000..75895ea69
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Virtual_Machine_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Virus_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Virus_128x128.png
    new file mode 100644
    index 000000000..f0dfbcb71
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Virus_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Wireless_Router_N_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Wireless_Router_N_128x128.png
    new file mode 100644
    index 000000000..9bace3175
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Wireless_Router_N_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Worker1_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Worker1_128x128.png
    new file mode 100644
    index 000000000..c69c9bd42
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Worker1_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/Workstation_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/Workstation_128x128.png
    new file mode 100644
    index 000000000..9aeef9e1f
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/Workstation_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/iMac_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/iMac_128x128.png
    new file mode 100644
    index 000000000..ccdb5141e
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/iMac_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/clipart/iPad_128x128.png b/javascript/examples/grapheditor/www/stencils/clipart/iPad_128x128.png
    new file mode 100644
    index 000000000..88dc80702
    Binary files /dev/null and b/javascript/examples/grapheditor/www/stencils/clipart/iPad_128x128.png differ
    diff --git a/javascript/examples/grapheditor/www/stencils/flowchart.xml b/javascript/examples/grapheditor/www/stencils/flowchart.xml
    new file mode 100644
    index 000000000..a17c5cf48
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/stencils/flowchart.xml
    @@ -0,0 +1,925 @@
    +<shapes name="mxGraph.flowchart">
    +<shape name="Annotation 1" h="98" w="50" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0" y="0" perimeter="0" name="NW"/>
    +<constraint x="0" y="1" perimeter="0" name="SW"/>
    +<constraint x="1" y="0" perimeter="0" name="NE"/>
    +<constraint x="1" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="50" y="0"/>
    +<line x="0" y="0"/>
    +<line x="0" y="98"/>
    +<line x="50" y="98"/>
    +</path>
    +</background>
    +<foreground>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Annotation 2" h="98" w="100" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="1" y="0" perimeter="0" name="NE"/>
    +<constraint x="1" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="100" y="0"/>
    +<line x="50" y="0"/>
    +<line x="50" y="98"/>
    +<line x="100" y="98"/>
    +</path>
    +</background>
    +<foreground>
    +<stroke/>
    +<path>
    +<move x="0" y="49"/>
    +<line x="50" y="49"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Card" h="60" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.1" y="0.16" perimeter="0" name="NW"/>
    +<constraint x="0.015" y="0.98" perimeter="0" name="SW"/>
    +<constraint x="0.985" y="0.02" perimeter="0" name="NE"/>
    +<constraint x="0.985" y="0.98" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="19" y="0"/>
    +<line x="93" y="0"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5"/>
    +<line x="98" y="55"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="93" y="60"/>
    +<line x="5" y="60"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/>
    +<line x="0" y="20"/>
    +<line x="19" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Collate" h="98" w="96.82" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.02" perimeter="0" name="NW"/>
    +<constraint x="0" y="0.98" perimeter="0" name="SW"/>
    +<constraint x="1" y="0.02" perimeter="0" name="NE"/>
    +<constraint x="1" y="0.98" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="92.41" y="0"/>
    +<arc rx="6" ry="3.5" x-axis-rotation="-15" large-arc-flag="0" sweep-flag="1" x="95.41" y="5"/>
    +<line x="1.41" y="93"/>
    +<arc rx="6" ry="3.5" x-axis-rotation="-15" large-arc-flag="0" sweep-flag="0" x="4.41" y="98"/>
    +<line x="92.41" y="98"/>
    +<arc rx="6" ry="3.5" x-axis-rotation="15" large-arc-flag="0" sweep-flag="0" x="95.41" y="93"/>
    +<line x="1.41" y="5"/>
    +<arc rx="6" ry="3.5" x-axis-rotation="15" large-arc-flag="0" sweep-flag="1" x="4.41" y="0"/>
    +<line x="92.41" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Data" h="60.24" w="98.77" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0.095" y="0.5" perimeter="0" name="W"/>
    +<constraint x="0.905" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.23" y="0.02" perimeter="0" name="NW"/>
    +<constraint x="0.015" y="0.98" perimeter="0" name="SW"/>
    +<constraint x="0.985" y="0.02" perimeter="0" name="NE"/>
    +<constraint x="0.77" y="0.98" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="19.37" y="5.12"/>
    +<arc rx="2.5" ry="5" x-axis-rotation="30" large-arc-flag="0" sweep-flag="1" x="24.37" y="0.12"/>
    +<line x="93.37" y="0.12"/>
    +<arc rx="5" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98.37" y="5.12"/>
    +<line x="79.37" y="55.12"/>
    +<arc rx="2.5" ry="5" x-axis-rotation="30" large-arc-flag="0" sweep-flag="1" x="74.37" y="60.12"/>
    +<line x="4.37" y="60.12"/>
    +<arc rx="5" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0.37" y="55.12"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Database" h="60" w="60" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0" y="0.15" perimeter="0" name="NW"/>
    +<constraint x="0" y="0.85" perimeter="0" name="SW"/>
    +<constraint x="1" y="0.15" perimeter="0" name="NE"/>
    +<constraint x="1" y="0.85" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="50"/>
    +<line x="0" y="10"/>
    +<arc rx="30" ry="10" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="60" y="10"/>
    +<line x="60" y="50"/>
    +<arc rx="30" ry="10" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="50"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="0" y="10"/>
    +<arc rx="30" ry="10" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="60" y="10"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Decision" h="57.43" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="51" y="0.71"/>
    +<line x="97" y="26.71"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="97" y="30.71"/>
    +<line x="51" y="56.71"/>
    +<arc rx="4" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="47" y="56.71"/>
    +<line x="1" y="30.71"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="1" y="26.71"/>
    +<line x="47" y="0.71"/>
    +<arc rx="4" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="51" y="0.71"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Delay" h="60" w="98.25" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.02" y="0.015" perimeter="0" name="NW"/>
    +<constraint x="0.02" y="0.985" perimeter="0" name="SW"/>
    +<constraint x="0.81" y="0" perimeter="0" name="NE"/>
    +<constraint x="0.81" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="5"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="0"/>
    +<line x="79" y="0"/>
    +<arc rx="33" ry="33" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="79" y="60"/>
    +<line x="5" y="60"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/>
    +<line x="0" y="5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Direct Data" h="60" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.08" y="0" perimeter="0" name="NW"/>
    +<constraint x="0.08" y="1" perimeter="0" name="SW"/>
    +<constraint x="0.91" y="0" perimeter="0" name="NE"/>
    +<constraint x="0.91" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="9" y="0"/>
    +<line x="89" y="0"/>
    +<arc rx="9" ry="30" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="89" y="60"/>
    +<line x="9" y="60"/>
    +<arc rx="9" ry="30" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="9" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="89" y="0"/>
    +<arc rx="9" ry="30" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0" x="89" y="60"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Display" h="60" w="98.25" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.2" y="0.14" perimeter="0" name="NW"/>
    +<constraint x="0.2" y="0.86" perimeter="0" name="SW"/>
    +<constraint x="0.92" y="0.14" perimeter="0" name="NE"/>
    +<constraint x="0.92" y="0.86" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="30"/>
    +<arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="39" y="0"/>
    +<line x="79" y="0"/>
    +<arc rx="33" ry="33" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="79" y="60"/>
    +<line x="39" y="60"/>
    +<arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="30"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Document" h="60.9" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.9" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.02" y="0.015" perimeter="0" name="NW"/>
    +<constraint x="0" y="0.9" perimeter="0" name="SW"/>
    +<constraint x="0.98" y="0.015" perimeter="0" name="NE"/>
    +<constraint x="1" y="0.9" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="5"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="0"/>
    +<line x="93" y="0"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5"/>
    +<line x="98" y="55"/>
    +<arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="49" y="55"/>
    +<arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Extract or Measurement" h="61.03" w="95.34" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0.22" y="0.5" perimeter="0" name="W"/>
    +<constraint x="0.78" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.01" y="0.97" perimeter="0" name="SW"/>
    +<constraint x="0.99" y="0.97" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="3.64" y="61.02"/>
    +<line x="91.64" y="61.02"/>
    +<arc rx="6" ry="4" x-axis-rotation="30" large-arc-flag="0" sweep-flag="0" x="94.64" y="56.02"/>
    +<line x="49.64" y="1.02"/>
    +<arc rx="3" ry="3" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="45.64" y="1.02"/>
    +<line x="0.64" y="56.02"/>
    +<arc rx="6" ry="4" x-axis-rotation="-35" large-arc-flag="0" sweep-flag="0" x="3.64" y="61.02"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Internal Storage" h="70" w="70" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.02" y="0.015" perimeter="0" name="NW"/>
    +<constraint x="0.02" y="0.985" perimeter="0" name="SW"/>
    +<constraint x="0.98" y="0.015" perimeter="0" name="NE"/>
    +<constraint x="0.98" y="0.985" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<roundrect x="0" y="0" w="70" h="70" arcsize="7.142857142857142"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="0" y="15"/>
    +<line x="70" y="15"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="15" y="0"/>
    +<line x="15" y="70"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Loop Limit" h="60" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.1" y="0.15" perimeter="0" name="NW"/>
    +<constraint x="0.02" y="0.985" perimeter="0" name="SW"/>
    +<constraint x="0.9" y="0.15" perimeter="0" name="NE"/>
    +<constraint x="0.98" y="0.985" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="19" y="0"/>
    +<line x="79" y="0"/>
    +<line x="98" y="20"/>
    +<line x="98" y="55"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="93" y="60"/>
    +<line x="5" y="60"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/>
    +<line x="0" y="20"/>
    +<line x="19" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Manual Input" h="60" w="98.05" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0.195" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.02" y="0.985" perimeter="0" name="SW"/>
    +<constraint x="0.98" y="0.015" perimeter="0" name="NE"/>
    +<constraint x="0.98" y="0.985" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="25"/>
    +<line x="93" y="0"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5"/>
    +<line x="98" y="55"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="94" y="60"/>
    +<line x="5" y="60"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/>
    +<line x="0" y="25"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Manual Operation" h="60.04" w="98.79" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0.1" y="0.5" perimeter="0" name="W"/>
    +<constraint x="0.9" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.02" y="0.015" perimeter="0" name="NW"/>
    +<constraint x="0.22" y="0.985" perimeter="0" name="SW"/>
    +<constraint x="0.98" y="0.015" perimeter="0" name="NE"/>
    +<constraint x="0.78" y="0.985" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0.39" y="5.04"/>
    +<arc rx="5" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5.39" y="0.04"/>
    +<line x="93.39" y="0.04"/>
    +<arc rx="5" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98.39" y="5.04"/>
    +<line x="79.39" y="55.04"/>
    +<arc rx="6.5" ry="6.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="74.39" y="60.04"/>
    +<line x="24.39" y="60.04"/>
    +<arc rx="6.5" ry="6.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="19.39" y="55.04"/>
    +<line x="0.39" y="5.04"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Merge or Storage" h="61.03" w="95.34" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0" y="0" perimeter="0" name="NW"/>
    +<constraint x="0" y="1" perimeter="0" name="SW"/>
    +<constraint x="1" y="0" perimeter="0" name="NE"/>
    +<constraint x="1" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="3.64" y="0.01"/>
    +<line x="91.64" y="0.01"/>
    +<arc rx="6" ry="4" x-axis-rotation="-30" large-arc-flag="0" sweep-flag="1" x="94.64" y="5.01"/>
    +<line x="49.64" y="60.01"/>
    +<arc rx="3" ry="3" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="45.64" y="60.01"/>
    +<line x="0.64" y="5.01"/>
    +<arc rx="6" ry="4" x-axis-rotation="35" large-arc-flag="0" sweep-flag="1" x="3.64" y="0.01"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Multi-Document" h="60.28" w="88" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.88" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.08" y="0.1" perimeter="0" name="NW"/>
    +<constraint x="0" y="0.91" perimeter="0" name="SW"/>
    +<constraint x="0.98" y="0.02" perimeter="0" name="NE"/>
    +<constraint x="0.885" y="0.91" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="10" y="5"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="15" y="0"/>
    +<line x="83" y="0"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="88" y="5"/>
    +<line x="88" y="45"/>
    +<arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="49" y="45"/>
    +<arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="10" y="45"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="5" y="10"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="10" y="5"/>
    +<line x="78" y="5"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="83" y="10"/>
    +<line x="83" y="50"/>
    +<arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="44" y="50"/>
    +<arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="50"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +<path>
    +<move x="0" y="15"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="10"/>
    +<line x="73" y="10"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="78" y="15"/>
    +<line x="78" y="55"/>
    +<arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="39" y="55"/>
    +<arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/>
    +<close/>
    +</path>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Off-page Reference" h="60" w="60" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0" y="0" perimeter="0" name="NW"/>
    +<constraint x="1" y="0" perimeter="0" name="NE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="0"/>
    +<line x="60" y="0"/>
    +<line x="60" y="30"/>
    +<line x="30" y="60"/>
    +<line x="0" y="30"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="On-page Reference" h="60" w="60" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="60" h="60"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Or" h="70" w="70" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="70" h="70"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="10" y="60"/>
    +<line x="60" y="10"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="10" y="10"/>
    +<line x="60" y="60"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Paper Tape" h="61.81" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0.09" perimeter="0" name="N"/>
    +<constraint x="0.5" y="0.91" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0" y="0.09" perimeter="0" name="NW"/>
    +<constraint x="0" y="0.91" perimeter="0" name="SW"/>
    +<constraint x="1" y="0.09" perimeter="0" name="NE"/>
    +<constraint x="1" y="0.91" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="5.9"/>
    +<arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="49" y="5.9"/>
    +<arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5.9"/>
    +<line x="98" y="55.9"/>
    +<arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="49" y="55.9"/>
    +<arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55.9"/>
    +<line x="0" y="5.9"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Parallel Mode" h="40" w="94" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0" y="0" perimeter="0" name="NW"/>
    +<constraint x="0" y="1" perimeter="0" name="SW"/>
    +<constraint x="1" y="0" perimeter="0" name="NE"/>
    +<constraint x="1" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<save/>
    +<fillcolor color="#ffff00"/>
    +<path>
    +<move x="47" y="15"/>
    +<line x="52" y="20"/>
    +<line x="47" y="25"/>
    +<line x="42" y="20"/>
    +<line x="47" y="15"/>
    +<close/>
    +<move x="27" y="15"/>
    +<line x="32" y="20"/>
    +<line x="27" y="25"/>
    +<line x="22" y="20"/>
    +<line x="27" y="15"/>
    +<close/>
    +<move x="67" y="15"/>
    +<line x="72" y="20"/>
    +<line x="67" y="25"/>
    +<line x="62" y="20"/>
    +<line x="67" y="15"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<restore/>
    +<path>
    +<move x="0" y="0"/>
    +<line x="94" y="0"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="0" y="40"/>
    +<line x="94" y="40"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Predefined Process" h="60" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.02" y="0.015" perimeter="0" name="NW"/>
    +<constraint x="0.02" y="0.985" perimeter="0" name="SW"/>
    +<constraint x="0.98" y="0.015" perimeter="0" name="NE"/>
    +<constraint x="0.98" y="0.985" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<roundrect x="0" y="0" w="98" h="60" arcsize="6.717687074829931"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="14" y="0"/>
    +<line x="14" y="60"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="84" y="0"/>
    +<line x="84" y="60"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Preparation" h="60" w="97.11" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.26" y="0.02" perimeter="0" name="NW"/>
    +<constraint x="0.26" y="0.98" perimeter="0" name="SW"/>
    +<constraint x="0.74" y="0.02" perimeter="0" name="NE"/>
    +<constraint x="0.74" y="0.98" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="20.56" y="5"/>
    +<arc rx="15" ry="15" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="31.56" y="0"/>
    +<line x="65.56" y="0"/>
    +<arc rx="15" ry="15" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="76.56" y="5"/>
    +<line x="96.56" y="28"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="96.56" y="32"/>
    +<line x="76.56" y="55"/>
    +<arc rx="15" ry="15" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="65.56" y="60"/>
    +<line x="31.56" y="60"/>
    +<arc rx="15" ry="15" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="20.56" y="55"/>
    +<line x="0.56" y="32"/>
    +<arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0.56" y="28"/>
    +<line x="20.56" y="5"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Process" h="60" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<roundrect x="0" y="0" w="98" h="60" arcsize="6.717687074829931"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Sequential Data" h="99" w="99" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="1" y="1" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="49.5" y="99"/>
    +<line x="99" y="99"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Sort" h="98" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="51" y="1"/>
    +<line x="97" y="47"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="97" y="51"/>
    +<line x="51" y="97"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="47" y="97"/>
    +<line x="1" y="51"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="1" y="47"/>
    +<line x="47" y="1"/>
    +<arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="51" y="1"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="0" y="49"/>
    +<line x="98" y="49"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Start 1" h="60" w="99" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="60"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Start 2" h="99" w="99" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="99" h="99"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Stored Data" h="60" w="96.51" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="0.93" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.1" y="0" perimeter="0" name="NW"/>
    +<constraint x="0.1" y="1" perimeter="0" name="SW"/>
    +<constraint x="0.995" y="0.01" perimeter="0" name="NE"/>
    +<constraint x="0.995" y="0.99" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="10" y="0"/>
    +<line x="96" y="0"/>
    +<arc rx="1.5" ry="1.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="96" y="2"/>
    +<arc rx="10" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="96" y="58"/>
    +<arc rx="1.5" ry="1.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="96" y="60"/>
    +<line x="10" y="60"/>
    +<arc rx="10" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="10" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Summing Function" h="70" w="70" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.145" y="0.145" perimeter="0" name="NW"/>
    +<constraint x="0.145" y="0.855" perimeter="0" name="SW"/>
    +<constraint x="0.855" y="0.145" perimeter="0" name="NE"/>
    +<constraint x="0.855" y="0.855" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<ellipse x="0" y="0" w="70" h="70"/>
    +</background>
    +<foreground>
    +<fillstroke/>
    +<path>
    +<move x="0" y="35"/>
    +<line x="70" y="35"/>
    +</path>
    +<stroke/>
    +<path>
    +<move x="35" y="0"/>
    +<line x="35" y="70"/>
    +</path>
    +<stroke/>
    +</foreground>
    +</shape>
    +<shape name="Terminator" h="60" w="98" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0.5" y="0" perimeter="0" name="N"/>
    +<constraint x="0.5" y="1" perimeter="0" name="S"/>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +<constraint x="0.11" y="0.11" perimeter="0" name="NW"/>
    +<constraint x="0.11" y="0.89" perimeter="0" name="SW"/>
    +<constraint x="0.89" y="0.11" perimeter="0" name="NE"/>
    +<constraint x="0.89" y="0.89" perimeter="0" name="SE"/>
    +</connections>
    +<background>
    +<path>
    +<move x="30" y="0"/>
    +<line x="68" y="0"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="68" y="60"/>
    +<line x="30" y="60"/>
    +<arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="30" y="0"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +<shape name="Transfer" h="70" w="97.5" aspect="variable" strokewidth="inherit">
    +<connections>
    +<constraint x="0" y="0.5" perimeter="0" name="W"/>
    +<constraint x="1" y="0.5" perimeter="0" name="E"/>
    +</connections>
    +<background>
    +<path>
    +<move x="0" y="20"/>
    +<line x="59" y="20"/>
    +<line x="59" y="0"/>
    +<line x="97.5" y="35"/>
    +<line x="59" y="70"/>
    +<line x="59" y="50"/>
    +<line x="0" y="50"/>
    +<close/>
    +</path>
    +</background>
    +<foreground>
    +<fillstroke/>
    +</foreground>
    +</shape>
    +</shapes>
    \ No newline at end of file
    diff --git a/javascript/examples/grapheditor/www/stencils/general.xml b/javascript/examples/grapheditor/www/stencils/general.xml
    new file mode 100644
    index 000000000..88b5b0bcc
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/stencils/general.xml
    @@ -0,0 +1,58 @@
    +<shapes>
    +<shape name="step" strokewidth="inherit">
    +	<background>
    +		<path>
    +			<move x="0" y="0"/>
    +			<line x="80" y="0"/>
    +			<line x="100" y="50"/>
    +			<line x="80" y="100"/>
    +			<line x="0" y="100"/>
    +			<line x="20" y="50"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +	</foreground>
    +</shape>
    +<shape name="and" w="50" strokewidth="inherit">
    +	<background>
    +		<path>
    +			<move x="0" y="0"/>
    +			<line x="50" y="50"/>
    +			<line x="0" y="100"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +	</foreground>
    +</shape>
    +<shape name="or" strokewidth="inherit">
    +	<background>
    +		<path>
    +			<move x="0" y="0"/>
    +			<quad x1="100" y1="0" x2="100" y2="50"/>
    +			<quad x1="100" y1="100" x2="0" y2="100"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +	</foreground>
    +</shape>
    +<shape name="xor" strokewidth="inherit">
    +	<background>
    +		<path>
    +			<move x="0" y="0"/>
    +			<quad x1="100" y1="0" x2="100" y2="50"/>
    +			<quad x1="100" y1="100" x2="0" y2="100"/>
    +			<quad x1="50" y1="50" x2="0" y2="0"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +	</foreground>
    +</shape>
    +</shapes>
    diff --git a/javascript/examples/grapheditor/www/styles/default.xml b/javascript/examples/grapheditor/www/styles/default.xml
    new file mode 100644
    index 000000000..2c13b718c
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/styles/default.xml
    @@ -0,0 +1,105 @@
    +<mxStylesheet>
    +	<add as="defaultVertex">
    +		<add as="shape" value="label"/>
    +		<add as="perimeter" value="rectanglePerimeter"/>
    +		<add as="fontSize" value="12"/>
    +		<add as="fontFamily" value="Verdana"/>
    +		<add as="align" value="center"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="fillColor" value="#ffffff"/>
    +		<add as="strokeColor" value="#000000"/>
    +		<add as="fontColor" value="#000000"/>
    +	</add>
    +	<add as="defaultEdge">
    +		<add as="shape" value="connector"/>
    +		<add as="labelBackgroundColor" value="#ffffff"/>
    +		<add as="endArrow" value="classic"/>
    +		<add as="fontSize" value="11"/>
    +		<add as="fontFamily" value="Verdana"/>
    +		<add as="align" value="center"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="labelBackgroundColor" value="#ffffff"/>
    +		<add as="rounded" value="1"/>
    +		<add as="strokeColor" value="#000000"/>
    +		<add as="fontColor" value="#000000"/>
    +	</add>
    +	<add as="text">
    +		<add as="fillColor" value="none"/>
    +		<add as="gradientColor" value="none"/>
    +		<add as="strokeColor" value="none"/>
    +		<add as="align" value="left"/>
    +		<add as="verticalAlign" value="top"/>
    +	</add>
    +	<add as="label">
    +		<add as="fontStyle" value="1"/>
    +		<add as="align" value="left"/>
    +		<add as="verticalAlign" value="middle"/>
    +		<add as="spacing" value="2"/>
    +		<add as="spacingLeft" value="52"/>
    +		<add as="imageWidth" value="42"/>
    +		<add as="imageHeight" value="42"/>
    +		<add as="rounded" value="1"/>
    +	</add>
    +	<add as="icon" extend="label">
    +		<add as="align" value="center"/>
    +		<add as="imageAlign" value="center"/>
    +		<add as="verticalLabelPosition" value="bottom"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="spacingTop" value="4"/>
    +		<add as="labelBackgroundColor" value="#ffffff"/>
    +		<add as="spacing" value="0"/>
    +		<add as="spacingLeft" value="0"/>
    +		<add as="spacingTop" value="6"/>
    +		<add as="fontStyle" value="0"/>
    +		<add as="imageWidth" value="48"/>
    +		<add as="imageHeight" value="48"/>
    +	</add>
    +	<add as="swimlane">
    +		<add as="shape" value="swimlane"/>
    +		<add as="fontSize" value="12"/>
    +		<add as="fontStyle" value="1"/>
    +		<add as="startSize" value="23"/>
    +	</add>
    +	<add as="group">
    +		<add as="verticalAlign" value="top"/>
    +		<add as="fillColor" value="none"/>
    +		<add as="strokeColor" value="none"/>
    +		<add as="gradientColor" value="none"/>
    +	</add>
    +	<add as="ellipse">
    +		<add as="shape" value="ellipse"/>
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombus">
    +		<add as="shape" value="rhombus"/>
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +	<add as="triangle">
    +		<add as="shape" value="triangle"/>
    +		<add as="perimeter" value="trianglePerimeter"/>
    +	</add>
    +	<add as="line">
    +		<add as="shape" value="line"/>
    +		<add as="strokeWidth" value="4"/>
    +		<add as="labelBackgroundColor" value="#ffffff"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="spacingTop" value="8"/>
    +	</add>
    +	<add as="image">
    +		<add as="shape" value="image"/>
    +		<add as="labelBackgroundColor" value="white"/>
    +		<add as="verticalAlign" value="top"/>
    +		<add as="verticalLabelPosition" value="bottom"/>
    +	</add>
    +	<add as="roundImage" extend="image">
    +		<add as="perimeter" value="ellipsePerimeter"/>
    +	</add>
    +	<add as="rhombusImage" extend="image">
    +		<add as="perimeter" value="rhombusPerimeter"/>
    +	</add>
    +	<add as="arrow">
    +		<add as="shape" value="arrow"/>
    +		<add as="edgeStyle" value="none"/>
    +		<add as="fillColor" value="#ffffff"/>
    +	</add>
    +</mxStylesheet>
    diff --git a/javascript/examples/grapheditor/www/styles/grapheditor-ie6.css b/javascript/examples/grapheditor/www/styles/grapheditor-ie6.css
    new file mode 100644
    index 000000000..f0a8f3915
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/styles/grapheditor-ie6.css
    @@ -0,0 +1,23 @@
    +.toolbar .button {
    +	border-color:pink;
    +	filter: chroma(color=pink)alpha(opacity=50);
    +}
    +.toolbar .label {
    +	border-color:pink;
    +	filter:chroma(color=pink)alpha(opacity=50);
    +}
    +.toolbar .disabled {
    +	filter:chroma(color=pink) alpha(opacity=20) !important;
    +}
    +.toolbar .disabled:hover {
    +	border-color:pink !important;
    +	filter:chroma(color=pink) alpha(opacity=20) !important;
    +}
    +.sidebar .item {
    +	border-color:pink !important;
    +	filter:chroma(color=pink) !important;
    +}
    +td.mxPopupMenuIcon .icon {
    +	border-color:pink !important;
    +	filter:chroma(color=pink) !important;
    +}
    diff --git a/javascript/examples/grapheditor/www/styles/grapheditor-touch.css b/javascript/examples/grapheditor/www/styles/grapheditor-touch.css
    new file mode 100644
    index 000000000..d4fb54426
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/styles/grapheditor-touch.css
    @@ -0,0 +1,3 @@
    +html.x-viewport td.mxPopupMenuItem {
    +	font-size: 12pt !important;
    +}
    diff --git a/javascript/examples/grapheditor/www/styles/grapheditor.css b/javascript/examples/grapheditor/www/styles/grapheditor.css
    new file mode 100644
    index 000000000..34e343c81
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/styles/grapheditor.css
    @@ -0,0 +1,327 @@
    +.editor {
    +	font-family:Arial Unicode MS,Arial,Helvetica;
    +	font-size:10pt;
    +	border:none;
    +	margin:0px;
    +}
    +.sidebarContainer a, .menubar a, .toolbar a {
    +	color:black;
    +	text-decoration:none;
    +}
    +.menubarContainer, .toolbarContainer, .diagramContainer, .outlineContainer, .sidebarContainer, .footerContainer, .hsplit, .vsplit {
    +	overflow:hidden;
    +	position:absolute;
    +}
    +.diagramContainer, .outlineContainer {
    +	background-color:#ffffff;
    +}
    +.menubar .item, .toolbar .button, .toolbar .label, div.sidebar, .sidebarContainer .title, .sidebar .item, .mxPopupMenuItem {
    +	-webkit-transition: all 0.1s ease-in-out;
    +	-moz-transition: all 0.1s ease-in-out;
    +	-o-transition: all 0.1s ease-in-out;
    +	-ms-transition: all 0.1s ease-in-out;
    +	transition: all 0.1s ease-in-out;
    +}
    +.menubarContainer {
    +	background-color:#ffffff;
    +	border-style:solid;
    +	border-color:#e5e5e5;
    +	border-width:0px 1px 0px 1px;
    +}
    +.menubar {
    +	padding:2px;
    +	border-top:1px solid #e0e0e0;
    +}
    +.menubar .item {
    +	float:left;
    +	padding:4px 12px 5px 10px;
    +	cursor:default;
    +}
    +.menubar .item:hover {
    +	background:#eeeeee;
    +}
    +.menubar a.status {
    +	color:gray;
    +	padding-left:30px;
    +}
    +.menubar a.status:hover {
    +	background:transparent;
    +}
    +.menubarMenu {
    +	border:1px solid #d5d5d5 !important;
    +}
    +.toolbarContainer {
    +	background:whiteSmoke;
    +}
    +.toolbar {
    +	padding:4px 0px 0px 10px;
    +	border-top:2px solid #e0e0e0;
    +}
    +.toolbar .separator {
    +	float:left;
    +	width:1px;
    +	height:34px;
    +	background:#e5e5e5;
    +	margin-left:6px;
    +	margin-right:6px;
    +}
    +.toolbar .button {
    +	float:left;
    +	width:21px;
    +	height:21px;
    +	padding:0px 2px 5px 2px;
    +	margin:2px;
    +	padding-bottom:4px;
    +	border:1px solid transparent;
    +	cursor:pointer;
    +	opacity:0.5;
    +	_filter:alpha(opacity=50);
    +}
    +.toolbar .button:hover {
    +	border:1px solid gray;
    +	border-radius:2px;
    +	opacity:1;
    +	_filter:none !important;
    +}
    +.toolbar .button:active {
    +	border:1px solid black;
    +}
    +.toolbar .label {
    +	float:left;
    +	padding:5px;
    +	padding-top:1px;
    +	margin:2px;
    +	margin-top:2px;
    +	border:1px solid transparent;
    +	cursor:pointer;
    +	opacity:0.5;
    +	_filter:alpha(opacity=50);
    +}
    +.toolbar .label:hover {
    +	border:1px solid gray;
    +	border-radius:2px;
    +	opacity:0.9;
    +	_filter:alpha(opacity=90) !important;
    +}
    +.toolbar .label:active {
    +	border:1px solid black;
    +	opacity:1;
    +	_filter:none !important;
    +}
    +.toolbar .disabled {
    +	cursor:default !important;
    +	opacity:0.2 !important;
    +	_filter:alpha(opacity=20) !important;
    +}
    +.toolbar .disabled:hover {
    +	border:1px solid transparent !important;
    +	opacity:0.2 !important;
    +	_filter:alpha(opacity=20) !important;
    +}
    +.toolbarMenu {
    +	border:3px solid #e0e0e0 !important;
    +	-webkit-box-shadow:none !important;
    +	-moz-box-shadow:none !important;
    +	box-shadow:none !important;
    +	_filter:none !important;
    +}
    +.sidebarContainer {
    +	overflow:hidden;
    +	position:absolute;
    +	border-top:1px solid #e5e5e5;
    +	background:whiteSmoke;
    +	overflow:auto;
    +	line-height:0em;
    +}
    +.sidebar {
    +	border-bottom:1px solid #e5e5e5;
    +	padding-top:6px;
    +	padding-bottom:6px;
    +	padding-left:2px;
    +}
    +.sidebarContainer .title {
    +	display:block;
    +	font-size:8pt;
    +	border-bottom:1px solid #e5e5e5;
    +	font-weight:normal;
    +	padding:6px 0px 6px 6px;
    +	margin:0px;
    +	cursor:pointer;
    +	background:#eeeeee;
    +	white-space:nowrap;
    +	overflow:hidden;
    +	text-overflow:ellipsis;
    +	line-height:1.4em;
    +}
    +.sidebarContainer .title:hover {
    +	background:#e5e5e5;
    +}
    +.sidebar .item {
    +	display:inline-block;
    +	overflow:hidden;
    +	background-repeat: no-repeat;
    +	background-position: 50% 50%;
    +	border:1px solid transparent;
    +	border-radius:2px;
    +	width:32px;
    +	height:32px;
    +	_width:34px;
    +	_height:34px;
    +}
    +.sidebar .item:hover {
    +	border:1px solid gray !important;
    +}
    +.sidebarTooltip {
    +	position:absolute;
    +	background:white;
    +	overflow:hidden;
    +	border:1px solid gray;
    +	border-radius:8px;
    +	-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;
    +	-moz-box-shadow:0px 0px 2px 2px #d5d5d5;
    +	box-shadow:0px 0px 2px 2px #d5d5d5;
    +	_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');
    +}
    +.footerContainer {
    +	background:#e5e5e5;
    +}
    +.footer {
    +	border-top:1px solid #c0c0c0;
    +}
    +.hsplit {
    +	cursor:col-resize;
    +	background-color:#e5e5e5;
    +	background-image:url('thumb_vertical.png');
    +	background-repeat:no-repeat;
    +	background-position:center center;
    +}
    +.hsplit:hover {
    +	background-color:#d5d5d5;
    +}
    +.vsplit {
    +	font-size:1pt;
    +	cursor:row-resize;
    +	background-color:#e5e5e5;
    +	background-image:url('thumb_horz.png');
    +	background-repeat:no-repeat;
    +	background-position:center center;
    +}
    +.vsplit:hover {
    +	background-color:#d5d5d5;
    +}
    +.dialog {
    +	position:absolute;
    +	background:white;
    +	padding:20px;
    +	border:10px solid whiteSmoke;
    +	border-radius:8px;
    +	-webkit-box-shadow: 0px 0px 2px 2px #d5d5d5;
    +	-moz-box-shadow: 0px 0px 2px 2px #d5d5d5;
    +	box-shadow: 0px 0px 2px 2px #d5d5d5;
    +	_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');
    +}
    +.dialogClose {
    +	position:absolute;
    +	width:9px;
    +	height:9px;
    +	opacity:0.5;
    +	cursor:pointer;
    +	_filter:alpha(opacity=50);
    +}
    +.dialogClose:hover {
    +	opacity:1;
    +}
    +.sprite {
    +	background: url('sprites.png') no-repeat top left;
    +	width:21px;
    +	height:21px;
    +}
    +.sprite-actualsize { background-position: 0 0; }
    +.sprite-bold { background-position: 0 -46px; }
    +.sprite-bottom { background-position: 0 -92px; }
    +.sprite-center { background-position: 0 -138px; }
    +.sprite-delete { background-position: 0 -184px; }
    +.sprite-fillcolor { background-position: 0 -230px; }
    +.sprite-fit { background-position: 0 -276px; }
    +.sprite-fontcolor { background-position: 0 -322px; }
    +.sprite-gradientcolor { background-position: 0 -368px; }
    +.sprite-image { background-position: 0 -414px; }
    +.sprite-italic { background-position: 0 -460px; }
    +.sprite-left { background-position: 0 -506px; }
    +.sprite-middle { background-position: 0 -552px; }
    +.sprite-print { background-position: 0 -598px; }
    +.sprite-redo { background-position: 0 -644px; }
    +.sprite-right { background-position: 0 -690px; }
    +.sprite-shadow { background-position: 0 -736px; }
    +.sprite-strokecolor { background-position: 0 -782px; }
    +.sprite-top { background-position: 0 -828px; }
    +.sprite-underline { background-position: 0 -874px; }
    +.sprite-undo { background-position: 0 -920px; }
    +.sprite-zoomin { background-position: 0 -966px; }
    +.sprite-zoomout { background-position: 0 -1012px; }
    +html div.mxRubberband {
    +	border-color: #0000DD;
    +	background: #99ccff;
    +}
    +td.mxPopupMenuIcon div {
    +	width:16px;
    +	height:16px;
    +}
    +html td.mxPopupMenuItem {
    +	font-size:9pt;
    +	padding:6px;
    +}
    +html div.mxPopupMenu {
    +	-webkit-box-shadow: 2px 2px 3px #d5d5d5;
    +	-moz-box-shadow: 2px 2px 3px #d5d5d5;
    +	box-shadow: 2px 2px 3px #d5d5d5;
    +	_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0', Positive='true');
    +	background: white;
    +	position: absolute;
    +	border: 3px solid #e7e7e7;
    +	padding: 3px;
    +}
    +html table.mxPopupMenu {
    +	border-collapse: collapse;
    +	margin: 0px;
    +}
    +html tr.mxPopupMenuItem {
    +	color: black;
    +	cursor: default;
    +}
    +html td.mxPopupMenuItem {
    +	padding: 6px 30px 6px 30px;
    +	font-family: Arial;
    +	font-size: 10pt;
    +}
    +html td.mxPopupMenuIcon {
    +	background-color: white;
    +	padding: 0px;
    +}
    +td.mxPopupMenuIcon .icon {
    +	padding:2px;
    +	padding-bottom:4px;
    +	margin:2px;
    +	border:1px solid transparent;
    +	opacity:0.5;
    +	_width:21px;
    +	_height:21px;
    +}
    +td.mxPopupMenuIcon .icon:hover {
    +	border:1px solid gray;
    +	border-radius:2px;
    +	opacity:1;
    +}
    +html tr.mxPopupMenuItemHover {
    +	background-color: #eeeeee;
    +	color: black;
    +}
    +table.mxPopupMenu hr {
    +	color:#cccccc;
    +	background-color:#cccccc;
    +	border:none;
    +	height:1px;
    +}
    +table.mxPopupMenu tr {
    +	font-size: 4pt;
    +}
    \ No newline at end of file
    diff --git a/javascript/examples/grapheditor/www/styles/help.css b/javascript/examples/grapheditor/www/styles/help.css
    new file mode 100644
    index 000000000..20014a83d
    --- /dev/null
    +++ b/javascript/examples/grapheditor/www/styles/help.css
    @@ -0,0 +1,4 @@
    +body {
    +	font-family:Arial Unicode MS,Arial,Helvetica;
    +	font-size:10pt;
    +}
    diff --git a/javascript/examples/grapheditor/www/styles/sprites.png b/javascript/examples/grapheditor/www/styles/sprites.png
    new file mode 100644
    index 000000000..c7737fc10
    Binary files /dev/null and b/javascript/examples/grapheditor/www/styles/sprites.png differ
    diff --git a/javascript/examples/grapheditor/www/styles/thumb_horz.png b/javascript/examples/grapheditor/www/styles/thumb_horz.png
    new file mode 100644
    index 000000000..f2896f5c0
    Binary files /dev/null and b/javascript/examples/grapheditor/www/styles/thumb_horz.png differ
    diff --git a/javascript/examples/grapheditor/www/styles/thumb_vertical.png b/javascript/examples/grapheditor/www/styles/thumb_vertical.png
    new file mode 100644
    index 000000000..e0a22e029
    Binary files /dev/null and b/javascript/examples/grapheditor/www/styles/thumb_vertical.png differ
    diff --git a/javascript/examples/graphlayout.html b/javascript/examples/graphlayout.html
    new file mode 100644
    index 000000000..f497dd1ae
    --- /dev/null
    +++ b/javascript/examples/graphlayout.html
    @@ -0,0 +1,197 @@
    +<!--
    +  $Id: graphlayout.html,v 1.31 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Graphlayout example for mxGraph. This example demonstrates using
    +  automatic graph layouts and listening to changes of the graph size
    +  to keep the container size in sync.
    +-->
    +<html>
    +<head>
    +	<title>Graphlayout example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Disables basic selection and cell handling
    +				graph.setEnabled(false);
    +				
    +				// Changes the default vertex style in-place
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_ELLIPSE;
    +				style[mxConstants.STYLE_PERIMETER] = mxPerimeter.EllipsePerimeter;
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +				style[mxConstants.STYLE_FONTSIZE] = '10';
    +								
    +				// Updates the size of the container to match
    +				// the size of the graph when it changes. If
    +				// this is commented-out, and the DIV style's
    +				// overflow is set to "auto", then scrollbars
    +				// will appear for the diagram. If overflow is
    +				// set to "visible", then the diagram will be
    +				// visible even when outside the parent DIV.
    +				// With the code below, the parent DIV will be
    +				// resized to contain the complete graph.
    +				//graph.setResizeContainer(true);
    +				
    +				// Larger grid size yields cleaner layout result
    +				graph.gridSize = 40;
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +
    +				// Creates a layout algorithm to be used
    +				// with the graph
    +				var layout = new mxFastOrganicLayout(graph);
    +
    +				// Moves stuff wider apart than usual
    +				layout.forceConstant = 80;
    +
    +				// Reference to the transition checkbox
    +				var animate = document.getElementById('animate');
    +				
    +				// Adds a button to execute the layout
    +				document.body.insertBefore(mxUtils.button('Circle Layout',
    +					function(evt)
    +					{
    +						graph.getModel().beginUpdate();
    +						try
    +						{
    +							// Creates a layout algorithm to be used
    +							// with the graph
    +							var circleLayout = new mxCircleLayout(graph);
    +							circleLayout.execute(parent);
    +						}
    +						catch (e)
    +						{
    +							throw e;
    +						}
    +						finally
    +						{
    +							if (animate.checked)
    +							{
    +								var morph = new mxMorphing(graph);
    +								morph.addListener(mxEvent.DONE, function()
    +								{
    +									graph.getModel().endUpdate();
    +								});
    +								
    +								morph.startAnimation();
    +							}
    +							else
    +							{
    +								graph.getModel().endUpdate();
    +							}
    +						}
    +					}
    +				), document.body.firstChild);
    +												
    +				// Adds a button to execute the layout
    +				document.body.insertBefore(mxUtils.button('Organic Layout',
    +					function(evt)
    +					{
    +						graph.getModel().beginUpdate();
    +						try
    +						{
    +							layout.execute(parent);
    +						}
    +						catch (e)
    +						{
    +							throw e;
    +						}
    +						finally
    +						{
    +							if (animate.checked)
    +							{
    +								// Default values are 6, 1.5, 20
    +								var morph = new mxMorphing(graph, 10, 1.7, 20);
    +								morph.addListener(mxEvent.DONE, function()
    +								{
    +									graph.getModel().endUpdate();
    +								});
    +								morph.startAnimation();
    +							}
    +							else
    +							{
    +								graph.getModel().endUpdate();
    +							}
    +						}
    +					}
    +				), document.body.firstChild);
    +
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				var w = 30;
    +				var h = 30;
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'A', 0, 0, w, h);
    +					var v2 = graph.insertVertex(parent, null, 'B', 0, 0, w, h);
    +					var v3 = graph.insertVertex(parent, null, 'C', 0, 0, w, h);
    +					var v4 = graph.insertVertex(parent, null, 'D', 0, 0, w, h);
    +					var v5 = graph.insertVertex(parent, null, 'E', 0, 0, w, h);
    +					var v6 = graph.insertVertex(parent, null, 'F', 0, 0, w, h);
    +					var v7 = graph.insertVertex(parent, null, 'G', 0, 0, w, h);
    +					var v8 = graph.insertVertex(parent, null, 'H', 0, 0, w, h);
    +					var e1 = graph.insertEdge(parent, null, 'ab', v1, v2);
    +					var e2 = graph.insertEdge(parent, null, 'ac', v1, v3);
    +					var e3 = graph.insertEdge(parent, null, 'cd', v3, v4);
    +					var e4 = graph.insertEdge(parent, null, 'be', v2, v5);
    +					var e5 = graph.insertEdge(parent, null, 'cf', v3, v6);
    +					var e6 = graph.insertEdge(parent, null, 'ag', v1, v7);
    +					var e7 = graph.insertEdge(parent, null, 'gh', v7, v8);
    +					var e8 = graph.insertEdge(parent, null, 'gc', v7, v3);
    +					var e9 = graph.insertEdge(parent, null, 'gd', v7, v4);
    +					var e10 = graph.insertEdge(parent, null, 'eh', v5, v8);
    +					
    +					// Executes the layout
    +					layout.execute(parent);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper. Make sure to define the position
    +		and overflow attributes! See comments on the adding of the size-listener on line 54 ff!  -->
    +	<div id="graphContainer"
    +		style="overflow:visible;width:821px;height:641px;background:url('editors/images/grid.gif');">
    +	</div>
    +	<br>
    +	<input type="checkbox" id="animate" checked="checked"/> Transitions
    +</body>
    +</html>
    diff --git a/javascript/examples/grid.html b/javascript/examples/grid.html
    new file mode 100644
    index 000000000..6d83e4498
    --- /dev/null
    +++ b/javascript/examples/grid.html
    @@ -0,0 +1,220 @@
    +<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]-->
    +<!DOCTYPE html>
    +<!--
    +  $Id: grid.html,v 1.1 2012-01-18 10:05:28 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Grid example for mxGraph. This example demonstrates drawing
    +  a grid dynamically using HTML 5 canvas.
    +-->
    +<html>
    +<head>
    +	<title>Grid example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				mxEvent.disableContextMenu(document.body);
    +				
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.graphHandler.scaleGrid = true;
    +				graph.setPanning(true);
    +
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +
    +				// Create grid dynamically (requires canvas)
    +				(function()
    +				{
    +					try
    +					{
    +						var canvas = document.createElement('canvas');
    +						canvas.style.position = 'absolute';
    +						canvas.style.top = '0px';
    +						canvas.style.left = '0px';
    +						canvas.style.zIndex = -1;
    +						graph.container.appendChild(canvas);
    +						
    +						var ctx = canvas.getContext('2d');
    +						
    +						// Modify event filtering to accept canvas as container
    +						mxGraphViewIsContainerEvent = mxGraphView.prototype.isContainerEvent;
    +						mxGraphView.prototype.isContainerEvent = function(evt)
    +						{
    +							return mxGraphViewIsContainerEvent.apply(this, arguments) ||
    +								mxEvent.getSource(evt) == canvas;
    +						};
    +						
    +						var s = 0;
    +						var gs = 0;
    +						var tr = new mxPoint();
    +						var w = 0;
    +						var h = 0;
    +
    +						function repaintGrid()
    +						{
    +							if (ctx != null)
    +							{
    +								var bounds = graph.getGraphBounds();
    +								var width = Math.max(bounds.x + bounds.width, graph.container.clientWidth);
    +								var height = Math.max(bounds.y + bounds.height, graph.container.clientHeight);
    +								var sizeChanged = width != w || height != h;
    +								
    +								if (graph.view.scale != s || graph.view.translate.x != tr.x || graph.view.translate.y != tr.y ||
    +									gs != graph.gridSize || sizeChanged)
    +								{
    +									tr = graph.view.translate.clone();
    +									s = graph.view.scale;
    +									gs = graph.gridSize;
    +									w = width;
    +									h = height;
    +									
    +									// Clears the background if required
    +									if (!sizeChanged)
    +									{
    +										ctx.clearRect(0, 0, w, h);
    +									}
    +									else
    +									{
    +										canvas.setAttribute('width', w);
    +										canvas.setAttribute('height', h);
    +									}
    +	
    +									var tx = tr.x * s;
    +									var ty = tr.y * s;
    +	
    +									// Sets the distance of the grid lines in pixels
    +									var minStepping = graph.gridSize;
    +									var stepping = minStepping * s;
    +	
    +									if (stepping < minStepping)
    +									{
    +										var count = Math.round(Math.ceil(minStepping / stepping) / 2) * 2;
    +										stepping = count * stepping;
    +									}
    +	
    +									var xs = Math.floor((0 - tx) / stepping) * stepping + tx;
    +									var xe = Math.ceil(w / stepping) * stepping;
    +									var ys = Math.floor((0 - ty) / stepping) * stepping + ty;
    +									var ye = Math.ceil(h / stepping) * stepping;
    +	
    +									xe += Math.ceil(stepping);
    +									ye += Math.ceil(stepping);
    +	
    +									var ixs = Math.round(xs);
    +									var ixe = Math.round(xe);
    +									var iys = Math.round(ys);
    +									var iye = Math.round(ye);
    +	
    +									// Draws the actual grid
    +									ctx.strokeStyle = '#f6f6f6';
    +									ctx.beginPath();
    +									
    +									for (var x = xs; x <= xe; x += stepping)
    +									{
    +										x = Math.round((x - tx) / stepping) * stepping + tx;
    +										var ix = Math.round(x);
    +										
    +										ctx.moveTo(ix + 0.5, iys + 0.5);
    +										ctx.lineTo(ix + 0.5, iye + 0.5);
    +									}
    +	
    +									for (var y = ys; y <= ye; y += stepping)
    +									{
    +										y = Math.round((y - ty) / stepping) * stepping + ty;
    +										var iy = Math.round(y);
    +										
    +										ctx.moveTo(ixs + 0.5, iy + 0.5);
    +										ctx.lineTo(ixe + 0.5, iy + 0.5);
    +									}
    +	
    +									ctx.closePath();
    +									ctx.stroke();
    +								}
    +							}
    +						};
    +					}
    +					catch (e)
    +					{
    +						mxLog.show();
    +						mxLog.debug('Using background image');
    +						
    +						container.style.backgroundImage = 'url(\'editors/images/grid.gif\')';
    +					}
    +					
    +					mxGraphViewValidateBackground = mxGraphView.prototype.validateBackground;
    +					mxGraphView.prototype.validateBackground = function()
    +					{
    +						mxGraphViewValidateBackground.apply(this, arguments);
    +						repaintGrid();
    +					};
    +				})();
    +				
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +				graph.centerZoom = false;
    +				
    +				document.body.appendChild(mxUtils.button('+', function()
    +				{
    +					graph.zoomIn();
    +				}));
    +				
    +				document.body.appendChild(mxUtils.button('-', function()
    +				{
    +					graph.zoomOut();
    +				}));
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:821px;height:641px;cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/guides.html b/javascript/examples/guides.html
    new file mode 100644
    index 000000000..9187d92eb
    --- /dev/null
    +++ b/javascript/examples/guides.html
    @@ -0,0 +1,167 @@
    +<!--
    +  $Id: guides.html,v 1.6 2012-01-16 15:51:51 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Guides example for mxGraph. This example demonstrates the guides
    +  feature which aligns the current selection to the existing vertices
    +  in the graph. This feature is in RFC state. Creating a grid using
    +  a canvas and installing a key handler for cursor keys is also
    +  demonstrated here, as well as snapping waypoints to terminals.
    +-->
    +<html>
    +<head>
    +	<title>Guides example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables guides
    +				mxGraphHandler.prototype.guidesEnabled = true;
    +				
    +			    // Alt disables guides
    +			    mxGraphHandler.prototype.useGuidesForEvent = function(me)
    +			    {
    +			    	return !mxEvent.isAltDown(me.getEvent());
    +			    };
    +			    
    +			    // Defines the guides to be red (default)
    +				mxConstants.GUIDE_COLOR = '#FF0000';
    +			    
    +			    // Defines the guides to be 1 pixel (default)
    +				mxConstants.GUIDE_STROKEWIDTH = 1;
    +				
    +				// Enables snapping waypoints to terminals
    +				mxEdgeHandler.prototype.snapToTerminals = true;
    +				
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setConnectable(true);
    +				graph.gridSize = 30;
    +				
    +				// Changes the default style for edges "in-place" and assigns
    +				// an alternate edge style which is applied in mxGraph.flip
    +				// when the user double clicks on the adjustment control point
    +				// of the edge. The ElbowConnector edge style switches to TopToBottom
    +				// if the horizontal style is true.
    +				var style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +				graph.alternateEdgeStyle = 'elbow=vertical';
    +
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				var v1;
    +				try
    +				{
    +					v1 = graph.insertVertex(parent, null, 'Hello,', 20, 40, 80, 70);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 140, 80, 40);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +			    // Handles cursor keys
    +			    var nudge = function(keyCode)
    +			    {
    +			    	if (!graph.isSelectionEmpty())
    +					{
    +			    		var dx = 0;
    +			    		var dy = 0;
    +			    		
    +			    		if (keyCode == 37)
    +						{
    +			    			dx = -1;
    +						}
    +			    		else if (keyCode == 38)
    +			    		{
    +			    			dy = -1;
    +			    		}
    +			    		else if (keyCode == 39)
    +			    		{
    +			    			dx = 1;
    +			    		}
    +			    		else if (keyCode == 40)
    +			    		{
    +			    			dy = 1;
    +			    		}
    +			    		
    +			    		graph.moveCells(graph.getSelectionCells(), dx, dy);
    +					}
    +			    };
    +
    +				// Transfer initial focus to graph container for keystroke handling
    +				graph.container.focus();
    +				    
    +			    // Handles keystroke events
    +			    var keyHandler = new mxKeyHandler(graph);
    +			    
    +			    // Ignores enter keystroke. Remove this line if you want the
    +			    // enter keystroke to stop editing
    +			    keyHandler.enter = function() {};
    +			    
    +			    keyHandler.bindKey(37, function()
    +				{
    +					nudge(37);
    +				});
    +			    
    +			    keyHandler.bindKey(38, function()
    +			    {
    +			    	nudge(38);
    +			    });
    +			    
    +			    keyHandler.bindKey(39, function()
    +			    {
    +			    	nudge(39);
    +			    });
    +			    
    +			    keyHandler.bindKey(40, function()
    +			    {
    +			    	nudge(40);
    +			    });
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:821px;height:641px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/helloport.html b/javascript/examples/helloport.html
    new file mode 100644
    index 000000000..cf4614306
    --- /dev/null
    +++ b/javascript/examples/helloport.html
    @@ -0,0 +1,123 @@
    +<!--
    +  $Id: helloport.html,v 1.4 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Hello, World! example for mxGraph. This example demonstrates using
    +  the isPort hook for visually connecting to another cell.
    +-->
    +<html>
    +<head>
    +	<title>Hello, World! example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setConnectable(true);
    +				graph.setTooltips(true);
    +
    +				// Sets the default edge style
    +				var style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +
    +				// Ports are not used as terminals for edges, they are
    +				// only used to compute the graphical connection point
    +				graph.isPort = function(cell)
    +				{
    +					var geo = this.getCellGeometry(cell);
    +
    +					return (geo != null) ? geo.relative : false;
    +				};
    +
    +				// Implements a tooltip that shows the actual
    +				// source and target of an edge
    +				graph.getTooltipForCell = function(cell)
    +				{
    +					if (this.model.isEdge(cell))
    +					{
    +						return this.convertValueToString(this.model.getTerminal(cell, true)) + ' => ' +
    +							this.convertValueToString(this.model.getTerminal(cell, false))
    +					}
    +
    +					return mxGraph.prototype.getTooltipForCell.apply(this, arguments);
    +				};
    +
    +				// Removes the folding icon and disables any folding
    +				graph.isCellFoldable = function(cell)
    +				{
    +					return false;
    +				};
    +
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello', 20, 80, 80, 30);
    +					v1.setConnectable(false);
    +					var v11 = graph.insertVertex(v1, null, '', 1, 1, 10, 10);
    +					v11.geometry.offset = new mxPoint(-5, -5);
    +					v11.geometry.relative = true;
    +					var v12 = graph.insertVertex(v1, null, '', 1, 0, 10, 10);
    +					v12.geometry.offset = new mxPoint(-5, -5);
    +					v12.geometry.relative = true;
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var v3 = graph.insertVertex(parent, null, 'World2', 200, 20, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v11, v2);
    +					var e1 = graph.insertEdge(parent, null, '', v12, v3);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +				
    +				var button = mxUtils.button('View XML', function()
    +				{
    +					var encoder = new mxCodec();
    +					var node = encoder.encode(graph.getModel());
    +					mxUtils.popup(mxUtils.getPrettyXml(node), true);
    +				});
    +				
    +				document.body.insertBefore(button, container.nextSibling);
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/helloworld.html b/javascript/examples/helloworld.html
    new file mode 100644
    index 000000000..98f6d04d8
    --- /dev/null
    +++ b/javascript/examples/helloworld.html
    @@ -0,0 +1,78 @@
    +<!--
    +  $Id: helloworld.html,v 1.31 2012-01-09 10:51:22 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Hello, World! example for mxGraph. This example demonstrates using
    +  a DOM node to create a graph and adding vertices and edges.
    +-->
    +<html>
    +<head>
    +	<title>Hello, World! example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Uncomment the following if you want the container
    +				// to fit the size of the graph
    +				//graph.setResizeContainer(true);
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/hierarchicallayout.html b/javascript/examples/hierarchicallayout.html
    new file mode 100644
    index 000000000..65e9fff4c
    --- /dev/null
    +++ b/javascript/examples/hierarchicallayout.html
    @@ -0,0 +1,138 @@
    +<!--
    +  $Id: hierarchicallayout.html,v 1.12 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Hierarchical Layout example for mxGraph. This example demonstrates the
    +  use of the hierarchical and organic layouts. Note that the hierarchical
    +  layout requires another script tag in the head of the page.
    +-->
    +<html>
    +<head>
    +	<title>Hierarchical Layout example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Adds rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Changes the default vertex style in-place
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +				style[mxConstants.STYLE_PERIMETER_SPACING] = 6;
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				style[mxConstants.STYLE_SHADOW] = true;
    +				
    +				style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +
    +				// Creates a layout algorithm to be used
    +				// with the graph
    +				var layout = new mxHierarchicalLayout(graph);
    +				var organic = new mxFastOrganicLayout(graph);
    +				organic.forceConstant = 120;
    +				
    +				var parent = graph.getDefaultParent();
    +			
    +				// Adds a button to execute the layout
    +				var button = document.createElement('button');
    +				mxUtils.write(button, 'Hierarchical');
    +				mxEvent.addListener(button, 'click', function(evt)
    +				{
    +					layout.execute(parent);
    +				});
    +				document.body.appendChild(button);
    +
    +				// Adds a button to execute the layout
    +				var button = document.createElement('button');
    +				mxUtils.write(button, 'Organic');
    +				
    +				mxEvent.addListener(button, 'click', function(evt)
    +				{
    +					organic.execute(parent);
    +				});
    +				
    +				document.body.appendChild(button);
    +				
    +				// Load cells and layouts the graph
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, '1', 0, 0, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, '2', 0, 0, 80, 30);
    +					var v3 = graph.insertVertex(parent, null, '3', 0, 0, 80, 30);
    +					var v4 = graph.insertVertex(parent, null, '4', 0, 0, 80, 30);
    +					var v5 = graph.insertVertex(parent, null, '5', 0, 0, 80, 30);
    +					var v6 = graph.insertVertex(parent, null, '6', 0, 0, 80, 30);
    +					var v7 = graph.insertVertex(parent, null, '7', 0, 0, 80, 30);
    +					var v8 = graph.insertVertex(parent, null, '8', 0, 0, 80, 30);
    +					var v9 = graph.insertVertex(parent, null, '9', 0, 0, 80, 30);
    +
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +					var e2 = graph.insertEdge(parent, null, '', v1, v3);
    +					var e3 = graph.insertEdge(parent, null, '', v3, v4);
    +					var e4 = graph.insertEdge(parent, null, '', v2, v5);
    +					var e5 = graph.insertEdge(parent, null, '', v1, v6);
    +					var e6 = graph.insertEdge(parent, null, '', v2, v3);
    +					var e7 = graph.insertEdge(parent, null, '', v6, v4);
    +					var e8 = graph.insertEdge(parent, null, '', v6, v1);
    +					var e9 = graph.insertEdge(parent, null, '', v6, v7);
    +					var e10 = graph.insertEdge(parent, null, '', v7, v8);
    +					var e11 = graph.insertEdge(parent, null, '', v7, v9);
    +					var e12 = graph.insertEdge(parent, null, '', v7, v6);
    +					var e13 = graph.insertEdge(parent, null, '', v7, v5);
    +					
    +					// Executes the layout
    +					layout.execute(parent);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper. Make sure to define the position
    +		and overflow attributes! See comments on the adding of the size-listener on line 54 ff!  -->
    +	<div id="graphContainer"
    +		style="position:absolute;overflow:auto;top:44px;bottom:20px;left:20px;right:20px;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/hovericons.html b/javascript/examples/hovericons.html
    new file mode 100644
    index 000000000..00fa25ecb
    --- /dev/null
    +++ b/javascript/examples/hovericons.html
    @@ -0,0 +1,227 @@
    +<!--
    +  $Id: hovericons.html,v 1.4 2012-01-08 10:34:01 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Hover icons example for mxGraph. This example demonstrates showing
    +  icons on vertices as mouse hovers over them.
    +-->
    +<html>
    +<head>
    +	<title>Hover icons example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Defines an icon for creating new connections in the connection handler.
    +		// This will automatically disable the highlighting of the source vertex.
    +		mxConnectionHandler.prototype.connectImage = new mxImage('images/connector.gif', 16, 16);
    +		
    +		// Enables crisp rendering of rectangles in SVG
    +		mxRectangleShape.prototype.crisp = true;
    +		
    +		// Defines a new class for all icons
    +		function mxIconSet(state)
    +		{
    +			this.images = [];
    +			var graph = state.view.graph;
    +			var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +			
    +			// Icon1
    +			var img = mxUtils.createImage('images/copy.png');
    +			img.setAttribute('title', 'Duplicate');
    +			img.style.position = 'absolute';
    +			img.style.cursor = 'pointer';
    +			img.style.width = '16px';
    +			img.style.height = '16px';
    +			img.style.left = (state.x + state.width) + 'px';
    +			img.style.top = (state.y + state.height) + 'px';
    +			
    +			mxEvent.addListener(img, md,
    +				mxUtils.bind(this, function(evt)
    +				{
    +					var s = graph.gridSize;
    +					graph.setSelectionCells(graph.moveCells([state.cell], s, s, true));
    +					mxEvent.consume(evt);
    +					this.destroy();
    +				})
    +			);
    +			
    +			state.view.graph.container.appendChild(img);
    +			this.images.push(img);
    +			
    +			// Delete
    +			var img = mxUtils.createImage('images/delete2.png');
    +			img.setAttribute('title', 'Delete');
    +			img.style.position = 'absolute';
    +			img.style.cursor = 'pointer';
    +			img.style.width = '16px';
    +			img.style.height = '16px';
    +			img.style.left = (state.x + state.width) + 'px';
    +			img.style.top = (state.y - 16) + 'px';
    +			
    +			mxEvent.addListener(img, md,
    +				mxUtils.bind(this, function(evt)
    +				{
    +					// Disables dragging the image
    +					mxEvent.consume(evt);
    +				})
    +			);
    +			
    +			mxEvent.addListener(img, 'click',
    +				mxUtils.bind(this, function(evt)
    +				{
    +					graph.removeCells([state.cell]);
    +					mxEvent.consume(evt);
    +					this.destroy();
    +				})
    +			);
    +			
    +			state.view.graph.container.appendChild(img);
    +			this.images.push(img);
    +		};
    +
    +		mxIconSet.prototype.destroy = function()
    +		{
    +			if (this.images != null)
    +			{
    +				for (var i = 0; i < this.images.length; i++)
    +				{
    +					var img = this.images[i];
    +					img.parentNode.removeChild(img);
    +				}
    +			}
    +			
    +			this.images = null;
    +		};
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setConnectable(true);
    +				
    +				// Defines the tolerance before removing the icons
    +				var iconTolerance = 20;
    +
    +				// Shows icons if the mouse is over a cell
    +				graph.addMouseListener(
    +				{
    +				    currentState: null,
    +				    currentIconSet: null,
    +				    mouseDown: function(sender, me)
    +				    {
    +				    	// Hides icons on mouse down
    +			        	if (this.currentState != null)
    +			        	{
    +			          		this.dragLeave(me.getEvent(), this.currentState);
    +			          		this.currentState = null;
    +			        	}
    +				    },
    +				    mouseMove: function(sender, me)
    +				    {
    +				    	if (this.currentState != null && (me.getState() == this.currentState ||
    +				    		me.getState() == null))
    +				    	{
    +				    		var tol = iconTolerance;
    +				    		var tmp = new mxRectangle(me.getGraphX() - tol,
    +				    			me.getGraphY() - tol, 2 * tol, 2 * tol);
    +
    +				    		if (mxUtils.intersects(tmp, this.currentState))
    +				    		{
    +				    			return;
    +				    		}
    +				    	}
    +				    	
    +						var tmp = graph.view.getState(me.getCell());
    +				    	
    +				    	// Ignores everything but vertices
    +						if (graph.isMouseDown || (tmp != null && !graph.getModel().isVertex(tmp.cell)))
    +						{
    +							tmp = null;
    +						}
    +
    +				      	if (tmp != this.currentState)
    +				      	{
    +				        	if (this.currentState != null)
    +				        	{
    +				          		this.dragLeave(me.getEvent(), this.currentState);
    +				        	}
    +				        
    +			        		this.currentState = tmp;
    +				        
    +				        	if (this.currentState != null)
    +				        	{
    +				          		this.dragEnter(me.getEvent(), this.currentState);
    +				        	}
    +				      	}
    +				    },
    +				    mouseUp: function(sender, me) { },
    +				    dragEnter: function(evt, state)
    +				    {
    +				    	if (this.currentIconSet == null)
    +				    	{
    +			    			this.currentIconSet = new mxIconSet(state);
    +				    	}
    +				    },
    +				    dragLeave: function(evt, state)
    +				    {
    +				    	if (this.currentIconSet != null)
    +				    	{
    +			    			this.currentIconSet.destroy();
    +			    			this.currentIconSet = null;
    +				    	}
    +				    }
    +				});
    +				 
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/ie9svg.html b/javascript/examples/ie9svg.html
    new file mode 100644
    index 000000000..0b9a0ad5a
    --- /dev/null
    +++ b/javascript/examples/ie9svg.html
    @@ -0,0 +1,82 @@
    +<!--
    +  $Id: ie9svg.html,v 1.5 2011-09-02 14:19:02 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  IE9SVG example for mxGraph. This example demonstrates using
    +  SVG for rendering a diagram in IE9.
    +-->
    +<html>
    +<head>
    +	<title>IE9 SVG example for mxGraph</title>
    +	
    +	<!-- See standardsmode.html for combining this with a DOCTYPE -->
    +	<meta http-equiv="X-UA-Compatible" content="IE=7,IE=9" >
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +	<br>
    +	See also:<br>
    +	<a href="standardsmode.html">Standardsmode</a><br>
    +	<a href="../../docs/known-issues.html#Doctypes">docs/known-issues.html#Doctypes</a><br>
    +	<a href="../../docs/known-issues.html#IE9">docs/known-issues.html#IE9</a>
    +</body>
    +</html>
    diff --git a/javascript/examples/images.html b/javascript/examples/images.html
    new file mode 100644
    index 000000000..95c2341a6
    --- /dev/null
    +++ b/javascript/examples/images.html
    @@ -0,0 +1,129 @@
    +<!--
    +  $Id: images.html,v 1.23 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Images example for mxGraph. This example demonstrates using
    +  background images and images for for the label- and image-shape.
    +-->
    +<html>
    +<head>
    +	<title>Hello, World! example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Sets a background image and restricts child movement to its bounds
    +				graph.setBackgroundImage(new mxImage('images/gradient_background.jpg', 360, 200));
    +				graph.maximumGraphBounds = new mxRectangle(0, 0, 360, 200);
    +
    +				// Resizes the container but never make it bigger than the background
    +				graph.minimumContainerSize = new mxRectangle(0, 0, 360, 200);
    +				graph.setResizeContainer(true);
    +
    +				// Disables basic selection and cell handling
    +				//graph.setEnabled(false);
    +				configureStylesheet(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'First Line\nSecond Line', 20, 10, 80, 100, 'bottom');
    +					var v1 = graph.insertVertex(parent, null, 'First Line\nSecond Line', 130, 10, 80, 100, 'top');
    +					var v1 = graph.insertVertex(parent, null, '', 230, 10, 100, 100, 'image');
    +					var v2 = graph.insertVertex(parent, null, 'First Line\nSecond Line', 20, 130, 140, 60, 'right');
    +					var v2 = graph.insertVertex(parent, null, 'First Line\nSecond Line', 180, 130, 140, 60, 'left');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +		
    +		function configureStylesheet(graph)
    +		{
    +			var style = new Object();
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_IMAGE;
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +			style[mxConstants.STYLE_IMAGE] = 'images/icons48/keys.png';
    +			style[mxConstants.STYLE_FONTCOLOR] = '#FFFFFF';
    +			graph.getStylesheet().putCellStyle('image', style);
    +			
    +			style = mxUtils.clone(style);
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_LABEL;
    +			style[mxConstants.STYLE_STROKECOLOR] = '#000000';
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_TOP;
    +			style[mxConstants.STYLE_IMAGE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_IMAGE_VERTICAL_ALIGN] = mxConstants.ALIGN_TOP;
    +			style[mxConstants.STYLE_IMAGE] = 'images/icons48/gear.png';
    +			style[mxConstants.STYLE_IMAGE_WIDTH] = '48';
    +			style[mxConstants.STYLE_IMAGE_HEIGHT] = '48';
    +			style[mxConstants.STYLE_SPACING_TOP] = '50';
    +			style[mxConstants.STYLE_SPACING] = '8';
    +			graph.getStylesheet().putCellStyle('bottom', style);
    +			
    +			style = mxUtils.clone(style);
    +			style[mxConstants.STYLE_IMAGE_VERTICAL_ALIGN] = mxConstants.ALIGN_BOTTOM;
    +			style[mxConstants.STYLE_IMAGE] = 'images/icons48/server.png';
    +			delete style[mxConstants.STYLE_SPACING_TOP];
    +			graph.getStylesheet().putCellStyle('top', style);
    +			
    +			style = mxUtils.clone(style);
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_LEFT;
    +			style[mxConstants.STYLE_IMAGE_ALIGN] = mxConstants.ALIGN_LEFT;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +			style[mxConstants.STYLE_IMAGE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +			style[mxConstants.STYLE_IMAGE] = 'images/icons48/earth.png';
    +			style[mxConstants.STYLE_SPACING_LEFT] = '55';
    +			style[mxConstants.STYLE_SPACING] = '4';
    +			graph.getStylesheet().putCellStyle('right', style);
    +			
    +			style = mxUtils.clone(style);
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_RIGHT;
    +			style[mxConstants.STYLE_IMAGE_ALIGN] = mxConstants.ALIGN_RIGHT;
    +			delete style[mxConstants.STYLE_SPACING_LEFT];
    +			style[mxConstants.STYLE_SPACING_RIGHT] = '55';
    +			graph.getStylesheet().putCellStyle('left', style);
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph -->
    +	<div id="graphContainer" style="position:relative;overflow:hidden;width:360px;height:200px;cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/images/add.png b/javascript/examples/images/add.png
    new file mode 100644
    index 000000000..bf5f8edb1
    Binary files /dev/null and b/javascript/examples/images/add.png differ
    diff --git a/javascript/examples/images/camera.png b/javascript/examples/images/camera.png
    new file mode 100644
    index 000000000..aecc94d66
    Binary files /dev/null and b/javascript/examples/images/camera.png differ
    diff --git a/javascript/examples/images/check.png b/javascript/examples/images/check.png
    new file mode 100644
    index 000000000..ce81bceb7
    Binary files /dev/null and b/javascript/examples/images/check.png differ
    diff --git a/javascript/examples/images/close.png b/javascript/examples/images/close.png
    new file mode 100644
    index 000000000..4de4396d4
    Binary files /dev/null and b/javascript/examples/images/close.png differ
    diff --git a/javascript/examples/images/connector.gif b/javascript/examples/images/connector.gif
    new file mode 100644
    index 000000000..326e061ea
    Binary files /dev/null and b/javascript/examples/images/connector.gif differ
    diff --git a/javascript/examples/images/copy.png b/javascript/examples/images/copy.png
    new file mode 100644
    index 000000000..a987d4397
    Binary files /dev/null and b/javascript/examples/images/copy.png differ
    diff --git a/javascript/examples/images/cut.png b/javascript/examples/images/cut.png
    new file mode 100644
    index 000000000..52bf94431
    Binary files /dev/null and b/javascript/examples/images/cut.png differ
    diff --git a/javascript/examples/images/delete2.png b/javascript/examples/images/delete2.png
    new file mode 100644
    index 000000000..be78c614b
    Binary files /dev/null and b/javascript/examples/images/delete2.png differ
    diff --git a/javascript/examples/images/dot.gif b/javascript/examples/images/dot.gif
    new file mode 100644
    index 000000000..08b994764
    Binary files /dev/null and b/javascript/examples/images/dot.gif differ
    diff --git a/javascript/examples/images/export1.png b/javascript/examples/images/export1.png
    new file mode 100644
    index 000000000..b8a01b873
    Binary files /dev/null and b/javascript/examples/images/export1.png differ
    diff --git a/javascript/examples/images/fit_to_size.png b/javascript/examples/images/fit_to_size.png
    new file mode 100644
    index 000000000..4de46b015
    Binary files /dev/null and b/javascript/examples/images/fit_to_size.png differ
    diff --git a/javascript/examples/images/gradient_background.jpg b/javascript/examples/images/gradient_background.jpg
    new file mode 100644
    index 000000000..7dbf35b3d
    Binary files /dev/null and b/javascript/examples/images/gradient_background.jpg differ
    diff --git a/javascript/examples/images/green-dot.gif b/javascript/examples/images/green-dot.gif
    new file mode 100644
    index 000000000..acaf7b298
    Binary files /dev/null and b/javascript/examples/images/green-dot.gif differ
    diff --git a/javascript/examples/images/group.png b/javascript/examples/images/group.png
    new file mode 100644
    index 000000000..585ad790d
    Binary files /dev/null and b/javascript/examples/images/group.png differ
    diff --git a/javascript/examples/images/icons48/column.png b/javascript/examples/images/icons48/column.png
    new file mode 100644
    index 000000000..5ae2c2439
    Binary files /dev/null and b/javascript/examples/images/icons48/column.png differ
    diff --git a/javascript/examples/images/icons48/earth.png b/javascript/examples/images/icons48/earth.png
    new file mode 100644
    index 000000000..4493880c2
    Binary files /dev/null and b/javascript/examples/images/icons48/earth.png differ
    diff --git a/javascript/examples/images/icons48/gear.png b/javascript/examples/images/icons48/gear.png
    new file mode 100644
    index 000000000..647d897fd
    Binary files /dev/null and b/javascript/examples/images/icons48/gear.png differ
    diff --git a/javascript/examples/images/icons48/keys.png b/javascript/examples/images/icons48/keys.png
    new file mode 100644
    index 000000000..41828e429
    Binary files /dev/null and b/javascript/examples/images/icons48/keys.png differ
    diff --git a/javascript/examples/images/icons48/mail_new.png b/javascript/examples/images/icons48/mail_new.png
    new file mode 100644
    index 000000000..16c666280
    Binary files /dev/null and b/javascript/examples/images/icons48/mail_new.png differ
    diff --git a/javascript/examples/images/icons48/server.png b/javascript/examples/images/icons48/server.png
    new file mode 100644
    index 000000000..9621c6e46
    Binary files /dev/null and b/javascript/examples/images/icons48/server.png differ
    diff --git a/javascript/examples/images/icons48/table.png b/javascript/examples/images/icons48/table.png
    new file mode 100644
    index 000000000..d4df646fe
    Binary files /dev/null and b/javascript/examples/images/icons48/table.png differ
    diff --git a/javascript/examples/images/key.png b/javascript/examples/images/key.png
    new file mode 100644
    index 000000000..e66758a83
    Binary files /dev/null and b/javascript/examples/images/key.png differ
    diff --git a/javascript/examples/images/loading.gif b/javascript/examples/images/loading.gif
    new file mode 100644
    index 000000000..118f4b0df
    Binary files /dev/null and b/javascript/examples/images/loading.gif differ
    diff --git a/javascript/examples/images/navigate_minus.png b/javascript/examples/images/navigate_minus.png
    new file mode 100644
    index 000000000..71edaf999
    Binary files /dev/null and b/javascript/examples/images/navigate_minus.png differ
    diff --git a/javascript/examples/images/navigate_plus.png b/javascript/examples/images/navigate_plus.png
    new file mode 100644
    index 000000000..b5b7e8706
    Binary files /dev/null and b/javascript/examples/images/navigate_plus.png differ
    diff --git a/javascript/examples/images/paste.png b/javascript/examples/images/paste.png
    new file mode 100644
    index 000000000..fd628d9db
    Binary files /dev/null and b/javascript/examples/images/paste.png differ
    diff --git a/javascript/examples/images/plus.png b/javascript/examples/images/plus.png
    new file mode 100644
    index 000000000..24a84bb49
    Binary files /dev/null and b/javascript/examples/images/plus.png differ
    diff --git a/javascript/examples/images/press32.png b/javascript/examples/images/press32.png
    new file mode 100644
    index 000000000..f00e3f707
    Binary files /dev/null and b/javascript/examples/images/press32.png differ
    diff --git a/javascript/examples/images/print32.png b/javascript/examples/images/print32.png
    new file mode 100644
    index 000000000..0cca86cc1
    Binary files /dev/null and b/javascript/examples/images/print32.png differ
    diff --git a/javascript/examples/images/printer.png b/javascript/examples/images/printer.png
    new file mode 100644
    index 000000000..6004816bc
    Binary files /dev/null and b/javascript/examples/images/printer.png differ
    diff --git a/javascript/examples/images/redo.png b/javascript/examples/images/redo.png
    new file mode 100644
    index 000000000..3eae59c51
    Binary files /dev/null and b/javascript/examples/images/redo.png differ
    diff --git a/javascript/examples/images/sidebar_bg.gif b/javascript/examples/images/sidebar_bg.gif
    new file mode 100644
    index 000000000..67e824486
    Binary files /dev/null and b/javascript/examples/images/sidebar_bg.gif differ
    diff --git a/javascript/examples/images/spacer.gif b/javascript/examples/images/spacer.gif
    new file mode 100644
    index 000000000..35d42e808
    Binary files /dev/null and b/javascript/examples/images/spacer.gif differ
    diff --git a/javascript/examples/images/toolbar_bg.gif b/javascript/examples/images/toolbar_bg.gif
    new file mode 100644
    index 000000000..87b937402
    Binary files /dev/null and b/javascript/examples/images/toolbar_bg.gif differ
    diff --git a/javascript/examples/images/undo.png b/javascript/examples/images/undo.png
    new file mode 100644
    index 000000000..4ba0ffb16
    Binary files /dev/null and b/javascript/examples/images/undo.png differ
    diff --git a/javascript/examples/images/view_1_1.png b/javascript/examples/images/view_1_1.png
    new file mode 100644
    index 000000000..88657a1ed
    Binary files /dev/null and b/javascript/examples/images/view_1_1.png differ
    diff --git a/javascript/examples/images/view_1_132.png b/javascript/examples/images/view_1_132.png
    new file mode 100644
    index 000000000..e9a1b7299
    Binary files /dev/null and b/javascript/examples/images/view_1_132.png differ
    diff --git a/javascript/examples/images/view_next.png b/javascript/examples/images/view_next.png
    new file mode 100644
    index 000000000..b4094f04e
    Binary files /dev/null and b/javascript/examples/images/view_next.png differ
    diff --git a/javascript/examples/images/view_previous.png b/javascript/examples/images/view_previous.png
    new file mode 100644
    index 000000000..b385b44c3
    Binary files /dev/null and b/javascript/examples/images/view_previous.png differ
    diff --git a/javascript/examples/images/wires-grid.gif b/javascript/examples/images/wires-grid.gif
    new file mode 100644
    index 000000000..ad888a2a6
    Binary files /dev/null and b/javascript/examples/images/wires-grid.gif differ
    diff --git a/javascript/examples/images/zoom_in.png b/javascript/examples/images/zoom_in.png
    new file mode 100644
    index 000000000..ad6abb93a
    Binary files /dev/null and b/javascript/examples/images/zoom_in.png differ
    diff --git a/javascript/examples/images/zoom_in32.png b/javascript/examples/images/zoom_in32.png
    new file mode 100644
    index 000000000..438ff0ff0
    Binary files /dev/null and b/javascript/examples/images/zoom_in32.png differ
    diff --git a/javascript/examples/images/zoom_out.png b/javascript/examples/images/zoom_out.png
    new file mode 100644
    index 000000000..0566f26bf
    Binary files /dev/null and b/javascript/examples/images/zoom_out.png differ
    diff --git a/javascript/examples/images/zoom_out32.png b/javascript/examples/images/zoom_out32.png
    new file mode 100644
    index 000000000..8edb7655b
    Binary files /dev/null and b/javascript/examples/images/zoom_out32.png differ
    diff --git a/javascript/examples/indicators.html b/javascript/examples/indicators.html
    new file mode 100644
    index 000000000..770cb4ea2
    --- /dev/null
    +++ b/javascript/examples/indicators.html
    @@ -0,0 +1,98 @@
    +<!--
    +  $Id: indicators.html,v 1.11 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Indicators example for mxGraph. This example demonstrates the use of
    +  indicators, which are small subshapes inside a parent shape, typically
    +  an mxLabel.
    +-->
    +<html>
    +<head>
    +	<title>Hello, World! example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setConnectable(true);
    +				new mxKeyHandler(graph);
    +				
    +				// Enables moving of vertex labels
    +				graph.vertexLabelsMovable = true;
    +				
    +				// Creates a style with an indicator
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				
    +				style[mxConstants.STYLE_SHAPE] = 'label';
    +				style[mxConstants.STYLE_VERTICAL_ALIGN] = 'bottom';
    +				style[mxConstants.STYLE_INDICATOR_SHAPE] = 'ellipse';
    +				style[mxConstants.STYLE_INDICATOR_WIDTH] = 34;
    +				style[mxConstants.STYLE_INDICATOR_HEIGHT] = 34;
    +				style[mxConstants.STYLE_IMAGE_VERTICAL_ALIGN] = 'top'; // indicator v-alignment
    +				style[mxConstants.STYLE_IMAGE_ALIGN] = 'center';
    +				style[mxConstants.STYLE_INDICATOR_COLOR] = 'green';
    +				delete style[mxConstants.STYLE_STROKECOLOR]; // transparent
    +				delete style[mxConstants.STYLE_FILLCOLOR]; // transparent
    +				
    +				// Creates a style with an indicator
    +				var style = graph.getStylesheet().getDefaultEdgeStyle();
    +				
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +				style[mxConstants.STYLE_ELBOW] = mxConstants.ELBOW_VERTICAL;
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					graph.insertVertex(parent, null, 'Bottom Label', 80, 80, 80, 60);
    +					graph.insertVertex(parent, null, 'Top Label', 200, 80, 60, 60,
    +						'indicatorShape=actor;indicatorWidth=28;indicatorColor=blue;imageVerticalAlign=bottom;verticalAlign=top');
    +					graph.insertVertex(parent, null, 'Right Label', 300, 80, 120, 60,
    +						'indicatorShape=cloud;indicatorWidth=40;indicatorColor=#00FFFF;imageVerticalAlign=center;verticalAlign=middle;imageAlign=left;align=left;spacingLeft=44');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="position:absolute;top:0px;left:0px;overflow:hidden;width:100%;height:100%;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/labelposition.html b/javascript/examples/labelposition.html
    new file mode 100644
    index 000000000..bcbbbe9ac
    --- /dev/null
    +++ b/javascript/examples/labelposition.html
    @@ -0,0 +1,78 @@
    +<!--
    +  $Id: labelposition.html,v 1.5 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Label Position example for mxGraph. This example demonstrates the use of the
    +  label position styles to set the position of vertex labels.
    +-->
    +<html>
    +<head>
    +	<title>Label Position example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here.
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +
    +				// Defines the common part of all cell styles as a string-prefix
    +				var prefix = 'shape=image;image=images/icons48/keys.png;';
    +								
    +				// Adds cells to the model in a single step and set the vertex
    +				// label positions using the label position styles. Vertical
    +				// and horizontal label position styles can be combined.
    +				// Note: Alternatively, vertex labels can be set be overriding
    +				// mxCellRenderer.getLabelBounds.
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					graph.insertVertex(parent, null, 'Bottom', 60, 60, 60, 60,
    +						prefix+'verticalLabelPosition=bottom;verticalAlign=top');
    +					graph.insertVertex(parent, null, 'Top', 140, 60, 60, 60,
    +							prefix+'verticalLabelPosition=top;verticalAlign=bottom');
    +					graph.insertVertex(parent, null, 'Left', 60, 160, 60, 60,
    +							prefix+'labelPosition=left;align=right');
    +					graph.insertVertex(parent, null, 'Right', 140, 160, 60, 60,
    +							prefix+'labelPosition=right;align=left');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:100%;height:100%;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/labels.html b/javascript/examples/labels.html
    new file mode 100644
    index 000000000..34b388497
    --- /dev/null
    +++ b/javascript/examples/labels.html
    @@ -0,0 +1,139 @@
    +<!--
    +  $Id: labels.html,v 1.23 2012-01-08 10:28:37 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Labels example for mxGraph. This example demonstrates the use of wrapping
    +  and clipping for HTML labels of vertices, truncating labels to fit the
    +  size of a vertex, and manually placing vertex labels and relative children
    +  that act as "sublabels".
    +-->
    +<html>
    +<head>
    +	<title>Hello, World! example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Fixes ignored clipping if foreignObject used in Webkit
    +				mxClient.NO_FO = mxClient.NO_FO || mxClient.IS_SF || mxClient.IS_GC;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setTooltips(true);
    +				graph.htmlLabels = true;
    +				graph.vertexLabelsMovable = true;
    +				new mxRubberband(graph);
    +				new mxKeyHandler(graph);
    +				
    +				graph.isCellLocked = function(cell)
    +				{
    +					return this.isCellsLocked();
    +				};
    +				
    +				graph.isCellResizable = function(cell)
    +				{
    +					var geo = this.model.getGeometry(cell);
    +					
    +					return geo == null || !geo.relative;
    +				};
    +				
    +				// Truncates the label to the size of the vertex
    +				graph.getLabel = function(cell)
    +				{
    +					var label = (this.labelsVisible) ? this.convertValueToString(cell) : '';
    +					var geometry = this.model.getGeometry(cell);
    +					
    +					if (!this.model.isCollapsed(cell) && geometry != null && (geometry.offset == null ||
    +						(geometry.offset.x == 0 && geometry.offset.y == 0)) && this.model.isVertex(cell) &&
    +						geometry.width >= 2)
    +					{
    +						var style = this.getCellStyle(cell);
    +						var fontSize = style[mxConstants.STYLE_FONTSIZE] || mxConstants.DEFAULT_FONTSIZE;
    +						var max = geometry.width / (fontSize * 0.625);
    +						
    +						if (max < label.length)
    +						{
    +							return label.substring(0, max) + '...';
    +						}
    +					}
    +					
    +					return label;
    +				};
    +				
    +				// Enables wrapping for vertex labels
    +				graph.isWrapping = function(cell)
    +				{
    +					return this.model.isCollapsed(cell);
    +				};
    +				
    +				// Enables clipping of vertex labels if no offset is defined
    +				graph.isLabelClipped = function(cell)
    +				{
    +					var geometry = this.model.getGeometry(cell);
    +					
    +					return geometry != null && !geometry.relative && (geometry.offset == null ||
    +						(geometry.offset.x == 0 && geometry.offset.y == 0));
    +				};
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'vertexLabelsMovable', 20, 20, 80, 30);
    +
    +					// Places sublabels inside the vertex
    +					var label11 = graph.insertVertex(v1, null, 'Label1', 0.5, 1, 0, 0, null, true);
    +					var label12 = graph.insertVertex(v1, null, 'Label2', 0.5, 0, 0, 0, null, true);
    +					
    +					var v2 = graph.insertVertex(parent, null, 'Wrapping and clipping is enabled only if the cell is collapsed, otherwise the label is truncated if there is no manual offset.', 200, 150, 80, 30);
    +					v2.geometry.alternateBounds = new mxRectangle(0, 0, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, 'edgeLabelsMovable', v1, v2);
    +
    +					// Places sublabels inside the vertex
    +					var label21 = graph.insertVertex(v2, null, 'Label1', 0.5, 1, 0, 0, null, true);
    +					var label22 = graph.insertVertex(v2, null, 'Label2', 0.5, 0, 0, 0, null, true);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="position:absolute;top:0px;left:0px;overflow:hidden;width:100%;height:100%;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/layers.html b/javascript/examples/layers.html
    new file mode 100644
    index 000000000..0bfcf2eac
    --- /dev/null
    +++ b/javascript/examples/layers.html
    @@ -0,0 +1,128 @@
    +<!--
    +  $Id: layers.html,v 1.11 2011-05-09 05:59:59 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Layers example for mxGraph. This example demonstrates using
    +  multiple layers to contain cells.
    +-->
    +<html>
    +<head>
    +	<title>Layers example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of all shapes in SVG
    +				mxShape.prototype.crisp = true;
    +				
    +				// Creates the graph inside the given container using a model
    +				// with a custom root and two layers. Layers can also be added
    +				// dynamically using var layer = model.add(root, new mxCell()).
    +				var root = new mxCell();
    +				var layer0 = root.insert(new mxCell());
    +				var layer1 = root.insert(new mxCell()); 
    +				var model = new mxGraphModel(root);
    +
    +				var graph = new mxGraph(container, model);
    +				
    +				// Disables basic selection and cell handling
    +				graph.setEnabled(false);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				model.beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(layer1, null, 'Hello,', 20, 20, 80, 30, 'fillColor=#C0C0C0');
    +					var v2 = graph.insertVertex(layer1, null, 'Hello,', 200, 20, 80, 30, 'fillColor=#C0C0C0');
    +					var v3 = graph.insertVertex(layer0, null, 'World!', 110, 150, 80, 30);
    +					var e1 = graph.insertEdge(layer1, null, '', v1, v3, 'strokeColor=#0C0C0C');
    +					e1.geometry.points = [new mxPoint(60, 165)];
    +					var e2 = graph.insertEdge(layer0, null, '', v2, v3);
    +					e2.geometry.points = [new mxPoint(240, 165)];
    +					var e3 = graph.insertEdge(layer0, null, '', v1, v2,
    +							'edgeStyle=topToBottomEdgeStyle');
    +					e3.geometry.points = [new mxPoint(150, 30)];
    +					var e4 = graph.insertEdge(layer1, null, '', v2, v1,
    +							'strokeColor=#0C0C0C;edgeStyle=topToBottomEdgeStyle');
    +					e4.geometry.points = [new mxPoint(150, 40)];
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					model.endUpdate();
    +				}
    +
    +				document.body.appendChild(mxUtils.button('Layer 0', function()
    +				{
    +					model.beginUpdate();
    +					try
    +					{
    +						var visible = model.isVisible(layer0);
    +						model.setVisible(layer0, !visible);
    +	
    +						// Forces a complete refresh to hide the edges in other
    +						// layers which are connected to children of this layer
    +						graph.view.invalidate();
    +					}
    +					finally
    +					{
    +						model.endUpdate();
    +					}
    +				}));
    +				
    +				document.body.appendChild(mxUtils.button('Layer 1', function()
    +				{
    +					model.beginUpdate();
    +					try
    +					{
    +						var visible = model.isVisible(layer1);
    +						model.setVisible(layer1, !visible);
    +						
    +						// Forces a complete refresh to hide the edges in other
    +						// layers which are connected to children of this layer
    +						graph.view.invalidate();
    +					}
    +					finally
    +					{
    +						model.endUpdate();
    +					}
    +				}));
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/markers.html b/javascript/examples/markers.html
    new file mode 100644
    index 000000000..552f3a99e
    --- /dev/null
    +++ b/javascript/examples/markers.html
    @@ -0,0 +1,204 @@
    +<!--
    +  $Id: markers.html,v 1.9 2012-04-27 16:52:31 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Markers example for mxGraph. This example demonstrates creating
    +  custom markers and customizing the built-in markers.
    +-->
    +<html>
    +<head>
    +	<title>Markers example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering in SVG
    +				mxShape.prototype.crisp = true;
    +				mxEllipse.prototype.crisp = false;
    +				mxDoubleEllipse.prototype.crisp = false;
    +				mxArrow.prototype.crisp = false;
    +				mxConnector.prototype.allowCrispMarkers = true;
    +				
    +				// Enables guides
    +				mxGraphHandler.prototype.guidesEnabled = true;
    +				mxEdgeHandler.prototype.snapToTerminals = true;
    +				
    +				// Defines custom marker
    +				mxMarker.markers['dash'] = function(node, type, pe, nx, ny, strokewidth, size, scale, isVml)
    +				{
    +					nx = nx * (size + strokewidth);
    +					ny = ny * (size + strokewidth);
    +					
    +					if (isVml)
    +					{
    +						node.setAttribute('path', 'm' + Math.floor(pe.x - nx / 2- ny / 2) + ' ' + Math.floor(pe.y - ny / 2 + nx / 2) +
    +							' l ' + Math.floor(pe.x + ny / 2 - 3 * nx / 2) + ' ' + Math.floor(pe.y - 3 * ny / 2 - nx / 2) +
    +							' e');
    +					}
    +					else
    +					{
    +						node.setAttribute('d', 'M ' + (pe.x - nx / 2 - ny / 2) + ' ' + (pe.y - ny / 2 + nx / 2) +
    +								' L ' + (pe.x + ny / 2 - 3 * nx / 2) + ' ' + (pe.y - 3 * ny / 2 - nx / 2) +
    +								' z');
    +					}
    +					
    +					// Returns the offset for the edge
    +					return new mxPoint(0, 0);
    +				};
    +
    +				// Tape Shape, supports size style
    +				function MessageShape() { };
    +				MessageShape.prototype = new mxCylinder();
    +				MessageShape.prototype.constructor = MessageShape;
    +				MessageShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +				{
    +					if (isForeground)
    +					{
    +						path.moveTo(0, 0);
    +						path.lineTo(w / 2, h / 2);
    +						path.lineTo(w, 0);
    +						path.end();
    +					}
    +					else
    +					{
    +						path.moveTo(0, 0);
    +						path.lineTo(w, 0);
    +						path.lineTo(w, h);
    +						path.lineTo(0, h);
    +						path.close();
    +					}
    +				};
    +
    +				mxCellRenderer.prototype.defaultShapes['message'] = MessageShape;
    +				
    +				// Custom edge shape
    +				function LinkShape() { };
    +				LinkShape.prototype = new mxArrow();
    +				LinkShape.prototype.constructor = LinkShape;
    +				LinkShape.prototype.enableFill = false;
    +				LinkShape.prototype.addPipe = true;
    +				
    +				LinkShape.prototype.redrawPath = function(path, x, y, w, h)
    +				{
    +					// All points are offset
    +					path.translate.x -= x;
    +					path.translate.y -= y;
    +
    +					// Geometry of arrow
    +					var width = 10 * this.scale;
    +
    +					// Base vector (between end points)
    +					var p0 = this.points[0];
    +					var pe = this.points[this.points.length - 1];
    +					
    +					var dx = pe.x - p0.x;
    +					var dy = pe.y - p0.y;
    +					var dist = Math.sqrt(dx * dx + dy * dy);
    +					var length = dist;
    +					
    +					// Computes the norm and the inverse norm
    +					var nx = dx / dist;
    +					var ny = dy / dist;
    +					var basex = length * nx;
    +					var basey = length * ny;
    +					var floorx = width * ny/3;
    +					var floory = -width * nx/3;
    +					
    +					// Computes points
    +					var p0x = p0.x - floorx / 2;
    +					var p0y = p0.y - floory / 2;
    +					var p1x = p0x + floorx;
    +					var p1y = p0y + floory;
    +					var p2x = p1x + basex;
    +					var p2y = p1y + basey;
    +					var p3x = p2x + floorx;
    +					var p3y = p2y + floory;
    +					// p4 not necessary
    +					var p5x = p3x - 3 * floorx;
    +					var p5y = p3y - 3 * floory;
    +					
    +					//path.moveTo(p0x, p0y);
    +					path.moveTo(p1x, p1y);
    +					path.lineTo(p2x, p2y);
    +					path.moveTo(p5x + floorx, p5y + floory);
    +					path.lineTo(p0x, p0y);
    +					path.end();
    +				};
    +
    +				mxCellRenderer.prototype.defaultShapes['link'] = LinkShape;
    +
    +				// Creates the graph
    +				var graph = new mxGraph(container);
    +				
    +				// Sets default styles
    +				graph.getStylesheet().getDefaultVertexStyle()['fillColor'] = '#FFFFFF';
    +				graph.getStylesheet().getDefaultVertexStyle()['strokeColor'] = '#000000';
    +				graph.getStylesheet().getDefaultVertexStyle()['fontColor'] = '#000000';
    +				graph.getStylesheet().getDefaultVertexStyle()['fontStyle'] = '1';
    +				graph.getStylesheet().getDefaultEdgeStyle()['strokeColor'] = '#000000';
    +				graph.getStylesheet().getDefaultEdgeStyle()['fontColor'] = '#000000';
    +				graph.getStylesheet().getDefaultEdgeStyle()['fontStyle'] = '0';
    +				graph.getStylesheet().getDefaultEdgeStyle()['fontStyle'] = '0';
    +				graph.getStylesheet().getDefaultEdgeStyle()['startSize'] = '8';
    +				graph.getStylesheet().getDefaultEdgeStyle()['endSize'] = '8';
    +
    +				// Populates the graph
    +				var parent = graph.getDefaultParent();
    +								
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'v1', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'v2', 440, 20, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2, 'dashed=1;'+
    +						'startArrow=oval;endArrow=block;sourcePerimeterSpacing=4;startFill=0;endFill=0;');
    +					var e11 = graph.insertVertex(e1, null, 'Label', 0, 0, 20, 14,
    +						'shape=message;labelBackgroundColor=#ffffff;labelPosition=left;align=right;fontStyle=0;');
    +					e11.geometry.offset = new mxPoint(-10, -7);
    +					e11.geometry.relative = true;
    +					e11.connectable = false;
    +					
    +					var v3 = graph.insertVertex(parent, null, 'v3', 20, 120, 80, 30);
    +					var v4 = graph.insertVertex(parent, null, 'v4', 440, 120, 80, 30);
    +					var e2 = graph.insertEdge(parent, null, 'Label', v3, v4,
    +						'startArrow=dash;startSize=12;endArrow=block;labelBackgroundColor=#FFFFFF;');
    +
    +					var v5 = graph.insertVertex(parent, null, 'v5', 40, 220, 40, 40, 'shape=ellipse;perimeter=ellipsePerimeter;');
    +					var v6 = graph.insertVertex(parent, null, 'v6', 460, 220, 40, 40, 'shape=doubleEllipse;perimeter=ellipsePerimeter;');
    +					var e3 = graph.insertEdge(parent, null, 'Link', v5, v6,
    +						'shape=link;labelBackgroundColor=#FFFFFF;');
    +				}
    +				finally
    +				{
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +<body onload="main(document.getElementById('graphContainer'))">
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:641px;height:381px;border:1px solid gray;cursor:default;">
    +	</div>
    +</body>
    +</html>
    \ No newline at end of file
    diff --git a/javascript/examples/menustyle.html b/javascript/examples/menustyle.html
    new file mode 100644
    index 000000000..9a97e4b09
    --- /dev/null
    +++ b/javascript/examples/menustyle.html
    @@ -0,0 +1,146 @@
    +<!--
    +  $Id: menustyle.html,v 1.1 2012-01-16 08:46:31 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Menustyle example for mxGraph. This example demonstrates using
    +  CSS to style the mxPopupMenu.
    +-->
    +<html>
    +<head>
    +	<title>Menustyle example for mxGraph</title>
    +
    +	<style type="text/css">
    +		body div.mxPopupMenu {
    +			-webkit-box-shadow: 3px 3px 6px #C0C0C0;
    +			-moz-box-shadow: 3px 3px 6px #C0C0C0;
    +			box-shadow: 3px 3px 6px #C0C0C0;
    +			background: white;
    +			position: absolute;
    +			border: 3px solid #e7e7e7;
    +			padding: 3px;
    +		}
    +		body table.mxPopupMenu {
    +			border-collapse: collapse;
    +			margin: 0px;
    +		}
    +		body tr.mxPopupMenuItem {
    +			color: black;
    +			cursor: default;
    +		}
    +		body td.mxPopupMenuItem {
    +			padding: 6px 60px 6px 30px;
    +			font-family: Arial;
    +			font-size: 10pt;
    +		}
    +		body td.mxPopupMenuIcon {
    +			background-color: white;
    +			padding: 0px;
    +		}
    +		body tr.mxPopupMenuItemHover {
    +			background-color: #eeeeee;
    +			color: black;
    +		}
    +		table.mxPopupMenu hr {
    +			border-top: solid 1px #cccccc;
    +		}
    +		table.mxPopupMenu tr {
    +			font-size: 4pt;
    +		}
    +	</style>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Disables built-in context menu
    +				mxEvent.disableContextMenu(document.body);
    +				
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +				
    +				// Configures automatic expand on mouseover
    +				graph.panningHandler.autoExpand = true;
    +
    +			    // Installs context menu
    +				graph.panningHandler.factoryMethod = function(menu, cell, evt)
    +				{
    +					menu.addItem('Item 1', null, function()
    +				    {
    +						alert('Item 1');
    +				    });
    +					
    +					menu.addItem('Item 2', null, function()
    +				    {
    +						alert('Item 2');
    +				    });
    +
    +					menu.addSeparator();
    +					
    +					var submenu1 = menu.addItem('Submenu 1', null, null);
    +					
    +					menu.addItem('Subitem 1', null, function()
    +				    {
    +						alert('Subitem 1');
    +				    }, submenu1);
    +					menu.addItem('Subitem 1', null, function()
    +				    {
    +						alert('Subitem 2');
    +				    }, submenu1);
    +				};
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/merge.html b/javascript/examples/merge.html
    new file mode 100644
    index 000000000..33052657b
    --- /dev/null
    +++ b/javascript/examples/merge.html
    @@ -0,0 +1,127 @@
    +<!--
    +  $Id: merge.html,v 1.8 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Merge example for mxGraph. This example demonstrates using
    +  the mergeChildren function to merge two graphs.
    +-->
    +<html>
    +<head>
    +	<title>Merge example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// No size handles, please...
    +				graph.setCellsResizable(false);
    +
    +				// Makes all cells round with a white, bold label
    +				var style = graph.stylesheet.getDefaultVertexStyle();
    +
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_ELLIPSE;
    +				style[mxConstants.STYLE_PERIMETER] = mxPerimeter.EllipsePerimeter;
    +				style[mxConstants.STYLE_FONTCOLOR] = '#FFFFFF';
    +				style[mxConstants.STYLE_FONTSTYLE] = mxConstants.FONT_BOLD;
    +
    +				// Makes all edge labels gray with a white background
    +				style = graph.stylesheet.getDefaultEdgeStyle();
    +
    +				style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR] = '#FFFFFF';
    +				style[mxConstants.STYLE_FONTCOLOR] = 'gray';
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the target model in a single step
    +				// using custom ids for the vertices and edges
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var a = graph.insertVertex(parent, 'a', 'A', 20, 20, 20, 20, 'fillColor=blue');
    +					var b = graph.insertVertex(parent, 'b', 'B', 20, 200, 20, 20, 'fillColor=blue');
    +					var c = graph.insertVertex(parent, 'c', 'C', 200, 20, 20, 20, 'fillColor=red');
    +					var d = graph.insertVertex(parent, 'd', 'D', 200, 200, 20, 20, 'fillColor=red');
    +					var ac = graph.insertEdge(parent, 'ac', 'ac', a, c, 'strokeColor=blue');
    +					var ad = graph.insertEdge(parent, 'ad', 'ad', a, d, 'strokeColor=blue');
    +					var bd = graph.insertEdge(parent, 'bd', 'bd', b, d, 'strokeColor=blue');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +				// Creates the second graph model (without a container)
    +				var graph2 = new mxGraph();
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent2 = graph2.getDefaultParent();
    +								
    +				// Adds cells to the target model in a single step
    +				// using custom ids for the vertices
    +				graph2.getModel().beginUpdate();
    +				try
    +				{
    +					var c = graph2.insertVertex(parent2, 'c', 'C', 200, 20, 20, 20, 'fillColor=green');
    +					var d = graph2.insertVertex(parent2, 'd', 'D', 200, 200, 20, 20, 'fillColor=green');
    +					var e = graph2.insertVertex(parent2, 'e', 'E', 400, 20, 20, 20, 'fillColor=green');
    +					var f = graph2.insertVertex(parent2, 'f', 'F', 400, 200, 20, 20, 'fillColor=green');
    +					var ce = graph2.insertEdge(parent2, 'ce', 'ce', c, e, 'strokeColor=green');
    +					var ed = graph2.insertEdge(parent2, 'ed', 'ed', e, d, 'strokeColor=green');
    +					var fd = graph2.insertEdge(parent2, 'bd', 'fd', f, d, 'strokeColor=green');
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph2.getModel().endUpdate();
    +				}
    +
    +				// Merges the model from the second graph into the model of
    +				// the first graph. Note: If you add a false to the parameter
    +				// list then _not_ all edges will be cloned, that is, the
    +				// edges are assumed to have an identity, and hence the edge
    +				// "bd" will be changed to point from f to d, as specified in
    +				// the edge for the same id in the second graph.
    +				graph.getModel().mergeChildren(parent2, parent/*, false*/);
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:100%;height:100%;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/monitor.html b/javascript/examples/monitor.html
    new file mode 100644
    index 000000000..90d688a9d
    --- /dev/null
    +++ b/javascript/examples/monitor.html
    @@ -0,0 +1,296 @@
    +<!--
    +  $Id: monitor.html,v 1.16 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Monitor example for mxGraph. This eample demonstrates using a
    +  graph to display the current state of a workflow.
    +-->
    +<html>
    +<head>
    +	<title>mxGraph Workflow Monitor</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = createGraph(container);
    +
    +				// Creates a process display using the activity names as IDs to refer to the elements
    +				var xml = '<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/>'+
    +					'<mxCell id="2" value="Claim Handling Process" style="swimlane" vertex="1" parent="1"><mxGeometry x="1" width="840" height="400" as="geometry"/></mxCell>'+
    +					'<mxCell id="3" value="Claim Manager" style="swimlane" vertex="1" parent="2"><mxGeometry x="24" width="816" height="200" as="geometry"/></mxCell>'+
    +					'<mxCell id="5" value="" style="start" vertex="1" parent="3"><mxGeometry x="40" y="85" width="30" height="30" as="geometry"/></mxCell>'+
    +					'<mxCell id="AuthorizeClaim" value="Authorize&#xa;Claim" vertex="1" parent="3"><mxGeometry x="90" y="80" width="100" height="40" as="geometry"/></mxCell>'+
    +					'<mxCell id="6" value="X" style="step" vertex="1" parent="3"><mxGeometry x="210" y="85" width="30" height="30" as="geometry"/></mxCell>'+
    +					'<mxCell id="ApproveClaim" value="Approve&#xa;Claim" vertex="1" parent="3"><mxGeometry x="260" y="80" width="100" height="40" as="geometry"/></mxCell>'+
    +					'<mxCell id="7" value="X" style="step" vertex="1" parent="3"><mxGeometry x="380" y="85" width="30" height="30" as="geometry"/></mxCell>'+
    +					'<mxCell id="8" value="" edge="1" parent="3" source="5" target="AuthorizeClaim"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="9" value="" edge="1" parent="3" source="AuthorizeClaim" target="6"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="10" value="" edge="1" parent="3" source="6" target="ApproveClaim"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="11" value="" edge="1" parent="3" source="ApproveClaim" target="7"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="12" value="" edge="1" parent="3" source="7" target="AuthorizeClaim"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="140" y="40"/></Array></mxGeometry></mxCell>'+
    +					'<mxCell id="ReviewClaim" value="Review&#xa;Claim" vertex="1" parent="3"><mxGeometry x="480" y="80" width="100" height="40" as="geometry"/></mxCell>'+
    +					'<mxCell id="22" value="X" style="step" vertex="1" parent="3"><mxGeometry x="600" y="85" width="30" height="30" as="geometry"/></mxCell>'+
    +					'<mxCell id="23" value="" edge="1" parent="3" source="ReviewClaim" target="22"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="ApproveReviewedClaim" value="Approve Rev.&#xa;Claim" vertex="1" parent="3"><mxGeometry x="650" y="80" width="100" height="40" as="geometry"/></mxCell>'+
    +					'<mxCell id="26" value="" edge="1" parent="3" source="22" target="ApproveReviewedClaim"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="27" value="X" style="step" vertex="1" parent="3"><mxGeometry x="770" y="85" width="30" height="30" as="geometry"/></mxCell>'+
    +					'<mxCell id="28" value="" edge="1" target="27" parent="3" source="ApproveReviewedClaim"><mxGeometry relative="1" as="geometry"><mxPoint x="740" y="100" as="sourcePoint"/><mxPoint x="760" y="100" as="targetPoint"/></mxGeometry></mxCell>'+
    +					'<mxCell id="32" value="" edge="1" parent="3" source="27" target="ReviewClaim"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="665" y="160"/></Array></mxGeometry></mxCell>'+
    +					'<mxCell id="4" value="Accountant" style="swimlane" vertex="1" parent="2"><mxGeometry x="24" y="200" width="816" height="200" as="geometry"/></mxCell>'+
    +					'<mxCell id="EnterAccountingData" value="Enter&#xa;Data" vertex="1" parent="4"><mxGeometry x="430" y="80" width="100" height="40" as="geometry"/></mxCell>'+
    +					'<mxCell id="14" value="X" style="step" vertex="1" parent="4"><mxGeometry x="550" y="85" width="30" height="30" as="geometry"/></mxCell>'+
    +					'<mxCell id="15" value="" edge="1" parent="4" source="EnterAccountingData" target="14"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="CheckAccountingData" value="Check&#xa;Data" vertex="1" parent="4"><mxGeometry x="600" y="80" width="100" height="40" as="geometry"/></mxCell>'+
    +					'<mxCell id="16" value="" edge="1" parent="4" source="14" target="CheckAccountingData"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="17" value="X" style="step" vertex="1" parent="4"><mxGeometry x="720" y="85" width="30" height="30" as="geometry"/></mxCell>'+
    +					'<mxCell id="18" value="" edge="1" parent="4" source="CheckAccountingData" target="17"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="19" value="" style="end" vertex="1" parent="4"><mxGeometry x="770" y="85" width="30" height="30" as="geometry"/></mxCell>'+
    +					'<mxCell id="20" value="" edge="1" parent="4" source="17" target="19"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="31" value="" edge="1" parent="4" source="17" target="EnterAccountingData"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="625" y="160"/></Array></mxGeometry></mxCell>'+
    +					'<mxCell id="13" value="" edge="1" parent="2" source="7" target="EnterAccountingData"><mxGeometry relative="1" as="geometry"/></mxCell>'+
    +					'<mxCell id="24" value="" edge="1" parent="2" source="14" target="ReviewClaim" style="edgeStyle=none"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="589" y="180"/><mxPoint x="480" y="180"/><mxPoint x="480" y="100"/></Array></mxGeometry></mxCell>'+
    +					'<mxCell id="29" value="" edge="1" parent="2" source="22" target="EnterAccountingData"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="469" y="40"/></Array></mxGeometry></mxCell>'+
    +					'<mxCell id="30" value="" edge="1" parent="2" source="27" target="EnterAccountingData"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="469" y="40"/></Array></mxGeometry></mxCell>'+
    +					'<mxCell id="33" value="" edge="1" parent="2" source="6" target="EnterAccountingData"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="249" y="200"/></Array></mxGeometry></mxCell>'+
    +					'</root></mxGraphModel>';
    +				var doc = mxUtils.parseXml(xml);
    +				var codec = new mxCodec(doc);
    +				codec.decode(doc.documentElement, graph.getModel());
    +			}
    +			
    +			// Creates a button to invoke the refresh function
    +			document.body.appendChild(mxUtils.button('Update', function(evt)
    +			{
    +				// XML is normally fetched from URL at server using mxUtils.get - this is a client-side
    +				// string with randomized states to demonstrate the idea of the workflow monitor
    +				var xml = '<process><update id="ApproveClaim" state="'+getState()+'"/><update id="AuthorizeClaim" state="'+getState()+'"/>'+
    +					'<update id="CheckAccountingData" state="'+getState()+'"/><update id="ReviewClaim" state="'+getState()+'"/>'+
    +					'<update id="ApproveReviewedClaim" state="'+getState()+'"/><update id="EnterAccountingData" state="'+getState()+'"/></process>';
    +				update(graph, xml);
    +			}));
    +		};
    +
    +		/**
    +		 * Updates the display of the given graph using the XML data
    +		 */
    +		function update(graph, xml)
    +		{
    +			if (xml != null &&
    +				xml.length > 0)
    +			{
    +				var doc = mxUtils.parseXml(xml);
    +				
    +				if (doc != null &&
    +					doc.documentElement != null)
    +				{
    +					var model = graph.getModel();
    +					var nodes = doc.documentElement.getElementsByTagName('update');
    +					
    +					if (nodes != null &&
    +						nodes.length > 0)
    +					{
    +					
    +						model.beginUpdate();
    +						try
    +						{
    +							for (var i = 0; i < nodes.length; i++)
    +							{
    +								// Processes the activity nodes inside the process node
    +								var id = nodes[i].getAttribute('id');
    +								var state = nodes[i].getAttribute('state');
    +								
    +								// Gets the cell for the given activity name from the model
    +								var cell = model.getCell(id);
    +								
    +								// Updates the cell color and adds some tooltip information
    +								if (cell != null)
    +								{
    +									// Resets the fillcolor and the overlay
    +									graph.setCellStyles(mxConstants.STYLE_FILLCOLOR, 'white', [cell]);
    +									graph.removeCellOverlays(cell);
    +			
    +									// Changes the cell color for the known states
    +									if (state == 'Running')
    +									{
    +										graph.setCellStyles(mxConstants.STYLE_FILLCOLOR, '#2DFF2C', [cell]);
    +									}
    +									else if (state == 'Waiting')
    +									{
    +										graph.setCellStyles(mxConstants.STYLE_FILLCOLOR, '#FFAF1B', [cell]);
    +									}
    +									else if (state == 'Completed')
    +									{
    +										graph.setCellStyles(mxConstants.STYLE_FILLCOLOR, '#FFFF10', [cell]);
    +									}
    +									
    +									// Adds tooltip information using an overlay icon
    +									if (state != 'Init')
    +									{
    +										// Sets the overlay for the cell in the graph
    +										graph.addCellOverlay(cell, createOverlay(graph.warningImage, 'State: '+state));
    +									}
    +								}
    +							} // for
    +						}
    +						finally
    +						{
    +							model.endUpdate();
    +						}
    +					}
    +				}
    +			}
    +		};
    +		
    +		/**
    +		 * Creates an overlay object using the given tooltip and text for the alert window
    +		 * which is being displayed on click.
    +		 */
    +		function createOverlay(image, tooltip)
    +		{
    +			var overlay = new mxCellOverlay(image, tooltip);
    +
    +			// Installs a handler for clicks on the overlay
    +			overlay.addListener(mxEvent.CLICK, function(sender, evt)
    +			{
    +				mxUtils.alert(tooltip+'\n'+'Last update: '+new Date());
    +			});
    +			
    +			return overlay;
    +		};
    +		
    +		/**
    +		 * Creates and returns an empty graph inside the given container.
    +		 */
    +		function createGraph(container)
    +		{
    +			var graph = new mxGraph(container);
    +			graph.setTooltips(true);
    +			graph.setEnabled(false);
    +			
    +			// Disables folding
    +			graph.isCellFoldable = function(cell, collapse)
    +			{
    +				return false;
    +			};
    +
    +			// Creates the stylesheet for the process display
    +			var style = graph.getStylesheet().getDefaultVertexStyle();
    +			style[mxConstants.STYLE_FONTSIZE] = '12';
    +			style[mxConstants.STYLE_FONTCOLOR] = 'black';
    +			style[mxConstants.STYLE_STROKECOLOR] = 'black';
    +			style[mxConstants.STYLE_FILLCOLOR] = 'white';
    +			style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +			style[mxConstants.STYLE_GRADIENT_DIRECTION] = mxConstants.DIRECTION_EAST;
    +			style[mxConstants.STYLE_ROUNDED] = true;
    +			style[mxConstants.STYLE_SHADOW] = true;
    +			style[mxConstants.STYLE_FONTSTYLE] = 1;
    +			
    +			style = graph.getStylesheet().getDefaultEdgeStyle();
    +			style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +			style[mxConstants.STYLE_STROKECOLOR] = 'black';
    +			style[mxConstants.STYLE_ROUNDED] = true;
    +							
    +			style = [];
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_SWIMLANE;
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +			style[mxConstants.STYLE_STROKECOLOR] = 'gray';
    +			style[mxConstants.STYLE_FONTCOLOR] = 'black';
    +			style[mxConstants.STYLE_FILLCOLOR] = '#E0E0DF';
    +			style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_TOP;
    +			style[mxConstants.STYLE_STARTSIZE] = 24;
    +			style[mxConstants.STYLE_FONTSIZE] = '12';
    +			style[mxConstants.STYLE_FONTSTYLE] = 1;
    +			style[mxConstants.STYLE_HORIZONTAL] = false;
    +			graph.getStylesheet().putCellStyle('swimlane', style);
    +			
    +			style = [];
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RHOMBUS;
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RhombusPerimeter;
    +			style[mxConstants.STYLE_STROKECOLOR] = 'gray';
    +			style[mxConstants.STYLE_FONTCOLOR] = 'gray';
    +			style[mxConstants.STYLE_FILLCOLOR] = '#91BCC0';
    +			style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +			style[mxConstants.STYLE_FONTSIZE] = '14';
    +			graph.getStylesheet().putCellStyle('step', style);
    +			
    +			style = [];
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_ELLIPSE;
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.EllipsePerimeter;
    +			style[mxConstants.STYLE_STROKECOLOR] = 'gray';
    +			style[mxConstants.STYLE_FONTCOLOR] = 'gray';
    +			style[mxConstants.STYLE_FILLCOLOR] = '#A0C88F';
    +			style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +			style[mxConstants.STYLE_FONTSIZE] = '14';
    +			graph.getStylesheet().putCellStyle('start', style);
    +			
    +			style = mxUtils.clone(style);
    +			style[mxConstants.STYLE_FILLCOLOR] = '#DACCBC';
    +			style[mxConstants.STYLE_STROKECOLOR] = '#AF7F73';
    +			style[mxConstants.STYLE_STROKEWIDTH] = 3;
    +			graph.getStylesheet().putCellStyle('end', style);
    +			
    +			return graph;
    +		};
    +		
    +		/**
    +		 * Returns a random state.
    +		 */
    +		function getState()
    +		{
    +			var state = 'Init';
    +			var rnd = Math.random() * 4;
    +			
    +			if (rnd > 3)
    +			{
    +				state = 'Completed';
    +			}
    +			else if (rnd > 2)
    +			{
    +				state = 'Running';
    +			}
    +			else if (rnd > 1)
    +			{
    +				state = 'Waiting';
    +			}
    +			
    +			return state;
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container and control to the main function -->
    +<body onload="main(document.getElementById('graphContainer'));">
    +
    +	<!-- Acts as a container for the graph -->
    +	<div id="graphContainer" style="overflow:hidden;width:861px;height:401px;">
    +	</div>
    +	<br>
    +</body>
    +</html>
    diff --git a/javascript/examples/offpage.html b/javascript/examples/offpage.html
    new file mode 100644
    index 000000000..24840423f
    --- /dev/null
    +++ b/javascript/examples/offpage.html
    @@ -0,0 +1,161 @@
    +<!--
    +  $Id: offpage.html,v 1.15 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Offpage example for mxGraph. This example demonstrates creating
    +  offpage connectors in a graph and loading a new diagram on a
    +  single click.
    +-->
    +<html>
    +<head>
    +	<title>Offpage connector example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Use complete cell as highlight region
    +		mxConstants.ACTIVE_REGION = 1;
    +
    +		// Program starts here. Creates a sample graph in the dynamically
    +		// created DOM node called container which is created below.
    +		function main()
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				var container = document.createElement('div');
    +				container.style.position = 'absolute';
    +				container.style.overflow = 'hidden';
    +				container.style.left = '0px';
    +				container.style.top = '0px';
    +				container.style.right = '0px';
    +				container.style.bottom = '0px';
    +				container.style.background = 'url("editors/images/grid.gif")';
    +
    +				// Workaround for Internet Explorer ignoring certain styles
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +				}
    +
    +				document.body.appendChild(container);
    +			
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setEnabled(false);
    +				
    +				// Highlights offpage connectors
    +				var highlight = new mxCellTracker(graph, null, function(me)
    +				{
    +					var cell = me.getCell();
    +					
    +					if (cell != null &&
    +						cell.value != null &&
    +						typeof(cell.value.create) == 'function')
    +					{
    +						return cell;
    +					}
    +					
    +					return null;
    +				});
    +						
    +				// Handles clicks on offpage connectors and
    +				// executes function in user object
    +				graph.addListener(mxEvent.CLICK, function(source, evt)
    +				{
    +					var cell = evt.getProperty('cell');
    +					
    +					if (cell != null &&
    +						cell.value != null &&
    +						typeof(cell.value.create) == 'function')
    +					{
    +						cell.value.create();
    +					}
    +				});
    +				
    +				// Handles clicks on offpage connectors and
    +				// executes function in user object
    +				graph.getCursorForCell = function(cell)
    +				{
    +					if (cell != null &&
    +						cell.value != null &&
    +						typeof(cell.value.create) == 'function')
    +					{
    +						return 'pointer';
    +					}
    +				};
    +
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var first = null;
    +				var second = null;
    +				
    +				first = function()
    +				{
    +					var value = {toString: function() { return 'Next'; }, create: second};
    +				
    +					// Adds cells to the model in a single step
    +					graph.getModel().beginUpdate();
    +					try
    +					{
    +						graph.getModel().setRoot(graph.getModel().createRoot());
    +						var parent = graph.getDefaultParent();
    +					
    +						var v1 = graph.insertVertex(parent, null, 'Click', 30, 20, 80, 30, 'fillColor=#FFFF88;strokeColor=#FF1A00');
    +						var v2 = graph.insertVertex(parent, null, 'Next', 20, 150, 100, 30, 'fillColor=#FFFF88;strokeColor=#FF1A00');
    +						var v3 = graph.insertVertex(parent, null, value, 200, 150, 40, 40, 'shape=triangle;align=left;fillColor=#C3D9FF;strokeColor=#4096EE');
    +						var e1 = graph.insertEdge(parent, null, null, v1, v2, 'strokeColor=#FF1A00');
    +					}
    +					finally
    +					{
    +						// Updates the display
    +						graph.getModel().endUpdate();
    +					}
    +				};
    +
    +				second = function()
    +				{
    +					var value = {toString: function() { return 'Prev'; }, create: first};
    +				
    +					// Adds cells to the model in a single step
    +					graph.getModel().beginUpdate();
    +					try
    +					{
    +						graph.getModel().setRoot(graph.getModel().createRoot());
    +						var parent = graph.getDefaultParent();
    +					
    +						var v1 = graph.insertVertex(parent, null, 'Click', 30, 20, 80, 30, 'fillColor=#CDEB8B;strokeColor=#008C00');
    +						var v2 = graph.insertVertex(parent, null, 'Prev', 220, 20, 100, 30, 'fillColor=#CDEB8B;strokeColor=#008C00');
    +						var v3 = graph.insertVertex(parent, null, value, 30, 150, 40, 40, 'shape=triangle;align=right;fillColor=#C3D9FF;strokeColor=#4096EE;direction=west');
    +						var e1 = graph.insertEdge(parent, null, null, v1, v2, 'strokeColor=#008C00');
    +					}
    +					finally
    +					{
    +						// Updates the display
    +						graph.getModel().endUpdate();
    +					}
    +				};
    +				
    +				first();
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Calls the main function after the page has loaded. Container is dynamically created. -->
    +<body onload="main();">
    +</body>
    +</html>
    diff --git a/javascript/examples/orgchart.html b/javascript/examples/orgchart.html
    new file mode 100644
    index 000000000..3d65a5b40
    --- /dev/null
    +++ b/javascript/examples/orgchart.html
    @@ -0,0 +1,405 @@
    +<!--
    +  $Id: orgchart.html,v 1.64 2011-09-04 10:00:38 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +
    +  Orgchart example for mxGraph. This example demonstrates using
    +  automatic layouts, fit to page zoom and poster print (across
    +  multiple pages).
    +-->
    +<html>
    +<head>
    +	<title>Orgchart example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Makes the shadow brighter
    +		mxConstants.SHADOWCOLOR = '#C0C0C0';
    +		
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main()
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Workaround for Internet Explorer ignoring certain styles
    +				var container = document.createElement('div');
    +				container.style.position = 'absolute';
    +				container.style.overflow = 'hidden';
    +				container.style.left = '0px';
    +				container.style.top = '0px';
    +				container.style.right = '0px';
    +				container.style.bottom = '0px';
    +
    +				var outline = document.getElementById('outlineContainer');
    +
    +				mxEvent.disableContextMenu(container);
    +
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +					new mxDivResizer(outline);
    +				}
    +
    +				// Sets a gradient background
    +			    if (mxClient.IS_GC || mxClient.IS_SF)
    +			    {
    +			    	container.style.background = '-webkit-gradient(linear, 0 0%, 0% 100%, from(#FFFFFF), to(#E7E7E7))';
    +			    }
    +			    else if (mxClient.IS_NS)
    +			    {
    +			    	container.style.background = '-moz-linear-gradient(top, #FFFFFF, #E7E7E7)';  
    +			    }
    +			    else if (mxClient.IS_IE)
    +			    {
    +			    	container.style.filter = 'progid:DXImageTransform.Microsoft.Gradient('+
    +			                'StartColorStr=\'#FFFFFF\', EndColorStr=\'#E7E7E7\', GradientType=0)';
    +			    }
    +
    +				document.body.appendChild(container);
    +
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Creates the outline (navigator, overview) for moving
    +				// around the graph in the top, right corner of the window.
    +				var outln = new mxOutline(graph, outline);
    +				
    +				// Disables tooltips on touch devices
    +				graph.setTooltips(!mxClient.IS_TOUCH);
    +
    +				// Set some stylesheet options for the visual appearance of vertices
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_SHAPE] = 'label';
    +				
    +				style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +				style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_LEFT;
    +				style[mxConstants.STYLE_SPACING_LEFT] = 54;
    +				
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = '#7d85df';
    +				style[mxConstants.STYLE_STROKECOLOR] = '#5d65df';
    +				style[mxConstants.STYLE_FILLCOLOR] = '#adc5ff';
    +				
    +				style[mxConstants.STYLE_FONTCOLOR] = '#1d258f';
    +				style[mxConstants.STYLE_FONTFAMILY] = 'Verdana';
    +				style[mxConstants.STYLE_FONTSIZE] = '12';
    +				style[mxConstants.STYLE_FONTSTYLE] = '1';
    +				
    +				style[mxConstants.STYLE_SHADOW] = '1';
    +				style[mxConstants.STYLE_ROUNDED] = '1';
    +				style[mxConstants.STYLE_GLASS] = '1';
    +				
    +				style[mxConstants.STYLE_IMAGE] = 'editors/images/dude3.png';
    +				style[mxConstants.STYLE_IMAGE_WIDTH] = '48';
    +				style[mxConstants.STYLE_IMAGE_HEIGHT] = '48';
    +
    +				// Sets the default style for edges
    +				style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				style[mxConstants.STYLE_STROKEWIDTH] = 3;
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.TopToBottom;
    +				
    +				// Enables automatic sizing for vertices after editing and
    +				// panning by using the left mouse button.
    +				graph.setCellsMovable(false);
    +				graph.setAutoSizeCells(true);
    +				graph.setPanning(true);
    +				graph.panningHandler.useLeftButtonForPanning = true;
    +
    +				// Displays a popupmenu when the user clicks
    +				// on a cell (using the left mouse button) but
    +				// do not select the cell when the popup menu
    +				// is displayed
    +				graph.panningHandler.selectOnPopup = false;
    +
    +				// Stops editing on enter or escape keypress
    +				var keyHandler = new mxKeyHandler(graph);
    +
    +				// Changes the default style for edges and vertices "in-place"
    +				var style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.TopToBottom;
    +
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_SPACING] = 8;
    +
    +				// Enables automatic layout on the graph and installs
    +				// a tree layout for all groups who's children are
    +				// being changed, added or removed.
    +				var layout = new mxCompactTreeLayout(graph, false);
    +				layout.useBoundingBox = false;
    +				layout.levelDistance = 40;
    +				layout.nodeDistance = 16;
    +
    +				// Allows the layout to move cells even though cells
    +				// aren't movable in the graph
    +				layout.isVertexMovable = function(cell)
    +				{
    +					return true;
    +				};
    +
    +				var layoutMgr = new mxLayoutManager(graph);
    +
    +				layoutMgr.getLayout = function(cell)
    +				{
    +					if (cell.getChildCount() > 0)
    +					{
    +						return layout;
    +					}
    +				};
    +
    +				// Installs a popupmenu handler using local function (see below).
    +				graph.panningHandler.factoryMethod = function(menu, cell, evt)
    +				{
    +					return createPopupMenu(graph, menu, cell, evt);
    +				};
    +
    +				// Fix for wrong preferred size
    +				var oldGetPreferredSizeForCell = graph.getPreferredSizeForCell;
    +				graph.getPreferredSizeForCell = function(cell)
    +				{
    +					var result = oldGetPreferredSizeForCell.apply(this, arguments);
    +
    +					if (result != null)
    +					{
    +						result.width = Math.max(120, result.width - 40);
    +					}
    +
    +					return result;
    +				};
    +
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +
    +				// Adds the root vertex of the tree
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var w = graph.container.offsetWidth;
    +					var v1 = graph.insertVertex(parent, 'treeRoot',
    +						'Organization', w/2 - 30, 20, 140, 60, 'image=editors/images/house.png');
    +					graph.updateCellSize(v1);
    +
    +					addOverlays(graph, v1, false);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +				var content = document.createElement('div');
    +				content.style.padding = '4px';
    +
    +				var tb = new mxToolbar(content);
    +
    +				tb.addItem('Zoom In', 'images/zoom_in32.png',function(evt)
    +				{
    +					graph.zoomIn();
    +				});
    +
    +				tb.addItem('Zoom Out', 'images/zoom_out32.png',function(evt)
    +				{
    +					graph.zoomOut();
    +				});
    +				
    +				tb.addItem('Actual Size', 'images/view_1_132.png',function(evt)
    +				{
    +					graph.zoomActual();
    +				});
    +
    +				tb.addItem('Print', 'images/print32.png',function(evt)
    +				{
    +					var preview = new mxPrintPreview(graph, 1);
    +					preview.open();
    +				});
    +
    +				tb.addItem('Poster Print', 'images/press32.png',function(evt)
    +				{
    +					var pageCount = mxUtils.prompt('Enter maximum page count', '1');
    +
    +					if (pageCount != null)
    +					{
    +						var scale = mxUtils.getScaleForPageCount(pageCount, graph);
    +						var preview = new mxPrintPreview(graph, scale);
    +						preview.open();
    +					}
    +				});
    +
    +				wnd = new mxWindow('Tools', content, 0, 0, 200, 66, false);
    +				wnd.setMaximizable(false);
    +				wnd.setScrollable(false);
    +				wnd.setResizable(false);
    +				wnd.setVisible(true);
    +			}
    +		};
    +
    +// Function to create the entries in the popupmenu
    +function createPopupMenu(graph, menu, cell, evt)
    +{
    +	var model = graph.getModel();
    +
    +	if (cell != null)
    +	{
    +		if (model.isVertex(cell))
    +		{
    +			menu.addItem('Add child', 'editors/images/overlays/check.png', function()
    +			{
    +				addChild(graph, cell);
    +			});
    +		}
    +
    +		menu.addItem('Edit label', 'editors/images/text.gif', function()
    +		{
    +			graph.startEditingAtCell(cell);
    +		});
    +
    +		if (cell.id != 'treeRoot' &&
    +			model.isVertex(cell))
    +		{
    +			menu.addItem('Delete', 'editors/images/delete.gif', function()
    +			{
    +				deleteSubtree(graph, cell);
    +			});
    +		}
    +
    +		menu.addSeparator();
    +	}
    +
    +	menu.addItem('Fit', 'editors/images/zoom.gif', function()
    +	{
    +		graph.fit();
    +	});
    +
    +	menu.addItem('Actual', 'editors/images/zoomactual.gif', function()
    +	{
    +		graph.zoomActual();
    +	});
    +
    +	menu.addSeparator();
    +
    +	menu.addItem('Print', 'editors/images/print.gif', function()
    +	{
    +		var preview = new mxPrintPreview(graph, 1);
    +		preview.open();
    +	});
    +
    +	menu.addItem('Poster Print', 'editors/images/print.gif', function()
    +	{
    +		var pageCount = mxUtils.prompt('Enter maximum page count', '1');
    +
    +		if (pageCount != null)
    +		{
    +			var scale = mxUtils.getScaleForPageCount(pageCount, graph);
    +			var preview = new mxPrintPreview(graph, scale);
    +			preview.open();
    +		}
    +	});
    +};
    +
    +function addOverlays(graph, cell, addDeleteIcon)
    +{
    +	var overlay = new mxCellOverlay(new mxImage('images/add.png', 24, 24), 'Add child');
    +	overlay.cursor = 'hand';
    +	overlay.align = mxConstants.ALIGN_CENTER;
    +	overlay.addListener(mxEvent.CLICK, mxUtils.bind(this, function(sender, evt)
    +	{
    +		addChild(graph, cell);
    +	}));
    +	
    +	graph.addCellOverlay(cell, overlay);
    +
    +	if (addDeleteIcon)
    +	{
    +		overlay = new mxCellOverlay(new mxImage('images/close.png', 30, 30), 'Delete');
    +		overlay.cursor = 'hand';
    +		overlay.offset = new mxPoint(-4, 8);
    +		overlay.align = mxConstants.ALIGN_RIGHT;
    +		overlay.verticalAlign = mxConstants.ALIGN_TOP;
    +		overlay.addListener(mxEvent.CLICK, mxUtils.bind(this, function(sender, evt)
    +		{
    +			deleteSubtree(graph, cell);
    +		}));
    +	
    +		graph.addCellOverlay(cell, overlay);
    +	}
    +};
    +
    +function addChild(graph, cell)
    +{
    +	var model = graph.getModel();
    +	var parent = graph.getDefaultParent();
    +
    +	model.beginUpdate();
    +	try
    +	{
    +		var vertex = graph.insertVertex(parent, null, 'Double click to set name');
    +		var geometry = model.getGeometry(vertex);
    +
    +		// Updates the geometry of the vertex with the
    +		// preferred size computed in the graph
    +		var size = graph.getPreferredSizeForCell(vertex);
    +		geometry.width = size.width;
    +		geometry.height = size.height;
    +
    +		// Adds the edge between the existing cell
    +		// and the new vertex and executes the
    +		// automatic layout on the parent
    +		var edge = graph.insertEdge(parent, null, '', cell, vertex);
    +
    +		// Configures the edge label "in-place" to reside
    +		// at the end of the edge (x = 1) and with an offset
    +		// of 20 pixels in negative, vertical direction.
    +		edge.geometry.x = 1;
    +		edge.geometry.y = 0;
    +		edge.geometry.offset = new mxPoint(0, -20);
    +
    +		addOverlays(graph, vertex, true);
    +	}
    +	finally
    +	{
    +		model.endUpdate();
    +	}
    +};
    +
    +function deleteSubtree(graph, cell)
    +{
    +	// Gets the subtree from cell downwards
    +	var cells = [];
    +	graph.traverse(cell, true, function(vertex)
    +	{
    +		cells.push(vertex);
    +		
    +		return true;
    +	});
    +
    +	graph.removeCells(cells);
    +};
    +	</script>
    +</head>
    +
    +<!-- Calls the main function after the page has loaded. Container is dynamically created. -->
    +<body onload="main();">
    +
    +	<!-- Creates a container for the outline -->
    +	<div id="outlineContainer"
    +		style="z-index:1;position:absolute;overflow:hidden;top:0px;right:0px;width:160px;height:120px;background:transparent;border-style:solid;border-color:lightgray;">
    +	</div>
    +	
    +</body>
    +</html>
    diff --git a/javascript/examples/orthogonal.html b/javascript/examples/orthogonal.html
    new file mode 100644
    index 000000000..92b036ac9
    --- /dev/null
    +++ b/javascript/examples/orthogonal.html
    @@ -0,0 +1,151 @@
    +<!--
    +  $Id: orthogonal.html,v 1.6 2012-01-08 10:28:37 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Orthogonal example for mxGraph. This example demonstrates the use
    +  of port constraints and orthogonal edge styles and handlers.
    +-->
    +<html>
    +<head>
    +	<title>Orthogonal example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering in SVG
    +				mxShape.prototype.crisp = true;
    +				
    +				// Enables guides
    +				mxGraphHandler.prototype.guidesEnabled = true;
    +				
    +			    // Alt disables guides
    +				mxGuide.prototype.isEnabledForEvent = function(evt)
    +				{
    +					return !mxEvent.isAltDown(evt);
    +				};
    +				
    +				// Enables snapping waypoints to terminals
    +				mxEdgeHandler.prototype.snapToTerminals = true;
    +				
    +				// Enables orthogonal connect preview in IE
    +				mxConnectionHandler.prototype.movePreviewAway = false;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.disconnectOnMove = false;
    +				graph.foldingEnabled = false;
    +				graph.cellsResizable = false;
    +				graph.extendParents = false;
    +				graph.setConnectable(true);
    +				
    +				// Implements perimeter-less connection points as fixed points (computed before the edge style).
    +				graph.view.updateFixedTerminalPoint = function(edge, terminal, source, constraint)
    +				{
    +					mxGraphView.prototype.updateFixedTerminalPoint.apply(this, arguments);
    +					
    +					var pts = edge.absolutePoints;
    +					var pt = pts[(source) ? 0 : pts.length - 1];
    +
    +					if (terminal != null && pt == null && this.getPerimeterFunction(terminal) == null)
    +					{
    +						edge.setAbsoluteTerminalPoint(new mxPoint(this.getRoutingCenterX(terminal),
    +								this.getRoutingCenterY(terminal)), source)
    +					}
    +				};
    +				
    +				// Changes the default edge style
    +				graph.getStylesheet().getDefaultEdgeStyle()['edgeStyle'] = 'orthogonalEdgeStyle';
    +				delete graph.getStylesheet().getDefaultEdgeStyle()['endArrow'];
    +				
    +				// Implements the connect preview
    +				graph.connectionHandler.createEdgeState = function(me)
    +				{
    +					var edge = graph.createEdge(null, null, null, null, null);
    +					
    +					return new mxCellState(this.graph.view, edge, this.graph.getCellStyle(edge));
    +				};
    +
    +				// Uncomment the following if you want the container
    +				// to fit the size of the graph
    +				//graph.setResizeContainer(true);
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, '', 40, 40, 40, 30);
    +					v1.setConnectable(false);
    +					var v11 = graph.insertVertex(v1, null, '', 0.5, 0, 10, 40,
    +							'portConstraint=northsouth;', true);
    +					v11.geometry.offset = new mxPoint(-5, -5);
    +					var v12 = graph.insertVertex(v1, null, '', 0, 0.5, 10, 10,
    +							'portConstraint=west;shape=triangle;direction=west;perimeter=none;' +
    +							'routingCenterX=-0.5;routingCenterY=0;', true);
    +					v12.geometry.offset = new mxPoint(-10, -5);
    +					var v13 = graph.insertVertex(v1, null, '', 1, 0.5, 10, 10,
    +							'portConstraint=east;shape=triangle;direction=east;perimeter=none;' +
    +							'routingCenterX=0.5;routingCenterY=0;', true);
    +					v13.geometry.offset = new mxPoint(0, -5);
    +					
    +					var v2 = graph.addCell(graph.getModel().cloneCell(v1));
    +					v2.geometry.x = 200;
    +					v2.geometry.y = 60;
    +					
    +					var v3 = graph.addCell(graph.getModel().cloneCell(v1));
    +					v3.geometry.x = 40;
    +					v3.geometry.y = 150;
    +					
    +					var v4 = graph.addCell(graph.getModel().cloneCell(v1));
    +					v4.geometry.x = 200;
    +					v4.geometry.y = 170;
    +					
    +					graph.insertEdge(parent, null, '', v1.getChildAt(2), v2.getChildAt(1));
    +					graph.insertEdge(parent, null, '', v2.getChildAt(2), v3.getChildAt(1));
    +					graph.insertEdge(parent, null, '', v3.getChildAt(2), v4.getChildAt(1));
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/overlays.html b/javascript/examples/overlays.html
    new file mode 100644
    index 000000000..9efbb871c
    --- /dev/null
    +++ b/javascript/examples/overlays.html
    @@ -0,0 +1,122 @@
    +<!--
    +  $Id: overlays.html,v 1.20 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Overlays example for mxGraph. This example demonstrates cell
    +  highlighting, overlays and handling click and double click
    +  events. See also: events.html for more event handling.
    +-->
    +<html>
    +<head>
    +	<title>Overlays example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Disables basic selection and cell handling
    +				graph.setEnabled(false);
    +								
    +				// Highlights the vertices when the mouse enters
    +				var highlight = new mxCellTracker(graph, '#00FF00');
    +				
    +				// Enables tooltips for the overlays
    +				graph.setTooltips(true);
    +
    +				// Installs a handler for click events in the graph
    +				// that toggles the overlay for the respective cell
    +				graph.addListener(mxEvent.CLICK, function(sender, evt)
    +				{
    +					var cell = evt.getProperty('cell');
    +					
    +					if (cell != null)
    +					{
    +						var overlays = graph.getCellOverlays(cell);
    +						
    +						if (overlays == null)
    +						{
    +							// Creates a new overlay with an image and a tooltip
    +							var overlay = new mxCellOverlay(
    +								new mxImage('editors/images/overlays/check.png', 16, 16),
    +								'Overlay tooltip');
    +
    +							// Installs a handler for clicks on the overlay							
    +							overlay.addListener(mxEvent.CLICK, function(sender, evt2)
    +							{
    +								mxUtils.alert('Overlay clicked');
    +							});
    +							
    +							// Sets the overlay for the cell in the graph
    +							graph.addCellOverlay(cell, overlay);
    +						}
    +						else
    +						{
    +							graph.removeCellOverlays(cell);
    +						}
    +					}
    +				});
    +				
    +				// Installs a handler for double click events in the graph
    +				// that shows an alert box
    +				graph.addListener(mxEvent.DOUBLE_CLICK, function(sender, evt)
    +				{
    +					var cell = evt.getProperty('cell');
    +					mxUtils.alert('Doubleclick: '+((cell != null) ? 'Cell' : 'Graph'));
    +					evt.consume();
    +				});
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Click,', 20, 20, 60, 40);
    +					var v2 = graph.insertVertex(parent, null, 'Doubleclick', 200, 150, 100, 40);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/pagebreaks.html b/javascript/examples/pagebreaks.html
    new file mode 100644
    index 000000000..89db11d39
    --- /dev/null
    +++ b/javascript/examples/pagebreaks.html
    @@ -0,0 +1,116 @@
    +<!--
    +  $Id: pagebreaks.html,v 1.3 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Pagebreaks example for mxGraph. This example demonstrates using
    +  the pageBreaksVisible and preferPageSize switches.
    +-->
    +<html>
    +<head>
    +	<title>Pagebreaks example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				mxEvent.disableContextMenu(container);
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.view.setScale(0.15);
    +				graph.pageBreaksVisible = true;
    +				graph.pageBreakDashed = true;
    +				graph.preferPageSize = true;
    +				graph.centerZoom = false;
    +
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 280, 330);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 500, 550, 280, 330);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +				document.body.appendChild(mxUtils.button('Toggle Page Breaks',
    +					function(evt)
    +					{
    +						graph.pageBreaksVisible = !graph.pageBreaksVisible;
    +						graph.sizeDidChange();
    +					}
    +				));
    +				
    +				document.body.appendChild(mxUtils.button('Zoom In',
    +					function(evt)
    +					{
    +					 	graph.zoomIn();
    +					}
    +				));
    +
    +				document.body.appendChild(mxUtils.button('Zoom Out',
    +					function(evt)
    +					{
    +						graph.zoomOut();
    +					}
    +				));
    +
    +				document.body.appendChild(mxUtils.button('Print',
    +					function(evt)
    +					{
    +				 		var preview = new mxPrintPreview(graph);
    +					 	preview.autoOrigin = false;
    +					 	preview.open();
    +					}
    +				));
    +				
    +				document.body.appendChild(mxUtils.button('Reset',
    +					function(evt)
    +					{
    +						graph.view.scaleAndTranslate(0.15, 0, 0);
    +					}
    +				));
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:auto;width:821px;height:641px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/perimeter.html b/javascript/examples/perimeter.html
    new file mode 100644
    index 000000000..238faf9eb
    --- /dev/null
    +++ b/javascript/examples/perimeter.html
    @@ -0,0 +1,109 @@
    +<!--
    +  $Id: perimeter.html,v 1.2 2012-01-17 10:11:55 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Perimeter example for mxGraph. This example demonstrates how to
    +  avoid edge and label intersections.
    +-->
    +<html>
    +<head>
    +	<title>Hello, World! example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Redirects the perimeter to the label bounds if intersection
    +				// between edge and label is found
    +				mxGraphViewGetPerimeterPoint = mxGraphView.prototype.getPerimeterPoint;
    +				mxGraphView.prototype.getPerimeterPoint = function(terminal, next, orthogonal, border)
    +				{
    +					var point = mxGraphViewGetPerimeterPoint.apply(this, arguments);
    +					
    +					if (point != null)
    +					{
    +						var perimeter = this.getPerimeterFunction(terminal);
    +
    +						if (terminal.text != null && terminal.text.boundingBox != null)
    +						{
    +							// Adds a small border to the label bounds
    +							var b = terminal.text.boundingBox.clone();
    +							b.grow(3)
    +
    +							if (mxUtils.rectangleIntersectsSegment(b, point, next))
    +							{
    +								point = perimeter(b, terminal, next, orthogonal);
    +							}
    +						}
    +					}
    +					
    +					return point;
    +				};
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setVertexLabelsMovable(true);
    +				graph.setConnectable(true);
    +
    +				// Uncomment the following if you want the container
    +				// to fit the size of the graph
    +				//graph.setResizeContainer(true);
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Label', 20, 20, 80, 30, 'verticalLabelPosition=bottom');
    +					var v2 = graph.insertVertex(parent, null, 'Label', 200, 20, 80, 30, 'verticalLabelPosition=bottom');
    +					var v3 = graph.insertVertex(parent, null, 'Label', 20, 150, 80, 30, 'verticalLabelPosition=bottom');
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v3);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/permissions.html b/javascript/examples/permissions.html
    new file mode 100644
    index 000000000..6da6f2d50
    --- /dev/null
    +++ b/javascript/examples/permissions.html
    @@ -0,0 +1,260 @@
    +<!--
    +  $Id: permissions.html,v 1.17 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Hello, World! example for mxGraph. This example demonstrates creating
    +  permissions to define the available operations a the graph.
    +-->
    +<html>
    +<head>
    +	<title>Permissions example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main()
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Defines an icon for creating new connections in the connection handler.
    +				// This will automatically disable the highlighting of the source vertex.
    +				mxConnectionHandler.prototype.connectImage = new mxImage('images/connector.gif', 16, 16);
    +			
    +				// Creates the div for the graph
    +				var container = document.createElement('div');
    +				container.style.position = 'absolute';
    +				container.style.overflow = 'hidden';
    +				container.style.left = '00px';
    +				container.style.top = '40px';
    +				container.style.right = '0px';
    +				container.style.bottom = '0px';
    +				container.style.background = 'url("editors/images/grid.gif")';
    +				
    +				document.body.appendChild(container);
    +				
    +				// Workaround for Internet Explorer ignoring certain styles
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +				}
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Enable tooltips, disables mutligraphs, enable loops
    +				graph.setMultigraph(false);
    +				graph.setAllowLoops(true);
    +
    +				// Enables rubberband selection and key handling
    +				var rubberband = new mxRubberband(graph);
    +				var keyHandler = new mxKeyHandler(graph);
    +				
    +				// Assigns the delete key
    +				keyHandler.bindKey(46, function(evt)
    +				{
    +					if (graph.isEnabled())
    +					{
    +						graph.removeCells();
    +					}
    +				});
    +				
    +				// Shared variable between child function scopes
    +				// aka "private" variable
    +				var currentPermission = null;
    +				
    +				var apply = function(permission)
    +				{
    +					graph.clearSelection();
    +					permission.apply(graph);
    +					graph.setEnabled(true);
    +					graph.setTooltips(true);
    +					
    +					// Updates the icons on the shapes - rarely
    +					// needed and very slow for large graphs
    +					graph.refresh();
    +					currentPermission = permission;
    +				};
    +				
    +				apply(new Permission());
    +				
    +				var button = mxUtils.button('Allow All', function(evt)
    +				{
    +					apply(new Permission());
    +				});
    +				document.body.appendChild(button);
    +												
    +				var button = mxUtils.button('Connect Only', function(evt)
    +				{
    +					apply(new Permission(false, true, false, false, true));
    +				});
    +				document.body.appendChild(button);
    +								
    +				var button = mxUtils.button('Edges Only', function(evt)
    +				{
    +					apply(new Permission(false, false, true, false, false));
    +				});
    +				document.body.appendChild(button);
    +								
    +				var button = mxUtils.button('Vertices Only', function(evt)
    +				{
    +					apply(new Permission(false, false, false, true, false));
    +				});
    +				document.body.appendChild(button);
    +				
    +				var button = mxUtils.button('Select Only', function(evt)
    +				{
    +					apply(new Permission(false, false, false, false, false));
    +				});
    +				document.body.appendChild(button);
    +				
    +				var button = mxUtils.button('Locked', function(evt)
    +				{
    +					apply(new Permission(true, false));
    +				});
    +				document.body.appendChild(button);
    +								
    +				var button = mxUtils.button('Disabled', function(evt)
    +				{
    +					graph.clearSelection();
    +					graph.setEnabled(false);
    +					graph.setTooltips(false);
    +				});
    +				document.body.appendChild(button);
    +				
    +				// Extends hook functions to use permission object. This could
    +				// be done by assigning the respective switches (eg.
    +				// setMovable), but this approach is more flexible, doesn't
    +				// override any existing behaviour or settings, and allows for
    +				// dynamic conditions to be used in the functions. See the
    +				// specification for more functions to extend (eg.
    +				// isSelectable).
    +				var oldDisconnectable = graph.isCellDisconnectable;
    +				graph.isCellDisconnectable = function(cell, terminal, source)
    +				{
    +					return oldDisconnectable.apply(this, arguments) &&
    +						currentPermission.editEdges;
    +				};
    +				
    +				var oldTerminalPointMovable = graph.isTerminalPointMovable;
    +				graph.isTerminalPointMovable = function(cell)
    +				{
    +					return oldTerminalPointMovable.apply(this, arguments) &&
    +						currentPermission.editEdges;
    +				};
    +				
    +				var oldBendable = graph.isCellBendable;
    +				graph.isCellBendable = function(cell)
    +				{
    +					return oldBendable.apply(this, arguments) &&
    +						currentPermission.editEdges;
    +				};
    +				
    +				var oldLabelMovable = graph.isLabelMovable;
    +				graph.isLabelMovable = function(cell)
    +				{
    +					return oldLabelMovable.apply(this, arguments) &&
    +						currentPermission.editEdges;
    +				};
    +				
    +				var oldMovable = graph.isCellMovable;
    +				graph.isCellMovable = function(cell)
    +				{
    +					return oldMovable.apply(this, arguments) &&
    +						currentPermission.editVertices;
    +				};
    +				
    +				var oldResizable = graph.isCellResizable;
    +				graph.isCellResizable = function(cell)
    +				{
    +					return oldResizable.apply(this, arguments) &&
    +						currentPermission.editVertices;
    +				};
    +								
    +				var oldEditable = graph.isCellEditable;
    +				graph.isCellEditable = function(cell)
    +				{
    +					return oldEditable.apply(this, arguments) &&
    +						(this.getModel().isVertex(cell) &&
    +						currentPermission.editVertices) ||
    +						(this.getModel().isEdge(cell) &&
    +						currentPermission.editEdges);
    +				};
    +				
    +				var oldDeletable = graph.isCellDeletable;
    +				graph.isCellDeletable = function(cell)
    +				{
    +					return oldDeletable.apply(this, arguments) &&
    +						(this.getModel().isVertex(cell) &&
    +						currentPermission.editVertices) ||
    +						(this.getModel().isEdge(cell) &&
    +						currentPermission.editEdges);
    +				};
    +				
    +				var oldCloneable = graph.isCellCloneable;
    +				graph.isCellCloneable = function(cell)
    +				{
    +					return oldCloneable.apply(this, arguments) &&
    +						currentPermission.cloneCells;
    +				};
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'Hello,', 200, 20, 80, 30);
    +					var v3 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, 'Connection', v1, v3);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +		
    +		function Permission(locked, createEdges, editEdges, editVertices, cloneCells)
    +		{
    +			this.locked = (locked != null) ? locked : false;
    +			this.createEdges = (createEdges != null) ? createEdges : true;
    +			this.editEdges = (editEdges != null) ? editEdges : true;;
    +			this.editVertices = (editVertices != null) ? editVertices : true;;
    +			this.cloneCells = (cloneCells != null) ? cloneCells : true;;
    +		};
    +		
    +		Permission.prototype.apply = function(graph)
    +		{
    +			graph.setConnectable(this.createEdges);
    +			graph.setCellsLocked(this.locked);
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main();">
    +</body>
    +</html>
    diff --git a/javascript/examples/portrefs.html b/javascript/examples/portrefs.html
    new file mode 100644
    index 000000000..37f47f5ed
    --- /dev/null
    +++ b/javascript/examples/portrefs.html
    @@ -0,0 +1,239 @@
    +<!--
    +  $Id: portrefs.html,v 1.5 2012-01-04 10:01:16 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Portsrefs example for mxGraph. This example demonstrates referencing
    +  connection points by ID. The main difference to the implementation
    +  where the connection point is stored in the connecting edge is that
    +  changes to the original port will be reflected in all existing
    +  connections since they reference that port.
    +-->
    +<html>
    +<head>
    +	<title>Port References Example</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		function main(container)
    +		{
    +			// Replaces the port image
    +			mxConstraintHandler.prototype.pointImage = new mxImage('images/dot.gif', 10, 10);
    +			
    +			var graph = new mxGraph(container);
    +			graph.setConnectable(true);
    +			
    +			// Disables automatic handling of ports. This disables the reset of the
    +			// respective style in mxGraph.cellConnected. Note that this feature may
    +			// be useful if floating and fixed connections are combined.
    +			graph.setPortsEnabled(false);
    +			
    +			// Enables rubberband selection
    +			new mxRubberband(graph);
    +			
    +			// Gets the default parent for inserting new cells. This
    +			// is normally the first child of the root (ie. layer 0).
    +			var parent = graph.getDefaultParent();
    +
    +			// Ports are equal for all shapes...
    +			var ports = new Array();
    +			
    +			// NOTE: Constraint is used later for orthogonal edge routing (currently ignored)
    +			ports['w'] = {x: 0, y: 0.5, perimeter: true, constraint: 'west'};
    +			ports['e'] = {x: 1, y: 0.5, perimeter: true, constraint: 'east'};
    +			ports['n'] = {x: 0.5, y: 0, perimeter: true, constraint: 'north'};
    +			ports['s'] = {x: 0.5, y: 1, perimeter: true, constraint: 'south'};
    +			ports['nw'] = {x: 0, y: 0, perimeter: true, constraint: 'north west'};
    +			ports['ne'] = {x: 1, y: 0, perimeter: true, constraint: 'north east'};
    +			ports['sw'] = {x: 0, y: 1, perimeter: true, constraint: 'south west'};
    +			ports['se'] = {x: 1, y: 1, perimeter: true, constraint: 'south east'};
    +
    +			// ... except for triangles
    +			var ports2 = new Array();
    +			
    +			// NOTE: Constraint is used later for orthogonal edge routing (currently ignored)
    +			ports2['in1'] = {x: 0, y: 0, perimeter: true, constraint: 'west'};
    +			ports2['in2'] = {x: 0, y: 0.25, perimeter: true, constraint: 'west'};
    +			ports2['in3'] = {x: 0, y: 0.5, perimeter: true, constraint: 'west'};
    +			ports2['in4'] = {x: 0, y: 0.75, perimeter: true, constraint: 'west'};
    +			ports2['in5'] = {x: 0, y: 1, perimeter: true, constraint: 'west'};
    +
    +			ports2['out1'] = {x: 0.5, y: 0, perimeter: true, constraint: 'north east'};
    +			ports2['out2'] = {x: 1, y: 0.5, perimeter: true, constraint: 'east'};
    +			ports2['out3'] = {x: 0.5, y: 1, perimeter: true, constraint: 'south east'};
    +			
    +			// Extends shapes classes to return their ports
    +			mxShape.prototype.getPorts = function()
    +			{
    +				return ports;
    +			};
    +
    +			mxTriangle.prototype.getPorts = function()
    +			{
    +				return ports2;
    +			};
    +
    +			// Disables floating connections (only connections via ports allowed)
    +			graph.connectionHandler.isConnectableCell = function(cell)
    +			{
    +			   return false;
    +			};
    +			mxEdgeHandler.prototype.isConnectableCell = function(cell)
    +			{
    +				return graph.connectionHandler.isConnectableCell(cell);
    +			};
    +			
    +			// Disables existing port functionality
    +			graph.view.getTerminalPort = function(state, terminal, source)
    +			{
    +				return terminal;
    +			};
    +			
    +			// Returns all possible ports for a given terminal
    +			graph.getAllConnectionConstraints = function(terminal, source)
    +			{
    +				if (terminal != null && terminal.shape != null &&
    +					terminal.shape instanceof mxStencilShape)
    +				{
    +					// for stencils with existing constraints...
    +					if (terminal.shape.stencil != null)
    +					{
    +						return terminal.shape.stencil.constraints;
    +					}
    +				}
    +				else if (terminal != null && this.model.isVertex(terminal.cell))
    +				{
    +					if (terminal.shape != null)
    +					{
    +						var ports = terminal.shape.getPorts();
    +						var cstrs = new Array();
    +						
    +						for (var id in ports)
    +						{
    +							var port = ports[id];
    +							
    +							var cstr = new mxConnectionConstraint(new mxPoint(port.x, port.y), port.perimeter);
    +							cstr.id = id;
    +							cstrs.push(cstr);
    +						}
    +						
    +						return cstrs;
    +					}
    +				}
    +				
    +				return null;
    +			};
    +			
    +			// Sets the port for the given connection
    +			graph.setConnectionConstraint = function(edge, terminal, source, constraint)
    +			{
    +				if (constraint != null)
    +				{
    +					var key = (source) ? mxConstants.STYLE_SOURCE_PORT : mxConstants.STYLE_TARGET_PORT;
    +					
    +					if (constraint == null || constraint.id == null)
    +					{
    +						this.setCellStyles(key, null, [edge]);
    +					}
    +					else if (constraint.id != null)
    +					{
    +						this.setCellStyles(key, constraint.id, [edge]);
    +					}
    +				}
    +			};
    +			
    +			// Returns the port for the given connection
    +			graph.getConnectionConstraint = function(edge, terminal, source)
    +			{
    +				var key = (source) ? mxConstants.STYLE_SOURCE_PORT : mxConstants.STYLE_TARGET_PORT;
    +				var id = edge.style[key];
    +				
    +				if (id != null)
    +				{
    +					var c =  new mxConnectionConstraint(null, null);
    +					c.id = id;
    +					
    +					return c;
    +				}
    +				
    +				return null;
    +			};
    +
    +			// Returns the actual point for a port by redirecting the constraint to the port
    +			graphGetConnectionPoint = graph.getConnectionPoint;
    +			graph.getConnectionPoint = function(vertex, constraint)
    +			{
    +				if (constraint.id != null && vertex != null && vertex.shape != null)
    +				{
    +					var port = vertex.shape.getPorts()[constraint.id];
    +					
    +					if (port != null)
    +					{
    +						constraint = new mxConnectionConstraint(new mxPoint(port.x, port.y), port.perimeter);
    +					}
    +				}
    +				
    +				return graphGetConnectionPoint.apply(this, arguments);
    +			};
    +				
    +			// Adds cells to the model in a single step
    +			graph.getModel().beginUpdate();
    +			try
    +			{
    +				var v1 = graph.insertVertex(parent, null, 'A', 20, 20, 100, 40);
    +				var v2 = graph.insertVertex(parent, null, 'B', 80, 100, 100, 100,
    +						'shape=ellipse;perimeter=ellipsePerimeter');
    +				var v3 = graph.insertVertex(parent, null, 'C', 190, 30, 100, 60,
    +						'shape=triangle;perimeter=trianglePerimeter;direction=south');
    +				var e1 = graph.insertEdge(parent, null, '', v1, v2, 'sourcePort=s;targetPort=nw');
    +				var e2 = graph.insertEdge(parent, null, '', v1, v3, 'sourcePort=e;targetPort=out3');
    +			}
    +			finally
    +			{
    +				// Updates the display
    +				graph.getModel().endUpdate();
    +			}
    +			
    +			// Comming soon... Integration with orthogonal edge style
    +			// Sets default edge style to use port constraints (needs to be moved up when uncommented)
    +			//graph.getStylesheet().getDefaultEdgeStyle()['edgeStyle'] = 'orthogonalEdgeStyle';
    +			/*var mxUtilsGetPortConstraints = mxUtils.getPortConstraints;
    +			mxUtils.getPortConstraints = function(terminal, edge, source, defaultValue)
    +			{
    +				var key = (source) ? mxConstants.STYLE_SOURCE_PORT : mxConstants.STYLE_TARGET_PORT;
    +				var id = edge.style[key];
    +				
    +				var port = terminal.shape.getPorts()[id];
    +				
    +				// TODO: Add support for rotation, direction
    +				if (port != null)
    +				{
    +					return port.constraint;
    +				}
    +				
    +				return mxUtilsGetPortConstraints.apply(this, arguments);
    +			};
    +			// Connect preview
    +			graph.connectionHandler.createEdgeState = function(me)
    +			{
    +				var edge = graph.createEdge(null, null, null, null, null);
    +				
    +				return new mxCellState(this.graph.view, edge, this.graph.getCellStyle(edge));
    +			};
    +			*/
    +		};
    +	</script>
    +</head>
    +<body onload="main(document.getElementById('graphContainer'))">
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/ports.html b/javascript/examples/ports.html
    new file mode 100644
    index 000000000..3d3577d43
    --- /dev/null
    +++ b/javascript/examples/ports.html
    @@ -0,0 +1,633 @@
    +<!--
    +  $Id: ports.html,v 1.78 2012-01-08 10:28:37 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Ports example for mxGraph. This example demonstrates implementing
    +  ports as child vertices with relative positions and drag and drop
    +  as well as the use of images and HTML in cells.
    +-->
    +<html>
    +<head>
    +	<title>Ports example</title>
    +	<style type="text/css" media="screen">
    +		BODY {
    +			font-family: Arial;
    +		}
    +		H1 {
    +			font-size: 18px;
    +		}
    +		H2 {
    +			font-size: 16px;
    +		}
    +	</style>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container, outline, toolbar, sidebar, status)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Assigns some global constants for general behaviour, eg. minimum
    +				// size (in pixels) of the active region for triggering creation of
    +				// new connections, the portion (100%) of the cell area to be used
    +				// for triggering new connections, as well as some fading options for
    +				// windows and the rubberband selection.
    +				mxConstants.MIN_HOTSPOT_SIZE = 16;
    +				mxConstants.DEFAULT_HOTSPOT = 1;
    +				
    +				// Enables guides
    +				mxGraphHandler.prototype.guidesEnabled = true;
    +
    +			    // Alt disables guides
    +			    mxGuide.prototype.isEnabledForEvent = function(evt)
    +				{
    +					return !mxEvent.isAltDown(evt);
    +				};
    +
    +				// Enables snapping waypoints to terminals
    +				mxEdgeHandler.prototype.snapToTerminals = true;
    +
    +				// Workaround for Internet Explorer ignoring certain CSS directives
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +					new mxDivResizer(outline);
    +					new mxDivResizer(toolbar);
    +					new mxDivResizer(sidebar);
    +					new mxDivResizer(status);
    +				}
    +				
    +				// Creates a wrapper editor with a graph inside the given container.
    +				// The editor is used to create certain functionality for the
    +				// graph, such as the rubberband selection, but most parts
    +				// of the UI are custom in this example.
    +				var editor = new mxEditor();
    +				var graph = editor.graph;
    +				var model = graph.getModel();
    +
    +				// Disable highlight of cells when dragging from toolbar
    +				graph.setDropEnabled(false);
    +
    +				// Uses the port icon while connections are previewed
    +				graph.connectionHandler.getConnectImage = function(state)
    +				{
    +					return new mxImage(state.style[mxConstants.STYLE_IMAGE], 16, 16);
    +				};
    +
    +				// Centers the port icon on the target port
    +				graph.connectionHandler.targetConnectImage = true;
    +
    +				// Does not allow dangling edges
    +				graph.setAllowDanglingEdges(false);
    +
    +				// Sets the graph container and configures the editor
    +				editor.setGraphContainer(container);
    +				var config = mxUtils.load(
    +					'editors/config/keyhandler-commons.xml').
    +						getDocumentElement();
    +				editor.configure(config);
    +				
    +				// Defines the default group to be used for grouping. The
    +				// default group is a field in the mxEditor instance that
    +				// is supposed to be a cell which is cloned for new cells.
    +				// The groupBorderSize is used to define the spacing between
    +				// the children of a group and the group bounds.
    +				var group = new mxCell('Group', new mxGeometry(), 'group');
    +				group.setVertex(true);
    +				group.setConnectable(false);
    +				editor.defaultGroup = group;
    +				editor.groupBorderSize = 20;
    +
    +				// Disables drag-and-drop into non-swimlanes.
    +				graph.isValidDropTarget = function(cell, cells, evt)
    +				{
    +					return this.isSwimlane(cell);
    +				};
    +				
    +				// Disables drilling into non-swimlanes.
    +				graph.isValidRoot = function(cell)
    +				{
    +					return this.isValidDropTarget(cell);
    +				}
    +
    +				// Does not allow selection of locked cells
    +				graph.isCellSelectable = function(cell)
    +				{
    +					return !this.isCellLocked(cell);
    +				};
    +
    +				// Returns a shorter label if the cell is collapsed and no
    +				// label for expanded groups
    +				graph.getLabel = function(cell)
    +				{
    +					var tmp = mxGraph.prototype.getLabel.apply(this, arguments); // "supercall"
    +					
    +					if (this.isCellLocked(cell))
    +					{
    +						// Returns an empty label but makes sure an HTML
    +						// element is created for the label (for event
    +						// processing wrt the parent label)
    +						return '';
    +					}
    +					else if (this.isCellCollapsed(cell))
    +					{
    +						var index = tmp.indexOf('</h1>');
    +						
    +						if (index > 0)
    +						{
    +							tmp = tmp.substring(0, index+5);
    +						}
    +					}
    +					
    +					return tmp;
    +				}
    +
    +				// Disables HTML labels for swimlanes to avoid conflict
    +				// for the event processing on the child cells. HTML
    +				// labels consume events before underlying cells get the
    +				// chance to process those events.
    +				//
    +				// NOTE: Use of HTML labels is only recommended if the specific
    +				// features of such labels are required, such as special label
    +				// styles or interactive form fields. Otherwise non-HTML labels
    +				// should be used by not overidding the following function.
    +				// See also: configureStylesheet.
    +				graph.isHtmlLabel = function(cell)
    +				{
    +					return !this.isSwimlane(cell);
    +				}
    +
    +				// To disable the folding icon, use the following code:
    +				/*graph.isCellFoldable = function(cell)
    +				{
    +					return false;
    +				}*/
    +
    +				// Shows a "modal" window when double clicking a vertex.
    +				graph.dblClick = function(evt, cell)
    +				{
    +					// Do not fire a DOUBLE_CLICK event here as mxEditor will
    +					// consume the event and start the in-place editor.
    +					if (this.isEnabled() &&
    +						!mxEvent.isConsumed(evt) &&
    +						cell != null &&
    +						this.isCellEditable(cell))
    +					{
    +						if (this.model.isEdge(cell) ||
    +							!this.isHtmlLabel(cell))
    +						{
    +							this.startEditingAtCell(cell);
    +						}
    +						else
    +						{
    +							var content = document.createElement('div');
    +							content.innerHTML = this.convertValueToString(cell);
    +							showModalWindow(this, 'Properties', content, 400, 300);
    +						}
    +					}
    +
    +					// Disables any default behaviour for the double click
    +					mxEvent.consume(evt);
    +				};
    +
    +				// Enables new connections
    +				graph.setConnectable(true);
    +
    +				// Adds all required styles to the graph (see below)
    +				configureStylesheet(graph);
    +
    +				// Adds sidebar icons.
    +				//
    +				// NOTE: For non-HTML labels a simple string as the third argument
    +				// and the alternative style as shown in configureStylesheet should
    +				// be used. For example, the first call to addSidebar icon would
    +				// be as follows:
    +				// addSidebarIcon(graph, sidebar, 'Website', 'images/icons48/earth.png');
    +				addSidebarIcon(graph, sidebar,
    +					'<h1 style="margin:0px;">Website</h1><br>'+
    +					'<img src="images/icons48/earth.png" width="48" height="48">'+
    +					'<br>'+
    +					'<a href="http://www.jgraph.com" target="_blank">Browse</a>',
    +					'images/icons48/earth.png');
    +				addSidebarIcon(graph, sidebar,
    +					'<h1 style="margin:0px;">Process</h1><br>'+
    +					'<img src="images/icons48/gear.png" width="48" height="48">'+
    +					'<br><select><option>Value1</option><option>Value2</option></select><br>',
    +					'images/icons48/gear.png');
    +				addSidebarIcon(graph, sidebar,
    +					'<h1 style="margin:0px;">Keys</h1><br>'+
    +					'<img src="images/icons48/keys.png" width="48" height="48">'+
    +					'<br>'+
    +					'<button onclick="mxUtils.alert(\'generate\');">Generate</button>',
    +					'images/icons48/keys.png');
    +				addSidebarIcon(graph, sidebar,
    +					'<h1 style="margin:0px;">New Mail</h1><br>'+
    +					'<img src="images/icons48/mail_new.png" width="48" height="48">'+
    +					'<br><input type="checkbox"/>CC Archive',
    +					'images/icons48/mail_new.png');
    +				addSidebarIcon(graph, sidebar,
    +					'<h1 style="margin:0px;">Server</h1><br>'+
    +					'<img src="images/icons48/server.png" width="48" height="48">'+
    +					'<br>'+
    +					'<a href="http://www.mxgraph.blogspot.com" target="_blank">Ping</a>',
    +					'images/icons48/server.png');
    +
    +				// Displays useful hints in a small semi-transparent box.
    +				var hints = document.createElement('div');
    +				hints.style.position = 'absolute';
    +				hints.style.overflow = 'hidden';
    +				hints.style.width = '230px';
    +				hints.style.bottom = '56px';
    +				hints.style.height = '76px';
    +				hints.style.right = '20px';
    +				
    +				hints.style.background = 'black';
    +				hints.style.color = 'white';
    +				hints.style.fontFamily = 'Arial';
    +				hints.style.fontSize = '10px';
    +				hints.style.padding = '4px';
    +
    +				mxUtils.setOpacity(hints, 50);
    +				
    +				mxUtils.writeln(hints, '- Drag an image from the sidebar to the graph');
    +				mxUtils.writeln(hints, '- Doubleclick on a vertex or edge to edit');
    +				mxUtils.writeln(hints, '- Shift- or Rightclick and drag for panning');
    +				mxUtils.writeln(hints, '- Move the mouse over a cell to see a tooltip');
    +				mxUtils.writeln(hints, '- Click and drag a vertex to move and connect');
    +				document.body.appendChild(hints);
    +				
    +				// Creates a new DIV that is used as a toolbar and adds
    +				// toolbar buttons.
    +				var spacer = document.createElement('div');
    +				spacer.style.display = 'inline';
    +				spacer.style.padding = '8px';
    +				
    +				addToolbarButton(editor, toolbar, 'groupOrUngroup', '(Un)group', 'images/group.png');
    +				
    +				// Defines a new action for deleting or ungrouping
    +				editor.addAction('groupOrUngroup', function(editor, cell)
    +				{
    +					cell = cell || editor.graph.getSelectionCell();
    +					if (cell != null && editor.graph.isSwimlane(cell))
    +					{
    +						editor.execute('ungroup', cell);
    +					}
    +					else
    +					{
    +						editor.execute('group');
    +					}
    +				});
    +
    +				addToolbarButton(editor, toolbar, 'delete', 'Delete', 'images/delete2.png');
    +				
    +				toolbar.appendChild(spacer.cloneNode(true));
    +				
    +				addToolbarButton(editor, toolbar, 'cut', 'Cut', 'images/cut.png');
    +				addToolbarButton(editor, toolbar, 'copy', 'Copy', 'images/copy.png');
    +				addToolbarButton(editor, toolbar, 'paste', 'Paste', 'images/paste.png');
    +
    +				toolbar.appendChild(spacer.cloneNode(true));
    +				
    +				addToolbarButton(editor, toolbar, 'undo', '', 'images/undo.png');
    +				addToolbarButton(editor, toolbar, 'redo', '', 'images/redo.png');
    +				
    +				toolbar.appendChild(spacer.cloneNode(true));
    +				
    +				addToolbarButton(editor, toolbar, 'show', 'Show', 'images/camera.png');
    +				addToolbarButton(editor, toolbar, 'print', 'Print', 'images/printer.png');
    +				
    +				toolbar.appendChild(spacer.cloneNode(true));
    +
    +				// Defines a new export action
    +				editor.addAction('export', function(editor, cell)
    +				{
    +					var textarea = document.createElement('textarea');
    +					textarea.style.width = '400px';
    +					textarea.style.height = '400px';
    +					var enc = new mxCodec(mxUtils.createXmlDocument());
    +					var node = enc.encode(editor.graph.getModel());
    +					textarea.value = mxUtils.getPrettyXml(node);
    +					showModalWindow(graph, 'XML', textarea, 410, 440);
    +				});
    +
    +				addToolbarButton(editor, toolbar, 'export', 'Export', 'images/export1.png');
    +
    +				// ---
    +				
    +				// Adds toolbar buttons into the status bar at the bottom
    +				// of the window.
    +				addToolbarButton(editor, status, 'collapseAll', 'Collapse All', 'images/navigate_minus.png', true);
    +				addToolbarButton(editor, status, 'expandAll', 'Expand All', 'images/navigate_plus.png', true);
    +
    +				status.appendChild(spacer.cloneNode(true));
    +				
    +				addToolbarButton(editor, status, 'enterGroup', 'Enter', 'images/view_next.png', true);
    +				addToolbarButton(editor, status, 'exitGroup', 'Exit', 'images/view_previous.png', true);
    +
    +				status.appendChild(spacer.cloneNode(true));
    +
    +				addToolbarButton(editor, status, 'zoomIn', '', 'images/zoom_in.png', true);
    +				addToolbarButton(editor, status, 'zoomOut', '', 'images/zoom_out.png', true);
    +				addToolbarButton(editor, status, 'actualSize', '', 'images/view_1_1.png', true);
    +				addToolbarButton(editor, status, 'fit', '', 'images/fit_to_size.png', true);
    +				
    +				// Creates the outline (navigator, overview) for moving
    +				// around the graph in the top, right corner of the window.
    +				var outln = new mxOutline(graph, outline);
    +
    +				// To show the images in the outline, uncomment the following code
    +				//outln.outline.labelsVisible = true;
    +				//outln.outline.setHtmlLabels(true);
    +				
    +				// Fades-out the splash screen after the UI has been loaded.
    +				var splash = document.getElementById('splash');
    +				if (splash != null)
    +				{
    +					try
    +					{
    +						mxEvent.release(splash);
    +						mxEffects.fadeOut(splash, 100, true);
    +					}
    +					catch (e)
    +					{
    +					
    +						// mxUtils is not available (library not loaded)
    +						splash.parentNode.removeChild(splash);
    +					}
    +				}
    +			}
    +		};
    +		
    +		function addToolbarButton(editor, toolbar, action, label, image, isTransparent)
    +		{
    +			var button = document.createElement('button');
    +			button.style.fontSize = '10';
    +			if (image != null)
    +			{
    +				var img = document.createElement('img');
    +				img.setAttribute('src', image);
    +				img.style.width = '16px';
    +				img.style.height = '16px';
    +				img.style.verticalAlign = 'middle';
    +				img.style.marginRight = '2px';
    +				button.appendChild(img);
    +			}
    +			if (isTransparent)
    +			{
    +				button.style.background = 'transparent';
    +				button.style.color = '#FFFFFF';
    +				button.style.border = 'none';
    +			}
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				editor.execute(action);
    +			});
    +			mxUtils.write(button, label);
    +			toolbar.appendChild(button);
    +		};
    +
    +		function showModalWindow(graph, title, content, width, height)
    +		{
    +			var background = document.createElement('div');
    +			background.style.position = 'absolute';
    +			background.style.left = '0px';
    +			background.style.top = '0px';
    +			background.style.right = '0px';
    +			background.style.bottom = '0px';
    +			background.style.background = 'black';
    +			mxUtils.setOpacity(background, 50);
    +			document.body.appendChild(background);
    +			
    +			if (mxClient.IS_IE)
    +			{
    +				new mxDivResizer(background);
    +			}
    +			
    +			var x = Math.max(0, document.body.scrollWidth/2-width/2);
    +			var y = Math.max(10, (document.body.scrollHeight ||
    +						document.documentElement.scrollHeight)/2-height*2/3);
    +			var wnd = new mxWindow(title, content, x, y, width, height, false, true);
    +			wnd.setClosable(true);
    +			
    +			// Fades the background out after after the window has been closed
    +			wnd.addListener(mxEvent.DESTROY, function(evt)
    +			{
    +				graph.setEnabled(true);
    +				mxEffects.fadeOut(background, 50, true, 
    +					10, 30, true);
    +			});
    +
    +			graph.setEnabled(false);
    +			graph.tooltipHandler.hide();
    +			wnd.setVisible(true);
    +		};
    +		
    +		function addSidebarIcon(graph, sidebar, label, image)
    +		{
    +			// Function that is executed when the image is dropped on
    +			// the graph. The cell argument points to the cell under
    +			// the mousepointer if there is one.
    +			var funct = function(graph, evt, cell, x, y)
    +			{
    +				var parent = graph.getDefaultParent();
    +				var model = graph.getModel();
    +				
    +				var v1 = null;
    +				
    +				model.beginUpdate();
    +				try
    +				{
    +					// NOTE: For non-HTML labels the image must be displayed via the style
    +					// rather than the label markup, so use 'image=' + image for the style.
    +					// as follows: v1 = graph.insertVertex(parent, null, label,
    +					// pt.x, pt.y, 120, 120, 'image=' + image);
    +					v1 = graph.insertVertex(parent, null, label, x, y, 120, 120);
    +					v1.setConnectable(false);
    +					
    +					// Presets the collapsed size
    +					v1.geometry.alternateBounds = new mxRectangle(0, 0, 120, 40);
    +										
    +					// Adds the ports at various relative locations
    +					var port = graph.insertVertex(v1, null, 'Trigger', 0, 0.25, 16, 16,
    +							'port;image=editors/images/overlays/flash.png;align=right;imageAlign=right;spacingRight=18', true);
    +					port.geometry.offset = new mxPoint(-6, -8);
    +		
    +					var port = graph.insertVertex(v1, null, 'Input', 0, 0.75, 16, 16,
    +							'port;image=editors/images/overlays/check.png;align=right;imageAlign=right;spacingRight=18', true);
    +					port.geometry.offset = new mxPoint(-6, -4);
    +					
    +					var port = graph.insertVertex(v1, null, 'Error', 1, 0.25, 16, 16,
    +							'port;image=editors/images/overlays/error.png;spacingLeft=18', true);
    +					port.geometry.offset = new mxPoint(-8, -8);
    +
    +					var port = graph.insertVertex(v1, null, 'Result', 1, 0.75, 16, 16,
    +							'port;image=editors/images/overlays/information.png;spacingLeft=18', true);
    +					port.geometry.offset = new mxPoint(-8, -4);
    +				}
    +				finally
    +				{
    +					model.endUpdate();
    +				}
    +				
    +				graph.setSelectionCell(v1);
    +			}
    +			
    +			// Creates the image which is used as the sidebar icon (drag source)
    +			var img = document.createElement('img');
    +			img.setAttribute('src', image);
    +			img.style.width = '48px';
    +			img.style.height = '48px';
    +			img.title = 'Drag this to the diagram to create a new vertex';
    +			sidebar.appendChild(img);
    +			
    +			var dragElt = document.createElement('div');
    +			dragElt.style.border = 'dashed black 1px';
    +			dragElt.style.width = '120px';
    +			dragElt.style.height = '120px';
    +			  					
    +			// Creates the image which is used as the drag icon (preview)
    +			var ds = mxUtils.makeDraggable(img, graph, funct, dragElt, 0, 0, true, true);
    +			ds.setGuidesEnabled(true);
    +		};
    +		
    +		function configureStylesheet(graph)
    +		{
    +			var style = new Object();
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +			style[mxConstants.STYLE_GRADIENTCOLOR] = '#41B9F5';
    +			style[mxConstants.STYLE_FILLCOLOR] = '#8CCDF5';
    +			style[mxConstants.STYLE_STROKECOLOR] = '#1B78C8';
    +			style[mxConstants.STYLE_FONTCOLOR] = '#000000';
    +			style[mxConstants.STYLE_ROUNDED] = true;
    +			style[mxConstants.STYLE_OPACITY] = '80';
    +			style[mxConstants.STYLE_FONTSIZE] = '12';
    +			style[mxConstants.STYLE_FONTSTYLE] = 0;
    +			style[mxConstants.STYLE_IMAGE_WIDTH] = '48';
    +			style[mxConstants.STYLE_IMAGE_HEIGHT] = '48';
    +			graph.getStylesheet().putDefaultVertexStyle(style);
    +
    +			// NOTE: Alternative vertex style for non-HTML labels should be as
    +			// follows. This repaces the above style for HTML labels.
    +			/*var style = new Object();
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_LABEL;
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_TOP;
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_IMAGE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_IMAGE_VERTICAL_ALIGN] = mxConstants.ALIGN_TOP;
    +			style[mxConstants.STYLE_SPACING_TOP] = '56';
    +			style[mxConstants.STYLE_GRADIENTCOLOR] = '#7d85df';
    +			style[mxConstants.STYLE_STROKECOLOR] = '#5d65df';
    +			style[mxConstants.STYLE_FILLCOLOR] = '#adc5ff';
    +			style[mxConstants.STYLE_FONTCOLOR] = '#1d258f';
    +			style[mxConstants.STYLE_FONTFAMILY] = 'Verdana';
    +			style[mxConstants.STYLE_FONTSIZE] = '12';
    +			style[mxConstants.STYLE_FONTSTYLE] = '1';
    +			style[mxConstants.STYLE_ROUNDED] = '1';
    +			style[mxConstants.STYLE_IMAGE_WIDTH] = '48';
    +			style[mxConstants.STYLE_IMAGE_HEIGHT] = '48';
    +			style[mxConstants.STYLE_OPACITY] = '80';
    +			graph.getStylesheet().putDefaultVertexStyle(style);*/
    +
    +			style = new Object();
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_SWIMLANE;
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_TOP;
    +			style[mxConstants.STYLE_FILLCOLOR] = '#FF9103';
    +			style[mxConstants.STYLE_GRADIENTCOLOR] = '#F8C48B';
    +			style[mxConstants.STYLE_STROKECOLOR] = '#E86A00';
    +			style[mxConstants.STYLE_FONTCOLOR] = '#000000';
    +			style[mxConstants.STYLE_ROUNDED] = true;
    +			style[mxConstants.STYLE_OPACITY] = '80';
    +			style[mxConstants.STYLE_STARTSIZE] = '30';
    +			style[mxConstants.STYLE_FONTSIZE] = '16';
    +			style[mxConstants.STYLE_FONTSTYLE] = 1;
    +			graph.getStylesheet().putCellStyle('group', style);
    +			
    +			style = new Object();
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_IMAGE;
    +			style[mxConstants.STYLE_FONTCOLOR] = '#774400';
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +			style[mxConstants.STYLE_PERIMETER_SPACING] = '6';
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_LEFT;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +			style[mxConstants.STYLE_FONTSIZE] = '10';
    +			style[mxConstants.STYLE_FONTSTYLE] = 2;
    +			style[mxConstants.STYLE_IMAGE_WIDTH] = '16';
    +			style[mxConstants.STYLE_IMAGE_HEIGHT] = '16';
    +			graph.getStylesheet().putCellStyle('port', style);
    +			
    +			style = graph.getStylesheet().getDefaultEdgeStyle();
    +			style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR] = '#FFFFFF';
    +			style[mxConstants.STYLE_STROKEWIDTH] = '2';
    +			style[mxConstants.STYLE_ROUNDED] = true;
    +			style[mxConstants.STYLE_EDGE] = mxEdgeStyle.EntityRelation;
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'),
    +			document.getElementById('outlineContainer'),
    +		 	document.getElementById('toolbarContainer'),
    +			document.getElementById('sidebarContainer'),
    +			document.getElementById('statusContainer'));">
    +	
    +	<!-- Creates a container for the splash screen -->
    +	<div id="splash"
    +		style="position:absolute;top:0px;left:0px;width:100%;height:100%;background:white;z-index:1;">
    +		<center id="splash" style="padding-top:230px;">
    +			<img src="editors/images/loading.gif">
    +		</center>
    +	</div>
    +	
    +	<!-- Creates a container for the sidebar -->
    +	<div id="toolbarContainer"
    +		style="position:absolute;white-space:nowrap;overflow:hidden;top:0px;left:0px;max-height:24px;height:36px;right:0px;padding:6px;background-image:url('images/toolbar_bg.gif');">
    +	</div>
    +
    +	<!-- Creates a container for the toolboox -->
    +	<div id="sidebarContainer"
    +		style="position:absolute;overflow:hidden;top:36px;left:0px;bottom:36px;max-width:52px;width:56px;padding-top:10px;padding-left:4px;background-image:url('images/sidebar_bg.gif');">
    +	</div>
    +
    +	<!-- Creates a container for the graph -->
    +	<div id="graphContainer"
    +		style="position:absolute;overflow:hidden;top:36px;left:60px;bottom:36px;right:0px;background-image:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +
    +	<!-- Creates a container for the outline -->
    +	<div id="outlineContainer"
    +		style="position:absolute;overflow:hidden;top:36px;right:0px;width:200px;height:140px;background:transparent;border-style:solid;border-color:black;">
    +	</div>
    +		
    +	<!-- Creates a container for the sidebar -->
    +	<div id="statusContainer"
    +		style="text-align:right;position:absolute;overflow:hidden;bottom:0px;left:0px;max-height:24px;height:36px;right:0px;color:white;padding:6px;background-image:url('images/toolbar_bg.gif');">
    +		<div style="font-size:10pt;float:left;">
    +			Created with <a href="http://www.jgraph.com" target="_blank">mxGraph</a>
    +		</div>
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/schema.html b/javascript/examples/schema.html
    new file mode 100644
    index 000000000..ac48caaf2
    --- /dev/null
    +++ b/javascript/examples/schema.html
    @@ -0,0 +1,1132 @@
    +<!--
    +  $Id: schema.html,v 1.62 2012-02-05 12:09:54 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Schema example for mxGraph. This example demonstrates implementing
    +  a SQL schema editor.
    +-->
    +<html>
    +<head>
    +	<title>Schema example</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container, outline, toolbar, sidebar, status)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Specifies shadow opacity, color and offset
    +				mxConstants.SHADOW_OPACITY = 0.5;
    +				mxConstants.SHADOWCOLOR = '#C0C0C0';
    +				mxConstants.SHADOW_OFFSET_X = 5;
    +				mxConstants.SHADOW_OFFSET_Y = 6;
    +				
    +				// Table icon dimensions and position
    +				mxSwimlane.prototype.imageSize = 20;
    +				mxSwimlane.prototype.imageDx = 16;
    +				mxSwimlane.prototype.imageDy = 4;
    +				
    +				// Implements white content area for swimlane in SVG
    +				mxSwimlaneCreateSvg = mxSwimlane.prototype.createSvg;
    +				mxSwimlane.prototype.createSvg = function()
    +				{
    +					var node = mxSwimlaneCreateSvg.apply(this, arguments);
    +					
    +					this.content.setAttribute('fill', '#FFFFFF');
    +					
    +					return node;
    +				};
    +				
    +				// Implements full-height shadow for SVG
    +				mxSwimlaneReconfigure = mxSwimlane.prototype.reconfigure;
    +				mxSwimlane.prototype.reconfigure = function(node)
    +				{
    +					mxSwimlaneReconfigure.apply(this, arguments);
    +					
    +					if (this.dialect == mxConstants.DIALECT_SVG && this.shadowNode != null)
    +					{
    +						this.shadowNode.setAttribute('height', this.bounds.height);
    +					}
    +				};
    +				
    +				// Implements table icon position and full-height shadow for SVG repaints
    +				mxSwimlaneRedrawSvg = mxSwimlane.prototype.redrawSvg;
    +				mxSwimlane.prototype.redrawSvg = function()
    +				{
    +					mxSwimlaneRedrawSvg.apply(this, arguments);
    +					
    +					// Full-height shadow
    +					if (this.dialect == mxConstants.DIALECT_SVG && this.shadowNode != null)
    +					{
    +						this.shadowNode.setAttribute('height', this.bounds.height);
    +					}
    +					
    +					// Positions table icon
    +					if (this.imageNode != null)
    +					{
    +						this.imageNode.setAttribute('x', this.bounds.x + this.imageDx * this.scale);
    +						this.imageNode.setAttribute('y', this.bounds.y + this.imageDy * this.scale);
    +					}
    +				};
    +
    +				// Implements table icon position for swimlane in VML
    +				mxSwimlaneRedrawVml = mxSwimlane.prototype.redrawVml;
    +				mxSwimlane.prototype.redrawVml = function()
    +				{
    +					mxSwimlaneRedrawVml.apply(this, arguments);
    +					
    +					// Positions table icon
    +					if (this.imageNode != null)
    +					{
    +						this.imageNode.style.left = Math.floor(this.imageDx * this.scale) + 'px';
    +						this.imageNode.style.top = Math.floor(this.imageDy * this.scale) + 'px';
    +					}
    +				};
    +
    +				// Replaces the built-in shadow with a custom shadow and adds
    +				// white content area for swimlane in VML
    +				mxSwimlaneCreateVml = mxSwimlane.prototype.createVml;
    +				mxSwimlane.prototype.createVml = function()
    +				{
    +					this.isShadow = false;
    +					var node = mxSwimlaneCreateVml.apply(this, arguments);
    +					this.shadowNode = document.createElement('v:rect');
    +					
    +					// Position and size of shadow are static
    +					this.shadowNode.style.left = mxConstants.SHADOW_OFFSET_X + 'px';
    +					this.shadowNode.style.top = mxConstants.SHADOW_OFFSET_Y + 'px';
    +					this.shadowNode.style.width = '100%'
    +					this.shadowNode.style.height = '100%'
    +
    +					// Color for shadow fill
    +					var fillNode = document.createElement('v:fill');
    +					this.updateVmlFill(fillNode, mxConstants.SHADOWCOLOR, null, null, mxConstants.SHADOW_OPACITY * 100);
    +					this.shadowNode.appendChild(fillNode);
    +					
    +					// Color and weight of shadow stroke
    +					this.shadowNode.setAttribute('strokecolor', mxConstants.SHADOWCOLOR);
    +					this.shadowNode.setAttribute('strokeweight', (this.strokewidth * this.scale) + 'px');
    +					
    +					// Opacity of stroke
    +					var strokeNode = document.createElement('v:stroke');
    +					strokeNode.setAttribute('opacity', (mxConstants.SHADOW_OPACITY * 100) + '%');
    +					this.shadowNode.appendChild(strokeNode);
    +					
    +					node.insertBefore(this.shadowNode, node.firstChild);
    +
    +					// White content area of swimlane
    +					this.content.setAttribute('fillcolor', 'white');
    +					this.content.setAttribute('filled', 'true');
    +					
    +					// Sets opacity on content area fill
    +					if (this.opacity != null)
    +					{
    +						var contentFillNode = document.createElement('v:fill');
    +						contentFillNode.setAttribute('opacity', this.opacity + '%');
    +						this.content.appendChild(contentFillNode);
    +					}
    +					
    +					return node;
    +				};
    +				
    +				// Defines an icon for creating new connections in the connection handler.
    +				// This will automatically disable the highlighting of the source vertex.
    +				mxConnectionHandler.prototype.connectImage = new mxImage('images/connector.gif', 16, 16);
    +
    +				// Prefetches all images that appear in colums
    +				// to avoid problems with the auto-layout
    +				var keyImage = new Image();
    +				keyImage.src = "images/key.png";
    +
    +				var plusImage = new Image();
    +				plusImage.src = "images/plus.png";
    +
    +				var checkImage = new Image();
    +				checkImage.src = "images/check.png";
    +				
    +				// Workaround for Internet Explorer ignoring certain CSS directives
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +					new mxDivResizer(outline);
    +					new mxDivResizer(toolbar);
    +					new mxDivResizer(sidebar);
    +					new mxDivResizer(status);
    +				}
    +				
    +				// Creates the graph inside the given container. The
    +				// editor is used to create certain functionality for the
    +				// graph, such as the rubberband selection, but most parts
    +				// of the UI are custom in this example.
    +				var editor = new mxEditor();
    +				var graph = editor.graph;
    +				var model = graph.model;
    +				
    +				// Disables some global features
    +				graph.setConnectable(true);
    +				graph.setCellsDisconnectable(false);
    +				graph.setCellsCloneable(false);
    +				graph.swimlaneNesting = false;
    +				graph.dropEnabled = true;
    +
    +				// Does not allow dangling edges
    +				graph.setAllowDanglingEdges(false);
    +				
    +				// Forces use of default edge in mxConnectionHandler
    +				graph.connectionHandler.factoryMethod = null;
    +
    +				// Only tables are resizable
    +				graph.isCellResizable = function(cell)
    +				{
    +					return this.isSwimlane(cell);
    +				};
    +				
    +				// Only tables are movable
    +				graph.isCellMovable = function(cell)
    +				{
    +					return this.isSwimlane(cell);
    +				};
    +
    +				// Sets the graph container and configures the editor
    +				editor.setGraphContainer(container);
    +				var config = mxUtils.load(
    +					'editors/config/keyhandler-minimal.xml').
    +						getDocumentElement();
    +				editor.configure(config);
    +
    +				// Configures the automatic layout for the table columns
    +				editor.layoutSwimlanes = true;
    +				editor.createSwimlaneLayout = function ()
    +				{
    +					var layout = new mxStackLayout(this.graph, false);
    +					layout.fill = true;
    +					layout.resizeParent = true;
    +					
    +					// Overrides the function to always return true
    +					layout.isVertexMovable = function(cell)
    +					{
    +						return true;
    +					};
    +					
    +					return layout;
    +				};
    +				
    +				// Text label changes will go into the name field of the user object
    +				graph.model.valueForCellChanged = function(cell, value)
    +				{
    +					if (value.name != null)
    +					{
    +						return mxGraphModel.prototype.valueForCellChanged.apply(this, arguments);
    +					}
    +					else
    +					{
    +						var old = cell.value.name;
    +						cell.value.name = value;
    +						return old;
    +					}
    +				};
    +				
    +				// Columns are dynamically created HTML labels
    +				graph.isHtmlLabel = function(cell)
    +				{
    +					return !this.isSwimlane(cell) &&
    +						!this.model.isEdge(cell);
    +				};
    +				
    +				// Edges are not editable
    +				graph.isCellEditable = function(cell)
    +				{
    +					return !this.model.isEdge(cell);
    +				};
    +				
    +				// Returns the name field of the user object for the label
    +				graph.convertValueToString = function(cell)
    +				{
    +					if (cell.value != null && cell.value.name != null)
    +					{
    +						return cell.value.name;
    +					}
    +
    +					return mxGraph.prototype.convertValueToString.apply(this, arguments); // "supercall"
    +				};
    +				
    +				// Returns the type as the tooltip for column cells
    +				graph.getTooltip = function(state)
    +				{
    +					if (this.isHtmlLabel(state.cell))
    +					{
    +						return 'Type: '+state.cell.value.type;
    +					}
    +					else if (this.model.isEdge(state.cell))
    +					{
    +						var source = this.model.getTerminal(state.cell, true);
    +						var parent = this.model.getParent(source);
    +						
    +						return parent.value.name+'.'+source.value.name;
    +					}
    +					
    +					return mxGraph.prototype.getTooltip.apply(this, arguments); // "supercall"
    +				};
    +				
    +				// Creates a dynamic HTML label for column fields
    +				graph.getLabel = function(cell)
    +				{
    +					if (this.isHtmlLabel(cell))
    +					{
    +						var label = '';
    +						
    +						if (cell.value.primaryKey)
    +						{
    +							label += '<img title="Primary Key" src="images/key.png" width="16" height="16" align="top">&nbsp;';
    +						}
    +						else
    +						{
    +							label += '<img src="images/spacer.gif" width="16" height="1">&nbsp;';
    +						}
    +												
    +						if (cell.value.autoIncrement)
    +						{
    +							label += '<img title="Auto Increment" src="images/plus.png" width="16" height="16" align="top">&nbsp;';
    +						}
    +						else if (cell.value.unique)
    +						{
    +							label += '<img title="Unique" src="images/check.png" width="16" height="16" align="top">&nbsp;';
    +						}
    +						else
    +						{
    +							label += '<img src="images/spacer.gif" width="16" height="1">&nbsp;';
    +						}
    +
    +						return label + mxUtils.htmlEntities(cell.value.name, false) + ': ' +
    +							mxUtils.htmlEntities(cell.value.type, false);
    +					}
    +					
    +					return mxGraph.prototype.getLabel.apply(this, arguments); // "supercall"
    +				};
    +				
    +				// Removes the source vertex if edges are removed
    +				graph.addListener(mxEvent.REMOVE_CELLS, function(sender, evt)
    +				{
    +					var cells = evt.getProperty('cells');
    +					
    +					for (var i = 0; i < cells.length; i++)
    +					{
    +						var cell = cells[i];
    +						
    +						if (this.model.isEdge(cell))
    +						{
    +							var terminal = this.model.getTerminal(cell, true);
    +							var parent = this.model.getParent(terminal);
    +							this.model.remove(terminal);
    +						}
    +					}
    +				});
    +
    +				// Disables drag-and-drop into non-swimlanes.
    +				graph.isValidDropTarget = function(cell, cells, evt)
    +				{
    +					return this.isSwimlane(cell);
    +				};
    +
    +				// Installs a popupmenu handler using local function (see below).
    +				graph.panningHandler.factoryMethod = function(menu, cell, evt)
    +				{
    +					createPopupMenu(editor, graph, menu, cell, evt);
    +				};
    +
    +				// Adds all required styles to the graph (see below)
    +				configureStylesheet(graph);
    +
    +				// Adds sidebar icon for the table object
    +				var tableObject = new Table('TABLENAME');
    +				var table = new mxCell(tableObject, new mxGeometry(0, 0, 200, 28), 'table');
    +				
    +				table.setVertex(true);
    +				addSidebarIcon(graph, sidebar, 	table, 'images/icons48/table.png');
    +				
    +				// Adds sidebar icon for the column object
    +				var columnObject = new Column('COLUMNNAME');
    +				var column = new mxCell(columnObject, new mxGeometry(0, 0, 0, 26));
    +				
    +				column.setVertex(true);
    +				column.setConnectable(false);
    +
    +				addSidebarIcon(graph, sidebar, 	column, 'images/icons48/column.png');
    +				
    +				// Adds primary key field into table
    +				var firstColumn = column.clone();
    +				
    +				firstColumn.value.name = 'TABLENAME_ID';
    +				firstColumn.value.type = 'INTEGER';
    +				firstColumn.value.primaryKey = true;
    +				firstColumn.value.autoIncrement = true;
    +				
    +				table.insert(firstColumn);
    +
    +				// Adds child columns for new connections between tables
    +				graph.addEdge = function(edge, parent, source, target, index)
    +				{
    +					// Finds the primary key child of the target table
    +					var primaryKey = null;
    +					var childCount = this.model.getChildCount(target);
    +					
    +					for (var i=0; i < childCount; i++)
    +					{
    +						var child = this.model.getChildAt(target, i);
    +						
    +						if (child.value.primaryKey)
    +						{
    +							primaryKey = child;
    +							break;
    +						}
    +					}
    +					
    +					if (primaryKey == null)
    +					{
    +						mxUtils.alert('Target table must have a primary key');
    +						return;
    +					}
    +				
    +					this.model.beginUpdate();
    +					try
    +					{
    +						var col1 = this.model.cloneCell(column);
    +						col1.value.name = primaryKey.value.name;
    +						col1.value.type = primaryKey.value.type;
    +					
    +						this.addCell(col1, source);
    +						source = col1;				
    +						target = primaryKey;
    +						
    +						return mxGraph.prototype.addEdge.apply(this, arguments); // "supercall"
    +					}
    +					finally
    +					{
    +						this.model.endUpdate();
    +					}
    +					
    +					return null;
    +				};
    +
    +				// Displays useful hints in a small semi-transparent box.
    +				var hints = document.createElement('div');
    +				hints.style.position = 'absolute';
    +				hints.style.overflow = 'hidden';
    +				hints.style.width = '230px';
    +				hints.style.bottom = '56px';
    +				hints.style.height = '86px';
    +				hints.style.right = '20px';
    +				
    +				hints.style.background = 'black';
    +				hints.style.color = 'white';
    +				hints.style.fontFamily = 'Arial';
    +				hints.style.fontSize = '10px';
    +				hints.style.padding = '4px';
    +
    +				mxUtils.setOpacity(hints, 50);
    +				
    +				mxUtils.writeln(hints, '- Drag an image from the sidebar to the graph');
    +				mxUtils.writeln(hints, '- Doubleclick on a table or column to edit');
    +				mxUtils.writeln(hints, '- Shift- or Rightclick and drag for panning');
    +				mxUtils.writeln(hints, '- Move the mouse over a cell to see a tooltip');
    +				mxUtils.writeln(hints, '- Click and drag a table to move and connect');
    +				mxUtils.writeln(hints, '- Shift- or Rightclick to show a popup menu');
    +				document.body.appendChild(hints);
    +				
    +				// Creates a new DIV that is used as a toolbar and adds
    +				// toolbar buttons.
    +				var spacer = document.createElement('div');
    +				spacer.style.display = 'inline';
    +				spacer.style.padding = '8px';
    +
    +				addToolbarButton(editor, toolbar, 'properties', 'Properties', 'editors/images/properties.gif');
    +
    +				// Defines a new export action
    +				editor.addAction('properties', function(editor, cell)
    +				{
    +					if (cell == null)
    +					{
    +						cell = graph.getSelectionCell();
    +					}
    +					
    +					if (graph.isHtmlLabel(cell))
    +					{
    +						showProperties(graph, cell);
    +					}
    +				});
    +
    +				addToolbarButton(editor, toolbar, 'delete', 'Delete', 'images/delete2.png');
    +
    +				toolbar.appendChild(spacer.cloneNode(true));
    +				
    +				addToolbarButton(editor, toolbar, 'undo', '', 'images/undo.png');
    +				addToolbarButton(editor, toolbar, 'redo', '', 'images/redo.png');
    +				
    +				toolbar.appendChild(spacer.cloneNode(true));
    +				
    +				addToolbarButton(editor, toolbar, 'show', 'Show', 'images/camera.png');
    +				addToolbarButton(editor, toolbar, 'print', 'Print', 'images/printer.png');
    +				
    +				toolbar.appendChild(spacer.cloneNode(true));
    +
    +				// Defines a create SQK action
    +				editor.addAction('showSql', function(editor, cell)
    +				{
    +					var sql = createSql(graph);
    +					
    +					if (sql.length > 0)
    +					{
    +						var textarea = document.createElement('textarea');
    +						textarea.style.width = '400px';
    +						textarea.style.height = '400px';
    +						
    +						textarea.value = sql;
    +						showModalWindow('SQL', textarea, 410, 440);
    +					}
    +					else
    +					{
    +						mxUtils.alert('Schema is empty');
    +					}
    +				});
    +
    +				// Defines a new export action
    +				editor.addAction('createGears', function(editor, cell)
    +				{
    +					var sql = createSql(graph);
    +					
    +					if (sql.length > 0)
    +					{
    +						loadGoogleGears();
    +	
    +						try
    +						{					
    +							var db = google.gears.factory.create('beta.database', '1.0');
    +							var name = mxUtils.prompt('Enter name of new database', 'MyDatabase');
    +							
    +							if (name != null)
    +							{						
    +								db.open(name);
    +		
    +								// Checks if database is empty
    +								var rs = db.execute('SELECT * FROM sqlite_master');
    +								
    +								if (rs.isValidRow())
    +								{
    +									if (mxUtils.confirm(name+' exists. Do you want to continue? This will replace existing tables.') == 0)
    +									{
    +										return;
    +									}
    +								}
    +	
    +								try
    +								{
    +									db.execute(sql);
    +									mxUtils.alert(name+' successfully created');
    +								}
    +								catch (e)
    +								{
    +									mxUtils.alert('SQL Error: '+e.message);
    +								}
    +							}
    +						}
    +						catch (e)
    +						{
    +							mxUtils.alert('Google Gears is not available: '+e.message);
    +						}
    +					}
    +					else
    +					{
    +						mxUtils.alert('Schema is empty');
    +					}
    +				});
    +
    +				addToolbarButton(editor, toolbar, 'showSql', 'Show SQL', 'images/export1.png');
    +				addToolbarButton(editor, toolbar, 'createGears', 'Create in Google Gears', 'images/export1.png');
    +
    +				toolbar.appendChild(spacer.cloneNode(true));
    +
    +				// Defines export XML action
    +				editor.addAction('export', function(editor, cell)
    +				{
    +					var textarea = document.createElement('textarea');
    +					textarea.style.width = '400px';
    +					textarea.style.height = '400px';
    +					var enc = new mxCodec(mxUtils.createXmlDocument());
    +					var node = enc.encode(editor.graph.getModel());
    +					textarea.value = mxUtils.getPrettyXml(node);
    +					showModalWindow('XML', textarea, 410, 440);
    +				});
    +
    +				addToolbarButton(editor, toolbar, 'export', 'Export XML', 'images/export1.png');
    +				
    +				// Adds toolbar buttons into the status bar at the bottom
    +				// of the window.
    +				addToolbarButton(editor, status, 'collapseAll', 'Collapse All', 'images/navigate_minus.png', true);
    +				addToolbarButton(editor, status, 'expandAll', 'Expand All', 'images/navigate_plus.png', true);
    +
    +				status.appendChild(spacer.cloneNode(true));
    +
    +				addToolbarButton(editor, status, 'zoomIn', '', 'images/zoom_in.png', true);
    +				addToolbarButton(editor, status, 'zoomOut', '', 'images/zoom_out.png', true);
    +				addToolbarButton(editor, status, 'actualSize', '', 'images/view_1_1.png', true);
    +				addToolbarButton(editor, status, 'fit', '', 'images/fit_to_size.png', true);
    +				
    +				// Creates the outline (navigator, overview) for moving
    +				// around the graph in the top, right corner of the window.
    +				var outln = new mxOutline(graph, outline);
    +				
    +				// Fades-out the splash screen after the UI has been loaded.
    +				var splash = document.getElementById('splash');
    +				if (splash != null)
    +				{
    +					try
    +					{
    +						mxEvent.release(splash);
    +						mxEffects.fadeOut(splash, 100, true);
    +					}
    +					catch (e)
    +					{
    +					
    +						// mxUtils is not available (library not loaded)
    +						splash.parentNode.removeChild(splash);
    +					}
    +				}
    +			}
    +		}
    +		
    +		function addToolbarButton(editor, toolbar, action, label, image, isTransparent)
    +		{
    +			var button = document.createElement('button');
    +			button.style.fontSize = '10';
    +			if (image != null)
    +			{
    +				var img = document.createElement('img');
    +				img.setAttribute('src', image);
    +				img.style.width = '16px';
    +				img.style.height = '16px';
    +				img.style.verticalAlign = 'middle';
    +				img.style.marginRight = '2px';
    +				button.appendChild(img);
    +			}
    +			if (isTransparent)
    +			{
    +				button.style.background = 'transparent';
    +				button.style.color = '#FFFFFF';
    +				button.style.border = 'none';
    +			}
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				editor.execute(action);
    +			});
    +			mxUtils.write(button, label);
    +			toolbar.appendChild(button);
    +		};
    +
    +		function showModalWindow(title, content, width, height)
    +		{
    +			var background = document.createElement('div');
    +			background.style.position = 'absolute';
    +			background.style.left = '0px';
    +			background.style.top = '0px';
    +			background.style.right = '0px';
    +			background.style.bottom = '0px';
    +			background.style.background = 'black';
    +			mxUtils.setOpacity(background, 50);
    +			document.body.appendChild(background);
    +			
    +			if (mxClient.IS_IE)
    +			{
    +				new mxDivResizer(background);
    +			}
    +			
    +			var x = Math.max(0, document.body.scrollWidth/2-width/2);
    +			var y = Math.max(10, (document.body.scrollHeight ||
    +						document.documentElement.scrollHeight)/2-height*2/3);
    +			var wnd = new mxWindow(title, content, x, y, width, height, false, true);
    +			wnd.setClosable(true);
    +						
    +			// Fades the background out after after the window has been closed
    +			wnd.addListener(mxEvent.DESTROY, function(evt)
    +			{
    +				mxEffects.fadeOut(background, 50, true, 
    +					10, 30, true);
    +			});
    +
    +			wnd.setVisible(true);
    +			
    +			return wnd;
    +		};
    +		
    +		function addSidebarIcon(graph, sidebar, prototype, image)
    +		{
    +			// Function that is executed when the image is dropped on
    +			// the graph. The cell argument points to the cell under
    +			// the mousepointer if there is one.
    +			var funct = function(graph, evt, cell)
    +			{
    +				graph.stopEditing(false);
    +
    +				var pt = graph.getPointForEvent(evt);
    +				
    +				var parent = graph.getDefaultParent();
    +				var model = graph.getModel();
    +				
    +				var isTable = graph.isSwimlane(prototype);
    +				var name = null;				
    +
    +				if (!isTable)
    +				{
    +					var offset = mxUtils.getOffset(graph.container);
    +
    +					parent = graph.getSwimlaneAt(evt.clientX-offset.x, evt.clientY-offset.y);
    +					var pstate = graph.getView().getState(parent);
    +					
    +					if (parent == null ||
    +						pstate == null)
    +					{
    +						mxUtils.alert('Drop target must be a table');
    +						return;
    +					}
    +					
    +					pt.x -= pstate.x;
    +					pt.y -= pstate.y;
    +
    +					var columnCount = graph.model.getChildCount(parent)+1;
    +					name = mxUtils.prompt('Enter name for new column', 'COLUMN'+columnCount);
    +				}
    +				else
    +				{
    +					var tableCount = 0;
    +					var childCount = graph.model.getChildCount(parent);
    +					
    +					for (var i=0; i<childCount; i++)
    +					{
    +						if (!graph.model.isEdge(graph.model.getChildAt(parent, i)))
    +						{
    +							tableCount++;
    +						}
    +					}
    +					
    +					graph.model.getChildCount(parent)+1;
    +					var name = mxUtils.prompt('Enter name for new table', 'TABLE'+(tableCount+1));
    +				}
    +				
    +				if (name != null)
    +				{
    +					var v1 = model.cloneCell(prototype);
    +					
    +					model.beginUpdate();
    +					try
    +					{
    +						v1.value.name = name;
    +						v1.geometry.x = pt.x;
    +						v1.geometry.y = pt.y;
    +						
    +						graph.addCell(v1, parent);
    +						
    +						if (isTable)
    +						{
    +							v1.geometry.alternateBounds = new mxRectangle(0, 0, v1.geometry.width, v1.geometry.height);
    +							v1.children[0].value.name = name + '_ID';
    +						}
    +					}
    +					finally
    +					{
    +						model.endUpdate();
    +					}
    +					
    +					graph.setSelectionCell(v1);
    +				}
    +			}
    +			
    +			// Creates the image which is used as the sidebar icon (drag source)
    +			var img = document.createElement('img');
    +			img.setAttribute('src', image);
    +			img.style.width = '48px';
    +			img.style.height = '48px';
    +			img.title = 'Drag this to the diagram to create a new vertex';
    +			sidebar.appendChild(img);
    +			  					
    +			// Creates the image which is used as the drag icon (preview)
    +			var dragImage = img.cloneNode(true);
    +			var ds = mxUtils.makeDraggable(img, graph, funct, dragImage);
    +
    +			// Adds highlight of target tables for columns
    +			ds.highlightDropTargets = true;
    +			ds.getDropTarget = function(graph, x, y)
    +			{
    +				if (graph.isSwimlane(prototype))
    +				{
    +					return null;
    +				}
    +				else
    +				{
    +					var cell = graph.getCellAt(x, y);
    +					
    +					if (graph.isSwimlane(cell))
    +					{
    +						return cell;
    +					}
    +					else
    +					{
    +						var parent = graph.getModel().getParent(cell);
    +						
    +						if (graph.isSwimlane(parent))
    +						{
    +							return parent;
    +						}
    +					}
    +				}
    +			};
    +		};
    +		
    +		function configureStylesheet(graph)
    +		{
    +			var style = new Object();
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_LEFT;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +			style[mxConstants.STYLE_FONTCOLOR] = '#000000';
    +			style[mxConstants.STYLE_FONTSIZE] = '11';
    +			style[mxConstants.STYLE_FONTSTYLE] = 0;
    +			style[mxConstants.STYLE_SPACING_LEFT] = '4';
    +			style[mxConstants.STYLE_IMAGE_WIDTH] = '48';
    +			style[mxConstants.STYLE_IMAGE_HEIGHT] = '48';
    +			graph.getStylesheet().putDefaultVertexStyle(style);
    +
    +			style = new Object();
    +			style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_SWIMLANE;
    +			style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +			style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_TOP;
    +			style[mxConstants.STYLE_GRADIENTCOLOR] = '#41B9F5';
    +			style[mxConstants.STYLE_FILLCOLOR] = '#8CCDF5';
    +			style[mxConstants.STYLE_STROKECOLOR] = '#1B78C8';
    +			style[mxConstants.STYLE_FONTCOLOR] = '#000000';
    +			style[mxConstants.STYLE_STROKEWIDTH] = '2';
    +			style[mxConstants.STYLE_STARTSIZE] = '28';
    +			style[mxConstants.STYLE_VERTICAL_ALIGN] = 'middle';
    +			style[mxConstants.STYLE_FONTSIZE] = '12';
    +			style[mxConstants.STYLE_FONTSTYLE] = 1;
    +			style[mxConstants.STYLE_IMAGE] = 'images/icons48/table.png';
    +			// Looks better without opacity if shadow is enabled
    +			//style[mxConstants.STYLE_OPACITY] = '80';
    +			style[mxConstants.STYLE_SHADOW] = 1;
    +			graph.getStylesheet().putCellStyle('table', style);
    +
    +			style = graph.stylesheet.getDefaultEdgeStyle();
    +			style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR] = '#FFFFFF';
    +			style[mxConstants.STYLE_STROKEWIDTH] = '2';
    +			style[mxConstants.STYLE_ROUNDED] = true;
    +			style[mxConstants.STYLE_EDGE] = mxEdgeStyle.EntityRelation;
    +		};
    +		
    +		// Function to create the entries in the popupmenu
    +		function createPopupMenu(editor, graph, menu, cell, evt)
    +		{
    +			if (cell != null)
    +			{
    +				if (graph.isHtmlLabel(cell))
    +				{
    +					menu.addItem('Properties', 'editors/images/properties.gif', function()
    +					{
    +						editor.execute('properties', cell);
    +					});
    +			
    +					menu.addSeparator();
    +				}
    +
    +				menu.addItem('Delete', 'images/delete2.png', function()
    +				{
    +					editor.execute('delete', cell);
    +				});
    +			
    +				menu.addSeparator();
    +			}
    +
    +			menu.addItem('Undo', 'images/undo.png', function()
    +			{
    +				editor.execute('undo', cell);
    +			});
    +			
    +			menu.addItem('Redo', 'images/redo.png', function()
    +			{
    +				editor.execute('redo', cell);
    +			});
    +			
    +			menu.addSeparator();
    +			
    +			
    +			menu.addItem('Show SQL', 'images/export1.png', function()
    +			{
    +				editor.execute('showSql', cell);
    +			});	
    +		};
    +		
    +		function showProperties(graph, cell)
    +		{
    +			// Creates a form for the user object inside
    +			// the cell
    +			var form = new mxForm('properties');
    +
    +			// Adds a field for the columnname
    +			var nameField = form.addText('Name', cell.value.name);
    +			var typeField = form.addText('Type', cell.value.type);
    +			
    +			var primaryKeyField = form.addCheckbox('Primary Key', cell.value.primaryKey);
    +			var autoIncrementField = form.addCheckbox('Auto Increment', cell.value.autoIncrement);
    +			var notNullField = form.addCheckbox('Not Null', cell.value.notNull);
    +			var uniqueField = form.addCheckbox('Unique', cell.value.unique);
    +			
    +			var defaultField = form.addText('Default', cell.value.defaultValue || '');
    +			var useDefaultField = form.addCheckbox('Use Default', (cell.value.defaultValue != null));
    +
    +			var wnd = null;
    +
    +			// Defines the function to be executed when the
    +			// OK button is pressed in the dialog
    +			var okFunction = function()
    +			{
    +				var clone = cell.value.clone();
    +				
    +				clone.name = nameField.value;
    +				clone.type = typeField.value;
    +
    +				if (useDefaultField.checked)
    +				{
    +					clone.defaultValue = defaultField.value;
    +				}
    +				else
    +				{
    +					clone.defaultValue = null;
    +				}
    +				
    +				clone.primaryKey = primaryKeyField.checked;
    +				clone.autoIncrement = autoIncrementField.checked;
    +				clone.notNull = notNullField.checked;
    +				clone.unique = uniqueField.checked;
    +				
    +				graph.model.setValue(cell, clone);
    +			
    +				wnd.destroy();
    +			}
    +			
    +			// Defines the function to be executed when the
    +			// Cancel button is pressed in the dialog
    +			var cancelFunction = function()
    +			{
    +				wnd.destroy();
    +			}
    +			form.addButtons(okFunction, cancelFunction);
    +
    +			var parent = graph.model.getParent(cell);
    +			var name = parent.value.name + '.' + cell.value.name;
    +			wnd = showModalWindow(name, form.table, 240, 240);
    +		};
    +		
    +		function createSql(graph)
    +		{
    +			var sql = [];
    +			var parent = graph.getDefaultParent();
    +			var childCount = graph.model.getChildCount(parent);
    +
    +			for (var i=0; i<childCount; i++)
    +			{
    +				var child = graph.model.getChildAt(parent, i);
    +				
    +				if (!graph.model.isEdge(child))
    +				{
    +					sql.push('CREATE TABLE IF NOT EXISTS '+child.value.name+' (');
    +					
    +					var columnCount = graph.model.getChildCount(child);
    +
    +					if (columnCount > 0)
    +					{
    +						for (var j=0; j<columnCount; j++)
    +						{
    +							var column = graph.model.getChildAt(child, j).value;
    +							
    +							sql.push('\n    '+column.name+' '+column.type);
    +							
    +							if (column.notNull)
    +							{
    +								sql.push(' NOT NULL');
    +							}
    +													
    +							if (column.primaryKey)
    +							{
    +								sql.push(' PRIMARY KEY');
    +							}
    +							
    +							if (column.autoIncrement)
    +							{
    +								sql.push(' AUTOINCREMENT');
    +							}
    +							
    +							if (column.unique)
    +							{
    +								sql.push(' UNIQUE');
    +							}
    +	
    +							if (column.defaultValue != null)
    +							{
    +								sql.push(' DEFAULT '+column.defaultValue);
    +							}
    +							
    +							sql.push(',');
    +						}
    +						
    +						sql.splice(sql.length-1, 1);
    +						sql.push('\n);');
    +					}
    +					
    +					sql.push('\n');
    +				}
    +			}
    +
    +			return sql.join('');
    +		};
    +		
    +		function loadGoogleGears()
    +		{
    +			// We are already defined. Hooray!
    +			if (window.google && google.gears) {
    +			  return;
    +			}
    +			
    +			var factory = null;
    +			
    +			// Firefox
    +			if (typeof GearsFactory != 'undefined') {
    +			  factory = new GearsFactory();
    +			} else {
    +			  // IE
    +			  try {
    +			    factory = new ActiveXObject('Gears.Factory');
    +			  } catch (e) {
    +			    // Safari
    +			    if (navigator.mimeTypes["application/x-googlegears"]) {
    +			      factory = document.createElement("object");
    +			      factory.style.display = "none";
    +			      factory.width = 0;
    +			      factory.height = 0;
    +			      factory.type = "application/x-googlegears";
    +			      document.documentElement.appendChild(factory);
    +			    }
    +			  }
    +			}
    +			
    +		 	// *Do not* define any objects if Gears is not installed. This mimics the
    +			// behavior of Gears defining the objects in the future.
    +			if (!factory) {
    +			  return;
    +			}
    +			
    +			// Now set up the objects, being careful not to overwrite anything.
    +			if (!window.google) {
    +			  window.google = {};
    +			}
    +			
    +			if (!google.gears) {
    +			  google.gears = {factory: factory};
    +			}
    +		};
    +		
    +		// Defines the column user object
    +		function Column(name)
    +		{
    +			this.name = name;
    +		};
    +
    +		Column.prototype.type = 'TEXT';
    +		
    +		Column.prototype.defaultValue = null;
    +		
    +		Column.prototype.primaryKey = false;
    +		
    +		Column.prototype.autoIncrement = false;
    +		
    +		Column.prototype.notNull = false;
    +		
    +		Column.prototype.unique = false;
    +		
    +		Column.prototype.clone = function()
    +		{
    +			return mxUtils.clone(this);
    +		};
    +		
    +		// Defines the table user object
    +		function Table(name)
    +		{
    +			this.name = name;
    +		};
    +		
    +		Table.prototype.clone = function()
    +		{
    +			return mxUtils.clone(this);
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'),
    +			document.getElementById('outlineContainer'),
    +		 	document.getElementById('toolbarContainer'),
    +			document.getElementById('sidebarContainer'),
    +			document.getElementById('statusContainer'));">
    +	
    +	<!-- Creates a container for the splash screen -->
    +	<div id="splash"
    +		style="position:absolute;top:0px;left:0px;width:100%;height:100%;background:white;z-index:1;">
    +		<center id="splash" style="padding-top:230px;">
    +			<img src="editors/images/loading.gif">
    +		</center>
    +	</div>
    +	
    +	<!-- Creates a container for the sidebar -->
    +	<div id="toolbarContainer"
    +		style="position:absolute;white-space:nowrap;overflow:hidden;top:0px;left:0px;max-height:24px;height:36px;right:0px;padding:6px;background-image:url('images/toolbar_bg.gif');">
    +	</div>
    +
    +	<!-- Creates a container for the toolboox -->
    +	<div id="sidebarContainer"
    +		style="position:absolute;overflow:hidden;top:36px;left:0px;bottom:36px;max-width:52px;width:56px;padding-top:10px;padding-left:4px;background-image:url('images/sidebar_bg.gif');">
    +	</div>
    +
    +	<!-- Creates a container for the graph -->
    +	<div id="graphContainer"
    +		style="position:absolute;overflow:hidden;top:36px;left:60px;bottom:36px;right:0px;">
    +	</div>
    +
    +	<!-- Creates a container for the outline -->
    +	<div id="outlineContainer"
    +		style="position:absolute;overflow:hidden;top:36px;right:0px;width:200px;height:140px;background:transparent;border-style:solid;border-color:black;">
    +	</div>
    +		
    +	<!-- Creates a container for the sidebar -->
    +	<div id="statusContainer"
    +		style="text-align:right;position:absolute;overflow:hidden;bottom:0px;left:0px;max-height:24px;height:36px;right:0px;color:white;padding:6px;background-image:url('images/toolbar_bg.gif');">
    +		<div style="font-size:10pt;float:left;">
    +			Created with <a href="http://www.jgraph.com" target="_blank">mxGraph</a>
    +		</div>
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/scrollbars.html b/javascript/examples/scrollbars.html
    new file mode 100644
    index 000000000..f7185e415
    --- /dev/null
    +++ b/javascript/examples/scrollbars.html
    @@ -0,0 +1,565 @@
    +<!--
    +  $Id: scrollbars.html,v 1.23 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Scrollbars example for mxGraph. This example demonstrates using
    +  a scrollable table with different sections in a cell label.
    +-->
    +<html>
    +<head>
    +	<title>Scrollbars example for mxGraph</title>
    +	
    +	<style type="text/css" media="screen">
    +		table.title {
    +			border-color: black;
    +			border-collapse: collapse;
    +			cursor: move;
    +		}
    +		table.title th {
    +			font-size: 10pt;
    +			font-family: Verdana;
    +			white-space: nowrap;
    +			background: lightgray;
    +			font-weight: bold;
    +		}
    +		table.erd {
    +			font-size: 10pt;
    +			font-family: Verdana;
    +			border-color: black;
    +			border-collapse: collapse;
    +			overflow: auto;
    +			cursor: move;
    +			white-space: nowrap;
    +			background: #C3D9FF;
    +		}
    +		table.erd td {
    +			border-color: black;
    +		}
    +	</style>
    +	
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// If connect preview is not moved away then getCellAt is used to detect the cell under
    +				// the mouse if the mouse is over the preview shape in IE (no event transparency), ie.
    +				// the built-in hit-detection of the HTML document will not be used in this case. This is
    +				// not a problem here since the preview moves away from the mouse as soon as it connects
    +				// to any given table row. This is because the edge connects to the outside of the row and
    +				// is aligned to the grid during the preview.
    +				mxConnectionHandler.prototype.movePreviewAway = false;
    +				
    +				// Disables foreignObject support for Webkit because scrollbars in
    +				// HTML labels do not work if x- or y-attribute of foreignObject != 0
    +				// see http://code.google.com/p/chromium/issues/detail?id=35545
    +				// also all HTML background is not visible if the vertex has a fill
    +				// color in SVG, which in turn is required for a shadow in mxGraph
    +				mxClient.NO_FO = mxClient.NO_FO || mxClient.IS_GC || mxClient.IS_SF;
    +
    +				// Enables move preview in HTML to appear on top
    +				mxGraphHandler.prototype.htmlPreview = true;
    +
    +				// Enables connect icons to appear on top of HTML
    +				mxConnectionHandler.prototype.moveIconFront = true;
    +				
    +				// Defines an icon for creating new connections in the connection handler.
    +				// This will automatically disable the highlighting of the source vertex.
    +				mxConnectionHandler.prototype.connectImage = new mxImage('images/connector.gif', 16, 16);
    +
    +				// Overrides target perimeter point for connection previews
    +				mxConnectionHandler.prototype.getTargetPerimeterPoint = function(state, me)
    +				{
    +					// Determines the y-coordinate of the target perimeter point
    +					// by using the currentRowNode assigned in updateRow
    +					var y = me.getY();
    +
    +					if (this.currentRowNode != null)
    +					{
    +						y = getRowY(state, this.currentRowNode);
    +					}
    +
    +					// Checks on which side of the terminal to leave
    +					var x = state.x;
    +					
    +					if (this.previous.getCenterX() > state.getCenterX())
    +					{
    +						x += state.width;
    +					}
    +					
    +					return new mxPoint(x, y); 
    +				};
    +
    +				// Overrides source perimeter point for connection previews
    +				mxConnectionHandler.prototype.getSourcePerimeterPoint = function(state, next, me)
    +				{
    +					var y = me.getY();
    +
    +					if (this.sourceRowNode != null)
    +					{
    +						y = getRowY(state, this.sourceRowNode);
    +					}
    +
    +					// Checks on which side of the terminal to leave
    +					var x = state.x;
    +					
    +					if (next.x > state.getCenterX())
    +					{
    +						x += state.width;
    +					}
    +
    +					return new mxPoint(x, y);
    +				};
    +
    +				// Disables connections to invalid rows
    +				mxConnectionHandler.prototype.isValidTarget = function(cell)
    +				{
    +					return this.currentRowNode != null;
    +				};
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Uses the entity perimeter (below) as default
    +				graph.stylesheet.getDefaultVertexStyle()[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_TOP;
    +				graph.stylesheet.getDefaultVertexStyle()[mxConstants.STYLE_PERIMETER] =
    +					mxPerimeter.EntityPerimeter;
    +				graph.stylesheet.getDefaultVertexStyle()[mxConstants.STYLE_SHADOW] = true;
    +				delete graph.stylesheet.getDefaultVertexStyle()[mxConstants.STYLE_STROKECOLOR];
    +
    +				// Used for HTML labels that use up the complete vertex space (see
    +				// graph.cellRenderer.redrawLabel below for syncing the size)
    +				graph.stylesheet.getDefaultVertexStyle()[mxConstants.STYLE_OVERFLOW] = 'fill';
    +
    +				// Uses the entity edge style as default
    +				graph.stylesheet.getDefaultEdgeStyle()[mxConstants.STYLE_EDGE] =
    +					mxEdgeStyle.EntityRelation;
    +				graph.stylesheet.getDefaultEdgeStyle()[mxConstants.STYLE_STROKECOLOR] = 'black';
    +				graph.stylesheet.getDefaultEdgeStyle()[mxConstants.STYLE_FONTCOLOR] = 'black';
    +
    +				// Allows new connections to be made but do not allow existing
    +				// connections to be changed for the sake of simplicity of this
    +				// example
    +				graph.setCellsDisconnectable(false);
    +				graph.setAllowDanglingEdges(false);
    +				graph.setCellsEditable(false);
    +				graph.setConnectable(true);
    +
    +				// Override folding to allow for tables
    +				graph.isCellFoldable = function(cell, collapse)
    +				{
    +					return this.getModel().isVertex(cell);
    +				};
    +
    +				// Overrides connectable state
    +				graph.isCellConnectable = function(cell)
    +				{
    +					return !this.isCellCollapsed(cell);
    +				};
    +				
    +				// Enables HTML markup in all labels
    +				graph.setHtmlLabels(true);
    +
    +				// Scroll events should not start moving the vertex
    +				graph.cellRenderer.isLabelEvent = function(state, evt)
    +				{
    +					var source = mxEvent.getSource(evt);
    +
    +					// FIXME: No scroll events in GC
    +					return state.text != null &&
    +						source != state.text.node &&
    +						source != state.text.node.getElementsByTagName('div')[0];
    +				};
    +
    +				// Adds scrollbars to the outermost div and keeps the
    +				// DIV position and size the same as the vertex
    +				var oldRedrawLabel = graph.cellRenderer.redrawLabel;
    +				graph.cellRenderer.redrawLabel = function(state)
    +				{
    +					oldRedrawLabel.apply(this, arguments); // "supercall"
    +					var graph = state.view.graph;
    +
    +					if (graph.getModel().isVertex(state.cell) && state.text != null)
    +					{
    +						// Scrollbars are on the div
    +						var s = graph.view.scale;
    +						var div = state.text.node.getElementsByTagName('div')[0];
    +						
    +						if (div != null)
    +						{
    +							// Adds height of the title table cell
    +							var oh = 0;
    +	
    +							if (div.previousSibling != null)
    +							{
    +								oh = div.previousSibling.firstChild.firstChild.firstChild.offsetHeight;
    +							}
    +	
    +							div.style.width = (state.width / s) + 'px';
    +							div.style.height = ((state.height / s) - oh) + 'px';
    +							div.style.zoom = s;
    +							
    +							// Installs the handler for updating connected edges
    +							if (div.scrollHandler == null)
    +							{
    +								div.scrollHandler = true;
    +								
    +								mxEvent.addListener(div, 'scroll',
    +									mxUtils.bind(this, function(evt)
    +									{
    +										graph.view.invalidate(state.cell, false, true);
    +										graph.view.validate();
    +									})
    +								);
    +		
    +								mxEvent.addListener(div, 'mouseup',
    +									mxUtils.bind(this, function(evt)
    +									{
    +										if (!this.isLabelEvent(state, evt))
    +										{
    +											graph.view.invalidate(state.cell, false, true);
    +											graph.view.validate();
    +										}
    +									})
    +								);
    +							}
    +						}
    +					}
    +				};
    +
    +				// Adds a new function to update the currentRow based on the given event
    +				// and return the DOM node for that row
    +				graph.connectionHandler.updateRow = function(target)
    +				{
    +					while (target != null && target.nodeName != 'TR')
    +					{
    +						target = target.parentNode;
    +					}
    +
    +					this.currentRow = null;
    +
    +					// Checks if we're dealing with a row in the correct table
    +					if (target != null && target.parentNode.parentNode.className == 'erd')
    +					{
    +						// Stores the current row number in a property so that it can
    +						// be retrieved to create the preview and final edge
    +						var rowNumber = 0;
    +						var current = target.parentNode.firstChild;
    +
    +						while (target != current && current != null)
    +						{
    +							current = current.nextSibling;
    +							rowNumber++;
    +						}
    +
    +						this.currentRow = rowNumber + 1;
    +					}
    +					else
    +					{
    +						target = null;
    +					}
    +					
    +					return target;
    +				};
    +				
    +				// Adds placement of the connect icon based on the mouse event target (row)
    +				graph.connectionHandler.updateIcons = function(state, icons, me)
    +				{
    +					var target = me.getSource();
    +					target = this.updateRow(target);
    +					
    +					if (target != null && this.currentRow != null)
    +					{
    +						var div = target.parentNode.parentNode.parentNode;
    +
    +						icons[0].node.style.visibility = 'visible';
    +						icons[0].bounds.x = state.x + target.offsetLeft + Math.min(state.width,
    +							target.offsetWidth) - this.icons[0].bounds.width - 2;
    +						icons[0].bounds.y = state.y + target.offsetTop + target.offsetHeight / 2 -
    +							this.icons[0].bounds.height / 2 - div.scrollTop + div.offsetTop;
    +						icons[0].redraw();
    +
    +						this.currentRowNode = target;
    +					}
    +					else
    +					{
    +						icons[0].node.style.visibility = 'hidden';
    +					}
    +				};
    +
    +				// Updates the targetRow in the preview edge State
    +				var oldMouseMove = graph.connectionHandler.mouseMove;
    +				graph.connectionHandler.mouseMove = function(sender, me)
    +				{
    +					if (this.edgeState != null)
    +					{
    +						this.currentRowNode = this.updateRow(me.getSource());
    +						
    +						if (this.currentRow != null)
    +						{
    +							this.edgeState.cell.value.setAttribute('targetRow', this.currentRow);
    +						}
    +						else
    +						{
    +							this.edgeState.cell.value.setAttribute('targetRow', '0');
    +						}
    +						
    +						// Destroys icon to prevent event redirection via image in IE
    +						if (this.selectedIcon != null)
    +						{
    +							this.selectedIcon.destroy();
    +							this.selectedIcon = null;
    +						}
    +					}
    +					
    +					oldMouseMove.apply(this, arguments);
    +				};
    +
    +				// Creates the edge state that may be used for preview
    +				graph.connectionHandler.createEdgeState = function(me)
    +				{
    +					var relation = doc.createElement('Relation');
    +					relation.setAttribute('sourceRow', this.currentRow || '0');
    +					relation.setAttribute('targetRow', '0');
    +
    +					var edge = this.createEdge(relation);
    +					var style = this.graph.getCellStyle(edge);
    +					var state = new mxCellState(this.graph.view, edge, style);
    +
    +					// Stores the source row in the handler
    +					this.sourceRowNode = this.currentRowNode;
    +					
    +					return state;
    +				};
    +
    +				// Overrides getLabel to return empty labels for edges and
    +				// short markup for collapsed cells.
    +				graph.getLabel = function(cell)
    +				{
    +					if (this.getModel().isVertex(cell))
    +					{
    +						if (this.isCellCollapsed(cell))
    +						{
    +							return '<table width="100%" border="1" cellpadding="4" class="title">' +
    +								'<tr><th colspan="2">Customers</th></tr>' +
    +								'</table>';
    +						}
    +						else
    +						{
    +							return '<table width="100%" border="1" cellpadding="4" class="title">' +
    +								'<tr><th colspan="2">Customers</th></tr>' +
    +								'</table>'+
    +								'<div style="overflow:auto;cursor:default;">'+
    +								'<table width="100%" height="100%" border="1" cellpadding="4" class="erd">' +
    +								'<tr><td>' +
    +								'<img align="center" src="images/key.png"/>' +
    +								'<img align="center" src="images/plus.png"/>' +
    +								'</td><td>' +
    +								'<u>customerId</u></td></tr><tr><td></td><td>number</td></tr>' +
    +								'<tr><td></td><td>firstName</td></tr><tr><td></td><td>lastName</td></tr>' +
    +								'<tr><td></td><td>streetAddress</td></tr><tr><td></td><td>city</td></tr>' +
    +								'<tr><td></td><td>state</td></tr><tr><td></td><td>zip</td></tr>' +
    +								'</table></div>';
    +						}
    +					}
    +					else
    +					{
    +						return '';
    +					}
    +				};
    +
    +				// User objects (data) for the individual cells
    +				var doc = mxUtils.createXmlDocument();
    +
    +				// Same should be used to create the XML node for the table
    +				// description and the rows (most probably as child nodes)
    +				var relation = doc.createElement('Relation');
    +				relation.setAttribute('sourceRow', '4');
    +				relation.setAttribute('targetRow', '6');
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +
    +				// Enables key handling (eg. escape)
    +				new mxKeyHandler(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				var width = 160;
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, '', 20, 20, width, 0);
    +					var v2 = graph.insertVertex(parent, null, '', 400, 150, width, 0);
    +					var e1 = graph.insertEdge(parent, null, relation, v1, v2);
    +
    +					// Updates the height of the cell (override width
    +					// for table width is set to 100%)
    +					graph.updateCellSize(v1);
    +					v1.geometry.width = width;
    +					v1.geometry.alternateBounds = new mxRectangle(0, 0, width, 27);
    +
    +					// Updates the height of the cell (override width
    +					// for table width is set to 100%)
    +					graph.updateCellSize(v2);
    +					v2.geometry.width = width;
    +					v2.geometry.alternateBounds = new mxRectangle(0, 0, width, 27);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +
    +		// Implements a special perimeter for table rows inside the table markup
    +		mxGraphView.prototype.updateFloatingTerminalPoint = function(edge, start, end, source)
    +		{
    +			var next = this.getNextPoint(edge, end, source);
    +			var div = start.text.node.getElementsByTagName('div')[0];
    +			
    +			var x = start.x;
    +			var y = start.getCenterY();
    +		
    +			// Checks on which side of the terminal to leave
    +			if (next.x > x + start.width / 2)
    +			{
    +				x += start.width;
    +			}
    +		
    +			if (div != null)
    +			{
    +				y = start.getCenterY() - div.scrollTop;
    +				
    +				if (mxUtils.isNode(edge.cell.value) && !this.graph.isCellCollapsed(start.cell))
    +				{
    +					var attr = (source) ? "sourceRow" : "targetRow";
    +					var row = parseInt(edge.cell.value.getAttribute(attr));
    +			
    +					// HTML labels contain an outer table which is built-in
    +					var table = div.getElementsByTagName('table')[0];
    +					var trs = table.getElementsByTagName('tr');
    +					var tr = trs[Math.min(trs.length - 1, row - 1)];
    +					
    +					// Gets vertical center of source or target row
    +					if (tr != null)
    +					{
    +						y = getRowY(start, tr);
    +					}
    +				}
    +			
    +				// Keeps vertical coordinate inside start
    +				y = Math.min(start.y + start.height, Math.max(start.y + div.offsetTop, y));
    +				
    +				// Updates the vertical position of the nearest point if we're not
    +				// dealing with a connection preview, in which case either the
    +				// edgeState or the absolutePoints are null
    +				if (edge != null && edge.absolutePoints != null)
    +				{
    +					next.y = y;
    +				}
    +			}
    +		
    +			edge.setAbsoluteTerminalPoint(new mxPoint(x, y), source);
    +			
    +			// Routes multiple incoming edges along common waypoints if
    +			// the edges have a common target row
    +			if (source && mxUtils.isNode(edge.cell.value) && start != null && end != null)
    +			{
    +				var edges = this.graph.getEdgesBetween(start.cell, end.cell, true);
    +				var tmp = [];
    +		
    +				// Filters the edges with the same source row
    +				var row = edge.cell.value.getAttribute('targetRow');
    +				
    +				for (var i = 0; i < edges.length; i++)
    +				{
    +					if (mxUtils.isNode(edges[i].value) &&
    +						edges[i].value.getAttribute('targetRow') == row)
    +					{
    +						tmp.push(edges[i]);
    +					}
    +				}
    +		
    +				edges = tmp;
    +
    +				if (edges.length > 1 && edge.cell == edges[edges.length - 1])
    +				{
    +					// Finds the vertical center
    +					var states = [];
    +					var y = 0;
    +					
    +					for (var i = 0; i < edges.length; i++)
    +				    {
    +						states[i] = this.getState(edges[i]);
    +				   		y += states[i].absolutePoints[0].y;
    +				    }
    +				    
    +				    y /= edges.length;
    +					
    +				    for (var i = 0; i < states.length; i++)
    +				    {
    +						var x = states[i].absolutePoints[1].x;
    +
    +						if (states[i].absolutePoints.length < 5)
    +						{
    +							states[i].absolutePoints.splice(2, 0, new mxPoint(x, y));
    +						}
    +						else
    +						{
    +							states[i].absolutePoints[2] = new mxPoint(x, y);
    +						}
    +							
    +						// Must redraw the previous edges with the changed point
    +						if (i < states.length - 1)
    +						{
    +							this.graph.cellRenderer.redraw(states[i]);
    +						}
    +				    }
    +				}
    +			}
    +		};
    +
    +		// Defines global helper function to get y-coordinate for a given cell state and row
    +		var getRowY = function(state, tr)
    +		{
    +			var div = tr.parentNode.parentNode.parentNode;
    +			var y = state.y + tr.offsetTop + tr.offsetHeight / 2 - div.scrollTop + div.offsetTop;
    +			y = Math.min(state.y + state.height, Math.max(state.y + div.offsetTop, y));
    +
    +			return y;
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper. Width, height and cursor in the style are for IE only -->
    +	<div id="graphContainer"
    +		style="cursor:default;height:100%;width:100%;position:absolute;top:0px;left:0px;bottom:0px;right:0px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/secondlabel.html b/javascript/examples/secondlabel.html
    new file mode 100644
    index 000000000..a10b39d4d
    --- /dev/null
    +++ b/javascript/examples/secondlabel.html
    @@ -0,0 +1,190 @@
    +<!--
    +  $Id: secondlabel.html,v 1.8 2012-01-08 10:28:37 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Second label example for mxGraph. This example demonstrates how to
    +  add another string label to vertices.
    +-->
    +<html>
    +<head>
    +	<title>Hello, World! example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Disables the folding icon
    +				graph.isCellFoldable = function(cell)
    +				{
    +					return false;
    +				}
    +
    +				var secondLabelVisible = true;
    +
    +				// Hook for returning shape number for a given cell
    +				graph.getSecondLabel = function(cell)
    +				{
    +					if (!this.model.isEdge(cell))
    +					{
    +						// Possible to return any string here
    +						return "ID="+cell.id;
    +					}
    +
    +					return null;
    +				};
    +
    +				var relativeChildVerticesVisible = true;
    +
    +				// Overrides method to hide relative child vertices
    +				graph.isCellVisible = function(cell)
    +				{
    +					return !this.model.isVertex(cell) || cell.geometry == null ||
    +						!cell.geometry.relative ||
    +						cell.geometry.relative == relativeChildVerticesVisible;
    +				};
    +
    +				// Creates the shape for the shape number and puts it into the draw pane
    +				var createShape = graph.cellRenderer.createShape;
    +				graph.cellRenderer.createShape = function(state)
    +				{
    +					createShape.apply(this, arguments);
    +
    +					if (secondLabelVisible &&
    +						!state.cell.geometry.relative)
    +					{
    +						var secondLabel = graph.getSecondLabel(state.cell);
    +	
    +						if (secondLabel != null &&
    +							state.shape != null &&
    +							state.secondLabel == null)
    +						{
    +							state.secondLabel = new mxText(secondLabel, new mxRectangle(),
    +									mxConstants.ALIGN_LEFT, mxConstants.ALIGN_BOTTOM);
    +
    +							// Styles the label
    +							state.secondLabel.color = 'black';
    +							state.secondLabel.family = 'Verdana';
    +							state.secondLabel.size = 8;
    +							state.secondLabel.fontStyle = mxConstants.FONT_ITALIC;
    +							state.secondLabel.background = 'yellow';
    +							state.secondLabel.border = 'black';
    +
    +							state.secondLabel.dialect = state.shape.dialect;
    +							state.secondLabel.init(state.view.getDrawPane());
    +						}
    +					}
    +				};
    +
    +				// Redraws the shape number after the cell has been moved/resized
    +				var redraw = graph.cellRenderer.redraw;
    +				graph.cellRenderer.redraw = function(state)
    +				{
    +					redraw.apply(this, arguments);
    +					
    +					if (state.shape != null &&
    +						state.secondLabel != null)
    +					{
    +						var scale = graph.getView().getScale();
    +						var bounds = new mxRectangle(state.x + state.width - 8 * scale, state.y + 8 * scale, 0, 0);
    +						state.secondLabel.value = graph.getSecondLabel(state.cell);
    +						state.secondLabel.scale = scale;
    +						state.secondLabel.bounds = bounds;
    +						state.secondLabel.redraw();
    +					}
    +				};
    +
    +				// Destroys the shape number
    +				var destroy = graph.cellRenderer.destroy;
    +				graph.cellRenderer.destroy = function(state)
    +				{
    +					destroy.apply(this, arguments);
    +					
    +					if (state.secondLabel != null)
    +					{
    +						state.secondLabel.destroy();
    +						state.secondLabel = null;
    +					}
    +				};
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 30, 20, 80, 30);
    +					// Alternative solution of creating a second label by creating a realtive child vertex
    +					// with size (0, 0). This will not be selectable and only the label colors can be used
    +					// for coloring as the actual shape will have zero size.
    +					var v11 = graph.insertVertex(v1, null, 'World', 1, 1, 0, 0, 'align=left;verticalAlign=top;labelBackgroundColor=red;labelBorderColor=black', true);
    +					v11.geometry.offset = new mxPoint(-8, -8);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					// Another alternative solution of creating a second label as a relative child vertex
    +					// but this time with an automatic size so that the cell is actually selectable and
    +					// the background is painted as a shape.
    +					var v21 = graph.insertVertex(v2, null, 'World', 1, 1, 0, 0, 'align=left;verticalAlign=top;fillColor=red;rounded=1;spacingLeft=4;spacingRight=4', true);
    +					v21.geometry.offset = new mxPoint(-8, -8);
    +					graph.updateCellSize(v21);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +				// Adds a button to execute the layout
    +				document.body.insertBefore(mxUtils.button('Toggle Child Vertices',
    +					function(evt)
    +					{
    +						relativeChildVerticesVisible = !relativeChildVerticesVisible;
    +						graph.refresh();
    +					}
    +				), document.body.firstChild);
    +				
    +				// Adds a button to execute the layout
    +				document.body.insertBefore(mxUtils.button('Toggle IDs',
    +					function(evt)
    +					{
    +						secondLabelVisible = !secondLabelVisible;
    +						graph.refresh();
    +					}
    +				), document.body.firstChild);
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/serverview.html b/javascript/examples/serverview.html
    new file mode 100644
    index 000000000..d781fd52a
    --- /dev/null
    +++ b/javascript/examples/serverview.html
    @@ -0,0 +1,345 @@
    +<!--
    +  $Id: serverview.html,v 1.7 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Server-View example for mxGraph. This example demonstrates using
    +  a server-side image of the graph as the diagram in the client. This
    +  may be used to improve drawing-speed in older browser and on devices
    +  with slower processors.
    +-->
    +<html>
    +<head>
    +	<title>mxGraph using Server-side Image</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '/mxgraph/javascript/src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="/mxgraph/javascript/src/js/mxClient.js"></script>
    +
    +	<!-- Overrides certain methods required for the server-side-image to be used. -->
    +	<script type="text/javascript">
    +		// Makes the background of the in-place editor non-transparent
    +		var previousStartEditing = mxCellEditor.prototype.startEditing;
    +		mxCellEditor.prototype.startEditing = function (cell, trigger)
    +		{
    +			previousStartEditing.apply(this, arguments);
    +	
    +			var state = this.graph.getView().getState(cell);
    +	
    +			if (state != null)
    +			{
    +				var color = mxUtils.getValue(state.style, mxConstants.STYLE_FILLCOLOR, 'white');
    +				this.textarea.style.background = color;
    +			}
    +		};
    +	
    +		// Replaces the event firing mechanism in the graph view since there are
    +		// no longer any DOM elements that fire events for the actual states we
    +		// have to find the state under the mouse using graph.getCellAt and then
    +		// fire the event for the state from here instead.
    +		// FIXME: Since we do not render the label we don't have the label bounds
    +		// here which means hit detection will only work for the vertex bounds,
    +		// the edge but not for overlapping labels or most part of the edge labels.
    +		mxGraphView.prototype.installListeners = function()
    +		{
    +			var graph = this.graph;
    +			var container = graph.container;
    +			
    +			if (container != null)
    +			{
    +				var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +				var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +				var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +				
    +				// Adds basic listeners for graph event dispatching
    +				mxEvent.addListener(container, md,
    +					mxUtils.bind(this, function(evt)
    +					{
    +						var pt = mxUtils.convertPoint(graph.container,
    +							mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +						var cell = graph.getCellAt(pt.x, pt.y);
    +						var state = this.getState(cell);
    +
    +						if (state != null)
    +						{
    +							graph.fireMouseEvent(mxEvent.MOUSE_DOWN,
    +									new mxMouseEvent(evt, state));
    +						}
    +						// Condition to avoid scrollbar events starting a rubberband
    +						// selection
    +						else if (this.isContainerEvent(evt) &&
    +							((!mxClient.IS_IE && 
    +							!mxClient.IS_GC && !mxClient.IS_OP && !mxClient.IS_SF) ||
    +							!this.isScrollEvent(evt)))
    +						{
    +							graph.fireMouseEvent(mxEvent.MOUSE_DOWN,
    +								new mxMouseEvent(evt));
    +						}
    +					})
    +				);
    +				mxEvent.addListener(container, mm,
    +					mxUtils.bind(this, function(evt)
    +					{
    +						var pt = mxUtils.convertPoint(graph.container,
    +							mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +						var cell = graph.getCellAt(pt.x, pt.y);
    +						var state = this.getState(cell);
    +	
    +						if (state != null)
    +						{
    +							graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +									new mxMouseEvent(evt, state));
    +						}
    +						else if (this.isContainerEvent(evt))
    +						{
    +							graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +								new mxMouseEvent(evt));
    +						}
    +					})
    +				);
    +				mxEvent.addListener(container, mu,
    +					mxUtils.bind(this, function(evt)
    +					{
    +						var pt = mxUtils.convertPoint(graph.container,
    +							mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +						var cell = graph.getCellAt(pt.x, pt.y);
    +						var state = this.getState(cell);
    +	
    +						if (state != null)
    +						{
    +							graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +									new mxMouseEvent(evt, state));
    +						}
    +						else if (this.isContainerEvent(evt))
    +						{
    +							graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +								new mxMouseEvent(evt));
    +						}
    +					})
    +				);
    +				
    +				// Adds listener for double click handling on background
    +				mxEvent.addListener(container, 'dblclick',
    +					mxUtils.bind(this, function(evt)
    +					{
    +						var pt = mxUtils.convertPoint(graph.container,
    +							mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +						var cell = graph.getCellAt(pt.x, pt.y);
    +						
    +						graph.dblClick(evt, cell);
    +					})
    +				);
    +							
    +				// Adds basic listeners for graph event dispatching outside of the
    +				// container and finishing the handling of a single gesture
    +				mxEvent.addListener(document, md,
    +					mxUtils.bind(this, function(evt)
    +					{
    +						if (this.isContainerEvent(evt))
    +						{
    +							graph.panningHandler.hideMenu();
    +						}
    +					})
    +				);
    +				mxEvent.addListener(document, mm,
    +					mxUtils.bind(this, function(evt)
    +					{
    +						// Hides the tooltip if mouse is outside container
    +						if (graph.tooltipHandler != null &&
    +							graph.tooltipHandler.isHideOnHover())
    +						{
    +							graph.tooltipHandler.hide();
    +						}
    +						
    +						if (this.captureDocumentGesture &&
    +							graph.isMouseDown &&
    +							!mxEvent.isConsumed(evt))
    +						{
    +							graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +								new mxMouseEvent(evt));
    +						}
    +					})
    +				);
    +				mxEvent.addListener(document, mu,
    +					mxUtils.bind(this, function(evt)
    +					{
    +						if (this.captureDocumentGesture)
    +						{
    +							graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +								new mxMouseEvent(evt));
    +						}
    +					})
    +				);
    +			}
    +		};
    +	</script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Holds the current image
    +				var img = null;
    +				var loader = new Image();
    +				loader.src = 'images/loading.gif';
    +				loader.style.zIndex = 1;
    +				loader.style.visibility = 'hidden';
    +				loader.style.position = 'absolute';
    +				
    +				graph.container.insertBefore(loader, graph.container.firstChild);
    +				
    +				// Disables the DOM-based rendering in the graph and updates the
    +				// display image on each validation step using the Export servlet
    +				// on the graph
    +				graph.view.rendering = false;
    +				
    +				// Installs a post-validation repaint of the complete graph
    +				graph.view.validate = function()
    +				{
    +					loader.style.left = graph.container.scrollLeft + graph.container.clientWidth / 2 - 32;
    +					loader.style.top = graph.container.scrollTop + graph.container.clientHeight / 2 - 32;
    +					loader.style.visibility = 'visible';
    +					mxGraphView.prototype.validate.apply(this, arguments);
    +
    +					var t0 = new Date().getTime();
    +					var bounds = graph.getGraphBounds();
    +
    +					// Note that we send out an XML version of the view which
    +					// allows us to keep most customizations on the client-side.
    +					// No deltas are used here, the complete view is sent to the
    +					// server on each update.
    +					var node = mxUtils.getViewXml(graph, 1);
    +					var xml = encodeURIComponent(mxUtils.getXml(node));
    +
    +					var onload = function(req)
    +					{
    +						var dt = (new Date().getTime() - t0) / 1000;
    +						//mxLog.debug('post returned after '+dt+' secs');
    +					
    +						if (req.getStatus() == 200)
    +						{
    +							var image =new Image();
    +
    +							// Disable DnD events on images in IE. FIXME: Rubberband
    +							// events are ignored in IE when starting on the image.
    +							if (mxClient.IS_IE)
    +							{
    +								graph.view.isContainerEvent = function(evt)
    +								{
    +									var source = mxEvent.getSource(evt);
    +					
    +									return (source == image ||
    +										source == this.graph.container ||
    +										source.parentNode == this.backgroundPane ||
    +										(source.parentNode != null &&
    +										source.parentNode.parentNode == this.backgroundPane) ||
    +										source == this.canvas.parentNode ||
    +										source == this.canvas ||
    +										source == this.backgroundPane ||
    +										source == this.drawPane ||
    +										source == this.overlayPane);
    +								};
    +							}
    +							
    +							// Less flickering if the old image is removed after
    +							// the new image was received from the server
    +							image.onload = function()
    +							{
    +								if (img != null)
    +								{
    +									img.parentNode.removeChild(img);
    +								}
    +						
    +								img = image;
    +								graph.container.insertBefore(img, graph.container.firstChild);
    +								loader.style.visibility = 'hidden';
    +								
    +								var dt = (new Date().getTime() - t0) / 1000;
    +								//mxLog.debug('received '+img.clientWidth+'x'+img.clientHeight+' pixels in '+dt+' secs');
    +								graph.setEnabled(true);
    +							};
    +
    +							// URL contains timestamp to avoid caching in the browser
    +							image.src = '/ServerView?'+new Date().getTime();
    +							image.style.position = 'absolute';
    +							image.style.left = bounds.x - 4;
    +							image.style.top = bounds.y - 4;
    +							image.style.zIndex = -1;
    +						}
    +					};
    +
    +					var onerror = function(req)
    +					{
    +						//mxLog.debug('error: '+req.getStatus());
    +					}
    +					
    +					//mxLog.debug('sent '+(xml.length/1024)+' KB');
    +					graph.setEnabled(false);
    +					new mxXmlRequest('/ServerView', 'xml='+xml).send(onload, onerror);
    +				};
    +
    +				// Uncomment the following if you want the container
    +				// to fit the size of the graph
    +				//graph.setResizeContainer(true);
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				graph.setConnectable(true);
    +				graph.setPanning(true);
    +				graph.setTooltips(true);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +				//mxLog.show();
    +
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +<!-- Creates a container for the graph with a grid wallpaper -->
    +<div id="graphContainer"
    +	style="overflow:auto;width:500px;height:500px;border: black solid 1px;cursor:default;">
    +</div>
    +<br>
    +<strong>Important:</strong>
    +<p>
    +  To use this example, start com.mxgraph.examples.web.main in Java
    +  and point your<br>browser to:
    +  <a href="http://localhost:8080/mxgraph/javascript/examples/serverview.html">http://localhost:8080/mxgraph/javascript/examples/serverview.html</a>
    +</p>
    +</body>
    +</html>
    diff --git a/javascript/examples/shape.html b/javascript/examples/shape.html
    new file mode 100644
    index 000000000..8d7c37190
    --- /dev/null
    +++ b/javascript/examples/shape.html
    @@ -0,0 +1,174 @@
    +<!--
    +  $Id: shape.html,v 1.26 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Shape example for mxGraph. This example demonstrates how to
    +  implement and use a custom shape.
    +-->
    +<html>
    +<head>
    +	<title>Shape example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example custom shape -->
    +	<script type="text/javascript">
    +	
    +		/*
    +			The example shape is a "3D box" that looks like this:
    +		               ____
    +		              /   /|
    +		             /___/ |
    +		             |   | /
    +		             |___|/
    +		                      
    +		   	The code below defines the shape. The BoxShape function
    +		   	it the constructor which creates a new object instance.
    +		*/
    +		function BoxShape() { };
    +		
    +		/*
    +		   	The next lines use an mxCylinder instance to augment the
    +		   	prototype of the shape ("inheritance") and reset the
    +		   	constructor to the topmost function of the c'tor chain.
    +		*/
    +		BoxShape.prototype = new mxCylinder();
    +		BoxShape.prototype.constructor = BoxShape;
    +		
    +		// Requests crisp rendering in SVG for this shape
    +		BoxShape.prototype.crisp = true;
    +
    +		// Defines the extrusion of the box as a "static class variable"
    +		BoxShape.prototype.extrude = 10;
    +			
    +		/*
    +		   	Next, the mxCylinder's redrawPath method is "overridden".
    +		   	This method has a isForeground argument to separate two
    +		   	paths, one for the background (which must be closed and
    +		   	might be filled) and one for the foreground, which is
    +		   	just a stroke.
    +
    +		     Foreground:       /
    +		                 _____/
    +		                      |
    +		                      |
    +		                   ____  
    +		     Background:  /    | 
    +		                 /     | 
    +		                 |     / 
    +		                 |____/ 
    +		*/
    +		BoxShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +		{
    +			var dy = this.extrude * this.scale;
    +			var dx = this.extrude * this.scale;
    +
    +			if (isForeground)
    +			{
    +				path.moveTo(0, dy);
    +				path.lineTo(w - dx, dy);
    +				path.lineTo(w, 0);
    +				path.moveTo(w - dx, dy);
    +				path.lineTo(w - dx, h);
    +				path.end();
    +			}
    +			else
    +			{
    +				path.moveTo(0, dy);
    +				path.lineTo(dx, 0);
    +				path.lineTo(w, 0);
    +				path.lineTo(w, h - dy);
    +				path.lineTo(w - dx, h);
    +				path.lineTo(0, h);
    +				path.lineTo(0, dy);
    +				path.lineTo(dx, 0);
    +				path.close();
    +				path.end();
    +			}
    +		};
    +		
    +		/*
    +			The custom shape can be registered globally or in each cellRenderer
    +			instance. In this example, the shape is registered globally. For
    +			registering the shape in a cellRenderer instance, the following
    +			code can be used:
    +
    +			graph.cellRenderer.registerShape('box', BoxShape);
    +		*/
    +		mxCellRenderer.prototype.defaultShapes['box'] = BoxShape;
    +	</script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the DOM node.
    +				var graph = new mxGraph(container);
    +				
    +				// Disables basic selection and cell handling
    +				graph.setEnabled(false);
    +
    +				// Changes the default style for vertices "in-place"
    +				// to use the custom shape.
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_SHAPE] = 'box';
    +				
    +				// Adds a spacing for the label that matches the
    +				// extrusion size
    +				style[mxConstants.STYLE_SPACING_TOP] = BoxShape.prototype.extrude;
    +				style[mxConstants.STYLE_SPACING_RIGHT] = BoxShape.prototype.extrude;
    +				
    +				// Adds a gradient and shadow to improve the user experience
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = '#FFFFFF';
    +				style[mxConstants.STYLE_SHADOW] = true;
    +
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Custom', 20, 20, 80, 60);
    +					var v2 = graph.insertVertex(parent, null, 'Shape', 200, 150, 80, 60);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/standardsmode.html b/javascript/examples/standardsmode.html
    new file mode 100644
    index 000000000..422356068
    --- /dev/null
    +++ b/javascript/examples/standardsmode.html
    @@ -0,0 +1,97 @@
    +<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5" ><![endif]-->
    +<!DOCTYPE html>
    +<!--
    +  $Id: standardsmode.html,v 1.4 2011-09-02 14:19:02 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Standardsmode example for mxGraph. This example demonstrates using a DOCTYPE with
    +  mxGraph. (The first line is required for this to use VML in all IE versions.)
    +  
    +  To use the DOCTYPE and SVG in IE9, replace the content attribute of the first line
    +  with IE=5,IE=9.
    +  
    +  To use IE7 standards mode in IE 7,8 and 9, replace IE=5 with IE=7.
    +-->
    +<html>
    +<head>
    +	<title>Standardsmode example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Uncomment the following if you want the container
    +				// to fit the size of the graph
    +				//graph.setResizeContainer(true);
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +				
    +				// Prints the rendering mode and display dialect (VML or SVG) in use
    +				// CSS1Compat means standard
    +				mxLog.show();
    +				var mode = (document.compatMode == 'CSS1Compat') ? 'standards' : 'quirks';
    +				var disp = (mxClient.IS_SVG) ? 'svg' : 'vml';
    +				mxLog.debug(mode + ' ' + disp);
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;position:relative;">
    +	</div>
    +	<br>
    +	See also:<br>
    +	<a href="ie9svg.html">IE9SVG</a><br>
    +	<a href="../../docs/known-issues.html#Doctypes">docs/known-issues.html#Doctypes</a><br>
    +	<a href="../../docs/known-issues.html#IE9">docs/known-issues.html#IE9</a>
    +</body>
    +</html>
    diff --git a/javascript/examples/stencils.html b/javascript/examples/stencils.html
    new file mode 100644
    index 000000000..e59620894
    --- /dev/null
    +++ b/javascript/examples/stencils.html
    @@ -0,0 +1,243 @@
    +<!--
    +  $Id: stencils.html,v 1.10 2012-02-08 11:16:49 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Stencils example for mxGraph. This example demonstrates using
    +  an XML file to define new stencils to be used as shapes. See
    +  docs/stencils.xsd for the XML schema file.
    +-->
    +<html>
    +<head>
    +	<title>Stencils example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of rectangles in SVG
    +				mxRectangleShape.prototype.crisp = true;
    +				
    +				// Sets the global shadow color
    +				mxConstants.SHADOWCOLOR = '#C0C0C0';
    +				mxConstants.SHADOW_OPACITY = 0.5;
    +				mxConstants.SHADOW_OFFSET_X = 4;
    +				mxConstants.SHADOW_OFFSET_Y = 4;
    +				
    +				// Uses the shape for resize previews
    +				mxVertexHandler.prototype.createSelectionShape = function(bounds)
    +				{
    +					var key = this.state.style[mxConstants.STYLE_SHAPE];
    +					var stencil = mxStencilRegistry.getStencil(key);
    +					var shape = null;
    +					
    +					if (stencil != null)
    +					{
    +						shape = new mxStencilShape(stencil);
    +						shape.apply(this.state);
    +					}
    +					else
    +					{
    +						shape = new this.state.shape.constructor();
    +					}
    +					
    +					shape.fill = null;
    +					shape.bounds = bounds;
    +					shape.stroke = this.getSelectionColor();
    +					shape.strokewidth = this.getSelectionStrokeWidth();
    +					shape.isDashed = this.isSelectionDashed();
    +					shape.crisp = this.state.shape.crisp;
    +				    
    +					return shape;
    +				};
    +				
    +				// Loads the stencils into the registry
    +				var req = mxUtils.load('stencils.xml');
    +				var root = req.getDocumentElement();
    +				var shape = root.firstChild;
    +				
    +				while (shape != null)
    +				{
    +					if (shape.nodeType == mxConstants.NODETYPE_ELEMENT)
    +					{
    +						mxStencilRegistry.addStencil(shape.getAttribute('name'), new mxStencil(shape));
    +					}
    +					
    +					shape = shape.nextSibling;
    +				}
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setConnectable(true);
    +				
    +				// Changes default styles
    +				var style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_EDGE] = 'orthogonalEdgeStyle';
    +				style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_FILLCOLOR] = '#adc5ff';
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = '#7d85df';
    +				style[mxConstants.STYLE_SHADOW] = '1';
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'A1', 20, 20, 40, 80, 'shape=and');
    +					var v2 = graph.insertVertex(parent, null, 'A2', 20, 220, 40, 80, 'shape=and');
    +					var v3 = graph.insertVertex(parent, null, 'X1', 160, 110, 80, 80, 'shape=xor');
    +					var e1 = graph.insertEdge(parent, null, '', v1, v3);
    +					e1.geometry.points = [new mxPoint(90, 60), new mxPoint(90, 130)];
    +					var e2 = graph.insertEdge(parent, null, '', v2, v3);
    +					e2.geometry.points = [new mxPoint(90, 260), new mxPoint(90, 170)];
    +					
    +					var v4 = graph.insertVertex(parent, null, 'A3', 520, 20, 40, 80, 'shape=and;flipH=1');
    +					var v5 = graph.insertVertex(parent, null, 'A4', 520, 220, 40, 80, 'shape=and;flipH=1');
    +					var v6 = graph.insertVertex(parent, null, 'X2', 340, 110, 80, 80, 'shape=xor;flipH=1');
    +					var e3 = graph.insertEdge(parent, null, '', v4, v6);
    +					e3.geometry.points = [new mxPoint(490, 60), new mxPoint(130, 130)];
    +					var e4 = graph.insertEdge(parent, null, '', v5, v6);
    +					e4.geometry.points = [new mxPoint(490, 260), new mxPoint(130, 170)];
    +					
    +					var v7 = graph.insertVertex(parent, null, 'O1', 250, 260, 80, 60, 'shape=or;direction=south');
    +					var e5 = graph.insertEdge(parent, null, '', v6, v7);
    +					e5.geometry.points = [new mxPoint(310, 150)];
    +					var e6 = graph.insertEdge(parent, null, '', v3, v7);
    +					e6.geometry.points = [new mxPoint(270, 150)];
    +					
    +					var e7 = graph.insertEdge(parent, null, '', v7, v5);
    +					e7.geometry.points = [new mxPoint(290, 370)];
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +				
    +				document.body.appendChild(mxUtils.button('FlipH', function()
    +				{
    +					graph.toggleCellStyles(mxConstants.STYLE_STENCIL_FLIPH);
    +				}));
    +				
    +				document.body.appendChild(mxUtils.button('FlipV', function()
    +				{
    +					graph.toggleCellStyles(mxConstants.STYLE_STENCIL_FLIPV);
    +				}));
    +
    +				document.body.appendChild(document.createTextNode('\u00a0'));
    +				document.body.appendChild(document.createTextNode('\u00a0'));
    +				document.body.appendChild(document.createTextNode('\u00a0'));
    +				document.body.appendChild(document.createTextNode('\u00a0'));
    +
    +				document.body.appendChild(mxUtils.button('Rotate', function()
    +				{
    +					var cell = graph.getSelectionCell();
    +					
    +					if (cell != null)
    +					{
    +						var geo = graph.getCellGeometry(cell);
    +	
    +						if (geo != null)
    +						{
    +							graph.getModel().beginUpdate();
    +							try
    +							{
    +								// Rotates the size and position in the geometry
    +								geo = geo.clone();
    +								geo.x += geo.width / 2 - geo.height / 2;
    +								geo.y += geo.height / 2 - geo.width / 2;
    +								var tmp = geo.width;
    +								geo.width = geo.height;
    +								geo.height = tmp;
    +								graph.getModel().setGeometry(cell, geo);
    +								
    +								// Reads the current direction and advances by 90 degrees
    +								var state = graph.view.getState(cell);
    +								
    +								if (state != null)
    +								{
    +									var dir = state.style[mxConstants.STYLE_DIRECTION] || 'east'/*default*/;
    +									
    +									if (dir == 'east')
    +									{
    +										dir = 'south';
    +									}
    +									else if (dir == 'south')
    +									{
    +										dir = 'west';
    +									}
    +									else if (dir == 'west')
    +									{
    +										dir = 'north';
    +									}
    +									else if (dir == 'north')
    +									{
    +										dir = 'east';
    +									}
    +									
    +									graph.setCellStyles(mxConstants.STYLE_DIRECTION, dir, [cell]);
    +								}
    +							}
    +							finally
    +							{
    +								graph.getModel().endUpdate();
    +							}
    +						}
    +					}
    +				}));
    +
    +				document.body.appendChild(document.createTextNode('\u00a0'));
    +				document.body.appendChild(document.createTextNode('\u00a0'));
    +				document.body.appendChild(document.createTextNode('\u00a0'));
    +				document.body.appendChild(document.createTextNode('\u00a0'));
    +				
    +				document.body.appendChild(mxUtils.button('And', function()
    +				{
    +					graph.setCellStyles(mxConstants.STYLE_SHAPE, 'and');
    +				}));
    +				document.body.appendChild(mxUtils.button('Or', function()
    +				{
    +					graph.setCellStyles(mxConstants.STYLE_SHAPE, 'or');
    +				}));
    +				document.body.appendChild(mxUtils.button('Xor', function()
    +				{
    +					graph.setCellStyles(mxConstants.STYLE_SHAPE, 'xor');
    +				}));
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:601px;height:401px;background:url('editors/images/grid.gif');cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/stencils.xml b/javascript/examples/stencils.xml
    new file mode 100644
    index 000000000..d8f63e832
    --- /dev/null
    +++ b/javascript/examples/stencils.xml
    @@ -0,0 +1,43 @@
    +<shapes>
    +<shape name="or" aspect="variable">
    +	<background>
    +		<path>
    +			<move x="0" y="0"/>
    +			<quad x1="100" y1="0" x2="100" y2="50"/>
    +			<quad x1="100" y1="100" x2="0" y2="100"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +	</foreground>
    +</shape>
    +<shape name="xor" aspect="fixed">
    +	<background>
    +		<path>
    +			<move x="0" y="0"/>
    +			<quad x1="100" y1="0" x2="100" y2="50"/>
    +			<quad x1="100" y1="100" x2="0" y2="100"/>
    +			<quad x1="50" y1="50" x2="0" y2="0"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +	</foreground>
    +</shape>
    +<shape name="and" aspect="fixed" w="50">
    +	<background>
    +		<linejoin join="round"/>
    +		<path>
    +			<move x="0" y="0"/>
    +			<line x="50" y="50"/>
    +			<line x="0" y="100"/>
    +			<close/>
    +		</path>
    +	</background>
    +	<foreground>
    +		<fillstroke/>
    +	</foreground>
    +</shape>
    +</shapes>
    diff --git a/javascript/examples/stylesheet.html b/javascript/examples/stylesheet.html
    new file mode 100644
    index 000000000..0bdb44810
    --- /dev/null
    +++ b/javascript/examples/stylesheet.html
    @@ -0,0 +1,149 @@
    +<!--
    +  $Id: stylesheet.html,v 1.18 2011-09-02 12:14:48 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Stylesheet example for mxGraph. This example demonstrates using
    +  a custom stylesheet and control points in edges, as well as
    +  overriding the getLabel and getTooltip function to return
    +  dynamic information, and making a supercall in JavaScript.
    +-->
    +<html>
    +<head>
    +	<title>Stylesheet example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the DOM node.
    +				var graph = new mxGraph(container);
    +			
    +				// Disables basic selection and cell handling
    +				graph.setEnabled(false);
    +				
    +				// Returns a special label for edges. Note: This does
    +				// a supercall to use the default implementation.
    +				graph.getLabel = function(state)
    +				{
    +					var label = mxGraph.prototype.getLabel.apply(this, arguments);
    +					
    +					if (this.getModel().isEdge(state.cell))
    +					{
    +						return 'Transfer '+label;
    +					}
    +					else
    +					{
    +						return label;
    +					}
    +				};
    +								
    +				// Installs a custom global tooltip
    +				graph.setTooltips(true);
    +				graph.getTooltip = function(state)
    +				{
    +					var cell = state.cell;
    +					var model = this.getModel();
    +					
    +					if (model.isEdge(cell))
    +					{
    +						var source = this.getLabel(model.getTerminal(cell, true));
    +						var target = this.getLabel(model.getTerminal(cell, false));
    +						
    +						return source+' -> '+target;
    +					}
    +					else
    +					{
    +						return this.getLabel(cell);
    +					}
    +				};
    +				
    +				// Creates the default style for vertices
    +				var style = [];
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    +				style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +				style[mxConstants.STYLE_STROKECOLOR] = 'gray';
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				style[mxConstants.STYLE_FILLCOLOR] = '#EEEEEE';
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +				style[mxConstants.STYLE_FONTCOLOR] = '#774400';
    +				style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +				style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +				style[mxConstants.STYLE_FONTSIZE] = '12';
    +				style[mxConstants.STYLE_FONTSTYLE] = 1;
    +				graph.getStylesheet().putDefaultVertexStyle(style);
    +		
    +				// Creates the default style for edges
    +				style = [];
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_CONNECTOR;
    +				style[mxConstants.STYLE_STROKECOLOR] = '#6482B9';
    +				style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +				style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +				style[mxConstants.STYLE_ENDARROW] = mxConstants.ARROW_CLASSIC;
    +				style[mxConstants.STYLE_FONTSIZE] = '10';
    +				graph.getStylesheet().putDefaultEdgeStyle(style);
    +
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Interval 1', 20, 20, 180, 30);
    +					var v2 = graph.insertVertex(parent, null, 'Interval 2', 140, 80, 280, 30);
    +					var v3 = graph.insertVertex(parent, null, 'Interval 3', 200, 140, 360, 30);
    +					var v4 = graph.insertVertex(parent, null, 'Interval 4', 480, 200, 120, 30);
    +					var v5 = graph.insertVertex(parent, null, 'Interval 5', 60, 260, 400, 30);
    +					var e1 = graph.insertEdge(parent, null, '1', v1, v2);
    +					e1.getGeometry().points = [{x: 160, y: 60}];
    +					var e2 = graph.insertEdge(parent, null, '2', v1, v5);
    +					e2.getGeometry().points = [{x: 80, y: 60}];
    +					var e3 = graph.insertEdge(parent, null, '3', v2, v3);
    +					e3.getGeometry().points = [{x: 280, y: 120}];
    +					var e4 = graph.insertEdge(parent, null, '4', v3, v4);
    +					e4.getGeometry().points = [{x: 500, y: 180}];
    +					var e5 = graph.insertEdge(parent, null, '5', v3, v5);
    +					e5.getGeometry().points = [{x: 380, y: 180}];
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    + 
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:621px;height:311px">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/swimlanes.html b/javascript/examples/swimlanes.html
    new file mode 100644
    index 000000000..d7320d2c9
    --- /dev/null
    +++ b/javascript/examples/swimlanes.html
    @@ -0,0 +1,375 @@
    +<!--
    +  $Id: swimlanes.html,v 1.49 2011-10-17 14:37:19 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Swimlanes example for mxGraph. This example demonstrates using
    +  swimlanes for pools and lanes and adding cells and edges between
    +  them. This also demonstrates using the stack layout as an
    +  automatic layout.
    +-->
    +<html>
    +<head>
    +	<title>Swimlanes example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Defines an icon for creating new connections in the connection handler.
    +		// This will automatically disable the highlighting of the source vertex.
    +		mxConnectionHandler.prototype.connectImage = new mxImage('images/connector.gif', 16, 16);
    +		
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Enables crisp rendering of swimlanes in SVG
    +				mxSwimlane.prototype.crisp = true;
    +				
    +				// Creates a wrapper editor around a new graph inside
    +				// the given container using an XML config for the
    +				// keyboard bindings
    +				var config = mxUtils.load(
    +					'editors/config/keyhandler-commons.xml').
    +						getDocumentElement();
    +				var editor = new mxEditor(config);
    +				editor.setGraphContainer(container);
    +				var graph = editor.graph;
    +				var model = graph.getModel();
    +
    +				// Auto-resizes the container
    +				graph.border = 80;
    +				graph.getView().translate = new mxPoint(graph.border/2, graph.border/2);
    +				graph.setResizeContainer(true);
    +				graph.graphHandler.setRemoveCellsFromParent(false);
    +
    +				// Changes the default vertex style in-place
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_SWIMLANE;
    +				style[mxConstants.STYLE_VERTICAL_ALIGN] = 'top';
    +				style[mxConstants.STYLE_FONTSIZE] = 11;
    +				style[mxConstants.STYLE_STARTSIZE] = 22;
    +				style[mxConstants.STYLE_HORIZONTAL] = false;
    +				style[mxConstants.STYLE_FONTCOLOR] = 'black';
    +				style[mxConstants.STYLE_STROKECOLOR] = 'black';
    +				delete style[mxConstants.STYLE_FILLCOLOR];
    +
    +				style = mxUtils.clone(style);
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    +				style[mxConstants.STYLE_FONTSIZE] = 10;
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				style[mxConstants.STYLE_HORIZONTAL] = true;
    +				style[mxConstants.STYLE_VERTICAL_ALIGN] = 'middle';
    +				delete style[mxConstants.STYLE_STARTSIZE];
    +				graph.getStylesheet().putCellStyle('process', style);
    +				
    +				style = mxUtils.clone(style);
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_ELLIPSE;
    +				style[mxConstants.STYLE_PERIMETER] = mxPerimeter.EllipsePerimeter;
    +				delete style[mxConstants.STYLE_ROUNDED];
    +				graph.getStylesheet().putCellStyle('state', style);
    +												
    +				style = mxUtils.clone(style);
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RHOMBUS;
    +				style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RhombusPerimeter;
    +				style[mxConstants.STYLE_VERTICAL_ALIGN] = 'top';
    +				style[mxConstants.STYLE_SPACING_TOP] = 40;
    +				style[mxConstants.STYLE_SPACING_RIGHT] = 64;
    +				graph.getStylesheet().putCellStyle('condition', style);
    +								
    +				style = mxUtils.clone(style);
    +				style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_DOUBLE_ELLIPSE;
    +				style[mxConstants.STYLE_PERIMETER] = mxPerimeter.EllipsePerimeter;
    +				style[mxConstants.STYLE_SPACING_TOP] = 28;
    +				style[mxConstants.STYLE_FONTSIZE] = 14;
    +				style[mxConstants.STYLE_FONTSTYLE] = 1;
    +				delete style[mxConstants.STYLE_SPACING_RIGHT];
    +				graph.getStylesheet().putCellStyle('end', style);
    +				
    +				style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +				style[mxConstants.STYLE_ENDARROW] = mxConstants.ARROW_BLOCK;
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				style[mxConstants.STYLE_FONTCOLOR] = 'black';
    +				style[mxConstants.STYLE_STROKECOLOR] = 'black';
    +				
    +				style = mxUtils.clone(style);
    +				style[mxConstants.STYLE_DASHED] = true;
    +				style[mxConstants.STYLE_ENDARROW] = mxConstants.ARROW_OPEN;
    +				style[mxConstants.STYLE_STARTARROW] = mxConstants.ARROW_OVAL;
    +				graph.getStylesheet().putCellStyle('crossover', style);
    +						
    +				// Installs double click on middle control point and
    +				// changes style of edges between empty and this value
    +				graph.alternateEdgeStyle = 'elbow=vertical';
    +
    +				// Adds automatic layout and various switches if the
    +				// graph is enabled
    +				if (graph.isEnabled())
    +				{
    +					// Allows new connections but no dangling edges
    +					graph.setConnectable(true);
    +					graph.setAllowDanglingEdges(false);
    +					
    +					// End-states are no valid sources
    +					var previousIsValidSource = graph.isValidSource;
    +					
    +					graph.isValidSource = function(cell)
    +					{
    +						if (previousIsValidSource.apply(this, arguments))
    +						{
    +							var style = this.getModel().getStyle(cell);
    +							
    +							return style == null ||
    +								!(style == 'end' ||
    +								style.indexOf('end') == 0);
    +						}
    +
    +						return false;
    +					};
    +					
    +					// Start-states are no valid targets, we do not
    +					// perform a call to the superclass function because
    +					// this would call isValidSource
    +					// Note: All states are start states in
    +					// the example below, so we use the state
    +					// style below
    +					graph.isValidTarget = function(cell)
    +					{
    +						var style = this.getModel().getStyle(cell);
    +						
    +						return !this.getModel().isEdge(cell) &&
    +							!this.isSwimlane(cell) &&
    +							(style == null ||
    +							!(style == 'state' ||
    +							style.indexOf('state') == 0));
    +					};
    +					
    +					// Allows dropping cells into new lanes and
    +					// lanes into new pools, but disallows dropping
    +					// cells on edges to split edges
    +					graph.setDropEnabled(true);
    +					graph.setSplitEnabled(false);
    +					
    +					// Returns true for valid drop operations
    +					graph.isValidDropTarget = function(target, cells, evt)
    +					{
    +						if (this.isSplitEnabled() &&
    +							this.isSplitTarget(target, cells, evt))
    +						{
    +							return true;
    +						}
    +						
    +						var model = this.getModel();
    +						var lane = false;
    +						var pool = false;
    +						var cell = false;
    +						
    +						// Checks if any lanes or pools are selected
    +						for (var i = 0; i < cells.length; i++)
    +						{
    +							var tmp = model.getParent(cells[i]);
    +							lane = lane || this.isPool(tmp);
    +							pool = pool || this.isPool(cells[i]);
    +							
    +							cell = cell || !(lane || pool);
    +						}
    +						
    +						return !pool &&
    +							cell != lane &&
    +							((lane && this.isPool(target)) ||
    +							(cell && this.isPool(model.getParent(target))));
    +					};
    +					
    +					// Adds new method for identifying a pool
    +					graph.isPool = function(cell)
    +					{
    +						var model = this.getModel();
    +						var parent = model.getParent(cell);
    +					
    +						return parent != null &&
    +							model.getParent(parent) == model.getRoot();
    +					};
    +					
    +					// Changes swimlane orientation while collapsed
    +					graph.model.getStyle = function(cell)
    +					{
    +						var style = mxGraphModel.prototype.getStyle.apply(this, arguments);
    +					
    +						if (graph.isCellCollapsed(cell))
    +						{
    +							if (style != null)
    +							{
    +								style += ';';
    +							}
    +							else
    +							{
    +								style = '';
    +							}
    +							
    +							style += 'horizontal=1;align=left;spacingLeft=14;';
    +						}
    +						
    +						return style;
    +					};
    +
    +					// Keeps widths on collapse/expand					
    +					var foldingHandler = function(sender, evt)
    +					{
    +						var cells = evt.getProperty('cells');
    +						
    +						for (var i = 0; i < cells.length; i++)
    +						{
    +							var geo = graph.model.getGeometry(cells[i]);
    +
    +							if (geo.alternateBounds != null)
    +							{
    +								geo.width = geo.alternateBounds.width;
    +							}
    +						}
    +					};
    +
    +					graph.addListener(mxEvent.FOLD_CELLS, foldingHandler);
    +				}
    +				
    +				// Applies size changes to siblings and parents
    +				new mxSwimlaneManager(graph);
    +
    +				// Creates a stack depending on the orientation of the swimlane
    +				var layout = new mxStackLayout(graph, false);
    +				
    +				// Makes sure all children fit into the parent swimlane
    +				layout.resizeParent = true;
    +							
    +				// Applies the size to children if parent size changes
    +				layout.fill = true;
    +
    +				// Only update the size of swimlanes
    +				layout.isVertexIgnored = function(vertex)
    +				{
    +					return !graph.isSwimlane(vertex);
    +				}
    +				
    +				// Keeps the lanes and pools stacked
    +				var layoutMgr = new mxLayoutManager(graph);
    +
    +				layoutMgr.getLayout = function(cell)
    +				{
    +					if (!model.isEdge(cell) && graph.getModel().getChildCount(cell) > 0 &&
    +						(model.getParent(cell) == model.getRoot() || graph.isPool(cell)))
    +					{
    +						layout.fill = graph.isPool(cell);
    +						
    +						return layout;
    +					}
    +					
    +					return null;
    +				};
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +
    +				// Adds cells to the model in a single step
    +				model.beginUpdate();
    +				try
    +				{
    +					var pool1 = graph.insertVertex(parent, null, 'Pool 1', 0, 0, 640, 0);
    +					pool1.setConnectable(false);
    +
    +					var lane1a = graph.insertVertex(pool1, null, 'Lane A', 0, 0, 640, 110);
    +					lane1a.setConnectable(false);
    +
    +					var lane1b = graph.insertVertex(pool1, null, 'Lane B', 0, 0, 640, 110);
    +					lane1b.setConnectable(false);
    +
    +					var pool2 = graph.insertVertex(parent, null, 'Pool 2', 0, 0, 640, 0);
    +					pool2.setConnectable(false);
    +
    +					var lane2a = graph.insertVertex(pool2, null, 'Lane A', 0, 0, 640, 140);
    +					lane2a.setConnectable(false);
    +
    +					var lane2b = graph.insertVertex(pool2, null, 'Lane B', 0, 0, 640, 110);
    +					lane2b.setConnectable(false);
    +					
    +					var start1 = graph.insertVertex(lane1a, null, null, 40, 40, 30, 30, 'state');
    +					var end1 = graph.insertVertex(lane1a, null, 'A', 560, 40, 30, 30, 'end');
    +					
    +					var step1 = graph.insertVertex(lane1a, null, 'Contact\nProvider', 90, 30, 80, 50, 'process');
    +					var step11 = graph.insertVertex(lane1a, null, 'Complete\nAppropriate\nRequest', 190, 30, 80, 50, 'process');
    +					var step111 = graph.insertVertex(lane1a, null, 'Receive and\nAcknowledge', 385, 30, 80, 50, 'process');
    +					
    +					var start2 = graph.insertVertex(lane2b, null, null, 40, 40, 30, 30, 'state');
    +					
    +					var step2 = graph.insertVertex(lane2b, null, 'Receive\nRequest', 90, 30, 80, 50, 'process');
    +					var step22 = graph.insertVertex(lane2b, null, 'Refer to Tap\nSystems\nCoordinator', 190, 30, 80, 50, 'process');
    +					
    +					var step3 = graph.insertVertex(lane1b, null, 'Request 1st-\nGate\nInformation', 190, 30, 80, 50, 'process');
    +					var step33 = graph.insertVertex(lane1b, null, 'Receive 1st-\nGate\nInformation', 290, 30, 80, 50, 'process');
    +					
    +					var step4 = graph.insertVertex(lane2a, null, 'Receive and\nAcknowledge', 290, 20, 80, 50, 'process');
    +					var step44 = graph.insertVertex(lane2a, null, 'Contract\nConstraints?', 400, 20, 50, 50, 'condition');
    +					var step444 = graph.insertVertex(lane2a, null, 'Tap for gas\ndelivery?', 480, 20, 50, 50, 'condition');
    +					
    +					var end2 = graph.insertVertex(lane2a, null, 'B', 560, 30, 30, 30, 'end');
    +					var end3 = graph.insertVertex(lane2a, null, 'C', 560, 84, 30, 30, 'end');
    +					
    +					var e = null;
    +					
    +					graph.insertEdge(lane1a, null, null, start1, step1);
    +					graph.insertEdge(lane1a, null, null, step1, step11);
    +					graph.insertEdge(lane1a, null, null, step11, step111);
    +					
    +					graph.insertEdge(lane2b, null, null, start2, step2);
    +					graph.insertEdge(lane2b, null, null, step2, step22);
    +					graph.insertEdge(parent, null, null, step22, step3);
    +					
    +					graph.insertEdge(lane1b, null, null, step3, step33);
    +					graph.insertEdge(lane2a, null, null, step4, step44);
    +					graph.insertEdge(lane2a, null, 'No', step44, step444, 'verticalAlign=bottom');
    +					graph.insertEdge(parent, null, 'Yes', step44, step111, 'verticalAlign=bottom;horizontal=0');
    +					
    +					graph.insertEdge(lane2a, null, 'Yes', step444, end2, 'verticalAlign=bottom');
    +					e = graph.insertEdge(lane2a, null, 'No', step444, end3, 'verticalAlign=top');
    +					e.geometry.points = [new mxPoint(step444.geometry.x + step444.geometry.width / 2,
    +						end3.geometry.y + end3.geometry.height / 2)];
    +					
    +					graph.insertEdge(parent, null, null, step1, step2, 'crossover');
    +					graph.insertEdge(parent, null, null, step3, step11, 'crossover');
    +					e = graph.insertEdge(lane1a, null, null, step11, step33, 'crossover');
    +					e.geometry.points = [new mxPoint(step33.geometry.x + step33.geometry.width / 2 + 20,
    +								step11.geometry.y + step11.geometry.height * 4 / 5)];
    +					graph.insertEdge(parent, null, null, step33, step4);
    +					graph.insertEdge(lane1a, null, null, step111, end1);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					model.endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +<body onload="main(document.getElementById('graphContainer'))">
    +	<div id="graphContainer"
    +		style="position:absolute;overflow:hidden;top:40px;left:40px;width:600px;height:400px;border: gray dotted 1px;cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/template.html b/javascript/examples/template.html
    new file mode 100644
    index 000000000..86dfbcecf
    --- /dev/null
    +++ b/javascript/examples/template.html
    @@ -0,0 +1,59 @@
    +<!--
    +  $Id: template.html,v 1.11 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Template example for mxGraph. This is used as a template HTML file by the
    +  backends to demonstrate the deployment of the client with a graph embedded
    +  in the page as XML data (see graph variable in the onload-handler).
    +  
    +  *** THIS FILE MUST BE DEPLOYED BY ONE OF THE BACKENDS! ***
    +-->
    +<html>
    +<head>
    +	<title>Hello, World!</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '/mxgraph/javascript/src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="/mxgraph/javascript/src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container, xml)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Adds rubberband selection to the graph
    +				new mxRubberband(graph);
    +				
    +				var doc = mxUtils.parseXml(xml);
    +				var codec = new mxCodec(doc);
    +				codec.decode(doc.documentElement, graph.getModel());
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'), '%graph%');">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer" style="overflow:hidden;width:321px;height:241px;background:url('/mxgraph/javascript/examples/editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/thread.html b/javascript/examples/thread.html
    new file mode 100644
    index 000000000..8f425c540
    --- /dev/null
    +++ b/javascript/examples/thread.html
    @@ -0,0 +1,93 @@
    +<!--
    +  $Id: thread.html,v 1.14 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Thread example for mxGraph. This example demonstrates setting
    +  overlays in mxGraph from within a timed function.
    +-->
    +<html>
    +<head>
    +	<title>Thread example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Disables basic selection and cell handling
    +				graph.setEnabled(false);
    +
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +				var v1, v2, e1;
    +												
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +					
    +				// Function to switch the overlay every 5 secs
    +				var f = function()
    +				{
    +					var overlays = graph.getCellOverlays(v1);
    +					
    +					if (overlays == null)
    +					{
    +						graph.removeCellOverlays(v2);
    +						graph.setCellWarning(v1, 'Tooltip');
    +					}
    +					else
    +					{
    +						graph.removeCellOverlays(v1);
    +						graph.setCellWarning(v2, 'Tooltip');
    +					}
    +				};
    +				
    +				window.setInterval(f, 1000);
    +				f();
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/toolbar.html b/javascript/examples/toolbar.html
    new file mode 100644
    index 000000000..ac25021d5
    --- /dev/null
    +++ b/javascript/examples/toolbar.html
    @@ -0,0 +1,177 @@
    +<!--
    +  $Id: toolbar.html,v 1.15 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Toolbar example for mxGraph. This example demonstrates using
    +  existing cells as templates for creating new cells.
    +-->
    +<html>
    +<head>
    +	<title>Toolbar example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main()
    +		{
    +			// Defines an icon for creating new connections in the connection handler.
    +			// This will automatically disable the highlighting of the source vertex.
    +			mxConnectionHandler.prototype.connectImage = new mxImage('images/connector.gif', 16, 16);
    +		
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the div for the toolbar
    +				var tbContainer = document.createElement('div');
    +				tbContainer.style.position = 'absolute';
    +				tbContainer.style.overflow = 'hidden';
    +				tbContainer.style.padding = '2px';
    +				tbContainer.style.left = '0px';
    +				tbContainer.style.top = '26px';
    +				tbContainer.style.width = '24px';
    +				tbContainer.style.bottom = '0px';
    +				
    +				document.body.appendChild(tbContainer);
    +				
    +				// Workaround for Internet Explorer ignoring certain styles
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(tbContainer);
    +				}
    +								
    +				// Creates new toolbar without event processing
    +				var toolbar = new mxToolbar(tbContainer);
    +				toolbar.enabled = false
    +				
    +				// Creates the div for the graph
    +				container = document.createElement('div');
    +				container.style.position = 'absolute';
    +				container.style.overflow = 'hidden';
    +				container.style.left = '24px';
    +				container.style.top = '26px';
    +				container.style.right = '0px';
    +				container.style.bottom = '0px';
    +				container.style.background = 'url("editors/images/grid.gif")';
    +
    +				document.body.appendChild(container);
    +				
    +				// Workaround for Internet Explorer ignoring certain styles
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +				}
    +	
    +				// Creates the model and the graph inside the container
    +				// using the fastest rendering available on the browser
    +				var model = new mxGraphModel();
    +				var graph = new mxGraph(container, model);
    +
    +				// Enables new connections in the graph
    +				graph.setConnectable(true);
    +				graph.setMultigraph(false);
    +
    +				// Stops editing on enter or escape keypress
    +				var keyHandler = new mxKeyHandler(graph);
    +				var rubberband = new mxRubberband(graph);
    +				
    +				var addVertex = function(icon, w, h, style)
    +				{
    +					var vertex = new mxCell(null, new mxGeometry(0, 0, w, h), style);
    +					vertex.setVertex(true);
    +				
    +					addToolbarItem(graph, toolbar, vertex, icon);
    +				};
    +				
    +				addVertex('editors/images/rectangle.gif', 100, 40, '');
    +				addVertex('editors/images/rounded.gif', 100, 40, 'shape=rounded');
    +				addVertex('editors/images/ellipse.gif', 40, 40, 'shape=ellipse');
    +				addVertex('editors/images/rhombus.gif', 40, 40, 'shape=rhombus');
    +				addVertex('editors/images/triangle.gif', 40, 40, 'shape=triangle');
    +				addVertex('editors/images/cylinder.gif', 40, 40, 'shape=cylinder');
    +				addVertex('editors/images/actor.gif', 30, 40, 'shape=actor');
    +				toolbar.addLine();
    +				
    +				var button = mxUtils.button('Create toolbar entry from selection', function(evt)
    +				{
    +					if (!graph.isSelectionEmpty())
    +					{
    +						// Creates a copy of the selection array to preserve its state
    +						var cells = graph.getSelectionCells();
    +						var bounds = graph.getView().getBounds(cells);
    +						
    +						// Function that is executed when the image is dropped on
    +						// the graph. The cell argument points to the cell under
    +						// the mousepointer if there is one.
    +						var funct = function(graph, evt, cell)
    +						{
    +							graph.stopEditing(false);
    +			
    +							var pt = graph.getPointForEvent(evt);
    +							var dx = pt.x - bounds.x;
    +							var dy = pt.y - bounds.y;
    +							
    +							var clones = graph.importCells(cells, dx, dy);
    +							graph.setSelectionCells(clones);
    +						}
    +			
    +						// Creates the image which is used as the drag icon (preview)
    +						var img = toolbar.addMode(null, 'editors/images/outline.gif', funct);
    +						mxUtils.makeDraggable(img, graph, funct);
    +					}
    +				});
    +			
    +				
    +				button.style.position = 'absolute';
    +				button.style.left = '2px';
    +				button.style.top = '2px';
    +				
    +				document.body.appendChild(button);
    +			}
    +		}
    +
    +		function addToolbarItem(graph, toolbar, prototype, image)
    +		{
    +			// Function that is executed when the image is dropped on
    +			// the graph. The cell argument points to the cell under
    +			// the mousepointer if there is one.
    +			var funct = function(graph, evt, cell)
    +			{
    +				graph.stopEditing(false);
    +
    +				var pt = graph.getPointForEvent(evt);
    +				var vertex = graph.getModel().cloneCell(prototype);
    +				vertex.geometry.x = pt.x;
    +				vertex.geometry.y = pt.y;
    +					
    +				graph.addCell(vertex);
    +				graph.setSelectionCell(vertex);
    +			}
    +
    +			// Creates the image which is used as the drag icon (preview)
    +			var img = toolbar.addMode(null, image, funct);
    +			mxUtils.makeDraggable(img, graph, funct);
    +		}
    +
    +	</script>
    +</head>
    +
    +<!-- Calls the main function after the page has loaded. Container is dynamically created. -->
    +<body onload="main();">
    +</body>
    +</html>
    diff --git a/javascript/examples/tree.html b/javascript/examples/tree.html
    new file mode 100644
    index 000000000..3c7693e6c
    --- /dev/null
    +++ b/javascript/examples/tree.html
    @@ -0,0 +1,284 @@
    +<!--
    +  $Id: tree.html,v 1.8 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Tree example for mxGraph. This example demonstrates folding
    +  of subtrees in a acyclic graph (tree).
    +-->
    +<html>
    +<head>
    +	<title>Tree example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +	<script type="text/javascript">
    +		/*
    +			Defines a custom shape for the tree node that includes the
    +			upper half of the outgoing edge(s).
    +		*/
    +		function TreeNodeShape() { };
    +
    +		TreeNodeShape.prototype = new mxCylinder();
    +		TreeNodeShape.prototype.constructor = TreeNodeShape;
    +
    +		// Defines the length of the upper edge segment.
    +		TreeNodeShape.prototype.segment = 20;
    +
    +		// Needs access to the cell state for rendering
    +		TreeNodeShape.prototype.apply = function(state)
    +		{
    +			mxCylinder.prototype.apply.apply(this, arguments);
    +			this.state = state;
    +		};
    +		
    +		TreeNodeShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +		{
    +			var graph = this.state.view.graph;
    +			var hasChildren = graph.model.getOutgoingEdges(this.state.cell).length > 0;
    +			
    +			if (isForeground)
    +			{
    +				if (hasChildren)
    +				{
    +					// Painting outside of vertex bounds is used here
    +					path.moveTo(w / 2, h + this.segment);
    +					path.lineTo(w / 2, h);
    +					path.end();
    +				}	
    +			}
    +			else
    +			{
    +				path.moveTo(0, 0);
    +				path.lineTo(w, 0);
    +				path.lineTo(w, h);
    +				path.lineTo(0, h);
    +				path.close();
    +			}
    +		};
    +		
    +		mxCellRenderer.prototype.defaultShapes['treenode'] = TreeNodeShape;
    +
    +		// Defines a custom perimeter for the nodes in the tree
    +		mxGraphView.prototype.updateFloatingTerminalPoint = function(edge, start, end, source)
    +		{
    +			var pt = null;
    +			
    +			if (source)
    +			{
    +				pt = new mxPoint(start.x + start.width / 2,
    +						start.y + start.height + TreeNodeShape.prototype.segment);
    +			}
    +			else
    +			{
    +				pt = new mxPoint(start.x + start.width / 2, start.y);
    +			}
    +
    +			edge.setAbsoluteTerminalPoint(pt, source);
    +		};
    +	</script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main()
    +		{
    +			// Checks if browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is
    +				// not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Sets the collapse and expand icons. The values below are the default
    +				// values, but this is how to replace them if you need to.
    +				mxGraph.prototype.collapsedImage = new mxImage(mxClient.imageBasePath + '/collapsed.gif', 9, 9);
    +				mxGraph.prototype.expandedImage = new mxImage(mxClient.imageBasePath + '/expanded.gif', 9, 9);
    +				
    +				// Workaround for Internet Explorer ignoring certain styles
    +				var container = document.createElement('div');
    +				container.style.position = 'absolute';
    +				container.style.overflow = 'hidden';
    +				container.style.left = '0px';
    +				container.style.top = '0px';
    +				container.style.right = '0px';
    +				container.style.bottom = '0px';
    +				
    +				if (mxClient.IS_IE)
    +				{
    +					new mxDivResizer(container);
    +				}
    +				
    +				document.body.appendChild(container);
    +			
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Set some stylesheet options for the visual appearance
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_SHAPE] = 'treenode';
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +				style[mxConstants.STYLE_SHADOW] = true;
    +				
    +				style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.TopToBottom;
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				
    +				// Enables automatic sizing for vertices after editing and
    +				// panning by using the left mouse button.
    +				graph.setAutoSizeCells(true);
    +				graph.setPanning(true);
    +				graph.panningHandler.useLeftButtonForPanning = true;
    +
    +				// Stops editing on enter or escape keypress
    +				var keyHandler = new mxKeyHandler(graph);
    +				
    +				// Enables automatic layout on the graph and installs
    +				// a tree layout for all groups who's children are
    +				// being changed, added or removed.
    +				var layout = new mxCompactTreeLayout(graph, false);
    +				layout.useBoundingBox = false;
    +				layout.levelDistance = 30;
    +				layout.nodeDistance = 10;
    +
    +				var layoutMgr = new mxLayoutManager(graph);
    +				
    +				layoutMgr.getLayout = function(cell)
    +				{
    +					if (cell.getChildCount() > 0)
    +					{
    +						return layout;
    +					}
    +				};
    +
    +				// Disallow any selections
    +				graph.setCellsSelectable(false);
    +
    +				// Defines the condition for showing the folding icon
    +				graph.isCellFoldable = function(cell)
    +				{
    +					return this.model.getOutgoingEdges(cell).length > 0;
    +				};
    +
    +				// Defines the position of the folding icon
    +				graph.cellRenderer.getControlBounds = function(state)
    +				{
    +					if (state.control != null)
    +					{
    +						var oldScale = state.control.scale;
    +						var w = state.control.bounds.width / oldScale;
    +						var h = state.control.bounds.height / oldScale;
    +						var s = state.view.scale;			
    +
    +						return new mxRectangle(state.x + state.width / 2 - w / 2 * s,
    +							state.y + state.height + TreeNodeShape.prototype.segment * s - h / 2 * s,
    +							w * s, h * s);
    +					}
    +					
    +					return null;
    +				};
    +
    +				// Implements the click on a folding icon
    +				graph.foldCells = function(collapse, recurse, cells)
    +				{
    +					this.model.beginUpdate();
    +					try
    +					{
    +						toggleSubtree(this, cells[0], !collapse);
    +						this.model.setCollapsed(cells[0], collapse);
    +
    +						// Executes the layout for the new graph since
    +						// changes to visiblity and collapsed state do
    +						// not trigger a layout in the current manager.
    +						layout.execute(graph.getDefaultParent());
    +					}
    +					finally
    +					{
    +						this.model.endUpdate();
    +					}
    +				};
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds the root vertex of the tree
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var w = graph.container.offsetWidth;
    +					var root = graph.insertVertex(parent, 'treeRoot', 'Root', w/2 - 30, 20, 60, 40);
    +
    +					var v1 = graph.insertVertex(parent, 'v1', 'Child 1', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', root, v1);
    +					
    +					var v2 = graph.insertVertex(parent, 'v2', 'Child 2', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', root, v2);
    +
    +					var v3 = graph.insertVertex(parent, 'v3', 'Child 3', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', root, v3);
    +					
    +					var v11 = graph.insertVertex(parent, 'v11', 'Child 1.1', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', v1, v11);
    +					
    +					var v12 = graph.insertVertex(parent, 'v12', 'Child 1.2', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', v1, v12);
    +					
    +					var v21 = graph.insertVertex(parent, 'v21', 'Child 2.1', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', v2, v21);
    +					
    +					var v22 = graph.insertVertex(parent, 'v22', 'Child 2.2', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', v2, v22);
    +					
    +					var v221 = graph.insertVertex(parent, 'v221', 'Child 2.2.1', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', v22, v221);
    +					
    +					var v222 = graph.insertVertex(parent, 'v222', 'Child 2.2.2', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', v22, v222);
    +
    +					var v31 = graph.insertVertex(parent, 'v31', 'Child 3.1', 0, 0, 60, 40);
    +					graph.insertEdge(parent, null, '', v3, v31);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +
    +		// Updates the visible state of a given subtree taking into
    +		// account the collapsed state of the traversed branches
    +		function toggleSubtree(graph, cell, show)
    +		{
    +			show = (show != null) ? show : true;
    +			var cells = [];
    +			
    +			graph.traverse(cell, true, function(vertex)
    +			{
    +				if (vertex != cell)
    +				{
    +					cells.push(vertex);
    +				}
    +
    +				// Stops recursion if a collapsed cell is seen
    +				return vertex == cell || !graph.isCellCollapsed(vertex);
    +			});
    +
    +			graph.toggleCells(show, cells, true);
    +		};
    +	</script>
    +</head>
    +
    +<!-- Calls the main function after the page has loaded. Container is dynamically created. -->
    +<body onload="main();">
    +</body>
    +</html>
    diff --git a/javascript/examples/uiconfig.html b/javascript/examples/uiconfig.html
    new file mode 100644
    index 000000000..81b0eef16
    --- /dev/null
    +++ b/javascript/examples/uiconfig.html
    @@ -0,0 +1,87 @@
    +<!--
    +  $Id: uiconfig.html,v 1.7 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  UIConfig example for mxGraph. This example demonstrates using a config
    +  file to configure the toolbar and popup menu in mxEditor.
    +-->
    +<html>
    +<head>
    +	<title>UIConfig example</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main()
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container. The
    +				// editor is used to create certain functionality for the
    +				// graph, such as the rubberband selection, but most parts
    +				// of the UI are custom in this example.
    +				var editor = new mxEditor();
    +
    +				// Configures the editor's UI, the toolbar and the popupmenu.
    +				// Note that the element with the id toolbox is used in the
    +				// config file, the toolbar element (top element) is used below
    +				// to create a second toolbar programmatically.
    +				// The cells to be created via drag and drop are added
    +				// in the templates array in mxEditor, and a custom action is
    +				// added to the built-in actions in the editor, as well.
    +				// The ui section maps the existing DOM elements to the graph
    +				// and toolbar objects, respectively.
    +				// Keep in mind that the as-attributes of the add-items in the
    +				// toolbar and popupmenu sections refer to keys in mxResources.
    +				var config = mxUtils.load('uiconfig.xml').getDocumentElement();
    +				editor.configure(config);
    +
    +				// Enables new connections in the graph
    +				editor.graph.setConnectable(true);
    +
    +				// Creates the second toolbar programmatically
    +				var container = document.getElementById('toolbar');
    +				var toolbar = new mxDefaultToolbar(container, editor);
    +				//Use eg. mxResources.get("delete") to translate tooltip
    +				toolbar.addItem("Show XML", "images/icons48/gear.png", "myFirstAction");
    +				toolbar.addItem("Delete", "images/icons48/keys.png", "delete");
    +			}
    +		}
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main();" style="margin:0px;">
    +	<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
    +	<tr>
    +		<td id="toolbar" colspan="2" height="80px" style="background:#7F7F7F;padding:10px;">
    +		</td>
    +	</tr>
    +	<tr>
    +		<td id="toolbox" valign="top" width="70px" style="min-width:70px;background:#7F7F7F;padding:12px;">
    +		</td>
    +		<td width="100%" style="background:url('editors/images/grid.gif');border: solid gray 1px;">
    +			<div id="graph" style="overflow:auto;width:100%;height:100%;">
    +			</div>
    +		</td>
    +	</tr>
    +	</table>
    +</body>
    +</html>
    diff --git a/javascript/examples/uiconfig.xml b/javascript/examples/uiconfig.xml
    new file mode 100644
    index 000000000..97bdc10b9
    --- /dev/null
    +++ b/javascript/examples/uiconfig.xml
    @@ -0,0 +1,36 @@
    +<mxEditor>
    +	<ui>
    +		<add as="graph" element="graph"/>
    +		<add as="toolbar" element="toolbox"/>
    +	</ui>
    +	<Array as="templates">
    +		<add as="myFirstTemplate">
    +			<Rect label="Rectangle" href="">
    +				<mxCell vertex="1">	
    +					<mxGeometry as="geometry" width="80" height="40"/>
    +				</mxCell>
    +			</Rect>
    +		</add>
    +	</Array>
    +	<Array as="actions">
    +		<add as="myFirstAction"><![CDATA[
    +			function (editor, cell)
    +			{
    +				var encoder = new mxCodec();
    +				var node = encoder.encode(editor.graph.getModel());
    +				mxUtils.popup(mxUtils.getPrettyXml(node), true);
    +			}
    +		]]></add>
    +	</Array>
    +	<mxDefaultToolbar as="toolbar">
    +		<add as="MyFirstAction" action="myFirstAction" icon="images/icons48/gear.png"/>
    +		<hr/><br/>
    +		<add as="Gear" template="myFirstTemplate" style="rounded=1" icon="images/icons48/server.png"/>
    +		<add as="Earth" template="myFirstTemplate" style="shape=ellipse" icon="images/icons48/earth.png"/>
    +	</mxDefaultToolbar>
    +	<mxDefaultPopupMenu as="popupHandler">	
    +		<add as="Show XML (Custom)" action="myFirstAction" icon="images/icons48/gear.png"/>
    +		<separator/>
    +		<add as="Delete (Built-in)" action="delete" icon="images/icons48/keys.png" if="cell"/>
    +	</mxDefaultPopupMenu>
    +</mxEditor>
    diff --git a/javascript/examples/userobject.html b/javascript/examples/userobject.html
    new file mode 100644
    index 000000000..0bf74c7f0
    --- /dev/null
    +++ b/javascript/examples/userobject.html
    @@ -0,0 +1,338 @@
    +<!--
    +  $Id: userobject.html,v 1.9 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  User object example for mxGraph. This example demonstrates using
    +  XML objects as values for cells.
    +-->
    +<html>
    +<head>
    +	<title>User object example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Note that these XML nodes will be enclosing the
    +				// mxCell nodes for the model cells in the output
    +				var doc = mxUtils.createXmlDocument();
    +
    +				var person1 = doc.createElement('Person');
    +				person1.setAttribute('firstName', 'Daffy');
    +				person1.setAttribute('lastName', 'Duck');
    +
    +				var person2 = doc.createElement('Person');
    +				person2.setAttribute('firstName', 'Bugs');
    +				person2.setAttribute('lastName', 'Bunny');
    +
    +				var relation = doc.createElement('Knows');
    +				relation.setAttribute('since', '1985');
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +
    +				// Optional disabling of sizing
    +				graph.setCellsResizable(false);
    +				
    +				// Configures the graph contains to resize and
    +				// add a border at the bottom, right
    +				graph.setResizeContainer(true);
    +				graph.minimumContainerSize = new mxRectangle(0, 0, 500, 380);
    +				graph.setBorder(60);
    +				
    +				// Stops editing on enter key, handles escape
    +				new mxKeyHandler(graph);
    +
    +				// Overrides method to disallow edge label editing
    +				graph.isCellEditable = function(cell)
    +				{
    +					return !this.getModel().isEdge(cell);
    +				};
    +				
    +				// Overrides method to provide a cell label in the display
    +				graph.convertValueToString = function(cell)
    +				{
    +					if (mxUtils.isNode(cell.value))
    +					{
    +						if (cell.value.nodeName.toLowerCase() == ('person'))
    +						{
    +							var firstName = cell.getAttribute('firstName', '');
    +							var lastName = cell.getAttribute('lastName', '');
    +
    +							if (lastName != null && lastName.length > 0)
    +							{
    +								return lastName + ', ' + firstName;
    +							}
    +
    +							return firstName;
    +						}
    +						else if (cell.value.nodeName.toLowerCase() == 'knows')
    +						{
    +							return cell.value.nodeName + ' (Since '
    +									+  cell.getAttribute('since', '') + ')';
    +						}
    +
    +					}
    +
    +					return '';
    +				};
    +
    +				// Overrides method to store a cell label in the model
    +				var cellLabelChanged = graph.cellLabelChanged;
    +				graph.cellLabelChanged = function(cell, newValue, autoSize)
    +				{
    +					if (mxUtils.isNode(cell.value) &&
    +						cell.value.nodeName.toLowerCase() == ('person'))
    +					{
    +						var pos = newValue.indexOf(' ');
    +
    +						var firstName = (pos > 0) ? newValue.substring(0,
    +								pos) : newValue;
    +						var lastName = (pos > 0) ? newValue.substring(
    +								pos + 1, newValue.length) : '';
    +
    +						// Clones the value for correct undo/redo
    +						var elt = cell.value.cloneNode(true);
    +
    +						elt.setAttribute('firstName', firstName);
    +						elt.setAttribute('lastName', lastName);
    +
    +						newValue = elt;
    +						autoSize = true;
    +					}
    +					
    +					cellLabelChanged.apply(this, arguments);
    +				};
    +
    +				// Overrides method to create the editing value
    +				var getEditingValue = graph.getEditingValue;
    +				graph.getEditingValue = function(cell)
    +				{
    +					if (mxUtils.isNode(cell.value) &&
    +						cell.value.nodeName.toLowerCase() == ('person'))
    +					{
    +						var firstName = cell.getAttribute('firstName', '');
    +						var lastName = cell.getAttribute('lastName', '');
    +
    +						return firstName + ' ' + lastName;
    +					}
    +				};
    +
    +				// Adds a special tooltip for edges
    +				graph.setTooltips(true);
    +				
    +				var getTooltipForCell = graph.getTooltipForCell;
    +				graph.getTooltipForCell = function(cell)
    +				{
    +					// Adds some relation details for edges
    +					if (graph.getModel().isEdge(cell))
    +					{
    +						var src = this.getLabel(this.getModel().getTerminal(cell, true));
    +						var trg = this.getLabel(this.getModel().getTerminal(cell, false));
    +
    +						return src + ' ' + cell.value.nodeName + ' ' +  trg;
    +					}
    +
    +					return getTooltipForCell.apply(this, arguments);
    +				};
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +
    +				// Adds an option to view the XML of the graph
    +				document.body.appendChild(mxUtils.button('View XML', function()
    +				{
    +					var encoder = new mxCodec();
    +					var node = encoder.encode(graph.getModel());
    +					mxUtils.popup(mxUtils.getPrettyXml(node), true);
    +				}));
    +
    +				// Changes the style for match the markup
    +				// Creates the default style for vertices
    +				var style = graph.getStylesheet().getDefaultVertexStyle();
    +				style[mxConstants.STYLE_STROKECOLOR] = 'gray';
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				style[mxConstants.STYLE_SHADOW] = true;
    +				style[mxConstants.STYLE_FILLCOLOR] = '#DFDFDF';
    +				style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
    +				style[mxConstants.STYLE_FONTCOLOR] = 'black';
    +				style[mxConstants.STYLE_FONTSIZE] = '12';
    +				style[mxConstants.STYLE_SPACING] = 4;
    +		
    +				// Creates the default style for edges
    +				style = graph.getStylesheet().getDefaultEdgeStyle();
    +				style[mxConstants.STYLE_STROKECOLOR] = '#0C0C0C';
    +				style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR] = 'white';
    +				style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +				style[mxConstants.STYLE_ROUNDED] = true;
    +				style[mxConstants.STYLE_FONTCOLOR] = 'black';
    +				style[mxConstants.STYLE_FONTSIZE] = '10';
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, person1, 40, 40, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, person2, 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, relation, v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +				// Implements a properties panel that uses
    +				// mxCellAttributeChange to change properties
    +				graph.getSelectionModel().addListener(mxEvent.CHANGE, function(sender, evt)
    +				{
    +					selectionChanged(graph);
    +				});
    +
    +				selectionChanged(graph);
    +			}
    +
    +			/**
    +			 * Updates the properties panel
    +			 */
    +			function selectionChanged(graph)
    +			{
    +				var div = document.getElementById('properties');
    +
    +				// Forces focusout in IE
    +				graph.container.focus();
    +
    +				// Clears the DIV the non-DOM way
    +				div.innerHTML = '';
    +
    +				// Gets the selection cell
    +				var cell = graph.getSelectionCell();
    +
    +				if (cell == null)
    +				{
    +					mxUtils.writeln(div, 'Nothing selected.');
    +				}
    +				else
    +				{
    +					// Writes the title
    +					var center = document.createElement('center');
    +					mxUtils.writeln(center, cell.value.nodeName + ' (' + cell.id + ')');
    +					div.appendChild(center);
    +					mxUtils.br(div);
    +
    +					// Creates the form from the attributes of the user object
    +					var form = new mxForm();
    +	
    +					var attrs = cell.value.attributes;
    +					
    +					for (var i = 0; i < attrs.length; i++)
    +					{
    +						createTextField(graph, form, cell, attrs[i]);
    +					}
    +	
    +					div.appendChild(form.getTable());
    +					mxUtils.br(div);
    +				}
    +			}
    +
    +			/**
    +			 * Creates the textfield for the given property.
    +			 */
    +			function createTextField(graph, form, cell, attribute)
    +			{
    +				var input = form.addText(attribute.nodeName + ':', attribute.nodeValue);
    +
    +				var applyHandler = function()
    +				{
    +					var newValue = input.value || '';
    +					var oldValue = cell.getAttribute(attribute.nodeName, '');
    +
    +					if (newValue != oldValue)
    +					{
    +						graph.getModel().beginUpdate();
    +                        
    +                        try
    +                        {
    +                        	var edit = new mxCellAttributeChange(
    + 		                           cell, attribute.nodeName,
    + 		                           newValue);
    +                           	graph.getModel().execute(edit);
    +                           	graph.updateCellSize(cell);
    +                        }
    +                        finally
    +                        {
    +                            graph.getModel().endUpdate();
    +                        }
    +					}
    +				}; 
    +
    +				mxEvent.addListener(input, 'keypress', function (evt)
    +				{
    +					// Needs to take shift into account for textareas
    +					if (evt.keyCode == /*enter*/13 &&
    +						!mxEvent.isShiftDown(evt))
    +					{
    +						input.blur();
    +					}
    +				});
    +
    +				if (mxClient.IS_IE)
    +				{
    +					mxEvent.addListener(input, 'focusout', applyHandler);
    +				}
    +				else
    +				{
    +					// Note: Known problem is the blurring of fields in
    +					// Firefox by changing the selection, in which case
    +					// no event is fired in FF and the change is lost.
    +					// As a workaround you should use a local variable
    +					// that stores the focused field and invoke blur
    +					// explicitely where we do the graph.focus above.
    +					mxEvent.addListener(input, 'blur', applyHandler);
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +	<table>
    +	<tr>
    +		<td>
    +			<div id="graphContainer"
    +				style="border: solid 1px black;overflow:hidden;width:321px;height:241px;">
    +			</div>
    +		</td>
    +		<td valign="top">
    +			<div id="properties"
    +				style="border: solid 1px black; padding: 10px;">
    +			</div>
    +		</td>
    +	</tr>
    +	</table>
    +</body>
    +</html>
    diff --git a/javascript/examples/validation.html b/javascript/examples/validation.html
    new file mode 100644
    index 000000000..9fca4c1d6
    --- /dev/null
    +++ b/javascript/examples/validation.html
    @@ -0,0 +1,124 @@
    +<!--
    +  $Id: validation.html,v 1.7 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Validation example for mxGraph. This example demonstrates using
    +  multiplicities for automatically validating a graph.
    +-->
    +<html>
    +<head>
    +	<title>Validation example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				var xmlDocument = mxUtils.createXmlDocument();
    +				var sourceNode = xmlDocument.createElement('Source');
    +				var targetNode = xmlDocument.createElement('Target');
    +				var subtargetNode = xmlDocument.createElement('Subtarget');
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				graph.setConnectable(true);
    +				graph.setTooltips(true);
    +				graph.setAllowDanglingEdges(false);
    +				graph.setMultigraph(false);
    +
    +				// Source nodes needs 1..2 connected Targets
    +				graph.multiplicities.push(new mxMultiplicity(
    +				   true, 'Source', null, null, 1, 2, ['Target'],
    +				   'Source Must Have 1 or 2 Targets',
    +				   'Source Must Connect to Target'));
    +
    +				// Source node does not want any incoming connections
    +				graph.multiplicities.push(new mxMultiplicity(
    +				   false, 'Source', null, null, 0, 0, null,
    +				   'Source Must Have No Incoming Edge',
    +				   null)); // Type does not matter
    +
    +				// Target needs exactly one incoming connection from Source
    +				graph.multiplicities.push(new mxMultiplicity(
    +				   false, 'Target', null, null, 1, 1, ['Source'],
    +				   'Target Must Have 1 Source',
    +				   'Target Must Connect From Source'));
    +				
    +				// Enables rubberband selection
    +				new mxRubberband(graph);
    +
    +				// Removes cells when [DELETE] is pressed
    +				var keyHandler = new mxKeyHandler(graph);
    +				keyHandler.bindKey(46, function(evt)
    +				{
    +					if (graph.isEnabled())
    +					{
    +						graph.removeCells();
    +					}
    +				});
    +
    +				// Installs automatic validation (use editor.validation = true
    +				// if you are using an mxEditor instance)
    +				var listener = function(sender, evt)
    +				{
    +					graph.validateGraph();
    +				};
    +				
    +				graph.getModel().addListener(mxEvent.CHANGE, listener);
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, sourceNode, 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, targetNode, 200, 20, 80, 30);
    +					var v3 = graph.insertVertex(parent, null, targetNode.cloneNode(true), 200, 80, 80, 30);
    +					var v4 = graph.insertVertex(parent, null, targetNode.cloneNode(true), 200, 140, 80, 30);
    +					var v5 = graph.insertVertex(parent, null, subtargetNode, 200, 200, 80, 30);
    +					var v6 = graph.insertVertex(parent, null, sourceNode.cloneNode(true), 20, 140, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +					var e2 = graph.insertEdge(parent, null, '', v1, v3);
    +					var e3 = graph.insertEdge(parent, null, '', v6, v4);
    +					//var e4 = graph.insertEdge(parent, null, '', v1, v4);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:321px;height:281px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/windows.html b/javascript/examples/windows.html
    new file mode 100644
    index 000000000..8b6cb98ee
    --- /dev/null
    +++ b/javascript/examples/windows.html
    @@ -0,0 +1,134 @@
    +<!--
    +  $Id: windows.html,v 1.14 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Windows example for mxGraph. This example demonstrates using
    +  the mxWindow class for displaying windows.
    +-->
    +<html>
    +<head>
    +	<title>Windows example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Note that we're using the container scrollbars for the graph so that the
    +				// container extends to the parent div inside the window
    +				var wnd = new mxWindow('Scrollable, resizable, given height', container, 50, 50, 220, 224, true, true);
    +				
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Adds rubberband selection and keystrokes
    +				graph.setTooltips(true);
    +				graph.setPanning(true);
    +				var rubberband = new mxRubberband(graph);
    +				new mxKeyHandler(graph);
    +				
    +				mxEvent.disableContextMenu(container);
    +				
    +				// Workaround for rubberband rendering in IE (IE9 does not need this)
    +				if (mxClient.IS_IE)
    +				{
    +					mxRubberbandMouseMove = mxRubberband.prototype.mouseMove;
    +					mxRubberband.prototype.mouseMove = function(sender, me)
    +					{
    +						mxRubberbandMouseMove.apply(this, arguments);
    +						
    +						if (this.div != null && this.div.style.background != 'transparent')
    +						{
    +							container.style.cursor = 'default';
    +							this.div.style.background = 'transparent';
    +							this.div.style.borderStyle = 'dashed';
    +							mxUtils.setOpacity(this.div, 100);
    +						}
    +					}
    +				}
    +				
    +				// Workaround for no resize event of container parent in
    +				// Firefox, canvas needs update of limited drawing area
    +				else
    +				{
    +					wnd.addListener(mxEvent.RESIZE_END, function(evt)
    +					{
    +						graph.sizeDidChange();
    +					});
    +				}
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +								
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
    +					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
    +					var e1 = graph.insertEdge(parent, null, '', v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +
    +				wnd.setMaximizable(true);
    +				wnd.setResizable(true);
    +				wnd.setVisible(true);
    +				
    +				var lorem = 'Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ';
    +				var content = document.createElement('div');
    +				mxUtils.write(content, lorem + lorem + lorem);
    +				
    +				wnd = new mxWindow('Scrollable, resizable, auto height', content, 300, 50, 200, null, true, true);
    +				wnd.setMaximizable(true);
    +				wnd.setScrollable(true);
    +				wnd.setResizable(true);
    +				wnd.setVisible(true);
    +				
    +				content = content.cloneNode(true)
    +				content.style.width = '400px';
    +				
    +				wnd = new mxWindow('Scrollable, resizable, fixed content', content, 520, 50, 220, 200, true, true);
    +				wnd.setMaximizable(true);
    +				wnd.setScrollable(true);
    +				wnd.setResizable(true);
    +				wnd.setVisible(true);
    +				
    +				mxLog.show();
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="overflow:auto;width:100%;height:100%;background:lightyellow;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/wires.html b/javascript/examples/wires.html
    new file mode 100644
    index 000000000..76e0a6aa6
    --- /dev/null
    +++ b/javascript/examples/wires.html
    @@ -0,0 +1,885 @@
    +<html>
    +<!--
    +README
    +******
    +- Edge-to-edge connections: We store the point where the mouse
    +was released in the terminal points of the edge geometry and
    +use that point to find the nearest segment on the target edge
    +and the connection point between the two edges in
    +mxGraphView.updateFixedTerminalPoint.
    +
    +- The orthogonal router, which is implemented as an edge style,
    +computes its result based on the output of mxGraphView.
    +updateFixedTerminalPoint, which computes all connection points
    +for edge-to-edge connections and constrained ports and vertices
    +and stores them in state.absolutePoints. 
    +
    +- Routing directions are stored in the 'portConstraint' style.
    +Possible values for this style horizontal and vertical. Note
    +that this may have other values depending on the edge style.
    +
    +- For edge-to-edge connections, a 'source-/targetConstraint'
    +style is added in updateFixedTerminalPoint that contains the
    +orientation of the segment that the edge connects to. Possible
    +values are horizontal, vertical.
    +
    +- An alternative solution for connection points via connection
    +constraints is demonstrated. In this setup, the edge is connected
    +to the parent cell directly. There are no child cells that act
    +as "ports". Instead, the connection information is stored as a
    +relative point in the connecting edge. (See also: portrefs.html
    +for storing references to ports.)
    +
    +-->
    +<head>
    +	<title>Wires</title>
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +	<script type="text/javascript">
    +		// If connect preview is not moved away then getCellAt is used to detect the cell under
    +		// the mouse if the mouse is over the preview shape in IE (no event transparency), ie.
    +		// the built-in hit-detection of the HTML document will not be used in this case.
    +		mxConnectionHandler.prototype.movePreviewAway = false;
    +		mxConnectionHandler.prototype.waypointsEnabled = true;
    +		mxGraph.prototype.resetEdgesOnConnect = false;
    +		mxConstants.SHADOWCOLOR = '#C0C0C0';
    +		mxConnector.prototype.crisp = true;
    +		mxLine.prototype.crisp = true;
    +		var joinNodeSize = 7;
    +		var strokeWidth = 2;
    +		
    +		// Replaces the port image
    +		mxConstraintHandler.prototype.pointImage = new mxImage('images/dot.gif', 10, 10);
    +		
    +		// Enables guides
    +		mxGraphHandler.prototype.guidesEnabled = true;
    +		
    +	    // Alt disables guides
    +	    mxGuide.prototype.isEnabledForEvent = function(evt)
    +	    {
    +	    	return !mxEvent.isAltDown(evt);
    +	    };
    +		
    +		// Enables snapping waypoints to terminals
    +		mxEdgeHandler.prototype.snapToTerminals = true;
    +		
    +		function main(container)
    +		{
    +			var graph = new mxGraph(container);
    +			graph.view.scale = 1;
    +			graph.setPanning(true);
    +			graph.setConnectable(true);
    +			graph.setConnectableEdges(true);
    +			graph.setDisconnectOnMove(false);
    +			graph.foldingEnabled = false;
    +			
    +			//Maximum size
    +			graph.maximumGraphBounds = new mxRectangle(0, 0, 800, 600)
    +			graph.border = 50;
    +
    +			// Panning handler consumed right click so this must be
    +			// disabled if right click should stop connection handler.
    +			graph.panningHandler.isPopupTrigger = function() { return false; };
    +			
    +			// Enables return key to stop editing (use shift-enter for newlines)
    +			graph.setEnterStopsCellEditing(true);
    +
    +			// Adds rubberband selection
    +			new mxRubberband(graph);
    +			
    +			// Alternative solution for implementing connection points without child cells.
    +			// This can be extended as shown in portrefs.html example to allow for per-port
    +			// incoming/outgoing direction.
    +			graph.getAllConnectionConstraints = function(terminal)
    +			{
    +			   var geo = (terminal != null) ? this.getCellGeometry(terminal.cell) : null;
    +
    +			   if ((geo != null ? !geo.relative : false) &&
    +				   this.getModel().isVertex(terminal.cell) &&
    +				   this.getModel().getChildCount(terminal.cell) == 0)
    +			   {
    +					return [new mxConnectionConstraint(new mxPoint(0, 0.5), false),
    +				    	new mxConnectionConstraint(new mxPoint(1, 0.5), false)];
    +			    }
    +
    +				return null;
    +			};
    +
    +			// Makes sure non-relative cells can only be connected via constraints
    +			graph.connectionHandler.isConnectableCell = function(cell)
    +			{
    +				if (this.graph.getModel().isEdge(cell))
    +				{
    +					return true;
    +				}
    +				else
    +				{
    +					var geo = (cell != null) ? this.graph.getCellGeometry(cell) : null;
    +					
    +					return (geo != null) ? geo.relative : false;
    +				}
    +			};
    +			mxEdgeHandler.prototype.isConnectableCell = function(cell)
    +			{
    +				return graph.connectionHandler.isConnectableCell(cell);
    +			};
    +			
    +			// Adds a special tooltip for edges
    +			graph.setTooltips(true);
    +			
    +			var getTooltipForCell = graph.getTooltipForCell;
    +			graph.getTooltipForCell = function(cell)
    +			{
    +				var tip = '';
    +				
    +				if (cell != null)
    +				{
    +					var src = this.getModel().getTerminal(cell, true);
    +					
    +					if (src != null)
    +					{
    +						tip += this.getTooltipForCell(src) + ' ';
    +					}
    +					
    +					var parent = this.getModel().getParent(cell);
    +					
    +					if (this.getModel().isVertex(parent))
    +					{
    +						tip += this.getTooltipForCell(parent) + '.';
    +					}
    +	
    +					tip += getTooltipForCell.apply(this, arguments);
    +					
    +					var trg = this.getModel().getTerminal(cell, false);
    +					
    +					if (trg != null)
    +					{
    +						tip += ' ' + this.getTooltipForCell(trg);
    +					}
    +				}
    +
    +				return tip;
    +			};
    +
    +			// Switch for black background and bright styles
    +			var invert = false;
    +			
    +			if (invert)
    +			{
    +				container.style.backgroundColor = 'black';
    +				
    +				// White in-place editor text color
    +				mxCellEditorStartEditing = mxCellEditor.prototype.startEditing;
    +				mxCellEditor.prototype.startEditing = function (cell, trigger)
    +				{
    +					mxCellEditorStartEditing.apply(this, arguments);
    +					
    +					if (this.textarea != null)
    +					{
    +						this.textarea.style.color = '#FFFFFF';					
    +					}
    +				};
    +				
    +				mxGraphHandler.prototype.previewColor = 'white';
    +			}
    +			
    +			var labelBackground = (invert) ? '#000000' : '#FFFFFF';
    +			var fontColor = (invert) ? '#FFFFFF' : '#000000';
    +			var strokeColor = (invert) ? '#C0C0C0' : '#000000';
    +			var fillColor = (invert) ? 'none' : '#FFFFFF';
    +			
    +			var style = graph.getStylesheet().getDefaultEdgeStyle();
    +			delete style['endArrow'];
    +			style['strokeColor'] = strokeColor;
    +			style['labelBackgroundColor'] = labelBackground;
    +			style['edgeStyle'] = 'wireEdgeStyle';
    +			style['fontColor'] = fontColor;
    +			style['fontSize'] = '9';
    +			style['movable'] = '0';
    +			style['strokeWidth'] = strokeWidth;
    +			//style['rounded'] = '1';
    +			
    +			// Sets join node size
    +			style['startSize'] = joinNodeSize;
    +			style['endSize'] = joinNodeSize;
    +			
    +			style = graph.getStylesheet().getDefaultVertexStyle();
    +			style['gradientDirection'] = 'south';
    +			//style['gradientColor'] = '#909090';
    +			style['strokeColor'] = strokeColor;
    +			//style['fillColor'] = '#e0e0e0';
    +			style['fillColor'] = 'none';
    +			style['fontColor'] = fontColor;
    +			style['fontStyle'] = '1';
    +			style['fontSize'] = '12';
    +			style['resizable'] = '0';
    +			style['rounded'] = '1';
    +			style['strokeWidth'] = strokeWidth;
    +
    +			var parent = graph.getDefaultParent();
    +			
    +			graph.getModel().beginUpdate();
    +			try
    +			{
    +				var v1 = graph.insertVertex(parent, null, 'J1', 80, 40, 40, 80,
    +						'verticalLabelPosition=top;verticalAlign=bottom;shadow=1;fillColor=' + fillColor);
    +				v1.setConnectable(false);
    +
    +				var v11 = graph.insertVertex(v1, null, '1', 0, 0, 10, 16,
    +						'shape=line;align=left;verticalAlign=middle;fontSize=10;routingCenterX=-0.5;'+
    +						'spacingLeft=12;fontColor=' + fontColor + ';strokeColor=' + strokeColor);
    +				v11.geometry.relative = true;
    +				v11.geometry.offset = new mxPoint(-v11.geometry.width, 2);
    +				var v12 = v11.clone();
    +				v12.value = '2';
    +				v12.geometry.offset = new mxPoint(-v11.geometry.width, 22);
    +				v1.insert(v12);
    +				var v13 = v11.clone();
    +				v13.value = '3';
    +				v13.geometry.offset = new mxPoint(-v11.geometry.width, 42);
    +				v1.insert(v13);
    +				var v14 = v11.clone();
    +				v14.value = '4';
    +				v14.geometry.offset = new mxPoint(-v11.geometry.width, 62);
    +				v1.insert(v14);
    +
    +				var v15 = v11.clone();
    +				v15.value = '5';
    +				v15.geometry.x = 1;
    +				v15.style =	'shape=line;align=right;verticalAlign=middle;fontSize=10;routingCenterX=0.5;'+
    +					'spacingRight=12;fontColor=' + fontColor + ';strokeColor=' + strokeColor;
    +				v15.geometry.offset = new mxPoint(0, 2);
    +				v1.insert(v15);
    +				var v16 = v15.clone();
    +				v16.value = '6';
    +				v16.geometry.offset = new mxPoint(0, 22);
    +				v1.insert(v16);
    +				var v17 = v15.clone();
    +				v17.value = '7';
    +				v17.geometry.offset = new mxPoint(0, 42);
    +				v1.insert(v17);
    +				var v18 = v15.clone();
    +				v18.value = '8';
    +				v18.geometry.offset = new mxPoint(0, 62);
    +				v1.insert(v18);
    +				
    +				var v19 = v15.clone();
    +				v19.value = 'clk';
    +				v19.geometry.x = 0.5;
    +				v19.geometry.y = 1;
    +				v19.geometry.width = 10;
    +				v19.geometry.height = 4;
    +				// NOTE: portConstraint is defined for east direction, so must be inverted here
    +				v19.style = 'shape=triangle;direction=north;spacingBottom=12;align=center;portConstraint=horizontal;'+
    +					'fontSize=8;strokeColor=' + strokeColor + ';routingCenterY=0.5;';
    +				v19.geometry.offset = new mxPoint(-4, -4);
    +				v1.insert(v19);
    +				
    +				var v2 = graph.insertVertex(parent, null, 'R1', 220, 220, 80, 20,
    +					'shape=resistor;verticalLabelPosition=top;verticalAlign=bottom;');
    +				
    +				// Uses implementation of connection points via constraints (see above)
    +				//v2.setConnectable(false);
    +
    + 				/*var v21 = graph.insertVertex(v2, null, 'A', 0, 0.5, 10, 1,
    + 					'shape=none;spacingBottom=11;spacingLeft=1;align=left;fontSize=8;'+
    + 					'fontColor=#4c4c4c;strokeColor=#909090;');
    + 				v21.geometry.relative = true;
    + 				v21.geometry.offset = new mxPoint(0, -1);
    +				
    + 				var v22 = graph.insertVertex(v2, null, 'B', 1, 0.5, 10, 1,
    + 					'spacingBottom=11;spacingLeft=1;align=left;fontSize=8;'+
    + 					'fontColor=#4c4c4c;strokeColor=#909090;');
    + 				v22.geometry.relative = true;
    + 				v22.geometry.offset = new mxPoint(-10, -1);*/
    +
    +				var v3 = graph.addCell(graph.getModel().cloneCell(v1));
    +				v3.value = 'J3';
    +				v3.geometry.x = 420;
    +				v3.geometry.y = 340;
    +				
    +				// Connection constraints implemented in edges, alternatively this
    +				// can be implemented using references, see: portrefs.html
    +				var e1 = graph.insertEdge(parent, null, 'e1', v1.getChildAt(7), v2,
    +					'entryX=0;entryY=0.5;entryPerimeter=0;');
    +				e1.geometry.points = [new mxPoint(180, 110)];
    +				
    +				var e2 = graph.insertEdge(parent, null, 'e2', v1.getChildAt(4), v2,
    +					'entryX=1;entryY=0.5;entryPerimeter=0;');
    +				e2.geometry.points = [new mxPoint(320, 50), new mxPoint(320, 230)];
    +				
    +				var e3 = graph.insertEdge(parent, null, 'crossover', e1, e2);
    +				e3.geometry.setTerminalPoint(new mxPoint(180, 140), true);
    +				e3.geometry.setTerminalPoint(new mxPoint(320, 140), false);
    +				
    +// 				var e1 = graph.insertEdge(parent, null, 'e1', v1.getChildAt(7), v2.getChildAt(0));
    +// 				e1.geometry.points = [new mxPoint(180, 140)];
    +				
    +// 				var e2 = graph.insertEdge(parent, null, '', v1.getChildAt(4), v2.getChildAt(1));
    +// 				e2.geometry.points = [new mxPoint(320, 80)];
    +				
    +// 				var e3 = graph.insertEdge(parent, null, 'crossover', e1, e2);
    +// 				e3.geometry.setTerminalPoint(new mxPoint(180, 160), true);
    +// 				e3.geometry.setTerminalPoint(new mxPoint(320, 160), false);
    +				
    +				var e4 = graph.insertEdge(parent, null, 'e4', v2, v3.getChildAt(0),
    +					'exitX=1;exitY=0.5;entryPerimeter=0;');
    +				e4.geometry.points = [new mxPoint(380, 230)];
    +				
    +				var e5 = graph.insertEdge(parent, null, 'e5', v3.getChildAt(5), v1.getChildAt(0));
    +				e5.geometry.points = [new mxPoint(500, 310), new mxPoint(500, 20), new mxPoint(50, 20)];
    +				
    +				var e6 = graph.insertEdge(parent, null, '');
    +				e6.geometry.setTerminalPoint(new mxPoint(100, 500), true);
    +				e6.geometry.setTerminalPoint(new mxPoint(600, 500), false);
    +				
    +				var e7 = graph.insertEdge(parent, null, 'e7', v3.getChildAt(7), e6);
    +				e7.geometry.setTerminalPoint(new mxPoint(500, 500), false);
    +				e7.geometry.points = [new mxPoint(500, 350)];
    +			}
    +			finally
    +			{
    +				graph.getModel().endUpdate();
    +			}
    +			
    +			document.body.appendChild(mxUtils.button('Zoom In', function()
    +			{
    +				graph.zoomIn();
    +			}));
    +			
    +			document.body.appendChild(mxUtils.button('Zoom Out', function()
    +			{
    +				graph.zoomOut();
    +			}));
    +			
    +			// Undo/redo
    +			var undoManager = new mxUndoManager();
    +			var listener = function(sender, evt)
    +			{
    +				undoManager.undoableEditHappened(evt.getProperty('edit'));
    +			};
    +			graph.getModel().addListener(mxEvent.UNDO, listener);
    +			graph.getView().addListener(mxEvent.UNDO, listener);
    +			
    +			document.body.appendChild(mxUtils.button('Undo', function()
    +			{
    +				undoManager.undo();
    +			}));
    +			
    +			document.body.appendChild(mxUtils.button('Redo', function()
    +			{
    +				undoManager.redo();
    +			}));
    +
    +			// Shows XML for debugging the actual model
    +			document.body.appendChild(mxUtils.button('Delete', function()
    +			{
    +				graph.removeCells();
    +			}));
    +			
    +			// Wire-mode
    +			var checkbox = document.createElement('input');
    +			checkbox.setAttribute('type', 'checkbox');
    +			
    +			document.body.appendChild(checkbox);
    +			mxUtils.write(document.body, 'Wire Mode');
    +			
    +			// Starts connections on the background in wire-mode
    +			var connectionHandlerIsStartEvent = graph.connectionHandler.isStartEvent;
    +			graph.connectionHandler.isStartEvent = function(me)
    +			{
    +				return checkbox.checked || connectionHandlerIsStartEvent.apply(this, arguments);
    +			};
    +			
    +			// Avoids any connections for gestures within tolerance except when in wire-mode
    +			// or when over a port which
    +			var connectionHandlerMouseUp = graph.connectionHandler.mouseUp;
    +			graph.connectionHandler.mouseUp = function(sender, me)
    +			{
    +				if (this.first != null && this.previous != null)
    +				{
    +					var point = mxUtils.convertPoint(this.graph.container, me.getX(), me.getY());
    +					var dx = Math.abs(point.x - this.first.x);
    +					var dy = Math.abs(point.y - this.first.y);
    +
    +					if (dx < this.graph.tolerance && dy < this.graph.tolerance)
    +					{
    +						// Selects edges in non-wire mode for single clicks, but starts
    +						// connecting for non-edges regardless of wire-mode
    +						if (!checkbox.checked && this.graph.getModel().isEdge(this.previous.cell))
    +						{
    +							this.reset();
    +						}
    +						
    +						return;
    +					}
    +				}
    +				
    +				connectionHandlerMouseUp.apply(this, arguments);
    +			};
    +			
    +			// Grid
    +			var checkbox2 = document.createElement('input');
    +			checkbox2.setAttribute('type', 'checkbox');
    +			checkbox2.setAttribute('checked', 'true');
    +			
    +			document.body.appendChild(checkbox2);
    +			mxUtils.write(document.body, 'Grid');
    +			
    +			mxEvent.addListener(checkbox2, 'click', function(evt)
    +			{
    +				if (checkbox2.checked)
    +				{
    +					container.style.background = 'url(\'images/wires-grid.gif\')';
    +				}
    +				else
    +				{
    +					container.style.background = '';
    +				}
    +				
    +				container.style.backgroundColor = (invert) ? 'black' : 'white';
    +			});
    +			
    +			mxEvent.disableContextMenu(container);
    +		};
    +	</script>
    +<!--  
    +		Updates connection points before the routing is called.
    +-->
    +	<script type="text/javascript">
    +		// Computes the position of edge to edge connection points.
    +		mxGraphView.prototype.updateFixedTerminalPoint = function(edge, terminal, source, constraint)
    +		{
    +			var pt = null;
    +			
    +			if (constraint != null)
    +			{
    +				pt = this.graph.getConnectionPoint(terminal, constraint);
    +			}
    +
    +			if (source)
    +			{
    +				edge.sourceSegment = null;
    +			}
    +			else
    +			{
    +				edge.targetSegment = null;
    +			}
    +			
    +			if (pt == null)
    +			{
    +				var s = this.scale;
    +				var tr = this.translate;
    +				var orig = edge.origin;
    +				var geo = this.graph.getCellGeometry(edge.cell);
    +				pt = geo.getTerminalPoint(source);
    +
    +				// Computes edge-to-edge connection point
    +				if (pt != null)
    +				{
    +					pt = new mxPoint(s * (tr.x + pt.x + orig.x),
    +									 s * (tr.y + pt.y + orig.y));
    +					
    +					// Finds nearest segment on edge and computes intersection
    +					if (terminal != null && terminal.absolutePoints != null)
    +					{
    +						var seg = mxUtils.findNearestSegment(terminal, pt.x, pt.y);
    +
    +						// Finds orientation of the segment
    +						var p0 = terminal.absolutePoints[seg];
    +						var pe = terminal.absolutePoints[seg + 1];
    +						var horizontal = (p0.x - pe.x == 0);
    +						
    +						// Stores the segment in the edge state
    +						var key = (source) ? 'sourceConstraint' : 'targetConstraint';
    +						var value = (horizontal) ? 'horizontal' : 'vertical';
    +						edge.style[key] = value;
    +						
    +						// Keeps the coordinate within the segment bounds
    +						if (horizontal)
    +						{
    +							pt.x = p0.x;
    +							pt.y = Math.min(pt.y, Math.max(p0.y, pe.y));
    +							pt.y = Math.max(pt.y, Math.min(p0.y, pe.y));
    +						}
    +						else
    +						{
    +							pt.y = p0.y;
    +							pt.x = Math.min(pt.x, Math.max(p0.x, pe.x));
    +							pt.x = Math.max(pt.x, Math.min(p0.x, pe.x));
    +						}
    +					}
    +				}
    +				// Computes constraint connection points on vertices and ports
    +				else if (terminal != null && terminal.cell.geometry.relative)
    +				{
    +					pt = new mxPoint(this.getRoutingCenterX(terminal),
    +						this.getRoutingCenterY(terminal));
    +				}
    +
    +				// Snaps point to grid
    +				/*if (pt != null)
    +				{
    +					var tr = this.graph.view.translate;
    +					var s = this.graph.view.scale;
    +					
    +					pt.x = (this.graph.snap(pt.x / s - tr.x) + tr.x) * s;
    +					pt.y = (this.graph.snap(pt.y / s - tr.y) + tr.y) * s;
    +				}*/
    +			}
    +
    +			edge.setAbsoluteTerminalPoint(pt, source);
    +		};
    +	</script>
    +<!--  
    +	Overrides methods to preview and create new edges.
    +-->
    +	<script type="text/javascript">
    +		// Sets source terminal point for edge-to-edge connections.
    +		mxConnectionHandler.prototype.createEdgeState = function(me)
    +		{
    +			var edge = this.graph.createEdge();
    +			
    +			if (this.sourceConstraint != null && this.previous != null)
    +			{
    +				edge.style = mxConstants.STYLE_EXIT_X+'='+this.sourceConstraint.point.x+';'+
    +					mxConstants.STYLE_EXIT_Y+'='+this.sourceConstraint.point.y+';';
    +			}
    +			else if (this.graph.model.isEdge(me.getCell()))
    +			{
    +				var scale = this.graph.view.scale;
    +				var tr = this.graph.view.translate;
    +				var pt = new mxPoint(this.graph.snap(me.getGraphX() / scale) - tr.x,
    +						this.graph.snap(me.getGraphY() / scale) - tr.y);
    +				edge.geometry.setTerminalPoint(pt, true);
    +			}
    +			
    +			return this.graph.view.createState(edge);
    +		};
    +		
    +		// Uses right mouse button to create edges on background (see also: lines 67 ff)
    +		mxConnectionHandler.prototype.isStopEvent = function(me)
    +		{
    +			return me.getState() != null || mxEvent.isRightMouseButton(me.getEvent());
    +		};
    +		
    +		// Updates target terminal point for edge-to-edge connections.
    +		mxConnectionHandlerUpdateCurrentState = mxConnectionHandler.prototype.updateCurrentState;
    +		mxConnectionHandler.prototype.updateCurrentState = function(me)
    +		{
    +			mxConnectionHandlerUpdateCurrentState.apply(this, arguments);
    +
    +			if (this.edgeState != null)
    +			{
    +				this.edgeState.cell.geometry.setTerminalPoint(null, false);
    +			
    +				if (this.shape != null && this.currentState != null &&
    +					this.currentState.view.graph.model.isEdge(this.currentState.cell))
    +				{
    +					var scale = this.graph.view.scale;
    +					var tr = this.graph.view.translate;
    +					var pt = new mxPoint(this.graph.snap(me.getGraphX() / scale) - tr.x,
    +							this.graph.snap(me.getGraphY() / scale) - tr.y);
    +					this.edgeState.cell.geometry.setTerminalPoint(pt, false);
    +				}
    +			}
    +		};
    +
    +		// Updates the terminal and control points in the cloned preview.
    +		mxEdgeSegmentHandler.prototype.clonePreviewState = function(point, terminal)
    +		{
    +			var clone = mxEdgeHandler.prototype.clonePreviewState.apply(this, arguments);
    +			
    +			// TODO: Should not modify geometry in-place here (change of state)
    +			if (this.isSource || this.isTarget)
    +			{
    +				// Sets the terminal point of an edge if we're moving one of the endpoints
    +				if (this.graph.getModel().isEdge(clone.cell) && this.graph.getModel().isEdge(terminal))
    +				{
    +					// TODO: Only set this if the target or source terminal is an edge
    +					clone.cell.geometry.setTerminalPoint(point, this.isSource);
    +				}
    +				else
    +				{
    +					clone.cell.geometry.setTerminalPoint(null, this.isSource);				
    +				}
    +			}
    +
    +			return clone;
    +		};
    +	</script>
    +<!--  
    +	Adds in-place highlighting for complete cell area (no hotspot).
    +-->
    +	<script type="text/javascript">
    +		mxConnectionHandlerCreateMarker = mxConnectionHandler.prototype.createMarker;
    +		mxConnectionHandler.prototype.createMarker = function()
    +		{
    +			var marker = mxConnectionHandlerCreateMarker.apply(this, arguments);
    +			
    +			// Uses complete area of cell for new connections (no hotspot)
    +			marker.intersects = function(state, evt)
    +			{
    +				return true;
    +			};
    +			
    +			// Adds in-place highlighting
    +			mxCellHighlightHighlight = mxCellHighlight.prototype.highlight;
    +			marker.highlight.highlight = function(state)
    +			{
    +				if (this.state != state)
    +				{
    +					if (this.state != null)
    +					{
    +						this.state.style = this.lastStyle;
    +						
    +						// Workaround for shape using current stroke width if no strokewidth defined
    +						this.state.style['strokeWidth'] = this.state.style['strokeWidth'] || '1';
    +						this.state.style['strokeColor'] = this.state.style['strokeColor'] || 'none';
    +						
    +						if (this.state.shape != null)
    +						{
    +							this.state.view.graph.cellRenderer.configureShape(this.state);
    +							this.state.shape.reconfigure();
    +							this.state.shape.redraw();
    +						}
    +					}
    +					
    +					if (state != null)
    +					{
    +						this.lastStyle = state.style;
    +						state.style = mxUtils.clone(state.style);
    +						state.style['strokeColor'] = '#00ff00';
    +						state.style['strokeWidth'] = '3';
    +						
    +						if (state.shape != null)
    +						{
    +							state.view.graph.cellRenderer.configureShape(state);
    +							state.shape.reconfigure();
    +							state.shape.redraw();
    +						}
    +					}
    +					
    +					this.state = state;
    +				}
    +			};
    +			
    +			return marker;
    +		};
    +		
    +		mxEdgeHandlerCreateMarker = mxEdgeHandler.prototype.createMarker;
    +		mxEdgeHandler.prototype.createMarker = function()
    +		{
    +			var marker = mxEdgeHandlerCreateMarker.apply(this, arguments);
    +			
    +			// Adds in-place highlighting when reconnecting existing edges
    +			marker.highlight.highlight = this.graph.connectionHandler.marker.highlight.highlight;
    +			
    +			return marker;
    +		}
    +	</script>
    +<!--  
    +	Adds oval markers for edge-to-edge connections.
    +-->
    +	<script type="text/javascript">
    +		mxGraphGetCellStyle = mxGraph.prototype.getCellStyle;
    +		mxGraph.prototype.getCellStyle = function(cell)
    +		{
    +			var style = mxGraphGetCellStyle.apply(this, arguments);
    +			
    +			if (style != null && this.model.isEdge(cell))
    +			{
    +				style = mxUtils.clone(style);
    +				
    +				if (this.model.isEdge(this.model.getTerminal(cell, true)))
    +				{
    +					style['startArrow'] = 'oval';
    +				}
    +		
    +				if (this.model.isEdge(this.model.getTerminal(cell, false)))
    +				{
    +					style['endArrow'] = 'oval';
    +				}
    +			}
    +			
    +			return style;
    +		};
    +	</script>
    +<!--  
    +	Imlements a custom resistor shape. Direction currently ignored here.
    +-->
    +	<script type="text/javascript">
    +		function ResistorShape() { };
    +		ResistorShape.prototype = new mxCylinder();
    +		ResistorShape.prototype.constructor = ResistorShape;
    +		ResistorShape.prototype.crisp = false;
    +
    +		ResistorShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +		{
    +			var dx = w / 16;
    +
    +			if (isForeground)
    +			{
    +				path.moveTo(0, h / 2);
    +				path.lineTo(2 * dx, h / 2);
    +				path.lineTo(3 * dx, 0);
    +				path.lineTo(5 * dx, h);
    +				path.lineTo(7 * dx, 0);
    +				path.lineTo(9 * dx, h);
    +				path.lineTo(11 * dx, 0);
    +				path.lineTo(13 * dx, h);
    +				path.lineTo(14 * dx, h / 2);
    +				path.lineTo(16 * dx, h / 2);
    +
    +				path.end();
    +			}
    +		};
    +
    +		mxCellRenderer.prototype.defaultShapes['resistor'] = ResistorShape;
    +	</script>
    +<!--  
    +	Imlements a custom resistor shape. Direction currently ignored here.
    +-->
    +	<script type="text/javascript">
    +	mxEdgeStyle.WireConnector = function(state, source, target, hints, result)
    +	{
    +		// Creates array of all way- and terminalpoints
    +		var pts = state.absolutePoints;
    +		var horizontal = true;
    +		var hint = null;
    +		
    +		// Gets the initial connection from the source terminal or edge
    +		if (source != null && state.view.graph.model.isEdge(source.cell))
    +		{
    +			horizontal = state.style['sourceConstraint'] == 'horizontal';
    +		}
    +		else if (source != null)
    +		{
    +			horizontal = source.style['portConstraint'] != 'vertical';
    +			
    +			// Checks the direction of the shape and rotates
    +			var direction = source.style[mxConstants.STYLE_DIRECTION];
    +			
    +			if (direction == 'north' || direction == 'south')
    +			{
    +				horizontal = !horizontal;
    +			}
    +		}
    +		
    +		// Adds the first point
    +		// TODO: Should move along connected segment
    +		var pt = pts[0];
    +		
    +		if (pt == null && source != null)
    +		{
    +			pt = new mxPoint(state.view.getRoutingCenterX(source), state.view.getRoutingCenterY(source));
    +		}
    +		else if (pt != null)
    +		{
    +			pt = pt.clone();
    +		}
    +		
    +		var first = pt;
    +
    +		// Adds the waypoints
    +		if (hints != null && hints.length > 0)
    +		{
    +			// FIXME: First segment not movable
    +			/*hint = state.view.transformControlPoint(state, hints[0]);
    +			mxLog.show();
    +			mxLog.debug(hints.length,'hints0.y='+hint.y, pt.y)
    +			
    +			if (horizontal && Math.floor(hint.y) != Math.floor(pt.y))
    +			{
    +				mxLog.show();
    +				mxLog.debug('add waypoint');
    +
    +				pt = new mxPoint(pt.x, hint.y);
    +				result.push(pt);
    +				pt = pt.clone();
    +				//horizontal = !horizontal;
    +			}*/
    +			
    +			for (var i = 0; i < hints.length; i++)
    +			{
    +				horizontal = !horizontal;
    +				hint = state.view.transformControlPoint(state, hints[i]);
    +
    +				if (horizontal)
    +				{
    +					if (pt.y != hint.y)
    +					{
    +						pt.y = hint.y;
    +						result.push(pt.clone());
    +					}
    +				}
    +				else if (pt.x != hint.x)
    +				{
    +					pt.x = hint.x;
    +					result.push(pt.clone());
    +				}
    +			}
    +		}
    +		else
    +		{
    +			hint = pt;
    +		}
    +
    +		// Adds the last point
    +		pt = pts[pts.length - 1];
    +
    +		// TODO: Should move along connected segment
    +		if (pt == null && target != null)
    +		{
    +			pt = new mxPoint(state.view.getRoutingCenterX(target), state.view.getRoutingCenterY(target));
    +		}
    +
    +		if (horizontal)
    +		{
    +			if (pt.y != hint.y && first.x != pt.x)
    +			{
    +				result.push(new mxPoint(pt.x, hint.y));
    +			}
    +		}
    +		else if (pt.x != hint.x && first.y != pt.y)
    +		{
    +			result.push(new mxPoint(hint.x, pt.y));
    +		}
    +	};
    +	
    +	mxStyleRegistry.putValue('wireEdgeStyle', mxEdgeStyle.WireConnector);
    +	
    +	// This connector needs an mxEdgeSegmentHandler
    +	mxGraphCreateHandler = mxGraph.prototype.createHandler;
    +	mxGraph.prototype.createHandler = function(state)
    +	{
    +		var result = null;
    +		
    +		if (state != null)
    +		{
    +			if (this.model.isEdge(state.cell))
    +			{
    +				var style = this.view.getEdgeStyle(state);
    +				
    +				if (style == mxEdgeStyle.WireConnector)
    +				{
    +					return new mxEdgeSegmentHandler(state);
    +				}
    +			}
    +		}
    +		
    +		return mxGraphCreateHandler.apply(this, arguments);
    +	};
    +	</script>
    +</head>
    +<body onload="main(document.getElementById('graphContainer'))">
    +	<div id="graphContainer"
    +		style="overflow:auto;width:800px;height:600px;border:1px solid gray;background:url('images/wires-grid.gif');background-position:-1px 0px;cursor:crosshair;">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/examples/wrapping.html b/javascript/examples/wrapping.html
    new file mode 100644
    index 000000000..11bb9e59a
    --- /dev/null
    +++ b/javascript/examples/wrapping.html
    @@ -0,0 +1,81 @@
    +<!--
    +  $Id: wrapping.html,v 1.11 2011-09-02 14:19:02 gaudenz Exp $
    +  Copyright (c) 2006-2010, JGraph Ltd
    +  
    +  Wrapping example for mxGraph. This example demonstrates using HTML markup and
    +  word-wrapping in vertex and edge labels.
    +-->
    +<html>
    +<head>
    +	<title>Wrapping example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Enables HTML labels as wrapping is only available for those
    +				graph.htmlLabels = true;
    +
    +				// Disables in-place editing for edges
    +				graph.isCellEditable = function(cell)
    +				{
    +					return !this.model.isEdge(cell);
    +				};
    +				
    +				// Gets the default parent for inserting new cells. This
    +				// is normally the first child of the root (ie. layer 0).
    +				var parent = graph.getDefaultParent();
    +
    +				// Adds cells to the model in a single step
    +				graph.getModel().beginUpdate();
    +				try
    +				{
    +					var v1 = graph.insertVertex(parent, null, 'Cum Caesar vidisset, portum plenum esse, iuxta navigavit.',
    +							20, 20, 100, 70, 'whiteSpace=wrap;');
    +					var v2 = graph.insertVertex(parent, null, 'Cum Caesar vidisset, portum plenum esse, iuxta navigavit.',
    +							220, 150, 80, 70, 'whiteSpace=wrap;');
    +					var e1 = graph.insertEdge(parent, null, '<table style="width:100px;font-size:11px;color:#774400;"><tr><td align="center">Cum Caesar vidisset, portum plenum esse, iuxta navigavit.</td></tr></table>',
    +							v1, v2);
    +				}
    +				finally
    +				{
    +					// Updates the display
    +					graph.getModel().endUpdate();
    +				}
    +			}
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'))">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer"
    +		style="position:relative;overflow:hidden;width:341px;height:241px;background:url('editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/javascript/index.html b/javascript/index.html
    new file mode 100644
    index 000000000..f256447b5
    --- /dev/null
    +++ b/javascript/index.html
    @@ -0,0 +1,179 @@
    +<html>
    +<head>
    +	<title>mxGraph JavaScript</title>
    +	<link rel="stylesheet" HREF="../docs/css/html.css" CHARSET="ISO-8859-1" TYPE="text/css">
    +</head>
    +<body>
    +<h1>mxGraph JavaScript</h1>
    +<h2>Installation</h2>
    +<p>
    +	The examples can be edited with any texteditor. To run the examples point
    +	your browser directly to the local files (use links below) or use a
    +	webserver to deliver the files. Note that the files should always be
    +	delivered via a webserver in production. Local usage of files is only
    +	recommended for development and testing. (Please read <a href="../docs/known-issues.html#AccessDenied">this</a>
    +	for running examples from the local filesystem in Internet Explorer 7.)
    +</p>
    +<h2>Examples</h2>
    +<p>
    +	javascript/examples contains the following examples:
    +</p>
    +<ul>
    +  <li><a href="examples/codec.html">Codec</a> - Dynamically
    +  creating a graph from XML and encoding the model into XML, as well
    +  as changing the default style for edges in-place.</li>
    +  <li><a href="examples/dbeditor.html">dbEditor</a> - Uses Google
    +  for database content editing. The database contains Persons,
    +  Locations and connections between persons and locations.</li>
    +  <li><a href="examples/dynamicloading.html">Dynamicloading</a> -
    +  Loading graph model data dynamically to limit the number of cells in the model.</li>
    +  <li><a href="examples/dynamicstyle.html">Dynamic Style</a> -
    +  Changing the style of a cell by overriding mxGraphModel.</li>
    +  <li><a href="examples/dynamictoolbar.html">Dynamic Toolbar</a> -
    +  Changing the state of the toolbar at runtime.</li>
    +  <li><a href="examples/editing.html">Editing</a> -
    +  Using the in-place editor trigger to specify the editing value and write the
    +  new value into a specific field of the user object. Wrapping and DOM nodes as
    +  labels are also demonstrated here.</li>
    +  <li><a href="examples/events.html">Events</a> - Creating
    +  a graph container and using the mxDivResizer to update the size,
    +  interaction on the graph, including marquee selection, custom 
    +  tooltips, context menu handling and changing the default menu
    +  opacity. It also demonstrates how to use an edgestyle in the 
    +  default stylesheet, and handle the doubleclick on the adjustment
    +  point. See also: overlays.html for click event handling.</li>
    +  <li><a href="examples/extjs.html">ExtJs</a> -
    +  Using mxGraph together with the Ext JavaScript framework.</li>
    +  <li><a href="examples/fileio.html">File I/O</a> -
    +  Reading an XML file, writing a custom parser, applying an automatic layout
    +  and defining a 2-way edge.</li>
    +  <li><a href="examples/graphlayout.html">Graphlayout</a> -
    +  Using automatic graph layouts and listening to changes of the graph size
    +  to keep the container size in sync.</li>
    +  <li><a href="examples/helloworld.html">Hello, World!</a> - Using
    +  a DOM node to create a graph and adding vertices and edges.</li>
    +  <li><a href="examples/hierarchicallayout.html">Hierarchical Layout</a> -
    +  Using the hierarchical and organic layout algorithms.</li>
    +  <li><a href="examples/images.html">Images</a> -
    +  Using background images and images for for the label- and image-shape.</li>
    +  <li><a href="examples/indicators.html">Indicators</a> -
    +  Using small subshapes (indicators) inside a parent shape, typically an mxLabel.</li>
    +  <li><a href="examples/labelposition.html">Label Position</a> -
    +  Using the label position styles to set the position of vertex labels.</li>
    +  <li><a href="examples/labels.html">Labels</a> -
    +  Wrapping and clipping for HTML labels of vertices, truncating labels to fit the
    +  size of a vertex, and manually placing vertex labels and relative children
    +  that act as "sublabels".</li>
    +  <li><a href="examples/layers.html">Layers</a> - Using
    +  multiple layers to contain cells.</li>
    +  <li><a href="examples/merge.html">Merge</a> -
    +  Using the mergeChildren function to merge two graphs.</li>
    +  <li><a href="examples/monitor.html">Monitor</a> -
    +  Using mxGraph to display the current state of a workflow.</li>
    +  <li><a href="examples/offpage.html">Offpage Connectors</a> -
    +  Creating offpage connectors in a graph and loading a new diagram on a
    +  single click.</li>
    +  <li><a href="examples/orgchart.html">Orgchart</a> -
    +  Using automatic layouts, fit to page zoom and poster print (across
    +  multiple pages).</li>
    +  <li><a href="examples/overlays.html">Overlays</a> - Cell
    +  highlighting, overlays and handling click and double click
    +  events. See also: events.html for more event handling.</li>
    +  <li><a href="examples/permissions.html">Permissions</a> -
    +  Creating permissions to define the available operations on a graph.</li>
    +  <li><a href="examples/ports.html">Ports</a> -
    +  Implementing ports as child vertices with relative positions,
    +  drag and drop and using images and HTML in cells.</li>
    +  <li><a href="examples/schema.html">Schema</a> -
    +  Implementing a database schema editor.</li>
    +  <li><a href="examples/scrollbars.html">Scrollbars</a> -
    +  Using a scrollable table with different sections in a cell label.</li>
    +  <li><a href="examples/secondlabel.html">Secondlabel</a> -
    +  Adding another string label to vertices.</li>
    +  <li><a href="examples/shape.html">Shape</a> - How to
    +  implement and use a custom shape.</li>
    +  <li><a href="examples/stylesheet.html">Stylesheet</a> - Using
    +  a custom stylesheet and control points in edges, as well as
    +  overriding the getLabel and getTooltip function to return
    +  dynamic information, and making a supercall in JavaScript.</li>
    +  <li><a href="examples/swimlanes.html">Swimlanes</a> -
    +  Using swimlanes for pools and lanes and using the stack layout as an
    +  automatic layout.</li>
    +  <li><a href="examples/thread.html">Thread</a> - Setting
    +  overlays in mxGraph from within a timed function.</li>
    +  <li><a href="examples/toolbar.html">Toolbar</a> -
    +  Using existing cells as templates for creating new cells.</li>
    +  <li><a href="examples/tree.html">Tree</a> -
    +  Folding for subtrees in acyclic graphs (trees).</li>  
    +  <li><a href="examples/uiconfig.html">UIConfig</a> -
    +  Using a config file to configure the toolbar and popup menu in mxEditor.</li>
    +  <li><a href="examples/userobject.html">Userobject</a> -
    +  Using XML objects as values for cells.</li>
    +  <li><a href="examples/validation.html">Validation</a> -
    +  Using multiplicities for automatically validating a graph.</li>
    +  <li><a href="examples/windows.html">Windows</a> -
    +  Using the mxWindow class for displaying windows.</li>
    +  <li><a href="examples/wrapping.html">Wrapping</a> -
    +  Using HTML markup and word-wrapping in vertex and edge labels.</li>
    +  <li><a href="examples/helloport.html">HelloPort</a> -
    +  Using the isPort hook for visually connecting to another cell.</li>
    +  <li><a href="examples/pagebreaks.html">Pagebreaks</a> -
    +  Using the pageBreaksVisible and preferPageSize switches.</li>
    +  <li><a href="examples/fixedpoints.html">FixedPoints</a> -
    +  Using fixed connection points for connecting edges to vertices.</li>
    +  <li><a href="examples/serverview.html">ServerView</a> -
    +  Using a server-side image of the graph as the diagram in the client.</li>
    +  <li><a href="examples/contexticons.html">ContextIcons</a> -
    +  Adding icons to selected vertices to carry out special operations.</li>
    +  <li><a href="examples/guides.html">Guides</a> - Using the guidesEnabled
    +  and snapToTerminals switches, creating a grid using a canvas and
    +  handling cursor keys.</li>
    +  <li><a href="examples/fixedicon.html">FixedIcon</a> - Customizing the icon
    +  position in the mxLabel shape.</li>
    +  <li><a href="examples/markers.html">Markers</a> - Creating custom marker.</li>
    +  <li><a href="examples/dragsource.html">Dragsource</a> - Using
    +  one drag source for multiple graphs and changing the drag icon.</li>
    +  <li><a href="examples/orthogonal.html">Orthogonal</a> - Demonstrates the
    +  use of port constraints and orthogonal edge styles and handlers.</li>
    +  <li><a href="examples/standardsmode.html">Standardsmode</a> - How to use
    +  mxGraphs VML rendering with a Doctype in IE.</li>
    +  <li><a href="examples/edgetolerance.html">EdgeTolerance</a> - Increasing
    +  the tolerance for hit detection on edges.</li>
    +  <li><a href="examples/stencils.html">Stencils</a> - Using an XML file to
    +  define new stencils to be used as shapes.</li>
    +  <li><a href="examples/ie9svg.html">IE9SVG</a> - Using SVG for rendering
    +  a diagram in IE9 (and the HTML5 doctype).</li>
    +  <li><a href="examples/hovericons.html">HoverIcons</a> - Showing
    +  icons on vertices as mouse hovers over them.</li>
    +  <li><a href="examples/portrefs.html">Portrefs</a> - Referencing
    +  connection points by ID.</li>
    +  <li><a href="examples/control.html">Control</a> - Adding controls
    +  to specific cells in a graph.</li>
    +  <li><a href="examples/wires.html">Wires</a> - Drawing electrical and
    +  digital circuits with devices and wires.</li>
    +  <li><a href="examples/menustyle.html">Menustyle</a> - Styling the built-in
    +  popupmenu using CSS.</li>
    +  <li><a href="examples/perimeter.html">Perimeter</a> - How to avoid edge and
    +  label intersections.</li>
    +  <li><a href="examples/grid.html">Grid</a> - Drawing a grid dynamically
    +  using HTML 5 canvas.</li>
    +</ul>
    +<p>
    +	javascript/examples/editors contains the following examples:
    +</p>
    +<ul>
    +  <li><a href="examples/editors/grapheditor.html">Graph Editor</a> -
    +  Graph Editor that integrates mxGraph with ExtJs.</li>
    +  <li><a href="examples/editors/diagrameditor.html">mxDraw</a> -
    +  Web 2.0-style diagram editor and drawing application.</li>
    +  <li><a href="examples/editors/processeditor.html">mxProcess</a> -
    +  Process editor with a fancy stylesheet and user interface.</li>
    +  <li><a href="examples/editors/workfloweditor.html">mxWorkflow</a> -
    +  BPMN workflow editor with various example diagrams.</li>
    +  <li><a href="examples/editors/layouteditor.html">mxWorkflow/Layout</a> -
    +  BPMN workflow editor with automatic layout. <i>(Experimental)</i></li>
    +</ul>
    +<hr size="1">
    +&copy; 2006-2010 by JGraph Ltd.
    +</body>
    +</html>
    diff --git a/javascript/mxClient.js b/javascript/mxClient.js
    new file mode 100644
    index 000000000..8de2c658c
    --- /dev/null
    +++ b/javascript/mxClient.js
    @@ -0,0 +1 @@
    +var mxClient={VERSION:'1.10.0.5',IS_IE:navigator.userAgent.indexOf('MSIE')>=0,IS_IE6:navigator.userAgent.indexOf('MSIE 6')>=0,IS_NS:navigator.userAgent.indexOf('Mozilla/')>=0&&navigator.userAgent.indexOf('MSIE')<0,IS_OP:navigator.userAgent.indexOf('Opera/')>=0,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,IS_SF:navigator.userAgent.indexOf('AppleWebKit/')>=0&&navigator.userAgent.indexOf('Chrome/')<0,IS_GC:navigator.userAgent.indexOf('Chrome/')>=0,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),IS_SVG:navigator.userAgent.indexOf('Firefox/')>=0||navigator.userAgent.indexOf('Iceweasel/')>=0||navigator.userAgent.indexOf('Seamonkey/')>=0||navigator.userAgent.indexOf('Iceape/')>=0||navigator.userAgent.indexOf('Galeon/')>=0||navigator.userAgent.indexOf('Epiphany/')>=0||navigator.userAgent.indexOf('AppleWebKit/')>=0||navigator.userAgent.indexOf('Gecko/')>=0||navigator.userAgent.indexOf('Opera/')>=0,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,IS_VML:navigator.appName.toUpperCase()=='MICROSOFT INTERNET EXPLORER',IS_MAC:navigator.userAgent.toUpperCase().indexOf('MACINTOSH')>0,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,IS_LOCAL:document.location.href.indexOf('http://')<0&&document.location.href.indexOf('https://')<0,isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG;},link:function(rel,href,doc){doc=doc||document;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);}},include:function(src){document.write('<script src="'+src+'"></script>');},dispose:function(){for(var i=0;i<mxEvent.objects.length;i++){if(mxEvent.objects[i].mxListenerList!=null){mxEvent.removeAllListeners(mxEvent.objects[i]);}}}};if(typeof(mxLoadResources)=='undefined'){mxLoadResources=true;}if(typeof(mxLoadStylesheets)=='undefined'){mxLoadStylesheets=true;}if(typeof(mxBasePath)!='undefined'&&mxBasePath.length>0){if(mxBasePath.substring(mxBasePath.length-1)=='/'){mxBasePath=mxBasePath.substring(0,mxBasePath.length-1);}mxClient.basePath=mxBasePath;}else{mxClient.basePath='.';}if(typeof(mxImageBasePath)!='undefined'&&mxImageBasePath.length>0){if(mxImageBasePath.substring(mxImageBasePath.length-1)=='/'){mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1);}mxClient.imageBasePath=mxImageBasePath;}else{mxClient.imageBasePath=mxClient.basePath+'/images';}if(typeof(mxLanguage)!='undefined'){mxClient.language=mxLanguage;}else{mxClient.language=(mxClient.IS_IE)?navigator.userLanguage:navigator.language;var dash=mxClient.language.indexOf('-');if(dash>0){mxClient.language=mxClient.language.substring(0,dash);}}if(typeof(mxDefaultLanguage)!='undefined'){mxClient.defaultLanguage=mxDefaultLanguage;}else{mxClient.defaultLanguage='en';}if(mxLoadStylesheets){mxClient.link('stylesheet',mxClient.basePath+'/css/common.css');}if(typeof(mxLanguages)!='undefined'){mxClient.languages=mxLanguages;}if(mxClient.IS_IE){if(document.documentMode>=9){mxClient.IS_VML=false;mxClient.IS_SVG=true;}else{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');}}window.attachEvent('onunload',mxClient.dispose);}var mxLog={consoleName:'Console',TRACE:false,DEBUG:true,WARN:true,buffer:'',init:function(){if(mxLog.window==null&&document.body!=null){var title=mxLog.consoleName+' - mxGraph '+mxClient.VERSION;var table=document.createElement('table');table.setAttribute('width','100%');table.setAttribute('height','100%');var tbody=document.createElement('tbody');var tr=document.createElement('tr');var td=document.createElement('td');td.style.verticalAlign='top';mxLog.textarea=document.createElement('textarea');mxLog.textarea.setAttribute('readOnly','true');mxLog.textarea.style.height='100%';mxLog.textarea.style.resize='none';mxLog.textarea.value=mxLog.buffer;if(mxClient.IS_NS&&document.compatMode!='BackCompat'){mxLog.textarea.style.width='99%';}else{mxLog.textarea.style.width='100%';}td.appendChild(mxLog.textarea);tr.appendChild(td);tbody.appendChild(tr);tr=document.createElement('tr');mxLog.td=document.createElement('td');mxLog.td.style.verticalAlign='top';mxLog.td.setAttribute('height','30px');tr.appendChild(mxLog.td);tbody.appendChild(tr);table.appendChild(tbody);mxLog.addButton('Info',function(evt){mxLog.info();});mxLog.addButton('DOM',function(evt){var content=mxUtils.getInnerHtml(document.body);mxLog.debug(content);});mxLog.addButton('Trace',function(evt){mxLog.TRACE=!mxLog.TRACE;if(mxLog.TRACE){mxLog.debug('Tracing enabled');}else{mxLog.debug('Tracing disabled');}});mxLog.addButton('Copy',function(evt){try{mxUtils.copy(mxLog.textarea.value);}catch(err){mxUtils.alert(err);}});mxLog.addButton('Show',function(evt){try{mxUtils.popup(mxLog.textarea.value);}catch(err){mxUtils.alert(err);}});mxLog.addButton('Clear',function(evt){mxLog.textarea.value='';});var h=(document.body.clientHeight||document.documentElement.clientHeight);var w=document.body.clientWidth;mxLog.window=new mxWindow(title,table,Math.max(0,w-320),Math.max(0,h-210),300,160);mxLog.window.setMaximizable(true);mxLog.window.setScrollable(false);mxLog.window.setResizable(true);mxLog.window.setClosable(true);mxLog.window.destroyOnClose=false;if((mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&!mxClient.IS_SF&&document.compatMode!='BackCompat'){var elt=mxLog.window.getElement();var resizeHandler=function(sender,evt){mxLog.textarea.style.height=Math.max(0,elt.offsetHeight-70)+'px';};mxLog.window.addListener(mxEvent.RESIZE_END,resizeHandler);mxLog.window.addListener(mxEvent.MAXIMIZE,resizeHandler);mxLog.window.addListener(mxEvent.NORMALIZE,resizeHandler);mxLog.textarea.style.height='92px';}}},info:function(){mxLog.writeln(mxUtils.toString(navigator));},addButton:function(lab,funct){var button=document.createElement('button');mxUtils.write(button,lab);mxEvent.addListener(button,'click',funct);mxLog.td.appendChild(button);},isVisible:function(){if(mxLog.window!=null){return mxLog.window.isVisible();}return false;},show:function(){mxLog.setVisible(true);},setVisible:function(visible){if(mxLog.window==null){mxLog.init();}if(mxLog.window!=null){mxLog.window.setVisible(visible);}},enter:function(string){if(mxLog.TRACE){mxLog.writeln('Entering '+string);return new Date().getTime();}},leave:function(string,t0){if(mxLog.TRACE){var dt=(t0!=0)?' ('+(new Date().getTime()-t0)+' ms)':'';mxLog.writeln('Leaving '+string+dt);}},debug:function(){if(mxLog.DEBUG){mxLog.writeln.apply(this,arguments);}},warn:function(){if(mxLog.WARN){mxLog.writeln.apply(this,arguments);}},write:function(){var string='';for(var i=0;i<arguments.length;i++){string+=arguments[i];if(i<arguments.length-1){string+=' ';}}if(mxLog.textarea!=null){mxLog.textarea.value=mxLog.textarea.value+string;if(navigator.userAgent.indexOf('Presto/2.5')>=0){mxLog.textarea.style.visibility='hidden';mxLog.textarea.style.visibility='visible';}mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight;}else{mxLog.buffer+=string;}},writeln:function(){var string='';for(var i=0;i<arguments.length;i++){string+=arguments[i];if(i<arguments.length-1){string+=' ';}}mxLog.write(string+'\n');}};var mxObjectIdentity={FIELD_NAME:'mxObjectId',counter:0,get:function(obj){if(typeof(obj)=='object'&&obj[mxObjectIdentity.FIELD_NAME]==null){var ctor=mxUtils.getFunctionName(obj.constructor);obj[mxObjectIdentity.FIELD_NAME]=ctor+'#'+mxObjectIdentity.counter++;}return obj[mxObjectIdentity.FIELD_NAME];},clear:function(obj){if(typeof(obj)=='object'){delete obj[mxObjectIdentity.FIELD_NAME];}}};function mxDictionary(){this.clear();};mxDictionary.prototype.map=null;mxDictionary.prototype.clear=function(){this.map={};};mxDictionary.prototype.get=function(key){var id=mxObjectIdentity.get(key);return this.map[id];};mxDictionary.prototype.put=function(key,value){var id=mxObjectIdentity.get(key);var previous=this.map[id];this.map[id]=value;return previous;};mxDictionary.prototype.remove=function(key){var id=mxObjectIdentity.get(key);var previous=this.map[id];delete this.map[id];return previous;};mxDictionary.prototype.getKeys=function(){var result=[];for(var key in this.map){result.push(key);}return result;};mxDictionary.prototype.getValues=function(){var result=[];for(var key in this.map){result.push(this.map[key]);}return result;};mxDictionary.prototype.visit=function(visitor){for(var key in this.map){visitor(key,this.map[key]);}};var mxResources={resources:[],loadDefaultBundle:true,loadSpecialBundle:true,isLanguageSupported:function(lan){if(mxClient.languages!=null){return mxUtils.indexOf(mxClient.languages,lan)>=0;}return true;},getDefaultBundle:function(basename,lan){if(mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(lan)){return basename+'.properties';}else{return null;}},getSpecialBundle:function(basename,lan){if(mxResources.loadSpecialBundle&&lan!=mxClient.defaultLanguage){return basename+'_'+lan+'.properties';}else{return null;}},add:function(basename,lan){lan=(lan!=null)?lan:mxClient.language;if(lan!=mxConstants.NONE){var defaultBundle=mxResources.getDefaultBundle(basename,lan);if(defaultBundle!=null){try{var req=mxUtils.load(defaultBundle);if(req.isReady()){mxResources.parse(req.getText());}}catch(e){}}if(mxResources.isLanguageSupported(lan)){var specialBundle=mxResources.getSpecialBundle(basename,lan);if(specialBundle!=null){try{var req=mxUtils.load(specialBundle);if(req.isReady()){mxResources.parse(req.getText());}}catch(e){}}}}},parse:function(text){if(text!=null){var lines=text.split('\n');for(var i=0;i<lines.length;i++){var index=lines[i].indexOf('=');if(index>0){var key=lines[i].substring(0,index);var idx=lines[i].length;if(lines[i].charCodeAt(idx-1)==13){idx--;}var value=lines[i].substring(index+1,idx);mxResources.resources[key]=unescape(value);}}}},get:function(key,params,defaultValue){var value=mxResources.resources[key];if(value==null){value=defaultValue;}if(value!=null&&params!=null){var result=[];var index=null;for(var i=0;i<value.length;i++){var c=value.charAt(i);if(c=='{'){index='';}else if(index!=null&&c=='}'){index=parseInt(index)-1;if(index>=0&&index<params.length){result.push(params[index]);}index=null;}else if(index!=null){index+=c;}else{result.push(c);}}value=result.join('');}return value;}};function mxPoint(x,y){this.x=(x!=null)?x:0;this.y=(y!=null)?y:0;};mxPoint.prototype.x=null;mxPoint.prototype.y=null;mxPoint.prototype.equals=function(obj){return obj.x==this.x&&obj.y==this.y;};mxPoint.prototype.clone=function(){return mxUtils.clone(this);};function mxRectangle(x,y,width,height){mxPoint.call(this,x,y);this.width=(width!=null)?width:0;this.height=(height!=null)?height:0;};mxRectangle.prototype=new mxPoint();mxRectangle.prototype.constructor=mxRectangle;mxRectangle.prototype.width=null;mxRectangle.prototype.height=null;mxRectangle.prototype.setRect=function(x,y,w,h){this.x=x;this.y=y;this.width=w;this.height=h;};mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2;};mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2;};mxRectangle.prototype.add=function(rect){if(rect!=null){var minX=Math.min(this.x,rect.x);var minY=Math.min(this.y,rect.y);var maxX=Math.max(this.x+this.width,rect.x+rect.width);var maxY=Math.max(this.y+this.height,rect.y+rect.height);this.x=minX;this.y=minY;this.width=maxX-minX;this.height=maxY-minY;}};mxRectangle.prototype.grow=function(amount){this.x-=amount;this.y-=amount;this.width+=2*amount;this.height+=2*amount;};mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y);};mxRectangle.prototype.equals=function(obj){return obj.x==this.x&&obj.y==this.y&&obj.width==this.width&&obj.height==this.height;};var mxEffects={animateChanges:function(graph,changes,done){var maxStep=10;var step=0;var animate=function(){var isRequired=false;for(var i=0;i<changes.length;i++){var change=changes[i];if(change instanceof mxGeometryChange||change instanceof mxTerminalChange||change instanceof mxValueChange||change instanceof mxChildChange||change instanceof mxStyleChange){var state=graph.getView().getState(change.cell||change.child,false);if(state!=null){isRequired=true;if(change.constructor!=mxGeometryChange||graph.model.isEdge(change.cell)){mxUtils.setOpacity(state.shape.node,100*step/maxStep);}else{var scale=graph.getView().scale;var dx=(change.geometry.x-change.previous.x)*scale;var dy=(change.geometry.y-change.previous.y)*scale;var sx=(change.geometry.width-change.previous.width)*scale;var sy=(change.geometry.height-change.previous.height)*scale;if(step==0){state.x-=dx;state.y-=dy;state.width-=sx;state.height-=sy;}else{state.x+=dx/maxStep;state.y+=dy/maxStep;state.width+=sx/maxStep;state.height+=sy/maxStep;}graph.cellRenderer.redraw(state);mxEffects.cascadeOpacity(graph,change.cell,100*step/maxStep);}}}}mxUtils.repaintGraph(graph,new mxPoint(1,1));if(step<maxStep&&isRequired){step++;window.setTimeout(animate, delay);}else if(done!=null){done();}};var delay=30;animate();},cascadeOpacity:function(graph,cell,opacity){var childCount=graph.model.getChildCount(cell);for(var i=0;i<childCount;i++){var child=graph.model.getChildAt(cell,i);var childState=graph.getView().getState(child);if(childState!=null){mxUtils.setOpacity(childState.shape.node,opacity);mxEffects.cascadeOpacity(graph,child,opacity);}}var edges=graph.model.getEdges(cell);if(edges!=null){for(var i=0;i<edges.length;i++){var edgeState=graph.getView().getState(edges[i]);if(edgeState!=null){mxUtils.setOpacity(edgeState.shape.node,opacity);}}}},fadeOut:function(node,from,remove,step,delay,isEnabled){step=step||40;delay=delay||30;var opacity=from||100;mxUtils.setOpacity(node,opacity);if(isEnabled||isEnabled==null){var f=function(){opacity=Math.max(opacity-step,0);mxUtils.setOpacity(node,opacity);if(opacity>0){window.setTimeout(f, delay);}else{node.style.visibility='hidden';if(remove&&node.parentNode){node.parentNode.removeChild(node);}}};window.setTimeout(f, delay);}else{node.style.visibility='hidden';if(remove&&node.parentNode){node.parentNode.removeChild(node);}}}};var mxUtils={errorResource:(mxClient.language!='none')?'error':'',closeResource:(mxClient.language!='none')?'close':'',errorImage:mxClient.imageBasePath+'/error.gif',removeCursors:function(element){if(element.style!=null){element.style.cursor='';}var children=element.childNodes;if(children!=null){var childCount=children.length;for(var i=0;i<childCount;i+=1){mxUtils.removeCursors(children[i]);}}},repaintGraph:function(graph,pt){if(mxClient.IS_GC||mxClient.IS_SF||mxClient.IS_OP){var c=graph.container;if(c!=null&&pt!=null&&(c.scrollLeft>0||c.scrollTop>0)){var dummy=document.createElement('div');dummy.style.position='absolute';dummy.style.left=pt.x+'px';dummy.style.top=pt.y+'px';dummy.style.width='1px';dummy.style.height='1px';c.appendChild(dummy);c.removeChild(dummy);}}},getCurrentStyle:function(){if(mxClient.IS_IE){return function(element){return(element!=null)?element.currentStyle:null;};}else{return function(element){return(element!=null)?window.getComputedStyle(element,''):null;};}}(),hasScrollbars:function(node){var style=mxUtils.getCurrentStyle(node);return style!=null&&(style.overflow=='scroll'||style.overflow=='auto');},bind:function(scope,funct){return function(){return funct.apply(scope,arguments);};},eval:function(expr){var result=null;if(expr.indexOf('function')>=0){try{eval('var _mxJavaScriptExpression='+expr);result=_mxJavaScriptExpression;_mxJavaScriptExpression=null;}catch(e){mxLog.warn(e.message+' while evaluating '+expr);}}else{try{result=eval(expr);}catch(e){mxLog.warn(e.message+' while evaluating '+expr);}}return result;},findNode:function(node,attr,value){var tmp=node.getAttribute(attr);if(tmp!=null&&tmp==value){return node;}node=node.firstChild;while(node!=null){var result=mxUtils.findNode(node,attr,value);if(result!=null){return result;}node=node.nextSibling;}return null;},findNodeByAttribute:function(){if(document.documentMode>=9){return function(node,attr,value){var result=null;if(node.nodeType==mxConstants.NODETYPE_ELEMENT&&node.getAttribute(attr)==value){result=node;}else{var child=node.firstChild;while(child!=null&&result==null){result=mxUtils.findNodeByAttribute(child,attr,value);child=child.nextSibling;}}return result;};}else if(mxClient.IS_IE){return function(node,attr,value){var expr='//*[@'+attr+'=\''+value+'\']';return node.ownerDocument.selectSingleNode(expr);};}else{return function(node,attr,value){var result=node.ownerDocument.evaluate('//*[@'+attr+'=\''+value+'\']',node.ownerDocument,null,XPathResult.ANY_TYPE,null);return result.iterateNext();};}}(),getFunctionName:function(f){var str=null;if(f!=null){if(f.name!=null){str=f.name;}else{var tmp=f.toString();var idx1=9;while(tmp.charAt(idx1)==' '){idx1++;}var idx2=tmp.indexOf('(',idx1);str=tmp.substring(idx1,idx2);}}return str;},indexOf:function(array,obj){if(array!=null&&obj!=null){for(var i=0;i<array.length;i++){if(array[i]==obj){return i;}}}return-1;},remove:function(obj,array){var result=null;if(typeof(array)=='object'){var index=mxUtils.indexOf(array,obj);while(index>=0){array.splice(index,1);result=obj;index=mxUtils.indexOf(array,obj);}}for(var key in array){if(array[key]==obj){delete array[key];result=obj;}}return result;},isNode:function(value,nodeName,attributeName,attributeValue){if(value!=null&&!isNaN(value.nodeType)&&(nodeName==null||value.nodeName.toLowerCase()==nodeName.toLowerCase())){return attributeName==null||value.getAttribute(attributeName)==attributeValue;}return false;},getChildNodes:function(node,nodeType){nodeType=nodeType||mxConstants.NODETYPE_ELEMENT;var children=[];var tmp=node.firstChild;while(tmp!=null){if(tmp.nodeType==nodeType){children.push(tmp);}tmp=tmp.nextSibling;}return children;},createXmlDocument:function(){var doc=null;if(document.implementation&&document.implementation.createDocument){doc=document.implementation.createDocument('','',null);}else if(window.ActiveXObject){doc=new ActiveXObject('Microsoft.XMLDOM');}return doc;},parseXml:function(){if(mxClient.IS_IE&&(typeof(document.documentMode)==='undefined'||document.documentMode<9)){return function(xml){var result=mxUtils.createXmlDocument();result.async='false';result.loadXML(xml);return result;};}else{return function(xml){var parser=new DOMParser();return parser.parseFromString(xml,'text/xml');};}}(),clearSelection:function(){if(document.selection){return function(){document.selection.empty();};}else if(window.getSelection){return function(){window.getSelection().removeAllRanges();};}}(),getPrettyXml:function(node,tab,indent){var result=[];if(node!=null){tab=tab||'  ';indent=indent||'';if(node.nodeType==mxConstants.NODETYPE_TEXT){result.push(node.nodeValue);}else{result.push(indent+'<'+node.nodeName);var attrs=node.attributes;if(attrs!=null){for(var i=0;i<attrs.length;i++){var val=mxUtils.htmlEntities(attrs[i].nodeValue);result.push(' '+attrs[i].nodeName+'="'+val+'"');}}var tmp=node.firstChild;if(tmp!=null){result.push('>\n');while(tmp!=null){result.push(mxUtils.getPrettyXml(tmp,tab,indent+tab));tmp=tmp.nextSibling;}result.push(indent+'</'+node.nodeName+'>\n');}else{result.push('/>\n');}}}return result.join('');},removeWhitespace:function(node,before){var tmp=(before)?node.previousSibling:node.nextSibling;while(tmp!=null&&tmp.nodeType==mxConstants.NODETYPE_TEXT){var next=(before)?tmp.previousSibling:tmp.nextSibling;var text=mxUtils.getTextContent(tmp);if(mxUtils.trim(text).length==0){tmp.parentNode.removeChild(tmp);}tmp=next;}},htmlEntities:function(s,newline){s=s||'';s=s.replace(/&/g,'&amp;');s=s.replace(/"/g,'&quot;');s=s.replace(/\'/g,'&#39;');s=s.replace(/</g,'&lt;');s=s.replace(/>/g,'&gt;');if(newline==null||newline){s=s.replace(/\n/g,'&#xa;');}return s;},isVml:function(node){return node!=null&&node.tagUrn=='urn:schemas-microsoft-com:vml';},getXml:function(node,linefeed){var xml='';if(node!=null){xml=node.xml;if(xml==null){if(node.innerHTML){xml=node.innerHTML;}else{var xmlSerializer=new XMLSerializer();xml=xmlSerializer.serializeToString(node);}}else{xml=xml.replace(/\r\n\t[\t]*/g,'').replace(/>\r\n/g,'>').replace(/\r\n/g,'\n');}}linefeed=linefeed||'&#xa;';xml=xml.replace(/\n/g,linefeed);return xml;},getTextContent:function(node){var result='';if(node!=null){if(node.firstChild!=null){node=node.firstChild;}result=node.nodeValue||'';}return result;},getInnerHtml:function(){if(mxClient.IS_IE){return function(node){if(node!=null){return node.innerHTML;}return '';};}else{return function(node){if(node!=null){var serializer=new XMLSerializer();return serializer.serializeToString(node);}return '';};}}(),getOuterHtml:function(){if(mxClient.IS_IE){return function(node){if(node!=null){if(node.outerHTML!=null){return node.outerHTML;}else{var tmp=[];tmp.push('<'+node.nodeName);var attrs=node.attributes;if(attrs!=null){for(var i=0;i<attrs.length;i++){var value=attrs[i].nodeValue;if(value!=null&&value.length>0){tmp.push(' ');tmp.push(attrs[i].nodeName);tmp.push('="');tmp.push(value);tmp.push('"');}}}if(node.innerHTML.length==0){tmp.push('/>');}else{tmp.push('>');tmp.push(node.innerHTML);tmp.push('</'+node.nodeName+'>');}return tmp.join('');}}return '';};}else{return function(node){if(node!=null){var serializer=new XMLSerializer();return serializer.serializeToString(node);}return '';};}}(),write:function(parent,text){doc=parent.ownerDocument;var node=doc.createTextNode(text);if(parent!=null){parent.appendChild(node);}return node;},writeln:function(parent,text){doc=parent.ownerDocument;var node=doc.createTextNode(text);if(parent!=null){parent.appendChild(node);parent.appendChild(document.createElement('br'));}return node;},br:function(parent,count){count=count||1;var br=null;for(var i=0;i<count;i++){if(parent!=null){br=parent.ownerDocument.createElement('br');parent.appendChild(br);}}return br;},button:function(label,funct,doc){doc=(doc!=null)?doc:document;var button=doc.createElement('button');mxUtils.write(button,label);mxEvent.addListener(button,'click',function(evt){funct(evt);});return button;},para:function(parent,text){var p=document.createElement('p');mxUtils.write(p,text);if(parent!=null){parent.appendChild(p);}return p;},linkAction:function(parent,text,editor,action,pad){return mxUtils.link(parent,text,function(){editor.execute(action);},pad);},linkInvoke:function(parent,text,editor,functName,arg,pad){return mxUtils.link(parent,text,function(){editor[functName](arg);},pad);},link:function(parent,text,funct,pad){var a=document.createElement('span');a.style.color='blue';a.style.textDecoration='underline';a.style.cursor='pointer';if(pad!=null){a.style.paddingLeft=pad+'px';}mxEvent.addListener(a,'click',funct);mxUtils.write(a,text);if(parent!=null){parent.appendChild(a);}return a;},fit:function(node){var left=parseInt(node.offsetLeft);var width=parseInt(node.offsetWidth);var b=document.body;var d=document.documentElement;var right=(b.scrollLeft||d.scrollLeft)+(b.clientWidth||d.clientWidth);if(left+width>right){node.style.left=Math.max((b.scrollLeft||d.scrollLeft),right-width)+'px';}var top=parseInt(node.offsetTop);var height=parseInt(node.offsetHeight);var bottom=(b.scrollTop||d.scrollTop)+Math.max(b.clientHeight||0,d.clientHeight);if(top+height>bottom){node.style.top=Math.max((b.scrollTop||d.scrollTop),bottom-height)+'px';}},open:function(filename){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');}catch(e){mxUtils.alert('Permission to read file denied.');return '';}var file=Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);file.initWithPath(filename);if(!file.exists()){mxUtils.alert('File not found.');return '';}var is=Components.classes['@mozilla.org/network/file-input-stream;1'].createInstance(Components.interfaces.nsIFileInputStream);is.init(file,0x01,00004,null);var sis=Components.classes['@mozilla.org/scriptableinputstream;1'].createInstance(Components.interfaces.nsIScriptableInputStream);sis.init(is);var output=sis.read(sis.available());return output;}else{var activeXObject=new ActiveXObject('Scripting.FileSystemObject');var newStream=activeXObject.OpenTextFile(filename,1);var text=newStream.readAll();newStream.close();return text;}return null;},save:function(filename,content){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');}catch(e){mxUtils.alert('Permission to write file denied.');return;}var file=Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);file.initWithPath(filename);if(!file.exists()){file.create(0x00,0644);}var outputStream=Components.classes['@mozilla.org/network/file-output-stream;1'].createInstance(Components.interfaces.nsIFileOutputStream);outputStream.init(file,0x20|0x02,00004,null);outputStream.write(content,content.length);outputStream.flush();outputStream.close();}else{var fso=new ActiveXObject('Scripting.FileSystemObject');var file=fso.CreateTextFile(filename,true);file.Write(content);file.Close();}},saveAs:function(content){var iframe=document.createElement('iframe');iframe.setAttribute('src','');iframe.style.visibility='hidden';document.body.appendChild(iframe);try{if(mxClient.IS_NS){var doc=iframe.contentDocument;doc.open();doc.write(content);doc.close();try{netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');iframe.focus();saveDocument(doc);}catch(e){mxUtils.alert('Permission to save document denied.');}}else{var doc=iframe.contentWindow.document;doc.write(content);doc.execCommand('SaveAs',false,document.location);}}finally{document.body.removeChild(iframe);}},copy:function(content){if(window.clipboardData){window.clipboardData.setData('Text',content);}else{netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');var clip=Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);if(!clip){return;}var trans=Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);if(!trans){return;}trans.addDataFlavor('text/unicode');var str=Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);var copytext=content;str.data=copytext;trans.setTransferData('text/unicode',str,copytext.length*2);var clipid=Components.interfaces.nsIClipboard;clip.setData(trans,null,clipid.kGlobalClipboard);}},load:function(url){var req=new mxXmlRequest(url,null,'GET',false);req.send();return req;},get:function(url,onload,onerror){return new mxXmlRequest(url,null,'GET').send(onload,onerror);},post:function(url,params,onload,onerror){return new mxXmlRequest(url,params).send(onload,onerror);},submit:function(url,params,doc,target){return new mxXmlRequest(url,params).simulate(doc,target);},loadInto:function(url,doc,onload){if(mxClient.IS_IE){doc.onreadystatechange=function(){if(doc.readyState==4){onload();}};}else{doc.addEventListener('load',onload,false);}doc.load(url);},getValue:function(array,key,defaultValue){var value=(array!=null)?array[key]:null;if(value==null){value=defaultValue;}return value;},getNumber:function(array,key,defaultValue){var value=(array!=null)?array[key]:null;if(value==null){value=defaultValue||0;}return Number(value);},getColor:function(array,key,defaultValue){var value=(array!=null)?array[key]:null;if(value==null){value=defaultValue;}else if(value==mxConstants.NONE){value=null;}return value;},clone:function(obj,transients,shallow){shallow=(shallow!=null)?shallow:false;var clone=null;if(obj!=null&&typeof(obj.constructor)=='function'){clone=new obj.constructor();for(var i in obj){if(i!=mxObjectIdentity.FIELD_NAME&&(transients==null||mxUtils.indexOf(transients,i)<0)){if(!shallow&&typeof(obj[i])=='object'){clone[i]=mxUtils.clone(obj[i]);}else{clone[i]=obj[i];}}}}return clone;},equalPoints:function(a,b){if((a==null&&b!=null)||(a!=null&&b==null)||(a!=null&&b!=null&&a.length!=b.length)){return false;}else if(a!=null&&b!=null){for(var i=0;i<a.length;i++){if(a[i]==b[i]||(a[i]!=null&&!a[i].equals(b[i]))){return false;}}}return true;},equalEntries:function(a,b){if((a==null&&b!=null)||(a!=null&&b==null)||(a!=null&&b!=null&&a.length!=b.length)){return false;}else if(a!=null&&b!=null){for(var key in a){if(a[key]!=b[key]){return false;}}}return true;},extend:function(ctor,superCtor){var f=function(){};f.prototype=superCtor.prototype;ctor.prototype=new f();ctor.prototype.constructor=ctor;},toString:function(obj){var output='';for(var i in obj){try{if(obj[i]==null){output+=i+' = [null]\n';}else if(typeof(obj[i])=='function'){output+=i+' => [Function]\n';}else if(typeof(obj[i])=='object'){var ctor=mxUtils.getFunctionName(obj[i].constructor);output+=i+' => ['+ctor+']\n';}else{output+=i+' = '+obj[i]+'\n';}}catch(e){output+=i+'='+e.message;}}return output;},toRadians:function(deg){return Math.PI*deg/180;},arcToCurves:function(x0,y0,r1,r2,angle,largeArcFlag,sweepFlag,x,y){x-=x0;y-=y0;if(r1===0||r2===0){return result;}var fS=sweepFlag;var psai=angle;r1=Math.abs(r1);r2=Math.abs(r2);var ctx=-x/2;var cty=-y/2;var cpsi=Math.cos(psai*Math.PI/180);var spsi=Math.sin(psai*Math.PI/180);var rxd=cpsi*ctx+spsi*cty;var ryd=-1*spsi*ctx+cpsi*cty;var rxdd=rxd*rxd;var rydd=ryd*ryd;var r1x=r1*r1;var r2y=r2*r2;var lamda=rxdd/r1x+rydd/r2y;var sds;if(lamda>1){r1=Math.sqrt(lamda)*r1;r2=Math.sqrt(lamda)*r2;sds=0;}else{var seif=1;if(largeArcFlag===fS){seif=-1;}sds=seif*Math.sqrt((r1x*r2y-r1x*rydd-r2y*rxdd)/(r1x*rydd+r2y*rxdd));}var txd=sds*r1*ryd/r2;var tyd=-1*sds*r2*rxd/r1;var tx=cpsi*txd-spsi*tyd+x/2;var ty=spsi*txd+cpsi*tyd+y/2;var rad=Math.atan2((ryd-tyd)/r2,(rxd-txd)/r1)-Math.atan2(0,1);var s1=(rad>=0)?rad:2*Math.PI+rad;rad=Math.atan2((-ryd-tyd)/r2,(-rxd-txd)/r1)-Math.atan2((ryd-tyd)/r2,(rxd-txd)/r1);var dr=(rad>=0)?rad:2*Math.PI+rad;if(fS==0&&dr>0){dr-=2*Math.PI;}else if(fS!=0&&dr<0){dr+=2*Math.PI;}var sse=dr*2/Math.PI;var seg=Math.ceil(sse<0?-1*sse:sse);var segr=dr/seg;var t=8/3*Math.sin(segr/4)*Math.sin(segr/4)/Math.sin(segr/2);var cpsir1=cpsi*r1;var cpsir2=cpsi*r2;var spsir1=spsi*r1;var spsir2=spsi*r2;var mc=Math.cos(s1);var ms=Math.sin(s1);var x2=-t*(cpsir1*ms+spsir2*mc);var y2=-t*(spsir1*ms-cpsir2*mc);var x3=0;var y3=0;var result=[];for(var n=0;n<seg;++n){s1+=segr;mc=Math.cos(s1);ms=Math.sin(s1);x3=cpsir1*mc-spsir2*ms+tx;y3=spsir1*mc+cpsir2*ms+ty;var dx=-t*(cpsir1*ms+spsir2*mc);var dy=-t*(spsir1*ms-cpsir2*mc);var index=n*6;result[index]=Number(x2+x0);result[index+1]=Number(y2+y0);result[index+2]=Number(x3-dx+x0);result[index+3]=Number(y3-dy+y0);result[index+4]=Number(x3+x0);result[index+5]=Number(y3+y0);x2=x3+dx;y2=y3+dy;}return result;},getBoundingBox:function(rect,rotation){var result=null;if(rect!=null&&rotation!=null&&rotation!=0){var rad=mxUtils.toRadians(rotation);var cos=Math.cos(rad);var sin=Math.sin(rad);var cx=new mxPoint(rect.x+rect.width/2,rect.y+rect.height/2);var p1=new mxPoint(rect.x,rect.y);var p2=new mxPoint(rect.x+rect.width,rect.y);var p3=new mxPoint(p2.x,rect.y+rect.height);var p4=new mxPoint(rect.x,p3.y);p1=mxUtils.getRotatedPoint(p1,cos,sin,cx);p2=mxUtils.getRotatedPoint(p2,cos,sin,cx);p3=mxUtils.getRotatedPoint(p3,cos,sin,cx);p4=mxUtils.getRotatedPoint(p4,cos,sin,cx);result=new mxRectangle(p1.x,p1.y,0,0);result.add(new mxRectangle(p2.x,p2.y,0,0));result.add(new mxRectangle(p3.x,p3.y,0,0));result.add(new mxRectangle(p4.x,p4.Y,0,0));}return result;},getRotatedPoint:function(pt,cos,sin,c){c=(c!=null)?c:new mxPoint();var x=pt.x-c.x;var y=pt.y-c.y;var x1=x*cos-y*sin;var y1=y*cos+x*sin;return new mxPoint(x1+c.x,y1+c.y);},getPortConstraints:function(terminal,edge,source,defaultValue){var value=mxUtils.getValue(terminal.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(value==null){return defaultValue;}else{var directions=value.toString();var returnValue=mxConstants.DIRECTION_MASK_NONE;if(directions.indexOf(mxConstants.DIRECTION_NORTH)>=0){returnValue|=mxConstants.DIRECTION_MASK_NORTH;}if(directions.indexOf(mxConstants.DIRECTION_WEST)>=0){returnValue|=mxConstants.DIRECTION_MASK_WEST;}if(directions.indexOf(mxConstants.DIRECTION_SOUTH)>=0){returnValue|=mxConstants.DIRECTION_MASK_SOUTH;}if(directions.indexOf(mxConstants.DIRECTION_EAST)>=0){returnValue|=mxConstants.DIRECTION_MASK_EAST;}return returnValue;}},reversePortConstraints:function(constraint){var result=0;result=(constraint&mxConstants.DIRECTION_MASK_WEST)<<3;result|=(constraint&mxConstants.DIRECTION_MASK_NORTH)<<1;result|=(constraint&mxConstants.DIRECTION_MASK_SOUTH)>>1;result|=(constraint&mxConstants.DIRECTION_MASK_EAST)>>3;return result;},findNearestSegment:function(state,x,y){var index=-1;if(state.absolutePoints.length>0){var last=state.absolutePoints[0];var min=null;for(var i=1;i<state.absolutePoints.length;i++){var current=state.absolutePoints[i];var dist=mxUtils.ptSegDistSq(last.x,last.y,current.x,current.y,x,y);if(min==null||dist<min){min=dist;index=i-1;}last=current;}}return index;},rectangleIntersectsSegment:function(bounds,p1,p2){var top=bounds.y;var left=bounds.x;var bottom=top+bounds.height;var right=left+bounds.width;var minX=p1.x;var maxX=p2.x;if(p1.x>p2.x){minX=p2.x;maxX=p1.x;}if(maxX>right){maxX=right;}if(minX<left){minX=left;}if(minX>maxX) {return false;}var minY=p1.y;var maxY=p2.y;var dx=p2.x-p1.x;if(Math.abs(dx)>0.0000001){var a=(p2.y-p1.y)/dx;var b=p1.y-a*p1.x;minY=a*minX+b;maxY=a*maxX+b;}if(minY>maxY){var tmp=maxY;maxY=minY;minY=tmp;}if(maxY>bottom){maxY=bottom;}if(minY<top){minY=top;}if(minY>maxY) {return false;}return true;},contains:function(bounds,x,y){return(bounds.x<=x&&bounds.x+bounds.width>=x&&bounds.y<=y&&bounds.y+bounds.height>=y);},intersects:function(a,b){var tw=a.width;var th=a.height;var rw=b.width;var rh=b.height;if(rw<=0||rh<=0||tw<=0||th<=0){return false;}var tx=a.x;var ty=a.y;var rx=b.x;var ry=b.y;rw+=rx;rh+=ry;tw+=tx;th+=ty;return((rw<rx||rw>tx)&&(rh<ry||rh>ty)&&(tw<tx||tw>rx)&&(th<ty||th>ry));},intersectsHotspot:function(state,x,y,hotspot,min,max){hotspot=(hotspot!=null)?hotspot:1;min=(min!=null)?min:0;max=(max!=null)?max:0;if(hotspot>0){var cx=state.getCenterX();var cy=state.getCenterY();var w=state.width;var h=state.height;var start=mxUtils.getValue(state.style,mxConstants.STYLE_STARTSIZE);if(start>0){if(mxUtils.getValue(state.style,mxConstants.STYLE_HORIZONTAL,true)){cy=state.y+start/2;h=start;}else{cx=state.x+start/2;w=start;}}w=Math.max(min,w*hotspot);h=Math.max(min,h*hotspot);if(max>0){w=Math.min(w,max);h=Math.min(h,max);}var rect=new mxRectangle(cx-w/2,cy-h/2,w,h);return mxUtils.contains(rect,x,y);}return true;},getOffset:function(container){var offsetLeft=0;var offsetTop=0;while(container.offsetParent){offsetLeft+=container.offsetLeft;offsetTop+=container.offsetTop;container=container.offsetParent;}return new mxPoint(offsetLeft,offsetTop);},getScrollOrigin:function(node){var b=document.body;var d=document.documentElement;var sl=(b.scrollLeft||d.scrollLeft);var st=(b.scrollTop||d.scrollTop);var result=new mxPoint(sl,st);while(node!=null&&node!=b&&node!=d){if(!isNaN(node.scrollLeft)&&!isNaN(node.scrollTop)){result.x+=node.scrollLeft;result.y+=node.scrollTop;}node=node.parentNode;}return result;},convertPoint:function(container,x,y){var origin=mxUtils.getScrollOrigin(container);var offset=mxUtils.getOffset(container);offset.x-=origin.x;offset.y-=origin.y;return new mxPoint(x-offset.x,y-offset.y);},ltrim:function(str,chars){chars=chars||"\\s";return str.replace(new RegExp("^["+chars+"]+","g"),"");},rtrim:function(str,chars){chars=chars||"\\s";return str.replace(new RegExp("["+chars+"]+$","g"),"");},trim:function(str,chars){return mxUtils.ltrim(mxUtils.rtrim(str,chars),chars);},isNumeric:function(str){return str!=null&&(str.length==null||(str.length>0&&str.indexOf('0x')<0)&&str.indexOf('0X')<0)&&!isNaN(str);},mod:function(n,m){return((n%m)+m)%m;},intersection:function(x0,y0,x1,y1,x2,y2,x3,y3){var denom=((y3-y2)*(x1-x0))-((x3-x2)*(y1-y0));var nume_a=((x3-x2)*(y0-y2))-((y3-y2)*(x0-x2));var nume_b=((x1-x0)*(y0-y2))-((y1-y0)*(x0-x2));var ua=nume_a/denom;var ub=nume_b/denom;if(ua>=0.0&&ua<=1.0&&ub>=0.0&&ub<=1.0){var intersectionX=x0+ua*(x1-x0);var intersectionY=y0+ua*(y1-y0);return new mxPoint(intersectionX,intersectionY);}return null;},ptSegDistSq:function(x1,y1,x2,y2,px,py){x2-=x1;y2-=y1;px-=x1;py-=y1;var dotprod=px*x2+py*y2;var projlenSq;if(dotprod<=0.0){projlenSq=0.0;}else{px=x2-px;py=y2-py;dotprod=px*x2+py*y2;if(dotprod<=0.0){projlenSq=0.0;}else{projlenSq=dotprod*dotprod/(x2*x2+y2*y2);}}var lenSq=px*px+py*py-projlenSq;if(lenSq<0){lenSq=0;}return lenSq;},relativeCcw:function(x1,y1,x2,y2,px,py){x2-=x1;y2-=y1;px-=x1;py-=y1;var ccw=px*y2-py*x2;if(ccw==0.0){ccw=px*x2+py*y2;if(ccw>0.0){px-=x2;py-=y2;ccw=px*x2+py*y2;if(ccw<0.0){ccw=0.0;}}}return(ccw<0.0)?-1:((ccw>0.0)?1:0);},animateChanges:function(graph,changes){mxEffects.animateChanges.apply(this,arguments);},cascadeOpacity:function(graph,cell,opacity){mxEffects.cascadeOpacity.apply(this,arguments);},fadeOut:function(node,from,remove,step,delay,isEnabled){mxEffects.fadeOut.apply(this,arguments);},setOpacity:function(node,value){if(mxUtils.isVml(node)){if(value>=100){node.style.filter=null;}else{node.style.filter='alpha(opacity='+(value/5)+')';}}else if(mxClient.IS_IE&&(typeof(document.documentMode)==='undefined'||document.documentMode<9)){if(value>=100){node.style.filter=null;}else{node.style.filter='alpha(opacity='+value+')';}}else{node.style.opacity=(value/100);}},createImage:function(src){var imageNode=null;if(mxClient.IS_IE6&&document.compatMode!='CSS1Compat'){imageNode=document.createElement('v:image');imageNode.setAttribute('src',src);imageNode.style.borderStyle='none';}else{imageNode=document.createElement('img');imageNode.setAttribute('src',src);imageNode.setAttribute('border','0');}return imageNode;},sortCells:function(cells,ascending){ascending=(ascending!=null)?ascending:true;var lookup=new mxDictionary();cells.sort(function(o1,o2){var p1=lookup.get(o1);if(p1==null){p1=mxCellPath.create(o1).split(mxCellPath.PATH_SEPARATOR);lookup.put(o1,p1);}var p2=lookup.get(o2);if(p2==null){p2=mxCellPath.create(o2).split(mxCellPath.PATH_SEPARATOR);lookup.put(o2,p2);}var comp=mxCellPath.compare(p1,p2);return(comp==0)?0:(((comp>0)==ascending)?1:-1);});return cells;},getStylename:function(style){if(style!=null){var pairs=style.split(';');var stylename=pairs[0];if(stylename.indexOf('=')<0){return stylename;}}return '';},getStylenames:function(style){var result=[];if(style!=null){var pairs=style.split(';');for(var i=0;i<pairs.length;i++){if(pairs[i].indexOf('=')<0){result.push(pairs[i]);}}}return result;},indexOfStylename:function(style,stylename){if(style!=null&&stylename!=null){var tokens=style.split(';');var pos=0;for(var i=0;i<tokens.length;i++){if(tokens[i]==stylename){return pos;}pos+=tokens[i].length+1;}}return-1;},addStylename:function(style,stylename){if(mxUtils.indexOfStylename(style,stylename)<0){if(style==null){style='';}else if(style.length>0&&style.charAt(style.length-1)!=';'){style+=';';}style+=stylename;}return style;},removeStylename:function(style,stylename){var result=[];if(style!=null){var tokens=style.split(';');for(var i=0;i<tokens.length;i++){if(tokens[i]!=stylename){result.push(tokens[i]);}}}return result.join(';');},removeAllStylenames:function(style){var result=[];if(style!=null){var tokens=style.split(';');for(var i=0;i<tokens.length;i++){if(tokens[i].indexOf('=')>=0){result.push(tokens[i]);}}}return result.join(';');},setCellStyles:function(model,cells,key,value){if(cells!=null&&cells.length>0){model.beginUpdate();try{for(var i=0;i<cells.length;i++){if(cells[i]!=null){var style=mxUtils.setStyle(model.getStyle(cells[i]),key,value);model.setStyle(cells[i],style);}}}finally{model.endUpdate();}}},setStyle:function(style,key,value){var isValue=value!=null&&(typeof(value.length)=='undefined'||value.length>0);if(style==null||style.length==0){if(isValue){style=key+'='+value;}}else{var index=style.indexOf(key+'=');if(index<0){if(isValue){var sep=(style.charAt(style.length-1)==';')?'':';';style=style+sep+key+'='+value;}}else{var tmp=(isValue)?(key+'='+value):'';var cont=style.indexOf(';',index);if(!isValue){cont++;}style=style.substring(0,index)+tmp+((cont>index)?style.substring(cont):'');}}return style;},setCellStyleFlags:function(model,cells,key,flag,value){if(cells!=null&&cells.length>0){model.beginUpdate();try{for(var i=0;i<cells.length;i++){if(cells[i]!=null){var style=mxUtils.setStyleFlag(model.getStyle(cells[i]),key,flag,value);model.setStyle(cells[i],style);}}}finally{model.endUpdate();}}},setStyleFlag:function(style,key,flag,value){if(style==null||style.length==0){if(value||value==null){style=key+'='+flag;}else{style=key+'=0';}}else{var index=style.indexOf(key+'=');if(index<0){var sep=(style.charAt(style.length-1)==';')?'':';';if(value||value==null){style=style+sep+key+'='+flag;}else{style=style+sep+key+'=0';}}else{var cont=style.indexOf(';',index);var tmp='';if(cont<0){tmp=style.substring(index+key.length+1);}else{tmp=style.substring(index+key.length+1,cont);}if(value==null){tmp=parseInt(tmp)^flag;}else if(value){tmp=parseInt(tmp)|flag;}else{tmp=parseInt(tmp)&~flag;}style=style.substring(0,index)+key+'='+tmp+((cont>=0)?style.substring(cont):'');}}return style;},getSizeForString:function(text,fontSize,fontFamily){var div=document.createElement('div');div.style.fontSize=fontSize||mxConstants.DEFAULT_FONTSIZE;div.style.fontFamily=fontFamily||mxConstants.DEFAULT_FONTFAMILY;div.style.position='absolute';div.style.display='inline';div.style.visibility='hidden';div.innerHTML=text;document.body.appendChild(div);var size=new mxRectangle(0,0,div.offsetWidth,div.offsetHeight);document.body.removeChild(div);return size;},getViewXml:function(graph,scale,cells,x0,y0){x0=(x0!=null)?x0:0;y0=(y0!=null)?y0:0;scale=(scale!=null)?scale:1;if(cells==null){var model=graph.getModel();cells=[model.getRoot()];}var view=graph.getView();var result=null;var eventsEnabled=view.isEventsEnabled();view.setEventsEnabled(false);var drawPane=view.drawPane;var overlayPane=view.overlayPane;if(graph.dialect==mxConstants.DIALECT_SVG){view.drawPane=document.createElementNS(mxConstants.NS_SVG,'g');view.canvas.appendChild(view.drawPane);view.overlayPane=document.createElementNS(mxConstants.NS_SVG,'g');view.canvas.appendChild(view.overlayPane);}else{view.drawPane=view.drawPane.cloneNode(false);view.canvas.appendChild(view.drawPane);view.overlayPane=view.overlayPane.cloneNode(false);view.canvas.appendChild(view.overlayPane);}var translate=view.getTranslate();view.translate=new mxPoint(x0,y0);var temp=new mxTemporaryCellStates(graph.getView(),scale,cells);try{var enc=new mxCodec();result=enc.encode(graph.getView());}finally{temp.destroy();view.translate=translate;view.canvas.removeChild(view.drawPane);view.canvas.removeChild(view.overlayPane);view.drawPane=drawPane;view.overlayPane=overlayPane;view.setEventsEnabled(eventsEnabled);}return result;},getScaleForPageCount:function(pageCount,graph,pageFormat,border){if(pageCount<1){return 1;}pageFormat=(pageFormat!=null)?pageFormat:mxConstants.PAGE_FORMAT_A4_PORTRAIT;border=(border!=null)?border:0;var availablePageWidth=pageFormat.width-(border*2);var availablePageHeight=pageFormat.height-(border*2);var graphBounds=graph.getGraphBounds().clone();var sc=graph.getView().getScale();graphBounds.width/=sc;graphBounds.height/=sc;var graphWidth=graphBounds.width;var graphHeight=graphBounds.height;var scale=1;var pageFormatAspectRatio=availablePageWidth/availablePageHeight;var graphAspectRatio=graphWidth/graphHeight;var pagesAspectRatio=graphAspectRatio/pageFormatAspectRatio;var pageRoot=Math.sqrt(pageCount);var pagesAspectRatioSqrt=Math.sqrt(pagesAspectRatio);var numRowPages=pageRoot*pagesAspectRatioSqrt;var numColumnPages=pageRoot/pagesAspectRatioSqrt;if(numRowPages<1&&numColumnPages>pageCount){var scaleChange=numColumnPages/pageCount;numColumnPages=pageCount;numRowPages/=scaleChange;}if(numColumnPages<1&&numRowPages>pageCount){var scaleChange=numRowPages/pageCount;numRowPages=pageCount;numColumnPages/=scaleChange;}var currentTotalPages=Math.ceil(numRowPages)*Math.ceil(numColumnPages);var numLoops=0;while(currentTotalPages>pageCount){var roundRowDownProportion=Math.floor(numRowPages)/numRowPages;var roundColumnDownProportion=Math.floor(numColumnPages)/numColumnPages;if(roundRowDownProportion==1){roundRowDownProportion=Math.floor(numRowPages-1)/numRowPages;}if(roundColumnDownProportion==1){roundColumnDownProportion=Math.floor(numColumnPages-1)/numColumnPages;}var scaleChange=1;if(roundRowDownProportion>roundColumnDownProportion){scaleChange=roundRowDownProportion;}else{scaleChange=roundColumnDownProportion;}numRowPages=numRowPages*scaleChange;numColumnPages=numColumnPages*scaleChange;currentTotalPages=Math.ceil(numRowPages)*Math.ceil(numColumnPages);numLoops++;if(numLoops>10){break;}}var posterWidth=availablePageWidth*numRowPages;scale=posterWidth/graphWidth;return scale*0.99999;},show:function(graph,doc,x0,y0){x0=(x0!=null)?x0:0;y0=(y0!=null)?y0:0;if(doc==null){var wnd=window.open();doc=wnd.document;}else{doc.open();}var bounds=graph.getGraphBounds();var dx=-bounds.x+x0;var dy=-bounds.y+y0;if(mxClient.IS_IE){var html='<html>';html+='<head>';var base=document.getElementsByTagName('base');for(var i=0;i<base.length;i++){html+=base[i].outerHTML;}html+='<style>';for(var i=0;i<document.styleSheets.length;i++){try{html+=document.styleSheets(i).cssText;}catch(e){}}html+='</style>';html+='</head>';html+='<body>';html+=graph.container.innerHTML;html+='</body>';html+='<html>';doc.writeln(html);doc.close();var node=doc.body.getElementsByTagName('DIV')[0];if(node!=null){node.style.position='absolute';node.style.left=dx+'px';node.style.top=dy+'px';}}else{doc.writeln('<html');doc.writeln('<head>');var base=document.getElementsByTagName('base');for(var i=0;i<base.length;i++){doc.writeln(mxUtils.getOuterHtml(base[i]));}var links=document.getElementsByTagName('link');for(var i=0;i<links.length;i++){doc.writeln(mxUtils.getOuterHtml(links[i]));}var styles=document.getElementsByTagName('style');for(var i=0;i<styles.length;i++){doc.writeln(mxUtils.getOuterHtml(styles[i]));}doc.writeln('</head>');doc.writeln('</html>');doc.close();if(doc.body==null){doc.documentElement.appendChild(doc.createElement('body'));}doc.body.style.overflow='auto';var node=graph.container.firstChild;while(node!=null){var clone=node.cloneNode(true);doc.body.appendChild(clone);node=node.nextSibling;}var node=doc.getElementsByTagName('g')[0];if(node!=null){node.setAttribute('transform','translate('+dx+','+dy+')');var root=node.ownerSVGElement;root.setAttribute('width',bounds.width+Math.max(bounds.x,0)+3);root.setAttribute('height',bounds.height+Math.max(bounds.y,0)+3);}}mxUtils.removeCursors(doc.body);return doc;},printScreen:function(graph){var wnd=window.open();mxUtils.show(graph,wnd.document);var print=function(){wnd.focus();wnd.print();wnd.close();};if(mxClient.IS_GC){wnd.setTimeout(print, 500);}else{print();}},popup:function(content,isInternalWindow){if(isInternalWindow){var div=document.createElement('div');div.style.overflow='scroll';div.style.width='636px';div.style.height='460px';var pre=document.createElement('pre');pre.innerHTML=mxUtils.htmlEntities(content,false).replace(/\n/g,'<br>').replace(/ /g,'&nbsp;');div.appendChild(pre);var w=document.body.clientWidth;var h=(document.body.clientHeight||document.documentElement.clientHeight);var wnd=new mxWindow('Popup Window',div,w/2-320,h/2-240,640,480,false,true);wnd.setClosable(true);wnd.setVisible(true);}else{if(mxClient.IS_NS){var wnd=window.open();wnd.document.writeln('<pre>'+mxUtils.htmlEntities(content)+'</pre');wnd.document.close();}else{var wnd=window.open();var pre=wnd.document.createElement('pre');pre.innerHTML=mxUtils.htmlEntities(content,false).replace(/\n/g,'<br>').replace(/ /g,'&nbsp;');wnd.document.body.appendChild(pre);}}},alert:function(message){alert(message);},prompt:function(message,defaultValue){return prompt(message,defaultValue);},confirm:function(message){return confirm(message);},error:function(message,width,close,icon){var div=document.createElement('div');div.style.padding='20px';var img=document.createElement('img');img.setAttribute('src',icon||mxUtils.errorImage);img.setAttribute('valign','bottom');img.style.verticalAlign='middle';div.appendChild(img);div.appendChild(document.createTextNode('\u00a0'));div.appendChild(document.createTextNode('\u00a0'));div.appendChild(document.createTextNode('\u00a0'));mxUtils.write(div,message);var w=document.body.clientWidth;var h=(document.body.clientHeight||document.documentElement.clientHeight);var warn=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,div,(w-width)/2,h/4,width,null,false,true);if(close){mxUtils.br(div);var tmp=document.createElement('p');var button=document.createElement('button');if(mxClient.IS_IE){button.style.cssText='float:right';}else{button.setAttribute('style','float:right');}mxEvent.addListener(button,'click',function(evt){warn.destroy();});mxUtils.write(button,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource);tmp.appendChild(button);div.appendChild(tmp);mxUtils.br(div);warn.setClosable(true);}warn.setVisible(true);return warn;},makeDraggable:function(element,graphF,funct,dragElement,dx,dy,autoscroll,scalePreview,highlightDropTargets,getDropTarget){var dragSource=new mxDragSource(element,funct);dragSource.dragOffset=new mxPoint((dx!=null)?dx:0,(dy!=null)?dy:mxConstants.TOOLTIP_VERTICAL_OFFSET);dragSource.autoscroll=autoscroll;dragSource.setGuidesEnabled(false);if(highlightDropTargets!=null){dragSource.highlightDropTargets=highlightDropTargets;}if(getDropTarget!=null){dragSource.getDropTarget=getDropTarget;}dragSource.getGraphForEvent=function(evt){return(typeof(graphF)=='function')?graphF(evt):graphF;};if(dragElement!=null){dragSource.createDragElement=function(){return dragElement.cloneNode(true);};if(scalePreview){dragSource.createPreviewElement=function(graph){var elt=dragElement.cloneNode(true);var w=parseInt(elt.style.width);var h=parseInt(elt.style.height);elt.style.width=Math.round(w*graph.view.scale)+'px';elt.style.height=Math.round(h*graph.view.scale)+'px';return elt;};}}return dragSource;}};var mxConstants={DEFAULT_HOTSPOT:0.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:'exact',RENDERING_HINT_FASTER:'faster',RENDERING_HINT_FASTEST:'fastest',DIALECT_SVG:'svg',DIALECT_VML:'vml',DIALECT_MIXEDHTML:'mixedHtml',DIALECT_PREFERHTML:'preferHtml',DIALECT_STRICTHTML:'strictHtml',NS_SVG:'http://www.w3.org/2000/svg',NS_XHTML:'http://www.w3.org/1999/xhtml',NS_XLINK:'http://www.w3.org/1999/xlink',SHADOWCOLOR:'gray',SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:'#00FF00',DEFAULT_INVALID_COLOR:'#FF0000',HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:'move',CURSOR_MOVABLE_EDGE:'move',CURSOR_LABEL_HANDLE:'default',CURSOR_BEND_HANDLE:'pointer',CURSOR_CONNECT:'pointer',HIGHLIGHT_COLOR:'#00FF00',CONNECT_TARGET_COLOR:'#0000FF',INVALID_CONNECT_TARGET_COLOR:'#FF0000',DROP_TARGET_COLOR:'#0000FF',VALID_COLOR:'#00FF00',INVALID_COLOR:'#FF0000',EDGE_SELECTION_COLOR:'#00FF00',VERTEX_SELECTION_COLOR:'#00FF00',VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:true,EDGE_SELECTION_DASHED:true,GUIDE_COLOR:'#FF0000',GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:'#0099FF',OUTLINE_STROKEWIDTH:(mxClient.IS_IE)?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:'#00FF00',HANDLE_STROKECOLOR:'black',LABEL_HANDLE_FILLCOLOR:'yellow',CONNECT_HANDLE_FILLCOLOR:'#0000FF',LOCKED_HANDLE_FILLCOLOR:'#FF0000',OUTLINE_HANDLE_FILLCOLOR:'#00FFFF',OUTLINE_HANDLE_STROKECOLOR:'#0033FF',DEFAULT_FONTFAMILY:'Arial,Helvetica',DEFAULT_FONTSIZE:11,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:0.15,LINE_ARCSIZE:20,ARROW_SPACING:10,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,826,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,826),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:'none',STYLE_PERIMETER:'perimeter',STYLE_SOURCE_PORT:'sourcePort',STYLE_TARGET_PORT:'targetPort',STYLE_PORT_CONSTRAINT:'portConstraint',STYLE_OPACITY:'opacity',STYLE_TEXT_OPACITY:'textOpacity',STYLE_OVERFLOW:'overflow',STYLE_ORTHOGONAL:'orthogonal',STYLE_EXIT_X:'exitX',STYLE_EXIT_Y:'exitY',STYLE_EXIT_PERIMETER:'exitPerimeter',STYLE_ENTRY_X:'entryX',STYLE_ENTRY_Y:'entryY',STYLE_ENTRY_PERIMETER:'entryPerimeter',STYLE_WHITE_SPACE:'whiteSpace',STYLE_ROTATION:'rotation',STYLE_FILLCOLOR:'fillColor',STYLE_GRADIENTCOLOR:'gradientColor',STYLE_GRADIENT_DIRECTION:'gradientDirection',STYLE_STROKECOLOR:'strokeColor',STYLE_SEPARATORCOLOR:'separatorColor',STYLE_STROKEWIDTH:'strokeWidth',STYLE_ALIGN:'align',STYLE_VERTICAL_ALIGN:'verticalAlign',STYLE_LABEL_POSITION:'labelPosition',STYLE_VERTICAL_LABEL_POSITION:'verticalLabelPosition',STYLE_IMAGE_ASPECT:'imageAspect',STYLE_IMAGE_ALIGN:'imageAlign',STYLE_IMAGE_VERTICAL_ALIGN:'imageVerticalAlign',STYLE_GLASS:'glass',STYLE_IMAGE:'image',STYLE_IMAGE_WIDTH:'imageWidth',STYLE_IMAGE_HEIGHT:'imageHeight',STYLE_IMAGE_BACKGROUND:'imageBackground',STYLE_IMAGE_BORDER:'imageBorder',STYLE_IMAGE_FLIPH:'imageFlipH',STYLE_IMAGE_FLIPV:'imageFlipV',STYLE_STENCIL_FLIPH:'stencilFlipH',STYLE_STENCIL_FLIPV:'stencilFlipV',STYLE_NOLABEL:'noLabel',STYLE_NOEDGESTYLE:'noEdgeStyle',STYLE_LABEL_BACKGROUNDCOLOR:'labelBackgroundColor',STYLE_LABEL_BORDERCOLOR:'labelBorderColor',STYLE_LABEL_PADDING:'labelPadding',STYLE_INDICATOR_SHAPE:'indicatorShape',STYLE_INDICATOR_IMAGE:'indicatorImage',STYLE_INDICATOR_COLOR:'indicatorColor',STYLE_INDICATOR_STROKECOLOR:'indicatorStrokeColor',STYLE_INDICATOR_GRADIENTCOLOR:'indicatorGradientColor',STYLE_INDICATOR_SPACING:'indicatorSpacing',STYLE_INDICATOR_WIDTH:'indicatorWidth',STYLE_INDICATOR_HEIGHT:'indicatorHeight',STYLE_INDICATOR_DIRECTION:'indicatorDirection',STYLE_SHADOW:'shadow',STYLE_SEGMENT:'segment',STYLE_ENDARROW:'endArrow',STYLE_STARTARROW:'startArrow',STYLE_ENDSIZE:'endSize',STYLE_STARTSIZE:'startSize',STYLE_ENDFILL:'endFill',STYLE_STARTFILL:'startFill',STYLE_DASHED:'dashed',STYLE_ROUNDED:'rounded',STYLE_ARCSIZE:'arcSize',STYLE_SMOOTH:'smooth',STYLE_SOURCE_PERIMETER_SPACING:'sourcePerimeterSpacing',STYLE_TARGET_PERIMETER_SPACING:'targetPerimeterSpacing',STYLE_PERIMETER_SPACING:'perimeterSpacing',STYLE_SPACING:'spacing',STYLE_SPACING_TOP:'spacingTop',STYLE_SPACING_LEFT:'spacingLeft',STYLE_SPACING_BOTTOM:'spacingBottom',STYLE_SPACING_RIGHT:'spacingRight',STYLE_HORIZONTAL:'horizontal',STYLE_DIRECTION:'direction',STYLE_ELBOW:'elbow',STYLE_FONTCOLOR:'fontColor',STYLE_FONTFAMILY:'fontFamily',STYLE_FONTSIZE:'fontSize',STYLE_FONTSTYLE:'fontStyle',STYLE_AUTOSIZE:'autosize',STYLE_FOLDABLE:'foldable',STYLE_EDITABLE:'editable',STYLE_BENDABLE:'bendable',STYLE_MOVABLE:'movable',STYLE_RESIZABLE:'resizable',STYLE_CLONEABLE:'cloneable',STYLE_DELETABLE:'deletable',STYLE_SHAPE:'shape',STYLE_EDGE:'edgeStyle',STYLE_LOOP:'loopStyle',STYLE_ROUTING_CENTER_X:'routingCenterX',STYLE_ROUTING_CENTER_Y:'routingCenterY',FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:'rectangle',SHAPE_ELLIPSE:'ellipse',SHAPE_DOUBLE_ELLIPSE:'doubleEllipse',SHAPE_RHOMBUS:'rhombus',SHAPE_LINE:'line',SHAPE_IMAGE:'image',SHAPE_ARROW:'arrow',SHAPE_LABEL:'label',SHAPE_CYLINDER:'cylinder',SHAPE_SWIMLANE:'swimlane',SHAPE_CONNECTOR:'connector',SHAPE_ACTOR:'actor',SHAPE_CLOUD:'cloud',SHAPE_TRIANGLE:'triangle',SHAPE_HEXAGON:'hexagon',ARROW_CLASSIC:'classic',ARROW_BLOCK:'block',ARROW_OPEN:'open',ARROW_OVAL:'oval',ARROW_DIAMOND:'diamond',ARROW_DIAMOND_THIN:'diamondThin',ALIGN_LEFT:'left',ALIGN_CENTER:'center',ALIGN_RIGHT:'right',ALIGN_TOP:'top',ALIGN_MIDDLE:'middle',ALIGN_BOTTOM:'bottom',DIRECTION_NORTH:'north',DIRECTION_SOUTH:'south',DIRECTION_EAST:'east',DIRECTION_WEST:'west',DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:'vertical',ELBOW_HORIZONTAL:'horizontal',EDGESTYLE_ELBOW:'elbowEdgeStyle',EDGESTYLE_ENTITY_RELATION:'entityRelationEdgeStyle',EDGESTYLE_LOOP:'loopEdgeStyle',EDGESTYLE_SIDETOSIDE:'sideToSideEdgeStyle',EDGESTYLE_TOPTOBOTTOM:'topToBottomEdgeStyle',EDGESTYLE_ORTHOGONAL:'orthogonalEdgeStyle',EDGESTYLE_SEGMENT:'segmentEdgeStyle',PERIMETER_ELLIPSE:'ellipsePerimeter',PERIMETER_RECTANGLE:'rectanglePerimeter',PERIMETER_RHOMBUS:'rhombusPerimeter',PERIMETER_TRIANGLE:'trianglePerimeter'};function mxEventObject(name){this.name=name;this.properties=[];for(var i=1;i<arguments.length;i+=2){if(arguments[i+1]!=null){this.properties[arguments[i]]=arguments[i+1];}}};mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=false;mxEventObject.prototype.getName=function(){return this.name;};mxEventObject.prototype.getProperties=function(){return this.properties;};mxEventObject.prototype.getProperty=function(key){return this.properties[key];};mxEventObject.prototype.isConsumed=function(){return this.consumed;};mxEventObject.prototype.consume=function(){this.consumed=true;};function mxMouseEvent(evt,state){this.evt=evt;this.state=state;};mxMouseEvent.prototype.consumed=false;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.getEvent=function(){return this.evt;};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt);};mxMouseEvent.prototype.isSource=function(shape){if(shape!=null){var source=this.getSource();while(source!=null){if(source==shape.node){return true;}source=source.parentNode;}}return false;};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent());};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent());};mxMouseEvent.prototype.getGraphX=function(){return this.graphX;};mxMouseEvent.prototype.getGraphY=function(){return this.graphY;};mxMouseEvent.prototype.getState=function(){return this.state;};mxMouseEvent.prototype.getCell=function(){var state=this.getState();if(state!=null){return state.cell;}return null;};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent());};mxMouseEvent.prototype.isConsumed=function(){return this.consumed;};mxMouseEvent.prototype.consume=function(preventDefault){preventDefault=(preventDefault!=null)?preventDefault:true;if(preventDefault&&this.evt.preventDefault){this.evt.preventDefault();}this.evt.returnValue=false;this.consumed=true;};function mxEventSource(eventSource){this.setEventSource(eventSource);};mxEventSource.prototype.eventListeners=null;mxEventSource.prototype.eventsEnabled=true;mxEventSource.prototype.eventSource=null;mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled;};mxEventSource.prototype.setEventsEnabled=function(value){this.eventsEnabled=value;};mxEventSource.prototype.getEventSource=function(){return this.eventSource;};mxEventSource.prototype.setEventSource=function(value){this.eventSource=value;};mxEventSource.prototype.addListener=function(name,funct){if(this.eventListeners==null){this.eventListeners=[];}this.eventListeners.push(name);this.eventListeners.push(funct);};mxEventSource.prototype.removeListener=function(funct){if(this.eventListeners!=null){var i=0;while(i<this.eventListeners.length){if(this.eventListeners[i+1]==funct){this.eventListeners.splice(i,2);}else{i+=2;}}}};mxEventSource.prototype.fireEvent=function(evt,sender){if(this.eventListeners!=null&&this.isEventsEnabled()){if(evt==null){evt=new mxEventObject();}if(sender==null){sender=this.getEventSource();}if(sender==null){sender=this;}var args=[sender,evt];for(var i=0;i<this.eventListeners.length;i+=2){var listen=this.eventListeners[i];if(listen==null||listen==evt.getName()){this.eventListeners[i+1].apply(this,args);}}}};var mxEvent={objects:[],addListener:function(){var updateListenerList=function(element,eventName,funct){if(element.mxListenerList==null){element.mxListenerList=[];mxEvent.objects.push(element);}var entry={name:eventName,f:funct};element.mxListenerList.push(entry);};if(window.addEventListener){return function(element,eventName,funct){element.addEventListener(eventName,funct,false);updateListenerList(element,eventName,funct);};}else{return function(element,eventName,funct){element.attachEvent("on"+eventName,funct);updateListenerList(element,eventName,funct);};}}(),removeListener:function(){var updateListener=function(element,eventName,funct){if(element.mxListenerList!=null){var listenerCount=element.mxListenerList.length;for(var i=0;i<listenerCount;i++){var entry=element.mxListenerList[i];if(entry.f==funct){element.mxListenerList.splice(i,1);break;}}if(element.mxListenerList.length==0){element.mxListenerList=null;}}};if(window.removeEventListener){return function(element,eventName,funct){element.removeEventListener(eventName,funct,false);updateListener(element,eventName,funct);};}else{return function(element,eventName,funct){element.detachEvent("on"+eventName,funct);updateListener(element,eventName,funct);};}}(),removeAllListeners:function(element){var list=element.mxListenerList;if(list!=null){while(list.length>0){var entry=list[0];mxEvent.removeListener(element,entry.name,entry.f);}}},redirectMouseEvents:function(node,graph,state,down,move,up,dblClick){var getState=function(evt){return(typeof(state)=='function')?state(evt):state;};var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(node,md,function(evt){if(down!=null){down(evt);}else if(!mxEvent.isConsumed(evt)){graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(evt,getState(evt)));}});mxEvent.addListener(node,mm,function(evt){if(move!=null){move(evt);}else if(!mxEvent.isConsumed(evt)){graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(evt,getState(evt)));}});mxEvent.addListener(node,mu,function(evt){if(up!=null){up(evt);}else if(!mxEvent.isConsumed(evt)){graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(evt,getState(evt)));}});mxEvent.addListener(node,'dblclick',function(evt){if(dblClick!=null){dblClick(evt);}else if(!mxEvent.isConsumed(evt)){var tmp=getState(evt);graph.dblClick(evt,(tmp!=null)?tmp.cell:null);}});},release:function(element){if(element!=null){mxEvent.removeAllListeners(element);var children=element.childNodes;if(children!=null){var childCount=children.length;for(var i=0;i<childCount;i+=1){mxEvent.release(children[i]);}}}},addMouseWheelListener:function(funct){if(funct!=null){var wheelHandler=function(evt){if(evt==null){evt=window.event;}var delta=0;if(mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){delta=-evt.detail/2;}else{delta=evt.wheelDelta/120;}if(delta!=0){funct(evt,delta>0);}};if(mxClient.IS_NS){var eventName=(mxClient.IS_SF||mxClient.IS_GC)?'mousewheel':'DOMMouseScroll';mxEvent.addListener(window,eventName,wheelHandler);}else{mxEvent.addListener(document,'mousewheel',wheelHandler);}}},disableContextMenu:function(){if(mxClient.IS_IE&&(typeof(document.documentMode)==='undefined'||document.documentMode<9)){return function(element){mxEvent.addListener(element,'contextmenu',function(){return false;});};}else{return function(element){element.setAttribute('oncontextmenu','return false;');};}}(),getSource:function(evt){return(evt.srcElement!=null)?evt.srcElement:evt.target;},isConsumed:function(evt){return evt.isConsumed!=null&&evt.isConsumed;},isLeftMouseButton:function(evt){return evt.button==((mxClient.IS_IE&&(typeof(document.documentMode)==='undefined'||document.documentMode<9))?1:0);},isRightMouseButton:function(evt){return evt.button==2;},isPopupTrigger:function(evt){return mxEvent.isRightMouseButton(evt)||(mxEvent.isShiftDown(evt)&&!mxEvent.isControlDown(evt));},isShiftDown:function(evt){return(evt!=null)?evt.shiftKey:false;},isAltDown:function(evt){return(evt!=null)?evt.altKey:false;},isControlDown:function(evt){return(evt!=null)?evt.ctrlKey:false;},isMetaDown:function(evt){return(evt!=null)?evt.metaKey:false;},getMainEvent:function(e){if((e.type=='touchstart'||e.type=='touchmove')&&e.touches!=null&&e.touches[0]!=null){e=e.touches[0];}else if(e.type=='touchend'&&e.changedTouches!=null&&e.changedTouches[0]!=null){e=e.changedTouches[0];}return e;},getClientX:function(e){return mxEvent.getMainEvent(e).clientX;},getClientY:function(e){return mxEvent.getMainEvent(e).clientY;},consume:function(evt,preventDefault,stopPropagation){preventDefault=(preventDefault!=null)?preventDefault:true;stopPropagation=(stopPropagation!=null)?stopPropagation:true;if(preventDefault){if(evt.preventDefault){if(stopPropagation){evt.stopPropagation();}evt.preventDefault();}else if(stopPropagation){evt.cancelBubble=true;}}evt.isConsumed=true;evt.returnValue=false;},LABEL_HANDLE:-1,MOUSE_DOWN:'mouseDown',MOUSE_MOVE:'mouseMove',MOUSE_UP:'mouseUp',ACTIVATE:'activate',RESIZE_START:'resizeStart',RESIZE:'resize',RESIZE_END:'resizeEnd',MOVE_START:'moveStart',MOVE:'move',MOVE_END:'moveEnd',PAN_START:'panStart',PAN:'pan',PAN_END:'panEnd',MINIMIZE:'minimize',NORMALIZE:'normalize',MAXIMIZE:'maximize',HIDE:'hide',SHOW:'show',CLOSE:'close',DESTROY:'destroy',REFRESH:'refresh',SIZE:'size',SELECT:'select',FIRED:'fired',GET:'get',RECEIVE:'receive',CONNECT:'connect',DISCONNECT:'disconnect',SUSPEND:'suspend',RESUME:'resume',MARK:'mark',SESSION:'session',ROOT:'root',POST:'post',OPEN:'open',SAVE:'save',BEFORE_ADD_VERTEX:'beforeAddVertex',ADD_VERTEX:'addVertex',AFTER_ADD_VERTEX:'afterAddVertex',DONE:'done',EXECUTE:'execute',BEGIN_UPDATE:'beginUpdate',END_UPDATE:'endUpdate',BEFORE_UNDO:'beforeUndo',UNDO:'undo',REDO:'redo',CHANGE:'change',NOTIFY:'notify',LAYOUT_CELLS:'layoutCells',CLICK:'click',SCALE:'scale',TRANSLATE:'translate',SCALE_AND_TRANSLATE:'scaleAndTranslate',UP:'up',DOWN:'down',ADD:'add',CLEAR:'clear',ADD_CELLS:'addCells',CELLS_ADDED:'cellsAdded',MOVE_CELLS:'moveCells',CELLS_MOVED:'cellsMoved',RESIZE_CELLS:'resizeCells',CELLS_RESIZED:'cellsResized',TOGGLE_CELLS:'toggleCells',CELLS_TOGGLED:'cellsToggled',ORDER_CELLS:'orderCells',CELLS_ORDERED:'cellsOrdered',REMOVE_CELLS:'removeCells',CELLS_REMOVED:'cellsRemoved',GROUP_CELLS:'groupCells',UNGROUP_CELLS:'ungroupCells',REMOVE_CELLS_FROM_PARENT:'removeCellsFromParent',FOLD_CELLS:'foldCells',CELLS_FOLDED:'cellsFolded',ALIGN_CELLS:'alignCells',LABEL_CHANGED:'labelChanged',CONNECT_CELL:'connectCell',CELL_CONNECTED:'cellConnected',SPLIT_EDGE:'splitEdge',FLIP_EDGE:'flipEdge',START_EDITING:'startEditing',ADD_OVERLAY:'addOverlay',REMOVE_OVERLAY:'removeOverlay',UPDATE_CELL_SIZE:'updateCellSize',ESCAPE:'escape',CLICK:'click',DOUBLE_CLICK:'doubleClick'};function mxXmlRequest(url,params,method,async,username,password){this.url=url;this.params=params;this.method=method||'POST';this.async=(async!=null)?async:true;this.username=username;this.password=password;};mxXmlRequest.prototype.url=null;mxXmlRequest.prototype.params=null;mxXmlRequest.prototype.method=null;mxXmlRequest.prototype.async=null;mxXmlRequest.prototype.binary=false;mxXmlRequest.prototype.username=null;mxXmlRequest.prototype.password=null;mxXmlRequest.prototype.request=null;mxXmlRequest.prototype.isBinary=function(){return this.binary;};mxXmlRequest.prototype.setBinary=function(value){this.binary=value;};mxXmlRequest.prototype.getText=function(){return this.request.responseText;};mxXmlRequest.prototype.isReady=function(){return this.request.readyState==4;};mxXmlRequest.prototype.getDocumentElement=function(){var doc=this.getXml();if(doc!=null){return doc.documentElement;}return null;};mxXmlRequest.prototype.getXml=function(){var xml=this.request.responseXML;if(document.documentMode>=9||xml==null||xml.documentElement==null){xml=mxUtils.parseXml(this.request.responseText);}return xml;};mxXmlRequest.prototype.getText=function(){return this.request.responseText;};mxXmlRequest.prototype.getStatus=function(){return this.request.status;};mxXmlRequest.prototype.create=function(){if(window.XMLHttpRequest){return function(){var req=new XMLHttpRequest();if(this.isBinary()&&req.overrideMimeType){req.overrideMimeType('text/plain; charset=x-user-defined');}return req;};}else if(typeof(ActiveXObject)!="undefined"){return function(){return new ActiveXObject("Microsoft.XMLHTTP");};}}();mxXmlRequest.prototype.send=function(onload,onerror){this.request=this.create();if(this.request!=null){if(onload!=null){this.request.onreadystatechange=mxUtils.bind(this,function(){if(this.isReady()){onload(this);this.onreadystatechaange=null;}});}this.request.open(this.method,this.url,this.async,this.username,this.password);this.setRequestHeaders(this.request,this.params);this.request.send(this.params);}};mxXmlRequest.prototype.setRequestHeaders=function(request,params){if(params!=null){request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}};mxXmlRequest.prototype.simulate=function(doc,target){doc=doc||document;var old=null;if(doc==document){old=window.onbeforeunload;window.onbeforeunload=null;}var form=doc.createElement('form');form.setAttribute('method',this.method);form.setAttribute('action',this.url);if(target!=null){form.setAttribute('target',target);}form.style.display='none';form.style.visibility='hidden';var pars=(this.params.indexOf('&')>0)?this.params.split('&'):this.params.split();for(var i=0;i<pars.length;i++){var pos=pars[i].indexOf('=');if(pos>0){var name=pars[i].substring(0,pos);var value=pars[i].substring(pos+1);var textarea=doc.createElement('textarea');textarea.setAttribute('name',name);value=value.replace(/\n/g,'&#xa;');var content=doc.createTextNode(value);textarea.appendChild(content);form.appendChild(textarea);}}doc.body.appendChild(form);form.submit();doc.body.removeChild(form);if(old!=null){window.onbeforeunload=old;}};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return mxClipboard.cells==null;},cut:function(graph,cells){cells=mxClipboard.copy(graph,cells);mxClipboard.insertCount=0;mxClipboard.removeCells(graph,cells);return cells;},removeCells:function(graph,cells){graph.removeCells(cells);},copy:function(graph,cells){cells=cells||graph.getSelectionCells();var result=graph.getExportableCells(cells);mxClipboard.insertCount=1;mxClipboard.cells=graph.cloneCells(result);return result;},paste:function(graph){if(mxClipboard.cells!=null){var cells=graph.getImportableCells(mxClipboard.cells);var delta=mxClipboard.insertCount*mxClipboard.STEPSIZE;var parent=graph.getDefaultParent();cells=graph.importCells(cells,delta,delta,parent);mxClipboard.insertCount++;graph.setSelectionCells(cells);}}};function mxWindow(title,content,x,y,width,height,minimizable,movable,replaceNode,style){if(content!=null){minimizable=(minimizable!=null)?minimizable:true;this.content=content;this.init(x,y,width,height,style);this.installMaximizeHandler();this.installMinimizeHandler();this.installCloseHandler();this.setMinimizable(minimizable);this.setTitle(title);if(movable==null||movable){this.installMoveHandler();}if(replaceNode!=null&&replaceNode.parentNode!=null){replaceNode.parentNode.replaceChild(this.div,replaceNode);}else{document.body.appendChild(this.div);}}};mxWindow.prototype=new mxEventSource();mxWindow.prototype.constructor=mxWindow;mxWindow.prototype.closeImage=mxClient.imageBasePath+'/close.gif';mxWindow.prototype.minimizeImage=mxClient.imageBasePath+'/minimize.gif';mxWindow.prototype.normalizeImage=mxClient.imageBasePath+'/normalize.gif';mxWindow.prototype.maximizeImage=mxClient.imageBasePath+'/maximize.gif';mxWindow.prototype.resizeImage=mxClient.imageBasePath+'/resize.gif';mxWindow.prototype.visible=false;mxWindow.prototype.content=false;mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40);mxWindow.prototype.title=false;mxWindow.prototype.content=false;mxWindow.prototype.destroyOnClose=true;mxWindow.prototype.init=function(x,y,width,height,style){style=(style!=null)?style:'mxWindow';this.div=document.createElement('div');this.div.className=style;this.div.style.left=x+'px';this.div.style.top=y+'px';this.table=document.createElement('table');this.table.className=style;if(width!=null){if(!mxClient.IS_IE){this.div.style.width=width+'px';}this.table.style.width=width+'px';}if(height!=null){if(!mxClient.IS_IE){this.div.style.height=height+'px';}this.table.style.height=height+'px';}var tbody=document.createElement('tbody');var tr=document.createElement('tr');this.title=document.createElement('td');this.title.className=style+'Title';tr.appendChild(this.title);tbody.appendChild(tr);tr=document.createElement('tr');this.td=document.createElement('td');this.td.className=style+'Pane';this.contentWrapper=document.createElement('div');this.contentWrapper.className=style+'Pane';this.contentWrapper.style.width='100%';this.contentWrapper.appendChild(this.content);if(mxClient.IS_IE||this.content.nodeName.toUpperCase()!='DIV'){this.contentWrapper.style.height='100%';}this.td.appendChild(this.contentWrapper);tr.appendChild(this.td);tbody.appendChild(tr);this.table.appendChild(tbody);this.div.appendChild(this.table);var activator=mxUtils.bind(this,function(evt){this.activate();});var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';mxEvent.addListener(this.title,md,activator);mxEvent.addListener(this.table,md,activator);this.hide();};mxWindow.prototype.setTitle=function(title){var child=this.title.firstChild;while(child!=null){var next=child.nextSibling;if(child.nodeType==mxConstants.NODETYPE_TEXT){child.parentNode.removeChild(child);}child=next;}mxUtils.write(this.title,title||'');};mxWindow.prototype.setScrollable=function(scrollable){if(navigator.userAgent.indexOf('Presto/2.5')<0){if(scrollable){this.contentWrapper.style.overflow='auto';}else{this.contentWrapper.style.overflow='hidden';}}};mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var style=mxUtils.getCurrentStyle(this.getElement());var index=(style!=null)?style.zIndex:3;if(mxWindow.activeWindow){var elt=mxWindow.activeWindow.getElement();if(elt!=null&&elt.style!=null){elt.style.zIndex=index;}}var previousWindow=mxWindow.activeWindow;this.getElement().style.zIndex=parseInt(index)+1;mxWindow.activeWindow=this;this.fireEvent(new mxEventObject(mxEvent.ACTIVATE,'previousWindow',previousWindow));}};mxWindow.prototype.getElement=function(){return this.div;};mxWindow.prototype.fit=function(){mxUtils.fit(this.div);};mxWindow.prototype.isResizable=function(){if(this.resize!=null){return this.resize.style.display!='none';}return false;};mxWindow.prototype.setResizable=function(resizable){if(resizable){if(this.resize==null){this.resize=document.createElement('img');this.resize.style.position='absolute';this.resize.style.bottom='2px';this.resize.style.right='2px';this.resize.setAttribute('src',mxClient.imageBasePath+'/resize.gif');this.resize.style.cursor='nw-resize';var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(this.resize,md,mxUtils.bind(this,function(evt){this.activate();var startX=mxEvent.getClientX(evt);var startY=mxEvent.getClientY(evt);var width=this.div.offsetWidth;var height=this.div.offsetHeight;var dragHandler=mxUtils.bind(this,function(evt){var dx=mxEvent.getClientX(evt)-startX;var dy=mxEvent.getClientY(evt)-startY;this.setSize(width+dx,height+dy);this.fireEvent(new mxEventObject(mxEvent.RESIZE,'event',evt));mxEvent.consume(evt);});var dropHandler=mxUtils.bind(this,function(evt){mxEvent.removeListener(document,mm,dragHandler);mxEvent.removeListener(document,mu,dropHandler);this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,'event',evt));mxEvent.consume(evt);});mxEvent.addListener(document,mm,dragHandler);mxEvent.addListener(document,mu,dropHandler);this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,'event',evt));mxEvent.consume(evt);}));this.div.appendChild(this.resize);}else{this.resize.style.display='inline';}}else if(this.resize!=null){this.resize.style.display='none';}};mxWindow.prototype.setSize=function(width,height){width=Math.max(this.minimumSize.width,width);height=Math.max(this.minimumSize.height,height);if(!mxClient.IS_IE){this.div.style.width=width+'px';this.div.style.height=height+'px';}this.table.style.width=width+'px';this.table.style.height=height+'px';if(!mxClient.IS_IE){this.contentWrapper.style.height=(this.div.offsetHeight-this.title.offsetHeight-2)+'px';}};mxWindow.prototype.setMinimizable=function(minimizable){this.minimize.style.display=(minimizable)?'':'none';};mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight);};mxWindow.prototype.installMinimizeHandler=function(){this.minimize=document.createElement('img');this.minimize.setAttribute('src',this.minimizeImage);this.minimize.setAttribute('align','right');this.minimize.setAttribute('title','Minimize');this.minimize.style.cursor='pointer';this.minimize.style.marginRight='1px';this.minimize.style.display='none';this.title.appendChild(this.minimize);var minimized=false;var maxDisplay=null;var height=null;var funct=mxUtils.bind(this,function(evt){this.activate();if(!minimized){minimized=true;this.minimize.setAttribute('src',this.normalizeImage);this.minimize.setAttribute('title','Normalize');this.contentWrapper.style.display='none';maxDisplay=this.maximize.style.display;this.maximize.style.display='none';height=this.table.style.height;var minSize=this.getMinimumSize();if(minSize.height>0){if(!mxClient.IS_IE){this.div.style.height=minSize.height+'px';}this.table.style.height=minSize.height+'px';}if(minSize.width>0){if(!mxClient.IS_IE){this.div.style.width=minSize.width+'px';}this.table.style.width=minSize.width+'px';}if(this.resize!=null){this.resize.style.visibility='hidden';}this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,'event',evt));}else{minimized=false;this.minimize.setAttribute('src',this.minimizeImage);this.minimize.setAttribute('title','Minimize');this.contentWrapper.style.display='';this.maximize.style.display=maxDisplay;if(!mxClient.IS_IE){this.div.style.height=height;}this.table.style.height=height;if(this.resize!=null){this.resize.style.visibility='';}this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,'event',evt));}mxEvent.consume(evt);});var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';mxEvent.addListener(this.minimize,md,funct);};mxWindow.prototype.setMaximizable=function(maximizable){this.maximize.style.display=(maximizable)?'':'none';};mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement('img');this.maximize.setAttribute('src',this.maximizeImage);this.maximize.setAttribute('align','right');this.maximize.setAttribute('title','Maximize');this.maximize.style.cursor='default';this.maximize.style.marginLeft='1px';this.maximize.style.cursor='pointer';this.maximize.style.display='none';this.title.appendChild(this.maximize);var maximized=false;var x=null;var y=null;var height=null;var width=null;var funct=mxUtils.bind(this,function(evt){this.activate();if(this.maximize.style.display!='none'){if(!maximized){maximized=true;this.maximize.setAttribute('src',this.normalizeImage);this.maximize.setAttribute('title','Normalize');this.contentWrapper.style.display='';this.minimize.style.visibility='hidden';x=parseInt(this.div.style.left);y=parseInt(this.div.style.top);height=this.table.style.height;width=this.table.style.width;this.div.style.left='0px';this.div.style.top='0px';if(!mxClient.IS_IE){this.div.style.height=(document.body.clientHeight-2)+'px';this.div.style.width=(document.body.clientWidth-2)+'px';}this.table.style.width=(document.body.clientWidth-2)+'px';this.table.style.height=(document.body.clientHeight-2)+'px';if(this.resize!=null){this.resize.style.visibility='hidden';}if(!mxClient.IS_IE){var style=mxUtils.getCurrentStyle(this.contentWrapper);if(style.overflow=='auto'||this.resize!=null){this.contentWrapper.style.height=(this.div.offsetHeight-this.title.offsetHeight-2)+'px';}}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,'event',evt));}else{maximized=false;this.maximize.setAttribute('src',this.maximizeImage);this.maximize.setAttribute('title','Maximize');this.contentWrapper.style.display='';this.minimize.style.visibility='';this.div.style.left=x+'px';this.div.style.top=y+'px';if(!mxClient.IS_IE){this.div.style.height=height;this.div.style.width=width;var style=mxUtils.getCurrentStyle(this.contentWrapper);if(style.overflow=='auto'||this.resize!=null){this.contentWrapper.style.height=(this.div.offsetHeight-this.title.offsetHeight-2)+'px';}}this.table.style.height=height;this.table.style.width=width;if(this.resize!=null){this.resize.style.visibility='';}this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,'event',evt));}mxEvent.consume(evt);}});var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';mxEvent.addListener(this.maximize,md,funct);mxEvent.addListener(this.title,'dblclick',funct);};mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor='move';var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(this.title,md,mxUtils.bind(this,function(evt){var startX=mxEvent.getClientX(evt);var startY=mxEvent.getClientY(evt);var x=this.getX();var y=this.getY();var dragHandler=mxUtils.bind(this,function(evt){var dx=mxEvent.getClientX(evt)-startX;var dy=mxEvent.getClientY(evt)-startY;this.setLocation(x+dx,y+dy);this.fireEvent(new mxEventObject(mxEvent.MOVE,'event',evt));mxEvent.consume(evt);});var dropHandler=mxUtils.bind(this,function(evt){mxEvent.removeListener(document,mm,dragHandler);mxEvent.removeListener(document,mu,dropHandler);this.fireEvent(new mxEventObject(mxEvent.MOVE_END,'event',evt));mxEvent.consume(evt);});mxEvent.addListener(document,mm,dragHandler);mxEvent.addListener(document,mu,dropHandler);this.fireEvent(new mxEventObject(mxEvent.MOVE_START,'event',evt));mxEvent.consume(evt);}));};mxWindow.prototype.setLocation=function(x,y){this.div.style.left=x+'px';this.div.style.top=y+'px';};mxWindow.prototype.getX=function(){return parseInt(this.div.style.left);};mxWindow.prototype.getY=function(){return parseInt(this.div.style.top);};mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement('img');this.closeImg.setAttribute('src',this.closeImage);this.closeImg.setAttribute('align','right');this.closeImg.setAttribute('title','Close');this.closeImg.style.marginLeft='2px';this.closeImg.style.cursor='pointer';this.closeImg.style.display='none';this.title.insertBefore(this.closeImg,this.title.firstChild);var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';mxEvent.addListener(this.closeImg,md,mxUtils.bind(this,function(evt){this.fireEvent(new mxEventObject(mxEvent.CLOSE,'event',evt));if(this.destroyOnClose){this.destroy();}else{this.setVisible(false);}mxEvent.consume(evt);}));};mxWindow.prototype.setImage=function(image){this.image=document.createElement('img');this.image.setAttribute('src',image);this.image.setAttribute('align','left');this.image.style.marginRight='4px';this.image.style.marginLeft='0px';this.image.style.marginTop='-2px';this.title.insertBefore(this.image,this.title.firstChild);};mxWindow.prototype.setClosable=function(closable){this.closeImg.style.display=(closable)?'':'none';};mxWindow.prototype.isVisible=function(){if(this.div!=null){return this.div.style.visibility!='hidden';}return false;};mxWindow.prototype.setVisible=function(visible){if(this.div!=null&&this.isVisible()!=visible){if(visible){this.show();}else{this.hide();}}};mxWindow.prototype.show=function(){this.div.style.visibility='';this.activate();var style=mxUtils.getCurrentStyle(this.contentWrapper);if(!mxClient.IS_IE&&(style.overflow=='auto'||this.resize!=null)){this.contentWrapper.style.height=(this.div.offsetHeight-this.title.offsetHeight-2)+'px';}this.fireEvent(new mxEventObject(mxEvent.SHOW));};mxWindow.prototype.hide=function(){this.div.style.visibility='hidden';this.fireEvent(new mxEventObject(mxEvent.HIDE));};mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY));if(this.div!=null){mxEvent.release(this.div);this.div.parentNode.removeChild(this.div);this.div=null;}this.title=null;this.content=null;this.contentWrapper=null;};function mxForm(className){this.table=document.createElement('table');this.table.className=className;this.body=document.createElement('tbody');this.table.appendChild(this.body);};mxForm.prototype.table=null;mxForm.prototype.body=false;mxForm.prototype.getTable=function(){return this.table;};mxForm.prototype.addButtons=function(okFunct,cancelFunct){var tr=document.createElement('tr');var td=document.createElement('td');tr.appendChild(td);td=document.createElement('td');var button=document.createElement('button');mxUtils.write(button,mxResources.get('ok')||'OK');td.appendChild(button);mxEvent.addListener(button,'click',function(){okFunct();});button=document.createElement('button');mxUtils.write(button,mxResources.get('cancel')||'Cancel');td.appendChild(button);mxEvent.addListener(button,'click',function(){cancelFunct();});tr.appendChild(td);this.body.appendChild(tr);};mxForm.prototype.addText=function(name,value){var input=document.createElement('input');input.setAttribute('type','text');input.value=value;return this.addField(name,input);};mxForm.prototype.addCheckbox=function(name,value){var input=document.createElement('input');input.setAttribute('type','checkbox');this.addField(name,input);if(value){input.checked=true;}return input;};mxForm.prototype.addTextarea=function(name,value,rows){var input=document.createElement('textarea');if(mxClient.IS_NS){rows--;}input.setAttribute('rows',rows||2);input.value=value;return this.addField(name,input);};mxForm.prototype.addCombo=function(name,isMultiSelect,size){var select=document.createElement('select');if(size!=null){select.setAttribute('size',size);}if(isMultiSelect){select.setAttribute('multiple','true');}return this.addField(name,select);};mxForm.prototype.addOption=function(combo,label,value,isSelected){var option=document.createElement('option');mxUtils.writeln(option,label);option.setAttribute('value',value);if(isSelected){option.setAttribute('selected',isSelected);}combo.appendChild(option);};mxForm.prototype.addField=function(name,input){var tr=document.createElement('tr');var td=document.createElement('td');mxUtils.write(td,name);tr.appendChild(td);td=document.createElement('td');td.appendChild(input);tr.appendChild(td);this.body.appendChild(tr);return input;};function mxImage(src,width,height){this.src=src;this.width=width;this.height=height;};mxImage.prototype.src=null;mxImage.prototype.width=null;mxImage.prototype.height=null;function mxDivResizer(div,container){if(div.nodeName.toLowerCase()=='div'){if(container==null){container=window;}this.div=div;var style=mxUtils.getCurrentStyle(div);if(style!=null){this.resizeWidth=style.width=='auto';this.resizeHeight=style.height=='auto';}mxEvent.addListener(container,'resize',mxUtils.bind(this,function(evt){if(!this.handlingResize){this.handlingResize=true;this.resize();this.handlingResize=false;}}));this.resize();}};mxDivResizer.prototype.resizeWidth=true;mxDivResizer.prototype.resizeHeight=true;mxDivResizer.prototype.handlingResize=false;mxDivResizer.prototype.resize=function(){var w=this.getDocumentWidth();var h=this.getDocumentHeight();var l=parseInt(this.div.style.left);var r=parseInt(this.div.style.right);var t=parseInt(this.div.style.top);var b=parseInt(this.div.style.bottom);if(this.resizeWidth&&!isNaN(l)&&!isNaN(r)&&l>=0&&r>=0&&w-r-l>0){this.div.style.width=(w-r-l)+'px';}if(this.resizeHeight&&!isNaN(t)&&!isNaN(b)&&t>=0&&b>=0&&h-t-b>0){this.div.style.height=(h-t-b)+'px';}};mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth;};mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight;};function mxDragSource(element,dropHandler){this.element=element;this.dropHandler=dropHandler;var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';mxEvent.addListener(element,md,mxUtils.bind(this,this.mouseDown));};mxDragSource.prototype.element=null;mxDragSource.prototype.dropHandler=null;mxDragSource.prototype.dragOffset=null;mxDragSource.prototype.dragElement=null;mxDragSource.prototype.previewElement=null;mxDragSource.prototype.enabled=true;mxDragSource.prototype.currentGraph=null;mxDragSource.prototype.currentDropTarget=null;mxDragSource.prototype.currentPoint=null;mxDragSource.prototype.currentGuide=null;mxDragSource.prototype.currentHighlight=null;mxDragSource.prototype.autoscroll=true;mxDragSource.prototype.guidesEnabled=true;mxDragSource.prototype.gridEnabled=true;mxDragSource.prototype.highlightDropTargets=true;mxDragSource.prototype.isEnabled=function(){return this.enabled;};mxDragSource.prototype.setEnabled=function(value){this.enabled=value;};mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled;};mxDragSource.prototype.setGuidesEnabled=function(value){this.guidesEnabled=value;};mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled;};mxDragSource.prototype.setGridEnabled=function(value){this.gridEnabled=value;};mxDragSource.prototype.getGraphForEvent=function(evt){return null;};mxDragSource.prototype.getDropTarget=function(graph,x,y){return graph.getCellAt(x,y);};mxDragSource.prototype.createDragElement=function(evt){return this.element.cloneNode(true);};mxDragSource.prototype.createPreviewElement=function(graph){return null;};mxDragSource.prototype.mouseDown=function(evt){if(this.enabled&&!mxEvent.isConsumed(evt)){this.startDrag(evt);var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove);mxEvent.addListener(document,mm,this.mouseMoveHandler);this.mouseUpHandler=mxUtils.bind(this,this.mouseUp);mxEvent.addListener(document,mu,this.mouseUpHandler);mxEvent.consume(evt,true,false);}};mxDragSource.prototype.startDrag=function(evt){this.dragElement=this.createDragElement(evt);this.dragElement.style.position='absolute';this.dragElement.style.zIndex='3';mxUtils.setOpacity(this.dragElement,70);};mxDragSource.prototype.stopDrag=function(evt){if(this.dragElement!=null){if(this.dragElement.parentNode!=null){this.dragElement.parentNode.removeChild(this.dragElement);}this.dragElement=null;}};mxDragSource.prototype.graphContainsEvent=function(graph,evt){var x=mxEvent.getClientX(evt);var y=mxEvent.getClientY(evt);var offset=mxUtils.getOffset(graph.container);var origin=mxUtils.getScrollOrigin();return x>=offset.x-origin.x&&y>=offset.y-origin.y&&x<=offset.x-origin.x+graph.container.offsetWidth&&y<=offset.y-origin.y+graph.container.offsetHeight;};mxDragSource.prototype.mouseMove=function(evt){var graph=this.getGraphForEvent(evt);if(graph!=null&&!this.graphContainsEvent(graph,evt)){graph=null;}if(graph!=this.currentGraph){if(this.currentGraph!=null){this.dragExit(this.currentGraph);}this.currentGraph=graph;if(this.currentGraph!=null){this.dragEnter(this.currentGraph);}}if(this.currentGraph!=null){this.dragOver(this.currentGraph,evt);}if(this.dragElement!=null&&(this.previewElement==null||this.previewElement.style.visibility!='visible')){var x=mxEvent.getClientX(evt);var y=mxEvent.getClientY(evt);if(this.dragElement.parentNode==null){document.body.appendChild(this.dragElement);}this.dragElement.style.visibility='visible';if(this.dragOffset!=null){x+=this.dragOffset.x;y+=this.dragOffset.y;}x+=document.body.scrollLeft||document.documentElement.scrollLeft;y+=document.body.scrollTop||document.documentElement.scrollTop;this.dragElement.style.left=x+'px';this.dragElement.style.top=y+'px';}else if(this.dragElement!=null){this.dragElement.style.visibility='hidden';}mxEvent.consume(evt);};mxDragSource.prototype.mouseUp=function(evt){if(this.currentGraph!=null){if(this.currentPoint!=null&&(this.previewElement==null||this.previewElement.style.visibility!='hidden')){var scale=this.currentGraph.view.scale;var tr=this.currentGraph.view.translate;var x=this.currentPoint.x/scale-tr.x;var y=this.currentPoint.y/scale-tr.y;this.drop(this.currentGraph,evt,this.currentDropTarget,x,y);}this.dragExit(this.currentGraph);}this.stopDrag(evt);this.currentGraph=null;if(this.mouseMoveHandler!=null){var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';mxEvent.removeListener(document,mm,this.mouseMoveHandler);this.mouseMoveHandler=null;}if(this.mouseUpHandler!=null){var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.removeListener(document,mu,this.mouseUpHandler);this.mouseUpHandler=null;}mxEvent.consume(evt);};mxDragSource.prototype.dragEnter=function(graph){graph.isMouseDown=true;this.previewElement=this.createPreviewElement(graph);if(this.isGuidesEnabled()&&this.previewElement!=null){this.currentGuide=new mxGuide(graph,graph.graphHandler.getGuideStates());}if(this.highlightDropTargets){this.currentHighlight=new mxCellHighlight(graph,mxConstants.DROP_TARGET_COLOR);}};mxDragSource.prototype.dragExit=function(graph){this.currentDropTarget=null;this.currentPoint=null;graph.isMouseDown=false;if(this.previewElement!=null){if(this.previewElement.parentNode!=null){this.previewElement.parentNode.removeChild(this.previewElement);}this.previewElement=null;}if(this.currentGuide!=null){this.currentGuide.destroy();this.currentGuide=null;}if(this.currentHighlight!=null){this.currentHighlight.destroy();this.currentHighlight=null;}};mxDragSource.prototype.dragOver=function(graph,evt){var offset=mxUtils.getOffset(graph.container);var origin=mxUtils.getScrollOrigin(graph.container);var x=mxEvent.getClientX(evt)-offset.x+origin.x;var y=mxEvent.getClientY(evt)-offset.y+origin.y;if(graph.autoScroll&&(this.autoscroll==null||this.autoscroll)){graph.scrollPointToVisible(x,y,graph.autoExtend);}if(this.currentHighlight!=null&&graph.isDropEnabled()){this.currentDropTarget=this.getDropTarget(graph,x,y);var state=graph.getView().getState(this.currentDropTarget);this.currentHighlight.highlight(state);}if(this.previewElement!=null){if(this.previewElement.parentNode==null){graph.container.appendChild(this.previewElement);this.previewElement.style.zIndex='3';this.previewElement.style.position='absolute';}var gridEnabled=this.isGridEnabled()&&graph.isGridEnabledEvent(evt);var hideGuide=true;if(this.currentGuide!=null&&this.currentGuide.isEnabledForEvent(evt)){var w=parseInt(this.previewElement.style.width);var h=parseInt(this.previewElement.style.height);var bounds=new mxRectangle(0,0,w,h);var delta=new mxPoint(x,y);delta=this.currentGuide.move(bounds,delta,gridEnabled);hideGuide=false;x=delta.x;y=delta.y;}else if(gridEnabled){var scale=graph.view.scale;var tr=graph.view.translate;var off=graph.gridSize/2;x=(graph.snap(x/scale-tr.x-off)+tr.x)*scale;y=(graph.snap(y/scale-tr.y-off)+tr.y)*scale;}if(this.currentGuide!=null&&hideGuide){this.currentGuide.hide();}if(this.previewOffset!=null){x+=this.previewOffset.x;y+=this.previewOffset.y;}this.previewElement.style.left=Math.round(x)+'px';this.previewElement.style.top=Math.round(y)+'px';this.previewElement.style.visibility='visible';}this.currentPoint=new mxPoint(x,y);};mxDragSource.prototype.drop=function(graph,evt,dropTarget,x,y){this.dropHandler(graph,evt,dropTarget,x,y);graph.container.focus();};function mxToolbar(container){this.container=container;};mxToolbar.prototype=new mxEventSource();mxToolbar.prototype.constructor=mxToolbar;mxToolbar.prototype.container=null;mxToolbar.prototype.enabled=true;mxToolbar.prototype.noReset=false;mxToolbar.prototype.updateDefaultMode=true;mxToolbar.prototype.addItem=function(title,icon,funct,pressedIcon,style,factoryMethod){var img=document.createElement((icon!=null)?'img':'button');var initialClassName=style||((factoryMethod!=null)?'mxToolbarMode':'mxToolbarItem');img.className=initialClassName;img.setAttribute('src',icon);if(title!=null){if(icon!=null){img.setAttribute('title',title);}else{mxUtils.write(img,title);}}this.container.appendChild(img);if(funct!=null){mxEvent.addListener(img,(mxClient.IS_TOUCH)?'touchend':'click',funct);}var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(img,md,mxUtils.bind(this,function(evt){if(pressedIcon!=null){img.setAttribute('src',pressedIcon);}else{img.style.backgroundColor='gray';}if(factoryMethod!=null){if(this.menu==null){this.menu=new mxPopupMenu();this.menu.init();}var last=this.currentImg;if(this.menu.isMenuShowing()){this.menu.hideMenu();}if(last!=img){this.currentImg=img;this.menu.factoryMethod=factoryMethod;var point=new mxPoint(img.offsetLeft,img.offsetTop+img.offsetHeight);this.menu.popup(point.x,point.y,null,evt);if(this.menu.isMenuShowing()){img.className=initialClassName+'Selected';this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this);img.className=initialClassName;this.currentImg=null;};}}}}));var mouseHandler=mxUtils.bind(this,function(evt){if(pressedIcon!=null){img.setAttribute('src',icon);}else{img.style.backgroundColor='';}});mxEvent.addListener(img,mu,mouseHandler);mxEvent.addListener(img,'mouseout',mouseHandler);return img;};mxToolbar.prototype.addCombo=function(style){var div=document.createElement('div');div.style.display='inline';div.className='mxToolbarComboContainer';var select=document.createElement('select');select.className=style||'mxToolbarCombo';div.appendChild(select);this.container.appendChild(div);return select;};mxToolbar.prototype.addActionCombo=function(title,style){var select=document.createElement('select');select.className=style||'mxToolbarCombo';this.addOption(select,title,null);mxEvent.addListener(select,'change',function(evt){var value=select.options[select.selectedIndex];select.selectedIndex=0;if(value.funct!=null){value.funct(evt);}});this.container.appendChild(select);return select;};mxToolbar.prototype.addOption=function(combo,title,value){var option=document.createElement('option');mxUtils.writeln(option,title);if(typeof(value)=='function'){option.funct=value;}else{option.setAttribute('value',value);}combo.appendChild(option);return option;};mxToolbar.prototype.addSwitchMode=function(title,icon,funct,pressedIcon,style){var img=document.createElement('img');img.initialClassName=style||'mxToolbarMode';img.className=img.initialClassName;img.setAttribute('src',icon);img.altIcon=pressedIcon;if(title!=null){img.setAttribute('title',title);}mxEvent.addListener(img,'click',mxUtils.bind(this,function(evt){var tmp=this.selectedMode.altIcon;if(tmp!=null){this.selectedMode.altIcon=this.selectedMode.getAttribute('src');this.selectedMode.setAttribute('src',tmp);}else{this.selectedMode.className=this.selectedMode.initialClassName;}if(this.updateDefaultMode){this.defaultMode=img;}this.selectedMode=img;var tmp=img.altIcon;if(tmp!=null){img.altIcon=img.getAttribute('src');img.setAttribute('src',tmp);}else{img.className=img.initialClassName+'Selected';}this.fireEvent(new mxEventObject(mxEvent.SELECT));funct();}));this.container.appendChild(img);if(this.defaultMode==null){this.defaultMode=img;this.selectedMode=img;var tmp=img.altIcon;if(tmp!=null){img.altIcon=img.getAttribute('src');img.setAttribute('src',tmp);}else{img.className=img.initialClassName+'Selected';}funct();}return img;};mxToolbar.prototype.addMode=function(title,icon,funct,pressedIcon,style,toggle){toggle=(toggle!=null)?toggle:true;var img=document.createElement((icon!=null)?'img':'button');img.initialClassName=style||'mxToolbarMode';img.className=img.initialClassName;img.setAttribute('src',icon);img.altIcon=pressedIcon;if(title!=null){img.setAttribute('title',title);}if(this.enabled&&toggle){mxEvent.addListener(img,'click',mxUtils.bind(this,function(evt){this.selectMode(img,funct);this.noReset=false;}));mxEvent.addListener(img,'dblclick',mxUtils.bind(this,function(evt){this.selectMode(img,funct);this.noReset=true;}));if(this.defaultMode==null){this.defaultMode=img;this.selectedMode=img;var tmp=img.altIcon;if(tmp!=null){img.altIcon=img.getAttribute('src');img.setAttribute('src',tmp);}else{img.className=img.initialClassName+'Selected';}}}this.container.appendChild(img);return img;};mxToolbar.prototype.selectMode=function(domNode,funct){if(this.selectedMode!=domNode){var tmp=this.selectedMode.altIcon;if(tmp!=null){this.selectedMode.altIcon=this.selectedMode.getAttribute('src');this.selectedMode.setAttribute('src',tmp);}else{this.selectedMode.className=this.selectedMode.initialClassName;}this.selectedMode=domNode;var tmp=this.selectedMode.altIcon;if(tmp!=null){this.selectedMode.altIcon=this.selectedMode.getAttribute('src');this.selectedMode.setAttribute('src',tmp);}else{this.selectedMode.className=this.selectedMode.initialClassName+'Selected';}this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",funct));}};mxToolbar.prototype.resetMode=function(forced){if((forced||!this.noReset)&&this.selectedMode!=this.defaultMode){this.selectMode(this.defaultMode,null);}};mxToolbar.prototype.addSeparator=function(icon){return this.addItem(null,icon,null);};mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container);};mxToolbar.prototype.addLine=function(){var hr=document.createElement('hr');hr.style.marginRight='6px';hr.setAttribute('size','1');this.container.appendChild(hr);};mxToolbar.prototype.destroy=function(){mxEvent.release(this.container);this.container=null;this.defaultMode=null;this.selectedMode=null;if(this.menu!=null){this.menu.destroy();}};function mxSession(model,urlInit,urlPoll,urlNotify){this.model=model;this.urlInit=urlInit;this.urlPoll=urlPoll;this.urlNotify=urlNotify;if(model!=null){this.codec=new mxCodec();this.codec.lookup=function(id){return model.getCell(id);};}model.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(sender,evt){var edit=evt.getProperty('edit');if(edit!=null&&this.debug||(this.connected&&!this.suspended)){this.notify('<edit>'+this.encodeChanges(edit.changes,edit.undone)+'</edit>');}}));};mxSession.prototype=new mxEventSource();mxSession.prototype.constructor=mxSession;mxSession.prototype.model=null;mxSession.prototype.urlInit=null;mxSession.prototype.urlPoll=null;mxSession.prototype.urlNotify=null;mxSession.prototype.codec=null;mxSession.prototype.linefeed='&#xa;';mxSession.prototype.escapePostData=true;mxSession.prototype.significantRemoteChanges=true;mxSession.prototype.sent=0;mxSession.prototype.received=0;mxSession.prototype.debug=false;mxSession.prototype.connected=false;mxSession.prototype.suspended=false;mxSession.prototype.polling=false;mxSession.prototype.start=function(){if(this.debug){this.connected=true;this.fireEvent(new mxEventObject(mxEvent.CONNECT));}else if(!this.connected){this.get(this.urlInit,mxUtils.bind(this,function(req){this.connected=true;this.fireEvent(new mxEventObject(mxEvent.CONNECT));this.poll();}));}};mxSession.prototype.suspend=function(){if(this.connected&&!this.suspended){this.suspended=true;this.fireEvent(new mxEventObject(mxEvent.SUSPEND));}};mxSession.prototype.resume=function(type,attr,value){if(this.connected&&this.suspended){this.suspended=false;this.fireEvent(new mxEventObject(mxEvent.RESUME));if(!this.polling){this.poll();}}};mxSession.prototype.stop=function(reason){if(this.connected){this.connected=false;}this.fireEvent(new mxEventObject(mxEvent.DISCONNECT,'reason',reason));};mxSession.prototype.poll=function(){if(this.connected&&!this.suspended&&this.urlPoll!=null){this.polling=true;this.get(this.urlPoll,mxUtils.bind(this,function(){this.poll();}));}else{this.polling=false;}};mxSession.prototype.notify=function(xml,onLoad,onError){if(xml!=null&&xml.length>0){if(this.urlNotify!=null){if(this.debug){mxLog.show();mxLog.debug('mxSession.notify: '+this.urlNotify+' xml='+xml);}else{xml='<message><delta>'+xml+'</delta></message>';if(this.escapePostData){xml=encodeURIComponent(xml);}mxUtils.post(this.urlNotify,'xml='+xml,onLoad,onError);}}this.sent+=xml.length;this.fireEvent(new mxEventObject(mxEvent.NOTIFY,'url',this.urlNotify,'xml',xml));}};mxSession.prototype.get=function(url,onLoad,onError){if(typeof(mxUtils)!='undefined'){var onErrorWrapper=mxUtils.bind(this,function(ex){if(onError!=null){onError(ex);}else{this.stop(ex);}});var req=mxUtils.get(url,mxUtils.bind(this,function(req){if(typeof(mxUtils)!='undefined'){{if(req.isReady()&&req.getStatus()!=404){this.received+=req.getText().length;this.fireEvent(new mxEventObject(mxEvent.GET,'url',url,'request',req));if(this.isValidResponse(req)){if(req.getText().length>0){var node=req.getDocumentElement();if(node==null){onErrorWrapper('Invalid response: '+req.getText());}else{this.receive(node);}}if(onLoad!=null){onLoad(req);}}}else{onErrorWrapper('Response not ready');}}}}),function(req){onErrorWrapper('Transmission error');});}};mxSession.prototype.isValidResponse=function(req){return req.getText().indexOf('<?php')<0;};mxSession.prototype.encodeChanges=function(changes,invert){var xml='';var step=(invert)?-1:1;var i0=(invert)?changes.length-1:0;for(var i=i0;i>=0&&i<changes.length;i+=step){var node=this.codec.encode(changes[i]);xml+=mxUtils.getXml(node,this.linefeed);}return xml;};mxSession.prototype.receive=function(node){if(node!=null&&node.nodeType==mxConstants.NODETYPE_ELEMENT){var ns=node.getAttribute('namespace');if(ns!=null){this.model.prefix=ns+'-';}var child=node.firstChild;while(child!=null){var name=child.nodeName.toLowerCase();if(name=='state'){this.processState(child);}else if(name=='delta'){this.processDelta(child);}child=child.nextSibling;}this.fireEvent(new mxEventObject(mxEvent.RECEIVE,'node',node));}};mxSession.prototype.processState=function(node){var dec=new mxCodec(node.ownerDocument);dec.decode(node.firstChild,this.model);};mxSession.prototype.processDelta=function(node){var edit=node.firstChild;while(edit!=null){if(edit.nodeName=='edit'){this.processEdit(edit);}edit=edit.nextSibling;}};mxSession.prototype.processEdit=function(node){var changes=this.decodeChanges(node);if(changes.length>0){var edit=this.createUndoableEdit(changes);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,'edit',edit,'changes',changes));this.model.fireEvent(new mxEventObject(mxEvent.UNDO,'edit',edit));this.fireEvent(new mxEventObject(mxEvent.FIRED,'edit',edit));}};mxSession.prototype.createUndoableEdit=function(changes){var edit=new mxUndoableEdit(this.model,this.significantRemoteChanges);edit.changes=changes;edit.notify=function(){edit.source.fireEvent(new mxEventObject(mxEvent.CHANGE,'edit',edit,'changes',edit.changes));edit.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,'edit',edit,'changes',edit.changes));};return edit;};mxSession.prototype.decodeChanges=function(node){this.codec.document=node.ownerDocument;var changes=[];node=node.firstChild;while(node!=null){if(node.nodeType==mxConstants.NODETYPE_ELEMENT){var change=null;if(node.nodeName=='mxRootChange'){var tmp=new mxCodec(node.ownerDocument);change=tmp.decode(node);}else{change=this.codec.decode(node);}if(change!=null){change.model=this.model;change.execute();if(node.nodeName=='mxChildChange'&&change.parent==null){this.cellRemoved(change.child);}changes.push(change);}}node=node.nextSibling;}return changes;};mxSession.prototype.cellRemoved=function(cell,codec){this.codec.putObject(cell.getId(),cell);var childCount=this.model.getChildCount(cell);for(var i=0;i<childCount;i++){this.cellRemoved(this.model.getChildAt(cell,i));}};function mxUndoableEdit(source,significant){this.source=source;this.changes=[];this.significant=(significant!=null)?significant:true;};mxUndoableEdit.prototype.source=null;mxUndoableEdit.prototype.changes=null;mxUndoableEdit.prototype.significant=null;mxUndoableEdit.prototype.undone=false;mxUndoableEdit.prototype.redone=false;mxUndoableEdit.prototype.isEmpty=function(){return this.changes.length==0;};mxUndoableEdit.prototype.isSignificant=function(){return this.significant;};mxUndoableEdit.prototype.add=function(change){this.changes.push(change);};mxUndoableEdit.prototype.notify=function(){};mxUndoableEdit.prototype.die=function(){};mxUndoableEdit.prototype.undo=function(){if(!this.undone){var count=this.changes.length;for(var i=count-1;i>=0;i--){var change=this.changes[i];if(change.execute!=null){change.execute();}else if(change.undo!=null){change.undo();}}this.undone=true;this.redone=false;}this.notify();};mxUndoableEdit.prototype.redo=function(){if(!this.redone){var count=this.changes.length;for(var i=0;i<count;i++){var change=this.changes[i];if(change.execute!=null){change.execute();}else if(change.redo!=null){change.redo();}}this.undone=false;this.redone=true;}this.notify();};function mxUndoManager(size){this.size=(size!=null)?size:100;this.clear();};mxUndoManager.prototype=new mxEventSource();mxUndoManager.prototype.constructor=mxUndoManager;mxUndoManager.prototype.size=null;mxUndoManager.prototype.history=null;mxUndoManager.prototype.indexOfNextAdd=0;mxUndoManager.prototype.isEmpty=function(){return this.history.length==0;};mxUndoManager.prototype.clear=function(){this.history=[];this.indexOfNextAdd=0;this.fireEvent(new mxEventObject(mxEvent.CLEAR));};mxUndoManager.prototype.canUndo=function(){return this.indexOfNextAdd>0;};mxUndoManager.prototype.undo=function(){while(this.indexOfNextAdd>0){var edit=this.history[--this.indexOfNextAdd];edit.undo();if(edit.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,'edit',edit));break;}}};mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length;};mxUndoManager.prototype.redo=function(){var n=this.history.length;while(this.indexOfNextAdd<n){var edit=this.history[this.indexOfNextAdd++];edit.redo();if(edit.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,'edit',edit));break;}}};mxUndoManager.prototype.undoableEditHappened=function(undoableEdit){this.trim();if(this.size>0&&this.size==this.history.length){this.history.shift();}this.history.push(undoableEdit);this.indexOfNextAdd=this.history.length;this.fireEvent(new mxEventObject(mxEvent.ADD,'edit',undoableEdit));};mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd){var edits=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd);for(var i=0;i<edits.length;i++){edits[i].die();}}};var mxUrlConverter=function(root){var enabled=true;var baseUrl=null;var updateBaseUrl=function(){baseUrl=document.URL;var tmp=baseUrl.lastIndexOf('/');if(tmp>0){baseUrl=baseUrl.substring(0,tmp+1);}};return{isEnabled:function(){return enabled;},setEnabled:function(value){enabled=value;},getBaseUrl:function(){return baseUrl;},setBaseUrl:function(value){baseUrl=value;},convert:function(url){if(enabled&&url.indexOf('http://')!=0&&url.indexOf('https://')!=0&&url.indexOf('data:image')!=0){if(baseUrl==null){updateBaseUrl();}url=baseUrl+url;}return url;}};};function mxPanningManager(graph){this.thread=null;this.active=false;this.tdx=0;this.tdy=0;this.t0x=0;this.t0y=0;this.dx=0;this.dy=0;this.mouseListener={mouseDown:function(sender,me){},mouseMove:function(sender,me){},mouseUp:mxUtils.bind(this,function(sender,me){if(this.active){this.stop();}})};graph.addMouseListener(this.mouseListener);var createThread=mxUtils.bind(this,function(){return window.setInterval(mxUtils.bind(this,function(){this.tdx-=this.dx;this.tdy-=this.dy;graph.panGraph(this.getDx(),this.getDy());}),this.delay);});this.isActive=function(){return active;};this.getDx=function(){return Math.round(this.tdx);};this.getDy=function(){return Math.round(this.tdy);};this.start=function(){this.t0x=graph.view.translate.x;this.t0y=graph.view.translate.y;this.active=true;};this.panTo=function(x,y,w,h){if(!this.active){this.start();}w=(w!=null)?w:0;h=(h!=null)?h:0;var c=graph.container;this.dx=x+w-c.scrollLeft-c.clientWidth;if(this.dx<0&&Math.abs(this.dx)<this.border){this.dx=this.border+this.dx;}else if(this.handleMouseOut){this.dx=Math.max(this.dx,0);}else{this.dx=0;}if(this.dx==0){this.dx=x-c.scrollLeft;if(this.dx>0&&this.dx<this.border){this.dx=this.dx-this.border;}else if(this.handleMouseOut){this.dx=Math.min(0,this.dx);}else{this.dx=0;}}this.dy=y+h-c.scrollTop-c.clientHeight;if(this.dy<0&&Math.abs(this.dy)<this.border){this.dy=this.border+this.dy;}else if(this.handleMouseOut){this.dy=Math.max(this.dy,0);}else{this.dy=0;}if(this.dy==0){this.dy=y-c.scrollTop;if(this.dy>0&&this.dy<this.border){this.dy=this.dy-this.border;}else if(this.handleMouseOut){this.dy=Math.min(0,this.dy);}else{this.dy=0;}}if(this.dx!=0||this.dy!=0){this.dx*=this.damper;this.dy*=this.damper;if(this.thread==null){this.thread=createThread();}}else if(this.thread!=null){window.clearInterval(this.thread);this.thread=null;}};this.stop=function(){if(this.active){this.active=false;var px=graph.panDx;var py=graph.panDy;if(this.thread!=null){window.clearInterval(this.thread);this.thread=null;}if(px!=0||py!=0){graph.panGraph(0,0);graph.view.setTranslate(this.t0x+px/graph.view.scale,this.t0y+py/graph.view.scale);this.tdx=0;this.tdy=0;}}};this.destroy=function(){graph.removeMouseListener(this.mouseListener);};};mxPanningManager.prototype.damper=1/6;mxPanningManager.prototype.delay=10;mxPanningManager.prototype.handleMouseOut=true;mxPanningManager.prototype.border=0;function mxPath(format){this.format=format;this.path=[];this.translate=new mxPoint(0,0);};mxPath.prototype.format=null;mxPath.prototype.translate=null;mxPath.prototype.path=null;mxPath.prototype.isVml=function(){return this.format=='vml';};mxPath.prototype.getPath=function(){return this.path.join('');};mxPath.prototype.setTranslate=function(x,y){this.translate=new mxPoint(x,y);};mxPath.prototype.moveTo=function(x,y){if(this.isVml()){this.path.push('m ',Math.round(this.translate.x+x),' ',Math.round(this.translate.y+y),' ');}else{this.path.push('M ',Math.round(this.translate.x+x),' ',Math.round(this.translate.y+y),' ');}};mxPath.prototype.lineTo=function(x,y){if(this.isVml()){this.path.push('l ',Math.round(this.translate.x+x),' ',Math.round(this.translate.y+y),' ');}else{this.path.push('L ',Math.round(this.translate.x+x),' ',Math.round(this.translate.y+y),' ');}};mxPath.prototype.quadTo=function(x1,y1,x,y){if(this.isVml()){this.path.push('c ',Math.round(this.translate.x+x1),' ',Math.round(this.translate.y+y1),' ',Math.round(this.translate.x+x),' ',Math.round(this.translate.y+y),' ',Math.round(this.translate.x+x),' ',Math.round(this.translate.y+y),' ');}else{this.path.push('Q ',Math.round(this.translate.x+x1),' ',Math.round(this.translate.y+y1),' ',Math.round(this.translate.x+x),' ',Math.round(this.translate.y+y),' ');}};mxPath.prototype.curveTo=function(x1,y1,x2,y2,x,y){if(this.isVml()){this.path.push('c ',Math.round(this.translate.x+x1),' ',Math.round(this.translate.y+y1),' ',Math.round(this.translate.x+x2),' ',Math.round(this.translate.y+y2),' ',Math.round(this.translate.x+x),' ',Math.round(this.translate.y+y),' ');}else{this.path.push('C ',Math.round(this.translate.x+x1),' ',Math.round(this.translate.y+y1),' ',Math.round(this.translate.x+x2),' ',Math.round(this.translate.y+y2),' ',Math.round(this.translate.x+x),' ',Math.round(this.translate.y+y),' ');}};mxPath.prototype.addPath=function(path){this.path=this.path.concat(path.path);};mxPath.prototype.write=function(string){this.path.push(string,' ');};mxPath.prototype.end=function(){if(this.format=='vml'){this.path.push('e');}};mxPath.prototype.close=function(){if(this.format=='vml'){this.path.push('x e');}else{this.path.push('Z');}};function mxPopupMenu(factoryMethod){this.factoryMethod=factoryMethod;if(factoryMethod!=null){this.init();}};mxPopupMenu.prototype=new mxEventSource();mxPopupMenu.prototype.constructor=mxPopupMenu;mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+'/submenu.gif';mxPopupMenu.prototype.zIndex=10006;mxPopupMenu.prototype.factoryMethod=null;mxPopupMenu.prototype.useLeftButtonForPopup=false;mxPopupMenu.prototype.enabled=true;mxPopupMenu.prototype.itemCount=0;mxPopupMenu.prototype.autoExpand=false;mxPopupMenu.prototype.smartSeparators=false;mxPopupMenu.prototype.labels=true;mxPopupMenu.prototype.init=function(){this.table=document.createElement('table');this.table.className='mxPopupMenu';this.tbody=document.createElement('tbody');this.table.appendChild(this.tbody);this.div=document.createElement('div');this.div.className='mxPopupMenu';this.div.style.display='inline';this.div.style.zIndex=this.zIndex;this.div.appendChild(this.table);mxEvent.disableContextMenu(this.div);};mxPopupMenu.prototype.isEnabled=function(){return this.enabled;};mxPopupMenu.prototype.setEnabled=function(enabled){this.enabled=enabled;};mxPopupMenu.prototype.isPopupTrigger=function(me){return me.isPopupTrigger()||(this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(me.getEvent()));};mxPopupMenu.prototype.addItem=function(title,image,funct,parent,iconCls,enabled){parent=parent||this;this.itemCount++;if(parent.willAddSeparator){if(parent.containsItems){this.addSeparator(parent,true);}parent.willAddSeparator=false;}parent.containsItems=true;var tr=document.createElement('tr');tr.className='mxPopupMenuItem';var col1=document.createElement('td');col1.className='mxPopupMenuIcon';if(image!=null){var img=document.createElement('img');img.src=image;col1.appendChild(img);}else if(iconCls!=null){var div=document.createElement('div');div.className=iconCls;col1.appendChild(div);}tr.appendChild(col1);if(this.labels){var col2=document.createElement('td');col2.className='mxPopupMenuItem'+((enabled!=null&&!enabled)?' disabled':'');mxUtils.write(col2,title);col2.align='left';tr.appendChild(col2);var col3=document.createElement('td');col3.className='mxPopupMenuItem'+((enabled!=null&&!enabled)?' disabled':'');col3.style.paddingRight='6px';col3.style.textAlign='right';tr.appendChild(col3);if(parent.div==null){this.createSubmenu(parent);}}parent.tbody.appendChild(tr);if(enabled==null||enabled){var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(tr,md,mxUtils.bind(this,function(evt){this.eventReceiver=tr;if(parent.activeRow!=tr&&parent.activeRow!=parent){if(parent.activeRow!=null&&parent.activeRow.div.parentNode!=null){this.hideSubmenu(parent);}if(tr.div!=null){this.showSubmenu(parent,tr);parent.activeRow=tr;}}mxEvent.consume(evt);}));mxEvent.addListener(tr,mm,mxUtils.bind(this,function(evt){if(parent.activeRow!=tr&&parent.activeRow!=parent){if(parent.activeRow!=null&&parent.activeRow.div.parentNode!=null){this.hideSubmenu(parent);}if(this.autoExpand&&tr.div!=null){this.showSubmenu(parent,tr);parent.activeRow=tr;}}tr.className='mxPopupMenuItemHover';}));mxEvent.addListener(tr,mu,mxUtils.bind(this,function(evt){if(this.eventReceiver==tr){if(parent.activeRow!=tr){this.hideMenu();}if(funct!=null){funct(evt);}}this.eventReceiver=null;mxEvent.consume(evt);}));mxEvent.addListener(tr,'mouseout',mxUtils.bind(this,function(evt){tr.className='mxPopupMenuItem';}));}return tr;};mxPopupMenu.prototype.createSubmenu=function(parent){parent.table=document.createElement('table');parent.table.className='mxPopupMenu';parent.tbody=document.createElement('tbody');parent.table.appendChild(parent.tbody);parent.div=document.createElement('div');parent.div.className='mxPopupMenu';parent.div.style.position='absolute';parent.div.style.display='inline';parent.div.style.zIndex=this.zIndex;parent.div.appendChild(parent.table);var img=document.createElement('img');img.setAttribute('src',this.submenuImage);td=parent.firstChild.nextSibling.nextSibling;td.appendChild(img);};mxPopupMenu.prototype.showSubmenu=function(parent,row){if(row.div!=null){row.div.style.left=(parent.div.offsetLeft+row.offsetLeft+row.offsetWidth-1)+'px';row.div.style.top=(parent.div.offsetTop+row.offsetTop)+'px';document.body.appendChild(row.div);var left=parseInt(row.div.offsetLeft);var width=parseInt(row.div.offsetWidth);var b=document.body;var d=document.documentElement;var right=(b.scrollLeft||d.scrollLeft)+(b.clientWidth||d.clientWidth);if(left+width>right){row.div.style.left=(parent.div.offsetLeft-width+((mxClient.IS_IE)?6:-6))+'px';}mxUtils.fit(row.div);}};mxPopupMenu.prototype.addSeparator=function(parent,force){parent=parent||this;if(this.smartSeparators&&!force){parent.willAddSeparator=true;}else if(parent.tbody!=null){parent.willAddSeparator=false;var tr=document.createElement('tr');var col1=document.createElement('td');col1.className='mxPopupMenuIcon';col1.style.padding='0 0 0 0px';tr.appendChild(col1);var col2=document.createElement('td');col2.style.padding='0 0 0 0px';col2.setAttribute('colSpan','2');var hr=document.createElement('hr');hr.setAttribute('size','1');col2.appendChild(hr);tr.appendChild(col2);parent.tbody.appendChild(tr);}};mxPopupMenu.prototype.popup=function(x,y,cell,evt){if(this.div!=null&&this.tbody!=null&&this.factoryMethod!=null){this.div.style.left=x+'px';this.div.style.top=y+'px';while(this.tbody.firstChild!=null){mxEvent.release(this.tbody.firstChild);this.tbody.removeChild(this.tbody.firstChild);}this.itemCount=0;this.factoryMethod(this,cell,evt);if(this.itemCount>0){this.showMenu();this.fireEvent(new mxEventObject(mxEvent.SHOW));}}};mxPopupMenu.prototype.isMenuShowing=function(){return this.div!=null&&this.div.parentNode==document.body;};mxPopupMenu.prototype.showMenu=function(){if(document.documentMode>=9){this.div.style.filter='none';}document.body.appendChild(this.div);mxUtils.fit(this.div);};mxPopupMenu.prototype.hideMenu=function(){if(this.div!=null){if(this.div.parentNode!=null){this.div.parentNode.removeChild(this.div);}this.hideSubmenu(this);this.containsItems=false;}};mxPopupMenu.prototype.hideSubmenu=function(parent){if(parent.activeRow!=null){this.hideSubmenu(parent.activeRow);if(parent.activeRow.div.parentNode!=null){parent.activeRow.div.parentNode.removeChild(parent.activeRow.div);}parent.activeRow=null;}};mxPopupMenu.prototype.destroy=function(){if(this.div!=null){mxEvent.release(this.div);if(this.div.parentNode!=null){this.div.parentNode.removeChild(this.div);}this.div=null;}};function mxAutoSaveManager(graph){this.changeHandler=mxUtils.bind(this,function(sender,evt){if(this.isEnabled()){this.graphModelChanged(evt.getProperty('edit').changes);}});this.setGraph(graph);};mxAutoSaveManager.prototype=new mxEventSource();mxAutoSaveManager.prototype.constructor=mxAutoSaveManager;mxAutoSaveManager.prototype.graph=null;mxAutoSaveManager.prototype.autoSaveDelay=10;mxAutoSaveManager.prototype.autoSaveThrottle=2;mxAutoSaveManager.prototype.autoSaveThreshold=5;mxAutoSaveManager.prototype.ignoredChanges=0;mxAutoSaveManager.prototype.lastSnapshot=0;mxAutoSaveManager.prototype.enabled=true;mxAutoSaveManager.prototype.changeHandler=null;mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled;};mxAutoSaveManager.prototype.setEnabled=function(value){this.enabled=value;};mxAutoSaveManager.prototype.setGraph=function(graph){if(this.graph!=null){this.graph.getModel().removeListener(this.changeHandler);}this.graph=graph;if(this.graph!=null){this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);}};mxAutoSaveManager.prototype.save=function(){};mxAutoSaveManager.prototype.graphModelChanged=function(changes){var now=new Date().getTime();var dt=(now-this.lastSnapshot)/1000;if(dt>this.autoSaveDelay||(this.ignoredChanges>=this.autoSaveThreshold&&dt>this.autoSaveThrottle)){this.save();this.reset();}else{this.ignoredChanges++;}};mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=new Date().getTime();this.ignoredChanges=0;};mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null);};function mxAnimation(delay){this.delay=(delay!=null)?delay:20;};mxAnimation.prototype=new mxEventSource();mxAnimation.prototype.constructor=mxAnimation;mxAnimation.prototype.delay=null;mxAnimation.prototype.thread=null;mxAnimation.prototype.startAnimation=function(){if(this.thread==null){this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay);}};mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE));};mxAnimation.prototype.stopAnimation=function(){if(this.thread!=null){window.clearInterval(this.thread);this.thread=null;this.fireEvent(new mxEventObject(mxEvent.DONE));}};function mxMorphing(graph,steps,ease,delay){mxAnimation.call(this,delay);this.graph=graph;this.steps=(steps!=null)?steps:6;this.ease=(ease!=null)?ease:1.5;};mxMorphing.prototype=new mxAnimation();mxMorphing.prototype.constructor=mxMorphing;mxMorphing.prototype.graph=null;mxMorphing.prototype.steps=null;mxMorphing.prototype.step=0;mxMorphing.prototype.ease=null;mxMorphing.prototype.cells=null;mxMorphing.prototype.updateAnimation=function(){var move=new mxCellStatePreview(this.graph);if(this.cells!=null){for(var i=0;i<this.cells.length;i++){this.animateCell(cells[i],move,false);}}else{this.animateCell(this.graph.getModel().getRoot(),move,true);}this.show(move);if(move.isEmpty()||this.step++>=this.steps){this.stopAnimation();}};mxMorphing.prototype.show=function(move){move.show();};mxMorphing.prototype.animateCell=function(cell,move,recurse){var state=this.graph.getView().getState(cell);var delta=null;if(state!=null){delta=this.getDelta(state);if(this.graph.getModel().isVertex(cell)&&(delta.x!=0||delta.y!=0)){var translate=this.graph.view.getTranslate();var scale=this.graph.view.getScale();delta.x+=translate.x*scale;delta.y+=translate.y*scale;move.moveState(state,-delta.x/this.ease,-delta.y/this.ease);}}if(recurse&&!this.stopRecursion(state,delta)){var childCount=this.graph.getModel().getChildCount(cell);for(var i=0;i<childCount;i++){this.animateCell(this.graph.getModel().getChildAt(cell,i),move,recurse);}}};mxMorphing.prototype.stopRecursion=function(state,delta){return delta!=null&&(delta.x!=0||delta.y!=0);};mxMorphing.prototype.getDelta=function(state){var origin=this.getOriginForCell(state.cell);var translate=this.graph.getView().getTranslate();var scale=this.graph.getView().getScale();var current=new mxPoint(state.x/scale-translate.x,state.y/scale-translate.y);return new mxPoint((origin.x-current.x)*scale,(origin.y-current.y)*scale);};mxMorphing.prototype.getOriginForCell=function(cell){var result=null;if(cell!=null){result=this.getOriginForCell(this.graph.getModel().getParent(cell));var geo=this.graph.getCellGeometry(cell);if(geo!=null){result.x+=geo.x;result.y+=geo.y;}}if(result==null){var t=this.graph.view.getTranslate();result=new mxPoint(-t.x,-t.y);}return result;};function mxImageBundle(alt){this.images=[];this.alt=(alt!=null)?alt:false;};mxImageBundle.prototype.images=null;mxImageBundle.prototype.images=null;mxImageBundle.prototype.putImage=function(key,value,fallback){this.images[key]={value:value,fallback:fallback};};mxImageBundle.prototype.getImage=function(key){var result=null;if(key!=null){var img=this.images[key];if(img!=null){result=(this.alt)?img.fallback:img.value;}}return result;};function mxImageExport(){this.initShapes();this.initMarkers();};mxImageExport.prototype.includeOverlays=false;mxImageExport.prototype.glassSize=0.4;mxImageExport.prototype.shapes=null;mxImageExport.prototype.markers=null;mxImageExport.prototype.drawState=function(state,canvas){if(state!=null){if(state.shape!=null){var shape=(state.shape.stencil!=null)?state.shape.stencil:this.shapes[state.style[mxConstants.STYLE_SHAPE]];if(shape==null){if(typeof(state.shape.redrawPath)=='function'){shape=this.createShape(state,canvas);}else if(state.view.graph.getModel().isVertex(state.cell)){shape=this.shapes['rectangle'];}}if(shape!=null){this.drawShape(state,canvas,shape);if(this.includeOverlays){this.drawOverlays(state,canvas);}}}var graph=state.view.graph;var childCount=graph.model.getChildCount(state.cell);for(var i=0;i<childCount;i++){var childState=graph.view.getState(graph.model.getChildAt(state.cell,i));this.drawState(childState,canvas);}}};mxImageExport.prototype.createShape=function(state,canvas){return{drawShape:function(canvas,state,bounds,background){var path={translate:new mxPoint(bounds.x,bounds.y),moveTo:function(x,y){canvas.moveTo(this.translate.x+x,this.translate.y+y);},lineTo:function(x,y){canvas.lineTo(this.translate.x+x,this.translate.y+y);},quadTo:function(x1,y1,x,y){canvas.quadTo(this.translate.x+x1,this.translate.y+y1,this.translate.x+x,this.translate.y+y);},curveTo:function(x1,y1,x2,y2,x,y){canvas.curveTo(this.translate.x+x1,this.translate.y+y1,this.translate.x+x2,this.translate.y+y2,this.translate.x+x,this.translate.y+y);},end:function(){},close:function(){canvas.close();}};if(!background){canvas.fillAndStroke();}canvas.begin();state.shape.redrawPath.call(state.shape,path,bounds.x,bounds.y,bounds.width,bounds.height,!background);if(!background){canvas.fillAndStroke();}return true;}};};mxImageExport.prototype.drawOverlays=function(state,canvas){if(state.overlays!=null){for(var i=0;i<state.overlays.length;i++){if(state.overlays[i].bounds!=null){var bounds=state.overlays[i].bounds;canvas.image(bounds.x,bounds.y,bounds.width,bounds.height,state.overlays[i].image);}}}};mxImageExport.prototype.drawShape=function(state,canvas,shape){var rotation=mxUtils.getNumber(state.style,mxConstants.STYLE_ROTATION,0);var direction=mxUtils.getValue(state.style,mxConstants.STYLE_DIRECTION,null);if(direction!=null){if(direction=='north'){rotation+=270;}else if(direction=='west'){rotation+=180;}else if(direction=='south'){rotation+=90;}}var flipH=state.style[mxConstants.STYLE_STENCIL_FLIPH];var flipV=state.style[mxConstants.STYLE_STENCIL_FLIPV];if(flipH&&flipV){rotation+=180;flipH=false;flipV=false;}canvas.save();rotation=rotation%360;if(rotation!=0||flipH||flipV){canvas.rotate(rotation,flipH,flipV,state.getCenterX(),state.getCenterY());}var scale=state.view.scale;var sw=mxUtils.getNumber(state.style,mxConstants.STYLE_STROKEWIDTH,1)*scale;canvas.setStrokeWidth(sw);var sw2=sw/2;var bg=this.getBackgroundBounds(state);if(state.shape.stencil==null&&(direction=='south'||direction=='north')){var dx=(bg.width-bg.height)/2;bg.x+=dx;bg.y+=-dx;var tmp=bg.width;bg.width=bg.height;bg.height=tmp;}var bb=new mxRectangle(bg.x-sw2,bg.y-sw2,bg.width+sw,bg.height+sw);var alpha=mxUtils.getValue(state.style,mxConstants.STYLE_OPACITY,100)/100;var shp=state.style[mxConstants.STYLE_SHAPE];var imageShape=shp==mxConstants.SHAPE_IMAGE;var gradientColor=(imageShape)?null:mxUtils.getValue(state.style,mxConstants.STYLE_GRADIENTCOLOR);if(gradientColor==mxConstants.NONE){gradientColor=null;}var fcKey=(imageShape)?mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR;var fillColor=mxUtils.getValue(state.style,fcKey,null);if(fillColor==mxConstants.NONE){fillColor=null;}var scKey=(imageShape)?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR;var strokeColor=mxUtils.getValue(state.style,scKey,null);if(strokeColor==mxConstants.NONE){strokeColor=null;}var glass=(fillColor!=null&&(shp==mxConstants.SHAPE_LABEL||shp==mxConstants.SHAPE_RECTANGLE));if(mxUtils.getValue(state.style,mxConstants.STYLE_SHADOW,false)){this.drawShadow(canvas,state,shape,rotation,flipH,flipV,bg,alpha,fillColor!=null);}canvas.setAlpha(alpha);if(mxUtils.getValue(state.style,mxConstants.STYLE_DASHED,'0')=='1'){canvas.setDashed(true);var dash=state.style['dashPattern'];if(dash!=null){canvas.setDashPattern(dash);}}if(strokeColor!=null||fillColor!=null){if(strokeColor!=null){canvas.setStrokeColor(strokeColor);}if(fillColor!=null){if(gradientColor!=null&&gradientColor!='transparent'){canvas.setGradient(fillColor,gradientColor,bg.x,bg.y,bg.width,bg.height,direction);}else{canvas.setFillColor(fillColor);}}glass=shape.drawShape(canvas,state,bg,true,false)&&glass;shape.drawShape(canvas,state,bg,false,false);}if(glass&&mxUtils.getValue(state.style,mxConstants.STYLE_GLASS,0)==1){this.drawGlass(state,canvas,bb,shape,this.glassSize);}if(imageShape||shp==mxConstants.SHAPE_LABEL){var src=state.view.graph.getImage(state);if(src!=null){var imgBounds=this.getImageBounds(state);if(imgBounds!=null){this.drawImage(state,canvas,imgBounds,src);}}}canvas.restore();var txt=state.text;var label=state.view.graph.getLabel(state.cell);if(txt!=null&&label!=null&&label.length>0){canvas.save();canvas.setAlpha(mxUtils.getValue(state.style,mxConstants.STYLE_TEXT_OPACITY,100)/100);var bounds=new mxRectangle(txt.boundingBox.x,txt.boundingBox.y,txt.boundingBox.width,txt.boundingBox.height);var vert=mxUtils.getValue(state.style,mxConstants.STYLE_HORIZONTAL,1)==0;bounds.y+=2;if(vert){if(txt.dialect!=mxConstants.DIALECT_SVG){var cx=bounds.x+bounds.width/2;var cy=bounds.y+bounds.height/2;var tmp=bounds.width;bounds.width=bounds.height;bounds.height=tmp;bounds.x=cx-bounds.width/2;bounds.y=cy-bounds.height/2;}else if(txt.dialect==mxConstants.DIALECT_SVG){var b=state.y+state.height;var cx=bounds.getCenterX()-state.x;var cy=bounds.getCenterY()-state.y;var y=b-cx-bounds.height/2;bounds.x=state.x+cy-bounds.width/2;bounds.y=y;}}this.drawLabelBackground(state,canvas,bounds,vert);this.drawLabel(state,canvas,bounds,vert,label);canvas.restore();}};mxImageExport.prototype.drawShadow=function(canvas,state,shape,rotation,flipH,flipV,bounds,alpha,filled){var rad=rotation*Math.PI/180;var cos=Math.cos(-rad);var sin=Math.sin(-rad);var offset=mxUtils.getRotatedPoint(new mxPoint(mxConstants.SHADOW_OFFSET_X,mxConstants.SHADOW_OFFSET_Y),cos,sin);if(flipH){offset.x*=-1;}if(flipV){offset.y*=-1;}canvas.translate(offset.x,offset.y);if(shape.drawShape(canvas,state,bounds,true,true)){canvas.setAlpha(mxConstants.SHADOW_OPACITY*alpha);canvas.shadow(mxConstants.SHADOWCOLOR,filled);}canvas.translate(-offset.x,-offset.y);};mxImageExport.prototype.drawGlass=function(state,canvas,bounds,shape,size){if(shape.drawShape(canvas,state,bounds,true,false)){canvas.save();canvas.clip();canvas.setGlassGradient(bounds.x,bounds.y,bounds.width,bounds.height);canvas.begin();canvas.moveTo(bounds.x,bounds.y);canvas.lineTo(bounds.x,(bounds.y+bounds.height*size));canvas.quadTo((bounds.x+bounds.width*0.5),(bounds.y+bounds.height*0.7),bounds.x+bounds.width,(bounds.y+bounds.height*size));canvas.lineTo(bounds.x+bounds.width,bounds.y);canvas.close();canvas.fill();canvas.restore();}};mxImageExport.prototype.drawImage=function(state,canvas,bounds,image){var aspect=mxUtils.getValue(state.style,mxConstants.STYLE_IMAGE_ASPECT,1)==1;var flipH=mxUtils.getValue(state.style,mxConstants.STYLE_IMAGE_FLIPH,0)==1;var flipV=mxUtils.getValue(state.style,mxConstants.STYLE_IMAGE_FLIPV,0)==1;canvas.image(bounds.x,bounds.y,bounds.width,bounds.height,image,aspect,flipH,flipV);};mxImageExport.prototype.drawLabelBackground=function(state,canvas,bounds,vert){var stroke=mxUtils.getValue(state.style,mxConstants.STYLE_LABEL_BORDERCOLOR);var fill=mxUtils.getValue(state.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR);if(stroke==mxConstants.NONE){stroke=null;}if(fill==mxConstants.NONE){fill=null;}if(stroke!=null||fill!=null){var x=bounds.x;var y=bounds.y-mxUtils.getValue(state.style,mxConstants.STYLE_LABEL_PADDING,0);var w=bounds.width;var h=bounds.height;if(vert){x+=(w-h)/2;y+=(h-w)/2;var tmp=w;w=h;h=tmp;}if(fill!=null){canvas.setFillColor(fill);}if(stroke!=null){canvas.setStrokeColor(stroke);canvas.setStrokeWidth(1);canvas.setDashed(false);}canvas.rect(x,y,w,h);if(fill!=null&&stroke!=null){canvas.fillAndStroke();}else if(fill!=null){canvas.fill();}else if(stroke!=null){canvas.stroke();}}};mxImageExport.prototype.drawLabel=function(state,canvas,bounds,vert,str){var scale=state.view.scale;canvas.setFontColor(mxUtils.getValue(state.style,mxConstants.STYLE_FONTCOLOR,'#000000'));canvas.setFontFamily(mxUtils.getValue(state.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY));canvas.setFontStyle(mxUtils.getValue(state.style,mxConstants.STYLE_FONTSTYLE,0));canvas.setFontSize(mxUtils.getValue(state.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*scale);var align=mxUtils.getValue(state.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT);if(align=='left'){align=null;}var y=bounds.y-mxUtils.getValue(state.style,mxConstants.STYLE_LABEL_PADDING,0);var wrap=state.view.graph.isWrapping(state.cell);var html=state.view.graph.isHtmlLabel(state.cell);if(html&&mxText.prototype.replaceLinefeeds){str=str.replace(/\n/g,'<br/>');}canvas.text(bounds.x,y,bounds.width,bounds.height,str,align,null,vert,wrap,(html)?'html':'');};mxImageExport.prototype.getBackgroundBounds=function(state){if(state.style[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE){var scale=state.view.scale;var start=mxUtils.getValue(state.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)*scale;var w=state.width;var h=state.height;if(mxUtils.getValue(state.style,mxConstants.STYLE_HORIZONTAL,true)){h=start;}else{w=start;}return new mxRectangle(state.x,state.y,Math.min(state.width,w),Math.min(state.height,h));}else{return new mxRectangle(state.x,state.y,state.width,state.height);}};mxImageExport.prototype.getImageBounds=function(state){var bounds=new mxRectangle(state.x,state.y,state.width,state.height);var style=state.style;if(mxUtils.getValue(style,mxConstants.STYLE_SHAPE)!=mxConstants.SHAPE_IMAGE){var imgAlign=mxUtils.getValue(style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT);var imgValign=mxUtils.getValue(style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);var imgWidth=mxUtils.getValue(style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE);var imgHeight=mxUtils.getValue(style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE);var spacing=mxUtils.getValue(style,mxConstants.STYLE_SPACING,2);if(imgAlign==mxConstants.ALIGN_CENTER){bounds.x+=(bounds.width-imgWidth)/2;}else if(imgAlign==mxConstants.ALIGN_RIGHT){bounds.x+=bounds.width-imgWidth-spacing-2;}else {bounds.x+=spacing+4;}if(imgValign==mxConstants.ALIGN_TOP){bounds.y+=spacing;}else if(imgValign==mxConstants.ALIGN_BOTTOM){bounds.y+=bounds.height-imgHeight-spacing;}else {bounds.y+=(bounds.height-imgHeight)/2;}bounds.width=imgWidth;bounds.height=imgHeight;}return bounds;};mxImageExport.prototype.drawMarker=function(canvas,state,source){var offset=null;var pts=state.absolutePoints;var n=pts.length;var p0=(source)?pts[1]:pts[n-2];var pe=(source)?pts[0]:pts[n-1];var dx=pe.x-p0.x;var dy=pe.y-p0.y;var dist=Math.max(1,Math.sqrt(dx*dx+dy*dy));var unitX=dx/dist;var unitY=dy/dist;var size=mxUtils.getValue(state.style,(source)?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE);var sw=mxUtils.getValue(state.style,mxConstants.STYLE_STROKEWIDTH,1);pe=pe.clone();var type=mxUtils.getValue(state.style,(source)?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW);var f=this.markers[type];if(f!=null){offset=f(canvas,state,type,pe,unitX,unitY,size,source,sw);}return offset;};mxImageExport.prototype.initShapes=function(){this.shapes=[];this.shapes['rectangle']={drawShape:function(canvas,state,bounds,background){if(background){if(mxUtils.getValue(state.style,mxConstants.STYLE_ROUNDED,false)){var f=mxUtils.getValue(state.style,mxConstants.STYLE_ARCSIZE,mxConstants.RECTANGLE_ROUNDING_FACTOR*100)/100;var r=Math.min(bounds.width*f,bounds.height*f);canvas.roundrect(bounds.x,bounds.y,bounds.width,bounds.height,r,r);}else{canvas.rect(bounds.x,bounds.y,bounds.width,bounds.height);}return true;}else{canvas.fillAndStroke();}}};this.shapes['swimlane']={drawShape:function(canvas,state,bounds,background){if(background){if(mxUtils.getValue(state.style,mxConstants.STYLE_ROUNDED,false)){var r=Math.min(bounds.width*mxConstants.RECTANGLE_ROUNDING_FACTOR,bounds.height*mxConstants.RECTANGLE_ROUNDING_FACTOR);canvas.roundrect(bounds.x,bounds.y,bounds.width,bounds.height,r,r);}else{canvas.rect(bounds.x,bounds.y,bounds.width,bounds.height);}return true;}else{canvas.fillAndStroke();var x=state.x;var y=state.y;var w=state.width;var h=state.height;if(mxUtils.getValue(state.style,mxConstants.STYLE_HORIZONTAL,1)==0){x+=bounds.width;w-=bounds.width;}else{y+=bounds.height;h-=bounds.height;}canvas.begin();canvas.moveTo(x,y);canvas.lineTo(x,y+h);canvas.lineTo(x+w,y+h);canvas.lineTo(x+w,y);canvas.stroke();}}};this.shapes['image']=this.shapes['rectangle'];this.shapes['label']=this.shapes['rectangle'];var imageExport=this;this.shapes['connector']={translatePoint:function(points,index,offset){if(offset!=null){var pt=points[index].clone();pt.x+=offset.x;pt.y+=offset.y;points[index]=pt;}},drawShape:function(canvas,state,bounds,background,shadow){if(background){var rounded=mxUtils.getValue(state.style,mxConstants.STYLE_ROUNDED,false);var arcSize=mxConstants.LINE_ARCSIZE/2;canvas.setFillColor((shadow)?mxConstants.NONE:mxUtils.getValue(state.style,mxConstants.STYLE_STROKECOLOR,"#000000"));canvas.setDashed(false);var pts=state.absolutePoints.slice();this.translatePoint(pts,0,imageExport.drawMarker(canvas,state,true));this.translatePoint(pts,pts.length-1,imageExport.drawMarker(canvas,state,false));canvas.setDashed(mxUtils.getValue(state.style,mxConstants.STYLE_DASHED,'0')=='1');var pt=pts[0];var pe=pts[pts.length-1];canvas.begin();canvas.moveTo(pt.x,pt.y);for(var i=1;i<pts.length-1;i++){var tmp=pts[i];var dx=pt.x-tmp.x;var dy=pt.y-tmp.y;if((rounded&&i<pts.length-1)&&(dx!=0||dy!=0)){var dist=Math.sqrt(dx*dx+dy*dy);var nx1=dx*Math.min(arcSize,dist/2)/dist;var ny1=dy*Math.min(arcSize,dist/2)/dist;var x1=tmp.x+nx1;var y1=tmp.y+ny1;canvas.lineTo(x1,y1);var next=pts[i+1];dx=next.x-tmp.x;dy=next.y-tmp.y;dist=Math.max(1,Math.sqrt(dx*dx+dy*dy));var nx2=dx*Math.min(arcSize,dist/2)/dist;var ny2=dy*Math.min(arcSize,dist/2)/dist;var x2=tmp.x+nx2;var y2=tmp.y+ny2;canvas.curveTo(tmp.x,tmp.y,tmp.x,tmp.y,x2,y2);tmp=new mxPoint(x2,y2);}else{canvas.lineTo(tmp.x,tmp.y);}pt=tmp;}canvas.lineTo(pe.x,pe.y);canvas.stroke();return true;}else{}}};this.shapes['arrow']={drawShape:function(canvas,state,bounds,background){if(background){var spacing=mxConstants.ARROW_SPACING;var width=mxConstants.ARROW_WIDTH;var arrow=mxConstants.ARROW_SIZE;var pts=state.absolutePoints;var p0=pts[0];var pe=pts[pts.length-1];var dx=pe.x-p0.x;var dy=pe.y-p0.y;var dist=Math.sqrt(dx*dx+dy*dy);var length=dist-2*spacing-arrow;var nx=dx/dist;var ny=dy/dist;var basex=length*nx;var basey=length*ny;var floorx=width*ny/3;var floory=-width*nx/3;var p0x=p0.x-floorx/2+spacing*nx;var p0y=p0.y-floory/2+spacing*ny;var p1x=p0x+floorx;var p1y=p0y+floory;var p2x=p1x+basex;var p2y=p1y+basey;var p3x=p2x+floorx;var p3y=p2y+floory;var p5x=p3x-3*floorx;var p5y=p3y-3*floory;canvas.begin();canvas.moveTo(p0x,p0y);canvas.lineTo(p1x,p1y);canvas.lineTo(p2x,p2y);canvas.lineTo(p3x,p3y);canvas.lineTo(pe.x-spacing*nx,pe.y-spacing*ny);canvas.lineTo(p5x,p5y);canvas.lineTo(p5x+floorx,p5y+floory);canvas.close();return true;}else{canvas.fillAndStroke();}}};this.shapes['cylinder']={drawShape:function(canvas,state,bounds,background){if(background){return false;}else{var x=bounds.x;var y=bounds.y;var w=bounds.width;var h=bounds.height;var dy=Math.min(mxCylinder.prototype.maxHeight,Math.floor(h/5));canvas.begin();canvas.moveTo(x,y+dy);canvas.curveTo(x,y-dy/3,x+w,y-dy/3,x+w,y+dy);canvas.lineTo(x+w,y+h-dy);canvas.curveTo(x+w,y+h+dy/3,x,y+h+dy/3,x,y+h-dy);canvas.close();canvas.fillAndStroke();canvas.begin();canvas.moveTo(x,y+dy);canvas.curveTo(x,y+2*dy,x+w,y+2*dy,x+w,y+dy);canvas.stroke();}}};this.shapes['line']={drawShape:function(canvas,state,bounds,background){if(background){return false;}else{canvas.begin();var mid=state.getCenterY();canvas.moveTo(bounds.x,mid);canvas.lineTo(bounds.x+bounds.width,mid);canvas.stroke();}}};this.shapes['ellipse']={drawShape:function(canvas,state,bounds,background){if(background){canvas.ellipse(bounds.x,bounds.y,bounds.width,bounds.height);return true;}else{canvas.fillAndStroke();}}};this.shapes['doubleEllipse']={drawShape:function(canvas,state,bounds,background){var x=bounds.x;var y=bounds.y;var w=bounds.width;var h=bounds.height;if(background){canvas.ellipse(x,y,w,h);return true;}else{canvas.fillAndStroke();var inset=Math.min(4,Math.min(w/5,h/5));x+=inset;y+=inset;w-=2*inset;h-=2*inset;if(w>0&&h>0){canvas.ellipse(x,y,w,h);}canvas.stroke();}}};this.shapes['triangle']={drawShape:function(canvas,state,bounds,background){if(background){var x=bounds.x;var y=bounds.y;var w=bounds.width;var h=bounds.height;canvas.begin();canvas.moveTo(x,y);canvas.lineTo(x+w,y+h/2);canvas.lineTo(x,y+h);canvas.close();return true;}else{canvas.fillAndStroke();}}};this.shapes['rhombus']={drawShape:function(canvas,state,bounds,background){if(background){var x=bounds.x;var y=bounds.y;var w=bounds.width;var h=bounds.height;var hw=w/2;var hh=h/2;canvas.begin();canvas.moveTo(x+hw,y);canvas.lineTo(x+w,y+hh);canvas.lineTo(x+hw,y+h);canvas.lineTo(x,y+hh);canvas.close();return true;}else{canvas.fillAndStroke();}}};this.shapes['hexagon']={drawShape:function(canvas,state,bounds,background){if(background){var x=bounds.x;var y=bounds.y;var w=bounds.width;var h=bounds.height;canvas.begin();canvas.moveTo(x+0.25*w,y);canvas.lineTo(x+0.75*w,y);canvas.lineTo(x+w,y+0.5*h);canvas.lineTo(x+0.75*w,y+h);canvas.lineTo(x+0.25*w,y+h);canvas.lineTo(x,y+0.5*h);canvas.close();return true;}else{canvas.fillAndStroke();}}};this.shapes['actor']={drawShape:function(canvas,state,bounds,background){if(background){var x=bounds.x;var y=bounds.y;var w=bounds.width;var h=bounds.height;var width=w*2/6;canvas.begin();canvas.moveTo(x,y+h);canvas.curveTo(x,y+3*h/5,x,y+2*h/5,x+w/2,y+2*h/5);canvas.curveTo(x+w/2-width,y+2*h/5,x+w/2-width,y,x+w/2,y);canvas.curveTo(x+w/2+width,y,x+w/2+width,y+2*h/5,x+w/2,y+2*h/5);canvas.curveTo(x+w,y+2*h/5,x+w,y+3*h/5,x+w,y+h);canvas.close();return true;}else{canvas.fillAndStroke();}}};this.shapes['cloud']={drawShape:function(canvas,state,bounds,background){if(background){var x=bounds.x;var y=bounds.y;var w=bounds.width;var h=bounds.height;canvas.begin();canvas.moveTo(x+0.25*w,y+0.25*h);canvas.curveTo(x+0.05*w,y+0.25*h,x,y+0.5*h,x+0.16*w,y+0.55*h);canvas.curveTo(x,y+0.66*h,x+0.18*w,y+0.9*h,x+0.31*w,y+0.8*h);canvas.curveTo(x+0.4*w,y+h,x+0.7*w,y+h,x+0.8*w,y+0.8*h);canvas.curveTo(x+w,y+0.8*h,x+w,y+0.6*h,x+0.875*w,y+0.5*h);canvas.curveTo(x+w,y+0.3*h,x+0.8*w,y+0.1*h,x+0.625*w,y+0.2*h);canvas.curveTo(x+0.5*w,y+0.05*h,x+0.3*w,y+0.05*h,x+0.25*w,y+0.25*h);canvas.close();return true;}else{canvas.fillAndStroke();}}};};mxImageExport.prototype.initMarkers=function(){this.markers=[];var tmp=function(canvas,state,type,pe,unitX,unitY,size,source,sw){var endOffsetX=unitX*sw*1.118;var endOffsetY=unitY*sw*1.118;pe.x-=endOffsetX;pe.y-=endOffsetY;unitX=unitX*(size+sw);unitY=unitY*(size+sw);canvas.begin();canvas.moveTo(pe.x,pe.y);canvas.lineTo(pe.x-unitX-unitY/2,pe.y-unitY+unitX/2);if(type==mxConstants.ARROW_CLASSIC){canvas.lineTo(pe.x-unitX*3/4,pe.y-unitY*3/4);}canvas.lineTo(pe.x+unitY/2-unitX,pe.y-unitY-unitX/2);canvas.close();var key=(source)?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL;if(state.style[key]==0){canvas.stroke();}else{canvas.fillAndStroke();}var f=(type!=mxConstants.ARROW_CLASSIC)?1:3/4;return new mxPoint(-unitX*f-endOffsetX,-unitY*f-endOffsetY);};this.markers['classic']=tmp;this.markers['block']=tmp;this.markers['open']=function(canvas,state,type,pe,unitX,unitY,size,source,sw){var endOffsetX=unitX*sw*1.118;var endOffsetY=unitY*sw*1.118;pe.x-=endOffsetX;pe.y-=endOffsetY;unitX=unitX*(size+sw);unitY=unitY*(size+sw);canvas.begin();canvas.moveTo(pe.x-unitX-unitY/2,pe.y-unitY+unitX/2);canvas.lineTo(pe.x,pe.y);canvas.lineTo(pe.x+unitY/2-unitX,pe.y-unitY-unitX/2);canvas.stroke();return new mxPoint(-endOffsetX*2,-endOffsetY*2);};this.markers['oval']=function(canvas,state,type,pe,unitX,unitY,size,source,sw){var a=size/2;canvas.ellipse(pe.x-a,pe.y-a,size,size);var key=(source)?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL;if(state.style[key]==0){canvas.stroke();}else{canvas.fillAndStroke();}return new mxPoint(-unitX/2,-unitY/2);};var tmp_diamond=function(canvas,state,type,pe,unitX,unitY,size,source,sw){var swFactor=(type==mxConstants.ARROW_DIAMOND)?0.7071:0.9862;var endOffsetX=unitX*sw*swFactor;var endOffsetY=unitY*sw*swFactor;unitX=unitX*(size+sw);unitY=unitY*(size+sw);pe.x-=endOffsetX;pe.y-=endOffsetY;var tk=((type==mxConstants.ARROW_DIAMOND)?2:3.4);canvas.begin();canvas.moveTo(pe.x,pe.y);canvas.lineTo(pe.x-unitX/2-unitY/tk,pe.y+unitX/tk-unitY/2);canvas.lineTo(pe.x-unitX,pe.y-unitY);canvas.lineTo(pe.x-unitX/2+unitY/tk,pe.y-unitY/2-unitX/tk);canvas.close();var key=(source)?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL;if(state.style[key]==0){canvas.stroke();}else{canvas.fillAndStroke();}return new mxPoint(-endOffsetX-unitX,-endOffsetY-unitY);};this.markers['diamond']=tmp_diamond;this.markers['diamondThin']=tmp_diamond;};var mxXmlCanvas2D=function(root){var converter=new mxUrlConverter();var compressed=true;var textEnabled=true;var doc=root.ownerDocument;var stack=[];var state={alpha:1,dashed:false,strokewidth:1,fontsize:mxConstants.DEFAULT_FONTSIZE,fontfamily:mxConstants.DEFAULT_FONTFAMILY,fontcolor:'#000000'};var f2=function(x){return Math.round(parseFloat(x)*100)/100;};return{getConverter:function(){return converter;},isCompressed:function(){return compressed;},setCompressed:function(value){compressed=value;},isTextEnabled:function(){return textEnabled;},setTextEnabled:function(value){textEnabled=value;},getDocument:function(){return doc;},save:function(){if(compressed){stack.push(state);state=mxUtils.clone(state);}root.appendChild(doc.createElement('save'));},restore:function(){if(compressed){state=stack.pop();}root.appendChild(doc.createElement('restore'));},scale:function(value){var elem=doc.createElement('scale');elem.setAttribute('scale',value);root.appendChild(elem);},translate:function(dx,dy){var elem=doc.createElement('translate');elem.setAttribute('dx',f2(dx));elem.setAttribute('dy',f2(dy));root.appendChild(elem);},rotate:function(theta,flipH,flipV,cx,cy){var elem=doc.createElement('rotate');elem.setAttribute('theta',f2(theta));elem.setAttribute('flipH',(flipH)?'1':'0');elem.setAttribute('flipV',(flipV)?'1':'0');elem.setAttribute('cx',f2(cx));elem.setAttribute('cy',f2(cy));root.appendChild(elem);},setStrokeWidth:function(value){if(compressed){if(state.strokewidth==value){return;}state.strokewidth=value;}var elem=doc.createElement('strokewidth');elem.setAttribute('width',f2(value));root.appendChild(elem);},setStrokeColor:function(value){var elem=doc.createElement('strokecolor');elem.setAttribute('color',value);root.appendChild(elem);},setDashed:function(value){if(compressed){if(state.dashed==value){return;}state.dashed=value;}var elem=doc.createElement('dashed');elem.setAttribute('dashed',(value)?'1':'0');root.appendChild(elem);},setDashPattern:function(value){var elem=doc.createElement('dashpattern');elem.setAttribute('pattern',value);root.appendChild(elem);},setLineCap:function(value){var elem=doc.createElement('linecap');elem.setAttribute('cap',value);root.appendChild(elem);},setLineJoin:function(value){var elem=doc.createElement('linejoin');elem.setAttribute('join',value);root.appendChild(elem);},setMiterLimit:function(value){var elem=doc.createElement('miterlimit');elem.setAttribute('limit',value);root.appendChild(elem);},setFontSize:function(value){if(textEnabled){if(compressed){if(state.fontsize==value){return;}state.fontsize=value;}var elem=doc.createElement('fontsize');elem.setAttribute('size',value);root.appendChild(elem);}},setFontColor:function(value){if(textEnabled){if(compressed){if(state.fontcolor==value){return;}state.fontcolor=value;}var elem=doc.createElement('fontcolor');elem.setAttribute('color',value);root.appendChild(elem);}},setFontFamily:function(value){if(textEnabled){if(compressed){if(state.fontfamily==value){return;}state.fontfamily=value;}var elem=doc.createElement('fontfamily');elem.setAttribute('family',value);root.appendChild(elem);}},setFontStyle:function(value){if(textEnabled){var elem=doc.createElement('fontstyle');elem.setAttribute('style',value);root.appendChild(elem);}},setAlpha:function(alpha){if(compressed){if(state.alpha==alpha){return;}state.alpha=alpha;}var elem=doc.createElement('alpha');elem.setAttribute('alpha',f2(alpha));root.appendChild(elem);},setFillColor:function(value){var elem=doc.createElement('fillcolor');elem.setAttribute('color',value);root.appendChild(elem);},setGradient:function(color1,color2,x,y,w,h,direction){var elem=doc.createElement('gradient');elem.setAttribute('c1',color1);elem.setAttribute('c2',color2);elem.setAttribute('x',f2(x));elem.setAttribute('y',f2(y));elem.setAttribute('w',f2(w));elem.setAttribute('h',f2(h));if(direction!=null){elem.setAttribute('direction',direction);}root.appendChild(elem);},setGlassGradient:function(x,y,w,h){var elem=doc.createElement('glass');elem.setAttribute('x',f2(x));elem.setAttribute('y',f2(y));elem.setAttribute('w',f2(w));elem.setAttribute('h',f2(h));root.appendChild(elem);},rect:function(x,y,w,h){var elem=doc.createElement('rect');elem.setAttribute('x',f2(x));elem.setAttribute('y',f2(y));elem.setAttribute('w',f2(w));elem.setAttribute('h',f2(h));root.appendChild(elem);},roundrect:function(x,y,w,h,dx,dy){var elem=doc.createElement('roundrect');elem.setAttribute('x',f2(x));elem.setAttribute('y',f2(y));elem.setAttribute('w',f2(w));elem.setAttribute('h',f2(h));elem.setAttribute('dx',f2(dx));elem.setAttribute('dy',f2(dy));root.appendChild(elem);},ellipse:function(x,y,w,h){var elem=doc.createElement('ellipse');elem.setAttribute('x',f2(x));elem.setAttribute('y',f2(y));elem.setAttribute('w',f2(w));elem.setAttribute('h',f2(h));root.appendChild(elem);},image:function(x,y,w,h,src,aspect,flipH,flipV){src=converter.convert(src);var elem=doc.createElement('image');elem.setAttribute('x',f2(x));elem.setAttribute('y',f2(y));elem.setAttribute('w',f2(w));elem.setAttribute('h',f2(h));elem.setAttribute('src',src);elem.setAttribute('aspect',(aspect)?'1':'0');elem.setAttribute('flipH',(flipH)?'1':'0');elem.setAttribute('flipV',(flipV)?'1':'0');root.appendChild(elem);},text:function(x,y,w,h,str,align,valign,vertical,wrap,format){if(textEnabled){var elem=doc.createElement('text');elem.setAttribute('x',f2(x));elem.setAttribute('y',f2(y));elem.setAttribute('w',f2(w));elem.setAttribute('h',f2(h));elem.setAttribute('str',str);if(align!=null){elem.setAttribute('align',align);}if(valign!=null){elem.setAttribute('valign',valign);}elem.setAttribute('vertical',(vertical)?'1':'0');elem.setAttribute('wrap',(wrap)?'1':'0');elem.setAttribute('format',format);root.appendChild(elem);}},begin:function(){root.appendChild(doc.createElement('begin'));},moveTo:function(x,y){var elem=doc.createElement('move');elem.setAttribute('x',f2(x));elem.setAttribute('y',f2(y));root.appendChild(elem);},lineTo:function(x,y){var elem=doc.createElement('line');elem.setAttribute('x',f2(x));elem.setAttribute('y',f2(y));root.appendChild(elem);},quadTo:function(x1,y1,x2,y2){var elem=doc.createElement('quad');elem.setAttribute('x1',f2(x1));elem.setAttribute('y1',f2(y1));elem.setAttribute('x2',f2(x2));elem.setAttribute('y2',f2(y2));root.appendChild(elem);},curveTo:function(x1,y1,x2,y2,x3,y3){var elem=doc.createElement('curve');elem.setAttribute('x1',f2(x1));elem.setAttribute('y1',f2(y1));elem.setAttribute('x2',f2(x2));elem.setAttribute('y2',f2(y2));elem.setAttribute('x3',f2(x3));elem.setAttribute('y3',f2(y3));root.appendChild(elem);},close:function(){root.appendChild(doc.createElement('close'));},stroke:function(){root.appendChild(doc.createElement('stroke'));},fill:function(){root.appendChild(doc.createElement('fill'));},fillAndStroke:function(){root.appendChild(doc.createElement('fillstroke'));},shadow:function(value,filled){var elem=doc.createElement('shadow');elem.setAttribute('value',value);if(filled!=null){elem.setAttribute('filled',(filled)?'1':'0');}root.appendChild(elem);},clip:function(){root.appendChild(doc.createElement('clip'));}};};var mxSvgCanvas2D=function(root,styleEnabled){styleEnabled=(styleEnabled!=null)?styleEnabled:false;var converter=new mxUrlConverter();var autoAntiAlias=true;var textEnabled=true;var foEnabled=true;var create=function(tagName,namespace){if(root.ownerDocument.createElementNS!=null){return root.ownerDocument.createElementNS(namespace||mxConstants.NS_SVG,tagName);}else{var elt=root.ownerDocument.createElement(tagName);if(namespace!=null){elt.setAttribute('xmlns',namespace);}return elt;}};var defs=create('defs');if(styleEnabled){var style=create('style');style.setAttribute('type','text/css');mxUtils.write(style,'svg{font-family:'+mxConstants.DEFAULT_FONTFAMILY+';font-size:'+mxConstants.DEFAULT_FONTSIZE+';fill:none;stroke-miterlimit:10}');if(autoAntiAlias){mxUtils.write(style,'rect{shape-rendering:crispEdges}');}defs.appendChild(style);}root.appendChild(defs);var currentState={dx:0,dy:0,scale:1,transform:'',fill:null,gradient:null,stroke:null,strokeWidth:1,dashed:false,dashpattern:'3 3',alpha:1,linecap:'flat',linejoin:'miter',miterlimit:10,fontColor:'#000000',fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0};var currentPathIsOrthogonal=true;var glassGradient=null;var currentNode=null;var currentPath=null;var lastPoint=null;var gradients=[];var refCount=0;var stack=[];var createGradientId=function(start,end,direction){if(start.charAt(0)=='#'){start=start.substring(1);}if(end.charAt(0)=='#'){end=end.substring(1);}start=start.toLowerCase();end=end.toLowerCase();var dir=null;if(direction==null||direction==mxConstants.DIRECTION_SOUTH){dir='s';}else if(direction==mxConstants.DIRECTION_EAST){dir='e';}else{var tmp=start;start=end;end=tmp;if(direction==mxConstants.DIRECTION_NORTH){dir='s';}else if(direction==mxConstants.DIRECTION_WEST){dir='e';}}return start+'-'+end+'-'+dir;};var createHtmlBody=function(str,align,valign){var style='margin:0px;font-size:'+Math.floor(currentState.fontSize)+'px;'+'font-family:'+currentState.fontFamily+';color:'+currentState.fontColor+';';if((currentState.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD){style+='font-weight:bold;';}if((currentState.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC){style+='font-style:italic;';}if((currentState.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE){style+='font-decoration:underline;';}if(align==mxConstants.ALIGN_CENTER){style+='text-align:center;';}else if(align==mxConstants.ALIGN_RIGHT){style+='text-align:right;';}var body=create('body','http://www.w3.org/1999/xhtml');body.setAttribute('style',style);var node=mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml">'+str+'</div>').documentElement;if(body.ownerDocument.importNode!=null){node=body.ownerDocument.importNode(node,true);}body.appendChild(node);return body;};var getSvgGradient=function(start,end,direction){var id=createGradientId(start,end,direction);var gradient=gradients[id];if(gradient==null){gradient=create('linearGradient');gradient.setAttribute('id',++refCount);gradient.setAttribute('x1','0%');gradient.setAttribute('y1','0%');gradient.setAttribute('x2','0%');gradient.setAttribute('y2','0%');if(direction==null||direction==mxConstants.DIRECTION_SOUTH){gradient.setAttribute('y2','100%');}else if(direction==mxConstants.DIRECTION_EAST){gradient.setAttribute('x2','100%');}else if(direction==mxConstants.DIRECTION_NORTH){gradient.setAttribute('y1','100%');}else if(direction==mxConstants.DIRECTION_WEST){gradient.setAttribute('x1','100%');}var stop=create('stop');stop.setAttribute('offset','0%');stop.setAttribute('style','stop-color:'+start);gradient.appendChild(stop);stop=create('stop');stop.setAttribute('offset','100%');stop.setAttribute('style','stop-color:'+end);gradient.appendChild(stop);defs.appendChild(gradient);gradients[id]=gradient;}return gradient.getAttribute('id');};var appendNode=function(node,state,filled,stroked){if(node!=null){if(state.clip!=null){node.setAttribute('clip-path','url(#'+state.clip+')');state.clip=null;}if(currentPath!=null){node.setAttribute('d',currentPath.join(' '));currentPath=null;if(autoAntiAlias&&currentPathIsOrthogonal){node.setAttribute('shape-rendering','crispEdges');state.strokeWidth=Math.max(1,state.strokeWidth);}}if(state.alpha<1){node.setAttribute('opacity',state.alpha);}if(filled&&(state.fill!=null||state.gradient!=null)){if(state.gradient!=null){node.setAttribute('fill','url(#'+state.gradient+')');}else{node.setAttribute('fill',state.fill.toLowerCase());}}else if(!styleEnabled){node.setAttribute('fill','none');}if(stroked&&state.stroke!=null){node.setAttribute('stroke',state.stroke.toLowerCase());if(state.strokeWidth!=1){if(node.nodeName=='rect'&&autoAntiAlias){state.strokeWidth=Math.max(1,state.strokeWidth);}node.setAttribute('stroke-width',state.strokeWidth);}if(node.nodeName=='path'){if(state.linejoin!=null&&state.linejoin!='miter'){node.setAttribute('stroke-linejoin',state.linejoin);}if(state.linecap!=null){var value=state.linecap;if(value=='flat'){value='butt';}if(value!='butt'){node.setAttribute('stroke-linecap',value);}}if(state.miterlimit!=null&&(!styleEnabled||state.miterlimit!=10)){node.setAttribute('stroke-miterlimit',state.miterlimit);}}if(state.dashed){var dash=state.dashpattern.split(' ');if(dash.length>0){var pat=[];for(var i=0;i<dash.length;i++){pat[i]=Number(dash[i])*currentState.strokeWidth;}node.setAttribute('stroke-dasharray',pat.join(' '));}}}if(state.transform.length>0){node.setAttribute('transform',state.transform);}root.appendChild(node);}};var f2=function(x){return Math.round(parseFloat(x)*100)/100;};return{getConverter:function(){return converter;},isAutoAntiAlias:function(){return autoAntiAlias;},setAutoAntiAlias:function(value){autoAntiAlias=value;},isTextEnabled:function(){return textEnabled;},setTextEnabled:function(value){textEnabled=value;},isFoEnabled:function(){return foEnabled;},setFoEnabled:function(value){foEnabled=value;},save:function(){stack.push(currentState);currentState=mxUtils.clone(currentState);},restore:function(){currentState=stack.pop();},scale:function(value){currentState.scale*=value;currentState.strokeWidth*=value;},translate:function(dx,dy){currentState.dx+=dx;currentState.dy+=dy;},rotate:function(theta,flipH,flipV,cx,cy){cx+=currentState.dx;cy+=currentState.dy;cx*=currentState.scale;cy*=currentState.scale;if(flipH^flipV){var tx=(flipH)?cx:0;var sx=(flipH)?-1:1;var ty=(flipV)?cy:0;var sy=(flipV)?-1:1;currentState.transform+='translate('+f2(tx)+','+f2(ty)+')';currentState.transform+='scale('+f2(sx)+','+f2(sy)+')';currentState.transform+='translate('+f2(-tx)+' '+f2(-ty)+')';}currentState.transform+='rotate('+f2(theta)+','+f2(cx)+','+f2(cy)+')';},setStrokeWidth:function(value){currentState.strokeWidth=value*currentState.scale;},setStrokeColor:function(value){currentState.stroke=value;},setDashed:function(value){currentState.dashed=value;},setDashPattern:function(value){currentState.dashpattern=value;},setLineCap:function(value){currentState.linecap=value;},setLineJoin:function(value){currentState.linejoin=value;},setMiterLimit:function(value){currentState.miterlimit=value;},setFontSize:function(value){currentState.fontSize=value;},setFontColor:function(value){currentState.fontColor=value;},setFontFamily:function(value){currentState.fontFamily=value;},setFontStyle:function(value){currentState.fontStyle=value;},setAlpha:function(alpha){currentState.alpha=alpha;},setFillColor:function(value){currentState.fill=value;currentState.gradient=null;},setGradient:function(color1,color2,x,y,w,h,direction){if(color1!=null&&color2!=null){currentState.gradient=getSvgGradient(color1,color2,direction);currentState.fill=color1;}},setGlassGradient:function(x,y,w,h){if(glassGradient==null){glassGradient=create('linearGradient');glassGradient.setAttribute('id','0');glassGradient.setAttribute('x1','0%');glassGradient.setAttribute('y1','0%');glassGradient.setAttribute('x2','0%');glassGradient.setAttribute('y2','100%');var stop1=create('stop');stop1.setAttribute('offset','0%');stop1.setAttribute('style','stop-color:#ffffff;stop-opacity:0.9');glassGradient.appendChild(stop1);var stop2=create('stop');stop2.setAttribute('offset','100%');stop2.setAttribute('style','stop-color:#ffffff;stop-opacity:0.1');glassGradient.appendChild(stop2);if(defs.firstChild.nextSibling!=null){defs.insertBefore(glassGradient,defs.firstChild.nextSibling);}else{defs.appendChild(glassGradient);}}currentState.gradient='0';},rect:function(x,y,w,h){x+=currentState.dx;y+=currentState.dy;currentNode=create('rect');currentNode.setAttribute('x',f2(x*currentState.scale));currentNode.setAttribute('y',f2(y*currentState.scale));currentNode.setAttribute('width',f2(w*currentState.scale));currentNode.setAttribute('height',f2(h*currentState.scale));if(!styleEnabled&&autoAntiAlias){currentNode.setAttribute('shape-rendering','crispEdges');}},roundrect:function(x,y,w,h,dx,dy){x+=currentState.dx;y+=currentState.dy;currentNode=create('rect');currentNode.setAttribute('x',f2(x*currentState.scale));currentNode.setAttribute('y',f2(y*currentState.scale));currentNode.setAttribute('width',f2(w*currentState.scale));currentNode.setAttribute('height',f2(h*currentState.scale));if(dx>0){currentNode.setAttribute('rx',f2(dx*currentState.scale));}if(dy>0){currentNode.setAttribute('ry',f2(dy*currentState.scale));}if(!styleEnabled&&autoAntiAlias){currentNode.setAttribute('shape-rendering','crispEdges');}},ellipse:function(x,y,w,h){x+=currentState.dx;y+=currentState.dy;currentNode=create('ellipse');currentNode.setAttribute('cx',f2((x+w/2)*currentState.scale));currentNode.setAttribute('cy',f2((y+h/2)*currentState.scale));currentNode.setAttribute('rx',f2(w/2*currentState.scale));currentNode.setAttribute('ry',f2(h/2*currentState.scale));},image:function(x,y,w,h,src,aspect,flipH,flipV){src=converter.convert(src);aspect=(aspect!=null)?aspect:true;flipH=(flipH!=null)?flipH:false;flipV=(flipV!=null)?flipV:false;x+=currentState.dx;y+=currentState.dy;var node=create('image');node.setAttribute('x',f2(x*currentState.scale));node.setAttribute('y',f2(y*currentState.scale));node.setAttribute('width',f2(w*currentState.scale));node.setAttribute('height',f2(h*currentState.scale));if(mxClient.IS_VML){node.setAttribute('xlink:href',src);}else{node.setAttributeNS(mxConstants.NS_XLINK,'xlink:href',src);}if(!aspect){node.setAttribute('preserveAspectRatio','none');}if(currentState.alpha<1){node.setAttribute('opacity',currentState.alpha);}var tr=currentState.transform;if(flipH||flipV){var sx=1;var sy=1;var dx=0;var dy=0;if(flipH){sx=-1;dx=-w-2*x;}if(flipV){sy=-1;dy=-h-2*y;}tr+='scale('+sx+','+sy+')translate('+dx+','+dy+')';}if(tr.length>0){node.setAttribute('transform',tr);}root.appendChild(node);},text:function(x,y,w,h,str,align,valign,vertical,wrap,format){if(textEnabled){x+=currentState.dx;y+=currentState.dy;if(foEnabled&&format=='html'){var node=create('g');node.setAttribute('transform',currentState.transform+'scale('+currentState.scale+','+currentState.scale+')');if(currentState.alpha<1){node.setAttribute('opacity',currentState.alpha);}var fo=create('foreignObject');fo.setAttribute('x',Math.round(x));fo.setAttribute('y',Math.round(y));fo.setAttribute('width',Math.round(w));fo.setAttribute('height',Math.round(h));fo.appendChild(createHtmlBody(str,align,valign));node.appendChild(fo);root.appendChild(node);}else{var size=Math.floor(currentState.fontSize);var node=create('g');var tr=currentState.transform;if(vertical){var cx=x+w/2;var cy=y+h/2;tr+='rotate(-90,'+f2(cx*currentState.scale)+','+f2(cy*currentState.scale)+')';}if(tr.length>0){node.setAttribute('transform',tr);}if(currentState.alpha<1){node.setAttribute('opacity',currentState.alpha);}var anchor=(align==mxConstants.ALIGN_RIGHT)?'end':(align==mxConstants.ALIGN_CENTER)?'middle':'start';if(anchor=='end'){x+=Math.max(0,w-2);}else if(anchor=='middle'){x+=w/2;}else{x+=(w>0)?2:0;}if((currentState.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD){node.setAttribute('font-weight','bold');}if((currentState.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC){node.setAttribute('font-style','italic');}if((currentState.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE){node.setAttribute('text-decoration','underline');}if(anchor!='start'){node.setAttribute('text-anchor',anchor);}if(!styleEnabled||size!=mxConstants.DEFAULT_FONTSIZE){node.setAttribute('font-size',Math.floor(size*currentState.scale)+'px');}if(!styleEnabled||currentState.fontFamily!=mxConstants.DEFAULT_FONTFAMILY){node.setAttribute('font-family',currentState.fontFamily);}node.setAttribute('fill',currentState.fontColor);var lines=str.split('\n');var lineHeight=size*1.25;var textHeight=(h>0)?size+(lines.length-1)*lineHeight:lines.length*lineHeight-1;var dy=h-textHeight;if(valign==null||valign==mxConstants.ALIGN_TOP){y=Math.max(y-3*currentState.scale,y+dy/2+((h>0)?lineHeight/2-8:0));}else if(valign==mxConstants.ALIGN_MIDDLE){y=y+dy/2;}else if(valign==mxConstants.ALIGN_BOTTOM){y=Math.min(y,y+dy+2*currentState.scale);}y+=size;for(var i=0;i<lines.length;i++){var text=create('text');text.setAttribute('x',f2(x*currentState.scale));text.setAttribute('y',f2(y*currentState.scale));mxUtils.write(text,lines[i]);node.appendChild(text);y+=size*1.3;}root.appendChild(node);}}},begin:function(){currentNode=create('path');currentPath=[];lastPoint=null;currentPathIsOrthogonal=true;},moveTo:function(x,y){if(currentPath!=null){x+=currentState.dx;y+=currentState.dy;currentPath.push('M '+f2(x*currentState.scale)+' '+f2(y*currentState.scale));if(autoAntiAlias){lastPoint=new mxPoint(x,y);}}},lineTo:function(x,y){if(currentPath!=null){x+=currentState.dx;y+=currentState.dy;currentPath.push('L '+f2(x*currentState.scale)+' '+f2(y*currentState.scale));if(autoAntiAlias){if(lastPoint!=null&&currentPathIsOrthogonal&&x!=lastPoint.x&&y!=lastPoint.y){currentPathIsOrthogonal=false;}lastPoint=new mxPoint(x,y);}}},quadTo:function(x1,y1,x2,y2){if(currentPath!=null){x1+=currentState.dx;y1+=currentState.dy;x2+=currentState.dx;y2+=currentState.dy;currentPath.push('Q '+f2(x1*currentState.scale)+' '+f2(y1*currentState.scale)+' '+f2(x2*currentState.scale)+' '+f2(y2*currentState.scale));currentPathIsOrthogonal=false;}},curveTo:function(x1,y1,x2,y2,x3,y3){if(currentPath!=null){x1+=currentState.dx;y1+=currentState.dy;x2+=currentState.dx;y2+=currentState.dy;x3+=currentState.dx;y3+=currentState.dy;currentPath.push('C '+f2(x1*currentState.scale)+' '+f2(y1*currentState.scale)+' '+f2(x2*currentState.scale)+' '+f2(y2*currentState.scale)+' '+f2(x3*currentState.scale)+' '+f2(y3*currentState.scale));currentPathIsOrthogonal=false;}},close:function(){if(currentPath!=null){currentPath.push('Z');}},stroke:function(){appendNode(currentNode,currentState,false,true);},fill:function(){appendNode(currentNode,currentState,true,false);},fillAndStroke:function(){appendNode(currentNode,currentState,true,true);},shadow:function(value,filled){this.save();this.setStrokeColor(value);if(filled){this.setFillColor(value);this.fillAndStroke();}else{this.stroke();}this.restore();},clip:function(){if(currentNode!=null){if(currentPath!=null){currentNode.setAttribute('d',currentPath.join(' '));currentPath=null;}var id=++refCount;var clip=create('clipPath');clip.setAttribute('id',id);clip.appendChild(currentNode);defs.appendChild(clip);currentState.clip=id;}}};};function mxGuide(graph,states){this.graph=graph;this.setStates(states);};mxGuide.prototype.graph=null;mxGuide.prototype.states=null;mxGuide.prototype.horizontal=true;mxGuide.prototype.vertical=true;mxGuide.prototype.guideX=null;mxGuide.prototype.guideY=null;mxGuide.prototype.crisp=true;mxGuide.prototype.setStates=function(states){this.states=states;};mxGuide.prototype.isEnabledForEvent=function(evt){return true;};mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2;};mxGuide.prototype.createGuideShape=function(horizontal){var guide=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);guide.crisp=this.crisp;guide.isDashed=true;return guide;};mxGuide.prototype.move=function(bounds,delta,gridEnabled){if(this.states!=null&&(this.horizontal||this.vertical)&&bounds!=null&&delta!=null){var trx=this.graph.getView().translate;var scale=this.graph.getView().scale;var dx=delta.x;var dy=delta.y;var overrideX=false;var overrideY=false;var tt=this.getGuideTolerance();var ttX=tt;var ttY=tt;var b=bounds.clone();b.x+=delta.x;b.y+=delta.y;var left=b.x;var right=b.x+b.width;var center=b.getCenterX();var top=b.y;var bottom=b.y+b.height;var middle=b.getCenterY();function snapX(x){x+=this.graph.panDx;var override=false;if(Math.abs(x-center)<ttX){dx=x-bounds.getCenterX();ttX=Math.abs(x-center);override=true;}else if(Math.abs(x-left)<ttX){dx=x-bounds.x;ttX=Math.abs(x-left);override=true;}else if(Math.abs(x-right)<ttX){dx=x-bounds.x-bounds.width;ttX=Math.abs(x-right);override=true;}if(override){if(this.guideX==null){this.guideX=this.createGuideShape(true);this.guideX.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;this.guideX.init(this.graph.getView().getOverlayPane());if(this.graph.dialect==mxConstants.DIALECT_SVG){this.guideX.node.setAttribute('pointer-events','none');this.guideX.pipe.setAttribute('pointer-events','none');}}var c=this.graph.container;x-=this.graph.panDx;this.guideX.points=[new mxPoint(x,-this.graph.panDy),new mxPoint(x,c.scrollHeight-3-this.graph.panDy)];}overrideX=overrideX||override;};function snapY(y){y+=this.graph.panDy;var override=false;if(Math.abs(y-middle)<ttY){dy=y-bounds.getCenterY();ttY=Math.abs(y-middle);override=true;}else if(Math.abs(y-top)<ttY){dy=y-bounds.y;ttY=Math.abs(y-top);override=true;}else if(Math.abs(y-bottom)<ttY){dy=y-bounds.y-bounds.height;ttY=Math.abs(y-bottom);override=true;}if(override){if(this.guideY==null){this.guideY=this.createGuideShape(false);this.guideY.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;this.guideY.init(this.graph.getView().getOverlayPane());if(this.graph.dialect==mxConstants.DIALECT_SVG){this.guideY.node.setAttribute('pointer-events','none');this.guideY.pipe.setAttribute('pointer-events','none');}}var c=this.graph.container;y-=this.graph.panDy;this.guideY.points=[new mxPoint(-this.graph.panDx,y),new mxPoint(c.scrollWidth-3-this.graph.panDx,y)];}overrideY=overrideY||override;};for(var i=0;i<this.states.length;i++){var state=this.states[i];if(state!=null){if(this.horizontal){snapX.call(this,state.getCenterX());snapX.call(this,state.x);snapX.call(this,state.x+state.width);}if(this.vertical){snapY.call(this,state.getCenterY());snapY.call(this,state.y);snapY.call(this,state.y+state.height);}}}if(!overrideX&&this.guideX!=null){this.guideX.node.style.visibility='hidden';}else if(this.guideX!=null){this.guideX.node.style.visibility='visible';this.guideX.redraw();}if(!overrideY&&this.guideY!=null){this.guideY.node.style.visibility='hidden';}else if(this.guideY!=null){this.guideY.node.style.visibility='visible';this.guideY.redraw();}if(gridEnabled){if(!overrideX){var tx=bounds.x-(this.graph.snap(bounds.x/scale-trx.x)+trx.x)*scale;dx=this.graph.snap(dx/scale)*scale-tx;}if(!overrideY){var ty=bounds.y-(this.graph.snap(bounds.y/scale-trx.y)+trx.y)*scale;dy=this.graph.snap(dy/scale)*scale-ty;}}delta=new mxPoint(dx,dy);}return delta;};mxGuide.prototype.hide=function(){if(this.guideX!=null){this.guideX.node.style.visibility='hidden';}if(this.guideY!=null){this.guideY.node.style.visibility='hidden';}};mxGuide.prototype.destroy=function(){if(this.guideX!=null){this.guideX.destroy();this.guideX=null;}if(this.guideY!=null){this.guideY.destroy();this.guideY=null;}};function mxShape(){};mxShape.prototype.SVG_STROKE_TOLERANCE=8;mxShape.prototype.scale=1;mxShape.prototype.dialect=null;mxShape.prototype.crisp=false;mxShape.prototype.roundedCrispSvg=true;mxShape.prototype.mixedModeHtml=true;mxShape.prototype.preferModeHtml=true;mxShape.prototype.bounds=null;mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.label=null;mxShape.prototype.innerNode=null;mxShape.prototype.style=null;mxShape.prototype.startOffset=null;mxShape.prototype.endOffset=null;mxShape.prototype.vmlNodes=['node','strokeNode','fillNode','shadowNode'];mxShape.prototype.setCursor=function(cursor){if(cursor==null){cursor='';}this.cursor=cursor;if(this.innerNode!=null){this.innerNode.style.cursor=cursor;}if(this.node!=null){this.node.style.cursor=cursor;}if(this.pipe!=null){this.pipe.style.cursor=cursor;}};mxShape.prototype.getCursor=function(){return this.cursor;};mxShape.prototype.init=function(container){if(this.node==null){this.node=this.create(container);if(container!=null){var vmlFix=document.documentMode==8&&mxUtils.isVml(this.node);if(vmlFix){for(var i=0;i<this.vmlNodes.length;i++){if(this[this.vmlNodes[i]]!=null){this[this.vmlNodes[i]].setAttribute('id','mxTemporaryReference-'+this.vmlNodes[i]);}}container.insertAdjacentHTML('beforeEnd',this.node.outerHTML);for(var i=0;i<this.vmlNodes.length;i++){if(this[this.vmlNodes[i]]!=null){this[this.vmlNodes[i]]=container.ownerDocument.getElementById('mxTemporaryReference-'+this.vmlNodes[i]);this[this.vmlNodes[i]].removeAttribute('id');}}}else{container.appendChild(this.node);}}}if(this.insertGradientNode!=null){this.insertGradient(this.insertGradientNode);this.insertGradientNode=null;}};mxShape.prototype.insertGradient=function(node){if(node!=null){var count=0;var id=node.getAttribute('id');var gradient=document.getElementById(id);while(gradient!=null&&gradient.ownerSVGElement!=this.node.ownerSVGElement){count++;id=node.getAttribute('id')+'-'+count;gradient=document.getElementById(id);}if(gradient==null){node.setAttribute('id',id);this.node.ownerSVGElement.appendChild(node);gradient=node;}if(gradient!=null){var ref='url(#'+id+')';var tmp=(this.innerNode!=null)?this.innerNode:this.node;if(tmp!=null&&tmp.getAttribute('fill')!=ref){tmp.setAttribute('fill',ref);}}}};mxShape.prototype.isMixedModeHtml=function(){return this.mixedModeHtml&&!this.isRounded&&!this.isShadow&&this.gradient==null&&mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,0)==0;};mxShape.prototype.create=function(container){var node=null;if(this.dialect==mxConstants.DIALECT_SVG){node=this.createSvg();}else if(this.dialect==mxConstants.DIALECT_STRICTHTML||(this.preferModeHtml&&this.dialect==mxConstants.DIALECT_PREFERHTML)||(this.isMixedModeHtml()&&this.dialect==mxConstants.DIALECT_MIXEDHTML)){node=this.createHtml();}else{node=this.createVml();}return node;};mxShape.prototype.createHtml=function(){var node=document.createElement('DIV');this.configureHtmlShape(node);return node;};mxShape.prototype.destroy=function(){if(this.node!=null){mxEvent.release(this.node);if(this.node.parentNode!=null){this.node.parentNode.removeChild(this.node);}if(this.node.glassOverlay){this.node.glassOverlay.parentNode.removeChild(this.node.glassOverlay);this.node.glassOverlay=null;}this.node=null;}};mxShape.prototype.apply=function(state){var style=state.style;this.style=style;if(style!=null){this.fill=mxUtils.getValue(style,mxConstants.STYLE_FILLCOLOR,this.fill);this.gradient=mxUtils.getValue(style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient);this.gradientDirection=mxUtils.getValue(style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection);this.opacity=mxUtils.getValue(style,mxConstants.STYLE_OPACITY,this.opacity);this.stroke=mxUtils.getValue(style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.isShadow=mxUtils.getValue(style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed=mxUtils.getValue(style,mxConstants.STYLE_DASHED,this.isDashed);this.spacing=mxUtils.getValue(style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(style,mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(style,mxConstants.STYLE_ENDSIZE,this.endSize);this.isRounded=mxUtils.getValue(style,mxConstants.STYLE_ROUNDED,this.isRounded);this.startArrow=mxUtils.getValue(style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(style,mxConstants.STYLE_DIRECTION,this.direction);if(this.fill=='none'){this.fill=null;}if(this.gradient=='none'){this.gradient=null;}if(this.stroke=='none'){this.stroke=null;}}};mxShape.prototype.createSvgGroup=function(shape){var g=document.createElementNS(mxConstants.NS_SVG,'g');this.innerNode=document.createElementNS(mxConstants.NS_SVG,shape);this.configureSvgShape(this.innerNode);if(shape=='rect'&&this.strokewidth*this.scale>=1&&!this.isRounded){this.innerNode.setAttribute('shape-rendering','optimizeSpeed');}this.shadowNode=this.createSvgShadow(this.innerNode);if(this.shadowNode!=null){g.appendChild(this.shadowNode);}g.appendChild(this.innerNode);return g;};mxShape.prototype.createSvgShadow=function(node){if(this.isShadow){var shadow=node.cloneNode(true);shadow.setAttribute('opacity',mxConstants.SHADOW_OPACITY);if(this.fill!=null&&this.fill!=mxConstants.NONE){shadow.setAttribute('fill',mxConstants.SHADOWCOLOR);}if(this.stroke!=null&&this.stroke!=mxConstants.NONE){shadow.setAttribute('stroke',mxConstants.SHADOWCOLOR);}return shadow;}return null;};mxShape.prototype.configureHtmlShape=function(node){if(mxUtils.isVml(node)){this.configureVmlShape(node);}else{node.style.position='absolute';node.style.overflow='hidden';var color=this.stroke;if(color!=null&&color!=mxConstants.NONE){node.style.borderColor=color;if(this.isDashed){node.style.borderStyle='dashed';}else if(this.strokewidth>0){node.style.borderStyle='solid';}node.style.borderWidth=Math.ceil(this.strokewidth*this.scale)+'px';}else{node.style.borderWidth='0px';}color=this.fill;node.style.background='';if(color!=null&&color!=mxConstants.NONE){node.style.backgroundColor=color;}else if(this.points==null){this.configureTransparentBackground(node);}if(this.opacity!=null){mxUtils.setOpacity(node,this.opacity);}}};mxShape.prototype.updateVmlFill=function(node,c1,c2,dir,alpha){node.color=c1;if(alpha!=null&&alpha!=100){node.opacity=alpha+'%';if(c2!=null){node.setAttribute('o:opacity2',alpha+'%');}}if(c2!=null){node.type='gradient';node.color2=c2;var angle='180';if(this.gradientDirection==mxConstants.DIRECTION_EAST){angle='270';}else if(this.gradientDirection==mxConstants.DIRECTION_WEST){angle='90';}else if(this.gradientDirection==mxConstants.DIRECTION_NORTH){angle='0';}node.angle=angle;}};mxShape.prototype.updateVmlStrokeNode=function(parent){if(this.strokeNode==null){this.strokeNode=document.createElement('v:stroke');this.strokeNode.joinstyle='miter';this.strokeNode.miterlimit=4;parent.appendChild(this.strokeNode);}if(this.opacity!=null){this.strokeNode.opacity=this.opacity+'%';}this.updateVmlDashStyle();};mxShape.prototype.updateVmlStrokeColor=function(node){var color=this.stroke;if(color!=null&&color!=mxConstants.NONE){node.stroked='true';node.strokecolor=color;}else{node.stroked='false';}};mxShape.prototype.configureVmlShape=function(node){node.style.position='absolute';this.updateVmlStrokeColor(node);node.style.background='';var color=this.fill;if(color!=null&&color!=mxConstants.NONE){if(this.fillNode==null){this.fillNode=document.createElement('v:fill');node.appendChild(this.fillNode);}this.updateVmlFill(this.fillNode,color,this.gradient,this.gradientDirection,this.opacity);}else{node.filled='false';if(this.points==null){this.configureTransparentBackground(node);}}this.updateVmlStrokeNode(node);if(this.isShadow){this.createVmlShadow(node);}if(node.nodeName=='roundrect'){try{var f=mxConstants.RECTANGLE_ROUNDING_FACTOR*100;if(this.style!=null){f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,f);}node.setAttribute('arcsize',String(f)+'%');}catch(e){}}};mxShape.prototype.createVmlShadow=function(node){if(this.shadowNode==null){this.shadowNode=document.createElement('v:shadow');this.shadowNode.on='true';this.shadowNode.color=mxConstants.SHADOWCOLOR;this.shadowNode.opacity=(mxConstants.SHADOW_OPACITY*100)+'%';this.shadowStrokeNode=document.createElement('v:stroke');this.shadowNode.appendChild(this.shadowStrokeNode);node.appendChild(this.shadowNode);}};mxShape.prototype.configureTransparentBackground=function(node){node.style.background='url(\''+mxClient.imageBasePath+'/transparent.gif\')';};mxShape.prototype.configureSvgShape=function(node){var color=this.stroke;if(color!=null&&color!=mxConstants.NONE){node.setAttribute('stroke',color);}else{node.setAttribute('stroke','none');}color=this.fill;if(color!=null&&color!=mxConstants.NONE){if(this.gradient!=null){var id=this.getGradientId(color,this.gradient);if(this.gradientNode!=null&&this.gradientNode.getAttribute('id')!=id){this.gradientNode=null;node.setAttribute('fill','');}if(this.gradientNode==null){this.gradientNode=this.createSvgGradient(id,color,this.gradient,node);node.setAttribute('fill','url(#'+id+')');}}else{this.gradientNode=null;node.setAttribute('fill',color);}}else{node.setAttribute('fill','none');}if(this.opacity!=null){node.setAttribute('fill-opacity',this.opacity/100);node.setAttribute('stroke-opacity',this.opacity/100);}};mxShape.prototype.getGradientId=function(start,end){if(start.charAt(0)=='#'){start=start.substring(1);}if(end.charAt(0)=='#'){end=end.substring(1);}start=start.toLowerCase();end=end.toLowerCase();var dir=null;if(this.gradientDirection==null||this.gradientDirection==mxConstants.DIRECTION_SOUTH){dir='south';}else if(this.gradientDirection==mxConstants.DIRECTION_EAST){dir='east';}else{var tmp=start;start=end;end=tmp;if(this.gradientDirection==mxConstants.DIRECTION_NORTH){dir='south';}else if(this.gradientDirection==mxConstants.DIRECTION_WEST){dir='east';}}return 'mx-gradient-'+start+'-'+end+'-'+dir;};mxShape.prototype.createSvgPipe=function(id,start,end,node){var pipe=document.createElementNS(mxConstants.NS_SVG,'path');pipe.setAttribute('pointer-events','stroke');pipe.setAttribute('fill','none');pipe.setAttribute('visibility','hidden');pipe.setAttribute('stroke',(mxClient.IS_OP)?'none':'white');return pipe;};mxShape.prototype.createSvgGradient=function(id,start,end,node){var gradient=this.insertGradientNode;if(gradient==null){gradient=document.createElementNS(mxConstants.NS_SVG,'linearGradient');gradient.setAttribute('id',id);gradient.setAttribute('x1','0%');gradient.setAttribute('y1','0%');gradient.setAttribute('x2','0%');gradient.setAttribute('y2','0%');if(this.gradientDirection==null||this.gradientDirection==mxConstants.DIRECTION_SOUTH){gradient.setAttribute('y2','100%');}else if(this.gradientDirection==mxConstants.DIRECTION_EAST){gradient.setAttribute('x2','100%');}else if(this.gradientDirection==mxConstants.DIRECTION_NORTH){gradient.setAttribute('y1','100%');}else if(this.gradientDirection==mxConstants.DIRECTION_WEST){gradient.setAttribute('x1','100%');}var stop=document.createElementNS(mxConstants.NS_SVG,'stop');stop.setAttribute('offset','0%');stop.setAttribute('style','stop-color:'+start);gradient.appendChild(stop);stop=document.createElementNS(mxConstants.NS_SVG,'stop');stop.setAttribute('offset','100%');stop.setAttribute('style','stop-color:'+end);gradient.appendChild(stop);}this.insertGradientNode=gradient;return gradient;};mxShape.prototype.createPoints=function(moveCmd,lineCmd,curveCmd,isRelative){var offsetX=(isRelative)?this.bounds.x:0;var offsetY=(isRelative)?this.bounds.y:0;var crisp=(this.crisp&&this.dialect==mxConstants.DIALECT_SVG&&mxClient.IS_IE)?0.5:0;if(isNaN(this.points[0].x)||isNaN(this.points[0].y)){return null;}var size=mxConstants.LINE_ARCSIZE*this.scale;var p0=this.points[0];if(this.startOffset!=null){p0=p0.clone();p0.x+=this.startOffset.x;p0.y+=this.startOffset.y;}var points=moveCmd+' '+(Math.round(p0.x-offsetX)+crisp)+' '+(Math.round(p0.y-offsetY)+crisp)+' ';for(var i=1;i<this.points.length;i++){p0=this.points[i-1];var pt=this.points[i];if(isNaN(pt.x)||isNaN(pt.y)){return null;}if(i==this.points.length-1&&this.endOffset!=null){pt=pt.clone();pt.x+=this.endOffset.x;pt.y+=this.endOffset.y;}var dx=p0.x-pt.x;var dy=p0.y-pt.y;if((this.isRounded&&i<this.points.length-1)&&(dx!=0||dy!=0)&&this.scale>0.3){var dist=Math.sqrt(dx*dx+dy*dy);var nx1=dx*Math.min(size,dist/2)/dist;var ny1=dy*Math.min(size,dist/2)/dist;points+=lineCmd+' '+(Math.round(pt.x+nx1-offsetX)+crisp)+' '+(Math.round(pt.y+ny1-offsetY)+crisp)+' ';var pe=this.points[i+1];dx=pe.x-pt.x;dy=pe.y-pt.y;dist=Math.max(1,Math.sqrt(dx*dx+dy*dy));if(dist!=0){var nx2=dx*Math.min(size,dist/2)/dist;var ny2=dy*Math.min(size,dist/2)/dist;points+=curveCmd+' '+Math.round(pt.x-offsetX)+' '+Math.round(pt.y-offsetY)+' '+Math.round(pt.x-offsetX)+','+Math.round(pt.y-offsetY)+' '+(Math.round(pt.x+nx2-offsetX)+crisp)+' '+(Math.round(pt.y+ny2-offsetY)+crisp)+' ';}}else{points+=lineCmd+' '+(Math.round(pt.x-offsetX)+crisp)+' '+(Math.round(pt.y-offsetY)+crisp)+' ';}}return points;};mxShape.prototype.updateHtmlShape=function(node){if(node!=null){if(mxUtils.isVml(node)){this.updateVmlShape(node);}else{var sw=Math.ceil(this.strokewidth*this.scale);node.style.borderWidth=Math.max(1,sw)+'px';if(this.bounds!=null&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)){node.style.left=Math.round(this.bounds.x-sw/2)+'px';node.style.top=Math.round(this.bounds.y-sw/2)+'px';if(document.compatMode=='CSS1Compat'){sw=-sw;}node.style.width=Math.round(Math.max(0,this.bounds.width+sw))+'px';node.style.height=Math.round(Math.max(0,this.bounds.height+sw))+'px';if(this.bounds.width==0||this.bounds.height==0){node.style.visibility='hidden';}else{node.style.visibility='visible';}}}if(this.points!=null&&this.bounds!=null&&!mxUtils.isVml(node)){if(this.divContainer==null){this.divContainer=node;}while(this.divContainer.firstChild!=null){mxEvent.release(this.divContainer.firstChild);this.divContainer.removeChild(this.divContainer.firstChild);}node.style.borderStyle='';node.style.background='';if(this.points.length==2){var p0=this.points[0];var pe=this.points[1];var dx=pe.x-p0.x;var dy=pe.y-p0.y;if(dx==0||dy==0){node.style.borderStyle='solid';}else{node.style.width=Math.round(this.bounds.width+1)+'px';node.style.height=Math.round(this.bounds.height+1)+'px';var length=Math.sqrt(dx*dx+dy*dy);var dotCount=1+(length/(8*this.scale));var nx=dx/dotCount;var ny=dy/dotCount;var x=p0.x-this.bounds.x;var y=p0.y-this.bounds.y;for(var i=0;i<dotCount;i++){var tmp=document.createElement('DIV');tmp.style.position='absolute';tmp.style.overflow='hidden';tmp.style.left=Math.round(x)+'px';tmp.style.top=Math.round(y)+'px';tmp.style.width=Math.max(1,2*this.scale)+'px';tmp.style.height=Math.max(1,2*this.scale)+'px';tmp.style.backgroundColor=this.stroke;this.divContainer.appendChild(tmp);x+=nx;y+=ny;}}}else if(this.points.length==3){var mid=this.points[1];var n='0';var s='1';var w='0';var e='1';if(mid.x==this.bounds.x){e='0';w='1';}if(mid.y==this.bounds.y){n='1';s='0';}node.style.borderStyle='solid';node.style.borderWidth=n+' '+e+' '+s+' '+w+'px';}else{node.style.width=Math.round(this.bounds.width+1)+'px';node.style.height=Math.round(this.bounds.height+1)+'px';var last=this.points[0];for(var i=1;i<this.points.length;i++){var next=this.points[i];var tmp=document.createElement('DIV');tmp.style.position='absolute';tmp.style.overflow='hidden';tmp.style.borderColor=this.stroke;tmp.style.borderStyle='solid';tmp.style.borderWidth='1 0 0 1px';var x=Math.min(next.x,last.x)-this.bounds.x;var y=Math.min(next.y,last.y)-this.bounds.y;var w=Math.max(1,Math.abs(next.x-last.x));var h=Math.max(1,Math.abs(next.y-last.y));tmp.style.left=x+'px';tmp.style.top=y+'px';tmp.style.width=w+'px';tmp.style.height=h+'px';this.divContainer.appendChild(tmp);last=next;}}}}};mxShape.prototype.updateVmlDashStyle=function(){if(this.isDashed){if(this.strokeNode.dashstyle!='dash'){this.strokeNode.dashstyle='dash';}}else if(this.strokeNode.dashstyle!='solid'){this.strokeNode.dashstyle='solid';}};mxShape.prototype.updateVmlShape=function(node){node.strokeweight=(this.strokewidth*this.scale)+'px';if(this.strokeNode!=null){this.updateVmlDashStyle();}if(this.shadowNode!=null){var dx=Math.round(mxConstants.SHADOW_OFFSET_X*this.scale);var dy=Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale);this.shadowNode.offset=dx+'px,'+dy+'px';}if(this.bounds!=null&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)){if(node.parentNode!=this.node){node.style.left=Math.round(this.bounds.x)+'px';node.style.top=Math.round(this.bounds.y)+'px';if(this.points==null){if(this.rotation!=null&&this.rotation!=0){node.style.rotation=this.rotation;}else if(node.style.rotation!=null){node.style.rotation='';}}}var w=Math.max(0,Math.round(this.bounds.width));var h=Math.max(0,Math.round(this.bounds.height));node.style.width=w+'px';node.style.height=h+'px';if(this.points!=null||node.nodeName=='shape'||node.nodeName=='group'){node.coordsize=w+','+h;}}if(this.points!=null&&node.nodeName!='group'){if(node.nodeName=='polyline'&&node.points!=null){var points='';for(var i=0;i<this.points.length;i++){points+=this.points[i].x+','+this.points[i].y+' ';}node.points.value=points;node.style.left=null;node.style.top=null;node.style.width=null;node.style.height=null;}else if(this.bounds!=null){var points=this.createPoints('m','l','c',true);if(this.style!=null&&this.style[mxConstants.STYLE_SMOOTH]){var pts=this.points;var n=pts.length;if(n>3){var x0=this.bounds.x;var y0=this.bounds.y;points='m '+Math.round(pts[0].x-x0)+' '+Math.round(pts[0].y-y0)+' qb';for(var i=1;i<n-1;i++){points+=' '+Math.round(pts[i].x-x0)+' '+Math.round(pts[i].y-y0);}points+=' nf l '+Math.round(pts[n-1].x-x0)+' '+Math.round(pts[n-1].y-y0);}}node.path=points+' e';}}};mxShape.prototype.updateSvgBounds=function(node){var w=this.bounds.width;var h=this.bounds.height;if(this.isRounded&&!(this.crisp&&mxClient.IS_IE)){node.setAttribute('x',this.bounds.x);node.setAttribute('y',this.bounds.y);node.setAttribute('width',w);node.setAttribute('height',h);}else{var dd=(this.crisp&&mxClient.IS_IE)?0.5:0;node.setAttribute('x',Math.round(this.bounds.x)+dd);node.setAttribute('y',Math.round(this.bounds.y)+dd);w=Math.round(w);h=Math.round(h);node.setAttribute('width',w);node.setAttribute('height',h);}if(this.isRounded){var f=mxConstants.RECTANGLE_ROUNDING_FACTOR*100;if(this.style!=null){f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,f)/100;}var r=Math.min(w*f,h*f);node.setAttribute('rx',r);node.setAttribute('ry',r);}this.updateSvgTransform(node,node==this.shadowNode);};mxShape.prototype.updateSvgPath=function(node){var d=this.createPoints('M','L','C',false);if(d!=null){node.setAttribute('d',d);if(this.style!=null&&this.style[mxConstants.STYLE_SMOOTH]){var pts=this.points;var n=pts.length;if(n>3){var points='M '+pts[0].x+' '+pts[0].y+' ';points+=' Q '+pts[1].x+' '+pts[1].y+' '+' '+pts[2].x+' '+pts[2].y;for(var i=3;i<n;i++){points+=' T '+pts[i].x+' '+pts[i].y;}node.setAttribute('d',points);}}node.removeAttribute('x');node.removeAttribute('y');node.removeAttribute('width');node.removeAttribute('height');}};mxShape.prototype.updateSvgScale=function(node){node.setAttribute('stroke-width',Math.round(Math.max(1,this.strokewidth*this.scale)));if(this.isDashed){var phase=Math.max(1,Math.round(3*this.scale*this.strokewidth));node.setAttribute('stroke-dasharray',phase+' '+phase);}if(this.crisp&&(this.roundedCrispSvg||this.isRounded!=true)){node.setAttribute('shape-rendering','crispEdges');}else{node.removeAttribute('shape-rendering');}};mxShape.prototype.updateSvgShape=function(node){if(this.points!=null&&this.points[0]!=null){this.updateSvgPath(node);}else if(this.bounds!=null){this.updateSvgBounds(node);}this.updateSvgScale(node);};mxShape.prototype.getSvgShadowTransform=function(node,shadow){var dx=mxConstants.SHADOW_OFFSET_X*this.scale;var dy=mxConstants.SHADOW_OFFSET_Y*this.scale;return 'translate('+dx+' '+dy+')';};mxShape.prototype.updateSvgTransform=function(node,shadow){var st=(shadow)?this.getSvgShadowTransform():'';if(this.rotation!=null&&this.rotation!=0){var cx=this.bounds.x+this.bounds.width/2;var cy=this.bounds.y+this.bounds.height/2;node.setAttribute('transform','rotate('+this.rotation+','+cx+','+cy+') '+st);}else{if(shadow){node.setAttribute('transform',st);}else{node.removeAttribute('transform');}}};mxShape.prototype.reconfigure=function(){if(this.dialect==mxConstants.DIALECT_SVG){if(this.innerNode!=null){this.configureSvgShape(this.innerNode);}else{this.configureSvgShape(this.node);}if(this.insertGradientNode!=null){this.insertGradient(this.insertGradientNode);this.insertGradientNode=null;}}else if(mxUtils.isVml(this.node)){this.node.style.visibility='hidden';this.configureVmlShape(this.node);this.node.style.visibility='visible';}else{this.node.style.visibility='hidden';this.configureHtmlShape(this.node);this.node.style.visibility='visible';}};mxShape.prototype.redraw=function(){if(this.dialect==mxConstants.DIALECT_SVG){this.redrawSvg();}else if(mxUtils.isVml(this.node)){this.node.style.visibility='hidden';this.redrawVml();this.node.style.visibility='visible';}else{this.redrawHtml();}};mxShape.prototype.redrawSvg=function(){if(this.innerNode!=null){this.updateSvgShape(this.innerNode);if(this.shadowNode!=null){this.updateSvgShape(this.shadowNode);}}else{this.updateSvgShape(this.node);if(this.shadowNode!=null){this.shadowNode.setAttribute('transform',this.getSvgShadowTransform());}}this.updateSvgGlassPane();};mxShape.prototype.updateVmlGlassPane=function(){if(this.bounds!=null&&this.node.nodeName=='group'&&this.style!=null&&mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,0)==1){if(this.node.glassOverlay==null){this.node.glassOverlay=document.createElement('v:shape');this.node.glassOverlay.setAttribute('filled','true');this.node.glassOverlay.setAttribute('fillcolor','white');this.node.glassOverlay.setAttribute('stroked','false');var fillNode=document.createElement('v:fill');fillNode.setAttribute('type','gradient');fillNode.setAttribute('color','white');fillNode.setAttribute('color2','white');fillNode.setAttribute('opacity','90%');fillNode.setAttribute('o:opacity2','15%');fillNode.setAttribute('angle','180');this.node.glassOverlay.appendChild(fillNode);this.node.appendChild(this.node.glassOverlay);}var size=0.4;var b=this.bounds;var sw=Math.ceil(this.strokewidth*this.scale/2+1);var d='m '+(-sw)+' '+(-sw)+' l '+(-sw)+' '+Math.round(b.height*size)+' c '+Math.round(b.width*0.3)+' '+Math.round(b.height*0.6)+' '+Math.round(b.width*0.7)+' '+Math.round(b.height*0.6)+' '+Math.round(b.width+sw)+' '+Math.round(b.height*size)+' l '+Math.round(b.width+sw)+' '+(-sw)+' x e';this.node.glassOverlay.style.position='absolute';this.node.glassOverlay.style.width=b.width+'px';this.node.glassOverlay.style.height=b.height+'px';this.node.glassOverlay.setAttribute('coordsize',Math.round(this.bounds.width)+','+Math.round(this.bounds.height));this.node.glassOverlay.setAttribute('path',d);}else if(this.node.glassOverlay!=null){this.node.glassOverlay.parentNode.removeChild(this.node.glassOverlay);this.node.glassOverlay=null;}};mxShape.prototype.updateSvgGlassPane=function(){if(this.node.nodeName=='g'&&this.style!=null&&mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,0)==1){if(this.node.glassOverlay==null){if(this.node.ownerSVGElement.glassGradient==null){var glassGradient=document.createElementNS(mxConstants.NS_SVG,'linearGradient');glassGradient.setAttribute('x1','0%');glassGradient.setAttribute('y1','0%');glassGradient.setAttribute('x2','0%');glassGradient.setAttribute('y2','100%');var stop1=document.createElementNS(mxConstants.NS_SVG,'stop');stop1.setAttribute('offset','0%');stop1.setAttribute('style','stop-color:#ffffff;stop-opacity:0.9');glassGradient.appendChild(stop1);var stop2=document.createElementNS(mxConstants.NS_SVG,'stop');stop2.setAttribute('offset','100%');stop2.setAttribute('style','stop-color:#ffffff;stop-opacity:0.1');glassGradient.appendChild(stop2);var prefix='mx-glass-gradient-';var counter=0;while(document.getElementById(prefix+counter)!=null){counter++;}glassGradient.setAttribute('id',prefix+counter);this.node.ownerSVGElement.appendChild(glassGradient);this.node.ownerSVGElement.glassGradient=glassGradient;}this.node.glassOverlay=document.createElementNS(mxConstants.NS_SVG,'path');var id=this.node.ownerSVGElement.glassGradient.getAttribute('id');this.node.glassOverlay.setAttribute('style','fill:url(#'+id+');');this.node.appendChild(this.node.glassOverlay);}var size=0.4;var b=this.bounds;var sw=Math.ceil(this.strokewidth*this.scale/2);var d='m '+(b.x-sw)+','+(b.y-sw)+' L '+(b.x-sw)+','+(b.y+b.height*size)+' Q '+(b.x+b.width*0.5)+','+(b.y+b.height*0.7)+' '+(b.x+b.width+sw)+','+(b.y+b.height*size)+' L '+(b.x+b.width+sw)+','+(b.y-sw)+' z';this.node.glassOverlay.setAttribute('d',d);}else if(this.node.glassOverlay!=null){this.node.glassOverlay.parentNode.removeChild(this.node.glassOverlay);this.node.glassOverlay=null;}};mxShape.prototype.redrawVml=function(){this.node.style.visibility='hidden';this.updateVmlShape(this.node);this.updateVmlGlassPane();this.node.style.visibility='visible';};mxShape.prototype.redrawHtml=function(){this.updateHtmlShape(this.node);};mxShape.prototype.getRotation=function(){var rot=this.rotation||0;if(this.direction!=null){if(this.direction=='north'){rot+=270;}else if(this.direction=='west'){rot+=180;}else if(this.direction=='south'){rot+=90;}}return rot;};mxShape.prototype.createPath=function(arg){var x=this.bounds.x;var y=this.bounds.y;var w=this.bounds.width;var h=this.bounds.height;var dx=0;var dy=0;if(this.direction=='north'||this.direction=='south'){dx=(w-h)/2;dy=(h-w)/2;x+=dx;y+=dy;var tmp=w;w=h;h=tmp;}var rotation=this.getRotation();var path=null;if(this.dialect==mxConstants.DIALECT_SVG){path=new mxPath('svg');path.setTranslate(x,y);if(rotation!=0){var cx=this.bounds.getCenterX();var cy=this.bounds.getCenterY();var transform='rotate('+rotation+' '+cx+' '+cy+')';if(this.innerNode!=null){this.innerNode.setAttribute('transform',transform);}if(this.foreground!=null){this.foreground.setAttribute('transform',transform);}if(this.shadowNode!=null){this.shadowNode.setAttribute('transform',this.getSvgShadowTransform()+' '+transform);}}}else{path=new mxPath('vml');path.setTranslate(dx,-dx);if(rotation!=0){this.node.style.rotation=rotation;}}this.redrawPath(path,x,y,w,h,arg);return path.getPath();};mxShape.prototype.redrawPath=function(path,x,y,w,h){};function mxStencil(desc){this.desc=desc;this.parseDescription();this.parseConstraints();};mxStencil.prototype.desc=null;mxStencil.prototype.constraints=null;mxStencil.prototype.aspect=null;mxStencil.prototype.w0=null;mxStencil.prototype.h0=null;mxStencil.prototype.bgNode=null;mxStencil.prototype.fgNode=null;mxStencil.prototype.strokewidth=null;mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName('foreground')[0];this.bgNode=this.desc.getElementsByTagName('background')[0];this.w0=Number(this.desc.getAttribute('w')||100);this.h0=Number(this.desc.getAttribute('h')||100);var aspect=this.desc.getAttribute('aspect');this.aspect=(aspect!=null)?aspect:'variable';var sw=this.desc.getAttribute('strokewidth');this.strokewidth=(sw!=null)?sw:'1';};mxStencil.prototype.parseConstraints=function(){var conns=this.desc.getElementsByTagName('connections')[0];if(conns!=null){var tmp=mxUtils.getChildNodes(conns);if(tmp!=null&&tmp.length>0){this.constraints=[];for(var i=0;i<tmp.length;i++){this.constraints.push(this.parseConstraint(tmp[i]));}}}};mxStencil.prototype.parseConstraint=function(node){var x=Number(node.getAttribute('x'));var y=Number(node.getAttribute('y'));var perimeter=node.getAttribute('perimeter')=='1';return new mxConnectionConstraint(new mxPoint(x,y),perimeter);};mxStencil.prototype.evaluateAttribute=function(node,attribute,state){var result=node.getAttribute(attribute);if(result==null){var text=mxUtils.getTextContent(node);if(text!=null){var funct=mxUtils.eval(text);if(typeof(funct)=='function'){result=funct(state);}}}return result;};mxStencil.prototype.renderDom=function(shape,bounds,parentNode,state){var vml=shape.dialect!=mxConstants.DIALECT_SVG;var rotation=shape.rotation||0;var inverse=false;if(shape.direction!=null){if(shape.direction=='north'){rotation+=270;}else if(shape.direction=='west'){rotation+=180;}else if(shape.direction=='south'){rotation+=90;}inverse=(shape.direction=='north'||shape.direction=='south');}var flipH=shape.style[mxConstants.STYLE_STENCIL_FLIPH];var flipV=shape.style[mxConstants.STYLE_STENCIL_FLIPV];if(flipH&&flipV){rotation+=180;flipH=false;flipV=false;}var svgTransform='';if(vml){if(flipH){parentNode.style.flip='x';}else if(flipV){parentNode.style.flip='y';}if(rotation!=0){parentNode.style.rotation=rotation;}}else{if(flipH||flipV){var sx=1;var sy=1;var dx=0;var dy=0;if(flipH){sx=-1;dx=-bounds.width-2*bounds.x;}if(flipV){sy=-1;dy=-bounds.height-2*bounds.y;}svgTransform='scale('+sx+' '+sy+') translate('+dx+' '+dy+')';}if(rotation!=0){var cx=bounds.getCenterX();var cy=bounds.getCenterY();svgTransform+=' rotate('+rotation+' '+cx+' '+cy+')';}}var background=(state==null);if(this.bgNode!=null||this.fgNode!=null){var x0=(vml&&state==null)?0:bounds.x;var y0=(vml&&state==null)?0:bounds.y;var sx=bounds.width/this.w0;var sy=bounds.height/this.h0;this.lastMoveX=0;this.lastMoveY=0;if(inverse){sy=bounds.width/this.h0;sx=bounds.height/this.w0;var delta=(bounds.width-bounds.height)/2;x0+=delta;y0-=delta;}if(this.aspect=='fixed'){sy=Math.min(sx,sy);sx=sy;if(inverse){x0+=(bounds.height-this.w0*sx)/2;y0+=(bounds.width-this.h0*sy)/2;}else{x0+=(bounds.width-this.w0*sx)/2;y0+=(bounds.height-this.h0*sy)/2;}}var minScale=Math.min(sx,sy);var stack=[];var currentState=(state!=null)?state:{fillColorAssigned:false,fill:shape.fill,stroke:shape.stroke,strokeWidth:(this.strokewidth=='inherit')?Number(shape.strokewidth)*shape.scale:Number(this.strokewidth)*minScale,dashed:shape.isDashed,dashpattern:[3,3],alpha:shape.opacity,linejoin:'miter',fontColor:'#000000',fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0};var currentPath=null;var currentPoints=null;var configurePath=function(path,state){var sw=Math.round(Math.max(1,state.strokeWidth));if(vml){path.strokeweight=sw+'px';if(state.fill!=null){var gradient=(!state.fillColorAssigned)?shape.gradient:null;var fill=document.createElement('v:fill');shape.updateVmlFill(fill,state.fill,gradient,shape.gradientDirection,state.alpha);path.appendChild(fill);}else{path.filled='false';}if(state.stroke!=null){path.stroked='true';path.strokecolor=state.stroke;}else{path.stroked='false';}path.style.position='absolute';}else{path.setAttribute('stroke-width',sw);if(state.fill!=null&&state.fillColorAssigned){path.setAttribute('fill',state.fill);}if(state.stroke!=null){path.setAttribute('stroke',state.stroke);}}};var addToParent=function(node){if(document.documentMode==8){parentNode.insertAdjacentHTML('beforeEnd',node.outerHTML);}else{parentNode.appendChild(node);}};var addToPath=function(s){if(currentPath!=null&&currentPoints!=null){currentPoints.push(s);}};var round=function(value){return(vml)?Math.round(value):value;};var renderNode=function(node){var name=node.nodeName;var fillOp=name=='fill';var strokeOp=name=='stroke';var fillStrokeOp=name=='fillstroke';if(name=='save'){stack.push(currentState);currentState=mxUtils.clone(currentState);}else if(name=='restore'){currentState=stack.pop();}else if(name=='path'){currentPoints=[];if(vml){currentPath=document.createElement('v:shape');configurePath.call(this,currentPath,currentState);var w=Math.round(bounds.width);var h=Math.round(bounds.height);currentPath.style.width=w+'px';currentPath.style.height=h+'px';currentPath.coordsize=w+','+h;}else{currentPath=document.createElementNS(mxConstants.NS_SVG,'path');configurePath.call(this,currentPath,currentState);if(svgTransform.length>0){currentPath.setAttribute('transform',svgTransform);}if(node.getAttribute('crisp')=='1'){currentPath.setAttribute('shape-rendering','crispEdges');}}var childNode=node.firstChild;while(childNode!=null){if(childNode.nodeType==mxConstants.NODETYPE_ELEMENT){renderNode.call(this,childNode);}childNode=childNode.nextSibling;}if(vml){addToPath('e');currentPath.path=currentPoints.join('');}else{currentPath.setAttribute('d',currentPoints.join(''));}}else if(name=='move'){var op=(vml)?'m':'M';this.lastMoveX=round(x0+Number(node.getAttribute('x'))*sx);this.lastMoveY=round(y0+Number(node.getAttribute('y'))*sy);addToPath(op+' '+this.lastMoveX+' '+this.lastMoveY);}else if(name=='line'){var op=(vml)?'l':'L';this.lastMoveX=round(x0+Number(node.getAttribute('x'))*sx);this.lastMoveY=round(y0+Number(node.getAttribute('y'))*sy);addToPath(op+' '+this.lastMoveX+' '+this.lastMoveY);}else if(name=='quad'){if(vml){var cpx0=this.lastMoveX;var cpy0=this.lastMoveY;var qpx1=x0+Number(node.getAttribute('x1'))*sx;var qpy1=y0+Number(node.getAttribute('y1'))*sy;var cpx3=x0+Number(node.getAttribute('x2'))*sx;var cpy3=y0+Number(node.getAttribute('y2'))*sy;var cpx1=cpx0+2/3*(qpx1-cpx0);var cpy1=cpy0+2/3*(qpy1-cpy0);var cpx2=cpx3+2/3*(qpx1-cpx3);var cpy2=cpy3+2/3*(qpy1-cpy3);addToPath('c '+Math.round(cpx1)+' '+Math.round(cpy1)+' '+Math.round(cpx2)+' '+Math.round(cpy2)+' '+Math.round(cpx3)+' '+Math.round(cpy3));this.lastMoveX=cpx3;this.lastMoveY=cpy3;}else{this.lastMoveX=x0+Number(node.getAttribute('x2'))*sx;this.lastMoveY=y0+Number(node.getAttribute('y2'))*sy;addToPath('Q '+(x0+Number(node.getAttribute('x1'))*sx)+' '+(y0+Number(node.getAttribute('y1'))*sy)+' '+this.lastMoveX+' '+this.lastMoveY);}}else if(name=='curve'){var op=(vml)?'c':'C';this.lastMoveX=round(x0+Number(node.getAttribute('x3'))*sx);this.lastMoveY=round(y0+Number(node.getAttribute('y3'))*sy);addToPath(op+' '+round(x0+Number(node.getAttribute('x1'))*sx)+' '+round(y0+Number(node.getAttribute('y1'))*sy)+' '+round(x0+Number(node.getAttribute('x2'))*sx)+' '+round(y0+Number(node.getAttribute('y2'))*sy)+' '+this.lastMoveX+' '+this.lastMoveY);}else if(name=='close'){addToPath((vml)?'x':'Z');}else if(name=='rect'||name=='roundrect'){var rounded=name=='roundrect';var x=round(x0+Number(node.getAttribute('x'))*sx);var y=round(y0+Number(node.getAttribute('y'))*sy);var w=round(Number(node.getAttribute('w'))*sx);var h=round(Number(node.getAttribute('h'))*sy);var arcsize=node.getAttribute('arcsize');if(arcsize==0){arcsize=mxConstants.RECTANGLE_ROUNDING_FACTOR*100;}if(vml){currentPath=document.createElement((rounded)?'v:roundrect':'v:rect');currentPath.style.left=x+'px';currentPath.style.top=y+'px';currentPath.style.width=w+'px';currentPath.style.height=h+'px';if(rounded){currentPath.setAttribute('arcsize',String(arcsize)+'%');}}else{currentPath=document.createElementNS(mxConstants.NS_SVG,'rect');currentPath.setAttribute('x',x);currentPath.setAttribute('y',y);currentPath.setAttribute('width',w);currentPath.setAttribute('height',h);if(rounded){var factor=Number(arcsize)/100;var r=Math.min(w*factor,h*factor);currentPath.setAttribute('rx',r);currentPath.setAttribute('ry',r);}if(svgTransform.length>0){currentPath.setAttribute('transform',svgTransform);}if(node.getAttribute('crisp')=='1'){currentPath.setAttribute('shape-rendering','crispEdges');}}configurePath.call(this,currentPath,currentState);}else if(name=='ellipse'){var x=round(x0+Number(node.getAttribute('x'))*sx);var y=round(y0+Number(node.getAttribute('y'))*sy);var w=round(Number(node.getAttribute('w'))*sx);var h=round(Number(node.getAttribute('h'))*sy);if(vml){currentPath=document.createElement('v:arc');currentPath.startangle='0';currentPath.endangle='360';currentPath.style.left=x+'px';currentPath.style.top=y+'px';currentPath.style.width=w+'px';currentPath.style.height=h+'px';}else{currentPath=document.createElementNS(mxConstants.NS_SVG,'ellipse');currentPath.setAttribute('cx',x+w/2);currentPath.setAttribute('cy',y+h/2);currentPath.setAttribute('rx',w/2);currentPath.setAttribute('ry',h/2);if(svgTransform.length>0){currentPath.setAttribute('transform',svgTransform);}}configurePath.call(this,currentPath,currentState);}else if(name=='arc'){var r1=Number(node.getAttribute('rx'))*sx;var r2=Number(node.getAttribute('ry'))*sy;var angle=Number(node.getAttribute('x-axis-rotation'));var largeArcFlag=Number(node.getAttribute('large-arc-flag'));var sweepFlag=Number(node.getAttribute('sweep-flag'));var x=x0+Number(node.getAttribute('x'))*sx;var y=y0+Number(node.getAttribute('y'))*sy;if(vml){var curves=mxUtils.arcToCurves(this.lastMoveX,this.lastMoveY,r1,r2,angle,largeArcFlag,sweepFlag,x,y);for(var i=0;i<curves.length;i+=6){addToPath('c'+' '+Math.round(curves[i])+' '+Math.round(curves[i+1])+' '+Math.round(curves[i+2])+' '+Math.round(curves[i+3])+' '+Math.round(curves[i+4])+' '+Math.round(curves[i+5]));this.lastMoveX=curves[i+4];this.lastMoveY=curves[i+5];}}else{addToPath('A '+r1+','+r2+' '+angle+' '+largeArcFlag+','+sweepFlag+' '+x+','+y);this.lastMoveX=x0+x;this.lastMoveY=y0+y;}}else if(name=='image'){var src=this.evaluateAttribute(node,'src',shape.state);if(src!=null){var x=round(x0+Number(node.getAttribute('x'))*sx);var y=round(y0+Number(node.getAttribute('y'))*sy);var w=round(Number(node.getAttribute('w'))*sx);var h=round(Number(node.getAttribute('h'))*sy);var aspect=false;var flipH=node.getAttribute('flipH')=='1';var flipV=node.getAttribute('flipV')=='1';if(vml){currentPath=document.createElement('v:image');currentPath.style.filter='alpha(opacity='+currentState.alpha+')';currentPath.style.left=x+'px';currentPath.style.top=y+'px';currentPath.style.width=w+'px';currentPath.style.height=h+'px';currentPath.src=src;if(flipH&&flipV){currentPath.style.rotation='180';}else if(flipH){currentPath.style.flip='x';}else if(flipV){currentPath.style.flip='y';}}else{currentPath=document.createElementNS(mxConstants.NS_SVG,'image');currentPath.setAttributeNS(mxConstants.NS_XLINK,'xlink:href',src);currentPath.setAttribute('opacity',currentState.alpha/100);currentPath.setAttribute('x',x);currentPath.setAttribute('y',y);currentPath.setAttribute('width',w);currentPath.setAttribute('height',h);if(!aspect){currentPath.setAttribute('preserveAspectRatio','none');}if(flipH||flipV){var scx=1;var scy=1;var dx=0;var dy=0;if(flipH){scx=-1;dx=-w-2*x;}if(flipV){scy=-1;dy=-h-2*y;}currentPath.setAttribute('transform',svgTransform+'scale('+scx+' '+scy+')'+' translate('+dx+' '+dy+') ');}else{currentPath.setAttribute('transform',svgTransform);}}addToParent(currentPath);}}else if(name=='include-shape'){var stencil=mxStencilRegistry.getStencil(node.getAttribute('name'));if(stencil!=null){var x=x0+Number(node.getAttribute('x'))*sx;var y=y0+Number(node.getAttribute('y'))*sy;var w=Number(node.getAttribute('w'))*sx;var h=Number(node.getAttribute('h'))*sy;stencil.renderDom(shape,new mxRectangle(x,y,w,h),parentNode,currentState);}}else if(name=='text'){var str=this.evaluateAttribute(node,'str',shape.state);if(str!=null){var x=round(x0+Number(node.getAttribute('x'))*sx);var y=round(y0+Number(node.getAttribute('y'))*sy);var align=node.getAttribute('align')||'left';var valign=node.getAttribute('valign')||'top';if(vml){currentPath=document.createElement('v:line');currentPath.style.position='absolute';currentPath.style.width='1px';currentPath.style.height='1px';currentPath.to=(x+1)+' '+y;currentPath.from=x+' '+y;var fill=document.createElement('v:fill');fill.color=currentState.fontColor;fill.on='true';currentPath.appendChild(fill);var stroke=document.createElement('v:stroke');stroke.on='false';currentPath.appendChild(stroke);var path=document.createElement('v:path');path.textpathok='true';currentPath.appendChild(path);var tp=document.createElement('v:textpath');tp.style.cssText='v-text-align:'+align;tp.style.fontSize=currentState.fontSize+'px';tp.style.fontFamily=currentState.fontFamily;tp.string=str;tp.on='true';if((currentState.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD){tp.style.fontWeight='bold';}if((currentState.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC){tp.style.fontStyle='italic';}if((currentState.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE){tp.style.textDecoration='underline';}if(valign=='top'){currentPath.style.top=(currentState.fontSize/2)+'px';}else if(valign=='bottom'){currentPath.style.top=-(currentState.fontSize/3)+'px';}currentPath.appendChild(tp);}else{currentPath=document.createElementNS(mxConstants.NS_SVG,'text');currentPath.setAttribute('fill',currentState.fontColor);currentPath.setAttribute('font-family',currentState.fontFamily);currentPath.setAttribute('font-size',currentState.fontSize);currentPath.setAttribute('stroke','none');currentPath.setAttribute('x',x);currentPath.appendChild(document.createTextNode(str));if((currentState.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD){currentPath.setAttribute('font-weight','bold');}if((currentState.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC){currentPath.setAttribute('font-style','italic');}if((currentState.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE){currentPath.setAttribute('text-decoration',uline);}if(align=='left'){align='start';}else if(align=='center'){align='middle';}else if(align=='right'){align='end';}currentPath.setAttribute('text-anchor',align);if(valign=='top'){currentPath.setAttribute('y',y+currentState.fontSize/5);currentPath.setAttribute('dy','1ex');}else if(valign=='middle'){currentPath.setAttribute('y',y+currentState.fontSize/8);currentPath.setAttribute('dy','0.5ex');}else{currentPath.setAttribute('y',y);}if(svgTransform.length>0){currentPath.setAttribute('transform',svgTransform);}}addToParent(currentPath);}}else if(fillOp||strokeOp||fillStrokeOp){if(currentPath!=null){var pattern=null;if(currentState.dashed){var f=(vml)?minScale:Number(currentPath.getAttribute('stroke-width'));var pat=[];for(var i=0;i<currentState.dashpattern.length;i++){pat.push(Math.max(1,Math.round(Number(currentState.dashpattern[i])*f)));}pattern=pat.join(' ');}if(strokeOp||fillStrokeOp){if(vml){var stroke=document.createElement('v:stroke');stroke.endcap=currentState.linecap||'flat';stroke.joinstyle=currentState.linejoin||'miter';stroke.miterlimit=currentState.miterlimit||'10';currentPath.appendChild(stroke);if(pattern!=null){stroke.dashstyle=pattern;}}else{if(currentState.linejoin!=null){currentPath.setAttribute('stroke-linejoin',currentState.linejoin);}if(currentState.linecap!=null){var value=currentState.linecap;if(value=='flat'){value='butt';}currentPath.setAttribute('stroke-linecap',value);}if(currentState.miterlimit!=null){currentPath.setAttribute('stroke-miterlimit',currentState.miterlimit);}if(pattern!=null){currentPath.setAttribute('stroke-dasharray',pattern);}}}if(background&&shape.isShadow&&currentState.fill!=null&&(fillOp||fillStrokeOp)){var dx=mxConstants.SHADOW_OFFSET_X*shape.scale;var dy=mxConstants.SHADOW_OFFSET_Y*shape.scale;if(vml){var shadow=document.createElement('v:shadow');shadow.setAttribute('on','true');shadow.setAttribute('color',mxConstants.SHADOWCOLOR);shadow.setAttribute('offset',Math.round(dx)+'px,'+Math.round(dy)+'px');shadow.setAttribute('opacity',(mxConstants.SHADOW_OPACITY*100)+'%');var stroke=document.createElement('v:stroke');stroke.endcap=currentState.linecap||'flat';stroke.joinstyle=currentState.linejoin||'miter';stroke.miterlimit=currentState.miterlimit||'10';if(pattern!=null){stroke.dashstyle=pattern;}shadow.appendChild(stroke);currentPath.appendChild(shadow);}else{var shadow=currentPath.cloneNode(true);shadow.setAttribute('stroke',mxConstants.SHADOWCOLOR);shadow.setAttribute('fill',mxConstants.SHADOWCOLOR);shadow.setAttribute('transform','translate('+dx+' '+dy+') '+(shadow.getAttribute('transform')||''));shadow.setAttribute('opacity',mxConstants.SHADOW_OPACITY);parentNode.appendChild(shadow);}}if(fillOp){if(vml){currentPath.stroked='false';}else{currentPath.setAttribute('stroke','none');}}else if(strokeOp){if(vml){currentPath.filled='false';}else{currentPath.setAttribute('fill','none');}}addToParent(currentPath);}if(background){background=false;}}else if(name=='linecap'){currentState.linecap=node.getAttribute('cap');}else if(name=='linejoin'){currentState.linejoin=node.getAttribute('join');}else if(name=='miterlimit'){currentState.miterlimit=node.getAttribute('limit');}else if(name=='dashed'){currentState.dashed=node.getAttribute('dashed')=='1';}else if(name=='dashpattern'){var value=node.getAttribute('pattern');if(value!=null){currentState.dashpattern=value.split(' ');}}else if(name=='strokewidth'){currentState.strokeWidth=node.getAttribute('width')*minScale;}else if(name=='strokecolor'){currentState.stroke=node.getAttribute('color');}else if(name=='fillcolor'){currentState.fill=node.getAttribute('color');currentState.fillColorAssigned=true;}else if(name=='alpha'){currentState.alpha=Number(node.getAttribute('alpha'));}else if(name=='fontcolor'){currentState.fontColor=node.getAttribute('color');}else if(name=='fontsize'){currentState.fontSize=Number(node.getAttribute('size'))*minScale;}else if(name=='fontfamily'){currentState.fontFamily=node.getAttribute('family');}else if(name=='fontstyle'){currentState.fontStyle=Number(node.getAttribute('style'));}};if(!vml){var rect=document.createElementNS(mxConstants.NS_SVG,'rect');rect.setAttribute('x',bounds.x);rect.setAttribute('y',bounds.y);rect.setAttribute('width',bounds.width);rect.setAttribute('height',bounds.height);rect.setAttribute('fill','none');rect.setAttribute('stroke','none');parentNode.appendChild(rect);}if(this.bgNode!=null){var tmp=this.bgNode.firstChild;while(tmp!=null){if(tmp.nodeType==mxConstants.NODETYPE_ELEMENT){renderNode.call(this,tmp);}tmp=tmp.nextSibling;}}else{background=false;}if(this.fgNode!=null){var tmp=this.fgNode.firstChild;while(tmp!=null){if(tmp.nodeType==mxConstants.NODETYPE_ELEMENT){renderNode.call(this,tmp);}tmp=tmp.nextSibling;}}}};mxStencil.prototype.drawShape=function(canvas,state,bounds,background){var node=(background)?this.bgNode:this.fgNode;if(node!=null){var direction=mxUtils.getValue(state.style,mxConstants.STYLE_DIRECTION,null);var aspect=this.computeAspect(state,bounds,direction);var minScale=Math.min(aspect.width,aspect.height);var sw=(this.strokewidth=='inherit')?Number(mxUtils.getNumber(state.style,mxConstants.STYLE_STROKEWIDTH,1))*state.view.scale:Number(this.strokewidth)*minScale;this.lastMoveX=0;this.lastMoveY=0;canvas.setStrokeWidth(sw);var tmp=node.firstChild;while(tmp!=null){if(tmp.nodeType==mxConstants.NODETYPE_ELEMENT){this.drawNode(canvas,state,tmp,aspect);}tmp=tmp.nextSibling;}return true;}return false;};mxStencil.prototype.computeAspect=function(state,bounds,direction){var x0=bounds.x;var y0=bounds.y;var sx=bounds.width/this.w0;var sy=bounds.height/this.h0;var inverse=(direction=='north'||direction=='south');if(inverse){sy=bounds.width/this.h0;sx=bounds.height/this.w0;var delta=(bounds.width-bounds.height)/2;x0+=delta;y0-=delta;}if(this.aspect=='fixed'){sy=Math.min(sx,sy);sx=sy;if(inverse){x0+=(bounds.height-this.w0*sx)/2;y0+=(bounds.width-this.h0*sy)/2;}else{x0+=(bounds.width-this.w0*sx)/2;y0+=(bounds.height-this.h0*sy)/2;}}return new mxRectangle(x0,y0,sx,sy);};mxStencil.prototype.drawNode=function(canvas,state,node,aspect){var name=node.nodeName;var x0=aspect.x;var y0=aspect.y;var sx=aspect.width;var sy=aspect.height;var minScale=Math.min(sx,sy);if(name=='save'){canvas.save();}else if(name=='restore'){canvas.restore();}else if(name=='path'){canvas.begin();var childNode=node.firstChild;while(childNode!=null){if(childNode.nodeType==mxConstants.NODETYPE_ELEMENT){this.drawNode(canvas,state,childNode,aspect);}childNode=childNode.nextSibling;}}else if(name=='close'){canvas.close();}else if(name=='move'){this.lastMoveX=x0+Number(node.getAttribute('x'))*sx;this.lastMoveY=y0+Number(node.getAttribute('y'))*sy;canvas.moveTo(this.lastMoveX,this.lastMoveY);}else if(name=='line'){this.lastMoveX=x0+Number(node.getAttribute('x'))*sx;this.lastMoveY=y0+Number(node.getAttribute('y'))*sy;canvas.lineTo(this.lastMoveX,this.lastMoveY);}else if(name=='quad'){this.lastMoveX=x0+Number(node.getAttribute('x2'))*sx;this.lastMoveY=y0+Number(node.getAttribute('y2'))*sy;canvas.quadTo(x0+Number(node.getAttribute('x1'))*sx,y0+Number(node.getAttribute('y1'))*sy,this.lastMoveX,this.lastMoveY);}else if(name=='curve'){this.lastMoveX=x0+Number(node.getAttribute('x3'))*sx;this.lastMoveY=y0+Number(node.getAttribute('y3'))*sy;canvas.curveTo(x0+Number(node.getAttribute('x1'))*sx,y0+Number(node.getAttribute('y1'))*sy,x0+Number(node.getAttribute('x2'))*sx,y0+Number(node.getAttribute('y2'))*sy,this.lastMoveX,this.lastMoveY);}else if(name=='arc'){var r1=Number(node.getAttribute('rx'))*sx;var r2=Number(node.getAttribute('ry'))*sy;var angle=Number(node.getAttribute('x-axis-rotation'));var largeArcFlag=Number(node.getAttribute('large-arc-flag'));var sweepFlag=Number(node.getAttribute('sweep-flag'));var x=x0+Number(node.getAttribute('x'))*sx;var y=y0+Number(node.getAttribute('y'))*sy;var curves=mxUtils.arcToCurves(this.lastMoveX,this.lastMoveY,r1,r2,angle,largeArcFlag,sweepFlag,x,y);for(var i=0;i<curves.length;i+=6){canvas.curveTo(curves[i],curves[i+1],curves[i+2],curves[i+3],curves[i+4],curves[i+5]);this.lastMoveX=curves[i+4];this.lastMoveY=curves[i+5];}}else if(name=='rect'){canvas.rect(x0+Number(node.getAttribute('x'))*sx,y0+Number(node.getAttribute('y'))*sy,Number(node.getAttribute('w'))*sx,Number(node.getAttribute('h'))*sy);}else if(name=='roundrect'){var arcsize=node.getAttribute('arcsize');if(arcsize==0){arcsize=mxConstants.RECTANGLE_ROUNDING_FACTOR*100;}var w=Number(node.getAttribute('w'))*sx;var h=Number(node.getAttribute('h'))*sy;var factor=Number(arcsize)/100;var r=Math.min(w*factor,h*factor);canvas.roundrect(x0+Number(node.getAttribute('x'))*sx,y0+Number(node.getAttribute('y'))*sy,w,h,r,r);}else if(name=='ellipse'){canvas.ellipse(x0+Number(node.getAttribute('x'))*sx,y0+Number(node.getAttribute('y'))*sy,Number(node.getAttribute('w'))*sx,Number(node.getAttribute('h'))*sy);}else if(name=='image'){var src=this.evaluateAttribute(node,'src',state);canvas.image(x0+Number(node.getAttribute('x'))*sx,y0+Number(node.getAttribute('y'))*sy,Number(node.getAttribute('w'))*sx,Number(node.getAttribute('h'))*sy,src,false,node.getAttribute('flipH')=='1',node.getAttribute('flipV')=='1');}else if(name=='text'){var str=this.evaluateAttribute(node,'str',state);canvas.text(x0+Number(node.getAttribute('x'))*sx,y0+Number(node.getAttribute('y'))*sy,0,0,str,node.getAttribute('align'),node.getAttribute('valign'),node.getAttribute('vertical'));}else if(name=='include-shape'){var stencil=mxStencilRegistry.getStencil(node.getAttribute('name'));if(stencil!=null){var x=x0+Number(node.getAttribute('x'))*sx;var y=y0+Number(node.getAttribute('y'))*sy;var w=Number(node.getAttribute('w'))*sx;var h=Number(node.getAttribute('h'))*sy;var tmp=new mxRectangle(x,y,w,h);stencil.drawShape(canvas,state,tmp,true);stencil.drawShape(canvas,state,tmp,false);}}else if(name=='fillstroke'){canvas.fillAndStroke();}else if(name=='fill'){canvas.fill();}else if(name=='stroke'){canvas.stroke();}else if(name=='strokewidth'){canvas.setStrokeWidth(Number(node.getAttribute('width'))*minScale);}else if(name=='dashed'){canvas.setDashed(node.getAttribute('dashed')=='1');}else if(name=='dashpattern'){var value=node.getAttribute('pattern');if(value!=null){var tmp=value.split(' ');var pat=[];for(var i=0;i<tmp.length;i++){if(tmp[i].length>0){pat.push(Number(tmp[i])*minScale);}}value=pat.join(' ');canvas.setDashPattern(value);}}else if(name=='strokecolor'){canvas.setStrokeColor(node.getAttribute('color'));}else if(name=='linecap'){canvas.setLineCap(node.getAttribute('cap'));}else if(name=='linejoin'){canvas.setLineJoin(node.getAttribute('join'));}else if(name=='miterlimit'){canvas.setMiterLimit(Number(node.getAttribute('limit')));}else if(name=='fillcolor'){canvas.setFillColor(node.getAttribute('color'));}else if(name=='fontcolor'){canvas.setFontColor(node.getAttribute('color'));}else if(name=='fontstyle'){canvas.setFontStyle(node.getAttribute('style'));}else if(name=='fontfamily'){canvas.setFontFamily(node.getAttribute('family'));}else if(name=='fontsize'){canvas.setFontSize(Number(node.getAttribute('size'))*minScale);}};var mxStencilRegistry={stencils:[],addStencil:function(name,stencil){mxStencilRegistry.stencils[name]=stencil;},getStencil:function(name){return mxStencilRegistry.stencils[name];}};function mxStencilShape(stencil){this.stencil=stencil;};mxStencilShape.prototype=new mxShape();mxStencilShape.prototype.constructor=mxStencilShape;mxStencilShape.prototype.mixedModeHtml=false;mxStencilShape.prototype.preferModeHtml=false;mxStencilShape.prototype.stencil=null;mxStencilShape.prototype.state=null;mxStencilShape.prototype.apply=function(state){this.state=state;mxShape.prototype.apply.apply(this,arguments);};mxStencilShape.prototype.createSvg=function(){var node=document.createElementNS(mxConstants.NS_SVG,'g');this.configureSvgShape(node);return node;};mxStencilShape.prototype.configureHtmlShape=function(node){mxShape.prototype.configureHtmlShape.apply(this,arguments);if(!mxUtils.isVml(node)){node.style.overflow='visible';}};mxStencilShape.prototype.createVml=function(){var name=(document.documentMode==8)?'div':'v:group';var node=document.createElement(name);this.configureTransparentBackground(node);node.style.position='absolute';return node;};mxStencilShape.prototype.configureVmlShape=function(node){};mxStencilShape.prototype.redraw=function(){if(this.dialect==mxConstants.DIALECT_SVG){this.redrawShape();}else{this.node.style.visibility='hidden';this.redrawShape();this.node.style.visibility='visible';}};mxStencilShape.prototype.redrawShape=function(){if(this.dialect!=mxConstants.DIALECT_SVG){this.node.innerHTML='';this.node.style.left=Math.round(this.bounds.x)+'px';this.node.style.top=Math.round(this.bounds.y)+'px';var w=Math.round(this.bounds.width);var h=Math.round(this.bounds.height);this.node.style.width=w+'px';this.node.style.height=h+'px';if(mxUtils.isVml(this.node)){this.node.coordsize=w+','+h;}}else{while(this.node.firstChild!=null){this.node.removeChild(this.node.firstChild);}}this.stencil.renderDom(this,this.bounds,this.node);};var mxMarker={markers:[],paintMarker:function(node,type,p0,pe,color,strokewidth,size,scale,x0,y0,source,style){var marker=mxMarker.markers[type];var result=null;if(marker!=null){var isVml=mxUtils.isVml(node);var dx=pe.x-p0.x;var dy=pe.y-p0.y;if(isNaN(dx)||isNaN(dy)){return;}var dist=Math.max(1,Math.sqrt(dx*dx+dy*dy));var nx=dx*scale/dist;var ny=dy*scale/dist;pe=pe.clone();if(isVml){pe.x-=x0;pe.y-=y0;}var filled=true;var key=(source)?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL;if(style[key]==0){filled=false;}if(isVml){node.strokecolor=color;if(filled){node.fillcolor=color;}else{node.filled='false';}}else{node.setAttribute('stroke',color);var op=(style.opacity!=null)?style.opacity/100:1;node.setAttribute('stroke-opacity',op);if(filled){node.setAttribute('fill',color);node.setAttribute('fill-opacity',op);}else{node.setAttribute('fill','none');}}result=marker.call(this,node,type,pe,nx,ny,strokewidth,size,scale,isVml);}return result;}};(function(){var tmp=function(node,type,pe,nx,ny,strokewidth,size,scale,isVml){var endOffsetX=nx*strokewidth*1.118;var endOffsetY=ny*strokewidth*1.118;pe.x-=endOffsetX;pe.y-=endOffsetY;nx=nx*(size+strokewidth);ny=ny*(size+strokewidth);if(isVml){node.path='m'+Math.round(pe.x)+','+Math.round(pe.y)+' l'+Math.round(pe.x-nx-ny/2)+' '+Math.round(pe.y-ny+nx/2)+((type!=mxConstants.ARROW_CLASSIC)?'':' '+Math.round(pe.x-nx*3/4)+' '+Math.round(pe.y-ny*3/4))+' '+Math.round(pe.x+ny/2-nx)+' '+Math.round(pe.y-ny-nx/2)+' x e';node.setAttribute('strokeweight',(strokewidth*scale)+'px');}else{node.setAttribute('d','M '+pe.x+' '+pe.y+' L '+(pe.x-nx-ny/2)+' '+(pe.y-ny+nx/2)+((type!=mxConstants.ARROW_CLASSIC)?'':' L '+(pe.x-nx*3/4)+' '+(pe.y-ny*3/4))+' L '+(pe.x+ny/2-nx)+' '+(pe.y-ny-nx/2)+' z');node.setAttribute('stroke-width',strokewidth*scale);}var f=(type!=mxConstants.ARROW_CLASSIC)?1:3/4;return new mxPoint(-nx*f-endOffsetX,-ny*f-endOffsetY);};mxMarker.markers[mxConstants.ARROW_CLASSIC]=tmp;mxMarker.markers[mxConstants.ARROW_BLOCK]=tmp;}());mxMarker.markers[mxConstants.ARROW_OPEN]=function(node,type,pe,nx,ny,strokewidth,size,scale,isVml){var endOffsetX=nx*strokewidth*1.118;var endOffsetY=ny*strokewidth*1.118;pe.x-=endOffsetX;pe.y-=endOffsetY;nx=nx*(size+strokewidth);ny=ny*(size+strokewidth);if(isVml){node.path='m'+Math.round(pe.x-nx-ny/2)+' '+Math.round(pe.y-ny+nx/2)+' l'+Math.round(pe.x)+' '+Math.round(pe.y)+' '+Math.round(pe.x+ny/2-nx)+' '+Math.round(pe.y-ny-nx/2)+' e nf';node.setAttribute('strokeweight',(strokewidth*scale)+'px');}else{node.setAttribute('d','M '+(pe.x-nx-ny/2)+' '+(pe.y-ny+nx/2)+' L '+(pe.x)+' '+(pe.y)+' L '+(pe.x+ny/2-nx)+' '+(pe.y-ny-nx/2));node.setAttribute('stroke-width',strokewidth*scale);node.setAttribute('fill','none');}return new mxPoint(-endOffsetX*2,-endOffsetY*2);};mxMarker.markers[mxConstants.ARROW_OVAL]=function(node,type,pe,nx,ny,strokewidth,size,scale,isVml){nx*=size;ny*=size;nx*=0.5+strokewidth/2;ny*=0.5+strokewidth/2;var absSize=size*scale;var radius=absSize/2;if(isVml){node.path='m'+Math.round(pe.x+radius)+' '+Math.round(pe.y)+' at '+Math.round(pe.x-radius)+' '+Math.round(pe.y-radius)+' '+Math.round(pe.x+radius)+' '+Math.round(pe.y+radius)+' '+Math.round(pe.x+radius)+' '+Math.round(pe.y)+' '+Math.round(pe.x+radius)+' '+Math.round(pe.y)+' x e';node.setAttribute('strokeweight',(strokewidth*scale)+'px');}else{node.setAttribute('d','M '+(pe.x-radius)+' '+(pe.y)+' a '+(radius)+' '+(radius)+' 0  1,1 '+(absSize)+' 0'+' a '+(radius)+' '+(radius)+' 0  1,1 '+(-absSize)+' 0 z');node.setAttribute('stroke-width',strokewidth*scale);}return new mxPoint(-nx/(2+strokewidth),-ny/(2+strokewidth));};(function(){var tmp_diamond=function(node,type,pe,nx,ny,strokewidth,size,scale,isVml){var swFactor=(type==mxConstants.ARROW_DIAMOND)?0.7071:0.9862;var endOffsetX=nx*strokewidth*swFactor;var endOffsetY=ny*strokewidth*swFactor;nx=nx*(size+strokewidth);ny=ny*(size+strokewidth);pe.x-=endOffsetX+nx/2;pe.y-=endOffsetY+ny/2;var tk=((type==mxConstants.ARROW_DIAMOND)?2:3.4);if(isVml){node.path='m'+Math.round(pe.x+nx/2)+' '+Math.round(pe.y+ny/2)+' l'+Math.round(pe.x-ny/tk)+' '+Math.round(pe.y+nx/tk)+' '+Math.round(pe.x-nx/2)+' '+Math.round(pe.y-ny/2)+' '+Math.round(pe.x+ny/tk)+' '+Math.round(pe.y-nx/tk)+' x e';node.setAttribute('strokeweight',(strokewidth*scale)+'px');}else{node.setAttribute('d','M '+(pe.x+nx/2)+' '+(pe.y+ny/2)+' L '+(pe.x-ny/tk)+' '+(pe.y+nx/tk)+' L '+(pe.x-nx/2)+' '+(pe.y-ny/2)+' L '+(pe.x+ny/tk)+' '+(pe.y-nx/tk)+' z');node.setAttribute('stroke-width',strokewidth*scale);}return new mxPoint(-endOffsetX-nx,-endOffsetY-ny);};mxMarker.markers[mxConstants.ARROW_DIAMOND]=tmp_diamond;mxMarker.markers[mxConstants.ARROW_DIAMOND_THIN]=tmp_diamond;}());function mxActor(bounds,fill,stroke,strokewidth){this.bounds=bounds;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxActor.prototype=new mxShape();mxActor.prototype.constructor=mxActor;mxActor.prototype.mixedModeHtml=false;mxActor.prototype.preferModeHtml=false;mxActor.prototype.createVml=function(){var node=document.createElement('v:shape');node.style.position='absolute';this.configureVmlShape(node);return node;};mxActor.prototype.redrawVml=function(){this.updateVmlShape(this.node);this.node.path=this.createPath();};mxActor.prototype.createSvg=function(){return this.createSvgGroup('path');};mxActor.prototype.redrawSvg=function(){var strokeWidth=Math.round(Math.max(1,this.strokewidth*this.scale));this.innerNode.setAttribute('stroke-width',strokeWidth);this.innerNode.setAttribute('stroke-linejoin','round');if(this.crisp){this.innerNode.setAttribute('shape-rendering','crispEdges');}else{this.innerNode.removeAttribute('shape-rendering');}var d=this.createPath();if(d.length>0){this.innerNode.setAttribute('d',d);if(this.shadowNode!=null){this.shadowNode.setAttribute('transform',this.getSvgShadowTransform());this.shadowNode.setAttribute('stroke-width',strokeWidth);this.shadowNode.setAttribute('d',d);}}else{this.innerNode.removeAttribute('d');if(this.shadowNode!=null){this.shadowNode.removeAttribute('d');}}if(this.isDashed){var phase=Math.max(1,Math.round(3*this.scale*this.strokewidth));this.innerNode.setAttribute('stroke-dasharray',phase+' '+phase);}};mxActor.prototype.redrawPath=function(path,x,y,w,h){var width=w/3;path.moveTo(0,h);path.curveTo(0,3*h/5,0,2*h/5,w/2,2*h/5);path.curveTo(w/2-width,2*h/5,w/2-width,0,w/2,0);path.curveTo(w/2+width,0,w/2+width,2*h/5,w/2,2*h/5);path.curveTo(w,2*h/5,w,3*h/5,w,h);path.close();};function mxCloud(bounds,fill,stroke,strokewidth){this.bounds=bounds;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxCloud.prototype=new mxActor();mxCloud.prototype.constructor=mxActor;mxCloud.prototype.redrawPath=function(path,x,y,w,h){path.moveTo(0.25*w,0.25*h);path.curveTo(0.05*w,0.25*h,0,0.5*h,0.16*w,0.55*h);path.curveTo(0,0.66*h,0.18*w,0.9*h,0.31*w,0.8*h);path.curveTo(0.4*w,h,0.7*w,h,0.8*w,0.8*h);path.curveTo(w,0.8*h,w,0.6*h,0.875*w,0.5*h);path.curveTo(w,0.3*h,0.8*w,0.1*h,0.625*w,0.2*h);path.curveTo(0.5*w,0.05*h,0.3*w,0.05*h,0.25*w,0.25*h);path.close();};function mxRectangleShape(bounds,fill,stroke,strokewidth){this.bounds=bounds;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxRectangleShape.prototype=new mxShape();mxRectangleShape.prototype.constructor=mxRectangleShape;mxRectangleShape.prototype.createHtml=function(){var node=document.createElement('DIV');this.configureHtmlShape(node);return node;};mxRectangleShape.prototype.createVml=function(){var name=(this.isRounded)?'v:roundrect':'v:rect';var node=document.createElement(name);this.configureVmlShape(node);return node;};mxRectangleShape.prototype.createSvg=function(){return this.createSvgGroup('rect');};function mxEllipse(bounds,fill,stroke,strokewidth){this.bounds=bounds;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxEllipse.prototype=new mxShape();mxEllipse.prototype.constructor=mxEllipse;mxEllipse.prototype.mixedModeHtml=false;mxEllipse.prototype.preferModeHtml=false;mxEllipse.prototype.createVml=function(){var node=document.createElement('v:arc');node.startangle='0';node.endangle='360';this.configureVmlShape(node);return node;};mxEllipse.prototype.createSvg=function(){return this.createSvgGroup('ellipse');};mxEllipse.prototype.redrawSvg=function(){if(this.crisp){this.innerNode.setAttribute('shape-rendering','crispEdges');}else{this.innerNode.removeAttribute('shape-rendering');}this.updateSvgNode(this.innerNode);this.updateSvgNode(this.shadowNode);};mxEllipse.prototype.updateSvgNode=function(node){if(node!=null){var strokeWidth=Math.round(Math.max(1,this.strokewidth*this.scale));node.setAttribute('stroke-width',strokeWidth);node.setAttribute('cx',this.bounds.x+this.bounds.width/2);node.setAttribute('cy',this.bounds.y+this.bounds.height/2);node.setAttribute('rx',this.bounds.width/2);node.setAttribute('ry',this.bounds.height/2);if(this.shadowNode!=null){this.shadowNode.setAttribute('transform',this.getSvgShadowTransform());}if(this.isDashed){var phase=Math.max(1,Math.round(3*this.scale*this.strokewidth));node.setAttribute('stroke-dasharray',phase+' '+phase);}}};function mxDoubleEllipse(bounds,fill,stroke,strokewidth){this.bounds=bounds;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxDoubleEllipse.prototype=new mxShape();mxDoubleEllipse.prototype.constructor=mxDoubleEllipse;mxDoubleEllipse.prototype.vmlNodes=mxDoubleEllipse.prototype.vmlNodes.concat(['background','foreground']);mxDoubleEllipse.prototype.mixedModeHtml=false;mxDoubleEllipse.prototype.preferModeHtml=false;mxDoubleEllipse.prototype.createVml=function(){var node=document.createElement('v:group');this.background=document.createElement('v:arc');this.background.startangle='0';this.background.endangle='360';this.configureVmlShape(this.background);node.appendChild(this.background);this.label=this.background;this.isShadow=false;this.fill=null;this.foreground=document.createElement('v:oval');this.configureVmlShape(this.foreground);node.appendChild(this.foreground);this.stroke=null;this.configureVmlShape(node);return node;};mxDoubleEllipse.prototype.redrawVml=function(){this.updateVmlShape(this.node);this.updateVmlShape(this.background);this.updateVmlShape(this.foreground);var s=this.strokewidth*this.scale;var inset=3+s;var w=Math.round(this.bounds.width);var h=Math.round(this.bounds.height);this.foreground.style.top=inset+'px';this.foreground.style.left=inset+'px';this.foreground.style.width=Math.max(0,w-2*inset)+'px';this.foreground.style.height=Math.max(0,h-2*inset)+'px';};mxDoubleEllipse.prototype.createSvg=function(){var g=this.createSvgGroup('ellipse');this.foreground=document.createElementNS(mxConstants.NS_SVG,'ellipse');if(this.stroke!=null){this.foreground.setAttribute('stroke',this.stroke);}else{this.foreground.setAttribute('stroke','none');}this.foreground.setAttribute('fill','none');g.appendChild(this.foreground);return g;};mxDoubleEllipse.prototype.redrawSvg=function(){var s=this.strokewidth*this.scale;if(this.crisp){this.innerNode.setAttribute('shape-rendering','crispEdges');this.foreground.setAttribute('shape-rendering','crispEdges');}else{this.innerNode.removeAttribute('shape-rendering');this.foreground.removeAttribute('shape-rendering');}this.updateSvgNode(this.innerNode);this.updateSvgNode(this.shadowNode);this.updateSvgNode(this.foreground,3*this.scale+s);if(this.isDashed){var phase=Math.max(1,Math.round(3*this.scale*this.strokewidth));this.innerNode.setAttribute('stroke-dasharray',phase+' '+phase);}};mxDoubleEllipse.prototype.updateSvgNode=function(node,inset){inset=(inset!=null)?inset:0;if(node!=null){var strokeWidth=Math.round(Math.max(1,this.strokewidth*this.scale));node.setAttribute('stroke-width',strokeWidth);node.setAttribute('cx',this.bounds.x+this.bounds.width/2);node.setAttribute('cy',this.bounds.y+this.bounds.height/2);node.setAttribute('rx',Math.max(0,this.bounds.width/2-inset));node.setAttribute('ry',Math.max(0,this.bounds.height/2-inset));if(this.shadowNode!=null){this.shadowNode.setAttribute('transform',this.getSvgShadowTransform());}}};function mxRhombus(bounds,fill,stroke,strokewidth){this.bounds=bounds;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxRhombus.prototype=new mxShape();mxRhombus.prototype.constructor=mxRhombus;mxRhombus.prototype.mixedModeHtml=false;mxRhombus.prototype.preferModeHtml=false;mxRhombus.prototype.createHtml=function(){var node=document.createElement('DIV');this.configureHtmlShape(node);return node;};mxRhombus.prototype.createVml=function(){var node=document.createElement('v:shape');this.configureVmlShape(node);return node;};mxRhombus.prototype.createSvg=function(){return this.createSvgGroup('path');};mxRhombus.prototype.redrawVml=function(){this.updateVmlShape(this.node);var x=0;var y=0;var w=Math.round(this.bounds.width);var h=Math.round(this.bounds.height);this.node.path='m '+Math.round(x+w/2)+' '+y+' l '+(x+w)+' '+Math.round(y+h/2)+' l '+Math.round(x+w/2)+' '+(y+h)+' l '+x+' '+Math.round(y+h/2)+' x e';};mxRhombus.prototype.redrawHtml=function(){this.updateHtmlShape(this.node);};mxRhombus.prototype.redrawSvg=function(){this.updateSvgNode(this.innerNode);if(this.shadowNode!=null){this.updateSvgNode(this.shadowNode);}};mxRhombus.prototype.updateSvgNode=function(node){var strokeWidth=Math.round(Math.max(1,this.strokewidth*this.scale));node.setAttribute('stroke-width',strokeWidth);var x=this.bounds.x;var y=this.bounds.y;var w=this.bounds.width;var h=this.bounds.height;var d='M '+Math.round(x+w/2)+' '+Math.round(y)+' L '+Math.round(x+w)+' '+Math.round(y+h/2)+' L '+Math.round(x+w/2)+' '+Math.round(y+h)+' L '+Math.round(x)+' '+Math.round(y+h/2)+' Z ';node.setAttribute('d',d);this.updateSvgTransform(node,node==this.shadowNode);if(this.isDashed){var phase=Math.max(1,Math.round(3*this.scale*this.strokewidth));node.setAttribute('stroke-dasharray',phase+' '+phase);}};function mxPolyline(points,stroke,strokewidth){this.points=points;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxPolyline.prototype=new mxShape();mxPolyline.prototype.constructor=mxPolyline;mxPolyline.prototype.create=function(){var node=null;if(this.dialect==mxConstants.DIALECT_SVG){node=this.createSvg();}else if(this.dialect==mxConstants.DIALECT_STRICTHTML||(this.dialect==mxConstants.DIALECT_PREFERHTML&&this.points!=null&&this.points.length>0)){node=document.createElement('DIV');this.configureHtmlShape(node);node.style.borderStyle='';node.style.background='';}else{node=document.createElement('v:shape');this.configureVmlShape(node);var strokeNode=document.createElement('v:stroke');if(this.opacity!=null){strokeNode.opacity=this.opacity+'%';}node.appendChild(strokeNode);}return node;};mxPolyline.prototype.redrawVml=function(){if(this.points!=null&&this.points.length>0&&this.points[0]!=null){this.bounds=new mxRectangle(this.points[0].x,this.points[0].y,0,0);for(var i=1;i<this.points.length;i++){this.bounds.add(new mxRectangle(this.points[i].x,this.points[i].y,0,0));}}mxShape.prototype.redrawVml.apply(this,arguments);};mxPolyline.prototype.createSvg=function(){var g=this.createSvgGroup('path');this.pipe=this.createSvgPipe();g.appendChild(this.pipe);return g;};mxPolyline.prototype.redrawSvg=function(){this.updateSvgShape(this.innerNode);var d=this.innerNode.getAttribute('d');if(d!=null){this.pipe.setAttribute('d',d);var strokeWidth=Math.round(Math.max(1,this.strokewidth*this.scale));this.pipe.setAttribute('stroke-width',strokeWidth+mxShape.prototype.SVG_STROKE_TOLERANCE);}};function mxArrow(points,fill,stroke,strokewidth,arrowWidth,spacing,endSize){this.points=points;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;this.arrowWidth=(arrowWidth!=null)?arrowWidth:mxConstants.ARROW_WIDTH;this.spacing=(spacing!=null)?spacing:mxConstants.ARROW_SPACING;this.endSize=(endSize!=null)?endSize:mxConstants.ARROW_SIZE;};mxArrow.prototype=new mxActor();mxArrow.prototype.constructor=mxArrow;mxArrow.prototype.addPipe=false;mxArrow.prototype.enableFill=true;mxArrow.prototype.configureTransparentBackground=function(node){};mxArrow.prototype.createVml=function(){if(!this.enableFill){this.fill=null;}return mxActor.prototype.createVml.apply(this,arguments);};mxArrow.prototype.createSvg=function(){if(!this.enableFill){this.fill=null;}var g=mxActor.prototype.createSvg.apply(this,arguments);if(this.addPipe){this.pipe=this.createSvgPipe();g.appendChild(this.pipe);}return g;};mxArrow.prototype.reconfigure=function(){if(!this.enableFill){this.fill=null;}mxActor.prototype.reconfigure.apply(this,arguments);};mxArrow.prototype.redrawSvg=function(){mxActor.prototype.redrawSvg.apply(this,arguments);if(this.pipe!=null){var d=this.innerNode.getAttribute('d');if(d!=null){this.pipe.setAttribute('d',this.innerNode.getAttribute('d'));var strokeWidth=Math.round(this.strokewidth*this.scale);this.pipe.setAttribute('stroke-width',strokeWidth+mxShape.prototype.SVG_STROKE_TOLERANCE);}}};mxArrow.prototype.redrawPath=function(path,x,y,w,h){path.translate.x-=x;path.translate.y-=y;var spacing=this.spacing*this.scale;var width=this.arrowWidth*this.scale;var arrow=this.endSize*this.scale;var p0=this.points[0];var pe=this.points[this.points.length-1];var dx=pe.x-p0.x;var dy=pe.y-p0.y;var dist=Math.sqrt(dx*dx+dy*dy);var length=dist-2*spacing-arrow;var nx=dx/dist;var ny=dy/dist;var basex=length*nx;var basey=length*ny;var floorx=width*ny/3;var floory=-width*nx/3;var p0x=p0.x-floorx/2+spacing*nx;var p0y=p0.y-floory/2+spacing*ny;var p1x=p0x+floorx;var p1y=p0y+floory;var p2x=p1x+basex;var p2y=p1y+basey;var p3x=p2x+floorx;var p3y=p2y+floory;var p5x=p3x-3*floorx;var p5y=p3y-3*floory;path.moveTo(p0x,p0y);path.lineTo(p1x,p1y);path.lineTo(p2x,p2y);path.lineTo(p3x,p3y);path.lineTo(pe.x-spacing*nx,pe.y-spacing*ny);path.lineTo(p5x,p5y);path.lineTo(p5x+floorx,p5y+floory);path.lineTo(p0x,p0y);path.close();};function mxText(value,bounds,align,valign,color,family,size,fontStyle,spacing,spacingTop,spacingRight,spacingBottom,spacingLeft,horizontal,background,border,wrap,clipped,overflow,labelPadding){this.value=value;this.bounds=bounds;this.color=(color!=null)?color:'black';this.align=(align!=null)?align:'';this.valign=(valign!=null)?valign:'';this.family=(family!=null)?family:mxConstants.DEFAULT_FONTFAMILY;this.size=(size!=null)?size:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=(fontStyle!=null)?fontStyle:0;this.spacing=parseInt(spacing||2);this.spacingTop=this.spacing+parseInt(spacingTop||0);this.spacingRight=this.spacing+parseInt(spacingRight||0);this.spacingBottom=this.spacing+parseInt(spacingBottom||0);this.spacingLeft=this.spacing+parseInt(spacingLeft||0);this.horizontal=(horizontal!=null)?horizontal:true;this.background=background;this.border=border;this.wrap=(wrap!=null)?wrap:false;this.clipped=(clipped!=null)?clipped:false;this.overflow=(overflow!=null)?overflow:'visible';this.labelPadding=(labelPadding!=null)?labelPadding:0;};mxText.prototype=new mxShape();mxText.prototype.constructor=mxText;mxText.prototype.replaceLinefeeds=true;mxText.prototype.ieVerticalFilter='progid:DXImageTransform.Microsoft.BasicImage(rotation=3)';mxText.prototype.verticalTextDegree=-90;mxText.prototype.forceIgnoreStringSize=false;mxText.prototype.isStyleSet=function(style){return(this.fontStyle&style)==style;};mxText.prototype.create=function(container){var node=null;if(this.dialect==mxConstants.DIALECT_SVG){node=this.createSvg();}else if(this.dialect==mxConstants.DIALECT_STRICTHTML||this.dialect==mxConstants.DIALECT_PREFERHTML||!mxUtils.isVml(container)){if(mxClient.IS_SVG&&!mxClient.NO_FO){node=this.createForeignObject();}else{node=this.createHtml();}}else{node=this.createVml();}return node;};mxText.prototype.createForeignObject=function(){var node=document.createElementNS(mxConstants.NS_SVG,'g');var fo=document.createElementNS(mxConstants.NS_SVG,'foreignObject');fo.setAttribute('pointer-events','fill');if(this.overflow=='hidden'){fo.style.overflow='hidden';}else{fo.style.overflow='visible';}var body=document.createElementNS(mxConstants.NS_XHTML,'body');body.setAttribute('xmlns','http://www.w3.org/1999/xhtml');body.style.margin='0px';body.style.height='100%';fo.appendChild(body);node.appendChild(fo);return node;};mxText.prototype.createHtml=function(){var table=this.createHtmlTable();table.style.position='absolute';return table;};mxText.prototype.createVml=function(){return document.createElement('v:textbox');};mxText.prototype.redrawHtml=function(){this.redrawVml();};mxText.prototype.getOffset=function(outerWidth,outerHeight,actualWidth,actualHeight,horizontal){horizontal=(horizontal!=null)?horizontal:this.horizontal;var tmpalign=(horizontal)?this.align:this.valign;var tmpvalign=(horizontal)?this.valign:this.align;var dx=actualWidth-outerWidth;var dy=actualHeight-outerHeight;if(tmpalign==mxConstants.ALIGN_CENTER||tmpalign==mxConstants.ALIGN_MIDDLE){dx=Math.round(dx/2);}else if(tmpalign==mxConstants.ALIGN_LEFT||tmpalign===mxConstants.ALIGN_TOP){dx=(horizontal)?0:(actualWidth-actualHeight)/2;}else if(!horizontal) {dx=(actualWidth+actualHeight)/2-outerWidth;}if(tmpvalign==mxConstants.ALIGN_MIDDLE||tmpvalign==mxConstants.ALIGN_CENTER){dy=Math.round(dy/2);}else if(tmpvalign==mxConstants.ALIGN_TOP||tmpvalign==mxConstants.ALIGN_LEFT){dy=(horizontal)?0:(actualHeight+actualWidth)/2-outerHeight;}else if(!horizontal) {dy=(actualHeight-actualWidth)/2;}return new mxPoint(dx,dy);};mxText.prototype.getSpacing=function(horizontal){horizontal=(horizontal!=null)?horizontal:this.horizontal;var dx=0;var dy=0;if(this.align==mxConstants.ALIGN_CENTER){dx=(this.spacingLeft-this.spacingRight)/2;}else if(this.align==mxConstants.ALIGN_RIGHT){dx=-this.spacingRight;}else{dx=this.spacingLeft;}if(this.valign==mxConstants.ALIGN_MIDDLE){dy=(this.spacingTop-this.spacingBottom)/2;}else if(this.valign==mxConstants.ALIGN_BOTTOM){dy=-this.spacingBottom;}else{dy=this.spacingTop;}return(horizontal)?new mxPoint(dx,dy):new mxPoint(dy,dx);};mxText.prototype.createHtmlTable=function(){var table=document.createElement('table');table.style.borderCollapse='collapse';var tbody=document.createElement('tbody');var tr=document.createElement('tr');var td=document.createElement('td');if(document.documentMode>=9){td.style.height='100%';}tr.appendChild(td);tbody.appendChild(tr);table.appendChild(tbody);return table;};mxText.prototype.updateHtmlTable=function(table,scale){scale=(scale!=null)?scale:1;var td=table.firstChild.firstChild.firstChild;if(this.wrap){table.style.width='';}if(mxUtils.isNode(this.value)){if(td.firstChild!=this.value){if(td.firstChild!=null){td.removeChild(td.firstChild);}td.appendChild(this.value);}}else{if(this.lastValue!=this.value){td.innerHTML=(this.replaceLinefeeds)?this.value.replace(/\n/g,'<br/>'):this.value;this.lastValue=this.value;}}var fontSize=Math.round(this.size*scale);if(fontSize<=0){table.style.visibility='hidden';}else{table.style.visibility='';}table.style.fontSize=fontSize+'px';table.style.color=this.color;table.style.fontFamily=this.family;if(this.isStyleSet(mxConstants.FONT_BOLD)){table.style.fontWeight='bold';}else{table.style.fontWeight='normal';}if(this.isStyleSet(mxConstants.FONT_ITALIC)){table.style.fontStyle='italic';}else{table.style.fontStyle='';}if(this.isStyleSet(mxConstants.FONT_UNDERLINE)){table.style.textDecoration='underline';}else{table.style.textDecoration='';}if(mxClient.IS_IE){if(this.isStyleSet(mxConstants.FONT_SHADOW)){td.style.filter='Shadow(Color=#666666,'+'Direction=135,Strength=%)';}else{td.style.removeAttribute('filter');}}td.style.textAlign=(this.align==mxConstants.ALIGN_RIGHT)?'right':((this.align==mxConstants.ALIGN_CENTER)?'center':'left');td.style.verticalAlign=(this.valign==mxConstants.ALIGN_BOTTOM)?'bottom':((this.valign==mxConstants.ALIGN_MIDDLE)?'middle':'top');if(this.value.length>0&&this.background!=null){td.style.background=this.background;}else{td.style.background='';}td.style.padding=this.labelPadding+'px';if(this.value.length>0&&this.border!=null){table.style.borderColor=this.border;table.style.borderWidth='1px';table.style.borderStyle='solid';}else{table.style.borderStyle='none';}};mxText.prototype.getTableSize=function(table){return new mxRectangle(0,0,table.offsetWidth,table.offsetHeight);};mxText.prototype.updateTableWidth=function(table){var td=table.firstChild.firstChild.firstChild;if(this.wrap&&this.bounds.width>0&&this.dialect!=mxConstants.DIALECT_SVG){td.style.whiteSpace='nowrap';var size=this.getTableSize(table);var space=Math.min(size.width,((this.horizontal||mxUtils.isVml(this.node))?this.bounds.width:this.bounds.height)/this.scale);if(mxClient.IS_OP){space*=this.scale;}table.style.width=Math.round(space)+'px';td.style.whiteSpace='normal';}else{table.style.width='';}if(!this.wrap){td.style.whiteSpace='nowrap';}else{td.style.whiteSpace='normal';}};mxText.prototype.redrawVml=function(){if(this.node.nodeName=='g'){this.redrawForeignObject();}else if(mxUtils.isVml(this.node)){this.redrawTextbox();}else{this.redrawHtmlTable();}};mxText.prototype.redrawTextbox=function(){var textbox=this.node;if(textbox.firstChild==null){textbox.appendChild(this.createHtmlTable());}var table=textbox.firstChild;this.updateHtmlTable(table);this.updateTableWidth(table);if(this.opacity!=null){mxUtils.setOpacity(table,this.opacity);}table.style.filter='';textbox.inset='0px,0px,0px,0px';if(this.overflow!='fill'){var size=this.getTableSize(table);var w=size.width*this.scale;var h=size.height*this.scale;var offset=this.getOffset(this.bounds.width,this.bounds.height,w,h);if(!this.horizontal){table.style.filter=this.ieVerticalFilter;}var spacing=this.getSpacing();var x=this.bounds.x-offset.x+spacing.x*this.scale;var y=this.bounds.y-offset.y+spacing.y*this.scale;var x0=this.bounds.x;var y0=this.bounds.y;var ow=this.bounds.width;var oh=this.bounds.height;if(this.horizontal){var tx=Math.round(x-x0);var ty=Math.round(y-y0);var r=Math.min(0,Math.round(x0+ow-x-w-1));var b=Math.min(0,Math.round(y0+oh-y-h-1));textbox.inset=tx+'px,'+ty+'px,'+r+'px,'+b+'px';}else{var t=0;var l=0;var r=0;var b=0;if(this.align==mxConstants.ALIGN_CENTER){t=(oh-w)/2;b=t;}else if(this.align==mxConstants.ALIGN_LEFT){t=oh-w;}else{b=oh-w;}if(this.valign==mxConstants.ALIGN_MIDDLE){l=(ow-h)/2;r=l;}else if(this.valign==mxConstants.ALIGN_BOTTOM){l=ow-h;}else{r=ow-h;}textbox.inset=l+'px,'+t+'px,'+r+'px,'+b+'px';}textbox.style.zoom=this.scale;if(this.clipped&&this.bounds.width>0&&this.bounds.height>0){this.boundingBox=this.bounds.clone();var dx=Math.round(x0-x);var dy=Math.round(y0-y);textbox.style.clip='rect('+(dy/this.scale)+' '+((dx+this.bounds.width)/this.scale)+' '+((dy+this.bounds.height)/this.scale)+' '+(dx/this.scale)+')';}else{this.boundingBox=new mxRectangle(x,y,w,h);}}else{this.boundingBox=this.bounds.clone();}};mxText.prototype.redrawHtmlTable=function(){if(isNaN(this.bounds.x)||isNaN(this.bounds.y)||isNaN(this.bounds.width)||isNaN(this.bounds.height)){return;}var table=this.node;var td=table.firstChild.firstChild.firstChild;var oldBrowser=false;var fallbackScale=1;if(mxClient.IS_IE){table.style.removeAttribute('filter');}else if(mxClient.IS_SF||mxClient.IS_GC){table.style.WebkitTransform='';}else if(mxClient.IS_MT){table.style.MozTransform='';td.style.MozTransform='';}else{if(mxClient.IS_OT){table.style.OTransform='';}fallbackScale=this.scale;oldBrowser=true;}td.style.zoom='';this.updateHtmlTable(table,fallbackScale);this.updateTableWidth(table);if(this.opacity!=null){mxUtils.setOpacity(table,this.opacity);}table.style.left='';table.style.top='';table.style.height='';var currentZoom=parseFloat(td.style.zoom)||1;var w=this.bounds.width;var h=this.bounds.height;var ignoreStringSize=this.forceIgnoreStringSize||this.overflow=='fill'||(this.align==mxConstants.ALIGN_LEFT&&this.background==null&&this.border==null);if(!ignoreStringSize){var size=this.getTableSize(table);w=size.width/currentZoom;h=size.height/currentZoom;}var offset=this.getOffset(this.bounds.width/this.scale,this.bounds.height/this.scale,w,h,oldBrowser||this.horizontal);var spacing=this.getSpacing(oldBrowser||this.horizontal);var x=this.bounds.x/this.scale-offset.x+spacing.x;var y=this.bounds.y/this.scale-offset.y+spacing.y;var s=this.scale;var s2=1;var shiftX=0;var shiftY=0;if(!this.horizontal){if(mxClient.IS_IE&&mxClient.IS_SVG){table.style.msTransform='rotate('+this.verticalTextDegree+'deg)';}else if(mxClient.IS_IE){table.style.filter=this.ieVerticalFilter;shiftX=(w-h)/2;shiftY=-shiftX;}else if(mxClient.IS_SF||mxClient.IS_GC){table.style.WebkitTransform='rotate('+this.verticalTextDegree+'deg)';}else if(mxClient.IS_OT){table.style.OTransform='rotate('+this.verticalTextDegree+'deg)';}else if(mxClient.IS_MT){table.style.MozTransform='rotate('+this.verticalTextDegree+'deg)';td.style.MozTransform='rotate(0deg)';s2=1/this.scale;s=1;}}var correction=true;if(mxClient.IS_MT||oldBrowser){if(mxClient.IS_MT){table.style.MozTransform+=' scale('+this.scale+')';s2=1/this.scale;}else if(mxClient.IS_OT){td.style.OTransform='scale('+this.scale+')';table.style.borderWidth=Math.round(this.scale*parseInt(table.style.borderWidth))+'px';}}else if(!oldBrowser){if(document.documentMode>=9){td.style.msTransform='scale('+this.scale+')';}else if(mxClient.IS_SF||mxClient.IS_GC){td.style.WebkitTransform='scale('+this.scale+')';}else{td.style.zoom=this.scale;if(table.style.borderWidth!=''&&document.documentMode!=8){table.style.borderWidth=Math.round(this.scale*parseInt(table.style.borderWidth))+'px';}if(document.documentMode==8||!mxClient.IS_IE){s=1;}correction=false;}}if(correction){shiftX=(this.scale-1)*w/(2*this.scale);shiftY=(this.scale-1)*h/(2*this.scale);s=1;}if(this.overflow!='fill'){var rect=new mxRectangle(Math.round((x+shiftX)*this.scale),Math.round((y+shiftY)*this.scale),Math.round(w*s),Math.round(h*s));table.style.left=rect.x+'px';table.style.top=rect.y+'px';table.style.width=rect.width+'px';table.style.height=rect.height+'px';if((this.background!=null||this.border!=null)&&document.documentMode>=8){var html=(this.replaceLinefeeds)?this.value.replace(/\n/g,'<br/>'):this.value;td.innerHTML='<div style="padding:'+this.labelPadding+'px;background:'+td.style.background+';border:'+table.style.border+'">'+html+'</div>';td.style.padding='0px';td.style.background='';table.style.border='';}if(this.clipped&&this.bounds.width>0&&this.bounds.height>0){this.boundingBox=this.bounds.clone();if(this.horizontal||(oldBrowser&&!mxClient.IS_OT)){var dx=Math.max(0,offset.x*s);var dy=Math.max(0,offset.y*s);table.style.clip='rect('+(dy)+'px '+(dx+this.bounds.width*s2)+'px '+(dy+this.bounds.height*s2)+'px '+(dx)+'px)';}else{if(mxClient.IS_IE){var uw=this.bounds.width;var uh=this.bounds.height;var dx=0;var dy=0;if(this.align==mxConstants.ALIGN_LEFT){dx=Math.max(0,w-uh/this.scale)*this.scale;}else if(this.align==mxConstants.ALIGN_CENTER){dx=Math.max(0,w-uh/this.scale)*this.scale/2;}if(this.valign==mxConstants.ALIGN_BOTTOM){dy=Math.max(0,h-uw/this.scale)*this.scale;}else if(this.valign==mxConstants.ALIGN_MIDDLE){dy=Math.max(0,h-uw/this.scale)*this.scale/2;}table.style.clip='rect('+(dx)+'px '+(dy+uw-1)+'px '+(dx+uh-1)+'px '+(dy)+'px)';}else{var uw=this.bounds.width/this.scale;var uh=this.bounds.height/this.scale;if(mxClient.IS_OT){uw=this.bounds.width;uh=this.bounds.height;}var dx=0;var dy=0;if(this.align==mxConstants.ALIGN_RIGHT){dx=Math.max(0,w-uh);}else if(this.align==mxConstants.ALIGN_CENTER){dx=Math.max(0,w-uh)/2;}if(this.valign==mxConstants.ALIGN_BOTTOM){dy=Math.max(0,h-uw);}else if(this.valign==mxConstants.ALIGN_MIDDLE){dy=Math.max(0,h-uw)/2;}if(mxClient.IS_GC||mxClient.IS_SF){dx*=this.scale;dy*=this.scale;uw*=this.scale;uh*=this.scale;}table.style.clip='rect('+(dy)+' '+(dx+uh)+' '+(dy+uw)+' '+(dx)+')';}}}else{this.boundingBox=rect;}}else{this.boundingBox=this.bounds.clone();if(document.documentMode>=9||mxClient.IS_SVG){table.style.left=Math.round(this.bounds.x+this.scale/2+shiftX)+'px';table.style.top=Math.round(this.bounds.y+this.scale/2+shiftY)+'px';table.style.width=Math.round((this.bounds.width-this.scale)/this.scale)+'px';table.style.height=Math.round((this.bounds.height-this.scale)/this.scale)+'px';}else{table.style.left=Math.round(this.bounds.x+this.scale/2)+'px';table.style.top=Math.round(this.bounds.y+this.scale/2)+'px';table.style.width=Math.round(this.bounds.width-this.scale)+'px';table.style.height=Math.round(this.bounds.height-this.scale)+'px';}}};mxText.prototype.getVerticalOffset=function(offset){return new mxPoint(offset.y,-offset.x);};mxText.prototype.redrawForeignObject=function(){var group=this.node;var fo=group.firstChild;while(fo==this.backgroundNode){fo=fo.nextSibling;}var body=fo.firstChild;if(body.firstChild==null){body.appendChild(this.createHtmlTable());}var table=body.firstChild;this.updateHtmlTable(table);if(this.opacity!=null){fo.setAttribute('opacity',this.opacity/100);}if(mxClient.IS_SF){table.style.borderStyle='none';table.firstChild.firstChild.firstChild.style.background='';if(this.backgroundNode==null&&(this.background!=null||this.border!=null)){this.backgroundNode=document.createElementNS(mxConstants.NS_SVG,'rect');group.insertBefore(this.backgroundNode,group.firstChild);}else if(this.backgroundNode!=null&&this.background==null&&this.border==null){this.backgroundNode.parentNode.removeChild(this.backgroundNode);this.backgroundNode=null;}if(this.backgroundNode!=null){if(this.background!=null){this.backgroundNode.setAttribute('fill',this.background);}else{this.backgroundNode.setAttribute('fill','none');}if(this.border!=null){this.backgroundNode.setAttribute('stroke',this.border);}else{this.backgroundNode.setAttribute('stroke','none');}}}var tr='';if(this.overflow!='fill'){fo.removeAttribute('width');fo.removeAttribute('height');fo.style.width='';fo.style.height='';fo.style.clip='';if(this.wrap||(!mxClient.IS_GC&&!mxClient.IS_SF)){document.body.appendChild(table);}this.updateTableWidth(table);var size=this.getTableSize(table);var w=size.width;var h=size.height;if(table.parentNode!=body){body.appendChild(table);}var spacing=this.getSpacing();var x=this.bounds.x/this.scale+spacing.x;var y=this.bounds.y/this.scale+spacing.y;var uw=this.bounds.width/this.scale;var uh=this.bounds.height/this.scale;var offset=this.getOffset(uw,uh,w,h);if(this.horizontal){x-=offset.x;y-=offset.y;tr='scale('+this.scale+')';}else{var x0=x+w/2;var y0=y+h/2;tr='scale('+this.scale+') rotate('+this.verticalTextDegree+' '+x0+' '+y0+')';var tmp=this.getVerticalOffset(offset);x+=tmp.x;y+=tmp.y;}tr+=' translate('+x+' '+y+')';if(this.backgroundNode!=null){this.backgroundNode.setAttribute('width',w);this.backgroundNode.setAttribute('height',h);}fo.setAttribute('width',w);fo.setAttribute('height',h);if(this.clipped&&this.bounds.width>0&&this.bounds.height>0){this.boundingBox=this.bounds.clone();var dx=Math.max(0,offset.x);var dy=Math.max(0,offset.y);if(this.horizontal){fo.style.clip='rect('+dy+'px,'+(dx+uw)+'px,'+(dy+uh)+'px,'+(dx)+'px)';}else{var dx=0;var dy=0;if(this.align==mxConstants.ALIGN_RIGHT){dx=Math.max(0,w-uh);}else if(this.align==mxConstants.ALIGN_CENTER){dx=Math.max(0,w-uh)/2;}if(this.valign==mxConstants.ALIGN_BOTTOM){dy=Math.max(0,h-uw);}else if(this.valign==mxConstants.ALIGN_MIDDLE){dy=Math.max(0,h-uw)/2;}fo.style.clip='rect('+(dy)+'px,'+(dx+uh)+'px,'+(dy+uw)+'px,'+(dx)+'px)';}if(this.backgroundNode!=null){x=this.bounds.x/this.scale;y=this.bounds.y/this.scale;if(!this.horizontal){x+=(h+w)/2-uh;y+=(h-w)/2;var tmp=uw;uw=uh;uh=tmp;}if(!mxClient.IS_GC){var clip=this.getSvgClip(this.node.ownerSVGElement,x,y,uw,uh);if(clip!=this.clip){this.releaseSvgClip();this.clip=clip;clip.refCount++;}this.backgroundNode.setAttribute('clip-path','url(#'+clip.getAttribute('id')+')');}}}else{this.releaseSvgClip();if(this.backgroundNode!=null){this.backgroundNode.removeAttribute('clip-path');}if(this.horizontal){this.boundingBox=new mxRectangle(x*this.scale,y*this.scale,w*this.scale,h*this.scale);}else{this.boundingBox=new mxRectangle(x*this.scale,y*this.scale,h*this.scale,w*this.scale);}}}else{this.boundingBox=this.bounds.clone();var s=this.scale;var w=this.bounds.width/s;var h=this.bounds.height/s;fo.setAttribute('width',w);fo.setAttribute('height',h);table.style.width=w+'px';table.style.height=h+'px';if(this.backgroundNode!=null){this.backgroundNode.setAttribute('width',table.clientWidth);this.backgroundNode.setAttribute('height',table.offsetHeight);}tr='scale('+s+') translate('+(this.bounds.x/s)+' '+(this.bounds.y/s)+')';if(!this.wrap){var td=table.firstChild.firstChild.firstChild;td.style.whiteSpace='nowrap';}}group.setAttribute('transform',tr);};mxText.prototype.createSvg=function(){var node=document.createElementNS(mxConstants.NS_SVG,'g');var uline=this.isStyleSet(mxConstants.FONT_UNDERLINE)?'underline':'none';var weight=this.isStyleSet(mxConstants.FONT_BOLD)?'bold':'normal';var s=this.isStyleSet(mxConstants.FONT_ITALIC)?'italic':null;node.setAttribute('text-decoration',uline);node.setAttribute('font-family',this.family);node.setAttribute('font-weight',weight);node.setAttribute('font-size',Math.round(this.size*this.scale)+'px');node.setAttribute('fill',this.color);var align=(this.align==mxConstants.ALIGN_RIGHT)?'end':(this.align==mxConstants.ALIGN_CENTER)?'middle':'start';node.setAttribute('text-anchor',align);if(s!=null){node.setAttribute('font-style',s);}if(this.background!=null||this.border!=null){this.backgroundNode=document.createElementNS(mxConstants.NS_SVG,'rect');this.backgroundNode.setAttribute('shape-rendering','crispEdges');if(this.background!=null){this.backgroundNode.setAttribute('fill',this.background);}else{this.backgroundNode.setAttribute('fill','none');}if(this.border!=null){this.backgroundNode.setAttribute('stroke',this.border);}else{this.backgroundNode.setAttribute('stroke','none');}}this.updateSvgValue(node);return node;};mxText.prototype.updateSvgValue=function(node){if(this.currentValue!=this.value){while(node.firstChild!=null){node.removeChild(node.firstChild);}if(this.value!=null){var uline=this.isStyleSet(mxConstants.FONT_UNDERLINE)?'underline':'none';var lines=this.value.split('\n');this.textNodes=new Array(lines.length);for(var i=0;i<lines.length;i++){if(!this.isEmptyString(lines[i])){var tspan=this.createSvgSpan(lines[i]);node.appendChild(tspan);this.textNodes[i]=tspan;tspan.setAttribute('text-decoration',uline);}else{this.textNodes[i]=null;}}}this.currentValue=this.value;}};mxText.prototype.redrawSvg=function(){if(this.node.nodeName=='foreignObject'){this.redrawHtml();return;}var fontSize=Math.round(this.size*this.scale);if(fontSize<=0){this.node.setAttribute('visibility','hidden');}else{this.node.removeAttribute('visibility');}this.updateSvgValue(this.node);this.node.setAttribute('font-size',fontSize+'px');if(this.opacity!=null){this.node.setAttribute('fill-opacity',this.opacity/100);this.node.setAttribute('stroke-opacity',this.opacity/100);}var previous=this.value;var table=this.createHtmlTable();this.lastValue=null;this.value=mxUtils.htmlEntities(this.value,false);this.updateHtmlTable(table);document.body.appendChild(table);var w=table.offsetWidth*this.scale;var h=table.offsetHeight*this.scale;table.parentNode.removeChild(table);this.value=previous;var dx=2*this.scale;if(this.align==mxConstants.ALIGN_CENTER){dx+=w/2;}else if(this.align==mxConstants.ALIGN_RIGHT){dx+=w;}var dy=Math.round(fontSize*1.3);var childCount=this.node.childNodes.length;var lineCount=(this.textNodes!=null)?this.textNodes.length:0;if(this.backgroundNode!=null){childCount--;}var x=this.bounds.x;var y=this.bounds.y;x+=(this.align==mxConstants.ALIGN_RIGHT)?((this.horizontal)?this.bounds.width:this.bounds.height)-this.spacingRight*this.scale:(this.align==mxConstants.ALIGN_CENTER)?this.spacingLeft+(((this.horizontal)?this.bounds.width:this.bounds.height)-this.spacingLeft-this.spacingRight)/2:this.spacingLeft*this.scale+1;y+=(this.valign==mxConstants.ALIGN_BOTTOM)?((this.horizontal)?this.bounds.height:this.bounds.width)-(lineCount-1)*dy-this.spacingBottom*this.scale-4:(this.valign==mxConstants.ALIGN_MIDDLE)?(this.spacingTop*this.scale+((this.horizontal)?this.bounds.height:this.bounds.width)-this.spacingBottom*this.scale-(lineCount-1.5)*dy)/2:this.spacingTop*this.scale+dy;if(this.overflow=='fill'){if(this.align==mxConstants.ALIGN_CENTER){x=Math.max(this.bounds.x+w/2,x);}y=Math.max(this.bounds.y+fontSize,y);this.boundingBox=new mxRectangle(x-dx,y-dy,w+4*this.scale,h+1*this.scale);this.boundingBox.x=Math.min(this.bounds.x,this.boundingBox.x);this.boundingBox.y=Math.min(this.bounds.y,this.boundingBox.y);this.boundingBox.width=Math.max(this.bounds.width,this.boundingBox.width);this.boundingBox.height=Math.max(this.bounds.height,this.boundingBox.height);}else{this.boundingBox=new mxRectangle(x-dx,y-dy,w+4*this.scale,h+1*this.scale);}if(!this.horizontal){var cx=this.bounds.x+this.bounds.width/2;var cy=this.bounds.y+this.bounds.height/2;var offsetX=(this.bounds.width-this.bounds.height)/2;var offsetY=(this.bounds.height-this.bounds.width)/2;this.node.setAttribute('transform','rotate('+this.verticalTextDegree+' '+cx+' '+cy+') '+'translate('+(-offsetY)+' '+(-offsetX)+')');}this.redrawSvgTextNodes(x,y,dy);if(this.value.length>0&&this.backgroundNode!=null&&this.node.firstChild!=null){if(this.node.firstChild!=this.backgroundNode){this.node.insertBefore(this.backgroundNode,this.node.firstChild);}this.backgroundNode.setAttribute('x',this.boundingBox.x+this.scale/2+1*this.scale);this.backgroundNode.setAttribute('y',this.boundingBox.y+this.scale/2+2*this.scale-this.labelPadding);this.backgroundNode.setAttribute('width',this.boundingBox.width-this.scale-2*this.scale);this.backgroundNode.setAttribute('height',this.boundingBox.height-this.scale);var strokeWidth=Math.round(Math.max(1,this.scale));this.backgroundNode.setAttribute('stroke-width',strokeWidth);}if(!mxClient.IS_GC){if(this.clipped&&this.bounds.width>0&&this.bounds.height>0){this.boundingBox=this.bounds.clone();if(!this.horizontal){this.boundingBox.width=this.bounds.height;this.boundingBox.height=this.bounds.width;}x=this.bounds.x;y=this.bounds.y;if(this.horizontal){w=this.bounds.width;h=this.bounds.height;}else{w=this.bounds.height;h=this.bounds.width;}var clip=this.getSvgClip(this.node.ownerSVGElement,x,y,w,h);if(clip!=this.clip){this.releaseSvgClip();this.clip=clip;clip.refCount++;}this.node.setAttribute('clip-path','url(#'+clip.getAttribute('id')+')');}else{this.releaseSvgClip();this.node.removeAttribute('clip-path');}}};mxText.prototype.redrawSvgTextNodes=function(x,y,dy){if(this.textNodes!=null){var currentY=y;for(var i=0;i<this.textNodes.length;i++){var node=this.textNodes[i];if(node!=null){node.setAttribute('x',x);node.setAttribute('y',currentY);node.setAttribute('style','pointer-events: all');}currentY+=dy;}}};mxText.prototype.releaseSvgClip=function(){if(this.clip!=null){this.clip.refCount--;if(this.clip.refCount==0){this.clip.parentNode.removeChild(this.clip);}this.clip=null;}};mxText.prototype.getSvgClip=function(svg,x,y,w,h){x=Math.round(x);y=Math.round(y);w=Math.round(w);h=Math.round(h);var id='mx-clip-'+x+'-'+y+'-'+w+'-'+h;if(this.clip!=null&&this.clip.ident==id){return this.clip;}var counter=0;var tmp=id+'-'+counter;var clip=document.getElementById(tmp);while(clip!=null){if(clip.ownerSVGElement==svg){return clip;}counter++;tmp=id+'-'+counter;clip=document.getElementById(tmp);}if(clip!=null){clip=clip.cloneNode(true);counter++;}else{clip=document.createElementNS(mxConstants.NS_SVG,'clipPath');var rect=document.createElementNS(mxConstants.NS_SVG,'rect');rect.setAttribute('x',x);rect.setAttribute('y',y);rect.setAttribute('width',w);rect.setAttribute('height',h);clip.appendChild(rect);}clip.setAttribute('id',id+'-'+counter);clip.ident=id;svg.appendChild(clip);clip.refCount=0;return clip;};mxText.prototype.isEmptyString=function(text){return text.replace(/ /g,'').length==0;};mxText.prototype.createSvgSpan=function(text){var node=document.createElementNS(mxConstants.NS_SVG,'text');mxUtils.write(node,text);return node;};mxText.prototype.destroy=function(){this.releaseSvgClip();mxShape.prototype.destroy.apply(this,arguments);};function mxTriangle(){};mxTriangle.prototype=new mxActor();mxTriangle.prototype.constructor=mxTriangle;mxTriangle.prototype.redrawPath=function(path,x,y,w,h){path.moveTo(0,0);path.lineTo(w,0.5*h);path.lineTo(0,h);path.close();};function mxHexagon(){};mxHexagon.prototype=new mxActor();mxHexagon.prototype.constructor=mxHexagon;mxHexagon.prototype.redrawPath=function(path,x,y,w,h){path.moveTo(0.25*w,0);path.lineTo(0.75*w,0);path.lineTo(w,0.5*h);path.lineTo(0.75*w,h);path.lineTo(0.25*w,h);path.lineTo(0,0.5*h);path.close();};function mxLine(bounds,stroke,strokewidth){this.bounds=bounds;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxLine.prototype=new mxShape();mxLine.prototype.constructor=mxLine;mxLine.prototype.vmlNodes=mxLine.prototype.vmlNodes.concat(['label','innerNode']);mxLine.prototype.mixedModeHtml=false;mxLine.prototype.preferModeHtml=false;mxLine.prototype.clone=function(){var clone=new mxLine(this.bounds,this.stroke,this.strokewidth);clone.isDashed=this.isDashed;return clone;};mxLine.prototype.createVml=function(){var node=document.createElement('v:group');node.style.position='absolute';this.label=document.createElement('v:rect');this.label.style.position='absolute';this.label.stroked='false';this.label.filled='false';node.appendChild(this.label);this.innerNode=document.createElement('v:shape');this.configureVmlShape(this.innerNode);node.appendChild(this.innerNode);return node;};mxLine.prototype.reconfigure=function(){if(mxUtils.isVml(this.node)){this.configureVmlShape(this.innerNode);}else{mxShape.prototype.reconfigure.apply(this,arguments);}};mxLine.prototype.redrawVml=function(){this.updateVmlShape(this.node);this.updateVmlShape(this.label);this.innerNode.coordsize=this.node.coordsize;this.innerNode.strokeweight=(this.strokewidth*this.scale)+'px';this.innerNode.style.width=this.node.style.width;this.innerNode.style.height=this.node.style.height;var w=this.bounds.width;var h=this.bounds.height;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH){this.innerNode.path='m '+Math.round(w/2)+' 0'+' l '+Math.round(w/2)+' '+Math.round(h)+' e';}else{this.innerNode.path='m 0 '+Math.round(h/2)+' l '+Math.round(w)+' '+Math.round(h/2)+' e';}};mxLine.prototype.createSvg=function(){var g=this.createSvgGroup('path');this.pipe=this.createSvgPipe();g.appendChild(this.pipe);return g;};mxLine.prototype.redrawSvg=function(){var strokeWidth=Math.round(Math.max(1,this.strokewidth*this.scale));this.innerNode.setAttribute('stroke-width',strokeWidth);if(this.bounds!=null){var x=this.bounds.x;var y=this.bounds.y;var w=this.bounds.width;var h=this.bounds.height;var d=null;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH){d='M '+Math.round(x+w/2)+' '+Math.round(y)+' L '+Math.round(x+w/2)+' '+Math.round(y+h);}else{d='M '+Math.round(x)+' '+Math.round(y+h/2)+' L '+Math.round(x+w)+' '+Math.round(y+h/2);}this.innerNode.setAttribute('d',d);this.pipe.setAttribute('d',d);this.pipe.setAttribute('stroke-width',this.strokewidth+mxShape.prototype.SVG_STROKE_TOLERANCE);this.updateSvgTransform(this.innerNode,false);this.updateSvgTransform(this.pipe,false);if(this.crisp){this.innerNode.setAttribute('shape-rendering','crispEdges');}else{this.innerNode.removeAttribute('shape-rendering');}if(this.isDashed){var phase=Math.max(1,Math.round(3*this.scale*this.strokewidth));this.innerNode.setAttribute('stroke-dasharray',phase+' '+phase);}}};function mxImageShape(bounds,image,fill,stroke,strokewidth){this.bounds=bounds;this.image=(image!=null)?image:'';this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;this.isShadow=false;};mxImageShape.prototype=new mxShape();mxImageShape.prototype.constructor=mxImageShape;mxImageShape.prototype.crisp=false;mxImageShape.prototype.preserveImageAspect=true;mxImageShape.prototype.apply=function(state){mxShape.prototype.apply.apply(this,arguments);this.fill=null;this.stroke=null;if(this.style!=null){this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER);this.preserveImageAspect=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1)==1;this.gradient=null;}};mxImageShape.prototype.create=function(){var node=null;if(this.dialect==mxConstants.DIALECT_SVG){node=this.createSvgGroup('rect');this.innerNode.setAttribute('visibility','hidden');this.innerNode.setAttribute('pointer-events','fill');this.imageNode=document.createElementNS(mxConstants.NS_SVG,'image');this.imageNode.setAttributeNS(mxConstants.NS_XLINK,'xlink:href',this.image);this.imageNode.setAttribute('style','pointer-events:none');this.configureSvgShape(this.imageNode);this.imageNode.removeAttribute('stroke');this.imageNode.removeAttribute('fill');node.insertBefore(this.imageNode,this.innerNode);if((this.fill!=null&&this.fill!=mxConstants.NONE)||(this.stroke!=null&&this.stroke!=mxConstants.NONE)){this.bg=document.createElementNS(mxConstants.NS_SVG,'rect');node.insertBefore(this.bg,node.firstChild);}if(!this.preserveImageAspect){this.imageNode.setAttribute('preserveAspectRatio','none');}}else{var flipH=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_FLIPH,0)==1;var flipV=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_FLIPV,0)==1;var img=this.image.toUpperCase();if(mxClient.IS_IE&&!flipH&&!flipV&&img.substring(0,6)=='MHTML:'){this.imageNode=document.createElement('DIV');this.imageNode.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader '+'(src=\''+this.image+'\', sizingMethod=\'scale\')';node=document.createElement('DIV');this.configureHtmlShape(node);node.appendChild(this.imageNode);}else if(!mxClient.IS_IE||img.substring(0,5)=='DATA:'||document.documentMode>=9){this.imageNode=document.createElement('img');this.imageNode.setAttribute('src',this.image);this.imageNode.setAttribute('border','0');this.imageNode.style.position='absolute';this.imageNode.style.width='100%';this.imageNode.style.height='100%';node=document.createElement('DIV');this.configureHtmlShape(node);node.appendChild(this.imageNode);}else{this.imageNode=document.createElement('v:image');this.imageNode.style.position='absolute';this.imageNode.src=this.image;node=document.createElement('DIV');this.configureHtmlShape(node);node.style.overflow='visible';node.appendChild(this.imageNode);}}return node;};mxImageShape.prototype.updateAspect=function(w,h){var s=Math.min(this.bounds.width/w,this.bounds.height/h);w=Math.max(0,Math.round(w*s));h=Math.max(0,Math.round(h*s));var x0=Math.max(0,Math.round((this.bounds.width-w)/2));var y0=Math.max(0,Math.round((this.bounds.height-h)/2));var st=this.imageNode.style;if(this.imageNode.parentNode==this.node){this.node.style.paddingLeft=x0+'px';this.node.style.paddingTop=y0+'px';}else{st.left=(Math.round(this.bounds.x)+x0)+'px';st.top=(Math.round(this.bounds.y)+y0)+'px';}st.width=w+'px';st.height=h+'px';};mxImageShape.prototype.scheduleUpdateAspect=function(){var img=new Image();img.onload=mxUtils.bind(this,function(){mxImageShape.prototype.updateAspect.call(this,img.width,img.height);});img.src=this.image;};mxImageShape.prototype.redraw=function(){mxShape.prototype.redraw.apply(this,arguments);if(this.imageNode!=null&&this.bounds!=null){var flipH=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_FLIPH,0)==1;var flipV=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_FLIPV,0)==1;if(this.dialect==mxConstants.DIALECT_SVG){var sx=1;var sy=1;var dx=0;var dy=0;if(flipH){sx=-1;dx=-this.bounds.width-2*this.bounds.x;}if(flipV){sy=-1;dy=-this.bounds.height-2*this.bounds.y;}var transform=(this.imageNode.getAttribute('transform')||'')+' scale('+sx+' '+sy+')'+' translate('+dx+' '+dy+')';this.imageNode.setAttribute('transform',transform);}else{if(this.imageNode.nodeName!='DIV'){this.imageNode.style.width=Math.max(0,Math.round(this.bounds.width))+'px';this.imageNode.style.height=Math.max(0,Math.round(this.bounds.height))+'px';}if(this.preserveImageAspect){this.scheduleUpdateAspect();}if(flipH||flipV){if(mxUtils.isVml(this.imageNode)){if(flipH&&flipV){this.imageNode.style.rotation='180';}else if(flipH){this.imageNode.style.flip='x';}else{this.imageNode.style.flip='y';}}else{var filter=(this.imageNode.nodeName=='DIV')?'progid:DXImageTransform.Microsoft.AlphaImageLoader '+'(src=\''+this.image+'\', sizingMethod=\'scale\')':'';if(flipH&&flipV){filter+='progid:DXImageTransform.Microsoft.BasicImage(rotation=2)';}else if(flipH){filter+='progid:DXImageTransform.Microsoft.BasicImage(mirror=1)';}else{filter+='progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)';}if(this.imageNode.style.filter!=filter){this.imageNode.style.filter=filter;}}}}}};mxImageShape.prototype.configureTransparentBackground=function(node){};mxImageShape.prototype.redrawSvg=function(){this.updateSvgShape(this.innerNode);this.updateSvgShape(this.imageNode);if(this.bg!=null){this.updateSvgShape(this.bg);if(this.fill!=null){this.bg.setAttribute('fill',this.fill);}else{this.bg.setAttribute('fill','none');}if(this.stroke!=null){this.bg.setAttribute('stroke',this.stroke);}else{this.bg.setAttribute('stroke','none');}this.bg.setAttribute('shape-rendering','crispEdges');}};mxImageShape.prototype.configureSvgShape=function(node){mxShape.prototype.configureSvgShape.apply(this,arguments);if(this.imageNode!=null){if(this.opacity!=null){this.imageNode.setAttribute('opacity',this.opacity/100);}else{this.imageNode.removeAttribute('opacity');}}};function mxLabel(bounds,fill,stroke,strokewidth){this.bounds=bounds;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxLabel.prototype=new mxShape();mxLabel.prototype.constructor=mxLabel;mxLabel.prototype.vmlNodes=mxLabel.prototype.vmlNodes.concat(['label','imageNode','indicatorImageNode','rectNode']);mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE;mxLabel.prototype.spacing=2;mxLabel.prototype.indicatorSize=10;mxLabel.prototype.indicatorSpacing=2;mxLabel.prototype.opaqueVmlImages=false;mxLabel.prototype.init=function(container){mxShape.prototype.init.apply(this,arguments);if(this.indicatorColor!=null&&this.indicatorShape!=null){this.indicator=new this.indicatorShape();this.indicator.dialect=this.dialect;this.indicator.bounds=this.bounds;this.indicator.fill=this.indicatorColor;this.indicator.stroke=this.indicatorColor;this.indicator.gradient=this.indicatorGradientColor;this.indicator.direction=this.indicatorDirection;this.indicator.init(this.node);this.indicatorShape=null;}};mxLabel.prototype.reconfigure=function(){mxShape.prototype.reconfigure.apply(this);if(this.indicator!=null){this.indicator.fill=this.indicatorColor;this.indicator.stroke=this.indicatorColor;this.indicator.gradient=this.indicatorGradientColor;this.indicator.direction=this.indicatorDirection;this.indicator.reconfigure();}};mxLabel.prototype.createHtml=function(){var name='DIV';var node=document.createElement(name);this.configureHtmlShape(node);if(this.indicatorImage!=null){this.indicatorImageNode=mxUtils.createImage(this.indicatorImage);this.indicatorImageNode.style.position='absolute';node.appendChild(this.indicatorImageNode);}if(this.image!=null){this.imageNode=mxUtils.createImage(this.image);this.stroke=null;this.configureHtmlShape(this.imageNode);mxUtils.setOpacity(this.imageNode,'100');node.appendChild(this.imageNode);}return node;};mxLabel.prototype.createVml=function(){var node=document.createElement('v:group');var name=(this.isRounded)?'v:roundrect':'v:rect';this.rectNode=document.createElement(name);this.configureVmlShape(this.rectNode);this.isShadow=false;this.configureVmlShape(node);node.coordorigin='0,0';node.appendChild(this.rectNode);if(this.indicatorImage!=null){this.indicatorImageNode=this.createVmlImage(this.indicatorImage,(this.opaqueVmlImages)?null:this.opacity);node.appendChild(this.indicatorImageNode);}if(this.image!=null){this.imageNode=this.createVmlImage(this.image,(this.opaqueVmlImages)?null:this.opacity);node.appendChild(this.imageNode);}this.label=document.createElement('v:rect');this.label.style.top='0px';this.label.style.left='0px';this.label.filled='false';this.label.stroked='false';node.appendChild(this.label);return node;};mxLabel.prototype.createVmlImage=function(src,opacity){var result=null;if(src.substring(0,5)=='data:'||opacity!=null){result=document.createElement('img');mxUtils.setOpacity(result,opacity);result.setAttribute('border','0');result.style.position='absolute';result.setAttribute('src',src);}else{result=document.createElement('v:image');result.src=src;}return result;};mxLabel.prototype.createSvg=function(){var g=this.createSvgGroup('rect');if(this.indicatorImage!=null){this.indicatorImageNode=document.createElementNS(mxConstants.NS_SVG,'image');this.indicatorImageNode.setAttributeNS(mxConstants.NS_XLINK,'href',this.indicatorImage);g.appendChild(this.indicatorImageNode);if(this.opacity!=null){this.indicatorImageNode.setAttribute('opacity',this.opacity/100);}}if(this.image!=null){this.imageNode=document.createElementNS(mxConstants.NS_SVG,'image');this.imageNode.setAttributeNS(mxConstants.NS_XLINK,'href',this.image);if(this.opacity!=null){this.imageNode.setAttribute('opacity',this.opacity/100);}this.imageNode.setAttribute('style','pointer-events:none');this.configureSvgShape(this.imageNode);g.appendChild(this.imageNode);}return g;};mxLabel.prototype.redraw=function(){var isSvg=(this.dialect==mxConstants.DIALECT_SVG);var isVml=mxUtils.isVml(this.node);if(isSvg){this.updateSvgShape(this.innerNode);if(this.shadowNode!=null){this.updateSvgShape(this.shadowNode);}this.updateSvgGlassPane();}else if(isVml){this.updateVmlShape(this.node);this.updateVmlShape(this.rectNode);this.label.style.width=this.node.style.width;this.label.style.height=this.node.style.height;this.updateVmlGlassPane();}else{this.updateHtmlShape(this.node);}var imageWidth=0;var imageHeight=0;if(this.imageNode!=null){imageWidth=(this.style[mxConstants.STYLE_IMAGE_WIDTH]||this.imageSize)*this.scale;imageHeight=(this.style[mxConstants.STYLE_IMAGE_HEIGHT]||this.imageSize)*this.scale;}var indicatorSpacing=0;var indicatorWidth=0;var indicatorHeight=0;if(this.indicator!=null||this.indicatorImageNode!=null){indicatorSpacing=(this.style[mxConstants.STYLE_INDICATOR_SPACING]||this.indicatorSpacing)*this.scale;indicatorWidth=(this.style[mxConstants.STYLE_INDICATOR_WIDTH]||this.indicatorSize)*this.scale;indicatorHeight=(this.style[mxConstants.STYLE_INDICATOR_HEIGHT]||this.indicatorSize)*this.scale;}var align=this.style[mxConstants.STYLE_IMAGE_ALIGN];var valign=this.style[mxConstants.STYLE_IMAGE_VERTICAL_ALIGN];var inset=this.spacing*this.scale+5;var width=Math.max(imageWidth,indicatorWidth);var height=imageHeight+indicatorSpacing+indicatorHeight;var x=(isSvg)?this.bounds.x:0;if(align==mxConstants.ALIGN_RIGHT){x+=this.bounds.width-width-inset;}else if(align==mxConstants.ALIGN_CENTER){x+=(this.bounds.width-width)/2;}else {x+=inset;}var y=(isSvg)?this.bounds.y:0;if(valign==mxConstants.ALIGN_BOTTOM){y+=this.bounds.height-height-inset;}else if(valign==mxConstants.ALIGN_TOP){y+=inset;}else {y+=(this.bounds.height-height)/2;}if(this.imageNode!=null){if(isSvg){this.imageNode.setAttribute('x',(x+(width-imageWidth)/2)+'px');this.imageNode.setAttribute('y',y+'px');this.imageNode.setAttribute('width',imageWidth+'px');this.imageNode.setAttribute('height',imageHeight+'px');}else{this.imageNode.style.left=(x+width-imageWidth)+'px';this.imageNode.style.top=y+'px';this.imageNode.style.width=imageWidth+'px';this.imageNode.style.height=imageHeight+'px';this.imageNode.stroked='false';}}if(this.indicator!=null){this.indicator.bounds=new mxRectangle(x+(width-indicatorWidth)/2,y+imageHeight+indicatorSpacing,indicatorWidth,indicatorHeight);this.indicator.redraw();}else if(this.indicatorImageNode!=null){if(isSvg){this.indicatorImageNode.setAttribute('x',(x+(width-indicatorWidth)/2)+'px');this.indicatorImageNode.setAttribute('y',(y+imageHeight+indicatorSpacing)+'px');this.indicatorImageNode.setAttribute('width',indicatorWidth+'px');this.indicatorImageNode.setAttribute('height',indicatorHeight+'px');}else{this.indicatorImageNode.style.left=(x+(width-indicatorWidth)/2)+'px';this.indicatorImageNode.style.top=(y+imageHeight+indicatorSpacing)+'px';this.indicatorImageNode.style.width=indicatorWidth+'px';this.indicatorImageNode.style.height=indicatorHeight+'px';}}};function mxCylinder(bounds,fill,stroke,strokewidth){this.bounds=bounds;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxCylinder.prototype=new mxShape();mxCylinder.prototype.constructor=mxCylinder;mxCylinder.prototype.vmlNodes=mxCylinder.prototype.vmlNodes.concat(['background','foreground']);mxCylinder.prototype.mixedModeHtml=false;mxCylinder.prototype.preferModeHtml=false;mxCylinder.prototype.strokedBackground=true;mxCylinder.prototype.maxHeight=40;mxCylinder.prototype.create=function(container){if(this.stroke==null){this.stroke=this.fill;}return mxShape.prototype.create.apply(this,arguments);};mxCylinder.prototype.reconfigure=function(){if(this.dialect==mxConstants.DIALECT_SVG){this.configureSvgShape(this.foreground);this.foreground.setAttribute('fill','none');}else if(mxUtils.isVml(this.node)){this.configureVmlShape(this.background);this.configureVmlShape(this.foreground);}mxShape.prototype.reconfigure.apply(this);};mxCylinder.prototype.createVml=function(){var node=document.createElement('v:group');this.background=document.createElement('v:shape');this.label=this.background;this.configureVmlShape(this.background);node.appendChild(this.background);this.fill=null;this.isShadow=false;this.configureVmlShape(node);this.foreground=document.createElement('v:shape');this.configureVmlShape(this.foreground);this.fgStrokeNode=document.createElement('v:stroke');this.fgStrokeNode.joinstyle='miter';this.fgStrokeNode.miterlimit=4;this.foreground.appendChild(this.fgStrokeNode);node.appendChild(this.foreground);return node;};mxCylinder.prototype.redrawVml=function(){this.updateVmlShape(this.node);this.updateVmlShape(this.background);this.updateVmlShape(this.foreground);this.background.path=this.createPath(false);this.foreground.path=this.createPath(true);this.fgStrokeNode.dashstyle=this.strokeNode.dashstyle;};mxCylinder.prototype.createSvg=function(){var g=this.createSvgGroup('path');this.foreground=document.createElementNS(mxConstants.NS_SVG,'path');if(this.stroke!=null&&this.stroke!=mxConstants.NONE){this.foreground.setAttribute('stroke',this.stroke);}else{this.foreground.setAttribute('stroke','none');}this.foreground.setAttribute('fill','none');g.appendChild(this.foreground);return g;};mxCylinder.prototype.redrawSvg=function(){var strokeWidth=Math.round(Math.max(1,this.strokewidth*this.scale));this.innerNode.setAttribute('stroke-width',strokeWidth);if(this.crisp){this.innerNode.setAttribute('shape-rendering','crispEdges');this.foreground.setAttribute('shape-rendering','crispEdges');}else{this.innerNode.removeAttribute('shape-rendering');this.foreground.removeAttribute('shape-rendering');}var d=this.createPath(false);if(d.length>0){this.innerNode.setAttribute('d',d);}else{this.innerNode.removeAttribute('d');}if(!this.strokedBackground){this.innerNode.setAttribute('stroke','none');}if(this.shadowNode!=null){this.shadowNode.setAttribute('stroke-width',strokeWidth);this.shadowNode.setAttribute('d',d);this.shadowNode.setAttribute('transform',this.getSvgShadowTransform());}d=this.createPath(true);if(d.length>0){this.foreground.setAttribute('stroke-width',strokeWidth);this.foreground.setAttribute('d',d);}else{this.foreground.removeAttribute('d');}if(this.isDashed){var phase=Math.max(1,Math.round(3*this.scale*this.strokewidth));this.innerNode.setAttribute('stroke-dasharray',phase+' '+phase);this.foreground.setAttribute('stroke-dasharray',phase+' '+phase);}};mxCylinder.prototype.redrawPath=function(path,x,y,w,h,isForeground){var dy=Math.min(this.maxHeight,Math.round(h/5));if(isForeground){path.moveTo(0,dy);path.curveTo(0,2*dy,w,2*dy,w,dy);}else{path.moveTo(0,dy);path.curveTo(0,-dy/3,w,-dy/3,w,dy);path.lineTo(w,h-dy);path.curveTo(w,h+dy/3,0,h+dy/3,0,h-dy);path.close();}};function mxConnector(points,stroke,strokewidth){this.points=points;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxConnector.prototype=new mxShape();mxConnector.prototype.constructor=mxConnector;mxConnector.prototype.vmlNodes=mxConnector.prototype.vmlNodes.concat(['shapeNode','start','end','startStroke','endStroke','startFill','endFill']);mxConnector.prototype.mixedModeHtml=false;mxConnector.prototype.preferModeHtml=false;mxConnector.prototype.allowCrispMarkers=false;mxConnector.prototype.configureHtmlShape=function(node){mxShape.prototype.configureHtmlShape.apply(this,arguments);node.style.borderStyle='';node.style.background='';};mxConnector.prototype.createVml=function(){var node=document.createElement('v:group');node.style.position='absolute';this.shapeNode=document.createElement('v:shape');this.updateVmlStrokeColor(this.shapeNode);this.updateVmlStrokeNode(this.shapeNode);node.appendChild(this.shapeNode);this.shapeNode.filled='false';if(this.isShadow){this.createVmlShadow(this.shapeNode);}if(this.startArrow!=null){this.start=document.createElement('v:shape');this.start.style.position='absolute';this.startStroke=document.createElement('v:stroke');this.startStroke.joinstyle='miter';this.start.appendChild(this.startStroke);this.startFill=document.createElement('v:fill');this.start.appendChild(this.startFill);node.appendChild(this.start);}if(this.endArrow!=null){this.end=document.createElement('v:shape');this.end.style.position='absolute';this.endStroke=document.createElement('v:stroke');this.endStroke.joinstyle='miter';this.end.appendChild(this.endStroke);this.endFill=document.createElement('v:fill');this.end.appendChild(this.endFill);node.appendChild(this.end);}this.updateVmlMarkerOpacity();return node;};mxConnector.prototype.updateVmlMarkerOpacity=function(){var op=(this.opacity!=null)?(this.opacity+'%'):'100%';if(this.start!=null){this.startFill.opacity=op;this.startStroke.opacity=op;}if(this.end!=null){this.endFill.opacity=op;this.endStroke.opacity=op;}};mxConnector.prototype.reconfigure=function(){this.fill=null;if(mxUtils.isVml(this.node)){this.node.style.visibility='hidden';this.configureVmlShape(this.shapeNode);this.updateVmlMarkerOpacity();this.node.style.visibility='visible';}else{mxShape.prototype.reconfigure.apply(this,arguments);}};mxConnector.prototype.redrawVml=function(){if(this.node!=null&&this.points!=null&&this.bounds!=null&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)){var w=Math.max(0,Math.round(this.bounds.width));var h=Math.max(0,Math.round(this.bounds.height));var cs=w+','+h;w+='px';h+='px';if(this.start!=null){this.start.style.width=w;this.start.style.height=h;this.start.coordsize=cs;var p0=this.points[1];var pe=this.points[0];var size=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE);this.startOffset=this.redrawMarker(this.start,this.startArrow,p0,pe,this.stroke,size);}if(this.end!=null){this.end.style.width=w;this.end.style.height=h;this.end.coordsize=cs;var n=this.points.length;var p0=this.points[n-2];var pe=this.points[n-1];var size=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE);this.endOffset=this.redrawMarker(this.end,this.endArrow,p0,pe,this.stroke,size);}this.updateVmlShape(this.node);this.updateVmlShape(this.shapeNode);this.shapeNode.filled='false';if(this.isDashed){var pat=mxUtils.getValue(this.style,'dashStyle',null);if(pat!=null){this.strokeNode.dashstyle=pat;}if(this.shadowStrokeNode!=null){this.shadowStrokeNode.dashstyle=this.strokeNode.dashstyle;}}}};mxConnector.prototype.createSvg=function(){this.fill=null;var g=this.createSvgGroup('path');if(this.startArrow!=null){this.start=document.createElementNS(mxConstants.NS_SVG,'path');g.appendChild(this.start);}if(this.endArrow!=null){this.end=document.createElementNS(mxConstants.NS_SVG,'path');g.appendChild(this.end);}this.pipe=this.createSvgPipe();g.appendChild(this.pipe);return g;};mxConnector.prototype.redrawSvg=function(){if(this.points!=null&&this.points[0]!=null){var color=this.innerNode.getAttribute('stroke');if(this.start!=null){var p0=this.points[1];var pe=this.points[0];var size=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE);this.startOffset=this.redrawMarker(this.start,this.startArrow,p0,pe,color,size);if(this.allowCrispMarkers&&this.crisp){this.start.setAttribute('shape-rendering','crispEdges');}else{this.start.removeAttribute('shape-rendering');}}if(this.end!=null){var n=this.points.length;var p0=this.points[n-2];var pe=this.points[n-1];var size=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE);this.endOffset=this.redrawMarker(this.end,this.endArrow,p0,pe,color,size);if(this.allowCrispMarkers&&this.crisp){this.end.setAttribute('shape-rendering','crispEdges');}else{this.end.removeAttribute('shape-rendering');}}}this.updateSvgShape(this.innerNode);var d=this.innerNode.getAttribute('d');if(d!=null){this.pipe.setAttribute('d',this.innerNode.getAttribute('d'));var strokeWidth=Math.round(this.strokewidth*this.scale);this.pipe.setAttribute('stroke-width',strokeWidth+mxShape.prototype.SVG_STROKE_TOLERANCE);if(this.shadowNode!=null){this.shadowNode.setAttribute('transform',this.getSvgShadowTransform());this.shadowNode.setAttribute('d',d);}}if(this.isDashed){var pat=this.createDashPattern(this.scale*this.strokewidth);if(pat!=null){this.innerNode.setAttribute('stroke-dasharray',pat);}}if(this.shadowNode!=null){var pat=this.innerNode.getAttribute('stroke-dasharray');if(pat!=null){this.shadowNode.setAttribute('stroke-dasharray',pat);}}};mxConnector.prototype.createDashPattern=function(factor){var value=mxUtils.getValue(this.style,'dashPattern',null);if(value!=null){var tmp=value.split(' ');var pat=[];for(var i=0;i<tmp.length;i++){if(tmp[i].length>0){pat.push(Math.round(Number(tmp[i])*factor));}}return pat.join(' ');}return null;};mxConnector.prototype.redrawMarker=function(node,type,p0,pe,color,size){return mxMarker.paintMarker(node,type,p0,pe,color,this.strokewidth,size,this.scale,this.bounds.x,this.bounds.y,this.start==node,this.style);};function mxSwimlane(bounds,fill,stroke,strokewidth){this.bounds=bounds;this.fill=fill;this.stroke=stroke;this.strokewidth=(strokewidth!=null)?strokewidth:1;};mxSwimlane.prototype=new mxShape();mxSwimlane.prototype.constructor=mxSwimlane;mxSwimlane.prototype.vmlNodes=mxSwimlane.prototype.vmlNodes.concat(['label','content','imageNode','separator']);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.mixedModeHtml=false;mxRhombus.prototype.preferModeHtml=false;mxSwimlane.prototype.createHtml=function(){var node=document.createElement('DIV');this.configureHtmlShape(node);node.style.background='';node.style.backgroundColor='';node.style.borderStyle='none';this.label=document.createElement('DIV');this.configureHtmlShape(this.label);node.appendChild(this.label);this.content=document.createElement('DIV');this.configureHtmlShape(this.content);this.content.style.backgroundColor='';if(mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,true)){this.content.style.borderTopStyle='none';}else{this.content.style.borderLeftStyle='none';}this.content.style.cursor='default';node.appendChild(this.content);var color=this.style[mxConstants.STYLE_SEPARATORCOLOR];if(color!=null){this.separator=document.createElement('DIV');this.separator.style.borderColor=color;this.separator.style.borderLeftStyle='dashed';node.appendChild(this.separator);}if(this.image!=null){this.imageNode=mxUtils.createImage(this.image);this.configureHtmlShape(this.imageNode);this.imageNode.style.borderStyle='none';node.appendChild(this.imageNode);}return node;};mxSwimlane.prototype.reconfigure=function(node){mxShape.prototype.reconfigure.apply(this,arguments);if(this.dialect==mxConstants.DIALECT_SVG){if(this.shadowNode!=null){this.updateSvgShape(this.shadowNode);if(mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,true)){this.shadowNode.setAttribute('height',this.startSize*this.scale);}else{this.shadowNode.setAttribute('width',this.startSize*this.scale);}}}else if(!mxUtils.isVml(this.node)){this.node.style.background='';this.node.style.backgroundColor='';}};mxSwimlane.prototype.redrawHtml=function(){this.updateHtmlShape(this.node);this.node.style.background='';this.node.style.backgroundColor='';this.startSize=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));this.updateHtmlShape(this.label);this.label.style.top='0px';this.label.style.left='0px';if(mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,true)){this.startSize=Math.min(this.startSize,this.bounds.height);this.label.style.height=(this.startSize*this.scale)+'px';this.updateHtmlShape(this.content);this.content.style.background='';this.content.style.backgroundColor='';var h=this.startSize*this.scale;this.content.style.top=h+'px';this.content.style.left='0px';this.content.style.height=Math.max(1,this.bounds.height-h)+'px';if(this.separator!=null){this.separator.style.left=Math.round(this.bounds.width)+'px';this.separator.style.top=Math.round(this.startSize*this.scale)+'px';this.separator.style.width='1px';this.separator.style.height=Math.round(this.bounds.height)+'px';this.separator.style.borderWidth=Math.round(this.scale)+'px';}if(this.imageNode!=null){this.imageNode.style.left=(this.bounds.width-this.imageSize-4)+'px';this.imageNode.style.top='0px';this.imageNode.style.width=Math.round(this.imageSize*this.scale)+'px';this.imageNode.style.height=Math.round(this.imageSize*this.scale)+'px';}}else{this.startSize=Math.min(this.startSize,this.bounds.width);this.label.style.width=(this.startSize*this.scale)+'px';this.updateHtmlShape(this.content);this.content.style.background='';this.content.style.backgroundColor='';var w=this.startSize*this.scale;this.content.style.top='0px';this.content.style.left=w+'px';this.content.style.width=Math.max(0,this.bounds.width-w)+'px';if(this.separator!=null){this.separator.style.left=Math.round(this.startSize*this.scale)+'px';this.separator.style.top=Math.round(this.bounds.height)+'px';this.separator.style.width=Math.round(this.bounds.width)+'px';this.separator.style.height='1px';}if(this.imageNode!=null){this.imageNode.style.left=(this.bounds.width-this.imageSize-4)+'px';this.imageNode.style.top='0px';this.imageNode.style.width=this.imageSize*this.scale+'px';this.imageNode.style.height=this.imageSize*this.scale+'px';}}};mxSwimlane.prototype.createVml=function(){var node=document.createElement('v:group');var name=(this.isRounded)?'v:roundrect':'v:rect';this.label=document.createElement(name);this.configureVmlShape(this.label);if(this.isRounded){this.label.setAttribute('arcsize','20%');}this.isShadow=false;this.configureVmlShape(node);node.coordorigin='0,0';node.appendChild(this.label);this.content=document.createElement(name);var tmp=this.fill;this.fill=null;this.configureVmlShape(this.content);node.style.background='';if(this.isRounded){this.content.setAttribute('arcsize','4%');}this.fill=tmp;this.content.style.borderBottom='0px';node.appendChild(this.content);var color=this.style[mxConstants.STYLE_SEPARATORCOLOR];if(color!=null){this.separator=document.createElement('v:shape');this.separator.style.position='absolute';this.separator.strokecolor=color;var strokeNode=document.createElement('v:stroke');strokeNode.dashstyle='2 2';this.separator.appendChild(strokeNode);node.appendChild(this.separator);}if(this.image!=null){this.imageNode=document.createElement('v:image');this.imageNode.src=this.image;this.configureVmlShape(this.imageNode);this.imageNode.stroked='false';node.appendChild(this.imageNode);}return node;};mxSwimlane.prototype.redrawVml=function(){var x=Math.round(this.bounds.x);var y=Math.round(this.bounds.y);var w=Math.round(this.bounds.width);var h=Math.round(this.bounds.height);this.updateVmlShape(this.node);this.node.coordsize=w+','+h;this.updateVmlShape(this.label);this.label.style.top='0px';this.label.style.left='0px';this.label.style.rotation=null;this.startSize=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));var start=Math.round(this.startSize*this.scale);if(this.separator!=null){this.separator.coordsize=w+','+h;this.separator.style.left=x+'px';this.separator.style.top=y+'px';this.separator.style.width=w+'px';this.separator.style.height=h+'px';}if(mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,true)){start=Math.min(start,this.bounds.height);this.label.style.height=start+'px';this.updateVmlShape(this.content);this.content.style.background='';this.content.style.top=start+'px';this.content.style.left='0px';this.content.style.height=Math.max(0,h-start)+'px';if(this.separator!=null){var d='m '+(w-x)+' '+(start-y)+' l '+(w-x)+' '+(h-y)+' e';this.separator.path=d;}if(this.imageNode!=null){var img=Math.round(this.imageSize*this.scale);this.imageNode.style.left=(w-img-4)+'px';this.imageNode.style.top='0px';this.imageNode.style.width=img+'px';this.imageNode.style.height=img+'px';}}else{start=Math.min(start,this.bounds.width);this.label.style.width=start+'px';this.updateVmlShape(this.content);this.content.style.background='';this.content.style.top='0px';this.content.style.left=start+'px';this.content.style.width=Math.max(0,w-start)+'px';if(this.separator!=null){var d='m '+(start-x)+' '+(h-y)+' l '+(w-x)+' '+(h-y)+' e';this.separator.path=d;}if(this.imageNode!=null){var img=Math.round(this.imageSize*this.scale);this.imageNode.style.left=(w-img-4)+'px';this.imageNode.style.top='0px';this.imageNode.style.width=img+'px';this.imageNode.style.height=img+'px';}}this.content.style.rotation=null;};mxSwimlane.prototype.createSvg=function(){var node=this.createSvgGroup('rect');if(this.isRounded){this.innerNode.setAttribute('rx',10);this.innerNode.setAttribute('ry',10);}this.content=document.createElementNS(mxConstants.NS_SVG,'path');this.configureSvgShape(this.content);this.content.setAttribute('fill','none');if(this.isRounded){this.content.setAttribute('rx',10);this.content.setAttribute('ry',10);}node.appendChild(this.content);var color=this.style[mxConstants.STYLE_SEPARATORCOLOR];if(color!=null){this.separator=document.createElementNS(mxConstants.NS_SVG,'line');this.separator.setAttribute('stroke',color);this.separator.setAttribute('fill','none');this.separator.setAttribute('stroke-dasharray','2, 2');node.appendChild(this.separator);}if(this.image!=null){this.imageNode=document.createElementNS(mxConstants.NS_SVG,'image');this.imageNode.setAttributeNS(mxConstants.NS_XLINK,'href',this.image);this.configureSvgShape(this.imageNode);node.appendChild(this.imageNode);}return node;};mxSwimlane.prototype.redrawSvg=function(){var tmp=this.isRounded;this.isRounded=false;this.updateSvgShape(this.innerNode);this.updateSvgShape(this.content);var horizontal=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,true);this.startSize=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));var ss=this.startSize*this.scale;if(this.shadowNode!=null){this.updateSvgShape(this.shadowNode);if(horizontal){this.shadowNode.setAttribute('height',ss);}else{this.shadowNode.setAttribute('width',ss);}}this.isRounded=tmp;this.content.removeAttribute('x');this.content.removeAttribute('y');this.content.removeAttribute('width');this.content.removeAttribute('height');var crisp=(this.crisp&&mxClient.IS_IE)?0.5:0;var x=Math.round(this.bounds.x)+crisp;var y=Math.round(this.bounds.y)+crisp;var w=Math.round(this.bounds.width);var h=Math.round(this.bounds.height);if(horizontal){ss=Math.min(ss,h);this.innerNode.setAttribute('height',ss);var points='M '+x+' '+(y+ss)+' l 0 '+(h-ss)+' l '+w+' 0'+' l 0 '+(ss-h);this.content.setAttribute('d',points);if(this.separator!=null){this.separator.setAttribute('x1',x+w);this.separator.setAttribute('y1',y+ss);this.separator.setAttribute('x2',x+w);this.separator.setAttribute('y2',y+h);}if(this.imageNode!=null){this.imageNode.setAttribute('x',x+w-this.imageSize-4);this.imageNode.setAttribute('y',y);this.imageNode.setAttribute('width',this.imageSize*this.scale+'px');this.imageNode.setAttribute('height',this.imageSize*this.scale+'px');}}else{ss=Math.min(ss,w);this.innerNode.setAttribute('width',ss);var points='M '+(x+ss)+' '+y+' l '+(w-ss)+' 0'+' l 0 '+h+' l '+(ss-w)+' 0';this.content.setAttribute('d',points);if(this.separator!=null){this.separator.setAttribute('x1',x+ss);this.separator.setAttribute('y1',y+h);this.separator.setAttribute('x2',x+w);this.separator.setAttribute('y2',y+h);}if(this.imageNode!=null){this.imageNode.setAttribute('x',x+w-this.imageSize-4);this.imageNode.setAttribute('y',y);this.imageNode.setAttribute('width',this.imageSize*this.scale+'px');this.imageNode.setAttribute('height',this.imageSize*this.scale+'px');}}};function mxGraphLayout(graph){this.graph=graph;};mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=true;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(cell,x,y){};mxGraphLayout.prototype.execute=function(parent){};mxGraphLayout.prototype.getGraph=function(){return this.graph;};mxGraphLayout.prototype.getConstraint=function(key,cell,edge,source){var state=this.graph.view.getState(cell);var style=(state!=null)?state.style:this.graph.getCellStyle(cell);return(style!=null)?style[key]:null;};mxGraphLayout.prototype.isVertexMovable=function(cell){return this.graph.isCellMovable(cell);};mxGraphLayout.prototype.isVertexIgnored=function(vertex){return!this.graph.getModel().isVertex(vertex)||!this.graph.isCellVisible(vertex);};mxGraphLayout.prototype.isEdgeIgnored=function(edge){var model=this.graph.getModel();return!model.isEdge(edge)||!this.graph.isCellVisible(edge)||model.getTerminal(edge,true)==null||model.getTerminal(edge,false)==null;};mxGraphLayout.prototype.setEdgeStyleEnabled=function(edge,value){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,(value)?'0':'1',[edge]);};mxGraphLayout.prototype.setOrthogonalEdge=function(edge,value){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,(value)?'1':'0',[edge]);};mxGraphLayout.prototype.getParentOffset=function(parent){var result=new mxPoint();if(parent!=null&&parent!=this.parent){var model=this.graph.getModel();if(model.isAncestor(this.parent,parent)){var parentGeo=model.getGeometry(parent);while(parent!=this.parent){result.x=result.x+parentGeo.x;result.y=result.y+parentGeo.y;parent=model.getParent(parent);;parentGeo=model.getGeometry(parent);}}}return result;};mxGraphLayout.prototype.setEdgePoints=function(edge,points){if(edge!=null){var model=this.graph.model;var geometry=model.getGeometry(edge);if(geometry==null){geometry=new mxGeometry();geometry.setRelative(true);}else{geometry=geometry.clone();}if(this.parent!=null&&points!=null){var parent=model.getParent(edge);var parentOffset=this.getParentOffset(parent);for(var i=0;i<points.length;i++){points[i].x=points[i].x-parentOffset.x;points[i].y=points[i].y-parentOffset.y;}}geometry.points=points;model.setGeometry(edge,geometry);}};mxGraphLayout.prototype.setVertexLocation=function(cell,x,y){var model=this.graph.getModel();var geometry=model.getGeometry(cell);var result=null;if(geometry!=null){result=new mxRectangle(x,y,geometry.width,geometry.height);if(this.useBoundingBox){var state=this.graph.getView().getState(cell);if(state!=null&&state.text!=null&&state.text.boundingBox!=null){var scale=this.graph.getView().scale;var box=state.text.boundingBox;if(state.text.boundingBox.x<state.x){x+=(state.x-box.x)/scale;result.width=box.width;}if(state.text.boundingBox.y<state.y){y+=(state.y-box.y)/scale;result.height=box.height;}}}if(this.parent!=null){var parent=model.getParent(cell);if(parent!=null&&parent!=this.parent){var parentOffset=this.getParentOffset(parent);x=x-parentOffset.x;y=y-parentOffset.y;}}if(geometry.x!=x||geometry.y!=y){geometry=geometry.clone();geometry.x=x;geometry.y=y;model.setGeometry(cell,geometry);}}return result;};mxGraphLayout.prototype.getVertexBounds=function(cell){var geo=this.graph.getModel().getGeometry(cell);if(this.useBoundingBox){var state=this.graph.getView().getState(cell);if(state!=null&&state.text!=null&&state.text.boundingBox!=null){var scale=this.graph.getView().scale;var tmp=state.text.boundingBox;var dx0=Math.max(state.x-tmp.x,0)/scale;var dy0=Math.max(state.y-tmp.y,0)/scale;var dx1=Math.max((tmp.x+tmp.width)-(state.x+state.width),0)/scale;var dy1=Math.max((tmp.y+tmp.height)-(state.y+state.height),0)/scale;geo=new mxRectangle(geo.x-dx0,geo.y-dy0,geo.width+dx0+dx1,geo.height+dy0+dy1);}}if(this.parent!=null){var parent=this.graph.getModel().getParent(cell);geo=geo.clone();if(parent!=null&&parent!=this.parent){var parentOffset=this.getParentOffset(parent);geo.x=geo.x+parentOffset.x;geo.y=geo.y+parentOffset.y;}}return new mxRectangle(geo.x,geo.y,geo.width,geo.height);};mxGraphLayout.prototype.arrangeGroups=function(groups,border){this.graph.getModel().beginUpdate();try{for(var i=groups.length-1;i>=0;i--){var group=groups[i];var children=this.graph.getChildVertices(group);var bounds=this.graph.getBoundingBoxFromGeometry(children);var geometry=this.graph.getCellGeometry(group);var left=0;var top=0;if(this.graph.isSwimlane(group)){var size=this.graph.getStartSize(group);left=size.width;top=size.height;}if(bounds!=null&&geometry!=null){geometry=geometry.clone();geometry.x=geometry.x+bounds.x-border-left;geometry.y=geometry.y+bounds.y-border-top;geometry.width=bounds.width+2*border+left;geometry.height=bounds.height+2*border+top;this.graph.getModel().setGeometry(group,geometry);this.graph.moveCells(children,border+left-bounds.x,border+top-bounds.y);}}}finally{this.graph.getModel().endUpdate();}};function mxStackLayout(graph,horizontal,spacing,x0,y0,border){mxGraphLayout.call(this,graph);this.horizontal=(horizontal!=null)?horizontal:true;this.spacing=(spacing!=null)?spacing:0;this.x0=(x0!=null)?x0:0;this.y0=(y0!=null)?y0:0;this.border=(border!=null)?border:0;};mxStackLayout.prototype=new mxGraphLayout();mxStackLayout.prototype.constructor=mxStackLayout;mxStackLayout.prototype.horizontal=null;mxStackLayout.prototype.spacing=null;mxStackLayout.prototype.x0=null;mxStackLayout.prototype.y0=null;mxStackLayout.prototype.border=0;mxStackLayout.prototype.keepFirstLocation=false;mxStackLayout.prototype.fill=false;mxStackLayout.prototype.resizeParent=false;mxStackLayout.prototype.resizeLast=false;mxStackLayout.prototype.wrap=null;mxStackLayout.prototype.isHorizontal=function(){return this.horizontal;};mxStackLayout.prototype.moveCell=function(cell,x,y){var model=this.graph.getModel();var parent=model.getParent(cell);var horizontal=this.isHorizontal();if(cell!=null&&parent!=null){var i=0;var last=0;var childCount=model.getChildCount(parent);var value=(horizontal)?x:y;var pstate=this.graph.getView().getState(parent);if(pstate!=null){value-=(horizontal)?pstate.x:pstate.y;}for(i=0;i<childCount;i++){var child=model.getChildAt(parent,i);if(child!=cell){var bounds=model.getGeometry(child);if(bounds!=null){var tmp=(horizontal)?bounds.x+bounds.width/2:bounds.y+bounds.height/2;if(last<value&&tmp>value){break;}last=tmp;}}}var idx=parent.getIndex(cell);idx=Math.max(0,i-((i>idx)?1:0));model.add(parent,cell,idx);}};mxStackLayout.prototype.getParentSize=function(parent){var model=this.graph.getModel();var pgeo=model.getGeometry(parent);if(this.graph.container!=null&&((pgeo==null&&model.isLayer(parent))||parent==this.graph.getView().currentRoot)){var width=this.graph.container.offsetWidth-1;var height=this.graph.container.offsetHeight-1;pgeo=new mxRectangle(0,0,width,height);}return pgeo;};mxStackLayout.prototype.execute=function(parent){if(parent!=null){var horizontal=this.isHorizontal();var model=this.graph.getModel();var pgeo=this.getParentSize(parent);var fillValue=0;if(pgeo!=null){fillValue=(horizontal)?pgeo.height:pgeo.width;}fillValue-=2*this.spacing+2*this.border;var size=(this.graph.isSwimlane(parent))?this.graph.getStartSize(parent):new mxRectangle();fillValue-=(horizontal)?size.height:size.width;var x0=this.x0+size.width+this.border;var y0=this.y0+size.height+this.border;model.beginUpdate();try{var tmp=0;var last=null;var childCount=model.getChildCount(parent);for(var i=0;i<childCount;i++){var child=model.getChildAt(parent,i);if(!this.isVertexIgnored(child)&&this.isVertexMovable(child)){var geo=model.getGeometry(child);if(geo!=null){geo=geo.clone();if(this.wrap!=null&&last!=null){if((horizontal&&last.x+last.width+geo.width+2*this.spacing>this.wrap)||(!horizontal&&last.y+last.height+geo.height+2*this.spacing>this.wrap)){last=null;if(horizontal){y0+=tmp+this.spacing;}else{x0+=tmp+this.spacing;}tmp=0;}}tmp=Math.max(tmp,(horizontal)?geo.height:geo.width);if(last!=null){if(horizontal){geo.x=last.x+last.width+this.spacing;}else{geo.y=last.y+last.height+this.spacing;}}else if(!this.keepFirstLocation){if(horizontal){geo.x=x0;}else{geo.y=y0;}}if(horizontal){geo.y=y0;}else{geo.x=x0;}if(this.fill&&fillValue>0){if(horizontal){geo.height=fillValue;}else{geo.width=fillValue;}}model.setGeometry(child,geo);last=geo;}}}if(this.resizeParent&&pgeo!=null&&last!=null&&!this.graph.isCellCollapsed(parent)){pgeo=pgeo.clone();if(horizontal){pgeo.width=last.x+last.width+this.spacing;}else{pgeo.height=last.y+last.height+this.spacing;}model.setGeometry(parent,pgeo);}else if(this.resizeLast&&pgeo!=null&&last!=null){if(horizontal){last.width=pgeo.width-last.x-this.spacing;}else{last.height=pgeo.height-last.y-this.spacing;}}}finally{model.endUpdate();}}};function mxPartitionLayout(graph,horizontal,spacing,border){mxGraphLayout.call(this,graph);this.horizontal=(horizontal!=null)?horizontal:true;this.spacing=spacing||0;this.border=border||0;};mxPartitionLayout.prototype=new mxGraphLayout();mxPartitionLayout.prototype.constructor=mxPartitionLayout;mxPartitionLayout.prototype.horizontal=null;mxPartitionLayout.prototype.spacing=null;mxPartitionLayout.prototype.border=null;mxPartitionLayout.prototype.resizeVertices=true;mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal;};mxPartitionLayout.prototype.moveCell=function(cell,x,y){var model=this.graph.getModel();var parent=model.getParent(cell);if(cell!=null&&parent!=null){var i=0;var last=0;var childCount=model.getChildCount(parent);for(i=0;i<childCount;i++){var child=model.getChildAt(parent,i);var bounds=this.getVertexBounds(child);if(bounds!=null){var tmp=bounds.x+bounds.width/2;if(last<x&&tmp>x){break;}last=tmp;}}var idx=parent.getIndex(cell);idx=Math.max(0,i-((i>idx)?1:0));model.add(parent,cell,idx);}};mxPartitionLayout.prototype.execute=function(parent){var horizontal=this.isHorizontal();var model=this.graph.getModel();var pgeo=model.getGeometry(parent);if(this.graph.container!=null&&((pgeo==null&&model.isLayer(parent))||parent==this.graph.getView().currentRoot)){var width=this.graph.container.offsetWidth-1;var height=this.graph.container.offsetHeight-1;pgeo=new mxRectangle(0,0,width,height);}if(pgeo!=null){var children=[];var childCount=model.getChildCount(parent);for(var i=0;i<childCount;i++){var child=model.getChildAt(parent,i);if(!this.isVertexIgnored(child)&&this.isVertexMovable(child)){children.push(child);}}var n=children.length;if(n>0){var x0=this.border;var y0=this.border;var other=(horizontal)?pgeo.height:pgeo.width;other-=2*this.border;var size=(this.graph.isSwimlane(parent))?this.graph.getStartSize(parent):new mxRectangle();other-=(horizontal)?size.height:size.width;x0=x0+size.width;y0=y0+size.height;var tmp=this.border+(n-1)*this.spacing;var value=(horizontal)?((pgeo.width-x0-tmp)/n):((pgeo.height-y0-tmp)/n);if(value>0){model.beginUpdate();try{for(var i=0;i<n;i++){var child=children[i];var geo=model.getGeometry(child);if(geo!=null){geo=geo.clone();geo.x=x0;geo.y=y0;if(horizontal){if(this.resizeVertices){geo.width=value;geo.height=other;}x0+=value+this.spacing;}else{if(this.resizeVertices){geo.height=value;geo.width=other;}y0+=value+this.spacing;}model.setGeometry(child,geo);}}}finally{model.endUpdate();}}}}};function mxCompactTreeLayout(graph,horizontal,invert){mxGraphLayout.call(this,graph);this.horizontal=(horizontal!=null)?horizontal:true;this.invert=(invert!=null)?invert:false;};mxCompactTreeLayout.prototype=new mxGraphLayout();mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout;mxCompactTreeLayout.prototype.horizontal=null;mxCompactTreeLayout.prototype.invert=null;mxCompactTreeLayout.prototype.resizeParent=true;mxCompactTreeLayout.prototype.groupPadding=10;mxCompactTreeLayout.prototype.parentsChanged=null;mxCompactTreeLayout.prototype.moveTree=false;mxCompactTreeLayout.prototype.levelDistance=10;mxCompactTreeLayout.prototype.nodeDistance=20;mxCompactTreeLayout.prototype.resetEdges=true;mxCompactTreeLayout.prototype.prefHozEdgeSep=5;mxCompactTreeLayout.prototype.prefVertEdgeOff=4;mxCompactTreeLayout.prototype.minEdgeJetty=8;mxCompactTreeLayout.prototype.channelBuffer=4;mxCompactTreeLayout.prototype.edgeRouting=true;mxCompactTreeLayout.prototype.isVertexIgnored=function(vertex){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||this.graph.getConnections(vertex).length==0;};mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal;};mxCompactTreeLayout.prototype.execute=function(parent,root){this.parent=parent;var model=this.graph.getModel();if(root==null){if(this.graph.getEdges(parent,model.getParent(parent),this.invert,!this.invert,false).length>0){root=parent;}else{var roots=this.graph.findTreeRoots(parent,true,this.invert);if(roots.length>0){for(var i=0;i<roots.length;i++){if(!this.isVertexIgnored(roots[i])&&this.graph.getEdges(roots[i],null,this.invert,!this.invert,false).length>0){root=roots[i];break;}}}}}if(root!=null){if(this.resizeParent){this.parentsChanged=new Object();}else{this.parentsChanged=null;}model.beginUpdate();try{var node=this.dfs(root,parent);if(node!=null){this.layout(node);var x0=this.graph.gridSize;var y0=x0;if(!this.moveTree){var g=this.getVertexBounds(root);if(g!=null){x0=g.x;y0=g.y;}}var bounds=null;if(this.isHorizontal()){bounds=this.horizontalLayout(node,x0,y0);}else{bounds=this.verticalLayout(node,null,x0,y0);}if(bounds!=null){var dx=0;var dy=0;if(bounds.x<0){dx=Math.abs(x0-bounds.x);}if(bounds.y<0){dy=Math.abs(y0-bounds.y);}if(dx!=0||dy!=0){this.moveNode(node,dx,dy);}if(this.resizeParent){this.adjustParents();}if(this.edgeRouting){this.localEdgeProcessing(node);}}}}finally{model.endUpdate();}}};mxCompactTreeLayout.prototype.moveNode=function(node,dx,dy){node.x+=dx;node.y+=dy;this.apply(node);var child=node.child;while(child!=null){this.moveNode(child,dx,dy);child=child.next;}};mxCompactTreeLayout.prototype.dfs=function(cell,parent,visited){visited=(visited!=null)?visited:[];var id=mxCellPath.create(cell);var node=null;if(cell!=null&&visited[id]==null&&!this.isVertexIgnored(cell)){visited[id]=cell;node=this.createNode(cell);var model=this.graph.getModel();var prev=null;var out=this.graph.getEdges(cell,parent,this.invert,!this.invert,false,true);var view=this.graph.getView();for(var i=0;i<out.length;i++){var edge=out[i];if(!this.isEdgeIgnored(edge)){if(this.resetEdges){this.setEdgePoints(edge,null);}if(this.edgeRouting){this.setEdgeStyleEnabled(edge,false);this.setEdgePoints(edge,null);}var state=view.getState(edge);var target=(state!=null)?state.getVisibleTerminal(this.invert):view.getVisibleTerminal(edge,this.invert);var tmp=this.dfs(target,parent,visited);if(tmp!=null&&model.getGeometry(target)!=null){if(prev==null){node.child=tmp;}else{prev.next=tmp;}prev=tmp;}}}}return node;};mxCompactTreeLayout.prototype.layout=function(node){if(node!=null){var child=node.child;while(child!=null){this.layout(child);child=child.next;}if(node.child!=null){this.attachParent(node,this.join(node));}else{this.layoutLeaf(node);}}};mxCompactTreeLayout.prototype.horizontalLayout=function(node,x0,y0,bounds){node.x+=x0+node.offsetX;node.y+=y0+node.offsetY;bounds=this.apply(node,bounds);var child=node.child;if(child!=null){bounds=this.horizontalLayout(child,node.x,node.y,bounds);var siblingOffset=node.y+child.offsetY;var s=child.next;while(s!=null){bounds=this.horizontalLayout(s,node.x+child.offsetX,siblingOffset,bounds);siblingOffset+=s.offsetY;s=s.next;}}return bounds;};mxCompactTreeLayout.prototype.verticalLayout=function(node,parent,x0,y0,bounds){node.x+=x0+node.offsetY;node.y+=y0+node.offsetX;bounds=this.apply(node,bounds);var child=node.child;if(child!=null){bounds=this.verticalLayout(child,node,node.x,node.y,bounds);var siblingOffset=node.x+child.offsetY;var s=child.next;while(s!=null){bounds=this.verticalLayout(s,node,siblingOffset,node.y+child.offsetX,bounds);siblingOffset+=s.offsetY;s=s.next;}}return bounds;};mxCompactTreeLayout.prototype.attachParent=function(node,height){var x=this.nodeDistance+this.levelDistance;var y2=(height-node.width)/2-this.nodeDistance;var y1=y2+node.width+2*this.nodeDistance-height;node.child.offsetX=x+node.height;node.child.offsetY=y1;node.contour.upperHead=this.createLine(node.height,0,this.createLine(x,y1,node.contour.upperHead));node.contour.lowerHead=this.createLine(node.height,0,this.createLine(x,y2,node.contour.lowerHead));};mxCompactTreeLayout.prototype.layoutLeaf=function(node){var dist=2*this.nodeDistance;node.contour.upperTail=this.createLine(node.height+dist,0);node.contour.upperHead=node.contour.upperTail;node.contour.lowerTail=this.createLine(0,-node.width-dist);node.contour.lowerHead=this.createLine(node.height+dist,0,node.contour.lowerTail);};mxCompactTreeLayout.prototype.join=function(node){var dist=2*this.nodeDistance;var child=node.child;node.contour=child.contour;var h=child.width+dist;var sum=h;child=child.next;while(child!=null){var d=this.merge(node.contour,child.contour);child.offsetY=d+h;child.offsetX=0;h=child.width+dist;sum+=d+h;child=child.next;}return sum;};mxCompactTreeLayout.prototype.merge=function(p1,p2){var x=0;var y=0;var total=0;var upper=p1.lowerHead;var lower=p2.upperHead;while(lower!=null&&upper!=null){var d=this.offset(x,y,lower.dx,lower.dy,upper.dx,upper.dy);y+=d;total+=d;if(x+lower.dx<=upper.dx){x+=lower.dx;y+=lower.dy;lower=lower.next;}else{x-=upper.dx;y-=upper.dy;upper=upper.next;}}if(lower!=null){var b=this.bridge(p1.upperTail,0,0,lower,x,y);p1.upperTail=(b.next!=null)?p2.upperTail:b;p1.lowerTail=p2.lowerTail;}else{var b=this.bridge(p2.lowerTail,x,y,upper,0,0);if(b.next==null){p1.lowerTail=b;}}p1.lowerHead=p2.lowerHead;return total;};mxCompactTreeLayout.prototype.offset=function(p1,p2,a1,a2,b1,b2){var d=0;if(b1<=p1||p1+a1<=0){return 0;}var t=b1*a2-a1*b2;if(t>0){if(p1<0){var s=p1*a2;d=s/a1-p2;}else if(p1>0){var s=p1*b2;d=s/b1-p2;}else{d=-p2;}}else if(b1<p1+a1){var s=(b1-p1)*a2;d=b2-(p2+s/a1);}else if(b1>p1+a1){var s=(a1+p1)*b2;d=s/b1-(p2+a2);}else{d=b2-(p2+a2);}if(d>0){return d;}else{return 0;}};mxCompactTreeLayout.prototype.bridge=function(line1,x1,y1,line2,x2,y2){var dx=x2+line2.dx-x1;var dy=0;var s=0;if(line2.dx==0){dy=line2.dy;}else{s=dx*line2.dy;dy=s/line2.dx;}var r=this.createLine(dx,dy,line2.next);line1.next=this.createLine(0,y2+line2.dy-dy-y1,r);return r;};mxCompactTreeLayout.prototype.createNode=function(cell){var node=new Object();node.cell=cell;node.x=0;node.y=0;node.width=0;node.height=0;var geo=this.getVertexBounds(cell);if(geo!=null){if(this.isHorizontal()){node.width=geo.height;node.height=geo.width;}else{node.width=geo.width;node.height=geo.height;}}node.offsetX=0;node.offsetY=0;node.contour=new Object();return node;};mxCompactTreeLayout.prototype.apply=function(node,bounds){var model=this.graph.getModel();var cell=node.cell;var g=model.getGeometry(cell);if(cell!=null&&g!=null){if(this.isVertexMovable(cell)){g=this.setVertexLocation(cell,node.x,node.y);if(this.resizeParent){var parent=model.getParent(cell);var id=mxCellPath.create(parent);if(this.parentsChanged[id]==null){this.parentsChanged[id]=parent;}}}if(bounds==null){bounds=new mxRectangle(g.x,g.y,g.width,g.height);}else{bounds=new mxRectangle(Math.min(bounds.x,g.x),Math.min(bounds.y,g.y),Math.max(bounds.x+bounds.width,g.x+g.width),Math.max(bounds.y+bounds.height,g.y+g.height));}}return bounds;};mxCompactTreeLayout.prototype.createLine=function(dx,dy,next){var line=new Object();line.dx=dx;line.dy=dy;line.next=next;return line;};mxCompactTreeLayout.prototype.adjustParents=function(){var tmp=[];for(var id in this.parentsChanged){tmp.push(this.parentsChanged[id]);}this.arrangeGroups(mxUtils.sortCells(tmp,true),this.groupPadding);};mxCompactTreeLayout.prototype.localEdgeProcessing=function(node){this.processNodeOutgoing(node);var child=node.child;while(child!=null){this.localEdgeProcessing(child);child=child.next;}};mxCompactTreeLayout.prototype.processNodeOutgoing=function(node){var child=node.child;var parentCell=node.cell;var childCount=0;var sortedCells=[];while(child!=null){childCount++;var sortingCriterion=child.x;if(this.horizontal){sortingCriterion=child.y;}sortedCells.push(new WeightedCellSorter(child,sortingCriterion));child=child.next;}sortedCells.sort(WeightedCellSorter.prototype.compare);var availableWidth=node.width;var requiredWidth=(childCount+1)*this.prefHozEdgeSep;if(availableWidth>requiredWidth+(2*this.prefHozEdgeSep)){availableWidth-=2*this.prefHozEdgeSep;}var edgeSpacing=availableWidth/childCount;var currentXOffset=edgeSpacing/2.0;if(availableWidth>requiredWidth+(2*this.prefHozEdgeSep)){currentXOffset+=this.prefHozEdgeSep;}var currentYOffset=this.minEdgeJetty-this.prefVertEdgeOff;var maxYOffset=0;var parentBounds=this.getVertexBounds(parentCell);child=node.child;for(var j=0;j<sortedCells.length;j++){var childCell=sortedCells[j].cell.cell;var childBounds=this.getVertexBounds(childCell);var edges=this.graph.getEdgesBetween(parentCell,childCell,false);var newPoints=[];var x=0;var y=0;for(var i=0;i<edges.length;i++){if(this.horizontal){x=parentBounds.x+parentBounds.width;y=parentBounds.y+currentXOffset;newPoints.push(new mxPoint(x,y));x=parentBounds.x+parentBounds.width+currentYOffset;newPoints.push(new mxPoint(x,y));y=childBounds.y+childBounds.height/2.0;newPoints.push(new mxPoint(x,y));this.setEdgePoints(edges[i],newPoints);}else{x=parentBounds.x+currentXOffset;y=parentBounds.y+parentBounds.height;newPoints.push(new mxPoint(x,y));y=parentBounds.y+parentBounds.height+currentYOffset;newPoints.push(new mxPoint(x,y));x=childBounds.x+childBounds.width/2.0;newPoints.push(new mxPoint(x,y));this.setEdgePoints(edges[i],newPoints);}}if(j<childCount/2){currentYOffset+=this.prefVertEdgeOff;}else if(j>childCount/2){currentYOffset-=this.prefVertEdgeOff;}currentXOffset+=edgeSpacing;maxYOffset=Math.max(maxYOffset,currentYOffset);}};function WeightedCellSorter(cell,weightedValue){this.cell=cell;this.weightedValue=weightedValue;};WeightedCellSorter.prototype.weightedValue=0;WeightedCellSorter.prototype.nudge=false;WeightedCellSorter.prototype.visited=false;WeightedCellSorter.prototype.rankIndex=null;WeightedCellSorter.prototype.cell=null;WeightedCellSorter.prototype.compare=function(a,b){if(a!=null&&b!=null){if(b.weightedValue>a.weightedValue){return 1;}else if(b.weightedValue<a.weightedValue){return-1;}else{if(b.nudge){return 1;}else{return-1;}}}else{return 0;}};function mxFastOrganicLayout(graph){mxGraphLayout.call(this,graph);};mxFastOrganicLayout.prototype=new mxGraphLayout();mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout;mxFastOrganicLayout.prototype.useInputOrigin=true;mxFastOrganicLayout.prototype.resetEdges=true;mxFastOrganicLayout.prototype.disableEdgeStyle=true;mxFastOrganicLayout.prototype.forceConstant=50;mxFastOrganicLayout.prototype.forceConstantSquared=0;mxFastOrganicLayout.prototype.minDistanceLimit=2;mxFastOrganicLayout.prototype.maxDistanceLimit=500;mxFastOrganicLayout.prototype.minDistanceLimitSquared=4;mxFastOrganicLayout.prototype.initialTemp=200;mxFastOrganicLayout.prototype.temperature=0;mxFastOrganicLayout.prototype.maxIterations=0;mxFastOrganicLayout.prototype.iteration=0;mxFastOrganicLayout.prototype.vertexArray;mxFastOrganicLayout.prototype.dispX;mxFastOrganicLayout.prototype.dispY;mxFastOrganicLayout.prototype.cellLocation;mxFastOrganicLayout.prototype.radius;mxFastOrganicLayout.prototype.radiusSquared;mxFastOrganicLayout.prototype.isMoveable;mxFastOrganicLayout.prototype.neighbours;mxFastOrganicLayout.prototype.indices;mxFastOrganicLayout.prototype.allowedToRun=true;mxFastOrganicLayout.prototype.isVertexIgnored=function(vertex){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||this.graph.getConnections(vertex).length==0;};mxFastOrganicLayout.prototype.execute=function(parent){var model=this.graph.getModel();this.vertexArray=[];var cells=this.graph.getChildVertices(parent);for(var i=0;i<cells.length;i++){if(!this.isVertexIgnored(cells[i])){this.vertexArray.push(cells[i]);}}var initialBounds=(this.useInputOrigin)?this.graph.view.getBounds(this.vertexArray):null;var n=this.vertexArray.length;this.indices=[];this.dispX=[];this.dispY=[];this.cellLocation=[];this.isMoveable=[];this.neighbours=[];this.radius=[];this.radiusSquared=[];if(this.forceConstant<0.001){this.forceConstant=0.001;}this.forceConstantSquared=this.forceConstant*this.forceConstant;for(var i=0;i<this.vertexArray.length;i++){var vertex=this.vertexArray[i];this.cellLocation[i]=[];var id=mxCellPath.create(vertex);this.indices[id]=i;var bounds=this.getVertexBounds(vertex);var width=bounds.width;var height=bounds.height;var x=bounds.x;var y=bounds.y;this.cellLocation[i][0]=x+width/2.0;this.cellLocation[i][1]=y+height/2.0;this.radius[i]=Math.min(width,height);this.radiusSquared[i]=this.radius[i]*this.radius[i];}model.beginUpdate();try{for(var i=0;i<n;i++){this.dispX[i]=0;this.dispY[i]=0;this.isMoveable[i]=this.isVertexMovable(this.vertexArray[i]);var edges=this.graph.getConnections(this.vertexArray[i],parent);var cells=this.graph.getOpposites(edges,this.vertexArray[i]);this.neighbours[i]=[];for(var j=0;j<cells.length;j++){if(this.resetEdges){this.graph.resetEdge(edges[j]);}if(this.disableEdgeStyle){this.setEdgeStyleEnabled(edges[j],false);}var id=mxCellPath.create(cells[j]);var index=this.indices[id];if(index!=null){this.neighbours[i][j]=index;}else{this.neighbours[i][j]=i;}}}this.temperature=this.initialTemp;if(this.maxIterations==0){this.maxIterations=20*Math.sqrt(n);}for(this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun){return;}this.calcRepulsion();this.calcAttraction();this.calcPositions();this.reduceTemperature();}var minx=null;var miny=null;for(var i=0;i<this.vertexArray.length;i++){var vertex=this.vertexArray[i];if(this.isVertexMovable(vertex)){var bounds=this.getVertexBounds(vertex);if(bounds!=null){this.cellLocation[i][0]-=bounds.width/2.0;this.cellLocation[i][1]-=bounds.height/2.0;var x=this.graph.snap(this.cellLocation[i][0]);var y=this.graph.snap(this.cellLocation[i][1]);this.setVertexLocation(vertex,x,y);if(minx==null){minx=x;}else{minx=Math.min(minx,x);}if(miny==null){miny=y;}else{miny=Math.min(miny,y);}}}}var dx=-(minx||0)+1;var dy=-(miny||0)+1;if(initialBounds!=null){dx+=initialBounds.x;dy+=initialBounds.y;}this.graph.moveCells(this.vertexArray,dx,dy);}finally{model.endUpdate();}};mxFastOrganicLayout.prototype.calcPositions=function(){for(var index=0;index<this.vertexArray.length;index++){if(this.isMoveable[index]){var deltaLength=Math.sqrt(this.dispX[index]*this.dispX[index]+this.dispY[index]*this.dispY[index]);if(deltaLength<0.001){deltaLength=0.001;}var newXDisp=this.dispX[index]/deltaLength*Math.min(deltaLength,this.temperature);var newYDisp=this.dispY[index]/deltaLength*Math.min(deltaLength,this.temperature);this.dispX[index]=0;this.dispY[index]=0;this.cellLocation[index][0]+=newXDisp;this.cellLocation[index][1]+=newYDisp;}}};mxFastOrganicLayout.prototype.calcAttraction=function(){for(var i=0;i<this.vertexArray.length;i++){for(var k=0;k<this.neighbours[i].length;k++){var j=this.neighbours[i][k];if(i!=j&&this.isMoveable[i]&&this.isMoveable[j]){var xDelta=this.cellLocation[i][0]-this.cellLocation[j][0];var yDelta=this.cellLocation[i][1]-this.cellLocation[j][1];var deltaLengthSquared=xDelta*xDelta+yDelta*yDelta-this.radiusSquared[i]-this.radiusSquared[j];if(deltaLengthSquared<this.minDistanceLimitSquared){deltaLengthSquared=this.minDistanceLimitSquared;}var deltaLength=Math.sqrt(deltaLengthSquared);var force=(deltaLengthSquared)/this.forceConstant;var displacementX=(xDelta/deltaLength)*force;var displacementY=(yDelta/deltaLength)*force;this.dispX[i]-=displacementX;this.dispY[i]-=displacementY;this.dispX[j]+=displacementX;this.dispY[j]+=displacementY;}}}};mxFastOrganicLayout.prototype.calcRepulsion=function(){var vertexCount=this.vertexArray.length;for(var i=0;i<vertexCount;i++){for(var j=i;j<vertexCount;j++){if(!this.allowedToRun){return;}if(j!=i&&this.isMoveable[i]&&this.isMoveable[j]){var xDelta=this.cellLocation[i][0]-this.cellLocation[j][0];var yDelta=this.cellLocation[i][1]-this.cellLocation[j][1];if(xDelta==0){xDelta=0.01+Math.random();}if(yDelta==0){yDelta=0.01+Math.random();}var deltaLength=Math.sqrt((xDelta*xDelta)+(yDelta*yDelta));var deltaLengthWithRadius=deltaLength-this.radius[i]-this.radius[j];if(deltaLengthWithRadius>this.maxDistanceLimit){continue;}if(deltaLengthWithRadius<this.minDistanceLimit){deltaLengthWithRadius=this.minDistanceLimit;}var force=this.forceConstantSquared/deltaLengthWithRadius;var displacementX=(xDelta/deltaLength)*force;var displacementY=(yDelta/deltaLength)*force;this.dispX[i]+=displacementX;this.dispY[i]+=displacementY;this.dispX[j]-=displacementX;this.dispY[j]-=displacementY;}}}};mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1.0-this.iteration/this.maxIterations);};function mxCircleLayout(graph,radius){mxGraphLayout.call(this,graph);this.radius=(radius!=null)?radius:100;};mxCircleLayout.prototype=new mxGraphLayout();mxCircleLayout.prototype.constructor=mxCircleLayout;mxCircleLayout.prototype.radius=null;mxCircleLayout.prototype.moveCircle=false;mxCircleLayout.prototype.x0=0;mxCircleLayout.prototype.y0=0;mxCircleLayout.prototype.resetEdges=true;mxCircleLayout.prototype.disableEdgeStyle=true;mxCircleLayout.prototype.execute=function(parent){var model=this.graph.getModel();model.beginUpdate();try{var max=0;var top=null;var left=null;var vertices=[];var childCount=model.getChildCount(parent);for(var i=0;i<childCount;i++){var cell=model.getChildAt(parent,i);if(!this.isVertexIgnored(cell)){vertices.push(cell);var bounds=this.getVertexBounds(cell);if(top==null){top=bounds.y;}else{top=Math.min(top,bounds.y);}if(left==null){left=bounds.x;}else{left=Math.min(left,bounds.x);}max=Math.max(max,Math.max(bounds.width,bounds.height));}else if(!this.isEdgeIgnored(cell)){if(this.resetEdges){this.graph.resetEdge(cell);}if(this.disableEdgeStyle){this.setEdgeStyleEnabled(cell,false);}}}var vertexCount=vertices.length;var r=Math.max(vertexCount*max/Math.PI,this.radius);if(this.moveCircle){left=this.x0;top=this.y0;}this.circle(vertices,r,left,top);}finally{model.endUpdate();}};mxCircleLayout.prototype.circle=function(vertices,r,left,top){var vertexCount=vertices.length;var phi=2*Math.PI/vertexCount;for(var i=0;i<vertexCount;i++){if(this.isVertexMovable(vertices[i])){this.setVertexLocation(vertices[i],left+r+r*Math.sin(i*phi),top+r+r*Math.cos(i*phi));}}};function mxParallelEdgeLayout(graph){mxGraphLayout.call(this,graph);};mxParallelEdgeLayout.prototype=new mxGraphLayout();mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout;mxParallelEdgeLayout.prototype.spacing=20;mxParallelEdgeLayout.prototype.execute=function(parent){var lookup=this.findParallels(parent);this.graph.model.beginUpdate();try{for(var i in lookup){var parallels=lookup[i];if(parallels.length>1){this.layout(parallels);}}}finally{this.graph.model.endUpdate();}};mxParallelEdgeLayout.prototype.findParallels=function(parent){var model=this.graph.getModel();var lookup=[];var childCount=model.getChildCount(parent);for(var i=0;i<childCount;i++){var child=model.getChildAt(parent,i);if(!this.isEdgeIgnored(child)){var id=this.getEdgeId(child);if(id!=null){if(lookup[id]==null){lookup[id]=[];}lookup[id].push(child);}}}return lookup;};mxParallelEdgeLayout.prototype.getEdgeId=function(edge){var view=this.graph.getView();var state=view.getState(edge);var src=(state!=null)?state.getVisibleTerminal(true):view.getVisibleTerminal(edge,true);var trg=(state!=null)?state.getVisibleTerminal(false):view.getVisibleTerminal(edge,false);if(src!=null&&trg!=null){src=mxCellPath.create(src);trg=mxCellPath.create(trg);return(src>trg)?trg+'-'+src:src+'-'+trg;}return null;};mxParallelEdgeLayout.prototype.layout=function(parallels){var edge=parallels[0];var model=this.graph.getModel();var src=model.getGeometry(model.getTerminal(edge,true));var trg=model.getGeometry(model.getTerminal(edge,false));if(src==trg){var x0=src.x+src.width+this.spacing;var y0=src.y+src.height/2;for(var i=0;i<parallels.length;i++){this.route(parallels[i],x0,y0);x0+=this.spacing;}}else if(src!=null&&trg!=null){var scx=src.x+src.width/2;var scy=src.y+src.height/2;var tcx=trg.x+trg.width/2;var tcy=trg.y+trg.height/2;var dx=tcx-scx;var dy=tcy-scy;var len=Math.sqrt(dx*dx+dy*dy);var x0=scx+dx/2;var y0=scy+dy/2;var nx=dy*this.spacing/len;var ny=dx*this.spacing/len;x0+=nx*(parallels.length-1)/2;y0-=ny*(parallels.length-1)/2;for(var i=0;i<parallels.length;i++){this.route(parallels[i],x0,y0);x0-=nx;y0+=ny;}}};mxParallelEdgeLayout.prototype.route=function(edge,x,y){if(this.graph.isCellMovable(edge)){this.setEdgePoints(edge,[new mxPoint(x,y)]);}};function mxCompositeLayout(graph,layouts,master){mxGraphLayout.call(this,graph);this.layouts=layouts;this.master=master;};mxCompositeLayout.prototype=new mxGraphLayout();mxCompositeLayout.prototype.constructor=mxCompositeLayout;mxCompositeLayout.prototype.layouts=null;mxCompositeLayout.prototype.master=null;mxCompositeLayout.prototype.moveCell=function(cell,x,y){if(this.master!=null){this.master.move.apply(this.master,arguments);}else{this.layouts[0].move.apply(this.layouts[0],arguments);}};mxCompositeLayout.prototype.execute=function(parent){var model=this.graph.getModel();model.beginUpdate();try{for(var i=0;i<this.layouts.length;i++){this.layouts[i].execute.apply(this.layouts[i],arguments);}}finally{model.endUpdate();}};function mxEdgeLabelLayout(graph,radius){mxGraphLayout.call(this,graph);};mxEdgeLabelLayout.prototype=new mxGraphLayout();mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout;mxEdgeLabelLayout.prototype.execute=function(parent){var view=this.graph.view;var model=this.graph.getModel();var edges=[];var vertices=[];var childCount=model.getChildCount(parent);for(var i=0;i<childCount;i++){var cell=model.getChildAt(parent,i);var state=view.getState(cell);if(state!=null){if(!this.isVertexIgnored(cell)){vertices.push(state);}else if(!this.isEdgeIgnored(cell)){edges.push(state);}}}this.placeLabels(vertices,edges);};mxEdgeLabelLayout.prototype.placeLabels=function(v,e){var model=this.graph.getModel();model.beginUpdate();try{for(var i=0;i<e.length;i++){var edge=e[i];if(edge!=null&&edge.text!=null&&edge.text.boundingBox!=null){for(var j=0;j<v.length;j++){var vertex=v[j];if(vertex!=null){this.avoid(edge,vertex);}}}}}finally{model.endUpdate();}};mxEdgeLabelLayout.prototype.avoid=function(edge,vertex){var model=this.graph.getModel();var labRect=edge.text.boundingBox;if(mxUtils.intersects(labRect,vertex)){var dy1=-labRect.y-labRect.height+vertex.y;var dy2=-labRect.y+vertex.y+vertex.height;var dy=(Math.abs(dy1)<Math.abs(dy2))?dy1:dy2;var dx1=-labRect.x-labRect.width+vertex.x;var dx2=-labRect.x+vertex.x+vertex.width;var dx=(Math.abs(dx1)<Math.abs(dx2))?dx1:dx2;if(Math.abs(dx)<Math.abs(dy)){dy=0;}else{dx=0;}var g=model.getGeometry(edge.cell);if(g!=null){g=g.clone();if(g.offset!=null){g.offset.x+=dx;g.offset.y+=dy;}else{g.offset=new mxPoint(dx,dy);}model.setGeometry(edge.cell,g);}}};function mxGraphAbstractHierarchyCell(){this.x=[];this.y=[];this.temp=[];};mxGraphAbstractHierarchyCell.prototype.maxRank=-1;mxGraphAbstractHierarchyCell.prototype.minRank=-1;mxGraphAbstractHierarchyCell.prototype.x=null;mxGraphAbstractHierarchyCell.prototype.y=null;mxGraphAbstractHierarchyCell.prototype.width=0;mxGraphAbstractHierarchyCell.prototype.height=0;mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null;mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null;mxGraphAbstractHierarchyCell.prototype.temp=null;mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(layer){return null;};mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(layer){return null;};mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return false;};mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return false;};mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(layer){return null;};mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(layer,value){return null;};mxGraphAbstractHierarchyCell.prototype.setX=function(layer,value){if(this.isVertex()){this.x[0]=value;}else if(this.isEdge()){this.x[layer-this.minRank-1]=value;}};mxGraphAbstractHierarchyCell.prototype.getX=function(layer){if(this.isVertex()){return this.x[0];}else if(this.isEdge()){return this.x[layer-this.minRank-1];}return 0.0;};mxGraphAbstractHierarchyCell.prototype.setY=function(layer,value){if(this.isVertex()){this.y[0]=value;}else if(this.isEdge()){this.y[layer-this.minRank-1]=value;}};function mxGraphHierarchyNode(cell){mxGraphAbstractHierarchyCell.apply(this,arguments);this.cell=cell;};mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell();mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode;mxGraphHierarchyNode.prototype.cell=null;mxGraphHierarchyNode.prototype.connectsAsTarget=[];mxGraphHierarchyNode.prototype.connectsAsSource=[];mxGraphHierarchyNode.prototype.hashCode=false;mxGraphHierarchyNode.prototype.getRankValue=function(layer){return this.maxRank;};mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(layer){if(this.nextLayerConnectedCells==null){this.nextLayerConnectedCells=[];this.nextLayerConnectedCells[0]=[];for(var i=0;i<this.connectsAsTarget.length;i++){var edge=this.connectsAsTarget[i];if(edge.maxRank==-1||edge.maxRank==layer+1){this.nextLayerConnectedCells[0].push(edge.source);}else{this.nextLayerConnectedCells[0].push(edge);}}}return this.nextLayerConnectedCells[0];};mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(layer){if(this.previousLayerConnectedCells==null){this.previousLayerConnectedCells=[];this.previousLayerConnectedCells[0]=[];for(var i=0;i<this.connectsAsSource.length;i++){var edge=this.connectsAsSource[i];if(edge.minRank==-1||edge.minRank==layer-1){this.previousLayerConnectedCells[0].push(edge.target);}else{this.previousLayerConnectedCells[0].push(edge);}}}return this.previousLayerConnectedCells[0];};mxGraphHierarchyNode.prototype.isVertex=function(){return true;};mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(layer){return this.temp[0];};mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(layer,value){this.temp[0]=value;};mxGraphHierarchyNode.prototype.isAncestor=function(otherNode){if(otherNode!=null&&this.hashCode!=null&&otherNode.hashCode!=null&&this.hashCode.length<otherNode.hashCode.length){if(this.hashCode==otherNode.hashCode){return true;}if(this.hashCode==null||this.hashCode==null){return false;}for(var i=0;i<this.hashCode.length;i++){if(this.hashCode[i]!=otherNode.hashCode[i]){return false;}}return true;}return false;};function mxGraphHierarchyEdge(edges){mxGraphAbstractHierarchyCell.apply(this,arguments);this.edges=edges;};mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell();mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge;mxGraphHierarchyEdge.prototype.edges=null;mxGraphHierarchyEdge.prototype.source=null;mxGraphHierarchyEdge.prototype.target=null;mxGraphHierarchyEdge.prototype.isReversed=false;mxGraphHierarchyEdge.prototype.invert=function(layer){var temp=this.source;this.source=this.target;this.target=temp;this.isReversed=!this.isReversed;};mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(layer){if(this.nextLayerConnectedCells==null){this.nextLayerConnectedCells=[];for(var i=0;i<this.temp.length;i++){this.nextLayerConnectedCells[i]=[];if(i==this.nextLayerConnectedCells.length-1){this.nextLayerConnectedCells[i].push(this.source);}else{this.nextLayerConnectedCells[i].push(this);}}}return this.nextLayerConnectedCells[layer-this.minRank-1];};mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(layer){if(this.previousLayerConnectedCells==null){this.previousLayerConnectedCells=[];for(var i=0;i<this.temp.length;i++){this.previousLayerConnectedCells[i]=[];if(i==0){this.previousLayerConnectedCells[i].push(this.target);}else{this.previousLayerConnectedCells[i].push(this);}}}return this.previousLayerConnectedCells[layer-this.minRank-1];};mxGraphHierarchyEdge.prototype.isEdge=function(){return true;};mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(layer){return this.temp[layer-this.minRank-1];};mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(layer,value){this.temp[layer-this.minRank-1]=value;};function mxGraphHierarchyModel(layout,vertices,roots,parent,ordered,deterministic,tightenToSource,scanRanksFromSinks){var graph=layout.getGraph();this.deterministic=deterministic;this.tightenToSource=tightenToSource;this.scanRanksFromSinks=scanRanksFromSinks;this.roots=roots;this.parent=parent;this.vertexMapper=new Object();this.edgeMapper=new Object();this.maxRank=0;var internalVertices=[];if(vertices==null){vertices=this.graph.getChildVertices(parent);}if(ordered){this.formOrderedHierarchy(layout,vertices,parent);}else{if(this.scanRanksFromSinks){this.maxRank=0;}else{this.maxRank=this.SOURCESCANSTARTRANK;}this.createInternalCells(layout,vertices,internalVertices);for(var i=0;i<vertices.length;i++){var edges=internalVertices[i].connectsAsSource;for(var j=0;j<edges.length;j++){var internalEdge=edges[j];var realEdges=internalEdge.edges;for(var k=0;k<realEdges.length;k++){var realEdge=realEdges[k];var targetCell=graph.getView().getVisibleTerminal(realEdge,false);var targetCellId=mxCellPath.create(targetCell);var internalTargetCell=this.vertexMapper[targetCellId];if(internalTargetCell!=null&&internalVertices[i]!=internalTargetCell){internalEdge.target=internalTargetCell;if(internalTargetCell.connectsAsTarget.length==0){internalTargetCell.connectsAsTarget=[];}if(mxUtils.indexOf(internalTargetCell.connectsAsTarget,internalEdge)<0){internalTargetCell.connectsAsTarget.push(internalEdge);}}}}internalVertices[i].temp[0]=1;}}};mxGraphHierarchyModel.prototype.scanRanksFromSinks=true;mxGraphHierarchyModel.prototype.maxRank=null;mxGraphHierarchyModel.prototype.vertexMapper=null;mxGraphHierarchyModel.prototype.edgeMapper=null;mxGraphHierarchyModel.prototype.ranks=null;mxGraphHierarchyModel.prototype.roots=null;mxGraphHierarchyModel.prototype.parent=null;mxGraphHierarchyModel.prototype.dfsCount=0;mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=100000000;mxGraphHierarchyModel.prototype.deterministic;mxGraphHierarchyModel.prototype.tightenToSource=false;mxGraphHierarchyModel.prototype.formOrderedHierarchy=function(layout,vertices,parent){var graph=layout.getGraph();this.createInternalCells(layout,vertices,internalVertices);var tempList=[];for(var i=0;i<vertices.length;i++){var edges=internalVertices[i].connectsAsSource;for(var j=0;j<edges.length;j++){var internalEdge=edges[j];var realEdges=internalEdge.edges;for(var k=0;k<realEdges.length;k++){var realEdge=realEdges[k];var targetCell=this.graph.getView().getVisibleTerminal(realEdge,false);var targetCellId=mxCellPath.create(targetCell);var internalTargetCell=vertexMapper[targetCellId];if(internalTargetCell!=null&&internalVertices[i]!=internalTargetCell){internalEdge.target=internalTargetCell;if(internalTargetCell.connectsAsTarget.length==0){internalTargetCell.connectsAsTarget=[];}if(internalTargetCell.temp[0]==1){internalEdge.invert();internalTargetCell.connectsAsSource.push(internalEdge);tempList.push(internalEdge);if(mxUtils.indexOf(internalVertices[i].connectsAsTarget,internalEdge)<0){internalVertices[i].connectsAsTarget.push(internalEdge);}}else{if(mxUtils.indexOf(internalTargetCell.connectsAsTarget,internalEdge)<0){internalTargetCell.connectsAsTarget.push(internalEdge);}}}}}for(var j=0;j<tempList.length;j++){var tmp=tempList[j];mxUtils.remove(tmp,internalVertices[i].connectsAsSource);}tempList=[];internalVertices[i].temp[0]=1;}};mxGraphHierarchyModel.prototype.createInternalCells=function(layout,vertices,internalVertices){var graph=layout.getGraph();for(var i=0;i<vertices.length;i++){internalVertices[i]=new mxGraphHierarchyNode(vertices[i]);var vertexId=mxCellPath.create(vertices[i]);this.vertexMapper[vertexId]=internalVertices[i];var conns=graph.getConnections(vertices[i],this.parent);var outgoingCells=graph.getOpposites(conns,vertices[i]);internalVertices[i].connectsAsSource=[];for(var j=0;j<outgoingCells.length;j++){var cell=outgoingCells[j];if(cell!=vertices[i]&&!layout.isVertexIgnored(cell)){var edges=graph.getEdgesBetween(vertices[i],cell,true);if(edges!=null&&edges.length>0){var internalEdge=new mxGraphHierarchyEdge(edges);for(var k=0;k<edges.length;k++){var edge=edges[k];var edgeId=mxCellPath.create(edge);this.edgeMapper[edgeId]=internalEdge;graph.resetEdge(edge);if(layout.disableEdgeStyle){layout.setEdgeStyleEnabled(edge,false);layout.setOrthogonalEdge(edge,true);}}internalEdge.source=internalVertices[i];if(mxUtils.indexOf(internalVertices[i].connectsAsSource,internalEdge)<0){internalVertices[i].connectsAsSource.push(internalEdge);}}}}internalVertices[i].temp[0]=0;}};mxGraphHierarchyModel.prototype.initialRank=function(){var startNodes=[];if(!this.scanRanksFromSinks&&this.roots!=null){for(var i=0;i<this.roots.length;i++){var vertexId=mxCellPath.create(this.roots[i]);var internalNode=this.vertexMapper[vertexId];if(internalNode!=null){startNodes.push(internalNode);}}}if(this.scanRanksFromSinks){for(var key in this.vertexMapper){var internalNode=this.vertexMapper[key];if(internalNode.connectsAsSource==null||internalNode.connectsAsSource.length==0){startNodes.push(internalNode);}}}if(startNodes.length==0){for(var key in this.vertexMapper){var internalNode=this.vertexMapper[key];if(internalNode.connectsAsTarget==null||internalNode.connectsAsTarget.length==0){startNodes.push(internalNode);this.scanRanksFromSinks=false;this.maxRank=this.SOURCESCANSTARTRANK;}}}for(var key in this.vertexMapper){var internalNode=this.vertexMapper[key];internalNode.temp[0]=-1;}var startNodesCopy=startNodes.slice();while(startNodes.length>0){var internalNode=startNodes[0];var layerDeterminingEdges;var edgesToBeMarked;if(this.scanRanksFromSinks){layerDeterminingEdges=internalNode.connectsAsSource;edgesToBeMarked=internalNode.connectsAsTarget;}else{layerDeterminingEdges=internalNode.connectsAsTarget;edgesToBeMarked=internalNode.connectsAsSource;}var allEdgesScanned=true;var minimumLayer=0;if(!this.scanRanksFromSinks){minimumLayer=this.SOURCESCANSTARTRANK;}for(var i=0;i<layerDeterminingEdges.length;i++){var internalEdge=layerDeterminingEdges[i];if(internalEdge.temp[0]==5270620){var otherNode;if(this.scanRanksFromSinks){otherNode=internalEdge.target;}else{otherNode=internalEdge.source;}if(this.scanRanksFromSinks){minimumLayer=Math.max(minimumLayer,otherNode.temp[0]+1);}else{minimumLayer=Math.min(minimumLayer,otherNode.temp[0]-1);}}else{allEdgesScanned=false;break;}}if(allEdgesScanned){internalNode.temp[0]=minimumLayer;if(this.scanRanksFromSinks){this.maxRank=Math.max(this.maxRank,minimumLayer);}else{this.maxRank=Math.min(this.maxRank,minimumLayer);}if(edgesToBeMarked!=null){for(var i=0;i<edgesToBeMarked.length;i++){var internalEdge=edgesToBeMarked[i];internalEdge.temp[0]=5270620;var otherNode;if(this.scanRanksFromSinks){otherNode=internalEdge.source;}else{otherNode=internalEdge.target;}if(otherNode.temp[0]==-1){startNodes.push(otherNode);otherNode.temp[0]=-2;}}}startNodes.shift();}else{var removedCell=startNodes.shift();startNodes.push(internalNode);if(removedCell==internalNode&&startNodes.length==1){break;}}}if(this.scanRanksFromSinks){if(this.tightenToSource){for(var i=0;i<startNodesCopy.length;i++){var internalNode=startNodesCopy[i];var currentMinLayer=1000000;var layerDeterminingEdges=internalNode.connectsAsTarget;for(var j=0;j<internalNode.connectsAsTarget.length;j++){var internalEdge=internalNode.connectsAsTarget[j];var otherNode=internalEdge.source;internalNode.temp[0]=Math.min(currentMinLayer,otherNode.temp[0]-1);currentMinLayer=internalNode.temp[0];}}}}else{for(var key in this.vertexMapper){var internalNode=this.vertexMapper[key];internalNode.temp[0]-=this.maxRank;}this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank;}};mxGraphHierarchyModel.prototype.fixRanks=function(){var rankList=[];this.ranks=[];for(var i=0;i<this.maxRank+1;i++){rankList[i]=[];this.ranks[i]=rankList[i];}var rootsArray=null;if(this.roots!=null){var oldRootsArray=this.roots;rootsArray=[];for(var i=0;i<oldRootsArray.length;i++){var cell=oldRootsArray[i];var cellId=mxCellPath.create(cell);var internalNode=this.vertexMapper[cellId];rootsArray[i]=internalNode;}}this.visit(function(parent,node,edge,layer,seen){if(seen==0&&node.maxRank<0&&node.minRank<0){rankList[node.temp[0]].push(node);node.maxRank=node.temp[0];node.minRank=node.temp[0];node.temp[0]=rankList[node.maxRank].length-1;}if(parent!=null&&edge!=null){var parentToCellRankDifference=parent.maxRank-node.maxRank;if(parentToCellRankDifference>1){edge.maxRank=parent.maxRank;edge.minRank=node.maxRank;edge.temp=[];edge.x=[];edge.y=[];for(var i=edge.minRank+1;i<edge.maxRank;i++){rankList[i].push(edge);edge.setGeneralPurposeVariable(i,rankList[i].length-1);}}}},rootsArray,false,null);};mxGraphHierarchyModel.prototype.visit=function(visitor,dfsRoots,trackAncestors,seenNodes){if(dfsRoots!=null){for(var i=0;i<dfsRoots.length;i++){var internalNode=dfsRoots[i];if(internalNode!=null){if(seenNodes==null){seenNodes=new Object();}if(trackAncestors){internalNode.hashCode=[];internalNode.hashCode[0]=this.dfsCount;internalNode.hashCode[1]=i;this.extendedDfs(null,internalNode,null,visitor,seenNodes,internalNode.hashCode,i,0);}else{this.dfs(null,internalNode,null,visitor,seenNodes,0);}}}this.dfsCount++;}};mxGraphHierarchyModel.prototype.dfs=function(parent,root,connectingEdge,visitor,seen,layer){if(root!=null){var rootId=mxCellPath.create(root.cell);if(seen[rootId]==null){seen[rootId]=root;visitor(parent,root,connectingEdge,layer,0);var outgoingEdges=root.connectsAsSource.slice();for(var i=0;i<outgoingEdges.length;i++){var internalEdge=outgoingEdges[i];var targetNode=internalEdge.target;this.dfs(root,targetNode,internalEdge,visitor,seen,layer+1);}}else{visitor(parent,root,connectingEdge,layer,1);}}};mxGraphHierarchyModel.prototype.extendedDfs=function(parent,root,connectingEdge,visitor,seen,ancestors,childHash,layer){if(root!=null){if(parent!=null){if(root.hashCode==null||root.hashCode[0]!=parent.hashCode[0]){var hashCodeLength=parent.hashCode.length+1;root.hashCode=parent.hashCode.slice();root.hashCode[hashCodeLength-1]=childHash;}}var rootId=mxCellPath.create(root.cell);if(seen[rootId]==null){seen[rootId]=root;visitor(parent,root,connectingEdge,layer,0);var outgoingEdges=root.connectsAsSource.slice();for(var i=0;i<outgoingEdges.length;i++){var internalEdge=outgoingEdges[i];var targetNode=internalEdge.target;this.extendedDfs(root,targetNode,internalEdge,visitor,seen,root.hashCode,i,layer+1);}}else{visitor(parent,root,connectingEdge,layer,1);}}};function mxHierarchicalLayoutStage(){};mxHierarchicalLayoutStage.prototype.execute=function(parent){};function mxMedianHybridCrossingReduction(layout){this.layout=layout;};mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage();mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction;mxMedianHybridCrossingReduction.prototype.layout=null;mxMedianHybridCrossingReduction.prototype.maxIterations=24;mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null;mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0;mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0;mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2;mxMedianHybridCrossingReduction.prototype.execute=function(parent){var model=this.layout.getModel();this.nestedBestRanks=[];for(var i=0;i<model.ranks.length;i++){this.nestedBestRanks[i]=model.ranks[i].slice();}var iterationsWithoutImprovement=0;var currentBestCrossings=this.calculateCrossings(model);for(var i=0;i<this.maxIterations&&iterationsWithoutImprovement<this.maxNoImprovementIterations;i++){this.weightedMedian(i,model);this.transpose(i,model);var candidateCrossings=this.calculateCrossings(model);if(candidateCrossings<currentBestCrossings){currentBestCrossings=candidateCrossings;iterationsWithoutImprovement=0;for(var j=0;j<this.nestedBestRanks.length;j++){var rank=model.ranks[j];for(var k=0;k<rank.length;k++){var cell=rank[k];this.nestedBestRanks[j][cell.getGeneralPurposeVariable(j)]=cell;}}}else{iterationsWithoutImprovement++;for(var j=0;j<this.nestedBestRanks.length;j++){var rank=model.ranks[j];for(var k=0;k<rank.length;k++){var cell=rank[k];cell.setGeneralPurposeVariable(j,k);}}}if(currentBestCrossings==0){break;}}var ranks=[];var rankList=[];for(var i=0;i<model.maxRank+1;i++){rankList[i]=[];ranks[i]=rankList[i];}for(var i=0;i<this.nestedBestRanks.length;i++){for(var j=0;j<this.nestedBestRanks[i].length;j++){rankList[i].push(this.nestedBestRanks[i][j]);}}model.ranks=ranks;};mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(model){var numRanks=model.ranks.length;var totalCrossings=0;for(var i=1;i<numRanks;i++){totalCrossings+=this.calculateRankCrossing(i,model);}return totalCrossings;};mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(i,model){var totalCrossings=0;var rank=model.ranks[i];var previousRank=model.ranks[i-1];var currentRankSize=rank.length;var previousRankSize=previousRank.length;var connections=[];for(var j=0;j<currentRankSize;j++){connections[j]=[];}for(var j=0;j<rank.length;j++){var node=rank[j];var rankPosition=node.getGeneralPurposeVariable(i);var connectedCells=node.getPreviousLayerConnectedCells(i);for(var k=0;k<connectedCells.length;k++){var connectedNode=connectedCells[k];var otherCellRankPosition=connectedNode.getGeneralPurposeVariable(i-1);connections[rankPosition][otherCellRankPosition]=201207;}}for(var j=0;j<currentRankSize;j++){for(var k=0;k<previousRankSize;k++){if(connections[j][k]==201207){for(var j2=j+1;j2<currentRankSize;j2++){for(var k2=0;k2<k;k2++){if(connections[j2][k2]==201207){totalCrossings++;}}}for(var j2=0;j2<j;j2++){for(var k2=k+1;k2<previousRankSize;k2++){if(connections[j2][k2]==201207){totalCrossings++;}}}}}}return totalCrossings/2;};mxMedianHybridCrossingReduction.prototype.transpose=function(mainLoopIteration,model){var improved=true;var count=0;var maxCount=10;while(improved&&count++<maxCount){var nudge=mainLoopIteration%2==1&&count%2==1;improved=false;for(var i=0;i<model.ranks.length;i++){var rank=model.ranks[i];var orderedCells=[];for(var j=0;j<rank.length;j++){var cell=rank[j];var tempRank=cell.getGeneralPurposeVariable(i);if(tempRank<0){tempRank=j;}orderedCells[tempRank]=cell;}var leftCellAboveConnections=null;var leftCellBelowConnections=null;var rightCellAboveConnections=null;var rightCellBelowConnections=null;var leftAbovePositions=null;var leftBelowPositions=null;var rightAbovePositions=null;var rightBelowPositions=null;var leftCell=null;var rightCell=null;for(var j=0;j<(rank.length-1);j++){if(j==0){leftCell=orderedCells[j];leftCellAboveConnections=leftCell.getNextLayerConnectedCells(i);leftCellBelowConnections=leftCell.getPreviousLayerConnectedCells(i);leftAbovePositions=[];leftBelowPositions=[];for(var k=0;k<leftAbovePositions.length;k++){leftAbovePositions[k]=leftCellAboveConnections[k].getGeneralPurposeVariable(i+1);}for(var k=0;k<leftBelowPositions.length;k++){leftBelowPositions[k]=leftCellBelowConnections[k].getGeneralPurposeVariable(i-1);}}else{leftCellAboveConnections=rightCellAboveConnections;leftCellBelowConnections=rightCellBelowConnections;leftAbovePositions=rightAbovePositions;leftBelowPositions=rightBelowPositions;leftCell=rightCell;}rightCell=orderedCells[j+1];rightCellAboveConnections=rightCell.getNextLayerConnectedCells(i);rightCellBelowConnections=rightCell.getPreviousLayerConnectedCells(i);rightAbovePositions=[];rightBelowPositions=[];for(var k=0;k<rightAbovePositions.length;k++){rightAbovePositions[k]=rightCellAboveConnections[k].getGeneralPurposeVariable(i+1);}for(var k=0;k<rightBelowPositions.length;k++){rightBelowPositions[k]=rightCellBelowConnections[k].getGeneralPurposeVariable(i-1);}var totalCurrentCrossings=0;var totalSwitchedCrossings=0;for(var k=0;k<leftAbovePositions.length;k++){for(var ik=0;ik<rightAbovePositions.length;ik++){if(leftAbovePositions[k]>rightAbovePositions[ik]){totalCurrentCrossings++;}if(leftAbovePositions[k]<rightAbovePositions[ik]){totalSwitchedCrossings++;}}}for(var k=0;k<leftBelowPositions.length;k++){for(var ik=0;ik<rightBelowPositions.length;ik++){if(leftBelowPositions[k]>rightBelowPositions[ik]){totalCurrentCrossings++;}if(leftBelowPositions[k]<rightBelowPositions[ik]){totalSwitchedCrossings++;}}}if((totalSwitchedCrossings<totalCurrentCrossings)||(totalSwitchedCrossings==totalCurrentCrossings&&nudge)){var temp=leftCell.getGeneralPurposeVariable(i);leftCell.setGeneralPurposeVariable(i,rightCell.getGeneralPurposeVariable(i));rightCell.setGeneralPurposeVariable(i,temp);rightCellAboveConnections=leftCellAboveConnections;rightCellBelowConnections=leftCellBelowConnections;rightAbovePositions=leftAbovePositions;rightBelowPositions=leftBelowPositions;rightCell=leftCell;if(!nudge){improved=true;}}}}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(iteration,model){var downwardSweep=(iteration%2==0);if(downwardSweep){for(var j=model.maxRank-1;j>=0;j--){this.medianRank(j,downwardSweep);}}else{for(var j=1;j<model.maxRank;j++){this.medianRank(j,downwardSweep);}}};mxMedianHybridCrossingReduction.prototype.medianRank=function(rankValue,downwardSweep){var numCellsForRank=this.nestedBestRanks[rankValue].length;var medianValues=[];for(var i=0;i<numCellsForRank;i++){var cell=this.nestedBestRanks[rankValue][i];medianValues[i]=new MedianCellSorter();medianValues[i].cell=cell;var nextLevelConnectedCells;if(downwardSweep){nextLevelConnectedCells=cell.getNextLayerConnectedCells(rankValue);}else{nextLevelConnectedCells=cell.getPreviousLayerConnectedCells(rankValue);}var nextRankValue;if(downwardSweep){nextRankValue=rankValue+1;}else{nextRankValue=rankValue-1;}if(nextLevelConnectedCells!=null&&nextLevelConnectedCells.length!=0){medianValues[i].medianValue=this.medianValue(nextLevelConnectedCells,nextRankValue);}else{medianValues[i].medianValue=-1.0;}}medianValues.sort(MedianCellSorter.prototype.compare);for(var i=0;i<numCellsForRank;i++){medianValues[i].cell.setGeneralPurposeVariable(rankValue,i);}};mxMedianHybridCrossingReduction.prototype.medianValue=function(connectedCells,rankValue){var medianValues=[];var arrayCount=0;for(var i=0;i<connectedCells.length;i++){var cell=connectedCells[i];medianValues[arrayCount++]=cell.getGeneralPurposeVariable(rankValue);}medianValues.sort(MedianCellSorter.prototype.compare);if(arrayCount%2==1){return medianValues[arrayCount/2];}else if(arrayCount==2){return((medianValues[0]+medianValues[1])/2.0);}else{var medianPoint=arrayCount/2;var leftMedian=medianValues[medianPoint-1]-medianValues[0];var rightMedian=medianValues[arrayCount-1]-medianValues[medianPoint];return(medianValues[medianPoint-1]*rightMedian+medianValues[medianPoint]*leftMedian)/(leftMedian+rightMedian);}};function MedianCellSorter(){};MedianCellSorter.prototype.medianValue=0;MedianCellSorter.prototype.cell=false;MedianCellSorter.prototype.compare=function(a,b){if(a!=null&&b!=null){if(b.medianValue>a.medianValue){return-1;}else if(b.medianValue<a.medianValue){return 1;}else{return 0;}}else{return 0;}};function mxMinimumCycleRemover(layout){this.layout=layout;};mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage();mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover;mxMinimumCycleRemover.prototype.layout=null;mxMinimumCycleRemover.prototype.execute=function(parent){var model=this.layout.getModel();var seenNodes=new Object();var unseenNodes=mxUtils.clone(model.vertexMapper,null,true);var rootsArray=null;if(model.roots!=null){var modelRoots=model.roots;rootsArray=[];for(var i=0;i<modelRoots.length;i++){var nodeId=mxCellPath.create(modelRoots[i]);rootsArray[i]=model.vertexMapper[nodeId];}}model.visit(function(parent,node,connectingEdge,layer,seen){if(node.isAncestor(parent)){connectingEdge.invert();mxUtils.remove(connectingEdge,parent.connectsAsSource);parent.connectsAsTarget.push(connectingEdge);mxUtils.remove(connectingEdge,node.connectsAsTarget);node.connectsAsSource.push(connectingEdge);}var cellId=mxCellPath.create(node.cell);seenNodes[cellId]=node;delete unseenNodes[cellId];},rootsArray,true,null);var possibleNewRoots=null;if(unseenNodes.lenth>0){possibleNewRoots=mxUtils.clone(unseenNodes,null,true);}var seenNodesCopy=mxUtils.clone(seenNodes,null,true);model.visit(function(parent,node,connectingEdge,layer,seen){if(node.isAncestor(parent)){connectingEdge.invert();mxUtils.remove(connectingEdge,parent.connectsAsSource);node.connectsAsSource.push(connectingEdge);parent.connectsAsTarget.push(connectingEdge);mxUtils.remove(connectingEdge,node.connectsAsTarget);}var cellId=mxCellPath.create(node.cell);seenNodes[cellId]=node;delete unseenNodes[cellId];},unseenNodes,true,seenNodesCopy);var graph=this.layout.getGraph();if(possibleNewRoots!=null&&possibleNewRoots.length>0){var roots=model.roots;for(var i=0;i<possibleNewRoots.length;i++){var node=possibleNewRoots[i];var realNode=node.cell;var numIncomingEdges=graph.getIncomingEdges(realNode).length;if(numIncomingEdges==0){roots.push(realNode);}}}};function mxCoordinateAssignment(layout,intraCellSpacing,interRankCellSpacing,orientation,initialX,parallelEdgeSpacing){this.layout=layout;this.intraCellSpacing=intraCellSpacing;this.interRankCellSpacing=interRankCellSpacing;this.orientation=orientation;this.initialX=initialX;this.parallelEdgeSpacing=parallelEdgeSpacing;};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3};mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage();mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment;mxCoordinateAssignment.prototype.layout=null;mxCoordinateAssignment.prototype.intraCellSpacing=30;mxCoordinateAssignment.prototype.interRankCellSpacing=10;mxCoordinateAssignment.prototype.parallelEdgeSpacing=10;mxCoordinateAssignment.prototype.maxIterations=8;mxCoordinateAssignment.prototype.prefHozEdgeSep=5;mxCoordinateAssignment.prototype.prefVertEdgeOff=2;mxCoordinateAssignment.prototype.minEdgeJetty=12;mxCoordinateAssignment.prototype.channelBuffer=4;mxCoordinateAssignment.prototype.jettyPositions=null;mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH;mxCoordinateAssignment.prototype.initialX=null;mxCoordinateAssignment.prototype.limitX=null;mxCoordinateAssignment.prototype.currentXDelta=null;mxCoordinateAssignment.prototype.widestRank=null;mxCoordinateAssignment.prototype.rankTopY=null;mxCoordinateAssignment.prototype.rankBottomY=null;mxCoordinateAssignment.prototype.widestRankValue=null;mxCoordinateAssignment.prototype.rankWidths=null;mxCoordinateAssignment.prototype.rankY=null;mxCoordinateAssignment.prototype.fineTuning=true;mxCoordinateAssignment.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE;mxCoordinateAssignment.prototype.nextLayerConnectedCache=null;mxCoordinateAssignment.prototype.previousLayerConnectedCache=null;mxCoordinateAssignment.prototype.execute=function(parent){this.jettyPositions=[];var model=this.layout.getModel();this.currentXDelta=0.0;this.initialCoords(this.layout.getGraph(),model);if(this.fineTuning){this.minNode(model);}var bestXDelta=100000000.0;if(this.fineTuning){for(var i=0;i<this.maxIterations;i++){if(i!=0){this.medianPos(i,model);this.minNode(model);}if(this.currentXDelta<bestXDelta){for(var j=0;j<model.ranks.length;j++){var rank=model.ranks[j];for(var k=0;k<rank.length;k++){var cell=rank[k];cell.setX(j,cell.getGeneralPurposeVariable(j));}}bestXDelta=this.currentXDelta;}else{for(var j=0;j<model.ranks.length;j++){var rank=model.ranks[j];for(var k=0;k<rank.length;k++){var cell=rank[k];cell.setGeneralPurposeVariable(j,cell.getX(j));}}}this.minPath(this.layout.getGraph(),model);this.currentXDelta=0;}}this.setCellLocations(this.layout.getGraph(),model);};mxCoordinateAssignment.prototype.minNode=function(model){var nodeList=[];var map=[];var rank=[];for(var i=0;i<=model.maxRank;i++){rank[i]=model.ranks[i];for(var j=0;j<rank[i].length;j++){var node=rank[i][j];var nodeWrapper=new WeightedCellSorter(node,i);nodeWrapper.rankIndex=j;nodeWrapper.visited=true;nodeList.push(nodeWrapper);var cellId=mxCellPath.create(node.cell);map[cellId]=nodeWrapper;}}var maxTries=nodeList.length*10;var count=0;var tolerance=1;while(nodeList.length>0&&count<=maxTries){var cellWrapper=nodeList.shift();var cell=cellWrapper.cell;var rankValue=cellWrapper.weightedValue;var rankIndex=parseInt(cellWrapper.rankIndex);var nextLayerConnectedCells=cell.getNextLayerConnectedCells(rankValue);var previousLayerConnectedCells=cell.getPreviousLayerConnectedCells(rankValue);var numNextLayerConnected=nextLayerConnectedCells.length;var numPreviousLayerConnected=previousLayerConnectedCells.length;var medianNextLevel=this.medianXValue(nextLayerConnectedCells,rankValue+1);var medianPreviousLevel=this.medianXValue(previousLayerConnectedCells,rankValue-1);var numConnectedNeighbours=numNextLayerConnected+numPreviousLayerConnected;var currentPosition=cell.getGeneralPurposeVariable(rankValue);var cellMedian=currentPosition;if(numConnectedNeighbours>0){cellMedian=(medianNextLevel*numNextLayerConnected+medianPreviousLevel*numPreviousLayerConnected)/numConnectedNeighbours;}var positionChanged=false;if(cellMedian<currentPosition-tolerance){if(rankIndex==0){cell.setGeneralPurposeVariable(rankValue,cellMedian);positionChanged=true;}else{var leftCell=rank[rankValue][rankIndex-1];var leftLimit=leftCell.getGeneralPurposeVariable(rankValue);leftLimit=leftLimit+leftCell.width/2+this.intraCellSpacing+cell.width/2;if(leftLimit<cellMedian){cell.setGeneralPurposeVariable(rankValue,cellMedian);positionChanged=true;}else if(leftLimit<cell.getGeneralPurposeVariable(rankValue)-tolerance){cell.setGeneralPurposeVariable(rankValue,leftLimit);positionChanged=true;}}}else if(cellMedian>currentPosition+tolerance){var rankSize=rank[rankValue].length;if(rankIndex==rankSize-1){cell.setGeneralPurposeVariable(rankValue,cellMedian);positionChanged=true;}else{var rightCell=rank[rankValue][rankIndex+1];var rightLimit=rightCell.getGeneralPurposeVariable(rankValue);rightLimit=rightLimit-rightCell.width/2-this.intraCellSpacing-cell.width/2;if(rightLimit>cellMedian){cell.setGeneralPurposeVariable(rankValue,cellMedian);positionChanged=true;}else if(rightLimit>cell.getGeneralPurposeVariable(rankValue)+tolerance){cell.setGeneralPurposeVariable(rankValue,rightLimit);positionChanged=true;}}}if(positionChanged){for(var i=0;i<nextLayerConnectedCells.length;i++){var connectedCell=nextLayerConnectedCells[i];var connectedCellId=mxCellPath.create(connectedCell.cell);var connectedCellWrapper=map[connectedCellId];if(connectedCellWrapper!=null){if(connectedCellWrapper.visited==false){connectedCellWrapper.visited=true;nodeList.push(connectedCellWrapper);}}}for(var i=0;i<previousLayerConnectedCells.length;i++){var connectedCell=previousLayerConnectedCells[i];var connectedCellId=mxCellPath.create(connectedCell.cell);var connectedCellWrapper=map[connectedCellId];if(connectedCellWrapper!=null){if(connectedCellWrapper.visited==false){connectedCellWrapper.visited=true;nodeList.push(connectedCellWrapper);}}}}cellWrapper.visited=false;count++;}};mxCoordinateAssignment.prototype.medianPos=function(i,model){var downwardSweep=(i%2==0);if(downwardSweep){for(var j=model.maxRank;j>0;j--){this.rankMedianPosition(j-1,model,j);}}else{for(var j=0;j<model.maxRank-1;j++){this.rankMedianPosition(j+1,model,j);}}};mxCoordinateAssignment.prototype.rankMedianPosition=function(rankValue,model,nextRankValue){var rank=model.ranks[rankValue];var weightedValues=[];var cellMap=[];for(var i=0;i<rank.length;i++){var currentCell=rank[i];weightedValues[i]=new WeightedCellSorter();weightedValues[i].cell=currentCell;weightedValues[i].rankIndex=i;var currentCellId=mxCellPath.create(currentCell.cell);cellMap[currentCellId]=weightedValues[i];var nextLayerConnectedCells=null;if(nextRankValue<rankValue){nextLayerConnectedCells=currentCell.getPreviousLayerConnectedCells(rankValue);}else{nextLayerConnectedCells=currentCell.getNextLayerConnectedCells(rankValue);}weightedValues[i].weightedValue=this.calculatedWeightedValue(currentCell,nextLayerConnectedCells);}weightedValues.sort(WeightedCellSorter.prototype.compare);for(var i=0;i<weightedValues.length;i++){var numConnectionsNextLevel=0;var cell=weightedValues[i].cell;var nextLayerConnectedCells=null;var medianNextLevel=0;if(nextRankValue<rankValue){nextLayerConnectedCells=cell.getPreviousLayerConnectedCells(rankValue).slice();}else{nextLayerConnectedCells=cell.getNextLayerConnectedCells(rankValue).slice();}if(nextLayerConnectedCells!=null){numConnectionsNextLevel=nextLayerConnectedCells.length;if(numConnectionsNextLevel>0){medianNextLevel=this.medianXValue(nextLayerConnectedCells,nextRankValue);}else{medianNextLevel=cell.getGeneralPurposeVariable(rankValue);}}var leftBuffer=0.0;var leftLimit=-100000000.0;for(var j=weightedValues[i].rankIndex-1;j>=0;){var rankId=mxCellPath.create(rank[j].cell);var weightedValue=cellMap[rankId];if(weightedValue!=null){var leftCell=weightedValue.cell;if(weightedValue.visited){leftLimit=leftCell.getGeneralPurposeVariable(rankValue)+leftCell.width/2.0+this.intraCellSpacing+leftBuffer+cell.width/2.0;j=-1;}else{leftBuffer+=leftCell.width+this.intraCellSpacing;j--;}}}var rightBuffer=0.0;var rightLimit=100000000.0;for(var j=weightedValues[i].rankIndex+1;j<weightedValues.length;){var rankId=mxCellPath.create(rank[j].cell);var weightedValue=cellMap[rankId];if(weightedValue!=null){var rightCell=weightedValue.cell;if(weightedValue.visited){rightLimit=rightCell.getGeneralPurposeVariable(rankValue)-rightCell.width/2.0-this.intraCellSpacing-rightBuffer-cell.width/2.0;j=weightedValues.length;}else{rightBuffer+=rightCell.width+this.intraCellSpacing;j++;}}}if(medianNextLevel>=leftLimit&&medianNextLevel<=rightLimit){cell.setGeneralPurposeVariable(rankValue,medianNextLevel);}else if(medianNextLevel<leftLimit){cell.setGeneralPurposeVariable(rankValue,leftLimit);this.currentXDelta+=leftLimit-medianNextLevel;}else if(medianNextLevel>rightLimit){cell.setGeneralPurposeVariable(rankValue,rightLimit);this.currentXDelta+=medianNextLevel-rightLimit;}weightedValues[i].visited=true;}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(currentCell,collection){var totalWeight=0;for(var i=0;i<collection.length;i++){var cell=collection[i];if(currentCell.isVertex()&&cell.isVertex()){totalWeight++;}else if(currentCell.isEdge()&&cell.isEdge()){totalWeight+=8;}else{totalWeight+=2;}}return totalWeight;};mxCoordinateAssignment.prototype.medianXValue=function(connectedCells,rankValue){if(connectedCells.length==0){return 0;}var medianValues=[];for(var i=0;i<connectedCells.length;i++){medianValues[i]=connectedCells[i].getGeneralPurposeVariable(rankValue);}medianValues.sort(MedianCellSorter.prototype.compare);if(connectedCells.length%2==1){return medianValues[connectedCells.length/2];}else{var medianPoint=connectedCells.length/2;var leftMedian=medianValues[medianPoint-1];var rightMedian=medianValues[medianPoint];return((leftMedian+rightMedian)/2);}};mxCoordinateAssignment.prototype.initialCoords=function(facade,model){this.calculateWidestRank(facade,model);for(var i=this.widestRank;i>=0;i--){if(i<model.maxRank){this.rankCoordinates(i,facade,model);}}for(var i=this.widestRank+1;i<=model.maxRank;i++){if(i>0){this.rankCoordinates(i,facade,model);}}};mxCoordinateAssignment.prototype.rankCoordinates=function(rankValue,graph,model){var rank=model.ranks[rankValue];var maxY=0.0;var localX=this.initialX+(this.widestRankValue-this.rankWidths[rankValue])/2;var boundsWarning=false;for(var i=0;i<rank.length;i++){var node=rank[i];if(node.isVertex()){var bounds=this.layout.getVertexBounds(node.cell);if(bounds!=null){if(this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH){node.width=bounds.width;node.height=bounds.height;}else{node.width=bounds.height;node.height=bounds.width;}}else{boundsWarning=true;}maxY=Math.max(maxY,node.height);}else if(node.isEdge()){var numEdges=1;if(node.edges!=null){numEdges=node.edges.length;}else{mxLog.warn('edge.edges is null');}node.width=(numEdges-1)*this.parallelEdgeSpacing;}localX+=node.width/2.0;node.setX(rankValue,localX);node.setGeneralPurposeVariable(rankValue,localX);localX+=node.width/2.0;localX+=this.intraCellSpacing;}if(boundsWarning==true){mxLog.warn('At least one cell has no bounds');}};mxCoordinateAssignment.prototype.calculateWidestRank=function(graph,model){var y=-this.interRankCellSpacing;var lastRankMaxCellHeight=0.0;this.rankWidths=[];this.rankY=[];for(var rankValue=model.maxRank;rankValue>=0;rankValue--){var maxCellHeight=0.0;var rank=model.ranks[rankValue];var localX=this.initialX;var boundsWarning=false;for(var i=0;i<rank.length;i++){var node=rank[i];if(node.isVertex()){var bounds=this.layout.getVertexBounds(node.cell);if(bounds!=null){if(this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH){node.width=bounds.width;node.height=bounds.height;}else{node.width=bounds.height;node.height=bounds.width;}}else{boundsWarning=true;}maxCellHeight=Math.max(maxCellHeight,node.height);}else if(node.isEdge()){var numEdges=1;if(node.edges!=null){numEdges=node.edges.length;}else{mxLog.warn('edge.edges is null');}node.width=(numEdges-1)*this.parallelEdgeSpacing;}localX+=node.width/2.0;node.setX(rankValue,localX);node.setGeneralPurposeVariable(rankValue,localX);localX+=node.width/2.0;localX+=this.intraCellSpacing;if(localX>this.widestRankValue){this.widestRankValue=localX;this.widestRank=rankValue;}this.rankWidths[rankValue]=localX;}if(boundsWarning==true){mxLog.warn('At least one cell has no bounds');}this.rankY[rankValue]=y;var distanceToNextRank=maxCellHeight/2.0+lastRankMaxCellHeight/2.0+this.interRankCellSpacing;lastRankMaxCellHeight=maxCellHeight;if(this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST){y+=distanceToNextRank;}else{y-=distanceToNextRank;}for(var i=0;i<rank.length;i++){var cell=rank[i];cell.setY(rankValue,y);}}};mxCoordinateAssignment.prototype.minPath=function(graph,model){var edges=model.edgeMapper;for(var key in edges){var cell=edges[key];var numEdgeLayers=cell.maxRank-cell.minRank-1;var referenceX=cell.getGeneralPurposeVariable(cell.minRank+1);var edgeStraight=true;var refSegCount=0;for(var i=cell.minRank+2;i<cell.maxRank;i++){var x=cell.getGeneralPurposeVariable(i);if(referenceX!=x){edgeStraight=false;referenceX=x;}else{refSegCount++;}}if(!edgeStraight){var upSegCount=0;var downSegCount=0;var upXPositions=[];var downXPositions=[];var currentX=cell.getGeneralPurposeVariable(cell.minRank+1);for(var i=cell.minRank+1;i<cell.maxRank-1;i++){var nextX=cell.getX(i+1);if(currentX==nextX){upXPositions[i-cell.minRank-1]=currentX;upSegCount++;}else if(this.repositionValid(model,cell,i+1,currentX)){upXPositions[i-cell.minRank-1]=currentX;upSegCount++;}else{upXPositions[i-cell.minRank-1]=cell.getX(i);currentX=nextX;}}currentX=cell.getX(i);for(var i=cell.maxRank-1;i>cell.minRank+1;i--){var nextX=cell.getX(i-1);if(currentX==nextX){downXPositions[i-cell.minRank-2]=currentX;downSegCount++;}else if(this.repositionValid(model,cell,i-1,currentX)){downXPositions[i-cell.minRank-2]=currentX;downSegCount++;}else{downXPositions[i-cell.minRank-2]=cell.getX(i);currentX=nextX;}}if(downSegCount>refSegCount||upSegCount>refSegCount){if(downSegCount>upSegCount){for(var i=cell.maxRank-2;i>cell.minRank;i--){cell.setX(i,downXPositions[i-cell.minRank-1]);}}else if(upSegCount>downSegCount){for(var i=cell.minRank+2;i<cell.maxRank;i++){cell.setX(i,upXPositions[i-cell.minRank-2]);}}else{}}}}};mxCoordinateAssignment.prototype.repositionValid=function(model,cell,rank,position){var rankArray=model.ranks[rank];var rankIndex=-1;for(var i=0;i<rankArray.length;i++){if(cell==rankArray[i]){rankIndex=i;break;}}if(rankIndex<0){return false;}var currentX=cell.getGeneralPurposeVariable(rank);if(position<currentX){if(rankIndex==0){return true;}var leftCell=rankArray[rankIndex-1];var leftLimit=leftCell.getGeneralPurposeVariable(rank);leftLimit=leftLimit+leftCell.width/2+this.intraCellSpacing+cell.width/2;if(leftLimit<=position){return true;}else{return false;}}else if(position>currentX){if(rankIndex==rankArray.length-1){return true;}var rightCell=rankArray[rankIndex+1];var rightLimit=rightCell.getGeneralPurposeVariable(rank);rightLimit=rightLimit-rightCell.width/2-this.intraCellSpacing-cell.width/2;if(rightLimit>=position){return true;}else{return false;}}return true;};mxCoordinateAssignment.prototype.setCellLocations=function(graph,model){this.rankTopY=[];this.rankBottomY=[];for(var i=0;i<model.ranks.length;i++){this.rankTopY[i]=Number.MAX_VALUE;this.rankBottomY[i]=0.0;}var edges=model.edgeMapper;var vertices=model.vertexMapper;for(var key in vertices){this.setVertexLocation(vertices[key]);}if(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE){this.localEdgeProcessing(model);}for(var key in edges){this.setEdgePosition(edges[key]);}};mxCoordinateAssignment.prototype.localEdgeProcessing=function(model){var edgeMapping=model.edgeMapper;for(var rankIndex=0;rankIndex<model.ranks.length;rankIndex++){var rank=model.ranks[rankIndex];for(var cellIndex=0;cellIndex<rank.length;cellIndex++){var cell=rank[cellIndex];if(cell.isVertex()){var currentCells=cell.getPreviousLayerConnectedCells(rankIndex);var currentRank=rankIndex-1;for(var k=0;k<2;k++){if(currentRank>-1&&currentRank<model.ranks.length&&currentCells!=null&&currentCells.length>0){var sortedCells=[];for(var j=0;j<currentCells.length;j++){var sorter=new WeightedCellSorter(currentCells[j],currentCells[j].getX(currentRank));sortedCells.push(sorter);}sortedCells.sort(WeightedCellSorter.prototype.compare);var leftLimit=cell.x[0]-cell.width/2;var rightLimit=leftLimit+cell.width;var connectedEdgeCount=0;var connectedEdgeGroupCount=0;var connectedEdges=[];for(var j=0;j<sortedCells.length;j++){var innerCell=sortedCells[j].cell;var connections;if(innerCell.isVertex()){if(k==0){connections=cell.connectsAsSource;}else{connections=cell.connectsAsTarget;}for(var connIndex=0;connIndex<connections.length;connIndex++){if(connections[connIndex].source==innerCell||connections[connIndex].target==innerCell){connectedEdgeCount+=connections[connIndex].edges.length;connectedEdgeGroupCount++;connectedEdges.push(connections[connIndex]);}}}else{connectedEdgeCount+=innerCell.edges.length;connectedEdgeGroupCount++;connectedEdges.push(innerCell);}}var requiredWidth=(connectedEdgeCount+1)*this.prefHozEdgeSep;if(cell.width>requiredWidth+(2*this.prefHozEdgeSep)){leftLimit+=this.prefHozEdgeSep;rightLimit-=this.prefHozEdgeSep;}var availableWidth=rightLimit-leftLimit;var edgeSpacing=availableWidth/connectedEdgeCount;var currentX=leftLimit+edgeSpacing/2.0;var currentYOffset=this.minEdgeJetty-this.prefVertEdgeOff;var maxYOffset=0;for(var j=0;j<connectedEdges.length;j++){var numActualEdges=connectedEdges[j].edges.length;var edgeId=mxCellPath.create(connectedEdges[j].edges[0]);var pos=this.jettyPositions[edgeId];if(pos==null){pos=[];this.jettyPositions[edgeId]=pos;}if(j<connectedEdgeCount/2){currentYOffset+=this.prefVertEdgeOff;}else if(j>connectedEdgeCount/2){currentYOffset-=this.prefVertEdgeOff;}for(var m=0;m<numActualEdges;m++){pos[m*4+k*2]=currentX;currentX+=edgeSpacing;pos[m*4+k*2+1]=currentYOffset;}maxYOffset=Math.max(maxYOffset,currentYOffset);}}currentCells=cell.getNextLayerConnectedCells(rankIndex);currentRank=rankIndex+1;}}}}};mxCoordinateAssignment.prototype.setEdgePosition=function(cell){var offsetX=0;if(cell.temp[0]!=101207){var maxRank=cell.maxRank;var minRank=cell.minRank;if(maxRank==minRank){maxRank=cell.source.maxRank;minRank=cell.target.minRank;}var parallelEdgeCount=0;var edgeId=mxCellPath.create(cell.edges[0]);var jettys=this.jettyPositions[edgeId];for(var i=0;i<cell.edges.length;i++){var realEdge=cell.edges[i];var newPoints=[];if(jettys!=null){var arrayOffset=cell.isReversed?2:0;var y=cell.isReversed?this.rankTopY[minRank]:this.rankBottomY[maxRank];var jetty=jettys[parallelEdgeCount*4+1+arrayOffset];if(cell.isReversed){jetty=-jetty;}y+=jetty;var x=jettys[parallelEdgeCount*4+arrayOffset];if(this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH){newPoints.push(new mxPoint(x,y));}else{newPoints.push(new mxPoint(y,x));}}var loopStart=cell.x.length-1;var loopLimit=-1;var loopDelta=-1;var currentRank=cell.maxRank-1;if(cell.isReversed){loopStart=0;loopLimit=cell.x.length;loopDelta=1;currentRank=cell.minRank+1;}for(var j=loopStart;(cell.maxRank!=cell.minRank)&&j!=loopLimit;j+=loopDelta){var positionX=cell.x[j]+offsetX;var topChannelY=(this.rankTopY[currentRank]+this.rankBottomY[currentRank+1])/2.0;var bottomChannelY=(this.rankTopY[currentRank-1]+this.rankBottomY[currentRank])/2.0;if(cell.isReversed){var tmp=topChannelY;topChannelY=bottomChannelY;bottomChannelY=tmp;}if(this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH){newPoints.push(new mxPoint(positionX,topChannelY));newPoints.push(new mxPoint(positionX,bottomChannelY));}else{newPoints.push(new mxPoint(topChannelY,positionX));newPoints.push(new mxPoint(bottomChannelY,positionX));}this.limitX=Math.max(this.limitX,positionX);currentRank+=loopDelta;}if(jettys!=null){var arrayOffset=cell.isReversed?2:0;var rankY=cell.isReversed?this.rankBottomY[maxRank]:this.rankTopY[minRank];var jetty=jettys[parallelEdgeCount*4+3-arrayOffset];if(cell.isReversed){jetty=-jetty;}var y=rankY-jetty;var x=jettys[parallelEdgeCount*4+2-arrayOffset];if(this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH){newPoints.push(new mxPoint(x,y));}else{newPoints.push(new mxPoint(y,x));}}if(cell.isReversed){this.processReversedEdge(cell,realEdge);}this.layout.setEdgePoints(realEdge,newPoints);if(offsetX==0.0){offsetX=this.parallelEdgeSpacing;}else if(offsetX>0){offsetX=-offsetX;}else{offsetX=-offsetX+this.parallelEdgeSpacing;}parallelEdgeCount++;}cell.temp[0]=101207;}};mxCoordinateAssignment.prototype.setVertexLocation=function(cell){var realCell=cell.cell;var positionX=cell.x[0]-cell.width/2;var positionY=cell.y[0]-cell.height/2;this.rankTopY[cell.minRank]=Math.min(this.rankTopY[cell.minRank],positionY);this.rankBottomY[cell.minRank]=Math.max(this.rankBottomY[cell.minRank],positionY+cell.height);if(this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH){this.layout.setVertexLocation(realCell,positionX,positionY);}else{this.layout.setVertexLocation(realCell,positionY,positionX);}this.limitX=Math.max(this.limitX,positionX+cell.width);};mxCoordinateAssignment.prototype.processReversedEdge=function(graph,model){};function WeightedCellSorter(cell,weightedValue){this.cell=cell;this.weightedValue=weightedValue;};WeightedCellSorter.prototype.weightedValue=0;WeightedCellSorter.prototype.nudge=false;WeightedCellSorter.prototype.visited=false;WeightedCellSorter.prototype.rankIndex=null;WeightedCellSorter.prototype.cell=null;WeightedCellSorter.prototype.compare=function(a,b){if(a!=null&&b!=null){if(b.weightedValue>a.weightedValue){return-1;}else if(b.weightedValue<a.weightedValue){return 1;}else{if(b.nudge){return-1;}else{return 1;}}}else{return 0;}};function mxHierarchicalLayout(graph,orientation,deterministic){mxGraphLayout.call(this,graph);this.orientation=(orientation!=null)?orientation:mxConstants.DIRECTION_NORTH;this.deterministic=(deterministic!=null)?deterministic:true;};mxHierarchicalLayout.prototype=new mxGraphLayout();mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout;mxHierarchicalLayout.prototype.roots=null;mxHierarchicalLayout.prototype.resizeParent=false;mxHierarchicalLayout.prototype.moveParent=false;mxHierarchicalLayout.prototype.parentBorder=0;mxHierarchicalLayout.prototype.intraCellSpacing=30;mxHierarchicalLayout.prototype.interRankCellSpacing=50;mxHierarchicalLayout.prototype.interHierarchySpacing=60;mxHierarchicalLayout.prototype.parallelEdgeSpacing=10;mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH;mxHierarchicalLayout.prototype.fineTuning=true;mxHierarchicalLayout.prototype.deterministic;mxHierarchicalLayout.prototype.fixRoots=false;mxHierarchicalLayout.prototype.layoutFromSinks=true;mxHierarchicalLayout.prototype.tightenToSource=true;mxHierarchicalLayout.prototype.disableEdgeStyle=true;mxHierarchicalLayout.prototype.model=null;mxHierarchicalLayout.prototype.getModel=function(){return this.model;};mxHierarchicalLayout.prototype.execute=function(parent,roots){if(roots==null){roots=this.graph.findTreeRoots(parent);}this.roots=roots;if(this.roots!=null){var model=this.graph.getModel();model.beginUpdate();try{this.run(parent);if(this.resizeParent&&!this.graph.isCellCollapsed(parent)){this.graph.updateGroupBounds([parent],this.parentBorder,this.moveParent);}}finally{model.endUpdate();}}};mxHierarchicalLayout.prototype.run=function(parent){var hierarchyVertices=[];var fixedRoots=null;var rootLocations=null;var affectedEdges=null;if(this.fixRoots){fixedRoots=[];rootLocations=[];affectedEdges=[];}for(var i=0;i<this.roots.length;i++){var newHierarchy=true;for(var j=0;newHierarchy&&j<hierarchyVertices.length;j++){var rootId=mxCellPath.create(this.roots[i]);if(hierarchyVertices[j][rootId]!=null){newHierarchy=false;}}if(newHierarchy){var cellsStack=[];cellsStack.push(this.roots[i]);var edgeSet=null;if(this.fixRoots){fixedRoots.push(this.roots[i]);var location=this.getVertexBounds(this.roots[i]).getPoint();rootLocations.push(location);edgeSet=[];}var vertexSet=new Object();while(cellsStack.length>0){var cell=cellsStack.shift();var cellId=mxCellPath.create(cell);if(vertexSet[cellId]==null){vertexSet[cellId]=cell;if(this.fixRoots){var tmp=this.graph.getIncomingEdges(cell,parent);for(var k=0;k<tmp.length;k++){edgeSet.push(tmp[k]);}}var conns=this.graph.getConnections(cell,parent);var cells=this.graph.getOpposites(conns,cell);for(var k=0;k<cells.length;k++){var tmpId=mxCellPath.create(cells[k]);if(vertexSet[tmpId]==null){cellsStack.push(cells[k]);}}}}hierarchyVertices.push(vertexSet);if(this.fixRoots){affectedEdges.push(edgeSet);}}}var initialX=0;for(var i=0;i<hierarchyVertices.length;i++){var vertexSet=hierarchyVertices[i];var tmp=[];for(var key in vertexSet){tmp.push(vertexSet[key]);}this.model=new mxGraphHierarchyModel(this,tmp,this.roots,parent,false,this.deterministic,this.tightenToSource,this.layoutFromSinks);this.cycleStage(parent);this.layeringStage();this.crossingStage(parent);initialX=this.placementStage(initialX,parent);if(this.fixRoots){var root=fixedRoots[i];var oldLocation=rootLocations[i];var newLocation=this.getVertexBounds(root).getPoint();var diffX=oldLocation.x-newLocation.x;var diffY=oldLocation.y-newLocation.y;this.graph.moveCells(vertexSet,diffX,diffY);var connectedEdges=affectedEdges[i+1];this.graph.moveCells(connectedEdges,diffX,diffY);}}};mxHierarchicalLayout.prototype.cycleStage=function(parent){var cycleStage=new mxMinimumCycleRemover(this);cycleStage.execute(parent);};mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks();};mxHierarchicalLayout.prototype.crossingStage=function(parent){var crossingStage=new mxMedianHybridCrossingReduction(this);crossingStage.execute(parent);};mxHierarchicalLayout.prototype.placementStage=function(initialX,parent){var placementStage=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,initialX,this.parallelEdgeSpacing);placementStage.fineTuning=this.fineTuning;placementStage.execute(parent);return placementStage.limitX+this.interHierarchySpacing;};function mxGraphModel(root){this.currentEdit=this.createUndoableEdit();if(root!=null){this.setRoot(root);}else{this.clear();}};mxGraphModel.prototype=new mxEventSource();mxGraphModel.prototype.constructor=mxGraphModel;mxGraphModel.prototype.root=null;mxGraphModel.prototype.cells=null;mxGraphModel.prototype.maintainEdgeParent=true;mxGraphModel.prototype.createIds=true;mxGraphModel.prototype.prefix='';mxGraphModel.prototype.postfix='';mxGraphModel.prototype.nextId=0;mxGraphModel.prototype.currentEdit=null;mxGraphModel.prototype.updateLevel=0;mxGraphModel.prototype.endingUpdate=false;mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot());};mxGraphModel.prototype.isCreateIds=function(){return this.createIds;};mxGraphModel.prototype.setCreateIds=function(value){this.createIds=value;};mxGraphModel.prototype.createRoot=function(){var cell=new mxCell();cell.insert(new mxCell());return cell;};mxGraphModel.prototype.getCell=function(id){return(this.cells!=null)?this.cells[id]:null;};mxGraphModel.prototype.filterCells=function(cells,filter){var result=null;if(cells!=null){result=[];for(var i=0;i<cells.length;i++){if(filter(cells[i])){result.push(cells[i]);}}}return result;};mxGraphModel.prototype.getDescendants=function(parent){return this.filterDescendants(null,parent);};mxGraphModel.prototype.filterDescendants=function(filter,parent){var result=[];parent=parent||this.getRoot();if(filter==null||filter(parent)){result.push(parent);}var childCount=this.getChildCount(parent);for(var i=0;i<childCount;i++){var child=this.getChildAt(parent,i);result=result.concat(this.filterDescendants(filter,child));}return result;};mxGraphModel.prototype.getRoot=function(cell){var root=cell||this.root;if(cell!=null){while(cell!=null){root=cell;cell=this.getParent(cell);}}return root;};mxGraphModel.prototype.setRoot=function(root){this.execute(new mxRootChange(this,root));return root;};mxGraphModel.prototype.rootChanged=function(root){var oldRoot=this.root;this.root=root;this.nextId=0;this.cells=null;this.cellAdded(root);return oldRoot;};mxGraphModel.prototype.isRoot=function(cell){return cell!=null&&this.root==cell;};mxGraphModel.prototype.isLayer=function(cell){return this.isRoot(this.getParent(cell));};mxGraphModel.prototype.isAncestor=function(parent,child){while(child!=null&&child!=parent){child=this.getParent(child);}return child==parent;};mxGraphModel.prototype.contains=function(cell){return this.isAncestor(this.root,cell);};mxGraphModel.prototype.getParent=function(cell){return(cell!=null)?cell.getParent():null;};mxGraphModel.prototype.add=function(parent,child,index){if(child!=parent&&parent!=null&&child!=null){if(index==null){index=this.getChildCount(parent);}var parentChanged=parent!=this.getParent(child);this.execute(new mxChildChange(this,parent,child,index));if(this.maintainEdgeParent&&parentChanged){this.updateEdgeParents(child);}}return child;};mxGraphModel.prototype.cellAdded=function(cell){if(cell!=null){if(cell.getId()==null&&this.createIds){cell.setId(this.createId(cell));}if(cell.getId()!=null){var collision=this.getCell(cell.getId());if(collision!=cell){while(collision!=null){cell.setId(this.createId(cell));collision=this.getCell(cell.getId());}if(this.cells==null){this.cells=new Object();}this.cells[cell.getId()]=cell;}}if(mxUtils.isNumeric(cell.getId())){this.nextId=Math.max(this.nextId,cell.getId());}var childCount=this.getChildCount(cell);for(var i=0;i<childCount;i++){this.cellAdded(this.getChildAt(cell,i));}}};mxGraphModel.prototype.createId=function(cell){var id=this.nextId;this.nextId++;return this.prefix+id+this.postfix;};mxGraphModel.prototype.updateEdgeParents=function(cell,root){root=root||this.getRoot(cell);var childCount=this.getChildCount(cell);for(var i=0;i<childCount;i++){var child=this.getChildAt(cell,i);this.updateEdgeParents(child,root);}var edgeCount=this.getEdgeCount(cell);var edges=[];for(var i=0;i<edgeCount;i++){edges.push(this.getEdgeAt(cell,i));}for(var i=0;i<edges.length;i++){var edge=edges[i];if(this.isAncestor(root,edge)){this.updateEdgeParent(edge,root);}}};mxGraphModel.prototype.updateEdgeParent=function(edge,root){var source=this.getTerminal(edge,true);var target=this.getTerminal(edge,false);var cell=null;while(source!=null&&!this.isEdge(source)&&source.geometry!=null&&source.geometry.relative){source=this.getParent(source);}while(target!=null&&!this.isEdge(target)&&target.geometry!=null&&target.geometry.relative){target=this.getParent(target);}if(this.isAncestor(root,source)&&this.isAncestor(root,target)){if(source==target){cell=this.getParent(source);}else{cell=this.getNearestCommonAncestor(source,target);}if(cell!=null&&(this.getParent(cell)!=this.root||this.isAncestor(cell,edge))&&this.getParent(edge)!=cell){var geo=this.getGeometry(edge);if(geo!=null){var origin1=this.getOrigin(this.getParent(edge));var origin2=this.getOrigin(cell);var dx=origin2.x-origin1.x;var dy=origin2.y-origin1.y;geo=geo.clone();geo.translate(-dx,-dy);this.setGeometry(edge,geo);}this.add(cell,edge,this.getChildCount(cell));}}};mxGraphModel.prototype.getOrigin=function(cell){var result=null;if(cell!=null){result=this.getOrigin(this.getParent(cell));if(!this.isEdge(cell)){var geo=this.getGeometry(cell);if(geo!=null){result.x+=geo.x;result.y+=geo.y;}}}else{result=new mxPoint();}return result;};mxGraphModel.prototype.getNearestCommonAncestor=function(cell1,cell2){if(cell1!=null&&cell2!=null){var path=mxCellPath.create(cell2);if(path!=null&&path.length>0){var cell=cell1;var current=mxCellPath.create(cell);if(path.length<current.length){cell=cell2;var tmp=current;current=path;path=tmp;}while(cell!=null){var parent=this.getParent(cell);if(path.indexOf(current+mxCellPath.PATH_SEPARATOR)==0&&parent!=null){return cell;}current=mxCellPath.getParentPath(current);cell=parent;}}}return null;};mxGraphModel.prototype.remove=function(cell){if(cell==this.root){this.setRoot(null);}else if(this.getParent(cell)!=null){this.execute(new mxChildChange(this,null,cell));}return cell;};mxGraphModel.prototype.cellRemoved=function(cell){if(cell!=null&&this.cells!=null){var childCount=this.getChildCount(cell);for(var i=childCount-1;i>=0;i--){this.cellRemoved(this.getChildAt(cell,i));}if(this.cells!=null&&cell.getId()!=null){delete this.cells[cell.getId()];}}};mxGraphModel.prototype.parentForCellChanged=function(cell,parent,index){var previous=this.getParent(cell);if(parent!=null){if(parent!=previous||previous.getIndex(cell)!=index){parent.insert(cell,index);}}else if(previous!=null){var oldIndex=previous.getIndex(cell);previous.remove(oldIndex);}if(!this.contains(previous)&&parent!=null){this.cellAdded(cell);}else if(parent==null){this.cellRemoved(cell);}return previous;};mxGraphModel.prototype.getChildCount=function(cell){return(cell!=null)?cell.getChildCount():0;};mxGraphModel.prototype.getChildAt=function(cell,index){return(cell!=null)?cell.getChildAt(index):null;};mxGraphModel.prototype.getChildren=function(cell){return(cell!=null)?cell.children:null;};mxGraphModel.prototype.getChildVertices=function(parent){return this.getChildCells(parent,true,false);};mxGraphModel.prototype.getChildEdges=function(parent){return this.getChildCells(parent,false,true);};mxGraphModel.prototype.getChildCells=function(parent,vertices,edges){vertices=(vertices!=null)?vertices:false;edges=(edges!=null)?edges:false;var childCount=this.getChildCount(parent);var result=[];for(var i=0;i<childCount;i++){var child=this.getChildAt(parent,i);if((!edges&&!vertices)||(edges&&this.isEdge(child))||(vertices&&this.isVertex(child))){result.push(child);}}return result;};mxGraphModel.prototype.getTerminal=function(edge,isSource){return(edge!=null)?edge.getTerminal(isSource):null;};mxGraphModel.prototype.setTerminal=function(edge,terminal,isSource){var terminalChanged=terminal!=this.getTerminal(edge,isSource);this.execute(new mxTerminalChange(this,edge,terminal,isSource));if(this.maintainEdgeParent&&terminalChanged){this.updateEdgeParent(edge,this.getRoot());}return terminal;};mxGraphModel.prototype.setTerminals=function(edge,source,target){this.beginUpdate();try{this.setTerminal(edge,source,true);this.setTerminal(edge,target,false);}finally{this.endUpdate();}};mxGraphModel.prototype.terminalForCellChanged=function(edge,terminal,isSource){var previous=this.getTerminal(edge,isSource);if(terminal!=null){terminal.insertEdge(edge,isSource);}else if(previous!=null){previous.removeEdge(edge,isSource);}return previous;};mxGraphModel.prototype.getEdgeCount=function(cell){return(cell!=null)?cell.getEdgeCount():0;};mxGraphModel.prototype.getEdgeAt=function(cell,index){return(cell!=null)?cell.getEdgeAt(index):null;};mxGraphModel.prototype.getDirectedEdgeCount=function(cell,outgoing,ignoredEdge){var count=0;var edgeCount=this.getEdgeCount(cell);for(var i=0;i<edgeCount;i++){var edge=this.getEdgeAt(cell,i);if(edge!=ignoredEdge&&this.getTerminal(edge,outgoing)==cell){count++;}}return count;};mxGraphModel.prototype.getConnections=function(cell){return this.getEdges(cell,true,true,false);};mxGraphModel.prototype.getIncomingEdges=function(cell){return this.getEdges(cell,true,false,false);};mxGraphModel.prototype.getOutgoingEdges=function(cell){return this.getEdges(cell,false,true,false);};mxGraphModel.prototype.getEdges=function(cell,incoming,outgoing,includeLoops){incoming=(incoming!=null)?incoming:true;outgoing=(outgoing!=null)?outgoing:true;includeLoops=(includeLoops!=null)?includeLoops:true;var edgeCount=this.getEdgeCount(cell);var result=[];for(var i=0;i<edgeCount;i++){var edge=this.getEdgeAt(cell,i);var source=this.getTerminal(edge,true);var target=this.getTerminal(edge,false);if((includeLoops&&source==target)||((source!=target)&&((incoming&&target==cell)||(outgoing&&source==cell)))){result.push(edge);}}return result;};mxGraphModel.prototype.getEdgesBetween=function(source,target,directed){directed=(directed!=null)?directed:false;var tmp1=this.getEdgeCount(source);var tmp2=this.getEdgeCount(target);var terminal=source;var edgeCount=tmp1;if(tmp2<tmp1){edgeCount=tmp2;terminal=target;}var result=[];for(var i=0;i<edgeCount;i++){var edge=this.getEdgeAt(terminal,i);var src=this.getTerminal(edge,true);var trg=this.getTerminal(edge,false);var directedMatch=(src==source)&&(trg==target);var oppositeMatch=(trg==source)&&(src==target);if(directedMatch||(!directed&&oppositeMatch)){result.push(edge);}}return result;};mxGraphModel.prototype.getOpposites=function(edges,terminal,sources,targets){sources=(sources!=null)?sources:true;targets=(targets!=null)?targets:true;var terminals=[];if(edges!=null){for(var i=0;i<edges.length;i++){var source=this.getTerminal(edges[i],true);var target=this.getTerminal(edges[i],false);if(source==terminal&&target!=null&&target!=terminal&&targets){terminals.push(target);}else if(target==terminal&&source!=null&&source!=terminal&&sources){terminals.push(source);}}}return terminals;};mxGraphModel.prototype.getTopmostCells=function(cells){var tmp=[];for(var i=0;i<cells.length;i++){var cell=cells[i];var topmost=true;var parent=this.getParent(cell);while(parent!=null){if(mxUtils.indexOf(cells,parent)>=0){topmost=false;break;}parent=this.getParent(parent);}if(topmost){tmp.push(cell);}}return tmp;};mxGraphModel.prototype.isVertex=function(cell){return(cell!=null)?cell.isVertex():false;};mxGraphModel.prototype.isEdge=function(cell){return(cell!=null)?cell.isEdge():false;};mxGraphModel.prototype.isConnectable=function(cell){return(cell!=null)?cell.isConnectable():false;};mxGraphModel.prototype.getValue=function(cell){return(cell!=null)?cell.getValue():null;};mxGraphModel.prototype.setValue=function(cell,value){this.execute(new mxValueChange(this,cell,value));return value;};mxGraphModel.prototype.valueForCellChanged=function(cell,value){return cell.valueChanged(value);};mxGraphModel.prototype.getGeometry=function(cell,geometry){return(cell!=null)?cell.getGeometry():null;};mxGraphModel.prototype.setGeometry=function(cell,geometry){if(geometry!=this.getGeometry(cell)){this.execute(new mxGeometryChange(this,cell,geometry));}return geometry;};mxGraphModel.prototype.geometryForCellChanged=function(cell,geometry){var previous=this.getGeometry(cell);cell.setGeometry(geometry);return previous;};mxGraphModel.prototype.getStyle=function(cell){return(cell!=null)?cell.getStyle():null;};mxGraphModel.prototype.setStyle=function(cell,style){if(style!=this.getStyle(cell)){this.execute(new mxStyleChange(this,cell,style));}return style;};mxGraphModel.prototype.styleForCellChanged=function(cell,style){var previous=this.getStyle(cell);cell.setStyle(style);return previous;};mxGraphModel.prototype.isCollapsed=function(cell){return(cell!=null)?cell.isCollapsed():false;};mxGraphModel.prototype.setCollapsed=function(cell,collapsed){if(collapsed!=this.isCollapsed(cell)){this.execute(new mxCollapseChange(this,cell,collapsed));}return collapsed;};mxGraphModel.prototype.collapsedStateForCellChanged=function(cell,collapsed){var previous=this.isCollapsed(cell);cell.setCollapsed(collapsed);return previous;};mxGraphModel.prototype.isVisible=function(cell){return(cell!=null)?cell.isVisible():false;};mxGraphModel.prototype.setVisible=function(cell,visible){if(visible!=this.isVisible(cell)){this.execute(new mxVisibleChange(this,cell,visible));}return visible;};mxGraphModel.prototype.visibleStateForCellChanged=function(cell,visible){var previous=this.isVisible(cell);cell.setVisible(visible);return previous;};mxGraphModel.prototype.execute=function(change){change.execute();this.beginUpdate();this.currentEdit.add(change);this.fireEvent(new mxEventObject(mxEvent.EXECUTE,'change',change));this.endUpdate();};mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++;this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE));};mxGraphModel.prototype.endUpdate=function(){this.updateLevel--;if(!this.endingUpdate){this.endingUpdate=this.updateLevel==0;this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,'edit',this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,'edit',this.currentEdit));var tmp=this.currentEdit;this.currentEdit=this.createUndoableEdit();tmp.notify();this.fireEvent(new mxEventObject(mxEvent.UNDO,'edit',tmp));}}finally{this.endingUpdate=false;}}};mxGraphModel.prototype.createUndoableEdit=function(){var edit=new mxUndoableEdit(this,true);edit.notify=function(){edit.source.fireEvent(new mxEventObject(mxEvent.CHANGE,'edit',edit,'changes',edit.changes));edit.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,'edit',edit,'changes',edit.changes));};return edit;};mxGraphModel.prototype.mergeChildren=function(from,to,cloneAllEdges){cloneAllEdges=(cloneAllEdges!=null)?cloneAllEdges:true;this.beginUpdate();try{var mapping=new Object();this.mergeChildrenImpl(from,to,cloneAllEdges,mapping);for(var key in mapping){var cell=mapping[key];var terminal=this.getTerminal(cell,true);if(terminal!=null){terminal=mapping[mxCellPath.create(terminal)];this.setTerminal(cell,terminal,true);}terminal=this.getTerminal(cell,false);if(terminal!=null){terminal=mapping[mxCellPath.create(terminal)];this.setTerminal(cell,terminal,false);}}}finally{this.endUpdate();}};mxGraphModel.prototype.mergeChildrenImpl=function(from,to,cloneAllEdges,mapping){this.beginUpdate();try{var childCount=from.getChildCount();for(var i=0;i<childCount;i++){var cell=from.getChildAt(i);if(typeof(cell.getId)=='function'){var id=cell.getId();var target=(id!=null&&(!this.isEdge(cell)||!cloneAllEdges))?this.getCell(id):null;if(target==null){var clone=cell.clone();clone.setId(id);clone.setTerminal(cell.getTerminal(true),true);clone.setTerminal(cell.getTerminal(false),false);target=to.insert(clone);this.cellAdded(target);}mapping[mxCellPath.create(cell)]=target;this.mergeChildrenImpl(cell,target,cloneAllEdges,mapping);}}}finally{this.endUpdate();}};mxGraphModel.prototype.getParents=function(cells){var parents=[];if(cells!=null){var hash=new Object();for(var i=0;i<cells.length;i++){var parent=this.getParent(cells[i]);if(parent!=null){var id=mxCellPath.create(parent);if(hash[id]==null){hash[id]=parent;parents.push(parent);}}}}return parents;};mxGraphModel.prototype.cloneCell=function(cell){if(cell!=null){return this.cloneCells([cell],true)[0];}return null;};mxGraphModel.prototype.cloneCells=function(cells,includeChildren){var mapping=new Object();var clones=[];for(var i=0;i<cells.length;i++){if(cells[i]!=null){clones.push(this.cloneCellImpl(cells[i],mapping,includeChildren));}else{clones.push(null);}}for(var i=0;i<clones.length;i++){if(clones[i]!=null){this.restoreClone(clones[i],cells[i],mapping);}}return clones;};mxGraphModel.prototype.cloneCellImpl=function(cell,mapping,includeChildren){var clone=this.cellCloned(cell);mapping[mxObjectIdentity.get(cell)]=clone;if(includeChildren){var childCount=this.getChildCount(cell);for(var i=0;i<childCount;i++){var cloneChild=this.cloneCellImpl(this.getChildAt(cell,i),mapping,true);clone.insert(cloneChild);}}return clone;};mxGraphModel.prototype.cellCloned=function(cell){return cell.clone();};mxGraphModel.prototype.restoreClone=function(clone,cell,mapping){var source=this.getTerminal(cell,true);if(source!=null){var tmp=mapping[mxObjectIdentity.get(source)];if(tmp!=null){tmp.insertEdge(clone,true);}}var target=this.getTerminal(cell,false);if(target!=null){var tmp=mapping[mxObjectIdentity.get(target)];if(tmp!=null){tmp.insertEdge(clone,false);}}var childCount=this.getChildCount(clone);for(var i=0;i<childCount;i++){this.restoreClone(this.getChildAt(clone,i),this.getChildAt(cell,i),mapping);}};function mxRootChange(model,root){this.model=model;this.root=root;this.previous=root;};mxRootChange.prototype.execute=function(){this.root=this.previous;this.previous=this.model.rootChanged(this.previous);};function mxChildChange(model,parent,child,index){this.model=model;this.parent=parent;this.previous=parent;this.child=child;this.index=index;this.previousIndex=index;};mxChildChange.prototype.execute=function(){var tmp=this.model.getParent(this.child);var tmp2=(tmp!=null)?tmp.getIndex(this.child):0;if(this.previous==null){this.connect(this.child,false);}tmp=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex);if(this.previous!=null){this.connect(this.child,true);}this.parent=this.previous;this.previous=tmp;this.index=this.previousIndex;this.previousIndex=tmp2;};mxChildChange.prototype.connect=function(cell,isConnect){isConnect=(isConnect!=null)?isConnect:true;var source=cell.getTerminal(true);var target=cell.getTerminal(false);if(source!=null){if(isConnect){this.model.terminalForCellChanged(cell,source,true);}else{this.model.terminalForCellChanged(cell,null,true);}}if(target!=null){if(isConnect){this.model.terminalForCellChanged(cell,target,false);}else{this.model.terminalForCellChanged(cell,null,false);}}cell.setTerminal(source,true);cell.setTerminal(target,false);var childCount=this.model.getChildCount(cell);for(var i=0;i<childCount;i++){this.connect(this.model.getChildAt(cell,i),isConnect);}};function mxTerminalChange(model,cell,terminal,source){this.model=model;this.cell=cell;this.terminal=terminal;this.previous=terminal;this.source=source;};mxTerminalChange.prototype.execute=function(){this.terminal=this.previous;this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source);};function mxValueChange(model,cell,value){this.model=model;this.cell=cell;this.value=value;this.previous=value;};mxValueChange.prototype.execute=function(){this.value=this.previous;this.previous=this.model.valueForCellChanged(this.cell,this.previous);};function mxStyleChange(model,cell,style){this.model=model;this.cell=cell;this.style=style;this.previous=style;};mxStyleChange.prototype.execute=function(){this.style=this.previous;this.previous=this.model.styleForCellChanged(this.cell,this.previous);};function mxGeometryChange(model,cell,geometry){this.model=model;this.cell=cell;this.geometry=geometry;this.previous=geometry;};mxGeometryChange.prototype.execute=function(){this.geometry=this.previous;this.previous=this.model.geometryForCellChanged(this.cell,this.previous);};function mxCollapseChange(model,cell,collapsed){this.model=model;this.cell=cell;this.collapsed=collapsed;this.previous=collapsed;};mxCollapseChange.prototype.execute=function(){this.collapsed=this.previous;this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous);};function mxVisibleChange(model,cell,visible){this.model=model;this.cell=cell;this.visible=visible;this.previous=visible;};mxVisibleChange.prototype.execute=function(){this.visible=this.previous;this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous);};function mxCellAttributeChange(cell,attribute,value){this.cell=cell;this.attribute=attribute;this.value=value;this.previous=value;};mxCellAttributeChange.prototype.execute=function(){var tmp=this.cell.getAttribute(this.attribute);if(this.previous==null){this.cell.value.removeAttribute(this.attribute);}else{this.cell.setAttribute(this.attribute,this.previous);}this.previous=tmp;};function mxCell(value,geometry,style){this.value=value;this.setGeometry(geometry);this.setStyle(style);if(this.onInit!=null){this.onInit();}};mxCell.prototype.id=null;mxCell.prototype.value=null;mxCell.prototype.geometry=null;mxCell.prototype.style=null;mxCell.prototype.vertex=false;mxCell.prototype.edge=false;mxCell.prototype.connectable=true;mxCell.prototype.visible=true;mxCell.prototype.collapsed=false;mxCell.prototype.parent=null;mxCell.prototype.source=null;mxCell.prototype.target=null;mxCell.prototype.children=null;mxCell.prototype.edges=null;mxCell.prototype.mxTransient=['id','value','parent','source','target','children','edges'];mxCell.prototype.getId=function(){return this.id;};mxCell.prototype.setId=function(id){this.id=id;};mxCell.prototype.getValue=function(){return this.value;};mxCell.prototype.setValue=function(value){this.value=value;};mxCell.prototype.valueChanged=function(newValue){var previous=this.getValue();this.setValue(newValue);return previous;};mxCell.prototype.getGeometry=function(){return this.geometry;};mxCell.prototype.setGeometry=function(geometry){this.geometry=geometry;};mxCell.prototype.getStyle=function(){return this.style;};mxCell.prototype.setStyle=function(style){this.style=style;};mxCell.prototype.isVertex=function(){return this.vertex;};mxCell.prototype.setVertex=function(vertex){this.vertex=vertex;};mxCell.prototype.isEdge=function(){return this.edge;};mxCell.prototype.setEdge=function(edge){this.edge=edge;};mxCell.prototype.isConnectable=function(){return this.connectable;};mxCell.prototype.setConnectable=function(connectable){this.connectable=connectable;};mxCell.prototype.isVisible=function(){return this.visible;};mxCell.prototype.setVisible=function(visible){this.visible=visible;};mxCell.prototype.isCollapsed=function(){return this.collapsed;};mxCell.prototype.setCollapsed=function(collapsed){this.collapsed=collapsed;};mxCell.prototype.getParent=function(){return this.parent;};mxCell.prototype.setParent=function(parent){this.parent=parent;};mxCell.prototype.getTerminal=function(source){return(source)?this.source:this.target;};mxCell.prototype.setTerminal=function(terminal,isSource){if(isSource){this.source=terminal;}else{this.target=terminal;}return terminal;};mxCell.prototype.getChildCount=function(){return(this.children==null)?0:this.children.length;};mxCell.prototype.getIndex=function(child){return mxUtils.indexOf(this.children,child);};mxCell.prototype.getChildAt=function(index){return(this.children==null)?null:this.children[index];};mxCell.prototype.insert=function(child,index){if(child!=null){if(index==null){index=this.getChildCount();if(child.getParent()==this){index--;}}child.removeFromParent();child.setParent(this);if(this.children==null){this.children=[];this.children.push(child);}else{this.children.splice(index,0,child);}}return child;};mxCell.prototype.remove=function(index){var child=null;if(this.children!=null&&index>=0){child=this.getChildAt(index);if(child!=null){this.children.splice(index,1);child.setParent(null);}}return child;};mxCell.prototype.removeFromParent=function(){if(this.parent!=null){var index=this.parent.getIndex(this);this.parent.remove(index);}};mxCell.prototype.getEdgeCount=function(){return(this.edges==null)?0:this.edges.length;};mxCell.prototype.getEdgeIndex=function(edge){return mxUtils.indexOf(this.edges,edge);};mxCell.prototype.getEdgeAt=function(index){return(this.edges==null)?null:this.edges[index];};mxCell.prototype.insertEdge=function(edge,isOutgoing){if(edge!=null){edge.removeFromTerminal(isOutgoing);edge.setTerminal(this,isOutgoing);if(this.edges==null||edge.getTerminal(!isOutgoing)!=this||mxUtils.indexOf(this.edges,edge)<0){if(this.edges==null){this.edges=[];}this.edges.push(edge);}}return edge;};mxCell.prototype.removeEdge=function(edge,isOutgoing){if(edge!=null){if(edge.getTerminal(!isOutgoing)!=this&&this.edges!=null){var index=this.getEdgeIndex(edge);if(index>=0){this.edges.splice(index,1);}}edge.setTerminal(null,isOutgoing);}return edge;};mxCell.prototype.removeFromTerminal=function(isSource){var terminal=this.getTerminal(isSource);if(terminal!=null){terminal.removeEdge(this,isSource);}};mxCell.prototype.getAttribute=function(name,defaultValue){var userObject=this.getValue();var val=(userObject!=null&&userObject.nodeType==mxConstants.NODETYPE_ELEMENT)?userObject.getAttribute(name):null;return val||defaultValue;};mxCell.prototype.setAttribute=function(name,value){var userObject=this.getValue();if(userObject!=null&&userObject.nodeType==mxConstants.NODETYPE_ELEMENT){userObject.setAttribute(name,value);}};mxCell.prototype.clone=function(){var clone=mxUtils.clone(this,this.mxTransient);clone.setValue(this.cloneValue());return clone;};mxCell.prototype.cloneValue=function(){var value=this.getValue();if(value!=null){if(typeof(value.clone)=='function'){value=value.clone();}else if(!isNaN(value.nodeType)){value=value.cloneNode(true);}}return value;};function mxGeometry(x,y,width,height){mxRectangle.call(this,x,y,width,height);};mxGeometry.prototype=new mxRectangle();mxGeometry.prototype.constructor=mxGeometry;mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=true;mxGeometry.prototype.alternateBounds=null;mxGeometry.prototype.sourcePoint=null;mxGeometry.prototype.targetPoint=null;mxGeometry.prototype.points=null;mxGeometry.prototype.offset=null;mxGeometry.prototype.relative=false;mxGeometry.prototype.swap=function(){if(this.alternateBounds!=null){var old=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x;this.y=this.alternateBounds.y;this.width=this.alternateBounds.width;this.height=this.alternateBounds.height;this.alternateBounds=old;}};mxGeometry.prototype.getTerminalPoint=function(isSource){return(isSource)?this.sourcePoint:this.targetPoint;};mxGeometry.prototype.setTerminalPoint=function(point,isSource){if(isSource){this.sourcePoint=point;}else{this.targetPoint=point;}return point;};mxGeometry.prototype.translate=function(dx,dy){var clone=this.clone();if(!this.relative){this.x+=dx;this.y+=dy;}if(this.sourcePoint!=null){this.sourcePoint.x+=dx;this.sourcePoint.y+=dy;}if(this.targetPoint!=null){this.targetPoint.x+=dx;this.targetPoint.y+=dy;}if(this.TRANSLATE_CONTROL_POINTS&&this.points!=null){var count=this.points.length;for(var i=0;i<count;i++){var pt=this.points[i];if(pt!=null){pt.x+=dx;pt.y+=dy;}}}};var mxCellPath={PATH_SEPARATOR:'.',create:function(cell){var result='';if(cell!=null){var parent=cell.getParent();while(parent!=null){var index=parent.getIndex(cell);result=index+mxCellPath.PATH_SEPARATOR+result;cell=parent;parent=cell.getParent();}}var n=result.length;if(n>1){result=result.substring(0,n-1);}return result;},getParentPath:function(path){if(path!=null){var index=path.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(index>=0){return path.substring(0,index);}else if(path.length>0){return '';}}return null;},resolve:function(root,path){var parent=root;if(path!=null){var tokens=path.split(mxCellPath.PATH_SEPARATOR);for(var i=0;i<tokens.length;i++){parent=parent.getChildAt(parseInt(tokens[i]));}}return parent;},compare:function(p1,p2){var min=Math.min(p1.length,p2.length);var comp=0;for(var i=0;i<min;i++){if(p1[i]!=p2[i]){if(p1[i].length==0||p2[i].length==0){comp=(p1[i]==p2[i])?0:((p1[i]>p2[i])?1:-1);}else{var t1=parseInt(p1[i]);var t2=parseInt(p2[i]);comp=(t1==t2)?0:((t1>t2)?1:-1);}break;}}if(comp==0){var t1=p1.length;var t2=p2.length;if(t1!=t2){comp=(t1>t2)?1:-1;}}return comp;}};var mxPerimeter={RectanglePerimeter:function(bounds,vertex,next,orthogonal){var cx=bounds.getCenterX();var cy=bounds.getCenterY();var dx=next.x-cx;var dy=next.y-cy;var alpha=Math.atan2(dy,dx);var p=new mxPoint(0,0);var pi=Math.PI;var pi2=Math.PI/2;var beta=pi2-alpha;var t=Math.atan2(bounds.height,bounds.width);if(alpha<-pi+t||alpha>pi-t){p.x=bounds.x;p.y=cy-bounds.width*Math.tan(alpha)/2;}else if(alpha<-t){p.y=bounds.y;p.x=cx-bounds.height*Math.tan(beta)/2;}else if(alpha<t){p.x=bounds.x+bounds.width;p.y=cy+bounds.width*Math.tan(alpha)/2;}else{p.y=bounds.y+bounds.height;p.x=cx+bounds.height*Math.tan(beta)/2;}if(orthogonal){if(next.x>=bounds.x&&next.x<=bounds.x+bounds.width){p.x=next.x;}else if(next.y>=bounds.y&&next.y<=bounds.y+bounds.height){p.y=next.y;}if(next.x<bounds.x){p.x=bounds.x;}else if(next.x>bounds.x+bounds.width){p.x=bounds.x+bounds.width;}if(next.y<bounds.y){p.y=bounds.y;}else if(next.y>bounds.y+bounds.height){p.y=bounds.y+bounds.height;}}return p;},EllipsePerimeter:function(bounds,vertex,next,orthogonal){var x=bounds.x;var y=bounds.y;var a=bounds.width/2;var b=bounds.height/2;var cx=x+a;var cy=y+b;var px=next.x;var py=next.y;var dx=parseInt(px-cx);var dy=parseInt(py-cy);if(dx==0&&dy!=0){return new mxPoint(cx,cy+b*dy/Math.abs(dy));}else if(dx==0&&dy==0){return new mxPoint(px,py);}if(orthogonal){if(py>=y&&py<=y+bounds.height){var ty=py-cy;var tx=Math.sqrt(a*a*(1-(ty*ty)/(b*b)))||0;if(px<=x){tx=-tx;}return new mxPoint(cx+tx,py);}if(px>=x&&px<=x+bounds.width){var tx=px-cx;var ty=Math.sqrt(b*b*(1-(tx*tx)/(a*a)))||0;if(py<=y){ty=-ty;}return new mxPoint(px,cy+ty);}}var d=dy/dx;var h=cy-d*cx;var e=a*a*d*d+b*b;var f=-2*cx*e;var g=a*a*d*d*cx*cx+b*b*cx*cx-a*a*b*b;var det=Math.sqrt(f*f-4*e*g);var xout1=(-f+det)/(2*e);var xout2=(-f-det)/(2*e);var yout1=d*xout1+h;var yout2=d*xout2+h;var dist1=Math.sqrt(Math.pow((xout1-px),2)+Math.pow((yout1-py),2));var dist2=Math.sqrt(Math.pow((xout2-px),2)+Math.pow((yout2-py),2));var xout=0;var yout=0;if(dist1<dist2){xout=xout1;yout=yout1;}else{xout=xout2;yout=yout2;}return new mxPoint(xout,yout);},RhombusPerimeter:function(bounds,vertex,next,orthogonal){var x=bounds.x;var y=bounds.y;var w=bounds.width;var h=bounds.height;var cx=x+w/2;var cy=y+h/2;var px=next.x;var py=next.y;if(cx==px){if(cy>py){return new mxPoint(cx,y);}else{return new mxPoint(cx,y+h);}}else if(cy==py){if(cx>px){return new mxPoint(x,cy);}else{return new mxPoint(x+w,cy);}}var tx=cx;var ty=cy;if(orthogonal){if(px>=x&&px<=x+w){tx=px;}else if(py>=y&&py<=y+h){ty=py;}}if(px<cx){if(py<cy){return mxUtils.intersection(px,py,tx,ty,cx,y,x,cy);}else{return mxUtils.intersection(px,py,tx,ty,cx,y+h,x,cy);}}else if(py<cy){return mxUtils.intersection(px,py,tx,ty,cx,y,x+w,cy);}else{return mxUtils.intersection(px,py,tx,ty,cx,y+h,x+w,cy);}},TrianglePerimeter:function(bounds,vertex,next,orthogonal){var direction=(vertex!=null)?vertex.style[mxConstants.STYLE_DIRECTION]:null;var vertical=direction==mxConstants.DIRECTION_NORTH||direction==mxConstants.DIRECTION_SOUTH;var x=bounds.x;var y=bounds.y;var w=bounds.width;var h=bounds.height;var cx=x+w/2;var cy=y+h/2;var start=new mxPoint(x,y);var corner=new mxPoint(x+w,cy);var end=new mxPoint(x,y+h);if(direction==mxConstants.DIRECTION_NORTH){start=end;corner=new mxPoint(cx,y);end=new mxPoint(x+w,y+h);}else if(direction==mxConstants.DIRECTION_SOUTH){corner=new mxPoint(cx,y+h);end=new mxPoint(x+w,y);}else if(direction==mxConstants.DIRECTION_WEST){start=new mxPoint(x+w,y);corner=new mxPoint(x,cy);end=new mxPoint(x+w,y+h);}var dx=next.x-cx;var dy=next.y-cy;var alpha=(vertical)?Math.atan2(dx,dy):Math.atan2(dy,dx);var t=(vertical)?Math.atan2(w,h):Math.atan2(h,w);var base=false;if(direction==mxConstants.DIRECTION_NORTH||direction==mxConstants.DIRECTION_WEST){base=alpha>-t&&alpha<t;}else{base=alpha<-Math.PI+t||alpha>Math.PI-t;}var result=null;if(base){if(orthogonal&&((vertical&&next.x>=start.x&&next.x<=end.x)||(!vertical&&next.y>=start.y&&next.y<=end.y))){if(vertical){result=new mxPoint(next.x,start.y);}else{result=new mxPoint(start.x,next.y);}}else{if(direction==mxConstants.DIRECTION_NORTH){result=new mxPoint(x+w/2+h*Math.tan(alpha)/2,y+h);}else if(direction==mxConstants.DIRECTION_SOUTH){result=new mxPoint(x+w/2-h*Math.tan(alpha)/2,y);}else if(direction==mxConstants.DIRECTION_WEST){result=new mxPoint(x+w,y+h/2+w*Math.tan(alpha)/2);}else{result=new mxPoint(x,y+h/2-w*Math.tan(alpha)/2);}}}else{if(orthogonal){var pt=new mxPoint(cx,cy);if(next.y>=y&&next.y<=y+h){pt.x=(vertical)?cx:((direction==mxConstants.DIRECTION_WEST)?x+w:x);pt.y=next.y;}else if(next.x>=x&&next.x<=x+w){pt.x=next.x;pt.y=(!vertical)?cy:((direction==mxConstants.DIRECTION_NORTH)?y+h:y);}dx=next.x-pt.x;dy=next.y-pt.y;cx=pt.x;cy=pt.y;}if((vertical&&next.x<=x+w/2)||(!vertical&&next.y<=y+h/2)){result=mxUtils.intersection(next.x,next.y,cx,cy,start.x,start.y,corner.x,corner.y);}else{result=mxUtils.intersection(next.x,next.y,cx,cy,corner.x,corner.y,end.x,end.y);}}if(result==null){result=new mxPoint(cx,cy);}return result;}};function mxPrintPreview(graph,scale,pageFormat,border,x0,y0,borderColor,title,pageSelector){this.graph=graph;this.scale=(scale!=null)?scale:1/graph.pageScale;this.border=(border!=null)?border:0;this.pageFormat=(pageFormat!=null)?pageFormat:graph.pageFormat;this.title=(title!=null)?title:'Printer-friendly version';this.x0=(x0!=null)?x0:0;this.y0=(y0!=null)?y0:0;this.borderColor=borderColor;this.pageSelector=(pageSelector!=null)?pageSelector:true;};mxPrintPreview.prototype.graph=null;mxPrintPreview.prototype.pageFormat=null;mxPrintPreview.prototype.scale=null;mxPrintPreview.prototype.border=0;mxPrintPreview.prototype.x0=0;mxPrintPreview.prototype.y0=0;mxPrintPreview.prototype.autoOrigin=true;mxPrintPreview.prototype.printOverlays=false;mxPrintPreview.prototype.borderColor=null;mxPrintPreview.prototype.title=null;mxPrintPreview.prototype.pageSelector=null;mxPrintPreview.prototype.wnd=null;mxPrintPreview.prototype.pageCount=0;mxPrintPreview.prototype.getWindow=function(){return this.wnd;};mxPrintPreview.prototype.getDoctype=function(){return '';};mxPrintPreview.prototype.open=function(css){var previousInitializeOverlay=this.graph.cellRenderer.initializeOverlay;var div=null;try{if(this.printOverlays){this.graph.cellRenderer.initializeOverlay=function(state,overlay){overlay.init(state.view.getDrawPane());};}if(this.wnd==null){this.wnd=window.open();var doc=this.wnd.document;var dt=this.getDoctype();if(dt!=null&&dt.length>0){doc.writeln(dt);}doc.writeln('<html>');doc.writeln('<head>');this.writeHead(doc,css);doc.writeln('</head>');doc.writeln('<body class="mxPage">');mxClient.link('stylesheet',mxClient.basePath+'/css/common.css',doc);if(mxClient.IS_IE&&document.documentMode!=9){doc.namespaces.add('v','urn:schemas-microsoft-com:vml');doc.namespaces.add('o','urn:schemas-microsoft-com:office:office');var ss=doc.createStyleSheet();ss.cssText='v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}';mxClient.link('stylesheet',mxClient.basePath+'/css/explorer.css',doc);}var bounds=this.graph.getGraphBounds().clone();var currentScale=this.graph.getView().getScale();var sc=currentScale/this.scale;var tr=this.graph.getView().getTranslate();if(!this.autoOrigin){this.x0=-tr.x*this.scale;this.y0=-tr.y*this.scale;bounds.width+=bounds.x;bounds.height+=bounds.y;bounds.x=0;bounds.y=0;this.border=0;}bounds.width/=sc;bounds.height/=sc;var availableWidth=this.pageFormat.width-(this.border*2);var availableHeight=this.pageFormat.height-(this.border*2);var hpages=Math.max(1,Math.ceil((bounds.width+this.x0)/availableWidth));var vpages=Math.max(1,Math.ceil((bounds.height+this.y0)/availableHeight));this.pageCount=hpages*vpages;var writePageSelector=mxUtils.bind(this,function(){if(this.pageSelector&&(vpages>1||hpages>1)){var table=this.createPageSelector(vpages,hpages);doc.body.appendChild(table);if(mxClient.IS_IE){table.style.position='absolute';var update=function(){table.style.top=(doc.body.scrollTop+10)+'px';};mxEvent.addListener(this.wnd,'scroll',function(evt){update();});mxEvent.addListener(this.wnd,'resize',function(evt){update();});}}});var pages=null;if(mxClient.IS_IE&&document.documentMode!=9){pages=[];var waitCounter=0;var isDone=false;var mxImageShapeScheduleUpdateAspect=mxImageShape.prototype.scheduleUpdateAspect;var mxImageShapeUpdateAspect=mxImageShape.prototype.updateAspect;var writePages=function(){if(isDone&&waitCounter==0){mxImageShape.prototype.scheduleUpdateAspect=mxImageShapeScheduleUpdateAspect;mxImageShape.prototype.updateAspect=mxImageShapeUpdateAspect;var markup='';for(var i=0;i<pages.length;i++){markup+=pages[i].outerHTML;pages[i].parentNode.removeChild(pages[i]);if(i<pages.length-1){markup+='<hr/>';}}doc.body.innerHTML=markup;writePageSelector();}};mxImageShape.prototype.scheduleUpdateAspect=function(){waitCounter++;mxImageShapeScheduleUpdateAspect.apply(this,arguments);};mxImageShape.prototype.updateAspect=function(){mxImageShapeUpdateAspect.apply(this,arguments);waitCounter--;writePages();};}for(var i=0;i<vpages;i++){var dy=i*availableHeight/this.scale-this.y0/this.scale+(bounds.y-tr.y*currentScale)/currentScale;for(var j=0;j<hpages;j++){if(this.wnd==null){return null;}var dx=j*availableWidth/this.scale-this.x0/this.scale+(bounds.x-tr.x*currentScale)/currentScale;var pageNum=i*hpages+j+1;div=this.renderPage(this.pageFormat.width,this.pageFormat.height,-dx,-dy,this.scale,pageNum);div.setAttribute('id','mxPage-'+pageNum);if(this.borderColor!=null){div.style.borderColor=this.borderColor;div.style.borderStyle='solid';div.style.borderWidth='1px';}div.style.background='white';if(i<vpages-1||j<hpages-1){div.style.pageBreakAfter='always';}if(mxClient.IS_IE){doc.writeln(div.outerHTML);if(pages!=null){pages.push(div);}else{div.parentNode.removeChild(div);}}else{div.parentNode.removeChild(div);doc.body.appendChild(div);}if(i<vpages-1||j<hpages-1){var hr=doc.createElement('hr');hr.className='mxPageBreak';doc.body.appendChild(hr);}}}doc.writeln('</body>');doc.writeln('</html>');doc.close();if(pages!=null){isDone=true;writePages();}else{writePageSelector();}mxEvent.release(doc.body);}this.wnd.focus();}catch(e){if(div!=null&&div.parentNode!=null){div.parentNode.removeChild(div);}}finally{this.graph.cellRenderer.initializeOverlay=previousInitializeOverlay;}return this.wnd;};mxPrintPreview.prototype.writeHead=function(doc,css){if(this.title!=null){doc.writeln('<title>'+this.title+'</title>');}doc.writeln('<style type="text/css">');doc.writeln('@media print {');doc.writeln('  table.mxPageSelector { display: none; }');doc.writeln('  hr.mxPageBreak { display: none; }');doc.writeln('}');doc.writeln('@media screen {');doc.writeln('  table.mxPageSelector { position: fixed; right: 10px; top: 10px;'+'font-family: Arial; font-size:10pt; border: solid 1px darkgray;'+'background: white; border-collapse:collapse; }');doc.writeln('  table.mxPageSelector td { border: solid 1px gray; padding:4px; }');doc.writeln('  body.mxPage { background: gray; }');doc.writeln('}');if(css!=null){doc.writeln(css);}doc.writeln('</style>');};mxPrintPreview.prototype.createPageSelector=function(vpages,hpages){var doc=this.wnd.document;var table=doc.createElement('table');table.className='mxPageSelector';table.setAttribute('border','0');var tbody=doc.createElement('tbody');for(var i=0;i<vpages;i++){var row=doc.createElement('tr');for(var j=0;j<hpages;j++){var pageNum=i*hpages+j+1;var cell=doc.createElement('td');if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var a=doc.createElement('a');a.setAttribute('href','#mxPage-'+pageNum);mxUtils.write(a,pageNum,doc);cell.appendChild(a);}else{mxUtils.write(cell,pageNum,doc);}row.appendChild(cell);}tbody.appendChild(row);}table.appendChild(tbody);return table;};mxPrintPreview.prototype.renderPage=function(w,h,dx,dy,scale,pageNumber){var div=document.createElement('div');try{div.style.width=w+'px';div.style.height=h+'px';div.style.overflow='hidden';div.style.pageBreakInside='avoid';var innerDiv=document.createElement('div');innerDiv.style.top=this.border+'px';innerDiv.style.left=this.border+'px';innerDiv.style.width=(w-2*this.border)+'px';innerDiv.style.height=(h-2*this.border)+'px';innerDiv.style.overflow='hidden';if(this.graph.dialect==mxConstants.DIALECT_VML){innerDiv.style.position='absolute';}div.appendChild(innerDiv);document.body.appendChild(div);var view=this.graph.getView();var previousContainer=this.graph.container;this.graph.container=innerDiv;var canvas=view.getCanvas();var backgroundPane=view.getBackgroundPane();var drawPane=view.getDrawPane();var overlayPane=view.getOverlayPane();if(this.graph.dialect==mxConstants.DIALECT_SVG){view.createSvg();}else if(this.graph.dialect==mxConstants.DIALECT_VML){view.createVml();}else{view.createHtml();}var eventsEnabled=view.isEventsEnabled();view.setEventsEnabled(false);var graphEnabled=this.graph.isEnabled();this.graph.setEnabled(false);var translate=view.getTranslate();view.translate=new mxPoint(dx,dy);var temp=null;try{var model=this.graph.getModel();var cells=[model.getRoot()];temp=new mxTemporaryCellStates(view,scale,cells);}finally{if(mxClient.IS_IE){view.overlayPane.innerHTML='';}else{var tmp=innerDiv.firstChild;while(tmp!=null){var next=tmp.nextSibling;var name=tmp.nodeName.toLowerCase();if(name=='svg'){tmp.setAttribute('width',parseInt(innerDiv.style.width));tmp.setAttribute('height',parseInt(innerDiv.style.height));}else if(tmp.style.cursor!='default'&&name!='table'){tmp.parentNode.removeChild(tmp);}tmp=next;}}view.overlayPane.parentNode.removeChild(view.overlayPane);this.graph.setEnabled(graphEnabled);this.graph.container=previousContainer;view.canvas=canvas;view.backgroundPane=backgroundPane;view.drawPane=drawPane;view.overlayPane=overlayPane;view.translate=translate;temp.destroy();view.setEventsEnabled(eventsEnabled);}}catch(e){div.parentNode.removeChild(div);div=null;throw e;}return div;};mxPrintPreview.prototype.print=function(){var wnd=this.open();if(wnd!=null){wnd.print();}};mxPrintPreview.prototype.close=function(){if(this.wnd!=null){this.wnd.close();this.wnd=null;}};function mxStylesheet(){this.styles=new Object();this.putDefaultVertexStyle(this.createDefaultVertexStyle());this.putDefaultEdgeStyle(this.createDefaultEdgeStyle());};mxStylesheet.prototype.styles;mxStylesheet.prototype.createDefaultVertexStyle=function(){var style=new Object();style[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE;style[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter;style[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;style[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;style[mxConstants.STYLE_FILLCOLOR]='#C3D9FF';style[mxConstants.STYLE_STROKECOLOR]='#6482B9';style[mxConstants.STYLE_FONTCOLOR]='#774400';return style;};mxStylesheet.prototype.createDefaultEdgeStyle=function(){var style=new Object();style[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR;style[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC;style[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;style[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;style[mxConstants.STYLE_STROKECOLOR]='#6482B9';style[mxConstants.STYLE_FONTCOLOR]='#446299';return style;};mxStylesheet.prototype.putDefaultVertexStyle=function(style){this.putCellStyle('defaultVertex',style);};mxStylesheet.prototype.putDefaultEdgeStyle=function(style){this.putCellStyle('defaultEdge',style);};mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles['defaultVertex'];};mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles['defaultEdge'];};mxStylesheet.prototype.putCellStyle=function(name,style){this.styles[name]=style;};mxStylesheet.prototype.getCellStyle=function(name,defaultStyle){var style=defaultStyle;if(name!=null&&name.length>0){var pairs=name.split(';');if(style!=null&&name.charAt(0)!=';'){style=mxUtils.clone(style);}else{style=new Object();}for(var i=0;i<pairs.length;i++){var tmp=pairs[i];var pos=tmp.indexOf('=');if(pos>=0){var key=tmp.substring(0,pos);var value=tmp.substring(pos+1);if(value==mxConstants.NONE){delete style[key];}else if(mxUtils.isNumeric(value)){style[key]=parseFloat(value);}else{style[key]=value;}}else{var tmpStyle=this.styles[tmp];if(tmpStyle!=null){for(var key in tmpStyle){style[key]=tmpStyle[key];}}}}}return style;};function mxCellState(view,cell,style){this.view=view;this.cell=cell;this.style=style;this.origin=new mxPoint();this.absoluteOffset=new mxPoint();};mxCellState.prototype=new mxRectangle();mxCellState.prototype.constructor=mxCellState;mxCellState.prototype.view=null;mxCellState.prototype.cell=null;mxCellState.prototype.style=null;mxCellState.prototype.invalid=true;mxCellState.prototype.invalidOrder=false;mxCellState.prototype.orderChanged=false;mxCellState.prototype.origin=null;mxCellState.prototype.absolutePoints=null;mxCellState.prototype.absoluteOffset=null;mxCellState.prototype.visibleSourceState=null;mxCellState.prototype.visibleTargetState=null;mxCellState.prototype.terminalDistance=0;mxCellState.prototype.length=0;mxCellState.prototype.segments=null;mxCellState.prototype.shape=null;mxCellState.prototype.text=null;mxCellState.prototype.getPerimeterBounds=function(border,bounds){border=border||0;bounds=(bounds!=null)?bounds:new mxRectangle(this.x,this.y,this.width,this.height);if(this.shape!=null&&this.shape.stencil!=null){var aspect=this.shape.stencil.computeAspect(this,bounds,null);bounds.x=aspect.x;bounds.y=aspect.y;bounds.width=this.shape.stencil.w0*aspect.width;bounds.height=this.shape.stencil.h0*aspect.height;}if(border!=0){bounds.grow(border);}return bounds;};mxCellState.prototype.setAbsoluteTerminalPoint=function(point,isSource){if(isSource){if(this.absolutePoints==null){this.absolutePoints=[];}if(this.absolutePoints.length==0){this.absolutePoints.push(point);}else{this.absolutePoints[0]=point;}}else{if(this.absolutePoints==null){this.absolutePoints=[];this.absolutePoints.push(null);this.absolutePoints.push(point);}else if(this.absolutePoints.length==1){this.absolutePoints.push(point);}else{this.absolutePoints[this.absolutePoints.length-1]=point;}}};mxCellState.prototype.setCursor=function(cursor){if(this.shape!=null){this.shape.setCursor(cursor);}if(this.text!=null){this.text.setCursor(cursor);}};mxCellState.prototype.getVisibleTerminal=function(source){var tmp=this.getVisibleTerminalState(source);return(tmp!=null)?tmp.cell:null;};mxCellState.prototype.getVisibleTerminalState=function(source){return(source)?this.visibleSourceState:this.visibleTargetState;};mxCellState.prototype.setVisibleTerminalState=function(terminalState,source){if(source){this.visibleSourceState=terminalState;}else{this.visibleTargetState=terminalState;}};mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this);};mxCellState.prototype.clone=function(){var clone=new mxCellState(this.view,this.cell,this.style);if(this.absolutePoints!=null){clone.absolutePoints=[];for(var i=0;i<this.absolutePoints.length;i++){clone.absolutePoints[i]=this.absolutePoints[i].clone();}}if(this.origin!=null){clone.origin=this.origin.clone();}if(this.absoluteOffset!=null){clone.absoluteOffset=this.absoluteOffset.clone();}if(this.boundingBox!=null){clone.boundingBox=this.boundingBox.clone();}clone.terminalDistance=this.terminalDistance;clone.segments=this.segments;clone.length=this.length;clone.x=this.x;clone.y=this.y;clone.width=this.width;clone.height=this.height;return clone;};function mxGraphSelectionModel(graph){this.graph=graph;this.cells=[];};mxGraphSelectionModel.prototype=new mxEventSource();mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel;mxGraphSelectionModel.prototype.doneResource=(mxClient.language!='none')?'done':'';mxGraphSelectionModel.prototype.updatingSelectionResource=(mxClient.language!='none')?'updatingSelection':'';mxGraphSelectionModel.prototype.graph=null;mxGraphSelectionModel.prototype.singleSelection=false;mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection;};mxGraphSelectionModel.prototype.setSingleSelection=function(singleSelection){this.singleSelection=singleSelection;};mxGraphSelectionModel.prototype.isSelected=function(cell){if(cell!=null){return mxUtils.indexOf(this.cells,cell)>=0;}return false;};mxGraphSelectionModel.prototype.isEmpty=function(){return this.cells.length==0;};mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells);};mxGraphSelectionModel.prototype.setCell=function(cell){if(cell!=null){this.setCells([cell]);}};mxGraphSelectionModel.prototype.setCells=function(cells){if(cells!=null){if(this.singleSelection){cells=[this.getFirstSelectableCell(cells)];}var tmp=[];for(var i=0;i<cells.length;i++){if(this.graph.isCellSelectable(cells[i])){tmp.push(cells[i]);}}this.changeSelection(tmp,this.cells);}};mxGraphSelectionModel.prototype.getFirstSelectableCell=function(cells){if(cells!=null){for(var i=0;i<cells.length;i++){if(this.graph.isCellSelectable(cells[i])){return cells[i];}}}return null;};mxGraphSelectionModel.prototype.addCell=function(cell){if(cell!=null){this.addCells([cell]);}};mxGraphSelectionModel.prototype.addCells=function(cells){if(cells!=null){var remove=null;if(this.singleSelection){remove=this.cells;cells=[this.getFirstSelectableCell(cells)];}var tmp=[];for(var i=0;i<cells.length;i++){if(!this.isSelected(cells[i])&&this.graph.isCellSelectable(cells[i])){tmp.push(cells[i]);}}this.changeSelection(tmp,remove);}};mxGraphSelectionModel.prototype.removeCell=function(cell){if(cell!=null){this.removeCells([cell]);}};mxGraphSelectionModel.prototype.removeCells=function(cells){if(cells!=null){var tmp=[];for(var i=0;i<cells.length;i++){if(this.isSelected(cells[i])){tmp.push(cells[i]);}}this.changeSelection(null,tmp);}};mxGraphSelectionModel.prototype.changeSelection=function(added,removed){if((added!=null&&added.length>0&&added[0]!=null)||(removed!=null&&removed.length>0&&removed[0]!=null)){var change=new mxSelectionChange(this,added,removed);change.execute();var edit=new mxUndoableEdit(this,false);edit.add(change);this.fireEvent(new mxEventObject(mxEvent.UNDO,'edit',edit));}};mxGraphSelectionModel.prototype.cellAdded=function(cell){if(cell!=null&&!this.isSelected(cell)){this.cells.push(cell);}};mxGraphSelectionModel.prototype.cellRemoved=function(cell){if(cell!=null){var index=mxUtils.indexOf(this.cells,cell);if(index>=0){this.cells.splice(index,1);}}};function mxSelectionChange(selectionModel,added,removed){this.selectionModel=selectionModel;this.added=(added!=null)?added.slice():null;this.removed=(removed!=null)?removed.slice():null;};mxSelectionChange.prototype.execute=function(){var t0=mxLog.enter('mxSelectionChange.execute');window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource;if(this.removed!=null){for(var i=0;i<this.removed.length;i++){this.selectionModel.cellRemoved(this.removed[i]);}}if(this.added!=null){for(var i=0;i<this.added.length;i++){this.selectionModel.cellAdded(this.added[i]);}}var tmp=this.added;this.added=this.removed;this.removed=tmp;window.status=mxResources.get(this.selectionModel.doneResource)||this.selectionModel.doneResource;mxLog.leave('mxSelectionChange.execute',t0);this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,'added',this.added,'removed',this.removed));};function mxCellEditor(graph){this.graph=graph;};mxCellEditor.prototype.graph=null;mxCellEditor.prototype.textarea=null;mxCellEditor.prototype.editingCell=null;mxCellEditor.prototype.trigger=null;mxCellEditor.prototype.modified=false;mxCellEditor.prototype.emptyLabelText='';mxCellEditor.prototype.textNode='';mxCellEditor.prototype.init=function(){this.textarea=document.createElement('textarea');this.textarea.className='mxCellEditor';this.textarea.style.position='absolute';this.textarea.style.overflow='visible';this.textarea.setAttribute('cols','20');this.textarea.setAttribute('rows','4');if(mxClient.IS_GC){this.textarea.style.resize='none';}mxEvent.addListener(this.textarea,'blur',mxUtils.bind(this,function(evt){this.focusLost();}));mxEvent.addListener(this.textarea,'keydown',mxUtils.bind(this,function(evt){if(!mxEvent.isConsumed(evt)){if(evt.keyCode==113 ||(this.graph.isEnterStopsCellEditing()&&evt.keyCode==13 &&!mxEvent.isControlDown(evt)&&!mxEvent.isShiftDown(evt))){this.graph.stopEditing(false);mxEvent.consume(evt);}else if(evt.keyCode==27 ){this.graph.stopEditing(true);mxEvent.consume(evt);}else{if(this.clearOnChange){this.clearOnChange=false;this.textarea.value='';}this.setModified(true);}}}));};mxCellEditor.prototype.isModified=function(){return this.modified;};mxCellEditor.prototype.setModified=function(value){this.modified=value;};mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing());};mxCellEditor.prototype.startEditing=function(cell,trigger){if(this.textarea==null){this.init();}this.stopEditing(true);var state=this.graph.getView().getState(cell);if(state!=null){this.editingCell=cell;this.trigger=trigger;this.textNode=null;if(state.text!=null&&this.isHideLabel(state)){this.textNode=state.text.node;this.textNode.style.visibility='hidden';}var scale=this.graph.getView().scale;var size=mxUtils.getValue(state.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*scale;var family=mxUtils.getValue(state.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY);var color=mxUtils.getValue(state.style,mxConstants.STYLE_FONTCOLOR,'black');var align=(this.graph.model.isEdge(state.cell))?mxConstants.ALIGN_LEFT:mxUtils.getValue(state.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT);var bold=(mxUtils.getValue(state.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD;this.textarea.style.fontSize=size;this.textarea.style.fontFamily=family;this.textarea.style.textAlign=align;this.textarea.style.color=color;this.textarea.style.fontWeight=(bold)?'bold':'normal';var bounds=this.getEditorBounds(state);this.textarea.style.left=bounds.x+'px';this.textarea.style.top=bounds.y+'px';this.textarea.style.width=bounds.width+'px';this.textarea.style.height=bounds.height+'px';this.textarea.style.zIndex=5;var value=this.getInitialValue(state,trigger);if(value==null||value.length==0){value=this.getEmptyLabelText();this.clearOnChange=true;}else{this.clearOnChange=false;}this.setModified(false);this.textarea.value=value;this.graph.container.appendChild(this.textarea);if(this.textarea.style.display!='none'){this.textarea.focus();this.textarea.select();}}};mxCellEditor.prototype.stopEditing=function(cancel){cancel=cancel||false;if(this.editingCell!=null){if(this.textNode!=null){this.textNode.style.visibility='visible';this.textNode=null;}if(!cancel&&this.isModified()){this.graph.labelChanged(this.editingCell,this.getCurrentValue(),this.trigger);}this.editingCell=null;this.trigger=null;this.textarea.blur();this.textarea.parentNode.removeChild(this.textarea);}};mxCellEditor.prototype.getInitialValue=function(state,trigger){return this.graph.getEditingValue(state.cell,trigger);};mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,'');};mxCellEditor.prototype.isHideLabel=function(state){return true;};mxCellEditor.prototype.getMinimumSize=function(state){var scale=this.graph.getView().scale;return new mxRectangle((state.text==null)?30:state.text.size*scale+20,(this.textarea.style.textAlign=='left')?120:40);};mxCellEditor.prototype.getEditorBounds=function(state){var isEdge=this.graph.getModel().isEdge(state.cell);var scale=this.graph.getView().scale;var minSize=this.getMinimumSize(state);var minWidth=minSize.width;var minHeight=minSize.height;var spacing=parseInt(state.style[mxConstants.STYLE_SPACING]||2)*scale;var spacingTop=(parseInt(state.style[mxConstants.STYLE_SPACING_TOP]||0))*scale+spacing;var spacingRight=(parseInt(state.style[mxConstants.STYLE_SPACING_RIGHT]||0))*scale+spacing;var spacingBottom=(parseInt(state.style[mxConstants.STYLE_SPACING_BOTTOM]||0))*scale+spacing;var spacingLeft=(parseInt(state.style[mxConstants.STYLE_SPACING_LEFT]||0))*scale+spacing;var result=new mxRectangle(state.x,state.y,Math.max(minWidth,state.width-spacingLeft-spacingRight),Math.max(minHeight,state.height-spacingTop-spacingBottom));if(isEdge){result.x=state.absoluteOffset.x;result.y=state.absoluteOffset.y;if(state.text!=null&&state.text.boundingBox!=null){if(state.text.boundingBox.x>0){result.x=state.text.boundingBox.x;}if(state.text.boundingBox.y>0){result.y=state.text.boundingBox.y;}}}else if(state.text!=null&&state.text.boundingBox!=null){result.x=Math.min(result.x,state.text.boundingBox.x);result.y=Math.min(result.y,state.text.boundingBox.y);}result.x+=spacingLeft;result.y+=spacingTop;if(state.text!=null&&state.text.boundingBox!=null){if(!isEdge){result.width=Math.max(result.width,state.text.boundingBox.width);result.height=Math.max(result.height,state.text.boundingBox.height);}else{result.width=Math.max(minWidth,state.text.boundingBox.width);result.height=Math.max(minHeight,state.text.boundingBox.height);}}if(this.graph.getModel().isVertex(state.cell)){var horizontal=mxUtils.getValue(state.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);if(horizontal==mxConstants.ALIGN_LEFT){result.x-=state.width;}else if(horizontal==mxConstants.ALIGN_RIGHT){result.x+=state.width;}var vertical=mxUtils.getValue(state.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);if(vertical==mxConstants.ALIGN_TOP){result.y-=state.height;}else if(vertical==mxConstants.ALIGN_BOTTOM){result.y+=state.height;}}return result;};mxCellEditor.prototype.getEmptyLabelText=function(cell){return this.emptyLabelText;};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell;};mxCellEditor.prototype.destroy=function(){if(this.textarea!=null){mxEvent.release(this.textarea);if(this.textarea.parentNode!=null){this.textarea.parentNode.removeChild(this.textarea);}this.textarea=null;}};function mxCellRenderer(){this.shapes=mxUtils.clone(this.defaultShapes);};mxCellRenderer.prototype.shapes=null;mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultShapes=new Object();mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_ARROW]=mxArrow;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_RECTANGLE]=mxRectangleShape;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_ELLIPSE]=mxEllipse;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_DOUBLE_ELLIPSE]=mxDoubleEllipse;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_RHOMBUS]=mxRhombus;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_IMAGE]=mxImageShape;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_LINE]=mxLine;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_LABEL]=mxLabel;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_CYLINDER]=mxCylinder;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_SWIMLANE]=mxSwimlane;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_CONNECTOR]=mxConnector;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_ACTOR]=mxActor;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_CLOUD]=mxCloud;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_TRIANGLE]=mxTriangle;mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_HEXAGON]=mxHexagon;mxCellRenderer.prototype.registerShape=function(key,shape){this.shapes[key]=shape;};mxCellRenderer.prototype.initialize=function(state){var model=state.view.graph.getModel();if(state.view.graph.container!=null&&state.shape==null&&state.cell!=state.view.currentRoot&&(model.isVertex(state.cell)||model.isEdge(state.cell))){this.createShape(state);if(state.shape!=null){this.initializeShape(state);if(state.view.graph.ordered||model.isEdge(state.cell)){state.invalidOrder=true;}else if(state.view.graph.keepEdgesInForeground&&this.firstEdge!=null){if(this.firstEdge.parentNode==state.shape.node.parentNode){this.insertState(state,this.firstEdge);}else{this.firstEdge=null;}}state.shape.scale=state.view.scale;this.createCellOverlays(state);this.installListeners(state);}}};mxCellRenderer.prototype.initializeShape=function(state){state.shape.init(state.view.getDrawPane());};mxCellRenderer.prototype.getPreviousStateInContainer=function(state,container){var result=null;var graph=state.view.graph;var model=graph.getModel();var child=state.cell;var p=model.getParent(child);while(p!=null&&result==null){result=this.findPreviousStateInContainer(graph,p,child,container);child=p;p=model.getParent(child);}return result;};mxCellRenderer.prototype.findPreviousStateInContainer=function(graph,cell,stop,container){var result=null;var model=graph.getModel();if(stop!=null){var start=cell.getIndex(stop);for(var i=start-1;i>=0&&result==null;i--){result=this.findPreviousStateInContainer(graph,model.getChildAt(cell,i),null,container);}}else{var childCount=model.getChildCount(cell);for(var i=childCount-1;i>=0&&result==null;i--){result=this.findPreviousStateInContainer(graph,model.getChildAt(cell,i),null,container);}}if(result==null){result=graph.view.getState(cell);if(result!=null&&(result.shape==null||result.shape.node==null||result.shape.node.parentNode!=container)){result=null;}}return result;};mxCellRenderer.prototype.order=function(state){var container=state.shape.node.parentNode;var previous=this.getPreviousStateInContainer(state,container);var nextNode=container.firstChild;if(previous!=null){nextNode=previous.shape.node;if(previous.text!=null&&previous.text.node!=null&&previous.text.node.parentNode==container){nextNode=previous.text.node;}nextNode=nextNode.nextSibling;}this.insertState(state,nextNode);};mxCellRenderer.prototype.orderEdge=function(state){var view=state.view;var model=view.graph.getModel();if(view.graph.keepEdgesInForeground){if(this.firstEdge==null||this.firstEdge.parentNode==null||this.firstEdge.parentNode!=state.shape.node.parentNode){this.firstEdge=state.shape.node;}}else if(view.graph.keepEdgesInBackground){var node=state.shape.node;var parent=node.parentNode;var pcell=model.getParent(state.cell);var pstate=view.getState(pcell);if(pstate!=null&&pstate.shape!=null&&pstate.shape.node!=null){var child=pstate.shape.node.nextSibling;if(child!=null&&child!=node){this.insertState(state,child);}}else{var child=parent.firstChild;if(child!=null&&child!=node){this.insertState(state,child);}}}};mxCellRenderer.prototype.insertState=function(state,nextNode){state.shape.node.parentNode.insertBefore(state.shape.node,nextNode);if(state.text!=null&&state.text.node!=null&&state.text.node.parentNode==state.shape.node.parentNode){state.shape.node.parentNode.insertBefore(state.text.node,state.shape.node.nextSibling);}};mxCellRenderer.prototype.createShape=function(state){if(state.style!=null){var key=state.style[mxConstants.STYLE_SHAPE];var stencil=mxStencilRegistry.getStencil(key);if(stencil!=null){state.shape=new mxStencilShape(stencil);}else{var ctor=this.getShapeConstructor(state);state.shape=new ctor();}state.shape.points=state.absolutePoints;state.shape.bounds=new mxRectangle(state.x,state.y,state.width,state.height);state.shape.dialect=state.view.graph.dialect;this.configureShape(state);}};mxCellRenderer.prototype.getShapeConstructor=function(state){var key=state.style[mxConstants.STYLE_SHAPE];var ctor=(key!=null)?this.shapes[key]:null;if(ctor==null){ctor=(state.view.graph.getModel().isEdge(state.cell))?this.defaultEdgeShape:this.defaultVertexShape;}return ctor;};mxCellRenderer.prototype.configureShape=function(state){state.shape.apply(state);var image=state.view.graph.getImage(state);if(image!=null){state.shape.image=image;}var indicator=state.view.graph.getIndicatorColor(state);var key=state.view.graph.getIndicatorShape(state);var ctor=(key!=null)?this.shapes[key]:null;if(indicator!=null){state.shape.indicatorShape=ctor;state.shape.indicatorColor=indicator;state.shape.indicatorGradientColor=state.view.graph.getIndicatorGradientColor(state);state.shape.indicatorDirection=state.style[mxConstants.STYLE_INDICATOR_DIRECTION];}else{var indicator=state.view.graph.getIndicatorImage(state);if(indicator!=null){state.shape.indicatorImage=indicator;}}this.postConfigureShape(state);};mxCellRenderer.prototype.postConfigureShape=function(state){if(state.shape!=null){this.resolveColor(state,'indicatorColor',mxConstants.STYLE_FILLCOLOR);this.resolveColor(state,'indicatorGradientColor',mxConstants.STYLE_GRADIENTCOLOR);this.resolveColor(state,'fill',mxConstants.STYLE_FILLCOLOR);this.resolveColor(state,'stroke',mxConstants.STYLE_STROKECOLOR);this.resolveColor(state,'gradient',mxConstants.STYLE_GRADIENTCOLOR);}};mxCellRenderer.prototype.resolveColor=function(state,field,key){var value=state.shape[field];var graph=state.view.graph;var referenced=null;if(value=='inherit'){referenced=graph.model.getParent(state.cell);}else if(value=='swimlane'){if(graph.model.getTerminal(state.cell,false)!=null){referenced=graph.model.getTerminal(state.cell,false);}else{referenced=state.cell;}referenced=graph.getSwimlane(referenced);key=graph.swimlaneIndicatorColorAttribute;}else if(value=='indicated'){state.shape[field]=state.shape.indicatorColor;}if(referenced!=null){var rstate=graph.getView().getState(referenced);state.shape[field]=null;if(rstate!=null){if(rstate.shape!=null&&field!='indicatorColor'){state.shape[field]=rstate.shape[field];}else{state.shape[field]=rstate.style[key];}}}};mxCellRenderer.prototype.getLabelValue=function(state){var graph=state.view.graph;var value=graph.getLabel(state.cell);if(!graph.isHtmlLabel(state.cell)&&!mxUtils.isNode(value)&&graph.dialect!=mxConstants.DIALECT_SVG&&value!=null){value=mxUtils.htmlEntities(value,false);}return value;};mxCellRenderer.prototype.createLabel=function(state,value){var graph=state.view.graph;var isEdge=graph.getModel().isEdge(state.cell);if(state.style[mxConstants.STYLE_FONTSIZE]>0||state.style[mxConstants.STYLE_FONTSIZE]==null){var isForceHtml=(graph.isHtmlLabel(state.cell)||(value!=null&&mxUtils.isNode(value)))&&graph.dialect==mxConstants.DIALECT_SVG;state.text=new mxText(value,new mxRectangle(),(state.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER),graph.getVerticalAlign(state),state.style[mxConstants.STYLE_FONTCOLOR],state.style[mxConstants.STYLE_FONTFAMILY],state.style[mxConstants.STYLE_FONTSIZE],state.style[mxConstants.STYLE_FONTSTYLE],state.style[mxConstants.STYLE_SPACING],state.style[mxConstants.STYLE_SPACING_TOP],state.style[mxConstants.STYLE_SPACING_RIGHT],state.style[mxConstants.STYLE_SPACING_BOTTOM],state.style[mxConstants.STYLE_SPACING_LEFT],state.style[mxConstants.STYLE_HORIZONTAL],state.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],state.style[mxConstants.STYLE_LABEL_BORDERCOLOR],graph.isWrapping(state.cell)&&graph.isHtmlLabel(state.cell),graph.isLabelClipped(state.cell),state.style[mxConstants.STYLE_OVERFLOW],state.style[mxConstants.STYLE_LABEL_PADDING]);state.text.opacity=state.style[mxConstants.STYLE_TEXT_OPACITY];state.text.dialect=(isForceHtml)?mxConstants.DIALECT_STRICTHTML:state.view.graph.dialect;this.initializeLabel(state);var forceGetCell=false;var getState=function(evt){var result=state;if(mxClient.IS_TOUCH||forceGetCell){var x=mxEvent.getClientX(evt);var y=mxEvent.getClientY(evt);var pt=mxUtils.convertPoint(graph.container,x,y);result=graph.view.getState(graph.getCellAt(pt.x,pt.y));}return result;};var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(state.text.node,md,mxUtils.bind(this,function(evt){if(this.isLabelEvent(state,evt)){graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(evt,state));forceGetCell=graph.dialect!=mxConstants.DIALECT_SVG&&mxEvent.getSource(evt).nodeName=='IMG';}}));mxEvent.addListener(state.text.node,mm,mxUtils.bind(this,function(evt){if(this.isLabelEvent(state,evt)){graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(evt,getState(evt)));}}));mxEvent.addListener(state.text.node,mu,mxUtils.bind(this,function(evt){if(this.isLabelEvent(state,evt)){graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(evt,getState(evt)));forceGetCell=false;}}));mxEvent.addListener(state.text.node,'dblclick',mxUtils.bind(this,function(evt){if(this.isLabelEvent(state,evt)){graph.dblClick(evt,state.cell);mxEvent.consume(evt);}}));}};mxCellRenderer.prototype.initializeLabel=function(state){var graph=state.view.graph;if(state.text.dialect!=mxConstants.DIALECT_SVG){if(mxClient.IS_SVG&&mxClient.NO_FO){state.text.init(graph.container);}else if(mxUtils.isVml(state.view.getDrawPane())){if(state.shape.label!=null){state.text.init(state.shape.label);}else{state.text.init(state.shape.node);}}}if(state.text.node==null){state.text.init(state.view.getDrawPane());if(state.shape!=null&&state.text!=null){state.shape.node.parentNode.insertBefore(state.text.node,state.shape.node.nextSibling);}}};mxCellRenderer.prototype.createCellOverlays=function(state){var graph=state.view.graph;var overlays=graph.getCellOverlays(state.cell);if(overlays!=null){if(state.overlays==null){state.overlays=[];}for(var i=0;i<overlays.length;i++){if(state.overlays[i]==null){var tmp=new mxImageShape(new mxRectangle(),overlays[i].image.src);tmp.dialect=state.view.graph.dialect;tmp.overlay=overlays[i];this.initializeOverlay(state,tmp);this.installCellOverlayListeners(state,overlays[i],tmp);if(overlays[i].cursor!=null){tmp.node.style.cursor=overlays[i].cursor;}state.overlays[i]=tmp;}}}};mxCellRenderer.prototype.initializeOverlay=function(state,overlay){overlay.init(state.view.getOverlayPane());};mxCellRenderer.prototype.installCellOverlayListeners=function(state,overlay,shape){var graph=state.view.graph;mxEvent.addListener(shape.node,'click',function(evt){if(graph.isEditing()){graph.stopEditing(!graph.isInvokesStopCellEditing());}overlay.fireEvent(new mxEventObject(mxEvent.CLICK,'event',evt,'cell',state.cell));});var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';mxEvent.addListener(shape.node,md,function(evt){mxEvent.consume(evt);});mxEvent.addListener(shape.node,mm,function(evt){graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(evt,state));});if(mxClient.IS_TOUCH){mxEvent.addListener(shape.node,'touchend',function(evt){overlay.fireEvent(new mxEventObject(mxEvent.CLICK,'event',evt,'cell',state.cell));});}};mxCellRenderer.prototype.createControl=function(state){var graph=state.view.graph;var image=graph.getFoldingImage(state);if(graph.foldingEnabled&&image!=null){if(state.control==null){var b=new mxRectangle(0,0,image.width,image.height);state.control=new mxImageShape(b,image.src);state.control.dialect=graph.dialect;state.control.preserveImageAspect=false;this.initControl(state,state.control,true,function(evt){if(graph.isEnabled()){var collapse=!graph.isCellCollapsed(state.cell);graph.foldCells(collapse,false,[state.cell]);mxEvent.consume(evt);}});}}else if(state.control!=null){state.control.destroy();state.control=null;}};mxCellRenderer.prototype.initControl=function(state,control,handleEvents,clickHandler){var graph=state.view.graph;var isForceHtml=graph.isHtmlLabel(state.cell)&&mxClient.NO_FO&&graph.dialect==mxConstants.DIALECT_SVG;if(isForceHtml){control.dialect=mxConstants.DIALECT_PREFERHTML;control.init(graph.container);control.node.style.zIndex=1;}else{control.init(state.view.getOverlayPane());}var node=control.innerNode||control.node;if(clickHandler){if(graph.isEnabled()){node.style.cursor='pointer';}mxEvent.addListener(node,'click',clickHandler);}if(handleEvents){var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';mxEvent.addListener(node,md,function(evt){graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(evt,state));mxEvent.consume(evt);});mxEvent.addListener(node,mm,function(evt){graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(evt,state));});}return node;};mxCellRenderer.prototype.isShapeEvent=function(state,evt){return true;};mxCellRenderer.prototype.isLabelEvent=function(state,evt){return true;};mxCellRenderer.prototype.installListeners=function(state){var graph=state.view.graph;if(graph.dialect==mxConstants.DIALECT_SVG){var events='all';if(graph.getModel().isEdge(state.cell)&&state.shape.stroke!=null&&(state.shape.fill==null||state.shape.fill==mxConstants.NONE)){events='visibleStroke';}if(state.shape.innerNode!=null){state.shape.innerNode.setAttribute('pointer-events',events);}else{state.shape.node.setAttribute('pointer-events',events);}}var getState=function(evt){var result=state;if((graph.dialect!=mxConstants.DIALECT_SVG&&mxEvent.getSource(evt).nodeName=='IMG')||mxClient.IS_TOUCH){var x=mxEvent.getClientX(evt);var y=mxEvent.getClientY(evt);var pt=mxUtils.convertPoint(graph.container,x,y);result=graph.view.getState(graph.getCellAt(pt.x,pt.y));}return result;};var gestureInProgress=false;mxEvent.addListener(state.shape.node,'gesturestart',mxUtils.bind(this,function(evt){graph.lastTouchTime=0;gestureInProgress=true;mxEvent.consume(evt);}));var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(state.shape.node,md,mxUtils.bind(this,function(evt){if(this.isShapeEvent(state,evt)&&!gestureInProgress){graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(evt,(state.shape!=null&&mxEvent.getSource(evt)==state.shape.content)?null:state));}else if(gestureInProgress){mxEvent.consume(evt);}}));mxEvent.addListener(state.shape.node,mm,mxUtils.bind(this,function(evt){if(this.isShapeEvent(state,evt)&&!gestureInProgress){graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(evt,(state.shape!=null&&mxEvent.getSource(evt)==state.shape.content)?null:getState(evt)));}else if(gestureInProgress){mxEvent.consume(evt);}}));mxEvent.addListener(state.shape.node,mu,mxUtils.bind(this,function(evt){if(this.isShapeEvent(state,evt)&&!gestureInProgress){graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(evt,(state.shape!=null&&mxEvent.getSource(evt)==state.shape.content)?null:getState(evt)));}else if(gestureInProgress){mxEvent.consume(evt);}}));var dc=(mxClient.IS_TOUCH)?'gestureend':'dblclick';mxEvent.addListener(state.shape.node,dc,mxUtils.bind(this,function(evt){gestureInProgress=false;if(dc=='gestureend'){graph.lastTouchTime=0;if(graph.gestureEnabled){graph.handleGesture(state,evt);mxEvent.consume(evt);}}else if(this.isShapeEvent(state,evt)){graph.dblClick(evt,(state.shape!=null&&mxEvent.getSource(evt)==state.shape.content)?null:state.cell);mxEvent.consume(evt);}}));};mxCellRenderer.prototype.redrawLabel=function(state){var value=this.getLabelValue(state);if(state.text==null&&value!=null&&(mxUtils.isNode(value)||value.length>0)){this.createLabel(state,value);}else if(state.text!=null&&(value==null||value.length==0)){state.text.destroy();state.text=null;}if(state.text!=null){var graph=state.view.graph;var wrapping=graph.isWrapping(state.cell);var clipping=graph.isLabelClipped(state.cell);var bounds=this.getLabelBounds(state);if(state.text.value!=value||state.text.isWrapping!=wrapping||state.text.isClipping!=clipping||state.text.scale!=state.view.scale||!state.text.bounds.equals(bounds)){state.text.value=value;state.text.bounds=bounds;state.text.scale=this.getTextScale(state);state.text.isWrapping=wrapping;state.text.isClipping=clipping;state.text.redraw();}}};mxCellRenderer.prototype.getTextScale=function(state){return state.view.scale;};mxCellRenderer.prototype.getLabelBounds=function(state){var graph=state.view.graph;var isEdge=graph.getModel().isEdge(state.cell);var bounds=new mxRectangle(state.absoluteOffset.x,state.absoluteOffset.y);if(!isEdge){bounds.x+=state.x;bounds.y+=state.y;bounds.width=Math.max(1,state.width);bounds.height=Math.max(1,state.height);if(graph.isSwimlane(state.cell)){var scale=graph.view.scale;var size=graph.getStartSize(state.cell);if(size.width>0){bounds.width=size.width*scale;}else if(size.height>0){bounds.height=size.height*scale;}}}return bounds;};mxCellRenderer.prototype.redrawCellOverlays=function(state){var overlays=state.view.graph.getCellOverlays(state.cell);var oldCount=(state.overlays!=null)?state.overlays.length:0;var newCount=(overlays!=null)?overlays.length:0;if(oldCount!=newCount){if(oldCount>0){var newOverlayShapes=[];for(var i=0;i<state.overlays.length;i++){var index=mxUtils.indexOf(overlays,state.overlays[i].overlay);if(index>=0){newOverlayShapes[index]=state.overlays[i];}else{state.overlays[i].destroy();}}state.overlays=newOverlayShapes;}if(newCount>0){this.createCellOverlays(state);}else{state.overlays=null;}}if(state.overlays!=null){for(var i=0;i<overlays.length;i++){var bounds=overlays[i].getBounds(state);if(state.overlays[i].bounds==null||state.overlays[i].scale!=state.view.scale||!state.overlays[i].bounds.equals(bounds)){state.overlays[i].bounds=bounds;state.overlays[i].scale=state.view.scale;state.overlays[i].redraw();}}}};mxCellRenderer.prototype.redrawControl=function(state){if(state.control!=null){var bounds=this.getControlBounds(state);var s=state.view.scale;if(state.control.scale!=s||!state.control.bounds.equals(bounds)){state.control.bounds=bounds;state.control.scale=s;state.control.redraw();}}};mxCellRenderer.prototype.getControlBounds=function(state){if(state.control!=null){var oldScale=state.control.scale;var w=state.control.bounds.width/oldScale;var h=state.control.bounds.height/oldScale;var s=state.view.scale;return(state.view.graph.getModel().isEdge(state.cell))?new mxRectangle(state.x+state.width/2-w/2*s,state.y+state.height/2-h/2*s,w*s,h*s):new mxRectangle(state.x+w/2*s,state.y+h/2*s,w*s,h*s);}return null;};mxCellRenderer.prototype.redraw=function(state){if(state.shape!=null){var model=state.view.graph.getModel();var isEdge=model.isEdge(state.cell);var reconfigure=false;this.createControl(state);if(state.orderChanged||state.invalidOrder){if(state.view.graph.ordered){this.order(state);}else{this.orderEdge(state);}reconfigure=state.orderChanged;}delete state.invalidOrder;delete state.orderChanged;if(!reconfigure&&!mxUtils.equalEntries(state.shape.style,state.style)){reconfigure=true;}if(reconfigure){this.configureShape(state);state.shape.reconfigure();}if(state.shape.bounds==null||state.shape.scale!=state.view.scale||!state.shape.bounds.equals(state)||!mxUtils.equalPoints(state.shape.points,state.absolutePoints)){if(state.absolutePoints!=null){state.shape.points=state.absolutePoints.slice();}else{state.shape.points=null;}state.shape.bounds=new mxRectangle(state.x,state.y,state.width,state.height);state.shape.scale=state.view.scale;state.shape.redraw();}this.redrawLabel(state);this.redrawCellOverlays(state);this.redrawControl(state);}};mxCellRenderer.prototype.destroy=function(state){if(state.shape!=null){if(state.text!=null){state.text.destroy();state.text=null;}if(state.overlays!=null){for(var i=0;i<state.overlays.length;i++){state.overlays[i].destroy();}state.overlays=null;}if(state.control!=null){state.control.destroy();state.control=null;}state.shape.destroy();state.shape=null;}};var mxEdgeStyle={EntityRelation:function(state,source,target,points,result){var view=state.view;var graph=view.graph;var segment=mxUtils.getValue(state.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*view.scale;var pts=state.absolutePoints;var p0=pts[0];var pe=pts[pts.length-1];var isSourceLeft=false;if(p0!=null){source=new mxCellState();source.x=p0.x;source.y=p0.y;}else if(source!=null){var constraint=mxUtils.getPortConstraints(source,state,true,mxConstants.DIRECTION_MASK_NONE);if(constraint!=mxConstants.DIRECTION_MASK_NONE){isSourceLeft=constraint==mxConstants.DIRECTION_MASK_WEST;}else{var sourceGeometry=graph.getCellGeometry(source.cell);if(sourceGeometry.relative){isSourceLeft=sourceGeometry.x<=0.5;}else if(target!=null){isSourceLeft=target.x+target.width<source.x;}}}else{return;}var isTargetLeft=true;if(pe!=null){target=new mxCellState();target.x=pe.x;target.y=pe.y;}else if(target!=null){var constraint=mxUtils.getPortConstraints(target,state,false,mxConstants.DIRECTION_MASK_NONE);if(constraint!=mxConstants.DIRECTION_MASK_NONE){isTargetLeft=constraint==mxConstants.DIRECTION_MASK_WEST;}else{var targetGeometry=graph.getCellGeometry(target.cell);if(targetGeometry.relative){isTargetLeft=targetGeometry.x<=0.5;}else if(source!=null){isTargetLeft=source.x+source.width<target.x;}}}if(source!=null&&target!=null){var x0=(isSourceLeft)?source.x:source.x+source.width;var y0=view.getRoutingCenterY(source);var xe=(isTargetLeft)?target.x:target.x+target.width;var ye=view.getRoutingCenterY(target);var seg=segment;var dx=(isSourceLeft)?-seg:seg;var dep=new mxPoint(x0+dx,y0);dx=(isTargetLeft)?-seg:seg;var arr=new mxPoint(xe+dx,ye);if(isSourceLeft==isTargetLeft){var x=(isSourceLeft)?Math.min(x0,xe)-segment:Math.max(x0,xe)+segment;result.push(new mxPoint(x,y0));result.push(new mxPoint(x,ye));}else if((dep.x<arr.x)==isSourceLeft){var midY=y0+(ye-y0)/2;result.push(dep);result.push(new mxPoint(dep.x,midY));result.push(new mxPoint(arr.x,midY));result.push(arr);}else{result.push(dep);result.push(arr);}}},Loop:function(state,source,target,points,result){if(source!=null){var view=state.view;var graph=view.graph;var pt=(points!=null&&points.length>0)?points[0]:null;if(pt!=null){pt=view.transformControlPoint(state,pt);if(mxUtils.contains(source,pt.x,pt.y)){pt=null;}}var x=0;var dx=0;var y=0;var dy=0;var seg=mxUtils.getValue(state.style,mxConstants.STYLE_SEGMENT,graph.gridSize)*view.scale;var dir=mxUtils.getValue(state.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);if(dir==mxConstants.DIRECTION_NORTH||dir==mxConstants.DIRECTION_SOUTH){x=view.getRoutingCenterX(source);dx=seg;}else{y=view.getRoutingCenterY(source);dy=seg;}if(pt==null||pt.x<source.x||pt.x>source.x+source.width){if(pt!=null){x=pt.x;dy=Math.max(Math.abs(y-pt.y),dy);}else{if(dir==mxConstants.DIRECTION_NORTH){y=source.y-2*dx;}else if(dir==mxConstants.DIRECTION_SOUTH){y=source.y+source.height+2*dx;}else if(dir==mxConstants.DIRECTION_EAST){x=source.x-2*dy;}else{x=source.x+source.width+2*dy;}}}else if(pt!=null){x=view.getRoutingCenterX(source);dx=Math.max(Math.abs(x-pt.x),dy);y=pt.y;dy=0;}result.push(new mxPoint(x-dx,y-dy));result.push(new mxPoint(x+dx,y+dy));}},ElbowConnector:function(state,source,target,points,result){var pt=(points!=null&&points.length>0)?points[0]:null;var vertical=false;var horizontal=false;if(source!=null&&target!=null){if(pt!=null){var left=Math.min(source.x,target.x);var right=Math.max(source.x+source.width,target.x+target.width);var top=Math.min(source.y,target.y);var bottom=Math.max(source.y+source.height,target.y+target.height);pt=state.view.transformControlPoint(state,pt);vertical=pt.y<top||pt.y>bottom;horizontal=pt.x<left||pt.x>right;}else{var left=Math.max(source.x,target.x);var right=Math.min(source.x+source.width,target.x+target.width);vertical=left==right;if(!vertical){var top=Math.max(source.y,target.y);var bottom=Math.min(source.y+source.height,target.y+target.height);horizontal=top==bottom;}}}if(!horizontal&&(vertical||state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL)){mxEdgeStyle.TopToBottom(state,source,target,points,result);}else{mxEdgeStyle.SideToSide(state,source,target,points,result);}},SideToSide:function(state,source,target,points,result){var view=state.view;var pt=(points!=null&&points.length>0)?points[0]:null;var pts=state.absolutePoints;var p0=pts[0];var pe=pts[pts.length-1];if(pt!=null){pt=view.transformControlPoint(state,pt);}if(p0!=null){source=new mxCellState();source.x=p0.x;source.y=p0.y;}if(pe!=null){target=new mxCellState();target.x=pe.x;target.y=pe.y;}if(source!=null&&target!=null){var l=Math.max(source.x,target.x);var r=Math.min(source.x+source.width,target.x+target.width);var x=(pt!=null)?pt.x:r+(l-r)/2;var y1=view.getRoutingCenterY(source);var y2=view.getRoutingCenterY(target);if(pt!=null){if(p0!=null&&pt.y>=source.y&&pt.y<=source.y+source.height){y1=pt.y;}if(pe!=null&&pt.y>=target.y&&pt.y<=target.y+target.height){y2=pt.y;}}if(!mxUtils.contains(target,x,y1)&&!mxUtils.contains(source,x,y1)){result.push(new mxPoint(x,y1));}if(!mxUtils.contains(target,x,y2)&&!mxUtils.contains(source,x,y2)){result.push(new mxPoint(x,y2));}if(result.length==1){if(pt!=null){if(!mxUtils.contains(target,x,pt.y)&&!mxUtils.contains(source,x,pt.y)){result.push(new mxPoint(x,pt.y));}}else{var t=Math.max(source.y,target.y);var b=Math.min(source.y+source.height,target.y+target.height);result.push(new mxPoint(x,t+(b-t)/2));}}}},TopToBottom:function(state,source,target,points,result){var view=state.view;var pt=(points!=null&&points.length>0)?points[0]:null;var pts=state.absolutePoints;var p0=pts[0];var pe=pts[pts.length-1];if(pt!=null){pt=view.transformControlPoint(state,pt);}if(p0!=null){source=new mxCellState();source.x=p0.x;source.y=p0.y;}if(pe!=null){target=new mxCellState();target.x=pe.x;target.y=pe.y;}if(source!=null&&target!=null){var t=Math.max(source.y,target.y);var b=Math.min(source.y+source.height,target.y+target.height);var x=view.getRoutingCenterX(source);if(pt!=null&&pt.x>=source.x&&pt.x<=source.x+source.width){x=pt.x;}var y=(pt!=null)?pt.y:b+(t-b)/2;if(!mxUtils.contains(target,x,y)&&!mxUtils.contains(source,x,y)){result.push(new mxPoint(x,y));}if(pt!=null&&pt.x>=target.x&&pt.x<=target.x+target.width){x=pt.x;}else{x=view.getRoutingCenterX(target);}if(!mxUtils.contains(target,x,y)&&!mxUtils.contains(source,x,y)){result.push(new mxPoint(x,y));}if(result.length==1){if(pt!=null&&result.length==1){if(!mxUtils.contains(target,pt.x,y)&&!mxUtils.contains(source,pt.x,y)){result.push(new mxPoint(pt.x,y));}}else{var l=Math.max(source.x,target.x);var r=Math.min(source.x+source.width,target.x+target.width);result.push(new mxPoint(l+(r-l)/2,y));}}}},SegmentConnector:function(state,source,target,hints,result){var pts=state.absolutePoints;var horizontal=true;var hint=null;var pt=pts[0];if(pt==null&&source!=null){pt=new mxPoint(state.view.getRoutingCenterX(source),state.view.getRoutingCenterY(source));}else if(pt!=null){pt=pt.clone();}var lastInx=pts.length-1;if(hints!=null&&hints.length>0){hint=state.view.transformControlPoint(state,hints[0]);var currentTerm=source;var currentPt=pts[0];var hozChan=false;var vertChan=false;var currentHint=hint;var hintsLen=hints.length;for(var i=0;i<2;i++){var fixedVertAlign=currentPt!=null&&currentPt.x==currentHint.x;var fixedHozAlign=currentPt!=null&&currentPt.y==currentHint.y;var inHozChan=currentTerm!=null&&(currentHint.y>=currentTerm.y&&currentHint.y<=currentTerm.y+currentTerm.height);var inVertChan=currentTerm!=null&&(currentHint.x>=currentTerm.x&&currentHint.x<=currentTerm.x+currentTerm.width);hozChan=fixedHozAlign||(currentPt==null&&inHozChan);vertChan=fixedVertAlign||(currentPt==null&&inVertChan);if(currentPt!=null&&(!fixedHozAlign&&!fixedVertAlign)&&(inHozChan||inVertChan)){horizontal=inHozChan?false:true;break;}if(vertChan||hozChan){horizontal=hozChan;if(i==1){horizontal=hints.length%2==0?hozChan:vertChan;}break;}currentTerm=target;currentPt=pts[lastInx];currentHint=state.view.transformControlPoint(state,hints[hintsLen-1]);}if(horizontal&&((pts[0]!=null&&pts[0].y!=hint.y)||(pts[0]==null&&source!=null&&(hint.y<source.y||hint.y>source.y+source.height)))){result.push(new mxPoint(pt.x,hint.y));}else if(!horizontal&&((pts[0]!=null&&pts[0].x!=hint.x)||(pts[0]==null&&source!=null&&(hint.x<source.x||hint.x>source.x+source.width)))){result.push(new mxPoint(hint.x,pt.y));}if(horizontal){pt.y=hint.y;}else{pt.x=hint.x;}for(var i=0;i<hints.length;i++){horizontal=!horizontal;hint=state.view.transformControlPoint(state,hints[i]);if(horizontal){pt.y=hint.y;}else{pt.x=hint.x;}result.push(pt.clone());}}else{hint=pt;horizontal=true;}pt=pts[lastInx];if(pt==null&&target!=null){pt=new mxPoint(state.view.getRoutingCenterX(target),state.view.getRoutingCenterY(target));}if(horizontal&&((pts[lastInx]!=null&&pts[lastInx].y!=hint.y)||(pts[lastInx]==null&&target!=null&&(hint.y<target.y||hint.y>target.y+target.height)))){result.push(new mxPoint(pt.x,hint.y));}else if(!horizontal&&((pts[lastInx]!=null&&pts[lastInx].x!=hint.x)||(pts[lastInx]==null&&target!=null&&(hint.x<target.x||hint.x>target.x+target.width)))){result.push(new mxPoint(hint.x,pt.y));}if(pts[0]==null&&source!=null){while(result.length>1&&mxUtils.contains(source,result[1].x,result[1].y)){result=result.splice(1,1);}}if(pts[lastInx]==null&&target!=null){while(result.length>1&&mxUtils.contains(target,result[result.length-1].x,result[result.length-1].y)){result=result.splice(result.length-1,1);}}},orthBuffer:10,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,OrthConnector:function(state,source,target,points,result){var graph=state.view.graph;var sourceEdge=source==null?false:graph.getModel().isEdge(source.cell);var targetEdge=target==null?false:graph.getModel().isEdge(target.cell);if((points!=null&&points.length>0)||(sourceEdge)||(targetEdge)){mxEdgeStyle.SegmentConnector(state,source,target,points,result);return;}var pts=state.absolutePoints;var p0=pts[0];var pe=pts[pts.length-1];var sourceX=source!=null?source.x:p0.x;var sourceY=source!=null?source.y:p0.y;var sourceWidth=source!=null?source.width:1;var sourceHeight=source!=null?source.height:1;var targetX=target!=null?target.x:pe.x;var targetY=target!=null?target.y:pe.y;var targetWidth=target!=null?target.width:1;var targetHeight=target!=null?target.height:1;var scaledOrthBuffer=state.view.scale*mxEdgeStyle.orthBuffer;var portConstraint=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];if(source!=null){portConstraint[0]=mxUtils.getPortConstraints(source,state,true,mxConstants.DIRECTION_MASK_ALL);}if(target!=null){portConstraint[1]=mxUtils.getPortConstraints(target,state,false,mxConstants.DIRECTION_MASK_ALL);}var dir=[0,0];var geo=[[sourceX,sourceY,sourceWidth,sourceHeight],[targetX,targetY,targetWidth,targetHeight]];for(var i=0;i<2;i++){mxEdgeStyle.limits[i][1]=geo[i][0]-scaledOrthBuffer;mxEdgeStyle.limits[i][2]=geo[i][1]-scaledOrthBuffer;mxEdgeStyle.limits[i][4]=geo[i][0]+geo[i][2]+scaledOrthBuffer;mxEdgeStyle.limits[i][8]=geo[i][1]+geo[i][3]+scaledOrthBuffer;}var sourceCenX=geo[0][0]+geo[0][2]/2.0;var sourceCenY=geo[0][1]+geo[0][3]/2.0;var targetCenX=geo[1][0]+geo[1][2]/2.0;var targetCenY=geo[1][1]+geo[1][3]/2.0;var dx=sourceCenX-targetCenX;var dy=sourceCenY-targetCenY;var quad=0;if(dx<0){if(dy<0){quad=2;}else{quad=1;}}else{if(dy<=0){quad=3;if(dx==0){quad=2;}}}var currentTerm=null;if(source!=null){currentTerm=p0;}var constraint=[[0.5,0.5],[0.5,0.5]];for(var i=0;i<2;i++){if(currentTerm!=null){constraint[i][0]=(currentTerm.x-geo[i][0])/geo[i][2];if(constraint[i][0]<0.01){dir[i]=mxConstants.DIRECTION_MASK_WEST;}else if(constraint[i][0]>0.99){dir[i]=mxConstants.DIRECTION_MASK_EAST;}constraint[i][1]=(currentTerm.y-geo[i][1])/geo[i][3];if(constraint[i][1]<0.01){dir[i]=mxConstants.DIRECTION_MASK_NORTH;}else if(constraint[i][1]>0.99){dir[i]=mxConstants.DIRECTION_MASK_SOUTH;}}currentTerm=null;if(target!=null){currentTerm=pe;}}var sourceTopDist=geo[0][1]-(geo[1][1]+geo[1][3]);var sourceLeftDist=geo[0][0]-(geo[1][0]+geo[1][2]);var sourceBottomDist=geo[1][1]-(geo[0][1]+geo[0][3]);var sourceRightDist=geo[1][0]-(geo[0][0]+geo[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(sourceLeftDist-2*scaledOrthBuffer,0);mxEdgeStyle.vertexSeperations[2]=Math.max(sourceTopDist-2*scaledOrthBuffer,0);mxEdgeStyle.vertexSeperations[4]=Math.max(sourceBottomDist-2*scaledOrthBuffer,0);mxEdgeStyle.vertexSeperations[3]=Math.max(sourceRightDist-2*scaledOrthBuffer,0);var dirPref=[];var horPref=[];var vertPref=[];horPref[0]=(sourceLeftDist>=sourceRightDist)?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;vertPref[0]=(sourceTopDist>=sourceBottomDist)?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;horPref[1]=mxUtils.reversePortConstraints(horPref[0]);vertPref[1]=mxUtils.reversePortConstraints(vertPref[0]);var preferredHorizDist=sourceLeftDist>=sourceRightDist?sourceLeftDist:sourceRightDist;var preferredVertDist=sourceTopDist>=sourceBottomDist?sourceTopDist:sourceBottomDist;var prefOrdering=[[0,0],[0,0]];var preferredOrderSet=false;for(var i=0;i<2;i++){if(dir[i]!=0x0){continue;}if((horPref[i]&portConstraint[i])==0){horPref[i]=mxUtils.reversePortConstraints(horPref[i]);}if((vertPref[i]&portConstraint[i])==0){vertPref[i]=mxUtils.reversePortConstraints(vertPref[i]);}prefOrdering[i][0]=vertPref[i];prefOrdering[i][1]=horPref[i];}if(preferredVertDist>scaledOrthBuffer*2&&preferredHorizDist>scaledOrthBuffer*2){if(((horPref[0]&portConstraint[0])>0)&&((vertPref[1]&portConstraint[1])>0)){prefOrdering[0][0]=horPref[0];prefOrdering[0][1]=vertPref[0];prefOrdering[1][0]=vertPref[1];prefOrdering[1][1]=horPref[1];preferredOrderSet=true;}else if(((vertPref[0]&portConstraint[0])>0)&&((horPref[1]&portConstraint[1])>0)){prefOrdering[0][0]=vertPref[0];prefOrdering[0][1]=horPref[0];prefOrdering[1][0]=horPref[1];prefOrdering[1][1]=vertPref[1];preferredOrderSet=true;}}if(preferredVertDist>scaledOrthBuffer*2&&!preferredOrderSet){prefOrdering[0][0]=vertPref[0];prefOrdering[0][1]=horPref[0];prefOrdering[1][0]=vertPref[1];prefOrdering[1][1]=horPref[1];preferredOrderSet=true;}if(preferredHorizDist>scaledOrthBuffer*2&&!preferredOrderSet){prefOrdering[0][0]=horPref[0];prefOrdering[0][1]=vertPref[0];prefOrdering[1][0]=horPref[1];prefOrdering[1][1]=vertPref[1];preferredOrderSet=true;}for(var i=0;i<2;i++){if(dir[i]!=0x0){continue;}if((prefOrdering[i][0]&portConstraint[i])==0){prefOrdering[i][0]=prefOrdering[i][1];}dirPref[i]=prefOrdering[i][0]&portConstraint[i];dirPref[i]|=(prefOrdering[i][1]&portConstraint[i])<<8;dirPref[i]|=(prefOrdering[1-i][i]&portConstraint[i])<<16;dirPref[i]|=(prefOrdering[1-i][1-i]&portConstraint[i])<<24;if((dirPref[i]&0xF)==0){dirPref[i]=dirPref[i]<<8;}if((dirPref[i]&0xF00)==0){dirPref[i]=(dirPref[i]&0xF)|dirPref[i]>>8;}if((dirPref[i]&0xF0000)==0){dirPref[i]=(dirPref[i]&0xFFFF)|((dirPref[i]&0xF000000)>>8);}dir[i]=dirPref[i]&0xF;if(portConstraint[i]==mxConstants.DIRECTION_MASK_WEST||portConstraint[i]==mxConstants.DIRECTION_MASK_NORTH||portConstraint[i]==mxConstants.DIRECTION_MASK_EAST||portConstraint[i]==mxConstants.DIRECTION_MASK_SOUTH){dir[i]=portConstraint[i];}}var sourceIndex=dir[0]==mxConstants.DIRECTION_MASK_EAST?3:dir[0];var targetIndex=dir[1]==mxConstants.DIRECTION_MASK_EAST?3:dir[1];sourceIndex-=quad;targetIndex-=quad;if(sourceIndex<1){sourceIndex+=4;}if(targetIndex<1){targetIndex+=4;}var routePattern=mxEdgeStyle.routePatterns[sourceIndex-1][targetIndex-1];mxEdgeStyle.wayPoints1[0][0]=geo[0][0];mxEdgeStyle.wayPoints1[0][1]=geo[0][1];switch(dir[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=scaledOrthBuffer;mxEdgeStyle.wayPoints1[0][1]+=constraint[0][1]*geo[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=constraint[0][0]*geo[0][2];mxEdgeStyle.wayPoints1[0][1]+=geo[0][3]+scaledOrthBuffer;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=geo[0][2]+scaledOrthBuffer;mxEdgeStyle.wayPoints1[0][1]+=constraint[0][1]*geo[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=constraint[0][0]*geo[0][2];mxEdgeStyle.wayPoints1[0][1]-=scaledOrthBuffer;break;}var currentIndex=0;var lastOrientation=(dir[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))>0?0:1;var initialOrientation=lastOrientation;var currentOrientation=0;for(var i=0;i<routePattern.length;i++){var nextDirection=routePattern[i]&0xF;var directionIndex=nextDirection==mxConstants.DIRECTION_MASK_EAST?3:nextDirection;directionIndex+=quad;if(directionIndex>4){directionIndex-=4;}var direction=mxEdgeStyle.dirVectors[directionIndex-1];currentOrientation=(directionIndex%2>0)?0:1;if(currentOrientation!=lastOrientation){currentIndex++;mxEdgeStyle.wayPoints1[currentIndex][0]=mxEdgeStyle.wayPoints1[currentIndex-1][0];mxEdgeStyle.wayPoints1[currentIndex][1]=mxEdgeStyle.wayPoints1[currentIndex-1][1];}var tar=(routePattern[i]&mxEdgeStyle.TARGET_MASK)>0;var sou=(routePattern[i]&mxEdgeStyle.SOURCE_MASK)>0;var side=(routePattern[i]&mxEdgeStyle.SIDE_MASK)>>5;side=side<<quad;if(side>0xF){side=side>>4;}var center=(routePattern[i]&mxEdgeStyle.CENTER_MASK)>0;if((sou||tar)&&side<9){var limit=0;var souTar=sou?0:1;if(center&&currentOrientation==0){limit=geo[souTar][0]+constraint[souTar][0]*geo[souTar][2];}else if(center){limit=geo[souTar][1]+constraint[souTar][1]*geo[souTar][3];}else{limit=mxEdgeStyle.limits[souTar][side];}if(currentOrientation==0){var lastX=mxEdgeStyle.wayPoints1[currentIndex][0];var deltaX=(limit-lastX)*direction[0];if(deltaX>0){mxEdgeStyle.wayPoints1[currentIndex][0]+=direction[0]*deltaX;}}else{var lastY=mxEdgeStyle.wayPoints1[currentIndex][1];var deltaY=(limit-lastY)*direction[1];if(deltaY>0){mxEdgeStyle.wayPoints1[currentIndex][1]+=direction[1]*deltaY;}}}else if(center){mxEdgeStyle.wayPoints1[currentIndex][0]+=direction[0]*Math.abs(mxEdgeStyle.vertexSeperations[directionIndex]/2);mxEdgeStyle.wayPoints1[currentIndex][1]+=direction[1]*Math.abs(mxEdgeStyle.vertexSeperations[directionIndex]/2);}if(currentIndex>0&&mxEdgeStyle.wayPoints1[currentIndex][currentOrientation]==mxEdgeStyle.wayPoints1[currentIndex-1][currentOrientation]){currentIndex--;}else{lastOrientation=currentOrientation;}}for(var i=0;i<=currentIndex;i++){if(i==currentIndex){var targetOrientation=(dir[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))>0?0:1;var sameOrient=targetOrientation==initialOrientation?0:1;if(sameOrient!=(currentIndex+1)%2){break;}}result.push(new mxPoint(mxEdgeStyle.wayPoints1[i][0],mxEdgeStyle.wayPoints1[i][1]));}},getRoutePattern:function(dir,quad,dx,dy){var sourceIndex=dir[0]==mxConstants.DIRECTION_MASK_EAST?3:dir[0];var targetIndex=dir[1]==mxConstants.DIRECTION_MASK_EAST?3:dir[1];sourceIndex-=quad;targetIndex-=quad;if(sourceIndex<1){sourceIndex+=4;}if(targetIndex<1){targetIndex+=4;}var result=routePatterns[sourceIndex-1][targetIndex-1];if(dx==0||dy==0){if(inlineRoutePatterns[sourceIndex-1][targetIndex-1]!=null){result=inlineRoutePatterns[sourceIndex-1][targetIndex-1];}}return result;}};var mxStyleRegistry={values:[],putValue:function(name,obj){mxStyleRegistry.values[name]=obj;},getValue:function(name){return mxStyleRegistry.values[name];},getName:function(value){for(var key in mxStyleRegistry.values){if(mxStyleRegistry.values[key]==value){return key;}}return null;}};mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector);mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter);mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter);mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter);mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter);function mxGraphView(graph){this.graph=graph;this.translate=new mxPoint();this.graphBounds=new mxRectangle();this.states=new mxDictionary();};mxGraphView.prototype=new mxEventSource();mxGraphView.prototype.constructor=mxGraphView;mxGraphView.prototype.EMPTY_POINT=new mxPoint();mxGraphView.prototype.doneResource=(mxClient.language!='none')?'done':'';mxGraphView.prototype.updatingDocumentResource=(mxClient.language!='none')?'updatingDocument':'';mxGraphView.prototype.allowEval=false;mxGraphView.prototype.captureDocumentGesture=true;mxGraphView.prototype.rendering=true;mxGraphView.prototype.graph=null;mxGraphView.prototype.currentRoot=null;mxGraphView.prototype.graphBounds=null;mxGraphView.prototype.scale=1;mxGraphView.prototype.translate=null;mxGraphView.prototype.updateStyle=false;mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds;};mxGraphView.prototype.setGraphBounds=function(value){this.graphBounds=value;};mxGraphView.prototype.getBounds=function(cells){var result=null;if(cells!=null&&cells.length>0){var model=this.graph.getModel();for(var i=0;i<cells.length;i++){if(model.isVertex(cells[i])||model.isEdge(cells[i])){var state=this.getState(cells[i]);if(state!=null){if(result==null){result=new mxRectangle(state.x,state.y,state.width,state.height);}else{result.add(state);}}}}}return result;};mxGraphView.prototype.setCurrentRoot=function(root){if(this.currentRoot!=root){var change=new mxCurrentRootChange(this,root);change.execute();var edit=new mxUndoableEdit(this,false);edit.add(change);this.fireEvent(new mxEventObject(mxEvent.UNDO,'edit',edit));this.graph.sizeDidChange();}return root;};mxGraphView.prototype.scaleAndTranslate=function(scale,dx,dy){var previousScale=this.scale;var previousTranslate=new mxPoint(this.translate.x,this.translate.y);if(this.scale!=scale||this.translate.x!=dx||this.translate.y!=dy){this.scale=scale;this.translate.x=dx;this.translate.y=dy;if(this.isEventsEnabled()){this.revalidate();this.graph.sizeDidChange();}}this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,'scale',scale,'previousScale',previousScale,'translate',this.translate,'previousTranslate',previousTranslate));};mxGraphView.prototype.getScale=function(){return this.scale;};mxGraphView.prototype.setScale=function(value){var previousScale=this.scale;if(this.scale!=value){this.scale=value;if(this.isEventsEnabled()){this.revalidate();this.graph.sizeDidChange();}}this.fireEvent(new mxEventObject(mxEvent.SCALE,'scale',value,'previousScale',previousScale));};mxGraphView.prototype.getTranslate=function(){return this.translate;};mxGraphView.prototype.setTranslate=function(dx,dy){var previousTranslate=new mxPoint(this.translate.x,this.translate.y);if(this.translate.x!=dx||this.translate.y!=dy){this.translate.x=dx;this.translate.y=dy;if(this.isEventsEnabled()){this.revalidate();this.graph.sizeDidChange();}}this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,'translate',this.translate,'previousTranslate',previousTranslate));};mxGraphView.prototype.refresh=function(){if(this.currentRoot!=null){this.clear();}this.revalidate();};mxGraphView.prototype.revalidate=function(){this.invalidate();this.validate();};mxGraphView.prototype.clear=function(cell,force,recurse){var model=this.graph.getModel();cell=cell||model.getRoot();force=(force!=null)?force:false;recurse=(recurse!=null)?recurse:true;this.removeState(cell);if(recurse&&(force||cell!=this.currentRoot)){var childCount=model.getChildCount(cell);for(var i=0;i<childCount;i++){this.clear(model.getChildAt(cell,i),force);}}else{this.invalidate(cell);}};mxGraphView.prototype.invalidate=function(cell,recurse,includeEdges,orderChanged){var model=this.graph.getModel();cell=cell||model.getRoot();recurse=(recurse!=null)?recurse:true;includeEdges=(includeEdges!=null)?includeEdges:true;orderChanged=(orderChanged!=null)?orderChanged:false;var state=this.getState(cell);if(state!=null){state.invalid=true;if(orderChanged){state.orderChanged=true;}}if(recurse){var childCount=model.getChildCount(cell);for(var i=0;i<childCount;i++){var child=model.getChildAt(cell,i);this.invalidate(child,recurse,includeEdges,orderChanged);}}if(includeEdges){var edgeCount=model.getEdgeCount(cell);for(var i=0;i<edgeCount;i++){this.invalidate(model.getEdgeAt(cell,i),recurse,includeEdges);}}};mxGraphView.prototype.validate=function(cell){var t0=mxLog.enter('mxGraphView.validate');window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;cell=cell||((this.currentRoot!=null)?this.currentRoot:this.graph.getModel().getRoot());this.validateBounds(null,cell);var graphBounds=this.validatePoints(null,cell);if(graphBounds==null){graphBounds=new mxRectangle();}this.setGraphBounds(graphBounds);this.validateBackground();window.status=mxResources.get(this.doneResource)||this.doneResource;mxLog.leave('mxGraphView.validate',t0);};mxGraphView.prototype.createBackgroundPageShape=function(bounds){return new mxRectangleShape(bounds,'white','black');};mxGraphView.prototype.validateBackground=function(){var bg=this.graph.getBackgroundImage();if(bg!=null){if(this.backgroundImage==null||this.backgroundImage.image!=bg.src){if(this.backgroundImage!=null){this.backgroundImage.destroy();}var bounds=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(bounds,bg.src);this.backgroundImage.dialect=this.graph.dialect;this.backgroundImage.init(this.backgroundPane);this.backgroundImage.redraw();}this.redrawBackgroundImage(this.backgroundImage,bg);}else if(this.backgroundImage!=null){this.backgroundImage.destroy();this.backgroundImage=null;}if(this.graph.pageVisible){var bounds=this.getBackgroundPageBounds();if(this.backgroundPageShape==null){this.backgroundPageShape=this.createBackgroundPageShape(bounds);this.backgroundPageShape.scale=this.scale;this.backgroundPageShape.isShadow=true;this.backgroundPageShape.dialect=this.graph.dialect;this.backgroundPageShape.init(this.backgroundPane);this.backgroundPageShape.redraw();mxEvent.addListener(this.backgroundPageShape.node,'dblclick',mxUtils.bind(this,function(evt){this.graph.dblClick(evt);}));var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(this.backgroundPageShape.node,md,mxUtils.bind(this,function(evt){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(evt));}));mxEvent.addListener(this.backgroundPageShape.node,mm,mxUtils.bind(this,function(evt){if(this.graph.tooltipHandler!=null&&this.graph.tooltipHandler.isHideOnHover()){this.graph.tooltipHandler.hide();}if(this.graph.isMouseDown&&!mxEvent.isConsumed(evt)){this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(evt));}}));mxEvent.addListener(this.backgroundPageShape.node,mu,mxUtils.bind(this,function(evt){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(evt));}));}else{this.backgroundPageShape.scale=this.scale;this.backgroundPageShape.bounds=bounds;this.backgroundPageShape.redraw();}}else if(this.backgroundPageShape!=null){this.backgroundPageShape.destroy();this.backgroundPageShape=null;}};mxGraphView.prototype.getBackgroundPageBounds=function(){var fmt=this.graph.pageFormat;var ps=this.scale*this.graph.pageScale;var bounds=new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,fmt.width*ps,fmt.height*ps);return bounds;};mxGraphView.prototype.redrawBackgroundImage=function(backgroundImage,bg){backgroundImage.scale=this.scale;backgroundImage.bounds.x=this.scale*this.translate.x;backgroundImage.bounds.y=this.scale*this.translate.y;backgroundImage.bounds.width=this.scale*bg.width;backgroundImage.bounds.height=this.scale*bg.height;backgroundImage.redraw();};mxGraphView.prototype.validateBounds=function(parentState,cell){var model=this.graph.getModel();var state=this.getState(cell,true);if(state!=null&&state.invalid){if(!this.graph.isCellVisible(cell)){this.removeState(cell);}else if(cell!=this.currentRoot&&parentState!=null){state.absoluteOffset.x=0;state.absoluteOffset.y=0;state.origin.x=parentState.origin.x;state.origin.y=parentState.origin.y;var geo=this.graph.getCellGeometry(cell);if(geo!=null){if(!model.isEdge(cell)){var offset=geo.offset||this.EMPTY_POINT;if(geo.relative){state.origin.x+=geo.x*parentState.width/this.scale+offset.x;state.origin.y+=geo.y*parentState.height/this.scale+offset.y;}else{state.absoluteOffset.x=this.scale*offset.x;state.absoluteOffset.y=this.scale*offset.y;state.origin.x+=geo.x;state.origin.y+=geo.y;}}state.x=this.scale*(this.translate.x+state.origin.x);state.y=this.scale*(this.translate.y+state.origin.y);state.width=this.scale*geo.width;state.height=this.scale*geo.height;if(model.isVertex(cell)){this.updateVertexLabelOffset(state);}}}var offset=this.graph.getChildOffsetForCell(cell);if(offset!=null){state.origin.x+=offset.x;state.origin.y+=offset.y;}}if(state!=null&&(!this.graph.isCellCollapsed(cell)||cell==this.currentRoot)){var childCount=model.getChildCount(cell);for(var i=0;i<childCount;i++){var child=model.getChildAt(cell,i);this.validateBounds(state,child);}}};mxGraphView.prototype.updateVertexLabelOffset=function(state){var horizontal=mxUtils.getValue(state.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);if(horizontal==mxConstants.ALIGN_LEFT){state.absoluteOffset.x-=state.width;}else if(horizontal==mxConstants.ALIGN_RIGHT){state.absoluteOffset.x+=state.width;}var vertical=mxUtils.getValue(state.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);if(vertical==mxConstants.ALIGN_TOP){state.absoluteOffset.y-=state.height;}else if(vertical==mxConstants.ALIGN_BOTTOM){state.absoluteOffset.y+=state.height;}};mxGraphView.prototype.validatePoints=function(parentState,cell){var model=this.graph.getModel();var state=this.getState(cell);var bbox=null;if(state!=null){if(state.invalid){var geo=this.graph.getCellGeometry(cell);if(geo!=null&&model.isEdge(cell)){var source=this.getState(this.getVisibleTerminal(cell,true));state.setVisibleTerminalState(source,true);if(source!=null&&model.isEdge(source.cell)&&!model.isAncestor(source.cell,cell)){var tmp=this.getState(model.getParent(source.cell));this.validatePoints(tmp,source.cell);}var target=this.getState(this.getVisibleTerminal(cell,false));state.setVisibleTerminalState(target,false);if(target!=null&&model.isEdge(target.cell)&&!model.isAncestor(target.cell,cell)){var tmp=this.getState(model.getParent(target.cell));this.validatePoints(tmp,target.cell);}this.updateFixedTerminalPoints(state,source,target);this.updatePoints(state,geo.points,source,target);this.updateFloatingTerminalPoints(state,source,target);this.updateEdgeBounds(state);this.updateEdgeLabelOffset(state);}else if(geo!=null&&geo.relative&&parentState!=null&&model.isEdge(parentState.cell)){var origin=this.getPoint(parentState,geo);if(origin!=null){state.x=origin.x;state.y=origin.y;origin.x=(origin.x/this.scale)-this.translate.x;origin.y=(origin.y/this.scale)-this.translate.y;state.origin=origin;this.childMoved(parentState,state);}}state.invalid=false;if(this.isRendering()&&cell!=this.currentRoot){this.graph.cellRenderer.redraw(state);}}if(model.isEdge(cell)||model.isVertex(cell)){bbox=new mxRectangle(state.x,state.y,state.width,state.height);if(mxUtils.getValue(state.style,mxConstants.STYLE_SHADOW,0)==1){bbox.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale);bbox.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale);}var sw=Math.ceil(mxUtils.getNumber(state.style,mxConstants.STYLE_STROKEWIDTH,1)*this.scale);bbox.grow(Math.floor(sw/2));var box=(state.text!=null&&!this.graph.isLabelClipped(state.cell))?state.text.boundingBox:null;if(box!=null){bbox.add(box);}}}if(state!=null&&(!this.graph.isCellCollapsed(cell)||cell==this.currentRoot)){var childCount=model.getChildCount(cell);for(var i=0;i<childCount;i++){var child=model.getChildAt(cell,i);var bounds=this.validatePoints(state,child);if(bounds!=null){if(bbox==null){bbox=bounds;}else{bbox.add(bounds);}}}}return bbox;};mxGraphView.prototype.childMoved=function(parent,child){var cell=child.cell;if(!this.graph.isCellCollapsed(cell)||cell==this.currentRoot){var model=this.graph.getModel();var childCount=model.getChildCount(cell);for(var i=0;i<childCount;i++){this.validateBounds(child,model.getChildAt(cell,i));}}};mxGraphView.prototype.updateFixedTerminalPoints=function(edge,source,target){this.updateFixedTerminalPoint(edge,source,true,this.graph.getConnectionConstraint(edge,source,true));this.updateFixedTerminalPoint(edge,target,false,this.graph.getConnectionConstraint(edge,target,false));};mxGraphView.prototype.updateFixedTerminalPoint=function(edge,terminal,source,constraint){var pt=null;if(constraint!=null){pt=this.graph.getConnectionPoint(terminal,constraint);}if(pt==null&&terminal==null){var s=this.scale;var tr=this.translate;var orig=edge.origin;var geo=this.graph.getCellGeometry(edge.cell);pt=geo.getTerminalPoint(source);if(pt!=null){pt=new mxPoint(s*(tr.x+pt.x+orig.x),s*(tr.y+pt.y+orig.y));}}edge.setAbsoluteTerminalPoint(pt,source);};mxGraphView.prototype.updatePoints=function(edge,points,source,target){if(edge!=null){var pts=[];pts.push(edge.absolutePoints[0]);var edgeStyle=this.getEdgeStyle(edge,points,source,target);if(edgeStyle!=null){var src=this.getTerminalPort(edge,source,true);var trg=this.getTerminalPort(edge,target,false);edgeStyle(edge,src,trg,points,pts);}else if(points!=null){for(var i=0;i<points.length;i++){if(points[i]!=null){var pt=mxUtils.clone(points[i]);pts.push(this.transformControlPoint(edge,pt));}}}var tmp=edge.absolutePoints;pts.push(tmp[tmp.length-1]);edge.absolutePoints=pts;}};mxGraphView.prototype.transformControlPoint=function(state,pt){var orig=state.origin;return new mxPoint(this.scale*(pt.x+this.translate.x+orig.x),this.scale*(pt.y+this.translate.y+orig.y));};mxGraphView.prototype.getEdgeStyle=function(edge,points,source,target){var edgeStyle=(source!=null&&source==target)?mxUtils.getValue(edge.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):(!mxUtils.getValue(edge.style,mxConstants.STYLE_NOEDGESTYLE,false)?edge.style[mxConstants.STYLE_EDGE]:null);if(typeof(edgeStyle)=="string"){var tmp=mxStyleRegistry.getValue(edgeStyle);if(tmp==null&&this.isAllowEval()){tmp=mxUtils.eval(edgeStyle);}edgeStyle=tmp;}if(typeof(edgeStyle)=="function"){return edgeStyle;}return null;};mxGraphView.prototype.updateFloatingTerminalPoints=function(state,source,target){var pts=state.absolutePoints;var p0=pts[0];var pe=pts[pts.length-1];if(pe==null&&target!=null){this.updateFloatingTerminalPoint(state,target,source,false);}if(p0==null&&source!=null){this.updateFloatingTerminalPoint(state,source,target,true);}};mxGraphView.prototype.updateFloatingTerminalPoint=function(edge,start,end,source){start=this.getTerminalPort(edge,start,source);var next=this.getNextPoint(edge,end,source);var border=parseFloat(edge.style[mxConstants.STYLE_PERIMETER_SPACING]||0);border+=parseFloat(edge.style[(source)?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);var pt=this.getPerimeterPoint(start,next,this.graph.isOrthogonal(edge),border);edge.setAbsoluteTerminalPoint(pt,source);};mxGraphView.prototype.getTerminalPort=function(state,terminal,source){var key=(source)?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT;var id=mxUtils.getValue(state.style,key);if(id!=null){var tmp=this.getState(this.graph.getModel().getCell(id));if(tmp!=null){terminal=tmp;}}return terminal;};mxGraphView.prototype.getPerimeterPoint=function(terminal,next,orthogonal,border){var point=null;if(terminal!=null){var perimeter=this.getPerimeterFunction(terminal);if(perimeter!=null&&next!=null){var bounds=this.getPerimeterBounds(terminal,border);if(bounds.width>0||bounds.height>0){point=perimeter(bounds,terminal,next,orthogonal);}}if(point==null){point=this.getPoint(terminal);}}return point;};mxGraphView.prototype.getRoutingCenterX=function(state){var f=(state.style!=null)?parseFloat(state.style[mxConstants.STYLE_ROUTING_CENTER_X])||0:0;return state.getCenterX()+f*state.width;};mxGraphView.prototype.getRoutingCenterY=function(state){var f=(state.style!=null)?parseFloat(state.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0:0;return state.getCenterY()+f*state.height;};mxGraphView.prototype.getPerimeterBounds=function(terminal,border){border=(border!=null)?border:0;if(terminal!=null){border+=parseFloat(terminal.style[mxConstants.STYLE_PERIMETER_SPACING]||0);}return terminal.getPerimeterBounds(border*this.scale);};mxGraphView.prototype.getPerimeterFunction=function(state){var perimeter=state.style[mxConstants.STYLE_PERIMETER];if(typeof(perimeter)=="string"){var tmp=mxStyleRegistry.getValue(perimeter);if(tmp==null&&this.isAllowEval()){tmp=mxUtils.eval(perimeter);}perimeter=tmp;}if(typeof(perimeter)=="function"){return perimeter;}return null;};mxGraphView.prototype.getNextPoint=function(edge,opposite,source){var pts=edge.absolutePoints;var point=null;if(pts!=null&&(source||pts.length>2||opposite==null)){var count=pts.length;point=pts[(source)?Math.min(1,count-1):Math.max(0,count-2)];}if(point==null&&opposite!=null){point=new mxPoint(opposite.getCenterX(),opposite.getCenterY());}return point;};mxGraphView.prototype.getVisibleTerminal=function(edge,source){var model=this.graph.getModel();var result=model.getTerminal(edge,source);var best=result;while(result!=null&&result!=this.currentRoot){if(!this.graph.isCellVisible(best)||this.graph.isCellCollapsed(result)){best=result;}result=model.getParent(result);}if(model.getParent(best)==model.getRoot()){best=null;}return best;};mxGraphView.prototype.updateEdgeBounds=function(state){var points=state.absolutePoints;state.length=0;if(points!=null&&points.length>0){var p0=points[0];var pe=points[points.length-1];if(p0==null||pe==null){this.clear(state.cell,true);}else{if(p0.x!=pe.x||p0.y!=pe.y){var dx=pe.x-p0.x;var dy=pe.y-p0.y;state.terminalDistance=Math.sqrt(dx*dx+dy*dy);}else{state.terminalDistance=0;}var length=0;var segments=[];var pt=p0;if(pt!=null){var minX=pt.x;var minY=pt.y;var maxX=minX;var maxY=minY;for(var i=1;i<points.length;i++){var tmp=points[i];if(tmp!=null){var dx=pt.x-tmp.x;var dy=pt.y-tmp.y;var segment=Math.sqrt(dx*dx+dy*dy);segments.push(segment);length+=segment;pt=tmp;minX=Math.min(pt.x,minX);minY=Math.min(pt.y,minY);maxX=Math.max(pt.x,maxX);maxY=Math.max(pt.y,maxY);}}state.length=length;state.segments=segments;var markerSize=1;state.x=minX;state.y=minY;state.width=Math.max(markerSize,maxX-minX);state.height=Math.max(markerSize,maxY-minY);}}}};mxGraphView.prototype.getPoint=function(state,geometry){var x=state.getCenterX();var y=state.getCenterY();if(state.segments!=null&&(geometry==null||geometry.relative)){var gx=(geometry!=null)?geometry.x/2:0;var pointCount=state.absolutePoints.length;var dist=(gx+0.5)*state.length;var segment=state.segments[0];var length=0;var index=1;while(dist>length+segment&&index<pointCount-1){length+=segment;segment=state.segments[index++];}var factor=(segment==0)?0:(dist-length)/segment;var p0=state.absolutePoints[index-1];var pe=state.absolutePoints[index];if(p0!=null&&pe!=null){var gy=0;var offsetX=0;var offsetY=0;if(geometry!=null){gy=geometry.y;var offset=geometry.offset;if(offset!=null){offsetX=offset.x;offsetY=offset.y;}}var dx=pe.x-p0.x;var dy=pe.y-p0.y;var nx=(segment==0)?0:dy/segment;var ny=(segment==0)?0:dx/segment;x=p0.x+dx*factor+(nx*gy+offsetX)*this.scale;y=p0.y+dy*factor-(ny*gy-offsetY)*this.scale;}}else if(geometry!=null){var offset=geometry.offset;if(offset!=null){x+=offset.x;y+=offset.y;}}return new mxPoint(x,y);};mxGraphView.prototype.getRelativePoint=function(edgeState,x,y){var model=this.graph.getModel();var geometry=model.getGeometry(edgeState.cell);if(geometry!=null){var pointCount=edgeState.absolutePoints.length;if(geometry.relative&&pointCount>1){var totalLength=edgeState.length;var segments=edgeState.segments;var p0=edgeState.absolutePoints[0];var pe=edgeState.absolutePoints[1];var minDist=mxUtils.ptSegDistSq(p0.x,p0.y,pe.x,pe.y,x,y);var index=0;var tmp=0;var length=0;for(var i=2;i<pointCount;i++){tmp+=segments[i-2];pe=edgeState.absolutePoints[i];var dist=mxUtils.ptSegDistSq(p0.x,p0.y,pe.x,pe.y,x,y);if(dist<=minDist){minDist=dist;index=i-1;length=tmp;}p0=pe;}var seg=segments[index];p0=edgeState.absolutePoints[index];pe=edgeState.absolutePoints[index+1];var x2=p0.x;var y2=p0.y;var x1=pe.x;var y1=pe.y;var px=x;var py=y;var xSegment=x2-x1;var ySegment=y2-y1;px-=x1;py-=y1;var projlenSq=0;px=xSegment-px;py=ySegment-py;var dotprod=px*xSegment+py*ySegment;if(dotprod<=0.0){projlenSq=0;}else{projlenSq=dotprod*dotprod/(xSegment*xSegment+ySegment*ySegment);}var projlen=Math.sqrt(projlenSq);if(projlen>seg){projlen=seg;}var yDistance=Math.sqrt(mxUtils.ptSegDistSq(p0.x,p0.y,pe.x,pe.y,x,y));var direction=mxUtils.relativeCcw(p0.x,p0.y,pe.x,pe.y,x,y);if(direction==-1){yDistance=-yDistance;}return new mxPoint(((totalLength/2-length-projlen)/totalLength)*-2,yDistance/this.scale);}}return new mxPoint();};mxGraphView.prototype.updateEdgeLabelOffset=function(state){var points=state.absolutePoints;state.absoluteOffset.x=state.getCenterX();state.absoluteOffset.y=state.getCenterY();if(points!=null&&points.length>0&&state.segments!=null){var geometry=this.graph.getCellGeometry(state.cell);if(geometry.relative){var offset=this.getPoint(state,geometry);if(offset!=null){state.absoluteOffset=offset;}}else{var p0=points[0];var pe=points[points.length-1];if(p0!=null&&pe!=null){var dx=pe.x-p0.x;var dy=pe.y-p0.y;var x0=0;var y0=0;var off=geometry.offset;if(off!=null){x0=off.x;y0=off.y;}var x=p0.x+dx/2+x0*this.scale;var y=p0.y+dy/2+y0*this.scale;state.absoluteOffset.x=x;state.absoluteOffset.y=y;}}}};mxGraphView.prototype.getState=function(cell,create){create=create||false;var state=null;if(cell!=null){state=this.states.get(cell);if(this.graph.isCellVisible(cell)){if(state==null&&create&&this.graph.isCellVisible(cell)){state=this.createState(cell);this.states.put(cell,state);}else if(create&&state!=null&&this.updateStyle){state.style=this.graph.getCellStyle(cell);}}}return state;};mxGraphView.prototype.isRendering=function(){return this.rendering;};mxGraphView.prototype.setRendering=function(value){this.rendering=value;};mxGraphView.prototype.isAllowEval=function(){return this.allowEval;};mxGraphView.prototype.setAllowEval=function(value){this.allowEval=value;};mxGraphView.prototype.getStates=function(){return this.states;};mxGraphView.prototype.setStates=function(value){this.states=value;};mxGraphView.prototype.getCellStates=function(cells){if(cells==null){return this.states;}else{var result=[];for(var i=0;i<cells.length;i++){var state=this.getState(cells[i]);if(state!=null){result.push(state);}}return result;}};mxGraphView.prototype.removeState=function(cell){var state=null;if(cell!=null){state=this.states.remove(cell);if(state!=null){this.graph.cellRenderer.destroy(state);state.destroy();}}return state;};mxGraphView.prototype.createState=function(cell){var style=this.graph.getCellStyle(cell);var state=new mxCellState(this,cell,style);if(this.isRendering()){this.graph.cellRenderer.initialize(state);}return state;};mxGraphView.prototype.getCanvas=function(){return this.canvas;};mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane;};mxGraphView.prototype.getDrawPane=function(){return this.drawPane;};mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane;};mxGraphView.prototype.isContainerEvent=function(evt){var source=mxEvent.getSource(evt);return(source==this.graph.container||source.parentNode==this.backgroundPane||(source.parentNode!=null&&source.parentNode.parentNode==this.backgroundPane)||source==this.canvas.parentNode||source==this.canvas||source==this.backgroundPane||source==this.drawPane||source==this.overlayPane);};mxGraphView.prototype.isScrollEvent=function(evt){var offset=mxUtils.getOffset(this.graph.container);var pt=new mxPoint(evt.clientX-offset.x,evt.clientY-offset.y);var outWidth=this.graph.container.offsetWidth;var inWidth=this.graph.container.clientWidth;if(outWidth>inWidth&&pt.x>inWidth+2&&pt.x<=outWidth){return true;}var outHeight=this.graph.container.offsetHeight;var inHeight=this.graph.container.clientHeight;if(outHeight>inHeight&&pt.y>inHeight+2&&pt.y<=outHeight){return true;}return false;};mxGraphView.prototype.init=function(){this.installListeners();var graph=this.graph;if(graph.dialect==mxConstants.DIALECT_SVG){this.createSvg();}else if(graph.dialect==mxConstants.DIALECT_VML){this.createVml();}else{this.createHtml();}};mxGraphView.prototype.installListeners=function(){var graph=this.graph;var container=graph.container;if(container!=null){var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(container,md,mxUtils.bind(this,function(evt){if(mxClient.IS_TOUCH&&graph.isEditing()){graph.stopEditing(!graph.isInvokesStopCellEditing());}if(this.isContainerEvent(evt)&&((!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF)||!this.isScrollEvent(evt))){graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(evt));}}));mxEvent.addListener(container,mm,mxUtils.bind(this,function(evt){if(this.isContainerEvent(evt)){graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(evt));}}));mxEvent.addListener(container,mu,mxUtils.bind(this,function(evt){if(this.isContainerEvent(evt)){graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(evt));}}));mxEvent.addListener(container,'dblclick',mxUtils.bind(this,function(evt){graph.dblClick(evt);}));var getState=function(evt){var state=null;if(mxClient.IS_TOUCH){var x=mxEvent.getClientX(evt);var y=mxEvent.getClientY(evt);var pt=mxUtils.convertPoint(container,x,y);state=graph.view.getState(graph.getCellAt(pt.x,pt.y));}return state;};graph.addMouseListener({mouseDown:function(sender,me){graph.panningHandler.hideMenu();},mouseMove:function(){},mouseUp:function(){}});mxEvent.addListener(document,mm,mxUtils.bind(this,function(evt){if(graph.tooltipHandler!=null&&graph.tooltipHandler.isHideOnHover()){graph.tooltipHandler.hide();}if(this.captureDocumentGesture&&graph.isMouseDown&&!mxEvent.isConsumed(evt)){graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(evt,getState(evt)));}}));mxEvent.addListener(document,mu,mxUtils.bind(this,function(evt){if(this.captureDocumentGesture){graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(evt));}}));}};mxGraphView.prototype.createHtml=function(){var container=this.graph.container;if(container!=null){this.canvas=this.createHtmlPane();this.backgroundPane=this.createHtmlPane(1,1);this.drawPane=this.createHtmlPane(1,1);this.overlayPane=this.createHtmlPane(1,1);this.canvas.appendChild(this.backgroundPane);this.canvas.appendChild(this.drawPane);this.canvas.appendChild(this.overlayPane);container.appendChild(this.canvas);}};mxGraphView.prototype.createHtmlPane=function(width,height){var pane=document.createElement('DIV');if(width!=null&&height!=null){pane.style.position='absolute';pane.style.left='0px';pane.style.top='0px';pane.style.width=width+'px';pane.style.height=height+'px';}else{pane.style.position='relative';}return pane;};mxGraphView.prototype.createVml=function(){var container=this.graph.container;if(container!=null){var width=container.offsetWidth;var height=container.offsetHeight;this.canvas=this.createVmlPane(width,height);this.backgroundPane=this.createVmlPane(width,height);this.drawPane=this.createVmlPane(width,height);this.overlayPane=this.createVmlPane(width,height);this.canvas.appendChild(this.backgroundPane);this.canvas.appendChild(this.drawPane);this.canvas.appendChild(this.overlayPane);container.appendChild(this.canvas);}};mxGraphView.prototype.createVmlPane=function(width,height){var pane=document.createElement('v:group');pane.style.position='absolute';pane.style.left='0px';pane.style.top='0px';pane.style.width=width+'px';pane.style.height=height+'px';pane.setAttribute('coordsize',width+','+height);pane.setAttribute('coordorigin','0,0');return pane;};mxGraphView.prototype.createSvg=function(){var container=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,'g');this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,'g');this.canvas.appendChild(this.backgroundPane);this.drawPane=document.createElementNS(mxConstants.NS_SVG,'g');this.canvas.appendChild(this.drawPane);this.overlayPane=document.createElementNS(mxConstants.NS_SVG,'g');this.canvas.appendChild(this.overlayPane);var root=document.createElementNS(mxConstants.NS_SVG,'svg');var onResize=mxUtils.bind(this,function(evt){if(this.graph.container!=null){var width=this.graph.container.offsetWidth;var height=this.graph.container.offsetHeight;var bounds=this.getGraphBounds();root.setAttribute('width',Math.max(width,bounds.width));root.setAttribute('height',Math.max(height,bounds.height));}});mxEvent.addListener(window,'resize',onResize);if(mxClient.IS_OP){onResize();}root.appendChild(this.canvas);if(container!=null){container.appendChild(root);var style=mxUtils.getCurrentStyle(container);if(style.position=='static'){container.style.position='relative';}}};mxGraphView.prototype.destroy=function(){var root=(this.canvas!=null)?this.canvas.ownerSVGElement:null;if(root==null){root=this.canvas;}if(root!=null&&root.parentNode!=null){this.clear(this.currentRoot,true);mxEvent.removeAllListeners(document);mxEvent.release(this.graph.container);root.parentNode.removeChild(root);this.canvas=null;this.backgroundPane=null;this.drawPane=null;this.overlayPane=null;}};function mxCurrentRootChange(view,root){this.view=view;this.root=root;this.previous=root;this.isUp=root==null;if(!this.isUp){var tmp=this.view.currentRoot;var model=this.view.graph.getModel();while(tmp!=null){if(tmp==root){this.isUp=true;break;}tmp=model.getParent(tmp);}}};mxCurrentRootChange.prototype.execute=function(){var tmp=this.view.currentRoot;this.view.currentRoot=this.previous;this.previous=tmp;var translate=this.view.graph.getTranslateForRoot(this.view.currentRoot);if(translate!=null){this.view.translate=new mxPoint(-translate.x,-translate.y);}var name=(this.isUp)?mxEvent.UP:mxEvent.DOWN;this.view.fireEvent(new mxEventObject(name,'root',this.view.currentRoot,'previous',this.previous));if(this.isUp){this.view.clear(this.view.currentRoot,true);this.view.validate();}else{this.view.refresh();}this.isUp=!this.isUp;};function mxGraph(container,model,renderHint,stylesheet){this.mouseListeners=null;this.renderHint=renderHint;if(mxClient.IS_SVG){this.dialect=mxConstants.DIALECT_SVG;}else if(renderHint==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML){this.dialect=mxConstants.DIALECT_VML;}else if(renderHint==mxConstants.RENDERING_HINT_FASTEST){this.dialect=mxConstants.DIALECT_STRICTHTML;}else if(renderHint==mxConstants.RENDERING_HINT_FASTER){this.dialect=mxConstants.DIALECT_PREFERHTML;}else {this.dialect=mxConstants.DIALECT_MIXEDHTML;}this.model=(model!=null)?model:new mxGraphModel();this.multiplicities=[];this.imageBundles=[];this.cellRenderer=this.createCellRenderer();this.setSelectionModel(this.createSelectionModel());this.setStylesheet((stylesheet!=null)?stylesheet:this.createStylesheet());this.view=this.createGraphView();this.graphModelChangeListener=mxUtils.bind(this,function(sender,evt){this.graphModelChanged(evt.getProperty('edit').changes);});this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener);this.createHandlers();if(container!=null){this.init(container);}this.view.revalidate();};if(mxLoadResources){mxResources.add(mxClient.basePath+'/resources/graph');}mxGraph.prototype=new mxEventSource();mxGraph.prototype.constructor=mxGraph;mxGraph.prototype.EMPTY_ARRAY=[];mxGraph.prototype.mouseListeners=null;mxGraph.prototype.isMouseDown=false;mxGraph.prototype.model=null;mxGraph.prototype.view=null;mxGraph.prototype.stylesheet=null;mxGraph.prototype.selectionModel=null;mxGraph.prototype.cellEditor=null;mxGraph.prototype.cellRenderer=null;mxGraph.prototype.multiplicities=null;mxGraph.prototype.renderHint=null;mxGraph.prototype.dialect=null;mxGraph.prototype.gridSize=10;mxGraph.prototype.gridEnabled=true;mxGraph.prototype.portsEnabled=true;mxGraph.prototype.doubleTapEnabled=true;mxGraph.prototype.doubleTapTimeout=700;mxGraph.prototype.doubleTapTolerance=25;mxGraph.prototype.lastTouchY=0;mxGraph.prototype.lastTouchY=0;mxGraph.prototype.lastTouchTime=0;mxGraph.prototype.gestureEnabled=true;mxGraph.prototype.tolerance=4;mxGraph.prototype.defaultOverlap=0.5;mxGraph.prototype.defaultParent=null;mxGraph.prototype.alternateEdgeStyle=null;mxGraph.prototype.backgroundImage=null;mxGraph.prototype.pageVisible=false;mxGraph.prototype.pageBreaksVisible=false;mxGraph.prototype.pageBreakColor='gray';mxGraph.prototype.pageBreakDashed=true;mxGraph.prototype.minPageBreakDist=20;mxGraph.prototype.preferPageSize=false;mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT;mxGraph.prototype.pageScale=1.5;mxGraph.prototype.enabled=true;mxGraph.prototype.escapeEnabled=true;mxGraph.prototype.invokesStopCellEditing=true;mxGraph.prototype.enterStopsCellEditing=false;mxGraph.prototype.useScrollbarsForPanning=true;mxGraph.prototype.exportEnabled=true;mxGraph.prototype.importEnabled=true;mxGraph.prototype.cellsLocked=false;mxGraph.prototype.cellsCloneable=true;mxGraph.prototype.foldingEnabled=true;mxGraph.prototype.cellsEditable=true;mxGraph.prototype.cellsDeletable=true;mxGraph.prototype.cellsMovable=true;mxGraph.prototype.edgeLabelsMovable=true;mxGraph.prototype.vertexLabelsMovable=false;mxGraph.prototype.dropEnabled=false;mxGraph.prototype.splitEnabled=true;mxGraph.prototype.cellsResizable=true;mxGraph.prototype.cellsBendable=true;mxGraph.prototype.cellsSelectable=true;mxGraph.prototype.cellsDisconnectable=true;mxGraph.prototype.autoSizeCells=false;mxGraph.prototype.autoScroll=true;mxGraph.prototype.allowAutoPanning=false;mxGraph.prototype.ignoreScrollbars=false;mxGraph.prototype.autoExtend=true;mxGraph.prototype.maximumGraphBounds=null;mxGraph.prototype.minimumGraphSize=null;mxGraph.prototype.minimumContainerSize=null;mxGraph.prototype.maximumContainerSize=null;mxGraph.prototype.resizeContainer=false;mxGraph.prototype.border=0;mxGraph.prototype.ordered=true;mxGraph.prototype.keepEdgesInForeground=false;mxGraph.prototype.keepEdgesInBackground=true;mxGraph.prototype.allowNegativeCoordinates=true;mxGraph.prototype.constrainChildren=true;mxGraph.prototype.extendParents=true;mxGraph.prototype.extendParentsOnAdd=true;mxGraph.prototype.collapseToPreferredSize=true;mxGraph.prototype.zoomFactor=1.2;mxGraph.prototype.keepSelectionVisibleOnZoom=false;mxGraph.prototype.centerZoom=true;mxGraph.prototype.resetViewOnRootChange=true;mxGraph.prototype.resetEdgesOnResize=false;mxGraph.prototype.resetEdgesOnMove=false;mxGraph.prototype.resetEdgesOnConnect=true;mxGraph.prototype.allowLoops=false;mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop;mxGraph.prototype.multigraph=true;mxGraph.prototype.connectableEdges=false;mxGraph.prototype.allowDanglingEdges=true;mxGraph.prototype.cloneInvalidEdges=false;mxGraph.prototype.disconnectOnMove=true;mxGraph.prototype.labelsVisible=true;mxGraph.prototype.htmlLabels=false;mxGraph.prototype.swimlaneSelectionEnabled=true;mxGraph.prototype.swimlaneNesting=true;mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR;mxGraph.prototype.imageBundles=null;mxGraph.prototype.minFitScale=0.1;mxGraph.prototype.maxFitScale=8;mxGraph.prototype.panDx=0;mxGraph.prototype.panDy=0;mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+'/collapsed.gif',9,9);mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+'/expanded.gif',9,9);mxGraph.prototype.warningImage=new mxImage(mxClient.imageBasePath+'/warning'+((mxClient.IS_MAC)?'.png':'.gif'),16,16);mxGraph.prototype.alreadyConnectedResource=(mxClient.language!='none')?'alreadyConnected':'';mxGraph.prototype.containsValidationErrorsResource=(mxClient.language!='none')?'containsValidationErrors':'';mxGraph.prototype.collapseExpandResource=(mxClient.language!='none')?'collapse-expand':'';mxGraph.prototype.init=function(container){this.container=container;this.cellEditor=this.createCellEditor();this.view.init();this.sizeDidChange();if(mxClient.IS_IE){mxEvent.addListener(window,'unload',mxUtils.bind(this,function(){this.destroy();}));mxEvent.addListener(container,'selectstart',mxUtils.bind(this,function(){return this.isEditing();}));}};mxGraph.prototype.createHandlers=function(container){this.tooltipHandler=new mxTooltipHandler(this);this.tooltipHandler.setEnabled(false);this.panningHandler=new mxPanningHandler(this);this.panningHandler.panningEnabled=false;this.selectionCellsHandler=new mxSelectionCellsHandler(this);this.connectionHandler=new mxConnectionHandler(this);this.connectionHandler.setEnabled(false);this.graphHandler=new mxGraphHandler(this);};mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this);};mxGraph.prototype.createStylesheet=function(){return new mxStylesheet();};mxGraph.prototype.createGraphView=function(){return new mxGraphView(this);};mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer();};mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this);};mxGraph.prototype.getModel=function(){return this.model;};mxGraph.prototype.getView=function(){return this.view;};mxGraph.prototype.getStylesheet=function(){return this.stylesheet;};mxGraph.prototype.setStylesheet=function(stylesheet){this.stylesheet=stylesheet;};mxGraph.prototype.getSelectionModel=function(){return this.selectionModel;};mxGraph.prototype.setSelectionModel=function(selectionModel){this.selectionModel=selectionModel;};mxGraph.prototype.getSelectionCellsForChanges=function(changes){var cells=[];for(var i=0;i<changes.length;i++){var change=changes[i];if(change.constructor!=mxRootChange){var cell=null;if(change instanceof mxChildChange&&change.previous==null){cell=change.child;}else if(change.cell!=null&&change.cell instanceof mxCell){cell=change.cell;}if(cell!=null&&mxUtils.indexOf(cells,cell)<0){cells.push(cell);}}}return this.getModel().getTopmostCells(cells);};mxGraph.prototype.graphModelChanged=function(changes){for(var i=0;i<changes.length;i++){this.processChange(changes[i]);}this.removeSelectionCells(this.getRemovedCellsForChanges(changes));this.view.validate();this.sizeDidChange();};mxGraph.prototype.getRemovedCellsForChanges=function(changes){var result=[];for(var i=0;i<changes.length;i++){var change=changes[i];if(change instanceof mxRootChange){break;}else if(change instanceof mxChildChange){if(change.previous!=null&&change.parent==null){result=result.concat(this.model.getDescendants(change.child));}}else if(change instanceof mxVisibleChange){result=result.concat(this.model.getDescendants(change.cell));}}return result;};mxGraph.prototype.processChange=function(change){if(change instanceof mxRootChange){this.clearSelection();this.removeStateForCell(change.previous);if(this.resetViewOnRootChange){this.view.scale=1;this.view.translate.x=0;this.view.translate.y=0;}this.fireEvent(new mxEventObject(mxEvent.ROOT));}else if(change instanceof mxChildChange){var newParent=this.model.getParent(change.child);if(newParent!=null){this.view.invalidate(change.child,true,false,change.previous!=null);}else{this.removeStateForCell(change.child);if(this.view.currentRoot==change.child){this.home();}}if(newParent!=change.previous){if(newParent!=null){this.view.invalidate(newParent,false,false);}if(change.previous!=null){this.view.invalidate(change.previous,false,false);}}}else if(change instanceof mxTerminalChange||change instanceof mxGeometryChange){this.view.invalidate(change.cell);}else if(change instanceof mxValueChange){this.view.invalidate(change.cell,false,false);}else if(change instanceof mxStyleChange){this.view.removeState(change.cell);}else if(change.cell!=null&&change.cell instanceof mxCell){this.removeStateForCell(change.cell);}};mxGraph.prototype.removeStateForCell=function(cell){var childCount=this.model.getChildCount(cell);for(var i=0;i<childCount;i++){this.removeStateForCell(this.model.getChildAt(cell,i));}this.view.removeState(cell);};mxGraph.prototype.addCellOverlay=function(cell,overlay){if(cell.overlays==null){cell.overlays=[];}cell.overlays.push(overlay);var state=this.view.getState(cell);if(state!=null){this.cellRenderer.redraw(state);}this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,'cell',cell,'overlay',overlay));return overlay;};mxGraph.prototype.getCellOverlays=function(cell){return cell.overlays;};mxGraph.prototype.removeCellOverlay=function(cell,overlay){if(overlay==null){this.removeCellOverlays(cell);}else{var index=mxUtils.indexOf(cell.overlays,overlay);if(index>=0){cell.overlays.splice(index,1);if(cell.overlays.length==0){cell.overlays=null;}var state=this.view.getState(cell);if(state!=null){this.cellRenderer.redraw(state);}this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,'cell',cell,'overlay',overlay));}else{overlay=null;}}return overlay;};mxGraph.prototype.removeCellOverlays=function(cell){var overlays=cell.overlays;if(overlays!=null){cell.overlays=null;var state=this.view.getState(cell);if(state!=null){this.cellRenderer.redraw(state);}for(var i=0;i<overlays.length;i++){this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,'cell',cell,'overlay',overlays[i]));}}return overlays;};mxGraph.prototype.clearCellOverlays=function(cell){cell=(cell!=null)?cell:this.model.getRoot();this.removeCellOverlays(cell);var childCount=this.model.getChildCount(cell);for(var i=0;i<childCount;i++){var child=this.model.getChildAt(cell,i);this.clearCellOverlays(child);}};mxGraph.prototype.setCellWarning=function(cell,warning,img,isSelect){if(warning!=null&&warning.length>0){img=(img!=null)?img:this.warningImage;var overlay=new mxCellOverlay(img,'<font color=red>'+warning+'</font>');if(isSelect){overlay.addListener(mxEvent.CLICK,mxUtils.bind(this,function(sender,evt){if(this.isEnabled()){this.setSelectionCell(cell);}}));}return this.addCellOverlay(cell,overlay);}else{this.removeCellOverlays(cell);}return null;};mxGraph.prototype.startEditing=function(evt){this.startEditingAtCell(null,evt);};mxGraph.prototype.startEditingAtCell=function(cell,evt){if(cell==null){cell=this.getSelectionCell();if(cell!=null&&!this.isCellEditable(cell)){cell=null;}}if(cell!=null){this.fireEvent(new mxEventObject(mxEvent.START_EDITING,'cell',cell,'event',evt));this.cellEditor.startEditing(cell,evt);}};mxGraph.prototype.getEditingValue=function(cell,evt){return this.convertValueToString(cell);};mxGraph.prototype.stopEditing=function(cancel){this.cellEditor.stopEditing(cancel);};mxGraph.prototype.labelChanged=function(cell,value,evt){this.model.beginUpdate();try{this.cellLabelChanged(cell,value,this.isAutoSizeCell(cell));this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,'cell',cell,'value',value,'event',evt));}finally{this.model.endUpdate();}return cell;};mxGraph.prototype.cellLabelChanged=function(cell,value,autoSize){this.model.beginUpdate();try{this.model.setValue(cell,value);if(autoSize){this.cellSizeUpdated(cell,false);}}finally{this.model.endUpdate();}};mxGraph.prototype.escape=function(evt){this.stopEditing(true);this.connectionHandler.reset();this.graphHandler.reset();var cells=this.getSelectionCells();for(var i=0;i<cells.length;i++){var state=this.view.getState(cells[i]);if(state!=null&&state.handler!=null){state.handler.reset();}}};mxGraph.prototype.click=function(me){var evt=me.getEvent();var cell=me.getCell();var mxe=new mxEventObject(mxEvent.CLICK,'event',evt,'cell',cell);if(me.isConsumed()){mxe.consume();}this.fireEvent(mxe);if(this.isEnabled()&&!mxEvent.isConsumed(evt)&&!mxe.isConsumed()){if(cell!=null){this.selectCellForEvent(cell,evt);}else{var swimlane=null;if(this.isSwimlaneSelectionEnabled()){swimlane=this.getSwimlaneAt(me.getGraphX(),me.getGraphY());}if(swimlane!=null){this.selectCellForEvent(swimlane,evt);}else if(!this.isToggleEvent(evt)){this.clearSelection();}}}};mxGraph.prototype.dblClick=function(evt,cell){var mxe=new mxEventObject(mxEvent.DOUBLE_CLICK,'event',evt,'cell',cell);this.fireEvent(mxe);if(this.isEnabled()&&!mxEvent.isConsumed(evt)&&!mxe.isConsumed()&&cell!=null&&this.isCellEditable(cell)){this.startEditingAtCell(cell,evt);}};mxGraph.prototype.scrollPointToVisible=function(x,y,extend,border){if(this.ignoreScrollbars||mxUtils.hasScrollbars(this.container)){var c=this.container;border=(border!=null)?border:20;if(x>=c.scrollLeft&&y>=c.scrollTop&&x<=c.scrollLeft+c.clientWidth&&y<=c.scrollTop+c.clientHeight){var dx=c.scrollLeft+c.clientWidth-x;if(dx<border){var old=c.scrollLeft;c.scrollLeft+=border-dx;if(extend&&old==c.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){var root=this.view.getDrawPane().ownerSVGElement;var width=this.container.scrollWidth+border-dx;root.setAttribute('width',width);}else{var width=Math.max(c.clientWidth,c.scrollWidth)+border-dx;var canvas=this.view.getCanvas();canvas.style.width=width+'px';}c.scrollLeft+=border-dx;}}else{dx=x-c.scrollLeft;if(dx<border){c.scrollLeft-=border-dx;}}var dy=c.scrollTop+c.clientHeight-y;if(dy<border){var old=c.scrollTop;c.scrollTop+=border-dy;if(old==c.scrollTop&&extend){if(this.dialect==mxConstants.DIALECT_SVG){var root=this.view.getDrawPane().ownerSVGElement;var height=this.container.scrollHeight+border-dy;root.setAttribute('height',height);}else{var height=Math.max(c.clientHeight,c.scrollHeight)+border-dy;var canvas=this.view.getCanvas();canvas.style.height=height+'px';}c.scrollTop+=border-dy;}}else{dy=y-c.scrollTop;if(dy<border){c.scrollTop-=border-dy;}}}}else if(this.allowAutoPanning&&!this.panningHandler.active){if(this.panningManager==null){this.panningManager=this.createPanningManager();}this.panningManager.panTo(x+this.panDx,y+this.panDy);}};mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this);};mxGraph.prototype.getOffsetSize=function(){function parseBorder(value){var result=0;if(value=='thin'){result=2;}else if(value=='medium'){result=4;}else if(value=='thick'){result=6;}else{result=parseInt(value);}if(isNaN(result)){result=0;}return result;}var style=mxUtils.getCurrentStyle(this.container);var dx=parseBorder(style.borderLeftWidth)+parseBorder(style.borderRightWidth)+parseInt(style.paddingLeft||0)+parseInt(style.paddingRight||0);var width=this.container.offsetWidth-dx;var dy=parseBorder(style.borderTopWidth)+parseBorder(style.borderBottomWidth)+parseInt(style.paddingTop||0)+parseInt(style.paddingBottom||0);var height=this.container.offsetHeight-4-dy;return new mxRectangle(0,0,width,height);};mxGraph.prototype.sizeDidChange=function(){var bounds=this.getGraphBounds();if(this.container!=null){var border=this.getBorder();var width=Math.max(0,bounds.x+bounds.width+1+border);var height=Math.max(0,bounds.y+bounds.height+1+border);if(this.minimumContainerSize!=null){width=Math.max(width,this.minimumContainerSize.width);height=Math.max(height,this.minimumContainerSize.height);}if(this.resizeContainer){var w=width;var h=height;if(this.maximumContainerSize!=null){w=Math.min(this.maximumContainerSize.width,w);h=Math.min(this.maximumContainerSize.height,h);}this.container.style.width=w+'px';this.container.style.height=h+'px';}if(this.preferPageSize||(!mxClient.IS_IE&&this.pageVisible)){var scale=this.view.scale;var tr=this.view.translate;var fmt=this.pageFormat;var ps=scale*this.pageScale;var page=new mxRectangle(0,0,fmt.width*ps,fmt.height*ps);var hCount=(this.pageBreaksVisible)?Math.ceil(width/page.width):1;var vCount=(this.pageBreaksVisible)?Math.ceil(height/page.height):1;width=hCount*page.width+2+tr.x/scale;height=vCount*page.height+2+tr.y/scale;}var size=this.getOffsetSize();width=Math.max(width,size.width);height=Math.max(height,size.height);if(this.dialect==mxConstants.DIALECT_SVG){var root=this.view.getDrawPane().ownerSVGElement;if(this.minimumGraphSize!=null){width=Math.max(width,this.minimumGraphSize.width*this.view.scale);height=Math.max(height,this.minimumGraphSize.height*this.view.scale);}width=Math.ceil(width);height=Math.ceil(height);root.setAttribute('width',width);root.setAttribute('height',height);if(width<=this.container.offsetWidth&&this.container.clientWidth<this.container.offsetWidth){var prevValue=this.container.style.overflow;this.container.style.overflow='hidden';this.container.scrollLeft=1;this.container.style.overflow=prevValue;}}else{width=Math.ceil(width);height=Math.ceil(height);var drawPane=this.view.getDrawPane();var canvas=this.view.getCanvas();drawPane.style.width=width+'px';drawPane.style.height=height+'px';canvas.style.width=width+'px';canvas.style.height=height+'px';if(this.minimumGraphSize!=null){width=Math.max(width,Math.ceil(this.minimumGraphSize.width*this.view.scale));height=Math.max(height,Math.ceil(this.minimumGraphSize.height*this.view.scale));canvas.style.width=width+'px';canvas.style.height=height+'px';}}this.updatePageBreaks(this.pageBreaksVisible,width-1,height-1);}this.fireEvent(new mxEventObject(mxEvent.SIZE,'bounds',bounds));};mxGraph.prototype.updatePageBreaks=function(visible,width,height){var scale=this.view.scale;var tr=this.view.translate;var fmt=this.pageFormat;var ps=scale*this.pageScale;var bounds=new mxRectangle(scale*tr.x,scale*tr.y,fmt.width*ps,fmt.height*ps);visible=visible&&Math.min(bounds.width,bounds.height)>this.minPageBreakDist;bounds.x=mxUtils.mod(bounds.x,bounds.width);bounds.y=mxUtils.mod(bounds.y,bounds.height);var horizontalCount=(visible)?Math.ceil((width-bounds.x)/bounds.width):0;var verticalCount=(visible)?Math.ceil((height-bounds.y)/bounds.height):0;var right=width;var bottom=height;if(this.horizontalPageBreaks==null&&horizontalCount>0){this.horizontalPageBreaks=[];}if(this.horizontalPageBreaks!=null){for(var i=0;i<=horizontalCount;i++){var pts=[new mxPoint(bounds.x+i*bounds.width,1),new mxPoint(bounds.x+i*bounds.width,bottom)];if(this.horizontalPageBreaks[i]!=null){this.horizontalPageBreaks[i].scale=scale;this.horizontalPageBreaks[i].points=pts;this.horizontalPageBreaks[i].redraw();}else{var pageBreak=new mxPolyline(pts,this.pageBreakColor,this.scale);pageBreak.dialect=this.dialect;pageBreak.isDashed=this.pageBreakDashed;pageBreak.scale=scale;pageBreak.crisp=true;pageBreak.init(this.view.backgroundPane);pageBreak.redraw();this.horizontalPageBreaks[i]=pageBreak;}}for(var i=horizontalCount;i<this.horizontalPageBreaks.length;i++){this.horizontalPageBreaks[i].destroy();}this.horizontalPageBreaks.splice(horizontalCount,this.horizontalPageBreaks.length-horizontalCount);}if(this.verticalPageBreaks==null&&verticalCount>0){this.verticalPageBreaks=[];}if(this.verticalPageBreaks!=null){for(var i=0;i<=verticalCount;i++){var pts=[new mxPoint(1,bounds.y+i*bounds.height),new mxPoint(right,bounds.y+i*bounds.height)];if(this.verticalPageBreaks[i]!=null){this.verticalPageBreaks[i].scale=scale;this.verticalPageBreaks[i].points=pts;this.verticalPageBreaks[i].redraw();}else{var pageBreak=new mxPolyline(pts,this.pageBreakColor,scale);pageBreak.dialect=this.dialect;pageBreak.isDashed=this.pageBreakDashed;pageBreak.scale=scale;pageBreak.crisp=true;pageBreak.init(this.view.backgroundPane);pageBreak.redraw();this.verticalPageBreaks[i]=pageBreak;}}for(var i=verticalCount;i<this.verticalPageBreaks.length;i++){this.verticalPageBreaks[i].destroy();}this.verticalPageBreaks.splice(verticalCount,this.verticalPageBreaks.length-verticalCount);}};mxGraph.prototype.getCellStyle=function(cell){var stylename=this.model.getStyle(cell);var style=null;if(this.model.isEdge(cell)){style=this.stylesheet.getDefaultEdgeStyle();}else{style=this.stylesheet.getDefaultVertexStyle();}if(stylename!=null){style=this.postProcessCellStyle(this.stylesheet.getCellStyle(stylename,style));}if(style==null){style=mxGraph.prototype.EMPTY_ARRAY;}return style;};mxGraph.prototype.postProcessCellStyle=function(style){if(style!=null){var key=style[mxConstants.STYLE_IMAGE];var image=this.getImageFromBundles(key);if(image!=null){style[mxConstants.STYLE_IMAGE]=image;}else{image=key;}if(image!=null&&image.substring(0,11)=="data:image/"){var comma=image.indexOf(',');if(comma>0){image=image.substring(0,comma)+";base64,"+image.substring(comma+1);}style[mxConstants.STYLE_IMAGE]=image;}}return style;};mxGraph.prototype.setCellStyle=function(style,cells){cells=cells||this.getSelectionCells();if(cells!=null){this.model.beginUpdate();try{for(var i=0;i<cells.length;i++){this.model.setStyle(cells[i],style);}}finally{this.model.endUpdate();}}};mxGraph.prototype.toggleCellStyle=function(key,defaultValue,cell){cell=cell||this.getSelectionCell();this.toggleCellStyles(key,defaultValue,[cell]);};mxGraph.prototype.toggleCellStyles=function(key,defaultValue,cells){defaultValue=(defaultValue!=null)?defaultValue:false;cells=cells||this.getSelectionCells();if(cells!=null&&cells.length>0){var state=this.view.getState(cells[0]);var style=(state!=null)?state.style:this.getCellStyle(cells[0]);if(style!=null){var val=(mxUtils.getValue(style,key,defaultValue))?0:1;this.setCellStyles(key,val,cells);}}};mxGraph.prototype.setCellStyles=function(key,value,cells){cells=cells||this.getSelectionCells();mxUtils.setCellStyles(this.model,cells,key,value);};mxGraph.prototype.toggleCellStyleFlags=function(key,flag,cells){this.setCellStyleFlags(key,flag,null,cells);};mxGraph.prototype.setCellStyleFlags=function(key,flag,value,cells){cells=cells||this.getSelectionCells();if(cells!=null&&cells.length>0){if(value==null){var state=this.view.getState(cells[0]);var style=(state!=null)?state.style:this.getCellStyle(cells[0]);if(style!=null){var current=parseInt(style[key]||0);value=!((current&flag)==flag);}}mxUtils.setCellStyleFlags(this.model,cells,key,flag,value);}};mxGraph.prototype.alignCells=function(align,cells,param){if(cells==null){cells=this.getSelectionCells();}if(cells!=null&&cells.length>1){if(param==null){for(var i=0;i<cells.length;i++){var geo=this.getCellGeometry(cells[i]);if(geo!=null&&!this.model.isEdge(cells[i])){if(param==null){if(align==mxConstants.ALIGN_CENTER){param=geo.x+geo.width/2;break;}else if(align==mxConstants.ALIGN_RIGHT){param=geo.x+geo.width;}else if(align==mxConstants.ALIGN_TOP){param=geo.y;}else if(align==mxConstants.ALIGN_MIDDLE){param=geo.y+geo.height/2;break;}else if(align==mxConstants.ALIGN_BOTTOM){param=geo.y+geo.height;}else{param=geo.x;}}else{if(align==mxConstants.ALIGN_RIGHT){param=Math.max(param,geo.x+geo.width);}else if(align==mxConstants.ALIGN_TOP){param=Math.min(param,geo.y);}else if(align==mxConstants.ALIGN_BOTTOM){param=Math.max(param,geo.y+geo.height);}else{param=Math.min(param,geo.x);}}}}}if(param!=null){this.model.beginUpdate();try{for(var i=0;i<cells.length;i++){var geo=this.getCellGeometry(cells[i]);if(geo!=null&&!this.model.isEdge(cells[i])){geo=geo.clone();if(align==mxConstants.ALIGN_CENTER){geo.x=param-geo.width/2;}else if(align==mxConstants.ALIGN_RIGHT){geo.x=param-geo.width;}else if(align==mxConstants.ALIGN_TOP){geo.y=param;}else if(align==mxConstants.ALIGN_MIDDLE){geo.y=param-geo.height/2;}else if(align==mxConstants.ALIGN_BOTTOM){geo.y=param-geo.height;}else{geo.x=param;}this.model.setGeometry(cells[i],geo);}}this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,'align',align,'cells',cells));}finally{this.model.endUpdate();}}}return cells;};mxGraph.prototype.flipEdge=function(edge){if(edge!=null&&this.alternateEdgeStyle!=null){this.model.beginUpdate();try{var style=this.model.getStyle(edge);if(style==null||style.length==0){this.model.setStyle(edge,this.alternateEdgeStyle);}else{this.model.setStyle(edge,null);}this.resetEdge(edge);this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,'edge',edge));}finally{this.model.endUpdate();}}return edge;};mxGraph.prototype.addImageBundle=function(bundle){this.imageBundles.push(bundle);};mxGraph.prototype.removeImageBundle=function(bundle){var tmp=[];for(var i=0;i<this.imageBundles.length;i++){if(this.imageBundles[i]!=bundle){tmp.push(this.imageBundles[i]);}}this.imageBundles=tmp;};mxGraph.prototype.getImageFromBundles=function(key){if(key!=null){for(var i=0;i<this.imageBundles.length;i++){var image=this.imageBundles[i].getImage(key);if(image!=null){return image;}}}return null;};mxGraph.prototype.orderCells=function(back,cells){if(cells==null){cells=mxUtils.sortCells(this.getSelectionCells(),true);}this.model.beginUpdate();try{this.cellsOrdered(cells,back);this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,'back',back,'cells',cells));}finally{this.model.endUpdate();}return cells;};mxGraph.prototype.cellsOrdered=function(cells,back){if(cells!=null){this.model.beginUpdate();try{for(var i=0;i<cells.length;i++){var parent=this.model.getParent(cells[i]);if(back){this.model.add(parent,cells[i],i);}else{this.model.add(parent,cells[i],this.model.getChildCount(parent)-1);}}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,'back',back,'cells',cells));}finally{this.model.endUpdate();}}};mxGraph.prototype.groupCells=function(group,border,cells){if(cells==null){cells=mxUtils.sortCells(this.getSelectionCells(),true);}cells=this.getCellsForGroup(cells);if(group==null){group=this.createGroupCell(cells);}var bounds=this.getBoundsForGroup(group,cells,border);if(cells.length>0&&bounds!=null){var parent=this.model.getParent(group);if(parent==null){parent=this.model.getParent(cells[0]);}this.model.beginUpdate();try{if(this.getCellGeometry(group)==null){this.model.setGeometry(group,new mxGeometry());}var index=this.model.getChildCount(group);this.cellsAdded(cells,group,index,null,null,false);this.cellsMoved(cells,-bounds.x,-bounds.y,false,true);index=this.model.getChildCount(parent);this.cellsAdded([group],parent,index,null,null,false);this.cellsResized([group],[bounds]);this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,'group',group,'border',border,'cells',cells));}finally{this.model.endUpdate();}}return group;};mxGraph.prototype.getCellsForGroup=function(cells){var result=[];if(cells!=null&&cells.length>0){var parent=this.model.getParent(cells[0]);result.push(cells[0]);for(var i=1;i<cells.length;i++){if(this.model.getParent(cells[i])==parent){result.push(cells[i]);}}}return result;};mxGraph.prototype.getBoundsForGroup=function(group,children,border){var result=this.getBoundingBoxFromGeometry(children);if(result!=null){if(this.isSwimlane(group)){var size=this.getStartSize(group);result.x-=size.width;result.y-=size.height;result.width+=size.width;result.height+=size.height;}result.x-=border;result.y-=border;result.width+=2*border;result.height+=2*border;}return result;};mxGraph.prototype.createGroupCell=function(cells){var group=new mxCell('');group.setVertex(true);group.setConnectable(false);return group;};mxGraph.prototype.ungroupCells=function(cells){var result=[];if(cells==null){cells=this.getSelectionCells();var tmp=[];for(var i=0;i<cells.length;i++){if(this.model.getChildCount(cells[i])>0){tmp.push(cells[i]);}}cells=tmp;}if(cells!=null&&cells.length>0){this.model.beginUpdate();try{for(var i=0;i<cells.length;i++){var children=this.model.getChildren(cells[i]);if(children!=null&&children.length>0){children=children.slice();var parent=this.model.getParent(cells[i]);var index=this.model.getChildCount(parent);this.cellsAdded(children,parent,index,null,null,true);result=result.concat(children);}}this.cellsRemoved(this.addAllEdges(cells));this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,'cells',cells));}finally{this.model.endUpdate();}}return result;};mxGraph.prototype.removeCellsFromParent=function(cells){if(cells==null){cells=this.getSelectionCells();}this.model.beginUpdate();try{var parent=this.getDefaultParent();var index=this.model.getChildCount(parent);this.cellsAdded(cells,parent,index,null,null,true);this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,'cells',cells));}finally{this.model.endUpdate();}return cells;};mxGraph.prototype.updateGroupBounds=function(cells,border,moveGroup){if(cells==null){cells=this.getSelectionCells();}border=(border!=null)?border:0;moveGroup=(moveGroup!=null)?moveGroup:false;this.model.beginUpdate();try{for(var i=0;i<cells.length;i++){var geo=this.getCellGeometry(cells[i]);if(geo!=null){var children=this.getChildCells(cells[i]);if(children!=null&&children.length>0){var childBounds=this.getBoundingBoxFromGeometry(children);if(childBounds.width>0&&childBounds.height>0){var size=(this.isSwimlane(cells[i]))?this.getStartSize(cells[i]):new mxRectangle();geo=geo.clone();if(moveGroup){geo.x+=childBounds.x-size.width-border;geo.y+=childBounds.y-size.height-border;}geo.width=childBounds.width+size.width+2*border;geo.height=childBounds.height+size.height+2*border;this.model.setGeometry(cells[i],geo);this.moveCells(children,-childBounds.x+size.width+border,-childBounds.y+size.height+border);}}}}}finally{this.model.endUpdate();}return cells;};mxGraph.prototype.cloneCells=function(cells,allowInvalidEdges){allowInvalidEdges=(allowInvalidEdges!=null)?allowInvalidEdges:true;var clones=null;if(cells!=null){var hash=new Object();var tmp=[];for(var i=0;i<cells.length;i++){var id=mxCellPath.create(cells[i]);hash[id]=cells[i];tmp.push(cells[i]);}if(tmp.length>0){var scale=this.view.scale;var trans=this.view.translate;clones=this.model.cloneCells(cells,true);for(var i=0;i<cells.length;i++){if(!allowInvalidEdges&&this.model.isEdge(clones[i])&&this.getEdgeValidationError(clones[i],this.model.getTerminal(clones[i],true),this.model.getTerminal(clones[i],false))!=null){clones[i]=null;}else{var g=this.model.getGeometry(clones[i]);if(g!=null){var state=this.view.getState(cells[i]);var pstate=this.view.getState(this.model.getParent(cells[i]));if(state!=null&&pstate!=null){var dx=pstate.origin.x;var dy=pstate.origin.y;if(this.model.isEdge(clones[i])){var pts=state.absolutePoints;var src=this.model.getTerminal(cells[i],true);var srcId=mxCellPath.create(src);while(src!=null&&hash[srcId]==null){src=this.model.getParent(src);srcId=mxCellPath.create(src);}if(src==null){g.setTerminalPoint(new mxPoint(pts[0].x/scale-trans.x,pts[0].y/scale-trans.y),true);}var trg=this.model.getTerminal(cells[i],false);var trgId=mxCellPath.create(trg);while(trg!=null&&hash[trgId]==null){trg=this.model.getParent(trg);trgId=mxCellPath.create(trg);}if(trg==null){var n=pts.length-1;g.setTerminalPoint(new mxPoint(pts[n].x/scale-trans.x,pts[n].y/scale-trans.y),false);}var points=g.points;if(points!=null){for(var j=0;j<points.length;j++){points[j].x+=dx;points[j].y+=dy;}}}else{g.x+=dx;g.y+=dy;}}}}}}else{clones=[];}}return clones;};mxGraph.prototype.insertVertex=function(parent,id,value,x,y,width,height,style,relative){var vertex=this.createVertex(parent,id,value,x,y,width,height,style,relative);return this.addCell(vertex,parent);};mxGraph.prototype.createVertex=function(parent,id,value,x,y,width,height,style,relative){var geometry=new mxGeometry(x,y,width,height);geometry.relative=(relative!=null)?relative:false;var vertex=new mxCell(value,geometry,style);vertex.setId(id);vertex.setVertex(true);vertex.setConnectable(true);return vertex;};mxGraph.prototype.insertEdge=function(parent,id,value,source,target,style){var edge=this.createEdge(parent,id,value,source,target,style);return this.addEdge(edge,parent,source,target);};mxGraph.prototype.createEdge=function(parent,id,value,source,target,style){var edge=new mxCell(value,new mxGeometry(),style);edge.setId(id);edge.setEdge(true);edge.geometry.relative=true;return edge;};mxGraph.prototype.addEdge=function(edge,parent,source,target,index){return this.addCell(edge,parent,index,source,target);};mxGraph.prototype.addCell=function(cell,parent,index,source,target){return this.addCells([cell],parent,index,source,target)[0];};mxGraph.prototype.addCells=function(cells,parent,index,source,target){if(parent==null){parent=this.getDefaultParent();}if(index==null){index=this.model.getChildCount(parent);}this.model.beginUpdate();try{this.cellsAdded(cells,parent,index,source,target,false);this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,'cells',cells,'parent',parent,'index',index,'source',source,'target',target));}finally{this.model.endUpdate();}return cells;};mxGraph.prototype.cellsAdded=function(cells,parent,index,source,target,absolute){if(cells!=null&&parent!=null&&index!=null){this.model.beginUpdate();try{var parentState=(absolute)?this.view.getState(parent):null;var o1=(parentState!=null)?parentState.origin:null;var zero=new mxPoint(0,0);for(var i=0;i<cells.length;i++){if(cells[i]==null){index--;}else{var previous=this.model.getParent(cells[i]);if(o1!=null&&cells[i]!=parent&&parent!=previous){var oldState=this.view.getState(previous);var o2=(oldState!=null)?oldState.origin:zero;var geo=this.model.getGeometry(cells[i]);if(geo!=null){var dx=o2.x-o1.x;var dy=o2.y-o1.y;geo=geo.clone();geo.translate(dx,dy);if(!geo.relative&&this.model.isVertex(cells[i])&&!this.isAllowNegativeCoordinates()){geo.x=Math.max(0,geo.x);geo.y=Math.max(0,geo.y);}this.model.setGeometry(cells[i],geo);}}if(parent==previous){index--;}this.model.add(parent,cells[i],index+i);if(this.isExtendParentsOnAdd()&&this.isExtendParent(cells[i])){this.extendParent(cells[i]);}this.constrainChild(cells[i]);if(source!=null){this.cellConnected(cells[i],source,true);}if(target!=null){this.cellConnected(cells[i],target,false);}}}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,'cells',cells,'parent',parent,'index',index,'source',source,'target',target,'absolute',absolute));}finally{this.model.endUpdate();}}};mxGraph.prototype.removeCells=function(cells,includeEdges){includeEdges=(includeEdges!=null)?includeEdges:true;if(cells==null){cells=this.getDeletableCells(this.getSelectionCells());}if(includeEdges){cells=this.getDeletableCells(this.addAllEdges(cells));}this.model.beginUpdate();try{this.cellsRemoved(cells);this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,'cells',cells,'includeEdges',includeEdges));}finally{this.model.endUpdate();}return cells;};mxGraph.prototype.cellsRemoved=function(cells){if(cells!=null&&cells.length>0){var scale=this.view.scale;var tr=this.view.translate;this.model.beginUpdate();try{var hash=new Object();for(var i=0;i<cells.length;i++){var id=mxCellPath.create(cells[i]);hash[id]=cells[i];}for(var i=0;i<cells.length;i++){var edges=this.getConnections(cells[i]);for(var j=0;j<edges.length;j++){var id=mxCellPath.create(edges[j]);if(hash[id]==null){var geo=this.model.getGeometry(edges[j]);if(geo!=null){var state=this.view.getState(edges[j]);if(state!=null){geo=geo.clone();var source=state.getVisibleTerminal(true)==cells[i];var pts=state.absolutePoints;var n=(source)?0:pts.length-1;geo.setTerminalPoint(new mxPoint(pts[n].x/scale-tr.x,pts[n].y/scale-tr.y),source);this.model.setTerminal(edges[j],null,source);this.model.setGeometry(edges[j],geo);}}}}this.model.remove(cells[i]);}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,'cells',cells));}finally{this.model.endUpdate();}}};mxGraph.prototype.splitEdge=function(edge,cells,newEdge,dx,dy){dx=dx||0;dy=dy||0;if(newEdge==null){newEdge=this.cloneCells([edge])[0];}var parent=this.model.getParent(edge);var source=this.model.getTerminal(edge,true);this.model.beginUpdate();try{this.cellsMoved(cells,dx,dy,false,false);this.cellsAdded(cells,parent,this.model.getChildCount(parent),null,null,true);this.cellsAdded([newEdge],parent,this.model.getChildCount(parent),source,cells[0],false);this.cellConnected(edge,cells[0],true);this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,'edge',edge,'cells',cells,'newEdge',newEdge,'dx',dx,'dy',dy));}finally{this.model.endUpdate();}return newEdge;};mxGraph.prototype.toggleCells=function(show,cells,includeEdges){if(cells==null){cells=this.getSelectionCells();}if(includeEdges){cells=this.addAllEdges(cells);}this.model.beginUpdate();try{this.cellsToggled(cells,show);this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,'show',show,'cells',cells,'includeEdges',includeEdges));}finally{this.model.endUpdate();}return cells;};mxGraph.prototype.cellsToggled=function(cells,show){if(cells!=null&&cells.length>0){this.model.beginUpdate();try{for(var i=0;i<cells.length;i++){this.model.setVisible(cells[i],show);}}finally{this.model.endUpdate();}}};mxGraph.prototype.foldCells=function(collapse,recurse,cells,checkFoldable){recurse=(recurse!=null)?recurse:false;if(cells==null){cells=this.getFoldableCells(this.getSelectionCells(),collapse);}this.stopEditing(false);this.model.beginUpdate();try{this.cellsFolded(cells,collapse,recurse,checkFoldable);this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,'collapse',collapse,'recurse',recurse,'cells',cells));}finally{this.model.endUpdate();}return cells;};mxGraph.prototype.cellsFolded=function(cells,collapse,recurse,checkFoldable){if(cells!=null&&cells.length>0){this.model.beginUpdate();try{for(var i=0;i<cells.length;i++){if((!checkFoldable||this.isCellFoldable(cells[i],collapse))&&collapse!=this.isCellCollapsed(cells[i])){this.model.setCollapsed(cells[i],collapse);this.swapBounds(cells[i],collapse);if(this.isExtendParent(cells[i])){this.extendParent(cells[i]);}if(recurse){var children=this.model.getChildren(cells[i]);this.foldCells(children,collapse,recurse);}}}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,'cells',cells,'collapse',collapse,'recurse',recurse));}finally{this.model.endUpdate();}}};mxGraph.prototype.swapBounds=function(cell,willCollapse){if(cell!=null){var geo=this.model.getGeometry(cell);if(geo!=null){geo=geo.clone();this.updateAlternateBounds(cell,geo,willCollapse);geo.swap();this.model.setGeometry(cell,geo);}}};mxGraph.prototype.updateAlternateBounds=function(cell,geo,willCollapse){if(cell!=null&&geo!=null){if(geo.alternateBounds==null){var bounds=geo;if(this.collapseToPreferredSize){var tmp=this.getPreferredSizeForCell(cell);if(tmp!=null){bounds=tmp;var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);var startSize=mxUtils.getValue(style,mxConstants.STYLE_STARTSIZE);if(startSize>0){bounds.height=Math.max(bounds.height,startSize);}}}geo.alternateBounds=new mxRectangle(geo.x,geo.y,bounds.width,bounds.height);}else{geo.alternateBounds.x=geo.x;geo.alternateBounds.y=geo.y;}}};mxGraph.prototype.addAllEdges=function(cells){var allCells=cells.slice();allCells=allCells.concat(this.getAllEdges(cells));return allCells;};mxGraph.prototype.getAllEdges=function(cells){var edges=[];if(cells!=null){for(var i=0;i<cells.length;i++){var edgeCount=this.model.getEdgeCount(cells[i]);for(var j=0;j<edgeCount;j++){edges.push(this.model.getEdgeAt(cells[i],j));}var children=this.model.getChildren(cells[i]);edges=edges.concat(this.getAllEdges(children));}}return edges;};mxGraph.prototype.updateCellSize=function(cell,ignoreChildren){ignoreChildren=(ignoreChildren!=null)?ignoreChildren:false;this.model.beginUpdate();try{this.cellSizeUpdated(cell,ignoreChildren);this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,'cell',cell,'ignoreChildren',ignoreChildren));}finally{this.model.endUpdate();}return cell;};mxGraph.prototype.cellSizeUpdated=function(cell,ignoreChildren){if(cell!=null){this.model.beginUpdate();try{var size=this.getPreferredSizeForCell(cell);var geo=this.model.getGeometry(cell);if(size!=null&&geo!=null){var collapsed=this.isCellCollapsed(cell);geo=geo.clone();if(this.isSwimlane(cell)){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);var cellStyle=this.model.getStyle(cell);if(cellStyle==null){cellStyle='';}if(mxUtils.getValue(style,mxConstants.STYLE_HORIZONTAL,true)){cellStyle=mxUtils.setStyle(cellStyle,mxConstants.STYLE_STARTSIZE,size.height+8);if(collapsed){geo.height=size.height+8;}geo.width=size.width;}else{cellStyle=mxUtils.setStyle(cellStyle,mxConstants.STYLE_STARTSIZE,size.width+8);if(collapsed){geo.width=size.width+8;}geo.height=size.height;}this.model.setStyle(cell,cellStyle);}else{geo.width=size.width;geo.height=size.height;}if(!ignoreChildren&&!collapsed){var bounds=this.view.getBounds(this.model.getChildren(cell));if(bounds!=null){var tr=this.view.translate;var scale=this.view.scale;var width=(bounds.x+bounds.width)/scale-geo.x-tr.x;var height=(bounds.y+bounds.height)/scale-geo.y-tr.y;geo.width=Math.max(geo.width,width);geo.height=Math.max(geo.height,height);}}this.cellsResized([cell],[geo]);}}finally{this.model.endUpdate();}}};mxGraph.prototype.getPreferredSizeForCell=function(cell){var result=null;if(cell!=null){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);if(style!=null&&!this.model.isEdge(cell)){var fontSize=style[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE;var dx=0;var dy=0;if(this.getImage(state)!=null||style[mxConstants.STYLE_IMAGE]!=null){if(style[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_LABEL){if(style[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE){dx+=parseFloat(style[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize;}if(style[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER){dy+=parseFloat(style[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize;}}}dx+=2*(style[mxConstants.STYLE_SPACING]||0);dx+=style[mxConstants.STYLE_SPACING_LEFT]||0;dx+=style[mxConstants.STYLE_SPACING_RIGHT]||0;dy+=2*(style[mxConstants.STYLE_SPACING]||0);dy+=style[mxConstants.STYLE_SPACING_TOP]||0;dy+=style[mxConstants.STYLE_SPACING_BOTTOM]||0;var image=this.getFoldingImage(state);if(image!=null){dx+=image.width+8;}var value=this.getLabel(cell);if(value!=null&&value.length>0){if(!this.isHtmlLabel(cell)){value=value.replace(/\n/g,'<br>');}var size=mxUtils.getSizeForString(value,fontSize,style[mxConstants.STYLE_FONTFAMILY]);var width=size.width+dx;var height=size.height+dy;if(!mxUtils.getValue(style,mxConstants.STYLE_HORIZONTAL,true)){var tmp=height;height=width;width=tmp;}if(this.gridEnabled){width=this.snap(width+this.gridSize/2);height=this.snap(height+this.gridSize/2);}result=new mxRectangle(0,0,width,height);}else{var gs2=4*this.gridSize;result=new mxRectangle(0,0,gs2,gs2);}}}return result;};mxGraph.prototype.handleGesture=function(state,evt){if(Math.abs(1-evt.scale)>0.2){var scale=this.view.scale;var tr=this.view.translate;var w=state.width*evt.scale;var h=state.height*evt.scale;var x=state.x-(w-state.width)/2;var y=state.y-(h-state.height)/2;var bounds=new mxRectangle(this.snap(x/scale)-tr.x,this.snap(y/scale)-tr.y,this.snap(w/scale),this.snap(h/scale));this.resizeCell(state.cell,bounds);}};mxGraph.prototype.resizeCell=function(cell,bounds){return this.resizeCells([cell],[bounds])[0];};mxGraph.prototype.resizeCells=function(cells,bounds){this.model.beginUpdate();try{this.cellsResized(cells,bounds);this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,'cells',cells,'bounds',bounds));}finally{this.model.endUpdate();}return cells;};mxGraph.prototype.cellsResized=function(cells,bounds){if(cells!=null&&bounds!=null&&cells.length==bounds.length){this.model.beginUpdate();try{for(var i=0;i<cells.length;i++){var tmp=bounds[i];var geo=this.model.getGeometry(cells[i]);if(geo!=null&&(geo.x!=tmp.x||geo.y!=tmp.y||geo.width!=tmp.width||geo.height!=tmp.height)){geo=geo.clone();if(geo.relative){var offset=geo.offset;if(offset!=null){offset.x+=tmp.x-geo.x;offset.y+=tmp.y-geo.y;}}else{geo.x=tmp.x;geo.y=tmp.y;}geo.width=tmp.width;geo.height=tmp.height;if(!geo.relative&&this.model.isVertex(cells[i])&&!this.isAllowNegativeCoordinates()){geo.x=Math.max(0,geo.x);geo.y=Math.max(0,geo.y);}this.model.setGeometry(cells[i],geo);if(this.isExtendParent(cells[i])){this.extendParent(cells[i]);}}}if(this.resetEdgesOnResize){this.resetEdges(cells);}this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,'cells',cells,'bounds',bounds));}finally{this.model.endUpdate();}}};mxGraph.prototype.extendParent=function(cell){if(cell!=null){var parent=this.model.getParent(cell);var p=this.model.getGeometry(parent);if(parent!=null&&p!=null&&!this.isCellCollapsed(parent)){var geo=this.model.getGeometry(cell);if(geo!=null&&(p.width<geo.x+geo.width||p.height<geo.y+geo.height)){p=p.clone();p.width=Math.max(p.width,geo.x+geo.width);p.height=Math.max(p.height,geo.y+geo.height);this.cellsResized([parent],[p]);}}}};mxGraph.prototype.importCells=function(cells,dx,dy,target,evt){return this.moveCells(cells,dx,dy,true,target,evt);};mxGraph.prototype.moveCells=function(cells,dx,dy,clone,target,evt){dx=(dx!=null)?dx:0;dy=(dy!=null)?dy:0;clone=(clone!=null)?clone:false;if(cells!=null&&(dx!=0||dy!=0||clone||target!=null)){this.model.beginUpdate();try{if(clone){cells=this.cloneCells(cells,this.isCloneInvalidEdges());if(target==null){target=this.getDefaultParent();}}var previous=this.isAllowNegativeCoordinates();if(target!=null){this.setAllowNegativeCoordinates(true);}this.cellsMoved(cells,dx,dy,!clone&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),target==null);this.setAllowNegativeCoordinates(previous);if(target!=null){var index=this.model.getChildCount(target);this.cellsAdded(cells,target,index,null,null,true);}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,'cells',cells,'dx',dx,'dy',dy,'clone',clone,'target',target,'event',evt));}finally{this.model.endUpdate();}}return cells;};mxGraph.prototype.cellsMoved=function(cells,dx,dy,disconnect,constrain){if(cells!=null&&(dx!=0||dy!=0)){this.model.beginUpdate();try{if(disconnect){this.disconnectGraph(cells);}for(var i=0;i<cells.length;i++){this.translateCell(cells[i],dx,dy);if(constrain){this.constrainChild(cells[i]);}}if(this.resetEdgesOnMove){this.resetEdges(cells);}this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,'cells',cells,'dx',dy,'dy',dy,'disconnect',disconnect));}finally{this.model.endUpdate();}}};mxGraph.prototype.translateCell=function(cell,dx,dy){var geo=this.model.getGeometry(cell);if(geo!=null){geo=geo.clone();geo.translate(dx,dy);if(!geo.relative&&this.model.isVertex(cell)&&!this.isAllowNegativeCoordinates()){geo.x=Math.max(0,geo.x);geo.y=Math.max(0,geo.y);}if(geo.relative&&!this.model.isEdge(cell)){if(geo.offset==null){geo.offset=new mxPoint(dx,dy);}else{geo.offset.x+=dx;geo.offset.y+=dy;}}this.model.setGeometry(cell,geo);}};mxGraph.prototype.getCellContainmentArea=function(cell){if(cell!=null&&!this.model.isEdge(cell)){var parent=this.model.getParent(cell);if(parent==this.getDefaultParent()||parent==this.getCurrentRoot()){return this.getMaximumGraphBounds();}else if(parent!=null&&parent!=this.getDefaultParent()){var g=this.model.getGeometry(parent);if(g!=null){var x=0;var y=0;var w=g.width;var h=g.height;if(this.isSwimlane(parent)){var size=this.getStartSize(parent);x=size.width;w-=size.width;y=size.height;h-=size.height;}return new mxRectangle(x,y,w,h);}}}return null;};mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds;};mxGraph.prototype.constrainChild=function(cell){if(cell!=null){var geo=this.model.getGeometry(cell);var area=(this.isConstrainChild(cell))?this.getCellContainmentArea(cell):this.getMaximumGraphBounds();if(geo!=null&&area!=null){if(!geo.relative&&(geo.x<area.x||geo.y<area.y||area.width<geo.x+geo.width||area.height<geo.y+geo.height)){var overlap=this.getOverlap(cell);if(area.width>0){geo.x=Math.min(geo.x,area.x+area.width-(1-overlap)*geo.width);}if(area.height>0){geo.y=Math.min(geo.y,area.y+area.height-(1-overlap)*geo.height);}geo.x=Math.max(geo.x,area.x-geo.width*overlap);geo.y=Math.max(geo.y,area.y-geo.height*overlap);}}}};mxGraph.prototype.resetEdges=function(cells){if(cells!=null){var hash=new Object();for(var i=0;i<cells.length;i++){var id=mxCellPath.create(cells[i]);hash[id]=cells[i];}this.model.beginUpdate();try{for(var i=0;i<cells.length;i++){var edges=this.model.getEdges(cells[i]);if(edges!=null){for(var j=0;j<edges.length;j++){var state=this.view.getState(edges[j]);var source=(state!=null)?state.getVisibleTerminal(true):this.view.getVisibleTerminal(edges[j],true);var target=(state!=null)?state.getVisibleTerminal(false):this.view.getVisibleTerminal(edges[j],false);var sourceId=mxCellPath.create(source);var targetId=mxCellPath.create(target);if(hash[sourceId]==null||hash[targetId]==null){this.resetEdge(edges[j]);}}}this.resetEdges(this.model.getChildren(cells[i]));}}finally{this.model.endUpdate();}}};mxGraph.prototype.resetEdge=function(edge){var geo=this.model.getGeometry(edge);if(geo!=null&&geo.points!=null&&geo.points.length>0){geo=geo.clone();geo.points=[];this.model.setGeometry(edge,geo);}return edge;};mxGraph.prototype.getAllConnectionConstraints=function(terminal,source){if(terminal!=null&&terminal.shape!=null&&terminal.shape instanceof mxStencilShape){if(terminal.shape.stencil!=null){return terminal.shape.stencil.constraints;}}return null;};mxGraph.prototype.getConnectionConstraint=function(edge,terminal,source){var point=null;var x=edge.style[(source)?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(x!=null){var y=edge.style[(source)?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];if(y!=null){point=new mxPoint(parseFloat(x),parseFloat(y));}}var perimeter=false;if(point!=null){perimeter=mxUtils.getValue(edge.style,(source)?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,true);}return new mxConnectionConstraint(point,perimeter);};mxGraph.prototype.setConnectionConstraint=function(edge,terminal,source,constraint){if(constraint!=null){this.model.beginUpdate();try{if(constraint==null||constraint.point==null){this.setCellStyles((source)?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[edge]);this.setCellStyles((source)?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[edge]);this.setCellStyles((source)?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[edge]);}else if(constraint.point!=null){this.setCellStyles((source)?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,constraint.point.x,[edge]);this.setCellStyles((source)?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,constraint.point.y,[edge]);if(!constraint.perimeter){this.setCellStyles((source)?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,'0',[edge]);}else{this.setCellStyles((source)?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[edge]);}}}finally{this.model.endUpdate();}}};mxGraph.prototype.getConnectionPoint=function(vertex,constraint){var point=null;if(vertex!=null){var bounds=this.view.getPerimeterBounds(vertex);var cx=new mxPoint(bounds.getCenterX(),bounds.getCenterY());var direction=vertex.style[mxConstants.STYLE_DIRECTION];var r1=0;if(direction!=null){if(direction=='north'){r1+=270;}else if(direction=='west'){r1+=180;}else if(direction=='south'){r1+=90;}if(direction=='north'||direction=='south'){bounds.x+=bounds.width/2-bounds.height/2;bounds.y+=bounds.height/2-bounds.width/2;var tmp=bounds.width;bounds.width=bounds.height;bounds.height=tmp;}}if(constraint.point!=null){point=new mxPoint(bounds.x+constraint.point.x*bounds.width,bounds.y+constraint.point.y*bounds.height);}var r2=vertex.style[mxConstants.STYLE_ROTATION]||0;if(constraint.perimeter){if(r1!=0&&point!=null){var cos=0;var sin=0;if(r1==90){sin=1;}else if(r1==180){cos=-1;}else if(r2==270){sin=-1;}point=mxUtils.getRotatedPoint(point,cos,sin,cx);}if(point!=null&&constraint.perimeter){point=this.view.getPerimeterPoint(vertex,point,false);}}else{r2+=r1;}if(r2!=0&&point!=null){var rad=mxUtils.toRadians(r2);var cos=Math.cos(rad);var sin=Math.sin(rad);point=mxUtils.getRotatedPoint(point,cos,sin,cx);}}return point;};mxGraph.prototype.connectCell=function(edge,terminal,source,constraint){this.model.beginUpdate();try{var previous=this.model.getTerminal(edge,source);this.cellConnected(edge,terminal,source,constraint);this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,'edge',edge,'terminal',terminal,'source',source,'previous',previous));}finally{this.model.endUpdate();}return edge;};mxGraph.prototype.cellConnected=function(edge,terminal,source,constraint){if(edge!=null){this.model.beginUpdate();try{var previous=this.model.getTerminal(edge,source);this.setConnectionConstraint(edge,terminal,source,constraint);if(this.isPortsEnabled()){var id=null;if(this.isPort(terminal)){id=terminal.getId();terminal=this.getTerminalForPort(terminal,source);}var key=(source)?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT;this.setCellStyles(key,id,[edge]);}this.model.setTerminal(edge,terminal,source);if(this.resetEdgesOnConnect){this.resetEdge(edge);}this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,'edge',edge,'terminal',terminal,'source',source,'previous',previous));}finally{this.model.endUpdate();}}};mxGraph.prototype.disconnectGraph=function(cells){if(cells!=null){this.model.beginUpdate();try{var scale=this.view.scale;var tr=this.view.translate;var hash=new Object();for(var i=0;i<cells.length;i++){var id=mxCellPath.create(cells[i]);hash[id]=cells[i];}for(var i=0;i<cells.length;i++){if(this.model.isEdge(cells[i])){var geo=this.model.getGeometry(cells[i]);if(geo!=null){var state=this.view.getState(cells[i]);var pstate=this.view.getState(this.model.getParent(cells[i]));if(state!=null&&pstate!=null){geo=geo.clone();var dx=-pstate.origin.x;var dy=-pstate.origin.y;var pts=state.absolutePoints;var src=this.model.getTerminal(cells[i],true);if(src!=null&&this.isCellDisconnectable(cells[i],src,true)){var srcId=mxCellPath.create(src);while(src!=null&&hash[srcId]==null){src=this.model.getParent(src);srcId=mxCellPath.create(src);}if(src==null){geo.setTerminalPoint(new mxPoint(pts[0].x/scale-tr.x+dx,pts[0].y/scale-tr.y+dy),true);this.model.setTerminal(cells[i],null,true);}}var trg=this.model.getTerminal(cells[i],false);if(trg!=null&&this.isCellDisconnectable(cells[i],trg,false)){var trgId=mxCellPath.create(trg);while(trg!=null&&hash[trgId]==null){trg=this.model.getParent(trg);trgId=mxCellPath.create(trg);}if(trg==null){var n=pts.length-1;geo.setTerminalPoint(new mxPoint(pts[n].x/scale-tr.x+dx,pts[n].y/scale-tr.y+dy),false);this.model.setTerminal(cells[i],null,false);}}this.model.setGeometry(cells[i],geo);}}}}}finally{this.model.endUpdate();}}};mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot;};mxGraph.prototype.getTranslateForRoot=function(cell){return null;};mxGraph.prototype.isPort=function(cell){return false;};mxGraph.prototype.getTerminalForPort=function(cell,source){return this.model.getParent(cell);};mxGraph.prototype.getChildOffsetForCell=function(cell){return null;};mxGraph.prototype.enterGroup=function(cell){cell=cell||this.getSelectionCell();if(cell!=null&&this.isValidRoot(cell)){this.view.setCurrentRoot(cell);this.clearSelection();}};mxGraph.prototype.exitGroup=function(){var root=this.model.getRoot();var current=this.getCurrentRoot();if(current!=null){var next=this.model.getParent(current);while(next!=root&&!this.isValidRoot(next)&&this.model.getParent(next)!=root){next=this.model.getParent(next);}if(next==root||this.model.getParent(next)==root){this.view.setCurrentRoot(null);}else{this.view.setCurrentRoot(next);}var state=this.view.getState(current);if(state!=null){this.setSelectionCell(current);}}};mxGraph.prototype.home=function(){var current=this.getCurrentRoot();if(current!=null){this.view.setCurrentRoot(null);var state=this.view.getState(current);if(state!=null){this.setSelectionCell(current);}}};mxGraph.prototype.isValidRoot=function(cell){return(cell!=null);};mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds();};mxGraph.prototype.getCellBounds=function(cell,includeEdges,includeDescendants){var cells=[cell];if(includeEdges){cells=cells.concat(this.model.getEdges(cell));}var result=this.view.getBounds(cells);if(includeDescendants){var childCount=this.model.getChildCount(cell);for(var i=0;i<childCount;i++){var tmp=this.getCellBounds(this.model.getChildAt(cell,i),includeEdges,true);if(result!=null){result.add(tmp);}else{result=tmp;}}}return result;};mxGraph.prototype.getBoundingBoxFromGeometry=function(cells,includeEdges){includeEdges=(includeEdges!=null)?includeEdges:false;var result=null;if(cells!=null){for(var i=0;i<cells.length;i++){if(includeEdges||this.model.isVertex(cells[i])){var geo=this.getCellGeometry(cells[i]);if(geo!=null){var pts=geo.points;if(pts!=null&&pts.length>0){var tmp=new mxRectangle(pts[0].x,pts[0].y,0,0);var addPoint=function(pt){if(pt!=null){tmp.add(new mxRectangle(pt.x,pt.y,0,0));}};for(var j=1;j<pts.length;j++){addPoint(pts[j]);}addPoint(geo.getTerminalPoint(true));addPoint(geo.getTerminalPoint(false));}if(result==null){result=new mxRectangle(geo.x,geo.y,geo.width,geo.height);}else{result.add(geo);}}}}}return result;};mxGraph.prototype.refresh=function(cell){this.view.clear(cell,cell==null);this.view.validate();this.sizeDidChange();this.fireEvent(new mxEventObject(mxEvent.REFRESH));};mxGraph.prototype.snap=function(value){if(this.gridEnabled){value=Math.round(value/this.gridSize)*this.gridSize;}return value;};mxGraph.prototype.panGraph=function(dx,dy){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)){this.container.scrollLeft=-dx;this.container.scrollTop=-dy;}else{var canvas=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG){if(dx==0&&dy==0){if(mxClient.IS_IE){canvas.setAttribute('transform','translate('+dx+','+dy+')');}else{canvas.removeAttribute('transform');}if(this.shiftPreview!=null){var child=this.shiftPreview.firstChild;while(child!=null){var next=child.nextSibling;this.container.appendChild(child);child=next;}this.shiftPreview.parentNode.removeChild(this.shiftPreview);this.shiftPreview=null;}}else{canvas.setAttribute('transform','translate('+dx+','+dy+')');if(this.shiftPreview==null){this.shiftPreview=document.createElement('div');this.shiftPreview.style.position='absolute';this.shiftPreview.style.overflow='visible';var child=this.container.firstChild;while(child!=null){var next=child.nextSibling;if(child!=canvas.parentNode){this.shiftPreview.appendChild(child);}child=next;}this.container.appendChild(this.shiftPreview);}this.shiftPreview.style.left=dx+'px';this.shiftPreview.style.top=dy+'px';}}else{canvas.style.left=dx+'px';canvas.style.top=dy+'px';}this.panDx=dx;this.panDy=dy;this.fireEvent(new mxEventObject(mxEvent.PAN));}};mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor);};mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor);};mxGraph.prototype.zoomActual=function(){if(this.view.scale==1){this.view.setTranslate(0,0);}else{this.view.translate.x=0;this.view.translate.y=0;this.view.setScale(1);}};mxGraph.prototype.zoom=function(factor){var scale=this.view.scale*factor;var state=this.view.getState(this.getSelectionCell());if(this.keepSelectionVisibleOnZoom&&state!=null){var rect=new mxRectangle(state.x*factor,state.y*factor,state.width*factor,state.height*factor);this.view.scale=scale;if(!this.scrollRectToVisible(rect)){this.view.revalidate();this.view.setScale(scale);}}else if(this.centerZoom&&!mxUtils.hasScrollbars(this.container)){var dx=this.container.offsetWidth;var dy=this.container.offsetHeight;if(factor>1){var f=(factor-1)/(scale*2);dx*=-f;dy*=-f;}else{var f=(1/factor-1)/(this.view.scale*2);dx*=f;dy*=f;}this.view.scaleAndTranslate(scale,this.view.translate.x+dx,this.view.translate.y+dy);}else{this.view.setScale(scale);}};mxGraph.prototype.fit=function(border,keepOrigin){if(this.container!=null){border=(border!=null)?border:0;keepOrigin=(keepOrigin!=null)?keepOrigin:false;var w1=this.container.offsetWidth-3;var h1=this.container.offsetHeight-3;var bounds=this.view.getGraphBounds();if(keepOrigin&&bounds.x!=null&&bounds.y!=null){bounds.width+=bounds.x;bounds.height+=bounds.y;bounds.x=0;bounds.y=0;}var s=this.view.scale;var w2=bounds.width/s;var h2=bounds.height/s;if(this.backgroundImage!=null){w2=Math.max(w2,this.backgroundImage.width-bounds.x/s);h2=Math.max(h2,this.backgroundImage.height-bounds.y/s);}var b=(keepOrigin)?border:2*border;var s2=Math.floor(Math.min(w1/(w2+b),h1/(h2+b))*100)/100;if(s2>this.minFitScale&&s2<this.maxFitScale){if(!keepOrigin){var x0=(bounds.x!=null)?Math.floor(this.view.translate.x-bounds.x/s+border+1):border;var y0=(bounds.y!=null)?Math.floor(this.view.translate.y-bounds.y/s+border+1):border;this.view.scaleAndTranslate(s2,x0,y0);}else{this.view.setScale(s2);}}}return this.view.scale;};mxGraph.prototype.scrollCellToVisible=function(cell,center){var x=-this.view.translate.x;var y=-this.view.translate.y;var state=this.view.getState(cell);if(state!=null){var bounds=new mxRectangle(x+state.x,y+state.y,state.width,state.height);if(center&&this.container!=null){var w=this.container.clientWidth;var h=this.container.clientHeight;bounds.x=bounds.getCenterX()-w/2;bounds.width=w;bounds.y=bounds.getCenterY()-h/2;bounds.height=h;}if(this.scrollRectToVisible(bounds)){this.view.setTranslate(this.view.translate.x,this.view.translate.y);}}};mxGraph.prototype.scrollRectToVisible=function(rect){var isChanged=false;if(rect!=null){var w=this.container.offsetWidth;var h=this.container.offsetHeight;var widthLimit=Math.min(w,rect.width);var heightLimit=Math.min(h,rect.height);if(mxUtils.hasScrollbars(this.container)){var c=this.container;var dx=c.scrollLeft-rect.x;var ddx=Math.max(dx-c.scrollLeft,0);if(dx>0){c.scrollLeft-=dx+2;}else{dx=rect.x+widthLimit-c.scrollLeft-c.clientWidth;if(dx>0){c.scrollLeft+=dx+2;}}var dy=c.scrollTop-rect.y;var ddy=Math.max(0,dy-c.scrollTop);if(dy>0){c.scrollTop-=dy+2;}else{dy=rect.y+heightLimit-c.scrollTop-c.clientHeight;if(dy>0){c.scrollTop+=dy+2;}}if(!this.useScrollbarsForPanning&&(ddx!=0||ddy!=0)){this.view.setTranslate(ddx,ddy);}}else{var x=-this.view.translate.x;var y=-this.view.translate.y;var s=this.view.scale;if(rect.x+widthLimit>x+w){this.view.translate.x-=(rect.x+widthLimit-w-x)/s;isChanged=true;}if(rect.y+heightLimit>y+h){this.view.translate.y-=(rect.y+heightLimit-h-y)/s;isChanged=true;}if(rect.x<x){this.view.translate.x+=(x-rect.x)/s;isChanged=true;}if(rect.y<y){this.view.translate.y+=(y-rect.y)/s;isChanged=true;}if(isChanged){this.view.refresh();if(this.selectionCellsHandler!=null){this.selectionCellsHandler.refresh();}}}}return isChanged;};mxGraph.prototype.getCellGeometry=function(cell){return this.model.getGeometry(cell);};mxGraph.prototype.isCellVisible=function(cell){return this.model.isVisible(cell);};mxGraph.prototype.isCellCollapsed=function(cell){return this.model.isCollapsed(cell);};mxGraph.prototype.isCellConnectable=function(cell){return this.model.isConnectable(cell);};mxGraph.prototype.isOrthogonal=function(edge){var orthogonal=edge.style[mxConstants.STYLE_ORTHOGONAL];if(orthogonal!=null){return orthogonal;}var tmp=this.view.getEdgeStyle(edge);return tmp==mxEdgeStyle.SegmentConnector||tmp==mxEdgeStyle.ElbowConnector||tmp==mxEdgeStyle.SideToSide||tmp==mxEdgeStyle.TopToBottom||tmp==mxEdgeStyle.EntityRelation||tmp==mxEdgeStyle.OrthConnector;};mxGraph.prototype.isLoop=function(state){var src=state.getVisibleTerminalState(true);var trg=state.getVisibleTerminalState(false);return(src!=null&&src==trg);};mxGraph.prototype.isCloneEvent=function(evt){return mxEvent.isControlDown(evt);};mxGraph.prototype.isToggleEvent=function(evt){return mxEvent.isControlDown(evt);};mxGraph.prototype.isGridEnabledEvent=function(evt){return evt!=null&&!mxEvent.isAltDown(evt);};mxGraph.prototype.isConstrainedEvent=function(evt){return mxEvent.isShiftDown(evt);};mxGraph.prototype.isForceMarqueeEvent=function(evt){return mxEvent.isAltDown(evt)||mxEvent.isMetaDown(evt);};mxGraph.prototype.validationAlert=function(message){mxUtils.alert(message);};mxGraph.prototype.isEdgeValid=function(edge,source,target){return this.getEdgeValidationError(edge,source,target)==null;};mxGraph.prototype.getEdgeValidationError=function(edge,source,target){if(edge!=null&&!this.isAllowDanglingEdges()&&(source==null||target==null)){return '';}if(edge!=null&&this.model.getTerminal(edge,true)==null&&this.model.getTerminal(edge,false)==null){return null;}if(!this.allowLoops&&source==target&&source!=null){return '';}if(!this.isValidConnection(source,target)){return '';}if(source!=null&&target!=null){var error='';if(!this.multigraph){var tmp=this.model.getEdgesBetween(source,target,true);if(tmp.length>1||(tmp.length==1&&tmp[0]!=edge)){error+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+'\n';}}var sourceOut=this.model.getDirectedEdgeCount(source,true,edge);var targetIn=this.model.getDirectedEdgeCount(target,false,edge);if(this.multiplicities!=null){for(var i=0;i<this.multiplicities.length;i++){var err=this.multiplicities[i].check(this,edge,source,target,sourceOut,targetIn);if(err!=null){error+=err;}}}var err=this.validateEdge(edge,source,target);if(err!=null){error+=err;}return(error.length>0)?error:null;}return(this.allowDanglingEdges)?null:'';};mxGraph.prototype.validateEdge=function(edge,source,target){return null;};mxGraph.prototype.validateGraph=function(cell,context){cell=(cell!=null)?cell:this.model.getRoot();context=(context!=null)?context:new Object();var isValid=true;var childCount=this.model.getChildCount(cell);for(var i=0;i<childCount;i++){var tmp=this.model.getChildAt(cell,i);var ctx=context;if(this.isValidRoot(tmp)){ctx=new Object();}var warn=this.validateGraph(tmp,ctx);if(warn!=null){this.setCellWarning(tmp,warn.replace(/\n/g,'<br>'));}else{this.setCellWarning(tmp,null);}isValid=isValid&&warn==null;}var warning='';if(this.isCellCollapsed(cell)&&!isValid){warning+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+'\n';}if(this.model.isEdge(cell)){warning+=this.getEdgeValidationError(cell,this.model.getTerminal(cell,true),this.model.getTerminal(cell,false))||'';}else{warning+=this.getCellValidationError(cell)||'';}var err=this.validateCell(cell,context);if(err!=null){warning+=err;}if(this.model.getParent(cell)==null){this.view.validate();}return(warning.length>0||!isValid)?warning:null;};mxGraph.prototype.getCellValidationError=function(cell){var outCount=this.model.getDirectedEdgeCount(cell,true);var inCount=this.model.getDirectedEdgeCount(cell,false);var value=this.model.getValue(cell);var error='';if(this.multiplicities!=null){for(var i=0;i<this.multiplicities.length;i++){var rule=this.multiplicities[i];if(rule.source&&mxUtils.isNode(value,rule.type,rule.attr,rule.value)&&((rule.max==0&&outCount>0)||(rule.min==1&&outCount==0)||(rule.max==1&&outCount>1))){error+=rule.countError+'\n';}else if(!rule.source&&mxUtils.isNode(value,rule.type,rule.attr,rule.value)&&((rule.max==0&&inCount>0)||(rule.min==1&&inCount==0)||(rule.max==1&&inCount>1))){error+=rule.countError+'\n';}}}return(error.length>0)?error:null;};mxGraph.prototype.validateCell=function(cell,context){return null;};mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage;};mxGraph.prototype.setBackgroundImage=function(image){this.backgroundImage=image;};mxGraph.prototype.getFoldingImage=function(state){if(state!=null&&this.foldingEnabled&&!this.getModel().isEdge(state.cell)){var tmp=this.isCellCollapsed(state.cell);if(this.isCellFoldable(state.cell,!tmp)){return(tmp)?this.collapsedImage:this.expandedImage;}}return null;};mxGraph.prototype.convertValueToString=function(cell){var value=this.model.getValue(cell);if(value!=null){if(mxUtils.isNode(value)){return value.nodeName;}else if(typeof(value.toString)=='function'){return value.toString();}}return '';};mxGraph.prototype.getLabel=function(cell){var result='';if(this.labelsVisible&&cell!=null){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);if(!mxUtils.getValue(style,mxConstants.STYLE_NOLABEL,false)){result=this.convertValueToString(cell);}}return result;};mxGraph.prototype.isHtmlLabel=function(cell){return this.isHtmlLabels();};mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels;};mxGraph.prototype.setHtmlLabels=function(value){this.htmlLabels=value;};mxGraph.prototype.isWrapping=function(cell){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return(style!=null)?style[mxConstants.STYLE_WHITE_SPACE]=='wrap':false;};mxGraph.prototype.isLabelClipped=function(cell){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return(style!=null)?style[mxConstants.STYLE_OVERFLOW]=='hidden':false;};mxGraph.prototype.getTooltip=function(state,node,x,y){var tip=null;if(state!=null){if(state.control!=null&&(node==state.control.node||node.parentNode==state.control.node)){tip=this.collapseExpandResource;tip=mxResources.get(tip)||tip;}if(tip==null&&state.overlays!=null){for(var i=0;i<state.overlays.length;i++){if(node==state.overlays[i].node||node.parentNode==state.overlays[i].node){tip=this.getCellOverlays(state.cell)[i].toString();break;}}}if(tip==null){var handler=this.selectionCellsHandler.getHandler(state.cell);if(handler!=null&&typeof(handler.getTooltipForNode)=='function'){tip=handler.getTooltipForNode(node);}}if(tip==null){tip=this.getTooltipForCell(state.cell);}}return tip;};mxGraph.prototype.getTooltipForCell=function(cell){var tip=null;if(cell!=null&&cell.getTooltip!=null){tip=cell.getTooltip();}else{tip=this.convertValueToString(cell);}return tip;};mxGraph.prototype.getCursorForCell=function(cell){return null;};mxGraph.prototype.getStartSize=function(swimlane){var result=new mxRectangle();var state=this.view.getState(swimlane);var style=(state!=null)?state.style:this.getCellStyle(swimlane);if(style!=null){var size=parseInt(mxUtils.getValue(style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));if(mxUtils.getValue(style,mxConstants.STYLE_HORIZONTAL,true)){result.height=size;}else{result.width=size;}}return result;};mxGraph.prototype.getImage=function(state){return(state!=null&&state.style!=null)?state.style[mxConstants.STYLE_IMAGE]:null;};mxGraph.prototype.getVerticalAlign=function(state){return(state!=null&&state.style!=null)?(state.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE):null;};mxGraph.prototype.getIndicatorColor=function(state){return(state!=null&&state.style!=null)?state.style[mxConstants.STYLE_INDICATOR_COLOR]:null;};mxGraph.prototype.getIndicatorGradientColor=function(state){return(state!=null&&state.style!=null)?state.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null;};mxGraph.prototype.getIndicatorShape=function(state){return(state!=null&&state.style!=null)?state.style[mxConstants.STYLE_INDICATOR_SHAPE]:null;};mxGraph.prototype.getIndicatorImage=function(state){return(state!=null&&state.style!=null)?state.style[mxConstants.STYLE_INDICATOR_IMAGE]:null;};mxGraph.prototype.getBorder=function(){return this.border;};mxGraph.prototype.setBorder=function(value){this.border=value;};mxGraph.prototype.isSwimlane=function(cell){if(cell!=null){if(this.model.getParent(cell)!=this.model.getRoot()){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);if(style!=null&&!this.model.isEdge(cell)){return style[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE;}}}return false;};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer;};mxGraph.prototype.setResizeContainer=function(value){this.resizeContainer=value;};mxGraph.prototype.isEnabled=function(){return this.enabled;};mxGraph.prototype.setEnabled=function(value){this.enabled=value;};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled;};mxGraph.prototype.setEscapeEnabled=function(value){this.escapeEnabled=value;};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing;};mxGraph.prototype.setInvokesStopCellEditing=function(value){this.invokesStopCellEditing=value;};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing;};mxGraph.prototype.setEnterStopsCellEditing=function(value){this.enterStopsCellEditing=value;};mxGraph.prototype.isCellLocked=function(cell){var geometry=this.model.getGeometry(cell);return this.isCellsLocked()||(geometry!=null&&this.model.isVertex(cell)&&geometry.relative);};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked;};mxGraph.prototype.setCellsLocked=function(value){this.cellsLocked=value;};mxGraph.prototype.getCloneableCells=function(cells){return this.model.filterCells(cells,mxUtils.bind(this,function(cell){return this.isCellCloneable(cell);}));};mxGraph.prototype.isCellCloneable=function(cell){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return this.isCellsCloneable()&&style[mxConstants.STYLE_CLONEABLE]!=0;};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable;};mxGraph.prototype.setCellsCloneable=function(value){this.cellsCloneable=value;};mxGraph.prototype.getExportableCells=function(cells){return this.model.filterCells(cells,mxUtils.bind(this,function(cell){return this.canExportCell(cell);}));};mxGraph.prototype.canExportCell=function(cell){return this.exportEnabled;};mxGraph.prototype.getImportableCells=function(cells){return this.model.filterCells(cells,mxUtils.bind(this,function(cell){return this.canImportCell(cell);}));};mxGraph.prototype.canImportCell=function(cell){return this.importEnabled;};mxGraph.prototype.isCellSelectable=function(cell){return this.isCellsSelectable();};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable;};mxGraph.prototype.setCellsSelectable=function(value){this.cellsSelectable=value;};mxGraph.prototype.getDeletableCells=function(cells){return this.model.filterCells(cells,mxUtils.bind(this,function(cell){return this.isCellDeletable(cell);}));};mxGraph.prototype.isCellDeletable=function(cell){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return this.isCellsDeletable()&&style[mxConstants.STYLE_DELETABLE]!=0;};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable;};mxGraph.prototype.setCellsDeletable=function(value){this.cellsDeletable=value;};mxGraph.prototype.isLabelMovable=function(cell){return!this.isCellLocked(cell)&&((this.model.isEdge(cell)&&this.edgeLabelsMovable)||(this.model.isVertex(cell)&&this.vertexLabelsMovable));};mxGraph.prototype.getMovableCells=function(cells){return this.model.filterCells(cells,mxUtils.bind(this,function(cell){return this.isCellMovable(cell);}));};mxGraph.prototype.isCellMovable=function(cell){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return this.isCellsMovable()&&!this.isCellLocked(cell)&&style[mxConstants.STYLE_MOVABLE]!=0;};mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable;};mxGraph.prototype.setCellsMovable=function(value){this.cellsMovable=value;};mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled;};mxGraph.prototype.setGridEnabled=function(value){this.gridEnabled=value;};mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled;};mxGraph.prototype.setPortsEnabled=function(value){this.portsEnabled=value;};mxGraph.prototype.getGridSize=function(){return this.gridSize;};mxGraph.prototype.setGridSize=function(value){this.gridSize=value;};mxGraph.prototype.getTolerance=function(){return this.tolerance;};mxGraph.prototype.setTolerance=function(value){this.tolerance=value;};mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable;};mxGraph.prototype.setVertexLabelsMovable=function(value){this.vertexLabelsMovable=value;};mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable;};mxGraph.prototype.setEdgeLabelsMovable=function(value){this.edgeLabelsMovable=value;};mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting;};mxGraph.prototype.setSwimlaneNesting=function(value){this.swimlaneNesting=value;};mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled;};mxGraph.prototype.setSwimlaneSelectionEnabled=function(value){this.swimlaneSelectionEnabled=value;};mxGraph.prototype.isMultigraph=function(){return this.multigraph;};mxGraph.prototype.setMultigraph=function(value){this.multigraph=value;};mxGraph.prototype.isAllowLoops=function(){return this.allowLoops;};mxGraph.prototype.setAllowDanglingEdges=function(value){this.allowDanglingEdges=value;};mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges;};mxGraph.prototype.setConnectableEdges=function(value){this.connectableEdges=value;};mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges;};mxGraph.prototype.setCloneInvalidEdges=function(value){this.cloneInvalidEdges=value;};mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges;};mxGraph.prototype.setAllowLoops=function(value){this.allowLoops=value;};mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove;};mxGraph.prototype.setDisconnectOnMove=function(value){this.disconnectOnMove=value;};mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled;};mxGraph.prototype.setDropEnabled=function(value){this.dropEnabled=value;};mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled;};mxGraph.prototype.setSplitEnabled=function(value){this.splitEnabled=value;};mxGraph.prototype.isCellResizable=function(cell){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return this.isCellsResizable()&&!this.isCellLocked(cell)&&style[mxConstants.STYLE_RESIZABLE]!=0;};mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable;};mxGraph.prototype.setCellsResizable=function(value){this.cellsResizable=value;};mxGraph.prototype.isTerminalPointMovable=function(cell,source){return true;};mxGraph.prototype.isCellBendable=function(cell){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return this.isCellsBendable()&&!this.isCellLocked(cell)&&style[mxConstants.STYLE_BENDABLE]!=0;};mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable;};mxGraph.prototype.setCellsBendable=function(value){this.cellsBendable=value;};mxGraph.prototype.isCellEditable=function(cell){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return this.isCellsEditable()&&!this.isCellLocked(cell)&&style[mxConstants.STYLE_EDITABLE]!=0;};mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable;};mxGraph.prototype.setCellsEditable=function(value){this.cellsEditable=value;};mxGraph.prototype.isCellDisconnectable=function(cell,terminal,source){return this.isCellsDisconnectable()&&!this.isCellLocked(cell);};mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable;};mxGraph.prototype.setCellsDisconnectable=function(value){this.cellsDisconnectable=value;};mxGraph.prototype.isValidSource=function(cell){return(cell==null&&this.allowDanglingEdges)||(cell!=null&&(!this.model.isEdge(cell)||this.connectableEdges)&&this.isCellConnectable(cell));};mxGraph.prototype.isValidTarget=function(cell){return this.isValidSource(cell);};mxGraph.prototype.isValidConnection=function(source,target){return this.isValidSource(source)&&this.isValidTarget(target);};mxGraph.prototype.setConnectable=function(connectable){this.connectionHandler.setEnabled(connectable);};mxGraph.prototype.isConnectable=function(connectable){return this.connectionHandler.isEnabled();};mxGraph.prototype.setTooltips=function(enabled){this.tooltipHandler.setEnabled(enabled);};mxGraph.prototype.setPanning=function(enabled){this.panningHandler.panningEnabled=enabled;};mxGraph.prototype.isEditing=function(cell){if(this.cellEditor!=null){var editingCell=this.cellEditor.getEditingCell();return(cell==null)?editingCell!=null:cell==editingCell;}return false;};mxGraph.prototype.isAutoSizeCell=function(cell){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return this.isAutoSizeCells()||style[mxConstants.STYLE_AUTOSIZE]==1;};mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells;};mxGraph.prototype.setAutoSizeCells=function(value){this.autoSizeCells=value;};mxGraph.prototype.isExtendParent=function(cell){return!this.getModel().isEdge(cell)&&this.isExtendParents();};mxGraph.prototype.isExtendParents=function(){return this.extendParents;};mxGraph.prototype.setExtendParents=function(value){this.extendParents=value;};mxGraph.prototype.isExtendParentsOnAdd=function(){return this.extendParentsOnAdd;};mxGraph.prototype.setExtendParentsOnAdd=function(value){this.extendParentsOnAdd=value;};mxGraph.prototype.isConstrainChild=function(cell){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(cell));};mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren;};mxGraph.prototype.setConstrainChildren=function(value){this.constrainChildren=value;};mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates;};mxGraph.prototype.setAllowNegativeCoordinates=function(value){this.allowNegativeCoordinates=value;};mxGraph.prototype.getOverlap=function(cell){return(this.isAllowOverlapParent(cell))?this.defaultOverlap:0;};mxGraph.prototype.isAllowOverlapParent=function(cell){return false;};mxGraph.prototype.getFoldableCells=function(cells,collapse){return this.model.filterCells(cells,mxUtils.bind(this,function(cell){return this.isCellFoldable(cell,collapse);}));};mxGraph.prototype.isCellFoldable=function(cell,collapse){var state=this.view.getState(cell);var style=(state!=null)?state.style:this.getCellStyle(cell);return this.model.getChildCount(cell)>0&&style[mxConstants.STYLE_FOLDABLE]!=0;};mxGraph.prototype.isValidDropTarget=function(cell,cells,evt){return cell!=null&&((this.isSplitEnabled()&&this.isSplitTarget(cell,cells,evt))||(!this.model.isEdge(cell)&&(this.isSwimlane(cell)||(this.model.getChildCount(cell)>0&&!this.isCellCollapsed(cell)))));};mxGraph.prototype.isSplitTarget=function(target,cells,evt){if(this.model.isEdge(target)&&cells!=null&&cells.length==1&&this.isCellConnectable(cells[0])&&this.getEdgeValidationError(target,this.model.getTerminal(target,true),cells[0])==null){var src=this.model.getTerminal(target,true);var trg=this.model.getTerminal(target,false);return(!this.model.isAncestor(cells[0],src)&&!this.model.isAncestor(cells[0],trg));}return false;};mxGraph.prototype.getDropTarget=function(cells,evt,cell){if(!this.isSwimlaneNesting()){for(var i=0;i<cells.length;i++){if(this.isSwimlane(cells[i])){return null;}}}var pt=mxUtils.convertPoint(this.container,mxEvent.getClientX(evt),mxEvent.getClientY(evt));pt.x-=this.panDx;pt.y-=this.panDy;var swimlane=this.getSwimlaneAt(pt.x,pt.y);if(cell==null){cell=swimlane;}else if(swimlane!=null){var tmp=this.model.getParent(swimlane);while(tmp!=null&&this.isSwimlane(tmp)&&tmp!=cell){tmp=this.model.getParent(tmp);}if(tmp==cell){cell=swimlane;}}while(cell!=null&&!this.isValidDropTarget(cell,cells,evt)&&!this.model.isLayer(cell)){cell=this.model.getParent(cell);}return(!this.model.isLayer(cell)&&mxUtils.indexOf(cells,cell)<0)?cell:null;};mxGraph.prototype.getDefaultParent=function(){var parent=this.defaultParent;if(parent==null){parent=this.getCurrentRoot();if(parent==null){var root=this.model.getRoot();parent=this.model.getChildAt(root,0);}}return parent;};mxGraph.prototype.setDefaultParent=function(cell){this.defaultParent=cell;};mxGraph.prototype.getSwimlane=function(cell){while(cell!=null&&!this.isSwimlane(cell)){cell=this.model.getParent(cell);}return cell;};mxGraph.prototype.getSwimlaneAt=function(x,y,parent){parent=parent||this.getDefaultParent();if(parent!=null){var childCount=this.model.getChildCount(parent);for(var i=0;i<childCount;i++){var child=this.model.getChildAt(parent,i);var result=this.getSwimlaneAt(x,y,child);if(result!=null){return result;}else if(this.isSwimlane(child)){var state=this.view.getState(child);if(this.intersects(state,x,y)){return child;}}}}return null;};mxGraph.prototype.getCellAt=function(x,y,parent,vertices,edges){vertices=(vertices!=null)?vertices:true;edges=(edges!=null)?edges:true;parent=(parent!=null)?parent:this.getDefaultParent();if(parent!=null){var childCount=this.model.getChildCount(parent);for(var i=childCount-1;i>=0;i--){var cell=this.model.getChildAt(parent,i);var result=this.getCellAt(x,y,cell,vertices,edges);if(result!=null){return result;}else if(this.isCellVisible(cell)&&(edges&&this.model.isEdge(cell)||vertices&&this.model.isVertex(cell))){var state=this.view.getState(cell);if(this.intersects(state,x,y)){return cell;}}}}return null;};mxGraph.prototype.intersects=function(state,x,y){if(state!=null){var pts=state.absolutePoints;if(pts!=null){var t2=this.tolerance*this.tolerance;var pt=pts[0];for(var i=1;i<pts.length;i++){var next=pts[i];var dist=mxUtils.ptSegDistSq(pt.x,pt.y,next.x,next.y,x,y);if(dist<=t2){return true;}pt=next;}}else if(mxUtils.contains(state,x,y)){return true;}}return false;};mxGraph.prototype.hitsSwimlaneContent=function(swimlane,x,y){var state=this.getView().getState(swimlane);var size=this.getStartSize(swimlane);if(state!=null){var scale=this.getView().getScale();x-=state.x;y-=state.y;if(size.width>0&&x>0&&x>size.width*scale){return true;}else if(size.height>0&&y>0&&y>size.height*scale){return true;}}return false;};mxGraph.prototype.getChildVertices=function(parent){return this.getChildCells(parent,true,false);};mxGraph.prototype.getChildEdges=function(parent){return this.getChildCells(parent,false,true);};mxGraph.prototype.getChildCells=function(parent,vertices,edges){parent=(parent!=null)?parent:this.getDefaultParent();vertices=(vertices!=null)?vertices:false;edges=(edges!=null)?edges:false;var cells=this.model.getChildCells(parent,vertices,edges);var result=[];for(var i=0;i<cells.length;i++){if(this.isCellVisible(cells[i])){result.push(cells[i]);}}return result;};mxGraph.prototype.getConnections=function(cell,parent){return this.getEdges(cell,parent,true,true,false);};mxGraph.prototype.getIncomingEdges=function(cell,parent){return this.getEdges(cell,parent,true,false,false);};mxGraph.prototype.getOutgoingEdges=function(cell,parent){return this.getEdges(cell,parent,false,true,false);};mxGraph.prototype.getEdges=function(cell,parent,incoming,outgoing,includeLoops,recurse){incoming=(incoming!=null)?incoming:true;outgoing=(outgoing!=null)?outgoing:true;includeLoops=(includeLoops!=null)?includeLoops:true;recurse=(recurse!=null)?recurse:false;var edges=[];var isCollapsed=this.isCellCollapsed(cell);var childCount=this.model.getChildCount(cell);for(var i=0;i<childCount;i++){var child=this.model.getChildAt(cell,i);if(isCollapsed||!this.isCellVisible(child)){edges=edges.concat(this.model.getEdges(child,incoming,outgoing));}}edges=edges.concat(this.model.getEdges(cell,incoming,outgoing));var result=[];for(var i=0;i<edges.length;i++){var state=this.view.getState(edges[i]);var source=(state!=null)?state.getVisibleTerminal(true):this.view.getVisibleTerminal(edges[i],true);var target=(state!=null)?state.getVisibleTerminal(false):this.view.getVisibleTerminal(edges[i],false);if((includeLoops&&source==target)||((source!=target)&&((incoming&&target==cell&&(parent==null||this.isValidAncestor(source,parent,recurse)))||(outgoing&&source==cell&&(parent==null||this.isValidAncestor(target,parent,recurse)))))){result.push(edges[i]);}}return result;};mxGraph.prototype.isValidAncestor=function(cell,parent,recurse){return(recurse?this.model.isAncestor(parent,cell):this.model.getParent(cell)==parent);};mxGraph.prototype.getOpposites=function(edges,terminal,sources,targets){sources=(sources!=null)?sources:true;targets=(targets!=null)?targets:true;var terminals=[];var hash=new Object();if(edges!=null){for(var i=0;i<edges.length;i++){var state=this.view.getState(edges[i]);var source=(state!=null)?state.getVisibleTerminal(true):this.view.getVisibleTerminal(edges[i],true);var target=(state!=null)?state.getVisibleTerminal(false):this.view.getVisibleTerminal(edges[i],false);if(source==terminal&&target!=null&&target!=terminal&&targets){var id=mxCellPath.create(target);if(hash[id]==null){hash[id]=target;terminals.push(target);}}else if(target==terminal&&source!=null&&source!=terminal&&sources){var id=mxCellPath.create(source);if(hash[id]==null){hash[id]=source;terminals.push(source);}}}}return terminals;};mxGraph.prototype.getEdgesBetween=function(source,target,directed){directed=(directed!=null)?directed:false;var edges=this.getEdges(source);var result=[];for(var i=0;i<edges.length;i++){var state=this.view.getState(edges[i]);var src=(state!=null)?state.getVisibleTerminal(true):this.view.getVisibleTerminal(edges[i],true);var trg=(state!=null)?state.getVisibleTerminal(false):this.view.getVisibleTerminal(edges[i],false);if((src==source&&trg==target)||(!directed&&src==target&&trg==source)){result.push(edges[i]);}}return result;};mxGraph.prototype.getPointForEvent=function(evt,addOffset){var p=mxUtils.convertPoint(this.container,mxEvent.getClientX(evt),mxEvent.getClientY(evt));var s=this.view.scale;var tr=this.view.translate;var off=(addOffset!=false)?this.gridSize/2:0;p.x=this.snap(p.x/s-tr.x-off);p.y=this.snap(p.y/s-tr.y-off);return p;};mxGraph.prototype.getCells=function(x,y,width,height,parent,result){result=(result!=null)?result:[];if(width>0||height>0){var right=x+width;var bottom=y+height;parent=parent||this.getDefaultParent();if(parent!=null){var childCount=this.model.getChildCount(parent);for(var i=0;i<childCount;i++){var cell=this.model.getChildAt(parent,i);var state=this.view.getState(cell);if(this.isCellVisible(cell)&&state!=null){if(state.x>=x&&state.y>=y&&state.x+state.width<=right&&state.y+state.height<=bottom){result.push(cell);}else{this.getCells(x,y,width,height,cell,result);}}}}}return result;};mxGraph.prototype.getCellsBeyond=function(x0,y0,parent,rightHalfpane,bottomHalfpane){var result=[];if(rightHalfpane||bottomHalfpane){if(parent==null){parent=this.getDefaultParent();}if(parent!=null){var childCount=this.model.getChildCount(parent);for(var i=0;i<childCount;i++){var child=this.model.getChildAt(parent,i);var state=this.view.getState(child);if(this.isCellVisible(child)&&state!=null){if((!rightHalfpane||state.x>=x0)&&(!bottomHalfpane||state.y>=y0)){result.push(child);}}}}}return result;};mxGraph.prototype.findTreeRoots=function(parent,isolate,invert){isolate=(isolate!=null)?isolate:false;invert=(invert!=null)?invert:false;var roots=[];if(parent!=null){var model=this.getModel();var childCount=model.getChildCount(parent);var best=null;var maxDiff=0;for(var i=0;i<childCount;i++){var cell=model.getChildAt(parent,i);if(this.model.isVertex(cell)&&this.isCellVisible(cell)){var conns=this.getConnections(cell,(isolate)?parent:null);var fanOut=0;var fanIn=0;for(var j=0;j<conns.length;j++){var src=this.view.getVisibleTerminal(conns[j],true);if(src==cell){fanOut++;}else{fanIn++;}}if((invert&&fanOut==0&&fanIn>0)||(!invert&&fanIn==0&&fanOut>0)){roots.push(cell);}var diff=(invert)?fanIn-fanOut:fanOut-fanIn;if(diff>maxDiff){maxDiff=diff;best=cell;}}}if(roots.length==0&&best!=null){roots.push(best);}}return roots;};mxGraph.prototype.traverse=function(vertex,directed,func,edge,visited){if(func!=null&&vertex!=null){directed=(directed!=null)?directed:true;visited=visited||[];var id=mxCellPath.create(vertex);if(visited[id]==null){visited[id]=vertex;var result=func(vertex,edge);if(result==null||result){var edgeCount=this.model.getEdgeCount(vertex);if(edgeCount>0){for(var i=0;i<edgeCount;i++){var e=this.model.getEdgeAt(vertex,i);var isSource=this.model.getTerminal(e,true)==vertex;if(!directed||isSource){var next=this.model.getTerminal(e,!isSource);this.traverse(next,directed,func,e,visited);}}}}}}};mxGraph.prototype.isCellSelected=function(cell){return this.getSelectionModel().isSelected(cell);};mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty();};mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear();};mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length;};mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0];};mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice();};mxGraph.prototype.setSelectionCell=function(cell){this.getSelectionModel().setCell(cell);};mxGraph.prototype.setSelectionCells=function(cells){this.getSelectionModel().setCells(cells);};mxGraph.prototype.addSelectionCell=function(cell){this.getSelectionModel().addCell(cell);};mxGraph.prototype.addSelectionCells=function(cells){this.getSelectionModel().addCells(cells);};mxGraph.prototype.removeSelectionCell=function(cell){this.getSelectionModel().removeCell(cell);};mxGraph.prototype.removeSelectionCells=function(cells){this.getSelectionModel().removeCells(cells);};mxGraph.prototype.selectRegion=function(rect,evt){var cells=this.getCells(rect.x,rect.y,rect.width,rect.height);this.selectCellsForEvent(cells,evt);return cells;};mxGraph.prototype.selectNextCell=function(){this.selectCell(true);};mxGraph.prototype.selectPreviousCell=function(){this.selectCell();};mxGraph.prototype.selectParentCell=function(){this.selectCell(false,true);};mxGraph.prototype.selectChildCell=function(){this.selectCell(false,false,true);};mxGraph.prototype.selectCell=function(isNext,isParent,isChild){var sel=this.selectionModel;var cell=(sel.cells.length>0)?sel.cells[0]:null;if(sel.cells.length>1){sel.clear();}var parent=(cell!=null)?this.model.getParent(cell):this.getDefaultParent();var childCount=this.model.getChildCount(parent);if(cell==null&&childCount>0){var child=this.model.getChildAt(parent,0);this.setSelectionCell(child);}else if((cell==null||isParent)&&this.view.getState(parent)!=null&&this.model.getGeometry(parent)!=null){if(this.getCurrentRoot()!=parent){this.setSelectionCell(parent);}}else if(cell!=null&&isChild){var tmp=this.model.getChildCount(cell);if(tmp>0){var child=this.model.getChildAt(cell,0);this.setSelectionCell(child);}}else if(childCount>0){var i=parent.getIndex(cell);if(isNext){i++;var child=this.model.getChildAt(parent,i%childCount);this.setSelectionCell(child);}else{i--;var index=(i<0)?childCount-1:i;var child=this.model.getChildAt(parent,index);this.setSelectionCell(child);}}};mxGraph.prototype.selectAll=function(parent){parent=parent||this.getDefaultParent();var children=this.model.getChildren(parent);if(children!=null){this.setSelectionCells(children);}};mxGraph.prototype.selectVertices=function(parent){this.selectCells(true,false,parent);};mxGraph.prototype.selectEdges=function(parent){this.selectCells(false,true,parent);};mxGraph.prototype.selectCells=function(vertices,edges,parent){parent=parent||this.getDefaultParent();var filter=mxUtils.bind(this,function(cell){return this.view.getState(cell)!=null&&this.model.getChildCount(cell)==0&&((this.model.isVertex(cell)&&vertices)||(this.model.isEdge(cell)&&edges));});var cells=this.model.filterDescendants(filter,parent);this.setSelectionCells(cells);};mxGraph.prototype.selectCellForEvent=function(cell,evt){var isSelected=this.isCellSelected(cell);if(this.isToggleEvent(evt)){if(isSelected){this.removeSelectionCell(cell);}else{this.addSelectionCell(cell);}}else if(!isSelected||this.getSelectionCount()!=1){this.setSelectionCell(cell);}};mxGraph.prototype.selectCellsForEvent=function(cells,evt){if(this.isToggleEvent(evt)){this.addSelectionCells(cells);}else{this.setSelectionCells(cells);}};mxGraph.prototype.createHandler=function(state){var result=null;if(state!=null){if(this.model.isEdge(state.cell)){var style=this.view.getEdgeStyle(state);if(this.isLoop(state)||style==mxEdgeStyle.ElbowConnector||style==mxEdgeStyle.SideToSide||style==mxEdgeStyle.TopToBottom){result=new mxElbowEdgeHandler(state);}else if(style==mxEdgeStyle.SegmentConnector||style==mxEdgeStyle.OrthConnector){result=new mxEdgeSegmentHandler(state);}else{result=new mxEdgeHandler(state);}}else{result=new mxVertexHandler(state);}}return result;};mxGraph.prototype.addMouseListener=function(listener){if(this.mouseListeners==null){this.mouseListeners=[];}this.mouseListeners.push(listener);};mxGraph.prototype.removeMouseListener=function(listener){if(this.mouseListeners!=null){for(var i=0;i<this.mouseListeners.length;i++){if(this.mouseListeners[i]==listener){this.mouseListeners.splice(i,1);break;}}}};mxGraph.prototype.updateMouseEvent=function(me){if(me.graphX==null||me.graphY==null){var pt=mxUtils.convertPoint(this.container,me.getX(),me.getY());me.graphX=pt.x-this.panDx;me.graphY=pt.y-this.panDy;}};mxGraph.prototype.fireMouseEvent=function(evtName,me,sender){if(sender==null){sender=this;}this.updateMouseEvent(me);if(evtName==mxEvent.MOUSE_DOWN){this.isMouseDown=true;}if(mxClient.IS_TOUCH&&this.doubleTapEnabled&&evtName==mxEvent.MOUSE_DOWN){var currentTime=new Date().getTime();if(currentTime-this.lastTouchTime<this.doubleTapTimeout&&Math.abs(this.lastTouchX-me.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-me.getY())<this.doubleTapTolerance){this.lastTouchTime=0;this.dblClick(me.getEvent(),me.getCell());me.getEvent().cancelBubble=true;}else{this.lastTouchX=me.getX();this.lastTouchY=me.getY();this.lastTouchTime=currentTime;}}var noDoubleClick=me.getEvent().detail !=2;if(mxClient.IS_IE&&document.compatMode=='CSS1Compat'){if((this.lastMouseX!=null&&Math.abs(this.lastMouseX-me.getX())>this.doubleTapTolerance)||(this.lastMouseY!=null&&Math.abs(this.lastMouseY-me.getY())>this.doubleTapTolerance)){noDoubleClick=true;}if(evtName==mxEvent.MOUSE_UP){this.lastMouseX=me.getX();this.lastMouseY=me.getY();}}if((evtName!=mxEvent.MOUSE_UP||this.isMouseDown)&&noDoubleClick){if(evtName==mxEvent.MOUSE_UP){this.isMouseDown=false;}if(!this.isEditing()&&(mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||(mxClient.IS_IE&&mxClient.IS_SVG)||me.getEvent().target!=this.container)){if(evtName==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll){this.scrollPointToVisible(me.getGraphX(),me.getGraphY(),this.autoExtend);}if(this.mouseListeners!=null){var args=[sender,me];me.getEvent().returnValue=true;for(var i=0;i<this.mouseListeners.length;i++){var l=this.mouseListeners[i];if(evtName==mxEvent.MOUSE_DOWN){l.mouseDown.apply(l,args);}else if(evtName==mxEvent.MOUSE_MOVE){l.mouseMove.apply(l,args);}else if(evtName==mxEvent.MOUSE_UP){l.mouseUp.apply(l,args);}}}if(evtName==mxEvent.MOUSE_UP){this.click(me);}}}else if(evtName==mxEvent.MOUSE_UP){this.isMouseDown=false;}};mxGraph.prototype.destroy=function(){if(!this.destroyed){this.destroyed=true;if(this.tooltipHandler!=null){this.tooltipHandler.destroy();}if(this.selectionCellsHandler!=null){this.selectionCellsHandler.destroy();}if(this.panningHandler!=null){this.panningHandler.destroy();}if(this.connectionHandler!=null){this.connectionHandler.destroy();}if(this.graphHandler!=null){this.graphHandler.destroy();}if(this.cellEditor!=null){this.cellEditor.destroy();}if(this.view!=null){this.view.destroy();}if(this.model!=null&&this.graphModelChangeListener!=null){this.model.removeListener(this.graphModelChangeListener);this.graphModelChangeListener=null;}this.container=null;}};function mxCellOverlay(image,tooltip,align,verticalAlign,offset,cursor){this.image=image;this.tooltip=tooltip;this.align=align;this.verticalAlign=verticalAlign;this.offset=(offset!=null)?offset:new mxPoint();this.cursor=(cursor!=null)?cursor:'help';};mxCellOverlay.prototype=new mxEventSource();mxCellOverlay.prototype.constructor=mxCellOverlay;mxCellOverlay.prototype.image=null;mxCellOverlay.prototype.tooltip=null;mxCellOverlay.prototype.align=null;mxCellOverlay.prototype.verticalAlign=null;mxCellOverlay.prototype.offset=null;mxCellOverlay.prototype.cursor=null;mxCellOverlay.prototype.defaultOverlap=0.5;mxCellOverlay.prototype.getBounds=function(state){var isEdge=state.view.graph.getModel().isEdge(state.cell);var s=state.view.scale;var pt=null;var w=this.image.width;var h=this.image.height;if(isEdge){var pts=state.absolutePoints;if(pts.length%2==1){pt=pts[Math.floor(pts.length/2)];}else{var idx=pts.length/2;var p0=pts[idx-1];var p1=pts[idx];pt=new mxPoint(p0.x+(p1.x-p0.x)/2,p0.y+(p1.y-p0.y)/2);}}else{pt=new mxPoint();if(this.align==mxConstants.ALIGN_LEFT){pt.x=state.x;}else if(this.align==mxConstants.ALIGN_CENTER){pt.x=state.x+state.width/2;}else{pt.x=state.x+state.width;}if(this.verticalAlign==mxConstants.ALIGN_TOP){pt.y=state.y;}else if(this.verticalAlign==mxConstants.ALIGN_MIDDLE){pt.y=state.y+state.height/2;}else{pt.y=state.y+state.height;}}return new mxRectangle(pt.x-(w*this.defaultOverlap-this.offset.x)*s,pt.y-(h*this.defaultOverlap-this.offset.y)*s,w*s,h*s);};mxCellOverlay.prototype.toString=function(){return this.tooltip;};function mxOutline(source,container){this.source=source;if(container!=null){this.init(container);}};mxOutline.prototype.source=null;mxOutline.prototype.outline=null;mxOutline.prototype.graphRenderHint=mxConstants.RENDERING_HINT_FASTER;mxOutline.prototype.enabled=true;mxOutline.prototype.showViewport=true;mxOutline.prototype.border=10;mxOutline.prototype.sizerSize=8;mxOutline.prototype.updateOnPan=false;mxOutline.prototype.sizerImage=null;mxOutline.prototype.suspended=false;mxOutline.prototype.init=function(container){this.outline=new mxGraph(container,this.source.getModel(),this.graphRenderHint,this.source.getStylesheet());this.outline.foldingEnabled=false;this.outline.autoScroll=false;var outlineGraphModelChanged=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(changes){if(!this.suspended&&this.outline!=null){outlineGraphModelChanged.apply(this.outline,arguments);}});if(mxClient.IS_SVG){var node=this.outline.getView().getCanvas().parentNode;node.setAttribute('shape-rendering','optimizeSpeed');node.setAttribute('image-rendering','optimizeSpeed');}this.outline.labelsVisible=false;this.outline.setEnabled(false);this.updateHandler=mxUtils.bind(this,function(sender,evt){if(!this.suspended&&!this.active){this.update();}});this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler);this.outline.addMouseListener(this);var view=this.source.getView();view.addListener(mxEvent.SCALE,this.updateHandler);view.addListener(mxEvent.TRANSLATE,this.updateHandler);view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.updateHandler);view.addListener(mxEvent.DOWN,this.updateHandler);view.addListener(mxEvent.UP,this.updateHandler);mxEvent.addListener(this.source.container,'scroll',this.updateHandler);this.panHandler=mxUtils.bind(this,function(sender){if(this.updateOnPan){this.updateHandler.apply(this,arguments);}});this.source.addListener(mxEvent.PAN,this.panHandler);this.refreshHandler=mxUtils.bind(this,function(sender){this.outline.setStylesheet(this.source.getStylesheet());this.outline.refresh();});this.source.addListener(mxEvent.REFRESH,this.refreshHandler);this.bounds=new mxRectangle(0,0,0,0);this.selectionBorder=new mxRectangleShape(this.bounds,null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH);this.selectionBorder.dialect=(this.outline.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;this.selectionBorder.crisp=true;this.selectionBorder.init(this.outline.getView().getOverlayPane());mxEvent.redirectMouseEvents(this.selectionBorder.node,this.outline);this.selectionBorder.node.style.background='';this.sizer=this.createSizer();this.sizer.init(this.outline.getView().getOverlayPane());if(this.enabled){this.sizer.node.style.cursor='pointer';}mxEvent.addListener(this.sizer.node,(mxClient.IS_TOUCH)?'touchstart':'mousedown',mxUtils.bind(this,function(evt){this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(evt));}));this.selectionBorder.node.style.display=(this.showViewport)?'':'none';this.sizer.node.style.display=this.selectionBorder.node.style.display;this.selectionBorder.node.style.cursor='move';this.update(false);};mxOutline.prototype.isEnabled=function(){return this.enabled;};mxOutline.prototype.setEnabled=function(value){this.enabled=value;};mxOutline.prototype.setZoomEnabled=function(value){this.sizer.node.style.visibility=(value)?'visible':'hidden';};mxOutline.prototype.refresh=function(){this.update(true);};mxOutline.prototype.createSizer=function(){if(this.sizerImage!=null){var sizer=new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src);sizer.dialect=this.outline.dialect;return sizer;}else{var sizer=new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);sizer.dialect=this.outline.dialect;sizer.crisp=true;return sizer;}};mxOutline.prototype.update=function(revalidate){if(this.source!=null){var sourceScale=this.source.view.scale;var scaledGraphBounds=this.source.getGraphBounds();var unscaledGraphBounds=new mxRectangle(scaledGraphBounds.x/sourceScale+this.source.panDx,scaledGraphBounds.y/sourceScale+this.source.panDy,scaledGraphBounds.width/sourceScale,scaledGraphBounds.height/sourceScale);var unscaledFinderBounds=new mxRectangle(0,0,this.source.container.clientWidth/sourceScale,this.source.container.clientHeight/sourceScale);var union=unscaledGraphBounds.clone();union.add(unscaledFinderBounds);var completeWidth=Math.max(this.source.container.scrollWidth/sourceScale,union.width);var completeHeight=Math.max(this.source.container.scrollHeight/sourceScale,union.height);var availableWidth=Math.max(0,this.outline.container.clientWidth-this.border);var availableHeight=Math.max(0,this.outline.container.clientHeight-this.border);var outlineScale=Math.min(availableWidth/completeWidth,availableHeight/completeHeight);var scale=outlineScale;if(scale>0){if(this.outline.getView().scale!=scale){this.outline.getView().scale=scale;revalidate=true;}var navView=this.outline.getView();if(navView.currentRoot!=this.source.getView().currentRoot){navView.setCurrentRoot(this.source.getView().currentRoot);}var t=this.source.view.translate;var tx=t.x+this.source.panDx;var ty=t.y+this.source.panDy;if(unscaledGraphBounds.x<0){tx=tx-unscaledGraphBounds.x;}if(unscaledGraphBounds.y<0){ty=ty-unscaledGraphBounds.y;}if(navView.translate.x!=tx||navView.translate.y!=ty){navView.translate.x=tx;navView.translate.y=ty;revalidate=true;}var t2=navView.translate;var scale=this.source.getView().scale;var scale2=scale/navView.scale;var scale3=1.0/navView.scale;var container=this.source.container;this.bounds=new mxRectangle((t2.x-t.x-this.source.panDx)/scale3,(t2.y-t.y-this.source.panDy)/scale3,(container.clientWidth/scale2),(container.clientHeight/scale2));this.bounds.x+=this.source.container.scrollLeft*navView.scale/scale;this.bounds.y+=this.source.container.scrollTop*navView.scale/scale;this.selectionBorder.bounds=this.bounds;this.selectionBorder.redraw();var b=this.sizer.bounds;this.sizer.bounds=new mxRectangle(this.bounds.x+this.bounds.width-b.width/2,this.bounds.y+this.bounds.height-b.height/2,b.width,b.height);this.sizer.redraw();if(revalidate){this.outline.view.revalidate();}}}};mxOutline.prototype.mouseDown=function(sender,me){if(this.enabled&&this.showViewport){this.zoom=me.isSource(this.sizer);this.startX=me.getX();this.startY=me.getY();this.active=true;if(this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)){this.dx0=this.source.container.scrollLeft;this.dy0=this.source.container.scrollTop;}else{this.dx0=0;this.dy0=0;}}me.consume();};mxOutline.prototype.mouseMove=function(sender,me){if(this.active){this.selectionBorder.node.style.display=(this.showViewport)?'':'none';this.sizer.node.style.display=this.selectionBorder.node.style.display;var dx=me.getX()-this.startX;var dy=me.getY()-this.startY;var bounds=null;if(!this.zoom){var scale=this.outline.getView().scale;bounds=new mxRectangle(this.bounds.x+dx,this.bounds.y+dy,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=bounds;this.selectionBorder.redraw();dx/=scale;dx*=this.source.getView().scale;dy/=scale;dy*=this.source.getView().scale;this.source.panGraph(-dx-this.dx0,-dy-this.dy0);}else{var container=this.source.container;var viewRatio=container.clientWidth/container.clientHeight;dy=dx/viewRatio;bounds=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+dx),Math.max(1,this.bounds.height+dy));this.selectionBorder.bounds=bounds;this.selectionBorder.redraw();}var b=this.sizer.bounds;this.sizer.bounds=new mxRectangle(bounds.x+bounds.width-b.width/2,bounds.y+bounds.height-b.height/2,b.width,b.height);this.sizer.redraw();me.consume();}};mxOutline.prototype.mouseUp=function(sender,me){if(this.active){var dx=me.getX()-this.startX;var dy=me.getY()-this.startY;if(Math.abs(dx)>0||Math.abs(dy)>0){if(!this.zoom){if(!this.source.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.source.container)){this.source.panGraph(0,0);dx/=this.outline.getView().scale;dy/=this.outline.getView().scale;var t=this.source.getView().translate;this.source.getView().setTranslate(t.x-dx,t.y-dy);}}else{var w=this.selectionBorder.bounds.width;var scale=this.source.getView().scale;this.source.getView().setScale(scale-(dx*scale)/w);}this.update();me.consume();}this.index=null;this.active=false;}};mxOutline.prototype.destroy=function(){if(this.source!=null){this.source.removeListener(this.panHandler);this.source.removeListener(this.refreshHandler);this.source.getModel().removeListener(this.updateHandler);this.source.getView().removeListener(this.updateHandler);mxEvent.addListener(this.source.container,'scroll',this.updateHandler);this.source=null;}if(this.outline!=null){this.outline.removeMouseListener(this);this.outline.destroy();this.outline=null;}if(this.selectionBorder!=null){this.selectionBorder.destroy();this.selectionBorder=null;}if(this.sizer!=null){this.sizer.destroy();this.sizer=null;}};function mxMultiplicity(source,type,attr,value,min,max,validNeighbors,countError,typeError,validNeighborsAllowed){this.source=source;this.type=type;this.attr=attr;this.value=value;this.min=(min!=null)?min:0;this.max=(max!=null)?max:'n';this.validNeighbors=validNeighbors;this.countError=mxResources.get(countError)||countError;this.typeError=mxResources.get(typeError)||typeError;this.validNeighborsAllowed=(validNeighborsAllowed!=null)?validNeighborsAllowed:true;};mxMultiplicity.prototype.type=null;mxMultiplicity.prototype.attr=null;mxMultiplicity.prototype.value=null;mxMultiplicity.prototype.source=null;mxMultiplicity.prototype.min=null;mxMultiplicity.prototype.max=null;mxMultiplicity.prototype.validNeighbors=null;mxMultiplicity.prototype.validNeighborsAllowed=true;mxMultiplicity.prototype.countError=null;mxMultiplicity.prototype.typeError=null;mxMultiplicity.prototype.check=function(graph,edge,source,target,sourceOut,targetIn){var error='';if((this.source&&this.checkTerminal(graph,source,edge))||(!this.source&&this.checkTerminal(graph,target,edge))){if(this.countError!=null&&((this.source&&(this.max==0||(sourceOut>=this.max)))||(!this.source&&(this.max==0||(targetIn>=this.max))))){error+=this.countError+'\n';}if(this.validNeighbors!=null&&this.typeError!=null&&this.validNeighbors.length>0){var isValid=this.checkNeighbors(graph,edge,source,target);if(!isValid){error+=this.typeError+'\n';}}}return(error.length>0)?error:null;};mxMultiplicity.prototype.checkNeighbors=function(graph,edge,source,target){var sourceValue=graph.model.getValue(source);var targetValue=graph.model.getValue(target);var isValid=!this.validNeighborsAllowed;var valid=this.validNeighbors;for(var j=0;j<valid.length;j++){if(this.source&&this.checkType(graph,targetValue,valid[j])){isValid=this.validNeighborsAllowed;break;}else if(!this.source&&this.checkType(graph,sourceValue,valid[j])){isValid=this.validNeighborsAllowed;break;}}return isValid;};mxMultiplicity.prototype.checkTerminal=function(graph,terminal,edge){var value=graph.model.getValue(terminal);return this.checkType(graph,value,this.type,this.attr,this.value);};mxMultiplicity.prototype.checkType=function(graph,value,type,attr,attrValue){if(value!=null){if(!isNaN(value.nodeType)) {return mxUtils.isNode(value,type,attr,attrValue);}else{return value==type;}}return false;};function mxLayoutManager(graph){this.undoHandler=mxUtils.bind(this,function(sender,evt){if(this.isEnabled()){this.beforeUndo(evt.getProperty('edit'));}});this.moveHandler=mxUtils.bind(this,function(sender,evt){if(this.isEnabled()){this.cellsMoved(evt.getProperty('cells'),evt.getProperty('event'));}});this.setGraph(graph);};mxLayoutManager.prototype=new mxEventSource();mxLayoutManager.prototype.constructor=mxLayoutManager;mxLayoutManager.prototype.graph=null;mxLayoutManager.prototype.bubbling=true;mxLayoutManager.prototype.enabled=true;mxLayoutManager.prototype.updateHandler=null;mxLayoutManager.prototype.moveHandler=null;mxLayoutManager.prototype.isEnabled=function(){return this.enabled;};mxLayoutManager.prototype.setEnabled=function(enabled){this.enabled=enabled;};mxLayoutManager.prototype.isBubbling=function(){return this.bubbling;};mxLayoutManager.prototype.setBubbling=function(value){this.bubbling=value;};mxLayoutManager.prototype.getGraph=function(){return this.graph;};mxLayoutManager.prototype.setGraph=function(graph){if(this.graph!=null){var model=this.graph.getModel();model.removeListener(this.undoHandler);this.graph.removeListener(this.moveHandler);}this.graph=graph;if(this.graph!=null){var model=this.graph.getModel();model.addListener(mxEvent.BEFORE_UNDO,this.undoHandler);this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler);}};mxLayoutManager.prototype.getLayout=function(parent){return null;};mxLayoutManager.prototype.beforeUndo=function(undoableEdit){var cells=this.getCellsForChanges(undoableEdit.changes);var model=this.getGraph().getModel();if(this.isBubbling()){var tmp=model.getParents(cells);while(tmp.length>0){cells=cells.concat(tmp);tmp=model.getParents(tmp);}}this.layoutCells(mxUtils.sortCells(cells,false));};mxLayoutManager.prototype.cellsMoved=function(cells,evt){if(cells!=null&&evt!=null){var point=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(evt),mxEvent.getClientY(evt));var model=this.getGraph().getModel();for(var i=0;i<cells.length;i++){var layout=this.getLayout(model.getParent(cells[i]));if(layout!=null){layout.moveCell(cells[i],point.x,point.y);}}}};mxLayoutManager.prototype.getCellsForChanges=function(changes){var result=[];var hash=new Object();for(var i=0;i<changes.length;i++){var change=changes[i];if(change instanceof mxRootChange){return[];}else{var cells=this.getCellsForChange(change);for(var j=0;j<cells.length;j++){if(cells[j]!=null){var id=mxCellPath.create(cells[j]);if(hash[id]==null){hash[id]=cells[j];result.push(cells[j]);}}}}}return result;};mxLayoutManager.prototype.getCellsForChange=function(change){var model=this.getGraph().getModel();if(change instanceof mxChildChange){return[change.child,change.previous,model.getParent(change.child)];}else if(change instanceof mxTerminalChange||change instanceof mxGeometryChange){return[change.cell,model.getParent(change.cell)];}return[];};mxLayoutManager.prototype.layoutCells=function(cells){if(cells.length>0){var model=this.getGraph().getModel();model.beginUpdate();try{var last=null;for(var i=0;i<cells.length;i++){if(cells[i]!=model.getRoot()&&cells[i]!=last){last=cells[i];this.executeLayout(this.getLayout(last),last);}}this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,'cells',cells));}finally{model.endUpdate();}}};mxLayoutManager.prototype.executeLayout=function(layout,parent){if(layout!=null&&parent!=null){layout.execute(parent);}};mxLayoutManager.prototype.destroy=function(){this.setGraph(null);};function mxSpaceManager(graph,shiftRightwards,shiftDownwards,extendParents){this.resizeHandler=mxUtils.bind(this,function(sender,evt){if(this.isEnabled()){this.cellsResized(evt.getProperty('cells'));}});this.foldHandler=mxUtils.bind(this,function(sender,evt){if(this.isEnabled()){this.cellsResized(evt.getProperty('cells'));}});this.shiftRightwards=(shiftRightwards!=null)?shiftRightwards:true;this.shiftDownwards=(shiftDownwards!=null)?shiftDownwards:true;this.extendParents=(extendParents!=null)?extendParents:true;this.setGraph(graph);};mxSpaceManager.prototype=new mxEventSource();mxSpaceManager.prototype.constructor=mxSpaceManager;mxSpaceManager.prototype.graph=null;mxSpaceManager.prototype.enabled=true;mxSpaceManager.prototype.shiftRightwards=true;mxSpaceManager.prototype.shiftDownwards=true;mxSpaceManager.prototype.extendParents=true;mxSpaceManager.prototype.resizeHandler=null;mxSpaceManager.prototype.foldHandler=null;mxSpaceManager.prototype.isCellIgnored=function(cell){return!this.getGraph().getModel().isVertex(cell);};mxSpaceManager.prototype.isCellShiftable=function(cell){return this.getGraph().getModel().isVertex(cell)&&this.getGraph().isCellMovable(cell);};mxSpaceManager.prototype.isEnabled=function(){return this.enabled;};mxSpaceManager.prototype.setEnabled=function(value){this.enabled=value;};mxSpaceManager.prototype.isShiftRightwards=function(){return this.shiftRightwards;};mxSpaceManager.prototype.setShiftRightwards=function(value){this.shiftRightwards=value;};mxSpaceManager.prototype.isShiftDownwards=function(){return this.shiftDownwards;};mxSpaceManager.prototype.setShiftDownwards=function(value){this.shiftDownwards=value;};mxSpaceManager.prototype.isExtendParents=function(){return this.extendParents;};mxSpaceManager.prototype.setExtendParents=function(value){this.extendParents=value;};mxSpaceManager.prototype.getGraph=function(){return this.graph;};mxSpaceManager.prototype.setGraph=function(graph){if(this.graph!=null){this.graph.removeListener(this.resizeHandler);this.graph.removeListener(this.foldHandler);}this.graph=graph;if(this.graph!=null){this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler);this.graph.addListener(mxEvent.FOLD_CELLS,this.foldHandler);}};mxSpaceManager.prototype.cellsResized=function(cells){if(cells!=null){var model=this.graph.getModel();model.beginUpdate();try{for(var i=0;i<cells.length;i++){if(!this.isCellIgnored(cells[i])){this.cellResized(cells[i]);break;}}}finally{model.endUpdate();}}};mxSpaceManager.prototype.cellResized=function(cell){var graph=this.getGraph();var view=graph.getView();var model=graph.getModel();var state=view.getState(cell);var pstate=view.getState(model.getParent(cell));if(state!=null&&pstate!=null){var cells=this.getCellsToShift(state);var geo=model.getGeometry(cell);if(cells!=null&&geo!=null){var tr=view.translate;var scale=view.scale;var x0=state.x-pstate.origin.x-tr.x*scale;var y0=state.y-pstate.origin.y-tr.y*scale;var right=state.x+state.width;var bottom=state.y+state.height;var dx=state.width-geo.width*scale+x0-geo.x*scale;var dy=state.height-geo.height*scale+y0-geo.y*scale;var fx=1-geo.width*scale/state.width;var fy=1-geo.height*scale/state.height;model.beginUpdate();try{for(var i=0;i<cells.length;i++){if(cells[i]!=cell&&this.isCellShiftable(cells[i])){this.shiftCell(cells[i],dx,dy,x0,y0,right,bottom,fx,fy,this.isExtendParents()&&graph.isExtendParent(cells[i]));}}}finally{model.endUpdate();}}}};mxSpaceManager.prototype.shiftCell=function(cell,dx,dy,Ox0,y0,right,bottom,fx,fy,extendParent){var graph=this.getGraph();var state=graph.getView().getState(cell);if(state!=null){var model=graph.getModel();var geo=model.getGeometry(cell);if(geo!=null){model.beginUpdate();try{if(this.isShiftRightwards()){if(state.x>=right){geo=geo.clone();geo.translate(-dx,0);}else{var tmpDx=Math.max(0,state.x-x0);geo=geo.clone();geo.translate(-fx*tmpDx,0);}}if(this.isShiftDownwards()){if(state.y>=bottom){geo=geo.clone();geo.translate(0,-dy);}else{var tmpDy=Math.max(0,state.y-y0);geo=geo.clone();geo.translate(0,-fy*tmpDy);}}if(geo!=model.getGeometry(cell)){model.setGeometry(cell,geo);if(extendParent){graph.extendParent(cell);}}}finally{model.endUpdate();}}}};mxSpaceManager.prototype.getCellsToShift=function(state){var graph=this.getGraph();var parent=graph.getModel().getParent(state.cell);var down=this.isShiftDownwards();var right=this.isShiftRightwards();return graph.getCellsBeyond(state.x+((down)?0:state.width),state.y+((down&&right)?0:state.height),parent,right,down);};mxSpaceManager.prototype.destroy=function(){this.setGraph(null);};function mxSwimlaneManager(graph,horizontal,addEnabled,resizeEnabled){this.horizontal=(horizontal!=null)?horizontal:true;this.addEnabled=(addEnabled!=null)?addEnabled:true;this.resizeEnabled=(resizeEnabled!=null)?resizeEnabled:true;this.addHandler=mxUtils.bind(this,function(sender,evt){if(this.isEnabled()&&this.isAddEnabled()){this.cellsAdded(evt.getProperty('cells'));}});this.resizeHandler=mxUtils.bind(this,function(sender,evt){if(this.isEnabled()&&this.isResizeEnabled()){this.cellsResized(evt.getProperty('cells'));}});this.setGraph(graph);};mxSwimlaneManager.prototype=new mxEventSource();mxSwimlaneManager.prototype.constructor=mxSwimlaneManager;mxSwimlaneManager.prototype.graph=null;mxSwimlaneManager.prototype.enabled=true;mxSwimlaneManager.prototype.horizontal=true;mxSwimlaneManager.prototype.addEnabled=true;mxSwimlaneManager.prototype.resizeEnabled=true;mxSwimlaneManager.prototype.addHandler=null;mxSwimlaneManager.prototype.resizeHandler=null;mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled;};mxSwimlaneManager.prototype.setEnabled=function(value){this.enabled=value;};mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal;};mxSwimlaneManager.prototype.setHorizontal=function(value){this.horizontal=value;};mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled;};mxSwimlaneManager.prototype.setAddEnabled=function(value){this.addEnabled=value;};mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled;};mxSwimlaneManager.prototype.setResizeEnabled=function(value){this.resizeEnabled=value;};mxSwimlaneManager.prototype.getGraph=function(){return this.graph;};mxSwimlaneManager.prototype.setGraph=function(graph){if(this.graph!=null){this.graph.removeListener(this.addHandler);this.graph.removeListener(this.resizeHandler);}this.graph=graph;if(this.graph!=null){this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler);this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler);}};mxSwimlaneManager.prototype.isSwimlaneIgnored=function(swimlane){return!this.getGraph().isSwimlane(swimlane);};mxSwimlaneManager.prototype.isCellHorizontal=function(cell){if(this.graph.isSwimlane(cell)){var state=this.graph.view.getState(cell);var style=(state!=null)?state.style:this.graph.getCellStyle(cell);return mxUtils.getValue(style,mxConstants.STYLE_HORIZONTAL,1)==1;}return!this.isHorizontal();};mxSwimlaneManager.prototype.cellsAdded=function(cells){if(cells!=null){var model=this.getGraph().getModel();model.beginUpdate();try{for(var i=0;i<cells.length;i++){if(!this.isSwimlaneIgnored(cells[i])){this.swimlaneAdded(cells[i]);}}}finally{model.endUpdate();}}};mxSwimlaneManager.prototype.swimlaneAdded=function(swimlane){var model=this.getGraph().getModel();var parent=model.getParent(swimlane);var childCount=model.getChildCount(parent);var geo=null;for(var i=0;i<childCount;i++){var child=model.getChildAt(parent,i);if(child!=swimlane&&!this.isSwimlaneIgnored(child)){geo=model.getGeometry(child);if(geo!=null){break;}}}if(geo!=null){this.resizeSwimlane(swimlane,geo.width,geo.height);}};mxSwimlaneManager.prototype.cellsResized=function(cells){if(cells!=null){var model=this.getGraph().getModel();model.beginUpdate();try{for(var i=0;i<cells.length;i++){if(!this.isSwimlaneIgnored(cells[i])){var geo=model.getGeometry(cells[i]);if(geo!=null){var size=new mxRectangle(0,0,geo.width,geo.height);var top=cells[i];var current=top;while(current!=null){top=current;current=model.getParent(current);var tmp=(this.graph.isSwimlane(current))?this.graph.getStartSize(current):new mxRectangle();size.width+=tmp.width;size.height+=tmp.height;}this.resizeSwimlane(top,size.width,size.height);}}}}finally{model.endUpdate();}}};mxSwimlaneManager.prototype.resizeSwimlane=function(swimlane,w,h){var model=this.getGraph().getModel();model.beginUpdate();try{if(!this.isSwimlaneIgnored(swimlane)){var geo=model.getGeometry(swimlane);if(geo!=null){var horizontal=this.isCellHorizontal(swimlane);if((horizontal&&geo.height!=h)||(!horizontal&&geo.width!=w)){geo=geo.clone();if(horizontal){geo.height=h;}else{geo.width=w;}model.setGeometry(swimlane,geo);}}}var tmp=(this.graph.isSwimlane(swimlane))?this.graph.getStartSize(swimlane):new mxRectangle();w-=tmp.width;h-=tmp.height;var childCount=model.getChildCount(swimlane);for(var i=0;i<childCount;i++){var child=model.getChildAt(swimlane,i);this.resizeSwimlane(child,w,h);}}finally{model.endUpdate();}};mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null);};function mxTemporaryCellStates(view,scale,cells){this.view=view;scale=(scale!=null)?scale:1;this.oldBounds=view.getGraphBounds();this.oldStates=view.getStates();this.oldScale=view.getScale();view.setStates(new mxDictionary());view.setScale(scale);if(cells!=null){var state=view.createState(new mxCell());for(var i=0;i<cells.length;i++){view.validateBounds(state,cells[i]);}var bbox=null;for(var i=0;i<cells.length;i++){var bounds=view.validatePoints(state,cells[i]);if(bbox==null){bbox=bounds;}else{bbox.add(bounds);}}if(bbox==null){bbox=new mxRectangle();}view.setGraphBounds(bbox);}};mxTemporaryCellStates.prototype.view=null;mxTemporaryCellStates.prototype.oldStates=null;mxTemporaryCellStates.prototype.oldBounds=null;mxTemporaryCellStates.prototype.oldScale=null;mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale);this.view.setStates(this.oldStates);this.view.setGraphBounds(this.oldBounds);};function mxCellStatePreview(graph){this.graph=graph;this.deltas=new Object();};mxCellStatePreview.prototype.graph=null;mxCellStatePreview.prototype.deltas=null;mxCellStatePreview.prototype.count=0;mxCellStatePreview.prototype.isEmpty=function(){return this.count==0;};mxCellStatePreview.prototype.moveState=function(state,dx,dy,add,includeEdges){add=(add!=null)?add:true;includeEdges=(includeEdges!=null)?includeEdges:true;var id=mxCellPath.create(state.cell);var delta=this.deltas[id];if(delta==null){delta=new mxPoint(dx,dy);this.deltas[id]=delta;this.count++;}else{if(add){delta.X+=dx;delta.Y+=dy;}else{delta.X=dx;delta.Y=dy;}}if(includeEdges){this.addEdges(state);}return delta;};mxCellStatePreview.prototype.show=function(visitor){var model=this.graph.getModel();var root=model.getRoot();for(var id in this.deltas){var cell=mxCellPath.resolve(root,id);var state=this.graph.view.getState(cell);var delta=this.deltas[id];var parentState=this.graph.view.getState(model.getParent(cell));this.translateState(parentState,state,delta.x,delta.y);}for(var id in this.deltas){var cell=mxCellPath.resolve(root,id);var state=this.graph.view.getState(cell);var delta=this.deltas[id];var parentState=this.graph.view.getState(model.getParent(cell));this.revalidateState(parentState,state,delta.x,delta.y,visitor);}};mxCellStatePreview.prototype.translateState=function(parentState,state,dx,dy){if(state!=null){var model=this.graph.getModel();if(model.isVertex(state.cell)){state.invalid=true;this.graph.view.validateBounds(parentState,state.cell);var geo=model.getGeometry(state.cell);var id=mxCellPath.create(state.cell);if((dx!=0||dy!=0)&&geo!=null&&(!geo.relative||this.deltas[id]!=null)){state.x+=dx;state.y+=dy;}}var childCount=model.getChildCount(state.cell);for(var i=0;i<childCount;i++){this.translateState(state,this.graph.view.getState(model.getChildAt(state.cell,i)),dx,dy);}}};mxCellStatePreview.prototype.revalidateState=function(parentState,state,dx,dy,visitor){if(state!=null){state.invalid=true;this.graph.view.validatePoints(parentState,state.cell);var id=mxCellPath.create(state.cell);var model=this.graph.getModel();var geo=this.graph.getCellGeometry(state.cell);if((dx!=0||dy!=0)&&geo!=null&&geo.relative&&model.isVertex(state.cell)&&(parentState==null||model.isVertex(parentState.cell)||this.deltas[id]!=null)){state.x+=dx;state.y+=dy;this.graph.view.updateLabelBounds(state);this.graph.cellRenderer.redraw(state);}if(visitor!=null){visitor(state);}var childCount=model.getChildCount(state.cell);for(var i=0;i<childCount;i++){this.revalidateState(state,this.graph.view.getState(model.getChildAt(state.cell,i)),dx,dy,visitor);}}};mxCellStatePreview.prototype.addEdges=function(state){var model=this.graph.getModel();var edgeCount=model.getEdgeCount(state.cell);for(var i=0;i<edgeCount;i++){var s=this.graph.view.getState(model.getEdgeAt(state.cell,i));if(s!=null){this.moveState(s,0,0);}}};function mxConnectionConstraint(point,perimeter){this.point=point;this.perimeter=(perimeter!=null)?perimeter:true;};mxConnectionConstraint.prototype.point=null;mxConnectionConstraint.prototype.perimeter=null;function mxGraphHandler(graph){this.graph=graph;this.graph.addMouseListener(this);this.panHandler=mxUtils.bind(this,function(){this.updatePreviewShape();});this.graph.addListener(mxEvent.PAN,this.panHandler);};mxGraphHandler.prototype.graph=null;mxGraphHandler.prototype.maxCells=(mxClient.IS_IE)?20:50;mxGraphHandler.prototype.enabled=true;mxGraphHandler.prototype.highlightEnabled=true;mxGraphHandler.prototype.cloneEnabled=true;mxGraphHandler.prototype.moveEnabled=true;mxGraphHandler.prototype.guidesEnabled=false;mxGraphHandler.prototype.guide=null;mxGraphHandler.prototype.currentDx=null;mxGraphHandler.prototype.currentDy=null;mxGraphHandler.prototype.updateCursor=true;mxGraphHandler.prototype.selectEnabled=true;mxGraphHandler.prototype.removeCellsFromParent=true;mxGraphHandler.prototype.connectOnDrop=false;mxGraphHandler.prototype.scrollOnMove=true;mxGraphHandler.prototype.minimumSize=6;mxGraphHandler.prototype.previewColor='black';mxGraphHandler.prototype.htmlPreview=false;mxGraphHandler.prototype.shape=null;mxGraphHandler.prototype.scaleGrid=false;mxGraphHandler.prototype.crisp=true;mxGraphHandler.prototype.isEnabled=function(){return this.enabled;};mxGraphHandler.prototype.setEnabled=function(value){this.enabled=value;};mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled;};mxGraphHandler.prototype.setCloneEnabled=function(value){this.cloneEnabled=value;};mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled;};mxGraphHandler.prototype.setMoveEnabled=function(value){this.moveEnabled=value;};mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled;};mxGraphHandler.prototype.setSelectEnabled=function(value){this.selectEnabled=value;};mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent;};mxGraphHandler.prototype.setRemoveCellsFromParent=function(value){this.removeCellsFromParent=value;};mxGraphHandler.prototype.getInitialCellForEvent=function(me){return me.getCell();};mxGraphHandler.prototype.isDelayedSelection=function(cell){return this.graph.isCellSelected(cell);};mxGraphHandler.prototype.mouseDown=function(sender,me){if(!me.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(me.getEvent())&&me.getState()!=null){var cell=this.getInitialCellForEvent(me);this.cell=null;this.delayedSelection=this.isDelayedSelection(cell);if(this.isSelectEnabled()&&!this.delayedSelection){this.graph.selectCellForEvent(cell,me.getEvent());}if(this.isMoveEnabled()){var model=this.graph.model;var geo=model.getGeometry(cell);if(this.graph.isCellMovable(cell)&&((!model.isEdge(cell)||this.graph.getSelectionCount()>1||(geo.points!=null&&geo.points.length>0)||model.getTerminal(cell,true)==null||model.getTerminal(cell,false)==null)||this.graph.allowDanglingEdges||(this.graph.isCloneEvent(me.getEvent())&&this.graph.isCellsCloneable()))){this.start(cell,me.getX(),me.getY());}this.cellWasClicked=true;if((!mxClient.IS_SF&&!mxClient.IS_GC)||me.getSource().nodeName!='SELECT'){me.consume();}else if(mxClient.IS_SF&&me.getSource().nodeName=='SELECT'){this.cellWasClicked=false;this.first=null;}}}};mxGraphHandler.prototype.getGuideStates=function(){var parent=this.graph.getDefaultParent();var model=this.graph.getModel();var filter=mxUtils.bind(this,function(cell){return this.graph.view.getState(cell)!=null&&model.isVertex(cell)&&model.getGeometry(cell)!=null&&!model.getGeometry(cell).relative;});return this.graph.view.getCellStates(model.filterDescendants(filter,parent));};mxGraphHandler.prototype.getCells=function(initialCell){if(!this.delayedSelection&&this.graph.isCellMovable(initialCell)){return[initialCell];}else{return this.graph.getMovableCells(this.graph.getSelectionCells());}};mxGraphHandler.prototype.getPreviewBounds=function(cells){var bounds=this.graph.getView().getBounds(cells);if(bounds!=null){if(bounds.width<this.minimumSize){var dx=this.minimumSize-bounds.width;bounds.x-=dx/2;bounds.width=this.minimumSize;}if(bounds.height<this.minimumSize){var dy=this.minimumSize-bounds.height;bounds.y-=dy/2;bounds.height=this.minimumSize;}}return bounds;};mxGraphHandler.prototype.createPreviewShape=function(bounds){var shape=new mxRectangleShape(bounds,null,this.previewColor);shape.isDashed=true;shape.crisp=this.crisp;if(this.htmlPreview){shape.dialect=mxConstants.DIALECT_STRICTHTML;shape.init(this.graph.container);}else{shape.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;shape.init(this.graph.getView().getOverlayPane());if(shape.dialect==mxConstants.DIALECT_SVG){shape.node.setAttribute('style','pointer-events:none;');}else{shape.node.style.background='';}}return shape;};mxGraphHandler.prototype.start=function(cell,x,y){this.cell=cell;this.first=mxUtils.convertPoint(this.graph.container,x,y);this.cells=this.getCells(this.cell);this.bounds=this.getPreviewBounds(this.cells);if(this.guidesEnabled){this.guide=new mxGuide(this.graph,this.getGuideStates());}};mxGraphHandler.prototype.useGuidesForEvent=function(me){return(this.guide!=null)?this.guide.isEnabledForEvent(me.getEvent()):true;};mxGraphHandler.prototype.snap=function(vector){var scale=(this.scaleGrid)?this.graph.view.scale:1;vector.x=this.graph.snap(vector.x/scale)*scale;vector.y=this.graph.snap(vector.y/scale)*scale;return vector;};mxGraphHandler.prototype.mouseMove=function(sender,me){var graph=this.graph;if(!me.isConsumed()&&graph.isMouseDown&&this.cell!=null&&this.first!=null&&this.bounds!=null){var point=mxUtils.convertPoint(graph.container,me.getX(),me.getY());var dx=point.x-this.first.x;var dy=point.y-this.first.y;var tol=graph.tolerance;if(this.shape!=null||Math.abs(dx)>tol||Math.abs(dy)>tol){if(this.highlight==null){this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3);}if(this.shape==null){this.shape=this.createPreviewShape(this.bounds);}var gridEnabled=graph.isGridEnabledEvent(me.getEvent());var hideGuide=true;if(this.guide!=null&&this.useGuidesForEvent(me)){var delta=this.guide.move(this.bounds,new mxPoint(dx,dy),gridEnabled);hideGuide=false;dx=delta.x;dy=delta.y;}else if(gridEnabled){var trx=graph.getView().translate;var scale=graph.getView().scale;var tx=this.bounds.x-(graph.snap(this.bounds.x/scale-trx.x)+trx.x)*scale;var ty=this.bounds.y-(graph.snap(this.bounds.y/scale-trx.y)+trx.y)*scale;var v=this.snap(new mxPoint(dx,dy));dx=v.x-tx;dy=v.y-ty;}if(this.guide!=null&&hideGuide){this.guide.hide();}if(graph.isConstrainedEvent(me.getEvent())){if(Math.abs(dx)>Math.abs(dy)){dy=0;}else{dx=0;}}this.currentDx=dx;this.currentDy=dy;this.updatePreviewShape();var target=null;var cell=me.getCell();if(graph.isDropEnabled()&&this.highlightEnabled){target=graph.getDropTarget(this.cells,me.getEvent(),cell);}var parent=target;var model=graph.getModel();while(parent!=null&&parent!=this.cells[0]){parent=model.getParent(parent);}var clone=graph.isCloneEvent(me.getEvent())&&graph.isCellsCloneable()&&this.isCloneEnabled();var state=graph.getView().getState(target);var highlight=false;if(state!=null&&parent==null&&(model.getParent(this.cell)!=target||clone)){if(this.target!=target){this.target=target;this.setHighlightColor(mxConstants.DROP_TARGET_COLOR);}highlight=true;}else{this.target=null;if(this.connectOnDrop&&cell!=null&&this.cells.length==1&&graph.getModel().isVertex(cell)&&graph.isCellConnectable(cell)){state=graph.getView().getState(cell);if(state!=null){var error=graph.getEdgeValidationError(null,this.cell,cell);var color=(error==null)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR;this.setHighlightColor(color);highlight=true;}}}if(state!=null&&highlight){this.highlight.highlight(state);}else{this.highlight.hide();}}me.consume();mxEvent.consume(me.getEvent());}else if((this.isMoveEnabled()||this.isCloneEnabled())&&this.updateCursor&&!me.isConsumed()&&me.getState()!=null&&!graph.isMouseDown){var cursor=graph.getCursorForCell(me.getCell());if(cursor==null&&graph.isEnabled()&&graph.isCellMovable(me.getCell())){if(graph.getModel().isEdge(me.getCell())){cursor=mxConstants.CURSOR_MOVABLE_EDGE;}else{cursor=mxConstants.CURSOR_MOVABLE_VERTEX;}}me.getState().setCursor(cursor);me.consume();}};mxGraphHandler.prototype.updatePreviewShape=function(){if(this.shape!=null){this.shape.bounds=new mxRectangle(this.bounds.x+this.currentDx-this.graph.panDx,this.bounds.y+this.currentDy-this.graph.panDy,this.bounds.width,this.bounds.height);this.shape.redraw();}};mxGraphHandler.prototype.setHighlightColor=function(color){if(this.highlight!=null){this.highlight.setHighlightColor(color);}};mxGraphHandler.prototype.mouseUp=function(sender,me){if(!me.isConsumed()){var graph=this.graph;if(this.cell!=null&&this.first!=null&&this.shape!=null&&this.currentDx!=null&&this.currentDy!=null){var scale=graph.getView().scale;var clone=graph.isCloneEvent(me.getEvent())&&graph.isCellsCloneable()&&this.isCloneEnabled();var dx=this.currentDx/scale;var dy=this.currentDy/scale;var cell=me.getCell();if(this.connectOnDrop&&this.target==null&&cell!=null&&graph.getModel().isVertex(cell)&&graph.isCellConnectable(cell)&&graph.isEdgeValid(null,this.cell,cell)){graph.connectionHandler.connect(this.cell,cell,me.getEvent());}else{var target=this.target;if(graph.isSplitEnabled()&&graph.isSplitTarget(target,this.cells,me.getEvent())){graph.splitEdge(target,this.cells,null,dx,dy);}else{this.moveCells(this.cells,dx,dy,clone,this.target,me.getEvent());}}}else if(this.isSelectEnabled()&&this.delayedSelection&&this.cell!=null){this.selectDelayed(me);}}if(this.cellWasClicked){me.consume();}this.reset();};mxGraphHandler.prototype.selectDelayed=function(me){this.graph.selectCellForEvent(this.cell,me.getEvent());};mxGraphHandler.prototype.reset=function(){this.destroyShapes();this.cellWasClicked=false;this.delayedSelection=false;this.currentDx=null;this.currentDy=null;this.guides=null;this.first=null;this.cell=null;this.target=null;};mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(parent,cells,evt){if(this.graph.getModel().isVertex(parent)){var pState=this.graph.getView().getState(parent);var pt=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(evt),mxEvent.getClientY(evt));return pState!=null&&!mxUtils.contains(pState,pt.x,pt.y);}return false;};mxGraphHandler.prototype.moveCells=function(cells,dx,dy,clone,target,evt){if(clone){cells=this.graph.getCloneableCells(cells);}if(target==null&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),cells,evt)){target=this.graph.getDefaultParent();}cells=this.graph.moveCells(cells,dx-this.graph.panDx/this.graph.view.scale,dy-this.graph.panDy/this.graph.view.scale,clone,target,evt);if(this.isSelectEnabled()&&this.scrollOnMove){this.graph.scrollCellToVisible(cells[0]);}if(clone){this.graph.setSelectionCells(cells);}};mxGraphHandler.prototype.destroyShapes=function(){if(this.shape!=null){this.shape.destroy();this.shape=null;}if(this.guide!=null){this.guide.destroy();this.guide=null;}if(this.highlight!=null){this.highlight.destroy();this.highlight=null;}};mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);this.destroyShapes();};function mxPanningHandler(graph,factoryMethod){if(graph!=null){this.graph=graph;this.factoryMethod=factoryMethod;this.graph.addMouseListener(this);this.init();}};mxPanningHandler.prototype=new mxPopupMenu();mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.usePopupTrigger=true;mxPanningHandler.prototype.useLeftButtonForPanning=false;mxPanningHandler.prototype.selectOnPopup=true;mxPanningHandler.prototype.clearSelectionOnBackground=true;mxPanningHandler.prototype.ignoreCell=false;mxPanningHandler.prototype.previewEnabled=true;mxPanningHandler.prototype.useGrid=false;mxPanningHandler.prototype.panningEnabled=true;mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled;};mxPanningHandler.prototype.setPanningEnabled=function(value){this.panningEnabled=value;};mxPanningHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this);mxEvent.addListener(this.div,(mxClient.IS_TOUCH)?'touchmove':'mousemove',mxUtils.bind(this,function(evt){this.graph.tooltipHandler.hide();}));};mxPanningHandler.prototype.isPanningTrigger=function(me){var evt=me.getEvent();return(this.useLeftButtonForPanning&&(this.ignoreCell||me.getState()==null)&&mxEvent.isLeftMouseButton(evt))||(mxEvent.isControlDown(evt)&&mxEvent.isShiftDown(evt))||(this.usePopupTrigger&&mxEvent.isPopupTrigger(evt));};mxPanningHandler.prototype.mouseDown=function(sender,me){if(!me.isConsumed()&&this.isEnabled()){this.hideMenu();this.dx0=-this.graph.container.scrollLeft;this.dy0=-this.graph.container.scrollTop;this.popupTrigger=this.isPopupTrigger(me);this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(me);this.startX=me.getX();this.startY=me.getY();if(this.panningTrigger){me.consume();}}};mxPanningHandler.prototype.mouseMove=function(sender,me){var dx=me.getX()-this.startX;var dy=me.getY()-this.startY;if(this.active){if(this.previewEnabled){if(this.useGrid){dx=this.graph.snap(dx);dy=this.graph.snap(dy);}this.graph.panGraph(dx+this.dx0,dy+this.dy0);}this.fireEvent(new mxEventObject(mxEvent.PAN,'event',me));me.consume();}else if(this.panningTrigger){var tmp=this.active;this.active=Math.abs(dx)>this.graph.tolerance||Math.abs(dy)>this.graph.tolerance;if(!tmp&&this.active){this.fireEvent(new mxEventObject(mxEvent.PAN_START,'event',me));}}};mxPanningHandler.prototype.mouseUp=function(sender,me){var dx=Math.abs(me.getX()-this.startX);var dy=Math.abs(me.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){dx=me.getX()-this.startX;dy=me.getY()-this.startY;if(this.useGrid){dx=this.graph.snap(dx);dy=this.graph.snap(dy);}var scale=this.graph.getView().scale;var t=this.graph.getView().translate;this.graph.panGraph(0,0);this.panGraph(t.x+dx/scale,t.y+dy/scale);}this.active=false;this.fireEvent(new mxEventObject(mxEvent.PAN_END,'event',me));me.consume();}else if(this.popupTrigger){if(dx<this.graph.tolerance&&dy<this.graph.tolerance){var cell=this.getCellForPopupEvent(me);if(this.graph.isEnabled()&&this.selectOnPopup&&cell!=null&&!this.graph.isCellSelected(cell)){this.graph.setSelectionCell(cell);}else if(this.clearSelectionOnBackground&&cell==null){this.graph.clearSelection();}this.graph.tooltipHandler.hide();var origin=mxUtils.getScrollOrigin();var point=new mxPoint(me.getX()+origin.x,me.getY()+origin.y);this.popup(point.x+1,point.y+1,cell,me.getEvent());me.consume();}}this.panningTrigger=false;this.popupTrigger=false;};mxPanningHandler.prototype.getCellForPopupEvent=function(me){return me.getCell();};mxPanningHandler.prototype.panGraph=function(dx,dy){this.graph.getView().setTranslate(dx,dy);};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);mxPopupMenu.prototype.destroy.apply(this);};function mxCellMarker(graph,validColor,invalidColor,hotspot){if(graph!=null){this.graph=graph;this.validColor=(validColor!=null)?validColor:mxConstants.DEFAULT_VALID_COLOR;this.invalidColor=(validColor!=null)?invalidColor:mxConstants.DEFAULT_INVALID_COLOR;this.hotspot=(hotspot!=null)?hotspot:mxConstants.DEFAULT_HOTSPOT;this.highlight=new mxCellHighlight(graph);}};mxCellMarker.prototype=new mxEventSource();mxCellMarker.prototype.constructor=mxCellMarker;mxCellMarker.prototype.graph=null;mxCellMarker.prototype.enabled=true;mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT;mxCellMarker.prototype.hotspotEnabled=false;mxCellMarker.prototype.validColor=null;mxCellMarker.prototype.invalidColor=null;mxCellMarker.prototype.currentColor=null;mxCellMarker.prototype.validState=null;mxCellMarker.prototype.markedState=null;mxCellMarker.prototype.setEnabled=function(enabled){this.enabled=enabled;};mxCellMarker.prototype.isEnabled=function(){return this.enabled;};mxCellMarker.prototype.setHotspot=function(hotspot){this.hotspot=hotspot;};mxCellMarker.prototype.getHotspot=function(){return this.hotspot;};mxCellMarker.prototype.setHotspotEnabled=function(enabled){this.hotspotEnabled=enabled;};mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled;};mxCellMarker.prototype.hasValidState=function(){return this.validState!=null;};mxCellMarker.prototype.getValidState=function(){return this.validState;};mxCellMarker.prototype.getMarkedState=function(){return this.markedState;};mxCellMarker.prototype.reset=function(){this.validState=null;if(this.markedState!=null){this.markedState=null;this.unmark();}};mxCellMarker.prototype.process=function(me){var state=null;if(this.isEnabled()){state=this.getState(me);var isValid=(state!=null)?this.isValidState(state):false;var color=this.getMarkerColor(me.getEvent(),state,isValid);if(isValid){this.validState=state;}else{this.validState=null;}if(state!=this.markedState||color!=this.currentColor){this.currentColor=color;if(state!=null&&this.currentColor!=null){this.markedState=state;this.mark();}else if(this.markedState!=null){this.markedState=null;this.unmark();}}}return state;};mxCellMarker.prototype.markCell=function(cell,color){var state=this.graph.getView().getState(cell);if(state!=null){this.currentColor=(color!=null)?color:this.validColor;this.markedState=state;this.mark();}};mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor);this.highlight.highlight(this.markedState);this.fireEvent(new mxEventObject(mxEvent.MARK,'state',this.markedState));};mxCellMarker.prototype.unmark=function(){this.mark();};mxCellMarker.prototype.isValidState=function(state){return true;};mxCellMarker.prototype.getMarkerColor=function(evt,state,isValid){return(isValid)?this.validColor:this.invalidColor;};mxCellMarker.prototype.getState=function(me){var view=this.graph.getView();cell=this.getCell(me);var state=this.getStateToMark(view.getState(cell));return(state!=null&&this.intersects(state,me))?state:null;};mxCellMarker.prototype.getCell=function(me){return me.getCell();};mxCellMarker.prototype.getStateToMark=function(state){return state;};mxCellMarker.prototype.intersects=function(state,me){if(this.hotspotEnabled){return mxUtils.intersectsHotspot(state,me.getGraphX(),me.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE);}return true;};mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler);this.graph.getModel().removeListener(this.resetHandler);this.highlight.destroy();};function mxSelectionCellsHandler(graph){this.graph=graph;this.handlers=new mxDictionary();this.graph.addMouseListener(this);this.refreshHandler=mxUtils.bind(this,function(sender,evt){if(this.graph.isEnabled()){this.refresh();}});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler);this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler);this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler);this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler);this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler);this.graph.getView().addListener(mxEvent.UP,this.refreshHandler);};mxSelectionCellsHandler.prototype.graph=null;mxSelectionCellsHandler.prototype.enabled=true;mxSelectionCellsHandler.prototype.refreshHandler=null;mxSelectionCellsHandler.prototype.maxHandlers=100;mxSelectionCellsHandler.prototype.handlers=null;mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled;};mxSelectionCellsHandler.prototype.setEnabled=function(value){this.enabled=value;};mxSelectionCellsHandler.prototype.getHandler=function(cell){return this.handlers.get(cell);};mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit(function(key,handler){handler.reset.apply(handler);});};mxSelectionCellsHandler.prototype.refresh=function(){var oldHandlers=this.handlers;this.handlers=new mxDictionary();var tmp=this.graph.getSelectionCells();for(var i=0;i<tmp.length;i++){var state=this.graph.view.getState(tmp[i]);if(state!=null){var handler=oldHandlers.remove(tmp[i]);if(handler!=null){if(handler.state!=state){handler.destroy();handler=null;}else{handler.redraw();}}if(handler==null){handler=this.graph.createHandler(state);}if(handler!=null){this.handlers.put(tmp[i],handler);}}}oldHandlers.visit(function(key,handler){handler.destroy();});};mxSelectionCellsHandler.prototype.mouseDown=function(sender,me){if(this.graph.isEnabled()&&this.isEnabled()){var args=[sender,me];this.handlers.visit(function(key,handler){handler.mouseDown.apply(handler,args);});}};mxSelectionCellsHandler.prototype.mouseMove=function(sender,me){if(this.graph.isEnabled()&&this.isEnabled()){var args=[sender,me];this.handlers.visit(function(key,handler){handler.mouseMove.apply(handler,args);});}};mxSelectionCellsHandler.prototype.mouseUp=function(sender,me){if(this.graph.isEnabled()&&this.isEnabled()){var args=[sender,me];this.handlers.visit(function(key,handler){handler.mouseUp.apply(handler,args);});}};mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);if(this.refreshHandler!=null){this.graph.getSelectionModel().removeListener(this.refreshHandler);this.graph.getModel().removeListener(this.refreshHandler);this.graph.getView().removeListener(this.refreshHandler);this.refreshHandler=null;}};function mxConnectionHandler(graph,factoryMethod){if(graph!=null){this.graph=graph;this.factoryMethod=factoryMethod;this.init();}};mxConnectionHandler.prototype=new mxEventSource();mxConnectionHandler.prototype.constructor=mxConnectionHandler;mxConnectionHandler.prototype.graph=null;mxConnectionHandler.prototype.factoryMethod=true;mxConnectionHandler.prototype.moveIconFront=false;mxConnectionHandler.prototype.moveIconBack=false;mxConnectionHandler.prototype.connectImage=null;mxConnectionHandler.prototype.targetConnectImage=false;mxConnectionHandler.prototype.enabled=true;mxConnectionHandler.prototype.select=true;mxConnectionHandler.prototype.createTarget=false;mxConnectionHandler.prototype.marker=null;mxConnectionHandler.prototype.constraintHandler=null;mxConnectionHandler.prototype.error=null;mxConnectionHandler.prototype.waypointsEnabled=false;mxConnectionHandler.prototype.tapAndHoldEnabled=true;mxConnectionHandler.prototype.tapAndHoldDelay=500;mxConnectionHandler.prototype.tapAndHoldInProgress=false;mxConnectionHandler.prototype.tapAndHoldValid=false;mxConnectionHandler.prototype.tapAndHoldTolerance=4;mxConnectionHandler.prototype.initialTouchY=0;mxConnectionHandler.prototype.initialTouchY=0;mxConnectionHandler.prototype.ignoreMouseDown=false;mxConnectionHandler.prototype.first=null;mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET);mxConnectionHandler.prototype.edgeState=null;mxConnectionHandler.prototype.changeHandler=null;mxConnectionHandler.prototype.drillHandler=null;mxConnectionHandler.prototype.mouseDownCounter=0;mxConnectionHandler.prototype.movePreviewAway=mxClient.IS_IE;mxConnectionHandler.prototype.isEnabled=function(){return this.enabled;};mxConnectionHandler.prototype.setEnabled=function(enabled){this.enabled=enabled;};mxConnectionHandler.prototype.isCreateTarget=function(){return this.createTarget;};mxConnectionHandler.prototype.setCreateTarget=function(value){this.createTarget=value;};mxConnectionHandler.prototype.createShape=function(){var shape=new mxPolyline([],mxConstants.INVALID_COLOR);shape.isDashed=true;shape.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;shape.init(this.graph.getView().getOverlayPane());if(this.graph.dialect==mxConstants.DIALECT_SVG){shape.pipe.setAttribute('style','pointer-events:none;');shape.innerNode.setAttribute('style','pointer-events:none;');}else{var getState=mxUtils.bind(this,function(evt){var pt=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(evt),mxEvent.getClientY(evt));return this.graph.view.getState(this.graph.getCellAt(pt.x,pt.y));});mxEvent.redirectMouseEvents(shape.node,this.graph,getState);}return shape;};mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this);this.marker=this.createMarker();this.constraintHandler=new mxConstraintHandler(this.graph);this.changeHandler=mxUtils.bind(this,function(sender){if(this.iconState!=null){this.iconState=this.graph.getView().getState(this.iconState.cell);}if(this.iconState!=null){this.redrawIcons(this.icons,this.iconState);}else{this.destroyIcons(this.icons);this.previous=null;}this.constraintHandler.reset();});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler);this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler);this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler);this.drillHandler=mxUtils.bind(this,function(sender){this.destroyIcons(this.icons);});this.graph.addListener(mxEvent.START_EDITING,this.drillHandler);this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler);this.graph.getView().addListener(mxEvent.UP,this.drillHandler);};mxConnectionHandler.prototype.isConnectableCell=function(cell){return true;};mxConnectionHandler.prototype.createMarker=function(){var marker=new mxCellMarker(this.graph);marker.hotspotEnabled=true;marker.getCell=mxUtils.bind(this,function(evt,cell){var cell=mxCellMarker.prototype.getCell.apply(marker,arguments);this.error=null;if(!this.isConnectableCell(cell)){return null;}if(cell!=null){if(this.isConnecting()){if(this.previous!=null){this.error=this.validateConnection(this.previous.cell,cell);if(this.error!=null&&this.error.length==0){cell=null;if(this.isCreateTarget()){this.error=null;}}}}else if(!this.isValidSource(cell)){cell=null;}}else if(this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges){this.error='';}return cell;});marker.isValidState=mxUtils.bind(this,function(state){if(this.isConnecting()){return this.error==null;}else{return mxCellMarker.prototype.isValidState.apply(marker,arguments);}});marker.getMarkerColor=mxUtils.bind(this,function(evt,state,isValid){return(this.connectImage==null||this.isConnecting())?mxCellMarker.prototype.getMarkerColor.apply(marker,arguments):null;});marker.intersects=mxUtils.bind(this,function(state,evt){if(this.connectImage!=null||this.isConnecting()){return true;}return mxCellMarker.prototype.intersects.apply(marker,arguments);});return marker;};mxConnectionHandler.prototype.start=function(state,x,y,edgeState){this.previous=state;this.first=new mxPoint(x,y);this.edgeState=(edgeState!=null)?edgeState:this.createEdgeState(null);this.marker.currentColor=this.marker.validColor;this.marker.markedState=state;this.marker.mark();};mxConnectionHandler.prototype.isConnecting=function(){return this.first!=null&&this.shape!=null;};mxConnectionHandler.prototype.isValidSource=function(cell){return this.graph.isValidSource(cell);};mxConnectionHandler.prototype.isValidTarget=function(cell){return true;};mxConnectionHandler.prototype.validateConnection=function(source,target){if(!this.isValidTarget(target)){return '';}return this.graph.getEdgeValidationError(null,source,target);};mxConnectionHandler.prototype.getConnectImage=function(state){return this.connectImage;};mxConnectionHandler.prototype.isMoveIconToFrontForState=function(state){if(state.text!=null&&state.text.node.parentNode==this.graph.container){return true;}return this.moveIconFront;};mxConnectionHandler.prototype.createIcons=function(state){var image=this.getConnectImage(state);if(image!=null&&state!=null){this.iconState=state;var icons=[];var bounds=new mxRectangle(0,0,image.width,image.height);var icon=new mxImageShape(bounds,image.src,null,null,0);icon.preserveImageAspect=false;if(this.isMoveIconToFrontForState(state)){icon.dialect=mxConstants.DIALECT_STRICTHTML;icon.init(this.graph.container);}else{icon.dialect=(this.graph.dialect==mxConstants.DIALECT_SVG)?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;icon.init(this.graph.getView().getOverlayPane());if(this.moveIconBack&&icon.node.previousSibling!=null){icon.node.parentNode.insertBefore(icon.node,icon.node.parentNode.firstChild);}}icon.node.style.cursor=mxConstants.CURSOR_CONNECT;var getState=mxUtils.bind(this,function(){return(this.currentState!=null)?this.currentState:state;});var mouseDown=mxUtils.bind(this,function(evt){if(!mxEvent.isConsumed(evt)){this.icon=icon;this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(evt,getState()));}});mxEvent.redirectMouseEvents(icon.node,this.graph,getState,mouseDown);icons.push(icon);this.redrawIcons(icons,this.iconState);return icons;}return null;};mxConnectionHandler.prototype.redrawIcons=function(icons,state){if(icons!=null&&icons[0]!=null&&state!=null){var pos=this.getIconPosition(icons[0],state);icons[0].bounds.x=pos.x;icons[0].bounds.y=pos.y;icons[0].redraw();}};mxConnectionHandler.prototype.getIconPosition=function(icon,state){var scale=this.graph.getView().scale;var cx=state.getCenterX();var cy=state.getCenterY();if(this.graph.isSwimlane(state.cell)){var size=this.graph.getStartSize(state.cell);cx=(size.width!=0)?state.x+size.width*scale/2:cx;cy=(size.height!=0)?state.y+size.height*scale/2:cy;}return new mxPoint(cx-icon.bounds.width/2,cy-icon.bounds.height/2);};mxConnectionHandler.prototype.destroyIcons=function(icons){if(icons!=null){this.iconState=null;for(var i=0;i<icons.length;i++){icons[i].destroy();}}};mxConnectionHandler.prototype.isStartEvent=function(me){return!this.graph.isForceMarqueeEvent(me.getEvent())&&((this.constraintHandler.currentFocus!=null&&this.constraintHandler.currentConstraint!=null)||(this.previous!=null&&this.error==null&&(this.icons==null||(this.icons!=null&&this.icon!=null))));};mxConnectionHandler.prototype.mouseDown=function(sender,me){this.mouseDownCounter++;if(this.isEnabled()&&this.graph.isEnabled()&&!me.isConsumed()&&!this.isConnecting()&&this.isStartEvent(me)){if(this.constraintHandler.currentConstraint!=null&&this.constraintHandler.currentFocus!=null&&this.constraintHandler.currentPoint!=null){this.sourceConstraint=this.constraintHandler.currentConstraint;this.previous=this.constraintHandler.currentFocus;this.first=this.constraintHandler.currentPoint.clone();}else{this.first=new mxPoint(me.getGraphX(),me.getGraphY());}this.edgeState=this.createEdgeState(me);this.mouseDownCounter=1;if(this.waypointsEnabled&&this.shape==null){this.waypoints=null;this.shape=this.createShape();}if(this.previous==null&&this.edgeState!=null){var pt=this.graph.getPointForEvent(me.getEvent());this.edgeState.cell.geometry.setTerminalPoint(pt,true);}me.consume();}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=true;this.initialTouchX=me.getX();this.initialTouchY=me.getY();var state=this.graph.view.getState(this.marker.getCell(me));var handler=function(){if(this.tapAndHoldValid){this.tapAndHold(me,state);}this.tapAndHoldInProgress=false;this.tapAndHoldValid=false;};if(this.tapAndHoldThread){window.clearTimeout(this.tapAndHoldThread);}this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this, handler),this.tapAndHoldDelay);this.tapAndHoldValid=true;}this.selectedIcon=this.icon;this.icon=null;};mxConnectionHandler.prototype.tapAndHold=function(me,state){if(state!=null){this.marker.currentColor=this.marker.validColor;this.marker.markedState=state;this.marker.mark();this.first=new mxPoint(me.getGraphX(),me.getGraphY());this.edgeState=this.createEdgeState(me);this.previous=state;}};mxConnectionHandler.prototype.isImmediateConnectSource=function(state){return!this.graph.isCellMovable(state.cell);};mxConnectionHandler.prototype.createEdgeState=function(me){return null;};mxConnectionHandler.prototype.updateCurrentState=function(me){var state=this.marker.process(me);this.constraintHandler.update(me,this.first==null);this.currentState=state;};mxConnectionHandler.prototype.convertWaypoint=function(point){var scale=this.graph.getView().getScale();var tr=this.graph.getView().getTranslate();point.x=point.x/scale-tr.x;point.y=point.y/scale-tr.y;};mxConnectionHandler.prototype.mouseMove=function(sender,me){if(this.tapAndHoldValid){this.tapAndHoldValid=Math.abs(this.initialTouchX-me.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-me.getY())<this.tapAndHoldTolerance;}if(!me.isConsumed()&&(this.ignoreMouseDown||this.first!=null||!this.graph.isMouseDown)){if(this.first!=null||(this.isEnabled()&&this.graph.isEnabled())){this.updateCurrentState(me);}if(this.first!=null){var view=this.graph.getView();var scale=view.scale;var point=new mxPoint(this.graph.snap(me.getGraphX()/scale)*scale,this.graph.snap(me.getGraphY()/scale)*scale);var constraint=null;var current=point;if(this.constraintHandler.currentConstraint!=null&&this.constraintHandler.currentFocus!=null&&this.constraintHandler.currentPoint!=null){constraint=this.constraintHandler.currentConstraint;current=this.constraintHandler.currentPoint.clone();}var pt2=this.first;if(this.selectedIcon!=null){var w=this.selectedIcon.bounds.width;var h=this.selectedIcon.bounds.height;if(this.currentState!=null&&this.targetConnectImage){var pos=this.getIconPosition(this.selectedIcon,this.currentState);this.selectedIcon.bounds.x=pos.x;this.selectedIcon.bounds.y=pos.y;}else{var bounds=new mxRectangle(me.getGraphX()+this.connectIconOffset.x,me.getGraphY()+this.connectIconOffset.y,w,h);this.selectedIcon.bounds=bounds;}this.selectedIcon.redraw();}if(this.edgeState!=null){this.edgeState.absolutePoints=[null,(this.currentState!=null)?null:current];this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,true,this.sourceConstraint);if(this.currentState!=null){if(constraint==null){constraint=this.graph.getConnectionConstraint(this.edgeState,this.previous,false);}this.edgeState.setAbsoluteTerminalPoint(null,false);this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,false,constraint);}var realPoints=null;if(this.waypoints!=null){realPoints=[];for(var i=0;i<this.waypoints.length;i++){var pt=this.waypoints[i].clone();this.convertWaypoint(pt);realPoints[i]=pt;}}this.graph.view.updatePoints(this.edgeState,realPoints,this.previous,this.currentState);this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState);current=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1];pt2=this.edgeState.absolutePoints[0];}else{if(this.currentState!=null){if(this.constraintHandler.currentConstraint==null){var tmp=this.getTargetPerimeterPoint(this.currentState,me);if(tmp!=null){current=tmp;}}}if(this.sourceConstraint==null&&this.previous!=null){var next=(this.waypoints!=null&&this.waypoints.length>0)?this.waypoints[0]:current;var tmp=this.getSourcePerimeterPoint(this.previous,next,me);if(tmp!=null){pt2=tmp;}}}if(this.currentState==null&&this.movePreviewAway){var dx=current.x-pt2.x;var dy=current.y-pt2.y;var len=Math.sqrt(dx*dx+dy*dy);current.x-=dx*4/len;current.y-=dy*4/len;}if(this.shape==null){var dx=Math.abs(point.x-this.first.x);var dy=Math.abs(point.y-this.first.y);if(dx>this.graph.tolerance||dy>this.graph.tolerance){this.shape=this.createShape();}}if(this.shape!=null){if(this.edgeState!=null){this.shape.points=this.edgeState.absolutePoints;}else{var pts=[pt2];if(this.waypoints!=null){pts=pts.concat(this.waypoints);}pts.push(current);this.shape.points=pts;}this.drawPreview();}mxEvent.consume(me.getEvent());me.consume();}else if(!this.isEnabled()||!this.graph.isEnabled()){this.constraintHandler.reset();}else if(this.previous!=this.currentState&&this.edgeState==null){this.destroyIcons(this.icons);this.icons=null;if(this.currentState!=null&&this.error==null){this.icons=this.createIcons(this.currentState);if(this.icons==null){this.currentState.setCursor(mxConstants.CURSOR_CONNECT);me.consume();}}this.previous=this.currentState;}else if(this.previous==this.currentState&&this.currentState!=null&&this.icons==null&&!this.graph.isMouseDown){me.consume();}if(this.constraintHandler.currentConstraint!=null){this.marker.reset();}if(!this.graph.isMouseDown&&this.currentState!=null&&this.icons!=null){var hitsIcon=false;var target=me.getSource();for(var i=0;i<this.icons.length&&!hitsIcon;i++){hitsIcon=target==this.icons[i].node||target.parentNode==this.icons[i].node;}if(!hitsIcon){this.updateIcons(this.currentState,this.icons,me);}}}else{this.constraintHandler.reset();}};mxConnectionHandler.prototype.getTargetPerimeterPoint=function(state,me){var result=null;var view=state.view;var targetPerimeter=view.getPerimeterFunction(state);if(targetPerimeter!=null){var next=(this.waypoints!=null&&this.waypoints.length>0)?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());var tmp=targetPerimeter(view.getPerimeterBounds(state),this.edgeState,next,false);if(tmp!=null){result=tmp;}}else{result=new mxPoint(state.getCenterX(),state.getCenterY());}return result;};mxConnectionHandler.prototype.getSourcePerimeterPoint=function(state,next,me){var result=null;var view=state.view;var sourcePerimeter=view.getPerimeterFunction(state);if(sourcePerimeter!=null){var tmp=sourcePerimeter(view.getPerimeterBounds(state),state,next,false);if(tmp!=null){result=tmp;}}else{result=new mxPoint(state.getCenterX(),state.getCenterY());}return result;};mxConnectionHandler.prototype.updateIcons=function(state,icons,me){};mxConnectionHandler.prototype.isStopEvent=function(me){return me.getState()!=null;};mxConnectionHandler.prototype.addWaypointForEvent=function(me){var point=mxUtils.convertPoint(this.graph.container,me.getX(),me.getY());var dx=Math.abs(point.x-this.first.x);var dy=Math.abs(point.y-this.first.y);var addPoint=this.waypoints!=null||(this.mouseDownCounter>1&&(dx>this.graph.tolerance||dy>this.graph.tolerance));if(addPoint){if(this.waypoints==null){this.waypoints=[];}var scale=this.graph.view.scale;var point=new mxPoint(this.graph.snap(me.getGraphX()/scale)*scale,this.graph.snap(me.getGraphY()/scale)*scale);this.waypoints.push(point);}};mxConnectionHandler.prototype.mouseUp=function(sender,me){if(!me.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(me)){this.addWaypointForEvent(me);me.consume();return;}if(this.error==null){var source=(this.previous!=null)?this.previous.cell:null;var target=null;if(this.constraintHandler.currentConstraint!=null&&this.constraintHandler.currentFocus!=null){target=this.constraintHandler.currentFocus.cell;}if(target==null&&this.marker.hasValidState()){target=this.marker.validState.cell;}this.connect(source,target,me.getEvent(),me.getCell());}else{if(this.previous!=null&&this.marker.validState!=null&&this.previous.cell==this.marker.validState.cell){this.graph.selectCellForEvent(this.marker.source,evt);}if(this.error.length>0){this.graph.validationAlert(this.error);}}this.destroyIcons(this.icons);me.consume();}if(this.first!=null){this.reset();}this.tapAndHoldInProgress=false;this.tapAndHoldValid=false;};mxConnectionHandler.prototype.reset=function(){if(this.shape!=null){this.shape.destroy();this.shape=null;}this.destroyIcons(this.icons);this.icons=null;this.marker.reset();this.constraintHandler.reset();this.selectedIcon=null;this.edgeState=null;this.previous=null;this.error=null;this.sourceConstraint=null;this.mouseDownCounter=0;this.first=null;this.icon=null;};mxConnectionHandler.prototype.drawPreview=function(){var valid=this.error==null;var color=this.getEdgeColor(valid);if(this.shape.dialect==mxConstants.DIALECT_SVG){this.shape.innerNode.setAttribute('stroke',color);}else{this.shape.node.strokecolor=color;}this.shape.strokewidth=this.getEdgeWidth(valid);this.shape.redraw();mxUtils.repaintGraph(this.graph,this.shape.points[1]);};mxConnectionHandler.prototype.getEdgeColor=function(valid){return(valid)?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR;};mxConnectionHandler.prototype.getEdgeWidth=function(valid){return(valid)?3:1;};mxConnectionHandler.prototype.connect=function(source,target,evt,dropTarget){if(target!=null||this.isCreateTarget()||this.graph.allowDanglingEdges){var model=this.graph.getModel();var edge=null;model.beginUpdate();try{if(source!=null&&target==null&&this.isCreateTarget()){target=this.createTargetVertex(evt,source);if(target!=null){dropTarget=this.graph.getDropTarget([target],evt,dropTarget);if(dropTarget==null||!this.graph.getModel().isEdge(dropTarget)){var pstate=this.graph.getView().getState(dropTarget);if(pstate!=null){var tmp=model.getGeometry(target);tmp.x-=pstate.origin.x;tmp.y-=pstate.origin.y;}}else{dropTarget=this.graph.getDefaultParent();}this.graph.addCell(target,dropTarget);}}var parent=this.graph.getDefaultParent();if(source!=null&&target!=null&&model.getParent(source)==model.getParent(target)&&model.getParent(model.getParent(source))!=model.getRoot()){parent=model.getParent(source);if((source.geometry!=null&&source.geometry.relative)&&(target.geometry!=null&&target.geometry.relative)){parent=model.getParent(parent);}}var value=null;var style=null;if(this.edgeState!=null){value=this.edgeState.cell.value;style=this.edgeState.cell.style;}edge=this.insertEdge(parent,null,value,source,target,style);if(edge!=null){this.graph.setConnectionConstraint(edge,source,true,this.sourceConstraint);this.graph.setConnectionConstraint(edge,target,false,this.constraintHandler.currentConstraint);if(this.edgeState!=null){model.setGeometry(edge,this.edgeState.cell.geometry);}var geo=model.getGeometry(edge);if(geo==null){geo=new mxGeometry();geo.relative=true;model.setGeometry(edge,geo);}if(this.waypoints!=null&&this.waypoints.length>0){var s=this.graph.view.scale;var tr=this.graph.view.translate;geo.points=[];for(var i=0;i<this.waypoints.length;i++){var pt=this.waypoints[i];geo.points.push(new mxPoint(pt.x/s-tr.x,pt.y/s-tr.y));}}if(target==null){var pt=this.graph.getPointForEvent(evt,false);pt.x-=this.graph.panDx/this.graph.view.scale;pt.y-=this.graph.panDy/this.graph.view.scale;geo.setTerminalPoint(pt,false);}this.fireEvent(new mxEventObject(mxEvent.CONNECT,'cell',edge,'event',evt,'target',dropTarget));}}catch(e){mxLog.show();mxLog.debug(e.message);}finally{model.endUpdate();}if(this.select){this.selectCells(edge,target);}}};mxConnectionHandler.prototype.selectCells=function(edge,target){this.graph.setSelectionCell(edge);};mxConnectionHandler.prototype.insertEdge=function(parent,id,value,source,target,style){if(this.factoryMethod==null){return this.graph.insertEdge(parent,id,value,source,target,style);}else{var edge=this.createEdge(value,source,target,style);edge=this.graph.addEdge(edge,parent,source,target);return edge;}};mxConnectionHandler.prototype.createTargetVertex=function(evt,source){var geo=this.graph.getCellGeometry(source);while(geo!=null&&geo.relative){source=this.graph.getModel().getParent(source);geo=this.graph.getCellGeometry(source);}var clone=this.graph.cloneCells([source])[0];var geo=this.graph.getModel().getGeometry(clone);if(geo!=null){var point=this.graph.getPointForEvent(evt);geo.x=this.graph.snap(point.x-geo.width/2)-this.graph.panDx/this.graph.view.scale;geo.y=this.graph.snap(point.y-geo.height/2)-this.graph.panDy/this.graph.view.scale;if(this.first!=null){var sourceState=this.graph.view.getState(source);if(sourceState!=null){var tol=this.getAlignmentTolerance();if(Math.abs(this.graph.snap(this.first.x)-this.graph.snap(point.x))<=tol){geo.x=sourceState.x;}else if(Math.abs(this.graph.snap(this.first.y)-this.graph.snap(point.y))<=tol){geo.y=sourceState.y;}}}}return clone;};mxConnectionHandler.prototype.getAlignmentTolerance=function(){return(this.graph.isGridEnabled())?this.graph.gridSize:this.graph.tolerance;};mxConnectionHandler.prototype.createEdge=function(value,source,target,style){var edge=null;if(this.factoryMethod!=null){edge=this.factoryMethod(source,target,style);}if(edge==null){edge=new mxCell(value||'');edge.setEdge(true);edge.setStyle(style);var geo=new mxGeometry();geo.relative=true;edge.setGeometry(geo);}return edge;};mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);if(this.shape!=null){this.shape.destroy();this.shape=null;}if(this.marker!=null){this.marker.destroy();this.marker=null;}if(this.constraintHandler!=null){this.constraintHandler.destroy();this.constraintHandler=null;}if(this.changeHandler!=null){this.graph.getModel().removeListener(this.changeHandler);this.graph.getView().removeListener(this.changeHandler);this.changeHandler=null;}if(this.drillHandler!=null){this.graph.removeListener(this.drillHandler);this.graph.getView().removeListener(this.drillHandler);this.drillHandler=null;}};function mxConstraintHandler(graph){this.graph=graph;};mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+'/point.gif',5,5);mxConstraintHandler.prototype.graph=null;mxConstraintHandler.prototype.enabled=true;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled;};mxConstraintHandler.prototype.setEnabled=function(enabled){this.enabled=enabled;};mxConstraintHandler.prototype.reset=function(){if(this.focusIcons!=null){for(var i=0;i<this.focusIcons.length;i++){this.focusIcons[i].destroy();}this.focusIcons=null;}if(this.focusHighlight!=null){this.focusHighlight.destroy();this.focusHighlight=null;}this.currentConstraint=null;this.currentFocusArea=null;this.currentPoint=null;this.currentFocus=null;this.focusPoints=null;};mxConstraintHandler.prototype.getTolerance=function(){return this.graph.getTolerance();};mxConstraintHandler.prototype.getImageForConstraint=function(state,constraint,point){return this.pointImage;};mxConstraintHandler.prototype.update=function(me,source){if(this.isEnabled()){var tol=this.getTolerance();var mouse=new mxRectangle(me.getGraphX()-tol,me.getGraphY()-tol,2*tol,2*tol);var connectable=(me.getCell()!=null)?this.graph.isCellConnectable(me.getCell()):false;if((this.currentFocusArea==null||(!mxUtils.intersects(this.currentFocusArea,mouse)||(me.getState()!=null&&this.currentFocus!=null&&connectable&&this.graph.getModel().getParent(me.getCell())==this.currentFocus.cell)))){this.currentFocusArea=null;if(me.getState()!=this.currentFocus){this.currentFocus=null;this.constraints=(me.getState()!=null&&connectable)?this.graph.getAllConnectionConstraints(me.getState(),source):null;if(this.constraints!=null){this.currentFocus=me.getState();this.currentFocusArea=new mxRectangle(me.getState().x,me.getState().y,me.getState().width,me.getState().height);if(this.focusIcons!=null){for(var i=0;i<this.focusIcons.length;i++){this.focusIcons[i].destroy();}this.focusIcons=null;this.focusPoints=null;}this.focusIcons=[];this.focusPoints=[];for(var i=0;i<this.constraints.length;i++){var cp=this.graph.getConnectionPoint(me.getState(),this.constraints[i]);var img=this.getImageForConstraint(me.getState(),this.constraints[i],cp);var src=img.src;var bounds=new mxRectangle(cp.x-img.width/2,cp.y-img.height/2,img.width,img.height);var icon=new mxImageShape(bounds,src);icon.dialect=(this.graph.dialect==mxConstants.DIALECT_SVG)?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;icon.init(this.graph.getView().getOverlayPane());if(icon.node.previousSibling!=null){icon.node.parentNode.insertBefore(icon.node,icon.node.parentNode.firstChild);}var getState=mxUtils.bind(this,function(){return(this.currentFocus!=null)?this.currentFocus:me.getState();});icon.redraw();mxEvent.redirectMouseEvents(icon.node,this.graph,getState);this.currentFocusArea.add(icon.bounds);this.focusIcons.push(icon);this.focusPoints.push(cp);}this.currentFocusArea.grow(tol);}else if(this.focusIcons!=null){if(this.focusHighlight!=null){this.focusHighlight.destroy();this.focusHighlight=null;}for(var i=0;i<this.focusIcons.length;i++){this.focusIcons[i].destroy();}this.focusIcons=null;this.focusPoints=null;}}}this.currentConstraint=null;this.currentPoint=null;if(this.focusIcons!=null&&this.constraints!=null&&(me.getState()==null||this.currentFocus==me.getState())){for(var i=0;i<this.focusIcons.length;i++){if(mxUtils.intersects(this.focusIcons[i].bounds,mouse)){this.currentConstraint=this.constraints[i];this.currentPoint=this.focusPoints[i];var tmp=this.focusIcons[i].bounds.clone();tmp.grow((mxClient.IS_IE)?3:2);if(mxClient.IS_IE){tmp.width-=1;tmp.height-=1;}if(this.focusHighlight==null){var hl=new mxRectangleShape(tmp,null,this.highlightColor,3);hl.dialect=(this.graph.dialect==mxConstants.DIALECT_SVG)?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;hl.init(this.graph.getView().getOverlayPane());this.focusHighlight=hl;var getState=mxUtils.bind(this,function(){return(this.currentFocus!=null)?this.currentFocus:me.getState();});mxEvent.redirectMouseEvents(hl.node,this.graph,getState );}else{this.focusHighlight.bounds=tmp;this.focusHighlight.redraw();}break;}}}if(this.currentConstraint==null&&this.focusHighlight!=null){this.focusHighlight.destroy();this.focusHighlight=null;}}};mxConstraintHandler.prototype.destroy=function(){this.reset();};function mxRubberband(graph){if(graph!=null){this.graph=graph;this.graph.addMouseListener(this);this.panHandler=mxUtils.bind(this,function(){this.repaint();});this.graph.addListener(mxEvent.PAN,this.panHandler);if(mxClient.IS_IE){mxEvent.addListener(window,'unload',mxUtils.bind(this,function(){this.destroy();}));}}};mxRubberband.prototype.defaultOpacity=20;mxRubberband.prototype.enabled=true;mxRubberband.prototype.div=null;mxRubberband.prototype.sharedDiv=null;mxRubberband.prototype.currentX=0;mxRubberband.prototype.currentY=0;mxRubberband.prototype.isEnabled=function(){return this.enabled;};mxRubberband.prototype.setEnabled=function(enabled){this.enabled=enabled;};mxRubberband.prototype.mouseDown=function(sender,me){if(!me.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(me.getEvent())||me.getState()==null)){var offset=mxUtils.getOffset(this.graph.container);var origin=mxUtils.getScrollOrigin(this.graph.container);origin.x-=offset.x;origin.y-=offset.y;this.start(me.getX()+origin.x,me.getY()+origin.y);if(mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var container=this.graph.container;function createMouseEvent(evt){var me=new mxMouseEvent(evt);var pt=mxUtils.convertPoint(container,me.getX(),me.getY());me.graphX=pt.x;me.graphY=pt.y;return me;};this.dragHandler=mxUtils.bind(this,function(evt){this.mouseMove(this.graph,createMouseEvent(evt));});this.dropHandler=mxUtils.bind(this,function(evt){this.mouseUp(this.graph,createMouseEvent(evt));});mxEvent.addListener(document,'mousemove',this.dragHandler);mxEvent.addListener(document,'mouseup',this.dropHandler);}me.consume(false);}};mxRubberband.prototype.start=function(x,y){this.first=new mxPoint(x,y);};mxRubberband.prototype.mouseMove=function(sender,me){if(!me.isConsumed()&&this.first!=null){var origin=mxUtils.getScrollOrigin(this.graph.container);var offset=mxUtils.getOffset(this.graph.container);origin.x-=offset.x;origin.y-=offset.y;var x=me.getX()+origin.x;var y=me.getY()+origin.y;var dx=this.first.x-x;var dy=this.first.y-y;var tol=this.graph.tolerance;if(this.div!=null||Math.abs(dx)>tol||Math.abs(dy)>tol){if(this.div==null){this.div=this.createShape();}mxUtils.clearSelection();this.update(x,y);me.consume();}}};mxRubberband.prototype.createShape=function(){if(this.sharedDiv==null){this.sharedDiv=document.createElement('div');this.sharedDiv.className='mxRubberband';mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity);}this.graph.container.appendChild(this.sharedDiv);return this.sharedDiv;};mxRubberband.prototype.mouseUp=function(sender,me){var execute=this.div!=null;this.reset();if(execute){var rect=new mxRectangle(this.x,this.y,this.width,this.height);this.graph.selectRegion(rect,me.getEvent());me.consume();}};mxRubberband.prototype.reset=function(){if(this.div!=null){this.div.parentNode.removeChild(this.div);}if(this.dragHandler!=null){mxEvent.removeListener(document,'mousemove',this.dragHandler);this.dragHandler=null;}if(this.dropHandler!=null){mxEvent.removeListener(document,'mouseup',this.dropHandler);this.dropHandler=null;}this.currentX=0;this.currentY=0;this.first=null;this.div=null;};mxRubberband.prototype.update=function(x,y){this.currentX=x;this.currentY=y;this.repaint();};mxRubberband.prototype.repaint=function(){if(this.div!=null){var x=this.currentX-this.graph.panDx;var y=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,x);this.y=Math.min(this.first.y,y);this.width=Math.max(this.first.x,x)-this.x;this.height=Math.max(this.first.y,y)-this.y;var dx=(mxClient.IS_VML)?this.graph.panDx:0;var dy=(mxClient.IS_VML)?this.graph.panDy:0;this.div.style.left=(this.x+dx)+'px';this.div.style.top=(this.y+dy)+'px';this.div.style.width=Math.max(1,this.width)+'px';this.div.style.height=Math.max(1,this.height)+'px';}};mxRubberband.prototype.destroy=function(){if(!this.destroyed){this.destroyed=true;this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);this.reset();if(this.sharedDiv!=null){this.sharedDiv=null;}}};function mxVertexHandler(state){if(state!=null){this.state=state;this.init();}};mxVertexHandler.prototype.graph=null;mxVertexHandler.prototype.state=null;mxVertexHandler.prototype.singleSizer=false;mxVertexHandler.prototype.index=null;mxVertexHandler.prototype.allowHandleBoundsCheck=true;mxVertexHandler.prototype.crisp=true;mxVertexHandler.prototype.handleImage=null;mxVertexHandler.prototype.tolerance=0;mxVertexHandler.prototype.init=function(){this.graph=this.state.view.graph;this.bounds=this.getSelectionBounds(this.state);this.selectionBorder=this.createSelectionShape(this.bounds);this.selectionBorder.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;this.selectionBorder.init(this.graph.getView().getOverlayPane());if(this.selectionBorder.dialect==mxConstants.DIALECT_SVG){this.selectionBorder.node.setAttribute('pointer-events','none');}else{this.selectionBorder.node.style.background='';}if(this.graph.isCellMovable(this.state.cell)){this.selectionBorder.node.style.cursor=mxConstants.CURSOR_MOVABLE_VERTEX;}mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state);if(mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var resizable=this.graph.isCellResizable(this.state.cell);this.sizers=[];if(resizable||(this.graph.isLabelMovable(this.state.cell)&&this.state.width>=2&&this.state.height>=2)){var i=0;if(resizable){if(!this.singleSizer){this.sizers.push(this.createSizer('nw-resize',i++));this.sizers.push(this.createSizer('n-resize',i++));this.sizers.push(this.createSizer('ne-resize',i++));this.sizers.push(this.createSizer('w-resize',i++));this.sizers.push(this.createSizer('e-resize',i++));this.sizers.push(this.createSizer('sw-resize',i++));this.sizers.push(this.createSizer('s-resize',i++));}this.sizers.push(this.createSizer('se-resize',i++));}var geo=this.graph.model.getGeometry(this.state.cell);if(geo!=null&&!geo.relative&&!this.graph.isSwimlane(this.state.cell)&&this.graph.isLabelMovable(this.state.cell)){this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR);this.sizers.push(this.labelShape);}}else if(this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellResizable(this.state.cell)&&this.state.width<2&&this.state.height<2){this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR);this.sizers.push(this.labelShape);}}this.redraw();};mxVertexHandler.prototype.getSelectionBounds=function(state){return new mxRectangle(state.x,state.y,state.width,state.height);};mxVertexHandler.prototype.createSelectionShape=function(bounds){var shape=new mxRectangleShape(bounds,null,this.getSelectionColor());shape.strokewidth=this.getSelectionStrokeWidth();shape.isDashed=this.isSelectionDashed();shape.crisp=this.crisp;return shape;};mxVertexHandler.prototype.getSelectionColor=function(){return mxConstants.VERTEX_SELECTION_COLOR;};mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH;};mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED;};mxVertexHandler.prototype.createSizer=function(cursor,index,size,fillColor){size=size||mxConstants.HANDLE_SIZE;var bounds=new mxRectangle(0,0,size,size);var sizer=this.createSizerShape(bounds,index,fillColor);if(this.state.text!=null&&this.state.text.node.parentNode==this.graph.container){sizer.bounds.height-=1;sizer.bounds.width-=1;sizer.dialect=mxConstants.DIALECT_STRICTHTML;sizer.init(this.graph.container);}else{sizer.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;sizer.init(this.graph.getView().getOverlayPane());}sizer.node.style.cursor=cursor;mxEvent.redirectMouseEvents(sizer.node,this.graph,this.state);if(!this.isSizerVisible(index)){sizer.node.style.visibility='hidden';}return sizer;};mxVertexHandler.prototype.isSizerVisible=function(index){return true;};mxVertexHandler.prototype.createSizerShape=function(bounds,index,fillColor){if(true&&this.handleImage!=null){bounds.width=this.handleImage.width;bounds.height=this.handleImage.height;return new mxImageShape(bounds,this.handleImage.src);}else{var shape=new mxRectangleShape(bounds,fillColor||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);shape.crisp=this.crisp;return shape;}};mxVertexHandler.prototype.moveSizerTo=function(shape,x,y){if(shape!=null){shape.bounds.x=x-shape.bounds.width/2;shape.bounds.y=y-shape.bounds.height/2;shape.redraw();}};mxVertexHandler.prototype.getHandleForEvent=function(me){if(me.isSource(this.labelShape)){return mxEvent.LABEL_HANDLE;}if(this.sizers!=null){var tol=this.tolerance;var hit=(this.allowHandleBoundsCheck&&(mxClient.IS_IE||tol>0))?new mxRectangle(me.getGraphX()-tol,me.getGraphY()-tol,2*tol,2*tol):null;for(var i=0;i<this.sizers.length;i++){if(me.isSource(this.sizers[i])||(hit!=null&&this.sizers[i].node.style.visibility!='hidden'&&mxUtils.intersects(this.sizers[i].bounds,hit))){return i;}}}return null;};mxVertexHandler.prototype.mouseDown=function(sender,me){if(!me.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(me.getEvent())&&(this.tolerance>0||me.getState()==this.state)){var handle=this.getHandleForEvent(me);if(handle!=null){this.start(me.getX(),me.getY(),handle);me.consume();}}};mxVertexHandler.prototype.start=function(x,y,index){var pt=mxUtils.convertPoint(this.graph.container,x,y);this.startX=pt.x;this.startY=pt.y;this.index=index;this.selectionBorder.node.style.visibility='hidden';this.preview=this.createSelectionShape(this.bounds);if(this.state.text!=null&&this.state.text.node.parentNode==this.graph.container){this.preview.dialect=mxConstants.DIALECT_STRICTHTML;this.preview.init(this.graph.container);}else{this.preview.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;this.preview.init(this.graph.view.getOverlayPane());}};mxVertexHandler.prototype.mouseMove=function(sender,me){if(!me.isConsumed()&&this.index!=null){var point=new mxPoint(me.getGraphX(),me.getGraphY());var gridEnabled=this.graph.isGridEnabledEvent(me.getEvent());var scale=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE){if(gridEnabled){point.x=this.graph.snap(point.x/scale)*scale;point.y=this.graph.snap(point.y/scale)*scale;}this.moveSizerTo(this.sizers[this.sizers.length-1],point.x,point.y);me.consume();}else if(this.index!=null){var dx=point.x-this.startX;var dy=point.y-this.startY;var tr=this.graph.view.translate;this.bounds=this.union(this.state,dx,dy,this.index,gridEnabled,scale,tr);this.drawPreview();me.consume();}}else if(this.getHandleForEvent(me)!=null){me.consume(false);}};mxVertexHandler.prototype.mouseUp=function(sender,me){if(!me.isConsumed()&&this.index!=null&&this.state!=null){var point=new mxPoint(me.getGraphX(),me.getGraphY());var scale=this.graph.getView().scale;var gridEnabled=this.graph.isGridEnabledEvent(me.getEvent());var dx=(point.x-this.startX)/scale;var dy=(point.y-this.startY)/scale;this.resizeCell(this.state.cell,dx,dy,this.index,gridEnabled);this.reset();me.consume();}};mxVertexHandler.prototype.reset=function(){this.index=null;if(this.preview!=null){this.preview.destroy();this.preview=null;}if(this.selectionBorder!=null){this.selectionBorder.node.style.visibility='visible';this.bounds=new mxRectangle(this.state.x,this.state.y,this.state.width,this.state.height);this.drawPreview();}};mxVertexHandler.prototype.resizeCell=function(cell,dx,dy,index,gridEnabled){var geo=this.graph.model.getGeometry(cell);if(index==mxEvent.LABEL_HANDLE){var scale=this.graph.view.scale;dx=(this.labelShape.bounds.getCenterX()-this.startX)/scale;dy=(this.labelShape.bounds.getCenterY()-this.startY)/scale;geo=geo.clone();if(geo.offset==null){geo.offset=new mxPoint(dx,dy);}else{geo.offset.x+=dx;geo.offset.y+=dy;}this.graph.model.setGeometry(cell,geo);}else{var bounds=this.union(geo,dx,dy,index,gridEnabled,1,new mxPoint(0,0));this.graph.resizeCell(cell,bounds);}};mxVertexHandler.prototype.union=function(bounds,dx,dy,index,gridEnabled,scale,tr){if(this.singleSizer){var x=bounds.x+bounds.width+dx;var y=bounds.y+bounds.height+dy;if(gridEnabled){x=this.graph.snap(x/scale)*scale;y=this.graph.snap(y/scale)*scale;}var rect=new mxRectangle(bounds.x,bounds.y,0,0);rect.add(new mxRectangle(x,y,0,0));return rect;}else{var left=bounds.x-tr.x*scale;var right=left+bounds.width;var top=bounds.y-tr.y*scale;var bottom=top+bounds.height;if(index>4 ){bottom=bottom+dy;if(gridEnabled){bottom=this.graph.snap(bottom/scale)*scale;}}else if(index<3 ){top=top+dy;if(gridEnabled){top=this.graph.snap(top/scale)*scale;}}if(index==0||index==3||index==5 ){left+=dx;if(gridEnabled){left=this.graph.snap(left/scale)*scale;}}else if(index==2||index==4||index==7 ){right+=dx;if(gridEnabled){right=this.graph.snap(right/scale)*scale;}}var width=right-left;var height=bottom-top;if(width<0){left+=width;width=Math.abs(width);}if(height<0){top+=height;height=Math.abs(height);}return new mxRectangle(left+tr.x*scale,top+tr.y*scale,width,height);}};mxVertexHandler.prototype.redraw=function(){this.bounds=new mxRectangle(this.state.x,this.state.y,this.state.width,this.state.height);if(this.sizers!=null){var s=this.state;var r=s.x+s.width;var b=s.y+s.height;if(this.singleSizer){this.moveSizerTo(this.sizers[0],r,b);}else{var cx=s.x+s.width/2;var cy=s.y+s.height/2;if(this.sizers.length>1){this.moveSizerTo(this.sizers[0],s.x,s.y);this.moveSizerTo(this.sizers[1],cx,s.y);this.moveSizerTo(this.sizers[2],r,s.y);this.moveSizerTo(this.sizers[3],s.x,cy);this.moveSizerTo(this.sizers[4],r,cy);this.moveSizerTo(this.sizers[5],s.x,b);this.moveSizerTo(this.sizers[6],cx,b);this.moveSizerTo(this.sizers[7],r,b);this.moveSizerTo(this.sizers[8],cx+s.absoluteOffset.x,cy+s.absoluteOffset.y);}else if(this.state.width>=2&&this.state.height>=2){this.moveSizerTo(this.sizers[0],cx+s.absoluteOffset.x,cy+s.absoluteOffset.y);}else{this.moveSizerTo(this.sizers[0],s.x,s.y);}}}this.drawPreview();};mxVertexHandler.prototype.drawPreview=function(){if(this.preview!=null){this.preview.bounds=this.bounds;if(this.preview.node.parentNode==this.graph.container){this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1);this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1);}this.preview.redraw();}this.selectionBorder.bounds=this.bounds;this.selectionBorder.redraw();};mxVertexHandler.prototype.destroy=function(){if(this.preview!=null){this.preview.destroy();this.preview=null;}this.selectionBorder.destroy();this.selectionBorder=null;this.labelShape=null;if(this.sizers!=null){for(var i=0;i<this.sizers.length;i++){this.sizers[i].destroy();this.sizers[i]=null;}}};function mxEdgeHandler(state){if(state!=null){this.state=state;this.init();}};mxEdgeHandler.prototype.graph=null;mxEdgeHandler.prototype.state=null;mxEdgeHandler.prototype.marker=null;mxEdgeHandler.prototype.constraintHandler=null;mxEdgeHandler.prototype.error=null;mxEdgeHandler.prototype.shape=null;mxEdgeHandler.prototype.bends=null;mxEdgeHandler.prototype.labelShape=null;mxEdgeHandler.prototype.cloneEnabled=true;mxEdgeHandler.prototype.addEnabled=false;mxEdgeHandler.prototype.removeEnabled=false;mxEdgeHandler.prototype.preferHtml=false;mxEdgeHandler.prototype.allowHandleBoundsCheck=true;mxEdgeHandler.prototype.snapToTerminals=false;mxEdgeHandler.prototype.crisp=true;mxEdgeHandler.prototype.handleImage=null;mxEdgeHandler.prototype.tolerance=0;mxEdgeHandler.prototype.init=function(){this.graph=this.state.view.graph;this.marker=this.createMarker();this.constraintHandler=new mxConstraintHandler(this.graph);this.points=[];this.abspoints=this.getSelectionPoints(this.state);this.shape=this.createSelectionShape(this.abspoints);this.shape.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;this.shape.init(this.graph.getView().getOverlayPane());this.shape.node.style.cursor=mxConstants.CURSOR_MOVABLE_EDGE;var md=(mxClient.IS_TOUCH)?'touchstart':'mousedown';var mm=(mxClient.IS_TOUCH)?'touchmove':'mousemove';var mu=(mxClient.IS_TOUCH)?'touchend':'mouseup';mxEvent.addListener(this.shape.node,'dblclick',mxUtils.bind(this,function(evt){this.graph.dblClick(evt,this.state.cell);}));mxEvent.addListener(this.shape.node,md,mxUtils.bind(this,function(evt){if(this.addEnabled&&this.isAddPointEvent(evt)){this.addPoint(this.state,evt);}else{this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(evt,this.state));}}));mxEvent.addListener(this.shape.node,mm,mxUtils.bind(this,function(evt){var cell=this.state.cell;if(this.index!=null){var pt=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(evt),mxEvent.getClientY(evt));cell=this.graph.getCellAt(pt.x,pt.y);if(this.graph.isSwimlane(cell)&&this.graph.hitsSwimlaneContent(cell,pt.x,pt.y)){cell=null;}}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(evt,this.graph.getView().getState(cell)));}));mxEvent.addListener(this.shape.node,mu,mxUtils.bind(this,function(evt){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(evt,this.state));}));this.preferHtml=this.state.text!=null&&this.state.text.node.parentNode==this.graph.container;if(!this.preferHtml){var sourceState=this.state.getVisibleTerminalState(true);if(sourceState!=null){this.preferHtml=sourceState.text!=null&&sourceState.text.node.parentNode==this.graph.container;}if(!this.preferHtml){var targetState=this.state.getVisibleTerminalState(false);if(targetState!=null){this.preferHtml=targetState.text!=null&&targetState.text.node.parentNode==this.graph.container;}}}if(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||mxGraphHandler.prototype.maxCells<=0){this.bends=this.createBends();}this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y);this.labelShape=new mxRectangleShape(new mxRectangle(),mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);this.initBend(this.labelShape);this.labelShape.node.style.cursor=mxConstants.CURSOR_LABEL_HANDLE;mxEvent.redirectMouseEvents(this.labelShape.node,this.graph,this.state);this.redraw();};mxEdgeHandler.prototype.isAddPointEvent=function(evt){return mxEvent.isShiftDown(evt);};mxEdgeHandler.prototype.isRemovePointEvent=function(evt){return mxEvent.isShiftDown(evt);};mxEdgeHandler.prototype.getSelectionPoints=function(state){return state.absolutePoints;};mxEdgeHandler.prototype.createSelectionShape=function(points){var shape=new mxPolyline(points,this.getSelectionColor());shape.strokewidth=this.getSelectionStrokeWidth();shape.isDashed=this.isSelectionDashed();return shape;};mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR;};mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH;};mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED;};mxEdgeHandler.prototype.isConnectableCell=function(cell){return true;};mxEdgeHandler.prototype.createMarker=function(){var marker=new mxCellMarker(this.graph);var self=this;marker.getCell=function(me){var cell=mxCellMarker.prototype.getCell.apply(this,arguments);if(!self.isConnectableCell(cell)){return null;}var model=self.graph.getModel();if(cell==self.state.cell||(cell!=null&&!self.graph.connectableEdges&&model.isEdge(cell))){cell=null;}return cell;};marker.isValidState=function(state){var model=self.graph.getModel();var other=self.graph.view.getTerminalPort(state,self.graph.view.getState(model.getTerminal(self.state.cell,!self.isSource)),!self.isSource);var otherCell=(other!=null)?other.cell:null;var source=(self.isSource)?state.cell:otherCell;var target=(self.isSource)?otherCell:state.cell;self.error=self.validateConnection(source,target);return self.error==null;};return marker;};mxEdgeHandler.prototype.validateConnection=function(source,target){return this.graph.getEdgeValidationError(this.state.cell,source,target);};mxEdgeHandler.prototype.createBends=function(){var cell=this.state.cell;var bends=[];for(var i=0;i<this.abspoints.length;i++){if(this.isHandleVisible(i)){var source=i==0;var target=i==this.abspoints.length-1;var terminal=source||target;if(terminal||this.graph.isCellBendable(cell)){var bend=this.createHandleShape(i);this.initBend(bend);if(mxClient.IS_TOUCH){bend.node.setAttribute('pointer-events','none');}if(this.isHandleEnabled(i)){if(mxClient.IS_TOUCH){var getState=mxUtils.bind(this,function(evt){var pt=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(evt),mxEvent.getClientY(evt));return this.graph.view.getState(this.graph.getCellAt(pt.x,pt.y));});mxEvent.redirectMouseEvents(bend.node,this.graph,getState);}else{bend.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE;mxEvent.redirectMouseEvents(bend.node,this.graph,this.state);}}bends.push(bend);if(!terminal){this.points.push(new mxPoint(0,0));bend.node.style.visibility='hidden';}}}}return bends;};mxEdgeHandler.prototype.isHandleEnabled=function(index){return true;};mxEdgeHandler.prototype.isHandleVisible=function(index){return(this.abspoints[index]!=null)?!this.abspoints[index].isRouted:true;};mxEdgeHandler.prototype.createHandleShape=function(index){if(this.handleImage!=null){return new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src);}else{var s=mxConstants.HANDLE_SIZE;if(this.preferHtml){s-=1;}return new mxRectangleShape(new mxRectangle(0,0,s,s),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);}};mxEdgeHandler.prototype.initBend=function(bend){bend.crisp=this.crisp;if(this.preferHtml){bend.dialect=mxConstants.DIALECT_STRICTHTML;bend.init(this.graph.container);}else{bend.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;bend.init(this.graph.getView().getOverlayPane());}};mxEdgeHandler.prototype.getHandleForEvent=function(me){if(this.bends!=null){var tol=this.tolerance;var hit=(this.allowHandleBoundsCheck&&(mxClient.IS_IE||tol>0))?new mxRectangle(me.getGraphX()-tol,me.getGraphY()-tol,2*tol,2*tol):null;for(var i=0;i<this.bends.length;i++){if(me.isSource(this.bends[i])||(hit!=null&&this.bends[i].node.style.visibility!='hidden'&&mxUtils.intersects(this.bends[i].bounds,hit))){return i;}}}if(me.isSource(this.labelShape)||me.isSource(this.state.text)){if((!mxClient.IS_SF&&!mxClient.IS_GC)||me.getSource().nodeName!='SELECT'){return mxEvent.LABEL_HANDLE;}}return null;};mxEdgeHandler.prototype.mouseDown=function(sender,me){var handle=null;{handle=this.getHandleForEvent(me);}if(handle!=null&&!me.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(me.getEvent())){if(this.removeEnabled&&this.isRemovePointEvent(me.getEvent())){this.removePoint(this.state,handle);}else if(handle!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(me.getCell())){this.start(me.getX(),me.getY(),handle);}me.consume();}};mxEdgeHandler.prototype.start=function(x,y,index){this.startX=x;this.startY=y;this.isSource=(this.bends==null)?false:index==0;this.isTarget=(this.bends==null)?false:index==this.bends.length-1;this.isLabel=index==mxEvent.LABEL_HANDLE;if(this.isSource||this.isTarget){var cell=this.state.cell;var terminal=this.graph.model.getTerminal(cell,this.isSource);if((terminal==null&&this.graph.isTerminalPointMovable(cell,this.isSource))||(terminal!=null&&this.graph.isCellDisconnectable(cell,terminal,this.isSource))){this.index=index;}}else{this.index=index;}};mxEdgeHandler.prototype.clonePreviewState=function(point,terminal){return this.state.clone();};mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2;};mxEdgeHandler.prototype.getPointForEvent=function(me){var point=new mxPoint(me.getGraphX(),me.getGraphY());var tt=this.getSnapToTerminalTolerance();var view=this.graph.getView();var overrideX=false;var overrideY=false;if(this.snapToTerminals&&tt>0){function snap(terminal,source){if(terminal!=null){var pts=this.state.absolutePoints;var abs=(source)?pts[0]:pts[pts.length-1];var x=view.getRoutingCenterX(terminal);if(Math.abs(point.x-x)<tt){point.x=x;overrideX=true;}if(abs!=null&&abs.x!=x){x=abs.x;if(Math.abs(point.x-x)<tt){point.x=x;overrideX=true;}}var y=view.getRoutingCenterY(terminal);if(Math.abs(point.y-y)<tt){point.y=y;overrideY=true;}if(abs!=null&&abs.y!=y){y=abs.y;if(Math.abs(point.y-y)<tt){point.y=y;overrideY=true;}}}};snap.call(this,this.state.getVisibleTerminalState(true));snap.call(this,this.state.getVisibleTerminalState(false));}if(this.graph.isGridEnabledEvent(me.getEvent())){var scale=view.scale;var tr=view.translate;if(!overrideX){point.x=(this.graph.snap(point.x/scale-tr.x)+tr.x)*scale;}if(!overrideY){point.y=(this.graph.snap(point.y/scale-tr.y)+tr.y)*scale;}}return point;};mxEdgeHandler.prototype.getPreviewTerminalState=function(me){this.constraintHandler.update(me,this.isSource);this.marker.process(me);var currentState=this.marker.getValidState();var result=null;if(this.constraintHandler.currentFocus!=null&&this.constraintHandler.currentConstraint!=null){this.marker.reset();}if(currentState!=null){result=currentState;}else if(this.constraintHandler.currentConstraint!=null&&this.constraintHandler.currentFocus!=null){result=this.constraintHandler.currentFocus;}return result;};mxEdgeHandler.prototype.getPreviewPoints=function(point){var geometry=this.graph.getCellGeometry(this.state.cell);var points=geometry.points;if(!this.isSource&&!this.isTarget){this.convertPoint(point,false);if(points==null){points=[point];}else{points=points.slice();points[this.index-1]=point;}}else if(this.graph.resetEdgesOnConnect){points=null;}return points;};mxEdgeHandler.prototype.updatePreviewState=function(edge,point,terminalState){var sourceState=(this.isSource)?terminalState:this.state.getVisibleTerminalState(true);var targetState=(this.isTarget)?terminalState:this.state.getVisibleTerminalState(false);var sourceConstraint=this.graph.getConnectionConstraint(edge,sourceState,true);var targetConstraint=this.graph.getConnectionConstraint(edge,targetState,false);var constraint=this.constraintHandler.currentConstraint;if(constraint==null){constraint=new mxConnectionConstraint();}if(this.isSource){sourceConstraint=constraint;}else if(this.isTarget){targetConstraint=constraint;}if(!this.isSource||sourceState!=null){edge.view.updateFixedTerminalPoint(edge,sourceState,true,sourceConstraint);}if(!this.isTarget||targetState!=null){edge.view.updateFixedTerminalPoint(edge,targetState,false,targetConstraint);}if((this.isSource||this.isTarget)&&terminalState==null){edge.setAbsoluteTerminalPoint(point,this.isSource);if(this.marker.getMarkedState()==null){this.error=(this.graph.allowDanglingEdges)?null:'';}}edge.view.updatePoints(edge,this.points,sourceState,targetState);edge.view.updateFloatingTerminalPoints(edge,sourceState,targetState);};mxEdgeHandler.prototype.mouseMove=function(sender,me){if(this.index!=null&&this.marker!=null){var point=this.getPointForEvent(me);if(this.isLabel){this.label.x=point.x;this.label.y=point.y;}else{this.points=this.getPreviewPoints(point);var terminalState=(this.isSource||this.isTarget)?this.getPreviewTerminalState(me):null;var clone=this.clonePreviewState(point,(terminalState!=null)?terminalState.cell:null);this.updatePreviewState(clone,point,terminalState);var color=(this.error==null)?this.marker.validColor:this.marker.invalidColor;this.setPreviewColor(color);this.abspoints=clone.absolutePoints;this.active=true;}this.drawPreview();mxEvent.consume(me.getEvent());me.consume();}else if(mxClient.IS_IE&&this.getHandleForEvent(me)!=null){me.consume(false);}};mxEdgeHandler.prototype.mouseUp=function(sender,me){if(this.index!=null&&this.marker!=null){var edge=this.state.cell;if(me.getX()!=this.startX||me.getY()!=this.startY){if(this.error!=null){if(this.error.length>0){this.graph.validationAlert(this.error);}}else if(this.isLabel){this.moveLabel(this.state,this.label.x,this.label.y);}else if(this.isSource||this.isTarget){var terminal=null;if(this.constraintHandler.currentConstraint!=null&&this.constraintHandler.currentFocus!=null){terminal=this.constraintHandler.currentFocus.cell;}if(terminal==null&&this.marker.hasValidState()){terminal=this.marker.validState.cell;}if(terminal!=null){edge=this.connect(edge,terminal,this.isSource,this.graph.isCloneEvent(me.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),me);}else if(this.graph.isAllowDanglingEdges()){var pt=this.graph.getPointForEvent(me.getEvent(),false);var pstate=this.graph.getView().getState(this.graph.getModel().getParent(edge));if(pstate!=null){pt.x-=pstate.origin.x;pt.y-=pstate.origin.y;}pt.x-=this.graph.panDx/this.graph.view.scale;pt.y-=this.graph.panDy/this.graph.view.scale;this.changeTerminalPoint(edge,pt,this.isSource);}}else if(this.active){this.changePoints(edge,this.points);}else{this.graph.getView().invalidate(this.state.cell);this.graph.getView().revalidate(this.state.cell);}}if(this.marker!=null){this.reset();if(edge!=this.state.cell){this.graph.setSelectionCell(edge);}}me.consume();}};mxEdgeHandler.prototype.reset=function(){this.error=null;this.index=null;this.label=null;this.points=null;this.active=false;this.isLabel=false;this.isSource=false;this.isTarget=false;this.marker.reset();this.constraintHandler.reset();this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR);this.redraw();};mxEdgeHandler.prototype.setPreviewColor=function(color){if(this.shape!=null&&this.shape.node!=null){if(this.shape.dialect==mxConstants.DIALECT_SVG){this.shape.innerNode.setAttribute('stroke',color);}else{this.shape.node.setAttribute('strokecolor',color);}}};mxEdgeHandler.prototype.convertPoint=function(point,gridEnabled){var scale=this.graph.getView().getScale();var tr=this.graph.getView().getTranslate();if(gridEnabled){point.x=this.graph.snap(point.x);point.y=this.graph.snap(point.y);}point.x=Math.round(point.x/scale-tr.x);point.y=Math.round(point.y/scale-tr.y);var pstate=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell));if(pstate!=null){point.x-=pstate.origin.x;point.y-=pstate.origin.y;}return point;};mxEdgeHandler.prototype.moveLabel=function(edgeState,x,y){var model=this.graph.getModel();var geometry=model.getGeometry(edgeState.cell);if(geometry!=null){geometry=geometry.clone();var pt=this.graph.getView().getRelativePoint(edgeState,x,y);geometry.x=pt.x;geometry.y=pt.y;var scale=this.graph.getView().scale;geometry.offset=new mxPoint(0,0);var pt=this.graph.view.getPoint(edgeState,geometry);geometry.offset=new mxPoint((x-pt.x)/scale,(y-pt.y)/scale);model.setGeometry(edgeState.cell,geometry);}};mxEdgeHandler.prototype.connect=function(edge,terminal,isSource,isClone,me){var model=this.graph.getModel();var parent=model.getParent(edge);model.beginUpdate();try{if(isClone){var clone=edge.clone();model.add(parent,clone,model.getChildCount(parent));var other=model.getTerminal(edge,!isSource);this.graph.connectCell(clone,other,!isSource);edge=clone;}var constraint=this.constraintHandler.currentConstraint;if(constraint==null){constraint=new mxConnectionConstraint();}this.graph.connectCell(edge,terminal,isSource,constraint);}finally{model.endUpdate();}return edge;};mxEdgeHandler.prototype.changeTerminalPoint=function(edge,point,isSource){var model=this.graph.getModel();var geo=model.getGeometry(edge);if(geo!=null){model.beginUpdate();try{geo=geo.clone();geo.setTerminalPoint(point,isSource);model.setGeometry(edge,geo);this.graph.connectCell(edge,null,isSource,new mxConnectionConstraint());}finally{model.endUpdate();}}};mxEdgeHandler.prototype.changePoints=function(edge,points){var model=this.graph.getModel();var geo=model.getGeometry(edge);if(geo!=null){geo=geo.clone();geo.points=points;model.setGeometry(edge,geo);}};mxEdgeHandler.prototype.addPoint=function(state,evt){var geo=this.graph.getCellGeometry(state.cell);if(geo!=null){geo=geo.clone();var pt=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(evt),mxEvent.getClientY(evt));var index=mxUtils.findNearestSegment(state,pt.x,pt.y);var gridEnabled=this.graph.isGridEnabledEvent(evt);this.convertPoint(pt,gridEnabled);if(geo.points==null){geo.points=[pt];}else{geo.points.splice(index,0,pt);}this.graph.getModel().setGeometry(state.cell,geo);this.destroy();this.init();mxEvent.consume(evt);}};mxEdgeHandler.prototype.removePoint=function(state,index){if(index>0&&index<this.abspoints.length-1){var geo=this.graph.getCellGeometry(this.state.cell);if(geo!=null&&geo.points!=null){geo=geo.clone();geo.points.splice(index-1,1);this.graph.getModel().setGeometry(state.cell,geo);this.destroy();this.init();}}};mxEdgeHandler.prototype.getHandleFillColor=function(index){var isSource=index==0;var cell=this.state.cell;var terminal=this.graph.getModel().getTerminal(cell,isSource);var color=mxConstants.HANDLE_FILLCOLOR;if((terminal!=null&&!this.graph.isCellDisconnectable(cell,terminal,isSource))||(terminal==null&&!this.graph.isTerminalPointMovable(cell,isSource))){color=mxConstants.LOCKED_HANDLE_FILLCOLOR;}else if(terminal!=null&&this.graph.isCellDisconnectable(cell,terminal,isSource)){color=mxConstants.CONNECT_HANDLE_FILLCOLOR;}return color;};mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var cell=this.state.cell;var s=mxConstants.LABEL_HANDLE_SIZE;this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y);this.labelShape.bounds=new mxRectangle(this.label.x-s/2,this.label.y-s/2,s,s);this.labelShape.redraw();var lab=this.graph.getLabel(cell);if(lab!=null&&lab.length>0&&this.graph.isLabelMovable(cell)){this.labelShape.node.style.visibility='visible';}else{this.labelShape.node.style.visibility='hidden';}if(this.bends!=null&&this.bends.length>0){var n=this.abspoints.length-1;var p0=this.abspoints[0];var x0=this.abspoints[0].x;var y0=this.abspoints[0].y;var b=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(x0-b.width/2,y0-b.height/2,b.width,b.height);this.bends[0].fill=this.getHandleFillColor(0);this.bends[0].reconfigure();this.bends[0].redraw();var pe=this.abspoints[n];var xn=this.abspoints[n].x;var yn=this.abspoints[n].y;var bn=this.bends.length-1;b=this.bends[bn].bounds;this.bends[bn].bounds=new mxRectangle(xn-b.width/2,yn-b.height/2,b.width,b.height);this.bends[bn].fill=this.getHandleFillColor(bn);this.bends[bn].reconfigure();this.bends[bn].redraw();this.redrawInnerBends(p0,pe);}this.drawPreview();};mxEdgeHandler.prototype.redrawInnerBends=function(p0,pe){var g=this.graph.getModel().getGeometry(this.state.cell);var pts=g.points;if(pts!=null){if(this.points==null){this.points=[];}for(var i=1;i<this.bends.length-1;i++){if(this.bends[i]!=null){if(this.abspoints[i]!=null){var x=this.abspoints[i].x;var y=this.abspoints[i].y;var b=this.bends[i].bounds;this.bends[i].node.style.visibility='visible';this.bends[i].bounds=new mxRectangle(x-b.width/2,y-b.height/2,b.width,b.height);this.bends[i].redraw();this.points[i-1]=pts[i-1];}else{this.bends[i].destroy();this.bends[i]=null;}}}}};mxEdgeHandler.prototype.drawPreview=function(){if(this.isLabel){var s=mxConstants.LABEL_HANDLE_SIZE;var bounds=new mxRectangle(this.label.x-s/2,this.label.y-s/2,s,s);this.labelShape.bounds=bounds;this.labelShape.redraw();}else{this.shape.points=this.abspoints;this.shape.redraw();}mxUtils.repaintGraph(this.graph,this.shape.points[this.shape.points.length-1]);};mxEdgeHandler.prototype.destroy=function(){if(this.marker!=null){this.marker.destroy();this.marker=null;}if(this.shape!=null){this.shape.destroy();this.shape=null;}if(this.labelShape!=null){this.labelShape.destroy();this.labelShape=null;}if(this.constraintHandler!=null){this.constraintHandler.destroy();this.constraintHandler=null;}if(this.bends!=null){for(var i=0;i<this.bends.length;i++){if(this.bends[i]!=null){this.bends[i].destroy();this.bends[i]=null;}}}};function mxElbowEdgeHandler(state){if(state!=null){this.state=state;this.init();}};mxElbowEdgeHandler.prototype=new mxEdgeHandler();mxElbowEdgeHandler.prototype.constructor=mxElbowEdgeHandler;mxElbowEdgeHandler.prototype.flipEnabled=true;mxElbowEdgeHandler.prototype.doubleClickOrientationResource=(mxClient.language!='none')?'doubleClickOrientation':'';mxElbowEdgeHandler.prototype.createBends=function(){var bends=[];var bend=this.createHandleShape(0);this.initBend(bend);bend.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE;mxEvent.redirectMouseEvents(bend.node,this.graph,this.state);bends.push(bend);if(mxClient.IS_TOUCH){bend.node.setAttribute('pointer-events','none');}bends.push(this.createVirtualBend());this.points.push(new mxPoint(0,0));bend=this.createHandleShape(2);this.initBend(bend);bend.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE;mxEvent.redirectMouseEvents(bend.node,this.graph,this.state);bends.push(bend);if(mxClient.IS_TOUCH){bend.node.setAttribute('pointer-events','none');}return bends;};mxElbowEdgeHandler.prototype.createVirtualBend=function(){var bend=this.createHandleShape();this.initBend(bend);var crs=this.getCursorForBend();bend.node.style.cursor=crs;var dblClick=mxUtils.bind(this,function(evt){if(!mxEvent.isConsumed(evt)&&this.flipEnabled){this.graph.flipEdge(this.state.cell,evt);mxEvent.consume(evt);}});mxEvent.redirectMouseEvents(bend.node,this.graph,this.state,null,null,null,dblClick);if(!this.graph.isCellBendable(this.state.cell)){bend.node.style.visibility='hidden';}return bend;};mxElbowEdgeHandler.prototype.getCursorForBend=function(){return(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||((this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL))?'row-resize':'col-resize';};mxElbowEdgeHandler.prototype.getTooltipForNode=function(node){var tip=null;if(this.bends!=null&&this.bends[1]!=null&&(node==this.bends[1].node||node.parentNode==this.bends[1].node)){tip=this.doubleClickOrientationResource;tip=mxResources.get(tip)||tip;}return tip;};mxElbowEdgeHandler.prototype.convertPoint=function(point,gridEnabled){var scale=this.graph.getView().getScale();var tr=this.graph.getView().getTranslate();var origin=this.state.origin;if(gridEnabled){point.x=this.graph.snap(point.x);point.y=this.graph.snap(point.y);}point.x=Math.round(point.x/scale-tr.x-origin.x);point.y=Math.round(point.y/scale-tr.y-origin.y);};mxElbowEdgeHandler.prototype.redrawInnerBends=function(p0,pe){var g=this.graph.getModel().getGeometry(this.state.cell);var pts=g.points;var pt=(pts!=null)?pts[0]:null;if(pt==null){pt=new mxPoint(p0.x+(pe.x-p0.x)/2,p0.y+(pe.y-p0.y)/2);}else{pt=new mxPoint(this.graph.getView().scale*(pt.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(pt.y+this.graph.getView().translate.y+this.state.origin.y));}var b=this.bends[1].bounds;var w=b.width;var h=b.height;if(this.handleImage==null){w=mxConstants.HANDLE_SIZE;h=mxConstants.HANDLE_SIZE;}var bounds=new mxRectangle(pt.x-w/2,pt.y-h/2,w,h);if(this.handleImage==null&&this.labelShape.node.style.visibility!='hidden'&&mxUtils.intersects(bounds,this.labelShape.bounds)){w+=3;h+=3;bounds=new mxRectangle(pt.x-w/2,pt.y-h/2,w,h);}this.bends[1].bounds=bounds;this.bends[1].reconfigure();this.bends[1].redraw();};function mxEdgeSegmentHandler(state){if(state!=null){this.state=state;this.init();}};mxEdgeSegmentHandler.prototype=new mxElbowEdgeHandler();mxEdgeSegmentHandler.prototype.constructor=mxEdgeSegmentHandler;mxEdgeSegmentHandler.prototype.getPreviewPoints=function(point){if(this.isSource||this.isTarget){return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);}else{this.convertPoint(point,false);var pts=this.state.absolutePoints;var last=pts[0].clone();this.convertPoint(last,false);var result=[];for(var i=1;i<pts.length;i++){var pt=pts[i].clone();this.convertPoint(pt,false);if(i==this.index){if(last.x==pt.x){last.x=point.x;pt.x=point.x;}else{last.y=point.y;pt.y=point.y;}}if(i<pts.length-1){result.push(pt);}last=pt;}if(result.length==1){var view=this.state.view;var source=this.state.getVisibleTerminalState(true);var target=this.state.getVisibleTerminalState(false);if(target!=null&source!=null){if(mxUtils.contains(target,result[0].x,result[0].y)){if(pts[1].y==pts[2].y){result[0].y=view.getRoutingCenterY(source);}else{result[0].x=view.getRoutingCenterX(source);}}else if(mxUtils.contains(source,result[0].x,result[0].y)){if(pts[1].y==pts[0].y){result[0].y=view.getRoutingCenterY(target);}else{result[0].x=view.getRoutingCenterX(target);}}}}else if(result.length==0){result=[point];}return result;}};mxEdgeSegmentHandler.prototype.createBends=function(){var bends=[];var bend=this.createHandleShape(0);this.initBend(bend);bend.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE;mxEvent.redirectMouseEvents(bend.node,this.graph,this.state);bends.push(bend);if(mxClient.IS_TOUCH){bend.node.setAttribute('pointer-events','none');}var pts=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){if(this.points==null){this.points=[];}for(var i=0;i<pts.length-1;i++){var bend=this.createVirtualBend();bends.push(bend);var horizontal=pts[i].x-pts[i+1].x==0;bend.node.style.cursor=(horizontal)?'col-resize':'row-resize';this.points.push(new mxPoint(0,0));if(mxClient.IS_TOUCH){bend.node.setAttribute('pointer-events','none');}}}var bend=this.createHandleShape(pts.length);this.initBend(bend);bend.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE;mxEvent.redirectMouseEvents(bend.node,this.graph,this.state);bends.push(bend);if(mxClient.IS_TOUCH){bend.node.setAttribute('pointer-events','none');}return bends;};mxEdgeSegmentHandler.prototype.redrawInnerBends=function(p0,pe){if(this.graph.isCellBendable(this.state.cell)){var s=mxConstants.HANDLE_SIZE;var pts=this.state.absolutePoints;if(pts!=null&&pts.length>1){for(var i=0;i<this.state.absolutePoints.length-1;i++){if(this.bends[i+1]!=null){var p0=pts[i];var pe=pts[i+1];var pt=new mxPoint(p0.x+(pe.x-p0.x)/2,p0.y+(pe.y-p0.y)/2);this.bends[i+1].bounds=new mxRectangle(pt.x-s/2,pt.y-s/2,s,s);this.bends[i+1].reconfigure();this.bends[i+1].redraw();}}}}};mxEdgeSegmentHandler.prototype.connect=function(edge,terminal,isSource,isClone,me){mxEdgeHandler.prototype.connect.apply(this,arguments);this.refresh();};mxEdgeSegmentHandler.prototype.changeTerminalPoint=function(edge,point,isSource){mxEdgeHandler.prototype.changeTerminalPoint.apply(this,arguments);this.refresh();};mxEdgeSegmentHandler.prototype.changePoints=function(edge,points){points=[];var pts=this.abspoints;if(pts.length>1){var pt0=pts[0];var pt1=pts[1];for(var i=2;i<pts.length;i++){var pt2=pts[i];if((Math.round(pt0.x)!=Math.round(pt1.x)||Math.round(pt1.x)!=Math.round(pt2.x))&&(Math.round(pt0.y)!=Math.round(pt1.y)||Math.round(pt1.y)!=Math.round(pt2.y))){pt0=pt1;pt1=pt1.clone();this.convertPoint(pt1,false);points.push(pt1);}pt1=pt2;}}mxElbowEdgeHandler.prototype.changePoints.apply(this,arguments);this.refresh();};mxEdgeSegmentHandler.prototype.refresh=function(){if(this.bends!=null){for(var i=0;i<this.bends.length;i++){if(this.bends[i]!=null){this.bends[i].destroy();this.bends[i]=null;}}this.bends=this.createBends();}};function mxKeyHandler(graph,target){if(graph!=null){this.graph=graph;this.target=target||document.documentElement;this.normalKeys=[];this.shiftKeys=[];this.controlKeys=[];this.controlShiftKeys=[];mxEvent.addListener(this.target,"keydown",mxUtils.bind(this,function(evt){this.keyDown(evt);}));if(mxClient.IS_IE){mxEvent.addListener(window,'unload',mxUtils.bind(this,function(){this.destroy();}));}}};mxKeyHandler.prototype.graph=null;mxKeyHandler.prototype.target=null;mxKeyHandler.prototype.normalKeys=null;mxKeyHandler.prototype.shiftKeys=null;mxKeyHandler.prototype.controlKeys=null;mxKeyHandler.prototype.controlShiftKeys=null;mxKeyHandler.prototype.enabled=true;mxKeyHandler.prototype.isEnabled=function(){return this.enabled;};mxKeyHandler.prototype.setEnabled=function(enabled){this.enabled=enabled;};mxKeyHandler.prototype.bindKey=function(code,funct){this.normalKeys[code]=funct;};mxKeyHandler.prototype.bindShiftKey=function(code,funct){this.shiftKeys[code]=funct;};mxKeyHandler.prototype.bindControlKey=function(code,funct){this.controlKeys[code]=funct;};mxKeyHandler.prototype.bindControlShiftKey=function(code,funct){this.controlShiftKeys[code]=funct;};mxKeyHandler.prototype.isControlDown=function(evt){return mxEvent.isControlDown(evt);};mxKeyHandler.prototype.getFunction=function(evt){if(evt!=null){if(this.isControlDown(evt)){if(mxEvent.isShiftDown(evt)){return this.controlShiftKeys[evt.keyCode];}else{return this.controlKeys[evt.keyCode];}}else{if(mxEvent.isShiftDown(evt)){return this.shiftKeys[evt.keyCode];}else{return this.normalKeys[evt.keyCode];}}}return null;};mxKeyHandler.prototype.isGraphEvent=function(evt){var source=mxEvent.getSource(evt);if((source==this.target||source.parentNode==this.target)||(this.graph.cellEditor!=null&&source==this.graph.cellEditor.textarea)){return true;}var elt=source;while(elt!=null){if(elt==this.graph.container){return true;}elt=elt.parentNode;}return false;};mxKeyHandler.prototype.keyDown=function(evt){if(this.graph.isEnabled()&&!mxEvent.isConsumed(evt)&&this.isGraphEvent(evt)&&this.isEnabled()){if(evt.keyCode==27 ){this.escape(evt);}else if(!this.graph.isEditing()){var boundFunction=this.getFunction(evt);if(boundFunction!=null){boundFunction(evt);mxEvent.consume(evt);}}}};mxKeyHandler.prototype.escape=function(evt){if(this.graph.isEscapeEnabled()){this.graph.escape(evt);}};mxKeyHandler.prototype.destroy=function(){this.target=null;};function mxTooltipHandler(graph,delay){if(graph!=null){this.graph=graph;this.delay=delay||500;this.graph.addMouseListener(this);}};mxTooltipHandler.prototype.zIndex=10005;mxTooltipHandler.prototype.graph=null;mxTooltipHandler.prototype.delay=null;mxTooltipHandler.prototype.hideOnHover=false;mxTooltipHandler.prototype.enabled=true;mxTooltipHandler.prototype.isEnabled=function(){return this.enabled;};mxTooltipHandler.prototype.setEnabled=function(enabled){this.enabled=enabled;};mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover;};mxTooltipHandler.prototype.setHideOnHover=function(value){this.hideOnHover=value;};mxTooltipHandler.prototype.init=function(){if(document.body!=null){this.div=document.createElement('div');this.div.className='mxTooltip';this.div.style.visibility='hidden';this.div.style.zIndex=this.zIndex;document.body.appendChild(this.div);mxEvent.addListener(this.div,'mousedown',mxUtils.bind(this,function(evt){this.hideTooltip();}));}};mxTooltipHandler.prototype.mouseDown=function(sender,me){this.reset(me,false);this.hideTooltip();};mxTooltipHandler.prototype.mouseMove=function(sender,me){if(me.getX()!=this.lastX||me.getY()!=this.lastY){this.reset(me,true);if(this.isHideOnHover()||me.getState()!=this.state||(me.getSource()!=this.node&&(!this.stateSource||(me.getState()!=null&&this.stateSource==(me.isSource(me.getState().shape)||!me.isSource(me.getState().text)))))){this.hideTooltip();}}this.lastX=me.getX();this.lastY=me.getY();};mxTooltipHandler.prototype.mouseUp=function(sender,me){this.reset(me,true);this.hideTooltip();};mxTooltipHandler.prototype.resetTimer=function(){if(this.thread!=null){window.clearTimeout(this.thread);this.thread=null;}};mxTooltipHandler.prototype.reset=function(me,restart){this.resetTimer();if(restart&&this.isEnabled()&&me.getState()!=null&&(this.div==null||this.div.style.visibility=='hidden')){var state=me.getState();var node=me.getSource();var x=me.getX();var y=me.getY();var stateSource=me.isSource(state.shape)||me.isSource(state.text);this.thread=window.setTimeout(mxUtils.bind(this, function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var tip=this.graph.getTooltip(state,node,x,y);this.show(tip,x,y);this.state=state;this.node=node;this.stateSource=stateSource;}}),this.delay);}};mxTooltipHandler.prototype.hide=function(){this.resetTimer();this.hideTooltip();};mxTooltipHandler.prototype.hideTooltip=function(){if(this.div!=null){this.div.style.visibility='hidden';}};mxTooltipHandler.prototype.show=function(tip,x,y){if(tip!=null&&tip.length>0){if(this.div==null){this.init();}var origin=mxUtils.getScrollOrigin();this.div.style.left=(x+origin.x)+'px';this.div.style.top=(y+mxConstants.TOOLTIP_VERTICAL_OFFSET+origin.y)+'px';if(!mxUtils.isNode(tip)){this.div.innerHTML=tip.replace(/\n/g,'<br>');}else{this.div.innerHTML='';this.div.appendChild(tip);}this.div.style.visibility='';mxUtils.fit(this.div);}};mxTooltipHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);mxEvent.release(this.div);if(this.div!=null&&this.div.parentNode!=null){this.div.parentNode.removeChild(this.div);}this.div=null;};function mxCellTracker(graph,color,funct){mxCellMarker.call(this,graph,color);this.graph.addMouseListener(this);if(funct!=null){this.getCell=funct;}if(mxClient.IS_IE){mxEvent.addListener(window,'unload',mxUtils.bind(this,function(){this.destroy();}));}};mxCellTracker.prototype=new mxCellMarker();mxCellTracker.prototype.constructor=mxCellTracker;mxCellTracker.prototype.mouseDown=function(sender,me){};mxCellTracker.prototype.mouseMove=function(sender,me){if(this.isEnabled()){this.process(me);}};mxCellTracker.prototype.mouseUp=function(sender,me){this.reset();};mxCellTracker.prototype.destroy=function(){if(!this.destroyed){this.destroyed=true;this.graph.removeMouseListener(this);mxCellMarker.prototype.destroy.apply(this);}};function mxCellHighlight(graph,highlightColor,strokeWidth){if(graph!=null){this.graph=graph;this.highlightColor=(highlightColor!=null)?highlightColor:mxConstants.DEFAULT_VALID_COLOR;this.strokeWidth=(strokeWidth!=null)?strokeWidth:mxConstants.HIGHLIGHT_STROKEWIDTH;this.resetHandler=mxUtils.bind(this,function(sender){this.hide();});this.graph.getView().addListener(mxEvent.SCALE,this.resetHandler);this.graph.getView().addListener(mxEvent.TRANSLATE,this.resetHandler);this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.resetHandler);this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler);this.graph.getView().addListener(mxEvent.UP,this.resetHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.resetHandler);}};mxCellHighlight.prototype.keepOnTop=false;mxCellHighlight.prototype.graph=true;mxCellHighlight.prototype.state=null;mxCellHighlight.prototype.spacing=2;mxCellHighlight.prototype.resetHandler=null;mxCellHighlight.prototype.setHighlightColor=function(color){this.highlightColor=color;if(this.shape!=null){if(this.shape.dialect==mxConstants.DIALECT_SVG){this.shape.innerNode.setAttribute('stroke',color);}else if(this.shape.dialect==mxConstants.DIALECT_VML){this.shape.node.setAttribute('strokecolor',color);}}};mxCellHighlight.prototype.drawHighlight=function(state){var shape=this.createShape(state);shape.redraw();if(!this.keepOnTop&&shape.node.parentNode.firstChild!=shape.node){shape.node.parentNode.insertBefore(shape.node,shape.node.parentNode.firstChild);}if(this.graph.model.isEdge(state.cell)){mxUtils.repaintGraph(this.graph,shape.points[0]);}return shape;};mxCellHighlight.prototype.createShape=function(state){var shape=null;if(this.graph.model.isEdge(state.cell)){shape=new mxPolyline(state.absolutePoints,this.highlightColor,this.strokeWidth);}else{shape=new mxRectangleShape(new mxRectangle(state.x-this.spacing,state.y-this.spacing,state.width+2*this.spacing,state.height+2*this.spacing),null,this.highlightColor,this.strokeWidth);}shape.dialect=(this.graph.dialect!=mxConstants.DIALECT_SVG)?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG;shape.init(this.graph.getView().getOverlayPane());mxEvent.redirectMouseEvents(shape.node,this.graph,state);if(state.shape!=null){shape.setCursor(state.shape.getCursor());}if(shape.dialect==mxConstants.DIALECT_SVG){shape.node.setAttribute('style','pointer-events:none;');}else{shape.node.style.background='';}return shape;};mxCellHighlight.prototype.hide=function(){this.highlight(null);};mxCellHighlight.prototype.highlight=function(state){if(this.state!=state){if(this.shape!=null){this.shape.destroy();this.shape=null;}if(state!=null){this.shape=this.drawHighlight(state);}this.state=state;}};mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler);this.graph.getModel().removeListener(this.resetHandler);if(this.shape!=null){this.shape.destroy();this.shape=null;}};function mxDefaultKeyHandler(editor){if(editor!=null){this.editor=editor;this.handler=new mxKeyHandler(editor.graph);var old=this.handler.escape;this.handler.escape=function(evt){old.apply(this,arguments);editor.hideProperties();editor.fireEvent(new mxEventObject(mxEvent.ESCAPE,'event',evt));};}};mxDefaultKeyHandler.prototype.editor=null;mxDefaultKeyHandler.prototype.handler=null;mxDefaultKeyHandler.prototype.bindAction=function(code,action,control){var keyHandler=mxUtils.bind(this,function(){this.editor.execute(action);});if(control){this.handler.bindControlKey(code,keyHandler);}else{this.handler.bindKey(code,keyHandler);}};mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy();this.handler=null;};function mxDefaultPopupMenu(config){this.config=config;};mxDefaultPopupMenu.prototype.imageBasePath=null;mxDefaultPopupMenu.prototype.config=null;mxDefaultPopupMenu.prototype.createMenu=function(editor,menu,cell,evt){if(this.config!=null){var conditions=this.createConditions(editor,cell,evt);var item=this.config.firstChild;this.addItems(editor,menu,cell,evt,conditions,item,null);}};mxDefaultPopupMenu.prototype.addItems=function(editor,menu,cell,evt,conditions,item,parent){var addSeparator=false;while(item!=null){if(item.nodeName=='add'){var condition=item.getAttribute('if');if(condition==null||conditions[condition]){var as=item.getAttribute('as');as=mxResources.get(as)||as;var funct=mxUtils.eval(mxUtils.getTextContent(item));var action=item.getAttribute('action');var icon=item.getAttribute('icon');var iconCls=item.getAttribute('iconCls');if(addSeparator){menu.addSeparator(parent);addSeparator=false;}if(icon!=null&&this.imageBasePath){icon=this.imageBasePath+icon;}var row=this.addAction(menu,editor,as,icon,funct,action,cell,parent,iconCls);this.addItems(editor,menu,cell,evt,conditions,item.firstChild,row);}}else if(item.nodeName=='separator'){addSeparator=true;}item=item.nextSibling;}};mxDefaultPopupMenu.prototype.addAction=function(menu,editor,lab,icon,funct,action,cell,parent,iconCls){var clickHandler=function(evt){if(typeof(funct)=='function'){funct.call(editor,editor,cell,evt);}if(action!=null){editor.execute(action,cell,evt);}};return menu.addItem(lab,icon,clickHandler,parent,iconCls);};mxDefaultPopupMenu.prototype.createConditions=function(editor,cell,evt){var model=editor.graph.getModel();var childCount=model.getChildCount(cell);var conditions=[];conditions['nocell']=cell==null;conditions['ncells']=editor.graph.getSelectionCount()>1;conditions['notRoot']=model.getRoot()!=model.getParent(editor.graph.getDefaultParent());conditions['cell']=cell!=null;var isCell=cell!=null&&editor.graph.getSelectionCount()==1;conditions['nonEmpty']=isCell&&childCount>0;conditions['expandable']=isCell&&editor.graph.isCellFoldable(cell,false);conditions['collapsable']=isCell&&editor.graph.isCellFoldable(cell,true);conditions['validRoot']=isCell&&editor.graph.isValidRoot(cell);conditions['emptyValidRoot']=conditions['validRoot']&&childCount==0;conditions['swimlane']=isCell&&editor.graph.isSwimlane(cell);var condNodes=this.config.getElementsByTagName('condition');for(var i=0;i<condNodes.length;i++){var funct=mxUtils.eval(mxUtils.getTextContent(condNodes[i]));var name=condNodes[i].getAttribute('name');if(name!=null&&typeof(funct)=='function'){conditions[name]=funct(editor,cell,evt);}}return conditions;};function mxDefaultToolbar(container,editor){this.editor=editor;if(container!=null&&editor!=null){this.init(container);}};mxDefaultToolbar.prototype.editor=null;mxDefaultToolbar.prototype.toolbar=null;mxDefaultToolbar.prototype.resetHandler=null;mxDefaultToolbar.prototype.spacing=4;mxDefaultToolbar.prototype.connectOnDrop=false;mxDefaultToolbar.prototype.init=function(container){if(container!=null){this.toolbar=new mxToolbar(container);this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(sender,evt){var funct=evt.getProperty('function');if(funct!=null){this.editor.insertFunction=mxUtils.bind(this,function(){funct.apply(this,arguments);this.toolbar.resetMode();});}else{this.editor.insertFunction=null;}}));this.resetHandler=mxUtils.bind(this,function(){if(this.toolbar!=null){this.toolbar.resetMode(true);}});this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler);this.editor.addListener(mxEvent.ESCAPE,this.resetHandler);}};mxDefaultToolbar.prototype.addItem=function(title,icon,action,pressed){var clickHandler=mxUtils.bind(this,function(){if(action!=null&&action.length>0){this.editor.execute(action);}});return this.toolbar.addItem(title,icon,clickHandler,pressed);};mxDefaultToolbar.prototype.addSeparator=function(icon){icon=icon||mxClient.imageBasePath+'/separator.gif';this.toolbar.addSeparator(icon);};mxDefaultToolbar.prototype.addCombo=function(){return this.toolbar.addCombo();};mxDefaultToolbar.prototype.addActionCombo=function(title){return this.toolbar.addActionCombo(title);};mxDefaultToolbar.prototype.addActionOption=function(combo,title,action){var clickHandler=mxUtils.bind(this,function(){this.editor.execute(action);});this.addOption(combo,title,clickHandler);};mxDefaultToolbar.prototype.addOption=function(combo,title,value){return this.toolbar.addOption(combo,title,value);};mxDefaultToolbar.prototype.addMode=function(title,icon,mode,pressed,funct){var clickHandler=mxUtils.bind(this,function(){this.editor.setMode(mode);if(funct!=null){funct(this.editor);}});return this.toolbar.addSwitchMode(title,icon,clickHandler,pressed);};mxDefaultToolbar.prototype.addPrototype=function(title,icon,ptype,pressed,insert,toggle){var factory=function(){if(typeof(ptype)=='function'){return ptype();}else if(ptype!=null){return ptype.clone();}return null;};var clickHandler=mxUtils.bind(this,function(evt,cell){if(typeof(insert)=='function'){insert(this.editor,factory(),evt,cell);}else{this.drop(factory(),evt,cell);}this.toolbar.resetMode();mxEvent.consume(evt);});var img=this.toolbar.addMode(title,icon,clickHandler,pressed,null,toggle);var dropHandler=function(graph,evt,cell){clickHandler(evt,cell);};this.installDropHandler(img,dropHandler);return img;};mxDefaultToolbar.prototype.drop=function(vertex,evt,target){var graph=this.editor.graph;var model=graph.getModel();if(target==null||model.isEdge(target)||!this.connectOnDrop||!graph.isCellConnectable(target)){while(target!=null&&!graph.isValidDropTarget(target,[vertex],evt)){target=model.getParent(target);}this.insert(vertex,evt,target);}else{this.connect(vertex,evt,target);}};mxDefaultToolbar.prototype.insert=function(vertex,evt,target){var graph=this.editor.graph;if(graph.canImportCell(vertex)){var x=mxEvent.getClientX(evt);var y=mxEvent.getClientY(evt);var pt=mxUtils.convertPoint(graph.container,x,y);if(graph.isSplitEnabled()&&graph.isSplitTarget(target,[vertex],evt)){return graph.splitEdge(target,[vertex],null,pt.x,pt.y);}else{return this.editor.addVertex(target,vertex,pt.x,pt.y);}}return null;};mxDefaultToolbar.prototype.connect=function(vertex,evt,source){var graph=this.editor.graph;var model=graph.getModel();if(source!=null&&graph.isCellConnectable(vertex)&&graph.isEdgeValid(null,source,vertex)){var edge=null;model.beginUpdate();try{var geo=model.getGeometry(source);var g=model.getGeometry(vertex).clone();g.x=geo.x+(geo.width-g.width)/2;g.y=geo.y+(geo.height-g.height)/2;var step=this.spacing*graph.gridSize;var dist=model.getDirectedEdgeCount(source,true)*20;if(this.editor.horizontalFlow){g.x+=(g.width+geo.width)/2+step+dist;}else{g.y+=(g.height+geo.height)/2+step+dist;}vertex.setGeometry(g);var parent=model.getParent(source);graph.addCell(vertex,parent);graph.constrainChild(vertex);edge=this.editor.createEdge(source,vertex);if(model.getGeometry(edge)==null){var edgeGeometry=new mxGeometry();edgeGeometry.relative=true;model.setGeometry(edge,edgeGeometry);}graph.addEdge(edge,parent,source,vertex);}finally{model.endUpdate();}graph.setSelectionCells([vertex,edge]);graph.scrollCellToVisible(vertex);}};mxDefaultToolbar.prototype.installDropHandler=function(img,dropHandler){var sprite=document.createElement('img');sprite.setAttribute('src',img.getAttribute('src'));var loader=mxUtils.bind(this,function(evt){sprite.style.width=(2*img.offsetWidth)+'px';sprite.style.height=(2*img.offsetHeight)+'px';mxUtils.makeDraggable(img,this.editor.graph,dropHandler,sprite);mxEvent.removeListener(sprite,'load',loader);});if(mxClient.IS_IE){loader();}else{mxEvent.addListener(sprite,'load',loader);}};mxDefaultToolbar.prototype.destroy=function(){if(this.resetHandler!=null){this.editor.graph.removeListener('dblclick',this.resetHandler);this.editor.removeListener('escape',this.resetHandler);this.resetHandler=null;}if(this.toolbar!=null){this.toolbar.destroy();this.toolbar=null;}};function mxEditor(config){this.actions=[];this.addActions();if(document.body!=null){this.cycleAttributeValues=[];this.popupHandler=new mxDefaultPopupMenu();this.undoManager=new mxUndoManager();this.graph=this.createGraph();this.toolbar=this.createToolbar();this.keyHandler=new mxDefaultKeyHandler(this);this.configure(config);this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName;if(!mxClient.IS_LOCAL&&this.urlInit!=null){this.createSession();}if(this.onInit!=null){this.onInit();}if(mxClient.IS_IE){mxEvent.addListener(window,'unload',mxUtils.bind(this,function(){this.destroy();}));}}};if(mxLoadResources){mxResources.add(mxClient.basePath+'/resources/editor');}mxEditor.prototype=new mxEventSource();mxEditor.prototype.constructor=mxEditor;mxEditor.prototype.askZoomResource=(mxClient.language!='none')?'askZoom':'';mxEditor.prototype.lastSavedResource=(mxClient.language!='none')?'lastSaved':'';mxEditor.prototype.currentFileResource=(mxClient.language!='none')?'currentFile':'';mxEditor.prototype.propertiesResource=(mxClient.language!='none')?'properties':'';mxEditor.prototype.tasksResource=(mxClient.language!='none')?'tasks':'';mxEditor.prototype.helpResource=(mxClient.language!='none')?'help':'';mxEditor.prototype.outlineResource=(mxClient.language!='none')?'outline':'';mxEditor.prototype.outline=null;mxEditor.prototype.graph=null;mxEditor.prototype.graphRenderHint=null;mxEditor.prototype.toolbar=null;mxEditor.prototype.status=null;mxEditor.prototype.popupHandler=null;mxEditor.prototype.undoManager=null;mxEditor.prototype.keyHandler=null;mxEditor.prototype.actions=null;mxEditor.prototype.dblClickAction='edit';mxEditor.prototype.swimlaneRequired=false;mxEditor.prototype.disableContextMenu=true;mxEditor.prototype.insertFunction=null;mxEditor.prototype.forcedInserting=false;mxEditor.prototype.templates=null;mxEditor.prototype.defaultEdge=null;mxEditor.prototype.defaultEdgeStyle=null;mxEditor.prototype.defaultGroup=null;mxEditor.prototype.groupBorderSize=null;mxEditor.prototype.filename=null;mxEditor.prototype.linefeed='&#xa;';mxEditor.prototype.postParameterName='xml';mxEditor.prototype.escapePostData=true;mxEditor.prototype.urlPost=null;mxEditor.prototype.urlImage=null;mxEditor.prototype.urlInit=null;mxEditor.prototype.urlNotify=null;mxEditor.prototype.urlPoll=null;mxEditor.prototype.horizontalFlow=false;mxEditor.prototype.layoutDiagram=false;mxEditor.prototype.swimlaneSpacing=0;mxEditor.prototype.maintainSwimlanes=false;mxEditor.prototype.layoutSwimlanes=false;mxEditor.prototype.cycleAttributeValues=null;mxEditor.prototype.cycleAttributeIndex=0;mxEditor.prototype.cycleAttributeName='fillColor';mxEditor.prototype.tasks=null;mxEditor.prototype.tasksWindowImage=null;mxEditor.prototype.tasksTop=20;mxEditor.prototype.help=null;mxEditor.prototype.helpWindowImage=null;mxEditor.prototype.urlHelp=null;mxEditor.prototype.helpWidth=300;mxEditor.prototype.helpHeight=260;mxEditor.prototype.propertiesWidth=240;mxEditor.prototype.propertiesHeight=null;mxEditor.prototype.movePropertiesDialog=false;mxEditor.prototype.validating=false;mxEditor.prototype.modified=false;mxEditor.prototype.isModified=function(){return this.modified;};mxEditor.prototype.setModified=function(value){this.modified=value;};mxEditor.prototype.addActions=function(){this.addAction('save',function(editor){editor.save();});this.addAction('print',function(editor){var preview=new mxPrintPreview(editor.graph,1);preview.open();});this.addAction('show',function(editor){mxUtils.show(editor.graph,null,10,10);});this.addAction('exportImage',function(editor){var url=editor.getUrlImage();if(url==null||mxClient.IS_LOCAL){editor.execute('show');}else{var node=mxUtils.getViewXml(editor.graph,1);var xml=mxUtils.getXml(node,'\n');mxUtils.submit(url,editor.postParameterName+'='+encodeURIComponent(xml),document,'_blank');}});this.addAction('refresh',function(editor){editor.graph.refresh();});this.addAction('cut',function(editor){if(editor.graph.isEnabled()){mxClipboard.cut(editor.graph);}});this.addAction('copy',function(editor){if(editor.graph.isEnabled()){mxClipboard.copy(editor.graph);}});this.addAction('paste',function(editor){if(editor.graph.isEnabled()){mxClipboard.paste(editor.graph);}});this.addAction('delete',function(editor){if(editor.graph.isEnabled()){editor.graph.removeCells();}});this.addAction('group',function(editor){if(editor.graph.isEnabled()){editor.graph.setSelectionCell(editor.groupCells());}});this.addAction('ungroup',function(editor){if(editor.graph.isEnabled()){editor.graph.setSelectionCells(editor.graph.ungroupCells());}});this.addAction('removeFromParent',function(editor){if(editor.graph.isEnabled()){editor.graph.removeCellsFromParent();}});this.addAction('undo',function(editor){if(editor.graph.isEnabled()){editor.undo();}});this.addAction('redo',function(editor){if(editor.graph.isEnabled()){editor.redo();}});this.addAction('zoomIn',function(editor){editor.graph.zoomIn();});this.addAction('zoomOut',function(editor){editor.graph.zoomOut();});this.addAction('actualSize',function(editor){editor.graph.zoomActual();});this.addAction('fit',function(editor){editor.graph.fit();});this.addAction('showProperties',function(editor,cell){editor.showProperties(cell);});this.addAction('selectAll',function(editor){if(editor.graph.isEnabled()){editor.graph.selectAll();}});this.addAction('selectNone',function(editor){if(editor.graph.isEnabled()){editor.graph.clearSelection();}});this.addAction('selectVertices',function(editor){if(editor.graph.isEnabled()){editor.graph.selectVertices();}});this.addAction('selectEdges',function(editor){if(editor.graph.isEnabled()){editor.graph.selectEdges();}});this.addAction('edit',function(editor,cell){if(editor.graph.isEnabled()&&editor.graph.isCellEditable(cell)){editor.graph.startEditingAtCell(cell);}});this.addAction('toBack',function(editor,cell){if(editor.graph.isEnabled()){editor.graph.orderCells(true);}});this.addAction('toFront',function(editor,cell){if(editor.graph.isEnabled()){editor.graph.orderCells(false);}});this.addAction('enterGroup',function(editor,cell){editor.graph.enterGroup(cell);});this.addAction('exitGroup',function(editor){editor.graph.exitGroup();});this.addAction('home',function(editor){editor.graph.home();});this.addAction('selectPrevious',function(editor){if(editor.graph.isEnabled()){editor.graph.selectPreviousCell();}});this.addAction('selectNext',function(editor){if(editor.graph.isEnabled()){editor.graph.selectNextCell();}});this.addAction('selectParent',function(editor){if(editor.graph.isEnabled()){editor.graph.selectParentCell();}});this.addAction('selectChild',function(editor){if(editor.graph.isEnabled()){editor.graph.selectChildCell();}});this.addAction('collapse',function(editor){if(editor.graph.isEnabled()){editor.graph.foldCells(true);}});this.addAction('collapseAll',function(editor){if(editor.graph.isEnabled()){var cells=editor.graph.getChildVertices();editor.graph.foldCells(true,false,cells);}});this.addAction('expand',function(editor){if(editor.graph.isEnabled()){editor.graph.foldCells(false);}});this.addAction('expandAll',function(editor){if(editor.graph.isEnabled()){var cells=editor.graph.getChildVertices();editor.graph.foldCells(false,false,cells);}});this.addAction('bold',function(editor){if(editor.graph.isEnabled()){editor.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD);}});this.addAction('italic',function(editor){if(editor.graph.isEnabled()){editor.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC);}});this.addAction('underline',function(editor){if(editor.graph.isEnabled()){editor.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE);}});this.addAction('shadow',function(editor){if(editor.graph.isEnabled()){editor.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW);}});this.addAction('alignCellsLeft',function(editor){if(editor.graph.isEnabled()){editor.graph.alignCells(mxConstants.ALIGN_LEFT);}});this.addAction('alignCellsCenter',function(editor){if(editor.graph.isEnabled()){editor.graph.alignCells(mxConstants.ALIGN_CENTER);}});this.addAction('alignCellsRight',function(editor){if(editor.graph.isEnabled()){editor.graph.alignCells(mxConstants.ALIGN_RIGHT);}});this.addAction('alignCellsTop',function(editor){if(editor.graph.isEnabled()){editor.graph.alignCells(mxConstants.ALIGN_TOP);}});this.addAction('alignCellsMiddle',function(editor){if(editor.graph.isEnabled()){editor.graph.alignCells(mxConstants.ALIGN_MIDDLE);}});this.addAction('alignCellsBottom',function(editor){if(editor.graph.isEnabled()){editor.graph.alignCells(mxConstants.ALIGN_BOTTOM);}});this.addAction('alignFontLeft',function(editor){editor.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT);});this.addAction('alignFontCenter',function(editor){if(editor.graph.isEnabled()){editor.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);}});this.addAction('alignFontRight',function(editor){if(editor.graph.isEnabled()){editor.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT);}});this.addAction('alignFontTop',function(editor){if(editor.graph.isEnabled()){editor.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP);}});this.addAction('alignFontMiddle',function(editor){if(editor.graph.isEnabled()){editor.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);}});this.addAction('alignFontBottom',function(editor){if(editor.graph.isEnabled()){editor.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM);}});this.addAction('zoom',function(editor){var current=editor.graph.getView().scale*100;var scale=parseFloat(mxUtils.prompt(mxResources.get(editor.askZoomResource)||editor.askZoomResource,current))/100;if(!isNaN(scale)){editor.graph.getView().setScale(scale);}});this.addAction('toggleTasks',function(editor){if(editor.tasks!=null){editor.tasks.setVisible(!editor.tasks.isVisible());}else{editor.showTasks();}});this.addAction('toggleHelp',function(editor){if(editor.help!=null){editor.help.setVisible(!editor.help.isVisible());}else{editor.showHelp();}});this.addAction('toggleOutline',function(editor){if(editor.outline==null){editor.showOutline();}else{editor.outline.setVisible(!editor.outline.isVisible());}});this.addAction('toggleConsole',function(editor){mxLog.setVisible(!mxLog.isVisible());});};mxEditor.prototype.createSession=function(){var session=null;var sessionChanged=mxUtils.bind(this,function(session){this.fireEvent(new mxEventObject(mxEvent.SESSION,'session',session));});session=this.connect(this.urlInit,this.urlPoll,this.urlNotify,sessionChanged);};mxEditor.prototype.configure=function(node){if(node!=null){var dec=new mxCodec(node.ownerDocument);dec.decode(node,this);this.resetHistory();}};mxEditor.prototype.resetFirstTime=function(){document.cookie='mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/';};mxEditor.prototype.resetHistory=function(){this.lastSnapshot=new Date().getTime();this.undoManager.clear();this.ignoredChanges=0;this.setModified(false);};mxEditor.prototype.addAction=function(actionname,funct){this.actions[actionname]=funct;};mxEditor.prototype.execute=function(actionname,cell,evt){var action=this.actions[actionname];if(action!=null){try{var args=arguments;args[0]=this;action.apply(this,args);}catch(e){mxUtils.error('Cannot execute '+actionname+': '+e.message,280,true);throw e;}}else{mxUtils.error('Cannot find action '+actionname,280,true);}};mxEditor.prototype.addTemplate=function(name,template){this.templates[name]=template;};mxEditor.prototype.getTemplate=function(name){return this.templates[name];};mxEditor.prototype.createGraph=function(){var graph=new mxGraph(null,null,this.graphRenderHint);graph.setTooltips(true);graph.setPanning(true);this.installDblClickHandler(graph);this.installUndoHandler(graph);this.installDrillHandler(graph);this.installChangeHandler(graph);this.installInsertHandler(graph);graph.panningHandler.factoryMethod=mxUtils.bind(this,function(menu,cell,evt){return this.createPopupMenu(menu,cell,evt);});graph.connectionHandler.factoryMethod=mxUtils.bind(this,function(source,target){return this.createEdge(source,target);});this.createSwimlaneManager(graph);this.createLayoutManager(graph);return graph;};mxEditor.prototype.createSwimlaneManager=function(graph){var swimlaneMgr=new mxSwimlaneManager(graph,false);swimlaneMgr.isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow;});swimlaneMgr.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes;});return swimlaneMgr;};mxEditor.prototype.createLayoutManager=function(graph){var layoutMgr=new mxLayoutManager(graph);var self=this;layoutMgr.getLayout=function(cell){var layout=null;var model=self.graph.getModel();if(model.getParent(cell)!=null){if(self.layoutSwimlanes&&graph.isSwimlane(cell)){if(self.swimlaneLayout==null){self.swimlaneLayout=self.createSwimlaneLayout();}layout=self.swimlaneLayout;}else if(self.layoutDiagram&&(graph.isValidRoot(cell)||model.getParent(model.getParent(cell))==null)){if(self.diagramLayout==null){self.diagramLayout=self.createDiagramLayout();}layout=self.diagramLayout;}}return layout;};return layoutMgr;};mxEditor.prototype.setGraphContainer=function(container){if(this.graph.container==null){this.graph.init(container);this.rubberband=new mxRubberband(this.graph);if(this.disableContextMenu){mxEvent.disableContextMenu(container);}if(mxClient.IS_IE){new mxDivResizer(container);}}};mxEditor.prototype.installDblClickHandler=function(graph){graph.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(sender,evt){var cell=evt.getProperty('cell');if(cell!=null&&graph.isEnabled()&&this.dblClickAction!=null){this.execute(this.dblClickAction,cell);evt.consume();}}));};mxEditor.prototype.installUndoHandler=function(graph){var listener=mxUtils.bind(this,function(sender,evt){var edit=evt.getProperty('edit');this.undoManager.undoableEditHappened(edit);});graph.getModel().addListener(mxEvent.UNDO,listener);graph.getView().addListener(mxEvent.UNDO,listener);var undoHandler=function(sender,evt){var changes=evt.getProperty('edit').changes;graph.setSelectionCells(graph.getSelectionCellsForChanges(changes));};this.undoManager.addListener(mxEvent.UNDO,undoHandler);this.undoManager.addListener(mxEvent.REDO,undoHandler);};mxEditor.prototype.installDrillHandler=function(graph){var listener=mxUtils.bind(this,function(sender){this.fireEvent(new mxEventObject(mxEvent.ROOT));});graph.getView().addListener(mxEvent.DOWN,listener);graph.getView().addListener(mxEvent.UP,listener);};mxEditor.prototype.installChangeHandler=function(graph){var listener=mxUtils.bind(this,function(sender,evt){this.setModified(true);if(this.validating==true){graph.validateGraph();}var changes=evt.getProperty('edit').changes;for(var i=0;i<changes.length;i++){var change=changes[i];if(change instanceof mxRootChange||(change instanceof mxValueChange&&change.cell==this.graph.model.root)||(change instanceof mxCellAttributeChange&&change.cell==this.graph.model.root)){this.fireEvent(new mxEventObject(mxEvent.ROOT));break;}}});graph.getModel().addListener(mxEvent.CHANGE,listener);};mxEditor.prototype.installInsertHandler=function(graph){var self=this;var insertHandler={mouseDown:function(sender,me){if(self.insertFunction!=null&&!me.isPopupTrigger()&&(self.forcedInserting||me.getState()==null)){self.graph.clearSelection();self.insertFunction(me.getEvent(),me.getCell());this.isActive=true;me.consume();}},mouseMove:function(sender,me){if(this.isActive){me.consume();}},mouseUp:function(sender,me){if(this.isActive){this.isActive=false;me.consume();}}};graph.addMouseListener(insertHandler);};mxEditor.prototype.createDiagramLayout=function(){var gs=this.graph.gridSize;var layout=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*gs,2*gs);layout.isVertexIgnored=function(cell){return!layout.graph.isSwimlane(cell);};return layout;};mxEditor.prototype.createSwimlaneLayout=function(){return new mxCompactTreeLayout(this.graph,this.horizontalFlow);};mxEditor.prototype.createToolbar=function(){return new mxDefaultToolbar(null,this);};mxEditor.prototype.setToolbarContainer=function(container){this.toolbar.init(container);if(mxClient.IS_IE){new mxDivResizer(container);}};mxEditor.prototype.setStatusContainer=function(container){if(this.status==null){this.status=container;this.addListener(mxEvent.SAVE,mxUtils.bind(this,function(){var tstamp=new Date().toLocaleString();this.setStatus((mxResources.get(this.lastSavedResource)||this.lastSavedResource)+': '+tstamp);}));this.addListener(mxEvent.OPEN,mxUtils.bind(this,function(){this.setStatus((mxResources.get(this.currentFileResource)||this.currentFileResource)+': '+this.filename);}));if(mxClient.IS_IE){new mxDivResizer(container);}}};mxEditor.prototype.setStatus=function(message){if(this.status!=null&&message!=null){this.status.innerHTML=message;}};mxEditor.prototype.setTitleContainer=function(container){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(sender){container.innerHTML=this.getTitle();}));if(mxClient.IS_IE){new mxDivResizer(container);}};mxEditor.prototype.treeLayout=function(cell,horizontal){if(cell!=null){var layout=new mxCompactTreeLayout(this.graph,horizontal);layout.execute(cell);}};mxEditor.prototype.getTitle=function(){var title='';var graph=this.graph;var cell=graph.getCurrentRoot();while(cell!=null&&graph.getModel().getParent(graph.getModel().getParent(cell))!=null){if(graph.isValidRoot(cell)){title=' > '+graph.convertValueToString(cell)+title;}cell=graph.getModel().getParent(cell);}var prefix=this.getRootTitle();return prefix+title;};mxEditor.prototype.getRootTitle=function(){var root=this.graph.getModel().getRoot();return this.graph.convertValueToString(root);};mxEditor.prototype.undo=function(){this.undoManager.undo();};mxEditor.prototype.redo=function(){this.undoManager.redo();};mxEditor.prototype.groupCells=function(){var border=(this.groupBorderSize!=null)?this.groupBorderSize:this.graph.gridSize;return this.graph.groupCells(this.createGroup(),border);};mxEditor.prototype.createGroup=function(){var model=this.graph.getModel();return model.cloneCell(this.defaultGroup);};mxEditor.prototype.open=function(filename){if(filename!=null){var xml=mxUtils.load(filename).getXml();this.readGraphModel(xml.documentElement);this.filename=filename;this.fireEvent(new mxEventObject(mxEvent.OPEN,'filename',filename));}};mxEditor.prototype.readGraphModel=function(node){var dec=new mxCodec(node.ownerDocument);dec.decode(node,this.graph.getModel());this.resetHistory();};mxEditor.prototype.save=function(url,linefeed){url=url||this.getUrlPost();if(url!=null&&url.length>0){var data=this.writeGraphModel(linefeed);this.postDiagram(url,data);this.setModified(false);}this.fireEvent(new mxEventObject(mxEvent.SAVE,'url',url));};mxEditor.prototype.postDiagram=function(url,data){if(this.escapePostData){data=encodeURIComponent(data);}mxUtils.post(url,this.postParameterName+'='+data,mxUtils.bind(this,function(req){this.fireEvent(new mxEventObject(mxEvent.POST,'request',req,'url',url,'data',data));}));};mxEditor.prototype.writeGraphModel=function(linefeed){linefeed=(linefeed!=null)?linefeed:this.linefeed;var enc=new mxCodec();var node=enc.encode(this.graph.getModel());return mxUtils.getXml(node,linefeed);};mxEditor.prototype.getUrlPost=function(){return this.urlPost;};mxEditor.prototype.getUrlImage=function(){return this.urlImage;};mxEditor.prototype.connect=function(urlInit,urlPoll,urlNotify,onChange){var session=null;if(!mxClient.IS_LOCAL){var session=new mxSession(this.graph.getModel(),urlInit,urlPoll,urlNotify);session.addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(sender,evt){var node=evt.getProperty('node');if(node.getAttribute('namespace')!=null){this.resetHistory();}}));session.addListener(mxEvent.DISCONNECT,onChange);session.addListener(mxEvent.CONNECT,onChange);session.addListener(mxEvent.NOTIFY,onChange);session.addListener(mxEvent.GET,onChange);session.start();}return session;};mxEditor.prototype.swapStyles=function(first,second){var style=this.graph.getStylesheet().styles[second];this.graph.getView().getStylesheet().putCellStyle(second,this.graph.getStylesheet().styles[first]);this.graph.getStylesheet().putCellStyle(first,style);this.graph.refresh();};mxEditor.prototype.showProperties=function(cell){cell=cell||this.graph.getSelectionCell();if(cell==null){cell=this.graph.getCurrentRoot();if(cell==null){cell=this.graph.getModel().getRoot();}}if(cell!=null){this.graph.stopEditing(true);var offset=mxUtils.getOffset(this.graph.container);var x=offset.x+10;var y=offset.y;if(this.properties!=null&&!this.movePropertiesDialog){x=this.properties.getX();y=this.properties.getY();}else{var bounds=this.graph.getCellBounds(cell);if(bounds!=null){x+=bounds.x+Math.min(200,bounds.width);y+=bounds.y;}}this.hideProperties();var node=this.createProperties(cell);if(node!=null){this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,node,x,y,this.propertiesWidth,this.propertiesHeight,false);this.properties.setVisible(true);}}};mxEditor.prototype.isPropertiesVisible=function(){return this.properties!=null;};mxEditor.prototype.createProperties=function(cell){var model=this.graph.getModel();var value=model.getValue(cell);if(mxUtils.isNode(value)){var form=new mxForm('properties');var id=form.addText('ID',cell.getId());id.setAttribute('readonly','true');var geo=null;var yField=null;var xField=null;var widthField=null;var heightField=null;if(model.isVertex(cell)){geo=model.getGeometry(cell);if(geo!=null){yField=form.addText('top',geo.y);xField=form.addText('left',geo.x);widthField=form.addText('width',geo.width);heightField=form.addText('height',geo.height);}}var tmp=model.getStyle(cell);var style=form.addText('Style',tmp||'');var attrs=value.attributes;var texts=[];for(var i=0;i<attrs.length;i++){var val=attrs[i].nodeValue;texts[i]=form.addTextarea(attrs[i].nodeName,val,(attrs[i].nodeName=='label')?4:2);}var okFunction=mxUtils.bind(this,function(){this.hideProperties();model.beginUpdate();try{if(geo!=null){geo=geo.clone();geo.x=parseFloat(xField.value);geo.y=parseFloat(yField.value);geo.width=parseFloat(widthField.value);geo.height=parseFloat(heightField.value);model.setGeometry(cell,geo);}if(style.value.length>0){model.setStyle(cell,style.value);}else{model.setStyle(cell,null);}for(var i=0;i<attrs.length;i++){var edit=new mxCellAttributeChange(cell,attrs[i].nodeName,texts[i].value);model.execute(edit);}if(this.graph.isAutoSizeCell(cell)){this.graph.updateCellSize(cell);}}finally{model.endUpdate();}});var cancelFunction=mxUtils.bind(this,function(){this.hideProperties();});form.addButtons(okFunction,cancelFunction);return form.table;}return null;};mxEditor.prototype.hideProperties=function(){if(this.properties!=null){this.properties.destroy();this.properties=null;}};mxEditor.prototype.showTasks=function(){if(this.tasks==null){var div=document.createElement('div');div.style.padding='4px';div.style.paddingLeft='20px';var w=document.body.clientWidth;var wnd=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,div,w-220,this.tasksTop,200);wnd.setClosable(true);wnd.destroyOnClose=false;var funct=mxUtils.bind(this,function(sender){mxEvent.release(div);div.innerHTML='';this.createTasks(div);});this.graph.getModel().addListener(mxEvent.CHANGE,funct);this.graph.getSelectionModel().addListener(mxEvent.CHANGE,funct);this.graph.addListener(mxEvent.ROOT,funct);if(this.tasksWindowImage!=null){wnd.setImage(this.tasksWindowImage);}this.tasks=wnd;this.createTasks(div);}this.tasks.setVisible(true);};mxEditor.prototype.refreshTasks=function(div){if(this.tasks!=null){var div=this.tasks.content;mxEvent.release(div);div.innerHTML='';this.createTasks(div);}};mxEditor.prototype.createTasks=function(div){};mxEditor.prototype.showHelp=function(tasks){if(this.help==null){var frame=document.createElement('iframe');frame.setAttribute('src',mxResources.get('urlHelp')||this.urlHelp);frame.setAttribute('height','100%');frame.setAttribute('width','100%');frame.setAttribute('frameBorder','0');frame.style.backgroundColor='white';var w=document.body.clientWidth;var h=(document.body.clientHeight||document.documentElement.clientHeight);var wnd=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,frame,(w-this.helpWidth)/2,(h-this.helpHeight)/3,this.helpWidth,this.helpHeight);wnd.setMaximizable(true);wnd.setClosable(true);wnd.destroyOnClose=false;wnd.setResizable(true);if(this.helpWindowImage!=null){wnd.setImage(this.helpWindowImage);}if(mxClient.IS_NS){var handler=function(sender){var h=wnd.div.offsetHeight;frame.setAttribute('height',(h-26)+'px');};wnd.addListener(mxEvent.RESIZE_END,handler);wnd.addListener(mxEvent.MAXIMIZE,handler);wnd.addListener(mxEvent.NORMALIZE,handler);wnd.addListener(mxEvent.SHOW,handler);}this.help=wnd;}this.help.setVisible(true);};mxEditor.prototype.showOutline=function(){var create=this.outline==null;if(create){var div=document.createElement('div');div.style.overflow='hidden';div.style.width='100%';div.style.height='100%';div.style.background='white';div.style.cursor='move';var wnd=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,div,600,480,200,200,false);var outline=new mxOutline(this.graph,div);wnd.setClosable(true);wnd.setResizable(true);wnd.destroyOnClose=false;wnd.addListener(mxEvent.RESIZE_END,function(){outline.update();});this.outline=wnd;this.outline.outline=outline;}this.outline.setVisible(true);this.outline.outline.update(true);};mxEditor.prototype.setMode=function(modename){if(modename=='select'){this.graph.panningHandler.useLeftButtonForPanning=false;this.graph.setConnectable(false);}else if(modename=='connect'){this.graph.panningHandler.useLeftButtonForPanning=false;this.graph.setConnectable(true);}else if(modename=='pan'){this.graph.panningHandler.useLeftButtonForPanning=true;this.graph.setConnectable(false);}};mxEditor.prototype.createPopupMenu=function(menu,cell,evt){this.popupHandler.createMenu(this,menu,cell,evt);};mxEditor.prototype.createEdge=function(source,target){var e=null;if(this.defaultEdge!=null){var model=this.graph.getModel();e=model.cloneCell(this.defaultEdge);}else{e=new mxCell('');e.setEdge(true);var geo=new mxGeometry();geo.relative=true;e.setGeometry(geo);}var style=this.getEdgeStyle();if(style!=null){e.setStyle(style);}return e;};mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle;};mxEditor.prototype.consumeCycleAttribute=function(cell){return(this.cycleAttributeValues!=null&&this.cycleAttributeValues.length>0&&this.graph.isSwimlane(cell))?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null;};mxEditor.prototype.cycleAttribute=function(cell){if(this.cycleAttributeName!=null){var value=this.consumeCycleAttribute(cell);if(value!=null){cell.setStyle(cell.getStyle()+';'+this.cycleAttributeName+'='+value);}}};mxEditor.prototype.addVertex=function(parent,vertex,x,y){var model=this.graph.getModel();while(parent!=null&&!this.graph.isValidDropTarget(parent)){parent=model.getParent(parent);}parent=(parent!=null)?parent:this.graph.getSwimlaneAt(x,y);var scale=this.graph.getView().scale;var geo=model.getGeometry(vertex);var pgeo=model.getGeometry(parent);if(this.graph.isSwimlane(vertex)&&!this.graph.swimlaneNesting){parent=null;}else if(parent==null&&this.swimlaneRequired){return null;}else if(parent!=null&&pgeo!=null){var state=this.graph.getView().getState(parent);if(state!=null){x-=state.origin.x*scale;y-=state.origin.y*scale;if(this.graph.isConstrainedMoving){var width=geo.width;var height=geo.height;var tmp=state.x+state.width;if(x+width>tmp){x-=x+width-tmp;}tmp=state.y+state.height;if(y+height>tmp){y-=y+height-tmp;}}}else if(pgeo!=null){x-=pgeo.x*scale;y-=pgeo.y*scale;}}geo=geo.clone();geo.x=this.graph.snap(x/scale-this.graph.getView().translate.x-this.graph.gridSize/2);geo.y=this.graph.snap(y/scale-this.graph.getView().translate.y-this.graph.gridSize/2);vertex.setGeometry(geo);if(parent==null){parent=this.graph.getDefaultParent();}this.cycleAttribute(vertex);this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,'vertex',vertex,'parent',parent));model.beginUpdate();try{vertex=this.graph.addCell(vertex,parent);if(vertex!=null){this.graph.constrainChild(vertex);this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,'vertex',vertex));}}finally{model.endUpdate();}if(vertex!=null){this.graph.setSelectionCell(vertex);this.graph.scrollCellToVisible(vertex);this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,'vertex',vertex));}return vertex;};mxEditor.prototype.destroy=function(){if(!this.destroyed){this.destroyed=true;if(this.tasks!=null){this.tasks.destroy();}if(this.outline!=null){this.outline.destroy();}if(this.properties!=null){this.properties.destroy();}if(this.keyHandler!=null){this.keyHandler.destroy();}if(this.rubberband!=null){this.rubberband.destroy();}if(this.toolbar!=null){this.toolbar.destroy();}if(this.graph!=null){this.graph.destroy();}this.status=null;this.templates=null;}};var mxCodecRegistry={codecs:[],aliases:[],register:function(codec){if(codec!=null){var name=codec.getName();mxCodecRegistry.codecs[name]=codec;var classname=mxUtils.getFunctionName(codec.template.constructor);if(classname!=name){mxCodecRegistry.addAlias(classname,name);}}return codec;},addAlias:function(classname,codecname){mxCodecRegistry.aliases[classname]=codecname;},getCodec:function(ctor){var codec=null;if(ctor!=null){var name=mxUtils.getFunctionName(ctor);var tmp=mxCodecRegistry.aliases[name];if(tmp!=null){name=tmp;}codec=mxCodecRegistry.codecs[name];if(codec==null){try{codec=new mxObjectCodec(new ctor());mxCodecRegistry.register(codec);}catch(e){}}}return codec;}};function mxCodec(document){this.document=document||mxUtils.createXmlDocument();this.objects=[];};mxCodec.prototype.document=null;mxCodec.prototype.objects=null;mxCodec.prototype.encodeDefaults=false;mxCodec.prototype.putObject=function(id,obj){this.objects[id]=obj;return obj;};mxCodec.prototype.getObject=function(id){var obj=null;if(id!=null){obj=this.objects[id];if(obj==null){obj=this.lookup(id);if(obj==null){var node=this.getElementById(id);if(node!=null){obj=this.decode(node);}}}}return obj;};mxCodec.prototype.lookup=function(id){return null;};mxCodec.prototype.getElementById=function(id,attr){attr=(attr!=null)?attr:'id';return mxUtils.findNodeByAttribute(this.document.documentElement,attr,id);};mxCodec.prototype.getId=function(obj){var id=null;if(obj!=null){id=this.reference(obj);if(id==null&&obj instanceof mxCell){id=obj.getId();if(id==null){id=mxCellPath.create(obj);if(id.length==0){id='root';}}}}return id;};mxCodec.prototype.reference=function(obj){return null;};mxCodec.prototype.encode=function(obj){var node=null;if(obj!=null&&obj.constructor!=null){var enc=mxCodecRegistry.getCodec(obj.constructor);if(enc!=null){node=enc.encode(this,obj);}else{if(mxUtils.isNode(obj)){node=(mxClient.IS_IE)?obj.cloneNode(true):this.document.importNode(obj,true);}else{mxLog.warn('mxCodec.encode: No codec for '+mxUtils.getFunctionName(obj.constructor));}}}return node;};mxCodec.prototype.decode=function(node,into){var obj=null;if(node!=null&&node.nodeType==mxConstants.NODETYPE_ELEMENT){var ctor=null;try{ctor=eval(node.nodeName);}catch(err){}try{var dec=mxCodecRegistry.getCodec(ctor);if(dec!=null){obj=dec.decode(this,node,into);}else{obj=node.cloneNode(true);obj.removeAttribute('as');}}catch(err){mxLog.debug('Cannot decode '+node.nodeName+': '+err.message);}}return obj;};mxCodec.prototype.encodeCell=function(cell,node,includeChildren){node.appendChild(this.encode(cell));if(includeChildren==null||includeChildren){var childCount=cell.getChildCount();for(var i=0;i<childCount;i++){this.encodeCell(cell.getChildAt(i),node);}}};mxCodec.prototype.isCellCodec=function(codec){if(codec!=null&&typeof(codec.isCellCodec)=='function'){return codec.isCellCodec();}return false;};mxCodec.prototype.decodeCell=function(node,restoreStructures){restoreStructures=(restoreStructures!=null)?restoreStructures:true;var cell=null;if(node!=null&&node.nodeType==mxConstants.NODETYPE_ELEMENT){var decoder=mxCodecRegistry.getCodec(node.nodeName);if(!this.isCellCodec(decoder)){var child=node.firstChild;while(child!=null&&!this.isCellCodec(decoder)){decoder=mxCodecRegistry.getCodec(child.nodeName);child=child.nextSibling;}}if(!this.isCellCodec(decoder)){decoder=mxCodecRegistry.getCodec(mxCell);}cell=decoder.decode(this,node);if(restoreStructures){this.insertIntoGraph(cell);}}return cell;};mxCodec.prototype.insertIntoGraph=function(cell){var parent=cell.parent;var source=cell.getTerminal(true);var target=cell.getTerminal(false);cell.setTerminal(null,false);cell.setTerminal(null,true);cell.parent=null;if(parent!=null){parent.insert(cell);}if(source!=null){source.insertEdge(cell,true);}if(target!=null){target.insertEdge(cell,false);}};mxCodec.prototype.setAttribute=function(node,attribute,value){if(attribute!=null&&value!=null){node.setAttribute(attribute,value);}};function mxObjectCodec(template,exclude,idrefs,mapping){this.template=template;this.exclude=(exclude!=null)?exclude:[];this.idrefs=(idrefs!=null)?idrefs:[];this.mapping=(mapping!=null)?mapping:[];this.reverse=new Object();for(var i in this.mapping){this.reverse[this.mapping[i]]=i;}};mxObjectCodec.prototype.template=null;mxObjectCodec.prototype.exclude=null;mxObjectCodec.prototype.idrefs=null;mxObjectCodec.prototype.mapping=null;mxObjectCodec.prototype.reverse=null;mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor);};mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor();};mxObjectCodec.prototype.getFieldName=function(attributename){if(attributename!=null){var mapped=this.reverse[attributename];if(mapped!=null){attributename=mapped;}}return attributename;};mxObjectCodec.prototype.getAttributeName=function(fieldname){if(fieldname!=null){var mapped=this.mapping[fieldname];if(mapped!=null){fieldname=mapped;}}return fieldname;};mxObjectCodec.prototype.isExcluded=function(obj,attr,value,write){return attr==mxObjectIdentity.FIELD_NAME||mxUtils.indexOf(this.exclude,attr)>=0;};mxObjectCodec.prototype.isReference=function(obj,attr,value,write){return mxUtils.indexOf(this.idrefs,attr)>=0;};mxObjectCodec.prototype.encode=function(enc,obj){var node=enc.document.createElement(this.getName());obj=this.beforeEncode(enc,obj,node);this.encodeObject(enc,obj,node);return this.afterEncode(enc,obj,node);};mxObjectCodec.prototype.encodeObject=function(enc,obj,node){enc.setAttribute(node,'id',enc.getId(obj));for(var i in obj){var name=i;var value=obj[name];if(value!=null&&!this.isExcluded(obj,name,value,true)){if(mxUtils.isNumeric(name)){name=null;}this.encodeValue(enc,obj,name,value,node);}}};mxObjectCodec.prototype.encodeValue=function(enc,obj,name,value,node){if(value!=null){if(this.isReference(obj,name,value,true)){var tmp=enc.getId(value);if(tmp==null){mxLog.warn('mxObjectCodec.encode: No ID for '+this.getName()+'.'+name+'='+value);return;}value=tmp;}var defaultValue=this.template[name];if(name==null||enc.encodeDefaults||defaultValue!=value){name=this.getAttributeName(name);this.writeAttribute(enc,obj,name,value,node);}}};mxObjectCodec.prototype.writeAttribute=function(enc,obj,attr,value,node){if(typeof(value)!='object' ){this.writePrimitiveAttribute(enc,obj,attr,value,node);}else {this.writeComplexAttribute(enc,obj,attr,value,node);}};mxObjectCodec.prototype.writePrimitiveAttribute=function(enc,obj,attr,value,node){value=this.convertValueToXml(value);if(attr==null){var child=enc.document.createElement('add');if(typeof(value)=='function'){child.appendChild(enc.document.createTextNode(value));}else{enc.setAttribute(child,'value',value);}node.appendChild(child);}else if(typeof(value)!='function'){enc.setAttribute(node,attr,value);}};mxObjectCodec.prototype.writeComplexAttribute=function(enc,obj,attr,value,node){var child=enc.encode(value);if(child!=null){if(attr!=null){child.setAttribute('as',attr);}node.appendChild(child);}else{mxLog.warn('mxObjectCodec.encode: No node for '+this.getName()+'.'+attr+': '+value);}};mxObjectCodec.prototype.convertValueToXml=function(value){if(typeof(value.length)=='undefined'&&(value==true||value==false)){value=(value==true)?'1':'0';}return value;};mxObjectCodec.prototype.convertValueFromXml=function(value){if(mxUtils.isNumeric(value)){value=parseFloat(value);}return value;};mxObjectCodec.prototype.beforeEncode=function(enc,obj,node){return obj;};mxObjectCodec.prototype.afterEncode=function(enc,obj,node){return node;};mxObjectCodec.prototype.decode=function(dec,node,into){var id=node.getAttribute('id');var obj=dec.objects[id];if(obj==null){obj=into||this.cloneTemplate();if(id!=null){dec.putObject(id,obj);}}node=this.beforeDecode(dec,node,obj);this.decodeNode(dec,node,obj);return this.afterDecode(dec,node,obj);};mxObjectCodec.prototype.decodeNode=function(dec,node,obj){if(node!=null){this.decodeAttributes(dec,node,obj);this.decodeChildren(dec,node,obj);}};mxObjectCodec.prototype.decodeAttributes=function(dec,node,obj){var attrs=node.attributes;if(attrs!=null){for(var i=0;i<attrs.length;i++){this.decodeAttribute(dec,attrs[i],obj);}}};mxObjectCodec.prototype.decodeAttribute=function(dec,attr,obj){var name=attr.nodeName;if(name!='as'&&name!='id'){var value=this.convertValueFromXml(attr.nodeValue);var fieldname=this.getFieldName(name);if(this.isReference(obj,fieldname,value,false)){var tmp=dec.getObject(value);if(tmp==null){mxLog.warn('mxObjectCodec.decode: No object for '+this.getName()+'.'+name+'='+value);return;}value=tmp;}if(!this.isExcluded(obj,name,value,false)){obj[name]=value;}}};mxObjectCodec.prototype.decodeChildren=function(dec,node,obj){var child=node.firstChild;while(child!=null){var tmp=child.nextSibling;if(child.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(dec,child,obj)){this.decodeChild(dec,child,obj);}child=tmp;}};mxObjectCodec.prototype.decodeChild=function(dec,child,obj){var fieldname=this.getFieldName(child.getAttribute('as'));if(fieldname==null||!this.isExcluded(obj,fieldname,child,false)){var template=this.getFieldTemplate(obj,fieldname,child);var value=null;if(child.nodeName=='add'){value=child.getAttribute('value');if(value==null){value=mxUtils.eval(mxUtils.getTextContent(child));}}else{value=dec.decode(child,template);}this.addObjectValue(obj,fieldname,value,template);}};mxObjectCodec.prototype.getFieldTemplate=function(obj,fieldname,child){var template=obj[fieldname];if(template instanceof Array&&template.length>0){template=null;}return template;};mxObjectCodec.prototype.addObjectValue=function(obj,fieldname,value,template){if(value!=null&&value!=template){if(fieldname!=null&&fieldname.length>0){obj[fieldname]=value;}else{obj.push(value);}}};mxObjectCodec.prototype.processInclude=function(dec,node,into){if(node.nodeName=='include'){var name=node.getAttribute('name');if(name!=null){try{var xml=mxUtils.load(name).getDocumentElement();if(xml!=null){dec.decode(xml,into);}}catch(e){}}return true;}return false;};mxObjectCodec.prototype.beforeDecode=function(dec,node,obj){return node;};mxObjectCodec.prototype.afterDecode=function(dec,node,obj){return obj;};mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxCell(),['children','edges','overlays','mxTransient'],['parent','source','target']);codec.isCellCodec=function(){return true;};codec.isExcluded=function(obj,attr,value,isWrite){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||(isWrite&&attr=='value'&&value.nodeType==mxConstants.NODETYPE_ELEMENT);};codec.afterEncode=function(enc,obj,node){if(obj.value!=null&&obj.value.nodeType==mxConstants.NODETYPE_ELEMENT){var tmp=node;node=(mxClient.IS_IE)?obj.value.cloneNode(true):enc.document.importNode(obj.value,true);node.appendChild(tmp);var id=tmp.getAttribute('id');node.setAttribute('id',id);tmp.removeAttribute('id');}return node;};codec.beforeDecode=function(dec,node,obj){var inner=node;var classname=this.getName();if(node.nodeName!=classname){var tmp=node.getElementsByTagName(classname)[0];if(tmp!=null&&tmp.parentNode==node){mxUtils.removeWhitespace(tmp,true);mxUtils.removeWhitespace(tmp,false);tmp.parentNode.removeChild(tmp);inner=tmp;}else{inner=null;}obj.value=node.cloneNode(true);var id=obj.value.getAttribute('id');if(id!=null){obj.setId(id);obj.value.removeAttribute('id');}}else{obj.setId(node.getAttribute('id'));}if(inner!=null){for(var i=0;i<this.idrefs.length;i++){var attr=this.idrefs[i];var ref=inner.getAttribute(attr);if(ref!=null){inner.removeAttribute(attr);var object=dec.objects[ref]||dec.lookup(ref);if(object==null){var element=dec.getElementById(ref);if(element!=null){var decoder=mxCodecRegistry.codecs[element.nodeName]||this;object=decoder.decode(dec,element);}}obj[attr]=object;}}}return inner;};return codec;}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxGraphModel());codec.encodeObject=function(enc,obj,node){var rootNode=enc.document.createElement('root');enc.encodeCell(obj.getRoot(),rootNode);node.appendChild(rootNode);};codec.decodeChild=function(dec,child,obj){if(child.nodeName=='root'){this.decodeRoot(dec,child,obj);}else{mxObjectCodec.prototype.decodeChild.apply(this,arguments);}};codec.decodeRoot=function(dec,root,model){var rootCell=null;var tmp=root.firstChild;while(tmp!=null){var cell=dec.decodeCell(tmp);if(cell!=null&&cell.getParent()==null){rootCell=cell;}tmp=tmp.nextSibling;}if(rootCell!=null){model.setRoot(rootCell);}};return codec;}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxRootChange(),['model','previous','root']);codec.afterEncode=function(enc,obj,node){enc.encodeCell(obj.root,node);return node;};codec.beforeDecode=function(dec,node,obj){if(node.firstChild!=null&&node.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){node=node.cloneNode(true);var tmp=node.firstChild;obj.root=dec.decodeCell(tmp,false);var tmp2=tmp.nextSibling;tmp.parentNode.removeChild(tmp);tmp=tmp2;while(tmp!=null){tmp2=tmp.nextSibling;dec.decodeCell(tmp);tmp.parentNode.removeChild(tmp);tmp=tmp2;}}return node;};codec.afterDecode=function(dec,node,obj){obj.previous=obj.root;return obj;};return codec;}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxChildChange(),['model','child','previousIndex'],['parent','previous']);codec.isReference=function(obj,attr,value,isWrite){if(attr=='child'&&(obj.previous!=null||!isWrite)){return true;}return mxUtils.indexOf(this.idrefs,attr)>=0;};codec.afterEncode=function(enc,obj,node){if(this.isReference(obj,'child',obj.child,true)){node.setAttribute('child',enc.getId(obj.child));}else{enc.encodeCell(obj.child,node);}return node;};codec.beforeDecode=function(dec,node,obj){if(node.firstChild!=null&&node.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){node=node.cloneNode(true);var tmp=node.firstChild;obj.child=dec.decodeCell(tmp,false);var tmp2=tmp.nextSibling;tmp.parentNode.removeChild(tmp);tmp=tmp2;while(tmp!=null){tmp2=tmp.nextSibling;if(tmp.nodeType==mxConstants.NODETYPE_ELEMENT){var id=tmp.getAttribute('id');if(dec.lookup(id)==null){dec.decodeCell(tmp);}}tmp.parentNode.removeChild(tmp);tmp=tmp2;}}else{var childRef=node.getAttribute('child');obj.child=dec.getObject(childRef);}return node;};codec.afterDecode=function(dec,node,obj){obj.child.parent=obj.previous;obj.previous=obj.parent;obj.previousIndex=obj.index;return obj;};return codec;}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxTerminalChange(),['model','previous'],['cell','terminal']);codec.afterDecode=function(dec,node,obj){obj.previous=obj.terminal;return obj;};return codec;}());var mxGenericChangeCodec=function(obj,variable){var codec=new mxObjectCodec(obj,['model','previous'],['cell']);codec.afterDecode=function(dec,node,obj){if(mxUtils.isNode(obj.cell)){obj.cell=dec.decodeCell(obj.cell,false);}obj.previous=obj[variable];return obj;};return codec;};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange(),'value'));mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange(),'style'));mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange(),'geometry'));mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange(),'collapsed'));mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange(),'visible'));mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange(),'value'));mxCodecRegistry.register(function(){return new mxObjectCodec(new mxGraph(),['graphListeners','eventListeners','view','container','cellRenderer','editor','selection']);}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxGraphView());codec.encode=function(enc,view){return this.encodeCell(enc,view,view.graph.getModel().getRoot());};codec.encodeCell=function(enc,view,cell){var model=view.graph.getModel();var state=view.getState(cell);var parent=model.getParent(cell);if(parent==null||state!=null){var childCount=model.getChildCount(cell);var geo=view.graph.getCellGeometry(cell);var name=null;if(parent==model.getRoot()){name='layer';}else if(parent==null){name='graph';}else if(model.isEdge(cell)){name='edge';}else if(childCount>0&&geo!=null){name='group';}else if(model.isVertex(cell)){name='vertex';}if(name!=null){var node=enc.document.createElement(name);var lab=view.graph.getLabel(cell);if(lab!=null){node.setAttribute('label',view.graph.getLabel(cell));if(view.graph.isHtmlLabel(cell)){node.setAttribute('html',true);}}if(parent==null){var bounds=view.getGraphBounds();if(bounds!=null){node.setAttribute('x',Math.round(bounds.x));node.setAttribute('y',Math.round(bounds.y));node.setAttribute('width',Math.round(bounds.width));node.setAttribute('height',Math.round(bounds.height));}node.setAttribute('scale',view.scale);}else if(state!=null&&geo!=null){for(var i in state.style){var value=state.style[i];if(typeof(value)=='function'&&typeof(value)=='object'){value=mxStyleRegistry.getName(value);}if(value!=null&&typeof(value)!='function'&&typeof(value)!='object'){node.setAttribute(i,value);}}var abs=state.absolutePoints;if(abs!=null&&abs.length>0){var pts=Math.round(abs[0].x)+','+Math.round(abs[0].y);for(var i=1;i<abs.length;i++){pts+=' '+Math.round(abs[i].x)+','+Math.round(abs[i].y);}node.setAttribute('points',pts);}else{node.setAttribute('x',Math.round(state.x));node.setAttribute('y',Math.round(state.y));node.setAttribute('width',Math.round(state.width));node.setAttribute('height',Math.round(state.height));}var offset=state.absoluteOffset;if(offset!=null){if(offset.x!=0){node.setAttribute('dx',Math.round(offset.x));}if(offset.y!=0){node.setAttribute('dy',Math.round(offset.y));}}}for(var i=0;i<childCount;i++){var childNode=this.encodeCell(enc,view,model.getChildAt(cell,i));if(childNode!=null){node.appendChild(childNode);}}}}return node;};return codec;}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxStylesheet());codec.encode=function(enc,obj){var node=enc.document.createElement(this.getName());for(var i in obj.styles){var style=obj.styles[i];var styleNode=enc.document.createElement('add');if(i!=null){styleNode.setAttribute('as',i);for(var j in style){var value=this.getStringValue(j,style[j]);if(value!=null){var entry=enc.document.createElement('add');entry.setAttribute('value',value);entry.setAttribute('as',j);styleNode.appendChild(entry);}}if(styleNode.childNodes.length>0){node.appendChild(styleNode);}}}return node;};codec.getStringValue=function(key,value){var type=typeof(value);if(type=='function'){value=mxStyleRegistry.getName(style[j]);}else if(type=='object'){value=null;}return value;};codec.decode=function(dec,node,into){var obj=into||new this.template.constructor();var id=node.getAttribute('id');if(id!=null){dec.objects[id]=obj;}node=node.firstChild;while(node!=null){if(!this.processInclude(dec,node,obj)&&node.nodeName=='add'){var as=node.getAttribute('as');if(as!=null){var extend=node.getAttribute('extend');var style=(extend!=null)?mxUtils.clone(obj.styles[extend]):null;if(style==null){if(extend!=null){mxLog.warn('mxStylesheetCodec.decode: stylesheet '+extend+' not found to extend');}style=new Object();}var entry=node.firstChild;while(entry!=null){if(entry.nodeType==mxConstants.NODETYPE_ELEMENT){var key=entry.getAttribute('as');if(entry.nodeName=='add'){var text=mxUtils.getTextContent(entry);var value=null;if(text!=null&&text.length>0){value=mxUtils.eval(text);}else{value=entry.getAttribute('value');if(mxUtils.isNumeric(value)){value=parseFloat(value);}}if(value!=null){style[key]=value;}}else if(entry.nodeName=='remove'){delete style[key];}}entry=entry.nextSibling;}obj.putCellStyle(as,style);}}node=node.nextSibling;}return obj;};return codec;}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxDefaultKeyHandler());codec.encode=function(enc,obj){return null;};codec.decode=function(dec,node,into){if(into!=null){var editor=into.editor;node=node.firstChild;while(node!=null){if(!this.processInclude(dec,node,into)&&node.nodeName=='add'){var as=node.getAttribute('as');var action=node.getAttribute('action');var control=node.getAttribute('control');into.bindAction(as,action,control);}node=node.nextSibling;}}return into;};return codec;}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxDefaultToolbar());codec.encode=function(enc,obj){return null;};codec.decode=function(dec,node,into){if(into!=null){var editor=into.editor;node=node.firstChild;while(node!=null){if(node.nodeType==mxConstants.NODETYPE_ELEMENT){if(!this.processInclude(dec,node,into)){if(node.nodeName=='separator'){into.addSeparator();}else if(node.nodeName=='br'){into.toolbar.addBreak();}else if(node.nodeName=='hr'){into.toolbar.addLine();}else if(node.nodeName=='add'){var as=node.getAttribute('as');as=mxResources.get(as)||as;var icon=node.getAttribute('icon');var pressedIcon=node.getAttribute('pressedIcon');var action=node.getAttribute('action');var mode=node.getAttribute('mode');var template=node.getAttribute('template');var toggle=node.getAttribute('toggle')!='0';var text=mxUtils.getTextContent(node);var elt=null;if(action!=null){elt=into.addItem(as,icon,action,pressedIcon);}else if(mode!=null){var funct=mxUtils.eval(text);elt=into.addMode(as,icon,mode,pressedIcon,funct);}else if(template!=null||(text!=null&&text.length>0)){var cell=editor.templates[template];var style=node.getAttribute('style');if(cell!=null&&style!=null){cell=cell.clone();cell.setStyle(style);}var insertFunction=null;if(text!=null&&text.length>0){insertFunction=mxUtils.eval(text);}elt=into.addPrototype(as,icon,cell,pressedIcon,insertFunction,toggle);}else{var children=mxUtils.getChildNodes(node);if(children.length>0){if(icon==null){var combo=into.addActionCombo(as);for(var i=0;i<children.length;i++){var child=children[i];if(child.nodeName=='separator'){into.addOption(combo,'---');}else if(child.nodeName=='add'){var lab=child.getAttribute('as');var act=child.getAttribute('action');into.addActionOption(combo,lab,act);}}}else{var select=null;var create=function(){var template=editor.templates[select.value];if(template!=null){var clone=template.clone();var style=select.options[select.selectedIndex].cellStyle;if(style!=null){clone.setStyle(style);}return clone;}else{mxLog.warn('Template '+template+' not found');}return null;};var img=into.addPrototype(as,icon,create,null,null,toggle);select=into.addCombo();mxEvent.addListener(select,'change',function(){into.toolbar.selectMode(img,function(evt){var pt=mxUtils.convertPoint(editor.graph.container,mxEvent.getClientX(evt),mxEvent.getClientY(evt));return editor.addVertex(null,funct(),pt.x,pt.y);});into.toolbar.noReset=false;});for(var i=0;i<children.length;i++){var child=children[i];if(child.nodeName=='separator'){into.addOption(select,'---');}else if(child.nodeName=='add'){var lab=child.getAttribute('as');var tmp=child.getAttribute('template');var option=into.addOption(select,lab,tmp||template);option.cellStyle=child.getAttribute('style');}}}}}if(elt!=null){var id=node.getAttribute('id');if(id!=null&&id.length>0){elt.setAttribute('id',id);}}}}}node=node.nextSibling;}}return into;};return codec;}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxDefaultPopupMenu());codec.encode=function(enc,obj){return null;};codec.decode=function(dec,node,into){var inc=node.getElementsByTagName('include')[0];if(inc!=null){this.processInclude(dec,inc,into);}else if(into!=null){into.config=node;}return into;};return codec;}());mxCodecRegistry.register(function(){var codec=new mxObjectCodec(new mxEditor(),['modified','lastSnapshot','ignoredChanges','undoManager','graphContainer','toolbarContainer']);codec.afterDecode=function(dec,node,obj){var defaultEdge=node.getAttribute('defaultEdge');if(defaultEdge!=null){node.removeAttribute('defaultEdge');obj.defaultEdge=obj.templates[defaultEdge];}var defaultGroup=node.getAttribute('defaultGroup');if(defaultGroup!=null){node.removeAttribute('defaultGroup');obj.defaultGroup=obj.templates[defaultGroup];}return obj;};codec.decodeChild=function(dec,child,obj){if(child.nodeName=='Array'){var role=child.getAttribute('as');if(role=='templates'){this.decodeTemplates(dec,child,obj);return;}}else if(child.nodeName=='ui'){this.decodeUi(dec,child,obj);return;}mxObjectCodec.prototype.decodeChild.apply(this,arguments);};codec.decodeUi=function(dec,node,editor){var tmp=node.firstChild;while(tmp!=null){if(tmp.nodeName=='add'){var as=tmp.getAttribute('as');var elt=tmp.getAttribute('element');var style=tmp.getAttribute('style');var element=null;if(elt!=null){element=document.getElementById(elt);if(element!=null&&style!=null){element.style.cssText+=';'+style;}}else{var x=parseInt(tmp.getAttribute('x'));var y=parseInt(tmp.getAttribute('y'));var width=tmp.getAttribute('width');var height=tmp.getAttribute('height');element=document.createElement('div');element.style.cssText=style;var wnd=new mxWindow(mxResources.get(as)||as,element,x,y,width,height,false,true);wnd.setVisible(true);}if(as=='graph'){editor.setGraphContainer(element);}else if(as=='toolbar'){editor.setToolbarContainer(element);}else if(as=='title'){editor.setTitleContainer(element);}else if(as=='status'){editor.setStatusContainer(element);}else if(as=='map'){editor.setMapContainer(element);}}else if(tmp.nodeName=='resource'){mxResources.add(tmp.getAttribute('basename'));}else if(tmp.nodeName=='stylesheet'){mxClient.link('stylesheet',tmp.getAttribute('name'));}tmp=tmp.nextSibling;}};codec.decodeTemplates=function(dec,node,editor){if(editor.templates==null){editor.templates=[];}var children=mxUtils.getChildNodes(node);for(var j=0;j<children.length;j++){var name=children[j].getAttribute('as');var child=children[j].firstChild;while(child!=null&&child.nodeType!=1){child=child.nextSibling;}if(child!=null){editor.templates[name]=dec.decodeCell(child);}}};return codec;}());
    \ No newline at end of file
    diff --git a/javascript/src/css/common.css b/javascript/src/css/common.css
    new file mode 100644
    index 000000000..5eb0b45da
    --- /dev/null
    +++ b/javascript/src/css/common.css
    @@ -0,0 +1,152 @@
    +div.mxRubberband {
    +	position: absolute;
    +	overflow: hidden;
    +	border-style: solid;
    +	border-width: 1px;
    +	border-color: #0000FF;
    +	background: #0077FF;
    +}
    +textarea.mxCellEditor {
    +	background: url('../images/transparent.gif');
    +	border-style: solid;
    +	border-color: black;
    +	border-width: 0;
    +	overflow: auto;
    +}
    +div.mxWindow {
    +	-webkit-box-shadow: 3px 3px 12px #C0C0C0;
    +	-moz-box-shadow: 3px 3px 12px #C0C0C0;
    +	box-shadow: 3px 3px 12px #C0C0C0;
    +	background: url('../images/window.gif');
    +	border-style: outset;
    +	border-width: 1px;
    +	position: absolute;
    +	overflow: hidden;
    +	z-index: 1;
    +}
    +table.mxWindow {
    +	border-collapse: collapse;
    +	table-layout: fixed;
    +  	font-family: Arial;
    +	font-size: 8pt;
    +}
    +td.mxWindowTitle {
    +	background: url('../images/window-title.gif') repeat-x;
    +	text-overflow: ellipsis;
    +	white-space: nowrap;
    + 	text-align: center;
    + 	font-weight: bold;
    + 	overflow: hidden;
    +	height: 13px;
    +	padding: 2px;
    + 	padding-top: 4px;
    + 	padding-bottom: 6px;
    + 	color: black;
    +}
    +td.mxWindowPane {
    +	vertical-align: top;
    +	padding: 0px;
    +}
    +div.mxWindowPane {
    +	overflow: hidden;
    +}
    +td.mxWindowPane td {
    +  	font-family: Arial;
    +	font-size: 8pt;
    +}
    +td.mxWindowPane input, td.mxWindowPane select, td.mxWindowPane textarea, td.mxWindowPane radio {
    +  	border-color: #8C8C8C;
    +  	border-style: solid;
    +  	border-width: 1px;
    +  	font-family: Arial;
    +	font-size: 8pt;
    + 	padding: 1px;
    +}
    +td.mxWindowPane button {
    +	background: url('../images/button.gif') repeat-x;
    +  	font-family: Arial;
    +  	font-size: 8pt;
    +  	padding: 2px;
    +	float: left;
    +}
    +img.mxToolbarItem {
    +	margin-right: 6px;
    +	margin-bottom: 6px;
    +	border-width: 1px;
    +}
    +select.mxToolbarCombo {
    +	vertical-align: top;
    +	border-style: inset;
    +	border-width: 2px;
    +}
    +div.mxToolbarComboContainer {
    +	padding: 2px;
    +}
    +img.mxToolbarMode {
    +	margin: 2px;
    +	margin-right: 4px;
    +	margin-bottom: 4px;
    +	border-width: 0px;
    +}
    +img.mxToolbarModeSelected {
    +	margin: 0px;
    +	margin-right: 2px;
    +	margin-bottom: 2px;
    +	border-width: 2px;
    +	border-style: inset;
    +}
    +div.mxTooltip {
    +	-webkit-box-shadow: 3px 3px 12px #C0C0C0;
    +	-moz-box-shadow: 3px 3px 12px #C0C0C0;
    +	box-shadow: 3px 3px 12px #C0C0C0;
    +	background: #FFFFCC;
    +	border-style: solid;
    +	border-width: 1px;
    +	border-color: black;
    +	font-family: Arial;
    +	font-size: 8pt;
    +	position: absolute;
    +	cursor: default;
    +	padding: 4px;
    +	color: black;
    +}
    +div.mxPopupMenu {
    +	-webkit-box-shadow: 3px 3px 12px #C0C0C0;
    +	-moz-box-shadow: 3px 3px 12px #C0C0C0;
    +	box-shadow: 3px 3px 12px #C0C0C0;
    +	background: url('../images/window.gif');
    +	position: absolute;
    +	border-style: solid;
    +	border-width: 1px;
    +	border-color: black;
    +	cursor: default;
    +}
    +table.mxPopupMenu {
    +	border-collapse: collapse;
    +	margin-top: 1px;
    +	margin-bottom: 1px;
    +}
    +tr.mxPopupMenuItem {
    +	color: black;
    +	cursor: default;
    +}
    +td.mxPopupMenuItem.disabled {
    +	opacity: 0.2;
    +}
    +td.mxPopupMenuItem.disabled {
    +	_filter:alpha(opacity=20) !important;
    +}
    +tr.mxPopupMenuItemHover {
    +	background-color: #000066;
    +	color: #FFFFFF;
    +}
    +td.mxPopupMenuItem {
    +	padding: 2px 30px 2px 10px;
    +	white-space: nowrap;
    +	font-family: Arial;
    +	font-size: 8pt;
    +}
    +td.mxPopupMenuIcon {
    +	background-color: #D0D0D0;
    +	padding: 2px 4px 2px 4px;
    +}
    diff --git a/javascript/src/css/explorer.css b/javascript/src/css/explorer.css
    new file mode 100644
    index 000000000..c2a4b098e
    --- /dev/null
    +++ b/javascript/src/css/explorer.css
    @@ -0,0 +1,15 @@
    +div.mxTooltip {
    +	filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=4, OffY=4, 
    +        Color='#A2A2A2', Positive='true')
    +}
    +div.mxPopupMenu {
    +	filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=4, OffY=4, 
    +        Color='#C0C0C0', Positive='true')
    +}
    +div.mxWindow {
    +	filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=4, OffY=4, 
    +        Color='#C0C0C0', Positive='true')
    +}
    +td.mxWindowTitle {
    +	height: 23px;
    +}
    diff --git a/javascript/src/images/button.gif b/javascript/src/images/button.gif
    new file mode 100644
    index 000000000..ad55cab61
    Binary files /dev/null and b/javascript/src/images/button.gif differ
    diff --git a/javascript/src/images/close.gif b/javascript/src/images/close.gif
    new file mode 100644
    index 000000000..1069e94bb
    Binary files /dev/null and b/javascript/src/images/close.gif differ
    diff --git a/javascript/src/images/collapsed.gif b/javascript/src/images/collapsed.gif
    new file mode 100644
    index 000000000..0276444a6
    Binary files /dev/null and b/javascript/src/images/collapsed.gif differ
    diff --git a/javascript/src/images/error.gif b/javascript/src/images/error.gif
    new file mode 100644
    index 000000000..14e1aeefd
    Binary files /dev/null and b/javascript/src/images/error.gif differ
    diff --git a/javascript/src/images/expanded.gif b/javascript/src/images/expanded.gif
    new file mode 100644
    index 000000000..3767b0baf
    Binary files /dev/null and b/javascript/src/images/expanded.gif differ
    diff --git a/javascript/src/images/maximize.gif b/javascript/src/images/maximize.gif
    new file mode 100644
    index 000000000..e27cf3e19
    Binary files /dev/null and b/javascript/src/images/maximize.gif differ
    diff --git a/javascript/src/images/minimize.gif b/javascript/src/images/minimize.gif
    new file mode 100644
    index 000000000..1e95e7cae
    Binary files /dev/null and b/javascript/src/images/minimize.gif differ
    diff --git a/javascript/src/images/normalize.gif b/javascript/src/images/normalize.gif
    new file mode 100644
    index 000000000..34a8d302e
    Binary files /dev/null and b/javascript/src/images/normalize.gif differ
    diff --git a/javascript/src/images/point.gif b/javascript/src/images/point.gif
    new file mode 100644
    index 000000000..9074c395f
    Binary files /dev/null and b/javascript/src/images/point.gif differ
    diff --git a/javascript/src/images/resize.gif b/javascript/src/images/resize.gif
    new file mode 100644
    index 000000000..ff558dba0
    Binary files /dev/null and b/javascript/src/images/resize.gif differ
    diff --git a/javascript/src/images/separator.gif b/javascript/src/images/separator.gif
    new file mode 100644
    index 000000000..5c1b89566
    Binary files /dev/null and b/javascript/src/images/separator.gif differ
    diff --git a/javascript/src/images/submenu.gif b/javascript/src/images/submenu.gif
    new file mode 100644
    index 000000000..ffe76176d
    Binary files /dev/null and b/javascript/src/images/submenu.gif differ
    diff --git a/javascript/src/images/transparent.gif b/javascript/src/images/transparent.gif
    new file mode 100644
    index 000000000..76040f2b0
    Binary files /dev/null and b/javascript/src/images/transparent.gif differ
    diff --git a/javascript/src/images/warning.gif b/javascript/src/images/warning.gif
    new file mode 100644
    index 000000000..705235f95
    Binary files /dev/null and b/javascript/src/images/warning.gif differ
    diff --git a/javascript/src/images/warning.png b/javascript/src/images/warning.png
    new file mode 100644
    index 000000000..2f7878964
    Binary files /dev/null and b/javascript/src/images/warning.png differ
    diff --git a/javascript/src/images/window-title.gif b/javascript/src/images/window-title.gif
    new file mode 100644
    index 000000000..231def8bb
    Binary files /dev/null and b/javascript/src/images/window-title.gif differ
    diff --git a/javascript/src/images/window.gif b/javascript/src/images/window.gif
    new file mode 100644
    index 000000000..6631c4f5f
    Binary files /dev/null and b/javascript/src/images/window.gif differ
    diff --git a/javascript/src/js/editor/mxDefaultKeyHandler.js b/javascript/src/js/editor/mxDefaultKeyHandler.js
    new file mode 100644
    index 000000000..3814e5e72
    --- /dev/null
    +++ b/javascript/src/js/editor/mxDefaultKeyHandler.js
    @@ -0,0 +1,126 @@
    +/**
    + * $Id: mxDefaultKeyHandler.js,v 1.26 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxDefaultKeyHandler
    + *
    + * Binds keycodes to actionnames in an editor. This aggregates an internal
    + * <handler> and extends the implementation of <mxKeyHandler.escape> to not
    + * only cancel the editing, but also hide the properties dialog and fire an
    + * <mxEditor.escape> event via <editor>. An instance of this class is created
    + * by <mxEditor> and stored in <mxEditor.keyHandler>.
    + * 
    + * Example:
    + * 
    + * Bind the delete key to the delete action in an existing editor.
    + * 
    + * (code)
    + * var keyHandler = new mxDefaultKeyHandler(editor);
    + * keyHandler.bindAction(46, 'delete');
    + * (end)
    + *
    + * Codec:
    + * 
    + * This class uses the <mxDefaultKeyHandlerCodec> to read configuration
    + * data into an existing instance. See <mxDefaultKeyHandlerCodec> for a
    + * description of the configuration format.
    + * 
    + * Keycodes:
    + * 
    + * See <mxKeyHandler>.
    + * 
    + * An <mxEvent.ESCAPE> event is fired via the editor if the escape key is
    + * pressed.
    + * 
    + * Constructor: mxDefaultKeyHandler
    + *
    + * Constructs a new default key handler for the <mxEditor.graph> in the
    + * given <mxEditor>. (The editor may be null if a prototypical instance for
    + * a <mxDefaultKeyHandlerCodec> is created.)
    + * 
    + * Parameters:
    + * 
    + * editor - Reference to the enclosing <mxEditor>.
    + */
    +function mxDefaultKeyHandler(editor)
    +{
    +	if (editor != null)
    +	{
    +		this.editor = editor;
    +		this.handler = new mxKeyHandler(editor.graph);
    +		
    +		// Extends the escape function of the internal key
    +		// handle to hide the properties dialog and fire
    +		// the escape event via the editor instance
    +		var old = this.handler.escape;
    +		
    +		this.handler.escape = function(evt)
    +		{
    +			old.apply(this, arguments);
    +			editor.hideProperties();
    +			editor.fireEvent(new mxEventObject(mxEvent.ESCAPE, 'event', evt));
    +		};
    +	}
    +};
    +	
    +/**
    + * Variable: editor
    + *
    + * Reference to the enclosing <mxEditor>.
    + */
    +mxDefaultKeyHandler.prototype.editor = null;
    +
    +/**
    + * Variable: handler
    + *
    + * Holds the <mxKeyHandler> for key event handling.
    + */
    +mxDefaultKeyHandler.prototype.handler = null;
    +
    +/**
    + * Function: bindAction
    + *
    + * Binds the specified keycode to the given action in <editor>. The
    + * optional control flag specifies if the control key must be pressed
    + * to trigger the action.
    + *
    + * Parameters:
    + *
    + * code - Integer that specifies the keycode.
    + * action - Name of the action to execute in <editor>.
    + * control - Optional boolean that specifies if control must be pressed.
    + * Default is false.
    + */
    +mxDefaultKeyHandler.prototype.bindAction = function (code, action, control)
    +{
    +	var keyHandler = mxUtils.bind(this, function()
    +	{
    +		this.editor.execute(action);
    +	});
    +
    +	// Binds the function to control-down keycode
    +	if (control)
    +	{
    +		this.handler.bindControlKey(code, keyHandler);
    +	}
    +
    +	// Binds the function to the normal keycode
    +	else
    +	{
    +		this.handler.bindKey(code, keyHandler);				
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + *
    + * Destroys the <handler> associated with this object. This does normally
    + * not need to be called, the <handler> is destroyed automatically when the
    + * window unloads (in IE) by <mxEditor>.
    + */
    +mxDefaultKeyHandler.prototype.destroy = function ()
    +{
    +	this.handler.destroy();
    +	this.handler = null;
    +};
    diff --git a/javascript/src/js/editor/mxDefaultPopupMenu.js b/javascript/src/js/editor/mxDefaultPopupMenu.js
    new file mode 100644
    index 000000000..ade1338d2
    --- /dev/null
    +++ b/javascript/src/js/editor/mxDefaultPopupMenu.js
    @@ -0,0 +1,298 @@
    +/**
    + * $Id: mxDefaultPopupMenu.js,v 1.28 2012-01-09 09:44:22 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxDefaultPopupMenu
    + *
    + * Creates popupmenus for mouse events. This object holds an XML node
    + * which is a description of the popup menu to be created. In
    + * <createMenu>, the configuration is applied to the context and
    + * the resulting menu items are added to the menu dynamically. See
    + * <createMenu> for a description of the configuration format.
    + * 
    + * This class does not create the DOM nodes required for the popup menu, it
    + * only parses an XML description to invoke the respective methods on an
    + * <mxPopupMenu> each time the menu is displayed.
    + *
    + * Codec:
    + * 
    + * This class uses the <mxDefaultPopupMenuCodec> to read configuration
    + * data into an existing instance, however, the actual parsing is done
    + * by this class during program execution, so the format is described
    + * below.
    + * 
    + * Constructor: mxDefaultPopupMenu
    + *
    + * Constructs a new popupmenu-factory based on given configuration.
    + *
    + * Paramaters:
    + *
    + * config - XML node that contains the configuration data.
    + */
    +function mxDefaultPopupMenu(config)
    +{
    +	this.config = config;
    +};
    +
    +/**
    + * Variable: imageBasePath
    + *
    + * Base path for all icon attributes in the config. Default is null.
    + */
    +mxDefaultPopupMenu.prototype.imageBasePath = null;
    +
    +/**
    + * Variable: config
    + *
    + * XML node used as the description of new menu items. This node is
    + * used in <createMenu> to dynamically create the menu items if their
    + * respective conditions evaluate to true for the given arguments.
    + */
    +mxDefaultPopupMenu.prototype.config = null;
    +
    +/**
    + * Function: createMenu
    + *
    + * This function is called from <mxEditor> to add items to the
    + * given menu based on <config>. The config is a sequence of
    + * the following nodes and attributes.
    + *
    + * Child Nodes: 
    + *
    + * add - Adds a new menu item. See below for attributes.
    + * separator - Adds a separator. No attributes.
    + * condition - Adds a custom condition. Name attribute.
    + * 
    + * The add-node may have a child node that defines a function to be invoked
    + * before the action is executed (or instead of an action to be executed).
    + *
    + * Attributes:
    + *
    + * as - Resource key for the label (needs entry in property file).
    + * action - Name of the action to execute in enclosing editor.
    + * icon - Optional icon (relative/absolute URL).
    + * iconCls - Optional CSS class for the icon.
    + * if - Optional name of condition that must be true(see below).
    + * name - Name of custom condition. Only for condition nodes.
    + *
    + * Conditions:
    + *
    + * nocell - No cell under the mouse.
    + * ncells - More than one cell selected.
    + * notRoot - Drilling position is other than home.
    + * cell - Cell under the mouse.
    + * notEmpty - Exactly one cell with children under mouse.
    + * expandable - Exactly one expandable cell under mouse.
    + * collapsable - Exactly one collapsable cell under mouse.
    + * validRoot - Exactly one cell which is a possible root under mouse.
    + * swimlane - Exactly one cell which is a swimlane under mouse.
    + *
    + * Example:
    + *
    + * To add a new item for a given action to the popupmenu:
    + * 
    + * (code)
    + * <mxDefaultPopupMenu as="popupHandler">
    + *   <add as="delete" action="delete" icon="images/delete.gif" if="cell"/>
    + * </mxDefaultPopupMenu>
    + * (end)
    + * 
    + * To add a new item for a custom function:
    + * 
    + * (code)
    + * <mxDefaultPopupMenu as="popupHandler">
    + *   <add as="action1"><![CDATA[
    + *		function (editor, cell)
    + *		{
    + *			editor.execute('action1', cell, 'myArg');
    + *		}
    + *   ]]></add>
    + * </mxDefaultPopupMenu>
    + * (end)
    + * 
    + * The above example invokes action1 with an additional third argument via
    + * the editor instance. The third argument is passed to the function that
    + * defines action1. If the add-node has no action-attribute, then only the
    + * function defined in the text content is executed, otherwise first the
    + * function and then the action defined in the action-attribute is
    + * executed.
    + *
    + * Custom Conditions:
    + *
    + * To add a new condition for popupmenu items:
    + *  
    + * (code)
    + * <condition name="condition1"><![CDATA[
    + *   function (editor, cell, evt)
    + *   {
    + *     return cell != null;
    + *   }
    + * ]]></condition>
    + * (end)
    + * 
    + * The new condition can then be used in any item as follows:
    + * 
    + * (code)
    + * <add as="action1" action="action1" icon="action1.gif" if="condition1"/>
    + * (end)
    + * 
    + * The order in which the items and conditions appear is not significant as
    + * all connditions are evaluated before any items are created.
    + * 
    + * Parameters:
    + *
    + * editor - Enclosing <mxEditor> instance.
    + * menu - <mxPopupMenu> that is used for adding items and separators.
    + * cell - Optional <mxCell> which is under the mousepointer.
    + * evt - Optional mouse event which triggered the menu. 
    + */
    +mxDefaultPopupMenu.prototype.createMenu = function(editor, menu, cell, evt)
    +{
    +	if (this.config != null)
    +	{
    +		var conditions = this.createConditions(editor, cell, evt);
    +		var item = this.config.firstChild;
    +
    +		this.addItems(editor, menu, cell, evt, conditions, item, null);
    +	}
    +};
    +
    +/**
    + * Function: addItems
    + * 
    + * Recursively adds the given items and all of its children into the given menu.
    + * 
    + * Parameters:
    + *
    + * editor - Enclosing <mxEditor> instance.
    + * menu - <mxPopupMenu> that is used for adding items and separators.
    + * cell - Optional <mxCell> which is under the mousepointer.
    + * evt - Optional mouse event which triggered the menu.
    + * conditions - Array of names boolean conditions.
    + * item - XML node that represents the current menu item.
    + * parent - DOM node that represents the parent menu item.
    + */
    +mxDefaultPopupMenu.prototype.addItems = function(editor, menu, cell, evt, conditions, item, parent)
    +{
    +	var addSeparator = false;
    +	
    +	while (item != null)
    +	{
    +		if (item.nodeName == 'add')
    +		{
    +			var condition = item.getAttribute('if');
    +			
    +			if (condition == null || conditions[condition])
    +			{
    +				var as = item.getAttribute('as');
    +				as = mxResources.get(as) || as;
    +				var funct = mxUtils.eval(mxUtils.getTextContent(item));
    +				var action = item.getAttribute('action');
    +				var icon = item.getAttribute('icon');
    +				var iconCls = item.getAttribute('iconCls');
    +				
    +				if (addSeparator)
    +				{
    +					menu.addSeparator(parent);
    +					addSeparator = false;
    +				}
    +				
    +				if (icon != null && this.imageBasePath)
    +				{
    +					icon = this.imageBasePath + icon;
    +				}
    +				
    +				var row = this.addAction(menu, editor, as, icon, funct, action, cell, parent, iconCls);
    +				this.addItems(editor, menu, cell, evt, conditions, item.firstChild, row);
    +			}
    +		}
    +		else if (item.nodeName == 'separator')
    +		{
    +			addSeparator = true;
    +		}
    +		
    +		item = item.nextSibling;
    +	}
    +};
    +
    +/**
    + * Function: addAction
    + *
    + * Helper method to bind an action to a new menu item.
    + * 
    + * Parameters:
    + *
    + * menu - <mxPopupMenu> that is used for adding items and separators.
    + * editor - Enclosing <mxEditor> instance.
    + * lab - String that represents the label of the menu item.
    + * icon - Optional URL that represents the icon of the menu item.
    + * action - Optional name of the action to execute in the given editor.
    + * funct - Optional function to execute before the optional action. The
    + * function takes an <mxEditor>, the <mxCell> under the mouse and the
    + * mouse event that triggered the call.
    + * cell - Optional <mxCell> to use as an argument for the action.
    + * parent - DOM node that represents the parent menu item.
    + * iconCls - Optional CSS class for the menu icon.
    + */
    +mxDefaultPopupMenu.prototype.addAction = function(menu, editor, lab, icon, funct, action, cell, parent, iconCls)
    +{
    +	var clickHandler = function(evt)
    +	{
    +		if (typeof(funct) == 'function')
    +		{
    +			funct.call(editor, editor, cell, evt);
    +		}
    +		
    +		if (action != null)
    +		{
    +			editor.execute(action, cell, evt);
    +		}
    +	};
    +	
    +	return menu.addItem(lab, icon, clickHandler, parent, iconCls);
    +};
    +
    +/**
    + * Function: createConditions
    + * 
    + * Evaluates the default conditions for the given context.
    + */
    +mxDefaultPopupMenu.prototype.createConditions = function(editor, cell, evt)
    +{
    +	// Creates array with conditions
    +	var model = editor.graph.getModel();
    +	var childCount = model.getChildCount(cell);
    +	
    +	// Adds some frequently used conditions
    +	var conditions = [];
    +	conditions['nocell'] = cell == null;
    +	conditions['ncells'] = editor.graph.getSelectionCount() > 1;
    +	conditions['notRoot'] = model.getRoot() !=
    +		model.getParent(editor.graph.getDefaultParent());
    +	conditions['cell'] = cell != null;
    +	
    +	var isCell = cell != null && editor.graph.getSelectionCount() == 1;
    +	conditions['nonEmpty'] = isCell && childCount > 0;
    +	conditions['expandable'] = isCell && editor.graph.isCellFoldable(cell, false);
    +	conditions['collapsable'] = isCell && editor.graph.isCellFoldable(cell, true);
    +	conditions['validRoot'] = isCell && editor.graph.isValidRoot(cell);
    +	conditions['emptyValidRoot'] = conditions['validRoot'] && childCount == 0;
    +	conditions['swimlane'] = isCell && editor.graph.isSwimlane(cell);
    +
    +	// Evaluates dynamic conditions from config file
    +	var condNodes = this.config.getElementsByTagName('condition');
    +	
    +	for (var i=0; i<condNodes.length; i++)
    +	{
    +		var funct = mxUtils.eval(mxUtils.getTextContent(condNodes[i]));
    +		var name = condNodes[i].getAttribute('name');
    +		
    +		if (name != null && typeof(funct) == 'function')
    +		{
    +			conditions[name] = funct(editor, cell, evt);
    +		}
    +	}
    +	
    +	return conditions;
    +};
    diff --git a/javascript/src/js/editor/mxDefaultToolbar.js b/javascript/src/js/editor/mxDefaultToolbar.js
    new file mode 100644
    index 000000000..3f8f90173
    --- /dev/null
    +++ b/javascript/src/js/editor/mxDefaultToolbar.js
    @@ -0,0 +1,567 @@
    +/**
    + * $Id: mxDefaultToolbar.js,v 1.67 2012-04-11 07:00:52 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxDefaultToolbar
    + *
    + * Toolbar for the editor. This modifies the state of the graph
    + * or inserts new cells upon mouse clicks.
    + * 
    + * Example:
    + * 
    + * Create a toolbar with a button to copy the selection into the clipboard,
    + * and a combo box with one action to paste the selection from the clipboard
    + * into the graph.
    + * 
    + * (code)
    + * var toolbar = new mxDefaultToolbar(container, editor);
    + * toolbar.addItem('Copy', null, 'copy');
    + * 
    + * var combo = toolbar.addActionCombo('More actions...');
    + * toolbar.addActionOption(combo, 'Paste', 'paste');
    + * (end) 
    + *
    + * Codec:
    + * 
    + * This class uses the <mxDefaultToolbarCodec> to read configuration
    + * data into an existing instance. See <mxDefaultToolbarCodec> for a
    + * description of the configuration format.
    + * 
    + * Constructor: mxDefaultToolbar
    + *
    + * Constructs a new toolbar for the given container and editor. The
    + * container and editor may be null if a prototypical instance for a
    + * <mxDefaultKeyHandlerCodec> is created.
    + *
    + * Parameters:
    + *
    + * container - DOM node that contains the toolbar.
    + * editor - Reference to the enclosing <mxEditor>. 
    + */
    +function mxDefaultToolbar(container, editor)
    +{
    +	this.editor = editor;
    +
    +	if (container != null &&
    +		editor != null)
    +	{
    +		this.init(container);
    +	}
    +};
    +	
    +/**
    + * Variable: editor
    + *
    + * Reference to the enclosing <mxEditor>.
    + */
    +mxDefaultToolbar.prototype.editor = null;
    +
    +/**
    + * Variable: toolbar
    + *
    + * Holds the internal <mxToolbar>.
    + */
    +mxDefaultToolbar.prototype.toolbar = null;
    +
    +/**
    + * Variable: resetHandler
    + *
    + * Reference to the function used to reset the <toolbar>.
    + */
    +mxDefaultToolbar.prototype.resetHandler = null;
    +
    +/**
    + * Variable: spacing
    + *
    + * Defines the spacing between existing and new vertices in
    + * gridSize units when a new vertex is dropped on an existing
    + * cell. Default is 4 (40 pixels).
    + */
    +mxDefaultToolbar.prototype.spacing = 4;
    +
    +/**
    + * Variable: connectOnDrop
    + * 
    + * Specifies if elements should be connected if new cells are dropped onto
    + * connectable elements. Default is false.
    + */
    +mxDefaultToolbar.prototype.connectOnDrop = false;
    +
    +/**
    + * Variable: init
    + * 
    + * Constructs the <toolbar> for the given container and installs a listener
    + * that updates the <mxEditor.insertFunction> on <editor> if an item is
    + * selected in the toolbar. This assumes that <editor> is not null.
    + *
    + * Parameters:
    + *
    + * container - DOM node that contains the toolbar.
    + */
    +mxDefaultToolbar.prototype.init = function(container)
    +{
    +	if (container != null)
    +	{
    +		this.toolbar = new mxToolbar(container);
    +		
    +		// Installs the insert function in the editor if an item is
    +		// selected in the toolbar
    +		this.toolbar.addListener(mxEvent.SELECT,
    +			mxUtils.bind(this, function(sender, evt)
    +			{
    +				var funct = evt.getProperty('function');
    +				
    +				if (funct != null)
    +				{
    +					this.editor.insertFunction = mxUtils.bind(this, function()
    +					{
    +						funct.apply(this, arguments);
    +						this.toolbar.resetMode();
    +					});
    +				}
    +				else
    +				{
    +					this.editor.insertFunction = null;
    +				}
    +			})
    +		);
    +		
    +		// Resets the selected tool after a doubleclick or escape keystroke
    +		this.resetHandler = mxUtils.bind(this, function()
    +		{
    +			if (this.toolbar != null)
    +			{
    +				this.toolbar.resetMode(true);
    +			}
    +		});
    +
    +		this.editor.graph.addListener(mxEvent.DOUBLE_CLICK, this.resetHandler);
    +		this.editor.addListener(mxEvent.ESCAPE, this.resetHandler);
    +	}
    +};
    +
    +/**
    + * Function: addItem
    + *
    + * Adds a new item that executes the given action in <editor>. The title,
    + * icon and pressedIcon are used to display the toolbar item.
    + * 
    + * Parameters:
    + *
    + * title - String that represents the title (tooltip) for the item.
    + * icon - URL of the icon to be used for displaying the item.
    + * action - Name of the action to execute when the item is clicked.
    + * pressed - Optional URL of the icon for the pressed state.
    + */
    +mxDefaultToolbar.prototype.addItem = function(title, icon, action, pressed)
    +{
    +	var clickHandler = mxUtils.bind(this, function()
    +	{
    +		if (action != null && action.length > 0)
    +		{
    +			this.editor.execute(action);
    +		}
    +	});
    +	
    +	return this.toolbar.addItem(title, icon, clickHandler, pressed);
    +};
    +
    +/**
    + * Function: addSeparator
    + *
    + * Adds a vertical separator using the optional icon.
    + * 
    + * Parameters:
    + * 
    + * icon - Optional URL of the icon that represents the vertical separator.
    + * Default is <mxClient.imageBasePath> + '/separator.gif'.
    + */
    +mxDefaultToolbar.prototype.addSeparator = function(icon)
    +{
    +	icon = icon || mxClient.imageBasePath + '/separator.gif';
    +	this.toolbar.addSeparator(icon);
    +};
    +	
    +/**
    + * Function: addCombo
    + *
    + * Helper method to invoke <mxToolbar.addCombo> on <toolbar> and return the
    + * resulting DOM node.
    + */
    +mxDefaultToolbar.prototype.addCombo = function()
    +{
    +	return this.toolbar.addCombo();
    +};
    +		
    +/**
    + * Function: addActionCombo
    + *
    + * Helper method to invoke <mxToolbar.addActionCombo> on <toolbar> using
    + * the given title and return the resulting DOM node.
    + * 
    + * Parameters:
    + * 
    + * title - String that represents the title of the combo.
    + */
    +mxDefaultToolbar.prototype.addActionCombo = function(title)
    +{
    +	return this.toolbar.addActionCombo(title);
    +};
    +
    +/**
    + * Function: addActionOption
    + *
    + * Binds the given action to a option with the specified label in the
    + * given combo. Combo is an object returned from an earlier call to
    + * <addCombo> or <addActionCombo>.
    + * 
    + * Parameters:
    + * 
    + * combo - DOM node that represents the combo box.
    + * title - String that represents the title of the combo.
    + * action - Name of the action to execute in <editor>.
    + */
    +mxDefaultToolbar.prototype.addActionOption = function(combo, title, action)
    +{
    +	var clickHandler = mxUtils.bind(this, function()
    +	{
    +		this.editor.execute(action);
    +	});
    +	
    +	this.addOption(combo, title, clickHandler);
    +};
    +
    +/**
    + * Function: addOption
    + *
    + * Helper method to invoke <mxToolbar.addOption> on <toolbar> and return
    + * the resulting DOM node that represents the option.
    + * 
    + * Parameters:
    + * 
    + * combo - DOM node that represents the combo box.
    + * title - String that represents the title of the combo.
    + * value - Object that represents the value of the option.
    + */
    +mxDefaultToolbar.prototype.addOption = function(combo, title, value)
    +{
    +	return this.toolbar.addOption(combo, title, value);
    +};
    +	
    +/**
    + * Function: addMode
    + *
    + * Creates an item for selecting the given mode in the <editor>'s graph.
    + * Supported modenames are select, connect and pan.
    + * 
    + * Parameters:
    + * 
    + * title - String that represents the title of the item.
    + * icon - URL of the icon that represents the item.
    + * mode - String that represents the mode name to be used in
    + * <mxEditor.setMode>.
    + * pressed - Optional URL of the icon that represents the pressed state.
    + * funct - Optional JavaScript function that takes the <mxEditor> as the
    + * first and only argument that is executed after the mode has been
    + * selected.
    + */
    +mxDefaultToolbar.prototype.addMode = function(title, icon, mode, pressed, funct)
    +{
    +	var clickHandler = mxUtils.bind(this, function()
    +	{
    +		this.editor.setMode(mode);
    +		
    +		if (funct != null)
    +		{
    +			funct(this.editor);
    +		}
    +	});
    +	
    +	return this.toolbar.addSwitchMode(title, icon, clickHandler, pressed);
    +};
    +
    +/**
    + * Function: addPrototype
    + *
    + * Creates an item for inserting a clone of the specified prototype cell into
    + * the <editor>'s graph. The ptype may either be a cell or a function that
    + * returns a cell.
    + * 
    + * Parameters:
    + * 
    + * title - String that represents the title of the item.
    + * icon - URL of the icon that represents the item.
    + * ptype - Function or object that represents the prototype cell. If ptype
    + * is a function then it is invoked with no arguments to create new
    + * instances.
    + * pressed - Optional URL of the icon that represents the pressed state.
    + * insert - Optional JavaScript function that handles an insert of the new
    + * cell. This function takes the <mxEditor>, new cell to be inserted, mouse
    + * event and optional <mxCell> under the mouse pointer as arguments.
    + * toggle - Optional boolean that specifies if the item can be toggled.
    + * Default is true.
    + */
    +mxDefaultToolbar.prototype.addPrototype = function(title, icon, ptype, pressed, insert, toggle)
    +{
    +	// Creates a wrapper function that is in charge of constructing
    +	// the new cell instance to be inserted into the graph
    +	var factory = function()
    +	{
    +		if (typeof(ptype) == 'function')
    +		{
    +			return ptype();
    +		}
    +		else if (ptype != null)
    +		{
    +			return ptype.clone();
    +		}
    +		
    +		return null;
    +	};
    +	
    +	// Defines the function for a click event on the graph
    +	// after this item has been selected in the toolbar
    +	var clickHandler = mxUtils.bind(this, function(evt, cell)
    +	{
    +		if (typeof(insert) == 'function')
    +		{
    +			insert(this.editor, factory(), evt, cell);
    +		}
    +		else
    +		{
    +			this.drop(factory(), evt, cell);
    +		}
    +		
    +		this.toolbar.resetMode();
    +		mxEvent.consume(evt);
    +	});
    +	
    +	var img = this.toolbar.addMode(title, icon, clickHandler, pressed, null, toggle);
    +				
    +	// Creates a wrapper function that calls the click handler without
    +	// the graph argument
    +	var dropHandler = function(graph, evt, cell)
    +	{
    +		clickHandler(evt, cell);
    +	};
    +	
    +	this.installDropHandler(img, dropHandler);
    +	
    +	return img;
    +};
    +
    +/**
    + * Function: drop
    + * 
    + * Handles a drop from a toolbar item to the graph. The given vertex
    + * represents the new cell to be inserted. This invokes <insert> or
    + * <connect> depending on the given target cell.
    + * 
    + * Parameters:
    + * 
    + * vertex - <mxCell> to be inserted.
    + * evt - Mouse event that represents the drop.
    + * target - Optional <mxCell> that represents the drop target.
    + */
    +mxDefaultToolbar.prototype.drop = function(vertex, evt, target)
    +{
    +	var graph = this.editor.graph;
    +	var model = graph.getModel();
    +	
    +	if (target == null ||
    +		model.isEdge(target) ||
    +		!this.connectOnDrop ||
    +		!graph.isCellConnectable(target))
    +	{
    +		while (target != null &&
    +			!graph.isValidDropTarget(target, [vertex], evt))
    +		{
    +			target = model.getParent(target);
    +		}
    +		
    +		this.insert(vertex, evt, target);
    +	}
    +	else
    +	{
    +		this.connect(vertex, evt, target);
    +	}
    +};
    +
    +/**
    + * Function: insert
    + *
    + * Handles a drop by inserting the given vertex into the given parent cell
    + * or the default parent if no parent is specified.
    + * 
    + * Parameters:
    + * 
    + * vertex - <mxCell> to be inserted.
    + * evt - Mouse event that represents the drop.
    + * parent - Optional <mxCell> that represents the parent.
    + */
    +mxDefaultToolbar.prototype.insert = function(vertex, evt, target)
    +{
    +	var graph = this.editor.graph;
    +	
    +	if (graph.canImportCell(vertex))
    +	{
    +		var x = mxEvent.getClientX(evt);
    +		var y = mxEvent.getClientY(evt);
    +		var pt = mxUtils.convertPoint(graph.container, x, y);
    +		
    +		// Splits the target edge or inserts into target group
    +		if (graph.isSplitEnabled() &&
    +			graph.isSplitTarget(target, [vertex], evt))
    +		{
    +			return graph.splitEdge(target, [vertex], null, pt.x, pt.y);
    +		}
    +		else
    +		{
    +			return this.editor.addVertex(target, vertex, pt.x, pt.y);
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: connect
    + * 
    + * Handles a drop by connecting the given vertex to the given source cell.
    + * 
    + * vertex - <mxCell> to be inserted.
    + * evt - Mouse event that represents the drop.
    + * source - Optional <mxCell> that represents the source terminal.
    + */
    +mxDefaultToolbar.prototype.connect = function(vertex, evt, source)
    +{
    +	var graph = this.editor.graph;
    +	var model = graph.getModel();
    +	
    +	if (source != null &&
    +		graph.isCellConnectable(vertex) &&
    +		graph.isEdgeValid(null, source, vertex))
    +	{
    +		var edge = null;
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			var geo = model.getGeometry(source);
    +			var g = model.getGeometry(vertex).clone();
    +			
    +			// Moves the vertex away from the drop target that will
    +			// be used as the source for the new connection
    +			g.x = geo.x + (geo.width - g.width) / 2;
    +			g.y = geo.y + (geo.height - g.height) / 2;
    +			
    +			var step = this.spacing * graph.gridSize;
    +			var dist = model.getDirectedEdgeCount(source, true) * 20;
    +			
    +			if (this.editor.horizontalFlow)
    +			{
    +				g.x += (g.width + geo.width) / 2 + step + dist;
    +			}
    +			else
    +			{
    +				g.y += (g.height + geo.height) / 2 + step + dist;
    +			}
    +			
    +			vertex.setGeometry(g);
    +			
    +			// Fires two add-events with the code below - should be fixed
    +			// to only fire one add event for both inserts
    +			var parent = model.getParent(source);
    +			graph.addCell(vertex, parent);
    +			graph.constrainChild(vertex);
    +
    +			// Creates the edge using the editor instance and calls
    +			// the second function that fires an add event
    +			edge = this.editor.createEdge(source, vertex);
    +			
    +			if (model.getGeometry(edge) == null)
    +			{
    +				var edgeGeometry = new mxGeometry();
    +				edgeGeometry.relative = true;
    +				
    +				model.setGeometry(edge, edgeGeometry);
    +			}
    +			
    +			graph.addEdge(edge, parent, source, vertex);
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +		
    +		graph.setSelectionCells([vertex, edge]);
    +		graph.scrollCellToVisible(vertex);
    +	}
    +};
    +
    +/**
    + * Function: installDropHandler
    + * 
    + * Makes the given img draggable using the given function for handling a
    + * drop event.
    + * 
    + * Parameters:
    + * 
    + * img - DOM node that represents the image.
    + * dropHandler - Function that handles a drop of the image.
    + */
    +mxDefaultToolbar.prototype.installDropHandler = function (img, dropHandler)
    +{
    +	var sprite = document.createElement('img');
    +	sprite.setAttribute('src', img.getAttribute('src'));
    +
    +	// Handles delayed loading of the images
    +	var loader = mxUtils.bind(this, function(evt)
    +	{
    +		// Preview uses the image node with double size. Later this can be
    +		// changed to use a separate preview and guides, but for this the
    +		// dropHandler must use the additional x- and y-arguments and the
    +		// dragsource which makeDraggable returns much be configured to
    +		// use guides via mxDragSource.isGuidesEnabled.
    +		sprite.style.width = (2 * img.offsetWidth) + 'px';
    +		sprite.style.height = (2 * img.offsetHeight) + 'px';
    +
    +		mxUtils.makeDraggable(img, this.editor.graph, dropHandler,
    +			sprite);
    +		mxEvent.removeListener(sprite, 'load', loader);
    +	});
    +
    +	if (mxClient.IS_IE)
    +	{
    +		loader();
    +	}
    +	else
    +	{
    +		mxEvent.addListener(sprite, 'load', loader);
    +	}	
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the <toolbar> associated with this object and removes all
    + * installed listeners. This does normally not need to be called, the
    + * <toolbar> is destroyed automatically when the window unloads (in IE) by
    + * <mxEditor>.
    + */
    +mxDefaultToolbar.prototype.destroy = function ()
    +{
    +	if (this.resetHandler != null)
    +	{
    +		this.editor.graph.removeListener('dblclick', this.resetHandler);
    +		this.editor.removeListener('escape', this.resetHandler);
    +		this.resetHandler = null;
    +	}
    +	
    +	if (this.toolbar != null)
    +	{
    +		this.toolbar.destroy();
    +		this.toolbar = null;
    +	}
    +};
    diff --git a/javascript/src/js/editor/mxEditor.js b/javascript/src/js/editor/mxEditor.js
    new file mode 100644
    index 000000000..6eb8c4a24
    --- /dev/null
    +++ b/javascript/src/js/editor/mxEditor.js
    @@ -0,0 +1,3215 @@
    +/**
    + * $Id: mxEditor.js,v 1.229 2012-05-15 15:25:51 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxEditor
    + *
    + * Extends <mxEventSource> to implement a application wrapper for a graph that
    + * adds <actions>, I/O using <mxCodec>, auto-layout using <mxLayoutManager>,
    + * command history using <undoManager>, and standard dialogs and widgets, eg.
    + * properties, help, outline, toolbar, and popupmenu. It also adds <templates>
    + * to be used as cells in toolbars, auto-validation using the <validation>
    + * flag, attribute cycling using <cycleAttributeValues>, higher-level events
    + * such as <root>, and backend integration using <urlPost>, <urlImage>,
    + * <urlInit>, <urlNotify> and <urlPoll>. 
    + * 
    + * Actions:
    + * 
    + * Actions are functions stored in the <actions> array under their names. The
    + * functions take the <mxEditor> as the first, and an optional <mxCell> as the
    + * second argument and are invoked using <execute>. Any additional arguments
    + * passed to execute are passed on to the action as-is.
    + * 
    + * A list of built-in actions is available in the <addActions> description.
    + * 
    + * Read/write Diagrams:
    + * 
    + * To read a diagram from an XML string, for example from a textfield within the 
    + * page, the following code is used:
    + * 
    + * (code)
    + * var doc = mxUtils.parseXML(xmlString);
    + * var node = doc.documentElement;
    + * editor.readGraphModel(node);
    + * (end)
    + * 
    + * For reading a diagram from a remote location, use the <open> method.
    + * 
    + * To save diagrams in XML on a server, you can set the <urlPost> variable. 
    + * This variable will be used in <getUrlPost> to construct a URL for the post 
    + * request that is issued in the <save> method. The post request contains the 
    + * XML representation of the diagram as returned by <writeGraphModel> in the 
    + * xml parameter.
    + * 
    + * On the server side, the post request is processed using standard
    + * technologies such as Java Servlets, CGI, .NET or ASP.
    + * 
    + * Here are some examples of processing a post request in various languages.
    + * 
    + * - Java: URLDecoder.decode(request.getParameter("xml"), "UTF-8").replace("\n", "&#xa;")
    + * 
    + * Note that the linefeeds should only be replaced if the XML is
    + * processed in Java, for example when creating an image, but not
    + * if the XML is passed back to the client-side.
    + * 
    + * - .NET: HttpUtility.UrlDecode(context.Request.Params["xml"])
    + * - PHP: urldecode($_POST["xml"])
    + * 
    + * Creating images:
    + * 
    + * A backend (Java, PHP or C#) is required for creating images. The
    + * distribution contains an example for each backend (ImageHandler.java,
    + * ImageHandler.cs and graph.php). More information about using a backend
    + * to create images can be found in the readme.html files. Note that the
    + * preview is implemented using VML/SVG in the browser and does not require
    + * a backend. The backend is only required to creates images (bitmaps).
    + * 
    + * Special characters:
    + * 
    + * Note There are five characters that should always appear in XML content as
    + * escapes, so that they do not interact with the syntax of the markup. These
    + * are part of the language for all documents based on XML and for HTML.
    + * 
    + * - &lt; (<)
    + * - &gt; (>)
    + * - &amp; (&)
    + * - &quot; (")
    + * - &apos; (')
    + * 
    + * Although it is part of the XML language, &apos; is not defined in HTML.
    + * For this reason the XHTML specification recommends instead the use of
    + * &#39; if text may be passed to a HTML user agent.
    + * 
    + * If you are having problems with special characters on the server-side then
    + * you may want to try the <escapePostData> flag.
    + * 
    + * For converting decimal escape sequences inside strings, a user has provided
    + * us with the following function:
    + * 
    + * (code)
    + * function html2js(text)
    + * {
    + *   var entitySearch = /&#[0-9]+;/;
    + *   var entity;
    + *   
    + *   while (entity = entitySearch.exec(text))
    + *   {
    + *     var charCode = entity[0].substring(2, entity[0].length -1);
    + *     text = text.substring(0, entity.index)
    + *            + String.fromCharCode(charCode)
    + *            + text.substring(entity.index + entity[0].length);
    + *   }
    + *   
    + *   return text;
    + * }
    + * (end)
    + * 
    + * Otherwise try using hex escape sequences and the built-in unescape function
    + * for converting such strings.
    + * 
    + * Local Files:
    + * 
    + * For saving and opening local files, no standardized method exists that
    + * works across all browsers. The recommended way of dealing with local files
    + * is to create a backend that streams the XML data back to the browser (echo)
    + * as an attachment so that a Save-dialog is displayed on the client-side and
    + * the file can be saved to the local disk.
    + * 
    + * For example, in PHP the code that does this looks as follows.
    + * 
    + * (code)
    + * $xml = stripslashes($_POST["xml"]);
    + * header("Content-Disposition: attachment; filename=\"diagram.xml\"");
    + * echo($xml);
    + * (end)
    + * 
    + * To open a local file, the file should be uploaded via a form in the browser
    + * and then opened from the server in the editor.
    + * 
    + * Cell Properties:
    + * 
    + * The properties displayed in the properties dialog are the attributes and 
    + * values of the cell's user object, which is an XML node. The XML node is 
    + * defined in the templates section of the config file.
    + * 
    + * The templates are stored in <mxEditor.templates> and contain cells which
    + * are cloned at insertion time to create new vertices by use of drag and
    + * drop from the toolbar. Each entry in the toolbar for adding a new vertex
    + * must refer to an existing template.
    + * 
    + * In the following example, the task node is a business object and only the 
    + * mxCell node and its mxGeometry child contain graph information:
    + * 
    + * (code)
    + * <Task label="Task" description="">
    + *   <mxCell vertex="true">
    + *     <mxGeometry as="geometry" width="72" height="32"/>
    + *   </mxCell>
    + * </Task> 
    + * (end)
    + * 
    + * The idea is that the XML representation is inverse from the in-memory 
    + * representation: The outer XML node is the user object and the inner node is 
    + * the cell. This means the user object of the cell is the Task node with no 
    + * children for the above example:
    + * 
    + * (code)
    + * <Task label="Task" description=""/>
    + * (end)
    + * 
    + * The Task node can have any tag name, attributes and child nodes. The 
    + * <mxCodec> will use the XML hierarchy as the user object, while removing the 
    + * "known annotations", such as the mxCell node. At save-time the cell data 
    + * will be "merged" back into the user object. The user object is only modified 
    + * via the properties dialog during the lifecycle of the cell.
    + * 
    + * In the default implementation of <createProperties>, the user object's
    + * attributes are put into a form for editing. Attributes are changed using
    + * the <mxCellAttributeChange> action in the model. The dialog can be replaced 
    + * by overriding the <createProperties> hook or by replacing the showProperties
    + * action in <actions>. Alternatively, the entry in the config file's popupmenu
    + * section can be modified to invoke a different action.
    + * 
    + * If you want to displey the properties dialog on a doubleclick, you can set
    + * <mxEditor.dblClickAction> to showProperties as follows:
    + * 
    + * (code)
    + * editor.dblClickAction = 'showProperties';
    + * (end)
    + * 
    + * Popupmenu and Toolbar:
    + * 
    + * The toolbar and popupmenu are typically configured using the respective
    + * sections in the config file, that is, the popupmenu is defined as follows:
    + * 
    + * (code)
    + * <mxEditor>
    + *   <mxDefaultPopupMenu as="popupHandler">
    + * 		<add as="cut" action="cut" icon="images/cut.gif"/>
    + *      ...
    + * (end)
    + * 
    + * New entries can be added to the toolbar by inserting an add-node into the
    + * above configuration. Existing entries may be removed and changed by
    + * modifying or removing the respective entries in the configuration.
    + * The configuration is read by the <mxDefaultPopupMenuCodec>, the format of the
    + * configuration is explained in <mxDefaultPopupMenu.decode>.
    + * 
    + * The toolbar is defined in the mxDefaultToolbar section. Items can be added
    + * and removed in this section.
    + * 
    + * (code)
    + * <mxEditor>
    + *   <mxDefaultToolbar>
    + *     <add as="save" action="save" icon="images/save.gif"/>
    + *     <add as="Swimlane" template="swimlane" icon="images/swimlane.gif"/>
    + *     ...
    + * (end)
    + * 
    + * The format of the configuration is described in
    + * <mxDefaultToolbarCodec.decode>.
    + * 
    + * Ids:
    + * 
    + * For the IDs, there is an implicit behaviour in <mxCodec>: It moves the Id
    + * from the cell to the user object at encoding time and vice versa at decoding
    + * time. For example, if the Task node from above has an id attribute, then
    + * the <mxCell.id> of the corresponding cell will have this value. If there
    + * is no Id collision in the model, then the cell may be retrieved using this
    + * Id with the <mxGraphModel.getCell> function. If there is a collision, a new
    + * Id will be created for the cell using <mxGraphModel.createId>. At encoding
    + * time, this new Id will replace the value previously stored under the id
    + * attribute in the Task node.
    + * 
    + * See <mxEditorCodec>, <mxDefaultToolbarCodec> and <mxDefaultPopupMenuCodec>
    + * for information about configuring the editor and user interface.
    + * 
    + * Programmatically inserting cells:
    + * 
    + * For inserting a new cell, say, by clicking a button in the document,
    + * the following code can be used. This requires an reference to the editor.
    + * 
    + * (code)
    + * var userObject = new Object();
    + * var parent = editor.graph.getDefaultParent();
    + * var model = editor.graph.model;
    + * model.beginUpdate();
    + * try
    + * {
    + *   editor.graph.insertVertex(parent, null, userObject, 20, 20, 80, 30);
    + * }
    + * finally
    + * {
    + *   model.endUpdate();
    + * }
    + * (end)
    + * 
    + * If a template cell from the config file should be inserted, then a clone
    + * of the template can be created as follows. The clone is then inserted using
    + * the add function instead of addVertex.
    + * 
    + * (code)
    + * var template = editor.templates['task'];
    + * var clone = editor.graph.model.cloneCell(template);
    + * (end)
    + * 
    + * Resources:
    + *
    + * resources/editor - Language resources for mxEditor
    + *
    + * Callback: onInit
    + *
    + * Called from within the constructor. In the callback,
    + * "this" refers to the editor instance.
    + *
    + * Cookie: mxgraph=seen
    + *
    + * Set when the editor is started. Never expires. Use
    + * <resetFirstTime> to reset this cookie. This cookie
    + * only exists if <onInit> is implemented.
    + *
    + * Event: mxEvent.OPEN
    + *
    + * Fires after a file was opened in <open>. The <code>filename</code> property
    + * contains the filename that was used. The same value is also available in
    + * <filename>.
    + *
    + * Event: mxEvent.SAVE
    + *
    + * Fires after the current file was saved in <save>. The <code>url</code>
    + * property contains the URL that was used for saving.
    + *
    + * Event: mxEvent.POST
    + * 
    + * Fires if a successful response was received in <postDiagram>. The
    + * <code>request</code> property contains the <mxXmlRequest>, the
    + * <code>url</code> and <code>data</code> properties contain the URL and the
    + * data that were used in the post request. 
    + *
    + * Event: mxEvent.ROOT
    + *
    + * Fires when the current root has changed, or when the title of the current
    + * root has changed. This event has no properties.
    + *
    + * Event: mxEvent.SESSION
    + *
    + * Fires when anything in the session has changed. The <code>session</code>
    + * property contains the respective <mxSession>.
    + * 
    + * Event: mxEvent.BEFORE_ADD_VERTEX
    + * 
    + * Fires before a vertex is added in <addVertex>. The <code>vertex</code>
    + * property contains the new vertex and the <code>parent</code> property
    + * contains its parent.
    + * 
    + * Event: mxEvent.ADD_VERTEX
    + * 
    + * Fires between begin- and endUpdate in <addVertex>. The <code>vertex</code>
    + * property contains the vertex that is being inserted.
    + * 
    + * Event: mxEvent.AFTER_ADD_VERTEX
    + * 
    + * Fires after a vertex was inserted and selected in <addVertex>. The
    + * <code>vertex</code> property contains the new vertex.
    + * 
    + * Example:
    + * 
    + * For starting an in-place edit after a new vertex has been added to the
    + * graph, the following code can be used.
    + * 
    + * (code)
    + * editor.addListener(mxEvent.AFTER_ADD_VERTEX, function(sender, evt)
    + * {
    + *   var vertex = evt.getProperty('vertex');
    + * 
    + *   if (editor.graph.isCellEditable(vertex))
    + *   {
    + *   	editor.graph.startEditingAtCell(vertex);
    + *   }
    + * });
    + * (end)
    + * 
    + * Event: mxEvent.ESCAPE
    + * 
    + * Fires when the escape key is pressed. The <code>event</code> property
    + * contains the key event.
    + * 
    + * Constructor: mxEditor
    + *
    + * Constructs a new editor. This function invokes the <onInit> callback
    + * upon completion.
    + *
    + * Example:
    + *
    + * (code)
    + * var config = mxUtils.load('config/diagrameditor.xml').getDocumentElement();
    + * var editor = new mxEditor(config);
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * config - Optional XML node that contains the configuration.
    + */
    +function mxEditor(config)
    +{
    +	this.actions = [];
    +	this.addActions();
    +
    +	// Executes the following only if a document has been instanciated.
    +	// That is, don't execute when the editorcodec is setup.
    +	if (document.body != null)
    +	{
    +		// Defines instance fields
    +		this.cycleAttributeValues = [];
    +		this.popupHandler = new mxDefaultPopupMenu();
    +		this.undoManager = new mxUndoManager();
    +
    +		// Creates the graph and toolbar without the containers
    +		this.graph = this.createGraph();
    +		this.toolbar = this.createToolbar();
    +
    +		// Creates the global keyhandler (requires graph instance)
    +		this.keyHandler = new mxDefaultKeyHandler(this);
    +
    +		// Configures the editor using the URI
    +		// which was passed to the ctor
    +		this.configure(config);
    +		
    +		// Assigns the swimlaneIndicatorColorAttribute on the graph
    +		this.graph.swimlaneIndicatorColorAttribute = this.cycleAttributeName;
    +		
    +		// Initializes the session if the urlInit
    +		// member field of this editor is set.
    +		if (!mxClient.IS_LOCAL && this.urlInit != null)
    +		{
    +			this.createSession();
    +		}
    +
    +		// Checks ifthe <onInit> hook has been set		
    +		if (this.onInit != null)
    +		{
    +			// Invokes the <onInit> hook
    +			this.onInit();
    +		}
    +		
    +		// Automatic deallocation of memory
    +		if (mxClient.IS_IE)
    +		{
    +			mxEvent.addListener(window, 'unload', mxUtils.bind(this, function()
    +			{
    +				this.destroy();
    +			}));
    +		}
    +	}
    +};
    +
    +/**
    + * Installs the required language resources at class
    + * loading time.
    + */
    +if (mxLoadResources)
    +{
    +	mxResources.add(mxClient.basePath+'/resources/editor');
    +}
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxEditor.prototype = new mxEventSource();
    +mxEditor.prototype.constructor = mxEditor;
    +
    +/**
    + * Group: Controls and Handlers
    + */
    +	
    +/**
    + * Variable: askZoomResource
    + * 
    + * Specifies the resource key for the zoom dialog. If the resource for this
    + * key does not exist then the value is used as the error message. Default
    + * is 'askZoom'.
    + */
    +mxEditor.prototype.askZoomResource = (mxClient.language != 'none') ? 'askZoom' : '';
    +	
    +/**
    + * Variable: lastSavedResource
    + * 
    + * Specifies the resource key for the last saved info. If the resource for
    + * this key does not exist then the value is used as the error message.
    + * Default is 'lastSaved'.
    + */
    +mxEditor.prototype.lastSavedResource = (mxClient.language != 'none') ? 'lastSaved' : '';
    +	
    +/**
    + * Variable: currentFileResource
    + * 
    + * Specifies the resource key for the current file info. If the resource for
    + * this key does not exist then the value is used as the error message.
    + * Default is 'lastSaved'.
    + */
    +mxEditor.prototype.currentFileResource = (mxClient.language != 'none') ? 'currentFile' : '';
    +	
    +/**
    + * Variable: propertiesResource
    + * 
    + * Specifies the resource key for the properties window title. If the
    + * resource for this key does not exist then the value is used as the
    + * error message. Default is 'properties'.
    + */
    +mxEditor.prototype.propertiesResource = (mxClient.language != 'none') ? 'properties' : '';
    +	
    +/**
    + * Variable: tasksResource
    + * 
    + * Specifies the resource key for the tasks window title. If the
    + * resource for this key does not exist then the value is used as the
    + * error message. Default is 'tasks'.
    + */
    +mxEditor.prototype.tasksResource = (mxClient.language != 'none') ? 'tasks' : '';
    +	
    +/**
    + * Variable: helpResource
    + * 
    + * Specifies the resource key for the help window title. If the
    + * resource for this key does not exist then the value is used as the
    + * error message. Default is 'help'.
    + */
    +mxEditor.prototype.helpResource = (mxClient.language != 'none') ? 'help' : '';
    +	
    +/**
    + * Variable: outlineResource
    + * 
    + * Specifies the resource key for the outline window title. If the
    + * resource for this key does not exist then the value is used as the
    + * error message. Default is 'outline'.
    + */
    +mxEditor.prototype.outlineResource = (mxClient.language != 'none') ? 'outline' : '';
    +	
    +/**
    + * Variable: outline
    + * 
    + * Reference to the <mxWindow> that contains the outline. The <mxOutline>
    + * is stored in outline.outline.
    + */
    +mxEditor.prototype.outline = null;
    +
    +/**
    + * Variable: graph
    + *
    + * Holds a <mxGraph> for displaying the diagram. The graph
    + * is created in <setGraphContainer>.
    + */
    +mxEditor.prototype.graph = null;
    +
    +/**
    + * Variable: graphRenderHint
    + *
    + * Holds the render hint used for creating the
    + * graph in <setGraphContainer>. See <mxGraph>.
    + * Default is null.
    + */
    +mxEditor.prototype.graphRenderHint = null;
    +
    +/**
    + * Variable: toolbar
    + *
    + * Holds a <mxDefaultToolbar> for displaying the toolbar. The
    + * toolbar is created in <setToolbarContainer>.
    + */
    +mxEditor.prototype.toolbar = null;
    +
    +/**
    + * Variable: status
    + *
    + * DOM container that holds the statusbar. Default is null.
    + * Use <setStatusContainer> to set this value.
    + */
    +mxEditor.prototype.status = null;
    +
    +/**
    + * Variable: popupHandler
    + *
    + * Holds a <mxDefaultPopupMenu> for displaying
    + * popupmenus.
    + */
    +mxEditor.prototype.popupHandler = null;
    +
    +/**
    + * Variable: undoManager
    + *
    + * Holds an <mxUndoManager> for the command history.
    + */
    +mxEditor.prototype.undoManager = null;
    +
    +/**
    + * Variable: keyHandler
    + *
    + * Holds a <mxDefaultKeyHandler> for handling keyboard events.
    + * The handler is created in <setGraphContainer>.
    + */
    +mxEditor.prototype.keyHandler = null;
    +
    +/**
    + * Group: Actions and Options
    + */
    +
    +/**
    + * Variable: actions
    + *
    + * Maps from actionnames to actions, which are functions taking
    + * the editor and the cell as arguments. Use <addAction>
    + * to add or replace an action and <execute> to execute an action
    + * by name, passing the cell to be operated upon as the second
    + * argument.
    + */
    +mxEditor.prototype.actions = null;
    +
    +/**
    + * Variable: dblClickAction
    + *
    + * Specifies the name of the action to be executed
    + * when a cell is double clicked. Default is edit.
    + * 
    + * To handle a singleclick, use the following code.
    + * 
    + * (code)
    + * editor.graph.addListener(mxEvent.CLICK, function(sender, evt)
    + * {
    + *   var e = evt.getProperty('event');
    + *   var cell = evt.getProperty('cell');
    + * 
    + *   if (cell != null && !e.isConsumed())
    + *   {
    + *     // Do something useful with cell...
    + *     e.consume();
    + *   }
    + * });
    + * (end)
    + */
    +mxEditor.prototype.dblClickAction = 'edit';
    +
    +/**
    + * Variable: swimlaneRequired
    + * 
    + * Specifies if new cells must be inserted
    + * into an existing swimlane. Otherwise, cells
    + * that are not swimlanes can be inserted as
    + * top-level cells. Default is false.
    + */
    +mxEditor.prototype.swimlaneRequired = false;
    +
    +/**
    + * Variable: disableContextMenu
    + *
    + * Specifies if the context menu should be disabled in the graph container.
    + * Default is true.
    + */
    +mxEditor.prototype.disableContextMenu = true;
    +
    +/**
    + * Group: Templates
    + */
    +
    +/**
    + * Variable: insertFunction
    + *
    + * Specifies the function to be used for inserting new
    + * cells into the graph. This is assigned from the
    + * <mxDefaultToolbar> if a vertex-tool is clicked.
    + */
    +mxEditor.prototype.insertFunction = null;
    +
    +/**
    + * Variable: forcedInserting
    + *
    + * Specifies if a new cell should be inserted on a single
    + * click even using <insertFunction> if there is a cell 
    + * under the mousepointer, otherwise the cell under the 
    + * mousepointer is selected. Default is false.
    + */
    +mxEditor.prototype.forcedInserting = false;
    +
    +/**
    + * Variable: templates
    + * 
    + * Maps from names to protoype cells to be used
    + * in the toolbar for inserting new cells into
    + * the diagram.
    + */
    +mxEditor.prototype.templates = null;
    +
    +/**
    + * Variable: defaultEdge
    + * 
    + * Prototype edge cell that is used for creating
    + * new edges.
    + */
    +mxEditor.prototype.defaultEdge = null;
    +
    +/**
    + * Variable: defaultEdgeStyle
    + * 
    + * Specifies the edge style to be returned in <getEdgeStyle>.
    + * Default is null.
    + */
    +mxEditor.prototype.defaultEdgeStyle = null;
    +
    +/**
    + * Variable: defaultGroup
    + * 
    + * Prototype group cell that is used for creating
    + * new groups.
    + */
    +mxEditor.prototype.defaultGroup = null;
    +
    +/**
    + * Variable: graphRenderHint
    + *
    + * Default size for the border of new groups. If null,
    + * then then <mxGraph.gridSize> is used. Default is
    + * null.
    + */
    +mxEditor.prototype.groupBorderSize = null;
    +
    +/**
    + * Group: Backend Integration
    + */
    +
    +/**
    + * Variable: filename
    + *
    + * Contains the URL of the last opened file as a string.
    + * Default is null.
    + */
    +mxEditor.prototype.filename = null;
    +
    +/**
    + * Variable: lineFeed
    + *
    + * Character to be used for encoding linefeeds in <save>. Default is '&#xa;'.
    + */
    +mxEditor.prototype.linefeed = '&#xa;';
    +
    +/**
    + * Variable: postParameterName
    + *
    + * Specifies if the name of the post parameter that contains the diagram
    + * data in a post request to the server. Default is xml.
    + */
    +mxEditor.prototype.postParameterName = 'xml';
    +
    +/**
    + * Variable: escapePostData
    + *
    + * Specifies if the data in the post request for saving a diagram
    + * should be converted using encodeURIComponent. Default is true.
    + */
    +mxEditor.prototype.escapePostData = true;
    +
    +/**
    + * Variable: urlPost
    + *
    + * Specifies the URL to be used for posting the diagram
    + * to a backend in <save>.
    + */
    +mxEditor.prototype.urlPost = null;
    +
    +/**
    + * Variable: urlImage
    + *
    + * Specifies the URL to be used for creating a bitmap of
    + * the graph in the image action.
    + */
    +mxEditor.prototype.urlImage = null;
    +
    +/**
    + * Variable: urlInit
    + *
    + * Specifies the URL to be used for initializing the session.
    + */
    +mxEditor.prototype.urlInit = null;
    +
    +/**
    + * Variable: urlNotify
    + *
    + * Specifies the URL to be used for notifying the backend
    + * in the session.
    + */
    +mxEditor.prototype.urlNotify = null;
    +
    +/**
    + * Variable: urlPoll
    + *
    + * Specifies the URL to be used for polling in the session.
    + */
    +mxEditor.prototype.urlPoll = null;
    +
    +/**
    + * Group: Autolayout
    + */
    +
    +/**
    + * Variable: horizontalFlow
    + *
    + * Specifies the direction of the flow
    + * in the diagram. This is used in the
    + * layout algorithms. Default is false,
    + * ie. vertical flow.
    + */
    +mxEditor.prototype.horizontalFlow = false;
    +
    +/**
    + * Variable: layoutDiagram
    + *
    + * Specifies if the top-level elements in the
    + * diagram should be layed out using a vertical
    + * or horizontal stack depending on the setting
    + * of <horizontalFlow>. The spacing between the
    + * swimlanes is specified by <swimlaneSpacing>.
    + * Default is false.
    + * 
    + * If the top-level elements are swimlanes, then
    + * the intra-swimlane layout is activated by
    + * the <layoutSwimlanes> switch.
    + */
    +mxEditor.prototype.layoutDiagram = false;
    +
    +/**
    + * Variable: swimlaneSpacing
    + *
    + * Specifies the spacing between swimlanes if
    + * automatic layout is turned on in
    + * <layoutDiagram>. Default is 0.
    + */
    +mxEditor.prototype.swimlaneSpacing = 0;
    +
    +/**
    + * Variable: maintainSwimlanes
    + * 
    + * Specifies if the swimlanes should be kept at the same
    + * width or height depending on the setting of
    + * <horizontalFlow>.  Default is false.
    + * 
    + * For horizontal flows, all swimlanes
    + * have the same height and for vertical flows, all swimlanes
    + * have the same width. Furthermore, the swimlanes are
    + * automatically "stacked" if <layoutDiagram> is true.
    + */
    +mxEditor.prototype.maintainSwimlanes = false;
    +
    +/**
    + * Variable: layoutSwimlanes
    + *
    + * Specifies if the children of swimlanes should
    + * be layed out, either vertically or horizontally
    + * depending on <horizontalFlow>.
    + * Default is false.
    + */
    +mxEditor.prototype.layoutSwimlanes = false;
    +
    +/**
    + * Group: Attribute Cycling
    + */
    + 
    +/**
    + * Variable: cycleAttributeValues
    + * 
    + * Specifies the attribute values to be cycled when
    + * inserting new swimlanes. Default is an empty
    + * array.
    + */
    +mxEditor.prototype.cycleAttributeValues = null;
    +
    +/**
    + * Variable: cycleAttributeIndex
    + * 
    + * Index of the last consumed attribute index. If a new
    + * swimlane is inserted, then the <cycleAttributeValues>
    + * at this index will be used as the value for
    + * <cycleAttributeName>. Default is 0.
    + */
    +mxEditor.prototype.cycleAttributeIndex = 0;
    +
    +/**
    + * Variable: cycleAttributeName
    + * 
    + * Name of the attribute to be assigned a <cycleAttributeValues>
    + * when inserting new swimlanes. Default is fillColor.
    + */
    +mxEditor.prototype.cycleAttributeName = 'fillColor';
    +
    +/**
    + * Group: Windows
    + */
    +
    +/**
    + * Variable: tasks
    + * 
    + * Holds the <mxWindow> created in <showTasks>.
    + */
    +mxEditor.prototype.tasks = null;
    +
    +/**
    + * Variable: tasksWindowImage
    + *
    + * Icon for the tasks window.
    + */
    +mxEditor.prototype.tasksWindowImage = null;
    +
    +/**
    + * Variable: tasksTop
    + * 
    + * Specifies the top coordinate of the tasks window in pixels.
    + * Default is 20.
    + */
    +mxEditor.prototype.tasksTop = 20;
    +
    +/**
    + * Variable: help
    + * 
    + * Holds the <mxWindow> created in <showHelp>.
    + */
    +mxEditor.prototype.help = null;
    +
    +/**
    + * Variable: helpWindowImage
    + *
    + * Icon for the help window.
    + */
    +mxEditor.prototype.helpWindowImage = null;
    +
    +/**
    + * Variable: urlHelp
    + *
    + * Specifies the URL to be used for the contents of the
    + * Online Help window. This is usually specified in the
    + * resources file under urlHelp for language-specific
    + * online help support.
    + */
    +mxEditor.prototype.urlHelp = null;
    +
    +/**
    + * Variable: helpWidth
    + * 
    + * Specifies the width of the help window in pixels.
    + * Default is 300.
    + */
    +mxEditor.prototype.helpWidth = 300;
    +	
    +/**
    + * Variable: helpWidth
    + * 
    + * Specifies the width of the help window in pixels.
    + * Default is 260.
    + */
    +mxEditor.prototype.helpHeight = 260;
    +
    +/**
    + * Variable: propertiesWidth
    + * 
    + * Specifies the width of the properties window in pixels.
    + * Default is 240.
    + */
    +mxEditor.prototype.propertiesWidth = 240;
    +		
    +/**
    + * Variable: propertiesHeight
    + * 
    + * Specifies the height of the properties window in pixels.
    + * If no height is specified then the window will be automatically
    + * sized to fit its contents. Default is null.
    + */
    +mxEditor.prototype.propertiesHeight = null;
    +		
    +/**
    + * Variable: movePropertiesDialog
    + *
    + * Specifies if the properties dialog should be automatically
    + * moved near the cell it is displayed for, otherwise the
    + * dialog is not moved. This value is only taken into 
    + * account if the dialog is already visible. Default is false.
    + */
    +mxEditor.prototype.movePropertiesDialog = false;
    +
    +/**
    + * Variable: validating
    + *
    + * Specifies if <mxGraph.validateGraph> should automatically be invoked after
    + * each change. Default is false.
    + */
    +mxEditor.prototype.validating = false;
    +
    +/**
    + * Variable: modified
    + *
    + * True if the graph has been modified since it was last saved.
    + */
    +mxEditor.prototype.modified = false;
    +
    +/**
    + * Function: isModified
    + * 
    + * Returns <modified>.
    + */
    +mxEditor.prototype.isModified = function ()
    +{
    +	return this.modified;
    +};
    +
    +/**
    + * Function: setModified
    + * 
    + * Sets <modified> to the specified boolean value.
    + */
    +mxEditor.prototype.setModified = function (value)
    +{
    +	this.modified = value;
    +};
    +
    +/**
    + * Function: addActions
    + *
    + * Adds the built-in actions to the editor instance.
    + *
    + * save - Saves the graph using <urlPost>.
    + * print - Shows the graph in a new print preview window.
    + * show - Shows the graph in a new window.
    + * exportImage - Shows the graph as a bitmap image using <getUrlImage>.
    + * refresh - Refreshes the graph's display.
    + * cut - Copies the current selection into the clipboard
    + * and removes it from the graph.
    + * copy - Copies the current selection into the clipboard.
    + * paste - Pastes the clipboard into the graph.
    + * delete - Removes the current selection from the graph.
    + * group - Puts the current selection into a new group.
    + * ungroup - Removes the selected groups and selects the children.
    + * undo - Undoes the last change on the graph model.
    + * redo - Redoes the last change on the graph model.
    + * zoom - Sets the zoom via a dialog.
    + * zoomIn - Zooms into the graph.
    + * zoomOut - Zooms out of the graph
    + * actualSize - Resets the scale and translation on the graph.
    + * fit - Changes the scale so that the graph fits into the window.
    + * showProperties - Shows the properties dialog.
    + * selectAll - Selects all cells.
    + * selectNone - Clears the selection.
    + * selectVertices - Selects all vertices.
    + * selectEdges = Selects all edges.
    + * edit - Starts editing the current selection cell.
    + * enterGroup - Drills down into the current selection cell.
    + * exitGroup - Moves up in the drilling hierachy
    + * home - Moves to the topmost parent in the drilling hierarchy
    + * selectPrevious - Selects the previous cell.
    + * selectNext - Selects the next cell.
    + * selectParent - Selects the parent of the selection cell.
    + * selectChild - Selects the first child of the selection cell.
    + * collapse - Collapses the currently selected cells.
    + * expand - Expands the currently selected cells.
    + * bold - Toggle bold text style.
    + * italic - Toggle italic text style.
    + * underline - Toggle underline text style.
    + * shadow - Toggle shadow text style.
    + * alignCellsLeft - Aligns the selection cells at the left.
    + * alignCellsCenter - Aligns the selection cells in the center.
    + * alignCellsRight - Aligns the selection cells at the right.
    + * alignCellsTop - Aligns the selection cells at the top.
    + * alignCellsMiddle - Aligns the selection cells in the middle.
    + * alignCellsBottom - Aligns the selection cells at the bottom.
    + * alignFontLeft - Sets the horizontal text alignment to left.
    + * alignFontCenter - Sets the horizontal text alignment to center.
    + * alignFontRight - Sets the horizontal text alignment to right.
    + * alignFontTop - Sets the vertical text alignment to top.
    + * alignFontMiddle - Sets the vertical text alignment to middle.
    + * alignFontBottom - Sets the vertical text alignment to bottom.
    + * toggleTasks - Shows or hides the tasks window.
    + * toggleHelp - Shows or hides the help window.
    + * toggleOutline - Shows or hides the outline window.
    + * toggleConsole - Shows or hides the console window.
    + */
    +mxEditor.prototype.addActions = function ()
    +{
    +	this.addAction('save', function(editor)
    +	{
    +		editor.save();
    +	});
    +	
    +	this.addAction('print', function(editor)
    +	{
    +		var preview = new mxPrintPreview(editor.graph, 1);
    +		preview.open();
    +	});
    +	
    +	this.addAction('show', function(editor)
    +	{
    +		mxUtils.show(editor.graph, null, 10, 10);
    +	});
    +
    +	this.addAction('exportImage', function(editor)
    +	{
    +		var url = editor.getUrlImage();
    +		
    +		if (url == null || mxClient.IS_LOCAL)
    +		{
    +			editor.execute('show');
    +		}
    +		else
    +		{
    +			var node = mxUtils.getViewXml(editor.graph, 1);
    +			var xml = mxUtils.getXml(node, '\n');
    +
    +			mxUtils.submit(url, editor.postParameterName + '=' +
    +				encodeURIComponent(xml), document, '_blank');
    +		}
    +	});
    +	
    +	this.addAction('refresh', function(editor)
    +	{
    +		editor.graph.refresh();
    +	});
    +	
    +	this.addAction('cut', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			mxClipboard.cut(editor.graph);
    +		}
    +	});
    +	
    +	this.addAction('copy', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			mxClipboard.copy(editor.graph);
    +		}
    +	});
    +	
    +	this.addAction('paste', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			mxClipboard.paste(editor.graph);
    +		}
    +	});
    +	
    +	this.addAction('delete', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.removeCells();
    +		}
    +	});
    +	
    +	this.addAction('group', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.setSelectionCell(editor.groupCells());
    +		}
    +	});
    +	
    +	this.addAction('ungroup', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.setSelectionCells(editor.graph.ungroupCells());
    +		}
    +	});
    +	
    +	this.addAction('removeFromParent', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.removeCellsFromParent();
    +		}
    +	});
    +	
    +	this.addAction('undo', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.undo();
    +		}
    +	});
    +	
    +	this.addAction('redo', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.redo();
    +		}
    +	});
    +	
    +	this.addAction('zoomIn', function(editor)
    +	{
    +		editor.graph.zoomIn();
    +	});
    +	
    +	this.addAction('zoomOut', function(editor)
    +	{
    +		editor.graph.zoomOut();
    +	});
    +	
    +	this.addAction('actualSize', function(editor)
    +	{
    +		editor.graph.zoomActual();
    +	});
    +	
    +	this.addAction('fit', function(editor)
    +	{
    +		editor.graph.fit();
    +	});
    +	
    +	this.addAction('showProperties', function(editor, cell)
    +	{
    +		editor.showProperties(cell);
    +	});
    +	
    +	this.addAction('selectAll', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.selectAll();
    +		}
    +	});
    +	
    +	this.addAction('selectNone', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.clearSelection();
    +		}
    +	});
    +	
    +	this.addAction('selectVertices', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.selectVertices();
    +		}
    +	});
    +	
    +	this.addAction('selectEdges', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.selectEdges();
    +		}
    +	});
    +	
    +	this.addAction('edit', function(editor, cell)
    +	{
    +		if (editor.graph.isEnabled() &&
    +			editor.graph.isCellEditable(cell))
    +		{
    +			editor.graph.startEditingAtCell(cell);
    +		}
    +	});
    +	
    +	this.addAction('toBack', function(editor, cell)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.orderCells(true);
    +		}
    +	});
    +	
    +	this.addAction('toFront', function(editor, cell)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.orderCells(false);
    +		}
    +	});
    +	
    +	this.addAction('enterGroup', function(editor, cell)
    +	{
    +		editor.graph.enterGroup(cell);
    +	});
    +	
    +	this.addAction('exitGroup', function(editor)
    +	{
    +		editor.graph.exitGroup();
    +	});
    +	
    +	this.addAction('home', function(editor)
    +	{
    +		editor.graph.home();
    +	});
    +	
    +	this.addAction('selectPrevious', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.selectPreviousCell();
    +		}
    +	});
    +	
    +	this.addAction('selectNext', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.selectNextCell();
    +		}
    +	});
    +	
    +	this.addAction('selectParent', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.selectParentCell();
    +		}
    +	});
    +	
    +	this.addAction('selectChild', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.selectChildCell();
    +		}
    +	});
    +	
    +	this.addAction('collapse', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.foldCells(true);
    +		}
    +	});
    +	
    +	this.addAction('collapseAll', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			var cells = editor.graph.getChildVertices();
    +			editor.graph.foldCells(true, false, cells);
    +		}
    +	});
    +	
    +	this.addAction('expand', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.foldCells(false);
    +		}
    +	});
    +	
    +	this.addAction('expandAll', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			var cells = editor.graph.getChildVertices();
    +			editor.graph.foldCells(false, false, cells);
    +		}
    +	});
    +	
    +	this.addAction('bold', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.toggleCellStyleFlags(
    +				mxConstants.STYLE_FONTSTYLE,
    +				mxConstants.FONT_BOLD);
    +		}
    +	});
    +	
    +	this.addAction('italic', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.toggleCellStyleFlags(
    +				mxConstants.STYLE_FONTSTYLE,
    +				mxConstants.FONT_ITALIC);
    +		}
    +	});
    +	
    +	this.addAction('underline', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.toggleCellStyleFlags(
    +				mxConstants.STYLE_FONTSTYLE,
    +				mxConstants.FONT_UNDERLINE);
    +		}
    +	});
    +	
    +	this.addAction('shadow', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.toggleCellStyleFlags(
    +				mxConstants.STYLE_FONTSTYLE,
    +				mxConstants.FONT_SHADOW);
    +		}
    +	});
    +	
    +	this.addAction('alignCellsLeft', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.alignCells(mxConstants.ALIGN_LEFT);
    +		}
    +	});
    +	
    +	this.addAction('alignCellsCenter', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.alignCells(mxConstants.ALIGN_CENTER);
    +		}
    +	});
    +	
    +	this.addAction('alignCellsRight', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.alignCells(mxConstants.ALIGN_RIGHT);
    +		}
    +	});
    +	
    +	this.addAction('alignCellsTop', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.alignCells(mxConstants.ALIGN_TOP);
    +		}
    +	});
    +	
    +	this.addAction('alignCellsMiddle', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.alignCells(mxConstants.ALIGN_MIDDLE);
    +		}
    +	});
    +	
    +	this.addAction('alignCellsBottom', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.alignCells(mxConstants.ALIGN_BOTTOM);
    +		}
    +	});
    +	
    +	this.addAction('alignFontLeft', function(editor)
    +	{
    +		
    +		editor.graph.setCellStyles(
    +			mxConstants.STYLE_ALIGN,
    +			mxConstants.ALIGN_LEFT);
    +	});
    +	
    +	this.addAction('alignFontCenter', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.setCellStyles(
    +				mxConstants.STYLE_ALIGN,
    +				mxConstants.ALIGN_CENTER);
    +		}
    +	});
    +	
    +	this.addAction('alignFontRight', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.setCellStyles(
    +				mxConstants.STYLE_ALIGN,
    +				mxConstants.ALIGN_RIGHT);
    +		}
    +	});
    +	
    +	this.addAction('alignFontTop', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.setCellStyles(
    +				mxConstants.STYLE_VERTICAL_ALIGN,
    +				mxConstants.ALIGN_TOP);
    +		}
    +	});
    +	
    +	this.addAction('alignFontMiddle', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.setCellStyles(
    +				mxConstants.STYLE_VERTICAL_ALIGN,
    +				mxConstants.ALIGN_MIDDLE);
    +		}
    +	});
    +	
    +	this.addAction('alignFontBottom', function(editor)
    +	{
    +		if (editor.graph.isEnabled())
    +		{
    +			editor.graph.setCellStyles(
    +				mxConstants.STYLE_VERTICAL_ALIGN,
    +				mxConstants.ALIGN_BOTTOM);
    +		}
    +	});
    +	
    +	this.addAction('zoom', function(editor)
    +	{
    +		var current = editor.graph.getView().scale*100;
    +		var scale = parseFloat(mxUtils.prompt(
    +			mxResources.get(editor.askZoomResource) ||
    +			editor.askZoomResource,
    +			current))/100;
    +
    +		if (!isNaN(scale))
    +		{
    +			editor.graph.getView().setScale(scale);
    +		}
    +	});
    +	
    +	this.addAction('toggleTasks', function(editor)
    +	{
    +		if (editor.tasks != null)
    +		{
    +			editor.tasks.setVisible(!editor.tasks.isVisible());
    +		}
    +		else
    +		{
    +			editor.showTasks();
    +		}
    +	});
    +	
    +	this.addAction('toggleHelp', function(editor)
    +	{
    +		if (editor.help != null)
    +		{
    +			editor.help.setVisible(!editor.help.isVisible());
    +		}
    +		else
    +		{
    +			editor.showHelp();
    +		}
    +	});
    +	
    +	this.addAction('toggleOutline', function(editor)
    +	{
    +		if (editor.outline == null)
    +		{
    +			editor.showOutline();
    +		}
    +		else
    +		{
    +			editor.outline.setVisible(!editor.outline.isVisible());
    +		}
    +	});
    +	
    +	this.addAction('toggleConsole', function(editor)
    +	{
    +		mxLog.setVisible(!mxLog.isVisible());
    +	});
    +};
    +
    +/**
    + * Function: createSession
    + *
    + * Creates the built-in session using <urlInit>, <urlPoll> and <urlNotify>.
    + */
    +mxEditor.prototype.createSession = function ()
    +{
    +	var session = null;
    +	
    +	// Routes any change events from the session
    +	// through the editor and dispatches them as
    +	// a session event.
    +	var sessionChanged = mxUtils.bind(this, function(session)
    +	{
    +		this.fireEvent(new mxEventObject(mxEvent.SESSION, 'session', session));
    +	});
    +	
    +	session = this.connect(this.urlInit, this.urlPoll,
    +		this.urlNotify, sessionChanged);
    +};
    +
    +/**
    + * Function: configure
    + *
    + * Configures the editor using the specified node. To load the
    + * configuration from a given URL the following code can be used to obtain
    + * the XML node.
    + * 
    + * (code)
    + * var node = mxUtils.load(url).getDocumentElement();
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * node - XML node that contains the configuration.
    + */
    +mxEditor.prototype.configure = function (node)
    +{
    +	if (node != null)
    +	{
    +		// Creates a decoder for the XML data
    +		// and uses it to configure the editor
    +		var dec = new mxCodec(node.ownerDocument);
    +		dec.decode(node, this);
    +		
    +		// Resets the counters, modified state and
    +		// command history
    +		this.resetHistory();
    +	}
    +};
    +
    +/**
    + * Function: resetFirstTime
    + * 
    + * Resets the cookie that is used to remember if the editor has already
    + * been used.
    + */
    +mxEditor.prototype.resetFirstTime = function ()
    +{
    +	document.cookie =
    +		'mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/';
    +};
    +
    +/**
    + * Function: resetHistory
    + * 
    + * Resets the command history, modified state and counters.
    + */
    +mxEditor.prototype.resetHistory = function ()
    +{
    +	this.lastSnapshot = new Date().getTime();
    +	this.undoManager.clear();
    +	this.ignoredChanges = 0;
    +	this.setModified(false);
    +};
    +
    +/**
    + * Function: addAction
    + * 
    + * Binds the specified actionname to the specified function.
    + * 
    + * Parameters:
    + * 
    + * actionname - String that specifies the name of the action
    + * to be added.
    + * funct - Function that implements the new action. The first
    + * argument of the function is the editor it is used
    + * with, the second argument is the cell it operates
    + * upon.
    + * 
    + * Example:
    + * (code)
    + * editor.addAction('test', function(editor, cell)
    + * {
    + * 		mxUtils.alert("test "+cell);
    + * });
    + * (end)
    + */
    +mxEditor.prototype.addAction = function (actionname, funct)
    +{
    +	this.actions[actionname] = funct;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Executes the function with the given name in <actions> passing the
    + * editor instance and given cell as the first and second argument. All
    + * additional arguments are passed to the action as well. This method
    + * contains a try-catch block and displays an error message if an action
    + * causes an exception. The exception is re-thrown after the error
    + * message was displayed.
    + * 
    + * Example:
    + * 
    + * (code)
    + * editor.execute("showProperties", cell);
    + * (end)
    + */
    +mxEditor.prototype.execute = function (actionname, cell, evt)
    +{
    +	var action = this.actions[actionname];
    +	
    +	if (action != null)
    +	{
    +		try
    +		{
    +			// Creates the array of arguments by replacing the actionname
    +			// with the editor instance in the args of this function
    +			var args = arguments;
    +			args[0] = this;
    +			
    +			// Invokes the function on the editor using the args
    +			action.apply(this, args);
    +		}
    +		catch (e)
    +		{
    +			mxUtils.error('Cannot execute ' + actionname +
    +				': ' + e.message, 280, true);
    +			
    +			throw e;
    +		}
    +	}
    +	else
    +	{
    +		mxUtils.error('Cannot find action '+actionname, 280, true);
    +	}
    +};
    +
    +/**
    + * Function: addTemplate
    + * 
    + * Adds the specified template under the given name in <templates>.
    + */
    +mxEditor.prototype.addTemplate = function (name, template)
    +{
    +	this.templates[name] = template;
    +};
    +
    +/**
    + * Function: getTemplate
    + * 
    + * Returns the template for the given name.
    + */
    +mxEditor.prototype.getTemplate = function (name)
    +{
    +	return this.templates[name];
    +};
    +
    +/**
    + * Function: createGraph
    + * 
    + * Creates the <graph> for the editor. The graph is created with no
    + * container and is initialized from <setGraphContainer>.
    + */
    +mxEditor.prototype.createGraph = function ()
    +{
    +	var graph = new mxGraph(null, null, this.graphRenderHint);
    +	
    +	// Enables rubberband, tooltips, panning
    +	graph.setTooltips(true);
    +	graph.setPanning(true);
    +
    +	// Overrides the dblclick method on the graph to
    +	// invoke the dblClickAction for a cell and reset
    +	// the selection tool in the toolbar
    +	this.installDblClickHandler(graph);
    +	
    +	// Installs the command history
    +	this.installUndoHandler(graph);
    +
    +	// Installs the handlers for the root event
    +	this.installDrillHandler(graph);
    +	
    +	// Installs the handler for validation
    +	this.installChangeHandler(graph);
    +
    +	// Installs the handler for calling the
    +	// insert function and consume the
    +	// event if an insert function is defined
    +	this.installInsertHandler(graph);
    +
    +	// Redirects the function for creating the
    +	// popupmenu items
    +	graph.panningHandler.factoryMethod =
    +		mxUtils.bind(this, function(menu, cell, evt)
    +		{
    +			return this.createPopupMenu(menu, cell, evt);
    +		});
    +
    +	// Redirects the function for creating
    +	// new connections in the diagram
    +	graph.connectionHandler.factoryMethod =
    +		mxUtils.bind(this, function(source, target)
    +		{
    +			return this.createEdge(source, target);
    +		});
    +	
    +	// Maintains swimlanes and installs autolayout
    +	this.createSwimlaneManager(graph);
    +	this.createLayoutManager(graph);
    +	
    +	return graph;
    +};
    +
    +/**
    + * Function: createSwimlaneManager
    + * 
    + * Sets the graph's container using <mxGraph.init>.
    + */
    +mxEditor.prototype.createSwimlaneManager = function (graph)
    +{
    +	var swimlaneMgr = new mxSwimlaneManager(graph, false);
    +
    +	swimlaneMgr.isHorizontal = mxUtils.bind(this, function()
    +	{
    +		return this.horizontalFlow;
    +	});
    +	
    +	swimlaneMgr.isEnabled = mxUtils.bind(this, function()
    +	{
    +		return this.maintainSwimlanes;
    +	});
    +	
    +	return swimlaneMgr;
    +};
    +
    +/**
    + * Function: createLayoutManager
    + * 
    + * Creates a layout manager for the swimlane and diagram layouts, that
    + * is, the locally defined inter- and intraswimlane layouts.
    + */
    +mxEditor.prototype.createLayoutManager = function (graph)
    +{
    +	var layoutMgr = new mxLayoutManager(graph);
    +	
    +	var self = this; // closure
    +	layoutMgr.getLayout = function(cell)
    +	{
    +		var layout = null;
    +		var model = self.graph.getModel();
    +		
    +		if (model.getParent(cell) != null)
    +		{
    +			// Executes the swimlane layout if a child of
    +			// a swimlane has been changed. The layout is
    +			// lazy created in createSwimlaneLayout.
    +			if (self.layoutSwimlanes &&
    +				graph.isSwimlane(cell))
    +			{
    +				if (self.swimlaneLayout == null)
    +				{
    +					self.swimlaneLayout = self.createSwimlaneLayout();
    +				}
    +				
    +				layout = self.swimlaneLayout;
    +			}
    +			
    +			// Executes the diagram layout if the modified
    +			// cell is a top-level cell. The layout is
    +			// lazy created in createDiagramLayout.
    +			else if (self.layoutDiagram &&
    +				(graph.isValidRoot(cell) ||
    +				model.getParent(model.getParent(cell)) == null))
    +			{
    +				if (self.diagramLayout == null)
    +				{
    +					self.diagramLayout = self.createDiagramLayout();
    +				}
    +				
    +				layout = self.diagramLayout;
    +			}
    +		}
    +			
    +		return layout;
    +	};
    +	
    +	return layoutMgr;
    +};
    +
    +/**
    + * Function: setGraphContainer
    + * 
    + * Sets the graph's container using <mxGraph.init>.
    + */
    +mxEditor.prototype.setGraphContainer = function (container)
    +{
    +	if (this.graph.container == null)
    +	{
    +		// Creates the graph instance inside the given container and render hint
    +		//this.graph = new mxGraph(container, null, this.graphRenderHint);
    +		this.graph.init(container);
    +
    +		// Install rubberband selection as the last
    +		// action handler in the chain
    +		this.rubberband = new mxRubberband(this.graph);
    +
    +		// Disables the context menu
    +		if (this.disableContextMenu)
    +		{
    +			mxEvent.disableContextMenu(container);
    +		}
    +
    +		// Workaround for stylesheet directives in IE
    +		if (mxClient.IS_IE)
    +		{
    +			new mxDivResizer(container);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: installDblClickHandler
    + * 
    + * Overrides <mxGraph.dblClick> to invoke <dblClickAction>
    + * on a cell and reset the selection tool in the toolbar.
    + */
    +mxEditor.prototype.installDblClickHandler = function (graph)
    +{
    +	// Installs a listener for double click events
    +	graph.addListener(mxEvent.DOUBLE_CLICK,
    +		mxUtils.bind(this, function(sender, evt)
    +		{
    +			var cell = evt.getProperty('cell');
    +			
    +			if (cell != null &&
    +				graph.isEnabled() &&
    +				this.dblClickAction != null)
    +			{
    +				this.execute(this.dblClickAction, cell);
    +				evt.consume();
    +			}
    +		})
    +	);
    +};
    +		
    +/**
    + * Function: installUndoHandler
    + * 
    + * Adds the <undoManager> to the graph model and the view.
    + */
    +mxEditor.prototype.installUndoHandler = function (graph)
    +{				
    +	var listener = mxUtils.bind(this, function(sender, evt)
    +	{
    +		var edit = evt.getProperty('edit');
    +		this.undoManager.undoableEditHappened(edit);
    +	});
    +	
    +	graph.getModel().addListener(mxEvent.UNDO, listener);
    +	graph.getView().addListener(mxEvent.UNDO, listener);
    +
    +	// Keeps the selection state in sync
    +	var undoHandler = function(sender, evt)
    +	{
    +		var changes = evt.getProperty('edit').changes;
    +		graph.setSelectionCells(graph.getSelectionCellsForChanges(changes));
    +	};
    +	
    +	this.undoManager.addListener(mxEvent.UNDO, undoHandler);
    +	this.undoManager.addListener(mxEvent.REDO, undoHandler);
    +};
    +		
    +/**
    + * Function: installDrillHandler
    + * 
    + * Installs listeners for dispatching the <root> event.
    + */
    +mxEditor.prototype.installDrillHandler = function (graph)
    +{				
    +	var listener = mxUtils.bind(this, function(sender)
    +	{
    +		this.fireEvent(new mxEventObject(mxEvent.ROOT));
    +	});
    +	
    +	graph.getView().addListener(mxEvent.DOWN, listener);
    +	graph.getView().addListener(mxEvent.UP, listener);
    +};
    +
    +/**
    + * Function: installChangeHandler
    + * 
    + * Installs the listeners required to automatically validate
    + * the graph. On each change of the root, this implementation
    + * fires a <root> event.
    + */
    +mxEditor.prototype.installChangeHandler = function (graph)
    +{
    +	var listener = mxUtils.bind(this, function(sender, evt)
    +	{
    +		// Updates the modified state
    +		this.setModified(true);
    +
    +		// Automatically validates the graph
    +		// after each change
    +		if (this.validating == true)
    +		{
    +			graph.validateGraph();
    +		}
    +
    +		// Checks if the root has been changed
    +		var changes = evt.getProperty('edit').changes;
    +		
    +		for (var i = 0; i < changes.length; i++)
    +		{
    +			var change = changes[i];
    +			
    +			if (change instanceof mxRootChange ||
    +				(change instanceof mxValueChange &&
    +				change.cell == this.graph.model.root) ||
    +				(change instanceof mxCellAttributeChange &&
    +				change.cell == this.graph.model.root))
    +			{
    +				this.fireEvent(new mxEventObject(mxEvent.ROOT));
    +				break;
    +			}
    +		}
    +	});
    +	
    +	graph.getModel().addListener(mxEvent.CHANGE, listener);
    +};
    +
    +/**
    + * Function: installInsertHandler
    + * 
    + * Installs the handler for invoking <insertFunction> if
    + * one is defined.
    + */
    +mxEditor.prototype.installInsertHandler = function (graph)
    +{
    +	var self = this; // closure
    +	var insertHandler =
    +	{
    +		mouseDown: function(sender, me)
    +		{
    +			if (self.insertFunction != null &&
    +				!me.isPopupTrigger() &&
    +				(self.forcedInserting ||
    +				me.getState() == null))
    +			{
    +				self.graph.clearSelection();
    +				self.insertFunction(me.getEvent(), me.getCell());
    +
    +				// Consumes the rest of the events
    +				// for this gesture (down, move, up)
    +				this.isActive = true;
    +				me.consume();
    +			}
    +		},
    +		
    +		mouseMove: function(sender, me)
    +		{
    +			if (this.isActive)
    +			{
    +				me.consume();
    +			}
    +		},
    +		
    +		mouseUp: function(sender, me)
    +		{
    +			if (this.isActive)
    +			{
    +				this.isActive = false;
    +				me.consume();
    +			}
    +		}
    +	};
    +	
    +	graph.addMouseListener(insertHandler);
    +};
    +
    +/**
    + * Function: createDiagramLayout
    + * 
    + * Creates the layout instance used to layout the
    + * swimlanes in the diagram.
    + */
    +mxEditor.prototype.createDiagramLayout = function ()
    +{
    +	var gs = this.graph.gridSize;
    +	var layout = new mxStackLayout(this.graph, !this.horizontalFlow,
    +		 this.swimlaneSpacing, 2*gs, 2*gs);
    +	
    +	// Overrides isIgnored to only take into account swimlanes
    +	layout.isVertexIgnored = function(cell)
    +	{
    +		return !layout.graph.isSwimlane(cell);
    +	};
    +	
    +	return layout;
    +};
    +
    +/**
    + * Function: createSwimlaneLayout
    + * 
    + * Creates the layout instance used to layout the
    + * children of each swimlane.
    + */
    +mxEditor.prototype.createSwimlaneLayout = function ()
    +{
    +	return new mxCompactTreeLayout(this.graph, this.horizontalFlow);
    +};
    +
    +/**
    + * Function: createToolbar
    + * 
    + * Creates the <toolbar> with no container.
    + */
    +mxEditor.prototype.createToolbar = function ()
    +{
    +	return new mxDefaultToolbar(null, this);
    +};
    +
    +/**
    + * Function: setToolbarContainer
    + * 
    + * Initializes the toolbar for the given container.
    + */
    +mxEditor.prototype.setToolbarContainer = function (container)
    +{
    +	this.toolbar.init(container);
    +	
    +	// Workaround for stylesheet directives in IE
    +	if (mxClient.IS_IE)
    +	{
    +		new mxDivResizer(container);
    +	}
    +};
    +
    +/**
    + * Function: setStatusContainer
    + * 
    + * Creates the <status> using the specified container.
    + * 
    + * This implementation adds listeners in the editor to 
    + * display the last saved time and the current filename 
    + * in the status bar.
    + * 
    + * Parameters:
    + * 
    + * container - DOM node that will contain the statusbar.
    + */
    +mxEditor.prototype.setStatusContainer = function (container)
    +{
    +	if (this.status == null)
    +	{
    +		this.status = container;
    +		
    +		// Prints the last saved time in the status bar
    +		// when files are saved
    +		this.addListener(mxEvent.SAVE, mxUtils.bind(this, function()
    +		{
    +			var tstamp = new Date().toLocaleString();
    +			this.setStatus((mxResources.get(this.lastSavedResource) ||
    +				this.lastSavedResource)+': '+tstamp);
    +		}));
    +		
    +		// Updates the statusbar to display the filename
    +		// when new files are opened
    +		this.addListener(mxEvent.OPEN, mxUtils.bind(this, function()
    +		{
    +			this.setStatus((mxResources.get(this.currentFileResource) ||
    +				this.currentFileResource)+': '+this.filename);
    +		}));
    +		
    +		// Workaround for stylesheet directives in IE
    +		if (mxClient.IS_IE)
    +		{
    +			new mxDivResizer(container);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: setStatus
    + * 
    + * Display the specified message in the status bar.
    + * 
    + * Parameters:
    + * 
    + * message - String the specified the message to
    + * be displayed.
    + */
    +mxEditor.prototype.setStatus = function (message)
    +{
    +	if (this.status != null && message != null)
    +	{
    +		this.status.innerHTML = message;
    +	}
    +};
    +
    +/**
    + * Function: setTitleContainer
    + * 
    + * Creates a listener to update the inner HTML of the
    + * specified DOM node with the value of <getTitle>.
    + * 
    + * Parameters:
    + * 
    + * container - DOM node that will contain the title.
    + */
    +mxEditor.prototype.setTitleContainer = function (container)
    +{
    +	this.addListener(mxEvent.ROOT, mxUtils.bind(this, function(sender)
    +	{
    +		container.innerHTML = this.getTitle();
    +	}));
    +
    +	// Workaround for stylesheet directives in IE
    +	if (mxClient.IS_IE)
    +	{
    +		new mxDivResizer(container);
    +	}
    +};
    +
    +/**
    + * Function: treeLayout
    + * 
    + * Executes a vertical or horizontal compact tree layout
    + * using the specified cell as an argument. The cell may
    + * either be a group or the root of a tree.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to use in the compact tree layout.
    + * horizontal - Optional boolean to specify the tree's
    + * orientation. Default is true.
    + */
    +mxEditor.prototype.treeLayout = function (cell, horizontal)
    +{
    +	if (cell != null)
    +	{
    +		var layout = new mxCompactTreeLayout(this.graph, horizontal);
    +		layout.execute(cell);
    +	}
    +};
    +
    +/**
    + * Function: getTitle
    + * 
    + * Returns the string value for the current root of the
    + * diagram.
    + */
    +mxEditor.prototype.getTitle = function ()
    +{
    +	var title = '';
    +	var graph = this.graph;
    +	var cell = graph.getCurrentRoot();
    +	
    +	while (cell != null &&
    +		   graph.getModel().getParent(
    +				graph.getModel().getParent(cell)) != null)
    +	{
    +		// Append each label of a valid root
    +		if (graph.isValidRoot(cell))
    +		{
    +			title = ' > ' +
    +			graph.convertValueToString(cell) + title;
    +		}
    +		
    +		cell = graph.getModel().getParent(cell);
    +	}
    +	
    +	var prefix = this.getRootTitle();
    +	
    +	return prefix + title;
    +};
    +
    +/**
    + * Function: getRootTitle
    + * 
    + * Returns the string value of the root cell in
    + * <mxGraph.model>.
    + */
    +mxEditor.prototype.getRootTitle = function ()
    +{
    +	var root = this.graph.getModel().getRoot();
    +	return this.graph.convertValueToString(root);
    +};
    +
    +/**
    + * Function: undo
    + * 
    + * Undo the last change in <graph>.
    + */
    +mxEditor.prototype.undo = function ()
    +{
    +	this.undoManager.undo();
    +};
    +
    +/**
    + * Function: redo
    + * 
    + * Redo the last change in <graph>.
    + */
    +mxEditor.prototype.redo = function ()
    +{
    +	this.undoManager.redo();
    +};
    +
    +/**
    + * Function: groupCells
    + * 
    + * Invokes <createGroup> to create a new group cell and the invokes
    + * <mxGraph.groupCells>, using the grid size of the graph as the spacing
    + * in the group's content area.
    + */
    +mxEditor.prototype.groupCells = function ()
    +{
    +	var border = (this.groupBorderSize != null) ?
    +		this.groupBorderSize :
    +		this.graph.gridSize;
    +	return this.graph.groupCells(this.createGroup(), border);
    +};
    +
    +/**
    + * Function: createGroup
    + * 
    + * Creates and returns a clone of <defaultGroup> to be used
    + * as a new group cell in <group>.
    + */
    +mxEditor.prototype.createGroup = function ()
    +{
    +	var model = this.graph.getModel();
    +	
    +	return model.cloneCell(this.defaultGroup);
    +};
    +
    +/**
    + * Function: open
    + * 
    + * Opens the specified file synchronously and parses it using
    + * <readGraphModel>. It updates <filename> and fires an <open>-event after
    + * the file has been opened. Exceptions should be handled as follows:
    + * 
    + * (code)
    + * try
    + * {
    + *   editor.open(filename);
    + * }
    + * catch (e)
    + * {
    + *   mxUtils.error('Cannot open ' + filename +
    + *     ': ' + e.message, 280, true);
    + * }
    + * (end)
    + *
    + * Parameters:
    + * 
    + * filename - URL of the file to be opened.
    + */
    +mxEditor.prototype.open = function (filename)
    +{
    +	if (filename != null)
    +	{
    +		var xml = mxUtils.load(filename).getXml();
    +		this.readGraphModel(xml.documentElement);
    +		this.filename = filename;
    +		
    +		this.fireEvent(new mxEventObject(mxEvent.OPEN, 'filename', filename));
    +	}
    +};
    +
    +/**
    + * Function: readGraphModel
    + * 
    + * Reads the specified XML node into the existing graph model and resets
    + * the command history and modified state.
    + */
    +mxEditor.prototype.readGraphModel = function (node)
    +{
    +	var dec = new mxCodec(node.ownerDocument);
    +	dec.decode(node, this.graph.getModel());
    +	this.resetHistory();
    +};
    +
    +/**
    + * Function: save
    + * 
    + * Posts the string returned by <writeGraphModel> to the given URL or the
    + * URL returned by <getUrlPost>. The actual posting is carried out by
    + * <postDiagram>. If the URL is null then the resulting XML will be
    + * displayed using <mxUtils.popup>. Exceptions should be handled as
    + * follows:
    + * 
    + * (code)
    + * try
    + * {
    + *   editor.save();
    + * }
    + * catch (e)
    + * {
    + *   mxUtils.error('Cannot save : ' + e.message, 280, true);
    + * }
    + * (end)
    + */
    +mxEditor.prototype.save = function (url, linefeed)
    +{
    +	// Gets the URL to post the data to
    +	url = url || this.getUrlPost();
    +
    +	// Posts the data if the URL is not empty
    +	if (url != null && url.length > 0)
    +	{
    +		var data = this.writeGraphModel(linefeed);
    +		this.postDiagram(url, data);
    +		
    +		// Resets the modified flag
    +		this.setModified(false);
    +	}
    +	
    +	// Dispatches a save event
    +	this.fireEvent(new mxEventObject(mxEvent.SAVE, 'url', url));
    +};
    +
    +/**
    + * Function: postDiagram
    + * 
    + * Hook for subclassers to override the posting of a diagram
    + * represented by the given node to the given URL. This fires
    + * an asynchronous <post> event if the diagram has been posted.
    + * 
    + * Example:
    + * 
    + * To replace the diagram with the diagram in the response, use the
    + * following code.
    + * 
    + * (code)
    + * editor.addListener(mxEvent.POST, function(sender, evt)
    + * {
    + *   // Process response (replace diagram)
    + *   var req = evt.getProperty('request');
    + *   var root = req.getDocumentElement();
    + *   editor.graph.readGraphModel(root)
    + * });
    + * (end)
    + */
    +mxEditor.prototype.postDiagram = function (url, data)
    +{
    +	if (this.escapePostData)
    +	{
    +		data = encodeURIComponent(data);
    +	}
    +
    +	mxUtils.post(url, this.postParameterName+'='+data,
    +		mxUtils.bind(this, function(req)
    +		{
    +			this.fireEvent(new mxEventObject(mxEvent.POST,
    +				'request', req, 'url', url, 'data', data));
    +		})
    +	);
    +};
    +
    +/**
    + * Function: writeGraphModel
    + * 
    + * Hook to create the string representation of the diagram. The default
    + * implementation uses an <mxCodec> to encode the graph model as
    + * follows:
    + * 
    + * (code)
    + * var enc = new mxCodec();
    + * var node = enc.encode(this.graph.getModel());
    + * return mxUtils.getXml(node, this.linefeed);
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * linefeed - Optional character to be used as the linefeed. Default is
    + * <linefeed>.
    + */
    +mxEditor.prototype.writeGraphModel = function (linefeed)
    +{
    +	linefeed = (linefeed != null) ? linefeed : this.linefeed;
    +	var enc = new mxCodec();
    +	var node = enc.encode(this.graph.getModel());
    +
    +	return mxUtils.getXml(node, linefeed);
    +};
    +
    +/**
    + * Function: getUrlPost
    + * 
    + * Returns the URL to post the diagram to. This is used
    + * in <save>. The default implementation returns <urlPost>,
    + * adding <code>?draft=true</code>.
    + */
    +mxEditor.prototype.getUrlPost = function ()
    +{
    +	return this.urlPost;
    +};
    +
    +/**
    + * Function: getUrlImage
    + * 
    + * Returns the URL to create the image with. This is typically
    + * the URL of a backend which accepts an XML representation
    + * of a graph view to create an image. The function is used
    + * in the image action to create an image. This implementation
    + * returns <urlImage>.
    + */
    +mxEditor.prototype.getUrlImage = function ()
    +{
    +	return this.urlImage;
    +};
    +
    +/**
    + * Function: connect
    + * 
    + * Creates and returns a session for the specified parameters, installing
    + * the onChange function as a change listener for the session.
    + */
    +mxEditor.prototype.connect = function (urlInit, urlPoll, urlNotify, onChange)
    +{
    +	var session = null;
    +	
    +	if (!mxClient.IS_LOCAL)
    +	{
    +		var session = new mxSession(this.graph.getModel(),
    +			urlInit, urlPoll, urlNotify);
    +
    +		// Resets the undo history if the session was initialized which is the
    +		// case if the message carries a namespace to be used for new IDs.
    +		session.addListener(mxEvent.RECEIVE,
    +			mxUtils.bind(this, function(sender, evt)
    +			{
    +				var node = evt.getProperty('node');
    +				
    +				if (node.getAttribute('namespace') != null)
    +				{
    +					this.resetHistory();
    +				}
    +			})
    +		);
    +		
    +		// Installs the listener for all events
    +		// that signal a change of the session
    +		session.addListener(mxEvent.DISCONNECT, onChange);
    +		session.addListener(mxEvent.CONNECT, onChange);
    +		session.addListener(mxEvent.NOTIFY, onChange);
    +		session.addListener(mxEvent.GET, onChange);
    +		session.start();
    +	}
    +	
    +	return session;
    +};
    +
    +/**
    + * Function: swapStyles
    + * 
    + * Swaps the styles for the given names in the graph's
    + * stylesheet and refreshes the graph.
    + */
    +mxEditor.prototype.swapStyles = function (first, second)
    +{
    +	var style = this.graph.getStylesheet().styles[second];
    +	this.graph.getView().getStylesheet().putCellStyle(
    +		second, this.graph.getStylesheet().styles[first]);
    +	this.graph.getStylesheet().putCellStyle(first, style);
    +	this.graph.refresh();
    +};
    +
    +/**
    + * Function: showProperties
    + * 
    + * Creates and shows the properties dialog for the given
    + * cell. The content area of the dialog is created using
    + * <createProperties>.
    + */
    +mxEditor.prototype.showProperties = function (cell)
    +{
    +	cell = cell || this.graph.getSelectionCell();
    +	
    +	// Uses the root node for the properties dialog
    +	// if not cell was passed in and no cell is
    +	// selected
    +	if (cell == null)
    +	{
    +		cell = this.graph.getCurrentRoot();
    +		
    +		if (cell == null)
    +		{
    +			cell = this.graph.getModel().getRoot();
    +		}
    +	}
    +	
    +	if (cell != null)
    +	{
    +		// Makes sure there is no in-place editor in the
    +		// graph and computes the location of the dialog
    +		this.graph.stopEditing(true);
    +
    +		var offset = mxUtils.getOffset(this.graph.container);
    +		var x = offset.x+10;
    +		var y = offset.y;
    +		
    +		// Avoids moving the dialog if it is alredy open
    +		if (this.properties != null && !this.movePropertiesDialog)
    +		{
    +			x = this.properties.getX();
    +			y = this.properties.getY();
    +		}
    +		
    +		// Places the dialog near the cell for which it
    +		// displays the properties
    +		else
    +		{
    +			var bounds = this.graph.getCellBounds(cell);
    +			
    +			if (bounds != null)
    +			{
    +				x += bounds.x+Math.min(200, bounds.width);
    +				y += bounds.y;				
    +			}			
    +		}
    +		
    +		// Hides the existing properties dialog and creates a new one with the
    +		// contents created in the hook method
    +		this.hideProperties();
    +		var node = this.createProperties(cell);
    +		
    +		if (node != null)
    +		{
    +			// Displays the contents in a window and stores a reference to the
    +			// window for later hiding of the window
    +			this.properties = new mxWindow(mxResources.get(this.propertiesResource) ||
    +				this.propertiesResource, node, x, y, this.propertiesWidth, this.propertiesHeight, false);
    +			this.properties.setVisible(true);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: isPropertiesVisible
    + * 
    + * Returns true if the properties dialog is currently visible.
    + */
    +mxEditor.prototype.isPropertiesVisible = function ()
    +{
    +	return this.properties != null;
    +};
    +
    +/**
    + * Function: createProperties
    + * 
    + * Creates and returns the DOM node that represents the contents
    + * of the properties dialog for the given cell. This implementation
    + * works for user objects that are XML nodes and display all the
    + * node attributes in a form.
    + */
    +mxEditor.prototype.createProperties = function (cell)
    +{
    +	var model = this.graph.getModel();
    +	var value = model.getValue(cell);
    +	
    +	if (mxUtils.isNode(value))
    +	{
    +		// Creates a form for the user object inside
    +		// the cell
    +		var form = new mxForm('properties');
    +		
    +		// Adds a readonly field for the cell id
    +		var id = form.addText('ID', cell.getId());
    +		id.setAttribute('readonly', 'true');
    +
    +		var geo = null;
    +		var yField = null;
    +		var xField = null;
    +		var widthField = null;
    +		var heightField = null;
    +
    +		// Adds fields for the location and size
    +		if (model.isVertex(cell))
    +		{
    +			geo = model.getGeometry(cell);
    +			
    +			if (geo != null)
    +			{
    +				yField = form.addText('top', geo.y);
    +				xField = form.addText('left', geo.x);
    +				widthField = form.addText('width', geo.width);
    +				heightField = form.addText('height', geo.height);
    +			}
    +		}
    +		
    +		// Adds a field for the cell style			
    +		var tmp = model.getStyle(cell);
    +		var style = form.addText('Style', tmp || '');
    +		
    +		// Creates textareas for each attribute of the
    +		// user object within the cell
    +		var attrs = value.attributes;
    +		var texts = [];
    +		
    +		for (var i = 0; i < attrs.length; i++)
    +		{
    +			// Creates a textarea with more lines for
    +			// the cell label
    +			var val = attrs[i].nodeValue;
    +			texts[i] = form.addTextarea(attrs[i].nodeName, val,
    +				(attrs[i].nodeName == 'label') ? 4 : 2);
    +		}
    +		
    +		// Adds an OK and Cancel button to the dialog
    +		// contents and implements the respective
    +		// actions below
    +		
    +		// Defines the function to be executed when the
    +		// OK button is pressed in the dialog
    +		var okFunction = mxUtils.bind(this, function()
    +		{
    +			// Hides the dialog
    +			this.hideProperties();
    +			
    +			// Supports undo for the changes on the underlying
    +			// XML structure / XML node attribute changes.
    +			model.beginUpdate();
    +			try
    +			{
    +				if (geo != null)
    +				{
    +					geo = geo.clone();
    +					
    +					geo.x = parseFloat(xField.value);
    +					geo.y = parseFloat(yField.value);
    +					geo.width = parseFloat(widthField.value);
    +					geo.height = parseFloat(heightField.value);
    +					
    +					model.setGeometry(cell, geo);
    +				}
    +				
    +				// Applies the style
    +				if (style.value.length > 0)
    +				{
    +					model.setStyle(cell, style.value);
    +				}
    +				else
    +				{
    +					model.setStyle(cell, null);
    +				}
    +				
    +				// Creates an undoable change for each
    +				// attribute and executes it using the
    +				// model, which will also make the change
    +				// part of the current transaction
    +				for (var i=0; i<attrs.length; i++)
    +				{
    +					var edit = new mxCellAttributeChange(
    +						cell, attrs[i].nodeName,
    +						texts[i].value);
    +					model.execute(edit);
    +				}
    +				
    +				// Checks if the graph wants cells to 
    +				// be automatically sized and updates
    +				// the size as an undoable step if
    +				// the feature is enabled
    +				if (this.graph.isAutoSizeCell(cell))
    +				{
    +					this.graph.updateCellSize(cell);
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		});
    +		
    +		// Defines the function to be executed when the
    +		// Cancel button is pressed in the dialog
    +		var cancelFunction = mxUtils.bind(this, function()
    +		{
    +			// Hides the dialog
    +			this.hideProperties();
    +		});
    +		
    +		form.addButtons(okFunction, cancelFunction);
    +		
    +		return form.table;
    +	}
    +
    +	return null;
    +};
    +
    +/**
    + * Function: hideProperties
    + * 
    + * Hides the properties dialog.
    + */
    +mxEditor.prototype.hideProperties = function ()
    +{
    +	if (this.properties != null)
    +	{
    +		this.properties.destroy();
    +		this.properties = null;
    +	}
    +};
    +
    +/**
    + * Function: showTasks
    + * 
    + * Shows the tasks window. The tasks window is created using <createTasks>. The
    + * default width of the window is 200 pixels, the y-coordinate of the location
    + * can be specifies in <tasksTop> and the x-coordinate is right aligned with a
    + * 20 pixel offset from the right border. To change the location of the tasks
    + * window, the following code can be used:
    + * 
    + * (code)
    + * var oldShowTasks = mxEditor.prototype.showTasks;
    + * mxEditor.prototype.showTasks = function()
    + * {
    + *   oldShowTasks.apply(this, arguments); // "supercall"
    + *   
    + *   if (this.tasks != null)
    + *   {
    + *     this.tasks.setLocation(10, 10);
    + *   }
    + * };
    + * (end)
    + */
    +mxEditor.prototype.showTasks = function ()
    +{
    +	if (this.tasks == null)
    +	{
    +		var div = document.createElement('div');
    +		div.style.padding = '4px';
    +		div.style.paddingLeft = '20px';
    +		var w = document.body.clientWidth;
    +		var wnd = new mxWindow(
    +			mxResources.get(this.tasksResource) ||
    +			this.tasksResource,
    +			div, w - 220, this.tasksTop, 200);
    +		wnd.setClosable(true);
    +		wnd.destroyOnClose = false;
    +		
    +		// Installs a function to update the contents
    +		// of the tasks window on every change of the
    +		// model, selection or root.
    +		var funct = mxUtils.bind(this, function(sender)
    +		{
    +			mxEvent.release(div);
    +			div.innerHTML = '';
    +			this.createTasks(div);
    +		});
    +		
    +		this.graph.getModel().addListener(mxEvent.CHANGE, funct);
    +		this.graph.getSelectionModel().addListener(mxEvent.CHANGE, funct);
    +		this.graph.addListener(mxEvent.ROOT, funct);
    +		
    +		// Assigns the icon to the tasks window
    +		if (this.tasksWindowImage != null)
    +		{
    +			wnd.setImage(this.tasksWindowImage);
    +		}
    +		
    +		this.tasks = wnd;
    +		this.createTasks(div);
    +	}
    +	
    +	this.tasks.setVisible(true);
    +};
    +		
    +/**
    + * Function: refreshTasks
    + * 
    + * Updates the contents of the tasks window using <createTasks>.
    + */
    +mxEditor.prototype.refreshTasks = function (div)
    +{
    +	if (this.tasks != null)
    +	{
    +		var div = this.tasks.content;
    +		mxEvent.release(div);
    +		div.innerHTML = '';
    +		this.createTasks(div);
    +	}
    +};
    +		
    +/**
    + * Function: createTasks
    + * 
    + * Updates the contents of the given DOM node to
    + * display the tasks associated with the current
    + * editor state. This is invoked whenever there
    + * is a possible change of state in the editor.
    + * Default implementation is empty.
    + */
    +mxEditor.prototype.createTasks = function (div)
    +{
    +	// override
    +};
    +	
    +/**
    + * Function: showHelp
    + * 
    + * Shows the help window. If the help window does not exist
    + * then it is created using an iframe pointing to the resource
    + * for the <code>urlHelp</code> key or <urlHelp> if the resource
    + * is undefined.
    + */
    +mxEditor.prototype.showHelp = function (tasks)
    +{
    +	if (this.help == null)
    +	{
    +		var frame = document.createElement('iframe');
    +		frame.setAttribute('src', mxResources.get('urlHelp') || this.urlHelp);
    +		frame.setAttribute('height', '100%');
    +		frame.setAttribute('width', '100%');
    +		frame.setAttribute('frameBorder', '0');
    +		frame.style.backgroundColor = 'white';
    +	
    +		var w = document.body.clientWidth;
    +		var h = (document.body.clientHeight || document.documentElement.clientHeight);
    +		
    +		var wnd = new mxWindow(mxResources.get(this.helpResource) || this.helpResource,
    +			frame, (w-this.helpWidth)/2, (h-this.helpHeight)/3, this.helpWidth, this.helpHeight);
    +		wnd.setMaximizable(true);
    +		wnd.setClosable(true);
    +		wnd.destroyOnClose = false;
    +		wnd.setResizable(true);
    +
    +		// Assigns the icon to the help window
    +		if (this.helpWindowImage != null)
    +		{
    +			wnd.setImage(this.helpWindowImage);
    +		}
    +		
    +		// Workaround for ignored iframe height 100% in FF
    +		if (mxClient.IS_NS)
    +		{
    +			var handler = function(sender)
    +			{
    +				var h = wnd.div.offsetHeight;
    +				frame.setAttribute('height', (h-26)+'px');
    +			};
    +			
    +			wnd.addListener(mxEvent.RESIZE_END, handler);
    +			wnd.addListener(mxEvent.MAXIMIZE, handler);
    +			wnd.addListener(mxEvent.NORMALIZE, handler);
    +			wnd.addListener(mxEvent.SHOW, handler);
    +		}
    +		
    +		this.help = wnd;
    +	}
    +	
    +	this.help.setVisible(true);
    +};
    +
    +/**
    + * Function: showOutline
    + * 
    + * Shows the outline window. If the window does not exist, then it is
    + * created using an <mxOutline>.
    + */
    +mxEditor.prototype.showOutline = function ()
    +{
    +	var create = this.outline == null;
    +	
    +	if (create)
    +	{
    +		var div = document.createElement('div');
    +		div.style.overflow = 'hidden';
    +		div.style.width = '100%';
    +		div.style.height = '100%';
    +		div.style.background = 'white';
    +		div.style.cursor = 'move';
    +		
    +		var wnd = new mxWindow(
    +			mxResources.get(this.outlineResource) ||
    +			this.outlineResource,
    +			div, 600, 480, 200, 200, false);
    +				
    +		// Creates the outline in the specified div
    +		// and links it to the existing graph
    +		var outline = new mxOutline(this.graph, div);			
    +		wnd.setClosable(true);
    +		wnd.setResizable(true);
    +		wnd.destroyOnClose = false;
    +		
    +		wnd.addListener(mxEvent.RESIZE_END, function()
    +		{
    +			outline.update();
    +		});
    +		
    +		this.outline = wnd;
    +		this.outline.outline = outline;
    +	}
    +	
    +	// Finally shows the outline
    +	this.outline.setVisible(true);
    +	this.outline.outline.update(true);
    +};
    +		
    +/**
    + * Function: setMode
    + *
    + * Puts the graph into the specified mode. The following modenames are
    + * supported:
    + * 
    + * select - Selects using the left mouse button, new connections
    + * are disabled.
    + * connect - Selects using the left mouse button or creates new
    + * connections if mouse over cell hotspot. See <mxConnectionHandler>.
    + * pan - Pans using the left mouse button, new connections are disabled.
    + */
    +mxEditor.prototype.setMode = function(modename)
    +{
    +	if (modename == 'select')
    +	{
    +		this.graph.panningHandler.useLeftButtonForPanning = false;
    +		this.graph.setConnectable(false);
    +	}
    +	else if (modename == 'connect')
    +	{
    +		this.graph.panningHandler.useLeftButtonForPanning = false;
    +		this.graph.setConnectable(true);
    +	}
    +	else if (modename == 'pan')
    +	{
    +		this.graph.panningHandler.useLeftButtonForPanning = true;
    +		this.graph.setConnectable(false);
    +	}
    +};
    +
    +/**
    + * Function: createPopupMenu
    + * 
    + * Uses <popupHandler> to create the menu in the graph's
    + * panning handler. The redirection is setup in
    + * <setToolbarContainer>.
    + */
    +mxEditor.prototype.createPopupMenu = function (menu, cell, evt)
    +{
    +	this.popupHandler.createMenu(this, menu, cell, evt);
    +};
    +
    +/**
    + * Function: createEdge
    + * 
    + * Uses <defaultEdge> as the prototype for creating new edges
    + * in the connection handler of the graph. The style of the
    + * edge will be overridden with the value returned by
    + * <getEdgeStyle>.
    + */
    +mxEditor.prototype.createEdge = function (source, target)
    +{
    +	// Clones the defaultedge prototype
    +	var e = null;
    +	
    +	if (this.defaultEdge != null)
    +	{
    +		var model = this.graph.getModel();
    +		e = model.cloneCell(this.defaultEdge);
    +	}
    +	else
    +	{
    +		e = new mxCell('');
    +		e.setEdge(true);
    +		
    +		var geo = new mxGeometry();
    +		geo.relative = true;
    +		e.setGeometry(geo);
    +	}
    +	
    +	// Overrides the edge style
    +	var style = this.getEdgeStyle();
    +	
    +	if (style != null)
    +	{
    +		e.setStyle(style);
    +	}
    +	
    +	return e;
    +};
    +
    +/**
    + * Function: getEdgeStyle
    + * 
    + * Returns a string identifying the style of new edges.
    + * The function is used in <createEdge> when new edges
    + * are created in the graph.
    + */
    +mxEditor.prototype.getEdgeStyle = function ()
    +{
    +	return this.defaultEdgeStyle;
    +};
    +
    +/**
    + * Function: consumeCycleAttribute
    + * 
    + * Returns the next attribute in <cycleAttributeValues>
    + * or null, if not attribute should be used in the
    + * specified cell.
    + */
    +mxEditor.prototype.consumeCycleAttribute = function (cell)
    +{
    +	return (this.cycleAttributeValues != null &&
    +		this.cycleAttributeValues.length > 0 &&
    +		this.graph.isSwimlane(cell)) ?
    +		this.cycleAttributeValues[this.cycleAttributeIndex++ %
    +			this.cycleAttributeValues.length] : null;
    +};
    +
    +/**
    + * Function: cycleAttribute
    + * 
    + * Uses the returned value from <consumeCycleAttribute>
    + * as the value for the <cycleAttributeName> key in
    + * the given cell's style.
    + */
    +mxEditor.prototype.cycleAttribute = function (cell)
    +{
    +	if (this.cycleAttributeName != null)
    +	{
    +		var value = this.consumeCycleAttribute(cell);
    +		
    +		if (value != null)
    +		{
    +			cell.setStyle(cell.getStyle()+';'+
    +				this.cycleAttributeName+'='+value);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: addVertex
    + * 
    + * Adds the given vertex as a child of parent at the specified
    + * x and y coordinate and fires an <addVertex> event.
    + */
    +mxEditor.prototype.addVertex = function (parent, vertex, x, y)
    +{
    +	var model = this.graph.getModel();
    +	
    +	while (parent != null && !this.graph.isValidDropTarget(parent))
    +	{
    +		parent = model.getParent(parent);
    +	}
    +	
    +	parent = (parent != null) ? parent : this.graph.getSwimlaneAt(x, y);
    +	var scale = this.graph.getView().scale;
    +	
    +	var geo = model.getGeometry(vertex);
    +	var pgeo = model.getGeometry(parent);
    +	
    +	if (this.graph.isSwimlane(vertex) &&
    +		!this.graph.swimlaneNesting)
    +	{
    +		parent = null;
    +	}
    +	else if (parent == null && this.swimlaneRequired)
    +	{
    +		return null;
    +	}
    +	else if (parent != null && pgeo != null)
    +	{
    +		// Keeps vertex inside parent
    +		var state = this.graph.getView().getState(parent);
    +		
    +		if (state != null)
    +		{			
    +			x -= state.origin.x * scale;
    +			y -= state.origin.y * scale;
    +			
    +			if (this.graph.isConstrainedMoving)
    +			{
    +				var width = geo.width;
    +				var height = geo.height;				
    +				var tmp = state.x+state.width;
    +				
    +				if (x+width > tmp)
    +				{
    +					x -= x+width - tmp;
    +				}
    +				
    +				tmp = state.y+state.height;
    +				
    +				if (y+height > tmp)
    +				{
    +					y -= y+height - tmp;
    +				}
    +			}
    +		}
    +		else if (pgeo != null)
    +		{
    +			x -= pgeo.x*scale;
    +			y -= pgeo.y*scale;
    +		}
    +	}
    +	
    +	geo = geo.clone();
    +	geo.x = this.graph.snap(x / scale -
    +		this.graph.getView().translate.x -
    +		this.graph.gridSize/2);
    +	geo.y = this.graph.snap(y / scale -
    +		this.graph.getView().translate.y -
    +		this.graph.gridSize/2);
    +	vertex.setGeometry(geo);
    +	
    +	if (parent == null)
    +	{
    +		parent = this.graph.getDefaultParent();
    +	}
    +
    +	this.cycleAttribute(vertex);
    +	this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,
    +			'vertex', vertex, 'parent', parent));
    +
    +	model.beginUpdate();
    +	try
    +	{
    +		vertex = this.graph.addCell(vertex, parent);
    +		
    +		if (vertex != null)
    +		{
    +			this.graph.constrainChild(vertex);
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX, 'vertex', vertex));
    +		}
    +	}
    +	finally
    +	{
    +		model.endUpdate();
    +	}
    +	
    +	if (vertex != null)
    +	{
    +		this.graph.setSelectionCell(vertex);
    +		this.graph.scrollCellToVisible(vertex);
    +		this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX, 'vertex', vertex));
    +	}
    +	
    +	return vertex;
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Removes the editor and all its associated resources. This does not
    + * normally need to be called, it is called automatically when the window
    + * unloads.
    + */
    +mxEditor.prototype.destroy = function ()
    +{
    +	if (!this.destroyed)
    +	{
    +		this.destroyed = true;
    +
    +		if (this.tasks != null)
    +		{
    +			this.tasks.destroy();
    +		}
    +		
    +		if (this.outline != null)
    +		{
    +			this.outline.destroy();
    +		}
    +		
    +		if (this.properties != null)
    +		{
    +			this.properties.destroy();
    +		}
    +		
    +		if (this.keyHandler != null)
    +		{
    +			this.keyHandler.destroy();
    +		}
    +		
    +		if (this.rubberband != null)
    +		{
    +			this.rubberband.destroy();
    +		}
    +		
    +		if (this.toolbar != null)
    +		{
    +			this.toolbar.destroy();
    +		}
    +		
    +		if (this.graph != null)
    +		{
    +			this.graph.destroy();
    +		}
    +	
    +		this.status = null;
    +		this.templates = null;
    +	}
    +};
    diff --git a/javascript/src/js/handler/mxCellHighlight.js b/javascript/src/js/handler/mxCellHighlight.js
    new file mode 100644
    index 000000000..d59b5bc97
    --- /dev/null
    +++ b/javascript/src/js/handler/mxCellHighlight.js
    @@ -0,0 +1,225 @@
    +/**
    + * $Id: mxCellHighlight.js,v 1.21 2012-03-19 10:47:08 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCellHighlight
    + * 
    + * A helper class to highlight cells. Here is an example for a given cell.
    + * 
    + * (code)
    + * var highlight = new mxCellHighlight(graph, '#ff0000', 2);
    + * highlight.highlight(graph.view.getState(cell)));
    + * (end)
    + * 
    + * Constructor: mxCellHighlight
    + * 
    + * Constructs a cell highlight.
    + */
    +function mxCellHighlight(graph, highlightColor, strokeWidth)
    +{
    +	if (graph != null)
    +	{
    +		this.graph = graph;
    +		this.highlightColor = (highlightColor != null) ? highlightColor : mxConstants.DEFAULT_VALID_COLOR;
    +		this.strokeWidth = (strokeWidth != null) ? strokeWidth : mxConstants.HIGHLIGHT_STROKEWIDTH;
    +
    +		// Hides the marker if the graph changes
    +		this.resetHandler = mxUtils.bind(this, function(sender)
    +		{
    +			this.hide();
    +		});
    +
    +		this.graph.getView().addListener(mxEvent.SCALE, this.resetHandler);
    +		this.graph.getView().addListener(mxEvent.TRANSLATE, this.resetHandler);
    +		this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE, this.resetHandler);
    +		this.graph.getView().addListener(mxEvent.DOWN, this.resetHandler);
    +		this.graph.getView().addListener(mxEvent.UP, this.resetHandler);
    +		this.graph.getModel().addListener(mxEvent.CHANGE, this.resetHandler);
    +	}
    +};
    +
    +/**
    + * Variable: keepOnTop
    + * 
    + * Specifies if the highlights should appear on top of everything
    + * else in the overlay pane. Default is false.
    + */
    +mxCellHighlight.prototype.keepOnTop = false;
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxCellHighlight.prototype.graph = true;
    +
    +/**
    + * Variable: state
    + * 
    + * Reference to the <mxCellState>.
    + */
    +mxCellHighlight.prototype.state = null;
    +
    +/**
    + * Variable: spacing
    + * 
    + * Specifies the spacing between the highlight for vertices and the vertex.
    + * Default is 2.
    + */
    +mxCellHighlight.prototype.spacing = 2;
    +
    +/**
    + * Variable: resetHandler
    + * 
    + * Holds the handler that automatically invokes reset if the highlight
    + * should be hidden.
    + */
    +mxCellHighlight.prototype.resetHandler = null;
    +
    +/**
    + * Function: setHighlightColor
    + * 
    + * Sets the color of the rectangle used to highlight drop targets.
    + * 
    + * Parameters:
    + * 
    + * color - String that represents the new highlight color.
    + */
    +mxCellHighlight.prototype.setHighlightColor = function(color)
    +{
    +	this.highlightColor = color;
    +	
    +	if (this.shape != null)
    +	{
    +		if (this.shape.dialect == mxConstants.DIALECT_SVG)
    +		{
    +			this.shape.innerNode.setAttribute('stroke', color);
    +		}
    +		else if (this.shape.dialect == mxConstants.DIALECT_VML)
    +		{
    +			this.shape.node.setAttribute('strokecolor', color);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: drawHighlight
    + * 
    + * Creates and returns the highlight shape for the given state.
    + */
    +mxCellHighlight.prototype.drawHighlight = function(state)
    +{
    +	var shape = this.createShape(state);
    +	shape.redraw();
    +
    +	if (!this.keepOnTop && shape.node.parentNode.firstChild != shape.node)
    +	{
    +		shape.node.parentNode.insertBefore(shape.node, shape.node.parentNode.firstChild);
    +	}
    +
    +	// Workaround to force a repaint in AppleWebKit
    +	if (this.graph.model.isEdge(state.cell))
    +	{
    +		mxUtils.repaintGraph(this.graph, shape.points[0]);
    +	}
    +	
    +	return shape;
    +};
    +
    +/**
    + * Function: createShape
    + * 
    + * Creates and returns the highlight shape for the given state.
    + */
    +mxCellHighlight.prototype.createShape = function(state)
    +{
    +	var shape = null;
    +	
    +	if (this.graph.model.isEdge(state.cell))
    +	{
    +		shape = new mxPolyline(state.absolutePoints,
    +			this.highlightColor, this.strokeWidth);
    +	}
    +	else
    +	{
    +		shape = new mxRectangleShape(
    +			new mxRectangle(state.x - this.spacing, state.y - this.spacing,
    +				state.width + 2 * this.spacing, state.height + 2 * this.spacing),
    +			null, this.highlightColor, this.strokeWidth);
    +	}
    +	
    +	shape.dialect = (this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +			mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +	shape.init(this.graph.getView().getOverlayPane());
    +	mxEvent.redirectMouseEvents(shape.node, this.graph, state);
    +	
    +	// Uses cursor from shape in highlight
    +	if (state.shape != null)
    +	{
    +		shape.setCursor(state.shape.getCursor());
    +	}
    +	
    +	// Event-transparency
    +	if (shape.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		shape.node.setAttribute('style', 'pointer-events:none;');
    +	}
    +	else
    +	{
    +		shape.node.style.background = '';
    +	}
    +	
    +	return shape;
    +};
    +
    +/**
    + * Function: hide
    + * 
    + * Resets the state of the cell marker.
    + */
    +mxCellHighlight.prototype.hide = function()
    +{
    +	this.highlight(null);
    +};
    +
    +/**
    + * Function: mark
    + * 
    + * Marks the <markedState> and fires a <mark> event.
    + */
    +mxCellHighlight.prototype.highlight = function(state)
    +{
    +	if (this.state != state)
    +	{
    +		if (this.shape != null)
    +		{
    +			this.shape.destroy();
    +			this.shape = null;
    +		}
    +
    +		if (state != null)
    +		{
    +			this.shape = this.drawHighlight(state);
    +		}
    +
    +		this.state = state;
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes.
    + */
    +mxCellHighlight.prototype.destroy = function()
    +{
    +	this.graph.getView().removeListener(this.resetHandler);
    +	this.graph.getModel().removeListener(this.resetHandler);
    +	
    +	if (this.shape != null)
    +	{
    +		this.shape.destroy();
    +		this.shape = null;
    +	}
    +};
    diff --git a/javascript/src/js/handler/mxCellMarker.js b/javascript/src/js/handler/mxCellMarker.js
    new file mode 100644
    index 000000000..b336278a9
    --- /dev/null
    +++ b/javascript/src/js/handler/mxCellMarker.js
    @@ -0,0 +1,419 @@
    +/**
    + * $Id: mxCellMarker.js,v 1.30 2011-07-15 12:57:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCellMarker
    + * 
    + * A helper class to process mouse locations and highlight cells.
    + * 
    + * Helper class to highlight cells. To add a cell marker to an existing graph
    + * for highlighting all cells, the following code is used:
    + * 
    + * (code)
    + * var marker = new mxCellMarker(graph);
    + * graph.addMouseListener({
    + *   mouseDown: function() {},
    + *   mouseMove: function(sender, me)
    + *   {
    + *     marker.process(me);
    + *   },
    + *   mouseUp: function() {}
    + * });
    + * (end)
    + *
    + * Event: mxEvent.MARK
    + * 
    + * Fires after a cell has been marked or unmarked. The <code>state</code>
    + * property contains the marked <mxCellState> or null if no state is marked.
    + * 
    + * Constructor: mxCellMarker
    + * 
    + * Constructs a new cell marker.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + * validColor - Optional marker color for valid states. Default is
    + * <mxConstants.DEFAULT_VALID_COLOR>.
    + * invalidColor - Optional marker color for invalid states. Default is
    + * <mxConstants.DEFAULT_INVALID_COLOR>.
    + * hotspot - Portion of the width and hight where a state intersects a
    + * given coordinate pair. A value of 0 means always highlight. Default is
    + * <mxConstants.DEFAULT_HOTSPOT>.
    + */
    +function mxCellMarker(graph, validColor, invalidColor, hotspot)
    +{
    +	if (graph != null)
    +	{
    +		this.graph = graph;
    +		this.validColor = (validColor != null) ? validColor : mxConstants.DEFAULT_VALID_COLOR;
    +		this.invalidColor = (validColor != null) ? invalidColor : mxConstants.DEFAULT_INVALID_COLOR;
    +		this.hotspot = (hotspot != null) ? hotspot : mxConstants.DEFAULT_HOTSPOT;
    +		
    +		this.highlight = new mxCellHighlight(graph);
    +	}
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxCellMarker.prototype = new mxEventSource();
    +mxCellMarker.prototype.constructor = mxCellMarker;
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxCellMarker.prototype.graph = null;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if the marker is enabled. Default is true.
    + */
    +mxCellMarker.prototype.enabled = true;
    +
    +/**
    + * Variable: hotspot
    + * 
    + * Specifies the portion of the width and height that should trigger
    + * a highlight. The area around the center of the cell to be marked is used
    + * as the hotspot. Possible values are between 0 and 1. Default is
    + * mxConstants.DEFAULT_HOTSPOT.
    + */
    +mxCellMarker.prototype.hotspot = mxConstants.DEFAULT_HOTSPOT; 
    +
    +/**
    + * Variable: hotspotEnabled
    + * 
    + * Specifies if the hotspot is enabled. Default is false.
    + */
    +mxCellMarker.prototype.hotspotEnabled = false;
    +
    +/**
    + * Variable: validColor
    + * 
    + * Holds the valid marker color.
    + */
    +mxCellMarker.prototype.validColor = null;
    +
    +/**
    + * Variable: invalidColor
    + * 
    + * Holds the invalid marker color.
    + */
    +mxCellMarker.prototype.invalidColor = null;
    +
    +/**
    + * Variable: currentColor
    + * 
    + * Holds the current marker color.
    + */
    +mxCellMarker.prototype.currentColor = null;
    +
    +/**
    + * Variable: validState
    + * 
    + * Holds the marked <mxCellState> if it is valid.
    + */
    +mxCellMarker.prototype.validState = null; 
    +
    +/**
    + * Variable: markedState
    + * 
    + * Holds the marked <mxCellState>.
    + */
    +mxCellMarker.prototype.markedState = null;
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxCellMarker.prototype.setEnabled = function(enabled)
    +{
    +	this.enabled = enabled;
    +};
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxCellMarker.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setHotspot
    + * 
    + * Sets the <hotspot>.
    + */
    +mxCellMarker.prototype.setHotspot = function(hotspot)
    +{
    +	this.hotspot = hotspot;
    +};
    +
    +/**
    + * Function: getHotspot
    + * 
    + * Returns the <hotspot>.
    + */
    +mxCellMarker.prototype.getHotspot = function()
    +{
    +	return this.hotspot;
    +};
    +
    +/**
    + * Function: setHotspotEnabled
    + * 
    + * Specifies whether the hotspot should be used in <intersects>.
    + */
    +mxCellMarker.prototype.setHotspotEnabled = function(enabled)
    +{
    +	this.hotspotEnabled = enabled;
    +};
    +
    +/**
    + * Function: isHotspotEnabled
    + * 
    + * Returns true if hotspot is used in <intersects>.
    + */
    +mxCellMarker.prototype.isHotspotEnabled = function()
    +{
    +	return this.hotspotEnabled;
    +};
    +
    +/**
    + * Function: hasValidState
    + * 
    + * Returns true if <validState> is not null.
    + */
    +mxCellMarker.prototype.hasValidState = function()
    +{
    +	return this.validState != null;
    +};
    +
    +/**
    + * Function: getValidState
    + * 
    + * Returns the <validState>.
    + */
    +mxCellMarker.prototype.getValidState = function()
    +{
    +	return this.validState;
    +};
    +
    +/**
    + * Function: getMarkedState
    + * 
    + * Returns the <markedState>.
    + */
    +mxCellMarker.prototype.getMarkedState = function()
    +{
    +	return this.markedState;
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets the state of the cell marker.
    + */
    +mxCellMarker.prototype.reset = function()
    +{
    +	this.validState = null;
    +	
    +	if (this.markedState != null)
    +	{
    +		this.markedState = null;
    +		this.unmark();
    +	}
    +};
    +
    +/**
    + * Function: process
    + * 
    + * Processes the given event and cell and marks the state returned by
    + * <getState> with the color returned by <getMarkerColor>. If the
    + * markerColor is not null, then the state is stored in <markedState>. If
    + * <isValidState> returns true, then the state is stored in <validState>
    + * regardless of the marker color. The state is returned regardless of the
    + * marker color and valid state. 
    + */
    +mxCellMarker.prototype.process = function(me)
    +{
    +	var state = null;
    +	
    +	if (this.isEnabled())
    +	{
    +		state = this.getState(me);
    +		var isValid = (state != null) ? this.isValidState(state) : false;
    +		var color = this.getMarkerColor(me.getEvent(), state, isValid);
    +		
    +		if (isValid)
    +		{
    +			this.validState = state;
    +		}
    +		else
    +		{
    +			this.validState = null;
    +		}
    +		
    +		if (state != this.markedState || color != this.currentColor)
    +		{
    +			this.currentColor = color;
    +			
    +			if (state != null && this.currentColor != null)
    +			{
    +				this.markedState = state;
    +				this.mark();		
    +			}
    +			else if (this.markedState != null)
    +			{
    +				this.markedState = null;
    +				this.unmark();
    +			}
    +		}
    +	}
    +	
    +	return state;
    +};
    +
    +/**
    + * Function: markCell
    + * 
    + * Marks the given cell using the given color, or <validColor> if no color is specified.
    + */
    +mxCellMarker.prototype.markCell = function(cell, color)
    +{
    +	var state = this.graph.getView().getState(cell);
    +	
    +	if (state != null)
    +	{
    +		this.currentColor = (color != null) ? color : this.validColor;
    +		this.markedState = state;
    +		this.mark();
    +	}
    +};
    +
    +/**
    + * Function: mark
    + * 
    + * Marks the <markedState> and fires a <mark> event.
    + */
    +mxCellMarker.prototype.mark = function()
    +{
    +	this.highlight.setHighlightColor(this.currentColor);
    +	this.highlight.highlight(this.markedState);
    +	this.fireEvent(new mxEventObject(mxEvent.MARK, 'state', this.markedState));
    +};
    +
    +/**
    + * Function: unmark
    + * 
    + * Hides the marker and fires a <mark> event.
    + */
    +mxCellMarker.prototype.unmark = function()
    +{
    +	this.mark();
    +};
    +
    +/**
    + * Function: isValidState
    + * 
    + * Returns true if the given <mxCellState> is a valid state. If this
    + * returns true, then the state is stored in <validState>. The return value
    + * of this method is used as the argument for <getMarkerColor>.
    + */
    +mxCellMarker.prototype.isValidState = function(state)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: getMarkerColor
    + * 
    + * Returns the valid- or invalidColor depending on the value of isValid.
    + * The given <mxCellState> is ignored by this implementation.
    + */
    +mxCellMarker.prototype.getMarkerColor = function(evt, state, isValid)
    +{
    +	return (isValid) ? this.validColor : this.invalidColor;
    +};
    +
    +/**
    + * Function: getState
    + * 
    + * Uses <getCell>, <getStateToMark> and <intersects> to return the
    + * <mxCellState> for the given <mxMouseEvent>.
    + */
    +mxCellMarker.prototype.getState = function(me)
    +{
    +	var view = this.graph.getView();
    +	cell = this.getCell(me);
    +	var state = this.getStateToMark(view.getState(cell));
    +
    +	return (state != null && this.intersects(state, me)) ? state : null;
    +};
    +
    +/**
    + * Function: getCell
    + * 
    + * Returns the <mxCell> for the given event and cell. This returns the
    + * given cell.
    + */
    +mxCellMarker.prototype.getCell = function(me)
    +{
    +	return me.getCell();
    +};
    +
    +/**
    + * Function: getStateToMark
    + * 
    + * Returns the <mxCellState> to be marked for the given <mxCellState> under
    + * the mouse. This returns the given state.
    + */
    +mxCellMarker.prototype.getStateToMark = function(state)
    +{
    +	return state;
    +};
    +
    +/**
    + * Function: intersects
    + * 
    + * Returns true if the given coordinate pair intersects the given state.
    + * This returns true if the <hotspot> is 0 or the coordinates are inside
    + * the hotspot for the given cell state.
    + */
    +mxCellMarker.prototype.intersects = function(state, me)
    +{
    +	if (this.hotspotEnabled)
    +	{
    +		return mxUtils.intersectsHotspot(state, me.getGraphX(), me.getGraphY(),
    +			this.hotspot, mxConstants.MIN_HOTSPOT_SIZE,
    +			mxConstants.MAX_HOTSPOT_SIZE);
    +	}
    +	
    +	return true;
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes.
    + */
    +mxCellMarker.prototype.destroy = function()
    +{
    +	this.graph.getView().removeListener(this.resetHandler);
    +	this.graph.getModel().removeListener(this.resetHandler);
    +	this.highlight.destroy();
    +};
    diff --git a/javascript/src/js/handler/mxCellTracker.js b/javascript/src/js/handler/mxCellTracker.js
    new file mode 100644
    index 000000000..5adcd6aaa
    --- /dev/null
    +++ b/javascript/src/js/handler/mxCellTracker.js
    @@ -0,0 +1,149 @@
    +/**
    + * $Id: mxCellTracker.js,v 1.9 2011-08-28 09:49:46 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCellTracker
    + * 
    + * Event handler that highlights cells. Inherits from <mxCellMarker>.
    + * 
    + * Example:
    + * 
    + * (code)
    + * new mxCellTracker(graph, '#00FF00');
    + * (end)
    + * 
    + * For detecting dragEnter, dragOver and dragLeave on cells, the following
    + * code can be used:
    + * 
    + * (code)
    + * graph.addMouseListener(
    + * {
    + *   cell: null,
    + *   mouseDown: function(sender, me) { },
    + *   mouseMove: function(sender, me)
    + *   {
    + *     var tmp = me.getCell();
    + *     
    + *     if (tmp != this.cell)
    + *     {
    + *       if (this.cell != null)
    + *       {
    + *         this.dragLeave(me.getEvent(), this.cell);
    + *       }
    + *       
    + *       this.cell = tmp;
    + *       
    + *       if (this.cell != null)
    + *       {
    + *         this.dragEnter(me.getEvent(), this.cell);
    + *       }
    + *     }
    + *     
    + *     if (this.cell != null)
    + *     {
    + *       this.dragOver(me.getEvent(), this.cell);
    + *     }
    + *   },
    + *   mouseUp: function(sender, me) { },
    + *   dragEnter: function(evt, cell)
    + *   {
    + *     mxLog.debug('dragEnter', cell.value);
    + *   },
    + *   dragOver: function(evt, cell)
    + *   {
    + *     mxLog.debug('dragOver', cell.value);
    + *   },
    + *   dragLeave: function(evt, cell)
    + *   {
    + *     mxLog.debug('dragLeave', cell.value);
    + *   }
    + * });
    + * (end)
    + * 
    + * Constructor: mxCellTracker
    + * 
    + * Constructs an event handler that highlights cells.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + * color - Color of the highlight. Default is blue.
    + * funct - Optional JavaScript function that is used to override
    + * <mxCellMarker.getCell>.
    + */
    +function mxCellTracker(graph, color, funct)
    +{
    +	mxCellMarker.call(this, graph, color);
    +
    +	this.graph.addMouseListener(this);
    +	
    +	if (funct != null)
    +	{
    +		this.getCell = funct;
    +	}
    +	
    +	// Automatic deallocation of memory
    +	if (mxClient.IS_IE)
    +	{
    +		mxEvent.addListener(window, 'unload', mxUtils.bind(this, function()
    +		{
    +			this.destroy();
    +		}));
    +	}
    +};
    +
    +/**
    + * Extends mxCellMarker.
    + */
    +mxCellTracker.prototype = new mxCellMarker();
    +mxCellTracker.prototype.constructor = mxCellTracker;
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Ignores the event. The event is not consumed.
    + */
    +mxCellTracker.prototype.mouseDown = function(sender, me) { };
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Handles the event by highlighting the cell under the mousepointer if it
    + * is over the hotspot region of the cell.
    + */
    +mxCellTracker.prototype.mouseMove = function(sender, me)
    +{
    +	if (this.isEnabled())
    +	{
    +		this.process(me);
    +	}
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Handles the event by reseting the highlight.
    + */
    +mxCellTracker.prototype.mouseUp = function(sender, me)
    +{
    +	this.reset();
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the object and all its resources and DOM nodes. This doesn't
    + * normally need to be called. It is called automatically when the window
    + * unloads.
    + */
    +mxCellTracker.prototype.destroy = function()
    +{
    +	if (!this.destroyed)
    +	{
    +		this.destroyed = true;
    +
    +		this.graph.removeMouseListener(this);
    +		mxCellMarker.prototype.destroy.apply(this);
    +	}
    +};
    diff --git a/javascript/src/js/handler/mxConnectionHandler.js b/javascript/src/js/handler/mxConnectionHandler.js
    new file mode 100644
    index 000000000..f085f1d51
    --- /dev/null
    +++ b/javascript/src/js/handler/mxConnectionHandler.js
    @@ -0,0 +1,1902 @@
    +/**
    + * $Id: mxConnectionHandler.js,v 1.207 2012-05-14 10:41:47 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxConnectionHandler
    + *
    + * Graph event handler that creates new connections. Uses <mxTerminalMarker>
    + * for finding and highlighting the source and target vertices and
    + * <factoryMethod> to create the edge instance. This handler is built-into
    + * <mxGraph.connectionHandler> and enabled using <mxGraph.setConnectable>.
    + *
    + * Example:
    + * 
    + * (code)
    + * new mxConnectionHandler(graph, function(source, target, style)
    + * {
    + *   edge = new mxCell('', new mxGeometry());
    + *   edge.setEdge(true);
    + *   edge.setStyle(style);
    + *   edge.geometry.relative = true;
    + *   return edge;
    + * });
    + * (end)
    + * 
    + * Here is an alternative solution that just sets a specific user object for
    + * new edges by overriding <insertEdge>.
    + *
    + * (code)
    + * mxConnectionHandlerInsertEdge = mxConnectionHandler.prototype.insertEdge;
    + * mxConnectionHandler.prototype.insertEdge = function(parent, id, value, source, target, style)
    + * {
    + *   value = 'Test';
    + * 
    + *   return mxConnectionHandlerInsertEdge.apply(this, arguments);
    + * };
    + * (end)
    + * 
    + * Using images to trigger connections:
    + * 
    + * This handler uses mxTerminalMarker to find the source and target cell for
    + * the new connection and creates a new edge using <connect>. The new edge is
    + * created using <createEdge> which in turn uses <factoryMethod> or creates a
    + * new default edge.
    + * 
    + * The handler uses a "highlight-paradigm" for indicating if a cell is being
    + * used as a source or target terminal, as seen in MS Visio and other products.
    + * In order to allow both, moving and connecting cells at the same time,
    + * <mxConstants.DEFAULT_HOTSPOT> is used in the handler to determine the hotspot
    + * of a cell, that is, the region of the cell which is used to trigger a new
    + * connection. The constant is a value between 0 and 1 that specifies the
    + * amount of the width and height around the center to be used for the hotspot
    + * of a cell and its default value is 0.5. In addition,
    + * <mxConstants.MIN_HOTSPOT_SIZE> defines the minimum number of pixels for the
    + * width and height of the hotspot.
    + * 
    + * This solution, while standards compliant, may be somewhat confusing because
    + * there is no visual indicator for the hotspot and the highlight is seen to
    + * switch on and off while the mouse is being moved in and out. Furthermore,
    + * this paradigm does not allow to create different connections depending on
    + * the highlighted hotspot as there is only one hotspot per cell and it
    + * normally does not allow cells to be moved and connected at the same time as
    + * there is no clear indication of the connectable area of the cell.
    + * 
    + * To come across these issues, the handle has an additional <createIcons> hook
    + * with a default implementation that allows to create one icon to be used to
    + * trigger new connections. If this icon is specified, then new connections can
    + * only be created if the image is clicked while the cell is being highlighted.
    + * The <createIcons> hook may be overridden to create more than one
    + * <mxImageShape> for creating new connections, but the default implementation
    + * supports one image and is used as follows:
    + * 
    + * In order to display the "connect image" whenever the mouse is over the cell,
    + * an DEFAULT_HOTSPOT of 1 should be used:
    + * 
    + * (code)
    + * mxConstants.DEFAULT_HOTSPOT = 1;
    + * (end)
    + * 
    + * In order to avoid confusion with the highlighting, the highlight color
    + * should not be used with a connect image:
    + * 
    + * (code)
    + * mxConstants.HIGHLIGHT_COLOR = null;
    + * (end)
    + * 
    + * To install the image, the connectImage field of the mxConnectionHandler must
    + * be assigned a new <mxImage> instance:
    + * 
    + * (code)
    + * mxConnectionHandler.prototype.connectImage = new mxImage('images/green-dot.gif', 14, 14);
    + * (end)
    + * 
    + * This will use the green-dot.gif with a width and height of 14 pixels as the
    + * image to trigger new connections. In createIcons the icon field of the
    + * handler will be set in order to remember the icon that has been clicked for
    + * creating the new connection. This field will be available under selectedIcon
    + * in the connect method, which may be overridden to take the icon that
    + * triggered the new connection into account. This is useful if more than one
    + * icon may be used to create a connection.
    + *
    + * Group: Events
    + * 
    + * Event: mxEvent.CONNECT
    + * 
    + * Fires between begin- and endUpdate in <connect>. The <code>cell</code>
    + * property contains the inserted edge, the <code>event</code> and <code>target</code> 
    + * properties contain the respective arguments that were passed to <connect>.
    + *
    + * Constructor: mxConnectionHandler
    + *
    + * Constructs an event handler that connects vertices using the specified
    + * factory method to create the new edges. Modify
    + * <mxConstants.ACTIVE_REGION> to setup the region on a cell which triggers
    + * the creation of a new connection or use connect icons as explained
    + * above.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + * factoryMethod - Optional function to create the edge. The function takes
    + * the source and target <mxCell> as the first and second argument and an
    + * optional cell style from the preview as the third argument. It returns
    + * the <mxCell> that represents the new edge.
    + */
    +function mxConnectionHandler(graph, factoryMethod)
    +{
    +	if (graph != null)
    +	{
    +		this.graph = graph;
    +		this.factoryMethod = factoryMethod;
    +		this.init();
    +	}
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxConnectionHandler.prototype = new mxEventSource();
    +mxConnectionHandler.prototype.constructor = mxConnectionHandler;
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxConnectionHandler.prototype.graph = null;
    +
    +/**
    + * Variable: factoryMethod
    + * 
    + * Function that is used for creating new edges. The function takes the
    + * source and target <mxCell> as the first and second argument and returns
    + * a new <mxCell> that represents the edge. This is used in <createEdge>.
    + */
    +mxConnectionHandler.prototype.factoryMethod = true;
    +
    +/**
    + * Variable: moveIconFront
    + * 
    + * Specifies if icons should be displayed inside the graph container instead
    + * of the overlay pane. This is used for HTML labels on vertices which hide
    + * the connect icon. This has precendence over <moveIconBack> when set
    + * to true. Default is false.
    + */
    +mxConnectionHandler.prototype.moveIconFront = false;
    +
    +/**
    + * Variable: moveIconBack
    + * 
    + * Specifies if icons should be moved to the back of the overlay pane. This can
    + * be set to true if the icons of the connection handler conflict with other
    + * handles, such as the vertex label move handle. Default is false.
    + */
    +mxConnectionHandler.prototype.moveIconBack = false;
    +
    +/**
    + * Variable: connectImage
    + * 
    + * <mxImage> that is used to trigger the creation of a new connection. This
    + * is used in <createIcons>. Default is null.
    + */
    +mxConnectionHandler.prototype.connectImage = null;
    +
    +/**
    + * Variable: targetConnectImage
    + * 
    + * Specifies if the connect icon should be centered on the target state
    + * while connections are being previewed. Default is false.
    + */
    +mxConnectionHandler.prototype.targetConnectImage = false;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxConnectionHandler.prototype.enabled = true;
    +
    +/**
    + * Variable: select
    + * 
    + * Specifies if new edges should be selected. Default is true.
    + */
    +mxConnectionHandler.prototype.select = true;
    +
    +/**
    + * Variable: createTarget
    + * 
    + * Specifies if <createTargetVertex> should be called if no target was under the
    + * mouse for the new connection. Setting this to true means the connection
    + * will be drawn as valid if no target is under the mouse, and
    + * <createTargetVertex> will be called before the connection is created between
    + * the source cell and the newly created vertex in <createTargetVertex>, which
    + * can be overridden to create a new target. Default is false.
    + */
    +mxConnectionHandler.prototype.createTarget = false;
    +
    +/**
    + * Variable: marker
    + * 
    + * Holds the <mxTerminalMarker> used for finding source and target cells.
    + */
    +mxConnectionHandler.prototype.marker = null;
    +
    +/**
    + * Variable: constraintHandler
    + * 
    + * Holds the <mxConstraintHandler> used for drawing and highlighting
    + * constraints.
    + */
    +mxConnectionHandler.prototype.constraintHandler = null;
    +
    +/**
    + * Variable: error
    + * 
    + * Holds the current validation error while connections are being created.
    + */
    +mxConnectionHandler.prototype.error = null;
    +
    +/**
    + * Variable: waypointsEnabled
    + * 
    + * Specifies if single clicks should add waypoints on the new edge. Default is
    + * false.
    + */
    +mxConnectionHandler.prototype.waypointsEnabled = false;
    +
    +/**
    + * Variable: tapAndHoldEnabled
    + * 
    + * Specifies if tap and hold should be used for starting connections on touch-based
    + * devices. Default is true.
    + */
    +mxConnectionHandler.prototype.tapAndHoldEnabled = true;
    +
    +/**
    + * Variable: tapAndHoldDelay
    + * 
    + * Specifies the time for a tap and hold. Default is 500 ms.
    + */
    +mxConnectionHandler.prototype.tapAndHoldDelay = 500;
    +
    +/**
    + * Variable: tapAndHoldInProgress
    + * 
    + * True if the timer for tap and hold events is running.
    + */
    +mxConnectionHandler.prototype.tapAndHoldInProgress = false;
    +
    +/**
    + * Variable: tapAndHoldValid
    + * 
    + * True as long as the timer is running and the touch events
    + * stay within the given <tapAndHoldTolerance>.
    + */
    +mxConnectionHandler.prototype.tapAndHoldValid = false;
    +
    +/**
    + * Variable: tapAndHoldTolerance
    + * 
    + * Specifies the tolerance for a tap and hold. Default is 4 pixels.
    + */
    +mxConnectionHandler.prototype.tapAndHoldTolerance = 4;
    +
    +/**
    + * Variable: initialTouchY
    + * 
    + * Holds the x-coordinate of the intial touch event for tap and hold.
    + */
    +mxConnectionHandler.prototype.initialTouchY = 0;
    +
    +/**
    + * Variable: initialTouchY
    + * 
    + * Holds the y-coordinate of the intial touch event for tap and hold.
    + */
    +mxConnectionHandler.prototype.initialTouchY = 0;
    +
    +/**
    + * Variable: ignoreMouseDown
    + * 
    + * Specifies if the connection handler should ignore the state of the mouse
    + * button when highlighting the source. Default is false, that is, the
    + * handler only highlights the source if no button is being pressed.
    + */
    +mxConnectionHandler.prototype.ignoreMouseDown = false;
    +
    +/**
    + * Variable: first
    + * 
    + * Holds the <mxPoint> where the mouseDown took place while the handler is
    + * active.
    + */
    +mxConnectionHandler.prototype.first = null;
    +
    +/**
    + * Variable: connectIconOffset
    + * 
    + * Holds the offset for connect icons during connection preview.
    + * Default is mxPoint(0, <mxConstants.TOOLTIP_VERTICAL_OFFSET>).
    + * Note that placing the icon under the mouse pointer with an
    + * offset of (0,0) will affect hit detection.
    + */
    +mxConnectionHandler.prototype.connectIconOffset = new mxPoint(0, mxConstants.TOOLTIP_VERTICAL_OFFSET);
    +
    +/**
    + * Variable: edgeState
    + * 
    + * Optional <mxCellState> that represents the preview edge while the
    + * handler is active. This is created in <createEdgeState>.
    + */
    +mxConnectionHandler.prototype.edgeState = null;
    +
    +/**
    + * Variable: changeHandler
    + * 
    + * Holds the change event listener for later removal.
    + */
    +mxConnectionHandler.prototype.changeHandler = null;
    +
    +/**
    + * Variable: drillHandler
    + * 
    + * Holds the drill event listener for later removal.
    + */
    +mxConnectionHandler.prototype.drillHandler = null;
    +
    +/**
    + * Variable: mouseDownCounter
    + * 
    + * Counts the number of mouseDown events since the start. The initial mouse
    + * down event counts as 1.
    + */
    +mxConnectionHandler.prototype.mouseDownCounter = 0;
    +
    +/**
    + * Variable: movePreviewAway
    + * 
    + * Switch to enable moving the preview away from the mousepointer. This is required in browsers
    + * where the preview cannot be made transparent to events and if the built-in hit detection on
    + * the HTML elements in the page should be used. Default is the value of <mxClient.IS_IE>.
    + */
    +mxConnectionHandler.prototype.movePreviewAway = mxClient.IS_IE;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxConnectionHandler.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +	
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxConnectionHandler.prototype.setEnabled = function(enabled)
    +{
    +	this.enabled = enabled;
    +};
    +
    +/**
    + * Function: isCreateTarget
    + * 
    + * Returns <createTarget>.
    + */
    +mxConnectionHandler.prototype.isCreateTarget = function()
    +{
    +	return this.createTarget;
    +};
    +	
    +/**
    + * Function: setCreateTarget
    + * 
    + * Sets <createTarget>.
    + */
    +mxConnectionHandler.prototype.setCreateTarget = function(value)
    +{
    +	this.createTarget = value;
    +};
    +
    +/**
    + * Function: createShape
    + * 
    + * Creates the preview shape for new connections.
    + */
    +mxConnectionHandler.prototype.createShape = function()
    +{
    +	// Creates the edge preview
    +	var shape = new mxPolyline([], mxConstants.INVALID_COLOR);
    +	shape.isDashed = true;
    +	shape.dialect = (this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +		mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +	shape.init(this.graph.getView().getOverlayPane());
    +	
    +	// Event-transparency
    +	if (this.graph.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		// Sets event transparency on the internal shapes that represent
    +		// the actual dashed line on the screen
    +		shape.pipe.setAttribute('style', 'pointer-events:none;');
    +		shape.innerNode.setAttribute('style', 'pointer-events:none;');
    +	}
    +	else
    +	{
    +		// Workaround no event transparency for preview in IE
    +		// FIXME: 3,3 pixel offset for custom hit detection in IE
    +		var getState = mxUtils.bind(this, function(evt)
    +		{
    +			var pt = mxUtils.convertPoint(this.graph.container, mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +			
    +			return this.graph.view.getState(this.graph.getCellAt(pt.x, pt.y));
    +		});
    +		
    +		// Redirects events on the shape to the graph
    +		mxEvent.redirectMouseEvents(shape.node, this.graph, getState);
    +	}
    +	
    +	return shape;
    +};
    +
    +/**
    + * Function: init
    + * 
    + * Initializes the shapes required for this connection handler. This should
    + * be invoked if <mxGraph.container> is assigned after the connection
    + * handler has been created.
    + */
    +mxConnectionHandler.prototype.init = function()
    +{
    +	this.graph.addMouseListener(this);
    +	this.marker = this.createMarker();
    +	this.constraintHandler = new mxConstraintHandler(this.graph);
    +
    +	// Redraws the icons if the graph changes
    +	this.changeHandler = mxUtils.bind(this, function(sender)
    +	{
    +		if (this.iconState != null)
    +		{
    +			this.iconState = this.graph.getView().getState(this.iconState.cell);
    +		}
    +		
    +		if (this.iconState != null)
    +		{
    +			this.redrawIcons(this.icons, this.iconState);
    +		}
    +		else
    +		{
    +			this.destroyIcons(this.icons);
    +			this.previous = null;
    +		}
    +		
    +		this.constraintHandler.reset();
    +	});
    +	
    +	this.graph.getModel().addListener(mxEvent.CHANGE, this.changeHandler);
    +	this.graph.getView().addListener(mxEvent.SCALE, this.changeHandler);
    +	this.graph.getView().addListener(mxEvent.TRANSLATE, this.changeHandler);
    +	this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE, this.changeHandler);
    +	
    +	// Removes the icon if we step into/up or start editing
    +	this.drillHandler = mxUtils.bind(this, function(sender)
    +	{
    +		this.destroyIcons(this.icons);
    +	});
    +	
    +	this.graph.addListener(mxEvent.START_EDITING, this.drillHandler);
    +	this.graph.getView().addListener(mxEvent.DOWN, this.drillHandler);
    +	this.graph.getView().addListener(mxEvent.UP, this.drillHandler);
    +};
    +
    +/**
    + * Function: isConnectableCell
    + * 
    + * Returns true if the given cell is connectable. This is a hook to
    + * disable floating connections. This implementation returns true.
    + */
    +mxConnectionHandler.prototype.isConnectableCell = function(cell)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: createMarker
    + * 
    + * Creates and returns the <mxCellMarker> used in <marker>.
    + */
    +mxConnectionHandler.prototype.createMarker = function()
    +{
    +	var marker = new mxCellMarker(this.graph);
    +	marker.hotspotEnabled = true;
    +
    +	// Overrides to return cell at location only if valid (so that
    +	// there is no highlight for invalid cells)
    +	marker.getCell = mxUtils.bind(this, function(evt, cell)
    +	{
    +		var cell = mxCellMarker.prototype.getCell.apply(marker, arguments);
    +		this.error = null;
    +
    +		if (!this.isConnectableCell(cell))
    +		{
    +			return null;
    +		}
    +		
    +		if (cell != null)
    +		{
    +			if (this.isConnecting())
    +			{
    +				if (this.previous != null)
    +				{
    +					this.error = this.validateConnection(this.previous.cell, cell);
    +					
    +					if (this.error != null && this.error.length == 0)
    +					{
    +						cell = null;
    +						
    +						// Enables create target inside groups
    +						if (this.isCreateTarget())
    +						{
    +							this.error = null;
    +						}
    +					}
    +				}
    +			}
    +			else if (!this.isValidSource(cell))
    +			{
    +				cell = null;
    +			}
    +		}
    +		else if (this.isConnecting() && !this.isCreateTarget() &&
    +				!this.graph.allowDanglingEdges)
    +		{
    +			this.error = '';
    +		}
    +
    +		return cell;
    +	});
    +
    +	// Sets the highlight color according to validateConnection
    +	marker.isValidState = mxUtils.bind(this, function(state)
    +	{
    +		if (this.isConnecting())
    +		{
    +			return this.error == null;
    +		}
    +		else
    +		{
    +			return mxCellMarker.prototype.isValidState.apply(marker, arguments);
    +		}
    +	});
    +
    +	// Overrides to use marker color only in highlight mode or for
    +	// target selection
    +	marker.getMarkerColor = mxUtils.bind(this, function(evt, state, isValid)
    +	{
    +		return (this.connectImage == null || this.isConnecting()) ?
    +			mxCellMarker.prototype.getMarkerColor.apply(marker, arguments) :
    +			null;
    +	});
    +
    +	// Overrides to use hotspot only for source selection otherwise
    +	// intersects always returns true when over a cell
    +	marker.intersects = mxUtils.bind(this, function(state, evt)
    +	{
    +		if (this.connectImage != null || this.isConnecting())
    +		{
    +			return true;
    +		}
    +		
    +		return mxCellMarker.prototype.intersects.apply(marker, arguments);
    +	});
    +
    +	return marker;
    +};
    +
    +/**
    + * Function: start
    + * 
    + * Starts a new connection for the given state and coordinates.
    + */
    +mxConnectionHandler.prototype.start = function(state, x, y, edgeState)
    +{
    +	this.previous = state;
    +	this.first = new mxPoint(x, y);
    +	this.edgeState = (edgeState != null) ? edgeState : this.createEdgeState(null);
    +	
    +	// Marks the source state
    +	this.marker.currentColor = this.marker.validColor;
    +	this.marker.markedState = state;
    +	this.marker.mark();
    +};
    +
    +/**
    + * Function: isConnecting
    + * 
    + * Returns true if the source terminal has been clicked and a new
    + * connection is currently being previewed.
    + */
    +mxConnectionHandler.prototype.isConnecting = function()
    +{
    +	return this.first != null && this.shape != null;
    +};
    +
    +/**
    + * Function: isValidSource
    + * 
    + * Returns <mxGraph.isValidSource> for the given source terminal.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the source terminal.
    + */
    +mxConnectionHandler.prototype.isValidSource = function(cell)
    +{
    +	return this.graph.isValidSource(cell);
    +};
    +
    +/**
    + * Function: isValidTarget
    + * 
    + * Returns true. The call to <mxGraph.isValidTarget> is implicit by calling
    + * <mxGraph.getEdgeValidationError> in <validateConnection>. This is an
    + * additional hook for disabling certain targets in this specific handler.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the target terminal.
    + */
    +mxConnectionHandler.prototype.isValidTarget = function(cell)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: validateConnection
    + * 
    + * Returns the error message or an empty string if the connection for the
    + * given source target pair is not valid. Otherwise it returns null. This
    + * implementation uses <mxGraph.getEdgeValidationError>.
    + * 
    + * Parameters:
    + * 
    + * source - <mxCell> that represents the source terminal.
    + * target - <mxCell> that represents the target terminal.
    + */
    +mxConnectionHandler.prototype.validateConnection = function(source, target)
    +{
    +	if (!this.isValidTarget(target))
    +	{
    +		return '';
    +	}
    +	
    +	return this.graph.getEdgeValidationError(null, source, target);
    +};
    +
    +/**
    + * Function: getConnectImage
    + * 
    + * Hook to return the <mxImage> used for the connection icon of the given
    + * <mxCellState>. This implementation returns <connectImage>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose connect image should be returned.
    + */
    +mxConnectionHandler.prototype.getConnectImage = function(state)
    +{
    +	return this.connectImage;
    +};
    +
    +/**
    + * Function: isMoveIconToFrontForState
    + * 
    + * Returns true if the state has a HTML label in the graph's container, otherwise
    + * it returns <moveIconFront>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose connect icons should be returned.
    + */
    +mxConnectionHandler.prototype.isMoveIconToFrontForState = function(state)
    +{
    +	if (state.text != null && state.text.node.parentNode == this.graph.container)
    +	{
    +		return true;
    +	}
    +	
    +	return this.moveIconFront;
    +};
    +
    +/**
    + * Function: createIcons
    + * 
    + * Creates the array <mxImageShapes> that represent the connect icons for
    + * the given <mxCellState>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose connect icons should be returned.
    + */
    +mxConnectionHandler.prototype.createIcons = function(state)
    +{
    +	var image = this.getConnectImage(state);
    +	
    +	if (image != null && state != null)
    +	{
    +		this.iconState = state;
    +		var icons = [];
    +
    +		// Cannot use HTML for the connect icons because the icon receives all
    +		// mouse move events in IE, must use VML and SVG instead even if the
    +		// connect-icon appears behind the selection border and the selection
    +		// border consumes the events before the icon gets a chance
    +		var bounds = new mxRectangle(0, 0, image.width, image.height);
    +		var icon = new mxImageShape(bounds, image.src, null, null, 0);
    +		icon.preserveImageAspect = false;
    +		
    +		if (this.isMoveIconToFrontForState(state))
    +		{
    +			icon.dialect = mxConstants.DIALECT_STRICTHTML;
    +			icon.init(this.graph.container);
    +		}
    +		else
    +		{
    +			icon.dialect = (this.graph.dialect == mxConstants.DIALECT_SVG) ?
    +				mxConstants.DIALECT_SVG :
    +				mxConstants.DIALECT_VML;
    +			icon.init(this.graph.getView().getOverlayPane());
    +
    +			// Move the icon back in the overlay pane
    +			if (this.moveIconBack && icon.node.previousSibling != null)
    +			{
    +				icon.node.parentNode.insertBefore(icon.node, icon.node.parentNode.firstChild);
    +			}
    +		}
    +
    +		icon.node.style.cursor = mxConstants.CURSOR_CONNECT;
    +
    +		// Events transparency
    +		var getState = mxUtils.bind(this, function()
    +		{
    +			return (this.currentState != null) ? this.currentState : state;
    +		});
    +		
    +		// Updates the local icon before firing the mouse down event.
    +		var mouseDown = mxUtils.bind(this, function(evt)
    +		{
    +			if (!mxEvent.isConsumed(evt))
    +			{
    +				this.icon = icon;
    +				this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,
    +					new mxMouseEvent(evt, getState()));
    +			}
    +		});
    +
    +		mxEvent.redirectMouseEvents(icon.node, this.graph, getState, mouseDown);
    +		
    +		icons.push(icon);
    +		this.redrawIcons(icons, this.iconState);
    +		
    +		return icons;
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: redrawIcons
    + * 
    + * Redraws the given array of <mxImageShapes>.
    + * 
    + * Parameters:
    + * 
    + * icons - Optional array of <mxImageShapes> to be redrawn.
    + */
    +mxConnectionHandler.prototype.redrawIcons = function(icons, state)
    +{
    +	if (icons != null && icons[0] != null && state != null)
    +	{
    +		var pos = this.getIconPosition(icons[0], state);
    +		icons[0].bounds.x = pos.x;
    +		icons[0].bounds.y = pos.y;
    +		icons[0].redraw();
    +	}
    +};
    +
    +/**
    + * Function: redrawIcons
    + * 
    + * Redraws the given array of <mxImageShapes>.
    + * 
    + * Parameters:
    + * 
    + * icons - Optional array of <mxImageShapes> to be redrawn.
    + */
    +mxConnectionHandler.prototype.getIconPosition = function(icon, state)
    +{
    +	var scale = this.graph.getView().scale;
    +	var cx = state.getCenterX();
    +	var cy = state.getCenterY();
    +	
    +	if (this.graph.isSwimlane(state.cell))
    +	{
    +		var size = this.graph.getStartSize(state.cell);
    +		
    +		cx = (size.width != 0) ? state.x + size.width * scale / 2 : cx;
    +		cy = (size.height != 0) ? state.y + size.height * scale / 2 : cy;
    +	}
    +	
    +	return new mxPoint(cx - icon.bounds.width / 2,
    +			cy - icon.bounds.height / 2);
    +};
    +
    +/**
    + * Function: destroyIcons
    + * 
    + * Destroys the given array of <mxImageShapes>.
    + * 
    + * Parameters:
    + * 
    + * icons - Optional array of <mxImageShapes> to be destroyed.
    + */
    +mxConnectionHandler.prototype.destroyIcons = function(icons)
    +{
    +	if (icons != null)
    +	{
    +		this.iconState = null;
    +		
    +		for (var i = 0; i < icons.length; i++)
    +		{
    +			icons[i].destroy();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: isStartEvent
    + * 
    + * Returns true if the given mouse down event should start this handler. The
    + * This implementation returns true if the event does not force marquee
    + * selection, and the currentConstraint and currentFocus of the
    + * <constraintHandler> are not null, or <previous> and <error> are not null and
    + * <icons> is null or <icons> and <icon> are not null.
    + */
    +mxConnectionHandler.prototype.isStartEvent = function(me)
    +{
    +	return !this.graph.isForceMarqueeEvent(me.getEvent()) &&
    +		((this.constraintHandler.currentFocus != null &&
    +		this.constraintHandler.currentConstraint != null) ||
    +		(this.previous != null && this.error == null &&
    +		(this.icons == null || (this.icons != null && this.icon != null))));
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Handles the event by initiating a new connection.
    + */
    +mxConnectionHandler.prototype.mouseDown = function(sender, me)
    +{
    +	this.mouseDownCounter++;
    +	
    +	if (this.isEnabled() && this.graph.isEnabled() && !me.isConsumed() &&
    +		!this.isConnecting() && this.isStartEvent(me))
    +	{
    +		if (this.constraintHandler.currentConstraint != null &&
    +			this.constraintHandler.currentFocus != null &&
    +			this.constraintHandler.currentPoint != null)
    +		{
    +			this.sourceConstraint = this.constraintHandler.currentConstraint;
    +			this.previous = this.constraintHandler.currentFocus;
    +			this.first = this.constraintHandler.currentPoint.clone();
    +		}
    +		else
    +		{
    +			// Stores the location of the initial mousedown
    +			this.first = new mxPoint(me.getGraphX(), me.getGraphY());
    +		}
    +	
    +		this.edgeState = this.createEdgeState(me);
    +		this.mouseDownCounter = 1;
    +		
    +		if (this.waypointsEnabled && this.shape == null)
    +		{
    +			this.waypoints = null;
    +			this.shape = this.createShape();
    +		}
    +
    +		// Stores the starting point in the geometry of the preview
    +		if (this.previous == null && this.edgeState != null)
    +		{
    +			var pt = this.graph.getPointForEvent(me.getEvent());
    +			this.edgeState.cell.geometry.setTerminalPoint(pt, true);
    +		}
    +
    +		me.consume();
    +	}
    +	// Handles connecting via tap and hold
    +	else if (mxClient.IS_TOUCH && this.tapAndHoldEnabled && !this.tapAndHoldInProgress &&
    +		this.isEnabled() && this.graph.isEnabled() && !this.isConnecting())
    +	{
    +		this.tapAndHoldInProgress = true;
    +		this.initialTouchX = me.getX();
    +		this.initialTouchY = me.getY();
    +		var state = this.graph.view.getState(this.marker.getCell(me));
    +		
    +		var handler = function()
    +		{
    +			if (this.tapAndHoldValid)
    +			{
    +				this.tapAndHold(me, state);
    +			}
    +			
    +			this.tapAndHoldInProgress = false;
    +			this.tapAndHoldValid = false;
    +		};
    +		
    +		if (this.tapAndHoldThread)
    +		{
    +			window.clearTimeout(this.tapAndHoldThread);
    +		}
    +
    +		this.tapAndHoldThread = window.setTimeout(mxUtils.bind(this, handler), this.tapAndHoldDelay);
    +		this.tapAndHoldValid = true;
    +	}
    +
    +	this.selectedIcon = this.icon;
    +	this.icon = null;
    +};
    +
    +/**
    + * Function: tapAndHold
    + * 
    + * Handles the <mxMouseEvent> by highlighting the <mxCellState>.
    + * 
    + * Parameters:
    + * 
    + * me - <mxMouseEvent> that represents the touch event.
    + * state - Optional <mxCellState> that is associated with the event.
    + */
    +mxConnectionHandler.prototype.tapAndHold = function(me, state)
    +{
    +	if (state != null)
    +	{
    +		this.marker.currentColor = this.marker.validColor;
    +		this.marker.markedState = state;
    +		this.marker.mark();
    +		
    +		this.first = new mxPoint(me.getGraphX(), me.getGraphY());
    +		this.edgeState = this.createEdgeState(me);
    +		this.previous = state;
    +	}
    +};
    +
    +/**
    + * Function: isImmediateConnectSource
    + * 
    + * Returns true if a tap on the given source state should immediately start
    + * connecting. This implementation returns true if the state is not movable
    + * in the graph. 
    + */
    +mxConnectionHandler.prototype.isImmediateConnectSource = function(state)
    +{
    +	return !this.graph.isCellMovable(state.cell);
    +};
    +
    +/**
    + * Function: createEdgeState
    + * 
    + * Hook to return an <mxCellState> which may be used during the preview.
    + * This implementation returns null.
    + * 
    + * Use the following code to create a preview for an existing edge style:
    + * 
    + * [code]
    + * graph.connectionHandler.createEdgeState = function(me)
    + * {
    + *   var edge = graph.createEdge(null, null, null, null, null, 'edgeStyle=elbowEdgeStyle');
    + *   
    + *   return new mxCellState(this.graph.view, edge, this.graph.getCellStyle(edge));
    + * };
    + * [/code]
    + */
    +mxConnectionHandler.prototype.createEdgeState = function(me)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: updateCurrentState
    + * 
    + * Updates the current state for a given mouse move event by using
    + * the <marker>.
    + */
    +mxConnectionHandler.prototype.updateCurrentState = function(me)
    +{
    +	var state = this.marker.process(me);
    +	this.constraintHandler.update(me, this.first == null);
    +	this.currentState = state;
    +};
    +
    +/**
    + * Function: convertWaypoint
    + * 
    + * Converts the given point from screen coordinates to model coordinates.
    + */
    +mxConnectionHandler.prototype.convertWaypoint = function(point)
    +{
    +	var scale = this.graph.getView().getScale();
    +	var tr = this.graph.getView().getTranslate();
    +	
    +	point.x = point.x / scale - tr.x;
    +	point.y = point.y / scale - tr.y;
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Handles the event by updating the preview edge or by highlighting
    + * a possible source or target terminal.
    + */
    +mxConnectionHandler.prototype.mouseMove = function(sender, me)
    +{
    +	if (this.tapAndHoldValid)
    +	{
    +		this.tapAndHoldValid =
    +			Math.abs(this.initialTouchX - me.getX()) < this.tapAndHoldTolerance &&
    +			Math.abs(this.initialTouchY - me.getY()) < this.tapAndHoldTolerance;
    +	}
    +	
    +	if (!me.isConsumed() && (this.ignoreMouseDown || this.first != null || !this.graph.isMouseDown))
    +	{
    +		if (this.first != null || (this.isEnabled() && this.graph.isEnabled()))
    +		{
    +			this.updateCurrentState(me);
    +		}
    +
    +		if (this.first != null)
    +		{
    +			var view = this.graph.getView();
    +			var scale = view.scale;
    +			var point = new mxPoint(this.graph.snap(me.getGraphX() / scale) * scale,
    +					this.graph.snap(me.getGraphY() / scale) * scale);
    +			var constraint = null;
    +			var current = point;
    +			
    +			// Uses the current point from the constraint handler if available
    +			if (this.constraintHandler.currentConstraint != null &&
    +				this.constraintHandler.currentFocus != null &&
    +				this.constraintHandler.currentPoint != null)
    +			{
    +				constraint = this.constraintHandler.currentConstraint;
    +				current = this.constraintHandler.currentPoint.clone();
    +			}
    +			
    +			var pt2 = this.first;
    +			
    +			// Moves the connect icon with the mouse
    +			if (this.selectedIcon != null)
    +			{
    +				var w = this.selectedIcon.bounds.width;
    +				var h = this.selectedIcon.bounds.height;
    +				
    +				if (this.currentState != null && this.targetConnectImage)
    +				{
    +					var pos = this.getIconPosition(this.selectedIcon, this.currentState);
    +					this.selectedIcon.bounds.x = pos.x;
    +					this.selectedIcon.bounds.y = pos.y;
    +				}
    +				else
    +				{
    +					var bounds = new mxRectangle(me.getGraphX() + this.connectIconOffset.x,
    +						me.getGraphY() + this.connectIconOffset.y, w, h);
    +					this.selectedIcon.bounds = bounds;
    +				}
    +				
    +				this.selectedIcon.redraw();
    +			}
    +
    +			// Uses edge state to compute the terminal points
    +			if (this.edgeState != null)
    +			{
    +				this.edgeState.absolutePoints = [null, (this.currentState != null) ? null : current];
    +				this.graph.view.updateFixedTerminalPoint(this.edgeState, this.previous, true, this.sourceConstraint);
    +				
    +				if (this.currentState != null)
    +				{
    +					if (constraint == null)
    +					{
    +						constraint = this.graph.getConnectionConstraint(this.edgeState, this.previous, false);
    +					}
    +					
    +					this.edgeState.setAbsoluteTerminalPoint(null, false);
    +					this.graph.view.updateFixedTerminalPoint(this.edgeState, this.currentState, false, constraint);
    +				}
    +				
    +				// Scales and translates the waypoints to the model
    +				var realPoints = null;
    +				
    +				if (this.waypoints != null)
    +				{
    +					realPoints = [];
    +					
    +					for (var i = 0; i < this.waypoints.length; i++)
    +					{
    +						var pt = this.waypoints[i].clone();
    +						this.convertWaypoint(pt);
    +						realPoints[i] = pt;
    +					}
    +				}
    +				
    +				this.graph.view.updatePoints(this.edgeState, realPoints, this.previous, this.currentState);
    +				this.graph.view.updateFloatingTerminalPoints(this.edgeState, this.previous, this.currentState);
    +				current = this.edgeState.absolutePoints[this.edgeState.absolutePoints.length - 1];
    +				pt2 = this.edgeState.absolutePoints[0];
    +			}
    +			else
    +			{
    +				if (this.currentState != null)
    +				{
    +					if (this.constraintHandler.currentConstraint == null)
    +					{
    +						var tmp = this.getTargetPerimeterPoint(this.currentState, me);
    +						
    +						if (tmp != null)
    +						{
    +							current = tmp;
    +						}
    +					}
    +				}
    +				
    +				// Computes the source perimeter point
    +				if (this.sourceConstraint == null && this.previous != null)
    +				{
    +					var next = (this.waypoints != null && this.waypoints.length > 0) ?
    +							this.waypoints[0] : current;
    +					var tmp = this.getSourcePerimeterPoint(this.previous, next, me);
    +					
    +					if (tmp != null)
    +					{
    +						pt2 = tmp;
    +					}
    +				}
    +			}
    +
    +			// Makes sure the cell under the mousepointer can be detected
    +			// by moving the preview shape away from the mouse. This
    +			// makes sure the preview shape does not prevent the detection
    +			// of the cell under the mousepointer even for slow gestures.
    +			if (this.currentState == null && this.movePreviewAway)
    +			{	
    +				var dx = current.x - pt2.x;
    +				var dy = current.y - pt2.y;
    +				
    +				var len = Math.sqrt(dx * dx + dy * dy);
    +								
    +				current.x -= dx * 4 / len;
    +				current.y -= dy * 4 / len;
    +			}
    +			
    +			// Creates the preview shape (lazy)
    +			if (this.shape == null)
    +			{
    +				var dx = Math.abs(point.x - this.first.x);
    +				var dy = Math.abs(point.y - this.first.y);
    +
    +				if (dx > this.graph.tolerance || dy > this.graph.tolerance)
    +				{
    +					this.shape = this.createShape();
    +				}
    +			}
    +
    +			// Updates the points in the preview edge
    +			if (this.shape != null)
    +			{
    +				if (this.edgeState != null)
    +				{
    +					this.shape.points = this.edgeState.absolutePoints;
    +				}
    +				else
    +				{
    +					var pts = [pt2];
    +					
    +					if (this.waypoints != null)
    +					{
    +						pts = pts.concat(this.waypoints);
    +					}
    +					
    +					pts.push(current);
    +					this.shape.points = pts;
    +				}
    +				
    +				this.drawPreview();
    +			}
    +			
    +			mxEvent.consume(me.getEvent());
    +			me.consume();
    +		}
    +		else if(!this.isEnabled() || !this.graph.isEnabled())
    +		{
    +			this.constraintHandler.reset();
    +		}
    +		else if (this.previous != this.currentState && this.edgeState == null)
    +		{
    +			this.destroyIcons(this.icons);
    +			this.icons = null;
    +			
    +			// Sets the cursor on the current shape				
    +			if (this.currentState != null && this.error == null)
    +			{
    +				this.icons = this.createIcons(this.currentState);
    +
    +				if (this.icons == null)
    +				{
    +					this.currentState.setCursor(mxConstants.CURSOR_CONNECT);
    +					me.consume();
    +				}
    +			}
    +
    +			this.previous = this.currentState;
    +		}
    +		else if (this.previous == this.currentState && this.currentState != null && this.icons == null &&
    +			!this.graph.isMouseDown)
    +		{
    +			// Makes sure that no cursors are changed
    +			me.consume();
    +		}
    +
    +		if (this.constraintHandler.currentConstraint != null)
    +		{
    +			this.marker.reset();
    +		}
    +		
    +		if (!this.graph.isMouseDown && this.currentState != null && this.icons != null)
    +		{
    +			var hitsIcon = false;
    +			var target = me.getSource();
    +			
    +			for (var i = 0; i < this.icons.length && !hitsIcon; i++)
    +			{
    +				hitsIcon = target == this.icons[i].node || target.parentNode == this.icons[i].node;
    +			}
    +
    +			if (!hitsIcon)
    +			{
    +				this.updateIcons(this.currentState, this.icons, me);
    +			}
    +		}
    +	}
    +	else
    +	{
    +		this.constraintHandler.reset();
    +	}
    +};
    +
    +/**
    + * Function: getTargetPerimeterPoint
    + * 
    + * Returns the perimeter point for the given target state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> that represents the target cell state.
    + * me - <mxMouseEvent> that represents the mouse move.
    + */
    +mxConnectionHandler.prototype.getTargetPerimeterPoint = function(state, me)
    +{
    +	var result = null;
    +	var view = state.view;
    +	var targetPerimeter = view.getPerimeterFunction(state);
    +	
    +	if (targetPerimeter != null)
    +	{
    +		var next = (this.waypoints != null && this.waypoints.length > 0) ?
    +				this.waypoints[this.waypoints.length - 1] :
    +				new mxPoint(this.previous.getCenterX(), this.previous.getCenterY());
    +		var tmp = targetPerimeter(view.getPerimeterBounds(state),
    +			this.edgeState, next, false);
    +			
    +		if (tmp != null)
    +		{
    +			result = tmp;
    +		}
    +	}
    +	else
    +	{
    +		result = new mxPoint(state.getCenterX(), state.getCenterY());
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getSourcePerimeterPoint
    + * 
    + * Hook to update the icon position(s) based on a mouseOver event. This is
    + * an empty implementation.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> that represents the target cell state.
    + * next - <mxPoint> that represents the next point along the previewed edge.
    + * me - <mxMouseEvent> that represents the mouse move.
    + */
    +mxConnectionHandler.prototype.getSourcePerimeterPoint = function(state, next, me)
    +{
    +	var result = null;
    +	var view = state.view;
    +	var sourcePerimeter = view.getPerimeterFunction(state);
    +
    +	if (sourcePerimeter != null)
    +	{
    +		var tmp = sourcePerimeter(view.getPerimeterBounds(state), state, next, false);
    +			
    +		if (tmp != null)
    +		{
    +			result = tmp;
    +		}
    +	}
    +	else
    +	{
    +		result = new mxPoint(state.getCenterX(), state.getCenterY());
    +	}
    +	
    +	return result;
    +};
    +
    +
    +/**
    + * Function: updateIcons
    + * 
    + * Hook to update the icon position(s) based on a mouseOver event. This is
    + * an empty implementation.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> under the mouse.
    + * icons - Array of currently displayed icons.
    + * me - <mxMouseEvent> that contains the mouse event.
    + */
    +mxConnectionHandler.prototype.updateIcons = function(state, icons, me)
    +{
    +	// empty
    +};
    +
    +/**
    + * Function: isStopEvent
    + * 
    + * Returns true if the given mouse up event should stop this handler. The
    + * connection will be created if <error> is null. Note that this is only
    + * called if <waypointsEnabled> is true. This implemtation returns true
    + * if there is a cell state in the given event.
    + */
    +mxConnectionHandler.prototype.isStopEvent = function(me)
    +{
    +	return me.getState() != null;
    +};
    +
    +/**
    + * Function: addWaypoint
    + * 
    + * Adds the waypoint for the given event to <waypoints>.
    + */
    +mxConnectionHandler.prototype.addWaypointForEvent = function(me)
    +{
    +	var point = mxUtils.convertPoint(this.graph.container, me.getX(), me.getY());
    +	var dx = Math.abs(point.x - this.first.x);
    +	var dy = Math.abs(point.y - this.first.y);
    +	var addPoint = this.waypoints != null || (this.mouseDownCounter > 1 &&
    +			(dx > this.graph.tolerance || dy > this.graph.tolerance));
    +
    +	if (addPoint)
    +	{
    +		if (this.waypoints == null)
    +		{
    +			this.waypoints = [];
    +		}
    +		
    +		var scale = this.graph.view.scale;
    +		var point = new mxPoint(this.graph.snap(me.getGraphX() / scale) * scale,
    +				this.graph.snap(me.getGraphY() / scale) * scale);
    +		this.waypoints.push(point);
    +	}
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Handles the event by inserting the new connection.
    + */
    +mxConnectionHandler.prototype.mouseUp = function(sender, me)
    +{
    +	if (!me.isConsumed() && this.isConnecting())
    +	{
    +		if (this.waypointsEnabled && !this.isStopEvent(me))
    +		{
    +			this.addWaypointForEvent(me);
    +			me.consume();
    +			
    +			return;
    +		}
    +		
    +		// Inserts the edge if no validation error exists
    +		if (this.error == null)
    +		{
    +			var source = (this.previous != null) ? this.previous.cell : null;
    +			var target = null;
    +			
    +			if (this.constraintHandler.currentConstraint != null &&
    +				this.constraintHandler.currentFocus != null)
    +			{
    +				target = this.constraintHandler.currentFocus.cell;
    +			}
    +			
    +			if (target == null && this.marker.hasValidState())
    +			{
    +				target = this.marker.validState.cell;
    +			}
    +			
    +			this.connect(source, target, me.getEvent(), me.getCell());
    +		}
    +		else
    +		{
    +			// Selects the source terminal for self-references
    +			if (this.previous != null && this.marker.validState != null &&
    +				this.previous.cell == this.marker.validState.cell)
    +			{
    +				this.graph.selectCellForEvent(this.marker.source, evt);
    +			}
    +			
    +			// Displays the error message if it is not an empty string,
    +			// for empty error messages, the event is silently dropped
    +			if (this.error.length > 0)
    +			{
    +				this.graph.validationAlert(this.error);
    +			}
    +		}
    +		
    +		// Redraws the connect icons and resets the handler state
    +		this.destroyIcons(this.icons);
    +		me.consume();
    +	}
    +
    +	if (this.first != null)
    +	{
    +		this.reset();
    +	}
    +	
    +	this.tapAndHoldInProgress = false;
    +	this.tapAndHoldValid = false;
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets the state of this handler.
    + */
    +mxConnectionHandler.prototype.reset = function()
    +{
    +	if (this.shape != null)
    +	{
    +		this.shape.destroy();
    +		this.shape = null;
    +	}
    +	
    +	this.destroyIcons(this.icons);
    +	this.icons = null;
    +	this.marker.reset();
    +	this.constraintHandler.reset();
    +	this.selectedIcon = null;
    +	this.edgeState = null;
    +	this.previous = null;
    +	this.error = null;
    +	this.sourceConstraint = null;
    +	this.mouseDownCounter = 0;
    +	this.first = null;
    +	this.icon = null;
    +};
    +
    +/**
    + * Function: drawPreview
    + * 
    + * Redraws the preview edge using the color and width returned by
    + * <getEdgeColor> and <getEdgeWidth>.
    + */
    +mxConnectionHandler.prototype.drawPreview = function()
    +{
    +	var valid = this.error == null;
    +	var color = this.getEdgeColor(valid);
    +	
    +	if (this.shape.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		this.shape.innerNode.setAttribute('stroke', color);
    +	}
    +	else
    +	{
    +		this.shape.node.strokecolor = color;
    +	}
    +
    +	this.shape.strokewidth = this.getEdgeWidth(valid);
    +	this.shape.redraw();
    +
    +	// Workaround to force a repaint in AppleWebKit
    +	mxUtils.repaintGraph(this.graph, this.shape.points[1]);
    +};
    +
    +/**
    + * Function: getEdgeColor
    + * 
    + * Returns the color used to draw the preview edge. This returns green if
    + * there is no edge validation error and red otherwise.
    + * 
    + * Parameters:
    + * 
    + * valid - Boolean indicating if the color for a valid edge should be
    + * returned.
    + */
    +mxConnectionHandler.prototype.getEdgeColor = function(valid)
    +{
    +	return (valid) ? mxConstants.VALID_COLOR : mxConstants.INVALID_COLOR;
    +};
    +	
    +/**
    + * Function: getEdgeWidth
    + * 
    + * Returns the width used to draw the preview edge. This returns 3 if
    + * there is no edge validation error and 1 otherwise.
    + * 
    + * Parameters:
    + * 
    + * valid - Boolean indicating if the width for a valid edge should be
    + * returned.
    + */
    +mxConnectionHandler.prototype.getEdgeWidth = function(valid)
    +{
    +	return (valid) ? 3 : 1;
    +};
    +
    +/**
    + * Function: connect
    + * 
    + * Connects the given source and target using a new edge. This
    + * implementation uses <createEdge> to create the edge.
    + * 
    + * Parameters:
    + * 
    + * source - <mxCell> that represents the source terminal.
    + * target - <mxCell> that represents the target terminal.
    + * evt - Mousedown event of the connect gesture.
    + * dropTarget - <mxCell> that represents the cell under the mouse when it was
    + * released.
    + */
    +mxConnectionHandler.prototype.connect = function(source, target, evt, dropTarget)
    +{
    +	if (target != null || this.isCreateTarget() || this.graph.allowDanglingEdges)
    +	{
    +		// Uses the common parent of source and target or
    +		// the default parent to insert the edge
    +		var model = this.graph.getModel();
    +		var edge = null;
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			if (source != null && target == null && this.isCreateTarget())
    +			{
    +				target = this.createTargetVertex(evt, source);
    +				
    +				if (target != null)
    +				{
    +					dropTarget = this.graph.getDropTarget([target], evt, dropTarget);
    +					
    +					// Disables edges as drop targets if the target cell was created
    +					// FIXME: Should not shift if vertex was aligned (same in Java)
    +					if (dropTarget == null || !this.graph.getModel().isEdge(dropTarget))
    +					{
    +						var pstate = this.graph.getView().getState(dropTarget);
    +						
    +						if (pstate != null)
    +						{
    +							var tmp = model.getGeometry(target);
    +							tmp.x -= pstate.origin.x;
    +							tmp.y -= pstate.origin.y;
    +						}
    +					}
    +					else
    +					{
    +						dropTarget = this.graph.getDefaultParent();
    +					}
    +						
    +					this.graph.addCell(target, dropTarget);
    +				}
    +			}
    +
    +			var parent = this.graph.getDefaultParent();
    +
    +			if (source != null && target != null &&
    +				model.getParent(source) == model.getParent(target) &&
    +				model.getParent(model.getParent(source)) != model.getRoot())
    +			{
    +				parent = model.getParent(source);
    +
    +				if ((source.geometry != null && source.geometry.relative) &&
    +					(target.geometry != null && target.geometry.relative))
    +				{
    +					parent = model.getParent(parent);
    +				}
    +			}
    +			
    +			// Uses the value of the preview edge state for inserting
    +			// the new edge into the graph
    +			var value = null;
    +			var style = null;
    +			
    +			if (this.edgeState != null)
    +			{
    +				value = this.edgeState.cell.value;
    +				style = this.edgeState.cell.style;
    +			}
    +
    +			edge = this.insertEdge(parent, null, value, source, target, style);
    +			
    +			if (edge != null)
    +			{
    +				// Updates the connection constraints
    +				this.graph.setConnectionConstraint(edge, source, true, this.sourceConstraint);
    +				this.graph.setConnectionConstraint(edge, target, false, this.constraintHandler.currentConstraint);
    +				
    +				// Uses geometry of the preview edge state
    +				if (this.edgeState != null)
    +				{
    +					model.setGeometry(edge, this.edgeState.cell.geometry);
    +				}
    +				
    +				// Makes sure the edge has a non-null, relative geometry
    +				var geo = model.getGeometry(edge);
    +
    +				if (geo == null)
    +				{
    +					geo = new mxGeometry();
    +					geo.relative = true;
    +					
    +					model.setGeometry(edge, geo);
    +				}
    +				
    +				// Uses scaled waypoints in geometry
    +				if (this.waypoints != null && this.waypoints.length > 0)
    +				{
    +					var s = this.graph.view.scale;
    +					var tr = this.graph.view.translate;
    +					geo.points = [];
    +					
    +					for (var i = 0; i < this.waypoints.length; i++)
    +					{
    +						var pt = this.waypoints[i];
    +						geo.points.push(new mxPoint(pt.x / s - tr.x, pt.y / s - tr.y));
    +					}
    +				}
    +
    +				if (target == null)
    +				{
    +					var pt = this.graph.getPointForEvent(evt, false);
    +					pt.x -= this.graph.panDx / this.graph.view.scale;
    +					pt.y -= this.graph.panDy / this.graph.view.scale;
    +					geo.setTerminalPoint(pt, false);
    +				}
    +				
    +				this.fireEvent(new mxEventObject(mxEvent.CONNECT,
    +						'cell', edge, 'event', evt, 'target', dropTarget));
    +			}
    +		}
    +		catch (e)
    +		{
    +			mxLog.show();
    +			mxLog.debug(e.message);
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +		
    +		if (this.select)
    +		{
    +			this.selectCells(edge, target);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: selectCells
    + * 
    + * Selects the given edge after adding a new connection. The target argument
    + * contains the target vertex if one has been inserted.
    + */
    +mxConnectionHandler.prototype.selectCells = function(edge, target)
    +{
    +	this.graph.setSelectionCell(edge);
    +};
    +
    +/**
    + * Function: insertEdge
    + * 
    + * Creates, inserts and returns the new edge for the given parameters. This
    + * implementation does only use <createEdge> if <factoryMethod> is defined,
    + * otherwise <mxGraph.insertEdge> will be used.
    + */
    +mxConnectionHandler.prototype.insertEdge = function(parent, id, value, source, target, style)
    +{
    +	if (this.factoryMethod == null)
    +	{
    +		return this.graph.insertEdge(parent, id, value, source, target, style);
    +	}
    +	else
    +	{
    +		var edge = this.createEdge(value, source, target, style);
    +		edge = this.graph.addEdge(edge, parent, source, target);
    +		
    +		return edge;
    +	}
    +};
    +
    +/**
    + * Function: createTargetVertex
    + * 
    + * Hook method for creating new vertices on the fly if no target was
    + * under the mouse. This is only called if <createTarget> is true and
    + * returns null.
    + * 
    + * Parameters:
    + * 
    + * evt - Mousedown event of the connect gesture.
    + * source - <mxCell> that represents the source terminal.
    + */
    +mxConnectionHandler.prototype.createTargetVertex = function(evt, source)
    +{
    +	// Uses the first non-relative source
    +	var geo = this.graph.getCellGeometry(source);
    +	
    +	while (geo != null && geo.relative)
    +	{
    +		source = this.graph.getModel().getParent(source);
    +		geo = this.graph.getCellGeometry(source);
    +	}
    +	
    +	var clone = this.graph.cloneCells([source])[0];
    +	var geo = this.graph.getModel().getGeometry(clone);
    +	
    +	if (geo != null)
    +	{
    +		var point = this.graph.getPointForEvent(evt);
    +		geo.x = this.graph.snap(point.x - geo.width / 2) - this.graph.panDx / this.graph.view.scale;
    +		geo.y = this.graph.snap(point.y - geo.height / 2) - this.graph.panDy / this.graph.view.scale;
    +
    +		// Aligns with source if within certain tolerance
    +		if (this.first != null)
    +		{
    +			var sourceState = this.graph.view.getState(source);
    +			
    +			if (sourceState != null)
    +			{
    +				var tol = this.getAlignmentTolerance();
    +
    +				if (Math.abs(this.graph.snap(this.first.x) -
    +					this.graph.snap(point.x)) <= tol)
    +				{
    +					geo.x = sourceState.x;
    +				}
    +				else if (Math.abs(this.graph.snap(this.first.y) -
    +						this.graph.snap(point.y)) <= tol)
    +				{
    +					geo.y = sourceState.y;
    +				}
    +			}
    +		}
    +	}
    +
    +	return clone;		
    +};
    +
    +/**
    + * Function: getAlignmentTolerance
    + * 
    + * Returns the tolerance for aligning new targets to sources.
    + */
    +mxConnectionHandler.prototype.getAlignmentTolerance = function()
    +{
    +	return (this.graph.isGridEnabled()) ?
    +		this.graph.gridSize : this.graph.tolerance;
    +};
    +
    +/**
    + * Function: createEdge
    + * 
    + * Creates and returns a new edge using <factoryMethod> if one exists. If
    + * no factory method is defined, then a new default edge is returned. The
    + * source and target arguments are informal, the actual connection is
    + * setup later by the caller of this function.
    + * 
    + * Parameters:
    + * 
    + * value - Value to be used for creating the edge.
    + * source - <mxCell> that represents the source terminal.
    + * target - <mxCell> that represents the target terminal.
    + * style - Optional style from the preview edge.
    + */
    +mxConnectionHandler.prototype.createEdge = function(value, source, target, style)
    +{
    +	var edge = null;
    +	
    +	// Creates a new edge using the factoryMethod
    +	if (this.factoryMethod != null)
    +	{
    +		edge = this.factoryMethod(source, target, style);
    +	}
    +	
    +	if (edge == null)
    +	{
    +		edge = new mxCell(value || '');
    +		edge.setEdge(true);
    +		edge.setStyle(style);
    +		
    +		var geo = new mxGeometry();
    +		geo.relative = true;
    +		edge.setGeometry(geo);
    +	}
    +
    +	return edge;
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes. This should be
    + * called on all instances. It is called automatically for the built-in
    + * instance created for each <mxGraph>.
    + */
    +mxConnectionHandler.prototype.destroy = function()
    +{
    +	this.graph.removeMouseListener(this);
    +	
    +	if (this.shape != null)
    +	{
    +		this.shape.destroy();
    +		this.shape = null;
    +	}
    +	
    +	if (this.marker != null)
    +	{
    +		this.marker.destroy();
    +		this.marker = null;
    +	}
    +
    +	if (this.constraintHandler != null)
    +	{
    +		this.constraintHandler.destroy();
    +		this.constraintHandler = null;
    +	}
    +
    +	if (this.changeHandler != null)
    +	{
    +		this.graph.getModel().removeListener(this.changeHandler);
    +		this.graph.getView().removeListener(this.changeHandler);
    +		this.changeHandler = null;
    +	}
    +	
    +	if (this.drillHandler != null)
    +	{
    +		this.graph.removeListener(this.drillHandler);
    +		this.graph.getView().removeListener(this.drillHandler);
    +		this.drillHandler = null;
    +	}
    +};
    diff --git a/javascript/src/js/handler/mxConstraintHandler.js b/javascript/src/js/handler/mxConstraintHandler.js
    new file mode 100644
    index 000000000..46df79c88
    --- /dev/null
    +++ b/javascript/src/js/handler/mxConstraintHandler.js
    @@ -0,0 +1,299 @@
    +/**
    + * $Id: mxConstraintHandler.js,v 1.14 2011-04-01 09:37:51 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxConstraintHandler
    + *
    + * Handles constraints on connection targets. This class is in charge of
    + * showing fixed points when the mouse is over a vertex and handles constraints
    + * to establish new connections.
    + *
    + * Constructor: mxConstraintHandler
    + *
    + * Constructs an new constraint handler.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + * factoryMethod - Optional function to create the edge. The function takes
    + * the source and target <mxCell> as the first and second argument and
    + * returns the <mxCell> that represents the new edge.
    + */
    +function mxConstraintHandler(graph)
    +{
    +	this.graph = graph;
    +};
    +
    +/**
    + * Variable: pointImage
    + * 
    + * <mxImage> to be used as the image for fixed connection points.
    + */
    +mxConstraintHandler.prototype.pointImage = new mxImage(mxClient.imageBasePath + '/point.gif', 5, 5);
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxConstraintHandler.prototype.graph = null;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxConstraintHandler.prototype.enabled = true;
    +
    +/**
    + * Variable: highlightColor
    + * 
    + * Specifies the color for the highlight. Default is <mxConstants.DEFAULT_VALID_COLOR>.
    + */
    +mxConstraintHandler.prototype.highlightColor = mxConstants.DEFAULT_VALID_COLOR;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxConstraintHandler.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +	
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxConstraintHandler.prototype.setEnabled = function(enabled)
    +{
    +	this.enabled = enabled;
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets the state of this handler.
    + */
    +mxConstraintHandler.prototype.reset = function()
    +{
    +	if (this.focusIcons != null)
    +	{
    +		for (var i = 0; i < this.focusIcons.length; i++)
    +		{
    +			this.focusIcons[i].destroy();
    +		}
    +		
    +		this.focusIcons = null;
    +	}
    +	
    +	if (this.focusHighlight != null)
    +	{
    +		this.focusHighlight.destroy();
    +		this.focusHighlight = null;
    +	}
    +	
    +	this.currentConstraint = null;
    +	this.currentFocusArea = null;
    +	this.currentPoint = null;
    +	this.currentFocus = null;
    +	this.focusPoints = null;
    +};
    +
    +/**
    + * Function: getTolerance
    + * 
    + * Returns the tolerance to be used for intersecting connection points.
    + */
    +mxConstraintHandler.prototype.getTolerance = function()
    +{
    +	return this.graph.getTolerance();
    +};
    +
    +/**
    + * Function: getImageForConstraint
    + * 
    + * Returns the tolerance to be used for intersecting connection points.
    + */
    +mxConstraintHandler.prototype.getImageForConstraint = function(state, constraint, point)
    +{
    +	return this.pointImage;
    +};
    +
    +/**
    + * Function: update
    + * 
    + * Updates the state of this handler based on the given <mxMouseEvent>.
    + */
    +mxConstraintHandler.prototype.update = function(me, source)
    +{
    +	if (this.isEnabled())
    +	{
    +		var tol = this.getTolerance();
    +		var mouse = new mxRectangle(me.getGraphX() - tol, me.getGraphY() - tol, 2 * tol, 2 * tol);
    +		var connectable = (me.getCell() != null) ? this.graph.isCellConnectable(me.getCell()) : false;
    +
    +		if ((this.currentFocusArea == null || (!mxUtils.intersects(this.currentFocusArea, mouse) ||
    +			(me.getState() != null && this.currentFocus != null && connectable &&
    +			this.graph.getModel().getParent(me.getCell()) == this.currentFocus.cell))))
    +		{
    +			this.currentFocusArea = null;
    +	
    +			if (me.getState() != this.currentFocus)
    +			{
    +				this.currentFocus = null;
    +				this.constraints = (me.getState() != null && connectable) ?
    +					this.graph.getAllConnectionConstraints(me.getState(), source) : null;
    +				
    +				// Only uses cells which have constraints
    +				if (this.constraints != null)
    +				{
    +					this.currentFocus = me.getState();
    +					this.currentFocusArea = new mxRectangle(me.getState().x, me.getState().y, me.getState().width, me.getState().height);
    +					
    +					if (this.focusIcons != null)
    +					{
    +						for (var i = 0; i < this.focusIcons.length; i++)
    +						{
    +							this.focusIcons[i].destroy();
    +						}
    +						
    +						this.focusIcons = null;
    +						this.focusPoints = null;
    +					}
    +					
    +					this.focusIcons = [];
    +					this.focusPoints = [];
    +					
    +					for (var i = 0; i < this.constraints.length; i++)
    +					{
    +						var cp = this.graph.getConnectionPoint(me.getState(), this.constraints[i]);
    +						var img = this.getImageForConstraint(me.getState(), this.constraints[i], cp);
    +	
    +						var src = img.src;
    +						var bounds = new mxRectangle(cp.x - img.width / 2,
    +							cp.y - img.height / 2, img.width, img.height);
    +						var icon = new mxImageShape(bounds, src);
    +						icon.dialect = (this.graph.dialect == mxConstants.DIALECT_SVG) ?
    +							mxConstants.DIALECT_SVG :
    +							mxConstants.DIALECT_VML;
    +						icon.init(this.graph.getView().getOverlayPane());
    +						
    +						// Move the icon behind all other overlays
    +						if (icon.node.previousSibling != null)
    +						{
    +							icon.node.parentNode.insertBefore(icon.node, icon.node.parentNode.firstChild);
    +						}
    +	
    +						var getState = mxUtils.bind(this, function()
    +						{
    +							return (this.currentFocus != null) ? this.currentFocus : me.getState();
    +						});
    +						
    +						icon.redraw();
    +	
    +						mxEvent.redirectMouseEvents(icon.node, this.graph, getState);
    +						this.currentFocusArea.add(icon.bounds);
    +						this.focusIcons.push(icon);
    +						this.focusPoints.push(cp);
    +					}
    +					
    +					this.currentFocusArea.grow(tol);
    +				}
    +				else if (this.focusIcons != null)
    +				{
    +					if (this.focusHighlight != null)
    +					{
    +						this.focusHighlight.destroy();
    +						this.focusHighlight = null;
    +					}
    +					
    +					for (var i = 0; i < this.focusIcons.length; i++)
    +					{
    +						this.focusIcons[i].destroy();
    +					}
    +					
    +					this.focusIcons = null;
    +					this.focusPoints = null;
    +				}
    +			}
    +		}
    +		
    +		this.currentConstraint = null;
    +		this.currentPoint = null;
    +		
    +		if (this.focusIcons != null &&
    +			this.constraints != null &&
    +			(me.getState() == null ||
    +			this.currentFocus == me.getState()))
    +		{
    +			for (var i = 0; i < this.focusIcons.length; i++)
    +			{
    +				if (mxUtils.intersects(this.focusIcons[i].bounds, mouse))
    +				{
    +					this.currentConstraint = this.constraints[i];
    +					this.currentPoint = this.focusPoints[i];
    +					
    +					var tmp = this.focusIcons[i].bounds.clone();
    +					tmp.grow((mxClient.IS_IE) ? 3 : 2);
    +					
    +					if (mxClient.IS_IE)
    +					{
    +						tmp.width -= 1;
    +						tmp.height -= 1;
    +					}
    +					
    +					if (this.focusHighlight == null)
    +					{
    +						var hl = new mxRectangleShape(tmp, null, this.highlightColor, 3);
    +						hl.dialect = (this.graph.dialect == mxConstants.DIALECT_SVG) ?
    +									mxConstants.DIALECT_SVG :
    +									mxConstants.DIALECT_VML;
    +						hl.init(this.graph.getView().getOverlayPane());
    +						this.focusHighlight = hl;
    +						
    +						var getState = mxUtils.bind(this, function()
    +						{
    +							return (this.currentFocus != null) ? this.currentFocus : me.getState();
    +						});
    +	
    +						mxEvent.redirectMouseEvents(hl.node, this.graph, getState/*, mouseDown*/);
    +					}
    +					else
    +					{
    +						this.focusHighlight.bounds = tmp;
    +						this.focusHighlight.redraw();
    +					}
    +					
    +					break;
    +				}
    +			}
    +		}
    +		
    +		if (this.currentConstraint == null &&
    +			this.focusHighlight != null)
    +		{
    +			this.focusHighlight.destroy();
    +			this.focusHighlight = null;
    +		}
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroy this handler.
    + */
    +mxConstraintHandler.prototype.destroy = function()
    +{
    +	this.reset();
    +};
    \ No newline at end of file
    diff --git a/javascript/src/js/handler/mxEdgeHandler.js b/javascript/src/js/handler/mxEdgeHandler.js
    new file mode 100644
    index 000000000..707c10e35
    --- /dev/null
    +++ b/javascript/src/js/handler/mxEdgeHandler.js
    @@ -0,0 +1,1531 @@
    +/**
    + * $Id: mxEdgeHandler.js,v 1.173 2012-05-14 10:41:47 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxEdgeHandler
    + *
    + * Graph event handler that reconnects edges and modifies control points and
    + * the edge label location. Uses <mxTerminalMarker> for finding and
    + * highlighting new source and target vertices. This handler is automatically
    + * created in <mxGraph.createHandler> for each selected edge.
    + * 
    + * To enable adding/removing control points, the following code can be used:
    + * 
    + * (code)
    + * mxEdgeHandler.prototype.addEnabled = true;
    + * mxEdgeHandler.prototype.removeEnabled = true;
    + * (end)
    + * 
    + * Note: This experimental feature is not recommended for production use.
    + * 
    + * Constructor: mxEdgeHandler
    + *
    + * Constructs an edge handler for the specified <mxCellState>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> of the cell to be handled.
    + */
    +function mxEdgeHandler(state)
    +{
    +	if (state != null)
    +	{
    +		this.state = state;
    +		this.init();
    +	}
    +};
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxEdgeHandler.prototype.graph = null;
    +
    +/**
    + * Variable: state
    + * 
    + * Reference to the <mxCellState> being modified.
    + */
    +mxEdgeHandler.prototype.state = null;
    +
    +/**
    + * Variable: marker
    + * 
    + * Holds the <mxTerminalMarker> which is used for highlighting terminals.
    + */
    +mxEdgeHandler.prototype.marker = null;
    +
    +/**
    + * Variable: constraintHandler
    + * 
    + * Holds the <mxConstraintHandler> used for drawing and highlighting
    + * constraints.
    + */
    +mxEdgeHandler.prototype.constraintHandler = null;
    +
    +/**
    + * Variable: error
    + * 
    + * Holds the current validation error while a connection is being changed.
    + */
    +mxEdgeHandler.prototype.error = null;
    +
    +/**
    + * Variable: shape
    + * 
    + * Holds the <mxShape> that represents the preview edge.
    + */
    +mxEdgeHandler.prototype.shape = null;
    +
    +/**
    + * Variable: bends
    + * 
    + * Holds the <mxShapes> that represent the points.
    + */
    +mxEdgeHandler.prototype.bends = null;
    +
    +/**
    + * Variable: labelShape
    + * 
    + * Holds the <mxShape> that represents the label position.
    + */
    +mxEdgeHandler.prototype.labelShape = null;
    +
    +/**
    + * Variable: cloneEnabled
    + * 
    + * Specifies if cloning by control-drag is enabled. Default is true.
    + */
    +mxEdgeHandler.prototype.cloneEnabled = true;
    +
    +/**
    + * Variable: addEnabled
    + * 
    + * Specifies if adding bends by shift-click is enabled. Default is false.
    + * Note: This experimental feature is not recommended for production use.
    + */
    +mxEdgeHandler.prototype.addEnabled = false;
    +
    +/**
    + * Variable: removeEnabled
    + * 
    + * Specifies if removing bends by shift-click is enabled. Default is false.
    + * Note: This experimental feature is not recommended for production use.
    + */
    +mxEdgeHandler.prototype.removeEnabled = false;
    +
    +/**
    + * Variable: preferHtml
    + * 
    + * Specifies if bends should be added to the graph container. This is updated
    + * in <init> based on whether the edge or one of its terminals has an HTML
    + * label in the container.
    + */
    +mxEdgeHandler.prototype.preferHtml = false;
    +
    +/**
    + * Variable: allowHandleBoundsCheck
    + * 
    + * Specifies if the bounds of handles should be used for hit-detection in IE
    + * Default is true.
    + */
    +mxEdgeHandler.prototype.allowHandleBoundsCheck = true;
    +
    +/**
    + * Variable: snapToTerminals
    + * 
    + * Specifies if waypoints should snap to the routing centers of terminals.
    + * Default is false.
    + */
    +mxEdgeHandler.prototype.snapToTerminals = false;
    +
    +/**
    + * Variable: crisp
    + * 
    + * Specifies if the edge handles should be rendered in crisp mode. Default is
    + * true.
    + */
    +mxEdgeHandler.prototype.crisp = true;
    +
    +/**
    + * Variable: handleImage
    + * 
    + * Optional <mxImage> to be used as handles. Default is null.
    + */
    +mxEdgeHandler.prototype.handleImage = null;
    +
    +/**
    + * Variable: tolerance
    + * 
    + * Optional tolerance for hit-detection in <getHandleForEvent>. Default is 0.
    + */
    +mxEdgeHandler.prototype.tolerance = 0;
    +
    +/**
    + * Function: init
    + * 
    + * Initializes the shapes required for this edge handler.
    + */
    +mxEdgeHandler.prototype.init = function()
    +{
    +	this.graph = this.state.view.graph;
    +	this.marker = this.createMarker();
    +	this.constraintHandler = new mxConstraintHandler(this.graph);
    +	
    +	// Clones the original points from the cell
    +	// and makes sure at least one point exists
    +	this.points = [];
    +	
    +	// Uses the absolute points of the state
    +	// for the initial configuration and preview
    +	this.abspoints = this.getSelectionPoints(this.state);
    +	this.shape = this.createSelectionShape(this.abspoints);
    +	this.shape.dialect = (this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +		mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +	this.shape.init(this.graph.getView().getOverlayPane());
    +	this.shape.node.style.cursor = mxConstants.CURSOR_MOVABLE_EDGE;
    +	
    +	// Event handling
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +	var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +	
    +	mxEvent.addListener(this.shape.node, 'dblclick',
    +		mxUtils.bind(this, function(evt)
    +		{
    +			this.graph.dblClick(evt, this.state.cell);
    +		})
    +	);
    +	mxEvent.addListener(this.shape.node, md,
    +		mxUtils.bind(this, function(evt)
    +		{
    +			if (this.addEnabled && this.isAddPointEvent(evt))
    +			{
    +				this.addPoint(this.state, evt);
    +			}
    +			else
    +			{
    +				this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,
    +					new mxMouseEvent(evt, this.state));
    +			}
    +		})
    +	);
    +	mxEvent.addListener(this.shape.node, mm,
    +		mxUtils.bind(this, function(evt)
    +		{
    +			var cell = this.state.cell;
    +			
    +			// Finds the cell under the mouse if the edge is being connected
    +			// in which case the edge is never highlighted as it cannot
    +			// be its own source or target terminal (transparent preview)
    +			if (this.index != null)
    +			{
    +				var pt = mxUtils.convertPoint(this.graph.container, 
    +					mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +				cell = this.graph.getCellAt(pt.x, pt.y);
    +				
    +				// Swimlane content area is transparent in this case
    +				if (this.graph.isSwimlane(cell) && this.graph.hitsSwimlaneContent(cell, pt.x, pt.y))
    +				{
    +					cell = null;
    +				}
    +			}
    +			
    +			this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +				new mxMouseEvent(evt, this.graph.getView().getState(cell)));
    +		})
    +	);
    +	mxEvent.addListener(this.shape.node, mu,
    +		mxUtils.bind(this, function(evt)
    +		{
    +			this.graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +				new mxMouseEvent(evt, this.state));
    +		})
    +	);
    +
    +	// Updates preferHtml
    +	this.preferHtml = this.state.text != null &&
    +		this.state.text.node.parentNode == this.graph.container;
    +	
    +	if (!this.preferHtml)
    +	{
    +		// Checks source terminal
    +		var sourceState = this.state.getVisibleTerminalState(true);
    +		
    +		if (sourceState != null)
    +		{
    +			this.preferHtml = sourceState.text != null &&
    +				sourceState.text.node.parentNode == this.graph.container;
    +		}
    +		
    +		if (!this.preferHtml)
    +		{
    +			// Checks target terminal
    +			var targetState = this.state.getVisibleTerminalState(false);
    +			
    +			if (targetState != null)
    +			{
    +				this.preferHtml = targetState.text != null &&
    +				targetState.text.node.parentNode == this.graph.container;
    +			}
    +		}
    +	}
    +
    +	// Creates bends for the non-routed absolute points
    +	// or bends that don't correspond to points
    +	if (this.graph.getSelectionCount() < mxGraphHandler.prototype.maxCells ||
    +		mxGraphHandler.prototype.maxCells <= 0)
    +	{
    +		this.bends = this.createBends();
    +	}
    +
    +	// Adds a rectangular handle for the label position
    +	this.label = new mxPoint(this.state.absoluteOffset.x, this.state.absoluteOffset.y);
    +	this.labelShape = new mxRectangleShape(new mxRectangle(),
    +			mxConstants.LABEL_HANDLE_FILLCOLOR,
    +			mxConstants.HANDLE_STROKECOLOR);
    +	this.initBend(this.labelShape);
    +	this.labelShape.node.style.cursor = mxConstants.CURSOR_LABEL_HANDLE;
    +	mxEvent.redirectMouseEvents(this.labelShape.node, this.graph, this.state);
    +	
    +	this.redraw();
    +};
    +
    +/**
    + * Function: isAddPointEvent
    + * 
    + * Returns true if the given event is a trigger to add a new point. This
    + * implementation returns true if shift is pressed.
    + */
    +mxEdgeHandler.prototype.isAddPointEvent = function(evt)
    +{
    +	return mxEvent.isShiftDown(evt);
    +};
    +
    +/**
    + * Function: isRemovePointEvent
    + * 
    + * Returns true if the given event is a trigger to remove a point. This
    + * implementation returns true if shift is pressed.
    + */
    +mxEdgeHandler.prototype.isRemovePointEvent = function(evt)
    +{
    +	return mxEvent.isShiftDown(evt);
    +};
    +
    +/**
    + * Function: getSelectionPoints
    + * 
    + * Returns the list of points that defines the selection stroke.
    + */
    +mxEdgeHandler.prototype.getSelectionPoints = function(state)
    +{
    +	return state.absolutePoints;
    +};
    +
    +/**
    + * Function: createSelectionShape
    + * 
    + * Creates the shape used to draw the selection border.
    + */
    +mxEdgeHandler.prototype.createSelectionShape = function(points)
    +{
    +	var shape = new mxPolyline(points, this.getSelectionColor());
    +	shape.strokewidth = this.getSelectionStrokeWidth();
    +	shape.isDashed = this.isSelectionDashed();
    +	
    +	return shape;
    +};
    +
    +/**
    + * Function: getSelectionColor
    + * 
    + * Returns <mxConstants.EDGE_SELECTION_COLOR>.
    + */
    +mxEdgeHandler.prototype.getSelectionColor = function()
    +{
    +	return mxConstants.EDGE_SELECTION_COLOR;
    +};
    +
    +/**
    + * Function: getSelectionStrokeWidth
    + * 
    + * Returns <mxConstants.EDGE_SELECTION_STROKEWIDTH>.
    + */
    +mxEdgeHandler.prototype.getSelectionStrokeWidth = function()
    +{
    +	return mxConstants.EDGE_SELECTION_STROKEWIDTH;
    +};
    +
    +/**
    + * Function: isSelectionDashed
    + * 
    + * Returns <mxConstants.EDGE_SELECTION_DASHED>.
    + */
    +mxEdgeHandler.prototype.isSelectionDashed = function()
    +{
    +	return mxConstants.EDGE_SELECTION_DASHED;
    +};
    +
    +/**
    + * Function: isConnectableCell
    + * 
    + * Returns true if the given cell is connectable. This is a hook to
    + * disable floating connections. This implementation returns true.
    + */
    +mxEdgeHandler.prototype.isConnectableCell = function(cell)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: createMarker
    + * 
    + * Creates and returns the <mxCellMarker> used in <marker>.
    + */
    +mxEdgeHandler.prototype.createMarker = function()
    +{
    +	var marker = new mxCellMarker(this.graph);
    +	var self = this; // closure
    +
    +	// Only returns edges if they are connectable and never returns
    +	// the edge that is currently being modified
    +	marker.getCell = function(me)
    +	{
    +		var cell = mxCellMarker.prototype.getCell.apply(this, arguments);
    +
    +		if (!self.isConnectableCell(cell))
    +		{
    +			return null;
    +		}
    +		
    +		var model = self.graph.getModel();
    +		
    +		if (cell == self.state.cell || (cell != null &&
    +			!self.graph.connectableEdges && model.isEdge(cell)))
    +		{
    +			cell = null;
    +		}
    +		
    +		return cell;
    +	};
    +
    +	// Sets the highlight color according to validateConnection
    +	marker.isValidState = function(state)
    +	{
    +		var model = self.graph.getModel();
    +		var other = self.graph.view.getTerminalPort(state,
    +			self.graph.view.getState(model.getTerminal(self.state.cell,
    +			!self.isSource)), !self.isSource);
    +		var otherCell = (other != null) ? other.cell : null;
    +		var source = (self.isSource) ? state.cell : otherCell;
    +		var target = (self.isSource) ? otherCell : state.cell;
    +		
    +		// Updates the error message of the handler
    +		self.error = self.validateConnection(source, target);
    +
    +		return self.error == null;
    +	};
    +	
    +	return marker;
    +};
    +
    +/**
    + * Function: validateConnection
    + * 
    + * Returns the error message or an empty string if the connection for the
    + * given source, target pair is not valid. Otherwise it returns null. This
    + * implementation uses <mxGraph.getEdgeValidationError>.
    + * 
    + * Parameters:
    + * 
    + * source - <mxCell> that represents the source terminal.
    + * target - <mxCell> that represents the target terminal.
    + */
    +mxEdgeHandler.prototype.validateConnection = function(source, target)
    +{
    +	return this.graph.getEdgeValidationError(this.state.cell, source, target);
    +};
    +
    +/**
    + * Function: createBends
    + * 
    + * Creates and returns the bends used for modifying the edge. This is
    + * typically an array of <mxRectangleShapes>.
    + */
    + mxEdgeHandler.prototype.createBends = function()
    + {
    +	var cell = this.state.cell;
    +	var bends = [];
    +
    +	for (var i = 0; i < this.abspoints.length; i++)
    +	{
    +		if (this.isHandleVisible(i))
    +		{
    +			var source = i == 0;
    +			var target = i == this.abspoints.length - 1;
    +			var terminal = source || target;
    +
    +			if (terminal || this.graph.isCellBendable(cell))
    +			{				
    +				var bend = this.createHandleShape(i);
    +				this.initBend(bend);
    +
    +				if (mxClient.IS_TOUCH)
    +				{
    +					bend.node.setAttribute('pointer-events', 'none');
    +				}
    +				
    +				if (this.isHandleEnabled(i))
    +				{
    +					if (mxClient.IS_TOUCH)
    +					{
    +						var getState = mxUtils.bind(this, function(evt)
    +						{
    +							var pt = mxUtils.convertPoint(this.graph.container, mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +							
    +							return this.graph.view.getState(this.graph.getCellAt(pt.x, pt.y));
    +						});
    +						
    +						mxEvent.redirectMouseEvents(bend.node, this.graph, getState);
    +					}
    +					else
    +					{
    +						bend.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE;
    +						mxEvent.redirectMouseEvents(bend.node, this.graph, this.state);
    +					}
    +				}
    +				
    +				bends.push(bend);
    +			
    +				if (!terminal)
    +				{
    +					this.points.push(new mxPoint(0,0));
    +					bend.node.style.visibility = 'hidden';
    +				}
    +			}
    +		}
    +	}
    +
    +	return bends;
    +};
    +/**
    + * Function: isHandleEnabled
    + * 
    + * Creates the shape used to display the given bend.
    + */
    +mxEdgeHandler.prototype.isHandleEnabled = function(index)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: isHandleVisible
    + * 
    + * Returns true if the handle at the given index is visible.
    + */
    +mxEdgeHandler.prototype.isHandleVisible = function(index)
    +{
    +	return (this.abspoints[index] != null) ? !this.abspoints[index].isRouted : true;
    +};
    +
    +/**
    + * Function: createHandleShape
    + * 
    + * Creates the shape used to display the given bend. Note that the index may be
    + * null for special cases, such as when called from
    + * <mxElbowEdgeHandler.createVirtualBend>.
    + */
    +mxEdgeHandler.prototype.createHandleShape = function(index)
    +{
    +	if (this.handleImage != null)
    +	{
    +		return new mxImageShape(new mxRectangle(0, 0, this.handleImage.width, this.handleImage.height), this.handleImage.src);
    +	}
    +	else
    +	{
    +		var s = mxConstants.HANDLE_SIZE;
    +		
    +		if (this.preferHtml)
    +		{
    +			s -= 1;
    +		}
    +		
    +		return new mxRectangleShape(new mxRectangle(0, 0, s, s), mxConstants.HANDLE_FILLCOLOR, mxConstants.HANDLE_STROKECOLOR);
    +	}
    +};
    +
    +/**
    + * Function: initBend
    + * 
    + * Helper method to initialize the given bend.
    + * 
    + * Parameters:
    + * 
    + * bend - <mxShape> that represents the bend to be initialized.
    + */
    +mxEdgeHandler.prototype.initBend = function(bend)
    +{
    +	bend.crisp = this.crisp;
    +	
    +	if (this.preferHtml)
    +	{
    +		bend.dialect = mxConstants.DIALECT_STRICTHTML;
    +		bend.init(this.graph.container);
    +	}
    +	else
    +	{
    +		bend.dialect = (this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +			mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +		bend.init(this.graph.getView().getOverlayPane());
    +	}
    +};
    +
    +/**
    + * Function: getHandleForEvent
    + * 
    + * Returns the index of the handle for the given event.
    + */
    +mxEdgeHandler.prototype.getHandleForEvent = function(me)
    +{
    +	// Finds the handle that triggered the event
    +	if (this.bends != null)
    +	{
    +		// Connection highlight may consume events before they reach sizer handle
    +		var tol = this.tolerance;
    +		var hit = (this.allowHandleBoundsCheck && (mxClient.IS_IE || tol > 0)) ?
    +			new mxRectangle(me.getGraphX() - tol, me.getGraphY() - tol, 2 * tol, 2 * tol) : null;
    +
    +		for (var i = 0; i < this.bends.length; i++)
    +		{
    +			if (me.isSource(this.bends[i]) || (hit != null &&
    +				this.bends[i].node.style.visibility != 'hidden' &&
    +				mxUtils.intersects(this.bends[i].bounds, hit)))
    +			{
    +				return i;
    +			}
    +		}
    +	}
    +
    +	if (me.isSource(this.labelShape) || me.isSource(this.state.text))
    +	{
    +		// Workaround for SELECT element not working in Webkit
    +		if ((!mxClient.IS_SF && !mxClient.IS_GC) || me.getSource().nodeName != 'SELECT')
    +		{
    +			return mxEvent.LABEL_HANDLE;
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Handles the event by checking if a special element of the handler
    + * was clicked, in which case the index parameter is non-null. The
    + * indices may be one of <LABEL_HANDLE> or the number of the respective
    + * control point. The source and target points are used for reconnecting
    + * the edge.
    + */
    +mxEdgeHandler.prototype.mouseDown = function(sender, me)
    +{
    +	var handle = null;
    +	
    +	// Handles the case where the state in the event points to another
    +	// cell if the cell has a HTML label which sits on top of the handles
    +	// NOTE: Commented out. This should not be required as all HTML labels
    +	// are in order an do not appear behind the handles.
    +	//if (mxClient.IS_SVG || me.getState() == this.state)
    +	{
    +		handle = this.getHandleForEvent(me);
    +	}
    +	
    +	if (handle != null && !me.isConsumed() && this.graph.isEnabled() && 
    +		!this.graph.isForceMarqueeEvent(me.getEvent()))
    +	{
    +		if (this.removeEnabled && this.isRemovePointEvent(me.getEvent()))
    +		{
    +			this.removePoint(this.state, handle);
    +		}
    +		else if (handle != mxEvent.LABEL_HANDLE || this.graph.isLabelMovable(me.getCell()))
    +		{
    +			this.start(me.getX(), me.getY(), handle);
    +		}
    +		
    +		me.consume();
    +	}
    +};
    +
    +/**
    + * Function: start
    + * 
    + * Starts the handling of the mouse gesture.
    + */
    +mxEdgeHandler.prototype.start = function(x, y, index)
    +{
    +	this.startX = x;
    +	this.startY = y;
    +
    +	this.isSource = (this.bends == null) ? false : index == 0;
    +	this.isTarget = (this.bends == null) ? false : index == this.bends.length - 1;
    +	this.isLabel = index == mxEvent.LABEL_HANDLE;
    +
    +	if (this.isSource || this.isTarget)
    +	{
    +		var cell = this.state.cell;
    +		var terminal = this.graph.model.getTerminal(cell, this.isSource);
    +
    +		if ((terminal == null && this.graph.isTerminalPointMovable(cell, this.isSource)) ||
    +			(terminal != null && this.graph.isCellDisconnectable(cell, terminal, this.isSource)))
    +		{
    +			this.index = index;
    +		}
    +	}
    +	else
    +	{
    +		this.index = index;
    +	}
    +};
    +
    +/**
    + * Function: clonePreviewState
    + * 
    + * Returns a clone of the current preview state for the given point and terminal.
    + */
    +mxEdgeHandler.prototype.clonePreviewState = function(point, terminal)
    +{
    +	return this.state.clone();
    +};
    +
    +/**
    + * Function: getSnapToTerminalTolerance
    + * 
    + * Returns the tolerance for the guides. Default value is
    + * gridSize * scale / 2.
    + */
    +mxEdgeHandler.prototype.getSnapToTerminalTolerance = function()
    +{
    +	return this.graph.gridSize * this.graph.view.scale / 2;
    +};
    +
    +/**
    + * Function: getPointForEvent
    + * 
    + * Returns the point for the given event.
    + */
    +mxEdgeHandler.prototype.getPointForEvent = function(me)
    +{
    +	var point = new mxPoint(me.getGraphX(), me.getGraphY());
    +	var tt = this.getSnapToTerminalTolerance();
    +	var view = this.graph.getView();
    +	var overrideX = false;
    +	var overrideY = false;		
    +	
    +	if (this.snapToTerminals && tt > 0)
    +	{
    +		// Temporary function
    +		function snap(terminal, source)
    +		{
    +			if (terminal != null)
    +			{
    +				var pts = this.state.absolutePoints;
    +				var abs = (source) ? pts[0] : pts[pts.length - 1];
    +				var x = view.getRoutingCenterX(terminal);
    +
    +				if (Math.abs(point.x - x) < tt)
    +				{
    +					point.x = x;
    +					overrideX = true;
    +				}
    +				
    +				if (abs != null && abs.x != x)
    +				{
    +					x = abs.x;
    +	
    +					if (Math.abs(point.x - x) < tt)
    +					{
    +						point.x = x;
    +						overrideX = true;
    +					}
    +				}
    +				
    +				var y = view.getRoutingCenterY(terminal);
    +
    +				if (Math.abs(point.y - y) < tt)
    +				{
    +					point.y = y;
    +					overrideY = true;
    +				}
    +				
    +				if (abs != null && abs.y != y)
    +				{
    +					y = abs.y;
    +	
    +					if (Math.abs(point.y - y) < tt)
    +					{
    +						point.y = y;
    +						overrideY = true;
    +					}
    +				}
    +				
    +			}
    +		};
    +
    +		snap.call(this, this.state.getVisibleTerminalState(true));
    +		snap.call(this, this.state.getVisibleTerminalState(false));
    +	}
    +	
    +	if (this.graph.isGridEnabledEvent(me.getEvent()))
    +	{
    +		var scale = view.scale;
    +		var tr = view.translate;
    +		
    +		if (!overrideX)
    +		{
    +			point.x = (this.graph.snap(point.x / scale - tr.x) + tr.x) * scale;
    +		}
    +		
    +		if (!overrideY)
    +		{
    +			point.y = (this.graph.snap(point.y / scale - tr.y) + tr.y) * scale;
    +		}
    +	}
    +	
    +	return point;
    +};
    +
    +/**
    + * Function: getPreviewTerminalState
    + * 
    + * Updates the given preview state taking into account the state of the constraint handler.
    + */
    +mxEdgeHandler.prototype.getPreviewTerminalState = function(me)
    +{
    +	this.constraintHandler.update(me, this.isSource);
    +	this.marker.process(me);
    +	var currentState = this.marker.getValidState();
    +	var result = null;
    +	
    +	if (this.constraintHandler.currentFocus != null &&
    +		this.constraintHandler.currentConstraint != null)
    +	{
    +		this.marker.reset();
    +	}
    +	
    +	if (currentState != null)
    +	{
    +		result = currentState;
    +	}
    +	else if (this.constraintHandler.currentConstraint != null &&
    +			this.constraintHandler.currentFocus != null)
    +	{
    +		result = this.constraintHandler.currentFocus;
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getPreviewPoints
    + * 
    + * Updates the given preview state taking into account the state of the constraint handler.
    + */
    +mxEdgeHandler.prototype.getPreviewPoints = function(point)
    +{
    +	var geometry = this.graph.getCellGeometry(this.state.cell);
    +	var points = geometry.points;
    +
    +	if (!this.isSource && !this.isTarget)
    +	{
    +		this.convertPoint(point, false);
    +		
    +		if (points == null)
    +		{
    +			points = [point];
    +		}
    +		else
    +		{
    +			points = points.slice();
    +			points[this.index - 1] = point;
    +		}
    +	}
    +	else if (this.graph.resetEdgesOnConnect)
    +	{
    +		points = null;
    +	}
    +	
    +	return points;
    +};
    +
    +/**
    + * Function: updatePreviewState
    + * 
    + * Updates the given preview state taking into account the state of the constraint handler.
    + */
    +mxEdgeHandler.prototype.updatePreviewState = function(edge, point, terminalState)
    +{
    +	// Computes the points for the edge style and terminals
    +	var sourceState = (this.isSource) ? terminalState : this.state.getVisibleTerminalState(true);
    +	var targetState = (this.isTarget) ? terminalState : this.state.getVisibleTerminalState(false);
    +	
    +	var sourceConstraint = this.graph.getConnectionConstraint(edge, sourceState, true);
    +	var targetConstraint = this.graph.getConnectionConstraint(edge, targetState, false);
    +
    +	var constraint = this.constraintHandler.currentConstraint;
    +
    +	if (constraint == null)
    +	{
    +		constraint = new mxConnectionConstraint();
    +	}
    +	
    +	if (this.isSource)
    +	{
    +		sourceConstraint = constraint;
    +	}
    +	else if (this.isTarget)
    +	{
    +		targetConstraint = constraint;
    +	}
    +	
    +	if (!this.isSource || sourceState != null)
    +	{
    +		edge.view.updateFixedTerminalPoint(edge, sourceState, true, sourceConstraint);
    +	}
    +	
    +	if (!this.isTarget || targetState != null)
    +	{
    +		edge.view.updateFixedTerminalPoint(edge, targetState, false, targetConstraint);
    +	}
    +	
    +	if ((this.isSource || this.isTarget) && terminalState == null)
    +	{
    +		edge.setAbsoluteTerminalPoint(point, this.isSource);
    +
    +		if (this.marker.getMarkedState() == null)
    +		{
    +			this.error = (this.graph.allowDanglingEdges) ? null : '';
    +		}
    +	}
    +	
    +	edge.view.updatePoints(edge, this.points, sourceState, targetState);
    +	edge.view.updateFloatingTerminalPoints(edge, sourceState, targetState);
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Handles the event by updating the preview.
    + */
    +mxEdgeHandler.prototype.mouseMove = function(sender, me)
    +{
    +	if (this.index != null && this.marker != null)
    +	{
    +		var point = this.getPointForEvent(me);
    +		
    +		if (this.isLabel)
    +		{
    +			this.label.x = point.x;
    +			this.label.y = point.y;
    +		}
    +		else
    +		{
    +			this.points = this.getPreviewPoints(point);
    +			var terminalState = (this.isSource || this.isTarget) ? this.getPreviewTerminalState(me) : null;
    +			var clone = this.clonePreviewState(point, (terminalState != null) ? terminalState.cell : null);
    +			this.updatePreviewState(clone, point, terminalState);
    +
    +			// Sets the color of the preview to valid or invalid, updates the
    +			// points of the preview and redraws
    +			var color = (this.error == null) ? this.marker.validColor :
    +				this.marker.invalidColor;
    +			this.setPreviewColor(color);
    +			this.abspoints = clone.absolutePoints;
    +			this.active = true;
    +		}
    +		
    +		this.drawPreview();
    +		mxEvent.consume(me.getEvent());
    +		me.consume();
    +	}
    +	// Workaround for disabling the connect highlight when over handle
    +	else if (mxClient.IS_IE && this.getHandleForEvent(me) != null)
    +	{
    +		me.consume(false);
    +	}
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Handles the event to applying the previewed changes on the edge by
    + * using <moveLabel>, <connect> or <changePoints>.
    + */
    +mxEdgeHandler.prototype.mouseUp = function(sender, me)
    +{
    +	if (this.index != null && this.marker != null)
    +	{
    +		var edge = this.state.cell;
    +		
    +		// Ignores event if mouse has not been moved
    +		if (me.getX() != this.startX || me.getY() != this.startY)
    +		{
    +			// Displays the reason for not carriying out the change
    +			// if there is an error message with non-zero length
    +			if (this.error != null)
    +			{
    +				if (this.error.length > 0)
    +				{
    +					this.graph.validationAlert(this.error);
    +				}
    +			}
    +			else if (this.isLabel)
    +			{
    +				this.moveLabel(this.state, this.label.x, this.label.y);
    +			}
    +			else if (this.isSource || this.isTarget)
    +			{
    +				var terminal = null;
    +				
    +				if (this.constraintHandler.currentConstraint != null &&
    +					this.constraintHandler.currentFocus != null)
    +				{
    +					terminal = this.constraintHandler.currentFocus.cell;
    +				}
    +				
    +				if (terminal == null && this.marker.hasValidState())
    +				{
    +					terminal = this.marker.validState.cell;
    +				}
    +				
    +				if (terminal != null)
    +				{
    +					edge = this.connect(edge, terminal, this.isSource,
    +						this.graph.isCloneEvent(me.getEvent()) && this.cloneEnabled &&
    +						this.graph.isCellsCloneable(), me);
    +				}
    +				else if (this.graph.isAllowDanglingEdges())
    +				{
    +					var pt = this.graph.getPointForEvent(me.getEvent(), false);
    +					var pstate = this.graph.getView().getState(
    +							this.graph.getModel().getParent(edge));
    +							
    +					if (pstate != null)
    +					{
    +						pt.x -= pstate.origin.x;
    +						pt.y -= pstate.origin.y;
    +					}
    +					
    +					pt.x -= this.graph.panDx / this.graph.view.scale;
    +					pt.y -= this.graph.panDy / this.graph.view.scale;
    +					
    +					// Destroys and rectreates this handler
    +					this.changeTerminalPoint(edge, pt, this.isSource);
    +				}
    +			}
    +			else if (this.active)
    +			{
    +				this.changePoints(edge, this.points);
    +			}
    +			else
    +			{
    +				this.graph.getView().invalidate(this.state.cell);
    +				this.graph.getView().revalidate(this.state.cell);						
    +			}
    +		}
    +
    +		// Resets the preview color the state of the handler if this
    +		// handler has not been recreated
    +		if (this.marker != null)
    +		{
    +			this.reset();
    +
    +			// Updates the selection if the edge has been cloned
    +			if (edge != this.state.cell)
    +			{
    +				this.graph.setSelectionCell(edge);
    +			}
    +		}
    +
    +		me.consume();
    +	}
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets the state of this handler.
    + */
    +mxEdgeHandler.prototype.reset = function()
    +{
    +	this.error = null;
    +	this.index = null;
    +	this.label = null;
    +	this.points = null;
    +	this.active = false;
    +	this.isLabel = false;
    +	this.isSource = false;
    +	this.isTarget = false;
    +	this.marker.reset();
    +	this.constraintHandler.reset();
    +	this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR);
    +	this.redraw();
    +};
    +
    +/**
    + * Function: setPreviewColor
    + * 
    + * Sets the color of the preview to the given value.
    + */
    +mxEdgeHandler.prototype.setPreviewColor = function(color)
    +{
    +	if (this.shape != null && this.shape.node != null)
    +	{
    +		if (this.shape.dialect == mxConstants.DIALECT_SVG)
    +		{
    +			this.shape.innerNode.setAttribute('stroke', color);
    +		}
    +		else
    +		{
    +			this.shape.node.setAttribute('strokecolor', color);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: convertPoint
    + * 
    + * Converts the given point in-place from screen to unscaled, untranslated
    + * graph coordinates and applies the grid. Returns the given, modified
    + * point instance.
    + * 
    + * Parameters:
    + * 
    + * point - <mxPoint> to be converted.
    + * gridEnabled - Boolean that specifies if the grid should be applied.
    + */
    +mxEdgeHandler.prototype.convertPoint = function(point, gridEnabled)
    +{
    +	var scale = this.graph.getView().getScale();
    +	var tr = this.graph.getView().getTranslate();
    +		
    +	if (gridEnabled)
    +	{
    +		point.x = this.graph.snap(point.x);
    +		point.y = this.graph.snap(point.y);
    +	}
    +	
    +	point.x = Math.round(point.x / scale - tr.x);
    +	point.y = Math.round(point.y / scale - tr.y);
    +
    +	var pstate = this.graph.getView().getState(
    +		this.graph.getModel().getParent(this.state.cell));
    +
    +	if (pstate != null)
    +	{
    +		point.x -= pstate.origin.x;
    +		point.y -= pstate.origin.y;
    +	}
    +
    +	return point;
    +};
    +
    +/**
    + * Function: moveLabel
    + * 
    + * Changes the coordinates for the label of the given edge.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> that represents the edge.
    + * x - Integer that specifies the x-coordinate of the new location.
    + * y - Integer that specifies the y-coordinate of the new location.
    + */
    +mxEdgeHandler.prototype.moveLabel = function(edgeState, x, y)
    +{
    +	var model = this.graph.getModel();
    +	var geometry = model.getGeometry(edgeState.cell);
    +	
    +	if (geometry != null)
    +	{
    +		geometry = geometry.clone();
    +		
    +		// Resets the relative location stored inside the geometry
    +		var pt = this.graph.getView().getRelativePoint(edgeState, x, y);
    +		geometry.x = pt.x;
    +		geometry.y = pt.y;
    +		
    +		// Resets the offset inside the geometry to find the offset
    +		// from the resulting point
    +		var scale = this.graph.getView().scale;
    +		geometry.offset = new mxPoint(0, 0);
    +		var pt = this.graph.view.getPoint(edgeState, geometry);
    +		geometry.offset = new mxPoint((x - pt.x) / scale, (y - pt.y) / scale);
    +
    +		model.setGeometry(edgeState.cell, geometry);
    +	}
    +};
    +
    +/**
    + * Function: connect
    + * 
    + * Changes the terminal or terminal point of the given edge in the graph
    + * model.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> that represents the edge to be reconnected.
    + * terminal - <mxCell> that represents the new terminal.
    + * isSource - Boolean indicating if the new terminal is the source or
    + * target terminal.
    + * isClone - Boolean indicating if the new connection should be a clone of
    + * the old edge.
    + * me - <mxMouseEvent> that contains the mouse up event.
    + */
    +mxEdgeHandler.prototype.connect = function(edge, terminal, isSource, isClone, me)
    +{
    +	var model = this.graph.getModel();
    +	var parent = model.getParent(edge);
    +	
    +	model.beginUpdate();
    +	try
    +	{
    +		// Clones and adds the cell
    +		if (isClone)
    +		{
    +			var clone = edge.clone();
    +			model.add(parent, clone, model.getChildCount(parent));
    +			
    +			var other = model.getTerminal(edge, !isSource);
    +			this.graph.connectCell(clone, other, !isSource);
    +			
    +			edge = clone;
    +		}
    +
    +		var constraint = this.constraintHandler.currentConstraint;
    +		
    +		if (constraint == null)
    +		{
    +			constraint = new mxConnectionConstraint();
    +		}
    +
    +		this.graph.connectCell(edge, terminal, isSource, constraint);
    +	}
    +	finally
    +	{
    +		model.endUpdate();
    +	}
    +	
    +	return edge;
    +};
    +
    +/**
    + * Function: changeTerminalPoint
    + * 
    + * Changes the terminal point of the given edge.
    + */
    +mxEdgeHandler.prototype.changeTerminalPoint = function(edge, point, isSource)
    +{
    +	var model = this.graph.getModel();
    +	var geo = model.getGeometry(edge);
    +	
    +	if (geo != null)
    +	{
    +		model.beginUpdate();
    +		try
    +		{
    +			geo = geo.clone();
    +			geo.setTerminalPoint(point, isSource);
    +			model.setGeometry(edge, geo);
    +			this.graph.connectCell(edge, null, isSource, new mxConnectionConstraint());
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: changePoints
    + * 
    + * Changes the control points of the given edge in the graph model.
    + */
    +mxEdgeHandler.prototype.changePoints = function(edge, points)
    +{
    +	var model = this.graph.getModel();
    +	var geo = model.getGeometry(edge);
    +	
    +	if (geo != null)
    +	{
    +		geo = geo.clone();
    +		geo.points = points;
    +		
    +		model.setGeometry(edge, geo);
    +	}
    +};
    +
    +/**
    + * Function: addPoint
    + * 
    + * Adds a control point for the given state and event.
    + */
    +mxEdgeHandler.prototype.addPoint = function(state, evt)
    +{
    +	var geo = this.graph.getCellGeometry(state.cell);
    +	
    +	if (geo != null)
    +	{
    +		geo = geo.clone();
    +		var pt = mxUtils.convertPoint(this.graph.container, mxEvent.getClientX(evt),
    +				mxEvent.getClientY(evt));
    +		var index = mxUtils.findNearestSegment(state, pt.x, pt.y);
    +		var gridEnabled = this.graph.isGridEnabledEvent(evt);
    +		this.convertPoint(pt, gridEnabled);
    +
    +		if (geo.points == null)
    +		{
    +			geo.points = [pt];
    +		}
    +		else
    +		{
    +			geo.points.splice(index, 0, pt);
    +		}
    +		
    +		this.graph.getModel().setGeometry(state.cell, geo);
    +		this.destroy();
    +		this.init();
    +		mxEvent.consume(evt);
    +	}
    +};
    +
    +/**
    + * Function: removePoint
    + * 
    + * Removes the control point at the given index from the given state.
    + */
    +mxEdgeHandler.prototype.removePoint = function(state, index)
    +{
    +	if (index > 0 && index < this.abspoints.length - 1)
    +	{
    +		var geo = this.graph.getCellGeometry(this.state.cell);
    +		
    +		if (geo != null &&
    +			geo.points != null)
    +		{
    +			geo = geo.clone();
    +			geo.points.splice(index - 1, 1);
    +			this.graph.getModel().setGeometry(state.cell, geo);
    +			this.destroy();
    +			this.init();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getHandleFillColor
    + * 
    + * Returns the fillcolor for the handle at the given index.
    + */
    +mxEdgeHandler.prototype.getHandleFillColor = function(index)
    +{
    +	var isSource = index == 0;
    +	var cell = this.state.cell;
    +	var terminal = this.graph.getModel().getTerminal(cell, isSource);
    +	var color = mxConstants.HANDLE_FILLCOLOR;
    +	
    +	if ((terminal != null && !this.graph.isCellDisconnectable(cell, terminal, isSource)) ||
    +		(terminal == null && !this.graph.isTerminalPointMovable(cell, isSource)))
    +	{
    +		color = mxConstants.LOCKED_HANDLE_FILLCOLOR;
    +	}
    +	else if (terminal != null && this.graph.isCellDisconnectable(cell, terminal, isSource))
    +	{
    +		color = mxConstants.CONNECT_HANDLE_FILLCOLOR;
    +	}
    +	
    +	return color;
    +};
    +
    +/**
    + * Function: redraw
    + * 
    + * Redraws the preview, and the bends- and label control points.
    + */
    +mxEdgeHandler.prototype.redraw = function()
    +{
    +	this.abspoints = this.state.absolutePoints.slice();
    +	var cell = this.state.cell;
    +
    +	// Updates the handle for the label position
    +	var s = mxConstants.LABEL_HANDLE_SIZE;
    +	
    +	this.label = new mxPoint(this.state.absoluteOffset.x, this.state.absoluteOffset.y);
    +	this.labelShape.bounds = new mxRectangle(this.label.x - s / 2,
    +		this.label.y - s / 2, s, s);
    +	this.labelShape.redraw();
    +	
    +	// Shows or hides the label handle depending on the label
    +	var lab = this.graph.getLabel(cell);
    +	
    +	if (lab != null && lab.length > 0 && this.graph.isLabelMovable(cell))
    +	{
    +		this.labelShape.node.style.visibility = 'visible';
    +	}
    +	else
    +	{
    +		this.labelShape.node.style.visibility = 'hidden';
    +	}
    +	
    +	if (this.bends != null && this.bends.length > 0)
    +	{
    +		var n = this.abspoints.length - 1;
    +		
    +		var p0 = this.abspoints[0];
    +		var x0 = this.abspoints[0].x;
    +		var y0 = this.abspoints[0].y;
    +		
    +		var b = this.bends[0].bounds;
    +		this.bends[0].bounds = new mxRectangle(x0 - b.width / 2, y0 - b.height / 2, b.width, b.height);
    +		this.bends[0].fill = this.getHandleFillColor(0);
    +		this.bends[0].reconfigure();
    +		this.bends[0].redraw();
    +		
    +		var pe = this.abspoints[n];
    +		var xn = this.abspoints[n].x;
    +		var yn = this.abspoints[n].y;
    +		
    +		var bn = this.bends.length - 1;
    +		b = this.bends[bn].bounds;
    +		this.bends[bn].bounds = new mxRectangle(xn - b.width / 2, yn - b.height / 2, b.width, b.height);
    +		this.bends[bn].fill = this.getHandleFillColor(bn);
    +		this.bends[bn].reconfigure();
    +		this.bends[bn].redraw();
    +
    +		this.redrawInnerBends(p0, pe);
    +	}
    +
    +	this.drawPreview();
    +};
    +
    +/**
    + * Function: redrawInnerBends
    + * 
    + * Updates and redraws the inner bends.
    + * 
    + * Parameters:
    + * 
    + * p0 - <mxPoint> that represents the location of the first point.
    + * pe - <mxPoint> that represents the location of the last point.
    + */
    +mxEdgeHandler.prototype.redrawInnerBends = function(p0, pe)
    +{
    +	var g = this.graph.getModel().getGeometry(this.state.cell);
    +	var pts = g.points;
    +
    +	if (pts != null)
    +	{
    +		if (this.points == null)
    +		{
    +			this.points = [];
    +		}
    +		
    +		for (var i = 1; i < this.bends.length-1; i++)
    +		{
    +			if (this.bends[i] != null)
    +			{
    +				if (this.abspoints[i] != null)
    +				{
    +					var x = this.abspoints[i].x;
    +					var y = this.abspoints[i].y;
    +					
    +					var b = this.bends[i].bounds;
    +					this.bends[i].node.style.visibility = 'visible';
    +					this.bends[i].bounds = new mxRectangle(x - b.width / 2, y - b.height / 2, b.width, b.height);
    +					this.bends[i].redraw();
    +					
    +					this.points[i - 1] = pts[i - 1];
    +				}
    +				else
    +				{
    +					this.bends[i].destroy();
    +					this.bends[i] = null;
    +				}
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: drawPreview
    + * 
    + * Redraws the preview.
    + */
    +mxEdgeHandler.prototype.drawPreview = function()
    +{
    +	if (this.isLabel)
    +	{
    +		var s = mxConstants.LABEL_HANDLE_SIZE;
    +	
    +		var bounds = new mxRectangle(this.label.x - s / 2, this.label.y - s / 2, s, s);
    +		this.labelShape.bounds = bounds;
    +		this.labelShape.redraw();
    +	}
    +	else
    +	{
    +		this.shape.points = this.abspoints;
    +		this.shape.redraw();
    +	}
    +	
    +	// Workaround to force a repaint in AppleWebKit
    +	mxUtils.repaintGraph(this.graph, this.shape.points[this.shape.points.length - 1]);
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes. This does
    + * normally not need to be called as handlers are destroyed automatically
    + * when the corresponding cell is deselected.
    + */
    +mxEdgeHandler.prototype.destroy = function()
    +{
    +	if (this.marker != null)
    +	{
    +		this.marker.destroy();
    +		this.marker = null;
    +	}
    +	
    +	if (this.shape != null)
    +	{
    +		this.shape.destroy();
    +		this.shape = null;
    +	}
    +	
    +	if (this.labelShape != null)
    +	{
    +		this.labelShape.destroy();
    +		this.labelShape = null;
    +	}
    +
    +	if (this.constraintHandler != null)
    +	{
    +		this.constraintHandler.destroy();
    +		this.constraintHandler = null;
    +	}
    +
    +	// Destroy the control points for the bends
    +	if (this.bends != null)
    +	{
    +		for (var i = 0; i < this.bends.length; i++)
    +		{
    +			if (this.bends[i] != null)
    +			{
    +				this.bends[i].destroy();
    +				this.bends[i] = null;
    +			}
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/handler/mxEdgeSegmentHandler.js b/javascript/src/js/handler/mxEdgeSegmentHandler.js
    new file mode 100644
    index 000000000..437389914
    --- /dev/null
    +++ b/javascript/src/js/handler/mxEdgeSegmentHandler.js
    @@ -0,0 +1,281 @@
    +/**
    + * $Id: mxEdgeSegmentHandler.js,v 1.13 2012-03-09 07:42:54 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +function mxEdgeSegmentHandler(state)
    +{
    +	if (state != null)
    +	{
    +		this.state = state;
    +		this.init();
    +	}
    +};
    +
    +/**
    + * Extends mxEdgeHandler.
    + */
    +mxEdgeSegmentHandler.prototype = new mxElbowEdgeHandler();
    +mxEdgeSegmentHandler.prototype.constructor = mxEdgeSegmentHandler;
    +
    +/**
    + * Function: getPreviewPoints
    + * 
    + * Updates the given preview state taking into account the state of the constraint handler.
    + */
    +mxEdgeSegmentHandler.prototype.getPreviewPoints = function(point)
    +{
    +	if (this.isSource || this.isTarget)
    +	{
    +		return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this, arguments);
    +	}
    +	else
    +	{
    +		this.convertPoint(point, false);
    +		var pts = this.state.absolutePoints;
    +		var last = pts[0].clone();
    +		this.convertPoint(last, false);
    +		var result = [];
    +
    +		for (var i = 1; i < pts.length; i++)
    +		{
    +			var pt = pts[i].clone();
    +			this.convertPoint(pt, false);
    +			
    +			if (i == this.index)
    +			{
    +				if (last.x == pt.x)
    +		 		{
    +					last.x = point.x;
    +					pt.x = point.x;
    +		 		}
    +		 		else
    +		 		{
    +		 			last.y = point.y;
    +					pt.y = point.y;
    +		 		}
    +			}
    +			
    +			if (i < pts.length - 1)
    +			{
    +				result.push(pt);
    +			}
    +			
    +			last = pt;
    +		}
    +		
    +		if (result.length == 1)
    +		{
    +			var view = this.state.view;
    +			var source = this.state.getVisibleTerminalState(true);
    +			var target = this.state.getVisibleTerminalState(false);
    +			
    +			if (target != null & source != null)
    +			{
    +				if (mxUtils.contains(target, result[0].x, result[0].y))
    +				{
    +					if (pts[1].y == pts[2].y)
    +					{
    +						result[0].y = view.getRoutingCenterY(source);
    +					}
    +					else
    +					{
    +						result[0].x = view.getRoutingCenterX(source);
    +					}
    +				}
    +				else if (mxUtils.contains(source, result[0].x, result[0].y))
    +				{
    +					if (pts[1].y == pts[0].y)
    +					{
    +						result[0].y = view.getRoutingCenterY(target);
    +					}
    +					else
    +					{
    +						result[0].x = view.getRoutingCenterX(target);
    +					}
    +				}
    +			}
    +		}
    +		else if (result.length == 0)
    +		{
    +			result = [point];
    +		}
    +
    +		return result;
    +	}
    +};
    +
    +/**
    + * Function: createBends
    + * 
    + * Adds custom bends for the center of each segment.
    + */
    +mxEdgeSegmentHandler.prototype.createBends = function()
    +{
    +	var bends = [];
    +	
    +	// Source
    +	var bend = this.createHandleShape(0);
    +
    +	this.initBend(bend);
    +	bend.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE;
    +	mxEvent.redirectMouseEvents(bend.node, this.graph, this.state);
    +	bends.push(bend);
    +	
    +	if (mxClient.IS_TOUCH)
    +	{
    +		bend.node.setAttribute('pointer-events', 'none');
    +	}
    +
    +	var pts = this.state.absolutePoints;
    +
    +	// Waypoints (segment handles)
    +	if (this.graph.isCellBendable(this.state.cell))
    +	{
    +		if (this.points == null)
    +		{
    +			this.points = [];
    +		}
    +		
    +		for (var i = 0; i < pts.length - 1; i++)
    +		{
    +			var bend = this.createVirtualBend();
    +			bends.push(bend);
    +			var horizontal = pts[i].x - pts[i + 1].x == 0;
    +			bend.node.style.cursor = (horizontal) ? 'col-resize' : 'row-resize';
    +			this.points.push(new mxPoint(0,0));
    +			
    +			if (mxClient.IS_TOUCH)
    +			{
    +				bend.node.setAttribute('pointer-events', 'none');
    +			}
    +		}
    +	}
    +
    +	// Target
    +	var bend = this.createHandleShape(pts.length);
    +
    +	this.initBend(bend);
    +	bend.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE;
    +	mxEvent.redirectMouseEvents(bend.node, this.graph, this.state);
    +	bends.push(bend);
    +	
    +	if (mxClient.IS_TOUCH)
    +	{
    +		bend.node.setAttribute('pointer-events', 'none');
    +	}
    +
    +	return bends;
    +};
    +
    +
    +/**
    + * Function: redrawInnerBends
    + * 
    + * Updates the position of the custom bends.
    + */
    +mxEdgeSegmentHandler.prototype.redrawInnerBends = function(p0, pe)
    +{
    +	if (this.graph.isCellBendable(this.state.cell))
    +	{
    +		var s = mxConstants.HANDLE_SIZE;
    +		var pts = this.state.absolutePoints;
    +		
    +		if (pts != null && pts.length > 1)
    +		{
    +			for (var i = 0; i < this.state.absolutePoints.length - 1; i++)
    +			{
    +				if (this.bends[i + 1] != null)
    +				{
    +		 			var p0 = pts[i];
    +	 				var pe = pts[i + 1];
    +			 		var pt = new mxPoint(p0.x + (pe.x - p0.x) / 2, p0.y + (pe.y - p0.y) / 2);
    +			 		this.bends[i+1].bounds = new mxRectangle(pt.x - s / 2, pt.y - s / 2, s, s);
    +				 	this.bends[i+1].reconfigure();
    +				 	this.bends[i+1].redraw();
    +				}
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: connect
    + * 
    + * Calls <refresh> after <mxEdgeHandler.connect>.
    + */
    +mxEdgeSegmentHandler.prototype.connect = function(edge, terminal, isSource, isClone, me)
    +{
    +	mxEdgeHandler.prototype.connect.apply(this, arguments);
    +	this.refresh();
    +};
    +
    +/**
    + * Function: changeTerminalPoint
    + * 
    + * Calls <refresh> after <mxEdgeHandler.changeTerminalPoint>.
    + */
    +mxEdgeSegmentHandler.prototype.changeTerminalPoint = function(edge, point, isSource)
    +{
    +	mxEdgeHandler.prototype.changeTerminalPoint.apply(this, arguments);
    +	this.refresh();
    +};
    +
    +/**
    + * Function: changePoints
    + * 
    + * Changes the points of the given edge to reflect the current state of the handler.
    + */
    +mxEdgeSegmentHandler.prototype.changePoints = function(edge, points)
    +{
    +	points = [];
    +	var pts = this.abspoints;
    +	
    +	if (pts.length > 1)
    +	{
    +		var pt0 = pts[0];
    +		var pt1 = pts[1];
    +		
    +		for (var i = 2; i < pts.length; i++)
    +		{
    +			var pt2 = pts[i];
    +			
    +			if ((Math.round(pt0.x) != Math.round(pt1.x) || 
    +					Math.round(pt1.x) != Math.round(pt2.x)) &&
    +				(Math.round(pt0.y) != Math.round(pt1.y) || 
    +						Math.round(pt1.y) != Math.round(pt2.y)))
    +			{
    +				pt0 = pt1;
    +				pt1 = pt1.clone();
    +				this.convertPoint(pt1, false);
    +				points.push(pt1);
    +			}
    +			
    +			pt1 = pt2;
    +		}
    +	}
    +	
    +	mxElbowEdgeHandler.prototype.changePoints.apply(this, arguments);
    +	this.refresh();
    +};
    +
    +/**
    + * Function: refresh
    + * 
    + * Refreshes the bends of this handler.
    + */
    +mxEdgeSegmentHandler.prototype.refresh = function()
    +{
    +	if (this.bends != null)
    +	{
    +		for (var i = 0; i < this.bends.length; i++)
    +		{
    +			if (this.bends[i] != null)
    +			{
    +				this.bends[i].destroy();
    +				this.bends[i] = null;
    +			}
    +		}
    +		
    +		this.bends = this.createBends();
    +	}
    +};
    diff --git a/javascript/src/js/handler/mxElbowEdgeHandler.js b/javascript/src/js/handler/mxElbowEdgeHandler.js
    new file mode 100644
    index 000000000..85fbb0699
    --- /dev/null
    +++ b/javascript/src/js/handler/mxElbowEdgeHandler.js
    @@ -0,0 +1,248 @@
    +/**
    + * $Id: mxElbowEdgeHandler.js,v 1.43 2012-01-06 13:06:01 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxElbowEdgeHandler
    + *
    + * Graph event handler that reconnects edges and modifies control points and
    + * the edge label location. Uses <mxTerminalMarker> for finding and
    + * highlighting new source and target vertices. This handler is automatically
    + * created in <mxGraph.createHandler>. It extends <mxEdgeHandler>.
    + * 
    + * Constructor: mxEdgeHandler
    + *
    + * Constructs an edge handler for the specified <mxCellState>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> of the cell to be modified.
    + */
    +function mxElbowEdgeHandler(state)
    +{
    +	if (state != null)
    +	{
    +		this.state = state;
    +		this.init();
    +	}
    +};
    +
    +/**
    + * Extends mxEdgeHandler.
    + */
    +mxElbowEdgeHandler.prototype = new mxEdgeHandler();
    +mxElbowEdgeHandler.prototype.constructor = mxElbowEdgeHandler;
    +
    +/**
    + * Specifies if a double click on the middle handle should call
    + * <mxGraph.flipEdge>. Default is true.
    + */
    +mxElbowEdgeHandler.prototype.flipEnabled = true;
    +
    +/**
    + * Variable: doubleClickOrientationResource
    + * 
    + * Specifies the resource key for the tooltip to be displayed on the single
    + * control point for routed edges. If the resource for this key does not
    + * exist then the value is used as the error message. Default is
    + * 'doubleClickOrientation'.
    + */
    +mxElbowEdgeHandler.prototype.doubleClickOrientationResource =
    +	(mxClient.language != 'none') ? 'doubleClickOrientation' : '';
    +
    +/**
    + * Function: createBends
    + * 
    + * Overrides <mxEdgeHandler.createBends> to create custom bends.
    + */
    + mxElbowEdgeHandler.prototype.createBends = function()
    + {
    +	var bends = [];
    +	
    +	// Source
    +	var bend = this.createHandleShape(0);
    +
    +	this.initBend(bend);
    +	bend.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE;
    +	mxEvent.redirectMouseEvents(bend.node, this.graph, this.state);
    +	bends.push(bend);
    +	
    +	if (mxClient.IS_TOUCH)
    +	{
    +		bend.node.setAttribute('pointer-events', 'none');
    +	}
    +
    +	// Virtual
    +	bends.push(this.createVirtualBend());
    +	this.points.push(new mxPoint(0,0));
    +
    +	// Target
    +	bend = this.createHandleShape(2);
    +
    +	this.initBend(bend);
    +	bend.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE;
    +	mxEvent.redirectMouseEvents(bend.node, this.graph, this.state);
    +	bends.push(bend);
    +
    +	if (mxClient.IS_TOUCH)
    +	{
    +		bend.node.setAttribute('pointer-events', 'none');
    +	}
    +	
    +	return bends;
    + };
    +
    +/**
    + * Function: createVirtualBend
    + * 
    + * Creates a virtual bend that supports double clicking and calls
    + * <mxGraph.flipEdge>.
    + */
    +mxElbowEdgeHandler.prototype.createVirtualBend = function()
    +{
    +	var bend = this.createHandleShape();
    +	this.initBend(bend);
    +
    +	var crs = this.getCursorForBend();
    +	bend.node.style.cursor = crs;
    +	
    +	// Double-click changes edge style
    +	var dblClick = mxUtils.bind(this, function(evt)
    +	{
    +		if (!mxEvent.isConsumed(evt) &&
    +			this.flipEnabled)
    +		{
    +			this.graph.flipEdge(this.state.cell, evt);
    +			mxEvent.consume(evt);
    +		}
    +	});
    +	
    +	mxEvent.redirectMouseEvents(bend.node, this.graph, this.state,
    +		null, null, null, dblClick);
    +	
    +	if (!this.graph.isCellBendable(this.state.cell))
    +	{
    +		bend.node.style.visibility = 'hidden';
    +	}
    +
    +	return bend;
    +};
    +
    +/**
    + * Function: getCursorForBend
    + * 
    + * Returns the cursor to be used for the bend.
    + */
    +mxElbowEdgeHandler.prototype.getCursorForBend = function()
    +{
    +	return (this.state.style[mxConstants.STYLE_EDGE] == mxEdgeStyle.TopToBottom ||
    +		this.state.style[mxConstants.STYLE_EDGE] == mxConstants.EDGESTYLE_TOPTOBOTTOM ||
    +		((this.state.style[mxConstants.STYLE_EDGE] == mxEdgeStyle.ElbowConnector ||
    +		this.state.style[mxConstants.STYLE_EDGE] == mxConstants.EDGESTYLE_ELBOW)&&
    +		this.state.style[mxConstants.STYLE_ELBOW] == mxConstants.ELBOW_VERTICAL)) ? 
    +		'row-resize' : 'col-resize';
    +};
    +
    +/**
    + * Function: getTooltipForNode
    + * 
    + * Returns the tooltip for the given node.
    + */
    +mxElbowEdgeHandler.prototype.getTooltipForNode = function(node)
    +{
    +	var tip = null;
    +	
    +	if (this.bends != null &&
    +		this.bends[1] != null &&
    +		(node == this.bends[1].node ||
    +		node.parentNode == this.bends[1].node))
    +	{
    +		tip = this.doubleClickOrientationResource;
    +		tip = mxResources.get(tip) || tip; // translate
    +	}
    +
    +	return tip;
    +};
    +
    +/**
    + * Function: convertPoint
    + * 
    + * Converts the given point in-place from screen to unscaled, untranslated
    + * graph coordinates and applies the grid.
    + * 
    + * Parameters:
    + * 
    + * point - <mxPoint> to be converted.
    + * gridEnabled - Boolean that specifies if the grid should be applied.
    + */
    +mxElbowEdgeHandler.prototype.convertPoint = function(point, gridEnabled)
    +{
    +	var scale = this.graph.getView().getScale();
    +	var tr = this.graph.getView().getTranslate();
    +	var origin = this.state.origin;
    +	
    +	if (gridEnabled)
    +	{
    +		point.x = this.graph.snap(point.x);
    +		point.y = this.graph.snap(point.y);
    +	}
    +	
    +	point.x = Math.round(point.x / scale - tr.x - origin.x);
    +	point.y = Math.round(point.y / scale - tr.y - origin.y);
    +};
    +
    +/**
    + * Function: redrawInnerBends
    + * 
    + * Updates and redraws the inner bends.
    + * 
    + * Parameters:
    + * 
    + * p0 - <mxPoint> that represents the location of the first point.
    + * pe - <mxPoint> that represents the location of the last point.
    + */
    +mxElbowEdgeHandler.prototype.redrawInnerBends = function(p0, pe)
    +{
    +	var g = this.graph.getModel().getGeometry(this.state.cell);
    +	var pts = g.points;
    +
    +	var pt = (pts != null) ? pts[0] : null;
    +	
    +	if (pt == null)
    +	{
    +		pt = new mxPoint(p0.x + (pe.x - p0.x) / 2, p0.y + (pe.y - p0.y) / 2);
    +	}
    +	else
    +	{
    +		pt = new mxPoint(this.graph.getView().scale*(pt.x +
    +				 this.graph.getView().translate.x + this.state.origin.x),
    +				 this.graph.getView().scale*(pt.y + this.graph.getView().translate.y +
    +								 this.state.origin.y));
    +	}
    +
    +	// Makes handle slightly bigger if the yellow  label handle
    +	// exists and intersects this green handle
    +	var b = this.bends[1].bounds;
    +	var w = b.width;
    +	var h = b.height;
    +
    +	if (this.handleImage == null)
    +	{
    +		w = mxConstants.HANDLE_SIZE;
    +		h = mxConstants.HANDLE_SIZE;
    +	}
    +	
    +	var bounds = new mxRectangle(pt.x - w / 2, pt.y - h / 2, w, h);
    +
    +	if (this.handleImage == null && this.labelShape.node.style.visibility != 'hidden' &&
    +		mxUtils.intersects(bounds, this.labelShape.bounds))
    +	{
    +		w += 3;
    +		h += 3;
    +		bounds = new mxRectangle(pt.x - w / 2, pt.y - h / 2, w, h);
    +	}
    +	
    +	this.bends[1].bounds = bounds; 
    +	this.bends[1].reconfigure();
    +	this.bends[1].redraw();
    +};
    diff --git a/javascript/src/js/handler/mxGraphHandler.js b/javascript/src/js/handler/mxGraphHandler.js
    new file mode 100644
    index 000000000..57e27a161
    --- /dev/null
    +++ b/javascript/src/js/handler/mxGraphHandler.js
    @@ -0,0 +1,916 @@
    +/**
    + * $Id: mxGraphHandler.js,v 1.129 2012-04-13 12:53:30 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraphHandler
    + * 
    + * Graph event handler that handles selection. Individual cells are handled
    + * separately using <mxVertexHandler> or one of the edge handlers. These
    + * handlers are created using <mxGraph.createHandler> in
    + * <mxGraphSelectionModel.cellAdded>.
    + * 
    + * To avoid the container to scroll a moved cell into view, set
    + * <scrollAfterMove> to false.
    + * 
    + * Constructor: mxGraphHandler
    + * 
    + * Constructs an event handler that creates handles for the
    + * selection cells.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + */
    +function mxGraphHandler(graph)
    +{
    +	this.graph = graph;
    +	this.graph.addMouseListener(this);
    +	
    +	// Repaints the handler after autoscroll
    +	this.panHandler = mxUtils.bind(this, function()
    +	{
    +		this.updatePreviewShape();
    +	});
    +	
    +	this.graph.addListener(mxEvent.PAN, this.panHandler);
    +};
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxGraphHandler.prototype.graph = null;
    +
    +/**
    + * Variable: maxCells
    + * 
    + * Defines the maximum number of cells to paint subhandles
    + * for. Default is 50 for Firefox and 20 for IE. Set this
    + * to 0 if you want an unlimited number of handles to be
    + * displayed. This is only recommended if the number of
    + * cells in the graph is limited to a small number, eg.
    + * 500.
    + */
    +mxGraphHandler.prototype.maxCells = (mxClient.IS_IE) ? 20 : 50;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxGraphHandler.prototype.enabled = true;
    +
    +/**
    + * Variable: highlightEnabled
    + * 
    + * Specifies if drop targets under the mouse should be enabled. Default is
    + * true.
    + */
    +mxGraphHandler.prototype.highlightEnabled = true;
    +
    +/**
    + * Variable: cloneEnabled
    + * 
    + * Specifies if cloning by control-drag is enabled. Default is true.
    + */
    +mxGraphHandler.prototype.cloneEnabled = true;
    +
    +/**
    + * Variable: moveEnabled
    + * 
    + * Specifies if moving is enabled. Default is true.
    + */
    +mxGraphHandler.prototype.moveEnabled = true;
    +
    +/**
    + * Variable: guidesEnabled
    + * 
    + * Specifies if other cells should be used for snapping the right, center or
    + * left side of the current selection. Default is false.
    + */
    +mxGraphHandler.prototype.guidesEnabled = false;
    +
    +/**
    + * Variable: guide
    + * 
    + * Holds the <mxGuide> instance that is used for alignment.
    + */
    +mxGraphHandler.prototype.guide = null;
    +
    +/**
    + * Variable: currentDx
    + * 
    + * Stores the x-coordinate of the current mouse move.
    + */
    +mxGraphHandler.prototype.currentDx = null;
    +
    +/**
    + * Variable: currentDy
    + * 
    + * Stores the y-coordinate of the current mouse move.
    + */
    +mxGraphHandler.prototype.currentDy = null;
    +
    +/**
    + * Variable: updateCursor
    + * 
    + * Specifies if a move cursor should be shown if the mouse is ove a movable
    + * cell. Default is true.
    + */
    +mxGraphHandler.prototype.updateCursor = true;
    +
    +/**
    + * Variable: selectEnabled
    + * 
    + * Specifies if selecting is enabled. Default is true.
    + */
    +mxGraphHandler.prototype.selectEnabled = true;
    +
    +/**
    + * Variable: removeCellsFromParent
    + * 
    + * Specifies if cells may be moved out of their parents. Default is true.
    + */
    +mxGraphHandler.prototype.removeCellsFromParent = true;
    +
    +/**
    + * Variable: connectOnDrop
    + * 
    + * Specifies if drop events are interpreted as new connections if no other
    + * drop action is defined. Default is false.
    + */
    +mxGraphHandler.prototype.connectOnDrop = false;
    +
    +/**
    + * Variable: scrollOnMove
    + * 
    + * Specifies if the view should be scrolled so that a moved cell is
    + * visible. Default is true.
    + */
    +mxGraphHandler.prototype.scrollOnMove = true;
    +
    +/**
    + * Variable: minimumSize
    + * 
    + * Specifies the minimum number of pixels for the width and height of a
    + * selection border. Default is 6.
    + */
    +mxGraphHandler.prototype.minimumSize = 6;
    +
    +/**
    + * Variable: previewColor
    + * 
    + * Specifies the color of the preview shape. Default is black.
    + */
    +mxGraphHandler.prototype.previewColor = 'black';
    +
    +/**
    + * Variable: htmlPreview
    + * 
    + * Specifies if the graph container should be used for preview. If this is used
    + * then drop target detection relies entirely on <mxGraph.getCellAt> because
    + * the HTML preview does not "let events through". Default is false.
    + */
    +mxGraphHandler.prototype.htmlPreview = false;
    +
    +/**
    + * Variable: shape
    + * 
    + * Reference to the <mxShape> that represents the preview.
    + */
    +mxGraphHandler.prototype.shape = null;
    +
    +/**
    + * Variable: scaleGrid
    + * 
    + * Specifies if the grid should be scaled. Default is false.
    + */
    +mxGraphHandler.prototype.scaleGrid = false;
    +
    +/**
    + * Variable: crisp
    + * 
    + * Specifies if the move preview should be rendered in crisp mode if applicable.
    + * Default is true.
    + */
    +mxGraphHandler.prototype.crisp = true;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns <enabled>.
    + */
    +mxGraphHandler.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Sets <enabled>.
    + */
    +mxGraphHandler.prototype.setEnabled = function(value)
    +{
    +	this.enabled = value;
    +};
    +
    +/**
    + * Function: isCloneEnabled
    + * 
    + * Returns <cloneEnabled>.
    + */
    +mxGraphHandler.prototype.isCloneEnabled = function()
    +{
    +	return this.cloneEnabled;
    +};
    +
    +/**
    + * Function: setCloneEnabled
    + * 
    + * Sets <cloneEnabled>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean that specifies the new clone enabled state.
    + */
    +mxGraphHandler.prototype.setCloneEnabled = function(value)
    +{
    +	this.cloneEnabled = value;
    +};
    +
    +/**
    + * Function: isMoveEnabled
    + * 
    + * Returns <moveEnabled>.
    + */
    +mxGraphHandler.prototype.isMoveEnabled = function()
    +{
    +	return this.moveEnabled;
    +};
    +
    +/**
    + * Function: setMoveEnabled
    + * 
    + * Sets <moveEnabled>.
    + */
    +mxGraphHandler.prototype.setMoveEnabled = function(value)
    +{
    +	this.moveEnabled = value;
    +};
    +
    +/**
    + * Function: isSelectEnabled
    + * 
    + * Returns <selectEnabled>.
    + */
    +mxGraphHandler.prototype.isSelectEnabled = function()
    +{
    +	return this.selectEnabled;
    +};
    +
    +/**
    + * Function: setSelectEnabled
    + * 
    + * Sets <selectEnabled>.
    + */
    +mxGraphHandler.prototype.setSelectEnabled = function(value)
    +{
    +	this.selectEnabled = value;
    +};
    +
    +/**
    + * Function: isRemoveCellsFromParent
    + * 
    + * Returns <removeCellsFromParent>.
    + */
    +mxGraphHandler.prototype.isRemoveCellsFromParent = function()
    +{
    +	return this.removeCellsFromParent;
    +};
    +
    +/**
    + * Function: setRemoveCellsFromParent
    + * 
    + * Sets <removeCellsFromParent>.
    + */
    +mxGraphHandler.prototype.setRemoveCellsFromParent = function(value)
    +{
    +	this.removeCellsFromParent = value;
    +};
    +
    +/**
    + * Function: getInitialCellForEvent
    + * 
    + * Hook to return initial cell for the given event.
    + */
    +mxGraphHandler.prototype.getInitialCellForEvent = function(me)
    +{
    +	return me.getCell();
    +};
    +
    +/**
    + * Function: isDelayedSelection
    + * 
    + * Hook to return true for delayed selections.
    + */
    +mxGraphHandler.prototype.isDelayedSelection = function(cell)
    +{
    +	return this.graph.isCellSelected(cell);
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Handles the event by selecing the given cell and creating a handle for
    + * it. By consuming the event all subsequent events of the gesture are
    + * redirected to this handler.
    + */
    +mxGraphHandler.prototype.mouseDown = function(sender, me)
    +{
    +	if (!me.isConsumed() && this.isEnabled() && this.graph.isEnabled() &&
    +		!this.graph.isForceMarqueeEvent(me.getEvent()) && me.getState() != null)
    +	{
    +		var cell = this.getInitialCellForEvent(me);
    +		this.cell = null;
    +		this.delayedSelection = this.isDelayedSelection(cell);
    +		
    +		if (this.isSelectEnabled() && !this.delayedSelection)
    +		{
    +			this.graph.selectCellForEvent(cell, me.getEvent());
    +		}
    +		
    +		if (this.isMoveEnabled())
    +		{
    +			var model = this.graph.model;
    +			var geo = model.getGeometry(cell);
    +
    +			if (this.graph.isCellMovable(cell) && ((!model.isEdge(cell) || this.graph.getSelectionCount() > 1 ||
    +				(geo.points != null && geo.points.length > 0) || model.getTerminal(cell, true) == null ||
    +				model.getTerminal(cell, false) == null) || this.graph.allowDanglingEdges || 
    +				(this.graph.isCloneEvent(me.getEvent()) && this.graph.isCellsCloneable())))
    +			{
    +				this.start(cell, me.getX(), me.getY());
    +			}
    +			
    +			this.cellWasClicked = true;
    +			
    +			// Workaround for SELECT element not working in Webkit, this blocks moving
    +			// of the cell if the select element is clicked in Safari which is needed
    +			// because Safari doesn't seem to route the subsequent mouseUp event via
    +			// this handler which leads to an inconsistent state (no reset called).
    +			// Same for cellWasClicked which will block clearing the selection when
    +			// clicking the background after clicking on the SELECT element in Safari.
    +			if ((!mxClient.IS_SF && !mxClient.IS_GC) || me.getSource().nodeName != 'SELECT')
    +			{
    +				me.consume();
    +			}
    +			else if (mxClient.IS_SF && me.getSource().nodeName == 'SELECT')
    +			{
    +				this.cellWasClicked = false;
    +				this.first = null;
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getGuideStates
    + * 
    + * Creates an array of cell states which should be used as guides.
    + */
    +mxGraphHandler.prototype.getGuideStates = function()
    +{
    +	var parent = this.graph.getDefaultParent();
    +	var model = this.graph.getModel();
    +	
    +	var filter = mxUtils.bind(this, function(cell)
    +	{
    +		return this.graph.view.getState(cell) != null &&
    +			model.isVertex(cell) &&
    +			model.getGeometry(cell) != null &&
    +			!model.getGeometry(cell).relative;
    +	});
    +	
    +	return this.graph.view.getCellStates(model.filterDescendants(filter, parent));
    +};
    +
    +/**
    + * Function: getCells
    + * 
    + * Returns the cells to be modified by this handler. This implementation
    + * returns all selection cells that are movable, or the given initial cell if
    + * the given cell is not selected and movable. This handles the case of moving
    + * unselectable or unselected cells.
    + * 
    + * Parameters:
    + * 
    + * initialCell - <mxCell> that triggered this handler.
    + */
    +mxGraphHandler.prototype.getCells = function(initialCell)
    +{
    +	if (!this.delayedSelection && this.graph.isCellMovable(initialCell))
    +	{
    +		return [initialCell];
    +	}
    +	else
    +	{
    +		return this.graph.getMovableCells(this.graph.getSelectionCells());
    +	}
    +};
    +
    +/**
    + * Function: getPreviewBounds
    + * 
    + * Returns the <mxRectangle> used as the preview bounds for
    + * moving the given cells.
    + */
    +mxGraphHandler.prototype.getPreviewBounds = function(cells)
    +{
    +	var bounds = this.graph.getView().getBounds(cells);
    +	
    +	if (bounds != null)
    +	{
    +		if (bounds.width < this.minimumSize)
    +		{
    +			var dx = this.minimumSize - bounds.width;
    +			bounds.x -= dx / 2;
    +			bounds.width = this.minimumSize;
    +		}
    +		
    +		if (bounds.height < this.minimumSize)
    +		{
    +			var dy = this.minimumSize - bounds.height;
    +			bounds.y -= dy / 2;
    +			bounds.height = this.minimumSize;
    +		}
    +	}
    +	
    +	return bounds;
    +};
    +
    +/**
    + * Function: createPreviewShape
    + * 
    + * Creates the shape used to draw the preview for the given bounds.
    + */
    +mxGraphHandler.prototype.createPreviewShape = function(bounds)
    +{
    +	var shape = new mxRectangleShape(bounds, null, this.previewColor);
    +	shape.isDashed = true;
    +	shape.crisp = this.crisp;
    +	
    +	if (this.htmlPreview)
    +	{
    +		shape.dialect = mxConstants.DIALECT_STRICTHTML;
    +		shape.init(this.graph.container);
    +	}
    +	else
    +	{
    +		// Makes sure to use either VML or SVG shapes in order to implement
    +		// event-transparency on the background area of the rectangle since
    +		// HTML shapes do not let mouseevents through even when transparent
    +		shape.dialect = (this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +			mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +		shape.init(this.graph.getView().getOverlayPane());
    +		
    +		// Event-transparency
    +		if (shape.dialect == mxConstants.DIALECT_SVG)
    +		{
    +			shape.node.setAttribute('style', 'pointer-events:none;');
    +		}
    +		else
    +		{
    +			shape.node.style.background = '';
    +		}
    +	}
    +	
    +	return shape;
    +};
    +
    +/**
    + * Function: start
    + * 
    + * Starts the handling of the mouse gesture.
    + */
    +mxGraphHandler.prototype.start = function(cell, x, y)
    +{
    +	this.cell = cell;
    +	this.first = mxUtils.convertPoint(this.graph.container, x, y);
    +	this.cells = this.getCells(this.cell);
    +	this.bounds = this.getPreviewBounds(this.cells);
    +
    +	if (this.guidesEnabled)
    +	{
    +		this.guide = new mxGuide(this.graph, this.getGuideStates());
    +	}
    +};
    +
    +/**
    + * Function: useGuidesForEvent
    + * 
    + * Returns true if the guides should be used for the given <mxMouseEvent>.
    + * This implementation returns <mxGuide.isEnabledForEvent>.
    + */
    +mxGraphHandler.prototype.useGuidesForEvent = function(me)
    +{
    +	return (this.guide != null) ? this.guide.isEnabledForEvent(me.getEvent()) : true;
    +};
    +
    +
    +/**
    + * Function: snap
    + * 
    + * Snaps the given vector to the grid and returns the given mxPoint instance.
    + */
    +mxGraphHandler.prototype.snap = function(vector)
    +{
    +	var scale = (this.scaleGrid) ? this.graph.view.scale : 1;
    +	
    +	vector.x = this.graph.snap(vector.x / scale) * scale;
    +	vector.y = this.graph.snap(vector.y / scale) * scale;
    +	
    +	return vector;
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Handles the event by highlighting possible drop targets and updating the
    + * preview.
    + */
    +mxGraphHandler.prototype.mouseMove = function(sender, me)
    +{
    +	var graph = this.graph;
    +	
    +	if (!me.isConsumed() && graph.isMouseDown && this.cell != null &&
    +		this.first != null && this.bounds != null)
    +	{
    +		var point = mxUtils.convertPoint(graph.container, me.getX(), me.getY());
    +		var dx = point.x - this.first.x;
    +		var dy = point.y - this.first.y;
    +		var tol = graph.tolerance;
    +		
    +		if (this.shape!= null || Math.abs(dx) > tol || Math.abs(dy) > tol)
    +		{
    +			// Highlight is used for highlighting drop targets
    +			if (this.highlight == null)
    +			{
    +				this.highlight = new mxCellHighlight(this.graph,
    +					mxConstants.DROP_TARGET_COLOR, 3);
    +			}
    +			
    +			if (this.shape == null)
    +			{
    +				this.shape = this.createPreviewShape(this.bounds);
    +			}
    +			
    +			var gridEnabled = graph.isGridEnabledEvent(me.getEvent());
    +			var hideGuide = true;
    +			
    +			if (this.guide != null && this.useGuidesForEvent(me))
    +			{
    +				var delta = this.guide.move(this.bounds, new mxPoint(dx, dy), gridEnabled);
    +				hideGuide = false;
    +				dx = delta.x;
    +				dy = delta.y;
    +			}
    +			else if (gridEnabled)
    +			{
    +				var trx = graph.getView().translate;
    +				var scale = graph.getView().scale;				
    +				
    +				var tx = this.bounds.x - (graph.snap(this.bounds.x / scale - trx.x) + trx.x) * scale;
    +				var ty = this.bounds.y - (graph.snap(this.bounds.y / scale - trx.y) + trx.y) * scale;
    +				var v = this.snap(new mxPoint(dx, dy));
    +			
    +				dx = v.x - tx;
    +				dy = v.y - ty;
    +			}
    +			
    +			if (this.guide != null && hideGuide)
    +			{
    +				this.guide.hide();
    +			}
    +
    +			// Constrained movement if shift key is pressed
    +			if (graph.isConstrainedEvent(me.getEvent()))
    +			{
    +				if (Math.abs(dx) > Math.abs(dy))
    +				{
    +					dy = 0;
    +				}
    +				else
    +				{
    +					dx = 0;
    +				}
    +			}
    +
    +			this.currentDx = dx;
    +			this.currentDy = dy;
    +			this.updatePreviewShape();
    +
    +			var target = null;
    +			var cell = me.getCell();
    +
    +			if (graph.isDropEnabled() && this.highlightEnabled)
    +			{
    +				// Contains a call to getCellAt to find the cell under the mouse
    +				target = graph.getDropTarget(this.cells, me.getEvent(), cell);
    +			}
    +
    +			// Checks if parent is dropped into child
    +			var parent = target;
    +			var model = graph.getModel();
    +			
    +			while (parent != null && parent != this.cells[0])
    +			{
    +				parent = model.getParent(parent);
    +			}
    +			
    +			var clone = graph.isCloneEvent(me.getEvent()) && graph.isCellsCloneable() && this.isCloneEnabled();
    +			var state = graph.getView().getState(target);
    +			var highlight = false;
    +			
    +			if (state != null && parent == null && (model.getParent(this.cell) != target || clone))
    +			{
    +			    if (this.target != target)
    +			    {
    +				    this.target = target;
    +				    this.setHighlightColor(mxConstants.DROP_TARGET_COLOR);
    +				}
    +			    
    +			    highlight = true;
    +			}
    +			else
    +			{
    +				this.target = null;
    +
    +				if (this.connectOnDrop && cell != null && this.cells.length == 1 &&
    +					graph.getModel().isVertex(cell) && graph.isCellConnectable(cell))
    +				{
    +					state = graph.getView().getState(cell);
    +					
    +					if (state != null)
    +					{
    +						var error = graph.getEdgeValidationError(null, this.cell, cell);
    +						var color = (error == null) ?
    +							mxConstants.VALID_COLOR :
    +							mxConstants.INVALID_CONNECT_TARGET_COLOR;
    +						this.setHighlightColor(color);
    +						highlight = true;
    +					}
    +				}
    +			}
    +			
    +			if (state != null && highlight)
    +			{
    +				this.highlight.highlight(state);
    +			}
    +			else
    +			{
    +				this.highlight.hide();
    +			}
    +		}
    +
    +		me.consume();
    +		
    +		// Cancels the bubbling of events to the container so
    +		// that the droptarget is not reset due to an mouseMove
    +		// fired on the container with no associated state.
    +		mxEvent.consume(me.getEvent());
    +	}
    +	else if ((this.isMoveEnabled() || this.isCloneEnabled()) && this.updateCursor &&
    +		!me.isConsumed() && me.getState() != null && !graph.isMouseDown)
    +	{
    +		var cursor = graph.getCursorForCell(me.getCell());
    +		
    +		if (cursor == null && graph.isEnabled() && graph.isCellMovable(me.getCell()))
    +		{
    +			if (graph.getModel().isEdge(me.getCell()))
    +			{
    +				cursor = mxConstants.CURSOR_MOVABLE_EDGE;
    +			}
    +			else
    +			{
    +				cursor = mxConstants.CURSOR_MOVABLE_VERTEX;
    +			}
    +		}
    +
    +		me.getState().setCursor(cursor);
    +		me.consume();
    +	}
    +};
    +
    +/**
    + * Function: updatePreviewShape
    + * 
    + * Updates the bounds of the preview shape.
    + */
    +mxGraphHandler.prototype.updatePreviewShape = function()
    +{
    +	if (this.shape != null)
    +	{
    +		this.shape.bounds = new mxRectangle(this.bounds.x + this.currentDx - this.graph.panDx,
    +				this.bounds.y + this.currentDy - this.graph.panDy, this.bounds.width, this.bounds.height);
    +		this.shape.redraw();
    +	}
    +};
    +
    +/**
    + * Function: setHighlightColor
    + * 
    + * Sets the color of the rectangle used to highlight drop targets.
    + * 
    + * Parameters:
    + * 
    + * color - String that represents the new highlight color.
    + */
    +mxGraphHandler.prototype.setHighlightColor = function(color)
    +{
    +	if (this.highlight != null)
    +	{
    +		this.highlight.setHighlightColor(color);
    +	}
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Handles the event by applying the changes to the selection cells.
    + */
    +mxGraphHandler.prototype.mouseUp = function(sender, me)
    +{
    +	if (!me.isConsumed())
    +	{
    +		var graph = this.graph;
    +		
    +		if (this.cell != null && this.first != null && this.shape != null &&
    +			this.currentDx != null && this.currentDy != null)
    +		{
    +			var scale = graph.getView().scale;
    +			var clone = graph.isCloneEvent(me.getEvent()) && graph.isCellsCloneable() && this.isCloneEnabled();
    +			var dx = this.currentDx / scale;
    +			var dy = this.currentDy / scale;
    +
    +			var cell = me.getCell();
    +			
    +			if (this.connectOnDrop && this.target == null && cell != null && graph.getModel().isVertex(cell) &&
    +				graph.isCellConnectable(cell) && graph.isEdgeValid(null, this.cell, cell))
    +			{
    +				graph.connectionHandler.connect(this.cell, cell, me.getEvent());
    +			}
    +			else
    +			{
    +				var target = this.target;
    +				
    +				if (graph.isSplitEnabled() && graph.isSplitTarget(target, this.cells, me.getEvent()))
    +				{
    +					graph.splitEdge(target, this.cells, null, dx, dy);
    +				}
    +				else
    +				{
    +					this.moveCells(this.cells, dx, dy, clone, this.target, me.getEvent());
    +				}
    +			}
    +		}
    +		else if (this.isSelectEnabled() && this.delayedSelection && this.cell != null)
    +		{
    +			this.selectDelayed(me);
    +		}
    +	}
    +
    +	// Consumes the event if a cell was initially clicked
    +	if (this.cellWasClicked)
    +	{
    +		me.consume();
    +	}
    +	
    +	this.reset();
    +};
    +
    +/**
    + * Function: selectDelayed
    + * 
    + * Implements the delayed selection for the given mouse event.
    + */
    +mxGraphHandler.prototype.selectDelayed = function(me)
    +{
    +	this.graph.selectCellForEvent(this.cell, me.getEvent());
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets the state of this handler.
    + */
    +mxGraphHandler.prototype.reset = function()
    +{
    +	this.destroyShapes();
    +	this.cellWasClicked = false;
    +	this.delayedSelection = false;
    +	this.currentDx = null;
    +	this.currentDy = null;
    +	this.guides = null;
    +	this.first = null;
    +	this.cell = null;
    +	this.target = null;
    +};
    +
    +/**
    + * Function: shouldRemoveCellsFromParent
    + * 
    + * Returns true if the given cells should be removed from the parent for the specified
    + * mousereleased event.
    + */
    +mxGraphHandler.prototype.shouldRemoveCellsFromParent = function(parent, cells, evt)
    +{
    +	if (this.graph.getModel().isVertex(parent))
    +	{
    +		var pState = this.graph.getView().getState(parent);
    +		var pt = mxUtils.convertPoint(this.graph.container,
    +			mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +		
    +		return pState != null && !mxUtils.contains(pState, pt.x, pt.y);
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: moveCells
    + * 
    + * Moves the given cells by the specified amount.
    + */
    +mxGraphHandler.prototype.moveCells = function(cells, dx, dy, clone, target, evt)
    +{
    +	if (clone)
    +	{
    +		cells = this.graph.getCloneableCells(cells);
    +	}
    +	
    +	// Removes cells from parent
    +	if (target == null && this.isRemoveCellsFromParent() &&
    +		this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell), cells, evt))
    +	{
    +		target = this.graph.getDefaultParent();
    +	}
    +
    +	// Passes all selected cells in order to correctly clone or move into
    +	// the target cell. The method checks for each cell if its movable.
    +	cells = this.graph.moveCells(cells, dx - this.graph.panDx / this.graph.view.scale,
    +			dy - this.graph.panDy / this.graph.view.scale, clone, target, evt);
    +	
    +	if (this.isSelectEnabled() && this.scrollOnMove)
    +	{
    +		this.graph.scrollCellToVisible(cells[0]);
    +	}
    +			
    +	// Selects the new cells if cells have been cloned
    +	if (clone)
    +	{
    +		this.graph.setSelectionCells(cells);
    +	}
    +};
    +
    +/**
    + * Function: destroyShapes
    + * 
    + * Destroy the preview and highlight shapes.
    + */
    +mxGraphHandler.prototype.destroyShapes = function()
    +{
    +	// Destroys the preview dashed rectangle
    +	if (this.shape != null)
    +	{
    +		this.shape.destroy();
    +		this.shape = null;
    +	}
    +	
    +	if (this.guide != null)
    +	{
    +		this.guide.destroy();
    +		this.guide = null;
    +	}
    +	
    +	// Destroys the drop target highlight
    +	if (this.highlight != null)
    +	{
    +		this.highlight.destroy();
    +		this.highlight = null;
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes.
    + */
    +mxGraphHandler.prototype.destroy = function()
    +{
    +	this.graph.removeMouseListener(this);
    +	this.graph.removeListener(this.panHandler);
    +	this.destroyShapes();
    +};
    diff --git a/javascript/src/js/handler/mxKeyHandler.js b/javascript/src/js/handler/mxKeyHandler.js
    new file mode 100644
    index 000000000..cc07e5101
    --- /dev/null
    +++ b/javascript/src/js/handler/mxKeyHandler.js
    @@ -0,0 +1,402 @@
    +/**
    + * $Id: mxKeyHandler.js,v 1.48 2012-03-30 08:30:41 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxKeyHandler
    + *
    + * Event handler that listens to keystroke events. This is not a singleton,
    + * however, it is normally only required once if the target is the document
    + * element (default).
    + * 
    + * This handler installs a key event listener in the topmost DOM node and
    + * processes all events that originate from descandants of <mxGraph.container>
    + * or from the topmost DOM node. The latter means that all unhandled keystrokes
    + * are handled by this object regardless of the focused state of the <graph>.
    + * 
    + * Example:
    + * 
    + * The following example creates a key handler that listens to the delete key
    + * (46) and deletes the selection cells if the graph is enabled.
    + * 
    + * (code)
    + * var keyHandler = new mxKeyHandler(graph);
    + * keyHandler.bindKey(46, function(evt)
    + * {
    + *   if (graph.isEnabled())
    + *   {
    + *     graph.removeCells();
    + *   }
    + * });
    + * (end)
    + * 
    + * Keycodes:
    + * 
    + * See http://tinyurl.com/yp8jgl or http://tinyurl.com/229yqw for a list of
    + * keycodes or install a key event listener into the document element and print
    + * the key codes of the respective events to the console.
    + * 
    + * To support the Command key and the Control key on the Mac, the following
    + * code can be used.
    + *
    + * (code)
    + * keyHandler.getFunction = function(evt)
    + * {
    + *   if (evt != null)
    + *   {
    + *     return (mxEvent.isControlDown(evt) || (mxClient.IS_MAC && evt.metaKey)) ? this.controlKeys[evt.keyCode] : this.normalKeys[evt.keyCode];
    + *   }
    + *   
    + *   return null;
    + * };
    + * (end)
    + * 
    + * Constructor: mxKeyHandler
    + *
    + * Constructs an event handler that executes functions bound to specific
    + * keystrokes.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the associated <mxGraph>.
    + * target - Optional reference to the event target. If null, the document
    + * element is used as the event target, that is, the object where the key
    + * event listener is installed.
    + */
    +function mxKeyHandler(graph, target)
    +{
    +	if (graph != null)
    +	{
    +		this.graph = graph;
    +		this.target = target || document.documentElement;
    +		
    +		// Creates the arrays to map from keycodes to functions
    +		this.normalKeys = [];
    +		this.shiftKeys = [];
    +		this.controlKeys = [];
    +		this.controlShiftKeys = [];
    +
    +		// Installs the keystroke listener in the target
    +		mxEvent.addListener(this.target, "keydown",
    +			mxUtils.bind(this, function(evt)
    +			{
    +				this.keyDown(evt);
    +			})
    +		);
    +		
    +		// Automatically deallocates memory in IE
    +		if (mxClient.IS_IE)
    +		{
    +			mxEvent.addListener(window, 'unload',
    +				mxUtils.bind(this, function()
    +				{
    +					this.destroy();
    +				})
    +			);
    +		}
    +	}
    +};
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the <mxGraph> associated with this handler.
    + */
    +mxKeyHandler.prototype.graph = null;
    +
    +/**
    + * Variable: target
    + * 
    + * Reference to the target DOM, that is, the DOM node where the key event
    + * listeners are installed.
    + */
    +mxKeyHandler.prototype.target = null;
    +
    +/**
    + * Variable: normalKeys
    + * 
    + * Maps from keycodes to functions for non-pressed control keys.
    + */
    +mxKeyHandler.prototype.normalKeys = null;
    +
    +/**
    + * Variable: shiftKeys
    + * 
    + * Maps from keycodes to functions for pressed shift keys.
    + */
    +mxKeyHandler.prototype.shiftKeys = null;
    +
    +/**
    + * Variable: controlKeys
    + * 
    + * Maps from keycodes to functions for pressed control keys.
    + */
    +mxKeyHandler.prototype.controlKeys = null;
    +
    +/**
    + * Variable: controlShiftKeys
    + * 
    + * Maps from keycodes to functions for pressed control and shift keys.
    + */
    +mxKeyHandler.prototype.controlShiftKeys = null;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxKeyHandler.prototype.enabled = true;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation returns
    + * <enabled>.
    + */
    +mxKeyHandler.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling by updating <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxKeyHandler.prototype.setEnabled = function(enabled)
    +{
    +	this.enabled = enabled;
    +};
    +
    +/**
    + * Function: bindKey
    + * 
    + * Binds the specified keycode to the given function. This binding is used
    + * if the control key is not pressed.
    + * 
    + * Parameters:
    + *
    + * code - Integer that specifies the keycode.
    + * funct - JavaScript function that takes the key event as an argument.
    + */
    +mxKeyHandler.prototype.bindKey = function(code, funct)
    +{
    +	this.normalKeys[code] = funct;
    +};
    +
    +/**
    + * Function: bindShiftKey
    + * 
    + * Binds the specified keycode to the given function. This binding is used
    + * if the shift key is pressed.
    + * 
    + * Parameters:
    + *
    + * code - Integer that specifies the keycode.
    + * funct - JavaScript function that takes the key event as an argument.
    + */
    +mxKeyHandler.prototype.bindShiftKey = function(code, funct)
    +{
    +	this.shiftKeys[code] = funct;
    +};
    +
    +/**
    + * Function: bindControlKey
    + * 
    + * Binds the specified keycode to the given function. This binding is used
    + * if the control key is pressed.
    + * 
    + * Parameters:
    + *
    + * code - Integer that specifies the keycode.
    + * funct - JavaScript function that takes the key event as an argument.
    + */
    +mxKeyHandler.prototype.bindControlKey = function(code, funct)
    +{
    +	this.controlKeys[code] = funct;
    +};
    +
    +/**
    + * Function: bindControlShiftKey
    + * 
    + * Binds the specified keycode to the given function. This binding is used
    + * if the control and shift key are pressed.
    + * 
    + * Parameters:
    + *
    + * code - Integer that specifies the keycode.
    + * funct - JavaScript function that takes the key event as an argument.
    + */
    +mxKeyHandler.prototype.bindControlShiftKey = function(code, funct)
    +{
    +	this.controlShiftKeys[code] = funct;
    +};
    +
    +/**
    + * Function: isControlDown
    + * 
    + * Returns true if the control key is pressed. This uses <mxEvent.isControlDown>.
    + * 
    + * Parameters:
    + * 
    + * evt - Key event whose control key pressed state should be returned.
    + */
    +mxKeyHandler.prototype.isControlDown = function(evt)
    +{
    +	return mxEvent.isControlDown(evt);
    +};
    +
    +/**
    + * Function: getFunction
    + * 
    + * Returns the function associated with the given key event or null if no
    + * function is associated with the given event.
    + * 
    + * Parameters:
    + * 
    + * evt - Key event whose associated function should be returned.
    + */
    +mxKeyHandler.prototype.getFunction = function(evt)
    +{
    +	if (evt != null)
    +	{
    +		if (this.isControlDown(evt))
    +		{
    +			if (mxEvent.isShiftDown(evt))
    +			{
    +				return this.controlShiftKeys[evt.keyCode];
    +			}
    +			else
    +			{
    +				return this.controlKeys[evt.keyCode];
    +			}
    +		}
    +		else
    +		{
    +			if (mxEvent.isShiftDown(evt))
    +			{
    +				return this.shiftKeys[evt.keyCode];
    +			}
    +			else
    +			{
    +				return this.normalKeys[evt.keyCode];
    +			}
    +		}
    +	}
    +	
    +	return null;
    +};
    +	
    +/**
    + * Function: isGraphEvent
    + * 
    + * Returns true if the event should be processed by this handler, that is,
    + * if the event source is either the target, one of its direct children, a
    + * descendant of the <mxGraph.container>, or the <mxGraph.cellEditor> of the
    + * <graph>.
    + * 
    + * Parameters:
    + * 
    + * evt - Key event that represents the keystroke.
    + */
    +mxKeyHandler.prototype.isGraphEvent = function(evt)
    +{
    +	var source = mxEvent.getSource(evt);
    +	
    +	// Accepts events from the target object or
    +	// in-place editing inside graph
    +	if ((source == this.target || source.parentNode == this.target) ||
    +		(this.graph.cellEditor != null && source == this.graph.cellEditor.textarea))
    +	{
    +		return true;
    +	}
    +	
    +	// Accepts events from inside the container
    +	var elt = source;
    +	
    +	while (elt != null)
    +	{
    +		if (elt == this.graph.container)
    +		{
    +			return true;
    +		}
    +		
    +		elt = elt.parentNode;
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: keyDown
    + * 
    + * Handles the event by invoking the function bound to the respective
    + * keystroke if <mxGraph.isEnabled>, <isEnabled> and <isGraphEvent> all
    + * return true for the given event and <mxGraph.isEditing> returns false.
    + * If the graph is editing only the <enter> and <escape> cases are handled
    + * by calling the respective hooks.
    + * 
    + * Parameters:
    + * 
    + * evt - Key event that represents the keystroke.
    + */
    +mxKeyHandler.prototype.keyDown = function(evt)
    +{
    +	if (this.graph.isEnabled() && !mxEvent.isConsumed(evt) &&
    +		this.isGraphEvent(evt) && this.isEnabled())
    +	{
    +		// Cancels the editing if escape is pressed
    +		if (evt.keyCode == 27 /* Escape */)
    +		{
    +			this.escape(evt);
    +		}
    +		
    +		// Invokes the function for the keystroke
    +		else if (!this.graph.isEditing())
    +		{
    +			var boundFunction = this.getFunction(evt);
    +			
    +			if (boundFunction != null)
    +			{
    +				boundFunction(evt);
    +				mxEvent.consume(evt);
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: escape
    + * 
    + * Hook to process ESCAPE keystrokes. This implementation invokes
    + * <mxGraph.stopEditing> to cancel the current editing, connecting
    + * and/or other ongoing modifications.
    + * 
    + * Parameters:
    + * 
    + * evt - Key event that represents the keystroke. Possible keycode in this
    + * case is 27 (ESCAPE).
    + */
    +mxKeyHandler.prototype.escape = function(evt)
    +{
    +	if (this.graph.isEscapeEnabled())
    +	{
    +		this.graph.escape(evt);
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its references into the DOM. This does
    + * normally not need to be called, it is called automatically when the
    + * window unloads (in IE).
    + */
    +mxKeyHandler.prototype.destroy = function()
    +{
    +	this.target = null;
    +};
    diff --git a/javascript/src/js/handler/mxPanningHandler.js b/javascript/src/js/handler/mxPanningHandler.js
    new file mode 100644
    index 000000000..8a637e835
    --- /dev/null
    +++ b/javascript/src/js/handler/mxPanningHandler.js
    @@ -0,0 +1,357 @@
    +/**
    + * $Id: mxPanningHandler.js,v 1.78 2012-03-30 12:16:14 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxPanningHandler
    + * 
    + * Event handler that pans and creates popupmenus. To use the left
    + * mousebutton for panning without interfering with cell moving and
    + * resizing, use <isUseLeftButton> and <isIgnoreCell>. For grid size
    + * steps while panning, use <useGrid>. This handler is built-into
    + * <mxGraph.panningHandler> and enabled using <mxGraph.setPanning>.
    + * 
    + * Constructor: mxPanningHandler
    + * 
    + * Constructs an event handler that creates a <mxPopupMenu>
    + * and pans the graph.
    + *
    + * Event: mxEvent.PAN_START
    + *
    + * Fires when the panning handler changes its <active> state to true. The
    + * <code>event</code> property contains the corresponding <mxMouseEvent>.
    + *
    + * Event: mxEvent.PAN
    + *
    + * Fires while handle is processing events. The <code>event</code> property contains
    + * the corresponding <mxMouseEvent>.
    + *
    + * Event: mxEvent.PAN_END
    + *
    + * Fires when the panning handler changes its <active> state to false. The
    + * <code>event</code> property contains the corresponding <mxMouseEvent>.
    + */
    +function mxPanningHandler(graph, factoryMethod)
    +{
    +	if (graph != null)
    +	{
    +		this.graph = graph;
    +		this.factoryMethod = factoryMethod;
    +		this.graph.addMouseListener(this);
    +		this.init();
    +	}
    +};
    +
    +/**
    + * Extends mxPopupMenu.
    + */
    +mxPanningHandler.prototype = new mxPopupMenu();
    +mxPanningHandler.prototype.constructor = mxPanningHandler;
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxPanningHandler.prototype.graph = null;
    +
    +/**
    + * Variable: usePopupTrigger
    + * 
    + * Specifies if the <isPopupTrigger> should also be used for panning. To
    + * avoid conflicts, the panning is only activated if the mouse was moved
    + * more than <mxGraph.tolerance>, otherwise, a single click is assumed
    + * and the popupmenu is displayed. Default is true.
    + */
    +mxPanningHandler.prototype.usePopupTrigger = true;
    +
    +/**
    + * Variable: useLeftButtonForPanning
    + * 
    + * Specifies if panning should be active for the left mouse button.
    + * Setting this to true may conflict with <mxRubberband>. Default is false.
    + */
    +mxPanningHandler.prototype.useLeftButtonForPanning = false;
    +
    +/**
    + * Variable: selectOnPopup
    + * 
    + * Specifies if cells should be selected if a popupmenu is displayed for
    + * them. Default is true.
    + */
    +mxPanningHandler.prototype.selectOnPopup = true;
    +
    +/**
    + * Variable: clearSelectionOnBackground
    + * 
    + * Specifies if cells should be deselected if a popupmenu is displayed for
    + * the diagram background. Default is true.
    + */
    +mxPanningHandler.prototype.clearSelectionOnBackground = true;
    +
    +/**
    + * Variable: ignoreCell
    + * 
    + * Specifies if panning should be active even if there is a cell under the
    + * mousepointer. Default is false.
    + */
    +mxPanningHandler.prototype.ignoreCell = false;
    +
    +/**
    + * Variable: previewEnabled
    + * 
    + * Specifies if the panning should be previewed. Default is true.
    + */
    +mxPanningHandler.prototype.previewEnabled = true;
    +
    +/**
    + * Variable: useGrid
    + * 
    + * Specifies if the panning steps should be aligned to the grid size.
    + * Default is false.
    + */
    +mxPanningHandler.prototype.useGrid = false;
    +
    +/**
    + * Variable: panningEnabled
    + * 
    + * Specifies if panning should be enabled. Default is true.
    + */
    +mxPanningHandler.prototype.panningEnabled = true;
    +
    +/**
    + * Function: isPanningEnabled
    + * 
    + * Returns <panningEnabled>.
    + */
    +mxPanningHandler.prototype.isPanningEnabled = function()
    +{
    +	return this.panningEnabled;
    +};
    +
    +/**
    + * Function: setPanningEnabled
    + * 
    + * Sets <panningEnabled>.
    + */
    +mxPanningHandler.prototype.setPanningEnabled = function(value)
    +{
    +	this.panningEnabled = value;
    +};
    +
    +/**
    + * Function: init
    + * 
    + * Initializes the shapes required for this vertex handler.
    + */
    +mxPanningHandler.prototype.init = function()
    +{
    +	// Supercall
    +	mxPopupMenu.prototype.init.apply(this);
    +
    +	// Hides the tooltip if the mouse is over
    +	// the context menu
    +	mxEvent.addListener(this.div, (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove',
    +		mxUtils.bind(this, function(evt)
    +		{
    +			this.graph.tooltipHandler.hide();
    +		})
    +	);
    +};
    +
    +/**
    + * Function: isPanningTrigger
    + * 
    + * Returns true if the given event is a panning trigger for the optional
    + * given cell. This returns true if control-shift is pressed or if
    + * <usePopupTrigger> is true and the event is a popup trigger.
    + */
    +mxPanningHandler.prototype.isPanningTrigger = function(me)
    +{
    +	var evt = me.getEvent();
    +	
    +	return (this.useLeftButtonForPanning && (this.ignoreCell || me.getState() == null) &&
    +			mxEvent.isLeftMouseButton(evt)) || (mxEvent.isControlDown(evt) &&
    +			mxEvent.isShiftDown(evt)) || (this.usePopupTrigger &&
    +		   	mxEvent.isPopupTrigger(evt));
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Handles the event by initiating the panning. By consuming the event all
    + * subsequent events of the gesture are redirected to this handler.
    + */
    +mxPanningHandler.prototype.mouseDown = function(sender, me)
    +{
    +	if (!me.isConsumed() && this.isEnabled())
    +	{
    +		// Hides the popupmenu if is is being displayed
    +		this.hideMenu();
    +
    +		this.dx0 = -this.graph.container.scrollLeft;
    +		this.dy0 = -this.graph.container.scrollTop;
    +		
    +		// Checks the event triggers to panning and popupmenu
    +		this.popupTrigger = this.isPopupTrigger(me);
    +		this.panningTrigger = this.isPanningEnabled() &&
    +			this.isPanningTrigger(me);
    +
    +		// Stores the location of the trigger event
    +		this.startX = me.getX();
    +		this.startY = me.getY();
    +		
    +		// Displays popup menu on Mac after the mouse was released
    +		if (this.panningTrigger)
    +		{
    +			me.consume();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Handles the event by updating the panning on the graph.
    + */
    +mxPanningHandler.prototype.mouseMove = function(sender, me)
    +{
    +	var dx = me.getX() - this.startX;
    +	var dy = me.getY() - this.startY;
    +	
    +	if (this.active)
    +	{
    +		if (this.previewEnabled)
    +		{
    +			// Applies the grid to the panning steps
    +			if (this.useGrid)
    +			{
    +				dx = this.graph.snap(dx);
    +				dy = this.graph.snap(dy);
    +			}
    +			
    +			this.graph.panGraph(dx + this.dx0, dy + this.dy0);
    +		}
    +
    +		this.fireEvent(new mxEventObject(mxEvent.PAN, 'event', me));
    +		me.consume();
    +	}
    +	else if (this.panningTrigger)
    +	{
    +		var tmp = this.active;
    +
    +		// Panning is activated only if the mouse is moved
    +		// beyond the graph tolerance
    +		this.active = Math.abs(dx) > this.graph.tolerance ||
    +			Math.abs(dy) > this.graph.tolerance;
    +
    +		if (!tmp && this.active)
    +		{
    +			this.fireEvent(new mxEventObject(mxEvent.PAN_START, 'event', me));
    +		}
    +	}
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Handles the event by setting the translation on the view or showing the
    + * popupmenu.
    + */
    +mxPanningHandler.prototype.mouseUp = function(sender, me)
    +{
    +	// Shows popup menu if mouse was not moved
    +	var dx = Math.abs(me.getX() - this.startX);
    +	var dy = Math.abs(me.getY() - this.startY);
    +
    +	if (this.active)
    +	{
    +		if (!this.graph.useScrollbarsForPanning || !mxUtils.hasScrollbars(this.graph.container))
    +		{
    +			dx = me.getX() - this.startX;
    +			dy = me.getY() - this.startY;
    +			
    +			// Applies the grid to the panning steps
    +			if (this.useGrid)
    +			{
    +				dx = this.graph.snap(dx);
    +				dy = this.graph.snap(dy);
    +			}
    +			
    +			var scale = this.graph.getView().scale;
    +			var t = this.graph.getView().translate;
    +			
    +			this.graph.panGraph(0, 0);
    +			this.panGraph(t.x + dx / scale, t.y + dy / scale);
    +		}
    +		
    +		this.active = false;
    +		this.fireEvent(new mxEventObject(mxEvent.PAN_END, 'event', me));
    +		me.consume();
    +	}
    +	else if (this.popupTrigger)
    +	{
    +		if (dx < this.graph.tolerance && dy < this.graph.tolerance)
    +		{
    +			var cell = this.getCellForPopupEvent(me);
    +			
    +			// Selects the cell for which the context menu is being displayed
    +			if (this.graph.isEnabled() && this.selectOnPopup &&
    +				cell != null && !this.graph.isCellSelected(cell))
    +			{
    +				this.graph.setSelectionCell(cell);
    +			}
    +			else if (this.clearSelectionOnBackground && cell == null)
    +			{
    +				this.graph.clearSelection();
    +			}
    +			
    +			// Hides the tooltip if there is one
    +			this.graph.tooltipHandler.hide();
    +			var origin = mxUtils.getScrollOrigin();
    +			var point = new mxPoint(me.getX() + origin.x,
    +				me.getY() + origin.y);
    +			
    +			// Menu is shifted by 1 pixel so that the mouse up event
    +			// is routed via the underlying shape instead of the DIV
    +			this.popup(point.x + 1, point.y + 1, cell, me.getEvent());
    +			me.consume();
    +		}
    +	}
    +	
    +	this.panningTrigger = false;
    +	this.popupTrigger = false;
    +};
    +
    +/**
    + * Function: getCellForPopupEvent
    + * 
    + * Hook to return the cell for the mouse up popup trigger handling.
    + */
    +mxPanningHandler.prototype.getCellForPopupEvent = function(me)
    +{
    +	return me.getCell();
    +};
    +
    +/**
    + * Function: panGraph
    + * 
    + * Pans <graph> by the given amount.
    + */
    +mxPanningHandler.prototype.panGraph = function(dx, dy)
    +{
    +	this.graph.getView().setTranslate(dx, dy);
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes.
    + */
    +mxPanningHandler.prototype.destroy = function()
    +{
    +	this.graph.removeMouseListener(this);
    +	
    +	// Supercall
    +	mxPopupMenu.prototype.destroy.apply(this);
    +};
    diff --git a/javascript/src/js/handler/mxRubberband.js b/javascript/src/js/handler/mxRubberband.js
    new file mode 100644
    index 000000000..f9e718781
    --- /dev/null
    +++ b/javascript/src/js/handler/mxRubberband.js
    @@ -0,0 +1,348 @@
    +/**
    + * $Id: mxRubberband.js,v 1.48 2012-04-13 12:53:30 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxRubberband
    + * 
    + * Event handler that selects rectangular regions. This is not built-into
    + * <mxGraph>. To enable rubberband selection in a graph, use the following code.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var rubberband = new mxRubberband(graph);
    + * (end)
    + * 
    + * Constructor: mxRubberband
    + * 
    + * Constructs an event handler that selects rectangular regions in the graph
    + * using rubberband selection.
    + */
    +function mxRubberband(graph)
    +{
    +	if (graph != null)
    +	{
    +		this.graph = graph;
    +		this.graph.addMouseListener(this);
    +		
    +		// Repaints the marquee after autoscroll
    +		this.panHandler = mxUtils.bind(this, function()
    +		{
    +			this.repaint();
    +		});
    +		
    +		this.graph.addListener(mxEvent.PAN, this.panHandler);
    +
    +		// Automatic deallocation of memory
    +		if (mxClient.IS_IE)
    +		{
    +			mxEvent.addListener(window, 'unload',
    +				mxUtils.bind(this, function()
    +				{
    +					this.destroy();
    +				})
    +			);
    +		}
    +	}
    +};
    +
    +/**
    + * Variable: defaultOpacity
    + * 
    + * Specifies the default opacity to be used for the rubberband div. Default
    + * is 20.
    + */
    +mxRubberband.prototype.defaultOpacity = 20;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxRubberband.prototype.enabled = true;
    +
    +/**
    + * Variable: div
    + * 
    + * Holds the DIV element which is currently visible.
    + */
    +mxRubberband.prototype.div = null;
    +
    +/**
    + * Variable: sharedDiv
    + * 
    + * Holds the DIV element which is used to display the rubberband.
    + */
    +mxRubberband.prototype.sharedDiv = null;
    +
    +/**
    + * Variable: currentX
    + * 
    + * Holds the value of the x argument in the last call to <update>.
    + */
    +mxRubberband.prototype.currentX = 0;
    +
    +/**
    + * Variable: currentY
    + * 
    + * Holds the value of the y argument in the last call to <update>.
    + */
    +mxRubberband.prototype.currentY = 0;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation returns
    + * <enabled>.
    + */
    +mxRubberband.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +		
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation updates
    + * <enabled>.
    + */
    +mxRubberband.prototype.setEnabled = function(enabled)
    +{
    +	this.enabled = enabled;
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Handles the event by initiating a rubberband selection. By consuming the
    + * event all subsequent events of the gesture are redirected to this
    + * handler.
    + */
    +mxRubberband.prototype.mouseDown = function(sender, me)
    +{
    +	if (!me.isConsumed() && this.isEnabled() && this.graph.isEnabled() &&
    +		(this.graph.isForceMarqueeEvent(me.getEvent()) || me.getState() == null))
    +	{
    +		var offset = mxUtils.getOffset(this.graph.container);
    +		var origin = mxUtils.getScrollOrigin(this.graph.container);
    +		origin.x -= offset.x;
    +		origin.y -= offset.y;
    +		this.start(me.getX() + origin.x, me.getY() + origin.y);
    +
    +		// Workaround for rubberband stopping if the mouse leaves the
    +		// graph container in Firefox.
    +		if (mxClient.IS_NS && !mxClient.IS_SF && !mxClient.IS_GC)
    +		{
    +			var container = this.graph.container;
    +			
    +			function createMouseEvent(evt)
    +			{
    +				var me = new mxMouseEvent(evt);
    +				var pt = mxUtils.convertPoint(container, me.getX(), me.getY());
    +				
    +				me.graphX = pt.x;
    +				me.graphY = pt.y;
    +				
    +				return me;
    +			};
    +			
    +			this.dragHandler = mxUtils.bind(this, function(evt)
    +			{
    +				this.mouseMove(this.graph, createMouseEvent(evt));
    +			});
    +
    +			this.dropHandler = mxUtils.bind(this, function(evt)
    +			{
    +				this.mouseUp(this.graph, createMouseEvent(evt));
    +			});
    +
    +			mxEvent.addListener(document, 'mousemove', this.dragHandler);
    +			mxEvent.addListener(document, 'mouseup', this.dropHandler);
    +		}
    +		
    +		// Does not prevent the default for this event so that the
    +		// event processing chain is still executed even if we start
    +		// rubberbanding. This is required eg. in ExtJs to hide the
    +		// current context menu. In mouseMove we'll make sure we're
    +		// not selecting anything while we're rubberbanding.
    +		me.consume(false);
    +	}
    +};
    +
    +/**
    + * Function: start
    + * 
    + * Sets the start point for the rubberband selection.
    + */
    +mxRubberband.prototype.start = function(x, y)
    +{
    +	this.first = new mxPoint(x, y);
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Handles the event by updating therubberband selection.
    + */
    +mxRubberband.prototype.mouseMove = function(sender, me)
    +{
    +	if (!me.isConsumed() && this.first != null)
    +	{
    +		var origin = mxUtils.getScrollOrigin(this.graph.container);
    +		var offset = mxUtils.getOffset(this.graph.container);
    +		origin.x -= offset.x;
    +		origin.y -= offset.y;
    +		var x = me.getX() + origin.x;
    +		var y = me.getY() + origin.y;
    +		var dx = this.first.x - x;
    +		var dy = this.first.y - y;
    +		var tol = this.graph.tolerance;
    +		
    +		if (this.div != null || Math.abs(dx) > tol ||  Math.abs(dy) > tol)
    +		{
    +			if (this.div == null)
    +			{
    +				this.div = this.createShape();
    +			}
    +			
    +			// Clears selection while rubberbanding. This is required because
    +			// the event is not consumed in mouseDown.
    +			mxUtils.clearSelection();
    +			
    +			this.update(x, y);
    +			me.consume();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createShape
    + * 
    + * Creates the rubberband selection shape.
    + */
    +mxRubberband.prototype.createShape = function()
    +{
    +	if (this.sharedDiv == null)
    +	{
    +		this.sharedDiv = document.createElement('div');
    +		this.sharedDiv.className = 'mxRubberband';
    +		mxUtils.setOpacity(this.sharedDiv, this.defaultOpacity);
    +	}
    +
    +	this.graph.container.appendChild(this.sharedDiv);
    +		
    +	return this.sharedDiv;
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Handles the event by selecting the region of the rubberband using
    + * <mxGraph.selectRegion>.
    + */
    +mxRubberband.prototype.mouseUp = function(sender, me)
    +{
    +	var execute = this.div != null;
    +	this.reset();
    +
    +	if (execute)
    +	{
    +		var rect = new mxRectangle(this.x, this.y, this.width, this.height);
    +		this.graph.selectRegion(rect, me.getEvent());
    +		me.consume();
    +	}
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets the state of the rubberband selection.
    + */
    +mxRubberband.prototype.reset = function()
    +{
    +	if (this.div != null)
    +	{
    +		this.div.parentNode.removeChild(this.div);
    +	}
    +
    +	if (this.dragHandler != null)
    +	{
    +		mxEvent.removeListener(document, 'mousemove', this.dragHandler);
    +		this.dragHandler = null;
    +	}
    +	
    +	if (this.dropHandler != null)
    +	{
    +		mxEvent.removeListener(document, 'mouseup', this.dropHandler);
    +		this.dropHandler = null;
    +	}
    +	
    +	this.currentX = 0;
    +	this.currentY = 0;
    +	this.first = null;
    +	this.div = null;
    +};
    +
    +/**
    + * Function: update
    + * 
    + * Sets <currentX> and <currentY> and calls <repaint>.
    + */
    +mxRubberband.prototype.update = function(x, y)
    +{
    +	this.currentX = x;
    +	this.currentY = y;
    +	
    +	this.repaint();
    +};
    +
    +/**
    + * Function: repaint
    + * 
    + * Computes the bounding box and updates the style of the <div>.
    + */
    +mxRubberband.prototype.repaint = function()
    +{
    +	if (this.div != null)
    +	{
    +		var x = this.currentX - this.graph.panDx;
    +		var y = this.currentY - this.graph.panDy;
    +		
    +		this.x = Math.min(this.first.x, x);
    +		this.y = Math.min(this.first.y, y);
    +		this.width = Math.max(this.first.x, x) - this.x;
    +		this.height =  Math.max(this.first.y, y) - this.y;
    +
    +		var dx = (mxClient.IS_VML) ? this.graph.panDx : 0;
    +		var dy = (mxClient.IS_VML) ? this.graph.panDy : 0;
    +		
    +		this.div.style.left = (this.x + dx) + 'px';
    +		this.div.style.top = (this.y + dy) + 'px';
    +		this.div.style.width = Math.max(1, this.width) + 'px';
    +		this.div.style.height = Math.max(1, this.height) + 'px';
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes. This does
    + * normally not need to be called, it is called automatically when the
    + * window unloads.
    + */
    +mxRubberband.prototype.destroy = function()
    +{
    +	if (!this.destroyed)
    +	{
    +		this.destroyed = true;
    +		this.graph.removeMouseListener(this);
    +		this.graph.removeListener(this.panHandler);
    +		this.reset();
    +		
    +		if (this.sharedDiv != null)
    +		{
    +			this.sharedDiv = null;
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/handler/mxSelectionCellsHandler.js b/javascript/src/js/handler/mxSelectionCellsHandler.js
    new file mode 100644
    index 000000000..81c9ab63e
    --- /dev/null
    +++ b/javascript/src/js/handler/mxSelectionCellsHandler.js
    @@ -0,0 +1,240 @@
    +/**
    + * $Id: mxSelectionCellsHandler.js,v 1.3 2012-03-18 19:07:35 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxSelectionCellsHandler
    + * 
    + * An event handler that manages cell handlers and invokes their mouse event
    + * processing functions.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + */
    +function mxSelectionCellsHandler(graph)
    +{
    +	this.graph = graph;
    +	this.handlers = new mxDictionary();
    +	this.graph.addMouseListener(this);
    +	
    +	this.refreshHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		if (this.graph.isEnabled())
    +		{
    +			this.refresh();
    +		}
    +	});
    +	
    +	this.graph.getSelectionModel().addListener(mxEvent.CHANGE, this.refreshHandler);
    +	this.graph.getModel().addListener(mxEvent.CHANGE, this.refreshHandler);
    +	this.graph.getView().addListener(mxEvent.SCALE, this.refreshHandler);
    +	this.graph.getView().addListener(mxEvent.TRANSLATE, this.refreshHandler);
    +	this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE, this.refreshHandler);
    +	this.graph.getView().addListener(mxEvent.DOWN, this.refreshHandler);
    +	this.graph.getView().addListener(mxEvent.UP, this.refreshHandler);
    +};
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxSelectionCellsHandler.prototype.graph = null;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxSelectionCellsHandler.prototype.enabled = true;
    +
    +/**
    + * Variable: refreshHandler
    + * 
    + * Keeps a reference to an event listener for later removal.
    + */
    +mxSelectionCellsHandler.prototype.refreshHandler = null;
    +
    +/**
    + * Variable: maxHandlers
    + * 
    + * Defines the maximum number of handlers to paint individually. Default is 100.
    + */
    +mxSelectionCellsHandler.prototype.maxHandlers = 100;
    +
    +/**
    + * Variable: handlers
    + * 
    + * <mxDictionary> that maps from cells to handlers.
    + */
    +mxSelectionCellsHandler.prototype.handlers = null;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns <enabled>.
    + */
    +mxSelectionCellsHandler.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Sets <enabled>.
    + */
    +mxSelectionCellsHandler.prototype.setEnabled = function(value)
    +{
    +	this.enabled = value;
    +};
    +
    +/**
    + * Function: getHandler
    + * 
    + * Returns the handler for the given cell.
    + */
    +mxSelectionCellsHandler.prototype.getHandler = function(cell)
    +{
    +	return this.handlers.get(cell);
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets all handlers.
    + */
    +mxSelectionCellsHandler.prototype.reset = function()
    +{
    +	this.handlers.visit(function(key, handler)
    +	{
    +		handler.reset.apply(handler);
    +	});
    +};
    +
    +/**
    + * Function: refresh
    + * 
    + * Reloads or updates all handlers.
    + */
    +mxSelectionCellsHandler.prototype.refresh = function()
    +{
    +	// Removes all existing handlers
    +	var oldHandlers = this.handlers;
    +	this.handlers = new mxDictionary();
    +	
    +	// Creates handles for all selection cells
    +	var tmp = this.graph.getSelectionCells();
    +
    +	for (var i = 0; i < tmp.length; i++)
    +	{
    +		var state = this.graph.view.getState(tmp[i]);
    +
    +		if (state != null)
    +		{
    +			var handler = oldHandlers.remove(tmp[i]);
    +
    +			if (handler != null)
    +			{
    +				if (handler.state != state)
    +				{
    +					handler.destroy();
    +					handler = null;
    +				}
    +				else
    +				{
    +					handler.redraw();
    +				}
    +			}
    +			
    +			if (handler == null)
    +			{
    +				handler = this.graph.createHandler(state);
    +			}
    +			
    +			if (handler != null)
    +			{
    +				this.handlers.put(tmp[i], handler);
    +			}
    +		}
    +	}
    +	
    +	// Destroys all unused handlers
    +	oldHandlers.visit(function (key, handler)
    +	{
    +		handler.destroy();
    +	});
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Redirects the given event to the handlers.
    + */
    +mxSelectionCellsHandler.prototype.mouseDown = function(sender, me)
    +{
    +	if (this.graph.isEnabled() && this.isEnabled())
    +	{
    +		var args = [sender, me];
    +
    +		this.handlers.visit(function(key, handler)
    +		{
    +			handler.mouseDown.apply(handler, args);
    +		});
    +	}
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Redirects the given event to the handlers.
    + */
    +mxSelectionCellsHandler.prototype.mouseMove = function(sender, me)
    +{
    +	if (this.graph.isEnabled() && this.isEnabled())
    +	{
    +		var args = [sender, me];
    +
    +		this.handlers.visit(function(key, handler)
    +		{
    +			handler.mouseMove.apply(handler, args);
    +		});
    +	}
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Redirects the given event to the handlers.
    + */
    +mxSelectionCellsHandler.prototype.mouseUp = function(sender, me)
    +{
    +	if (this.graph.isEnabled() && this.isEnabled())
    +	{
    +		var args = [sender, me];
    +
    +		this.handlers.visit(function(key, handler)
    +		{
    +			handler.mouseUp.apply(handler, args);
    +		});
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes.
    + */
    +mxSelectionCellsHandler.prototype.destroy = function()
    +{
    +	this.graph.removeMouseListener(this);
    +	
    +	if (this.refreshHandler != null)
    +	{
    +		this.graph.getSelectionModel().removeListener(this.refreshHandler);
    +		this.graph.getModel().removeListener(this.refreshHandler);
    +		this.graph.getView().removeListener(this.refreshHandler);
    +		this.refreshHandler = null;
    +	}
    +};
    diff --git a/javascript/src/js/handler/mxTooltipHandler.js b/javascript/src/js/handler/mxTooltipHandler.js
    new file mode 100644
    index 000000000..4e34a1309
    --- /dev/null
    +++ b/javascript/src/js/handler/mxTooltipHandler.js
    @@ -0,0 +1,317 @@
    +/**
    + * $Id: mxTooltipHandler.js,v 1.51 2011-03-31 10:11:17 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxTooltipHandler
    + * 
    + * Graph event handler that displays tooltips. <mxGraph.getTooltip> is used to
    + * get the tooltip for a cell or handle. This handler is built-into
    + * <mxGraph.tooltipHandler> and enabled using <mxGraph.setTooltips>.
    + *
    + * Example:
    + * 
    + * (code>
    + * new mxTooltipHandler(graph);
    + * (end)
    + * 
    + * Constructor: mxTooltipHandler
    + * 
    + * Constructs an event handler that displays tooltips with the specified
    + * delay (in milliseconds). If no delay is specified then a default delay
    + * of 500 ms (0.5 sec) is used.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + * delay - Optional delay in milliseconds.
    + */
    +function mxTooltipHandler(graph, delay)
    +{
    +	if (graph != null)
    +	{
    +		this.graph = graph;
    +		this.delay = delay || 500;
    +		this.graph.addMouseListener(this);
    +	}
    +};
    +
    +/**
    + * Variable: zIndex
    + * 
    + * Specifies the zIndex for the tooltip and its shadow. Default is 10005.
    + */
    +mxTooltipHandler.prototype.zIndex = 10005;
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxTooltipHandler.prototype.graph = null;
    +
    +/**
    + * Variable: delay
    + * 
    + * Delay to show the tooltip in milliseconds. Default is 500.
    + */
    +mxTooltipHandler.prototype.delay = null;
    +
    +/**
    + * Variable: hideOnHover
    + * 
    + * Specifies if the tooltip should be hidden if the mouse is moved over the
    + * current cell. Default is false.
    + */
    +mxTooltipHandler.prototype.hideOnHover = false;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxTooltipHandler.prototype.enabled = true;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxTooltipHandler.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + */
    +mxTooltipHandler.prototype.setEnabled = function(enabled)
    +{
    +	this.enabled = enabled;
    +};
    +
    +/**
    + * Function: isHideOnHover
    + * 
    + * Returns <hideOnHover>.
    + */
    +mxTooltipHandler.prototype.isHideOnHover = function()
    +{
    +	return this.hideOnHover;
    +};
    +
    +/**
    + * Function: setHideOnHover
    + * 
    + * Sets <hideOnHover>.
    + */
    +mxTooltipHandler.prototype.setHideOnHover = function(value)
    +{
    +	this.hideOnHover = value;
    +};
    +
    +/**
    + * Function: init
    + * 
    + * Initializes the DOM nodes required for this tooltip handler.
    + */
    +mxTooltipHandler.prototype.init = function()
    +{
    +	if (document.body != null)
    +	{
    +		this.div = document.createElement('div');
    +		this.div.className = 'mxTooltip';
    +		this.div.style.visibility = 'hidden';
    +		this.div.style.zIndex = this.zIndex;
    +
    +		document.body.appendChild(this.div);
    +
    +		mxEvent.addListener(this.div, 'mousedown',
    +			mxUtils.bind(this, function(evt)
    +			{
    +				this.hideTooltip();
    +			})
    +		);
    +	}
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Handles the event by initiating a rubberband selection. By consuming the
    + * event all subsequent events of the gesture are redirected to this
    + * handler.
    + */
    +mxTooltipHandler.prototype.mouseDown = function(sender, me)
    +{
    +	this.reset(me, false);
    +	this.hideTooltip();
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Handles the event by updating the rubberband selection.
    + */
    +mxTooltipHandler.prototype.mouseMove = function(sender, me)
    +{
    +	if (me.getX() != this.lastX || me.getY() != this.lastY)
    +	{
    +		this.reset(me, true);
    +		
    +		if (this.isHideOnHover() || me.getState() != this.state || (me.getSource() != this.node &&
    +			(!this.stateSource || (me.getState() != null && this.stateSource ==
    +			(me.isSource(me.getState().shape) || !me.isSource(me.getState().text))))))
    +		{
    +			this.hideTooltip();
    +		}
    +	}
    +	
    +	this.lastX = me.getX();
    +	this.lastY = me.getY();
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Handles the event by resetting the tooltip timer or hiding the existing
    + * tooltip.
    + */
    +mxTooltipHandler.prototype.mouseUp = function(sender, me)
    +{
    +	this.reset(me, true);
    +	this.hideTooltip();
    +};
    +
    +
    +/**
    + * Function: resetTimer
    + * 
    + * Resets the timer.
    + */
    +mxTooltipHandler.prototype.resetTimer = function()
    +{
    +	if (this.thread != null)
    +	{
    +		window.clearTimeout(this.thread);
    +		this.thread = null;
    +	}
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets and/or restarts the timer to trigger the display of the tooltip.
    + */
    +mxTooltipHandler.prototype.reset = function(me, restart)
    +{
    +	this.resetTimer();
    +	
    +	if (restart && this.isEnabled() && me.getState() != null && (this.div == null ||
    +		this.div.style.visibility == 'hidden'))
    +	{
    +		var state = me.getState();
    +		var node = me.getSource();
    +		var x = me.getX();
    +		var y = me.getY();
    +		var stateSource = me.isSource(state.shape) || me.isSource(state.text);
    +
    +		this.thread = window.setTimeout(mxUtils.bind(this, function()
    +		{
    +			if (!this.graph.isEditing() && !this.graph.panningHandler.isMenuShowing())
    +			{
    +				// Uses information from inside event cause using the event at
    +				// this (delayed) point in time is not possible in IE as it no
    +				// longer contains the required information (member not found)
    +				var tip = this.graph.getTooltip(state, node, x, y);
    +				this.show(tip, x, y);
    +				this.state = state;
    +				this.node = node;
    +				this.stateSource = stateSource;
    +			}
    +		}), this.delay);
    +	}
    +};
    +
    +/**
    + * Function: hide
    + * 
    + * Hides the tooltip and resets the timer.
    + */
    +mxTooltipHandler.prototype.hide = function()
    +{
    +	this.resetTimer();
    +	this.hideTooltip();
    +};
    +
    +/**
    + * Function: hideTooltip
    + * 
    + * Hides the tooltip.
    + */
    +mxTooltipHandler.prototype.hideTooltip = function()
    +{
    +	if (this.div != null)
    +	{
    +		this.div.style.visibility = 'hidden';
    +	}
    +};
    +
    +/**
    + * Function: show
    + * 
    + * Shows the tooltip for the specified cell and optional index at the
    + * specified location (with a vertical offset of 10 pixels).
    + */
    +mxTooltipHandler.prototype.show = function(tip, x, y)
    +{
    +	if (tip != null && tip.length > 0)
    +	{
    +		// Initializes the DOM nodes if required
    +		if (this.div == null)
    +		{
    +			this.init();
    +		}
    +		
    +		var origin = mxUtils.getScrollOrigin();
    +		
    +		this.div.style.left = (x + origin.x) + 'px';
    +		this.div.style.top = (y + mxConstants.TOOLTIP_VERTICAL_OFFSET +
    +			origin.y) + 'px';
    +
    +		if (!mxUtils.isNode(tip))
    +		{	
    +			this.div.innerHTML = tip.replace(/\n/g, '<br>');
    +		}
    +		else
    +		{
    +			this.div.innerHTML = '';
    +			this.div.appendChild(tip);
    +		}
    +		
    +		this.div.style.visibility = '';
    +		mxUtils.fit(this.div);
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes.
    + */
    +mxTooltipHandler.prototype.destroy = function()
    +{
    +	this.graph.removeMouseListener(this);
    +	mxEvent.release(this.div);
    +	
    +	if (this.div != null && this.div.parentNode != null)
    +	{
    +		this.div.parentNode.removeChild(this.div);
    +	}
    +	
    +	this.div = null;
    +};
    diff --git a/javascript/src/js/handler/mxVertexHandler.js b/javascript/src/js/handler/mxVertexHandler.js
    new file mode 100644
    index 000000000..c3f1bb5fb
    --- /dev/null
    +++ b/javascript/src/js/handler/mxVertexHandler.js
    @@ -0,0 +1,723 @@
    +/**
    + * $Id: mxVertexHandler.js,v 1.101 2012-04-13 12:53:30 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxVertexHandler
    + * 
    + * Event handler for resizing cells. This handler is automatically created in
    + * <mxGraph.createHandler>.
    + * 
    + * Constructor: mxVertexHandler
    + * 
    + * Constructs an event handler that allows to resize vertices
    + * and groups.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> of the cell to be resized.
    + */
    +function mxVertexHandler(state)
    +{
    +	if (state != null)
    +	{
    +		this.state = state;
    +		this.init();
    +	}
    +};
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxVertexHandler.prototype.graph = null;
    +
    +/**
    + * Variable: state
    + * 
    + * Reference to the <mxCellState> being modified.
    + */
    +mxVertexHandler.prototype.state = null;
    +
    +/**
    + * Variable: singleSizer
    + * 
    + * Specifies if only one sizer handle at the bottom, right corner should be
    + * used. Default is false.
    + */
    +mxVertexHandler.prototype.singleSizer = false;
    +
    +/**
    + * Variable: index
    + * 
    + * Holds the index of the current handle.
    + */
    +mxVertexHandler.prototype.index = null;
    +
    +/**
    + * Variable: allowHandleBoundsCheck
    + * 
    + * Specifies if the bounds of handles should be used for hit-detection in IE
    + * Default is true.
    + */
    +mxVertexHandler.prototype.allowHandleBoundsCheck = true;
    +
    +/**
    + * Variable: crisp
    + * 
    + * Specifies if the selection bounds and handles should be rendered in crisp
    + * mode. Default is true.
    + */
    +mxVertexHandler.prototype.crisp = true;
    +
    +/**
    + * Variable: handleImage
    + * 
    + * Optional <mxImage> to be used as handles. Default is null.
    + */
    +mxVertexHandler.prototype.handleImage = null;
    +
    +/**
    + * Variable: tolerance
    + * 
    + * Optional tolerance for hit-detection in <getHandleForEvent>. Default is 0.
    + */
    +mxVertexHandler.prototype.tolerance = 0;
    +
    +/**
    + * Function: init
    + * 
    + * Initializes the shapes required for this vertex handler.
    + */
    +mxVertexHandler.prototype.init = function()
    +{
    +	this.graph = this.state.view.graph;
    +	this.bounds = this.getSelectionBounds(this.state);
    +	this.selectionBorder = this.createSelectionShape(this.bounds);
    +	this.selectionBorder.dialect =
    +		(this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +		mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +	this.selectionBorder.init(this.graph.getView().getOverlayPane());
    +
    +	// Event-transparency
    +	if (this.selectionBorder.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		this.selectionBorder.node.setAttribute('pointer-events', 'none');
    +	}
    +	else
    +	{
    +		this.selectionBorder.node.style.background = '';
    +	}
    +	
    +	if (this.graph.isCellMovable(this.state.cell))
    +	{
    +		this.selectionBorder.node.style.cursor = mxConstants.CURSOR_MOVABLE_VERTEX;
    +	}
    +
    +	mxEvent.redirectMouseEvents(this.selectionBorder.node, this.graph, this.state);
    +	
    +	// Adds the sizer handles
    +	if (mxGraphHandler.prototype.maxCells <= 0 ||
    +		this.graph.getSelectionCount() < mxGraphHandler.prototype.maxCells)
    +	{
    +		var resizable = this.graph.isCellResizable(this.state.cell);
    +		this.sizers = [];
    +
    +		if (resizable || (this.graph.isLabelMovable(this.state.cell) &&
    +			this.state.width >= 2 && this.state.height >= 2))
    +		{
    +			var i = 0;
    +			
    +			if (resizable)
    +			{
    +				if (!this.singleSizer)
    +				{
    +					this.sizers.push(this.createSizer('nw-resize', i++));
    +					this.sizers.push(this.createSizer('n-resize', i++));
    +					this.sizers.push(this.createSizer('ne-resize', i++));
    +					this.sizers.push(this.createSizer('w-resize', i++));
    +					this.sizers.push(this.createSizer('e-resize', i++));
    +					this.sizers.push(this.createSizer('sw-resize', i++));
    +					this.sizers.push(this.createSizer('s-resize', i++));
    +				}
    +				
    +				this.sizers.push(this.createSizer('se-resize', i++));
    +			}
    +			
    +			var geo = this.graph.model.getGeometry(this.state.cell);
    +			
    +			if (geo != null && !geo.relative && !this.graph.isSwimlane(this.state.cell) &&
    +				this.graph.isLabelMovable(this.state.cell))
    +			{
    +				// Marks this as the label handle for getHandleForEvent
    +				this.labelShape = this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,
    +						mxEvent.LABEL_HANDLE, mxConstants.LABEL_HANDLE_SIZE,
    +						mxConstants.LABEL_HANDLE_FILLCOLOR);
    +				this.sizers.push(this.labelShape);
    +			}
    +		}
    +		else if (this.graph.isCellMovable(this.state.cell) && !this.graph.isCellResizable(this.state.cell) &&
    +			this.state.width < 2 && this.state.height < 2)
    +		{
    +			this.labelShape = this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,
    +				null, null, mxConstants.LABEL_HANDLE_FILLCOLOR);
    +			this.sizers.push(this.labelShape);
    +		}
    +	}
    +
    +	this.redraw();
    +};
    +
    +/**
    + * Function: getSelectionBounds
    + * 
    + * Returns the mxRectangle that defines the bounds of the selection
    + * border.
    + */
    +mxVertexHandler.prototype.getSelectionBounds = function(state)
    +{
    +	return new mxRectangle(state.x, state.y, state.width, state.height);
    +};
    +
    +/**
    + * Function: createSelectionShape
    + * 
    + * Creates the shape used to draw the selection border.
    + */
    +mxVertexHandler.prototype.createSelectionShape = function(bounds)
    +{
    +	var shape = new mxRectangleShape(bounds, null, this.getSelectionColor());
    +	shape.strokewidth = this.getSelectionStrokeWidth();
    +	shape.isDashed =  this.isSelectionDashed();
    +	shape.crisp = this.crisp;
    +	
    +	return shape;
    +};
    +
    +/**
    + * Function: getSelectionColor
    + * 
    + * Returns <mxConstants.VERTEX_SELECTION_COLOR>.
    + */
    +mxVertexHandler.prototype.getSelectionColor = function()
    +{
    +	return mxConstants.VERTEX_SELECTION_COLOR;
    +};
    +
    +/**
    + * Function: getSelectionStrokeWidth
    + * 
    + * Returns <mxConstants.VERTEX_SELECTION_STROKEWIDTH>.
    + */
    +mxVertexHandler.prototype.getSelectionStrokeWidth = function()
    +{
    +	return mxConstants.VERTEX_SELECTION_STROKEWIDTH;
    +};
    +
    +/**
    + * Function: isSelectionDashed
    + * 
    + * Returns <mxConstants.VERTEX_SELECTION_DASHED>.
    + */
    +mxVertexHandler.prototype.isSelectionDashed = function()
    +{
    +	return mxConstants.VERTEX_SELECTION_DASHED;
    +};
    +
    +/**
    + * Function: createSizer
    + * 
    + * Creates a sizer handle for the specified cursor and index and returns
    + * the new <mxRectangleShape> that represents the handle.
    + */
    +mxVertexHandler.prototype.createSizer = function(cursor, index, size, fillColor)
    +{
    +	size = size || mxConstants.HANDLE_SIZE;
    +	
    +	var bounds = new mxRectangle(0, 0, size, size);
    +	var sizer = this.createSizerShape(bounds, index, fillColor);
    +
    +	if (this.state.text != null && this.state.text.node.parentNode == this.graph.container)
    +	{
    +		sizer.bounds.height -= 1;
    +		sizer.bounds.width -= 1;
    +		sizer.dialect = mxConstants.DIALECT_STRICTHTML;
    +		sizer.init(this.graph.container);
    +	}
    +	else
    +	{
    +		sizer.dialect = (this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +				mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +		sizer.init(this.graph.getView().getOverlayPane());
    +	}
    +	
    +	sizer.node.style.cursor = cursor;
    +	mxEvent.redirectMouseEvents(sizer.node, this.graph, this.state);
    +	
    +	if (!this.isSizerVisible(index))
    +	{
    +		sizer.node.style.visibility = 'hidden';
    +	}
    +	
    +	return sizer;
    +};
    +
    +/**
    + * Function: isSizerVisible
    + * 
    + * Returns true if the sizer for the given index is visible.
    + * This returns true for all given indices.
    + */
    +mxVertexHandler.prototype.isSizerVisible = function(index)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: createSizerShape
    + * 
    + * Creates the shape used for the sizer handle for the specified bounds and
    + * index.
    + */
    +mxVertexHandler.prototype.createSizerShape = function(bounds, index, fillColor)
    +{
    +	if (true && this.handleImage != null)
    +	{
    +		bounds.width = this.handleImage.width;
    +		bounds.height = this.handleImage.height;
    +		
    +		return new mxImageShape(bounds, this.handleImage.src);
    +	}
    +	else
    +	{
    +		var shape = new mxRectangleShape(bounds,
    +				fillColor || mxConstants.HANDLE_FILLCOLOR,
    +				mxConstants.HANDLE_STROKECOLOR);
    +		shape.crisp = this.crisp;
    +		
    +		return shape;
    +	}
    +};
    +
    +/**
    + * Function: createBounds
    + * 
    + * Helper method to create an <mxRectangle> around the given centerpoint
    + * with a width and height of 2*s or 6, if no s is given.
    + */
    +mxVertexHandler.prototype.moveSizerTo = function(shape, x, y)
    +{
    +	if (shape != null)
    +	{
    +		shape.bounds.x = x - shape.bounds.width / 2;
    +		shape.bounds.y = y - shape.bounds.height / 2;
    +		shape.redraw();
    +	}
    +};
    +
    +/**
    + * Function: getHandleForEvent
    + * 
    + * Returns the index of the handle for the given event. This returns the index
    + * of the sizer from where the event originated or <mxEvent.LABEL_INDEX>.
    + */
    +mxVertexHandler.prototype.getHandleForEvent = function(me)
    +{
    +	if (me.isSource(this.labelShape))
    +	{
    +		return mxEvent.LABEL_HANDLE;
    +	}
    +	
    +	if (this.sizers != null)
    +	{
    +		// Connection highlight may consume events before they reach sizer handle
    +		var tol = this.tolerance;
    +		var hit = (this.allowHandleBoundsCheck && (mxClient.IS_IE || tol > 0)) ?
    +			new mxRectangle(me.getGraphX() - tol, me.getGraphY() - tol, 2 * tol, 2 * tol) : null;
    +
    +		for (var i = 0; i < this.sizers.length; i++)
    +		{
    +			if (me.isSource(this.sizers[i]) || (hit != null &&
    +				this.sizers[i].node.style.visibility != 'hidden' &&
    +				mxUtils.intersects(this.sizers[i].bounds, hit)))
    +			{
    +				return i;
    +			}
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Handles the event if a handle has been clicked. By consuming the
    + * event all subsequent events of the gesture are redirected to this
    + * handler.
    + */
    +mxVertexHandler.prototype.mouseDown = function(sender, me)
    +{
    +	if (!me.isConsumed() && this.graph.isEnabled() && !this.graph.isForceMarqueeEvent(me.getEvent()) &&
    +		(this.tolerance > 0 || me.getState() == this.state))
    +	{
    +		var handle = this.getHandleForEvent(me);
    +
    +		if (handle != null)
    +		{
    +			this.start(me.getX(), me.getY(), handle);
    +			me.consume();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: start
    + * 
    + * Starts the handling of the mouse gesture.
    + */
    +mxVertexHandler.prototype.start = function(x, y, index)
    +{
    +	var pt = mxUtils.convertPoint(this.graph.container, x, y);
    +	this.startX = pt.x;
    +	this.startY = pt.y;
    +	this.index = index;
    +	
    +	// Creates a preview that can be on top of any HTML label
    +	this.selectionBorder.node.style.visibility = 'hidden';
    +	this.preview = this.createSelectionShape(this.bounds);
    +	
    +	if (this.state.text != null && this.state.text.node.parentNode == this.graph.container)
    +	{
    +		this.preview.dialect = mxConstants.DIALECT_STRICTHTML;
    +		this.preview.init(this.graph.container);
    +	}
    +	else
    +	{
    +		this.preview.dialect = (this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +			mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +		this.preview.init(this.graph.view.getOverlayPane());
    +	}
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Handles the event by updating the preview.
    + */
    +mxVertexHandler.prototype.mouseMove = function(sender, me)
    +{
    +	if (!me.isConsumed() && this.index != null)
    +	{
    +		var point = new mxPoint(me.getGraphX(), me.getGraphY());
    +		var gridEnabled = this.graph.isGridEnabledEvent(me.getEvent());
    +		var scale = this.graph.getView().scale;
    +		
    +		if (this.index == mxEvent.LABEL_HANDLE)
    +		{
    +			if (gridEnabled)
    +			{
    +				point.x = this.graph.snap(point.x / scale) * scale;
    +				point.y = this.graph.snap(point.y / scale) * scale;
    +			}
    +
    +			this.moveSizerTo(this.sizers[this.sizers.length - 1], point.x, point.y);
    +			me.consume();
    +		}
    +		else if (this.index != null)
    +		{
    +			var dx = point.x - this.startX;
    +			var dy = point.y - this.startY;
    +			var tr = this.graph.view.translate;
    +			this.bounds = this.union(this.state, dx, dy, this.index, gridEnabled, scale, tr);
    +			this.drawPreview();
    +			me.consume();
    +		}
    +	}
    +	// Workaround for disabling the connect highlight when over handle
    +	else if (this.getHandleForEvent(me) != null)
    +	{
    +		me.consume(false);
    +	}
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Handles the event by applying the changes to the geometry.
    + */
    +mxVertexHandler.prototype.mouseUp = function(sender, me)
    +{
    +	if (!me.isConsumed() && this.index != null && this.state != null)
    +	{
    +		var point = new mxPoint(me.getGraphX(), me.getGraphY());
    +		var scale = this.graph.getView().scale;
    +
    +		var gridEnabled = this.graph.isGridEnabledEvent(me.getEvent());
    +		var dx = (point.x - this.startX) / scale;
    +		var dy = (point.y - this.startY) / scale;
    +
    +		this.resizeCell(this.state.cell, dx, dy, this.index, gridEnabled);
    +		this.reset();
    +		me.consume();
    +	}
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets the state of this handler.
    + */
    +mxVertexHandler.prototype.reset = function()
    +{
    +	this.index = null;
    +	
    +	if (this.preview != null)
    +	{
    +		this.preview.destroy();
    +		this.preview = null;
    +	}
    +	
    +	// Checks if handler has been destroyed
    +	if (this.selectionBorder != null)
    +	{
    +		this.selectionBorder.node.style.visibility = 'visible';
    +		this.bounds = new mxRectangle(this.state.x, this.state.y, this.state.width, this.state.height);
    +		this.drawPreview();
    +	}
    +};
    +
    +/**
    + * Function: resizeCell
    + * 
    + * Uses the given vector to change the bounds of the given cell
    + * in the graph using <mxGraph.resizeCell>.
    + */
    +mxVertexHandler.prototype.resizeCell = function(cell, dx, dy, index, gridEnabled)
    +{
    +	var geo = this.graph.model.getGeometry(cell);
    +	
    +	if (index == mxEvent.LABEL_HANDLE)
    +	{
    +		var scale = this.graph.view.scale;
    +		dx = (this.labelShape.bounds.getCenterX() - this.startX) / scale;
    +		dy = (this.labelShape.bounds.getCenterY() - this.startY) / scale;
    +		
    +		geo = geo.clone();
    +		
    +		if (geo.offset == null)
    +		{
    +			geo.offset = new mxPoint(dx, dy);
    +		}
    +		else
    +		{
    +			geo.offset.x += dx;
    +			geo.offset.y += dy;
    +		}
    +		
    +		this.graph.model.setGeometry(cell, geo);
    +	}
    +	else
    +	{
    +		var bounds = this.union(geo, dx, dy, index, gridEnabled, 1, new mxPoint(0, 0));
    +		this.graph.resizeCell(cell, bounds);	
    +	}
    +};
    +
    +/**
    + * Function: union
    + * 
    + * Returns the union of the given bounds and location for the specified
    + * handle index.
    + */
    +mxVertexHandler.prototype.union = function(bounds, dx, dy, index, gridEnabled, scale, tr)
    +{
    +	if (this.singleSizer)
    +	{
    +		var x = bounds.x + bounds.width + dx;
    +		var y = bounds.y + bounds.height + dy;
    +		
    +		if (gridEnabled)
    +		{
    +			x = this.graph.snap(x / scale) * scale;
    +			y = this.graph.snap(y / scale) * scale;
    +		}
    +		
    +		var rect = new mxRectangle(bounds.x, bounds.y, 0, 0);
    +		rect.add(new mxRectangle(x, y, 0, 0));
    +		
    +		return rect;
    +	}
    +	else
    +	{
    +		var left = bounds.x - tr.x * scale;
    +		var right = left + bounds.width;
    +		var top = bounds.y - tr.y * scale;
    +		var bottom = top + bounds.height;
    +		
    +		if (index > 4 /* Bottom Row */)
    +		{
    +			bottom = bottom + dy;
    +			
    +			if (gridEnabled)
    +			{
    +				bottom = this.graph.snap(bottom / scale) * scale;
    +			}
    +		}
    +		else if (index < 3 /* Top Row */)
    +		{
    +			top = top + dy;
    +			
    +			if (gridEnabled)
    +			{
    +				top = this.graph.snap(top / scale) * scale;
    +			}
    +		}
    +		
    +		if (index == 0 || index == 3 || index == 5 /* Left */)
    +		{
    +			left += dx;
    +			
    +			if (gridEnabled)
    +			{
    +				left = this.graph.snap(left / scale) * scale;
    +			}
    +		}
    +		else if (index == 2 || index == 4 || index == 7 /* Right */)
    +		{
    +			right += dx;
    +			
    +			if (gridEnabled)
    +			{
    +				right = this.graph.snap(right / scale) * scale;
    +			}
    +		}
    +		
    +		var width = right - left;
    +		var height = bottom - top;
    +		
    +		// Flips over left side
    +		if (width < 0)
    +		{
    +			left += width;
    +			width = Math.abs(width);
    +		}
    +		
    +		// Flips over top side
    +		if (height < 0)
    +		{
    +			top += height;
    +			height = Math.abs(height);
    +		}
    +		
    +		return new mxRectangle(left + tr.x * scale, top + tr.y * scale, width, height);
    +	}
    +};
    +
    +/**
    + * Function: redraw
    + * 
    + * Redraws the handles and the preview.
    + */
    +mxVertexHandler.prototype.redraw = function()
    +{
    +	this.bounds = new mxRectangle(
    +		this.state.x, this.state.y,
    +		this.state.width, this.state.height);
    +
    +	if (this.sizers != null)
    +	{
    +		var s = this.state;
    +		var r = s.x + s.width;
    +		var b = s.y + s.height;
    +		
    +		if (this.singleSizer)
    +		{
    +			this.moveSizerTo(this.sizers[0], r, b);
    +		}
    +		else
    +		{
    +			var cx = s.x + s.width / 2;
    +			var cy = s.y + s.height / 2;
    +			
    +			if (this.sizers.length > 1)
    +			{
    +				this.moveSizerTo(this.sizers[0], s.x, s.y);
    +				this.moveSizerTo(this.sizers[1], cx, s.y);
    +				this.moveSizerTo(this.sizers[2], r, s.y);
    +				this.moveSizerTo(this.sizers[3], s.x, cy);
    +				this.moveSizerTo(this.sizers[4], r, cy);
    +				this.moveSizerTo(this.sizers[5], s.x, b);
    +				this.moveSizerTo(this.sizers[6], cx, b);
    +				this.moveSizerTo(this.sizers[7], r, b);
    +				this.moveSizerTo(this.sizers[8],
    +					cx + s.absoluteOffset.x,
    +					cy + s.absoluteOffset.y);
    +			}
    +			else if (this.state.width >= 2 && this.state.height >= 2)
    +			{
    +				this.moveSizerTo(this.sizers[0],
    +						cx + s.absoluteOffset.x,
    +						cy + s.absoluteOffset.y);
    +			}
    +			else
    +			{
    +				this.moveSizerTo(this.sizers[0], s.x, s.y);
    +			}
    +		}
    +	}
    +
    +	this.drawPreview();
    +};
    +
    +/**
    + * Function: drawPreview
    + * 
    + * Redraws the preview.
    + */
    +mxVertexHandler.prototype.drawPreview = function()
    +{
    +	if  (this.preview != null)
    +	{
    +		this.preview.bounds = this.bounds;
    +		
    +		if (this.preview.node.parentNode == this.graph.container)
    +		{
    +			this.preview.bounds.width = Math.max(0, this.preview.bounds.width - 1);
    +			this.preview.bounds.height = Math.max(0, this.preview.bounds.height - 1);
    +		}
    +		
    +		this.preview.redraw();
    +	}
    +	
    +	this.selectionBorder.bounds = this.bounds;
    +	this.selectionBorder.redraw();
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes.
    + */
    +mxVertexHandler.prototype.destroy = function()
    +{
    +	if (this.preview != null)
    +	{
    +		this.preview.destroy();
    +		this.preview = null;
    +	}
    +	
    +	this.selectionBorder.destroy();
    +	this.selectionBorder = null;
    +	this.labelShape = null;
    +	
    +	if (this.sizers != null)
    +	{
    +		for (var i = 0; i < this.sizers.length; i++)
    +		{
    +			this.sizers[i].destroy();
    +			this.sizers[i] = null;
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/index.txt b/javascript/src/js/index.txt
    new file mode 100644
    index 000000000..f3631d6a0
    --- /dev/null
    +++ b/javascript/src/js/index.txt
    @@ -0,0 +1,316 @@
    +Document: API Specification
    +
    +Overview:
    +
    +  This JavaScript library is divided into 8 packages. The top-level <mxClient>
    +  class includes (or dynamically imports) everything else. The current version
    +  is stored in <mxClient.VERSION>.
    +
    +  The *editor* package provides the classes required to implement a diagram
    +  editor. The main class in this package is <mxEditor>.
    +  
    +  The *view* and *model* packages implement the graph component, represented
    +  by <mxGraph>. It refers to a <mxGraphModel> which contains <mxCell>s and
    +  caches the state of the cells in a <mxGraphView>. The cells are painted
    +  using a <mxCellRenderer> based on the appearance defined in <mxStylesheet>.
    +  Undo history is implemented in <mxUndoManager>. To display an icon on the
    +  graph, <mxCellOverlay> may be used. Validation rules are defined with
    +  <mxMultiplicity>.
    +  
    +  The *handler*, *layout* and *shape* packages contain event listeners,
    +  layout algorithms and shapes, respectively. The graph event listeners
    +  include <mxRubberband> for rubberband selection, <mxTooltipHandler>
    +  for tooltips and <mxGraphHandler> for  basic cell modifications.
    +  <mxCompactTreeLayout> implements a tree layout algorithm, and the 
    +  shape package provides various shapes, which are subclasses of
    +  <mxShape>.
    +  
    +  The *util* package provides utility classes including <mxClipboard> for
    +  copy-paste, <mxDatatransfer> for drag-and-drop, <mxConstants> for keys and
    +  values of stylesheets, <mxEvent> and <mxUtils> for cross-browser
    +  event-handling and general purpose functions, <mxResources> for
    +  internationalization and <mxLog> for console output.
    +
    +  The *io* package implements a generic <mxObjectCodec> for turning
    +  JavaScript objects into XML. The main class is <mxCodec>.
    +  <mxCodecRegistry> is the global registry for custom codecs.
    +  
    +Events:
    +
    +  There are three different types of events, namely native DOM events,
    +  <mxEventObjects> which are fired in an <mxEventSource>, and <mxMouseEvents>
    +  which are fired in <mxGraph>.
    +
    +  Some helper methods for handling native events are provided in <mxEvent>. It
    +  also takes care of resolving cycles between DOM nodes and JavaScript event
    +  handlers, which can lead to memory leaks in IE6.
    +  
    +  Most custom events in mxGraph are implemented using <mxEventSource>. Its
    +  listeners are functions that take a sender and <mxEventObject>. Additionally,
    +  the <mxGraph> class fires special <mxMouseEvents> which are handled using
    +  mouse listeners, which are objects that provide a mousedown, mousemove and
    +  mouseup method.
    +  
    +  Events in <mxEventSource> are fired using <mxEventSource.fireEvent>.
    +  Listeners are added and removed using <mxEventSource.addListener> and
    +  <mxEventSource.removeListener>. <mxMouseEvents> in <mxGraph> are fired using
    +  <mxGraph.fireMouseEvent>. Listeners are added and removed using
    +  <mxGraph.addMouseListener> and <mxGraph.removeMouseListener>, respectively.
    +  
    +Key bindings:
    +  
    +  The following key bindings are defined for mouse events in the client across
    +  all browsers and platforms:
    +  
    +  - Control-Drag: Duplicates (clones) selected cells
    +  - Shift-Rightlick: Shows the context menu
    +  - Alt-Click: Forces rubberband (aka. marquee)
    +  - Control-Select: Toggles the selection state
    +  - Shift-Drag: Constrains the offset to one direction
    +  - Shift-Control-Drag: Panning (also Shift-Rightdrag)
    +  
    +Configuration:
    +
    +  The following global variables may be defined before the client is loaded to
    +  specify its language or base path, respectively.
    +  
    +  - mxBasePath: Specifies the path in <mxClient.basePath>.
    +  - mxImageBasePath: Specifies the path in <mxClient.imageBasePath>.
    +  - mxLanguage: Specifies the language for resources in <mxClient.language>.
    +  - mxDefaultLanguage: Specifies the default language in <mxClient.defaultLanguage>.
    +  - mxLoadResources: Specifies if any resources should be loaded. Default is true.
    +  - mxLoadStylesheets: Specifies if any stylesheets should be loaded. Default is true.
    +
    +Reserved Words:
    +
    +  The mx prefix is used for all classes and objects in mxGraph. The mx prefix
    +  can be seen as the global namespace for all JavaScript code in mxGraph. The
    +  following fieldnames should not be used in objects.
    +  
    +  - *mxObjectId*: If the object is used with mxObjectIdentity
    +  - *as*: If the object is a field of another object
    +  - *id*: If the object is an idref in a codec
    +  - *mxListenerList*: Added to DOM nodes when used with <mxEvent>
    +  - *window._mxDynamicCode*: Temporarily used to load code in Safari and Chrome
    +  (see <mxClient.include>).
    +  - *_mxJavaScriptExpression*: Global variable that is temporarily used to
    +  evaluate code in Safari, Opera, Firefox 3 and IE (see <mxUtils.eval>).
    +
    +Files:
    +
    +  The library contains these relative filenames. All filenames are relative
    +  to <mxClient.basePath>.
    +  
    +Built-in Images:
    +  
    +  All images are loaded from the <mxClient.imageBasePath>, 
    +  which you can change to reflect your environment. The image variables can 
    +  also be changed individually.
    +  
    +  - mxGraph.prototype.collapsedImage
    +  - mxGraph.prototype.expandedImage
    +  - mxGraph.prototype.warningImage
    +  - mxWindow.prototype.closeImage
    +  - mxWindow.prototype.minimizeImage
    +  - mxWindow.prototype.normalizeImage
    +  - mxWindow.prototype.maximizeImage
    +  - mxWindow.prototype.resizeImage
    +  - mxPopupMenu.prototype.submenuImage
    +  - mxUtils.errorImage
    +  - mxConstraintHandler.prototype.pointImage
    +
    +  The basename of the warning image (images/warning without extension) used in 
    +  <mxGraph.setCellWarning> is defined in <mxGraph.warningImage>.
    +
    +Resources:
    +  
    +  The <mxEditor> and <mxGraph> classes add the following resources to
    +  <mxResources> at class loading time:
    +
    +  - resources/editor*.properties
    +  - resources/graph*.properties
    +  
    +  By default, the library ships with English and German resource files.
    +
    +Images:
    +
    +  Recommendations for using images. Use GIF images (256 color palette) in HTML
    +  elements (such as the toolbar and context menu), and PNG images (24 bit) for
    +  all images which appear inside the graph component.
    +  
    +  - For PNG images inside HTML elements, Internet Explorer will ignore any 
    +    transparency information.
    +  - For GIF images inside the graph, Firefox on the Mac will display strange 
    +    colors. Furthermore, only the first image for animated GIFs is displayed 
    +    on the Mac.
    +    
    +  For faster image rendering during application runtime, images can be
    +  prefetched using the following code:
    +  
    +  (code)
    +  var image = new Image();
    +  image.src = url_to_image;
    +  (end)
    +
    +Deployment:
    +
    +  The client is added to the page using the following script tag inside the
    +  head of a document:
    +
    +  (code)
    +  <script type="text/javascript" src="js/mxClient.js"></script>
    +  (end)
    +
    +  The deployment version of the mxClient.js file contains all required code
    +  in a single file. For deployment, the complete javascript/src directory is
    +  required.
    +  
    +Source Code:
    +
    +  If you are a source code customer and you wish to develop using the 
    +  full source code, the commented source code is shipped in the 
    +  javascript/devel/source.zip file. It contains one file for each class 
    +  in mxGraph. To use the source code the source.zip file must be 
    +  uncompressed and the mxClient.js URL in the HTML  page must be changed 
    +  to reference the uncompressed mxClient.js from the source.zip file.
    +
    +Compression:
    + 
    +  When using Apache2 with mod_deflate, you can use the following directive
    +  in src/js/.htaccess to speedup the loading of the JavaScript sources:
    +  
    +  (code)
    +  SetOutputFilter DEFLATE
    +  (end)
    +
    +Classes:
    +  
    +  There are two types of "classes" in mxGraph: classes and singletons (where
    +  only one instance exists). Singletons are mapped to global objects where the
    +  variable name equals the classname. For example mxConstants is an object with
    +  all the constants defined as object fields. Normal classes are mapped to a
    +  constructor function and a prototype which defines the instance fields and
    +  methods. For example, <mxEditor> is a function and mxEditor.prototype is the
    +  prototype for the object that the mxEditor function creates. The mx prefix is
    +  a convention that is used for all classes in the mxGraph package to avoid
    +  conflicts with other objects in the global namespace.
    +
    +Subclassing:
    +
    +  For subclassing, the superclass must provide a constructor that is either
    +  parameterless or handles an invocation with no arguments. Furthermore, the
    +  special constructor field must be redefined after extending the prototype.
    +  For example, the superclass of mxEditor is <mxEventSource>. This is
    +  represented in JavaScript by first "inheriting" all fields and methods from
    +  the superclass by assigning the prototype to an instance of the superclass,
    +  eg. mxEditor.prototype = new mxEventSource() and redefining the constructor
    +  field using mxEditor.prototype.constructor = mxEditor. The latter rule is
    +  applied so that the type of an object can be retrieved via the name of it’s
    +  constructor using mxUtils.getFunctionName(obj.constructor).
    +
    +Constructor:
    +
    +  For subclassing in mxGraph, the same scheme should be applied. For example,
    +  for subclassing the <mxGraph> class, first a constructor must be defined for
    +  the new class. The constructor calls the super constructor with any arguments
    +  that it may have using the call function on the mxGraph function object,
    +  passing along explitely each argument:
    +
    +  (code)
    +  function MyGraph(container)
    +  {
    +    mxGraph.call(this, container);
    +  }
    +  (end)
    +  
    +  The prototype of MyGraph inherits from mxGraph as follows. As usual, the
    +  constructor is redefined after extending the superclass:
    +
    +  (code)
    +  MyGraph.prototype = new mxGraph();
    +  MyGraph.prototype.constructor = MyGraph;
    +  (end)
    +  
    +  You may want to define the codec associated for the class after the above
    +  code. This code will be executed at class loading time and makes sure the
    +  same codec is used to encode instances of mxGraph and MyGraph.
    +
    +  (code)
    +  var codec = mxCodecRegistry.getCodec(mxGraph);
    +  codec.template = new MyGraph();
    +  mxCodecRegistry.register(codec);
    +  (end)
    +  
    +Functions:
    +
    +  In the prototype for MyGraph, functions of mxGraph can then be extended as
    +  follows.
    +  
    +  (code)
    +  MyGraph.prototype.isCellSelectable = function(cell)
    +  {
    +    var selectable = mxGraph.prototype.isSelectable.apply(this, arguments);
    +
    +    var geo = this.model.getGeometry(cell);
    +    return selectable && (geo == null || !geo.relative);
    +  }
    +  (end)
    +  
    +  The supercall in the first line is optional. It is done using the apply
    +  function on the isSelectable function object of the mxGraph prototype, using
    +  the special this and arguments variables as parameters. Calls to the
    +  superclass function are only possible if the function is not replaced in the
    +  superclass as follows, which is another way of “subclassing” in JavaScript.
    +
    +  (code)
    +  mxGraph.prototype.isCellSelectable = function(cell)
    +  {
    +    var geo = this.model.getGeometry(cell);
    +    return selectable &&
    +        (geo == null ||
    +        !geo.relative);
    +  }
    +  (end)
    +
    +  The above scheme is useful if a function definition needs to be replaced
    +  completely.
    +  
    +  In order to add new functions and fields to the subclass, the following code
    +  is used. The example below adds a new function to return the XML
    +  representation of the graph model:
    +
    +  (code)
    +  MyGraph.prototype.getXml = function()
    +  {
    +    var enc = new mxCodec();
    +    return enc.encode(this.getModel());
    +  }
    +  (end)
    +  
    +Variables:
    +
    +  Likewise, a new field is declared and defined as follows.
    +
    +  (code)
    +  MyGraph.prototype.myField = 'Hello, World!';
    +  (end)
    +  
    +  Note that the value assigned to myField is created only once, that is, all
    +  instances of MyGraph share the same value. If you require instance-specific
    +  values, then the field must be defined in the constructor instead.
    +
    +  (code)
    +  function MyGraph(container)
    +  {
    +    mxGraph.call(this, container);
    +    
    +    this.myField = new Array();
    +  }
    +  (end)
    +
    +  Finally, a new instance of MyGraph is created using the following code, where
    +  container is a DOM node that acts as a container for the graph view:
    +
    +  (code)
    +  var graph = new MyGraph(container);
    +  (end)
    diff --git a/javascript/src/js/io/mxCellCodec.js b/javascript/src/js/io/mxCellCodec.js
    new file mode 100644
    index 000000000..cbcd6511e
    --- /dev/null
    +++ b/javascript/src/js/io/mxCellCodec.js
    @@ -0,0 +1,170 @@
    +/**
    + * $Id: mxCellCodec.js,v 1.22 2010-10-21 07:12:31 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxCellCodec
    +	 *
    +	 * Codec for <mxCell>s. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec>
    +	 * and the <mxCodecRegistry>.
    +	 *
    +	 * Transient Fields:
    +	 *
    +	 * - children
    +	 * - edges
    +	 * - overlays
    +	 * - mxTransient
    +	 *
    +	 * Reference Fields:
    +	 *
    +	 * - parent
    +	 * - source
    +	 * - target
    +	 * 
    +	 * Transient fields can be added using the following code:
    +	 * 
    +	 * mxCodecRegistry.getCodec(mxCell).exclude.push('name_of_field');
    +	 */
    +	var codec = new mxObjectCodec(new mxCell(),
    +		['children', 'edges', 'overlays', 'mxTransient'],
    +		['parent', 'source', 'target']);
    +
    +	/**
    +	 * Function: isCellCodec
    +	 *
    +	 * Returns true since this is a cell codec.
    +	 */
    +	codec.isCellCodec = function()
    +	{
    +		return true;
    +	};
    +
    +	/**
    +	 * Function: isExcluded
    +	 *
    +	 * Excludes user objects that are XML nodes.
    +	 */ 
    +	codec.isExcluded = function(obj, attr, value, isWrite)
    +	{
    +		return mxObjectCodec.prototype.isExcluded.apply(this, arguments) ||
    +			(isWrite && attr == 'value' &&
    +			value.nodeType == mxConstants.NODETYPE_ELEMENT);
    +	};
    +	
    +	/**
    +	 * Function: afterEncode
    +	 *
    +	 * Encodes an <mxCell> and wraps the XML up inside the
    +	 * XML of the user object (inversion).
    +	 */
    +	codec.afterEncode = function(enc, obj, node)
    +	{
    +		if (obj.value != null &&
    +			obj.value.nodeType == mxConstants.NODETYPE_ELEMENT)
    +		{
    +			// Wraps the graphical annotation up in the user object (inversion)
    +			// by putting the result of the default encoding into a clone of the
    +			// user object (node type 1) and returning this cloned user object.
    +			var tmp = node;
    +			node = (mxClient.IS_IE) ?
    +				obj.value.cloneNode(true) :
    +				enc.document.importNode(obj.value, true);
    +			node.appendChild(tmp);
    +			
    +			// Moves the id attribute to the outermost XML node, namely the
    +			// node which denotes the object boundaries in the file.
    +			var id = tmp.getAttribute('id');
    +			node.setAttribute('id', id);
    +			tmp.removeAttribute('id');
    +		}
    +
    +		return node;
    +	};
    +
    +	/**
    +	 * Function: beforeDecode
    +	 *
    +	 * Decodes an <mxCell> and uses the enclosing XML node as
    +	 * the user object for the cell (inversion).
    +	 */
    +	codec.beforeDecode = function(dec, node, obj)
    +	{
    +		var inner = node;
    +		var classname = this.getName();
    +		
    +		if (node.nodeName != classname)
    +		{
    +			// Passes the inner graphical annotation node to the
    +			// object codec for further processing of the cell.
    +			var tmp = node.getElementsByTagName(classname)[0];
    +			
    +			if (tmp != null &&
    +				tmp.parentNode == node)
    +			{
    +				mxUtils.removeWhitespace(tmp, true);
    +				mxUtils.removeWhitespace(tmp, false);
    +				tmp.parentNode.removeChild(tmp);
    +				inner = tmp;
    +			}
    +			else
    +			{
    +				inner = null;
    +			}
    +			
    +			// Creates the user object out of the XML node
    +			obj.value = node.cloneNode(true);
    +			var id = obj.value.getAttribute('id');
    +			
    +			if (id != null)
    +			{
    +				obj.setId(id);
    +				obj.value.removeAttribute('id');
    +			}
    +		}
    +		else
    +		{
    +			// Uses ID from XML file as ID for cell in model
    +			obj.setId(node.getAttribute('id'));
    +		}
    +			
    +		// Preprocesses and removes all Id-references in order to use the
    +		// correct encoder (this) for the known references to cells (all).
    +		if (inner != null)
    +		{
    +			for (var i = 0; i < this.idrefs.length; i++)
    +			{
    +				var attr = this.idrefs[i];
    +				var ref = inner.getAttribute(attr);
    +				
    +				if (ref != null)
    +				{
    +					inner.removeAttribute(attr);
    +					var object = dec.objects[ref] || dec.lookup(ref);
    +					
    +					if (object == null)
    +					{
    +						// Needs to decode forward reference
    +						var element = dec.getElementById(ref);
    +						
    +						if (element != null)
    +						{
    +							var decoder = mxCodecRegistry.codecs[element.nodeName] || this;
    +							object = decoder.decode(dec, element);
    +						}
    +					}
    +					
    +					obj[attr] = object;
    +				}
    +			}
    +		}
    +		
    +		return inner;
    +	};
    +
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxChildChangeCodec.js b/javascript/src/js/io/mxChildChangeCodec.js
    new file mode 100644
    index 000000000..deeb57b70
    --- /dev/null
    +++ b/javascript/src/js/io/mxChildChangeCodec.js
    @@ -0,0 +1,149 @@
    +/**
    + * $Id: mxChildChangeCodec.js,v 1.12 2010-09-15 14:38:52 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxChildChangeCodec
    +	 *
    +	 * Codec for <mxChildChange>s. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec> and
    +	 * the <mxCodecRegistry>.
    +	 *
    +	 * Transient Fields:
    +	 *
    +	 * - model
    +	 * - previous
    +	 * - previousIndex
    +	 * - child
    +	 *
    +	 * Reference Fields:
    +	 *
    +	 * - parent
    +	 */
    +	var codec = new mxObjectCodec(new mxChildChange(),
    +		['model', 'child', 'previousIndex'],
    +		['parent', 'previous']);
    +
    +	/**
    +	 * Function: isReference
    +	 *
    +	 * Returns true for the child attribute if the child
    +	 * cell had a previous parent or if we're reading the
    +	 * child as an attribute rather than a child node, in
    +	 * which case it's always a reference.
    +	 */
    +	codec.isReference = function(obj, attr, value, isWrite)
    +	{
    +		if (attr == 'child' &&
    +			(obj.previous != null ||
    +			!isWrite))
    +		{
    +			return true;
    +		}
    +		
    +		return mxUtils.indexOf(this.idrefs, attr) >= 0;
    +	};
    +
    +	/**
    +	 * Function: afterEncode
    +	 *
    +	 * Encodes the child recusively and adds the result
    +	 * to the given node.
    +	 */
    +	codec.afterEncode = function(enc, obj, node)
    +	{
    +		if (this.isReference(obj, 'child',  obj.child, true))
    +		{
    +			// Encodes as reference (id)
    +			node.setAttribute('child', enc.getId(obj.child));
    +		}
    +		else
    +		{
    +			// At this point, the encoder is no longer able to know which cells
    +			// are new, so we have to encode the complete cell hierarchy and
    +			// ignore the ones that are already there at decoding time. Note:
    +			// This can only be resolved by moving the notify event into the
    +			// execute of the edit.
    +			enc.encodeCell(obj.child, node);
    +		}
    +		
    +		return node;
    +	};
    +
    +	/**
    +	 * Function: beforeDecode
    +	 *
    +	 * Decodes the any child nodes as using the respective
    +	 * codec from the registry.
    +	 */
    +	codec.beforeDecode = function(dec, node, obj)
    +	{
    +		if (node.firstChild != null &&
    +			node.firstChild.nodeType == mxConstants.NODETYPE_ELEMENT)
    +		{
    +			// Makes sure the original node isn't modified
    +			node = node.cloneNode(true);
    +			
    +			var tmp = node.firstChild;
    +			obj.child = dec.decodeCell(tmp, false);
    +
    +			var tmp2 = tmp.nextSibling;
    +			tmp.parentNode.removeChild(tmp);
    +			tmp = tmp2;
    +			
    +			while (tmp != null)
    +			{
    +				tmp2 = tmp.nextSibling;
    +				
    +				if (tmp.nodeType == mxConstants.NODETYPE_ELEMENT)
    +				{
    +					// Ignores all existing cells because those do not need to
    +					// be re-inserted into the model. Since the encoded version
    +					// of these cells contains the new parent, this would leave
    +					// to an inconsistent state on the model (ie. a parent
    +					// change without a call to parentForCellChanged).
    +					var id = tmp.getAttribute('id');
    +					
    +					if (dec.lookup(id) == null)
    +					{
    +						dec.decodeCell(tmp);
    +					}
    +				}
    +				
    +				tmp.parentNode.removeChild(tmp);
    +				tmp = tmp2;
    +			}
    +		}
    +		else
    +		{
    +			var childRef = node.getAttribute('child');
    +			obj.child = dec.getObject(childRef);
    +		}
    +		
    +		return node;
    +	};
    +	
    +	/**
    +	 * Function: afterDecode
    +	 *
    +	 * Restores object state in the child change.
    +	 */
    +	codec.afterDecode = function(dec, node, obj)
    +	{
    +		// Cells are encoded here after a complete transaction so the previous
    +		// parent must be restored on the cell for the case where the cell was
    +		// added. This is needed for the local model to identify the cell as a
    +		// new cell and register the ID.
    +		obj.child.parent = obj.previous;
    +		obj.previous = obj.parent;
    +		obj.previousIndex = obj.index;
    +
    +		return obj;
    +	};
    +
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxCodec.js b/javascript/src/js/io/mxCodec.js
    new file mode 100644
    index 000000000..b8bfc6aff
    --- /dev/null
    +++ b/javascript/src/js/io/mxCodec.js
    @@ -0,0 +1,531 @@
    +/**
    + * $Id: mxCodec.js,v 1.48 2012-01-04 10:01:16 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCodec
    + *
    + * XML codec for JavaScript object graphs. See <mxObjectCodec> for a
    + * description of the general encoding/decoding scheme. This class uses the
    + * codecs registered in <mxCodecRegistry> for encoding/decoding each object.
    + * 
    + * References:
    + * 
    + * In order to resolve references, especially forward references, the mxCodec
    + * constructor must be given the document that contains the referenced
    + * elements.
    + *
    + * Examples:
    + *
    + * The following code is used to encode a graph model.
    + *
    + * (code)
    + * var encoder = new mxCodec();
    + * var result = encoder.encode(graph.getModel());
    + * var xml = mxUtils.getXml(result);
    + * (end)
    + * 
    + * Example:
    + * 
    + * Using the following code, the selection cells of a graph are encoded and the
    + * output is displayed in a dialog box.
    + * 
    + * (code)
    + * var enc = new mxCodec();
    + * var cells = graph.getSelectionCells();
    + * mxUtils.alert(mxUtils.getPrettyXml(enc.encode(cells)));
    + * (end)
    + * 
    + * Newlines in the XML can be coverted to <br>, in which case a '<br>' argument
    + * must be passed to <mxUtils.getXml> as the second argument.
    + * 
    + * Example:
    + * 
    + * Using the code below, an XML document is decodec into an existing model. The
    + * document may be obtained using one of the functions in mxUtils for loading
    + * an XML file, eg. <mxUtils.get>, or using <mxUtils.parseXml> for parsing an
    + * XML string.
    + * 
    + * (code)
    + * var decoder = new mxCodec(doc)
    + * decoder.decode(doc.documentElement, graph.getModel());
    + * (end)
    + * 
    + * Debugging:
    + * 
    + * For debugging i/o you can use the following code to get the sequence of
    + * encoded objects:
    + * 
    + * (code)
    + * var oldEncode = mxCodec.prototype.encode;
    + * mxCodec.prototype.encode = function(obj)
    + * {
    + *   mxLog.show();
    + *   mxLog.debug('mxCodec.encode: obj='+mxUtils.getFunctionName(obj.constructor));
    + *   
    + *   return oldEncode.apply(this, arguments);
    + * };
    + * (end)
    + * 
    + * Constructor: mxCodec
    + *
    + * Constructs an XML encoder/decoder for the specified
    + * owner document.
    + *
    + * Parameters:
    + *
    + * document - Optional XML document that contains the data.
    + * If no document is specified then a new document is created
    + * using <mxUtils.createXmlDocument>.
    + */
    +function mxCodec(document)
    +{
    +	this.document = document || mxUtils.createXmlDocument();
    +	this.objects = [];
    +};
    +
    +/**
    + * Variable: document
    + *
    + * The owner document of the codec.
    + */
    +mxCodec.prototype.document = null;
    +
    +/**
    + * Variable: objects
    + *
    + * Maps from IDs to objects.
    + */
    +mxCodec.prototype.objects = null;
    +
    +/**
    + * Variable: encodeDefaults
    + *
    + * Specifies if default values should be encoded. Default is false.
    + */
    +mxCodec.prototype.encodeDefaults = false;
    +
    +
    +/**
    + * Function: putObject
    + * 
    + * Assoiates the given object with the given ID and returns the given object.
    + * 
    + * Parameters
    + * 
    + * id - ID for the object to be associated with.
    + * obj - Object to be associated with the ID.
    + */
    +mxCodec.prototype.putObject = function(id, obj)
    +{
    +	this.objects[id] = obj;
    +	
    +	return obj;
    +};
    +
    +/**
    + * Function: getObject
    + *
    + * Returns the decoded object for the element with the specified ID in
    + * <document>. If the object is not known then <lookup> is used to find an
    + * object. If no object is found, then the element with the respective ID
    + * from the document is parsed using <decode>.
    + */
    +mxCodec.prototype.getObject = function(id)
    +{
    +	var obj = null;
    +	
    +	if (id != null)
    +	{
    +		obj = this.objects[id];
    +		
    +		if (obj == null)
    +		{
    +			obj = this.lookup(id);
    +			
    +			if (obj == null)
    +			{
    +				var node = this.getElementById(id);
    +				
    +				if (node != null)
    +				{
    +					obj = this.decode(node);
    +				}
    +			}
    +		}
    +	}
    +	
    +	return obj;
    +};
    +
    +/**
    + * Function: lookup
    + *
    + * Hook for subclassers to implement a custom lookup mechanism for cell IDs.
    + * This implementation always returns null.
    + *
    + * Example:
    + *
    + * (code)
    + * var codec = new mxCodec();
    + * codec.lookup = function(id)
    + * {
    + *   return model.getCell(id);
    + * };
    + * (end)
    + *
    + * Parameters:
    + *
    + * id - ID of the object to be returned.
    + */
    +mxCodec.prototype.lookup = function(id)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: getElementById
    + *
    + * Returns the element with the given ID from <document>. The optional attr
    + * argument specifies the name of the ID attribute. Default is "id". The
    + * XPath expression used to find the element is //*[@attr='arg'] where attr is
    + * the name of the ID attribute and arg is the given id.
    + *
    + * Parameters:
    + *
    + * id - String that contains the ID.
    + * attr - Optional string for the attributename. Default is "id".
    + */
    +mxCodec.prototype.getElementById = function(id, attr)
    +{
    +	attr = (attr != null) ? attr : 'id';
    +	
    +	return mxUtils.findNodeByAttribute(this.document.documentElement, attr, id);
    +};
    +
    +/**
    + * Function: getId
    + *
    + * Returns the ID of the specified object. This implementation
    + * calls <reference> first and if that returns null handles
    + * the object as an <mxCell> by returning their IDs using
    + * <mxCell.getId>. If no ID exists for the given cell, then
    + * an on-the-fly ID is generated using <mxCellPath.create>.
    + *
    + * Parameters:
    + *
    + * obj - Object to return the ID for.
    + */
    +mxCodec.prototype.getId = function(obj)
    +{
    +	var id = null;
    +	
    +	if (obj != null)
    +	{
    +		id = this.reference(obj);
    +		
    +		if (id == null && obj instanceof mxCell)
    +		{
    +			id = obj.getId();
    +			
    +			if (id == null)
    +			{
    +				// Uses an on-the-fly Id
    +				id = mxCellPath.create(obj);
    +				
    +				if (id.length == 0)
    +				{
    +					id = 'root';
    +				}
    +			}
    +		}
    +	}
    +	
    +	return id;
    +};
    +
    +/**
    + * Function: reference
    + *
    + * Hook for subclassers to implement a custom method
    + * for retrieving IDs from objects. This implementation
    + * always returns null.
    + *
    + * Example:
    + *
    + * (code)
    + * var codec = new mxCodec();
    + * codec.reference = function(obj)
    + * {
    + *   return obj.getCustomId();
    + * };
    + * (end)
    + *
    + * Parameters:
    + *
    + * obj - Object whose ID should be returned.
    + */
    +mxCodec.prototype.reference = function(obj)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: encode
    + *
    + * Encodes the specified object and returns the resulting
    + * XML node.
    + *
    + * Parameters:
    + *
    + * obj - Object to be encoded. 
    + */
    +mxCodec.prototype.encode = function(obj)
    +{
    +	var node = null;
    +	
    +	if (obj != null && obj.constructor != null)
    +	{
    +		var enc = mxCodecRegistry.getCodec(obj.constructor);
    +		
    +		if (enc != null)
    +		{
    +			node = enc.encode(this, obj);
    +		}
    +		else
    +		{
    +			if (mxUtils.isNode(obj))
    +			{
    +				node = (mxClient.IS_IE) ? obj.cloneNode(true) :
    +					this.document.importNode(obj, true);
    +			}
    +			else
    +			{
    +	    		mxLog.warn('mxCodec.encode: No codec for '+
    +	    			mxUtils.getFunctionName(obj.constructor));
    +			}
    +		}
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: decode
    + *
    + * Decodes the given XML node. The optional "into"
    + * argument specifies an existing object to be
    + * used. If no object is given, then a new instance
    + * is created using the constructor from the codec.
    + *
    + * The function returns the passed in object or
    + * the new instance if no object was given.
    + *
    + * Parameters:
    + *
    + * node - XML node to be decoded.
    + * into - Optional object to be decodec into.
    + */
    +mxCodec.prototype.decode = function(node, into)
    +{
    +	var obj = null;
    +	
    +	if (node != null && node.nodeType == mxConstants.NODETYPE_ELEMENT)
    +	{
    +		var ctor = null;
    +		
    +		try
    +		{
    +			ctor = eval(node.nodeName);
    +		}
    +		catch (err)
    +		{
    +			// ignore
    +		}
    +		
    +		try
    +		{
    +			var dec = mxCodecRegistry.getCodec(ctor);
    +			
    +			if (dec != null)
    +			{
    +				obj = dec.decode(this, node, into);
    +			}
    +			else
    +			{
    +				obj = node.cloneNode(true);
    +				obj.removeAttribute('as');
    +			}
    +		}
    +		catch (err)
    +		{
    +			mxLog.debug('Cannot decode '+node.nodeName+': '+err.message);
    +		}
    +	}
    +	
    +	return obj;
    +};
    +
    +/**
    + * Function: encodeCell
    + *
    + * Encoding of cell hierarchies is built-into the core, but
    + * is a higher-level function that needs to be explicitely
    + * used by the respective object encoders (eg. <mxModelCodec>,
    + * <mxChildChangeCodec> and <mxRootChangeCodec>). This
    + * implementation writes the given cell and its children as a
    + * (flat) sequence into the given node. The children are not
    + * encoded if the optional includeChildren is false. The
    + * function is in charge of adding the result into the
    + * given node and has no return value.
    + *
    + * Parameters:
    + *
    + * cell - <mxCell> to be encoded.
    + * node - Parent XML node to add the encoded cell into.
    + * includeChildren - Optional boolean indicating if the
    + * function should include all descendents. Default is true. 
    + */
    +mxCodec.prototype.encodeCell = function(cell, node, includeChildren)
    +{
    +	node.appendChild(this.encode(cell));
    +	
    +	if (includeChildren == null || includeChildren)
    +	{
    +		var childCount = cell.getChildCount();
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			this.encodeCell(cell.getChildAt(i), node);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: isCellCodec
    + * 
    + * Returns true if the given codec is a cell codec. This uses
    + * <mxCellCodec.isCellCodec> to check if the codec is of the
    + * given type.
    + */
    +mxCodec.prototype.isCellCodec = function(codec)
    +{
    +	if (codec != null && typeof(codec.isCellCodec) == 'function')
    +	{
    +		return codec.isCellCodec();
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: decodeCell
    + *
    + * Decodes cells that have been encoded using inversion, ie.
    + * where the user object is the enclosing node in the XML,
    + * and restores the group and graph structure in the cells.
    + * Returns a new <mxCell> instance that represents the
    + * given node.
    + *
    + * Parameters:
    + *
    + * node - XML node that contains the cell data.
    + * restoreStructures - Optional boolean indicating whether
    + * the graph structure should be restored by calling insert
    + * and insertEdge on the parent and terminals, respectively.
    + * Default is true.
    + */
    +mxCodec.prototype.decodeCell = function(node, restoreStructures)
    +{
    +	restoreStructures = (restoreStructures != null) ? restoreStructures : true;
    +	var cell = null;
    +	
    +	if (node != null && node.nodeType == mxConstants.NODETYPE_ELEMENT)
    +	{
    +		// Tries to find a codec for the given node name. If that does
    +		// not return a codec then the node is the user object (an XML node
    +		// that contains the mxCell, aka inversion).
    +		var decoder = mxCodecRegistry.getCodec(node.nodeName);
    +		
    +		// Tries to find the codec for the cell inside the user object.
    +		// This assumes all node names inside the user object are either
    +		// not registered or they correspond to a class for cells.
    +		if (!this.isCellCodec(decoder))
    +		{
    +			var child = node.firstChild;
    +			
    +			while (child != null && !this.isCellCodec(decoder))
    +			{
    +				decoder = mxCodecRegistry.getCodec(child.nodeName);
    +				child = child.nextSibling;
    +			}
    +		}
    +		
    +		if (!this.isCellCodec(decoder))
    +		{
    +			decoder = mxCodecRegistry.getCodec(mxCell);
    +		}
    +
    +		cell = decoder.decode(this, node);
    +		
    +		if (restoreStructures)
    +		{
    +			this.insertIntoGraph(cell);
    +		}
    +	}
    +	
    +	return cell;
    +};
    +
    +/**
    + * Function: insertIntoGraph
    + *
    + * Inserts the given cell into its parent and terminal cells.
    + */
    +mxCodec.prototype.insertIntoGraph = function(cell)
    +{
    +	var parent = cell.parent;
    +	var source = cell.getTerminal(true);
    +	var target = cell.getTerminal(false);
    +
    +	// Fixes possible inconsistencies during insert into graph
    +	cell.setTerminal(null, false);
    +	cell.setTerminal(null, true);
    +	cell.parent = null;
    +	
    +	if (parent != null)
    +	{
    +		parent.insert(cell);
    +	}
    +
    +	if (source != null)
    +	{
    +		source.insertEdge(cell, true);
    +	}
    +
    +	if (target != null)
    +	{
    +		target.insertEdge(cell, false);
    +	}
    +};
    +
    +/**
    + * Function: setAttribute
    + *
    + * Sets the attribute on the specified node to value. This is a
    + * helper method that makes sure the attribute and value arguments
    + * are not null.
    + *
    + * Parameters:
    + *
    + * node - XML node to set the attribute for.
    + * attributes - Attributename to be set.
    + * value - New value of the attribute.
    + */
    +mxCodec.prototype.setAttribute = function(node, attribute, value)
    +{
    +	if (attribute != null && value != null)
    +	{
    +		node.setAttribute(attribute, value);
    +	}
    +};
    diff --git a/javascript/src/js/io/mxCodecRegistry.js b/javascript/src/js/io/mxCodecRegistry.js
    new file mode 100644
    index 000000000..a0a0f209c
    --- /dev/null
    +++ b/javascript/src/js/io/mxCodecRegistry.js
    @@ -0,0 +1,137 @@
    +/**
    + * $Id: mxCodecRegistry.js,v 1.12 2010-04-30 13:18:21 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxCodecRegistry =
    +{
    +	/**
    +	 * Class: mxCodecRegistry
    +	 *
    +	 * Singleton class that acts as a global registry for codecs.
    +	 *
    +	 * Adding an <mxCodec>:
    +	 *
    +	 * 1. Define a default codec with a new instance of the 
    +	 * object to be handled.
    +	 *
    +	 * (code)
    +	 * var codec = new mxObjectCodec(new mxGraphModel());
    +	 * (end)
    +	 *
    +	 * 2. Define the functions required for encoding and decoding
    +	 * objects.
    +	 *
    +	 * (code)
    +	 * codec.encode = function(enc, obj) { ... }
    +	 * codec.decode = function(dec, node, into) { ... }
    +	 * (end)
    +	 *
    +	 * 3. Register the codec in the <mxCodecRegistry>.
    +	 *
    +	 * (code)
    +	 * mxCodecRegistry.register(codec);
    +	 * (end)
    +	 *
    +	 * <mxObjectCodec.decode> may be used to either create a new 
    +	 * instance of an object or to configure an existing instance, 
    +	 * in which case the into argument points to the existing
    +	 * object. In this case, we say the codec "configures" the
    +	 * object.
    +	 * 
    +	 * Variable: codecs
    +	 *
    +	 * Maps from constructor names to codecs.
    +	 */
    +	codecs: [],
    +	
    +	/**
    +	 * Variable: aliases
    +	 *
    +	 * Maps from classnames to codecnames.
    +	 */
    +	aliases: [],
    +
    +	/**
    +	 * Function: register
    +	 *
    +	 * Registers a new codec and associates the name of the template
    +	 * constructor in the codec with the codec object.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * codec - <mxObjectCodec> to be registered.
    +	 */
    +	register: function(codec)
    +	{
    +		if (codec != null)
    +		{
    +			var name = codec.getName();
    +			mxCodecRegistry.codecs[name] = codec;
    +			
    +			var classname = mxUtils.getFunctionName(codec.template.constructor);
    +
    +			if (classname != name)
    +			{
    +				mxCodecRegistry.addAlias(classname, name);
    +			}
    +		}
    +
    +		return codec;
    +	},
    +
    +	/**
    +	 * Function: addAlias
    +	 *
    +	 * Adds an alias for mapping a classname to a codecname.
    +	 */
    +	addAlias: function(classname, codecname)
    +	{
    +		mxCodecRegistry.aliases[classname] = codecname;
    +	},
    +
    +	/**
    +	 * Function: getCodec
    +	 *
    +	 * Returns a codec that handles objects that are constructed
    +	 * using the given constructor.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * ctor - JavaScript constructor function. 
    +	 */
    +	getCodec: function(ctor)
    +	{
    +		var codec = null;
    +		
    +		if (ctor != null)
    +		{
    +			var name = mxUtils.getFunctionName(ctor);
    +			var tmp = mxCodecRegistry.aliases[name];
    +			
    +			if (tmp != null)
    +			{
    +				name = tmp;
    +			}
    +			
    +			codec = mxCodecRegistry.codecs[name];
    +			
    +			// Registers a new default codec for the given constructor
    +			// if no codec has been previously defined.
    +			if (codec == null)
    +			{
    +				try
    +				{
    +					codec = new mxObjectCodec(new ctor());
    +					mxCodecRegistry.register(codec);
    +				}
    +				catch (e)
    +				{
    +					// ignore
    +				}
    +			}
    +		}
    +		
    +		return codec;
    +	}
    +
    +};
    diff --git a/javascript/src/js/io/mxDefaultKeyHandlerCodec.js b/javascript/src/js/io/mxDefaultKeyHandlerCodec.js
    new file mode 100644
    index 000000000..628524ad0
    --- /dev/null
    +++ b/javascript/src/js/io/mxDefaultKeyHandlerCodec.js
    @@ -0,0 +1,88 @@
    +/**
    + * $Id: mxDefaultKeyHandlerCodec.js,v 1.5 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxDefaultKeyHandlerCodec
    +	 *
    +	 * Custom codec for configuring <mxDefaultKeyHandler>s. This class is created
    +	 * and registered dynamically at load time and used implicitely via
    +	 * <mxCodec> and the <mxCodecRegistry>. This codec only reads configuration
    +	 * data for existing key handlers, it does not encode or create key handlers.
    +	 */
    +	var codec = new mxObjectCodec(new mxDefaultKeyHandler());
    +
    +	/**
    +	 * Function: encode
    +	 *
    +	 * Returns null.
    +	 */
    +	codec.encode = function(enc, obj)
    +	{
    +		return null;
    +	};
    +	
    +	/**
    +	 * Function: decode
    +	 *
    +	 * Reads a sequence of the following child nodes
    +	 * and attributes:
    +	 *
    +	 * Child Nodes:
    +	 *
    +	 * add - Binds a keystroke to an actionname.
    +	 *
    +	 * Attributes:
    +	 *
    +	 * as - Keycode.
    +	 * action - Actionname to execute in editor.
    +	 * control - Optional boolean indicating if
    +	 * 		the control key must be pressed.
    +	 *
    +	 * Example:
    +	 *
    +	 * (code)
    +	 * <mxDefaultKeyHandler as="keyHandler">
    +	 *   <add as="88" control="true" action="cut"/>
    +	 *   <add as="67" control="true" action="copy"/>
    +	 *   <add as="86" control="true" action="paste"/>
    +	 * </mxDefaultKeyHandler>
    +	 * (end)
    +	 *
    +	 * The keycodes are for the x, c and v keys.
    +	 *
    +	 * See also: <mxDefaultKeyHandler.bindAction>,
    +	 * http://www.js-examples.com/page/tutorials__key_codes.html
    +	 */
    +	codec.decode = function(dec, node, into)
    +	{
    +		if (into != null)
    +		{
    +			var editor = into.editor;
    +			node = node.firstChild;
    +			
    +			while (node != null)
    +			{
    +				if (!this.processInclude(dec, node, into) &&
    +					node.nodeName == 'add')
    +				{
    +					var as = node.getAttribute('as');
    +					var action = node.getAttribute('action');
    +					var control = node.getAttribute('control');
    +					
    +					into.bindAction(as, action, control);
    +				}
    +				
    +				node = node.nextSibling;
    +			}
    +		}
    +		
    +		return into;
    +	};
    +
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxDefaultPopupMenuCodec.js b/javascript/src/js/io/mxDefaultPopupMenuCodec.js
    new file mode 100644
    index 000000000..8d949ea83
    --- /dev/null
    +++ b/javascript/src/js/io/mxDefaultPopupMenuCodec.js
    @@ -0,0 +1,54 @@
    +/**
    + * $Id: mxDefaultPopupMenuCodec.js,v 1.6 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxDefaultPopupMenuCodec
    +	 *
    +	 * Custom codec for configuring <mxDefaultPopupMenu>s. This class is created
    +	 * and registered dynamically at load time and used implicitely via
    +	 * <mxCodec> and the <mxCodecRegistry>. This codec only reads configuration
    +	 * data for existing popup menus, it does not encode or create menus. Note
    +	 * that this codec only passes the configuration node to the popup menu,
    +	 * which uses the config to dynamically create menus. See
    +	 * <mxDefaultPopupMenu.createMenu>.
    +	 */
    +	var codec = new mxObjectCodec(new mxDefaultPopupMenu());
    +
    +	/**
    +	 * Function: encode
    +	 *
    +	 * Returns null.
    +	 */
    +	codec.encode = function(enc, obj)
    +	{
    +		return null;
    +	};
    +	
    +	/**
    +	 * Function: decode
    +	 *
    +	 * Uses the given node as the config for <mxDefaultPopupMenu>.
    +	 */
    +	codec.decode = function(dec, node, into)
    +	{
    +		var inc = node.getElementsByTagName('include')[0];
    +		
    +		if (inc != null)
    +		{
    +			this.processInclude(dec, inc, into);
    +		}
    +		else if (into != null)
    +		{
    +			into.config = node;
    +		}
    +		
    +		return into;
    +	};
    +	
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxDefaultToolbarCodec.js b/javascript/src/js/io/mxDefaultToolbarCodec.js
    new file mode 100644
    index 000000000..6698b9bd1
    --- /dev/null
    +++ b/javascript/src/js/io/mxDefaultToolbarCodec.js
    @@ -0,0 +1,301 @@
    +/**
    + * $Id: mxDefaultToolbarCodec.js,v 1.22 2012-04-11 07:00:52 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxDefaultToolbarCodec
    +	 *
    +	 * Custom codec for configuring <mxDefaultToolbar>s. This class is created
    +	 * and registered dynamically at load time and used implicitely via
    +	 * <mxCodec> and the <mxCodecRegistry>. This codec only reads configuration
    +	 * data for existing toolbars handlers, it does not encode or create toolbars.
    +	 */
    +	var codec = new mxObjectCodec(new mxDefaultToolbar());
    +
    +	/**
    +	 * Function: encode
    +	 *
    +	 * Returns null.
    +	 */
    +	codec.encode = function(enc, obj)
    +	{
    +		return null;
    +	};
    +	
    +	/**
    +	 * Function: decode
    +	 *
    +	 * Reads a sequence of the following child nodes
    +	 * and attributes:
    +	 *
    +	 * Child Nodes:
    +	 *
    +	 * add - Adds a new item to the toolbar. See below for attributes.
    +	 * separator - Adds a vertical separator. No attributes.
    +	 * hr - Adds a horizontal separator. No attributes.
    +	 * br - Adds a linefeed. No attributes. 
    +	 *
    +	 * Attributes:
    +	 *
    +	 * as - Resource key for the label.
    +	 * action - Name of the action to execute in enclosing editor.
    +	 * mode - Modename (see below).
    +	 * template - Template name for cell insertion.
    +	 * style - Optional style to override the template style.
    +	 * icon - Icon (relative/absolute URL).
    +	 * pressedIcon - Optional icon for pressed state (relative/absolute URL).
    +	 * id - Optional ID to be used for the created DOM element.
    +	 * toggle - Optional 0 or 1 to disable toggling of the element. Default is
    +	 * 1 (true).
    +	 *
    +	 * The action, mode and template attributes are mutually exclusive. The
    +	 * style can only be used with the template attribute. The add node may
    +	 * contain another sequence of add nodes with as and action attributes
    +	 * to create a combo box in the toolbar. If the icon is specified then
    +	 * a list of the child node is expected to have its template attribute
    +	 * set and the action is ignored instead.
    +	 * 
    +	 * Nodes with a specified template may define a function to be used for
    +	 * inserting the cloned template into the graph. Here is an example of such
    +	 * a node:
    +	 * 
    +	 * (code)
    +	 * <add as="Swimlane" template="swimlane" icon="images/swimlane.gif"><![CDATA[
    +	 *   function (editor, cell, evt, targetCell)
    +	 *   {
    +	 *     var pt = mxUtils.convertPoint(
    +	 *       editor.graph.container, mxEvent.getClientX(evt),
    +	 *         mxEvent.getClientY(evt));
    +	 *     return editor.addVertex(targetCell, cell, pt.x, pt.y);
    +	 *   }
    +	 * ]]></add>
    +	 * (end)
    +	 * 
    +	 * In the above function, editor is the enclosing <mxEditor> instance, cell
    +	 * is the clone of the template, evt is the mouse event that represents the
    +	 * drop and targetCell is the cell under the mousepointer where the drop
    +	 * occurred. The targetCell is retrieved using <mxGraph.getCellAt>.
    +	 *
    +	 * Futhermore, nodes with the mode attribute may define a function to
    +	 * be executed upon selection of the respective toolbar icon. In the
    +	 * example below, the default edge style is set when this specific
    +	 * connect-mode is activated:
    +	 *
    +	 * (code)
    +	 * <add as="connect" mode="connect"><![CDATA[
    +	 *   function (editor)
    +	 *   {
    +	 *     if (editor.defaultEdge != null)
    +	 *     {
    +	 *       editor.defaultEdge.style = 'straightEdge';
    +	 *     }
    +	 *   }
    +	 * ]]></add>
    +	 * (end)
    +	 *
    +	 * Modes:
    +	 *
    +	 * select - Left mouse button used for rubberband- & cell-selection.
    +	 * connect - Allows connecting vertices by inserting new edges.
    +	 * pan - Disables selection and switches to panning on the left button.
    +	 *
    +	 * Example:
    +	 *
    +	 * To add items to the toolbar:
    +	 * 
    +	 * (code)
    +	 * <mxDefaultToolbar as="toolbar">
    +	 *   <add as="save" action="save" icon="images/save.gif"/>
    +	 *   <br/><hr/>
    +	 *   <add as="select" mode="select" icon="images/select.gif"/>
    +	 *   <add as="connect" mode="connect" icon="images/connect.gif"/>
    +	 * </mxDefaultToolbar>
    +	 * (end)
    +	 */
    +	codec.decode = function(dec, node, into)
    +	{
    +		if (into != null)
    +		{
    +			var editor = into.editor;
    +			node = node.firstChild;
    +			
    +			while (node != null)
    +			{
    +				if (node.nodeType == mxConstants.NODETYPE_ELEMENT)
    +				{
    +					if (!this.processInclude(dec, node, into))
    +					{
    +						if (node.nodeName == 'separator')
    +						{
    +							into.addSeparator();
    +						}
    +						else if (node.nodeName == 'br')
    +						{
    +							into.toolbar.addBreak();
    +						}
    +						else if (node.nodeName == 'hr')
    +						{
    +							into.toolbar.addLine();
    +						}
    +						else if (node.nodeName == 'add')
    +						{
    +							var as = node.getAttribute('as');
    +							as = mxResources.get(as) || as;
    +							var icon = node.getAttribute('icon');
    +							var pressedIcon = node.getAttribute('pressedIcon');
    +							var action = node.getAttribute('action');
    +							var mode = node.getAttribute('mode');
    +							var template = node.getAttribute('template');
    +							var toggle = node.getAttribute('toggle') != '0';
    +							var text = mxUtils.getTextContent(node);
    +							var elt = null;
    +
    +							if (action != null)
    +							{
    +								elt = into.addItem(as, icon, action, pressedIcon);
    +							}
    +							else if (mode != null)
    +							{
    +								var funct = mxUtils.eval(text);
    +								elt = into.addMode(as, icon, mode, pressedIcon, funct);
    +							}
    +							else if (template != null || (text != null && text.length > 0))
    +							{
    +								var cell = editor.templates[template];
    +								var style = node.getAttribute('style');
    +								
    +								if (cell != null && style != null)
    +								{
    +									cell = cell.clone();
    +									cell.setStyle(style);
    +								}
    +								
    +								var insertFunction = null;
    +								
    +								if (text != null && text.length > 0)
    +								{
    +									insertFunction = mxUtils.eval(text);
    +								}
    +								
    +								elt = into.addPrototype(as, icon, cell, pressedIcon, insertFunction, toggle);
    +							}
    +							else
    +							{
    +								var children = mxUtils.getChildNodes(node);
    +								
    +								if (children.length > 0)
    +								{
    +									if (icon == null)
    +									{
    +										var combo = into.addActionCombo(as);
    +										
    +										for (var i=0; i<children.length; i++)
    +										{
    +											var child = children[i];
    +											
    +											if (child.nodeName == 'separator')
    +											{
    +												into.addOption(combo, '---');
    +											}
    +											else if (child.nodeName == 'add')
    +											{
    +												var lab = child.getAttribute('as');
    +												var act = child.getAttribute('action');
    +												into.addActionOption(combo, lab, act);
    +											}
    +										}
    +									}
    +									else
    +									{
    +										var select = null;
    +										var create = function()
    +										{
    +											var template = editor.templates[select.value];
    +											
    +											if (template != null)
    +											{
    +												var clone = template.clone();
    +												var style = select.options[select.selectedIndex].cellStyle;
    +												
    +												if (style != null)
    +												{
    +													clone.setStyle(style);
    +												}
    +												
    +												return clone;
    +											}
    +											else
    +											{
    +												mxLog.warn('Template '+template+' not found');
    +											}
    +											
    +											return null;
    +										};
    +										
    +										var img = into.addPrototype(as, icon, create, null, null, toggle);
    +										select = into.addCombo();
    +										
    +										// Selects the toolbar icon if a selection change
    +										// is made in the corresponding combobox.
    +										mxEvent.addListener(select, 'change', function()
    +										{
    +											into.toolbar.selectMode(img, function(evt)
    +											{
    +												var pt = mxUtils.convertPoint(editor.graph.container,
    +													mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +												
    +												return editor.addVertex(null, funct(), pt.x, pt.y);
    +											});
    +											
    +											into.toolbar.noReset = false;
    +										});
    +										
    +										// Adds the entries to the combobox
    +										for (var i=0; i<children.length; i++)
    +										{
    +											var child = children[i];
    +											
    +											if (child.nodeName == 'separator')
    +											{
    +												into.addOption(select, '---');
    +											}
    +											else if (child.nodeName == 'add')
    +											{
    +												var lab = child.getAttribute('as');
    +												var tmp = child.getAttribute('template');
    +												var option = into.addOption(select, lab, tmp || template);
    +												option.cellStyle = child.getAttribute('style');
    +											}
    +										}
    +										
    +									}
    +								}
    +							}
    +							
    +							// Assigns an ID to the created element to access it later.
    +							if (elt != null)
    +							{
    +								var id = node.getAttribute('id');
    +								
    +								if (id != null && id.length > 0)
    +								{
    +									elt.setAttribute('id', id);
    +								}
    +							}
    +						}
    +					}
    +				}
    +				
    +				node = node.nextSibling;
    +			}
    +		}
    +		
    +		return into;
    +	};
    +	
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxEditorCodec.js b/javascript/src/js/io/mxEditorCodec.js
    new file mode 100644
    index 000000000..f61bd9571
    --- /dev/null
    +++ b/javascript/src/js/io/mxEditorCodec.js
    @@ -0,0 +1,246 @@
    +/**
    + * $Id: mxEditorCodec.js,v 1.11 2010-01-04 11:18:26 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxEditorCodec
    +	 *
    +	 * Codec for <mxEditor>s. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec>
    +	 * and the <mxCodecRegistry>.
    +	 *
    +	 * Transient Fields:
    +	 *
    +	 * - modified
    +	 * - lastSnapshot
    +	 * - ignoredChanges
    +	 * - undoManager
    +	 * - graphContainer
    +	 * - toolbarContainer
    +	 */
    +	var codec = new mxObjectCodec(new mxEditor(),
    +		['modified', 'lastSnapshot', 'ignoredChanges',
    +		'undoManager', 'graphContainer', 'toolbarContainer']);
    +
    +	/**
    +	 * Function: beforeDecode
    +	 *
    +	 * Decodes the ui-part of the configuration node by reading
    +	 * a sequence of the following child nodes and attributes
    +	 * and passes the control to the default decoding mechanism:
    +	 *
    +	 * Child Nodes:
    +	 *
    +	 * stylesheet - Adds a CSS stylesheet to the document.
    +	 * resource - Adds the basename of a resource bundle.
    +	 * add - Creates or configures a known UI element.
    +	 *
    +	 * These elements may appear in any order given that the
    +	 * graph UI element is added before the toolbar element
    +	 * (see Known Keys).
    +	 *
    +	 * Attributes:
    +	 *
    +	 * as - Key for the UI element (see below).
    +	 * element - ID for the element in the document.
    +	 * style - CSS style to be used for the element or window.
    +	 * x - X coordinate for the new window.
    +	 * y - Y coordinate for the new window.
    +	 * width - Width for the new window.
    +	 * height - Optional height for the new window.
    +	 * name - Name of the stylesheet (absolute/relative URL).
    +	 * basename - Basename of the resource bundle (see <mxResources>).
    +	 *
    +	 * The x, y, width and height attributes are used to create a new
    +	 * <mxWindow> if the element attribute is not specified in an add
    +	 * node. The name and basename are only used in the stylesheet and
    +	 * resource nodes, respectively.
    +	 *
    +	 * Known Keys:
    +	 *
    +	 * graph - Main graph element (see <mxEditor.setGraphContainer>).
    +	 * title - Title element (see <mxEditor.setTitleContainer>).
    +	 * toolbar - Toolbar element (see <mxEditor.setToolbarContainer>).
    +	 * status - Status bar element (see <mxEditor.setStatusContainer>).
    +	 *
    +	 * Example:
    +	 *
    +	 * (code)
    +	 * <ui>
    +	 *   <stylesheet name="css/process.css"/>
    +	 *   <resource basename="resources/mxApplication"/>
    +	 *   <add as="graph" element="graph"
    +	 *     style="left:70px;right:20px;top:20px;bottom:40px"/>
    +	 *   <add as="status" element="status"/>
    +	 *   <add as="toolbar" x="10" y="20" width="54"/>
    +	 * </ui>
    +	 * (end)
    +	 */
    +	codec.afterDecode = function(dec, node, obj)
    +	{
    +		// Assigns the specified templates for edges
    +		var defaultEdge = node.getAttribute('defaultEdge');
    +		
    +		if (defaultEdge != null)
    +		{
    +			node.removeAttribute('defaultEdge');
    +			obj.defaultEdge = obj.templates[defaultEdge];
    +		}
    +
    +		// Assigns the specified templates for groups
    +		var defaultGroup = node.getAttribute('defaultGroup');
    +		
    +		if (defaultGroup != null)
    +		{
    +			node.removeAttribute('defaultGroup');
    +			obj.defaultGroup = obj.templates[defaultGroup];
    +		}
    +
    +		return obj;
    +	};
    +	
    +	/**
    +	 * Function: decodeChild
    +	 * 
    +	 * Overrides decode child to handle special child nodes.
    +	 */	
    +	codec.decodeChild = function(dec, child, obj)
    +	{
    +		if (child.nodeName == 'Array')
    +		{
    +			var role = child.getAttribute('as');
    +			
    +			if (role == 'templates')
    +			{
    +				this.decodeTemplates(dec, child, obj);
    +				return;
    +			}
    +		}
    +		else if (child.nodeName == 'ui')
    +		{
    +			this.decodeUi(dec, child, obj);
    +			return;
    +		}
    +		
    +		mxObjectCodec.prototype.decodeChild.apply(this, arguments);
    +	};
    +		
    +	/**
    +	 * Function: decodeTemplates
    +	 *
    +	 * Decodes the cells from the given node as templates.
    +	 */
    +	codec.decodeUi = function(dec, node, editor)
    +	{
    +		var tmp = node.firstChild;
    +		while (tmp != null)
    +		{
    +			if (tmp.nodeName == 'add')
    +			{
    +				var as = tmp.getAttribute('as');
    +				var elt = tmp.getAttribute('element');
    +				var style = tmp.getAttribute('style');
    +				var element = null;
    +
    +				if (elt != null)
    +				{
    +					element = document.getElementById(elt);
    +					
    +					if (element != null &&
    +						style != null)
    +					{
    +						element.style.cssText += ';'+style;
    +					}
    +				}
    +				else
    +				{
    +					var x = parseInt(tmp.getAttribute('x'));
    +					var y = parseInt(tmp.getAttribute('y'));
    +					var width = tmp.getAttribute('width');
    +					var height = tmp.getAttribute('height');
    +
    +					// Creates a new window around the element
    +					element = document.createElement('div');
    +					element.style.cssText = style;
    +					
    +					var wnd = new mxWindow(mxResources.get(as) || as,
    +						element, x, y, width, height, false, true);
    +					wnd.setVisible(true);
    +				}
    +				
    +				// TODO: Make more generic
    +				if (as == 'graph')
    +				{
    +					editor.setGraphContainer(element);
    +				}
    +				else if (as == 'toolbar')
    +				{
    +					editor.setToolbarContainer(element);
    +				}
    +				else if (as == 'title')
    +				{
    +					editor.setTitleContainer(element);
    +				}
    +				else if (as == 'status')
    +				{
    +					editor.setStatusContainer(element);
    +				}
    +				else if (as == 'map')
    +				{
    +					editor.setMapContainer(element);
    +				}
    +			}
    +			else if (tmp.nodeName == 'resource')
    +			{
    +				mxResources.add(tmp.getAttribute('basename'));
    +			}
    +			else if (tmp.nodeName == 'stylesheet')
    +			{
    +				mxClient.link('stylesheet', tmp.getAttribute('name'));
    +			}
    +			
    +			tmp = tmp.nextSibling;
    +		}	
    +	};
    +	
    +	/**
    +	 * Function: decodeTemplates
    +	 *
    +	 * Decodes the cells from the given node as templates.
    +	 */
    +	codec.decodeTemplates = function(dec, node, editor)
    +	{
    +		if (editor.templates == null)
    +		{
    +			editor.templates = [];
    +		}
    +		
    +		var children = mxUtils.getChildNodes(node);
    +		for (var j=0; j<children.length; j++)
    +		{
    +			var name = children[j].getAttribute('as');
    +			var child = children[j].firstChild;
    +			
    +			while (child != null && child.nodeType != 1)
    +			{
    +				child = child.nextSibling;
    +			}
    +			
    +			if (child != null)
    +			{
    +				// LATER: Only single cells means you need
    +				// to group multiple cells within another
    +				// cell. This should be changed to support
    +				// arrays of cells, or the wrapper must
    +				// be automatically handled in this class.
    +				editor.templates[name] = dec.decodeCell(child);
    +			}
    +		}
    +	};
    +	
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxGenericChangeCodec.js b/javascript/src/js/io/mxGenericChangeCodec.js
    new file mode 100644
    index 000000000..8da778985
    --- /dev/null
    +++ b/javascript/src/js/io/mxGenericChangeCodec.js
    @@ -0,0 +1,64 @@
    +/**
    + * $Id: mxGenericChangeCodec.js,v 1.11 2010-09-13 15:50:36 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGenericChangeCodec
    + *
    + * Codec for <mxValueChange>s, <mxStyleChange>s, <mxGeometryChange>s,
    + * <mxCollapseChange>s and <mxVisibleChange>s. This class is created
    + * and registered dynamically at load time and used implicitely
    + * via <mxCodec> and the <mxCodecRegistry>.
    + *
    + * Transient Fields:
    + *
    + * - model
    + * - previous
    + *
    + * Reference Fields:
    + *
    + * - cell
    + * 
    + * Constructor: mxGenericChangeCodec
    + *
    + * Factory function that creates a <mxObjectCodec> for
    + * the specified change and fieldname.
    + *
    + * Parameters:
    + *
    + * obj - An instance of the change object.
    + * variable - The fieldname for the change data.
    + */
    +var mxGenericChangeCodec = function(obj, variable)
    +{
    +	var codec = new mxObjectCodec(obj,  ['model', 'previous'], ['cell']);
    +
    +	/**
    +	 * Function: afterDecode
    +	 *
    +	 * Restores the state by assigning the previous value.
    +	 */
    +	codec.afterDecode = function(dec, node, obj)
    +	{
    +		// Allows forward references in sessions. This is a workaround
    +		// for the sequence of edits in mxGraph.moveCells and cellsAdded.
    +		if (mxUtils.isNode(obj.cell))
    +		{
    +			obj.cell = dec.decodeCell(obj.cell, false);
    +		}
    +
    +		obj.previous = obj[variable];
    +
    +		return obj;
    +	};
    +	
    +	return codec;
    +};
    +
    +// Registers the codecs
    +mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange(), 'value'));
    +mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange(), 'style'));
    +mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange(), 'geometry'));
    +mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange(), 'collapsed'));
    +mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange(), 'visible'));
    +mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange(), 'value'));
    diff --git a/javascript/src/js/io/mxGraphCodec.js b/javascript/src/js/io/mxGraphCodec.js
    new file mode 100644
    index 000000000..f052e134c
    --- /dev/null
    +++ b/javascript/src/js/io/mxGraphCodec.js
    @@ -0,0 +1,28 @@
    +/**
    + * $Id: mxGraphCodec.js,v 1.8 2010-06-10 06:54:18 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxGraphCodec
    +	 *
    +	 * Codec for <mxGraph>s. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec>
    +	 * and the <mxCodecRegistry>.
    +	 *
    +	 * Transient Fields:
    +	 *
    +	 * - graphListeners
    +	 * - eventListeners
    +	 * - view
    +	 * - container
    +	 * - cellRenderer
    +	 * - editor
    +	 * - selection
    +	 */
    +	return new mxObjectCodec(new mxGraph(),
    +		['graphListeners', 'eventListeners', 'view', 'container',
    +		'cellRenderer', 'editor', 'selection']);
    +
    +}());
    diff --git a/javascript/src/js/io/mxGraphViewCodec.js b/javascript/src/js/io/mxGraphViewCodec.js
    new file mode 100644
    index 000000000..110b212cd
    --- /dev/null
    +++ b/javascript/src/js/io/mxGraphViewCodec.js
    @@ -0,0 +1,197 @@
    +/**
    + * $Id: mxGraphViewCodec.js,v 1.18 2010-12-03 11:05:52 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxGraphViewCodec
    +	 *
    +	 * Custom encoder for <mxGraphView>s. This class is created
    +	 * and registered dynamically at load time and used implicitely via
    +	 * <mxCodec> and the <mxCodecRegistry>. This codec only writes views
    +	 * into a XML format that can be used to create an image for
    +	 * the graph, that is, it contains absolute coordinates with
    +	 * computed perimeters, edge styles and cell styles.
    +	 */
    +	var codec = new mxObjectCodec(new mxGraphView());
    +
    +	/**
    +	 * Function: encode
    +	 *
    +	 * Encodes the given <mxGraphView> using <encodeCell>
    +	 * starting at the model's root. This returns the
    +	 * top-level graph node of the recursive encoding.
    +	 */
    +	codec.encode = function(enc, view)
    +	{
    +		return this.encodeCell(enc, view,
    +			view.graph.getModel().getRoot());
    +	};
    +
    +	/**
    +	 * Function: encodeCell
    +	 *
    +	 * Recursively encodes the specifed cell. Uses layer
    +	 * as the default nodename. If the cell's parent is
    +	 * null, then graph is used for the nodename. If
    +	 * <mxGraphModel.isEdge> returns true for the cell,
    +	 * then edge is used for the nodename, else if
    +	 * <mxGraphModel.isVertex> returns true for the cell,
    +	 * then vertex is used for the nodename.
    +	 *
    +	 * <mxGraph.getLabel> is used to create the label
    +	 * attribute for the cell. For graph nodes and vertices
    +	 * the bounds are encoded into x, y, width and height.
    +	 * For edges the points are encoded into a points
    +	 * attribute as a space-separated list of comma-separated
    +	 * coordinate pairs (eg. x0,y0 x1,y1 ... xn,yn). All
    +	 * values from the cell style are added as attribute
    +	 * values to the node. 
    +	 */
    +	codec.encodeCell = function(enc, view, cell)
    +	{
    +		var model = view.graph.getModel();
    +		var state = view.getState(cell);
    +		var parent = model.getParent(cell);
    +		
    +		if (parent == null || state != null)
    +		{
    +			var childCount = model.getChildCount(cell);
    +			var geo = view.graph.getCellGeometry(cell);
    +			var name = null;
    +			
    +			if (parent == model.getRoot())
    +			{
    +				name = 'layer';
    +			}
    +			else if (parent == null)
    +			{
    +				name = 'graph';
    +			}
    +			else if (model.isEdge(cell))
    +			{
    +				name = 'edge';
    +			}
    +			else if (childCount > 0 && geo != null)
    +			{
    +				name = 'group';
    +			}
    +			else if (model.isVertex(cell))
    +			{
    +				name = 'vertex';
    +			}
    +			
    +			if (name != null)
    +			{
    +				var node = enc.document.createElement(name);
    +				var lab = view.graph.getLabel(cell);
    +				
    +				if (lab != null)
    +				{
    +					node.setAttribute('label', view.graph.getLabel(cell));
    +					
    +					if (view.graph.isHtmlLabel(cell))
    +					{
    +						node.setAttribute('html', true);
    +					}
    +				}
    +		
    +				if (parent == null)
    +				{
    +					var bounds = view.getGraphBounds();
    +					
    +					if (bounds != null)
    +					{
    +						node.setAttribute('x', Math.round(bounds.x));
    +						node.setAttribute('y', Math.round(bounds.y));
    +						node.setAttribute('width', Math.round(bounds.width));
    +						node.setAttribute('height', Math.round(bounds.height));
    +					}
    +					
    +					node.setAttribute('scale', view.scale);
    +				}
    +				else if (state != null && geo != null)
    +				{
    +					// Writes each key, value in the style pair to an attribute
    +				    for (var i in state.style)
    +				    {
    +				    	var value = state.style[i];
    +		
    +				    	// Tries to turn objects and functions into strings
    +					    if (typeof(value) == 'function' &&
    +							typeof(value) == 'object')
    +						{
    +					    	value = mxStyleRegistry.getName(value);
    +				        }
    +				    	
    +				    	if (value != null &&
    +				    		typeof(value) != 'function' &&
    +							typeof(value) != 'object')
    +						{
    +							node.setAttribute(i, value);
    +				        }
    +				    }
    +				    
    +					var abs = state.absolutePoints;
    +					
    +					// Writes the list of points into one attribute
    +					if (abs != null && abs.length > 0)
    +					{
    +						var pts = Math.round(abs[0].x) + ',' + Math.round(abs[0].y);
    +		
    +						for (var i=1; i<abs.length; i++)
    +						{
    +							pts += ' ' + Math.round(abs[i].x) + ',' +
    +								Math.round(abs[i].y);
    +						}
    +		
    +						node.setAttribute('points', pts);
    +					}
    +					
    +					// Writes the bounds into 4 attributes
    +					else
    +					{
    +						node.setAttribute('x', Math.round(state.x));
    +						node.setAttribute('y', Math.round(state.y));
    +						node.setAttribute('width', Math.round(state.width));
    +						node.setAttribute('height', Math.round(state.height));				
    +					}
    +		
    +					var offset = state.absoluteOffset;
    +					
    +					// Writes the offset into 2 attributes
    +					if (offset != null)
    +					{
    +						if (offset.x != 0)
    +						{
    +							node.setAttribute('dx', Math.round(offset.x));
    +						}
    +						
    +						if (offset.y != 0)
    +						{
    +							node.setAttribute('dy', Math.round(offset.y));
    +						}
    +					}
    +				}
    +		
    +				for (var i=0; i<childCount; i++)
    +				{
    +					var childNode = this.encodeCell(enc,
    +							view, model.getChildAt(cell, i));
    +					
    +					if (childNode != null)
    +					{
    +						node.appendChild(childNode);
    +					}
    +				}
    +			}
    +		}
    +		
    +		return node;
    +	};
    +
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxModelCodec.js b/javascript/src/js/io/mxModelCodec.js
    new file mode 100644
    index 000000000..760a2b18b
    --- /dev/null
    +++ b/javascript/src/js/io/mxModelCodec.js
    @@ -0,0 +1,80 @@
    +/**
    + * $Id: mxModelCodec.js,v 1.11 2010-11-23 08:46:41 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxModelCodec
    +	 *
    +	 * Codec for <mxGraphModel>s. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec>
    +	 * and the <mxCodecRegistry>.
    +	 */
    +	var codec = new mxObjectCodec(new mxGraphModel());
    +
    +	/**
    +	 * Function: encodeObject
    +	 *
    +	 * Encodes the given <mxGraphModel> by writing a (flat) XML sequence of
    +	 * cell nodes as produced by the <mxCellCodec>. The sequence is
    +	 * wrapped-up in a node with the name root.
    +	 */
    +	codec.encodeObject = function(enc, obj, node)
    +	{
    +		var rootNode = enc.document.createElement('root');
    +		enc.encodeCell(obj.getRoot(), rootNode);
    +		node.appendChild(rootNode);
    +	};
    +
    +	/**
    +	 * Function: decodeChild
    +	 * 
    +	 * Overrides decode child to handle special child nodes.
    +	 */	
    +	codec.decodeChild = function(dec, child, obj)
    +	{
    +		if (child.nodeName == 'root')
    +		{
    +			this.decodeRoot(dec, child, obj);
    +		}
    +		else
    +		{
    +			mxObjectCodec.prototype.decodeChild.apply(this, arguments);
    +		}
    +	};
    +
    +	/**
    +	 * Function: decodeRoot
    +	 *
    +	 * Reads the cells into the graph model. All cells
    +	 * are children of the root element in the node.
    +	 */
    +	codec.decodeRoot = function(dec, root, model)
    +	{
    +		var rootCell = null;
    +		var tmp = root.firstChild;
    +		
    +		while (tmp != null)
    +		{
    +			var cell = dec.decodeCell(tmp);
    +			
    +			if (cell != null && cell.getParent() == null)
    +			{
    +				rootCell = cell;
    +			}
    +			
    +			tmp = tmp.nextSibling;
    +		}
    +
    +		// Sets the root on the model if one has been decoded
    +		if (rootCell != null)
    +		{
    +			model.setRoot(rootCell);
    +		}
    +	};
    +
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxObjectCodec.js b/javascript/src/js/io/mxObjectCodec.js
    new file mode 100644
    index 000000000..9d2473a0f
    --- /dev/null
    +++ b/javascript/src/js/io/mxObjectCodec.js
    @@ -0,0 +1,983 @@
    +/**
    + * $Id: mxObjectCodec.js,v 1.49 2010-12-01 09:19:58 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxObjectCodec
    + *
    + * Generic codec for JavaScript objects that implements a mapping between
    + * JavaScript objects and XML nodes that maps each field or element to an
    + * attribute or child node, and vice versa.
    + * 
    + * Atomic Values:
    + * 
    + * Consider the following example.
    + * 
    + * (code)
    + * var obj = new Object();
    + * obj.foo = "Foo";
    + * obj.bar = "Bar";
    + * (end)
    + * 
    + * This object is encoded into an XML node using the following.
    + * 
    + * (code)
    + * var enc = new mxCodec();
    + * var node = enc.encode(obj);
    + * (end)
    + * 
    + * The output of the encoding may be viewed using <mxLog> as follows.
    + * 
    + * (code)
    + * mxLog.show();
    + * mxLog.debug(mxUtils.getPrettyXml(node));
    + * (end)
    + * 
    + * Finally, the result of the encoding looks as follows.
    + * 
    + * (code)
    + * <Object foo="Foo" bar="Bar"/>
    + * (end)
    + * 
    + * In the above output, the foo and bar fields have been mapped to attributes
    + * with the same names, and the name of the constructor was used for the
    + * nodename.
    + * 
    + * Booleans:
    + *
    + * Since booleans are numbers in JavaScript, all boolean values are encoded
    + * into 1 for true and 0 for false. The decoder also accepts the string true
    + * and false for boolean values.
    + * 
    + * Objects:
    + * 
    + * The above scheme is applied to all atomic fields, that is, to all non-object
    + * fields of an object. For object fields, a child node is created with a
    + * special attribute that contains the fieldname. This special attribute is
    + * called "as" and hence, as is a reserved word that should not be used for a
    + * fieldname.
    + * 
    + * Consider the following example where foo is an object and bar is an atomic
    + * property of foo.
    + * 
    + * (code)
    + * var obj = {foo: {bar: "Bar"}};
    + * (end)
    + * 
    + * This will be mapped to the following XML structure by mxObjectCodec.
    + * 
    + * (code)
    + * <Object>
    + *   <Object bar="Bar" as="foo"/>
    + * </Object>
    + * (end)
    + * 
    + * In the above output, the inner Object node contains the as-attribute that
    + * specifies the fieldname in the enclosing object. That is, the field foo was
    + * mapped to a child node with an as-attribute that has the value foo.
    + * 
    + * Arrays:
    + * 
    + * Arrays are special objects that are either associative, in which case each
    + * key, value pair is treated like a field where the key is the fieldname, or
    + * they are a sequence of atomic values and objects, which is mapped to a
    + * sequence of child nodes. For object elements, the above scheme is applied
    + * without the use of the special as-attribute for creating each child. For
    + * atomic elements, a special add-node is created with the value stored in the
    + * value-attribute.
    + * 
    + * For example, the following array contains one atomic value and one object
    + * with a field called bar. Furthermore it contains two associative entries
    + * called bar with an atomic value, and foo with an object value.
    + * 
    + * (code)
    + * var obj = ["Bar", {bar: "Bar"}];
    + * obj["bar"] = "Bar";
    + * obj["foo"] = {bar: "Bar"};
    + * (end)
    + * 
    + * This array is represented by the following XML nodes.
    + * 
    + * (code)
    + * <Array bar="Bar">
    + *   <add value="Bar"/>
    + *   <Object bar="Bar"/>
    + *   <Object bar="Bar" as="foo"/>
    + * </Array>
    + * (end)
    + * 
    + * The Array node name is the name of the constructor. The additional
    + * as-attribute in the last child contains the key of the associative entry,
    + * whereas the second last child is part of the array sequence and does not
    + * have an as-attribute.
    + * 
    + * References:
    + * 
    + * Objects may be represented as child nodes or attributes with ID values,
    + * which are used to lookup the object in a table within <mxCodec>. The
    + * <isReference> function is in charge of deciding if a specific field should
    + * be encoded as a reference or not. Its default implementation returns true if
    + * the fieldname is in <idrefs>, an array of strings that is used to configure
    + * the <mxObjectCodec>.
    + * 
    + * Using this approach, the mapping does not guarantee that the referenced
    + * object itself exists in the document. The fields that are encoded as
    + * references must be carefully chosen to make sure all referenced objects
    + * exist in the document, or may be resolved by some other means if necessary.
    + * 
    + * For example, in the case of the graph model all cells are stored in a tree
    + * whose root is referenced by the model's root field. A tree is a structure
    + * that is well suited for an XML representation, however, the additional edges
    + * in the graph model have a reference to a source and target cell, which are
    + * also contained in the tree. To handle this case, the source and target cell
    + * of an edge are treated as references, whereas the children are treated as
    + * objects. Since all cells are contained in the tree and no edge references a
    + * source or target outside the tree, this setup makes sure all referenced
    + * objects are contained in the document.
    + * 
    + * In the case of a tree structure we must further avoid infinite recursion by
    + * ignoring the parent reference of each child. This is done by returning true
    + * in <isExcluded>, whose default implementation uses the array of excluded
    + * fieldnames passed to the mxObjectCodec constructor.
    + * 
    + * References are only used for cells in mxGraph. For defining other
    + * referencable object types, the codec must be able to work out the ID of an
    + * object. This is done by implementing <mxCodec.reference>. For decoding a
    + * reference, the XML node with the respective id-attribute is fetched from the
    + * document, decoded, and stored in a lookup table for later reference. For
    + * looking up external objects, <mxCodec.lookup> may be implemented.
    + * 
    + * Expressions:
    + * 
    + * For decoding JavaScript expressions, the add-node may be used with a text
    + * content that contains the JavaScript expression. For example, the following
    + * creates a field called foo in the enclosing object and assigns it the value
    + * of <mxConstants.ALIGN_LEFT>.
    + * 
    + * (code)
    + * <Object>
    + *   <add as="foo">mxConstants.ALIGN_LEFT</add>
    + * </Object>
    + * (end)
    + * 
    + * The resulting object has a field called foo with the value "left". Its XML
    + * representation looks as follows.
    + * 
    + * (code)
    + * <Object foo="left"/>
    + * (end)
    + * 
    + * This means the expression is evaluated at decoding time and the result of
    + * the evaluation is stored in the respective field. Valid expressions are all
    + * JavaScript expressions, including function definitions, which are mapped to
    + * functions on the resulting object.
    + * 
    + * Constructor: mxObjectCodec
    + *
    + * Constructs a new codec for the specified template object.
    + * The variables in the optional exclude array are ignored by
    + * the codec. Variables in the optional idrefs array are
    + * turned into references in the XML. The optional mapping
    + * may be used to map from variable names to XML attributes.
    + * The argument is created as follows:
    + *
    + * (code)
    + * var mapping = new Object();
    + * mapping['variableName'] = 'attribute-name';
    + * (end)
    + *
    + * Parameters:
    + *
    + * template - Prototypical instance of the object to be
    + * encoded/decoded.
    + * exclude - Optional array of fieldnames to be ignored.
    + * idrefs - Optional array of fieldnames to be converted to/from
    + * references.
    + * mapping - Optional mapping from field- to attributenames.
    + */
    +function mxObjectCodec(template, exclude, idrefs, mapping)
    +{
    +	this.template = template;
    +	
    +	this.exclude = (exclude != null) ? exclude : [];
    +	this.idrefs = (idrefs != null) ? idrefs : [];
    +	this.mapping = (mapping != null) ? mapping : [];
    +	
    +	this.reverse = new Object();
    +	
    +	for (var i in this.mapping)
    +	{
    +		this.reverse[this.mapping[i]] = i;
    +	}
    +};
    +	
    +/**
    + * Variable: template
    + *
    + * Holds the template object associated with this codec.
    + */
    +mxObjectCodec.prototype.template = null;
    +
    +/**
    + * Variable: exclude
    + *
    + * Array containing the variable names that should be
    + * ignored by the codec.
    + */
    +mxObjectCodec.prototype.exclude = null;
    +
    +/**
    + * Variable: idrefs
    + *
    + * Array containing the variable names that should be
    + * turned into or converted from references. See
    + * <mxCodec.getId> and <mxCodec.getObject>.
    + */
    +mxObjectCodec.prototype.idrefs = null;
    +
    +/**
    + * Variable: mapping
    + *
    + * Maps from from fieldnames to XML attribute names.
    + */
    +mxObjectCodec.prototype.mapping = null;
    +
    +/**
    + * Variable: reverse
    + *
    + * Maps from from XML attribute names to fieldnames.
    + */
    +mxObjectCodec.prototype.reverse = null;
    +
    +/**
    + * Function: getName
    + * 
    + * Returns the name used for the nodenames and lookup of the codec when
    + * classes are encoded and nodes are decoded. For classes to work with
    + * this the codec registry automatically adds an alias for the classname
    + * if that is different than what this returns. The default implementation
    + * returns the classname of the template class.
    + */
    +mxObjectCodec.prototype.getName = function()
    +{
    +	return mxUtils.getFunctionName(this.template.constructor);
    +};
    +
    +/**
    + * Function: cloneTemplate
    + * 
    + * Returns a new instance of the template for this codec.
    + */
    +mxObjectCodec.prototype.cloneTemplate = function()
    +{
    +	return new this.template.constructor();
    +};
    +
    +/**
    + * Function: getFieldName
    + * 
    + * Returns the fieldname for the given attributename.
    + * Looks up the value in the <reverse> mapping or returns
    + * the input if there is no reverse mapping for the
    + * given name.
    + */
    +mxObjectCodec.prototype.getFieldName = function(attributename)
    +{
    +	if (attributename != null)
    +	{
    +		var mapped = this.reverse[attributename];
    +		
    +		if (mapped != null)
    +		{
    +			attributename = mapped;
    +		}
    +	}
    +	
    +	return attributename;
    +};
    +
    +/**
    + * Function: getAttributeName
    + * 
    + * Returns the attributename for the given fieldname.
    + * Looks up the value in the <mapping> or returns
    + * the input if there is no mapping for the
    + * given name.
    + */
    +mxObjectCodec.prototype.getAttributeName = function(fieldname)
    +{
    +	if (fieldname != null)
    +	{
    +		var mapped = this.mapping[fieldname];
    +		
    +		if (mapped != null)
    +		{
    +			fieldname = mapped;
    +		}
    +	}
    +	
    +	return fieldname;
    +};
    +
    +/**
    + * Function: isExcluded
    + *
    + * Returns true if the given attribute is to be ignored by the codec. This
    + * implementation returns true if the given fieldname is in <exclude> or
    + * if the fieldname equals <mxObjectIdentity.FIELD_NAME>.
    + *
    + * Parameters:
    + *
    + * obj - Object instance that contains the field.
    + * attr - Fieldname of the field.
    + * value - Value of the field.
    + * write - Boolean indicating if the field is being encoded or decoded.
    + * Write is true if the field is being encoded, else it is being decoded.
    + */
    +mxObjectCodec.prototype.isExcluded = function(obj, attr, value, write)
    +{
    +	return attr == mxObjectIdentity.FIELD_NAME ||
    +		mxUtils.indexOf(this.exclude, attr) >= 0;
    +};
    +
    +/**
    + * Function: isReference
    + *
    + * Returns true if the given fieldname is to be treated
    + * as a textual reference (ID). This implementation returns
    + * true if the given fieldname is in <idrefs>.
    + *
    + * Parameters:
    + *
    + * obj - Object instance that contains the field.
    + * attr - Fieldname of the field.
    + * value - Value of the field. 
    + * write - Boolean indicating if the field is being encoded or decoded.
    + * Write is true if the field is being encoded, else it is being decoded.
    + */
    +mxObjectCodec.prototype.isReference = function(obj, attr, value, write)
    +{
    +	return mxUtils.indexOf(this.idrefs, attr) >= 0;
    +};
    +
    +/**
    + * Function: encode
    + *
    + * Encodes the specified object and returns a node
    + * representing then given object. Calls <beforeEncode>
    + * after creating the node and <afterEncode> with the 
    + * resulting node after processing.
    + *
    + * Enc is a reference to the calling encoder. It is used
    + * to encode complex objects and create references.
    + *
    + * This implementation encodes all variables of an
    + * object according to the following rules:
    + *
    + * - If the variable name is in <exclude> then it is ignored.
    + * - If the variable name is in <idrefs> then <mxCodec.getId>
    + * is used to replace the object with its ID.
    + * - The variable name is mapped using <mapping>.
    + * - If obj is an array and the variable name is numeric
    + * (ie. an index) then it is not encoded.
    + * - If the value is an object, then the codec is used to
    + * create a child node with the variable name encoded into
    + * the "as" attribute.
    + * - Else, if <encodeDefaults> is true or the value differs
    + * from the template value, then ...
    + * - ... if obj is not an array, then the value is mapped to
    + * an attribute.
    + * - ... else if obj is an array, the value is mapped to an
    + * add child with a value attribute or a text child node,
    + * if the value is a function.
    + *
    + * If no ID exists for a variable in <idrefs> or if an object
    + * cannot be encoded, a warning is issued using <mxLog.warn>.
    + *
    + * Returns the resulting XML node that represents the given
    + * object.
    + *
    + * Parameters:
    + *
    + * enc - <mxCodec> that controls the encoding process.
    + * obj - Object to be encoded.
    + */
    +mxObjectCodec.prototype.encode = function(enc, obj)
    +{
    +	var node = enc.document.createElement(this.getName());
    +	
    +	obj = this.beforeEncode(enc, obj, node);
    +	this.encodeObject(enc, obj, node);
    +	
    +	return this.afterEncode(enc, obj, node);
    +};
    +	
    +/**
    + * Function: encodeObject
    + *
    + * Encodes the value of each member in then given obj into the given node using
    + * <encodeValue>.
    + * 
    + * Parameters:
    + *
    + * enc - <mxCodec> that controls the encoding process.
    + * obj - Object to be encoded.
    + * node - XML node that contains the encoded object.
    + */
    +mxObjectCodec.prototype.encodeObject = function(enc, obj, node)
    +{
    +	enc.setAttribute(node, 'id', enc.getId(obj));
    +	
    +    for (var i in obj)
    +    {
    +		var name = i;
    +		var value = obj[name];
    +		
    +    	if (value != null && !this.isExcluded(obj, name, value, true))
    +    	{
    +    		if (mxUtils.isNumeric(name))
    +    		{
    +    			name = null;
    +    		}
    +    		
    +    		this.encodeValue(enc, obj, name, value, node);
    +    	}
    +    }
    +};
    +
    +/**
    + * Function: encodeValue
    + * 
    + * Converts the given value according to the mappings
    + * and id-refs in this codec and uses <writeAttribute>
    + * to write the attribute into the given node.
    + * 
    + * Parameters:
    + *
    + * enc - <mxCodec> that controls the encoding process.
    + * obj - Object whose property is going to be encoded.
    + * name - XML node that contains the encoded object.
    + * value - Value of the property to be encoded.
    + * node - XML node that contains the encoded object.
    + */
    +mxObjectCodec.prototype.encodeValue = function(enc, obj,
    +	name, value, node)
    +{
    +	if (value != null)
    +	{
    +		if (this.isReference(obj, name, value, true))
    +		{
    +			var tmp = enc.getId(value);
    +			
    +			if (tmp == null)
    +			{
    +		    	mxLog.warn('mxObjectCodec.encode: No ID for ' +
    +		    		this.getName() + '.' + name + '=' + value);
    +		    	return; // exit
    +		    }
    +		    
    +		    value = tmp;
    +		}
    +
    +		var defaultValue = this.template[name];
    +		
    +		// Checks if the value is a default value and
    +		// the name is correct
    +		if (name == null || enc.encodeDefaults ||
    +			defaultValue != value)
    +		{
    +			name = this.getAttributeName(name);
    +			this.writeAttribute(enc, obj, name, value, node);	
    +		}
    +	}
    +};
    +
    +/**
    + * Function: writeAttribute
    + * 
    + * Writes the given value into node using <writePrimitiveAttribute>
    + * or <writeComplexAttribute> depending on the type of the value.
    + */
    +mxObjectCodec.prototype.writeAttribute = function(enc, obj,
    +	attr, value, node)
    +{
    +	if (typeof(value) != 'object' /* primitive type */)
    +	{
    +		this.writePrimitiveAttribute(enc, obj, attr, value, node);
    +	}
    +	else /* complex type */
    +	{
    +		this.writeComplexAttribute(enc, obj, attr, value, node);
    +	}
    +};
    +
    +/**
    + * Function: writePrimitiveAttribute
    + * 
    + * Writes the given value as an attribute of the given node.
    + */
    +mxObjectCodec.prototype.writePrimitiveAttribute = function(enc, obj,
    +	attr, value, node)
    +{
    +	value = this.convertValueToXml(value);
    +	
    +	if (attr == null)
    +	{
    +		var child = enc.document.createElement('add');
    +		
    +		if (typeof(value) == 'function')
    +		{
    +    		child.appendChild(
    +    			enc.document.createTextNode(value));
    +    	}
    +    	else
    +    	{
    +    		enc.setAttribute(child, 'value', value);
    +    	}
    +    	
    +		node.appendChild(child);
    +	}
    +	else if (typeof(value) != 'function')
    +	{
    +    	enc.setAttribute(node, attr, value);
    +	}		
    +};
    +	
    +/**
    + * Function: writeComplexAttribute
    + * 
    + * Writes the given value as a child node of the given node.
    + */
    +mxObjectCodec.prototype.writeComplexAttribute = function(enc, obj,
    +	attr, value, node)
    +{
    +	var child = enc.encode(value);
    +	
    +	if (child != null)
    +	{
    +		if (attr != null)
    +		{
    +    		child.setAttribute('as', attr);
    +    	}
    +    	
    +    	node.appendChild(child);
    +	}
    +	else
    +	{
    +		mxLog.warn('mxObjectCodec.encode: No node for ' +
    +			this.getName() + '.' + attr + ': ' + value);
    +	}
    +};
    +
    +/**
    + * Function: convertValueToXml
    + * 
    + * Converts true to "1" and false to "0". All other values are ignored.
    + */
    +mxObjectCodec.prototype.convertValueToXml = function(value)
    +{
    +	// Makes sure to encode boolean values as numeric values
    +	if (typeof(value.length) == 'undefined' &&
    +		(value == true ||
    +		value == false))
    +	{
    +		// Checks if the value is true (do not use the
    +		// value as is, because this would check if the
    +		// value is not null, so 0 would be true!
    +		value = (value == true) ? '1' : '0';
    +	}
    +	return value;
    +};
    +
    +/**
    + * Function: convertValueFromXml
    + * 
    + * Converts booleans and numeric values to the respective types.
    + */
    +mxObjectCodec.prototype.convertValueFromXml = function(value)
    +{
    +	if (mxUtils.isNumeric(value))
    +	{
    +		value = parseFloat(value);
    +	}
    +	
    +	return value;
    +};
    +
    +/**
    + * Function: beforeEncode
    + *
    + * Hook for subclassers to pre-process the object before
    + * encoding. This returns the input object. The return
    + * value of this function is used in <encode> to perform
    + * the default encoding into the given node.
    + *
    + * Parameters:
    + *
    + * enc - <mxCodec> that controls the encoding process.
    + * obj - Object to be encoded.
    + * node - XML node to encode the object into.
    + */
    +mxObjectCodec.prototype.beforeEncode = function(enc, obj, node)
    +{
    +	return obj;
    +};
    +
    +/**
    + * Function: afterEncode
    + *
    + * Hook for subclassers to post-process the node
    + * for the given object after encoding and return the
    + * post-processed node. This implementation returns 
    + * the input node. The return value of this method
    + * is returned to the encoder from <encode>.
    + *
    + * Parameters:
    + *
    + * enc - <mxCodec> that controls the encoding process.
    + * obj - Object to be encoded.
    + * node - XML node that represents the default encoding.
    + */
    +mxObjectCodec.prototype.afterEncode = function(enc, obj, node)
    +{
    +	return node;
    +};
    +
    +/**
    + * Function: decode
    + *
    + * Parses the given node into the object or returns a new object
    + * representing the given node.
    + *
    + * Dec is a reference to the calling decoder. It is used to decode
    + * complex objects and resolve references.
    + *
    + * If a node has an id attribute then the object cache is checked for the
    + * object. If the object is not yet in the cache then it is constructed
    + * using the constructor of <template> and cached in <mxCodec.objects>.
    + *
    + * This implementation decodes all attributes and childs of a node
    + * according to the following rules:
    + *
    + * - If the variable name is in <exclude> or if the attribute name is "id"
    + * or "as" then it is ignored.
    + * - If the variable name is in <idrefs> then <mxCodec.getObject> is used
    + * to replace the reference with an object.
    + * - The variable name is mapped using a reverse <mapping>.
    + * - If the value has a child node, then the codec is used to create a
    + * child object with the variable name taken from the "as" attribute.
    + * - If the object is an array and the variable name is empty then the
    + * value or child object is appended to the array.
    + * - If an add child has no value or the object is not an array then
    + * the child text content is evaluated using <mxUtils.eval>.
    + *
    + * For add nodes where the object is not an array and the variable name
    + * is defined, the default mechanism is used, allowing to override/add
    + * methods as follows:
    + *
    + * (code)
    + * <Object>
    + *   <add as="hello"><![CDATA[
    + *     function(arg1) {
    + *       mxUtils.alert('Hello '+arg1);
    + *     }
    + *   ]]></add>
    + * </Object>
    + * (end) 
    + *
    + * If no object exists for an ID in <idrefs> a warning is issued
    + * using <mxLog.warn>.
    + *
    + * Returns the resulting object that represents the given XML node
    + * or the object given to the method as the into parameter.
    + *
    + * Parameters:
    + *
    + * dec - <mxCodec> that controls the decoding process.
    + * node - XML node to be decoded.
    + * into - Optional objec to encode the node into.
    + */
    +mxObjectCodec.prototype.decode = function(dec, node, into)
    +{
    +	var id = node.getAttribute('id');
    +	var obj = dec.objects[id];
    +	
    +	if (obj == null)
    +	{
    +		obj = into || this.cloneTemplate();
    +		
    +		if (id != null)
    +		{
    +			dec.putObject(id, obj);
    +		}
    +	}
    +	
    +	node = this.beforeDecode(dec, node, obj);
    +	this.decodeNode(dec, node, obj);
    +	
    +    return this.afterDecode(dec, node, obj);
    +};	
    +
    +/**
    + * Function: decodeNode
    + * 
    + * Calls <decodeAttributes> and <decodeChildren> for the given node.
    + */	
    +mxObjectCodec.prototype.decodeNode = function(dec, node, obj)
    +{
    +	if (node != null)
    +	{
    +		this.decodeAttributes(dec, node, obj);
    +		this.decodeChildren(dec, node, obj);
    +	}
    +};
    +
    +/**
    + * Function: decodeAttributes
    + * 
    + * Decodes all attributes of the given node using <decodeAttribute>.
    + */	
    +mxObjectCodec.prototype.decodeAttributes = function(dec, node, obj)
    +{
    +	var attrs = node.attributes;
    +	
    +	if (attrs != null)
    +	{
    +		for (var i = 0; i < attrs.length; i++)
    +		{
    +			this.decodeAttribute(dec, attrs[i], obj);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: decodeAttribute
    + * 
    + * Reads the given attribute into the specified object.
    + */	
    +mxObjectCodec.prototype.decodeAttribute = function(dec, attr, obj)
    +{
    +	var name = attr.nodeName;
    +	
    +	if (name != 'as' && name != 'id')
    +	{
    +		// Converts the string true and false to their boolean values.
    +		// This may require an additional check on the obj to see if
    +		// the existing field is a boolean value or uninitialized, in
    +		// which case we may want to convert true and false to a string.
    +		var value = this.convertValueFromXml(attr.nodeValue);
    +		var fieldname = this.getFieldName(name);
    +		
    +		if (this.isReference(obj, fieldname, value, false))
    +		{
    +			var tmp = dec.getObject(value);
    +			
    +			if (tmp == null)
    +			{
    +		    	mxLog.warn('mxObjectCodec.decode: No object for ' +
    +		    		this.getName() + '.' + name + '=' + value);
    +		    	return; // exit
    +		    }
    +		    
    +		    value = tmp;
    +		}
    +
    +		if (!this.isExcluded(obj, name, value, false))
    +		{
    +			//mxLog.debug(mxUtils.getFunctionName(obj.constructor)+'.'+name+'='+value);
    +			obj[name] = value;
    +		}
    +	}
    +};
    +
    +/**
    + * Function: decodeChildren
    + * 
    + * Decodec all children of the given node using <decodeChild>.
    + */	
    +mxObjectCodec.prototype.decodeChildren = function(dec, node, obj)
    +{
    +	var child = node.firstChild;
    +	
    +	while (child != null)
    +	{
    +		var tmp = child.nextSibling;
    +		
    +		if (child.nodeType == mxConstants.NODETYPE_ELEMENT &&
    +			!this.processInclude(dec, child, obj))
    +		{
    +			this.decodeChild(dec, child, obj);
    +		}
    +		
    +		child = tmp;
    +	}
    +};
    +
    +/**
    + * Function: decodeChild
    + * 
    + * Reads the specified child into the given object.
    + */	
    +mxObjectCodec.prototype.decodeChild = function(dec, child, obj)
    +{
    +	var fieldname = this.getFieldName(child.getAttribute('as'));
    +	
    +	if (fieldname == null ||
    +		!this.isExcluded(obj, fieldname, child, false))
    +	{
    +		var template = this.getFieldTemplate(obj, fieldname, child);
    +		var value = null;
    +		
    +		if (child.nodeName == 'add')
    +		{
    +			value = child.getAttribute('value');
    +			
    +			if (value == null)
    +			{
    +				value = mxUtils.eval(mxUtils.getTextContent(child));
    +				//mxLog.debug('Decoded '+fieldname+' '+mxUtils.getTextContent(child));
    +			}
    +		}
    +		else
    +		{
    +			value = dec.decode(child, template);
    +			// mxLog.debug('Decoded '+node.nodeName+'.'+fieldname+'='+
    +			//	((tmp != null) ? tmp.constructor.name : 'null'));
    +		}
    +
    +		this.addObjectValue(obj, fieldname, value, template);
    +	}
    +};
    +
    +/**
    + * Function: getFieldTemplate
    + * 
    + * Returns the template instance for the given field. This returns the
    + * value of the field, null if the value is an array or an empty collection
    + * if the value is a collection. The value is then used to populate the
    + * field for a new instance. For strongly typed languages it may be
    + * required to override this to return the correct collection instance
    + * based on the encoded child.
    + */	
    +mxObjectCodec.prototype.getFieldTemplate = function(obj, fieldname, child)
    +{
    +	var template = obj[fieldname];
    +	
    +	// Non-empty arrays are replaced completely
    +    if (template instanceof Array && template.length > 0)
    +    {
    +        template = null;
    +    }
    +    
    +    return template;
    +};
    +
    +/**
    + * Function: addObjectValue
    + * 
    + * Sets the decoded child node as a value of the given object. If the
    + * object is a map, then the value is added with the given fieldname as a
    + * key. If the fieldname is not empty, then setFieldValue is called or
    + * else, if the object is a collection, the value is added to the
    + * collection. For strongly typed languages it may be required to
    + * override this with the correct code to add an entry to an object.
    + */	
    +mxObjectCodec.prototype.addObjectValue = function(obj, fieldname, value, template)
    +{
    +	if (value != null && value != template)
    +	{
    +		if (fieldname != null && fieldname.length > 0)
    +		{
    +			obj[fieldname] = value;
    +		}
    +		else
    +		{
    +			obj.push(value);
    +		}
    +		//mxLog.debug('Decoded '+mxUtils.getFunctionName(obj.constructor)+'.'+fieldname+': '+value);
    +	}
    +};
    +
    +/**
    + * Function: processInclude
    + *
    + * Returns true if the given node is an include directive and
    + * executes the include by decoding the XML document. Returns
    + * false if the given node is not an include directive.
    + *
    + * Parameters:
    + *
    + * dec - <mxCodec> that controls the encoding/decoding process.
    + * node - XML node to be checked.
    + * into - Optional object to pass-thru to the codec.
    + */
    +mxObjectCodec.prototype.processInclude = function(dec, node, into)
    +{
    +	if (node.nodeName == 'include')
    +	{
    +		var name = node.getAttribute('name');
    +		
    +		if (name != null)
    +		{
    +			try
    +			{
    +				var xml = mxUtils.load(name).getDocumentElement();
    +				
    +				if (xml != null)
    +				{
    +					dec.decode(xml, into);
    +				}
    +			}
    +			catch (e)
    +			{
    +				// ignore
    +			}
    +		}
    +		
    +		return true;
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: beforeDecode
    + *
    + * Hook for subclassers to pre-process the node for
    + * the specified object and return the node to be
    + * used for further processing by <decode>.
    + * The object is created based on the template in the 
    + * calling method and is never null. This implementation
    + * returns the input node. The return value of this
    + * function is used in <decode> to perform
    + * the default decoding into the given object.
    + *
    + * Parameters:
    + *
    + * dec - <mxCodec> that controls the decoding process.
    + * node - XML node to be decoded.
    + * obj - Object to encode the node into.
    + */
    +mxObjectCodec.prototype.beforeDecode = function(dec, node, obj)
    +{
    +	return node;
    +};
    +
    +/**
    + * Function: afterDecode
    + *
    + * Hook for subclassers to post-process the object after
    + * decoding. This implementation returns the given object
    + * without any changes. The return value of this method
    + * is returned to the decoder from <decode>.
    + *
    + * Parameters:
    + *
    + * enc - <mxCodec> that controls the encoding process.
    + * node - XML node to be decoded.
    + * obj - Object that represents the default decoding.
    + */
    +mxObjectCodec.prototype.afterDecode = function(dec, node, obj)
    +{
    +	return obj;
    +};
    diff --git a/javascript/src/js/io/mxRootChangeCodec.js b/javascript/src/js/io/mxRootChangeCodec.js
    new file mode 100644
    index 000000000..fda613ade
    --- /dev/null
    +++ b/javascript/src/js/io/mxRootChangeCodec.js
    @@ -0,0 +1,83 @@
    +/**
    + * $Id: mxRootChangeCodec.js,v 1.6 2010-09-15 14:38:51 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxRootChangeCodec
    +	 *
    +	 * Codec for <mxRootChange>s. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec> and
    +	 * the <mxCodecRegistry>.
    +	 *
    +	 * Transient Fields:
    +	 *
    +	 * - model
    +	 * - previous
    +	 * - root
    +	 */
    +	var codec = new mxObjectCodec(new mxRootChange(),
    +		['model', 'previous', 'root']);
    +
    +	/**
    +	 * Function: onEncode
    +	 *
    +	 * Encodes the child recursively.
    +	 */
    +	codec.afterEncode = function(enc, obj, node)
    +	{
    +		enc.encodeCell(obj.root, node);
    +		
    +		return node;
    +	};
    +
    +	/**
    +	 * Function: beforeDecode
    +	 *
    +	 * Decodes the optional children as cells
    +	 * using the respective decoder.
    +	 */
    +	codec.beforeDecode = function(dec, node, obj)
    +	{
    +		if (node.firstChild != null &&
    +			node.firstChild.nodeType == mxConstants.NODETYPE_ELEMENT)
    +		{
    +			// Makes sure the original node isn't modified
    +			node = node.cloneNode(true);
    +			
    +			var tmp = node.firstChild;
    +			obj.root = dec.decodeCell(tmp, false);
    +
    +			var tmp2 = tmp.nextSibling;
    +			tmp.parentNode.removeChild(tmp);
    +			tmp = tmp2;
    +		
    +			while (tmp != null)
    +			{
    +				tmp2 = tmp.nextSibling;
    +				dec.decodeCell(tmp);
    +				tmp.parentNode.removeChild(tmp);
    +				tmp = tmp2;
    +			}
    +		}
    +		
    +		return node;
    +	};
    +	
    +	/**
    +	 * Function: afterDecode
    +	 *
    +	 * Restores the state by assigning the previous value.
    +	 */
    +	codec.afterDecode = function(dec, node, obj)
    +	{
    +		obj.previous = obj.root;
    +		
    +		return obj;
    +	};
    +
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxStylesheetCodec.js b/javascript/src/js/io/mxStylesheetCodec.js
    new file mode 100644
    index 000000000..7636eb19f
    --- /dev/null
    +++ b/javascript/src/js/io/mxStylesheetCodec.js
    @@ -0,0 +1,210 @@
    +/**
    + * $Id: mxStylesheetCodec.js,v 1.19 2011-06-13 08:18:42 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxStylesheetCodec
    +	 *
    +	 * Codec for <mxStylesheet>s. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec>
    +	 * and the <mxCodecRegistry>.
    +	 */
    +	var codec = new mxObjectCodec(new mxStylesheet());
    +
    +	/**
    +	 * Function: encode
    +	 *
    +	 * Encodes a stylesheet. See <decode> for a description of the
    +	 * format.
    +	 */
    +	codec.encode = function(enc, obj)
    +	{
    +		var node = enc.document.createElement(this.getName());
    +		
    +		for (var i in obj.styles)
    +		{
    +			var style = obj.styles[i];
    +			var styleNode = enc.document.createElement('add');
    +			
    +			if (i != null)
    +			{
    +				styleNode.setAttribute('as', i);
    +				
    +				for (var j in style)
    +				{
    +					var value = this.getStringValue(j, style[j]);
    +					
    +					if (value != null)
    +					{
    +						var entry = enc.document.createElement('add');
    +						entry.setAttribute('value', value);
    +						entry.setAttribute('as', j);
    +						styleNode.appendChild(entry);
    +					}
    +				}
    +				
    +				if (styleNode.childNodes.length > 0)
    +				{
    +					node.appendChild(styleNode);
    +				}
    +			}
    +		}
    +		
    +	    return node;
    +	};
    +
    +	/**
    +	 * Function: getStringValue
    +	 *
    +	 * Returns the string for encoding the given value.
    +	 */
    +	codec.getStringValue = function(key, value)
    +	{
    +		var type = typeof(value);
    +		
    +		if (type == 'function')
    +		{
    +			value = mxStyleRegistry.getName(style[j]);
    +		}
    +		else if (type == 'object')
    +		{
    +			value = null;
    +		}
    +		
    +		return value;
    +	};
    +	
    +	/**
    +	 * Function: decode
    +	 *
    +	 * Reads a sequence of the following child nodes
    +	 * and attributes:
    +	 *
    +	 * Child Nodes:
    +	 *
    +	 * add - Adds a new style.
    +	 *
    +	 * Attributes:
    +	 *
    +	 * as - Name of the style.
    +	 * extend - Name of the style to inherit from.
    +	 *
    +	 * Each node contains another sequence of add and remove nodes with the following
    +	 * attributes:
    +	 *
    +	 * as - Name of the style (see <mxConstants>).
    +	 * value - Value for the style.
    +	 *
    +	 * Instead of the value-attribute, one can put Javascript expressions into
    +	 * the node as follows:
    +	 * <add as="perimeter">mxPerimeter.RectanglePerimeter</add>
    +	 *
    +	 * A remove node will remove the entry with the name given in the as-attribute
    +	 * from the style.
    +	 * 
    +	 * Example:
    +	 *
    +	 * (code)
    +	 * <mxStylesheet as="stylesheet">
    +	 *   <add as="text">
    +	 *     <add as="fontSize" value="12"/>
    +	 *   </add>
    +	 *   <add as="defaultVertex" extend="text">
    +	 *     <add as="shape" value="rectangle"/>
    +	 *   </add>
    +	 * </mxStylesheet>
    +	 * (end)
    +	 */
    +	codec.decode = function(dec, node, into)
    +	{
    +		var obj = into || new this.template.constructor();
    +		var id = node.getAttribute('id');
    +		
    +		if (id != null)
    +		{
    +			dec.objects[id] = obj;
    +		}
    +		
    +		node = node.firstChild;
    +		
    +		while (node != null)
    +		{
    +			if (!this.processInclude(dec, node, obj) &&
    +				node.nodeName == 'add')
    +			{
    +				var as = node.getAttribute('as');
    +				
    +				if (as != null)
    +				{
    +					var extend = node.getAttribute('extend');
    +					var style = (extend != null) ? mxUtils.clone(obj.styles[extend]) : null;
    +					
    +					if (style == null)
    +					{
    +						if (extend != null)
    +						{
    +							mxLog.warn('mxStylesheetCodec.decode: stylesheet ' +
    +								extend + ' not found to extend');
    +						}
    +						
    +						style = new Object();
    +					}
    +					
    +					var entry = node.firstChild;
    +					
    +					while (entry != null)
    +					{
    +						if (entry.nodeType == mxConstants.NODETYPE_ELEMENT)
    +						{
    +						 	var key = entry.getAttribute('as');
    +						 	
    +						 	if (entry.nodeName == 'add')
    +						 	{
    +							 	var text = mxUtils.getTextContent(entry);
    +							 	var value = null;
    +							 	
    +							 	if (text != null &&
    +							 		text.length > 0)
    +							 	{
    +							 		value = mxUtils.eval(text);
    +							 	}
    +							 	else
    +							 	{
    +							 		value = entry.getAttribute('value');
    +							 		
    +							 		if (mxUtils.isNumeric(value))
    +							 		{
    +										value = parseFloat(value);
    +									}
    +							 	}
    +
    +							 	if (value != null)
    +							 	{
    +							 		style[key] = value;
    +							 	}
    +						 	}
    +						 	else if (entry.nodeName == 'remove')
    +						 	{
    +						 		delete style[key];
    +						 	}
    +						}
    +						
    +						entry = entry.nextSibling;
    +					}
    +					
    +					obj.putCellStyle(as, style);
    +				}
    +			}
    +			
    +			node = node.nextSibling;
    +		}
    +		
    +		return obj;
    +	};
    +
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/io/mxTerminalChangeCodec.js b/javascript/src/js/io/mxTerminalChangeCodec.js
    new file mode 100644
    index 000000000..a51d8714d
    --- /dev/null
    +++ b/javascript/src/js/io/mxTerminalChangeCodec.js
    @@ -0,0 +1,42 @@
    +/**
    + * $Id: mxTerminalChangeCodec.js,v 1.7 2010-09-13 15:58:36 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +mxCodecRegistry.register(function()
    +{
    +	/**
    +	 * Class: mxTerminalChangeCodec
    +	 *
    +	 * Codec for <mxTerminalChange>s. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec> and
    +	 * the <mxCodecRegistry>.
    +	 *
    +	 * Transient Fields:
    +	 *
    +	 * - model
    +	 * - previous
    +	 *
    +	 * Reference Fields:
    +	 *
    +	 * - cell
    +	 * - terminal
    +	 */
    +	var codec = new mxObjectCodec(new mxTerminalChange(),
    +		['model', 'previous'], ['cell', 'terminal']);
    +
    +	/**
    +	 * Function: afterDecode
    +	 *
    +	 * Restores the state by assigning the previous value.
    +	 */
    +	codec.afterDecode = function(dec, node, obj)
    +	{
    +		obj.previous = obj.terminal;
    +		
    +		return obj;
    +	};
    +
    +	// Returns the codec into the registry
    +	return codec;
    +
    +}());
    diff --git a/javascript/src/js/layout/hierarchical/model/mxGraphAbstractHierarchyCell.js b/javascript/src/js/layout/hierarchical/model/mxGraphAbstractHierarchyCell.js
    new file mode 100644
    index 000000000..e2fe6a6a8
    --- /dev/null
    +++ b/javascript/src/js/layout/hierarchical/model/mxGraphAbstractHierarchyCell.js
    @@ -0,0 +1,206 @@
    +/**
    + * $Id: mxGraphAbstractHierarchyCell.js,v 1.12 2010-01-04 11:18:26 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraphAbstractHierarchyCell
    + * 
    + * An abstraction of an internal hierarchy node or edge
    + * 
    + * Constructor: mxGraphAbstractHierarchyCell
    + *
    + * Constructs a new hierarchical layout algorithm.
    + *
    + * Arguments:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + * deterministic - Optional boolean that specifies if this layout should be
    + * deterministic. Default is true.
    + */
    +function mxGraphAbstractHierarchyCell()
    +{
    +	this.x = [];
    +	this.y = [];
    +	this.temp = [];
    +};
    +
    +/**
    + * Variable: maxRank
    + * 
    + * The maximum rank this cell occupies. Default is -1.
    + */
    +mxGraphAbstractHierarchyCell.prototype.maxRank = -1;
    +
    +/**
    + * Variable: minRank
    + * 
    + * The minimum rank this cell occupies. Default is -1.
    + */
    +mxGraphAbstractHierarchyCell.prototype.minRank = -1;
    +
    +/**
    + * Variable: x
    + * 
    + * The x position of this cell for each layer it occupies
    + */
    +mxGraphAbstractHierarchyCell.prototype.x = null;
    +
    +/**
    + * Variable: y
    + * 
    + * The y position of this cell for each layer it occupies
    + */
    +mxGraphAbstractHierarchyCell.prototype.y = null;
    +
    +/**
    + * Variable: width
    + * 
    + * The width of this cell
    + */
    +mxGraphAbstractHierarchyCell.prototype.width = 0;
    +
    +/**
    + * Variable: height
    + * 
    + * The height of this cell
    + */
    +mxGraphAbstractHierarchyCell.prototype.height = 0;
    +
    +/**
    + * Variable: nextLayerConnectedCells
    + * 
    + * A cached version of the cells this cell connects to on the next layer up
    + */
    +mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells = null;
    +
    +/**
    + * Variable: previousLayerConnectedCells
    + * 
    + * A cached version of the cells this cell connects to on the next layer down
    + */
    +mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells = null;
    +
    +/**
    + * Variable: temp
    + * 
    + * Temporary variable for general use. Generally, try to avoid
    + * carrying information between stages. Currently, the longest
    + * path layering sets temp to the rank position in fixRanks()
    + * and the crossing reduction uses this. This meant temp couldn't
    + * be used for hashing the nodes in the model dfs and so hashCode
    + * was created
    + */
    +mxGraphAbstractHierarchyCell.prototype.temp = null;
    +
    +/**
    + * Function: getNextLayerConnectedCells
    + * 
    + * Returns the cells this cell connects to on the next layer up
    + */
    +mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells = function(layer)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: getPreviousLayerConnectedCells
    + * 
    + * Returns the cells this cell connects to on the next layer down
    + */
    +mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells = function(layer)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: isEdge
    + * 
    + * Returns whether or not this cell is an edge
    + */
    +mxGraphAbstractHierarchyCell.prototype.isEdge = function()
    +{
    +	return false;
    +};
    +
    +/**
    + * Function: isVertex
    + * 
    + * Returns whether or not this cell is a node
    + */
    +mxGraphAbstractHierarchyCell.prototype.isVertex = function()
    +{
    +	return false;
    +};
    +
    +/**
    + * Function: getGeneralPurposeVariable
    + * 
    + * Gets the value of temp for the specified layer
    + */
    +mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable = function(layer)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: setGeneralPurposeVariable
    + * 
    + * Set the value of temp for the specified layer
    + */
    +mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable = function(layer, value)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: setX
    + * 
    + * Set the value of x for the specified layer
    + */
    +mxGraphAbstractHierarchyCell.prototype.setX = function(layer, value)
    +{
    +	if (this.isVertex())
    +	{
    +		this.x[0] = value;
    +	}
    +	else if (this.isEdge())
    +	{
    +		this.x[layer - this.minRank - 1] = value;
    +	}
    +};
    +
    +/**
    + * Function: getX
    + * 
    + * Gets the value of x on the specified layer
    + */
    +mxGraphAbstractHierarchyCell.prototype.getX = function(layer)
    +{
    +	if (this.isVertex())
    +	{
    +		return this.x[0];
    +	}
    +	else if (this.isEdge())
    +	{
    +		return this.x[layer - this.minRank - 1];
    +	}
    +
    +	return 0.0;
    +};
    +
    +/**
    + * Function: setY
    + * 
    + * Set the value of y for the specified layer
    + */
    +mxGraphAbstractHierarchyCell.prototype.setY = function(layer, value)
    +{
    +	if (this.isVertex())
    +	{
    +		this.y[0] = value;
    +	}
    +	else if (this.isEdge())
    +	{
    +		this.y[layer -this. minRank - 1] = value;
    +	}
    +};
    diff --git a/javascript/src/js/layout/hierarchical/model/mxGraphHierarchyEdge.js b/javascript/src/js/layout/hierarchical/model/mxGraphHierarchyEdge.js
    new file mode 100644
    index 000000000..7f7a9a9e7
    --- /dev/null
    +++ b/javascript/src/js/layout/hierarchical/model/mxGraphHierarchyEdge.js
    @@ -0,0 +1,159 @@
    +/**
    + * $Id: mxGraphHierarchyEdge.js,v 1.13 2010-01-04 11:18:26 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraphHierarchyEdge
    + * 
    + * An abstraction of a hierarchical edge for the hierarchy layout
    + * 
    + * Constructor: mxGraphHierarchyEdge
    + *
    + * Constructs a hierarchy edge
    + *
    + * Arguments:
    + * 
    + * edges - a list of real graph edges this abstraction represents
    + */
    +function mxGraphHierarchyEdge(edges)
    +{
    +	mxGraphAbstractHierarchyCell.apply(this, arguments);
    +	this.edges = edges;
    +};
    +
    +/**
    + * Extends mxGraphAbstractHierarchyCell.
    + */
    +mxGraphHierarchyEdge.prototype = new mxGraphAbstractHierarchyCell();
    +mxGraphHierarchyEdge.prototype.constructor = mxGraphHierarchyEdge;
    +
    +/**
    + * Variable: edges
    + * 
    + * The graph edge(s) this object represents. Parallel edges are all grouped
    + * together within one hierarchy edge.
    + */
    +mxGraphHierarchyEdge.prototype.edges = null;
    +
    +/**
    + * Variable: source
    + * 
    + * The node this edge is sourced at
    + */
    +mxGraphHierarchyEdge.prototype.source = null;
    +
    +/**
    + * Variable: target
    + * 
    + * The node this edge targets
    + */
    +mxGraphHierarchyEdge.prototype.target = null;
    +
    +/**
    + * Variable: isReversed
    + * 
    + * Whether or not the direction of this edge has been reversed
    + * internally to create a DAG for the hierarchical layout
    + */
    +mxGraphHierarchyEdge.prototype.isReversed = false;
    +
    +/**
    + * Function: invert
    + * 
    + * Inverts the direction of this internal edge(s)
    + */
    +mxGraphHierarchyEdge.prototype.invert = function(layer)
    +{
    +	var temp = this.source;
    +	this.source = this.target;
    +	this.target = temp;
    +	this.isReversed = !this.isReversed;
    +};
    +
    +/**
    + * Function: getNextLayerConnectedCells
    + * 
    + * Returns the cells this cell connects to on the next layer up
    + */
    +mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells = function(layer)
    +{
    +	if (this.nextLayerConnectedCells == null)
    +	{
    +		this.nextLayerConnectedCells = [];
    +		
    +		for (var i = 0; i < this.temp.length; i++)
    +		{
    +			this.nextLayerConnectedCells[i] = [];
    +			
    +			if (i == this.nextLayerConnectedCells.length - 1)
    +			{
    +				this.nextLayerConnectedCells[i].push(this.source);
    +			}
    +			else
    +			{
    +				this.nextLayerConnectedCells[i].push(this);
    +			}
    +		}
    +	}
    +	
    +	return this.nextLayerConnectedCells[layer - this.minRank - 1];
    +};
    +
    +/**
    + * Function: getPreviousLayerConnectedCells
    + * 
    + * Returns the cells this cell connects to on the next layer down
    + */
    +mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells = function(layer)
    +{
    +	if (this.previousLayerConnectedCells == null)
    +	{
    +		this.previousLayerConnectedCells = [];
    +
    +		for (var i = 0; i < this.temp.length; i++)
    +		{
    +			this.previousLayerConnectedCells[i] = [];
    +			
    +			if (i == 0)
    +			{
    +				this.previousLayerConnectedCells[i].push(this.target);
    +			}
    +			else
    +			{
    +				this.previousLayerConnectedCells[i].push(this);
    +			}
    +		}
    +	}
    +
    +	return this.previousLayerConnectedCells[layer - this.minRank - 1];
    +};
    +
    +/**
    + * Function: isEdge
    + * 
    + * Returns true.
    + */
    +mxGraphHierarchyEdge.prototype.isEdge = function()
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: getGeneralPurposeVariable
    + * 
    + * Gets the value of temp for the specified layer
    + */
    +mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable = function(layer)
    +{
    +	return this.temp[layer - this.minRank - 1];
    +};
    +
    +/**
    + * Function: setGeneralPurposeVariable
    + * 
    + * Set the value of temp for the specified layer
    + */
    +mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable = function(layer, value)
    +{
    +	this.temp[layer - this.minRank - 1] = value;
    +};
    diff --git a/javascript/src/js/layout/hierarchical/model/mxGraphHierarchyModel.js b/javascript/src/js/layout/hierarchical/model/mxGraphHierarchyModel.js
    new file mode 100644
    index 000000000..745f6c6c5
    --- /dev/null
    +++ b/javascript/src/js/layout/hierarchical/model/mxGraphHierarchyModel.js
    @@ -0,0 +1,869 @@
    +/**
    + * $Id: mxGraphHierarchyModel.js,v 1.29 2010-10-19 10:30:05 david Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraphHierarchyModel
    + *
    + * Internal model of a hierarchical graph. This model stores nodes and edges
    + * equivalent to the real graph nodes and edges, but also stores the rank of the
    + * cells, the order within the ranks and the new candidate locations of cells.
    + * The internal model also reverses edge direction were appropriate , ignores
    + * self-loop and groups parallels together under one edge object.
    + *
    + * Constructor: mxGraphHierarchyModel
    + *
    + * Creates an internal ordered graph model using the vertices passed in. If
    + * there are any, leftward edge need to be inverted in the internal model
    + *
    + * Arguments:
    + *
    + * graph - the facade describing the graph to be operated on
    + * vertices - the vertices for this hierarchy
    + * ordered - whether or not the vertices are already ordered
    + * deterministic - whether or not this layout should be deterministic on each
    + * tightenToSource - whether or not to tighten vertices towards the sources
    + * scanRanksFromSinks - Whether rank assignment is from the sinks or sources.
    + * usage
    + */
    +function mxGraphHierarchyModel(layout, vertices, roots, parent, ordered,
    +		deterministic, tightenToSource, scanRanksFromSinks)
    +{
    +	var graph = layout.getGraph();
    +	this.deterministic = deterministic;
    +	this.tightenToSource = tightenToSource;
    +	this.scanRanksFromSinks = scanRanksFromSinks;
    +	this.roots = roots;
    +	this.parent = parent;
    +
    +	// map of cells to internal cell needed for second run through
    +	// to setup the sink of edges correctly
    +	this.vertexMapper = new Object();
    +	this.edgeMapper = new Object();
    +	this.maxRank = 0;
    +	var internalVertices = [];
    +
    +	if (vertices == null)
    +	{
    +		vertices = this.graph.getChildVertices(parent);
    +	}
    +
    +	if (ordered)
    +	{
    +		this.formOrderedHierarchy(layout, vertices, parent);
    +	}
    +	else
    +	{
    +		if (this.scanRanksFromSinks)
    +		{
    +			this.maxRank = 0;
    +		}
    +		else
    +		{
    +			this.maxRank = this.SOURCESCANSTARTRANK;
    +		}
    +		// map of cells to internal cell needed for second run through
    +		// to setup the sink of edges correctly. Guess size by number
    +		// of edges is roughly same as number of vertices.
    +		this.createInternalCells(layout, vertices, internalVertices);
    +
    +		// Go through edges set their sink values. Also check the
    +		// ordering if and invert edges if necessary
    +		for (var i = 0; i < vertices.length; i++)
    +		{
    +			var edges = internalVertices[i].connectsAsSource;
    +
    +			for (var j = 0; j < edges.length; j++)
    +			{
    +				var internalEdge = edges[j];
    +				var realEdges = internalEdge.edges;
    +
    +				for (var k = 0; k < realEdges.length; k++)
    +				{
    +					var realEdge = realEdges[k];
    +					var targetCell = graph.getView().getVisibleTerminal(
    +							realEdge, false);
    +					var targetCellId = mxCellPath.create(targetCell);
    +					var internalTargetCell = this.vertexMapper[targetCellId];
    +
    +					if (internalTargetCell != null
    +							&& internalVertices[i] != internalTargetCell)
    +					{
    +						internalEdge.target = internalTargetCell;
    +
    +						if (internalTargetCell.connectsAsTarget.length == 0)
    +						{
    +							internalTargetCell.connectsAsTarget = [];
    +						}
    +
    +						if (mxUtils.indexOf(internalTargetCell.connectsAsTarget, internalEdge) < 0)
    +						{
    +							internalTargetCell.connectsAsTarget.push(internalEdge);
    +						}
    +					}
    +				}
    +			}
    +
    +			// Use the temp variable in the internal nodes to mark this
    +			// internal vertex as having been visited.
    +			internalVertices[i].temp[0] = 1;
    +		}
    +	}
    +};
    +
    +/**
    + * Variable: scanRanksFromSinks
    + *
    + * Whether the rank assignment is done from the sinks or sources.
    + */
    +mxGraphHierarchyModel.prototype.scanRanksFromSinks = true;
    +
    +/**
    + * Variable: maxRank
    + *
    + * Stores the largest rank number allocated
    + */
    +mxGraphHierarchyModel.prototype.maxRank = null;
    +
    +/**
    + * Variable: vertexMapper
    + *
    + * Map from graph vertices to internal model nodes.
    + */
    +mxGraphHierarchyModel.prototype.vertexMapper = null;
    +
    +/**
    + * Variable: edgeMapper
    + *
    + * Map from graph edges to internal model edges
    + */
    +mxGraphHierarchyModel.prototype.edgeMapper = null;
    +
    +/**
    + * Variable: ranks
    + *
    + * Mapping from rank number to actual rank
    + */
    +mxGraphHierarchyModel.prototype.ranks = null;
    +
    +/**
    + * Variable: roots
    + *
    + * Store of roots of this hierarchy model, these are real graph cells, not
    + * internal cells
    + */
    +mxGraphHierarchyModel.prototype.roots = null;
    +
    +/**
    + * Variable: parent
    + *
    + * The parent cell whose children are being laid out
    + */
    +mxGraphHierarchyModel.prototype.parent = null;
    +
    +/**
    + * Variable: dfsCount
    + *
    + * Count of the number of times the ancestor dfs has been used.
    + */
    +mxGraphHierarchyModel.prototype.dfsCount = 0;
    +
    +/**
    + * Variable: SOURCESCANSTARTRANK
    + *
    + * High value to start source layering scan rank value from.
    + */
    +mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK = 100000000;
    +
    +/**
    + * Variable: deterministic
    + *
    + * Whether or not cells are ordered according to the order in the graph
    + * model. Defaults to false since sorting usually produces quadratic
    + * performance. Note that since mxGraph returns edges in a deterministic
    + * order, it might be that this layout is always deterministic using that
    + * JGraph regardless of this flag setting (i.e. leave it false in that
    + * case). Default is true.
    + */
    +mxGraphHierarchyModel.prototype.deterministic;
    +
    +/**
    + * Variable: tightenToSource
    + *
    + * Whether or not to tighten the assigned ranks of vertices up towards
    + * the source cells.
    + */
    +mxGraphHierarchyModel.prototype.tightenToSource = false;
    +
    +/**
    + * Function: formOrderedHierarchy
    + *
    + * Creates an internal ordered graph model using the vertices passed in. If
    + * there are any, leftward edge need to be inverted in the internal model
    + *
    + * Parameters:
    + *
    + * layout - Reference to the <mxHierarchicalLayout> algorithm.
    + * vertices - Array of <mxCells> that represent the vertices to be laid
    + * out.
    + */
    +mxGraphHierarchyModel.prototype.formOrderedHierarchy = function(layout, vertices, parent)
    +{
    +	var graph = layout.getGraph();
    +	this.createInternalCells(layout, vertices, internalVertices);
    +
    +	// Go through edges set their sink values. Also check the
    +	// ordering if and invert edges if necessary
    +	// Need a temporary list to store which of these edges have been
    +	// inverted in the internal model. If connectsAsSource were changed
    +	// in the following while loop we'd get a
    +	// ConcurrentModificationException
    +	var tempList = [];
    +
    +	for (var i = 0; i < vertices.length; i++)
    +	{
    +		var edges = internalVertices[i].connectsAsSource;
    +
    +		for (var j = 0; j < edges.length; j++)
    +		{
    +			var internalEdge = edges[j];
    +			var realEdges = internalEdge.edges;
    +
    +			for (var k = 0; k < realEdges.length; k++)
    +			{
    +				var realEdge = realEdges[k];
    +				var targetCell = this.graph.getView().getVisibleTerminal(realEdge, false);
    +				var targetCellId = mxCellPath.create(targetCell);
    +				var internalTargetCell = vertexMapper[targetCellId];
    +
    +				if (internalTargetCell != null
    +						&& internalVertices[i] != internalTargetCell)
    +				{
    +					internalEdge.target = internalTargetCell;
    +
    +					if (internalTargetCell.connectsAsTarget.length == 0)
    +					{
    +						internalTargetCell.connectsAsTarget = [];
    +					}
    +
    +					// The vertices passed in were ordered, check that the
    +					// target cell has not already been marked as visited
    +					if (internalTargetCell.temp[0] == 1)
    +					{
    +						// Internal Edge is leftward, reverse it
    +						internalEdge.invert();
    +						// There must be a connectsAsSource list already
    +						internalTargetCell.connectsAsSource
    +								.push(internalEdge);
    +						tempList.push(internalEdge);
    +						if (mxUtils.indexOf(internalVertices[i].connectsAsTarget, internalEdge) < 0)
    +						{
    +							internalVertices[i].connectsAsTarget
    +									.push(internalEdge);
    +						}
    +					}
    +					else
    +					{
    +						if (mxUtils.indexOf(internalTargetCell.connectsAsTarget, internalEdge) < 0)
    +						{
    +							internalTargetCell.connectsAsTarget
    +									.push(internalEdge);
    +						}
    +					}
    +				}
    +			}
    +		}
    +
    +		// Remove the inverted edges as sources from this node
    +		for (var j = 0; j < tempList.length; j++)
    +		{
    +			var tmp = tempList[j];
    +			mxUtils.remove(tmp, internalVertices[i].connectsAsSource);
    +		}
    +
    +		tempList = [];
    +
    +		// Use the temp variable in the internal nodes to mark this
    +		// internal vertex as having been visited.
    +		internalVertices[i].temp[0] = 1;
    +	}
    +};
    +
    +/**
    + * Function: createInternalCells
    + *
    + * Creates all edges in the internal model
    + *
    + * Parameters:
    + *
    + * layout - Reference to the <mxHierarchicalLayout> algorithm.
    + * vertices - Array of <mxCells> that represent the vertices whom are to
    + * have an internal representation created.
    + * internalVertices - The array of <mxGraphHierarchyNodes> to have their
    + * information filled in using the real vertices.
    + */
    +mxGraphHierarchyModel.prototype.createInternalCells = function(layout, vertices, internalVertices)
    +{
    +	var graph = layout.getGraph();
    +
    +	// Create internal edges
    +	for (var i = 0; i < vertices.length; i++)
    +	{
    +		internalVertices[i] = new mxGraphHierarchyNode(vertices[i]);
    +		var vertexId = mxCellPath.create(vertices[i]);
    +		this.vertexMapper[vertexId] = internalVertices[i];
    +
    +		// If the layout is deterministic, order the cells
    +		//List outgoingCells = graph.getNeighbours(vertices[i], deterministic);
    +		var conns = graph.getConnections(vertices[i], this.parent);
    +		var outgoingCells = graph.getOpposites(conns, vertices[i]);
    +		internalVertices[i].connectsAsSource = [];
    +
    +		// Create internal edges, but don't do any rank assignment yet
    +		// First use the information from the greedy cycle remover to
    +		// invert the leftward edges internally
    +		for (var j = 0; j < outgoingCells.length; j++)
    +		{
    +			var cell = outgoingCells[j];
    +
    +			if (cell != vertices[i] && !layout.isVertexIgnored(cell))
    +			{
    +				// Allow for parallel edges
    +				// TODO: Use the fact that we already know the source and
    +				// target to collect parallel edges faster.
    +				var edges = graph.getEdgesBetween(vertices[i], cell, true);
    +
    +				if (edges != null && edges.length > 0)
    +				{
    +					var internalEdge = new mxGraphHierarchyEdge(edges);
    +
    +					for (var k = 0; k < edges.length; k++)
    +					{
    +						var edge = edges[k];
    +						var edgeId = mxCellPath.create(edge);
    +						this.edgeMapper[edgeId] = internalEdge;
    +
    +						// Resets all point on the edge and disables the edge style
    +						// without deleting it from the cell style
    +						graph.resetEdge(edge);
    +
    +					    if (layout.disableEdgeStyle)
    +					    {
    +					    	layout.setEdgeStyleEnabled(edge, false);
    +					    	layout.setOrthogonalEdge(edge,true);
    +					    }
    +					}
    +
    +					internalEdge.source = internalVertices[i];
    +
    +					if (mxUtils.indexOf(internalVertices[i].connectsAsSource, internalEdge) < 0)
    +					{
    +						internalVertices[i].connectsAsSource.push(internalEdge);
    +					}
    +				}
    +			}
    +		}
    +
    +		// Ensure temp variable is cleared from any previous use
    +		internalVertices[i].temp[0] = 0;
    +	}
    +};
    +
    +/**
    + * Function: initialRank
    + *
    + * Basic determination of minimum layer ranking by working from from sources
    + * or sinks and working through each node in the relevant edge direction.
    + * Starting at the sinks is basically a longest path layering algorithm.
    +*/
    +mxGraphHierarchyModel.prototype.initialRank = function()
    +{
    +	var startNodes = [];
    +
    +	if (!this.scanRanksFromSinks && this.roots != null)
    +	{
    +		for (var i = 0; i < this.roots.length; i++)
    +		{
    +			var vertexId = mxCellPath.create(this.roots[i]);
    +			var internalNode = this.vertexMapper[vertexId];
    +
    +			if (internalNode != null)
    +			{
    +				startNodes.push(internalNode);
    +			}
    +		}
    +	}
    +
    +	if (this.scanRanksFromSinks)
    +	{
    +		for (var key in this.vertexMapper)
    +		{
    +			var internalNode = this.vertexMapper[key];
    +
    +			if (internalNode.connectsAsSource == null ||
    +				internalNode.connectsAsSource.length == 0)
    +			{
    +				startNodes.push(internalNode);
    +			}
    +		}
    +	}
    +
    +	if (startNodes.length == 0)
    +	{
    +		for (var key in this.vertexMapper)
    +		{
    +			var internalNode = this.vertexMapper[key];
    +
    +			if (internalNode.connectsAsTarget == null ||
    +				internalNode.connectsAsTarget.length == 0)
    +			{
    +				startNodes.push(internalNode);
    +				this.scanRanksFromSinks = false;
    +				this.maxRank = this.SOURCESCANSTARTRANK;
    +			}
    +		}
    +	}
    +
    +	for (var key in this.vertexMapper)
    +	{
    +		var internalNode = this.vertexMapper[key];
    +
    +		// Mark the node as not having had a layer assigned
    +		internalNode.temp[0] = -1;
    +	}
    +
    +	var startNodesCopy = startNodes.slice();
    +
    +	while (startNodes.length > 0)
    +	{
    +		var internalNode = startNodes[0];
    +		var layerDeterminingEdges;
    +		var edgesToBeMarked;
    +
    +		if (this.scanRanksFromSinks)
    +		{
    +			layerDeterminingEdges = internalNode.connectsAsSource;
    +			edgesToBeMarked = internalNode.connectsAsTarget;
    +		}
    +		else
    +		{
    +			layerDeterminingEdges = internalNode.connectsAsTarget;
    +			edgesToBeMarked = internalNode.connectsAsSource;
    +		}
    +
    +		// flag to keep track of whether or not all layer determining
    +		// edges have been scanned
    +		var allEdgesScanned = true;
    +
    +		// Work out the layer of this node from the layer determining
    +		// edges. The minimum layer number of any node connected by one of
    +		// the layer determining edges variable
    +		var minimumLayer = 0;
    +		if (!this.scanRanksFromSinks) {
    +			minimumLayer = this.SOURCESCANSTARTRANK;
    +		}
    +
    +		for (var i = 0; i < layerDeterminingEdges.length; i++)
    +		{
    +			var internalEdge = layerDeterminingEdges[i];
    +
    +			if (internalEdge.temp[0] == 5270620)
    +			{
    +				// This edge has been scanned, get the layer of the
    +				// node on the other end
    +				var otherNode;
    +
    +				if (this.scanRanksFromSinks)
    +				{
    +					otherNode = internalEdge.target;
    +				}
    +				else
    +				{
    +					otherNode = internalEdge.source;
    +				}
    +
    +				if (this.scanRanksFromSinks)
    +				{
    +					minimumLayer = Math.max(minimumLayer,
    +							otherNode.temp[0] + 1);
    +				}
    +				else
    +				{
    +					minimumLayer = Math.min(minimumLayer,
    +							otherNode.temp[0] - 1);
    +				}
    +			}
    +			else
    +			{
    +				allEdgesScanned = false;
    +
    +				break;
    +			}
    +		}
    +
    +		// If all edge have been scanned, assign the layer, mark all
    +		// edges in the other direction and remove from the nodes list
    +		if (allEdgesScanned)
    +		{
    +			internalNode.temp[0] = minimumLayer;
    +			if (this.scanRanksFromSinks)
    +			{
    +				this.maxRank = Math.max(this.maxRank, minimumLayer);
    +			}
    +			else
    +			{
    +				this.maxRank = Math.min(this.maxRank, minimumLayer);
    +			}
    +
    +			if (edgesToBeMarked != null)
    +			{
    +				for (var i = 0; i < edgesToBeMarked.length; i++)
    +				{
    +					var internalEdge = edgesToBeMarked[i];
    +
    +					// Assign unique stamp ( y/m/d/h )
    +					internalEdge.temp[0] = 5270620;
    +
    +					// Add node on other end of edge to LinkedList of
    +					// nodes to be analysed
    +					var otherNode;
    +
    +					if (this.scanRanksFromSinks)
    +					{
    +						otherNode = internalEdge.source;
    +					}
    +					else
    +					{
    +						otherNode = internalEdge.target;
    +					}
    +
    +					// Only add node if it hasn't been assigned a layer
    +					if (otherNode.temp[0] == -1)
    +					{
    +						startNodes.push(otherNode);
    +
    +						// Mark this other node as neither being
    +						// unassigned nor assigned so it isn't
    +						// added to this list again, but it's
    +						// layer isn't used in any calculation.
    +						otherNode.temp[0] = -2;
    +					}
    +				}
    +			}
    +
    +			startNodes.shift();
    +		}
    +		else
    +		{
    +			// Not all the edges have been scanned, get to the back of
    +			// the class and put the dunces cap on
    +			var removedCell = startNodes.shift();
    +			startNodes.push(internalNode);
    +
    +			if (removedCell == internalNode && startNodes.length == 1)
    +			{
    +				// This is an error condition, we can't get out of
    +				// this loop. It could happen for more than one node
    +				// but that's a lot harder to detect. Log the error
    +				// TODO make log comment
    +				break;
    +			}
    +		}
    +	}
    +
    +	if (this.scanRanksFromSinks)
    +	{
    +		if (this.tightenToSource)
    +		{
    +			// Tighten the rank 0 nodes as far as possible
    +			for ( var i = 0; i < startNodesCopy.length; i++)
    +			{
    +				var internalNode = startNodesCopy[i];
    +				var currentMinLayer = 1000000;
    +				var layerDeterminingEdges = internalNode.connectsAsTarget;
    +
    +				for ( var j = 0; j < internalNode.connectsAsTarget.length; j++)
    +				{
    +					var internalEdge = internalNode.connectsAsTarget[j];
    +					var otherNode = internalEdge.source;
    +					internalNode.temp[0] = Math.min(currentMinLayer,
    +							otherNode.temp[0] - 1);
    +					currentMinLayer = internalNode.temp[0];
    +				}
    +			}
    +		}
    +	}
    +	else
    +	{
    +		// Normalize the ranks down from their large starting value to place
    +		// at least 1 sink on layer 0
    +		for (var key in this.vertexMapper)
    +		{
    +			var internalNode = this.vertexMapper[key];
    +			// Mark the node as not having had a layer assigned
    +			internalNode.temp[0] -= this.maxRank;
    +		}
    +		// Reset the maxRank to that which would be expected for a from-sink
    +		// scan
    +		this.maxRank = this.SOURCESCANSTARTRANK - this.maxRank;
    +	}
    +};
    +
    +/**
    + * Function: fixRanks
    + *
    + * Fixes the layer assignments to the values stored in the nodes. Also needs
    + * to create dummy nodes for edges that cross layers.
    + */
    +mxGraphHierarchyModel.prototype.fixRanks = function()
    +{
    +	var rankList = [];
    +	this.ranks = [];
    +
    +	for (var i = 0; i < this.maxRank + 1; i++)
    +	{
    +		rankList[i] = [];
    +		this.ranks[i] = rankList[i];
    +	}
    +
    +	// Perform a DFS to obtain an initial ordering for each rank.
    +	// Without doing this you would end up having to process
    +	// crossings for a standard tree.
    +	var rootsArray = null;
    +
    +	if (this.roots != null)
    +	{
    +		var oldRootsArray = this.roots;
    +		rootsArray = [];
    +
    +		for (var i = 0; i < oldRootsArray.length; i++)
    +		{
    +			var cell = oldRootsArray[i];
    +			var cellId = mxCellPath.create(cell);
    +			var internalNode = this.vertexMapper[cellId];
    +			rootsArray[i] = internalNode;
    +		}
    +	}
    +
    +	this.visit(function(parent, node, edge, layer, seen)
    +	{
    +		if (seen == 0 && node.maxRank < 0 && node.minRank < 0)
    +		{
    +			rankList[node.temp[0]].push(node);
    +			node.maxRank = node.temp[0];
    +			node.minRank = node.temp[0];
    +
    +			// Set temp[0] to the nodes position in the rank
    +			node.temp[0] = rankList[node.maxRank].length - 1;
    +		}
    +
    +		if (parent != null && edge != null)
    +		{
    +			var parentToCellRankDifference = parent.maxRank - node.maxRank;
    +
    +			if (parentToCellRankDifference > 1)
    +			{
    +				// There are ranks in between the parent and current cell
    +				edge.maxRank = parent.maxRank;
    +				edge.minRank = node.maxRank;
    +				edge.temp = [];
    +				edge.x = [];
    +				edge.y = [];
    +
    +				for (var i = edge.minRank + 1; i < edge.maxRank; i++)
    +				{
    +					// The connecting edge must be added to the
    +					// appropriate ranks
    +					rankList[i].push(edge);
    +					edge.setGeneralPurposeVariable(i, rankList[i]
    +							.length - 1);
    +				}
    +			}
    +		}
    +	}, rootsArray, false, null);
    +};
    +
    +/**
    + * Function: visit
    + *
    + * A depth first search through the internal heirarchy model.
    + *
    + * Parameters:
    + *
    + * visitor - The visitor function pattern to be called for each node.
    + * trackAncestors - Whether or not the search is to keep track all nodes
    + * directly above this one in the search path.
    + */
    +mxGraphHierarchyModel.prototype.visit = function(visitor, dfsRoots, trackAncestors, seenNodes)
    +{
    +	// Run dfs through on all roots
    +	if (dfsRoots != null)
    +	{
    +		for (var i = 0; i < dfsRoots.length; i++)
    +		{
    +			var internalNode = dfsRoots[i];
    +
    +			if (internalNode != null)
    +			{
    +				if (seenNodes == null)
    +				{
    +					seenNodes = new Object();
    +				}
    +
    +				if (trackAncestors)
    +				{
    +					// Set up hash code for root
    +					internalNode.hashCode = [];
    +					internalNode.hashCode[0] = this.dfsCount;
    +					internalNode.hashCode[1] = i;
    +					this.extendedDfs(null, internalNode, null, visitor, seenNodes,
    +							internalNode.hashCode, i, 0);
    +				}
    +				else
    +				{
    +					this.dfs(null, internalNode, null, visitor, seenNodes, 0);
    +				}
    +			}
    +		}
    +
    +		this.dfsCount++;
    +	}
    +};
    +
    +/**
    + * Function: dfs
    + *
    + * Performs a depth first search on the internal hierarchy model
    + *
    + * Parameters:
    + *
    + * parent - the parent internal node of the current internal node
    + * root - the current internal node
    + * connectingEdge - the internal edge connecting the internal node and the parent
    + * internal node, if any
    + * visitor - the visitor pattern to be called for each node
    + * seen - a set of all nodes seen by this dfs a set of all of the
    + * ancestor node of the current node
    + * layer - the layer on the dfs tree ( not the same as the model ranks )
    + */
    +mxGraphHierarchyModel.prototype.dfs = function(parent, root, connectingEdge, visitor, seen, layer)
    +{
    +	if (root != null)
    +	{
    +		var rootId = mxCellPath.create(root.cell);
    +
    +		if (seen[rootId] == null)
    +		{
    +			seen[rootId] = root;
    +			visitor(parent, root, connectingEdge, layer, 0);
    +
    +			// Copy the connects as source list so that visitors
    +			// can change the original for edge direction inversions
    +			var outgoingEdges = root.connectsAsSource.slice();
    +			
    +			for (var i = 0; i< outgoingEdges.length; i++)
    +			{
    +				var internalEdge = outgoingEdges[i];
    +				var targetNode = internalEdge.target;
    +
    +				// Root check is O(|roots|)
    +				this.dfs(root, targetNode, internalEdge, visitor, seen,
    +						layer + 1);
    +			}
    +		}
    +		else
    +		{
    +			// Use the int field to indicate this node has been seen
    +			visitor(parent, root, connectingEdge, layer, 1);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: extendedDfs
    + *
    + * Performs a depth first search on the internal hierarchy model. This dfs
    + * extends the default version by keeping track of cells ancestors, but it
    + * should be only used when necessary because of it can be computationally
    + * intensive for deep searches.
    + *
    + * Parameters:
    + *
    + * parent - the parent internal node of the current internal node
    + * root - the current internal node
    + * connectingEdge - the internal edge connecting the internal node and the parent
    + * internal node, if any
    + * visitor - the visitor pattern to be called for each node
    + * seen - a set of all nodes seen by this dfs
    + * ancestors - the parent hash code
    + * childHash - the new hash code for this node
    + * layer - the layer on the dfs tree ( not the same as the model ranks )
    + */
    +mxGraphHierarchyModel.prototype.extendedDfs = function(parent, root, connectingEdge, visitor, seen, ancestors, childHash, layer)
    +{
    +	// Explanation of custom hash set. Previously, the ancestors variable
    +	// was passed through the dfs as a HashSet. The ancestors were copied
    +	// into a new HashSet and when the new child was processed it was also
    +	// added to the set. If the current node was in its ancestor list it
    +	// meant there is a cycle in the graph and this information is passed
    +	// to the visitor.visit() in the seen parameter. The HashSet clone was
    +	// very expensive on CPU so a custom hash was developed using primitive
    +	// types. temp[] couldn't be used so hashCode[] was added to each node.
    +	// Each new child adds another int to the array, copying the prefix
    +	// from its parent. Child of the same parent add different ints (the
    +	// limit is therefore 2^32 children per parent...). If a node has a
    +	// child with the hashCode already set then the child code is compared
    +	// to the same portion of the current nodes array. If they match there
    +	// is a loop.
    +	// Note that the basic mechanism would only allow for 1 use of this
    +	// functionality, so the root nodes have two ints. The second int is
    +	// incremented through each node root and the first is incremented
    +	// through each run of the dfs algorithm (therefore the dfs is not
    +	// thread safe). The hash code of each node is set if not already set,
    +	// or if the first int does not match that of the current run.
    +	if (root != null)
    +	{
    +		if (parent != null)
    +		{
    +			// Form this nodes hash code if necessary, that is, if the
    +			// hashCode variable has not been initialized or if the
    +			// start of the parent hash code does not equal the start of
    +			// this nodes hash code, indicating the code was set on a
    +			// previous run of this dfs.
    +			if (root.hashCode == null ||
    +				root.hashCode[0] != parent.hashCode[0])
    +			{
    +				var hashCodeLength = parent.hashCode.length + 1;
    +				root.hashCode = parent.hashCode.slice();
    +				root.hashCode[hashCodeLength - 1] = childHash;
    +			}
    +		}
    +
    +		var rootId = mxCellPath.create(root.cell);
    +
    +		if (seen[rootId] == null)
    +		{
    +			seen[rootId] = root;
    +			visitor(parent, root, connectingEdge, layer, 0);
    +
    +			// Copy the connects as source list so that visitors
    +			// can change the original for edge direction inversions
    +			var outgoingEdges = root.connectsAsSource.slice();
    +
    +			for (var i = 0; i < outgoingEdges.length; i++)
    +			{
    +				var internalEdge = outgoingEdges[i];
    +				var targetNode = internalEdge.target;
    +
    +				// Root check is O(|roots|)
    +				this.extendedDfs(root, targetNode, internalEdge, visitor, seen,
    +						root.hashCode, i, layer + 1);
    +			}
    +		}
    +		else
    +		{
    +			// Use the int field to indicate this node has been seen
    +			visitor(parent, root, connectingEdge, layer, 1);
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/layout/hierarchical/model/mxGraphHierarchyNode.js b/javascript/src/js/layout/hierarchical/model/mxGraphHierarchyNode.js
    new file mode 100644
    index 000000000..b5b014298
    --- /dev/null
    +++ b/javascript/src/js/layout/hierarchical/model/mxGraphHierarchyNode.js
    @@ -0,0 +1,200 @@
    +/**
    + * $Id: mxGraphHierarchyNode.js,v 1.11 2010-01-04 11:18:26 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraphHierarchyNode
    + * 
    + * An abstraction of a hierarchical edge for the hierarchy layout
    + * 
    + * Constructor: mxGraphHierarchyNode
    + *
    + * Constructs an internal node to represent the specified real graph cell
    + *
    + * Arguments:
    + * 
    + * cell - the real graph cell this node represents
    + */
    +function mxGraphHierarchyNode(cell)
    +{
    +	mxGraphAbstractHierarchyCell.apply(this, arguments);
    +	this.cell = cell;
    +};
    +
    +/**
    + * Extends mxGraphAbstractHierarchyCell.
    + */
    +mxGraphHierarchyNode.prototype = new mxGraphAbstractHierarchyCell();
    +mxGraphHierarchyNode.prototype.constructor = mxGraphHierarchyNode;
    +
    +/**
    + * Variable: cell
    + * 
    + * The graph cell this object represents.
    + */
    +mxGraphHierarchyNode.prototype.cell = null;
    +
    +/**
    + * Variable: connectsAsTarget
    + * 
    + * Collection of hierarchy edges that have this node as a target
    + */
    +mxGraphHierarchyNode.prototype.connectsAsTarget = [];
    +
    +/**
    + * Variable: connectsAsSource
    + * 
    + * Collection of hierarchy edges that have this node as a source
    + */
    +mxGraphHierarchyNode.prototype.connectsAsSource = [];
    +
    +/**
    + * Variable: hashCode
    + * 
    + * Assigns a unique hashcode for each node. Used by the model dfs instead
    + * of copying HashSets
    + */
    +mxGraphHierarchyNode.prototype.hashCode = false;
    +
    +/**
    + * Function: getRankValue
    + * 
    + * Returns the integer value of the layer that this node resides in
    + */
    +mxGraphHierarchyNode.prototype.getRankValue = function(layer)
    +{
    +	return this.maxRank;
    +};
    +
    +/**
    + * Function: getNextLayerConnectedCells
    + * 
    + * Returns the cells this cell connects to on the next layer up
    + */
    +mxGraphHierarchyNode.prototype.getNextLayerConnectedCells = function(layer)
    +{
    +	if (this.nextLayerConnectedCells == null)
    +	{
    +		this.nextLayerConnectedCells = [];
    +		this.nextLayerConnectedCells[0] = [];
    +		
    +		for (var i = 0; i < this.connectsAsTarget.length; i++)
    +		{
    +			var edge = this.connectsAsTarget[i];
    +
    +			if (edge.maxRank == -1 || edge.maxRank == layer + 1)
    +			{
    +				// Either edge is not in any rank or
    +				// no dummy nodes in edge, add node of other side of edge
    +				this.nextLayerConnectedCells[0].push(edge.source);
    +			}
    +			else
    +			{
    +				// Edge spans at least two layers, add edge
    +				this.nextLayerConnectedCells[0].push(edge);
    +			}
    +		}
    +	}
    +
    +	return this.nextLayerConnectedCells[0];
    +};
    +
    +/**
    + * Function: getPreviousLayerConnectedCells
    + * 
    + * Returns the cells this cell connects to on the next layer down
    + */
    +mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells = function(layer)
    +{
    +	if (this.previousLayerConnectedCells == null)
    +	{
    +		this.previousLayerConnectedCells = [];
    +		this.previousLayerConnectedCells[0] = [];
    +		
    +		for (var i = 0; i < this.connectsAsSource.length; i++)
    +		{
    +			var edge = this.connectsAsSource[i];
    +
    +			if (edge.minRank == -1 || edge.minRank == layer - 1)
    +			{
    +				// No dummy nodes in edge, add node of other side of edge
    +				this.previousLayerConnectedCells[0].push(edge.target);
    +			}
    +			else
    +			{
    +				// Edge spans at least two layers, add edge
    +				this.previousLayerConnectedCells[0].push(edge);
    +			}
    +		}
    +	}
    +
    +	return this.previousLayerConnectedCells[0];
    +};
    +
    +/**
    + * Function: isVertex
    + * 
    + * Returns true.
    + */
    +mxGraphHierarchyNode.prototype.isVertex = function()
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: getGeneralPurposeVariable
    + * 
    + * Gets the value of temp for the specified layer
    + */
    +mxGraphHierarchyNode.prototype.getGeneralPurposeVariable = function(layer)
    +{
    +	return this.temp[0];
    +};
    +
    +/**
    + * Function: setGeneralPurposeVariable
    + * 
    + * Set the value of temp for the specified layer
    + */
    +mxGraphHierarchyNode.prototype.setGeneralPurposeVariable = function(layer, value)
    +{
    +	this.temp[0] = value;
    +};
    +
    +/**
    + * Function: isAncestor
    + */
    +mxGraphHierarchyNode.prototype.isAncestor = function(otherNode)
    +{
    +	// Firstly, the hash code of this node needs to be shorter than the
    +	// other node
    +	if (otherNode != null && this.hashCode != null && otherNode.hashCode != null
    +			&& this.hashCode.length < otherNode.hashCode.length)
    +	{
    +		if (this.hashCode == otherNode.hashCode)
    +		{
    +			return true;
    +		}
    +		
    +		if (this.hashCode == null || this.hashCode == null)
    +		{
    +			return false;
    +		}
    +		
    +		// Secondly, this hash code must match the start of the other
    +		// node's hash code. Arrays.equals cannot be used here since
    +		// the arrays are different length, and we do not want to
    +		// perform another array copy.
    +		for (var i = 0; i < this.hashCode.length; i++)
    +		{
    +			if (this.hashCode[i] != otherNode.hashCode[i])
    +			{
    +				return false;
    +			}
    +		}
    +
    +		return true;
    +	}
    +
    +	return false;
    +};
    diff --git a/javascript/src/js/layout/hierarchical/mxHierarchicalLayout.js b/javascript/src/js/layout/hierarchical/mxHierarchicalLayout.js
    new file mode 100644
    index 000000000..f5a5203e7
    --- /dev/null
    +++ b/javascript/src/js/layout/hierarchical/mxHierarchicalLayout.js
    @@ -0,0 +1,412 @@
    +/**
    + * $Id: mxHierarchicalLayout.js,v 1.26 2011-07-04 08:31:56 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxHierarchicalLayout
    + * 
    + * A hierarchical layout algorithm.
    + * 
    + * Constructor: mxHierarchicalLayout
    + *
    + * Constructs a new hierarchical layout algorithm.
    + *
    + * Arguments:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + * orientation - Optional constant that defines the orientation of this
    + * layout.
    + * deterministic - Optional boolean that specifies if this layout should be
    + * deterministic. Default is true.
    + */
    +function mxHierarchicalLayout(graph, orientation, deterministic)
    +{
    +	mxGraphLayout.call(this, graph);
    +	this.orientation = (orientation != null) ? orientation : mxConstants.DIRECTION_NORTH;
    +	this.deterministic = (deterministic != null) ? deterministic : true;
    +};
    +
    +/**
    + * Extends mxGraphLayout.
    + */
    +mxHierarchicalLayout.prototype = new mxGraphLayout();
    +mxHierarchicalLayout.prototype.constructor = mxHierarchicalLayout;
    +
    +/**
    + * Variable: roots
    + * 
    + * Holds the array of <mxGraphLayouts> that this layout contains.
    + */
    +mxHierarchicalLayout.prototype.roots = null;
    +
    +/**
    + * Variable: resizeParent
    + * 
    + * Specifies if the parent should be resized after the layout so that it
    + * contains all the child cells. Default is false. See also <parentBorder>.
    + */
    +mxHierarchicalLayout.prototype.resizeParent = false;
    +
    +/**
    + * Variable: moveParent
    + * 
    + * Specifies if the parent should be moved if <resizeParent> is enabled.
    + * Default is false.
    + */
    +mxHierarchicalLayout.prototype.moveParent = false;
    +
    +/**
    + * Variable: parentBorder
    + * 
    + * The border to be added around the children if the parent is to be
    + * resized using <resizeParent>. Default is 0.
    + */
    +mxHierarchicalLayout.prototype.parentBorder = 0;
    +
    +/**
    + * Variable: intraCellSpacing
    + * 
    + * The spacing buffer added between cells on the same layer. Default is 30.
    + */
    +mxHierarchicalLayout.prototype.intraCellSpacing = 30;
    +
    +/**
    + * Variable: interRankCellSpacing
    + * 
    + * The spacing buffer added between cell on adjacent layers. Default is 50.
    + */
    +mxHierarchicalLayout.prototype.interRankCellSpacing = 50;
    +
    +/**
    + * Variable: interHierarchySpacing
    + * 
    + * The spacing buffer between unconnected hierarchies. Default is 60.
    + */
    +mxHierarchicalLayout.prototype.interHierarchySpacing = 60;
    +
    +/**
    + * Variable: parallelEdgeSpacing
    + * 
    + * The distance between each parallel edge on each ranks for long edges
    + */
    +mxHierarchicalLayout.prototype.parallelEdgeSpacing = 10;
    +
    +/**
    + * Variable: orientation
    + * 
    + * The position of the root node(s) relative to the laid out graph in.
    + * Default is <mxConstants.DIRECTION_NORTH>.
    + */
    +mxHierarchicalLayout.prototype.orientation = mxConstants.DIRECTION_NORTH;
    +
    +/**
    + * Variable: fineTuning
    + * 
    + * Whether or not to perform local optimisations and iterate multiple times
    + * through the algorithm. Default is true.
    + */
    +mxHierarchicalLayout.prototype.fineTuning = true;
    +
    +/**
    + * Variable: deterministic
    + * 
    + * Whether or not cells are ordered according to the order in the graph
    + * model. Defaults to false since sorting usually produces quadratic
    + * performance. Note that since mxGraph returns edges in a deterministic
    + * order, it might be that this layout is always deterministic using that
    + * JGraph regardless of this flag setting (i.e. leave it false in that
    + * case). Default is true.
    + */
    +mxHierarchicalLayout.prototype.deterministic;
    +
    +/**
    + * Variable: fixRoots
    + * 
    + * Whether or not to fix the position of the root cells. Keep in mind to
    + * turn off features such as move to origin when fixing the roots, move
    + * to origin usually overrides this flag (in JGraph it does). Default is
    + * false.
    + */
    +mxHierarchicalLayout.prototype.fixRoots = false;
    +
    +/**
    + * 
    + * Variable: layoutFromSinks
    + * 
    + * Whether or not the initial scan of the graph to determine the layer
    + * assigned to each vertex starts from the sinks or source (the sinks
    + * being vertices with the fewest, preferable zero, outgoing edges and
    + * sources same with incoming edges). Starting from either direction
    + * can tight the layout up and also produce better results for certain
    + * types of graphs. If the result for the default is not good enough
    + * try a few sample layouts with the value false to see if they improve
    + */
    +mxHierarchicalLayout.prototype.layoutFromSinks = true;
    +
    +/**
    + * 
    + * Variable: tightenToSource
    + * 
    + * Whether or not to tighten the assigned ranks of vertices up towards
    + * the source cells.
    + */
    +mxHierarchicalLayout.prototype.tightenToSource = true;
    +
    +/**
    + * Variable: disableEdgeStyle
    + * 
    + * Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + * modified by the result. Default is true.
    + */
    +mxHierarchicalLayout.prototype.disableEdgeStyle = true;
    +
    +/**
    + * Variable: model
    + * 
    + * The internal <mxGraphHierarchyModel> formed of the layout.
    + */
    +mxHierarchicalLayout.prototype.model = null;
    +
    +/**
    + * Function: getModel
    + * 
    + * Returns the internal <mxGraphHierarchyModel> for this layout algorithm.
    + */
    +mxHierarchicalLayout.prototype.getModel = function()
    +{
    +	return this.model;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Executes the layout for the children of the specified parent.
    + * 
    + * Parameters:
    + * 
    + * parent - Parent <mxCell> that contains the children to be laid out.
    + * roots - Optional starting roots of the layout.
    + */
    +mxHierarchicalLayout.prototype.execute = function(parent, roots)
    +{
    +	if (roots == null)
    +	{
    +		roots = this.graph.findTreeRoots(parent);
    +	}
    +	
    +	this.roots = roots;
    +	
    +	if (this.roots != null)
    +	{
    +		var model = this.graph.getModel();
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			this.run(parent);
    +			
    +			if (this.resizeParent &&
    +				!this.graph.isCellCollapsed(parent))
    +			{
    +				this.graph.updateGroupBounds([parent],
    +					this.parentBorder, this.moveParent);
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: run
    + * 
    + * The API method used to exercise the layout upon the graph description
    + * and produce a separate description of the vertex position and edge
    + * routing changes made. It runs each stage of the layout that has been
    + * created.
    + */
    +mxHierarchicalLayout.prototype.run = function(parent)
    +{
    +	// Separate out unconnected hierarchies
    +	var hierarchyVertices = [];
    +	
    +	// Keep track of one root in each hierarchy in case it's fixed position
    +	var fixedRoots = null;
    +	var rootLocations = null;
    +	var affectedEdges = null;
    +
    +	if (this.fixRoots)
    +	{
    +		fixedRoots = [];
    +		rootLocations = [];
    +		affectedEdges = [];
    +	}
    +
    +	for (var i = 0; i < this.roots.length; i++)
    +	{
    +		// First check if this root appears in any of the previous vertex
    +		// sets
    +		var newHierarchy = true;
    +		
    +		for (var j = 0; newHierarchy && j < hierarchyVertices.length; j++)
    +		{
    +			var rootId = mxCellPath.create(this.roots[i]);
    +			
    +			if (hierarchyVertices[j][rootId] != null)
    +			{
    +				newHierarchy = false;
    +			}
    +		}
    +
    +		if (newHierarchy)
    +		{
    +			// Obtains set of vertices connected to this root
    +			var cellsStack = [];
    +			cellsStack.push(this.roots[i]);
    +			var edgeSet = null;
    +
    +			if (this.fixRoots)
    +			{
    +				fixedRoots.push(this.roots[i]);
    +				var location = this.getVertexBounds(this.roots[i]).getPoint();
    +				rootLocations.push(location);
    +				edgeSet = [];
    +			}
    +
    +			var vertexSet = new Object();
    +
    +			while (cellsStack.length > 0)
    +			{
    +				var cell = cellsStack.shift();
    +				var cellId = mxCellPath.create(cell);
    +
    +				if (vertexSet[cellId] == null)
    +				{
    +					vertexSet[cellId] = cell;
    +
    +					if (this.fixRoots)
    +					{
    +						var tmp = this.graph.getIncomingEdges(cell, parent);
    +						
    +						for (var k = 0; k < tmp.length; k++)
    +						{
    +							edgeSet.push(tmp[k]);
    +						}
    +					}
    +
    +					var conns = this.graph.getConnections(cell, parent);
    +					var cells = this.graph.getOpposites(conns, cell);
    +
    +					for (var k = 0; k < cells.length; k++)
    +					{
    +						var tmpId = mxCellPath.create(cells[k]);
    +						
    +						if (vertexSet[tmpId] == null)
    +						{
    +							cellsStack.push(cells[k]);
    +						}
    +					}
    +				}
    +			}
    +
    +			hierarchyVertices.push(vertexSet);
    +
    +			if (this.fixRoots)
    +			{
    +				affectedEdges.push(edgeSet);
    +			}
    +		}
    +	}
    +
    +	// Perform a layout for each seperate hierarchy
    +	// Track initial coordinate x-positioning
    +	var initialX = 0;
    +
    +	for (var i = 0; i < hierarchyVertices.length; i++)
    +	{
    +		var vertexSet = hierarchyVertices[i];
    +		var tmp = [];
    +		
    +		for (var key in vertexSet)
    +		{
    +			tmp.push(vertexSet[key]);
    +		}
    +		
    +		this.model = new mxGraphHierarchyModel(this, tmp, this.roots,
    +			parent, false, this.deterministic , this.tightenToSource, this.layoutFromSinks);
    +
    +		this.cycleStage(parent);
    +		this.layeringStage();
    +		
    +		this.crossingStage(parent);
    +		initialX = this.placementStage(initialX, parent);
    +		
    +		if (this.fixRoots)
    +		{
    +			// Reposition roots and their hierarchies using their bounds
    +			// stored earlier
    +			var root = fixedRoots[i];
    +			var oldLocation = rootLocations[i];
    +			var newLocation = this.getVertexBounds(root).getPoint();
    +
    +			var diffX = oldLocation.x - newLocation.x;
    +			var diffY = oldLocation.y - newLocation.y;
    +			this.graph.moveCells(vertexSet, diffX, diffY);
    +
    +			// Also translate connected edges
    +			var connectedEdges = affectedEdges[i+1];
    +			this.graph.moveCells(connectedEdges, diffX, diffY);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: cycleStage
    + * 
    + * Executes the cycle stage using mxMinimumCycleRemover.
    + */
    +mxHierarchicalLayout.prototype.cycleStage = function(parent)
    +{
    +	var cycleStage = new mxMinimumCycleRemover(this);
    +	cycleStage.execute(parent);
    +};
    +
    +/**
    + * Function: layeringStage
    + * 
    + * Implements first stage of a Sugiyama layout.
    + */
    +mxHierarchicalLayout.prototype.layeringStage = function()
    +{
    +	this.model.initialRank();
    +	this.model.fixRanks();
    +};
    +
    +/**
    + * Function: crossingStage
    + * 
    + * Executes the crossing stage using mxMedianHybridCrossingReduction.
    + */
    +mxHierarchicalLayout.prototype.crossingStage = function(parent)
    +{
    +	var crossingStage = new mxMedianHybridCrossingReduction(this);
    +	crossingStage.execute(parent);
    +};
    +
    +/**
    + * Function: placementStage
    + * 
    + * Executes the placement stage using mxCoordinateAssignment.
    + */
    +mxHierarchicalLayout.prototype.placementStage = function(initialX, parent)
    +{
    +	var placementStage = new mxCoordinateAssignment(this, this.intraCellSpacing,
    +			this.interRankCellSpacing, this.orientation, initialX,
    +			this.parallelEdgeSpacing);
    +	placementStage.fineTuning = this.fineTuning;
    +	placementStage.execute(parent);
    +	
    +	return placementStage.limitX + this.interHierarchySpacing;
    +};
    diff --git a/javascript/src/js/layout/hierarchical/stage/mxCoordinateAssignment.js b/javascript/src/js/layout/hierarchical/stage/mxCoordinateAssignment.js
    new file mode 100644
    index 000000000..f6e523df4
    --- /dev/null
    +++ b/javascript/src/js/layout/hierarchical/stage/mxCoordinateAssignment.js
    @@ -0,0 +1,1731 @@
    +/**
    + * $Id: mxCoordinateAssignment.js,v 1.25 2012-01-09 15:05:36 david Exp $
    + * Copyright (c) 2006-2011, David Benson, Gaudenz Alder
    + */
    +/**
    + * Class: mxCoordinateAssignment
    + * 
    + * Sets the horizontal locations of node and edge dummy nodes on each layer.
    + * Uses median down and up weighings as well as heuristics to straighten edges as
    + * far as possible.
    + * 
    + * Constructor: mxCoordinateAssignment
    + *
    + * Creates a coordinate assignment.
    + * 
    + * Arguments:
    + * 
    + * intraCellSpacing - the minimum buffer between cells on the same rank
    + * interRankCellSpacing - the minimum distance between cells on adjacent ranks
    + * orientation - the position of the root node(s) relative to the graph
    + * initialX - the leftmost coordinate node placement starts at
    + */
    +function mxCoordinateAssignment(layout, intraCellSpacing, interRankCellSpacing,
    +	orientation, initialX, parallelEdgeSpacing)
    +{
    +	this.layout = layout;
    +	this.intraCellSpacing = intraCellSpacing;
    +	this.interRankCellSpacing = interRankCellSpacing;
    +	this.orientation = orientation;
    +	this.initialX = initialX;
    +	this.parallelEdgeSpacing = parallelEdgeSpacing;
    +};
    +
    +var mxHierarchicalEdgeStyle =
    +{
    +	ORTHOGONAL: 1,
    +	POLYLINE: 2,
    +	STRAIGHT: 3
    +};
    +
    +/**
    + * Extends mxHierarchicalLayoutStage.
    + */
    +mxCoordinateAssignment.prototype = new mxHierarchicalLayoutStage();
    +mxCoordinateAssignment.prototype.constructor = mxCoordinateAssignment;
    +
    +/**
    + * Variable: layout
    + * 
    + * Reference to the enclosing <mxHierarchicalLayout>.
    + */
    +mxCoordinateAssignment.prototype.layout = null;
    +
    +/**
    + * Variable: intraCellSpacing
    + * 
    + * The minimum buffer between cells on the same rank. Default is 30.
    + */
    +mxCoordinateAssignment.prototype.intraCellSpacing = 30;
    +
    +/**
    + * Variable: interRankCellSpacing
    + * 
    + * The minimum distance between cells on adjacent ranks. Default is 10.
    + */
    +mxCoordinateAssignment.prototype.interRankCellSpacing = 10;
    +
    +/**
    + * Variable: parallelEdgeSpacing
    + * 
    + * The distance between each parallel edge on each ranks for long edges.
    + * Default is 10.
    + */
    +mxCoordinateAssignment.prototype.parallelEdgeSpacing = 10;
    +
    +/**
    + * Variable: maxIterations
    + * 
    + * The number of heuristic iterations to run. Default is 8.
    + */
    +mxCoordinateAssignment.prototype.maxIterations = 8;
    +
    +/**
    + * Variable: prefHozEdgeSep
    + * 
    + * The preferred horizontal distance between edges exiting a vertex
    + */
    +mxCoordinateAssignment.prototype.prefHozEdgeSep = 5;
    +
    +/**
    + * Variable: prefVertEdgeOff
    + * 
    + * The preferred vertical offset between edges exiting a vertex
    + */
    +mxCoordinateAssignment.prototype.prefVertEdgeOff = 2;
    +
    +/**
    + * Variable: minEdgeJetty
    + * 
    + * The minimum distance for an edge jetty from a vertex
    + */
    +mxCoordinateAssignment.prototype.minEdgeJetty = 12;
    +
    +/**
    + * Variable: channelBuffer
    + * 
    + * The size of the vertical buffer in the center of inter-rank channels
    + * where edge control points should not be placed
    + */
    +mxCoordinateAssignment.prototype.channelBuffer = 4;
    +
    +/**
    + * Variable: jettyPositions
    + * 
    + * Map of internal edges and (x,y) pair of positions of the start and end jetty
    + * for that edge where it connects to the source and target vertices.
    + * Note this should technically be a WeakHashMap, but since JS does not
    + * have an equivalent, housekeeping must be performed before using.
    + * i.e. check all edges are still in the model and clear the values.
    + * Note that the y co-ord is the offset of the jetty, not the
    + * absolute point
    + */
    +mxCoordinateAssignment.prototype.jettyPositions = null;
    +
    +/**
    + * Variable: orientation
    + * 
    + * The position of the root ( start ) node(s) relative to the rest of the
    + * laid out graph. Default is <mxConstants.DIRECTION_NORTH>.
    + */
    +mxCoordinateAssignment.prototype.orientation = mxConstants.DIRECTION_NORTH;
    +
    +/**
    + * Variable: initialX
    + * 
    + * The minimum x position node placement starts at
    + */
    +mxCoordinateAssignment.prototype.initialX = null;
    +
    +/**
    + * Variable: limitX
    + * 
    + * The maximum x value this positioning lays up to
    + */
    +mxCoordinateAssignment.prototype.limitX = null;
    +
    +/**
    + * Variable: currentXDelta
    + * 
    + * The sum of x-displacements for the current iteration
    + */
    +mxCoordinateAssignment.prototype.currentXDelta = null;
    +
    +/**
    + * Variable: widestRank
    + * 
    + * The rank that has the widest x position
    + */
    +mxCoordinateAssignment.prototype.widestRank = null;
    +
    +/**
    + * Variable: rankTopY
    + * 
    + * Internal cache of top-most values of Y for each rank
    + */
    +mxCoordinateAssignment.prototype.rankTopY = null;
    +
    +/**
    + * Variable: rankBottomY
    + * 
    + * Internal cache of bottom-most value of Y for each rank
    + */
    +mxCoordinateAssignment.prototype.rankBottomY = null;
    +
    +/**
    + * Variable: widestRankValue
    + * 
    + * The X-coordinate of the edge of the widest rank
    + */
    +mxCoordinateAssignment.prototype.widestRankValue = null;
    +
    +/**
    + * Variable: rankWidths
    + * 
    + * The width of all the ranks
    + */
    +mxCoordinateAssignment.prototype.rankWidths = null;
    +
    +/**
    + * Variable: rankY
    + * 
    + * The Y-coordinate of all the ranks
    + */
    +mxCoordinateAssignment.prototype.rankY = null;
    +
    +/**
    + * Variable: fineTuning
    + * 
    + * Whether or not to perform local optimisations and iterate multiple times
    + * through the algorithm. Default is true.
    + */
    +mxCoordinateAssignment.prototype.fineTuning = true;
    +
    +/**
    + * Variable: edgeStyle
    + * 
    + * The style to apply between cell layers to edge segments
    + */
    +mxCoordinateAssignment.prototype.edgeStyle = mxHierarchicalEdgeStyle.POLYLINE;
    +
    +/**
    + * Variable: nextLayerConnectedCache
    + * 
    + * A store of connections to the layer above for speed
    + */
    +mxCoordinateAssignment.prototype.nextLayerConnectedCache = null;
    +
    +/**
    + * Variable: previousLayerConnectedCache
    + * 
    + * A store of connections to the layer below for speed
    + */
    +mxCoordinateAssignment.prototype.previousLayerConnectedCache = null;
    +
    +/**
    + * Function: execute
    + * 
    + * A basic horizontal coordinate assignment algorithm
    + */
    +mxCoordinateAssignment.prototype.execute = function(parent)
    +{
    +	this.jettyPositions = [];
    +	var model = this.layout.getModel();
    +	this.currentXDelta = 0.0;
    +
    +	this.initialCoords(this.layout.getGraph(), model);
    +	
    +	if (this.fineTuning)
    +	{
    +		this.minNode(model);
    +	}
    +	
    +	var bestXDelta = 100000000.0;
    +	
    +	if (this.fineTuning)
    +	{
    +		for (var i = 0; i < this.maxIterations; i++)
    +		{
    +			// Median Heuristic
    +			if (i != 0)
    +			{
    +				this.medianPos(i, model);
    +				this.minNode(model);
    +			}
    +			
    +			// if the total offset is less for the current positioning,
    +			// there are less heavily angled edges and so the current
    +			// positioning is used
    +			if (this.currentXDelta < bestXDelta)
    +			{
    +				for (var j = 0; j < model.ranks.length; j++)
    +				{
    +					var rank = model.ranks[j];
    +					
    +					for (var k = 0; k < rank.length; k++)
    +					{
    +						var cell = rank[k];
    +						cell.setX(j, cell.getGeneralPurposeVariable(j));
    +					}
    +				}
    +				
    +				bestXDelta = this.currentXDelta;
    +			}
    +			else
    +			{
    +				// Restore the best positions
    +				for (var j = 0; j < model.ranks.length; j++)
    +				{
    +					var rank = model.ranks[j];
    +					
    +					for (var k = 0; k < rank.length; k++)
    +					{
    +						var cell = rank[k];
    +						cell.setGeneralPurposeVariable(j, cell.getX(j));
    +					}
    +				}
    +			}
    +			
    +			this.minPath(this.layout.getGraph(), model);
    +			
    +			this.currentXDelta = 0;
    +		}
    +	}
    +	
    +	this.setCellLocations(this.layout.getGraph(), model);
    +};
    +
    +/**
    + * Function: minNode
    + * 
    + * Performs one median positioning sweep in both directions
    + */
    +mxCoordinateAssignment.prototype.minNode = function(model)
    +{
    +	// Queue all nodes
    +	var nodeList = [];
    +	
    +	// Need to be able to map from cell to cellWrapper
    +	var map = [];
    +	var rank = [];
    +	
    +	for (var i = 0; i <= model.maxRank; i++)
    +	{
    +		rank[i] = model.ranks[i];
    +		
    +		for (var j = 0; j < rank[i].length; j++)
    +		{
    +			// Use the weight to store the rank and visited to store whether
    +			// or not the cell is in the list
    +			var node = rank[i][j];
    +			var nodeWrapper = new WeightedCellSorter(node, i);
    +			nodeWrapper.rankIndex = j;
    +			nodeWrapper.visited = true;
    +			nodeList.push(nodeWrapper);
    +			
    +			var cellId = mxCellPath.create(node.cell);
    +			map[cellId] = nodeWrapper;
    +		}
    +	}
    +	
    +	// Set a limit of the maximum number of times we will access the queue
    +	// in case a loop appears
    +	var maxTries = nodeList.length * 10;
    +	var count = 0;
    +	
    +	// Don't move cell within this value of their median
    +	var tolerance = 1;
    +	
    +	while (nodeList.length > 0 && count <= maxTries)
    +	{
    +		var cellWrapper = nodeList.shift();
    +		var cell = cellWrapper.cell;
    +		
    +		var rankValue = cellWrapper.weightedValue;
    +		var rankIndex = parseInt(cellWrapper.rankIndex);
    +		
    +		var nextLayerConnectedCells = cell.getNextLayerConnectedCells(rankValue);
    +		var previousLayerConnectedCells = cell.getPreviousLayerConnectedCells(rankValue);
    +		
    +		var numNextLayerConnected = nextLayerConnectedCells.length;
    +		var numPreviousLayerConnected = previousLayerConnectedCells.length;
    +
    +		var medianNextLevel = this.medianXValue(nextLayerConnectedCells,
    +				rankValue + 1);
    +		var medianPreviousLevel = this.medianXValue(previousLayerConnectedCells,
    +				rankValue - 1);
    +
    +		var numConnectedNeighbours = numNextLayerConnected
    +				+ numPreviousLayerConnected;
    +		var currentPosition = cell.getGeneralPurposeVariable(rankValue);
    +		var cellMedian = currentPosition;
    +		
    +		if (numConnectedNeighbours > 0)
    +		{
    +			cellMedian = (medianNextLevel * numNextLayerConnected + medianPreviousLevel
    +					* numPreviousLayerConnected)
    +					/ numConnectedNeighbours;
    +		}
    +
    +		// Flag storing whether or not position has changed
    +		var positionChanged = false;
    +		
    +		if (cellMedian < currentPosition - tolerance)
    +		{
    +			if (rankIndex == 0)
    +			{
    +				cell.setGeneralPurposeVariable(rankValue, cellMedian);
    +				positionChanged = true;
    +			}
    +			else
    +			{
    +				var leftCell = rank[rankValue][rankIndex - 1];
    +				var leftLimit = leftCell
    +						.getGeneralPurposeVariable(rankValue);
    +				leftLimit = leftLimit + leftCell.width / 2
    +						+ this.intraCellSpacing + cell.width / 2;
    +
    +				if (leftLimit < cellMedian)
    +				{
    +					cell.setGeneralPurposeVariable(rankValue, cellMedian);
    +					positionChanged = true;
    +				}
    +				else if (leftLimit < cell
    +						.getGeneralPurposeVariable(rankValue)
    +						- tolerance)
    +				{
    +					cell.setGeneralPurposeVariable(rankValue, leftLimit);
    +					positionChanged = true;
    +				}
    +			}
    +		}
    +		else if (cellMedian > currentPosition + tolerance)
    +		{
    +			var rankSize = rank[rankValue].length;
    +			
    +			if (rankIndex == rankSize - 1)
    +			{
    +				cell.setGeneralPurposeVariable(rankValue, cellMedian);
    +				positionChanged = true;
    +			}
    +			else
    +			{
    +				var rightCell = rank[rankValue][rankIndex + 1];
    +				var rightLimit = rightCell
    +						.getGeneralPurposeVariable(rankValue);
    +				rightLimit = rightLimit - rightCell.width / 2
    +						- this.intraCellSpacing - cell.width / 2;
    +				
    +				if (rightLimit > cellMedian)
    +				{
    +					cell.setGeneralPurposeVariable(rankValue, cellMedian);
    +					positionChanged = true;
    +				}
    +				else if (rightLimit > cell
    +						.getGeneralPurposeVariable(rankValue)
    +						+ tolerance)
    +				{
    +					cell.setGeneralPurposeVariable(rankValue, rightLimit);
    +					positionChanged = true;
    +				}
    +			}
    +		}
    +		
    +		if (positionChanged)
    +		{
    +			// Add connected nodes to map and list
    +			for (var i = 0; i < nextLayerConnectedCells.length; i++)
    +			{
    +				var connectedCell = nextLayerConnectedCells[i];
    +				var connectedCellId = mxCellPath.create(connectedCell.cell);
    +				var connectedCellWrapper = map[connectedCellId];
    +				
    +				if (connectedCellWrapper != null)
    +				{
    +					if (connectedCellWrapper.visited == false)
    +					{
    +						connectedCellWrapper.visited = true;
    +						nodeList.push(connectedCellWrapper);
    +					}
    +				}
    +			}
    +
    +			// Add connected nodes to map and list
    +			for (var i = 0; i < previousLayerConnectedCells.length; i++)
    +			{
    +				var connectedCell = previousLayerConnectedCells[i];
    +				var connectedCellId = mxCellPath.create(connectedCell.cell);
    +				var connectedCellWrapper = map[connectedCellId];
    +				
    +				if (connectedCellWrapper != null)
    +				{
    +					if (connectedCellWrapper.visited == false)
    +					{
    +						connectedCellWrapper.visited = true;
    +						nodeList.push(connectedCellWrapper);
    +					}
    +				}
    +			}
    +		}
    +		
    +		cellWrapper.visited = false;
    +		count++;
    +	}
    +};
    +
    +/**
    + * Function: medianPos
    + * 
    + * Performs one median positioning sweep in one direction
    + * 
    + * Parameters:
    + * 
    + * i - the iteration of the whole process
    + * model - an internal model of the hierarchical layout
    + */
    +mxCoordinateAssignment.prototype.medianPos = function(i, model)
    +{
    +	// Reverse sweep direction each time through this method
    +	var downwardSweep = (i % 2 == 0);
    +	
    +	if (downwardSweep)
    +	{
    +		for (var j = model.maxRank; j > 0; j--)
    +		{
    +			this.rankMedianPosition(j - 1, model, j);
    +		}
    +	}
    +	else
    +	{
    +		for (var j = 0; j < model.maxRank - 1; j++)
    +		{
    +			this.rankMedianPosition(j + 1, model, j);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: rankMedianPosition
    + * 
    + * Performs median minimisation over one rank.
    + * 
    + * Parameters:
    + * 
    + * rankValue - the layer number of this rank
    + * model - an internal model of the hierarchical layout
    + * nextRankValue - the layer number whose connected cels are to be laid out
    + * relative to
    + */
    +mxCoordinateAssignment.prototype.rankMedianPosition = function(rankValue, model, nextRankValue)
    +{
    +	var rank = model.ranks[rankValue];
    +
    +	// Form an array of the order in which the cell are to be processed
    +	// , the order is given by the weighted sum of the in or out edges,
    +	// depending on whether we're travelling up or down the hierarchy.
    +	var weightedValues = [];
    +	var cellMap = [];
    +
    +	for (var i = 0; i < rank.length; i++)
    +	{
    +		var currentCell = rank[i];
    +		weightedValues[i] = new WeightedCellSorter();
    +		weightedValues[i].cell = currentCell;
    +		weightedValues[i].rankIndex = i;
    +		var currentCellId = mxCellPath.create(currentCell.cell);
    +		cellMap[currentCellId] = weightedValues[i];
    +		var nextLayerConnectedCells = null;
    +		
    +		if (nextRankValue < rankValue)
    +		{
    +			nextLayerConnectedCells = currentCell
    +					.getPreviousLayerConnectedCells(rankValue);
    +		}
    +		else
    +		{
    +			nextLayerConnectedCells = currentCell
    +					.getNextLayerConnectedCells(rankValue);
    +		}
    +
    +		// Calculate the weighing based on this node type and those this
    +		// node is connected to on the next layer
    +		weightedValues[i].weightedValue = this.calculatedWeightedValue(
    +				currentCell, nextLayerConnectedCells);
    +	}
    +
    +	weightedValues.sort(WeightedCellSorter.prototype.compare);
    +
    +	// Set the new position of each node within the rank using
    +	// its temp variable
    +	
    +	for (var i = 0; i < weightedValues.length; i++)
    +	{
    +		var numConnectionsNextLevel = 0;
    +		var cell = weightedValues[i].cell;
    +		var nextLayerConnectedCells = null;
    +		var medianNextLevel = 0;
    +
    +		if (nextRankValue < rankValue)
    +		{
    +			nextLayerConnectedCells = cell.getPreviousLayerConnectedCells(
    +					rankValue).slice();
    +		}
    +		else
    +		{
    +			nextLayerConnectedCells = cell.getNextLayerConnectedCells(
    +					rankValue).slice();
    +		}
    +
    +		if (nextLayerConnectedCells != null)
    +		{
    +			numConnectionsNextLevel = nextLayerConnectedCells.length;
    +			
    +			if (numConnectionsNextLevel > 0)
    +			{
    +				medianNextLevel = this.medianXValue(nextLayerConnectedCells,
    +						nextRankValue);
    +			}
    +			else
    +			{
    +				// For case of no connections on the next level set the
    +				// median to be the current position and try to be
    +				// positioned there
    +				medianNextLevel = cell.getGeneralPurposeVariable(rankValue);
    +			}
    +		}
    +
    +		var leftBuffer = 0.0;
    +		var leftLimit = -100000000.0;
    +		
    +		for (var j = weightedValues[i].rankIndex - 1; j >= 0;)
    +		{
    +			var rankId = mxCellPath.create(rank[j].cell);
    +			var weightedValue = cellMap[rankId];
    +			
    +			if (weightedValue != null)
    +			{
    +				var leftCell = weightedValue.cell;
    +				
    +				if (weightedValue.visited)
    +				{
    +					// The left limit is the right hand limit of that
    +					// cell plus any allowance for unallocated cells
    +					// in-between
    +					leftLimit = leftCell
    +							.getGeneralPurposeVariable(rankValue)
    +							+ leftCell.width
    +							/ 2.0
    +							+ this.intraCellSpacing
    +							+ leftBuffer + cell.width / 2.0;
    +					j = -1;
    +				}
    +				else
    +				{
    +					leftBuffer += leftCell.width + this.intraCellSpacing;
    +					j--;
    +				}
    +			}
    +		}
    +
    +		var rightBuffer = 0.0;
    +		var rightLimit = 100000000.0;
    +		
    +		for (var j = weightedValues[i].rankIndex + 1; j < weightedValues.length;)
    +		{
    +			var rankId = mxCellPath.create(rank[j].cell);
    +			var weightedValue = cellMap[rankId];
    +			
    +			if (weightedValue != null)
    +			{
    +				var rightCell = weightedValue.cell;
    +				
    +				if (weightedValue.visited)
    +				{
    +					// The left limit is the right hand limit of that
    +					// cell plus any allowance for unallocated cells
    +					// in-between
    +					rightLimit = rightCell
    +							.getGeneralPurposeVariable(rankValue)
    +							- rightCell.width
    +							/ 2.0
    +							- this.intraCellSpacing
    +							- rightBuffer - cell.width / 2.0;
    +					j = weightedValues.length;
    +				}
    +				else
    +				{
    +					rightBuffer += rightCell.width + this.intraCellSpacing;
    +					j++;
    +				}
    +			}
    +		}
    +		
    +		if (medianNextLevel >= leftLimit && medianNextLevel <= rightLimit)
    +		{
    +			cell.setGeneralPurposeVariable(rankValue, medianNextLevel);
    +		}
    +		else if (medianNextLevel < leftLimit)
    +		{
    +			// Couldn't place at median value, place as close to that
    +			// value as possible
    +			cell.setGeneralPurposeVariable(rankValue, leftLimit);
    +			this.currentXDelta += leftLimit - medianNextLevel;
    +		}
    +		else if (medianNextLevel > rightLimit)
    +		{
    +			// Couldn't place at median value, place as close to that
    +			// value as possible
    +			cell.setGeneralPurposeVariable(rankValue, rightLimit);
    +			this.currentXDelta += medianNextLevel - rightLimit;
    +		}
    +
    +		weightedValues[i].visited = true;
    +	}
    +};
    +
    +/**
    + * Function: calculatedWeightedValue
    + * 
    + * Calculates the priority the specified cell has based on the type of its
    + * cell and the cells it is connected to on the next layer
    + * 
    + * Parameters:
    + * 
    + * currentCell - the cell whose weight is to be calculated
    + * collection - the cells the specified cell is connected to
    + */
    +mxCoordinateAssignment.prototype.calculatedWeightedValue = function(currentCell, collection)
    +{
    +	var totalWeight = 0;
    +	
    +	for (var i = 0; i < collection.length; i++)
    +	{
    +		var cell = collection[i];
    +
    +		if (currentCell.isVertex() && cell.isVertex())
    +		{
    +			totalWeight++;
    +		}
    +		else if (currentCell.isEdge() && cell.isEdge())
    +		{
    +			totalWeight += 8;
    +		}
    +		else
    +		{
    +			totalWeight += 2;
    +		}
    +	}
    +
    +	return totalWeight;
    +};
    +
    +/**
    + * Function: medianXValue
    + * 
    + * Calculates the median position of the connected cell on the specified
    + * rank
    + * 
    + * Parameters:
    + * 
    + * connectedCells - the cells the candidate connects to on this level
    + * rankValue - the layer number of this rank
    + */
    +mxCoordinateAssignment.prototype.medianXValue = function(connectedCells, rankValue)
    +{
    +	if (connectedCells.length == 0)
    +	{
    +		return 0;
    +	}
    +
    +	var medianValues = [];
    +
    +	for (var i = 0; i < connectedCells.length; i++)
    +	{
    +		medianValues[i] = connectedCells[i].getGeneralPurposeVariable(rankValue);
    +	}
    +
    +	medianValues.sort(MedianCellSorter.prototype.compare);
    +	
    +	if (connectedCells.length % 2 == 1)
    +	{
    +		// For odd numbers of adjacent vertices return the median
    +		return medianValues[connectedCells.length / 2];
    +	}
    +	else
    +	{
    +		var medianPoint = connectedCells.length / 2;
    +		var leftMedian = medianValues[medianPoint - 1];
    +		var rightMedian = medianValues[medianPoint];
    +
    +		return ((leftMedian + rightMedian) / 2);
    +	}
    +};
    +
    +/**
    + * Function: initialCoords
    + * 
    + * Sets up the layout in an initial positioning. The ranks are all centered
    + * as much as possible along the middle vertex in each rank. The other cells
    + * are then placed as close as possible on either side.
    + * 
    + * Parameters:
    + * 
    + * facade - the facade describing the input graph
    + * model - an internal model of the hierarchical layout
    + */
    +mxCoordinateAssignment.prototype.initialCoords = function(facade, model)
    +{
    +	this.calculateWidestRank(facade, model);
    +
    +	// Sweep up and down from the widest rank
    +	for (var i = this.widestRank; i >= 0; i--)
    +	{
    +		if (i < model.maxRank)
    +		{
    +			this.rankCoordinates(i, facade, model);
    +		}
    +	}
    +
    +	for (var i = this.widestRank+1; i <= model.maxRank; i++)
    +	{
    +		if (i > 0)
    +		{
    +			this.rankCoordinates(i, facade, model);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: rankCoordinates
    + * 
    + * Sets up the layout in an initial positioning. All the first cells in each
    + * rank are moved to the left and the rest of the rank inserted as close
    + * together as their size and buffering permits. This method works on just
    + * the specified rank.
    + * 
    + * Parameters:
    + * 
    + * rankValue - the current rank being processed
    + * graph - the facade describing the input graph
    + * model - an internal model of the hierarchical layout
    + */
    +mxCoordinateAssignment.prototype.rankCoordinates = function(rankValue, graph, model)
    +{
    +	var rank = model.ranks[rankValue];
    +	var maxY = 0.0;
    +	var localX = this.initialX + (this.widestRankValue - this.rankWidths[rankValue])
    +			/ 2;
    +
    +	// Store whether or not any of the cells' bounds were unavailable so
    +	// to only issue the warning once for all cells
    +	var boundsWarning = false;
    +	
    +	for (var i = 0; i < rank.length; i++)
    +	{
    +		var node = rank[i];
    +		
    +		if (node.isVertex())
    +		{
    +			var bounds = this.layout.getVertexBounds(node.cell);
    +
    +			if (bounds != null)
    +			{
    +				if (this.orientation == mxConstants.DIRECTION_NORTH ||
    +					this.orientation == mxConstants.DIRECTION_SOUTH)
    +				{
    +					node.width = bounds.width;
    +					node.height = bounds.height;
    +				}
    +				else
    +				{
    +					node.width = bounds.height;
    +					node.height = bounds.width;
    +				}
    +			}
    +			else
    +			{
    +				boundsWarning = true;
    +			}
    +
    +			maxY = Math.max(maxY, node.height);
    +		}
    +		else if (node.isEdge())
    +		{
    +			// The width is the number of additional parallel edges
    +			// time the parallel edge spacing
    +			var numEdges = 1;
    +
    +			if (node.edges != null)
    +			{
    +				numEdges = node.edges.length;
    +			}
    +			else
    +			{
    +				mxLog.warn('edge.edges is null');
    +			}
    +
    +			node.width = (numEdges - 1) * this.parallelEdgeSpacing;
    +		}
    +
    +		// Set the initial x-value as being the best result so far
    +		localX += node.width / 2.0;
    +		node.setX(rankValue, localX);
    +		node.setGeneralPurposeVariable(rankValue, localX);
    +		localX += node.width / 2.0;
    +		localX += this.intraCellSpacing;
    +	}
    +
    +	if (boundsWarning == true)
    +	{
    +		mxLog.warn('At least one cell has no bounds');
    +	}
    +};
    +
    +/**
    + * Function: calculateWidestRank
    + * 
    + * Calculates the width rank in the hierarchy. Also set the y value of each
    + * rank whilst performing the calculation
    + * 
    + * Parameters:
    + * 
    + * graph - the facade describing the input graph
    + * model - an internal model of the hierarchical layout
    + */
    +mxCoordinateAssignment.prototype.calculateWidestRank = function(graph, model)
    +{
    +	// Starting y co-ordinate
    +	var y = -this.interRankCellSpacing;
    +	
    +	// Track the widest cell on the last rank since the y
    +	// difference depends on it
    +	var lastRankMaxCellHeight = 0.0;
    +	this.rankWidths = [];
    +	this.rankY = [];
    +
    +	for (var rankValue = model.maxRank; rankValue >= 0; rankValue--)
    +	{
    +		// Keep track of the widest cell on this rank
    +		var maxCellHeight = 0.0;
    +		var rank = model.ranks[rankValue];
    +		var localX = this.initialX;
    +
    +		// Store whether or not any of the cells' bounds were unavailable so
    +		// to only issue the warning once for all cells
    +		var boundsWarning = false;
    +		
    +		for (var i = 0; i < rank.length; i++)
    +		{
    +			var node = rank[i];
    +
    +			if (node.isVertex())
    +			{
    +				var bounds = this.layout.getVertexBounds(node.cell);
    +
    +				if (bounds != null)
    +				{
    +					if (this.orientation == mxConstants.DIRECTION_NORTH ||
    +						this.orientation == mxConstants.DIRECTION_SOUTH)
    +					{
    +						node.width = bounds.width;
    +						node.height = bounds.height;
    +					}
    +					else
    +					{
    +						node.width = bounds.height;
    +						node.height = bounds.width;
    +					}
    +				}
    +				else
    +				{
    +					boundsWarning = true;
    +				}
    +
    +				maxCellHeight = Math.max(maxCellHeight, node.height);
    +			}
    +			else if (node.isEdge())
    +			{
    +				// The width is the number of additional parallel edges
    +				// time the parallel edge spacing
    +				var numEdges = 1;
    +
    +				if (node.edges != null)
    +				{
    +					numEdges = node.edges.length;
    +				}
    +				else
    +				{
    +					mxLog.warn('edge.edges is null');
    +				}
    +
    +				node.width = (numEdges - 1) * this.parallelEdgeSpacing;
    +			}
    +
    +			// Set the initial x-value as being the best result so far
    +			localX += node.width / 2.0;
    +			node.setX(rankValue, localX);
    +			node.setGeneralPurposeVariable(rankValue, localX);
    +			localX += node.width / 2.0;
    +			localX += this.intraCellSpacing;
    +
    +			if (localX > this.widestRankValue)
    +			{
    +				this.widestRankValue = localX;
    +				this.widestRank = rankValue;
    +			}
    +
    +			this.rankWidths[rankValue] = localX;
    +		}
    +
    +		if (boundsWarning == true)
    +		{
    +			mxLog.warn('At least one cell has no bounds');
    +		}
    +
    +		this.rankY[rankValue] = y;
    +		var distanceToNextRank = maxCellHeight / 2.0
    +				+ lastRankMaxCellHeight / 2.0 + this.interRankCellSpacing;
    +		lastRankMaxCellHeight = maxCellHeight;
    +
    +		if (this.orientation == mxConstants.DIRECTION_NORTH ||
    +			this.orientation == mxConstants.DIRECTION_WEST)
    +		{
    +			y += distanceToNextRank;
    +		}
    +		else
    +		{
    +			y -= distanceToNextRank;
    +		}
    +
    +		for (var i = 0; i < rank.length; i++)
    +		{
    +			var cell = rank[i];
    +			cell.setY(rankValue, y);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: minPath
    + * 
    + * Straightens out chains of virtual nodes where possibleacade to those stored after this layout
    + * processing step has completed.
    + * 
    + * Parameters:
    + *
    + * graph - the facade describing the input graph
    + * model - an internal model of the hierarchical layout
    + */
    +mxCoordinateAssignment.prototype.minPath = function(graph, model)
    +{
    +	// Work down and up each edge with at least 2 control points
    +	// trying to straighten each one out. If the same number of
    +	// straight segments are formed in both directions, the 
    +	// preferred direction used is the one where the final
    +	// control points have the least offset from the connectable 
    +	// region of the terminating vertices
    +	var edges = model.edgeMapper;
    +	
    +	for (var key in edges)
    +	{
    +		var cell = edges[key];
    +		
    +		var numEdgeLayers = cell.maxRank - cell.minRank - 1;
    +		// At least two virtual nodes in the edge
    +		// Check first whether the edge is already straight
    +		var referenceX = cell
    +				.getGeneralPurposeVariable(cell.minRank + 1);
    +		var edgeStraight = true;
    +		var refSegCount = 0;
    +		
    +		for (var i = cell.minRank + 2; i < cell.maxRank; i++)
    +		{
    +			var x = cell.getGeneralPurposeVariable(i);
    +
    +			if (referenceX != x)
    +			{
    +				edgeStraight = false;
    +				referenceX = x;
    +			}
    +			else
    +			{
    +				refSegCount++;
    +			}
    +		}
    +
    +		if (!edgeStraight)
    +		{
    +			var upSegCount = 0;
    +			var downSegCount = 0;
    +			var upXPositions = [];
    +			var downXPositions = [];
    +
    +			var currentX = cell.getGeneralPurposeVariable(cell.minRank + 1);
    +
    +			for (var i = cell.minRank + 1; i < cell.maxRank - 1; i++)
    +			{
    +				// Attempt to straight out the control point on the
    +				// next segment up with the current control point.
    +				var nextX = cell.getX(i + 1);
    +
    +				if (currentX == nextX)
    +				{
    +					upXPositions[i - cell.minRank - 1] = currentX;
    +					upSegCount++;
    +				}
    +				else if (this.repositionValid(model, cell, i + 1, currentX))
    +				{
    +					upXPositions[i - cell.minRank - 1] = currentX;
    +					upSegCount++;
    +					// Leave currentX at same value
    +				}
    +				else
    +				{
    +					upXPositions[i - cell.minRank - 1] = cell.getX(i);
    +					currentX = nextX;
    +				}				
    +			}
    +
    +			currentX = cell.getX(i);
    +
    +			for (var i = cell.maxRank - 1; i > cell.minRank + 1; i--)
    +			{
    +				// Attempt to straight out the control point on the
    +				// next segment down with the current control point.
    +				var nextX = cell.getX(i - 1);
    +
    +				if (currentX == nextX)
    +				{
    +					downXPositions[i - cell.minRank - 2] = currentX;
    +					downSegCount++;
    +				}
    +				else if (this.repositionValid(model, cell, i - 1, currentX))
    +				{
    +					downXPositions[i - cell.minRank - 2] = currentX;
    +					downSegCount++;
    +					// Leave currentX at same value
    +				}
    +				else
    +				{
    +					downXPositions[i - cell.minRank - 2] = cell.getX(i);
    +					currentX = nextX;
    +				}
    +			}
    +
    +			if (downSegCount > refSegCount || upSegCount > refSegCount)
    +			{
    +				if (downSegCount > upSegCount)
    +				{
    +					// Apply down calculation values
    +					for (var i = cell.maxRank - 2; i > cell.minRank; i--)
    +					{
    +						cell.setX(i, downXPositions[i - cell.minRank - 1]);
    +					}
    +				}
    +				else if (upSegCount > downSegCount)
    +				{
    +					// Apply up calculation values
    +					for (var i = cell.minRank + 2; i < cell.maxRank; i++)
    +					{
    +						cell.setX(i, upXPositions[i - cell.minRank - 2]);
    +					}
    +				}
    +				else
    +				{
    +					// Neither direction provided a favourable result
    +					// But both calculations are better than the
    +					// existing solution, so apply the one with minimal
    +					// offset to attached vertices at either end.
    +				}
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: repositionValid
    + * 
    + * Determines whether or not a node may be moved to the specified x 
    + * position on the specified rank
    + * 
    + * Parameters:
    + *
    + * model - the layout model
    + * cell - the cell being analysed
    + * rank - the layer of the cell
    + * position - the x position being sought
    + */
    +mxCoordinateAssignment.prototype.repositionValid = function(model, cell, rank, position)
    +{
    +	var rankArray = model.ranks[rank];
    +	var rankIndex = -1;
    +
    +	for (var i = 0; i < rankArray.length; i++)
    +	{
    +		if (cell == rankArray[i])
    +		{
    +			rankIndex = i;
    +			break;
    +		}
    +	}
    +
    +	if (rankIndex < 0)
    +	{
    +		return false;
    +	}
    +
    +	var currentX = cell.getGeneralPurposeVariable(rank);
    +
    +	if (position < currentX)
    +	{
    +		// Trying to move node to the left.
    +		if (rankIndex == 0)
    +		{
    +			// Left-most node, can move anywhere
    +			return true;
    +		}
    +
    +		var leftCell = rankArray[rankIndex - 1];
    +		var leftLimit = leftCell.getGeneralPurposeVariable(rank);
    +		leftLimit = leftLimit + leftCell.width / 2
    +				+ this.intraCellSpacing + cell.width / 2;
    +
    +		if (leftLimit <= position)
    +		{
    +			return true;
    +		}
    +		else
    +		{
    +			return false;
    +		}
    +	}
    +	else if (position > currentX)
    +	{
    +		// Trying to move node to the right.
    +		if (rankIndex == rankArray.length - 1)
    +		{
    +			// Right-most node, can move anywhere
    +			return true;
    +		}
    +
    +		var rightCell = rankArray[rankIndex + 1];
    +		var rightLimit = rightCell.getGeneralPurposeVariable(rank);
    +		rightLimit = rightLimit - rightCell.width / 2
    +				- this.intraCellSpacing - cell.width / 2;
    +
    +		if (rightLimit >= position)
    +		{
    +			return true;
    +		}
    +		else
    +		{
    +			return false;
    +		}
    +	}
    +
    +	return true;
    +};
    +
    +/**
    + * Function: setCellLocations
    + * 
    + * Sets the cell locations in the facade to those stored after this layout
    + * processing step has completed.
    + * 
    + * Parameters:
    + *
    + * graph - the input graph
    + * model - the layout model
    + */
    +mxCoordinateAssignment.prototype.setCellLocations = function(graph, model)
    +{
    +	this.rankTopY = [];
    +	this.rankBottomY = [];
    +
    +	for (var i = 0; i < model.ranks.length; i++)
    +	{
    +		this.rankTopY[i] = Number.MAX_VALUE;
    +		this.rankBottomY[i] = 0.0;
    +	}
    +
    +	var edges = model.edgeMapper;
    +	var vertices = model.vertexMapper;
    +
    +	// Process vertices all first, since they define the lower and 
    +	// limits of each rank. Between these limits lie the channels
    +	// where the edges can be routed across the graph
    +
    +	for (var key in vertices)
    +	{
    +		this.setVertexLocation(vertices[key]);
    +	}
    +	
    +	// Post process edge styles. Needs the vertex locations set for initial
    +	// values of the top and bottoms of each rank
    +	if (this.edgeStyle == mxHierarchicalEdgeStyle.ORTHOGONAL
    +			|| this.edgeStyle == mxHierarchicalEdgeStyle.POLYLINE)
    +	{
    +		this.localEdgeProcessing(model);
    +	}
    +
    +	for (var key in edges)
    +	{
    +		this.setEdgePosition(edges[key]);
    +	}
    +};
    +
    +/**
    + * Function: localEdgeProcessing
    + * 
    + * Separates the x position of edges as they connect to vertices
    + * 
    + * Parameters:
    + *
    + * model - the layout model
    + */
    +mxCoordinateAssignment.prototype.localEdgeProcessing = function(model)
    +{
    +	var edgeMapping = model.edgeMapper;
    +
    +	// Iterate through each vertex, look at the edges connected in
    +	// both directions.
    +	for (var rankIndex = 0; rankIndex < model.ranks.length; rankIndex++)
    +	{
    +		var rank = model.ranks[rankIndex];
    +
    +		for (var cellIndex = 0; cellIndex < rank.length; cellIndex++)
    +		{
    +			var cell = rank[cellIndex];
    +
    +			if (cell.isVertex())
    +			{
    +				var currentCells = cell.getPreviousLayerConnectedCells(rankIndex);
    +
    +				var currentRank = rankIndex - 1;
    +
    +				// Two loops, last connected cells, and next
    +				for (var k = 0; k < 2; k++)
    +				{
    +					if (currentRank > -1
    +							&& currentRank < model.ranks.length
    +							&& currentCells != null
    +							&& currentCells.length > 0)
    +					{
    +						var sortedCells = [];
    +
    +						for (var j = 0; j < currentCells.length; j++)
    +						{
    +							var sorter = new WeightedCellSorter(
    +									currentCells[j], currentCells[j].getX(currentRank));
    +							sortedCells.push(sorter);
    +						}
    +
    +						sortedCells.sort(WeightedCellSorter.prototype.compare);
    +
    +						var leftLimit = cell.x[0] - cell.width / 2;
    +						var rightLimit = leftLimit + cell.width;
    +
    +						// Connected edge count starts at 1 to allow for buffer
    +						// with edge of vertex
    +						var connectedEdgeCount = 0;
    +						var connectedEdgeGroupCount = 0;
    +						var connectedEdges = [];
    +						// Calculate width requirements for all connected edges
    +						for (var j = 0; j < sortedCells.length; j++)
    +						{
    +							var innerCell = sortedCells[j].cell;
    +							var connections;
    +
    +							if (innerCell.isVertex())
    +							{
    +								// Get the connecting edge
    +								if (k == 0)
    +								{
    +									connections = cell.connectsAsSource;
    +
    +								}
    +								else
    +								{
    +									connections = cell.connectsAsTarget;
    +								}
    +
    +								for (var connIndex = 0; connIndex < connections.length; connIndex++)
    +								{
    +									if (connections[connIndex].source == innerCell
    +											|| connections[connIndex].target == innerCell)
    +									{
    +										connectedEdgeCount += connections[connIndex].edges
    +												.length;
    +										connectedEdgeGroupCount++;
    +
    +										connectedEdges.push(connections[connIndex]);
    +									}
    +								}
    +							}
    +							else
    +							{
    +								connectedEdgeCount += innerCell.edges.length;
    +								connectedEdgeGroupCount++;
    +								connectedEdges.push(innerCell);
    +							}
    +						}
    +
    +						var requiredWidth = (connectedEdgeCount + 1)
    +								* this.prefHozEdgeSep;
    +
    +						// Add a buffer on the edges of the vertex if the edge count allows
    +						if (cell.width > requiredWidth
    +								+ (2 * this.prefHozEdgeSep))
    +						{
    +							leftLimit += this.prefHozEdgeSep;
    +							rightLimit -= this.prefHozEdgeSep;
    +						}
    +
    +						var availableWidth = rightLimit - leftLimit;
    +						var edgeSpacing = availableWidth / connectedEdgeCount;
    +
    +						var currentX = leftLimit + edgeSpacing / 2.0;
    +						var currentYOffset = this.minEdgeJetty - this.prefVertEdgeOff;
    +						var maxYOffset = 0;
    +
    +						for (var j = 0; j < connectedEdges.length; j++)
    +						{
    +							var numActualEdges = connectedEdges[j].edges
    +									.length;
    +							var edgeId = mxCellPath.create(connectedEdges[j].edges[0]);
    +							var pos = this.jettyPositions[edgeId];
    +							
    +							if (pos == null)
    +							{
    +								pos = [];
    +								this.jettyPositions[edgeId] = pos;
    +							}
    +
    +							if (j < connectedEdgeCount / 2)
    +							{
    +								currentYOffset += this.prefVertEdgeOff;
    +							}
    +							else if (j > connectedEdgeCount / 2)
    +							{
    +								currentYOffset -= this.prefVertEdgeOff;
    +							}
    +							// Ignore the case if equals, this means the second of 2
    +							// jettys with the same y (even number of edges)
    +
    +							for (var m = 0; m < numActualEdges; m++)
    +							{
    +								pos[m * 4 + k * 2] = currentX;
    +								currentX += edgeSpacing;
    +								pos[m * 4 + k * 2 + 1] = currentYOffset;
    +							}
    +							
    +							maxYOffset = Math.max(maxYOffset,
    +									currentYOffset);
    +						}
    +					}
    +
    +					currentCells = cell.getNextLayerConnectedCells(rankIndex);
    +
    +					currentRank = rankIndex + 1;
    +				}
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: setEdgePosition
    + * 
    + * Fixes the control points
    + */
    +mxCoordinateAssignment.prototype.setEdgePosition = function(cell)
    +{
    +	// For parallel edges we need to seperate out the points a
    +	// little
    +	var offsetX = 0;
    +	// Only set the edge control points once
    +
    +	if (cell.temp[0] != 101207)
    +	{
    +		var maxRank = cell.maxRank;
    +		var minRank = cell.minRank;
    +		
    +		if (maxRank == minRank)
    +		{
    +			maxRank = cell.source.maxRank;
    +			minRank = cell.target.minRank;
    +		}
    +		
    +		var parallelEdgeCount = 0;
    +		var edgeId = mxCellPath.create(cell.edges[0]);
    +		var jettys = this.jettyPositions[edgeId];
    +
    +		for (var i = 0; i < cell.edges.length; i++)
    +		{
    +			var realEdge = cell.edges[i];
    +
    +			//List oldPoints = graph.getPoints(realEdge);
    +			var newPoints = [];
    +
    +			if (jettys != null)
    +			{
    +				var arrayOffset = cell.isReversed ? 2 : 0;
    +				var y = cell.isReversed ? this.rankTopY[minRank] : this.rankBottomY[maxRank];
    +				var jetty = jettys[parallelEdgeCount * 4 + 1 + arrayOffset];
    +				
    +				if (cell.isReversed)
    +				{
    +					jetty = -jetty;
    +				}
    +				
    +				y += jetty;
    +				var x = jettys[parallelEdgeCount * 4 + arrayOffset];
    +
    +				if (this.orientation == mxConstants.DIRECTION_NORTH
    +						|| this.orientation == mxConstants.DIRECTION_SOUTH)
    +				{
    +					newPoints.push(new mxPoint(x, y));
    +				}
    +				else
    +				{
    +					newPoints.push(new mxPoint(y, x));
    +				}
    +			}
    +
    +			// Declare variables to define loop through edge points and 
    +			// change direction if edge is reversed
    +
    +			var loopStart = cell.x.length - 1;
    +			var loopLimit = -1;
    +			var loopDelta = -1;
    +			var currentRank = cell.maxRank - 1;
    +
    +			if (cell.isReversed)
    +			{
    +				loopStart = 0;
    +				loopLimit = cell.x.length;
    +				loopDelta = 1;
    +				currentRank = cell.minRank + 1;
    +			}
    +			// Reversed edges need the points inserted in
    +			// reverse order
    +			for (var j = loopStart; (cell.maxRank != cell.minRank) && j != loopLimit; j += loopDelta)
    +			{
    +				// The horizontal position in a vertical layout
    +				var positionX = cell.x[j] + offsetX;
    +
    +				// Work out the vertical positions in a vertical layout
    +				// in the edge buffer channels above and below this rank
    +				var topChannelY = (this.rankTopY[currentRank] + this.rankBottomY[currentRank + 1]) / 2.0;
    +				var bottomChannelY = (this.rankTopY[currentRank - 1] + this.rankBottomY[currentRank]) / 2.0;
    +
    +				if (cell.isReversed)
    +				{
    +					var tmp = topChannelY;
    +					topChannelY = bottomChannelY;
    +					bottomChannelY = tmp;
    +				}
    +
    +				if (this.orientation == mxConstants.DIRECTION_NORTH ||
    +					this.orientation == mxConstants.DIRECTION_SOUTH)
    +				{
    +					newPoints.push(new mxPoint(positionX, topChannelY));
    +					newPoints.push(new mxPoint(positionX, bottomChannelY));
    +				}
    +				else
    +				{
    +					newPoints.push(new mxPoint(topChannelY, positionX));
    +					newPoints.push(new mxPoint(bottomChannelY, positionX));
    +				}
    +
    +				this.limitX = Math.max(this.limitX, positionX);
    +				currentRank += loopDelta;
    +			}
    +
    +			if (jettys != null)
    +			{
    +				var arrayOffset = cell.isReversed ? 2 : 0;
    +				var rankY = cell.isReversed ? this.rankBottomY[maxRank] : this.rankTopY[minRank];
    +				var jetty = jettys[parallelEdgeCount * 4 + 3 - arrayOffset];
    +				
    +				if (cell.isReversed)
    +				{
    +					jetty = -jetty;
    +				}
    +				var y = rankY - jetty;
    +				var x = jettys[parallelEdgeCount * 4 + 2 - arrayOffset];
    +				
    +				if (this.orientation == mxConstants.DIRECTION_NORTH ||
    +						this.orientation == mxConstants.DIRECTION_SOUTH)
    +				{
    +					newPoints.push(new mxPoint(x, y));
    +				}
    +				else
    +				{
    +					newPoints.push(new mxPoint(y, x));
    +				}
    +			}
    +
    +			if (cell.isReversed)
    +			{
    +				this.processReversedEdge(cell, realEdge);
    +			}
    +
    +			this.layout.setEdgePoints(realEdge, newPoints);
    +
    +			// Increase offset so next edge is drawn next to
    +			// this one
    +			if (offsetX == 0.0)
    +			{
    +				offsetX = this.parallelEdgeSpacing;
    +			}
    +			else if (offsetX > 0)
    +			{
    +				offsetX = -offsetX;
    +			}
    +			else
    +			{
    +				offsetX = -offsetX + this.parallelEdgeSpacing;
    +			}
    +			
    +			parallelEdgeCount++;
    +		}
    +
    +		cell.temp[0] = 101207;
    +	}
    +};
    +
    +
    +/**
    + * Function: setVertexLocation
    + * 
    + * Fixes the position of the specified vertex.
    + * 
    + * Parameters:
    + * 
    + * cell - the vertex to position
    + */
    +mxCoordinateAssignment.prototype.setVertexLocation = function(cell)
    +{
    +	var realCell = cell.cell;
    +	var positionX = cell.x[0] - cell.width / 2;
    +	var positionY = cell.y[0] - cell.height / 2;
    +
    +	this.rankTopY[cell.minRank] = Math.min(this.rankTopY[cell.minRank], positionY);
    +	this.rankBottomY[cell.minRank] = Math.max(this.rankBottomY[cell.minRank],
    +			positionY + cell.height);
    +
    +	if (this.orientation == mxConstants.DIRECTION_NORTH ||
    +		this.orientation == mxConstants.DIRECTION_SOUTH)
    +	{
    +		this.layout.setVertexLocation(realCell, positionX, positionY);
    +	}
    +	else
    +	{
    +		this.layout.setVertexLocation(realCell, positionY, positionX);
    +	}
    +
    +	this.limitX = Math.max(this.limitX, positionX + cell.width);
    +};
    +
    +/**
    + * Function: processReversedEdge
    + * 
    + * Hook to add additional processing
    + * 
    + * Parameters:
    + * 
    + * edge - the hierarchical model edge
    + * realEdge - the real edge in the graph
    + */
    +mxCoordinateAssignment.prototype.processReversedEdge = function(graph, model)
    +{
    +	// hook for subclassers
    +};
    +
    +/**
    + * Class: WeightedCellSorter
    + * 
    + * A utility class used to track cells whilst sorting occurs on the weighted
    + * sum of their connected edges. Does not violate (x.compareTo(y)==0) ==
    + * (x.equals(y))
    + *
    + * Constructor: WeightedCellSorter
    + * 
    + * Constructs a new weighted cell sorted for the given cell and weight.
    + */
    +function WeightedCellSorter(cell, weightedValue)
    +{
    +	this.cell = cell;
    +	this.weightedValue = weightedValue;
    +};
    +
    +/**
    + * Variable: weightedValue
    + * 
    + * The weighted value of the cell stored.
    + */
    +WeightedCellSorter.prototype.weightedValue = 0;
    +
    +/**
    + * Variable: nudge
    + * 
    + * Whether or not to flip equal weight values.
    + */
    +WeightedCellSorter.prototype.nudge = false;
    +
    +/**
    + * Variable: visited
    + * 
    + * Whether or not this cell has been visited in the current assignment.
    + */
    +WeightedCellSorter.prototype.visited = false;
    +
    +/**
    + * Variable: rankIndex
    + * 
    + * The index this cell is in the model rank.
    + */
    +WeightedCellSorter.prototype.rankIndex = null;
    +
    +/**
    + * Variable: cell
    + * 
    + * The cell whose median value is being calculated.
    + */
    +WeightedCellSorter.prototype.cell = null;
    +
    +/**
    + * Function: compare
    + * 
    + * Compares two WeightedCellSorters.
    + */
    +WeightedCellSorter.prototype.compare = function(a, b)
    +{
    +	if (a != null && b != null)
    +	{
    +		if (b.weightedValue > a.weightedValue)
    +		{
    +			return -1;
    +		}
    +		else if (b.weightedValue < a.weightedValue)
    +		{
    +			return 1;
    +		}
    +		else
    +		{
    +			if (b.nudge)
    +			{
    +				return -1;
    +			}
    +			else
    +			{
    +				return 1;
    +			}
    +		}
    +	}
    +	else
    +	{
    +		return 0;
    +	}
    +};
    diff --git a/javascript/src/js/layout/hierarchical/stage/mxHierarchicalLayoutStage.js b/javascript/src/js/layout/hierarchical/stage/mxHierarchicalLayoutStage.js
    new file mode 100644
    index 000000000..2e635fc4b
    --- /dev/null
    +++ b/javascript/src/js/layout/hierarchical/stage/mxHierarchicalLayoutStage.js
    @@ -0,0 +1,25 @@
    +/**
    + * $Id: mxHierarchicalLayoutStage.js,v 1.8 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxHierarchicalLayoutStage
    + * 
    + * The specific layout interface for hierarchical layouts. It adds a
    + * <code>run</code> method with a parameter for the hierarchical layout model
    + * that is shared between the layout stages.
    + * 
    + * Constructor: mxHierarchicalLayoutStage
    + *
    + * Constructs a new hierarchical layout stage.
    + */
    +function mxHierarchicalLayoutStage() { };
    +
    +/**
    + * Function: execute
    + * 
    + * Takes the graph detail and configuration information within the facade
    + * and creates the resulting laid out graph within that facade for further
    + * use.
    + */
    +mxHierarchicalLayoutStage.prototype.execute = function(parent) { };
    diff --git a/javascript/src/js/layout/hierarchical/stage/mxMedianHybridCrossingReduction.js b/javascript/src/js/layout/hierarchical/stage/mxMedianHybridCrossingReduction.js
    new file mode 100644
    index 000000000..6a0efe25c
    --- /dev/null
    +++ b/javascript/src/js/layout/hierarchical/stage/mxMedianHybridCrossingReduction.js
    @@ -0,0 +1,668 @@
    +/**
    + * $Id: mxMedianHybridCrossingReduction.js,v 1.24 2012-03-29 13:03:13 david Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxMedianHybridCrossingReduction
    + * 
    + * Sets the horizontal locations of node and edge dummy nodes on each layer.
    + * Uses median down and up weighings as well heuristic to straighten edges as
    + * far as possible.
    + * 
    + * Constructor: mxMedianHybridCrossingReduction
    + *
    + * Creates a coordinate assignment.
    + * 
    + * Arguments:
    + * 
    + * intraCellSpacing - the minimum buffer between cells on the same rank
    + * interRankCellSpacing - the minimum distance between cells on adjacent ranks
    + * orientation - the position of the root node(s) relative to the graph
    + * initialX - the leftmost coordinate node placement starts at
    + */
    +function mxMedianHybridCrossingReduction(layout)
    +{
    +	this.layout = layout;
    +};
    +
    +/**
    + * Extends mxMedianHybridCrossingReduction.
    + */
    +mxMedianHybridCrossingReduction.prototype = new mxHierarchicalLayoutStage();
    +mxMedianHybridCrossingReduction.prototype.constructor = mxMedianHybridCrossingReduction;
    +
    +/**
    + * Variable: layout
    + * 
    + * Reference to the enclosing <mxHierarchicalLayout>.
    + */
    +mxMedianHybridCrossingReduction.prototype.layout = null;
    +
    +/**
    + * Variable: maxIterations
    + * 
    + * The maximum number of iterations to perform whilst reducing edge
    + * crossings. Default is 24.
    + */
    +mxMedianHybridCrossingReduction.prototype.maxIterations = 24;
    +
    +/**
    + * Variable: nestedBestRanks
    + * 
    + * Stores each rank as a collection of cells in the best order found for
    + * each layer so far
    + */
    +mxMedianHybridCrossingReduction.prototype.nestedBestRanks = null;
    +
    +/**
    + * Variable: currentBestCrossings
    + * 
    + * The total number of crossings found in the best configuration so far
    + */
    +mxMedianHybridCrossingReduction.prototype.currentBestCrossings = 0;
    +
    +/**
    + * Variable: iterationsWithoutImprovement
    + * 
    + * The total number of crossings found in the best configuration so far
    + */
    +mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement = 0;
    +
    +/**
    + * Variable: maxNoImprovementIterations
    + * 
    + * The total number of crossings found in the best configuration so far
    + */
    +mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations = 2;
    +
    +/**
    + * Function: execute
    + * 
    + * Performs a vertex ordering within ranks as described by Gansner et al
    + * 1993
    + */
    +mxMedianHybridCrossingReduction.prototype.execute = function(parent)
    +{
    +	var model = this.layout.getModel();
    +
    +	// Stores initial ordering as being the best one found so far
    +	this.nestedBestRanks = [];
    +	
    +	for (var i = 0; i < model.ranks.length; i++)
    +	{
    +		this.nestedBestRanks[i] = model.ranks[i].slice();
    +	}
    +
    +	var iterationsWithoutImprovement = 0;
    +	var currentBestCrossings = this.calculateCrossings(model);
    +
    +	for (var i = 0; i < this.maxIterations &&
    +		iterationsWithoutImprovement < this.maxNoImprovementIterations; i++)
    +	{
    +		this.weightedMedian(i, model);
    +		this.transpose(i, model);
    +		var candidateCrossings = this.calculateCrossings(model);
    +
    +		if (candidateCrossings < currentBestCrossings)
    +		{
    +			currentBestCrossings = candidateCrossings;
    +			iterationsWithoutImprovement = 0;
    +
    +			// Store the current rankings as the best ones
    +			for (var j = 0; j < this.nestedBestRanks.length; j++)
    +			{
    +				var rank = model.ranks[j];
    +
    +				for (var k = 0; k < rank.length; k++)
    +				{
    +					var cell = rank[k];
    +					this.nestedBestRanks[j][cell.getGeneralPurposeVariable(j)] = cell;
    +				}
    +			}
    +		}
    +		else
    +		{
    +			// Increase count of iterations where we haven't improved the
    +			// layout
    +			iterationsWithoutImprovement++;
    +
    +			// Restore the best values to the cells
    +			for (var j = 0; j < this.nestedBestRanks.length; j++)
    +			{
    +				var rank = model.ranks[j];
    +				
    +				for (var k = 0; k < rank.length; k++)
    +				{
    +					var cell = rank[k];
    +					cell.setGeneralPurposeVariable(j, k);
    +				}
    +			}
    +		}
    +		
    +		if (currentBestCrossings == 0)
    +		{
    +			// Do nothing further
    +			break;
    +		}
    +	}
    +
    +	// Store the best rankings but in the model
    +	var ranks = [];
    +	var rankList = [];
    +
    +	for (var i = 0; i < model.maxRank + 1; i++)
    +	{
    +		rankList[i] = [];
    +		ranks[i] = rankList[i];
    +	}
    +
    +	for (var i = 0; i < this.nestedBestRanks.length; i++)
    +	{
    +		for (var j = 0; j < this.nestedBestRanks[i].length; j++)
    +		{
    +			rankList[i].push(this.nestedBestRanks[i][j]);
    +		}
    +	}
    +
    +	model.ranks = ranks;
    +};
    +
    +
    +/**
    + * Function: calculateCrossings
    + * 
    + * Calculates the total number of edge crossing in the current graph.
    + * Returns the current number of edge crossings in the hierarchy graph
    + * model in the current candidate layout
    + * 
    + * Parameters:
    + * 
    + * model - the internal model describing the hierarchy
    + */
    +mxMedianHybridCrossingReduction.prototype.calculateCrossings = function(model)
    +{
    +	var numRanks = model.ranks.length;
    +	var totalCrossings = 0;
    +
    +	for (var i = 1; i < numRanks; i++)
    +	{
    +		totalCrossings += this.calculateRankCrossing(i, model);
    +	}
    +	
    +	return totalCrossings;
    +};
    +
    +/**
    + * Function: calculateRankCrossing
    + * 
    + * Calculates the number of edges crossings between the specified rank and
    + * the rank below it. Returns the number of edges crossings with the rank
    + * beneath
    + * 
    + * Parameters:
    + * 
    + * i -  the topmost rank of the pair ( higher rank value )
    + * model - the internal model describing the hierarchy
    + */
    +mxMedianHybridCrossingReduction.prototype.calculateRankCrossing = function(i, model)
    +{
    +	var totalCrossings = 0;
    +	var rank = model.ranks[i];
    +	var previousRank = model.ranks[i - 1];
    +
    +	// Create an array of connections between these two levels
    +	var currentRankSize = rank.length;
    +	var previousRankSize = previousRank.length;
    +	var connections = [];
    +
    +	for (var j = 0; j < currentRankSize; j++)
    +	{
    +		connections[j] = [];
    +	}
    +	
    +	// Iterate over the top rank and fill in the connection information
    +	for (var j = 0; j < rank.length; j++)
    +	{
    +		var node = rank[j];
    +		var rankPosition = node.getGeneralPurposeVariable(i);
    +		var connectedCells = node.getPreviousLayerConnectedCells(i);
    +	
    +		for (var k = 0; k < connectedCells.length; k++)
    +		{
    +			var connectedNode = connectedCells[k];
    +			var otherCellRankPosition = connectedNode.getGeneralPurposeVariable(i - 1);
    +			connections[rankPosition][otherCellRankPosition] = 201207;
    +		}
    +	}
    +
    +	// Iterate through the connection matrix, crossing edges are
    +	// indicated by other connected edges with a greater rank position
    +	// on one rank and lower position on the other
    +	for (var j = 0; j < currentRankSize; j++)
    +	{
    +		for (var k = 0; k < previousRankSize; k++)
    +		{
    +			if (connections[j][k] == 201207)
    +			{
    +				// Draw a grid of connections, crossings are top right
    +				// and lower left from this crossing pair
    +				for (var j2 = j + 1; j2 < currentRankSize; j2++)
    +				{
    +					for (var k2 = 0; k2 < k; k2++)
    +					{
    +						if (connections[j2][k2] == 201207)
    +						{
    +							totalCrossings++;
    +						}
    +					}
    +				}
    +				
    +				for (var j2 = 0; j2 < j; j2++)
    +				{
    +					for (var k2 = k + 1; k2 < previousRankSize; k2++)
    +					{
    +						if (connections[j2][k2] == 201207)
    +						{
    +							totalCrossings++;
    +						}
    +					}
    +				}
    +
    +			}
    +		}
    +	}
    +	
    +	return totalCrossings / 2;
    +};
    +
    +/**
    + * Function: transpose
    + * 
    + * Takes each possible adjacent cell pair on each rank and checks if
    + * swapping them around reduces the number of crossing
    + * 
    + * Parameters:
    + * 
    + * mainLoopIteration - the iteration number of the main loop
    + * model - the internal model describing the hierarchy
    + */
    +mxMedianHybridCrossingReduction.prototype.transpose = function(mainLoopIteration, model)
    +{
    +	var improved = true;
    +
    +	// Track the number of iterations in case of looping
    +	var count = 0;
    +	var maxCount = 10;
    +	while (improved && count++ < maxCount)
    +	{
    +		// On certain iterations allow allow swapping of cell pairs with
    +		// equal edge crossings switched or not switched. This help to
    +		// nudge a stuck layout into a lower crossing total.
    +		var nudge = mainLoopIteration % 2 == 1 && count % 2 == 1;
    +		improved = false;
    +		
    +		for (var i = 0; i < model.ranks.length; i++)
    +		{
    +			var rank = model.ranks[i];
    +			var orderedCells = [];
    +			
    +			for (var j = 0; j < rank.length; j++)
    +			{
    +				var cell = rank[j];
    +				var tempRank = cell.getGeneralPurposeVariable(i);
    +				
    +				// FIXME: Workaround to avoid negative tempRanks
    +				if (tempRank < 0)
    +				{
    +					tempRank = j;
    +				}
    +				orderedCells[tempRank] = cell;
    +			}
    +			
    +			var leftCellAboveConnections = null;
    +			var leftCellBelowConnections = null;
    +			var rightCellAboveConnections = null;
    +			var rightCellBelowConnections = null;
    +			
    +			var leftAbovePositions = null;
    +			var leftBelowPositions = null;
    +			var rightAbovePositions = null;
    +			var rightBelowPositions = null;
    +			
    +			var leftCell = null;
    +			var rightCell = null;
    +
    +			for (var j = 0; j < (rank.length - 1); j++)
    +			{
    +				// For each intra-rank adjacent pair of cells
    +				// see if swapping them around would reduce the
    +				// number of edges crossing they cause in total
    +				// On every cell pair except the first on each rank, we
    +				// can save processing using the previous values for the
    +				// right cell on the new left cell
    +				if (j == 0)
    +				{
    +					leftCell = orderedCells[j];
    +					leftCellAboveConnections = leftCell
    +							.getNextLayerConnectedCells(i);
    +					leftCellBelowConnections = leftCell
    +							.getPreviousLayerConnectedCells(i);
    +					leftAbovePositions = [];
    +					leftBelowPositions = [];
    +					
    +					for (var k = 0; k < leftAbovePositions.length; k++)
    +					{
    +						leftAbovePositions[k] = leftCellAboveConnections[k].getGeneralPurposeVariable(i + 1);
    +					}
    +					
    +					for (var k = 0; k < leftBelowPositions.length; k++)
    +					{
    +						leftBelowPositions[k] = leftCellBelowConnections[k].getGeneralPurposeVariable(i - 1);
    +					}
    +				}
    +				else
    +				{
    +					leftCellAboveConnections = rightCellAboveConnections;
    +					leftCellBelowConnections = rightCellBelowConnections;
    +					leftAbovePositions = rightAbovePositions;
    +					leftBelowPositions = rightBelowPositions;
    +					leftCell = rightCell;
    +				}
    +				
    +				rightCell = orderedCells[j + 1];
    +				rightCellAboveConnections = rightCell
    +						.getNextLayerConnectedCells(i);
    +				rightCellBelowConnections = rightCell
    +						.getPreviousLayerConnectedCells(i);
    +
    +				rightAbovePositions = [];
    +				rightBelowPositions = [];
    +
    +				for (var k = 0; k < rightAbovePositions.length; k++)
    +				{
    +					rightAbovePositions[k] = rightCellAboveConnections[k].getGeneralPurposeVariable(i + 1);
    +				}
    +				
    +				for (var k = 0; k < rightBelowPositions.length; k++)
    +				{
    +					rightBelowPositions[k] = rightCellBelowConnections[k].getGeneralPurposeVariable(i - 1);
    +				}
    +
    +				var totalCurrentCrossings = 0;
    +				var totalSwitchedCrossings = 0;
    +				
    +				for (var k = 0; k < leftAbovePositions.length; k++)
    +				{
    +					for (var ik = 0; ik < rightAbovePositions.length; ik++)
    +					{
    +						if (leftAbovePositions[k] > rightAbovePositions[ik])
    +						{
    +							totalCurrentCrossings++;
    +						}
    +
    +						if (leftAbovePositions[k] < rightAbovePositions[ik])
    +						{
    +							totalSwitchedCrossings++;
    +						}
    +					}
    +				}
    +				
    +				for (var k = 0; k < leftBelowPositions.length; k++)
    +				{
    +					for (var ik = 0; ik < rightBelowPositions.length; ik++)
    +					{
    +						if (leftBelowPositions[k] > rightBelowPositions[ik])
    +						{
    +							totalCurrentCrossings++;
    +						}
    +
    +						if (leftBelowPositions[k] < rightBelowPositions[ik])
    +						{
    +							totalSwitchedCrossings++;
    +						}
    +					}
    +				}
    +				
    +				if ((totalSwitchedCrossings < totalCurrentCrossings) ||
    +					(totalSwitchedCrossings == totalCurrentCrossings &&
    +					nudge))
    +				{
    +					var temp = leftCell.getGeneralPurposeVariable(i);
    +					leftCell.setGeneralPurposeVariable(i, rightCell
    +							.getGeneralPurposeVariable(i));
    +					rightCell.setGeneralPurposeVariable(i, temp);
    +
    +					// With this pair exchanged we have to switch all of
    +					// values for the left cell to the right cell so the
    +					// next iteration for this rank uses it as the left
    +					// cell again
    +					rightCellAboveConnections = leftCellAboveConnections;
    +					rightCellBelowConnections = leftCellBelowConnections;
    +					rightAbovePositions = leftAbovePositions;
    +					rightBelowPositions = leftBelowPositions;
    +					rightCell = leftCell;
    +					
    +					if (!nudge)
    +					{
    +						// Don't count nudges as improvement or we'll end
    +						// up stuck in two combinations and not finishing
    +						// as early as we should
    +						improved = true;
    +					}
    +				}
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: weightedMedian
    + * 
    + * Sweeps up or down the layout attempting to minimise the median placement
    + * of connected cells on adjacent ranks
    + * 
    + * Parameters:
    + * 
    + * iteration - the iteration number of the main loop
    + * model - the internal model describing the hierarchy
    + */
    +mxMedianHybridCrossingReduction.prototype.weightedMedian = function(iteration, model)
    +{
    +	// Reverse sweep direction each time through this method
    +	var downwardSweep = (iteration % 2 == 0);
    +	if (downwardSweep)
    +	{
    +		for (var j = model.maxRank - 1; j >= 0; j--)
    +		{
    +			this.medianRank(j, downwardSweep);
    +		}
    +	}
    +	else
    +	{
    +		for (var j = 1; j < model.maxRank; j++)
    +		{
    +			this.medianRank(j, downwardSweep);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: medianRank
    + * 
    + * Attempts to minimise the median placement of connected cells on this rank
    + * and one of the adjacent ranks
    + * 
    + * Parameters:
    + * 
    + * rankValue - the layer number of this rank
    + * downwardSweep - whether or not this is a downward sweep through the graph
    + */
    +mxMedianHybridCrossingReduction.prototype.medianRank = function(rankValue, downwardSweep)
    +{
    +	var numCellsForRank = this.nestedBestRanks[rankValue].length;
    +	var medianValues = [];
    +
    +	for (var i = 0; i < numCellsForRank; i++)
    +	{
    +		var cell = this.nestedBestRanks[rankValue][i];
    +		medianValues[i] = new MedianCellSorter();
    +		medianValues[i].cell = cell;
    +
    +		// Flip whether or not equal medians are flipped on up and down
    +		// sweeps
    +		// TODO re-implement some kind of nudge
    +		// medianValues[i].nudge = !downwardSweep;
    +		var nextLevelConnectedCells;
    +		
    +		if (downwardSweep)
    +		{
    +			nextLevelConnectedCells = cell
    +					.getNextLayerConnectedCells(rankValue);
    +		}
    +		else
    +		{
    +			nextLevelConnectedCells = cell
    +					.getPreviousLayerConnectedCells(rankValue);
    +		}
    +		
    +		var nextRankValue;
    +		
    +		if (downwardSweep)
    +		{
    +			nextRankValue = rankValue + 1;
    +		}
    +		else
    +		{
    +			nextRankValue = rankValue - 1;
    +		}
    +
    +		if (nextLevelConnectedCells != null
    +				&& nextLevelConnectedCells.length != 0)
    +		{
    +			medianValues[i].medianValue = this.medianValue(
    +					nextLevelConnectedCells, nextRankValue);
    +		}
    +		else
    +		{
    +			// Nodes with no adjacent vertices are given a median value of
    +			// -1 to indicate to the median function that they should be
    +			// left of their current position if possible.
    +			medianValues[i].medianValue = -1.0; // TODO needs to account for
    +			// both layers
    +		}
    +	}
    +	
    +	medianValues.sort(MedianCellSorter.prototype.compare);
    +	
    +	// Set the new position of each node within the rank using
    +	// its temp variable
    +	for (var i = 0; i < numCellsForRank; i++)
    +	{
    +		medianValues[i].cell.setGeneralPurposeVariable(rankValue, i);
    +	}
    +};
    +
    +/**
    + * Function: medianValue
    + * 
    + * Calculates the median rank order positioning for the specified cell using
    + * the connected cells on the specified rank. Returns the median rank
    + * ordering value of the connected cells
    + * 
    + * Parameters:
    + * 
    + * connectedCells - the cells on the specified rank connected to the
    + * specified cell
    + * rankValue - the rank that the connected cell lie upon
    + */
    +mxMedianHybridCrossingReduction.prototype.medianValue = function(connectedCells, rankValue)
    +{
    +	var medianValues = [];
    +	var arrayCount = 0;
    +	
    +	for (var i = 0; i < connectedCells.length; i++)
    +	{
    +		var cell = connectedCells[i];
    +		medianValues[arrayCount++] = cell.getGeneralPurposeVariable(rankValue);
    +	}
    +
    +	medianValues.sort(MedianCellSorter.prototype.compare);
    +	
    +	if (arrayCount % 2 == 1)
    +	{
    +		// For odd numbers of adjacent vertices return the median
    +		return medianValues[arrayCount / 2];
    +	}
    +	else if (arrayCount == 2)
    +	{
    +		return ((medianValues[0] + medianValues[1]) / 2.0);
    +	}
    +	else
    +	{
    +		var medianPoint = arrayCount / 2;
    +		var leftMedian = medianValues[medianPoint - 1] - medianValues[0];
    +		var rightMedian = medianValues[arrayCount - 1]
    +				- medianValues[medianPoint];
    +
    +		return (medianValues[medianPoint - 1] * rightMedian + medianValues[medianPoint]
    +				* leftMedian)
    +				/ (leftMedian + rightMedian);
    +	}
    +};
    +
    +/**
    + * Class: MedianCellSorter
    + * 
    + * A utility class used to track cells whilst sorting occurs on the median
    + * values. Does not violate (x.compareTo(y)==0) == (x.equals(y))
    + *
    + * Constructor: MedianCellSorter
    + * 
    + * Constructs a new median cell sorter.
    + */
    +function MedianCellSorter()
    +{
    +	// empty
    +};
    +
    +/**
    + * Variable: medianValue
    + * 
    + * The weighted value of the cell stored.
    + */
    +MedianCellSorter.prototype.medianValue = 0;
    +
    +/**
    + * Variable: cell
    + * 
    + * The cell whose median value is being calculated
    + */
    +MedianCellSorter.prototype.cell = false;
    +
    +/**
    + * Function: compare
    + * 
    + * Compares two MedianCellSorters.
    + */
    +MedianCellSorter.prototype.compare = function(a, b)
    +{
    +	if (a != null && b != null)
    +	{
    +		if (b.medianValue > a.medianValue)
    +		{
    +			return -1;
    +		}
    +		else if (b.medianValue < a.medianValue)
    +		{
    +			return 1;
    +		}
    +		else
    +		{
    +			return 0;
    +		}
    +	}
    +	else
    +	{
    +		return 0;
    +	}
    +};
    diff --git a/javascript/src/js/layout/hierarchical/stage/mxMinimumCycleRemover.js b/javascript/src/js/layout/hierarchical/stage/mxMinimumCycleRemover.js
    new file mode 100644
    index 000000000..4f18f6259
    --- /dev/null
    +++ b/javascript/src/js/layout/hierarchical/stage/mxMinimumCycleRemover.js
    @@ -0,0 +1,131 @@
    +/**
    + * $Id: mxMinimumCycleRemover.js,v 1.14 2010-01-04 11:18:26 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxMinimumCycleRemover
    + * 
    + * An implementation of the first stage of the Sugiyama layout. Straightforward
    + * longest path calculation of layer assignment
    + * 
    + * Constructor: mxMinimumCycleRemover
    + *
    + * Creates a cycle remover for the given internal model.
    + */
    +function mxMinimumCycleRemover(layout)
    +{
    +	this.layout = layout;
    +};
    +
    +/**
    + * Extends mxHierarchicalLayoutStage.
    + */
    +mxMinimumCycleRemover.prototype = new mxHierarchicalLayoutStage();
    +mxMinimumCycleRemover.prototype.constructor = mxMinimumCycleRemover;
    +
    +/**
    + * Variable: layout
    + * 
    + * Reference to the enclosing <mxHierarchicalLayout>.
    + */
    +mxMinimumCycleRemover.prototype.layout = null;
    +
    +/**
    + * Function: execute
    + * 
    + * Takes the graph detail and configuration information within the facade
    + * and creates the resulting laid out graph within that facade for further
    + * use.
    + */
    +mxMinimumCycleRemover.prototype.execute = function(parent)
    +{
    +	var model = this.layout.getModel();
    +	var seenNodes = new Object();
    +	var unseenNodes = mxUtils.clone(model.vertexMapper, null, true);
    +	
    +	// Perform a dfs through the internal model. If a cycle is found,
    +	// reverse it.
    +	var rootsArray = null;
    +	
    +	if (model.roots != null)
    +	{
    +		var modelRoots = model.roots;
    +		rootsArray = [];
    +		
    +		for (var i = 0; i < modelRoots.length; i++)
    +		{
    +			var nodeId = mxCellPath.create(modelRoots[i]);
    +			rootsArray[i] = model.vertexMapper[nodeId];
    +		}
    +	}
    +
    +	model.visit(function(parent, node, connectingEdge, layer, seen)
    +	{
    +		// Check if the cell is in it's own ancestor list, if so
    +		// invert the connecting edge and reverse the target/source
    +		// relationship to that edge in the parent and the cell
    +		if (node.isAncestor(parent))
    +		{
    +			connectingEdge.invert();
    +			mxUtils.remove(connectingEdge, parent.connectsAsSource);
    +			parent.connectsAsTarget.push(connectingEdge);
    +			mxUtils.remove(connectingEdge, node.connectsAsTarget);
    +			node.connectsAsSource.push(connectingEdge);
    +		}
    +		
    +		var cellId = mxCellPath.create(node.cell);
    +		seenNodes[cellId] = node;
    +		delete unseenNodes[cellId];
    +	}, rootsArray, true, null);
    +
    +	var possibleNewRoots = null;
    +
    +	if (unseenNodes.lenth > 0)
    +	{
    +		possibleNewRoots = mxUtils.clone(unseenNodes, null, true);
    +	}
    +	
    +	// If there are any nodes that should be nodes that the dfs can miss
    +	// these need to be processed with the dfs and the roots assigned
    +	// correctly to form a correct internal model
    +	var seenNodesCopy = mxUtils.clone(seenNodes, null, true);
    +
    +	// Pick a random cell and dfs from it
    +	model.visit(function(parent, node, connectingEdge, layer, seen)
    +	{
    +		// Check if the cell is in it's own ancestor list, if so
    +		// invert the connecting edge and reverse the target/source
    +		// relationship to that edge in the parent and the cell
    +		if (node.isAncestor(parent))
    +		{
    +			connectingEdge.invert();
    +			mxUtils.remove(connectingEdge, parent.connectsAsSource);
    +			node.connectsAsSource.push(connectingEdge);
    +			parent.connectsAsTarget.push(connectingEdge);
    +			mxUtils.remove(connectingEdge, node.connectsAsTarget);
    +		}
    +		
    +		var cellId = mxCellPath.create(node.cell);
    +		seenNodes[cellId] = node;
    +		delete unseenNodes[cellId];
    +	}, unseenNodes, true, seenNodesCopy);
    +
    +	var graph = this.layout.getGraph();
    +
    +	if (possibleNewRoots != null && possibleNewRoots.length > 0)
    +	{
    +		var roots = model.roots;
    +
    +		for (var i = 0; i < possibleNewRoots.length; i++)
    +		{
    +			var node = possibleNewRoots[i];
    +			var realNode = node.cell;
    +			var numIncomingEdges = graph.getIncomingEdges(realNode).length;
    +
    +			if (numIncomingEdges == 0)
    +			{
    +				roots.push(realNode);
    +			}
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/layout/mxCircleLayout.js b/javascript/src/js/layout/mxCircleLayout.js
    new file mode 100644
    index 000000000..c82eebaa3
    --- /dev/null
    +++ b/javascript/src/js/layout/mxCircleLayout.js
    @@ -0,0 +1,193 @@
    +/**
    + * $Id: mxCircleLayout.js,v 1.24 2012-03-13 07:01:53 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCircleLayout
    + * 
    + * Extends <mxGraphLayout> to implement a circluar layout for a given radius.
    + * The vertices do not need to be connected for this layout to work and all
    + * connections between vertices are not taken into account.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var layout = new mxCircleLayout(graph);
    + * layout.execute(graph.getDefaultParent());
    + * (end)
    + * 
    + * Constructor: mxCircleLayout
    + *
    + * Constructs a new circular layout for the specified radius.
    + *
    + * Arguments:
    + * 
    + * graph - <mxGraph> that contains the cells.
    + * radius - Optional radius as an int. Default is 100.
    + */
    +function mxCircleLayout(graph, radius)
    +{
    +	mxGraphLayout.call(this, graph);
    +	this.radius = (radius != null) ? radius : 100;
    +};
    +
    +/**
    + * Extends mxGraphLayout.
    + */
    +mxCircleLayout.prototype = new mxGraphLayout();
    +mxCircleLayout.prototype.constructor = mxCircleLayout;
    +
    +/**
    + * Variable: radius
    + * 
    + * Integer specifying the size of the radius. Default is 100.
    + */
    +mxCircleLayout.prototype.radius = null;
    +
    +/**
    + * Variable: moveCircle
    + * 
    + * Boolean specifying if the circle should be moved to the top,
    + * left corner specified by <x0> and <y0>. Default is false.
    + */
    +mxCircleLayout.prototype.moveCircle = false;
    +
    +/**
    + * Variable: x0
    + * 
    + * Integer specifying the left coordinate of the circle.
    + * Default is 0.
    + */
    +mxCircleLayout.prototype.x0 = 0;
    +
    +/**
    + * Variable: y0
    + * 
    + * Integer specifying the top coordinate of the circle.
    + * Default is 0.
    + */
    +mxCircleLayout.prototype.y0 = 0;
    +
    +/**
    + * Variable: resetEdges
    + * 
    + * Specifies if all edge points of traversed edges should be removed.
    + * Default is true.
    + */
    +mxCircleLayout.prototype.resetEdges = true;
    +
    +/**
    + * Variable: disableEdgeStyle
    + * 
    + * Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + * modified by the result. Default is true.
    + */
    +mxCircleLayout.prototype.disableEdgeStyle = true;
    +
    +/**
    + * Function: execute
    + * 
    + * Implements <mxGraphLayout.execute>.
    + */
    +mxCircleLayout.prototype.execute = function(parent)
    +{
    +	var model = this.graph.getModel();
    +
    +	// Moves the vertices to build a circle. Makes sure the
    +	// radius is large enough for the vertices to not
    +	// overlap
    +	model.beginUpdate();
    +	try
    +	{
    +		// Gets all vertices inside the parent and finds
    +		// the maximum dimension of the largest vertex
    +		var max = 0;
    +		var top = null;
    +		var left = null;
    +		var vertices = [];
    +		var childCount = model.getChildCount(parent);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var cell = model.getChildAt(parent, i);
    +			
    +			if (!this.isVertexIgnored(cell))
    +			{
    +				vertices.push(cell);
    +				var bounds = this.getVertexBounds(cell);
    +				
    +				if (top == null)
    +				{
    +					top = bounds.y;
    +				}
    +				else
    +				{
    +					top = Math.min(top, bounds.y);
    +				}
    +				
    +				if (left == null)
    +				{
    +					left = bounds.x;
    +				}
    +				else
    +				{
    +					left = Math.min(left, bounds.x);
    +				}
    +				
    +				max = Math.max(max, Math.max(bounds.width, bounds.height));
    +			}
    +			else if (!this.isEdgeIgnored(cell))
    +			{
    +				// Resets the points on the traversed edge
    +				if (this.resetEdges)
    +				{
    +					this.graph.resetEdge(cell);
    +				}
    +
    +			    if (this.disableEdgeStyle)
    +			    {
    +			    	this.setEdgeStyleEnabled(cell, false);
    +			    }
    +			}
    +		}
    +		
    +		var vertexCount = vertices.length;
    +		var r = Math.max(vertexCount * max / Math.PI, this.radius);
    +
    +		// Moves the circle to the specified origin
    +		if (this.moveCircle)
    +		{
    +			left = this.x0;
    +			top = this.y0;
    +		}
    +		
    +		this.circle(vertices, r, left, top);
    +	}
    +	finally
    +	{
    +		model.endUpdate();
    +	}
    +};
    +
    +/**
    + * Function: circle
    + * 
    + * Executes the circular layout for the specified array
    + * of vertices and the given radius. This is called from
    + * <execute>.
    + */
    +mxCircleLayout.prototype.circle = function(vertices, r, left, top)
    +{
    +	var vertexCount = vertices.length;
    +	var phi = 2 * Math.PI / vertexCount;
    +	
    +	for (var i = 0; i < vertexCount; i++)
    +	{
    +		if (this.isVertexMovable(vertices[i]))
    +		{
    +			this.setVertexLocation(vertices[i],
    +				left + r + r * Math.sin(i*phi),
    +				top + r + r * Math.cos(i*phi));
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/layout/mxCompactTreeLayout.js b/javascript/src/js/layout/mxCompactTreeLayout.js
    new file mode 100644
    index 000000000..7efb29638
    --- /dev/null
    +++ b/javascript/src/js/layout/mxCompactTreeLayout.js
    @@ -0,0 +1,991 @@
    +/**
    + * $Id: mxCompactTreeLayout.js,v 1.56 2012-05-07 21:23:07 david Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCompactTreeLayout
    + * 
    + * Extends <mxGraphLayout> to implement a compact tree (Moen) algorithm. This
    + * layout is suitable for graphs that have no cycles (trees). Vertices that are
    + * not connected to the tree will be ignored by this layout.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var layout = new mxCompactTreeLayout(graph);
    + * layout.execute(graph.getDefaultParent());
    + * (end)
    + * 
    + * Constructor: mxCompactTreeLayout
    + * 
    + * Constructs a new compact tree layout for the specified graph
    + * and orientation.
    + */
    +function mxCompactTreeLayout(graph, horizontal, invert)
    +{
    +	mxGraphLayout.call(this, graph);
    +	this.horizontal = (horizontal != null) ? horizontal : true;
    +	this.invert = (invert != null) ? invert : false;
    +};
    +
    +/**
    + * Extends mxGraphLayout.
    + */
    +mxCompactTreeLayout.prototype = new mxGraphLayout();
    +mxCompactTreeLayout.prototype.constructor = mxCompactTreeLayout;
    +
    +/**
    + * Variable: horizontal
    + *
    + * Specifies the orientation of the layout. Default is true.
    + */
    +mxCompactTreeLayout.prototype.horizontal = null;	 
    +
    +/**
    + * Variable: invert
    + *
    + * Specifies if edge directions should be inverted. Default is false.
    + */
    +mxCompactTreeLayout.prototype.invert = null;	 
    +
    +/**
    + * Variable: resizeParent
    + * 
    + * If the parents should be resized to match the width/height of the
    + * children. Default is true.
    + */
    +mxCompactTreeLayout.prototype.resizeParent = true;
    +
    +/**
    + * Variable: groupPadding
    + * 
    + * Padding added to resized parents
    + */
    +mxCompactTreeLayout.prototype.groupPadding = 10;
    +
    +/**
    + * Variable: parentsChanged
    + *
    + * A set of the parents that need updating based on children
    + * process as part of the layout
    + */
    +mxCompactTreeLayout.prototype.parentsChanged = null;
    +
    +/**
    + * Variable: moveTree
    + * 
    + * Specifies if the tree should be moved to the top, left corner
    + * if it is inside a top-level layer. Default is false.
    + */
    +mxCompactTreeLayout.prototype.moveTree = false;
    +
    +/**
    + * Variable: levelDistance
    + *
    + * Holds the levelDistance. Default is 10.
    + */
    +mxCompactTreeLayout.prototype.levelDistance = 10;
    +
    +/**
    + * Variable: nodeDistance
    + *
    + * Holds the nodeDistance. Default is 20.
    + */
    +mxCompactTreeLayout.prototype.nodeDistance = 20;
    +
    +/**
    + * Variable: resetEdges
    + * 
    + * Specifies if all edge points of traversed edges should be removed.
    + * Default is true.
    + */
    +mxCompactTreeLayout.prototype.resetEdges = true;
    +
    +/**
    + * Variable: prefHozEdgeSep
    + * 
    + * The preferred horizontal distance between edges exiting a vertex
    + */
    +mxCompactTreeLayout.prototype.prefHozEdgeSep = 5;
    +
    +/**
    + * Variable: prefVertEdgeOff
    + * 
    + * The preferred vertical offset between edges exiting a vertex
    + */
    +mxCompactTreeLayout.prototype.prefVertEdgeOff = 4;
    +
    +/**
    + * Variable: minEdgeJetty
    + * 
    + * The minimum distance for an edge jetty from a vertex
    + */
    +mxCompactTreeLayout.prototype.minEdgeJetty = 8;
    +
    +/**
    + * Variable: channelBuffer
    + * 
    + * The size of the vertical buffer in the center of inter-rank channels
    + * where edge control points should not be placed
    + */
    +mxCompactTreeLayout.prototype.channelBuffer = 4;
    +
    +/**
    + * Variable: edgeRouting
    + * 
    + * Whether or not to apply the internal tree edge routing
    + */
    +mxCompactTreeLayout.prototype.edgeRouting = true;
    +
    +/**
    + * Function: isVertexIgnored
    + * 
    + * Returns a boolean indicating if the given <mxCell> should be ignored as a
    + * vertex. This returns true if the cell has no connections.
    + * 
    + * Parameters:
    + * 
    + * vertex - <mxCell> whose ignored state should be returned.
    + */
    +mxCompactTreeLayout.prototype.isVertexIgnored = function(vertex)
    +{
    +	return mxGraphLayout.prototype.isVertexIgnored.apply(this, arguments) ||
    +		this.graph.getConnections(vertex).length == 0;
    +};
    +
    +/**
    + * Function: isHorizontal
    + * 
    + * Returns <horizontal>.
    + */
    +mxCompactTreeLayout.prototype.isHorizontal = function()
    +{
    +	return this.horizontal;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Implements <mxGraphLayout.execute>.
    + * 
    + * If the parent has any connected edges, then it is used as the root of
    + * the tree. Else, <mxGraph.findTreeRoots> will be used to find a suitable
    + * root node within the set of children of the given parent.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCell> whose children should be laid out.
    + * root - Optional <mxCell> that will be used as the root of the tree.
    + */
    +mxCompactTreeLayout.prototype.execute = function(parent, root)
    +{
    +	this.parent = parent;
    +	var model = this.graph.getModel();
    +	
    +	if (root == null)
    +	{
    +		// Takes the parent as the root if it has outgoing edges
    +		if (this.graph.getEdges(parent, model.getParent(parent),
    +			this.invert, !this.invert, false).length > 0)
    +		{
    +			root = parent;
    +		}
    +		
    +		// Tries to find a suitable root in the parent's
    +		// children
    +		else
    +		{
    +			var roots = this.graph.findTreeRoots(parent, true, this.invert);
    +			
    +			if (roots.length > 0)
    +			{
    +				for (var i = 0; i < roots.length; i++)
    +				{
    +					if (!this.isVertexIgnored(roots[i]) &&
    +						this.graph.getEdges(roots[i], null,
    +							this.invert, !this.invert, false).length > 0)
    +					{
    +						root = roots[i];
    +						break;
    +					}
    +				}
    +			}
    +		}
    +	}
    +	
    +	if (root != null)
    +	{
    +		if (this.resizeParent)
    +		{
    +			this.parentsChanged = new Object();
    +		}
    +		else
    +		{
    +			this.parentsChanged = null;
    +		}
    +
    +		model.beginUpdate();
    +		
    +		try
    +		{
    +			var node = this.dfs(root, parent);
    +			
    +			if (node != null)
    +			{
    +				this.layout(node);
    +				var x0 = this.graph.gridSize;
    +				var y0 = x0;
    +				
    +				if (!this.moveTree)
    +				{
    +					var g = this.getVertexBounds(root);
    +					
    +					if (g != null)
    +					{
    +						x0 = g.x;
    +						y0 = g.y;
    +					}
    +				}
    +				
    +				var bounds = null;
    +				
    +				if (this.isHorizontal())
    +				{
    +					bounds = this.horizontalLayout(node, x0, y0);
    +				}
    +				else
    +				{
    +					bounds = this.verticalLayout(node, null, x0, y0);
    +				}
    +
    +				if (bounds != null)
    +				{
    +					var dx = 0;
    +					var dy = 0;
    +
    +					if (bounds.x < 0)
    +					{
    +						dx = Math.abs(x0 - bounds.x);
    +					}
    +
    +					if (bounds.y < 0)
    +					{
    +						dy = Math.abs(y0 - bounds.y);	
    +					}
    +
    +					if (dx != 0 || dy != 0)
    +					{
    +						this.moveNode(node, dx, dy);
    +					}
    +					
    +					if (this.resizeParent)
    +					{
    +						this.adjustParents();
    +					}
    +
    +					if (this.edgeRouting)
    +					{
    +						// Iterate through all edges setting their positions
    +						this.localEdgeProcessing(node);
    +					}
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: moveNode
    + * 
    + * Moves the specified node and all of its children by the given amount.
    + */
    +mxCompactTreeLayout.prototype.moveNode = function(node, dx, dy)
    +{
    +	node.x += dx;
    +	node.y += dy;
    +	this.apply(node);
    +	
    +	var child = node.child;
    +	
    +	while (child != null)
    +	{
    +		this.moveNode(child, dx, dy);
    +		child = child.next;
    +	}
    +};
    +
    +/**
    + * Function: dfs
    + * 
    + * Does a depth first search starting at the specified cell.
    + * Makes sure the specified parent is never left by the
    + * algorithm.
    + */
    +mxCompactTreeLayout.prototype.dfs = function(cell, parent, visited)
    +{
    +	visited = (visited != null) ? visited : [];
    +	
    +	var id = mxCellPath.create(cell);
    +	var node = null;
    +	
    +	if (cell != null && visited[id] == null && !this.isVertexIgnored(cell))
    +	{
    +		visited[id] = cell;
    +		node = this.createNode(cell);
    +
    +		var model = this.graph.getModel();
    +		var prev = null;
    +		var out = this.graph.getEdges(cell, parent, this.invert, !this.invert, false, true);
    +		var view = this.graph.getView();
    +	
    +		for (var i = 0; i < out.length; i++)
    +		{
    +			var edge = out[i];
    +			
    +			if (!this.isEdgeIgnored(edge))
    +			{
    +				// Resets the points on the traversed edge
    +				if (this.resetEdges)
    +				{
    +					this.setEdgePoints(edge, null);
    +				}
    +				
    +				if (this.edgeRouting)
    +				{
    +					this.setEdgeStyleEnabled(edge, false);
    +					this.setEdgePoints(edge, null);
    +				}
    +				
    +				// Checks if terminal in same swimlane
    +				var state = view.getState(edge);
    +				var target = (state != null) ? state.getVisibleTerminal(this.invert) : view.getVisibleTerminal(edge, this.invert);
    +				var tmp = this.dfs(target, parent, visited);
    +				
    +				if (tmp != null && model.getGeometry(target) != null)
    +				{
    +					if (prev == null)
    +					{
    +						node.child = tmp;
    +					}
    +					else
    +					{
    +						prev.next = tmp;
    +					}
    +					
    +					prev = tmp;
    +				}
    +			}
    +		}
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: layout
    + * 
    + * Starts the actual compact tree layout algorithm
    + * at the given node.
    + */
    +mxCompactTreeLayout.prototype.layout = function(node)
    +{
    +	if (node != null)
    +	{
    +		var child = node.child;
    +		
    +		while (child != null)
    +		{
    +			this.layout(child);
    +			child = child.next;
    +		}
    +		
    +		if (node.child != null)
    +		{
    +			this.attachParent(node, this.join(node));
    +		}
    +		else
    +		{
    +			this.layoutLeaf(node);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: horizontalLayout
    + */
    +mxCompactTreeLayout.prototype.horizontalLayout = function(node, x0, y0, bounds)
    +{
    +	node.x += x0 + node.offsetX;
    +	node.y += y0 + node.offsetY;
    +	bounds = this.apply(node, bounds);
    +	var child = node.child;
    +	
    +	if (child != null)
    +	{
    +		bounds = this.horizontalLayout(child, node.x, node.y, bounds);
    +		var siblingOffset = node.y + child.offsetY;
    +		var s = child.next;
    +		
    +		while (s != null)
    +		{
    +			bounds = this.horizontalLayout(s, node.x + child.offsetX, siblingOffset, bounds);
    +			siblingOffset += s.offsetY;
    +			s = s.next;
    +		}
    +	}
    +	
    +	return bounds;
    +};
    +	
    +/**
    + * Function: verticalLayout
    + */
    +mxCompactTreeLayout.prototype.verticalLayout = function(node, parent, x0, y0, bounds)
    +{
    +	node.x += x0 + node.offsetY;
    +	node.y += y0 + node.offsetX;
    +	bounds = this.apply(node, bounds);
    +	var child = node.child;
    +	
    +	if (child != null)
    +	{
    +		bounds = this.verticalLayout(child, node, node.x, node.y, bounds);
    +		var siblingOffset = node.x + child.offsetY;
    +		var s = child.next;
    +		
    +		while (s != null)
    +		{
    +			bounds = this.verticalLayout(s, node, siblingOffset, node.y + child.offsetX, bounds);
    +			siblingOffset += s.offsetY;
    +			s = s.next;
    +		}
    +	}
    +	
    +	return bounds;
    +};
    +
    +/**
    + * Function: attachParent
    + */
    +mxCompactTreeLayout.prototype.attachParent = function(node, height)
    +{
    +	var x = this.nodeDistance + this.levelDistance;
    +	var y2 = (height - node.width) / 2 - this.nodeDistance;
    +	var y1 = y2 + node.width + 2 * this.nodeDistance - height;
    +	
    +	node.child.offsetX = x + node.height;
    +	node.child.offsetY = y1;
    +	
    +	node.contour.upperHead = this.createLine(node.height, 0,
    +		this.createLine(x, y1, node.contour.upperHead));
    +	node.contour.lowerHead = this.createLine(node.height, 0,
    +		this.createLine(x, y2, node.contour.lowerHead));
    +};
    +
    +/**
    + * Function: layoutLeaf
    + */
    +mxCompactTreeLayout.prototype.layoutLeaf = function(node)
    +{
    +	var dist = 2 * this.nodeDistance;
    +	
    +	node.contour.upperTail = this.createLine(
    +		node.height + dist, 0);
    +	node.contour.upperHead = node.contour.upperTail;
    +	node.contour.lowerTail = this.createLine(
    +		0, -node.width - dist);
    +	node.contour.lowerHead = this.createLine(
    +		node.height + dist, 0, node.contour.lowerTail);
    +};
    +
    +/**
    + * Function: join
    + */
    +mxCompactTreeLayout.prototype.join = function(node)
    +{
    +	var dist = 2 * this.nodeDistance;
    +	
    +	var child = node.child;
    +	node.contour = child.contour;
    +	var h = child.width + dist;
    +	var sum = h;
    +	child = child.next;
    +	
    +	while (child != null)
    +	{
    +		var d = this.merge(node.contour, child.contour);
    +		child.offsetY = d + h;
    +		child.offsetX = 0;
    +		h = child.width + dist;
    +		sum += d + h;
    +		child = child.next;
    +	}
    +	
    +	return sum;
    +};
    +
    +/**
    + * Function: merge
    + */
    +mxCompactTreeLayout.prototype.merge = function(p1, p2)
    +{
    +	var x = 0;
    +	var y = 0;
    +	var total = 0;
    +	
    +	var upper = p1.lowerHead;
    +	var lower = p2.upperHead;
    +	
    +	while (lower != null && upper != null)
    +	{
    +		var d = this.offset(x, y, lower.dx, lower.dy,
    +			upper.dx, upper.dy);
    +		y += d;
    +		total += d;
    +		
    +		if (x + lower.dx <= upper.dx)
    +		{
    +			x += lower.dx;
    +			y += lower.dy;
    +			lower = lower.next;
    +		}
    +		else
    +		{				
    +			x -= upper.dx;
    +			y -= upper.dy;
    +			upper = upper.next;
    +		}
    +	}
    +	
    +	if (lower != null)
    +	{
    +		var b = this.bridge(p1.upperTail, 0, 0, lower, x, y);
    +		p1.upperTail = (b.next != null) ? p2.upperTail : b;
    +		p1.lowerTail = p2.lowerTail;
    +	}
    +	else
    +	{
    +		var b = this.bridge(p2.lowerTail, x, y, upper, 0, 0);
    +		
    +		if (b.next == null)
    +		{
    +			p1.lowerTail = b;
    +		}
    +	}
    +	
    +	p1.lowerHead = p2.lowerHead;
    +	
    +	return total;
    +};
    +
    +/**
    + * Function: offset
    + */
    +mxCompactTreeLayout.prototype.offset = function(p1, p2, a1, a2, b1, b2)
    +{
    +	var d = 0;
    +	
    +	if (b1 <= p1 || p1 + a1 <= 0)
    +	{
    +		return 0;
    +	}
    +
    +	var t = b1 * a2 - a1 * b2;
    +	
    +	if (t > 0)
    +	{
    +		if (p1 < 0)
    +		{
    +			var s = p1 * a2;
    +			d = s / a1 - p2;
    +		}
    +		else if (p1 > 0)
    +		{
    +			var s = p1 * b2;
    +			d = s / b1 - p2;
    +		}
    +		else
    +		{
    +			d = -p2;
    +		}
    +	}
    +	else if (b1 < p1 + a1)
    +	{
    +		var s = (b1 - p1) * a2;
    +		d = b2 - (p2 + s / a1);
    +	}
    +	else if (b1 > p1 + a1)
    +	{
    +		var s = (a1 + p1) * b2;
    +		d = s / b1 - (p2 + a2);
    +	}
    +	else
    +	{
    +		d = b2 - (p2 + a2);
    +	}
    +
    +	if (d > 0)
    +	{
    +		return d;
    +	}
    +	else
    +	{
    +		return 0;
    +	}
    +};
    +
    +/**
    + * Function: bridge
    + */
    +mxCompactTreeLayout.prototype.bridge = function(line1, x1, y1, line2, x2, y2)
    +{
    +	var dx = x2 + line2.dx - x1;
    +	var dy = 0;
    +	var s = 0;
    +	
    +	if (line2.dx == 0)
    +	{
    +		dy = line2.dy;
    +	}
    +	else
    +	{
    +		s = dx * line2.dy;
    +		dy = s / line2.dx;
    +	}
    +	
    +	var r = this.createLine(dx, dy, line2.next);
    +	line1.next = this.createLine(0, y2 + line2.dy - dy - y1, r);
    +	
    +	return r;
    +};
    +
    +/**
    + * Function: createNode
    + */
    +mxCompactTreeLayout.prototype.createNode = function(cell)
    +{
    +	var node = new Object();
    +	node.cell = cell;
    +	node.x = 0;
    +	node.y = 0;
    +	node.width = 0;
    +	node.height = 0;
    +	
    +	var geo = this.getVertexBounds(cell);
    +	
    +	if (geo != null)
    +	{
    +		if (this.isHorizontal())
    +		{
    +			node.width = geo.height;
    +			node.height = geo.width;			
    +		}
    +		else
    +		{
    +			node.width = geo.width;
    +			node.height = geo.height;
    +		}
    +	}
    +	
    +	node.offsetX = 0;
    +	node.offsetY = 0;
    +	node.contour = new Object();
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: apply
    + */
    +mxCompactTreeLayout.prototype.apply = function(node, bounds)
    +{
    +	var model = this.graph.getModel();
    +	var cell = node.cell;
    +	var g = model.getGeometry(cell);
    +
    +	if (cell != null && g != null)
    +	{
    +		if (this.isVertexMovable(cell))
    +		{
    +			g = this.setVertexLocation(cell, node.x, node.y);
    +			
    +			if (this.resizeParent)
    +			{
    +				var parent = model.getParent(cell);
    +				var id = mxCellPath.create(parent);
    +				
    +				// Implements set semantic
    +				if (this.parentsChanged[id] == null)
    +				{
    +					this.parentsChanged[id] = parent;					
    +				}
    +			}
    +		}
    +		
    +		if (bounds == null)
    +		{
    +			bounds = new mxRectangle(g.x, g.y, g.width, g.height);
    +		}
    +		else
    +		{
    +			bounds = new mxRectangle(Math.min(bounds.x, g.x),
    +				Math.min(bounds.y, g.y),
    +				Math.max(bounds.x + bounds.width, g.x + g.width),
    +				Math.max(bounds.y + bounds.height, g.y + g.height));
    +		}
    +	}
    +	
    +	return bounds;
    +};
    +
    +/**
    + * Function: createLine
    + */
    +mxCompactTreeLayout.prototype.createLine = function(dx, dy, next)
    +{
    +	var line = new Object();
    +	line.dx = dx;
    +	line.dy = dy;
    +	line.next = next;
    +	
    +	return line;
    +};
    +
    +/**
    + * Function: adjustParents
    + */
    +mxCompactTreeLayout.prototype.adjustParents = function()
    +{
    +	var tmp = [];
    +	
    +	for (var id in this.parentsChanged)
    +	{
    +		tmp.push(this.parentsChanged[id]);
    +	}
    +	
    +	this.arrangeGroups(mxUtils.sortCells(tmp, true), this.groupPadding);
    +};
    +
    +/**
    + * Function: localEdgeProcessing
    + *
    + * Moves the specified node and all of its children by the given amount.
    + */
    +mxCompactTreeLayout.prototype.localEdgeProcessing = function(node)
    +{
    +	this.processNodeOutgoing(node);
    +	var child = node.child;
    +
    +	while (child != null)
    +	{
    +		this.localEdgeProcessing(child);
    +		child = child.next;
    +	}
    +};
    +
    +/**
    + * Function: localEdgeProcessing
    + *
    + * Separates the x position of edges as they connect to vertices
    + */
    +mxCompactTreeLayout.prototype.processNodeOutgoing = function(node)
    +{
    +	var child = node.child;
    +	var parentCell = node.cell;
    +
    +	var childCount = 0;
    +	var sortedCells = [];
    +
    +	while (child != null)
    +	{
    +		childCount++;
    +
    +		var sortingCriterion = child.x;
    +
    +		if (this.horizontal)
    +		{
    +			sortingCriterion = child.y;
    +		}
    +
    +		sortedCells.push(new WeightedCellSorter(child, sortingCriterion));
    +		child = child.next;
    +	}
    +
    +	sortedCells.sort(WeightedCellSorter.prototype.compare);
    +
    +	var availableWidth = node.width;
    +
    +	var requiredWidth = (childCount + 1) * this.prefHozEdgeSep;
    +
    +	// Add a buffer on the edges of the vertex if the edge count allows
    +	if (availableWidth > requiredWidth + (2 * this.prefHozEdgeSep))
    +	{
    +		availableWidth -= 2 * this.prefHozEdgeSep;
    +	}
    +
    +	var edgeSpacing = availableWidth / childCount;
    +
    +	var currentXOffset = edgeSpacing / 2.0;
    +
    +	if (availableWidth > requiredWidth + (2 * this.prefHozEdgeSep))
    +	{
    +		currentXOffset += this.prefHozEdgeSep;
    +	}
    +
    +	var currentYOffset = this.minEdgeJetty - this.prefVertEdgeOff;
    +	var maxYOffset = 0;
    +
    +	var parentBounds = this.getVertexBounds(parentCell);
    +	child = node.child;
    +
    +	for (var j = 0; j < sortedCells.length; j++)
    +	{
    +		var childCell = sortedCells[j].cell.cell;
    +		var childBounds = this.getVertexBounds(childCell);
    +
    +		var edges = this.graph.getEdgesBetween(parentCell,
    +				childCell, false);
    +		
    +		var newPoints = [];
    +		var x = 0;
    +		var y = 0;
    +
    +		for (var i = 0; i < edges.length; i++)
    +		{
    +			if (this.horizontal)
    +			{
    +				// Use opposite co-ords, calculation was done for 
    +				// 
    +				x = parentBounds.x + parentBounds.width;
    +				y = parentBounds.y + currentXOffset;
    +				newPoints.push(new mxPoint(x, y));
    +				x = parentBounds.x + parentBounds.width
    +						+ currentYOffset;
    +				newPoints.push(new mxPoint(x, y));
    +				y = childBounds.y + childBounds.height / 2.0;
    +				newPoints.push(new mxPoint(x, y));
    +				this.setEdgePoints(edges[i], newPoints);
    +			}
    +			else
    +			{
    +				x = parentBounds.x + currentXOffset;
    +				y = parentBounds.y + parentBounds.height;
    +				newPoints.push(new mxPoint(x, y));
    +				y = parentBounds.y + parentBounds.height
    +						+ currentYOffset;
    +				newPoints.push(new mxPoint(x, y));
    +				x = childBounds.x + childBounds.width / 2.0;
    +				newPoints.push(new mxPoint(x, y));
    +				this.setEdgePoints(edges[i], newPoints);
    +			}
    +		}
    +
    +		if (j < childCount / 2)
    +		{
    +			currentYOffset += this.prefVertEdgeOff;
    +		}
    +		else if (j > childCount / 2)
    +		{
    +			currentYOffset -= this.prefVertEdgeOff;
    +		}
    +		// Ignore the case if equals, this means the second of 2
    +		// jettys with the same y (even number of edges)
    +
    +		//								pos[k * 2] = currentX;
    +		currentXOffset += edgeSpacing;
    +		//								pos[k * 2 + 1] = currentYOffset;
    +
    +		maxYOffset = Math.max(maxYOffset, currentYOffset);
    +	}
    +};
    +
    +/**
    + * Class: WeightedCellSorter
    + * 
    + * A utility class used to track cells whilst sorting occurs on the weighted
    + * sum of their connected edges. Does not violate (x.compareTo(y)==0) ==
    + * (x.equals(y))
    + *
    + * Constructor: WeightedCellSorter
    + * 
    + * Constructs a new weighted cell sorted for the given cell and weight.
    + */
    +function WeightedCellSorter(cell, weightedValue)
    +{
    +	this.cell = cell;
    +	this.weightedValue = weightedValue;
    +};
    +
    +/**
    + * Variable: weightedValue
    + * 
    + * The weighted value of the cell stored.
    + */
    +WeightedCellSorter.prototype.weightedValue = 0;
    +
    +/**
    + * Variable: nudge
    + * 
    + * Whether or not to flip equal weight values.
    + */
    +WeightedCellSorter.prototype.nudge = false;
    +
    +/**
    + * Variable: visited
    + * 
    + * Whether or not this cell has been visited in the current assignment.
    + */
    +WeightedCellSorter.prototype.visited = false;
    +
    +/**
    + * Variable: rankIndex
    + * 
    + * The index this cell is in the model rank.
    + */
    +WeightedCellSorter.prototype.rankIndex = null;
    +
    +/**
    + * Variable: cell
    + * 
    + * The cell whose median value is being calculated.
    + */
    +WeightedCellSorter.prototype.cell = null;
    +
    +/**
    + * Function: compare
    + * 
    + * Compares two WeightedCellSorters.
    + */
    +WeightedCellSorter.prototype.compare = function(a, b)
    +{
    +	if (a != null && b != null)
    +	{
    +		if (b.weightedValue > a.weightedValue)
    +		{
    +			return 1;
    +		}
    +		else if (b.weightedValue < a.weightedValue)
    +		{
    +			return -1;
    +		}
    +		else
    +		{
    +			if (b.nudge)
    +			{
    +				return 1;
    +			}
    +			else
    +			{
    +				return -1;
    +			}
    +		}
    +	}
    +	else
    +	{
    +		return 0;
    +	}
    +};
    \ No newline at end of file
    diff --git a/javascript/src/js/layout/mxCompositeLayout.js b/javascript/src/js/layout/mxCompositeLayout.js
    new file mode 100644
    index 000000000..2ceb5f51d
    --- /dev/null
    +++ b/javascript/src/js/layout/mxCompositeLayout.js
    @@ -0,0 +1,101 @@
    +/**
    + * $Id: mxCompositeLayout.js,v 1.11 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCompositeLayout
    + * 
    + * Allows to compose multiple layouts into a single layout. The master layout
    + * is the layout that handles move operations if another layout than the first
    + * element in <layouts> should be used. The <master> layout is not executed as
    + * the code assumes that it is part of <layouts>.
    + * 
    + * Example:
    + * (code)
    + * var first = new mxFastOrganicLayout(graph);
    + * var second = new mxParallelEdgeLayout(graph);
    + * var layout = new mxCompositeLayout(graph, [first, second], first);
    + * layout.execute(graph.getDefaultParent());
    + * (end)
    + * 
    + * Constructor: mxCompositeLayout
    + *
    + * Constructs a new layout using the given layouts. The graph instance is
    + * required for creating the transaction that contains all layouts.
    + *
    + * Arguments:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + * layouts - Array of <mxGraphLayouts>.
    + * master - Optional layout that handles moves. If no layout is given then
    + * the first layout of the above array is used to handle moves.
    + */
    +function mxCompositeLayout(graph, layouts, master)
    +{
    +	mxGraphLayout.call(this, graph);
    +	this.layouts = layouts;
    +	this.master = master;
    +};
    +
    +/**
    + * Extends mxGraphLayout.
    + */
    +mxCompositeLayout.prototype = new mxGraphLayout();
    +mxCompositeLayout.prototype.constructor = mxCompositeLayout;
    +	
    +/**
    + * Variable: layouts
    + * 
    + * Holds the array of <mxGraphLayouts> that this layout contains.
    + */
    +mxCompositeLayout.prototype.layouts = null;
    +
    +/**
    + * Variable: layouts
    + * 
    + * Reference to the <mxGraphLayouts> that handles moves. If this is null
    + * then the first layout in <layouts> is used.
    + */
    +mxCompositeLayout.prototype.master = null;
    +
    +/**
    + * Function: moveCell
    + * 
    + * Implements <mxGraphLayout.moveCell> by calling move on <master> or the first
    + * layout in <layouts>.
    + */
    +mxCompositeLayout.prototype.moveCell = function(cell, x, y)
    +{
    +	if (this.master != null)
    +	{
    +		this.master.move.apply(this.master, arguments);
    +	}
    +	else
    +	{
    +		this.layouts[0].move.apply(this.layouts[0], arguments);
    +	}
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Implements <mxGraphLayout.execute> by executing all <layouts> in a
    + * single transaction.
    + */
    +mxCompositeLayout.prototype.execute = function(parent)
    +{
    +	var model = this.graph.getModel();
    +	
    +	model.beginUpdate();
    +	try
    +	{
    +		for (var i = 0; i < this.layouts.length; i++)
    +		{
    +			this.layouts[i].execute.apply(this.layouts[i], arguments);
    +		}
    +	}
    +	finally
    +	{
    +		model.endUpdate();
    +	}
    +};
    diff --git a/javascript/src/js/layout/mxEdgeLabelLayout.js b/javascript/src/js/layout/mxEdgeLabelLayout.js
    new file mode 100644
    index 000000000..2bfb3c2e3
    --- /dev/null
    +++ b/javascript/src/js/layout/mxEdgeLabelLayout.js
    @@ -0,0 +1,165 @@
    +/**
    + * $Id: mxEdgeLabelLayout.js,v 1.8 2010-01-04 11:18:25 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxEdgeLabelLayout
    + * 
    + * Extends <mxGraphLayout> to implement an edge label layout. This layout
    + * makes use of cell states, which means the graph must be validated in
    + * a graph view (so that the label bounds are available) before this layout
    + * can be executed.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var layout = new mxEdgeLabelLayout(graph);
    + * layout.execute(graph.getDefaultParent());
    + * (end)
    + * 
    + * Constructor: mxEdgeLabelLayout
    + *
    + * Constructs a new edge label layout.
    + *
    + * Arguments:
    + * 
    + * graph - <mxGraph> that contains the cells.
    + */
    +function mxEdgeLabelLayout(graph, radius)
    +{
    +	mxGraphLayout.call(this, graph);
    +};
    +
    +/**
    + * Extends mxGraphLayout.
    + */
    +mxEdgeLabelLayout.prototype = new mxGraphLayout();
    +mxEdgeLabelLayout.prototype.constructor = mxEdgeLabelLayout;
    +
    +/**
    + * Function: execute
    + * 
    + * Implements <mxGraphLayout.execute>.
    + */
    +mxEdgeLabelLayout.prototype.execute = function(parent)
    +{
    +	var view = this.graph.view;
    +	var model = this.graph.getModel();
    +	
    +	// Gets all vertices and edges inside the parent
    +	var edges = [];
    +	var vertices = [];
    +	var childCount = model.getChildCount(parent);
    +	
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		var cell = model.getChildAt(parent, i);
    +		var state = view.getState(cell);
    +		
    +		if (state != null)
    +		{
    +			if (!this.isVertexIgnored(cell))
    +			{
    +				vertices.push(state);
    +			}
    +			else if (!this.isEdgeIgnored(cell))
    +			{
    +				edges.push(state);
    +			}
    +		}
    +	}
    +	
    +	this.placeLabels(vertices, edges);
    +};
    +
    +/**
    + * Function: placeLabels
    + * 
    + * Places the labels of the given edges.
    + */
    +mxEdgeLabelLayout.prototype.placeLabels = function(v, e)
    +{
    +	var model = this.graph.getModel();
    +	
    +	// Moves the vertices to build a circle. Makes sure the
    +	// radius is large enough for the vertices to not
    +	// overlap
    +	model.beginUpdate();
    +	try
    +	{
    +		for (var i = 0; i < e.length; i++)
    +		{
    +			var edge = e[i];
    +			
    +			if (edge != null && edge.text != null &&
    +				edge.text.boundingBox != null)
    +			{
    +				for (var j = 0; j < v.length; j++)
    +				{
    +					var vertex = v[j];
    +					
    +					if (vertex != null)
    +					{
    +						this.avoid(edge, vertex);
    +					}
    +				}
    +			}
    +		}
    +	}
    +	finally
    +	{
    +		model.endUpdate();
    +	}
    +};
    +
    +/**
    + * Function: avoid
    + * 
    + * Places the labels of the given edges.
    + */
    +mxEdgeLabelLayout.prototype.avoid = function(edge, vertex)
    +{
    +	var model = this.graph.getModel();
    +	var labRect = edge.text.boundingBox;
    +	
    +	if (mxUtils.intersects(labRect, vertex))
    +	{
    +		var dy1 = -labRect.y - labRect.height + vertex.y;
    +		var dy2 = -labRect.y + vertex.y + vertex.height;
    +		
    +		var dy = (Math.abs(dy1) < Math.abs(dy2)) ? dy1 : dy2;
    +		
    +		var dx1 = -labRect.x - labRect.width + vertex.x;
    +		var dx2 = -labRect.x + vertex.x + vertex.width;
    +	
    +		var dx = (Math.abs(dx1) < Math.abs(dx2)) ? dx1 : dx2;
    +		
    +		if (Math.abs(dx) < Math.abs(dy))
    +		{
    +			dy = 0;
    +		}
    +		else
    +		{
    +			dx = 0;
    +		}
    +	
    +		var g = model.getGeometry(edge.cell);
    +		
    +		if (g != null)
    +		{
    +			g = g.clone();
    +			
    +			if (g.offset != null)
    +			{
    +				g.offset.x += dx;
    +				g.offset.y += dy;
    +			}
    +			else
    +			{
    +				g.offset = new mxPoint(dx, dy);
    +			}
    +			
    +			model.setGeometry(edge.cell, g);
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/layout/mxFastOrganicLayout.js b/javascript/src/js/layout/mxFastOrganicLayout.js
    new file mode 100644
    index 000000000..d7d6b5dd3
    --- /dev/null
    +++ b/javascript/src/js/layout/mxFastOrganicLayout.js
    @@ -0,0 +1,591 @@
    +/**
    + * $Id: mxFastOrganicLayout.js,v 1.37 2011-04-28 13:14:55 david Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxFastOrganicLayout
    + * 
    + * Extends <mxGraphLayout> to implement a fast organic layout algorithm.
    + * The vertices need to be connected for this layout to work, vertices
    + * with no connections are ignored.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var layout = new mxFastOrganicLayout(graph);
    + * layout.execute(graph.getDefaultParent());
    + * (end)
    + * 
    + * Constructor: mxCompactTreeLayout
    + * 
    + * Constructs a new fast organic layout for the specified graph.
    + */
    +function mxFastOrganicLayout(graph)
    +{
    +	mxGraphLayout.call(this, graph);
    +};
    +
    +/**
    + * Extends mxGraphLayout.
    + */
    +mxFastOrganicLayout.prototype = new mxGraphLayout();
    +mxFastOrganicLayout.prototype.constructor = mxFastOrganicLayout;
    +
    +/**
    + * Variable: useInputOrigin
    + * 
    + * Specifies if the top left corner of the input cells should be the origin
    + * of the layout result. Default is true.
    + */
    +mxFastOrganicLayout.prototype.useInputOrigin = true;
    +
    +/**
    + * Variable: resetEdges
    + * 
    + * Specifies if all edge points of traversed edges should be removed.
    + * Default is true.
    + */
    +mxFastOrganicLayout.prototype.resetEdges = true;
    +
    +/**
    + * Variable: disableEdgeStyle
    + * 
    + * Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
    + * modified by the result. Default is true.
    + */
    +mxFastOrganicLayout.prototype.disableEdgeStyle = true;
    +
    +/**
    + * Variable: forceConstant
    + * 
    + * The force constant by which the attractive forces are divided and the
    + * replusive forces are multiple by the square of. The value equates to the
    + * average radius there is of free space around each node. Default is 50.
    + */
    +mxFastOrganicLayout.prototype.forceConstant = 50;
    +
    +/**
    + * Variable: forceConstantSquared
    + * 
    + * Cache of <forceConstant>^2 for performance.
    + */
    +mxFastOrganicLayout.prototype.forceConstantSquared = 0;
    +
    +/**
    + * Variable: minDistanceLimit
    + * 
    + * Minimal distance limit. Default is 2. Prevents of
    + * dividing by zero.
    + */
    +mxFastOrganicLayout.prototype.minDistanceLimit = 2;
    +
    +/**
    + * Variable: minDistanceLimit
    + * 
    + * Minimal distance limit. Default is 2. Prevents of
    + * dividing by zero.
    + */
    +mxFastOrganicLayout.prototype.maxDistanceLimit = 500;
    +
    +/**
    + * Variable: minDistanceLimitSquared
    + * 
    + * Cached version of <minDistanceLimit> squared.
    + */
    +mxFastOrganicLayout.prototype.minDistanceLimitSquared = 4;
    +
    +/**
    + * Variable: initialTemp
    + * 
    + * Start value of temperature. Default is 200.
    + */
    +mxFastOrganicLayout.prototype.initialTemp = 200;
    +
    +/**
    + * Variable: temperature
    + * 
    + * Temperature to limit displacement at later stages of layout.
    + */
    +mxFastOrganicLayout.prototype.temperature = 0;
    +
    +/**
    + * Variable: maxIterations
    + * 
    + * Total number of iterations to run the layout though.
    + */
    +mxFastOrganicLayout.prototype.maxIterations = 0;
    +
    +/**
    + * Variable: iteration
    + * 
    + * Current iteration count.
    + */
    +mxFastOrganicLayout.prototype.iteration = 0;
    +
    +/**
    + * Variable: vertexArray
    + * 
    + * An array of all vertices to be laid out.
    + */
    +mxFastOrganicLayout.prototype.vertexArray;
    +
    +/**
    + * Variable: dispX
    + * 
    + * An array of locally stored X co-ordinate displacements for the vertices.
    + */
    +mxFastOrganicLayout.prototype.dispX;
    +
    +/**
    + * Variable: dispY
    + * 
    + * An array of locally stored Y co-ordinate displacements for the vertices.
    + */
    +mxFastOrganicLayout.prototype.dispY;
    +
    +/**
    + * Variable: cellLocation
    + * 
    + * An array of locally stored co-ordinate positions for the vertices.
    + */
    +mxFastOrganicLayout.prototype.cellLocation;
    +
    +/**
    + * Variable: radius
    + * 
    + * The approximate radius of each cell, nodes only.
    + */
    +mxFastOrganicLayout.prototype.radius;
    +
    +/**
    + * Variable: radiusSquared
    + * 
    + * The approximate radius squared of each cell, nodes only.
    + */
    +mxFastOrganicLayout.prototype.radiusSquared;
    +
    +/**
    + * Variable: isMoveable
    + * 
    + * Array of booleans representing the movable states of the vertices.
    + */
    +mxFastOrganicLayout.prototype.isMoveable;
    +
    +/**
    + * Variable: neighbours
    + * 
    + * Local copy of cell neighbours.
    + */
    +mxFastOrganicLayout.prototype.neighbours;
    +
    +/**
    + * Variable: indices
    + * 
    + * Hashtable from cells to local indices.
    + */
    +mxFastOrganicLayout.prototype.indices;
    +
    +/**
    + * Variable: allowedToRun
    + * 
    + * Boolean flag that specifies if the layout is allowed to run. If this is
    + * set to false, then the layout exits in the following iteration.
    + */
    +mxFastOrganicLayout.prototype.allowedToRun = true;
    +
    +/**
    + * Function: isVertexIgnored
    + * 
    + * Returns a boolean indicating if the given <mxCell> should be ignored as a
    + * vertex. This returns true if the cell has no connections.
    + * 
    + * Parameters:
    + * 
    + * vertex - <mxCell> whose ignored state should be returned.
    + */
    +mxFastOrganicLayout.prototype.isVertexIgnored = function(vertex)
    +{
    +	return mxGraphLayout.prototype.isVertexIgnored.apply(this, arguments) ||
    +		this.graph.getConnections(vertex).length == 0;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Implements <mxGraphLayout.execute>. This operates on all children of the
    + * given parent where <isVertexIgnored> returns false.
    + */
    +mxFastOrganicLayout.prototype.execute = function(parent)
    +{
    +	var model = this.graph.getModel();
    +	this.vertexArray = [];
    +	var cells = this.graph.getChildVertices(parent);
    +	
    +	for (var i = 0; i < cells.length; i++)
    +	{
    +		if (!this.isVertexIgnored(cells[i]))
    +		{
    +			this.vertexArray.push(cells[i]);
    +		}
    +	}
    +	
    +	var initialBounds = (this.useInputOrigin) ?
    +			this.graph.view.getBounds(this.vertexArray) :
    +				null;
    +	var n = this.vertexArray.length;
    +
    +	this.indices = [];
    +	this.dispX = [];
    +	this.dispY = [];
    +	this.cellLocation = [];
    +	this.isMoveable = [];
    +	this.neighbours = [];
    +	this.radius = [];
    +	this.radiusSquared = [];
    +
    +	if (this.forceConstant < 0.001)
    +	{
    +		this.forceConstant = 0.001;
    +	}
    +
    +	this.forceConstantSquared = this.forceConstant * this.forceConstant;
    +
    +	// Create a map of vertices first. This is required for the array of
    +	// arrays called neighbours which holds, for each vertex, a list of
    +	// ints which represents the neighbours cells to that vertex as
    +	// the indices into vertexArray
    +	for (var i = 0; i < this.vertexArray.length; i++)
    +	{
    +		var vertex = this.vertexArray[i];
    +		this.cellLocation[i] = [];
    +		
    +		// Set up the mapping from array indices to cells
    +		var id = mxCellPath.create(vertex);
    +		this.indices[id] = i;
    +		var bounds = this.getVertexBounds(vertex);
    +
    +		// Set the X,Y value of the internal version of the cell to
    +		// the center point of the vertex for better positioning
    +		var width = bounds.width;
    +		var height = bounds.height;
    +		
    +		// Randomize (0, 0) locations
    +		var x = bounds.x;
    +		var y = bounds.y;
    +		
    +		this.cellLocation[i][0] = x + width / 2.0;
    +		this.cellLocation[i][1] = y + height / 2.0;
    +		this.radius[i] = Math.min(width, height);
    +		this.radiusSquared[i] = this.radius[i] * this.radius[i];
    +	}
    +
    +	// Moves cell location back to top-left from center locations used in
    +	// algorithm, resetting the edge points is part of the transaction
    +	model.beginUpdate();
    +	try
    +	{
    +		for (var i = 0; i < n; i++)
    +		{
    +			this.dispX[i] = 0;
    +			this.dispY[i] = 0;
    +			this.isMoveable[i] = this.isVertexMovable(this.vertexArray[i]);
    +
    +			// Get lists of neighbours to all vertices, translate the cells
    +			// obtained in indices into vertexArray and store as an array
    +			// against the orginial cell index
    +			var edges = this.graph.getConnections(this.vertexArray[i], parent);
    +			var cells = this.graph.getOpposites(edges, this.vertexArray[i]);
    +			this.neighbours[i] = [];
    +
    +			for (var j = 0; j < cells.length; j++)
    +			{
    +				// Resets the points on the traversed edge
    +				if (this.resetEdges)
    +				{
    +					this.graph.resetEdge(edges[j]);
    +				}
    +
    +			    if (this.disableEdgeStyle)
    +			    {
    +			    	this.setEdgeStyleEnabled(edges[j], false);
    +			    }
    +
    +				// Looks the cell up in the indices dictionary
    +				var id = mxCellPath.create(cells[j]);
    +				var index = this.indices[id];
    +
    +				// Check the connected cell in part of the vertex list to be
    +				// acted on by this layout
    +				if (index != null)
    +				{
    +					this.neighbours[i][j] = index;
    +				}
    +
    +				// Else if index of the other cell doesn't correspond to
    +				// any cell listed to be acted upon in this layout. Set
    +				// the index to the value of this vertex (a dummy self-loop)
    +				// so the attraction force of the edge is not calculated
    +				else
    +				{
    +					this.neighbours[i][j] = i;
    +				}
    +			}
    +		}
    +		this.temperature = this.initialTemp;
    +
    +		// If max number of iterations has not been set, guess it
    +		if (this.maxIterations == 0)
    +		{
    +			this.maxIterations = 20 * Math.sqrt(n);
    +		}
    +		
    +		// Main iteration loop
    +		for (this.iteration = 0; this.iteration < this.maxIterations; this.iteration++)
    +		{
    +			if (!this.allowedToRun)
    +			{
    +				return;
    +			}
    +			
    +			// Calculate repulsive forces on all vertices
    +			this.calcRepulsion();
    +
    +			// Calculate attractive forces through edges
    +			this.calcAttraction();
    +
    +			this.calcPositions();
    +			this.reduceTemperature();
    +		}
    +
    +		var minx = null;
    +		var miny = null;
    +		
    +		for (var i = 0; i < this.vertexArray.length; i++)
    +		{
    +			var vertex = this.vertexArray[i];
    +			
    +			if (this.isVertexMovable(vertex))
    +			{
    +				var bounds = this.getVertexBounds(vertex);
    +				
    +				if (bounds != null)
    +				{
    +					this.cellLocation[i][0] -= bounds.width / 2.0;
    +					this.cellLocation[i][1] -= bounds.height / 2.0;
    +					
    +					var x = this.graph.snap(this.cellLocation[i][0]);
    +					var y = this.graph.snap(this.cellLocation[i][1]);
    +					
    +					this.setVertexLocation(vertex, x, y);
    +					
    +					if (minx == null)
    +					{
    +						minx = x;
    +					}
    +					else
    +					{
    +						minx = Math.min(minx, x);
    +					}
    +					
    +					if (miny == null)
    +					{
    +						miny = y;
    +					}
    +					else
    +					{
    +						miny = Math.min(miny, y);
    +					}
    +				}
    +			}
    +		}
    +		
    +		// Modifies the cloned geometries in-place. Not needed
    +		// to clone the geometries again as we're in the same
    +		// undoable change.
    +		var dx = -(minx || 0) + 1;
    +		var dy = -(miny || 0) + 1;
    +		
    +		if (initialBounds != null)
    +		{
    +			dx += initialBounds.x;
    +			dy += initialBounds.y;
    +		}
    +		
    +		this.graph.moveCells(this.vertexArray, dx, dy);
    +	}
    +	finally
    +	{
    +		model.endUpdate();
    +	}
    +};
    +
    +/**
    + * Function: calcPositions
    + * 
    + * Takes the displacements calculated for each cell and applies them to the
    + * local cache of cell positions. Limits the displacement to the current
    + * temperature.
    + */
    +mxFastOrganicLayout.prototype.calcPositions = function()
    +{
    +	for (var index = 0; index < this.vertexArray.length; index++)
    +	{
    +		if (this.isMoveable[index])
    +		{
    +			// Get the distance of displacement for this node for this
    +			// iteration
    +			var deltaLength = Math.sqrt(this.dispX[index] * this.dispX[index] +
    +				this.dispY[index] * this.dispY[index]);
    +
    +			if (deltaLength < 0.001)
    +			{
    +				deltaLength = 0.001;
    +			}
    +
    +			// Scale down by the current temperature if less than the
    +			// displacement distance
    +			var newXDisp = this.dispX[index] / deltaLength
    +				* Math.min(deltaLength, this.temperature);
    +
    +			var newYDisp = this.dispY[index] / deltaLength
    +				* Math.min(deltaLength, this.temperature);
    +
    +			// reset displacements
    +			this.dispX[index] = 0;
    +			this.dispY[index] = 0;
    +
    +			// Update the cached cell locations
    +			this.cellLocation[index][0] += newXDisp;
    +			this.cellLocation[index][1] += newYDisp;
    +		}
    +	}
    +};
    +
    +/**
    + * Function: calcAttraction
    + * 
    + * Calculates the attractive forces between all laid out nodes linked by
    + * edges
    + */
    +mxFastOrganicLayout.prototype.calcAttraction = function()
    +{
    +	// Check the neighbours of each vertex and calculate the attractive
    +	// force of the edge connecting them
    +	for (var i = 0; i < this.vertexArray.length; i++)
    +	{
    +		for (var k = 0; k < this.neighbours[i].length; k++)
    +		{
    +			// Get the index of the othe cell in the vertex array
    +			var j = this.neighbours[i][k];
    +			
    +			// Do not proceed self-loops
    +			if (i != j &&
    +				this.isMoveable[i] &&
    +				this.isMoveable[j])
    +			{
    +				var xDelta = this.cellLocation[i][0] - this.cellLocation[j][0];
    +				var yDelta = this.cellLocation[i][1] - this.cellLocation[j][1];
    +
    +				// The distance between the nodes
    +				var deltaLengthSquared = xDelta * xDelta + yDelta
    +						* yDelta - this.radiusSquared[i] - this.radiusSquared[j];
    +
    +				if (deltaLengthSquared < this.minDistanceLimitSquared)
    +				{
    +					deltaLengthSquared = this.minDistanceLimitSquared;
    +				}
    +				
    +				var deltaLength = Math.sqrt(deltaLengthSquared);
    +				var force = (deltaLengthSquared) / this.forceConstant;
    +
    +				var displacementX = (xDelta / deltaLength) * force;
    +				var displacementY = (yDelta / deltaLength) * force;
    +				
    +				this.dispX[i] -= displacementX;
    +				this.dispY[i] -= displacementY;
    +				
    +				this.dispX[j] += displacementX;
    +				this.dispY[j] += displacementY;
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: calcRepulsion
    + * 
    + * Calculates the repulsive forces between all laid out nodes
    + */
    +mxFastOrganicLayout.prototype.calcRepulsion = function()
    +{
    +	var vertexCount = this.vertexArray.length;
    +
    +	for (var i = 0; i < vertexCount; i++)
    +	{
    +		for (var j = i; j < vertexCount; j++)
    +		{
    +			// Exits if the layout is no longer allowed to run
    +			if (!this.allowedToRun)
    +			{
    +				return;
    +			}
    +
    +			if (j != i &&
    +				this.isMoveable[i] &&
    +				this.isMoveable[j])
    +			{
    +				var xDelta = this.cellLocation[i][0] - this.cellLocation[j][0];
    +				var yDelta = this.cellLocation[i][1] - this.cellLocation[j][1];
    +
    +				if (xDelta == 0)
    +				{
    +					xDelta = 0.01 + Math.random();
    +				}
    +				
    +				if (yDelta == 0)
    +				{
    +					yDelta = 0.01 + Math.random();
    +				}
    +				
    +				// Distance between nodes
    +				var deltaLength = Math.sqrt((xDelta * xDelta)
    +						+ (yDelta * yDelta));
    +				var deltaLengthWithRadius = deltaLength - this.radius[i]
    +						- this.radius[j];
    +
    +				if (deltaLengthWithRadius > this.maxDistanceLimit)
    +				{
    +					// Ignore vertices too far apart
    +					continue;
    +				}
    +
    +				if (deltaLengthWithRadius < this.minDistanceLimit)
    +				{
    +					deltaLengthWithRadius = this.minDistanceLimit;
    +				}
    +
    +				var force = this.forceConstantSquared / deltaLengthWithRadius;
    +
    +				var displacementX = (xDelta / deltaLength) * force;
    +				var displacementY = (yDelta / deltaLength) * force;
    +				
    +				this.dispX[i] += displacementX;
    +				this.dispY[i] += displacementY;
    +
    +				this.dispX[j] -= displacementX;
    +				this.dispY[j] -= displacementY;
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: reduceTemperature
    + * 
    + * Reduces the temperature of the layout from an initial setting in a linear
    + * fashion to zero.
    + */
    +mxFastOrganicLayout.prototype.reduceTemperature = function()
    +{
    +	this.temperature = this.initialTemp * (1.0 - this.iteration / this.maxIterations);
    +};
    diff --git a/javascript/src/js/layout/mxGraphLayout.js b/javascript/src/js/layout/mxGraphLayout.js
    new file mode 100644
    index 000000000..79a664682
    --- /dev/null
    +++ b/javascript/src/js/layout/mxGraphLayout.js
    @@ -0,0 +1,436 @@
    +/**
    + * $Id: mxGraphLayout.js,v 1.46 2012-04-21 06:13:02 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraphLayout
    + * 
    + * Base class for all layout algorithms in mxGraph. Main public functions are
    + * <move> for handling a moved cell within a layouted parent, and <execute> for
    + * running the layout on a given parent cell.
    + *
    + * Known Subclasses:
    + *
    + * <mxCircleLayout>, <mxCompactTreeLayout>, <mxCompositeLayout>,
    + * <mxFastOrganicLayout>, <mxParallelEdgeLayout>, <mxPartitionLayout>,
    + * <mxStackLayout>
    + * 
    + * Constructor: mxGraphLayout
    + *
    + * Constructs a new layout using the given layouts.
    + *
    + * Arguments:
    + * 
    + * graph - Enclosing 
    + */
    +function mxGraphLayout(graph)
    +{
    +	this.graph = graph;
    +};
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxGraphLayout.prototype.graph = null;
    +
    +/**
    + * Variable: useBoundingBox
    + *
    + * Boolean indicating if the bounding box of the label should be used if
    + * its available. Default is true.
    + */
    +mxGraphLayout.prototype.useBoundingBox = true;
    +
    +/**
    + * Variable: parent
    + *
    + * The parent cell of the layout, if any
    + */
    +mxGraphLayout.prototype.parent = null;
    +
    +/**
    + * Function: moveCell
    + * 
    + * Notified when a cell is being moved in a parent that has automatic
    + * layout to update the cell state (eg. index) so that the outcome of the
    + * layout will position the vertex as close to the point (x, y) as
    + * possible.
    + * 
    + * Empty implementation.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> which has been moved.
    + * x - X-coordinate of the new cell location.
    + * y - Y-coordinate of the new cell location.
    + */
    +mxGraphLayout.prototype.moveCell = function(cell, x, y) { };
    +
    +/**
    + * Function: execute
    + * 
    + * Executes the layout algorithm for the children of the given parent.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCell> whose children should be layed out.
    + */
    +mxGraphLayout.prototype.execute = function(parent) { };
    +
    +/**
    + * Function: getGraph
    + * 
    + * Returns the graph that this layout operates on.
    + */
    +mxGraphLayout.prototype.getGraph = function()
    +{
    +	return this.graph;
    +};
    +
    +/**
    + * Function: getConstraint
    + * 
    + * Returns the constraint for the given key and cell. The optional edge and
    + * source arguments are used to return inbound and outgoing routing-
    + * constraints for the given edge and vertex. This implementation always
    + * returns the value for the given key in the style of the given cell.
    + * 
    + * Parameters:
    + * 
    + * key - Key of the constraint to be returned.
    + * cell - <mxCell> whose constraint should be returned.
    + * edge - Optional <mxCell> that represents the connection whose constraint
    + * should be returned. Default is null.
    + * source - Optional boolean that specifies if the connection is incoming
    + * or outgoing. Default is null.
    + */
    +mxGraphLayout.prototype.getConstraint = function(key, cell, edge, source)
    +{
    +	var state = this.graph.view.getState(cell);
    +	var style = (state != null) ? state.style : this.graph.getCellStyle(cell);
    +	
    +	return (style != null) ? style[key] : null;
    +};
    +
    +/**
    + * Function: isVertexMovable
    + * 
    + * Returns a boolean indicating if the given <mxCell> is movable or
    + * bendable by the algorithm. This implementation returns true if the given
    + * cell is movable in the graph.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose movable state should be returned.
    + */
    +mxGraphLayout.prototype.isVertexMovable = function(cell)
    +{
    +	return this.graph.isCellMovable(cell);
    +};
    +
    +/**
    + * Function: isVertexIgnored
    + * 
    + * Returns a boolean indicating if the given <mxCell> should be ignored by
    + * the algorithm. This implementation returns false for all vertices.
    + * 
    + * Parameters:
    + * 
    + * vertex - <mxCell> whose ignored state should be returned.
    + */
    +mxGraphLayout.prototype.isVertexIgnored = function(vertex)
    +{
    +	return !this.graph.getModel().isVertex(vertex) ||
    +		!this.graph.isCellVisible(vertex);
    +};
    +
    +/**
    + * Function: isEdgeIgnored
    + * 
    + * Returns a boolean indicating if the given <mxCell> should be ignored by
    + * the algorithm. This implementation returns false for all vertices.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose ignored state should be returned.
    + */
    +mxGraphLayout.prototype.isEdgeIgnored = function(edge)
    +{
    +	var model = this.graph.getModel();
    +	
    +	return !model.isEdge(edge) ||
    +		!this.graph.isCellVisible(edge) ||
    +		model.getTerminal(edge, true) == null ||
    +		model.getTerminal(edge, false) == null;
    +};
    +
    +/**
    + * Function: setEdgeStyleEnabled
    + * 
    + * Disables or enables the edge style of the given edge.
    + */
    +mxGraphLayout.prototype.setEdgeStyleEnabled = function(edge, value)
    +{
    +	this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,
    +			(value) ? '0' : '1', [edge]);
    +};
    +
    +/**
    + * Function: setOrthogonalEdge
    + * 
    + * Disables or enables orthogonal end segments of the given edge.
    + */
    +mxGraphLayout.prototype.setOrthogonalEdge = function(edge, value)
    +{
    +	this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,
    +			(value) ? '1' : '0', [edge]);
    +};
    +
    +/**
    + * Function: getParentOffset
    + * 
    + * Determines the offset of the given parent to the parent
    + * of the layout
    + */
    +mxGraphLayout.prototype.getParentOffset = function(parent)
    +{
    +	var result = new mxPoint();
    +
    +	if (parent != null && parent != this.parent)
    +	{
    +		var model = this.graph.getModel();
    +
    +		if (model.isAncestor(this.parent, parent))
    +		{
    +			var parentGeo = model.getGeometry(parent);
    +
    +			while (parent != this.parent)
    +			{
    +				result.x = result.x + parentGeo.x;
    +				result.y = result.y + parentGeo.y;
    +
    +				parent = model.getParent(parent);;
    +				parentGeo = model.getGeometry(parent);
    +			}
    +		}
    +	}
    +
    +	return result;
    +};
    +
    +/**
    + * Function: setEdgePoints
    + * 
    + * Replaces the array of mxPoints in the geometry of the given edge
    + * with the given array of mxPoints.
    + */
    +mxGraphLayout.prototype.setEdgePoints = function(edge, points)
    +{
    +	if (edge != null)
    +	{
    +		var model = this.graph.model;
    +		var geometry = model.getGeometry(edge);
    +
    +		if (geometry == null)
    +		{
    +			geometry = new mxGeometry();
    +			geometry.setRelative(true);
    +		}
    +		else
    +		{
    +			geometry = geometry.clone();
    +		}
    +
    +		if (this.parent != null && points != null)
    +		{
    +			var parent = model.getParent(edge);
    +
    +			var parentOffset = this.getParentOffset(parent);
    +
    +			for (var i = 0; i < points.length; i++)
    +			{
    +				points[i].x = points[i].x - parentOffset.x;
    +				points[i].y = points[i].y - parentOffset.y;
    +			}
    +		}
    +
    +		geometry.points = points;
    +		model.setGeometry(edge, geometry);
    +	}
    +};
    +
    +/**
    + * Function: setVertexLocation
    + * 
    + * Sets the new position of the given cell taking into account the size of
    + * the bounding box if <useBoundingBox> is true. The change is only carried
    + * out if the new location is not equal to the existing location, otherwise
    + * the geometry is not replaced with an updated instance. The new or old
    + * bounds are returned (including overlapping labels).
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose geometry is to be set.
    + * x - Integer that defines the x-coordinate of the new location.
    + * y - Integer that defines the y-coordinate of the new location.
    + */
    +mxGraphLayout.prototype.setVertexLocation = function(cell, x, y)
    +{
    +	var model = this.graph.getModel();
    +	var geometry = model.getGeometry(cell);
    +	var result = null;
    +	
    +	if (geometry != null)
    +	{
    +		result = new mxRectangle(x, y, geometry.width, geometry.height);
    +		
    +		// Checks for oversize labels and shifts the result
    +		// TODO: Use mxUtils.getStringSize for label bounds
    +		if (this.useBoundingBox)
    +		{
    +			var state = this.graph.getView().getState(cell);
    +			
    +			if (state != null && state.text != null && state.text.boundingBox != null)
    +			{
    +				var scale = this.graph.getView().scale;
    +				var box = state.text.boundingBox;
    +				
    +				if (state.text.boundingBox.x < state.x)
    +				{
    +					x += (state.x - box.x) / scale;
    +					result.width = box.width;
    +				}
    +				
    +				if (state.text.boundingBox.y < state.y)
    +				{
    +					y += (state.y - box.y) / scale;
    +					result.height = box.height;
    +				}
    +			}
    +		}
    +
    +		if (this.parent != null)
    +		{
    +			var parent = model.getParent(cell);
    +
    +			if (parent != null && parent != this.parent)
    +			{
    +				var parentOffset = this.getParentOffset(parent);
    +
    +				x = x - parentOffset.x;
    +				y = y - parentOffset.y;
    +			}
    +		}
    +
    +		if (geometry.x != x || geometry.y != y)
    +		{
    +			geometry = geometry.clone();
    +			geometry.x = x;
    +			geometry.y = y;
    +			
    +			model.setGeometry(cell, geometry);
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getCellBounds
    + * 
    + * Returns an <mxRectangle> that defines the bounds of the given cell or
    + * the bounding box if <useBoundingBox> is true.
    + */
    +mxGraphLayout.prototype.getVertexBounds = function(cell)
    +{
    +	var geo = this.graph.getModel().getGeometry(cell);
    +
    +	// Checks for oversize label bounding box and corrects
    +	// the return value accordingly
    +	// TODO: Use mxUtils.getStringSize for label bounds
    +	if (this.useBoundingBox)
    +	{
    +		var state = this.graph.getView().getState(cell);
    +
    +		if (state != null && state.text != null && state.text.boundingBox != null)
    +		{
    +			var scale = this.graph.getView().scale;
    +			var tmp = state.text.boundingBox;
    +
    +			var dx0 = Math.max(state.x - tmp.x, 0) / scale;
    +			var dy0 = Math.max(state.y - tmp.y, 0) / scale;
    +			var dx1 = Math.max((tmp.x + tmp.width) - (state.x + state.width), 0) / scale;
    +  			var dy1 = Math.max((tmp.y + tmp.height) - (state.y + state.height), 0) / scale;
    +
    +			geo = new mxRectangle(geo.x - dx0, geo.y - dy0,
    +         							geo.width + dx0 + dx1, geo.height + dy0 + dy1);
    +		}
    +	}
    +
    +	if (this.parent != null)
    +	{
    +		var parent = this.graph.getModel().getParent(cell);
    +		geo = geo.clone();
    +
    +		if (parent != null && parent != this.parent)
    +		{
    +			var parentOffset = this.getParentOffset(parent);
    +			geo.x = geo.x + parentOffset.x;
    +			geo.y = geo.y + parentOffset.y;
    +		}
    +	}
    +
    +	return new mxRectangle(geo.x, geo.y, geo.width, geo.height);
    +};
    +
    +/**
    + * Function: getCellBounds
    + * 
    + * Updates the bounds of the given groups to include all children. Call
    + * this with the groups in parent to child order, top-most group first, eg.
    + * 
    + * arrangeGroups(graph, mxUtils.sortCells(Arrays.asList(
    + *   new Object[] { v1, v3 }), true).toArray(), 10);
    + */
    +mxGraphLayout.prototype.arrangeGroups = function(groups, border)
    +{
    +	this.graph.getModel().beginUpdate();
    +	try
    +	{
    +		for (var i = groups.length - 1; i >= 0; i--)
    +		{
    +			var group = groups[i];
    +			var children = this.graph.getChildVertices(group);
    +			var bounds = this.graph.getBoundingBoxFromGeometry(children);
    +			var geometry = this.graph.getCellGeometry(group);
    +			var left = 0;
    +			var top = 0;
    +
    +			// Adds the size of the title area for swimlanes
    +			if (this.graph.isSwimlane(group))
    +			{
    +				var size = this.graph.getStartSize(group);
    +				left = size.width;
    +				top = size.height;
    +			}
    +
    +			if (bounds != null && geometry != null)
    +			{
    +				geometry = geometry.clone();
    +				geometry.x = geometry.x + bounds.x - border - left;
    +				geometry.y = geometry.y + bounds.y - border - top;
    +				geometry.width = bounds.width + 2 * border + left;
    +				geometry.height = bounds.height + 2 * border + top;
    +				this.graph.getModel().setGeometry(group, geometry);
    +				this.graph.moveCells(children, border + left - bounds.x,
    +						border + top - bounds.y);
    +			}
    +		}
    +	}
    +	finally
    +	{
    +		this.graph.getModel().endUpdate();
    +	}
    +};
    diff --git a/javascript/src/js/layout/mxParallelEdgeLayout.js b/javascript/src/js/layout/mxParallelEdgeLayout.js
    new file mode 100644
    index 000000000..e1ad57c4f
    --- /dev/null
    +++ b/javascript/src/js/layout/mxParallelEdgeLayout.js
    @@ -0,0 +1,198 @@
    +/**
    + * $Id: mxParallelEdgeLayout.js,v 1.24 2012-03-27 15:03:34 david Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxParallelEdgeLayout
    + * 
    + * Extends <mxGraphLayout> for arranging parallel edges. This layout works
    + * on edges for all pairs of vertices where there is more than one edge
    + * connecting the latter.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var layout = new mxParallelEdgeLayout(graph);
    + * layout.execute(graph.getDefaultParent());
    + * (end)
    + * 
    + * Constructor: mxCompactTreeLayout
    + * 
    + * Constructs a new fast organic layout for the specified graph.
    + */
    +function mxParallelEdgeLayout(graph)
    +{
    +	mxGraphLayout.call(this, graph);
    +};
    +
    +/**
    + * Extends mxGraphLayout.
    + */
    +mxParallelEdgeLayout.prototype = new mxGraphLayout();
    +mxParallelEdgeLayout.prototype.constructor = mxParallelEdgeLayout;
    +
    +/**
    + * Variable: spacing
    + * 
    + * Defines the spacing between the parallels. Default is 20.
    + */
    +mxParallelEdgeLayout.prototype.spacing = 20;
    +
    +/**
    + * Function: execute
    + * 
    + * Implements <mxGraphLayout.execute>.
    + */
    +mxParallelEdgeLayout.prototype.execute = function(parent)
    +{
    +	var lookup = this.findParallels(parent);
    +	
    +	this.graph.model.beginUpdate();	
    +	try
    +	{
    +		for (var i in lookup)
    +		{
    +			var parallels = lookup[i];
    +
    +			if (parallels.length > 1)
    +			{
    +				this.layout(parallels);
    +			}
    +		}
    +	}
    +	finally
    +	{
    +		this.graph.model.endUpdate();
    +	}
    +};
    +
    +/**
    + * Function: findParallels
    + * 
    + * Finds the parallel edges in the given parent.
    + */
    +mxParallelEdgeLayout.prototype.findParallels = function(parent)
    +{
    +	var model = this.graph.getModel();
    +	var lookup = [];
    +	var childCount = model.getChildCount(parent);
    +	
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		var child = model.getChildAt(parent, i);
    +		
    +		if (!this.isEdgeIgnored(child))
    +		{
    +			var id = this.getEdgeId(child);
    +			
    +			if (id != null)
    +			{
    +				if (lookup[id] == null)
    +				{
    +					lookup[id] = [];
    +				}
    +				
    +				lookup[id].push(child);
    +			}
    +		}
    +	}
    +	
    +	return lookup;
    +};
    +
    +/**
    + * Function: getEdgeId
    + * 
    + * Returns a unique ID for the given edge. The id is independent of the
    + * edge direction and is built using the visible terminal of the given
    + * edge.
    + */
    +mxParallelEdgeLayout.prototype.getEdgeId = function(edge)
    +{
    +	var view = this.graph.getView();
    +	
    +	var state = view.getState(edge);
    +	
    +	var src = (state != null) ? state.getVisibleTerminal(true) : view.getVisibleTerminal(edge, true);
    +	var trg = (state != null) ? state.getVisibleTerminal(false) : view.getVisibleTerminal(edge, false);
    +
    +	if (src != null && trg != null)
    +	{
    +		src = mxCellPath.create(src);
    +		trg = mxCellPath.create(trg);
    +		
    +		return (src > trg) ? trg+'-'+src : src+'-'+trg;
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: layout
    + * 
    + * Lays out the parallel edges in the given array.
    + */
    +mxParallelEdgeLayout.prototype.layout = function(parallels)
    +{
    +	var edge = parallels[0];
    +	var model = this.graph.getModel();
    +	
    +	var src = model.getGeometry(model.getTerminal(edge, true));
    +	var trg = model.getGeometry(model.getTerminal(edge, false));
    +	
    +	// Routes multiple loops
    +	if (src == trg)
    +	{
    +		var x0 = src.x + src.width + this.spacing;
    +		var y0 = src.y + src.height / 2;
    +
    +		for (var i = 0; i < parallels.length; i++)
    +		{
    +			this.route(parallels[i], x0, y0);
    +			x0 += this.spacing;
    +		}
    +	}
    +	else if (src != null && trg != null)
    +	{
    +		// Routes parallel edges
    +		var scx = src.x + src.width / 2;
    +		var scy = src.y + src.height / 2;
    +		
    +		var tcx = trg.x + trg.width / 2;
    +		var tcy = trg.y + trg.height / 2;
    +		
    +		var dx = tcx - scx;
    +		var dy = tcy - scy;
    +
    +		var len = Math.sqrt(dx*dx+dy*dy);
    +		
    +		var x0 = scx + dx / 2;
    +		var y0 = scy + dy / 2;
    +		
    +		var nx = dy * this.spacing / len;
    +		var ny = dx * this.spacing / len;
    +		
    +		x0 += nx * (parallels.length - 1) / 2;
    +		y0 -= ny * (parallels.length - 1) / 2;
    +
    +		for (var i = 0; i < parallels.length; i++)
    +		{
    +			this.route(parallels[i], x0, y0);
    +			x0 -= nx;
    +			y0 += ny;
    +		}
    +	}
    +};
    +
    +/**
    + * Function: route
    + * 
    + * Routes the given edge via the given point.
    + */
    +mxParallelEdgeLayout.prototype.route = function(edge, x, y)
    +{
    +	if (this.graph.isCellMovable(edge))
    +	{
    +		this.setEdgePoints(edge, [new mxPoint(x, y)]);
    +	}
    +};
    diff --git a/javascript/src/js/layout/mxPartitionLayout.js b/javascript/src/js/layout/mxPartitionLayout.js
    new file mode 100644
    index 000000000..d3592f845
    --- /dev/null
    +++ b/javascript/src/js/layout/mxPartitionLayout.js
    @@ -0,0 +1,240 @@
    +/**
    + * $Id: mxPartitionLayout.js,v 1.25 2010-01-04 11:18:25 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxPartitionLayout
    + * 
    + * Extends <mxGraphLayout> for partitioning the parent cell vertically or
    + * horizontally by filling the complete area with the child cells. A horizontal
    + * layout partitions the height of the given parent whereas a a non-horizontal
    + * layout partitions the width. If the parent is a layer (that is, a child of
    + * the root node), then the current graph size is partitioned. The children do
    + * not need to be connected for this layout to work.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var layout = new mxPartitionLayout(graph, true, 10, 20);
    + * layout.execute(graph.getDefaultParent());
    + * (end)
    + * 
    + * Constructor: mxPartitionLayout
    + * 
    + * Constructs a new stack layout layout for the specified graph,
    + * spacing, orientation and offset.
    + */
    +function mxPartitionLayout(graph, horizontal, spacing, border)
    +{
    +	mxGraphLayout.call(this, graph);
    +	this.horizontal = (horizontal != null) ? horizontal : true;
    +	this.spacing = spacing || 0;
    +	this.border = border || 0;
    +};
    +
    +/**
    + * Extends mxGraphLayout.
    + */
    +mxPartitionLayout.prototype = new mxGraphLayout();
    +mxPartitionLayout.prototype.constructor = mxPartitionLayout;
    +
    +/**
    + * Variable: horizontal
    + * 
    + * Boolean indicating the direction in which the space is partitioned.
    + * Default is true.
    + */
    +mxPartitionLayout.prototype.horizontal = null;
    +
    +/**
    + * Variable: spacing
    + * 
    + * Integer that specifies the absolute spacing in pixels between the
    + * children. Default is 0.
    + */
    +mxPartitionLayout.prototype.spacing = null;
    +
    +/**
    + * Variable: border
    + * 
    + * Integer that specifies the absolute inset in pixels for the parent that
    + * contains the children. Default is 0.
    + */
    +mxPartitionLayout.prototype.border = null;
    +
    +/**
    + * Variable: resizeVertices
    + * 
    + * Boolean that specifies if vertices should be resized. Default is true.
    + */
    +mxPartitionLayout.prototype.resizeVertices = true;
    +
    +/**
    + * Function: isHorizontal
    + * 
    + * Returns <horizontal>.
    + */
    +mxPartitionLayout.prototype.isHorizontal = function()
    +{
    +	return this.horizontal;
    +};
    +
    +/**
    + * Function: moveCell
    + * 
    + * Implements <mxGraphLayout.moveCell>.
    + */
    +mxPartitionLayout.prototype.moveCell = function(cell, x, y)
    +{
    +	var model = this.graph.getModel();
    +	var parent = model.getParent(cell);
    +	
    +	if (cell != null &&
    +		parent != null)
    +	{
    +		var i = 0;
    +		var last = 0;
    +		var childCount = model.getChildCount(parent);
    +		
    +		// Finds index of the closest swimlane
    +		// TODO: Take into account the orientation
    +		for (i = 0; i < childCount; i++)
    +		{
    +			var child = model.getChildAt(parent, i);
    +			var bounds = this.getVertexBounds(child);
    +			
    +			if (bounds != null)
    +			{
    +				var tmp = bounds.x + bounds.width / 2;
    +				
    +				if (last < x && tmp > x)
    +				{
    +					break;
    +				}
    +				
    +				last = tmp;
    +			}
    +		}
    +		
    +		// Changes child order in parent
    +		var idx = parent.getIndex(cell);
    +		idx = Math.max(0, i - ((i > idx) ? 1 : 0));
    +		
    +		model.add(parent, cell, idx);
    +	}
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Implements <mxGraphLayout.execute>. All children where <isVertexIgnored>
    + * returns false and <isVertexMovable> returns true are modified.
    + */
    +mxPartitionLayout.prototype.execute = function(parent)
    +{
    +	var horizontal = this.isHorizontal();
    +	var model = this.graph.getModel();
    +	var pgeo = model.getGeometry(parent);
    +	
    +	// Handles special case where the parent is either a layer with no
    +	// geometry or the current root of the view in which case the size
    +	// of the graph's container will be used.
    +	if (this.graph.container != null &&
    +		((pgeo == null &&
    +		model.isLayer(parent)) ||
    +		parent == this.graph.getView().currentRoot))
    +	{
    +		var width = this.graph.container.offsetWidth - 1;
    +		var height = this.graph.container.offsetHeight - 1;
    +		pgeo = new mxRectangle(0, 0, width, height);
    +	}
    +
    +	if (pgeo != null)
    +	{
    +		var children = [];
    +		var childCount = model.getChildCount(parent);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var child = model.getChildAt(parent, i);
    +			
    +			if (!this.isVertexIgnored(child) &&
    +				this.isVertexMovable(child))
    +			{
    +				children.push(child);
    +			}
    +		}
    +		
    +		var n = children.length;
    +
    +		if (n > 0)
    +		{
    +			var x0 = this.border;
    +			var y0 = this.border;
    +			var other = (horizontal) ? pgeo.height : pgeo.width;
    +			other -= 2 * this.border;
    +
    +			var size = (this.graph.isSwimlane(parent)) ?
    +				this.graph.getStartSize(parent) :
    +				new mxRectangle();
    +
    +			other -= (horizontal) ? size.height : size.width;
    +			x0 = x0 + size.width;
    +			y0 = y0 + size.height;
    +
    +			var tmp = this.border + (n - 1) * this.spacing;
    +			var value = (horizontal) ?
    +				((pgeo.width - x0 - tmp) / n) :
    +				((pgeo.height - y0 - tmp) / n);
    +			
    +			// Avoids negative values, that is values where the sum of the
    +			// spacing plus the border is larger then the available space
    +			if (value > 0)
    +			{
    +				model.beginUpdate();
    +				try
    +				{
    +					for (var i = 0; i < n; i++)
    +					{
    +						var child = children[i];
    +						var geo = model.getGeometry(child);
    +					
    +						if (geo != null)
    +						{
    +							geo = geo.clone();
    +							geo.x = x0;
    +							geo.y = y0;
    +
    +							if (horizontal)
    +							{
    +								if (this.resizeVertices)
    +								{
    +									geo.width = value;
    +									geo.height = other;
    +								}
    +								
    +								x0 += value + this.spacing;
    +							}
    +							else
    +							{
    +								if (this.resizeVertices)
    +								{
    +									geo.height = value;
    +									geo.width = other;
    +								}
    +								
    +								y0 += value + this.spacing;
    +							}
    +
    +							model.setGeometry(child, geo);
    +						}
    +					}
    +				}
    +				finally
    +				{
    +					model.endUpdate();
    +				}
    +			}
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/layout/mxStackLayout.js b/javascript/src/js/layout/mxStackLayout.js
    new file mode 100644
    index 000000000..c8c2878f2
    --- /dev/null
    +++ b/javascript/src/js/layout/mxStackLayout.js
    @@ -0,0 +1,366 @@
    +/**
    + * $Id: mxStackLayout.js,v 1.46 2011-12-01 15:21:17 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxStackLayout
    + * 
    + * Extends <mxGraphLayout> to create a horizontal or vertical stack of the
    + * child vertices. The children do not need to be connected for this layout
    + * to work.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var layout = new mxStackLayout(graph, true);
    + * layout.execute(graph.getDefaultParent());
    + * (end)
    + * 
    + * Constructor: mxStackLayout
    + * 
    + * Constructs a new stack layout layout for the specified graph,
    + * spacing, orientation and offset.
    + */
    +function mxStackLayout(graph, horizontal, spacing, x0, y0, border)
    +{
    +	mxGraphLayout.call(this, graph);
    +	this.horizontal = (horizontal != null) ? horizontal : true;
    +	this.spacing = (spacing != null) ? spacing : 0;
    +	this.x0 = (x0 != null) ? x0 : 0;
    +	this.y0 = (y0 != null) ? y0 : 0;
    +	this.border = (border != null) ? border : 0;
    +};
    +
    +/**
    + * Extends mxGraphLayout.
    + */
    +mxStackLayout.prototype = new mxGraphLayout();
    +mxStackLayout.prototype.constructor = mxStackLayout;
    +
    +/**
    + * Variable: horizontal
    + *
    + * Specifies the orientation of the layout. Default is true.
    + */
    +mxStackLayout.prototype.horizontal = null;
    +
    +/**
    + * Variable: spacing
    + *
    + * Specifies the spacing between the cells. Default is 0.
    + */
    +mxStackLayout.prototype.spacing = null;
    +
    +/**
    + * Variable: x0
    + *
    + * Specifies the horizontal origin of the layout. Default is 0.
    + */
    +mxStackLayout.prototype.x0 = null;
    +
    +/**
    + * Variable: y0
    + *
    + * Specifies the vertical origin of the layout. Default is 0.
    + */
    +mxStackLayout.prototype.y0 = null;
    +
    +/**
    + * Variable: border
    + *
    + * Border to be added if fill is true. Default is 0.
    + */
    +mxStackLayout.prototype.border = 0;
    +
    +/**
    + * Variable: keepFirstLocation
    + * 
    + * Boolean indicating if the location of the first cell should be
    + * kept, that is, it will not be moved to x0 or y0.
    + */
    +mxStackLayout.prototype.keepFirstLocation = false;
    +
    +/**
    + * Variable: fill
    + * 
    + * Boolean indicating if dimension should be changed to fill out the parent
    + * cell. Default is false.
    + */
    +mxStackLayout.prototype.fill = false;
    +	
    +/**
    + * Variable: resizeParent
    + * 
    + * If the parent should be resized to match the width/height of the
    + * stack. Default is false.
    + */
    +mxStackLayout.prototype.resizeParent = false;
    +
    +/**
    + * Variable: resizeLast
    + * 
    + * If the last element should be resized to fill out the parent. Default is
    + * false. If <resizeParent> is true then this is ignored.
    + */
    +mxStackLayout.prototype.resizeLast = false;
    +
    +/**
    + * Variable: wrap
    + * 
    + * Value at which a new column or row should be created. Default is null.
    + */
    +mxStackLayout.prototype.wrap = null;
    +
    +/**
    + * Function: isHorizontal
    + * 
    + * Returns <horizontal>.
    + */
    +mxStackLayout.prototype.isHorizontal = function()
    +{
    +	return this.horizontal;
    +};
    +
    +/**
    + * Function: moveCell
    + * 
    + * Implements <mxGraphLayout.moveCell>.
    + */
    +mxStackLayout.prototype.moveCell = function(cell, x, y)
    +{
    +	var model = this.graph.getModel();
    +	var parent = model.getParent(cell);
    +	var horizontal = this.isHorizontal();
    +	
    +	if (cell != null && parent != null)
    +	{
    +		var i = 0;
    +		var last = 0;
    +		var childCount = model.getChildCount(parent);
    +		var value = (horizontal) ? x : y;
    +		var pstate = this.graph.getView().getState(parent);
    +
    +		if (pstate != null)
    +		{
    +			value -= (horizontal) ? pstate.x : pstate.y;
    +		}
    +		
    +		for (i = 0; i < childCount; i++)
    +		{
    +			var child = model.getChildAt(parent, i);
    +			
    +			if (child != cell)
    +			{
    +				var bounds = model.getGeometry(child);
    +				
    +				if (bounds != null)
    +				{
    +					var tmp = (horizontal) ?
    +						bounds.x + bounds.width / 2 :
    +						bounds.y + bounds.height / 2;
    +					
    +					if (last < value && tmp > value)
    +					{
    +						break;
    +					}
    +					
    +					last = tmp;
    +				}
    +			}
    +		}
    +
    +		// Changes child order in parent
    +		var idx = parent.getIndex(cell);
    +		idx = Math.max(0, i - ((i > idx) ? 1 : 0));
    +
    +		model.add(parent, cell, idx);
    +	}
    +};
    +
    +/**
    + * Function: getParentSize
    + * 
    + * Returns the size for the parent container or the size of the graph
    + * container if the parent is a layer or the root of the model.
    + */
    +mxStackLayout.prototype.getParentSize = function(parent)
    +{
    +	var model = this.graph.getModel();			
    +	var pgeo = model.getGeometry(parent);
    +	
    +	// Handles special case where the parent is either a layer with no
    +	// geometry or the current root of the view in which case the size
    +	// of the graph's container will be used.
    +	if (this.graph.container != null && ((pgeo == null &&
    +		model.isLayer(parent)) || parent == this.graph.getView().currentRoot))
    +	{
    +		var width = this.graph.container.offsetWidth - 1;
    +		var height = this.graph.container.offsetHeight - 1;
    +		pgeo = new mxRectangle(0, 0, width, height);
    +	}
    +	
    +	return pgeo;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Implements <mxGraphLayout.execute>.
    + * 
    + * Only children where <isVertexIgnored> returns false are taken into
    + * account.
    + */
    +mxStackLayout.prototype.execute = function(parent)
    +{
    +	if (parent != null)
    +	{
    +		var horizontal = this.isHorizontal();
    +		var model = this.graph.getModel();	
    +		var pgeo = this.getParentSize(parent);
    +					
    +		var fillValue = 0;
    +		
    +		if (pgeo != null)
    +		{
    +			fillValue = (horizontal) ? pgeo.height : pgeo.width;
    +		}
    +		
    +		fillValue -= 2 * this.spacing + 2 * this.border;
    +
    +		// Handles swimlane start size
    +		var size = (this.graph.isSwimlane(parent)) ?
    +				this.graph.getStartSize(parent) :
    +				new mxRectangle();
    +		fillValue -= (horizontal) ? size.height : size.width;
    +		var x0 = this.x0 + size.width + this.border;
    +		var y0 = this.y0 + size.height + this.border;
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			var tmp = 0;
    +			var last = null;
    +			var childCount = model.getChildCount(parent);
    +			
    +			for (var i = 0; i < childCount; i++)
    +			{
    +				var child = model.getChildAt(parent, i);
    +				
    +				if (!this.isVertexIgnored(child) &&
    +					this.isVertexMovable(child))
    +				{
    +					var geo = model.getGeometry(child);
    +					
    +					if (geo != null)
    +					{
    +						geo = geo.clone();
    +						
    +						if (this.wrap != null &&
    +							last != null)
    +						{
    +							if ((horizontal && last.x + last.width +
    +								geo.width + 2 * this.spacing > this.wrap) ||
    +								(!horizontal && last.y + last.height +
    +								geo.height + 2 * this.spacing > this.wrap))
    +							{
    +								last = null;
    +								
    +								if (horizontal)
    +								{
    +									y0 += tmp + this.spacing;
    +								}
    +								else
    +								{
    +									x0 += tmp + this.spacing;
    +								}
    +								
    +								tmp = 0;
    +							}	
    +						}
    +						
    +						tmp = Math.max(tmp, (horizontal) ? geo.height : geo.width);
    +						
    +						if (last != null)
    +						{
    +							if (horizontal)
    +							{
    +								geo.x = last.x + last.width + this.spacing;
    +							}
    +							else
    +							{
    +								geo.y = last.y + last.height + this.spacing;
    +							}
    +						}
    +						else if (!this.keepFirstLocation)
    +						{
    +							if (horizontal)
    +							{
    +								geo.x = x0;
    +							}
    +							else
    +							{
    +								geo.y = y0;
    +							}
    +						}
    +						
    +						if (horizontal)
    +						{
    +							geo.y = y0;
    +						}
    +						else
    +						{
    +							geo.x = x0;
    +						}
    +						
    +						if (this.fill && fillValue > 0)
    +						{
    +							if (horizontal)
    +							{
    +								geo.height = fillValue;
    +							}
    +							else
    +							{
    +								geo.width = fillValue;									
    +							}
    +						}
    +						
    +						model.setGeometry(child, geo);
    +						last = geo;
    +					}
    +				}
    +			}
    +			
    +			if (this.resizeParent && pgeo != null && last != null &&
    +				!this.graph.isCellCollapsed(parent))
    +			{
    +				pgeo = pgeo.clone();
    +				
    +				if (horizontal)
    +				{
    +					pgeo.width = last.x + last.width + this.spacing;
    +				}
    +				else
    +				{
    +					pgeo.height = last.y + last.height + this.spacing;
    +				}
    +				
    +				model.setGeometry(parent, pgeo);					
    +			}
    +			else if (this.resizeLast && pgeo != null && last != null)
    +			{
    +				if (horizontal)
    +				{
    +					last.width = pgeo.width - last.x - this.spacing;
    +				}
    +				else
    +				{
    +					last.height = pgeo.height - last.y - this.spacing;
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/model/mxCell.js b/javascript/src/js/model/mxCell.js
    new file mode 100644
    index 000000000..cb5eb9f9d
    --- /dev/null
    +++ b/javascript/src/js/model/mxCell.js
    @@ -0,0 +1,806 @@
    +/**
    + * $Id: mxCell.js,v 1.36 2011-06-17 13:45:08 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCell
    + *
    + * Cells are the elements of the graph model. They represent the state
    + * of the groups, vertices and edges in a graph.
    + * 
    + * Custom attributes:
    + * 
    + * For custom attributes we recommend using an XML node as the value of a cell.
    + * The following code can be used to create a cell with an XML node as the
    + * value:
    + * 
    + * (code)
    + * var doc = mxUtils.createXmlDocument();
    + * var node = doc.createElement('MyNode')
    + * node.setAttribute('label', 'MyLabel');
    + * node.setAttribute('attribute1', 'value1');
    + * graph.insertVertex(graph.getDefaultParent(), null, node, 40, 40, 80, 30);
    + * (end)
    + * 
    + * For the label to work, <mxGraph.convertValueToString> and
    + * <mxGraph.cellLabelChanged> should be overridden as follows:
    + * 
    + * (code)
    + * graph.convertValueToString = function(cell)
    + * {
    + *   if (mxUtils.isNode(cell.value))
    + *   {
    + *     return cell.getAttribute('label', '')
    + *   }
    + * };
    + * 
    + * var cellLabelChanged = graph.cellLabelChanged;
    + * graph.cellLabelChanged = function(cell, newValue, autoSize)
    + * {
    + *   if (mxUtils.isNode(cell.value))
    + *   {
    + *     // Clones the value for correct undo/redo
    + *     var elt = cell.value.cloneNode(true);
    + *     elt.setAttribute('label', newValue);
    + *     newValue = elt;
    + *   }
    + *   
    + *   cellLabelChanged.apply(this, arguments);
    + * };
    + * (end)
    + * 
    + * Callback: onInit
    + *
    + * Called from within the constructor.
    + * 
    + * Constructor: mxCell
    + *
    + * Constructs a new cell to be used in a graph model.
    + * This method invokes <onInit> upon completion.
    + * 
    + * Parameters:
    + * 
    + * value - Optional object that represents the cell value.
    + * geometry - Optional <mxGeometry> that specifies the geometry.
    + * style - Optional formatted string that defines the style.
    + */
    +function mxCell(value, geometry, style)
    +{
    +	this.value = value;
    +	this.setGeometry(geometry);
    +	this.setStyle(style);
    +	
    +	if (this.onInit != null)
    +	{
    +		this.onInit();
    +	}
    +};
    +
    +/**
    + * Variable: id
    + *
    + * Holds the Id. Default is null.
    + */
    +mxCell.prototype.id = null;
    +
    +/**
    + * Variable: value
    + *
    + * Holds the user object. Default is null.
    + */
    +mxCell.prototype.value = null;
    +
    +/**
    + * Variable: geometry
    + *
    + * Holds the <mxGeometry>. Default is null.
    + */
    +mxCell.prototype.geometry = null;
    +
    +/**
    + * Variable: style
    + *
    + * Holds the style as a string of the form [(stylename|key=value);]. Default is
    + * null.
    + */
    +mxCell.prototype.style = null;
    +
    +/**
    + * Variable: vertex
    + *
    + * Specifies whether the cell is a vertex. Default is false.
    + */
    +mxCell.prototype.vertex = false;
    +
    +/**
    + * Variable: edge
    + *
    + * Specifies whether the cell is an edge. Default is false.
    + */
    +mxCell.prototype.edge = false;
    +
    +/**
    + * Variable: connectable
    + *
    + * Specifies whether the cell is connectable. Default is true.
    + */
    +mxCell.prototype.connectable = true;
    +
    +/**
    + * Variable: visible
    + *
    + * Specifies whether the cell is visible. Default is true.
    + */
    +mxCell.prototype.visible = true;
    +
    +/**
    + * Variable: collapsed
    + *
    + * Specifies whether the cell is collapsed. Default is false.
    + */
    +mxCell.prototype.collapsed = false;
    +
    +/**
    + * Variable: parent
    + *
    + * Reference to the parent cell.
    + */
    +mxCell.prototype.parent = null;
    +
    +/**
    + * Variable: source
    + *
    + * Reference to the source terminal.
    + */
    +mxCell.prototype.source = null;
    +
    +/**
    + * Variable: target
    + *
    + * Reference to the target terminal.
    + */
    +mxCell.prototype.target = null;
    +
    +/**
    + * Variable: children
    + *
    + * Holds the child cells.
    + */
    +mxCell.prototype.children = null;
    +
    +/**
    + * Variable: edges
    + *
    + * Holds the edges.
    + */
    +mxCell.prototype.edges = null;
    +
    +/**
    + * Variable: mxTransient
    + *
    + * List of members that should not be cloned inside <clone>. This field is
    + * passed to <mxUtils.clone> and is not made persistent in <mxCellCodec>.
    + * This is not a convention for all classes, it is only used in this class
    + * to mark transient fields since transient modifiers are not supported by
    + * the language.
    + */
    +mxCell.prototype.mxTransient = ['id', 'value', 'parent', 'source',
    +                                'target', 'children', 'edges'];
    +
    +/**
    + * Function: getId
    + *
    + * Returns the Id of the cell as a string.
    + */
    +mxCell.prototype.getId = function()
    +{
    +	return this.id;
    +};
    +		
    +/**
    + * Function: setId
    + *
    + * Sets the Id of the cell to the given string.
    + */
    +mxCell.prototype.setId = function(id)
    +{
    +	this.id = id;
    +};
    +
    +/**
    + * Function: getValue
    + *
    + * Returns the user object of the cell. The user
    + * object is stored in <value>.
    + */
    +mxCell.prototype.getValue = function()
    +{
    +	return this.value;
    +};
    +		
    +/**
    + * Function: setValue
    + *
    + * Sets the user object of the cell. The user object
    + * is stored in <value>.
    + */
    +mxCell.prototype.setValue = function(value)
    +{
    +	this.value = value;
    +};
    +
    +/**
    + * Function: valueChanged
    + *
    + * Changes the user object after an in-place edit
    + * and returns the previous value. This implementation
    + * replaces the user object with the given value and
    + * returns the old user object.
    + */
    +mxCell.prototype.valueChanged = function(newValue)
    +{
    +	var previous = this.getValue();
    +	this.setValue(newValue);
    +	
    +	return previous;
    +};
    +
    +/**
    + * Function: getGeometry
    + *
    + * Returns the <mxGeometry> that describes the <geometry>.
    + */
    +mxCell.prototype.getGeometry = function()
    +{
    +	return this.geometry;
    +};
    +
    +/**
    + * Function: setGeometry
    + *
    + * Sets the <mxGeometry> to be used as the <geometry>.
    + */
    +mxCell.prototype.setGeometry = function(geometry)
    +{
    +	this.geometry = geometry;
    +};
    +
    +/**
    + * Function: getStyle
    + *
    + * Returns a string that describes the <style>.
    + */
    +mxCell.prototype.getStyle = function()
    +{
    +	return this.style;
    +};
    +
    +/**
    + * Function: setStyle
    + *
    + * Sets the string to be used as the <style>.
    + */
    +mxCell.prototype.setStyle = function(style)
    +{
    +	this.style = style;
    +};
    +
    +/**
    + * Function: isVertex
    + *
    + * Returns true if the cell is a vertex.
    + */
    +mxCell.prototype.isVertex = function()
    +{
    +	return this.vertex;
    +};
    +
    +/**
    + * Function: setVertex
    + *
    + * Specifies if the cell is a vertex. This should only be assigned at
    + * construction of the cell and not be changed during its lifecycle.
    + * 
    + * Parameters:
    + * 
    + * vertex - Boolean that specifies if the cell is a vertex.
    + */
    +mxCell.prototype.setVertex = function(vertex)
    +{
    +	this.vertex = vertex;
    +};
    +
    +/**
    + * Function: isEdge
    + *
    + * Returns true if the cell is an edge.
    + */
    +mxCell.prototype.isEdge = function()
    +{
    +	return this.edge;
    +};
    +	
    +/**
    + * Function: setEdge
    + * 
    + * Specifies if the cell is an edge. This should only be assigned at
    + * construction of the cell and not be changed during its lifecycle.
    + * 
    + * Parameters:
    + * 
    + * edge - Boolean that specifies if the cell is an edge.
    + */
    +mxCell.prototype.setEdge = function(edge)
    +{
    +	this.edge = edge;
    +};
    +
    +/**
    + * Function: isConnectable
    + *
    + * Returns true if the cell is connectable.
    + */
    +mxCell.prototype.isConnectable = function()
    +{
    +	return this.connectable;
    +};
    +
    +/**
    + * Function: setConnectable
    + *
    + * Sets the connectable state.
    + * 
    + * Parameters:
    + * 
    + * connectable - Boolean that specifies the new connectable state.
    + */
    +mxCell.prototype.setConnectable = function(connectable)
    +{
    +	this.connectable = connectable;
    +};
    +
    +/**
    + * Function: isVisible
    + *
    + * Returns true if the cell is visibile.
    + */
    +mxCell.prototype.isVisible = function()
    +{
    +	return this.visible;
    +};
    +
    +/**
    + * Function: setVisible
    + *
    + * Specifies if the cell is visible.
    + * 
    + * Parameters:
    + * 
    + * visible - Boolean that specifies the new visible state.
    + */
    +mxCell.prototype.setVisible = function(visible)
    +{
    +	this.visible = visible;
    +};
    +
    +/**
    + * Function: isCollapsed
    + *
    + * Returns true if the cell is collapsed.
    + */
    +mxCell.prototype.isCollapsed = function()
    +{
    +	return this.collapsed;
    +};
    +
    +/**
    + * Function: setCollapsed
    + *
    + * Sets the collapsed state.
    + * 
    + * Parameters:
    + * 
    + * collapsed - Boolean that specifies the new collapsed state.
    + */
    +mxCell.prototype.setCollapsed = function(collapsed)
    +{
    +	this.collapsed = collapsed;
    +};
    +
    +/**
    + * Function: getParent
    + *
    + * Returns the cell's parent.
    + */
    +mxCell.prototype.getParent = function()
    +{
    +	return this.parent;
    +};
    +
    +/**
    + * Function: setParent
    + *
    + * Sets the parent cell.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCell> that represents the new parent.
    + */
    +mxCell.prototype.setParent = function(parent)
    +{
    +	this.parent = parent;
    +};
    +
    +/**
    + * Function: getTerminal
    + *
    + * Returns the source or target terminal.
    + * 
    + * Parameters:
    + * 
    + * source - Boolean that specifies if the source terminal should be
    + * returned.
    + */
    +mxCell.prototype.getTerminal = function(source)
    +{
    +	return (source) ? this.source : this.target;
    +};
    +
    +/**
    + * Function: setTerminal
    + *
    + * Sets the source or target terminal and returns the new terminal.
    + * 
    + * Parameters:
    + * 
    + * terminal - <mxCell> that represents the new source or target terminal.
    + * isSource - Boolean that specifies if the source or target terminal
    + * should be set.
    + */
    +mxCell.prototype.setTerminal = function(terminal, isSource)
    +{
    +	if (isSource)
    +	{
    +		this.source = terminal;
    +	}
    +	else
    +	{
    +		this.target = terminal;
    +	}
    +	
    +	return terminal;
    +};
    +
    +/**
    + * Function: getChildCount
    + *
    + * Returns the number of child cells.
    + */
    +mxCell.prototype.getChildCount = function()
    +{
    +	return (this.children == null) ? 0 : this.children.length;
    +};
    +
    +/**
    + * Function: getIndex
    + *
    + * Returns the index of the specified child in the child array.
    + * 
    + * Parameters:
    + * 
    + * child - Child whose index should be returned.
    + */
    +mxCell.prototype.getIndex = function(child)
    +{
    +	return mxUtils.indexOf(this.children, child);
    +};
    +
    +/**
    + * Function: getChildAt
    + *
    + * Returns the child at the specified index.
    + * 
    + * Parameters:
    + * 
    + * index - Integer that specifies the child to be returned.
    + */
    +mxCell.prototype.getChildAt = function(index)
    +{
    +	return (this.children == null) ? null : this.children[index];
    +};
    +
    +/**
    + * Function: insert
    + *
    + * Inserts the specified child into the child array at the specified index
    + * and updates the parent reference of the child. If not childIndex is
    + * specified then the child is appended to the child array. Returns the
    + * inserted child.
    + * 
    + * Parameters:
    + * 
    + * child - <mxCell> to be inserted or appended to the child array.
    + * index - Optional integer that specifies the index at which the child
    + * should be inserted into the child array.
    + */
    +mxCell.prototype.insert = function(child, index)
    +{
    +	if (child != null)
    +	{
    +		if (index == null)
    +		{
    +			index = this.getChildCount();
    +			
    +			if (child.getParent() == this)
    +			{
    +				index--;
    +			}
    +		}
    +
    +		child.removeFromParent();
    +		child.setParent(this);
    +		
    +		if (this.children == null)
    +		{
    +			this.children = [];
    +			this.children.push(child);
    +		}
    +		else
    +		{
    +			this.children.splice(index, 0, child);
    +		}
    +	}
    +	
    +	return child;
    +};
    +
    +/**
    + * Function: remove
    + *
    + * Removes the child at the specified index from the child array and
    + * returns the child that was removed. Will remove the parent reference of
    + * the child.
    + * 
    + * Parameters:
    + * 
    + * index - Integer that specifies the index of the child to be
    + * removed.
    + */
    +mxCell.prototype.remove = function(index)
    +{
    +	var child = null;
    +	
    +	if (this.children != null && index >= 0)
    +	{
    +		child = this.getChildAt(index);
    +		
    +		if (child != null)
    +		{
    +			this.children.splice(index, 1);
    +			child.setParent(null);
    +		}
    +	}
    +	
    +	return child;
    +};
    +
    +/**
    + * Function: removeFromParent
    + *
    + * Removes the cell from its parent.
    + */
    +mxCell.prototype.removeFromParent = function()
    +{
    +	if (this.parent != null)
    +	{
    +		var index = this.parent.getIndex(this);
    +		this.parent.remove(index);
    +	}
    +};
    +
    +/**
    + * Function: getEdgeCount
    + *
    + * Returns the number of edges in the edge array.
    + */
    +mxCell.prototype.getEdgeCount = function()
    +{
    +	return (this.edges == null) ? 0 : this.edges.length;
    +};
    +
    +/**
    + * Function: getEdgeIndex
    + *
    + * Returns the index of the specified edge in <edges>.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> whose index in <edges> should be returned.
    + */
    +mxCell.prototype.getEdgeIndex = function(edge)
    +{
    +	return mxUtils.indexOf(this.edges, edge);
    +};
    +
    +/**
    + * Function: getEdgeAt
    + *
    + * Returns the edge at the specified index in <edges>.
    + * 
    + * Parameters:
    + * 
    + * index - Integer that specifies the index of the edge to be returned.
    + */
    +mxCell.prototype.getEdgeAt = function(index)
    +{
    +	return (this.edges == null) ? null : this.edges[index];
    +};
    +
    +/**
    + * Function: insertEdge
    + *
    + * Inserts the specified edge into the edge array and returns the edge.
    + * Will update the respective terminal reference of the edge.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> to be inserted into the edge array.
    + * isOutgoing - Boolean that specifies if the edge is outgoing.
    + */
    +mxCell.prototype.insertEdge = function(edge, isOutgoing)
    +{
    +	if (edge != null)
    +	{
    +		edge.removeFromTerminal(isOutgoing);
    +		edge.setTerminal(this, isOutgoing);
    +		
    +		if (this.edges == null ||
    +			edge.getTerminal(!isOutgoing) != this ||
    +			mxUtils.indexOf(this.edges, edge) < 0)
    +		{
    +			if (this.edges == null)
    +			{
    +				this.edges = [];
    +			}
    +			
    +			this.edges.push(edge);
    +		}
    +	}
    +	
    +	return edge;
    +};
    +
    +/**
    + * Function: removeEdge
    + *
    + * Removes the specified edge from the edge array and returns the edge.
    + * Will remove the respective terminal reference from the edge.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> to be removed from the edge array.
    + * isOutgoing - Boolean that specifies if the edge is outgoing.
    + */
    +mxCell.prototype.removeEdge = function(edge, isOutgoing)
    +{
    +	if (edge != null)
    +	{
    +		if (edge.getTerminal(!isOutgoing) != this &&
    +			this.edges != null)
    +		{
    +			var index = this.getEdgeIndex(edge);
    +			
    +			if (index >= 0)
    +			{
    +				this.edges.splice(index, 1);
    +			}
    +		}
    +		
    +		edge.setTerminal(null, isOutgoing);
    +	}
    +	
    +	return edge;
    +};
    +
    +/**
    + * Function: removeFromTerminal
    + *
    + * Removes the edge from its source or target terminal.
    + * 
    + * Parameters:
    + * 
    + * isSource - Boolean that specifies if the edge should be removed from its
    + * source or target terminal.
    + */
    +mxCell.prototype.removeFromTerminal = function(isSource)
    +{
    +	var terminal = this.getTerminal(isSource);
    +	
    +	if (terminal != null)
    +	{
    +		terminal.removeEdge(this, isSource);
    +	}
    +};
    +
    +/**
    + * Function: getAttribute
    + *
    + * Returns the specified attribute from the user object if it is an XML
    + * node.
    + * 
    + * Parameters:
    + * 
    + * name - Name of the attribute whose value should be returned.
    + * defaultValue - Optional default value to use if the attribute has no
    + * value.
    + */
    +mxCell.prototype.getAttribute = function(name, defaultValue)
    +{
    +	var userObject = this.getValue();
    +	
    +	var val = (userObject != null &&
    +		userObject.nodeType == mxConstants.NODETYPE_ELEMENT) ?
    +		userObject.getAttribute(name) : null;
    +		
    +	return val || defaultValue;
    +};
    +
    +/**
    + * Function: setAttribute
    + *
    + * Sets the specified attribute on the user object if it is an XML node.
    + * 
    + * Parameters:
    + * 
    + * name - Name of the attribute whose value should be set.
    + * value - New value of the attribute.
    + */
    +mxCell.prototype.setAttribute = function(name, value)
    +{
    +	var userObject = this.getValue();
    +	
    +	if (userObject != null &&
    +		userObject.nodeType == mxConstants.NODETYPE_ELEMENT)
    +	{
    +		userObject.setAttribute(name, value);
    +	}
    +};
    +
    +/**
    + * Function: clone
    + *
    + * Returns a clone of the cell. Uses <cloneValue> to clone
    + * the user object. All fields in <mxTransient> are ignored
    + * during the cloning.
    + */
    +mxCell.prototype.clone = function()
    +{
    +	var clone = mxUtils.clone(this, this.mxTransient);
    +	clone.setValue(this.cloneValue());
    +	
    +	return clone;
    +};
    +
    +/**
    + * Function: cloneValue
    + *
    + * Returns a clone of the cell's user object.
    + */
    +mxCell.prototype.cloneValue = function()
    +{
    +	var value = this.getValue();
    +	
    +	if (value != null)
    +	{
    +		if (typeof(value.clone) == 'function')
    +		{
    +			value = value.clone();
    +		}
    +		else if (!isNaN(value.nodeType))
    +		{
    +			value = value.cloneNode(true);
    +		}
    +	}
    +	
    +	return value;
    +};
    diff --git a/javascript/src/js/model/mxCellPath.js b/javascript/src/js/model/mxCellPath.js
    new file mode 100644
    index 000000000..71a379ec1
    --- /dev/null
    +++ b/javascript/src/js/model/mxCellPath.js
    @@ -0,0 +1,163 @@
    +/**
    + * $Id: mxCellPath.js,v 1.12 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxCellPath =
    +{
    +
    +	/**
    +	 * Class: mxCellPath
    +	 * 
    +	 * Implements a mechanism for temporary cell Ids.
    +	 * 
    +	 * Variable: PATH_SEPARATOR
    +	 * 
    +	 * Defines the separator between the path components. Default is ".".
    +	 */
    +	PATH_SEPARATOR: '.',
    +	
    +	/**
    +	 * Function: create
    +	 * 
    +	 * Creates the cell path for the given cell. The cell path is a
    +	 * concatenation of the indices of all ancestors on the (finite) path to
    +	 * the root, eg. "0.0.0.1".
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * cell - Cell whose path should be returned.
    +	 */
    +	create: function(cell)
    +	{
    +		var result = '';
    +		
    +		if (cell != null)
    +		{
    +			var parent = cell.getParent();
    +			
    +			while (parent != null)
    +			{
    +				var index = parent.getIndex(cell);
    +				result = index + mxCellPath.PATH_SEPARATOR + result;
    +				
    +				cell = parent;
    +				parent = cell.getParent();
    +			}
    +		}
    +		
    +		// Removes trailing separator
    +		var n = result.length;
    +		
    +		if (n > 1)
    +		{
    +			result = result.substring(0, n - 1);
    +		}
    +		
    +		return result;
    +	},
    +	
    +	/**
    +	 * Function: getParentPath
    +	 * 
    +	 * Returns the path for the parent of the cell represented by the given
    +	 * path. Returns null if the given path has no parent.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * path - Path whose parent path should be returned.
    +	 */
    +	getParentPath: function(path)
    +	{
    +		if (path != null)
    +		{
    +			var index = path.lastIndexOf(mxCellPath.PATH_SEPARATOR);
    +
    +			if (index >= 0)
    +			{
    +				return path.substring(0, index);
    +			}
    +			else if (path.length > 0)
    +			{
    +				return '';
    +			}
    +		}
    +
    +		return null;
    +	},
    +
    +	/**
    +	 * Function: resolve
    +	 * 
    +	 * Returns the cell for the specified cell path using the given root as the
    +	 * root of the path.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * root - Root cell of the path to be resolved.
    +	 * path - String that defines the path.
    +	 */
    +	resolve: function(root, path)
    +	{
    +		var parent = root;
    +		
    +		if (path != null)
    +		{
    +			var tokens = path.split(mxCellPath.PATH_SEPARATOR);
    +			
    +			for (var i=0; i<tokens.length; i++)
    +			{
    +				parent = parent.getChildAt(parseInt(tokens[i]));
    +			}
    +		}
    +		
    +		return parent;
    +	},
    +	
    +	/**
    +	 * Function: compare
    +	 * 
    +	 * Compares the given cell paths and returns -1 if p1 is smaller, 0 if
    +	 * p1 is equal and 1 if p1 is greater than p2.
    +	 */
    +	compare: function(p1, p2)
    +	{
    +		var min = Math.min(p1.length, p2.length);
    +		var comp = 0;
    +		
    +		for (var i = 0; i < min; i++)
    +		{
    +			if (p1[i] != p2[i])
    +			{
    +				if (p1[i].length == 0 ||
    +					p2[i].length == 0)
    +				{
    +					comp = (p1[i] == p2[i]) ? 0 : ((p1[i] > p2[i]) ? 1 : -1);
    +				}
    +				else
    +				{
    +					var t1 = parseInt(p1[i]);
    +					var t2 = parseInt(p2[i]);
    +					
    +					comp = (t1 == t2) ? 0 : ((t1 > t2) ? 1 : -1);
    +				}
    +				
    +				break;
    +			}
    +		}
    +		
    +		// Compares path length if both paths are equal to this point
    +		if (comp == 0)
    +		{
    +			var t1 = p1.length;
    +			var t2 = p2.length;
    +			
    +			if (t1 != t2)
    +			{
    +				comp = (t1 > t2) ? 1 : -1;
    +			}
    +		}
    +		
    +		return comp;
    +	}
    +
    +};
    diff --git a/javascript/src/js/model/mxGeometry.js b/javascript/src/js/model/mxGeometry.js
    new file mode 100644
    index 000000000..51a7d3b91
    --- /dev/null
    +++ b/javascript/src/js/model/mxGeometry.js
    @@ -0,0 +1,277 @@
    +/**
    + * $Id: mxGeometry.js,v 1.26 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGeometry
    + * 
    + * Extends <mxRectangle> to represent the geometry of a cell.
    + * 
    + * For vertices, the geometry consists of the x- and y-location, and the width
    + * and height. For edges, the geometry consists of the optional terminal- and
    + * control points. The terminal points are only required if an edge is
    + * unconnected, and are stored in the sourcePoint> and <targetPoint>
    + * variables, respectively.
    + * 
    + * Example:
    + * 
    + * If an edge is unconnected, that is, it has no source or target terminal,
    + * then a geometry with terminal points for a new edge can be defined as
    + * follows.
    + * 
    + * (code)
    + * geometry.setTerminalPoint(new mxPoint(x1, y1), true);
    + * geometry.points = [new mxPoint(x2, y2)];
    + * geometry.setTerminalPoint(new mxPoint(x3, y3), false);
    + * (end)
    + * 
    + * Control points are used regardless of the connected state of an edge and may
    + * be ignored or interpreted differently depending on the edge's <mxEdgeStyle>.
    + * 
    + * To disable automatic reset of control points after a cell has been moved or
    + * resized, the the <mxGraph.resizeEdgesOnMove> and
    + * <mxGraph.resetEdgesOnResize> may be used.
    + *
    + * Edge Labels:
    + * 
    + * Using the x- and y-coordinates of a cell's geometry, it is possible to
    + * position the label on edges on a specific location on the actual edge shape
    + * as it appears on the screen. The x-coordinate of an edge's geometry is used
    + * to describe the distance from the center of the edge from -1 to 1 with 0
    + * being the center of the edge and the default value. The y-coordinate of an
    + * edge's geometry is used to describe the absolute, orthogonal distance in
    + * pixels from that point. In addition, the <mxGeometry.offset> is used as an
    + * absolute offset vector from the resulting point.
    + * 
    + * This coordinate system is applied if <relative> is true, otherwise the
    + * offset defines the absolute vector from the edge's center point to the
    + * label.
    + * 
    + * Ports:
    + * 
    + * The term "port" refers to a relatively positioned, connectable child cell,
    + * which is used to specify the connection between the parent and another cell
    + * in the graph. Ports are typically modeled as vertices with relative
    + * geometries.
    + * 
    + * Offsets:
    + * 
    + * The <offset> field is interpreted in 3 different ways, depending on the cell
    + * and the geometry. For edges, the offset defines the absolute offset for the
    + * edge label. For relative geometries, the offset defines the absolute offset
    + * for the origin (top, left corner) of the vertex, otherwise the offset
    + * defines the absolute offset for the label inside the vertex or group.
    + * 
    + * Constructor: mxGeometry
    + *
    + * Constructs a new object to describe the size and location of a vertex or
    + * the control points of an edge.
    + */
    +function mxGeometry(x, y, width, height)
    +{
    +	mxRectangle.call(this, x, y, width, height);
    +};
    +
    +/**
    + * Extends mxRectangle.
    + */
    +mxGeometry.prototype = new mxRectangle();
    +mxGeometry.prototype.constructor = mxGeometry;
    +
    +/**
    + * Variable: TRANSLATE_CONTROL_POINTS
    + * 
    + * Global switch to translate the points in translate. Default is true.
    + */
    +mxGeometry.prototype.TRANSLATE_CONTROL_POINTS = true;
    +
    +/**
    + * Variable: alternateBounds
    + *
    + * Stores alternate values for x, y, width and height in a rectangle. See
    + * <swap> to exchange the values. Default is null.
    + */
    +mxGeometry.prototype.alternateBounds = null;
    +
    +/**
    + * Variable: sourcePoint
    + *
    + * Defines the source <mxPoint> of the edge. This is used if the
    + * corresponding edge does not have a source vertex. Otherwise it is
    + * ignored. Default is  null.
    + */
    +mxGeometry.prototype.sourcePoint = null;
    +
    +/**
    + * Variable: targetPoint
    + *
    + * Defines the target <mxPoint> of the edge. This is used if the
    + * corresponding edge does not have a target vertex. Otherwise it is
    + * ignored. Default is null.
    + */
    +mxGeometry.prototype.targetPoint = null;
    +
    +/**
    + * Variable: points
    + *
    + * Array of <mxPoints> which specifies the control points along the edge.
    + * These points are the intermediate points on the edge, for the endpoints
    + * use <targetPoint> and <sourcePoint> or set the terminals of the edge to
    + * a non-null value. Default is null.
    + */
    +mxGeometry.prototype.points = null;
    +
    +/**
    + * Variable: offset
    + *
    + * For edges, this holds the offset (in pixels) from the position defined
    + * by <x> and <y> on the edge. For relative geometries (for vertices), this
    + * defines the absolute offset from the point defined by the relative
    + * coordinates. For absolute geometries (for vertices), this defines the
    + * offset for the label. Default is null.
    + */
    +mxGeometry.prototype.offset = null;
    +
    +/**
    + * Variable: relative
    + *
    + * Specifies if the coordinates in the geometry are to be interpreted as
    + * relative coordinates. For edges, this is used to define the location of
    + * the edge label relative to the edge as rendered on the display. For
    + * vertices, this specifies the relative location inside the bounds of the
    + * parent cell.
    + * 
    + * If this is false, then the coordinates are relative to the origin of the
    + * parent cell or, for edges, the edge label position is relative to the
    + * center of the edge as rendered on screen.
    + * 
    + * Default is false.
    + */
    +mxGeometry.prototype.relative = false;
    +
    +/**
    + * Function: swap
    + * 
    + * Swaps the x, y, width and height with the values stored in
    + * <alternateBounds> and puts the previous values into <alternateBounds> as
    + * a rectangle. This operation is carried-out in-place, that is, using the
    + * existing geometry instance. If this operation is called during a graph
    + * model transactional change, then the geometry should be cloned before
    + * calling this method and setting the geometry of the cell using
    + * <mxGraphModel.setGeometry>.
    + */
    +mxGeometry.prototype.swap = function()
    +{
    +	if (this.alternateBounds != null)
    +	{
    +		var old = new mxRectangle(
    +			this.x, this.y, this.width, this.height);
    +
    +		this.x = this.alternateBounds.x;
    +		this.y = this.alternateBounds.y;
    +		this.width = this.alternateBounds.width;
    +		this.height = this.alternateBounds.height;
    +
    +		this.alternateBounds = old;
    +	}
    +};
    +
    +/**
    + * Function: getTerminalPoint
    + * 
    + * Returns the <mxPoint> representing the source or target point of this
    + * edge. This is only used if the edge has no source or target vertex.
    + * 
    + * Parameters:
    + * 
    + * isSource - Boolean that specifies if the source or target point
    + * should be returned.
    + */
    +mxGeometry.prototype.getTerminalPoint = function(isSource)
    +{
    +	return (isSource) ? this.sourcePoint : this.targetPoint;
    +};
    +
    +/**
    + * Function: setTerminalPoint
    + * 
    + * Sets the <sourcePoint> or <targetPoint> to the given <mxPoint> and
    + * returns the new point.
    + * 
    + * Parameters:
    + * 
    + * point - Point to be used as the new source or target point.
    + * isSource - Boolean that specifies if the source or target point
    + * should be set.
    + */
    +mxGeometry.prototype.setTerminalPoint = function(point, isSource)
    +{
    +	if (isSource)
    +	{
    +		this.sourcePoint = point;
    +	}
    +	else
    +	{
    +		this.targetPoint = point;
    +	}
    +	
    +	return point;
    +};
    +
    +/**
    + * Function: translate
    + * 
    + * Translates the geometry by the specified amount. That is, <x> and <y>
    + * of the geometry, the <sourcePoint>, <targetPoint> and all elements of
    + * <points> are translated by the given amount. <x> and <y> are only
    + * translated if <relative> is false. If <TRANSLATE_CONTROL_POINTS> is
    + * false, then <points> are not modified by this function.
    + * 
    + * Parameters:
    + * 
    + * dx - Integer that specifies the x-coordinate of the translation.
    + * dy - Integer that specifies the y-coordinate of the translation.
    + */
    +mxGeometry.prototype.translate = function(dx, dy)
    +{
    +	var clone = this.clone();
    +	
    +	// Translates the geometry
    +	if (!this.relative)
    +	{
    +		this.x += dx;
    +		this.y += dy;
    +	}
    +	
    +	// Translates the source point
    +	if (this.sourcePoint != null)
    +	{
    +		this.sourcePoint.x += dx;
    +		this.sourcePoint.y += dy;
    +	}
    +	
    +	// Translates the target point
    +	if (this.targetPoint != null)
    +	{
    +		this.targetPoint.x += dx;
    +		this.targetPoint.y += dy;
    +	}
    +
    +	// Translate the control points
    +	if (this.TRANSLATE_CONTROL_POINTS &&
    +		this.points != null)
    +	{
    +		var count = this.points.length;
    +		
    +		for (var i = 0; i < count; i++)
    +		{
    +			var pt = this.points[i];
    +			
    +			if (pt != null)
    +			{
    +				pt.x += dx;
    +				pt.y += dy;
    +			}
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/model/mxGraphModel.js b/javascript/src/js/model/mxGraphModel.js
    new file mode 100644
    index 000000000..c65c0e1f0
    --- /dev/null
    +++ b/javascript/src/js/model/mxGraphModel.js
    @@ -0,0 +1,2622 @@
    +/**
    + * $Id: mxGraphModel.js,v 1.125 2012-04-16 10:48:43 david Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraphModel
    + * 
    + * Extends <mxEventSource> to implement a graph model. The graph model acts as
    + * a wrapper around the cells which are in charge of storing the actual graph
    + * datastructure. The model acts as a transactional wrapper with event
    + * notification for all changes, whereas the cells contain the atomic
    + * operations for updating the actual datastructure.
    + * 
    + * Layers:
    + * 
    + * The cell hierarchy in the model must have a top-level root cell which
    + * contains the layers (typically one default layer), which in turn contain the
    + * top-level cells of the layers. This means each cell is contained in a layer.
    + * If no layers are required, then all new cells should be added to the default
    + * layer.
    + * 
    + * Layers are useful for hiding and showing groups of cells, or for placing
    + * groups of cells on top of other cells in the display. To identify a layer,
    + * the <isLayer> function is used. It returns true if the parent of the given
    + * cell is the root of the model.
    + * 
    + * Encoding the model:
    + * 
    + * To encode a graph model, use the following code:
    + * 
    + * (code)
    + * var enc = new mxCodec();
    + * var node = enc.encode(graph.getModel());
    + * (end)
    + * 
    + * This will create an XML node that contains all the model information.
    + * 
    + * Encoding and decoding changes:
    + * 
    + * For the encoding of changes, a graph model listener is required that encodes
    + * each change from the given array of changes.
    + * 
    + * (code)
    + * model.addListener(mxEvent.CHANGE, function(sender, evt)
    + * {
    + *   var changes = evt.getProperty('edit').changes;
    + *   var nodes = [];
    + *   var codec = new mxCodec();
    + * 
    + *   for (var i = 0; i < changes.length; i++)
    + *   {
    + *     nodes.push(codec.encode(changes[i]));
    + *   }
    + *   // do something with the nodes
    + * });
    + * (end)
    + * 
    + * For the decoding and execution of changes, the codec needs a lookup function
    + * that allows it to resolve cell IDs as follows:
    + * 
    + * (code)
    + * var codec = new mxCodec();
    + * codec.lookup = function(id)
    + * {
    + *   return model.getCell(id);
    + * }
    + * (end)
    + * 
    + * For each encoded change (represented by a node), the following code can be
    + * used to carry out the decoding and create a change object.
    + * 
    + * (code)
    + * var changes = [];
    + * var change = codec.decode(node);
    + * change.model = model;
    + * change.execute();
    + * changes.push(change);
    + * (end)
    + * 
    + * The changes can then be dispatched using the model as follows.
    + * 
    + * (code)
    + * var edit = new mxUndoableEdit(model, false);
    + * edit.changes = changes;
    + * 
    + * edit.notify = function()
    + * {
    + *   edit.source.fireEvent(new mxEventObject(mxEvent.CHANGE,
    + *   	'edit', edit, 'changes', edit.changes));
    + *   edit.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,
    + *   	'edit', edit, 'changes', edit.changes));
    + * }
    + * 
    + * model.fireEvent(new mxEventObject(mxEvent.UNDO, 'edit', edit));
    + * model.fireEvent(new mxEventObject(mxEvent.CHANGE,
    + * 		'edit', edit, 'changes', changes));
    + * (end)
    + *
    + * Event: mxEvent.CHANGE
    + *
    + * Fires when an undoable edit is dispatched. The <code>edit</code> property
    + * contains the <mxUndoableEdit>. The <code>changes</code> property contains
    + * the array of atomic changes inside the undoable edit. The changes property
    + * is <strong>deprecated</strong>, please use edit.changes instead.
    + *
    + * Example:
    + * 
    + * For finding newly inserted cells, the following code can be used:
    + * 
    + * (code)
    + * graph.model.addListener(mxEvent.CHANGE, function(sender, evt)
    + * {
    + *   var changes = evt.getProperty('edit').changes;
    + * 
    + *   for (var i = 0; i < changes.length; i++)
    + *   {
    + *     var change = changes[i];
    + *     
    + *     if (change instanceof mxChildChange &&
    + *       change.change.previous == null)
    + *     {
    + *       graph.startEditingAtCell(change.child);
    + *       break;
    + *     }
    + *   }
    + * });
    + * (end)
    + * 
    + * 
    + * Event: mxEvent.NOTIFY
    + *
    + * Same as <mxEvent.CHANGE>, this event can be used for classes that need to
    + * implement a sync mechanism between this model and, say, a remote model. In
    + * such a setup, only local changes should trigger a notify event and all
    + * changes should trigger a change event.
    + * 
    + * Event: mxEvent.EXECUTE
    + * 
    + * Fires between begin- and endUpdate and after an atomic change was executed
    + * in the model. The <code>change</code> property contains the atomic change
    + * that was executed.
    + *
    + * Event: mxEvent.BEGIN_UPDATE
    + *
    + * Fires after the <updateLevel> was incremented in <beginUpdate>. This event
    + * contains no properties.
    + * 
    + * Event: mxEvent.END_UPDATE
    + * 
    + * Fires after the <updateLevel> was decreased in <endUpdate> but before any
    + * notification or change dispatching. The <code>edit</code> property contains
    + * the <currentEdit>.
    + * 
    + * Event: mxEvent.BEFORE_UNDO
    + * 
    + * Fires before the change is dispatched after the update level has reached 0
    + * in <endUpdate>. The <code>edit</code> property contains the <curreneEdit>.
    + * 
    + * Event: mxEvent.UNDO
    + * 
    + * Fires after the change was dispatched in <endUpdate>. The <code>edit</code>
    + * property contains the <currentEdit>.
    + * 
    + * Constructor: mxGraphModel
    + * 
    + * Constructs a new graph model. If no root is specified then a new root
    + * <mxCell> with a default layer is created.
    + * 
    + * Parameters:
    + * 
    + * root - <mxCell> that represents the root cell.
    + */
    +function mxGraphModel(root)
    +{
    +	this.currentEdit = this.createUndoableEdit();
    +	
    +	if (root != null)
    +	{
    +		this.setRoot(root);
    +	}
    +	else
    +	{
    +		this.clear();
    +	}
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxGraphModel.prototype = new mxEventSource();
    +mxGraphModel.prototype.constructor = mxGraphModel;
    +
    +/**
    + * Variable: root
    + * 
    + * Holds the root cell, which in turn contains the cells that represent the
    + * layers of the diagram as child cells. That is, the actual elements of the
    + * diagram are supposed to live in the third generation of cells and below.
    + */
    +mxGraphModel.prototype.root = null;
    +
    +/**
    + * Variable: cells
    + * 
    + * Maps from Ids to cells.
    + */
    +mxGraphModel.prototype.cells = null;
    +
    +/**
    + * Variable: maintainEdgeParent
    + * 
    + * Specifies if edges should automatically be moved into the nearest common
    + * ancestor of their terminals. Default is true.
    + */
    +mxGraphModel.prototype.maintainEdgeParent = true;
    +
    +/**
    + * Variable: createIds
    + * 
    + * Specifies if the model should automatically create Ids for new cells.
    + * Default is true.
    + */
    +mxGraphModel.prototype.createIds = true;
    +
    +/**
    + * Variable: prefix
    + * 
    + * Defines the prefix of new Ids. Default is an empty string.
    + */
    +mxGraphModel.prototype.prefix = '';
    +
    +/**
    + * Variable: postfix
    + * 
    + * Defines the postfix of new Ids. Default is an empty string.
    + */
    +mxGraphModel.prototype.postfix = '';
    +
    +/**
    + * Variable: nextId
    + * 
    + * Specifies the next Id to be created. Initial value is 0.
    + */
    +mxGraphModel.prototype.nextId = 0;
    +
    +/**
    + * Variable: currentEdit
    + * 
    + * Holds the changes for the current transaction. If the transaction is
    + * closed then a new object is created for this variable using
    + * <createUndoableEdit>.
    + */
    +mxGraphModel.prototype.currentEdit = null;
    +
    +/**
    + * Variable: updateLevel
    + * 
    + * Counter for the depth of nested transactions. Each call to <beginUpdate>
    + * will increment this number and each call to <endUpdate> will decrement
    + * it. When the counter reaches 0, the transaction is closed and the
    + * respective events are fired. Initial value is 0.
    + */
    +mxGraphModel.prototype.updateLevel = 0;
    +
    +/**
    + * Variable: endingUpdate
    + * 
    + * True if the program flow is currently inside endUpdate.
    + */
    +mxGraphModel.prototype.endingUpdate = false;
    +
    +/**
    + * Function: clear
    + *
    + * Sets a new root using <createRoot>.
    + */
    +mxGraphModel.prototype.clear = function()
    +{
    +	this.setRoot(this.createRoot());
    +};
    +
    +/**
    + * Function: isCreateIds
    + *
    + * Returns <createIds>.
    + */
    +mxGraphModel.prototype.isCreateIds = function()
    +{
    +	return this.createIds;
    +};
    +
    +/**
    + * Function: setCreateIds
    + *
    + * Sets <createIds>.
    + */
    +mxGraphModel.prototype.setCreateIds = function(value)
    +{
    +	this.createIds = value;
    +};
    +
    +/**
    + * Function: createRoot
    + *
    + * Creates a new root cell with a default layer (child 0).
    + */
    +mxGraphModel.prototype.createRoot = function()
    +{
    +	var cell = new mxCell();
    +	cell.insert(new mxCell());
    +	
    +	return cell;
    +};
    +
    +/**
    + * Function: getCell
    + *
    + * Returns the <mxCell> for the specified Id or null if no cell can be
    + * found for the given Id.
    + *
    + * Parameters:
    + * 
    + * id - A string representing the Id of the cell.
    + */
    +mxGraphModel.prototype.getCell = function(id)
    +{
    +	return (this.cells != null) ? this.cells[id] : null;
    +};
    +
    +/**
    + * Function: filterCells
    + * 
    + * Returns the cells from the given array where the fiven filter function
    + * returns true.
    + */
    +mxGraphModel.prototype.filterCells = function(cells, filter)
    +{
    +	var result = null;
    +	
    +	if (cells != null)
    +	{
    +		result = [];
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (filter(cells[i]))
    +			{
    +				result.push(cells[i]);
    +			}
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getDescendants
    + * 
    + * Returns all descendants of the given cell and the cell itself in an array.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCell> whose descendants should be returned.
    + */
    +mxGraphModel.prototype.getDescendants = function(parent)
    +{
    +	return this.filterDescendants(null, parent);
    +};
    +
    +/**
    + * Function: filterDescendants
    + * 
    + * Visits all cells recursively and applies the specified filter function
    + * to each cell. If the function returns true then the cell is added
    + * to the resulting array. The parent and result paramters are optional.
    + * If parent is not specified then the recursion starts at <root>.
    + * 
    + * Example:
    + * The following example extracts all vertices from a given model:
    + * (code)
    + * var filter = function(cell)
    + * {
    + * 	return model.isVertex(cell);
    + * }
    + * var vertices = model.filterDescendants(filter);
    + * (code)
    + * 
    + * Parameters:
    + * 
    + * filter - JavaScript function that takes an <mxCell> as an argument
    + * and returns a boolean.
    + * parent - Optional <mxCell> that is used as the root of the recursion.
    + */
    +mxGraphModel.prototype.filterDescendants = function(filter, parent)
    +{
    +	// Creates a new array for storing the result
    +	var result = [];
    +
    +	// Recursion starts at the root of the model
    +	parent = parent || this.getRoot();
    +	
    +	// Checks if the filter returns true for the cell
    +	// and adds it to the result array
    +	if (filter == null || filter(parent))
    +	{
    +		result.push(parent);
    +	}
    +	
    +	// Visits the children of the cell
    +	var childCount = this.getChildCount(parent);
    +	
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		var child = this.getChildAt(parent, i);
    +		result = result.concat(this.filterDescendants(filter, child));
    +	}
    +
    +	return result;
    +};
    +
    +/**
    + * Function: getRoot
    + * 
    + * Returns the root of the model or the topmost parent of the given cell.
    + *
    + * Parameters:
    + * 
    + * cell - Optional <mxCell> that specifies the child.
    + */
    +mxGraphModel.prototype.getRoot = function(cell)
    +{
    +	var root = cell || this.root;
    +	
    +	if (cell != null)
    +	{
    +		while (cell != null)
    +		{
    +			root = cell;
    +			cell = this.getParent(cell);
    +		}
    +	}
    +	
    +	return root;
    +};
    +
    +/**
    + * Function: setRoot
    + * 
    + * Sets the <root> of the model using <mxRootChange> and adds the change to
    + * the current transaction. This resets all datastructures in the model and
    + * is the preferred way of clearing an existing model. Returns the new
    + * root.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var root = new mxCell();
    + * root.insert(new mxCell());
    + * model.setRoot(root);
    + * (end)
    + *
    + * Parameters:
    + * 
    + * root - <mxCell> that specifies the new root.
    + */
    +mxGraphModel.prototype.setRoot = function(root)
    +{
    +	this.execute(new mxRootChange(this, root));
    +	
    +	return root;
    +};
    +
    +/**
    + * Function: rootChanged
    + * 
    + * Inner callback to change the root of the model and update the internal
    + * datastructures, such as <cells> and <nextId>. Returns the previous root.
    + *
    + * Parameters:
    + * 
    + * root - <mxCell> that specifies the new root.
    + */
    +mxGraphModel.prototype.rootChanged = function(root)
    +{
    +	var oldRoot = this.root;
    +	this.root = root;
    +	
    +	// Resets counters and datastructures
    +	this.nextId = 0;
    +	this.cells = null;
    +	this.cellAdded(root);
    +	
    +	return oldRoot;
    +};
    +
    +/**
    + * Function: isRoot
    + * 
    + * Returns true if the given cell is the root of the model and a non-null
    + * value.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the possible root.
    + */
    +mxGraphModel.prototype.isRoot = function(cell)
    +{
    +	return cell != null && this.root == cell;
    +};
    +
    +/**
    + * Function: isLayer
    + * 
    + * Returns true if <isRoot> returns true for the parent of the given cell.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the possible layer.
    + */
    +mxGraphModel.prototype.isLayer = function(cell)
    +{
    +	return this.isRoot(this.getParent(cell));
    +};
    +
    +/**
    + * Function: isAncestor
    + * 
    + * Returns true if the given parent is an ancestor of the given child.
    + *
    + * Parameters:
    + * 
    + * parent - <mxCell> that specifies the parent.
    + * child - <mxCell> that specifies the child.
    + */
    +mxGraphModel.prototype.isAncestor = function(parent, child)
    +{
    +	while (child != null && child != parent)
    +	{
    +		child = this.getParent(child);
    +	}
    +	
    +	return child == parent;
    +};
    +
    +/**
    + * Function: contains
    + * 
    + * Returns true if the model contains the given <mxCell>.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that specifies the cell.
    + */
    +mxGraphModel.prototype.contains = function(cell)
    +{
    +	return this.isAncestor(this.root, cell);
    +};
    +
    +/**
    + * Function: getParent
    + * 
    + * Returns the parent of the given cell.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose parent should be returned.
    + */
    +mxGraphModel.prototype.getParent = function(cell)
    +{
    +	return (cell != null) ? cell.getParent() : null;
    +};
    +
    +/**
    + * Function: add
    + * 
    + * Adds the specified child to the parent at the given index using
    + * <mxChildChange> and adds the change to the current transaction. If no
    + * index is specified then the child is appended to the parent's array of
    + * children. Returns the inserted child.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCell> that specifies the parent to contain the child.
    + * child - <mxCell> that specifies the child to be inserted.
    + * index - Optional integer that specifies the index of the child.
    + */
    +mxGraphModel.prototype.add = function(parent, child, index)
    +{
    +	if (child != parent && parent != null && child != null)
    +	{	
    +		// Appends the child if no index was specified
    +		if (index == null)
    +		{
    +			index = this.getChildCount(parent);
    +		}
    +		
    +		var parentChanged = parent != this.getParent(child);
    +		this.execute(new mxChildChange(this, parent, child, index));
    +
    +		// Maintains the edges parents by moving the edges
    +		// into the nearest common ancestor of its
    +		// terminals
    +		if (this.maintainEdgeParent && parentChanged)
    +		{
    +			this.updateEdgeParents(child);
    +		}
    +	}
    +	
    +	return child;
    +};
    +
    +/**
    + * Function: cellAdded
    + * 
    + * Inner callback to update <cells> when a cell has been added. This
    + * implementation resolves collisions by creating new Ids. To change the
    + * ID of a cell after it was inserted into the model, use the following
    + * code:
    + * 
    + * (code
    + * delete model.cells[cell.getId()];
    + * cell.setId(newId);
    + * model.cells[cell.getId()] = cell;
    + * (end)
    + *
    + * If the change of the ID should be part of the command history, then the
    + * cell should be removed from the model and a clone with the new ID should
    + * be reinserted into the model instead.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that specifies the cell that has been added.
    + */
    +mxGraphModel.prototype.cellAdded = function(cell)
    +{
    +	if (cell != null)
    +	{
    +		// Creates an Id for the cell if not Id exists
    +		if (cell.getId() == null && this.createIds)
    +		{
    +			cell.setId(this.createId(cell));
    +		}
    +		
    +		if (cell.getId() != null)
    +		{
    +			var collision = this.getCell(cell.getId());
    +			
    +			if (collision != cell)
    +			{	
    +				// Creates new Id for the cell
    +				// as long as there is a collision
    +				while (collision != null)
    +				{
    +					cell.setId(this.createId(cell));
    +					collision = this.getCell(cell.getId());
    +				}
    +				
    +				// Lazily creates the cells dictionary
    +				if (this.cells == null)
    +				{
    +					this.cells = new Object();
    +				}
    +				
    +				this.cells[cell.getId()] = cell;
    +			}
    +		}
    +		
    +		// Makes sure IDs of deleted cells are not reused
    +		if (mxUtils.isNumeric(cell.getId()))
    +		{
    +			this.nextId = Math.max(this.nextId, cell.getId());
    +		}
    +		
    +		// Recursively processes child cells
    +		var childCount = this.getChildCount(cell);
    +		
    +		for (var i=0; i<childCount; i++)
    +		{
    +			this.cellAdded(this.getChildAt(cell, i));
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createId
    + * 
    + * Hook method to create an Id for the specified cell. This implementation
    + * concatenates <prefix>, id and <postfix> to create the Id and increments
    + * <nextId>. The cell is ignored by this implementation, but can be used in
    + * overridden methods to prefix the Ids with eg. the cell type.
    + *
    + * Parameters:
    + *
    + * cell - <mxCell> to create the Id for.
    + */
    +mxGraphModel.prototype.createId = function(cell)
    +{
    +	var id = this.nextId;
    +	this.nextId++;
    +	
    +	return this.prefix + id + this.postfix;
    +};
    +
    +/**
    + * Function: updateEdgeParents
    + * 
    + * Updates the parent for all edges that are connected to cell or one of
    + * its descendants using <updateEdgeParent>.
    + */
    +mxGraphModel.prototype.updateEdgeParents = function(cell, root)
    +{
    +	// Gets the topmost node of the hierarchy
    +	root = root || this.getRoot(cell);
    +	
    +	// Updates edges on children first
    +	var childCount = this.getChildCount(cell);
    +	
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		var child = this.getChildAt(cell, i);
    +		this.updateEdgeParents(child, root);
    +	}
    +	
    +	// Updates the parents of all connected edges
    +	var edgeCount = this.getEdgeCount(cell);
    +	var edges = [];
    +
    +	for (var i = 0; i < edgeCount; i++)
    +	{
    +		edges.push(this.getEdgeAt(cell, i));
    +	}
    +	
    +	for (var i = 0; i < edges.length; i++)
    +	{
    +		var edge = edges[i];
    +		
    +		// Updates edge parent if edge and child have
    +		// a common root node (does not need to be the
    +		// model root node)
    +		if (this.isAncestor(root, edge))
    +		{
    +			this.updateEdgeParent(edge, root);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: updateEdgeParent
    + *
    + * Inner callback to update the parent of the specified <mxCell> to the
    + * nearest-common-ancestor of its two terminals.
    + *
    + * Parameters:
    + * 
    + * edge - <mxCell> that specifies the edge.
    + * root - <mxCell> that represents the current root of the model.
    + */
    +mxGraphModel.prototype.updateEdgeParent = function(edge, root)
    +{
    +	var source = this.getTerminal(edge, true);
    +	var target = this.getTerminal(edge, false);
    +	var cell = null;
    +	
    +	// Uses the first non-relative descendants of the source terminal
    +	while (source != null && !this.isEdge(source) &&
    +		source.geometry != null && source.geometry.relative)
    +	{
    +		source = this.getParent(source);
    +	}
    +	
    +	// Uses the first non-relative descendants of the target terminal
    +	while (target != null && !this.isEdge(target) &&
    +		target.geometry != null && target.geometry.relative)
    +	{
    +		target = this.getParent(target);
    +	}
    +	
    +	if (this.isAncestor(root, source) && this.isAncestor(root, target))
    +	{
    +		if (source == target)
    +		{
    +			cell = this.getParent(source);
    +		}
    +		else
    +		{
    +			cell = this.getNearestCommonAncestor(source, target);
    +		}
    +
    +		if (cell != null && (this.getParent(cell) != this.root ||
    +			this.isAncestor(cell, edge)) && this.getParent(edge) != cell)
    +		{
    +			var geo = this.getGeometry(edge);
    +			
    +			if (geo != null)
    +			{
    +				var origin1 = this.getOrigin(this.getParent(edge));
    +				var origin2 = this.getOrigin(cell);
    +				
    +				var dx = origin2.x - origin1.x;
    +				var dy = origin2.y - origin1.y;
    +				
    +				geo = geo.clone();
    +				geo.translate(-dx, -dy);
    +				this.setGeometry(edge, geo);
    +			}
    +
    +			this.add(cell, edge, this.getChildCount(cell));
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getOrigin
    + * 
    + * Returns the absolute, accumulated origin for the children inside the
    + * given parent as an <mxPoint>.
    + */
    +mxGraphModel.prototype.getOrigin = function(cell)
    +{
    +	var result = null;
    +	
    +	if (cell != null)
    +	{
    +		result = this.getOrigin(this.getParent(cell));
    +		
    +		if (!this.isEdge(cell))
    +		{
    +			var geo = this.getGeometry(cell);
    +			
    +			if (geo != null)
    +			{
    +				result.x += geo.x;
    +				result.y += geo.y;
    +			}
    +		}
    +	}
    +	else
    +	{
    +		result = new mxPoint();
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getNearestCommonAncestor
    + * 
    + * Returns the nearest common ancestor for the specified cells.
    + *
    + * Parameters:
    + * 
    + * cell1 - <mxCell> that specifies the first cell in the tree.
    + * cell2 - <mxCell> that specifies the second cell in the tree.
    + */
    +mxGraphModel.prototype.getNearestCommonAncestor = function(cell1, cell2)
    +{
    +	if (cell1 != null && cell2 != null)
    +	{		
    +		// Creates the cell path for the second cell
    +		var path = mxCellPath.create(cell2);
    +
    +		if (path != null && path.length > 0)
    +		{
    +			// Bubbles through the ancestors of the first
    +			// cell to find the nearest common ancestor.
    +			var cell = cell1;
    +			var current = mxCellPath.create(cell);
    +			
    +			// Inverts arguments
    +			if (path.length < current.length)
    +			{
    +				cell = cell2;
    +				var tmp = current;
    +				current = path;
    +				path = tmp;
    +			}
    +			
    +			while (cell != null)
    +			{
    +				var parent = this.getParent(cell);
    +				
    +				// Checks if the cell path is equal to the beginning of the given cell path
    +				if (path.indexOf(current + mxCellPath.PATH_SEPARATOR) == 0 && parent != null)
    +				{
    +					return cell;
    +				}
    +				
    +				current = mxCellPath.getParentPath(current);
    +				cell = parent;
    +			}
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: remove
    + * 
    + * Removes the specified cell from the model using <mxChildChange> and adds
    + * the change to the current transaction. This operation will remove the
    + * cell and all of its children from the model. Returns the removed cell.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that should be removed.
    + */
    +mxGraphModel.prototype.remove = function(cell)
    +{
    +	if (cell == this.root)
    +	{
    +		this.setRoot(null);
    +	}
    +	else if (this.getParent(cell) != null)
    +	{
    +		this.execute(new mxChildChange(this, null, cell));
    +	}
    +	
    +	return cell;
    +};
    +
    +/**
    + * Function: cellRemoved
    + * 
    + * Inner callback to update <cells> when a cell has been removed.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that specifies the cell that has been removed.
    + */
    +mxGraphModel.prototype.cellRemoved = function(cell)
    +{
    +	if (cell != null && this.cells != null)
    +	{
    +		// Recursively processes child cells
    +		var childCount = this.getChildCount(cell);
    +		
    +		for (var i = childCount - 1; i >= 0; i--)
    +		{
    +			this.cellRemoved(this.getChildAt(cell, i));
    +		}
    +		
    +		// Removes the dictionary entry for the cell
    +		if (this.cells != null && cell.getId() != null)
    +		{
    +			delete this.cells[cell.getId()];
    +		}
    +	}
    +};
    +
    +/**
    + * Function: parentForCellChanged
    + * 
    + * Inner callback to update the parent of a cell using <mxCell.insert>
    + * on the parent and return the previous parent.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> to update the parent for.
    + * parent - <mxCell> that specifies the new parent of the cell.
    + * index - Optional integer that defines the index of the child
    + * in the parent's child array.
    + */
    +mxGraphModel.prototype.parentForCellChanged = function(cell, parent, index)
    +{
    +	var previous = this.getParent(cell);
    +	
    +	if (parent != null)
    +	{
    +		if (parent != previous || previous.getIndex(cell) != index)
    +		{
    +			parent.insert(cell, index);
    +		}
    +	}
    +	else if (previous != null)
    +	{
    +		var oldIndex = previous.getIndex(cell);
    +		previous.remove(oldIndex);
    +	}
    +	
    +	// Checks if the previous parent was already in the
    +	// model and avoids calling cellAdded if it was.
    +	if (!this.contains(previous) && parent != null)
    +	{
    +		this.cellAdded(cell);
    +	}
    +	else if (parent == null)
    +	{
    +		this.cellRemoved(cell);
    +	}
    +	
    +	return previous;
    +};
    +
    +/**
    + * Function: getChildCount
    + *
    + * Returns the number of children in the given cell.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose number of children should be returned.
    + */
    +mxGraphModel.prototype.getChildCount = function(cell)
    +{
    +	return (cell != null) ? cell.getChildCount() : 0;
    +};
    +
    +/**
    + * Function: getChildAt
    + *
    + * Returns the child of the given <mxCell> at the given index.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the parent.
    + * index - Integer that specifies the index of the child to be returned.
    + */
    +mxGraphModel.prototype.getChildAt = function(cell, index)
    +{
    +	return (cell != null) ? cell.getChildAt(index) : null;
    +};
    +
    +/**
    + * Function: getChildren
    + * 
    + * Returns all children of the given <mxCell> as an array of <mxCells>. The
    + * return value should be only be read.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> the represents the parent.
    + */
    +mxGraphModel.prototype.getChildren = function(cell)
    +{
    +	return (cell != null) ? cell.children : null;
    +};
    +	
    +/**
    + * Function: getChildVertices
    + * 
    + * Returns the child vertices of the given parent.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose child vertices should be returned.
    + */
    +mxGraphModel.prototype.getChildVertices = function(parent)
    +{
    +	return this.getChildCells(parent, true, false);
    +};
    +		
    +/**
    + * Function: getChildEdges
    + * 
    + * Returns the child edges of the given parent.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose child edges should be returned.
    + */
    +mxGraphModel.prototype.getChildEdges = function(parent)
    +{
    +	return this.getChildCells(parent, false, true);
    +};
    +
    +/**
    + * Function: getChildCells
    + * 
    + * Returns the children of the given cell that are vertices and/or edges
    + * depending on the arguments.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> the represents the parent.
    + * vertices - Boolean indicating if child vertices should be returned.
    + * Default is false.
    + * edges - Boolean indicating if child edges should be returned.
    + * Default is false.
    + */
    +mxGraphModel.prototype.getChildCells = function(parent, vertices, edges)
    +{
    +	vertices = (vertices != null) ? vertices : false;
    +	edges = (edges != null) ? edges : false;
    +	
    +	var childCount = this.getChildCount(parent);
    +	var result = [];
    +
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		var child = this.getChildAt(parent, i);
    +
    +		if ((!edges && !vertices) || (edges && this.isEdge(child)) ||
    +			(vertices && this.isVertex(child)))
    +		{
    +			result.push(child);
    +		}
    +	}
    +
    +	return result;
    +};
    +		
    +/**
    + * Function: getTerminal
    + * 
    + * Returns the source or target <mxCell> of the given edge depending on the
    + * value of the boolean parameter.
    + *
    + * Parameters:
    + * 
    + * edge - <mxCell> that specifies the edge.
    + * isSource - Boolean indicating which end of the edge should be returned.
    + */
    +mxGraphModel.prototype.getTerminal = function(edge, isSource)
    +{
    +	return (edge != null) ? edge.getTerminal(isSource) : null;
    +};
    +
    +/**
    + * Function: setTerminal
    + * 
    + * Sets the source or target terminal of the given <mxCell> using
    + * <mxTerminalChange> and adds the change to the current transaction.
    + * This implementation updates the parent of the edge using <updateEdgeParent>
    + * if required.
    + *
    + * Parameters:
    + * 
    + * edge - <mxCell> that specifies the edge.
    + * terminal - <mxCell> that specifies the new terminal.
    + * isSource - Boolean indicating if the terminal is the new source or
    + * target terminal of the edge.
    + */
    +mxGraphModel.prototype.setTerminal = function(edge, terminal, isSource)
    +{
    +	var terminalChanged = terminal != this.getTerminal(edge, isSource);
    +	this.execute(new mxTerminalChange(this, edge, terminal, isSource));
    +	
    +	if (this.maintainEdgeParent && terminalChanged)
    +	{
    +		this.updateEdgeParent(edge, this.getRoot());
    +	}
    +	
    +	return terminal;
    +};
    +	
    +/**
    + * Function: setTerminals
    + * 
    + * Sets the source and target <mxCell> of the given <mxCell> in a single
    + * transaction using <setTerminal> for each end of the edge.
    + *
    + * Parameters:
    + * 
    + * edge - <mxCell> that specifies the edge.
    + * source - <mxCell> that specifies the new source terminal.
    + * target - <mxCell> that specifies the new target terminal.
    + */
    +mxGraphModel.prototype.setTerminals = function(edge, source, target)
    +{
    +	this.beginUpdate();
    +	try
    +	{
    +		this.setTerminal(edge, source, true);
    +		this.setTerminal(edge, target, false);
    +	}
    +	finally
    +	{
    +		this.endUpdate();
    +	}
    +};
    +
    +/**
    + * Function: terminalForCellChanged
    + * 
    + * Inner helper function to update the terminal of the edge using
    + * <mxCell.insertEdge> and return the previous terminal.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> that specifies the edge to be updated.
    + * terminal - <mxCell> that specifies the new terminal.
    + * isSource - Boolean indicating if the terminal is the new source or
    + * target terminal of the edge.
    + */
    +mxGraphModel.prototype.terminalForCellChanged = function(edge, terminal, isSource)
    +{
    +	var previous = this.getTerminal(edge, isSource);
    +	
    +	if (terminal != null)
    +	{
    +		terminal.insertEdge(edge, isSource);
    +	}
    +	else if (previous != null)
    +	{
    +		previous.removeEdge(edge, isSource);
    +	}
    +	
    +	return previous;
    +};
    +
    +/**
    + * Function: getEdgeCount
    + * 
    + * Returns the number of distinct edges connected to the given cell.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the vertex.
    + */
    +mxGraphModel.prototype.getEdgeCount = function(cell)
    +{
    +	return (cell != null) ? cell.getEdgeCount() : 0;
    +};
    +
    +/**
    + * Function: getEdgeAt
    + * 
    + * Returns the edge of cell at the given index.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that specifies the vertex.
    + * index - Integer that specifies the index of the edge
    + * to return.
    + */
    +mxGraphModel.prototype.getEdgeAt = function(cell, index)
    +{
    +	return (cell != null) ? cell.getEdgeAt(index) : null;
    +};
    +	
    +/**
    + * Function: getDirectedEdgeCount
    + * 
    + * Returns the number of incoming or outgoing edges, ignoring the given
    + * edge.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose edge count should be returned.
    + * outgoing - Boolean that specifies if the number of outgoing or
    + * incoming edges should be returned.
    + * ignoredEdge - <mxCell> that represents an edge to be ignored.
    + */
    +mxGraphModel.prototype.getDirectedEdgeCount = function(cell, outgoing, ignoredEdge)
    +{
    +	var count = 0;
    +	var edgeCount = this.getEdgeCount(cell);
    +
    +	for (var i = 0; i < edgeCount; i++)
    +	{
    +		var edge = this.getEdgeAt(cell, i);
    +
    +		if (edge != ignoredEdge && this.getTerminal(edge, outgoing) == cell)
    +		{
    +			count++;
    +		}
    +	}
    +
    +	return count;
    +};
    +
    +/**
    + * Function: getConnections
    + * 
    + * Returns all edges of the given cell without loops.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose edges should be returned.
    + * 
    + */
    +mxGraphModel.prototype.getConnections = function(cell)
    +{
    +	return this.getEdges(cell, true, true, false);
    +};
    +
    +/**
    + * Function: getIncomingEdges
    + * 
    + * Returns the incoming edges of the given cell without loops.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose incoming edges should be returned.
    + * 
    + */
    +mxGraphModel.prototype.getIncomingEdges = function(cell)
    +{
    +	return this.getEdges(cell, true, false, false);
    +};
    +
    +/**
    + * Function: getOutgoingEdges
    + * 
    + * Returns the outgoing edges of the given cell without loops.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose outgoing edges should be returned.
    + * 
    + */
    +mxGraphModel.prototype.getOutgoingEdges = function(cell)
    +{
    +	return this.getEdges(cell, false, true, false);
    +};
    +
    +/**
    + * Function: getEdges
    + * 
    + * Returns all distinct edges connected to this cell as a new array of
    + * <mxCells>. If at least one of incoming or outgoing is true, then loops
    + * are ignored, otherwise if both are false, then all edges connected to
    + * the given cell are returned including loops.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that specifies the cell.
    + * incoming - Optional boolean that specifies if incoming edges should be
    + * returned. Default is true.
    + * outgoing - Optional boolean that specifies if outgoing edges should be
    + * returned. Default is true.
    + * includeLoops - Optional boolean that specifies if loops should be returned.
    + * Default is true. 
    + */
    +mxGraphModel.prototype.getEdges = function(cell, incoming, outgoing, includeLoops)
    +{
    +	incoming = (incoming != null) ? incoming : true;
    +	outgoing = (outgoing != null) ? outgoing : true;
    +	includeLoops = (includeLoops != null) ? includeLoops : true;
    +	
    +	var edgeCount = this.getEdgeCount(cell);
    +	var result = [];
    +
    +	for (var i = 0; i < edgeCount; i++)
    +	{
    +		var edge = this.getEdgeAt(cell, i);
    +		var source = this.getTerminal(edge, true);
    +		var target = this.getTerminal(edge, false);
    +
    +		if ((includeLoops && source == target) || ((source != target) && ((incoming && target == cell) ||
    +			(outgoing && source == cell))))
    +		{
    +			result.push(edge);
    +		}
    +	}
    +
    +	return result;
    +};
    +
    +/**
    + * Function: getEdgesBetween
    + * 
    + * Returns all edges between the given source and target pair. If directed
    + * is true, then only edges from the source to the target are returned,
    + * otherwise, all edges between the two cells are returned.
    + * 
    + * Parameters:
    + * 
    + * source - <mxCell> that defines the source terminal of the edge to be
    + * returned.
    + * target - <mxCell> that defines the target terminal of the edge to be
    + * returned.
    + * directed - Optional boolean that specifies if the direction of the
    + * edge should be taken into account. Default is false.
    + */
    +mxGraphModel.prototype.getEdgesBetween = function(source, target, directed)
    +{
    +	directed = (directed != null) ? directed : false;
    +	
    +	var tmp1 = this.getEdgeCount(source);
    +	var tmp2 = this.getEdgeCount(target);
    +	
    +	// Assumes the source has less connected edges
    +	var terminal = source;
    +	var edgeCount = tmp1;
    +	
    +	// Uses the smaller array of connected edges
    +	// for searching the edge
    +	if (tmp2 < tmp1)
    +	{
    +		edgeCount = tmp2;
    +		terminal = target;
    +	}
    +	
    +	var result = [];
    +	
    +	// Checks if the edge is connected to the correct
    +	// cell and returns the first match
    +	for (var i = 0; i < edgeCount; i++)
    +	{
    +		var edge = this.getEdgeAt(terminal, i);
    +		var src = this.getTerminal(edge, true);
    +		var trg = this.getTerminal(edge, false);
    +		var directedMatch = (src == source) && (trg == target);
    +		var oppositeMatch = (trg == source) && (src == target);
    +
    +		if (directedMatch || (!directed && oppositeMatch))
    +		{
    +			result.push(edge);
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getOpposites
    + * 
    + * Returns all opposite vertices wrt terminal for the given edges, only
    + * returning sources and/or targets as specified. The result is returned
    + * as an array of <mxCells>.
    + * 
    + * Parameters:
    + * 
    + * edges - Array of <mxCells> that contain the edges to be examined.
    + * terminal - <mxCell> that specifies the known end of the edges.
    + * sources - Boolean that specifies if source terminals should be contained
    + * in the result. Default is true.
    + * targets - Boolean that specifies if target terminals should be contained
    + * in the result. Default is true.
    + */
    +mxGraphModel.prototype.getOpposites = function(edges, terminal, sources, targets)
    +{
    +	sources = (sources != null) ? sources : true;
    +	targets = (targets != null) ? targets : true;
    +	
    +	var terminals = [];
    +	
    +	if (edges != null)
    +	{
    +		for (var i = 0; i < edges.length; i++)
    +		{
    +			var source = this.getTerminal(edges[i], true);
    +			var target = this.getTerminal(edges[i], false);
    +			
    +			// Checks if the terminal is the source of
    +			// the edge and if the target should be
    +			// stored in the result
    +			if (source == terminal && target != null && target != terminal && targets)
    +			{
    +				terminals.push(target);
    +			}
    +			
    +			// Checks if the terminal is the taget of
    +			// the edge and if the source should be
    +			// stored in the result
    +			else if (target == terminal && source != null && source != terminal && sources)
    +			{
    +				terminals.push(source);
    +			}
    +		}
    +	}
    +	
    +	return terminals;
    +};
    +
    +/**
    + * Function: getTopmostCells
    + * 
    + * Returns the topmost cells of the hierarchy in an array that contains no
    + * descendants for each <mxCell> that it contains. Duplicates should be
    + * removed in the cells array to improve performance.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> whose topmost ancestors should be returned.
    + */
    +mxGraphModel.prototype.getTopmostCells = function(cells)
    +{
    +	var tmp = [];
    +	
    +	for (var i = 0; i < cells.length; i++)
    +	{
    +		var cell = cells[i];
    +		var topmost = true;
    +		var parent = this.getParent(cell);
    +		
    +		while (parent != null)
    +		{
    +			if (mxUtils.indexOf(cells, parent) >= 0)
    +			{
    +				topmost = false;
    +				break;
    +			}
    +			
    +			parent = this.getParent(parent);
    +		}
    +		
    +		if (topmost)
    +		{
    +			tmp.push(cell);
    +		}
    +	}
    +	
    +	return tmp;
    +};
    +
    +/**
    + * Function: isVertex
    + * 
    + * Returns true if the given cell is a vertex.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the possible vertex.
    + */
    +mxGraphModel.prototype.isVertex = function(cell)
    +{
    +	return (cell != null) ? cell.isVertex() : false;
    +};
    +
    +/**
    + * Function: isEdge
    + * 
    + * Returns true if the given cell is an edge.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the possible edge.
    + */
    +mxGraphModel.prototype.isEdge = function(cell)
    +{
    +	return (cell != null) ? cell.isEdge() : false;
    +};
    +
    +/**
    + * Function: isConnectable
    + * 
    + * Returns true if the given <mxCell> is connectable. If <edgesConnectable>
    + * is false, then this function returns false for all edges else it returns
    + * the return value of <mxCell.isConnectable>.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose connectable state should be returned.
    + */
    +mxGraphModel.prototype.isConnectable = function(cell)
    +{
    +	return (cell != null) ? cell.isConnectable() : false;
    +};
    +
    +/**
    + * Function: getValue
    + * 
    + * Returns the user object of the given <mxCell> using <mxCell.getValue>.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose user object should be returned.
    + */
    +mxGraphModel.prototype.getValue = function(cell)
    +{
    +	return (cell != null) ? cell.getValue() : null;
    +};
    +
    +/**
    + * Function: setValue
    + * 
    + * Sets the user object of then given <mxCell> using <mxValueChange>
    + * and adds the change to the current transaction.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose user object should be changed.
    + * value - Object that defines the new user object.
    + */
    +mxGraphModel.prototype.setValue = function(cell, value)
    +{
    +	this.execute(new mxValueChange(this, cell, value));
    +	
    +	return value;
    +};
    +
    +/**
    + * Function: valueForCellChanged
    + * 
    + * Inner callback to update the user object of the given <mxCell>
    + * using <mxCell.valueChanged> and return the previous value,
    + * that is, the return value of <mxCell.valueChanged>.
    + * 
    + * To change a specific attribute in an XML node, the following code can be
    + * used.
    + * 
    + * (code)
    + * graph.getModel().valueForCellChanged = function(cell, value)
    + * {
    + *   var previous = cell.value.getAttribute('label');
    + *   cell.value.setAttribute('label', value);
    + *   
    + *   return previous;
    + * };
    + * (end) 
    + */
    +mxGraphModel.prototype.valueForCellChanged = function(cell, value)
    +{
    +	return cell.valueChanged(value);
    +};
    +
    +/**
    + * Function: getGeometry
    + * 
    + * Returns the <mxGeometry> of the given <mxCell>.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose geometry should be returned.
    + */
    +mxGraphModel.prototype.getGeometry = function(cell, geometry)
    +{
    +	return (cell != null) ? cell.getGeometry() : null;
    +};
    +
    +/**
    + * Function: setGeometry
    + * 
    + * Sets the <mxGeometry> of the given <mxCell>. The actual update
    + * of the cell is carried out in <geometryForCellChanged>. The
    + * <mxGeometryChange> action is used to encapsulate the change.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose geometry should be changed.
    + * geometry - <mxGeometry> that defines the new geometry.
    + */
    +mxGraphModel.prototype.setGeometry = function(cell, geometry)
    +{
    +	if (geometry != this.getGeometry(cell))
    +	{
    +		this.execute(new mxGeometryChange(this, cell, geometry));
    +	}
    +	
    +	return geometry;
    +};
    +
    +/**
    + * Function: geometryForCellChanged
    + * 
    + * Inner callback to update the <mxGeometry> of the given <mxCell> using
    + * <mxCell.setGeometry> and return the previous <mxGeometry>.
    + */
    +mxGraphModel.prototype.geometryForCellChanged = function(cell, geometry)
    +{
    +	var previous = this.getGeometry(cell);
    +	cell.setGeometry(geometry);
    +	
    +	return previous;
    +};
    +
    +/**
    + * Function: getStyle
    + * 
    + * Returns the style of the given <mxCell>.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose style should be returned.
    + */
    +mxGraphModel.prototype.getStyle = function(cell)
    +{
    +	return (cell != null) ? cell.getStyle() : null;
    +};
    +
    +/**
    + * Function: setStyle
    + * 
    + * Sets the style of the given <mxCell> using <mxStyleChange> and
    + * adds the change to the current transaction.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose style should be changed.
    + * style - String of the form [stylename;|key=value;] to specify
    + * the new cell style.
    + */
    +mxGraphModel.prototype.setStyle = function(cell, style)
    +{
    +	if (style != this.getStyle(cell))
    +	{
    +		this.execute(new mxStyleChange(this, cell, style));
    +	}
    +	
    +	return style;
    +};
    +
    +/**
    + * Function: styleForCellChanged
    + * 
    + * Inner callback to update the style of the given <mxCell>
    + * using <mxCell.setStyle> and return the previous style.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that specifies the cell to be updated.
    + * style - String of the form [stylename;|key=value;] to specify
    + * the new cell style.
    + */
    +mxGraphModel.prototype.styleForCellChanged = function(cell, style)
    +{
    +	var previous = this.getStyle(cell);
    +	cell.setStyle(style);
    +	
    +	return previous;
    +};
    +
    +/**
    + * Function: isCollapsed
    + * 
    + * Returns true if the given <mxCell> is collapsed.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose collapsed state should be returned.
    + */
    +mxGraphModel.prototype.isCollapsed = function(cell)
    +{
    +	return (cell != null) ? cell.isCollapsed() : false;
    +};
    +
    +/**
    + * Function: setCollapsed
    + * 
    + * Sets the collapsed state of the given <mxCell> using <mxCollapseChange>
    + * and adds the change to the current transaction.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose collapsed state should be changed.
    + * collapsed - Boolean that specifies the new collpased state.
    + */
    +mxGraphModel.prototype.setCollapsed = function(cell, collapsed)
    +{
    +	if (collapsed != this.isCollapsed(cell))
    +	{
    +		this.execute(new mxCollapseChange(this, cell, collapsed));
    +	}
    +	
    +	return collapsed;
    +};
    +	
    +/**
    + * Function: collapsedStateForCellChanged
    + *
    + * Inner callback to update the collapsed state of the
    + * given <mxCell> using <mxCell.setCollapsed> and return
    + * the previous collapsed state.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that specifies the cell to be updated.
    + * collapsed - Boolean that specifies the new collpased state.
    + */
    +mxGraphModel.prototype.collapsedStateForCellChanged = function(cell, collapsed)
    +{
    +	var previous = this.isCollapsed(cell);
    +	cell.setCollapsed(collapsed);
    +	
    +	return previous;
    +};
    +
    +/**
    + * Function: isVisible
    + * 
    + * Returns true if the given <mxCell> is visible.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose visible state should be returned.
    + */
    +mxGraphModel.prototype.isVisible = function(cell)
    +{
    +	return (cell != null) ? cell.isVisible() : false;
    +};
    +
    +/**
    + * Function: setVisible
    + * 
    + * Sets the visible state of the given <mxCell> using <mxVisibleChange> and
    + * adds the change to the current transaction.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> whose visible state should be changed.
    + * visible - Boolean that specifies the new visible state.
    + */
    +mxGraphModel.prototype.setVisible = function(cell, visible)
    +{
    +	if (visible != this.isVisible(cell))
    +	{
    +		this.execute(new mxVisibleChange(this, cell, visible));
    +	}
    +	
    +	return visible;
    +};
    +	
    +/**
    + * Function: visibleStateForCellChanged
    + *
    + * Inner callback to update the visible state of the
    + * given <mxCell> using <mxCell.setCollapsed> and return
    + * the previous visible state.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that specifies the cell to be updated.
    + * visible - Boolean that specifies the new visible state.
    + */
    +mxGraphModel.prototype.visibleStateForCellChanged = function(cell, visible)
    +{
    +	var previous = this.isVisible(cell);
    +	cell.setVisible(visible);
    +	
    +	return previous;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Executes the given edit and fires events if required. The edit object
    + * requires an execute function which is invoked. The edit is added to the
    + * <currentEdit> between <beginUpdate> and <endUpdate> calls, so that
    + * events will be fired if this execute is an individual transaction, that
    + * is, if no previous <beginUpdate> calls have been made without calling
    + * <endUpdate>. This implementation fires an <execute> event before
    + * executing the given change.
    + * 
    + * Parameters:
    + * 
    + * change - Object that described the change.
    + */
    +mxGraphModel.prototype.execute = function(change)
    +{
    +	change.execute();
    +	this.beginUpdate();
    +	this.currentEdit.add(change);
    +	this.fireEvent(new mxEventObject(mxEvent.EXECUTE, 'change', change));
    +	this.endUpdate();
    +};
    +
    +/**
    + * Function: beginUpdate
    + * 
    + * Increments the <updateLevel> by one. The event notification
    + * is queued until <updateLevel> reaches 0 by use of
    + * <endUpdate>.
    + *
    + * All changes on <mxGraphModel> are transactional,
    + * that is, they are executed in a single undoable change
    + * on the model (without transaction isolation).
    + * Therefore, if you want to combine any
    + * number of changes into a single undoable change,
    + * you should group any two or more API calls that
    + * modify the graph model between <beginUpdate>
    + * and <endUpdate> calls as shown here:
    + * 
    + * (code)
    + * var model = graph.getModel();
    + * var parent = graph.getDefaultParent();
    + * var index = model.getChildCount(parent);
    + * model.beginUpdate();
    + * try
    + * {
    + *   model.add(parent, v1, index);
    + *   model.add(parent, v2, index+1);
    + * }
    + * finally
    + * {
    + *   model.endUpdate();
    + * }
    + * (end)
    + * 
    + * Of course there is a shortcut for appending a
    + * sequence of cells into the default parent:
    + * 
    + * (code)
    + * graph.addCells([v1, v2]).
    + * (end)
    + */
    +mxGraphModel.prototype.beginUpdate = function()
    +{
    +	this.updateLevel++;
    +	this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE));
    +};
    +
    +/**
    + * Function: endUpdate
    + * 
    + * Decrements the <updateLevel> by one and fires an <undo>
    + * event if the <updateLevel> reaches 0. This function
    + * indirectly fires a <change> event by invoking the notify
    + * function on the <currentEdit> und then creates a new
    + * <currentEdit> using <createUndoableEdit>.
    + *
    + * The <undo> event is fired only once per edit, whereas
    + * the <change> event is fired whenever the notify
    + * function is invoked, that is, on undo and redo of
    + * the edit.
    + */
    +mxGraphModel.prototype.endUpdate = function()
    +{
    +	this.updateLevel--;
    +	
    +	if (!this.endingUpdate)
    +	{
    +		this.endingUpdate = this.updateLevel == 0;
    +		this.fireEvent(new mxEventObject(mxEvent.END_UPDATE, 'edit', this.currentEdit));
    +
    +		try
    +		{		
    +			if (this.endingUpdate && !this.currentEdit.isEmpty())
    +			{
    +				this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO, 'edit', this.currentEdit));
    +				var tmp = this.currentEdit;
    +				this.currentEdit = this.createUndoableEdit();
    +				tmp.notify();
    +				this.fireEvent(new mxEventObject(mxEvent.UNDO, 'edit', tmp));
    +			}
    +		}
    +		finally
    +		{
    +			this.endingUpdate = false;
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createUndoableEdit
    + * 
    + * Creates a new <mxUndoableEdit> that implements the
    + * notify function to fire a <change> and <notify> event
    + * through the <mxUndoableEdit>'s source.
    + */
    +mxGraphModel.prototype.createUndoableEdit = function()
    +{
    +	var edit = new mxUndoableEdit(this, true);
    +	
    +	edit.notify = function()
    +	{
    +		// LATER: Remove changes property (deprecated)
    +		edit.source.fireEvent(new mxEventObject(mxEvent.CHANGE,
    +			'edit', edit, 'changes', edit.changes));
    +		edit.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,
    +			'edit', edit, 'changes', edit.changes));
    +	};
    +	
    +	return edit;
    +};
    +
    +/**
    + * Function: mergeChildren
    + * 
    + * Merges the children of the given cell into the given target cell inside
    + * this model. All cells are cloned unless there is a corresponding cell in
    + * the model with the same id, in which case the source cell is ignored and
    + * all edges are connected to the corresponding cell in this model. Edges
    + * are considered to have no identity and are always cloned unless the
    + * cloneAllEdges flag is set to false, in which case edges with the same
    + * id in the target model are reconnected to reflect the terminals of the
    + * source edges.
    + */
    +mxGraphModel.prototype.mergeChildren = function(from, to, cloneAllEdges)
    +{
    +	cloneAllEdges = (cloneAllEdges != null) ? cloneAllEdges : true;
    +	
    +	this.beginUpdate();
    +	try
    +	{
    +		var mapping = new Object();
    +		this.mergeChildrenImpl(from, to, cloneAllEdges, mapping);
    +		
    +		// Post-processes all edges in the mapping and
    +		// reconnects the terminals to the corresponding
    +		// cells in the target model
    +		for (var key in mapping)
    +		{
    +			var cell = mapping[key];
    +			var terminal = this.getTerminal(cell, true);
    +
    +			if (terminal != null)
    +			{
    +				terminal = mapping[mxCellPath.create(terminal)];
    +				this.setTerminal(cell, terminal, true);
    +			}
    +			
    +			terminal = this.getTerminal(cell, false);
    +			
    +			if (terminal != null)
    +			{
    +				terminal = mapping[mxCellPath.create(terminal)];
    +				this.setTerminal(cell, terminal, false);
    +			}
    +		}
    +	}
    +	finally
    +	{
    +		this.endUpdate();
    +	}
    +};
    +
    +/**
    + * Function: mergeChildren
    + * 
    + * Clones the children of the source cell into the given target cell in
    + * this model and adds an entry to the mapping that maps from the source
    + * cell to the target cell with the same id or the clone of the source cell
    + * that was inserted into this model.
    + */
    +mxGraphModel.prototype.mergeChildrenImpl = function(from, to, cloneAllEdges, mapping)
    +{
    +	this.beginUpdate();
    +	try
    +	{
    +		var childCount = from.getChildCount();
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var cell = from.getChildAt(i);
    +			
    +			if (typeof(cell.getId) == 'function')
    +			{
    +				var id = cell.getId();
    +				var target = (id != null && (!this.isEdge(cell) || !cloneAllEdges)) ?
    +						this.getCell(id) : null;
    +				
    +				// Clones and adds the child if no cell exists for the id
    +				if (target == null)
    +				{
    +					var clone = cell.clone();
    +					clone.setId(id);
    +					
    +					// Sets the terminals from the original cell to the clone
    +					// because the lookup uses strings not cells in JS
    +					clone.setTerminal(cell.getTerminal(true), true);
    +					clone.setTerminal(cell.getTerminal(false), false);
    +					
    +					// Do *NOT* use model.add as this will move the edge away
    +					// from the parent in updateEdgeParent if maintainEdgeParent
    +					// is enabled in the target model
    +					target = to.insert(clone);
    +					this.cellAdded(target);
    +				}
    +				
    +				// Stores the mapping for later reconnecting edges
    +				mapping[mxCellPath.create(cell)] = target;
    +				
    +				// Recurses
    +				this.mergeChildrenImpl(cell, target, cloneAllEdges, mapping);
    +			}
    +		}
    +	}
    +	finally
    +	{
    +		this.endUpdate();
    +	}
    +};
    +
    +/**
    + * Function: getParents
    + * 
    + * Returns an array that represents the set (no duplicates) of all parents
    + * for the given array of cells.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of cells whose parents should be returned.
    + */
    +mxGraphModel.prototype.getParents = function(cells)
    +{
    +	var parents = [];
    +	
    +	if (cells != null)
    +	{
    +		var hash = new Object();
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			var parent = this.getParent(cells[i]);
    +			
    +			if (parent != null)
    +			{
    +				var id = mxCellPath.create(parent);
    +				
    +				if (hash[id] == null)
    +				{
    +					hash[id] = parent;
    +					parents.push(parent);
    +				}
    +			}
    +		}
    +	}
    +	
    +	return parents;
    +};
    +
    +//
    +// Cell Cloning
    +//
    +
    +/**
    + * Function: cloneCell
    + * 
    + * Returns a deep clone of the given <mxCell> (including
    + * the children) which is created using <cloneCells>.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> to be cloned.
    + */
    +mxGraphModel.prototype.cloneCell = function(cell)
    +{
    +	if (cell != null)
    +	{
    +		return this.cloneCells([cell], true)[0];
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: cloneCells
    + * 
    + * Returns an array of clones for the given array of <mxCells>.
    + * Depending on the value of includeChildren, a deep clone is created for
    + * each cell. Connections are restored based if the corresponding
    + * cell is contained in the passed in array.
    + *
    + * Parameters:
    + * 
    + * cells - Array of <mxCell> to be cloned.
    + * includeChildren - Boolean indicating if the cells should be cloned
    + * with all descendants.
    + */
    +mxGraphModel.prototype.cloneCells = function(cells, includeChildren)
    +{
    +	var mapping = new Object();
    +	var clones = [];
    +	
    +	for (var i = 0; i < cells.length; i++)
    +	{
    +		if (cells[i] != null)
    +		{
    +			clones.push(this.cloneCellImpl(cells[i], mapping, includeChildren));
    +		}
    +		else
    +		{
    +			clones.push(null);
    +		}
    +	}
    +	
    +	for (var i = 0; i < clones.length; i++)
    +	{
    +		if (clones[i] != null)
    +		{
    +			this.restoreClone(clones[i], cells[i], mapping);
    +		}
    +	}
    +	
    +	return clones;
    +};
    +			
    +/**
    + * Function: cloneCellImpl
    + * 
    + * Inner helper method for cloning cells recursively.
    + */
    +mxGraphModel.prototype.cloneCellImpl = function(cell, mapping, includeChildren)
    +{
    +	var clone = this.cellCloned(cell);
    +	
    +	// Stores the clone in the lookup under the
    +	// cell path for the original cell
    +	mapping[mxObjectIdentity.get(cell)] = clone;
    +	
    +	if (includeChildren)
    +	{
    +		var childCount = this.getChildCount(cell);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var cloneChild = this.cloneCellImpl(
    +				this.getChildAt(cell, i), mapping, true);
    +			clone.insert(cloneChild);
    +		}
    +	}
    +	
    +	return clone;
    +};
    +
    +/**
    + * Function: cellCloned
    + * 
    + * Hook for cloning the cell. This returns cell.clone() or
    + * any possible exceptions.
    + */
    +mxGraphModel.prototype.cellCloned = function(cell)
    +{
    +	return cell.clone();
    +};
    +
    +/**
    + * Function: restoreClone
    + * 
    + * Inner helper method for restoring the connections in
    + * a network of cloned cells.
    + */
    +mxGraphModel.prototype.restoreClone = function(clone, cell, mapping)
    +{
    +	var source = this.getTerminal(cell, true);
    +	
    +	if (source != null)
    +	{
    +		var tmp = mapping[mxObjectIdentity.get(source)];
    +		
    +		if (tmp != null)
    +		{
    +			tmp.insertEdge(clone, true);
    +		}
    +	}
    +	
    +	var target = this.getTerminal(cell, false);
    +	
    +	if (target != null)
    +	{
    +		var tmp = mapping[mxObjectIdentity.get(target)];
    +		
    +		if (tmp != null)
    +		{	
    +			tmp.insertEdge(clone, false);
    +		}
    +	}
    +	
    +	var childCount = this.getChildCount(clone);
    +	
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		this.restoreClone(this.getChildAt(clone, i),
    +			this.getChildAt(cell, i), mapping);
    +	}
    +};
    +
    +//
    +// Atomic changes
    +//
    +
    +/**
    + * Class: mxRootChange
    + * 
    + * Action to change the root in a model.
    + *
    + * Constructor: mxRootChange
    + * 
    + * Constructs a change of the root in the
    + * specified model.
    + */
    +function mxRootChange(model, root)
    +{
    +	this.model = model;
    +	this.root = root;
    +	this.previous = root;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Carries out a change of the root using
    + * <mxGraphModel.rootChanged>.
    + */
    +mxRootChange.prototype.execute = function()
    +{
    +	this.root = this.previous;
    +	this.previous = this.model.rootChanged(this.previous);
    +};
    +
    +/**
    + * Class: mxChildChange
    + * 
    + * Action to add or remove a child in a model.
    + *
    + * Constructor: mxChildChange
    + * 
    + * Constructs a change of a child in the
    + * specified model.
    + */
    +function mxChildChange(model, parent, child, index)
    +{
    +	this.model = model;
    +	this.parent = parent;
    +	this.previous = parent;
    +	this.child = child;
    +	this.index = index;
    +	this.previousIndex = index;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Changes the parent of <child> using
    + * <mxGraphModel.parentForCellChanged> and
    + * removes or restores the cell's
    + * connections.
    + */
    +mxChildChange.prototype.execute = function()
    +{
    +	var tmp = this.model.getParent(this.child);
    +	var tmp2 = (tmp != null) ? tmp.getIndex(this.child) : 0;
    +	
    +	if (this.previous == null)
    +	{
    +		this.connect(this.child, false);
    +	}
    +	
    +	tmp = this.model.parentForCellChanged(
    +		this.child, this.previous, this.previousIndex);
    +		
    +	if (this.previous != null)
    +	{
    +		this.connect(this.child, true);
    +	}
    +	
    +	this.parent = this.previous;
    +	this.previous = tmp;
    +	this.index = this.previousIndex;
    +	this.previousIndex = tmp2;
    +};
    +
    +/**
    + * Function: disconnect
    + * 
    + * Disconnects the given cell recursively from its
    + * terminals and stores the previous terminal in the
    + * cell's terminals.
    + */
    +mxChildChange.prototype.connect = function(cell, isConnect)
    +{
    +	isConnect = (isConnect != null) ? isConnect : true;
    +	
    +	var source = cell.getTerminal(true);
    +	var target = cell.getTerminal(false);
    +	
    +	if (source != null)
    +	{
    +		if (isConnect)
    +		{
    +			this.model.terminalForCellChanged(cell, source, true);
    +		}
    +		else
    +		{
    +			this.model.terminalForCellChanged(cell, null, true);
    +		}
    +	}
    +	
    +	if (target != null)
    +	{
    +		if (isConnect)
    +		{
    +			this.model.terminalForCellChanged(cell, target, false);
    +		}
    +		else
    +		{
    +			this.model.terminalForCellChanged(cell, null, false);
    +		}
    +	}
    +	
    +	cell.setTerminal(source, true);
    +	cell.setTerminal(target, false);
    +	
    +	var childCount = this.model.getChildCount(cell);
    +	
    +	for (var i=0; i<childCount; i++)
    +	{
    +		this.connect(this.model.getChildAt(cell, i), isConnect);
    +	}
    +};
    +
    +/**
    + * Class: mxTerminalChange
    + * 
    + * Action to change a terminal in a model.
    + *
    + * Constructor: mxTerminalChange
    + * 
    + * Constructs a change of a terminal in the 
    + * specified model.
    + */
    +function mxTerminalChange(model, cell, terminal, source)
    +{
    +	this.model = model;
    +	this.cell = cell;
    +	this.terminal = terminal;
    +	this.previous = terminal;
    +	this.source = source;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Changes the terminal of <cell> to <previous> using
    + * <mxGraphModel.terminalForCellChanged>.
    + */
    +mxTerminalChange.prototype.execute = function()
    +{
    +	this.terminal = this.previous;
    +	this.previous = this.model.terminalForCellChanged(
    +		this.cell, this.previous, this.source);
    +};
    +
    +/**
    + * Class: mxValueChange
    + * 
    + * Action to change a user object in a model.
    + *
    + * Constructor: mxValueChange
    + * 
    + * Constructs a change of a user object in the 
    + * specified model.
    + */
    +function mxValueChange(model, cell, value)
    +{
    +	this.model = model;
    +	this.cell = cell;
    +	this.value = value;
    +	this.previous = value;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Changes the value of <cell> to <previous> using
    + * <mxGraphModel.valueForCellChanged>.
    + */
    +mxValueChange.prototype.execute = function()
    +{
    +	this.value = this.previous;
    +	this.previous = this.model.valueForCellChanged(
    +		this.cell, this.previous);
    +};
    +
    +/**
    + * Class: mxStyleChange
    + * 
    + * Action to change a cell's style in a model.
    + *
    + * Constructor: mxStyleChange
    + * 
    + * Constructs a change of a style in the
    + * specified model.
    + */
    +function mxStyleChange(model, cell, style)
    +{
    +	this.model = model;
    +	this.cell = cell;
    +	this.style = style;
    +	this.previous = style;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Changes the style of <cell> to <previous> using
    + * <mxGraphModel.styleForCellChanged>.
    + */
    +mxStyleChange.prototype.execute = function()
    +{
    +	this.style = this.previous;
    +	this.previous = this.model.styleForCellChanged(
    +		this.cell, this.previous);
    +};
    +
    +/**
    + * Class: mxGeometryChange
    + * 
    + * Action to change a cell's geometry in a model.
    + *
    + * Constructor: mxGeometryChange
    + * 
    + * Constructs a change of a geometry in the
    + * specified model.
    + */
    +function mxGeometryChange(model, cell, geometry)
    +{
    +	this.model = model;
    +	this.cell = cell;
    +	this.geometry = geometry;
    +	this.previous = geometry;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Changes the geometry of <cell> ro <previous> using
    + * <mxGraphModel.geometryForCellChanged>.
    + */
    +mxGeometryChange.prototype.execute = function()
    +{
    +	this.geometry = this.previous;
    +	this.previous = this.model.geometryForCellChanged(
    +		this.cell, this.previous);
    +};
    +
    +/**
    + * Class: mxCollapseChange
    + * 
    + * Action to change a cell's collapsed state in a model.
    + *
    + * Constructor: mxCollapseChange
    + * 
    + * Constructs a change of a collapsed state in the
    + * specified model.
    + */
    +function mxCollapseChange(model, cell, collapsed)
    +{
    +	this.model = model;
    +	this.cell = cell;
    +	this.collapsed = collapsed;
    +	this.previous = collapsed;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Changes the collapsed state of <cell> to <previous> using
    + * <mxGraphModel.collapsedStateForCellChanged>.
    + */
    +mxCollapseChange.prototype.execute = function()
    +{
    +	this.collapsed = this.previous;
    +	this.previous = this.model.collapsedStateForCellChanged(
    +		this.cell, this.previous);
    +};
    +
    +/**
    + * Class: mxVisibleChange
    + * 
    + * Action to change a cell's visible state in a model.
    + *
    + * Constructor: mxVisibleChange
    + * 
    + * Constructs a change of a visible state in the
    + * specified model.
    + */
    +function mxVisibleChange(model, cell, visible)
    +{
    +	this.model = model;
    +	this.cell = cell;
    +	this.visible = visible;
    +	this.previous = visible;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Changes the visible state of <cell> to <previous> using
    + * <mxGraphModel.visibleStateForCellChanged>.
    + */
    +mxVisibleChange.prototype.execute = function()
    +{
    +	this.visible = this.previous;
    +	this.previous = this.model.visibleStateForCellChanged(
    +		this.cell, this.previous);
    +};
    +
    +/**
    + * Class: mxCellAttributeChange
    + * 
    + * Action to change the attribute of a cell's user object.
    + * There is no method on the graph model that uses this
    + * action. To use the action, you can use the code shown
    + * in the example below.
    + * 
    + * Example:
    + * 
    + * To change the attributeName in the cell's user object
    + * to attributeValue, use the following code:
    + * 
    + * (code)
    + * model.beginUpdate();
    + * try
    + * {
    + *   var edit = new mxCellAttributeChange(
    + *     cell, attributeName, attributeValue);
    + *   model.execute(edit);
    + * }
    + * finally
    + * {
    + *   model.endUpdate();
    + * } 
    + * (end)
    + *
    + * Constructor: mxCellAttributeChange
    + * 
    + * Constructs a change of a attribute of the DOM node
    + * stored as the value of the given <mxCell>.
    + */
    +function mxCellAttributeChange(cell, attribute, value)
    +{
    +	this.cell = cell;
    +	this.attribute = attribute;
    +	this.value = value;
    +	this.previous = value;
    +};
    +
    +/**
    + * Function: execute
    + * 
    + * Changes the attribute of the cell's user object by
    + * using <mxCell.setAttribute>.
    + */
    +mxCellAttributeChange.prototype.execute = function()
    +{
    +	var tmp = this.cell.getAttribute(this.attribute);
    +	
    +	if (this.previous == null)
    +	{
    +		this.cell.value.removeAttribute(this.attribute);
    +	}
    +	else
    +	{
    +		this.cell.setAttribute(this.attribute, this.previous);
    +	}
    +	
    +	this.previous = tmp;
    +};
    diff --git a/javascript/src/js/mxClient.js b/javascript/src/js/mxClient.js
    new file mode 100644
    index 000000000..ef7c89a16
    --- /dev/null
    +++ b/javascript/src/js/mxClient.js
    @@ -0,0 +1,641 @@
    +/**
    + * $Id: mxClient.js,v 1.200 2012-04-22 06:31:31 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.0.5.
    +	 */
    +	VERSION: '1.10.0.5',
    +
    +	/**
    +	 * 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_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">
    + * 		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">
    + * 		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.
    + * 
    + * 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;
    +	var dash = mxClient.language.indexOf('-');
    +	
    +	if (dash > 0)
    +	{
    +		mxClient.language = mxClient.language.substring(0, dash);
    +	}
    +}
    +
    +/**
    + * 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');
    diff --git a/javascript/src/js/shape/mxActor.js b/javascript/src/js/shape/mxActor.js
    new file mode 100644
    index 000000000..79a579720
    --- /dev/null
    +++ b/javascript/src/js/shape/mxActor.js
    @@ -0,0 +1,175 @@
    +/**
    + * $Id: mxActor.js,v 1.32 2012-04-04 07:34:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxActor
    + *
    + * Extends <mxShape> to implement an actor shape. If a custom shape with one
    + * filled area is needed, then this shape's <redrawPath> should be overridden.
    + * 
    + * Example:
    + * 
    + * (code)
    + * function SampleShape() { }
    + * 
    + * SampleShape.prototype = new mxActor();
    + * SampleShape.prototype.constructor = vsAseShape;
    + * 
    + * mxCellRenderer.prototype.defaultShapes['sample'] = SampleShape;
    + * SampleShape.prototype.redrawPath = function(path, x, y, w, h)
    + * {
    + *   path.moveTo(0, 0);
    + *   path.lineTo(w, h);
    + *   // ...
    + *   path.close();
    + * }
    + * (end)
    + * 
    + * This shape is registered under <mxConstants.SHAPE_ACTOR> in
    + * <mxCellRenderer>.
    + * 
    + * Constructor: mxActor
    + *
    + * Constructs a new actor shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxActor(bounds, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxActor.prototype = new mxShape();
    +mxActor.prototype.constructor = mxActor;
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw in VML in mixed Html mode.
    + */
    +mxActor.prototype.mixedModeHtml = false;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw as VML in prefer Html mode.
    + */
    +mxActor.prototype.preferModeHtml = false;
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node(s) to represent this shape.
    + */
    +mxActor.prototype.createVml = function()
    +{
    +	var node = document.createElement('v:shape');
    +	node.style.position = 'absolute';
    +	this.configureVmlShape(node);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Updates the VML node(s) to reflect the latest bounds and scale.
    + */
    +mxActor.prototype.redrawVml = function()
    +{
    +	this.updateVmlShape(this.node);
    +	this.node.path = this.createPath();
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxActor.prototype.createSvg = function()
    +{
    +	return this.createSvgGroup('path');
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxActor.prototype.redrawSvg = function()
    +{
    +	var strokeWidth = Math.round(Math.max(1, this.strokewidth * this.scale));
    +	this.innerNode.setAttribute('stroke-width', strokeWidth);
    +	this.innerNode.setAttribute('stroke-linejoin', 'round');
    +
    +	if (this.crisp)
    +	{
    +		this.innerNode.setAttribute('shape-rendering', 'crispEdges');
    +	}
    +	else
    +	{
    +		this.innerNode.removeAttribute('shape-rendering');
    +	}
    +	
    +	var d = this.createPath();
    +	
    +	if (d.length > 0)
    +	{
    +		this.innerNode.setAttribute('d', d);
    +
    +		if (this.shadowNode != null)
    +		{
    +			this.shadowNode.setAttribute('transform',  this.getSvgShadowTransform());
    +			this.shadowNode.setAttribute('stroke-width', strokeWidth);
    +			this.shadowNode.setAttribute('d', d);
    +		}
    +	}
    +	else
    +	{
    +		this.innerNode.removeAttribute('d');
    +		
    +		if (this.shadowNode != null)
    +		{
    +			this.shadowNode.removeAttribute('d');
    +		}
    +	}
    +	
    +	if (this.isDashed)
    +	{
    +		var phase = Math.max(1, Math.round(3 * this.scale * this.strokewidth));
    +		this.innerNode.setAttribute('stroke-dasharray', phase + ' ' + phase);
    +	}
    +};
    +
    +/**
    + * Function: redrawPath
    + *
    + * Draws the path for this shape. This method uses the <mxPath>
    + * abstraction to paint the shape for VML and SVG.
    + */
    +mxActor.prototype.redrawPath = function(path, x, y, w, h)
    +{
    +	var width = w/3;
    +	path.moveTo(0, h);
    +	path.curveTo(0, 3 * h / 5, 0, 2 * h / 5, w / 2, 2 * h / 5);
    +	path.curveTo(w / 2 - width, 2 * h / 5, w / 2 - width, 0, w / 2, 0);
    +	path.curveTo(w / 2 + width, 0, w / 2 + width, 2 * h / 5, w / 2, 2 * h / 5);
    +	path.curveTo(w, 2 * h / 5, w, 3 * h / 5, w, h);
    +	path.close();
    +};
    diff --git a/javascript/src/js/shape/mxArrow.js b/javascript/src/js/shape/mxArrow.js
    new file mode 100644
    index 000000000..4b44d5a40
    --- /dev/null
    +++ b/javascript/src/js/shape/mxArrow.js
    @@ -0,0 +1,213 @@
    +/**
    + * $Id: mxArrow.js,v 1.29 2012-04-24 13:59:45 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxArrow
    + *
    + * Extends <mxShape> to implement an arrow shape. (The shape
    + * is used to represent edges, not vertices.)
    + * This shape is registered under <mxConstants.SHAPE_ARROW>
    + * in <mxCellRenderer>.
    + * 
    + * Constructor: mxArrow
    + *
    + * Constructs a new arrow shape.
    + * 
    + * Parameters:
    + * 
    + * points - Array of <mxPoints> that define the points. This is stored in
    + * <mxShape.points>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + * arrowWidth - Optional integer that defines the arrow width. Default is
    + * <mxConstants.ARROW_WIDTH>. This is stored in <arrowWidth>.
    + * spacing - Optional integer that defines the spacing between the arrow shape
    + * and its endpoints. Default is <mxConstants.ARROW_SPACING>. This is stored in
    + * <spacing>.
    + * endSize - Optional integer that defines the size of the arrowhead. Default
    + * is <mxConstants.ARROW_SIZE>. This is stored in <endSize>.
    + */
    +function mxArrow(points, fill, stroke, strokewidth, arrowWidth, spacing, endSize)
    +{
    +	this.points = points;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +	this.arrowWidth = (arrowWidth != null) ? arrowWidth : mxConstants.ARROW_WIDTH;
    +	this.spacing = (spacing != null) ? spacing : mxConstants.ARROW_SPACING;
    +	this.endSize = (endSize != null) ? endSize : mxConstants.ARROW_SIZE;
    +};
    +
    +/**
    + * Extends <mxActor>.
    + */
    +mxArrow.prototype = new mxActor();
    +mxArrow.prototype.constructor = mxArrow;
    +
    +/**
    + * Variable: addPipe
    + *
    + * Specifies if a SVG path should be created around any path to increase the
    + * tolerance for mouse events. Default is false since this shape is filled.
    + */
    +mxArrow.prototype.addPipe = false;
    +
    +/**
    + * Variable: enableFill
    + *
    + * Specifies if fill colors should be ignored. This must be set to true for
    + * shapes that are stroked only. Default is true since this shape is filled.
    + */
    +mxArrow.prototype.enableFill = true;
    +
    +/**
    + * Function: configureTransparentBackground
    + * 
    + * Overidden to remove transparent background.
    + */
    +mxArrow.prototype.configureTransparentBackground = function(node)
    +{
    +	// do nothing
    +};
    +
    +/**
    + * Function: createVml
    + *
    + * Extends <mxShape.createVml> to ignore fill if <enableFill> is false.
    + */
    +mxArrow.prototype.createVml = function()
    +{
    +	if (!this.enableFill)
    +	{
    +		this.fill = null;
    +	}
    +	
    +	return mxActor.prototype.createVml.apply(this, arguments);
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Extends <mxActor.createSvg> to ignore fill if <enableFill> is false and
    + * create an event handling shape if <this.addPipe> is true.
    + */
    +mxArrow.prototype.createSvg = function()
    +{
    +	if (!this.enableFill)
    +	{
    +		this.fill = null;
    +	}
    +	
    +	var g = mxActor.prototype.createSvg.apply(this, arguments);
    +	
    +	// Creates an invisible shape around the path for easier
    +	// selection with the mouse. Note: Firefox does not ignore
    +	// the value of the stroke attribute for pointer-events: stroke,
    +	// it does, however, ignore the visibility attribute.
    +	if (this.addPipe)
    +	{
    +		this.pipe = this.createSvgPipe();
    +		g.appendChild(this.pipe);
    +	}
    +	
    +	return g;
    +};
    +
    +/**
    + * Function: reconfigure
    + *
    + * Extends <mxActor.reconfigure> to ignore fill if <enableFill> is false.
    + */
    +mxArrow.prototype.reconfigure = function()
    +{
    +	if (!this.enableFill)
    +	{
    +		this.fill = null;
    +	}
    +	
    +	mxActor.prototype.reconfigure.apply(this, arguments);
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Extends <mxActor.redrawSvg> to update the event handling shape if one
    + * exists.
    + */
    +mxArrow.prototype.redrawSvg = function()
    +{
    +	mxActor.prototype.redrawSvg.apply(this, arguments);
    +	
    +	if (this.pipe != null)
    +	{
    +		var d = this.innerNode.getAttribute('d');
    +		
    +		if (d != null)
    +		{
    +			this.pipe.setAttribute('d', this.innerNode.getAttribute('d'));
    +			var strokeWidth = Math.round(this.strokewidth * this.scale);
    +			this.pipe.setAttribute('stroke-width', strokeWidth + mxShape.prototype.SVG_STROKE_TOLERANCE);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: redrawPath
    + *
    + * Draws the path for this shape. This method uses the <mxPath>
    + * abstraction to paint the shape for VML and SVG.
    + */
    +mxArrow.prototype.redrawPath = function(path, x, y, w, h)
    +{
    +	// All points are offset
    +	path.translate.x -= x;
    +	path.translate.y -= y;
    +
    +	// Geometry of arrow
    +	var spacing = this.spacing * this.scale;
    +	var width = this.arrowWidth * this.scale;
    +	var arrow = this.endSize * this.scale;
    +
    +	// Base vector (between end points)
    +	var p0 = this.points[0];
    +	var pe = this.points[this.points.length - 1];
    +	
    +	var dx = pe.x - p0.x;
    +	var dy = pe.y - p0.y;
    +	var dist = Math.sqrt(dx * dx + dy * dy);
    +	var length = dist - 2 * spacing - arrow;
    +	
    +	// Computes the norm and the inverse norm
    +	var nx = dx / dist;
    +	var ny = dy / dist;
    +	var basex = length * nx;
    +	var basey = length * ny;
    +	var floorx = width * ny/3;
    +	var floory = -width * nx/3;
    +	
    +	// Computes points
    +	var p0x = p0.x - floorx / 2 + spacing * nx;
    +	var p0y = p0.y - floory / 2 + spacing * ny;
    +	var p1x = p0x + floorx;
    +	var p1y = p0y + floory;
    +	var p2x = p1x + basex;
    +	var p2y = p1y + basey;
    +	var p3x = p2x + floorx;
    +	var p3y = p2y + floory;
    +	// p4 not necessary
    +	var p5x = p3x - 3 * floorx;
    +	var p5y = p3y - 3 * floory;
    +	
    +	path.moveTo(p0x, p0y);
    +	path.lineTo(p1x, p1y);
    +	path.lineTo(p2x, p2y);
    +	path.lineTo(p3x, p3y);
    +	path.lineTo(pe.x - spacing * nx, pe.y - spacing * ny);
    +	path.lineTo(p5x, p5y);
    +	path.lineTo(p5x + floorx, p5y + floory);
    +	path.lineTo(p0x, p0y);
    +	path.close();
    +};
    diff --git a/javascript/src/js/shape/mxCloud.js b/javascript/src/js/shape/mxCloud.js
    new file mode 100644
    index 000000000..3893a1b85
    --- /dev/null
    +++ b/javascript/src/js/shape/mxCloud.js
    @@ -0,0 +1,56 @@
    +/**
    + * $Id: mxCloud.js,v 1.12 2011-06-24 11:27:30 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCloud
    + *
    + * Extends <mxActor> to implement a cloud shape.
    + * 
    + * This shape is registered under <mxConstants.SHAPE_CLOUD> in
    + * <mxCellRenderer>.
    + * 
    + * Constructor: mxCloud
    + *
    + * Constructs a new cloud shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxCloud(bounds, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxActor.
    + */
    +mxCloud.prototype = new mxActor();
    +mxCloud.prototype.constructor = mxActor;
    +
    +/**
    + * Function: redrawPath
    + *
    + * Draws the path for this shape. This method uses the <mxPath>
    + * abstraction to paint the shape for VML and SVG.
    + */
    +mxCloud.prototype.redrawPath = function(path, x, y, w, h)
    +{
    +	path.moveTo(0.25 * w, 0.25 * h);
    +	path.curveTo(0.05 * w, 0.25 * h, 0, 0.5 * h, 0.16 * w, 0.55 * h);
    +	path.curveTo(0, 0.66 * h, 0.18 * w, 0.9 * h, 0.31 * w, 0.8 * h);
    +	path.curveTo(0.4 * w, h, 0.7 * w, h, 0.8 * w, 0.8 * h);
    +	path.curveTo(w, 0.8 * h, w, 0.6 * h, 0.875 * w, 0.5 * h);
    +	path.curveTo(w, 0.3 * h, 0.8 * w, 0.1 * h, 0.625 * w, 0.2 * h);
    +	path.curveTo(0.5 * w, 0.05 * h, 0.3 * w, 0.05 * h, 0.25 * w, 0.25 * h);
    +	path.close();
    +};
    diff --git a/javascript/src/js/shape/mxConnector.js b/javascript/src/js/shape/mxConnector.js
    new file mode 100644
    index 000000000..1b5fec40c
    --- /dev/null
    +++ b/javascript/src/js/shape/mxConnector.js
    @@ -0,0 +1,430 @@
    +/**
    + * $Id: mxConnector.js,v 1.78 2012-05-15 13:53:52 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxConnector
    + * 
    + * Extends <mxShape> to implement a connector shape. The connector
    + * shape allows for arrow heads on either side.
    + * 
    + * This shape is registered under <mxConstants.SHAPE_CONNECTOR> in
    + * <mxCellRenderer>.
    + * 
    + * Constructor: mxConnector
    + * 
    + * Constructs a new connector shape.
    + * 
    + * Parameters:
    + * 
    + * points - Array of <mxPoints> that define the points. This is stored in
    + * <mxShape.points>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * Default is 'black'.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxConnector(points, stroke, strokewidth)
    +{
    +	this.points = points;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxConnector.prototype = new mxShape();
    +mxConnector.prototype.constructor = mxConnector;
    +
    +/**
    + * Variable: vmlNodes
    + *
    + * Adds local references to <mxShape.vmlNodes>.
    + */
    +mxConnector.prototype.vmlNodes = mxConnector.prototype.vmlNodes.concat([
    +  'shapeNode', 'start', 'end', 'startStroke', 'endStroke', 'startFill', 'endFill']);
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw in VML in mixed Html mode.
    + */
    +mxConnector.prototype.mixedModeHtml = false;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw as VML in prefer Html mode.
    + */
    +mxConnector.prototype.preferModeHtml = false;
    +
    +/**
    + * Variable: allowCrispMarkers
    + *
    + * Specifies if <mxShape.crisp> should be allowed for markers. Default is false.
    + */
    +mxConnector.prototype.allowCrispMarkers = false;
    +
    +/**
    + * Function: configureHtmlShape
    + *
    + * Overrides <mxShape.configureHtmlShape> to clear the border and background.
    + */
    +mxConnector.prototype.configureHtmlShape = function(node)
    +{
    +	mxShape.prototype.configureHtmlShape.apply(this, arguments);
    +	node.style.borderStyle = '';
    +	node.style.background = '';
    +};
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node to represent this shape.
    + */
    +mxConnector.prototype.createVml = function()
    +{
    +	var node = document.createElement('v:group');
    +	node.style.position = 'absolute';
    +	this.shapeNode = document.createElement('v:shape');
    +	this.updateVmlStrokeColor(this.shapeNode);
    +	this.updateVmlStrokeNode(this.shapeNode);
    +	node.appendChild(this.shapeNode);
    +	this.shapeNode.filled = 'false';
    +
    +	if (this.isShadow)
    +	{
    +		this.createVmlShadow(this.shapeNode);
    +	}
    +	
    +	// Creates the start arrow as an additional child path		
    +	if (this.startArrow != null)
    +	{
    +		this.start = document.createElement('v:shape');
    +		this.start.style.position = 'absolute';
    +		
    +		// Only required for opacity and joinstyle
    +		this.startStroke = document.createElement('v:stroke');
    +		this.startStroke.joinstyle = 'miter';
    +		this.start.appendChild(this.startStroke);
    +		
    +		this.startFill = document.createElement('v:fill');
    +		this.start.appendChild(this.startFill);
    +
    +		node.appendChild(this.start);
    +	}
    +
    +	// Creates the end arrows as an additional child path
    +	if (this.endArrow != null)
    +	{
    +		this.end = document.createElement('v:shape');
    +		this.end.style.position = 'absolute';
    +		
    +		// Only required for opacity and joinstyle
    +		this.endStroke = document.createElement('v:stroke');
    +		this.endStroke.joinstyle = 'miter';
    +		this.end.appendChild(this.endStroke);
    +		
    +		this.endFill = document.createElement('v:fill');
    +		this.end.appendChild(this.endFill);
    +
    +		node.appendChild(this.end);
    +	}
    +	
    +	this.updateVmlMarkerOpacity();
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: updateVmlMarkerOpacity
    + *
    + * Updates the opacity for the markers in VML.
    + */
    +mxConnector.prototype.updateVmlMarkerOpacity = function()
    +{
    +	var op = (this.opacity != null) ? (this.opacity + '%') : '100%';
    +
    +	if (this.start != null)
    +	{
    +		this.startFill.opacity = op;
    +		this.startStroke.opacity = op;
    +	}
    +
    +	if (this.end != null)
    +	{
    +		this.endFill.opacity = op;
    +		this.endStroke.opacity = op;
    +	}
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Redraws this VML shape by invoking <updateVmlShape> on this.node.
    + */
    +mxConnector.prototype.reconfigure = function()
    +{
    +	// Never fill a connector
    +	this.fill = null;
    +	
    +	if (mxUtils.isVml(this.node))
    +	{
    +		// Updates the style of the given shape
    +		// LATER: Check if this can be replaced with redrawVml and
    +		// updating the color, dash pattern and shadow.
    +		this.node.style.visibility = 'hidden';
    +		this.configureVmlShape(this.shapeNode);
    +		this.updateVmlMarkerOpacity();
    +		this.node.style.visibility = 'visible';
    +	}
    +	else
    +	{
    +		mxShape.prototype.reconfigure.apply(this, arguments);
    +	}
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Redraws this VML shape by invoking <updateVmlShape> on this.node.
    + */
    +mxConnector.prototype.redrawVml = function()
    +{
    +	if (this.node != null && this.points != null && this.bounds != null &&
    +		!isNaN(this.bounds.x) && !isNaN(this.bounds.y) &&
    +		!isNaN(this.bounds.width) && !isNaN(this.bounds.height))
    +	{
    +		var w = Math.max(0, Math.round(this.bounds.width));
    +		var h = Math.max(0, Math.round(this.bounds.height));
    +		var cs = w + ',' + h;
    +		w += 'px';
    +		h += 'px';
    +		
    +		// Computes the marker paths before the main path is updated so
    +		// that offsets can be taken into account
    +		if (this.start != null)
    +		{
    +			this.start.style.width = w;
    +			this.start.style.height = h;
    +			this.start.coordsize = cs;
    +			
    +			var p0 = this.points[1];
    +			var pe = this.points[0];
    +			
    +			var size = mxUtils.getNumber(this.style, mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_MARKERSIZE);
    +			this.startOffset = this.redrawMarker(this.start, this.startArrow, p0, pe, this.stroke, size);
    +		}
    +		
    +		if (this.end != null)
    +		{
    +			this.end.style.width = w;
    +			this.end.style.height = h;
    +			this.end.coordsize = cs;
    +			
    +			var n = this.points.length;
    +			var p0 = this.points[n - 2];
    +			var pe = this.points[n - 1];
    +			
    +			var size = mxUtils.getNumber(this.style, mxConstants.STYLE_ENDSIZE, mxConstants.DEFAULT_MARKERSIZE);
    +			this.endOffset = this.redrawMarker(this.end, this.endArrow, p0, pe, this.stroke, size);
    +		}
    +		
    +		this.updateVmlShape(this.node);
    +		this.updateVmlShape(this.shapeNode);
    +		this.shapeNode.filled = 'false';
    +
    +		// Adds custom dash pattern
    +		if (this.isDashed)
    +		{
    +			var pat = mxUtils.getValue(this.style, 'dashStyle', null);
    +			
    +			if (pat != null)
    +			{
    +				this.strokeNode.dashstyle = pat;
    +			}
    +
    +			if (this.shadowStrokeNode != null)
    +			{
    +				this.shadowStrokeNode.dashstyle = this.strokeNode.dashstyle;
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node to represent this shape.
    + */
    +mxConnector.prototype.createSvg = function()
    +{
    +	this.fill = null;
    +	var g = this.createSvgGroup('path');
    +	
    +	// Creates the start arrow as an additional child path		
    +	if (this.startArrow != null)
    +	{
    +		this.start = document.createElementNS(mxConstants.NS_SVG, 'path');
    +		g.appendChild(this.start);
    +	}
    +
    +	// Creates the end arrows as an additional child path
    +	if (this.endArrow != null)
    +	{
    +		this.end = document.createElementNS(mxConstants.NS_SVG, 'path');
    +		g.appendChild(this.end);
    +	}
    +	
    +	// Creates an invisible shape around the path for easier
    +	// selection with the mouse. Note: Firefox does not ignore
    +	// the value of the stroke attribute for pointer-events: stroke,
    +	// it does, however, ignore the visibility attribute.
    +	this.pipe = this.createSvgPipe();
    +	g.appendChild(this.pipe);
    +	
    +	return g;
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxConnector.prototype.redrawSvg = function()
    +{
    +	// Computes the markers first which modifies the coordinates of the
    +	// endpoints to not overlap with the painted marker then updates the actual
    +	// shape for the edge to take the modified endpoints into account.
    +	if (this.points != null && this.points[0] != null)
    +	{
    +		var color = this.innerNode.getAttribute('stroke');
    +		
    +		// Draws the start marker
    +		if (this.start != null)
    +		{
    +			var p0 = this.points[1];
    +			var pe = this.points[0];
    +			
    +			var size = mxUtils.getNumber(this.style, mxConstants.STYLE_STARTSIZE,
    +					mxConstants.DEFAULT_MARKERSIZE);
    +			this.startOffset = this.redrawMarker(this.start,
    +				this.startArrow, p0, pe, color, size);
    +			
    +			if (this.allowCrispMarkers && this.crisp)
    +			{
    +				this.start.setAttribute('shape-rendering', 'crispEdges');
    +			}
    +			else
    +			{
    +				this.start.removeAttribute('shape-rendering');
    +			}
    +		}
    +		
    +		// Draws the end marker
    +		if (this.end != null)
    +		{
    +			var n = this.points.length;
    +			
    +			var p0 = this.points[n - 2];
    +			var pe = this.points[n - 1];
    +
    +			var size = mxUtils.getNumber(this.style, mxConstants.STYLE_ENDSIZE,
    +					mxConstants.DEFAULT_MARKERSIZE);
    +			this.endOffset = this.redrawMarker(this.end,
    +				this.endArrow, p0, pe, color, size);
    +			
    +			if (this.allowCrispMarkers && this.crisp)
    +			{
    +				this.end.setAttribute('shape-rendering', 'crispEdges');
    +			}
    +			else
    +			{
    +				this.end.removeAttribute('shape-rendering');
    +			}
    +		}
    +	}
    +
    +	this.updateSvgShape(this.innerNode);
    +	var d = this.innerNode.getAttribute('d');
    +	
    +	if (d != null)
    +	{
    +		// Updates the tolerance of the invisible shape for event handling
    +		this.pipe.setAttribute('d', this.innerNode.getAttribute('d'));
    +		var strokeWidth = Math.round(this.strokewidth * this.scale);
    +		this.pipe.setAttribute('stroke-width', strokeWidth + mxShape.prototype.SVG_STROKE_TOLERANCE);
    +		
    +		// Updates the shadow
    +		if (this.shadowNode != null)
    +		{
    +			this.shadowNode.setAttribute('transform',  this.getSvgShadowTransform());
    +			this.shadowNode.setAttribute('d',  d);
    +		}
    +	}
    +
    +	// Adds custom dash pattern
    +	if (this.isDashed)
    +	{
    +		var pat = this.createDashPattern(this.scale * this.strokewidth);
    +		
    +		if (pat != null)
    +		{
    +			this.innerNode.setAttribute('stroke-dasharray', pat);
    +		}
    +	}
    +
    +	// Updates the shadow
    +	if (this.shadowNode != null)
    +	{
    +		var pat = this.innerNode.getAttribute('stroke-dasharray');
    +		
    +		if (pat != null)
    +		{
    +			this.shadowNode.setAttribute('stroke-dasharray', pat);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createDashPattern
    + *
    + * Creates a dash pattern for the given factor.
    + */
    +mxConnector.prototype.createDashPattern = function(factor)
    +{
    +	var value = mxUtils.getValue(this.style, 'dashPattern', null);
    +	
    +	if (value != null)
    +	{
    +		var tmp = value.split(' ');
    +		var pat = [];
    +		
    +		for (var i = 0; i < tmp.length; i++)
    +		{
    +			if (tmp[i].length > 0)
    +			{
    +				pat.push(Math.round(Number(tmp[i]) * factor));
    +			}
    +		}
    +		
    +		return pat.join(' ');
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: redrawMarker
    + *
    + * Updates the given SVG or VML marker.
    + */
    +mxConnector.prototype.redrawMarker = function(node, type, p0, pe, color, size)
    +{
    +	return mxMarker.paintMarker(node, type, p0, pe, color, this.strokewidth,
    +			size, this.scale, this.bounds.x, this.bounds.y, this.start == node,
    +			this.style);
    +};
    diff --git a/javascript/src/js/shape/mxCylinder.js b/javascript/src/js/shape/mxCylinder.js
    new file mode 100644
    index 000000000..f30c0d11a
    --- /dev/null
    +++ b/javascript/src/js/shape/mxCylinder.js
    @@ -0,0 +1,285 @@
    +/**
    + * $Id: mxCylinder.js,v 1.34 2012-04-04 07:34:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCylinder
    + *
    + * Extends <mxShape> to implement an cylinder shape. If a
    + * custom shape with one filled area and an overlay path is
    + * needed, then this shape's <redrawPath> should be overridden.
    + * This shape is registered under <mxConstants.SHAPE_CYLINDER>
    + * in <mxCellRenderer>.
    + * 
    + * Constructor: mxCylinder
    + *
    + * Constructs a new cylinder shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxCylinder(bounds, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxCylinder.prototype = new mxShape();
    +mxCylinder.prototype.constructor = mxCylinder;
    +
    +/**
    + * Variable: vmlNodes
    + *
    + * Adds local references to <mxShape.vmlNodes>.
    + */
    +mxCylinder.prototype.vmlNodes = mxCylinder.prototype.vmlNodes.concat(['background', 'foreground']);
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw in VML in mixed Html mode.
    + */
    +mxCylinder.prototype.mixedModeHtml = false;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw as VML in prefer Html mode.
    + */
    +mxCylinder.prototype.preferModeHtml = false;
    +
    +/**
    + * Variable: strokedBackground
    + *
    + * Specifies if the background should be stroked. Default is true.
    + */
    +mxCylinder.prototype.strokedBackground = true;
    +
    +/**
    + * Variable: maxHeight
    + *
    + * Defines the maximum height of the top and bottom part
    + * of the cylinder shape.
    + */
    +mxCylinder.prototype.maxHeight = 40;
    +
    +/**
    + * Function: create
    + *
    + * Overrides the method to make sure the <stroke> is never
    + * null. If it is null is will be assigned the <fill> color.
    + */
    +mxCylinder.prototype.create = function(container)
    +{
    +	if (this.stroke == null)
    +	{
    +		this.stroke = this.fill;
    +	}
    +	
    +	// Calls superclass implementation of create
    +	return mxShape.prototype.create.apply(this, arguments);
    +};
    +
    +/**
    + * Function: reconfigure
    + *
    + * Overrides the method to make sure the <stroke> is applied to the foreground.
    + */
    +mxCylinder.prototype.reconfigure = function()
    +{
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		this.configureSvgShape(this.foreground);
    +		this.foreground.setAttribute('fill', 'none');
    +	}
    +	else if (mxUtils.isVml(this.node))
    +	{
    +		this.configureVmlShape(this.background);
    +		this.configureVmlShape(this.foreground);
    +	}
    +	
    +	mxShape.prototype.reconfigure.apply(this);
    +};
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node to represent this shape.
    + */
    +mxCylinder.prototype.createVml = function()
    +{
    +	var node = document.createElement('v:group');
    +
    +	// Draws the background
    +	this.background = document.createElement('v:shape');
    +	this.label = this.background;
    +	this.configureVmlShape(this.background);
    +	node.appendChild(this.background);
    +	
    +	// Ignores values that only apply to the background
    +	this.fill = null;
    +	this.isShadow = false;
    +	this.configureVmlShape(node);
    +	
    +	// Draws the foreground
    +	this.foreground = document.createElement('v:shape');
    +	this.configureVmlShape(this.foreground);
    +	
    +	// To match SVG defaults jointsyle miter, miterlimit 4
    +	this.fgStrokeNode = document.createElement('v:stroke');
    +	this.fgStrokeNode.joinstyle = 'miter';
    +	this.fgStrokeNode.miterlimit = 4;
    +	this.foreground.appendChild(this.fgStrokeNode);
    +	
    +	node.appendChild(this.foreground);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Updates the VML node(s) to reflect the latest bounds and scale.
    + */
    +mxCylinder.prototype.redrawVml = function()
    +{
    +	this.updateVmlShape(this.node);
    +	this.updateVmlShape(this.background);
    +	this.updateVmlShape(this.foreground);
    +	this.background.path = this.createPath(false);
    +	this.foreground.path = this.createPath(true);
    +	
    +	this.fgStrokeNode.dashstyle = this.strokeNode.dashstyle;
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxCylinder.prototype.createSvg = function()
    +{
    +	var g = this.createSvgGroup('path');
    +	this.foreground = document.createElementNS(mxConstants.NS_SVG, 'path');
    +	
    +	if (this.stroke != null && this.stroke != mxConstants.NONE)
    +	{
    +		this.foreground.setAttribute('stroke', this.stroke);
    +	}
    +	else
    +	{
    +		this.foreground.setAttribute('stroke', 'none');
    +	}
    +	
    +	this.foreground.setAttribute('fill', 'none');
    +	g.appendChild(this.foreground);
    +	
    +	return g;
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxCylinder.prototype.redrawSvg = function()
    +{
    +	var strokeWidth = Math.round(Math.max(1, this.strokewidth * this.scale));
    +	this.innerNode.setAttribute('stroke-width', strokeWidth);
    +	
    +	if (this.crisp)
    +	{
    +		this.innerNode.setAttribute('shape-rendering', 'crispEdges');
    +		this.foreground.setAttribute('shape-rendering', 'crispEdges');
    +	}
    +	else
    +	{
    +		this.innerNode.removeAttribute('shape-rendering');
    +		this.foreground.removeAttribute('shape-rendering');
    +	}
    +
    +	// Paints background
    +	var d = this.createPath(false);
    +	
    +	if (d.length > 0)
    +	{
    +		this.innerNode.setAttribute('d', d);
    +	}
    +	else
    +	{
    +		this.innerNode.removeAttribute('d');
    +	}
    +	
    +	// Stroked background
    +	if (!this.strokedBackground)
    +	{
    +		this.innerNode.setAttribute('stroke', 'none');
    +	}
    +	
    +	// Paints shadow
    +	if (this.shadowNode != null)
    +	{
    +		this.shadowNode.setAttribute('stroke-width', strokeWidth);
    +		this.shadowNode.setAttribute('d', d);
    +		this.shadowNode.setAttribute('transform',  this.getSvgShadowTransform());
    +	}
    +
    +	// Paints foreground
    +	d = this.createPath(true);
    +	
    +	if (d.length > 0)
    +	{
    +		this.foreground.setAttribute('stroke-width', strokeWidth);
    +		this.foreground.setAttribute('d', d);
    +	}
    +	else
    +	{
    +		this.foreground.removeAttribute('d');
    +	}
    +	
    +
    +	if (this.isDashed)
    +	{
    +		var phase = Math.max(1, Math.round(3 * this.scale * this.strokewidth));
    +		this.innerNode.setAttribute('stroke-dasharray', phase + ' ' + phase);
    +		this.foreground.setAttribute('stroke-dasharray', phase + ' ' + phase);
    +	}
    +};
    +
    +/**
    + * Function: redrawPath
    + *
    + * Draws the path for this shape. This method uses the <mxPath>
    + * abstraction to paint the shape for VML and SVG.
    + */
    +mxCylinder.prototype.redrawPath = function(path, x, y, w, h, isForeground)
    +{
    +	var dy = Math.min(this.maxHeight, Math.round(h / 5));
    +	
    +	if (isForeground)
    +	{
    +		path.moveTo(0, dy);
    +		path.curveTo(0, 2 * dy, w, 2 * dy, w, dy);
    +	}
    +	else
    +	{
    +		path.moveTo(0, dy);
    +		path.curveTo(0, -dy / 3, w, -dy / 3, w, dy);
    +		path.lineTo(w, h - dy);
    +		path.curveTo(w, h + dy / 3, 0, h + dy / 3, 0, h - dy);
    +		path.close();
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxDoubleEllipse.js b/javascript/src/js/shape/mxDoubleEllipse.js
    new file mode 100644
    index 000000000..e2bac9c32
    --- /dev/null
    +++ b/javascript/src/js/shape/mxDoubleEllipse.js
    @@ -0,0 +1,199 @@
    +/**
    + * $Id: mxDoubleEllipse.js,v 1.18 2012-04-04 07:34:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxDoubleEllipse
    + *
    + * Extends <mxShape> to implement a double ellipse shape.
    + * This shape is registered under <mxConstants.SHAPE_DOUBLE_ELLIPSE>
    + * in <mxCellRenderer>.
    + * 
    + * Constructor: mxDoubleEllipse
    + *
    + * Constructs a new ellipse shape.
    + *
    + * Parameters:
    + *
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxDoubleEllipse(bounds, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxDoubleEllipse.prototype = new mxShape();
    +mxDoubleEllipse.prototype.constructor = mxDoubleEllipse;
    +
    +/**
    + * Variable: vmlNodes
    + *
    + * Adds local references to <mxShape.vmlNodes>.
    + */
    +mxDoubleEllipse.prototype.vmlNodes = mxDoubleEllipse.prototype.vmlNodes.concat(['background', 'foreground']);
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw in VML in mixed Html mode.
    + */
    +mxDoubleEllipse.prototype.mixedModeHtml = false;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw as VML in prefer Html mode.
    + */
    +mxDoubleEllipse.prototype.preferModeHtml = false;
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node to represent this shape.
    + */
    +mxDoubleEllipse.prototype.createVml = function()
    +{
    +	var node = document.createElement('v:group');
    +
    +	// Draws the background
    +	this.background = document.createElement('v:arc');
    +	this.background.startangle = '0';
    +	this.background.endangle = '360';
    +	this.configureVmlShape(this.background);
    +
    +	node.appendChild(this.background);
    +	
    +	// Ignores values that only apply to the background
    +	this.label = this.background;
    +	this.isShadow = false;
    +	this.fill = null;
    +
    +	// Draws the foreground
    +	this.foreground = document.createElement('v:oval');
    +	this.configureVmlShape(this.foreground);
    +	
    +	node.appendChild(this.foreground);
    +	
    +	this.stroke = null;
    +	this.configureVmlShape(node);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Updates the VML node(s) to reflect the latest bounds and scale.
    + */
    +mxDoubleEllipse.prototype.redrawVml = function()
    +{
    +	this.updateVmlShape(this.node);
    +	this.updateVmlShape(this.background);
    +	this.updateVmlShape(this.foreground);
    +
    +	var s = this.strokewidth * this.scale;
    +	var inset = 3 + s;
    +	var w = Math.round(this.bounds.width);
    +	var h = Math.round(this.bounds.height);
    +	
    +	this.foreground.style.top = inset + 'px'; // relative
    +	this.foreground.style.left = inset + 'px'; // relative
    +	this.foreground.style.width = Math.max(0, w - 2 * inset) + 'px';
    +	this.foreground.style.height = Math.max(0, h - 2 * inset) + 'px';
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxDoubleEllipse.prototype.createSvg = function()
    +{
    +	var g = this.createSvgGroup('ellipse');
    +	this.foreground = document.createElementNS(mxConstants.NS_SVG, 'ellipse');
    +	
    +	if (this.stroke != null)
    +	{
    +		this.foreground.setAttribute('stroke', this.stroke);
    +	}
    +	else
    +	{
    +		this.foreground.setAttribute('stroke', 'none');
    +	}
    +	
    +	this.foreground.setAttribute('fill', 'none');
    +	g.appendChild(this.foreground);
    +	
    +	return g;
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxDoubleEllipse.prototype.redrawSvg = function()
    +{
    +	var s = this.strokewidth * this.scale;
    +	
    +	if (this.crisp)
    +	{
    +		this.innerNode.setAttribute('shape-rendering', 'crispEdges');
    +		this.foreground.setAttribute('shape-rendering', 'crispEdges');
    +	}
    +	else
    +	{
    +		this.innerNode.removeAttribute('shape-rendering');
    +		this.foreground.removeAttribute('shape-rendering');
    +	}
    +	
    +	this.updateSvgNode(this.innerNode);
    +	this.updateSvgNode(this.shadowNode);
    +	this.updateSvgNode(this.foreground, 3 * this.scale + s);
    +	
    +	if (this.isDashed)
    +	{
    +		var phase = Math.max(1, Math.round(3 * this.scale * this.strokewidth));
    +		this.innerNode.setAttribute('stroke-dasharray', phase + ' ' + phase);
    +	}
    +};
    +
    +/**
    + * Function: updateSvgNode
    + *
    + * Updates the given node to reflect the new <bounds> and <scale>.
    + */
    +mxDoubleEllipse.prototype.updateSvgNode = function(node, inset)
    +{
    +	inset = (inset != null) ? inset : 0;
    +	
    +	if (node != null)
    +	{
    +		var strokeWidth = Math.round(Math.max(1, this.strokewidth * this.scale));
    +		node.setAttribute('stroke-width', strokeWidth);
    +		
    +		node.setAttribute('cx', this.bounds.x + this.bounds.width / 2);
    +		node.setAttribute('cy', this.bounds.y + this.bounds.height / 2);
    +		node.setAttribute('rx', Math.max(0, this.bounds.width / 2 - inset));
    +		node.setAttribute('ry', Math.max(0, this.bounds.height / 2 - inset));
    +
    +		// Updates the transform of the shadow
    +		if (this.shadowNode != null)
    +		{
    +			this.shadowNode.setAttribute('transform',  this.getSvgShadowTransform());
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxEllipse.js b/javascript/src/js/shape/mxEllipse.js
    new file mode 100644
    index 000000000..f3882cff9
    --- /dev/null
    +++ b/javascript/src/js/shape/mxEllipse.js
    @@ -0,0 +1,132 @@
    +/**
    + * $Id: mxEllipse.js,v 1.20 2012-04-04 07:34:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxEllipse
    + *
    + * Extends <mxShape> to implement an ellipse shape.
    + * This shape is registered under <mxConstants.SHAPE_ELLIPSE>
    + * in <mxCellRenderer>.
    + * 
    + * Constructor: mxEllipse
    + *
    + * Constructs a new ellipse shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxEllipse(bounds, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxEllipse.prototype = new mxShape();
    +mxEllipse.prototype.constructor = mxEllipse;
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw in VML in mixed Html mode.
    + */
    +mxEllipse.prototype.mixedModeHtml = false;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw as VML in prefer Html mode.
    + */
    +mxEllipse.prototype.preferModeHtml = false;
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node to represent this shape.
    + */
    +mxEllipse.prototype.createVml = function()
    +{
    +	// Uses an arc not an oval to make sure the
    +	// textbox fills out the outer bounds of the
    +	// circle, not just the inner rectangle
    +	var node = document.createElement('v:arc');
    +	node.startangle = '0';
    +	node.endangle = '360';
    +	this.configureVmlShape(node);
    +
    +	return node;
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxEllipse.prototype.createSvg = function()
    +{
    +	return this.createSvgGroup('ellipse');
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxEllipse.prototype.redrawSvg = function()
    +{
    +	if (this.crisp)
    +	{
    +		this.innerNode.setAttribute('shape-rendering', 'crispEdges');
    +	}
    +	else
    +	{
    +		this.innerNode.removeAttribute('shape-rendering');
    +	}
    +	
    +	this.updateSvgNode(this.innerNode);
    +	this.updateSvgNode(this.shadowNode);
    +};
    +
    +/**
    + * Function: updateSvgNode
    + *
    + * Updates the given node to reflect the new <bounds> and <scale>.
    + */
    +mxEllipse.prototype.updateSvgNode = function(node)
    +{
    +	if (node != null)
    +	{
    +		var strokeWidth = Math.round(Math.max(1, this.strokewidth * this.scale));
    +		node.setAttribute('stroke-width', strokeWidth);
    +		
    +		node.setAttribute('cx', this.bounds.x + this.bounds.width / 2);
    +		node.setAttribute('cy', this.bounds.y + this.bounds.height / 2);
    +		node.setAttribute('rx', this.bounds.width / 2);
    +		node.setAttribute('ry', this.bounds.height / 2);
    +		
    +		// Updates the shadow offset
    +		if (this.shadowNode != null)
    +		{
    +			this.shadowNode.setAttribute('transform',  this.getSvgShadowTransform());
    +		}
    +
    +		if (this.isDashed)
    +		{
    +			var phase = Math.max(1, Math.round(3 * this.scale * this.strokewidth));
    +			node.setAttribute('stroke-dasharray', phase + ' ' + phase);
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxHexagon.js b/javascript/src/js/shape/mxHexagon.js
    new file mode 100644
    index 000000000..7fa45a31b
    --- /dev/null
    +++ b/javascript/src/js/shape/mxHexagon.js
    @@ -0,0 +1,37 @@
    +/**
    + * $Id: mxHexagon.js,v 1.8 2011-09-02 10:01:00 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxHexagon
    + * 
    + * Implementation of the hexagon shape.
    + * 
    + * Constructor: mxHexagon
    + *
    + * Constructs a new hexagon shape.
    + */
    +function mxHexagon() { };
    +
    +/**
    + * Extends <mxActor>.
    + */
    +mxHexagon.prototype = new mxActor();
    +mxHexagon.prototype.constructor = mxHexagon;
    +
    +/**
    + * Function: redrawPath
    + *
    + * Draws the path for this shape. This method uses the <mxPath>
    + * abstraction to paint the shape for VML and SVG.
    + */
    +mxHexagon.prototype.redrawPath = function(path, x, y, w, h)
    +{
    +	path.moveTo(0.25 * w, 0);
    +	path.lineTo(0.75 * w, 0);
    +	path.lineTo(w, 0.5 * h);
    +	path.lineTo(0.75 * w, h);
    +	path.lineTo(0.25 * w, h);
    +	path.lineTo(0, 0.5 * h);
    +	path.close();
    +};
    diff --git a/javascript/src/js/shape/mxImageShape.js b/javascript/src/js/shape/mxImageShape.js
    new file mode 100644
    index 000000000..2f1eab014
    --- /dev/null
    +++ b/javascript/src/js/shape/mxImageShape.js
    @@ -0,0 +1,405 @@
    +/**
    + * $Id: mxImageShape.js,v 1.67 2012-04-22 10:16:23 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxImageShape
    + *
    + * Extends <mxShape> to implement an image shape. This shape is registered
    + * under <mxConstants.SHAPE_IMAGE> in <mxCellRenderer>.
    + * 
    + * Constructor: mxImageShape
    + * 
    + * Constructs a new image shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * image - String that specifies the URL of the image. This is stored in
    + * <image>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 0. This is stored in <strokewidth>.
    + */
    +function mxImageShape(bounds, image, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.image = (image != null) ? image : '';
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +	this.isShadow = false;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxImageShape.prototype = new mxShape();
    +mxImageShape.prototype.constructor = mxImageShape;
    +
    +/**
    + * Variable: crisp
    + * 
    + * Disables crisp rendering via attributes. Image quality defines the rendering
    + * quality. Default is false.
    + */
    +mxImageShape.prototype.crisp = false;
    +
    +/**
    + * Variable: preserveImageAspect
    + *
    + * Switch to preserve image aspect. Default is true.
    + */
    +mxImageShape.prototype.preserveImageAspect = true;
    +
    +/**
    + * Function: apply
    + * 
    + * Overrides <mxShape.apply> to replace the fill and stroke colors with the
    + * respective values from <mxConstants.STYLE_IMAGE_BACKGROUND> and
    + * <mxConstants.STYLE_IMAGE_BORDER>.
    + * 
    + * Applies the style of the given <mxCellState> to the shape. This
    + * implementation assigns the following styles to local fields:
    + * 
    + * - <mxConstants.STYLE_IMAGE_BACKGROUND> => fill
    + * - <mxConstants.STYLE_IMAGE_BORDER> => stroke
    + *
    + * Parameters:
    + *
    + * state - <mxCellState> of the corresponding cell.
    + */
    +mxImageShape.prototype.apply = function(state)
    +{
    +	mxShape.prototype.apply.apply(this, arguments);
    +	
    +	this.fill = null;
    +	this.stroke = null;
    +
    +	if (this.style != null)
    +	{
    +		this.fill = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_BACKGROUND);
    +		this.stroke = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_BORDER);
    +		this.preserveImageAspect = mxUtils.getNumber(this.style, mxConstants.STYLE_IMAGE_ASPECT, 1) == 1;
    +		this.gradient = null;
    +	}
    +};
    +
    +/**
    + * Function: create
    + *
    + * Override to create HTML regardless of gradient and
    + * rounded property.
    + */
    +mxImageShape.prototype.create = function()
    +{
    +	var node = null;
    +
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		// Workaround: To avoid control-click on images in Firefox to
    +		// open the image in a new window, this image needs to be placed
    +		// inside a group with a rectangle in the foreground which has a
    +		// fill property but no visibility and absorbs all events.
    +		// The image in turn must have all pointer-events disabled.
    +		node = this.createSvgGroup('rect');
    +		this.innerNode.setAttribute('visibility', 'hidden');
    +		this.innerNode.setAttribute('pointer-events', 'fill');
    +		
    +		this.imageNode = document.createElementNS(mxConstants.NS_SVG, 'image');
    +		this.imageNode.setAttributeNS(mxConstants.NS_XLINK, 'xlink:href', this.image);
    +		this.imageNode.setAttribute('style', 'pointer-events:none');
    +		this.configureSvgShape(this.imageNode);
    +		
    +		// Removes invalid attributes on the image node
    +		this.imageNode.removeAttribute('stroke');
    +		this.imageNode.removeAttribute('fill');
    +		node.insertBefore(this.imageNode, this.innerNode);
    +		
    +		// Inserts node for background and border color rendering
    +		if ((this.fill != null && this.fill != mxConstants.NONE) ||
    +			(this.stroke != null && this.stroke != mxConstants.NONE))
    +		{
    +			this.bg = document.createElementNS(mxConstants.NS_SVG, 'rect');
    +			node.insertBefore(this.bg, node.firstChild);
    +		}
    +		
    +		// Preserves image aspect as default
    +		if (!this.preserveImageAspect)
    +		{
    +			this.imageNode.setAttribute('preserveAspectRatio', 'none');
    +		}
    +	}
    +	else
    +	{
    +		// Uses VML image for all non-embedded images in IE to support better
    +		// image flipping quality and avoid workarounds for event redirection
    +		var flipH = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_FLIPH, 0) == 1;
    +		var flipV = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_FLIPV, 0) == 1;
    +        var img = this.image.toUpperCase();
    +		
    +		// Handles non-flipped embedded images in IE6
    +		if (mxClient.IS_IE && !flipH && !flipV && img.substring(0, 6) == 'MHTML:')
    +	    {
    +			// LATER: Check if outer DIV is required or if aspect can be implemented
    +			// by adding an offset to the image loading or the background via CSS.
    +			this.imageNode = document.createElement('DIV');
    +			this.imageNode.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader ' +
    +				'(src=\'' + this.image + '\', sizingMethod=\'scale\')';
    +			
    +			node = document.createElement('DIV');
    +			this.configureHtmlShape(node);
    +			node.appendChild(this.imageNode);
    +		}
    +		// Handles all data URL images and HTML images for IE9 with no VML support (in SVG mode)
    +		else if (!mxClient.IS_IE || img.substring(0, 5) == 'DATA:' || document.documentMode >= 9)
    +		{
    +			this.imageNode = document.createElement('img');
    +			this.imageNode.setAttribute('src', this.image);
    +			this.imageNode.setAttribute('border', '0');
    +			this.imageNode.style.position = 'absolute';
    +			this.imageNode.style.width = '100%';
    +			this.imageNode.style.height = '100%';
    +
    +			node = document.createElement('DIV');
    +			this.configureHtmlShape(node);
    +			node.appendChild(this.imageNode);
    +		}
    +		else
    +		{
    +			this.imageNode = document.createElement('v:image');
    +			this.imageNode.style.position = 'absolute';
    +			this.imageNode.src = this.image;
    +
    +			// Needed to draw the background and border but known
    +			// to cause problems in print preview with https
    +			node = document.createElement('DIV');
    +			this.configureHtmlShape(node);
    +			
    +			// Workaround for cropped images in IE7/8
    +			node.style.overflow = 'visible';
    +			node.appendChild(this.imageNode);
    +		}
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: updateAspect
    + * 
    + * Updates the aspect of the image for the given image width and height.
    + */
    +mxImageShape.prototype.updateAspect = function(w, h)
    +{
    +	var s = Math.min(this.bounds.width / w, this.bounds.height / h);
    +	w = Math.max(0, Math.round(w * s));
    +	h = Math.max(0, Math.round(h * s));
    +	var x0 = Math.max(0, Math.round((this.bounds.width - w) / 2));
    +	var y0 = Math.max(0, Math.round((this.bounds.height - h) / 2));
    +	var st = this.imageNode.style;
    +	
    +	// Positions the child node relative to the parent node
    +	if (this.imageNode.parentNode == this.node)
    +	{
    +		// Workaround for duplicate offset in VML in IE8 is
    +		// to use parent padding instead of left and top
    +		this.node.style.paddingLeft = x0 + 'px';
    +		this.node.style.paddingTop = y0 + 'px';
    +	}
    +	else
    +	{
    +		st.left = (Math.round(this.bounds.x) + x0) + 'px';
    +		st.top = (Math.round(this.bounds.y) + y0) + 'px';
    +	}
    +	
    +	st.width = w + 'px';
    +	st.height = h + 'px';
    +};
    +
    +/**
    + * Function: scheduleUpdateAspect
    + * 
    + * Schedules an asynchronous <updateAspect> using the current <image>.
    + */
    +mxImageShape.prototype.scheduleUpdateAspect = function()
    +{
    +	var img = new Image();
    +	
    +	img.onload = mxUtils.bind(this, function()
    +	{
    +		mxImageShape.prototype.updateAspect.call(this, img.width, img.height);
    +	});
    +	
    +	img.src = this.image;
    +};
    +
    +/**
    + * Function: redraw
    + * 
    + * Overrides <mxShape.redraw> to preserve the aspect ratio of images.
    + */
    +mxImageShape.prototype.redraw = function()
    +{
    +	mxShape.prototype.redraw.apply(this, arguments);
    +	
    +	if (this.imageNode != null && this.bounds != null)
    +	{
    +		// Horizontal and vertical flipping
    +		var flipH = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_FLIPH, 0) == 1;
    +		var flipV = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_FLIPV, 0) == 1;
    +		
    +		if (this.dialect == mxConstants.DIALECT_SVG)
    +		{
    +			var sx = 1;
    +			var sy = 1;
    +			var dx = 0;
    +			var dy = 0;
    +			
    +			if (flipH)
    +			{
    +				sx = -1;
    +				dx = -this.bounds.width - 2 * this.bounds.x;
    +			}
    +			
    +			if (flipV)
    +			{
    +				sy = -1;
    +				dy = -this.bounds.height - 2 * this.bounds.y;
    +			}
    +			
    +			// Adds image tansformation to existing transforms
    +			var transform = (this.imageNode.getAttribute('transform') || '') +
    +				' scale('+sx+' '+sy+')'+ ' translate('+dx+' '+dy+')';
    +			this.imageNode.setAttribute('transform', transform);
    +		}
    +		else
    +		{
    +			// Sets default size (no aspect)
    +			if (this.imageNode.nodeName != 'DIV')
    +			{
    +				this.imageNode.style.width = Math.max(0, Math.round(this.bounds.width)) + 'px';
    +				this.imageNode.style.height = Math.max(0, Math.round(this.bounds.height)) + 'px';
    +			}
    +
    +			// Preserves image aspect
    +			if (this.preserveImageAspect)
    +			{
    +				this.scheduleUpdateAspect();
    +			} 
    +
    +			if (flipH || flipV)
    +			{
    +				if (mxUtils.isVml(this.imageNode))
    +				{
    +					if (flipH && flipV)
    +					{
    +						this.imageNode.style.rotation = '180';
    +					}
    +					else if (flipH)
    +					{
    +						this.imageNode.style.flip = 'x';
    +					}
    +					else
    +					{
    +						this.imageNode.style.flip = 'y';
    +					}
    +				}
    +				else
    +				{
    +					var filter = (this.imageNode.nodeName == 'DIV') ? 'progid:DXImageTransform.Microsoft.AlphaImageLoader ' +
    +						'(src=\'' + this.image + '\', sizingMethod=\'scale\')' : '';
    +	
    +					if (flipH && flipV)
    +					{
    +						filter += 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)';
    +					}
    +					else if (flipH)
    +					{
    +						filter += 'progid:DXImageTransform.Microsoft.BasicImage(mirror=1)';
    +					}
    +					else
    +					{
    +						filter += 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)';
    +					}
    +	
    +					if (this.imageNode.style.filter != filter)
    +					{
    +						this.imageNode.style.filter = filter;
    +					}
    +				}
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: configureTransparentBackground
    + * 
    + * Workaround for security warning in IE if this is used in the overlay pane
    + * of a diagram. 
    + */
    +mxImageShape.prototype.configureTransparentBackground = function(node)
    +{
    +	// do nothing
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxImageShape.prototype.redrawSvg = function()
    +{
    +	this.updateSvgShape(this.innerNode);
    +	this.updateSvgShape(this.imageNode);
    +	
    +	if (this.bg != null)
    +	{
    +		this.updateSvgShape(this.bg);
    +		
    +		if (this.fill != null)
    +		{
    +			this.bg.setAttribute('fill', this.fill);
    +		}
    +		else
    +		{
    +			this.bg.setAttribute('fill', 'none');
    +		}
    +		
    +		if (this.stroke != null)
    +		{
    +			this.bg.setAttribute('stroke', this.stroke);
    +		}
    +		else
    +		{
    +			this.bg.setAttribute('stroke', 'none');
    +		}
    +		
    +		this.bg.setAttribute('shape-rendering', 'crispEdges');
    +	}
    +};
    +
    +/**
    + * Function: configureSvgShape
    + *
    + * Extends method to set opacity on images.
    + */
    +mxImageShape.prototype.configureSvgShape = function(node)
    +{
    +	mxShape.prototype.configureSvgShape.apply(this, arguments);
    +	
    +	if (this.imageNode != null)
    +	{
    +		if (this.opacity != null)
    +		{
    +			this.imageNode.setAttribute('opacity', this.opacity / 100);
    +		}
    +		else
    +		{
    +			this.imageNode.removeAttribute('opacity');
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxLabel.js b/javascript/src/js/shape/mxLabel.js
    new file mode 100644
    index 000000000..900bc1b1d
    --- /dev/null
    +++ b/javascript/src/js/shape/mxLabel.js
    @@ -0,0 +1,426 @@
    +/**
    + * $Id: mxLabel.js,v 1.39 2011-11-23 17:21:27 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxLabel
    + *
    + * Extends <mxShape> to implement an image shape with a label.
    + * This shape is registered under <mxConstants.SHAPE_LABEL> in
    + * <mxCellRenderer>.
    + * 
    + * Constructor: mxLabel
    + *
    + * Constructs a new label shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxLabel(bounds, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxLabel.prototype = new mxShape();
    +mxLabel.prototype.constructor = mxLabel;
    +
    +/**
    + * Variable: vmlNodes
    + *
    + * Adds local references to <mxShape.vmlNodes>.
    + */
    +mxLabel.prototype.vmlNodes = mxLabel.prototype.vmlNodes.concat(['label', 'imageNode', 'indicatorImageNode', 'rectNode']);
    +
    +/**
    + * Variable: imageSize
    + *
    + * Default width and height for the image. Default is
    + * <mxConstants.DEFAULT_IMAGESIZE>.
    + */
    +mxLabel.prototype.imageSize = mxConstants.DEFAULT_IMAGESIZE;
    +
    +/**
    + * Variable: spacing
    + *
    + * Default value for spacing. Default is 2.
    + */
    +mxLabel.prototype.spacing = 2;
    +
    +/**
    + * Variable: indicatorSize
    + *
    + * Default width and height for the indicicator. Default is
    + * 10.
    + */
    +mxLabel.prototype.indicatorSize = 10;
    +
    +/**
    + * Variable: indicatorSpacing
    + *
    + * Default spacing between image and indicator. Default is 2.
    + */
    +mxLabel.prototype.indicatorSpacing = 2;
    +
    +/**
    + * Variable: opaqueVmlImages
    + * 
    + * Specifies if all VML images should be rendered without transparency, that
    + * is, if the current opacity should be ignored for images. Default is false.
    + */
    +mxLabel.prototype.opaqueVmlImages = false;
    +
    +/**
    + * Function: init
    + *
    + * Initializes the shape and adds it to the container. This function is
    + * overridden so that the node is already in the DOM when the indicator
    + * is added. This is required to access the ownerSVGelement of the
    + * container in the init function of the indicator.
    + */
    +mxLabel.prototype.init = function(container)
    +{
    +	mxShape.prototype.init.apply(this, arguments);
    +	
    +	// Creates the indicator shape after the node was added to the DOM
    +	if (this.indicatorColor != null && this.indicatorShape != null)
    +	{
    +		this.indicator = new this.indicatorShape();
    +		this.indicator.dialect = this.dialect;
    +		this.indicator.bounds = this.bounds;
    +		this.indicator.fill = this.indicatorColor;
    +		this.indicator.stroke = this.indicatorColor;
    +		this.indicator.gradient = this.indicatorGradientColor;
    +		this.indicator.direction = this.indicatorDirection;
    +		this.indicator.init(this.node);
    +		this.indicatorShape = null;
    +	}
    +};
    +
    +/**
    + * Function: reconfigure
    + *
    + * Reconfigures this shape. This will update the colors of the indicator
    + * and reconfigure it if required.
    + */
    +mxLabel.prototype.reconfigure = function()
    +{
    +	mxShape.prototype.reconfigure.apply(this);
    +	
    +	if (this.indicator != null)
    +	{
    +		this.indicator.fill = this.indicatorColor;
    +		this.indicator.stroke = this.indicatorColor;
    +		this.indicator.gradient = this.indicatorGradientColor;
    +		this.indicator.direction = this.indicatorDirection;
    +		this.indicator.reconfigure();
    +	}
    +};
    +
    +/**
    + * Function: createHtml
    + *
    + * Creates and returns the HTML node to represent this shape.
    + */
    +mxLabel.prototype.createHtml = function()
    +{
    +	var name = 'DIV';
    +	var node = document.createElement(name);
    +	this.configureHtmlShape(node);
    +	
    +	// Adds a small subshape inside this shape
    +	if (this.indicatorImage != null)
    +	{
    +		this.indicatorImageNode = mxUtils.createImage(this.indicatorImage);
    +		this.indicatorImageNode.style.position = 'absolute';
    +		node.appendChild(this.indicatorImageNode);
    +	}
    +	
    +	// Adds an image node to the div
    +	if (this.image != null)
    +	{
    +		this.imageNode = mxUtils.createImage(this.image);
    +		this.stroke = null;
    +		this.configureHtmlShape(this.imageNode);
    +		mxUtils.setOpacity(this.imageNode, '100');
    +		node.appendChild(this.imageNode);
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node to represent this shape.
    + */
    +mxLabel.prototype.createVml = function()
    +{
    +	var node = document.createElement('v:group');
    +
    +	// Background
    +	var name = (this.isRounded) ? 'v:roundrect' : 'v:rect';
    +	this.rectNode = document.createElement(name);
    +	this.configureVmlShape(this.rectNode);
    +	
    +	// Disables the shadow and configures the enclosing group
    +	this.isShadow = false;
    +	this.configureVmlShape(node);
    +	node.coordorigin = '0,0';
    +	node.appendChild(this.rectNode);
    +	
    +	// Adds a small subshape inside this shape
    +	if (this.indicatorImage != null)
    +	{
    +		this.indicatorImageNode = this.createVmlImage(this.indicatorImage, (this.opaqueVmlImages) ? null : this.opacity);
    +		node.appendChild(this.indicatorImageNode);
    +	}
    +	
    +	// Adds an image node to the div
    +	if (this.image != null)
    +	{
    +		this.imageNode = this.createVmlImage(this.image, (this.opaqueVmlImages) ? null : this.opacity);
    +		node.appendChild(this.imageNode);
    +	}
    +	
    +	// Container for the label on top of everything
    +	this.label = document.createElement('v:rect');
    +	this.label.style.top = '0px'; // relative
    +	this.label.style.left = '0px'; // relative
    +	this.label.filled = 'false';
    +	this.label.stroked = 'false';
    +	node.appendChild(this.label);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: createVmlImage
    + *
    + * Creates an image node for the given image src and opacity to be used in VML.
    + */
    +mxLabel.prototype.createVmlImage = function(src, opacity)
    +{
    +	var result = null;
    +	
    +	// Workaround for data URIs not supported in VML and for added
    +	// border around images if opacity is used (not needed in IE9,
    +	// but IMG node is probably better and faster anyway).
    +	if (src.substring(0, 5) == 'data:' || opacity != null)
    +	{
    +		result = document.createElement('img');
    +		mxUtils.setOpacity(result, opacity);
    +		result.setAttribute('border', '0');
    +		result.style.position = 'absolute';
    +		result.setAttribute('src', src);
    +	}
    +	else
    +	{
    +		result = document.createElement('v:image');
    +		result.src = src;
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node to represent this shape.
    + */
    +mxLabel.prototype.createSvg = function()
    +{
    +	var g = this.createSvgGroup('rect');
    +
    +	// Adds a small subshape to the svg group
    +	if (this.indicatorImage != null)
    +	{
    +		this.indicatorImageNode = document.createElementNS(mxConstants.NS_SVG, 'image');
    +		this.indicatorImageNode.setAttributeNS(mxConstants.NS_XLINK, 'href', this.indicatorImage);
    +		g.appendChild(this.indicatorImageNode);
    +		
    +		if (this.opacity != null)
    +		{
    +			this.indicatorImageNode.setAttribute('opacity', this.opacity / 100);
    +		}
    +	}
    +	
    +	// Adds an image to the svg group
    +	if (this.image != null)
    +	{
    +		this.imageNode = document.createElementNS(mxConstants.NS_SVG, 'image');
    +		this.imageNode.setAttributeNS(mxConstants.NS_XLINK, 'href', this.image);
    +		
    +		if (this.opacity != null)
    +		{
    +			this.imageNode.setAttribute('opacity', this.opacity / 100);
    +		}
    +
    +		// Disables control-click and alt-click in Firefox
    +		this.imageNode.setAttribute('style', 'pointer-events:none');
    +		this.configureSvgShape(this.imageNode);
    +		g.appendChild(this.imageNode);
    +	}
    +
    +	return g;
    +};
    +
    +/**
    + * Function: redraw
    + *
    + * Overrides redraw to define a unified implementation for redrawing
    + * all supported dialects.
    + */
    +mxLabel.prototype.redraw = function()
    +{
    +	var isSvg = (this.dialect == mxConstants.DIALECT_SVG);
    +	var isVml = mxUtils.isVml(this.node);
    +	
    +	// Updates the bounds of the outermost shape
    +	if (isSvg)
    +	{
    +		this.updateSvgShape(this.innerNode);
    +		
    +		if (this.shadowNode != null)
    +		{
    +			this.updateSvgShape(this.shadowNode);
    +		}
    +
    +		this.updateSvgGlassPane();
    +	}
    +	else if (isVml)
    +	{
    +		this.updateVmlShape(this.node);
    +		this.updateVmlShape(this.rectNode);
    +		this.label.style.width = this.node.style.width;
    +		this.label.style.height = this.node.style.height;
    +		
    +		this.updateVmlGlassPane();
    +	}
    +	else
    +	{
    +		this.updateHtmlShape(this.node);
    +	}
    +
    +	// Updates the imagewidth and imageheight		
    +	var imageWidth = 0;
    +	var imageHeight = 0;
    +	
    +	if (this.imageNode != null)
    +	{
    +		imageWidth = (this.style[mxConstants.STYLE_IMAGE_WIDTH] ||
    +			this.imageSize) * this.scale;
    +		imageHeight = (this.style[mxConstants.STYLE_IMAGE_HEIGHT] ||
    +			this.imageSize) * this.scale;
    +	}
    +	
    +	// Updates the subshape size and location
    +	var indicatorSpacing = 0;
    +	var indicatorWidth = 0;
    +	var indicatorHeight = 0;
    +	
    +	if (this.indicator != null || this.indicatorImageNode != null)
    +	{
    +		indicatorSpacing = (this.style[mxConstants.STYLE_INDICATOR_SPACING] ||
    +			this.indicatorSpacing) * this.scale;
    +		indicatorWidth = (this.style[mxConstants.STYLE_INDICATOR_WIDTH] ||
    +			this.indicatorSize) * this.scale;
    +		indicatorHeight = (this.style[mxConstants.STYLE_INDICATOR_HEIGHT] ||
    +			this.indicatorSize) * this.scale;
    +	}
    +	
    +	var align = this.style[mxConstants.STYLE_IMAGE_ALIGN];
    +	var valign = this.style[mxConstants.STYLE_IMAGE_VERTICAL_ALIGN];
    +
    +	var inset = this.spacing * this.scale + 5;		
    +	var width = Math.max(imageWidth, indicatorWidth);
    +	var height = imageHeight + indicatorSpacing + indicatorHeight;
    +	
    +	var x = (isSvg) ? this.bounds.x : 0;
    +	
    +	if (align == mxConstants.ALIGN_RIGHT)
    +	{
    +		x += this.bounds.width - width - inset;
    +	}
    +	else if (align == mxConstants.ALIGN_CENTER)
    +	{
    +		x += (this.bounds.width - width) / 2;
    +	}
    +	else // default is left
    +	{
    +		x += inset;
    +	}
    +	
    +	var y = (isSvg) ? this.bounds.y : 0;
    +	
    +	if (valign == mxConstants.ALIGN_BOTTOM)
    +	{
    +		y += this.bounds.height - height - inset;
    +	}
    +	else if (valign == mxConstants.ALIGN_TOP)
    +	{
    +		y += inset;
    +	}
    +	else // default is middle
    +	{
    +		y += (this.bounds.height - height) / 2;
    +	}
    +	
    +	// Updates the imagenode
    +	if (this.imageNode != null)
    +	{
    +		if (isSvg)
    +		{
    +			this.imageNode.setAttribute('x', (x + (width - imageWidth) / 2) + 'px');
    +			this.imageNode.setAttribute('y', y + 'px');
    +			this.imageNode.setAttribute('width', imageWidth + 'px');
    +			this.imageNode.setAttribute('height', imageHeight + 'px');
    +		}
    +		else
    +		{
    +			this.imageNode.style.left = (x + width - imageWidth) + 'px';
    +			this.imageNode.style.top = y + 'px';
    +			this.imageNode.style.width = imageWidth + 'px';
    +			this.imageNode.style.height = imageHeight + 'px';
    +			this.imageNode.stroked = 'false';
    +		}
    +	}
    +	
    +	// Updates the subshapenode (aka. indicator)
    +	if (this.indicator != null)
    +	{
    +		this.indicator.bounds = new mxRectangle(
    +			x + (width - indicatorWidth) / 2,
    +			y + imageHeight + indicatorSpacing,
    +			indicatorWidth, indicatorHeight);
    +		this.indicator.redraw();
    +	}
    +	else if (this.indicatorImageNode != null)
    +	{
    +		if (isSvg)
    +		{
    +			this.indicatorImageNode.setAttribute('x', (x + (width - indicatorWidth) / 2) + 'px');
    +			this.indicatorImageNode.setAttribute('y', (y + imageHeight + indicatorSpacing) + 'px');
    +			this.indicatorImageNode.setAttribute('width', indicatorWidth + 'px');
    +			this.indicatorImageNode.setAttribute('height', indicatorHeight + 'px');
    +		}
    +		else
    +		{			
    +			this.indicatorImageNode.style.left = (x + (width - indicatorWidth) / 2) + 'px';
    +			this.indicatorImageNode.style.top = (y + imageHeight + indicatorSpacing) + 'px';
    +			this.indicatorImageNode.style.width = indicatorWidth + 'px';
    +			this.indicatorImageNode.style.height = indicatorHeight + 'px';
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxLine.js b/javascript/src/js/shape/mxLine.js
    new file mode 100644
    index 000000000..5ef3eb052
    --- /dev/null
    +++ b/javascript/src/js/shape/mxLine.js
    @@ -0,0 +1,217 @@
    +/**
    + * $Id: mxLine.js,v 1.36 2012-03-30 04:44:59 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxLine
    + *
    + * Extends <mxShape> to implement a horizontal line shape.
    + * This shape is registered under <mxConstants.SHAPE_LINE> in
    + * <mxCellRenderer>.
    + * 
    + * Constructor: mxLine
    + *
    + * Constructs a new line shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * stroke - String that defines the stroke color. Default is 'black'. This is
    + * stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxLine(bounds, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxLine.prototype = new mxShape();
    +mxLine.prototype.constructor = mxLine;
    +
    +/**
    + * Variable: vmlNodes
    + *
    + * Adds local references to <mxShape.vmlNodes>.
    + */
    +mxLine.prototype.vmlNodes = mxLine.prototype.vmlNodes.concat(['label', 'innerNode']);
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw in VML in mixed Html mode.
    + */
    +mxLine.prototype.mixedModeHtml = false;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw as VML in prefer Html mode.
    + */
    +mxLine.prototype.preferModeHtml = false;
    +
    +/**
    + * Function: clone
    + *
    + * Overrides the clone method to add special fields.
    + */
    +mxLine.prototype.clone = function()
    +{
    +	var clone = new mxLine(this.bounds,
    +		this.stroke, this.strokewidth);
    +	clone.isDashed = this.isDashed;
    +	
    +	return clone;
    +};
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node to represent this shape.
    + */
    +mxLine.prototype.createVml = function()
    +{
    +	var node = document.createElement('v:group');
    +	node.style.position = 'absolute';
    +	
    +	// Represents the text label container
    +	this.label = document.createElement('v:rect');
    +	this.label.style.position = 'absolute';
    +	this.label.stroked = 'false';
    +	this.label.filled = 'false';
    +	node.appendChild(this.label);
    +	
    +	// Represents the straight line shape
    +	this.innerNode = document.createElement('v:shape');
    +	this.configureVmlShape(this.innerNode);
    +	node.appendChild(this.innerNode);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Redraws this VML shape by invoking <updateVmlShape> on this.node.
    + */
    +mxLine.prototype.reconfigure = function()
    +{
    +	if (mxUtils.isVml(this.node))
    +	{
    +		this.configureVmlShape(this.innerNode);
    +	}
    +	else
    +	{
    +		mxShape.prototype.reconfigure.apply(this, arguments);
    +	}
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Updates the VML node(s) to reflect the latest bounds and scale.
    + */
    +mxLine.prototype.redrawVml = function()
    +{
    +	this.updateVmlShape(this.node);
    +	this.updateVmlShape(this.label);
    +
    +	this.innerNode.coordsize = this.node.coordsize;
    +	this.innerNode.strokeweight = (this.strokewidth * this.scale) + 'px';
    +	this.innerNode.style.width = this.node.style.width;
    +	this.innerNode.style.height = this.node.style.height;
    +
    +	var w = this.bounds.width;
    +	var h =this.bounds.height;
    +	
    +	if (this.direction == mxConstants.DIRECTION_NORTH ||
    +		this.direction == mxConstants.DIRECTION_SOUTH)
    +	{
    +		this.innerNode.path = 'm ' + Math.round(w / 2) + ' 0' +
    +			' l ' + Math.round(w / 2) + ' ' + Math.round(h) + ' e';
    +	}
    +	else
    +	{
    +		this.innerNode.path = 'm 0 ' + Math.round(h / 2) +
    +			' l ' + Math.round(w) + ' ' + Math.round(h / 2) + ' e';
    +	}
    +};
    +	
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxLine.prototype.createSvg = function()
    +{
    +	var g = this.createSvgGroup('path');
    +
    +	// Creates an invisible shape around the path for easier
    +	// selection with the mouse. Note: Firefox does not ignore
    +	// the value of the stroke attribute for pointer-events: stroke.
    +	// It does, however, ignore the visibility attribute.
    +	this.pipe = this.createSvgPipe();
    +	g.appendChild(this.pipe);
    +	
    +	return g;
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxLine.prototype.redrawSvg = function()
    +{
    +	var strokeWidth = Math.round(Math.max(1, this.strokewidth * this.scale));
    +	this.innerNode.setAttribute('stroke-width', strokeWidth);
    +	
    +	if (this.bounds != null)
    +	{
    +		var x = this.bounds.x;
    +		var y = this.bounds.y;
    +		var w = this.bounds.width;
    +		var h = this.bounds.height;
    +		
    +		var d = null;
    +		
    +		if (this.direction == mxConstants.DIRECTION_NORTH || this.direction == mxConstants.DIRECTION_SOUTH)
    +		{
    +			d = 'M ' + Math.round(x + w / 2) + ' ' + Math.round(y) + ' L ' + Math.round(x + w / 2) + ' ' + Math.round(y + h);
    +		}
    +		else
    +		{
    +			d = 'M ' + Math.round(x) + ' ' + Math.round(y + h / 2) + ' L ' + Math.round(x + w) + ' ' + Math.round(y + h / 2);
    +		}
    +		
    +		this.innerNode.setAttribute('d', d);
    +		this.pipe.setAttribute('d', d);
    +		this.pipe.setAttribute('stroke-width', this.strokewidth + mxShape.prototype.SVG_STROKE_TOLERANCE);
    +		
    +		this.updateSvgTransform(this.innerNode, false);
    +		this.updateSvgTransform(this.pipe, false);	
    +		
    +		if (this.crisp)
    +		{
    +			this.innerNode.setAttribute('shape-rendering', 'crispEdges');
    +		}
    +		else
    +		{
    +			this.innerNode.removeAttribute('shape-rendering');
    +		}
    +		
    +		if (this.isDashed)
    +		{
    +			var phase = Math.max(1, Math.round(3 * this.scale * this.strokewidth));
    +			this.innerNode.setAttribute('stroke-dasharray', phase + ' ' + phase);
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxMarker.js b/javascript/src/js/shape/mxMarker.js
    new file mode 100644
    index 000000000..cfd6f6672
    --- /dev/null
    +++ b/javascript/src/js/shape/mxMarker.js
    @@ -0,0 +1,267 @@
    +/**
    + * $Id: mxMarker.js,v 1.19 2012-03-30 12:51:58 david Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxMarker =
    +{
    +	/**
    +	 * Class: mxMarker
    +	 * 
    +	 * A static class that implements all markers for VML and SVG using a
    +	 * registry. NOTE: The signatures in this class will change.
    +	 * 
    +	 * Variable: markers
    +	 * 
    +	 * Maps from markers names to functions to paint the markers.
    +	 */
    +	markers: [],
    +	
    +	/**
    +	 * Function: paintMarker
    +	 * 
    +	 * Paints the given marker.
    +	 */
    +	paintMarker: function(node, type, p0, pe, color, strokewidth, size, scale, x0, y0, source, style)
    +	{
    +		var marker = mxMarker.markers[type];
    +		var result = null;
    +		
    +		if (marker != null)
    +		{
    +			var isVml = mxUtils.isVml(node);
    +
    +			// Computes the norm and the inverse norm
    +			var dx = pe.x - p0.x;
    +			var dy = pe.y - p0.y;
    +			
    +			if (isNaN(dx) || isNaN(dy))
    +			{
    +				return;
    +			}
    +
    +			var dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +			var nx = dx * scale / dist;
    +			var ny = dy * scale / dist;
    +			
    +			pe = pe.clone();
    +			
    +			if (isVml)
    +			{
    +				pe.x -= x0;
    +				pe.y -= y0;
    +			}
    +
    +			// Handles start-/endFill style
    +			var filled = true;
    +			var key = (source) ? mxConstants.STYLE_STARTFILL : mxConstants.STYLE_ENDFILL;
    +			
    +			if (style[key] == 0)
    +			{
    +				filled = false;
    +			}
    +
    +			if (isVml)
    +			{
    +				// Opacity is updated in reconfigure, use nf in path for no fill
    +				node.strokecolor = color;
    +				
    +				if (filled)
    +				{
    +					node.fillcolor = color;
    +				}
    +				else
    +				{
    +					node.filled = 'false';
    +				}
    +			}
    +			else
    +			{
    +				node.setAttribute('stroke', color);
    +				
    +				var op = (style.opacity != null) ? style.opacity / 100 : 1;
    +				node.setAttribute('stroke-opacity', op);
    +				
    +				if (filled)
    +				{
    +					node.setAttribute('fill', color);
    +					node.setAttribute('fill-opacity', op);
    +				}
    +				else
    +				{
    +					node.setAttribute('fill', 'none');
    +				}
    +			}
    +			
    +			result = marker.call(this, node, type, pe, nx, ny, strokewidth, size, scale, isVml);
    +		}
    +		
    +		return result;
    +	}
    +
    +};
    +
    +(function()
    +{
    +	/**
    +	 * Drawing of the classic and block arrows. 
    +	 */
    +	var tmp = function(node, type, pe, nx, ny, strokewidth, size, scale, isVml)
    +	{
    +		// The angle of the forward facing arrow sides against the x axis is
    +		// 26.565 degrees, 1/sin(26.565) = 2.236 / 2 = 1.118 ( / 2 allows for
    +		// only half the strokewidth is processed ).
    +		var endOffsetX = nx * strokewidth * 1.118;
    +		var endOffsetY = ny * strokewidth * 1.118;
    +		pe.x -= endOffsetX;
    +		pe.y -= endOffsetY;
    +		
    +		nx = nx * (size + strokewidth);
    +		ny = ny * (size + strokewidth);
    +
    +		if (isVml)
    +		{
    +			node.path = 'm' + Math.round(pe.x) + ',' + Math.round(pe.y) +
    +				' l' + Math.round(pe.x - nx - ny / 2) + ' ' + Math.round(pe.y - ny + nx / 2) +
    +				((type != mxConstants.ARROW_CLASSIC) ? '' :
    +				' ' + Math.round(pe.x - nx * 3 / 4) + ' ' + Math.round(pe.y - ny * 3 / 4)) +
    +				' ' + Math.round(pe.x + ny / 2 - nx) + ' ' + Math.round(pe.y - ny - nx / 2) +
    +				' x e';
    +			node.setAttribute('strokeweight', (strokewidth * scale) + 'px');
    +		}
    +		else
    +		{
    +			node.setAttribute('d', 'M ' + pe.x + ' ' + pe.y +
    +				' L ' + (pe.x - nx - ny / 2) + ' ' + (pe.y - ny + nx / 2) +
    +				((type != mxConstants.ARROW_CLASSIC) ? '' :
    +				' L ' + (pe.x - nx * 3 / 4) + ' ' + (pe.y - ny * 3 / 4)) +
    +				' L ' + (pe.x + ny / 2 - nx) + ' ' + (pe.y - ny - nx / 2) +
    +				' z');
    +			node.setAttribute('stroke-width', strokewidth * scale);
    +		}
    +		
    +		var f = (type != mxConstants.ARROW_CLASSIC) ? 1 : 3 / 4;
    +		return new mxPoint(-nx * f - endOffsetX, -ny * f - endOffsetY);
    +	};
    +
    +	mxMarker.markers[mxConstants.ARROW_CLASSIC] = tmp;
    +	mxMarker.markers[mxConstants.ARROW_BLOCK] = tmp;
    +}());
    +
    +mxMarker.markers[mxConstants.ARROW_OPEN] = function(node, type, pe, nx, ny, strokewidth, size, scale, isVml)
    +{
    +	// The angle of the forward facing arrow sides against the x axis is
    +	// 26.565 degrees, 1/sin(26.565) = 2.236 / 2 = 1.118 ( / 2 allows for
    +	// only half the strokewidth is processed ).
    +	var endOffsetX = nx * strokewidth * 1.118;
    +	var endOffsetY = ny * strokewidth * 1.118;
    +	pe.x -= endOffsetX;
    +	pe.y -= endOffsetY;
    +	
    +	nx = nx * (size + strokewidth);
    +	ny = ny * (size + strokewidth);
    +
    +	if (isVml)
    +	{
    +		node.path = 'm' + Math.round(pe.x - nx - ny / 2) + ' ' + Math.round(pe.y - ny + nx / 2) +
    +			' l' + Math.round(pe.x) + ' ' + Math.round(pe.y) +
    +			' ' + Math.round(pe.x + ny / 2 - nx) + ' ' + Math.round(pe.y - ny - nx / 2) +
    +			' e nf';
    +		node.setAttribute('strokeweight', (strokewidth * scale) + 'px');
    +	}
    +	else
    +	{
    +		node.setAttribute('d', 'M ' + (pe.x - nx - ny / 2) + ' ' + (pe.y - ny + nx / 2) +
    +				' L ' + (pe.x) + ' ' + (pe.y) +
    +				' L ' + (pe.x + ny / 2 - nx) + ' ' + (pe.y - ny - nx / 2));
    +		node.setAttribute('stroke-width', strokewidth * scale);
    +		node.setAttribute('fill', 'none');
    +	}
    +	
    +	return new mxPoint(-endOffsetX * 2, -endOffsetY * 2);
    +};
    +
    +mxMarker.markers[mxConstants.ARROW_OVAL] = function(node, type, pe, nx, ny, strokewidth, size, scale, isVml)
    +{
    +	nx *= size;
    +	ny *= size;
    +	
    +	nx *= 0.5 + strokewidth / 2;
    +	ny *= 0.5 + strokewidth / 2;
    +	
    +	var absSize = size * scale;
    +	var radius = absSize / 2;
    +	
    +	if (isVml)
    +	{
    +		node.path = 'm' + Math.round(pe.x + radius) + ' ' + Math.round(pe.y) +
    +			' at ' + Math.round(pe.x - radius) + ' ' + Math.round(pe.y - radius) +
    +			' ' + Math.round(pe.x + radius) + ' ' + Math.round(pe.y + radius) +
    +			' ' + Math.round(pe.x + radius) + ' ' + Math.round(pe.y) +
    +			' ' + Math.round(pe.x + radius) + ' ' + Math.round(pe.y) +
    +			' x e';
    +		
    +		node.setAttribute('strokeweight', (strokewidth * scale) + 'px');
    +	}
    +	else
    +	{
    +		node.setAttribute('d', 'M ' + (pe.x - radius) + ' ' + (pe.y) +
    +			' a ' + (radius) + ' ' + (radius) +
    +			' 0  1,1 ' + (absSize) + ' 0' +
    +			' a ' + (radius) + ' ' + (radius) +
    +			' 0  1,1 ' + (-absSize) + ' 0 z');
    +		node.setAttribute('stroke-width', strokewidth * scale);
    +	}
    +	
    +	return new mxPoint(-nx / (2 + strokewidth), -ny / (2 + strokewidth));
    +};
    +
    +(function()
    +		{
    +			/**
    +			 * Drawing of the diamond and thin diamond markers
    +			 */
    +			var tmp_diamond = function(node, type, pe, nx, ny, strokewidth, size, scale, isVml)
    +			{
    +				// The angle of the forward facing arrow sides against the x axis is
    +				// 45 degrees, 1/sin(45) = 1.4142 / 2 = 0.7071 ( / 2 allows for
    +				// only half the strokewidth is processed ). Or 0.9862 for thin diamond.
    +				// Note these values and the tk variable below are dependent, update
    +				// both together (saves trig hard coding it).
    +				var swFactor = (type == mxConstants.ARROW_DIAMOND) ?  0.7071 : 0.9862;
    +				var endOffsetX = nx * strokewidth * swFactor;
    +				var endOffsetY = ny * strokewidth * swFactor;
    +				
    +				nx = nx * (size + strokewidth);
    +				ny = ny * (size + strokewidth);
    +				
    +				pe.x -= endOffsetX + nx / 2;
    +				pe.y -= endOffsetY + ny / 2;
    +				
    +				// thickness factor for diamond
    +				var tk = ((type == mxConstants.ARROW_DIAMOND) ?  2 : 3.4);
    +
    +				if (isVml)
    +				{
    +					node.path = 'm' + Math.round(pe.x + nx / 2) + ' ' + Math.round(pe.y + ny / 2) +
    +						' l' + Math.round(pe.x - ny / tk) + ' ' + Math.round(pe.y + nx / tk) +
    +						' ' + Math.round(pe.x - nx / 2) + ' ' + Math.round(pe.y - ny / 2) +
    +						' ' + Math.round(pe.x + ny / tk) + ' ' + Math.round(pe.y - nx / tk) +
    +						' x e';
    +					node.setAttribute('strokeweight', (strokewidth * scale) + 'px');
    +				}
    +				else
    +				{
    +					node.setAttribute('d', 'M ' + (pe.x + nx / 2) + ' ' + (pe.y + ny / 2) +
    +						' L ' + (pe.x - ny / tk) + ' ' + (pe.y + nx / tk) +
    +						' L ' + (pe.x - nx / 2) + ' ' + (pe.y - ny / 2) +
    +						' L ' + (pe.x + ny / tk) + ' ' + (pe.y - nx / tk) +
    +						' z');
    +					node.setAttribute('stroke-width', strokewidth * scale);
    +				}
    +				
    +				return new mxPoint(-endOffsetX - nx, -endOffsetY - ny);
    +			};
    +
    +			mxMarker.markers[mxConstants.ARROW_DIAMOND] = tmp_diamond;
    +			mxMarker.markers[mxConstants.ARROW_DIAMOND_THIN] = tmp_diamond;
    +		}());
    diff --git a/javascript/src/js/shape/mxPolyline.js b/javascript/src/js/shape/mxPolyline.js
    new file mode 100644
    index 000000000..5dfa2ffe1
    --- /dev/null
    +++ b/javascript/src/js/shape/mxPolyline.js
    @@ -0,0 +1,135 @@
    +/**
    + * $Id: mxPolyline.js,v 1.30 2012-01-18 14:22:59 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxPolyline
    + *
    + * Extends <mxShape> to implement a polyline (a line with multiple points).
    + * This shape is registered under <mxConstants.SHAPE_POLYLINE> in
    + * <mxCellRenderer>.
    + * 
    + * Constructor: mxPolyline
    + *
    + * Constructs a new polyline shape.
    + * 
    + * Parameters:
    + * 
    + * points - Array of <mxPoints> that define the points. This is stored in
    + * <mxShape.points>.
    + * stroke - String that defines the stroke color. Default is 'black'. This is
    + * stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxPolyline(points, stroke, strokewidth)
    +{
    +	this.points = points;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxPolyline.prototype = new mxShape();
    +mxPolyline.prototype.constructor = mxPolyline;
    +
    +/**
    + * Function: create
    + *
    + * Override to create HTML regardless of gradient and
    + * rounded property.
    + */
    +mxPolyline.prototype.create = function()
    +{
    +	var node = null;
    +	
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		node = this.createSvg();
    +	}
    +	else if (this.dialect == mxConstants.DIALECT_STRICTHTML ||
    +			(this.dialect == mxConstants.DIALECT_PREFERHTML &&
    +			this.points != null && this.points.length > 0))
    +	{
    +		node = document.createElement('DIV');
    +		this.configureHtmlShape(node);
    +		node.style.borderStyle = '';
    +		node.style.background = '';
    +	}
    +	else
    +	{
    +		node = document.createElement('v:shape');
    +		this.configureVmlShape(node);
    +		var strokeNode = document.createElement('v:stroke');
    +	
    +		if (this.opacity != null)
    +		{
    +			strokeNode.opacity = this.opacity + '%';
    +		}
    +		
    +		node.appendChild(strokeNode);
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Overrides the method to update the bounds if they have not been
    + * assigned.
    + */
    +mxPolyline.prototype.redrawVml = function()
    +{
    +	// Updates the bounds based on the points
    +	if (this.points != null && this.points.length > 0 && this.points[0] != null)
    +	{
    +		this.bounds = new mxRectangle(this.points[0].x,this.points[0].y, 0, 0);
    +		
    +		for (var i = 1; i < this.points.length; i++)
    +		{
    +			this.bounds.add(new mxRectangle(this.points[i].x,this.points[i].y, 0, 0));
    +		}
    +	}
    +
    +	mxShape.prototype.redrawVml.apply(this, arguments);
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxPolyline.prototype.createSvg = function()
    +{
    +	var g = this.createSvgGroup('path');
    +	
    +	// Creates an invisible shape around the path for easier
    +	// selection with the mouse. Note: Firefox does not ignore
    +	// the value of the stroke attribute for pointer-events: stroke.
    +	// It does, however, ignore the visibility attribute.
    +	this.pipe = this.createSvgPipe();
    +	g.appendChild(this.pipe);
    +	
    +	return g;
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxPolyline.prototype.redrawSvg = function()
    +{
    +	this.updateSvgShape(this.innerNode);
    +	var d = this.innerNode.getAttribute('d');
    +	
    +	if (d != null)
    +	{
    +		this.pipe.setAttribute('d', d);
    +		var strokeWidth = Math.round(Math.max(1, this.strokewidth * this.scale));
    +		this.pipe.setAttribute('stroke-width', strokeWidth + mxShape.prototype.SVG_STROKE_TOLERANCE);
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxRectangleShape.js b/javascript/src/js/shape/mxRectangleShape.js
    new file mode 100644
    index 000000000..69418f91f
    --- /dev/null
    +++ b/javascript/src/js/shape/mxRectangleShape.js
    @@ -0,0 +1,74 @@
    +/**
    + * $Id: mxRectangleShape.js,v 1.16 2011-06-24 11:27:31 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxRectangleShape
    + *
    + * Extends <mxShape> to implement a rectangle shape.
    + * This shape is registered under <mxConstants.SHAPE_RECTANGLE>
    + * in <mxCellRenderer>.
    + * 
    + * Constructor: mxRectangleShape
    + *
    + * Constructs a new rectangle shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxRectangleShape(bounds, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxRectangleShape.prototype = new mxShape();
    +mxRectangleShape.prototype.constructor = mxRectangleShape;
    +
    +/**
    + * Function: createHtml
    + *
    + * Creates and returns the HTML node to represent this shape.
    + */
    +mxRectangleShape.prototype.createHtml = function()
    +{
    +	var node = document.createElement('DIV');
    +	this.configureHtmlShape(node);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node to represent this shape.
    + */
    +mxRectangleShape.prototype.createVml = function()
    +{
    +	var name = (this.isRounded) ? 'v:roundrect' : 'v:rect';
    +	var node = document.createElement(name);
    +	this.configureVmlShape(node);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node to represent this shape.
    + */
    +mxRectangleShape.prototype.createSvg = function()
    +{
    +	return this.createSvgGroup('rect');
    +};
    diff --git a/javascript/src/js/shape/mxRhombus.js b/javascript/src/js/shape/mxRhombus.js
    new file mode 100644
    index 000000000..37e35eca5
    --- /dev/null
    +++ b/javascript/src/js/shape/mxRhombus.js
    @@ -0,0 +1,172 @@
    +/**
    + * $Id: mxRhombus.js,v 1.25 2012-04-04 07:34:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxRhombus
    + *
    + * Extends <mxShape> to implement a rhombus (aka diamond) shape.
    + * This shape is registered under <mxConstants.SHAPE_RHOMBUS>
    + * in <mxCellRenderer>.
    + * 
    + * Constructor: mxRhombus
    + *
    + * Constructs a new rhombus shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxRhombus(bounds, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxRhombus.prototype = new mxShape();
    +mxRhombus.prototype.constructor = mxRhombus;
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw in VML in mixed Html mode.
    + */
    +mxRhombus.prototype.mixedModeHtml = false;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw as VML in prefer Html mode.
    + */
    +mxRhombus.prototype.preferModeHtml = false;
    +
    +/**
    + * Function: createHtml
    + *
    + * Creates and returns the HTML node to represent this shape.
    + */
    +mxRhombus.prototype.createHtml = function()
    +{
    +	var node = document.createElement('DIV');
    +	this.configureHtmlShape(node);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node(s) to represent this shape.
    + */
    +mxRhombus.prototype.createVml = function()
    +{
    +	var node = document.createElement('v:shape');
    +	this.configureVmlShape(node);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxRhombus.prototype.createSvg = function()
    +{
    +	return this.createSvgGroup('path');
    +};
    +
    +// TODO: When used as an indicator, this.node.points is null
    +// so we use a path object for building general diamonds.
    +//mxRhombus.prototype.redraw = function() {
    +//	this.node.setAttribute('strokeweight', (this.strokewidth * this.scale) + 'px');
    +//	var x = this.bounds.x;
    +//	var y = this.bounds.y;
    +//	var w = this.bounds.width;
    +//	var h = this.bounds.height;
    +//	this.node.points.value = (x+w/2)+','+y+' '+(x+w)+','+(y+h/2)+
    +//		' '+(x+w/2)+','+(y+h)+' '+x+','+(y+h/2)+' '+
    +//		(x+w/2)+','+y;
    +//}
    +
    +/**
    + * Function: redrawVml
    + *
    + * Updates the VML node(s) to reflect the latest bounds and scale.
    + */
    +mxRhombus.prototype.redrawVml = function()
    +{
    +	this.updateVmlShape(this.node);
    +	var x = 0;
    +	var y = 0;
    +	var w = Math.round(this.bounds.width);
    +	var h = Math.round(this.bounds.height);
    +
    +	this.node.path = 'm ' + Math.round(x + w / 2) + ' ' + y +
    +		' l ' + (x + w) + ' ' + Math.round(y + h / 2) +
    +		' l ' + Math.round(x + w / 2) + ' ' + (y + h) +
    +		' l ' + x + ' ' + Math.round(y + h / 2) + ' x e';
    +};
    +
    +/**
    + * Function: redrawHtml
    + *
    + * Updates the HTML node(s) to reflect the latest bounds and scale.
    + */
    +mxRhombus.prototype.redrawHtml = function()
    +{
    +	this.updateHtmlShape(this.node);
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxRhombus.prototype.redrawSvg = function()
    +{
    +	this.updateSvgNode(this.innerNode);
    +	
    +	if (this.shadowNode != null)
    +	{
    +		this.updateSvgNode(this.shadowNode);
    +	}
    +};
    +
    +/**
    + * Function: createSvgSpan
    + *
    + * Updates the path for the given SVG node.
    + */
    +mxRhombus.prototype.updateSvgNode = function(node)
    +{
    +	var strokeWidth = Math.round(Math.max(1, this.strokewidth * this.scale));
    +	node.setAttribute('stroke-width', strokeWidth);
    +	var x = this.bounds.x;
    +	var y = this.bounds.y;
    +	var w = this.bounds.width;
    +	var h = this.bounds.height;
    +	var d = 'M ' + Math.round(x + w / 2) + ' ' + Math.round(y) + ' L ' + Math.round(x + w) + ' ' + Math.round(y + h / 2) +
    +		' L ' + Math.round(x + w / 2) + ' ' + Math.round(y + h) + ' L ' + Math.round(x) + ' ' + Math.round(y + h / 2) +
    +		' Z ';
    +	node.setAttribute('d', d);
    +	this.updateSvgTransform(node, node == this.shadowNode);
    +
    +	if (this.isDashed)
    +	{
    +		var phase = Math.max(1, Math.round(3 * this.scale * this.strokewidth));
    +		node.setAttribute('stroke-dasharray', phase + ' ' + phase);
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxShape.js b/javascript/src/js/shape/mxShape.js
    new file mode 100644
    index 000000000..b7421d9a2
    --- /dev/null
    +++ b/javascript/src/js/shape/mxShape.js
    @@ -0,0 +1,1945 @@
    +/**
    + * $Id: mxShape.js,v 1.168 2012-05-18 10:05:10 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxShape
    + *
    + * Base class for all shapes. A shape in mxGraph is a
    + * separate implementation for SVG, VML and HTML. Which
    + * implementation to use is controlled by the <dialect>
    + * property which is assigned from within the <mxCellRenderer>
    + * when the shape is created. The dialect must be assigned
    + * for a shape, and it does normally depend on the browser and
    + * the confiuration of the graph (see <mxGraph> rendering hint).
    + *
    + * For each supported shape in SVG and VML, a corresponding
    + * shape exists in mxGraph, namely for text, image, rectangle,
    + * rhombus, ellipse and polyline. The other shapes are a
    + * combination of these shapes (eg. label and swimlane)
    + * or they consist of one or more (filled) path objects
    + * (eg. actor and cylinder). The HTML implementation is
    + * optional but may be required for a HTML-only view of
    + * the graph.
    + *
    + * Custom Shapes:
    + *
    + * To extend from this class, the basic code looks as follows.
    + * In the special case where the custom shape consists only of
    + * one filled region or one filled region and an additional stroke
    + * the <mxActor> and <mxCylinder> should be subclassed,
    + * respectively. These implement <redrawPath> in order to create
    + * the path expression for VML and SVG via a unified API (see
    + * <mxPath>). <mxCylinder.redrawPath> has an additional boolean
    + * argument to draw the foreground and background separately.
    + *
    + * (code)
    + * function CustomShape() { }
    + * 
    + * CustomShape.prototype = new mxShape();
    + * CustomShape.prototype.constructor = CustomShape; 
    + * (end)
    + *
    + * To register a custom shape in an existing graph instance,
    + * one must register the shape under a new name in the graph's
    + * cell renderer as follows:
    + *
    + * (code)
    + * graph.cellRenderer.registerShape('customShape', CustomShape);
    + * (end)
    + *
    + * The second argument is the name of the constructor.
    + *
    + * In order to use the shape you can refer to the given name above
    + * in a stylesheet. For example, to change the shape for the default
    + * vertex style, the following code is used:
    + *
    + * (code)
    + * var style = graph.getStylesheet().getDefaultVertexStyle();
    + * style[mxConstants.STYLE_SHAPE] = 'customShape';
    + * (end)
    + * 
    + * Constructor: mxShape
    + *
    + * Constructs a new shape.
    + */
    +function mxShape() { };
    +
    +/**
    + * Variable: SVG_STROKE_TOLERANCE
    + *
    + * Event-tolerance for SVG strokes (in px). Default is 8.
    + */
    +mxShape.prototype.SVG_STROKE_TOLERANCE = 8;
    +
    +/**
    + * Variable: scale
    + *
    + * Holds the scale in which the shape is being painted.
    + */
    +mxShape.prototype.scale = 1;
    +
    +/**
    + * Variable: dialect
    + *
    + * Holds the dialect in which the shape is to be painted.
    + * This can be one of the DIALECT constants in <mxConstants>.
    + */
    +mxShape.prototype.dialect = null;
    +
    +/**
    + * Variable: crisp
    + *
    + * Special attribute for SVG rendering to set the shape-rendering attribute to
    + * crispEdges in the output. This is ignored in IE. Default is false. To
    + * disable antialias in IE, the explorer.css file can be changed as follows:
    + * 
    + * [code]
    + * v\:* {
    + *   behavior: url(#default#VML);
    + *   antialias: false;
    + * }
    + * [/code]
    + */
    +mxShape.prototype.crisp = false;
    +
    +/**
    + * Variable: roundedCrispSvg
    + *
    + * Specifies if crisp rendering should be enabled for rounded shapes.
    + * Default is true.
    + */
    +mxShape.prototype.roundedCrispSvg = true;
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Specifies if <createHtml> should be used in mixed Html mode.
    + * Default is true.
    + */
    +mxShape.prototype.mixedModeHtml = true;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Specifies if <createHtml> should be used in prefer Html mode.
    + * Default is true.
    + */
    +mxShape.prototype.preferModeHtml = true;
    +
    +/**
    + * Variable: bounds
    + *
    + * Holds the <mxRectangle> that specifies the bounds of this shape.
    + */
    +mxShape.prototype.bounds = null;
    +
    +/**
    + * Variable: points
    + *
    + * Holds the array of <mxPoints> that specify the points of this shape.
    + */
    +mxShape.prototype.points = null;
    +
    +/**
    + * Variable: node
    + *
    + * Holds the outermost DOM node that represents this shape.
    + */
    +mxShape.prototype.node = null;
    +
    +/**
    + * Variable: label
    + *
    + * Reference to the DOM node that should contain the label. This is null
    + * if the label should be placed inside <node> or <innerNode>.
    + */
    +mxShape.prototype.label = null;
    +
    +/**
    + * Variable: innerNode
    + *
    + * Holds the DOM node that graphically represents this shape. This may be
    + * null if the outermost DOM <node> represents this shape.
    + */
    +mxShape.prototype.innerNode = null;
    +
    +/**
    + * Variable: style
    + *
    + * Holds the style of the cell state that corresponds to this shape. This may
    + * be null if the shape is used directly, without a cell state.
    + */
    +mxShape.prototype.style = null;
    +
    +/**
    + * Variable: startOffset
    + *
    + * Specifies the offset in pixels from the first point in <points> and
    + * the actual start of the shape.
    + */
    +mxShape.prototype.startOffset = null;
    +
    +/**
    + * Variable: endOffset
    + *
    + * Specifies the offset in pixels from the last point in <points> and
    + * the actual start of the shape.
    + */
    +mxShape.prototype.endOffset = null;
    +
    +/**
    + * Variable: vmlNodes
    + *
    + * Array if VML node names to fix in IE8 standards mode.
    + */
    +mxShape.prototype.vmlNodes = ['node', 'strokeNode', 'fillNode', 'shadowNode'];
    +
    +/**
    + * Function: setCursor
    + * 
    + * Sets the cursor on the given shape.
    + *
    + * Parameters:
    + *
    + * cursor - The cursor to be used.
    + */
    +mxShape.prototype.setCursor = function(cursor)
    +{
    +	if (cursor == null)
    +	{
    +		cursor = '';
    +	}
    +	
    +	this.cursor = cursor;
    +	
    +	if (this.innerNode != null)
    +	{
    +		this.innerNode.style.cursor = cursor;
    +	}
    +	
    +	if (this.node != null)
    +	{
    +		this.node.style.cursor = cursor;
    +	}
    +	
    +	if (this.pipe != null)
    +	{
    +		this.pipe.style.cursor = cursor;
    +	}
    +};
    +
    +/**
    + * Function: getCursor
    + * 
    + * Returns the current cursor.
    + */
    +mxShape.prototype.getCursor = function()
    +{
    +	return this.cursor;
    +};
    +
    +/**
    + * Function: init
    + *
    + * Initializes the shape by creaing the DOM node using <create>
    + * and adding it into the given container.
    + *
    + * Parameters:
    + *
    + * container - DOM node that will contain the shape.
    + */
    +mxShape.prototype.init = function(container)
    +{
    +	if (this.node == null)
    +	{
    +		this.node = this.create(container);
    +		
    +		if (container != null)
    +		{
    +			// Workaround for broken VML in IE8 standards mode. This gives an ID to
    +			// each element that is referenced from this instance. After adding the
    +			// DOM to the document, the outerHTML is overwritten to fix the VML
    +			// rendering and the references are restored.
    +			var vmlFix = document.documentMode == 8 && mxUtils.isVml(this.node);
    +			
    +			if (vmlFix)
    +			{
    +				// Assigns temporary IDs to VML nodes so that references can be restored when
    +				// inserted into the DOM as a string
    +				for (var i = 0; i < this.vmlNodes.length; i++)
    +				{
    +					if (this[this.vmlNodes[i]] != null)
    +					{
    +						this[this.vmlNodes[i]].setAttribute('id', 'mxTemporaryReference-' + this.vmlNodes[i]);
    +					}
    +				}
    +				
    +				// Inserts the node as a string
    +				container.insertAdjacentHTML('beforeEnd', this.node.outerHTML);
    +				
    +				// Restores references to the actual DOM nodes
    +				for (var i = 0; i < this.vmlNodes.length; i++)
    +				{
    +					if (this[this.vmlNodes[i]] != null)
    +					{
    +						this[this.vmlNodes[i]] = container.ownerDocument.getElementById('mxTemporaryReference-' + this.vmlNodes[i]);
    +						this[this.vmlNodes[i]].removeAttribute('id');
    +					}
    +				}
    +			}
    +			else
    +			{
    +				container.appendChild(this.node);	
    +			}
    +		}
    +	}
    +
    +	// Gradients are inserted late when the owner SVG element is known
    +	if (this.insertGradientNode != null)
    +	{
    +		this.insertGradient(this.insertGradientNode);
    +		this.insertGradientNode = null;
    +	}
    +};
    +
    +/**
    + * Function: insertGradient
    + * 
    + * Inserts the given gradient node.
    + */
    +mxShape.prototype.insertGradient = function(node)
    +{
    +	// Gradients are inserted late when the owner SVG element is known
    +	if (node != null)
    +	{
    +		// Checks if the given gradient already exists inside the SVG element
    +		// that also contains the node that represents this shape. If the gradient
    +		// with the same ID exists in another SVG element, then this will add
    +		// a copy of the gradient with a different ID to the SVG element and update
    +		// the reference accordingly. This is required in Firefox because if the
    +		// referenced fill element is removed from the DOM the shape appears black.
    +		var count = 0;
    +		var id = node.getAttribute('id');
    +		var gradient = document.getElementById(id);
    +
    +		while (gradient != null && gradient.ownerSVGElement != this.node.ownerSVGElement)
    +		{
    +			count++;
    +			id = node.getAttribute('id') + '-' + count;
    +			gradient = document.getElementById(id);
    +		}
    +		
    +		// According to specification, gradients should be put in a defs
    +		// section in the first child of the owner SVG element. However,
    +		// it turns out that gradients only work when added as follows.
    +		if (gradient == null)
    +		{
    +			node.setAttribute('id', id);
    +			this.node.ownerSVGElement.appendChild(node);
    +			gradient = node;
    +		}
    +		
    +		if (gradient != null)
    +		{
    +			var ref = 'url(#' + id + ')';
    +			var tmp = (this.innerNode != null) ? this.innerNode : this.node;
    +			
    +			if (tmp != null && tmp.getAttribute('fill') != ref)
    +			{
    +				tmp.setAttribute('fill', ref);
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: isMixedModeHtml
    + * 
    + * Used to determine if a shape can be rendered using <createHtml> in mixed
    + * mode Html without compromising the display accuracy. The default 
    + * implementation will check if the shape is not rounded and has no 
    + * gradient, and will use a DIV if that is the case. It will also check if 
    + * <mxShape.mixedModeHtml> is true, which is the default settings.
    + * Subclassers can either override <mixedModeHtml> or this function if the 
    + * result depends on dynamic values. The graph's dialect is available via
    + * <dialect>.
    + */
    +mxShape.prototype.isMixedModeHtml = function()
    +{
    +	return this.mixedModeHtml && !this.isRounded && !this.isShadow && this.gradient == null &&
    +		mxUtils.getValue(this.style, mxConstants.STYLE_GLASS, 0) == 0;
    +};
    +
    +/**
    + * Function: create
    + *
    + * Creates and returns the DOM node(s) for the shape in
    + * the given container. This implementation invokes
    + * <createSvg>, <createHtml> or <createVml> depending
    + * on the <dialect> and style settings.
    + *
    + * Parameters:
    + *
    + * container - DOM node that will contain the shape.
    + */
    +mxShape.prototype.create = function(container)
    +{
    +	var node = null;
    +	
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		node = this.createSvg();
    +	}
    +	else if (this.dialect == mxConstants.DIALECT_STRICTHTML ||
    +			(this.preferModeHtml && this.dialect == mxConstants.DIALECT_PREFERHTML) ||
    +			(this.isMixedModeHtml() && this.dialect == mxConstants.DIALECT_MIXEDHTML))
    +	{
    +		node = this.createHtml();
    +	}
    +	else
    +	{
    +		node = this.createVml();
    +	}
    +	
    +	return node;
    +};
    +	
    +/**
    + * Function: createHtml
    + *
    + * Creates and returns the HTML DOM node(s) to represent
    + * this shape. This implementation falls back to <createVml>
    + * so that the HTML creation is optional.
    + */
    +mxShape.prototype.createHtml = function()
    +{
    +	var node = document.createElement('DIV');
    +	this.configureHtmlShape(node);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: destroy
    + *
    + * Destroys the shape by removing it from the DOM and releasing the DOM
    + * node associated with the shape using <mxEvent.release>.
    + */
    +mxShape.prototype.destroy = function()
    +{
    +	if (this.node != null)
    +	{
    +		mxEvent.release(this.node);
    +		
    +		if (this.node.parentNode != null)
    +		{
    +			this.node.parentNode.removeChild(this.node);
    +		}
    +		
    +		if (this.node.glassOverlay)
    +		{
    +			this.node.glassOverlay.parentNode.removeChild(this.node.glassOverlay);
    +			this.node.glassOverlay = null;
    +		}
    +		
    +		this.node = null;
    +	}
    +};
    +
    +/**
    + * Function: apply
    + * 
    + * Applies the style of the given <mxCellState> to the shape. This
    + * implementation assigns the following styles to local fields:
    + * 
    + * - <mxConstants.STYLE_FILLCOLOR> => fill
    + * - <mxConstants.STYLE_GRADIENTCOLOR> => gradient
    + * - <mxConstants.STYLE_GRADIENT_DIRECTION> => gradientDirection
    + * - <mxConstants.STYLE_OPACITY> => opacity
    + * - <mxConstants.STYLE_STROKECOLOR> => stroke
    + * - <mxConstants.STYLE_STROKEWIDTH> => strokewidth
    + * - <mxConstants.STYLE_SHADOW> => isShadow
    + * - <mxConstants.STYLE_DASHED> => isDashed
    + * - <mxConstants.STYLE_SPACING> => spacing
    + * - <mxConstants.STYLE_STARTSIZE> => startSize
    + * - <mxConstants.STYLE_ENDSIZE> => endSize
    + * - <mxConstants.STYLE_ROUNDED> => isRounded
    + * - <mxConstants.STYLE_STARTARROW> => startArrow
    + * - <mxConstants.STYLE_ENDARROW> => endArrow
    + * - <mxConstants.STYLE_ROTATION> => rotation
    + * - <mxConstants.STYLE_DIRECTION> => direction
    + *
    + * This keeps a reference to the <style>. If you need to keep a reference to
    + * the cell, you can override this method and store a local reference to
    + * state.cell or the <mxCellState> itself.
    + *
    + * Parameters:
    + *
    + * state - <mxCellState> of the corresponding cell.
    + */
    +mxShape.prototype.apply = function(state)
    +{
    +	var style = state.style;
    +	this.style = style;
    +	
    +	if (style != null)
    +	{
    +		this.fill = mxUtils.getValue(style, mxConstants.STYLE_FILLCOLOR, this.fill);
    +		this.gradient = mxUtils.getValue(style, mxConstants.STYLE_GRADIENTCOLOR, this.gradient);
    +		this.gradientDirection = mxUtils.getValue(style, mxConstants.STYLE_GRADIENT_DIRECTION, this.gradientDirection);
    +		this.opacity = mxUtils.getValue(style, mxConstants.STYLE_OPACITY, this.opacity);
    +		this.stroke = mxUtils.getValue(style, mxConstants.STYLE_STROKECOLOR, this.stroke);
    +		this.strokewidth = mxUtils.getNumber(style, mxConstants.STYLE_STROKEWIDTH, this.strokewidth);
    +		this.isShadow = mxUtils.getValue(style, mxConstants.STYLE_SHADOW, this.isShadow);
    +		this.isDashed = mxUtils.getValue(style, mxConstants.STYLE_DASHED, this.isDashed);
    +		this.spacing = mxUtils.getValue(style, mxConstants.STYLE_SPACING, this.spacing);
    +		this.startSize = mxUtils.getNumber(style, mxConstants.STYLE_STARTSIZE, this.startSize);
    +		this.endSize = mxUtils.getNumber(style, mxConstants.STYLE_ENDSIZE, this.endSize);
    +		this.isRounded = mxUtils.getValue(style, mxConstants.STYLE_ROUNDED, this.isRounded);
    +		this.startArrow = mxUtils.getValue(style, mxConstants.STYLE_STARTARROW, this.startArrow);
    +		this.endArrow = mxUtils.getValue(style, mxConstants.STYLE_ENDARROW, this.endArrow);
    +		this.rotation = mxUtils.getValue(style, mxConstants.STYLE_ROTATION, this.rotation);
    +		this.direction = mxUtils.getValue(style, mxConstants.STYLE_DIRECTION, this.direction);
    +		
    +		if (this.fill == 'none')
    +		{
    +			this.fill = null;
    +		}
    +
    +		if (this.gradient == 'none')
    +		{
    +			this.gradient = null;
    +		}
    +
    +		if (this.stroke == 'none')
    +		{
    +			this.stroke = null;
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createSvgGroup
    + *
    + * Creates a SVG group element and adds the given shape as a child of the
    + * element. The child is stored in <innerNode> for later access.
    + */
    +mxShape.prototype.createSvgGroup = function(shape)
    +{
    +	var g = document.createElementNS(mxConstants.NS_SVG, 'g');
    +	
    +	// Creates the shape inside an svg group
    +	this.innerNode = document.createElementNS(mxConstants.NS_SVG, shape);
    +	this.configureSvgShape(this.innerNode);
    +	
    +	// Avoids anti-aliasing for non-rounded rectangles with a
    +	// strokewidth of 1 or more pixels
    +	if (shape == 'rect' && this.strokewidth * this.scale >= 1 && !this.isRounded)
    +	{
    +		this.innerNode.setAttribute('shape-rendering', 'optimizeSpeed');
    +	}
    +	
    +	// Creates the shadow
    +	this.shadowNode = this.createSvgShadow(this.innerNode);
    +	
    +	if (this.shadowNode != null)
    +	{
    +		g.appendChild(this.shadowNode);
    +	}
    +	
    +	// Appends the main shape after the shadow
    +	g.appendChild(this.innerNode);
    +	
    +	return g;
    +};
    +
    +/**
    + * Function: createSvgShadow
    + *
    + * Creates a clone of the given node and configures the node's color
    + * to use <mxConstants.SHADOWCOLOR>.
    + */
    +mxShape.prototype.createSvgShadow = function(node)
    +{
    +	if (this.isShadow)
    +	{
    +		var shadow = node.cloneNode(true);
    +		shadow.setAttribute('opacity', mxConstants.SHADOW_OPACITY);
    +		
    +		if (this.fill != null && this.fill != mxConstants.NONE)
    +		{
    +			shadow.setAttribute('fill', mxConstants.SHADOWCOLOR);
    +		}
    +
    +		if (this.stroke != null && this.stroke != mxConstants.NONE)
    +		{
    +			shadow.setAttribute('stroke', mxConstants.SHADOWCOLOR);
    +		}
    +		
    +		return shadow;
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: configureHtmlShape
    + *
    + * Configures the specified HTML node by applying the current color,
    + * bounds, shadow, opacity etc.
    + */
    +mxShape.prototype.configureHtmlShape = function(node)
    +{
    +	if (mxUtils.isVml(node))
    +	{
    +		this.configureVmlShape(node);
    +	}
    +	else
    +	{
    +		node.style.position = 'absolute';
    +		node.style.overflow = 'hidden';
    +		var color = this.stroke;
    +		
    +		if (color != null && color != mxConstants.NONE)
    +		{
    +			node.style.borderColor = color;
    +
    +			if (this.isDashed)
    +			{
    +				node.style.borderStyle = 'dashed';
    +			}
    +			else if (this.strokewidth > 0)
    +			{
    +				node.style.borderStyle = 'solid';
    +			}
    +
    +			node.style.borderWidth = Math.ceil(this.strokewidth * this.scale) + 'px';
    +		}
    +		else
    +		{
    +			node.style.borderWidth = '0px';
    +		}
    +
    +		color = this.fill;
    +		node.style.background = '';
    +		
    +		if (color != null && color != mxConstants.NONE)
    +		{
    +			node.style.backgroundColor = color;
    +		}
    +		else if (this.points == null)
    +		{
    +			this.configureTransparentBackground(node);
    +		}
    +		
    +		if (this.opacity != null)
    +		{
    +			mxUtils.setOpacity(node, this.opacity);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: updateVmlFill
    + *
    + * Updates the given VML fill node.
    + */
    +mxShape.prototype.updateVmlFill = function(node, c1, c2, dir, alpha)
    +{
    +	node.color = c1;
    +	
    +	if (alpha != null && alpha != 100)
    +	{
    +		node.opacity = alpha + '%';
    +		
    +		if (c2 != null)
    +		{
    +			// LATER: Set namespaced attribute without using setAttribute
    +			// which is required for updating the value in IE8 standards.
    +			node.setAttribute('o:opacity2', alpha + '%');
    +		}
    +	}
    +
    +	if (c2 != null)
    +	{
    +		node.type = 'gradient';
    +		node.color2 = c2;
    +		var angle = '180';
    +		
    +		if (this.gradientDirection == mxConstants.DIRECTION_EAST)
    +		{
    +			angle = '270';
    +		}
    +		else if (this.gradientDirection == mxConstants.DIRECTION_WEST)
    +		{
    +			angle = '90';
    +		}
    +		else if (this.gradientDirection == mxConstants.DIRECTION_NORTH)
    +		{
    +			angle = '0';
    +		}
    +
    +		node.angle = angle;
    +	}
    +};
    +
    +/**
    + * Function: updateVmlStrokeNode
    + *
    + * Creates the stroke node for VML.
    + */
    +mxShape.prototype.updateVmlStrokeNode = function(parent)
    +{
    +	// Stroke node is always needed to specify defaults that match SVG output
    +	if (this.strokeNode == null)
    +	{
    +		this.strokeNode = document.createElement('v:stroke');
    +		
    +		// To math SVG defaults jointsyle miter and miterlimit 4
    +		this.strokeNode.joinstyle = 'miter';
    +		this.strokeNode.miterlimit = 4;
    +		
    +		parent.appendChild(this.strokeNode);
    +	}
    +	
    +	if (this.opacity != null)
    +	{
    +		this.strokeNode.opacity = this.opacity + '%';
    +	}
    +	
    +	this.updateVmlDashStyle();
    +};
    +
    +/**
    + * Function: updateVmlStrokeColor
    + *
    + * Updates the VML stroke color for the given node.
    + */
    +mxShape.prototype.updateVmlStrokeColor = function(node)
    +{
    +	var color = this.stroke;
    +
    +	if (color != null && color != mxConstants.NONE)
    +	{
    +		node.stroked = 'true';
    +		node.strokecolor = color;
    +	}
    +	else
    +	{
    +		node.stroked = 'false';
    +	}
    +};
    +
    +/**
    + * Function: configureVmlShape
    + *
    + * Configures the specified VML node by applying the current color,
    + * bounds, shadow, opacity etc.
    + */
    +mxShape.prototype.configureVmlShape = function(node)
    +{
    +	node.style.position = 'absolute';
    +	this.updateVmlStrokeColor(node);
    +	node.style.background = '';
    +	var color = this.fill;
    +	
    +	if (color != null && color != mxConstants.NONE)
    +	{
    +		if (this.fillNode == null)
    +		{
    +			this.fillNode = document.createElement('v:fill');
    +			node.appendChild(this.fillNode);
    +		}
    +
    +		this.updateVmlFill(this.fillNode, color, this.gradient, this.gradientDirection, this.opacity);
    +	}
    +	else
    +	{
    +		node.filled = 'false';
    +		
    +		if (this.points == null)
    +		{
    +			this.configureTransparentBackground(node);
    +		}
    +	}
    +
    +	this.updateVmlStrokeNode(node);
    +	
    +	if (this.isShadow)
    +	{
    +		this.createVmlShadow(node);
    +	}
    +
    +	// Fixes possible hang in IE when arcsize is set on non-rects
    +	if (node.nodeName == 'roundrect')
    +	{
    +		// Workaround for occasional "member not found" error
    +		try
    +		{
    +			var f = mxConstants.RECTANGLE_ROUNDING_FACTOR * 100;
    +
    +			if (this.style != null)
    +			{
    +				f = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, f);
    +			}
    +			
    +			node.setAttribute('arcsize', String(f) + '%');
    +		}
    +		catch (e)
    +		{
    +			// ignore
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createVmlShadow
    + *
    + * Creates the VML shadow node.
    + */
    +mxShape.prototype.createVmlShadow = function(node)
    +{
    +	// Adds a shadow only once per shape
    +	if (this.shadowNode == null)
    +	{
    +		this.shadowNode = document.createElement('v:shadow');
    +		this.shadowNode.on = 'true';
    +		this.shadowNode.color = mxConstants.SHADOWCOLOR;
    +		this.shadowNode.opacity = (mxConstants.SHADOW_OPACITY * 100) + '%';
    +		
    +		this.shadowStrokeNode = document.createElement('v:stroke');
    +		this.shadowNode.appendChild(this.shadowStrokeNode);
    +		
    +		node.appendChild(this.shadowNode);
    +	}
    +};
    +
    +/**
    + * Function: configureTransparentBackground
    + * 
    + * Hook to make the background of a shape transparent. This hook was added as
    + * a workaround for the "display non secure items" warning dialog in IE which
    + * appears if the background:url(transparent.gif) is used in the overlay pane
    + * of a diagram. Since only mxImageShapes currently exist in the overlay pane
    + * this function is only overridden in mxImageShape.
    + */
    +mxShape.prototype.configureTransparentBackground = function(node)
    +{
    +	node.style.background = 'url(\'' + mxClient.imageBasePath + '/transparent.gif\')';
    +};
    +
    +/**
    + * Function: configureSvgShape
    + *
    + * Configures the specified SVG node by applying the current color,
    + * bounds, shadow, opacity etc.
    + */
    +mxShape.prototype.configureSvgShape = function(node)
    +{
    +	var color = this.stroke;
    +	
    +	if (color != null && color != mxConstants.NONE)
    +	{
    +		node.setAttribute('stroke', color);
    +	}
    +	else
    +	{
    +		node.setAttribute('stroke', 'none');
    +	}
    +
    +	color = this.fill;
    +
    +	if (color != null && color != mxConstants.NONE)
    +	{
    +		// Fetches a reference to a shared gradient
    +		if (this.gradient != null)
    +		{
    +			var id = this.getGradientId(color, this.gradient);
    +			
    +			if (this.gradientNode != null && this.gradientNode.getAttribute('id') != id)
    +			{
    +				this.gradientNode = null;
    +				node.setAttribute('fill', '');
    +			}
    +			
    +			if (this.gradientNode == null)
    +			{
    +				this.gradientNode = this.createSvgGradient(id,
    +					color, this.gradient, node);
    +				node.setAttribute('fill', 'url(#'+id+')');
    +			}
    +		}
    +		else
    +		{
    +			// TODO: Remove gradient from document if no longer shared
    +			this.gradientNode = null;
    +			node.setAttribute('fill', color);
    +		}
    +	}
    +	else
    +	{
    +		node.setAttribute('fill', 'none');
    +	}
    +
    +	if (this.opacity != null)
    +	{
    +		// Improves opacity performance in Firefox
    +		node.setAttribute('fill-opacity', this.opacity / 100);
    +		node.setAttribute('stroke-opacity', this.opacity / 100);
    +	}
    +};
    +
    +/**
    + * Function: getGradientId
    + *
    + * Creates a unique ID for the gradient of this shape.
    + */
    +mxShape.prototype.getGradientId = function(start, end)
    +{
    +	// Removes illegal characters from gradient ID
    +	if (start.charAt(0) == '#')
    +	{
    +		start = start.substring(1);
    +	}
    +	
    +	if (end.charAt(0) == '#')
    +	{
    +		end = end.substring(1);
    +	}
    +	
    +	// Workaround for gradient IDs not working in Safari 5 / Chrome 6
    +	// if they contain uppercase characters
    +	start = start.toLowerCase();
    +	end = end.toLowerCase();
    +
    +	var dir = null;
    +	
    +	if (this.gradientDirection == null ||
    +		this.gradientDirection == mxConstants.DIRECTION_SOUTH)
    +	{
    +		dir = 'south';
    +	}
    +	else if (this.gradientDirection == mxConstants.DIRECTION_EAST)
    +	{
    +		dir = 'east';
    +	}
    +	else
    +	{
    +		var tmp = start;
    +		start = end;
    +		end = tmp;
    +		
    +		if (this.gradientDirection == mxConstants.DIRECTION_NORTH)
    +		{
    +			dir = 'south';
    +		}
    +		else if (this.gradientDirection == mxConstants.DIRECTION_WEST)
    +		{
    +			dir = 'east';
    +		}
    +	}
    +	
    +	return 'mx-gradient-'+start+'-'+end+'-'+dir;
    +};
    +
    +/**
    + * Function: createSvgPipe
    + *
    + * Creates an invisible path which is used to increase the hit detection for
    + * edges in SVG.
    + */
    +mxShape.prototype.createSvgPipe = function(id, start, end, node)
    +{
    +	var pipe = document.createElementNS(mxConstants.NS_SVG, 'path');
    +	pipe.setAttribute('pointer-events', 'stroke');
    +	pipe.setAttribute('fill', 'none');
    +	pipe.setAttribute('visibility', 'hidden');
    +	// Workaround for Opera ignoring the visiblity attribute above while
    +	// other browsers need a stroke color to perform the hit-detection but
    +	// do not ignore the visibility attribute. Side-effect is that Opera's
    +	// hit detection for horizontal/vertical edges seems to ignore the pipe.
    +	pipe.setAttribute('stroke', (mxClient.IS_OP) ? 'none' : 'white');
    +	
    +	return pipe;
    +};
    +
    +/**
    + * Function: createSvgGradient
    + *
    + * Creates a gradient object for SVG using the specified startcolor,
    + * endcolor and opacity.
    + */
    +mxShape.prototype.createSvgGradient = function(id, start, end, node)
    +{
    +	var gradient = this.insertGradientNode;
    +	
    +	if (gradient == null)
    +	{
    +		gradient = document.createElementNS(mxConstants.NS_SVG, 'linearGradient');
    +		gradient.setAttribute('id', id);
    +		gradient.setAttribute('x1', '0%');
    +		gradient.setAttribute('y1', '0%');
    +		gradient.setAttribute('x2', '0%');
    +		gradient.setAttribute('y2', '0%');
    +		
    +		if (this.gradientDirection == null ||
    +			this.gradientDirection == mxConstants.DIRECTION_SOUTH)
    +		{
    +			gradient.setAttribute('y2', '100%');
    +		}
    +		else if (this.gradientDirection == mxConstants.DIRECTION_EAST)
    +		{
    +			gradient.setAttribute('x2', '100%');
    +		}
    +		else if (this.gradientDirection == mxConstants.DIRECTION_NORTH)
    +		{
    +			gradient.setAttribute('y1', '100%');
    +		}
    +		else if (this.gradientDirection == mxConstants.DIRECTION_WEST)
    +		{
    +			gradient.setAttribute('x1', '100%');
    +		}
    +		
    +		var stop = document.createElementNS(mxConstants.NS_SVG, 'stop');
    +		stop.setAttribute('offset', '0%');
    +		stop.setAttribute('style', 'stop-color:'+start);
    +		gradient.appendChild(stop);
    +		
    +		stop = document.createElementNS(mxConstants.NS_SVG, 'stop');
    +		stop.setAttribute('offset', '100%');
    +		stop.setAttribute('style', 'stop-color:'+end);
    +		gradient.appendChild(stop);
    +	}
    +	
    +	// Inserted later when the owner SVG element is known
    +	this.insertGradientNode = gradient;
    +	
    +	return gradient;
    +};
    +
    +/**
    + * Function: createPoints
    + *
    + * Creates a path expression using the specified commands for this.points.
    + * If <isRounded> is true, then the path contains curves for the corners.
    + */
    +mxShape.prototype.createPoints = function(moveCmd, lineCmd, curveCmd, isRelative)
    +{
    +	var offsetX = (isRelative) ? this.bounds.x : 0;
    +	var offsetY = (isRelative) ? this.bounds.y : 0;
    +
    +	// Workaround for crisp shape-rendering in IE9
    +	var crisp = (this.crisp && this.dialect == mxConstants.DIALECT_SVG && mxClient.IS_IE) ? 0.5 : 0;
    +
    +	if (isNaN(this.points[0].x) || isNaN(this.points[0].y))
    +	{
    +		return null;
    +	}
    +	
    +	var size = mxConstants.LINE_ARCSIZE * this.scale;
    +	var p0 = this.points[0];
    +	
    +	if (this.startOffset != null)
    +	{
    +		p0 = p0.clone();
    +		p0.x += this.startOffset.x;
    +		p0.y += this.startOffset.y;
    +	}
    +	
    +	var points = moveCmd + ' ' + (Math.round(p0.x - offsetX) + crisp) + ' ' +
    +					(Math.round(p0.y - offsetY) + crisp) + ' ';
    +	
    +	for (var i = 1; i < this.points.length; i++)
    +	{
    +		p0 = this.points[i - 1];
    +		var pt = this.points[i];
    +		
    +		if (isNaN(pt.x) || isNaN(pt.y))
    +		{
    +			return null;
    +		}
    +		
    +		if (i == this.points.length - 1 && this.endOffset != null)
    +		{
    +			pt = pt.clone();
    +			pt.x += this.endOffset.x;
    +			pt.y += this.endOffset.y;
    +		}
    +		
    +		var dx = p0.x - pt.x;
    +		var dy = p0.y - pt.y;
    +		
    +		if ((this.isRounded && i < this.points.length - 1) &&
    +			(dx != 0 || dy != 0) && this.scale > 0.3)
    +		{
    +			// Draws a line from the last point to the current point with a spacing
    +			// of size off the current point into direction of the last point
    +			var dist = Math.sqrt(dx * dx + dy * dy);
    +			var nx1 = dx * Math.min(size, dist / 2) / dist;
    +			var ny1 = dy * Math.min(size, dist / 2) / dist;
    +			points += lineCmd + ' ' + (Math.round(pt.x + nx1 - offsetX) + crisp) + ' ' + 
    +						(Math.round(pt.y + ny1 - offsetY) + crisp) + ' ';
    +
    +			// Draws a curve from the last point to the current point with a spacing
    +			// of size off the current point into direction of the next point
    +			var pe = this.points[i+1];
    +			dx = pe.x - pt.x;
    +			dy = pe.y - pt.y;
    +			
    +			dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +			
    +			if (dist != 0)
    +			{
    +				var nx2 = dx * Math.min(size, dist / 2) / dist;
    +				var ny2 = dy * Math.min(size, dist / 2) / dist;
    +				
    +				points += curveCmd + ' ' + Math.round(pt.x - offsetX) + ' '+
    +						Math.round(pt.y - offsetY) + ' ' + Math.round(pt.x - offsetX) + ',' +
    +						Math.round(pt.y - offsetY) + ' ' + (Math.round(pt.x + nx2 - offsetX) + crisp) + ' ' +
    +							(Math.round(pt.y + ny2 - offsetY) + crisp) + ' ';
    +			}
    +		}
    +		else
    +		{
    +			points += lineCmd + ' ' + (Math.round(pt.x - offsetX) + crisp) + ' ' + (Math.round(pt.y - offsetY) + crisp) + ' ';
    +		}
    +	}
    +	
    +	return points;
    +};
    +
    +/**
    + * Function: updateHtmlShape
    + *
    + * Updates the bounds or points of the specified HTML node and
    + * updates the inner children to reflect the changes.
    + */
    +mxShape.prototype.updateHtmlShape = function(node)
    +{
    +	if (node != null)
    +	{
    +		if (mxUtils.isVml(node))
    +		{
    +			this.updateVmlShape(node);
    +		}
    +		else
    +		{
    +			var sw = Math.ceil(this.strokewidth * this.scale);
    +			node.style.borderWidth = Math.max(1, sw) + 'px';
    +			
    +			if (this.bounds != null && !isNaN(this.bounds.x) && !isNaN(this.bounds.y) &&
    +				!isNaN(this.bounds.width) && !isNaN(this.bounds.height))
    +			{
    +				node.style.left = Math.round(this.bounds.x - sw / 2) + 'px';
    +				node.style.top = Math.round(this.bounds.y - sw / 2) + 'px';
    +
    +				if (document.compatMode == 'CSS1Compat')
    +				{
    +					sw = -sw;
    +				}
    +				
    +				node.style.width = Math.round(Math.max(0, this.bounds.width + sw)) + 'px';
    +				node.style.height = Math.round(Math.max(0, this.bounds.height + sw)) + 'px';
    +				
    +				if (this.bounds.width == 0 || this.bounds.height == 0)
    +				{
    +					node.style.visibility = 'hidden';
    +				}
    +				else
    +				{
    +					node.style.visibility = 'visible';
    +				}
    +			}
    +		}
    +		
    +		if (this.points != null && this.bounds != null && !mxUtils.isVml(node))
    +		{
    +			if (this.divContainer == null)
    +			{
    +				this.divContainer = node;
    +			}
    +
    +			while (this.divContainer.firstChild != null)
    +			{
    +				mxEvent.release(this.divContainer.firstChild);
    +				this.divContainer.removeChild(this.divContainer.firstChild);
    +			}
    +			
    +			node.style.borderStyle = '';
    +			node.style.background = '';
    +			
    +			if (this.points.length == 2)
    +			{
    +				var p0 = this.points[0];
    +				var pe = this.points[1];
    +
    +				var dx = pe.x - p0.x;
    +				var dy = pe.y - p0.y;
    +
    +				if (dx == 0 || dy == 0)
    +				{
    +					node.style.borderStyle = 'solid';
    +				}
    +				else
    +				{
    +					node.style.width = Math.round(this.bounds.width + 1) + 'px';
    +					node.style.height = Math.round(this.bounds.height + 1) + 'px';
    +					
    +					var length = Math.sqrt(dx * dx + dy * dy);
    +					var dotCount = 1 + (length / (8 * this.scale));
    +					
    +					var nx = dx / dotCount;
    +					var ny = dy / dotCount;
    +					var x = p0.x - this.bounds.x;
    +					var y = p0.y - this.bounds.y;
    +					
    +					for (var i = 0; i < dotCount; i++)
    +					{
    +						var tmp = document.createElement('DIV');
    +						
    +						tmp.style.position = 'absolute';
    +						tmp.style.overflow = 'hidden';
    +						
    +						tmp.style.left = Math.round(x) + 'px';
    +						tmp.style.top = Math.round(y) + 'px';
    +						tmp.style.width = Math.max(1, 2 * this.scale) + 'px';
    +						tmp.style.height = Math.max(1, 2 * this.scale) + 'px';
    +
    +						tmp.style.backgroundColor = this.stroke;
    +						this.divContainer.appendChild(tmp);
    +						
    +						x += nx;
    +						y += ny;
    +					}
    +				}
    +			}
    +			else if (this.points.length == 3)
    +			{
    +				var mid = this.points[1];
    +				
    +				var n = '0';
    +				var s = '1';
    +				var w = '0';
    +				var e = '1';
    +				
    +				if (mid.x == this.bounds.x)
    +				{
    +					e = '0';
    +					w = '1';
    +				}
    +				
    +				if (mid.y == this.bounds.y)
    +				{
    +					n = '1';
    +					s = '0';
    +				}
    +				
    +				node.style.borderStyle = 'solid';
    +				node.style.borderWidth = n + ' ' + e + ' ' + s + ' ' + w + 'px';
    +			}
    +			else
    +			{
    +				node.style.width = Math.round(this.bounds.width + 1) + 'px';
    +				node.style.height = Math.round(this.bounds.height + 1) + 'px';
    +				var last = this.points[0];
    +				
    +				for (var i = 1; i < this.points.length; i++)
    +				{
    +					var next = this.points[i];
    +					
    +					// TODO: Use one div for multiple lines
    +					var tmp = document.createElement('DIV');
    +
    +					tmp.style.position = 'absolute';
    +					tmp.style.overflow = 'hidden';
    +
    +					tmp.style.borderColor = this.stroke;
    +					tmp.style.borderStyle = 'solid';
    +					tmp.style.borderWidth = '1 0 0 1px';
    +					
    +					var x = Math.min(next.x, last.x) - this.bounds.x;
    +					var y = Math.min(next.y, last.y) - this.bounds.y;
    +					var w = Math.max(1, Math.abs(next.x - last.x));
    +					var h = Math.max(1, Math.abs(next.y - last.y));
    +					
    +					tmp.style.left = x + 'px';
    +					tmp.style.top = y + 'px';
    +					tmp.style.width = w + 'px';
    +					tmp.style.height = h + 'px';
    +					
    +					this.divContainer.appendChild(tmp);
    +					last = next;
    +				}
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: updateVmlDashStyle
    + *
    + * Updates the dashstyle in the stroke node.
    + */
    +mxShape.prototype.updateVmlDashStyle = function()
    +{
    +	if (this.isDashed)
    +	{
    +		if (this.strokeNode.dashstyle != 'dash')
    +		{
    +			this.strokeNode.dashstyle = 'dash';
    +		}
    +	}
    +	else if (this.strokeNode.dashstyle != 'solid')
    +	{
    +		this.strokeNode.dashstyle = 'solid';
    +	}
    +};
    +
    +/**
    + * Function: updateVmlShape
    + *
    + * Updates the bounds or points of the specified VML node and
    + * updates the inner children to reflect the changes.
    + */
    +mxShape.prototype.updateVmlShape = function(node)
    +{
    +	node.strokeweight = (this.strokewidth * this.scale) + 'px';
    +
    +	// Dash pattern needs updating as it depends on strokeweight in VML
    +	if (this.strokeNode != null)
    +	{
    +		this.updateVmlDashStyle();
    +	}
    +	
    +	// Updates the offset of the shadow
    +	if (this.shadowNode != null)
    +	{
    +		var dx = Math.round(mxConstants.SHADOW_OFFSET_X * this.scale);
    +		var dy = Math.round(mxConstants.SHADOW_OFFSET_Y * this.scale);
    +		this.shadowNode.offset = dx + 'px,' + dy + 'px';
    +	}
    +
    +	if (this.bounds != null && !isNaN(this.bounds.x) && !isNaN(this.bounds.y) &&
    +		!isNaN(this.bounds.width) && !isNaN(this.bounds.height))
    +	{
    +		// Only top-level nodes are non-relative and rotated
    +		if (node.parentNode != this.node)
    +		{
    +			node.style.left = Math.round(this.bounds.x) + 'px';
    +			node.style.top = Math.round(this.bounds.y) + 'px';
    +			
    +			if (this.points == null)
    +			{
    +				if (this.rotation != null && this.rotation != 0)
    +				{
    +					node.style.rotation = this.rotation;
    +				}
    +				else if (node.style.rotation != null)
    +				{
    +					node.style.rotation = '';
    +				}
    +			}
    +		}
    +		
    +		var w = Math.max(0, Math.round(this.bounds.width));
    +		var h = Math.max(0, Math.round(this.bounds.height));
    +		node.style.width = w + 'px';
    +		node.style.height = h + 'px';
    +
    +		// Groups and shapes need a coordsize
    +		if (this.points != null || node.nodeName == 'shape' || node.nodeName == 'group')
    +		{
    +			node.coordsize = w + ',' + h;
    +		}
    +	}
    +	
    +	if (this.points != null && node.nodeName != 'group')
    +	{
    +		if (node.nodeName == 'polyline' && node.points != null)
    +		{
    +			var points = '';
    +			
    +			for (var i = 0; i < this.points.length; i++)
    +			{
    +				points += this.points[i].x + ',' + this.points[i].y + ' ';
    +			}
    +			
    +			node.points.value = points;
    +			
    +			node.style.left = null;
    +			node.style.top = null;
    +			node.style.width = null;
    +			node.style.height = null;
    +		}
    +		else if (this.bounds != null)
    +		{
    +			var points = this.createPoints('m', 'l', 'c', true);
    +			
    +			// Smooth style for VML (experimental)
    +			if (this.style != null && this.style[mxConstants.STYLE_SMOOTH])
    +			{
    +				var pts = this.points;
    +				var n = pts.length;
    +				
    +				if (n > 3)
    +				{
    +					var x0 = this.bounds.x;
    +					var y0 = this.bounds.y;
    +					points = 'm ' + Math.round(pts[0].x - x0) + ' ' + Math.round(pts[0].y - y0) + ' qb';
    +					
    +					for (var i = 1; i < n - 1; i++)
    +					{
    +						points += ' ' + Math.round(pts[i].x - x0) + ' ' + Math.round(pts[i].y - y0);
    +					}
    +
    +					points += ' nf l ' + Math.round(pts[n - 1].x - x0) + ' ' + Math.round(pts[n - 1].y - y0);
    +				}
    +			}
    +
    +			node.path = points + ' e';
    +		}
    +	}
    +};
    +
    +/**
    + * Function: updateSvgBounds
    + * 
    + * Updates the bounds of the given node using <bounds>.
    + */
    +mxShape.prototype.updateSvgBounds = function(node)
    +{
    +	var w = this.bounds.width;
    +	var h = this.bounds.height;
    +	
    +	if (this.isRounded && !(this.crisp && mxClient.IS_IE))
    +	{
    +		node.setAttribute('x', this.bounds.x);
    +		node.setAttribute('y', this.bounds.y);
    +		node.setAttribute('width', w);
    +		node.setAttribute('height', h);
    +	}
    +	else
    +	{
    +		// Workaround for crisp shape-rendering in IE9
    +		var dd = (this.crisp && mxClient.IS_IE) ? 0.5 : 0;
    +		node.setAttribute('x', Math.round(this.bounds.x) + dd);
    +		node.setAttribute('y', Math.round(this.bounds.y) + dd);
    +
    +		w = Math.round(w);
    +		h = Math.round(h);
    +		
    +		node.setAttribute('width', w);
    +		node.setAttribute('height', h);
    +	}
    +
    +	if (this.isRounded)
    +	{
    +		var f = mxConstants.RECTANGLE_ROUNDING_FACTOR * 100;
    +
    +		if (this.style != null)
    +		{
    +			f = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, f) / 100;
    +		}
    +		
    +		var r = Math.min(w * f,  h * f);
    +		node.setAttribute('rx', r);
    +		node.setAttribute('ry', r);
    +	}
    +
    +	this.updateSvgTransform(node, node == this.shadowNode);
    +};
    +
    +/**
    + * Function: updateSvgPath
    + * 
    + * Updates the path of the given node using <points>.
    + */
    +mxShape.prototype.updateSvgPath = function(node)
    +{
    +	var d = this.createPoints('M', 'L', 'C', false);
    +	
    +	if (d != null)
    +	{
    +		node.setAttribute('d', d);
    +		
    +		// Smooth style for SVG (experimental)
    +		if (this.style != null && this.style[mxConstants.STYLE_SMOOTH])
    +		{
    +			var pts = this.points;
    +			var n = pts.length;
    +			
    +			if (n > 3)
    +			{
    +				var points = 'M '+pts[0].x+' '+pts[0].y+' ';
    +				points += ' Q '+pts[1].x + ' ' + pts[1].y + ' ' +
    +					' '+pts[2].x + ' ' + pts[2].y;
    +				
    +				for (var i = 3; i < n; i++)
    +				{
    +					points += ' T ' + pts[i].x + ' ' + pts[i].y;
    +				}
    +
    +				node.setAttribute('d', points);
    +			}
    +		}
    +
    +		node.removeAttribute('x');
    +		node.removeAttribute('y');
    +		node.removeAttribute('width');
    +		node.removeAttribute('height');
    +	}
    +};
    +
    +/**
    + * Function: updateSvgScale
    + *
    + * Updates the properties of the given node that depend on the scale and checks
    + * the crisp rendering attribute.
    + */
    +mxShape.prototype.updateSvgScale = function(node)
    +{
    +	node.setAttribute('stroke-width', Math.round(Math.max(1, this.strokewidth * this.scale)));
    +
    +	if (this.isDashed)
    +	{
    +		var phase = Math.max(1, Math.round(3 * this.scale * this.strokewidth));
    +		node.setAttribute('stroke-dasharray', phase + ' ' + phase);
    +	}
    +
    +	if (this.crisp && (this.roundedCrispSvg || this.isRounded != true))
    +	{
    +		node.setAttribute('shape-rendering', 'crispEdges');
    +	}
    +	else
    +	{
    +		node.removeAttribute('shape-rendering');
    +	}
    +};
    +
    +/**
    + * Function: updateSvgShape
    + *
    + * Updates the bounds or points of the specified SVG node and
    + * updates the inner children to reflect the changes.
    + */
    +mxShape.prototype.updateSvgShape = function(node)
    +{
    +	if (this.points != null && this.points[0] != null)
    +	{
    +		this.updateSvgPath(node);
    +	}
    +	else if (this.bounds != null)
    +	{
    +		this.updateSvgBounds(node);
    +	}
    +	
    +	this.updateSvgScale(node);
    +};
    +
    +/**
    + * Function: getSvgShadowTransform
    + * 
    + * Returns the current transformation for SVG shadows.
    + */
    +mxShape.prototype.getSvgShadowTransform = function(node, shadow)
    +{
    +	var dx = mxConstants.SHADOW_OFFSET_X * this.scale;
    +	var dy = mxConstants.SHADOW_OFFSET_Y * this.scale;
    +	
    +	return 'translate(' + dx + ' ' + dy + ')';
    +};
    +
    +/**
    + * Function: updateSvgTransform
    + * 
    + * Updates the tranform of the given node.
    + */
    +mxShape.prototype.updateSvgTransform = function(node, shadow)
    +{
    +	var st = (shadow) ? this.getSvgShadowTransform() : '';
    +	
    +	if (this.rotation != null && this.rotation != 0)
    +	{
    +		var cx = this.bounds.x + this.bounds.width / 2;
    +		var cy = this.bounds.y + this.bounds.height / 2;
    +		node.setAttribute('transform', 'rotate(' + this.rotation + ',' + cx + ',' + cy + ') ' + st);
    +	}
    +	else
    +	{
    +		if (shadow)
    +		{
    +			node.setAttribute('transform', st);
    +		}
    +		else
    +		{
    +			node.removeAttribute('transform');
    +		}
    +	}
    +};
    +
    +/**
    + * Function: reconfigure
    + *
    + * Reconfigures this shape. This will update the colors etc in
    + * addition to the bounds or points.
    + */
    +mxShape.prototype.reconfigure = function()
    +{
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		if (this.innerNode != null)
    +		{
    +			this.configureSvgShape(this.innerNode);
    +		}
    +		else
    +		{
    +			this.configureSvgShape(this.node);
    +		}
    +
    +		if (this.insertGradientNode != null)
    +		{
    +			this.insertGradient(this.insertGradientNode);
    +			this.insertGradientNode = null;
    +		}
    +	}
    +	else if (mxUtils.isVml(this.node))
    +	{
    +		this.node.style.visibility = 'hidden';
    +		this.configureVmlShape(this.node);
    +		this.node.style.visibility = 'visible';
    +	}
    +	else
    +	{
    +		this.node.style.visibility = 'hidden';
    +		this.configureHtmlShape(this.node);
    +		this.node.style.visibility = 'visible';
    +	}
    +};
    +
    +/**
    + * Function: redraw
    + *
    + * Invokes <redrawSvg>, <redrawVml> or <redrawHtml> depending on the
    + * dialect of the shape.
    + */
    +mxShape.prototype.redraw = function()
    +{
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		this.redrawSvg();
    +	}
    +	else if (mxUtils.isVml(this.node))
    +	{
    +		this.node.style.visibility = 'hidden';
    +		this.redrawVml();
    +		this.node.style.visibility = 'visible';
    +	}
    +	else
    +	{
    +		this.redrawHtml();
    +	}
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Redraws this SVG shape by invoking <updateSvgShape> on this.node,
    + * this.innerNode and this.shadowNode.
    + */
    +mxShape.prototype.redrawSvg = function()
    +{
    +	if (this.innerNode != null)
    +	{
    +		this.updateSvgShape(this.innerNode);
    +		
    +		if (this.shadowNode != null)
    +		{
    +			this.updateSvgShape(this.shadowNode);
    +		}
    +	}
    +	else
    +	{
    +		this.updateSvgShape(this.node);
    +
    +		// Updates the transform of the shadow
    +		if (this.shadowNode != null)
    +		{
    +			this.shadowNode.setAttribute('transform',  this.getSvgShadowTransform());
    +		}
    +	}
    +	
    +	this.updateSvgGlassPane();
    +};
    +
    +/**
    + * Function: updateVmlGlassPane
    + * 
    + * Draws the glass overlay if mxConstants.STYLE_GLASS is 1.
    + */
    +mxShape.prototype.updateVmlGlassPane = function()
    +{
    +	// Currently only used in mxLabel. Most shapes would have to be changed to use
    +	// a group node in VML which might affect performance for glass-less cells.
    +	if (this.bounds != null && this.node.nodeName == 'group' && this.style != null &&
    +		mxUtils.getValue(this.style, mxConstants.STYLE_GLASS, 0) == 1)
    +	{
    +		// Glass overlay
    +		if (this.node.glassOverlay == null)
    +		{
    +			// Creates glass overlay
    +			this.node.glassOverlay = document.createElement('v:shape');
    +			this.node.glassOverlay.setAttribute('filled', 'true');
    +			this.node.glassOverlay.setAttribute('fillcolor', 'white');
    +			this.node.glassOverlay.setAttribute('stroked', 'false');
    +			
    +			var fillNode = document.createElement('v:fill');
    +			fillNode.setAttribute('type', 'gradient');
    +			fillNode.setAttribute('color', 'white');
    +			fillNode.setAttribute('color2', 'white');
    +			fillNode.setAttribute('opacity', '90%');
    +			fillNode.setAttribute('o:opacity2', '15%');
    +			fillNode.setAttribute('angle', '180');
    +			
    +			this.node.glassOverlay.appendChild(fillNode);
    +			this.node.appendChild(this.node.glassOverlay);
    +		}
    +		
    +		var size = 0.4;
    +		
    +		// TODO: Mask with rectangle or rounded rectangle of label
    +		var b = this.bounds;
    +		var sw = Math.ceil(this.strokewidth * this.scale / 2 + 1);
    +		var d = 'm ' + (-sw) + ' ' + (-sw) + ' l ' + (-sw) + ' ' + Math.round(b.height * size) +
    +			' c ' + Math.round(b.width * 0.3) + ' ' + Math.round(b.height * 0.6) +
    +			' ' + Math.round(b.width * 0.7) + ' ' + Math.round(b.height * 0.6) +
    +			' ' + Math.round(b.width + sw) + ' ' + Math.round(b.height * size) +
    +			' l '+Math.round(b.width + sw)+' ' + (-sw) + ' x e';
    +		this.node.glassOverlay.style.position = 'absolute';
    +		this.node.glassOverlay.style.width = b.width + 'px';
    +		this.node.glassOverlay.style.height = b.height + 'px';
    +		this.node.glassOverlay.setAttribute('coordsize',
    +				Math.round(this.bounds.width) + ',' +
    +				Math.round(this.bounds.height));
    +		this.node.glassOverlay.setAttribute('path', d);
    +	}
    +	else if (this.node.glassOverlay != null)
    +	{
    +		this.node.glassOverlay.parentNode.removeChild(this.node.glassOverlay);
    +		this.node.glassOverlay = null;
    +	}
    +};
    +
    +/**
    + * Function: updateSvgGlassPane
    + *
    + * Draws the glass overlay if mxConstants.STYLE_GLASS is 1.
    + */
    +mxShape.prototype.updateSvgGlassPane = function()
    +{
    +	if (this.node.nodeName == 'g' && this.style != null &&
    +		mxUtils.getValue(this.style, mxConstants.STYLE_GLASS, 0) == 1)
    +	{
    +		// Glass overlay
    +		if (this.node.glassOverlay == null)
    +		{
    +			// Glass overlay gradient
    +			if (this.node.ownerSVGElement.glassGradient == null)
    +			{
    +				// Creates glass overlay gradient
    +				var glassGradient = document.createElementNS(mxConstants.NS_SVG, 'linearGradient');
    +				glassGradient.setAttribute('x1', '0%');
    +				glassGradient.setAttribute('y1', '0%');
    +				glassGradient.setAttribute('x2', '0%');
    +				glassGradient.setAttribute('y2', '100%');
    +				
    +				var stop1 = document.createElementNS(mxConstants.NS_SVG, 'stop');
    +				stop1.setAttribute('offset', '0%');
    +				stop1.setAttribute('style', 'stop-color:#ffffff;stop-opacity:0.9');
    +				glassGradient.appendChild(stop1);
    +				
    +				var stop2 = document.createElementNS(mxConstants.NS_SVG, 'stop');
    +				stop2.setAttribute('offset', '100%');
    +				stop2.setAttribute('style', 'stop-color:#ffffff;stop-opacity:0.1');
    +				glassGradient.appendChild(stop2);
    +				
    +				// Finds a unique ID for the gradient
    +				var prefix = 'mx-glass-gradient-';
    +				var counter = 0;
    +				
    +				while (document.getElementById(prefix+counter) != null)
    +				{
    +					counter++;
    +				}
    +				
    +				glassGradient.setAttribute('id', prefix+counter);
    +				this.node.ownerSVGElement.appendChild(glassGradient);
    +				this.node.ownerSVGElement.glassGradient = glassGradient;
    +			}
    +			
    +			// Creates glass overlay
    +			this.node.glassOverlay = document.createElementNS(mxConstants.NS_SVG, 'path');
    +			// LATER: Not sure what the behaviour is for mutiple SVG elements in page.
    +			// Probably its possible that this points to an element in another SVG
    +			// node which when removed will result in an undefined background.
    +			var id = this.node.ownerSVGElement.glassGradient.getAttribute('id');
    +			this.node.glassOverlay.setAttribute('style', 'fill:url(#'+id+');');
    +			this.node.appendChild(this.node.glassOverlay);
    +		}
    +		
    +		var size = 0.4;
    +		
    +		// TODO: Mask with rectangle or rounded rectangle of label
    +		var b = this.bounds;
    +		var sw = Math.ceil(this.strokewidth * this.scale / 2);
    +		var d = 'm ' + (b.x - sw) + ',' + (b.y - sw) +
    +			' L ' + (b.x - sw) + ',' + (b.y + b.height * size) +
    +			' Q '+ (b.x + b.width * 0.5) + ',' + (b.y + b.height * 0.7) + ' '+
    +			(b.x + b.width + sw) + ',' + (b.y + b.height * size) +
    +			' L ' + (b.x + b.width + sw) + ',' + (b.y - sw) + ' z';
    +		this.node.glassOverlay.setAttribute('d', d);
    +	}
    +	else if (this.node.glassOverlay != null)
    +	{
    +		this.node.glassOverlay.parentNode.removeChild(this.node.glassOverlay);
    +		this.node.glassOverlay = null;
    +	}
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Redraws this VML shape by invoking <updateVmlShape> on this.node.
    + */
    +mxShape.prototype.redrawVml = function()
    +{
    +	this.node.style.visibility = 'hidden';
    +	this.updateVmlShape(this.node);
    +	this.updateVmlGlassPane();
    +	this.node.style.visibility = 'visible';
    +};
    +
    +/**
    + * Function: redrawHtml
    + *
    + * Redraws this HTML shape by invoking <updateHtmlShape> on this.node.
    + */
    +mxShape.prototype.redrawHtml = function()
    +{
    +	this.updateHtmlShape(this.node);
    +};
    +
    +/**
    + * Function: getRotation
    + * 
    + * Returns the current rotation including direction.
    + */
    +mxShape.prototype.getRotation = function()
    +{
    +	var rot = this.rotation || 0;
    +	
    +	// Default direction is east (ignored if rotation exists)
    +	if (this.direction != null)
    +	{
    +		if (this.direction == 'north')
    +		{
    +			rot += 270;
    +		}
    +		else if (this.direction == 'west')
    +		{
    +			rot += 180;
    +		}
    +		else if (this.direction == 'south')
    +		{
    +			rot += 90;
    +		}
    +	}
    +	
    +	return rot;
    +};
    +
    +/**
    + * Function: createPath
    + *
    + * Creates an <mxPath> for the specified format and origin. The path object is
    + * then passed to <redrawPath> and <mxPath.getPath> is returned.
    + */
    +mxShape.prototype.createPath = function(arg)
    +{
    +	var x = this.bounds.x;
    +	var y = this.bounds.y;
    +	var w = this.bounds.width;
    +	var h = this.bounds.height;
    +	var dx = 0;
    +	var dy = 0;
    +	
    +	// Inverts bounds for stencils which are rotated 90 or 270 degrees
    +	if (this.direction == 'north' || this.direction == 'south')
    +	{
    +		dx = (w - h) / 2;
    +		dy = (h - w) / 2;
    +		x += dx;
    +		y += dy;
    +		var tmp = w;
    +		w = h;
    +		h = tmp;
    +	}
    +	
    +	var rotation = this.getRotation();
    +	var path = null;
    +	
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		path = new mxPath('svg');
    +		path.setTranslate(x, y);
    +
    +		// Adds rotation as a separate transform
    +		if (rotation != 0)
    +		{
    +			var cx = this.bounds.getCenterX();
    +			var cy = this.bounds.getCenterY();
    +			var transform = 'rotate(' + rotation + ' ' + cx + ' ' + cy + ')';
    +			
    +			if (this.innerNode != null)
    +			{
    +				this.innerNode.setAttribute('transform', transform);
    +			}
    +			
    +			if (this.foreground != null)
    +			{
    +				this.foreground.setAttribute('transform', transform);
    +			}
    +
    +			// Shadow needs different transform so that it ends up on the correct side
    +			if (this.shadowNode != null)
    +			{
    +				this.shadowNode.setAttribute('transform',  this.getSvgShadowTransform() + ' ' + transform);
    +			}
    +		}
    +	}
    +	else
    +	{
    +		path = new mxPath('vml');
    +		path.setTranslate(dx, -dx);
    +		
    +		if (rotation != 0)
    +		{
    +			this.node.style.rotation = rotation;
    +		}
    +	}
    +	
    +	this.redrawPath(path, x, y, w, h, arg);
    +	
    +	return path.getPath();
    +};
    +
    +/**
    + * Function: redrawPath
    + *
    + * Draws the path for this shape. This implementation is empty. See
    + * <mxActor> and <mxCylinder> for implementations. 
    + */
    +mxShape.prototype.redrawPath = function(path, x, y, w, h)
    +{
    +	// do nothing
    +};
    diff --git a/javascript/src/js/shape/mxStencil.js b/javascript/src/js/shape/mxStencil.js
    new file mode 100644
    index 000000000..a1da1ff29
    --- /dev/null
    +++ b/javascript/src/js/shape/mxStencil.js
    @@ -0,0 +1,1567 @@
    +/**
    + * $Id: mxStencil.js,v 1.79 2012-05-15 13:52:58 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxStencil
    + *
    + * Implements a generic shape which is based on a XML node as a description.
    + * The node contains a background and a foreground node, which contain the
    + * definition to render the respective part of the shape. Note that the
    + * fill, stroke or fillstroke of the background is be the first statement
    + * of the foreground. This is because the content of the background node
    + * maybe used to not only render the shape itself, but also its shadow and
    + * other elements which do not require a fill, stroke or fillstroke.
    + * 
    + * The shape uses a coordinate system with a width of 100 and a height of
    + * 100 by default. This can be changed by setting the w and h attribute of
    + * the shape element. The aspect attribute can be set to "variable" (default)
    + * or "fixed". If fixed is used, then the aspect which is defined via the w
    + * and h attribute is kept constant while the shape is scaled.
    + * 
    + * The possible contents of the background and foreground elements are rect,
    + * ellipse, roundrect, text, image, include-shape or paths. A path element
    + * contains move, line, curve, quad, arc and close elements. The rect, ellipse
    + * and roundrect elements may be thought of as special path elements. All these
    + * path elements must be followed by either fill, stroke or fillstroke (note
    + * that text, image and include-shape or not path elements).
    + * 
    + * The background element can be empty or contain at most one path element. It
    + * should not contain a text, image or include-shape element. If the background
    + * element is empty, then no shadow or glass effect will be rendered. If the
    + * background element is non-empty, then the corresponding fill, stroke or
    + * fillstroke should be the first element in the subsequent foreground element.
    + *  
    + * The format of the XML is "a simplified HTML 5 Canvas". Each command changes
    + * the "current" state, so eg. a linecap, linejoin will be used for all
    + * subsequent line drawing, unless a save/restore appears, which saves/restores
    + * a state in a stack.
    + * 
    + * The connections section contains the fixed connection points for a stencil.
    + * The perimeter attribute of the constraint element should have a value of 0
    + * or 1 (default), where 1 (true) specifies that the given point should be
    + * projected into the perimeter of the given shape.
    + * 
    + * The x- and y-coordinates are typically between 0 and 1 and define the
    + * location of the connection point relative to the width and height of the
    + * shape.
    + * 
    + * The dashpattern directive sets the current dashpattern. The format for the
    + * pattern attribute is a space-separated sequence of numbers, eg. 5 5 5 5,
    + * that specifies the lengths of alternating dashes and spaces in dashed lines.
    + * The dashpattern should be used together with the dashed directive to
    + * enabled/disable the dashpattern. The default dashpattern is 3 3.
    + * 
    + * The strokewidth attribute defines a fixed strokewidth for the shape. It
    + * can contain a numeric value or the keyword "inherit", which means that the
    + * strokeWidth from the cell's style will be used and muliplied with the shape's
    + * scale. If numeric values are used, those are multiplied with the minimum
    + * scale used to render the stencil inside the shape's bounds.
    + * 
    + * Constructor: mxStencilShape
    + * 
    + * Constructs a new generic shape by setting <desc> to the given XML node and
    + * invoking <parseDescription> and <parseConstraints>.
    + * 
    + * Parameters:
    + * 
    + * desc - XML node that contains the stencil description.
    + */
    +function mxStencil(desc)
    +{
    +	this.desc = desc;
    +	this.parseDescription();
    +	this.parseConstraints();
    +};
    +
    +/**
    + * Variable: desc
    + *
    + * Holds the XML node with the stencil description.
    + */
    +mxStencil.prototype.desc = null;
    +
    +/**
    + * Variable: constraints
    + * 
    + * Holds an array of <mxConnectionConstraints> as defined in the shape.
    + */
    +mxStencil.prototype.constraints = null;
    +
    +/**
    + * Variable: aspect
    + *
    + * Holds the aspect of the shape. Default is 'auto'.
    + */
    +mxStencil.prototype.aspect = null;
    +
    +/**
    + * Variable: w0
    + *
    + * Holds the width of the shape. Default is 100.
    + */
    +mxStencil.prototype.w0 = null;
    +
    +/**
    + * Variable: h0
    + *
    + * Holds the height of the shape. Default is 100.
    + */
    +mxStencil.prototype.h0 = null;
    +
    +/**
    + * Variable: bgNodes
    + *
    + * Holds the XML node with the stencil description.
    + */
    +mxStencil.prototype.bgNode = null;
    +
    +/**
    + * Variable: fgNodes
    + *
    + * Holds the XML node with the stencil description.
    + */
    +mxStencil.prototype.fgNode = null;
    +
    +/**
    + * Variable: strokewidth
    + *
    + * Holds the strokewidth direction from the description.
    + */
    +mxStencil.prototype.strokewidth = null;
    +
    +/**
    + * Function: parseDescription
    + *
    + * Reads <w0>, <h0>, <aspect>, <bgNodes> and <fgNodes> from <desc>.
    + */
    +mxStencil.prototype.parseDescription = function()
    +{
    +	// LATER: Preprocess nodes for faster painting
    +	this.fgNode = this.desc.getElementsByTagName('foreground')[0];
    +	this.bgNode = this.desc.getElementsByTagName('background')[0];
    +	this.w0 = Number(this.desc.getAttribute('w') || 100);
    +	this.h0 = Number(this.desc.getAttribute('h') || 100);
    +	
    +	// Possible values for aspect are: variable and fixed where
    +	// variable means fill the available space and fixed means
    +	// use w0 and h0 to compute the aspect.
    +	var aspect = this.desc.getAttribute('aspect');
    +	this.aspect = (aspect != null) ? aspect : 'variable';
    +	
    +	// Possible values for strokewidth are all numbers and "inherit"
    +	// where the inherit means take the value from the style (ie. the
    +	// user-defined stroke-width). Note that the strokewidth is scaled
    +	// by the minimum scaling that is used to draw the shape (sx, sy).
    +	var sw = this.desc.getAttribute('strokewidth');
    +	this.strokewidth = (sw != null) ? sw : '1';
    +};
    +
    +/**
    + * Function: parseConstraints
    + *
    + * Reads the constraints from <desc> into <constraints> using
    + * <parseConstraint>.
    + */
    +mxStencil.prototype.parseConstraints = function()
    +{
    +	var conns = this.desc.getElementsByTagName('connections')[0];
    +	
    +	if (conns != null)
    +	{
    +		var tmp = mxUtils.getChildNodes(conns);
    +		
    +		if (tmp != null && tmp.length > 0)
    +		{
    +			this.constraints = [];
    +			
    +			for (var i = 0; i < tmp.length; i++)
    +			{
    +				this.constraints.push(this.parseConstraint(tmp[i]));
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: parseConstraint
    + *
    + * Parses the given XML node and returns its <mxConnectionConstraint>.
    + */
    +mxStencil.prototype.parseConstraint = function(node)
    +{
    +	var x = Number(node.getAttribute('x'));
    +	var y = Number(node.getAttribute('y'));
    +	var perimeter = node.getAttribute('perimeter') == '1';
    +	
    +	return new mxConnectionConstraint(new mxPoint(x, y), perimeter);
    +};
    +
    +/**
    + * Function: evaluateAttribute
    + *
    + * Gets the attribute for the given name from the given node. If the attribute
    + * does not exist then the text content of the node is evaluated and if it is
    + * a function it is invoked with <state> as the only argument and the return
    + * value is used as the attribute value to be returned.
    + */
    +mxStencil.prototype.evaluateAttribute = function(node, attribute, state)
    +{
    +	var result = node.getAttribute(attribute);
    +	
    +	if (result == null)
    +	{
    +		var text = mxUtils.getTextContent(node);
    +		
    +		if (text != null)
    +		{
    +			var funct = mxUtils.eval(text);
    +			
    +			if (typeof(funct) == 'function')
    +			{
    +				result = funct(state);
    +			}
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: renderDom
    + *
    + * Updates the SVG or VML shape.
    + */
    +mxStencil.prototype.renderDom = function(shape, bounds, parentNode, state)
    +{
    +	var vml = shape.dialect != mxConstants.DIALECT_SVG;
    +	var rotation = shape.rotation || 0;
    +	var inverse = false;
    +	
    +	// Default direction is east (ignored if rotation exists)
    +	if (shape.direction != null)
    +	{
    +		if (shape.direction == 'north')
    +		{
    +			rotation += 270;
    +		}
    +		else if (shape.direction == 'west')
    +		{
    +			rotation += 180;
    +		}
    +		else if (shape.direction == 'south')
    +		{
    +			rotation += 90;
    +		}
    +
    +		inverse = (shape.direction == 'north' || shape.direction == 'south');
    +	}
    +	
    +	// New styles for shape flipping the stencil
    +	var flipH = shape.style[mxConstants.STYLE_STENCIL_FLIPH];
    +	var flipV = shape.style[mxConstants.STYLE_STENCIL_FLIPV];
    +	
    +	if (flipH && flipV)
    +	{
    +		rotation += 180;
    +		flipH = false;
    +		flipV = false;
    +	}
    +
    +	// SVG transform should be applied on all child shapes
    +	var svgTransform = '';
    +
    +	// Implements direction style and vertical/horizontal flip
    +	// via container transformation. Note that the transformation
    +	// is not applied to labels in VML so this needs fixing.
    +	if (vml)
    +	{
    +		if (flipH)
    +		{
    +			parentNode.style.flip = 'x';
    +		}
    +		else if (flipV)
    +		{
    +			parentNode.style.flip = 'y';
    +		}
    +		
    +		if (rotation != 0)
    +		{
    +			parentNode.style.rotation = rotation;
    +		}
    +	}
    +	else
    +	{
    +		if (flipH || flipV)
    +		{
    +			var sx = 1;
    +			var sy = 1;
    +			var dx = 0;
    +			var dy = 0;
    +			
    +			if (flipH)
    +			{
    +				sx = -1;
    +				dx = -bounds.width - 2 * bounds.x;
    +			}
    +			
    +			if (flipV)
    +			{
    +				sy = -1;
    +				dy = -bounds.height - 2 * bounds.y;
    +			}
    +			
    +			svgTransform = 'scale(' + sx + ' ' + sy + ') translate(' + dx + ' ' + dy + ')';
    +		}
    +		
    +		// Adds rotation as a separate transform
    +		if (rotation != 0)
    +		{
    +			var cx = bounds.getCenterX();
    +			var cy = bounds.getCenterY();
    +			svgTransform += ' rotate(' + rotation + ' ' + cx + ' ' + cy + ')';
    +		}
    +	}
    +
    +	var background = (state == null);
    +
    +	if (this.bgNode != null || this.fgNode != null)
    +	{
    +		var x0 = (vml && state == null) ? 0 : bounds.x;
    +		var y0 = (vml && state == null) ? 0 : bounds.y;
    +		var sx = bounds.width / this.w0;
    +		var sy = bounds.height / this.h0;
    +		
    +		// Stores current location inside path
    +		this.lastMoveX = 0;
    +		this.lastMoveY = 0;
    +		
    +		if (inverse)
    +		{
    +			sy = bounds.width / this.h0;
    +			sx = bounds.height / this.w0;
    +			
    +			var delta = (bounds.width - bounds.height) / 2;
    +
    +			x0 += delta;
    +			y0 -= delta;
    +		}
    +
    +		if (this.aspect == 'fixed')
    +		{
    +			sy = Math.min(sx, sy);
    +			sx = sy;
    +			
    +			// Centers the shape inside the available space
    +			if (inverse)
    +			{
    +				x0 += (bounds.height - this.w0 * sx) / 2;
    +				y0 += (bounds.width - this.h0 * sy) / 2;
    +			}
    +			else
    +			{
    +				x0 += (bounds.width - this.w0 * sx) / 2;
    +				y0 += (bounds.height - this.h0 * sy) / 2;
    +			}
    +		}
    +		
    +		var minScale = Math.min(sx, sy);
    +
    +		// Stack of states for save/restore ops
    +		var stack = [];
    +		
    +		var currentState = (state != null) ? state :
    +		{
    +				fillColorAssigned: false,
    +				fill: shape.fill,
    +				stroke: shape.stroke,
    +				strokeWidth: (this.strokewidth == 'inherit') ?
    +					Number(shape.strokewidth) * shape.scale :
    +					Number(this.strokewidth) * minScale,
    +				dashed: shape.isDashed,
    +				dashpattern: [3, 3],
    +				alpha: shape.opacity,
    +				linejoin: 'miter',
    +				fontColor: '#000000',
    +				fontSize: mxConstants.DEFAULT_FONTSIZE,
    +				fontFamily: mxConstants.DEFAULT_FONTFAMILY,
    +				fontStyle: 0
    +		};
    +		
    +		var currentPath = null;
    +		var currentPoints = null;
    +		
    +		var configurePath = function(path, state)
    +		{
    +			var sw = Math.round(Math.max(1, state.strokeWidth));
    +			
    +			if (vml)
    +			{
    +				path.strokeweight = sw + 'px';
    +				
    +				if (state.fill != null)
    +				{
    +					// Gradient in foregrounds not supported because special gradients
    +					// with bounds must be created for each element in graphics-canvases
    +					var gradient = (!state.fillColorAssigned) ? shape.gradient : null;
    +					var fill = document.createElement('v:fill');
    +					shape.updateVmlFill(fill, state.fill, gradient, shape.gradientDirection, state.alpha);
    +					path.appendChild(fill);
    +				}
    +				else
    +				{
    +					path.filled = 'false';
    +				}
    +				
    +				if (state.stroke != null)
    +				{
    +					path.stroked = 'true';
    +					path.strokecolor = state.stroke;
    +				}
    +				else
    +				{
    +					path.stroked = 'false';
    +				}
    +				
    +				path.style.position = 'absolute';
    +			}
    +			else
    +			{
    +				path.setAttribute('stroke-width', sw);
    +	
    +				if (state.fill != null && state.fillColorAssigned)
    +				{
    +					path.setAttribute('fill', state.fill);
    +				}
    +				
    +				if (state.stroke != null)
    +				{
    +					path.setAttribute('stroke', state.stroke);
    +				}
    +			}
    +		};
    +		
    +		var addToParent = function(node)
    +		{
    +			if (document.documentMode == 8)
    +			{
    +				// Must be added as text in IE8 standards mode
    +				parentNode.insertAdjacentHTML('beforeEnd', node.outerHTML);
    +			}
    +			else
    +			{
    +				parentNode.appendChild(node);
    +			}
    +		};
    +		
    +		var addToPath = function(s)
    +		{
    +			if (currentPath != null && currentPoints != null)
    +			{
    +				currentPoints.push(s);
    +			}
    +		};
    +		
    +		var round = function(value)
    +		{
    +			return (vml) ? Math.round(value) : value;
    +		};
    +		
    +		// Will be moved to a hook later for example to set text values
    +		var renderNode = function(node)
    +		{
    +			var name = node.nodeName;
    +			
    +			var fillOp = name == 'fill';
    +			var strokeOp = name == 'stroke';
    +			var fillStrokeOp = name == 'fillstroke';
    +			
    +			if (name == 'save')
    +			{
    +				stack.push(currentState);
    +				currentState = mxUtils.clone(currentState);
    +			}
    +			else if (name == 'restore')
    +			{
    +				currentState = stack.pop();
    +			}
    +			else if (name == 'path')
    +			{
    +				currentPoints = [];
    +				
    +				if (vml)
    +				{
    +					currentPath = document.createElement('v:shape');
    +					configurePath.call(this, currentPath, currentState);
    +					var w = Math.round(bounds.width);
    +					var h = Math.round(bounds.height);
    +					currentPath.style.width = w + 'px';
    +					currentPath.style.height = h + 'px';
    +					currentPath.coordsize = w + ',' + h;
    +				}
    +				else
    +				{
    +					currentPath = document.createElementNS(mxConstants.NS_SVG, 'path');
    +					configurePath.call(this, currentPath, currentState);
    +					
    +					if (svgTransform.length > 0)
    +					{
    +						currentPath.setAttribute('transform', svgTransform);
    +					}
    +					
    +					if (node.getAttribute('crisp') == '1')
    +					{
    +						currentPath.setAttribute('shape-rendering', 'crispEdges');
    +					}
    +				}
    +				
    +				// Renders the elements inside the given path
    +				var childNode = node.firstChild;
    +				
    +				while (childNode != null)
    +				{
    +					if (childNode.nodeType == mxConstants.NODETYPE_ELEMENT)
    +					{
    +						renderNode.call(this, childNode);
    +					}
    +					
    +					childNode = childNode.nextSibling;
    +				}
    +				
    +				// Ends the current path
    +				if (vml)
    +				{
    +					addToPath('e');
    +					currentPath.path = currentPoints.join('');
    +				}
    +				else
    +				{
    +					currentPath.setAttribute('d', currentPoints.join(''));
    +				}
    +			}
    +			else if (name == 'move')
    +			{
    +				var op = (vml) ? 'm' : 'M';
    +				this.lastMoveX = round(x0 + Number(node.getAttribute('x')) * sx);
    +				this.lastMoveY = round(y0 + Number(node.getAttribute('y')) * sy);
    +				addToPath(op + ' ' + this.lastMoveX + ' ' + this.lastMoveY);
    +			}
    +			else if (name == 'line')
    +			{
    +				var op = (vml) ? 'l' : 'L';
    +				this.lastMoveX = round(x0 + Number(node.getAttribute('x')) * sx);
    +				this.lastMoveY = round(y0 + Number(node.getAttribute('y')) * sy);
    +				addToPath(op + ' ' + this.lastMoveX + ' ' +	this.lastMoveY);
    +			}
    +			else if (name == 'quad')
    +			{
    +				if (vml)
    +				{
    +					var cpx0 = this.lastMoveX;
    +					var cpy0 = this.lastMoveY;
    +					var qpx1 = x0 + Number(node.getAttribute('x1')) * sx;
    +					var qpy1 = y0 + Number(node.getAttribute('y1')) * sy;
    +					var cpx3 = x0 + Number(node.getAttribute('x2')) * sx;
    +					var cpy3 = y0 + Number(node.getAttribute('y2')) * sy;
    +					
    +					var cpx1 = cpx0 + 2/3 * (qpx1 - cpx0);
    +					var cpy1 = cpy0 + 2/3 * (qpy1 - cpy0);
    +					
    +					var cpx2 = cpx3 + 2/3 * (qpx1 - cpx3);
    +					var cpy2 = cpy3 + 2/3 * (qpy1 - cpy3);
    +					
    +					addToPath('c ' + Math.round(cpx1) + ' ' + Math.round(cpy1) + ' ' +
    +							Math.round(cpx2) + ' ' + Math.round(cpy2) + ' ' +
    +							Math.round(cpx3) + ' ' + Math.round(cpy3));
    +					
    +					this.lastMoveX = cpx3;
    +					this.lastMoveY = cpy3;
    +				}
    +				else
    +				{
    +					this.lastMoveX = x0 + Number(node.getAttribute('x2')) * sx;
    +					this.lastMoveY = y0 + Number(node.getAttribute('y2')) * sy;
    +
    +					addToPath('Q ' + (x0 + Number(node.getAttribute('x1')) * sx) + ' ' +
    +							(y0 + Number(node.getAttribute('y1')) * sy) + ' ' +
    +							this.lastMoveX + ' ' + this.lastMoveY);
    +				}
    +			}
    +			else if (name == 'curve')
    +			{
    +				var op = (vml) ? 'c' : 'C';
    +				this.lastMoveX = round(x0 + Number(node.getAttribute('x3')) * sx);
    +				this.lastMoveY = round(y0 + Number(node.getAttribute('y3')) * sy);
    +
    +				addToPath(op + ' ' + round(x0 + Number(node.getAttribute('x1')) * sx) + ' ' +
    +						round(y0 + Number(node.getAttribute('y1')) * sy) + ' ' +
    +						round(x0 + Number(node.getAttribute('x2')) * sx) + ' ' +
    +						round(y0 + Number(node.getAttribute('y2')) * sy) + ' ' +
    +						this.lastMoveX + ' ' + this.lastMoveY);
    +			}
    +			else if (name == 'close')
    +			{
    +				addToPath((vml) ? 'x' : 'Z');
    +			}
    +			else if (name == 'rect' || name == 'roundrect')
    +			{
    +				var rounded = name == 'roundrect';
    +				var x = round(x0 + Number(node.getAttribute('x')) * sx);
    +				var y = round(y0 + Number(node.getAttribute('y')) * sy);
    +				var w = round(Number(node.getAttribute('w')) * sx);
    +				var h = round(Number(node.getAttribute('h')) * sy);
    +				
    +				var arcsize = node.getAttribute('arcsize');
    +				
    +				if (arcsize == 0)
    +				{
    +					arcsize = mxConstants.RECTANGLE_ROUNDING_FACTOR * 100;
    +				}
    +				
    +				if (vml)
    +				{
    +					// LATER: Use HTML for non-rounded, gradientless rectangles
    +					currentPath = document.createElement((rounded) ? 'v:roundrect' : 'v:rect');
    +					currentPath.style.left = x + 'px';
    +					currentPath.style.top = y + 'px';
    +					currentPath.style.width = w + 'px';
    +					currentPath.style.height = h + 'px';
    +					
    +					if (rounded)
    +					{
    +						currentPath.setAttribute('arcsize', String(arcsize) + '%');
    +					}
    +				}
    +				else
    +				{
    +					currentPath = document.createElementNS(mxConstants.NS_SVG, 'rect');
    +					currentPath.setAttribute('x', x);
    +					currentPath.setAttribute('y', y);
    +					currentPath.setAttribute('width', w);
    +					currentPath.setAttribute('height', h);
    +					
    +					if (rounded)
    +					{
    +						var factor = Number(arcsize) / 100;
    +						var r = Math.min(w * factor, h * factor);
    +						currentPath.setAttribute('rx', r);
    +						currentPath.setAttribute('ry', r);
    +					}
    +					
    +					if (svgTransform.length > 0)
    +					{
    +						currentPath.setAttribute('transform', svgTransform);
    +					}
    +					
    +					if (node.getAttribute('crisp') == '1')
    +					{
    +						currentPath.setAttribute('shape-rendering', 'crispEdges');
    +					}
    +				}
    +				
    +				configurePath.call(this, currentPath, currentState);
    +			}
    +			else if (name == 'ellipse')
    +			{
    +				var x = round(x0 + Number(node.getAttribute('x')) * sx);
    +				var y = round(y0 + Number(node.getAttribute('y')) * sy);
    +				var w = round(Number(node.getAttribute('w')) * sx);
    +				var h = round(Number(node.getAttribute('h')) * sy);
    +				
    +				if (vml)
    +				{
    +					currentPath = document.createElement('v:arc');
    +					currentPath.startangle = '0';
    +					currentPath.endangle = '360';
    +					currentPath.style.left = x + 'px';
    +					currentPath.style.top = y + 'px';
    +					currentPath.style.width = w + 'px';
    +					currentPath.style.height = h + 'px';
    +				}
    +				else
    +				{
    +					currentPath = document.createElementNS(mxConstants.NS_SVG, 'ellipse');
    +					currentPath.setAttribute('cx', x + w / 2);
    +					currentPath.setAttribute('cy', y + h / 2);
    +					currentPath.setAttribute('rx', w / 2);
    +					currentPath.setAttribute('ry', h / 2);
    +					
    +					if (svgTransform.length > 0)
    +					{
    +						currentPath.setAttribute('transform', svgTransform);
    +					}
    +				}
    +				
    +				configurePath.call(this, currentPath, currentState);
    +			}
    +			else if (name == 'arc')
    +			{
    +				var r1 = Number(node.getAttribute('rx')) * sx;
    +				var r2 = Number(node.getAttribute('ry')) * sy;
    +				var angle = Number(node.getAttribute('x-axis-rotation'));
    +				var largeArcFlag = Number(node.getAttribute('large-arc-flag'));
    +				var sweepFlag = Number(node.getAttribute('sweep-flag'));
    +				var x = x0 + Number(node.getAttribute('x')) * sx;
    +				var y = y0 + Number(node.getAttribute('y')) * sy;
    +				
    +				if (vml)
    +				{
    +					var curves = mxUtils.arcToCurves(this.lastMoveX, this.lastMoveY, r1, r2, angle, largeArcFlag, sweepFlag, x, y);
    +					
    +		            for (var i = 0; i < curves.length; i += 6) 
    +		            {
    +                        addToPath('c' + ' ' + Math.round(curves[i]) + ' ' + Math.round(curves[i + 1]) + ' ' +
    +								Math.round(curves[i + 2]) + ' ' + Math.round(curves[i + 3]) + ' ' +
    +								Math.round(curves[i + 4]) + ' ' + Math.round(curves[i + 5]));
    +		                
    +						this.lastMoveX = curves[i + 4];
    +						this.lastMoveY = curves[i + 5]; 
    +		            }
    +				}
    +				else
    +				{
    +					addToPath('A ' + r1 + ',' + r2 + ' ' + angle + ' ' + largeArcFlag + ',' + sweepFlag + ' ' + x + ',' + y);
    +					this.lastMoveX = x0 + x;
    +					this.lastMoveY = y0 + y;
    +				}
    +			}
    +			else if (name == 'image')
    +			{
    +				var src = this.evaluateAttribute(node, 'src', shape.state);
    +
    +				if (src != null)
    +				{
    +					var x = round(x0 + Number(node.getAttribute('x')) * sx);
    +					var y = round(y0 + Number(node.getAttribute('y')) * sy);
    +					var w = round(Number(node.getAttribute('w')) * sx);
    +					var h = round(Number(node.getAttribute('h')) * sy);
    +					
    +					// TODO: _Not_ providing an aspect in the shapes format has the advantage
    +					// of not needing a callback to adjust the image in VML. Since the shape
    +					// developer can specify the aspect via width and height this should OK.
    +					//var aspect = node.getAttribute('aspect') != '0';
    +					var aspect = false;
    +					var flipH = node.getAttribute('flipH') == '1';
    +					var flipV = node.getAttribute('flipV') == '1';
    +					
    +					if (vml)
    +					{
    +						currentPath = document.createElement('v:image');
    +						currentPath.style.filter = 'alpha(opacity=' + currentState.alpha + ')';
    +						currentPath.style.left = x + 'px';
    +						currentPath.style.top = y + 'px';
    +						currentPath.style.width = w + 'px';
    +						currentPath.style.height = h + 'px';
    +						currentPath.src = src;
    +						
    +						if (flipH && flipV)
    +						{
    +							currentPath.style.rotation = '180';
    +						}
    +						else if (flipH)
    +						{
    +							currentPath.style.flip = 'x';
    +						}
    +						else if (flipV)
    +						{
    +							currentPath.style.flip = 'y';
    +						}
    +					}
    +					else
    +					{
    +						currentPath = document.createElementNS(mxConstants.NS_SVG, 'image');
    +						currentPath.setAttributeNS(mxConstants.NS_XLINK, 'xlink:href', src);
    +						currentPath.setAttribute('opacity', currentState.alpha / 100);
    +						currentPath.setAttribute('x', x);
    +						currentPath.setAttribute('y', y);
    +						currentPath.setAttribute('width', w);
    +						currentPath.setAttribute('height', h);
    +	
    +						if (!aspect)
    +						{
    +							currentPath.setAttribute('preserveAspectRatio', 'none');
    +						}
    +						
    +						if (flipH || flipV)
    +						{
    +							var scx = 1;
    +							var scy = 1;
    +							var dx = 0;
    +							var dy = 0;
    +							
    +							if (flipH)
    +							{
    +								scx = -1;
    +								dx = -w - 2 * x;
    +							}
    +							
    +							if (flipV)
    +							{
    +								scy = -1;
    +								dy = -h - 2 * y;
    +							}
    +							
    +							currentPath.setAttribute('transform', svgTransform + 'scale(' + scx + ' ' + scy + ')' +
    +									' translate('+dx+' '+dy+') ');
    +						}
    +						else
    +						{
    +							currentPath.setAttribute('transform', svgTransform);
    +						}
    +					}
    +					
    +					addToParent(currentPath);
    +				}
    +			}
    +			else if (name == 'include-shape')
    +			{
    +				var stencil = mxStencilRegistry.getStencil(node.getAttribute('name'));
    +				
    +				if (stencil != null)
    +				{
    +					var x = x0 + Number(node.getAttribute('x')) * sx;
    +					var y = y0 + Number(node.getAttribute('y')) * sy;
    +					var w = Number(node.getAttribute('w')) * sx;
    +					var h = Number(node.getAttribute('h')) * sy;
    +					
    +					stencil.renderDom(shape, new mxRectangle(x, y, w, h), parentNode, currentState);
    +				}
    +			}
    +			// Additional labels are currently disabled. Needs fixing of VML
    +			// text positon, SVG text rotation and ignored baseline in FF
    +			else if (name == 'text')
    +			{
    +				var str = this.evaluateAttribute(node, 'str', shape.state);
    +
    +				if (str != null)
    +				{
    +					var x = round(x0 + Number(node.getAttribute('x')) * sx);
    +					var y = round(y0 + Number(node.getAttribute('y')) * sy);
    +					var align = node.getAttribute('align') || 'left';
    +					var valign = node.getAttribute('valign') || 'top';
    +					
    +					if (vml)
    +					{
    +						// Renders a single line of text with full rotation support
    +						currentPath = document.createElement('v:line');
    +						currentPath.style.position = 'absolute';
    +						currentPath.style.width = '1px';
    +						currentPath.style.height = '1px';
    +						currentPath.to = (x + 1) + ' ' + y;
    +						currentPath.from = x + ' ' + y;
    +
    +						var fill = document.createElement('v:fill');
    +						fill.color = currentState.fontColor;
    +						fill.on = 'true';
    +						currentPath.appendChild(fill);
    +						
    +						var stroke = document.createElement('v:stroke');
    +						stroke.on = 'false';
    +						currentPath.appendChild(stroke);
    +						
    +						var path = document.createElement('v:path');
    +						path.textpathok = 'true';
    +						currentPath.appendChild(path);
    +						
    +						var tp = document.createElement('v:textpath');
    +						tp.style.cssText = 'v-text-align:' + align;
    +						tp.style.fontSize = currentState.fontSize + 'px';
    +						// FIXME: Font-family seems to be ignored for textpath
    +						tp.style.fontFamily = currentState.fontFamily;
    +						tp.string = str;
    +						tp.on = 'true';
    +						
    +						// Bold
    +						if ((currentState.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD)
    +						{
    +							tp.style.fontWeight = 'bold';
    +						}
    +						
    +						// Italic
    +						if ((currentState.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC)
    +						{
    +							tp.style.fontStyle = 'italic';
    +						}
    +
    +						// FIXME: Text decoration not supported in textpath
    +						if ((currentState.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE)
    +						{
    +							tp.style.textDecoration = 'underline';
    +						}
    +						
    +						// LATER: Find vertical center for div via CSS if possible
    +						if (valign == 'top')
    +						{
    +							currentPath.style.top = (currentState.fontSize / 2) + 'px';
    +						}
    +						else if (valign == 'bottom')
    +						{
    +							currentPath.style.top = -(currentState.fontSize / 3) + 'px';
    +						}
    +						
    +						currentPath.appendChild(tp);
    +					}
    +					else
    +					{
    +						currentPath = document.createElementNS(mxConstants.NS_SVG, 'text');
    +						currentPath.setAttribute('fill', currentState.fontColor);
    +						currentPath.setAttribute('font-family', currentState.fontFamily);
    +						currentPath.setAttribute('font-size', currentState.fontSize);
    +						currentPath.setAttribute('stroke', 'none');
    +						currentPath.setAttribute('x', x);
    +						currentPath.appendChild(document.createTextNode(str));
    +						
    +						// Bold
    +						if ((currentState.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD)
    +						{
    +							currentPath.setAttribute('font-weight', 'bold');
    +						}
    +						
    +						// Italic
    +						if ((currentState.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC)
    +						{
    +							currentPath.setAttribute('font-style', 'italic');
    +						}
    +
    +						// Underline
    +						if ((currentState.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE)
    +						{
    +							currentPath.setAttribute('text-decoration', uline);
    +						}
    +
    +						// Horizontal alignment
    +						if (align == 'left')
    +						{
    +							align = 'start';
    +						}
    +						else if (align == 'center')
    +						{
    +							align = 'middle';
    +						}
    +						else if (align == 'right')
    +						{
    +							align = 'end';
    +						}
    +
    +						currentPath.setAttribute('text-anchor', align);
    +
    +						// Vertical alignment
    +						// Uses dy because FF ignores alignment-baseline
    +						if (valign == 'top')
    +						{
    +							currentPath.setAttribute('y', y + currentState.fontSize / 5);
    +							currentPath.setAttribute('dy', '1ex');
    +						}
    +						else if (valign == 'middle')
    +						{
    +							currentPath.setAttribute('y', y + currentState.fontSize / 8);
    +							currentPath.setAttribute('dy', '0.5ex');
    +						}
    +						else
    +						{
    +							currentPath.setAttribute('y', y);
    +						}
    +
    +						if (svgTransform.length > 0)
    +						{
    +							currentPath.setAttribute('transform', svgTransform);
    +						}
    +					}
    +
    +					addToParent(currentPath);
    +				}
    +			}
    +			else if (fillOp || strokeOp || fillStrokeOp)
    +			{
    +				if (currentPath != null)
    +				{
    +					var pattern = null;
    +					
    +					if (currentState.dashed)
    +					{
    +						var f = (vml) ? minScale : Number(currentPath.getAttribute('stroke-width'));
    +						var pat = [];
    +						
    +						for (var i = 0; i < currentState.dashpattern.length; i++)
    +						{
    +							pat.push(Math.max(1, Math.round(Number(currentState.dashpattern[i]) * f)));
    +						}
    +						
    +						pattern = pat.join(' ');
    +					}
    +					
    +					if (strokeOp || fillStrokeOp)
    +					{
    +						if (vml)
    +						{
    +							var stroke = document.createElement('v:stroke');
    +							stroke.endcap = currentState.linecap || 'flat';
    +							stroke.joinstyle = currentState.linejoin || 'miter';
    +							stroke.miterlimit = currentState.miterlimit || '10';
    +							currentPath.appendChild(stroke);
    +							
    +							// TODO: Dashpattern support in VML is limited, we should
    +							// map this to VML or allow for a separate VML dashstyle.
    +							if (pattern != null)
    +							{
    +								stroke.dashstyle = pattern;
    +							}
    +						}
    +						else
    +						{
    +							if (currentState.linejoin != null)
    +							{
    +								currentPath.setAttribute('stroke-linejoin', currentState.linejoin);
    +							}
    +							
    +							if (currentState.linecap != null)
    +							{
    +								// flat is called butt in SVG
    +								var value = currentState.linecap;
    +								
    +								if (value == 'flat')
    +								{
    +									value = 'butt';
    +								}
    +								
    +								currentPath.setAttribute('stroke-linecap', value);
    +							}
    +							
    +							if (currentState.miterlimit != null)
    +							{
    +								currentPath.setAttribute('stroke-miterlimit', currentState.miterlimit);
    +							}
    +
    +							// Handles dash pattern
    +							if (pattern != null)
    +							{
    +								currentPath.setAttribute('stroke-dasharray', pattern);
    +							}
    +						}
    +					}
    +					
    +					// Adds the shadow
    +					if (background && shape.isShadow && currentState.fill != null && (fillOp || fillStrokeOp))
    +					{
    +						var dx = mxConstants.SHADOW_OFFSET_X * shape.scale;
    +						var dy = mxConstants.SHADOW_OFFSET_Y * shape.scale;
    +						
    +						// Adds the shadow
    +						if (vml)
    +						{
    +							var shadow = document.createElement('v:shadow');
    +							shadow.setAttribute('on', 'true');
    +							shadow.setAttribute('color', mxConstants.SHADOWCOLOR);
    +							shadow.setAttribute('offset', Math.round(dx) + 'px,' + Math.round(dy) + 'px');
    +							shadow.setAttribute('opacity', (mxConstants.SHADOW_OPACITY * 100) + '%');
    +							
    +							var stroke = document.createElement('v:stroke');
    +							stroke.endcap = currentState.linecap || 'flat';
    +							stroke.joinstyle = currentState.linejoin || 'miter';
    +							stroke.miterlimit = currentState.miterlimit || '10';
    +							
    +							if (pattern != null)
    +							{
    +								stroke.dashstyle = pattern;
    +							}
    +							
    +							shadow.appendChild(stroke);
    +							currentPath.appendChild(shadow);
    +						}
    +						else
    +						{
    +							var shadow = currentPath.cloneNode(true);
    +							shadow.setAttribute('stroke', mxConstants.SHADOWCOLOR);
    +							shadow.setAttribute('fill', mxConstants.SHADOWCOLOR);
    +							shadow.setAttribute('transform', 'translate(' + dx + ' ' + dy + ') ' +
    +									(shadow.getAttribute('transform') || ''));
    +							shadow.setAttribute('opacity', mxConstants.SHADOW_OPACITY);
    +							parentNode.appendChild(shadow);
    +						}
    +					}
    +
    +					if (fillOp)
    +					{
    +						if (vml)
    +						{
    +							currentPath.stroked = 'false';
    +						}
    +						else
    +						{
    +							currentPath.setAttribute('stroke', 'none');
    +						}
    +					}
    +					else if (strokeOp)
    +					{
    +						if (vml)
    +						{
    +							currentPath.filled = 'false';
    +						}
    +						else
    +						{
    +							currentPath.setAttribute('fill', 'none');
    +						}
    +					}
    +					
    +					addToParent(currentPath);
    +				}
    +				
    +				// Background was painted
    +				if (background)
    +				{
    +					background = false;
    +				}
    +			}
    +			else if (name == 'linecap')
    +			{
    +				currentState.linecap = node.getAttribute('cap');
    +			}
    +			else if (name == 'linejoin')
    +			{
    +				currentState.linejoin = node.getAttribute('join');
    +			}
    +			else if (name == 'miterlimit')
    +			{
    +				currentState.miterlimit = node.getAttribute('limit');
    +			}
    +			else if (name == 'dashed')
    +			{
    +				currentState.dashed = node.getAttribute('dashed') == '1';
    +			}
    +			else if (name == 'dashpattern')
    +			{
    +				var value = node.getAttribute('pattern');
    +				
    +				if (value != null)
    +				{
    +					currentState.dashpattern = value.split(' ');
    +				}
    +			}
    +			else if (name == 'strokewidth')
    +			{
    +				currentState.strokeWidth = node.getAttribute('width') * minScale;
    +			}
    +			else if (name == 'strokecolor')
    +			{
    +				currentState.stroke = node.getAttribute('color');
    +			}
    +			else if (name == 'fillcolor')
    +			{
    +				currentState.fill = node.getAttribute('color');
    +				currentState.fillColorAssigned = true;
    +			}
    +			else if (name == 'alpha')
    +			{
    +				currentState.alpha = Number(node.getAttribute('alpha'));
    +			}
    +			else if (name == 'fontcolor')
    +			{
    +				currentState.fontColor = node.getAttribute('color');
    +			}
    +			else if (name == 'fontsize')
    +			{
    +				currentState.fontSize = Number(node.getAttribute('size')) * minScale;
    +			}
    +			else if (name == 'fontfamily')
    +			{
    +				currentState.fontFamily = node.getAttribute('family');
    +			}
    +			else if (name == 'fontstyle')
    +			{
    +				currentState.fontStyle = Number(node.getAttribute('style'));
    +			}
    +		};
    +
    +		// Adds a transparent rectangle in the background for hit-detection in SVG
    +		if (!vml)
    +		{
    +			var rect = document.createElementNS(mxConstants.NS_SVG, 'rect');
    +			rect.setAttribute('x', bounds.x);
    +			rect.setAttribute('y', bounds.y);
    +			rect.setAttribute('width', bounds.width);
    +			rect.setAttribute('height', bounds.height);
    +			rect.setAttribute('fill', 'none');
    +			rect.setAttribute('stroke', 'none');
    +			parentNode.appendChild(rect);
    +		}
    +		
    +		// Background switches to false after fill/stroke of the background
    +		if (this.bgNode != null)
    +		{
    +			var tmp = this.bgNode.firstChild;
    +			
    +			while (tmp != null)
    +			{
    +				if (tmp.nodeType == mxConstants.NODETYPE_ELEMENT)
    +				{
    +					renderNode.call(this, tmp);
    +				}
    +				
    +				tmp = tmp.nextSibling;
    +			}
    +		}
    +		else
    +		{
    +			background = false;
    +		}
    +		
    +		if (this.fgNode != null)
    +		{
    +			var tmp = this.fgNode.firstChild;
    +			
    +			while (tmp != null)
    +			{
    +				if (tmp.nodeType == mxConstants.NODETYPE_ELEMENT)
    +				{
    +					renderNode.call(this, tmp);
    +				}
    +				
    +				tmp = tmp.nextSibling;
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: drawShape
    + *
    + * Draws this stencil inside the given bounds.
    + */
    +mxStencil.prototype.drawShape = function(canvas, state, bounds, background)
    +{
    +	// TODO: Unify with renderDom, check performance of pluggable shape,
    +	// internal structure (array of special structs?), relative and absolute
    +	// coordinates (eg. note shape, process vs star, actor etc.), text rendering
    +	// and non-proportional scaling, how to implement pluggable edge shapes
    +	// (start, segment, end blocks), pluggable markers, how to implement
    +	// swimlanes (title area) with this API, add icon, horizontal/vertical
    +	// label, indicator for all shapes, rotation
    +	var node = (background) ? this.bgNode : this.fgNode;
    +	
    +	if (node != null)
    +	{
    +		var direction = mxUtils.getValue(state.style, mxConstants.STYLE_DIRECTION, null);
    +		var aspect = this.computeAspect(state, bounds, direction);
    +		var minScale = Math.min(aspect.width, aspect.height);
    +		var sw = (this.strokewidth == 'inherit') ?
    +				Number(mxUtils.getNumber(state.style, mxConstants.STYLE_STROKEWIDTH, 1)) * state.view.scale :
    +				Number(this.strokewidth) * minScale;
    +		this.lastMoveX = 0;
    +		this.lastMoveY = 0;
    +		canvas.setStrokeWidth(sw);
    +
    +		var tmp = node.firstChild;
    +		
    +		while (tmp != null)
    +		{
    +			if (tmp.nodeType == mxConstants.NODETYPE_ELEMENT)
    +			{
    +				this.drawNode(canvas, state, tmp, aspect);
    +			}
    +			
    +			tmp = tmp.nextSibling;
    +		}
    +		
    +		return true;
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: computeAspect
    + *
    + * Returns a rectangle that contains the offset in x and y and the horizontal
    + * and vertical scale in width and height used to draw this shape inside the
    + * given <mxRectangle>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the shape should be drawn.
    + * bounds - <mxRectangle> that should contain the stencil.
    + * direction - Optional direction of the shape to be darwn.
    + */
    +mxStencil.prototype.computeAspect = function(state, bounds, direction)
    +{
    +	var x0 = bounds.x;
    +	var y0 = bounds.y;
    +	var sx = bounds.width / this.w0;
    +	var sy = bounds.height / this.h0;
    +	
    +	var inverse = (direction == 'north' || direction == 'south');
    +
    +	if (inverse)
    +	{
    +		sy = bounds.width / this.h0;
    +		sx = bounds.height / this.w0;
    +		
    +		var delta = (bounds.width - bounds.height) / 2;
    +
    +		x0 += delta;
    +		y0 -= delta;
    +	}
    +
    +	if (this.aspect == 'fixed')
    +	{
    +		sy = Math.min(sx, sy);
    +		sx = sy;
    +		
    +		// Centers the shape inside the available space
    +		if (inverse)
    +		{
    +			x0 += (bounds.height - this.w0 * sx) / 2;
    +			y0 += (bounds.width - this.h0 * sy) / 2;
    +		}
    +		else
    +		{
    +			x0 += (bounds.width - this.w0 * sx) / 2;
    +			y0 += (bounds.height - this.h0 * sy) / 2;
    +		}
    +	}
    +
    +	return new mxRectangle(x0, y0, sx, sy);
    +};
    +
    +/**
    + * Function: drawNode
    + *
    + * Draws this stencil inside the given bounds.
    + */
    +mxStencil.prototype.drawNode = function(canvas, state, node, aspect)
    +{
    +	var name = node.nodeName;
    +	var x0 = aspect.x;
    +	var y0 = aspect.y;
    +	var sx = aspect.width;
    +	var sy = aspect.height;
    +	var minScale = Math.min(sx, sy);
    +
    +	// LATER: Move to lookup table
    +	if (name == 'save')
    +	{
    +		canvas.save();
    +	}
    +	else if (name == 'restore')
    +	{
    +		canvas.restore();
    +	}
    +	else if (name == 'path')
    +	{
    +		canvas.begin();
    +
    +		// Renders the elements inside the given path
    +		var childNode = node.firstChild;
    +		
    +		while (childNode != null)
    +		{
    +			if (childNode.nodeType == mxConstants.NODETYPE_ELEMENT)
    +			{
    +				this.drawNode(canvas, state, childNode, aspect);
    +			}
    +			
    +			childNode = childNode.nextSibling;
    +		}
    +	}
    +	else if (name == 'close')
    +	{
    +		canvas.close();
    +	}
    +	else if (name == 'move')
    +	{
    +		this.lastMoveX = x0 + Number(node.getAttribute('x')) * sx;
    +		this.lastMoveY = y0 + Number(node.getAttribute('y')) * sy;
    +		canvas.moveTo(this.lastMoveX, this.lastMoveY);
    +	}
    +	else if (name == 'line')
    +	{
    +		this.lastMoveX = x0 + Number(node.getAttribute('x')) * sx;
    +		this.lastMoveY = y0 + Number(node.getAttribute('y')) * sy;
    +		canvas.lineTo(this.lastMoveX, this.lastMoveY);
    +	}
    +	else if (name == 'quad')
    +	{
    +		this.lastMoveX = x0 + Number(node.getAttribute('x2')) * sx;
    +		this.lastMoveY = y0 + Number(node.getAttribute('y2')) * sy;
    +		canvas.quadTo(x0 + Number(node.getAttribute('x1')) * sx,
    +				y0 + Number(node.getAttribute('y1')) * sy,
    +				this.lastMoveX, this.lastMoveY);
    +	}
    +	else if (name == 'curve')
    +	{
    +		this.lastMoveX = x0 + Number(node.getAttribute('x3')) * sx;
    +		this.lastMoveY = y0 + Number(node.getAttribute('y3')) * sy;
    +		canvas.curveTo(x0 + Number(node.getAttribute('x1')) * sx,
    +				y0 + Number(node.getAttribute('y1')) * sy,
    +				x0 + Number(node.getAttribute('x2')) * sx,
    +				y0 + Number(node.getAttribute('y2')) * sy,
    +				this.lastMoveX, this.lastMoveY);
    +	}
    +	else if (name == 'arc')
    +	{
    +		// Arc from stencil is turned into curves in image output
    +		var r1 = Number(node.getAttribute('rx')) * sx;
    +		var r2 = Number(node.getAttribute('ry')) * sy;
    +		var angle = Number(node.getAttribute('x-axis-rotation'));
    +		var largeArcFlag = Number(node.getAttribute('large-arc-flag'));
    +		var sweepFlag = Number(node.getAttribute('sweep-flag'));
    +		var x = x0 + Number(node.getAttribute('x')) * sx;
    +		var y = y0 + Number(node.getAttribute('y')) * sy;
    +		
    +		var curves = mxUtils.arcToCurves(this.lastMoveX, this.lastMoveY, r1, r2, angle, largeArcFlag, sweepFlag, x, y);
    +		
    +        for (var i = 0; i < curves.length; i += 6) 
    +        {
    +        	canvas.curveTo(curves[i], curves[i + 1], curves[i + 2],
    +        		curves[i + 3], curves[i + 4], curves[i + 5]);
    +            
    +			this.lastMoveX = curves[i + 4];
    +			this.lastMoveY = curves[i + 5]; 
    +        }
    +	}
    +	else if (name == 'rect')
    +	{
    +		canvas.rect(x0 + Number(node.getAttribute('x')) * sx,
    +				y0 + Number(node.getAttribute('y')) * sy,
    +				Number(node.getAttribute('w')) * sx,
    +				Number(node.getAttribute('h')) * sy);
    +	}
    +	else if (name == 'roundrect')
    +	{
    +		var arcsize = node.getAttribute('arcsize');
    +		
    +		if (arcsize == 0)
    +		{
    +			arcsize = mxConstants.RECTANGLE_ROUNDING_FACTOR * 100;
    +		}
    +		
    +		var w = Number(node.getAttribute('w')) * sx;
    +		var h = Number(node.getAttribute('h')) * sy;
    +		var factor = Number(arcsize) / 100;
    +		var r = Math.min(w * factor, h * factor);
    +		
    +		canvas.roundrect(x0 + Number(node.getAttribute('x')) * sx,
    +				y0 + Number(node.getAttribute('y')) * sy,
    +				w, h, r, r);
    +	}
    +	else if (name == 'ellipse')
    +	{
    +		canvas.ellipse(x0 + Number(node.getAttribute('x')) * sx,
    +			y0 + Number(node.getAttribute('y')) * sy,
    +			Number(node.getAttribute('w')) * sx,
    +			Number(node.getAttribute('h')) * sy);
    +	}
    +	else if (name == 'image')
    +	{
    +		var src = this.evaluateAttribute(node, 'src', state);
    +		
    +		canvas.image(x0 + Number(node.getAttribute('x')) * sx,
    +			y0 + Number(node.getAttribute('y')) * sy,
    +			Number(node.getAttribute('w')) * sx,
    +			Number(node.getAttribute('h')) * sy,
    +			src, false, node.getAttribute('flipH') == '1',
    +			node.getAttribute('flipV') == '1');
    +	}
    +	else if (name == 'text')
    +	{
    +		var str = this.evaluateAttribute(node, 'str', state);
    +		
    +		canvas.text(x0 + Number(node.getAttribute('x')) * sx,
    +				y0 + Number(node.getAttribute('y')) * sy,
    +				0, 0, str, node.getAttribute('align'),
    +				node.getAttribute('valign'),
    +				node.getAttribute('vertical'));
    +	}
    +	else if (name == 'include-shape')
    +	{
    +		var stencil = mxStencilRegistry.getStencil(node.getAttribute('name'));
    +		
    +		if (stencil != null)
    +		{
    +			var x = x0 + Number(node.getAttribute('x')) * sx;
    +			var y = y0 + Number(node.getAttribute('y')) * sy;
    +			var w = Number(node.getAttribute('w')) * sx;
    +			var h = Number(node.getAttribute('h')) * sy;
    +			
    +			var tmp = new mxRectangle(x, y, w, h);
    +			stencil.drawShape(canvas, state, tmp, true);
    +			stencil.drawShape(canvas, state, tmp, false);
    +		}
    +	}
    +	else if (name == 'fillstroke')
    +	{
    +		canvas.fillAndStroke();
    +	}
    +	else if (name == 'fill')
    +	{
    +		canvas.fill();
    +	}
    +	else if (name == 'stroke')
    +	{
    +		canvas.stroke();
    +	}
    +	else if (name == 'strokewidth')
    +	{
    +		canvas.setStrokeWidth(Number(node.getAttribute('width')) * minScale);
    +	}
    +	else if (name == 'dashed')
    +	{
    +		canvas.setDashed(node.getAttribute('dashed') == '1');
    +	}
    +	else if (name == 'dashpattern')
    +	{
    +		var value = node.getAttribute('pattern');
    +		
    +		if (value != null)
    +		{
    +			var tmp = value.split(' ');
    +			var pat = [];
    +			
    +			for (var i = 0; i < tmp.length; i++)
    +			{
    +				if (tmp[i].length > 0)
    +				{
    +					pat.push(Number(tmp[i]) * minScale);
    +				}
    +			}
    +			
    +			value = pat.join(' ');
    +			canvas.setDashPattern(value);
    +		}
    +	}
    +	else if (name == 'strokecolor')
    +	{
    +		canvas.setStrokeColor(node.getAttribute('color'));
    +	}
    +	else if (name == 'linecap')
    +	{
    +		canvas.setLineCap(node.getAttribute('cap'));
    +	}
    +	else if (name == 'linejoin')
    +	{
    +		canvas.setLineJoin(node.getAttribute('join'));
    +	}
    +	else if (name == 'miterlimit')
    +	{
    +		canvas.setMiterLimit(Number(node.getAttribute('limit')));
    +	}
    +	else if (name == 'fillcolor')
    +	{
    +		canvas.setFillColor(node.getAttribute('color'));
    +	}
    +	else if (name == 'fontcolor')
    +	{
    +		canvas.setFontColor(node.getAttribute('color'));
    +	}
    +	else if (name == 'fontstyle')
    +	{
    +		canvas.setFontStyle(node.getAttribute('style'));
    +	}
    +	else if (name == 'fontfamily')
    +	{
    +		canvas.setFontFamily(node.getAttribute('family'));
    +	}
    +	else if (name == 'fontsize')
    +	{
    +		canvas.setFontSize(Number(node.getAttribute('size')) * minScale);
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxStencilRegistry.js b/javascript/src/js/shape/mxStencilRegistry.js
    new file mode 100644
    index 000000000..7621573d4
    --- /dev/null
    +++ b/javascript/src/js/shape/mxStencilRegistry.js
    @@ -0,0 +1,53 @@
    +/**
    + * $Id: mxStencilRegistry.js,v 1.2 2011-07-15 12:57:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + * 
    + * Code to add stencils.
    + * 
    + * (code)
    + * var req = mxUtils.load('test/stencils.xml');
    + * var root = req.getDocumentElement();
    + * var shape = root.firstChild;
    + * 
    + * while (shape != null)
    + * {
    + * 	 if (shape.nodeType == mxConstants.NODETYPE_ELEMENT)
    + *   {
    + *     mxStencilRegistry.addStencil(shape.getAttribute('name'), new mxStencil(shape));
    + *   }
    + *   
    + *   shape = shape.nextSibling;
    + * }
    + * (end)
    + */
    +var mxStencilRegistry =
    +{
    +	/**
    +	 * Class: mxStencilRegistry
    +	 * 
    +	 * A singleton class that provides a registry for stencils and the methods
    +	 * for painting those stencils onto a canvas or into a DOM.
    +	 */
    +	stencils: [],
    +	
    +	/**
    +	 * Function: addStencil
    +	 * 
    +	 * Adds the given <mxStencil>.
    +	 */
    +	addStencil: function(name, stencil)
    +	{
    +		mxStencilRegistry.stencils[name] = stencil;
    +	},
    +	
    +	/**
    +	 * Function: getStencil
    +	 * 
    +	 * Returns the <mxStencil> for the given name.
    +	 */
    +	getStencil: function(name)
    +	{
    +		return mxStencilRegistry.stencils[name];
    +	}
    +
    +};
    diff --git a/javascript/src/js/shape/mxStencilShape.js b/javascript/src/js/shape/mxStencilShape.js
    new file mode 100644
    index 000000000..2e41ff4bc
    --- /dev/null
    +++ b/javascript/src/js/shape/mxStencilShape.js
    @@ -0,0 +1,177 @@
    +/**
    + * $Id: mxStencilShape.js,v 1.7 2011-11-04 13:54:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxStencilShape
    + *
    + * Implements a shape based on a <mxStencil>.
    + *  
    + * Constructor: mxStencilShape
    + * 
    + * Constructs a new generic shape.
    + */
    +function mxStencilShape(stencil)
    +{
    +	this.stencil = stencil;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxStencilShape.prototype = new mxShape();
    +mxStencilShape.prototype.constructor = mxStencilShape;
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Always prefers VML in mixed mode for stencil shapes. Default is false.
    + */
    +mxStencilShape.prototype.mixedModeHtml = false;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Always prefers VML in prefer HTML mode for stencil shapes. Default is false.
    + */
    +mxStencilShape.prototype.preferModeHtml = false;
    +
    +/**
    + * Variable: stencil
    + *
    + * Holds the <mxStencil> that defines the shape.
    + */
    +mxStencilShape.prototype.stencil = null;
    +
    +/**
    + * Variable: state
    + *
    + * Holds the <mxCellState> associated with this shape.
    + */
    +mxStencilShape.prototype.state = null;
    +
    +/**
    + * Function: apply
    + * 
    + * Extends <mxShape> apply to keep a reference to the <mxCellState>.
    + *
    + * Parameters:
    + *
    + * state - <mxCellState> of the corresponding cell.
    + */
    +mxStencilShape.prototype.apply = function(state)
    +{
    +	this.state = state;
    +	mxShape.prototype.apply.apply(this, arguments);
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxStencilShape.prototype.createSvg = function()
    +{
    +	var node = document.createElementNS(mxConstants.NS_SVG, 'g');
    +	this.configureSvgShape(node);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: configureHtmlShape
    + *
    + * Overrides method to set the overflow style to visible.
    + */
    +mxStencilShape.prototype.configureHtmlShape = function(node)
    +{
    +	mxShape.prototype.configureHtmlShape.apply(this, arguments);
    +	
    +	if (!mxUtils.isVml(node))
    +	{
    +		node.style.overflow = 'visible';
    +	}
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxStencilShape.prototype.createVml = function()
    +{
    +	// TODO: VML group is required for rotation to work in mxStencil.
    +	// DIV is used as a workaround for IE8 standards mode because VML
    +	// groups don't seem to render with the outerHTML solution used in
    +	// mxShape.init (same if delayed after renderDom in redrawShape).
    +	var name = (document.documentMode == 8) ? 'div' : 'v:group';
    +	var node = document.createElement(name);
    +	this.configureTransparentBackground(node);
    +	node.style.position = 'absolute';
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: configureVmlShape
    + *
    + * Configures the specified VML node by applying the current color,
    + * bounds, shadow, opacity etc.
    + */
    +mxStencilShape.prototype.configureVmlShape = function(node)
    +{
    +	// do nothing
    +};
    +
    +/**
    + * Function: redraw
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxStencilShape.prototype.redraw = function()
    +{
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		this.redrawShape();
    +	}
    +	else
    +	{
    +		this.node.style.visibility = 'hidden';
    +		this.redrawShape();
    +		this.node.style.visibility = 'visible';
    +	}
    +};
    +
    +/**
    + * Function: redrawShape
    + *
    + * Updates the SVG or VML shape.
    + */
    +mxStencilShape.prototype.redrawShape = function()
    +{
    +	// LATER: Update existing DOM nodes to improve repaint performance
    +	if (this.dialect != mxConstants.DIALECT_SVG)
    +	{
    +		this.node.innerHTML = '';
    +		this.node.style.left = Math.round(this.bounds.x) + 'px';
    +		this.node.style.top = Math.round(this.bounds.y) + 'px';
    +		var w = Math.round(this.bounds.width);
    +		var h = Math.round(this.bounds.height);
    +		this.node.style.width = w + 'px';
    +		this.node.style.height = h + 'px';
    +		
    +		if (mxUtils.isVml(this.node))
    +		{
    +			this.node.coordsize = w + ',' + h;
    +		}
    +	}
    +	else
    +	{
    +		while (this.node.firstChild != null)
    +		{
    +			this.node.removeChild(this.node.firstChild);
    +		}
    +	}
    +	
    +	this.stencil.renderDom(this, this.bounds, this.node);
    +};
    diff --git a/javascript/src/js/shape/mxSwimlane.js b/javascript/src/js/shape/mxSwimlane.js
    new file mode 100644
    index 000000000..22720fd21
    --- /dev/null
    +++ b/javascript/src/js/shape/mxSwimlane.js
    @@ -0,0 +1,553 @@
    +/**
    + * $Id: mxSwimlane.js,v 1.43 2011-11-04 13:54:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxSwimlane
    + *
    + * Extends <mxShape> to implement a swimlane shape.
    + * This shape is registered under <mxConstants.SHAPE_SWIMLANE>
    + * in <mxCellRenderer>.
    + * 
    + * Constructor: mxSwimlane
    + *
    + * Constructs a new swimlane shape.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * fill - String that defines the fill color. This is stored in <fill>.
    + * stroke - String that defines the stroke color. This is stored in <stroke>.
    + * strokewidth - Optional integer that defines the stroke width. Default is
    + * 1. This is stored in <strokewidth>.
    + */
    +function mxSwimlane(bounds, fill, stroke, strokewidth)
    +{
    +	this.bounds = bounds;
    +	this.fill = fill;
    +	this.stroke = stroke;
    +	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxSwimlane.prototype = new mxShape();
    +mxSwimlane.prototype.constructor = mxSwimlane;
    +
    +/**
    + * Variable: vmlNodes
    + *
    + * Adds local references to <mxShape.vmlNodes>.
    + */
    +mxSwimlane.prototype.vmlNodes = mxSwimlane.prototype.vmlNodes.concat(['label', 'content', 'imageNode', 'separator']);
    +
    +/**
    + * Variable: imageSize
    + *
    + * Default imagewidth and imageheight if an image but no imagewidth
    + * and imageheight are defined in the style. Value is 16.
    + */
    +mxSwimlane.prototype.imageSize = 16;
    +
    +/**
    + * Variable: mixedModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw in VML in mixed Html mode. This is for better
    + * handling of event-transparency of the content area.
    + */
    +mxSwimlane.prototype.mixedModeHtml = false;
    +
    +/**
    + * Variable: preferModeHtml
    + *
    + * Overrides the parent value with false, meaning it will
    + * draw as VML in prefer Html mode. This is for better
    + * handling of event-transparency of the content area.
    + */
    +mxRhombus.prototype.preferModeHtml = false;
    +
    +/**
    + * Function: createHtml
    + *
    + * Creates and returns the HTML node to represent this shape.
    + */
    +mxSwimlane.prototype.createHtml = function()
    +{
    +	var node = document.createElement('DIV');
    +	this.configureHtmlShape(node);
    +	node.style.background = '';
    +	node.style.backgroundColor = '';
    +	node.style.borderStyle = 'none';
    +
    +	// Adds a node that will contain the text label
    +	this.label = document.createElement('DIV');
    +	this.configureHtmlShape(this.label);
    +	node.appendChild(this.label);
    +
    +	// Adds a node for the content area of the swimlane
    +	this.content = document.createElement('DIV');
    +	this.configureHtmlShape(this.content);
    +	this.content.style.backgroundColor = '';
    +	
    +	// Sets border styles depending on orientation
    +	if (mxUtils.getValue(this.style, mxConstants.STYLE_HORIZONTAL, true))
    +	{
    +		this.content.style.borderTopStyle = 'none';			
    +	}
    +	else
    +	{
    +		this.content.style.borderLeftStyle = 'none';
    +	}
    +	
    +	this.content.style.cursor = 'default';
    +	node.appendChild(this.content);
    +	
    +	// Adds a node for the separator
    +	var color = this.style[mxConstants.STYLE_SEPARATORCOLOR];
    +	
    +	if (color != null)
    +	{
    +		this.separator = document.createElement('DIV');
    +		this.separator.style.borderColor = color;
    +		this.separator.style.borderLeftStyle = 'dashed';
    +		node.appendChild(this.separator);
    +	}
    +	
    +	// Adds a node for the image
    +	if (this.image != null)
    +	{
    +		this.imageNode = mxUtils.createImage(this.image);
    +		this.configureHtmlShape(this.imageNode);
    +		this.imageNode.style.borderStyle = 'none';
    +		node.appendChild(this.imageNode);
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: reconfigure
    + *
    + * Overrides to avoid filled content area in HTML and updates the shadow
    + * in SVG.
    + */
    +mxSwimlane.prototype.reconfigure = function(node)
    +{
    +	mxShape.prototype.reconfigure.apply(this, arguments);
    +	
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		if (this.shadowNode != null)
    +		{
    +			this.updateSvgShape(this.shadowNode);
    +			
    +			if (mxUtils.getValue(this.style, mxConstants.STYLE_HORIZONTAL, true))
    +			{
    +				this.shadowNode.setAttribute('height', this.startSize*this.scale);
    +			}
    +			else
    +			{
    +				this.shadowNode.setAttribute('width', this.startSize*this.scale);				
    +			}
    +		}
    +	}
    +	else if (!mxUtils.isVml(this.node))
    +	{
    +		this.node.style.background = '';
    +		this.node.style.backgroundColor = '';
    +	}
    +};
    +
    +/**
    + * Function: redrawHtml
    + *
    + * Updates the HTML node(s) to reflect the latest bounds and scale.
    + */
    +mxSwimlane.prototype.redrawHtml = function()
    +{
    +	this.updateHtmlShape(this.node);
    +	this.node.style.background = '';
    +	this.node.style.backgroundColor = '';
    +	this.startSize = parseInt(mxUtils.getValue(this.style,
    +		mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE));
    +	this.updateHtmlShape(this.label);
    +	this.label.style.top = '0px';
    +	this.label.style.left = '0px';
    +	
    +	if (mxUtils.getValue(this.style, mxConstants.STYLE_HORIZONTAL, true))
    +	{
    +		this.startSize = Math.min(this.startSize, this.bounds.height);
    +		this.label.style.height = (this.startSize * this.scale)+'px'; // relative
    +		this.updateHtmlShape(this.content);
    +		this.content.style.background = '';
    +		this.content.style.backgroundColor = '';
    +		
    +		var h = this.startSize*this.scale;
    +		
    +		this.content.style.top = h+'px';
    +		this.content.style.left = '0px';
    +		this.content.style.height = Math.max(1, this.bounds.height - h)+'px';
    +		
    +		if (this.separator != null)
    +		{
    +			this.separator.style.left = Math.round(this.bounds.width)+'px';
    +			this.separator.style.top = Math.round(this.startSize*this.scale)+'px';
    +			this.separator.style.width = '1px';
    +			this.separator.style.height = Math.round(this.bounds.height)+'px';
    +			this.separator.style.borderWidth = Math.round(this.scale)+'px';
    +		}
    +		
    +		if (this.imageNode != null)
    +		{
    +			this.imageNode.style.left = (this.bounds.width-this.imageSize-4)+'px';
    +			this.imageNode.style.top = '0px';
    +			// TODO: Use imageWidth and height from style if available
    +			this.imageNode.style.width = Math.round(this.imageSize*this.scale)+'px';
    +			this.imageNode.style.height = Math.round(this.imageSize*this.scale)+'px';
    +		}
    +	}
    +	else
    +	{
    +		this.startSize = Math.min(this.startSize, this.bounds.width);
    +		this.label.style.width = (this.startSize * this.scale)+'px'; // relative
    +		this.updateHtmlShape(this.content);
    +		this.content.style.background = '';
    +		this.content.style.backgroundColor = '';
    +		
    +		var w = this.startSize*this.scale;
    +		
    +		this.content.style.top = '0px';
    +		this.content.style.left = w+'px';
    +		this.content.style.width = Math.max(0, this.bounds.width - w)+'px';
    +		
    +		if (this.separator != null)
    +		{
    +			this.separator.style.left = Math.round(this.startSize*this.scale)+'px';
    +			this.separator.style.top = Math.round(this.bounds.height)+'px';
    +			this.separator.style.width = Math.round(this.bounds.width)+'px';
    +			this.separator.style.height = '1px';
    +		}
    +		
    +		if (this.imageNode != null)
    +		{
    +			this.imageNode.style.left = (this.bounds.width-this.imageSize-4)+'px';
    +			this.imageNode.style.top = '0px';
    +			this.imageNode.style.width = this.imageSize*this.scale+'px';
    +			this.imageNode.style.height = this.imageSize*this.scale+'px';
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node(s) to represent this shape.
    + */
    +mxSwimlane.prototype.createVml = function()
    +{
    +	var node = document.createElement('v:group');
    +	var name = (this.isRounded) ? 'v:roundrect' : 'v:rect';
    +	this.label = document.createElement(name);
    +	
    +	// First configure the label with all settings
    +	this.configureVmlShape(this.label);
    +	
    +	if (this.isRounded)
    +	{
    +		this.label.setAttribute('arcsize', '20%');
    +	}
    +
    +	// Disables stuff and configures the rest
    +	this.isShadow = false;
    +	this.configureVmlShape(node);
    +	node.coordorigin = '0,0';
    +	node.appendChild(this.label);
    +	
    +	this.content = document.createElement(name);
    +
    +	var tmp = this.fill;
    +	this.fill = null;
    +	
    +	this.configureVmlShape(this.content);
    +	node.style.background = '';
    +	
    +	if (this.isRounded)
    +	{
    +		this.content.setAttribute('arcsize', '4%');
    +	}
    +	
    +	this.fill = tmp;
    +	this.content.style.borderBottom = '0px';
    +	
    +	node.appendChild(this.content);
    +	
    +	var color = this.style[mxConstants.STYLE_SEPARATORCOLOR];
    +	
    +	if (color != null)
    +	{
    +		this.separator = document.createElement('v:shape');
    +		this.separator.style.position = 'absolute';
    +		this.separator.strokecolor = color;
    +
    +		var strokeNode = document.createElement('v:stroke');
    +		strokeNode.dashstyle = '2 2';
    +		this.separator.appendChild(strokeNode);
    +		
    +		node.appendChild(this.separator);
    +	}
    +	
    +	if (this.image != null)
    +	{
    +		this.imageNode = document.createElement('v:image');
    +		this.imageNode.src = this.image;
    +		this.configureVmlShape(this.imageNode);
    +		this.imageNode.stroked = 'false';
    +		
    +		node.appendChild(this.imageNode);
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Updates the VML node(s) to reflect the latest bounds and scale.
    + */
    +mxSwimlane.prototype.redrawVml = function()
    +{
    +	var x = Math.round(this.bounds.x);
    +	var y = Math.round(this.bounds.y);
    +	var w = Math.round(this.bounds.width);
    +	var h = Math.round(this.bounds.height);
    +
    +	this.updateVmlShape(this.node);
    +	this.node.coordsize = w + ',' + h;
    +
    +	this.updateVmlShape(this.label);
    +	this.label.style.top = '0px';
    +	this.label.style.left = '0px';
    +	this.label.style.rotation = null;
    +
    +	this.startSize = parseInt(mxUtils.getValue(this.style,
    +			mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE));
    +	var start = Math.round(this.startSize * this.scale);
    +
    +	if (this.separator != null)
    +	{
    +		this.separator.coordsize = w + ',' + h;
    +		this.separator.style.left = x + 'px';
    +		this.separator.style.top = y + 'px';
    +		this.separator.style.width = w + 'px';
    +		this.separator.style.height = h + 'px';
    +	}
    +	
    +	if (mxUtils.getValue(this.style, mxConstants.STYLE_HORIZONTAL, true))
    +	{
    +		start = Math.min(start, this.bounds.height);
    +		this.label.style.height = start + 'px'; // relative
    +		this.updateVmlShape(this.content);
    +		this.content.style.background = '';
    +		this.content.style.top = start + 'px';
    +		this.content.style.left = '0px';
    +		this.content.style.height = Math.max(0, h - start)+'px';
    +		
    +		if (this.separator != null)
    +		{
    +			var d = 'm ' + (w - x) + ' ' + (start - y) +
    +				' l ' + (w - x) + ' ' + (h - y) + ' e';
    +			this.separator.path = d;
    +		}
    +		
    +		if (this.imageNode != null)
    +		{
    +			var img = Math.round(this.imageSize*this.scale);
    +			
    +			this.imageNode.style.left = (w-img-4)+'px';
    +			this.imageNode.style.top = '0px';
    +			this.imageNode.style.width = img + 'px';
    +			this.imageNode.style.height = img + 'px';
    +		}
    +	}
    +	else
    +	{
    +		start = Math.min(start, this.bounds.width);
    +		this.label.style.width = start + 'px'; // relative
    +		this.updateVmlShape(this.content);
    +		this.content.style.background = '';
    +		this.content.style.top = '0px';
    +		this.content.style.left = start + 'px';
    +		this.content.style.width = Math.max(0, w - start) + 'px';
    +		
    +		if (this.separator != null)
    +		{
    +			var d = 'm ' + (start - x) + ' ' + (h - y) +
    +				' l ' + (w - x) + ' ' + (h - y) + ' e';
    +			this.separator.path = d;
    +		}
    +		
    +		if (this.imageNode != null)
    +		{
    +			var img = Math.round(this.imageSize * this.scale);
    +			
    +			this.imageNode.style.left = (w - img - 4)+'px';
    +			this.imageNode.style.top = '0px';
    +			this.imageNode.style.width = img + 'px';
    +			this.imageNode.style.height = img + 'px';		
    +		}
    +	}
    +
    +	this.content.style.rotation = null;
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxSwimlane.prototype.createSvg = function()
    +{
    +	var node = this.createSvgGroup('rect');
    +
    +	if (this.isRounded)
    +	{
    +		this.innerNode.setAttribute('rx', 10);
    +		this.innerNode.setAttribute('ry', 10);
    +	}
    +
    +	this.content = document.createElementNS(mxConstants.NS_SVG, 'path');
    +	this.configureSvgShape(this.content);
    +	this.content.setAttribute('fill', 'none');
    +
    +	if (this.isRounded)
    +	{
    +		this.content.setAttribute('rx', 10);
    +		this.content.setAttribute('ry', 10);
    +	}
    +	
    +	node.appendChild(this.content);
    +	var color = this.style[mxConstants.STYLE_SEPARATORCOLOR];
    +	
    +	if (color != null)
    +	{
    +		this.separator = document.createElementNS(mxConstants.NS_SVG, 'line');
    +		
    +		this.separator.setAttribute('stroke', color);
    +		this.separator.setAttribute('fill', 'none');
    +		this.separator.setAttribute('stroke-dasharray', '2, 2');
    +		
    +		node.appendChild(this.separator);
    +	}
    +	
    +	if (this.image != null)
    +	{
    +		this.imageNode = document.createElementNS(mxConstants.NS_SVG, 'image');
    +		
    +		this.imageNode.setAttributeNS(mxConstants.NS_XLINK, 'href', this.image);
    +		this.configureSvgShape(this.imageNode);
    +		
    +		node.appendChild(this.imageNode);
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxSwimlane.prototype.redrawSvg = function()
    +{
    +	var tmp = this.isRounded;
    +	this.isRounded = false;
    +	
    +	this.updateSvgShape(this.innerNode);
    +	this.updateSvgShape(this.content);
    +	var horizontal = mxUtils.getValue(this.style, mxConstants.STYLE_HORIZONTAL, true);
    +	this.startSize = parseInt(mxUtils.getValue(this.style,
    +			mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE));
    +	var ss = this.startSize * this.scale;
    +	
    +	// Updates the size of the shadow node
    +	if (this.shadowNode != null)
    +	{
    +		this.updateSvgShape(this.shadowNode);
    +		
    +		if (horizontal)
    +		{
    +			this.shadowNode.setAttribute('height', ss);
    +		}
    +		else
    +		{
    +			this.shadowNode.setAttribute('width', ss);				
    +		}
    +	}
    +	
    +	this.isRounded = tmp;
    +
    +	this.content.removeAttribute('x');
    +	this.content.removeAttribute('y');
    +	this.content.removeAttribute('width');
    +	this.content.removeAttribute('height');
    +	
    +	var crisp = (this.crisp && mxClient.IS_IE) ? 0.5 : 0;
    +	var x = Math.round(this.bounds.x) + crisp;
    +	var y = Math.round(this.bounds.y) + crisp;
    +	var w = Math.round(this.bounds.width);
    +	var h = Math.round(this.bounds.height);
    +	
    +	if (horizontal)
    +	{
    +		ss = Math.min(ss, h);
    +		this.innerNode.setAttribute('height', ss);
    +		var points = 'M ' + x + ' ' + (y + ss) +
    +			' l 0 ' + (h - ss) + ' l ' + w + ' 0' + 
    +			' l 0 ' + (ss - h);
    +		this.content.setAttribute('d', points);
    +	
    +		if (this.separator != null)
    +		{
    +			this.separator.setAttribute('x1', x + w);
    +			this.separator.setAttribute('y1', y + ss);
    +			this.separator.setAttribute('x2', x + w);
    +			this.separator.setAttribute('y2', y + h);
    +		}
    +		
    +		if (this.imageNode != null)
    +		{
    +			this.imageNode.setAttribute('x', x + w - this.imageSize - 4);
    +			this.imageNode.setAttribute('y', y);
    +			this.imageNode.setAttribute('width', this.imageSize * this.scale + 'px');
    +			this.imageNode.setAttribute('height', this.imageSize * this.scale + 'px');
    +		}
    +	}
    +	else
    +	{
    +		ss = Math.min(ss, w);
    +		this.innerNode.setAttribute('width', ss);
    +		var points = 'M ' + (x + ss) + ' ' + y +
    +			' l ' + (w - ss) + ' 0' + ' l 0 ' + h +
    +			' l ' + (ss - w) + ' 0';
    +		this.content.setAttribute('d', points);
    +		
    +		if (this.separator != null)
    +		{
    +			this.separator.setAttribute('x1', x + ss);
    +			this.separator.setAttribute('y1', y + h);
    +			this.separator.setAttribute('x2', x + w);
    +			this.separator.setAttribute('y2', y + h);
    +		}
    +		
    +		if (this.imageNode != null)
    +		{
    +			this.imageNode.setAttribute('x', x + w - this.imageSize - 4);
    +			this.imageNode.setAttribute('y', y);
    +			this.imageNode.setAttribute('width', this.imageSize * this.scale + 'px');
    +			this.imageNode.setAttribute('height', this.imageSize * this.scale + 'px');
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/shape/mxText.js b/javascript/src/js/shape/mxText.js
    new file mode 100644
    index 000000000..ac0f1f495
    --- /dev/null
    +++ b/javascript/src/js/shape/mxText.js
    @@ -0,0 +1,1798 @@
    +/**
    + * $Id: mxText.js,v 1.166 2012-05-21 06:53:20 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxText
    + *
    + * Extends <mxShape> to implement a text shape. To change vertical text from
    + * bottom to top to top to bottom, the following code can be used:
    + * 
    + * (code)
    + * mxText.prototype.ieVerticalFilter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)';
    + * mxText.prototype.verticalTextDegree = 90;
    + * 
    + * mxText.prototype.getVerticalOffset = function(offset)
    + * {
    + *   return new mxPoint(-offset.y, offset.x);
    + * };
    + * (end)
    + * 
    + * Constructor: mxText
    + *
    + * Constructs a new text shape.
    + * 
    + * Parameters:
    + * 
    + * value - String that represents the text to be displayed. This is stored in
    + * <value>.
    + * bounds - <mxRectangle> that defines the bounds. This is stored in
    + * <mxShape.bounds>.
    + * align - Specifies the horizontal alignment. Default is ''. This is stored in
    + * <align>.
    + * valign - Specifies the vertical alignment. Default is ''. This is stored in
    + * <valign>.
    + * color - String that specifies the text color. Default is 'black'. This is
    + * stored in <color>.
    + * family - String that specifies the font family. Default is
    + * <mxConstants.DEFAULT_FONTFAMILY>. This is stored in <family>.
    + * size - Integer that specifies the font size. Default is
    + * <mxConstants.DEFAULT_FONTSIZE>. This is stored in <size>.
    + * fontStyle - Specifies the font style. Default is 0. This is stored in
    + * <fontStyle>.
    + * spacing - Integer that specifies the global spacing. Default is 2. This is
    + * stored in <spacing>.
    + * spacingTop - Integer that specifies the top spacing. Default is 0. The
    + * sum of the spacing and this is stored in <spacingTop>.
    + * spacingRight - Integer that specifies the right spacing. Default is 0. The
    + * sum of the spacing and this is stored in <spacingRight>.
    + * spacingBottom - Integer that specifies the bottom spacing. Default is 0.The
    + * sum of the spacing and this is stored in <spacingBottom>.
    + * spacingLeft - Integer that specifies the left spacing. Default is 0. The
    + * sum of the spacing and this is stored in <spacingLeft>.
    + * horizontal - Boolean that specifies if the label is horizontal. Default is
    + * true. This is stored in <horizontal>.
    + * background - String that specifies the background color. Default is null.
    + * This is stored in <background>.
    + * border - String that specifies the label border color. Default is null.
    + * This is stored in <border>.
    + * wrap - Specifies if word-wrapping should be enabled. Default is false.
    + * This is stored in <wrap>.
    + * clipped - Specifies if the label should be clipped. Default is false.
    + * This is stored in <clipped>.
    + * overflow - Value of the overflow style. Default is 'visible'.
    + */
    +function mxText(value, bounds, align, valign, color,
    +	family,	size, fontStyle, spacing, spacingTop, spacingRight,
    +	spacingBottom, spacingLeft, horizontal, background, border,
    +	wrap, clipped, overflow, labelPadding)
    +{
    +	this.value = value;
    +	this.bounds = bounds;
    +	this.color = (color != null) ? color : 'black';
    +	this.align = (align != null) ? align : '';
    +	this.valign = (valign != null) ? valign : '';
    +	this.family = (family != null) ? family : mxConstants.DEFAULT_FONTFAMILY;
    +	this.size = (size != null) ? size : mxConstants.DEFAULT_FONTSIZE;
    +	this.fontStyle = (fontStyle != null) ? fontStyle : 0;
    +	this.spacing = parseInt(spacing || 2);
    +	this.spacingTop = this.spacing + parseInt(spacingTop || 0);
    +	this.spacingRight = this.spacing + parseInt(spacingRight || 0);
    +	this.spacingBottom = this.spacing + parseInt(spacingBottom || 0);
    +	this.spacingLeft = this.spacing + parseInt(spacingLeft || 0);
    +	this.horizontal = (horizontal != null) ? horizontal : true;
    +	this.background = background;
    +	this.border = border;
    +	this.wrap = (wrap != null) ? wrap : false;
    +	this.clipped = (clipped != null) ? clipped : false;
    +	this.overflow = (overflow != null) ? overflow : 'visible';
    +	this.labelPadding = (labelPadding != null) ? labelPadding : 0;
    +};
    +
    +/**
    + * Extends mxShape.
    + */
    +mxText.prototype = new mxShape();
    +mxText.prototype.constructor = mxText;
    +
    +/**
    + * Variable: replaceLinefeeds
    + * 
    + * Specifies if linefeeds in HTML labels should be replaced with BR tags.
    + * Default is true. This is also used in <mxImageExport> to export the label.
    + */
    +mxText.prototype.replaceLinefeeds = true;
    +
    +/**
    + * Variable: ieVerticalFilter
    + * 
    + * Holds the filter definition for vertical text in IE. Default is
    + * progid:DXImageTransform.Microsoft.BasicImage(rotation=3).
    + */
    +mxText.prototype.ieVerticalFilter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)';
    +
    +/**
    + * Variable: verticalTextDegree
    + * 
    + * Specifies the degree to be used for vertical text. Default is -90.
    + */
    +mxText.prototype.verticalTextDegree = -90;
    +
    +/**
    + * Variable: forceIgnoreStringSize
    + * 
    + * Specifies if the string size should always be ignored. Default is false.
    + * This can be used to improve rendering speed in slow browsers. This can be
    + * used if all labels are smaller than the vertex width. String sizes are
    + * ignored by default for labels which are left aligned with no background and
    + * border or if the overflow is set to fill. 
    + */
    +mxText.prototype.forceIgnoreStringSize = false;
    +
    +/**
    + * Function: isStyleSet
    + *
    + * Returns true if the given font style (bold, italic etc)
    + * is true in this shape's fontStyle.
    + *
    + * Parameters:
    + *
    + * style - Fontstyle constant from <mxConstants>.
    + */
    +mxText.prototype.isStyleSet = function(style)
    +{
    +	return (this.fontStyle & style) == style;
    +};
    +
    +/**
    + * Function: create
    + *
    + * Override to create HTML regardless of gradient and
    + * rounded property.
    + */
    +mxText.prototype.create = function(container)
    +{
    +	var node = null;
    +	
    +	if (this.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		node = this.createSvg();
    +	}
    +	else if (this.dialect == mxConstants.DIALECT_STRICTHTML ||
    +			this.dialect == mxConstants.DIALECT_PREFERHTML ||
    +			!mxUtils.isVml(container))
    +	{
    +		if (mxClient.IS_SVG && !mxClient.NO_FO)
    +		{
    +			node = this.createForeignObject();
    +		}
    +		else
    +		{
    +			node = this.createHtml();
    +		}
    +	}
    +	else
    +	{
    +		node = this.createVml();
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: createForeignObject
    + *
    + * Creates and returns the foreignObject node to represent this shape.
    + */
    +mxText.prototype.createForeignObject = function()
    +{
    +	var node = document.createElementNS(mxConstants.NS_SVG, 'g');
    +	
    +	var fo = document.createElementNS(mxConstants.NS_SVG, 'foreignObject');
    +	fo.setAttribute('pointer-events', 'fill');
    +
    +	// Ignored in FF
    +	if (this.overflow == 'hidden')
    +	{
    +		fo.style.overflow = 'hidden';
    +	}
    +	else
    +	{
    +		// Fill and default are visible
    +		fo.style.overflow = 'visible';
    +	}
    +	
    +	var body = document.createElementNS(mxConstants.NS_XHTML, 'body');
    +	body.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml'); // FF
    +	body.style.margin = '0px';
    +	body.style.height = '100%';
    +	
    +	fo.appendChild(body);
    +	node.appendChild(fo);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: createHtml
    + *
    + * Creates and returns the HTML node to represent this shape.
    + */
    +mxText.prototype.createHtml = function()
    +{
    +	var table = this.createHtmlTable();
    +	table.style.position = 'absolute';
    +	
    +	return table;
    +};
    +
    +/**
    + * Function: createVml
    + *
    + * Creates and returns the VML node(s) to represent this shape.
    + */
    +mxText.prototype.createVml = function()
    +{
    +	return document.createElement('v:textbox');
    +};
    +
    +/**
    + * Function: redrawHtml
    + *
    + * Updates the HTML node(s) to reflect the latest bounds and scale.
    + */
    +mxText.prototype.redrawHtml = function()
    +{
    +	this.redrawVml();
    +};
    +
    +/**
    + * Function: getOffset
    + *
    + * Returns the description of the space between the <bounds> size and the label
    + * size as an <mxPoint>.
    + */
    +mxText.prototype.getOffset = function(outerWidth, outerHeight, actualWidth, actualHeight, horizontal)
    +{
    +	horizontal = (horizontal != null) ? horizontal : this.horizontal;
    +
    +	var tmpalign = (horizontal) ? this.align : this.valign;
    +	var tmpvalign = (horizontal) ? this.valign : this.align;
    +	var dx = actualWidth - outerWidth;
    +	var dy = actualHeight - outerHeight;
    +	
    +	if (tmpalign == mxConstants.ALIGN_CENTER || tmpalign == mxConstants.ALIGN_MIDDLE)
    +	{
    +		dx = Math.round(dx / 2);
    +	}
    +	else if (tmpalign == mxConstants.ALIGN_LEFT || tmpalign === mxConstants.ALIGN_TOP)
    +	{
    +		dx = (horizontal) ? 0 : (actualWidth - actualHeight) / 2;
    +	}
    +	else if (!horizontal) // BOTTOM
    +	{
    +		dx = (actualWidth + actualHeight) / 2 - outerWidth;
    +	}
    +
    +	if (tmpvalign == mxConstants.ALIGN_MIDDLE || tmpvalign == mxConstants.ALIGN_CENTER)
    +	{
    +		dy = Math.round(dy / 2);
    +	}
    +	else if (tmpvalign == mxConstants.ALIGN_TOP || tmpvalign == mxConstants.ALIGN_LEFT)
    +	{
    +		dy = (horizontal) ? 0 : (actualHeight + actualWidth) / 2 - outerHeight;
    +	}
    +	else if (!horizontal) // RIGHT
    +	{
    +		dy = (actualHeight - actualWidth) / 2;
    +	}
    +	
    +	return new mxPoint(dx, dy);
    +};
    +
    +/**
    + * Function: getSpacing
    + *
    + * Returns the spacing as an <mxPoint>.
    + */
    +mxText.prototype.getSpacing = function(horizontal)
    +{
    +	horizontal = (horizontal != null) ? horizontal : this.horizontal;
    +
    +	var dx = 0;
    +	var dy = 0;
    +
    +	if (this.align == mxConstants.ALIGN_CENTER)
    +	{
    +		dx = (this.spacingLeft - this.spacingRight) / 2;
    +	}
    +	else if (this.align == mxConstants.ALIGN_RIGHT)
    +	{
    +		dx = -this.spacingRight;
    +	}
    +	else
    +	{
    +		dx = this.spacingLeft;
    +	}
    +
    +	if (this.valign == mxConstants.ALIGN_MIDDLE)
    +	{
    +		dy = (this.spacingTop - this.spacingBottom) / 2;
    +	}
    +	else if (this.valign == mxConstants.ALIGN_BOTTOM)
    +	{
    +		dy = -this.spacingBottom;
    +	}
    +	else
    +	{
    +		dy = this.spacingTop;
    +	}
    +	
    +	return (horizontal) ? new mxPoint(dx, dy) : new mxPoint(dy, dx);
    +};
    +
    +/**
    + * Function: createHtmlTable
    + *
    + * Creates and returns a HTML table with a table body and a single row with a
    + * single cell.
    + */
    +mxText.prototype.createHtmlTable = function()
    +{
    +	var table = document.createElement('table');
    +	table.style.borderCollapse = 'collapse';
    +	var tbody = document.createElement('tbody');
    +	var tr = document.createElement('tr');
    +	var td = document.createElement('td');
    +	
    +	// Workaround for ignored table height in IE9 standards mode
    +	if (document.documentMode >= 9)
    +	{
    +		// FIXME: Ignored in print preview for IE9 standards mode
    +		td.style.height = '100%';
    +	}
    +
    +	tr.appendChild(td);
    +	tbody.appendChild(tr);
    +	table.appendChild(tbody);
    +	
    +	return table;
    +};
    +
    +/**
    + * Function: updateTableStyle
    + * 
    + * Updates the style of the given HTML table and the value
    + * within the table.
    + */
    +mxText.prototype.updateHtmlTable = function(table, scale)
    +{
    +	scale = (scale != null) ? scale : 1;
    +	var td = table.firstChild.firstChild.firstChild;
    +	
    +	// Reset of width required to measure actual width after word wrap
    +	if (this.wrap)
    +	{
    +		table.style.width = '';
    +	}
    +	
    +	// Updates the value
    +	if (mxUtils.isNode(this.value))
    +	{
    +		if (td.firstChild != this.value)
    +		{
    +			if (td.firstChild != null)
    +			{
    +				td.removeChild(td.firstChild);
    +			}
    +			
    +			td.appendChild(this.value);
    +		}
    +	}
    +	else
    +	{
    +		if (this.lastValue != this.value)
    +		{
    +			td.innerHTML = (this.replaceLinefeeds) ? this.value.replace(/\n/g, '<br/>') : this.value;
    +			this.lastValue = this.value;
    +		}
    +	}
    +
    +	// Font style
    +	var fontSize = Math.round(this.size * scale);
    +
    +	if (fontSize <= 0)
    +	{
    +		table.style.visibility = 'hidden';
    +	}
    +	else
    +	{
    +		// Do not use visible here as it will clone
    +		// all labels while panning in IE
    +		table.style.visibility = '';
    +	}
    +	
    +	table.style.fontSize = fontSize + 'px';
    +	table.style.color = this.color;
    +	table.style.fontFamily = this.family;
    +	
    +	// Bold
    +	if (this.isStyleSet(mxConstants.FONT_BOLD))
    +	{
    +		table.style.fontWeight = 'bold';
    +	}
    +	else
    +	{
    +		table.style.fontWeight = 'normal';
    +	}
    +	
    +	// Italic
    +	if (this.isStyleSet(mxConstants.FONT_ITALIC))
    +	{
    +		table.style.fontStyle = 'italic';
    +	}
    +	else
    +	{
    +		table.style.fontStyle = '';
    +	}
    +	
    +	// Underline
    +	if (this.isStyleSet(mxConstants.FONT_UNDERLINE))
    +	{
    +		table.style.textDecoration = 'underline';
    +	}
    +	else
    +	{
    +		table.style.textDecoration = '';
    +	}
    +
    +	// Font shadow (only available in IE)
    +	if (mxClient.IS_IE)
    +	{
    +		if (this.isStyleSet(mxConstants.FONT_SHADOW))
    +		{
    +			td.style.filter = 'Shadow(Color=#666666,'+'Direction=135,Strength=%)';
    +		}
    +		else
    +		{
    +			td.style.removeAttribute('filter');
    +		}
    +	}
    +
    +	// Horizontal and vertical alignment
    +	td.style.textAlign =
    +		(this.align == mxConstants.ALIGN_RIGHT) ? 'right' :
    +		((this.align == mxConstants.ALIGN_CENTER) ? 'center' :
    +		'left');
    +	td.style.verticalAlign =
    +		(this.valign == mxConstants.ALIGN_BOTTOM) ? 'bottom' :
    +		((this.valign == mxConstants.ALIGN_MIDDLE) ? 'middle' :
    +		'top');
    +	
    +	// Background style (Must use TD not TABLE for Firefox when rotated)
    +	if (this.value.length > 0 && this.background != null)
    +	{
    +		td.style.background = this.background;
    +	}
    +	else
    +	{
    +		td.style.background = '';
    +	}
    +	
    +	td.style.padding = this.labelPadding + 'px';
    +	
    +	if (this.value.length > 0 && this.border != null)
    +	{
    +		table.style.borderColor = this.border;
    +		table.style.borderWidth = '1px';
    +		table.style.borderStyle = 'solid';
    +	}
    +	else
    +	{
    +		table.style.borderStyle = 'none';
    +	}
    +};
    +
    +/**
    + * Function: getTableSize
    + * 
    + * Returns the actual size of the table.
    + */
    +mxText.prototype.getTableSize = function(table)
    +{
    +	return new mxRectangle(0, 0, table.offsetWidth, table.offsetHeight);
    +};
    +
    +/**
    + * Function: updateTableWidth
    + *
    + * Updates the width of the given HTML table.
    + */
    +mxText.prototype.updateTableWidth = function(table)
    +{
    +	var td = table.firstChild.firstChild.firstChild;
    +
    +	// Word-wrap for vertices (not edges) and only if not
    +	// just getting the bounding box in SVG
    +	if (this.wrap && this.bounds.width > 0 && this.dialect != mxConstants.DIALECT_SVG)
    +	{
    +		// Makes sure the label is not wrapped when measuring full length
    +		td.style.whiteSpace = 'nowrap';
    +		var size = this.getTableSize(table);
    +		var space = Math.min(size.width, ((this.horizontal || mxUtils.isVml(this.node)) ?
    +				this.bounds.width : this.bounds.height) / this.scale);
    +		
    +		// Opera needs the new width to be scaled
    +		if (mxClient.IS_OP)
    +		{
    +			space *= this.scale;
    +		}
    +
    +		table.style.width = Math.round(space) + 'px';
    +		td.style.whiteSpace = 'normal';
    +	}
    +	else
    +	{
    +		table.style.width = '';
    +	}
    +
    +	if (!this.wrap)
    +	{
    +		td.style.whiteSpace = 'nowrap';
    +	}
    +	else
    +	{
    +		td.style.whiteSpace = 'normal';
    +	}
    +};
    +
    +/**
    + * Function: redrawVml
    + *
    + * Updates the VML node(s) to reflect the latest bounds and scale.
    + */
    +mxText.prototype.redrawVml = function()
    +{
    +	if (this.node.nodeName == 'g')
    +	{
    +		this.redrawForeignObject();
    +	}
    +	else if (mxUtils.isVml(this.node))
    +	{
    +		this.redrawTextbox();
    +	}
    +	else
    +	{
    +		this.redrawHtmlTable();
    +	}
    +};
    +
    +/**
    + * Function: redrawTextbox
    + *
    + * Redraws the textbox for this text. This is only used in IE in exact
    + * rendering mode.
    + */
    +mxText.prototype.redrawTextbox = function()
    +{
    +	// Gets VML textbox
    +	var textbox = this.node;
    +
    +	// Creates HTML container on the fly
    +	if (textbox.firstChild == null)
    +	{
    +		textbox.appendChild(this.createHtmlTable());
    +	}
    +
    +	// Updates the table style and value
    +	var table = textbox.firstChild;
    +	this.updateHtmlTable(table);
    +	this.updateTableWidth(table);
    +	
    +	// Opacity
    +	if (this.opacity != null)
    +	{
    +		mxUtils.setOpacity(table, this.opacity);
    +	}
    +	
    +	table.style.filter = '';
    +	textbox.inset = '0px,0px,0px,0px';
    +	
    +	if (this.overflow != 'fill')
    +	{
    +		// Only tables can be used to work out the actual size of the markup
    +		var size = this.getTableSize(table);
    +		var w = size.width * this.scale;
    +		var h = size.height * this.scale;
    +		var offset = this.getOffset(this.bounds.width, this.bounds.height, w, h);
    +	
    +		// Rotates the label (IE only)
    +		if (!this.horizontal)
    +		{
    +			table.style.filter = this.ieVerticalFilter;
    +		}
    +		
    +		// Adds horizontal/vertical spacing
    +		var spacing = this.getSpacing();
    +		var x = this.bounds.x - offset.x + spacing.x * this.scale;
    +		var y = this.bounds.y - offset.y + spacing.y * this.scale;
    +	
    +		// Textboxes are always relative to their parent shape's top, left corner so
    +		// we use the inset for absolute positioning as they allow negative values
    +		// except for edges where the bounds are used to find the shape center
    +		var x0 = this.bounds.x;
    +		var y0 = this.bounds.y;
    +		var ow = this.bounds.width;
    +		var oh = this.bounds.height;
    +	
    +		// Insets are given as left, top, right, bottom
    +		if (this.horizontal)
    +		{
    +			var tx = Math.round(x - x0);
    +			var ty = Math.round(y - y0);
    +			
    +			var r = Math.min(0, Math.round(x0 + ow - x - w - 1));
    +			var b = Math.min(0, Math.round(y0 + oh - y - h - 1));
    +			textbox.inset = tx + 'px,' + ty + 'px,' + r + 'px,' + b + 'px';
    +		}
    +		else
    +		{
    +			var t = 0;
    +			var l = 0;
    +			var r = 0;
    +			var b = 0;
    +			
    +			if (this.align == mxConstants.ALIGN_CENTER)
    +			{
    +				t = (oh - w) / 2;
    +				b = t;
    +			}
    +			else if (this.align == mxConstants.ALIGN_LEFT)
    +			{
    +				t = oh - w; 
    +			}
    +			else
    +			{
    +				b = oh - w;
    +			}
    +			
    +			if (this.valign == mxConstants.ALIGN_MIDDLE)
    +			{
    +				l = (ow - h) / 2;
    +				r = l;
    +			}
    +			else if (this.valign == mxConstants.ALIGN_BOTTOM)
    +			{
    +				l = ow - h; 
    +			}
    +			else
    +			{
    +				r = ow - h;
    +			}
    +			
    +			textbox.inset = l + 'px,' + t + 'px,' + r + 'px,' + b + 'px';
    +		}
    +		
    +		textbox.style.zoom = this.scale;
    +	
    +		// Clipping
    +		if (this.clipped && this.bounds.width > 0 && this.bounds.height > 0)
    +		{
    +			this.boundingBox = this.bounds.clone();
    +			var dx = Math.round(x0 - x);
    +			var dy = Math.round(y0 - y);
    +	
    +			textbox.style.clip = 'rect(' + (dy / this.scale) + ' ' +
    +				((dx + this.bounds.width) / this.scale) + ' ' +
    +				((dy + this.bounds.height) / this.scale) + ' ' +
    +				(dx / this.scale) + ')';
    +		}
    +		else
    +		{
    +			this.boundingBox = new mxRectangle(x, y, w, h);
    +		}
    +	}
    +	else
    +	{
    +		this.boundingBox = this.bounds.clone();
    +	}
    +};
    +
    +/**
    + * Function: redrawHtmlTable
    + * 
    + * Redraws the HTML table. This is used for HTML labels in all modes except
    + * exact in IE and if NO_FO is false for the browser.
    + */
    +mxText.prototype.redrawHtmlTable = function()
    +{
    +	if (isNaN(this.bounds.x) || isNaN(this.bounds.y) ||
    +		isNaN(this.bounds.width) || isNaN(this.bounds.height))
    +	{
    +		return;
    +	}
    +	
    +	// Gets table
    +	var table = this.node;
    +	var td = table.firstChild.firstChild.firstChild;
    +
    +	// Un-rotates for computing the actual size
    +	// TODO: Check if the result can be tweaked instead in getActualSize
    +	// and only do this if actual rotation did change
    +	var oldBrowser = false;
    +	var fallbackScale = 1;
    +	
    +	if (mxClient.IS_IE)
    +	{
    +		table.style.removeAttribute('filter');
    +	}
    +	else if (mxClient.IS_SF || mxClient.IS_GC)
    +	{
    +		table.style.WebkitTransform = '';
    +	}
    +	else if (mxClient.IS_MT)
    +	{
    +		table.style.MozTransform = '';
    +		td.style.MozTransform = '';
    +	}
    +	else
    +	{
    +		if (mxClient.IS_OT)
    +		{
    +			table.style.OTransform = '';
    +		}
    +		
    +		fallbackScale = this.scale;
    +		oldBrowser = true;
    +	}
    +
    +	// Resets the current zoom for text measuring
    +	td.style.zoom = '';
    +	
    +	// Updates the table style and value
    +	this.updateHtmlTable(table, fallbackScale);
    +	this.updateTableWidth(table);
    +
    +	// Opacity
    +	if (this.opacity != null)
    +	{
    +		mxUtils.setOpacity(table, this.opacity);
    +	}
    +
    +	// Resets the bounds for computing the actual size
    +	table.style.left = '';
    +	table.style.top = '';
    +	table.style.height = '';
    +
    +	// Workaround for multiple zoom even if CSS style is reset here
    +	var currentZoom = parseFloat(td.style.zoom) || 1;
    +
    +	// Only tables can be used to work out the actual size of the markup
    +	// NOTE: offsetWidth and offsetHeight are very slow in quirks and IE 8 standards mode
    +	var w = this.bounds.width;
    +	var h = this.bounds.height;
    +	
    +	var ignoreStringSize = this.forceIgnoreStringSize || this.overflow == 'fill' ||
    +			(this.align == mxConstants.ALIGN_LEFT && this.background == null && this.border == null);
    +	
    +	if (!ignoreStringSize)
    +	{
    +		var size = this.getTableSize(table);
    +		w = size.width / currentZoom;
    +		h = size.height / currentZoom;
    +	}
    +
    +	var offset = this.getOffset(this.bounds.width / this.scale,
    +			this.bounds.height / this.scale, w, h,
    +			oldBrowser || this.horizontal);
    +
    +	// Adds horizontal/vertical spacing
    +	var spacing = this.getSpacing(oldBrowser || this.horizontal);
    +	var x = this.bounds.x / this.scale - offset.x + spacing.x;
    +	var y = this.bounds.y / this.scale - offset.y + spacing.y;
    +
    +	// Updates the table bounds and stores the scale to be used for
    +	// defining the table width and height, as well as an offset
    +	var s = this.scale;
    +	var s2 = 1;
    +	var shiftX = 0;
    +	var shiftY = 0;
    +	
    +	// Rotates the label and adds offset
    +	if (!this.horizontal)
    +	{
    +		if (mxClient.IS_IE && mxClient.IS_SVG)
    +		{
    +			table.style.msTransform = 'rotate(' + this.verticalTextDegree + 'deg)';
    +		}
    +		else if (mxClient.IS_IE)
    +		{
    +			table.style.filter = this.ieVerticalFilter;
    +			shiftX = (w - h) / 2;
    +			shiftY = -shiftX;
    +		}
    +		else if (mxClient.IS_SF || mxClient.IS_GC)
    +		{
    +			table.style.WebkitTransform = 'rotate(' + this.verticalTextDegree + 'deg)';
    +		}
    +		else if (mxClient.IS_OT)
    +		{
    +			table.style.OTransform = 'rotate(' + this.verticalTextDegree + 'deg)';
    +		}
    +		else if (mxClient.IS_MT)
    +		{
    +			// Firefox paints background and border only if background is on TD
    +			// and border is on TABLE and both are rotated, just the TD with a
    +			// rotation of zero (don't remove the 0-rotate CSS style)
    +			table.style.MozTransform = 'rotate(' + this.verticalTextDegree + 'deg)';
    +			td.style.MozTransform = 'rotate(0deg)';
    +			
    +			s2 = 1 / this.scale;
    +			s = 1;
    +		}
    +	}
    +
    +	// Sets the zoom
    +	var correction = true;
    +	
    +	if (mxClient.IS_MT || oldBrowser)
    +	{
    +		if (mxClient.IS_MT)
    +		{
    +			table.style.MozTransform += ' scale(' + this.scale + ')';
    +			s2 = 1 / this.scale;
    +		}
    +		else if (mxClient.IS_OT)
    +		{
    +			td.style.OTransform = 'scale(' + this.scale + ')';
    +			table.style.borderWidth = Math.round(this.scale * parseInt(table.style.borderWidth)) + 'px';
    +		}
    +	}
    +	else if (!oldBrowser)
    +	{
    +		// Workaround for unsupported zoom CSS in IE9 standards mode
    +		if (document.documentMode >= 9)
    +		{
    +			td.style.msTransform = 'scale(' + this.scale + ')';
    +		}
    +		// Uses transform in Webkit for better HTML scaling
    +		else if (mxClient.IS_SF || mxClient.IS_GC)
    +		{
    +			td.style.WebkitTransform = 'scale(' + this.scale + ')';
    +		}
    +		else
    +		{
    +			td.style.zoom = this.scale;
    +			
    +			// Fixes scaling of border width
    +			if (table.style.borderWidth != '' && document.documentMode != 8)
    +			{
    +				table.style.borderWidth = Math.round(this.scale * parseInt(table.style.borderWidth)) + 'px';
    +			}
    +			
    +			// Workaround for wrong scale in IE8 standards mode
    +			if (document.documentMode == 8 || !mxClient.IS_IE)
    +			{
    +				s = 1;
    +			}
    +			
    +			correction = false;
    +		}
    +	}
    +
    +	if (correction)
    +	{
    +		// Workaround for scaled TD position
    +		shiftX = (this.scale - 1) * w / (2 * this.scale);
    +		shiftY = (this.scale - 1) * h / (2 * this.scale);
    +		s = 1;
    +	}
    +	
    +	if (this.overflow != 'fill')
    +	{
    +	    var rect =  new mxRectangle(Math.round((x + shiftX) * this.scale),
    +	    		Math.round((y + shiftY) * this.scale), Math.round(w * s), Math.round(h * s));
    +	    table.style.left = rect.x + 'px';
    +	    table.style.top = rect.y + 'px';
    +	    table.style.width = rect.width + 'px';
    +	    table.style.height = rect.height + 'px';
    +		
    +		// Workaround for wrong scale in border and background rendering for table and td in IE8/9 standards mode
    +		if ((this.background != null || this.border != null) && document.documentMode >= 8)
    +		{
    +			var html = (this.replaceLinefeeds) ? this.value.replace(/\n/g, '<br/>') : this.value;
    +			td.innerHTML = '<div style="padding:' + this.labelPadding + 'px;background:' + td.style.background + ';border:' + table.style.border + '">' + html + '</div>';
    +			td.style.padding = '0px';
    +			td.style.background = '';
    +			table.style.border = '';
    +		}
    +
    +		// Clipping
    +		if (this.clipped && this.bounds.width > 0 && this.bounds.height > 0)
    +		{
    +			this.boundingBox = this.bounds.clone();
    +	
    +			// Clipping without rotation or for older browsers
    +			if (this.horizontal || (oldBrowser && !mxClient.IS_OT))
    +			{
    +				var dx = Math.max(0, offset.x * s);
    +				var dy = Math.max(0, offset.y * s);
    +
    +				// TODO: Fix clipping for Opera
    +				table.style.clip = 'rect(' + (dy) + 'px ' + (dx + this.bounds.width * s2) +
    +					'px ' + (dy + this.bounds.height * s2) + 'px ' + (dx) + 'px)';
    +			}
    +			else
    +			{
    +				// Workaround for IE clip using top, right, bottom, left (un-rotated)
    +				if (mxClient.IS_IE)
    +				{
    +					var uw = this.bounds.width;
    +					var uh = this.bounds.height;
    +					var dx = 0;
    +					var dy = 0;
    +	
    +					if (this.align == mxConstants.ALIGN_LEFT)
    +					{
    +						dx = Math.max(0, w - uh / this.scale) * this.scale;
    +					}
    +					else if (this.align == mxConstants.ALIGN_CENTER)
    +					{
    +						dx = Math.max(0, w - uh / this.scale) * this.scale / 2;
    +					}
    +					
    +					if (this.valign == mxConstants.ALIGN_BOTTOM)
    +					{
    +						dy = Math.max(0, h - uw / this.scale) * this.scale;
    +					}
    +					else if (this.valign == mxConstants.ALIGN_MIDDLE)
    +					{
    +						dy = Math.max(0, h - uw / this.scale) * this.scale / 2;
    +					}
    +	
    +					table.style.clip = 'rect(' + (dx) + 'px ' + (dy + uw - 1) +
    +						'px ' + (dx + uh - 1) + 'px ' + (dy) + 'px)';
    +				}
    +				else
    +				{
    +					var uw = this.bounds.width / this.scale;
    +					var uh = this.bounds.height / this.scale;
    +					
    +					if (mxClient.IS_OT)
    +					{
    +						uw = this.bounds.width;
    +						uh = this.bounds.height;
    +					}
    +					
    +					var dx = 0;
    +					var dy = 0;
    +	
    +					if (this.align == mxConstants.ALIGN_RIGHT)
    +					{
    +						dx = Math.max(0, w - uh);
    +					}
    +					else if (this.align == mxConstants.ALIGN_CENTER)
    +					{
    +						dx = Math.max(0, w - uh) / 2;
    +					}
    +					
    +					if (this.valign == mxConstants.ALIGN_BOTTOM)
    +					{
    +						dy = Math.max(0, h - uw);
    +					}
    +					else if (this.valign == mxConstants.ALIGN_MIDDLE)
    +					{
    +						dy = Math.max(0, h - uw) / 2;
    +					}
    +					
    +					if (mxClient.IS_GC || mxClient.IS_SF)
    +					{
    +						dx *= this.scale;
    +						dy *= this.scale;
    +						uw *= this.scale;
    +						uh *= this.scale;
    +					}
    +	
    +					table.style.clip = 'rect(' + (dy) + ' ' + (dx + uh) +
    +						' ' + (dy + uw) + ' ' + (dx) + ')';
    +				}
    +			}
    +		}
    +		else
    +		{
    +			this.boundingBox = rect;
    +		}
    +	}
    +	else
    +	{
    +		this.boundingBox = this.bounds.clone();
    +		
    +		if (document.documentMode >= 9 || mxClient.IS_SVG)
    +		{
    +			table.style.left = Math.round(this.bounds.x + this.scale / 2 + shiftX) + 'px';
    +			table.style.top = Math.round(this.bounds.y + this.scale / 2 + shiftY) + 'px';
    +			table.style.width = Math.round((this.bounds.width - this.scale) / this.scale) + 'px';
    +			table.style.height = Math.round((this.bounds.height - this.scale) / this.scale) + 'px';
    +		}
    +		else
    +		{
    +			table.style.left = Math.round(this.bounds.x + this.scale / 2) + 'px';
    +			table.style.top = Math.round(this.bounds.y + this.scale / 2) + 'px';
    +			table.style.width = Math.round(this.bounds.width - this.scale) + 'px';
    +			table.style.height = Math.round(this.bounds.height - this.scale) + 'px';
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getVerticalOffset
    + *
    + * Returns the factors for the offset to be added to the text vertical
    + * text rotation. This implementation returns (offset.y, -offset.x).
    + */
    +mxText.prototype.getVerticalOffset = function(offset)
    +{
    +	return new mxPoint(offset.y, -offset.x);
    +};
    +
    +/**
    + * Function: redrawForeignObject
    + *
    + * Redraws the foreign object for this text.
    + */
    +mxText.prototype.redrawForeignObject = function()
    +{
    +	// Gets SVG group with foreignObject
    +	var group = this.node;
    +	var fo = group.firstChild;
    +	
    +	// Searches the table which appears behind the background
    +	while (fo == this.backgroundNode)
    +	{
    +		fo = fo.nextSibling;
    +	}
    +	
    +	var body = fo.firstChild;
    +	
    +	// Creates HTML container on the fly
    +	if (body.firstChild == null)
    +	{
    +		body.appendChild(this.createHtmlTable());
    +	}
    +
    +	// Updates the table style and value
    +	var table = body.firstChild;
    +	this.updateHtmlTable(table);
    +	
    +	// Workaround for bug in Google Chrome where the text is moved to origin if opacity
    +	// is set on the table, so we set the opacity on the foreignObject instead.
    +	if (this.opacity != null)
    +	{
    +		fo.setAttribute('opacity', this.opacity / 100);
    +	}
    +	
    +	// Workaround for table background not appearing above the shape that is
    +	// behind the label in Safari. To solve this, we add a background rect that
    +	// paints the background instead.
    +	if (mxClient.IS_SF)
    +	{
    +		table.style.borderStyle = 'none';
    +		table.firstChild.firstChild.firstChild.style.background = '';
    +		
    +		if (this.backgroundNode == null && (this.background != null || this.border != null))
    +		{
    +			this.backgroundNode = document.createElementNS(mxConstants.NS_SVG, 'rect');
    +			group.insertBefore(this.backgroundNode, group.firstChild);
    +		}
    +		else if (this.backgroundNode != null && this.background == null && this.border == null)
    +		{
    +			this.backgroundNode.parentNode.removeChild(this.backgroundNode);
    +			this.backgroundNode = null;
    +		}
    +		
    +		if (this.backgroundNode != null)
    +		{
    +			if (this.background != null)
    +			{
    +				this.backgroundNode.setAttribute('fill', this.background);
    +			}
    +			else
    +			{
    +				this.backgroundNode.setAttribute('fill', 'none');
    +			}
    +	
    +			if (this.border != null)
    +			{
    +				this.backgroundNode.setAttribute('stroke', this.border);
    +			}
    +			else
    +			{
    +				this.backgroundNode.setAttribute('stroke', 'none');
    +			}
    +		}
    +	}
    +	
    +	var tr = '';
    +	
    +	if (this.overflow != 'fill')
    +	{
    +		// Resets the bounds for computing the actual size
    +		fo.removeAttribute('width');
    +		fo.removeAttribute('height');
    +		fo.style.width = '';
    +		fo.style.height = '';
    +		fo.style.clip = '';
    +		
    +		// Workaround for size of table not updated if inside foreignObject
    +		if (this.wrap || (!mxClient.IS_GC && !mxClient.IS_SF))
    +		{
    +			document.body.appendChild(table);
    +		}
    +
    +		this.updateTableWidth(table);
    +		
    +		// Only tables can be used to work out the actual size of the markup
    +		var size = this.getTableSize(table);
    +		var w = size.width;
    +		var h = size.height;
    +
    +		if (table.parentNode != body)
    +		{
    +			body.appendChild(table);
    +		}
    +
    +		// Adds horizontal/vertical spacing
    +		var spacing = this.getSpacing();
    +		
    +		var x = this.bounds.x / this.scale + spacing.x;
    +		var y = this.bounds.y / this.scale + spacing.y;
    +		var uw = this.bounds.width / this.scale;
    +		var uh = this.bounds.height / this.scale;
    +		var offset = this.getOffset(uw, uh, w, h);
    +		
    +		// Rotates the label and adds offset
    +		if (this.horizontal)
    +		{
    +			x -= offset.x;
    +			y -= offset.y;
    +			
    +			tr = 'scale(' + this.scale + ')';
    +		}
    +		else
    +		{
    +			var x0 = x + w / 2;
    +			var y0 = y + h / 2;
    +			
    +			tr = 'scale(' + this.scale + ') rotate(' + this.verticalTextDegree + ' ' + x0 + ' ' + y0 + ')';
    +	
    +			var tmp = this.getVerticalOffset(offset);
    +			x += tmp.x;
    +			y += tmp.y;
    +		}
    +		
    +		// Must use translate instead of x- and y-attribute on FO for iOS
    +		tr += ' translate(' + x + ' ' + y + ')';
    +		
    +		// Updates the bounds of the background node in Webkit
    +		if (this.backgroundNode != null)
    +		{
    +			this.backgroundNode.setAttribute('width', w);
    +			this.backgroundNode.setAttribute('height', h);
    +		}
    +		
    +		// Updates the foreignObject size
    +		fo.setAttribute('width', w);
    +		fo.setAttribute('height', h);
    +		
    +		// Clipping
    +		// TODO: Fix/check clipping for foreignObjects in Chrome 5.0 - if clipPath
    +		// is used in the group then things can no longer be moved around
    +		if (this.clipped && this.bounds.width > 0 && this.bounds.height > 0)
    +		{
    +			this.boundingBox = this.bounds.clone();
    +			var dx = Math.max(0, offset.x);
    +			var dy = Math.max(0, offset.y);
    +
    +			if (this.horizontal)
    +			{
    +				fo.style.clip = 'rect(' + dy + 'px,' + (dx + uw) +
    +					'px,' + (dy + uh) + 'px,' + (dx) + 'px)';
    +			}
    +			else
    +			{
    +				var dx = 0;
    +				var dy = 0;
    +	
    +				if (this.align == mxConstants.ALIGN_RIGHT)
    +				{
    +					dx = Math.max(0, w - uh);
    +				}
    +				else if (this.align == mxConstants.ALIGN_CENTER)
    +				{
    +					dx = Math.max(0, w - uh) / 2;
    +				}
    +				
    +				if (this.valign == mxConstants.ALIGN_BOTTOM)
    +				{
    +					dy = Math.max(0, h - uw);
    +				}
    +				else if (this.valign == mxConstants.ALIGN_MIDDLE)
    +				{
    +					dy = Math.max(0, h - uw) / 2;
    +				}
    +	
    +				fo.style.clip = 'rect(' + (dy) + 'px,' + (dx + uh) +
    +					'px,' + (dy + uw) + 'px,' + (dx) + 'px)';
    +			}
    +			
    +			// Clipping for the background node in Chrome
    +			if (this.backgroundNode != null)
    +			{
    +				x = this.bounds.x / this.scale;
    +				y = this.bounds.y / this.scale;
    +				
    +				if (!this.horizontal)
    +				{
    +					x += (h + w) / 2 - uh;
    +					y += (h - w) / 2;
    +					
    +					var tmp = uw;
    +					uw = uh;
    +					uh = tmp;
    +				}
    +	
    +				// No clipping in Chome available due to bug
    +				if (!mxClient.IS_GC)
    +				{
    +					var clip = this.getSvgClip(this.node.ownerSVGElement, x, y, uw, uh);
    +					
    +					if (clip != this.clip)
    +					{
    +						this.releaseSvgClip();
    +						this.clip = clip;
    +						clip.refCount++;
    +					}
    +				
    +					this.backgroundNode.setAttribute('clip-path', 'url(#' + clip.getAttribute('id') + ')');
    +				}
    +			}
    +		}
    +		else
    +		{
    +			// Removes clipping from background and cleans up the clip
    +			this.releaseSvgClip();
    +			
    +			if (this.backgroundNode != null)
    +			{
    +				this.backgroundNode.removeAttribute('clip-path');
    +			}
    +			
    +			if (this.horizontal)
    +			{
    +				this.boundingBox = new mxRectangle(x * this.scale, y * this.scale, w * this.scale, h * this.scale);
    +			}
    +			else
    +			{
    +				this.boundingBox = new mxRectangle(x * this.scale, y * this.scale, h * this.scale, w * this.scale);
    +			}
    +		}
    +	}
    +	else
    +	{
    +		this.boundingBox = this.bounds.clone();
    +		
    +		var s = this.scale;
    +		var w = this.bounds.width / s;
    +		var h = this.bounds.height / s;
    +		
    +		// Updates the foreignObject and table bounds
    +		fo.setAttribute('width', w);
    +		fo.setAttribute('height', h);
    +		table.style.width = w + 'px';
    +		table.style.height = h + 'px';
    +		
    +		// Updates the bounds of the background node in Webkit
    +		if (this.backgroundNode != null)
    +		{
    +			this.backgroundNode.setAttribute('width', table.clientWidth);
    +			this.backgroundNode.setAttribute('height', table.offsetHeight);
    +		}
    +		
    +		// Must use translate instead of x- and y-attribute on FO for iOS
    +		tr = 'scale(' + s + ') translate(' + (this.bounds.x / s) +
    +			' ' + (this.bounds.y / s) + ')';
    +
    +		if (!this.wrap)
    +		{
    +			var td = table.firstChild.firstChild.firstChild;
    +			td.style.whiteSpace = 'nowrap';
    +		}
    +	}
    +	
    +	group.setAttribute('transform', tr);
    +};
    +
    +/**
    + * Function: createSvg
    + *
    + * Creates and returns the SVG node(s) to represent this shape.
    + */
    +mxText.prototype.createSvg = function()
    +{
    +	// Creates a group so that shapes inside are rendered properly, if this is
    +	// a text node then the background rectangle is not rendered in Webkit.
    +	var node = document.createElementNS(mxConstants.NS_SVG, 'g');
    +
    +	var uline = this.isStyleSet(mxConstants.FONT_UNDERLINE) ? 'underline' : 'none';
    +	var weight = this.isStyleSet(mxConstants.FONT_BOLD) ? 'bold' : 'normal';
    +	var s = this.isStyleSet(mxConstants.FONT_ITALIC) ? 'italic' : null;
    +
    +	// Underline is not implemented in FF, see
    +	// https://bugzilla.mozilla.org/show_bug.cgi?id=317196
    +	node.setAttribute('text-decoration', uline);
    +	node.setAttribute('font-family', this.family);
    +	node.setAttribute('font-weight', weight);
    +	node.setAttribute('font-size', Math.round(this.size * this.scale) + 'px');
    +	node.setAttribute('fill', this.color);
    +	var align = (this.align == mxConstants.ALIGN_RIGHT) ? 'end' :
    +					(this.align == mxConstants.ALIGN_CENTER) ? 'middle' :
    +					'start';
    +	node.setAttribute('text-anchor', align);
    +	
    +	if (s != null)
    +	{
    +		node.setAttribute('font-style', s);
    +	}
    +
    +	// Adds a rectangle for the background color
    +	if (this.background != null || this.border != null)
    +	{
    +		this.backgroundNode = document.createElementNS(mxConstants.NS_SVG, 'rect');
    +		this.backgroundNode.setAttribute('shape-rendering', 'crispEdges');
    +
    +		if (this.background != null)
    +		{
    +			this.backgroundNode.setAttribute('fill', this.background);
    +		}
    +		else
    +		{
    +			this.backgroundNode.setAttribute('fill', 'none');
    +		}
    +		
    +		if (this.border != null)
    +		{
    +			this.backgroundNode.setAttribute('stroke', this.border);
    +		}
    +		else
    +		{
    +			this.backgroundNode.setAttribute('stroke', 'none');
    +		}
    +	}
    +	
    +	this.updateSvgValue(node);
    +	
    +	return node;
    +};
    +
    +/**
    + * Updates the text represented by the SVG DOM nodes.
    + */
    +mxText.prototype.updateSvgValue = function(node)
    +{
    +	if (this.currentValue != this.value)
    +	{
    +		// Removes all existing children
    +		while (node.firstChild != null)
    +		{
    +			node.removeChild(node.firstChild);
    +		}
    +		
    +		if (this.value != null)
    +		{
    +			// Adds tspan elements for the lines
    +			var uline = this.isStyleSet(mxConstants.FONT_UNDERLINE) ? 'underline' : 'none';
    +			var lines = this.value.split('\n');
    +			
    +			// Workaround for empty lines breaking the return value of getBBox
    +			// for the enclosing g element so we avoid adding empty lines
    +			// but still count them as a linefeed
    +			this.textNodes = new Array(lines.length);
    +			
    +		 	for (var i = 0; i < lines.length; i++)
    +		 	{
    +		 		if (!this.isEmptyString(lines[i]))
    +		 		{
    +			 		var tspan = this.createSvgSpan(lines[i]);
    +					node.appendChild(tspan);
    +					this.textNodes[i] = tspan;
    +					
    +					// Requires either 'inherit' in Webkit or explicit setting
    +					// to work in Webkit and IE9 standards mode. Both, inherit
    +					// and underline do not work in FF. This is a known bug in
    +					// FF (see above).
    +			 		tspan.setAttribute('text-decoration', uline);
    +		 		}
    +		 		else
    +		 		{
    +		 			this.textNodes[i] = null;
    +		 		}
    +			}
    +		}
    +		
    +		this.currentValue = this.value;
    +	}
    +};
    +
    +/**
    + * Function: redrawSvg
    + *
    + * Updates the SVG node(s) to reflect the latest bounds and scale.
    + */
    +mxText.prototype.redrawSvg = function()
    +{
    +	if (this.node.nodeName == 'foreignObject')
    +	{
    +		this.redrawHtml();
    +		
    +		return;
    +	}
    +	
    +	var fontSize = Math.round(this.size * this.scale);
    +	
    +	if (fontSize <= 0)
    +	{
    +		this.node.setAttribute('visibility', 'hidden');
    +	}
    +	else
    +	{
    +		this.node.removeAttribute('visibility');
    +	}
    +		
    +	this.updateSvgValue(this.node);
    +	this.node.setAttribute('font-size', fontSize + 'px');
    +
    +	if (this.opacity != null)
    +	{
    +		// Improves opacity performance in Firefox
    +		this.node.setAttribute('fill-opacity', this.opacity/100);
    +		this.node.setAttribute('stroke-opacity', this.opacity/100);
    +	}
    +
    +	// Workaround to avoid the use of getBBox to find the size
    +	// of the label. A temporary HTML table is created instead.
    +	var previous = this.value;
    +	var table = this.createHtmlTable();
    +		
    +	// Makes sure the table is updated and replaces all HTML entities 
    +	this.lastValue = null;
    +	this.value = mxUtils.htmlEntities(this.value, false);
    +	this.updateHtmlTable(table);
    +	
    +	// Adds the table to the DOM to find the actual size
    +	document.body.appendChild(table);
    +	var w = table.offsetWidth * this.scale;
    +	var h = table.offsetHeight * this.scale;
    +	
    +	// Cleans up the DOM and restores the original value
    +	table.parentNode.removeChild(table);
    +	this.value = previous;
    +
    +	// Sets the bounding box for the unclipped case so that
    +	// the full background can be painted using it, the initial
    +	// value for dx and the +4 in the width below are for
    +	// error correction of the HTML and SVG text width
    +	var dx = 2 * this.scale;
    +	
    +	if (this.align == mxConstants.ALIGN_CENTER)
    +	{
    +		dx += w / 2;
    +	}
    +	else if (this.align == mxConstants.ALIGN_RIGHT)
    +	{
    +		dx += w;
    +	}
    +
    +	var dy = Math.round(fontSize * 1.3);
    +	var childCount = this.node.childNodes.length;
    +	var lineCount = (this.textNodes != null) ? this.textNodes.length : 0;
    +	
    +	if (this.backgroundNode != null)
    +	{
    +		childCount--;
    +	}
    +	
    +	var x = this.bounds.x;
    +	var y = this.bounds.y;
    +
    +	x += (this.align == mxConstants.ALIGN_RIGHT) ?
    +		((this.horizontal) ? this.bounds.width : this.bounds.height)-
    +		this.spacingRight * this.scale :
    +		(this.align == mxConstants.ALIGN_CENTER) ?
    +			this.spacingLeft +
    +			(((this.horizontal) ? this.bounds.width : this.bounds.height) -
    +			this.spacingLeft - this.spacingRight) / 2 :
    +			this.spacingLeft * this.scale + 1;
    +
    +	// Makes sure the alignment is like in VML and HTML
    +	y += (this.valign == mxConstants.ALIGN_BOTTOM) ?
    +			((this.horizontal) ? this.bounds.height : this.bounds.width) -
    +			(lineCount - 1) * dy - this.spacingBottom * this.scale - 4 :
    +			(this.valign == mxConstants.ALIGN_MIDDLE) ?
    +				(this.spacingTop * this.scale +
    +				((this.horizontal) ? this.bounds.height : this.bounds.width) -
    +				this.spacingBottom * this.scale -
    +				(lineCount - 1.5) * dy) / 2 :
    +				this.spacingTop * this.scale + dy;
    +	
    +	if (this.overflow == 'fill')
    +	{
    +		if (this.align == mxConstants.ALIGN_CENTER)
    +		{
    +			x = Math.max(this.bounds.x + w / 2, x);	
    +		}
    +		
    +		y = Math.max(this.bounds.y + fontSize, y);
    +		
    +		this.boundingBox = new mxRectangle(x - dx, y - dy,
    +				w + 4 * this.scale, h + 1 * this.scale);
    +		this.boundingBox.x = Math.min(this.bounds.x, this.boundingBox.x);
    +		this.boundingBox.y = Math.min(this.bounds.y, this.boundingBox.y);
    +		this.boundingBox.width = Math.max(this.bounds.width, this.boundingBox.width);
    +		this.boundingBox.height = Math.max(this.bounds.height, this.boundingBox.height);
    +	}
    +	else
    +	{
    +		this.boundingBox = new mxRectangle(x - dx, y - dy,
    +			w + 4 * this.scale, h + 1 * this.scale);
    +	}
    +
    +	if (!this.horizontal)
    +	{
    +		var cx = this.bounds.x + this.bounds.width / 2;
    +		var cy = this.bounds.y + this.bounds.height / 2;
    +		
    +		var offsetX = (this.bounds.width - this.bounds.height) / 2;
    +		var offsetY = (this.bounds.height - this.bounds.width) / 2;
    +		
    +		this.node.setAttribute('transform',
    +			'rotate(' + this.verticalTextDegree + ' ' + cx + ' ' + cy + ') ' +
    +			'translate(' + (-offsetY) + ' ' + (-offsetX) + ')');
    +	}
    +
    +	// TODO: Font-shadow
    +	this.redrawSvgTextNodes(x, y, dy);
    +
    +	/*
    +	 * FIXME: Bounding box is not rotated. This seems to be a problem for
    +	 * all vertical text boxes. Workaround is in mxImageExport.
    +	if (!this.horizontal)
    +	{
    +		var b = this.bounds.y + this.bounds.height;
    +		var cx = this.boundingBox.getCenterX() - this.bounds.x;
    +		var cy = this.boundingBox.getCenterY() - this.bounds.y;
    +		
    +		var y = b - cx - this.bounds.height / 2;
    +		this.boundingBox.x = this.bounds.x + cy - this.boundingBox.width / 2;
    +		this.boundingBox.y = y;
    +	}
    +	*/
    +	
    +	// Updates the bounds of the background node if one exists
    +	if (this.value.length > 0 && this.backgroundNode != null && this.node.firstChild != null)
    +	{
    +		if (this.node.firstChild != this.backgroundNode)
    +		{
    +			this.node.insertBefore(this.backgroundNode, this.node.firstChild);
    +		}
    +
    +		// FIXME: For larger font sizes the linespacing between HTML and SVG
    +		// seems to be different and hence the bounding box isn't accurate.
    +		// Also in Firefox the background box is slighly offset.
    +		this.backgroundNode.setAttribute('x', this.boundingBox.x + this.scale / 2 + 1 * this.scale);
    +		this.backgroundNode.setAttribute('y', this.boundingBox.y + this.scale / 2 + 2 * this.scale - this.labelPadding);
    +		this.backgroundNode.setAttribute('width', this.boundingBox.width - this.scale - 2 * this.scale);
    +		this.backgroundNode.setAttribute('height', this.boundingBox.height - this.scale);
    +
    +		var strokeWidth = Math.round(Math.max(1, this.scale));
    +		this.backgroundNode.setAttribute('stroke-width', strokeWidth);
    +	}
    +	
    +	// Adds clipping and updates the bounding box
    +	// NOTE: Clipping is broken in latest Chrome - no longer possible to move stuff if used
    +	if (!mxClient.IS_GC)
    +	{
    +		if (this.clipped && this.bounds.width > 0 && this.bounds.height > 0)
    +		{
    +			this.boundingBox = this.bounds.clone();
    +	
    +			if (!this.horizontal)
    +			{
    +				this.boundingBox.width = this.bounds.height;
    +				this.boundingBox.height = this.bounds.width;
    +			}
    +			
    +			x = this.bounds.x;
    +			y = this.bounds.y;
    +			
    +			if (this.horizontal)
    +			{
    +				w = this.bounds.width;
    +				h = this.bounds.height;
    +			}
    +			else
    +			{
    +				w = this.bounds.height;
    +				h = this.bounds.width;	
    +			}
    +			
    +			var clip = this.getSvgClip(this.node.ownerSVGElement, x, y, w, h);
    +			
    +			if (clip != this.clip)
    +			{
    +				this.releaseSvgClip();
    +				this.clip = clip;
    +				clip.refCount++;
    +			}
    +				
    +			this.node.setAttribute('clip-path', 'url(#' + clip.getAttribute('id') + ')');
    +		}
    +		else
    +		{
    +			this.releaseSvgClip();
    +			this.node.removeAttribute('clip-path');
    +		}
    +	}
    +};
    +
    +/**
    + * Function: redrawSvgTextNodes
    + * 
    + * Hook to update the position of the SVG text nodes.
    + */
    +mxText.prototype.redrawSvgTextNodes = function(x, y, dy)
    +{
    +	if (this.textNodes != null)
    +	{
    +		var currentY = y;
    +		
    +		for (var i = 0; i < this.textNodes.length; i++)
    +		{
    +			var node = this.textNodes[i];
    +			
    +			if (node != null)
    +			{
    +				node.setAttribute('x', x);
    +				node.setAttribute('y', currentY);
    +	
    +				// Triggers an update in Firefox 1.5.0.x (don't add a semicolon!)
    +				node.setAttribute('style', 'pointer-events: all');
    +			}
    +			
    +			currentY += dy;
    +		}
    +	}
    +};
    +
    +/**
    + * Function: releaseSvgClip
    + * 
    + * Releases the given SVG clip removing it from the DOM if required.
    + */
    +mxText.prototype.releaseSvgClip = function()
    +{
    +	if (this.clip != null)
    +	{
    +		this.clip.refCount--;
    +		
    +		if (this.clip.refCount == 0)
    +		{
    +			this.clip.parentNode.removeChild(this.clip);
    +		}
    +		
    +		this.clip = null;
    +	}
    +};
    +
    +/**
    + * Function: getSvgClip
    + * 
    + * Returns a new or existing SVG clip path which is a descendant of the given
    + * SVG node with a unique ID. 
    + */
    +mxText.prototype.getSvgClip = function(svg, x, y, w, h)
    +{
    +	x = Math.round(x);
    +	y = Math.round(y);
    +	w = Math.round(w);
    +	h = Math.round(h);
    +	
    +	var id = 'mx-clip-' + x + '-' + y + '-' + w + '-' + h;
    +
    +	// Quick access
    +	if (this.clip != null && this.clip.ident == id)
    +	{
    +		return this.clip;
    +	}
    +	
    +	var counter = 0;
    +	var tmp = id + '-' + counter;
    +	var clip = document.getElementById(tmp);
    +	
    +	// Tries to find an existing clip in the given SVG
    +	while (clip != null)
    +	{
    +		if (clip.ownerSVGElement == svg)
    +		{
    +			return clip;
    +		}
    +		
    +		counter++;
    +		tmp = id + '-' + counter;
    +		clip = document.getElementById(tmp);
    +	}
    +	
    +	// Creates a new clip node and adds it to the DOM
    +	if (clip != null)
    +	{
    +		clip = clip.cloneNode(true);
    +		counter++;
    +	}
    +	else
    +	{
    +		clip = document.createElementNS(mxConstants.NS_SVG, 'clipPath');
    +		
    +		var rect = document.createElementNS(mxConstants.NS_SVG, 'rect');
    +		rect.setAttribute('x', x);
    +		rect.setAttribute('y', y);
    +		rect.setAttribute('width', w);
    +		rect.setAttribute('height', h);
    +		
    +		clip.appendChild(rect);
    +	}
    +	
    +	clip.setAttribute('id', id + '-' + counter);
    +	clip.ident = id; // For quick access above
    +	svg.appendChild(clip);
    +	clip.refCount = 0;
    +	
    +	return clip;
    +};
    +
    +/**
    + * Function: isEmptyString
    + *
    + * Returns true if the given string is empty or
    + * contains only whitespace.
    + */
    +mxText.prototype.isEmptyString = function(text)
    +{
    +	return text.replace(/ /g, '').length == 0;
    +};
    +
    +/**
    + * Function: createSvgSpan
    + *
    + * Creats an SVG tspan node for the given text.
    + */
    +mxText.prototype.createSvgSpan = function(text)
    +{
    +	// Creates a text node since there is no enclosing text element but
    +	// rather a group, which is required to render the background rectangle
    +	// in Webkit. This can be changed to tspan if the enclosing node is
    +	// a text but this leads to an hidden background in Webkit.
    +	var node = document.createElementNS(mxConstants.NS_SVG, 'text');
    +	mxUtils.write(node, text);
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: destroy
    + *
    + * Extends destroy to remove any allocated SVG clips.
    + */
    +mxText.prototype.destroy = function()
    +{
    +	this.releaseSvgClip();
    +	mxShape.prototype.destroy.apply(this, arguments);
    +};
    diff --git a/javascript/src/js/shape/mxTriangle.js b/javascript/src/js/shape/mxTriangle.js
    new file mode 100644
    index 000000000..3a48db2b3
    --- /dev/null
    +++ b/javascript/src/js/shape/mxTriangle.js
    @@ -0,0 +1,34 @@
    +/**
    + * $Id: mxTriangle.js,v 1.10 2011-09-02 10:01:00 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxTriangle
    + * 
    + * Implementation of the triangle shape.
    + * 
    + * Constructor: mxTriangle
    + *
    + * Constructs a new triangle shape.
    + */
    +function mxTriangle() { };
    +
    +/**
    + * Extends <mxActor>.
    + */
    +mxTriangle.prototype = new mxActor();
    +mxTriangle.prototype.constructor = mxTriangle;
    +
    +/**
    + * Function: redrawPath
    + *
    + * Draws the path for this shape. This method uses the <mxPath>
    + * abstraction to paint the shape for VML and SVG.
    + */
    +mxTriangle.prototype.redrawPath = function(path, x, y, w, h)
    +{
    +	path.moveTo(0, 0);
    +	path.lineTo(w, 0.5 * h);
    +	path.lineTo(0, h);
    +	path.close();
    +};
    diff --git a/javascript/src/js/util/mxAnimation.js b/javascript/src/js/util/mxAnimation.js
    new file mode 100644
    index 000000000..80901ef3e
    --- /dev/null
    +++ b/javascript/src/js/util/mxAnimation.js
    @@ -0,0 +1,82 @@
    +/**
    + * $Id: mxAnimation.js,v 1.2 2010-03-19 12:53:29 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + *
    + * Class: mxAnimation
    + * 
    + * Implements a basic animation in JavaScript.
    + * 
    + * Constructor: mxAnimation
    + * 
    + * Constructs an animation.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + */
    +function mxAnimation(delay)
    +{
    +	this.delay = (delay != null) ? delay : 20;
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxAnimation.prototype = new mxEventSource();
    +mxAnimation.prototype.constructor = mxAnimation;
    +
    +/**
    + * Variable: delay
    + * 
    + * Specifies the delay between the animation steps. Defaul is 30ms.
    + */
    +mxAnimation.prototype.delay = null;
    +
    +/**
    + * Variable: thread
    + * 
    + * Reference to the thread while the animation is running.
    + */
    +mxAnimation.prototype.thread = null;
    +
    +/**
    + * Function: startAnimation
    + *
    + * Starts the animation by repeatedly invoking updateAnimation.
    + */
    +mxAnimation.prototype.startAnimation = function()
    +{
    +	if (this.thread == null)
    +	{
    +		this.thread = window.setInterval(mxUtils.bind(this, this.updateAnimation), this.delay);
    +	}
    +};
    +
    +/**
    + * Function: updateAnimation
    + *
    + * Hook for subclassers to implement the animation. Invoke stopAnimation
    + * when finished, startAnimation to resume. This is called whenever the
    + * timer fires and fires an mxEvent.EXECUTE event with no properties.
    + */
    +mxAnimation.prototype.updateAnimation = function()
    +{
    +	this.fireEvent(new mxEventObject(mxEvent.EXECUTE));
    +};
    +
    +/**
    + * Function: stopAnimation
    + *
    + * Stops the animation by deleting the timer and fires an <mxEvent.DONE>.
    + */
    +mxAnimation.prototype.stopAnimation = function()
    +{
    +	if (this.thread != null)
    +	{
    +		window.clearInterval(this.thread);
    +		this.thread = null;
    +		this.fireEvent(new mxEventObject(mxEvent.DONE));
    +	}
    +};
    diff --git a/javascript/src/js/util/mxAutoSaveManager.js b/javascript/src/js/util/mxAutoSaveManager.js
    new file mode 100644
    index 000000000..85c23dc21
    --- /dev/null
    +++ b/javascript/src/js/util/mxAutoSaveManager.js
    @@ -0,0 +1,213 @@
    +/**
    + * $Id: mxAutoSaveManager.js,v 1.9 2010-09-16 09:10:21 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxAutoSaveManager
    + * 
    + * Manager for automatically saving diagrams. The <save> hook must be
    + * implemented.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var mgr = new mxAutoSaveManager(editor.graph);
    + * mgr.save = function()
    + * {
    + *   mxLog.show();
    + *   mxLog.debug('save');
    + * };
    + * (end)
    + * 
    + * Constructor: mxAutoSaveManager
    + *
    + * Constructs a new automatic layout for the given graph.
    + *
    + * Arguments:
    + * 
    + * graph - Reference to the enclosing graph. 
    + */
    +function mxAutoSaveManager(graph)
    +{
    +	// Notifies the manager of a change
    +	this.changeHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		if (this.isEnabled())
    +		{
    +			this.graphModelChanged(evt.getProperty('edit').changes);
    +		}
    +	});
    +
    +	this.setGraph(graph);
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxAutoSaveManager.prototype = new mxEventSource();
    +mxAutoSaveManager.prototype.constructor = mxAutoSaveManager;
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxAutoSaveManager.prototype.graph = null;
    +
    +/**
    + * Variable: autoSaveDelay
    + * 
    + * Minimum amount of seconds between two consecutive autosaves. Eg. a
    + * value of 1 (s) means the graph is not stored more than once per second.
    + * Default is 10.
    + */
    +mxAutoSaveManager.prototype.autoSaveDelay = 10;
    +
    +/**
    + * Variable: autoSaveThrottle
    + * 
    + * Minimum amount of seconds between two consecutive autosaves triggered by
    + * more than <autoSaveThreshhold> changes within a timespan of less than
    + * <autoSaveDelay> seconds. Eg. a value of 1 (s) means the graph is not
    + * stored more than once per second even if there are more than
    + * <autoSaveThreshold> changes within that timespan. Default is 2.
    + */
    +mxAutoSaveManager.prototype.autoSaveThrottle = 2;
    +
    +/**
    + * Variable: autoSaveThreshold
    + * 
    + * Minimum amount of ignored changes before an autosave. Eg. a value of 2
    + * means after 2 change of the graph model the autosave will trigger if the
    + * condition below is true. Default is 5.
    + */
    +mxAutoSaveManager.prototype.autoSaveThreshold = 5;
    +
    +/**
    + * Variable: ignoredChanges
    + * 
    + * Counter for ignored changes in autosave.
    + */
    +mxAutoSaveManager.prototype.ignoredChanges = 0;
    +
    +/**
    + * Variable: lastSnapshot
    + * 
    + * Used for autosaving. See <autosave>.
    + */
    +mxAutoSaveManager.prototype.lastSnapshot = 0;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if event handling is enabled. Default is true.
    + */
    +mxAutoSaveManager.prototype.enabled = true;
    +
    +/**
    + * Variable: changeHandler
    + * 
    + * Holds the function that handles graph model changes.
    + */
    +mxAutoSaveManager.prototype.changeHandler = null;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxAutoSaveManager.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxAutoSaveManager.prototype.setEnabled = function(value)
    +{
    +	this.enabled = value;
    +};
    +
    +/**
    + * Function: setGraph
    + * 
    + * Sets the graph that the layouts operate on.
    + */
    +mxAutoSaveManager.prototype.setGraph = function(graph)
    +{
    +	if (this.graph != null)
    +	{
    +		this.graph.getModel().removeListener(this.changeHandler);
    +	}
    +	
    +	this.graph = graph;
    +	
    +	if (this.graph != null)
    +	{
    +		this.graph.getModel().addListener(mxEvent.CHANGE, this.changeHandler);
    +	}
    +};
    +
    +/**
    + * Function: save
    + * 
    + * Empty hook that is called if the graph should be saved.
    + */
    +mxAutoSaveManager.prototype.save = function()
    +{
    +	// empty
    +};
    +
    +/**
    + * Function: graphModelChanged
    + * 
    + * Invoked when the graph model has changed.
    + */
    +mxAutoSaveManager.prototype.graphModelChanged = function(changes)
    +{
    +	var now = new Date().getTime();
    +	var dt = (now - this.lastSnapshot) / 1000;
    +	
    +	if (dt > this.autoSaveDelay ||
    +		(this.ignoredChanges >= this.autoSaveThreshold &&
    +		 dt > this.autoSaveThrottle))
    +	{
    +		this.save();
    +		this.reset();
    +	}
    +	else
    +	{
    +		// Increments the number of ignored changes
    +		this.ignoredChanges++;
    +	}
    +};
    +
    +/**
    + * Function: reset
    + * 
    + * Resets all counters.
    + */
    +mxAutoSaveManager.prototype.reset = function()
    +{
    +	this.lastSnapshot = new Date().getTime();
    +	this.ignoredChanges = 0;
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Removes all handlers from the <graph> and deletes the reference to it.
    + */
    +mxAutoSaveManager.prototype.destroy = function()
    +{
    +	this.setGraph(null);
    +};
    diff --git a/javascript/src/js/util/mxClipboard.js b/javascript/src/js/util/mxClipboard.js
    new file mode 100644
    index 000000000..e9fec6bfd
    --- /dev/null
    +++ b/javascript/src/js/util/mxClipboard.js
    @@ -0,0 +1,144 @@
    +/**
    + * $Id: mxClipboard.js,v 1.29 2010-01-02 09:45:14 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxClipboard =
    +{
    +	/**
    +	 * Class: mxClipboard
    +	 * 
    +	 * Singleton that implements a clipboard for graph cells.
    +	 *
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * mxClipboard.copy(graph);
    +	 * mxClipboard.paste(graph2);
    +	 * (end)
    +	 *
    +	 * This copies the selection cells from the graph to the
    +	 * clipboard and pastes them into graph2.
    +	 * 
    +	 * For fine-grained control of the clipboard data the <mxGraph.canExportCell>
    +	 * and <mxGraph.canImportCell> functions can be overridden.
    +	 * 
    +	 * Variable: STEPSIZE
    +	 * 
    +	 * Defines the step size to offset the cells
    +	 * after each paste operation. Default is 10.
    +	 */
    +	STEPSIZE: 10,
    +
    +	/**
    +	 * Variable: insertCount
    +	 * 
    +	 * Counts the number of times the clipboard data has been inserted.
    +	 */
    +	insertCount: 1,
    +
    +	/**
    +	 * Variable: cells
    +	 * 
    +	 * Holds the array of <mxCells> currently in the clipboard.
    +	 */
    +	cells: null,
    +	
    +	/**
    +	 * Function: isEmpty
    +	 * 
    +	 * Returns true if the clipboard currently has not data stored.
    +	 */
    +	isEmpty: function()
    +	{
    +		return mxClipboard.cells == null;
    +	},
    +
    +	/**
    +	 * Function: cut
    +	 * 
    +	 * Cuts the given array of <mxCells> from the specified graph.
    +	 * If cells is null then the selection cells of the graph will
    +	 * be used. Returns the cells that have been cut from the graph.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * graph - <mxGraph> that contains the cells to be cut.
    +	 * cells - Optional array of <mxCells> to be cut.
    +	 */
    +	cut: function(graph, cells)
    +	{
    +		cells = mxClipboard.copy(graph, cells);
    +		mxClipboard.insertCount = 0;
    +		mxClipboard.removeCells(graph, cells);
    +		
    +		return cells;
    +	},
    +
    +	/**
    +	 * Function: removeCells
    +	 * 
    +	 * Hook to remove the given cells from the given graph after
    +	 * a cut operation.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * graph - <mxGraph> that contains the cells to be cut.
    +	 * cells - Array of <mxCells> to be cut.
    +	 */
    +	removeCells: function(graph, cells)
    +	{
    +		graph.removeCells(cells);
    +	},
    +
    +	/**
    +	 * Function: copy
    +	 * 
    +	 * Copies the given array of <mxCells> from the specified
    +	 * graph to <cells>.Returns the original array of cells that has
    +	 * been cloned.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * graph - <mxGraph> that contains the cells to be copied.
    +	 * cells - Optional array of <mxCells> to be copied.
    +	 */
    +	copy: function(graph, cells)
    +	{
    +		cells = cells || graph.getSelectionCells();
    +		var result = graph.getExportableCells(cells);
    +		mxClipboard.insertCount = 1;
    +		mxClipboard.cells = graph.cloneCells(result);
    +
    +		return result;
    +	},
    +
    +	/**
    +	 * Function: paste
    +	 * 
    +	 * Pastes the <cells> into the specified graph restoring
    +	 * the relation to <parents>, if possible. If the parents
    +	 * are no longer in the graph or invisible then the
    +	 * cells are added to the graph's default or into the
    +	 * swimlane under the cell's new location if one exists.
    +	 * The cells are added to the graph using <mxGraph.importCells>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * graph - <mxGraph> to paste the <cells> into.
    +	 */
    +	paste: function(graph)
    +	{
    +		if (mxClipboard.cells != null)
    +		{
    +			var cells = graph.getImportableCells(mxClipboard.cells);
    +			var delta = mxClipboard.insertCount * mxClipboard.STEPSIZE;
    +			var parent = graph.getDefaultParent();
    +			cells = graph.importCells(cells, delta, delta, parent);
    +			
    +			// Increments the counter and selects the inserted cells
    +			mxClipboard.insertCount++;
    +			graph.setSelectionCells(cells);
    +		}
    +	}
    +
    +};
    diff --git a/javascript/src/js/util/mxConstants.js b/javascript/src/js/util/mxConstants.js
    new file mode 100644
    index 000000000..671b9a90b
    --- /dev/null
    +++ b/javascript/src/js/util/mxConstants.js
    @@ -0,0 +1,1895 @@
    +/**
    + * $Id: mxConstants.js,v 1.123 2012-03-30 12:33:43 david Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    + var mxConstants =
    + {
    +	/**
    +	 * Class: mxConstants
    +	 * 
    +	 * Defines various global constants.
    +	 * 
    +	 * Variable: DEFAULT_HOTSPOT
    +	 * 
    +	 * Defines the portion of the cell which is to be used as a connectable
    +	 * region. Default is 0.3. Possible values are 0 < x <= 1. 
    +	 */
    +	DEFAULT_HOTSPOT: 0.3,
    +
    +	/**
    +	 * Variable: MIN_HOTSPOT_SIZE
    +	 * 
    +	 * Defines the minimum size in pixels of the portion of the cell which is
    +	 * to be used as a connectable region. Default is 8.
    +	 */
    +	MIN_HOTSPOT_SIZE: 8,
    +
    +	/**
    +	 * Variable: MAX_HOTSPOT_SIZE
    +	 * 
    +	 * Defines the maximum size in pixels of the portion of the cell which is
    +	 * to be used as a connectable region. Use 0 for no maximum. Default is 0.
    +	 */
    +	MAX_HOTSPOT_SIZE: 0,
    +
    +	/**
    +	 * Variable: RENDERING_HINT_EXACT
    +	 * 
    +	 * Defines the exact rendering hint.
    +	 */
    +	RENDERING_HINT_EXACT: 'exact',
    +
    +	/**
    +	 * Variable: RENDERING_HINT_FASTER
    +	 * 
    +	 * Defines the faster rendering hint.
    +	 */
    +	RENDERING_HINT_FASTER: 'faster',
    +
    +	/**
    +	 * Variable: RENDERING_HINT_FASTEST
    +	 * 
    +	 * Defines the fastest rendering hint.
    +	 */
    +	RENDERING_HINT_FASTEST: 'fastest',
    +
    +	/**
    +	 * Variable: DIALECT_SVG
    +	 * 
    +	 * Defines the SVG display dialect name.
    +	 */
    +	DIALECT_SVG: 'svg',
    +
    +	/**
    +	 * Variable: DIALECT_VML
    +	 * 
    +	 * Defines the VML display dialect name.
    +	 */
    +	DIALECT_VML: 'vml',
    +
    +	/**
    +	 * Variable: DIALECT_MIXEDHTML
    +	 * 
    +	 * Defines the mixed HTML display dialect name.
    +	 */
    +	DIALECT_MIXEDHTML: 'mixedHtml',
    +
    +	/**
    +	 * Variable: DIALECT_PREFERHTML
    +	 * 
    +	 * Defines the preferred HTML display dialect name.
    +	 */
    +	DIALECT_PREFERHTML: 'preferHtml',
    +
    +	/**
    +	 * Variable: DIALECT_STRICTHTML
    +	 * 
    +	 * Defines the strict HTML display dialect.
    +	 */
    +	DIALECT_STRICTHTML: 'strictHtml',
    +
    +	/**
    +	 * Variable: NS_SVG
    +	 * 
    +	 * Defines the SVG namespace.
    +	 */
    +	NS_SVG: 'http://www.w3.org/2000/svg',
    +
    +	/**
    +	 * Variable: NS_XHTML
    +	 * 
    +	 * Defines the XHTML namespace.
    +	 */
    +	NS_XHTML: 'http://www.w3.org/1999/xhtml',
    +
    +	/**
    +	 * Variable: NS_XLINK
    +	 * 
    +	 * Defines the XLink namespace.
    +	 */
    +	NS_XLINK: 'http://www.w3.org/1999/xlink',
    +
    +	/**
    +	 * Variable: SHADOWCOLOR
    +	 * 
    +	 * Defines the color to be used to draw shadows in shapes and windows.
    +	 * Default is gray.
    +	 */
    +	SHADOWCOLOR: 'gray',
    +
    +	/**
    +	 * Variable: SHADOW_OFFSET_X
    +	 * 
    +	 * Specifies the x-offset of the shadow. Default is 2.
    +	 */
    +	SHADOW_OFFSET_X: 2,
    +
    +	/**
    +	 * Variable: SHADOW_OFFSET_Y
    +	 * 
    +	 * Specifies the y-offset of the shadow. Default is 3.
    +	 */
    +	SHADOW_OFFSET_Y: 3,
    +	
    +	/**
    +	 * Variable: SHADOW_OPACITY
    +	 * 
    +	 * Defines the opacity for shadows. Default is 1.
    +	 */
    +	SHADOW_OPACITY: 1,
    + 
    +	/**
    +	 * Variable: NODETYPE_ELEMENT
    +	 * 
    +	 * DOM node of type ELEMENT.
    +	 */
    +	NODETYPE_ELEMENT: 1,
    +
    +	/**
    +	 * Variable: NODETYPE_ATTRIBUTE
    +	 * 
    +	 * DOM node of type ATTRIBUTE.
    +	 */
    +	NODETYPE_ATTRIBUTE: 2,
    +
    +	/**
    +	 * Variable: NODETYPE_TEXT
    +	 * 
    +	 * DOM node of type TEXT.
    +	 */
    +	NODETYPE_TEXT: 3,
    +
    +	/**
    +	 * Variable: NODETYPE_CDATA
    +	 * 
    +	 * DOM node of type CDATA.
    +	 */
    +	NODETYPE_CDATA: 4,
    +	
    +	/**
    +	 * Variable: NODETYPE_ENTITY_REFERENCE
    +	 * 
    +	 * DOM node of type ENTITY_REFERENCE.
    +	 */
    +	NODETYPE_ENTITY_REFERENCE: 5,
    +
    +	/**
    +	 * Variable: NODETYPE_ENTITY
    +	 * 
    +	 * DOM node of type ENTITY.
    +	 */
    +	NODETYPE_ENTITY: 6,
    +
    +	/**
    +	 * Variable: NODETYPE_PROCESSING_INSTRUCTION
    +	 * 
    +	 * DOM node of type PROCESSING_INSTRUCTION.
    +	 */
    +	NODETYPE_PROCESSING_INSTRUCTION: 7,
    +
    +	/**
    +	 * Variable: NODETYPE_COMMENT
    +	 * 
    +	 * DOM node of type COMMENT.
    +	 */
    +	NODETYPE_COMMENT: 8,
    +		
    +	/**
    +	 * Variable: NODETYPE_DOCUMENT
    +	 * 
    +	 * DOM node of type DOCUMENT.
    +	 */
    +	NODETYPE_DOCUMENT: 9,
    +
    +	/**
    +	 * Variable: NODETYPE_DOCUMENTTYPE
    +	 * 
    +	 * DOM node of type DOCUMENTTYPE.
    +	 */
    +	NODETYPE_DOCUMENTTYPE: 10,
    +
    +	/**
    +	 * Variable: NODETYPE_DOCUMENT_FRAGMENT
    +	 * 
    +	 * DOM node of type DOCUMENT_FRAGMENT.
    +	 */
    +	NODETYPE_DOCUMENT_FRAGMENT: 11,
    +
    +	/**
    +	 * Variable: NODETYPE_NOTATION
    +	 * 
    +	 * DOM node of type NOTATION.
    +	 */
    +	NODETYPE_NOTATION: 12,
    +	
    +	/**
    +	 * Variable: TOOLTIP_VERTICAL_OFFSET
    +	 * 
    +	 * Defines the vertical offset for the tooltip.
    +	 * Default is 16.
    +	 */
    +	TOOLTIP_VERTICAL_OFFSET: 16,
    +
    +	/**
    +	 * Variable: DEFAULT_VALID_COLOR
    +	 * 
    +	 * Specifies the default valid colorr. Default is #0000FF.
    +	 */
    +	DEFAULT_VALID_COLOR: '#00FF00',
    +
    +	/**
    +	 * Variable: DEFAULT_INVALID_COLOR
    +	 * 
    +	 * Specifies the default invalid color. Default is #FF0000.
    +	 */
    +	DEFAULT_INVALID_COLOR: '#FF0000',
    +
    +	/**
    +	 * Variable: HIGHLIGHT_STROKEWIDTH
    +	 * 
    +	 * Defines the strokewidth to be used for the highlights.
    +	 * Default is 3.
    +	 */
    +	HIGHLIGHT_STROKEWIDTH: 3,
    +	
    +	/**
    +	 * Variable: CURSOR_MOVABLE_VERTEX
    +	 * 
    +	 * Defines the cursor for a movable vertex. Default is 'move'.
    +	 */
    +	CURSOR_MOVABLE_VERTEX: 'move',
    +	
    +	/**
    +	 * Variable: CURSOR_MOVABLE_EDGE
    +	 * 
    +	 * Defines the cursor for a movable edge. Default is 'move'.
    +	 */
    +	CURSOR_MOVABLE_EDGE: 'move',
    +	
    +	/**
    +	 * Variable: CURSOR_LABEL_HANDLE
    +	 * 
    +	 * Defines the cursor for a movable label. Default is 'default'.
    +	 */
    +	CURSOR_LABEL_HANDLE: 'default',
    +	
    +	/**
    +	 * Variable: CURSOR_BEND_HANDLE
    +	 * 
    +	 * Defines the cursor for a movable bend. Default is 'pointer'.
    +	 */
    +	CURSOR_BEND_HANDLE: 'pointer',
    +	
    +	/**
    +	 * Variable: CURSOR_CONNECT
    +	 * 
    +	 * Defines the cursor for a connectable state. Default is 'pointer'.
    +	 */
    +	CURSOR_CONNECT: 'pointer',
    +
    +	/**
    +	 * Variable: HIGHLIGHT_COLOR
    +	 * 
    +	 * Defines the color to be used for the cell highlighting.
    +	 * Use 'none' for no color. Default is #00FF00.
    +	 */
    +	HIGHLIGHT_COLOR: '#00FF00',
    +
    +	/**
    +	 * Variable: TARGET_HIGHLIGHT_COLOR
    +	 * 
    +	 * Defines the color to be used for highlighting a target cell for a new
    +	 * or changed connection. Note that this may be either a source or
    +	 * target terminal in the graph. Use 'none' for no color.
    +	 * Default is #0000FF.
    +	 */
    +	CONNECT_TARGET_COLOR: '#0000FF',
    +
    +	/**
    +	 * Variable: INVALID_CONNECT_TARGET_COLOR
    +	 * 
    +	 * Defines the color to be used for highlighting a invalid target cells
    +	 * for a new or changed connections. Note that this may be either a source
    +	 * or target terminal in the graph. Use 'none' for no color. Default is
    +	 * #FF0000.
    +	 */
    +	INVALID_CONNECT_TARGET_COLOR: '#FF0000',
    +
    +	/**
    +	 * Variable: DROP_TARGET_COLOR
    +	 * 
    +	 * Defines the color to be used for the highlighting target parent cells
    +	 * (for drag and drop). Use 'none' for no color. Default is #0000FF.
    +	 */
    +	DROP_TARGET_COLOR: '#0000FF',
    +
    +	/**
    +	 * Variable: VALID_COLOR
    +	 * 
    +	 * Defines the color to be used for the coloring valid connection
    +	 * previews. Use 'none' for no color. Default is #FF0000.
    +	 */
    +	VALID_COLOR: '#00FF00',
    +
    +	/**
    +	 * Variable: INVALID_COLOR
    +	 * 
    +	 * Defines the color to be used for the coloring invalid connection
    +	 * previews. Use 'none' for no color. Default is #FF0000.
    +	 */
    +	INVALID_COLOR: '#FF0000',
    +
    +	/**
    +	 * Variable: EDGE_SELECTION_COLOR
    +	 * 
    +	 * Defines the color to be used for the selection border of edges. Use
    +	 * 'none' for no color. Default is #00FF00.
    +	 */
    +	EDGE_SELECTION_COLOR: '#00FF00',
    +
    +	/**
    +	 * Variable: VERTEX_SELECTION_COLOR
    +	 * 
    +	 * Defines the color to be used for the selection border of vertices. Use
    +	 * 'none' for no color. Default is #00FF00.
    +	 */
    +	VERTEX_SELECTION_COLOR: '#00FF00',
    +
    +	/**
    +	 * Variable: VERTEX_SELECTION_STROKEWIDTH
    +	 * 
    +	 * Defines the strokewidth to be used for vertex selections.
    +	 * Default is 1.
    +	 */
    +	VERTEX_SELECTION_STROKEWIDTH: 1,
    +
    +	/**
    +	 * Variable: EDGE_SELECTION_STROKEWIDTH
    +	 * 
    +	 * Defines the strokewidth to be used for edge selections.
    +	 * Default is 1.
    +	 */
    +	EDGE_SELECTION_STROKEWIDTH: 1,
    +
    +	/**
    +	 * Variable: SELECTION_DASHED
    +	 * 
    +	 * Defines the dashed state to be used for the vertex selection
    +	 * border. Default is true.
    +	 */
    +	VERTEX_SELECTION_DASHED: true,
    +
    +	/**
    +	 * Variable: SELECTION_DASHED
    +	 * 
    +	 * Defines the dashed state to be used for the edge selection
    +	 * border. Default is true.
    +	 */
    +	EDGE_SELECTION_DASHED: true,
    +
    +	/**
    +	 * Variable: GUIDE_COLOR
    +	 * 
    +	 * Defines the color to be used for the guidelines in mxGraphHandler.
    +	 * Default is #FF0000.
    +	 */
    +	GUIDE_COLOR: '#FF0000',
    +
    +	/**
    +	 * Variable: GUIDE_STROKEWIDTH
    +	 * 
    +	 * Defines the strokewidth to be used for the guidelines in mxGraphHandler.
    +	 * Default is 1.
    +	 */
    +	GUIDE_STROKEWIDTH: 1,
    +
    +	/**
    +	 * Variable: OUTLINE_COLOR
    +	 * 
    +	 * Defines the color to be used for the outline rectangle
    +	 * border.  Use 'none' for no color. Default is #0099FF.
    +	 */
    +	OUTLINE_COLOR: '#0099FF',
    +
    +	/**
    +	 * Variable: OUTLINE_STROKEWIDTH
    +	 * 
    +	 * Defines the strokewidth to be used for the outline rectangle
    +	 * stroke width. Default is 3.
    +	 */
    +	OUTLINE_STROKEWIDTH: (mxClient.IS_IE) ? 2 : 3,
    +
    +	/**
    +	 * Variable: HANDLE_SIZE
    +	 * 
    +	 * Defines the default size for handles. Default is 7.
    +	 */
    +	HANDLE_SIZE: 7,
    +
    +	/**
    +	 * Variable: LABEL_HANDLE_SIZE
    +	 * 
    +	 * Defines the default size for label handles. Default is 4.
    +	 */
    +	LABEL_HANDLE_SIZE: 4,
    +
    +	/**
    +	 * Variable: HANDLE_FILLCOLOR
    +	 * 
    +	 * Defines the color to be used for the handle fill color. Use 'none' for
    +	 * no color. Default is #00FF00 (green).
    +	 */
    +	HANDLE_FILLCOLOR: '#00FF00',
    +
    +	/**
    +	 * Variable: HANDLE_STROKECOLOR
    +	 * 
    +	 * Defines the color to be used for the handle stroke color. Use 'none' for
    +	 * no color. Default is black.
    +	 */
    +	HANDLE_STROKECOLOR: 'black',
    +
    +	/**
    +	 * Variable: LABEL_HANDLE_FILLCOLOR
    +	 * 
    +	 * Defines the color to be used for the label handle fill color. Use 'none'
    +	 * for no color. Default is yellow.
    +	 */
    +	LABEL_HANDLE_FILLCOLOR: 'yellow',
    +
    +	/**
    +	 * Variable: CONNECT_HANDLE_FILLCOLOR
    +	 * 
    +	 * Defines the color to be used for the connect handle fill color. Use
    +	 * 'none' for no color. Default is #0000FF (blue).
    +	 */
    +	CONNECT_HANDLE_FILLCOLOR: '#0000FF',
    +
    +	/**
    +	 * Variable: LOCKED_HANDLE_FILLCOLOR
    +	 * 
    +	 * Defines the color to be used for the locked handle fill color. Use
    +	 * 'none' for no color. Default is #FF0000 (red).
    +	 */
    +	LOCKED_HANDLE_FILLCOLOR: '#FF0000',
    +
    +	/**
    +	 * Variable: OUTLINE_HANDLE_FILLCOLOR
    +	 * 
    +	 * Defines the color to be used for the outline sizer fill color. Use
    +	 * 'none' for no color. Default is #00FFFF.
    +	 */
    +	OUTLINE_HANDLE_FILLCOLOR: '#00FFFF',
    +
    +	/**
    +	 * Variable: OUTLINE_HANDLE_STROKECOLOR
    +	 * 
    +	 * Defines the color to be used for the outline sizer stroke color. Use
    +	 * 'none' for no color. Default is #0033FF.
    +	 */
    +	OUTLINE_HANDLE_STROKECOLOR: '#0033FF',
    +
    +	/**
    +	 * Variable: DEFAULT_FONTFAMILY
    +	 * 
    +	 * Defines the default family for all fonts in points. Default is
    +	 * Arial,Helvetica.
    +	 */
    +	DEFAULT_FONTFAMILY: 'Arial,Helvetica',
    +
    +	/**
    +	 * Variable: DEFAULT_FONTSIZE
    +	 * 
    +	 * Defines the default size for all fonts in points. Default is 11.
    +	 */
    +	DEFAULT_FONTSIZE: 11,
    +
    +	/**
    +	 * Variable: DEFAULT_STARTSIZE
    +	 * 
    +	 * Defines the default start size for swimlanes. Default is 40.
    +	 */
    +	DEFAULT_STARTSIZE: 40,
    +
    +	/**
    +	 * Variable: DEFAULT_MARKERSIZE
    +	 * 
    +	 * Defines the default size for all markers. Default is 6.
    +	 */
    +	DEFAULT_MARKERSIZE: 6,
    +
    +	/**
    +	 * Variable: DEFAULT_IMAGESIZE
    +	 * 
    +	 * Defines the default width and height for images used in the
    +	 * label shape. Default is 24.
    +	 */
    +	DEFAULT_IMAGESIZE: 24,
    +
    +	/**
    +	 * Variable: ENTITY_SEGMENT
    +	 * 
    +	 * Defines the length of the horizontal segment of an Entity Relation.
    +	 * This can be overridden using <mxConstants.STYLE_SEGMENT> style.
    +	 * Default is 30.
    +	 */
    +	ENTITY_SEGMENT: 30,
    +
    +	/**
    +	 * Variable: RECTANGLE_ROUNDING_FACTOR
    +	 * 
    +	 * Defines the rounding factor for rounded rectangles in percent between
    +	 * 0 and 1. Values should be smaller than 0.5. Default is 0.15.
    +	 */
    +	RECTANGLE_ROUNDING_FACTOR: 0.15,
    +
    +	/**
    +	 * Variable: LINE_ARCSIZE
    +	 * 
    +	 * Defines the size of the arcs for rounded edges. Default is 20.
    +	 */
    +	LINE_ARCSIZE: 20,
    +
    +	/**
    +	 * Variable: ARROW_SPACING
    +	 * 
    +	 * Defines the spacing between the arrow shape and its terminals. Default
    +	 * is 10.
    +	 */
    +	ARROW_SPACING: 10,
    +
    +	/**
    +	 * Variable: ARROW_WIDTH
    +	 * 
    +	 * Defines the width of the arrow shape. Default is 30.
    +	 */
    +	ARROW_WIDTH: 30,
    +
    +	/**
    +	 * Variable: ARROW_SIZE
    +	 * 
    +	 * Defines the size of the arrowhead in the arrow shape. Default is 30.
    +	 */
    +	ARROW_SIZE: 30,
    +
    +	/**
    +	 * Variable: PAGE_FORMAT_A4_PORTRAIT
    +	 * 
    +	 * Defines the rectangle for the A4 portrait page format. The dimensions
    +	 * of this page format are 826x1169 pixels.
    +	 */
    +	PAGE_FORMAT_A4_PORTRAIT: new mxRectangle(0, 0, 826, 1169),
    +
    +	/**
    +	 * Variable: PAGE_FORMAT_A4_PORTRAIT
    +	 * 
    +	 * Defines the rectangle for the A4 portrait page format. The dimensions
    +	 * of this page format are 826x1169 pixels.
    +	 */
    +	PAGE_FORMAT_A4_LANDSCAPE: new mxRectangle(0, 0, 1169, 826),
    +
    +	/**
    +	 * Variable: PAGE_FORMAT_LETTER_PORTRAIT
    +	 * 
    +	 * Defines the rectangle for the Letter portrait page format. The
    +	 * dimensions of this page format are 850x1100 pixels.
    +	 */
    +	PAGE_FORMAT_LETTER_PORTRAIT: new mxRectangle(0, 0, 850, 1100),
    +
    +	/**
    +	 * Variable: PAGE_FORMAT_LETTER_PORTRAIT
    +	 * 
    +	 * Defines the rectangle for the Letter portrait page format. The dimensions
    +	 * of this page format are 850x1100 pixels.
    +	 */
    +	PAGE_FORMAT_LETTER_LANDSCAPE: new mxRectangle(0, 0, 1100, 850),
    +
    +	/**
    +	 * Variable: NONE
    +	 * 
    +	 * Defines the value for none. Default is "none".
    +	 */
    +	NONE: 'none',
    +
    +	/**
    +	 * Variable: STYLE_PERIMETER
    +	 * 
    +	 * Defines the key for the perimeter style. This is a function that defines
    +	 * the perimeter around a particular shape. Possible values are the
    +	 * functions defined in <mxPerimeter>. Alternatively, the constants in this
    +	 * class that start with <code>PERIMETER_</code> may be used to access
    +	 * perimeter styles in <mxStyleRegistry>.
    +	 */
    +	STYLE_PERIMETER: 'perimeter',
    +	
    +	/**
    +	 * Variable: STYLE_SOURCE_PORT
    +	 * 
    +	 * Defines the ID of the cell that should be used for computing the
    +	 * perimeter point of the source for an edge. This allows for graphically
    +	 * connecting to a cell while keeping the actual terminal of the edge.
    +	 */
    +	STYLE_SOURCE_PORT: 'sourcePort',
    +	
    +	/**
    +	 * Variable: STYLE_TARGET_PORT
    +	 * 
    +	 * Defines the ID of the cell that should be used for computing the
    +	 * perimeter point of the target for an edge. This allows for graphically
    +	 * connecting to a cell while keeping the actual terminal of the edge.
    +	 */
    +	STYLE_TARGET_PORT: 'targetPort',
    +
    +	/**
    +	 * Variable: STYLE_PORT_CONSTRAINT
    +	 * 
    +	 * Defines the direction(s) that edges are allowed to connect to cells in.
    +	 * Possible values are <code>DIRECTION_NORTH, DIRECTION_SOUTH, 
    +	 * DIRECTION_EAST</code> and <code>DIRECTION_WEST</code>.
    +	 */
    +	STYLE_PORT_CONSTRAINT: 'portConstraint',
    +
    +	/**
    +	 * Variable: STYLE_OPACITY
    +	 * 
    +	 * Defines the key for the opacity style. The type of the value is 
    +	 * numeric and the possible range is 0-100.
    +	 */
    +	STYLE_OPACITY: 'opacity',
    +
    +	/**
    +	 * Variable: STYLE_TEXT_OPACITY
    +	 * 
    +	 * Defines the key for the text opacity style. The type of the value is 
    +	 * numeric and the possible range is 0-100.
    +	 */
    +	STYLE_TEXT_OPACITY: 'textOpacity',
    +
    +	/**
    +	 * Variable: STYLE_OVERFLOW
    +	 * 
    +	 * Defines the key for the overflow style. Possible values are 'visible',
    +	 * 'hidden' and 'fill'. The default value is 'visible'. This value
    +	 * specifies how overlapping vertex labels are handled. A value of
    +	 * 'visible' will show the complete label. A value of 'hidden' will clip
    +	 * the label so that it does not overlap the vertex bounds. A value of
    +	 * 'fill' will use the vertex bounds for the label. See
    +	 * <mxGraph.isLabelClipped>.
    +	 */
    +	STYLE_OVERFLOW: 'overflow',
    +
    +	/**
    +	 * Variable: STYLE_ORTHOGONAL
    +	 * 
    +	 * Defines if the connection points on either end of the edge should be
    +	 * computed so that the edge is vertical or horizontal if possible and
    +	 * if the point is not at a fixed location. Default is false. This is
    +	 * used in <mxGraph.isOrthogonal>, which also returns true if the edgeStyle
    +	 * of the edge is an elbow or entity.
    +	 */
    +	STYLE_ORTHOGONAL: 'orthogonal',
    +
    +	/**
    +	 * Variable: STYLE_EXIT_X
    +	 * 
    +	 * Defines the key for the horizontal relative coordinate connection point
    +	 * of an edge with its source terminal.
    +	 */
    +	STYLE_EXIT_X: 'exitX',
    +
    +	/**
    +	 * Variable: STYLE_EXIT_Y
    +	 * 
    +	 * Defines the key for the vertical relative coordinate connection point
    +	 * of an edge with its source terminal.
    +	 */
    +	STYLE_EXIT_Y: 'exitY',
    +
    +	/**
    +	 * Variable: STYLE_EXIT_PERIMETER
    +	 * 
    +	 * Defines if the perimeter should be used to find the exact entry point
    +	 * along the perimeter of the source. Possible values are 0 (false) and
    +	 * 1 (true). Default is 1 (true).
    +	 */
    +	STYLE_EXIT_PERIMETER: 'exitPerimeter',
    +
    +	/**
    +	 * Variable: STYLE_ENTRY_X
    +	 * 
    +	 * Defines the key for the horizontal relative coordinate connection point
    +	 * of an edge with its target terminal.
    +	 */
    +	STYLE_ENTRY_X: 'entryX',
    +
    +	/**
    +	 * Variable: STYLE_ENTRY_Y
    +	 * 
    +	 * Defines the key for the vertical relative coordinate connection point
    +	 * of an edge with its target terminal.
    +	 */
    +	STYLE_ENTRY_Y: 'entryY',
    +
    +	/**
    +	 * Variable: STYLE_ENTRY_PERIMETER
    +	 * 
    +	 * Defines if the perimeter should be used to find the exact entry point
    +	 * along the perimeter of the target. Possible values are 0 (false) and
    +	 * 1 (true). Default is 1 (true).
    +	 */
    +	STYLE_ENTRY_PERIMETER: 'entryPerimeter',
    +
    +	/**
    +	 * Variable: STYLE_WHITE_SPACE
    +	 * 
    +	 * Defines the key for the white-space style. Possible values are 'nowrap'
    +	 * and 'wrap'. The default value is 'nowrap'. This value specifies how
    +	 * white-space inside a HTML vertex label should be handled. A value of
    +	 * 'nowrap' means the text will never wrap to the next line until a
    +	 * linefeed is encountered. A value of 'wrap' means text will wrap when
    +	 * necessary. This style is only used for HTML labels.
    +	 * See <mxGraph.isWrapping>.
    +	 */
    +	STYLE_WHITE_SPACE: 'whiteSpace',
    +
    +	/**
    +	 * Variable: STYLE_ROTATION
    +	 * 
    +	 * Defines the key for the rotation style. The type of the value is 
    +	 * numeric and the possible range is 0-360.
    +	 */
    +	STYLE_ROTATION: 'rotation',
    +
    +	/**
    +	 * Variable: STYLE_FILLCOLOR
    +	 * 
    +	 * Defines the key for the fill color. Possible values are all HTML color
    +	 * names or HEX codes, as well as special keywords such as 'swimlane,
    +	 * 'inherit' or 'indicated' to use the color code of a related cell or the
    +	 * indicator shape.
    +	 */
    +	STYLE_FILLCOLOR: 'fillColor',
    +
    +	/**
    +	 * Variable: STYLE_GRADIENTCOLOR
    +	 * 
    +	 * Defines the key for the gradient color. Possible values are all HTML color
    +	 * names or HEX codes, as well as special keywords such as 'swimlane,
    +	 * 'inherit' or 'indicated' to use the color code of a related cell or the
    +	 * indicator shape. This is ignored if no fill color is defined.
    +	 */
    +	STYLE_GRADIENTCOLOR: 'gradientColor',
    +
    +	/**
    +	 * Variable: STYLE_GRADIENT_DIRECTION
    +	 * 
    +	 * Defines the key for the gradient direction. Possible values are
    +	 * <DIRECTION_EAST>, <DIRECTION_WEST>, <DIRECTION_NORTH> and
    +	 * <DIRECTION_SOUTH>. Default is <DIRECTION_SOUTH>. Generally, and by
    +	 * default in mxGraph, gradient painting is done from the value of
    +	 * <STYLE_FILLCOLOR> to the value of <STYLE_GRADIENTCOLOR>. Taking the
    +	 * example of <DIRECTION_NORTH>, this means <STYLE_FILLCOLOR> color at the 
    +	 * bottom of paint pattern and <STYLE_GRADIENTCOLOR> at top, with a
    +	 * gradient in-between.
    +	 */
    +	STYLE_GRADIENT_DIRECTION: 'gradientDirection',
    +
    +	/**
    +	 * Variable: STYLE_STROKECOLOR
    +	 * 
    +	 * Defines the key for the strokeColor style. Possible values are all HTML
    +	 * color names or HEX codes, as well as special keywords such as 'swimlane,
    +	 * 'inherit', 'indicated' to use the color code of a related cell or the
    +	 * indicator shape or 'none' for no color.
    +	 */
    +	STYLE_STROKECOLOR: 'strokeColor',
    +
    +	/**
    +	 * Variable: STYLE_SEPARATORCOLOR
    +	 * 
    +	 * Defines the key for the separatorColor style. Possible values are all
    +	 * HTML color names or HEX codes. This style is only used for
    +	 * <SHAPE_SWIMLANE> shapes.
    +	 */
    +	STYLE_SEPARATORCOLOR: 'separatorColor',
    +
    +	/**
    +	 * Variable: STYLE_STROKEWIDTH
    +	 * 
    +	 * Defines the key for the strokeWidth style. The type of the value is 
    +	 * numeric and the possible range is any non-negative value larger or equal
    +	 * to 1. The value defines the stroke width in pixels. Note: To hide a
    +	 * stroke use strokeColor none.
    +	 */
    +	STYLE_STROKEWIDTH: 'strokeWidth',
    +
    +	/**
    +	 * Variable: STYLE_ALIGN
    +	 * 
    +	 * Defines the key for the align style. Possible values are <ALIGN_LEFT>,
    +	 * <ALIGN_CENTER> and <ALIGN_RIGHT>. This value defines how the lines of
    +	 * the label are horizontally aligned. <ALIGN_LEFT> mean label text lines
    +	 * are aligned to left of the label bounds, <ALIGN_RIGHT> to the right of
    +	 * the label bounds and <ALIGN_CENTER> means the center of the text lines
    +	 * are aligned in the center of the label bounds. Note this value doesn't
    +	 * affect the positioning of the overall label bounds relative to the
    +	 * vertex, to move the label bounds horizontally, use
    +	 * <STYLE_LABEL_POSITION>.
    +	 */
    +	STYLE_ALIGN: 'align',
    +
    +	/**
    +	 * Variable: STYLE_VERTICAL_ALIGN
    +	 * 
    +	 * Defines the key for the verticalAlign style. Possible values are
    +	 * <ALIGN_TOP>, <ALIGN_MIDDLE> and <ALIGN_BOTTOM>. This value defines how
    +	 * the lines of the label are vertically aligned. <ALIGN_TOP> means the
    +	 * topmost label text line is aligned against the top of the label bounds,
    +	 * <ALIGN_BOTTOM> means the bottom-most label text line is aligned against
    +	 * the bottom of the label bounds and <ALIGN_MIDDLE> means there is equal
    +	 * spacing between the topmost text label line and the top of the label
    +	 * bounds and the bottom-most text label line and the bottom of the label
    +	 * bounds. Note this value doesn't affect the positioning of the overall
    +	 * label bounds relative to the vertex, to move the label bounds
    +	 * vertically, use <STYLE_VERTICAL_LABEL_POSITION>.
    +	 */
    +	STYLE_VERTICAL_ALIGN: 'verticalAlign',
    +
    +	/**
    +	 * Variable: STYLE_LABEL_POSITION
    +	 * 
    +	 * Defines the key for the horizontal label position of vertices. Possible
    +	 * values are <ALIGN_LEFT>, <ALIGN_CENTER> and <ALIGN_RIGHT>. Default is
    +	 * <ALIGN_CENTER>. The label align defines the position of the label
    +	 * relative to the cell. <ALIGN_LEFT> means the entire label bounds is
    +	 * placed completely just to the left of the vertex, <ALIGN_RIGHT> means
    +	 * adjust to the right and <ALIGN_CENTER> means the label bounds are
    +	 * vertically aligned with the bounds of the vertex. Note this value
    +	 * doesn't affect the positioning of label within the label bounds, to move
    +	 * the label horizontally within the label bounds, use <STYLE_ALIGN>.
    +	 */
    +	STYLE_LABEL_POSITION: 'labelPosition',
    +
    +	/**
    +	 * Variable: STYLE_VERTICAL_LABEL_POSITION
    +	 * 
    +	 * Defines the key for the vertical label position of vertices. Possible
    +	 * values are <ALIGN_TOP>, <ALIGN_BOTTOM> and <ALIGN_MIDDLE>. Default is
    +	 * <ALIGN_MIDDLE>. The label align defines the position of the label
    +	 * relative to the cell. <ALIGN_TOP> means the entire label bounds is
    +	 * placed completely just on the top of the vertex, <ALIGN_BOTTOM> means
    +	 * adjust on the bottom and <ALIGN_MIDDLE> means the label bounds are
    +	 * horizontally aligned with the bounds of the vertex. Note this value
    +	 * doesn't affect the positioning of label within the label bounds, to move
    +	 * the label vertically within the label bounds, use
    +	 * <STYLE_VERTICAL_ALIGN>.
    +	 */
    +	STYLE_VERTICAL_LABEL_POSITION: 'verticalLabelPosition',
    +	
    +	/**
    +	 * Variable: STYLE_IMAGE_ASPECT
    +	 * 
    +	 * Defines the key for the image aspect style. Possible values are 0 (do
    +	 * not preserve aspect) or 1 (keep aspect). This is only used in
    +	 * <mxImageShape>. Default is 1.
    +	 */
    +	STYLE_IMAGE_ASPECT: 'imageAspect',
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_ALIGN
    +	 * 
    +	 * Defines the key for the align style. Possible values are <ALIGN_LEFT>,
    +	 * <ALIGN_CENTER> and <ALIGN_RIGHT>. The value defines how any image in the
    +	 * vertex label is aligned horizontally within the label bounds of a
    +	 * <SHAPE_LABEL> shape.
    +	 */
    +	STYLE_IMAGE_ALIGN: 'imageAlign',
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_VERTICAL_ALIGN
    +	 * 
    +	 * Defines the key for the verticalAlign style. Possible values are
    +	 * <ALIGN_TOP>, <ALIGN_MIDDLE> and <ALIGN_BOTTOM>. The value defines how
    +	 * any image in the vertex label is aligned vertically within the label
    +	 * bounds of a <SHAPE_LABEL> shape.
    +	 */
    +	STYLE_IMAGE_VERTICAL_ALIGN: 'imageVerticalAlign',
    +
    +	/**
    +	 * Variable: STYLE_GLASS
    +	 * 
    +	 * Defines the key for the glass style. Possible values are 0 (disabled) and
    +	 * 1(enabled). The default value is 0. This is used in <mxLabel>.
    +	 */
    +	STYLE_GLASS: 'glass',
    +
    +	/**
    +	 * Variable: STYLE_IMAGE
    +	 * 
    +	 * Defines the key for the image style. Possible values are any image URL,
    +	 * the type of the value is String. This is the path to the image to image
    +	 * that is to be displayed within the label of a vertex.
    +	 */
    +	STYLE_IMAGE: 'image',
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_WIDTH
    +	 * 
    +	 * Defines the key for the imageWidth style. The type of this value is
    +	 * int, the value is the image width in pixels and must be greater than 0.
    +	 */
    +	STYLE_IMAGE_WIDTH: 'imageWidth',
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_HEIGHT
    +	 * 
    +	 * Defines the key for the imageHeight style. The type of this value is
    +	 * int, the value is the image height in pixels and must be greater than 0.
    +	 */
    +	STYLE_IMAGE_HEIGHT: 'imageHeight',
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_BACKGROUND
    +	 * 
    +	 * Defines the key for the image background color. This style is only used
    +	 * in <mxImageShape>. Possible values are all HTML color names or HEX
    +	 * codes.
    +	 */
    +	STYLE_IMAGE_BACKGROUND: 'imageBackground',
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_BORDER
    +	 * 
    +	 * Defines the key for the image border color. This style is only used in
    +	 * <mxImageShape>. Possible values are all HTML color names or HEX codes.
    +	 */
    +	STYLE_IMAGE_BORDER: 'imageBorder',
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_FLIPH
    +	 * 
    +	 * Defines the key for the horizontal image flip. This style is only used
    +	 * in <mxImageShape>. Possible values are 0 and 1. Default is 0.
    +	 */
    +	STYLE_IMAGE_FLIPH: 'imageFlipH',
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_FLIPV
    +	 * 
    +	 * Defines the key for the vertical image flip. This style is only used
    +	 * in <mxImageShape>. Possible values are 0 and 1. Default is 0.
    +	 */
    +	STYLE_IMAGE_FLIPV: 'imageFlipV',
    +
    +	/**
    +	 * Variable: STYLE_STENCIL_FLIPH
    +	 * 
    +	 * Defines the key for the horizontal stencil flip. This style is only used
    +	 * for <mxStencilShape>. Possible values are 0 and 1. Default is 0.
    +	 */
    +	STYLE_STENCIL_FLIPH: 'stencilFlipH',
    +
    +	/**
    +	 * Variable: STYLE_STENCIL_FLIPV
    +	 * 
    +	 * Defines the key for the vertical stencil flip. This style is only used
    +	 * for <mxStencilShape>. Possible values are 0 and 1. Default is 0.
    +	 */
    +	STYLE_STENCIL_FLIPV: 'stencilFlipV',
    +
    +	/**
    +	 * Variable: STYLE_NOLABEL
    +	 * 
    +	 * Defines the key for the noLabel style. If this is
    +	 * true then no label is visible for a given cell.
    +	 * Possible values are true or false (1 or 0).
    +	 * Default is false.
    +	 */
    +	STYLE_NOLABEL: 'noLabel',
    +
    +	/**
    +	 * Variable: STYLE_NOEDGESTYLE
    +	 * 
    +	 * Defines the key for the noEdgeStyle style. If this is
    +	 * true then no edge style is applied for a given edge.
    +	 * Possible values are true or false (1 or 0).
    +	 * Default is false.
    +	 */
    +	STYLE_NOEDGESTYLE: 'noEdgeStyle',
    +
    +	/**
    +	 * Variable: STYLE_LABEL_BACKGROUNDCOLOR
    +	 * 
    +	 * Defines the key for the label background color. Possible values are all
    +	 * HTML color names or HEX codes.
    +	 */
    +	STYLE_LABEL_BACKGROUNDCOLOR: 'labelBackgroundColor',
    +
    +	/**
    +	 * Variable: STYLE_LABEL_BORDERCOLOR
    +	 * 
    +	 * Defines the key for the label border color. Possible values are all
    +	 * HTML color names or HEX codes.
    +	 */
    +	STYLE_LABEL_BORDERCOLOR: 'labelBorderColor',
    +
    +	/**
    +	 * Variable: STYLE_LABEL_PADDING
    +	 * 
    +	 * Defines the key for the label padding, ie. the space between the label
    +	 * border and the label.
    +	 */
    +	STYLE_LABEL_PADDING: 'labelPadding',
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_SHAPE
    +	 * 
    +	 * Defines the key for the indicator shape used within an <mxLabel>.
    +	 * Possible values are all SHAPE_* constants or the names of any new
    +	 * shapes.
    +	 */
    +	STYLE_INDICATOR_SHAPE: 'indicatorShape',
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_IMAGE
    +	 * 
    +	 * Defines the key for the indicator image used within an <mxLabel>.
    +	 * Possible values are all image URLs.
    +	 */
    +	STYLE_INDICATOR_IMAGE: 'indicatorImage',
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_COLOR
    +	 * 
    +	 * Defines the key for the indicatorColor style. Possible values are all
    +	 * HTML color names or HEX codes, as well as the special 'swimlane' keyword
    +	 * to refer to the color of the parent swimlane if one exists.
    +	 */
    +	STYLE_INDICATOR_COLOR: 'indicatorColor',
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_STROKECOLOR
    +	 * 
    +	 * Defines the key for the indicator stroke color in <mxLabel>.
    +	 * Possible values are all color codes.
    +	 */
    +	STYLE_INDICATOR_STROKECOLOR: 'indicatorStrokeColor',
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_GRADIENTCOLOR
    +	 * 
    +	 * Defines the key for the indicatorGradientColor style. Possible values
    +	 * are all HTML color names or HEX codes. This style is only supported in
    +	 * <SHAPE_LABEL> shapes.
    +	 */
    +	STYLE_INDICATOR_GRADIENTCOLOR: 'indicatorGradientColor',
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_SPACING
    +	 * 
    +	 * The defines the key for the spacing between the label and the
    +	 * indicator in <mxLabel>. Possible values are in pixels.
    +	 */
    +	STYLE_INDICATOR_SPACING: 'indicatorSpacing',
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_WIDTH
    +	 * 
    +	 * Defines the key for the indicator width.
    +	 * Possible values start at 0 (in pixels).
    +	 */
    +	STYLE_INDICATOR_WIDTH: 'indicatorWidth',
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_HEIGHT
    +	 * 
    +	 * Defines the key for the indicator height.
    +	 * Possible values start at 0 (in pixels).
    +	 */
    +	STYLE_INDICATOR_HEIGHT: 'indicatorHeight',
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_DIRECTION
    +	 * 
    +	 * Defines the key for the indicatorDirection style. The direction style is
    +	 * used to specify the direction of certain shapes (eg. <mxTriangle>).
    +	 * Possible values are <DIRECTION_EAST> (default), <DIRECTION_WEST>,
    +	 * <DIRECTION_NORTH> and <DIRECTION_SOUTH>.
    +	 */
    +	STYLE_INDICATOR_DIRECTION: 'indicatorDirection',
    +
    +	/**
    +	 * Variable: STYLE_SHADOW
    +	 * 
    +	 * Defines the key for the shadow style. The type of the value is Boolean.
    +	 */
    +	STYLE_SHADOW: 'shadow',
    +	
    +	/**
    +	 * Variable: STYLE_SEGMENT
    +	 * 
    +	 * Defines the key for the segment style. The type of this value is
    +	 * float and the value represents the size of the horizontal
    +	 * segment of the entity relation style. Default is ENTITY_SEGMENT.
    +	 */
    +	STYLE_SEGMENT: 'segment',
    +	
    +	/**
    +	 * Variable: STYLE_ENDARROW
    +	 *
    +	 * Defines the key for the end arrow marker.
    +	 * Possible values are all constants with an ARROW-prefix.
    +	 * This is only used in <mxConnector>.
    +	 *
    +	 * Example:
    +	 * (code)
    +	 * style[mxConstants.STYLE_ENDARROW] = mxConstants.ARROW_CLASSIC;
    +	 * (end)
    +	 */
    +	STYLE_ENDARROW: 'endArrow',
    +
    +	/**
    +	 * Variable: STYLE_STARTARROW
    +	 * 
    +	 * Defines the key for the start arrow marker.
    +	 * Possible values are all constants with an ARROW-prefix.
    +	 * This is only used in <mxConnector>.
    +	 * See <STYLE_ENDARROW>.
    +	 */
    +	STYLE_STARTARROW: 'startArrow',
    +
    +	/**
    +	 * Variable: STYLE_ENDSIZE
    +	 * 
    +	 * Defines the key for the endSize style. The type of this value is numeric
    +	 * and the value represents the size of the end marker in pixels.
    +	 */
    +	STYLE_ENDSIZE: 'endSize',
    +
    +	/**
    +	 * Variable: STYLE_STARTSIZE
    +	 * 
    +	 * Defines the key for the startSize style. The type of this value is
    +	 * numeric and the value represents the size of the start marker or the
    +	 * size of the swimlane title region depending on the shape it is used for.
    +	 */
    +	STYLE_STARTSIZE: 'startSize',
    +
    +	/**
    +	 * Variable: STYLE_ENDFILL
    +	 * 
    +	 * Defines the key for the endFill style. Use 0 for no fill or 1
    +	 * (default) for fill. (This style is only exported via <mxImageExport>.)
    +	 */
    +	STYLE_ENDFILL: 'endFill',
    +
    +	/**
    +	 * Variable: STYLE_STARTFILL
    +	 * 
    +	 * Defines the key for the startFill style. Use 0 for no fill or 1
    +	 * (default) for fill. (This style is only exported via <mxImageExport>.)
    +	 */
    +	STYLE_STARTFILL: 'startFill',
    +
    +	/**
    +	 * Variable: STYLE_DASHED
    +	 * 
    +	 * Defines the key for the endSize style. The type of this value is numeric
    +	 * and the value represents the size of the end marker in pixels.
    +	 */
    +	STYLE_DASHED: 'dashed',
    +
    +	/**
    +	 * Variable: STYLE_ROUNDED
    +	 * 
    +	 * Defines the key for the rounded style. The type of this value is
    +	 * Boolean. For edges this determines whether or not joins between edges
    +	 * segments are smoothed to a rounded finish. For vertices that have the
    +	 * rectangle shape, this determines whether or not the rectangle is
    +	 * rounded.
    +	 */
    +	STYLE_ROUNDED: 'rounded',
    +
    +	/**
    +	 * Variable: STYLE_ARCSIZE
    +	 * 
    +	 * Defines the rounding factor for a rounded rectangle in percent (without
    +	 * the percent sign). Possible values are between 0 and 100. If this value
    +	 * is not specified then RECTANGLE_ROUNDING_FACTOR * 100 is used.
    +	 * (This style is only exported via <mxImageExport>.)
    +	 */
    +	STYLE_ARCSIZE: 'arcSize',
    +
    +	/**
    +	 * Variable: STYLE_SMOOTH
    +	 * 
    +	 * An experimental style for edges. This style is currently not available
    +	 * in the backends and is implemented differently for VML and SVG. The use
    +	 * of this style is currently only recommended for VML.
    +	 */
    +	STYLE_SMOOTH: 'smooth',
    +
    +	/**
    +	 * Variable: STYLE_SOURCE_PERIMETER_SPACING
    +	 * 
    +	 * Defines the key for the source perimeter spacing. The type of this value
    +	 * is numeric. This is the distance between the source connection point of
    +	 * an edge and the perimeter of the source vertex in pixels. This style
    +	 * only applies to edges.
    +	 */
    +	STYLE_SOURCE_PERIMETER_SPACING: 'sourcePerimeterSpacing',
    +
    +	/**
    +	 * Variable: STYLE_TARGET_PERIMETER_SPACING
    +	 * 
    +	 * Defines the key for the target perimeter spacing. The type of this value
    +	 * is numeric. This is the distance between the target connection point of
    +	 * an edge and the perimeter of the target vertex in pixels. This style
    +	 * only applies to edges.
    +	 */
    +	STYLE_TARGET_PERIMETER_SPACING: 'targetPerimeterSpacing',
    +
    +	/**
    +	 * Variable: STYLE_PERIMETER_SPACING
    +	 * 
    +	 * Defines the key for the perimeter spacing. This is the distance between
    +	 * the connection point and the perimeter in pixels. When used in a vertex
    +	 * style, this applies to all incoming edges to floating ports (edges that
    +	 * terminate on the perimeter of the vertex). When used in an edge style,
    +	 * this spacing applies to the source and target separately, if they
    +	 * terminate in floating ports (on the perimeter of the vertex).
    +	 */
    +	STYLE_PERIMETER_SPACING: 'perimeterSpacing',
    +
    +	/**
    +	 * Variable: STYLE_SPACING
    +	 * 
    +	 * Defines the key for the spacing. The value represents the spacing, in
    +	 * pixels, added to each side of a label in a vertex (style applies to
    +	 * vertices only).
    +	 */
    +	STYLE_SPACING: 'spacing',
    +
    +	/**
    +	 * Variable: STYLE_SPACING_TOP
    +	 * 
    +	 * Defines the key for the spacingTop style. The value represents the
    +	 * spacing, in pixels, added to the top side of a label in a vertex (style
    +	 * applies to vertices only).
    +	 */
    +	STYLE_SPACING_TOP: 'spacingTop',
    +
    +	/**
    +	 * Variable: STYLE_SPACING_LEFT
    +	 * 
    +	 * Defines the key for the spacingLeft style. The value represents the
    +	 * spacing, in pixels, added to the left side of a label in a vertex (style
    +	 * applies to vertices only).
    +	 */
    +	STYLE_SPACING_LEFT: 'spacingLeft',
    +
    +	/**
    +	 * Variable: STYLE_SPACING_BOTTOM
    +	 * 
    +	 * Defines the key for the spacingBottom style The value represents the
    +	 * spacing, in pixels, added to the bottom side of a label in a vertex
    +	 * (style applies to vertices only).
    +	 */
    +	STYLE_SPACING_BOTTOM: 'spacingBottom',
    +
    +	/**
    +	 * Variable: STYLE_SPACING_RIGHT
    +	 * 
    +	 * Defines the key for the spacingRight style The value represents the
    +	 * spacing, in pixels, added to the right side of a label in a vertex (style
    +	 * applies to vertices only).
    +	 */
    +	STYLE_SPACING_RIGHT: 'spacingRight',
    +
    +	/**
    +	 * Variable: STYLE_HORIZONTAL
    +	 * 
    +	 * Defines the key for the horizontal style. Possible values are
    +	 * true or false. This value only applies to vertices. If the <STYLE_SHAPE>
    +	 * is <code>SHAPE_SWIMLANE</code> a value of false indicates that the
    +	 * swimlane should be drawn vertically, true indicates to draw it
    +	 * horizontally. If the shape style does not indicate that this vertex is a
    +	 * swimlane, this value affects only whether the label is drawn
    +	 * horizontally or vertically.
    +	 */
    +	STYLE_HORIZONTAL: 'horizontal',
    +
    +	/**
    +	 * Variable: STYLE_DIRECTION
    +	 * 
    +	 * Defines the key for the direction style. The direction style is used
    +	 * to specify the direction of certain shapes (eg. <mxTriangle>).
    +	 * Possible values are <DIRECTION_EAST> (default), <DIRECTION_WEST>,
    +	 * <DIRECTION_NORTH> and <DIRECTION_SOUTH>.
    +	 */
    +	STYLE_DIRECTION: 'direction',
    +
    +	/**
    +	 * Variable: STYLE_ELBOW
    +	 * 
    +	 * Defines the key for the elbow style. Possible values are
    +	 * <ELBOW_HORIZONTAL> and <ELBOW_VERTICAL>. Default is <ELBOW_HORIZONTAL>.
    +	 * This defines how the three segment orthogonal edge style leaves its
    +	 * terminal vertices. The vertical style leaves the terminal vertices at
    +	 * the top and bottom sides.
    +	 */
    +	STYLE_ELBOW: 'elbow',
    +
    +	/**
    +	 * Variable: STYLE_FONTCOLOR
    +	 * 
    +	 * Defines the key for the fontColor style. Possible values are all HTML
    +	 * color names or HEX codes.
    +	 */
    +	STYLE_FONTCOLOR: 'fontColor',
    +
    +	/**
    +	 * Variable: STYLE_FONTFAMILY
    +	 * 
    +	 * Defines the key for the fontFamily style. Possible values are names such
    +	 * as Arial; Dialog; Verdana; Times New Roman. The value is of type String.
    +	 */
    +	STYLE_FONTFAMILY: 'fontFamily',
    +
    +	/**
    +	 * Variable: STYLE_FONTSIZE
    +	 * 
    +	 * Defines the key for the fontSize style (in points). The type of the value
    +	 * is int.
    +	 */
    +	STYLE_FONTSIZE: 'fontSize',
    +
    +	/**
    +	 * Variable: STYLE_FONTSTYLE
    +	 * 
    +	 * Defines the key for the fontStyle style. Values may be any logical AND
    +	 * (sum) of <FONT_BOLD>, <FONT_ITALIC>, <FONT_UNDERLINE> and <FONT_SHADOW>.
    +	 * The type of the value is int.
    +	 */
    +	STYLE_FONTSTYLE: 'fontStyle',
    +
    +	/**
    +	 * Variable: STYLE_AUTOSIZE
    +	 * 
    +	 * Defines the key for the autosize style. This specifies if a cell should be
    +	 * resized automatically if the value has changed. Possible values are 0 or 1.
    +	 * Default is 0. See <mxGraph.isAutoSizeCell>. This is normally combined with
    +	 * <STYLE_RESIZABLE> to disable manual sizing.
    +	 */
    +	STYLE_AUTOSIZE: 'autosize',
    +
    +	/**
    +	 * Variable: STYLE_FOLDABLE
    +	 * 
    +	 * Defines the key for the foldable style. This specifies if a cell is foldable
    +	 * using a folding icon. Possible values are 0 or 1. Default is 1. See
    +	 * <mxGraph.isCellFoldable>.
    +	 */
    +	STYLE_FOLDABLE: 'foldable',
    +
    +	/**
    +	 * Variable: STYLE_EDITABLE
    +	 * 
    +	 * Defines the key for the editable style. This specifies if the value of
    +	 * a cell can be edited using the in-place editor. Possible values are 0 or
    +	 * 1. Default is 1. See <mxGraph.isCellEditable>.
    +	 */
    +	STYLE_EDITABLE: 'editable',
    +
    +	/**
    +	 * Variable: STYLE_BENDABLE
    +	 * 
    +	 * Defines the key for the bendable style. This specifies if the control
    +	 * points of an edge can be moved. Possible values are 0 or 1. Default is
    +	 * 1. See <mxGraph.isCellBendable>.
    +	 */
    +	STYLE_BENDABLE: 'bendable',
    +
    +	/**
    +	 * Variable: STYLE_MOVABLE
    +	 * 
    +	 * Defines the key for the movable style. This specifies if a cell can
    +	 * be moved. Possible values are 0 or 1. Default is 1. See
    +	 * <mxGraph.isCellMovable>.
    +	 */
    +	STYLE_MOVABLE: 'movable',
    +
    +	/**
    +	 * Variable: STYLE_RESIZABLE
    +	 * 
    +	 * Defines the key for the resizable style. This specifies if a cell can
    +	 * be resized. Possible values are 0 or 1. Default is 1. See
    +	 * <mxGraph.isCellResizable>.
    +	 */
    +	STYLE_RESIZABLE: 'resizable',
    +
    +	/**
    +	 * Variable: STYLE_CLONEABLE
    +	 * 
    +	 * Defines the key for the cloneable style. This specifies if a cell can
    +	 * be cloned. Possible values are 0 or 1. Default is 1. See
    +	 * <mxGraph.isCellCloneable>.
    +	 */
    +	STYLE_CLONEABLE: 'cloneable',
    +
    +	/**
    +	 * Variable: STYLE_DELETABLE
    +	 * 
    +	 * Defines the key for the deletable style. This specifies if a cell can be
    +	 * deleted. Possible values are 0 or 1. Default is 1. See
    +	 * <mxGraph.isCellDeletable>.
    +	 */
    +	STYLE_DELETABLE: 'deletable',
    +
    +	/**
    +	 * Variable: STYLE_SHAPE
    +	 * 
    +	 * Defines the key for the shape. Possible values are all constants
    +	 * with a SHAPE-prefix or any newly defined shape names.
    +	 */
    +	STYLE_SHAPE: 'shape',
    +
    +	/**
    +	 * Variable: STYLE_EDGE
    +	 * 
    +	 * Defines the key for the edge style. Possible values are the functions
    +	 * defined in <mxEdgeStyle>.
    +	 */
    +	STYLE_EDGE: 'edgeStyle',
    +
    +	/**
    +	 * Variable: STYLE_LOOP
    +	 * 
    +	 * Defines the key for the loop style. Possible values are the functions
    +	 * defined in <mxEdgeStyle>.
    +	 */
    +	STYLE_LOOP: 'loopStyle',
    +
    +	/**
    +	 * Variable: STYLE_ROUTING_CENTER_X
    +	 * 
    +	 * Defines the key for the horizontal routing center. Possible values are
    +	 * between -0.5 and 0.5. This is the relative offset from the center used
    +	 * for connecting edges. The type of this value is numeric.
    +	 */
    +	STYLE_ROUTING_CENTER_X: 'routingCenterX',
    +
    +	/**
    +	 * Variable: STYLE_ROUTING_CENTER_Y
    +	 * 
    +	 * Defines the key for the vertical routing center. Possible values are
    +	 * between -0.5 and 0.5. This is the relative offset from the center used
    +	 * for connecting edges. The type of this value is numeric.
    +	 */
    +	STYLE_ROUTING_CENTER_Y: 'routingCenterY',
    +
    +	/**
    +	 * Variable: FONT_BOLD
    +	 * 
    +	 * Constant for bold fonts. Default is 1.
    +	 */
    +	FONT_BOLD: 1,
    +
    +	/**
    +	 * Variable: FONT_ITALIC
    +	 * 
    +	 * Constant for italic fonts. Default is 2.
    +	 */
    +	FONT_ITALIC: 2,
    +
    +	/**
    +	 * Variable: FONT_UNDERLINE
    +	 * 
    +	 * Constant for underlined fonts. Default is 4.
    +	 */
    +	FONT_UNDERLINE: 4,
    +
    +	/**
    +	 * Variable: FONT_SHADOW
    +	 * 
    +	 * Constant for fonts with a shadow. Default is 8.
    +	 */
    +	FONT_SHADOW: 8,
    +
    +	/**
    +	 * Variable: SHAPE_RECTANGLE
    +	 * 
    +	 * Name under which <mxRectangleShape> is registered
    +	 * in <mxCellRenderer>. Default is rectangle.
    +	 */
    +	SHAPE_RECTANGLE: 'rectangle',
    +
    +	/**
    +	 * Variable: SHAPE_ELLIPSE
    +	 * 
    +	 * Name under which <mxEllipse> is registered
    +	 * in <mxCellRenderer>. Default is ellipse.
    +	 */
    +	SHAPE_ELLIPSE: 'ellipse',
    +
    +	/**
    +	 * Variable: SHAPE_DOUBLE_ELLIPSE
    +	 * 
    +	 * Name under which <mxDoubleEllipse> is registered
    +	 * in <mxCellRenderer>. Default is doubleEllipse.
    +	 */
    +	SHAPE_DOUBLE_ELLIPSE: 'doubleEllipse',
    +
    +	/**
    +	 * Variable: SHAPE_RHOMBUS
    +	 * 
    +	 * Name under which <mxRhombus> is registered
    +	 * in <mxCellRenderer>. Default is rhombus.
    +	 */
    +	SHAPE_RHOMBUS: 'rhombus',
    +
    +	/**
    +	 * Variable: SHAPE_LINE
    +	 * 
    +	 * Name under which <mxLine> is registered
    +	 * in <mxCellRenderer>. Default is line.
    +	 */
    +	SHAPE_LINE: 'line',
    +
    +	/**
    +	 * Variable: SHAPE_IMAGE
    +	 * 
    +	 * Name under which <mxImageShape> is registered
    +	 * in <mxCellRenderer>. Default is image.
    +	 */
    +	SHAPE_IMAGE: 'image',
    +	
    +	/**
    +	 * Variable: SHAPE_ARROW
    +	 * 
    +	 * Name under which <mxArrow> is registered
    +	 * in <mxCellRenderer>. Default is arrow.
    +	 */
    +	SHAPE_ARROW: 'arrow',
    +	
    +	/**
    +	 * Variable: SHAPE_LABEL
    +	 * 
    +	 * Name under which <mxLabel> is registered
    +	 * in <mxCellRenderer>. Default is label.
    +	 */
    +	SHAPE_LABEL: 'label',
    +	
    +	/**
    +	 * Variable: SHAPE_CYLINDER
    +	 * 
    +	 * Name under which <mxCylinder> is registered
    +	 * in <mxCellRenderer>. Default is cylinder.
    +	 */
    +	SHAPE_CYLINDER: 'cylinder',
    +	
    +	/**
    +	 * Variable: SHAPE_SWIMLANE
    +	 * 
    +	 * Name under which <mxSwimlane> is registered
    +	 * in <mxCellRenderer>. Default is swimlane.
    +	 */
    +	SHAPE_SWIMLANE: 'swimlane',
    +		
    +	/**
    +	 * Variable: SHAPE_CONNECTOR
    +	 * 
    +	 * Name under which <mxConnector> is registered
    +	 * in <mxCellRenderer>. Default is connector.
    +	 */
    +	SHAPE_CONNECTOR: 'connector',
    +		
    +	/**
    +	 * Variable: SHAPE_ACTOR
    +	 * 
    +	 * Name under which <mxActor> is registered
    +	 * in <mxCellRenderer>. Default is actor.
    +	 */
    +	SHAPE_ACTOR: 'actor',
    +		
    +	/**
    +	 * Variable: SHAPE_CLOUD
    +	 * 
    +	 * Name under which <mxCloud> is registered
    +	 * in <mxCellRenderer>. Default is cloud.
    +	 */
    +	SHAPE_CLOUD: 'cloud',
    +		
    +	/**
    +	 * Variable: SHAPE_TRIANGLE
    +	 * 
    +	 * Name under which <mxTriangle> is registered
    +	 * in <mxCellRenderer>. Default is triangle.
    +	 */
    +	SHAPE_TRIANGLE: 'triangle',
    +		
    +	/**
    +	 * Variable: SHAPE_HEXAGON
    +	 * 
    +	 * Name under which <mxHexagon> is registered
    +	 * in <mxCellRenderer>. Default is hexagon.
    +	 */
    +	SHAPE_HEXAGON: 'hexagon',
    +
    +	/**
    +	 * Variable: ARROW_CLASSIC
    +	 * 
    +	 * Constant for classic arrow markers.
    +	 */
    +	ARROW_CLASSIC: 'classic',
    +
    +	/**
    +	 * Variable: ARROW_BLOCK
    +	 * 
    +	 * Constant for block arrow markers.
    +	 */
    +	ARROW_BLOCK: 'block',
    +
    +	/**
    +	 * Variable: ARROW_OPEN
    +	 * 
    +	 * Constant for open arrow markers.
    +	 */
    +	ARROW_OPEN: 'open',
    +
    +	/**
    +	 * Variable: ARROW_OVAL
    +	 * 
    +	 * Constant for oval arrow markers.
    +	 */
    +	ARROW_OVAL: 'oval',
    +
    +	/**
    +	 * Variable: ARROW_DIAMOND
    +	 * 
    +	 * Constant for diamond arrow markers.
    +	 */
    +	ARROW_DIAMOND: 'diamond',
    +
    +	/**
    +	 * Variable: ARROW_DIAMOND
    +	 * 
    +	 * Constant for diamond arrow markers.
    +	 */
    +	ARROW_DIAMOND_THIN: 'diamondThin',
    +
    +	/**
    +	 * Variable: ALIGN_LEFT
    +	 * 
    +	 * Constant for left horizontal alignment. Default is left.
    +	 */
    +	ALIGN_LEFT: 'left',
    +
    +	/**
    +	 * Variable: ALIGN_CENTER
    +	 * 
    +	 * Constant for center horizontal alignment. Default is center.
    +	 */
    +	ALIGN_CENTER: 'center',
    +
    +	/**
    +	 * Variable: ALIGN_RIGHT
    +	 * 
    +	 * Constant for right horizontal alignment. Default is right.
    +	 */
    +	ALIGN_RIGHT: 'right',
    +
    +	/**
    +	 * Variable: ALIGN_TOP
    +	 * 
    +	 * Constant for top vertical alignment. Default is top.
    +	 */
    +	ALIGN_TOP: 'top',
    +
    +	/**
    +	 * Variable: ALIGN_MIDDLE
    +	 * 
    +	 * Constant for middle vertical alignment. Default is middle.
    +	 */
    +	ALIGN_MIDDLE: 'middle',
    +
    +	/**
    +	 * Variable: ALIGN_BOTTOM
    +	 * 
    +	 * Constant for bottom vertical alignment. Default is bottom.
    +	 */
    +	ALIGN_BOTTOM: 'bottom',
    +
    +	/**
    +	 * Variable: DIRECTION_NORTH
    +	 * 
    +	 * Constant for direction north. Default is north.
    +	 */
    +	DIRECTION_NORTH: 'north',
    +
    +	/**
    +	 * Variable: DIRECTION_SOUTH
    +	 * 
    +	 * Constant for direction south. Default is south.
    +	 */
    +	DIRECTION_SOUTH: 'south',
    +
    +	/**
    +	 * Variable: DIRECTION_EAST
    +	 * 
    +	 * Constant for direction east. Default is east.
    +	 */
    +	DIRECTION_EAST: 'east',
    +
    +	/**
    +	 * Variable: DIRECTION_WEST
    +	 * 
    +	 * Constant for direction west. Default is west.
    +	 */
    +	DIRECTION_WEST: 'west',
    +
    +	/**
    +	 * Variable: DIRECTION_MASK_NONE
    +	 * 
    +	 * Constant for no direction.
    +	 */
    +	DIRECTION_MASK_NONE: 0,
    +
    +	/**
    +	 * Variable: DIRECTION_MASK_WEST
    +	 * 
    +	 * Bitwise mask for west direction.
    +	 */
    +	DIRECTION_MASK_WEST: 1,
    +	
    +	/**
    +	 * Variable: DIRECTION_MASK_NORTH
    +	 * 
    +	 * Bitwise mask for north direction.
    +	 */
    +	DIRECTION_MASK_NORTH: 2,
    +
    +	/**
    +	 * Variable: DIRECTION_MASK_SOUTH
    +	 * 
    +	 * Bitwise mask for south direction.
    +	 */
    +	DIRECTION_MASK_SOUTH: 4,
    +
    +	/**
    +	 * Variable: DIRECTION_MASK_EAST
    +	 * 
    +	 * Bitwise mask for east direction.
    +	 */
    +	DIRECTION_MASK_EAST: 8,
    +	
    +	/**
    +	 * Variable: DIRECTION_MASK_ALL
    +	 * 
    +	 * Bitwise mask for all directions.
    +	 */
    +	DIRECTION_MASK_ALL: 15,
    +
    +	/**
    +	 * Variable: ELBOW_VERTICAL
    +	 * 
    +	 * Constant for elbow vertical. Default is horizontal.
    +	 */
    +	ELBOW_VERTICAL: 'vertical',
    +
    +	/**
    +	 * Variable: ELBOW_HORIZONTAL
    +	 * 
    +	 * Constant for elbow horizontal. Default is horizontal.
    +	 */
    +	ELBOW_HORIZONTAL: 'horizontal',
    +
    +	/**
    +	 * Variable: EDGESTYLE_ELBOW
    +	 * 
    +	 * Name of the elbow edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	EDGESTYLE_ELBOW: 'elbowEdgeStyle',
    +
    +	/**
    +	 * Variable: EDGESTYLE_ENTITY_RELATION
    +	 * 
    +	 * Name of the entity relation edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	EDGESTYLE_ENTITY_RELATION: 'entityRelationEdgeStyle',
    +
    +	/**
    +	 * Variable: EDGESTYLE_LOOP
    +	 * 
    +	 * Name of the loop edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	EDGESTYLE_LOOP: 'loopEdgeStyle',
    +
    +	/**
    +	 * Variable: EDGESTYLE_SIDETOSIDE
    +	 * 
    +	 * Name of the side to side edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	EDGESTYLE_SIDETOSIDE: 'sideToSideEdgeStyle',
    +
    +	/**
    +	 * Variable: EDGESTYLE_TOPTOBOTTOM
    +	 * 
    +	 * Name of the top to bottom edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	EDGESTYLE_TOPTOBOTTOM: 'topToBottomEdgeStyle',
    +
    +	/**
    +	 * Variable: EDGESTYLE_ORTHOGONAL
    +	 * 
    +	 * Name of the generic orthogonal edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	EDGESTYLE_ORTHOGONAL: 'orthogonalEdgeStyle',
    +
    +	/**
    +	 * Variable: EDGESTYLE_SEGMENT
    +	 * 
    +	 * Name of the generic segment edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	EDGESTYLE_SEGMENT: 'segmentEdgeStyle',
    + 
    +	/**
    +	 * Variable: PERIMETER_ELLIPSE
    +	 * 
    +	 * Name of the ellipse perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	PERIMETER_ELLIPSE: 'ellipsePerimeter',
    +
    +	/**
    +	 * Variable: PERIMETER_RECTANGLE
    +	 *
    +	 * Name of the rectangle perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	PERIMETER_RECTANGLE: 'rectanglePerimeter',
    +
    +	/**
    +	 * Variable: PERIMETER_RHOMBUS
    +	 * 
    +	 * Name of the rhombus perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	PERIMETER_RHOMBUS: 'rhombusPerimeter',
    +
    +	/**
    +	 * Variable: PERIMETER_TRIANGLE
    +	 * 
    +	 * Name of the triangle perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	PERIMETER_TRIANGLE: 'trianglePerimeter'
    +
    +};
    diff --git a/javascript/src/js/util/mxDictionary.js b/javascript/src/js/util/mxDictionary.js
    new file mode 100644
    index 000000000..a2e503adf
    --- /dev/null
    +++ b/javascript/src/js/util/mxDictionary.js
    @@ -0,0 +1,130 @@
    +/**
    + * $Id: mxDictionary.js,v 1.12 2012-04-26 08:08:54 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxDictionary
    + *
    + * A wrapper class for an associative array with object keys. Note: This
    + * implementation uses <mxObjectIdentitiy> to turn object keys into strings.
    + * 
    + * Constructor: mxEventSource
    + *
    + * Constructs a new dictionary which allows object to be used as keys.
    + */
    +function mxDictionary()
    +{
    +	this.clear();
    +};
    +
    +/**
    + * Function: map
    + *
    + * Stores the (key, value) pairs in this dictionary.
    + */
    +mxDictionary.prototype.map = null;
    +
    +/**
    + * Function: clear
    + *
    + * Clears the dictionary.
    + */
    +mxDictionary.prototype.clear = function()
    +{
    +	this.map = {};
    +};
    +
    +/**
    + * Function: get
    + *
    + * Returns the value for the given key.
    + */
    +mxDictionary.prototype.get = function(key)
    +{
    +	var id = mxObjectIdentity.get(key);
    +	
    +	return this.map[id];
    +};
    +
    +/**
    + * Function: put
    + *
    + * Stores the value under the given key and returns the previous
    + * value for that key.
    + */
    +mxDictionary.prototype.put = function(key, value)
    +{
    +	var id = mxObjectIdentity.get(key);
    +	var previous = this.map[id];
    +	this.map[id] = value;
    +	
    +	return previous;
    +};
    +
    +/**
    + * Function: remove
    + *
    + * Removes the value for the given key and returns the value that
    + * has been removed.
    + */
    +mxDictionary.prototype.remove = function(key)
    +{
    +	var id = mxObjectIdentity.get(key);
    +	var previous = this.map[id];
    +	delete this.map[id];
    +	
    +	return previous;
    +};
    +
    +/**
    + * Function: getKeys
    + *
    + * Returns all keys as an array.
    + */
    +mxDictionary.prototype.getKeys = function()
    +{
    +	var result = [];
    +	
    +	for (var key in this.map)
    +	{
    +		result.push(key);
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getValues
    + *
    + * Returns all values as an array.
    + */
    +mxDictionary.prototype.getValues = function()
    +{
    +	var result = [];
    +	
    +	for (var key in this.map)
    +	{
    +		result.push(this.map[key]);
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: visit
    + *
    + * Visits all entries in the dictionary using the given function with the
    + * following signature: function(key, value) where key is a string and
    + * value is an object.
    + * 
    + * Parameters:
    + * 
    + * visitor - A function that takes the key and value as arguments.
    + */
    +mxDictionary.prototype.visit = function(visitor)
    +{
    +	for (var key in this.map)
    +	{
    +		visitor(key, this.map[key]);
    +	}
    +};
    diff --git a/javascript/src/js/util/mxDivResizer.js b/javascript/src/js/util/mxDivResizer.js
    new file mode 100644
    index 000000000..2a2e4eb65
    --- /dev/null
    +++ b/javascript/src/js/util/mxDivResizer.js
    @@ -0,0 +1,151 @@
    +/**
    + * $Id: mxDivResizer.js,v 1.22 2010-01-02 09:45:14 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxDivResizer
    + * 
    + * Maintains the size of a div element in Internet Explorer. This is a
    + * workaround for the right and bottom style being ignored in IE.
    + * 
    + * If you need a div to cover the scrollwidth and -height of a document,
    + * then you can use this class as follows:
    + * 
    + * (code)
    + * var resizer = new mxDivResizer(background);
    + * resizer.getDocumentHeight = function()
    + * {
    + *   return document.body.scrollHeight;
    + * }
    + * resizer.getDocumentWidth = function()
    + * {
    + *   return document.body.scrollWidth;
    + * }
    + * resizer.resize();
    + * (end)
    + * 
    + * Constructor: mxDivResizer
    + * 
    + * Constructs an object that maintains the size of a div
    + * element when the window is being resized. This is only
    + * required for Internet Explorer as it ignores the respective
    + * stylesheet information for DIV elements.
    + * 
    + * Parameters:
    + * 
    + * div - Reference to the DOM node whose size should be maintained.
    + * container - Optional Container that contains the div. Default is the
    + * window.
    + */
    +function mxDivResizer(div, container)
    +{
    +	if (div.nodeName.toLowerCase() == 'div')
    +	{
    +		if (container == null)
    +		{
    +			container = window;
    +		}
    +
    +		this.div = div;
    +		var style = mxUtils.getCurrentStyle(div);
    +		
    +		if (style != null)
    +		{
    +			this.resizeWidth = style.width == 'auto';
    +			this.resizeHeight = style.height == 'auto';
    +		}
    +		
    +		mxEvent.addListener(container, 'resize',
    +			mxUtils.bind(this, function(evt)
    +			{
    +				if (!this.handlingResize)
    +				{
    +					this.handlingResize = true;
    +					this.resize();
    +					this.handlingResize = false;
    +				}
    +			})
    +		);
    +		
    +		this.resize();
    +	}
    +};
    +
    +/**
    + * Function: resizeWidth
    + * 
    + * Boolean specifying if the width should be updated.
    + */
    +mxDivResizer.prototype.resizeWidth = true;
    +
    +/**
    + * Function: resizeHeight
    + * 
    + * Boolean specifying if the height should be updated.
    + */
    +mxDivResizer.prototype.resizeHeight = true;
    +
    +/**
    + * Function: handlingResize
    + * 
    + * Boolean specifying if the width should be updated.
    + */
    +mxDivResizer.prototype.handlingResize = false;
    +
    +/**
    + * Function: resize
    + * 
    + * Updates the style of the DIV after the window has been resized.
    + */
    +mxDivResizer.prototype.resize = function()
    +{
    +	var w = this.getDocumentWidth();
    +	var h = this.getDocumentHeight();
    +
    +	var l = parseInt(this.div.style.left);
    +	var r = parseInt(this.div.style.right);
    +	var t = parseInt(this.div.style.top);
    +	var b = parseInt(this.div.style.bottom);
    +	
    +	if (this.resizeWidth &&
    +		!isNaN(l) &&
    +		!isNaN(r) &&
    +		l >= 0 &&
    +		r >= 0 &&
    +		w - r - l > 0)
    +	{
    +		this.div.style.width = (w - r - l)+'px';
    +	}
    +	
    +	if (this.resizeHeight &&
    +		!isNaN(t) &&
    +		!isNaN(b) &&
    +		t >= 0 &&
    +		b >= 0 &&
    +		h - t - b > 0)
    +	{
    +		this.div.style.height = (h - t - b)+'px';
    +	}
    +};
    +
    +/**
    + * Function: getDocumentWidth
    + * 
    + * Hook for subclassers to return the width of the document (without
    + * scrollbars).
    + */
    +mxDivResizer.prototype.getDocumentWidth = function()
    +{
    +	return document.body.clientWidth;
    +};
    +
    +/**
    + * Function: getDocumentHeight
    + * 
    + * Hook for subclassers to return the height of the document (without
    + * scrollbars).
    + */
    +mxDivResizer.prototype.getDocumentHeight = function()
    +{
    +	return document.body.clientHeight;
    +};
    diff --git a/javascript/src/js/util/mxDragSource.js b/javascript/src/js/util/mxDragSource.js
    new file mode 100644
    index 000000000..2e9388063
    --- /dev/null
    +++ b/javascript/src/js/util/mxDragSource.js
    @@ -0,0 +1,580 @@
    +/**
    + * $Id: mxDragSource.js,v 1.11 2012-05-09 12:19:25 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxDragSource
    + * 
    + * Wrapper to create a drag source from a DOM element so that the element can
    + * be dragged over a graph and dropped into the graph as a new cell.
    + * 
    + * TODO: Problem is that in the dropHandler the current preview location is
    + * not available, so the preview and the dropHandler must match.
    + * 
    + * Constructor: mxDragSource
    + * 
    + * Constructs a new drag source for the given element.
    + */
    +function mxDragSource(element, dropHandler)
    +{
    +	this.element = element;
    +	this.dropHandler = dropHandler;
    +	
    +	// Handles a drag gesture on the element
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	mxEvent.addListener(element, md, mxUtils.bind(this, this.mouseDown));
    +};
    +
    +/**
    + * Variable: element
    + *
    + * Reference to the DOM node which was made draggable.
    + */
    +mxDragSource.prototype.element = null;
    +
    +/**
    + * Variable: dropHandler
    + *
    + * Holds the DOM node that is used to represent the drag preview. If this is
    + * null then the source element will be cloned and used for the drag preview.
    + */
    +mxDragSource.prototype.dropHandler = null;
    +
    +/**
    + * Variable: dragOffset
    + *
    + * <mxPoint> that specifies the offset of the <dragElement>. Default is null.
    + */
    +mxDragSource.prototype.dragOffset = null;
    +
    +/**
    + * Variable: dragElement
    + *
    + * Holds the DOM node that is used to represent the drag preview. If this is
    + * null then the source element will be cloned and used for the drag preview.
    + */
    +mxDragSource.prototype.dragElement = null;
    +
    +/**
    + * Variable: previewElement
    + *
    + * Optional <mxRectangle> that specifies the unscaled size of the preview.
    + */
    +mxDragSource.prototype.previewElement = null;
    +
    +/**
    + * Variable: enabled
    + *
    + * Specifies if this drag source is enabled. Default is true.
    + */
    +mxDragSource.prototype.enabled = true;
    +
    +/**
    + * Variable: currentGraph
    + *
    + * Reference to the <mxGraph> that is the current drop target.
    + */
    +mxDragSource.prototype.currentGraph = null;
    +
    +/**
    + * Variable: currentDropTarget
    + *
    + * Holds the current drop target under the mouse.
    + */
    +mxDragSource.prototype.currentDropTarget = null;
    +
    +/**
    + * Variable: currentPoint
    + *
    + * Holds the current drop location.
    + */
    +mxDragSource.prototype.currentPoint = null;
    +
    +/**
    + * Variable: currentGuide
    + *
    + * Holds an <mxGuide> for the <currentGraph> if <dragPreview> is not null.
    + */
    +mxDragSource.prototype.currentGuide = null;
    +
    +/**
    + * Variable: currentGuide
    + *
    + * Holds an <mxGuide> for the <currentGraph> if <dragPreview> is not null.
    + */
    +mxDragSource.prototype.currentHighlight = null;
    +
    +/**
    + * Variable: autoscroll
    + *
    + * Specifies if the graph should scroll automatically. Default is true.
    + */
    +mxDragSource.prototype.autoscroll = true;
    +
    +/**
    + * Variable: guidesEnabled
    + *
    + * Specifies if <mxGuide> should be enabled. Default is true.
    + */
    +mxDragSource.prototype.guidesEnabled = true;
    +
    +/**
    + * Variable: gridEnabled
    + *
    + * Specifies if the grid should be allowed. Default is true.
    + */
    +mxDragSource.prototype.gridEnabled = true;
    +
    +/**
    + * Variable: highlightDropTargets
    + *
    + * Specifies if drop targets should be highlighted. Default is true.
    + */
    +mxDragSource.prototype.highlightDropTargets = true;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns <enabled>.
    + */
    +mxDragSource.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Sets <enabled>.
    + */
    +mxDragSource.prototype.setEnabled = function(value)
    +{
    +	this.enabled = value;
    +};
    +
    +/**
    + * Function: isGuidesEnabled
    + * 
    + * Returns <guidesEnabled>.
    + */
    +mxDragSource.prototype.isGuidesEnabled = function()
    +{
    +	return this.guidesEnabled;
    +};
    +
    +/**
    + * Function: setGuidesEnabled
    + * 
    + * Sets <guidesEnabled>.
    + */
    +mxDragSource.prototype.setGuidesEnabled = function(value)
    +{
    +	this.guidesEnabled = value;
    +};
    +
    +/**
    + * Function: isGridEnabled
    + * 
    + * Returns <gridEnabled>.
    + */
    +mxDragSource.prototype.isGridEnabled = function()
    +{
    +	return this.gridEnabled;
    +};
    +
    +/**
    + * Function: setGridEnabled
    + * 
    + * Sets <gridEnabled>.
    + */
    +mxDragSource.prototype.setGridEnabled = function(value)
    +{
    +	this.gridEnabled = value;
    +};
    +
    +/**
    + * Function: getGraphForEvent
    + * 
    + * Returns the graph for the given mouse event. This implementation returns
    + * null.
    + */
    +mxDragSource.prototype.getGraphForEvent = function(evt)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: getDropTarget
    + * 
    + * Returns the drop target for the given graph and coordinates. This
    + * implementation uses <mxGraph.getCellAt>.
    + */
    +mxDragSource.prototype.getDropTarget = function(graph, x, y)
    +{
    +	return graph.getCellAt(x, y);
    +};
    +
    +/**
    + * Function: createDragElement
    + * 
    + * Creates and returns a clone of the <dragElementPrototype> or the <element>
    + * if the former is not defined.
    + */
    +mxDragSource.prototype.createDragElement = function(evt)
    +{
    +	return this.element.cloneNode(true);
    +};
    +
    +/**
    + * Function: createPreviewElement
    + * 
    + * Creates and returns an element which can be used as a preview in the given
    + * graph.
    + */
    +mxDragSource.prototype.createPreviewElement = function(graph)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Returns the drop target for the given graph and coordinates. This
    + * implementation uses <mxGraph.getCellAt>.
    + */
    +mxDragSource.prototype.mouseDown = function(evt)
    +{
    +	if (this.enabled && !mxEvent.isConsumed(evt))
    +	{
    +		this.startDrag(evt);
    +		
    +		var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +		var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +		
    +		this.mouseMoveHandler = mxUtils.bind(this, this.mouseMove);
    +		mxEvent.addListener(document, mm, this.mouseMoveHandler);
    +		this.mouseUpHandler = mxUtils.bind(this, this.mouseUp);
    +		mxEvent.addListener(document, mu, this.mouseUpHandler);
    +		
    +		// Prevents default action (native DnD for images in FF 10)
    +		// but does not stop event propagation
    +		mxEvent.consume(evt, true, false);
    +	}
    +};
    +
    +/**
    + * Function: startDrag
    + * 
    + * Creates the <dragElement> using <createDragElement>.
    + */
    +mxDragSource.prototype.startDrag = function(evt)
    +{
    +	this.dragElement = this.createDragElement(evt);
    +	this.dragElement.style.position = 'absolute';
    +	this.dragElement.style.zIndex = '3';
    +	mxUtils.setOpacity(this.dragElement, 70);
    +};
    +
    +
    +/**
    + * Function: stopDrag
    + * 
    + * Removes and destroys the <dragElement>.
    + */
    +mxDragSource.prototype.stopDrag = function(evt)
    +{
    +	if (this.dragElement != null)
    +	{
    +		if (this.dragElement.parentNode != null)
    +		{
    +			this.dragElement.parentNode.removeChild(this.dragElement);
    +		}
    +		
    +		this.dragElement = null;
    +	}
    +};
    +
    +/**
    + * Function: graphContainsEvent
    + * 
    + * Returns true if the given graph contains the given event.
    + */
    +mxDragSource.prototype.graphContainsEvent = function(graph, evt)
    +{
    +	var x = mxEvent.getClientX(evt);
    +	var y = mxEvent.getClientY(evt);
    +	var offset = mxUtils.getOffset(graph.container);
    +	var origin = mxUtils.getScrollOrigin();
    +
    +	// Checks if event is inside the bounds of the graph container
    +	return x >= offset.x - origin.x && y >= offset.y - origin.y &&
    +		x <= offset.x - origin.x + graph.container.offsetWidth &&
    +		y <= offset.y - origin.y + graph.container.offsetHeight;
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Gets the graph for the given event using <getGraphForEvent>, updates the
    + * <currentGraph>, calling <dragEnter> and <dragExit> on the new and old graph,
    + * respectively, and invokes <dragOver> if <currentGraph> is not null.
    + */
    +mxDragSource.prototype.mouseMove = function(evt)
    +{
    +	var graph = this.getGraphForEvent(evt);
    +	
    +	// Checks if event is inside the bounds of the graph container
    +	if (graph != null && !this.graphContainsEvent(graph, evt))
    +	{
    +		graph = null;
    +	}
    +
    +	if (graph != this.currentGraph)
    +	{
    +		if (this.currentGraph != null)
    +		{
    +			this.dragExit(this.currentGraph);
    +		}
    +		
    +		this.currentGraph = graph;
    +		
    +		if (this.currentGraph != null)
    +		{
    +			this.dragEnter(this.currentGraph);
    +		}
    +	}
    +	
    +	if (this.currentGraph != null)
    +	{
    +		this.dragOver(this.currentGraph, evt);
    +	}
    +
    +	if (this.dragElement != null && (this.previewElement == null || this.previewElement.style.visibility != 'visible'))
    +	{
    +		var x = mxEvent.getClientX(evt);
    +		var y = mxEvent.getClientY(evt);
    +		
    +		if (this.dragElement.parentNode == null)
    +		{
    +			document.body.appendChild(this.dragElement);
    +		}
    +
    +		this.dragElement.style.visibility = 'visible';
    +		
    +		if (this.dragOffset != null)
    +		{
    +			x += this.dragOffset.x;
    +			y += this.dragOffset.y;
    +		}
    +		
    +		x += document.body.scrollLeft || document.documentElement.scrollLeft;
    +		y += document.body.scrollTop || document.documentElement.scrollTop;
    +		this.dragElement.style.left = x + 'px';
    +		this.dragElement.style.top = y + 'px';
    +	}
    +	else if (this.dragElement != null)
    +	{
    +		this.dragElement.style.visibility = 'hidden';
    +	}
    +	
    +	mxEvent.consume(evt);
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Processes the mouse up event and invokes <drop>, <dragExit> and <stopDrag>
    + * as required.
    + */
    +mxDragSource.prototype.mouseUp = function(evt)
    +{
    +	if (this.currentGraph != null)
    +	{
    +		if (this.currentPoint != null && (this.previewElement == null ||
    +			this.previewElement.style.visibility != 'hidden'))
    +		{
    +			var scale = this.currentGraph.view.scale;
    +			var tr = this.currentGraph.view.translate;
    +			var x = this.currentPoint.x / scale - tr.x;
    +			var y = this.currentPoint.y / scale - tr.y;
    +			
    +			this.drop(this.currentGraph, evt, this.currentDropTarget, x, y);
    +		}
    +		
    +		this.dragExit(this.currentGraph);
    +	}
    +
    +	this.stopDrag(evt);
    +	
    +	this.currentGraph = null;
    +
    +	if (this.mouseMoveHandler != null)
    +	{
    +		var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +		mxEvent.removeListener(document, mm, this.mouseMoveHandler);
    +		this.mouseMoveHandler = null;
    +	}
    +	
    +	if (this.mouseUpHandler != null)
    +	{
    +		var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +		mxEvent.removeListener(document, mu, this.mouseUpHandler);
    +		this.mouseUpHandler = null;
    +	}
    +		
    +	mxEvent.consume(evt);
    +};
    +
    +/**
    + * Function: dragEnter
    + * 
    + * Actives the given graph as a drop target.
    + */
    +mxDragSource.prototype.dragEnter = function(graph)
    +{
    +	graph.isMouseDown = true;
    +	this.previewElement = this.createPreviewElement(graph);
    +	
    +	// Guide is only needed if preview element is used
    +	if (this.isGuidesEnabled() && this.previewElement != null)
    +	{
    +		this.currentGuide = new mxGuide(graph, graph.graphHandler.getGuideStates());
    +	}
    +	
    +	if (this.highlightDropTargets)
    +	{
    +		this.currentHighlight = new mxCellHighlight(graph, mxConstants.DROP_TARGET_COLOR);
    +	}
    +};
    +
    +/**
    + * Function: dragExit
    + * 
    + * Deactivates the given graph as a drop target.
    + */
    +mxDragSource.prototype.dragExit = function(graph)
    +{
    +	this.currentDropTarget = null;
    +	this.currentPoint = null;
    +	graph.isMouseDown = false;
    +	
    +	if (this.previewElement != null)
    +	{
    +		if (this.previewElement.parentNode != null)
    +		{
    +			this.previewElement.parentNode.removeChild(this.previewElement);
    +		}
    +		
    +		this.previewElement = null;
    +	}
    +	
    +	if (this.currentGuide != null)
    +	{
    +		this.currentGuide.destroy();
    +		this.currentGuide = null;
    +	}
    +	
    +	if (this.currentHighlight != null)
    +	{
    +		this.currentHighlight.destroy();
    +		this.currentHighlight = null;
    +	}
    +};
    +
    +/**
    + * Function: dragOver
    + * 
    + * Implements autoscroll, updates the <currentPoint>, highlights any drop
    + * targets and updates the preview.
    + */
    +mxDragSource.prototype.dragOver = function(graph, evt)
    +{
    +	var offset = mxUtils.getOffset(graph.container);
    +	var origin = mxUtils.getScrollOrigin(graph.container);
    +	var x = mxEvent.getClientX(evt) - offset.x + origin.x;
    +	var y = mxEvent.getClientY(evt) - offset.y + origin.y;
    +
    +	if (graph.autoScroll && (this.autoscroll == null || this.autoscroll))
    +	{
    +		graph.scrollPointToVisible(x, y, graph.autoExtend);
    +	}
    +
    +	// Highlights the drop target under the mouse
    +	if (this.currentHighlight != null && graph.isDropEnabled())
    +	{
    +		this.currentDropTarget = this.getDropTarget(graph, x, y);
    +		var state = graph.getView().getState(this.currentDropTarget);
    +		this.currentHighlight.highlight(state);
    +	}
    +
    +	// Updates the location of the preview
    +	if (this.previewElement != null)
    +	{
    +		if (this.previewElement.parentNode == null)
    +		{
    +			graph.container.appendChild(this.previewElement);
    +			
    +			this.previewElement.style.zIndex = '3';
    +			this.previewElement.style.position = 'absolute';
    +		}
    +		
    +		var gridEnabled = this.isGridEnabled() && graph.isGridEnabledEvent(evt);
    +		var hideGuide = true;
    +
    +		// Grid and guides
    +		if (this.currentGuide != null && this.currentGuide.isEnabledForEvent(evt))
    +		{
    +			// LATER: HTML preview appears smaller than SVG preview
    +			var w = parseInt(this.previewElement.style.width);
    +			var h = parseInt(this.previewElement.style.height);
    +			var bounds = new mxRectangle(0, 0, w, h);
    +			var delta = new mxPoint(x, y);
    +			delta = this.currentGuide.move(bounds, delta, gridEnabled);
    +			hideGuide = false;
    +			x = delta.x;
    +			y = delta.y;
    +		}
    +		else if (gridEnabled)
    +		{
    +			var scale = graph.view.scale;
    +			var tr = graph.view.translate;
    +			var off = graph.gridSize / 2;
    +			x = (graph.snap(x / scale - tr.x - off) + tr.x) * scale;
    +			y = (graph.snap(y / scale - tr.y - off) + tr.y) * scale;
    +		}
    +		
    +		if (this.currentGuide != null && hideGuide)
    +		{
    +			this.currentGuide.hide();
    +		}
    +		
    +		if (this.previewOffset != null)
    +		{
    +			x += this.previewOffset.x;
    +			y += this.previewOffset.y;
    +		}
    +
    +		this.previewElement.style.left = Math.round(x) + 'px';
    +		this.previewElement.style.top = Math.round(y) + 'px';
    +		this.previewElement.style.visibility = 'visible';
    +	}
    +	
    +	this.currentPoint = new mxPoint(x, y);
    +};
    +
    +/**
    + * Function: drop
    + * 
    + * Returns the drop target for the given graph and coordinates. This
    + * implementation uses <mxGraph.getCellAt>.
    + */
    +mxDragSource.prototype.drop = function(graph, evt, dropTarget, x, y)
    +{
    +	this.dropHandler(graph, evt, dropTarget, x, y);
    +	
    +	// Had to move this to after the insert because it will
    +	// affect the scrollbars of the window in IE to try and
    +	// make the complete container visible.
    +	// LATER: Should be made optional.
    +	graph.container.focus();
    +};
    diff --git a/javascript/src/js/util/mxEffects.js b/javascript/src/js/util/mxEffects.js
    new file mode 100644
    index 000000000..89d6a7153
    --- /dev/null
    +++ b/javascript/src/js/util/mxEffects.js
    @@ -0,0 +1,214 @@
    +/**
    + * $Id: mxEffects.js,v 1.6 2012-01-04 10:01:16 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxEffects =
    +{
    +
    +	/**
    +	 * Class: mxEffects
    +	 * 
    +	 * Provides animation effects.
    +	 */
    +
    +	/**
    +	 * Function: animateChanges
    +	 * 
    +	 * Asynchronous animated move operation. See also: <mxMorphing>.
    +	 * 
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * graph.model.addListener(mxEvent.CHANGE, function(sender, evt)
    +	 * {
    +	 *   var changes = evt.getProperty('edit').changes;
    +	 * 
    +	 *   if (changes.length < 10)
    +	 *   {
    +	 *     mxEffects.animateChanges(graph, changes);
    +	 *   }
    +	 * });
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * graph - <mxGraph> that received the changes.
    +	 * changes - Array of changes to be animated.
    +	 * done - Optional function argument that is invoked after the
    +	 * last step of the animation.
    +	 */
    +	animateChanges: function(graph, changes, done)
    +	{
    +		var maxStep = 10;
    +		var step = 0;
    +
    +		var animate = function() 
    +		{
    +			var isRequired = false;
    +			
    +			for (var i = 0; i < changes.length; i++)
    +			{
    +				var change = changes[i];
    +				
    +				if (change instanceof mxGeometryChange ||
    +					change instanceof mxTerminalChange ||
    +					change instanceof mxValueChange ||
    +					change instanceof mxChildChange ||
    +					change instanceof mxStyleChange)
    +				{
    +					var state = graph.getView().getState(change.cell || change.child, false);
    +					
    +					if (state != null)
    +					{
    +						isRequired = true;
    +					
    +						if (change.constructor != mxGeometryChange || graph.model.isEdge(change.cell))
    +						{
    +							mxUtils.setOpacity(state.shape.node, 100 * step / maxStep);
    +						}
    +						else
    +						{
    +							var scale = graph.getView().scale;					
    +
    +							var dx = (change.geometry.x - change.previous.x) * scale;
    +							var dy = (change.geometry.y - change.previous.y) * scale;
    +							
    +							var sx = (change.geometry.width - change.previous.width) * scale;
    +							var sy = (change.geometry.height - change.previous.height) * scale;
    +							
    +							if (step == 0)
    +							{
    +								state.x -= dx;
    +								state.y -= dy;
    +								state.width -= sx;
    +								state.height -= sy;
    +							}
    +							else
    +							{
    +								state.x += dx / maxStep;
    +								state.y += dy / maxStep;
    +								state.width += sx / maxStep;
    +								state.height += sy / maxStep;
    +							}
    +							
    +							graph.cellRenderer.redraw(state);
    +							
    +							// Fades all connected edges and children
    +							mxEffects.cascadeOpacity(graph, change.cell, 100 * step / maxStep);
    +						}
    +					}
    +				}
    +			}
    +
    +			// Workaround to force a repaint in AppleWebKit
    +			mxUtils.repaintGraph(graph, new mxPoint(1, 1));
    +			
    +			if (step < maxStep && isRequired)
    +			{
    +				step++;
    +				window.setTimeout(animate, delay);
    +			}
    +			else if (done != null)
    +			{
    +				done();
    +			}
    +		};
    +		
    +		var delay = 30;
    +		animate();
    +	},
    +    
    +	/**
    +	 * Function: cascadeOpacity
    +	 * 
    +	 * Sets the opacity on the given cell and its descendants.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * graph - <mxGraph> that contains the cells.
    +	 * cell - <mxCell> to set the opacity for.
    +	 * opacity - New value for the opacity in %.
    +	 */
    +    cascadeOpacity: function(graph, cell, opacity)
    +	{
    +		// Fades all children
    +		var childCount = graph.model.getChildCount(cell);
    +		
    +		for (var i=0; i<childCount; i++)
    +		{
    +			var child = graph.model.getChildAt(cell, i);
    +			var childState = graph.getView().getState(child);
    +			
    +			if (childState != null)
    +			{
    +				mxUtils.setOpacity(childState.shape.node, opacity);
    +				mxEffects.cascadeOpacity(graph, child, opacity);
    +			}
    +		}
    +		
    +		// Fades all connected edges
    +		var edges = graph.model.getEdges(cell);
    +		
    +		if (edges != null)
    +		{
    +			for (var i=0; i<edges.length; i++)
    +			{
    +				var edgeState = graph.getView().getState(edges[i]);
    +				
    +				if (edgeState != null)
    +				{
    +					mxUtils.setOpacity(edgeState.shape.node, opacity);
    +				}
    +			}
    +		}
    +	},
    +
    +	/**
    +	 * Function: fadeOut
    +	 * 
    +	 * Asynchronous fade-out operation.
    +	 */
    +	fadeOut: function(node, from, remove, step, delay, isEnabled)
    +	{
    +		step = step || 40;
    +		delay = delay || 30;
    +		
    +		var opacity = from || 100;
    +		
    +		mxUtils.setOpacity(node, opacity);
    +		
    +		if (isEnabled || isEnabled == null)
    +		{
    +			var f = function()
    +			{
    +			    opacity = Math.max(opacity-step, 0);
    +				mxUtils.setOpacity(node, opacity);
    +				
    +				if (opacity > 0)
    +				{
    +					window.setTimeout(f, delay);
    +				}
    +				else
    +				{
    +					node.style.visibility = 'hidden';
    +					
    +					if (remove && node.parentNode)
    +					{
    +						node.parentNode.removeChild(node);
    +					}
    +				}
    +			};
    +			window.setTimeout(f, delay);
    +		}
    +		else
    +		{
    +			node.style.visibility = 'hidden';
    +			
    +			if (remove && node.parentNode)
    +			{
    +				node.parentNode.removeChild(node);
    +			}
    +		}
    +	}
    +
    +};
    diff --git a/javascript/src/js/util/mxEvent.js b/javascript/src/js/util/mxEvent.js
    new file mode 100644
    index 000000000..ead3aebc1
    --- /dev/null
    +++ b/javascript/src/js/util/mxEvent.js
    @@ -0,0 +1,1146 @@
    +/**
    + * $Id: mxEvent.js,v 1.72 2012-05-03 13:28:03 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxEvent =
    +{
    +
    +	/**
    +	 * Class: mxEvent
    +	 * 
    +	 * Cross-browser DOM event support. For internal event handling,
    +	 * <mxEventSource> and the graph event dispatch loop in <mxGraph> are used.
    +	 * 
    +	 * Memory Leaks:
    +	 * 
    +	 * Use this class for adding and removing listeners to/from DOM nodes. The
    +	 * <removeAllListeners> function is provided to remove all listeners that
    +	 * have been added using <addListener>. The function should be invoked when
    +	 * the last reference is removed in the JavaScript code, typically when the
    +	 * referenced DOM node is removed from the DOM, and helps to reduce memory
    +	 * leaks in IE6.
    +	 * 
    +	 * Variable: objects
    +	 * 
    +	 * Contains all objects where any listener was added using <addListener>.
    +	 * This is used to reduce memory leaks in IE, see <mxClient.dispose>.
    +	 */
    +	objects: [],
    +
    +	 /**
    +	  * Function: addListener
    +	  * 
    +	  * Binds the function to the specified event on the given element. Use
    +	  * <mxUtils.bind> in order to bind the "this" keyword inside the function
    +	  * to a given execution scope.
    +	  */
    +	addListener: function()
    +	{
    +		var updateListenerList = function(element, eventName, funct)
    +		{
    +			if (element.mxListenerList == null)
    +			{
    +				element.mxListenerList = [];
    +				mxEvent.objects.push(element);
    +			}
    +			
    +			var entry = {name: eventName, f: funct};
    +			element.mxListenerList.push(entry);
    +		};
    +		
    +		if (window.addEventListener)
    +		{
    +			return function(element, eventName, funct)
    +			{
    +				element.addEventListener(eventName, funct, false);
    +				updateListenerList(element, eventName, funct);
    +			};
    +		}
    +		else
    +		{
    +			return function(element, eventName, funct)
    +			{
    +				element.attachEvent("on" + eventName, funct);
    +				updateListenerList(element, eventName, funct);				
    +			};
    +		}
    +	}(),
    +
    +	/**
    +	 * Function: removeListener
    +	 *
    +	 * Removes the specified listener from the given element.
    +	 */
    +	removeListener: function()
    +	{
    +		var updateListener = function(element, eventName, funct)
    +		{
    +			if (element.mxListenerList != null)
    +			{
    +				var listenerCount = element.mxListenerList.length;
    +				
    +				for (var i=0; i<listenerCount; i++)
    +				{
    +					var entry = element.mxListenerList[i];
    +					
    +					if (entry.f == funct)
    +					{
    +						element.mxListenerList.splice(i, 1);
    +						break;
    +					}
    +				}
    +				
    +				if (element.mxListenerList.length == 0)
    +				{
    +					element.mxListenerList = null;
    +				}
    +			}
    +		};
    +		
    +		if (window.removeEventListener)
    +		{
    +			return function(element, eventName, funct)
    +			{
    +				element.removeEventListener(eventName, funct, false);
    +				updateListener(element, eventName, funct);
    +			};
    +		}
    +		else
    +		{
    +			return function(element, eventName, funct)
    +			{
    +				element.detachEvent("on" + eventName, funct);
    +				updateListener(element, eventName, funct);
    +			};
    +		}
    +	}(),
    +
    +	/**
    +	 * Function: removeAllListeners
    +	 * 
    +	 * Removes all listeners from the given element.
    +	 */
    +	removeAllListeners: function(element)
    +	{
    +		var list = element.mxListenerList;
    +
    +		if (list != null)
    +		{
    +			while (list.length > 0)
    +			{
    +				var entry = list[0];
    +				mxEvent.removeListener(element, entry.name, entry.f);
    +			}
    +		}
    +	},
    +	
    +	/**
    +	 * Function: redirectMouseEvents
    +	 *
    +	 * Redirects the mouse events from the given DOM node to the graph dispatch
    +	 * loop using the event and given state as event arguments. State can
    +	 * either be an instance of <mxCellState> or a function that returns an
    +	 * <mxCellState>. The down, move, up and dblClick arguments are optional
    +	 * functions that take the trigger event as arguments and replace the
    +	 * default behaviour.
    +	 */
    +	redirectMouseEvents: function(node, graph, state, down, move, up, dblClick)
    +	{
    +		var getState = function(evt)
    +		{
    +			return (typeof(state) == 'function') ? state(evt) : state;
    +		};
    +		
    +		var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +		var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +		var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +		
    +		mxEvent.addListener(node, md, function (evt)
    +		{
    +			if (down != null)
    +			{
    +				down(evt);
    +			}
    +			else if (!mxEvent.isConsumed(evt))
    +			{
    +				graph.fireMouseEvent(mxEvent.MOUSE_DOWN,
    +					new mxMouseEvent(evt, getState(evt)));
    +			}
    +		});
    +		
    +		mxEvent.addListener(node, mm, function (evt)
    +		{
    +			if (move != null)
    +			{
    +				move(evt);
    +			}
    +			else if (!mxEvent.isConsumed(evt))
    +			{
    +				graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +						new mxMouseEvent(evt, getState(evt)));
    +			}
    +		});
    +		
    +		mxEvent.addListener(node, mu, function (evt)
    +		{
    +			if (up != null)
    +			{
    +				up(evt);
    +			}
    +			else if (!mxEvent.isConsumed(evt))
    +			{
    +				graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +						new mxMouseEvent(evt, getState(evt)));
    +			}
    +		});
    +
    +		mxEvent.addListener(node, 'dblclick', function (evt)
    +		{
    +			if (dblClick != null)
    +			{
    +				dblClick(evt);
    +			}
    +			else if (!mxEvent.isConsumed(evt))
    +			{
    +				var tmp = getState(evt);
    +				graph.dblClick(evt, (tmp != null) ? tmp.cell : null);
    +			}
    +		});
    +	},
    +
    +	/**
    +	 * Function: release
    +	 * 
    +	 * Removes the known listeners from the given DOM node and its descendants.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * element - DOM node to remove the listeners from.
    +	 */
    +	release: function(element)
    +	{
    +		if (element != null)
    +		{
    +			mxEvent.removeAllListeners(element);
    +			
    +			var children = element.childNodes;
    +			
    +			if (children != null)
    +			{
    +		        var childCount = children.length;
    +		        
    +		        for (var i = 0; i < childCount; i += 1)
    +		        {
    +		        	mxEvent.release(children[i]);
    +		        }
    +		    }
    +		}
    +	},
    +
    +	/**
    +	 * Function: addMouseWheelListener
    +	 * 
    +	 * Installs the given function as a handler for mouse wheel events. The
    +	 * function has two arguments: the mouse event and a boolean that specifies
    +	 * if the wheel was moved up or down.
    +	 * 
    +	 * This has been tested with IE 6 and 7, Firefox (all versions), Opera and
    +	 * Safari. It does currently not work on Safari for Mac.
    +	 * 
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * mxEvent.addMouseWheelListener(function (evt, up)
    +	 * {
    +	 *   mxLog.show();
    +	 *   mxLog.debug('mouseWheel: up='+up);
    +	 * });
    +	 *(end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * funct - Handler function that takes the event argument and a boolean up
    +	 * argument for the mousewheel direction.
    +	 */
    +	addMouseWheelListener: function(funct)
    +	{
    +		if (funct != null)
    +		{
    +			var wheelHandler = function(evt)
    +			{
    +				// IE does not give an event object but the
    +				// global event object is the mousewheel event
    +				// at this point in time.
    +				if (evt == null)
    +				{
    +					evt = window.event;
    +				}
    +			
    +				var delta = 0;
    +				
    +				if (mxClient.IS_NS && !mxClient.IS_SF && !mxClient.IS_GC)
    +				{
    +					delta = -evt.detail/2;
    +				}
    +				else
    +				{
    +					delta = evt.wheelDelta/120;
    +				}
    +				
    +				// Handles the event using the given function
    +				if (delta != 0)
    +				{
    +					funct(evt, delta > 0);
    +				}
    +			};
    +	
    +			// Webkit has NS event API, but IE event name and details 
    +			if (mxClient.IS_NS)
    +			{
    +				var eventName = (mxClient.IS_SF || 	mxClient.IS_GC) ?
    +						'mousewheel' : 'DOMMouseScroll';
    +				mxEvent.addListener(window, eventName, wheelHandler);
    +			}
    +			else
    +			{
    +				// TODO: Does not work with Safari and Chrome but it should be
    +				// working as tested in etc/markup/wheel.html
    +				mxEvent.addListener(document, 'mousewheel', wheelHandler);
    +			}
    +		}
    +	},
    +	
    +	/**
    +	 * Function: disableContextMenu
    +	 *
    +	 * Disables the context menu for the given element.
    +	 */
    +	disableContextMenu: function()
    +	{
    +		if (mxClient.IS_IE && (typeof(document.documentMode) === 'undefined' || document.documentMode < 9))
    +		{
    +			return function(element)
    +			{
    +				mxEvent.addListener(element, 'contextmenu', function()
    +				{
    +					return false;
    +				});
    +			};
    +		}
    +		else
    +		{
    +			return function(element)
    +			{
    +				element.setAttribute('oncontextmenu', 'return false;');
    +			};		
    +		}
    +	}(),
    +	
    +	/**
    +	 * Function: getSource
    +	 * 
    +	 * Returns the event's target or srcElement depending on the browser.
    +	 */
    +	getSource: function(evt)
    +	{
    +		return (evt.srcElement != null) ? evt.srcElement : evt.target;
    +	},
    +
    +	/**
    +	 * Function: isConsumed
    +	 * 
    +	 * Returns true if the event has been consumed using <consume>.
    +	 */
    +	isConsumed: function(evt)
    +	{
    +		return evt.isConsumed != null &&
    +			evt.isConsumed; // Opera
    +	},
    +
    +	/**
    +	 * Function: isLeftMouseButton
    +	 * 
    +	 * Returns true if the left mouse button is pressed for the given event.
    +	 * To check if a button is pressed during a mouseMove you should use the
    +	 * <mxGraph.isMouseDown> property.
    +	 */
    +	isLeftMouseButton: function(evt)
    +	{
    +		return evt.button == ((mxClient.IS_IE && (typeof(document.documentMode) === 'undefined' || document.documentMode < 9)) ? 1 : 0);
    +	},
    +	
    +	/**
    +	 * Function: isRightMouseButton
    +	 * 
    +	 * Returns true if the right mouse button was pressed. Note that this
    +	 * button might not be available on some systems. For handling a popup
    +	 * trigger <isPopupTrigger> should be used.
    +	 */
    +	isRightMouseButton: function(evt)
    +	{
    +		return evt.button == 2;
    +	},
    +
    +	/**
    +	 * Function: isPopupTrigger
    +	 * 
    +	 * Returns true if the event is a popup trigger. This implementation
    +	 * returns true if the right mouse button or shift was pressed.
    +	 */
    +	isPopupTrigger: function(evt)
    +	{
    +		return mxEvent.isRightMouseButton(evt) ||
    +			(mxEvent.isShiftDown(evt) &&
    +			!mxEvent.isControlDown(evt));
    +	},
    +
    +	/**
    +	 * Function: isShiftDown
    +	 * 
    +	 * Returns true if the shift key is pressed for the given event.
    +	 */
    +	isShiftDown: function(evt)
    +	{
    +		return (evt != null) ? evt.shiftKey : false;
    +	},
    +
    +	/**
    +	 * Function: isAltDown
    +	 * 
    +	 * Returns true if the alt key is pressed for the given event.
    +	 */
    +	isAltDown: function(evt)
    +	{
    +		return (evt != null) ? evt.altKey : false;
    +	},
    +
    +	/**
    +	 * Function: isControlDown
    +	 * 
    +	 * Returns true if the control key is pressed for the given event.
    +	 */
    +	isControlDown: function(evt)
    +	{
    +		return (evt != null) ? evt.ctrlKey : false;
    +	},
    +
    +	/**
    +	 * Function: isMetaDown
    +	 * 
    +	 * Returns true if the meta key is pressed for the given event.
    +	 */
    +	isMetaDown: function(evt)
    +	{
    +		return (evt != null) ? evt.metaKey : false;
    +	},
    +
    +	/**
    +	 * Function: getMainEvent
    +	 * 
    +	 * Returns the touch or mouse event that contains the mouse coordinates.
    +	 */
    +	getMainEvent: function(e)
    +	{
    +		if ((e.type == 'touchstart' || e.type == 'touchmove') &&
    +			e.touches != null && e.touches[0] != null)
    +		{
    +			e = e.touches[0];
    +		}
    +		else if (e.type == 'touchend' && e.changedTouches != null &&
    +			e.changedTouches[0] != null)
    +		{
    +			e = e.changedTouches[0];
    +		}
    +		
    +		return e;
    +	},
    +	
    +	/**
    +	 * Function: getClientX
    +	 * 
    +	 * Returns true if the meta key is pressed for the given event.
    +	 */
    +	getClientX: function(e)
    +	{
    +		return mxEvent.getMainEvent(e).clientX;
    +	},
    +
    +	/**
    +	 * Function: getClientY
    +	 * 
    +	 * Returns true if the meta key is pressed for the given event.
    +	 */
    +	getClientY: function(e)
    +	{
    +		return mxEvent.getMainEvent(e).clientY;
    +	},
    +
    +	/**
    +	 * Function: consume
    +	 * 
    +	 * Consumes the given event.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * evt - Native event to be consumed.
    +	 * preventDefault - Optional boolean to prevent the default for the event.
    +	 * Default is true.
    +	 * stopPropagation - Option boolean to stop event propagation. Default is
    +	 * true.
    +	 */
    +	consume: function(evt, preventDefault, stopPropagation)
    +	{
    +		preventDefault = (preventDefault != null) ? preventDefault : true;
    +		stopPropagation = (stopPropagation != null) ? stopPropagation : true;
    +		
    +		if (preventDefault)
    +		{
    +			if (evt.preventDefault)
    +			{
    +				if (stopPropagation)
    +				{
    +					evt.stopPropagation();
    +				}
    +				
    +				evt.preventDefault();
    +			}
    +			else if (stopPropagation)
    +			{
    +				evt.cancelBubble = true;
    +			}
    +		}
    +
    +		// Opera
    +		evt.isConsumed = true;
    +
    +		// Other browsers
    +		evt.returnValue = false;
    +	},
    +	
    +	//
    +	// Special handles in mouse events
    +	//
    +	
    +	/**
    +	 * Variable: LABEL_HANDLE
    +	 * 
    +	 * Index for the label handle in an mxMouseEvent. This should be a negative
    +	 * value that does not interfere with any possible handle indices. Default
    +	 * is -1.
    +	 */
    +	LABEL_HANDLE: -1,
    +	
    +	//
    +	// Event names
    +	//
    +	
    +	/**
    +	 * Variable: MOUSE_DOWN
    +	 *
    +	 * Specifies the event name for mouseDown.
    +	 */
    +	MOUSE_DOWN: 'mouseDown',
    +	
    +	/**
    +	 * Variable: MOUSE_MOVE
    +	 *
    +	 * Specifies the event name for mouseMove. 
    +	 */
    +	MOUSE_MOVE: 'mouseMove',
    +	
    +	/**
    +	 * Variable: MOUSE_UP
    +	 *
    +	 * Specifies the event name for mouseUp. 
    +	 */
    +	MOUSE_UP: 'mouseUp',
    +
    +	/**
    +	 * Variable: ACTIVATE
    +	 *
    +	 * Specifies the event name for activate.
    +	 */
    +	ACTIVATE: 'activate',
    +
    +	/**
    +	 * Variable: RESIZE_START
    +	 *
    +	 * Specifies the event name for resizeStart.
    +	 */
    +	RESIZE_START: 'resizeStart',
    +
    +	/**
    +	 * Variable: RESIZE
    +	 *
    +	 * Specifies the event name for resize.
    +	 */
    +	RESIZE: 'resize',
    +
    +	/**
    +	 * Variable: RESIZE_END
    +	 *
    +	 * Specifies the event name for resizeEnd.
    +	 */
    +	RESIZE_END: 'resizeEnd',
    +
    +	/**
    +	 * Variable: MOVE_START
    +	 *
    +	 * Specifies the event name for moveStart.
    +	 */
    +	MOVE_START: 'moveStart',
    +
    +	/**
    +	 * Variable: MOVE
    +	 *
    +	 * Specifies the event name for move.
    +	 */
    +	MOVE: 'move',
    +
    +	/**
    +	 * Variable: MOVE_END
    +	 *
    +	 * Specifies the event name for moveEnd.
    +	 */
    +	MOVE_END: 'moveEnd',
    +
    +	/**
    +	 * Variable: PAN_START
    +	 *
    +	 * Specifies the event name for panStart.
    +	 */
    +	PAN_START: 'panStart',
    +
    +	/**
    +	 * Variable: PAN
    +	 *
    +	 * Specifies the event name for pan.
    +	 */
    +	PAN: 'pan',
    +
    +	/**
    +	 * Variable: PAN_END
    +	 *
    +	 * Specifies the event name for panEnd.
    +	 */
    +	PAN_END: 'panEnd',
    +
    +	/**
    +	 * Variable: MINIMIZE
    +	 *
    +	 * Specifies the event name for minimize.
    +	 */
    +	MINIMIZE: 'minimize',
    +
    +	/**
    +	 * Variable: NORMALIZE
    +	 *
    +	 * Specifies the event name for normalize.
    +	 */
    +	NORMALIZE: 'normalize',
    +
    +	/**
    +	 * Variable: MAXIMIZE
    +	 *
    +	 * Specifies the event name for maximize.
    +	 */
    +	MAXIMIZE: 'maximize',
    +
    +	/**
    +	 * Variable: HIDE
    +	 *
    +	 * Specifies the event name for hide.
    +	 */
    +	HIDE: 'hide',
    +
    +	/**
    +	 * Variable: SHOW
    +	 *
    +	 * Specifies the event name for show.
    +	 */
    +	SHOW: 'show',
    +
    +	/**
    +	 * Variable: CLOSE
    +	 *
    +	 * Specifies the event name for close.
    +	 */
    +	CLOSE: 'close',
    +
    +	/**
    +	 * Variable: DESTROY
    +	 *
    +	 * Specifies the event name for destroy.
    +	 */
    +	DESTROY: 'destroy',
    +
    +	/**
    +	 * Variable: REFRESH
    +	 *
    +	 * Specifies the event name for refresh.
    +	 */
    +	REFRESH: 'refresh',
    +
    +	/**
    +	 * Variable: SIZE
    +	 *
    +	 * Specifies the event name for size.
    +	 */
    +	SIZE: 'size',
    +	
    +	/**
    +	 * Variable: SELECT
    +	 *
    +	 * Specifies the event name for select.
    +	 */
    +	SELECT: 'select',
    +
    +	/**
    +	 * Variable: FIRED
    +	 *
    +	 * Specifies the event name for fired.
    +	 */
    +	FIRED: 'fired',
    +
    +	/**
    +	 * Variable: GET
    +	 *
    +	 * Specifies the event name for get.
    +	 */
    +	GET: 'get',
    +
    +	/**
    +	 * Variable: RECEIVE
    +	 *
    +	 * Specifies the event name for receive.
    +	 */
    +	RECEIVE: 'receive',
    +
    +	/**
    +	 * Variable: CONNECT
    +	 *
    +	 * Specifies the event name for connect.
    +	 */
    +	CONNECT: 'connect',
    +
    +	/**
    +	 * Variable: DISCONNECT
    +	 *
    +	 * Specifies the event name for disconnect.
    +	 */
    +	DISCONNECT: 'disconnect',
    +
    +	/**
    +	 * Variable: SUSPEND
    +	 *
    +	 * Specifies the event name for suspend.
    +	 */
    +	SUSPEND: 'suspend',
    +
    +	/**
    +	 * Variable: RESUME
    +	 *
    +	 * Specifies the event name for suspend.
    +	 */
    +	RESUME: 'resume',
    +
    +	/**
    +	 * Variable: MARK
    +	 *
    +	 * Specifies the event name for mark.
    +	 */
    +	MARK: 'mark',
    +
    +	/**
    +	 * Variable: SESSION
    +	 *
    +	 * Specifies the event name for session.
    +	 */
    +	SESSION: 'session',
    +
    +	/**
    +	 * Variable: ROOT
    +	 *
    +	 * Specifies the event name for root.
    +	 */
    +	ROOT: 'root',
    +
    +	/**
    +	 * Variable: POST
    +	 *
    +	 * Specifies the event name for post.
    +	 */
    +	POST: 'post',
    +
    +	/**
    +	 * Variable: OPEN
    +	 *
    +	 * Specifies the event name for open.
    +	 */
    +	OPEN: 'open',
    +
    +	/**
    +	 * Variable: SAVE
    +	 *
    +	 * Specifies the event name for open.
    +	 */
    +	SAVE: 'save',
    +
    +	/**
    +	 * Variable: BEFORE_ADD_VERTEX
    +	 *
    +	 * Specifies the event name for beforeAddVertex.
    +	 */
    +	BEFORE_ADD_VERTEX: 'beforeAddVertex',
    +
    +	/**
    +	 * Variable: ADD_VERTEX
    +	 *
    +	 * Specifies the event name for addVertex.
    +	 */
    +	ADD_VERTEX: 'addVertex',
    +
    +	/**
    +	 * Variable: AFTER_ADD_VERTEX
    +	 *
    +	 * Specifies the event name for afterAddVertex.
    +	 */
    +	AFTER_ADD_VERTEX: 'afterAddVertex',
    +
    +	/**
    +	 * Variable: DONE
    +	 *
    +	 * Specifies the event name for done.
    +	 */
    +	DONE: 'done',
    +
    +	/**
    +	 * Variable: EXECUTE
    +	 *
    +	 * Specifies the event name for execute.
    +	 */
    +	EXECUTE: 'execute',
    +
    +	/**
    +	 * Variable: BEGIN_UPDATE
    +	 *
    +	 * Specifies the event name for beginUpdate.
    +	 */
    +	BEGIN_UPDATE: 'beginUpdate',
    +
    +	/**
    +	 * Variable: END_UPDATE
    +	 *
    +	 * Specifies the event name for endUpdate.
    +	 */
    +	END_UPDATE: 'endUpdate',
    +
    +	/**
    +	 * Variable: BEFORE_UNDO
    +	 *
    +	 * Specifies the event name for beforeUndo.
    +	 */
    +	BEFORE_UNDO: 'beforeUndo',
    +
    +	/**
    +	 * Variable: UNDO
    +	 *
    +	 * Specifies the event name for undo.
    +	 */
    +	UNDO: 'undo',
    +
    +	/**
    +	 * Variable: REDO
    +	 *
    +	 * Specifies the event name for redo.
    +	 */
    +	REDO: 'redo',
    +
    +	/**
    +	 * Variable: CHANGE
    +	 *
    +	 * Specifies the event name for change.
    +	 */
    +	CHANGE: 'change',
    +
    +	/**
    +	 * Variable: NOTIFY
    +	 *
    +	 * Specifies the event name for notify.
    +	 */
    +	NOTIFY: 'notify',
    +
    +	/**
    +	 * Variable: LAYOUT_CELLS
    +	 *
    +	 * Specifies the event name for layoutCells.
    +	 */
    +	LAYOUT_CELLS: 'layoutCells',
    +
    +	/**
    +	 * Variable: CLICK
    +	 *
    +	 * Specifies the event name for click.
    +	 */
    +	CLICK: 'click',
    +
    +	/**
    +	 * Variable: SCALE
    +	 *
    +	 * Specifies the event name for scale.
    +	 */
    +	SCALE: 'scale',
    +
    +	/**
    +	 * Variable: TRANSLATE
    +	 *
    +	 * Specifies the event name for translate.
    +	 */
    +	TRANSLATE: 'translate',
    +
    +	/**
    +	 * Variable: SCALE_AND_TRANSLATE
    +	 *
    +	 * Specifies the event name for scaleAndTranslate.
    +	 */
    +	SCALE_AND_TRANSLATE: 'scaleAndTranslate',
    +
    +	/**
    +	 * Variable: UP
    +	 *
    +	 * Specifies the event name for up.
    +	 */
    +	UP: 'up',
    +
    +	/**
    +	 * Variable: DOWN
    +	 *
    +	 * Specifies the event name for down.
    +	 */
    +	DOWN: 'down',
    +
    +	/**
    +	 * Variable: ADD
    +	 *
    +	 * Specifies the event name for add.
    +	 */
    +	ADD: 'add',
    +
    +	/**
    +	 * Variable: CLEAR
    +	 *
    +	 * Specifies the event name for clear.
    +	 */
    +	CLEAR: 'clear',
    +
    +	/**
    +	 * Variable: ADD_CELLS
    +	 *
    +	 * Specifies the event name for addCells.
    +	 */
    +	ADD_CELLS: 'addCells',
    +
    +	/**
    +	 * Variable: CELLS_ADDED
    +	 *
    +	 * Specifies the event name for cellsAdded.
    +	 */
    +	CELLS_ADDED: 'cellsAdded',
    +
    +	/**
    +	 * Variable: MOVE_CELLS
    +	 *
    +	 * Specifies the event name for moveCells.
    +	 */
    +	MOVE_CELLS: 'moveCells',
    +
    +	/**
    +	 * Variable: CELLS_MOVED
    +	 *
    +	 * Specifies the event name for cellsMoved.
    +	 */
    +	CELLS_MOVED: 'cellsMoved',
    +
    +	/**
    +	 * Variable: RESIZE_CELLS
    +	 *
    +	 * Specifies the event name for resizeCells.
    +	 */
    +	RESIZE_CELLS: 'resizeCells',
    +
    +	/**
    +	 * Variable: CELLS_RESIZED
    +	 *
    +	 * Specifies the event name for cellsResized.
    +	 */
    +	CELLS_RESIZED: 'cellsResized',
    +
    +	/**
    +	 * Variable: TOGGLE_CELLS
    +	 *
    +	 * Specifies the event name for toggleCells.
    +	 */
    +	TOGGLE_CELLS: 'toggleCells',
    +
    +	/**
    +	 * Variable: CELLS_TOGGLED
    +	 *
    +	 * Specifies the event name for cellsToggled.
    +	 */
    +	CELLS_TOGGLED: 'cellsToggled',
    +
    +	/**
    +	 * Variable: ORDER_CELLS
    +	 *
    +	 * Specifies the event name for orderCells.
    +	 */
    +	ORDER_CELLS: 'orderCells',
    +
    +	/**
    +	 * Variable: CELLS_ORDERED
    +	 *
    +	 * Specifies the event name for cellsOrdered.
    +	 */
    +	CELLS_ORDERED: 'cellsOrdered',
    +
    +	/**
    +	 * Variable: REMOVE_CELLS
    +	 *
    +	 * Specifies the event name for removeCells.
    +	 */
    +	REMOVE_CELLS: 'removeCells',
    +
    +	/**
    +	 * Variable: CELLS_REMOVED
    +	 *
    +	 * Specifies the event name for cellsRemoved.
    +	 */
    +	CELLS_REMOVED: 'cellsRemoved',
    +
    +	/**
    +	 * Variable: GROUP_CELLS
    +	 *
    +	 * Specifies the event name for groupCells.
    +	 */
    +	GROUP_CELLS: 'groupCells',
    +
    +	/**
    +	 * Variable: UNGROUP_CELLS
    +	 *
    +	 * Specifies the event name for ungroupCells.
    +	 */
    +	UNGROUP_CELLS: 'ungroupCells',
    +
    +	/**
    +	 * Variable: REMOVE_CELLS_FROM_PARENT
    +	 *
    +	 * Specifies the event name for removeCellsFromParent.
    +	 */
    +	REMOVE_CELLS_FROM_PARENT: 'removeCellsFromParent',
    +
    +	/**
    +	 * Variable: FOLD_CELLS
    +	 *
    +	 * Specifies the event name for foldCells.
    +	 */
    +	FOLD_CELLS: 'foldCells',
    +
    +	/**
    +	 * Variable: CELLS_FOLDED
    +	 *
    +	 * Specifies the event name for cellsFolded.
    +	 */
    +	CELLS_FOLDED: 'cellsFolded',
    +
    +	/**
    +	 * Variable: ALIGN_CELLS
    +	 *
    +	 * Specifies the event name for alignCells.
    +	 */
    +	ALIGN_CELLS: 'alignCells',
    +
    +	/**
    +	 * Variable: LABEL_CHANGED
    +	 *
    +	 * Specifies the event name for labelChanged.
    +	 */
    +	LABEL_CHANGED: 'labelChanged',
    +
    +	/**
    +	 * Variable: CONNECT_CELL
    +	 *
    +	 * Specifies the event name for connectCell.
    +	 */
    +	CONNECT_CELL: 'connectCell',
    +
    +	/**
    +	 * Variable: CELL_CONNECTED
    +	 *
    +	 * Specifies the event name for cellConnected.
    +	 */
    +	CELL_CONNECTED: 'cellConnected',
    +
    +	/**
    +	 * Variable: SPLIT_EDGE
    +	 *
    +	 * Specifies the event name for splitEdge.
    +	 */
    +	SPLIT_EDGE: 'splitEdge',
    +
    +	/**
    +	 * Variable: FLIP_EDGE
    +	 *
    +	 * Specifies the event name for flipEdge.
    +	 */
    +	FLIP_EDGE: 'flipEdge',
    +
    +	/**
    +	 * Variable: START_EDITING
    +	 *
    +	 * Specifies the event name for startEditing.
    +	 */
    +	START_EDITING: 'startEditing',
    +
    +	/**
    +	 * Variable: ADD_OVERLAY
    +	 *
    +	 * Specifies the event name for addOverlay.
    +	 */
    +	ADD_OVERLAY: 'addOverlay',
    +
    +	/**
    +	 * Variable: REMOVE_OVERLAY
    +	 *
    +	 * Specifies the event name for removeOverlay.
    +	 */
    +	REMOVE_OVERLAY: 'removeOverlay',
    +
    +	/**
    +	 * Variable: UPDATE_CELL_SIZE
    +	 *
    +	 * Specifies the event name for updateCellSize.
    +	 */
    +	UPDATE_CELL_SIZE: 'updateCellSize',
    +
    +	/**
    +	 * Variable: ESCAPE
    +	 *
    +	 * Specifies the event name for escape.
    +	 */
    +	ESCAPE: 'escape',
    +
    +	/**
    +	 * Variable: CLICK
    +	 *
    +	 * Specifies the event name for click.
    +	 */
    +	CLICK: 'click',
    +
    +	/**
    +	 * Variable: DOUBLE_CLICK
    +	 *
    +	 * Specifies the event name for doubleClick.
    +	 */
    +	DOUBLE_CLICK: 'doubleClick'
    +
    +};
    diff --git a/javascript/src/js/util/mxEventObject.js b/javascript/src/js/util/mxEventObject.js
    new file mode 100644
    index 000000000..cb08a5592
    --- /dev/null
    +++ b/javascript/src/js/util/mxEventObject.js
    @@ -0,0 +1,111 @@
    +/**
    + * $Id: mxEventObject.js,v 1.11 2011-09-09 10:29:05 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxEventObject
    + * 
    + * The mxEventObject is a wrapper for all properties of a single event.
    + * Additionally, it also offers functions to consume the event and check if it
    + * was consumed as follows:
    + * 
    + * (code)
    + * evt.consume();
    + * INV: evt.isConsumed() == true
    + * (end)
    + * 
    + * Constructor: mxEventObject
    + *
    + * Constructs a new event object with the specified name. An optional
    + * sequence of key, value pairs can be appended to define properties.
    + * 
    + * Example:
    + *
    + * (code)
    + * new mxEventObject("eventName", key1, val1, .., keyN, valN)
    + * (end)
    + */
    +function mxEventObject(name)
    +{
    +	this.name = name;
    +	this.properties = [];
    +	
    +	for (var i = 1; i < arguments.length; i += 2)
    +	{
    +		if (arguments[i + 1] != null)
    +		{
    +			this.properties[arguments[i]] = arguments[i + 1];
    +		}
    +	}
    +};
    +
    +/**
    + * Variable: name
    + *
    + * Holds the name.
    + */
    +mxEventObject.prototype.name = null;
    +
    +/**
    + * Variable: properties
    + *
    + * Holds the properties as an associative array.
    + */
    +mxEventObject.prototype.properties = null;
    +
    +/**
    + * Variable: consumed
    + *
    + * Holds the consumed state. Default is false.
    + */
    +mxEventObject.prototype.consumed = false;
    +
    +/**
    + * Function: getName
    + * 
    + * Returns <name>.
    + */
    +mxEventObject.prototype.getName = function()
    +{
    +	return this.name;
    +};
    +
    +/**
    + * Function: getProperties
    + * 
    + * Returns <properties>.
    + */
    +mxEventObject.prototype.getProperties = function()
    +{
    +	return this.properties;
    +};
    +
    +/**
    + * Function: getProperty
    + * 
    + * Returns the property for the given key.
    + */
    +mxEventObject.prototype.getProperty = function(key)
    +{
    +	return this.properties[key];
    +};
    +
    +/**
    + * Function: isConsumed
    + *
    + * Returns true if the event has been consumed.
    + */
    +mxEventObject.prototype.isConsumed = function()
    +{
    +	return this.consumed;
    +};
    +
    +/**
    + * Function: consume
    + *
    + * Consumes the event.
    + */
    +mxEventObject.prototype.consume = function()
    +{
    +	this.consumed = true;
    +};
    diff --git a/javascript/src/js/util/mxEventSource.js b/javascript/src/js/util/mxEventSource.js
    new file mode 100644
    index 000000000..595f5603c
    --- /dev/null
    +++ b/javascript/src/js/util/mxEventSource.js
    @@ -0,0 +1,191 @@
    +/**
    + * $Id: mxEventSource.js,v 1.25 2012-04-16 10:54:20 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxEventSource
    + *
    + * Base class for objects that dispatch named events. To create a subclass that
    + * inherits from mxEventSource, the following code is used.
    + *
    + * (code)
    + * function MyClass() { };
    + *
    + * MyClass.prototype = new mxEventSource();
    + * MyClass.prototype.constructor = MyClass;
    + * (end)
    + *
    + * Known Subclasses:
    + *
    + * <mxGraphModel>, <mxGraph>, <mxGraphView>, <mxEditor>, <mxCellOverlay>,
    + * <mxToolbar>, <mxWindow>
    + * 
    + * Constructor: mxEventSource
    + *
    + * Constructs a new event source.
    + */
    +function mxEventSource(eventSource)
    +{
    +	this.setEventSource(eventSource);
    +};
    +
    +/**
    + * Variable: eventListeners
    + *
    + * Holds the event names and associated listeners in an array. The array
    + * contains the event name followed by the respective listener for each
    + * registered listener.
    + */
    +mxEventSource.prototype.eventListeners = null;
    +
    +/**
    + * Variable: eventsEnabled
    + *
    + * Specifies if events can be fired. Default is true.
    + */
    +mxEventSource.prototype.eventsEnabled = true;
    +
    +/**
    + * Variable: eventSource
    + *
    + * Optional source for events. Default is null.
    + */
    +mxEventSource.prototype.eventSource = null;
    +
    +/**
    + * Function: isEventsEnabled
    + * 
    + * Returns <eventsEnabled>.
    + */
    +mxEventSource.prototype.isEventsEnabled = function()
    +{
    +	return this.eventsEnabled;
    +};
    +
    +/**
    + * Function: setEventsEnabled
    + * 
    + * Sets <eventsEnabled>.
    + */
    +mxEventSource.prototype.setEventsEnabled = function(value)
    +{
    +	this.eventsEnabled = value;
    +};
    +
    +/**
    + * Function: getEventSource
    + * 
    + * Returns <eventSource>.
    + */
    +mxEventSource.prototype.getEventSource = function()
    +{
    +	return this.eventSource;
    +};
    +
    +/**
    + * Function: setEventSource
    + * 
    + * Sets <eventSource>.
    + */
    +mxEventSource.prototype.setEventSource = function(value)
    +{
    +	this.eventSource = value;
    +};
    +
    +/**
    + * Function: addListener
    + *
    + * Binds the specified function to the given event name. If no event name
    + * is given, then the listener is registered for all events.
    + * 
    + * The parameters of the listener are the sender and an <mxEventObject>.
    + */
    +mxEventSource.prototype.addListener = function(name, funct)
    +{
    +	if (this.eventListeners == null)
    +	{
    +		this.eventListeners = [];
    +	}
    +	
    +	this.eventListeners.push(name);
    +	this.eventListeners.push(funct);
    +};
    +
    +/**
    + * Function: removeListener
    + *
    + * Removes all occurrences of the given listener from <eventListeners>.
    + */
    +mxEventSource.prototype.removeListener = function(funct)
    +{
    +	if (this.eventListeners != null)
    +	{
    +		var i = 0;
    +		
    +		while (i < this.eventListeners.length)
    +		{
    +			if (this.eventListeners[i+1] == funct)
    +			{
    +				this.eventListeners.splice(i, 2);
    +			}
    +			else
    +			{
    +				i += 2;
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: fireEvent
    + *
    + * Dispatches the given event to the listeners which are registered for
    + * the event. The sender argument is optional. The current execution scope
    + * ("this") is used for the listener invocation (see <mxUtils.bind>).
    + *
    + * Example:
    + *
    + * (code)
    + * fireEvent(new mxEventObject("eventName", key1, val1, .., keyN, valN))
    + * (end)
    + * 
    + * Parameters:
    + *
    + * evt - <mxEventObject> that represents the event.
    + * sender - Optional sender to be passed to the listener. Default value is
    + * the return value of <getEventSource>.
    + */
    +mxEventSource.prototype.fireEvent = function(evt, sender)
    +{
    +	if (this.eventListeners != null &&
    +		this.isEventsEnabled())
    +	{
    +		if (evt == null)
    +		{
    +			evt = new mxEventObject();
    +		}
    +		
    +		if (sender == null)
    +		{
    +			sender = this.getEventSource();
    +		}
    +
    +		if (sender == null)
    +		{
    +			sender = this;
    +		}
    +
    +		var args = [sender, evt];
    +		
    +		for (var i = 0; i < this.eventListeners.length; i += 2)
    +		{
    +			var listen = this.eventListeners[i];
    +			
    +			if (listen == null ||
    +				listen == evt.getName())
    +			{
    +				this.eventListeners[i+1].apply(this, args);
    +			}
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/util/mxForm.js b/javascript/src/js/util/mxForm.js
    new file mode 100644
    index 000000000..bcee2999d
    --- /dev/null
    +++ b/javascript/src/js/util/mxForm.js
    @@ -0,0 +1,202 @@
    +/**
    + * $Id: mxForm.js,v 1.16 2010-10-08 04:21:45 david Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder, David Benson
    + */
    +/**
    + * Class: mxForm
    + * 
    + * A simple class for creating HTML forms.
    + * 
    + * Constructor: mxForm
    + * 
    + * Creates a HTML table using the specified classname.
    + */
    +function mxForm(className)
    +{
    +	this.table = document.createElement('table');
    +	this.table.className = className;
    +	this.body = document.createElement('tbody');
    +	
    +	this.table.appendChild(this.body);
    +};
    +
    +/**
    + * Variable: table
    + * 
    + * Holds the DOM node that represents the table.
    + */
    +mxForm.prototype.table = null;
    +
    +/**
    + * Variable: body
    + * 
    + * Holds the DOM node that represents the tbody (table body). New rows
    + * can be added to this object using DOM API.
    + */
    +mxForm.prototype.body = false;
    +
    +/**
    + * Function: getTable
    + * 
    + * Returns the table that contains this form.
    + */
    +mxForm.prototype.getTable = function()
    +{
    +	return this.table;
    +};
    +
    +/**
    + * Function: addButtons
    + * 
    + * Helper method to add an OK and Cancel button using the respective
    + * functions.
    + */
    +mxForm.prototype.addButtons = function(okFunct, cancelFunct)
    +{
    +	var tr = document.createElement('tr');
    +	var td = document.createElement('td');
    +	tr.appendChild(td);
    +	td = document.createElement('td');
    +
    +	// Adds the ok button
    +	var button = document.createElement('button');
    +	mxUtils.write(button, mxResources.get('ok') || 'OK');
    +	td.appendChild(button);
    +
    +	mxEvent.addListener(button, 'click', function()
    +	{
    +		okFunct();
    +	});
    +	
    +	// Adds the cancel button
    +	button = document.createElement('button');
    +	mxUtils.write(button, mxResources.get('cancel') || 'Cancel');
    +	td.appendChild(button);
    +	
    +	mxEvent.addListener(button, 'click', function()
    +	{
    +		cancelFunct();
    +	});
    +	
    +	tr.appendChild(td);
    +	this.body.appendChild(tr);
    +};
    +
    +/**
    + * Function: addText
    + * 
    + * Adds a textfield for the given name and value and returns the textfield.
    + */
    +mxForm.prototype.addText = function(name, value)
    +{
    +	var input = document.createElement('input');
    +	
    +	input.setAttribute('type', 'text');
    +	input.value = value;
    +	
    +	return this.addField(name, input);
    +};
    +
    +/**
    + * Function: addCheckbox
    + * 
    + * Adds a checkbox for the given name and value and returns the textfield.
    + */
    +mxForm.prototype.addCheckbox = function(name, value)
    +{
    +	var input = document.createElement('input');
    +	
    +	input.setAttribute('type', 'checkbox');
    +	this.addField(name, input);
    +
    +	// IE can only change the checked value if the input is inside the DOM
    +	if (value)
    +	{
    +		input.checked = true;
    +	}
    +
    +	return input;
    +};
    +
    +/**
    + * Function: addTextarea
    + * 
    + * Adds a textarea for the given name and value and returns the textarea.
    + */
    +mxForm.prototype.addTextarea = function(name, value, rows)
    +{
    +	var input = document.createElement('textarea');
    +	
    +	if (mxClient.IS_NS)
    +	{
    +		rows--;
    +	}
    +	
    +	input.setAttribute('rows', rows || 2);
    +	input.value = value;
    +	
    +	return this.addField(name, input);
    +};
    +
    +/**
    + * Function: addCombo
    + * 
    + * Adds a combo for the given name and returns the combo.
    + */
    +mxForm.prototype.addCombo = function(name, isMultiSelect, size)
    +{
    +	var select = document.createElement('select');
    +	
    +	if (size != null)
    +	{
    +		select.setAttribute('size', size);
    +	}
    +	
    +	if (isMultiSelect)
    +	{
    +		select.setAttribute('multiple', 'true');
    +	}
    +	
    +	return this.addField(name, select);
    +};
    +
    +/**
    + * Function: addOption
    + * 
    + * Adds an option for the given label to the specified combo.
    + */
    +mxForm.prototype.addOption = function(combo, label, value, isSelected)
    +{
    +	var option = document.createElement('option');
    +	
    +	mxUtils.writeln(option, label);
    +	option.setAttribute('value', value);
    +	
    +	if (isSelected)
    +	{
    +		option.setAttribute('selected', isSelected);
    +	}
    +	
    +	combo.appendChild(option);
    +};
    +
    +/**
    + * Function: addField
    + * 
    + * Adds a new row with the name and the input field in two columns and
    + * returns the given input.
    + */
    +mxForm.prototype.addField = function(name, input)
    +{
    +	var tr = document.createElement('tr');
    +	var td = document.createElement('td');
    +	mxUtils.write(td, name);
    +	tr.appendChild(td);
    +	
    +	td = document.createElement('td');
    +	td.appendChild(input);
    +	tr.appendChild(td);
    +	this.body.appendChild(tr);
    +	
    +	return input;
    +};
    diff --git a/javascript/src/js/util/mxGuide.js b/javascript/src/js/util/mxGuide.js
    new file mode 100644
    index 000000000..ab5c26dfd
    --- /dev/null
    +++ b/javascript/src/js/util/mxGuide.js
    @@ -0,0 +1,364 @@
    +/**
    + * $Id: mxGuide.js,v 1.7 2012-04-13 12:53:30 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGuide
    + *
    + * Implements the alignment of selection cells to other cells in the graph.
    + * 
    + * Constructor: mxGuide
    + * 
    + * Constructs a new guide object.
    + */
    +function mxGuide(graph, states)
    +{
    +	this.graph = graph;
    +	this.setStates(states);
    +};
    +
    +/**
    + * Variable: graph
    + *
    + * Reference to the enclosing <mxGraph> instance.
    + */
    +mxGuide.prototype.graph = null;
    +
    +/**
    + * Variable: states
    + * 
    + * Contains the <mxCellStates> that are used for alignment.
    + */
    +mxGuide.prototype.states = null;
    +
    +/**
    + * Variable: horizontal
    + *
    + * Specifies if horizontal guides are enabled. Default is true.
    + */
    +mxGuide.prototype.horizontal = true;
    +
    +/**
    + * Variable: vertical
    + *
    + * Specifies if vertical guides are enabled. Default is true.
    + */
    +mxGuide.prototype.vertical = true;
    +
    +/**
    + * Variable: vertical
    + *
    + * Holds the <mxShape> for the horizontal guide.
    + */
    +mxGuide.prototype.guideX = null;
    +
    +/**
    + * Variable: vertical
    + *
    + * Holds the <mxShape> for the vertical guide.
    + */
    +mxGuide.prototype.guideY = null;
    +
    +/**
    + * Variable: crisp
    + * 
    + * Specifies if theguide should be rendered in crisp mode if applicable.
    + * Default is true.
    + */
    +mxGuide.prototype.crisp = true;
    +
    +/**
    + * Function: setStates
    + * 
    + * Sets the <mxCellStates> that should be used for alignment.
    + */
    +mxGuide.prototype.setStates = function(states)
    +{
    +	this.states = states;
    +};
    +
    +/**
    + * Function: isEnabledForEvent
    + * 
    + * Returns true if the guide should be enabled for the given native event. This
    + * implementation always returns true.
    + */
    +mxGuide.prototype.isEnabledForEvent = function(evt)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: getGuideTolerance
    + * 
    + * Returns the tolerance for the guides. Default value is
    + * gridSize * scale / 2.
    + */
    +mxGuide.prototype.getGuideTolerance = function()
    +{
    +	return this.graph.gridSize * this.graph.view.scale / 2;
    +};
    +
    +/**
    + * Function: createGuideShape
    + * 
    + * Returns the mxShape to be used for painting the respective guide. This
    + * implementation returns a new, dashed and crisp <mxPolyline> using
    + * <mxConstants.GUIDE_COLOR> and <mxConstants.GUIDE_STROKEWIDTH> as the format.
    + * 
    + * Parameters:
    + * 
    + * horizontal - Boolean that specifies which guide should be created.
    + */
    +mxGuide.prototype.createGuideShape = function(horizontal)
    +{
    +	var guide = new mxPolyline([], mxConstants.GUIDE_COLOR, mxConstants.GUIDE_STROKEWIDTH);
    +	guide.crisp = this.crisp;
    +	guide.isDashed = true;
    +	
    +	return guide;
    +};
    +
    +/**
    + * Function: move
    + * 
    + * Moves the <bounds> by the given <mxPoint> and returnt the snapped point.
    + */
    +mxGuide.prototype.move = function(bounds, delta, gridEnabled)
    +{
    +	if (this.states != null && (this.horizontal || this.vertical) && bounds != null && delta != null)
    +	{
    +		var trx = this.graph.getView().translate;
    +		var scale = this.graph.getView().scale;
    +		var dx = delta.x;
    +		var dy = delta.y;
    +		
    +		var overrideX = false;
    +		var overrideY = false;
    +		
    +		var tt = this.getGuideTolerance();
    +		var ttX = tt;
    +		var ttY = tt;
    +		
    +		var b = bounds.clone();
    +		b.x += delta.x;
    +		b.y += delta.y;
    +		
    +		var left = b.x;
    +		var right = b.x + b.width;
    +		var center = b.getCenterX();
    +		var top = b.y;
    +		var bottom = b.y + b.height;
    +		var middle =  b.getCenterY();
    +	
    +		// Snaps the left, center and right to the given x-coordinate
    +		function snapX(x)
    +		{
    +			x += this.graph.panDx;
    +			var override = false;
    +			
    +			if (Math.abs(x - center) < ttX)
    +			{
    +				dx = x - bounds.getCenterX();
    +				ttX = Math.abs(x - center);
    +				override = true;
    +			}
    +			else if (Math.abs(x - left) < ttX)
    +			{
    +				dx = x - bounds.x;
    +				ttX = Math.abs(x - left);
    +				override = true;
    +			}
    +			else if (Math.abs(x - right) < ttX)
    +			{
    +				dx = x - bounds.x - bounds.width;
    +				ttX = Math.abs(x - right);
    +				override = true;
    +			}
    +			
    +			if (override)
    +			{
    +				if (this.guideX == null)
    +				{
    +					this.guideX = this.createGuideShape(true);
    +					
    +					// Makes sure to use either VML or SVG shapes in order to implement
    +					// event-transparency on the background area of the rectangle since
    +					// HTML shapes do not let mouseevents through even when transparent
    +					this.guideX.dialect = (this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +						mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +					this.guideX.init(this.graph.getView().getOverlayPane());
    +
    +					if (this.graph.dialect == mxConstants.DIALECT_SVG)
    +					{
    +						this.guideX.node.setAttribute('pointer-events', 'none');
    +						this.guideX.pipe.setAttribute('pointer-events', 'none');
    +					}
    +				}
    +
    +				var c = this.graph.container;
    +				x -= this.graph.panDx;
    +				this.guideX.points = [new mxPoint(x, -this.graph.panDy), new mxPoint(x, c.scrollHeight - 3 - this.graph.panDy)];
    +			}
    +			
    +			overrideX = overrideX || override;
    +		};
    +		
    +		// Snaps the top, middle or bottom to the given y-coordinate
    +		function snapY(y)
    +		{
    +			y += this.graph.panDy;
    +			var override = false;
    +			
    +			if (Math.abs(y - middle) < ttY)
    +			{
    +				dy = y - bounds.getCenterY();
    +				ttY = Math.abs(y -  middle);
    +				override = true;
    +			}
    +			else if (Math.abs(y - top) < ttY)
    +			{
    +				dy = y - bounds.y;
    +				ttY = Math.abs(y - top);
    +				override = true;
    +			}
    +			else if (Math.abs(y - bottom) < ttY)
    +			{
    +				dy = y - bounds.y - bounds.height;
    +				ttY = Math.abs(y - bottom);
    +				override = true;
    +			}
    +			
    +			if (override)
    +			{
    +				if (this.guideY == null)
    +				{
    +					this.guideY = this.createGuideShape(false);
    +					
    +					// Makes sure to use either VML or SVG shapes in order to implement
    +					// event-transparency on the background area of the rectangle since
    +					// HTML shapes do not let mouseevents through even when transparent
    +					this.guideY.dialect = (this.graph.dialect != mxConstants.DIALECT_SVG) ?
    +						mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +					this.guideY.init(this.graph.getView().getOverlayPane());
    +					
    +					if (this.graph.dialect == mxConstants.DIALECT_SVG)
    +					{
    +						this.guideY.node.setAttribute('pointer-events', 'none');
    +						this.guideY.pipe.setAttribute('pointer-events', 'none');
    +					}
    +				}
    +
    +				var c = this.graph.container;
    +				y -= this.graph.panDy;
    +				this.guideY.points = [new mxPoint(-this.graph.panDx, y), new mxPoint(c.scrollWidth - 3 - this.graph.panDx, y)];
    +			}
    +			
    +			overrideY = overrideY || override;
    +		};
    +		
    +		for (var i = 0; i < this.states.length; i++)
    +		{
    +			var state =  this.states[i];
    +			
    +			if (state != null)
    +			{
    +				// Align x
    +				if (this.horizontal)
    +				{
    +					snapX.call(this, state.getCenterX());
    +					snapX.call(this, state.x);
    +					snapX.call(this, state.x + state.width);
    +				}
    +	
    +				// Align y
    +				if (this.vertical)
    +				{
    +					snapY.call(this, state.getCenterY());
    +					snapY.call(this, state.y);
    +					snapY.call(this, state.y + state.height);
    +				}
    +			}
    +		}
    +		
    +		if (!overrideX && this.guideX != null)
    +		{
    +			this.guideX.node.style.visibility = 'hidden';
    +		}
    +		else if (this.guideX != null)
    +		{
    +			this.guideX.node.style.visibility = 'visible';
    +			this.guideX.redraw();
    +		}
    +		
    +		if (!overrideY && this.guideY != null)
    +		{
    +			this.guideY.node.style.visibility = 'hidden';
    +		}
    +		else if (this.guideY != null)
    +		{
    +			this.guideY.node.style.visibility = 'visible';
    +			this.guideY.redraw();
    +		}
    +		
    +		// Moves cells that are off-grid back to the grid on move
    +		if (gridEnabled)
    +		{
    +			if (!overrideX)
    +			{
    +				var tx = bounds.x - (this.graph.snap(bounds.x /
    +					scale - trx.x) + trx.x) * scale;
    +				dx = this.graph.snap(dx / scale) * scale - tx;
    +			}
    +			
    +			if (!overrideY)
    +			{
    +				var ty = bounds.y - (this.graph.snap(bounds.y /
    +					scale - trx.y) + trx.y) * scale;
    +				dy = this.graph.snap(dy / scale) * scale - ty;
    +			}
    +		}
    +		
    +		delta = new mxPoint(dx, dy);
    +	}
    +	
    +	return delta;
    +};
    +
    +/**
    + * Function: hide
    + * 
    + * Hides all current guides.
    + */
    +mxGuide.prototype.hide = function()
    +{
    +	if (this.guideX != null)
    +	{
    +		this.guideX.node.style.visibility = 'hidden';
    +	}
    +	
    +	if (this.guideY != null)
    +	{
    +		this.guideY.node.style.visibility = 'hidden';
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys all resources that this object uses.
    + */
    +mxGuide.prototype.destroy = function()
    +{
    +	if (this.guideX != null)
    +	{
    +		this.guideX.destroy();
    +		this.guideX = null;
    +	}
    +	
    +	if (this.guideY != null)
    +	{
    +		this.guideY.destroy();
    +		this.guideY = null;
    +	}
    +};
    diff --git a/javascript/src/js/util/mxImage.js b/javascript/src/js/util/mxImage.js
    new file mode 100644
    index 000000000..39d1a09ed
    --- /dev/null
    +++ b/javascript/src/js/util/mxImage.js
    @@ -0,0 +1,40 @@
    +/**
    + * $Id: mxImage.js,v 1.7 2010-01-02 09:45:14 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxImage
    + *
    + * Encapsulates the URL, width and height of an image.
    + * 
    + * Constructor: mxImage
    + * 
    + * Constructs a new image.
    + */
    +function mxImage(src, width, height)
    +{
    +	this.src = src;
    +	this.width = width;
    +	this.height = height;
    +};
    +
    +/**
    + * Variable: src
    + *
    + * String that specifies the URL of the image.
    + */
    +mxImage.prototype.src = null;
    +
    +/**
    + * Variable: width
    + *
    + * Integer that specifies the width of the image.
    + */
    +mxImage.prototype.width = null;
    +
    +/**
    + * Variable: height
    + *
    + * Integer that specifies the height of the image.
    + */
    +mxImage.prototype.height = null;
    diff --git a/javascript/src/js/util/mxImageBundle.js b/javascript/src/js/util/mxImageBundle.js
    new file mode 100644
    index 000000000..dc4c2cfd4
    --- /dev/null
    +++ b/javascript/src/js/util/mxImageBundle.js
    @@ -0,0 +1,98 @@
    +/**
    + * $Id: mxImageBundle.js,v 1.3 2011-01-20 19:08:11 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxImageBundle
    + *
    + * Maps from keys to base64 encoded images or file locations. All values must
    + * be URLs or use the format data:image/format followed by a comma and the base64
    + * encoded image data, eg. "data:image/gif,XYZ", where XYZ is the base64 encoded
    + * image data.
    + * 
    + * To add a new image bundle to an existing graph, the following code is used:
    + * 
    + * (code)
    + * var bundle = new mxImageBundle(alt);
    + * bundle.putImage('myImage', 'data:image/gif,R0lGODlhEAAQAMIGAAAAAICAAICAgP' +
    + *   '//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAA' +
    + *   'EAAQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hi' +
    + *   'laSSASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs=', fallback);
    + * graph.addImageBundle(bundle);
    + * (end);
    + * 
    + * Alt is an optional boolean (default is false) that specifies if the value
    + * or the fallback should be returned in <getImage>.
    + * 
    + * The image can then be referenced in any cell style using image=myImage.
    + * If you are using mxOutline, you should use the same image bundles in the
    + * graph that renders the outline.
    + * 
    + * The keys for images are resolved in <mxGraph.postProcessCellStyle> and
    + * turned into a data URI if the returned value has a short data URI format
    + * as specified above.
    + * 
    + * A typical value for the fallback is a MTHML link as defined in RFC 2557.
    + * Note that this format requires a file to be dynamically created on the
    + * server-side, or the page that contains the graph to be modified to contain
    + * the resources, this can be done by adding a comment that contains the
    + * resource in the HEAD section of the page after the title tag.
    + * 
    + * This type of fallback mechanism should be used in IE6 and IE7. IE8 does
    + * support data URIs, but the maximum size is limited to 32 KB, which means
    + * all data URIs should be limited to 32 KB.
    + */
    +function mxImageBundle(alt)
    +{
    +	this.images = [];
    +	this.alt = (alt != null) ? alt : false;
    +};
    +
    +/**
    + * Variable: images
    + * 
    + * Maps from keys to images.
    + */
    +mxImageBundle.prototype.images = null;
    +
    +/**
    + * Variable: alt
    + * 
    + * Specifies if the fallback representation should be returned.
    + */
    +mxImageBundle.prototype.images = null;
    +
    +/**
    + * Function: putImage
    + * 
    + * Adds the specified entry to the map. The entry is an object with a value and
    + * fallback property as specified in the arguments.
    + */
    +mxImageBundle.prototype.putImage = function(key, value, fallback)
    +{
    +	this.images[key] = {value: value, fallback: fallback};
    +};
    +
    +/**
    + * Function: getImage
    + * 
    + * Returns the value for the given key. This returns the value
    + * or fallback, depending on <alt>. The fallback is returned if
    + * <alt> is true, the value is returned otherwise.
    + */
    +mxImageBundle.prototype.getImage = function(key)
    +{
    +	var result = null;
    +	
    +	if (key != null)
    +	{
    +		var img = this.images[key];
    +		
    +		if (img != null)
    +		{
    +			result = (this.alt) ? img.fallback : img.value;
    +		}
    +	}
    +	
    +	return result;
    +};
    diff --git a/javascript/src/js/util/mxImageExport.js b/javascript/src/js/util/mxImageExport.js
    new file mode 100644
    index 000000000..71d05c4f6
    --- /dev/null
    +++ b/javascript/src/js/util/mxImageExport.js
    @@ -0,0 +1,1381 @@
    +/**
    + * $Id: mxImageExport.js,v 1.43 2012-05-14 08:01:54 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxImageExport
    + * 
    + * Creates a new image export instance to be used with an export canvas. Here
    + * is an example that uses this class to create an image via a backend using
    + * <mxXmlExportCanvas>.
    + * 
    + * (code)
    + * var xmlDoc = mxUtils.createXmlDocument();
    + * var root = xmlDoc.createElement('output');
    + * xmlDoc.appendChild(root);
    + * 
    + * var xmlCanvas = new mxXmlCanvas2D(root);
    + * var imgExport = new mxImageExport();
    + * imgExport.drawState(graph.getView().getState(graph.model.root), xmlCanvas);
    + * 
    + * var bounds = graph.getGraphBounds();
    + * var w = Math.ceil(bounds.x + bounds.width);
    + * var h = Math.ceil(bounds.y + bounds.height);
    + * 
    + * var xml = mxUtils.getXml(root);
    + * new mxXmlRequest('export', 'format=png&w=' + w +
    + * 		'&h=' + h + '&bg=#F9F7ED&xml=' + encodeURIComponent(xml))
    + * 		.simulate(document, '_blank');
    + * (end)
    + * 
    + * Constructor: mxImageExport
    + * 
    + * Constructs a new image export.
    + */
    +function mxImageExport()
    +{
    +	this.initShapes();
    +	this.initMarkers();
    +};
    +
    +/**
    + * Variable: includeOverlays
    + * 
    + * Specifies if overlays should be included in the export. Default is false.
    + */
    +mxImageExport.prototype.includeOverlays = false;
    +
    +/**
    + * Variable: glassSize
    + * 
    + * Reference to the thread while the animation is running.
    + */
    +mxImageExport.prototype.glassSize = 0.4;
    +
    +/**
    + * Variable: shapes
    + * 
    + * Holds implementations for the built-in shapes.
    + */
    +mxImageExport.prototype.shapes = null;
    +
    +/**
    + * Variable: markers
    + * 
    + * Holds implementations for the built-in markers.
    + */
    +mxImageExport.prototype.markers = null;
    +
    +/**
    + * Function: drawState
    + * 
    + * Draws the given state and all its descendants to the given canvas.
    + */
    +mxImageExport.prototype.drawState = function(state, canvas)
    +{
    +	if (state != null)
    +	{
    +		if (state.shape != null)
    +		{
    +			var shape = (state.shape.stencil != null) ?
    +				state.shape.stencil :
    +				this.shapes[state.style[mxConstants.STYLE_SHAPE]];
    +
    +			if (shape == null)
    +			{
    +				// Checks if there is a custom shape
    +				if (typeof(state.shape.redrawPath) == 'function')
    +				{
    +					shape = this.createShape(state, canvas);
    +				}
    +				// Uses a rectangle for all vertices where no shape can be found
    +				else if (state.view.graph.getModel().isVertex(state.cell))
    +				{
    +					shape = this.shapes['rectangle'];
    +				}
    +			}
    +			
    +			if (shape != null)
    +			{
    +				this.drawShape(state, canvas, shape);
    +
    +				if (this.includeOverlays)
    +				{
    +					this.drawOverlays(state, canvas);
    +				}
    +			}
    +		}
    +		
    +		var graph = state.view.graph;
    +		var childCount = graph.model.getChildCount(state.cell);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var childState = graph.view.getState(graph.model.getChildAt(state.cell, i));
    +			this.drawState(childState, canvas);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createShape
    + * 
    + * Creates a shape wrapper for the custom shape in the given cell state and
    + * links its output to the given canvas.
    + */
    +mxImageExport.prototype.createShape = function(state, canvas)
    +{
    +	return {
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			var path =
    +			{
    +				translate: new mxPoint(bounds.x, bounds.y),
    +				moveTo: function(x, y)
    +				{
    +					canvas.moveTo(this.translate.x + x, this.translate.y + y);
    +				},
    +				lineTo: function(x, y)
    +				{
    +					canvas.lineTo(this.translate.x + x, this.translate.y + y);
    +				},
    +				quadTo: function(x1, y1, x, y)
    +				{
    +					canvas.quadTo(this.translate.x + x1, this.translate.y + y1, this.translate.x + x, this.translate.y + y);
    +				},
    +				curveTo: function(x1, y1, x2, y2, x, y)
    +				{
    +					canvas.curveTo(this.translate.x + x1, this.translate.y + y1, this.translate.x + x2, this.translate.y + y2, this.translate.x + x, this.translate.y + y);
    +				},
    +				end: function()
    +				{
    +					// do nothing
    +				},
    +				close: function()
    +				{
    +					canvas.close();
    +				}
    +			};
    +			
    +			if (!background)
    +			{
    +				canvas.fillAndStroke();
    +			}
    +			
    +			// LATER: Remove empty path if shape does not implement foreground, add shadow/clipping
    +			canvas.begin();
    +			state.shape.redrawPath.call(state.shape, path, bounds.x, bounds.y, bounds.width, bounds.height, !background);
    +			
    +			if (!background)
    +			{
    +				canvas.fillAndStroke();
    +			}
    +			
    +			return true;
    +		}
    +	};
    +};
    +
    +/**
    + * Function: drawOverlays
    + * 
    + * Draws the overlays for the given state.
    + */
    +mxImageExport.prototype.drawOverlays = function(state, canvas)
    +{
    +	if (state.overlays != null)
    +	{
    +		for (var i = 0; i < state.overlays.length; i++)
    +		{
    +			if (state.overlays[i].bounds != null)
    +			{
    +				var bounds = state.overlays[i].bounds;
    +				canvas.image(bounds.x, bounds.y, bounds.width, bounds.height, state.overlays[i].image);
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: drawShape
    + * 
    + * Draws the given state to the given canvas.
    + */
    +mxImageExport.prototype.drawShape = function(state, canvas, shape)
    +{
    +	var rotation = mxUtils.getNumber(state.style, mxConstants.STYLE_ROTATION, 0);
    +	var direction = mxUtils.getValue(state.style, mxConstants.STYLE_DIRECTION, null);
    +
    +	// Default direction is east (ignored if rotation exists)
    +	if (direction != null)
    +	{
    +		if (direction == 'north')
    +		{
    +			rotation += 270;
    +		}
    +		else if (direction == 'west')
    +		{
    +			rotation += 180;
    +		}
    +		else if (direction == 'south')
    +		{
    +			rotation += 90;
    +		}
    +	}
    +
    +	// New styles for shape flipping the stencil
    +	var flipH = state.style[mxConstants.STYLE_STENCIL_FLIPH];
    +	var flipV = state.style[mxConstants.STYLE_STENCIL_FLIPV];
    +	
    +	if (flipH && flipV)
    +	{
    +		rotation += 180;
    +		flipH = false;
    +		flipV = false;
    +	}
    +
    +	// Saves the global state for each cell
    +	canvas.save();
    +
    +	// Adds rotation and horizontal/vertical flipping
    +	// FIXME: Rotation and stencil flip only supported for stencil shapes
    +	rotation = rotation % 360;
    +
    +	if (rotation != 0 || flipH || flipV)
    +	{
    +		canvas.rotate(rotation, flipH, flipV, state.getCenterX(), state.getCenterY());
    +	}
    +
    +	// Note: Overwritten in mxStencil.paintShape (can depend on aspect)
    +	var scale = state.view.scale;
    +	var sw = mxUtils.getNumber(state.style, mxConstants.STYLE_STROKEWIDTH, 1) * scale;
    +	canvas.setStrokeWidth(sw);
    +
    +	var sw2 = sw / 2;
    +	var bg = this.getBackgroundBounds(state);
    +	
    +	// Stencils will rotate the bounds as required
    +	if (state.shape.stencil == null && (direction == 'south' || direction == 'north'))
    +	{
    +		var dx = (bg.width - bg.height) / 2;
    +		bg.x += dx;
    +		bg.y += -dx;
    +		var tmp = bg.width;
    +		bg.width = bg.height;
    +		bg.height = tmp;
    +	}
    +	
    +	var bb = new mxRectangle(bg.x - sw2, bg.y - sw2, bg.width + sw, bg.height + sw);
    +	var alpha = mxUtils.getValue(state.style, mxConstants.STYLE_OPACITY, 100) / 100;
    +
    +	var shp = state.style[mxConstants.STYLE_SHAPE];
    +	var imageShape = shp == mxConstants.SHAPE_IMAGE;
    +	var gradientColor = (imageShape) ? null : mxUtils.getValue(state.style, mxConstants.STYLE_GRADIENTCOLOR);
    +	
    +	// Converts colors with special keyword none to null
    +	if (gradientColor == mxConstants.NONE)
    +	{
    +		gradientColor = null;
    +	}
    +
    +	var fcKey = (imageShape) ? mxConstants.STYLE_IMAGE_BACKGROUND : mxConstants.STYLE_FILLCOLOR; 
    +	var fillColor = mxUtils.getValue(state.style, fcKey, null);
    +	
    +	if (fillColor == mxConstants.NONE)
    +	{
    +		fillColor = null;
    +	}
    +
    +	var scKey = (imageShape) ? mxConstants.STYLE_IMAGE_BORDER : mxConstants.STYLE_STROKECOLOR; 
    +	var strokeColor = mxUtils.getValue(state.style, scKey, null);
    +	
    +	if (strokeColor == mxConstants.NONE)
    +	{
    +		strokeColor = null;
    +	}
    +
    +	var glass = (fillColor != null && (shp == mxConstants.SHAPE_LABEL || shp == mxConstants.SHAPE_RECTANGLE));
    +	
    +	// Draws the shadow if the fillColor is not transparent
    +	if (mxUtils.getValue(state.style, mxConstants.STYLE_SHADOW, false))
    +	{
    +		this.drawShadow(canvas, state, shape, rotation, flipH, flipV, bg, alpha, fillColor != null);
    +	}
    +	
    +	canvas.setAlpha(alpha);
    +	
    +	// Sets the dashed state
    +	if (mxUtils.getValue(state.style, mxConstants.STYLE_DASHED, '0') == '1')
    +	{
    +		canvas.setDashed(true);
    +		
    +		// Supports custom dash patterns
    +		var dash = state.style['dashPattern'];
    +		
    +		if (dash != null)
    +		{
    +			canvas.setDashPattern(dash);
    +		}
    +	}
    +
    +	// Draws background and foreground
    +	if (strokeColor != null || fillColor != null)
    +	{
    +		if (strokeColor != null)
    +		{
    +			canvas.setStrokeColor(strokeColor);
    +		}
    +		
    +		if (fillColor != null)
    +		{
    +			if (gradientColor != null && gradientColor != 'transparent')
    +			{
    +				canvas.setGradient(fillColor, gradientColor, bg.x, bg.y, bg.width, bg.height, direction);
    +			}
    +			else 
    +			{
    +				canvas.setFillColor(fillColor);
    +			}
    +		}
    +		
    +		// Draws background and foreground of shape
    +		glass = shape.drawShape(canvas, state, bg, true, false) && glass;
    +		shape.drawShape(canvas, state, bg, false, false);
    +	}
    +
    +	// Draws the glass effect
    +	// Requires background in generic shape for clipping
    +	if (glass && mxUtils.getValue(state.style, mxConstants.STYLE_GLASS, 0) == 1)
    +	{
    +		this.drawGlass(state, canvas, bb, shape, this.glassSize);
    +	}
    +	
    +	// Draws the image (currently disabled for everything but image and label shapes)
    +	if (imageShape || shp == mxConstants.SHAPE_LABEL)
    +	{
    +		var src = state.view.graph.getImage(state);
    +		
    +		if (src != null)
    +		{
    +			var imgBounds = this.getImageBounds(state);
    +			
    +			if (imgBounds != null)
    +			{
    +				this.drawImage(state, canvas, imgBounds, src);
    +			}
    +		}
    +	}
    +
    +	// Restores canvas state
    +	canvas.restore();
    +
    +	// Draws the label (label has separate rotation)
    +	var txt = state.text;
    +	
    +	// Does not use mxCellRenderer.getLabelValue to avoid conversion of HTML entities for VML
    +	var label = state.view.graph.getLabel(state.cell);
    +	
    +	if (txt != null && label != null && label.length > 0)
    +	{
    +		canvas.save();
    +		canvas.setAlpha(mxUtils.getValue(state.style, mxConstants.STYLE_TEXT_OPACITY, 100) / 100);
    +		var bounds = new mxRectangle(txt.boundingBox.x, txt.boundingBox.y, txt.boundingBox.width, txt.boundingBox.height);
    +		var vert = mxUtils.getValue(state.style, mxConstants.STYLE_HORIZONTAL, 1) == 0;
    +		
    +		// Vertical error offset
    +		bounds.y += 2;
    +
    +		if (vert)
    +		{
    +			if (txt.dialect != mxConstants.DIALECT_SVG)
    +			{
    +				var cx = bounds.x + bounds.width / 2;
    +				var cy = bounds.y + bounds.height / 2;
    +				var tmp = bounds.width;
    +				bounds.width = bounds.height;
    +				bounds.height = tmp;
    +				bounds.x = cx - bounds.width / 2;
    +				bounds.y = cy - bounds.height / 2;
    +			}
    +			else if (txt.dialect == mxConstants.DIALECT_SVG)
    +			{
    +				// Workarounds for different label bounding boxes (mostly ignoring rotation).
    +				// LATER: Fix in mxText so that the bounding box is consistent and rotated.
    +				// TODO: Check non-center/middle-aligned vertical labels in VML for IE8.
    +				var b = state.y + state.height;
    +				var cx = bounds.getCenterX() - state.x;
    +				var cy = bounds.getCenterY() - state.y;
    +				
    +				var y = b - cx - bounds.height / 2;
    +				bounds.x = state.x + cy - bounds.width / 2;
    +				bounds.y = y;
    +				//bounds.x -= state.height / 2 - state.width / 2;
    +				//bounds.y -= state.width / 2 - state.height / 2;
    +			}
    +		}
    +		
    +		this.drawLabelBackground(state, canvas, bounds, vert);
    +		this.drawLabel(state, canvas, bounds, vert, label);
    +		canvas.restore();
    +	}
    +};
    +
    +/**
    + * Function: drawGlass
    + * 
    + * Draws the given state to the given canvas.
    + */
    +mxImageExport.prototype.drawShadow = function(canvas, state, shape, rotation, flipH, flipV, bounds, alpha, filled)
    +{
    +	// Requires background in generic shape for shadow, looks like only one
    +	// fillAndStroke is allowed per current path, try working around that
    +	// Computes rotated shadow offset
    +	var rad = rotation * Math.PI / 180;
    +	var cos = Math.cos(-rad);
    +	var sin = Math.sin(-rad);
    +	var offset = mxUtils.getRotatedPoint(new mxPoint(mxConstants.SHADOW_OFFSET_X, mxConstants.SHADOW_OFFSET_Y), cos, sin);
    +	
    +	if (flipH)
    +	{
    +		offset.x *= -1;
    +	}
    +	
    +	if (flipV)
    +	{
    +		offset.y *= -1;
    +	}
    +	
    +	// TODO: Use save/restore instead of negative offset to restore (requires fix for HTML canvas)
    +	canvas.translate(offset.x, offset.y);
    +	
    +	// Returns true if a shadow has been painted (path has been created)
    +	if (shape.drawShape(canvas, state, bounds, true, true))
    +	{
    +		canvas.setAlpha(mxConstants.SHADOW_OPACITY * alpha);
    +		canvas.shadow(mxConstants.SHADOWCOLOR, filled);
    +	}
    +
    +	canvas.translate(-offset.x, -offset.y);
    +};
    +
    +/**
    + * Function: drawGlass
    + * 
    + * Draws the given state to the given canvas.
    + */
    +mxImageExport.prototype.drawGlass = function(state, canvas, bounds, shape, size)
    +{
    +	// LATER: Clipping region should include stroke
    +	if (shape.drawShape(canvas, state, bounds, true, false))
    +	{
    +		canvas.save();
    +		canvas.clip();
    +		canvas.setGlassGradient(bounds.x, bounds.y, bounds.width, bounds.height);
    +	
    +		canvas.begin();
    +		canvas.moveTo(bounds.x, bounds.y);
    +		canvas.lineTo(bounds.x, (bounds.y + bounds.height * size));
    +		canvas.quadTo((bounds.x + bounds.width * 0.5),
    +				(bounds.y + bounds.height * 0.7), bounds.x + bounds.width,
    +				(bounds.y + bounds.height * size));
    +		canvas.lineTo(bounds.x + bounds.width, bounds.y);
    +		canvas.close();
    +
    +		canvas.fill();
    +		canvas.restore();
    +	}
    +};
    +
    +/**
    + * Function: drawImage
    + * 
    + * Draws the given state to the given canvas.
    + */
    +mxImageExport.prototype.drawImage = function(state, canvas, bounds, image)
    +{
    +	var aspect = mxUtils.getValue(state.style, mxConstants.STYLE_IMAGE_ASPECT, 1) == 1;
    +	var flipH = mxUtils.getValue(state.style, mxConstants.STYLE_IMAGE_FLIPH, 0) == 1;
    +	var flipV = mxUtils.getValue(state.style, mxConstants.STYLE_IMAGE_FLIPV, 0) == 1;
    +	
    +	canvas.image(bounds.x, bounds.y, bounds.width, bounds.height, image, aspect, flipH, flipV);
    +};
    +
    +/**
    + * Function: drawLabelBackground
    + * 
    + * Draws background for the label of the given state to the given canvas.
    + */
    +mxImageExport.prototype.drawLabelBackground = function(state, canvas, bounds, vert)
    +{
    +	var stroke = mxUtils.getValue(state.style, mxConstants.STYLE_LABEL_BORDERCOLOR);
    +	var fill = mxUtils.getValue(state.style, mxConstants.STYLE_LABEL_BACKGROUNDCOLOR);
    +	
    +	if (stroke == mxConstants.NONE)
    +	{
    +		stroke = null;
    +	}
    +	
    +	if (fill == mxConstants.NONE)
    +	{
    +		fill = null;
    +	}
    +	
    +	if (stroke != null || fill != null)
    +	{
    +		var x = bounds.x;
    +		var y = bounds.y - mxUtils.getValue(state.style, mxConstants.STYLE_LABEL_PADDING, 0);
    +		var w = bounds.width;
    +		var h = bounds.height;
    +		
    +		if (vert)
    +		{
    +			x += (w - h) / 2;
    +			y += (h - w) / 2;
    +			var tmp = w;
    +			w = h;
    +			h = tmp;
    +		}
    +		
    +		if (fill != null)
    +		{
    +			canvas.setFillColor(fill);
    +		}
    +		
    +		if (stroke != null)
    +		{
    +			canvas.setStrokeColor(stroke);
    +			canvas.setStrokeWidth(1);
    +			canvas.setDashed(false);
    +		}
    +		
    +		canvas.rect(x, y, w, h);
    +
    +		if (fill != null && stroke != null)
    +		{
    +			canvas.fillAndStroke();
    +		}
    +		else if (fill != null)
    +		{
    +			canvas.fill();
    +		}
    +		else if (stroke != null)
    +		{
    +			canvas.stroke();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: drawLabel
    + * 
    + * Draws the given state to the given canvas.
    + */
    +mxImageExport.prototype.drawLabel = function(state, canvas, bounds, vert, str)
    +{
    +	var scale = state.view.scale;
    +	
    +	// Applies color
    +	canvas.setFontColor(mxUtils.getValue(state.style, mxConstants.STYLE_FONTCOLOR, '#000000'));
    +	
    +	// Applies font settings
    +	canvas.setFontFamily(mxUtils.getValue(state.style, mxConstants.STYLE_FONTFAMILY,
    +			mxConstants.DEFAULT_FONTFAMILY));
    +	canvas.setFontStyle(mxUtils.getValue(state.style, mxConstants.STYLE_FONTSTYLE, 0));
    +	canvas.setFontSize(mxUtils.getValue(state.style, mxConstants.STYLE_FONTSIZE,
    +			mxConstants.DEFAULT_FONTSIZE) * scale);
    +	
    +	var align = mxUtils.getValue(state.style, mxConstants.STYLE_ALIGN, mxConstants.ALIGN_LEFT);
    +	
    +	// Uses null alignment for default values (valign default is 'top' which is fine)
    +	if (align == 'left')
    +	{
    +		align = null;
    +	}
    +		
    +	var y = bounds.y - mxUtils.getValue(state.style, mxConstants.STYLE_LABEL_PADDING, 0);
    +	var wrap = state.view.graph.isWrapping(state.cell);
    +	var html = state.view.graph.isHtmlLabel(state.cell);
    +	
    +	// Replaces linefeeds in HTML markup to match the display output
    +	if (html && mxText.prototype.replaceLinefeeds)
    +	{
    +		str = str.replace(/\n/g, '<br/>');
    +	}
    +	
    +	canvas.text(bounds.x, y, bounds.width, bounds.height, str, align, null, vert, wrap, (html) ? 'html' : '');
    +};
    +
    +/**
    + * Function: getBackgroundBounds
    + * 
    + * Draws the given state to the given canvas.
    + */
    +mxImageExport.prototype.getBackgroundBounds = function(state)
    +{
    +	if (state.style[mxConstants.STYLE_SHAPE] == mxConstants.SHAPE_SWIMLANE)
    +	{
    +		var scale = state.view.scale;
    +		var start = mxUtils.getValue(state.style, mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE) * scale;
    +		var w = state.width;
    +		var h = state.height;
    +		
    +		if (mxUtils.getValue(state.style, mxConstants.STYLE_HORIZONTAL, true))
    +		{
    +			h = start;
    +		}
    +		else
    +		{
    +			w = start;
    +		}
    +		
    +		return new mxRectangle(state.x, state.y, Math.min(state.width, w), Math.min(state.height, h));
    +	}
    +	else
    +	{
    +		return new mxRectangle(state.x, state.y, state.width, state.height);
    +	}
    +};
    +
    +/**
    + * Function: getImageBounds
    + * 
    + * Draws the given state to the given canvas.
    + */
    +mxImageExport.prototype.getImageBounds = function(state)
    +{
    +	var bounds = new mxRectangle(state.x, state.y, state.width, state.height);
    +	var style = state.style;
    +	
    +	if (mxUtils.getValue(style, mxConstants.STYLE_SHAPE) != mxConstants.SHAPE_IMAGE)
    +	{
    +		var imgAlign = mxUtils.getValue(style, mxConstants.STYLE_IMAGE_ALIGN, mxConstants.ALIGN_LEFT);
    +		var imgValign = mxUtils.getValue(style, mxConstants.STYLE_IMAGE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE);
    +		var imgWidth = mxUtils.getValue(style, mxConstants.STYLE_IMAGE_WIDTH, mxConstants.DEFAULT_IMAGESIZE);
    +		var imgHeight = mxUtils.getValue(style, mxConstants.STYLE_IMAGE_HEIGHT, mxConstants.DEFAULT_IMAGESIZE);
    +		var spacing = mxUtils.getValue(style, mxConstants.STYLE_SPACING, 2);
    +
    +		if (imgAlign == mxConstants.ALIGN_CENTER)
    +		{
    +			bounds.x += (bounds.width - imgWidth) / 2;
    +		}
    +		else if (imgAlign == mxConstants.ALIGN_RIGHT)
    +		{
    +			bounds.x += bounds.width - imgWidth - spacing - 2;
    +		}
    +		else
    +		// LEFT
    +		{
    +			bounds.x += spacing + 4;
    +		}
    +	
    +		if (imgValign == mxConstants.ALIGN_TOP)
    +		{
    +			bounds.y += spacing;
    +		}
    +		else if (imgValign == mxConstants.ALIGN_BOTTOM)
    +		{
    +			bounds.y += bounds.height - imgHeight - spacing;
    +		}
    +		else
    +		// MIDDLE
    +		{
    +			bounds.y += (bounds.height - imgHeight) / 2;
    +		}
    +	
    +		bounds.width = imgWidth;
    +		bounds.height = imgHeight;
    +	}
    +	
    +	return bounds;
    +};
    +
    +/**
    + * Function: drawMarker
    + * 
    + * Initializes the built-in shapes.
    + */
    +mxImageExport.prototype.drawMarker = function(canvas, state, source)
    +{
    +	var offset = null;
    +
    +	// Computes the norm and the inverse norm
    +	var pts = state.absolutePoints;
    +	var n = pts.length;
    +	
    +	var p0 = (source) ? pts[1] : pts[n - 2];
    +	var pe = (source) ? pts[0] : pts[n - 1];
    +	
    +	var dx = pe.x - p0.x;
    +	var dy = pe.y - p0.y;
    +
    +	var dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +	
    +	var unitX = dx / dist;
    +	var unitY = dy / dist;
    +
    +	var size = mxUtils.getValue(state.style, (source) ?
    +			mxConstants.STYLE_STARTSIZE :
    +				mxConstants.STYLE_ENDSIZE,
    +				mxConstants.DEFAULT_MARKERSIZE);
    +	
    +	// Allow for stroke width in the end point used and the 
    +	// orthogonal vectors describing the direction of the marker
    +	// TODO: Should get strokewidth from canvas (same for strokecolor)
    +	var sw = mxUtils.getValue(state.style, mxConstants.STYLE_STROKEWIDTH, 1);
    +	
    +	pe = pe.clone();
    +	
    +	var type = mxUtils.getValue(state.style, (source) ?
    +			mxConstants.STYLE_STARTARROW :
    +				mxConstants.STYLE_ENDARROW);
    +	var f = this.markers[type];
    +	
    +	if (f != null)
    +	{
    +		offset = f(canvas, state, type, pe, unitX, unitY, size, source, sw);
    +	}
    +
    +	return offset;
    +};
    +
    +/**
    + * Function: initShapes
    + * 
    + * Initializes the built-in shapes.
    + */
    +mxImageExport.prototype.initShapes = function()
    +{
    +	this.shapes = [];
    +	
    +	// Implements the rectangle and rounded rectangle shape
    +	this.shapes['rectangle'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				// Paints the shape
    +				if (mxUtils.getValue(state.style, mxConstants.STYLE_ROUNDED, false))
    +				{
    +					var f = mxUtils.getValue(state.style, mxConstants.STYLE_ARCSIZE, mxConstants.RECTANGLE_ROUNDING_FACTOR * 100) / 100;
    +					var r = Math.min(bounds.width * f, bounds.height * f);
    +					canvas.roundrect(bounds.x, bounds.y, bounds.width, bounds.height, r, r);
    +				}
    +				else
    +				{
    +					canvas.rect(bounds.x, bounds.y, bounds.width, bounds.height);
    +				}
    +				
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		}
    +	};
    +
    +	// Implements the swimlane shape
    +	this.shapes['swimlane'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				if (mxUtils.getValue(state.style, mxConstants.STYLE_ROUNDED, false))
    +				{
    +					var r = Math.min(bounds.width * mxConstants.RECTANGLE_ROUNDING_FACTOR,
    +							bounds.height * mxConstants.RECTANGLE_ROUNDING_FACTOR);
    +					canvas.roundrect(bounds.x, bounds.y, bounds.width, bounds.height, r, r);
    +				}
    +				else
    +				{
    +					canvas.rect(bounds.x, bounds.y, bounds.width, bounds.height);
    +				}
    +			
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +				var x = state.x;
    +				var y = state.y;
    +				var w = state.width;
    +				var h = state.height;
    +				
    +				if (mxUtils.getValue(state.style, mxConstants.STYLE_HORIZONTAL, 1) == 0)
    +				{
    +					x += bounds.width;
    +					w -= bounds.width;
    +				}
    +				else
    +				{
    +					y += bounds.height;
    +					h -= bounds.height;
    +				}
    +				
    +				canvas.begin();
    +				canvas.moveTo(x, y);
    +				canvas.lineTo(x, y + h);
    +				canvas.lineTo(x + w, y + h);
    +				canvas.lineTo(x + w, y);
    +				canvas.stroke();
    +			}
    +		}
    +	};
    +
    +	this.shapes['image'] = this.shapes['rectangle'];
    +	this.shapes['label'] = this.shapes['rectangle'];
    +
    +	var imageExport = this;
    +	
    +	this.shapes['connector'] =
    +	{
    +		translatePoint: function(points, index, offset)
    +		{
    +			if (offset != null)
    +			{
    +				var pt = points[index].clone();
    +				pt.x += offset.x;
    +				pt.y += offset.y;
    +				points[index] = pt;
    +			}
    +		},
    +			
    +		drawShape: function(canvas, state, bounds, background, shadow)
    +		{
    +			if (background)
    +			{
    +				var rounded = mxUtils.getValue(state.style, mxConstants.STYLE_ROUNDED, false);
    +				var arcSize = mxConstants.LINE_ARCSIZE / 2;
    +				
    +				// Does not draw the markers in the shadow to match the display
    +				canvas.setFillColor((shadow) ? mxConstants.NONE : mxUtils.getValue(state.style, mxConstants.STYLE_STROKECOLOR, "#000000"));
    +				canvas.setDashed(false);
    +				var pts = state.absolutePoints.slice();
    +				this.translatePoint(pts, 0, imageExport.drawMarker(canvas, state, true));
    +				this.translatePoint(pts, pts.length - 1, imageExport.drawMarker(canvas, state, false));
    +				canvas.setDashed(mxUtils.getValue(state.style, mxConstants.STYLE_DASHED, '0') == '1');
    +				
    +				var pt = pts[0];
    +				var pe = pts[pts.length - 1];
    +				canvas.begin();
    +				canvas.moveTo(pt.x, pt.y);
    +				
    +				// Draws the line segments
    +				for (var i = 1; i < pts.length - 1; i++)
    +				{
    +					var tmp = pts[i];
    +					var dx = pt.x - tmp.x;
    +					var dy = pt.y - tmp.y;
    +		
    +					if ((rounded && i < pts.length - 1) && (dx != 0 || dy != 0))
    +					{
    +						// Draws a line from the last point to the current
    +						// point with a spacing of size off the current point
    +						// into direction of the last point
    +						var dist = Math.sqrt(dx * dx + dy * dy);
    +						var nx1 = dx * Math.min(arcSize, dist / 2) / dist;
    +						var ny1 = dy * Math.min(arcSize, dist / 2) / dist;
    +		
    +						var x1 = tmp.x + nx1;
    +						var y1 = tmp.y + ny1;
    +						canvas.lineTo(x1, y1);
    +		
    +						// Draws a curve from the last point to the current
    +						// point with a spacing of size off the current point
    +						// into direction of the next point
    +						var next = pts[i + 1];
    +						dx = next.x - tmp.x;
    +						dy = next.y - tmp.y;
    +		
    +						dist = Math.max(1, Math.sqrt(dx * dx + dy * dy));
    +						var nx2 = dx * Math.min(arcSize, dist / 2) / dist;
    +						var ny2 = dy * Math.min(arcSize, dist / 2) / dist;
    +		
    +						var x2 = tmp.x + nx2;
    +						var y2 = tmp.y + ny2;
    +		
    +						canvas.curveTo(tmp.x, tmp.y, tmp.x, tmp.y, x2, y2);
    +						tmp = new mxPoint(x2, y2);
    +					}
    +					else
    +					{
    +						canvas.lineTo(tmp.x, tmp.y);
    +					}
    +		
    +					pt = tmp;
    +				}
    +		
    +				canvas.lineTo(pe.x, pe.y);
    +				canvas.stroke();
    +				
    +				return true;
    +			}
    +			else
    +			{
    +				// no foreground
    +			}
    +		}
    +	};
    +
    +	this.shapes['arrow'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				// Geometry of arrow
    +				var spacing =  mxConstants.ARROW_SPACING;
    +				var width = mxConstants.ARROW_WIDTH;
    +				var arrow = mxConstants.ARROW_SIZE;
    +
    +				// Base vector (between end points)
    +				var pts = state.absolutePoints;
    +				var p0 = pts[0];
    +				var pe = pts[pts.length - 1];
    +				var dx = pe.x - p0.x;
    +				var dy = pe.y - p0.y;
    +				var dist = Math.sqrt(dx * dx + dy * dy);
    +				var length = dist - 2 * spacing - arrow;
    +				
    +				// Computes the norm and the inverse norm
    +				var nx = dx / dist;
    +				var ny = dy / dist;
    +				var basex = length * nx;
    +				var basey = length * ny;
    +				var floorx = width * ny/3;
    +				var floory = -width * nx/3;
    +				
    +				// Computes points
    +				var p0x = p0.x - floorx / 2 + spacing * nx;
    +				var p0y = p0.y - floory / 2 + spacing * ny;
    +				var p1x = p0x + floorx;
    +				var p1y = p0y + floory;
    +				var p2x = p1x + basex;
    +				var p2y = p1y + basey;
    +				var p3x = p2x + floorx;
    +				var p3y = p2y + floory;
    +				// p4 not necessary
    +				var p5x = p3x - 3 * floorx;
    +				var p5y = p3y - 3 * floory;
    +				
    +				canvas.begin();
    +				canvas.moveTo(p0x, p0y);
    +				canvas.lineTo(p1x, p1y);
    +				canvas.lineTo(p2x, p2y);
    +				canvas.lineTo(p3x, p3y);
    +				canvas.lineTo(pe.x - spacing * nx, pe.y - spacing * ny);
    +				canvas.lineTo(p5x, p5y);
    +				canvas.lineTo(p5x + floorx, p5y + floory);
    +				canvas.close();
    +
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		}
    +	};
    +
    +	this.shapes['cylinder'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				return false;
    +			}
    +			else
    +			{
    +				var x = bounds.x;
    +				var y = bounds.y;
    +				var w = bounds.width;
    +				var h = bounds.height;
    +				var dy = Math.min(mxCylinder.prototype.maxHeight, Math.floor(h / 5));
    +		
    +				canvas.begin();
    +				canvas.moveTo(x, y + dy);
    +				canvas.curveTo(x, y - dy / 3, x + w, y - dy / 3, x + w, y + dy);
    +				canvas.lineTo(x + w, y + h - dy);
    +				canvas.curveTo(x + w, y + h + dy / 3, x, y + h + dy / 3, x, y + h - dy);
    +				canvas.close();
    +				canvas.fillAndStroke();
    +				
    +				canvas.begin();
    +				canvas.moveTo(x, y + dy);
    +				canvas.curveTo(x, y + 2 * dy, x + w, y + 2 * dy, x + w, y + dy);
    +				canvas.stroke();
    +			}
    +		}
    +	};
    +
    +	this.shapes['line'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				return false;
    +			}
    +			else
    +			{
    +				canvas.begin();
    +				
    +				var mid = state.getCenterY();
    +				canvas.moveTo(bounds.x, mid);
    +				canvas.lineTo(bounds.x + bounds.width, mid);
    +
    +				canvas.stroke();
    +			}
    +		}
    +	};
    +
    +	this.shapes['ellipse'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				canvas.ellipse(bounds.x, bounds.y, bounds.width, bounds.height);
    +				
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		}
    +	};
    +
    +	this.shapes['doubleEllipse'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			var x = bounds.x;
    +			var y = bounds.y;
    +			var w = bounds.width;
    +			var h = bounds.height;
    +			
    +			if (background)
    +			{
    +				canvas.ellipse(x, y, w, h);
    +				
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +
    +				var inset = Math.min(4, Math.min(w / 5, h / 5));
    +				x += inset;
    +				y += inset;
    +				w -= 2 * inset;
    +				h -= 2 * inset;
    +				
    +				if (w > 0 && h > 0)
    +				{
    +					canvas.ellipse(x, y, w, h);
    +				}
    +				
    +				canvas.stroke();
    +			}
    +		}
    +	};
    +
    +	this.shapes['triangle'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				var x = bounds.x;
    +				var y = bounds.y;
    +				var w = bounds.width;
    +				var h = bounds.height;
    +				canvas.begin();
    +				canvas.moveTo(x, y);
    +				canvas.lineTo(x + w, y + h / 2);
    +				canvas.lineTo(x, y + h);
    +				canvas.close();
    +				
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		}
    +	};
    +
    +	this.shapes['rhombus'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				var x = bounds.x;
    +				var y = bounds.y;
    +				var w = bounds.width;
    +				var h = bounds.height;
    +				var hw = w / 2;
    +				var hh = h / 2;
    +
    +				canvas.begin();
    +				canvas.moveTo(x + hw, y);
    +				canvas.lineTo(x + w, y + hh);
    +				canvas.lineTo(x + hw, y + h);
    +				canvas.lineTo(x, y + hh);
    +				canvas.close();
    +				
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		}
    +
    +	};
    +
    +	this.shapes['hexagon'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				var x = bounds.x;
    +				var y = bounds.y;
    +				var w = bounds.width;
    +				var h = bounds.height;
    +				
    +				canvas.begin();
    +				canvas.moveTo(x + 0.25 * w, y);
    +				canvas.lineTo(x + 0.75 * w, y);
    +				canvas.lineTo(x + w, y + 0.5 * h);
    +				canvas.lineTo(x + 0.75 * w, y + h);
    +				canvas.lineTo(x + 0.25 * w, y + h);
    +				canvas.lineTo(x, y + 0.5 * h);
    +				canvas.close();
    +				
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		}
    +	};
    +
    +	this.shapes['actor'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				var x = bounds.x;
    +				var y = bounds.y;
    +				var w = bounds.width;
    +				var h = bounds.height;
    +				var width = w * 2 / 6;
    +				
    +				canvas.begin();
    +				canvas.moveTo(x, y + h);
    +				canvas.curveTo(x, y + 3 * h / 5, x, y + 2 * h / 5, x + w / 2, y + 2 * h
    +						/ 5);
    +				canvas.curveTo(x + w / 2 - width, y + 2 * h / 5, x + w / 2 - width, y, x
    +						+ w / 2, y);
    +				canvas.curveTo(x + w / 2 + width, y, x + w / 2 + width, y + 2 * h / 5, x
    +						+ w / 2, y + 2 * h / 5);
    +				canvas.curveTo(x + w, y + 2 * h / 5, x + w, y + 3 * h / 5, x + w, y + h);
    +				canvas.close();
    +				
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		}
    +	};
    +
    +	this.shapes['cloud'] =
    +	{
    +		drawShape: function(canvas, state, bounds, background)
    +		{
    +			if (background)
    +			{
    +				var x = bounds.x;
    +				var y = bounds.y;
    +				var w = bounds.width;
    +				var h = bounds.height;
    +				
    +				canvas.begin();
    +				canvas.moveTo(x + 0.25 * w, y + 0.25 * h);
    +				canvas.curveTo(x + 0.05 * w, y + 0.25 * h, x,
    +						y + 0.5 * h, x + 0.16 * w, y + 0.55 * h);
    +				canvas.curveTo(x, y + 0.66 * h, x + 0.18 * w,
    +						y + 0.9 * h, x + 0.31 * w, y + 0.8 * h);
    +				canvas.curveTo(x + 0.4 * w, y + h, x + 0.7 * w,
    +						y + h, x + 0.8 * w, y + 0.8 * h);
    +				canvas.curveTo(x + w, y + 0.8 * h, x + w,
    +						y + 0.6 * h, x + 0.875 * w, y + 0.5 * h);
    +				canvas.curveTo(x + w, y + 0.3 * h, x + 0.8 * w,
    +						y + 0.1 * h, x + 0.625 * w, y + 0.2 * h);
    +				canvas.curveTo(x + 0.5 * w, y + 0.05 * h,
    +						x + 0.3 * w, y + 0.05 * h,
    +						x + 0.25 * w, y + 0.25 * h);
    +				canvas.close();
    +				
    +				return true;
    +			}
    +			else
    +			{
    +				canvas.fillAndStroke();
    +			}
    +		}
    +	};
    +
    +};
    +
    +/**
    + * Function: initMarkers
    + * 
    + * Initializes the built-in markers.
    + */
    +mxImageExport.prototype.initMarkers = function()
    +{
    +	this.markers = [];
    +
    +	var tmp = function(canvas, state, type, pe, unitX, unitY, size, source, sw)
    +	{
    +		// The angle of the forward facing arrow sides against the x axis is
    +		// 26.565 degrees, 1/sin(26.565) = 2.236 / 2 = 1.118 ( / 2 allows for
    +		// only half the strokewidth is processed ).
    +		var endOffsetX = unitX * sw * 1.118;
    +		var endOffsetY = unitY * sw * 1.118;
    +		
    +		pe.x -= endOffsetX;
    +		pe.y -= endOffsetY;
    +		
    +		unitX = unitX * (size + sw);
    +		unitY = unitY * (size + sw);
    +		
    +		canvas.begin();
    +		canvas.moveTo(pe.x, pe.y);
    +		canvas.lineTo(pe.x - unitX - unitY / 2, pe.y - unitY + unitX / 2);
    +
    +		if (type == mxConstants.ARROW_CLASSIC)
    +		{
    +			canvas.lineTo(pe.x - unitX * 3 / 4, pe.y - unitY * 3 / 4);
    +		}
    +
    +		canvas.lineTo(pe.x + unitY / 2 - unitX, pe.y - unitY - unitX / 2);
    +		canvas.close();
    +
    +		var key = (source) ? mxConstants.STYLE_STARTFILL : mxConstants.STYLE_ENDFILL;
    +		
    +		if (state.style[key] == 0)
    +		{
    +			canvas.stroke();
    +		}
    +		else
    +		{
    +			canvas.fillAndStroke();
    +		}
    +
    +		var f = (type != mxConstants.ARROW_CLASSIC) ? 1 : 3 / 4;
    +		return new mxPoint(-unitX * f - endOffsetX, -unitY * f - endOffsetY);
    +	};
    +
    +	this.markers['classic'] = tmp;
    +	this.markers['block'] = tmp;
    +
    +	this.markers['open'] = function(canvas, state, type, pe, unitX, unitY, size, source, sw)
    +	{
    +		// The angle of the forward facing arrow sides against the x axis is
    +		// 26.565 degrees, 1/sin(26.565) = 2.236 / 2 = 1.118 ( / 2 allows for
    +		// only half the strokewidth is processed ).
    +		var endOffsetX = unitX * sw * 1.118;
    +		var endOffsetY = unitY * sw * 1.118;
    +		
    +		pe.x -= endOffsetX;
    +		pe.y -= endOffsetY;
    +		
    +		unitX = unitX * (size + sw);
    +		unitY = unitY * (size + sw);
    +
    +		canvas.begin();
    +		canvas.moveTo(pe.x - unitX - unitY / 2, pe.y - unitY + unitX / 2);
    +		canvas.lineTo(pe.x, pe.y);
    +		canvas.lineTo(pe.x + unitY / 2 - unitX, pe.y - unitY - unitX / 2);
    +		canvas.stroke();
    +		
    +		return new mxPoint(-endOffsetX * 2, -endOffsetY * 2);
    +	};
    +
    +	this.markers['oval'] = function(canvas, state, type, pe, unitX, unitY, size, source, sw)
    +	{
    +		var a = size / 2;
    +		
    +		canvas.ellipse(pe.x - a, pe.y - a, size, size);
    +		
    +		var key = (source) ? mxConstants.STYLE_STARTFILL : mxConstants.STYLE_ENDFILL;
    +		
    +		if (state.style[key] == 0)
    +		{
    +			canvas.stroke();
    +		}
    +		else
    +		{
    +			canvas.fillAndStroke();
    +		}
    +		
    +		return new mxPoint(-unitX / 2, -unitY / 2);
    +	};
    +
    +	var tmp_diamond = function(canvas, state, type, pe, unitX, unitY, size, source, sw)
    +	{
    +		// The angle of the forward facing arrow sides against the x axis is
    +		// 45 degrees, 1/sin(45) = 1.4142 / 2 = 0.7071 ( / 2 allows for
    +		// only half the strokewidth is processed ). Or 0.9862 for thin diamond.
    +		// Note these values and the tk variable below are dependent, update
    +		// both together (saves trig hard coding it).
    +		var swFactor = (type == mxConstants.ARROW_DIAMOND) ?  0.7071 : 0.9862;
    +		var endOffsetX = unitX * sw * swFactor;
    +		var endOffsetY = unitY * sw * swFactor;
    +		
    +		unitX = unitX * (size + sw);
    +		unitY = unitY * (size + sw);
    +		
    +		pe.x -= endOffsetX;
    +		pe.y -= endOffsetY;
    +		
    +		// thickness factor for diamond
    +		var tk = ((type == mxConstants.ARROW_DIAMOND) ?  2 : 3.4);
    +		
    +		canvas.begin();
    +		canvas.moveTo(pe.x, pe.y);
    +		canvas.lineTo(pe.x - unitX / 2 - unitY / tk, pe.y + unitX / tk - unitY / 2);
    +		canvas.lineTo(pe.x - unitX, pe.y - unitY);
    +		canvas.lineTo(pe.x - unitX / 2 + unitY / tk, pe.y - unitY / 2 - unitX / tk);
    +		canvas.close();
    +
    +		var key = (source) ? mxConstants.STYLE_STARTFILL : mxConstants.STYLE_ENDFILL;
    +		
    +		if (state.style[key] == 0)
    +		{
    +			canvas.stroke();
    +		}
    +		else
    +		{
    +			canvas.fillAndStroke();
    +		}
    +		
    +		return new mxPoint(-endOffsetX - unitX, -endOffsetY - unitY);
    +	};
    +
    +	this.markers['diamond'] = tmp_diamond;
    +	this.markers['diamondThin'] = tmp_diamond;
    +};
    diff --git a/javascript/src/js/util/mxLog.js b/javascript/src/js/util/mxLog.js
    new file mode 100644
    index 000000000..b71d1b3e7
    --- /dev/null
    +++ b/javascript/src/js/util/mxLog.js
    @@ -0,0 +1,399 @@
    +/**
    + * $Id: mxLog.js,v 1.31 2011-07-29 08:15:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxLog =
    +{
    +	/**
    +	 * Class: mxLog
    +	 * 
    +	 * A singleton class that implements a simple console.
    +	 * 
    +	 * Variable: consoleName
    +	 * 
    +	 * Specifies the name of the console window. Default is 'Console'.
    +	 */
    +	consoleName: 'Console',
    +	
    +	/**
    +	 * Variable: TRACE
    +	 * 
    +	 * Specified if the output for <enter> and <leave> should be visible in the
    +	 * console. Default is false.
    +	 */
    +	TRACE: false,
    +
    +	/**
    +	 * Variable: DEBUG
    +	 * 
    +	 * Specifies if the output for <debug> should be visible in the console.
    +	 * Default is true.
    +	 */
    +	DEBUG: true,
    +
    +	/**
    +	 * Variable: WARN
    +	 * 
    +	 * Specifies if the output for <warn> should be visible in the console.
    +	 * Default is true.
    +	 */
    +	WARN: true,
    +
    +	/**
    +	 * Variable: buffer
    +	 * 
    +	 * Buffer for pre-initialized content.
    +	 */
    +	buffer: '',
    +	
    +	/**
    +	 * Function: init
    +	 *
    +	 * Initializes the DOM node for the console. This requires document.body to
    +	 * point to a non-null value. This is called from within <setVisible> if the
    +	 * log has not yet been initialized.
    +	 */
    +	init: function()
    +	{
    +		if (mxLog.window == null && document.body != null)
    +		{
    +			var title = mxLog.consoleName + ' - mxGraph ' + mxClient.VERSION;
    +
    +			// Creates a table that maintains the layout
    +			var table = document.createElement('table');
    +			table.setAttribute('width', '100%');
    +			table.setAttribute('height', '100%');
    +
    +			var tbody = document.createElement('tbody');
    +			var tr = document.createElement('tr');
    +			var td = document.createElement('td');
    +			td.style.verticalAlign = 'top';
    +				
    +			// Adds the actual console as a textarea
    +			mxLog.textarea = document.createElement('textarea');
    +			mxLog.textarea.setAttribute('readOnly', 'true');
    +			mxLog.textarea.style.height = '100%';
    +			mxLog.textarea.style.resize = 'none';
    +			mxLog.textarea.value = mxLog.buffer;
    +
    +			// Workaround for wrong width in standards mode
    +			if (mxClient.IS_NS && document.compatMode != 'BackCompat')
    +			{
    +				mxLog.textarea.style.width = '99%';
    +			}
    +			else
    +			{
    +				mxLog.textarea.style.width = '100%';
    +			}
    +			
    +			td.appendChild(mxLog.textarea);
    +			tr.appendChild(td);
    +			tbody.appendChild(tr);
    +
    +			// Creates the container div
    +			tr = document.createElement('tr');
    +			mxLog.td = document.createElement('td');
    +			mxLog.td.style.verticalAlign = 'top';
    +			mxLog.td.setAttribute('height', '30px');
    +			
    +			tr.appendChild(mxLog.td);
    +			tbody.appendChild(tr);
    +			table.appendChild(tbody);
    +
    +			// Adds various debugging buttons
    +			mxLog.addButton('Info', function (evt)
    +			{
    +				mxLog.info();
    +			});
    +		
    +			mxLog.addButton('DOM', function (evt)
    +			{
    +				var content = mxUtils.getInnerHtml(document.body);
    +				mxLog.debug(content);
    +			});
    +	
    +			mxLog.addButton('Trace', function (evt)
    +			{
    +				mxLog.TRACE = !mxLog.TRACE;
    +				
    +				if (mxLog.TRACE)
    +				{
    +					mxLog.debug('Tracing enabled');
    +				}
    +				else
    +				{
    +					mxLog.debug('Tracing disabled');
    +				}
    +			});	
    +
    +			mxLog.addButton('Copy', function (evt)
    +			{
    +				try
    +				{
    +					mxUtils.copy(mxLog.textarea.value);
    +				}
    +				catch (err)
    +				{
    +					mxUtils.alert(err);
    +				}
    +			});			
    +
    +			mxLog.addButton('Show', function (evt)
    +			{
    +				try
    +				{
    +					mxUtils.popup(mxLog.textarea.value);
    +				}
    +				catch (err)
    +				{
    +					mxUtils.alert(err);
    +				}
    +			});	
    +			
    +			mxLog.addButton('Clear', function (evt)
    +			{
    +				mxLog.textarea.value = '';
    +			});
    +
    +			// Workaround for clientHeight in body = 0 if doctype in FF
    +			var h = (document.body.clientHeight || document.documentElement.clientHeight);
    +			var w = document.body.clientWidth;
    +			
    +			mxLog.window = new mxWindow(title, table, Math.max(0, w-320), Math.max(0, h-210), 300, 160);
    +			mxLog.window.setMaximizable(true);
    +			mxLog.window.setScrollable(false);
    +			mxLog.window.setResizable(true);
    +			mxLog.window.setClosable(true);
    +			mxLog.window.destroyOnClose = false;
    +			
    +			// Workaround for ignored textarea height in various setups
    +			if ((mxClient.IS_NS || mxClient.IS_IE) && !mxClient.IS_GC &&
    +				!mxClient.IS_SF && document.compatMode != 'BackCompat')
    +			{
    +				var elt = mxLog.window.getElement();
    +				
    +				var resizeHandler = function(sender, evt)
    +				{
    +					mxLog.textarea.style.height = Math.max(0, elt.offsetHeight - 70)+'px';
    +				}; 
    +				
    +				mxLog.window.addListener(mxEvent.RESIZE_END, resizeHandler);
    +				mxLog.window.addListener(mxEvent.MAXIMIZE, resizeHandler);
    +				mxLog.window.addListener(mxEvent.NORMALIZE, resizeHandler);
    +
    +				mxLog.textarea.style.height = '92px';
    +			}
    +		}
    +	},
    +	
    +	/**
    +	 * Function: info
    +	 * 
    +	 * Writes the current navigator information to the console.
    +	 */
    +	info: function()
    +	{
    +		mxLog.writeln(mxUtils.toString(navigator));
    +	},
    +			
    +	/**
    +	 * Function: addButton
    +	 * 
    +	 * Adds a button to the console using the given label and function.
    +	 */
    +	addButton: function(lab, funct)
    +	{
    +		var button = document.createElement('button');
    +		mxUtils.write(button, lab);
    +		mxEvent.addListener(button, 'click', funct);
    +		mxLog.td.appendChild(button);
    +	},
    +				
    +	/**
    +	 * Function: isVisible
    +	 * 
    +	 * Returns true if the console is visible.
    +	 */
    +	isVisible: function()
    +	{
    +		if (mxLog.window != null)
    +		{
    +			return mxLog.window.isVisible();
    +		}
    +		return false;
    +	},
    +	
    +
    +	/**
    +	 * Function: show
    +	 * 
    +	 * Shows the console.
    +	 */
    +	show: function()
    +	{
    +		mxLog.setVisible(true);
    +	},
    +
    +	/**
    +	 * Function: setVisible
    +	 * 
    +	 * Shows or hides the console.
    +	 */
    +	setVisible: function(visible)
    +	{
    +		if (mxLog.window == null)
    +		{
    +			mxLog.init();
    +		}
    +
    +		if (mxLog.window != null)
    +		{
    +			mxLog.window.setVisible(visible);
    +		}
    +	},
    +
    +	/**
    +	 * Function: enter
    +	 * 
    +	 * Writes the specified string to the console
    +	 * if <TRACE> is true and returns the current 
    +	 * time in milliseconds.
    +	 *
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * mxLog.show();
    +	 * var t0 = mxLog.enter('Hello');
    +	 * // Do something
    +	 * mxLog.leave('World!', t0);
    +	 * (end)
    +	 */
    +	enter: function(string)
    +	{
    +		if (mxLog.TRACE)
    +		{
    +			mxLog.writeln('Entering '+string);
    +			
    +			return new Date().getTime();
    +		}
    +	},
    +
    +	/**
    +	 * Function: leave
    +	 * 
    +	 * Writes the specified string to the console
    +	 * if <TRACE> is true and computes the difference
    +	 * between the current time and t0 in milliseconds.
    +	 * See <enter> for an example.
    +	 */
    +	leave: function(string, t0)
    +	{
    +		if (mxLog.TRACE)
    +		{
    +			var dt = (t0 != 0) ? ' ('+(new Date().getTime() - t0)+' ms)' : '';
    +			mxLog.writeln('Leaving '+string+dt);
    +		}
    +	},
    +	
    +	/**
    +	 * Function: debug
    +	 * 
    +	 * Adds all arguments to the console if <DEBUG> is enabled.
    +	 *
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * mxLog.show();
    +	 * mxLog.debug('Hello, World!');
    +	 * (end)
    +	 */
    +	debug: function()
    +	{
    +		if (mxLog.DEBUG)
    +		{
    +			mxLog.writeln.apply(this, arguments);
    +		}
    +	},
    +	
    +	/**
    +	 * Function: warn
    +	 * 
    +	 * Adds all arguments to the console if <WARN> is enabled.
    +	 *
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * mxLog.show();
    +	 * mxLog.warn('Hello, World!');
    +	 * (end)
    +	 */
    +	warn: function()
    +	{
    +		if (mxLog.WARN)
    +		{
    +			mxLog.writeln.apply(this, arguments);
    +		}
    +	},
    +
    +	/**
    +	 * Function: write
    +	 * 
    +	 * Adds the specified strings to the console.
    +	 */
    +	write: function()
    +	{
    +		var string = '';
    +		
    +		for (var i = 0; i < arguments.length; i++)
    +		{
    +			string += arguments[i];
    +			
    +			if (i < arguments.length - 1)
    +			{
    +				string += ' ';
    +			}
    +		}
    +		
    +		if (mxLog.textarea != null)
    +		{
    +			mxLog.textarea.value = mxLog.textarea.value + string;
    +
    +			// Workaround for no update in Presto 2.5.22 (Opera 10.5)
    +			if (navigator.userAgent.indexOf('Presto/2.5') >= 0)
    +			{
    +				mxLog.textarea.style.visibility = 'hidden';
    +				mxLog.textarea.style.visibility = 'visible';
    +			}
    +			
    +			mxLog.textarea.scrollTop = mxLog.textarea.scrollHeight;
    +		}
    +		else
    +		{
    +			mxLog.buffer += string;
    +		}
    +	},
    +	
    +	/**
    +	 * Function: writeln
    +	 * 
    +	 * Adds the specified strings to the console, appending a linefeed at the
    +	 * end of each string.
    +	 */
    +	writeln: function()
    +	{
    +		var string = '';
    +		
    +		for (var i = 0; i < arguments.length; i++)
    +		{
    +			string += arguments[i];
    +			
    +			if (i < arguments.length - 1)
    +			{
    +				string += ' ';
    +			}
    +		}
    +
    +		mxLog.write(string + '\n');
    +	}
    +	
    +};
    diff --git a/javascript/src/js/util/mxMorphing.js b/javascript/src/js/util/mxMorphing.js
    new file mode 100644
    index 000000000..442143df1
    --- /dev/null
    +++ b/javascript/src/js/util/mxMorphing.js
    @@ -0,0 +1,239 @@
    +/**
    + * $Id: mxMorphing.js,v 1.4 2010-06-03 13:37:07 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + *
    + * Class: mxMorphing
    + * 
    + * Implements animation for morphing cells. Here is an example of
    + * using this class for animating the result of a layout algorithm:
    + * 
    + * (code)
    + * graph.getModel().beginUpdate();
    + * try
    + * {
    + *   var circleLayout = new mxCircleLayout(graph);
    + *   circleLayout.execute(graph.getDefaultParent());
    + * }
    + * finally
    + * {
    + *   var morph = new mxMorphing(graph);
    + *   morph.addListener(mxEvent.DONE, function()
    + *   {
    + *     graph.getModel().endUpdate();
    + *   });
    + *   
    + *   morph.startAnimation();
    + * }
    + * (end)
    + * 
    + * Constructor: mxMorphing
    + * 
    + * Constructs an animation.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + * steps - Optional number of steps in the morphing animation. Default is 6.
    + * ease - Optional easing constant for the animation. Default is 1.5.
    + * delay - Optional delay between the animation steps. Passed to <mxAnimation>.
    + */
    +function mxMorphing(graph, steps, ease, delay)
    +{
    +	mxAnimation.call(this, delay);
    +	this.graph = graph;
    +	this.steps = (steps != null) ? steps : 6;
    +	this.ease = (ease != null) ? ease : 1.5;
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxMorphing.prototype = new mxAnimation();
    +mxMorphing.prototype.constructor = mxMorphing;
    +
    +/**
    + * Variable: graph
    + * 
    + * Specifies the delay between the animation steps. Defaul is 30ms.
    + */
    +mxMorphing.prototype.graph = null;
    +
    +/**
    + * Variable: steps
    + * 
    + * Specifies the maximum number of steps for the morphing.
    + */
    +mxMorphing.prototype.steps = null;
    +
    +/**
    + * Variable: step
    + * 
    + * Contains the current step.
    + */
    +mxMorphing.prototype.step = 0;
    +
    +/**
    + * Variable: ease
    + * 
    + * Ease-off for movement towards the given vector. Larger values are
    + * slower and smoother. Default is 4.
    + */
    +mxMorphing.prototype.ease = null;
    +
    +/**
    + * Variable: cells
    + * 
    + * Optional array of cells to be animated. If this is not specified
    + * then all cells are checked and animated if they have been moved
    + * in the current transaction.
    + */
    +mxMorphing.prototype.cells = null;
    +
    +/**
    + * Function: updateAnimation
    + *
    + * Animation step.
    + */
    +mxMorphing.prototype.updateAnimation = function()
    +{
    +	var move = new mxCellStatePreview(this.graph);
    +
    +	if (this.cells != null)
    +	{
    +		// Animates the given cells individually without recursion
    +		for (var i = 0; i < this.cells.length; i++)
    +		{
    +			this.animateCell(cells[i], move, false);
    +		}
    +	}
    +	else
    +	{
    +		// Animates all changed cells by using recursion to find
    +		// the changed cells but not for the animation itself
    +		this.animateCell(this.graph.getModel().getRoot(), move, true);
    +	}
    +	
    +	this.show(move);
    +	
    +	if (move.isEmpty() ||
    +		this.step++ >= this.steps)
    +	{
    +		this.stopAnimation();
    +	}
    +};
    +
    +/**
    + * Function: show
    + *
    + * Shows the changes in the given <mxCellStatePreview>.
    + */
    +mxMorphing.prototype.show = function(move)
    +{
    +	move.show();
    +};
    +
    +/**
    + * Function: animateCell
    + *
    + * Animates the given cell state using <mxCellStatePreview.moveState>.
    + */
    +mxMorphing.prototype.animateCell = function(cell, move, recurse)
    +{
    +	var state = this.graph.getView().getState(cell);
    +	var delta = null;
    +
    +	if (state != null)
    +	{
    +		// Moves the animated state from where it will be after the model
    +		// change by subtracting the given delta vector from that location
    +		delta = this.getDelta(state);
    +
    +		if (this.graph.getModel().isVertex(cell) &&
    +			(delta.x != 0 || delta.y != 0))
    +		{
    +			var translate = this.graph.view.getTranslate();
    +			var scale = this.graph.view.getScale();
    +			
    +			delta.x += translate.x * scale;
    +			delta.y += translate.y * scale;
    +			
    +			move.moveState(state, -delta.x / this.ease, -delta.y / this.ease);
    +		}
    +	}
    +	
    +	if (recurse && !this.stopRecursion(state, delta))
    +	{
    +		var childCount = this.graph.getModel().getChildCount(cell);
    +
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			this.animateCell(this.graph.getModel().getChildAt(cell, i), move, recurse);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: stopRecursion
    + *
    + * Returns true if the animation should not recursively find more
    + * deltas for children if the given parent state has been animated.
    + */
    +mxMorphing.prototype.stopRecursion = function(state, delta)
    +{
    +	return delta != null && (delta.x != 0 || delta.y != 0);
    +};
    +
    +/**
    + * Function: getDelta
    + *
    + * Returns the vector between the current rendered state and the future
    + * location of the state after the display will be updated.
    + */
    +mxMorphing.prototype.getDelta = function(state)
    +{
    +	var origin = this.getOriginForCell(state.cell);
    +	var translate = this.graph.getView().getTranslate();
    +	var scale = this.graph.getView().getScale();
    +	var current = new mxPoint(
    +		state.x / scale - translate.x,
    +		state.y / scale - translate.y);
    +
    +	return new mxPoint(
    +		(origin.x - current.x) * scale,
    +		(origin.y - current.y) * scale);
    +};
    +
    +/**
    + * Function: getOriginForCell
    + *
    + * Returns the top, left corner of the given cell. TODO: Improve performance
    + * by using caching inside this method as the result per cell never changes
    + * during the lifecycle of this object.
    + */
    +mxMorphing.prototype.getOriginForCell = function(cell)
    +{
    +	var result = null;
    +	
    +	if (cell != null)
    +	{
    +		result = this.getOriginForCell(this.graph.getModel().getParent(cell));
    +		var geo = this.graph.getCellGeometry(cell);
    +		
    +		// TODO: Handle offset, relative geometries etc
    +		if (geo != null)
    +		{
    +			result.x += geo.x;
    +			result.y += geo.y;
    +		}
    +	}
    +	
    +	if (result == null)
    +	{
    +		var t = this.graph.view.getTranslate();
    +		result = new mxPoint(-t.x, -t.y);
    +	}
    +	
    +	return result;
    +};
    diff --git a/javascript/src/js/util/mxMouseEvent.js b/javascript/src/js/util/mxMouseEvent.js
    new file mode 100644
    index 000000000..e161d3a51
    --- /dev/null
    +++ b/javascript/src/js/util/mxMouseEvent.js
    @@ -0,0 +1,241 @@
    +/**
    + * $Id: mxMouseEvent.js,v 1.20 2011-03-02 17:24:39 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxMouseEvent
    + * 
    + * Base class for all mouse events in mxGraph. A listener for this event should
    + * implement the following methods:
    + * 
    + * (code)
    + * graph.addMouseListener(
    + * {
    + *   mouseDown: function(sender, evt)
    + *   {
    + *     mxLog.debug('mouseDown');
    + *   },
    + *   mouseMove: function(sender, evt)
    + *   {
    + *     mxLog.debug('mouseMove');
    + *   },
    + *   mouseUp: function(sender, evt)
    + *   {
    + *     mxLog.debug('mouseUp');
    + *   }
    + * });
    + * (end)
    + * 
    + * Constructor: mxMouseEvent
    + *
    + * Constructs a new event object for the given arguments.
    + * 
    + * Parameters:
    + * 
    + * evt - Native mouse event.
    + * state - Optional <mxCellState> under the mouse.
    + * 
    + */
    +function mxMouseEvent(evt, state)
    +{
    +	this.evt = evt;
    +	this.state = state;
    +};
    +
    +/**
    + * Variable: consumed
    + *
    + * Holds the consumed state of this event.
    + */
    +mxMouseEvent.prototype.consumed = false;
    +
    +/**
    + * Variable: evt
    + *
    + * Holds the inner event object.
    + */
    +mxMouseEvent.prototype.evt = null;
    +
    +/**
    + * Variable: graphX
    + *
    + * Holds the x-coordinate of the event in the graph. This value is set in
    + * <mxGraph.fireMouseEvent>.
    + */
    +mxMouseEvent.prototype.graphX = null;
    +
    +/**
    + * Variable: graphY
    + *
    + * Holds the y-coordinate of the event in the graph. This value is set in
    + * <mxGraph.fireMouseEvent>.
    + */
    +mxMouseEvent.prototype.graphY = null;
    +
    +/**
    + * Variable: state
    + *
    + * Holds the optional <mxCellState> associated with this event.
    + */
    +mxMouseEvent.prototype.state = null;
    +
    +/**
    + * Function: getEvent
    + * 
    + * Returns <evt>.
    + */
    +mxMouseEvent.prototype.getEvent = function()
    +{
    +	return this.evt;
    +};
    +
    +/**
    + * Function: getSource
    + * 
    + * Returns the target DOM element using <mxEvent.getSource> for <evt>.
    + */
    +mxMouseEvent.prototype.getSource = function()
    +{
    +	return mxEvent.getSource(this.evt);
    +};
    +
    +/**
    + * Function: isSource
    + * 
    + * Returns true if the given <mxShape> is the source of <evt>.
    + */
    +mxMouseEvent.prototype.isSource = function(shape)
    +{
    +	if (shape != null)
    +	{
    +		var source = this.getSource();
    +		
    +		while (source != null)
    +		{
    +			if (source == shape.node)
    +			{
    +				return true;
    +			}
    +	
    +			source = source.parentNode;
    +		}
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: getX
    + * 
    + * Returns <evt.clientX>.
    + */
    +mxMouseEvent.prototype.getX = function()
    +{
    +	return mxEvent.getClientX(this.getEvent());
    +};
    +
    +/**
    + * Function: getY
    + * 
    + * Returns <evt.clientY>.
    + */
    +mxMouseEvent.prototype.getY = function()
    +{
    +	return mxEvent.getClientY(this.getEvent());
    +};
    +
    +/**
    + * Function: getGraphX
    + * 
    + * Returns <graphX>.
    + */
    +mxMouseEvent.prototype.getGraphX = function()
    +{
    +	return this.graphX;
    +};
    +
    +/**
    + * Function: getGraphY
    + * 
    + * Returns <graphY>.
    + */
    +mxMouseEvent.prototype.getGraphY = function()
    +{
    +	return this.graphY;
    +};
    +
    +/**
    + * Function: getState
    + * 
    + * Returns <state>.
    + */
    +mxMouseEvent.prototype.getState = function()
    +{
    +	return this.state;
    +};
    +
    +/**
    + * Function: getCell
    + * 
    + * Returns the <mxCell> in <state> is not null.
    + */
    +mxMouseEvent.prototype.getCell = function()
    +{
    +	var state = this.getState();
    +	
    +	if (state != null)
    +	{
    +		return state.cell;
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: isPopupTrigger
    + *
    + * Returns true if the event is a popup trigger.
    + */
    +mxMouseEvent.prototype.isPopupTrigger = function()
    +{
    +	return mxEvent.isPopupTrigger(this.getEvent());
    +};
    +
    +/**
    + * Function: isConsumed
    + *
    + * Returns <consumed>.
    + */
    +mxMouseEvent.prototype.isConsumed = function()
    +{
    +	return this.consumed;
    +};
    +
    +/**
    + * Function: consume
    + *
    + * Sets <consumed> to true and invokes preventDefault on the native event
    + * if such a method is defined. This is used mainly to avoid the cursor from
    + * being changed to a text cursor in Webkit. You can use the preventDefault
    + * flag to disable this functionality.
    + * 
    + * Parameters:
    + * 
    + * preventDefault - Specifies if the native event should be canceled. Default
    + * is true.
    + */
    +mxMouseEvent.prototype.consume = function(preventDefault)
    +{
    +	preventDefault = (preventDefault != null) ? preventDefault : true;
    +	
    +	if (preventDefault && this.evt.preventDefault)
    +	{
    +		this.evt.preventDefault();
    +	}
    +
    +	// Workaround for images being dragged in IE
    +	this.evt.returnValue = false;
    +	
    +	// Sets local consumed state
    +	this.consumed = true;
    +};
    diff --git a/javascript/src/js/util/mxObjectIdentity.js b/javascript/src/js/util/mxObjectIdentity.js
    new file mode 100644
    index 000000000..778a4eaf1
    --- /dev/null
    +++ b/javascript/src/js/util/mxObjectIdentity.js
    @@ -0,0 +1,59 @@
    +/**
    + * $Id: mxObjectIdentity.js,v 1.8 2010-01-02 09:45:14 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxObjectIdentity =
    +{
    +	/**
    +	 * Class: mxObjectIdentity
    +	 * 
    +	 * Identity for JavaScript objects. This is implemented using a simple
    +	 * incremeting counter which is stored in each object under <ID_NAME>.
    +	 * 
    +	 * The identity for an object does not change during its lifecycle.
    +	 * 
    +	 * Variable: FIELD_NAME
    +	 * 
    +	 * Name of the field to be used to store the object ID. Default is
    +	 * '_mxObjectId'.
    +	 */
    +	FIELD_NAME: 'mxObjectId',
    +
    +	/**
    +	 * Variable: counter
    +	 * 
    +	 * Current counter for objects.
    +	 */
    +	counter: 0,
    +
    +	/**
    +	 * Function: get
    +	 * 
    +	 * Returns the object id for the given object.
    +	 */
    +	get: function(obj)
    +	{
    +		if (typeof(obj) == 'object' &&
    +			obj[mxObjectIdentity.FIELD_NAME] == null)
    +		{
    +			var ctor = mxUtils.getFunctionName(obj.constructor);
    +			obj[mxObjectIdentity.FIELD_NAME] = ctor+'#'+mxObjectIdentity.counter++;
    +		}
    +		
    +		return obj[mxObjectIdentity.FIELD_NAME];
    +	},
    +
    +	/**
    +	 * Function: clear
    +	 * 
    +	 * Removes the object id from the given object.
    +	 */
    +	clear: function(obj)
    +	{
    +		if (typeof(obj) == 'object')
    +		{
    +			delete obj[mxObjectIdentity.FIELD_NAME];
    +		}
    +	}
    +
    +};
    diff --git a/javascript/src/js/util/mxPanningManager.js b/javascript/src/js/util/mxPanningManager.js
    new file mode 100644
    index 000000000..4ce793549
    --- /dev/null
    +++ b/javascript/src/js/util/mxPanningManager.js
    @@ -0,0 +1,218 @@
    +/**
    + * $Id: mxPanningManager.js,v 1.4 2012-04-23 18:59:36 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxPanningManager
    + *
    + * Implements a handler for panning.
    + */
    +function mxPanningManager(graph)
    +{
    +	this.thread = null;
    +	this.active = false;
    +	this.tdx = 0;
    +	this.tdy = 0;
    +	this.t0x = 0;
    +	this.t0y = 0;
    +	this.dx = 0;
    +	this.dy = 0;
    +	
    +	this.mouseListener =
    +	{
    +	    mouseDown: function(sender, me) { },
    +	    mouseMove: function(sender, me) { },
    +	    mouseUp: mxUtils.bind(this, function(sender, me)
    +	    {
    +	    	if (this.active)
    +	    	{
    +	    		this.stop();
    +	    	}
    +	    })
    +	};
    +	
    +	graph.addMouseListener(this.mouseListener);
    +	
    +	var createThread = mxUtils.bind(this, function()
    +	{
    +		return window.setInterval(mxUtils.bind(this, function()
    +		{
    +			this.tdx -= this.dx;
    +			this.tdy -= this.dy;
    +			graph.panGraph(this.getDx(), this.getDy());
    +		}), this.delay);
    +	});
    +	
    +	this.isActive = function()
    +	{
    +		return active;
    +	};
    +	
    +	this.getDx = function()
    +	{
    +		return Math.round(this.tdx);
    +	};
    +	
    +	this.getDy = function()
    +	{
    +		return Math.round(this.tdy);
    +	};
    +	
    +	this.start = function()
    +	{
    +		this.t0x = graph.view.translate.x;
    +		this.t0y = graph.view.translate.y;
    +		this.active = true;
    +	};
    +	
    +	this.panTo = function(x, y, w, h)
    +	{
    +		if (!this.active)
    +		{
    +			this.start();
    +		}
    +		
    +		w = (w != null) ? w : 0;
    +		h = (h != null) ? h : 0;
    +		
    +		var c = graph.container;
    +		this.dx = x + w - c.scrollLeft - c.clientWidth;
    +		
    +		if (this.dx < 0 && Math.abs(this.dx) < this.border)
    +		{
    +			this.dx = this.border + this.dx;
    +		}
    +		else if (this.handleMouseOut)
    +		{
    +			this.dx = Math.max(this.dx, 0);
    +		}
    +		else
    +		{
    +			this.dx = 0;
    +		}
    +		
    +		if (this.dx == 0)
    +		{
    +			this.dx = x - c.scrollLeft;
    +			
    +			if (this.dx > 0 && this.dx < this.border)
    +			{
    +				this.dx = this.dx - this.border;
    +			}
    +			else if (this.handleMouseOut)
    +			{
    +				this.dx = Math.min(0, this.dx);
    +			}
    +			else
    +			{
    +				this.dx = 0;
    +			}
    +		}
    +		
    +		this.dy = y + h - c.scrollTop - c.clientHeight;
    +
    +		if (this.dy < 0 && Math.abs(this.dy) < this.border)
    +		{
    +			this.dy = this.border + this.dy;
    +		}
    +		else if (this.handleMouseOut)
    +		{
    +			this.dy = Math.max(this.dy, 0);
    +		}
    +		else
    +		{
    +			this.dy = 0;
    +		}
    +		
    +		if (this.dy == 0)
    +		{
    +			this.dy = y - c.scrollTop;
    +			
    +			if (this.dy > 0 && this.dy < this.border)
    +			{
    +				this.dy = this.dy - this.border;
    +			}
    +			else if (this.handleMouseOut)
    +			{
    +				this.dy = Math.min(0, this.dy);
    +			} 
    +			else
    +			{
    +				this.dy = 0;
    +			}
    +		}
    +		
    +		if (this.dx != 0 || this.dy != 0)
    +		{
    +			this.dx *= this.damper;
    +			this.dy *= this.damper;
    +			
    +			if (this.thread == null)
    +			{
    +				this.thread = createThread();
    +			}
    +		}
    +		else if (this.thread != null)
    +		{
    +			window.clearInterval(this.thread);
    +			this.thread = null;
    +		}
    +	};
    +	
    +	this.stop = function()
    +	{
    +		if (this.active)
    +		{
    +			this.active = false;
    +			var px = graph.panDx;
    +			var py = graph.panDy;
    +	    	
    +	    	if (this.thread != null)
    +	    	{
    +				window.clearInterval(this.thread);
    +				this.thread = null;
    +	    	}
    +	    	
    +	    	if (px != 0 || py != 0)
    +	    	{
    +	    		graph.panGraph(0, 0);
    +		    	graph.view.setTranslate(this.t0x + px / graph.view.scale, this.t0y + py / graph.view.scale);
    +				this.tdx = 0;
    +				this.tdy = 0;
    +	    	}
    +		}
    +	};
    +	
    +	this.destroy = function()
    +	{
    +		graph.removeMouseListener(this.mouseListener);
    +	};
    +};
    +
    +/**
    + * Variable: damper
    + * 
    + * Damper value for the panning. Default is 1/6.
    + */
    +mxPanningManager.prototype.damper = 1/6;
    +
    +/**
    + * Variable: delay
    + * 
    + * Delay in milliseconds for the panning. Default is 10.
    + */
    +mxPanningManager.prototype.delay = 10;
    +
    +/**
    + * Variable: handleMouseOut
    + * 
    + * Specifies if mouse events outside of the component should be handled. Default is true. 
    + */
    +mxPanningManager.prototype.handleMouseOut = true;
    +
    +/**
    + * Variable: border
    + * 
    + * Border to handle automatic panning inside the component. Default is 0 (disabled).
    + */
    +mxPanningManager.prototype.border = 0;
    diff --git a/javascript/src/js/util/mxPath.js b/javascript/src/js/util/mxPath.js
    new file mode 100644
    index 000000000..44cef748c
    --- /dev/null
    +++ b/javascript/src/js/util/mxPath.js
    @@ -0,0 +1,256 @@
    +/**
    + * $Id: mxPath.js,v 1.20 2012-04-28 12:55:14 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxPath
    + *
    + * An abstraction for creating VML and SVG paths. See <mxActor> for using this
    + * object inside an <mxShape> for painting cells.
    + * 
    + * Constructor: mxPath
    + *
    + * Constructs a path for the given format, which is one of svg or vml.
    + * 
    + * Parameters:
    + * 
    + * format - String specifying the <format>. May be one of vml or svg
    + * (default).
    + */
    +function mxPath(format)
    +{
    +	this.format = format;
    +	this.path = [];
    +	this.translate = new mxPoint(0, 0);
    +};
    +
    +/**
    + * Variable: format
    + *
    + * Defines the format for the output of this path. Possible values are
    + * svg and vml.
    + */
    +mxPath.prototype.format = null;
    +
    +/**
    + * Variable: translate
    + *
    + * <mxPoint> that specifies the translation of the complete path.
    + */
    +mxPath.prototype.translate = null;
    +
    +/**
    + * Variable: path
    + *
    + * Contains the textual representation of the path as an array.
    + */
    +mxPath.prototype.path = null;
    +
    +/**
    + * Function: isVml
    + *
    + * Returns true if <format> is vml.
    + */
    +mxPath.prototype.isVml = function()
    +{
    +	return this.format == 'vml';
    +};
    +
    +/**
    + * Function: getPath
    + *
    + * Returns string that represents the path in <format>.
    + */
    +mxPath.prototype.getPath = function()
    +{
    +	return this.path.join('');
    +};
    +
    +/**
    + * Function: setTranslate
    + *
    + * Set the global translation of this path, that is, the origin of the 
    + * coordinate system.
    + * 
    + * Parameters:
    + * 
    + * x - X-coordinate of the new origin.
    + * y - Y-coordinate of the new origin.
    + */
    +mxPath.prototype.setTranslate = function(x, y)
    +{
    +	this.translate = new mxPoint(x, y);
    +};
    +
    +/**
    + * Function: moveTo
    + *
    + * Moves the cursor to (x, y).
    + * 
    + * Parameters:
    + * 
    + * x - X-coordinate of the new cursor location.
    + * y - Y-coordinate of the new cursor location.
    + */
    +mxPath.prototype.moveTo = function(x, y)
    +{
    +	if (this.isVml())
    +	{
    +		this.path.push('m ', Math.round(this.translate.x + x),
    +			' ', Math.round(this.translate.y + y), ' ');
    +	}
    +	else
    +	{
    +		this.path.push('M ', Math.round(this.translate.x + x),
    +			' ', Math.round(this.translate.y + y), ' ');
    +	}
    +};
    +	
    +/**
    + * Function: lineTo
    + *
    + * Draws a straight line from the current poin to (x, y).
    + * 
    + * Parameters:
    + * 
    + * x - X-coordinate of the endpoint.
    + * y - Y-coordinate of the endpoint.
    + */
    +mxPath.prototype.lineTo = function(x, y)
    +{
    +	if (this.isVml())
    +	{
    +		this.path.push('l ', Math.round(this.translate.x + x),
    +			' ', Math.round(this.translate.y + y), ' ');
    +	}
    +	else
    +	{
    +		this.path.push('L ', Math.round(this.translate.x + x),
    +			' ', Math.round(this.translate.y + y), ' ');
    +	}
    +};
    +
    +/**
    + * Function: quadTo
    + * 
    + * Draws a quadratic Bézier curve from the current point to (x, y) using
    + * (x1, y1) as the control point.
    + * 
    + * Parameters:
    + * 
    + * x1 - X-coordinate of the control point.
    + * y1 - Y-coordinate of the control point.
    + * x - X-coordinate of the endpoint. 
    + * y - Y-coordinate of the endpoint.
    + */
    +mxPath.prototype.quadTo = function(x1, y1, x, y)
    +{
    +	if (this.isVml())
    +	{
    +		this.path.push('c ', Math.round(this.translate.x + x1),
    +				' ', Math.round(this.translate.y + y1),
    +				' ', Math.round(this.translate.x + x),
    +				' ', Math.round(this.translate.y + y),
    +				' ', Math.round(this.translate.x + x),
    +				' ', Math.round(this.translate.y + y),
    +				' ');
    +	}
    +	else
    +	{
    +		this.path.push('Q ', Math.round(this.translate.x + x1),
    +			' ', Math.round(this.translate.y + y1),
    +			' ', Math.round(this.translate.x + x),
    +			' ', Math.round(this.translate.y + y),
    +			' ');
    +	}
    +};
    +
    +/**
    + * Function: curveTo
    + *
    + * Draws a cubic Bézier curve from the current point to (x, y) using
    + * (x1, y1) as the control point at the beginning of the curve and (x2, y2)
    + * as the control point at the end of the curve.
    + * 
    + * Parameters:
    + * 
    + * x1 - X-coordinate of the first control point.
    + * y1 - Y-coordinate of the first control point.
    + * x2 - X-coordinate of the second control point.
    + * y2 - Y-coordinate of the second control point.
    + * x - X-coordinate of the endpoint. 
    + * y - Y-coordinate of the endpoint.
    + */
    +mxPath.prototype.curveTo = function(x1, y1, x2, y2, x, y)
    +{
    +	if (this.isVml())
    +	{
    +		this.path.push('c ', Math.round(this.translate.x + x1),
    +			' ', Math.round(this.translate.y + y1),
    +			' ', Math.round(this.translate.x + x2),
    +			' ', Math.round(this.translate.y + y2),
    +			' ', Math.round(this.translate.x + x),
    +			' ', Math.round(this.translate.y + y),
    +			' ');
    +	}
    +	else
    +	{
    +		this.path.push('C ', Math.round(this.translate.x + x1),
    +			' ', Math.round(this.translate.y + y1),
    +			' ', Math.round(this.translate.x + x2),
    +			' ', Math.round(this.translate.y + y2),
    +			' ', Math.round(this.translate.x + x),
    +			' ', Math.round(this.translate.y + y),
    +			' ');
    +	}
    +};
    +
    +/**
    + * Function: addPath
    + *
    + * Adds the given path.
    + */
    +mxPath.prototype.addPath = function(path)
    +{
    +	this.path = this.path.concat(path.path);
    +};
    +
    +/**
    + * Function: write
    + *
    + * Writes directly into the path. This bypasses all conversions.
    + */
    +mxPath.prototype.write = function(string)
    +{
    +	this.path.push(string, ' ');
    +};
    +
    +/**
    + * Function: end
    + *
    + * Ends the path.
    + */
    +mxPath.prototype.end = function()
    +{
    +	if (this.format == 'vml')
    +	{
    +		this.path.push('e');
    +	}
    +};
    +
    +/**
    + * Function: close
    + *
    + * Closes the path.
    + */
    +mxPath.prototype.close = function()
    +{
    +	if (this.format == 'vml')
    +	{
    +		this.path.push('x e');
    +	}
    +	else
    +	{
    +		this.path.push('Z');
    +	}
    +};
    diff --git a/javascript/src/js/util/mxPoint.js b/javascript/src/js/util/mxPoint.js
    new file mode 100644
    index 000000000..e029a29e6
    --- /dev/null
    +++ b/javascript/src/js/util/mxPoint.js
    @@ -0,0 +1,55 @@
    +/**
    + * $Id: mxPoint.js,v 1.12 2010-01-02 09:45:14 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxPoint
    + *
    + * Implements a 2-dimensional vector with double precision coordinates.
    + * 
    + * Constructor: mxPoint
    + *
    + * Constructs a new point for the optional x and y coordinates. If no
    + * coordinates are given, then the default values for <x> and <y> are used.
    + */
    +function mxPoint(x, y)
    +{
    +	this.x = (x != null) ? x : 0;
    +	this.y = (y != null) ? y : 0;
    +};
    +
    +/**
    + * Variable: x
    + *
    + * Holds the x-coordinate of the point. Default is 0.
    + */
    +mxPoint.prototype.x = null;
    +
    +/**
    + * Variable: y
    + *
    + * Holds the y-coordinate of the point. Default is 0.
    + */
    +mxPoint.prototype.y = null;
    +
    +/**
    + * Function: equals
    + * 
    + * Returns true if the given object equals this rectangle.
    + */
    +mxPoint.prototype.equals = function(obj)
    +{
    +	return obj.x == this.x &&
    +		obj.y == this.y;
    +};
    +
    +/**
    + * Function: clone
    + *
    + * Returns a clone of this <mxPoint>.
    + */
    +mxPoint.prototype.clone = function()
    +{
    +	// Handles subclasses as well
    +	return mxUtils.clone(this);
    +};
    diff --git a/javascript/src/js/util/mxPopupMenu.js b/javascript/src/js/util/mxPopupMenu.js
    new file mode 100644
    index 000000000..b188cb648
    --- /dev/null
    +++ b/javascript/src/js/util/mxPopupMenu.js
    @@ -0,0 +1,574 @@
    +/**
    + * $Id: mxPopupMenu.js,v 1.37 2012-04-22 10:16:23 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxPopupMenu
    + * 
    + * Event handler that pans and creates popupmenus. To use the left
    + * mousebutton for panning without interfering with cell moving and
    + * resizing, use <isUseLeftButton> and <isIgnoreCell>. For grid size
    + * steps while panning, use <useGrid>. This handler is built-into
    + * <mxGraph.panningHandler> and enabled using <mxGraph.setPanning>.
    + * 
    + * Constructor: mxPopupMenu
    + * 
    + * Constructs an event handler that creates a popupmenu. The
    + * event handler is not installed anywhere in this ctor.
    + * 
    + * Event: mxEvent.SHOW
    + *
    + * Fires after the menu has been shown in <popup>.
    + */
    +function mxPopupMenu(factoryMethod)
    +{
    +	this.factoryMethod = factoryMethod;
    +	
    +	if (factoryMethod != null)
    +	{
    +		this.init();
    +	}
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxPopupMenu.prototype = new mxEventSource();
    +mxPopupMenu.prototype.constructor = mxPopupMenu;
    +
    +/**
    + * Variable: submenuImage
    + * 
    + * URL of the image to be used for the submenu icon.
    + */
    +mxPopupMenu.prototype.submenuImage = mxClient.imageBasePath + '/submenu.gif';
    +
    +/**
    + * Variable: zIndex
    + * 
    + * Specifies the zIndex for the popupmenu and its shadow. Default is 1006.
    + */
    +mxPopupMenu.prototype.zIndex = 10006;
    +
    +/**
    + * Variable: factoryMethod
    + * 
    + * Function that is used to create the popup menu. The function takes the
    + * current panning handler, the <mxCell> under the mouse and the mouse
    + * event that triggered the call as arguments.
    + */
    +mxPopupMenu.prototype.factoryMethod = null;
    +
    +/**
    + * Variable: useLeftButtonForPopup
    + * 
    + * Specifies if popupmenus should be activated by clicking the left mouse
    + * button. Default is false.
    + */
    +mxPopupMenu.prototype.useLeftButtonForPopup = false;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxPopupMenu.prototype.enabled = true;
    +
    +/**
    + * Variable: itemCount
    + * 
    + * Contains the number of times <addItem> has been called for a new menu.
    + */
    +mxPopupMenu.prototype.itemCount = 0;
    +
    +/**
    + * Variable: autoExpand
    + * 
    + * Specifies if submenus should be expanded on mouseover. Default is false.
    + */
    +mxPopupMenu.prototype.autoExpand = false;
    +
    +/**
    + * Variable: smartSeparators
    + * 
    + * Specifies if separators should only be added if a menu item follows them.
    + * Default is false.
    + */
    +mxPopupMenu.prototype.smartSeparators = false;
    +
    +/**
    + * Variable: labels
    + * 
    + * Specifies if any labels should be visible. Default is true.
    + */
    +mxPopupMenu.prototype.labels = true;
    +
    +/**
    + * Function: init
    + * 
    + * Initializes the shapes required for this vertex handler.
    + */
    +mxPopupMenu.prototype.init = function()
    +{
    +	// Adds the inner table
    +	this.table = document.createElement('table');
    +	this.table.className = 'mxPopupMenu';
    +	
    +	this.tbody = document.createElement('tbody');
    +	this.table.appendChild(this.tbody);
    +
    +	// Adds the outer div
    +	this.div = document.createElement('div');
    +	this.div.className = 'mxPopupMenu';
    +	this.div.style.display = 'inline';
    +	this.div.style.zIndex = this.zIndex;
    +	this.div.appendChild(this.table);
    +
    +	// Disables the context menu on the outer div
    +	mxEvent.disableContextMenu(this.div);
    +};
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxPopupMenu.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +	
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + */
    +mxPopupMenu.prototype.setEnabled = function(enabled)
    +{
    +	this.enabled = enabled;
    +};
    +
    +/**
    + * Function: isPopupTrigger
    + * 
    + * Returns true if the given event is a popupmenu trigger for the optional
    + * given cell.
    + * 
    + * Parameters:
    + * 
    + * me - <mxMouseEvent> that represents the mouse event.
    + */
    +mxPopupMenu.prototype.isPopupTrigger = function(me)
    +{
    +	return me.isPopupTrigger() || (this.useLeftButtonForPopup &&
    +		mxEvent.isLeftMouseButton(me.getEvent()));
    +};
    +
    +/**
    + * Function: addItem
    + * 
    + * Adds the given item to the given parent item. If no parent item is specified
    + * then the item is added to the top-level menu. The return value may be used
    + * as the parent argument, ie. as a submenu item. The return value is the table
    + * row that represents the item.
    + * 
    + * Paramters:
    + * 
    + * title - String that represents the title of the menu item.
    + * image - Optional URL for the image icon.
    + * funct - Function associated that takes a mouseup or touchend event.
    + * parent - Optional item returned by <addItem>.
    + * iconCls - Optional string that represents the CSS class for the image icon.
    + * IconsCls is ignored if image is given.
    + * enabled - Optional boolean indicating if the item is enabled. Default is true.
    + */
    +mxPopupMenu.prototype.addItem = function(title, image, funct, parent, iconCls, enabled)
    +{
    +	parent = parent || this;
    +	this.itemCount++;
    +	
    +	// Smart separators only added if element contains items
    +	if (parent.willAddSeparator)
    +	{
    +		if (parent.containsItems)
    +		{
    +			this.addSeparator(parent, true);
    +		}
    +
    +		parent.willAddSeparator = false;
    +	}
    +
    +	parent.containsItems = true;
    +	var tr = document.createElement('tr');
    +	tr.className = 'mxPopupMenuItem';
    +	var col1 = document.createElement('td');
    +	col1.className = 'mxPopupMenuIcon';
    +	
    +	// Adds the given image into the first column
    +	if (image != null)
    +	{
    +		var img = document.createElement('img');
    +		img.src = image;
    +		col1.appendChild(img);
    +	}
    +	else if (iconCls != null)
    +	{
    +		var div = document.createElement('div');
    +		div.className = iconCls;
    +		col1.appendChild(div);
    +	}
    +	
    +	tr.appendChild(col1);
    +	
    +	if (this.labels)
    +	{
    +		var col2 = document.createElement('td');
    +		col2.className = 'mxPopupMenuItem' +
    +			((enabled != null && !enabled) ? ' disabled' : '');
    +		mxUtils.write(col2, title);
    +		col2.align = 'left';
    +		tr.appendChild(col2);
    +	
    +		var col3 = document.createElement('td');
    +		col3.className = 'mxPopupMenuItem' +
    +			((enabled != null && !enabled) ? ' disabled' : '');
    +		col3.style.paddingRight = '6px';
    +		col3.style.textAlign = 'right';
    +		
    +		tr.appendChild(col3);
    +		
    +		if (parent.div == null)
    +		{
    +			this.createSubmenu(parent);
    +		}
    +	}
    +	
    +	parent.tbody.appendChild(tr);
    +
    +	if (enabled == null || enabled)
    +	{
    +		var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +		var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +		var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +		
    +		// Consumes the event on mouse down
    +		mxEvent.addListener(tr, md, mxUtils.bind(this, function(evt)
    +		{
    +			this.eventReceiver = tr;
    +			
    +			if (parent.activeRow != tr && parent.activeRow != parent)
    +			{
    +				if (parent.activeRow != null &&
    +					parent.activeRow.div.parentNode != null)
    +				{
    +					this.hideSubmenu(parent);
    +				}
    +				
    +				if (tr.div != null)
    +				{
    +					this.showSubmenu(parent, tr);
    +					parent.activeRow = tr;
    +				}
    +			}
    +			
    +			mxEvent.consume(evt);
    +		}));
    +		
    +		mxEvent.addListener(tr, mm, mxUtils.bind(this, function(evt)
    +		{
    +			if (parent.activeRow != tr && parent.activeRow != parent)
    +			{
    +				if (parent.activeRow != null &&
    +					parent.activeRow.div.parentNode != null)
    +				{
    +					this.hideSubmenu(parent);
    +				}
    +				
    +				if (this.autoExpand && tr.div != null)
    +				{
    +					this.showSubmenu(parent, tr);
    +					parent.activeRow = tr;
    +				}
    +			}
    +	
    +			// Sets hover style because TR in IE doesn't have hover
    +			tr.className = 'mxPopupMenuItemHover';
    +		}));
    +	
    +		mxEvent.addListener(tr, mu, mxUtils.bind(this, function(evt)
    +		{
    +			// EventReceiver avoids clicks on a submenu item
    +			// which has just been shown in the mousedown
    +			if (this.eventReceiver == tr)
    +			{
    +				if (parent.activeRow != tr)
    +				{
    +					this.hideMenu();
    +				}
    +				
    +				if (funct != null)
    +				{
    +					funct(evt);
    +				}
    +			}
    +			
    +			this.eventReceiver = null;
    +			mxEvent.consume(evt);
    +		}));
    +	
    +		// Resets hover style because TR in IE doesn't have hover
    +		mxEvent.addListener(tr, 'mouseout',
    +			mxUtils.bind(this, function(evt)
    +			{
    +				tr.className = 'mxPopupMenuItem';
    +			})
    +		);
    +	}
    +	
    +	return tr;
    +};
    +
    +/**
    + * Function: createSubmenu
    + * 
    + * Creates the nodes required to add submenu items inside the given parent
    + * item. This is called in <addItem> if a parent item is used for the first
    + * time. This adds various DOM nodes and a <submenuImage> to the parent.
    + * 
    + * Parameters:
    + * 
    + * parent - An item returned by <addItem>.
    + */
    +mxPopupMenu.prototype.createSubmenu = function(parent)
    +{
    +	parent.table = document.createElement('table');
    +	parent.table.className = 'mxPopupMenu';
    +
    +	parent.tbody = document.createElement('tbody');
    +	parent.table.appendChild(parent.tbody);
    +
    +	parent.div = document.createElement('div');
    +	parent.div.className = 'mxPopupMenu';
    +
    +	parent.div.style.position = 'absolute';
    +	parent.div.style.display = 'inline';
    +	parent.div.style.zIndex = this.zIndex;
    +	
    +	parent.div.appendChild(parent.table);
    +	
    +	var img = document.createElement('img');
    +	img.setAttribute('src', this.submenuImage);
    +	
    +	// Last column of the submenu item in the parent menu
    +	td = parent.firstChild.nextSibling.nextSibling;
    +	td.appendChild(img);
    +};
    +
    +/**
    + * Function: showSubmenu
    + * 
    + * Shows the submenu inside the given parent row.
    + */
    +mxPopupMenu.prototype.showSubmenu = function(parent, row)
    +{
    +	if (row.div != null)
    +	{
    +		row.div.style.left = (parent.div.offsetLeft +
    +			row.offsetLeft+row.offsetWidth - 1) + 'px';
    +		row.div.style.top = (parent.div.offsetTop+row.offsetTop) + 'px';
    +		document.body.appendChild(row.div);
    +		
    +		// Moves the submenu to the left side if there is no space
    +		var left = parseInt(row.div.offsetLeft);
    +		var width = parseInt(row.div.offsetWidth);
    +		
    +		var b = document.body;
    +		var d = document.documentElement;
    +		
    +		var right = (b.scrollLeft || d.scrollLeft) + (b.clientWidth || d.clientWidth);
    +		
    +		if (left + width > right)
    +		{
    +			row.div.style.left = (parent.div.offsetLeft - width +
    +				((mxClient.IS_IE) ? 6 : -6)) + 'px';
    +		}
    +		
    +		mxUtils.fit(row.div);
    +	}
    +};
    +
    +/**
    + * Function: addSeparator
    + * 
    + * Adds a horizontal separator in the given parent item or the top-level menu
    + * if no parent is specified.
    + * 
    + * Parameters:
    + * 
    + * parent - Optional item returned by <addItem>.
    + * force - Optional boolean to ignore <smartSeparators>. Default is false.
    + */
    +mxPopupMenu.prototype.addSeparator = function(parent, force)
    +{
    +	parent = parent || this;
    +	
    +	if (this.smartSeparators && !force)
    +	{
    +		parent.willAddSeparator = true;
    +	}
    +	else if (parent.tbody != null)
    +	{
    +		parent.willAddSeparator = false;
    +		var tr = document.createElement('tr');
    +		
    +		var col1 = document.createElement('td');
    +		col1.className = 'mxPopupMenuIcon';
    +		col1.style.padding = '0 0 0 0px';
    +		
    +		tr.appendChild(col1);
    +		
    +		var col2 = document.createElement('td');
    +		col2.style.padding = '0 0 0 0px';
    +		col2.setAttribute('colSpan', '2');
    +	
    +		var hr = document.createElement('hr');
    +		hr.setAttribute('size', '1');
    +		col2.appendChild(hr);
    +		
    +		tr.appendChild(col2);
    +		
    +		parent.tbody.appendChild(tr);
    +	}
    +};
    +
    +/**
    + * Function: popup
    + * 
    + * Shows the popup menu for the given event and cell.
    + * 
    + * Example:
    + * 
    + * (code)
    + * graph.panningHandler.popup = function(x, y, cell, evt)
    + * {
    + *   mxUtils.alert('Hello, World!');
    + * }
    + * (end)
    + */
    +mxPopupMenu.prototype.popup = function(x, y, cell, evt)
    +{
    +	if (this.div != null && this.tbody != null && this.factoryMethod != null)
    +	{
    +		this.div.style.left = x + 'px';
    +		this.div.style.top = y + 'px';
    +		
    +		// Removes all child nodes from the existing menu
    +		while (this.tbody.firstChild != null)
    +		{
    +			mxEvent.release(this.tbody.firstChild);
    +			this.tbody.removeChild(this.tbody.firstChild);
    +		}
    +		
    +		this.itemCount = 0;
    +		this.factoryMethod(this, cell, evt);
    +		
    +		if (this.itemCount > 0)
    +		{
    +			this.showMenu();
    +			this.fireEvent(new mxEventObject(mxEvent.SHOW));
    +		}
    +	}
    +};
    +
    +/**
    + * Function: isMenuShowing
    + * 
    + * Returns true if the menu is showing.
    + */
    +mxPopupMenu.prototype.isMenuShowing = function()
    +{
    +	return this.div != null && this.div.parentNode == document.body;
    +};
    +
    +/**
    + * Function: showMenu
    + * 
    + * Shows the menu.
    + */
    +mxPopupMenu.prototype.showMenu = function()
    +{
    +	// Disables filter-based shadow in IE9 standards mode
    +	if (document.documentMode >= 9)
    +	{
    +		this.div.style.filter = 'none';
    +	}
    +	
    +	// Fits the div inside the viewport
    +	document.body.appendChild(this.div);
    +	mxUtils.fit(this.div);
    +};
    +
    +/**
    + * Function: hideMenu
    + * 
    + * Removes the menu and all submenus.
    + */
    +mxPopupMenu.prototype.hideMenu = function()
    +{
    +	if (this.div != null)
    +	{
    +		if (this.div.parentNode != null)
    +		{
    +			this.div.parentNode.removeChild(this.div);
    +		}
    +		
    +		this.hideSubmenu(this);
    +		this.containsItems = false;
    +	}
    +};
    +
    +/**
    + * Function: hideSubmenu
    + * 
    + * Removes all submenus inside the given parent.
    + * 
    + * Parameters:
    + * 
    + * parent - An item returned by <addItem>.
    + */
    +mxPopupMenu.prototype.hideSubmenu = function(parent)
    +{
    +	if (parent.activeRow != null)
    +	{
    +		this.hideSubmenu(parent.activeRow);
    +		
    +		if (parent.activeRow.div.parentNode != null)
    +		{
    +			parent.activeRow.div.parentNode.removeChild(parent.activeRow.div);
    +		}
    +		
    +		parent.activeRow = null;
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the handler and all its resources and DOM nodes.
    + */
    +mxPopupMenu.prototype.destroy = function()
    +{
    +	if (this.div != null)
    +	{
    +		mxEvent.release(this.div);
    +		
    +		if (this.div.parentNode != null)
    +		{
    +			this.div.parentNode.removeChild(this.div);
    +		}
    +		
    +		this.div = null;
    +	}
    +};
    diff --git a/javascript/src/js/util/mxRectangle.js b/javascript/src/js/util/mxRectangle.js
    new file mode 100644
    index 000000000..035abf517
    --- /dev/null
    +++ b/javascript/src/js/util/mxRectangle.js
    @@ -0,0 +1,134 @@
    +/**
    + * $Id: mxRectangle.js,v 1.17 2010-12-08 12:46:03 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxRectangle
    + *
    + * Extends <mxPoint> to implement a 2-dimensional rectangle with double
    + * precision coordinates.
    + * 
    + * Constructor: mxRectangle
    + *
    + * Constructs a new rectangle for the optional parameters. If no parameters
    + * are given then the respective default values are used.
    + */
    +function mxRectangle(x, y, width, height)
    +{
    +	mxPoint.call(this, x, y);
    +
    +	this.width = (width != null) ? width : 0;
    +	this.height = (height != null) ? height : 0;
    +};
    +
    +/**
    + * Extends mxPoint.
    + */
    +mxRectangle.prototype = new mxPoint();
    +mxRectangle.prototype.constructor = mxRectangle;
    +
    +/**
    + * Variable: width
    + *
    + * Holds the width of the rectangle. Default is 0.
    + */
    +mxRectangle.prototype.width = null;
    +
    +/**
    + * Variable: height
    + *
    + * Holds the height of the rectangle. Default is 0.
    + */
    +mxRectangle.prototype.height = null;
    +
    +/**
    + * Function: setRect
    + * 
    + * Sets this rectangle to the specified values
    + */
    +mxRectangle.prototype.setRect = function(x, y, w, h)
    +{
    +    this.x = x;
    +    this.y = y;
    +    this.width = w;
    +    this.height = h;
    +};
    +
    +/**
    + * Function: getCenterX
    + * 
    + * Returns the x-coordinate of the center point.
    + */
    +mxRectangle.prototype.getCenterX = function ()
    +{
    +	return this.x + this.width/2;
    +};
    +
    +/**
    + * Function: getCenterY
    + * 
    + * Returns the y-coordinate of the center point.
    + */
    +mxRectangle.prototype.getCenterY = function ()
    +{
    +	return this.y + this.height/2;
    +};
    +
    +/**
    + * Function: add
    + *
    + * Adds the given rectangle to this rectangle.
    + */
    +mxRectangle.prototype.add = function(rect)
    +{
    +	if (rect != null)
    +	{
    +		var minX = Math.min(this.x, rect.x);
    +		var minY = Math.min(this.y, rect.y);
    +		var maxX = Math.max(this.x + this.width, rect.x + rect.width);
    +		var maxY = Math.max(this.y + this.height, rect.y + rect.height);
    +		
    +		this.x = minX;
    +		this.y = minY;
    +		this.width = maxX - minX;
    +		this.height = maxY - minY;
    +	}
    +};
    +
    +/**
    + * Function: grow
    + *
    + * Grows the rectangle by the given amount, that is, this method subtracts
    + * the given amount from the x- and y-coordinates and adds twice the amount
    + * to the width and height.
    + */
    +mxRectangle.prototype.grow = function(amount)
    +{
    +	this.x -= amount;
    +	this.y -= amount;
    +	this.width += 2 * amount;
    +	this.height += 2 * amount;
    +};
    +
    +/**
    + * Function: getPoint
    + * 
    + * Returns the top, left corner as a new <mxPoint>.
    + */
    +mxRectangle.prototype.getPoint = function()
    +{
    +	return new mxPoint(this.x, this.y);
    +};
    +
    +/**
    + * Function: equals
    + * 
    + * Returns true if the given object equals this rectangle.
    + */
    +mxRectangle.prototype.equals = function(obj)
    +{
    +	return obj.x == this.x &&
    +		obj.y == this.y &&
    +		obj.width == this.width &&
    +		obj.height == this.height;
    +};
    diff --git a/javascript/src/js/util/mxResources.js b/javascript/src/js/util/mxResources.js
    new file mode 100644
    index 000000000..260f420c1
    --- /dev/null
    +++ b/javascript/src/js/util/mxResources.js
    @@ -0,0 +1,319 @@
    +/**
    + * $Id: mxResources.js,v 1.26 2012-02-06 08:45:48 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxResources =
    +{
    +	/**
    +	 * Class: mxResources
    +	 * 
    +	 * Implements internationalization. You can provide any number of 
    +	 * resource files on the server using the following format for the 
    +	 * filename: name[-en].properties. The en stands for any lowercase 
    +	 * 2-character language shortcut (eg. de for german, fr for french).
    +	 *
    +	 * If the optional language extension is omitted, then the file is used as a 
    +	 * default resource which is loaded in all cases. If a properties file for a 
    +	 * specific language exists, then it is used to override the settings in the 
    +	 * default resource. All entries in the file are of the form key=value. The
    +	 * values may then be accessed in code via <get>. Lines without 
    +	 * equal signs in the properties files are ignored.
    +	 *
    +	 * Resource files may either be added programmatically using
    +	 * <add> or via a resource tag in the UI section of the 
    +	 * editor configuration file, eg:
    +	 * 
    +	 * (code)
    +	 * <mxEditor>
    +	 *   <ui>
    +	 *     <resource basename="examples/resources/mxWorkflow"/>
    +	 * (end)
    +	 * 
    +	 * The above element will load examples/resources/mxWorkflow.properties as well
    +	 * as the language specific file for the current language, if it exists.
    +	 * 
    +	 * Values may contain placeholders of the form {1}...{n} where each placeholder
    +	 * is replaced with the value of the corresponding array element in the params
    +	 * argument passed to <mxResources.get>. The placeholder {1} maps to the first
    +	 * element in the array (at index 0).
    +	 * 
    +	 * See <mxClient.language> for more information on specifying the default
    +	 * language or disabling all loading of resources.
    +	 * 
    +	 * Special characters
    +	 * 
    +	 * To use unicode characters use %u as a prefix, eg. %u20AC will display a
    +	 * Euro sign. For normal hex encoded strings, use % as a prefix, eg. %F6 will
    +	 * display a ö (&ouml;).
    +	 * 
    +	 * Variable: resources
    +	 * 
    +	 * Associative array that maps from keys to values.
    +	 */
    +	resources: [],
    +
    +	/**
    +	 * Variable: loadDefaultBundle
    +	 * 
    +	 * Specifies if the default file for a given basename should be loaded.
    +	 * Default is true.
    +	 */
    +	loadDefaultBundle: true,
    +
    +	/**
    +	 * Variable: loadDefaultBundle
    +	 * 
    +	 * Specifies if the specific language file file for a given basename should
    +	 * be loaded. Default is true.
    +	 */
    +	loadSpecialBundle: true,
    +
    +	/**
    +	 * Function: isBundleSupported
    +	 * 
    +	 * Hook for subclassers to disable support for a given language. This
    +	 * implementation always returns true.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * basename - The basename for which the file should be loaded.
    +	 * lan - The current language.
    +	 */
    +	isLanguageSupported: function(lan)
    +	{
    +		if (mxClient.languages != null)
    +		{
    +			return mxUtils.indexOf(mxClient.languages, lan) >= 0;
    +		}
    +		
    +		return true;
    +	},
    +
    +	/**
    +	 * Function: getDefaultBundle
    +	 * 
    +	 * Hook for subclassers to return the URL for the special bundle. This
    +	 * implementation returns basename + '.properties' or null if
    +	 * <loadDefaultBundle> is false.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * basename - The basename for which the file should be loaded.
    +	 * lan - The current language.
    +	 */
    +	getDefaultBundle: function(basename, lan)
    +	{
    +		if (mxResources.loadDefaultBundle || !mxResources.isLanguageSupported(lan))
    +		{
    +			return basename + '.properties';
    +		}
    +		else
    +		{
    +			return null;
    +		}
    +	},
    +
    +	/**
    +	 * Function: getSpecialBundle
    +	 * 
    +	 * Hook for subclassers to return the URL for the special bundle. This
    +	 * implementation returns basename + '_' + lan + '.properties' or null if
    +	 * <loadSpecialBundle> is false or lan equals <mxClient.defaultLanguage>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * basename - The basename for which the file should be loaded.
    +	 * lan - The language for which the file should be loaded.
    +	 */
    +	getSpecialBundle: function(basename, lan)
    +	{
    +		if (mxResources.loadSpecialBundle && lan != mxClient.defaultLanguage)
    +		{
    +			return basename + '_' + lan + '.properties';
    +		}
    +		else
    +		{
    +			return null;
    +		}
    +	},
    +
    +	/**
    +	 * Function: add
    +	 * 
    +	 * Adds the default and current language properties
    +	 * file for the specified basename. Existing keys
    +	 * are overridden as new files are added.
    +	 *
    +	 * Example:
    +	 * 
    +	 * At application startup, additional resources may be 
    +	 * added using the following code:
    +	 * 
    +	 * (code)
    +	 * mxResources.add('resources/editor');
    +	 * (end)
    +	 */
    +	add: function(basename, lan)
    +	{
    +		lan = (lan != null) ? lan : mxClient.language;
    +		
    +		if (lan != mxConstants.NONE)
    +		{
    +			// Loads the common language file (no extension)
    +			var defaultBundle = mxResources.getDefaultBundle(basename, lan);
    +			
    +			if (defaultBundle != null)
    +			{
    +				try
    +				{
    +			   		var req = mxUtils.load(defaultBundle);
    +			   		
    +			   		if (req.isReady())
    +			   		{
    +			 	   		mxResources.parse(req.getText());
    +			   		}
    +			  	}
    +			  	catch (e)
    +			  	{
    +			  		// ignore
    +			  	}
    +			}
    +	
    +			// Overlays the language specific file (_lan-extension)
    +			if (mxResources.isLanguageSupported(lan))
    +			{
    +				var specialBundle = mxResources.getSpecialBundle(basename, lan);
    +				
    +				if (specialBundle != null)
    +				{
    +					try
    +					{
    +				   		var req = mxUtils.load(specialBundle);
    +				   		
    +				   		if (req.isReady())
    +				   		{
    +				 	   		mxResources.parse(req.getText());
    +				   		}
    +			   		}
    +			   		catch (e)
    +			   		{
    +			   			// ignore
    +				   	}
    +				}
    +			}
    +		}
    +	},
    +
    +	/**
    +	 * Function: parse
    +	 * 
    +	 * Parses the key, value pairs in the specified
    +	 * text and stores them as local resources.
    +	 */
    +	parse: function(text)
    +	{
    +		if (text != null)
    +		{
    +			var lines = text.split('\n');
    +			
    +			for (var i = 0; i < lines.length; i++)
    +			{
    +				var index = lines[i].indexOf('=');
    +				
    +				if (index > 0)
    +				{
    +					var key = lines[i].substring(0, index);
    +					var idx = lines[i].length;
    +					
    +					if (lines[i].charCodeAt(idx - 1) == 13)
    +					{
    +						idx--;
    +					}
    +					
    +					var value = lines[i].substring(index + 1, idx);
    +					mxResources.resources[key] = unescape(value);
    +				}
    +			}
    +		}
    +	},
    +
    +	/**
    +	 * Function: get
    +	 * 
    +	 * Returns the value for the specified resource key.
    +	 *
    +	 * Example:
    +	 * To read the value for 'welomeMessage', use the following:
    +	 * (code)
    +	 * var result = mxResources.get('welcomeMessage') || '';
    +	 * (end)
    +	 *
    +	 * This would require an entry of the following form in
    +	 * one of the English language resource files:
    +	 * (code)
    +	 * welcomeMessage=Welcome to mxGraph!
    +	 * (end)
    +	 * 
    +	 * The part behind the || is the string value to be used if the given
    +	 * resource is not available.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * key - String that represents the key of the resource to be returned.
    +	 * params - Array of the values for the placeholders of the form {1}...{n}
    +	 * to be replaced with in the resulting string.
    +	 * defaultValue - Optional string that specifies the default return value.
    +	 */
    +	get: function(key, params, defaultValue)
    +	{
    +		var value = mxResources.resources[key];
    +		
    +		// Applies the default value if no resource was found
    +		if (value == null)
    +		{
    +			value = defaultValue;
    +		}
    +		
    +		// Replaces the placeholders with the values in the array
    +		if (value != null &&
    +			params != null)
    +		{
    +			var result = [];
    +			var index = null;
    +			
    +			for (var i = 0; i < value.length; i++)
    +			{
    +				var c = value.charAt(i);
    +
    +				if (c == '{')
    +				{
    +					index = '';
    +				}
    +				else if (index != null && 	c == '}')
    +				{
    +					index = parseInt(index)-1;
    +					
    +					if (index >= 0 && index < params.length)
    +					{
    +						result.push(params[index]);
    +					}
    +					
    +					index = null;
    +				}
    +				else if (index != null)
    +				{
    +					index += c;
    +				}
    +				else
    +				{
    +					result.push(c);
    +				}
    +			}
    +			
    +			value = result.join('');
    +		}
    +		
    +		return value;
    +	}
    +
    +};
    diff --git a/javascript/src/js/util/mxSession.js b/javascript/src/js/util/mxSession.js
    new file mode 100644
    index 000000000..47a8b7e8f
    --- /dev/null
    +++ b/javascript/src/js/util/mxSession.js
    @@ -0,0 +1,676 @@
    +/**
    + * $Id: mxSession.js,v 1.45 2010-09-16 11:11:59 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxSession
    + *
    + * Session for sharing an <mxGraphModel> with other parties
    + * via a backend that acts as a multicaster for all changes.
    + * 
    + * Diagram Sharing:
    + * 
    + * The diagram sharing is a mechanism where each atomic change of the model is
    + * encoded into XML using <mxCodec> and then transmitted to the server by the
    + * <mxSession> object. On the server, the XML data is dispatched to each
    + * listener on the same diagram (except the sender), and the XML is decoded
    + * back into atomic changes on the client side, which are then executed on the
    + * model and stored in the command history.
    + * 
    + * The <mxSession.significantRemoteChanges> specifies how these changes are
    + * treated with respect to undo: The default value (true) will undo the last
    + * change regardless of whether it was a remote or a local change. If the
    + * switch is false, then an undo will go back until the last local change,
    + * silently undoing all remote changes up to that point. Note that these
    + * changes will be added as new remote changes to the history of the other
    + * clients.
    + * 
    + * Event: mxEvent.CONNECT
    + *
    + * Fires after the session has been started, that is, after the response to the
    + * initial request was received and the session goes into polling mode. This
    + * event has no properties.
    + *
    + * Event: mxEvent.SUSPEND
    + *
    + * Fires after <suspend> was called an the session was not already in suspended
    + * state. This event has no properties.
    + *
    + * Event: mxEvent.RESUME
    + *
    + * Fires after the session was resumed in <resume>. This event has no
    + * properties.
    + *
    + * Event: mxEvent.DISCONNECT
    + *
    + * Fires after the session was stopped in <stop>. The <code>reason</code>
    + * property contains the optional exception that was passed to the stop method.
    + *
    + * Event: mxEvent.NOTIFY
    + *
    + * Fires after a notification was sent in <notify>. The <code>url</code>
    + * property contains the URL and the <code>xml</code> property contains the XML
    + * data of the request.
    + *
    + * Event: mxEvent.GET
    + *
    + * Fires after a response was received in <get>. The <code>url</code> property
    + * contains the URL and the <code>request</code> is the <mxXmlRequest> that
    + * contains the response.
    + *
    + * Event: mxEvent.FIRED
    + * 
    + * Fires after an array of edits has been executed on the model. The
    + * <code>changes</code> property contains the array of changes.
    + * 
    + * Event: mxEvent.RECEIVE
    + *
    + * Fires after an XML node was received in <receive>. The <code>node</code>
    + * property contains the node that was received.
    + * 
    + * Constructor: mxSession
    + * 
    + * Constructs a new session using the given <mxGraphModel> and URLs to
    + * communicate with the backend.
    + * 
    + * Parameters:
    + * 
    + * model - <mxGraphModel> that contains the data.
    + * urlInit - URL to be used for initializing the session.
    + * urlPoll - URL to be used for polling the backend.
    + * urlNotify - URL to be used for sending changes to the backend.
    + */
    +function mxSession(model, urlInit, urlPoll, urlNotify)
    +{
    +	this.model = model;
    +	this.urlInit = urlInit;
    +	this.urlPoll = urlPoll;
    +	this.urlNotify = urlNotify;
    +
    +	// Resolves cells by id using the model
    +	if (model != null)
    +	{
    +		this.codec = new mxCodec();
    +		
    +		this.codec.lookup = function(id)
    +		{
    +			return model.getCell(id);
    +		};
    +	}
    +	
    +	// Adds the listener for notifying the backend of any
    +	// changes in the model
    +	model.addListener(mxEvent.NOTIFY,
    +		mxUtils.bind(this, function(sender, evt)
    +		{
    +			var edit = evt.getProperty('edit');
    +			
    +			if (edit != null && this.debug ||
    +				(this.connected && !this.suspended))
    +			{
    +				this.notify('<edit>'+this.encodeChanges(edit.changes, edit.undone)+'</edit>');
    +			}
    +		})
    +	);
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxSession.prototype = new mxEventSource();
    +mxSession.prototype.constructor = mxSession;
    +
    +/**
    + * Variable: model
    + * 
    + * Reference to the enclosing <mxGraphModel>.
    + */
    +mxSession.prototype.model = null;
    +
    +/**
    + * Variable: urlInit
    + * 
    + * URL to initialize the session.
    + */
    +mxSession.prototype.urlInit = null;
    +
    +/**
    + * Variable: urlPoll
    + * 
    + * URL for polling the backend.
    + */
    +mxSession.prototype.urlPoll = null;
    +
    +/**
    + * Variable: urlNotify
    + * 
    + * URL to send changes to the backend.
    + */
    +mxSession.prototype.urlNotify = null;
    +
    +/**
    + * Variable: codec
    + * 
    + * Reference to the <mxCodec> used to encoding and decoding changes.
    + */
    +mxSession.prototype.codec = null;
    +
    +/**
    + * Variable: linefeed
    + * 
    + * Used for encoding linefeeds. Default is '&#xa;'.
    + */
    +mxSession.prototype.linefeed = '&#xa;';
    +
    +/**
    + * Variable: escapePostData
    + * 
    + * Specifies if the data in the post request sent in <notify>
    + * should be converted using encodeURIComponent. Default is true.
    + */
    +mxSession.prototype.escapePostData = true;
    +
    +/**
    + * Variable: significantRemoteChanges
    + * 
    + * Whether remote changes should be significant in the
    + * local command history. Default is true.
    + */
    +mxSession.prototype.significantRemoteChanges = true;
    +
    +/**
    + * Variable: sent
    + * 
    + * Total number of sent bytes.
    + */
    +mxSession.prototype.sent = 0;
    +
    +/**
    + * Variable: received
    + * 
    + * Total number of received bytes.
    + */
    +mxSession.prototype.received = 0;
    +
    +/**
    + * Variable: debug
    + * 
    + * Specifies if the session should run in debug mode. In this mode, no
    + * connection is established. The data is written to the console instead.
    + * Default is false.
    + */
    +mxSession.prototype.debug = false;
    +
    +/**
    + * Variable: connected
    + */
    +mxSession.prototype.connected = false;
    +	
    +/**
    + * Variable: send
    + */
    +mxSession.prototype.suspended = false;
    +	
    +/**
    + * Variable: polling
    + */
    +mxSession.prototype.polling = false;
    +
    +/**
    + * Function: start
    + */
    +mxSession.prototype.start = function()
    +{
    +	if (this.debug)
    +	{
    +		this.connected = true;
    +		this.fireEvent(new mxEventObject(mxEvent.CONNECT));
    +	}
    +	else if (!this.connected)
    +	{
    +		this.get(this.urlInit, mxUtils.bind(this, function(req)
    +		{
    +			this.connected = true;
    +			this.fireEvent(new mxEventObject(mxEvent.CONNECT));
    +			this.poll();
    +		}));
    +	}
    +};
    +
    +/**
    + * Function: suspend
    + * 
    + * Suspends the polling. Use <resume> to reactive the session. Fires a
    + * suspend event.
    + */
    +mxSession.prototype.suspend = function()
    +{
    +	if (this.connected && !this.suspended)
    +	{
    +		this.suspended = true;
    +		this.fireEvent(new mxEventObject(mxEvent.SUSPEND));
    +	}
    +};
    +	
    +/**
    + * Function: resume
    + * 
    + * Resumes the session if it has been suspended. Fires a resume-event
    + * before starting the polling.
    + */
    +mxSession.prototype.resume = function(type, attr, value)
    +{
    +	if (this.connected &&
    +		this.suspended)
    +	{
    +		this.suspended = false;
    +		this.fireEvent(new mxEventObject(mxEvent.RESUME));
    +		
    +		if (!this.polling)
    +		{
    +			this.poll();
    +		}
    +	}
    +};
    +		
    +/**
    + * Function: stop
    + * 
    + * Stops the session and fires a disconnect event. The given reason is
    + * passed to the disconnect event listener as the second argument.
    + */
    +mxSession.prototype.stop = function(reason)
    +{
    +	if (this.connected)
    +	{
    +		this.connected = false;
    +	}
    +	
    +	this.fireEvent(new mxEventObject(mxEvent.DISCONNECT,
    +			'reason', reason));
    +};
    +
    +/**
    + * Function: poll
    + * 
    + * Sends an asynchronous GET request to <urlPoll>.
    + */
    +mxSession.prototype.poll = function()
    +{
    +	if (this.connected &&
    +		!this.suspended &&
    +		this.urlPoll != null)
    +	{
    +		this.polling = true;
    +
    +		this.get(this.urlPoll, mxUtils.bind(this, function()
    +		{
    +			this.poll();
    +		}));
    +	}
    +	else
    +	{
    +		this.polling = false;
    +	}
    +};
    +
    +/**
    + * Function: notify
    + * 
    + * Sends out the specified XML to <urlNotify> and fires a <notify> event.
    + */
    +mxSession.prototype.notify = function(xml, onLoad, onError)
    +{
    +	if (xml != null &&
    +		xml.length > 0)
    +	{
    +		if (this.urlNotify != null)
    +		{
    +			if (this.debug)
    +			{
    +				mxLog.show();
    +				mxLog.debug('mxSession.notify: '+this.urlNotify+' xml='+xml);			
    +			}
    +			else
    +			{
    +				xml = '<message><delta>'+xml+'</delta></message>';
    +				
    +				if (this.escapePostData)
    +				{
    +					xml = encodeURIComponent(xml);
    +				}
    +				
    +				mxUtils.post(this.urlNotify, 'xml='+xml, onLoad, onError);
    +			}
    +		}
    +		
    +		this.sent += xml.length;
    +		this.fireEvent(new mxEventObject(mxEvent.NOTIFY,
    +				'url', this.urlNotify, 'xml', xml));
    +	}
    +};
    +
    +/**
    + * Function: get
    + * 
    + * Sends an asynchronous get request to the given URL, fires a <get> event
    + * and invokes the given onLoad function when a response is received.
    + */
    +mxSession.prototype.get = function(url, onLoad, onError)
    +{
    +	// Response after browser refresh has no global scope
    +	// defined. This response is ignored and the session
    +	// stops implicitely.
    +	if (typeof(mxUtils) != 'undefined')
    +	{
    +		var onErrorWrapper = mxUtils.bind(this, function(ex)
    +		{
    +			if (onError != null)
    +			{
    +				onError(ex);
    +			}
    +			else
    +			{
    +				this.stop(ex);
    +			}
    +		});
    +
    +		// Handles a successful response for
    +		// the above request.
    +		var req = mxUtils.get(url,
    +			mxUtils.bind(this, function(req)
    +			{
    +				if (typeof(mxUtils) != 'undefined')
    +				{
    +					//try
    +					{
    +		    			if (req.isReady() &&
    +		    				req.getStatus() != 404)
    +		    			{
    +		    				this.received += req.getText().length;
    +							this.fireEvent(new mxEventObject(mxEvent.GET,
    +									'url', url, 'request', req));
    +
    +							if (this.isValidResponse(req))
    +							{
    +				    			if (req.getText().length > 0)
    +				    			{
    +									var node = req.getDocumentElement();
    +									
    +									if (node == null)
    +									{
    +										onErrorWrapper('Invalid response: '+req.getText());
    +									}
    +									else
    +									{
    +										this.receive(node);
    +									}
    +								}
    +				    			
    +				    			if (onLoad != null)
    +				    			{
    +									onLoad(req);
    +								}
    +							}
    +						}
    +						else
    +						{
    +							onErrorWrapper('Response not ready');
    +						}
    +					}
    +					/*catch (ex)
    +					{
    +						onErrorWrapper(ex);
    +						throw ex; // debugging
    +					}*/
    +				}
    +			}),
    +			
    +			// Handles a transmission error for the
    +			// above request
    +			function(req)
    +			{
    +				onErrorWrapper('Transmission error');
    +			}
    +		);
    +	}
    +};
    +
    +/**
    + * Function: isValidResponse
    + * 
    + * Returns true if the response data in the given <mxXmlRequest> is valid.
    + */
    +mxSession.prototype.isValidResponse = function(req)
    +{
    +	// TODO: Find condition to check if response
    +	// contains valid XML (not eg. the PHP code).
    +	return req.getText().indexOf('<?php') < 0;
    +};
    +
    +/**
    + * Function: encodeChanges
    + * 
    + * Returns the XML representation for the given array of changes.
    + */
    +mxSession.prototype.encodeChanges = function(changes, invert)
    +{
    +	// TODO: Use array for string concatenation
    +	var xml = '';
    +	var step = (invert) ? -1 : 1;
    +	var i0 = (invert) ? changes.length - 1 : 0;
    +
    +	for (var i = i0; i >= 0 && i < changes.length; i += step)
    +	{	
    +		// Newlines must be kept, they will be converted
    +		// to &#xa; when the server sends data to the
    +		// client
    +		var node = this.codec.encode(changes[i]);
    +		xml += mxUtils.getXml(node, this.linefeed);
    +	}
    +	
    +	return xml;
    +};
    +
    +/**
    + * Function: receive
    + * 
    + * Processes the given node by applying the changes to the model. If the nodename
    + * is state, then the namespace is used as a prefix for creating Ids in the model,
    + * and the child nodes are visited recursively. If the nodename is delta, then the
    + * changes encoded in the child nodes are applied to the model. Each call to the
    + * receive function fires a <receive> event with the given node as the second argument
    + * after processing. If changes are processed, then the function additionally fires
    + * a <mxEvent.FIRED> event before the <mxEvent.RECEIVE> event.
    + */
    +mxSession.prototype.receive = function(node)
    +{
    +	if (node != null &&
    +		node.nodeType == mxConstants.NODETYPE_ELEMENT)
    +	{
    +		// Uses the namespace in the model
    +		var ns = node.getAttribute('namespace');
    +		
    +		if (ns != null)
    +		{
    +			this.model.prefix = ns + '-';
    +		}
    +		
    +		var child = node.firstChild;
    +		
    +		while (child != null)
    +		{
    +			var name = child.nodeName.toLowerCase();
    +			
    +			if (name == 'state')
    +			{
    +				this.processState(child);
    +			}
    +			else if (name == 'delta')
    +			{
    +				this.processDelta(child);	
    +			}
    +			
    +			child = child.nextSibling;
    +		}
    +		
    +		// Fires receive event
    +		this.fireEvent(new mxEventObject(mxEvent.RECEIVE, 'node', node));
    +	}
    +};
    +
    +/**
    + * Function: processState
    + * 
    + * Processes the given state node which contains the current state of the
    + * remote model.
    + */
    +mxSession.prototype.processState = function(node)
    +{
    +	var dec = new mxCodec(node.ownerDocument);
    +	dec.decode(node.firstChild, this.model);
    +};
    +
    +/**
    + * Function: processDelta
    + * 
    + * Processes the given delta node which contains a sequence of edits which in
    + * turn map to one transaction on the remote model each.
    + */
    +mxSession.prototype.processDelta = function(node)
    +{
    +	var edit = node.firstChild;
    +	
    +	while (edit != null)
    +	{
    +		if (edit.nodeName == 'edit')
    +		{
    +			this.processEdit(edit);
    +		}
    +		
    +		edit = edit.nextSibling;
    +	}
    +};
    +
    +/**
    + * Function: processEdit
    + * 
    + * Processes the given edit by executing its changes and firing the required
    + * events via the model.
    + */
    +mxSession.prototype.processEdit = function(node)
    +{
    +	var changes = this.decodeChanges(node);
    +	
    +	if (changes.length > 0)
    +	{
    +		var edit = this.createUndoableEdit(changes);
    +		
    +		// No notify event here to avoid the edit from being encoded and transmitted
    +		// LATER: Remove changes property (deprecated)
    +		this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,
    +			'edit', edit, 'changes', changes));
    +		this.model.fireEvent(new mxEventObject(mxEvent.UNDO, 'edit', edit));
    +		this.fireEvent(new mxEventObject(mxEvent.FIRED, 'edit', edit));
    +	}
    +};
    +
    +/**
    + * Function: createUndoableEdit
    + * 
    + * Creates a new <mxUndoableEdit> that implements the notify function to fire a
    + * <change> and <notify> event via the model.
    + */
    +mxSession.prototype.createUndoableEdit = function(changes)
    +{
    +	var edit = new mxUndoableEdit(this.model, this.significantRemoteChanges);
    +	edit.changes = changes;
    +	
    +	edit.notify = function()
    +	{
    +		// LATER: Remove changes property (deprecated)
    +		edit.source.fireEvent(new mxEventObject(mxEvent.CHANGE,
    +			'edit', edit, 'changes', edit.changes));
    +		edit.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,
    +			'edit', edit, 'changes', edit.changes));
    +	};
    +	
    +	return edit;
    +};
    +
    +/**
    + * Function: decodeChanges
    + * 
    + * Decodes and executes the changes represented by the children in the
    + * given node. Returns an array that contains all changes.
    + */
    +mxSession.prototype.decodeChanges = function(node)
    +{
    +	// Updates the document in the existing codec
    +	this.codec.document = node.ownerDocument;
    +
    +	// Parses and executes the changes on the model
    +	var changes = [];
    +	node = node.firstChild;
    +	
    +	while (node != null)
    +	{
    +		if (node.nodeType == mxConstants.NODETYPE_ELEMENT)
    +		{
    +			var change = null;
    +			
    +			if (node.nodeName == 'mxRootChange')
    +			{
    +				// Handles the special case were no ids should be
    +				// resolved in the existing model. This change will
    +				// replace all registered ids and cells from the
    +				// model and insert a new cell hierarchy instead.
    +				var tmp = new mxCodec(node.ownerDocument);
    +				change = tmp.decode(node);
    +			}
    +			else
    +			{
    +				change = this.codec.decode(node);
    +			}
    +			
    +			if (change != null)
    +			{
    +				change.model = this.model;
    +				change.execute();
    +				
    +				// Workaround for references not being resolved if cells have
    +				// been removed from the model prior to being referenced. This
    +				// adds removed cells in the codec object lookup table.
    +				if (node.nodeName == 'mxChildChange' &&
    +					change.parent == null)
    +				{
    +					this.cellRemoved(change.child);
    +				}
    +				
    +				changes.push(change);
    +			}
    +		}
    +		
    +		node = node.nextSibling;
    +	}
    +	
    +	return changes;
    +};
    +
    +/**
    + * Function: cellRemoved
    + * 
    + * Adds removed cells to the codec object lookup for references to the removed
    + * cells after this point in time.
    + */
    +mxSession.prototype.cellRemoved = function(cell, codec)
    +{
    +	this.codec.putObject(cell.getId(), cell);
    +	
    +	var childCount = this.model.getChildCount(cell);
    +	
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		this.cellRemoved(this.model.getChildAt(cell, i));
    +	}
    +};
    diff --git a/javascript/src/js/util/mxSvgCanvas2D.js b/javascript/src/js/util/mxSvgCanvas2D.js
    new file mode 100644
    index 000000000..99d5c8737
    --- /dev/null
    +++ b/javascript/src/js/util/mxSvgCanvas2D.js
    @@ -0,0 +1,1237 @@
    +/**
    + * $Id: mxSvgCanvas2D.js,v 1.14 2012-04-24 13:56:56 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + *
    + * Class: mxSvgCanvas2D
    + * 
    + * Implements a canvas to be used with <mxImageExport>. This canvas writes all
    + * calls as SVG output to the given SVG root node.
    + * 
    + * (code)
    + * var svgDoc = mxUtils.createXmlDocument();
    + * var root = (svgDoc.createElementNS != null) ?
    + * 		svgDoc.createElementNS(mxConstants.NS_SVG, 'svg') : svgDoc.createElement('svg');
    + * 
    + * if (svgDoc.createElementNS == null)
    + * {
    + *   root.setAttribute('xmlns', mxConstants.NS_SVG);
    + * }
    + * 
    + * var bounds = graph.getGraphBounds();
    + * root.setAttribute('width', (bounds.x + bounds.width + 4) + 'px');
    + * root.setAttribute('height', (bounds.y + bounds.height + 4) + 'px');
    + * root.setAttribute('version', '1.1');
    + * 
    + * svgDoc.appendChild(root);
    + * 
    + * var svgCanvas = new mxSvgCanvas2D(root);
    + * (end)
    + * 
    + * Constructor: mxSvgCanvas2D
    + * 
    + * Constructs an SVG canvas.
    + * 
    + * Parameters:
    + * 
    + * root - SVG container for the output.
    + * styleEnabled - Optional boolean that specifies if a style section should be
    + * added. The style section sets the default font-size, font-family and
    + * stroke-miterlimit globally. Default is false.
    + */
    +var mxSvgCanvas2D = function(root, styleEnabled)
    +{
    +	styleEnabled = (styleEnabled != null) ? styleEnabled : false;
    +
    +	/**
    +	 * Variable: converter
    +	 * 
    +	 * Holds the <mxUrlConverter> to convert image URLs.
    +	 */
    +	var converter = new mxUrlConverter();
    +	
    +	/**
    +	 * Variable: autoAntiAlias
    +	 * 
    +	 * Specifies if anti aliasing should be disabled for rectangles
    +	 * and orthogonal paths. Default is true.
    +	 */
    +	var autoAntiAlias = true;
    +	
    +	/**
    +	 * Variable: textEnabled
    +	 * 
    +	 * Specifies if text output should be enabled. Default is true.
    +	 */
    +	var textEnabled = true;
    +	
    +	/**
    +	 * Variable: foEnabled
    +	 * 
    +	 * Specifies if use of foreignObject for HTML markup is allowed. Default is true.
    +	 */
    +	var foEnabled = true;
    +
    +	// Private helper function to create SVG elements
    +	var create = function(tagName, namespace)
    +	{
    +		if (root.ownerDocument.createElementNS != null)
    +		{
    +			return root.ownerDocument.createElementNS(namespace || mxConstants.NS_SVG, tagName);
    +		}
    +		else
    +		{
    +			var elt = root.ownerDocument.createElement(tagName);
    +			
    +			if (namespace != null)
    +			{
    +				elt.setAttribute('xmlns', namespace);
    +			}
    +			
    +			return elt;
    +		}
    +	};
    +
    +	// Defs section contains optional style and gradients
    +	var defs = create('defs');
    +	
    +	// Creates defs section with optional global style
    +	if (styleEnabled)
    +	{
    +		var style = create('style');
    +		style.setAttribute('type', 'text/css');
    +		mxUtils.write(style, 'svg{font-family:' + mxConstants.DEFAULT_FONTFAMILY +
    +				';font-size:' + mxConstants.DEFAULT_FONTSIZE +
    +				';fill:none;stroke-miterlimit:10}');
    +		
    +		if (autoAntiAlias)
    +		{
    +			mxUtils.write(style, 'rect{shape-rendering:crispEdges}');
    +		}
    +	
    +		// Appends style to defs and defs to SVG container
    +		defs.appendChild(style);
    +	}
    +
    +	root.appendChild(defs);
    +	
    +	// Defines the current state
    +	var currentState =
    +	{
    +			dx: 0,
    +			dy: 0,
    +			scale: 1,
    +			transform: '',
    +			fill: null,
    +			gradient: null,
    +			stroke: null,
    +			strokeWidth: 1,
    +			dashed: false,
    +			dashpattern: '3 3',
    +			alpha: 1,
    +			linecap: 'flat',
    +			linejoin: 'miter',
    +			miterlimit: 10,
    +			fontColor: '#000000',
    +			fontSize: mxConstants.DEFAULT_FONTSIZE,
    +			fontFamily: mxConstants.DEFAULT_FONTFAMILY,
    +			fontStyle: 0
    +	};
    +	
    +	// Local variables
    +	var currentPathIsOrthogonal = true;
    +	var glassGradient = null;
    +	var currentNode = null;
    +	var currentPath = null;
    +	var lastPoint = null;
    +	var gradients = [];
    +	var refCount = 0;
    +	var stack = [];
    +
    +	// Other private helper methods
    +	var createGradientId = function(start, end, direction)
    +	{
    +		// Removes illegal characters from gradient ID
    +		if (start.charAt(0) == '#')
    +		{
    +			start = start.substring(1);
    +		}
    +		
    +		if (end.charAt(0) == '#')
    +		{
    +			end = end.substring(1);
    +		}
    +		
    +		// Workaround for gradient IDs not working in Safari 5 / Chrome 6
    +		// if they contain uppercase characters
    +		start = start.toLowerCase();
    +		end = end.toLowerCase();
    +
    +		// Wrong gradient directions possible?
    +		var dir = null;
    +		
    +		if (direction == null || direction == mxConstants.DIRECTION_SOUTH)
    +		{
    +			dir = 's';
    +		}
    +		else if (direction == mxConstants.DIRECTION_EAST)
    +		{
    +			dir = 'e';
    +		}
    +		else
    +		{
    +			var tmp = start;
    +			start = end;
    +			end = tmp;
    +			
    +			if (direction == mxConstants.DIRECTION_NORTH)
    +			{
    +				dir = 's';
    +			}
    +			else if (direction == mxConstants.DIRECTION_WEST)
    +			{
    +				dir = 'e';
    +			}
    +		}
    +		
    +		return start+'-'+end+'-'+dir;
    +	};
    +	
    +	var createHtmlBody = function(str, align, valign)
    +	{
    +		var style = 'margin:0px;font-size:' + Math.floor(currentState.fontSize) + 'px;' +
    +			'font-family:' + currentState.fontFamily + ';color:' + currentState.fontColor+ ';';
    +		
    +		if ((currentState.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD)
    +		{
    +			style += 'font-weight:bold;';
    +		}
    +
    +		if ((currentState.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC)
    +		{
    +			style += 'font-style:italic;';
    +		}
    +		
    +		if ((currentState.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE)
    +		{
    +			style += 'font-decoration:underline;';
    +		}
    +		
    +		if (align == mxConstants.ALIGN_CENTER)
    +		{
    +			style += 'text-align:center;';
    +		}
    +		else if (align == mxConstants.ALIGN_RIGHT)
    +		{
    +			style += 'text-align:right;';
    +		}
    +
    +		// LATER: Add vertical align support via table
    +		var body = create('body', 'http://www.w3.org/1999/xhtml');
    +		body.setAttribute('style', style);
    +		
    +		// Adds surrounding DIV to guarantee one root element, adds xmlns to workaround empty NS in IE9 standards
    +		var node = mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml">' + str + '</div>').documentElement; 
    +		
    +		if (body.ownerDocument.importNode != null)
    +		{
    +			node = body.ownerDocument.importNode(node, true);
    +		}
    +			
    +		body.appendChild(node);
    +		
    +		return body;
    +	};
    +
    +	var getSvgGradient = function(start, end, direction)
    +	{
    +		var id = createGradientId(start, end, direction);
    +		var gradient = gradients[id];
    +		
    +		if (gradient == null)
    +		{
    +			gradient = create('linearGradient');
    +			gradient.setAttribute('id', ++refCount);
    +			gradient.setAttribute('x1', '0%');
    +			gradient.setAttribute('y1', '0%');
    +			gradient.setAttribute('x2', '0%');
    +			gradient.setAttribute('y2', '0%');
    +			
    +			if (direction == null || direction == mxConstants.DIRECTION_SOUTH)
    +			{
    +				gradient.setAttribute('y2', '100%');
    +			}
    +			else if (direction == mxConstants.DIRECTION_EAST)
    +			{
    +				gradient.setAttribute('x2', '100%');
    +			}
    +			else if (direction == mxConstants.DIRECTION_NORTH)
    +			{
    +				gradient.setAttribute('y1', '100%');
    +			}
    +			else if (direction == mxConstants.DIRECTION_WEST)
    +			{
    +				gradient.setAttribute('x1', '100%');
    +			}
    +			
    +			var stop = create('stop');
    +			stop.setAttribute('offset', '0%');
    +			stop.setAttribute('style', 'stop-color:'+start);
    +			gradient.appendChild(stop);
    +			
    +			stop = create('stop');
    +			stop.setAttribute('offset', '100%');
    +			stop.setAttribute('style', 'stop-color:'+end);
    +			gradient.appendChild(stop);
    +			
    +			defs.appendChild(gradient);
    +			gradients[id] = gradient;
    +		}
    +
    +		return gradient.getAttribute('id');
    +	};
    +	
    +	var appendNode = function(node, state, filled, stroked)
    +	{
    +		if (node != null)
    +		{
    +			if (state.clip != null)
    +			{
    +				node.setAttribute('clip-path', 'url(#' + state.clip + ')');
    +				state.clip = null;
    +			}
    +			
    +			if (currentPath != null)
    +			{
    +				node.setAttribute('d', currentPath.join(' '));
    +				currentPath = null;
    +				
    +				if (autoAntiAlias && currentPathIsOrthogonal)
    +				{
    +					node.setAttribute('shape-rendering', 'crispEdges');
    +					state.strokeWidth = Math.max(1, state.strokeWidth);
    +				}
    +			}
    +			
    +			if (state.alpha < 1)
    +			{
    +				// LATER: Check if using fill/stroke-opacity here is faster
    +				node.setAttribute('opacity', state.alpha);
    +				//node.setAttribute('fill-opacity', state.alpha);
    +				//node.setAttribute('stroke-opacity', state.alpha);
    +			}
    +			
    +			if (filled && (state.fill != null || state.gradient != null))
    +			{
    +				if (state.gradient != null)
    +				{
    +					node.setAttribute('fill', 'url(#' + state.gradient + ')');
    +				}
    +				else
    +				{
    +					node.setAttribute('fill', state.fill.toLowerCase());
    +				}
    +			}
    +			else if (!styleEnabled)
    +			{
    +				node.setAttribute('fill', 'none');
    +			}
    +			
    +			if (stroked && state.stroke != null)
    +			{
    +				node.setAttribute('stroke', state.stroke.toLowerCase());
    +				
    +				// Sets the stroke properties (1 is default is SVG)
    +				if (state.strokeWidth != 1)
    +				{
    +					if (node.nodeName == 'rect' && autoAntiAlias)
    +					{
    +						state.strokeWidth = Math.max(1, state.strokeWidth);
    +					}
    +					
    +					node.setAttribute('stroke-width', state.strokeWidth);
    +				}
    +				
    +				if (node.nodeName == 'path')
    +				{
    +					// Linejoin miter is default in SVG
    +					if (state.linejoin != null && state.linejoin != 'miter')
    +					{
    +						node.setAttribute('stroke-linejoin', state.linejoin);
    +					}
    +					
    +					if (state.linecap != null)
    +					{
    +						// flat is called butt in SVG
    +						var value = state.linecap;
    +						
    +						if (value == 'flat')
    +						{
    +							value = 'butt';
    +						}
    +						
    +						// Linecap butt is default in SVG
    +						if (value != 'butt')
    +						{
    +							node.setAttribute('stroke-linecap', value);
    +						}
    +					}
    +					
    +					// Miterlimit 10 is default in our document
    +					if (state.miterlimit != null && (!styleEnabled || state.miterlimit != 10))
    +					{
    +						node.setAttribute('stroke-miterlimit', state.miterlimit);
    +					}
    +				}
    +				
    +				if (state.dashed)
    +				{
    +					var dash = state.dashpattern.split(' ');
    +					
    +					if (dash.length > 0)
    +					{
    +						var pat = [];
    +						
    +						for (var i = 0; i < dash.length; i++)
    +						{
    +							pat[i] = Number(dash[i]) * currentState.strokeWidth;
    +						}
    +					
    +					
    +						node.setAttribute('stroke-dasharray', pat.join(' '));
    +					}
    +				}
    +			}
    +			
    +			if (state.transform.length > 0)
    +			{
    +				node.setAttribute('transform', state.transform);
    +			}
    +			
    +			root.appendChild(node);
    +		}
    +	};
    +	
    +	// Private helper function to format a number
    +	var f2 = function(x)
    +	{
    +		return Math.round(parseFloat(x) * 100) / 100;
    +	};
    +	
    +	// Returns public interface
    +	return {
    +
    +		/**
    +		 * Function: getConverter
    +		 * 
    +		 * Returns <converter>.
    +		 */
    +		getConverter: function()
    +		{
    +			return converter;
    +		},
    +
    +		/**
    +		 * Function: isAutoAntiAlias
    +		 * 
    +		 * Returns <autoAntiAlias>.
    +		 */
    +		isAutoAntiAlias: function()
    +		{
    +			return autoAntiAlias;
    +		},
    +
    +		/**
    +		 * Function: setAutoAntiAlias
    +		 * 
    +		 * Sets <autoAntiAlias>.
    +		 */
    +		setAutoAntiAlias: function(value)
    +		{
    +			autoAntiAlias = value;
    +		},
    +
    +		/**
    +		 * Function: isTextEnabled
    +		 * 
    +		 * Returns <textEnabled>.
    +		 */
    +		isTextEnabled: function()
    +		{
    +			return textEnabled;
    +		},
    +
    +		/**
    +		 * Function: setTextEnabled
    +		 * 
    +		 * Sets <textEnabled>.
    +		 */
    +		setTextEnabled: function(value)
    +		{
    +			textEnabled = value;
    +		},
    +
    +		/**
    +		 * Function: isFoEnabled
    +		 * 
    +		 * Returns <foEnabled>.
    +		 */
    +		isFoEnabled: function()
    +		{
    +			return foEnabled;
    +		},
    +
    +		/**
    +		 * Function: setFoEnabled
    +		 * 
    +		 * Sets <foEnabled>.
    +		 */
    +		setFoEnabled: function(value)
    +		{
    +			foEnabled = value;
    +		},
    +
    +		/**
    +		 * Function: save
    +		 * 
    +		 * Saves the state of the graphics object.
    +		 */
    +		save: function()
    +		{
    +			stack.push(currentState);
    +			currentState = mxUtils.clone(currentState);
    +		},
    +		
    +		/**
    +		 * Function: restore
    +		 * 
    +		 * Restores the state of the graphics object.
    +		 */
    +		restore: function()
    +		{
    +			currentState = stack.pop();
    +		},
    +		
    +		/**
    +		 * Function: scale
    +		 * 
    +		 * Scales the current graphics object.
    +		 */
    +		scale: function(value)
    +		{
    +			currentState.scale *= value;
    +			currentState.strokeWidth *= value;
    +		},
    +		
    +		/**
    +		 * Function: translate
    +		 * 
    +		 * Translates the current graphics object.
    +		 */
    +		translate: function(dx, dy)
    +		{
    +			currentState.dx += dx;
    +			currentState.dy += dy;
    +		},
    +		
    +		/**
    +		 * Function: rotate
    +		 * 
    +		 * Rotates and/or flips the current graphics object.
    +		 */
    +		rotate: function(theta, flipH, flipV, cx, cy)
    +		{
    +			cx += currentState.dx;
    +			cy += currentState.dy;
    +
    +			cx *= currentState.scale;
    +			cy *= currentState.scale;
    +
    +			// This implementation uses custom scale/translate and built-in rotation
    +			// Rotation state is part of the AffineTransform in state.transform
    +			if (flipH ^ flipV)
    +			{
    +				var tx = (flipH) ? cx : 0;
    +				var sx = (flipH) ? -1 : 1;
    +
    +				var ty = (flipV) ? cy : 0;
    +				var sy = (flipV) ? -1 : 1;
    +
    +				currentState.transform += 'translate(' + f2(tx) + ',' + f2(ty) + ')';
    +				currentState.transform += 'scale(' + f2(sx) + ',' + f2(sy) + ')';
    +				currentState.transform += 'translate(' + f2(-tx) + ' ' + f2(-ty) + ')';
    +			}
    +			
    +			currentState.transform += 'rotate(' + f2(theta) + ',' + f2(cx) + ',' + f2(cy) + ')';
    +		},
    +		
    +		/**
    +		 * Function: setStrokeWidth
    +		 * 
    +		 * Sets the stroke width.
    +		 */
    +		setStrokeWidth: function(value)
    +		{
    +			currentState.strokeWidth = value * currentState.scale;
    +		},
    +		
    +		/**
    +		 * Function: setStrokeColor
    +		 * 
    +		 * Sets the stroke color.
    +		 */
    +		setStrokeColor: function(value)
    +		{
    +			currentState.stroke = value;
    +		},
    +		
    +		/**
    +		 * Function: setDashed
    +		 * 
    +		 * Sets the dashed state to true or false.
    +		 */
    +		setDashed: function(value)
    +		{
    +			currentState.dashed = value;
    +		},
    +		
    +		/**
    +		 * Function: setDashPattern
    +		 * 
    +		 * Sets the dashed pattern to the given space separated list of numbers.
    +		 */
    +		setDashPattern: function(value)
    +		{
    +			currentState.dashpattern = value;
    +		},
    +		
    +		/**
    +		 * Function: setLineCap
    +		 * 
    +		 * Sets the linecap.
    +		 */
    +		setLineCap: function(value)
    +		{
    +			currentState.linecap = value;
    +		},
    +		
    +		/**
    +		 * Function: setLineJoin
    +		 * 
    +		 * Sets the linejoin.
    +		 */
    +		setLineJoin: function(value)
    +		{
    +			currentState.linejoin = value;
    +		},
    +		
    +		/**
    +		 * Function: setMiterLimit
    +		 * 
    +		 * Sets the miterlimit.
    +		 */
    +		setMiterLimit: function(value)
    +		{
    +			currentState.miterlimit = value;
    +		},
    +		
    +		/**
    +		 * Function: setFontSize
    +		 * 
    +		 * Sets the fontsize.
    +		 */
    +		setFontSize: function(value)
    +		{
    +			currentState.fontSize = value;
    +		},
    +		
    +		/**
    +		 * Function: setFontColor
    +		 * 
    +		 * Sets the fontcolor.
    +		 */
    +		setFontColor: function(value)
    +		{
    +			currentState.fontColor = value;
    +		},
    +		
    +		/**
    +		 * Function: setFontFamily
    +		 * 
    +		 * Sets the fontfamily.
    +		 */
    +		setFontFamily: function(value)
    +		{
    +			currentState.fontFamily = value;
    +		},
    +		
    +		/**
    +		 * Function: setFontStyle
    +		 * 
    +		 * Sets the fontstyle.
    +		 */
    +		setFontStyle: function(value)
    +		{
    +			currentState.fontStyle = value;
    +		},
    +		
    +		/**
    +		 * Function: setAlpha
    +		 * 
    +		 * Sets the current alpha.
    +		 */
    +		setAlpha: function(alpha)
    +		{
    +			currentState.alpha = alpha;
    +		},
    +		
    +		/**
    +		 * Function: setFillColor
    +		 * 
    +		 * Sets the fillcolor.
    +		 */
    +		setFillColor: function(value)
    +		{
    +			currentState.fill = value;
    +			currentState.gradient = null;
    +		},
    +		
    +		/**
    +		 * Function: setGradient
    +		 * 
    +		 * Sets the gradient color.
    +		 */
    +		setGradient: function(color1, color2, x, y, w, h, direction)
    +		{
    +			if (color1 != null && color2 != null)
    +			{
    +				currentState.gradient = getSvgGradient(color1, color2, direction);
    +				currentState.fill = color1;
    +			}
    +		},
    +		
    +		/**
    +		 * Function: setGlassGradient
    +		 * 
    +		 * Sets the glass gradient.
    +		 */
    +		setGlassGradient: function(x, y, w, h)
    +		{
    +			// Creates glass overlay gradient
    +			if (glassGradient == null)
    +			{
    +				glassGradient = create('linearGradient');
    +				glassGradient.setAttribute('id', '0');
    +				glassGradient.setAttribute('x1', '0%');
    +				glassGradient.setAttribute('y1', '0%');
    +				glassGradient.setAttribute('x2', '0%');
    +				glassGradient.setAttribute('y2', '100%');
    +				
    +				var stop1 = create('stop');
    +				stop1.setAttribute('offset', '0%');
    +				stop1.setAttribute('style', 'stop-color:#ffffff;stop-opacity:0.9');
    +				glassGradient.appendChild(stop1);
    +				
    +				var stop2 = create('stop');
    +				stop2.setAttribute('offset', '100%');
    +				stop2.setAttribute('style', 'stop-color:#ffffff;stop-opacity:0.1');
    +				glassGradient.appendChild(stop2);
    +			
    +				// Makes it the first entry of all gradients in defs
    +				if (defs.firstChild.nextSibling != null)
    +				{
    +					defs.insertBefore(glassGradient, defs.firstChild.nextSibling);
    +				}
    +				else
    +				{
    +					defs.appendChild(glassGradient);
    +				}
    +			}
    +			
    +			// Glass gradient has hardcoded ID (see above)
    +			currentState.gradient = '0';
    +		},
    +		
    +		/**
    +		 * Function: rect
    +		 * 
    +		 * Sets the current path to a rectangle.
    +		 */
    +		rect: function(x, y, w, h)
    +		{
    +			x += currentState.dx;
    +			y += currentState.dy;
    +			
    +			currentNode = create('rect');
    +			currentNode.setAttribute('x', f2(x * currentState.scale));
    +			currentNode.setAttribute('y', f2(y * currentState.scale));
    +			currentNode.setAttribute('width', f2(w * currentState.scale));
    +			currentNode.setAttribute('height', f2(h * currentState.scale));
    +			
    +			if (!styleEnabled && autoAntiAlias)
    +			{
    +				currentNode.setAttribute('shape-rendering', 'crispEdges');
    +			}
    +		},
    +		
    +		/**
    +		 * Function: roundrect
    +		 * 
    +		 * Sets the current path to a rounded rectangle.
    +		 */
    +		roundrect: function(x, y, w, h, dx, dy)
    +		{
    +			x += currentState.dx;
    +			y += currentState.dy;
    +			
    +			currentNode = create('rect');
    +			currentNode.setAttribute('x', f2(x * currentState.scale));
    +			currentNode.setAttribute('y', f2(y * currentState.scale));
    +			currentNode.setAttribute('width', f2(w * currentState.scale));
    +			currentNode.setAttribute('height', f2(h * currentState.scale));
    +			
    +			if (dx > 0)
    +			{
    +				currentNode.setAttribute('rx', f2(dx * currentState.scale));
    +			}
    +			
    +			if (dy > 0)
    +			{
    +				currentNode.setAttribute('ry', f2(dy * currentState.scale));
    +			}
    +			
    +			if (!styleEnabled && autoAntiAlias)
    +			{
    +				currentNode.setAttribute('shape-rendering', 'crispEdges');
    +			}
    +		},
    +		
    +		/**
    +		 * Function: ellipse
    +		 * 
    +		 * Sets the current path to an ellipse.
    +		 */
    +		ellipse: function(x, y, w, h)
    +		{
    +			x += currentState.dx;
    +			y += currentState.dy;
    +			
    +			currentNode = create('ellipse');
    +			currentNode.setAttribute('cx', f2((x + w / 2) * currentState.scale));
    +			currentNode.setAttribute('cy', f2((y + h / 2) * currentState.scale));
    +			currentNode.setAttribute('rx', f2(w / 2 * currentState.scale));
    +			currentNode.setAttribute('ry', f2(h / 2 * currentState.scale));
    +		},
    +		
    +		/**
    +		 * Function: image
    +		 * 
    +		 * Paints an image.
    +		 */
    +		image: function(x, y, w, h, src, aspect, flipH, flipV)
    +		{
    +			src = converter.convert(src);
    +			
    +			// TODO: Add option for embedded images as base64. Current
    +			// known issues are binary loading of cross-domain images.
    +			aspect = (aspect != null) ? aspect : true;
    +			flipH = (flipH != null) ? flipH : false;
    +			flipV = (flipV != null) ? flipV : false;
    +			x += currentState.dx;
    +			y += currentState.dy;
    +			
    +			var node = create('image');
    +			node.setAttribute('x', f2(x * currentState.scale));
    +			node.setAttribute('y', f2(y * currentState.scale));
    +			node.setAttribute('width', f2(w * currentState.scale));
    +			node.setAttribute('height', f2(h * currentState.scale));
    +			
    +			if (mxClient.IS_VML)
    +			{
    +				node.setAttribute('xlink:href', src);
    +			}
    +			else
    +			{
    +				node.setAttributeNS(mxConstants.NS_XLINK, 'xlink:href', src);
    +			}
    +			
    +			if (!aspect)
    +			{
    +				node.setAttribute('preserveAspectRatio', 'none');
    +			}
    +			
    +			if (currentState.alpha < 1)
    +			{
    +				node.setAttribute('opacity', currentState.alpha);
    +			}
    +			
    +
    +			var tr = currentState.transform;
    +			
    +			if (flipH || flipV)
    +			{
    +				var sx = 1;
    +				var sy = 1;
    +				var dx = 0;
    +				var dy = 0;
    +				
    +				if (flipH)
    +				{
    +					sx = -1;
    +					dx = -w - 2 * x;
    +				}
    +				
    +				if (flipV)
    +				{
    +					sy = -1;
    +					dy = -h - 2 * y;
    +				}
    +				
    +				// Adds image tansformation to existing transforms
    +				tr += 'scale(' + sx + ',' + sy + ')translate(' + dx + ',' + dy + ')';
    +			}
    +			
    +			if (tr.length > 0)
    +			{
    +				node.setAttribute('transform', tr);
    +			}
    +			
    +			root.appendChild(node);
    +		},
    +		
    +		/**
    +		 * Function: text
    +		 * 
    +		 * Paints the given text. Possible values for format are empty string for
    +		 * plain text and html for HTML markup.
    +		 */
    +		text: function(x, y, w, h, str, align, valign, vertical, wrap, format)
    +		{
    +			if (textEnabled)
    +			{
    +				x += currentState.dx;
    +				y += currentState.dy;
    +				
    +				if (foEnabled && format == 'html')
    +				{
    +					var node = create('g');
    +					node.setAttribute('transform', currentState.transform + 'scale(' + currentState.scale + ',' + currentState.scale + ')');
    +					
    +					if (currentState.alpha < 1)
    +					{
    +						node.setAttribute('opacity', currentState.alpha);
    +					}
    +					
    +					var fo = create('foreignObject');
    +					fo.setAttribute('x', Math.round(x));
    +					fo.setAttribute('y', Math.round(y));
    +					fo.setAttribute('width', Math.round(w));
    +					fo.setAttribute('height', Math.round(h));
    +					fo.appendChild(createHtmlBody(str, align, valign));
    +					node.appendChild(fo);
    +					root.appendChild(node);
    +				}
    +				else
    +				{
    +					var size = Math.floor(currentState.fontSize);
    +					var node = create('g');
    +					var tr = currentState.transform;
    +					
    +					if (vertical)
    +					{
    +						var cx = x + w / 2;
    +						var cy = y + h / 2;
    +						tr += 'rotate(-90,' + f2(cx * currentState.scale) + ',' + f2(cy * currentState.scale) + ')';
    +					}
    +					
    +					if (tr.length > 0)
    +					{
    +						node.setAttribute('transform', tr);
    +					}
    +					
    +					if (currentState.alpha < 1)
    +					{
    +						node.setAttribute('opacity', currentState.alpha);
    +					}
    +	
    +					// Default is left
    +					var anchor = (align == mxConstants.ALIGN_RIGHT) ? 'end' :
    +									(align == mxConstants.ALIGN_CENTER) ? 'middle' :
    +									'start';
    +					
    +					if (anchor == 'end')
    +					{
    +						x += Math.max(0, w - 2);
    +					}
    +					else if (anchor == 'middle')
    +					{
    +						x += w / 2;
    +					}
    +					else
    +					{
    +						x += (w > 0) ? 2 : 0;
    +					}
    +					
    +					if ((currentState.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD)
    +					{
    +						node.setAttribute('font-weight', 'bold');
    +					}
    +	
    +					if ((currentState.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC)
    +					{
    +						node.setAttribute('font-style', 'italic');
    +					}
    +					
    +					if ((currentState.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE)
    +					{
    +						node.setAttribute('text-decoration', 'underline');
    +					}
    +	
    +					// Text-anchor start is default in SVG
    +					if (anchor != 'start')
    +					{
    +						node.setAttribute('text-anchor', anchor);
    +					}
    +					
    +					if (!styleEnabled || size != mxConstants.DEFAULT_FONTSIZE)
    +					{
    +						node.setAttribute('font-size', Math.floor(size * currentState.scale) + 'px');
    +					}
    +					
    +					if (!styleEnabled || currentState.fontFamily != mxConstants.DEFAULT_FONTFAMILY)
    +					{
    +						node.setAttribute('font-family', currentState.fontFamily);
    +					}
    +					
    +					node.setAttribute('fill', currentState.fontColor);
    +	
    +					var lines = str.split('\n');
    +					
    +					var lineHeight = size * 1.25;
    +					var textHeight = (h > 0) ? size + (lines.length - 1) * lineHeight : lines.length * lineHeight - 1;
    +					var dy = h - textHeight;
    +	
    +					// Top is default
    +					if (valign == null || valign == mxConstants.ALIGN_TOP)
    +					{
    +						y = Math.max(y - 3 * currentState.scale, y + dy / 2 + ((h > 0) ? lineHeight / 2 - 8 : 0));
    +					}
    +					else if (valign == mxConstants.ALIGN_MIDDLE)
    +					{
    +						y = y + dy / 2;
    +					}
    +					else if (valign == mxConstants.ALIGN_BOTTOM)
    +					{
    +						y = Math.min(y, y + dy + 2 * currentState.scale);
    +					}
    +	
    +					y += size;
    +	
    +					for (var i = 0; i < lines.length; i++)
    +					{
    +						var text = create('text');
    +						text.setAttribute('x', f2(x * currentState.scale));
    +						text.setAttribute('y', f2(y * currentState.scale));
    +						
    +						mxUtils.write(text, lines[i]);
    +						node.appendChild(text);
    +						y += size * 1.3;
    +					}
    +					
    +					root.appendChild(node);
    +				}
    +			}
    +		},
    +		
    +		/**
    +		 * Function: begin
    +		 * 
    +		 * Starts a new path.
    +		 */
    +		begin: function()
    +		{
    +			currentNode = create('path');
    +			currentPath = [];
    +			lastPoint = null;
    +			currentPathIsOrthogonal = true;
    +		},
    +		
    +		/**
    +		 * Function: moveTo
    +		 * 
    +		 * Moves the current path the given coordinates.
    +		 */
    +		moveTo: function(x, y)
    +		{
    +			if (currentPath != null)
    +			{
    +				x += currentState.dx;
    +				y += currentState.dy;
    +				currentPath.push('M ' + f2(x * currentState.scale) + ' ' + f2(y * currentState.scale));
    +				
    +				if (autoAntiAlias)
    +				{
    +					lastPoint = new mxPoint(x, y);
    +				}
    +			}
    +		},
    +		
    +		/**
    +		 * Function: lineTo
    +		 * 
    +		 * Adds a line to the current path.
    +		 */
    +		lineTo: function(x, y)
    +		{
    +			if (currentPath != null)
    +			{
    +				x += currentState.dx;
    +				y += currentState.dy;
    +				currentPath.push('L ' + f2(x * currentState.scale) + ' ' + f2(y * currentState.scale));
    +				
    +				if (autoAntiAlias)
    +				{
    +					if (lastPoint != null && currentPathIsOrthogonal && x != lastPoint.x && y != lastPoint.y)
    +					{
    +						currentPathIsOrthogonal = false;
    +					}
    +					
    +					lastPoint = new mxPoint(x, y);
    +				}
    +			}
    +		},
    +		
    +		/**
    +		 * Function: quadTo
    +		 * 
    +		 * Adds a quadratic curve to the current path.
    +		 */
    +		quadTo: function(x1, y1, x2, y2)
    +		{
    +			if (currentPath != null)
    +			{
    +				x1 += currentState.dx;
    +				y1 += currentState.dy;
    +				x2 += currentState.dx;
    +				y2 += currentState.dy;
    +				currentPath.push('Q ' + f2(x1 * currentState.scale) + ' ' + f2(y1 * currentState.scale) +
    +					' ' + f2(x2 * currentState.scale) + ' ' + f2(y2 * currentState.scale));
    +				currentPathIsOrthogonal = false;
    +			}
    +		},
    +		
    +		/**
    +		 * Function: curveTo
    +		 * 
    +		 * Adds a bezier curve to the current path.
    +		 */
    +		curveTo: function(x1, y1, x2, y2, x3, y3)
    +		{
    +			if (currentPath != null)
    +			{
    +				x1 += currentState.dx;
    +				y1 += currentState.dy;
    +				x2 += currentState.dx;
    +				y2 += currentState.dy;
    +				x3 += currentState.dx;
    +				y3 += currentState.dy;
    +				currentPath.push('C ' + f2(x1 * currentState.scale) + ' ' + f2(y1 * currentState.scale) +
    +					' ' + f2(x2 * currentState.scale) + ' ' + f2(y2 * currentState.scale) +' ' +
    +					f2(x3 * currentState.scale) + ' ' + f2(y3 * currentState.scale));
    +				currentPathIsOrthogonal = false;
    +			}
    +		},
    +
    +		/**
    +		 * Function: close
    +		 * 
    +		 * Closes the current path.
    +		 */
    +		close: function()
    +		{
    +			if (currentPath != null)
    +			{
    +				currentPath.push('Z');
    +			}
    +		},
    +		
    +		/**
    +		 * Function: stroke
    +		 * 
    +		 * Paints the outline of the current path.
    +		 */
    +		stroke: function()
    +		{
    +			appendNode(currentNode, currentState, false, true);
    +		},
    +		
    +		/**
    +		 * Function: fill
    +		 * 
    +		 * Fills the current path.
    +		 */
    +		fill: function()
    +		{
    +			appendNode(currentNode, currentState, true, false);
    +		},
    +		
    +		/**
    +		 * Function: fillstroke
    +		 * 
    +		 * Fills and paints the outline of the current path.
    +		 */
    +		fillAndStroke: function()
    +		{
    +			appendNode(currentNode, currentState, true, true);
    +		},
    +		
    +		/**
    +		 * Function: shadow
    +		 * 
    +		 * Paints the current path as a shadow of the given color.
    +		 */
    +		shadow: function(value, filled)
    +		{
    +			this.save();
    +			this.setStrokeColor(value);
    +			
    +			if (filled)
    +			{
    +				this.setFillColor(value);
    +				this.fillAndStroke();
    +			}
    +			else
    +			{
    +				this.stroke();
    +			}
    +			
    +			this.restore();
    +		},
    +		
    +		/**
    +		 * Function: clip
    +		 * 
    +		 * Uses the current path for clipping.
    +		 */
    +		clip: function()
    +		{
    +			if (currentNode != null)
    +			{
    +				if (currentPath != null)
    +				{
    +					currentNode.setAttribute('d', currentPath.join(' '));
    +					currentPath = null;
    +				}
    +				
    +				var id = ++refCount;
    +				var clip = create('clipPath');
    +				clip.setAttribute('id', id);
    +				clip.appendChild(currentNode);
    +				defs.appendChild(clip);
    +				currentState.clip = id;
    +			}
    +		}
    +	};
    +
    +};
    \ No newline at end of file
    diff --git a/javascript/src/js/util/mxToolbar.js b/javascript/src/js/util/mxToolbar.js
    new file mode 100644
    index 000000000..d42f0cede
    --- /dev/null
    +++ b/javascript/src/js/util/mxToolbar.js
    @@ -0,0 +1,545 @@
    +/**
    + * $Id: mxToolbar.js,v 1.35 2012-04-11 07:00:52 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxToolbar
    + * 
    + * Creates a toolbar inside a given DOM node. The toolbar may contain icons,
    + * buttons and combo boxes.
    + * 
    + * Event: mxEvent.SELECT
    + * 
    + * Fires when an item was selected in the toolbar. The <code>function</code>
    + * property contains the function that was selected in <selectMode>.
    + * 
    + * Constructor: mxToolbar
    + * 
    + * Constructs a toolbar in the specified container.
    + *
    + * Parameters:
    + *
    + * container - DOM node that contains the toolbar.
    + */
    +function mxToolbar(container)
    +{
    +	this.container = container;
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxToolbar.prototype = new mxEventSource();
    +mxToolbar.prototype.constructor = mxToolbar;
    +
    +/**
    + * Variable: container
    + * 
    + * Reference to the DOM nodes that contains the toolbar.
    + */
    +mxToolbar.prototype.container = null;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxToolbar.prototype.enabled = true;
    +
    +/**
    + * Variable: noReset
    + * 
    + * Specifies if <resetMode> requires a forced flag of true for resetting
    + * the current mode in the toolbar. Default is false. This is set to true
    + * if the toolbar item is double clicked to avoid a reset after a single
    + * use of the item.
    + */
    +mxToolbar.prototype.noReset = false;
    +
    +/**
    + * Variable: updateDefaultMode
    + * 
    + * Boolean indicating if the default mode should be the last selected
    + * switch mode or the first inserted switch mode. Default is true, that
    + * is the last selected switch mode is the default mode. The default mode
    + * is the mode to be selected after a reset of the toolbar. If this is
    + * false, then the default mode is the first inserted mode item regardless
    + * of what was last selected. Otherwise, the selected item after a reset is
    + * the previously selected item.
    + */
    +mxToolbar.prototype.updateDefaultMode = true;
    +
    +/**
    + * Function: addItem
    + * 
    + * Adds the given function as an image with the specified title and icon
    + * and returns the new image node.
    + * 
    + * Parameters:
    + * 
    + * title - Optional string that is used as the tooltip.
    + * icon - Optional URL of the image to be used. If no URL is given, then a
    + * button is created.
    + * funct - Function to execute on a mouse click.
    + * pressedIcon - Optional URL of the pressed image. Default is a gray
    + * background.
    + * style - Optional style classname. Default is mxToolbarItem.
    + * factoryMethod - Optional factory method for popup menu, eg.
    + * function(menu, evt, cell) { menu.addItem('Hello, World!'); }
    + */
    +mxToolbar.prototype.addItem = function(title, icon, funct, pressedIcon, style, factoryMethod)
    +{
    +	var img = document.createElement((icon != null) ? 'img' : 'button');
    +	var initialClassName = style || ((factoryMethod != null) ?
    +			'mxToolbarMode' : 'mxToolbarItem');
    +	img.className = initialClassName;
    +	img.setAttribute('src', icon);
    +	
    +	if (title != null)
    +	{
    +		if (icon != null)
    +		{
    +			img.setAttribute('title', title);
    +		}
    +		else
    +		{
    +			mxUtils.write(img, title);
    +		}
    +	}
    +	
    +	this.container.appendChild(img);
    +
    +	// Invokes the function on a click on the toolbar item
    +	if (funct != null)
    +	{
    +		mxEvent.addListener(img, (mxClient.IS_TOUCH) ? 'touchend' : 'click', funct);
    +	}
    +	
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +
    +	// Highlights the toolbar item with a gray background
    +	// while it is being clicked with the mouse
    +	mxEvent.addListener(img, md, mxUtils.bind(this, function(evt)
    +	{
    +		if (pressedIcon != null)
    +		{
    +			img.setAttribute('src', pressedIcon);
    +		}
    +		else
    +		{
    +			img.style.backgroundColor = 'gray';
    +		}
    +		
    +		// Popup Menu
    +		if (factoryMethod != null)
    +		{
    +			if (this.menu == null)
    +			{
    +				this.menu = new mxPopupMenu();
    +				this.menu.init();
    +			}
    +			
    +			var last = this.currentImg;
    +			
    +			if (this.menu.isMenuShowing())
    +			{
    +				this.menu.hideMenu();
    +			}
    +			
    +			if (last != img)
    +			{
    +				// Redirects factory method to local factory method
    +				this.currentImg = img;
    +				this.menu.factoryMethod = factoryMethod;
    +				
    +				var point = new mxPoint(
    +					img.offsetLeft,
    +					img.offsetTop + img.offsetHeight);
    +				this.menu.popup(point.x, point.y, null, evt);
    +
    +				// Sets and overrides to restore classname
    +				if (this.menu.isMenuShowing())
    +				{
    +					img.className = initialClassName + 'Selected';
    +					
    +					this.menu.hideMenu = function()
    +					{
    +						mxPopupMenu.prototype.hideMenu.apply(this);
    +						img.className = initialClassName;
    +						this.currentImg = null;
    +					};
    +				}
    +			}
    +		}
    +	}));
    +
    +	var mouseHandler = mxUtils.bind(this, function(evt)
    +	{
    +		if (pressedIcon != null)
    +		{
    +			img.setAttribute('src', icon);
    +		}
    +		else
    +		{
    +			img.style.backgroundColor = '';
    +		}
    +	});
    +	
    +	mxEvent.addListener(img, mu, mouseHandler);
    +	mxEvent.addListener(img, 'mouseout', mouseHandler);
    +	
    +	return img;
    +};
    +
    +/**
    + * Function: addCombo
    + * 
    + * Adds and returns a new SELECT element using the given style. The element
    + * is placed inside a DIV with the mxToolbarComboContainer style classname.
    + * 
    + * Parameters:
    + * 
    + * style - Optional style classname. Default is mxToolbarCombo.
    + */
    +mxToolbar.prototype.addCombo = function(style)
    +{
    +	var div = document.createElement('div');
    +	div.style.display = 'inline';
    +	div.className = 'mxToolbarComboContainer';
    +	
    +	var select = document.createElement('select');
    +	select.className = style || 'mxToolbarCombo';
    +	div.appendChild(select);
    +	
    +	this.container.appendChild(div);
    +	
    +	return select;
    +};
    +
    +/**
    + * Function: addCombo
    + * 
    + * Adds and returns a new SELECT element using the given title as the
    + * default element. The selection is reset to this element after each
    + * change.
    + * 
    + * Parameters:
    + * 
    + * title - String that specifies the title of the default element.
    + * style - Optional style classname. Default is mxToolbarCombo.
    + */
    +mxToolbar.prototype.addActionCombo = function(title, style)
    +{
    +	var select = document.createElement('select');
    +	select.className = style || 'mxToolbarCombo';
    +	
    +	this.addOption(select, title, null);
    +	
    +	mxEvent.addListener(select, 'change', function(evt)
    +	{
    +		var value = select.options[select.selectedIndex];
    +		select.selectedIndex = 0;
    +		if (value.funct != null)
    +		{
    +			value.funct(evt);
    +		}
    +	});
    +	
    +	this.container.appendChild(select);
    +	
    +	return select;
    +};
    +
    +/**
    + * Function: addOption
    + * 
    + * Adds and returns a new OPTION element inside the given SELECT element.
    + * If the given value is a function then it is stored in the option's funct
    + * field.
    + * 
    + * Parameters:
    + * 
    + * combo - SELECT element that will contain the new entry.
    + * title - String that specifies the title of the option.
    + * value - Specifies the value associated with this option.
    + */
    +mxToolbar.prototype.addOption = function(combo, title, value)
    +{
    +	var option = document.createElement('option');
    +	mxUtils.writeln(option, title);
    +	
    +	if (typeof(value) == 'function')
    +	{
    +		option.funct = value;
    +	}
    +	else
    +	{
    +		option.setAttribute('value', value);
    +	}
    +	
    +	combo.appendChild(option);
    +	
    +	return option;
    +};
    +
    +/**
    + * Function: addSwitchMode
    + * 
    + * Adds a new selectable item to the toolbar. Only one switch mode item may
    + * be selected at a time. The currently selected item is the default item
    + * after a reset of the toolbar.
    + */
    +mxToolbar.prototype.addSwitchMode = function(title, icon, funct, pressedIcon, style)
    +{
    +	var img = document.createElement('img');
    +	img.initialClassName = style || 'mxToolbarMode';
    +	img.className = img.initialClassName;
    +	img.setAttribute('src', icon);
    +	img.altIcon = pressedIcon;
    +	
    +	if (title != null)
    +	{
    +		img.setAttribute('title', title);
    +	}
    +	
    +	mxEvent.addListener(img, 'click', mxUtils.bind(this, function(evt)
    +	{
    +		var tmp = this.selectedMode.altIcon;
    +		
    +		if (tmp != null)
    +		{
    +			this.selectedMode.altIcon = this.selectedMode.getAttribute('src');
    +			this.selectedMode.setAttribute('src', tmp);
    +		}
    +		else
    +		{
    +			this.selectedMode.className = this.selectedMode.initialClassName;
    +		}
    +		
    +		if (this.updateDefaultMode)
    +		{
    +			this.defaultMode = img;
    +		}
    +		
    +		this.selectedMode = img;
    +		
    +		var tmp = img.altIcon;
    +		
    +		if (tmp != null)
    +		{
    +			img.altIcon = img.getAttribute('src');
    +			img.setAttribute('src', tmp);
    +		}
    +		else
    +		{
    +			img.className = img.initialClassName+'Selected';
    +		}
    +		
    +		this.fireEvent(new mxEventObject(mxEvent.SELECT));
    +		funct();
    +	}));
    +	
    +	this.container.appendChild(img);
    +	
    +	if (this.defaultMode == null)
    +	{
    +		this.defaultMode = img;
    +		this.selectedMode = img;
    +		
    +		var tmp = img.altIcon;
    +		
    +		if (tmp != null)
    +		{
    +			img.altIcon = img.getAttribute('src');
    +			img.setAttribute('src', tmp);
    +		}
    +		else
    +		{
    +			img.className = img.initialClassName+'Selected';
    +		}
    +		
    +		funct();
    +	}
    +	
    +	return img;
    +};
    +
    +/**
    + * Function: addMode
    + * 
    + * Adds a new item to the toolbar. The selection is typically reset after
    + * the item has been consumed, for example by adding a new vertex to the
    + * graph. The reset is not carried out if the item is double clicked.
    + * 
    + * The function argument uses the following signature: funct(evt, cell) where
    + * evt is the native mouse event and cell is the cell under the mouse.
    + */
    +mxToolbar.prototype.addMode = function(title, icon, funct, pressedIcon, style, toggle)
    +{
    +	toggle = (toggle != null) ? toggle : true;
    +	var img = document.createElement((icon != null) ? 'img' : 'button');
    +	
    +	img.initialClassName = style || 'mxToolbarMode';
    +	img.className = img.initialClassName;
    +	img.setAttribute('src', icon);
    +	img.altIcon = pressedIcon;
    +
    +	if (title != null)
    +	{
    +		img.setAttribute('title', title);
    +	}
    +	
    +	if (this.enabled && toggle)
    +	{
    +		mxEvent.addListener(img, 'click', mxUtils.bind(this, function(evt)
    +		{
    +			this.selectMode(img, funct);
    +			this.noReset = false;
    +		}));
    +		mxEvent.addListener(img, 'dblclick',
    +			mxUtils.bind(this, function(evt)
    +			{
    +				this.selectMode(img, funct);
    +				this.noReset = true;
    +			})
    +		);
    +		
    +		if (this.defaultMode == null)
    +		{
    +			this.defaultMode = img;
    +			this.selectedMode = img;
    +			
    +			var tmp = img.altIcon;
    +			
    +			if (tmp != null)
    +			{
    +				img.altIcon = img.getAttribute('src');
    +				img.setAttribute('src', tmp);
    +			}
    +			else
    +			{
    +				img.className = img.initialClassName+'Selected';
    +			}
    +		}
    +	}
    +
    +	this.container.appendChild(img);					
    +
    +	return img;
    +};
    +
    +/**
    + * Function: selectMode
    + * 
    + * Resets the state of the previously selected mode and displays the given
    + * DOM node as selected. This function fires a select event with the given
    + * function as a parameter.
    + */
    +mxToolbar.prototype.selectMode = function(domNode, funct)
    +{
    +	if (this.selectedMode != domNode)
    +	{
    +		var tmp = this.selectedMode.altIcon;
    +		
    +		if (tmp != null)
    +		{
    +			this.selectedMode.altIcon = this.selectedMode.getAttribute('src');
    +			this.selectedMode.setAttribute('src', tmp);
    +		}
    +		else
    +		{
    +			this.selectedMode.className = this.selectedMode.initialClassName;
    +		}
    +		
    +		this.selectedMode = domNode;
    +		var tmp = this.selectedMode.altIcon;
    +		
    +		if (tmp != null)
    +		{
    +			this.selectedMode.altIcon = this.selectedMode.getAttribute('src');
    +			this.selectedMode.setAttribute('src', tmp);
    +		}
    +		else
    +		{
    +			this.selectedMode.className = this.selectedMode.initialClassName+'Selected';
    +		}
    +		
    +		this.fireEvent(new mxEventObject(mxEvent.SELECT, "function", funct));
    +	}
    +};
    +
    +/**
    + * Function: resetMode
    + * 
    + * Selects the default mode and resets the state of the previously selected
    + * mode.
    + */
    +mxToolbar.prototype.resetMode = function(forced)
    +{
    +	if ((forced || !this.noReset) &&
    +		this.selectedMode != this.defaultMode)
    +	{
    +		// The last selected switch mode will be activated
    +		// so the function was already executed and is
    +		// no longer required here
    +		this.selectMode(this.defaultMode, null);
    +	}
    +};
    +
    +/**
    + * Function: addSeparator
    + * 
    + * Adds the specifies image as a separator.
    + * 
    + * Parameters:
    + * 
    + * icon - URL of the separator icon.
    + */
    +mxToolbar.prototype.addSeparator = function(icon)
    +{
    +	return this.addItem(null, icon, null);
    +};
    +
    +/**
    + * Function: addBreak
    + * 
    + * Adds a break to the container.
    + */
    +mxToolbar.prototype.addBreak = function()
    +{
    +	mxUtils.br(this.container);
    +};
    +
    +/**
    + * Function: addLine
    + * 
    + * Adds a horizontal line to the container.
    + */
    +mxToolbar.prototype.addLine = function()
    +{
    +	var hr = document.createElement('hr');
    +	
    +	hr.style.marginRight = '6px';
    +	hr.setAttribute('size', '1');
    +	
    +	this.container.appendChild(hr);
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Removes the toolbar and all its associated resources.
    + */
    +mxToolbar.prototype.destroy = function ()
    +{
    +	mxEvent.release(this.container);
    +	this.container = null;
    +	this.defaultMode = null;
    +	this.selectedMode = null;
    +	
    +	if (this.menu != null)
    +	{
    +		this.menu.destroy();
    +	}
    +};
    diff --git a/javascript/src/js/util/mxUndoManager.js b/javascript/src/js/util/mxUndoManager.js
    new file mode 100644
    index 000000000..2cb93cb6c
    --- /dev/null
    +++ b/javascript/src/js/util/mxUndoManager.js
    @@ -0,0 +1,229 @@
    +/**
    + * $Id: mxUndoManager.js,v 1.30 2011-10-05 06:39:19 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxUndoManager
    + *
    + * Implements a command history. When changing the graph model, an
    + * <mxUndoableChange> object is created at the start of the transaction (when
    + * model.beginUpdate is called). All atomic changes are then added to this
    + * object until the last model.endUpdate call, at which point the
    + * <mxUndoableEdit> is dispatched in an event, and added to the history inside
    + * <mxUndoManager>. This is done by an event listener in
    + * <mxEditor.installUndoHandler>.
    + * 
    + * Each atomic change of the model is represented by an object (eg.
    + * <mxRootChange>, <mxChildChange>, <mxTerminalChange> etc) which contains the
    + * complete undo information. The <mxUndoManager> also listens to the
    + * <mxGraphView> and stores it's changes to the current root as insignificant
    + * undoable changes, so that drilling (step into, step up) is undone.
    + * 
    + * This means when you execute an atomic change on the model, then change the
    + * current root on the view and click undo, the change of the root will be
    + * undone together with the change of the model so that the display represents
    + * the state at which the model was changed. However, these changes are not
    + * transmitted for sharing as they do not represent a state change.
    + *
    + * Example:
    + * 
    + * When adding an undo manager to a graph, make sure to add it
    + * to the model and the view as well to maintain a consistent
    + * display across multiple undo/redo steps.
    + *
    + * (code)
    + * var undoManager = new mxUndoManager();
    + * var listener = function(sender, evt)
    + * {
    + *   undoManager.undoableEditHappened(evt.getProperty('edit'));
    + * };
    + * graph.getModel().addListener(mxEvent.UNDO, listener);
    + * graph.getView().addListener(mxEvent.UNDO, listener);
    + * (end)
    + * 
    + * The code creates a function that informs the undoManager
    + * of an undoable edit and binds it to the undo event of
    + * <mxGraphModel> and <mxGraphView> using
    + * <mxEventSource.addListener>.
    + * 
    + * Event: mxEvent.CLEAR
    + * 
    + * Fires after <clear> was invoked. This event has no properties.
    + * 
    + * Event: mxEvent.UNDO
    + * 
    + * Fires afer a significant edit was undone in <undo>. The <code>edit</code>
    + * property contains the <mxUndoableEdit> that was undone.
    + * 
    + * Event: mxEvent.REDO
    + * 
    + * Fires afer a significant edit was redone in <redo>. The <code>edit</code>
    + * property contains the <mxUndoableEdit> that was redone.
    + * 
    + * Event: mxEvent.ADD
    + * 
    + * Fires after an undoable edit was added to the history. The <code>edit</code>
    + * property contains the <mxUndoableEdit> that was added.
    + * 
    + * Constructor: mxUndoManager
    + *
    + * Constructs a new undo manager with the given history size. If no history
    + * size is given, then a default size of 100 steps is used.
    + */
    +function mxUndoManager(size)
    +{
    +	this.size = (size != null) ? size : 100;
    +	this.clear();
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxUndoManager.prototype = new mxEventSource();
    +mxUndoManager.prototype.constructor = mxUndoManager;
    +
    +/**
    + * Variable: size
    + * 
    + * Maximum command history size. 0 means unlimited history. Default is
    + * 100.
    + */
    +mxUndoManager.prototype.size = null;
    +
    +/**
    + * Variable: history
    + * 
    + * Array that contains the steps of the command history.
    + */
    +mxUndoManager.prototype.history = null;
    +
    +/**
    + * Variable: indexOfNextAdd
    + * 
    + * Index of the element to be added next.
    + */
    +mxUndoManager.prototype.indexOfNextAdd = 0;
    +
    +/**
    + * Function: isEmpty
    + * 
    + * Returns true if the history is empty.
    + */
    +mxUndoManager.prototype.isEmpty = function()
    +{
    +	return this.history.length == 0;
    +};
    +
    +/**
    + * Function: clear
    + * 
    + * Clears the command history.
    + */
    +mxUndoManager.prototype.clear = function()
    +{
    +	this.history = [];
    +	this.indexOfNextAdd = 0;
    +	this.fireEvent(new mxEventObject(mxEvent.CLEAR));
    +};
    +
    +/**
    + * Function: canUndo
    + * 
    + * Returns true if an undo is possible.
    + */
    +mxUndoManager.prototype.canUndo = function()
    +{
    +	return this.indexOfNextAdd > 0;
    +};
    +
    +/**
    + * Function: undo
    + * 
    + * Undoes the last change.
    + */
    +mxUndoManager.prototype.undo = function()
    +{
    +    while (this.indexOfNextAdd > 0)
    +    {
    +        var edit = this.history[--this.indexOfNextAdd];
    +        edit.undo();
    +
    +		if (edit.isSignificant())
    +        {
    +        	this.fireEvent(new mxEventObject(mxEvent.UNDO, 'edit', edit));
    +            break;
    +        }
    +    }
    +};
    +
    +/**
    + * Function: canRedo
    + * 
    + * Returns true if a redo is possible.
    + */
    +mxUndoManager.prototype.canRedo = function()
    +{
    +	return this.indexOfNextAdd < this.history.length;
    +};
    +
    +/**
    + * Function: redo
    + * 
    + * Redoes the last change.
    + */
    +mxUndoManager.prototype.redo = function()
    +{
    +    var n = this.history.length;
    +    
    +    while (this.indexOfNextAdd < n)
    +    {
    +        var edit =  this.history[this.indexOfNextAdd++];
    +        edit.redo();
    +        
    +        if (edit.isSignificant())
    +        {
    +        	this.fireEvent(new mxEventObject(mxEvent.REDO, 'edit', edit));
    +            break;
    +        }
    +    }
    +};
    +
    +/**
    + * Function: undoableEditHappened
    + * 
    + * Method to be called to add new undoable edits to the <history>.
    + */
    +mxUndoManager.prototype.undoableEditHappened = function(undoableEdit)
    +{
    +	this.trim();
    +	
    +	if (this.size > 0 &&
    +		this.size == this.history.length)
    +	{
    +		this.history.shift();
    +	}
    +	
    +	this.history.push(undoableEdit);
    +	this.indexOfNextAdd = this.history.length;
    +	this.fireEvent(new mxEventObject(mxEvent.ADD, 'edit', undoableEdit));
    +};
    +
    +/**
    + * Function: trim
    + * 
    + * Removes all pending steps after <indexOfNextAdd> from the history,
    + * invoking die on each edit. This is called from <undoableEditHappened>.
    + */
    +mxUndoManager.prototype.trim = function()
    +{
    +	if (this.history.length > this.indexOfNextAdd)
    +	{
    +		var edits = this.history.splice(this.indexOfNextAdd,
    +			this.history.length - this.indexOfNextAdd);
    +			
    +		for (var i = 0; i < edits.length; i++)
    +		{
    +			edits[i].die();
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/util/mxUndoableEdit.js b/javascript/src/js/util/mxUndoableEdit.js
    new file mode 100644
    index 000000000..886c26284
    --- /dev/null
    +++ b/javascript/src/js/util/mxUndoableEdit.js
    @@ -0,0 +1,168 @@
    +/**
    + * $Id: mxUndoableEdit.js,v 1.14 2010-09-15 16:58:51 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxUndoableEdit
    + * 
    + * Implements a composite undoable edit.
    + * 
    + * Constructor: mxUndoableEdit
    + * 
    + * Constructs a new undoable edit for the given source.
    + */
    +function mxUndoableEdit(source, significant)
    +{
    +	this.source = source;
    +	this.changes = [];
    +	this.significant = (significant != null) ? significant : true;
    +};
    +
    +/**
    + * Variable: source
    + * 
    + * Specifies the source of the edit.
    + */
    +mxUndoableEdit.prototype.source = null;
    +
    +/**
    + * Variable: changes
    + * 
    + * Array that contains the changes that make up this edit. The changes are
    + * expected to either have an undo and redo function, or an execute
    + * function. Default is an empty array.
    + */
    +mxUndoableEdit.prototype.changes = null;
    +
    +/**
    + * Variable: significant
    + * 
    + * Specifies if the undoable change is significant.
    + * Default is true.
    + */
    +mxUndoableEdit.prototype.significant = null;
    +
    +/**
    + * Variable: undone
    + * 
    + * Specifies if this edit has been undone. Default is false.
    + */
    +mxUndoableEdit.prototype.undone = false;
    +
    +/**
    + * Variable: redone
    + * 
    + * Specifies if this edit has been redone. Default is false.
    + */
    +mxUndoableEdit.prototype.redone = false;
    +
    +/**
    + * Function: isEmpty
    + * 
    + * Returns true if the this edit contains no changes.
    + */
    +mxUndoableEdit.prototype.isEmpty = function()
    +{
    +	return this.changes.length == 0;
    +};
    +
    +/**
    + * Function: isSignificant
    + * 
    + * Returns <significant>.
    + */
    +mxUndoableEdit.prototype.isSignificant = function()
    +{
    +	return this.significant;
    +};
    +
    +/**
    + * Function: add
    + * 
    + * Adds the specified change to this edit. The change is an object that is
    + * expected to either have an undo and redo, or an execute function.
    + */
    +mxUndoableEdit.prototype.add = function(change)
    +{
    +	this.changes.push(change);
    +};
    +
    +/**
    + * Function: notify
    + * 
    + * Hook to notify any listeners of the changes after an <undo> or <redo>
    + * has been carried out. This implementation is empty.
    + */
    +mxUndoableEdit.prototype.notify = function() { };
    +
    +/**
    + * Function: die
    + * 
    + * Hook to free resources after the edit has been removed from the command
    + * history. This implementation is empty.
    + */
    +mxUndoableEdit.prototype.die = function() { };
    +
    +/**
    + * Function: undo
    + * 
    + * Undoes all changes in this edit.
    + */
    +mxUndoableEdit.prototype.undo = function()
    +{
    +	if (!this.undone)
    +	{
    +		var count = this.changes.length;
    +		
    +		for (var i = count - 1; i >= 0; i--)
    +		{
    +			var change = this.changes[i];
    +			
    +			if (change.execute != null)
    +			{
    +				change.execute();
    +			}
    +			else if (change.undo != null)
    +			{
    +				change.undo();
    +			}
    +		}
    +		
    +		this.undone = true;
    +		this.redone = false;
    +	}
    +	
    +	this.notify();
    +};
    +
    +/**
    + * Function: redo
    + * 
    + * Redoes all changes in this edit.
    + */
    +mxUndoableEdit.prototype.redo = function()
    +{
    +	if (!this.redone)
    +	{
    +		var count = this.changes.length;
    +		
    +		for (var i = 0; i < count; i++)
    +		{
    +			var change = this.changes[i];
    +			
    +			if (change.execute != null)
    +			{
    +				change.execute();
    +			}
    +			else if (change.redo != null)
    +			{
    +				change.redo();
    +			}
    +		}
    +		
    +		this.undone = false;
    +		this.redone = true;
    +	}
    +	
    +	this.notify();
    +};
    diff --git a/javascript/src/js/util/mxUrlConverter.js b/javascript/src/js/util/mxUrlConverter.js
    new file mode 100644
    index 000000000..822fc8883
    --- /dev/null
    +++ b/javascript/src/js/util/mxUrlConverter.js
    @@ -0,0 +1,104 @@
    +/**
    + * $Id: mxUrlConverter.js,v 1.2 2012-05-18 14:27:52 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + *
    + * Class: mxUrlConverter
    + * 
    + * Converts relative to absolute URLs.
    + */
    +var mxUrlConverter = function(root)
    +{
    +	/**
    +	 * Variable: enabled
    +	 * 
    +	 * Specifies if the converter is enabled. Default is true.
    +	 */
    +	var enabled = true;
    +
    +	/**
    +	 * Variable: baseUrl
    +	 * 
    +	 * Specifies the base URL to be used as a prefix for relative URLs.
    +	 */
    +	var baseUrl = null;
    +	
    +	// Private helper function to update the base URL
    +	var updateBaseUrl = function()
    +	{
    +		baseUrl = document.URL;
    +		var tmp = baseUrl.lastIndexOf('/');
    +		
    +		if (tmp > 0)
    +		{
    +			baseUrl = baseUrl.substring(0, tmp + 1);
    +		}
    +	};
    +
    +	// Returns public interface
    +	return {
    +
    +		/**
    +		 * Function: isEnabled
    +		 * 
    +		 * Returns <enabled>.
    +		 */
    +		isEnabled: function()
    +		{
    +			return enabled;
    +		},
    +
    +		/**
    +		 * Function: setEnabled
    +		 * 
    +		 * Sets <enabled>.
    +		 */
    +		setEnabled: function(value)
    +		{
    +			enabled = value;
    +		},
    +
    +		/**
    +		 * Function: getBaseUrl
    +		 * 
    +		 * Returns <baseUrl>.
    +		 */
    +		getBaseUrl: function()
    +		{
    +			return baseUrl;
    +		},
    +
    +		/**
    +		 * Function: setBaseUrl
    +		 * 
    +		 * Sets <baseUrl>.
    +		 */
    +		setBaseUrl: function(value)
    +		{
    +			baseUrl = value;
    +		},
    +
    +		/**
    +		 * Function: convert
    +		 * 
    +		 * Converts the given URL to an absolute URL.
    +		 */
    +		convert: function(url)
    +		{
    +			if (enabled && url.indexOf('http://') != 0 && url.indexOf('https://') != 0 && url.indexOf('data:image') != 0)
    +			{
    +				if (baseUrl == null)
    +				{
    +					updateBaseUrl();
    +				}
    +				
    +				url = baseUrl + url;
    +			}
    +			
    +			return url;
    +		}
    +
    +	};
    +
    +};
    \ No newline at end of file
    diff --git a/javascript/src/js/util/mxUtils.js b/javascript/src/js/util/mxUtils.js
    new file mode 100644
    index 000000000..918bfc2aa
    --- /dev/null
    +++ b/javascript/src/js/util/mxUtils.js
    @@ -0,0 +1,3896 @@
    +/**
    + * $Id: mxUtils.js,v 1.290 2012-05-03 13:28:03 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxUtils =
    +{
    +	/**
    +	 * Class: mxUtils
    +	 * 
    +	 * A singleton class that provides cross-browser helper methods.
    +	 * This is a global functionality. To access the functions in this
    +	 * class, use the global classname appended by the functionname.
    +	 * You may have to load chrome://global/content/contentAreaUtils.js
    +	 * to disable certain security restrictions in Mozilla for the <open>,
    +	 * <save>, <saveAs> and <copy> function.
    +	 * 
    +	 * For example, the following code displays an error message:
    +	 * 
    +	 * (code)
    +	 * mxUtils.error('Browser is not supported!', 200, false);
    +	 * (end)
    +	 * 
    +	 * Variable: errorResource
    +	 * 
    +	 * Specifies the resource key for the title of the error window. If the
    +	 * resource for this key does not exist then the value is used as
    +	 * the title. Default is 'error'.
    +	 */
    +	errorResource: (mxClient.language != 'none') ? 'error' : '',
    +	
    +	/**
    +	 * Variable: closeResource
    +	 * 
    +	 * Specifies the resource key for the label of the close button. If the
    +	 * resource for this key does not exist then the value is used as
    +	 * the label. Default is 'close'.
    +	 */
    +	closeResource: (mxClient.language != 'none') ? 'close' : '',
    +
    +	/**
    +	 * Variable: errorImage
    +	 * 
    +	 * Defines the image used for error dialogs.
    +	 */
    +	errorImage: mxClient.imageBasePath + '/error.gif',
    +	
    +	/**
    +	 * Function: removeCursors
    +	 * 
    +	 * Removes the cursors from the style of the given DOM node and its
    +	 * descendants.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * element - DOM node to remove the cursor style from.
    +	 */
    +	removeCursors: function(element)
    +	{
    +		if (element.style != null)
    +		{
    +			element.style.cursor = '';
    +		}
    +		
    +		var children = element.childNodes;
    +		
    +		if (children != null)
    +		{
    +	        var childCount = children.length;
    +	        
    +	        for (var i = 0; i < childCount; i += 1)
    +	        {
    +	            mxUtils.removeCursors(children[i]);
    +	        }
    +	    }
    +	},
    +	
    +	/**
    +	 * Function: repaintGraph
    +	 * 
    +	 * Normally not required, this contains the code to workaround a repaint
    +	 * issue and force a repaint of the graph container in AppleWebKit.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * graph - <mxGraph> to be repainted.
    +	 * pt - <mxPoint> where the dummy element should be placed.
    +	 */
    +	repaintGraph: function(graph, pt)
    +	{
    +		if (mxClient.IS_GC || mxClient.IS_SF || mxClient.IS_OP)
    +		{
    +			var c = graph.container;
    +			
    +			if (c != null && pt != null && (c.scrollLeft > 0 || c.scrollTop > 0))
    +			{
    +				var dummy = document.createElement('div');
    +				dummy.style.position = 'absolute';
    +				dummy.style.left = pt.x + 'px';
    +				dummy.style.top = pt.y + 'px';
    +				dummy.style.width = '1px';
    +				dummy.style.height = '1px';
    +			
    +				c.appendChild(dummy);
    +				c.removeChild(dummy);
    +			}
    +		}
    +	},
    +
    +	/**
    +	 * Function: getCurrentStyle
    +	 * 
    +	 * Returns the current style of the specified element.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * element - DOM node whose current style should be returned.
    +	 */
    +	getCurrentStyle: function()
    +	{
    +		if (mxClient.IS_IE)
    +		{
    +			return function(element)
    +			{
    +				return (element != null) ? element.currentStyle : null;
    +			};
    +		}
    +		else
    +		{
    +			return function(element)
    +			{
    +				return (element != null) ?
    +					window.getComputedStyle(element, '') :
    +					null;
    +			};
    +		}
    +	}(),
    +
    +	/**
    +	 * Function: hasScrollbars
    +	 * 
    +	 * Returns true if the overflow CSS property of the given node is either
    +	 * scroll or auto.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - DOM node whose style should be checked for scrollbars.
    +	 */
    +	hasScrollbars: function(node)
    +	{
    +		var style = mxUtils.getCurrentStyle(node);
    +
    +		return style != null && (style.overflow == 'scroll' || style.overflow == 'auto');
    +	},
    +	
    +	/**
    +	 * Function: bind
    +	 * 
    +	 * Returns a wrapper function that locks the execution scope of the given
    +	 * function to the specified scope. Inside funct, the "this" keyword
    +	 * becomes a reference to that scope.
    +	 */
    +	bind: function(scope, funct)
    +	{
    +		return function()
    +		{
    +			return funct.apply(scope, arguments);
    +		};
    +	},
    +	
    +	/**
    +	 * Function: eval
    +	 * 
    +	 * Evaluates the given expression using eval and returns the JavaScript
    +	 * object that represents the expression result. Supports evaluation of
    +	 * expressions that define functions and returns the function object for
    +	 * these expressions.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * expr - A string that represents a JavaScript expression.
    +	 */
    +	eval: function(expr)
    +	{
    +		var result = null;
    +
    +		if (expr.indexOf('function') >= 0)
    +		{
    +			try
    +			{
    +				eval('var _mxJavaScriptExpression='+expr);
    +				result = _mxJavaScriptExpression;
    +				// TODO: Use delete here?
    +				_mxJavaScriptExpression = null;
    +			}
    +			catch (e)
    +			{
    +				mxLog.warn(e.message + ' while evaluating ' + expr);
    +			}
    +		}
    +		else
    +		{
    +			try
    +			{
    +				result = eval(expr);
    +			}
    +			catch (e)
    +			{
    +				mxLog.warn(e.message + ' while evaluating ' + expr);
    +			}
    +		}
    +		
    +		return result;
    +	},
    +	
    +	/**
    +	 * Function: findNode
    +	 * 
    +	 * Returns the first node where attr equals value.
    +	 * This implementation does not use XPath.
    +	 */
    +	findNode: function(node, attr, value)
    +	{
    +		var tmp = node.getAttribute(attr);
    +		
    +		if (tmp != null && tmp == value)
    +		{
    +			return node;
    +		}
    +		
    +		node = node.firstChild;
    +		
    +		while (node != null)
    +		{
    +			var result = mxUtils.findNode(node, attr, value);
    +			
    +			if (result != null)
    +			{
    +				return result;
    +			}
    +			
    +			node = node.nextSibling;
    +		}
    +		
    +		return null;
    +	},
    +	
    +	/**
    +	 * Function: findNodeByAttribute
    +	 * 
    +	 * Returns the first node where the given attribute matches the given value.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - Root node where the search should start.
    +	 * attr - Name of the attribute to be checked.
    +	 * value - Value of the attribute to match.
    +	 */
    +	findNodeByAttribute: function()
    +	{
    +		// Workaround for missing XPath support in IE9
    +		if (document.documentMode >= 9)
    +		{
    +			return function(node, attr, value)
    +			{
    +				var result = null;
    +
    +				if (node.nodeType == mxConstants.NODETYPE_ELEMENT && node.getAttribute(attr) == value)
    +				{
    +					result = node;
    +				}
    +				else
    +				{
    +					var child = node.firstChild;
    +					
    +					while (child != null && result == null)
    +					{
    +						result = mxUtils.findNodeByAttribute(child, attr, value);
    +						child = child.nextSibling;
    +					}
    +				}
    +		
    +				return result;
    +			};
    +		}
    +		else if (mxClient.IS_IE)
    +		{
    +			return function(node, attr, value)
    +			{
    +				var expr = '//*[@' + attr + '=\'' + value + '\']';
    +				
    +				return node.ownerDocument.selectSingleNode(expr);
    +			};
    +		}
    +		else
    +		{
    +			return function(node, attr, value)
    +			{
    +				var result = node.ownerDocument.evaluate(
    +						'//*[@' + attr + '=\'' + value + '\']',
    +						node.ownerDocument, null,
    +						XPathResult.ANY_TYPE, null);
    +
    +				return result.iterateNext();
    +			};
    +		}
    +	}(),
    +
    +	/**
    +	 * Function: getFunctionName
    +	 * 
    +	 * Returns the name for the given function.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * f - JavaScript object that represents a function.
    +	 */
    +	getFunctionName: function(f)
    +	{
    +		var str = null;
    +
    +		if (f != null)
    +		{
    +			if (f.name != null)
    +			{
    +				str = f.name;
    +			}
    +			else
    +			{
    +				var tmp = f.toString();
    +				var idx1 = 9;
    +				
    +				while (tmp.charAt(idx1) == ' ')
    +				{
    +					idx1++;
    +				}
    +				
    +				var idx2 = tmp.indexOf('(', idx1);
    +				str = tmp.substring(idx1, idx2);
    +			}
    +		}
    +		
    +		return str;
    +	},
    +
    +	/**
    +	 * Function: indexOf
    +	 * 
    +	 * Returns the index of obj in array or -1 if the array does not contains
    +	 * the given object.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * array - Array to check for the given obj.
    +	 * obj - Object to find in the given array.
    +	 */
    +	indexOf: function(array, obj)
    +	{
    +		if (array != null && obj != null)
    +		{
    +			for (var i = 0; i < array.length; i++)
    +			{
    +				if (array[i] == obj)
    +				{
    +					return i;
    +				}
    +			}
    +		}
    +		
    +		return -1;
    +	},
    +
    +	/**
    +	 * Function: remove
    +	 * 
    +	 * Removes all occurrences of the given object in the given array or
    +	 * object. If there are multiple occurrences of the object, be they
    +	 * associative or as an array entry, all occurrences are removed from
    +	 * the array or deleted from the object. By removing the object from
    +	 * the array, all elements following the removed element are shifted
    +	 * by one step towards the beginning of the array.
    +	 * 
    +	 * The length of arrays is not modified inside this function.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * obj - Object to find in the given array.
    +	 * array - Array to check for the given obj.
    +	 */
    +	remove: function(obj, array)
    +	{
    +		var result = null;
    +		
    +		if (typeof(array) == 'object')
    +		{
    +			var index = mxUtils.indexOf(array, obj);
    +			
    +			while (index >= 0)
    +			{
    +				array.splice(index, 1);
    +				result = obj;
    +				index = mxUtils.indexOf(array, obj);
    +			}
    +		}
    +
    +		for (var key in array)
    +		{
    +			if (array[key] == obj)
    +			{
    +				delete array[key];
    +				result = obj;
    +			}
    +		}
    +		
    +		return result;
    +	},
    +	
    +	/**
    +	 * Function: isNode
    +	 * 
    +	 * Returns true if the given value is an XML node with the node name
    +	 * and if the optional attribute has the specified value.
    +	 * 
    +	 * This implementation assumes that the given value is a DOM node if the
    +	 * nodeType property is numeric, that is, if isNaN returns false for
    +	 * value.nodeType.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * value - Object that should be examined as a node.
    +	 * nodeName - String that specifies the node name.
    +	 * attributeName - Optional attribute name to check.
    +	 * attributeValue - Optional attribute value to check.
    +	 */
    +	 isNode: function(value, nodeName, attributeName, attributeValue)
    +	 {
    +	 	if (value != null && !isNaN(value.nodeType) && (nodeName == null ||
    +	 		value.nodeName.toLowerCase() == nodeName.toLowerCase()))
    + 		{
    + 			return attributeName == null ||
    + 				value.getAttribute(attributeName) == attributeValue;
    + 		}
    +	 	
    +	 	return false;
    +	 },
    +
    +	/**
    +	 * Function: getChildNodes
    +	 * 
    +	 * Returns an array of child nodes that are of the given node type.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - Parent DOM node to return the children from.
    +	 * nodeType - Optional node type to return. Default is
    +	 * <mxConstants.NODETYPE_ELEMENT>.
    +	 */
    +	getChildNodes: function(node, nodeType)
    +	{
    +		nodeType = nodeType || mxConstants.NODETYPE_ELEMENT;
    +		
    +		var children = [];
    +		var tmp = node.firstChild;
    +		
    +		while (tmp != null)
    +		{
    +			if (tmp.nodeType == nodeType)
    +			{
    +				children.push(tmp);
    +			}
    +			
    +			tmp = tmp.nextSibling;
    +		}
    +		
    +		return children;
    +	},
    +		
    +	/**
    +	 * Function: createXmlDocument
    +	 * 
    +	 * Returns a new, empty XML document.
    +	 */
    +	createXmlDocument: function()
    +	{
    +		var doc = null;
    +		
    +		if (document.implementation && document.implementation.createDocument)
    +		{
    +			doc = document.implementation.createDocument('', '', null);
    +		}
    +		else if (window.ActiveXObject)
    +		{
    +			doc = new ActiveXObject('Microsoft.XMLDOM');
    +	 	}
    +	 	
    +	 	return doc;
    +	},
    +
    +	/**
    +	 * Function: parseXml
    +	 * 
    +	 * Parses the specified XML string into a new XML document and returns the
    +	 * new document.
    +	 * 
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * var doc = mxUtils.parseXml(
    +	 *   '<mxGraphModel><root><MyDiagram id="0"><mxCell/></MyDiagram>'+
    +	 *   '<MyLayer id="1"><mxCell parent="0" /></MyLayer><MyObject id="2">'+
    +	 *   '<mxCell style="strokeColor=blue;fillColor=red" parent="1" vertex="1">'+
    +	 *   '<mxGeometry x="10" y="10" width="80" height="30" as="geometry"/>'+
    +	 *   '</mxCell></MyObject></root></mxGraphModel>');
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * xml - String that contains the XML data.
    +	 */
    +	parseXml: function()
    +	{
    +		if (mxClient.IS_IE && (typeof(document.documentMode) === 'undefined' || document.documentMode < 9))
    +		{
    +			return function(xml)
    +			{
    +				var result = mxUtils.createXmlDocument();
    +				
    +				result.async = 'false';
    +				result.loadXML(xml);
    +				
    +				return result;
    +			};
    +		}
    +		else
    +		{
    +			return function(xml)
    +			{
    +				var parser = new DOMParser();
    +				
    +				return parser.parseFromString(xml, 'text/xml');
    +			};
    +		}
    +	}(),
    +
    +	/**
    +	 * Function: clearSelection
    +	 * 
    +	 * Clears the current selection in the page.
    +	 */
    +	clearSelection: function()
    +	{
    +		if (document.selection)
    +		{
    +			return function()
    +			{
    +				document.selection.empty();
    +			};
    +		}
    +		else if (window.getSelection)
    +		{
    +			return function()
    +			{
    +				window.getSelection().removeAllRanges();
    +			};
    +		}
    +	}(),
    +
    +	/**
    +	 * Function: getPrettyXML
    +	 * 
    +	 * Returns a pretty printed string that represents the XML tree for the
    +	 * given node. This method should only be used to print XML for reading,
    +	 * use <getXml> instead to obtain a string for processing.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - DOM node to return the XML for.
    +	 * tab - Optional string that specifies the indentation for one level.
    +	 * Default is two spaces.
    +	 * indent - Optional string that represents the current indentation.
    +	 * Default is an empty string.
    +	 */
    +	getPrettyXml: function(node, tab, indent)
    +	{
    +		var result = [];
    +		
    +		if (node != null)
    +		{
    +			tab = tab || '  ';
    +			indent = indent || '';
    +			
    +			if (node.nodeType == mxConstants.NODETYPE_TEXT)
    +			{
    +				result.push(node.nodeValue);
    +			}
    +			else
    +			{
    +				result.push(indent + '<'+node.nodeName);
    +				
    +				// Creates the string with the node attributes
    +				// and converts all HTML entities in the values
    +				var attrs = node.attributes;
    +				
    +				if (attrs != null)
    +				{
    +					for (var i = 0; i < attrs.length; i++)
    +					{
    +						var val = mxUtils.htmlEntities(attrs[i].nodeValue);
    +						result.push(' ' + attrs[i].nodeName +
    +							'="' + val + '"');
    +					}
    +				}
    +
    +				// Recursively creates the XML string for each
    +				// child nodes and appends it here with an
    +				// indentation
    +				var tmp = node.firstChild;
    +				
    +				if (tmp != null)
    +				{
    +					result.push('>\n');
    +					
    +					while (tmp != null)
    +					{
    +						result.push(mxUtils.getPrettyXml(
    +							tmp, tab, indent + tab));
    +						tmp = tmp.nextSibling;
    +					}
    +					
    +					result.push(indent + '</'+node.nodeName+'>\n');
    +				}
    +				else
    +				{
    +					result.push('/>\n');
    +				}
    +			}
    +		}
    +		
    +		return result.join('');
    +	},
    +	
    +	/**
    +	 * Function: removeWhitespace
    +	 * 
    +	 * Removes the sibling text nodes for the given node that only consists
    +	 * of tabs, newlines and spaces.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - DOM node whose siblings should be removed.
    +	 * before - Optional boolean that specifies the direction of the traversal.
    +	 */
    +	removeWhitespace: function(node, before)
    +	{
    +		var tmp = (before) ? node.previousSibling : node.nextSibling;
    +		
    +		while (tmp != null && tmp.nodeType == mxConstants.NODETYPE_TEXT)
    +		{
    +			var next = (before) ? tmp.previousSibling : tmp.nextSibling;
    +			var text = mxUtils.getTextContent(tmp);
    +			
    +			if (mxUtils.trim(text).length == 0)
    +			{
    +				tmp.parentNode.removeChild(tmp);
    +			}
    +			
    +			tmp = next;
    +		}
    +	},
    +	
    +	/**
    +	 * Function: htmlEntities
    +	 * 
    +	 * Replaces characters (less than, greater than, newlines and quotes) with
    +	 * their HTML entities in the given string and returns the result.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * s - String that contains the characters to be converted.
    +	 * newline - If newlines should be replaced. Default is true.
    +	 */
    +	htmlEntities: function(s, newline)
    +	{
    +		s = s || '';
    +		
    +		s = s.replace(/&/g,'&amp;'); // 38 26
    +		s = s.replace(/"/g,'&quot;'); // 34 22
    +		s = s.replace(/\'/g,'&#39;'); // 39 27
    +		s = s.replace(/</g,'&lt;'); // 60 3C
    +		s = s.replace(/>/g,'&gt;'); // 62 3E
    +
    +		if (newline == null || newline)
    +		{
    +			s = s.replace(/\n/g, '&#xa;');
    +		}
    +		
    +		return s;
    +	},
    +	
    +	/**
    +	 * Function: isVml
    +	 * 
    +	 * Returns true if the given node is in the VML namespace.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - DOM node whose tag urn should be checked.
    +	 */
    +	isVml: function(node)
    +	{
    +		return node != null && node.tagUrn == 'urn:schemas-microsoft-com:vml';
    +	},
    +	
    +	/**
    +	 * Function: getXml
    +	 * 
    +	 * Returns the XML content of the specified node. For Internet Explorer,
    +	 * all \r\n\t[\t]* are removed from the XML string and the remaining \r\n
    +	 * are replaced by \n. All \n are then replaced with linefeed, or &#xa; if
    +	 * no linefeed is defined.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - DOM node to return the XML for.
    +	 * linefeed - Optional string that linefeeds are converted into. Default is
    +	 * &#xa;
    +	 */
    +	getXml: function(node, linefeed)
    +	{
    +		var xml = '';
    +		
    +		if (node != null)
    +		{
    +			xml = node.xml;
    +			
    +			if (xml == null)
    +			{
    +				if (node.innerHTML)
    +				{
    +					xml = node.innerHTML;
    +				}
    +				else
    +				{
    +					var xmlSerializer = new XMLSerializer();
    +					xml = xmlSerializer.serializeToString(node);
    +				}
    +			}
    +			else
    +			{
    +				xml = xml.replace(/\r\n\t[\t]*/g, '').
    +					replace(/>\r\n/g, '>').
    +					replace(/\r\n/g, '\n');
    +			}
    +		}
    +
    +		// Replaces linefeeds with HTML Entities.
    +		linefeed = linefeed || '&#xa;';
    +		xml = xml.replace(/\n/g, linefeed);
    +		
    +		return xml;
    +	},
    +
    +	/**
    +	 * Function: getTextContent
    +	 * 
    +	 * Returns the text content of the specified node.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - DOM node to return the text content for.
    +	 */
    +	getTextContent: function(node)
    +	{
    +		var result = '';
    +		
    +		if (node != null)
    +		{
    +			if (node.firstChild != null)
    +			{
    +				node = node.firstChild;
    +			}
    +			
    +			result = node.nodeValue || '';
    +		}
    +		
    +		return result;
    +	},
    +	
    +	/**
    +	 * Function: getInnerHtml
    +	 * 
    +	 * Returns the inner HTML for the given node as a string or an empty string
    +	 * if no node was specified. The inner HTML is the text representing all
    +	 * children of the node, but not the node itself.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - DOM node to return the inner HTML for.
    +	 */
    +	getInnerHtml: function()
    +	{
    +		if (mxClient.IS_IE)
    +		{
    +			return function(node)
    +			{
    +				if (node != null)
    +				{
    +					return node.innerHTML;
    +				}
    +				
    +				return '';
    +			};
    +		}
    +		else
    +		{
    +			return function(node)
    +			{
    +				if (node != null)
    +				{
    +					var serializer = new XMLSerializer();
    +					return serializer.serializeToString(node);
    +				}
    +				
    +				return '';
    +			};
    +		}
    +	}(),
    +
    +	/**
    +	 * Function: getOuterHtml
    +	 * 
    +	 * Returns the outer HTML for the given node as a string or an empty
    +	 * string if no node was specified. The outer HTML is the text representing
    +	 * all children of the node including the node itself.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - DOM node to return the outer HTML for.
    +	 */
    +	getOuterHtml: function()
    +	{
    +		if (mxClient.IS_IE)
    +		{
    +			return function(node)
    +			{
    +				if (node != null)
    +				{
    +					if (node.outerHTML != null)
    +					{
    +						return node.outerHTML;
    +					}
    +					else
    +					{
    +						var tmp = [];
    +						tmp.push('<'+node.nodeName);
    +						
    +						var attrs = node.attributes;
    +						
    +						if (attrs != null)
    +						{
    +							for (var i = 0; i < attrs.length; i++)
    +							{
    +								var value = attrs[i].nodeValue;
    +								
    +								if (value != null && value.length > 0)
    +								{
    +									tmp.push(' ');
    +									tmp.push(attrs[i].nodeName);
    +									tmp.push('="');
    +									tmp.push(value);
    +									tmp.push('"');
    +								}
    +							}
    +						}
    +						
    +						if (node.innerHTML.length == 0)
    +						{
    +							tmp.push('/>');
    +						}
    +						else
    +						{
    +							tmp.push('>');
    +							tmp.push(node.innerHTML);
    +							tmp.push('</'+node.nodeName+'>');
    +						}
    +						
    +						return tmp.join('');
    +					}
    +				}
    +				
    +				return '';
    +			};
    +		}
    +		else
    +		{
    +			return function(node)
    +			{
    +				if (node != null)
    +				{
    +					var serializer = new XMLSerializer();
    +					return serializer.serializeToString(node);
    +				}
    +				
    +				return '';
    +			};
    +		}
    +	}(),
    +	
    +	/**
    +	 * Function: write
    +	 * 
    +	 * Creates a text node for the given string and appends it to the given
    +	 * parent. Returns the text node.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - DOM node to append the text node to.
    +	 * text - String representing the text to be added.
    +	 */
    +	write: function(parent, text)
    +	{
    +		doc = parent.ownerDocument;
    +		var node = doc.createTextNode(text);
    +		
    +		if (parent != null)
    +		{
    +			parent.appendChild(node);
    +		}
    +		
    +		return node;
    +	},
    +	
    +	/**
    +	 * Function: writeln
    +	 * 
    +	 * Creates a text node for the given string and appends it to the given
    +	 * parent with an additional linefeed. Returns the text node.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - DOM node to append the text node to.
    +	 * text - String representing the text to be added.
    +	 */
    +	writeln: function(parent, text)
    +	{
    +		doc = parent.ownerDocument;
    +		var node = doc.createTextNode(text);
    +		
    +		if (parent != null)
    +		{
    +			parent.appendChild(node);
    +			parent.appendChild(document.createElement('br'));
    +		}
    +		
    +		return node;
    +	},
    +	
    +	/**
    +	 * Function: br
    +	 * 
    +	 * Appends a linebreak to the given parent and returns the linebreak.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - DOM node to append the linebreak to.
    +	 */
    +	br: function(parent, count)
    +	{
    +		count = count || 1;
    +		var br = null;
    +		
    +		for (var i = 0; i < count; i++)
    +		{
    +			if (parent != null)
    +			{
    +				br = parent.ownerDocument.createElement('br');
    +				parent.appendChild(br);
    +			}
    +		}
    +		
    +		return br;
    +	},
    +		
    +	/**
    +	 * Function: button
    +	 * 
    +	 * Returns a new button with the given level and function as an onclick
    +	 * event handler.
    +	 * 
    +	 * (code)
    +	 * document.body.appendChild(mxUtils.button('Test', function(evt)
    +	 * {
    +	 *   alert('Hello, World!');
    +	 * }));
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * label - String that represents the label of the button.
    +	 * funct - Function to be called if the button is pressed.
    +	 * doc - Optional document to be used for creating the button. Default is the
    +	 * current document.
    +	 */
    +	button: function(label, funct, doc)
    +	{
    +		doc = (doc != null) ? doc : document;
    +		
    +		var button = doc.createElement('button');
    +		mxUtils.write(button, label);
    +
    +		mxEvent.addListener(button, 'click', function(evt)
    +		{
    +			funct(evt);
    +		});
    +		
    +		return button;
    +	},
    +	
    +	/**
    +	 * Function: para
    +	 * 
    +	 * Appends a new paragraph with the given text to the specified parent and
    +	 * returns the paragraph.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - DOM node to append the text node to.
    +	 * text - String representing the text for the new paragraph.
    +	 */
    +	para: function(parent, text)
    +	{
    +		var p = document.createElement('p');
    +		mxUtils.write(p, text);
    +
    +		if (parent != null)
    +		{
    +			parent.appendChild(p);
    +		}
    +		
    +		return p;
    +	},
    +
    +	/**
    +	 * Function: linkAction
    +	 * 
    +	 * Adds a hyperlink to the specified parent that invokes action on the
    +	 * specified editor.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - DOM node to contain the new link.
    +	 * text - String that is used as the link label.
    +	 * editor - <mxEditor> that will execute the action.
    +	 * action - String that defines the name of the action to be executed.
    +	 * pad - Optional left-padding for the link. Default is 0.
    +	 */
    +	linkAction: function(parent, text, editor, action, pad)
    +	{
    +		return mxUtils.link(parent, text, function()
    +		{
    +			editor.execute(action);
    +		}, pad);
    +	},
    +
    +	/**
    +	 * Function: linkInvoke
    +	 * 
    +	 * Adds a hyperlink to the specified parent that invokes the specified
    +	 * function on the editor passing along the specified argument. The
    +	 * function name is the name of a function of the editor instance,
    +	 * not an action name.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - DOM node to contain the new link.
    +	 * text - String that is used as the link label.
    +	 * editor - <mxEditor> instance to execute the function on.
    +	 * functName - String that represents the name of the function.
    +	 * arg - Object that represents the argument to the function.
    +	 * pad - Optional left-padding for the link. Default is 0.
    +	 */
    +	linkInvoke: function(parent, text, editor, functName, arg, pad)
    +	{
    +		return mxUtils.link(parent, text, function()
    +		{
    +			editor[functName](arg);
    +		}, pad);
    +	},
    +	
    +	/**
    +	 * Function: link
    +	 * 
    +	 * Adds a hyperlink to the specified parent and invokes the given function
    +	 * when the link is clicked.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - DOM node to contain the new link.
    +	 * text - String that is used as the link label.
    +	 * funct - Function to execute when the link is clicked.
    +	 * pad - Optional left-padding for the link. Default is 0.
    +	 */
    +	link: function(parent, text, funct, pad)
    +	{
    +		var a = document.createElement('span');
    +		
    +		a.style.color = 'blue';
    +		a.style.textDecoration = 'underline';
    +		a.style.cursor = 'pointer';
    +		
    +		if (pad != null)
    +		{
    +			a.style.paddingLeft = pad+'px';
    +		}
    +		
    +		mxEvent.addListener(a, 'click', funct);
    +		mxUtils.write(a, text);
    +		
    +		if (parent != null)
    +		{
    +			parent.appendChild(a);
    +		}
    +		
    +		return a;
    +	},
    +
    +	/**
    +	 * Function: fit
    +	 * 
    +	 * Makes sure the given node is inside the visible area of the window. This
    +	 * is done by setting the left and top in the style. 
    +	 */
    +	fit: function(node)
    +	{
    +		var left = parseInt(node.offsetLeft);
    +		var width = parseInt(node.offsetWidth);
    +			
    +		var b = document.body;
    +		var d = document.documentElement;
    +			
    +		var right = (b.scrollLeft || d.scrollLeft) +
    +			(b.clientWidth || d.clientWidth);
    +		
    +		if (left + width > right)
    +		{
    +			node.style.left = Math.max((b.scrollLeft || d.scrollLeft),
    +				right - width)+'px';
    +		}
    +		
    +		var top = parseInt(node.offsetTop);
    +		var height = parseInt(node.offsetHeight);
    +		
    +		var bottom = (b.scrollTop || d.scrollTop) +
    +			Math.max(b.clientHeight || 0, d.clientHeight);
    +		
    +		if (top + height > bottom)
    +		{
    +			node.style.top = Math.max((b.scrollTop || d.scrollTop),
    +				bottom - height)+'px';
    +		}
    +	},
    +
    +	/**
    +	 * Function: open
    +	 * 
    +	 * Opens the specified file from the local filesystem and returns the
    +	 * contents of the file as a string. This implementation requires an
    +	 * ActiveX object in IE and special privileges in Firefox. Relative
    +	 * filenames are only supported in IE and will go onto the users'
    +	 * Desktop. You may have to load 
    +	 * chrome://global/content/contentAreaUtils.js to disable certain
    +	 * security restrictions in Mozilla for this to work.
    +	 * 
    +	 * See known-issues before using this function.
    +	 * 
    +	 * Example:
    +	 * (code)
    +	 * var data = mxUtils.open('C:\\temp\\test.txt');
    +	 * mxUtils.alert('Data: '+data);
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * filename - String representing the local file name.
    +	 */
    +	open: function(filename)
    +	{
    +		// Requests required privileges in Firefox
    +		if (mxClient.IS_NS)
    +		{
    +			try
    +			{
    +				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
    +			}
    +			catch (e)
    +			{
    +				mxUtils.alert('Permission to read file denied.');
    +				
    +				return '';
    +			}
    +			
    +			var file = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
    +			file.initWithPath(filename);
    +			
    +			if (!file.exists())
    +			{
    +				mxUtils.alert('File not found.');
    +				return '';
    +			}
    +			
    +			var is = Components.classes['@mozilla.org/network/file-input-stream;1'].createInstance(Components.interfaces.nsIFileInputStream);
    +			is.init(file,0x01, 00004, null);
    +			
    +			var sis = Components.classes['@mozilla.org/scriptableinputstream;1'].createInstance(Components.interfaces.nsIScriptableInputStream);
    +			sis.init(is);
    +			
    +			var output = sis.read(sis.available());
    +			
    +			return output;
    +		}
    +		else
    +		{
    +			var activeXObject = new ActiveXObject('Scripting.FileSystemObject');
    +			
    +			var newStream = activeXObject.OpenTextFile(filename, 1);
    +			var text = newStream.readAll();
    +			newStream.close();
    +			
    +			return text;
    +		}
    +		return null;
    +	},
    +	
    +	/**
    +	 * Function: save
    +	 * 
    +	 * Saves the specified content in the given file on the local file system.
    +	 * This implementation requires an ActiveX object in IE and special
    +	 * privileges in Firefox. Relative filenames are only supported in IE and
    +	 * will be loaded from the users' Desktop. You may have to load
    +	 * chrome://global/content/contentAreaUtils.js to disable certain
    +	 * security restrictions in Mozilla for this to work.
    +	 * 
    +	 * See known-issues before using this function.
    +	 * 
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * var data = 'Hello, World!';
    +	 * mxUtils.save('C:\\test.txt', data);
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * filename - String representing the local file name.
    +	 */
    +	save: function(filename, content)
    +	{
    +		if (mxClient.IS_NS)
    +		{
    +			try
    +			{
    +				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
    +			}
    +		    catch (e)
    +		    {
    +		    	mxUtils.alert('Permission to write file denied.');
    +		    	return;
    +		    }
    +		    
    +			var file = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
    +			file.initWithPath(filename);
    +			
    +			if (!file.exists())
    +			{
    +				file.create(0x00, 0644);
    +			}
    +			
    +			var outputStream = Components.classes['@mozilla.org/network/file-output-stream;1'].createInstance(Components.interfaces.nsIFileOutputStream);
    +			
    +			outputStream.init(file, 0x20 | 0x02,00004, null);
    +            outputStream.write(content, content.length);
    +            outputStream.flush();
    +            outputStream.close();
    +		}
    +		else
    +		{
    +			var fso = new ActiveXObject('Scripting.FileSystemObject');
    +			
    +			var file = fso.CreateTextFile(filename, true);
    +			file.Write(content);
    +			file.Close();
    +		}
    +	},
    +
    +	/**
    +	 * Function: saveAs
    +	 * 
    +	 * Saves the specified content by displaying a dialog to save the content
    +	 * as a file on the local filesystem. This implementation does not use an
    +	 * ActiveX object in IE, however, it does require special privileges in
    +	 * Firefox. You may have to load 
    +	 * chrome://global/content/contentAreaUtils.js to disable certain
    +	 * security restrictions in Mozilla for this to work.
    +	 * 
    +	 * See known-issues before using this function. It is not recommended using
    +	 * this function in production environment as access to the filesystem
    +	 * cannot be guaranteed in Firefox. The following code is used in
    +	 * Firefox to try and enable saving to the filesystem.
    +	 * 
    +	 * (code)
    +	 * netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
    +	 * (end)
    +	 * 
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * mxUtils.saveAs('Hello, World!');
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * content - String representing the file's content.
    +	 */
    +	saveAs: function(content)
    +	{
    +		var iframe = document.createElement('iframe');
    +		iframe.setAttribute('src', '');
    +		iframe.style.visibility = 'hidden';
    +		document.body.appendChild(iframe);
    +		
    +		try
    +		{
    +			if (mxClient.IS_NS)
    +			{
    +				var doc = iframe.contentDocument;
    +				
    +				doc.open();
    +				doc.write(content);
    +				doc.close();
    +				
    +				try
    +				{
    +					netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
    +					// LATER: Remove existing HTML markup in file
    +					iframe.focus();
    +					saveDocument(doc);
    +				}
    +			    catch (e)
    +			    {
    +			    	mxUtils.alert('Permission to save document denied.');
    +			    }
    +			}
    +			else
    +			{
    +				var doc = iframe.contentWindow.document;
    +				doc.write(content);
    +				doc.execCommand('SaveAs', false, document.location);
    +			}
    +		}
    +		finally
    +		{
    +			document.body.removeChild(iframe);
    +		}
    +	},
    +	
    +	/**
    +	 * Function: copy
    +	 * 
    +	 * Copies the specified content to the local clipboard. This implementation
    +	 * requires special privileges in Firefox. You may have to load
    +	 * chrome://global/content/contentAreaUtils.js to disable certain
    +	 * security restrictions in Mozilla for this to work.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * content - String to be copied to the clipboard.
    +	 */
    +	copy: function(content)
    +	{
    +	 	if (window.clipboardData)
    +	 	{
    +			window.clipboardData.setData('Text', content);
    +		}
    +		else
    +		{
    +			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
    +
    +			var clip = Components.classes['@mozilla.org/widget/clipboard;1']
    +				.createInstance(Components.interfaces.nsIClipboard);
    +
    +			if (!clip)
    +			{
    +				return;
    +			}
    +		   
    +			var trans = Components.classes['@mozilla.org/widget/transferable;1']
    +		    	.createInstance(Components.interfaces.nsITransferable);
    +
    +			if (!trans)
    +			{
    +				return;
    +			}
    +		   
    +			trans.addDataFlavor('text/unicode');
    +			var str = Components.classes['@mozilla.org/supports-string;1']
    +				.createInstance(Components.interfaces.nsISupportsString);
    +
    +			var copytext=content;
    +			str.data=copytext;
    +			trans.setTransferData('text/unicode', str, copytext.length*2);
    +			var clipid=Components.interfaces.nsIClipboard;
    +			
    +			clip.setData(trans,null,clipid.kGlobalClipboard);
    +		} 
    +	},
    +
    +	/**
    +	 * Function: load
    +	 * 
    +	 * Loads the specified URL *synchronously* and returns the <mxXmlRequest>.
    +	 * Throws an exception if the file cannot be loaded. See <mxUtils.get> for
    +	 * an asynchronous implementation.
    +	 *
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * try
    +	 * {
    +	 *   var req = mxUtils.load(filename);
    +	 *   var root = req.getDocumentElement();
    +	 *   // Process XML DOM...
    +	 * }
    +	 * catch (ex)
    +	 * {
    +	 *   mxUtils.alert('Cannot load '+filename+': '+ex);
    +	 * }
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * url - URL to get the data from.
    +	 */
    +	load: function(url)
    +	{
    +		var req = new mxXmlRequest(url, null, 'GET', false);
    +		req.send();
    +		
    +		return req;
    +	},
    +
    +	/**
    +	 * Function: get
    +	 * 
    +	 * Loads the specified URL *asynchronously* and invokes the given functions
    +	 * depending on the request status. Returns the <mxXmlRequest> in use. Both
    +	 * functions take the <mxXmlRequest> as the only parameter. See
    +	 * <mxUtils.load> for a synchronous implementation.
    +	 *
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * mxUtils.get(url, function(req)
    +	 * {
    +	 *    var node = req.getDocumentElement();
    +	 *    // Process XML DOM...
    +	 * });
    +	 * (end)
    +	 * 
    +	 * So for example, to load a diagram into an existing graph model, the
    +	 * following code is used.
    +	 * 
    +	 * (code)
    +	 * mxUtils.get(url, function(req)
    +	 * {
    +	 *   var node = req.getDocumentElement();
    +	 *   var dec = new mxCodec(node.ownerDocument);
    +	 *   dec.decode(node, graph.getModel());
    +	 * });
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * url - URL to get the data from.
    +	 * onload - Optional function to execute for a successful response.
    +	 * onerror - Optional function to execute on error.
    +	 */
    +	get: function(url, onload, onerror)
    +	{
    +		return new mxXmlRequest(url, null, 'GET').send(onload, onerror);
    +	},
    +	
    +	/**
    +	 * Function: post
    +	 * 
    +	 * Posts the specified params to the given URL *asynchronously* and invokes
    +	 * the given functions depending on the request status. Returns the
    +	 * <mxXmlRequest> in use. Both functions take the <mxXmlRequest> as the
    +	 * only parameter. Make sure to use encodeURIComponent for the parameter
    +	 * values.
    +	 *
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * mxUtils.post(url, 'key=value', function(req)
    +	 * {
    +	 * 	mxUtils.alert('Ready: '+req.isReady()+' Status: '+req.getStatus());
    +	 *  // Process req.getDocumentElement() using DOM API if OK...
    +	 * });
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * url - URL to get the data from.
    +	 * params - Parameters for the post request.
    +	 * onload - Optional function to execute for a successful response.
    +	 * onerror - Optional function to execute on error.
    +	 */
    +	post: function(url, params, onload, onerror)
    +	{
    +		return new mxXmlRequest(url, params).send(onload, onerror);
    +	},
    +	
    +	/**
    +	 * Function: submit
    +	 * 
    +	 * Submits the given parameters to the specified URL using
    +	 * <mxXmlRequest.simulate> and returns the <mxXmlRequest>.
    +	 * Make sure to use encodeURIComponent for the parameter
    +	 * values.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * url - URL to get the data from.
    +	 * params - Parameters for the form.
    +	 * doc - Document to create the form in.
    +	 * target - Target to send the form result to.
    +	 */
    +	submit: function(url, params, doc, target)
    +	{
    +		return new mxXmlRequest(url, params).simulate(doc, target);
    +	},
    +	
    +	/**
    +	 * Function: loadInto
    +	 * 
    +	 * Loads the specified URL *asynchronously* into the specified document,
    +	 * invoking onload after the document has been loaded. This implementation
    +	 * does not use <mxXmlRequest>, but the document.load method.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * url - URL to get the data from.
    +	 * doc - The document to load the URL into.
    +	 * onload - Function to execute when the URL has been loaded.
    +	 */
    +	loadInto: function(url, doc, onload)
    +	{
    +		if (mxClient.IS_IE)
    +		{
    +			doc.onreadystatechange = function ()
    +			{
    +				if (doc.readyState == 4)
    +				{
    +					onload();
    +				}
    +			};
    +		}
    +		else
    +		{
    +			doc.addEventListener('load', onload, false);
    +		}
    +		
    +		doc.load(url);
    +	},
    +	
    +	/**
    +	 * Function: getValue
    +	 * 
    +	 * Returns the value for the given key in the given associative array or
    +	 * the given default value if the value is null.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * array - Associative array that contains the value for the key.
    +	 * key - Key whose value should be returned.
    +	 * defaultValue - Value to be returned if the value for the given
    +	 * key is null.
    +	 */
    +	getValue: function(array, key, defaultValue)
    +	{
    +		var value = (array != null) ? array[key] : null;
    +
    +		if (value == null)
    +		{
    +			value = defaultValue;			
    +		}
    +		
    +		return value;
    +	},
    +	
    +	/**
    +	 * Function: getNumber
    +	 * 
    +	 * Returns the numeric value for the given key in the given associative
    +	 * array or the given default value (or 0) if the value is null. The value
    +	 * is converted to a numeric value using the Number function.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * array - Associative array that contains the value for the key.
    +	 * key - Key whose value should be returned.
    +	 * defaultValue - Value to be returned if the value for the given
    +	 * key is null. Default is 0.
    +	 */
    +	getNumber: function(array, key, defaultValue)
    +	{
    +		var value = (array != null) ? array[key] : null;
    +
    +		if (value == null)
    +		{
    +			value = defaultValue || 0;			
    +		}
    +		
    +		return Number(value);
    +	},
    +	
    +	/**
    +	 * Function: getColor
    +	 * 
    +	 * Returns the color value for the given key in the given associative
    +	 * array or the given default value if the value is null. If the value
    +	 * is <mxConstants.NONE> then null is returned.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * array - Associative array that contains the value for the key.
    +	 * key - Key whose value should be returned.
    +	 * defaultValue - Value to be returned if the value for the given
    +	 * key is null. Default is null.
    +	 */
    +	getColor: function(array, key, defaultValue)
    +	{
    +		var value = (array != null) ? array[key] : null;
    +
    +		if (value == null)
    +		{
    +			value = defaultValue;
    +		}
    +		else if (value == mxConstants.NONE)
    +		{
    +			value = null;
    +		}
    +		
    +		return value;
    +	},
    +
    +	/**
    +	 * Function: clone
    +	 * 
    +	 * Recursively clones the specified object ignoring all fieldnames in the
    +	 * given array of transient fields. <mxObjectIdentity.FIELD_NAME> is always
    +	 * ignored by this function.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * obj - Object to be cloned.
    +	 * transients - Optional array of strings representing the fieldname to be
    +	 * ignored.
    +	 * shallow - Optional boolean argument to specify if a shallow clone should
    +	 * be created, that is, one where all object references are not cloned or,
    +	 * in other words, one where only atomic (strings, numbers) values are
    +	 * cloned. Default is false.
    +	 */
    +	clone: function(obj, transients, shallow)
    +	{
    +		shallow = (shallow != null) ? shallow : false;
    +		var clone = null;
    +		
    +		if (obj != null && typeof(obj.constructor) == 'function')
    +		{
    +			clone = new obj.constructor();
    +			
    +		    for (var i in obj)
    +		    {
    +		    	if (i != mxObjectIdentity.FIELD_NAME && (transients == null ||
    +		    		mxUtils.indexOf(transients, i) < 0))
    +		    	{
    +			    	if (!shallow && typeof(obj[i]) == 'object')
    +			    	{
    +			            clone[i] = mxUtils.clone(obj[i]);
    +			        }
    +			        else
    +			        {
    +			            clone[i] = obj[i];
    +			        }
    +				}
    +		    }
    +		}
    +		
    +	    return clone;
    +	},
    +
    +	/**
    +	 * Function: equalPoints
    +	 * 
    +	 * Compares all mxPoints in the given lists.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * a - Array of <mxPoints> to be compared.
    +	 * b - Array of <mxPoints> to be compared.
    +	 */
    +	equalPoints: function(a, b)
    +	{
    +		if ((a == null && b != null) || (a != null && b == null) ||
    +			(a != null && b != null && a.length != b.length))
    +		{
    +			return false;
    +		}
    +		else if (a != null && b != null)
    +		{
    +			for (var i = 0; i < a.length; i++)
    +			{
    +				if (a[i] == b[i] || (a[i] != null && !a[i].equals(b[i])))
    +				{
    +					return false;
    +				}
    +			}
    +		}
    +		
    +		return true;
    +	},
    +
    +	/**
    +	 * Function: equalEntries
    +	 * 
    +	 * Compares all entries in the given dictionaries.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * a - <mxRectangle> to be compared.
    +	 * b - <mxRectangle> to be compared.
    +	 */
    +	equalEntries: function(a, b)
    +	{
    +		if ((a == null && b != null) || (a != null && b == null) ||
    +			(a != null && b != null && a.length != b.length))
    +		{
    +			return false;
    +		}
    +		else if (a != null && b != null)
    +		{
    +			for (var key in a)
    +			{
    +				if (a[key] != b[key])
    +				{
    +					return false;
    +				}
    +			}
    +		}
    +		
    +		return true;
    +	},
    +	
    +	/**
    +	 * Function: extend
    +	 *
    +	 * Assigns a copy of the superclass prototype to the subclass prototype.
    +	 * Note that this does not call the constructor of the superclass at this
    +	 * point, the superclass constructor should be called explicitely in the
    +	 * subclass constructor. Below is an example.
    +	 * 
    +	 * (code)
    +	 * MyGraph = function(container, model, renderHint, stylesheet)
    +	 * {
    +	 *   mxGraph.call(this, container, model, renderHint, stylesheet);
    +	 * }
    +	 * 
    +	 * mxUtils.extend(MyGraph, mxGraph);
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * ctor - Constructor of the subclass.
    +	 * superCtor - Constructor of the superclass.
    +	 */
    +	extend: function(ctor, superCtor)
    +	{
    +		var f = function() {};
    +		f.prototype = superCtor.prototype;
    +		
    +		ctor.prototype = new f();
    +		ctor.prototype.constructor = ctor;
    +	},
    +
    +	/**
    +	 * Function: toString
    +	 * 
    +	 * Returns a textual representation of the specified object.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * obj - Object to return the string representation for.
    +	 */
    +	toString: function(obj)
    +	{
    +	    var output = '';
    +	    
    +	    for (var i in obj)
    +	    {
    +	    	try
    +	    	{
    +			    if (obj[i] == null)
    +			    {
    +		            output += i + ' = [null]\n';
    +			    }
    +			    else if (typeof(obj[i]) == 'function')
    +			    {
    +		            output += i + ' => [Function]\n';
    +		        }
    +		        else if (typeof(obj[i]) == 'object')
    +		        {
    +		        	var ctor = mxUtils.getFunctionName(obj[i].constructor); 
    +		            output += i + ' => [' + ctor + ']\n';
    +		        }
    +		        else
    +		        {
    +		            output += i + ' = ' + obj[i] + '\n';
    +		        }
    +	    	}
    +	    	catch (e)
    +	    	{
    +	    		output += i + '=' + e.message;
    +	    	}
    +	    }
    +	    
    +	    return output;
    +	},
    +
    +	/**
    +	 * Function: toRadians
    +	 * 
    +	 * Converts the given degree to radians.
    +	 */
    +	toRadians: function(deg)
    +	{
    +		return Math.PI * deg / 180;
    +	},
    +	
    +	/**
    +	 * Function: arcToCurves
    +	 * 
    +	 * Converts the given arc to a series of curves.
    +	 */
    +	arcToCurves: function(x0, y0, r1, r2, angle, largeArcFlag, sweepFlag, x, y)
    +	{
    +		x -= x0;
    +		y -= y0;
    +		
    +        if (r1 === 0 || r2 === 0) 
    +        {
    +        	return result;
    +        }
    +        
    +        var fS = sweepFlag;
    +        var psai = angle;
    +        r1 = Math.abs(r1);
    +        r2 = Math.abs(r2);
    +        var ctx = -x / 2;
    +        var cty = -y / 2;
    +        var cpsi = Math.cos(psai * Math.PI / 180);
    +        var spsi = Math.sin(psai * Math.PI / 180);
    +        var rxd = cpsi * ctx + spsi * cty;
    +        var ryd = -1 * spsi * ctx + cpsi * cty;
    +        var rxdd = rxd * rxd;
    +        var rydd = ryd * ryd;
    +        var r1x = r1 * r1;
    +        var r2y = r2 * r2;
    +        var lamda = rxdd / r1x + rydd / r2y;
    +        var sds;
    +        
    +        if (lamda > 1) 
    +        {
    +        	r1 = Math.sqrt(lamda) * r1;
    +        	r2 = Math.sqrt(lamda) * r2;
    +        	sds = 0;
    +        }  
    +        else
    +        {
    +        	var seif = 1;
    +            
    +        	if (largeArcFlag === fS) 
    +        	{
    +        		seif = -1;
    +        	}
    +            
    +        	sds = seif * Math.sqrt((r1x * r2y - r1x * rydd - r2y * rxdd) / (r1x * rydd + r2y * rxdd));
    +        }
    +        
    +        var txd = sds * r1 * ryd / r2;
    +        var tyd = -1 * sds * r2 * rxd / r1;
    +        var tx = cpsi * txd - spsi * tyd + x / 2;
    +        var ty = spsi * txd + cpsi * tyd + y / 2;
    +        var rad = Math.atan2((ryd - tyd) / r2, (rxd - txd) / r1) - Math.atan2(0, 1);
    +        var s1 = (rad >= 0) ? rad : 2 * Math.PI + rad;
    +        rad = Math.atan2((-ryd - tyd) / r2, (-rxd - txd) / r1) - Math.atan2((ryd - tyd) / r2, (rxd - txd) / r1);
    +        var dr = (rad >= 0) ? rad : 2 * Math.PI + rad;
    +        
    +        if (fS == 0 && dr > 0) 
    +        {
    +        	dr -= 2 * Math.PI;
    +        }
    +        else if (fS != 0 && dr < 0) 
    +        {
    +        	dr += 2 * Math.PI;
    +        }
    +        
    +        var sse = dr * 2 / Math.PI;
    +        var seg = Math.ceil(sse < 0 ? -1 * sse : sse);
    +        var segr = dr / seg;
    +        var t = 8/3 * Math.sin(segr / 4) * Math.sin(segr / 4) / Math.sin(segr / 2);
    +        var cpsir1 = cpsi * r1;
    +        var cpsir2 = cpsi * r2;
    +        var spsir1 = spsi * r1;
    +        var spsir2 = spsi * r2;
    +        var mc = Math.cos(s1);
    +        var ms = Math.sin(s1);
    +        var x2 = -t * (cpsir1 * ms + spsir2 * mc);
    +        var y2 = -t * (spsir1 * ms - cpsir2 * mc);
    +        var x3 = 0;
    +        var y3 = 0;
    +
    +		var result = [];
    +        
    +        for (var n = 0; n < seg; ++n) 
    +        {
    +            s1 += segr;
    +            mc = Math.cos(s1);
    +            ms = Math.sin(s1);
    +            
    +            x3 = cpsir1 * mc - spsir2 * ms + tx;
    +            y3 = spsir1 * mc + cpsir2 * ms + ty;
    +            var dx = -t * (cpsir1 * ms + spsir2 * mc);
    +            var dy = -t * (spsir1 * ms - cpsir2 * mc);
    +            
    +            // CurveTo updates x0, y0 so need to restore it
    +            var index = n * 6;
    +            result[index] = Number(x2 + x0);
    +            result[index + 1] = Number(y2 + y0);
    +            result[index + 2] = Number(x3 - dx + x0);
    +            result[index + 3] = Number(y3 - dy + y0);
    +            result[index + 4] = Number(x3 + x0);
    +            result[index + 5] = Number(y3 + y0);
    +            
    +			x2 = x3 + dx;
    +            y2 = y3 + dy;
    +        }
    +        
    +        return result;
    +	},
    +
    +	/**
    +	 * Function: getBoundingBox
    +	 * 
    +	 * Returns the bounding box for the rotated rectangle.
    +	 */
    +	getBoundingBox: function(rect, rotation)
    +	{
    +        var result = null;
    +
    +        if (rect != null && rotation != null && rotation != 0)
    +        {
    +            var rad = mxUtils.toRadians(rotation);
    +            var cos = Math.cos(rad);
    +            var sin = Math.sin(rad);
    +
    +            var cx = new mxPoint(
    +            	rect.x + rect.width / 2,
    +            	rect.y  + rect.height / 2);
    +
    +            var p1 = new mxPoint(rect.x, rect.y);
    +            var p2 = new mxPoint(rect.x + rect.width, rect.y);
    +            var p3 = new mxPoint(p2.x, rect.y + rect.height);
    +            var p4 = new mxPoint(rect.x, p3.y);
    +
    +            p1 = mxUtils.getRotatedPoint(p1, cos, sin, cx);
    +            p2 = mxUtils.getRotatedPoint(p2, cos, sin, cx);
    +            p3 = mxUtils.getRotatedPoint(p3, cos, sin, cx);
    +            p4 = mxUtils.getRotatedPoint(p4, cos, sin, cx);
    +
    +            result = new mxRectangle(p1.x, p1.y, 0, 0);
    +            result.add(new mxRectangle(p2.x, p2.y, 0, 0));
    +            result.add(new mxRectangle(p3.x, p3.y, 0, 0));
    +            result.add(new mxRectangle(p4.x, p4.Y, 0, 0));
    +        }
    +
    +        return result;
    +	},
    +
    +	/**
    +	 * Function: getRotatedPoint
    +	 * 
    +	 * Rotates the given point by the given cos and sin.
    +	 */
    +	getRotatedPoint: function(pt, cos, sin, c)
    +	{
    +		c = (c != null) ? c : new mxPoint();
    +		var x = pt.x - c.x;
    +		var y = pt.y - c.y;
    +
    +		var x1 = x * cos - y * sin;
    +		var y1 = y * cos + x * sin;
    +
    +		return new mxPoint(x1 + c.x, y1 + c.y);
    +	},
    +	
    +	/**
    +	 * Returns an integer mask of the port constraints of the given map
    +	 * @param dict the style map to determine the port constraints for
    +	 * @param defaultValue Default value to return if the key is undefined.
    +	 * @return the mask of port constraint directions
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * terminal - <mxCelState> that represents the terminal.
    +	 * edge - <mxCellState> that represents the edge.
    +	 * source - Boolean that specifies if the terminal is the source terminal.
    +	 * defaultValue - Default value to be returned.
    +	 */
    +	getPortConstraints: function(terminal, edge, source, defaultValue)
    +	{
    +		var value = mxUtils.getValue(terminal.style, mxConstants.STYLE_PORT_CONSTRAINT, null);
    +		
    +		if (value == null)
    +		{
    +			return defaultValue;
    +		}
    +		else
    +		{
    +			var directions = value.toString();
    +			var returnValue = mxConstants.DIRECTION_MASK_NONE;
    +
    +			if (directions.indexOf(mxConstants.DIRECTION_NORTH) >= 0)
    +			{
    +				returnValue |= mxConstants.DIRECTION_MASK_NORTH;
    +			}
    +			if (directions.indexOf(mxConstants.DIRECTION_WEST) >= 0)
    +			{
    +				returnValue |= mxConstants.DIRECTION_MASK_WEST;
    +			}
    +			if (directions.indexOf(mxConstants.DIRECTION_SOUTH) >= 0)
    +			{
    +				returnValue |= mxConstants.DIRECTION_MASK_SOUTH;
    +			}
    +			if (directions.indexOf(mxConstants.DIRECTION_EAST) >= 0)
    +			{
    +				returnValue |= mxConstants.DIRECTION_MASK_EAST;
    +			}
    +
    +			return returnValue;
    +		}
    +	},
    +	
    +	/**
    +	 * Function: reversePortConstraints
    +	 * 
    +	 * Reverse the port constraint bitmask. For example, north | east
    +	 * becomes south | west
    +	 */
    +	reversePortConstraints: function(constraint)
    +	{
    +		var result = 0;
    +		
    +		result = (constraint & mxConstants.DIRECTION_MASK_WEST) << 3;
    +		result |= (constraint & mxConstants.DIRECTION_MASK_NORTH) << 1;
    +		result |= (constraint & mxConstants.DIRECTION_MASK_SOUTH) >> 1;
    +		result |= (constraint & mxConstants.DIRECTION_MASK_EAST) >> 3;
    +		
    +		return result;
    +	},
    +	
    +	/**
    +	 * Function: findNearestSegment
    +	 * 
    +	 * Finds the index of the nearest segment on the given cell state for
    +	 * the specified coordinate pair.
    +	 */
    +	findNearestSegment: function(state, x, y)
    +	{
    +		var index = -1;
    +		
    +		if (state.absolutePoints.length > 0)
    +		{
    +			var last = state.absolutePoints[0];
    +			var min = null;
    +			
    +			for (var i = 1; i < state.absolutePoints.length; i++)
    +			{
    +				var current = state.absolutePoints[i];
    +				var dist = mxUtils.ptSegDistSq(last.x, last.y,
    +					current.x, current.y, x, y);
    +				
    +				if (min == null || dist < min)
    +				{
    +					min = dist;
    +					index = i - 1;
    +				}
    +
    +				last = current;
    +			}
    +		}
    +		
    +		return index;
    +	},
    +	
    +	/**
    +	 * Function: rectangleIntersectsSegment
    +	 * 
    +	 * Returns true if the given rectangle intersects the given segment.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * bounds - <mxRectangle> that represents the rectangle.
    +	 * p1 - <mxPoint> that represents the first point of the segment.
    +	 * p2 - <mxPoint> that represents the second point of the segment.
    +	 */
    +	rectangleIntersectsSegment: function(bounds, p1, p2)
    +	{
    +		var top = bounds.y;
    +		var left = bounds.x;
    +		var bottom = top + bounds.height;
    +		var right = left + bounds.width;
    +			
    +		// Find min and max X for the segment
    +		var minX = p1.x;
    +		var maxX = p2.x;
    +		
    +		if (p1.x > p2.x)
    +		{
    +		  minX = p2.x;
    +		  maxX = p1.x;
    +		}
    +		
    +		// Find the intersection of the segment's and rectangle's x-projections
    +		if (maxX > right)
    +		{
    +		  maxX = right;
    +		}
    +		
    +		if (minX < left)
    +		{
    +		  minX = left;
    +		}
    +		
    +		if (minX > maxX) // If their projections do not intersect return false
    +		{
    +		  return false;
    +		}
    +		
    +		// Find corresponding min and max Y for min and max X we found before
    +		var minY = p1.y;
    +		var maxY = p2.y;
    +		var dx = p2.x - p1.x;
    +		
    +		if (Math.abs(dx) > 0.0000001)
    +		{
    +		  var a = (p2.y - p1.y) / dx;
    +		  var b = p1.y - a * p1.x;
    +		  minY = a * minX + b;
    +		  maxY = a * maxX + b;
    +		}
    +		
    +		if (minY > maxY)
    +		{
    +		  var tmp = maxY;
    +		  maxY = minY;
    +		  minY = tmp;
    +		}
    +		
    +		// Find the intersection of the segment's and rectangle's y-projections
    +		if (maxY > bottom)
    +		{
    +		  maxY = bottom;
    +		}
    +		
    +		if (minY < top)
    +		{
    +		  minY = top;
    +		}
    +		
    +		if (minY > maxY) // If Y-projections do not intersect return false
    +		{
    +		  return false;
    +		}
    +		
    +		return true;
    +	},
    +	
    +	/**
    +	 * Function: contains
    +	 * 
    +	 * Returns true if the specified point (x, y) is contained in the given rectangle.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * bounds - <mxRectangle> that represents the area.
    +	 * x - X-coordinate of the point.
    +	 * y - Y-coordinate of the point.
    +	 */
    +	contains: function(bounds, x, y)
    +	{
    +		return (bounds.x <= x && bounds.x + bounds.width >= x &&
    +				bounds.y <= y && bounds.y + bounds.height >= y);
    +	},
    +
    +	/**
    +	 * Function: intersects
    +	 * 
    +	 * Returns true if the two rectangles intersect.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * a - <mxRectangle> to be checked for intersection.
    +	 * b - <mxRectangle> to be checked for intersection.
    +	 */
    +	intersects: function(a, b)
    +	{
    +		var tw = a.width;
    +		var th = a.height;
    +		var rw = b.width;
    +		var rh = b.height;
    +		
    +		if (rw <= 0 || rh <= 0 || tw <= 0 || th <= 0)
    +		{
    +		    return false;
    +		}
    +		
    +		var tx = a.x;
    +		var ty = a.y;
    +		var rx = b.x;
    +		var ry = b.y;
    +		
    +		rw += rx;
    +		rh += ry;
    +		tw += tx;
    +		th += ty;
    +
    +		return ((rw < rx || rw > tx) &&
    +			(rh < ry || rh > ty) &&
    +			(tw < tx || tw > rx) &&
    +			(th < ty || th > ry));
    +	},
    +
    +	/**
    +	 * Function: intersects
    +	 * 
    +	 * Returns true if the two rectangles intersect.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * a - <mxRectangle> to be checked for intersection.
    +	 * b - <mxRectangle> to be checked for intersection.
    +	 */
    +	intersectsHotspot: function(state, x, y, hotspot, min, max)
    +	{
    +		hotspot = (hotspot != null) ? hotspot : 1;
    +		min = (min != null) ? min : 0;
    +		max = (max != null) ? max : 0;
    +		
    +		if (hotspot > 0)
    +		{
    +			var cx = state.getCenterX();
    +			var cy = state.getCenterY();
    +			var w = state.width;
    +			var h = state.height;
    +			
    +			var start = mxUtils.getValue(state.style,
    +					mxConstants.STYLE_STARTSIZE);
    +
    +			if (start > 0)
    +			{
    +				if (mxUtils.getValue(state.style,
    +					mxConstants.STYLE_HORIZONTAL, true))
    +				{
    +					cy = state.y + start / 2;
    +					h = start;
    +				}
    +				else
    +				{
    +					cx = state.x + start / 2;
    +					w = start;
    +				}
    +			}
    +
    +			w = Math.max(min, w * hotspot);
    +			h = Math.max(min, h * hotspot);
    +			
    +			if (max > 0)
    +			{
    +				w = Math.min(w, max);
    +				h = Math.min(h, max);
    +			}
    +			
    +			var rect = new mxRectangle(cx - w / 2, cy - h / 2, w, h);
    +			
    +			return mxUtils.contains(rect, x, y);			
    +		}
    +		
    +		return true;
    +	},
    +
    +	/**
    +	 * Function: getOffset
    +	 * 
    +	 * Returns the offset for the specified container as an <mxPoint>. The
    +	 * offset is the distance from the top left corner of the container to the
    +	 * top left corner of the document.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * container - DOM node to return the offset for.
    +	 */
    +	getOffset: function(container)
    +	{
    +		// TODO: Take scrollbar into account
    +		var offsetLeft = 0;
    +		var offsetTop = 0;
    +
    +		while (container.offsetParent)
    +		{
    +			offsetLeft += container.offsetLeft;
    +			offsetTop += container.offsetTop;
    +			
    +			container = container.offsetParent;
    +		}
    +		
    +		return new mxPoint(offsetLeft, offsetTop);
    +	},
    +
    +	/**
    +	 * Function: getScrollOrigin
    +	 * 
    +	 * Returns the top, left corner of the viewrect as an <mxPoint>.
    +	 */
    +	getScrollOrigin: function(node)
    +	{
    +		var b = document.body;
    +		var d = document.documentElement;
    +		var sl = (b.scrollLeft || d.scrollLeft);
    +		var st = (b.scrollTop || d.scrollTop);
    +		
    +		var result = new mxPoint(sl, st);
    +		
    +		while (node != null && node != b && node != d)
    +		{
    +			if (!isNaN(node.scrollLeft) && !isNaN(node.scrollTop))
    +			{
    +				result.x += node.scrollLeft;
    +				result.y += node.scrollTop;
    +			}
    +			
    +			node = node.parentNode;
    +		}
    +		
    +		return result;
    +	},
    +	
    +	/**
    +	 * Function: convertPoint
    +	 * 
    +	 * Converts the specified point (x, y) using the offset of the specified
    +	 * container and returns a new <mxPoint> with the result.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * container - DOM node to use for the offset.
    +	 * x - X-coordinate of the point to be converted.
    +	 * y - Y-coordinate of the point to be converted.
    +	 */
    +	convertPoint: function(container, x, y)
    +	{
    +		var origin = mxUtils.getScrollOrigin(container);
    +		var offset = mxUtils.getOffset(container);
    +		
    +		offset.x -= origin.x;
    +		offset.y -= origin.y;
    +		
    +		return new mxPoint(x - offset.x, y - offset.y);
    +	},
    +	
    +	/**
    +	 * Function: ltrim
    +	 * 
    +	 * Strips all whitespaces from the beginning of the string.
    +	 * Without the second parameter, Javascript function will trim these
    +	 * characters:
    +	 * 
    +	 * - " " (ASCII 32 (0x20)), an ordinary space
    +	 * - "\t" (ASCII 9 (0x09)), a tab
    +	 * - "\n" (ASCII 10 (0x0A)), a new line (line feed)
    +	 * - "\r" (ASCII 13 (0x0D)), a carriage return
    +	 * - "\0" (ASCII 0 (0x00)), the NUL-byte
    +	 * - "\x0B" (ASCII 11 (0x0B)), a vertical tab
    +	 */
    +	ltrim: function(str, chars)
    +	{
    +		chars = chars || "\\s";
    +		
    +		return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
    +	},
    +	
    +	/**
    +	 * Function: rtrim
    +	 * 
    +	 * Strips all whitespaces from the end of the string.
    +	 * Without the second parameter, Javascript function will trim these
    +	 * characters:
    +	 * 
    +	 * - " " (ASCII 32 (0x20)), an ordinary space
    +	 * - "\t" (ASCII 9 (0x09)), a tab
    +	 * - "\n" (ASCII 10 (0x0A)), a new line (line feed)
    +	 * - "\r" (ASCII 13 (0x0D)), a carriage return
    +	 * - "\0" (ASCII 0 (0x00)), the NUL-byte
    +	 * - "\x0B" (ASCII 11 (0x0B)), a vertical tab
    +	 */
    +	rtrim: function(str, chars)
    +	{
    +		chars = chars || "\\s";
    +		
    +		return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
    +	},
    +	
    +	/**
    +	 * Function: trim
    +	 * 
    +	 * Strips all whitespaces from both end of the string.
    +	 * Without the second parameter, Javascript function will trim these
    +	 * characters:
    +	 * 
    +	 * - " " (ASCII 32 (0x20)), an ordinary space
    +	 * - "\t" (ASCII 9 (0x09)), a tab
    +	 * - "\n" (ASCII 10 (0x0A)), a new line (line feed)
    +	 * - "\r" (ASCII 13 (0x0D)), a carriage return
    +	 * - "\0" (ASCII 0 (0x00)), the NUL-byte
    +	 * - "\x0B" (ASCII 11 (0x0B)), a vertical tab
    +	 */
    +	trim: function(str, chars)
    +	{
    +		return mxUtils.ltrim(mxUtils.rtrim(str, chars), chars);
    +	},
    +	
    +	/**
    +	 * Function: isNumeric
    +	 * 
    +	 * Returns true if the specified value is numeric, that is, if it is not
    +	 * null, not an empty string, not a HEX number and isNaN returns false.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * str - String representing the possibly numeric value.
    +	 */
    +	isNumeric: function(str)
    +	{
    +		return str != null && (str.length == null || (str.length > 0 &&
    +			str.indexOf('0x') < 0) && str.indexOf('0X') < 0) && !isNaN(str);
    +	},
    +	
    +	/**
    +	 * Function: mod
    +	 * 
    +	 * Returns the remainder of division of n by m. You should use this instead
    +	 * of the built-in operation as the built-in operation does not properly
    +	 * handle negative numbers.
    +	 */
    +	mod: function(n, m)
    +	{
    +		return ((n % m) + m) % m;
    +	},
    +
    +	/**
    +	 * Function: intersection
    +	 * 
    +	 * Returns the intersection of two lines as an <mxPoint>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * x0 - X-coordinate of the first line's startpoint.
    +	 * y0 - X-coordinate of the first line's startpoint.
    +	 * x1 - X-coordinate of the first line's endpoint.
    +	 * y1 - Y-coordinate of the first line's endpoint.
    +	 * x2 - X-coordinate of the second line's startpoint.
    +	 * y2 - Y-coordinate of the second line's startpoint.
    +	 * x3 - X-coordinate of the second line's endpoint.
    +	 * y3 - Y-coordinate of the second line's endpoint.
    +	 */
    +	intersection: function (x0, y0, x1, y1, x2, y2, x3, y3)
    +	{
    +		var denom = ((y3 - y2)*(x1 - x0)) - ((x3 - x2)*(y1 - y0));
    +		var nume_a = ((x3 - x2)*(y0 - y2)) - ((y3 - y2)*(x0 - x2));
    +		var nume_b = ((x1 - x0)*(y0 - y2)) - ((y1 - y0)*(x0 - x2));
    +
    +		var ua = nume_a / denom;
    +		var ub = nume_b / denom;
    +		
    +		if(ua >= 0.0 && ua <= 1.0 && ub >= 0.0 && ub <= 1.0)
    +		{
    +			// Get the intersection point
    +			var intersectionX = x0 + ua*(x1 - x0);
    +			var intersectionY = y0 + ua*(y1 - y0);
    +			
    +			return new mxPoint(intersectionX, intersectionY);
    +		}
    +		
    +		// No intersection
    +		return null;
    +	},
    +	
    +	/**
    +	 * Function: ptSeqDistSq
    +	 * 
    +	 * Returns the square distance between a segment and a point.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * x1 - X-coordinate of the startpoint of the segment.
    +	 * y1 - Y-coordinate of the startpoint of the segment.
    +	 * x2 - X-coordinate of the endpoint of the segment.
    +	 * y2 - Y-coordinate of the endpoint of the segment.
    +	 * px - X-coordinate of the point.
    +	 * py - Y-coordinate of the point.
    +	 */
    +	ptSegDistSq: function(x1, y1, x2, y2, px, py)
    +    {
    +		x2 -= x1;
    +		y2 -= y1;
    +
    +		px -= x1;
    +		py -= y1;
    +
    +		var dotprod = px * x2 + py * y2;
    +		var projlenSq;
    +
    +		if (dotprod <= 0.0)
    +		{
    +		    projlenSq = 0.0;
    +		}
    +		else
    +		{
    +		    px = x2 - px;
    +		    py = y2 - py;
    +		    dotprod = px * x2 + py * y2;
    +
    +		    if (dotprod <= 0.0)
    +		    {
    +				projlenSq = 0.0;
    +		    }
    +		    else
    +		    {
    +				projlenSq = dotprod * dotprod / (x2 * x2 + y2 * y2);
    +		    }
    +		}
    +
    +		var lenSq = px * px + py * py - projlenSq;
    +		
    +		if (lenSq < 0)
    +		{
    +		    lenSq = 0;
    +		}
    +		
    +		return lenSq;
    +    },
    +    	
    +	/**
    +	 * Function: relativeCcw
    +	 * 
    +	 * Returns 1 if the given point on the right side of the segment, 0 if its
    +	 * on the segment, and -1 if the point is on the left side of the segment.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * x1 - X-coordinate of the startpoint of the segment.
    +	 * y1 - Y-coordinate of the startpoint of the segment.
    +	 * x2 - X-coordinate of the endpoint of the segment.
    +	 * y2 - Y-coordinate of the endpoint of the segment.
    +	 * px - X-coordinate of the point.
    +	 * py - Y-coordinate of the point.
    +	 */
    +	relativeCcw: function(x1, y1, x2, y2, px, py)
    +    {
    +		x2 -= x1;
    +		y2 -= y1;
    +		px -= x1;
    +		py -= y1;
    +		var ccw = px * y2 - py * x2;
    +		
    +		if (ccw == 0.0)
    +		{
    +		    ccw = px * x2 + py * y2;
    +		    
    +		    if (ccw > 0.0)
    +		    {
    +				px -= x2;
    +				py -= y2;
    +				ccw = px * x2 + py * y2;
    +				
    +				if (ccw < 0.0)
    +				{
    +				    ccw = 0.0;
    +				}
    +		    }
    +		}
    +		
    +		return (ccw < 0.0) ? -1 : ((ccw > 0.0) ? 1 : 0);
    +    },
    +    
    +	/**
    +	 * Function: animateChanges
    +	 * 
    +	 * See <mxEffects.animateChanges>. This is for backwards compatibility and
    +	 * will be removed later.
    +	 */
    +	animateChanges: function(graph, changes)
    +	{
    +		// LATER: Deprecated, remove this function
    +    	mxEffects.animateChanges.apply(this, arguments);
    +	},
    +    
    +	/**
    +	 * Function: cascadeOpacity
    +	 * 
    +	 * See <mxEffects.cascadeOpacity>. This is for backwards compatibility and
    +	 * will be removed later.
    +	 */
    +    cascadeOpacity: function(graph, cell, opacity)
    +	{
    +		mxEffects.cascadeOpacity.apply(this, arguments);
    +	},
    +
    +	/**
    +	 * Function: fadeOut
    +	 * 
    +	 * See <mxEffects.fadeOut>. This is for backwards compatibility and
    +	 * will be removed later.
    +	 */
    +	fadeOut: function(node, from, remove, step, delay, isEnabled)
    +	{
    +		mxEffects.fadeOut.apply(this, arguments);
    +	},
    +	
    +	/**
    +	 * Function: setOpacity
    +	 * 
    +	 * Sets the opacity of the specified DOM node to the given value in %.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * node - DOM node to set the opacity for.
    +	 * value - Opacity in %. Possible values are between 0 and 100.
    +	 */
    +	setOpacity: function(node, value)
    +	{
    +		if (mxUtils.isVml(node))
    +		{
    +	    	if (value >= 100)
    +	    	{
    +	    		node.style.filter = null;
    +	    	}
    +	    	else
    +	    	{
    +	    		// TODO: Why is the division by 5 needed in VML?
    +			    node.style.filter = 'alpha(opacity=' + (value/5) + ')';
    +	    	}
    +		}
    +		else if (mxClient.IS_IE && (typeof(document.documentMode) === 'undefined' || document.documentMode < 9))
    +	    {
    +	    	if (value >= 100)
    +	    	{
    +	    		node.style.filter = null;
    +	    	}
    +	    	else
    +	    	{
    +			    node.style.filter = 'alpha(opacity=' + value + ')';
    +	    	}
    +		}
    +		else
    +		{
    +		    node.style.opacity = (value / 100);
    +		}
    +	},
    +
    +	/**
    +	 * Function: createImage
    +	 * 
    +	 * Creates and returns an image (IMG node) or VML image (v:image) in IE6 in
    +	 * quirs mode.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * src - URL that points to the image to be displayed.
    +	 */
    +	createImage: function(src)
    +	{
    +        var imageNode = null;
    +        
    +		if (mxClient.IS_IE6 && document.compatMode != 'CSS1Compat')
    +		{
    +        	imageNode = document.createElement('v:image');
    +        	imageNode.setAttribute('src', src);
    +        	imageNode.style.borderStyle = 'none';
    +        }
    +		else
    +		{
    +			imageNode = document.createElement('img');
    +			imageNode.setAttribute('src', src);
    +			imageNode.setAttribute('border', '0');
    +		}
    +		
    +		return imageNode;
    +	},
    +
    +	/**
    +	 * Function: sortCells
    +	 * 
    +	 * Sorts the given cells according to the order in the cell hierarchy.
    +	 * Ascending is optional and defaults to true.
    +	 */
    +	sortCells: function(cells, ascending)
    +	{
    +		ascending = (ascending != null) ? ascending : true;
    +		var lookup = new mxDictionary();
    +		cells.sort(function(o1, o2)
    +		{
    +			var p1 = lookup.get(o1);
    +			
    +			if (p1 == null)
    +			{
    +				p1 = mxCellPath.create(o1).split(mxCellPath.PATH_SEPARATOR);
    +				lookup.put(o1, p1);
    +			}
    +			
    +			var p2 = lookup.get(o2);
    +			
    +			if (p2 == null)
    +			{
    +				p2 = mxCellPath.create(o2).split(mxCellPath.PATH_SEPARATOR);
    +				lookup.put(o2, p2);
    +			}
    +			
    +			var comp = mxCellPath.compare(p1, p2);
    +			
    +			return (comp == 0) ? 0 : (((comp > 0) == ascending) ? 1 : -1);
    +		});
    +		
    +		return cells;
    +	},
    +
    +	/**
    +	 * Function: getStylename
    +	 * 
    +	 * Returns the stylename in a style of the form [(stylename|key=value);] or
    +	 * an empty string if the given style does not contain a stylename.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * style - String of the form [(stylename|key=value);].
    +	 */
    +	getStylename: function(style)
    +	{
    +		if (style != null)
    +		{
    +			var pairs = style.split(';');
    +			var stylename = pairs[0];
    +			
    +			if (stylename.indexOf('=') < 0)
    +			{
    +				return stylename;
    +			}
    +		}
    +				
    +		return '';
    +	},
    +
    +	/**
    +	 * Function: getStylenames
    +	 * 
    +	 * Returns the stylenames in a style of the form [(stylename|key=value);]
    +	 * or an empty array if the given style does not contain any stylenames.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * style - String of the form [(stylename|key=value);].
    +	 */
    +	getStylenames: function(style)
    +	{
    +		var result = [];
    +		
    +		if (style != null)
    +		{
    +			var pairs = style.split(';');
    +			
    +			for (var i = 0; i < pairs.length; i++)
    +			{
    +				if (pairs[i].indexOf('=') < 0)
    +				{
    +					result.push(pairs[i]);
    +				}
    +			}
    +		}
    +				
    +		return result;
    +	},
    +
    +	/**
    +	 * Function: indexOfStylename
    +	 * 
    +	 * Returns the index of the given stylename in the given style. This
    +	 * returns -1 if the given stylename does not occur (as a stylename) in the
    +	 * given style, otherwise it returns the index of the first character.
    +	 */
    +	indexOfStylename: function(style, stylename)
    +	{
    +		if (style != null && stylename != null)
    +		{
    +			var tokens = style.split(';');
    +			var pos = 0;
    +			
    +			for (var i = 0; i < tokens.length; i++)
    +			{
    +				if (tokens[i] == stylename)
    +				{
    +					return pos;
    +				}
    +				
    +				pos += tokens[i].length + 1;
    +			}
    +		}
    +
    +		return -1;
    +	},
    +	
    +	/**
    +	 * Function: addStylename
    +	 * 
    +	 * Adds the specified stylename to the given style if it does not already
    +	 * contain the stylename.
    +	 */
    +	addStylename: function(style, stylename)
    +	{
    +		if (mxUtils.indexOfStylename(style, stylename) < 0)
    +		{
    +			if (style == null)
    +			{
    +				style = '';
    +			}
    +			else if (style.length > 0 && style.charAt(style.length - 1) != ';')
    +			{
    +				style += ';';
    +			}
    +			
    +			style += stylename;
    +		}
    +		
    +		return style;
    +	},
    +	
    +	/**
    +	 * Function: removeStylename
    +	 * 
    +	 * Removes all occurrences of the specified stylename in the given style
    +	 * and returns the updated style. Trailing semicolons are not preserved.
    +	 */
    +	removeStylename: function(style, stylename)
    +	{
    +		var result = [];
    +		
    +		if (style != null)
    +		{
    +			var tokens = style.split(';');
    +			
    +			for (var i = 0; i < tokens.length; i++)
    +			{
    +				if (tokens[i] != stylename)
    +				{
    +					result.push(tokens[i]);
    +				}
    +			}
    +		}
    +		
    +		return result.join(';');
    +	},
    +	
    +	/**
    +	 * Function: removeAllStylenames
    +	 * 
    +	 * Removes all stylenames from the given style and returns the updated
    +	 * style.
    +	 */
    +	removeAllStylenames: function(style)
    +	{
    +		var result = [];
    +		
    +		if (style != null)
    +		{
    +			var tokens = style.split(';');
    +			
    +			for (var i = 0; i < tokens.length; i++)
    +			{
    +				// Keeps the key, value assignments
    +				if (tokens[i].indexOf('=') >= 0)
    +				{
    +					result.push(tokens[i]);
    +				}
    +			}
    +		}
    +		
    +		return result.join(';');
    +	},
    +
    +	/**
    +	 * Function: setCellStyles
    +	 * 
    +	 * Assigns the value for the given key in the styles of the given cells, or
    +	 * removes the key from the styles if the value is null.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * model - <mxGraphModel> to execute the transaction in.
    +	 * cells - Array of <mxCells> to be updated.
    +	 * key - Key of the style to be changed.
    +	 * value - New value for the given key.
    +	 */
    +	setCellStyles: function(model, cells, key, value)
    +	{
    +		if (cells != null && cells.length > 0)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (var i = 0; i < cells.length; i++)
    +				{
    +					if (cells[i] != null)
    +					{
    +						var style = mxUtils.setStyle(
    +							model.getStyle(cells[i]),
    +							key, value);
    +						model.setStyle(cells[i], style);
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	},
    +	
    +	/**
    +	 * Function: setStyle
    +	 * 
    +	 * Adds or removes the given key, value pair to the style and returns the
    +	 * new style. If value is null or zero length then the key is removed from
    +	 * the style. This is for cell styles, not for CSS styles.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * style - String of the form [(stylename|key=value);].
    +	 * key - Key of the style to be changed.
    +	 * value - New value for the given key.
    +	 */
    +	setStyle: function(style, key, value)
    +	{
    +		var isValue = value != null && (typeof(value.length) == 'undefined' || value.length > 0);
    +		
    +		if (style == null || style.length == 0)
    +		{
    +			if (isValue)
    +			{
    +				style = key+'='+value;
    +			}
    +		}
    +		else
    +		{
    +			var index = style.indexOf(key+'=');
    +			
    +			if (index < 0)
    +			{
    +				if (isValue)
    +				{
    +					var sep = (style.charAt(style.length-1) == ';') ? '' : ';';
    +					style = style + sep + key+'='+value;
    +				}
    +			}
    +			else
    +			{
    +				var tmp = (isValue) ? (key + '=' + value) : '';
    +				var cont = style.indexOf(';', index);
    +				
    +				if (!isValue)
    +				{
    +					cont++;
    +				}
    +				
    +				style = style.substring(0, index) + tmp +
    +					((cont > index) ? style.substring(cont) : '');
    +			}
    +		}
    +		
    +		return style;
    +	},
    +
    +	/**
    +	 * Function: setCellStyleFlags
    +	 * 
    +	 * Sets or toggles the flag bit for the given key in the cell's styles.
    +	 * If value is null then the flag is toggled.
    +	 * 
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * var cells = graph.getSelectionCells();
    +	 * mxUtils.setCellStyleFlags(graph.model,
    +	 * 			cells,
    +	 * 			mxConstants.STYLE_FONTSTYLE,
    +	 * 			mxConstants.FONT_BOLD);
    +	 * (end)
    +	 * 
    +	 * Toggles the bold font style.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * model - <mxGraphModel> that contains the cells.
    +	 * cells - Array of <mxCells> to change the style for.
    +	 * key - Key of the style to be changed.
    +	 * flag - Integer for the bit to be changed.
    +	 * value - Optional boolean value for the flag.
    +	 */
    +	setCellStyleFlags: function(model, cells, key, flag, value)
    +	{
    +		if (cells != null && cells.length > 0)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				for (var i = 0; i < cells.length; i++)
    +				{
    +					if (cells[i] != null)
    +					{
    +						var style = mxUtils.setStyleFlag(
    +							model.getStyle(cells[i]),
    +							key, flag, value);
    +						model.setStyle(cells[i], style);
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	},
    +	
    +	/**
    +	 * Function: setStyleFlag
    +	 * 
    +	 * Sets or removes the given key from the specified style and returns the
    +	 * new style. If value is null then the flag is toggled.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * style - String of the form [(stylename|key=value);].
    +	 * key - Key of the style to be changed.
    +	 * flag - Integer for the bit to be changed.
    +	 * value - Optional boolean value for the given flag.
    +	 */
    +	setStyleFlag: function(style, key, flag, value)
    +	{
    +		if (style == null || style.length == 0)
    +		{
    +			if (value || value == null)
    +			{
    +				style = key+'='+flag;
    +			}
    +			else
    +			{
    +				style = key+'=0';
    +			}
    +		}
    +		else
    +		{
    +			var index = style.indexOf(key+'=');
    +			
    +			if (index < 0)
    +			{
    +				var sep = (style.charAt(style.length-1) == ';') ? '' : ';';
    +
    +				if (value || value == null)
    +				{
    +					style = style + sep + key + '=' + flag;
    +				}
    +				else
    +				{
    +					style = style + sep + key + '=0';
    +				}
    +			}
    +			else
    +			{
    +				var cont = style.indexOf(';', index);
    +				var tmp = '';
    +				
    +				if (cont < 0)
    +				{
    +					tmp  = style.substring(index+key.length+1);
    +				}
    +				else
    +				{
    +					tmp = style.substring(index+key.length+1, cont);
    +				}
    +				
    +				if (value == null)
    +				{
    +					tmp = parseInt(tmp) ^ flag;
    +				}
    +				else if (value)
    +				{
    +					tmp = parseInt(tmp) | flag;
    +				}
    +				else
    +				{
    +					tmp = parseInt(tmp) & ~flag;
    +				}
    +				
    +				style = style.substring(0, index) + key + '=' + tmp +
    +					((cont >= 0) ? style.substring(cont) : '');
    +			}
    +		}
    +		
    +		return style;
    +	},
    +	
    +	/**
    +	 * Function: getSizeForString
    +	 * 
    +	 * Returns an <mxRectangle> with the size (width and height in pixels) of
    +	 * the given string. The string may contain HTML markup. Newlines should be
    +	 * converted to <br> before calling this method.
    +	 * 
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * var label = graph.getLabel(cell).replace(/\n/g, "<br>");
    +	 * var size = graph.getSizeForString(label);
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * text - String whose size should be returned.
    +	 * fontSize - Integer that specifies the font size in pixels. Default is
    +	 * <mxConstants.DEFAULT_FONTSIZE>.
    +	 * fontFamily - String that specifies the name of the font family. Default
    +	 * is <mxConstants.DEFAULT_FONTFAMILY>.
    +	 */
    +	getSizeForString: function(text, fontSize, fontFamily)
    +	{
    +		var div = document.createElement('div');
    +		
    +		// Sets the font size and family if non-default
    +		div.style.fontSize = fontSize || mxConstants.DEFAULT_FONTSIZE;
    +		div.style.fontFamily = fontFamily || mxConstants.DEFAULT_FONTFAMILY;
    +		
    +		// Disables block layout and outside wrapping and hides the div
    +		div.style.position = 'absolute';
    +		div.style.display = 'inline';
    +		div.style.visibility = 'hidden';
    +
    +		// Adds the text and inserts into DOM for updating of size
    +		div.innerHTML = text;
    +		document.body.appendChild(div);
    +		
    +		// Gets the size and removes from DOM
    +		var size = new mxRectangle(0, 0, div.offsetWidth, div.offsetHeight);
    +		document.body.removeChild(div);
    +		
    +		return size;
    +	},
    +	
    +	/**
    +	 * Function: getViewXml
    +	 */
    +	getViewXml: function(graph, scale, cells, x0, y0)
    +	{
    +		x0 = (x0 != null) ? x0 : 0;
    +		y0 = (y0 != null) ? y0 : 0;
    +		scale = (scale != null) ? scale : 1;
    +
    +		if (cells == null)
    +		{
    +			var model = graph.getModel();
    +			cells = [model.getRoot()];
    +		}
    +		
    +		var view = graph.getView();
    +		var result = null;
    +
    +		// Disables events on the view
    +		var eventsEnabled = view.isEventsEnabled();
    +		view.setEventsEnabled(false);
    +
    +		// Workaround for label bounds not taken into account for image export.
    +		// Creates a temporary draw pane which is used for rendering the text.
    +		// Text rendering is required for finding the bounds of the labels.
    +		var drawPane = view.drawPane;
    +		var overlayPane = view.overlayPane;
    +
    +		if (graph.dialect == mxConstants.DIALECT_SVG)
    +		{
    +			view.drawPane = document.createElementNS(mxConstants.NS_SVG, 'g');
    +			view.canvas.appendChild(view.drawPane);
    +
    +			// Redirects cell overlays into temporary container
    +			view.overlayPane = document.createElementNS(mxConstants.NS_SVG, 'g');
    +			view.canvas.appendChild(view.overlayPane);
    +		}
    +		else
    +		{
    +			view.drawPane = view.drawPane.cloneNode(false);
    +			view.canvas.appendChild(view.drawPane);
    +			
    +			// Redirects cell overlays into temporary container
    +			view.overlayPane = view.overlayPane.cloneNode(false);
    +			view.canvas.appendChild(view.overlayPane);
    +		}
    +
    +		// Resets the translation
    +		var translate = view.getTranslate();
    +		view.translate = new mxPoint(x0, y0);
    +
    +		// Creates the temporary cell states in the view
    +		var temp = new mxTemporaryCellStates(graph.getView(), scale, cells);
    +
    +		try
    +		{
    +			var enc = new mxCodec();
    +			result = enc.encode(graph.getView());
    +		}
    +		finally
    +		{
    +			temp.destroy();
    +			view.translate = translate;
    +			view.canvas.removeChild(view.drawPane);
    +			view.canvas.removeChild(view.overlayPane);
    +			view.drawPane = drawPane;
    +			view.overlayPane = overlayPane;
    +			view.setEventsEnabled(eventsEnabled);
    +		}
    +
    +		return result;
    +	},
    +	
    +	/**
    +	 * Function: getScaleForPageCount
    +	 * 
    +	 * Returns the scale to be used for printing the graph with the given
    +	 * bounds across the specifies number of pages with the given format. The
    +	 * scale is always computed such that it given the given amount or fewer
    +	 * pages in the print output. See <mxPrintPreview> for an example.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * pageCount - Specifies the number of pages in the print output.
    +	 * graph - <mxGraph> that should be printed.
    +	 * pageFormat - Optional <mxRectangle> that specifies the page format.
    +	 * Default is <mxConstants.PAGE_FORMAT_A4_PORTRAIT>.
    +	 * border - The border along each side of every page.
    +	 */
    +	getScaleForPageCount: function(pageCount, graph, pageFormat, border)
    +	{
    +		if (pageCount < 1)
    +		{
    +			// We can't work with less than 1 page, return no scale
    +			// change
    +			return 1;
    +		}
    +		
    +		pageFormat = (pageFormat != null) ? pageFormat : mxConstants.PAGE_FORMAT_A4_PORTRAIT;
    +		border = (border != null) ? border : 0;
    +		
    +		var availablePageWidth = pageFormat.width - (border * 2);
    +		var availablePageHeight = pageFormat.height - (border * 2);
    +
    +		// Work out the number of pages required if the
    +		// graph is not scaled.
    +		var graphBounds = graph.getGraphBounds().clone();
    +		var sc = graph.getView().getScale();
    +		graphBounds.width /= sc;
    +		graphBounds.height /= sc;
    +		var graphWidth = graphBounds.width;
    +		var graphHeight = graphBounds.height;
    +
    +		var scale = 1;
    +		
    +		// The ratio of the width/height for each printer page
    +		var pageFormatAspectRatio = availablePageWidth / availablePageHeight;
    +		// The ratio of the width/height for the graph to be printer
    +		var graphAspectRatio = graphWidth / graphHeight;
    +		
    +		// The ratio of horizontal pages / vertical pages for this 
    +		// graph to maintain its aspect ratio on this page format
    +		var pagesAspectRatio = graphAspectRatio / pageFormatAspectRatio;
    +		
    +		// Factor the square root of the page count up and down 
    +		// by the pages aspect ratio to obtain a horizontal and 
    +		// vertical page count that adds up to the page count
    +		// and has the correct aspect ratio
    +		var pageRoot = Math.sqrt(pageCount);
    +		var pagesAspectRatioSqrt = Math.sqrt(pagesAspectRatio);
    +		var numRowPages = pageRoot * pagesAspectRatioSqrt;
    +		var numColumnPages = pageRoot / pagesAspectRatioSqrt;
    +
    +		// These value are rarely more than 2 rounding downs away from
    +		// a total that meets the page count. In cases of one being less 
    +		// than 1 page, the other value can be too high and take more iterations 
    +		// In this case, just change that value to be the page count, since 
    +		// we know the other value is 1
    +		if (numRowPages < 1 && numColumnPages > pageCount)
    +		{
    +			var scaleChange = numColumnPages / pageCount;
    +			numColumnPages = pageCount;
    +			numRowPages /= scaleChange;
    +		}
    +		
    +		if (numColumnPages < 1 && numRowPages > pageCount)
    +		{
    +			var scaleChange = numRowPages / pageCount;
    +			numRowPages = pageCount;
    +			numColumnPages /= scaleChange;
    +		}		
    +
    +		var currentTotalPages = Math.ceil(numRowPages) * Math.ceil(numColumnPages);
    +
    +		var numLoops = 0;
    +		
    +		// Iterate through while the rounded up number of pages comes to
    +		// a total greater than the required number
    +		while (currentTotalPages > pageCount)
    +		{
    +			// Round down the page count (rows or columns) that is
    +			// closest to its next integer down in percentage terms.
    +			// i.e. Reduce the page total by reducing the total
    +			// page area by the least possible amount
    +
    +			var roundRowDownProportion = Math.floor(numRowPages) / numRowPages;
    +			var roundColumnDownProportion = Math.floor(numColumnPages) / numColumnPages;
    +			
    +			// If the round down proportion is, work out the proportion to
    +			// round down to 1 page less
    +			if (roundRowDownProportion == 1)
    +			{
    +				roundRowDownProportion = Math.floor(numRowPages-1) / numRowPages;
    +			}
    +			if (roundColumnDownProportion == 1)
    +			{
    +				roundColumnDownProportion = Math.floor(numColumnPages-1) / numColumnPages;
    +			}
    +			
    +			// Check which rounding down is smaller, but in the case of very small roundings
    +			// try the other dimension instead
    +			var scaleChange = 1;
    +			
    +			// Use the higher of the two values
    +			if (roundRowDownProportion > roundColumnDownProportion)
    +			{
    +				scaleChange = roundRowDownProportion;
    +			}
    +			else
    +			{
    +				scaleChange = roundColumnDownProportion;
    +			}
    +
    +			numRowPages = numRowPages * scaleChange;
    +			numColumnPages = numColumnPages * scaleChange;
    +			currentTotalPages = Math.ceil(numRowPages) * Math.ceil(numColumnPages);
    +			
    +			numLoops++;
    +			
    +			if (numLoops > 10)
    +			{
    +				break;
    +			}
    +		}
    +
    +		// Work out the scale from the number of row pages required
    +		// The column pages will give the same value
    +		var posterWidth = availablePageWidth * numRowPages;
    +		scale = posterWidth / graphWidth;
    +		
    +		// Allow for rounding errors
    +		return scale * 0.99999;
    +	},
    +	
    +	/**
    +	 * Function: show
    +	 * 
    +	 * Copies the styles and the markup from the graph's container into the
    +	 * given document and removes all cursor styles. The document is returned.
    +	 * 
    +	 * This function should be called from within the document with the graph.
    +	 * If you experience problems with missing stylesheets in IE then try adding
    +	 * the domain to the trusted sites.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * graph - <mxGraph> to be copied.
    +	 * doc - Document where the new graph is created.
    +	 * x0 - X-coordinate of the graph view origin. Default is 0.
    +	 * y0 - Y-coordinate of the graph view origin. Default is 0.
    +	 */
    +	show: function(graph, doc, x0, y0)
    +	{
    +		x0 = (x0 != null) ? x0 : 0;
    +		y0 = (y0 != null) ? y0 : 0;
    +		
    +		if (doc == null)
    +		{
    +			var wnd = window.open();
    +			doc = wnd.document;
    +		}
    +		else
    +		{
    +			doc.open();
    +		}
    +		
    +		var bounds = graph.getGraphBounds();
    +		var dx = -bounds.x + x0;
    +		var dy = -bounds.y + y0;
    +
    +		// Needs a special way of creating the page so that no click is required
    +		// to refresh the contents after the external CSS styles have been loaded.
    +		// To avoid a click or programmatic refresh, the styleSheets[].cssText
    +		// property is copied over from the original document.
    +		if (mxClient.IS_IE)
    +		{
    +			var html = '<html>';
    +			html += '<head>';
    +
    +			var base = document.getElementsByTagName('base');
    +			
    +			for (var i = 0; i < base.length; i++)
    +			{
    +				html += base[i].outerHTML;
    +			}
    +
    +			html += '<style>';
    +
    +			// Copies the stylesheets without having to load them again
    +			for (var i = 0; i < document.styleSheets.length; i++)
    +			{
    +				try
    +				{
    +					html += document.styleSheets(i).cssText;
    +				}
    +				catch (e)
    +				{
    +					// ignore security exception
    +				}
    +			}
    +
    +			html += '</style>';
    +
    +			html += '</head>';
    +			html += '<body>';
    +			
    +			// Copies the contents of the graph container
    +			html += graph.container.innerHTML;
    +			
    +			html += '</body>';
    +			html += '<html>';
    +
    +			doc.writeln(html);
    +			doc.close();
    +
    +			// Makes sure the inner container is on the top, left
    +		    var node = doc.body.getElementsByTagName('DIV')[0];
    +		    
    +		    if (node != null)
    +		    {
    +			    node.style.position = 'absolute';
    +			    node.style.left = dx + 'px';
    +			    node.style.top = dy + 'px';
    +		    }
    +		}
    +		else
    +		{
    +			doc.writeln('<html');
    +			doc.writeln('<head>');
    +			
    +			var base = document.getElementsByTagName('base');
    +			
    +			for (var i=0; i<base.length; i++)
    +			{
    +				doc.writeln(mxUtils.getOuterHtml(base[i]));
    +			}
    +			
    +			var links = document.getElementsByTagName('link');
    +			
    +			for (var i=0; i<links.length; i++)
    +			{
    +				doc.writeln(mxUtils.getOuterHtml(links[i]));
    +			}
    +	
    +			var styles = document.getElementsByTagName('style');
    +			
    +			for (var i=0; i<styles.length; i++)
    +			{
    +				doc.writeln(mxUtils.getOuterHtml(styles[i]));
    +			}
    +
    +			doc.writeln('</head>');
    +			doc.writeln('</html>');
    +			doc.close();
    +			
    +			// Workaround for FF2 which has no body element in a document where
    +			// the body has been added using document.write.
    +			if (doc.body == null)
    +			{
    +				doc.documentElement.appendChild(doc.createElement('body'));
    +			}
    +			
    +			// Workaround for missing scrollbars in FF
    +			doc.body.style.overflow = 'auto';
    +			
    +			var node = graph.container.firstChild;
    +			
    +			while (node != null)
    +			{
    +				var clone = node.cloneNode(true);
    +				doc.body.appendChild(clone);
    +				node = node.nextSibling;
    +			}
    +
    +			// Shifts negative coordinates into visible space
    +			var node = doc.getElementsByTagName('g')[0];
    +
    +			if (node != null)
    +			{
    +				node.setAttribute('transform', 'translate(' + dx + ',' + dy + ')');
    +		    	
    +		    	// Updates the size of the SVG container
    +		    	var root = node.ownerSVGElement;
    +				root.setAttribute('width', bounds.width + Math.max(bounds.x, 0) + 3);
    +				root.setAttribute('height', bounds.height + Math.max(bounds.y, 0) + 3);
    +			}
    +		}
    +	
    +		mxUtils.removeCursors(doc.body);
    +	
    +		return doc;
    +	},
    +	
    +	/**
    +	 * Function: printScreen
    +	 * 
    +	 * Prints the specified graph using a new window and the built-in print
    +	 * dialog.
    +	 * 
    +	 * This function should be called from within the document with the graph.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * graph - <mxGraph> to be printed.
    +	 */
    +	printScreen: function(graph)
    +	{
    +		var wnd = window.open();
    +		mxUtils.show(graph, wnd.document);
    +		
    +		var print = function()
    +		{
    +			wnd.focus();
    +			wnd.print();
    +			wnd.close();
    +		};
    +		
    +		// Workaround for Google Chrome which needs a bit of a
    +		// delay in order to render the SVG contents
    +		if (mxClient.IS_GC)
    +		{
    +			wnd.setTimeout(print, 500);
    +		}
    +		else
    +		{
    +			print();
    +		}
    +	},
    +	
    +	/**
    +	 * Function: popup
    +	 * 
    +	 * Shows the specified text content in a new <mxWindow> or a new browser
    +	 * window if isInternalWindow is false.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * content - String that specifies the text to be displayed.
    +	 * isInternalWindow - Optional boolean indicating if an mxWindow should be
    +	 * used instead of a new browser window. Default is false.
    +	 */
    +	popup: function(content, isInternalWindow)
    +	{
    +	   	if (isInternalWindow)
    +	   	{
    +			var div = document.createElement('div');
    +			
    +			div.style.overflow = 'scroll';
    +			div.style.width = '636px';
    +			div.style.height = '460px';
    +			
    +			var pre = document.createElement('pre');
    +		    pre.innerHTML = mxUtils.htmlEntities(content, false).
    +		    	replace(/\n/g,'<br>').replace(/ /g, '&nbsp;');
    +			
    +			div.appendChild(pre);
    +			
    +			var w = document.body.clientWidth;
    +			var h = (document.body.clientHeight || document.documentElement.clientHeight);
    +			var wnd = new mxWindow('Popup Window', div,
    +				w/2-320, h/2-240, 640, 480, false, true);
    +
    +			wnd.setClosable(true);
    +			wnd.setVisible(true);
    +		}
    +		else
    +		{
    +			// Wraps up the XML content in a textarea
    +			if (mxClient.IS_NS)
    +			{
    +			    var wnd = window.open();
    +				wnd.document.writeln('<pre>'+mxUtils.htmlEntities(content)+'</pre');
    +			   	wnd.document.close();
    +			}
    +			else
    +			{
    +			    var wnd = window.open();
    +			    var pre = wnd.document.createElement('pre');
    +			    pre.innerHTML = mxUtils.htmlEntities(content, false).
    +			    	replace(/\n/g,'<br>').replace(/ /g, '&nbsp;');
    +			   	wnd.document.body.appendChild(pre);
    +			}
    +	   	}
    +	},
    +	
    +	/**
    +	 * Function: alert
    +	 * 
    +	 * Displayss the given alert in a new dialog. This implementation uses the
    +	 * built-in alert function. This is used to display validation errors when
    +	 * connections cannot be changed or created.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * message - String specifying the message to be displayed.
    +	 */
    +	alert: function(message)
    +	{
    +		alert(message);
    +	},
    +	
    +	/**
    +	 * Function: prompt
    +	 * 
    +	 * Displays the given message in a prompt dialog. This implementation uses
    +	 * the built-in prompt function.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * message - String specifying the message to be displayed.
    +	 * defaultValue - Optional string specifying the default value.
    +	 */
    +	prompt: function(message, defaultValue)
    +	{
    +		return prompt(message, defaultValue);
    +	},
    +	
    +	/**
    +	 * Function: confirm
    +	 * 
    +	 * Displays the given message in a confirm dialog. This implementation uses
    +	 * the built-in confirm function.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * message - String specifying the message to be displayed.
    +	 */
    +	confirm: function(message)
    +	{
    +		return confirm(message);
    +	},
    +
    +	/**
    +	 * Function: error
    +	 * 
    +	 * Displays the given error message in a new <mxWindow> of the given width.
    +	 * If close is true then an additional close button is added to the window.
    +	 * The optional icon specifies the icon to be used for the window. Default
    +	 * is <mxUtils.errorImage>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * message - String specifying the message to be displayed.
    +	 * width - Integer specifying the width of the window.
    +	 * close - Optional boolean indicating whether to add a close button.
    +	 * icon - Optional icon for the window decoration.
    +	 */
    +	error: function(message, width, close, icon)
    +	{
    +		var div = document.createElement('div');
    +		div.style.padding = '20px';
    +
    +		var img = document.createElement('img');
    +		img.setAttribute('src', icon || mxUtils.errorImage);
    +		img.setAttribute('valign', 'bottom');
    +		img.style.verticalAlign = 'middle';
    +		div.appendChild(img);
    +
    +		div.appendChild(document.createTextNode('\u00a0')); // &nbsp;
    +		div.appendChild(document.createTextNode('\u00a0')); // &nbsp;
    +		div.appendChild(document.createTextNode('\u00a0')); // &nbsp;
    +		mxUtils.write(div, message);
    +
    +		var w = document.body.clientWidth;
    +		var h = (document.body.clientHeight || document.documentElement.clientHeight);
    +		var warn = new mxWindow(mxResources.get(mxUtils.errorResource) ||
    +			mxUtils.errorResource, div, (w-width)/2, h/4, width, null,
    +			false, true);
    +
    +		if (close)
    +		{
    +			mxUtils.br(div);
    +			
    +			var tmp = document.createElement('p');
    +			var button = document.createElement('button');
    +
    +			if (mxClient.IS_IE)
    +			{
    +				button.style.cssText = 'float:right';
    +			}
    +			else
    +			{
    +				button.setAttribute('style', 'float:right');
    +			}
    +
    +			mxEvent.addListener(button, 'click', function(evt)
    +			{
    +				warn.destroy();
    +			});
    +
    +			mxUtils.write(button, mxResources.get(mxUtils.closeResource) ||
    +				mxUtils.closeResource);
    +			
    +			tmp.appendChild(button);
    +			div.appendChild(tmp);
    +			
    +			mxUtils.br(div);
    +			
    +			warn.setClosable(true);
    +		}
    +		
    +		warn.setVisible(true);
    +		
    +		return warn;
    +	},
    +
    +	/**
    +	 * Function: makeDraggable
    +	 * 
    +	 * Configures the given DOM element to act as a drag source for the
    +	 * specified graph. Returns a a new <mxDragSource>. If
    +	 * <mxDragSource.guideEnabled> is enabled then the x and y arguments must
    +	 * be used in funct to match the preview location.
    +	 * 
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * var funct = function(graph, evt, cell, x, y)
    +	 * {
    +	 *   if (graph.canImportCell(cell))
    +	 *   {
    +	 *     var parent = graph.getDefaultParent();
    +	 *     var vertex = null;
    +	 *     
    +	 *     graph.getModel().beginUpdate();
    +	 *     try
    +	 *     {
    +	 * 	     vertex = graph.insertVertex(parent, null, 'Hello', x, y, 80, 30);
    +	 *     }
    +	 *     finally
    +	 *     {
    +	 *       graph.getModel().endUpdate();
    +	 *     }
    +	 *
    +	 *     graph.setSelectionCell(vertex);
    +	 *   }
    +	 * }
    +	 * 
    +	 * var img = document.createElement('img');
    +	 * img.setAttribute('src', 'editors/images/rectangle.gif');
    +	 * img.style.position = 'absolute';
    +	 * img.style.left = '0px';
    +	 * img.style.top = '0px';
    +	 * img.style.width = '16px';
    +	 * img.style.height = '16px';
    +	 * 
    +	 * var dragImage = img.cloneNode(true);
    +	 * dragImage.style.width = '32px';
    +	 * dragImage.style.height = '32px';
    +	 * mxUtils.makeDraggable(img, graph, funct, dragImage);
    +	 * document.body.appendChild(img);
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * element - DOM element to make draggable.
    +	 * graphF - <mxGraph> that acts as the drop target or a function that takes a
    +	 * mouse event and returns the current <mxGraph>.
    +	 * funct - Function to execute on a successful drop.
    +	 * dragElement - Optional DOM node to be used for the drag preview.
    +	 * dx - Optional horizontal offset between the cursor and the drag
    +	 * preview.
    +	 * dy - Optional vertical offset between the cursor and the drag
    +	 * preview.
    +	 * autoscroll - Optional boolean that specifies if autoscroll should be
    +	 * used. Default is mxGraph.autoscroll.
    +	 * scalePreview - Optional boolean that specifies if the preview element
    +	 * should be scaled according to the graph scale. If this is true, then
    +	 * the offsets will also be scaled. Default is false.
    +	 * highlightDropTargets - Optional boolean that specifies if dropTargets
    +	 * should be highlighted. Default is true.
    +	 * getDropTarget - Optional function to return the drop target for a given
    +	 * location (x, y). Default is mxGraph.getCellAt.
    +	 */
    +	makeDraggable: function(element, graphF, funct, dragElement, dx, dy, autoscroll,
    +			scalePreview, highlightDropTargets, getDropTarget)
    +	{
    +		var dragSource = new mxDragSource(element, funct);
    +		dragSource.dragOffset = new mxPoint((dx != null) ? dx : 0,
    +			(dy != null) ? dy : mxConstants.TOOLTIP_VERTICAL_OFFSET);
    +		dragSource.autoscroll = autoscroll;
    +		
    +		// Cannot enable this by default. This needs to be enabled in the caller
    +		// if the funct argument uses the new x- and y-arguments.
    +		dragSource.setGuidesEnabled(false);
    +		
    +		if (highlightDropTargets != null)
    +		{
    +			dragSource.highlightDropTargets = highlightDropTargets;
    +		}
    +		
    +		// Overrides function to find drop target cell
    +		if (getDropTarget != null)
    +		{
    +			dragSource.getDropTarget = getDropTarget;
    +		}
    +		
    +		// Overrides function to get current graph
    +		dragSource.getGraphForEvent = function(evt)
    +		{
    +			return (typeof(graphF) == 'function') ? graphF(evt) : graphF;
    +		};
    +		
    +		// Translates switches into dragSource customizations
    +		if (dragElement != null)
    +		{
    +			dragSource.createDragElement = function()
    +			{
    +				return dragElement.cloneNode(true);
    +			};
    +			
    +			if (scalePreview)
    +			{
    +				dragSource.createPreviewElement = function(graph)
    +				{
    +					var elt = dragElement.cloneNode(true);
    +
    +					var w = parseInt(elt.style.width);
    +					var h = parseInt(elt.style.height);
    +					elt.style.width = Math.round(w * graph.view.scale) + 'px';
    +					elt.style.height = Math.round(h * graph.view.scale) + 'px';
    +					
    +					return elt;
    +				};
    +			}
    +		}
    +		
    +		return dragSource;
    +	}
    +
    +};
    diff --git a/javascript/src/js/util/mxWindow.js b/javascript/src/js/util/mxWindow.js
    new file mode 100644
    index 000000000..dfc85c048
    --- /dev/null
    +++ b/javascript/src/js/util/mxWindow.js
    @@ -0,0 +1,1044 @@
    +/**
    + * $Id: mxWindow.js,v 1.65 2011-09-29 08:17:38 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxWindow
    + * 
    + * Basic window inside a document.
    + * 
    + * Examples:
    + * 
    + * Creating a simple window.
    + *
    + * (code)
    + * var tb = document.createElement('div');
    + * var wnd = new mxWindow('Title', tb, 100, 100, 200, 200, true, true);
    + * wnd.setVisible(true); 
    + * (end)
    + *
    + * Creating a window that contains an iframe. 
    + * 
    + * (code)
    + * var frame = document.createElement('iframe');
    + * frame.setAttribute('width', '192px');
    + * frame.setAttribute('height', '172px');
    + * frame.setAttribute('src', 'http://www.example.com/');
    + * frame.style.backgroundColor = 'white';
    + * 
    + * var w = document.body.clientWidth;
    + * var h = (document.body.clientHeight || document.documentElement.clientHeight);
    + * var wnd = new mxWindow('Title', frame, (w-200)/2, (h-200)/3, 200, 200);
    + * wnd.setVisible(true);
    + * (end);
    + *
    + * Event: mxEvent.MOVE_START
    + *
    + * Fires before the window is moved. The <code>event</code> property contains
    + * the corresponding mouse event.
    + *
    + * Event: mxEvent.MOVE
    + *
    + * Fires while the window is being moved. The <code>event</code> property
    + * contains the corresponding mouse event.
    + *
    + * Event: mxEvent.MOVE_END
    + *
    + * Fires after the window is moved. The <code>event</code> property contains
    + * the corresponding mouse event.
    + *
    + * Event: mxEvent.RESIZE_START
    + *
    + * Fires before the window is resized. The <code>event</code> property contains
    + * the corresponding mouse event.
    + *
    + * Event: mxEvent.RESIZE
    + *
    + * Fires while the window is being resized. The <code>event</code> property
    + * contains the corresponding mouse event.
    + *
    + * Event: mxEvent.RESIZE_END
    + *
    + * Fires after the window is resized. The <code>event</code> property contains
    + * the corresponding mouse event.
    + *
    + * Event: mxEvent.MAXIMIZE
    + * 
    + * Fires after the window is maximized. The <code>event</code> property
    + * contains the corresponding mouse event.
    + * 
    + * Event: mxEvent.MINIMIZE
    + * 
    + * Fires after the window is minimized. The <code>event</code> property
    + * contains the corresponding mouse event.
    + * 
    + * Event: mxEvent.NORMALIZE
    + * 
    + * Fires after the window is normalized, that is, it returned from
    + * maximized or minimized state. The <code>event</code> property contains the
    + * corresponding mouse event.
    + *  
    + * Event: mxEvent.ACTIVATE
    + * 
    + * Fires after a window is activated. The <code>previousWindow</code> property
    + * contains the previous window. The event sender is the active window.
    + * 
    + * Event: mxEvent.SHOW
    + * 
    + * Fires after the window is shown. This event has no properties.
    + * 
    + * Event: mxEvent.HIDE
    + * 
    + * Fires after the window is hidden. This event has no properties.
    + * 
    + * Event: mxEvent.CLOSE
    + * 
    + * Fires before the window is closed. The <code>event</code> property contains
    + * the corresponding mouse event.
    + * 
    + * Event: mxEvent.DESTROY
    + * 
    + * Fires before the window is destroyed. This event has no properties.
    + * 
    + * Constructor: mxWindow
    + * 
    + * Constructs a new window with the given dimension and title to display
    + * the specified content. The window elements use the given style as a
    + * prefix for the classnames of the respective window elements, namely,
    + * the window title and window pane. The respective postfixes are appended
    + * to the given stylename as follows:
    + * 
    + *   style - Base style for the window.
    + *   style+Title - Style for the window title.
    + *   style+Pane - Style for the window pane.
    + * 
    + * The default value for style is mxWindow, resulting in the following
    + * classnames for the window elements: mxWindow, mxWindowTitle and
    + * mxWindowPane.
    + * 
    + * If replaceNode is given then the window replaces the given DOM node in
    + * the document.
    + * 
    + * Parameters:
    + * 
    + * title - String that represents the title of the new window.
    + * content - DOM node that is used as the window content.
    + * x - X-coordinate of the window location.
    + * y - Y-coordinate of the window location.
    + * width - Width of the window.
    + * height - Optional height of the window. Default is to match the height
    + * of the content at the specified width.
    + * minimizable - Optional boolean indicating if the window is minimizable.
    + * Default is true.
    + * movable - Optional boolean indicating if the window is movable. Default
    + * is true.
    + * replaceNode - Optional DOM node that the window should replace.
    + * style - Optional base classname for the window elements. Default is
    + * mxWindow.
    + */
    +function mxWindow(title, content, x, y, width, height, minimizable, movable, replaceNode, style)
    +{
    +	if (content != null)
    +	{
    +		minimizable = (minimizable != null) ? minimizable : true;
    +		this.content = content;
    +		this.init(x, y, width, height, style);
    +		
    +		this.installMaximizeHandler();
    +		this.installMinimizeHandler();
    +		this.installCloseHandler();
    +		this.setMinimizable(minimizable);
    +		this.setTitle(title);
    +		
    +		if (movable == null || movable)
    +		{
    +			this.installMoveHandler();
    +		}
    +
    +		if (replaceNode != null && replaceNode.parentNode != null)
    +		{
    +			replaceNode.parentNode.replaceChild(this.div, replaceNode);
    +		}
    +		else
    +		{
    +			document.body.appendChild(this.div);
    +		}
    +	}
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxWindow.prototype = new mxEventSource();
    +mxWindow.prototype.constructor = mxWindow;
    +
    +/**
    + * Variable: closeImage
    + * 
    + * URL of the image to be used for the close icon in the titlebar.
    + */
    +mxWindow.prototype.closeImage = mxClient.imageBasePath + '/close.gif';
    +
    +/**
    + * Variable: minimizeImage
    + * 
    + * URL of the image to be used for the minimize icon in the titlebar.
    + */
    +mxWindow.prototype.minimizeImage = mxClient.imageBasePath + '/minimize.gif';
    +	
    +/**
    + * Variable: normalizeImage
    + * 
    + * URL of the image to be used for the normalize icon in the titlebar.
    + */
    +mxWindow.prototype.normalizeImage = mxClient.imageBasePath + '/normalize.gif';
    +	
    +/**
    + * Variable: maximizeImage
    + * 
    + * URL of the image to be used for the maximize icon in the titlebar.
    + */
    +mxWindow.prototype.maximizeImage = mxClient.imageBasePath + '/maximize.gif';
    +
    +/**
    + * Variable: normalizeImage
    + * 
    + * URL of the image to be used for the resize icon.
    + */
    +mxWindow.prototype.resizeImage = mxClient.imageBasePath + '/resize.gif';
    +
    +/**
    + * Variable: visible
    + * 
    + * Boolean flag that represents the visible state of the window.
    + */
    +mxWindow.prototype.visible = false;
    +	
    +/**
    + * Variable: content
    + * 
    + * Reference to the DOM node that represents the window content.
    + */
    +mxWindow.prototype.content = false;
    +	
    +/**
    + * Variable: minimumSize
    + * 
    + * <mxRectangle> that specifies the minimum width and height of the window.
    + * Default is (50, 40).
    + */
    +mxWindow.prototype.minimumSize = new mxRectangle(0, 0, 50, 40);
    +
    +/**
    + * Variable: title
    + * 
    + * Reference to the DOM node (TD) that contains the title.
    + */
    +mxWindow.prototype.title = false;
    +
    +/**
    + * Variable: content
    + * 
    + * Reference to the DOM node that represents the window content.
    + */
    +mxWindow.prototype.content = false;
    +
    +/**
    + * Variable: destroyOnClose
    + * 
    + * Specifies if the window should be destroyed when it is closed. If this
    + * is false then the window is hidden using <setVisible>. Default is true.
    + */
    +mxWindow.prototype.destroyOnClose = true;
    +
    +/**
    + * Function: init
    + * 
    + * Initializes the DOM tree that represents the window.
    + */
    +mxWindow.prototype.init = function(x, y, width, height, style)
    +{
    +	style = (style != null) ? style : 'mxWindow';
    +	
    +	this.div = document.createElement('div');
    +	this.div.className = style; 
    +	this.div.style.left = x+'px';
    +	this.div.style.top = y+'px';
    +	this.table = document.createElement('table');
    +	this.table.className = style;
    +	
    +	// Workaround for table size problems in FF
    +	if (width != null)
    +	{
    +		if (!mxClient.IS_IE)
    +		{
    +			this.div.style.width = width+'px'; 
    +		}
    +		
    +		this.table.style.width = width+'px';
    +	} 
    +	
    +	if (height != null)
    +	{
    +		if (!mxClient.IS_IE)
    +		{
    +			this.div.style.height = height+'px';
    +		}
    +		
    +		this.table.style.height = height+'px';
    +	}		
    +	
    +	// Creates title row
    +	var tbody = document.createElement('tbody');
    +	var tr = document.createElement('tr');
    +	
    +	this.title = document.createElement('td');
    +	this.title.className = style+'Title';
    +	tr.appendChild(this.title);
    +	tbody.appendChild(tr);
    +	
    +	// Creates content row and table cell
    +	tr = document.createElement('tr');
    +	this.td = document.createElement('td');
    +	this.td.className = style+'Pane';
    +
    +	this.contentWrapper = document.createElement('div');
    +	this.contentWrapper.className = style+'Pane';
    +	this.contentWrapper.style.width = '100%';
    +	this.contentWrapper.appendChild(this.content);
    +
    +	// Workaround for div around div restricts height
    +	// of inner div if outerdiv has hidden overflow
    +	if (mxClient.IS_IE || this.content.nodeName.toUpperCase() != 'DIV')
    +	{
    +		this.contentWrapper.style.height = '100%';
    +	}
    +
    +	// Puts all content into the DOM
    +	this.td.appendChild(this.contentWrapper);
    +	tr.appendChild(this.td);
    +	tbody.appendChild(tr);
    +	this.table.appendChild(tbody);
    +	this.div.appendChild(this.table);
    +	
    +	// Puts the window on top of other windows when clicked
    +	var activator = mxUtils.bind(this, function(evt)
    +	{
    +		this.activate();
    +	});
    +	
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	mxEvent.addListener(this.title, md, activator);
    +	mxEvent.addListener(this.table, md, activator);
    +
    +	this.hide();
    +};
    +
    +/**
    + * Function: setTitle
    + * 
    + * Sets the window title to the given string. HTML markup inside the title
    + * will be escaped.
    + */
    +mxWindow.prototype.setTitle = function(title)
    +{
    +	// Removes all text content nodes (normally just one)
    +	var child = this.title.firstChild;
    +	
    +	while (child != null)
    +	{
    +		var next = child.nextSibling;
    +		
    +		if (child.nodeType == mxConstants.NODETYPE_TEXT)
    +		{
    +			child.parentNode.removeChild(child);
    +		}
    +		
    +		child = next;
    +	}
    +	
    +	mxUtils.write(this.title, title || '');
    +};
    +
    +/**
    + * Function: setScrollable
    + * 
    + * Sets if the window contents should be scrollable.
    + */
    +mxWindow.prototype.setScrollable = function(scrollable)
    +{
    +	// Workaround for hang in Presto 2.5.22 (Opera 10.5)
    +	if (navigator.userAgent.indexOf('Presto/2.5') < 0)
    +	{
    +		if (scrollable)
    +		{
    +			this.contentWrapper.style.overflow = 'auto';
    +		}
    +		else
    +		{
    +			this.contentWrapper.style.overflow = 'hidden';
    +		}
    +	}
    +};
    +
    +/**
    + * Function: activate
    + * 
    + * Puts the window on top of all other windows.
    + */
    +mxWindow.prototype.activate = function()
    +{
    +	if (mxWindow.activeWindow != this)
    +	{
    +		var style = mxUtils.getCurrentStyle(this.getElement());
    +		var index = (style != null) ? style.zIndex : 3;
    +
    +		if (mxWindow.activeWindow)
    +		{
    +			var elt = mxWindow.activeWindow.getElement();
    +			
    +			if (elt != null && elt.style != null)
    +			{
    +				elt.style.zIndex = index;
    +			}
    +		}
    +		
    +		var previousWindow = mxWindow.activeWindow;
    +		this.getElement().style.zIndex = parseInt(index) + 1;
    +		mxWindow.activeWindow = this;
    +		
    +		this.fireEvent(new mxEventObject(mxEvent.ACTIVATE, 'previousWindow', previousWindow));
    +	}
    +};
    +
    +/**
    + * Function: getElement
    + * 
    + * Returuns the outermost DOM node that makes up the window.
    + */
    +mxWindow.prototype.getElement = function()
    +{
    +	return this.div;
    +};
    +
    +/**
    + * Function: fit
    + * 
    + * Makes sure the window is inside the client area of the window.
    + */
    +mxWindow.prototype.fit = function()
    +{
    +	mxUtils.fit(this.div);
    +};
    +
    +/**
    + * Function: isResizable
    + * 
    + * Returns true if the window is resizable.
    + */
    +mxWindow.prototype.isResizable = function()
    +{
    +	if (this.resize != null)
    +	{
    +		return this.resize.style.display != 'none';
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: setResizable
    + * 
    + * Sets if the window should be resizable.
    + */
    +mxWindow.prototype.setResizable = function(resizable)
    +{
    +	if (resizable)
    +	{
    +		if (this.resize == null)
    +		{
    +			this.resize = document.createElement('img');
    +			this.resize.style.position = 'absolute';
    +			this.resize.style.bottom = '2px';
    +			this.resize.style.right = '2px';
    +
    +			this.resize.setAttribute('src', mxClient.imageBasePath + '/resize.gif');
    +			this.resize.style.cursor = 'nw-resize';
    +			
    +			var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +			var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +			var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +
    +			mxEvent.addListener(this.resize, md, mxUtils.bind(this, function(evt)
    +			{
    +				this.activate();
    +				var startX = mxEvent.getClientX(evt);
    +				var startY = mxEvent.getClientY(evt);
    +				var width = this.div.offsetWidth;
    +				var height = this.div.offsetHeight;
    +
    +				// Adds a temporary pair of listeners to intercept
    +				// the gesture event in the document
    +				var dragHandler = mxUtils.bind(this, function(evt)
    +				{
    +					var dx = mxEvent.getClientX(evt) - startX;
    +					var dy = mxEvent.getClientY(evt) - startY;
    +
    +					this.setSize(width + dx, height + dy);
    +	
    +					this.fireEvent(new mxEventObject(mxEvent.RESIZE, 'event', evt));
    +					mxEvent.consume(evt);
    +				});
    +				
    +				var dropHandler = mxUtils.bind(this, function(evt)
    +				{
    +					mxEvent.removeListener(document, mm, dragHandler);
    +					mxEvent.removeListener(document, mu, dropHandler);
    +	
    +					this.fireEvent(new mxEventObject(mxEvent.RESIZE_END, 'event', evt));
    +					mxEvent.consume(evt);
    +				});
    +	
    +				mxEvent.addListener(document, mm, dragHandler);
    +				mxEvent.addListener(document, mu, dropHandler);
    +
    +				this.fireEvent(new mxEventObject(mxEvent.RESIZE_START, 'event', evt));
    +				mxEvent.consume(evt);
    +			}));
    +
    +			this.div.appendChild(this.resize);
    +		}
    +		else 
    +		{
    +			this.resize.style.display = 'inline';
    +		}
    +	}
    +	else if (this.resize != null)
    +	{
    +		this.resize.style.display = 'none';
    +	}
    +};
    +	
    +/**
    + * Function: setSize
    + * 
    + * Sets the size of the window.
    + */
    +mxWindow.prototype.setSize = function(width, height)
    +{
    +	width = Math.max(this.minimumSize.width, width);
    +	height = Math.max(this.minimumSize.height, height);
    +
    +	// Workaround for table size problems in FF
    +	if (!mxClient.IS_IE)
    +	{
    +		this.div.style.width =  width + 'px';
    +		this.div.style.height = height + 'px';
    +	}
    +	
    +	this.table.style.width =  width + 'px';
    +	this.table.style.height = height + 'px';
    +
    +	if (!mxClient.IS_IE)
    +	{
    +		this.contentWrapper.style.height =
    +			(this.div.offsetHeight - this.title.offsetHeight - 2)+'px';
    +	}
    +};
    +	
    +/**
    + * Function: setMinimizable
    + * 
    + * Sets if the window is minimizable.
    + */
    +mxWindow.prototype.setMinimizable = function(minimizable)
    +{
    +	this.minimize.style.display = (minimizable) ? '' : 'none';
    +};
    +
    +/**
    + * Function: getMinimumSize
    + * 
    + * Returns an <mxRectangle> that specifies the size for the minimized window.
    + * A width or height of 0 means keep the existing width or height. This
    + * implementation returns the height of the window title and keeps the width.
    + */
    +mxWindow.prototype.getMinimumSize = function()
    +{
    +	return new mxRectangle(0, 0, 0, this.title.offsetHeight);
    +};
    +
    +/**
    + * Function: installMinimizeHandler
    + * 
    + * Installs the event listeners required for minimizing the window.
    + */
    +mxWindow.prototype.installMinimizeHandler = function()
    +{
    +	this.minimize = document.createElement('img');
    +	
    +	this.minimize.setAttribute('src', this.minimizeImage);
    +	this.minimize.setAttribute('align', 'right');
    +	this.minimize.setAttribute('title', 'Minimize');
    +	this.minimize.style.cursor = 'pointer';
    +	this.minimize.style.marginRight = '1px';
    +	this.minimize.style.display = 'none';
    +	
    +	this.title.appendChild(this.minimize);
    +	
    +	var minimized = false;
    +	var maxDisplay = null;
    +	var height = null;
    +
    +	var funct = mxUtils.bind(this, function(evt)
    +	{
    +		this.activate();
    +		
    +		if (!minimized)
    +		{
    +			minimized = true;
    +			
    +			this.minimize.setAttribute('src', this.normalizeImage);
    +			this.minimize.setAttribute('title', 'Normalize');
    +			this.contentWrapper.style.display = 'none';
    +			maxDisplay = this.maximize.style.display;
    +			
    +			this.maximize.style.display = 'none';
    +			height = this.table.style.height;
    +			
    +			var minSize = this.getMinimumSize();
    +			
    +			if (minSize.height > 0)
    +			{
    +				if (!mxClient.IS_IE)
    +				{
    +					this.div.style.height = minSize.height + 'px';
    +				}
    +				
    +				this.table.style.height = minSize.height + 'px';
    +			}
    +			
    +			if (minSize.width > 0)
    +			{
    +				if (!mxClient.IS_IE)
    +				{
    +					this.div.style.width = minSize.width + 'px';
    +				}
    +				
    +				this.table.style.width = minSize.width + 'px';
    +			}
    +			
    +			if (this.resize != null)
    +			{
    +				this.resize.style.visibility = 'hidden';
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.MINIMIZE, 'event', evt));
    +		}
    +		else
    +		{
    +			minimized = false;
    +			
    +			this.minimize.setAttribute('src', this.minimizeImage);
    +			this.minimize.setAttribute('title', 'Minimize');
    +			this.contentWrapper.style.display = ''; // default
    +			this.maximize.style.display = maxDisplay;
    +			
    +			if (!mxClient.IS_IE)
    +			{
    +				this.div.style.height = height;
    +			}
    +			
    +			this.table.style.height = height;
    +
    +			if (this.resize != null)
    +			{
    +				this.resize.style.visibility = '';
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.NORMALIZE, 'event', evt));
    +		}
    +		
    +		mxEvent.consume(evt);
    +	});
    +	
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	mxEvent.addListener(this.minimize, md, funct);
    +};
    +	
    +/**
    + * Function: setMaximizable
    + * 
    + * Sets if the window is maximizable.
    + */
    +mxWindow.prototype.setMaximizable = function(maximizable)
    +{
    +	this.maximize.style.display = (maximizable) ? '' : 'none';
    +};
    +
    +/**
    + * Function: installMaximizeHandler
    + * 
    + * Installs the event listeners required for maximizing the window.
    + */
    +mxWindow.prototype.installMaximizeHandler = function()
    +{
    +	this.maximize = document.createElement('img');
    +	
    +	this.maximize.setAttribute('src', this.maximizeImage);
    +	this.maximize.setAttribute('align', 'right');
    +	this.maximize.setAttribute('title', 'Maximize');
    +	this.maximize.style.cursor = 'default';
    +	this.maximize.style.marginLeft = '1px';
    +	this.maximize.style.cursor = 'pointer';
    +	this.maximize.style.display = 'none';
    +	
    +	this.title.appendChild(this.maximize);
    +	
    +	var maximized = false;
    +	var x = null;
    +	var y = null;
    +	var height = null;
    +	var width = null;
    +
    +	var funct = mxUtils.bind(this, function(evt)
    +	{
    +		this.activate();
    +		
    +		if (this.maximize.style.display != 'none')
    +		{
    +			if (!maximized)
    +			{
    +				maximized = true;
    +				
    +				this.maximize.setAttribute('src', this.normalizeImage);
    +				this.maximize.setAttribute('title', 'Normalize');
    +				this.contentWrapper.style.display = '';
    +				this.minimize.style.visibility = 'hidden';
    +				
    +				// Saves window state
    +				x = parseInt(this.div.style.left);
    +				y = parseInt(this.div.style.top);
    +				height = this.table.style.height;
    +				width = this.table.style.width;
    +
    +				this.div.style.left = '0px';
    +				this.div.style.top = '0px';
    +
    +				if (!mxClient.IS_IE)
    +				{
    +					this.div.style.height = (document.body.clientHeight-2)+'px';
    +					this.div.style.width = (document.body.clientWidth-2)+'px';
    +				}
    +
    +				this.table.style.width = (document.body.clientWidth-2)+'px';
    +				this.table.style.height = (document.body.clientHeight-2)+'px';
    +				
    +				if (this.resize != null)
    +				{
    +					this.resize.style.visibility = 'hidden';
    +				}
    +
    +				if (!mxClient.IS_IE)
    +				{
    +					var style = mxUtils.getCurrentStyle(this.contentWrapper);
    +		
    +					if (style.overflow == 'auto' || this.resize != null)
    +					{
    +						this.contentWrapper.style.height =
    +							(this.div.offsetHeight - this.title.offsetHeight - 2)+'px';
    +					}
    +				}
    +
    +				this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE, 'event', evt));
    +			}
    +			else
    +			{
    +				maximized = false;
    +				
    +				this.maximize.setAttribute('src', this.maximizeImage);
    +				this.maximize.setAttribute('title', 'Maximize');
    +				this.contentWrapper.style.display = '';
    +				this.minimize.style.visibility = '';
    +
    +				// Restores window state
    +				this.div.style.left = x+'px';
    +				this.div.style.top = y+'px';
    +				
    +				if (!mxClient.IS_IE)
    +				{
    +					this.div.style.height = height;
    +					this.div.style.width = width;
    +
    +					var style = mxUtils.getCurrentStyle(this.contentWrapper);
    +		
    +					if (style.overflow == 'auto' || this.resize != null)
    +					{
    +						this.contentWrapper.style.height =
    +							(this.div.offsetHeight - this.title.offsetHeight - 2)+'px';
    +					}
    +				}
    +				
    +				this.table.style.height = height;
    +				this.table.style.width = width;
    +
    +				if (this.resize != null)
    +				{
    +					this.resize.style.visibility = '';
    +				}
    +				
    +				this.fireEvent(new mxEventObject(mxEvent.NORMALIZE, 'event', evt));
    +			}
    +			
    +			mxEvent.consume(evt);
    +		}
    +	});
    +	
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	mxEvent.addListener(this.maximize, md, funct);
    +	mxEvent.addListener(this.title, 'dblclick', funct);
    +};
    +	
    +/**
    + * Function: installMoveHandler
    + * 
    + * Installs the event listeners required for moving the window.
    + */
    +mxWindow.prototype.installMoveHandler = function()
    +{
    +	this.title.style.cursor = 'move';
    +	
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +	var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +	
    +	mxEvent.addListener(this.title, md, mxUtils.bind(this, function(evt)
    +	{
    +		var startX = mxEvent.getClientX(evt);
    +		var startY = mxEvent.getClientY(evt);
    +		var x = this.getX();
    +		var y = this.getY();
    +					
    +		// Adds a temporary pair of listeners to intercept
    +		// the gesture event in the document
    +		var dragHandler = mxUtils.bind(this, function(evt)
    +		{
    +			var dx = mxEvent.getClientX(evt) - startX;
    +			var dy = mxEvent.getClientY(evt) - startY;
    +			this.setLocation(x + dx, y + dy);
    +			this.fireEvent(new mxEventObject(mxEvent.MOVE, 'event', evt));
    +			mxEvent.consume(evt);
    +		});
    +		
    +		var dropHandler = mxUtils.bind(this, function(evt)
    +		{
    +			mxEvent.removeListener(document, mm, dragHandler);
    +			mxEvent.removeListener(document, mu, dropHandler);
    +
    +			this.fireEvent(new mxEventObject(mxEvent.MOVE_END, 'event', evt));
    +			mxEvent.consume(evt);
    +		});
    +
    +		mxEvent.addListener(document, mm, dragHandler);
    +		mxEvent.addListener(document, mu, dropHandler);
    +		
    +		this.fireEvent(new mxEventObject(mxEvent.MOVE_START, 'event', evt));
    +		mxEvent.consume(evt);
    +	}));
    +};
    +
    +/**
    + * Function: setLocation
    + * 
    + * Sets the upper, left corner of the window.
    + */
    + mxWindow.prototype.setLocation = function(x, y)
    + {
    +	this.div.style.left = x + 'px';
    +	this.div.style.top = y + 'px';
    + };
    +
    +/**
    + * Function: getX
    + *
    + * Returns the current position on the x-axis.
    + */
    +mxWindow.prototype.getX = function()
    +{
    +	return parseInt(this.div.style.left);
    +};
    +
    +/**
    + * Function: getY
    + *
    + * Returns the current position on the y-axis.
    + */
    +mxWindow.prototype.getY = function()
    +{
    +	return parseInt(this.div.style.top);
    +};
    +
    +/**
    + * Function: installCloseHandler
    + *
    + * Adds the <closeImage> as a new image node in <closeImg> and installs the
    + * <close> event.
    + */
    +mxWindow.prototype.installCloseHandler = function()
    +{
    +	this.closeImg = document.createElement('img');
    +	
    +	this.closeImg.setAttribute('src', this.closeImage);
    +	this.closeImg.setAttribute('align', 'right');
    +	this.closeImg.setAttribute('title', 'Close');
    +	this.closeImg.style.marginLeft = '2px';
    +	this.closeImg.style.cursor = 'pointer';
    +	this.closeImg.style.display = 'none';
    +	
    +	this.title.insertBefore(this.closeImg, this.title.firstChild);
    +
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	mxEvent.addListener(this.closeImg, md, mxUtils.bind(this, function(evt)
    +	{
    +		this.fireEvent(new mxEventObject(mxEvent.CLOSE, 'event', evt));
    +		
    +		if (this.destroyOnClose)
    +		{
    +			this.destroy();
    +		}
    +		else
    +		{
    +			this.setVisible(false);
    +		}
    +		
    +		mxEvent.consume(evt);
    +	}));
    +};
    +
    +/**
    + * Function: setImage
    + * 
    + * Sets the image associated with the window.
    + * 
    + * Parameters:
    + * 
    + * image - URL of the image to be used.
    + */
    +mxWindow.prototype.setImage = function(image)
    +{
    +	this.image = document.createElement('img');
    +	this.image.setAttribute('src', image);
    +	this.image.setAttribute('align', 'left');
    +	this.image.style.marginRight = '4px';
    +	this.image.style.marginLeft = '0px';
    +	this.image.style.marginTop = '-2px';
    +	
    +	this.title.insertBefore(this.image, this.title.firstChild);
    +};
    +
    +/**
    + * Function: setClosable
    + * 
    + * Sets the image associated with the window.
    + * 
    + * Parameters:
    + * 
    + * closable - Boolean specifying if the window should be closable.
    + */
    +mxWindow.prototype.setClosable = function(closable)
    +{
    +	this.closeImg.style.display = (closable) ? '' : 'none';
    +};
    +
    +/**
    + * Function: isVisible
    + * 
    + * Returns true if the window is visible.
    + */
    +mxWindow.prototype.isVisible = function()
    +{
    +	if (this.div != null)
    +	{
    +		return this.div.style.visibility != 'hidden';
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: setVisible
    + *
    + * Shows or hides the window depending on the given flag.
    + * 
    + * Parameters:
    + * 
    + * visible - Boolean indicating if the window should be made visible.
    + */
    +mxWindow.prototype.setVisible = function(visible)
    +{
    +	if (this.div != null && this.isVisible() != visible)
    +	{
    +		if (visible)
    +		{
    +			this.show();
    +		}
    +		else
    +		{
    +			this.hide();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: show
    + *
    + * Shows the window.
    + */
    +mxWindow.prototype.show = function()
    +{
    +	this.div.style.visibility = '';
    +	this.activate();
    +	
    +	var style = mxUtils.getCurrentStyle(this.contentWrapper);
    +	
    +	if (!mxClient.IS_IE && (style.overflow == 'auto' || this.resize != null))
    +	{
    +		this.contentWrapper.style.height =
    +			(this.div.offsetHeight - this.title.offsetHeight - 2)+'px';
    +	}
    +	
    +	this.fireEvent(new mxEventObject(mxEvent.SHOW));
    +};
    +
    +/**
    + * Function: hide
    + *
    + * Hides the window.
    + */
    +mxWindow.prototype.hide = function()
    +{
    +	this.div.style.visibility = 'hidden';
    +	this.fireEvent(new mxEventObject(mxEvent.HIDE));
    +};
    +
    +/**
    + * Function: destroy
    + *
    + * Destroys the window and removes all associated resources. Fires a
    + * <destroy> event prior to destroying the window.
    + */
    +mxWindow.prototype.destroy = function()
    +{
    +	this.fireEvent(new mxEventObject(mxEvent.DESTROY));
    +	
    +	if (this.div != null)
    +	{
    +		mxEvent.release(this.div);
    +		this.div.parentNode.removeChild(this.div);
    +		this.div = null;
    +	}
    +	
    +	this.title = null;
    +	this.content = null;
    +	this.contentWrapper = null;
    +};
    diff --git a/javascript/src/js/util/mxXmlCanvas2D.js b/javascript/src/js/util/mxXmlCanvas2D.js
    new file mode 100644
    index 000000000..499c71a57
    --- /dev/null
    +++ b/javascript/src/js/util/mxXmlCanvas2D.js
    @@ -0,0 +1,715 @@
    +/**
    + * $Id: mxXmlCanvas2D.js,v 1.9 2012-04-24 13:56:56 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + *
    + * Class: mxXmlCanvas2D
    + * 
    + * Implements a canvas to be used with <mxImageExport>. This canvas writes all
    + * calls as child nodes to the given root XML node.
    + * 
    + * (code)
    + * var xmlDoc = mxUtils.createXmlDocument();
    + * var root = xmlDoc.createElement('output');
    + * xmlDoc.appendChild(root);
    + * var xmlCanvas = new mxXmlCanvas2D(root);
    + * (end)
    + * 
    + * Constructor: mxXmlCanvas2D
    + * 
    + * Constructs a XML canvas.
    + * 
    + * Parameters:
    + * 
    + * root - XML node for adding child nodes.
    + */
    +var mxXmlCanvas2D = function(root)
    +{
    +	/**
    +	 * Variable: converter
    +	 * 
    +	 * Holds the <mxUrlConverter> to convert image URLs.
    +	 */
    +	var converter = new mxUrlConverter();
    +
    +	/**
    +	 * Variable: compressed
    +	 * 
    +	 * Specifies if the output should be compressed by removing redundant calls.
    +	 * Default is true.
    +	 */
    +	var compressed = true;
    +
    +	/**
    +	 * Variable: textEnabled
    +	 * 
    +	 * Specifies if text output should be enabled. Default is true.
    +	 */
    +	var textEnabled = true;
    +
    +	// Private reference to the owner document
    +	var doc = root.ownerDocument;
    +
    +	// Implements stack for save/restore
    +	var stack = [];
    +	
    +	// Implements state for redundancy checks
    +	var state =
    +	{
    +		alpha: 1,
    +		dashed: false,
    +		strokewidth: 1,
    +		fontsize: mxConstants.DEFAULT_FONTSIZE,
    +		fontfamily: mxConstants.DEFAULT_FONTFAMILY,
    +		fontcolor: '#000000'
    +	};
    +	
    +	// Private helper function set set precision to 2
    +	var f2 = function(x)
    +	{
    +		return Math.round(parseFloat(x) * 100) / 100;
    +	};
    +
    +	// Returns public interface
    +	return {
    +
    +		/**
    +		 * Function: getConverter
    +		 * 
    +		 * Returns <converter>.
    +		 */
    +		getConverter: function()
    +		{
    +			return converter;
    +		},
    +
    +		/**
    +		 * Function: isCompressed
    +		 * 
    +		 * Returns <compressed>.
    +		 */
    +		isCompressed: function()
    +		{
    +			return compressed;
    +		},
    +
    +		/**
    +		 * Function: setCompressed
    +		 * 
    +		 * Sets <compressed>.
    +		 */
    +		setCompressed: function(value)
    +		{
    +			compressed = value;
    +		},
    +
    +		/**
    +		 * Function: isTextEnabled
    +		 * 
    +		 * Returns <textEnabled>.
    +		 */
    +		isTextEnabled: function()
    +		{
    +			return textEnabled;
    +		},
    +
    +		/**
    +		 * Function: setTextEnabled
    +		 * 
    +		 * Sets <textEnabled>.
    +		 */
    +		setTextEnabled: function(value)
    +		{
    +			textEnabled = value;
    +		},
    +		
    +		/**
    +		 * Function: getDocument
    +		 * 
    +		 * Returns the owner document of the root element.
    +		 */
    +		getDocument: function()
    +		{
    +			return doc;
    +		},
    +		
    +		/**
    +		 * Function: save
    +		 * 
    +		 * Saves the state of the graphics object.
    +		 */
    +		save: function()
    +		{
    +			if (compressed)
    +			{
    +				stack.push(state);
    +				state = mxUtils.clone(state);
    +			}
    +			
    +			root.appendChild(doc.createElement('save'));
    +		},
    +		
    +		/**
    +		 * Function: restore
    +		 * 
    +		 * Restores the state of the graphics object.
    +		 */
    +		restore: function()
    +		{
    +			if (compressed)
    +			{
    +				state = stack.pop();
    +			}
    +			
    +			root.appendChild(doc.createElement('restore'));
    +		},
    +		
    +		/**
    +		 * Function: scale
    +		 * 
    +		 * Scales the current graphics object.
    +		 */
    +		scale: function(value)
    +		{
    +			var elem = doc.createElement('scale');
    +			elem.setAttribute('scale', value);
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: translate
    +		 * 
    +		 * Translates the current graphics object.
    +		 */
    +		translate: function(dx, dy)
    +		{
    +			var elem = doc.createElement('translate');
    +			elem.setAttribute('dx', f2(dx));
    +			elem.setAttribute('dy', f2(dy));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: rotate
    +		 * 
    +		 * Rotates and/or flips the current graphics object.
    +		 */
    +		rotate: function(theta, flipH, flipV, cx, cy)
    +		{
    +			var elem = doc.createElement('rotate');
    +			elem.setAttribute('theta', f2(theta));
    +			elem.setAttribute('flipH', (flipH) ? '1' : '0');
    +			elem.setAttribute('flipV', (flipV) ? '1' : '0');
    +			elem.setAttribute('cx', f2(cx));
    +			elem.setAttribute('cy', f2(cy));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setStrokeWidth
    +		 * 
    +		 * Sets the stroke width.
    +		 */
    +		setStrokeWidth: function(value)
    +		{
    +			if (compressed)
    +			{
    +				if (state.strokewidth == value)
    +				{
    +					return;
    +				}
    +				
    +				state.strokewidth = value;
    +			}
    +			
    +			var elem = doc.createElement('strokewidth');
    +			elem.setAttribute('width', f2(value));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setStrokeColor
    +		 * 
    +		 * Sets the stroke color.
    +		 */
    +		setStrokeColor: function(value)
    +		{
    +			var elem = doc.createElement('strokecolor');
    +			elem.setAttribute('color', value);
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setDashed
    +		 * 
    +		 * Sets the dashed state to true or false.
    +		 */
    +		setDashed: function(value)
    +		{
    +			if (compressed)
    +			{
    +				if (state.dashed == value)
    +				{
    +					return;
    +				}
    +				
    +				state.dashed = value;
    +			}
    +			
    +			var elem = doc.createElement('dashed');
    +			elem.setAttribute('dashed', (value) ? '1' : '0');
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setDashPattern
    +		 * 
    +		 * Sets the dashed pattern to the given space separated list of numbers.
    +		 */
    +		setDashPattern: function(value)
    +		{
    +			var elem = doc.createElement('dashpattern');
    +			elem.setAttribute('pattern', value);
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setLineCap
    +		 * 
    +		 * Sets the linecap.
    +		 */
    +		setLineCap: function(value)
    +		{
    +			var elem = doc.createElement('linecap');
    +			elem.setAttribute('cap', value);
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setLineJoin
    +		 * 
    +		 * Sets the linejoin.
    +		 */
    +		setLineJoin: function(value)
    +		{
    +			var elem = doc.createElement('linejoin');
    +			elem.setAttribute('join', value);
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setMiterLimit
    +		 * 
    +		 * Sets the miterlimit.
    +		 */
    +		setMiterLimit: function(value)
    +		{
    +			var elem = doc.createElement('miterlimit');
    +			elem.setAttribute('limit', value);
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setFontSize
    +		 * 
    +		 * Sets the fontsize.
    +		 */
    +		setFontSize: function(value)
    +		{
    +			if (textEnabled)
    +			{
    +				if (compressed)
    +				{
    +					if (state.fontsize == value)
    +					{
    +						return;
    +					}
    +					
    +					state.fontsize = value;
    +				}
    +				
    +				var elem = doc.createElement('fontsize');
    +				elem.setAttribute('size', value);
    +				root.appendChild(elem);
    +			}
    +		},
    +		
    +		/**
    +		 * Function: setFontColor
    +		 * 
    +		 * Sets the fontcolor.
    +		 */
    +		setFontColor: function(value)
    +		{
    +			if (textEnabled)
    +			{
    +				if (compressed)
    +				{
    +					if (state.fontcolor == value)
    +					{
    +						return;
    +					}
    +					
    +					state.fontcolor = value;
    +				}
    +				
    +				var elem = doc.createElement('fontcolor');
    +				elem.setAttribute('color', value);
    +				root.appendChild(elem);
    +			}
    +		},
    +		
    +		/**
    +		 * Function: setFontFamily
    +		 * 
    +		 * Sets the fontfamily.
    +		 */
    +		setFontFamily: function(value)
    +		{
    +			if (textEnabled)
    +			{
    +				if (compressed)
    +				{
    +					if (state.fontfamily == value)
    +					{
    +						return;
    +					}
    +					
    +					state.fontfamily = value;
    +				}
    +				
    +				var elem = doc.createElement('fontfamily');
    +				elem.setAttribute('family', value);
    +				root.appendChild(elem);
    +			}
    +		},
    +		
    +		/**
    +		 * Function: setFontStyle
    +		 * 
    +		 * Sets the fontstyle.
    +		 */
    +		setFontStyle: function(value)
    +		{
    +			if (textEnabled)
    +			{
    +				var elem = doc.createElement('fontstyle');
    +				elem.setAttribute('style', value);
    +				root.appendChild(elem);
    +			}
    +		},
    +		
    +		/**
    +		 * Function: setAlpha
    +		 * 
    +		 * Sets the current alpha.
    +		 */
    +		setAlpha: function(alpha)
    +		{
    +			if (compressed)
    +			{
    +				if (state.alpha == alpha)
    +				{
    +					return;
    +				}
    +				
    +				state.alpha = alpha;
    +			}
    +			
    +			var elem = doc.createElement('alpha');
    +			elem.setAttribute('alpha', f2(alpha));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setFillColor
    +		 * 
    +		 * Sets the fillcolor.
    +		 */
    +		setFillColor: function(value)
    +		{
    +			var elem = doc.createElement('fillcolor');
    +			elem.setAttribute('color', value);
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setGradient
    +		 * 
    +		 * Sets the gradient color.
    +		 */
    +		setGradient: function(color1, color2, x, y, w, h, direction)
    +		{
    +			var elem = doc.createElement('gradient');
    +			elem.setAttribute('c1', color1);
    +			elem.setAttribute('c2', color2);
    +			elem.setAttribute('x', f2(x));
    +			elem.setAttribute('y', f2(y));
    +			elem.setAttribute('w', f2(w));
    +			elem.setAttribute('h', f2(h));
    +			
    +			// Default direction is south
    +			if (direction != null)
    +			{
    +				elem.setAttribute('direction', direction);
    +			}
    +			
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: setGlassGradient
    +		 * 
    +		 * Sets the glass gradient.
    +		 */
    +		setGlassGradient: function(x, y, w, h)
    +		{
    +			var elem = doc.createElement('glass');
    +			elem.setAttribute('x', f2(x));
    +			elem.setAttribute('y', f2(y));
    +			elem.setAttribute('w', f2(w));
    +			elem.setAttribute('h', f2(h));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: rect
    +		 * 
    +		 * Sets the current path to a rectangle.
    +		 */
    +		rect: function(x, y, w, h)
    +		{
    +			var elem = doc.createElement('rect');
    +			elem.setAttribute('x', f2(x));
    +			elem.setAttribute('y', f2(y));
    +			elem.setAttribute('w', f2(w));
    +			elem.setAttribute('h', f2(h));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: roundrect
    +		 * 
    +		 * Sets the current path to a rounded rectangle.
    +		 */
    +		roundrect: function(x, y, w, h, dx, dy)
    +		{
    +			var elem = doc.createElement('roundrect');
    +			elem.setAttribute('x', f2(x));
    +			elem.setAttribute('y', f2(y));
    +			elem.setAttribute('w', f2(w));
    +			elem.setAttribute('h', f2(h));
    +			elem.setAttribute('dx', f2(dx));
    +			elem.setAttribute('dy', f2(dy));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: ellipse
    +		 * 
    +		 * Sets the current path to an ellipse.
    +		 */
    +		ellipse: function(x, y, w, h)
    +		{
    +			var elem = doc.createElement('ellipse');
    +			elem.setAttribute('x', f2(x));
    +			elem.setAttribute('y', f2(y));
    +			elem.setAttribute('w', f2(w));
    +			elem.setAttribute('h', f2(h));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: image
    +		 * 
    +		 * Paints an image.
    +		 */
    +		image: function(x, y, w, h, src, aspect, flipH, flipV)
    +		{
    +			src = converter.convert(src);
    +			
    +			// TODO: Add option for embedding images as base64
    +			var elem = doc.createElement('image');
    +			elem.setAttribute('x', f2(x));
    +			elem.setAttribute('y', f2(y));
    +			elem.setAttribute('w', f2(w));
    +			elem.setAttribute('h', f2(h));
    +			elem.setAttribute('src', src);
    +			elem.setAttribute('aspect', (aspect) ? '1' : '0');
    +			elem.setAttribute('flipH', (flipH) ? '1' : '0');
    +			elem.setAttribute('flipV', (flipV) ? '1' : '0');
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: text
    +		 * 
    +		 * Paints the given text.
    +		 */
    +		text: function(x, y, w, h, str, align, valign, vertical, wrap, format)
    +		{
    +			if (textEnabled)
    +			{
    +				var elem = doc.createElement('text');
    +				elem.setAttribute('x', f2(x));
    +				elem.setAttribute('y', f2(y));
    +				elem.setAttribute('w', f2(w));
    +				elem.setAttribute('h', f2(h));
    +				elem.setAttribute('str', str);
    +				
    +				if (align != null)
    +				{
    +					elem.setAttribute('align', align);
    +				}
    +				
    +				if (valign != null)
    +				{
    +					elem.setAttribute('valign', valign);
    +				}
    +				
    +				elem.setAttribute('vertical', (vertical) ? '1' : '0');
    +				elem.setAttribute('wrap', (wrap) ? '1' : '0');
    +				elem.setAttribute('format', format);
    +				root.appendChild(elem);
    +			}
    +		},
    +		
    +		/**
    +		 * Function: begin
    +		 * 
    +		 * Starts a new path.
    +		 */
    +		begin: function()
    +		{
    +			root.appendChild(doc.createElement('begin'));
    +		},
    +		
    +		/**
    +		 * Function: moveTo
    +		 * 
    +		 * Moves the current path the given coordinates.
    +		 */
    +		moveTo: function(x, y)
    +		{
    +			var elem = doc.createElement('move');
    +			elem.setAttribute('x', f2(x));
    +			elem.setAttribute('y', f2(y));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: lineTo
    +		 * 
    +		 * Adds a line to the current path.
    +		 */
    +		lineTo: function(x, y)
    +		{
    +			var elem = doc.createElement('line');
    +			elem.setAttribute('x', f2(x));
    +			elem.setAttribute('y', f2(y));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: quadTo
    +		 * 
    +		 * Adds a quadratic curve to the current path.
    +		 */
    +		quadTo: function(x1, y1, x2, y2)
    +		{
    +			var elem = doc.createElement('quad');
    +			elem.setAttribute('x1', f2(x1));
    +			elem.setAttribute('y1', f2(y1));
    +			elem.setAttribute('x2', f2(x2));
    +			elem.setAttribute('y2', f2(y2));
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: curveTo
    +		 * 
    +		 * Adds a bezier curve to the current path.
    +		 */
    +		curveTo: function(x1, y1, x2, y2, x3, y3)
    +		{
    +			var elem = doc.createElement('curve');
    +			elem.setAttribute('x1', f2(x1));
    +			elem.setAttribute('y1', f2(y1));
    +			elem.setAttribute('x2', f2(x2));
    +			elem.setAttribute('y2', f2(y2));
    +			elem.setAttribute('x3', f2(x3));
    +			elem.setAttribute('y3', f2(y3));
    +			root.appendChild(elem);
    +		},
    +
    +		/**
    +		 * Function: close
    +		 * 
    +		 * Closes the current path.
    +		 */
    +		close: function()
    +		{
    +			root.appendChild(doc.createElement('close'));
    +		},
    +		
    +		/**
    +		 * Function: stroke
    +		 * 
    +		 * Paints the outline of the current path.
    +		 */
    +		stroke: function()
    +		{
    +			root.appendChild(doc.createElement('stroke'));
    +		},
    +		
    +		/**
    +		 * Function: fill
    +		 * 
    +		 * Fills the current path.
    +		 */
    +		fill: function()
    +		{
    +			root.appendChild(doc.createElement('fill'));
    +		},
    +		
    +		/**
    +		 * Function: fillstroke
    +		 * 
    +		 * Fills and paints the outline of the current path.
    +		 */
    +		fillAndStroke: function()
    +		{
    +			root.appendChild(doc.createElement('fillstroke'));
    +		},
    +		
    +		/**
    +		 * Function: shadow
    +		 * 
    +		 * Paints the current path as a shadow of the given color.
    +		 */
    +		shadow: function(value, filled)
    +		{
    +			var elem = doc.createElement('shadow');
    +			elem.setAttribute('value', value);
    +			
    +			if (filled != null)
    +			{
    +				elem.setAttribute('filled', (filled) ? '1' : '0');
    +			}
    +			
    +			root.appendChild(elem);
    +		},
    +		
    +		/**
    +		 * Function: clip
    +		 * 
    +		 * Uses the current path for clipping.
    +		 */
    +		clip: function()
    +		{
    +			root.appendChild(doc.createElement('clip'));
    +		}
    +	};
    +
    +};
    \ No newline at end of file
    diff --git a/javascript/src/js/util/mxXmlRequest.js b/javascript/src/js/util/mxXmlRequest.js
    new file mode 100644
    index 000000000..0ac55edc7
    --- /dev/null
    +++ b/javascript/src/js/util/mxXmlRequest.js
    @@ -0,0 +1,425 @@
    +/**
    + * $Id: mxXmlRequest.js,v 1.38 2012-04-22 10:16:23 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxXmlRequest
    + * 
    + * XML HTTP request wrapper. See also: <mxUtils.get>, <mxUtils.post> and
    + * <mxUtils.load>. This class provides a cross-browser abstraction for Ajax
    + * requests.
    + * 
    + * Encoding:
    + * 
    + * For encoding parameter values, the built-in encodeURIComponent JavaScript
    + * method must be used. For automatic encoding of post data in <mxEditor> the
    + * <mxEditor.escapePostData> switch can be set to true (default). The encoding
    + * will be carried out using the conte type of the page. That is, the page
    + * containting the editor should contain a meta tag in the header, eg.
    + * <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    + * 
    + * Example:
    + * 
    + * (code)
    + * var onload = function(req)
    + * {
    + *   mxUtils.alert(req.getDocumentElement());
    + * }
    + * 
    + * var onerror = function(req)
    + * {
    + *   mxUtils.alert(req.getStatus());
    + * }
    + * new mxXmlRequest(url, 'key=value').send(onload, onerror);
    + * (end)
    + * 
    + * Sends an asynchronous POST request to the specified URL.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var req = new mxXmlRequest(url, 'key=value', 'POST', false);
    + * req.send();
    + * mxUtils.alert(req.getDocumentElement());
    + * (end)
    + * 
    + * Sends a synchronous POST request to the specified URL.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var encoder = new mxCodec();
    + * var result = encoder.encode(graph.getModel());
    + * var xml = encodeURIComponent(mxUtils.getXml(result));
    + * new mxXmlRequest(url, 'xml='+xml).send();
    + * (end)
    + * 
    + * Sends an encoded graph model to the specified URL using xml as the
    + * parameter name. The parameter can then be retrieved in C# as follows:
    + * 
    + * (code)
    + * string xml = HttpUtility.UrlDecode(context.Request.Params["xml"]);
    + * (end)
    + * 
    + * Or in Java as follows:
    + * 
    + * (code)
    + * String xml = URLDecoder.decode(request.getParameter("xml"), "UTF-8").replace("\n", "&#xa;");
    + * (end)
    + *
    + * Note that the linefeeds should only be replaced if the XML is
    + * processed in Java, for example when creating an image.
    + * 
    + * Constructor: mxXmlRequest
    + * 
    + * Constructs an XML HTTP request.
    + * 
    + * Parameters:
    + * 
    + * url - Target URL of the request.
    + * params - Form encoded parameters to send with a POST request.
    + * method - String that specifies the request method. Possible values are
    + * POST and GET. Default is POST.
    + * async - Boolean specifying if an asynchronous request should be used.
    + * Default is true.
    + * username - String specifying the username to be used for the request.
    + * password - String specifying the password to be used for the request.
    + */
    +function mxXmlRequest(url, params, method, async, username, password)
    +{
    +	this.url = url;
    +	this.params = params;
    +	this.method = method || 'POST';
    +	this.async = (async != null) ? async : true;
    +	this.username = username;
    +	this.password = password;
    +};
    +
    +/**
    + * Variable: url
    + * 
    + * Holds the target URL of the request.
    + */
    +mxXmlRequest.prototype.url = null;
    +
    +/**
    + * Variable: params
    + * 
    + * Holds the form encoded data for the POST request.
    + */
    +mxXmlRequest.prototype.params = null;
    +
    +/**
    + * Variable: method
    + * 
    + * Specifies the request method. Possible values are POST and GET. Default
    + * is POST.
    + */
    +mxXmlRequest.prototype.method = null;
    +
    +/**
    + * Variable: async
    + * 
    + * Boolean indicating if the request is asynchronous.
    + */
    +mxXmlRequest.prototype.async = null;
    +
    +/**
    + * Variable: binary
    + * 
    + * Boolean indicating if the request is binary. This option is ignored in IE.
    + * In all other browsers the requested mime type is set to
    + * text/plain; charset=x-user-defined. Default is false.
    + */
    +mxXmlRequest.prototype.binary = false;
    +
    +/**
    + * Variable: username
    + * 
    + * Specifies the username to be used for authentication.
    + */
    +mxXmlRequest.prototype.username = null;
    +
    +/**
    + * Variable: password
    + * 
    + * Specifies the password to be used for authentication.
    + */
    +mxXmlRequest.prototype.password = null;
    +
    +/**
    + * Variable: request
    + * 
    + * Holds the inner, browser-specific request object.
    + */
    +mxXmlRequest.prototype.request = null;
    +
    +/**
    + * Function: isBinary
    + * 
    + * Returns <binary>.
    + */
    +mxXmlRequest.prototype.isBinary = function()
    +{
    +	return this.binary;
    +};
    +
    +/**
    + * Function: setBinary
    + * 
    + * Sets <binary>.
    + */
    +mxXmlRequest.prototype.setBinary = function(value)
    +{
    +	this.binary = value;
    +};
    +
    +/**
    + * Function: getText
    + * 
    + * Returns the response as a string.
    + */
    +mxXmlRequest.prototype.getText = function()
    +{
    +	return this.request.responseText;
    +};
    +
    +/**
    + * Function: isReady
    + * 
    + * Returns true if the response is ready.
    + */
    +mxXmlRequest.prototype.isReady = function()
    +{
    +	return this.request.readyState == 4;
    +};
    +
    +/**
    + * Function: getDocumentElement
    + * 
    + * Returns the document element of the response XML document.
    + */
    +mxXmlRequest.prototype.getDocumentElement = function()
    +{
    +	var doc = this.getXml();
    +	
    +	if (doc != null)
    +	{
    +		return doc.documentElement;
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: getXml
    + * 
    + * Returns the response as an XML document. Use <getDocumentElement> to get
    + * the document element of the XML document.
    + */
    +mxXmlRequest.prototype.getXml = function()
    +{
    +	var xml = this.request.responseXML;
    +	
    +	// Handles missing response headers in IE, the first condition handles
    +	// the case where responseXML is there, but using its nodes leads to
    +	// type errors in the mxCellCodec when putting the nodes into a new
    +	// document. This happens in IE9 standards mode and with XML user
    +	// objects only, as they are used directly as values in cells.
    +	if (document.documentMode >= 9 || xml == null || xml.documentElement == null)
    +	{
    +		xml = mxUtils.parseXml(this.request.responseText);
    +	}
    +	
    +	return xml;
    +};
    +
    +/**
    + * Function: getText
    + * 
    + * Returns the response as a string.
    + */
    +mxXmlRequest.prototype.getText = function()
    +{
    +	return this.request.responseText;
    +};
    +
    +/**
    + * Function: getStatus
    + * 
    + * Returns the status as a number, eg. 404 for "Not found" or 200 for "OK".
    + * Note: The NS_ERROR_NOT_AVAILABLE for invalid responses cannot be cought.
    + */
    +mxXmlRequest.prototype.getStatus = function()
    +{
    +	return this.request.status;
    +};
    +
    +/**
    + * Function: create
    + * 
    + * Creates and returns the inner <request> object.
    + */
    +mxXmlRequest.prototype.create = function()
    +{
    +	if (window.XMLHttpRequest)
    +	{
    +		return function()
    +		{
    +			var req = new XMLHttpRequest();
    +			
    +			// TODO: Check for overrideMimeType required here?
    +			if (this.isBinary() && req.overrideMimeType)
    +			{
    +				req.overrideMimeType('text/plain; charset=x-user-defined');
    +			}
    +
    +			return req;
    +		};
    +	}
    +	else if (typeof(ActiveXObject) != "undefined")
    +	{
    +		return function()
    +		{
    +			// TODO: Implement binary option
    +			return new ActiveXObject("Microsoft.XMLHTTP");
    +		};
    +	}
    +}();
    +
    +/**
    + * Function: send
    + * 
    + * Send the <request> to the target URL using the specified functions to
    + * process the response asychronously.
    + * 
    + * Parameters:
    + * 
    + * onload - Function to be invoked if a successful response was received.
    + * onerror - Function to be called on any error.
    + */
    +mxXmlRequest.prototype.send = function(onload, onerror)
    +{
    +	this.request = this.create();
    +	
    +	if (this.request != null)
    +	{
    +		if (onload != null)
    +		{
    +			this.request.onreadystatechange = mxUtils.bind(this, function()
    +			{
    +				if (this.isReady())
    +				{
    +					onload(this);
    +					this.onreadystatechaange = null;
    +				}
    +			});
    +		}
    +
    +		this.request.open(this.method, this.url, this.async,
    +			this.username, this.password);
    +		this.setRequestHeaders(this.request, this.params);
    +		this.request.send(this.params);
    +	}
    +};
    +
    +/**
    + * Function: setRequestHeaders
    + * 
    + * Sets the headers for the given request and parameters. This sets the
    + * content-type to application/x-www-form-urlencoded if any params exist.
    + * 
    + * Example:
    + * 
    + * (code)
    + * request.setRequestHeaders = function(request, params)
    + * {
    + *   if (params != null)
    + *   {
    + *     request.setRequestHeader('Content-Type',
    + *             'multipart/form-data');
    + *     request.setRequestHeader('Content-Length',
    + *             params.length);
    + *   }
    + * };
    + * (end)
    + * 
    + * Use the code above before calling <send> if you require a
    + * multipart/form-data request.   
    + */
    +mxXmlRequest.prototype.setRequestHeaders = function(request, params)
    +{
    +	if (params != null)
    +	{
    +		request.setRequestHeader('Content-Type',
    +			'application/x-www-form-urlencoded');
    +	}
    +};
    +
    +/**
    + * Function: simulate
    + * 
    + * Creates and posts a request to the given target URL using a dynamically
    + * created form inside the given document.
    + * 
    + * Parameters:
    + * 
    + * docs - Document that contains the form element.
    + * target - Target to send the form result to.
    + */
    +mxXmlRequest.prototype.simulate = function(doc, target)
    +{
    +	doc = doc || document;
    +	var old = null;
    +
    +	if (doc == document)
    +	{
    +		old = window.onbeforeunload;		
    +		window.onbeforeunload = null;
    +	}
    +			
    +	var form = doc.createElement('form');
    +	form.setAttribute('method', this.method);
    +	form.setAttribute('action', this.url);
    +
    +	if (target != null)
    +	{
    +		form.setAttribute('target', target);
    +	}
    +
    +	form.style.display = 'none';
    +	form.style.visibility = 'hidden';
    +
    +	var pars = (this.params.indexOf('&') > 0) ?
    +		this.params.split('&') :
    +		this.params.split();
    +
    +	// Adds the parameters as textareas to the form
    +	for (var i=0; i<pars.length; i++)
    +	{
    +		var pos = pars[i].indexOf('=');
    +		
    +		if (pos > 0)
    +		{
    +			var name = pars[i].substring(0, pos);
    +			var value = pars[i].substring(pos+1);
    +			
    +			var textarea = doc.createElement('textarea');
    +			textarea.setAttribute('name', name);
    +			value = value.replace(/\n/g, '&#xa;');
    +			
    +			var content = doc.createTextNode(value);
    +			textarea.appendChild(content);
    +			form.appendChild(textarea);
    +		}
    +	}
    +	
    +	doc.body.appendChild(form);
    +	form.submit();
    +	doc.body.removeChild(form);
    +
    +	if (old != null)
    +	{		
    +		window.onbeforeunload = old;
    +	}
    +};
    diff --git a/javascript/src/js/view/mxCellEditor.js b/javascript/src/js/view/mxCellEditor.js
    new file mode 100644
    index 000000000..f94ec33d1
    --- /dev/null
    +++ b/javascript/src/js/view/mxCellEditor.js
    @@ -0,0 +1,516 @@
    +/**
    + * $Id: mxCellEditor.js,v 1.59 2012-05-11 13:11:45 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCellEditor
    + *
    + * In-place editor for the graph. To control this editor, use
    + * <mxGraph.invokesStopCellEditing>, <mxGraph.enterStopsCellEditing> and
    + * <mxGraph.escapeEnabled>. If <mxGraph.enterStopsCellEditing> is true then
    + * ctrl-enter or shift-enter can be used to create a linefeed. The F2 and
    + * escape keys can always be used to stop editing. To customize the location
    + * of the textbox in the graph, override <getEditorBounds> as follows:
    + * 
    + * (code)
    + * graph.cellEditor.getEditorBounds = function(state)
    + * {
    + *   var result = mxCellEditor.prototype.getEditorBounds.apply(this, arguments);
    + *   
    + *   if (this.graph.getModel().isEdge(state.cell))
    + *   {
    + *     result.x = state.getCenterX() - result.width / 2;
    + *     result.y = state.getCenterY() - result.height / 2;
    + *   }
    + *   
    + *   return result;
    + * };
    + * (end)
    + * 
    + * The textarea uses the mxCellEditor CSS class. You can modify this class in
    + * your custom CSS. Note: You should modify the CSS after loading the client
    + * in the page.
    + *
    + * Example:
    + * 
    + * To only allow numeric input in the in-place editor, use the following code.
    + *
    + * (code)
    + * var text = graph.cellEditor.textarea;
    + * 
    + * mxEvent.addListener(text, 'keydown', function (evt)
    + * {
    + *   if (!(evt.keyCode >= 48 && evt.keyCode <= 57) &&
    + *       !(evt.keyCode >= 96 && evt.keyCode <= 105))
    + *   {
    + *     mxEvent.consume(evt);
    + *   }
    + * }); 
    + * (end)
    + * 
    + * Initial values:
    + * 
    + * To implement an initial value for cells without a label, use the
    + * <emptyLabelText> variable.
    + * 
    + * Resize in Chrome:
    + * 
    + * Resize of the textarea is disabled by default. If you want to enable
    + * this feature extend <init> and set this.textarea.style.resize = ''.
    + *
    + * Constructor: mxCellEditor
    + *
    + * Constructs a new in-place editor for the specified graph.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + */
    +function mxCellEditor(graph)
    +{
    +	this.graph = graph;
    +};
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxCellEditor.prototype.graph = null;
    +
    +/**
    + * Variable: textarea
    + *
    + * Holds the input textarea. Note that this may be null before the first
    + * edit. Instantiated in <init>.
    + */
    +mxCellEditor.prototype.textarea = null;
    +
    +/**
    + * Variable: editingCell
    + * 
    + * Reference to the <mxCell> that is currently being edited.
    + */
    +mxCellEditor.prototype.editingCell = null;
    +
    +/**
    + * Variable: trigger
    + * 
    + * Reference to the event that was used to start editing.
    + */
    +mxCellEditor.prototype.trigger = null;
    +
    +/**
    + * Variable: modified
    + * 
    + * Specifies if the label has been modified.
    + */
    +mxCellEditor.prototype.modified = false;
    +
    +/**
    + * Variable: emptyLabelText
    + * 
    + * Text to be displayed for empty labels. Default is ''. This can be set
    + * to eg. "[Type Here]" to easier visualize editing of empty labels. The
    + * value is only displayed before the first keystroke and is never used
    + * as the actual editin value.
    + */
    +mxCellEditor.prototype.emptyLabelText = '';
    +
    +/**
    + * Variable: textNode
    + * 
    + * Reference to the label DOM node that has been hidden.
    + */
    +mxCellEditor.prototype.textNode = '';
    +
    +/**
    + * Function: init
    + *
    + * Creates the <textarea> and installs the event listeners. The key handler
    + * updates the <modified> state.
    + */
    +mxCellEditor.prototype.init = function ()
    +{
    +	this.textarea = document.createElement('textarea');
    +
    +	this.textarea.className = 'mxCellEditor';
    +	this.textarea.style.position = 'absolute';
    +	this.textarea.style.overflow = 'visible';
    +
    +	this.textarea.setAttribute('cols', '20');
    +	this.textarea.setAttribute('rows', '4');
    +
    +	if (mxClient.IS_GC)
    +	{
    +		this.textarea.style.resize = 'none';
    +	}
    +	
    +	mxEvent.addListener(this.textarea, 'blur', mxUtils.bind(this, function(evt)
    +	{
    +		this.focusLost();
    +	}));
    +	
    +	mxEvent.addListener(this.textarea, 'keydown', mxUtils.bind(this, function(evt)
    +	{
    +		if (!mxEvent.isConsumed(evt))
    +		{
    +			if (evt.keyCode == 113 /* F2 */ || (this.graph.isEnterStopsCellEditing() &&
    +				evt.keyCode == 13 /* Enter */ && !mxEvent.isControlDown(evt) &&
    +				!mxEvent.isShiftDown(evt)))
    +			{
    +				this.graph.stopEditing(false);
    +				mxEvent.consume(evt);
    +			}
    +			else if (evt.keyCode == 27 /* Escape */)
    +			{
    +				this.graph.stopEditing(true);
    +				mxEvent.consume(evt);
    +			}
    +			else
    +			{
    +				// Clears the initial empty label on the first keystroke
    +				if (this.clearOnChange)
    +				{
    +					this.clearOnChange = false;
    +					this.textarea.value = '';
    +				}
    +				
    +				// Updates the modified flag for storing the value
    +				this.setModified(true);
    +			}
    +		}
    +	}));
    +};
    +
    +/**
    + * Function: isModified
    + * 
    + * Returns <modified>.
    + */
    +mxCellEditor.prototype.isModified = function()
    +{
    +	return this.modified;
    +};
    +
    +/**
    + * Function: setModified
    + * 
    + * Sets <modified> to the specified boolean value.
    + */
    +mxCellEditor.prototype.setModified = function(value)
    +{
    +	this.modified = value;
    +};
    +
    +/**
    + * Function: focusLost
    + *
    + * Called if the textarea has lost focus.
    + */
    +mxCellEditor.prototype.focusLost = function()
    +{
    +	this.stopEditing(!this.graph.isInvokesStopCellEditing());
    +};
    +
    +/**
    + * Function: startEditing
    + *
    + * Starts the editor for the given cell.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to start editing.
    + * trigger - Optional mouse event that triggered the editor.
    + */
    +mxCellEditor.prototype.startEditing = function(cell, trigger)
    +{
    +	// Lazy instantiates textarea to save memory in IE
    +	if (this.textarea == null)
    +	{
    +		this.init();
    +	}
    +	
    +	this.stopEditing(true);
    +	var state = this.graph.getView().getState(cell);
    +	
    +	if (state != null)
    +	{
    +		this.editingCell = cell;
    +		this.trigger = trigger;
    +		this.textNode = null;
    +				
    +		if (state.text != null && this.isHideLabel(state))
    +		{
    +			this.textNode = state.text.node;
    +			this.textNode.style.visibility = 'hidden';
    +		}
    +		
    +		// Configures the style of the in-place editor
    +		var scale = this.graph.getView().scale;
    +		var size = mxUtils.getValue(state.style, mxConstants.STYLE_FONTSIZE, mxConstants.DEFAULT_FONTSIZE) * scale;
    +		var family = mxUtils.getValue(state.style, mxConstants.STYLE_FONTFAMILY, mxConstants.DEFAULT_FONTFAMILY);
    +		var color = mxUtils.getValue(state.style, mxConstants.STYLE_FONTCOLOR, 'black');
    +		var align = (this.graph.model.isEdge(state.cell)) ? mxConstants.ALIGN_LEFT :
    +			mxUtils.getValue(state.style, mxConstants.STYLE_ALIGN, mxConstants.ALIGN_LEFT);
    +		var bold = (mxUtils.getValue(state.style, mxConstants.STYLE_FONTSTYLE, 0) &
    +				mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD;
    +
    +		this.textarea.style.fontSize = size;
    +		this.textarea.style.fontFamily = family;
    +		this.textarea.style.textAlign = align;
    +		this.textarea.style.color = color;
    +		this.textarea.style.fontWeight = (bold) ? 'bold' : 'normal';
    +
    +		// Specifies the bounds of the editor box
    +		var bounds = this.getEditorBounds(state);
    +
    +		this.textarea.style.left = bounds.x + 'px';
    +		this.textarea.style.top = bounds.y + 'px';
    +		this.textarea.style.width = bounds.width + 'px';
    +		this.textarea.style.height = bounds.height + 'px';
    +		this.textarea.style.zIndex = 5;
    +
    +		var value = this.getInitialValue(state, trigger);
    +
    +		// Uses an optional text value for empty labels which is cleared
    +		// when the first keystroke appears. This makes it easier to see
    +		// that a label is being edited even if the label is empty.
    +		if (value == null || value.length == 0)
    +		{
    +			value = this.getEmptyLabelText();
    +			this.clearOnChange = true;
    +		}
    +		else
    +		{
    +			this.clearOnChange = false;
    +		}
    +		
    +		this.setModified(false);		
    +		this.textarea.value = value;
    +		this.graph.container.appendChild(this.textarea);
    +		
    +		if (this.textarea.style.display != 'none')
    +		{
    +			// FIXME: Doesn't bring up the virtual keyboard on iPad
    +			this.textarea.focus();
    +			this.textarea.select();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: stopEditing
    + *
    + * Stops the editor and applies the value if cancel is false.
    + */
    +mxCellEditor.prototype.stopEditing = function(cancel)
    +{
    +	cancel = cancel || false;
    +	
    +	if (this.editingCell != null)
    +	{
    +		if (this.textNode != null)
    +		{
    +			this.textNode.style.visibility = 'visible';
    +			this.textNode = null;
    +		}
    +		
    +		if (!cancel && this.isModified())
    +		{
    +			this.graph.labelChanged(this.editingCell, this.getCurrentValue(), this.trigger);
    +		}
    +		
    +		this.editingCell = null;
    +		this.trigger = null;
    +		this.textarea.blur();
    +		this.textarea.parentNode.removeChild(this.textarea);
    +	}
    +};
    +
    +/**
    + * Function: getInitialValue
    + * 
    + * Gets the initial editing value for the given cell.
    + */
    +mxCellEditor.prototype.getInitialValue = function(state, trigger)
    +{
    +	 return this.graph.getEditingValue(state.cell, trigger);
    +};
    +
    +/**
    + * Function: getCurrentValue
    + * 
    + * Returns the current editing value.
    + */
    +mxCellEditor.prototype.getCurrentValue = function()
    +{
    +	 return this.textarea.value.replace(/\r/g, '');
    +};
    +
    +/**
    + * Function: isHideLabel
    + * 
    + * Returns true if the label should be hidden while the cell is being
    + * edited.
    + */
    +mxCellEditor.prototype.isHideLabel = function(state)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: getMinimumSize
    + * 
    + * Returns the minimum width and height for editing the given state.
    + */
    +mxCellEditor.prototype.getMinimumSize = function(state)
    +{
    +	var scale = this.graph.getView().scale;
    +	
    +	return new mxRectangle((state.text == null) ? 30 :  state.text.size * scale + 20,
    +			(this.textarea.style.textAlign == 'left') ? 120 : 40);
    +};
    +
    +/**
    + * Function: getEditorBounds
    + * 
    + * Returns the <mxRectangle> that defines the bounds of the editor.
    + */
    +mxCellEditor.prototype.getEditorBounds = function(state)
    +{
    +	var isEdge = this.graph.getModel().isEdge(state.cell);
    +	var scale = this.graph.getView().scale;
    +	var minSize = this.getMinimumSize(state);
    +	var minWidth = minSize.width;
    + 	var minHeight = minSize.height;
    +	
    +	var spacing = parseInt(state.style[mxConstants.STYLE_SPACING] || 2) * scale;
    +	var spacingTop = (parseInt(state.style[mxConstants.STYLE_SPACING_TOP] || 0)) * scale + spacing;
    +	var spacingRight = (parseInt(state.style[mxConstants.STYLE_SPACING_RIGHT] || 0)) * scale + spacing;
    +	var spacingBottom = (parseInt(state.style[mxConstants.STYLE_SPACING_BOTTOM] || 0)) * scale + spacing;
    +	var spacingLeft = (parseInt(state.style[mxConstants.STYLE_SPACING_LEFT] || 0)) * scale + spacing;
    +
    + 	var result = new mxRectangle(state.x, state.y,
    + 		 Math.max(minWidth, state.width - spacingLeft - spacingRight),
    + 		 Math.max(minHeight, state.height - spacingTop - spacingBottom));
    +
    +	if (isEdge)
    +	{
    +		result.x = state.absoluteOffset.x;
    +		result.y = state.absoluteOffset.y;
    +
    +		if (state.text != null && state.text.boundingBox != null)
    +		{
    +			// Workaround for label containing just spaces in which case
    +			// the bounding box location contains negative numbers 
    +			if (state.text.boundingBox.x > 0)
    +			{
    +				result.x = state.text.boundingBox.x;
    +			}
    +			
    +			if (state.text.boundingBox.y > 0)
    +			{
    +				result.y = state.text.boundingBox.y;
    +			}
    +		}
    +	}
    +	else if (state.text != null && state.text.boundingBox != null)
    +	{
    +		result.x = Math.min(result.x, state.text.boundingBox.x);
    +		result.y = Math.min(result.y, state.text.boundingBox.y);
    +	}
    +
    +	result.x += spacingLeft;
    +	result.y += spacingTop;
    +
    +	if (state.text != null && state.text.boundingBox != null)
    +	{
    +		if (!isEdge)
    +		{
    +			result.width = Math.max(result.width, state.text.boundingBox.width);
    +			result.height = Math.max(result.height, state.text.boundingBox.height);
    +		}
    +		else
    +		{
    +			result.width = Math.max(minWidth, state.text.boundingBox.width);
    +			result.height = Math.max(minHeight, state.text.boundingBox.height);
    +		}
    +	}
    +	
    +	// Applies the horizontal and vertical label positions
    +	if (this.graph.getModel().isVertex(state.cell))
    +	{
    +		var horizontal = mxUtils.getValue(state.style, mxConstants.STYLE_LABEL_POSITION, mxConstants.ALIGN_CENTER);
    +
    +		if (horizontal == mxConstants.ALIGN_LEFT)
    +		{
    +			result.x -= state.width;
    +		}
    +		else if (horizontal == mxConstants.ALIGN_RIGHT)
    +		{
    +			result.x += state.width;
    +		}
    +
    +		var vertical = mxUtils.getValue(state.style, mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.ALIGN_MIDDLE);
    +
    +		if (vertical == mxConstants.ALIGN_TOP)
    +		{
    +			result.y -= state.height;
    +		}
    +		else if (vertical == mxConstants.ALIGN_BOTTOM)
    +		{
    +			result.y += state.height;
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getEmptyLabelText
    + *
    + * Returns the initial label value to be used of the label of the given
    + * cell is empty. This label is displayed and cleared on the first keystroke.
    + * This implementation returns <emptyLabelText>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which a text for an empty editing box should be
    + * returned.
    + */
    +mxCellEditor.prototype.getEmptyLabelText = function (cell)
    +{
    +	return this.emptyLabelText;
    +};
    +
    +/**
    + * Function: getEditingCell
    + *
    + * Returns the cell that is currently being edited or null if no cell is
    + * being edited.
    + */
    +mxCellEditor.prototype.getEditingCell = function ()
    +{
    +	return this.editingCell;
    +};
    +
    +/**
    + * Function: destroy
    + *
    + * Destroys the editor and removes all associated resources.
    + */
    +mxCellEditor.prototype.destroy = function ()
    +{
    +	if (this.textarea != null)
    +	{
    +		mxEvent.release(this.textarea);
    +		
    +		if (this.textarea.parentNode != null)
    +		{
    +			this.textarea.parentNode.removeChild(this.textarea);
    +		}
    +		
    +		this.textarea = null;
    +	}
    +};
    diff --git a/javascript/src/js/view/mxCellOverlay.js b/javascript/src/js/view/mxCellOverlay.js
    new file mode 100644
    index 000000000..44ba191b8
    --- /dev/null
    +++ b/javascript/src/js/view/mxCellOverlay.js
    @@ -0,0 +1,212 @@
    +/**
    + * $Id: mxCellOverlay.js,v 1.16 2012-02-13 22:19:43 boris Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCellOverlay
    + *
    + * Extends <mxEventSource> to implement a graph overlay, represented by an icon
    + * and a tooltip. Overlays can handle and fire <click> events and are added to
    + * the graph using <mxGraph.addCellOverlay>, and removed using
    + * <mxGraph.removeCellOverlay>, or <mxGraph.removeCellOverlays> to remove all overlays.
    + * The <mxGraph.getCellOverlays> function returns the array of overlays for a given
    + * cell in a graph. If multiple overlays exist for the same cell, then
    + * <getBounds> should be overridden in at least one of the overlays.
    + * 
    + * Overlays appear on top of all cells in a special layer. If this is not
    + * desirable, then the image must be rendered as part of the shape or label of
    + * the cell instead.
    + *
    + * Example:
    + * 
    + * The following adds a new overlays for a given vertex and selects the cell
    + * if the overlay is clicked.
    + *
    + * (code)
    + * var overlay = new mxCellOverlay(img, html);
    + * graph.addCellOverlay(vertex, overlay);
    + * overlay.addListener(mxEvent.CLICK, function(sender, evt)
    + * {
    + *   var cell = evt.getProperty('cell');
    + *   graph.setSelectionCell(cell);
    + * });
    + * (end)
    + * 
    + * For cell overlays to be printed use <mxPrintPreview.printOverlays>.
    + *
    + * Event: mxEvent.CLICK
    + *
    + * Fires when the user clicks on the overlay. The <code>event</code> property
    + * contains the corresponding mouse event and the <code>cell</code> property
    + * contains the cell. For touch devices this is fired if the element receives
    + * a touchend event.
    + * 
    + * Constructor: mxCellOverlay
    + *
    + * Constructs a new overlay using the given image and tooltip.
    + * 
    + * Parameters:
    + * 
    + * image - <mxImage> that represents the icon to be displayed.
    + * tooltip - Optional string that specifies the tooltip.
    + * align - Optional horizontal alignment for the overlay. Possible
    + * values are <ALIGN_LEFT>, <ALIGN_CENTER> and <ALIGN_RIGHT>
    + * (default).
    + * verticalAlign - Vertical alignment for the overlay. Possible
    + * values are <ALIGN_TOP>, <ALIGN_MIDDLE> and <ALIGN_BOTTOM>
    + * (default).
    + */
    +function mxCellOverlay(image, tooltip, align, verticalAlign, offset, cursor)
    +{
    +	this.image = image;
    +	this.tooltip = tooltip;
    +	this.align = align;
    +	this.verticalAlign = verticalAlign;
    +	this.offset = (offset != null) ? offset : new mxPoint();
    +	this.cursor = (cursor != null) ? cursor : 'help';
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxCellOverlay.prototype = new mxEventSource();
    +mxCellOverlay.prototype.constructor = mxCellOverlay;
    +
    +/**
    + * Variable: image
    + *
    + * Holds the <mxImage> to be used as the icon.
    + */
    +mxCellOverlay.prototype.image = null;
    +
    +/**
    + * Variable: tooltip
    + * 
    + * Holds the optional string to be used as the tooltip.
    + */
    +mxCellOverlay.prototype.tooltip = null;
    +
    +/**
    + * Variable: align
    + * 
    + * Holds the horizontal alignment for the overlay. Default is
    + * <mxConstants.ALIGN_RIGHT>. For edges, the overlay always appears in the
    + * center of the edge.
    + */
    +mxCellOverlay.prototype.align = null;
    +
    +/**
    + * Variable: verticalAlign
    + * 
    + * Holds the vertical alignment for the overlay. Default is
    + * <mxConstants.ALIGN_BOTTOM>. For edges, the overlay always appears in the
    + * center of the edge.
    + */
    +mxCellOverlay.prototype.verticalAlign = null;
    +
    +/**
    + * Variable: offset
    + * 
    + * Holds the offset as an <mxPoint>. The offset will be scaled according to the
    + * current scale.
    + */
    +mxCellOverlay.prototype.offset = null;
    +
    +/**
    + * Variable: cursor
    + * 
    + * Holds the cursor for the overlay. Default is 'help'.
    + */
    +mxCellOverlay.prototype.cursor = null;
    +
    +/**
    + * Variable: defaultOverlap
    + * 
    + * Defines the overlapping for the overlay, that is, the proportional distance
    + * from the origin to the point defined by the alignment. Default is 0.5.
    + */
    +mxCellOverlay.prototype.defaultOverlap = 0.5;
    +
    +/**
    + * Function: getBounds
    + * 
    + * Returns the bounds of the overlay for the given <mxCellState> as an
    + * <mxRectangle>. This should be overridden when using multiple overlays
    + * per cell so that the overlays do not overlap.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> that represents the current state of the
    + * associated cell.
    + */
    +mxCellOverlay.prototype.getBounds = function(state)
    +{
    +	var isEdge = state.view.graph.getModel().isEdge(state.cell);
    +	var s = state.view.scale;
    +	var pt = null;
    +
    +	var w = this.image.width;
    +	var h = this.image.height;
    +	
    +	if (isEdge)
    +	{
    +		var pts = state.absolutePoints;
    +		
    +		if (pts.length % 2 == 1)
    +		{
    +			pt = pts[Math.floor(pts.length / 2)];
    +		}
    +		else
    +		{
    +			var idx = pts.length / 2;
    +			var p0 = pts[idx-1];
    +			var p1 = pts[idx];
    +			pt = new mxPoint(p0.x + (p1.x - p0.x) / 2,
    +				p0.y + (p1.y - p0.y) / 2);
    +		}
    +	}
    +	else
    +	{
    +		pt = new mxPoint();
    +		
    +		if (this.align == mxConstants.ALIGN_LEFT)
    +		{
    +			pt.x = state.x;
    +		}
    +		else if (this.align == mxConstants.ALIGN_CENTER)
    +		{
    +			pt.x = state.x + state.width / 2;
    +		}
    +		else
    +		{
    +			pt.x = state.x + state.width;
    +		}
    +		
    +		if (this.verticalAlign == mxConstants.ALIGN_TOP)
    +		{
    +			pt.y = state.y;
    +		}
    +		else if (this.verticalAlign == mxConstants.ALIGN_MIDDLE)
    +		{
    +			pt.y = state.y + state.height / 2;
    +		}
    +		else
    +		{
    +			pt.y = state.y + state.height;
    +		}
    +	}
    +
    +	return new mxRectangle(pt.x - (w * this.defaultOverlap - this.offset.x) * s,
    +		pt.y - (h * this.defaultOverlap - this.offset.y) * s, w * s, h * s);
    +};
    +
    +/**
    + * Function: toString
    + * 
    + * Returns the textual representation of the overlay to be used as the
    + * tooltip. This implementation returns <tooltip>.
    + */
    +mxCellOverlay.prototype.toString = function()
    +{
    +	return this.tooltip;
    +};
    diff --git a/javascript/src/js/view/mxCellRenderer.js b/javascript/src/js/view/mxCellRenderer.js
    new file mode 100644
    index 000000000..91fd0d6bd
    --- /dev/null
    +++ b/javascript/src/js/view/mxCellRenderer.js
    @@ -0,0 +1,1487 @@
    +/**
    + * $Id: mxCellRenderer.js,v 1.181 2012-04-23 20:15:46 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCellRenderer
    + * 
    + * Renders cells into a document object model. The <defaultShapes> is a global
    + * map of shapename, constructor pairs that is used in all instances. You can
    + * get a list of all available shape names using the following code.
    + * 
    + * In general the cell renderer is in charge of creating, redrawing and
    + * destroying the shape and label associated with a cell state, as well as
    + * some other graphical objects, namely controls and overlays. The shape
    + * hieararchy in the display (ie. the hierarchy in which the DOM nodes
    + * appear in the document) does not reflect the cell hierarchy. The shapes
    + * are a (flat) sequence of shapes and labels inside the draw pane of the
    + * graph view, with some exceptions, namely the HTML labels being placed
    + * directly inside the graph container for certain browsers.
    + * 
    + * (code)
    + * mxLog.show();
    + * for (var i in mxCellRenderer.prototype.defaultShapes)
    + * {
    + *   mxLog.debug(i);
    + * }
    + * (end)
    + *
    + * Constructor: mxCellRenderer
    + * 
    + * Constructs a new cell renderer with the following built-in shapes:
    + * arrow, rectangle, ellipse, rhombus, image, line, label, cylinder,
    + * swimlane, connector, actor and cloud.
    + */
    +function mxCellRenderer()
    +{
    +	this.shapes = mxUtils.clone(this.defaultShapes);
    +};
    +
    +/**
    + * Variable: shapes
    + * 
    + * Array that maps from shape names to shape constructors. All entries
    + * in <defaultShapes> are added to this array.
    + */
    +mxCellRenderer.prototype.shapes = null;
    +
    +/**
    + * Variable: defaultEdgeShape
    + * 
    + * Defines the default shape for edges. Default is <mxConnector>.
    + */
    +mxCellRenderer.prototype.defaultEdgeShape = mxConnector;
    +
    +/**
    + * Variable: defaultVertexShape
    + * 
    + * Defines the default shape for vertices. Default is <mxRectangleShape>.
    + */
    +mxCellRenderer.prototype.defaultVertexShape = mxRectangleShape;
    +
    +/**
    + * Variable: defaultShapes
    + * 
    + * Static array that contains the globally registered shapes which are
    + * known to all instances of this class. For adding instance-specific
    + * shapes you should use <registerShape> on the instance. For adding
    + * a shape to this array you can use the following code:
    + * 
    + * (code)
    + * mxCellRenderer.prototype.defaultShapes['myshape'] = myShape;
    + * (end)
    + * 
    + * Where 'myshape' is the key under which the shape is to be registered
    + * and myShape is the name of the constructor function.
    + */
    +mxCellRenderer.prototype.defaultShapes = new Object();
    +
    +// Adds default shapes into the default shapes array
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_ARROW] = mxArrow;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_RECTANGLE] = mxRectangleShape;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_ELLIPSE] = mxEllipse;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_DOUBLE_ELLIPSE] = mxDoubleEllipse;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_RHOMBUS] = mxRhombus;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_IMAGE] = mxImageShape;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_LINE] = mxLine;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_LABEL] = mxLabel;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_CYLINDER] = mxCylinder;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_SWIMLANE] = mxSwimlane;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_CONNECTOR] = mxConnector;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_ACTOR] = mxActor;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_CLOUD] = mxCloud;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_TRIANGLE] = mxTriangle;
    +mxCellRenderer.prototype.defaultShapes[mxConstants.SHAPE_HEXAGON] = mxHexagon;
    +
    +/**
    + * Function: registerShape
    + * 
    + * Registers the given constructor under the specified key in this instance
    + * of the renderer.
    + * 
    + * Example:
    + * 
    + * (code)
    + * this.registerShape(mxConstants.SHAPE_RECTANGLE, mxRectangleShape);
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * key - String representing the shape name.
    + * shape - Constructor of the <mxShape> subclass.
    + */
    +mxCellRenderer.prototype.registerShape = function(key, shape)
    +{
    +	this.shapes[key] = shape;	
    +};
    +
    +/**
    + * Function: initialize
    + * 
    + * Initializes the display for the given cell state. This is required once
    + * after the cell state has been created. This is invoked in
    + * mxGraphView.createState.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the display should be initialized.
    + */
    +mxCellRenderer.prototype.initialize = function(state)
    +{
    +	var model = state.view.graph.getModel();
    +	
    +	if (state.view.graph.container != null && state.shape == null &&
    +		state.cell != state.view.currentRoot &&
    +		(model.isVertex(state.cell) || model.isEdge(state.cell)))
    +	{
    +		this.createShape(state);
    +		
    +		if (state.shape != null)
    +		{
    +			this.initializeShape(state);
    +			
    +			// Maintains the model order in the DOM
    +			if (state.view.graph.ordered || model.isEdge(state.cell))
    +			{
    +				//state.orderChanged = true;
    +				state.invalidOrder = true;
    +			}
    +			else if (state.view.graph.keepEdgesInForeground && this.firstEdge != null)
    +			{
    +				if (this.firstEdge.parentNode == state.shape.node.parentNode)
    +				{
    +					this.insertState(state, this.firstEdge);
    +				}
    +				else
    +				{
    +					this.firstEdge = null;
    +				}
    +			}
    +			
    +			state.shape.scale = state.view.scale;
    +			
    +			this.createCellOverlays(state);
    +			this.installListeners(state);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: initializeShape
    + * 
    + * Initializes the shape in the given state by calling its init method with
    + * the correct container.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the shape should be initialized.
    + */
    +mxCellRenderer.prototype.initializeShape = function(state)
    +{
    +	state.shape.init(state.view.getDrawPane());
    +};
    +
    +/**
    + * Returns the previous state that has a shape inside the given parent.
    + */
    +mxCellRenderer.prototype.getPreviousStateInContainer = function(state, container)
    +{
    +	var result = null;
    +	var graph = state.view.graph;
    +	var model = graph.getModel();
    +	var child = state.cell;
    +	var p = model.getParent(child);
    +	
    +	while (p != null && result == null)
    +	{
    +		result = this.findPreviousStateInContainer(graph, p, child, container);
    +		child = p;
    +		p = model.getParent(child);
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Returns the previous state that has a shape inside the given parent.
    + */
    +mxCellRenderer.prototype.findPreviousStateInContainer = function(graph, cell, stop, container)
    +{
    +	// Recurse first
    +	var result = null;
    +	var model = graph.getModel();
    +	
    +	if (stop != null)
    +	{
    +		var start = cell.getIndex(stop);
    +		
    +		for (var i = start - 1; i >= 0 && result == null; i--)
    +		{
    +			result = this.findPreviousStateInContainer(graph, model.getChildAt(cell, i), null, container);
    +		}
    +	}
    +	else
    +	{
    +		var childCount = model.getChildCount(cell);
    +
    +		for (var i = childCount - 1; i >= 0 && result == null; i--)
    +		{
    +			result = this.findPreviousStateInContainer(graph, model.getChildAt(cell, i), null, container);
    +		}
    +	}
    +	
    +	if (result == null)
    +	{
    +		result = graph.view.getState(cell);
    +
    +		if (result != null && (result.shape == null || result.shape.node == null ||
    +			result.shape.node.parentNode != container))
    +		{
    +			result = null;
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: order
    + * 
    + * Orders the DOM node of the shape for the given state according to the
    + * position of the corresponding cell in the graph model.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose shape's DOM node should be ordered.
    + */
    +mxCellRenderer.prototype.order = function(state)
    +{
    +	var container = state.shape.node.parentNode;
    +	var previous = this.getPreviousStateInContainer(state, container);
    +	var nextNode = container.firstChild;
    +	
    +	if (previous != null)
    +	{
    +		nextNode = previous.shape.node;
    +		
    +		if (previous.text != null && previous.text.node != null &&
    +			previous.text.node.parentNode == container)
    +		{
    +			nextNode = previous.text.node;
    +		}
    +		
    +		nextNode = nextNode.nextSibling;
    +	}
    +	
    +	this.insertState(state, nextNode);
    +};
    +
    +/**
    + * Function: orderEdge
    + * 
    + * Orders the DOM node of the shape for the given edge's state according to
    + * the <mxGraph.keepEdgesInBackground> and <mxGraph.keepEdgesInBackground>
    + * rules. 
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose shape's DOM node should be ordered.
    + */
    +mxCellRenderer.prototype.orderEdge = function(state)
    +{
    +	var view = state.view;
    +	var model = view.graph.getModel();
    +	
    +	// Moves edges to the foreground/background
    +	if (view.graph.keepEdgesInForeground)
    +	{
    +		if (this.firstEdge == null || this.firstEdge.parentNode == null ||
    +		  	this.firstEdge.parentNode != state.shape.node.parentNode)
    +		{
    +			this.firstEdge = state.shape.node;
    +		}
    +	}
    +	else if (view.graph.keepEdgesInBackground)
    +	{
    +		var node = state.shape.node;
    +		var parent = node.parentNode;
    +		
    +		// Keeps the DOM node in front of its parent
    +		var pcell = model.getParent(state.cell);
    +		var pstate = view.getState(pcell);
    +
    +		if (pstate != null && pstate.shape != null && pstate.shape.node != null)
    +		{
    +			var child = pstate.shape.node.nextSibling;
    +			
    +			if (child != null && child != node)
    +			{
    +				this.insertState(state, child);
    +			}
    +		}
    +		else
    +		{
    +			var child = parent.firstChild;
    +			
    +			if (child != null && child != node)
    +			{
    +				this.insertState(state, child);
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: insertState
    + * 
    + * Inserts the given state before the given node into its parent.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the shape should be created.
    + */
    +mxCellRenderer.prototype.insertState = function(state, nextNode)
    +{
    +	state.shape.node.parentNode.insertBefore(state.shape.node, nextNode);
    +	
    +	if (state.text != null && state.text.node != null &&
    +		state.text.node.parentNode == state.shape.node.parentNode)
    +	{
    +		state.shape.node.parentNode.insertBefore(state.text.node, state.shape.node.nextSibling);
    +	}
    +};
    +
    +/**
    + * Function: createShape
    + * 
    + * Creates the shape for the given cell state. The shape is configured
    + * using <configureShape>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the shape should be created.
    + */
    +mxCellRenderer.prototype.createShape = function(state)
    +{
    +	if (state.style != null)
    +	{
    +		// Checks if there is a stencil for the name and creates
    +		// a shape instance for the stencil if one exists
    +		var key = state.style[mxConstants.STYLE_SHAPE];
    +		var stencil = mxStencilRegistry.getStencil(key);
    +		
    +		if (stencil != null)
    +		{
    +			state.shape = new mxStencilShape(stencil);
    +		}
    +		else
    +		{
    +			var ctor = this.getShapeConstructor(state);
    +			state.shape = new ctor();
    +		}
    +
    +		// Sets the initial bounds and points (will be updated in redraw)
    +		state.shape.points = state.absolutePoints;
    +		state.shape.bounds = new mxRectangle(
    +			state.x, state.y, state.width, state.height);
    +		state.shape.dialect = state.view.graph.dialect;
    +
    +		this.configureShape(state);
    +	}
    +};
    +
    +/**
    + * Function: getShapeConstructor
    + * 
    + * Returns the constructor to be used for creating the shape.
    + */
    +mxCellRenderer.prototype.getShapeConstructor = function(state)
    +{
    +	var key = state.style[mxConstants.STYLE_SHAPE];
    +	var ctor = (key != null) ? this.shapes[key] : null;
    +	
    +	if (ctor == null)
    +	{
    +		ctor = (state.view.graph.getModel().isEdge(state.cell)) ?
    +			this.defaultEdgeShape : this.defaultVertexShape;
    +	}
    +	
    +	return ctor;
    +};
    +
    +/**
    + * Function: configureShape
    + * 
    + * Configures the shape for the given cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the shape should be configured.
    + */
    +mxCellRenderer.prototype.configureShape = function(state)
    +{
    +	state.shape.apply(state);
    +	var image = state.view.graph.getImage(state);
    +	
    +	if (image != null)
    +	{
    +		state.shape.image = image;
    +	}
    +	
    +	var indicator = state.view.graph.getIndicatorColor(state);
    +	var key = state.view.graph.getIndicatorShape(state);
    +	var ctor = (key != null) ? this.shapes[key] : null;
    +	
    +	// Configures the indicator shape or image
    +	if (indicator != null)
    +	{
    +		state.shape.indicatorShape = ctor;
    +		state.shape.indicatorColor = indicator;
    +		state.shape.indicatorGradientColor =
    +			state.view.graph.getIndicatorGradientColor(state);
    +		state.shape.indicatorDirection =
    +			state.style[mxConstants.STYLE_INDICATOR_DIRECTION];
    +	}
    +	else
    +	{
    +		var indicator = state.view.graph.getIndicatorImage(state);
    +		
    +		if (indicator != null)
    +		{
    +			state.shape.indicatorImage = indicator;
    +		}
    +	}
    +	
    +	this.postConfigureShape(state);
    +};
    +
    +/**
    + * Function: postConfigureShape
    + * 
    + * Replaces any reserved words used for attributes, eg. inherit,
    + * indicated or swimlane for colors in the shape for the given state.
    + * This implementation resolves these keywords on the fill, stroke
    + * and gradient color keys.
    + */
    +mxCellRenderer.prototype.postConfigureShape = function(state)
    +{
    +	if (state.shape != null)
    +	{
    +		this.resolveColor(state, 'indicatorColor', mxConstants.STYLE_FILLCOLOR);
    +		this.resolveColor(state, 'indicatorGradientColor', mxConstants.STYLE_GRADIENTCOLOR);
    +		this.resolveColor(state, 'fill', mxConstants.STYLE_FILLCOLOR);
    +		this.resolveColor(state, 'stroke', mxConstants.STYLE_STROKECOLOR);
    +		this.resolveColor(state, 'gradient', mxConstants.STYLE_GRADIENTCOLOR);
    +	}
    +};
    +
    +/**
    + * Function: resolveColor
    + * 
    + * Resolves special keywords 'inherit', 'indicated' and 'swimlane' and sets
    + * the respective color on the shape.
    + */
    +mxCellRenderer.prototype.resolveColor = function(state, field, key)
    +{
    +	var value = state.shape[field];
    +	var graph = state.view.graph;
    +	var referenced = null;
    +	
    +	if (value == 'inherit')
    +	{
    +		referenced = graph.model.getParent(state.cell);
    +	}
    +	else if (value == 'swimlane')
    +	{
    +		if (graph.model.getTerminal(state.cell, false) != null)
    +		{
    +			referenced = graph.model.getTerminal(state.cell, false);
    +		}
    +		else
    +		{
    +			referenced = state.cell;
    +		}
    +		
    +		referenced = graph.getSwimlane(referenced);
    +		key = graph.swimlaneIndicatorColorAttribute;
    +	}
    +	else if (value == 'indicated')
    +	{
    +		state.shape[field] = state.shape.indicatorColor;
    +	}
    +	
    +	if (referenced != null)
    +	{
    +		var rstate = graph.getView().getState(referenced);
    +		state.shape[field] = null;
    +
    +		if (rstate != null)
    +		{
    +			if (rstate.shape != null && field != 'indicatorColor')
    +			{
    +				state.shape[field] = rstate.shape[field];
    +			}
    +			else
    +			{
    +				state.shape[field] = rstate.style[key];
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getLabelValue
    + * 
    + * Returns the value to be used for the label.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the label should be created.
    + */
    +mxCellRenderer.prototype.getLabelValue = function(state)
    +{
    +	var graph = state.view.graph;
    +	var value = graph.getLabel(state.cell);
    +
    +	if (!graph.isHtmlLabel(state.cell) && !mxUtils.isNode(value) &&
    +		graph.dialect != mxConstants.DIALECT_SVG && value != null)
    +	{
    +		value = mxUtils.htmlEntities(value, false);
    +	}
    +	
    +	return value;
    +};
    +
    +/**
    + * Function: createLabel
    + * 
    + * Creates the label for the given cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the label should be created.
    + */
    +mxCellRenderer.prototype.createLabel = function(state, value)
    +{
    +	var graph = state.view.graph;
    +	var isEdge = graph.getModel().isEdge(state.cell);
    +	
    +	if (state.style[mxConstants.STYLE_FONTSIZE] > 0 ||
    +		state.style[mxConstants.STYLE_FONTSIZE] == null)
    +	{
    +		// Avoids using DOM node for empty labels
    +		var isForceHtml = (graph.isHtmlLabel(state.cell) ||
    +			(value != null && mxUtils.isNode(value))) &&
    +			graph.dialect == mxConstants.DIALECT_SVG;
    +
    +		state.text = new mxText(value, new mxRectangle(),
    +				(state.style[mxConstants.STYLE_ALIGN] ||
    +					mxConstants.ALIGN_CENTER),
    +				graph.getVerticalAlign(state),
    +				state.style[mxConstants.STYLE_FONTCOLOR],
    +				state.style[mxConstants.STYLE_FONTFAMILY],
    +				state.style[mxConstants.STYLE_FONTSIZE],
    +				state.style[mxConstants.STYLE_FONTSTYLE],
    +				state.style[mxConstants.STYLE_SPACING],
    +				state.style[mxConstants.STYLE_SPACING_TOP],
    +				state.style[mxConstants.STYLE_SPACING_RIGHT],
    +				state.style[mxConstants.STYLE_SPACING_BOTTOM],
    +				state.style[mxConstants.STYLE_SPACING_LEFT],
    +				state.style[mxConstants.STYLE_HORIZONTAL],
    +				state.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],
    +				state.style[mxConstants.STYLE_LABEL_BORDERCOLOR],
    +				graph.isWrapping(state.cell) && graph.isHtmlLabel(state.cell),
    +				graph.isLabelClipped(state.cell),
    +				state.style[mxConstants.STYLE_OVERFLOW],
    +				state.style[mxConstants.STYLE_LABEL_PADDING]);
    +		state.text.opacity = state.style[mxConstants.STYLE_TEXT_OPACITY];
    +
    +		state.text.dialect = (isForceHtml) ?
    +			mxConstants.DIALECT_STRICTHTML :
    +			state.view.graph.dialect;
    +		this.initializeLabel(state);
    +		
    +		// Workaround for touch devices routing all events for a mouse
    +		// gesture (down, move, up) via the initial DOM node. IE is even
    +		// worse in that it redirects the event via the initial DOM node
    +		// but the event source is the node under the mouse, so we need
    +		// to check if this is the case and force getCellAt for the
    +		// subsequent mouseMoves and the final mouseUp.
    +		var forceGetCell = false;
    +		
    +		var getState = function(evt)
    +		{
    +			var result = state;
    +
    +			if (mxClient.IS_TOUCH || forceGetCell)
    +			{
    +				var x = mxEvent.getClientX(evt);
    +				var y = mxEvent.getClientY(evt);
    +				
    +				// Dispatches the drop event to the graph which
    +				// consumes and executes the source function
    +				var pt = mxUtils.convertPoint(graph.container, x, y);
    +				result = graph.view.getState(graph.getCellAt(pt.x, pt.y));
    +			}
    +			
    +			return result;
    +		};
    +		
    +		// TODO: Add handling for gestures
    +		var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +		var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +		var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +
    +		mxEvent.addListener(state.text.node, md,
    +			mxUtils.bind(this, function(evt)
    +			{
    +				if (this.isLabelEvent(state, evt))
    +				{
    +					graph.fireMouseEvent(mxEvent.MOUSE_DOWN,
    +						new mxMouseEvent(evt, state));
    +					forceGetCell = graph.dialect != mxConstants.DIALECT_SVG && mxEvent.getSource(evt).nodeName == 'IMG';
    +				}
    +			})
    +		);
    +		
    +		mxEvent.addListener(state.text.node, mm,
    +			mxUtils.bind(this, function(evt)
    +			{
    +				if (this.isLabelEvent(state, evt))
    +				{
    +					graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +						new mxMouseEvent(evt, getState(evt)));
    +				}
    +			})
    +		);
    +		
    +		mxEvent.addListener(state.text.node, mu,
    +			mxUtils.bind(this, function(evt)
    +			{
    +				if (this.isLabelEvent(state, evt))
    +				{
    +					graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +						new mxMouseEvent(evt, getState(evt)));
    +					forceGetCell = false;
    +				}
    +			})
    +		);
    +
    +		mxEvent.addListener(state.text.node, 'dblclick',
    +			mxUtils.bind(this, function(evt)
    +			{
    +				if (this.isLabelEvent(state, evt))
    +				{
    +					graph.dblClick(evt, state.cell);
    +					mxEvent.consume(evt);
    +				}
    +			})
    +		);
    +	}
    +};
    +
    +/**
    + * Function: initializeLabel
    + * 
    + * Initiailzes the label with a suitable container.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose label should be initialized.
    + */
    +mxCellRenderer.prototype.initializeLabel = function(state)
    +{
    +	var graph = state.view.graph;
    +
    +	if (state.text.dialect != mxConstants.DIALECT_SVG)
    +	{
    +		// Adds the text to the container if the dialect is not SVG and we
    +		// have an SVG-based browser which doesn't support foreignObjects
    +		if (mxClient.IS_SVG && mxClient.NO_FO)
    +		{
    +			state.text.init(graph.container);
    +		}
    +		else if (mxUtils.isVml(state.view.getDrawPane()))
    +		{
    +			if (state.shape.label != null)
    +			{
    +				state.text.init(state.shape.label);
    +			}
    +			else 
    +			{
    +				state.text.init(state.shape.node);
    +			}
    +		}
    +	}
    +
    +	if (state.text.node == null)
    +	{
    +		state.text.init(state.view.getDrawPane());
    +		
    +		if (state.shape != null && state.text != null)
    +		{
    +			state.shape.node.parentNode.insertBefore(
    +				state.text.node, state.shape.node.nextSibling);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: createCellOverlays
    + * 
    + * Creates the actual shape for showing the overlay for the given cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the overlay should be created.
    + */
    +mxCellRenderer.prototype.createCellOverlays = function(state)
    +{
    +	var graph = state.view.graph;
    +	var overlays = graph.getCellOverlays(state.cell);
    +	
    +	if (overlays != null)
    +	{
    +		if (state.overlays == null)
    +		{
    +			state.overlays = [];
    +		}
    +		
    +		for (var i = 0; i < overlays.length; i++)
    +		{
    +			if (state.overlays[i] == null)
    +			{
    +				var tmp = new mxImageShape(new mxRectangle(),
    +					overlays[i].image.src);
    +				tmp.dialect = state.view.graph.dialect;
    +				tmp.overlay = overlays[i];
    +				this.initializeOverlay(state, tmp);
    +				this.installCellOverlayListeners(state, overlays[i], tmp);
    +	
    +				if (overlays[i].cursor != null)
    +				{
    +					tmp.node.style.cursor = overlays[i].cursor;
    +				}
    +				
    +				state.overlays[i] = tmp;
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: initializeOverlay
    + * 
    + * Initializes the given overlay.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the overlay should be created.
    + * overlay - <mxImageShape> that represents the overlay.
    + */
    +mxCellRenderer.prototype.initializeOverlay = function(state, overlay)
    +{
    +	overlay.init(state.view.getOverlayPane());
    +};
    +
    +/**
    + * Function: installOverlayListeners
    + * 
    + * Installs the listeners for the given <mxCellState>, <mxCellOverlay> and
    + * <mxShape> that represents the overlay.
    + */
    +mxCellRenderer.prototype.installCellOverlayListeners = function(state, overlay, shape)
    +{
    +	var graph  = state.view.graph;
    +	
    +	mxEvent.addListener(shape.node, 'click', function (evt)
    +	{
    +		if (graph.isEditing())
    +		{
    +			graph.stopEditing(!graph.isInvokesStopCellEditing());
    +		}
    +		
    +		overlay.fireEvent(new mxEventObject(mxEvent.CLICK,
    +				'event', evt, 'cell', state.cell));
    +	});
    +	
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +	
    +	mxEvent.addListener(shape.node, md, function (evt)
    +	{
    +		mxEvent.consume(evt);
    +	});
    +	
    +	mxEvent.addListener(shape.node, mm, function (evt)
    +	{
    +		graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +			new mxMouseEvent(evt, state));
    +	});
    +	
    +	if (mxClient.IS_TOUCH)
    +	{
    +		mxEvent.addListener(shape.node, 'touchend', function (evt)
    +		{
    +			overlay.fireEvent(new mxEventObject(mxEvent.CLICK,
    +					'event', evt, 'cell', state.cell));
    +		});
    +	}
    +};
    +
    +/**
    + * Function: createControl
    + * 
    + * Creates the control for the given cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the control should be created.
    + */
    +mxCellRenderer.prototype.createControl = function(state)
    +{
    +	var graph = state.view.graph;
    +	var image = graph.getFoldingImage(state);
    +	
    +	if (graph.foldingEnabled && image != null)
    +	{
    +		if (state.control == null)
    +		{
    +			var b = new mxRectangle(0, 0, image.width, image.height);
    +			state.control = new mxImageShape(b, image.src);
    +			state.control.dialect = graph.dialect;
    +			state.control.preserveImageAspect = false;
    +			
    +			this.initControl(state, state.control, true, function (evt)
    +			{
    +				if (graph.isEnabled())
    +				{
    +					var collapse = !graph.isCellCollapsed(state.cell);
    +					graph.foldCells(collapse, false, [state.cell]);
    +					mxEvent.consume(evt);
    +				}
    +			});
    +		}
    +	}
    +	else if (state.control != null)
    +	{
    +		state.control.destroy();
    +		state.control = null;
    +	}
    +};
    +
    +/**
    + * Function: initControl
    + * 
    + * Initializes the given control and returns the corresponding DOM node.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the control should be initialized.
    + * control - <mxShape> to be initialized.
    + * handleEvents - Boolean indicating if mousedown and mousemove should fire events via the graph.
    + * clickHandler - Optional function to implement clicks on the control.
    + */
    +mxCellRenderer.prototype.initControl = function(state, control, handleEvents, clickHandler)
    +{
    +	var graph = state.view.graph;
    +	
    +	// In the special case where the label is in HTML and the display is SVG the image
    +	// should go into the graph container directly in order to be clickable. Otherwise
    +	// it is obscured by the HTML label that overlaps the cell.
    +	var isForceHtml = graph.isHtmlLabel(state.cell) &&
    +		mxClient.NO_FO &&
    +		graph.dialect == mxConstants.DIALECT_SVG;
    +
    +	if (isForceHtml)
    +	{
    +		control.dialect = mxConstants.DIALECT_PREFERHTML;
    +		control.init(graph.container);
    +		control.node.style.zIndex = 1;
    +	}
    +	else
    +	{
    +		control.init(state.view.getOverlayPane());
    +	}
    +
    +	var node = control.innerNode || control.node;
    +	
    +	if (clickHandler)
    +	{
    +		if (graph.isEnabled())
    +		{
    +			node.style.cursor = 'pointer';
    +		}
    +		
    +		mxEvent.addListener(node, 'click', clickHandler);
    +	}
    +	
    +	if (handleEvents)
    +	{
    +		var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +		var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +		
    +		mxEvent.addListener(node, md, function (evt)
    +		{
    +			graph.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(evt, state));
    +			mxEvent.consume(evt);
    +		});
    +	
    +		mxEvent.addListener(node, mm, function (evt)
    +		{
    +			graph.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(evt, state));
    +		});
    +	}
    +	
    +	return node;
    +};
    +
    +/**
    + * Function: isShapeEvent
    + * 
    + * Returns true if the event is for the shape of the given state. This
    + * implementation always returns true.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose shape fired the event.
    + * evt - Mouse event which was fired.
    + */
    +mxCellRenderer.prototype.isShapeEvent = function(state, evt)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: isLabelEvent
    + * 
    + * Returns true if the event is for the label of the given state. This
    + * implementation always returns true.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose label fired the event.
    + * evt - Mouse event which was fired.
    + */
    +mxCellRenderer.prototype.isLabelEvent = function(state, evt)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: installListeners
    + * 
    + * Installs the event listeners for the given cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the event listeners should be isntalled.
    + */
    +mxCellRenderer.prototype.installListeners = function(state)
    +{
    +	var graph = state.view.graph;
    +	
    +	// Receives events from transparent backgrounds
    +	if (graph.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		var events = 'all';
    +
    +		// Disabled fill-events on non-filled edges
    +		if (graph.getModel().isEdge(state.cell) && state.shape.stroke != null &&
    +			(state.shape.fill == null || state.shape.fill == mxConstants.NONE))
    +		{
    +			events = 'visibleStroke';
    +		}
    +
    +		// Specifies the event-processing on the shape
    +		if (state.shape.innerNode != null)
    +		{
    +			state.shape.innerNode.setAttribute('pointer-events', events);
    +		}
    +		else
    +		{
    +			state.shape.node.setAttribute('pointer-events', events);
    +		}
    +	}
    +	
    +	// Workaround for touch devices routing all events for a mouse
    +	// gesture (down, move, up) via the initial DOM node. Same for
    +	// HTML images in all IE versions (VML images are working).
    +	var getState = function(evt)
    +	{
    +		var result = state;
    +		
    +		if ((graph.dialect != mxConstants.DIALECT_SVG && mxEvent.getSource(evt).nodeName == 'IMG') || mxClient.IS_TOUCH)
    +		{
    +			var x = mxEvent.getClientX(evt);
    +			var y = mxEvent.getClientY(evt);
    +			
    +			// Dispatches the drop event to the graph which
    +			// consumes and executes the source function
    +			var pt = mxUtils.convertPoint(graph.container, x, y);
    +			result = graph.view.getState(graph.getCellAt(pt.x, pt.y));
    +		}
    +		
    +		return result;
    +	};
    +	
    +	// Experimental support for two-finger pinch to resize cells
    +	var gestureInProgress = false;
    +	
    +	mxEvent.addListener(state.shape.node, 'gesturestart',
    +		mxUtils.bind(this, function(evt)
    +		{
    +			// FIXME: Breaks encapsulation to reset the double
    +			// tap event handling when gestures take place
    +			graph.lastTouchTime = 0;
    +
    +			gestureInProgress = true;
    +			mxEvent.consume(evt);
    +		})
    +	);
    +	
    +	var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +	var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +	var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +
    +	mxEvent.addListener(state.shape.node, md,
    +		mxUtils.bind(this, function(evt)
    +		{
    +			if (this.isShapeEvent(state, evt) && !gestureInProgress)
    +			{
    +				// Redirects events from the "event-transparent" region of
    +				// a swimlane to the graph. This is only required in HTML,
    +				// SVG and VML do not fire mouse events on transparent
    +				// backgrounds.
    +				graph.fireMouseEvent(mxEvent.MOUSE_DOWN,
    +					new mxMouseEvent(evt, (state.shape != null &&
    +					mxEvent.getSource(evt) == state.shape.content) ?
    +						null : state));
    +			}
    +			else if (gestureInProgress)
    +			{
    +				mxEvent.consume(evt);
    +			}
    +		})
    +	);
    +	
    +	mxEvent.addListener(state.shape.node, mm,
    +		mxUtils.bind(this, function(evt)
    +		{
    +			if (this.isShapeEvent(state, evt) && !gestureInProgress)
    +			{
    +				graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +					new mxMouseEvent(evt, (state.shape != null &&
    +					mxEvent.getSource(evt) == state.shape.content) ?
    +						null : getState(evt)));
    +			}
    +			else if (gestureInProgress)
    +			{
    +				mxEvent.consume(evt);
    +			}
    +		})
    +	);
    +	
    +	mxEvent.addListener(state.shape.node, mu,
    +		mxUtils.bind(this, function(evt)
    +		{
    +			if (this.isShapeEvent(state, evt) && !gestureInProgress)
    +			{
    +				graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +					new mxMouseEvent(evt, (state.shape != null &&
    +					mxEvent.getSource(evt) == state.shape.content) ?
    +						null : getState(evt)));
    +			}
    +			else if (gestureInProgress)
    +			{
    +				mxEvent.consume(evt);
    +			}
    +		})
    +	);
    +	
    +	// Experimental handling for gestures. Double-tap handling is implemented
    +	// in mxGraph.fireMouseEvent.
    +	var dc = (mxClient.IS_TOUCH) ? 'gestureend' : 'dblclick';
    +	
    +	mxEvent.addListener(state.shape.node, dc,
    +		mxUtils.bind(this, function(evt)
    +		{
    +			gestureInProgress = false;
    +			
    +			if (dc == 'gestureend')
    +			{
    +				// FIXME: Breaks encapsulation to reset the double
    +				// tap event handling when gestures take place
    +				graph.lastTouchTime = 0;
    +				
    +				if (graph.gestureEnabled)
    +				{
    +					graph.handleGesture(state, evt);
    +					mxEvent.consume(evt);
    +				}
    +			}
    +			else if (this.isShapeEvent(state, evt))
    +			{
    +				graph.dblClick(evt, (state.shape != null &&
    +					mxEvent.getSource(evt) == state.shape.content) ?
    +						null : state.cell);
    +				mxEvent.consume(evt);
    +			}
    +		})
    +	);
    +};
    +
    +/**
    + * Function: redrawLabel
    + * 
    + * Redraws the label for the given cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose label should be redrawn.
    + */
    +mxCellRenderer.prototype.redrawLabel = function(state)
    +{
    +	var value = this.getLabelValue(state);
    +	
    +	// FIXME: Add label always if HTML label and NO_FO
    +	if (state.text == null && value != null && (mxUtils.isNode(value) || value.length > 0))
    +	{
    +		this.createLabel(state, value);
    +	}
    +	else if (state.text != null && (value == null || value.length == 0))
    +	{
    +		state.text.destroy();
    +		state.text = null;
    +	}
    +
    +	if (state.text != null)
    +	{
    +		var graph = state.view.graph;
    +		var wrapping = graph.isWrapping(state.cell);
    +		var clipping = graph.isLabelClipped(state.cell);
    +		var bounds = this.getLabelBounds(state);
    +
    +		if (state.text.value != value || state.text.isWrapping != wrapping ||
    +			state.text.isClipping != clipping || state.text.scale != state.view.scale ||
    +			!state.text.bounds.equals(bounds))
    +		{
    +			state.text.value = value;
    +			state.text.bounds = bounds;
    +			state.text.scale = this.getTextScale(state);
    +			state.text.isWrapping = wrapping;
    +			state.text.isClipping = clipping;
    +			
    +			state.text.redraw();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getTextScale
    + * 
    + * Returns the scaling used for the label of the given state
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose label scale should be returned.
    + */
    +mxCellRenderer.prototype.getTextScale = function(state)
    +{
    +	return state.view.scale;
    +};
    +
    +/**
    + * Function: getLabelBounds
    + * 
    + * Returns the bounds to be used to draw the label of the given state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose label bounds should be returned.
    + */
    +mxCellRenderer.prototype.getLabelBounds = function(state)
    +{
    +	var graph = state.view.graph;
    +	var isEdge = graph.getModel().isEdge(state.cell);
    +	var bounds = new mxRectangle(state.absoluteOffset.x, state.absoluteOffset.y);
    +		
    +	if (!isEdge)
    +	{
    +		bounds.x += state.x;
    +		bounds.y += state.y;
    +		
    +		// Minimum of 1 fixes alignment bug in HTML labels
    +		bounds.width = Math.max(1, state.width);
    +		bounds.height = Math.max(1, state.height);
    +		
    +		if (graph.isSwimlane(state.cell))
    +		{
    +			var scale = graph.view.scale;
    +			var size = graph.getStartSize(state.cell);
    +			
    +			if (size.width > 0)
    +			{
    +				bounds.width = size.width * scale;
    +			}
    +			else if (size.height > 0)
    +			{
    +				bounds.height = size.height * scale;
    +			}
    +		}
    +	}
    +	
    +	return bounds;
    +};
    +
    +/**
    + * Function: redrawCellOverlays
    + * 
    + * Redraws the overlays for the given cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose overlays should be redrawn.
    + */
    +mxCellRenderer.prototype.redrawCellOverlays = function(state)
    +{
    +	var overlays = state.view.graph.getCellOverlays(state.cell);
    +	var oldCount = (state.overlays != null) ? state.overlays.length : 0;
    +	var newCount = (overlays != null) ? overlays.length : 0;
    +	
    +	// Checks if the overlays need an update - this assumes a
    +	// maximum of one change to cell.overlays between each call
    +	if (oldCount != newCount)
    +	{
    +		if (oldCount > 0)
    +		{
    +			var newOverlayShapes = [];
    +			
    +			for (var i = 0; i < state.overlays.length; i++)
    +			{
    +				var index = mxUtils.indexOf(overlays, state.overlays[i].overlay);
    +				
    +				if (index >= 0)
    +				{
    +					newOverlayShapes[index] = state.overlays[i];
    +				}
    +				else
    +				{
    +					state.overlays[i].destroy();
    +				}
    +			}
    +			
    +			state.overlays = newOverlayShapes;
    +		}
    +		
    +		if (newCount > 0)
    +		{
    +			this.createCellOverlays(state);
    +		}
    +		else
    +		{
    +			state.overlays = null;
    +		}
    +	}
    +	
    +	if (state.overlays != null)
    +	{
    +		for (var i = 0; i < overlays.length; i++)
    +		{
    +			var bounds = overlays[i].getBounds(state);
    +
    +			if (state.overlays[i].bounds == null ||
    +				state.overlays[i].scale != state.view.scale ||
    +				!state.overlays[i].bounds.equals(bounds))
    +			{
    +				state.overlays[i].bounds = bounds;
    +				state.overlays[i].scale = state.view.scale;
    +				state.overlays[i].redraw();
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: redrawControl
    + * 
    + * Redraws the control for the given cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose control should be redrawn.
    + */
    +mxCellRenderer.prototype.redrawControl = function(state)
    +{
    +	if (state.control != null)
    +	{
    +		var bounds = this.getControlBounds(state);
    +		var s = state.view.scale;
    +		
    +		if (state.control.scale != s || !state.control.bounds.equals(bounds))
    +		{
    +			state.control.bounds = bounds;
    +			state.control.scale = s;
    +			state.control.redraw();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getControlBounds
    + * 
    + * Returns the bounds to be used to draw the control (folding icon) of the
    + * given state.
    + */
    +mxCellRenderer.prototype.getControlBounds = function(state)
    +{
    +	if (state.control != null)
    +	{
    +		var oldScale = state.control.scale;
    +		var w = state.control.bounds.width / oldScale;
    +		var h = state.control.bounds.height / oldScale;
    +		var s = state.view.scale;			
    +
    +		return (state.view.graph.getModel().isEdge(state.cell)) ? 
    +			new mxRectangle(
    +				state.x + state.width / 2 - w / 2 * s,
    +				state.y + state.height / 2 - h / 2 * s,
    +				w * s, h * s)
    +			: new mxRectangle(
    +				state.x + w / 2 * s,
    +				state.y + h / 2 * s,
    +				w * s, h * s);
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: redraw
    + * 
    + * Updates the bounds or points and scale of the shapes for the given cell
    + * state. This is called in mxGraphView.validatePoints as the last step of
    + * updating all cells.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the shapes should be updated.
    + */
    +mxCellRenderer.prototype.redraw = function(state)
    +{
    +	if (state.shape != null)
    +	{
    +		var model = state.view.graph.getModel();
    +		var isEdge = model.isEdge(state.cell);
    +		var reconfigure = false;
    +		
    +		// Handles changes of the collapse icon
    +		this.createControl(state);
    +		
    +		// Handles changes to the order in the DOM
    +		if (state.orderChanged || state.invalidOrder)
    +		{
    +			if (state.view.graph.ordered)
    +			{
    +				this.order(state);
    +			}
    +			else
    +			{
    +				// Assert state.cell is edge
    +				this.orderEdge(state);
    +			}
    +			
    +			// Required to update inherited styles
    +			reconfigure = state.orderChanged;
    +		}
    +		
    +		delete state.invalidOrder;
    +		delete state.orderChanged;
    +		
    +		// Checks if the style in the state is different from the style
    +		// in the shape and re-applies the style if required
    +		if (!reconfigure && !mxUtils.equalEntries(state.shape.style, state.style))
    +		{
    +			reconfigure = true;
    +		}
    +
    +		// Reconfiures the shape after an order or style change
    +		if (reconfigure)
    +		{
    +			this.configureShape(state);
    +			state.shape.reconfigure();
    +		}
    +		
    +		// Redraws the cell if required
    +		if (state.shape.bounds == null || state.shape.scale != state.view.scale ||
    +			!state.shape.bounds.equals(state) ||
    +			!mxUtils.equalPoints(state.shape.points, state.absolutePoints))
    +		{
    +			// FIXME: Move indicator color update into shape.redraw
    +//				var indicator = state.view.graph.getIndicatorColor(state);
    +//				if (indicator != null)
    +//				{
    +//					state.shape.indicatorColor = indicator;
    +//				}
    +			
    +			if (state.absolutePoints != null)
    +			{
    +				state.shape.points = state.absolutePoints.slice();
    +			}
    +			else
    +			{
    +				state.shape.points = null;
    +			}
    +			
    +			state.shape.bounds = new mxRectangle(
    +				state.x, state.y, state.width, state.height);
    +			state.shape.scale = state.view.scale;
    +			state.shape.redraw();
    +		}
    +		
    +		// Updates the text label, overlays and control
    +		this.redrawLabel(state);
    +		this.redrawCellOverlays(state);
    +		this.redrawControl(state);
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the shapes associated with the given cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> for which the shapes should be destroyed.
    + */
    +mxCellRenderer.prototype.destroy = function(state)
    +{
    +	if (state.shape != null)
    +	{
    +		if (state.text != null)
    +		{		
    +			state.text.destroy();
    +			state.text = null;
    +		}
    +		
    +		if (state.overlays != null)
    +		{
    +			for (var i=0; i<state.overlays.length; i++)
    +			{
    +				state.overlays[i].destroy();
    +			}
    +			
    +			state.overlays = null;
    +		}
    +		
    +		if (state.control != null)
    +		{
    +			state.control.destroy();
    +			state.control = null;
    +		}
    +		
    +		state.shape.destroy();
    +		state.shape = null;
    +	}
    +};
    diff --git a/javascript/src/js/view/mxCellState.js b/javascript/src/js/view/mxCellState.js
    new file mode 100644
    index 000000000..7e7a3b0ff
    --- /dev/null
    +++ b/javascript/src/js/view/mxCellState.js
    @@ -0,0 +1,375 @@
    +/**
    + * $Id: mxCellState.js,v 1.42 2012-03-19 10:47:08 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxCellState
    + * 
    + * Represents the current state of a cell in a given <mxGraphView>.
    + * 
    + * For edges, the edge label position is stored in <absoluteOffset>.
    + * 
    + * The size for oversize labels can be retrieved using the boundingBox property
    + * of the <text> field as shown below.
    + * 
    + * (code)
    + * var bbox = (state.text != null) ? state.text.boundingBox : null;
    + * (end)
    + * 
    + * Constructor: mxCellState
    + * 
    + * Constructs a new object that represents the current state of the given
    + * cell in the specified view.
    + * 
    + * Parameters:
    + * 
    + * view - <mxGraphView> that contains the state.
    + * cell - <mxCell> that this state represents.
    + * style - Array of key, value pairs that constitute the style.
    + */
    +function mxCellState(view, cell, style)
    +{
    +	this.view = view;
    +	this.cell = cell;
    +	this.style = style;
    +	
    +	this.origin = new mxPoint();
    +	this.absoluteOffset = new mxPoint();
    +};
    +
    +/**
    + * Extends mxRectangle.
    + */
    +mxCellState.prototype = new mxRectangle();
    +mxCellState.prototype.constructor = mxCellState;
    +
    +/**
    + * Variable: view
    + * 
    + * Reference to the enclosing <mxGraphView>.
    + */
    +mxCellState.prototype.view = null;
    +
    +/**
    + * Variable: cell
    + *
    + * Reference to the <mxCell> that is represented by this state.
    + */
    +mxCellState.prototype.cell = null;
    +
    +/**
    + * Variable: style
    + * 
    + * Contains an array of key, value pairs that represent the style of the
    + * cell.
    + */
    +mxCellState.prototype.style = null;
    +
    +/**
    + * Variable: invalid
    + * 
    + * Specifies if the state is invalid. Default is true.
    + */
    +mxCellState.prototype.invalid = true;
    +
    +/**
    + * Variable: invalidOrder
    + * 
    + * Specifies if the cell has an invalid order. For internal use. Default is
    + * false.
    + */
    +mxCellState.prototype.invalidOrder = false;
    +
    +/**
    + * Variable: orderChanged
    + * 
    + * Specifies if the cell has changed order and the display needs to be
    + * updated.
    + */
    +mxCellState.prototype.orderChanged = false;
    +
    +/**
    + * Variable: origin
    + *
    + * <mxPoint> that holds the origin for all child cells. Default is a new
    + * empty <mxPoint>.
    + */
    +mxCellState.prototype.origin = null;
    +
    +/**
    + * Variable: absolutePoints
    + * 
    + * Holds an array of <mxPoints> that represent the absolute points of an
    + * edge.
    + */
    +mxCellState.prototype.absolutePoints = null;
    +
    +/**
    + * Variable: absoluteOffset
    + *
    + * <mxPoint> that holds the absolute offset. For edges, this is the
    + * absolute coordinates of the label position. For vertices, this is the
    + * offset of the label relative to the top, left corner of the vertex. 
    + */
    +mxCellState.prototype.absoluteOffset = null;
    +
    +/**
    + * Variable: visibleSourceState
    + * 
    + * Caches the visible source terminal state.
    + */
    +mxCellState.prototype.visibleSourceState = null;
    +
    +/**
    + * Variable: visibleTargetState
    + * 
    + * Caches the visible target terminal state.
    + */
    +mxCellState.prototype.visibleTargetState = null;
    +
    +/**
    + * Variable: terminalDistance
    + * 
    + * Caches the distance between the end points for an edge.
    + */
    +mxCellState.prototype.terminalDistance = 0;
    +
    +/**
    + * Variable: length
    + *
    + * Caches the length of an edge.
    + */
    +mxCellState.prototype.length = 0;
    +
    +/**
    + * Variable: segments
    + * 
    + * Array of numbers that represent the cached length of each segment of the
    + * edge.
    + */
    +mxCellState.prototype.segments = null;
    +
    +/**
    + * Variable: shape
    + * 
    + * Holds the <mxShape> that represents the cell graphically.
    + */
    +mxCellState.prototype.shape = null;
    +
    +/**
    + * Variable: text
    + * 
    + * Holds the <mxText> that represents the label of the cell. Thi smay be
    + * null if the cell has no label.
    + */
    +mxCellState.prototype.text = null;
    +
    +/**
    + * Function: getPerimeterBounds
    + * 
    + * Returns the <mxRectangle> that should be used as the perimeter of the
    + * cell.
    + * 
    + * Parameters:
    + * 
    + * border - Optional border to be added around the perimeter bounds.
    + * bounds - Optional <mxRectangle> to be used as the initial bounds.
    + */
    +mxCellState.prototype.getPerimeterBounds = function (border, bounds)
    +{
    +	border = border || 0;
    +	bounds = (bounds != null) ? bounds : new mxRectangle(this.x, this.y, this.width, this.height);
    +	
    +	if (this.shape != null && this.shape.stencil != null)
    +	{
    +		var aspect = this.shape.stencil.computeAspect(this, bounds, null);
    +		
    +		bounds.x = aspect.x;
    +		bounds.y = aspect.y;
    +		bounds.width = this.shape.stencil.w0 * aspect.width;
    +		bounds.height = this.shape.stencil.h0 * aspect.height;
    +	}
    +	
    +	if (border != 0)
    +	{
    +		bounds.grow(border);
    +	}
    +	
    +	return bounds;
    +};
    +
    +/**
    + * Function: setAbsoluteTerminalPoint
    + * 
    + * Sets the first or last point in <absolutePoints> depending on isSource.
    + * 
    + * Parameters:
    + * 
    + * point - <mxPoint> that represents the terminal point.
    + * isSource - Boolean that specifies if the first or last point should
    + * be assigned.
    + */
    +mxCellState.prototype.setAbsoluteTerminalPoint = function (point, isSource)
    +{
    +	if (isSource)
    +	{
    +		if (this.absolutePoints == null)
    +		{
    +			this.absolutePoints = [];
    +		}
    +		
    +		if (this.absolutePoints.length == 0)
    +		{
    +			this.absolutePoints.push(point);
    +		}
    +		else
    +		{
    +			this.absolutePoints[0] = point;
    +		}
    +	}
    +	else
    +	{
    +		if (this.absolutePoints == null)
    +		{
    +			this.absolutePoints = [];
    +			this.absolutePoints.push(null);
    +			this.absolutePoints.push(point);
    +		}
    +		else if (this.absolutePoints.length == 1)
    +		{
    +			this.absolutePoints.push(point);
    +		}
    +		else
    +		{
    +			this.absolutePoints[this.absolutePoints.length - 1] = point;
    +		}
    +	}
    +};
    +
    +/**
    + * Function: setCursor
    + * 
    + * Sets the given cursor on the shape and text shape.
    + */
    +mxCellState.prototype.setCursor = function (cursor)
    +{
    +	if (this.shape != null)
    +	{
    +		this.shape.setCursor(cursor);
    +	}
    +	
    +	if (this.text != null)
    +	{
    +		this.text.setCursor(cursor);
    +	}
    +};
    +
    +/**
    + * Function: getVisibleTerminal
    + * 
    + * Returns the visible source or target terminal cell.
    + * 
    + * Parameters:
    + * 
    + * source - Boolean that specifies if the source or target cell should be
    + * returned.
    + */
    +mxCellState.prototype.getVisibleTerminal = function (source)
    +{
    +	var tmp = this.getVisibleTerminalState(source);
    +	
    +	return (tmp != null) ? tmp.cell : null;
    +};
    +
    +/**
    + * Function: getVisibleTerminalState
    + * 
    + * Returns the visible source or target terminal state.
    + * 
    + * Parameters:
    + * 
    + * source - Boolean that specifies if the source or target state should be
    + * returned.
    + */
    +mxCellState.prototype.getVisibleTerminalState = function (source)
    +{
    +	return (source) ? this.visibleSourceState : this.visibleTargetState;
    +};
    +
    +/**
    + * Function: setVisibleTerminalState
    + * 
    + * Sets the visible source or target terminal state.
    + * 
    + * Parameters:
    + * 
    + * terminalState - <mxCellState> that represents the terminal.
    + * source - Boolean that specifies if the source or target state should be set.
    + */
    +mxCellState.prototype.setVisibleTerminalState = function (terminalState, source)
    +{
    +	if (source)
    +	{
    +		this.visibleSourceState = terminalState;
    +	}
    +	else
    +	{
    +		this.visibleTargetState = terminalState;
    +	}
    +};
    +
    +/**
    + * Destructor: destroy
    + * 
    + * Destroys the state and all associated resources.
    + */
    +mxCellState.prototype.destroy = function ()
    +{
    +	this.view.graph.cellRenderer.destroy(this);
    +};
    +
    +/**
    + * Function: clone
    + *
    + * Returns a clone of this <mxPoint>.
    + */
    +mxCellState.prototype.clone = function()
    +{
    + 	var clone = new mxCellState(this.view, this.cell, this.style);
    +
    +	// Clones the absolute points
    +	if (this.absolutePoints != null)
    +	{
    +		clone.absolutePoints = [];
    +		
    +		for (var i = 0; i < this.absolutePoints.length; i++)
    +		{
    +			clone.absolutePoints[i] = this.absolutePoints[i].clone();
    +		}
    +	}
    +
    +	if (this.origin != null)
    +	{
    +		clone.origin = this.origin.clone();
    +	}
    +
    +	if (this.absoluteOffset != null)
    +	{
    +		clone.absoluteOffset = this.absoluteOffset.clone();
    +	}
    +
    +	if (this.boundingBox != null)
    +	{
    +		clone.boundingBox = this.boundingBox.clone();
    +	}
    +
    +	clone.terminalDistance = this.terminalDistance;
    +	clone.segments = this.segments;
    +	clone.length = this.length;
    +	clone.x = this.x;
    +	clone.y = this.y;
    +	clone.width = this.width;
    +	clone.height = this.height;
    +	
    +	return clone;
    +};
    diff --git a/javascript/src/js/view/mxCellStatePreview.js b/javascript/src/js/view/mxCellStatePreview.js
    new file mode 100644
    index 000000000..d2b97b116
    --- /dev/null
    +++ b/javascript/src/js/view/mxCellStatePreview.js
    @@ -0,0 +1,224 @@
    +/**
    + * $Id: mxCellStatePreview.js,v 1.5 2011-01-20 11:01:26 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + *
    + * Class: mxCellStatePreview
    + * 
    + * Implements a live preview for moving cells.
    + * 
    + * Constructor: mxCellStatePreview
    + * 
    + * Constructs a move preview for the given graph.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + */
    +function mxCellStatePreview(graph)
    +{
    +	this.graph = graph;
    +	this.deltas = new Object();
    +};
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxCellStatePreview.prototype.graph = null;
    +
    +/**
    + * Variable: deltas
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxCellStatePreview.prototype.deltas = null;
    +
    +/**
    + * Variable: count
    + * 
    + * Contains the number of entries in the map.
    + */
    +mxCellStatePreview.prototype.count = 0;
    +
    +/**
    + * Function: isEmpty
    + * 
    + * Returns true if this contains no entries.
    + */
    +mxCellStatePreview.prototype.isEmpty = function()
    +{
    +	return this.count == 0;
    +};
    +
    +/**
    + * Function: moveState
    + */
    +mxCellStatePreview.prototype.moveState = function(state, dx, dy, add, includeEdges)
    +{
    +	add = (add != null) ? add : true;
    +	includeEdges = (includeEdges != null) ? includeEdges : true;
    +	var id = mxCellPath.create(state.cell);
    +	var delta = this.deltas[id];
    +
    +	if (delta == null)
    +	{
    +		delta = new mxPoint(dx, dy);
    +		this.deltas[id] = delta;
    +		this.count++;
    +	}
    +	else
    +	{
    +		if (add)
    +		{
    +			delta.X += dx;
    +			delta.Y += dy;
    +		}
    +		else
    +		{
    +			delta.X = dx;
    +			delta.Y = dy;
    +		}
    +	}
    +	
    +	if (includeEdges)
    +	{
    +		this.addEdges(state);
    +	}
    +	
    +	return delta;
    +};
    +
    +/**
    + * Function: show
    + */
    +mxCellStatePreview.prototype.show = function(visitor)
    +{
    +	var model = this.graph.getModel();
    +	var root = model.getRoot();
    +	
    +	// Translates the states in step
    +	for (var id in this.deltas)
    +	{
    +		var cell = mxCellPath.resolve(root, id);
    +		var state = this.graph.view.getState(cell);
    +		var delta = this.deltas[id];
    +		var parentState = this.graph.view.getState(
    +			model.getParent(cell));
    +		this.translateState(parentState, state, delta.x, delta.y);
    +	}
    +	
    +	// Revalidates the states in step
    +	for (var id in this.deltas)
    +	{
    +		var cell = mxCellPath.resolve(root, id);
    +		var state = this.graph.view.getState(cell);
    +		var delta = this.deltas[id];
    +		var parentState = this.graph.view.getState(
    +			model.getParent(cell));
    +		this.revalidateState(parentState, state, delta.x, delta.y, visitor);
    +	}
    +};
    +
    +/**
    + * Function: translateState
    + */
    +mxCellStatePreview.prototype.translateState = function(parentState, state, dx, dy)
    +{
    +	if (state != null)
    +	{
    +		var model = this.graph.getModel();
    +		
    +		if (model.isVertex(state.cell))
    +		{
    +			// LATER: Use hashtable to store initial state bounds
    +			state.invalid = true;
    +			this.graph.view.validateBounds(parentState, state.cell);
    +			var geo = model.getGeometry(state.cell);
    +			var id = mxCellPath.create(state.cell);
    +	
    +			// Moves selection cells and non-relative vertices in
    +			// the first phase so that edge terminal points will
    +			// be updated in the second phase
    +			if ((dx != 0 || dy != 0) && geo != null &&
    +				(!geo.relative || this.deltas[id] != null))
    +			{
    +				state.x += dx;
    +				state.y += dy;
    +			}
    +		}
    +	    
    +	    var childCount = model.getChildCount(state.cell);
    +	    
    +	    for (var i = 0; i < childCount; i++)
    +	    {
    +	    	this.translateState(state, this.graph.view.getState(
    +	    		model.getChildAt(state.cell, i)), dx, dy);
    +	    }
    +	}
    +};
    +
    +/**
    + * Function: revalidateState
    + */
    +mxCellStatePreview.prototype.revalidateState = function(parentState, state, dx, dy, visitor)
    +{
    +	if (state != null)
    +	{
    +		// Updates the edge terminal points and restores the
    +		// (relative) positions of any (relative) children
    +		state.invalid = true;
    +		this.graph.view.validatePoints(parentState, state.cell);
    +	
    +		// Moves selection vertices which are relative
    +		var id = mxCellPath.create(state.cell);
    +		var model = this.graph.getModel();
    +		var geo = this.graph.getCellGeometry(state.cell);
    +		
    +		if ((dx != 0 || dy != 0) && geo != null && geo.relative &&
    +			model.isVertex(state.cell) && (parentState == null ||
    +			model.isVertex(parentState.cell) || this.deltas[id] != null))
    +		{
    +			state.x += dx;
    +			state.y += dy;
    +	
    +			this.graph.view.updateLabelBounds(state);
    +			this.graph.cellRenderer.redraw(state);
    +		}
    +	
    +		// Invokes the visitor on the given state
    +		if (visitor != null)
    +		{
    +			visitor(state);
    +		}
    +						
    +	    var childCount = model.getChildCount(state.cell);
    +	    
    +	    for (var i = 0; i < childCount; i++)
    +	    {
    +	    	this.revalidateState(state, this.graph.view.getState(model.getChildAt(
    +	    		state.cell, i)), dx, dy, visitor);
    +	    }
    +	}
    +};
    +
    +/**
    + * Function: addEdges
    + */
    +mxCellStatePreview.prototype.addEdges = function(state)
    +{
    +	var model = this.graph.getModel();
    +	var edgeCount = model.getEdgeCount(state.cell);
    +
    +	for (var i = 0; i < edgeCount; i++)
    +	{
    +		var s = this.graph.view.getState(model.getEdgeAt(state.cell, i));
    +
    +		if (s != null)
    +		{
    +			this.moveState(s, 0, 0);
    +		}
    +	}
    +};
    diff --git a/javascript/src/js/view/mxConnectionConstraint.js b/javascript/src/js/view/mxConnectionConstraint.js
    new file mode 100644
    index 000000000..70f457fa3
    --- /dev/null
    +++ b/javascript/src/js/view/mxConnectionConstraint.js
    @@ -0,0 +1,42 @@
    +/**
    + * $Id: mxConnectionConstraint.js,v 1.2 2010-04-29 09:33:52 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxConnectionConstraint
    + * 
    + * Defines an object that contains the constraints about how to connect one
    + * side of an edge to its terminal.
    + * 
    + * Constructor: mxConnectionConstraint
    + * 
    + * Constructs a new connection constraint for the given point and boolean
    + * arguments.
    + * 
    + * Parameters:
    + * 
    + * point - Optional <mxPoint> that specifies the fixed location of the point
    + * in relative coordinates. Default is null.
    + * perimeter - Optional boolean that specifies if the fixed point should be
    + * projected onto the perimeter of the terminal. Default is true.
    + */
    +function mxConnectionConstraint(point, perimeter)
    +{
    +	this.point = point;
    +	this.perimeter = (perimeter != null) ? perimeter : true;
    +};
    +
    +/**
    + * Variable: point
    + * 
    + * <mxPoint> that specifies the fixed location of the connection point.
    + */
    +mxConnectionConstraint.prototype.point = null;
    +
    +/**
    + * Variable: perimeter
    + * 
    + * Boolean that specifies if the point should be projected onto the perimeter
    + * of the terminal.
    + */
    +mxConnectionConstraint.prototype.perimeter = null;
    diff --git a/javascript/src/js/view/mxEdgeStyle.js b/javascript/src/js/view/mxEdgeStyle.js
    new file mode 100644
    index 000000000..bfbda8959
    --- /dev/null
    +++ b/javascript/src/js/view/mxEdgeStyle.js
    @@ -0,0 +1,1306 @@
    +/**
    + * $Id: mxEdgeStyle.js,v 1.66 2011-09-06 19:43:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxEdgeStyle =
    +{
    +	/**
    +	 * Class: mxEdgeStyle
    +	 * 
    +	 * Provides various edge styles to be used as the values for
    +	 * <mxConstants.STYLE_EDGE> in a cell style.
    +	 *
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * var style = stylesheet.getDefaultEdgeStyle();
    +	 * style[mxConstants.STYLE_EDGE] = mxEdgeStyle.ElbowConnector;
    +	 * (end)
    +	 * 
    +	 * Sets the default edge style to <ElbowConnector>.
    +	 * 
    +	 * Custom edge style:
    +	 * 
    +	 * To write a custom edge style, a function must be added to the mxEdgeStyle
    +	 * object as follows:
    +	 * 
    +	 * (code)
    +	 * mxEdgeStyle.MyStyle = function(state, source, target, points, result)
    +	 * {
    +	 *   if (source != null && target != null)
    +	 *   {
    +	 *     var pt = new mxPoint(target.getCenterX(), source.getCenterY());
    +	 * 
    +	 *     if (mxUtils.contains(source, pt.x, pt.y))
    +	 *     {
    +	 *       pt.y = source.y + source.height;
    +	 *     }
    +	 * 
    +	 *     result.push(pt);
    +	 *   }
    +	 * };
    +	 * (end)
    +	 * 
    +	 * In the above example, a right angle is created using a point on the
    +	 * horizontal center of the target vertex and the vertical center of the source
    +	 * vertex. The code checks if that point intersects the source vertex and makes
    +	 * the edge straight if it does. The point is then added into the result array,
    +	 * which acts as the return value of the function.
    +	 *
    +	 * The new edge style should then be registered in the <mxStyleRegistry> as follows:
    +	 * (code)
    +	 * mxStyleRegistry.putValue('myEdgeStyle', mxEdgeStyle.MyStyle);
    +	 * (end)
    +	 * 
    +	 * The custom edge style above can now be used in a specific edge as follows:
    +	 * 
    +	 * (code)
    +	 * model.setStyle(edge, 'edgeStyle=myEdgeStyle');
    +	 * (end)
    +	 * 
    +	 * Note that the key of the <mxStyleRegistry> entry for the function should
    +	 * be used in string values, unless <mxGraphView.allowEval> is true, in
    +	 * which case you can also use mxEdgeStyle.MyStyle for the value in the
    +	 * cell style above.
    +	 * 
    +	 * Or it can be used for all edges in the graph as follows:
    +	 * 
    +	 * (code)
    +	 * var style = graph.getStylesheet().getDefaultEdgeStyle();
    +	 * style[mxConstants.STYLE_EDGE] = mxEdgeStyle.MyStyle;
    +	 * (end)
    +	 * 
    +	 * Note that the object can be used directly when programmatically setting
    +	 * the value, but the key in the <mxStyleRegistry> should be used when
    +	 * setting the value via a key, value pair in a cell style.
    +	 * 
    +	 * Function: EntityRelation
    +	 * 
    +	 * Implements an entity relation style for edges (as used in database
    +	 * schema diagrams). At the time the function is called, the result
    +	 * array contains a placeholder (null) for the first absolute point,
    +	 * that is, the point where the edge and source terminal are connected.
    +	 * The implementation of the style then adds all intermediate waypoints
    +	 * except for the last point, that is, the connection point between the
    +	 * edge and the target terminal. The first ant the last point in the
    +	 * result array are then replaced with mxPoints that take into account
    +	 * the terminal's perimeter and next point on the edge.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * state - <mxCellState> that represents the edge to be updated.
    +	 * source - <mxCellState> that represents the source terminal.
    +	 * target - <mxCellState> that represents the target terminal.
    +	 * points - List of relative control points.
    +	 * result - Array of <mxPoints> that represent the actual points of the
    +	 * edge.
    +	 */
    +	 EntityRelation: function (state, source, target, points, result)
    +	 {
    +		var view = state.view;
    +	 	var graph = view.graph;
    +	 	var segment = mxUtils.getValue(state.style,
    +	 			mxConstants.STYLE_SEGMENT,
    +	 			mxConstants.ENTITY_SEGMENT) * view.scale;
    +	 	
    +		var pts = state.absolutePoints;
    +		var p0 = pts[0];
    +		var pe = pts[pts.length-1];
    +
    +	 	var isSourceLeft = false;
    +
    +		if (p0 != null)
    +		{
    +			source = new mxCellState();
    +			source.x = p0.x;
    +			source.y = p0.y;
    +		}
    +		else if (source != null)
    +		{
    +			var constraint = mxUtils.getPortConstraints(source, state, true, mxConstants.DIRECTION_MASK_NONE);
    +			
    +			if (constraint != mxConstants.DIRECTION_MASK_NONE)
    +			{
    +				isSourceLeft = constraint == mxConstants.DIRECTION_MASK_WEST;
    +			}
    +			else
    +			{
    +			 	var sourceGeometry = graph.getCellGeometry(source.cell);
    +		
    +			 	if (sourceGeometry.relative)
    +			 	{
    +			 		isSourceLeft = sourceGeometry.x <= 0.5;
    +			 	}
    +			 	else if (target != null)
    +			 	{
    +			 		isSourceLeft = target.x + target.width < source.x;
    +			 	}
    +			}
    +		}
    +		else
    +		{
    +			return;
    +		}
    +	 	
    +	 	var isTargetLeft = true;
    +
    +		if (pe != null)
    +		{
    +			target = new mxCellState();
    +			target.x = pe.x;
    +			target.y = pe.y;
    +		}
    +		else if (target != null)
    +	 	{
    +			var constraint = mxUtils.getPortConstraints(target, state, false, mxConstants.DIRECTION_MASK_NONE);
    +			
    +			if (constraint != mxConstants.DIRECTION_MASK_NONE)
    +			{
    +				isTargetLeft = constraint == mxConstants.DIRECTION_MASK_WEST;
    +			}
    +			else
    +			{
    +			 	var targetGeometry = graph.getCellGeometry(target.cell);
    +	
    +			 	if (targetGeometry.relative)
    +			 	{
    +			 		isTargetLeft = targetGeometry.x <= 0.5;
    +			 	}
    +			 	else if (source != null)
    +			 	{
    +			 		isTargetLeft = source.x + source.width < target.x;
    +			 	}
    +			}
    +	 	}
    +		
    +		if (source != null && target != null)
    +		{
    +			var x0 = (isSourceLeft) ? source.x : source.x + source.width;
    +			var y0 = view.getRoutingCenterY(source);
    +			
    +			var xe = (isTargetLeft) ? target.x : target.x + target.width;
    +			var ye = view.getRoutingCenterY(target);
    +	
    +			var seg = segment;
    +	
    +			var dx = (isSourceLeft) ? -seg : seg;
    +			var dep = new mxPoint(x0 + dx, y0);
    +					
    +			dx = (isTargetLeft) ? -seg : seg;
    +			var arr = new mxPoint(xe + dx, ye);
    +	
    +			// Adds intermediate points if both go out on same side
    +			if (isSourceLeft == isTargetLeft)
    +			{
    +				var x = (isSourceLeft) ?
    +					Math.min(x0, xe)-segment :
    +					Math.max(x0, xe)+segment;
    +	
    +				result.push(new mxPoint(x, y0));
    +				result.push(new mxPoint(x, ye));
    +			}
    +			else if ((dep.x < arr.x) == isSourceLeft)
    +			{
    +				var midY = y0 + (ye - y0) / 2;
    +	
    +				result.push(dep);
    +				result.push(new mxPoint(dep.x, midY));
    +				result.push(new mxPoint(arr.x, midY));
    +				result.push(arr);
    +			}
    +			else
    +			{
    +				result.push(dep);
    +				result.push(arr);
    +			}
    +		}
    +	 },
    +
    +	 /**
    +	 * Function: Loop
    +	 * 
    +	 * Implements a self-reference, aka. loop.
    +	 */
    +	Loop: function (state, source, target, points, result)
    +	{
    +		if (source != null)
    +		{
    +			var view = state.view;
    +			var graph = view.graph;
    +			var pt = (points != null && points.length > 0) ? points[0] : null;
    +
    +			if (pt != null)
    +			{
    +				pt = view.transformControlPoint(state, pt);
    +					
    +				if (mxUtils.contains(source, pt.x, pt.y))
    +				{
    +					pt = null;
    +				}
    +			}
    +			
    +			var x = 0;
    +			var dx = 0;
    +			var y = 0;
    +			var dy = 0;
    +			
    +		 	var seg = mxUtils.getValue(state.style, mxConstants.STYLE_SEGMENT,
    +		 		graph.gridSize) * view.scale;
    +			var dir = mxUtils.getValue(state.style, mxConstants.STYLE_DIRECTION,
    +				mxConstants.DIRECTION_WEST);
    +			
    +			if (dir == mxConstants.DIRECTION_NORTH ||
    +				dir == mxConstants.DIRECTION_SOUTH)
    +			{
    +				x = view.getRoutingCenterX(source);
    +				dx = seg;
    +			}
    +			else
    +			{
    +				y = view.getRoutingCenterY(source);
    +				dy = seg;
    +			}
    +			
    +			if (pt == null ||
    +				pt.x < source.x ||
    +				pt.x > source.x + source.width)
    +			{
    +				if (pt != null)
    +				{
    +					x = pt.x;
    +					dy = Math.max(Math.abs(y - pt.y), dy);
    +				}
    +				else
    +				{
    +					if (dir == mxConstants.DIRECTION_NORTH)
    +					{
    +						y = source.y - 2 * dx;
    +					}
    +					else if (dir == mxConstants.DIRECTION_SOUTH)
    +					{
    +						y = source.y + source.height + 2 * dx;
    +					}
    +					else if (dir == mxConstants.DIRECTION_EAST)
    +					{
    +						x = source.x - 2 * dy;
    +					}
    +					else
    +					{
    +						x = source.x + source.width + 2 * dy;
    +					}
    +				}
    +			}
    +			else if (pt != null)
    +			{
    +				x = view.getRoutingCenterX(source);
    +				dx = Math.max(Math.abs(x - pt.x), dy);
    +				y = pt.y;
    +				dy = 0;
    +			}
    +			
    +			result.push(new mxPoint(x - dx, y - dy));
    +			result.push(new mxPoint(x + dx, y + dy));
    +		}
    +	},
    +	
    +	/**
    +	 * Function: ElbowConnector
    +	 * 
    +	 * Uses either <SideToSide> or <TopToBottom> depending on the horizontal
    +	 * flag in the cell style. <SideToSide> is used if horizontal is true or
    +	 * unspecified. See <EntityRelation> for a description of the
    +	 * parameters.
    +	 */
    +	ElbowConnector: function (state, source, target, points, result)
    +	{
    +		var pt = (points != null && points.length > 0) ? points[0] : null;
    +
    +		var vertical = false;
    +		var horizontal = false;
    +		
    +		if (source != null && target != null)
    +		{
    +			if (pt != null)
    +			{
    +				var left = Math.min(source.x, target.x);
    +				var right = Math.max(source.x + source.width,
    +					target.x + target.width);
    +	
    +				var top = Math.min(source.y, target.y);
    +				var bottom = Math.max(source.y + source.height,
    +					target.y + target.height);
    +
    +				pt = state.view.transformControlPoint(state, pt);
    +					
    +				vertical = pt.y < top || pt.y > bottom;
    +				horizontal = pt.x < left || pt.x > right;
    +			}
    +			else
    +			{
    +				var left = Math.max(source.x, target.x);
    +				var right = Math.min(source.x + source.width,
    +					target.x + target.width);
    +					
    +				vertical = left == right;
    +				
    +				if (!vertical)
    +				{
    +					var top = Math.max(source.y, target.y);
    +					var bottom = Math.min(source.y + source.height,
    +						target.y + target.height);
    +						
    +					horizontal = top == bottom;
    +				}
    +			}
    +		}
    +
    +		if (!horizontal && (vertical ||
    +			state.style[mxConstants.STYLE_ELBOW] == mxConstants.ELBOW_VERTICAL))
    +		{
    +			mxEdgeStyle.TopToBottom(state, source, target, points, result);
    +		}
    +		else
    +		{
    +			mxEdgeStyle.SideToSide(state, source, target, points, result);
    +		}
    +	},
    +
    +	/**
    +	 * Function: SideToSide
    +	 * 
    +	 * Implements a vertical elbow edge. See <EntityRelation> for a description
    +	 * of the parameters.
    +	 */
    +	SideToSide: function (state, source, target, points, result)
    +	{
    +		var view = state.view;
    +		var pt = (points != null && points.length > 0) ? points[0] : null;
    +		var pts = state.absolutePoints;
    +		var p0 = pts[0];
    +		var pe = pts[pts.length-1];
    +		
    +		if (pt != null)
    +		{
    +			pt = view.transformControlPoint(state, pt);
    +		}
    +		
    +		if (p0 != null)
    +		{
    +			source = new mxCellState();
    +			source.x = p0.x;
    +			source.y = p0.y;
    +		}
    +		
    +		if (pe != null)
    +		{
    +			target = new mxCellState();
    +			target.x = pe.x;
    +			target.y = pe.y;
    +		}
    +		
    +		if (source != null && target != null)
    +		{
    +			var l = Math.max(source.x, target.x);
    +			var r = Math.min(source.x + source.width,
    +							 target.x + target.width);
    +	
    +			var x = (pt != null) ? pt.x : r + (l - r) / 2;
    +	
    +			var y1 = view.getRoutingCenterY(source);
    +			var y2 = view.getRoutingCenterY(target);
    +	
    +			if (pt != null)
    +			{
    +				if (p0 != null &&
    +					pt.y >= source.y &&
    +					pt.y <= source.y + source.height)
    +				{
    +					y1 = pt.y;
    +				}
    +				
    +				if (pe != null &&
    +					pt.y >= target.y &&
    +					pt.y <= target.y + target.height)
    +				{
    +					y2 = pt.y;
    +				}
    +			}
    +			
    +			if (!mxUtils.contains(target, x, y1) &&
    +				!mxUtils.contains(source, x, y1))
    +			{
    +				result.push(new mxPoint(x,  y1));
    +			}
    +	
    +			if (!mxUtils.contains(target, x, y2) &&
    +				!mxUtils.contains(source, x, y2))
    +			{
    +				result.push(new mxPoint(x, y2));
    +			}
    +	
    +			if (result.length == 1)
    +			{
    +				if (pt != null)
    +				{
    +					if (!mxUtils.contains(target, x, pt.y) &&
    +						!mxUtils.contains(source, x, pt.y))
    +					{
    +						result.push(new mxPoint(x, pt.y));
    +					}
    +				}
    +				else
    +				{	
    +					var t = Math.max(source.y, target.y);
    +					var b = Math.min(source.y + source.height,
    +							 target.y + target.height);
    +						 
    +					result.push(new mxPoint(x, t + (b - t) / 2));
    +				}
    +			}
    +		}
    +	},
    +
    +	/**
    +	 * Function: TopToBottom
    +	 * 
    +	 * Implements a horizontal elbow edge. See <EntityRelation> for a
    +	 * description of the parameters.
    +	 */
    +	TopToBottom: function(state, source, target, points, result)
    +	{
    +		var view = state.view;
    +		var pt = (points != null && points.length > 0) ? points[0] : null;
    +		var pts = state.absolutePoints;
    +		var p0 = pts[0];
    +		var pe = pts[pts.length-1];
    +		
    +		if (pt != null)
    +		{
    +			pt = view.transformControlPoint(state, pt);
    +		}
    +		
    +		if (p0 != null)
    +		{
    +			source = new mxCellState();
    +			source.x = p0.x;
    +			source.y = p0.y;
    +		}
    +		
    +		if (pe != null)
    +		{
    +			target = new mxCellState();
    +			target.x = pe.x;
    +			target.y = pe.y;
    +		}
    +
    +		if (source != null && target != null)
    +		{
    +			var t = Math.max(source.y, target.y);
    +			var b = Math.min(source.y + source.height,
    +							 target.y + target.height);
    +	
    +			var x = view.getRoutingCenterX(source);
    +			
    +			if (pt != null &&
    +				pt.x >= source.x &&
    +				pt.x <= source.x + source.width)
    +			{
    +				x = pt.x;
    +			}
    +			
    +			var y = (pt != null) ? pt.y : b + (t - b) / 2;
    +			
    +			if (!mxUtils.contains(target, x, y) &&
    +				!mxUtils.contains(source, x, y))
    +			{
    +				result.push(new mxPoint(x, y));						
    +			}
    +			
    +			if (pt != null &&
    +				pt.x >= target.x &&
    +				pt.x <= target.x + target.width)
    +			{
    +				x = pt.x;
    +			}
    +			else
    +			{
    +				x = view.getRoutingCenterX(target);
    +			}
    +			
    +			if (!mxUtils.contains(target, x, y) &&
    +				!mxUtils.contains(source, x, y))
    +			{
    +				result.push(new mxPoint(x, y));						
    +			}
    +			
    +			if (result.length == 1)
    +			{
    +				if (pt != null && result.length == 1)
    +				{
    +					if (!mxUtils.contains(target, pt.x, y) &&
    +						!mxUtils.contains(source, pt.x, y))
    +					{
    +						result.push(new mxPoint(pt.x, y));
    +					}
    +				}
    +				else
    +				{
    +					var l = Math.max(source.x, target.x);
    +					var r = Math.min(source.x + source.width,
    +							 target.x + target.width);
    +						 
    +					result.push(new mxPoint(l + (r - l) / 2, y));
    +				}
    +			}
    +		}
    +	},
    +
    +	/**
    +	 * Function: SegmentConnector
    +	 * 
    +	 * Implements an orthogonal edge style. Use <mxEdgeSegmentHandler>
    +	 * as an interactive handler for this style.
    +	 */
    +	SegmentConnector: function(state, source, target, hints, result)
    +	{
    +		// Creates array of all way- and terminalpoints
    +		var pts = state.absolutePoints;
    +		var horizontal = true;
    +		var hint = null;
    +		
    +		// Adds the first point
    +		var pt = pts[0];
    +		
    +		if (pt == null && source != null)
    +		{
    +			pt = new mxPoint(state.view.getRoutingCenterX(source), state.view.getRoutingCenterY(source));
    +		}
    +		else if (pt != null)
    +		{
    +			pt = pt.clone();
    +		}
    +
    +		var lastInx = pts.length - 1;
    +		
    +		// Adds the waypoints
    +		if (hints != null && hints.length > 0)
    +		{
    +			hint = state.view.transformControlPoint(state, hints[0]);
    +
    +			var currentTerm = source;
    +			var currentPt = pts[0];
    +			var hozChan = false;
    +			var vertChan = false;
    +			var currentHint = hint;
    +			var hintsLen = hints.length;
    +			
    +			for (var i = 0; i < 2; i++)
    +			{
    +				var fixedVertAlign = currentPt != null && currentPt.x == currentHint.x;
    +				var fixedHozAlign = currentPt != null && currentPt.y == currentHint.y;
    +				var inHozChan = currentTerm != null && (currentHint.y >= currentTerm.y &&
    +						currentHint.y <= currentTerm.y + currentTerm.height);
    +				var inVertChan = currentTerm != null && (currentHint.x >= currentTerm.x &&
    +						currentHint.x <= currentTerm.x + currentTerm.width);
    +				
    +				hozChan = fixedHozAlign || (currentPt == null && inHozChan);
    +				vertChan = fixedVertAlign ||	(currentPt == null && inVertChan);
    +				
    +				if (currentPt != null && (!fixedHozAlign && !fixedVertAlign) && (inHozChan || inVertChan)) 
    +				{
    +					horizontal = inHozChan ? false : true;
    +					break;
    +				}
    +		
    +				if (vertChan || hozChan)
    +				{
    +					horizontal = hozChan;
    +					
    +					if (i == 1)
    +					{
    +						// Work back from target end
    +						horizontal = hints.length % 2 == 0 ? hozChan : vertChan;
    +					}
    +
    +					break;
    +				}
    +				
    +				currentTerm = target;
    +				currentPt = pts[lastInx];
    +				currentHint = state.view.transformControlPoint(state, hints[hintsLen - 1]);
    +			}
    +
    +			if (horizontal && ((pts[0] != null && pts[0].y != hint.y) ||
    +				(pts[0] == null && source != null &&
    +				(hint.y < source.y || hint.y > source.y + source.height))))
    +			{
    +				result.push(new mxPoint(pt.x, hint.y));
    +			}
    +			else if (!horizontal && ((pts[0] != null && pts[0].x != hint.x) ||
    +					(pts[0] == null && source != null &&
    +					(hint.x < source.x || hint.x > source.x + source.width))))
    +			{
    +				result.push(new mxPoint(hint.x, pt.y));
    +			}
    +			
    +			if (horizontal)
    +			{
    +				pt.y = hint.y;
    +			}
    +			else
    +			{
    +				pt.x = hint.x;
    +			}
    +		
    +			for (var i = 0; i < hints.length; i++)
    +			{
    +				horizontal = !horizontal;
    +				hint = state.view.transformControlPoint(state, hints[i]);
    +		
    +//				mxLog.show();
    +//				mxLog.debug('hint', i, hint.x, hint.y);
    +				
    +				if (horizontal)
    +				{
    +					pt.y = hint.y;
    +				}
    +				else
    +				{
    +					pt.x = hint.x;
    +				}
    +		
    +				result.push(pt.clone());
    +			}
    +		}
    +		else
    +		{
    +			hint = pt;
    +			// FIXME: First click in connect preview toggles orientation
    +			horizontal = true;
    +		}
    +
    +		// Adds the last point
    +		pt = pts[lastInx];
    +
    +		if (pt == null && target != null)
    +		{
    +			pt = new mxPoint(state.view.getRoutingCenterX(target), state.view.getRoutingCenterY(target));
    +		}
    +
    +		if (horizontal && ((pts[lastInx] != null && pts[lastInx].y != hint.y) ||
    +			(pts[lastInx] == null && target != null &&
    +			(hint.y < target.y || hint.y > target.y + target.height))))
    +		{
    +			result.push(new mxPoint(pt.x, hint.y));
    +		}
    +		else if (!horizontal && ((pts[lastInx] != null && pts[lastInx].x != hint.x) ||
    +				(pts[lastInx] == null && target != null &&
    +				(hint.x < target.x || hint.x > target.x + target.width))))
    +		{
    +			result.push(new mxPoint(hint.x, pt.y));
    +		}
    +		
    +		// Removes bends inside the source terminal for floating ports
    +		if (pts[0] == null && source != null)
    +		{
    +			while (result.length > 1 && mxUtils.contains(source, result[1].x, result[1].y))
    +			{
    +				result = result.splice(1, 1);
    +			}
    +		}
    +		
    +		// Removes bends inside the target terminal
    +		if (pts[lastInx] == null && target != null)
    +		{
    +			while (result.length > 1 && mxUtils.contains(target, result[result.length - 1].x, result[result.length - 1].y))
    +			{
    +				result = result.splice(result.length - 1, 1);
    +			}
    +		}
    +		
    +	},
    +	
    +	orthBuffer: 10,
    +
    +	dirVectors: [ [ -1, 0 ],
    +			[ 0, -1 ], [ 1, 0 ], [ 0, 1 ], [ -1, 0 ], [ 0, -1 ], [ 1, 0 ] ],
    +
    +	wayPoints1: [ [ 0, 0], [ 0, 0],  [ 0, 0], [ 0, 0], [ 0, 0],  [ 0, 0],
    +	              [ 0, 0],  [ 0, 0], [ 0, 0],  [ 0, 0], [ 0, 0],  [ 0, 0] ],
    +
    +	routePatterns: [
    +		[ [ 513, 2308, 2081, 2562 ], [ 513, 1090, 514, 2184, 2114, 2561 ],
    +			[ 513, 1090, 514, 2564, 2184, 2562 ],
    +			[ 513, 2308, 2561, 1090, 514, 2568, 2308 ] ],
    +	[ [ 514, 1057, 513, 2308, 2081, 2562 ], [ 514, 2184, 2114, 2561 ],
    +			[ 514, 2184, 2562, 1057, 513, 2564, 2184 ],
    +			[ 514, 1057, 513, 2568, 2308, 2561 ] ],
    +	[ [ 1090, 514, 1057, 513, 2308, 2081, 2562 ], [ 2114, 2561 ],
    +			[ 1090, 2562, 1057, 513, 2564, 2184 ],
    +			[ 1090, 514, 1057, 513, 2308, 2561, 2568 ] ],
    +	[ [ 2081, 2562 ], [ 1057, 513, 1090, 514, 2184, 2114, 2561 ],
    +			[ 1057, 513, 1090, 514, 2184, 2562, 2564 ],
    +			[ 1057, 2561, 1090, 514, 2568, 2308 ] ] ],
    +	
    +	inlineRoutePatterns: [
    +			[ null, [ 2114, 2568 ], null, null ],
    +			[ null, [ 514, 2081, 2114, 2568 ] , null, null ],
    +			[ null, [ 2114, 2561 ], null, null ],
    +			[ [ 2081, 2562 ], [ 1057, 2114, 2568 ],
    +					[ 2184, 2562 ],
    +					null ] ],
    +	vertexSeperations: [],
    +
    +	limits: [
    +	       [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
    +	       [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ],
    +
    +	LEFT_MASK: 32,
    +
    +	TOP_MASK: 64,
    +
    +	RIGHT_MASK: 128,
    +
    +	BOTTOM_MASK: 256,
    +
    +	LEFT: 1,
    +
    +	TOP: 2,
    +
    +	RIGHT: 4,
    +
    +	BOTTOM: 8,
    +
    +	// TODO remove magic numbers
    +	SIDE_MASK: 480,
    +	//mxEdgeStyle.LEFT_MASK | mxEdgeStyle.TOP_MASK | mxEdgeStyle.RIGHT_MASK
    +	//| mxEdgeStyle.BOTTOM_MASK,
    +
    +	CENTER_MASK: 512,
    +
    +	SOURCE_MASK: 1024,
    +
    +	TARGET_MASK: 2048,
    +
    +	VERTEX_MASK: 3072,
    +	// mxEdgeStyle.SOURCE_MASK | mxEdgeStyle.TARGET_MASK,
    +
    +	/**
    +	 * Function: OrthConnector
    +	 * 
    +	 * Implements a local orthogonal router between the given
    +	 * cells.
    +	 */
    +	OrthConnector: function(state, source, target, points, result)
    +	{
    +		var graph = state.view.graph;
    +		var sourceEdge = source == null ? false : graph.getModel().isEdge(source.cell);
    +		var targetEdge = target == null ? false : graph.getModel().isEdge(target.cell);
    +
    +		if ((points != null && points.length > 0) || (sourceEdge) || (targetEdge))
    +		{
    +			mxEdgeStyle.SegmentConnector(state, source, target, points, result);
    +			return;
    +		}
    +
    +		var pts = state.absolutePoints;
    +		var p0 = pts[0];
    +		var pe = pts[pts.length-1];
    +
    +		var sourceX = source != null ? source.x : p0.x;
    +		var sourceY = source != null ? source.y : p0.y;
    +		var sourceWidth = source != null ? source.width : 1;
    +		var sourceHeight = source != null ? source.height : 1;
    +		
    +		var targetX = target != null ? target.x : pe.x;
    +		var targetY = target != null ? target.y : pe.y;
    +		var targetWidth = target != null ? target.width : 1;
    +		var targetHeight = target != null ? target.height : 1;
    +		
    +		var scaledOrthBuffer = state.view.scale * mxEdgeStyle.orthBuffer;
    +		// Determine the side(s) of the source and target vertices
    +		// that the edge may connect to
    +		// portConstraint [source, target]
    +		var portConstraint = [mxConstants.DIRECTION_MASK_ALL, mxConstants.DIRECTION_MASK_ALL];
    +		
    +		if (source != null)
    +		{
    +			portConstraint[0] = mxUtils.getPortConstraints(source, state, true, 
    +					mxConstants.DIRECTION_MASK_ALL);
    +		}
    +		
    +		if (target != null)
    +		{
    +			portConstraint[1] = mxUtils.getPortConstraints(target, state, false,
    +				mxConstants.DIRECTION_MASK_ALL);
    +		}
    +										
    +		var dir = [0, 0] ;
    +
    +		// Work out which faces of the vertices present against each other
    +		// in a way that would allow a 3-segment connection if port constraints
    +		// permitted.
    +		// geo -> [source, target] [x, y, width, height]
    +		var geo = [ [sourceX, sourceY, sourceWidth, sourceHeight] ,
    +		            [targetX, targetY, targetWidth, targetHeight] ];
    +
    +		for (var i = 0; i < 2; i++)
    +		{
    +			mxEdgeStyle.limits[i][1] = geo[i][0] - scaledOrthBuffer;
    +			mxEdgeStyle.limits[i][2] = geo[i][1] - scaledOrthBuffer;
    +			mxEdgeStyle.limits[i][4] = geo[i][0] + geo[i][2] + scaledOrthBuffer;
    +			mxEdgeStyle.limits[i][8] = geo[i][1] + geo[i][3] + scaledOrthBuffer;
    +		}
    +		
    +		// Work out which quad the target is in
    +		var sourceCenX = geo[0][0] + geo[0][2] / 2.0;
    +		var sourceCenY = geo[0][1] + geo[0][3] / 2.0;
    +		var targetCenX = geo[1][0] + geo[1][2] / 2.0;
    +		var targetCenY = geo[1][1] + geo[1][3] / 2.0;
    +		
    +		var dx = sourceCenX - targetCenX;
    +		var dy = sourceCenY - targetCenY;
    +
    +		var quad = 0;
    +
    +		if (dx < 0)
    +		{
    +			if (dy < 0)
    +			{
    +				quad = 2;
    +			}
    +			else
    +			{
    +				quad = 1;
    +			}
    +		}
    +		else
    +		{
    +			if (dy <= 0)
    +			{
    +				quad = 3;
    +				
    +				// Special case on x = 0 and negative y
    +				if (dx == 0)
    +				{
    +					quad = 2;
    +				}
    +			}
    +		}
    +
    +		// Check for connection constraints
    +		var currentTerm = null;
    +		
    +		if (source != null)
    +		{
    +			currentTerm = p0;
    +		}
    +
    +		var constraint = [ [0.5, 0.5] , [0.5, 0.5] ];
    +
    +		for (var i = 0; i < 2; i++)
    +		{
    +			if (currentTerm != null)
    +			{
    +				constraint[i][0] = (currentTerm.x - geo[i][0]) / geo[i][2];
    +
    +				if (constraint[i][0] < 0.01)
    +				{
    +					dir[i] = mxConstants.DIRECTION_MASK_WEST;
    +				}
    +				else if (constraint[i][0] > 0.99)
    +				{
    +					dir[i] = mxConstants.DIRECTION_MASK_EAST;
    +				}
    +
    +				constraint[i][1] = (currentTerm.y - geo[i][1]) / geo[i][3];
    +
    +				if (constraint[i][1] < 0.01)
    +				{
    +					dir[i] = mxConstants.DIRECTION_MASK_NORTH;
    +				}
    +				else if (constraint[i][1] > 0.99)
    +				{
    +					dir[i] = mxConstants.DIRECTION_MASK_SOUTH;
    +				}
    +			}
    +
    +			currentTerm = null;
    +			
    +			if (target != null)
    +			{
    +				currentTerm = pe;
    +			}
    +		}
    +
    +		var sourceTopDist = geo[0][1] - (geo[1][1] + geo[1][3]);
    +		var sourceLeftDist = geo[0][0] - (geo[1][0] + geo[1][2]);
    +		var sourceBottomDist = geo[1][1] - (geo[0][1] + geo[0][3]);
    +		var sourceRightDist = geo[1][0] - (geo[0][0] + geo[0][2]);
    +
    +		mxEdgeStyle.vertexSeperations[1] = Math.max(
    +				sourceLeftDist - 2 * scaledOrthBuffer, 0);
    +		mxEdgeStyle.vertexSeperations[2] = Math.max(sourceTopDist - 2 * scaledOrthBuffer,
    +				0);
    +		mxEdgeStyle.vertexSeperations[4] = Math.max(sourceBottomDist - 2
    +				* scaledOrthBuffer, 0);
    +		mxEdgeStyle.vertexSeperations[3] = Math.max(sourceRightDist - 2
    +				* scaledOrthBuffer, 0);
    +				
    +		//==============================================================
    +		// Start of source and target direction determination
    +
    +		// Work through the preferred orientations by relative positioning
    +		// of the vertices and list them in preferred and available order
    +		
    +		var dirPref = [];
    +		var horPref = [];
    +		var vertPref = [];
    +
    +		horPref[0] = (sourceLeftDist >= sourceRightDist) ? mxConstants.DIRECTION_MASK_WEST
    +				: mxConstants.DIRECTION_MASK_EAST;
    +		vertPref[0] = (sourceTopDist >= sourceBottomDist) ? mxConstants.DIRECTION_MASK_NORTH
    +				: mxConstants.DIRECTION_MASK_SOUTH;
    +
    +		horPref[1] = mxUtils.reversePortConstraints(horPref[0]);
    +		vertPref[1] = mxUtils.reversePortConstraints(vertPref[0]);
    +		
    +		var preferredHorizDist = sourceLeftDist >= sourceRightDist ? sourceLeftDist
    +				: sourceRightDist;
    +		var preferredVertDist = sourceTopDist >= sourceBottomDist ? sourceTopDist
    +				: sourceBottomDist;
    +
    +		var prefOrdering = [ [0, 0] , [0, 0] ];
    +		var preferredOrderSet = false;
    +
    +		// If the preferred port isn't available, switch it
    +		for (var i = 0; i < 2; i++)
    +		{
    +			if (dir[i] != 0x0)
    +			{
    +				continue;
    +			}
    +
    +			if ((horPref[i] & portConstraint[i]) == 0)
    +			{
    +				horPref[i] = mxUtils.reversePortConstraints(horPref[i]);
    +			}
    +
    +			if ((vertPref[i] & portConstraint[i]) == 0)
    +			{
    +				vertPref[i] = mxUtils
    +						.reversePortConstraints(vertPref[i]);
    +			}
    +
    +			prefOrdering[i][0] = vertPref[i];
    +			prefOrdering[i][1] = horPref[i];
    +		}
    +
    +		if (preferredVertDist > scaledOrthBuffer * 2
    +				&& preferredHorizDist > scaledOrthBuffer * 2)
    +		{
    +			// Possibility of two segment edge connection
    +			if (((horPref[0] & portConstraint[0]) > 0)
    +					&& ((vertPref[1] & portConstraint[1]) > 0))
    +			{
    +				prefOrdering[0][0] = horPref[0];
    +				prefOrdering[0][1] = vertPref[0];
    +				prefOrdering[1][0] = vertPref[1];
    +				prefOrdering[1][1] = horPref[1];
    +				preferredOrderSet = true;
    +			}
    +			else if (((vertPref[0] & portConstraint[0]) > 0)
    +					&& ((horPref[1] & portConstraint[1]) > 0))
    +			{
    +				prefOrdering[0][0] = vertPref[0];
    +				prefOrdering[0][1] = horPref[0];
    +				prefOrdering[1][0] = horPref[1];
    +				prefOrdering[1][1] = vertPref[1];
    +				preferredOrderSet = true;
    +			}
    +		}
    +		if (preferredVertDist > scaledOrthBuffer * 2 && !preferredOrderSet)
    +		{
    +			prefOrdering[0][0] = vertPref[0];
    +			prefOrdering[0][1] = horPref[0];
    +			prefOrdering[1][0] = vertPref[1];
    +			prefOrdering[1][1] = horPref[1];
    +			preferredOrderSet = true;
    +
    +		}
    +		if (preferredHorizDist > scaledOrthBuffer * 2 && !preferredOrderSet)
    +		{
    +			prefOrdering[0][0] = horPref[0];
    +			prefOrdering[0][1] = vertPref[0];
    +			prefOrdering[1][0] = horPref[1];
    +			prefOrdering[1][1] = vertPref[1];
    +			preferredOrderSet = true;
    +		}
    +
    +		// The source and target prefs are now an ordered list of
    +		// the preferred port selections
    +		// It the list can contain gaps, compact it
    +
    +		for (var i = 0; i < 2; i++)
    +		{
    +			if (dir[i] != 0x0)
    +			{
    +				continue;
    +			}
    +
    +			if ((prefOrdering[i][0] & portConstraint[i]) == 0)
    +			{
    +				prefOrdering[i][0] = prefOrdering[i][1];
    +			}
    +
    +			dirPref[i] = prefOrdering[i][0] & portConstraint[i];
    +			dirPref[i] |= (prefOrdering[i][1] & portConstraint[i]) << 8;
    +			dirPref[i] |= (prefOrdering[1 - i][i] & portConstraint[i]) << 16;
    +			dirPref[i] |= (prefOrdering[1 - i][1 - i] & portConstraint[i]) << 24;
    +
    +			if ((dirPref[i] & 0xF) == 0)
    +			{
    +				dirPref[i] = dirPref[i] << 8;
    +			}
    +			if ((dirPref[i] & 0xF00) == 0)
    +			{
    +				dirPref[i] = (dirPref[i] & 0xF) | dirPref[i] >> 8;
    +			}
    +			if ((dirPref[i] & 0xF0000) == 0)
    +			{
    +				dirPref[i] = (dirPref[i] & 0xFFFF)
    +						| ((dirPref[i] & 0xF000000) >> 8);
    +			}
    +
    +			dir[i] = dirPref[i] & 0xF;
    +
    +			if (portConstraint[i] == mxConstants.DIRECTION_MASK_WEST
    +					|| portConstraint[i] == mxConstants.DIRECTION_MASK_NORTH
    +					|| portConstraint[i] == mxConstants.DIRECTION_MASK_EAST
    +					|| portConstraint[i] == mxConstants.DIRECTION_MASK_SOUTH)
    +			{
    +				dir[i] = portConstraint[i];
    +			}
    +		}
    +
    +		//==============================================================
    +		// End of source and target direction determination
    +
    +		var sourceIndex = dir[0] == mxConstants.DIRECTION_MASK_EAST ? 3
    +				: dir[0];
    +		var targetIndex = dir[1] == mxConstants.DIRECTION_MASK_EAST ? 3
    +				: dir[1];
    +
    +		sourceIndex -= quad;
    +		targetIndex -= quad;
    +
    +		if (sourceIndex < 1)
    +		{
    +			sourceIndex += 4;
    +		}
    +		if (targetIndex < 1)
    +		{
    +			targetIndex += 4;
    +		}
    +
    +		var routePattern = mxEdgeStyle.routePatterns[sourceIndex - 1][targetIndex - 1];
    +
    +		mxEdgeStyle.wayPoints1[0][0] = geo[0][0];
    +		mxEdgeStyle.wayPoints1[0][1] = geo[0][1];
    +
    +		switch (dir[0])
    +		{
    +			case mxConstants.DIRECTION_MASK_WEST:
    +				mxEdgeStyle.wayPoints1[0][0] -= scaledOrthBuffer;
    +				mxEdgeStyle.wayPoints1[0][1] += constraint[0][1] * geo[0][3];
    +				break;
    +			case mxConstants.DIRECTION_MASK_SOUTH:
    +				mxEdgeStyle.wayPoints1[0][0] += constraint[0][0] * geo[0][2];
    +				mxEdgeStyle.wayPoints1[0][1] += geo[0][3] + scaledOrthBuffer;
    +				break;
    +			case mxConstants.DIRECTION_MASK_EAST:
    +				mxEdgeStyle.wayPoints1[0][0] += geo[0][2] + scaledOrthBuffer;
    +				mxEdgeStyle.wayPoints1[0][1] += constraint[0][1] * geo[0][3];
    +				break;
    +			case mxConstants.DIRECTION_MASK_NORTH:
    +				mxEdgeStyle.wayPoints1[0][0] += constraint[0][0] * geo[0][2];
    +				mxEdgeStyle.wayPoints1[0][1] -= scaledOrthBuffer;
    +				break;
    +		}
    +
    +		var currentIndex = 0;
    +
    +		// Orientation, 0 horizontal, 1 vertical
    +		var lastOrientation = (dir[0] & (mxConstants.DIRECTION_MASK_EAST | mxConstants.DIRECTION_MASK_WEST)) > 0 ? 0
    +				: 1;
    +		var initialOrientation = lastOrientation;
    +		var currentOrientation = 0;
    +
    +		for (var i = 0; i < routePattern.length; i++)
    +		{
    +			var nextDirection = routePattern[i] & 0xF;
    +
    +			// Rotate the index of this direction by the quad
    +			// to get the real direction
    +			var directionIndex = nextDirection == mxConstants.DIRECTION_MASK_EAST ? 3
    +					: nextDirection;
    +
    +			directionIndex += quad;
    +
    +			if (directionIndex > 4)
    +			{
    +				directionIndex -= 4;
    +			}
    +
    +			var direction = mxEdgeStyle.dirVectors[directionIndex - 1];
    +
    +			currentOrientation = (directionIndex % 2 > 0) ? 0 : 1;
    +			// Only update the current index if the point moved
    +			// in the direction of the current segment move,
    +			// otherwise the same point is moved until there is 
    +			// a segment direction change
    +			if (currentOrientation != lastOrientation)
    +			{
    +				currentIndex++;
    +				// Copy the previous way point into the new one
    +				// We can't base the new position on index - 1
    +				// because sometime elbows turn out not to exist,
    +				// then we'd have to rewind.
    +				mxEdgeStyle.wayPoints1[currentIndex][0] = mxEdgeStyle.wayPoints1[currentIndex - 1][0];
    +				mxEdgeStyle.wayPoints1[currentIndex][1] = mxEdgeStyle.wayPoints1[currentIndex - 1][1];
    +			}
    +
    +			var tar = (routePattern[i] & mxEdgeStyle.TARGET_MASK) > 0;
    +			var sou = (routePattern[i] & mxEdgeStyle.SOURCE_MASK) > 0;
    +			var side = (routePattern[i] & mxEdgeStyle.SIDE_MASK) >> 5;
    +			side = side << quad;
    +
    +			if (side > 0xF)
    +			{
    +				side = side >> 4;
    +			}
    +
    +			var center = (routePattern[i] & mxEdgeStyle.CENTER_MASK) > 0;
    +
    +			if ((sou || tar) && side < 9)
    +			{
    +				var limit = 0;
    +				var souTar = sou ? 0 : 1;
    +
    +				if (center && currentOrientation == 0)
    +				{
    +					limit = geo[souTar][0] + constraint[souTar][0] * geo[souTar][2];
    +				}
    +				else if (center)
    +				{
    +					limit = geo[souTar][1] + constraint[souTar][1] * geo[souTar][3];
    +				}
    +				else
    +				{
    +					limit = mxEdgeStyle.limits[souTar][side];
    +				}
    +				
    +				if (currentOrientation == 0)
    +				{
    +					var lastX = mxEdgeStyle.wayPoints1[currentIndex][0];
    +					var deltaX = (limit - lastX) * direction[0];
    +
    +					if (deltaX > 0)
    +					{
    +						mxEdgeStyle.wayPoints1[currentIndex][0] += direction[0]
    +								* deltaX;
    +					}
    +				}
    +				else
    +				{
    +					var lastY = mxEdgeStyle.wayPoints1[currentIndex][1];
    +					var deltaY = (limit - lastY) * direction[1];
    +
    +					if (deltaY > 0)
    +					{
    +						mxEdgeStyle.wayPoints1[currentIndex][1] += direction[1]
    +								* deltaY;
    +					}
    +				}
    +			}
    +
    +			else if (center)
    +			{
    +				// Which center we're travelling to depend on the current direction
    +				mxEdgeStyle.wayPoints1[currentIndex][0] += direction[0]
    +						* Math.abs(mxEdgeStyle.vertexSeperations[directionIndex] / 2);
    +				mxEdgeStyle.wayPoints1[currentIndex][1] += direction[1]
    +						* Math.abs(mxEdgeStyle.vertexSeperations[directionIndex] / 2);
    +			}
    +
    +			if (currentIndex > 0
    +					&& mxEdgeStyle.wayPoints1[currentIndex][currentOrientation] == mxEdgeStyle.wayPoints1[currentIndex - 1][currentOrientation])
    +			{
    +				currentIndex--;
    +			}
    +			else
    +			{
    +				lastOrientation = currentOrientation;
    +			}
    +		}
    +
    +		for (var i = 0; i <= currentIndex; i++)
    +		{
    +			if (i == currentIndex)
    +			{
    +				// Last point can cause last segment to be in
    +				// same direction as jetty/approach. If so,
    +				// check the number of points is consistent
    +				// with the relative orientation of source and target
    +				// jettys. Same orientation requires an even
    +				// number of turns (points), different requires
    +				// odd.
    +				var targetOrientation = (dir[1] & (mxConstants.DIRECTION_MASK_EAST | mxConstants.DIRECTION_MASK_WEST)) > 0 ? 0
    +						: 1;
    +				var sameOrient = targetOrientation == initialOrientation ? 0 : 1;
    +
    +				// (currentIndex + 1) % 2 is 0 for even number of points,
    +				// 1 for odd
    +				if (sameOrient != (currentIndex + 1) % 2)
    +				{
    +					// The last point isn't required
    +					break;
    +				}
    +			}
    +			
    +			result.push(new mxPoint(mxEdgeStyle.wayPoints1[i][0], mxEdgeStyle.wayPoints1[i][1]));
    +		}
    +	},
    +	
    +	getRoutePattern: function(dir, quad, dx, dy)
    +	{
    +		var sourceIndex = dir[0] == mxConstants.DIRECTION_MASK_EAST ? 3
    +				: dir[0];
    +		var targetIndex = dir[1] == mxConstants.DIRECTION_MASK_EAST ? 3
    +				: dir[1];
    +
    +		sourceIndex -= quad;
    +		targetIndex -= quad;
    +
    +		if (sourceIndex < 1)
    +		{
    +			sourceIndex += 4;
    +		}
    +		if (targetIndex < 1)
    +		{
    +			targetIndex += 4;
    +		}
    +
    +		var result = routePatterns[sourceIndex - 1][targetIndex - 1];
    +
    +		if (dx == 0 || dy == 0)
    +		{
    +			if (inlineRoutePatterns[sourceIndex - 1][targetIndex - 1] != null)
    +			{
    +				result = inlineRoutePatterns[sourceIndex - 1][targetIndex - 1];
    +			}
    +		}
    +
    +		return result;
    +	}
    +};
    \ No newline at end of file
    diff --git a/javascript/src/js/view/mxGraph.js b/javascript/src/js/view/mxGraph.js
    new file mode 100644
    index 000000000..22583bf38
    --- /dev/null
    +++ b/javascript/src/js/view/mxGraph.js
    @@ -0,0 +1,10934 @@
    +/**
    + * $Id: mxGraph.js,v 1.682 2012-05-18 09:36:56 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraph
    + *
    + * Extends <mxEventSource> to implement a graph component for
    + * the browser. This is the main class of the package. To activate
    + * panning and connections use <setPanning> and <setConnectable>.
    + * For rubberband selection you must create a new instance of
    + * <mxRubberband>. The following listeners are added to
    + * <mouseListeners> by default:
    + * 
    + * - <tooltipHandler>: <mxTooltipHandler> that displays tooltips
    + * - <panningHandler>: <mxPanningHandler> for panning and popup menus
    + * - <connectionHandler>: <mxConnectionHandler> for creating connections
    + * - <graphHandler>: <mxGraphHandler> for moving and cloning cells
    + * 
    + * These listeners will be called in the above order if they are enabled.
    + *
    + * Background Images:
    + * 
    + * To display a background image, set the image, image width and
    + * image height using <setBackgroundImage>. If one of the
    + * above values has changed then the <view>'s <mxGraphView.validate>
    + * should be invoked.
    + * 
    + * Cell Images:
    + * 
    + * To use images in cells, a shape must be specified in the default
    + * vertex style (or any named style). Possible shapes are
    + * <mxConstants.SHAPE_IMAGE> and <mxConstants.SHAPE_LABEL>.
    + * The code to change the shape used in the default vertex style,
    + * the following code is used:
    + * 
    + * (code)
    + * var style = graph.getStylesheet().getDefaultVertexStyle();
    + * style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_IMAGE;
    + * (end)
    + * 
    + * For the default vertex style, the image to be displayed can be
    + * specified in a cell's style using the <mxConstants.STYLE_IMAGE>
    + * key and the image URL as a value, for example:
    + * 
    + * (code)
    + * image=http://www.example.com/image.gif
    + * (end)
    + * 
    + * For a named style, the the stylename must be the first element
    + * of the cell style:
    + * 
    + * (code)
    + * stylename;image=http://www.example.com/image.gif
    + * (end)
    + * 
    + * A cell style can have any number of key=value pairs added, divided
    + * by a semicolon as follows:
    + * 
    + * (code)
    + * [stylename;|key=value;]
    + * (end)
    + *
    + * Labels:
    + * 
    + * The cell labels are defined by <getLabel> which uses <convertValueToString>
    + * if <labelsVisible> is true. If a label must be rendered as HTML markup, then
    + * <isHtmlLabel> should return true for the respective cell. If all labels
    + * contain HTML markup, <htmlLabels> can be set to true. NOTE: Enabling HTML
    + * labels carries a possible security risk (see the section on security in
    + * the manual).
    + * 
    + * If wrapping is needed for a label, then <isHtmlLabel> and <isWrapping> must
    + * return true for the cell whose label should be wrapped. See <isWrapping> for
    + * an example.
    + * 
    + * If clipping is needed to keep the rendering of a HTML label inside the
    + * bounds of its vertex, then <isClipping> should return true for the
    + * respective cell.
    + * 
    + * By default, edge labels are movable and vertex labels are fixed. This can be
    + * changed by setting <edgeLabelsMovable> and <vertexLabelsMovable>, or by
    + * overriding <isLabelMovable>.
    + *
    + * In-place Editing:
    + * 
    + * In-place editing is started with a doubleclick or by typing F2.
    + * Programmatically, <edit> is used to check if the cell is editable
    + * (<isCellEditable>) and call <startEditingAtCell>, which invokes
    + * <mxCellEditor.startEditing>. The editor uses the value returned
    + * by <getEditingValue> as the editing value.
    + * 
    + * After in-place editing, <labelChanged> is called, which invokes
    + * <mxGraphModel.setValue>, which in turn calls
    + * <mxGraphModel.valueForCellChanged> via <mxValueChange>.
    + * 
    + * The event that triggers in-place editing is passed through to the
    + * <cellEditor>, which may take special actions depending on the type of the
    + * event or mouse location, and is also passed to <getEditingValue>. The event
    + * is then passed back to the event processing functions which can perform
    + * specific actions based on the trigger event.
    + * 
    + * Tooltips:
    + * 
    + * Tooltips are implemented by <getTooltip>, which calls <getTooltipForCell>
    + * if a cell is under the mousepointer. The default implementation checks if
    + * the cell has a getTooltip function and calls it if it exists. Hence, in order
    + * to provide custom tooltips, the cell must provide a getTooltip function, or 
    + * one of the two above functions must be overridden.
    + * 
    + * Typically, for custom cell tooltips, the latter function is overridden as
    + * follows:
    + * 
    + * (code)
    + * graph.getTooltipForCell = function(cell)
    + * {
    + *   var label = this.convertValueToString(cell);
    + *   return 'Tooltip for '+label;
    + * }
    + * (end)
    + * 
    + * When using a config file, the function is overridden in the mxGraph section
    + * using the following entry:
    + * 
    + * (code)
    + * <add as="getTooltipForCell"><![CDATA[
    + *   function(cell)
    + *   {
    + *     var label = this.convertValueToString(cell);
    + *     return 'Tooltip for '+label;
    + *   }
    + * ]]></add>
    + * (end)
    + * 
    + * "this" refers to the graph in the implementation, so for example to check if 
    + * a cell is an edge, you use this.getModel().isEdge(cell)
    + *
    + * For replacing the default implementation of <getTooltipForCell> (rather than 
    + * replacing the function on a specific instance), the following code should be 
    + * used after loading the JavaScript files, but before creating a new mxGraph 
    + * instance using <mxGraph>:
    + * 
    + * (code)
    + * mxGraph.prototype.getTooltipForCell = function(cell)
    + * {
    + *   var label = this.convertValueToString(cell);
    + *   return 'Tooltip for '+label;
    + * }
    + * (end)
    + * 
    + * Shapes & Styles:
    + * 
    + * The implementation of new shapes is demonstrated in the examples. We'll assume
    + * that we have implemented a custom shape with the name BoxShape which we want
    + * to use for drawing vertices. To use this shape, it must first be registered in
    + * the cell renderer as follows:
    + * 
    + * (code)
    + * graph.cellRenderer.registerShape('box', BoxShape);
    + * (end)
    + * 
    + * The code registers the BoxShape constructor under the name box in the cell
    + * renderer of the graph. The shape can now be referenced using the shape-key in
    + * a style definition. (The cell renderer contains a set of additional shapes,
    + * namely one for each constant with a SHAPE-prefix in <mxConstants>.)
    + *
    + * Styles are a collection of key, value pairs and a stylesheet is a collection
    + * of named styles. The names are referenced by the cellstyle, which is stored
    + * in <mxCell.style> with the following format: [stylename;|key=value;]. The
    + * string is resolved to a collection of key, value pairs, where the keys are
    + * overridden with the values in the string.
    + *
    + * When introducing a new shape, the name under which the shape is registered
    + * must be used in the stylesheet. There are three ways of doing this:
    + * 
    + *   - By changing the default style, so that all vertices will use the new
    + * 		shape
    + *   - By defining a new style, so that only vertices with the respective
    + * 		cellstyle will use the new shape
    + *   - By using shape=box in the cellstyle's optional list of key, value pairs
    + * 		to be overridden
    + *
    + * In the first case, the code to fetch and modify the default style for
    + * vertices is as follows:
    + * 
    + * (code)
    + * var style = graph.getStylesheet().getDefaultVertexStyle();
    + * style[mxConstants.STYLE_SHAPE] = 'box';
    + * (end)
    + * 
    + * The code takes the default vertex style, which is used for all vertices that
    + * do not have a specific cellstyle, and modifies the value for the shape-key
    + * in-place to use the new BoxShape for drawing vertices. This is done by
    + * assigning the box value in the second line, which refers to the name of the
    + * BoxShape in the cell renderer.
    + * 
    + * In the second case, a collection of key, value pairs is created and then
    + * added to the stylesheet under a new name. In order to distinguish the
    + * shapename and the stylename we'll use boxstyle for the stylename:
    + * 
    + * (code)
    + * var style = new Object();
    + * style[mxConstants.STYLE_SHAPE] = 'box';
    + * style[mxConstants.STYLE_STROKECOLOR] = '#000000';
    + * style[mxConstants.STYLE_FONTCOLOR] = '#000000';
    + * graph.getStylesheet().putCellStyle('boxstyle', style);
    + * (end)
    + * 
    + * The code adds a new style with the name boxstyle to the stylesheet. To use
    + * this style with a cell, it must be referenced from the cellstyle as follows:
    + * 
    + * (code)
    + * var vertex = graph.insertVertex(parent, null, 'Hello, World!', 20, 20, 80, 20,
    + * 				'boxstyle');
    + * (end)
    + * 
    + * To summarize, each new shape must be registered in the <mxCellRenderer> with
    + * a unique name. That name is then used as the value of the shape-key in a
    + * default or custom style. If there are multiple custom shapes, then there
    + * should be a separate style for each shape.
    + * 
    + * Inheriting Styles:
    + * 
    + * For fill-, stroke-, gradient- and indicatorColors special keywords can be
    + * used. The inherit keyword for one of these colors will inherit the color
    + * for the same key from the parent cell. The swimlane keyword does the same,
    + * but inherits from the nearest swimlane in the ancestor hierarchy. Finally,
    + * the indicated keyword will use the color of the indicator as the color for
    + * the given key.
    + * 
    + * Scrollbars:
    + * 
    + * The <containers> overflow CSS property defines if scrollbars are used to
    + * display the graph. For values of 'auto' or 'scroll', the scrollbars will
    + * be shown. Note that the <resizeContainer> flag is normally not used
    + * together with scrollbars, as it will resize the container to match the
    + * size of the graph after each change.
    + * 
    + * Multiplicities and Validation:
    + * 
    + * To control the possible connections in mxGraph, <getEdgeValidationError> is
    + * used. The default implementation of the function uses <multiplicities>,
    + * which is an array of <mxMultiplicity>. Using this class allows to establish
    + * simple multiplicities, which are enforced by the graph.
    + * 
    + * The <mxMultiplicity> uses <mxCell.is> to determine for which terminals it
    + * applies. The default implementation of <mxCell.is> works with DOM nodes (XML
    + * nodes) and checks if the given type parameter matches the nodeName of the
    + * node (case insensitive). Optionally, an attributename and value can be
    + * specified which are also checked.
    + * 
    + * <getEdgeValidationError> is called whenever the connectivity of an edge
    + * changes. It returns an empty string or an error message if the edge is
    + * invalid or null if the edge is valid. If the returned string is not empty
    + * then it is displayed as an error message.
    + * 
    + * <mxMultiplicity> allows to specify the multiplicity between a terminal and
    + * its possible neighbors. For example, if any rectangle may only be connected
    + * to, say, a maximum of two circles you can add the following rule to
    + * <multiplicities>:
    + * 
    + * (code)
    + * graph.multiplicities.push(new mxMultiplicity(
    + *   true, 'rectangle', null, null, 0, 2, ['circle'],
    + *   'Only 2 targets allowed',
    + *   'Only shape targets allowed'));
    + * (end)
    + * 
    + * This will display the first error message whenever a rectangle is connected
    + * to more than two circles and the second error message if a rectangle is
    + * connected to anything but a circle.
    + * 
    + * For certain multiplicities, such as a minimum of 1 connection, which cannot
    + * be enforced at cell creation time (unless the cell is created together with
    + * the connection), mxGraph offers <validate> which checks all multiplicities
    + * for all cells and displays the respective error messages in an overlay icon
    + * on the cells.
    + * 
    + * If a cell is collapsed and contains validation errors, a respective warning
    + * icon is attached to the collapsed cell.
    + * 
    + * Auto-Layout:
    + * 
    + * For automatic layout, the <getLayout> hook is provided in <mxLayoutManager>.
    + * It can be overridden to return a layout algorithm for the children of a
    + * given cell.
    + * 
    + * Unconnected edges:
    + * 
    + * The default values for all switches are designed to meet the requirements of
    + * general diagram drawing applications. A very typical set of settings to
    + * avoid edges that are not connected is the following:
    + * 
    + * (code)
    + * graph.setAllowDanglingEdges(false);
    + * graph.setDisconnectOnMove(false);
    + * (end)
    + * 
    + * Setting the <cloneInvalidEdges> switch to true is optional. This switch
    + * controls if edges are inserted after a copy, paste or clone-drag if they are
    + * invalid. For example, edges are invalid if copied or control-dragged without 
    + * having selected the corresponding terminals and allowDanglingEdges is
    + * false, in which case the edges will not be cloned if the switch is false.
    + * 
    + * Output:
    + * 
    + * To produce an XML representation for a diagram, the following code can be
    + * used.
    + * 
    + * (code)
    + * var enc = new mxCodec(mxUtils.createXmlDocument());
    + * var node = enc.encode(graph.getModel());
    + * (end)
    + * 
    + * This will produce an XML node than can be handled using the DOM API or
    + * turned into a string representation using the following code:
    + * 
    + * (code)
    + * var xml = mxUtils.getXml(node);
    + * (end)
    + * 
    + * To obtain a formatted string, mxUtils.getPrettyXml can be used instead.
    + * 
    + * This string can now be stored in a local persistent storage (for example
    + * using Google Gears) or it can be passed to a backend using mxUtils.post as
    + * follows. The url variable is the URL of the Java servlet, PHP page or HTTP
    + * handler, depending on the server.
    + * 
    + * (code)
    + * var xmlString = encodeURIComponent(mxUtils.getXml(node));
    + * mxUtils.post(url, 'xml='+xmlString, function(req)
    + * {
    + *   // Process server response using req of type mxXmlRequest
    + * });
    + * (end)
    + * 
    + * Input:
    + * 
    + * To load an XML representation of a diagram into an existing graph object
    + * mxUtils.load can be used as follows. The url variable is the URL of the Java
    + * servlet, PHP page or HTTP handler that produces the XML string.
    + * 
    + * (code)
    + * var xmlDoc = mxUtils.load(url).getXml();
    + * var node = xmlDoc.documentElement;
    + * var dec = new mxCodec(node.ownerDocument);
    + * dec.decode(node, graph.getModel());
    + * (end)
    + * 
    + * For creating a page that loads the client and a diagram using a single
    + * request please refer to the deployment examples in the backends.
    + * 
    + * Functional dependencies:
    + * 
    + * (see images/callgraph.png)
    + * 
    + * Resources:
    + *
    + * resources/graph - Language resources for mxGraph
    + *
    + * Group: Events
    + * 
    + * Event: mxEvent.ROOT
    + * 
    + * Fires if the root in the model has changed. This event has no properties.
    + * 
    + * Event: mxEvent.ALIGN_CELLS
    + * 
    + * Fires between begin- and endUpdate in <alignCells>. The <code>cells</code>
    + * and <code>align</code> properties contain the respective arguments that were
    + * passed to <alignCells>.
    + *
    + * Event: mxEvent.FLIP_EDGE
    + *
    + * Fires between begin- and endUpdate in <flipEdge>. The <code>edge</code>
    + * property contains the edge passed to <flipEdge>.
    + * 
    + * Event: mxEvent.ORDER_CELLS
    + * 
    + * Fires between begin- and endUpdate in <orderCells>. The <code>cells</code>
    + * and <code>back</code> properties contain the respective arguments that were
    + * passed to <orderCells>.
    + *
    + * Event: mxEvent.CELLS_ORDERED
    + *
    + * Fires between begin- and endUpdate in <cellsOrdered>. The <code>cells</code>
    + * and <code>back</code> arguments contain the respective arguments that were
    + * passed to <cellsOrdered>.
    + * 
    + * Event: mxEvent.GROUP_CELLS
    + * 
    + * Fires between begin- and endUpdate in <groupCells>. The <code>group</code>,
    + * <code>cells</code> and <code>border</code> arguments contain the respective
    + * arguments that were passed to <groupCells>.
    + * 
    + * Event: mxEvent.UNGROUP_CELLS
    + * 
    + * Fires between begin- and endUpdate in <ungroupCells>. The <code>cells</code>
    + * property contains the array of cells that was passed to <ungroupCells>.
    + * 
    + * Event: mxEvent.REMOVE_CELLS_FROM_PARENT
    + * 
    + * Fires between begin- and endUpdate in <removeCellsFromParent>. The
    + * <code>cells</code> property contains the array of cells that was passed to
    + * <removeCellsFromParent>.
    + * 
    + * Event: mxEvent.ADD_CELLS
    + * 
    + * Fires between begin- and endUpdate in <addCells>. The <code>cells</code>,
    + * <code>parent</code>, <code>index</code>, <code>source</code> and
    + * <code>target</code> properties contain the respective arguments that were
    + * passed to <addCells>.
    + * 
    + * Event: mxEvent.CELLS_ADDED
    + * 
    + * Fires between begin- and endUpdate in <cellsAdded>. The <code>cells</code>,
    + * <code>parent</code>, <code>index</code>, <code>source</code>,
    + * <code>target</code> and <code>absolute</code> properties contain the
    + * respective arguments that were passed to <cellsAdded>.
    + * 
    + * Event: mxEvent.REMOVE_CELLS
    + * 
    + * Fires between begin- and endUpdate in <removeCells>. The <code>cells</code>
    + * and <code>includeEdges</code> arguments contain the respective arguments
    + * that were passed to <removeCells>.
    + * 
    + * Event: mxEvent.CELLS_REMOVED
    + * 
    + * Fires between begin- and endUpdate in <cellsRemoved>. The <code>cells</code>
    + * argument contains the array of cells that was removed.
    + * 
    + * Event: mxEvent.SPLIT_EDGE
    + * 
    + * Fires between begin- and endUpdate in <splitEdge>. The <code>edge</code>
    + * property contains the edge to be splitted, the <code>cells</code>,
    + * <code>newEdge</code>, <code>dx</code> and <code>dy</code> properties contain
    + * the respective arguments that were passed to <splitEdge>.
    + * 
    + * Event: mxEvent.TOGGLE_CELLS
    + * 
    + * Fires between begin- and endUpdate in <toggleCells>. The <code>show</code>,
    + * <code>cells</code> and <code>includeEdges</code> properties contain the
    + * respective arguments that were passed to <toggleCells>.
    + * 
    + * Event: mxEvent.FOLD_CELLS
    + * 
    + * Fires between begin- and endUpdate in <foldCells>. The
    + * <code>collapse</code>, <code>cells</code> and <code>recurse</code>
    + * properties contain the respective arguments that were passed to <foldCells>.
    + * 
    + * Event: mxEvent.CELLS_FOLDED
    + * 
    + * Fires between begin- and endUpdate in cellsFolded. The
    + * <code>collapse</code>, <code>cells</code> and <code>recurse</code>
    + * properties contain the respective arguments that were passed to
    + * <cellsFolded>.
    + * 
    + * Event: mxEvent.UPDATE_CELL_SIZE
    + * 
    + * Fires between begin- and endUpdate in <updateCellSize>. The
    + * <code>cell</code> and <code>ignoreChildren</code> properties contain the
    + * respective arguments that were passed to <updateCellSize>.
    + * 
    + * Event: mxEvent.RESIZE_CELLS
    + * 
    + * Fires between begin- and endUpdate in <resizeCells>. The <code>cells</code>
    + * and <code>bounds</code> properties contain the respective arguments that
    + * were passed to <resizeCells>.
    + * 
    + * Event: mxEvent.CELLS_RESIZED
    + * 
    + * Fires between begin- and endUpdate in <cellsResized>. The <code>cells</code>
    + * and <code>bounds</code> properties contain the respective arguments that
    + * were passed to <cellsResized>.
    + * 
    + * Event: mxEvent.MOVE_CELLS
    + * 
    + * Fires between begin- and endUpdate in <moveCells>. The <code>cells</code>,
    + * <code>dx</code>, <code>dy</code>, <code>clone</code>, <code>target</code>
    + * and <code>event</code> properties contain the respective arguments that
    + * were passed to <moveCells>.
    + * 
    + * Event: mxEvent.CELLS_MOVED
    + * 
    + * Fires between begin- and endUpdate in <cellsMoved>. The <code>cells</code>,
    + * <code>dx</code>, <code>dy</code> and <code>disconnect</code> properties
    + * contain the respective arguments that were passed to <cellsMoved>.
    + * 
    + * Event: mxEvent.CONNECT_CELL
    + * 
    + * Fires between begin- and endUpdate in <connectCell>. The <code>edge</code>,
    + * <code>terminal</code> and <code>source</code> properties contain the
    + * respective arguments that were passed to <connectCell>.
    + * 
    + * Event: mxEvent.CELL_CONNECTED
    + * 
    + * Fires between begin- and endUpdate in <cellConnected>. The
    + * <code>edge</code>, <code>terminal</code> and <code>source</code> properties
    + * contain the respective arguments that were passed to <cellConnected>.
    + * 
    + * Event: mxEvent.REFRESH
    + * 
    + * Fires after <refresh> was executed. This event has no properties.
    + *
    + * Event: mxEvent.CLICK
    + * 
    + * Fires in <click> after a click event. The <code>event</code> property
    + * contains the original mouse event and <code>cell</code> property contains
    + * the cell under the mouse or null if the background was clicked.
    + *
    + * To handle a click event, use the following code:
    + * 
    + * (code)
    + * graph.addListener(mxEvent.CLICK, function(sender, evt)
    + * {
    + *   var e = evt.getProperty('event'); // mouse event
    + *   var cell = evt.getProperty('cell'); // cell may be null
    + *   
    + *   if (!evt.isConsumed())
    + *   {
    + *     if (cell != null)
    + *     {
    + *       // Do something useful with cell and consume the event
    + *       evt.consume();
    + *     }
    + *   }
    + * });
    + * (end)
    + * 
    + * Event: mxEvent.DOUBLE_CLICK
    + *
    + * Fires in <dblClick> after a double click. The <code>event</code> property
    + * contains the original mouse event and the <code>cell</code> property
    + * contains the cell under the mouse or null if the background was clicked.
    + *
    + * Event: mxEvent.SIZE
    + *
    + * Fires after <sizeDidChange> was executed. The <code>bounds</code> property
    + * contains the new graph bounds.
    + *
    + * Event: mxEvent.START_EDITING
    + *
    + * Fires before the in-place editor starts in <startEditingAtCell>. The
    + * <code>cell</code> property contains the cell that is being edited and the
    + * <code>event</code> property contains the optional event argument that was
    + * passed to <startEditingAtCell>.
    + *
    + * Event: mxEvent.LABEL_CHANGED
    + *
    + * Fires between begin- and endUpdate in <cellLabelChanged>. The
    + * <code>cell</code> property contains the cell, the <code>value</code>
    + * property contains the new value for the cell and the optional
    + * <code>event</code> property contains the mouse event that started the edit.
    + * 
    + * Event: mxEvent.ADD_OVERLAY
    + *
    + * Fires after an overlay is added in <addCellOverlay>. The <code>cell</code>
    + * property contains the cell and the <code>overlay</code> property contains
    + * the <mxCellOverlay> that was added.
    + *
    + * Event: mxEvent.REMOVE_OVERLAY
    + *
    + * Fires after an overlay is removed in <removeCellOverlay> and
    + * <removeCellOverlays>. The <code>cell</code> property contains the cell and
    + * the <code>overlay</code> property contains the <mxCellOverlay> that was
    + * removed.
    + * 
    + * Constructor: mxGraph
    + * 
    + * Constructs a new mxGraph in the specified container. Model is an optional
    + * mxGraphModel. If no model is provided, a new mxGraphModel instance is 
    + * used as the model. The container must have a valid owner document prior 
    + * to calling this function in Internet Explorer. RenderHint is a string to
    + * affect the display performance and rendering in IE, but not in SVG-based 
    + * browsers. The parameter is mapped to <dialect>, which may 
    + * be one of <mxConstants.DIALECT_SVG> for SVG-based browsers, 
    + * <mxConstants.DIALECT_STRICTHTML> for fastest display mode,
    + * <mxConstants.DIALECT_PREFERHTML> for faster display mode,
    + * <mxConstants.DIALECT_MIXEDHTML> for fast and <mxConstants.DIALECT_VML> 
    + * for exact display mode (slowest). The dialects are defined in mxConstants.
    + * The default values are DIALECT_SVG for SVG-based browsers and
    + * DIALECT_MIXED for IE.
    + *
    + * The possible values for the renderingHint parameter are explained below:
    + * 
    + * fast - The parameter is based on the fact that the display performance is 
    + * highly improved in IE if the VML is not contained within a VML group 
    + * element. The lack of a group element only slightly affects the display while 
    + * panning, but improves the performance by almost a factor of 2, while keeping 
    + * the display sufficiently accurate. This also allows to render certain shapes as HTML 
    + * if the display accuracy is not affected, which is implemented by 
    + * <mxShape.isMixedModeHtml>. This is the default setting and is mapped to
    + * DIALECT_MIXEDHTML.
    + * faster - Same as fast, but more expensive shapes are avoided. This is 
    + * controlled by <mxShape.preferModeHtml>. The default implementation will 
    + * avoid gradients and rounded rectangles, but more significant shapes, such 
    + * as rhombus, ellipse, actor and cylinder will be rendered accurately. This 
    + * setting is mapped to DIALECT_PREFERHTML.
    + * fastest - Almost anything will be rendered in Html. This allows for 
    + * rectangles, labels and images. This setting is mapped to
    + * DIALECT_STRICTHTML.
    + * exact - If accurate panning is required and if the diagram is small (up
    + * to 100 cells), then this value should be used. In this mode, a group is 
    + * created that contains the VML. This allows for accurate panning and is 
    + * mapped to DIALECT_VML.
    + *
    + * Example:
    + * 
    + * To create a graph inside a DOM node with an id of graph:
    + * (code)
    + * var container = document.getElementById('graph');
    + * var graph = new mxGraph(container);
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * container - Optional DOM node that acts as a container for the graph.
    + * If this is null then the container can be initialized later using
    + * <init>.
    + * model - Optional <mxGraphModel> that constitutes the graph data.
    + * renderHint - Optional string that specifies the display accuracy and
    + * performance. Default is mxConstants.DIALECT_MIXEDHTML (for IE).
    + * stylesheet - Optional <mxStylesheet> to be used in the graph.
    + */
    +function mxGraph(container, model, renderHint, stylesheet)
    +{
    +	// Initializes the variable in case the prototype has been
    +	// modified to hold some listeners (which is possible because
    +	// the createHandlers call is executed regardless of the
    +	// arguments passed into the ctor).
    +	this.mouseListeners = null;
    +	
    +	// Converts the renderHint into a dialect
    +	this.renderHint = renderHint;
    +
    +	if (mxClient.IS_SVG)
    +	{
    +		this.dialect = mxConstants.DIALECT_SVG;
    +	}
    +	else if (renderHint == mxConstants.RENDERING_HINT_EXACT && mxClient.IS_VML)
    +	{
    +		this.dialect = mxConstants.DIALECT_VML;
    +	}
    +	else if (renderHint == mxConstants.RENDERING_HINT_FASTEST)
    +	{
    +		this.dialect = mxConstants.DIALECT_STRICTHTML;
    +	}
    +	else if (renderHint == mxConstants.RENDERING_HINT_FASTER)
    +	{
    +		this.dialect = mxConstants.DIALECT_PREFERHTML;
    +	}
    +	else // default for VML
    +	{
    +		this.dialect = mxConstants.DIALECT_MIXEDHTML;
    +	}
    +	
    +	// Initializes the main members that do not require a container
    +	this.model = (model != null) ? model : new mxGraphModel();
    +	this.multiplicities = [];
    +	this.imageBundles = [];
    +	this.cellRenderer = this.createCellRenderer();
    +	this.setSelectionModel(this.createSelectionModel());
    +	this.setStylesheet((stylesheet != null) ? stylesheet : this.createStylesheet());
    +	this.view = this.createGraphView();
    +	
    +	// Adds a graph model listener to update the view
    +	this.graphModelChangeListener = mxUtils.bind(this, function(sender, evt)
    +	{
    +		this.graphModelChanged(evt.getProperty('edit').changes);
    +	});
    +	
    +	this.model.addListener(mxEvent.CHANGE, this.graphModelChangeListener);
    +
    +	// Installs basic event handlers with disabled default settings.
    +	this.createHandlers();
    +	
    +	// Initializes the display if a container was specified
    +	if (container != null)
    +	{
    +		this.init(container);
    +	}
    +	
    +	this.view.revalidate();
    +};
    +
    +/**
    + * Installs the required language resources at class
    + * loading time.
    + */
    +if (mxLoadResources)
    +{
    +	mxResources.add(mxClient.basePath+'/resources/graph');
    +}
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxGraph.prototype = new mxEventSource();
    +mxGraph.prototype.constructor = mxGraph;
    +
    +/**
    + * Variable: EMPTY_ARRAY
    + *
    + * Immutable empty array instance.
    + */
    +mxGraph.prototype.EMPTY_ARRAY = [];
    +
    +/**
    + * Group: Variables
    + */
    +
    +/**
    + * Variable: mouseListeners
    + * 
    + * Holds the mouse event listeners. See <fireMouseEvent>.
    + */
    +mxGraph.prototype.mouseListeners = null;
    +
    +/**
    + * Variable: isMouseDown
    + * 
    + * Holds the state of the mouse button.
    + */
    +mxGraph.prototype.isMouseDown = false;
    +
    +/**
    + * Variable: model
    + * 
    + * Holds the <mxGraphModel> that contains the cells to be displayed.
    + */
    +mxGraph.prototype.model = null;
    +
    +/**
    + * Variable: view
    + * 
    + * Holds the <mxGraphView> that caches the <mxCellStates> for the cells.
    + */
    +mxGraph.prototype.view = null;
    +
    +/**
    + * Variable: stylesheet
    + * 
    + * Holds the <mxStylesheet> that defines the appearance of the cells.
    + * 
    + * 
    + * Example:
    + * 
    + * Use the following code to read a stylesheet into an existing graph.
    + * 
    + * (code)
    + * var req = mxUtils.load('stylesheet.xml');
    + * var root = req.getDocumentElement();
    + * var dec = new mxCodec(root.ownerDocument);
    + * dec.decode(root, graph.stylesheet);
    + * (end)
    + */
    +mxGraph.prototype.stylesheet = null;
    +	
    +/**
    + * Variable: selectionModel
    + * 
    + * Holds the <mxGraphSelectionModel> that models the current selection.
    + */
    +mxGraph.prototype.selectionModel = null;
    +
    +/**
    + * Variable: cellEditor
    + * 
    + * Holds the <mxCellEditor> that is used as the in-place editing.
    + */
    +mxGraph.prototype.cellEditor = null;
    +
    +/**
    + * Variable: cellRenderer
    + * 
    + * Holds the <mxCellRenderer> for rendering the cells in the graph.
    + */
    +mxGraph.prototype.cellRenderer = null;
    +
    +/**
    + * Variable: multiplicities
    + * 
    + * An array of <mxMultiplicities> describing the allowed
    + * connections in a graph.
    + */
    +mxGraph.prototype.multiplicities = null;
    +
    +/**
    + * Variable: renderHint
    + * 
    + * RenderHint as it was passed to the constructor.
    + */
    +mxGraph.prototype.renderHint = null;
    +
    +/**
    + * Variable: dialect
    + * 
    + * Dialect to be used for drawing the graph. Possible values are all
    + * constants in <mxConstants> with a DIALECT-prefix.
    + */
    +mxGraph.prototype.dialect = null;
    +
    +/**
    + * Variable: gridSize
    + * 
    + * Specifies the grid size. Default is 10.
    + */
    +mxGraph.prototype.gridSize = 10;
    +	
    +/**
    + * Variable: gridEnabled
    + * 
    + * Specifies if the grid is enabled. This is used in <snap>. Default is
    + * true.
    + */
    +mxGraph.prototype.gridEnabled = true;
    +
    +/**
    + * Variable: portsEnabled
    + * 
    + * Specifies if ports are enabled. This is used in <cellConnected> to update
    + * the respective style. Default is true.
    + */
    +mxGraph.prototype.portsEnabled = true;
    +
    +/**
    + * Variable: doubleTapEnabled
    + * 
    + * Specifies if double taps on touch-based devices should be handled. Default
    + * is true.
    + */
    +mxGraph.prototype.doubleTapEnabled = true;
    +
    +/**
    + * Variable: doubleTapTimeout
    + * 
    + * Specifies the timeout for double taps. Default is 700 ms.
    + */
    +mxGraph.prototype.doubleTapTimeout = 700;
    +
    +/**
    + * Variable: doubleTapTolerance
    + * 
    + * Specifies the tolerance for double taps. Default is 25 pixels.
    + */
    +mxGraph.prototype.doubleTapTolerance = 25;
    +
    +/**
    + * Variable: lastTouchX
    + * 
    + * Holds the x-coordinate of the last touch event for double tap detection.
    + */
    +mxGraph.prototype.lastTouchY = 0;
    +
    +/**
    + * Variable: lastTouchX
    + * 
    + * Holds the y-coordinate of the last touch event for double tap detection.
    + */
    +mxGraph.prototype.lastTouchY = 0;
    +
    +/**
    + * Variable: lastTouchTime
    + * 
    + * Holds the time of the last touch event for double click detection.
    + */
    +mxGraph.prototype.lastTouchTime = 0;
    +
    +/**
    + * Variable: gestureEnabled
    + * 
    + * Specifies if the handleGesture method should be invoked. Default is true. This
    + * is an experimental feature for touch-based devices.
    + */
    +mxGraph.prototype.gestureEnabled = true;
    +
    +/**
    + * Variable: tolerance
    + * 
    + * Tolerance for a move to be handled as a single click.
    + * Default is 4 pixels.
    + */
    +mxGraph.prototype.tolerance = 4;
    +
    +/**
    + * Variable: defaultOverlap
    + * 
    + * Value returned by <getOverlap> if <isAllowOverlapParent> returns
    + * true for the given cell. <getOverlap> is used in <constrainChild> if
    + * <isConstrainChild> returns true. The value specifies the
    + * portion of the child which is allowed to overlap the parent.
    + */
    +mxGraph.prototype.defaultOverlap = 0.5;
    +
    +/**
    + * Variable: defaultParent
    + * 
    + * Specifies the default parent to be used to insert new cells.
    + * This is used in <getDefaultParent>. Default is null.
    + */
    +mxGraph.prototype.defaultParent = null;
    +
    +/**
    + * Variable: alternateEdgeStyle
    + * 
    + * Specifies the alternate edge style to be used if the main control point
    + * on an edge is being doubleclicked. Default is null.
    + */
    +mxGraph.prototype.alternateEdgeStyle = null;
    +
    +/**
    + * Variable: backgroundImage
    + *
    + * Specifies the <mxImage> to be returned by <getBackgroundImage>. Default
    + * is null.
    + * 
    + * Example:
    + *
    + * (code)
    + * var img = new mxImage('http://www.example.com/maps/examplemap.jpg', 1024, 768);
    + * graph.setBackgroundImage(img);
    + * graph.view.validate();
    + * (end)
    + */
    +mxGraph.prototype.backgroundImage = null;
    +
    +/**
    + * Variable: pageVisible
    + *
    + * Specifies if the background page should be visible. Default is false.
    + * Not yet implemented.
    + */
    +mxGraph.prototype.pageVisible = false;
    +
    +/**
    + * Variable: pageBreaksVisible
    + * 
    + * Specifies if a dashed line should be drawn between multiple pages. Default
    + * is false. If you change this value while a graph is being displayed then you
    + * should call <sizeDidChange> to force an update of the display.
    + */
    +mxGraph.prototype.pageBreaksVisible = false;
    +
    +/**
    + * Variable: pageBreakColor
    + * 
    + * Specifies the color for page breaks. Default is 'gray'.
    + */
    +mxGraph.prototype.pageBreakColor = 'gray';
    +
    +/**
    + * Variable: pageBreakDashed
    + * 
    + * Specifies the page breaks should be dashed. Default is true.
    + */
    +mxGraph.prototype.pageBreakDashed = true;
    +
    +/**
    + * Variable: minPageBreakDist
    + * 
    + * Specifies the minimum distance for page breaks to be visible. Default is
    + * 20 (in pixels).
    + */
    +mxGraph.prototype.minPageBreakDist = 20;
    +
    +/**
    + * Variable: preferPageSize
    + * 
    + * Specifies if the graph size should be rounded to the next page number in
    + * <sizeDidChange>. This is only used if the graph container has scrollbars.
    + * Default is false.
    + */
    +mxGraph.prototype.preferPageSize = false;
    +
    +/**
    + * Variable: pageFormat
    + *
    + * Specifies the page format for the background page. Default is
    + * <mxConstants.PAGE_FORMAT_A4_PORTRAIT>. This is used as the default in
    + * <mxPrintPreview> and for painting the background page if <pageVisible> is
    + * true and the pagebreaks if <pageBreaksVisible> is true.
    + */
    +mxGraph.prototype.pageFormat = mxConstants.PAGE_FORMAT_A4_PORTRAIT;
    +
    +/**
    + * Variable: pageScale
    + *
    + * Specifies the scale of the background page. Default is 1.5.
    + * Not yet implemented.
    + */
    +mxGraph.prototype.pageScale = 1.5;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies the return value for <isEnabled>. Default is true.
    + */
    +mxGraph.prototype.enabled = true;
    +
    +/**
    + * Variable: escapeEnabled
    + * 
    + * Specifies if <mxKeyHandler> should invoke <escape> when the escape key
    + * is pressed. Default is true.
    + */
    +mxGraph.prototype.escapeEnabled = true;
    +
    +/**
    + * Variable: invokesStopCellEditing
    + * 
    + * If true, when editing is to be stopped by way of selection changing,
    + * data in diagram changing or other means stopCellEditing is invoked, and
    + * changes are saved. This is implemented in a focus handler in
    + * <mxCellEditor>. Default is true.
    + */
    +mxGraph.prototype.invokesStopCellEditing = true;
    +
    +/**
    + * Variable: enterStopsCellEditing
    + * 
    + * If true, pressing the enter key without pressing control or shift will stop
    + * editing and accept the new value. This is used in <mxCellEditor> to stop
    + * cell editing. Note: You can always use F2 and escape to stop editing.
    + * Default is false.
    + */
    +mxGraph.prototype.enterStopsCellEditing = false;
    +
    +/**
    + * Variable: useScrollbarsForPanning
    + * 
    + * Specifies if scrollbars should be used for panning in <panGraph> if
    + * any scrollbars are available. If scrollbars are enabled in CSS, but no
    + * scrollbars appear because the graph is smaller than the container size,
    + * then no panning occurs if this is true. Default is true.
    + */
    +mxGraph.prototype.useScrollbarsForPanning = true;
    +
    +/**
    + * Variable: exportEnabled
    + * 
    + * Specifies the return value for <canExportCell>. Default is true.
    + */
    +mxGraph.prototype.exportEnabled = true;
    +
    +/**
    + * Variable: importEnabled
    + * 
    + * Specifies the return value for <canImportCell>. Default is true.
    + */
    +mxGraph.prototype.importEnabled = true;
    +
    +/**
    + * Variable: cellsLocked
    + * 
    + * Specifies the return value for <isCellLocked>. Default is false.
    + */
    +mxGraph.prototype.cellsLocked = false;
    +
    +/**
    + * Variable: cellsCloneable
    + * 
    + * Specifies the return value for <isCellCloneable>. Default is true.
    + */
    +mxGraph.prototype.cellsCloneable = true;
    +
    +/**
    + * Variable: foldingEnabled
    + * 
    + * Specifies if folding (collapse and expand via an image icon in the graph
    + * should be enabled). Default is true.
    + */
    +mxGraph.prototype.foldingEnabled = true;
    +
    +/**
    + * Variable: cellsEditable
    + * 
    + * Specifies the return value for <isCellEditable>. Default is true.
    + */
    +mxGraph.prototype.cellsEditable = true;
    +		
    +/**
    + * Variable: cellsDeletable
    + * 
    + * Specifies the return value for <isCellDeletable>. Default is true.
    + */
    +mxGraph.prototype.cellsDeletable = true;
    +
    +/**
    + * Variable: cellsMovable
    + * 
    + * Specifies the return value for <isCellMovable>. Default is true.
    + */
    +mxGraph.prototype.cellsMovable = true;
    +	
    +/**
    + * Variable: edgeLabelsMovable
    + * 
    + * Specifies the return value for edges in <isLabelMovable>. Default is true.
    + */
    +mxGraph.prototype.edgeLabelsMovable = true;
    +	
    +/**
    + * Variable: vertexLabelsMovable
    + * 
    + * Specifies the return value for vertices in <isLabelMovable>. Default is false.
    + */
    +mxGraph.prototype.vertexLabelsMovable = false;
    +
    +/**
    + * Variable: dropEnabled
    + * 
    + * Specifies the return value for <isDropEnabled>. Default is false.
    + */
    +mxGraph.prototype.dropEnabled = false;
    +
    +/**
    + * Variable: splitEnabled
    + * 
    + * Specifies if dropping onto edges should be enabled. Default is true.
    + */
    +mxGraph.prototype.splitEnabled = true;
    +
    +/**
    + * Variable: cellsResizable
    + * 
    + * Specifies the return value for <isCellResizable>. Default is true.
    + */
    +mxGraph.prototype.cellsResizable = true;
    +
    +/**
    + * Variable: cellsBendable
    + * 
    + * Specifies the return value for <isCellsBendable>. Default is true.
    + */
    +mxGraph.prototype.cellsBendable = true;
    +
    +/**
    + * Variable: cellsSelectable
    + * 
    + * Specifies the return value for <isCellSelectable>. Default is true.
    + */
    +mxGraph.prototype.cellsSelectable = true;
    +
    +/**
    + * Variable: cellsDisconnectable
    + * 
    + * Specifies the return value for <isCellDisconntable>. Default is true.
    + */
    +mxGraph.prototype.cellsDisconnectable = true;
    +
    +/**
    + * Variable: autoSizeCells
    + * 
    + * Specifies if the graph should automatically update the cell size after an
    + * edit. This is used in <isAutoSizeCell>. Default is false.
    + */
    +mxGraph.prototype.autoSizeCells = false;
    +
    +/**
    + * Variable: autoScroll
    + * 
    + * Specifies if the graph should automatically scroll if the mouse goes near
    + * the container edge while dragging. This is only taken into account if the
    + * container has scrollbars. Default is true.
    + * 
    + * If you need this to work without scrollbars then set <ignoreScrollbars> to
    + * true. 
    + */
    +mxGraph.prototype.autoScroll = true;
    +
    +/**
    + * Variable: allowAutoPanning
    + * 
    + * Specifies if panning via <panGraph> should be allowed to implement autoscroll
    + * if no scrollbars are available in <scrollPointToVisible>. Default is false.
    + */
    +mxGraph.prototype.allowAutoPanning = false;
    +
    +/**
    + * Variable: ignoreScrollbars
    + * 
    + * Specifies if the graph should automatically scroll regardless of the
    + * scrollbars. 
    + */
    +mxGraph.prototype.ignoreScrollbars = false;
    +
    +/**
    + * Variable: autoExtend
    + * 
    + * Specifies if the size of the graph should be automatically extended if the
    + * mouse goes near the container edge while dragging. This is only taken into
    + * account if the container has scrollbars. Default is true. See <autoScroll>
    + * for a trick to enable this without using scrollbars in the container.
    + */
    +mxGraph.prototype.autoExtend = true;
    +
    +/**
    + * Variable: maximumGraphBounds
    + * 
    + * <mxRectangle> that specifies the area in which all cells in the diagram
    + * should be placed. Uses in <getMaximumGraphBounds>. Use a width or height of
    + * 0 if you only want to give a upper, left corner.
    + */
    +mxGraph.prototype.maximumGraphBounds = null;
    +
    +/**
    + * Variable: minimumGraphSize
    + * 
    + * <mxRectangle> that specifies the minimum size of the graph. This is ignored
    + * if the graph container has no scrollbars. Default is null.
    + */
    +mxGraph.prototype.minimumGraphSize = null;
    +
    +/**
    + * Variable: minimumContainerSize
    + * 
    + * <mxRectangle> that specifies the minimum size of the <container> if
    + * <resizeContainer> is true.
    + */
    +mxGraph.prototype.minimumContainerSize = null;
    +		
    +/**
    + * Variable: maximumContainerSize
    + * 
    + * <mxRectangle> that specifies the maximum size of the container if
    + * <resizeContainer> is true.
    + */
    +mxGraph.prototype.maximumContainerSize = null;
    +
    +/**
    + * Variable: resizeContainer
    + * 
    + * Specifies if the container should be resized to the graph size when
    + * the graph size has changed. Default is false.
    + */
    +mxGraph.prototype.resizeContainer = false;
    +
    +/**
    + * Variable: border
    + * 
    + * Border to be added to the bottom and right side when the container is
    + * being resized after the graph has been changed. Default is 0.
    + */
    +mxGraph.prototype.border = 0;
    +
    +/**
    + * Variable: ordered
    + * 
    + * Specifies if the display should reflect the order of the cells in
    + * the model. Default is true. This has precendence over
    + * <keepEdgesInBackground> and <keepEdgesInForeground>.
    + */
    +mxGraph.prototype.ordered = true;
    +			
    +/**
    + * Variable: keepEdgesInForeground
    + * 
    + * Specifies if edges should appear in the foreground regardless of their
    + * order in the model. This has precendence over <keepEdgeInBackground>,
    + * but not over <ordered>. Default is false.
    + */
    +mxGraph.prototype.keepEdgesInForeground = false;
    +
    +/**
    + * Variable: keepEdgesInBackground
    + * 
    + * Specifies if edges should appear in the background regardless of their
    + * order in the model. <ordered> and <keepEdgesInForeground> have
    + * precedence over this setting. Default is true.
    + */
    +mxGraph.prototype.keepEdgesInBackground = true;
    +
    +/**
    + * Variable: allowNegativeCoordinates
    + * 
    + * Specifies if negative coordinates for vertices are allowed. Default is true.
    + */
    +mxGraph.prototype.allowNegativeCoordinates = true;
    +
    +/**
    + * Variable: constrainChildren
    + * 
    + * Specifies the return value for <isConstrainChildren>. Default is
    + * true.
    + */
    +mxGraph.prototype.constrainChildren = true;
    +
    +/**
    + * Variable: extendParents
    + * 
    + * Specifies if a parent should contain the child bounds after a resize of
    + * the child. Default is true.
    + */
    +mxGraph.prototype.extendParents = true;
    +
    +/**
    + * Variable: extendParentsOnAdd
    + * 
    + * Specifies if parents should be extended according to the <extendParents>
    + * switch if cells are added. Default is true.
    + */
    +mxGraph.prototype.extendParentsOnAdd = true;
    +
    +/**
    + * Variable: collapseToPreferredSize
    + * 
    + * Specifies if the cell size should be changed to the preferred size when
    + * a cell is first collapsed. Default is true.
    + */
    +mxGraph.prototype.collapseToPreferredSize = true;
    +
    +/**
    + * Variable: zoomFactor
    + * 
    + * Specifies the factor used for <zoomIn> and <zoomOut>. Default is 1.2
    + * (120%).
    + */
    +mxGraph.prototype.zoomFactor = 1.2;
    +
    +/**
    + * Variable: keepSelectionVisibleOnZoom
    + * 
    + * Specifies if the viewport should automatically contain the selection cells
    + * after a zoom operation. Default is false.
    + */
    +mxGraph.prototype.keepSelectionVisibleOnZoom = false;
    +
    +/**
    + * Variable: centerZoom
    + * 
    + * Specifies if the zoom operations should go into the center of the actual
    + * diagram rather than going from top, left. Default is true.
    + */
    +mxGraph.prototype.centerZoom = true;
    +
    +/**
    + * Variable: resetViewOnRootChange
    + * 
    + * Specifies if the scale and translate should be reset if the root changes in
    + * the model. Default is true.
    + */
    +mxGraph.prototype.resetViewOnRootChange = true;
    +
    +/**
    + * Variable: resetEdgesOnResize
    + * 
    + * Specifies if edge control points should be reset after the resize of a
    + * connected cell. Default is false.
    + */
    +mxGraph.prototype.resetEdgesOnResize = false;
    +
    +/**
    + * Variable: resetEdgesOnMove
    + * 
    + * Specifies if edge control points should be reset after the move of a
    + * connected cell. Default is false.
    + */
    +mxGraph.prototype.resetEdgesOnMove = false;
    +
    +/**
    + * Variable: resetEdgesOnConnect
    + * 
    + * Specifies if edge control points should be reset after the the edge has been
    + * reconnected. Default is true.
    + */
    +mxGraph.prototype.resetEdgesOnConnect = true;
    +
    +/**
    + * Variable: allowLoops
    + * 
    + * Specifies if loops (aka self-references) are allowed. Default is false.
    + */
    +mxGraph.prototype.allowLoops = false;
    +	
    +/**
    + * Variable: defaultLoopStyle
    + * 
    + * <mxEdgeStyle> to be used for loops. This is a fallback for loops if the
    + * <mxConstants.STYLE_LOOP> is undefined. Default is <mxEdgeStyle.Loop>.
    + */
    +mxGraph.prototype.defaultLoopStyle = mxEdgeStyle.Loop;
    +
    +/**
    + * Variable: multigraph
    + * 
    + * Specifies if multiple edges in the same direction between the same pair of
    + * vertices are allowed. Default is true.
    + */
    +mxGraph.prototype.multigraph = true;
    +
    +/**
    + * Variable: connectableEdges
    + * 
    + * Specifies if edges are connectable. Default is false. This overrides the
    + * connectable field in edges.
    + */
    +mxGraph.prototype.connectableEdges = false;
    +
    +/**
    + * Variable: allowDanglingEdges
    + * 
    + * Specifies if edges with disconnected terminals are allowed in the graph.
    + * Default is true.
    + */
    +mxGraph.prototype.allowDanglingEdges = true;
    +
    +/**
    + * Variable: cloneInvalidEdges
    + * 
    + * Specifies if edges that are cloned should be validated and only inserted
    + * if they are valid. Default is true.
    + */
    +mxGraph.prototype.cloneInvalidEdges = false;
    +
    +/**
    + * Variable: disconnectOnMove
    + * 
    + * Specifies if edges should be disconnected from their terminals when they
    + * are moved. Default is true.
    + */
    +mxGraph.prototype.disconnectOnMove = true;
    +
    +/**
    + * Variable: labelsVisible
    + * 
    + * Specifies if labels should be visible. This is used in <getLabel>. Default
    + * is true.
    + */
    +mxGraph.prototype.labelsVisible = true;
    +	
    +/**
    + * Variable: htmlLabels
    + * 
    + * Specifies the return value for <isHtmlLabel>. Default is false.
    + */
    +mxGraph.prototype.htmlLabels = false;
    +
    +/**
    + * Variable: swimlaneSelectionEnabled
    + * 
    + * Specifies if swimlanes should be selectable via the content if the
    + * mouse is released. Default is true.
    + */
    +mxGraph.prototype.swimlaneSelectionEnabled = true;
    +
    +/**
    + * Variable: swimlaneNesting
    + * 
    + * Specifies if nesting of swimlanes is allowed. Default is true.
    + */
    +mxGraph.prototype.swimlaneNesting = true;
    +	
    +/**
    + * Variable: swimlaneIndicatorColorAttribute
    + * 
    + * The attribute used to find the color for the indicator if the indicator
    + * color is set to 'swimlane'. Default is <mxConstants.STYLE_FILLCOLOR>.
    + */
    +mxGraph.prototype.swimlaneIndicatorColorAttribute = mxConstants.STYLE_FILLCOLOR;
    +
    +/**
    + * Variable: imageBundles
    + * 
    + * Holds the list of image bundles.
    + */
    +mxGraph.prototype.imageBundles = null;
    +
    +/**
    + * Variable: minFitScale
    + * 
    + * Specifies the minimum scale to be applied in <fit>. Default is 0.1.
    + */
    +mxGraph.prototype.minFitScale = 0.1;
    +
    +/**
    + * Variable: maxFitScale
    + * 
    + * Specifies the maximum scale to be applied in <fit>. Default is 8.
    + */
    +mxGraph.prototype.maxFitScale = 8;
    +
    +/**
    + * Variable: panDx
    + * 
    + * Current horizontal panning value. Default is 0.
    + */
    +mxGraph.prototype.panDx = 0;
    +
    +/**
    + * Variable: panDy
    + * 
    + * Current vertical panning value. Default is 0.
    + */
    +mxGraph.prototype.panDy = 0;
    +
    +/**
    + * Variable: collapsedImage
    + * 
    + * Specifies the <mxImage> to indicate a collapsed state.
    + * Default value is mxClient.imageBasePath + '/collapsed.gif'
    + */
    +mxGraph.prototype.collapsedImage = new mxImage(mxClient.imageBasePath + '/collapsed.gif', 9, 9);
    +
    +/**
    + * Variable: expandedImage
    + * 
    + * Specifies the <mxImage> to indicate a expanded state.
    + * Default value is mxClient.imageBasePath + '/expanded.gif'
    + */
    +mxGraph.prototype.expandedImage = new mxImage(mxClient.imageBasePath + '/expanded.gif', 9, 9);
    +
    +/**
    + * Variable: warningImage
    + * 
    + * Specifies the <mxImage> for the image to be used to display a warning
    + * overlay. See <setCellWarning>. Default value is mxClient.imageBasePath +
    + * '/warning'.  The extension for the image depends on the platform. It is
    + * '.png' on the Mac and '.gif' on all other platforms.
    + */
    +mxGraph.prototype.warningImage = new mxImage(mxClient.imageBasePath + '/warning'+
    +	((mxClient.IS_MAC) ? '.png' : '.gif'), 16, 16);
    +
    +/**
    + * Variable: alreadyConnectedResource
    + * 
    + * Specifies the resource key for the error message to be displayed in
    + * non-multigraphs when two vertices are already connected. If the resource
    + * for this key does not exist then the value is used as the error message.
    + * Default is 'alreadyConnected'.
    + */
    +mxGraph.prototype.alreadyConnectedResource = (mxClient.language != 'none') ? 'alreadyConnected' : '';
    +
    +/**
    + * Variable: containsValidationErrorsResource
    + * 
    + * Specifies the resource key for the warning message to be displayed when
    + * a collapsed cell contains validation errors. If the resource for this
    + * key does not exist then the value is used as the warning message.
    + * Default is 'containsValidationErrors'.
    + */
    +mxGraph.prototype.containsValidationErrorsResource = (mxClient.language != 'none') ? 'containsValidationErrors' : '';
    +
    +/**
    + * Variable: collapseExpandResource
    + * 
    + * Specifies the resource key for the tooltip on the collapse/expand icon.
    + * If the resource for this key does not exist then the value is used as
    + * the tooltip. Default is 'collapse-expand'.
    + */
    +mxGraph.prototype.collapseExpandResource = (mxClient.language != 'none') ? 'collapse-expand' : '';
    +
    +/**
    + * Function: init
    + * 
    + * Initializes the <container> and creates the respective datastructures.
    + * 
    + * Parameters:
    + * 
    + * container - DOM node that will contain the graph display.
    + */
    + mxGraph.prototype.init = function(container)
    + {
    +	this.container = container;
    +	
    +	// Initializes the in-place editor
    +	this.cellEditor = this.createCellEditor();	
    +
    +	// Initializes the container using the view
    +	this.view.init();
    +	
    +	// Updates the size of the container for the current graph
    +	this.sizeDidChange();
    +
    +	// Automatic deallocation of memory
    +	if (mxClient.IS_IE)
    +	{
    +		mxEvent.addListener(window, 'unload', mxUtils.bind(this, function()
    +		{
    +			this.destroy();
    +		}));
    +		
    +		// Disable shift-click for text
    +		mxEvent.addListener(container, 'selectstart',
    +			mxUtils.bind(this, function()
    +			{
    +				return this.isEditing();
    +			})
    +		);
    +	}
    +};
    +
    +/**
    + * Function: createHandlers
    + * 
    + * Creates the tooltip-, panning-, connection- and graph-handler (in this
    + * order). This is called in the constructor before <init> is called.
    + */
    +mxGraph.prototype.createHandlers = function(container)
    +{
    +	this.tooltipHandler = new mxTooltipHandler(this);
    +	this.tooltipHandler.setEnabled(false);
    +	this.panningHandler = new mxPanningHandler(this);
    +	this.panningHandler.panningEnabled = false;
    +	this.selectionCellsHandler = new mxSelectionCellsHandler(this);
    +	this.connectionHandler = new mxConnectionHandler(this);
    +	this.connectionHandler.setEnabled(false);
    +	this.graphHandler = new mxGraphHandler(this);
    +};
    +
    +/**
    + * Function: createSelectionModel
    + * 
    + * Creates a new <mxGraphSelectionModel> to be used in this graph.
    + */
    +mxGraph.prototype.createSelectionModel = function()
    +{
    +	return new mxGraphSelectionModel(this);
    +};
    +
    +/**
    + * Function: createStylesheet
    + * 
    + * Creates a new <mxGraphSelectionModel> to be used in this graph.
    + */
    +mxGraph.prototype.createStylesheet = function()
    +{
    +	return new mxStylesheet();
    +};
    +
    +/**
    + * Function: createGraphView
    + * 
    + * Creates a new <mxGraphView> to be used in this graph.
    + */
    +mxGraph.prototype.createGraphView = function()
    +{
    +	return new mxGraphView(this);
    +};
    + 
    +/**
    + * Function: createCellRenderer
    + * 
    + * Creates a new <mxCellRenderer> to be used in this graph.
    + */
    +mxGraph.prototype.createCellRenderer = function()
    +{
    +	return new mxCellRenderer();
    +};
    +
    +/**
    + * Function: createCellEditor
    + * 
    + * Creates a new <mxCellEditor> to be used in this graph.
    + */
    +mxGraph.prototype.createCellEditor = function()
    +{
    +	return new mxCellEditor(this);
    +};
    +
    +/**
    + * Function: getModel
    + * 
    + * Returns the <mxGraphModel> that contains the cells.
    + */
    +mxGraph.prototype.getModel = function()
    +{
    +	return this.model;
    +};
    +
    +/**
    + * Function: getView
    + * 
    + * Returns the <mxGraphView> that contains the <mxCellStates>.
    + */
    +mxGraph.prototype.getView = function()
    +{
    +	return this.view;
    +};
    +
    +/**
    + * Function: getStylesheet
    + * 
    + * Returns the <mxStylesheet> that defines the style.
    + */
    +mxGraph.prototype.getStylesheet = function()
    +{
    +	return this.stylesheet;
    +};
    +
    +/**
    + * Function: setStylesheet
    + * 
    + * Sets the <mxStylesheet> that defines the style.
    + */
    +mxGraph.prototype.setStylesheet = function(stylesheet)
    +{
    +	this.stylesheet = stylesheet;
    +};
    +
    +/**
    + * Function: getSelectionModel
    + * 
    + * Returns the <mxGraphSelectionModel> that contains the selection.
    + */
    +mxGraph.prototype.getSelectionModel = function()
    +{
    +	return this.selectionModel;
    +};
    +
    +/**
    + * Function: setSelectionModel
    + * 
    + * Sets the <mxSelectionModel> that contains the selection.
    + */
    +mxGraph.prototype.setSelectionModel = function(selectionModel)
    +{
    +	this.selectionModel = selectionModel;
    +};
    +
    +/**
    + * Function: getSelectionCellsForChanges
    + * 
    + * Returns the cells to be selected for the given array of changes.
    + */
    +mxGraph.prototype.getSelectionCellsForChanges = function(changes)
    +{
    +	var cells = [];
    +	
    +	for (var i = 0; i < changes.length; i++)
    +	{
    +		var change = changes[i];
    +		
    +		if (change.constructor != mxRootChange)
    +		{
    +			var cell = null;
    +
    +			if (change instanceof mxChildChange && change.previous == null)
    +			{
    +				cell = change.child;
    +			}
    +			else if (change.cell != null && change.cell instanceof mxCell)
    +			{
    +				cell = change.cell;
    +			}
    +			
    +			if (cell != null && mxUtils.indexOf(cells, cell) < 0)
    +			{
    +				cells.push(cell);
    +			}
    +		}
    +	}
    +	
    +	return this.getModel().getTopmostCells(cells);
    +};
    +
    +/**
    + * Function: graphModelChanged
    + * 
    + * Called when the graph model changes. Invokes <processChange> on each
    + * item of the given array to update the view accordingly.
    + * 
    + * Parameters:
    + * 
    + * changes - Array that contains the individual changes.
    + */
    +mxGraph.prototype.graphModelChanged = function(changes)
    +{
    +	for (var i = 0; i < changes.length; i++)
    +	{
    +		this.processChange(changes[i]);
    +	}
    +	
    +	this.removeSelectionCells(this.getRemovedCellsForChanges(changes));
    +	
    +	this.view.validate();
    +	this.sizeDidChange();
    +};
    +
    +/**
    + * Function: getRemovedCellsForChanges
    + * 
    + * Returns the cells that have been removed from the model.
    + */
    +mxGraph.prototype.getRemovedCellsForChanges = function(changes)
    +{
    +	var result = [];
    +	
    +	for (var i = 0; i < changes.length; i++)
    +	{
    +		var change = changes[i];
    +		
    +		// Resets the view settings, removes all cells and clears
    +		// the selection if the root changes.
    +		if (change instanceof mxRootChange)
    +		{
    +			break;
    +		}
    +		else if (change instanceof mxChildChange)
    +		{
    +			if (change.previous != null && change.parent == null)
    +			{
    +				result = result.concat(this.model.getDescendants(change.child));
    +			}
    +		}
    +		else if (change instanceof mxVisibleChange)
    +		{
    +			result = result.concat(this.model.getDescendants(change.cell));
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: processChange
    + * 
    + * Processes the given change and invalidates the respective cached data
    + * in <view>. This fires a <root> event if the root has changed in the
    + * model.
    + * 
    + * Parameters:
    + * 
    + * change - Object that represents the change on the model.
    + */
    +mxGraph.prototype.processChange = function(change)
    +{
    +	// Resets the view settings, removes all cells and clears
    +	// the selection if the root changes.
    +	if (change instanceof mxRootChange)
    +	{
    +		this.clearSelection();			
    +		this.removeStateForCell(change.previous);
    +		
    +		if (this.resetViewOnRootChange)
    +		{
    +			this.view.scale = 1;
    +			this.view.translate.x = 0;
    +			this.view.translate.y = 0;
    +		}
    +
    +		this.fireEvent(new mxEventObject(mxEvent.ROOT));
    +	}
    +	
    +	// Adds or removes a child to the view by online invaliding
    +	// the minimal required portions of the cache, namely, the
    +	// old and new parent and the child.
    +	else if (change instanceof mxChildChange)
    +	{
    +		var newParent = this.model.getParent(change.child);
    +		
    +		if (newParent != null)
    +		{
    +			// Flags the cell for updating the order in the renderer
    +			this.view.invalidate(change.child, true, false, change.previous != null);
    +		}
    +		else
    +		{
    +			this.removeStateForCell(change.child);
    +			
    +			// Handles special case of current root of view being removed
    +			if (this.view.currentRoot == change.child)
    +			{
    +				this.home();
    +			}
    +		}
    +		
    +		if (newParent != change.previous)
    +		{
    +			// Refreshes the collapse/expand icons on the parents
    +			if (newParent != null)
    +			{
    +				this.view.invalidate(newParent, false, false);
    +			}
    +			
    +			if (change.previous != null)
    +			{
    +				this.view.invalidate(change.previous, false, false);
    +			}
    +		}
    +	}
    +
    +	// Handles two special cases where the shape does not need to be
    +	// recreated from scratch, it only need to be invalidated.
    +	else if (change instanceof mxTerminalChange ||
    +			change instanceof mxGeometryChange)
    +	{
    +		this.view.invalidate(change.cell);
    +	}
    +
    +	// Handles two special cases where only the shape, but no
    +	// descendants need to be recreated
    +	else if (change instanceof mxValueChange)
    +	{
    +		this.view.invalidate(change.cell, false, false);
    +	}
    +	
    +	// Requires a new mxShape in JavaScript
    +	else if (change instanceof mxStyleChange)
    +	{
    +		this.view.removeState(change.cell);
    +	}
    +	
    +	// Removes the state from the cache by default
    +	else if (change.cell != null && 
    +			change.cell instanceof mxCell)
    +	{
    +		this.removeStateForCell(change.cell);
    +	}
    +};
    +
    +/**
    + * Function: removeStateForCell
    + * 
    + * Removes all cached information for the given cell and its descendants.
    + * This is called when a cell was removed from the model.
    + * 
    + * Paramters:
    + * 
    + * cell - <mxCell> that was removed from the model.
    + */
    +mxGraph.prototype.removeStateForCell = function(cell)
    +{
    +	var childCount = this.model.getChildCount(cell);
    +	
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		this.removeStateForCell(this.model.getChildAt(cell, i));
    +	}
    +
    +	this.view.removeState(cell);
    +};
    +
    +/**
    + * Group: Overlays
    + */
    +
    +/**
    + * Function: addCellOverlay
    + * 
    + * Adds an <mxCellOverlay> for the specified cell. This method fires an
    + * <addoverlay> event and returns the new <mxCellOverlay>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to add the overlay for.
    + * overlay - <mxCellOverlay> to be added for the cell.
    + */
    +mxGraph.prototype.addCellOverlay = function(cell, overlay)
    +{
    +	if (cell.overlays == null)
    +	{
    +		cell.overlays = [];
    +	}
    +	
    +	cell.overlays.push(overlay);
    +
    +	var state = this.view.getState(cell);
    +
    +	// Immediately updates the cell display if the state exists
    +	if (state != null)
    +	{
    +		this.cellRenderer.redraw(state);
    +	}
    +	
    +	this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,
    +			'cell', cell, 'overlay', overlay));
    +	
    +	return overlay;
    +};
    +
    +/**
    + * Function: getCellOverlays
    + * 
    + * Returns the array of <mxCellOverlays> for the given cell or null, if
    + * no overlays are defined.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose overlays should be returned.
    + */
    +mxGraph.prototype.getCellOverlays = function(cell)
    +{
    +	return cell.overlays;
    +};
    +
    +/**
    + * Function: removeCellOverlay
    + * 
    + * Removes and returns the given <mxCellOverlay> from the given cell. This
    + * method fires a <removeoverlay> event. If no overlay is given, then all
    + * overlays are removed using <removeOverlays>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose overlay should be removed.
    + * overlay - Optional <mxCellOverlay> to be removed.
    + */
    +mxGraph.prototype.removeCellOverlay = function(cell, overlay)
    +{
    +	if (overlay == null)
    +	{
    +		this.removeCellOverlays(cell);
    +	}
    +	else
    +	{
    +		var index = mxUtils.indexOf(cell.overlays, overlay);
    +		
    +		if (index >= 0)
    +		{
    +			cell.overlays.splice(index, 1);
    +			
    +			if (cell.overlays.length == 0)
    +			{
    +				cell.overlays = null;
    +			}
    +			
    +			// Immediately updates the cell display if the state exists
    +			var state = this.view.getState(cell);
    +			
    +			if (state != null)
    +			{
    +				this.cellRenderer.redraw(state);
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,
    +					'cell', cell, 'overlay', overlay));	
    +		}
    +		else
    +		{
    +			overlay = null;
    +		}
    +	}
    +	
    +	return overlay;
    +};
    +
    +/**
    + * Function: removeCellOverlays
    + * 
    + * Removes all <mxCellOverlays> from the given cell. This method
    + * fires a <removeoverlay> event for each <mxCellOverlay> and returns
    + * the array of <mxCellOverlays> that was removed from the cell.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose overlays should be removed
    + */
    +mxGraph.prototype.removeCellOverlays = function(cell)
    +{
    +	var overlays = cell.overlays;
    +	
    +	if (overlays != null)
    +	{
    +		cell.overlays = null;
    +		
    +		// Immediately updates the cell display if the state exists
    +		var state = this.view.getState(cell);
    +		
    +		if (state != null)
    +		{
    +			this.cellRenderer.redraw(state);
    +		}
    +		
    +		for (var i = 0; i < overlays.length; i++)
    +		{
    +			this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,
    +					'cell', cell, 'overlay', overlays[i]));
    +		}
    +	}
    +	
    +	return overlays;
    +};
    +
    +/**
    + * Function: clearCellOverlays
    + * 
    + * Removes all <mxCellOverlays> in the graph for the given cell and all its
    + * descendants. If no cell is specified then all overlays are removed from
    + * the graph. This implementation uses <removeCellOverlays> to remove the
    + * overlays from the individual cells.
    + * 
    + * Parameters:
    + * 
    + * cell - Optional <mxCell> that represents the root of the subtree to
    + * remove the overlays from. Default is the root in the model.
    + */
    +mxGraph.prototype.clearCellOverlays = function(cell)
    +{
    +	cell = (cell != null) ? cell : this.model.getRoot();
    +	this.removeCellOverlays(cell);
    +	
    +	// Recursively removes all overlays from the children
    +	var childCount = this.model.getChildCount(cell);
    +	
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		var child = this.model.getChildAt(cell, i);
    +		this.clearCellOverlays(child); // recurse
    +	}
    +};
    +
    +/**
    + * Function: setCellWarning
    + * 
    + * Creates an overlay for the given cell using the warning and image or
    + * <warningImage> and returns the new <mxCellOverlay>. The warning is
    + * displayed as a tooltip in a red font and may contain HTML markup. If
    + * the warning is null or a zero length string, then all overlays are
    + * removed from the cell.
    + * 
    + * Example:
    + * 
    + * (code)
    + * graph.setCellWarning(cell, '<b>Warning:</b>: Hello, World!');
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose warning should be set.
    + * warning - String that represents the warning to be displayed.
    + * img - Optional <mxImage> to be used for the overlay. Default is
    + * <warningImageBasename>.
    + * isSelect - Optional boolean indicating if a click on the overlay
    + * should select the corresponding cell. Default is false.
    + */
    +mxGraph.prototype.setCellWarning = function(cell, warning, img, isSelect)
    +{
    +	if (warning != null && warning.length > 0)
    +	{
    +		img = (img != null) ? img : this.warningImage;
    +		
    +		// Creates the overlay with the image and warning
    +		var overlay = new mxCellOverlay(img,
    +			'<font color=red>'+warning+'</font>');
    +		
    +		// Adds a handler for single mouseclicks to select the cell
    +		if (isSelect)
    +		{
    +			overlay.addListener(mxEvent.CLICK,
    +				mxUtils.bind(this, function(sender, evt)
    +				{
    +					if (this.isEnabled())
    +					{
    +						this.setSelectionCell(cell);
    +					}
    +				})
    +			);
    +		}
    +		
    +		// Sets and returns the overlay in the graph
    +		return this.addCellOverlay(cell, overlay);
    +	}
    +	else
    +	{
    +		this.removeCellOverlays(cell);
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Group: In-place editing
    + */
    +
    +/**
    + * Function: startEditing
    + * 
    + * Calls <startEditingAtCell> using the given cell or the first selection
    + * cell.
    + * 
    + * Parameters:
    + * 
    + * evt - Optional mouse event that triggered the editing.
    + */
    +mxGraph.prototype.startEditing = function(evt)
    +{
    +	this.startEditingAtCell(null, evt);
    +};
    +
    +/**
    + * Function: startEditingAtCell
    + * 
    + * Fires a <startEditing> event and invokes <mxCellEditor.startEditing>
    + * on <editor>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to start the in-place editor for.
    + * evt - Optional mouse event that triggered the editing.
    + */
    +mxGraph.prototype.startEditingAtCell = function(cell, evt)
    +{
    +	if (cell == null)
    +	{
    +		cell = this.getSelectionCell();
    +		
    +		if (cell != null && !this.isCellEditable(cell))
    +		{
    +			cell = null;
    +		}
    +	}
    +
    +	if (cell != null)
    +	{
    +		this.fireEvent(new mxEventObject(mxEvent.START_EDITING,
    +				'cell', cell, 'event', evt));
    +		this.cellEditor.startEditing(cell, evt);
    +	}
    +};
    +
    +/**
    + * Function: getEditingValue
    + * 
    + * Returns the initial value for in-place editing. This implementation
    + * returns <convertValueToString> for the given cell. If this function is
    + * overridden, then <mxGraphModel.valueForCellChanged> should take care
    + * of correctly storing the actual new value inside the user object.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the initial editing value should be returned.
    + * evt - Optional mouse event that triggered the editor.
    + */
    +mxGraph.prototype.getEditingValue = function(cell, evt)
    +{
    +	return this.convertValueToString(cell);
    +};
    +
    +/**
    + * Function: stopEditing
    + * 
    + * Stops the current editing.
    + * 
    + * Parameters:
    + * 
    + * cancel - Boolean that specifies if the current editing value
    + * should be stored.
    + */
    +mxGraph.prototype.stopEditing = function(cancel)
    +{
    +	this.cellEditor.stopEditing(cancel);
    +};
    +
    +/**
    + * Function: labelChanged
    + * 
    + * Sets the label of the specified cell to the given value using
    + * <cellLabelChanged> and fires <mxEvent.LABEL_CHANGED> while the
    + * transaction is in progress. Returns the cell whose label was changed.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose label should be changed.
    + * value - New label to be assigned.
    + * evt - Optional event that triggered the change.
    + */
    +mxGraph.prototype.labelChanged = function(cell, value, evt)
    +{
    +	this.model.beginUpdate();
    +	try
    +	{
    +		this.cellLabelChanged(cell, value, this.isAutoSizeCell(cell));
    +		this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,
    +				'cell', cell, 'value', value, 'event', evt));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +	
    +	return cell;
    +};
    +
    +/**
    + * Function: cellLabelChanged
    + * 
    + * Sets the new label for a cell. If autoSize is true then
    + * <cellSizeUpdated> will be called.
    + * 
    + * In the following example, the function is extended to map changes to
    + * attributes in an XML node, as shown in <convertValueToString>.
    + * Alternatively, the handling of this can be implemented as shown in
    + * <mxGraphModel.valueForCellChanged> without the need to clone the
    + * user object.
    + * 
    + * (code)
    + * var graphCellLabelChanged = graph.cellLabelChanged;
    + * graph.cellLabelChanged = function(cell, newValue, autoSize)
    + * {
    + * 	// Cloned for correct undo/redo
    + * 	var elt = cell.value.cloneNode(true);
    + *  elt.setAttribute('label', newValue);
    + *  
    + *  newValue = elt;
    + *  graphCellLabelChanged.apply(this, arguments);
    + * };
    + * (end) 
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose label should be changed.
    + * value - New label to be assigned.
    + * autoSize - Boolean that specifies if <cellSizeUpdated> should be called.
    + */
    +mxGraph.prototype.cellLabelChanged = function(cell, value, autoSize)
    +{
    +	this.model.beginUpdate();
    +	try
    +	{
    +		this.model.setValue(cell, value);
    +		
    +		if (autoSize)
    +		{
    +			this.cellSizeUpdated(cell, false);
    +		}
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +};
    +
    +/**
    + * Group: Event processing
    + */
    +
    +/**
    + * Function: escape
    + * 
    + * Processes an escape keystroke.
    + * 
    + * Parameters:
    + * 
    + * evt - Mouseevent that represents the keystroke.
    + */
    +mxGraph.prototype.escape = function(evt)
    +{
    +	this.stopEditing(true);
    +	this.connectionHandler.reset();
    +	this.graphHandler.reset();
    +	
    +	// Cancels all cell-based editing
    +	var cells = this.getSelectionCells();
    +	
    +	for (var i = 0; i < cells.length; i++)
    +	{
    +		var state = this.view.getState(cells[i]);
    +		
    +		if (state != null && state.handler != null)
    +		{
    +			state.handler.reset();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: click
    + * 
    + * Processes a singleclick on an optional cell and fires a <click> event.
    + * The click event is fired initially. If the graph is enabled and the
    + * event has not been consumed, then the cell is selected using
    + * <selectCellForEvent> or the selection is cleared using
    + * <clearSelection>. The events consumed state is set to true if the
    + * corresponding <mxMouseEvent> has been consumed.
    + * 
    + * Parameters:
    + * 
    + * me - <mxMouseEvent> that represents the single click.
    + */
    +mxGraph.prototype.click = function(me)
    +{
    +	var evt = me.getEvent();
    +	var cell = me.getCell();
    +	var mxe = new mxEventObject(mxEvent.CLICK, 'event', evt, 'cell', cell);
    +	
    +	if (me.isConsumed())
    +	{
    +		mxe.consume();
    +	}
    +	
    +	this.fireEvent(mxe);
    +	
    +	// Handles the event if it has not been consumed
    +	if (this.isEnabled() && !mxEvent.isConsumed(evt) && !mxe.isConsumed())
    +	{
    +		if (cell != null)
    +		{
    +			this.selectCellForEvent(cell, evt);
    +		}
    +		else
    +		{
    +			var swimlane = null;
    +			
    +			if (this.isSwimlaneSelectionEnabled())
    +			{
    +				// Gets the swimlane at the location (includes
    +				// content area of swimlanes)
    +				swimlane = this.getSwimlaneAt(me.getGraphX(), me.getGraphY());
    +			}
    +
    +			// Selects the swimlane and consumes the event
    +			if (swimlane != null)
    +			{
    +				this.selectCellForEvent(swimlane, evt);
    +			}
    +			
    +			// Ignores the event if the control key is pressed
    +			else if (!this.isToggleEvent(evt))
    +			{
    +				this.clearSelection();
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: dblClick
    + * 
    + * Processes a doubleclick on an optional cell and fires a <dblclick>
    + * event. The event is fired initially. If the graph is enabled and the
    + * event has not been consumed, then <edit> is called with the given
    + * cell. The event is ignored if no cell was specified.
    + *
    + * Example:
    + *
    + * (code)
    + * graph.dblClick = function(evt, cell)
    + * {
    + *   var mxe = new mxEventObject(mxEvent.DOUBLE_CLICK, 'event', evt, 'cell', cell);
    + *   this.fireEvent(mxe);
    + *   
    + *   if (this.isEnabled() && !mxEvent.isConsumed(evt) && !mxe.isConsumed())
    + *   {
    + * 	   mxUtils.alert('Hello, World!');
    + *     mxe.consume();
    + *   }
    + * }
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * evt - Mouseevent that represents the doubleclick.
    + * cell - Optional <mxCell> under the mousepointer.
    + */
    +mxGraph.prototype.dblClick = function(evt, cell)
    +{
    +	var mxe = new mxEventObject(mxEvent.DOUBLE_CLICK, 'event', evt, 'cell', cell);
    +	this.fireEvent(mxe);
    +	
    +	// Handles the event if it has not been consumed
    +	if (this.isEnabled() && !mxEvent.isConsumed(evt) && !mxe.isConsumed() &&
    +		cell != null && this.isCellEditable(cell))
    +	{
    +		this.startEditingAtCell(cell, evt);
    +	}
    +};
    +
    +/**
    + * Function: scrollPointToVisible
    + * 
    + * Scrolls the graph to the given point, extending the graph container if
    + * specified.
    + */
    +mxGraph.prototype.scrollPointToVisible = function(x, y, extend, border)
    +{
    +	if (this.ignoreScrollbars || mxUtils.hasScrollbars(this.container))
    +	{
    +		var c = this.container;
    +		border = (border != null) ? border : 20;
    +		
    +		if (x >= c.scrollLeft && y >= c.scrollTop && x <= c.scrollLeft + c.clientWidth &&
    +			y <= c.scrollTop + c.clientHeight)
    +		{
    +			var dx = c.scrollLeft + c.clientWidth - x;
    +			
    +			if (dx < border)
    +			{
    +				var old = c.scrollLeft;
    +				c.scrollLeft += border - dx;
    +
    +				// Automatically extends the canvas size to the bottom, right
    +				// if the event is outside of the canvas and the edge of the
    +				// canvas has been reached. Notes: Needs fix for IE.
    +				if (extend && old == c.scrollLeft)
    +				{
    +					if (this.dialect == mxConstants.DIALECT_SVG)
    +					{
    +						var root = this.view.getDrawPane().ownerSVGElement;
    +						var width = this.container.scrollWidth + border - dx;
    +						
    +						// Updates the clipping region. This is an expensive
    +						// operation that should not be executed too often.
    +						root.setAttribute('width', width);
    +					}
    +					else
    +					{
    +						var width = Math.max(c.clientWidth, c.scrollWidth) + border - dx;
    +						var canvas = this.view.getCanvas();
    +						canvas.style.width = width + 'px';
    +					}
    +					
    +					c.scrollLeft += border - dx;
    +				}
    +			}
    +			else
    +			{
    +				dx = x - c.scrollLeft;
    +				
    +				if (dx < border)
    +				{
    +					c.scrollLeft -= border - dx;
    +				}
    +			}
    +			
    +			var dy = c.scrollTop + c.clientHeight - y;
    +			
    +			if (dy < border)
    +			{
    +				var old = c.scrollTop;
    +				c.scrollTop += border - dy;
    +
    +				if (old == c.scrollTop && extend)
    +				{
    +					if (this.dialect == mxConstants.DIALECT_SVG)
    +					{
    +						var root = this.view.getDrawPane().ownerSVGElement;
    +						var height = this.container.scrollHeight + border - dy;
    +						
    +						// Updates the clipping region. This is an expensive
    +						// operation that should not be executed too often.
    +						root.setAttribute('height', height);
    +					}
    +					else
    +					{
    +						var height = Math.max(c.clientHeight, c.scrollHeight) + border - dy;
    +						var canvas = this.view.getCanvas();
    +						canvas.style.height = height + 'px';
    +					}
    +					
    +					c.scrollTop += border - dy;
    +				}
    +			}
    +			else
    +			{
    +				dy = y - c.scrollTop;
    +				
    +				if (dy < border)
    +				{
    +					c.scrollTop -= border - dy;
    +				}
    +			}
    +		}
    +	}
    +	else if (this.allowAutoPanning && !this.panningHandler.active)
    +	{
    +		if (this.panningManager == null)
    +		{
    +			this.panningManager = this.createPanningManager();
    +		}
    +
    +		this.panningManager.panTo(x + this.panDx, y + this.panDy);
    +	}
    +};
    +
    +
    +/**
    + * Function: createPanningManager
    + * 
    + * Creates and returns an <mxPanningManager>.
    + */
    +mxGraph.prototype.createPanningManager = function()
    +{
    +	return new mxPanningManager(this);
    +};
    +
    +/**
    + * Function: getOffsetSize
    + * 
    + * Returns the actual size of the the viewport minus padding and border sizes.
    + * The value is returned in the width and height of an <mxRectangle>.
    + */
    +mxGraph.prototype.getOffsetSize = function()
    +{
    +	// Helper function to handle string values for border widths (approx)
    +	function parseBorder(value)
    +	{
    +		var result = 0;
    +		
    +		if (value == 'thin')
    +		{
    +			result = 2;
    +		}
    +		else if (value == 'medium')
    +		{
    +			result = 4;
    +		}
    +		else if (value == 'thick')
    +		{
    +			result = 6;
    +		}
    +		else
    +		{
    +			result = parseInt(value);
    +		}
    +		
    +		if (isNaN(result))
    +		{
    +			result = 0;
    +		}
    +		
    +		return result;
    +	}
    +	
    +	var style = mxUtils.getCurrentStyle(this.container);
    +	var dx = parseBorder(style.borderLeftWidth) + parseBorder(style.borderRightWidth) +
    +		parseInt(style.paddingLeft || 0) + parseInt(style.paddingRight || 0);
    +	var width = this.container.offsetWidth - dx;
    +
    +	// Correction factor for height is 4 pixels
    +	var dy = parseBorder(style.borderTopWidth) + parseBorder(style.borderBottomWidth) +
    +		parseInt(style.paddingTop || 0) + parseInt(style.paddingBottom || 0);
    +	var height = this.container.offsetHeight - 4 - dy;
    +	
    +	return new mxRectangle(0, 0, width, height);
    +};
    +
    +/**
    + * Function: sizeDidChange
    + * 
    + * Called when the size of the graph has changed. This implementation fires
    + * a <size> event after updating the clipping region of the SVG element in
    + * SVG-bases browsers.
    + */
    +mxGraph.prototype.sizeDidChange = function()
    +{
    +	var bounds = this.getGraphBounds();
    +
    +	if (this.container != null)
    +	{
    +		var border = this.getBorder();
    +		
    +		var width = Math.max(0, bounds.x + bounds.width + 1 + border);
    +		var height = Math.max(0, bounds.y + bounds.height + 1 + border);
    +		
    +		if (this.minimumContainerSize != null)
    +		{
    +			width = Math.max(width, this.minimumContainerSize.width);
    +			height = Math.max(height, this.minimumContainerSize.height);
    +		}
    +
    +		if (this.resizeContainer)
    +		{
    +			var w = width;
    +			var h = height;
    +			
    +			if (this.maximumContainerSize != null)
    +			{
    +				w = Math.min(this.maximumContainerSize.width, w);
    +				h = Math.min(this.maximumContainerSize.height, h);
    +			}
    +
    +			this.container.style.width = w + 'px';
    +			this.container.style.height = h + 'px';
    +		}
    +		
    +		if (this.preferPageSize || (!mxClient.IS_IE && this.pageVisible))
    +		{
    +			var scale = this.view.scale;
    +			var tr = this.view.translate;
    +			var fmt = this.pageFormat;
    +			var ps = scale * this.pageScale;
    +			var page = new mxRectangle(0, 0, fmt.width * ps, fmt.height * ps);
    +			
    +			var hCount = (this.pageBreaksVisible) ? Math.ceil(width / page.width) : 1;
    +			var vCount = (this.pageBreaksVisible) ? Math.ceil(height / page.height) : 1;
    +			
    +			width = hCount * page.width + 2 + tr.x / scale;
    +			height = vCount * page.height + 2 + tr.y / scale;
    +		}
    +
    +		var size = this.getOffsetSize();
    +		width = Math.max(width, size.width);
    +		height = Math.max(height, size.height);
    +
    +		if (this.dialect == mxConstants.DIALECT_SVG)
    +		{
    +			var root = this.view.getDrawPane().ownerSVGElement;
    +			
    +			if (this.minimumGraphSize != null)
    +			{
    +				width = Math.max(width, this.minimumGraphSize.width * this.view.scale);
    +				height = Math.max(height, this.minimumGraphSize.height * this.view.scale);
    +			}
    +			
    +			width = Math.ceil(width);
    +			height = Math.ceil(height);
    +
    +			// Updates the clipping region. This is an expensive
    +			// operation that should not be executed too often.
    +			root.setAttribute('width', width);
    +			root.setAttribute('height', height);
    +			
    +			// Workaround to trigger update (removal) of scrollbars
    +			if (width <= this.container.offsetWidth &&
    +				this.container.clientWidth < this.container.offsetWidth)
    +			{
    +				var prevValue = this.container.style.overflow;
    +				this.container.style.overflow = 'hidden';
    +				this.container.scrollLeft = 1;
    +				this.container.style.overflow = prevValue;
    +			}
    +		}
    +		else
    +		{
    +			width = Math.ceil(width);
    +			height = Math.ceil(height);
    +			var drawPane = this.view.getDrawPane();
    +			var canvas = this.view.getCanvas();
    +
    +			drawPane.style.width = width + 'px';
    +			drawPane.style.height = height + 'px';
    +			canvas.style.width = width + 'px';
    +			canvas.style.height = height + 'px';
    +			
    +			// Must resize canvas for scrollbars to appear in IE since the
    +			// canvas is hiding the overflow of the drawPane child
    +			if (this.minimumGraphSize != null)
    +			{
    +				width = Math.max(width, Math.ceil(this.minimumGraphSize.width * this.view.scale));
    +				height = Math.max(height, Math.ceil(this.minimumGraphSize.height * this.view.scale));
    +				
    +				canvas.style.width = width + 'px';
    +				canvas.style.height = height + 'px';
    +			}
    +		}
    +		
    +		this.updatePageBreaks(this.pageBreaksVisible, width - 1, height - 1);
    +	}
    +
    +	this.fireEvent(new mxEventObject(mxEvent.SIZE, 'bounds', bounds));
    +};
    +
    +/**
    + * Function: redrawPageBreaks
    + * 
    + * Invokes from <sizeDidChange> to redraw the page breaks.
    + * 
    + * Parameters:
    + * 
    + * visible - Boolean that specifies if page breaks should be shown.
    + * width - Specifies the width of the container in pixels.
    + * height - Specifies the height of the container in pixels.
    + */
    +mxGraph.prototype.updatePageBreaks = function(visible, width, height)
    +{
    +	var scale = this.view.scale;
    +	var tr = this.view.translate;
    +	var fmt = this.pageFormat;
    +	var ps = scale * this.pageScale;
    +	var bounds = new mxRectangle(scale * tr.x, scale * tr.y,
    +			fmt.width * ps, fmt.height * ps);
    +	
    +	// Does not show page breaks if the scale is too small
    +	visible = visible && Math.min(bounds.width, bounds.height) > this.minPageBreakDist;
    +
    +	// Draws page breaks independent of translate. To ignore
    +	// the translate set bounds.x/y = 0. Note that modulo
    +	// in JavaScript has a bug, so use mxUtils instead.
    +	bounds.x = mxUtils.mod(bounds.x, bounds.width);
    +	bounds.y = mxUtils.mod(bounds.y, bounds.height);
    +	
    +	var horizontalCount = (visible) ? Math.ceil((width - bounds.x) / bounds.width) : 0;
    +	var verticalCount = (visible) ? Math.ceil((height - bounds.y) / bounds.height) : 0;
    +	var right = width;
    +	var bottom = height;
    +	
    +	if (this.horizontalPageBreaks == null && horizontalCount > 0)
    +	{
    +		this.horizontalPageBreaks = [];
    +	}
    +
    +	if (this.horizontalPageBreaks != null)
    +	{
    +		for (var i = 0; i <= horizontalCount; i++)
    +		{
    +			var pts = [new mxPoint(bounds.x + i * bounds.width, 1),
    +			           new mxPoint(bounds.x + i * bounds.width, bottom)];
    +			
    +			if (this.horizontalPageBreaks[i] != null)
    +			{
    +				this.horizontalPageBreaks[i].scale = scale;
    +				this.horizontalPageBreaks[i].points = pts;
    +				this.horizontalPageBreaks[i].redraw();
    +			}
    +			else
    +			{
    +				var pageBreak = new mxPolyline(pts, this.pageBreakColor, this.scale);
    +				pageBreak.dialect = this.dialect;
    +				pageBreak.isDashed = this.pageBreakDashed;
    +				pageBreak.scale = scale;
    +				pageBreak.crisp = true;
    +				pageBreak.init(this.view.backgroundPane);
    +				pageBreak.redraw();
    +				
    +				this.horizontalPageBreaks[i] = pageBreak;
    +			}
    +		}
    +		
    +		for (var i = horizontalCount; i < this.horizontalPageBreaks.length; i++)
    +		{
    +			this.horizontalPageBreaks[i].destroy();
    +		}
    +		
    +		this.horizontalPageBreaks.splice(horizontalCount, this.horizontalPageBreaks.length - horizontalCount);
    +	}
    +	
    +	if (this.verticalPageBreaks == null && verticalCount > 0)
    +	{
    +		this.verticalPageBreaks = [];
    +	}
    +	
    +	if (this.verticalPageBreaks != null)
    +	{
    +		for (var i = 0; i <= verticalCount; i++)
    +		{
    +			var pts = [new mxPoint(1, bounds.y + i * bounds.height),
    +			           new mxPoint(right, bounds.y + i * bounds.height)];
    +			
    +			if (this.verticalPageBreaks[i] != null)
    +			{
    +				this.verticalPageBreaks[i].scale = scale;
    +				this.verticalPageBreaks[i].points = pts;
    +				this.verticalPageBreaks[i].redraw();
    +			}
    +			else
    +			{
    +				var pageBreak = new mxPolyline(pts, this.pageBreakColor, scale);
    +				pageBreak.dialect = this.dialect;
    +				pageBreak.isDashed = this.pageBreakDashed;
    +				pageBreak.scale = scale;
    +				pageBreak.crisp = true;
    +				pageBreak.init(this.view.backgroundPane);
    +				pageBreak.redraw();
    +	
    +				this.verticalPageBreaks[i] = pageBreak;
    +			}
    +		}
    +		
    +		for (var i = verticalCount; i < this.verticalPageBreaks.length; i++)
    +		{
    +			this.verticalPageBreaks[i].destroy();
    +		}
    +		
    +		this.verticalPageBreaks.splice(verticalCount, this.verticalPageBreaks.length - verticalCount);
    +	}
    +};
    +
    +/**
    + * Group: Cell styles
    + */
    +
    +/**
    + * Function: getCellStyle
    + * 
    + * Returns an array of key, value pairs representing the cell style for the
    + * given cell. If no string is defined in the model that specifies the
    + * style, then the default style for the cell is returned or <EMPTY_ARRAY>,
    + * if not style can be found. Note: You should try and get the cell state
    + * for the given cell and use the cached style in the state before using
    + * this method.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose style should be returned as an array.
    + */
    +mxGraph.prototype.getCellStyle = function(cell)
    +{
    +	var stylename = this.model.getStyle(cell);
    +	var style = null;
    +	
    +	// Gets the default style for the cell
    +	if (this.model.isEdge(cell))
    +	{
    +		style = this.stylesheet.getDefaultEdgeStyle();
    +	}
    +	else
    +	{
    +		style = this.stylesheet.getDefaultVertexStyle();
    +	}
    +	
    +	// Resolves the stylename using the above as the default
    +	if (stylename != null)
    +	{
    +		style = this.postProcessCellStyle(this.stylesheet.getCellStyle(stylename, style));
    +	}
    +	
    +	// Returns a non-null value if no style can be found
    +	if (style == null)
    +	{
    +		style = mxGraph.prototype.EMPTY_ARRAY;
    +	}
    +	
    +	return style;
    +};
    +
    +/**
    + * Function: postProcessCellStyle
    + * 
    + * Tries to resolve the value for the image style in the image bundles and
    + * turns short data URIs as defined in mxImageBundle to data URIs as
    + * defined in RFC 2397 of the IETF.
    + */
    +mxGraph.prototype.postProcessCellStyle = function(style)
    +{
    +	if (style != null)
    +	{
    +		var key = style[mxConstants.STYLE_IMAGE];
    +		var image = this.getImageFromBundles(key);
    +
    +		if (image != null)
    +		{
    +			style[mxConstants.STYLE_IMAGE] = image;
    +		}
    +		else
    +		{
    +			image = key;
    +		}
    +		
    +		// Converts short data uris to normal data uris
    +		if (image != null && image.substring(0, 11) == "data:image/")
    +		{
    +			var comma = image.indexOf(',');
    +			
    +			if (comma > 0)
    +			{
    +				image = image.substring(0, comma) + ";base64,"
    +					+ image.substring(comma + 1);
    +			}
    +			
    +			style[mxConstants.STYLE_IMAGE] = image;
    +		}
    +	}
    +
    +	return style;
    +};
    +
    +/**
    + * Function: setCellStyle
    + * 
    + * Sets the style of the specified cells. If no cells are given, then the
    + * selection cells are changed.
    + * 
    + * Parameters:
    + * 
    + * style - String representing the new style of the cells.
    + * cells - Optional array of <mxCells> to set the style for. Default is the
    + * selection cells.
    + */
    +mxGraph.prototype.setCellStyle = function(style, cells)
    +{
    +	cells = cells || this.getSelectionCells();
    +	
    +	if (cells != null)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				this.model.setStyle(cells[i], style);
    +			}
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: toggleCellStyle
    + * 
    + * Toggles the boolean value for the given key in the style of the
    + * given cell. If no cell is specified then the selection cell is
    + * used.
    + * 
    + * Parameter:
    + * 
    + * key - String representing the key for the boolean value to be toggled.
    + * defaultValue - Optional boolean default value if no value is defined.
    + * Default is false.
    + * cell - Optional <mxCell> whose style should be modified. Default is
    + * the selection cell.
    + */
    +mxGraph.prototype.toggleCellStyle = function(key, defaultValue, cell)
    +{
    +	cell = cell || this.getSelectionCell();
    +	
    +	this.toggleCellStyles(key, defaultValue, [cell]);
    +};
    +
    +/**
    + * Function: toggleCellStyles
    + * 
    + * Toggles the boolean value for the given key in the style of the given
    + * cells. If no cells are specified, then the selection cells are used. For
    + * example, this can be used to toggle <mxConstants.STYLE_ROUNDED> or any
    + * other style with a boolean value.
    + * 
    + * Parameter:
    + * 
    + * key - String representing the key for the boolean value to be toggled.
    + * defaultValue - Optional boolean default value if no value is defined.
    + * Default is false.
    + * cells - Optional array of <mxCells> whose styles should be modified.
    + * Default is the selection cells.
    + */
    +mxGraph.prototype.toggleCellStyles = function(key, defaultValue, cells)
    +{
    +	defaultValue = (defaultValue != null) ? defaultValue : false;
    +	cells = cells || this.getSelectionCells();
    +	
    +	if (cells != null && cells.length > 0)
    +	{
    +		var state = this.view.getState(cells[0]);
    +		var style = (state != null) ? state.style : this.getCellStyle(cells[0]);
    +		
    +		if (style != null)
    +		{
    +			var val = (mxUtils.getValue(style, key, defaultValue)) ? 0 : 1;
    +			this.setCellStyles(key, val, cells);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: setCellStyles
    + * 
    + * Sets the key to value in the styles of the given cells. This will modify
    + * the existing cell styles in-place and override any existing assignment
    + * for the given key. If no cells are specified, then the selection cells
    + * are changed. If no value is specified, then the respective key is
    + * removed from the styles.
    + * 
    + * Parameters:
    + * 
    + * key - String representing the key to be assigned.
    + * value - String representing the new value for the key.
    + * cells - Optional array of <mxCells> to change the style for. Default is
    + * the selection cells.
    + */
    +mxGraph.prototype.setCellStyles = function(key, value, cells)
    +{
    +	cells = cells || this.getSelectionCells();
    +	mxUtils.setCellStyles(this.model, cells, key, value);
    +};
    +
    +/**
    + * Function: toggleCellStyleFlags
    + * 
    + * Toggles the given bit for the given key in the styles of the specified
    + * cells.
    + * 
    + * Parameters:
    + * 
    + * key - String representing the key to toggle the flag in.
    + * flag - Integer that represents the bit to be toggled.
    + * cells - Optional array of <mxCells> to change the style for. Default is
    + * the selection cells.
    + */
    +mxGraph.prototype.toggleCellStyleFlags = function(key, flag, cells)
    +{
    +	this.setCellStyleFlags(key, flag, null, cells);
    +};
    +
    +/**
    + * Function: setCellStyleFlags
    + * 
    + * Sets or toggles the given bit for the given key in the styles of the
    + * specified cells.
    + * 
    + * Parameters:
    + * 
    + * key - String representing the key to toggle the flag in.
    + * flag - Integer that represents the bit to be toggled.
    + * value - Boolean value to be used or null if the value should be toggled.
    + * cells - Optional array of <mxCells> to change the style for. Default is
    + * the selection cells.
    + */
    +mxGraph.prototype.setCellStyleFlags = function(key, flag, value, cells)
    +{
    +	cells = cells || this.getSelectionCells();
    +	
    +	if (cells != null && cells.length > 0)
    +	{
    +		if (value == null)
    +		{
    +			var state = this.view.getState(cells[0]);
    +			var style = (state != null) ? state.style : this.getCellStyle(cells[0]);
    +			
    +			if (style != null)
    +			{
    +				var current = parseInt(style[key] || 0);
    +				value = !((current & flag) == flag);
    +			}
    +		}
    +
    +		mxUtils.setCellStyleFlags(this.model, cells, key, flag, value);
    +	}
    +};
    +
    +/**
    + * Group: Cell alignment and orientation
    + */
    +
    +/**
    + * Function: alignCells
    + * 
    + * Aligns the given cells vertically or horizontally according to the given
    + * alignment using the optional parameter as the coordinate.
    + * 
    + * Parameters:
    + * 
    + * align - Specifies the alignment. Possible values are all constants in
    + * mxConstants with an ALIGN prefix.
    + * cells - Array of <mxCells> to be aligned.
    + * param - Optional coordinate for the alignment.
    + */
    +mxGraph.prototype.alignCells = function(align, cells, param)
    +{
    +	if (cells == null)
    +	{
    +		cells = this.getSelectionCells();
    +	}
    +	
    +	if (cells != null && cells.length > 1)
    +	{
    +		// Finds the required coordinate for the alignment
    +		if (param == null)
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				var geo = this.getCellGeometry(cells[i]);
    +				
    +				if (geo != null && !this.model.isEdge(cells[i]))
    +				{
    +					if (param == null)
    +					{
    +						if (align == mxConstants.ALIGN_CENTER)
    +						{
    +							param = geo.x + geo.width / 2;
    +							break;
    +						}
    +						else if (align == mxConstants.ALIGN_RIGHT)
    +						{
    +							param = geo.x + geo.width;
    +						}
    +						else if (align == mxConstants.ALIGN_TOP)
    +						{
    +							param = geo.y;
    +						}
    +						else if (align == mxConstants.ALIGN_MIDDLE)
    +						{
    +							param = geo.y + geo.height / 2;
    +							break;
    +						}
    +						else if (align == mxConstants.ALIGN_BOTTOM)
    +						{
    +							param = geo.y + geo.height;
    +						}
    +						else
    +						{
    +							param = geo.x;
    +						}
    +					}
    +					else
    +					{
    +						if (align == mxConstants.ALIGN_RIGHT)
    +						{
    +							param = Math.max(param, geo.x + geo.width);
    +						}
    +						else if (align == mxConstants.ALIGN_TOP)
    +						{
    +							param = Math.min(param, geo.y);
    +						}
    +						else if (align == mxConstants.ALIGN_BOTTOM)
    +						{
    +							param = Math.max(param, geo.y + geo.height);
    +						}
    +						else
    +						{
    +							param = Math.min(param, geo.x);
    +						}
    +					}
    +				}
    +			}
    +		}
    +
    +		// Aligns the cells to the coordinate
    +		if (param != null)
    +		{
    +			this.model.beginUpdate();
    +			try
    +			{
    +				for (var i = 0; i < cells.length; i++)
    +				{
    +					var geo = this.getCellGeometry(cells[i]);
    +					
    +					if (geo != null && !this.model.isEdge(cells[i]))
    +					{
    +						geo = geo.clone();
    +						
    +						if (align == mxConstants.ALIGN_CENTER)
    +						{
    +							geo.x = param - geo.width / 2;
    +						}
    +						else if (align == mxConstants.ALIGN_RIGHT)
    +						{
    +							geo.x = param - geo.width;
    +						}
    +						else if (align == mxConstants.ALIGN_TOP)
    +						{
    +							geo.y = param;
    +						}
    +						else if (align == mxConstants.ALIGN_MIDDLE)
    +						{
    +							geo.y = param - geo.height / 2;
    +						}
    +						else if (align == mxConstants.ALIGN_BOTTOM)
    +						{
    +							geo.y = param - geo.height;
    +						}
    +						else
    +						{
    +							geo.x = param;
    +						}
    +						
    +						this.model.setGeometry(cells[i], geo);
    +					}
    +				}
    +				
    +				this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,
    +						'align', align, 'cells', cells));
    +			}
    +			finally
    +			{
    +				this.model.endUpdate();
    +			}
    +		}
    +	}
    +	
    +	return cells;
    +};
    +
    +/**
    + * Function: flipEdge
    + * 
    + * Toggles the style of the given edge between null (or empty) and
    + * <alternateEdgeStyle>. This method fires <mxEvent.FLIP_EDGE> while the
    + * transaction is in progress. Returns the edge that was flipped.
    + * 
    + * Here is an example that overrides this implementation to invert the
    + * value of <mxConstants.STYLE_ELBOW> without removing any existing styles.
    + * 
    + * (code)
    + * graph.flipEdge = function(edge)
    + * {
    + *   if (edge != null)
    + *   {
    + *     var state = this.view.getState(edge);
    + *     var style = (state != null) ? state.style : this.getCellStyle(edge);
    + *     
    + *     if (style != null)
    + *     {
    + *       var elbow = mxUtils.getValue(style, mxConstants.STYLE_ELBOW,
    + *           mxConstants.ELBOW_HORIZONTAL);
    + *       var value = (elbow == mxConstants.ELBOW_HORIZONTAL) ?
    + *           mxConstants.ELBOW_VERTICAL : mxConstants.ELBOW_HORIZONTAL;
    + *       this.setCellStyles(mxConstants.STYLE_ELBOW, value, [edge]);
    + *     }
    + *   }
    + * };
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> whose style should be changed.
    + */
    +mxGraph.prototype.flipEdge = function(edge)
    +{
    +	if (edge != null &&
    +		this.alternateEdgeStyle != null)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			var style = this.model.getStyle(edge);
    +
    +			if (style == null || style.length == 0)
    +			{
    +				this.model.setStyle(edge, this.alternateEdgeStyle);
    +			}
    +			else
    +			{
    +				this.model.setStyle(edge, null);
    +			}
    +
    +			// Removes all existing control points
    +			this.resetEdge(edge);
    +			this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE, 'edge', edge));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +
    +	return edge;
    +};
    +
    +/**
    + * Function: addImageBundle
    + *
    + * Adds the specified <mxImageBundle>.
    + */
    +mxGraph.prototype.addImageBundle = function(bundle)
    +{
    +	this.imageBundles.push(bundle);
    +};
    +
    +/**
    + * Function: removeImageBundle
    + * 
    + * Removes the specified <mxImageBundle>.
    + */
    +mxGraph.prototype.removeImageBundle = function(bundle)
    +{
    +	var tmp = [];
    +	
    +	for (var i = 0; i < this.imageBundles.length; i++)
    +	{
    +		if (this.imageBundles[i] != bundle)
    +		{
    +			tmp.push(this.imageBundles[i]);
    +		}
    +	}
    +	
    +	this.imageBundles = tmp;
    +};
    +
    +/**
    + * Function: getImageFromBundles
    + *
    + * Searches all <imageBundles> for the specified key and returns the value
    + * for the first match or null if the key is not found.
    + */
    +mxGraph.prototype.getImageFromBundles = function(key)
    +{
    +	if (key != null)
    +	{
    +		for (var i = 0; i < this.imageBundles.length; i++)
    +		{
    +			var image = this.imageBundles[i].getImage(key);
    +			
    +			if (image != null)
    +			{
    +				return image;
    +			}
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Group: Order
    + */
    +
    +/**
    + * Function: orderCells
    + * 
    + * Moves the given cells to the front or back. The change is carried out
    + * using <cellsOrdered>. This method fires <mxEvent.ORDER_CELLS> while the
    + * transaction is in progress.
    + * 
    + * Parameters:
    + * 
    + * back - Boolean that specifies if the cells should be moved to back.
    + * cells - Array of <mxCells> to move to the background. If null is
    + * specified then the selection cells are used.
    + */
    + mxGraph.prototype.orderCells = function(back, cells)
    + {
    +	if (cells == null)
    +	{
    +		cells = mxUtils.sortCells(this.getSelectionCells(), true);
    +	}
    +
    +	this.model.beginUpdate();
    +	try
    +	{
    +		this.cellsOrdered(cells, back);
    +		this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,
    +				'back', back, 'cells', cells));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +
    +	return cells;
    + };
    +
    +/**
    + * Function: cellsOrdered
    + * 
    + * Moves the given cells to the front or back. This method fires
    + * <mxEvent.CELLS_ORDERED> while the transaction is in progress.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> whose order should be changed.
    + * back - Boolean that specifies if the cells should be moved to back.
    + */
    + mxGraph.prototype.cellsOrdered = function(cells, back)
    + {
    +	if (cells != null)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				var parent = this.model.getParent(cells[i]);
    +
    +				if (back)
    +				{
    +					this.model.add(parent, cells[i], i);
    +				}
    +				else
    +				{
    +					this.model.add(parent, cells[i],
    +							this.model.getChildCount(parent) - 1);
    +				}
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,
    +					'back', back, 'cells', cells));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Group: Grouping
    + */
    +
    +/**
    + * Function: groupCells
    + * 
    + * Adds the cells into the given group. The change is carried out using
    + * <cellsAdded>, <cellsMoved> and <cellsResized>. This method fires
    + * <mxEvent.GROUP_CELLS> while the transaction is in progress. Returns the
    + * new group. A group is only created if there is at least one entry in the
    + * given array of cells.
    + * 
    + * Parameters:
    + * 
    + * group - <mxCell> that represents the target group. If null is specified
    + * then a new group is created using <createGroupCell>.
    + * border - Optional integer that specifies the border between the child
    + * area and the group bounds. Default is 0.
    + * cells - Optional array of <mxCells> to be grouped. If null is specified
    + * then the selection cells are used.
    + */
    +mxGraph.prototype.groupCells = function(group, border, cells)
    +{
    +	if (cells == null)
    +	{
    +		cells = mxUtils.sortCells(this.getSelectionCells(), true);
    +	}
    +
    +	cells = this.getCellsForGroup(cells);
    +
    +	if (group == null)
    +	{
    +		group = this.createGroupCell(cells);
    +	}
    +
    +	var bounds = this.getBoundsForGroup(group, cells, border);
    +
    +	if (cells.length > 0 && bounds != null)
    +	{
    +		// Uses parent of group or previous parent of first child
    +		var parent = this.model.getParent(group);
    +		
    +		if (parent == null)
    +		{
    +			parent = this.model.getParent(cells[0]);
    +		}
    +
    +		this.model.beginUpdate();
    +		try
    +		{
    +			// Checks if the group has a geometry and
    +			// creates one if one does not exist
    +			if (this.getCellGeometry(group) == null)
    +			{
    +				this.model.setGeometry(group, new mxGeometry());
    +			}
    +
    +			// Adds the children into the group and moves
    +			var index = this.model.getChildCount(group);
    +			this.cellsAdded(cells, group, index, null, null, false);
    +			this.cellsMoved(cells, -bounds.x, -bounds.y, false, true);
    +
    +			// Adds the group into the parent and resizes
    +			index = this.model.getChildCount(parent);
    +			this.cellsAdded([group], parent, index, null, null, false);
    +			this.cellsResized([group], [bounds]);
    +
    +			this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,
    +					'group', group, 'border', border, 'cells', cells));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +
    +	return group;
    +};
    +
    +/**
    + * Function: getCellsForGroup
    + * 
    + * Returns the cells with the same parent as the first cell
    + * in the given array.
    + */
    +mxGraph.prototype.getCellsForGroup = function(cells)
    +{
    +	var result = [];
    +
    +	if (cells != null && cells.length > 0)
    +	{
    +		var parent = this.model.getParent(cells[0]);
    +		result.push(cells[0]);
    +
    +		// Filters selection cells with the same parent
    +		for (var i = 1; i < cells.length; i++)
    +		{
    +			if (this.model.getParent(cells[i]) == parent)
    +			{
    +				result.push(cells[i]);
    +			}
    +		}
    +	}
    +
    +	return result;
    +};
    +
    +/**
    + * Function: getBoundsForGroup
    + * 
    + * Returns the bounds to be used for the given group and children.
    + */
    +mxGraph.prototype.getBoundsForGroup = function(group, children, border)
    +{
    +	var result = this.getBoundingBoxFromGeometry(children);
    +
    +	if (result != null)
    +	{
    +		if (this.isSwimlane(group))
    +		{
    +			var size = this.getStartSize(group);
    +			
    +			result.x -= size.width;
    +			result.y -= size.height;
    +			result.width += size.width;
    +			result.height += size.height;
    +		}
    +		
    +		// Adds the border
    +		result.x -= border;
    +		result.y -= border;
    +		result.width += 2 * border;
    +		result.height += 2 * border;
    +	}			
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: createGroupCell
    + * 
    + * Hook for creating the group cell to hold the given array of <mxCells> if
    + * no group cell was given to the <group> function.
    + * 
    + * The following code can be used to set the style of new group cells.
    + * 
    + * (code)
    + * var graphCreateGroupCell = graph.createGroupCell;
    + * graph.createGroupCell = function(cells)
    + * {
    + *   var group = graphCreateGroupCell.apply(this, arguments);
    + *   group.setStyle('group');
    + *   
    + *   return group;
    + * };
    + */
    +mxGraph.prototype.createGroupCell = function(cells)
    +{
    +	var group = new mxCell('');
    +	group.setVertex(true);
    +	group.setConnectable(false);
    +	
    +	return group;
    +};
    +
    +/**
    + * Function: ungroupCells
    + * 
    + * Ungroups the given cells by moving the children the children to their
    + * parents parent and removing the empty groups. Returns the children that
    + * have been removed from the groups.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of cells to be ungrouped. If null is specified then the
    + * selection cells are used.
    + */
    +mxGraph.prototype.ungroupCells = function(cells)
    +{
    +	var result = [];
    +	
    +	if (cells == null)
    +	{
    +		cells = this.getSelectionCells();
    +
    +		// Finds the cells with children
    +		var tmp = [];
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (this.model.getChildCount(cells[i]) > 0)
    +			{
    +				tmp.push(cells[i]);
    +			}
    +		}
    +
    +		cells = tmp;
    +	}
    +	
    +	if (cells != null && cells.length > 0)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				var children = this.model.getChildren(cells[i]);
    +				
    +				if (children != null && children.length > 0)
    +				{
    +					children = children.slice();
    +					var parent = this.model.getParent(cells[i]);
    +					var index = this.model.getChildCount(parent);
    +
    +					this.cellsAdded(children, parent, index, null, null, true);
    +					result = result.concat(children);
    +				}
    +			}
    +
    +			this.cellsRemoved(this.addAllEdges(cells));
    +			this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,
    +					'cells', cells));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: removeCellsFromParent
    + * 
    + * Removes the specified cells from their parents and adds them to the
    + * default parent. Returns the cells that were removed from their parents.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be removed from their parents.
    + */
    +mxGraph.prototype.removeCellsFromParent = function(cells)
    +{
    +	if (cells == null)
    +	{
    +		cells = this.getSelectionCells();
    +	}
    +	
    +	this.model.beginUpdate();
    +	try
    +	{
    +		var parent = this.getDefaultParent();
    +		var index = this.model.getChildCount(parent);
    +
    +		this.cellsAdded(cells, parent, index, null, null, true);
    +		this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,
    +				'cells', cells));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +
    +	return cells;
    +};
    +
    +/**
    + * Function: updateGroupBounds
    + * 
    + * Updates the bounds of the given array of groups so that it includes
    + * all child vertices.
    + * 
    + * Parameters:
    + * 
    + * cells - The groups whose bounds should be updated.
    + * border - Optional border to be added in the group. Default is 0.
    + * moveGroup - Optional boolean that allows the group to be moved. Default
    + * is false.
    + */
    +mxGraph.prototype.updateGroupBounds = function(cells, border, moveGroup)
    +{
    +	if (cells == null)
    +	{
    +		cells = this.getSelectionCells();
    +	}
    +	
    +	border = (border != null) ? border : 0;
    +	moveGroup = (moveGroup != null) ? moveGroup : false;
    +
    +	this.model.beginUpdate();
    +	try
    +	{
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			var geo = this.getCellGeometry(cells[i]);
    +			
    +			if (geo != null)
    +			{
    +				var children = this.getChildCells(cells[i]);
    +				
    +				if (children != null && children.length > 0)
    +				{
    +					var childBounds = this.getBoundingBoxFromGeometry(children);
    +					
    +					if (childBounds.width > 0 && childBounds.height > 0)
    +					{
    +						var size = (this.isSwimlane(cells[i])) ?
    +								this.getStartSize(cells[i]) : new mxRectangle();
    +
    +						geo = geo.clone();
    +						
    +						if (moveGroup)
    +						{
    +							geo.x += childBounds.x - size.width - border;
    +							geo.y += childBounds.y - size.height - border;
    +						}
    +						
    +						geo.width = childBounds.width + size.width + 2 * border;
    +						geo.height = childBounds.height + size.height + 2 * border;
    +						
    +						this.model.setGeometry(cells[i], geo);
    +						this.moveCells(children, -childBounds.x + size.width + border,
    +							-childBounds.y + size.height + border);
    +					}
    +				}
    +			}
    +		}
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +
    +	return cells;
    +};
    +
    +/**
    + * Group: Cell cloning, insertion and removal
    + */
    +
    +/**
    + * Function: cloneCells
    + * 
    + * Returns the clones for the given cells. If the terminal of an edge is
    + * not in the given array, then the respective end is assigned a terminal
    + * point and the terminal is removed.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be cloned.
    + * allowInvalidEdges - Optional boolean that specifies if invalid edges
    + * should be cloned. Default is true.
    + */
    +mxGraph.prototype.cloneCells = function(cells, allowInvalidEdges)
    +{
    +	allowInvalidEdges = (allowInvalidEdges != null) ? allowInvalidEdges : true;
    +	var clones = null;
    +	
    +	if (cells != null)
    +	{
    +		// Creates a hashtable for cell lookups
    +		var hash = new Object();
    +		var tmp = [];
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			var id = mxCellPath.create(cells[i]);
    +			hash[id] = cells[i];
    +			tmp.push(cells[i]);
    +		}
    +		
    +		if (tmp.length > 0)
    +		{
    +			var scale = this.view.scale;
    +			var trans = this.view.translate;
    +			clones = this.model.cloneCells(cells, true);
    +		
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				if (!allowInvalidEdges && this.model.isEdge(clones[i]) &&
    +					this.getEdgeValidationError(clones[i],
    +						this.model.getTerminal(clones[i], true),
    +						this.model.getTerminal(clones[i], false)) != null)
    +				{
    +					clones[i] = null;
    +				}
    +				else
    +				{
    +					var g = this.model.getGeometry(clones[i]);
    +					
    +					if (g != null)
    +					{
    +						var state = this.view.getState(cells[i]);
    +						var pstate = this.view.getState(
    +							this.model.getParent(cells[i]));
    +						
    +						if (state != null && pstate != null)
    +						{
    +							var dx = pstate.origin.x;
    +							var dy = pstate.origin.y;
    +							
    +							if (this.model.isEdge(clones[i]))
    +							{
    +								var pts = state.absolutePoints;
    +								
    +								// Checks if the source is cloned or sets the terminal point
    +								var src = this.model.getTerminal(cells[i], true);
    +								var srcId = mxCellPath.create(src);
    +								
    +								while (src != null && hash[srcId] == null)
    +								{
    +									src = this.model.getParent(src);
    +									srcId = mxCellPath.create(src);
    +								}
    +								
    +								if (src == null)
    +								{
    +									g.setTerminalPoint(
    +										new mxPoint(pts[0].x / scale - trans.x,
    +											pts[0].y / scale - trans.y), true);
    +								}
    +								
    +								// Checks if the target is cloned or sets the terminal point
    +								var trg = this.model.getTerminal(cells[i], false);
    +								var trgId = mxCellPath.create(trg);
    +								
    +								while (trg != null && hash[trgId] == null)
    +								{
    +									trg = this.model.getParent(trg);
    +									trgId = mxCellPath.create(trg);
    +								}
    +								
    +								if (trg == null)
    +								{
    +									var n = pts.length - 1;
    +									g.setTerminalPoint(
    +										new mxPoint(pts[n].x / scale - trans.x,
    +											pts[n].y / scale - trans.y), false);
    +								}
    +								
    +								// Translates the control points
    +								var points = g.points;
    +								
    +								if (points != null)
    +								{
    +									for (var j = 0; j < points.length; j++)
    +									{
    +										points[j].x += dx;
    +										points[j].y += dy;
    +									}
    +								}
    +							}
    +							else
    +							{
    +								g.x += dx;
    +								g.y += dy;
    +							}
    +						}
    +					}
    +				}
    +			}
    +		}
    +		else
    +		{
    +			clones = [];
    +		}
    +	}
    +	
    +	return clones;
    +};
    +
    +/**
    + * Function: insertVertex
    + * 
    + * Adds a new vertex into the given parent <mxCell> using value as the user
    + * object and the given coordinates as the <mxGeometry> of the new vertex.
    + * The id and style are used for the respective properties of the new
    + * <mxCell>, which is returned.
    + *
    + * When adding new vertices from a mouse event, one should take into
    + * account the offset of the graph container and the scale and translation
    + * of the view in order to find the correct unscaled, untranslated
    + * coordinates using <mxGraph.getPointForEvent> as follows:
    + * 
    + * (code)
    + * var pt = graph.getPointForEvent(evt);
    + * var parent = graph.getDefaultParent();
    + * graph.insertVertex(parent, null,
    + * 			'Hello, World!', x, y, 220, 30);
    + * (end)
    + * 
    + * For adding image cells, the style parameter can be assigned as
    + * 
    + * (code)
    + * stylename;image=imageUrl
    + * (end)
    + * 
    + * See <mxGraph> for more information on using images.
    + *
    + * Parameters:
    + * 
    + * parent - <mxCell> that specifies the parent of the new vertex.
    + * id - Optional string that defines the Id of the new vertex.
    + * value - Object to be used as the user object.
    + * x - Integer that defines the x coordinate of the vertex.
    + * y - Integer that defines the y coordinate of the vertex.
    + * width - Integer that defines the width of the vertex.
    + * height - Integer that defines the height of the vertex.
    + * style - Optional string that defines the cell style.
    + * relative - Optional boolean that specifies if the geometry is relative.
    + * Default is false.
    + */
    +mxGraph.prototype.insertVertex = function(parent, id, value,
    +	x, y, width, height, style, relative)
    +{
    +	var vertex = this.createVertex(parent, id, value, x, y, width, height, style, relative);
    +	
    +	return this.addCell(vertex, parent);
    +};
    +
    +/**
    + * Function: createVertex
    + * 
    + * Hook method that creates the new vertex for <insertVertex>.
    + */
    +mxGraph.prototype.createVertex = function(parent, id, value,
    +		x, y, width, height, style, relative)
    +{
    +	// Creates the geometry for the vertex
    +	var geometry = new mxGeometry(x, y, width, height);
    +	geometry.relative = (relative != null) ? relative : false;
    +	
    +	// Creates the vertex
    +	var vertex = new mxCell(value, geometry, style);
    +	vertex.setId(id);
    +	vertex.setVertex(true);
    +	vertex.setConnectable(true);
    +	
    +	return vertex;
    +};
    +	
    +/**
    + * Function: insertEdge
    + * 
    + * Adds a new edge into the given parent <mxCell> using value as the user
    + * object and the given source and target as the terminals of the new edge.
    + * The id and style are used for the respective properties of the new
    + * <mxCell>, which is returned.
    + *
    + * Parameters:
    + * 
    + * parent - <mxCell> that specifies the parent of the new edge.
    + * id - Optional string that defines the Id of the new edge.
    + * value - JavaScript object to be used as the user object.
    + * source - <mxCell> that defines the source of the edge.
    + * target - <mxCell> that defines the target of the edge.
    + * style - Optional string that defines the cell style.
    + */
    +mxGraph.prototype.insertEdge = function(parent, id, value, source, target, style)
    +{
    +	var edge = this.createEdge(parent, id, value, source, target, style);
    +	
    +	return this.addEdge(edge, parent, source, target);
    +};
    +
    +/**
    + * Function: createEdge
    + * 
    + * Hook method that creates the new edge for <insertEdge>. This
    + * implementation does not set the source and target of the edge, these
    + * are set when the edge is added to the model.
    + * 
    + */
    +mxGraph.prototype.createEdge = function(parent, id, value, source, target, style)
    +{
    +	// Creates the edge
    +	var edge = new mxCell(value, new mxGeometry(), style);
    +	edge.setId(id);
    +	edge.setEdge(true);
    +	edge.geometry.relative = true;
    +	
    +	return edge;
    +};
    +
    +/**
    + * Function: addEdge
    + * 
    + * Adds the edge to the parent and connects it to the given source and
    + * target terminals. This is a shortcut method. Returns the edge that was
    + * added.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> to be inserted into the given parent.
    + * parent - <mxCell> that represents the new parent. If no parent is
    + * given then the default parent is used.
    + * source - Optional <mxCell> that represents the source terminal.
    + * target - Optional <mxCell> that represents the target terminal.
    + * index - Optional index to insert the cells at. Default is to append.
    + */
    +mxGraph.prototype.addEdge = function(edge, parent, source, target, index)
    +{
    +	return this.addCell(edge, parent, index, source, target);
    +};
    +
    +/**
    + * Function: addCell
    + * 
    + * Adds the cell to the parent and connects it to the given source and
    + * target terminals. This is a shortcut method. Returns the cell that was
    + * added.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to be inserted into the given parent.
    + * parent - <mxCell> that represents the new parent. If no parent is
    + * given then the default parent is used.
    + * index - Optional index to insert the cells at. Default is to append.
    + * source - Optional <mxCell> that represents the source terminal.
    + * target - Optional <mxCell> that represents the target terminal.
    + */
    +mxGraph.prototype.addCell = function(cell, parent, index, source, target)
    +{
    +	return this.addCells([cell], parent, index, source, target)[0];
    +};
    +
    +/**
    + * Function: addCells
    + * 
    + * Adds the cells to the parent at the given index, connecting each cell to
    + * the optional source and target terminal. The change is carried out using
    + * <cellsAdded>. This method fires <mxEvent.ADD_CELLS> while the
    + * transaction is in progress. Returns the cells that were added.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be inserted.
    + * parent - <mxCell> that represents the new parent. If no parent is
    + * given then the default parent is used.
    + * index - Optional index to insert the cells at. Default is to append.
    + * source - Optional source <mxCell> for all inserted cells.
    + * target - Optional target <mxCell> for all inserted cells.
    + */
    +mxGraph.prototype.addCells = function(cells, parent, index, source, target)
    +{
    +	if (parent == null)
    +	{
    +		parent = this.getDefaultParent();
    +	}
    +	
    +	if (index == null)
    +	{
    +		index = this.model.getChildCount(parent);
    +	}
    +	
    +	this.model.beginUpdate();
    +	try
    +	{
    +		this.cellsAdded(cells, parent, index, source, target, false);
    +		this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS, 'cells', cells,
    +				'parent', parent, 'index', index, 'source', source, 'target', target));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +
    +	return cells;
    +};
    +
    +/**
    + * Function: cellsAdded
    + * 
    + * Adds the specified cells to the given parent. This method fires
    + * <mxEvent.CELLS_ADDED> while the transaction is in progress.
    + */
    +mxGraph.prototype.cellsAdded = function(cells, parent, index, source, target, absolute)
    +{
    +	if (cells != null && parent != null && index != null)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			var parentState = (absolute) ? this.view.getState(parent) : null;
    +			var o1 = (parentState != null) ? parentState.origin : null;
    +			var zero = new mxPoint(0, 0);
    +
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				if (cells[i] == null)
    +				{
    +					index--;
    +				}
    +				else
    +				{
    +					var previous = this.model.getParent(cells[i]);
    +	
    +					// Keeps the cell at its absolute location
    +					if (o1 != null && cells[i] != parent && parent != previous)
    +					{
    +						var oldState = this.view.getState(previous);
    +						var o2 = (oldState != null) ? oldState.origin : zero;
    +						var geo = this.model.getGeometry(cells[i]);
    +	
    +						if (geo != null)
    +						{
    +							var dx = o2.x - o1.x;
    +							var dy = o2.y - o1.y;
    +	
    +							// FIXME: Cells should always be inserted first before any other edit
    +							// to avoid forward references in sessions.
    +							geo = geo.clone();
    +							geo.translate(dx, dy);
    +							
    +							if (!geo.relative && this.model.isVertex(cells[i]) &&
    +								!this.isAllowNegativeCoordinates())
    +							{
    +								geo.x = Math.max(0, geo.x);
    +								geo.y = Math.max(0, geo.y);
    +							}
    +							
    +							this.model.setGeometry(cells[i], geo);
    +						}
    +					}
    +	
    +					// Decrements all following indices
    +					// if cell is already in parent
    +					if (parent == previous)
    +					{
    +						index--;
    +					}
    +	
    +					this.model.add(parent, cells[i], index + i);
    +	
    +					// Extends the parent
    +					if (this.isExtendParentsOnAdd() && this.isExtendParent(cells[i]))
    +					{
    +						this.extendParent(cells[i]);
    +					}
    +	
    +					// Constrains the child
    +					this.constrainChild(cells[i]);
    +					
    +					// Sets the source terminal
    +					if (source != null)
    +					{
    +						this.cellConnected(cells[i], source, true);
    +					}
    +					
    +					// Sets the target terminal
    +					if (target != null)
    +					{
    +						this.cellConnected(cells[i], target, false);
    +					}
    +				}
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED, 'cells', cells,
    +				'parent', parent, 'index', index, 'source', source, 'target', target,
    +				'absolute', absolute));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: removeCells
    + * 
    + * Removes the given cells from the graph including all connected edges if
    + * includeEdges is true. The change is carried out using <cellsRemoved>.
    + * This method fires <mxEvent.REMOVE_CELLS> while the transaction is in
    + * progress. The removed cells are returned as an array.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to remove. If null is specified then the
    + * selection cells which are deletable are used.
    + * includeEdges - Optional boolean which specifies if all connected edges
    + * should be removed as well. Default is true.
    + */
    +mxGraph.prototype.removeCells = function(cells, includeEdges)
    +{
    +	includeEdges = (includeEdges != null) ? includeEdges : true;
    +	
    +	if (cells == null)
    +	{
    +		cells = this.getDeletableCells(this.getSelectionCells());
    +	}
    +
    +	// Adds all edges to the cells
    +	if (includeEdges)
    +	{
    +		cells = this.getDeletableCells(this.addAllEdges(cells));
    +	}
    +
    +	this.model.beginUpdate();
    +	try
    +	{
    +		this.cellsRemoved(cells);
    +		this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,
    +				'cells', cells, 'includeEdges', includeEdges));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +	
    +	return cells;
    +};
    +
    +/**
    + * Function: cellsRemoved
    + * 
    + * Removes the given cells from the model. This method fires
    + * <mxEvent.CELLS_REMOVED> while the transaction is in progress.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to remove.
    + */
    +mxGraph.prototype.cellsRemoved = function(cells)
    +{
    +	if (cells != null && cells.length > 0)
    +	{
    +		var scale = this.view.scale;
    +		var tr = this.view.translate;
    +		
    +		this.model.beginUpdate();
    +		try
    +		{
    +			// Creates hashtable for faster lookup
    +			var hash = new Object();
    +			
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				var id = mxCellPath.create(cells[i]);
    +				hash[id] = cells[i];
    +			}
    +			
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				// Disconnects edges which are not in cells
    +				var edges = this.getConnections(cells[i]);
    +				
    +				for (var j = 0; j < edges.length; j++)
    +				{
    +					var id = mxCellPath.create(edges[j]);
    +					
    +					if (hash[id] == null)
    +					{
    +						var geo = this.model.getGeometry(edges[j]);
    +
    +						if (geo != null)
    +						{
    +							var state = this.view.getState(edges[j]);
    +									
    +							if (state != null)
    +							{
    +								geo = geo.clone();
    +								var source = state.getVisibleTerminal(true) == cells[i];
    +								var pts = state.absolutePoints;
    +								var n = (source) ? 0 : pts.length - 1;
    +
    +								geo.setTerminalPoint(
    +										new mxPoint(pts[n].x / scale - tr.x,
    +											pts[n].y / scale - tr.y), source);
    +								this.model.setTerminal(edges[j], null, source);
    +								this.model.setGeometry(edges[j], geo);
    +							}
    +						}
    +					}
    +				}
    +
    +				this.model.remove(cells[i]);
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,
    +					'cells', cells));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: splitEdge
    + * 
    + * Splits the given edge by adding the newEdge between the previous source
    + * and the given cell and reconnecting the source of the given edge to the
    + * given cell. This method fires <mxEvent.SPLIT_EDGE> while the transaction
    + * is in progress. Returns the new edge that was inserted.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> that represents the edge to be splitted.
    + * cells - <mxCells> that represents the cells to insert into the edge.
    + * newEdge - <mxCell> that represents the edge to be inserted.
    + * dx - Optional integer that specifies the vector to move the cells.
    + * dy - Optional integer that specifies the vector to move the cells.
    + */
    +mxGraph.prototype.splitEdge = function(edge, cells, newEdge, dx, dy)
    +{
    +	dx = dx || 0;
    +	dy = dy || 0;
    +	
    +	if (newEdge == null)
    +	{
    +		newEdge = this.cloneCells([edge])[0];
    +	}
    +
    +	var parent = this.model.getParent(edge);
    +	var source = this.model.getTerminal(edge, true);
    +
    +	this.model.beginUpdate();
    +	try
    +	{
    +		this.cellsMoved(cells, dx, dy, false, false);
    +		this.cellsAdded(cells, parent, this.model.getChildCount(parent), null, null,
    +				true);
    +		this.cellsAdded([newEdge], parent, this.model.getChildCount(parent),
    +				source, cells[0], false);
    +		this.cellConnected(edge, cells[0], true);
    +		this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE, 'edge', edge,
    +				'cells', cells, 'newEdge', newEdge, 'dx', dx, 'dy', dy));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +
    +	return newEdge;
    +};
    +
    +/**
    + * Group: Cell visibility
    + */
    +
    +/**
    + * Function: toggleCells
    + * 
    + * Sets the visible state of the specified cells and all connected edges
    + * if includeEdges is true. The change is carried out using <cellsToggled>.
    + * This method fires <mxEvent.TOGGLE_CELLS> while the transaction is in
    + * progress. Returns the cells whose visible state was changed.
    + * 
    + * Parameters:
    + * 
    + * show - Boolean that specifies the visible state to be assigned.
    + * cells - Array of <mxCells> whose visible state should be changed. If
    + * null is specified then the selection cells are used.
    + * includeEdges - Optional boolean indicating if the visible state of all
    + * connected edges should be changed as well. Default is true.
    + */
    +mxGraph.prototype.toggleCells = function(show, cells, includeEdges)
    +{
    +	if (cells == null)
    +	{
    +		cells = this.getSelectionCells();
    +	}
    +
    +	// Adds all connected edges recursively
    +	if (includeEdges)
    +	{
    +		cells = this.addAllEdges(cells);
    +	}
    +
    +	this.model.beginUpdate();
    +	try
    +	{
    +		this.cellsToggled(cells, show);
    +		this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,
    +			'show', show, 'cells', cells, 'includeEdges', includeEdges));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +
    +	return cells;
    +};
    +
    +/**
    + * Function: cellsToggled
    + * 
    + * Sets the visible state of the specified cells.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> whose visible state should be changed.
    + * show - Boolean that specifies the visible state to be assigned.
    + */
    +mxGraph.prototype.cellsToggled = function(cells, show)
    +{
    +	if (cells != null && cells.length > 0)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				this.model.setVisible(cells[i], show);
    +			}
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Group: Folding
    + */
    +
    +/**
    + * Function: foldCells
    + * 
    + * Sets the collapsed state of the specified cells and all descendants
    + * if recurse is true. The change is carried out using <cellsFolded>.
    + * This method fires <mxEvent.FOLD_CELLS> while the transaction is in
    + * progress. Returns the cells whose collapsed state was changed.
    + * 
    + * Parameters:
    + * 
    + * collapsed - Boolean indicating the collapsed state to be assigned.
    + * recurse - Optional boolean indicating if the collapsed state of all
    + * descendants should be set. Default is false.
    + * cells - Array of <mxCells> whose collapsed state should be set. If
    + * null is specified then the foldable selection cells are used.
    + * checkFoldable - Optional boolean indicating of isCellFoldable should be
    + * checked. Default is false.
    + */
    +mxGraph.prototype.foldCells = function(collapse, recurse, cells, checkFoldable)
    +{
    +	recurse = (recurse != null) ? recurse : false;
    +	
    +	if (cells == null)
    +	{
    +		cells = this.getFoldableCells(this.getSelectionCells(), collapse);
    +	}
    +
    +	this.stopEditing(false);
    +
    +	this.model.beginUpdate();
    +	try
    +	{
    +		this.cellsFolded(cells, collapse, recurse, checkFoldable);
    +		this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,
    +			'collapse', collapse, 'recurse', recurse, 'cells', cells));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +
    +	return cells;
    +};
    +
    +/**
    + * Function: cellsFolded
    + * 
    + * Sets the collapsed state of the specified cells. This method fires
    + * <mxEvent.CELLS_FOLDED> while the transaction is in progress. Returns the
    + * cells whose collapsed state was changed.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> whose collapsed state should be set.
    + * collapsed - Boolean indicating the collapsed state to be assigned.
    + * recurse - Boolean indicating if the collapsed state of all descendants
    + * should be set.
    + * checkFoldable - Optional boolean indicating of isCellFoldable should be
    + * checked. Default is false.
    + */
    +mxGraph.prototype.cellsFolded = function(cells, collapse, recurse, checkFoldable)
    +{
    +	if (cells != null && cells.length > 0)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				if ((!checkFoldable || this.isCellFoldable(cells[i], collapse)) &&
    +					collapse != this.isCellCollapsed(cells[i]))
    +				{
    +					this.model.setCollapsed(cells[i], collapse);
    +					this.swapBounds(cells[i], collapse);
    +
    +					if (this.isExtendParent(cells[i]))
    +					{
    +						this.extendParent(cells[i]);
    +					}
    +
    +					if (recurse)
    +					{
    +						var children = this.model.getChildren(cells[i]);
    +						this.foldCells(children, collapse, recurse);
    +					}
    +				}
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,
    +				'cells', cells, 'collapse', collapse, 'recurse', recurse));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: swapBounds
    + * 
    + * Swaps the alternate and the actual bounds in the geometry of the given
    + * cell invoking <updateAlternateBounds> before carrying out the swap.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the bounds should be swapped.
    + * willCollapse - Boolean indicating if the cell is going to be collapsed.
    + */
    +mxGraph.prototype.swapBounds = function(cell, willCollapse)
    +{
    +	if (cell != null)
    +	{
    +		var geo = this.model.getGeometry(cell);
    +		
    +		if (geo != null)
    +		{
    +			geo = geo.clone();
    +			
    +			this.updateAlternateBounds(cell, geo, willCollapse);
    +			geo.swap();
    +			
    +			this.model.setGeometry(cell, geo);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: updateAlternateBounds
    + * 
    + * Updates or sets the alternate bounds in the given geometry for the given
    + * cell depending on whether the cell is going to be collapsed. If no
    + * alternate bounds are defined in the geometry and
    + * <collapseToPreferredSize> is true, then the preferred size is used for
    + * the alternate bounds. The top, left corner is always kept at the same
    + * location.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the geometry is being udpated.
    + * g - <mxGeometry> for which the alternate bounds should be updated.
    + * willCollapse - Boolean indicating if the cell is going to be collapsed.
    + */
    +mxGraph.prototype.updateAlternateBounds = function(cell, geo, willCollapse)
    +{
    +	if (cell != null && geo != null)
    +	{
    +		if (geo.alternateBounds == null)
    +		{
    +			var bounds = geo;
    +			
    +			if (this.collapseToPreferredSize)
    +			{
    +				var tmp = this.getPreferredSizeForCell(cell);
    +				
    +				if (tmp != null)
    +				{
    +					bounds = tmp;
    +					var state = this.view.getState(cell);
    +					var style = (state != null) ? state.style : this.getCellStyle(cell);
    +
    +					var startSize = mxUtils.getValue(style, mxConstants.STYLE_STARTSIZE);
    +
    +					if (startSize > 0)
    +					{
    +						bounds.height = Math.max(bounds.height, startSize);
    +					}
    +				}
    +			}
    +			
    +			geo.alternateBounds = new mxRectangle(
    +					geo.x, geo.y, bounds.width, bounds.height);
    +		}
    +		else
    +		{
    +			geo.alternateBounds.x = geo.x;
    +			geo.alternateBounds.y = geo.y;
    +		}
    +	}
    +};
    +
    +/**
    + * Function: addAllEdges
    + * 
    + * Returns an array with the given cells and all edges that are connected
    + * to a cell or one of its descendants.
    + */
    +mxGraph.prototype.addAllEdges = function(cells)
    +{
    +	var allCells = cells.slice(); // FIXME: Required?
    +	allCells = allCells.concat(this.getAllEdges(cells));
    +	
    +	return allCells;
    +};
    +
    +/**
    + * Function: getAllEdges
    + * 
    + * Returns all edges connected to the given cells or its descendants.
    + */
    +mxGraph.prototype.getAllEdges = function(cells)
    +{
    +	var edges = [];
    +	
    +	if (cells != null)
    +	{
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			var edgeCount = this.model.getEdgeCount(cells[i]);
    +			
    +			for (var j = 0; j < edgeCount; j++)
    +			{
    +				edges.push(this.model.getEdgeAt(cells[i], j));
    +			}
    +
    +			// Recurses
    +			var children = this.model.getChildren(cells[i]);
    +			edges = edges.concat(this.getAllEdges(children));
    +		}
    +	}
    +	
    +	return edges;
    +};
    +
    +/**
    + * Group: Cell sizing
    + */
    +
    +/**
    + * Function: updateCellSize
    + * 
    + * Updates the size of the given cell in the model using <cellSizeUpdated>.
    + * This method fires <mxEvent.UPDATE_CELL_SIZE> while the transaction is in
    + * progress. Returns the cell whose size was updated.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose size should be updated.
    + */
    +mxGraph.prototype.updateCellSize = function(cell, ignoreChildren)
    +{
    +	ignoreChildren = (ignoreChildren != null) ? ignoreChildren : false;
    +	
    +	this.model.beginUpdate();				
    +	try
    +	{
    +		this.cellSizeUpdated(cell, ignoreChildren);
    +		this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,
    +				'cell', cell, 'ignoreChildren', ignoreChildren));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +	
    +	return cell;
    +};
    +
    +/**
    + * Function: cellSizeUpdated
    + * 
    + * Updates the size of the given cell in the model using
    + * <getPreferredSizeForCell> to get the new size.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the size should be changed.
    + */
    +mxGraph.prototype.cellSizeUpdated = function(cell, ignoreChildren)
    +{
    +	if (cell != null)
    +	{
    +		this.model.beginUpdate();				
    +		try
    +		{
    +			var size = this.getPreferredSizeForCell(cell);
    +			var geo = this.model.getGeometry(cell);
    +			
    +			if (size != null && geo != null)
    +			{
    +				var collapsed = this.isCellCollapsed(cell);
    +				geo = geo.clone();
    +
    +				if (this.isSwimlane(cell))
    +				{
    +					var state = this.view.getState(cell);
    +					var style = (state != null) ? state.style : this.getCellStyle(cell);
    +					var cellStyle = this.model.getStyle(cell);
    +
    +					if (cellStyle == null)
    +					{
    +						cellStyle = '';
    +					}
    +
    +					if (mxUtils.getValue(style, mxConstants.STYLE_HORIZONTAL, true))
    +					{
    +						cellStyle = mxUtils.setStyle(cellStyle,
    +								mxConstants.STYLE_STARTSIZE, size.height + 8);
    +
    +						if (collapsed)
    +						{
    +							geo.height = size.height + 8;
    +						}
    +
    +						geo.width = size.width;
    +					}
    +					else
    +					{
    +						cellStyle = mxUtils.setStyle(cellStyle,
    +								mxConstants.STYLE_STARTSIZE, size.width + 8);
    +
    +						if (collapsed)
    +						{
    +							geo.width = size.width + 8;
    +						}
    +
    +						geo.height = size.height;
    +					}
    +
    +					this.model.setStyle(cell, cellStyle);
    +				}
    +				else
    +				{
    +					geo.width = size.width;
    +					geo.height = size.height;
    +				}
    +
    +				if (!ignoreChildren && !collapsed)
    +				{
    +					var bounds = this.view.getBounds(this.model.getChildren(cell));
    +
    +					if (bounds != null)
    +					{
    +						var tr = this.view.translate;
    +						var scale = this.view.scale;
    +
    +						var width = (bounds.x + bounds.width) / scale - geo.x - tr.x;
    +						var height = (bounds.y + bounds.height) / scale - geo.y - tr.y;
    +
    +						geo.width = Math.max(geo.width, width);
    +						geo.height = Math.max(geo.height, height);
    +					}
    +				}
    +
    +				this.cellsResized([cell], [geo]);
    +			}
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getPreferredSizeForCell
    + * 
    + * Returns the preferred width and height of the given <mxCell> as an
    + * <mxRectangle>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the preferred size should be returned.
    + */
    +mxGraph.prototype.getPreferredSizeForCell = function(cell)
    +{
    +	var result = null;
    +	
    +	if (cell != null)
    +	{
    +		var state = this.view.getState(cell);
    +		var style = (state != null) ? state.style : this.getCellStyle(cell);
    +
    +		if (style != null && !this.model.isEdge(cell))
    +		{
    +			var fontSize = style[mxConstants.STYLE_FONTSIZE] || mxConstants.DEFAULT_FONTSIZE;
    +			var dx = 0;
    +			var dy = 0;
    +			
    +			// Adds dimension of image if shape is a label
    +			if (this.getImage(state) != null || style[mxConstants.STYLE_IMAGE] != null)
    +			{
    +				if (style[mxConstants.STYLE_SHAPE] == mxConstants.SHAPE_LABEL)
    +				{
    +					if (style[mxConstants.STYLE_VERTICAL_ALIGN] == mxConstants.ALIGN_MIDDLE)
    +					{
    +						dx += parseFloat(style[mxConstants.STYLE_IMAGE_WIDTH]) || mxLabel.prototype.imageSize;
    +					}
    +					
    +					if (style[mxConstants.STYLE_ALIGN] != mxConstants.ALIGN_CENTER)
    +					{
    +						dy += parseFloat(style[mxConstants.STYLE_IMAGE_HEIGHT]) || mxLabel.prototype.imageSize;
    +					}
    +				}
    +			}
    +
    +			// Adds spacings
    +			dx += 2 * (style[mxConstants.STYLE_SPACING] || 0);
    +			dx += style[mxConstants.STYLE_SPACING_LEFT] || 0;
    +			dx += style[mxConstants.STYLE_SPACING_RIGHT] || 0;
    +
    +			dy += 2 * (style[mxConstants.STYLE_SPACING] || 0);
    +			dy += style[mxConstants.STYLE_SPACING_TOP] || 0;
    +			dy += style[mxConstants.STYLE_SPACING_BOTTOM] || 0;
    +			
    +			// Add spacing for collapse/expand icon
    +			// LATER: Check alignment and use constants
    +			// for image spacing
    +			var image = this.getFoldingImage(state);
    +			
    +			if (image != null)
    +			{
    +				dx += image.width + 8;
    +			}
    +
    +			// Adds space for label
    +			var value = this.getLabel(cell);
    +			
    +			if (value != null && value.length > 0)
    +			{
    +				if (!this.isHtmlLabel(cell))
    +				{
    +					value = value.replace(/\n/g, '<br>');
    +				}
    +				
    +				var size = mxUtils.getSizeForString(value,
    +					fontSize, style[mxConstants.STYLE_FONTFAMILY]);
    +				var width = size.width + dx;
    +				var height = size.height + dy;
    +				
    +				if (!mxUtils.getValue(style, mxConstants.STYLE_HORIZONTAL, true))
    +				{
    +					var tmp = height;
    +					
    +					height = width;
    +					width = tmp;
    +				}
    +			
    +				if (this.gridEnabled)
    +				{
    +					width = this.snap(width + this.gridSize / 2);
    +					height = this.snap(height + this.gridSize / 2);
    +				}
    +
    +				result = new mxRectangle(0, 0, width, height);
    +			}
    +			else
    +			{
    +				var gs2 = 4 * this.gridSize;
    +				result = new mxRectangle(0, 0, gs2, gs2);
    +			}
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: handleGesture
    + * 
    + * Invokes if a gesture event has been detected on a cell state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> which was pinched.
    + * evt - Object that represents the gesture event.
    + */
    +mxGraph.prototype.handleGesture = function(state, evt)
    +{
    +	if (Math.abs(1 - evt.scale) > 0.2)
    +	{
    +		var scale = this.view.scale;
    +		var tr = this.view.translate;
    +		
    +		var w = state.width * evt.scale;
    +		var h = state.height * evt.scale;
    +		var x = state.x - (w - state.width) / 2;
    +		var y = state.y - (h - state.height) / 2;
    +		
    +		var bounds = new mxRectangle(this.snap(x / scale) - tr.x,
    +			this.snap(y / scale) - tr.y,
    +			this.snap(w / scale), this.snap(h / scale));
    +		this.resizeCell(state.cell, bounds);
    +	}
    +};
    +
    +/**
    + * Function: resizeCell
    + * 
    + * Sets the bounds of the given cell using <resizeCells>. Returns the
    + * cell which was passed to the function.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose bounds should be changed.
    + * bounds - <mxRectangle> that represents the new bounds.
    + */
    +mxGraph.prototype.resizeCell = function(cell, bounds)
    +{
    +	return this.resizeCells([cell], [bounds])[0];
    +};
    +
    +/**
    + * Function: resizeCells
    + * 
    + * Sets the bounds of the given cells and fires a <mxEvent.RESIZE_CELLS>
    + * event while the transaction is in progress. Returns the cells which
    + * have been passed to the function.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> whose bounds should be changed.
    + * bounds - Array of <mxRectangles> that represent the new bounds.
    + */
    +mxGraph.prototype.resizeCells = function(cells, bounds)
    +{
    +	this.model.beginUpdate();
    +	try
    +	{
    +		this.cellsResized(cells, bounds);
    +		this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,
    +				'cells', cells, 'bounds', bounds));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +
    +	return cells;
    +};
    +
    +/**
    + * Function: cellsResized
    + * 
    + * Sets the bounds of the given cells and fires a <mxEvent.CELLS_RESIZED>
    + * event. If <extendParents> is true, then the parent is extended if a
    + * child size is changed so that it overlaps with the parent.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> whose bounds should be changed.
    + * bounds - Array of <mxRectangles> that represent the new bounds.
    + */
    +mxGraph.prototype.cellsResized = function(cells, bounds)
    +{
    +	if (cells != null && bounds != null && cells.length == bounds.length)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				var tmp = bounds[i];
    +				var geo = this.model.getGeometry(cells[i]);
    +
    +				if (geo != null && (geo.x != tmp.x || geo.y != tmp.y ||
    +					geo.width != tmp.width || geo.height != tmp.height))
    +				{
    +					geo = geo.clone();
    +
    +					if (geo.relative)
    +					{
    +						var offset = geo.offset;
    +
    +						if (offset != null)
    +						{
    +							offset.x += tmp.x - geo.x;
    +							offset.y += tmp.y - geo.y;
    +						}
    +					}
    +					else
    +					{
    +						geo.x = tmp.x;
    +						geo.y = tmp.y;
    +					}
    +
    +					geo.width = tmp.width;
    +					geo.height = tmp.height;
    +
    +					if (!geo.relative && this.model.isVertex(cells[i]) &&
    +						!this.isAllowNegativeCoordinates())
    +					{
    +						geo.x = Math.max(0, geo.x);
    +						geo.y = Math.max(0, geo.y);
    +					}
    +
    +					this.model.setGeometry(cells[i], geo);
    +
    +					if (this.isExtendParent(cells[i]))
    +					{
    +						this.extendParent(cells[i]);
    +					}
    +				}
    +			}
    +
    +			if (this.resetEdgesOnResize)
    +			{
    +				this.resetEdges(cells);
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,
    +					'cells', cells, 'bounds', bounds));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: extendParent
    + * 
    + * Resizes the parents recursively so that they contain the complete area
    + * of the resized child cell.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that has been resized.
    + */
    +mxGraph.prototype.extendParent = function(cell)
    +{
    +	if (cell != null)
    +	{
    +		var parent = this.model.getParent(cell);
    +		var p = this.model.getGeometry(parent);
    +		
    +		if (parent != null && p != null && !this.isCellCollapsed(parent))
    +		{
    +			var geo = this.model.getGeometry(cell);
    +			
    +			if (geo != null && (p.width < geo.x + geo.width ||
    +				p.height < geo.y + geo.height))
    +			{
    +				p = p.clone();
    +				
    +				p.width = Math.max(p.width, geo.x + geo.width);
    +				p.height = Math.max(p.height, geo.y + geo.height);
    +				
    +				this.cellsResized([parent], [p]);
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Group: Cell moving
    + */
    +
    +/**
    + * Function: importCells
    + * 
    + * Clones and inserts the given cells into the graph using the move
    + * method and returns the inserted cells. This shortcut is used if
    + * cells are inserted via datatransfer.
    + */
    +mxGraph.prototype.importCells = function(cells, dx, dy, target, evt)
    +{	
    +	return this.moveCells(cells, dx, dy, true, target, evt);
    +};
    +
    +/**
    + * Function: moveCells
    + * 
    + * Moves or clones the specified cells and moves the cells or clones by the
    + * given amount, adding them to the optional target cell. The evt is the
    + * mouse event as the mouse was released. The change is carried out using
    + * <cellsMoved>. This method fires <mxEvent.MOVE_CELLS> while the
    + * transaction is in progress. Returns the cells that were moved.
    + * 
    + * Use the following code to move all cells in the graph.
    + * 
    + * (code)
    + * graph.moveCells(graph.getChildCells(null, true, true), 10, 10);
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be moved, cloned or added to the target.
    + * dx - Integer that specifies the x-coordinate of the vector. Default is 0.
    + * dy - Integer that specifies the y-coordinate of the vector. Default is 0.
    + * clone - Boolean indicating if the cells should be cloned. Default is false.
    + * target - <mxCell> that represents the new parent of the cells.
    + * evt - Mouseevent that triggered the invocation.
    + */
    +mxGraph.prototype.moveCells = function(cells, dx, dy, clone, target, evt)
    +{
    +	dx = (dx != null) ? dx : 0;
    +	dy = (dy != null) ? dy : 0;
    +	clone = (clone != null) ? clone : false;
    +	
    +	if (cells != null && (dx != 0 || dy != 0 || clone || target != null))
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			if (clone)
    +			{
    +				cells = this.cloneCells(cells, this.isCloneInvalidEdges());
    +
    +				if (target == null)
    +				{
    +					target = this.getDefaultParent();
    +				}
    +			}
    +
    +			// FIXME: Cells should always be inserted first before any other edit
    +			// to avoid forward references in sessions.
    +			// Need to disable allowNegativeCoordinates if target not null to
    +			// allow for temporary negative numbers until cellsAdded is called.
    +			var previous = this.isAllowNegativeCoordinates();
    +			
    +			if (target != null)
    +			{
    +				this.setAllowNegativeCoordinates(true);
    +			}
    +			
    +			this.cellsMoved(cells, dx, dy, !clone && this.isDisconnectOnMove()
    +					&& this.isAllowDanglingEdges(), target == null);
    +			
    +			this.setAllowNegativeCoordinates(previous);
    +
    +			if (target != null)
    +			{
    +				var index = this.model.getChildCount(target);
    +				this.cellsAdded(cells, target, index, null, null, true);
    +			}
    +
    +			// Dispatches a move event
    +			this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS, 'cells', cells,
    +				'dx', dx, 'dy', dy, 'clone', clone, 'target', target, 'event', evt));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +
    +	return cells;
    +};
    +
    +/**
    + * Function: cellsMoved
    + * 
    + * Moves the specified cells by the given vector, disconnecting the cells
    + * using disconnectGraph is disconnect is true. This method fires
    + * <mxEvent.CELLS_MOVED> while the transaction is in progress.
    + */
    +mxGraph.prototype.cellsMoved = function(cells, dx, dy, disconnect, constrain)
    +{
    +	if (cells != null && (dx != 0 || dy != 0))
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			if (disconnect)
    +			{
    +				this.disconnectGraph(cells);
    +			}
    +
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				this.translateCell(cells[i], dx, dy);
    +				
    +				if (constrain)
    +				{
    +					this.constrainChild(cells[i]);
    +				}
    +			}
    +
    +			if (this.resetEdgesOnMove)
    +			{
    +				this.resetEdges(cells);
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,
    +				'cells', cells, 'dx', dy, 'dy', dy, 'disconnect', disconnect));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: translateCell
    + * 
    + * Translates the geometry of the given cell and stores the new,
    + * translated geometry in the model as an atomic change.
    + */
    +mxGraph.prototype.translateCell = function(cell, dx, dy)
    +{
    +	var geo = this.model.getGeometry(cell);
    +
    +	if (geo != null)
    +	{
    +		geo = geo.clone();
    +		geo.translate(dx, dy);
    +
    +		if (!geo.relative && this.model.isVertex(cell) && !this.isAllowNegativeCoordinates())
    +		{
    +			geo.x = Math.max(0, geo.x);
    +			geo.y = Math.max(0, geo.y);
    +		}
    +		
    +		if (geo.relative && !this.model.isEdge(cell))
    +		{
    +			if (geo.offset == null)
    +			{
    +				geo.offset = new mxPoint(dx, dy);
    +			}
    +			else
    +			{
    +				geo.offset.x += dx;
    +				geo.offset.y += dy;
    +			}
    +		}
    +
    +		this.model.setGeometry(cell, geo);
    +	}
    +};
    +
    +/**
    + * Function: getCellContainmentArea
    + * 
    + * Returns the <mxRectangle> inside which a cell is to be kept.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the area should be returned.
    + */
    +mxGraph.prototype.getCellContainmentArea = function(cell)
    +{
    +	if (cell != null && !this.model.isEdge(cell))
    +	{
    +		var parent = this.model.getParent(cell);
    +		
    +		if (parent == this.getDefaultParent() || parent == this.getCurrentRoot())
    +		{
    +			return this.getMaximumGraphBounds();
    +		}
    +		else if (parent != null && parent != this.getDefaultParent())	
    +		{
    +			var g = this.model.getGeometry(parent);
    +			
    +			if (g != null)
    +			{
    +				var x = 0;
    +				var y = 0;
    +				var w = g.width;
    +				var h = g.height;
    +				
    +				if (this.isSwimlane(parent))
    +				{
    +					var size = this.getStartSize(parent);
    +					
    +					x = size.width;
    +					w -= size.width;
    +					y = size.height;
    +					h -= size.height;
    +				}
    +				
    +				return new mxRectangle(x, y, w, h);
    +			}
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: getMaximumGraphBounds
    + * 
    + * Returns the bounds inside which the diagram should be kept as an
    + * <mxRectangle>.
    + */
    +mxGraph.prototype.getMaximumGraphBounds = function()
    +{
    +	return this.maximumGraphBounds;
    +};
    +
    +/**
    + * Function: constrainChild
    + * 
    + * Keeps the given cell inside the bounds returned by
    + * <getCellContainmentArea> for its parent, according to the rules defined by
    + * <getOverlap> and <isConstrainChild>. This modifies the cell's geometry
    + * in-place and does not clone it.
    + * 
    + * Parameters:
    + * 
    + * cells - <mxCell> which should be constrained.
    + */
    +mxGraph.prototype.constrainChild = function(cell)
    +{
    +	if (cell != null)
    +	{
    +		var geo = this.model.getGeometry(cell);
    +		var area = (this.isConstrainChild(cell)) ?
    +				this.getCellContainmentArea(cell) :
    +				this.getMaximumGraphBounds();
    +
    +		if (geo != null && area != null)
    +		{
    +			// Keeps child within the content area of the parent
    +			if (!geo.relative && (geo.x < area.x || geo.y < area.y ||
    +				area.width < geo.x + geo.width || area.height < geo.y + geo.height))
    +			{
    +				var overlap = this.getOverlap(cell);
    +				
    +				if (area.width > 0)
    +				{
    +					geo.x = Math.min(geo.x, area.x + area.width -
    +							(1 - overlap) * geo.width);
    +				}
    +				
    +				if (area.height > 0)
    +				{
    +					geo.y = Math.min(geo.y, area.y + area.height -
    +							(1 - overlap) * geo.height);
    +				}
    +				
    +				geo.x = Math.max(geo.x, area.x - geo.width * overlap);
    +				geo.y = Math.max(geo.y, area.y - geo.height * overlap);
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: resetEdges
    + * 
    + * Resets the control points of the edges that are connected to the given
    + * cells if not both ends of the edge are in the given cells array.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> for which the connected edges should be
    + * reset.
    + */
    +mxGraph.prototype.resetEdges = function(cells)
    +{
    +	if (cells != null)
    +	{
    +		// Prepares a hashtable for faster cell lookups
    +		var hash = new Object();
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			var id = mxCellPath.create(cells[i]);
    +			hash[id] = cells[i];
    +		}
    +		
    +		this.model.beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				var edges = this.model.getEdges(cells[i]);
    +				
    +				if (edges != null)
    +				{
    +					for (var j = 0; j < edges.length; j++)
    +					{
    +						var state = this.view.getState(edges[j]);
    +						
    +						var source = (state != null) ? state.getVisibleTerminal(true) : this.view.getVisibleTerminal(edges[j], true);
    +						var target = (state != null) ? state.getVisibleTerminal(false) : this.view.getVisibleTerminal(edges[j], false);
    +						
    +						var sourceId = mxCellPath.create(source);
    +						var targetId = mxCellPath.create(target);
    +						
    +						// Checks if one of the terminals is not in the given array
    +						if (hash[sourceId] == null || hash[targetId] == null)
    +						{
    +							this.resetEdge(edges[j]);
    +						}
    +					}
    +				}
    +				
    +				this.resetEdges(this.model.getChildren(cells[i]));
    +			}
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: resetEdge
    + * 
    + * Resets the control points of the given edge.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> whose points should be reset.
    + */
    +mxGraph.prototype.resetEdge = function(edge)
    +{
    +	var geo = this.model.getGeometry(edge);
    +	
    +	// Resets the control points
    +	if (geo != null && geo.points != null && geo.points.length > 0)
    +	{
    +		geo = geo.clone();
    +		geo.points = [];
    +		this.model.setGeometry(edge, geo);
    +	}
    +	
    +	return edge;
    +};
    +
    +/**
    + * Group: Cell connecting and connection constraints
    + */
    +
    +/**
    + * Function: getAllConnectionConstraints
    + * 
    + * Returns an array of all <mxConnectionConstraints> for the given terminal. If
    + * the shape of the given terminal is a <mxStencilShape> then the constraints
    + * of the corresponding <mxStencil> are returned.
    + * 
    + * Parameters:
    + * 
    + * terminal - <mxCellState> that represents the terminal.
    + * source - Boolean that specifies if the terminal is the source or target.
    + */
    +mxGraph.prototype.getAllConnectionConstraints = function(terminal, source)
    +{
    +	if (terminal != null && terminal.shape != null &&
    +		terminal.shape instanceof mxStencilShape)
    +	{
    +		if (terminal.shape.stencil != null)
    +		{
    +			return terminal.shape.stencil.constraints;
    +		}
    +	}
    +
    +	return null;
    +};
    +
    +/**
    + * Function: getConnectionConstraint
    + * 
    + * Returns an <mxConnectionConstraint> that describes the given connection
    + * point. This result can then be passed to <getConnectionPoint>.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCellState> that represents the edge.
    + * terminal - <mxCellState> that represents the terminal.
    + * source - Boolean indicating if the terminal is the source or target.
    + */
    +mxGraph.prototype.getConnectionConstraint = function(edge, terminal, source)
    +{
    +	var point = null;
    +	var x = edge.style[(source) ?
    +		mxConstants.STYLE_EXIT_X :
    +		mxConstants.STYLE_ENTRY_X];
    +
    +	if (x != null)
    +	{
    +		var y = edge.style[(source) ?
    +			mxConstants.STYLE_EXIT_Y :
    +			mxConstants.STYLE_ENTRY_Y];
    +		
    +		if (y != null)
    +		{
    +			point = new mxPoint(parseFloat(x), parseFloat(y));
    +		}
    +	}
    +	
    +	var perimeter = false;
    +	
    +	if (point != null)
    +	{
    +		perimeter = mxUtils.getValue(edge.style, (source) ? mxConstants.STYLE_EXIT_PERIMETER :
    +			mxConstants.STYLE_ENTRY_PERIMETER, true);
    +	}
    +	
    +	return new mxConnectionConstraint(point, perimeter);
    +};
    +
    +/**
    + * Function: setConnectionConstraint
    + * 
    + * Sets the <mxConnectionConstraint> that describes the given connection point.
    + * If no constraint is given then nothing is changed. To remove an existing
    + * constraint from the given edge, use an empty constraint instead.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> that represents the edge.
    + * terminal - <mxCell> that represents the terminal.
    + * source - Boolean indicating if the terminal is the source or target.
    + * constraint - Optional <mxConnectionConstraint> to be used for this
    + * connection.
    + */
    +mxGraph.prototype.setConnectionConstraint = function(edge, terminal, source, constraint)
    +{
    +	if (constraint != null)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			if (constraint == null || constraint.point == null)
    +			{
    +				this.setCellStyles((source) ? mxConstants.STYLE_EXIT_X :
    +					mxConstants.STYLE_ENTRY_X, null, [edge]);
    +				this.setCellStyles((source) ? mxConstants.STYLE_EXIT_Y :
    +					mxConstants.STYLE_ENTRY_Y, null, [edge]);
    +				this.setCellStyles((source) ? mxConstants.STYLE_EXIT_PERIMETER :
    +					mxConstants.STYLE_ENTRY_PERIMETER, null, [edge]);
    +			}
    +			else if (constraint.point != null)
    +			{
    +				this.setCellStyles((source) ? mxConstants.STYLE_EXIT_X :
    +					mxConstants.STYLE_ENTRY_X, constraint.point.x, [edge]);
    +				this.setCellStyles((source) ? mxConstants.STYLE_EXIT_Y :
    +					mxConstants.STYLE_ENTRY_Y, constraint.point.y, [edge]);
    +				
    +				// Only writes 0 since 1 is default
    +				if (!constraint.perimeter)
    +				{
    +					this.setCellStyles((source) ? mxConstants.STYLE_EXIT_PERIMETER :
    +						mxConstants.STYLE_ENTRY_PERIMETER, '0', [edge]);
    +				}
    +				else
    +				{
    +					this.setCellStyles((source) ? mxConstants.STYLE_EXIT_PERIMETER :
    +						mxConstants.STYLE_ENTRY_PERIMETER, null, [edge]);
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getConnectionPoint
    + *
    + * Returns the nearest point in the list of absolute points or the center
    + * of the opposite terminal.
    + * 
    + * Parameters:
    + * 
    + * vertex - <mxCellState> that represents the vertex.
    + * constraint - <mxConnectionConstraint> that represents the connection point
    + * constraint as returned by <getConnectionConstraint>.
    + */
    +mxGraph.prototype.getConnectionPoint = function(vertex, constraint)
    +{
    +	var point = null;
    +	
    +	if (vertex != null)
    +	{
    +		var bounds = this.view.getPerimeterBounds(vertex);
    +        var cx = new mxPoint(bounds.getCenterX(), bounds.getCenterY());
    +
    +		// FIXME: Implement STENCIL_FLIP_V/H for stencil shapes
    +		var direction = vertex.style[mxConstants.STYLE_DIRECTION];
    +		var r1 = 0;
    +		
    +		// Bounds need to be rotated by 90 degrees for further computation
    +		if (direction != null)
    +		{
    +			if (direction == 'north')
    +			{
    +				r1 += 270;
    +			}
    +			else if (direction == 'west')
    +			{
    +				r1 += 180;
    +			}
    +			else if (direction == 'south')
    +			{
    +				r1 += 90;
    +			}
    +
    +			// Bounds need to be rotated by 90 degrees for further computation
    +			if (direction == 'north' || direction == 'south')
    +			{
    +				bounds.x += bounds.width / 2 - bounds.height / 2;
    +				bounds.y += bounds.height / 2 - bounds.width / 2;
    +				var tmp = bounds.width;
    +				bounds.width = bounds.height;
    +				bounds.height = tmp;
    +			}
    +		}
    +		
    +		if (constraint.point != null)
    +		{
    +			point = new mxPoint(bounds.x + constraint.point.x * bounds.width,
    +					bounds.y + constraint.point.y * bounds.height);
    +		}
    +		
    +		// Rotation for direction before projection on perimeter
    +		var r2 = vertex.style[mxConstants.STYLE_ROTATION] || 0;
    +		
    +		if (constraint.perimeter)
    +		{
    +			if (r1 != 0 && point != null)
    +			{
    +				// Only 90 degrees steps possible here so no trig needed
    +				var cos = 0;
    +				var sin = 0;
    +				
    +				if (r1 == 90)
    +				{
    +					sin = 1;
    +				}
    +				else if (r1 == 180)
    +				{
    +					cos = -1;
    +				}
    +				else if (r2 == 270)
    +				{
    +					sin = -1;
    +				}
    +				
    +		        point = mxUtils.getRotatedPoint(point, cos, sin, cx);
    +			}
    +	
    +			if (point != null && constraint.perimeter)
    +			{
    +				point = this.view.getPerimeterPoint(vertex, point, false);
    +			}
    +		}
    +		else
    +		{
    +			r2 += r1;
    +		}
    +
    +		// Generic rotation after projection on perimeter
    +		if (r2 != 0 && point != null)
    +		{
    +	        var rad = mxUtils.toRadians(r2);
    +	        var cos = Math.cos(rad);
    +	        var sin = Math.sin(rad);
    +	        
    +	        point = mxUtils.getRotatedPoint(point, cos, sin, cx);
    +		}
    +	}
    +	
    +	return point;
    +};
    +
    +/**
    + * Function: connectCell
    + * 
    + * Connects the specified end of the given edge to the given terminal
    + * using <cellConnected> and fires <mxEvent.CONNECT_CELL> while the
    + * transaction is in progress. Returns the updated edge.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> whose terminal should be updated.
    + * terminal - <mxCell> that represents the new terminal to be used.
    + * source - Boolean indicating if the new terminal is the source or target.
    + * constraint - Optional <mxConnectionConstraint> to be used for this
    + * connection.
    + */
    +mxGraph.prototype.connectCell = function(edge, terminal, source, constraint)
    +{
    +	this.model.beginUpdate();
    +	try
    +	{
    +		var previous = this.model.getTerminal(edge, source);
    +		this.cellConnected(edge, terminal, source, constraint);
    +		this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,
    +			'edge', edge, 'terminal', terminal, 'source', source,
    +			'previous', previous));
    +	}
    +	finally
    +	{
    +		this.model.endUpdate();
    +	}
    +
    +	return edge;
    +};
    +
    +/**
    + * Function: cellConnected
    + * 
    + * Sets the new terminal for the given edge and resets the edge points if
    + * <resetEdgesOnConnect> is true. This method fires
    + * <mxEvent.CELL_CONNECTED> while the transaction is in progress.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> whose terminal should be updated.
    + * terminal - <mxCell> that represents the new terminal to be used.
    + * source - Boolean indicating if the new terminal is the source or target.
    + * constraint - <mxConnectionConstraint> to be used for this connection.
    + */
    +mxGraph.prototype.cellConnected = function(edge, terminal, source, constraint)
    +{
    +	if (edge != null)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{
    +			var previous = this.model.getTerminal(edge, source);
    +
    +			// Updates the constraint
    +			this.setConnectionConstraint(edge, terminal, source, constraint);
    +			
    +			// Checks if the new terminal is a port, uses the ID of the port in the
    +			// style and the parent of the port as the actual terminal of the edge.
    +			if (this.isPortsEnabled())
    +			{
    +				var id = null;
    +	
    +				if (this.isPort(terminal))
    +				{
    +					id = terminal.getId();
    +					terminal = this.getTerminalForPort(terminal, source);
    +				}
    +				
    +				// Sets or resets all previous information for connecting to a child port
    +				var key = (source) ? mxConstants.STYLE_SOURCE_PORT :
    +					mxConstants.STYLE_TARGET_PORT;
    +				this.setCellStyles(key, id, [edge]);
    +			}
    +			
    +			this.model.setTerminal(edge, terminal, source);
    +			
    +			if (this.resetEdgesOnConnect)
    +			{
    +				this.resetEdge(edge);
    +			}
    +
    +			this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,
    +				'edge', edge, 'terminal', terminal, 'source', source,
    +				'previous', previous));
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: disconnectGraph
    + * 
    + * Disconnects the given edges from the terminals which are not in the
    + * given array.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be disconnected.
    + */
    +mxGraph.prototype.disconnectGraph = function(cells)
    +{
    +	if (cells != null)
    +	{
    +		this.model.beginUpdate();
    +		try
    +		{							
    +			var scale = this.view.scale;
    +			var tr = this.view.translate;
    +			
    +			// Prepares a hashtable for faster cell lookups
    +			var hash = new Object();
    +			
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				var id = mxCellPath.create(cells[i]);
    +				hash[id] = cells[i];
    +			}
    +
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				if (this.model.isEdge(cells[i]))
    +				{
    +					var geo = this.model.getGeometry(cells[i]);
    +					
    +					if (geo != null)
    +					{
    +						var state = this.view.getState(cells[i]);
    +						var pstate = this.view.getState(
    +							this.model.getParent(cells[i]));
    +						
    +						if (state != null &&
    +							pstate != null)
    +						{
    +							geo = geo.clone();
    +							
    +							var dx = -pstate.origin.x;
    +							var dy = -pstate.origin.y;
    +							var pts = state.absolutePoints;
    +
    +							var src = this.model.getTerminal(cells[i], true);
    +							
    +							if (src != null && this.isCellDisconnectable(cells[i], src, true))
    +							{
    +								var srcId = mxCellPath.create(src);
    +								
    +								while (src != null && hash[srcId] == null)
    +								{
    +									src = this.model.getParent(src);
    +									srcId = mxCellPath.create(src);
    +								}
    +								
    +								if (src == null)
    +								{
    +									geo.setTerminalPoint(
    +										new mxPoint(pts[0].x / scale - tr.x + dx,
    +											pts[0].y / scale - tr.y + dy), true);
    +									this.model.setTerminal(cells[i], null, true);
    +								}
    +							}
    +							
    +							var trg = this.model.getTerminal(cells[i], false);
    +							
    +							if (trg != null && this.isCellDisconnectable(cells[i], trg, false))
    +							{
    +								var trgId = mxCellPath.create(trg);
    +								
    +								while (trg != null && hash[trgId] == null)
    +								{
    +									trg = this.model.getParent(trg);
    +									trgId = mxCellPath.create(trg);
    +								}
    +								
    +								if (trg == null)
    +								{
    +									var n = pts.length - 1;
    +									geo.setTerminalPoint(
    +										new mxPoint(pts[n].x / scale - tr.x + dx,
    +											pts[n].y / scale - tr.y + dy), false);
    +									this.model.setTerminal(cells[i], null, false);
    +								}
    +							}
    +
    +							this.model.setGeometry(cells[i], geo);
    +						}
    +					}
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			this.model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Group: Drilldown
    + */
    +
    +/**
    + * Function: getCurrentRoot
    + * 
    + * Returns the current root of the displayed cell hierarchy. This is a
    + * shortcut to <mxGraphView.currentRoot> in <view>.
    + */
    +	mxGraph.prototype.getCurrentRoot = function()
    +	{
    +		return this.view.currentRoot;
    +	};
    + 
    +	/**
    + * Function: getTranslateForRoot
    + * 
    + * Returns the translation to be used if the given cell is the root cell as
    + * an <mxPoint>. This implementation returns null.
    + * 
    + * Example:
    + * 
    + * To keep the children at their absolute position while drilling, this function
    + * can be overridden as follows.
    + * 
    + * (code)
    + * var offset = new mxPoint(0, 0);
    + * 
    + * while (cell != null)
    + * {
    + *   var geo = this.model.getGeometry(cell);
    + * 
    + *   if (geo != null)
    + *   {
    + *     offset.x -= geo.x;
    + *     offset.y -= geo.y;
    + *   }
    + * 
    + *   cell = this.model.getParent(cell);
    + * }
    + * 
    + * return offset;
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the root.
    + */
    +mxGraph.prototype.getTranslateForRoot = function(cell)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: isPort
    + * 
    + * Returns true if the given cell is a "port", that is, when connecting to
    + * it, the cell returned by getTerminalForPort should be used as the
    + * terminal and the port should be referenced by the ID in either the
    + * mxConstants.STYLE_SOURCE_PORT or the or the
    + * mxConstants.STYLE_TARGET_PORT. Note that a port should not be movable.
    + * This implementation always returns false.
    + * 
    + * A typical implementation is the following:
    + * 
    + * (code)
    + * graph.isPort = function(cell)
    + * {
    + *   var geo = this.getCellGeometry(cell);
    + *   
    + *   return (geo != null) ? geo.relative : false;
    + * };
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the port.
    + */
    +mxGraph.prototype.isPort = function(cell)
    +{
    +	return false;
    +};
    +
    +/**
    + * Function: getTerminalForPort
    + * 
    + * Returns the terminal to be used for a given port. This implementation
    + * always returns the parent cell.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the port.
    + * source - If the cell is the source or target port.
    + */
    +mxGraph.prototype.getTerminalForPort = function(cell, source)
    +{
    +	return this.model.getParent(cell);
    +};
    +
    +/**
    + * Function: getChildOffsetForCell
    + * 
    + * Returns the offset to be used for the cells inside the given cell. The
    + * root and layer cells may be identified using <mxGraphModel.isRoot> and
    + * <mxGraphModel.isLayer>. For all other current roots, the
    + * <mxGraphView.currentRoot> field points to the respective cell, so that
    + * the following holds: cell == this.view.currentRoot. This implementation
    + * returns null.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose offset should be returned.
    + */
    +mxGraph.prototype.getChildOffsetForCell = function(cell)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: enterGroup
    + * 
    + * Uses the given cell as the root of the displayed cell hierarchy. If no
    + * cell is specified then the selection cell is used. The cell is only used
    + * if <isValidRoot> returns true.
    + * 
    + * Parameters:
    + * 
    + * cell - Optional <mxCell> to be used as the new root. Default is the
    + * selection cell.
    + */
    +mxGraph.prototype.enterGroup = function(cell)
    +{
    +	cell = cell || this.getSelectionCell();
    +	
    +	if (cell != null && this.isValidRoot(cell))
    +	{
    +		this.view.setCurrentRoot(cell);
    +		this.clearSelection();
    +	}
    +};
    +
    +/**
    + * Function: exitGroup
    + * 
    + * Changes the current root to the next valid root in the displayed cell
    + * hierarchy.
    + */
    +mxGraph.prototype.exitGroup = function()
    +{
    +	var root = this.model.getRoot();
    +	var current = this.getCurrentRoot();
    +	
    +	if (current != null)
    +	{
    +		var next = this.model.getParent(current);
    +		
    +		// Finds the next valid root in the hierarchy
    +		while (next != root && !this.isValidRoot(next) &&
    +				this.model.getParent(next) != root)
    +		{
    +			next = this.model.getParent(next);
    +		}
    +		
    +		// Clears the current root if the new root is
    +		// the model's root or one of the layers.
    +		if (next == root || this.model.getParent(next) == root)
    +		{
    +			this.view.setCurrentRoot(null);
    +		}
    +		else
    +		{
    +			this.view.setCurrentRoot(next);
    +		}
    +		
    +		var state = this.view.getState(current);
    +		
    +		// Selects the previous root in the graph
    +		if (state != null)
    +		{
    +			this.setSelectionCell(current);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: home
    + * 
    + * Uses the root of the model as the root of the displayed cell hierarchy
    + * and selects the previous root.
    + */
    +mxGraph.prototype.home = function()
    +{
    +	var current = this.getCurrentRoot();
    +	
    +	if (current != null)
    +	{
    +		this.view.setCurrentRoot(null);
    +		var state = this.view.getState(current);
    +		
    +		if (state != null)
    +		{
    +			this.setSelectionCell(current);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: isValidRoot
    + * 
    + * Returns true if the given cell is a valid root for the cell display
    + * hierarchy. This implementation returns true for all non-null values.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> which should be checked as a possible root.
    + */
    +mxGraph.prototype.isValidRoot = function(cell)
    +{
    +	return (cell != null);
    +};
    +
    +/**
    + * Group: Graph display
    + */
    + 
    +/**
    + * Function: getGraphBounds
    + * 
    + * Returns the bounds of the visible graph. Shortcut to
    + * <mxGraphView.getGraphBounds>. See also: <getBoundingBoxFromGeometry>.
    + */
    + mxGraph.prototype.getGraphBounds = function()
    + {
    + 	return this.view.getGraphBounds();
    + };
    +
    +/**
    + * Function: getCellBounds
    + * 
    + * Returns the scaled, translated bounds for the given cell. See
    + * <mxGraphView.getBounds> for arrays.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose bounds should be returned.
    + * includeEdge - Optional boolean that specifies if the bounds of
    + * the connected edges should be included. Default is false.
    + * includeDescendants - Optional boolean that specifies if the bounds
    + * of all descendants should be included. Default is false.
    + */
    +mxGraph.prototype.getCellBounds = function(cell, includeEdges, includeDescendants)
    +{
    +	var cells = [cell];
    +	
    +	// Includes all connected edges
    +	if (includeEdges)
    +	{
    +		cells = cells.concat(this.model.getEdges(cell));
    +	}
    +	
    +	var result = this.view.getBounds(cells);
    +	
    +	// Recursively includes the bounds of the children
    +	if (includeDescendants)
    +	{
    +		var childCount = this.model.getChildCount(cell);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var tmp = this.getCellBounds(this.model.getChildAt(cell, i),
    +				includeEdges, true);
    +
    +			if (result != null)
    +			{
    +				result.add(tmp);
    +			}
    +			else
    +			{
    +				result = tmp;
    +			}
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getBoundingBoxFromGeometry
    + * 
    + * Returns the bounding box for the geometries of the vertices in the
    + * given array of cells. This can be used to find the graph bounds during
    + * a layout operation (ie. before the last endUpdate) as follows:
    + * 
    + * (code)
    + * var cells = graph.getChildCells(graph.getDefaultParent(), true, true);
    + * var bounds = graph.getBoundingBoxFromGeometry(cells, true);
    + * (end)
    + * 
    + * This can then be used to move cells to the origin:
    + * 
    + * (code)
    + * if (bounds.x < 0 || bounds.y < 0)
    + * {
    + *   graph.moveCells(cells, -Math.min(bounds.x, 0), -Math.min(bounds.y, 0))
    + * }
    + * (end)
    + * 
    + * Or to translate the graph view:
    + * 
    + * (code)
    + * if (bounds.x < 0 || bounds.y < 0)
    + * {
    + *   graph.view.setTranslate(-Math.min(bounds.x, 0), -Math.min(bounds.y, 0));
    + * }
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> whose bounds should be returned.
    + * includeEdges - Specifies if edge bounds should be included by computing
    + * the bounding box for all points its geometry. Default is false.
    + */
    +mxGraph.prototype.getBoundingBoxFromGeometry = function(cells, includeEdges)
    +{
    +	includeEdges = (includeEdges != null) ? includeEdges : false;
    +	var result = null;
    +	
    +	if (cells != null)
    +	{
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (includeEdges || this.model.isVertex(cells[i]))
    +			{
    +				// Computes the bounding box for the points in the geometry
    +				var geo = this.getCellGeometry(cells[i]);
    +				
    +				if (geo != null)
    +				{
    +					var pts = geo.points;
    +					
    +					if (pts != null && pts.length > 0)
    +					{
    +						var tmp = new mxRectangle(pts[0].x, pts[0].y, 0, 0);
    +						var addPoint = function(pt)
    +						{
    +							if (pt != null)
    +							{
    +								tmp.add(new mxRectangle(pt.x, pt.y, 0, 0));
    +							}
    +						};
    +						
    +						for (var j = 1; j < pts.length; j++)
    +						{
    +							addPoint(pts[j]);
    +						}
    +						
    +						addPoint(geo.getTerminalPoint(true));
    +						addPoint(geo.getTerminalPoint(false));
    +					}
    +					
    +					if (result == null)
    +					{
    +						result = new mxRectangle(geo.x, geo.y, geo.width, geo.height);
    +					}
    +					else
    +					{
    +						result.add(geo);
    +					}
    +				}
    +			}
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: refresh
    + * 
    + * Clears all cell states or the states for the hierarchy starting at the
    + * given cell and validates the graph. This fires a refresh event as the
    + * last step.
    + * 
    + * Parameters:
    + * 
    + * cell - Optional <mxCell> for which the cell states should be cleared.
    + */
    +mxGraph.prototype.refresh = function(cell)
    +{
    +	this.view.clear(cell, cell == null);
    +	this.view.validate();
    +	this.sizeDidChange();
    +	this.fireEvent(new mxEventObject(mxEvent.REFRESH));
    +};
    +
    +/**
    + * Function: snap
    + * 
    + * Snaps the given numeric value to the grid if <gridEnabled> is true.
    + * 
    + * Parameters:
    + * 
    + * value - Numeric value to be snapped to the grid.
    + */
    +mxGraph.prototype.snap = function(value)
    +{
    +	if (this.gridEnabled)
    +	{
    +		value = Math.round(value / this.gridSize ) * this.gridSize;
    +	}
    +	
    +	return value;
    +};
    +
    +/**
    + * Function: panGraph
    + * 
    + * Shifts the graph display by the given amount. This is used to preview
    + * panning operations, use <mxGraphView.setTranslate> to set a persistent
    + * translation of the view. Fires <mxEvent.PAN>.
    + * 
    + * Parameters:
    + * 
    + * dx - Amount to shift the graph along the x-axis.
    + * dy - Amount to shift the graph along the y-axis.
    + */
    +mxGraph.prototype.panGraph = function(dx, dy)
    +{
    +	if (this.useScrollbarsForPanning && mxUtils.hasScrollbars(this.container))
    +	{
    +		this.container.scrollLeft = -dx;
    +		this.container.scrollTop = -dy;
    +	}
    +	else
    +	{
    +		var canvas = this.view.getCanvas();
    +		
    +		if (this.dialect == mxConstants.DIALECT_SVG)
    +		{
    +			// Puts everything inside the container in a DIV so that it
    +			// can be moved without changing the state of the container
    +			if (dx == 0 && dy == 0)
    +			{
    +				// Workaround for ignored removeAttribute on SVG element in IE9 standards
    +				if (mxClient.IS_IE)
    +				{
    +					canvas.setAttribute('transform', 'translate('+ dx + ',' + dy + ')');
    +				}
    +				else
    +				{
    +					canvas.removeAttribute('transform');
    +				}
    +				
    +				if (this.shiftPreview != null)
    +				{
    +					var child = this.shiftPreview.firstChild;
    +					
    +					while (child != null)
    +					{
    +						var next = child.nextSibling;
    +						this.container.appendChild(child);
    +						child = next;
    +					}
    +					
    +					this.shiftPreview.parentNode.removeChild(this.shiftPreview);
    +					this.shiftPreview = null;
    +				}
    +			}
    +			else
    +			{
    +				canvas.setAttribute('transform', 'translate('+ dx + ',' + dy + ')');
    +				
    +				if (this.shiftPreview == null)
    +				{
    +					this.shiftPreview = document.createElement('div');
    +					this.shiftPreview.style.position = 'absolute';
    +					this.shiftPreview.style.overflow = 'visible';
    +
    +					var child = this.container.firstChild;
    +					
    +					while (child != null)
    +					{
    +						var next = child.nextSibling;
    +						
    +						// SVG element is moved via transform attribute
    +						if (child != canvas.parentNode)
    +						{
    +							this.shiftPreview.appendChild(child);
    +						}
    +						
    +						child = next;
    +					}
    +
    +					this.container.appendChild(this.shiftPreview);
    +				}
    +				
    +				this.shiftPreview.style.left = dx + 'px';
    +				this.shiftPreview.style.top = dy + 'px';
    +			}
    +		}
    +		else
    +		{
    +			canvas.style.left = dx + 'px';
    +			canvas.style.top = dy + 'px';
    +		}
    +		
    +		this.panDx = dx;
    +		this.panDy = dy;
    +
    +		this.fireEvent(new mxEventObject(mxEvent.PAN));
    +	}
    +};
    +
    +/**
    + * Function: zoomIn
    + * 
    + * Zooms into the graph by <zoomFactor>.
    + */
    +mxGraph.prototype.zoomIn = function()
    +{
    +	this.zoom(this.zoomFactor);
    +};
    +
    +/**
    + * Function: zoomOut
    + * 
    + * Zooms out of the graph by <zoomFactor>.
    + */
    +mxGraph.prototype.zoomOut = function()
    +{
    +	this.zoom(1 / this.zoomFactor);
    +};
    +
    +/**
    + * Function: zoomActual
    + * 
    + * Resets the zoom and panning in the view.
    + */
    +mxGraph.prototype.zoomActual = function()
    +{
    +	if (this.view.scale == 1)
    +	{
    +		this.view.setTranslate(0, 0);
    +	}
    +	else
    +	{
    +		this.view.translate.x = 0;
    +		this.view.translate.y = 0;
    +
    +		this.view.setScale(1);
    +	}
    +};
    +
    +/**
    + * Function: zoom
    + * 
    + * Zooms the graph using the given factor.
    + */
    +mxGraph.prototype.zoom = function(factor)
    +{
    +	var scale = this.view.scale * factor;
    +	var state = this.view.getState(this.getSelectionCell());
    +	
    +	if (this.keepSelectionVisibleOnZoom && state != null)
    +	{
    +		var rect = new mxRectangle(
    +			state.x * factor,
    +			state.y * factor,
    +			state.width * factor,
    +			state.height * factor);
    +		
    +		// Refreshes the display only once if a
    +		// scroll is carried out
    +		this.view.scale = scale;
    +		
    +		if (!this.scrollRectToVisible(rect))
    +		{
    +			this.view.revalidate();
    +			
    +			// Forces an event to be fired but does not revalidate again
    +			this.view.setScale(scale);
    +		}
    +	}
    +	else if (this.centerZoom && !mxUtils.hasScrollbars(this.container))
    +	{
    +		var dx = this.container.offsetWidth;
    +		var dy = this.container.offsetHeight;
    +		
    +		if (factor > 1)
    +		{
    +			var f = (factor -1) / (scale * 2);
    +			dx *= -f;
    +			dy *= -f;
    +		}
    +		else
    +		{
    +			var f = (1/factor -1) / (this.view.scale * 2);
    +			dx *= f;
    +			dy *= f;
    +		}
    +		
    +		this.view.scaleAndTranslate(scale,
    +			this.view.translate.x + dx,
    +			this.view.translate.y + dy);
    +	}
    +	else
    +	{
    +		this.view.setScale(scale);
    +	}
    +};
    +
    +/**
    + * Function: fit
    + *
    + * Scales the graph such that the complete diagram fits into <container> and
    + * returns the current scale in the view.
    + * 
    + * Parameters:
    + * 
    + * border - Optional number that specifies the border. Default is 0.
    + * keepOrigin - Optional boolean that specifies if the translate should be
    + * changed. Default is false.
    + */
    +mxGraph.prototype.fit = function(border, keepOrigin)
    +{
    +	if (this.container != null)
    +	{
    +		border = (border != null) ? border : 0;
    +		keepOrigin = (keepOrigin != null) ? keepOrigin : false;
    +		
    +		var w1 = this.container.offsetWidth - 3;
    +		var h1 = this.container.offsetHeight - 3;
    +
    +		var bounds = this.view.getGraphBounds();
    +
    +		if (keepOrigin && bounds.x != null && bounds.y != null)
    +		{
    +			bounds.width += bounds.x;
    +			bounds.height += bounds.y;
    +			bounds.x = 0;
    +			bounds.y = 0;
    +		}
    +		
    +		var s = this.view.scale;
    +		var w2 = bounds.width / s;
    +		var h2 = bounds.height / s;
    +		
    +		// Fits to the size of the background image if required
    +		if (this.backgroundImage != null)
    +		{
    +			w2 = Math.max(w2, this.backgroundImage.width - bounds.x / s);
    +			h2 = Math.max(h2, this.backgroundImage.height - bounds.y / s);
    +		}
    +		
    +		var b = (keepOrigin) ? border : 2 * border;
    +		var s2 = Math.floor(Math.min(w1 / (w2 + b), h1 / (h2 + b)) * 100) / 100;
    +		
    +		if (s2 > this.minFitScale && s2 < this.maxFitScale)
    +		{
    +			if (!keepOrigin)
    +			{
    +				var x0 = (bounds.x != null) ? Math.floor(this.view.translate.x - bounds.x / s + border + 1) : border;
    +				var y0 = (bounds.y != null) ? Math.floor(this.view.translate.y - bounds.y / s + border + 1) : border;
    +
    +				this.view.scaleAndTranslate(s2, x0, y0);
    +			}
    +			else
    +			{
    +				this.view.setScale(s2);
    +			}
    +		}
    +	}
    +	
    +	return this.view.scale;
    +};
    +
    +/**
    + * Function: scrollCellToVisible
    + * 
    + * Pans the graph so that it shows the given cell. Optionally the cell may
    + * be centered in the container.
    + * 
    + * To center a given graph if the <container> has no scrollbars, use the following code.
    + * 
    + * [code]
    + * var bounds = graph.getGraphBounds();
    + * graph.view.setTranslate(-bounds.x - (bounds.width - container.clientWidth) / 2,
    + * 						   -bounds.y - (bounds.height - container.clientHeight) / 2);
    + * [/code]
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to be made visible.
    + * center - Optional boolean flag. Default is false.
    + */
    +mxGraph.prototype.scrollCellToVisible = function(cell, center)
    +{
    +	var x = -this.view.translate.x;
    +	var y = -this.view.translate.y;
    +
    +	var state = this.view.getState(cell);
    +
    +	if (state != null)
    +	{
    +		var bounds = new mxRectangle(x + state.x, y + state.y, state.width,
    +			state.height);
    +
    +		if (center && this.container != null)
    +		{
    +			var w = this.container.clientWidth;
    +			var h = this.container.clientHeight;
    +
    +			bounds.x = bounds.getCenterX() - w / 2;
    +			bounds.width = w;
    +			bounds.y = bounds.getCenterY() - h / 2;
    +			bounds.height = h;
    +		}
    +
    +		if (this.scrollRectToVisible(bounds))
    +		{
    +			// Triggers an update via the view's event source
    +			this.view.setTranslate(this.view.translate.x,
    +				this.view.translate.y);
    +		}
    +	}
    +};
    +
    +//TODO arguments in the docs do not exist in function signature
    +/**
    + * Function: scrollRectToVisible
    + * 
    + * Pans the graph so that it shows the given rectangle.
    + * 
    + * Parameters:
    + * 
    + * rect - <mxRectangle> to be made visible.
    + * scrollX - Optional boolean that specifies if horizontal scrolling is
    + * allowed. Default is true.
    + * scrollY - Optional boolean that specifies if vertical scrolling is
    + * allowed. Default is true.
    + */
    +mxGraph.prototype.scrollRectToVisible = function(rect)
    +{
    +	var isChanged = false;
    +	
    +	if (rect != null)
    +	{
    +		var w = this.container.offsetWidth;
    +		var h = this.container.offsetHeight;
    +
    +        var widthLimit = Math.min(w, rect.width);
    +        var heightLimit = Math.min(h, rect.height);
    +
    +		if (mxUtils.hasScrollbars(this.container))
    +		{
    +			var c = this.container;
    +			var dx = c.scrollLeft - rect.x;
    +			var ddx = Math.max(dx - c.scrollLeft, 0);
    +
    +			if (dx > 0)
    +			{
    +				c.scrollLeft -= dx + 2;
    +			}
    +			else
    +			{
    +				dx = rect.x + widthLimit - c.scrollLeft - c.clientWidth;
    +
    +				if (dx > 0)
    +				{
    +					c.scrollLeft += dx + 2;
    +				}
    +			}
    +
    +			var dy = c.scrollTop - rect.y;
    +			var ddy = Math.max(0, dy - c.scrollTop);
    +
    +			if (dy > 0)
    +			{
    +				c.scrollTop -= dy + 2;
    +			}
    +			else
    +			{
    +				dy = rect.y + heightLimit - c.scrollTop - c.clientHeight;
    +
    +				if (dy > 0)
    +				{
    +					c.scrollTop += dy + 2;
    +				}
    +			}
    +
    +			if (!this.useScrollbarsForPanning && (ddx != 0 || ddy != 0))
    +			{
    +				this.view.setTranslate(ddx, ddy);
    +			}
    +		}
    +		else
    +		{
    +			var x = -this.view.translate.x;
    +			var y = -this.view.translate.y;
    +
    +			var s = this.view.scale;
    +
    +			if (rect.x + widthLimit > x + w)
    +			{
    +				this.view.translate.x -= (rect.x + widthLimit - w - x) / s;
    +				isChanged = true;
    +			}
    +
    +			if (rect.y + heightLimit > y + h)
    +			{
    +				this.view.translate.y -= (rect.y + heightLimit - h - y) / s;
    +				isChanged = true;
    +			}
    +
    +			if (rect.x < x)
    +			{
    +				this.view.translate.x += (x - rect.x) / s;
    +				isChanged = true;
    +			}
    +
    +			if (rect.y  < y)
    +			{
    +				this.view.translate.y += (y - rect.y) / s;
    +				isChanged = true;
    +			}
    +
    +			if (isChanged)
    +			{
    +				this.view.refresh();
    +				
    +				// Repaints selection marker (ticket 18)
    +				if (this.selectionCellsHandler != null)
    +				{
    +					this.selectionCellsHandler.refresh();
    +				}
    +			}
    +		}
    +	}
    +
    +	return isChanged;
    +};
    +
    +/**
    + * Function: getCellGeometry
    + * 
    + * Returns the <mxGeometry> for the given cell. This implementation uses
    + * <mxGraphModel.getGeometry>. Subclasses can override this to implement
    + * specific geometries for cells in only one graph, that is, it can return
    + * geometries that depend on the current state of the view.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose geometry should be returned.
    + */
    +mxGraph.prototype.getCellGeometry = function(cell)
    +{
    +	return this.model.getGeometry(cell);
    +};
    +
    +/**
    + * Function: isCellVisible
    + * 
    + * Returns true if the given cell is visible in this graph. This
    + * implementation uses <mxGraphModel.isVisible>. Subclassers can override
    + * this to implement specific visibility for cells in only one graph, that
    + * is, without affecting the visible state of the cell.
    + * 
    + * When using dynamic filter expressions for cell visibility, then the
    + * graph should be revalidated after the filter expression has changed.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose visible state should be returned.
    + */
    +mxGraph.prototype.isCellVisible = function(cell)
    +{
    +	return this.model.isVisible(cell);
    +};
    +
    +/**
    + * Function: isCellCollapsed
    + * 
    + * Returns true if the given cell is collapsed in this graph. This
    + * implementation uses <mxGraphModel.isCollapsed>. Subclassers can override
    + * this to implement specific collapsed states for cells in only one graph,
    + * that is, without affecting the collapsed state of the cell.
    + * 
    + * When using dynamic filter expressions for the collapsed state, then the
    + * graph should be revalidated after the filter expression has changed.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose collapsed state should be returned.
    + */
    +mxGraph.prototype.isCellCollapsed = function(cell)
    +{
    +	return this.model.isCollapsed(cell);
    +};
    +
    +/**
    + * Function: isCellConnectable
    + * 
    + * Returns true if the given cell is connectable in this graph. This
    + * implementation uses <mxGraphModel.isConnectable>. Subclassers can override
    + * this to implement specific connectable states for cells in only one graph,
    + * that is, without affecting the connectable state of the cell in the model.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose connectable state should be returned.
    + */
    +mxGraph.prototype.isCellConnectable = function(cell)
    +{
    +	return this.model.isConnectable(cell);
    +};
    +
    +/**
    + * Function: isOrthogonal
    + * 
    + * Returns true if perimeter points should be computed such that the
    + * resulting edge has only horizontal or vertical segments.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCellState> that represents the edge.
    + */
    +mxGraph.prototype.isOrthogonal = function(edge)
    +{
    +	var orthogonal = edge.style[mxConstants.STYLE_ORTHOGONAL];
    +	
    +	if (orthogonal != null)
    +	{
    +		return orthogonal;
    +	}
    +	
    +	var tmp = this.view.getEdgeStyle(edge);
    +	
    +	return tmp == mxEdgeStyle.SegmentConnector ||
    +		tmp == mxEdgeStyle.ElbowConnector ||
    +		tmp == mxEdgeStyle.SideToSide ||
    +		tmp == mxEdgeStyle.TopToBottom ||
    +		tmp == mxEdgeStyle.EntityRelation ||
    +		tmp == mxEdgeStyle.OrthConnector;
    +};
    +
    +/**
    + * Function: isLoop
    + * 
    + * Returns true if the given cell state is a loop.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> that represents a potential loop.
    + */
    +mxGraph.prototype.isLoop = function(state)
    +{
    +	var src = state.getVisibleTerminalState(true);
    +	var trg = state.getVisibleTerminalState(false);
    +	
    +	return (src != null && src == trg);
    +};
    +
    +/**
    + * Function: isCloneEvent
    + * 
    + * Returns true if the given event is a clone event. This implementation
    + * returns true if control is pressed.
    + */
    +mxGraph.prototype.isCloneEvent = function(evt)
    +{
    +	return mxEvent.isControlDown(evt);
    +};
    +
    +/**
    + * Function: isToggleEvent
    + * 
    + * Returns true if the given event is a toggle event. This implementation
    + * returns true if control is pressed.
    + */
    +mxGraph.prototype.isToggleEvent = function(evt)
    +{
    +	return mxEvent.isControlDown(evt);
    +};
    +
    +/**
    + * Function: isGridEnabledEvent
    + * 
    + * Returns true if the given mouse event should be aligned to the grid.
    + */
    +mxGraph.prototype.isGridEnabledEvent = function(evt)
    +{
    +	return evt != null && !mxEvent.isAltDown(evt);
    +};
    +
    +/**
    + * Function: isConstrainedEvent
    + * 
    + * Returns true if the given mouse event should be aligned to the grid.
    + */
    +mxGraph.prototype.isConstrainedEvent = function(evt)
    +{
    +	return mxEvent.isShiftDown(evt);
    +};
    +
    +/**
    + * Function: isForceMarqueeEvent
    + * 
    + * Returns true if the given event forces marquee selection. This implementation
    + * returns true if alt or meta is pressed.
    + */
    +mxGraph.prototype.isForceMarqueeEvent = function(evt)
    +{
    +	return mxEvent.isAltDown(evt) || mxEvent.isMetaDown(evt);
    +};
    +
    +/**
    + * Group: Validation
    + */
    +
    +/**
    + * Function: validationAlert
    + * 
    + * Displays the given validation error in a dialog. This implementation uses
    + * mxUtils.alert.
    + */
    +mxGraph.prototype.validationAlert = function(message)
    +{
    +	mxUtils.alert(message);
    +};
    +
    +/**
    + * Function: isEdgeValid
    + * 
    + * Checks if the return value of <getEdgeValidationError> for the given
    + * arguments is null.
    + *  
    + * Parameters:
    + * 
    + * edge - <mxCell> that represents the edge to validate.
    + * source - <mxCell> that represents the source terminal.
    + * target - <mxCell> that represents the target terminal.
    + */
    +mxGraph.prototype.isEdgeValid = function(edge, source, target)
    +{
    +	return this.getEdgeValidationError(edge, source, target) == null;
    +};
    +
    +/**
    + * Function: getEdgeValidationError
    + * 
    + * Returns the validation error message to be displayed when inserting or
    + * changing an edges' connectivity. A return value of null means the edge
    + * is valid, a return value of '' means it's not valid, but do not display
    + * an error message. Any other (non-empty) string returned from this method
    + * is displayed as an error message when trying to connect an edge to a
    + * source and target. This implementation uses the <multiplicities>, as
    + * well as <multigraph> and <allowDanglingEdges> to generate validation
    + * errors.
    + * 
    + * For extending this method with specific checks for source/target cells,
    + * the method can be extended as follows. Returning an empty string means
    + * the edge is invalid with no error message, a non-null string specifies
    + * the error message, and null means the edge is valid.
    + * 
    + * (code)
    + * graph.getEdgeValidationError = function(edge, source, target)
    + * {
    + *   if (source != null && target != null &&
    + *     this.model.getValue(source) != null &&
    + *     this.model.getValue(target) != null)
    + *   {
    + *     if (target is not valid for source)
    + *     {
    + *       return 'Invalid Target';
    + *     }
    + *   }
    + *   
    + *   // "Supercall"
    + *   return mxGraph.prototype.getEdgeValidationError.apply(this, arguments);
    + * }
    + * (end)
    + *  
    + * Parameters:
    + * 
    + * edge - <mxCell> that represents the edge to validate.
    + * source - <mxCell> that represents the source terminal.
    + * target - <mxCell> that represents the target terminal.
    + */
    +mxGraph.prototype.getEdgeValidationError = function(edge, source, target)
    +{
    +	if (edge != null && !this.isAllowDanglingEdges() && (source == null || target == null))
    +	{
    +		return '';
    +	}
    +	
    +	if (edge != null && this.model.getTerminal(edge, true) == null &&
    +		this.model.getTerminal(edge, false) == null)	
    +	{
    +		return null;
    +	}
    +	
    +	// Checks if we're dealing with a loop
    +	if (!this.allowLoops && source == target && source != null)
    +	{
    +		return '';
    +	}
    +	
    +	// Checks if the connection is generally allowed
    +	if (!this.isValidConnection(source, target))
    +	{
    +		return '';
    +	}
    +
    +	if (source != null && target != null)
    +	{
    +		var error = '';
    +
    +		// Checks if the cells are already connected
    +		// and adds an error message if required			
    +		if (!this.multigraph)
    +		{
    +			var tmp = this.model.getEdgesBetween(source, target, true);
    +			
    +			// Checks if the source and target are not connected by another edge
    +			if (tmp.length > 1 || (tmp.length == 1 && tmp[0] != edge))
    +			{
    +				error += (mxResources.get(this.alreadyConnectedResource) ||
    +					this.alreadyConnectedResource)+'\n';
    +			}
    +		}
    +
    +		// Gets the number of outgoing edges from the source
    +		// and the number of incoming edges from the target
    +		// without counting the edge being currently changed.
    +		var sourceOut = this.model.getDirectedEdgeCount(source, true, edge);
    +		var targetIn = this.model.getDirectedEdgeCount(target, false, edge);
    +
    +		// Checks the change against each multiplicity rule
    +		if (this.multiplicities != null)
    +		{
    +			for (var i = 0; i < this.multiplicities.length; i++)
    +			{
    +				var err = this.multiplicities[i].check(this, edge, source,
    +					target, sourceOut, targetIn);
    +				
    +				if (err != null)
    +				{
    +					error += err;
    +				}
    +			}
    +		}
    +
    +		// Validates the source and target terminals independently
    +		var err = this.validateEdge(edge, source, target);
    +		
    +		if (err != null)
    +		{
    +			error += err;
    +		}
    +		
    +		return (error.length > 0) ? error : null;
    +	}
    +	
    +	return (this.allowDanglingEdges) ? null : '';
    +};
    +
    +/**
    + * Function: validateEdge
    + * 
    + * Hook method for subclassers to return an error message for the given
    + * edge and terminals. This implementation returns null.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> that represents the edge to validate.
    + * source - <mxCell> that represents the source terminal.
    + * target - <mxCell> that represents the target terminal.
    + */
    +mxGraph.prototype.validateEdge = function(edge, source, target)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: validateGraph
    + * 
    + * Validates the graph by validating each descendant of the given cell or
    + * the root of the model. Context is an object that contains the validation
    + * state for the complete validation run. The validation errors are
    + * attached to their cells using <setCellWarning>. This function returns true
    + * if no validation errors exist in the graph.
    + * 
    + * Paramters:
    + * 
    + * cell - Optional <mxCell> to start the validation recursion. Default is
    + * the graph root.
    + * context - Object that represents the global validation state.
    + */
    +mxGraph.prototype.validateGraph = function(cell, context)
    +{
    +	cell = (cell != null) ? cell : this.model.getRoot();
    +	context = (context != null) ? context : new Object();
    +	
    +	var isValid = true;
    +	var childCount = this.model.getChildCount(cell);
    +	
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		var tmp = this.model.getChildAt(cell, i);
    +		var ctx = context;
    +		
    +		if (this.isValidRoot(tmp))
    +		{
    +			ctx = new Object();
    +		}
    +		
    +		var warn = this.validateGraph(tmp, ctx);
    +		
    +		if (warn != null)
    +		{
    +			this.setCellWarning(tmp, warn.replace(/\n/g, '<br>'));
    +		}
    +		else
    +		{
    +			this.setCellWarning(tmp, null);
    +		}
    +		
    +		isValid = isValid && warn == null;
    +	}
    +	
    +	var warning = '';
    +	
    +	// Adds error for invalid children if collapsed (children invisible)
    +	if (this.isCellCollapsed(cell) && !isValid)
    +	{
    +		warning += (mxResources.get(this.containsValidationErrorsResource) ||
    +			this.containsValidationErrorsResource)+'\n';
    +	}
    +	
    +	// Checks edges and cells using the defined multiplicities
    +	if (this.model.isEdge(cell))
    +	{
    +		warning += this.getEdgeValidationError(cell,
    +		this.model.getTerminal(cell, true),
    +		this.model.getTerminal(cell, false)) || '';
    +	}
    +	else
    +	{
    +		warning += this.getCellValidationError(cell) || '';
    +	}
    +	
    +	// Checks custom validation rules
    +	var err = this.validateCell(cell, context);
    +	
    +	if (err != null)
    +	{
    +		warning += err;
    +	}
    +	
    +	// Updates the display with the warning icons
    +	// before any potential alerts are displayed.
    +	// LATER: Move this into addCellOverlay. Redraw
    +	// should check if overlay was added or removed.
    +	if (this.model.getParent(cell) == null)
    +	{
    +		this.view.validate();
    +	}
    +
    +	return (warning.length > 0 || !isValid) ? warning : null;
    +};
    +
    +/**
    + * Function: getCellValidationError
    + * 
    + * Checks all <multiplicities> that cannot be enforced while the graph is
    + * being modified, namely, all multiplicities that require a minimum of
    + * 1 edge.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the multiplicities should be checked.
    + */
    +mxGraph.prototype.getCellValidationError = function(cell)
    +{
    +	var outCount = this.model.getDirectedEdgeCount(cell, true);
    +	var inCount = this.model.getDirectedEdgeCount(cell, false);
    +	var value = this.model.getValue(cell);
    +	var error = '';
    +
    +	if (this.multiplicities != null)
    +	{
    +		for (var i = 0; i < this.multiplicities.length; i++)
    +		{
    +			var rule = this.multiplicities[i];
    +			
    +			if (rule.source && mxUtils.isNode(value, rule.type,
    +				rule.attr, rule.value) && ((rule.max == 0 && outCount > 0) ||
    +				(rule.min == 1 && outCount == 0) || (rule.max == 1 && outCount > 1)))
    +			{
    +				error += rule.countError + '\n';
    +			}
    +			else if (!rule.source && mxUtils.isNode(value, rule.type,
    +					rule.attr, rule.value) && ((rule.max == 0 && inCount > 0) ||
    +					(rule.min == 1 && inCount == 0) || (rule.max == 1 && inCount > 1)))	
    +			{
    +				error += rule.countError + '\n';
    +			}
    +		}
    +	}
    +	
    +	return (error.length > 0) ? error : null;
    +};
    +
    +/**
    + * Function: validateCell
    + * 
    + * Hook method for subclassers to return an error message for the given
    + * cell and validation context. This implementation returns null. Any HTML
    + * breaks will be converted to linefeeds in the calling method.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the cell to validate.
    + * context - Object that represents the global validation state.
    + */
    +mxGraph.prototype.validateCell = function(cell, context)
    +{
    +	return null;
    +};
    +
    +/**
    + * Group: Graph appearance
    + */
    +
    +/**
    + * Function: getBackgroundImage
    + * 
    + * Returns the <backgroundImage> as an <mxImage>.
    + */
    +mxGraph.prototype.getBackgroundImage = function()
    +{
    +	return this.backgroundImage;
    +};
    +
    +/**
    + * Function: setBackgroundImage
    + * 
    + * Sets the new <backgroundImage>.
    + * 
    + * Parameters:
    + * 
    + * image - New <mxImage> to be used for the background.
    + */
    +mxGraph.prototype.setBackgroundImage = function(image)
    +{
    +	this.backgroundImage = image;
    +};
    +
    +/**
    + * Function: getFoldingImage
    + * 
    + * Returns the <mxImage> used to display the collapsed state of
    + * the specified cell state. This returns null for all edges.
    + */
    +mxGraph.prototype.getFoldingImage = function(state)
    +{
    +	if (state != null && this.foldingEnabled && !this.getModel().isEdge(state.cell))
    +	{
    +		var tmp = this.isCellCollapsed(state.cell);
    +		
    +		if (this.isCellFoldable(state.cell, !tmp))
    +		{
    +			return (tmp) ? this.collapsedImage : this.expandedImage;
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: convertValueToString
    + * 
    + * Returns the textual representation for the given cell. This
    + * implementation returns the nodename or string-representation of the user
    + * object.
    + *
    + * Example:
    + * 
    + * The following returns the label attribute from the cells user
    + * object if it is an XML node.
    + * 
    + * (code)
    + * graph.convertValueToString = function(cell)
    + * {
    + * 	return cell.getAttribute('label');
    + * }
    + * (end)
    + * 
    + * See also: <cellLabelChanged>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose textual representation should be returned.
    + */
    +mxGraph.prototype.convertValueToString = function(cell)
    +{
    +	var value = this.model.getValue(cell);
    +	
    +	if (value != null)
    +	{
    +		if (mxUtils.isNode(value))
    +		{
    +			return value.nodeName;
    +		}
    +		else if (typeof(value.toString) == 'function')
    +		{
    +			return value.toString();
    +		}
    +	}
    +	
    +	return '';
    +};
    +
    +/**
    + * Function: getLabel
    + * 
    + * Returns a string or DOM node that represents the label for the given
    + * cell. This implementation uses <convertValueToString> if <labelsVisible>
    + * is true. Otherwise it returns an empty string.
    + * 
    + * To truncate label to match the size of the cell, the following code
    + * can be used.
    + * 
    + * (code)
    + * graph.getLabel = function(cell)
    + * {
    + *   var label = mxGraph.prototype.getLabel.apply(this, arguments);
    + * 
    + *   if (label != null && this.model.isVertex(cell))
    + *   {
    + *     var geo = this.getCellGeometry(cell);
    + * 
    + *     if (geo != null)
    + *     {
    + *       var max = parseInt(geo.width / 8);
    + * 
    + *       if (label.length > max)
    + *       {
    + *         label = label.substring(0, max)+'...';
    + *       }
    + *     }
    + *   } 
    + *   return mxUtils.htmlEntities(label);
    + * }
    + * (end)
    + * 
    + * A resize listener is needed in the graph to force a repaint of the label
    + * after a resize.
    + * 
    + * (code)
    + * graph.addListener(mxEvent.RESIZE_CELLS, function(sender, evt)
    + * {
    + *   var cells = evt.getProperty('cells');
    + * 
    + *   for (var i = 0; i < cells.length; i++)
    + *   {
    + *     this.view.removeState(cells[i]);
    + *   }
    + * });
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose label should be returned.
    + */
    +mxGraph.prototype.getLabel = function(cell)
    +{
    +	var result = '';
    +	
    +	if (this.labelsVisible && cell != null)
    +	{
    +		var state = this.view.getState(cell);
    +		var style = (state != null) ? state.style : this.getCellStyle(cell);
    +		
    +		if (!mxUtils.getValue(style, mxConstants.STYLE_NOLABEL, false))
    +		{
    +			result = this.convertValueToString(cell);
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: isHtmlLabel
    + * 
    + * Returns true if the label must be rendered as HTML markup. The default
    + * implementation returns <htmlLabels>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose label should be displayed as HTML markup.
    + */
    +mxGraph.prototype.isHtmlLabel = function(cell)
    +{
    +	return this.isHtmlLabels();
    +};
    + 
    +/**
    + * Function: isHtmlLabels
    + * 
    + * Returns <htmlLabels>.
    + */
    +mxGraph.prototype.isHtmlLabels = function()
    +{
    +	return this.htmlLabels;
    +};
    + 
    +/**
    + * Function: setHtmlLabels
    + * 
    + * Sets <htmlLabels>.
    + */
    +mxGraph.prototype.setHtmlLabels = function(value)
    +{
    +	this.htmlLabels = value;
    +};
    +
    +/**
    + * Function: isWrapping
    + * 
    + * This enables wrapping for HTML labels.
    + * 
    + * Returns true if no white-space CSS style directive should be used for
    + * displaying the given cells label. This implementation returns true if
    + * <mxConstants.STYLE_WHITE_SPACE> in the style of the given cell is 'wrap'.
    + * 
    + * This is used as a workaround for IE ignoring the white-space directive
    + * of child elements if the directive appears in a parent element. It
    + * should be overridden to return true if a white-space directive is used
    + * in the HTML markup that represents the given cells label. In order for
    + * HTML markup to work in labels, <isHtmlLabel> must also return true
    + * for the given cell.
    + * 
    + * Example:
    + * 
    + * (code)
    + * graph.getLabel = function(cell)
    + * {
    + *   var tmp = mxGraph.prototype.getLabel.apply(this, arguments); // "supercall"
    + *   
    + *   if (this.model.isEdge(cell))
    + *   {
    + *     tmp = '<div style="width: 150px; white-space:normal;">'+tmp+'</div>';
    + *   }
    + *   
    + *   return tmp;
    + * }
    + * 
    + * graph.isWrapping = function(state)
    + * {
    + * 	 return this.model.isEdge(state.cell);
    + * }
    + * (end)
    + * 
    + * Makes sure no edge label is wider than 150 pixels, otherwise the content
    + * is wrapped. Note: No width must be specified for wrapped vertex labels as
    + * the vertex defines the width in its geometry.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCell> whose label should be wrapped.
    + */
    +mxGraph.prototype.isWrapping = function(cell)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +
    +	return (style != null) ? style[mxConstants.STYLE_WHITE_SPACE] == 'wrap' : false;
    +};
    +
    +/**
    + * Function: isLabelClipped
    + * 
    + * Returns true if the overflow portion of labels should be hidden. If this
    + * returns true then vertex labels will be clipped to the size of the vertices.
    + * This implementation returns true if <mxConstants.STYLE_OVERFLOW> in the
    + * style of the given cell is 'hidden'.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCell> whose label should be clipped.
    + */
    +mxGraph.prototype.isLabelClipped = function(cell)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +
    +	return (style != null) ? style[mxConstants.STYLE_OVERFLOW] == 'hidden' : false;
    +};
    +
    +/**
    + * Function: getTooltip
    + * 
    + * Returns the string or DOM node that represents the tooltip for the given
    + * state, node and coordinate pair. This implementation checks if the given
    + * node is a folding icon or overlay and returns the respective tooltip. If
    + * this does not result in a tooltip, the handler for the cell is retrieved
    + * from <selectionCellsHandler> and the optional getTooltipForNode method is
    + * called. If no special tooltip exists here then <getTooltipForCell> is used
    + * with the cell in the given state as the argument to return a tooltip for the
    + * given state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose tooltip should be returned.
    + * node - DOM node that is currently under the mouse.
    + * x - X-coordinate of the mouse.
    + * y - Y-coordinate of the mouse.
    + */
    +mxGraph.prototype.getTooltip = function(state, node, x, y)
    +{
    +	var tip = null;
    +	
    +	if (state != null)
    +	{
    +		// Checks if the mouse is over the folding icon
    +		if (state.control != null && (node == state.control.node ||
    +			node.parentNode == state.control.node))
    +		{
    +			tip = this.collapseExpandResource;
    +			tip = mxResources.get(tip) || tip;
    +		}
    +		
    +		if (tip == null && state.overlays != null)
    +		{
    +			for (var i = 0; i < state.overlays.length; i++)
    +			{
    +				if (node == state.overlays[i].node ||
    +					node.parentNode == state.overlays[i].node)
    +				{
    +					tip = this.getCellOverlays(state.cell)[i].toString();
    +					break;
    +				}
    +			}
    +		}
    +		
    +		if (tip == null)
    +		{
    +			var handler = this.selectionCellsHandler.getHandler(state.cell);
    +			
    +			if (handler != null && typeof(handler.getTooltipForNode) == 'function')
    +			{
    +				tip = handler.getTooltipForNode(node);
    +			}
    +		}
    +		
    +		if (tip == null)
    +		{
    +			tip = this.getTooltipForCell(state.cell);
    +		}
    +	}
    +	
    +	return tip;
    +};
    +
    +/**
    + * Function: getTooltipForCell
    + * 
    + * Returns the string or DOM node to be used as the tooltip for the given
    + * cell. This implementation uses the cells getTooltip function if it
    + * exists, or else it returns <convertValueToString> for the cell.
    + * 
    + * Example:
    + * 
    + * (code)
    + * graph.getTooltipForCell = function(cell)
    + * {
    + *   return 'Hello, World!';
    + * }
    + * (end)
    + * 
    + * Replaces all tooltips with the string Hello, World!
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose tooltip should be returned.
    + */
    +mxGraph.prototype.getTooltipForCell = function(cell)
    +{
    +	var tip = null;
    +	
    +	if (cell != null && cell.getTooltip != null)
    +	{
    +		tip = cell.getTooltip();
    +	}
    +	else
    +	{
    +		tip = this.convertValueToString(cell);
    +	}
    +	
    +	return tip;
    +};
    +
    +/**
    + * Function: getCursorForCell
    + * 
    + * Returns the cursor value to be used for the CSS of the shape for the
    + * given cell. This implementation returns null.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose cursor should be returned.
    + */
    +mxGraph.prototype.getCursorForCell = function(cell)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: getStartSize
    + * 
    + * Returns the start size of the given swimlane, that is, the width or
    + * height of the part that contains the title, depending on the
    + * horizontal style. The return value is an <mxRectangle> with either
    + * width or height set as appropriate.
    + * 
    + * Parameters:
    + * 
    + * swimlane - <mxCell> whose start size should be returned.
    + */
    +mxGraph.prototype.getStartSize = function(swimlane)
    +{
    +	var result = new mxRectangle();
    +	var state = this.view.getState(swimlane);
    +	var style = (state != null) ? state.style : this.getCellStyle(swimlane);
    +	
    +	if (style != null)
    +	{
    +		var size = parseInt(mxUtils.getValue(style,
    +			mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE));
    +		
    +		if (mxUtils.getValue(style, mxConstants.STYLE_HORIZONTAL, true))
    +		{
    +			result.height = size;
    +		}
    +		else
    +		{
    +			result.width = size;
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getImage
    + * 
    + * Returns the image URL for the given cell state. This implementation
    + * returns the value stored under <mxConstants.STYLE_IMAGE> in the cell
    + * style.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose image URL should be returned.
    + */
    +mxGraph.prototype.getImage = function(state)
    +{
    +	return (state != null && state.style != null) ?
    +		state.style[mxConstants.STYLE_IMAGE] : null;
    +};
    +
    +/**
    + * Function: getVerticalAlign
    + * 
    + * Returns the vertical alignment for the given cell state. This
    + * implementation returns the value stored under
    + * <mxConstants.STYLE_VERTICAL_ALIGN> in the cell style.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose vertical alignment should be
    + * returned.
    + */
    +mxGraph.prototype.getVerticalAlign = function(state)
    +{
    +	return (state != null && state.style != null) ?
    +		(state.style[mxConstants.STYLE_VERTICAL_ALIGN] ||
    +		mxConstants.ALIGN_MIDDLE ):
    +		null;
    +};
    +
    +/**
    + * Function: getIndicatorColor
    + * 
    + * Returns the indicator color for the given cell state. This
    + * implementation returns the value stored under
    + * <mxConstants.STYLE_INDICATOR_COLOR> in the cell style.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose indicator color should be
    + * returned.
    + */
    +mxGraph.prototype.getIndicatorColor = function(state)
    +{
    +	return (state != null && state.style != null) ?
    +		state.style[mxConstants.STYLE_INDICATOR_COLOR] : null;
    +};
    +
    +/**
    + * Function: getIndicatorGradientColor
    + * 
    + * Returns the indicator gradient color for the given cell state. This
    + * implementation returns the value stored under
    + * <mxConstants.STYLE_INDICATOR_GRADIENTCOLOR> in the cell style.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose indicator gradient color should be
    + * returned.
    + */
    +mxGraph.prototype.getIndicatorGradientColor = function(state)
    +{
    +	return (state != null && state.style != null) ?
    +		state.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR] : null;
    +};
    +
    +/**
    + * Function: getIndicatorShape
    + * 
    + * Returns the indicator shape for the given cell state. This
    + * implementation returns the value stored under
    + * <mxConstants.STYLE_INDICATOR_SHAPE> in the cell style.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose indicator shape should be returned.
    + */
    +mxGraph.prototype.getIndicatorShape = function(state)
    +{
    +	return (state != null && state.style != null) ?
    +		state.style[mxConstants.STYLE_INDICATOR_SHAPE] : null;
    +};
    +
    +/**
    + * Function: getIndicatorImage
    + * 
    + * Returns the indicator image for the given cell state. This
    + * implementation returns the value stored under
    + * <mxConstants.STYLE_INDICATOR_IMAGE> in the cell style.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose indicator image should be returned.
    + */
    +mxGraph.prototype.getIndicatorImage = function(state)
    +{
    +	return (state != null && state.style != null) ?
    +		state.style[mxConstants.STYLE_INDICATOR_IMAGE] : null;
    +};
    +
    +/**
    + * Function: getBorder
    + * 
    + * Returns the value of <border>.
    + */
    +mxGraph.prototype.getBorder = function()
    +{
    +	return this.border;
    +};
    +
    +/**
    + * Function: setBorder
    + * 
    + * Sets the value of <border>.
    + * 
    + * Parameters:
    + * 
    + * value - Positive integer that represents the border to be used.
    + */
    +mxGraph.prototype.setBorder = function(value)
    +{
    +	this.border = value;
    +};
    +
    +/**
    + * Function: isSwimlane
    + * 
    + * Returns true if the given cell is a swimlane in the graph. A swimlane is
    + * a container cell with some specific behaviour. This implementation
    + * checks if the shape associated with the given cell is a <mxSwimlane>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to be checked.
    + */
    +mxGraph.prototype.isSwimlane = function (cell)
    +{
    +	if (cell != null)
    +	{
    +		if (this.model.getParent(cell) != this.model.getRoot())
    +		{
    +			var state = this.view.getState(cell);
    +			var style = (state != null) ? state.style : this.getCellStyle(cell);
    +
    +			if (style != null && !this.model.isEdge(cell))
    +			{
    +				return style[mxConstants.STYLE_SHAPE] ==
    +					mxConstants.SHAPE_SWIMLANE;
    +			}
    +		}
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Group: Graph behaviour
    + */
    +
    +/**
    + * Function: isResizeContainer
    + * 
    + * Returns <resizeContainer>.
    + */
    +mxGraph.prototype.isResizeContainer = function()
    +{
    +	return this.resizeContainer;
    +};
    +
    +/**
    + * Function: setResizeContainer
    + * 
    + * Sets <resizeContainer>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the container should be resized.
    + */
    +mxGraph.prototype.setResizeContainer = function(value)
    +{
    +	this.resizeContainer = value;
    +};
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if the graph is <enabled>.
    + */
    +mxGraph.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Specifies if the graph should allow any interactions. This
    + * implementation updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the graph should be enabled.
    + */
    +mxGraph.prototype.setEnabled = function(value)
    +{
    +	this.enabled = value;
    +};
    +
    +/**
    + * Function: isEscapeEnabled
    + * 
    + * Returns <escapeEnabled>.
    + */
    +mxGraph.prototype.isEscapeEnabled = function()
    +{
    +	return this.escapeEnabled;
    +};
    +
    +/**
    + * Function: setEscapeEnabled
    + * 
    + * Sets <escapeEnabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean indicating if escape should be enabled.
    + */
    +mxGraph.prototype.setEscapeEnabled = function(value)
    +{
    +	this.escapeEnabled = value;
    +};
    +
    +/**
    + * Function: isInvokesStopCellEditing
    + * 
    + * Returns <invokesStopCellEditing>.
    + */
    +mxGraph.prototype.isInvokesStopCellEditing = function()
    +{
    +	return this.invokesStopCellEditing;
    +};
    +
    +/**
    + * Function: setInvokesStopCellEditing
    + * 
    + * Sets <invokesStopCellEditing>.
    + */
    +mxGraph.prototype.setInvokesStopCellEditing = function(value)
    +{
    +	this.invokesStopCellEditing = value;
    +};
    +
    +/**
    + * Function: isEnterStopsCellEditing
    + * 
    + * Returns <enterStopsCellEditing>.
    + */
    +mxGraph.prototype.isEnterStopsCellEditing = function()
    +{
    +	return this.enterStopsCellEditing;
    +};
    +
    +/**
    + * Function: setEnterStopsCellEditing
    + * 
    + * Sets <enterStopsCellEditing>.
    + */
    +mxGraph.prototype.setEnterStopsCellEditing = function(value)
    +{
    +	this.enterStopsCellEditing = value;
    +};
    +
    +/**
    + * Function: isCellLocked
    + * 
    + * Returns true if the given cell may not be moved, sized, bended,
    + * disconnected, edited or selected. This implementation returns true for
    + * all vertices with a relative geometry if <locked> is false.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose locked state should be returned.
    + */
    +mxGraph.prototype.isCellLocked = function(cell)
    +{
    +	var geometry = this.model.getGeometry(cell);
    +	
    +	return this.isCellsLocked() || (geometry != null &&
    +			this.model.isVertex(cell) && geometry.relative);
    +};
    +
    +/**
    + * Function: isCellsLocked
    + * 
    + * Returns true if the given cell may not be moved, sized, bended,
    + * disconnected, edited or selected. This implementation returns true for
    + * all vertices with a relative geometry if <locked> is false.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose locked state should be returned.
    + */
    +mxGraph.prototype.isCellsLocked = function()
    +{
    +	return this.cellsLocked;
    +};
    +
    +/**
    + * Function: setLocked
    + * 
    + * Sets if any cell may be moved, sized, bended, disconnected, edited or
    + * selected.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean that defines the new value for <cellsLocked>.
    + */
    +mxGraph.prototype.setCellsLocked = function(value)
    +{
    +	this.cellsLocked = value;
    +};
    +
    +/**
    + * Function: getCloneableCells
    + * 
    + * Returns the cells which may be exported in the given array of cells.
    + */
    +mxGraph.prototype.getCloneableCells = function(cells)
    +{
    +	return this.model.filterCells(cells, mxUtils.bind(this, function(cell)
    +	{
    +		return this.isCellCloneable(cell);
    +	}));
    +};
    +
    +/**
    + * Function: isCellCloneable
    + * 
    + * Returns true if the given cell is cloneable. This implementation returns
    + * <isCellsCloneable> for all cells unless a cell style specifies
    + * <mxConstants.STYLE_CLONEABLE> to be 0. 
    + * 
    + * Parameters:
    + * 
    + * cell - Optional <mxCell> whose cloneable state should be returned.
    + */
    +mxGraph.prototype.isCellCloneable = function(cell)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +
    +	return this.isCellsCloneable() && style[mxConstants.STYLE_CLONEABLE] != 0;
    +};
    +
    +/**
    + * Function: isCellsCloneable
    + * 
    + * Returns <cellsCloneable>, that is, if the graph allows cloning of cells
    + * by using control-drag.
    + */
    +mxGraph.prototype.isCellsCloneable = function()
    +{
    +	return this.cellsCloneable;
    +};
    +
    +/**
    + * Function: setCellsCloneable
    + * 
    + * Specifies if the graph should allow cloning of cells by holding down the
    + * control key while cells are being moved. This implementation updates
    + * <cellsCloneable>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the graph should be cloneable.
    + */
    +mxGraph.prototype.setCellsCloneable = function(value)
    +{
    +	this.cellsCloneable = value;
    +};
    +
    +/**
    + * Function: getExportableCells
    + * 
    + * Returns the cells which may be exported in the given array of cells.
    + */
    +mxGraph.prototype.getExportableCells = function(cells)
    +{
    +	return this.model.filterCells(cells, mxUtils.bind(this, function(cell)
    +	{
    +		return this.canExportCell(cell);
    +	}));
    +};
    +
    +/**
    + * Function: canExportCell
    + * 
    + * Returns true if the given cell may be exported to the clipboard. This
    + * implementation returns <exportEnabled> for all cells.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the cell to be exported.
    + */
    +mxGraph.prototype.canExportCell = function(cell)
    +{
    +	return this.exportEnabled;
    +};
    +
    +/**
    + * Function: getImportableCells
    + * 
    + * Returns the cells which may be imported in the given array of cells.
    + */
    +mxGraph.prototype.getImportableCells = function(cells)
    +{
    +	return this.model.filterCells(cells, mxUtils.bind(this, function(cell)
    +	{
    +		return this.canImportCell(cell);
    +	}));
    +};
    +
    +/**
    + * Function: canImportCell
    + * 
    + * Returns true if the given cell may be imported from the clipboard.
    + * This implementation returns <importEnabled> for all cells.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the cell to be imported.
    + */
    +mxGraph.prototype.canImportCell = function(cell)
    +{
    +	return this.importEnabled;
    +};
    +
    +/**
    + * Function: isCellSelectable
    + *
    + * Returns true if the given cell is selectable. This implementation
    + * returns <cellsSelectable>.
    + * 
    + * To add a new style for making cells (un)selectable, use the following code.
    + * 
    + * (code)
    + * mxGraph.prototype.isCellSelectable = function(cell)
    + * {
    + *   var state = this.view.getState(cell);
    + *   var style = (state != null) ? state.style : this.getCellStyle(cell);
    + *   
    + *   return this.isCellsSelectable() && !this.isCellLocked(cell) && style['selectable'] != 0;
    + * };
    + * (end)
    + * 
    + * You can then use the new style as shown in this example.
    + * 
    + * (code)
    + * graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30, 'selectable=0');
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose selectable state should be returned.
    + */
    +mxGraph.prototype.isCellSelectable = function(cell)
    +{
    +	return this.isCellsSelectable();
    +};
    +
    +/**
    + * Function: isCellsSelectable
    + *
    + * Returns <cellsSelectable>.
    + */
    +mxGraph.prototype.isCellsSelectable = function()
    +{
    +	return this.cellsSelectable;
    +};
    +
    +/**
    + * Function: setCellsSelectable
    + *
    + * Sets <cellsSelectable>.
    + */
    +mxGraph.prototype.setCellsSelectable = function(value)
    +{
    +	this.cellsSelectable = value;
    +};
    +
    +/**
    + * Function: getDeletableCells
    + * 
    + * Returns the cells which may be exported in the given array of cells.
    + */
    +mxGraph.prototype.getDeletableCells = function(cells)
    +{
    +	return this.model.filterCells(cells, mxUtils.bind(this, function(cell)
    +	{
    +		return this.isCellDeletable(cell);
    +	}));
    +};
    +
    +/**
    + * Function: isCellDeletable
    + *
    + * Returns true if the given cell is moveable. This returns
    + * <cellsDeletable> for all given cells if a cells style does not specify
    + * <mxConstants.STYLE_DELETABLE> to be 0.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose deletable state should be returned.
    + */
    +mxGraph.prototype.isCellDeletable = function(cell)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +	
    +	return this.isCellsDeletable() && style[mxConstants.STYLE_DELETABLE] != 0;
    +};
    +
    +/**
    + * Function: isCellsDeletable
    + *
    + * Returns <cellsDeletable>.
    + */
    +mxGraph.prototype.isCellsDeletable = function()
    +{
    +	return this.cellsDeletable;
    +};
    +
    +/**
    + * Function: setCellsDeletable
    + * 
    + * Sets <cellsDeletable>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the graph should allow deletion of cells.
    + */
    +mxGraph.prototype.setCellsDeletable = function(value)
    +{
    +	this.cellsDeletable = value;
    +};
    +
    +/**
    + * Function: isLabelMovable
    + *
    + * Returns true if the given edges's label is moveable. This returns
    + * <movable> for all given cells if <isLocked> does not return true
    + * for the given cell.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose label should be moved.
    + */
    +mxGraph.prototype.isLabelMovable = function(cell)
    +{
    +	return !this.isCellLocked(cell) &&
    +		((this.model.isEdge(cell) && this.edgeLabelsMovable) ||
    +		(this.model.isVertex(cell) && this.vertexLabelsMovable));
    +};
    +
    +/**
    + * Function: getMovableCells
    + * 
    + * Returns the cells which are movable in the given array of cells.
    + */
    +mxGraph.prototype.getMovableCells = function(cells)
    +{
    +	return this.model.filterCells(cells, mxUtils.bind(this, function(cell)
    +	{
    +		return this.isCellMovable(cell);
    +	}));
    +};
    +
    +/**
    + * Function: isCellMovable
    + *
    + * Returns true if the given cell is moveable. This returns <cellsMovable>
    + * for all given cells if <isCellLocked> does not return true for the given
    + * cell and its style does not specify <mxConstants.STYLE_MOVABLE> to be 0.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose movable state should be returned.
    + */
    +mxGraph.prototype.isCellMovable = function(cell)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +	
    +	return this.isCellsMovable() && !this.isCellLocked(cell) && style[mxConstants.STYLE_MOVABLE] != 0;
    +};
    +
    +/**
    + * Function: isCellsMovable
    + *
    + * Returns <cellsMovable>.
    + */
    +mxGraph.prototype.isCellsMovable = function()
    +{
    +	return this.cellsMovable;
    +};
    +
    +/**
    + * Function: setCellsMovable
    + * 
    + * Specifies if the graph should allow moving of cells. This implementation
    + * updates <cellsMsovable>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the graph should allow moving of cells.
    + */
    +mxGraph.prototype.setCellsMovable = function(value)
    +{
    +	this.cellsMovable = value;
    +};
    +
    +/**
    + * Function: isGridEnabled
    + *
    + * Returns <gridEnabled> as a boolean.
    + */
    +mxGraph.prototype.isGridEnabled = function()
    +{
    +	return this.gridEnabled;
    +};
    +
    +/**
    + * Function: setGridEnabled
    + * 
    + * Specifies if the grid should be enabled.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the grid should be enabled.
    + */
    +mxGraph.prototype.setGridEnabled = function(value)
    +{
    +	this.gridEnabled = value;
    +};
    +
    +/**
    + * Function: isPortsEnabled
    + *
    + * Returns <portsEnabled> as a boolean.
    + */
    +mxGraph.prototype.isPortsEnabled = function()
    +{
    +	return this.portsEnabled;
    +};
    +
    +/**
    + * Function: setPortsEnabled
    + * 
    + * Specifies if the ports should be enabled.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the ports should be enabled.
    + */
    +mxGraph.prototype.setPortsEnabled = function(value)
    +{
    +	this.portsEnabled = value;
    +};
    +
    +/**
    + * Function: getGridSize
    + *
    + * Returns <gridSize>.
    + */
    +mxGraph.prototype.getGridSize = function()
    +{
    +	return this.gridSize;
    +};
    +
    +/**
    + * Function: setGridSize
    + * 
    + * Sets <gridSize>.
    + */
    +mxGraph.prototype.setGridSize = function(value)
    +{
    +	this.gridSize = value;
    +};
    +
    +/**
    + * Function: getTolerance
    + *
    + * Returns <tolerance>.
    + */
    +mxGraph.prototype.getTolerance = function()
    +{
    +	return this.tolerance;
    +};
    +
    +/**
    + * Function: setTolerance
    + * 
    + * Sets <tolerance>.
    + */
    +mxGraph.prototype.setTolerance = function(value)
    +{
    +	this.tolerance = value;
    +};
    +
    +/**
    + * Function: isVertexLabelsMovable
    + *
    + * Returns <vertexLabelsMovable>.
    + */
    +mxGraph.prototype.isVertexLabelsMovable = function()
    +{
    +	return this.vertexLabelsMovable;
    +};
    +
    +/**
    + * Function: setVertexLabelsMovable
    + * 
    + * Sets <vertexLabelsMovable>.
    + */
    +mxGraph.prototype.setVertexLabelsMovable = function(value)
    +{
    +	this.vertexLabelsMovable = value;
    +};
    +
    +/**
    + * Function: isEdgeLabelsMovable
    + *
    + * Returns <edgeLabelsMovable>.
    + */
    +mxGraph.prototype.isEdgeLabelsMovable = function()
    +{
    +	return this.edgeLabelsMovable;
    +};
    +
    +/**
    + * Function: isEdgeLabelsMovable
    + * 
    + * Sets <edgeLabelsMovable>.
    + */
    +mxGraph.prototype.setEdgeLabelsMovable = function(value)
    +{
    +	this.edgeLabelsMovable = value;
    +};
    +
    +/**
    + * Function: isSwimlaneNesting
    + *
    + * Returns <swimlaneNesting> as a boolean.
    + */
    +mxGraph.prototype.isSwimlaneNesting = function()
    +{
    +	return this.swimlaneNesting;
    +};
    +
    +/**
    + * Function: setSwimlaneNesting
    + * 
    + * Specifies if swimlanes can be nested by drag and drop. This is only
    + * taken into account if dropEnabled is true.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if swimlanes can be nested.
    + */
    +mxGraph.prototype.setSwimlaneNesting = function(value)
    +{
    +	this.swimlaneNesting = value;
    +};
    +
    +/**
    + * Function: isSwimlaneSelectionEnabled
    + *
    + * Returns <swimlaneSelectionEnabled> as a boolean.
    + */
    +mxGraph.prototype.isSwimlaneSelectionEnabled = function()
    +{
    +	return this.swimlaneSelectionEnabled;
    +};
    +
    +/**
    + * Function: setSwimlaneSelectionEnabled
    + * 
    + * Specifies if swimlanes should be selected if the mouse is released
    + * over their content area.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if swimlanes content areas
    + * should be selected when the mouse is released over them.
    + */
    +mxGraph.prototype.setSwimlaneSelectionEnabled = function(value)
    +{
    +	this.swimlaneSelectionEnabled = value;
    +};
    +
    +/**
    + * Function: isMultigraph
    + *
    + * Returns <multigraph> as a boolean.
    + */
    +mxGraph.prototype.isMultigraph = function()
    +{
    +	return this.multigraph;
    +};
    +
    +/**
    + * Function: setMultigraph
    + * 
    + * Specifies if the graph should allow multiple connections between the
    + * same pair of vertices.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the graph allows multiple connections
    + * between the same pair of vertices.
    + */
    +mxGraph.prototype.setMultigraph = function(value)
    +{
    +	this.multigraph = value;
    +};
    +
    +/**
    + * Function: isAllowLoops
    + *
    + * Returns <allowLoops> as a boolean.
    + */
    +mxGraph.prototype.isAllowLoops = function()
    +{
    +	return this.allowLoops;
    +};
    +
    +/**
    + * Function: setAllowDanglingEdges
    + * 
    + * Specifies if dangling edges are allowed, that is, if edges are allowed
    + * that do not have a source and/or target terminal defined.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if dangling edges are allowed.
    + */
    +mxGraph.prototype.setAllowDanglingEdges = function(value)
    +{
    +	this.allowDanglingEdges = value;
    +};
    +
    +/**
    + * Function: isAllowDanglingEdges
    + *
    + * Returns <allowDanglingEdges> as a boolean.
    + */
    +mxGraph.prototype.isAllowDanglingEdges = function()
    +{
    +	return this.allowDanglingEdges;
    +};
    +
    +/**
    + * Function: setConnectableEdges
    + * 
    + * Specifies if edges should be connectable.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if edges should be connectable.
    + */
    +mxGraph.prototype.setConnectableEdges = function(value)
    +{
    +	this.connectableEdges = value;
    +};
    +
    +/**
    + * Function: isConnectableEdges
    + *
    + * Returns <connectableEdges> as a boolean.
    + */
    +mxGraph.prototype.isConnectableEdges = function()
    +{
    +	return this.connectableEdges;
    +};
    +
    +/**
    + * Function: setCloneInvalidEdges
    + * 
    + * Specifies if edges should be inserted when cloned but not valid wrt.
    + * <getEdgeValidationError>. If false such edges will be silently ignored.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if cloned invalid edges should be
    + * inserted into the graph or ignored.
    + */
    +mxGraph.prototype.setCloneInvalidEdges = function(value)
    +{
    +	this.cloneInvalidEdges = value;
    +};
    +
    +/**
    + * Function: isCloneInvalidEdges
    + *
    + * Returns <cloneInvalidEdges> as a boolean.
    + */
    +mxGraph.prototype.isCloneInvalidEdges = function()
    +{
    +	return this.cloneInvalidEdges;
    +};
    +
    +/**
    + * Function: setAllowLoops
    + * 
    + * Specifies if loops are allowed.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if loops are allowed.
    + */
    +mxGraph.prototype.setAllowLoops = function(value)
    +{
    +	this.allowLoops = value;
    +};
    +
    +/**
    + * Function: isDisconnectOnMove
    + *
    + * Returns <disconnectOnMove> as a boolean.
    + */
    +mxGraph.prototype.isDisconnectOnMove = function()
    +{
    +	return this.disconnectOnMove;
    +};
    +
    +/**
    + * Function: setDisconnectOnMove
    + * 
    + * Specifies if edges should be disconnected when moved. (Note: Cloned
    + * edges are always disconnected.)
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if edges should be disconnected
    + * when moved.
    + */
    +mxGraph.prototype.setDisconnectOnMove = function(value)
    +{
    +	this.disconnectOnMove = value;
    +};
    +
    +/**
    + * Function: isDropEnabled
    + *
    + * Returns <dropEnabled> as a boolean.
    + */
    +mxGraph.prototype.isDropEnabled = function()
    +{
    +	return this.dropEnabled;
    +};
    +
    +/**
    + * Function: setDropEnabled
    + * 
    + * Specifies if the graph should allow dropping of cells onto or into other
    + * cells.
    + * 
    + * Parameters:
    + * 
    + * dropEnabled - Boolean indicating if the graph should allow dropping
    + * of cells into other cells.
    + */
    +mxGraph.prototype.setDropEnabled = function(value)
    +{
    +	this.dropEnabled = value;
    +};
    +
    +/**
    + * Function: isSplitEnabled
    + *
    + * Returns <splitEnabled> as a boolean.
    + */
    +mxGraph.prototype.isSplitEnabled = function()
    +{
    +	return this.splitEnabled;
    +};
    +
    +/**
    + * Function: setSplitEnabled
    + * 
    + * Specifies if the graph should allow dropping of cells onto or into other
    + * cells.
    + * 
    + * Parameters:
    + * 
    + * dropEnabled - Boolean indicating if the graph should allow dropping
    + * of cells into other cells.
    + */
    +mxGraph.prototype.setSplitEnabled = function(value)
    +{
    +	this.splitEnabled = value;
    +};
    +
    +/**
    + * Function: isCellResizable
    + *
    + * Returns true if the given cell is resizable. This returns
    + * <cellsResizable> for all given cells if <isCellLocked> does not return
    + * true for the given cell and its style does not specify
    + * <mxConstants.STYLE_RESIZABLE> to be 0.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose resizable state should be returned.
    + */
    +mxGraph.prototype.isCellResizable = function(cell)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +	
    +	return this.isCellsResizable() && !this.isCellLocked(cell) && style[mxConstants.STYLE_RESIZABLE] != 0;
    +};
    +
    +/**
    + * Function: isCellsResizable
    + *
    + * Returns <cellsResizable>.
    + */
    +mxGraph.prototype.isCellsResizable = function()
    +{
    +	return this.cellsResizable;
    +};
    +
    +/**
    + * Function: setCellsResizable
    + * 
    + * Specifies if the graph should allow resizing of cells. This
    + * implementation updates <cellsResizable>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the graph should allow resizing of
    + * cells.
    + */
    +mxGraph.prototype.setCellsResizable = function(value)
    +{
    +	this.cellsResizable = value;
    +};
    +
    +/**
    + * Function: isTerminalPointMovable
    + *
    + * Returns true if the given terminal point is movable. This is independent
    + * from <isCellConnectable> and <isCellDisconnectable> and controls if terminal
    + * points can be moved in the graph if the edge is not connected. Note that it
    + * is required for this to return true to connect unconnected edges. This
    + * implementation returns true.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose terminal point should be moved.
    + * source - Boolean indicating if the source or target terminal should be moved.
    + */
    +mxGraph.prototype.isTerminalPointMovable = function(cell, source)
    +{
    +	return true;
    +};
    +
    +/**
    + * Function: isCellBendable
    + *
    + * Returns true if the given cell is bendable. This returns <cellsBendable>
    + * for all given cells if <isLocked> does not return true for the given
    + * cell and its style does not specify <mxConstants.STYLE_BENDABLE> to be 0.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose bendable state should be returned.
    + */
    +mxGraph.prototype.isCellBendable = function(cell)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +	
    +	return this.isCellsBendable() && !this.isCellLocked(cell) && style[mxConstants.STYLE_BENDABLE] != 0;
    +};
    +
    +/**
    + * Function: isCellsBendable
    + *
    + * Returns <cellsBenadable>.
    + */
    +mxGraph.prototype.isCellsBendable = function()
    +{
    +	return this.cellsBendable;
    +};
    +
    +/**
    + * Function: setCellsBendable
    + * 
    + * Specifies if the graph should allow bending of edges. This
    + * implementation updates <bendable>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the graph should allow bending of
    + * edges.
    + */
    +mxGraph.prototype.setCellsBendable = function(value)
    +{
    +	this.cellsBendable = value;
    +};
    +
    +/**
    + * Function: isCellEditable
    + *
    + * Returns true if the given cell is editable. This returns <cellsEditable> for
    + * all given cells if <isCellLocked> does not return true for the given cell
    + * and its style does not specify <mxConstants.STYLE_EDITABLE> to be 0.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose editable state should be returned.
    + */
    +mxGraph.prototype.isCellEditable = function(cell)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +	
    +	return this.isCellsEditable() && !this.isCellLocked(cell) && style[mxConstants.STYLE_EDITABLE] != 0;
    +};
    +
    +/**
    + * Function: isCellsEditable
    + *
    + * Returns <cellsEditable>.
    + */
    +mxGraph.prototype.isCellsEditable = function()
    +{
    +	return this.cellsEditable;
    +};
    +
    +/**
    + * Function: setCellsEditable
    + * 
    + * Specifies if the graph should allow in-place editing for cell labels.
    + * This implementation updates <cellsEditable>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if the graph should allow in-place
    + * editing.
    + */
    +mxGraph.prototype.setCellsEditable = function(value)
    +{
    +	this.cellsEditable = value;
    +};
    +
    +/**
    + * Function: isCellDisconnectable
    + *
    + * Returns true if the given cell is disconnectable from the source or
    + * target terminal. This returns <isCellsDisconnectable> for all given
    + * cells if <isCellLocked> does not return true for the given cell.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose disconnectable state should be returned.
    + * terminal - <mxCell> that represents the source or target terminal.
    + * source - Boolean indicating if the source or target terminal is to be
    + * disconnected.
    + */
    +mxGraph.prototype.isCellDisconnectable = function(cell, terminal, source)
    +{
    +	return this.isCellsDisconnectable() && !this.isCellLocked(cell);
    +};
    +
    +/**
    + * Function: isCellsDisconnectable
    + *
    + * Returns <cellsDisconnectable>.
    + */
    +mxGraph.prototype.isCellsDisconnectable = function()
    +{
    +	return this.cellsDisconnectable;
    +};
    +
    +/**
    + * Function: setCellsDisconnectable
    + *
    + * Sets <cellsDisconnectable>.
    + */
    +mxGraph.prototype.setCellsDisconnectable = function(value)
    +{
    +	this.cellsDisconnectable = value;
    +};
    +
    +/**
    + * Function: isValidSource
    + * 
    + * Returns true if the given cell is a valid source for new connections.
    + * This implementation returns true for all non-null values and is
    + * called by is called by <isValidConnection>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents a possible source or null.
    + */
    +mxGraph.prototype.isValidSource = function(cell)
    +{
    +	return (cell == null && this.allowDanglingEdges) ||
    +		(cell != null && (!this.model.isEdge(cell) ||
    +		this.connectableEdges) && this.isCellConnectable(cell));
    +};
    +	
    +/**
    + * Function: isValidTarget
    + * 
    + * Returns <isValidSource> for the given cell. This is called by
    + * <isValidConnection>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents a possible target or null.
    + */
    +mxGraph.prototype.isValidTarget = function(cell)
    +{
    +	return this.isValidSource(cell);
    +};
    +
    +/**
    + * Function: isValidConnection
    + * 
    + * Returns true if the given target cell is a valid target for source.
    + * This is a boolean implementation for not allowing connections between
    + * certain pairs of vertices and is called by <getEdgeValidationError>.
    + * This implementation returns true if <isValidSource> returns true for
    + * the source and <isValidTarget> returns true for the target.
    + * 
    + * Parameters:
    + * 
    + * source - <mxCell> that represents the source cell.
    + * target - <mxCell> that represents the target cell.
    + */
    +mxGraph.prototype.isValidConnection = function(source, target)
    +{
    +	return this.isValidSource(source) && this.isValidTarget(target);
    +};
    +
    +/**
    + * Function: setConnectable
    + * 
    + * Specifies if the graph should allow new connections. This implementation
    + * updates <mxConnectionHandler.enabled> in <connectionHandler>.
    + * 
    + * Parameters:
    + * 
    + * connectable - Boolean indicating if new connections should be allowed.
    + */
    +mxGraph.prototype.setConnectable = function(connectable)
    +{
    +	this.connectionHandler.setEnabled(connectable);
    +};
    +	
    +/**
    + * Function: isConnectable
    + * 
    + * Returns true if the <connectionHandler> is enabled.
    + */
    +mxGraph.prototype.isConnectable = function(connectable)
    +{
    +	return this.connectionHandler.isEnabled();
    +};
    +
    +/**
    + * Function: setTooltips
    + * 
    + * Specifies if tooltips should be enabled. This implementation updates
    + * <mxTooltipHandler.enabled> in <tooltipHandler>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean indicating if tooltips should be enabled.
    + */
    +mxGraph.prototype.setTooltips = function (enabled)
    +{
    +	this.tooltipHandler.setEnabled(enabled);
    +};
    +
    +/**
    + * Function: setPanning
    + * 
    + * Specifies if panning should be enabled. This implementation updates
    + * <mxPanningHandler.panningEnabled> in <panningHandler>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean indicating if panning should be enabled.
    + */
    +mxGraph.prototype.setPanning = function(enabled)
    +{
    +	this.panningHandler.panningEnabled = enabled;
    +};
    +
    +/**
    + * Function: isEditing
    + * 
    + * Returns true if the given cell is currently being edited.
    + * If no cell is specified then this returns true if any
    + * cell is currently being edited.
    + *
    + * Parameters:
    + * 
    + * cell - <mxCell> that should be checked.
    + */
    +mxGraph.prototype.isEditing = function(cell)
    +{
    +	if (this.cellEditor != null)
    +	{
    +		var editingCell = this.cellEditor.getEditingCell();
    +		
    +		return (cell == null) ?
    +				editingCell != null :
    +					cell == editingCell;
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: isAutoSizeCell
    + * 
    + * Returns true if the size of the given cell should automatically be
    + * updated after a change of the label. This implementation returns
    + * <autoSizeCells> or checks if the cell style does specify
    + * <mxConstants.STYLE_AUTOSIZE> to be 1.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that should be resized.
    + */
    +mxGraph.prototype.isAutoSizeCell = function(cell)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +	
    +	return this.isAutoSizeCells() || style[mxConstants.STYLE_AUTOSIZE] == 1;
    +};
    +
    +/**
    + * Function: isAutoSizeCells
    + * 
    + * Returns <autoSizeCells>.
    + */
    +mxGraph.prototype.isAutoSizeCells = function()
    +{
    +	return this.autoSizeCells;
    +};
    +
    +/**
    + * Function: setAutoSizeCells
    + * 
    + * Specifies if cell sizes should be automatically updated after a label
    + * change. This implementation sets <autoSizeCells> to the given parameter.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean indicating if cells should be resized
    + * automatically.
    + */
    +mxGraph.prototype.setAutoSizeCells = function(value)
    +{
    +	this.autoSizeCells = value;
    +};
    +
    +/**
    + * Function: isExtendParent
    + * 
    + * Returns true if the parent of the given cell should be extended if the
    + * child has been resized so that it overlaps the parent. This
    + * implementation returns <isExtendParents> if the cell is not an edge.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that has been resized.
    + */
    +mxGraph.prototype.isExtendParent = function(cell)
    +{
    +	return !this.getModel().isEdge(cell) && this.isExtendParents();
    +};
    +
    +/**
    + * Function: isExtendParents
    + * 
    + * Returns <extendParents>.
    + */
    +mxGraph.prototype.isExtendParents = function()
    +{
    +	return this.extendParents;
    +};
    +
    +/**
    + * Function: setExtendParents
    + * 
    + * Sets <extendParents>.
    + * 
    + * Parameters:
    + * 
    + * value - New boolean value for <extendParents>.
    + */
    +mxGraph.prototype.setExtendParents = function(value)
    +{
    +	this.extendParents = value;
    +};
    +
    +/**
    + * Function: isExtendParentsOnAdd
    + * 
    + * Returns <extendParentsOnAdd>.
    + */
    +mxGraph.prototype.isExtendParentsOnAdd = function()
    +{
    +	return this.extendParentsOnAdd;
    +};
    +
    +/**
    + * Function: setExtendParentsOnAdd
    + * 
    + * Sets <extendParentsOnAdd>.
    + * 
    + * Parameters:
    + * 
    + * value - New boolean value for <extendParentsOnAdd>.
    + */
    +mxGraph.prototype.setExtendParentsOnAdd = function(value)
    +{
    +	this.extendParentsOnAdd = value;
    +};
    +
    +/**
    + * Function: isConstrainChild
    + * 
    + * Returns true if the given cell should be kept inside the bounds of its
    + * parent according to the rules defined by <getOverlap> and
    + * <isAllowOverlapParent>. This implementation returns false for all children
    + * of edges and <isConstrainChildren> otherwise.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that should be constrained.
    + */
    +mxGraph.prototype.isConstrainChild = function(cell)
    +{
    +	return this.isConstrainChildren() && !this.getModel().isEdge(this.getModel().getParent(cell));
    +		
    +};
    +
    +/**
    + * Function: isConstrainChildren
    + * 
    + * Returns <constrainChildren>.
    + */
    +mxGraph.prototype.isConstrainChildren = function()
    +{
    +	return this.constrainChildren;
    +};
    +
    +/**
    + * Function: setConstrainChildren
    + * 
    + * Sets <constrainChildren>.
    + */
    +mxGraph.prototype.setConstrainChildren = function(value)
    +{
    +	this.constrainChildren = value;
    +};
    +
    +/**
    + * Function: isConstrainChildren
    + * 
    + * Returns <allowNegativeCoordinates>.
    + */
    +mxGraph.prototype.isAllowNegativeCoordinates = function()
    +{
    +	return this.allowNegativeCoordinates;
    +};
    +
    +/**
    + * Function: setConstrainChildren
    + * 
    + * Sets <allowNegativeCoordinates>.
    + */
    +mxGraph.prototype.setAllowNegativeCoordinates = function(value)
    +{
    +	this.allowNegativeCoordinates = value;
    +};
    +
    +/**
    + * Function: getOverlap
    + * 
    + * Returns a decimal number representing the amount of the width and height
    + * of the given cell that is allowed to overlap its parent. A value of 0
    + * means all children must stay inside the parent, 1 means the child is
    + * allowed to be placed outside of the parent such that it touches one of
    + * the parents sides. If <isAllowOverlapParent> returns false for the given
    + * cell, then this method returns 0.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the overlap ratio should be returned.
    + */
    +mxGraph.prototype.getOverlap = function(cell)
    +{
    +	return (this.isAllowOverlapParent(cell)) ? this.defaultOverlap : 0;
    +};
    +	
    +/**
    + * Function: isAllowOverlapParent
    + * 
    + * Returns true if the given cell is allowed to be placed outside of the
    + * parents area.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the child to be checked.
    + */
    +mxGraph.prototype.isAllowOverlapParent = function(cell)
    +{
    +	return false;
    +};
    +
    +/**
    + * Function: getFoldableCells
    + * 
    + * Returns the cells which are movable in the given array of cells.
    + */
    +mxGraph.prototype.getFoldableCells = function(cells, collapse)
    +{
    +	return this.model.filterCells(cells, mxUtils.bind(this, function(cell)
    +	{
    +		return this.isCellFoldable(cell, collapse);
    +	}));
    +};
    +
    +/**
    + * Function: isCellFoldable
    + * 
    + * Returns true if the given cell is foldable. This implementation
    + * returns true if the cell has at least one child and its style
    + * does not specify <mxConstants.STYLE_FOLDABLE> to be 0.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose foldable state should be returned.
    + */
    +mxGraph.prototype.isCellFoldable = function(cell, collapse)
    +{
    +	var state = this.view.getState(cell);
    +	var style = (state != null) ? state.style : this.getCellStyle(cell);
    +	
    +	return this.model.getChildCount(cell) > 0 && style[mxConstants.STYLE_FOLDABLE] != 0;
    +};
    +
    +/**
    + * Function: isValidDropTarget
    + *
    + * Returns true if the given cell is a valid drop target for the specified
    + * cells. If the given cell is an edge, then <isSplitDropTarget> is used,
    + * else <isParentDropTarget> is used to compute the return value.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that represents the possible drop target.
    + * cells - <mxCells> that should be dropped into the target.
    + * evt - Mouseevent that triggered the invocation.
    + */
    +mxGraph.prototype.isValidDropTarget = function(cell, cells, evt)
    +{
    +	return cell != null && ((this.isSplitEnabled() &&
    +		this.isSplitTarget(cell, cells, evt)) || (!this.model.isEdge(cell) &&
    +		(this.isSwimlane(cell) || (this.model.getChildCount(cell) > 0 &&
    +		!this.isCellCollapsed(cell)))));
    +};
    +
    +/**
    + * Function: isSplitTarget
    + *
    + * Returns true if the given edge may be splitted into two edges with the
    + * given cell as a new terminal between the two.
    + * 
    + * Parameters:
    + * 
    + * target - <mxCell> that represents the edge to be splitted.
    + * cells - <mxCells> that should split the edge.
    + * evt - Mouseevent that triggered the invocation.
    + */
    +mxGraph.prototype.isSplitTarget = function(target, cells, evt)
    +{
    +	if (this.model.isEdge(target) && cells != null && cells.length == 1 &&
    +		this.isCellConnectable(cells[0]) && this.getEdgeValidationError(target,
    +			this.model.getTerminal(target, true), cells[0]) == null)
    +	{
    +		var src = this.model.getTerminal(target, true);
    +		var trg = this.model.getTerminal(target, false);
    +
    +		return (!this.model.isAncestor(cells[0], src) &&
    +				!this.model.isAncestor(cells[0], trg));
    +	}
    +
    +	return false;
    +};
    +
    +/**
    + * Function: getDropTarget
    + * 
    + * Returns the given cell if it is a drop target for the given cells or the
    + * nearest ancestor that may be used as a drop target for the given cells.
    + * If the given array contains a swimlane and <swimlaneNesting> is false
    + * then this always returns null. If no cell is given, then the bottommost
    + * swimlane at the location of the given event is returned.
    + * 
    + * This function should only be used if <isDropEnabled> returns true.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> which are to be dropped onto the target.
    + * evt - Mouseevent for the drag and drop.
    + * cell - <mxCell> that is under the mousepointer.
    + */
    +mxGraph.prototype.getDropTarget = function(cells, evt, cell)
    +{
    +	if (!this.isSwimlaneNesting())
    +	{
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (this.isSwimlane(cells[i]))
    +			{
    +				return null;
    +			}
    +		}
    +	}
    +
    +	var pt = mxUtils.convertPoint(this.container,
    +		mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +	pt.x -= this.panDx;
    +	pt.y -= this.panDy;
    +	var swimlane = this.getSwimlaneAt(pt.x, pt.y);
    +	
    +	if (cell == null)
    +	{
    +		cell = swimlane;
    +	}
    +	else if (swimlane != null)
    +	{
    +		// Checks if the cell is an ancestor of the swimlane
    +		// under the mouse and uses the swimlane in that case
    +		var tmp = this.model.getParent(swimlane);
    +		
    +		while (tmp != null && this.isSwimlane(tmp) && tmp != cell)
    +		{
    +			tmp = this.model.getParent(tmp);
    +		}
    +		
    +		if (tmp == cell)
    +		{
    +			cell = swimlane;
    +		}
    +	}
    +	
    +	while (cell != null && !this.isValidDropTarget(cell, cells, evt) &&
    +		!this.model.isLayer(cell))
    +	{
    +		cell = this.model.getParent(cell);
    +	}
    +	
    +	return (!this.model.isLayer(cell) && mxUtils.indexOf(cells, cell) < 0) ? cell : null;
    +};
    +
    +/**
    + * Group: Cell retrieval
    + */
    +
    +/**
    + * Function: getDefaultParent
    + * 
    + * Returns <defaultParent> or <mxGraphView.currentRoot> or the first child
    + * child of <mxGraphModel.root> if both are null. The value returned by
    + * this function should be used as the parent for new cells (aka default
    + * layer).
    + */
    +mxGraph.prototype.getDefaultParent = function()
    +{
    +	var parent = this.defaultParent;
    +	
    +	if (parent == null)
    +	{
    +		parent = this.getCurrentRoot();
    +		
    +		if (parent == null)
    +		{
    +			var root = this.model.getRoot();
    +			parent = this.model.getChildAt(root, 0);
    +		}
    +	}
    +	
    +	return parent;
    +};
    +
    +/**
    + * Function: setDefaultParent
    + * 
    + * Sets the <defaultParent> to the given cell. Set this to null to return
    + * the first child of the root in getDefaultParent.
    + */
    +mxGraph.prototype.setDefaultParent = function(cell)
    +{
    +	this.defaultParent = cell;
    +};
    +
    +/**
    + * Function: getSwimlane
    + * 
    + * Returns the nearest ancestor of the given cell which is a swimlane, or
    + * the given cell, if it is itself a swimlane.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the ancestor swimlane should be returned.
    + */
    +mxGraph.prototype.getSwimlane = function(cell)
    +{
    +	while (cell != null && !this.isSwimlane(cell))
    +	{
    +		cell = this.model.getParent(cell);
    +	}
    +	
    +	return cell;
    +};
    +
    +/**
    + * Function: getSwimlaneAt
    + * 
    + * Returns the bottom-most swimlane that intersects the given point (x, y)
    + * in the cell hierarchy that starts at the given parent.
    + * 
    + * Parameters:
    + * 
    + * x - X-coordinate of the location to be checked.
    + * y - Y-coordinate of the location to be checked.
    + * parent - <mxCell> that should be used as the root of the recursion.
    + * Default is <defaultParent>.
    + */
    +mxGraph.prototype.getSwimlaneAt = function (x, y, parent)
    +{
    +	parent = parent || this.getDefaultParent();
    +	
    +	if (parent != null)
    +	{
    +		var childCount = this.model.getChildCount(parent);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var child = this.model.getChildAt(parent, i);
    +			var result = this.getSwimlaneAt(x, y, child);
    +			
    +			if (result != null)
    +			{
    +				return result;
    +			}
    +			else if (this.isSwimlane(child))
    +			{
    +				var state = this.view.getState(child);
    +				
    +				if (this.intersects(state, x, y))
    +				{
    +					return child;
    +				}
    +			}
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: getCellAt
    + * 
    + * Returns the bottom-most cell that intersects the given point (x, y) in
    + * the cell hierarchy starting at the given parent. This will also return
    + * swimlanes if the given location intersects the content area of the
    + * swimlane. If this is not desired, then the <hitsSwimlaneContent> may be
    + * used if the returned cell is a swimlane to determine if the location
    + * is inside the content area or on the actual title of the swimlane.
    + * 
    + * Parameters:
    + * 
    + * x - X-coordinate of the location to be checked.
    + * y - Y-coordinate of the location to be checked.
    + * parent - <mxCell> that should be used as the root of the recursion.
    + * Default is <defaultParent>.
    + * vertices - Optional boolean indicating if vertices should be returned.
    + * Default is true.
    + * edges - Optional boolean indicating if edges should be returned. Default
    + * is true.
    + */
    +mxGraph.prototype.getCellAt = function(x, y, parent, vertices, edges)
    +{
    +	vertices = (vertices != null) ? vertices : true;
    +	edges = (edges != null) ? edges : true;
    +	parent = (parent != null) ? parent : this.getDefaultParent();
    +
    +	if (parent != null)
    +	{
    +		var childCount = this.model.getChildCount(parent);
    +		
    +		for (var i = childCount - 1; i >= 0; i--)
    +		{
    +			var cell = this.model.getChildAt(parent, i);
    +			var result = this.getCellAt(x, y, cell, vertices, edges);
    +			
    +			if (result != null)
    +			{
    +				return result;
    +			}
    +			else if (this.isCellVisible(cell) && (edges && this.model.isEdge(cell) ||
    +				vertices && this.model.isVertex(cell)))
    +			{
    +				var state = this.view.getState(cell);
    +				
    +				if (this.intersects(state, x, y))
    +				{
    +					return cell;
    +				}
    +			}
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: intersects
    + * 
    + * Returns the bottom-most cell that intersects the given point (x, y) in
    + * the cell hierarchy that starts at the given parent.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> that represents the cell state.
    + * x - X-coordinate of the location to be checked.
    + * y - Y-coordinate of the location to be checked.
    + */
    +mxGraph.prototype.intersects = function(state, x, y)
    +{
    +	if (state != null)
    +	{
    +		var pts = state.absolutePoints;
    +
    +		if (pts != null)
    +		{
    +			var t2 = this.tolerance * this.tolerance;
    +
    +			var pt = pts[0];
    +			
    +			for (var i = 1; i<pts.length; i++)
    +			{
    +				var next = pts[i];
    +				var dist = mxUtils.ptSegDistSq(
    +					pt.x, pt.y, next.x, next.y, x, y);
    +				
    +				if (dist <= t2)
    +				{
    +					return true;
    +				}
    +				
    +				pt = next;
    +			}
    +		}
    +		else if (mxUtils.contains(state, x, y))
    +		{
    +			return true;
    +		}
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: hitsSwimlaneContent
    + * 
    + * Returns true if the given coordinate pair is inside the content
    + * are of the given swimlane.
    + * 
    + * Parameters:
    + * 
    + * swimlane - <mxCell> that specifies the swimlane.
    + * x - X-coordinate of the mouse event.
    + * y - Y-coordinate of the mouse event.
    + */
    +mxGraph.prototype.hitsSwimlaneContent = function(swimlane, x, y)
    +{
    +	var state = this.getView().getState(swimlane);
    +	var size = this.getStartSize(swimlane);
    +	
    +	if (state != null)
    +	{
    +		var scale = this.getView().getScale();
    +		x -= state.x;
    +		y -= state.y;
    +		
    +		if (size.width > 0 && x > 0 && x > size.width * scale)
    +		{
    +			return true;
    +		}
    +		else if (size.height > 0 && y > 0 && y > size.height * scale)
    +		{
    +			return true;
    +		}
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: getChildVertices
    + * 
    + * Returns the visible child vertices of the given parent.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCell> whose children should be returned.
    + */
    +mxGraph.prototype.getChildVertices = function(parent)
    +{
    +	return this.getChildCells(parent, true, false);
    +};
    +	
    +/**
    + * Function: getChildEdges
    + * 
    + * Returns the visible child edges of the given parent.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCell> whose child vertices should be returned.
    + */
    +mxGraph.prototype.getChildEdges = function(parent)
    +{
    +	return this.getChildCells(parent, false, true);
    +};
    +
    +/**
    + * Function: getChildCells
    + * 
    + * Returns the visible child vertices or edges in the given parent. If
    + * vertices and edges is false, then all children are returned.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCell> whose children should be returned.
    + * vertices - Optional boolean that specifies if child vertices should
    + * be returned. Default is false.
    + * edges - Optional boolean that specifies if child edges should
    + * be returned. Default is false.
    + */
    +mxGraph.prototype.getChildCells = function(parent, vertices, edges)
    +{
    +	parent = (parent != null) ? parent : this.getDefaultParent();
    +	vertices = (vertices != null) ? vertices : false;
    +	edges = (edges != null) ? edges : false;
    +
    +	var cells = this.model.getChildCells(parent, vertices, edges);
    +	var result = [];
    +
    +	// Filters out the non-visible child cells
    +	for (var i = 0; i < cells.length; i++)
    +	{
    +		if (this.isCellVisible(cells[i]))
    +		{
    +			result.push(cells[i]);
    +		}
    +	}
    +
    +	return result;
    +};
    +	
    +/**
    + * Function: getConnections
    + * 
    + * Returns all visible edges connected to the given cell without loops.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose connections should be returned.
    + * parent - Optional parent of the opposite end for a connection to be
    + * returned.
    + */
    +mxGraph.prototype.getConnections = function(cell, parent)
    +{
    +	return this.getEdges(cell, parent, true, true, false);
    +};
    +	
    +/**
    + * Function: getIncomingEdges
    + * 
    + * Returns the visible incoming edges for the given cell. If the optional
    + * parent argument is specified, then only child edges of the given parent
    + * are returned.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose incoming edges should be returned.
    + * parent - Optional parent of the opposite end for an edge to be
    + * returned.
    + */
    +mxGraph.prototype.getIncomingEdges = function(cell, parent)
    +{
    +	return this.getEdges(cell, parent, true, false, false);
    +};
    +	
    +/**
    + * Function: getOutgoingEdges
    + * 
    + * Returns the visible outgoing edges for the given cell. If the optional
    + * parent argument is specified, then only child edges of the given parent
    + * are returned.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose outgoing edges should be returned.
    + * parent - Optional parent of the opposite end for an edge to be
    + * returned.
    + */
    +mxGraph.prototype.getOutgoingEdges = function(cell, parent)
    +{
    +	return this.getEdges(cell, parent, false, true, false);
    +};
    +	
    +/**
    + * Function: getEdges
    + * 
    + * Returns the incoming and/or outgoing edges for the given cell.
    + * If the optional parent argument is specified, then only edges are returned
    + * where the opposite is in the given parent cell. If at least one of incoming
    + * or outgoing is true, then loops are ignored, if both are false, then all
    + * edges connected to the given cell are returned including loops.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> whose edges should be returned.
    + * parent - Optional parent of the opposite end for an edge to be
    + * returned.
    + * incoming - Optional boolean that specifies if incoming edges should
    + * be included in the result. Default is true.
    + * outgoing - Optional boolean that specifies if outgoing edges should
    + * be included in the result. Default is true.
    + * includeLoops - Optional boolean that specifies if loops should be
    + * included in the result. Default is true.
    + * recurse - Optional boolean the specifies if the parent specified only 
    + * need be an ancestral parent, true, or the direct parent, false.
    + * Default is false
    + */
    +mxGraph.prototype.getEdges = function(cell, parent, incoming, outgoing, includeLoops, recurse)
    +{
    +	incoming = (incoming != null) ? incoming : true;
    +	outgoing = (outgoing != null) ? outgoing : true;
    +	includeLoops = (includeLoops != null) ? includeLoops : true;
    +	recurse = (recurse != null) ? recurse : false;
    +	
    +	var edges = [];
    +	var isCollapsed = this.isCellCollapsed(cell);
    +	var childCount = this.model.getChildCount(cell);
    +
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		var child = this.model.getChildAt(cell, i);
    +
    +		if (isCollapsed || !this.isCellVisible(child))
    +		{
    +			edges = edges.concat(this.model.getEdges(child, incoming, outgoing));
    +		}
    +	}
    +
    +	edges = edges.concat(this.model.getEdges(cell, incoming, outgoing));
    +	var result = [];
    +	
    +	for (var i = 0; i < edges.length; i++)
    +	{
    +		var state = this.view.getState(edges[i]);
    +		
    +		var source = (state != null) ? state.getVisibleTerminal(true) : this.view.getVisibleTerminal(edges[i], true);
    +		var target = (state != null) ? state.getVisibleTerminal(false) : this.view.getVisibleTerminal(edges[i], false);
    +
    +		if ((includeLoops && source == target) || ((source != target) && ((incoming &&
    +			target == cell && (parent == null || this.isValidAncestor(source, parent, recurse))) ||
    +			(outgoing && source == cell && (parent == null ||
    +					this.isValidAncestor(target, parent, recurse))))))
    +		{
    +			result.push(edges[i]);
    +		}
    +	}
    +
    +	return result;
    +};
    +
    +/**
    + * Function: isValidAncestor
    + * 
    + * Returns whether or not the specified parent is a valid
    + * ancestor of the specified cell, either direct or indirectly
    + * based on whether ancestor recursion is enabled.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> the possible child cell
    + * parent - <mxCell> the possible parent cell
    + * recurse - boolean whether or not to recurse the child ancestors
    + */
    +mxGraph.prototype.isValidAncestor = function(cell, parent, recurse)
    +{
    +	return (recurse ? this.model.isAncestor(parent, cell) : this.model
    +			.getParent(cell) == parent);
    +};
    +
    +/**
    + * Function: getOpposites
    + * 
    + * Returns all distinct visible opposite cells for the specified terminal
    + * on the given edges.
    + * 
    + * Parameters:
    + * 
    + * edges - Array of <mxCells> that contains the edges whose opposite
    + * terminals should be returned.
    + * terminal - Terminal that specifies the end whose opposite should be
    + * returned.
    + * source - Optional boolean that specifies if source terminals should be
    + * included in the result. Default is true.
    + * targets - Optional boolean that specifies if targer terminals should be
    + * included in the result. Default is true.
    + */
    +mxGraph.prototype.getOpposites = function(edges, terminal, sources, targets)
    +{
    +	sources = (sources != null) ? sources : true;
    +	targets = (targets != null) ? targets : true;
    +	
    +	var terminals = [];
    +	
    +	// Implements set semantic on the terminals array using a string
    +	// representation of each cell in an associative array lookup
    +	var hash = new Object();
    +	
    +	if (edges != null)
    +	{
    +		for (var i = 0; i < edges.length; i++)
    +		{
    +			var state = this.view.getState(edges[i]);
    +			
    +			var source = (state != null) ? state.getVisibleTerminal(true) : this.view.getVisibleTerminal(edges[i], true);
    +			var target = (state != null) ? state.getVisibleTerminal(false) : this.view.getVisibleTerminal(edges[i], false);
    +			
    +			// Checks if the terminal is the source of the edge and if the
    +			// target should be stored in the result
    +			if (source == terminal && target != null &&
    +				target != terminal && targets)
    +			{
    +				var id = mxCellPath.create(target);
    +				
    +				if (hash[id] == null)
    +				{
    +					hash[id] = target;
    +					terminals.push(target);
    +				}
    +			}
    +			
    +			// Checks if the terminal is the taget of the edge and if the
    +			// source should be stored in the result
    +			else if (target == terminal && source != null &&
    +					source != terminal && sources)
    +			{
    +				var id = mxCellPath.create(source);
    +				
    +				if (hash[id] == null)
    +				{
    +					hash[id] = source;
    +					terminals.push(source);
    +				}
    +			}
    +		}
    +	}
    +	
    +	return terminals;
    +};
    +
    +/**
    + * Function: getEdgesBetween
    + * 
    + * Returns the edges between the given source and target. This takes into
    + * account collapsed and invisible cells and returns the connected edges
    + * as displayed on the screen.
    + * 
    + * Parameters:
    + * 
    + * source -
    + * target -
    + * directed -
    + */
    +mxGraph.prototype.getEdgesBetween = function(source, target, directed)
    +{
    +	directed = (directed != null) ? directed : false;
    +	var edges = this.getEdges(source);
    +	var result = [];
    +
    +	// Checks if the edge is connected to the correct
    +	// cell and returns the first match
    +	for (var i = 0; i < edges.length; i++)
    +	{
    +		var state = this.view.getState(edges[i]);
    +		
    +		var src = (state != null) ? state.getVisibleTerminal(true) : this.view.getVisibleTerminal(edges[i], true);
    +		var trg = (state != null) ? state.getVisibleTerminal(false) : this.view.getVisibleTerminal(edges[i], false);
    +
    +		if ((src == source && trg == target) || (!directed && src == target && trg == source))
    +		{
    +			result.push(edges[i]);
    +		}
    +	}
    +
    +	return result;
    +};
    +
    +/**
    + * Function: getPointForEvent
    + * 
    + * Returns an <mxPoint> representing the given event in the unscaled,
    + * non-translated coordinate space of <container> and applies the grid.
    + * 
    + * Parameters:
    + * 
    + * evt - Mousevent that contains the mouse pointer location.
    + * addOffset - Optional boolean that specifies if the position should be
    + * offset by half of the <gridSize>. Default is true.
    + */
    + mxGraph.prototype.getPointForEvent = function(evt, addOffset)
    + {
    +	var p = mxUtils.convertPoint(this.container,
    +		mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +	
    +	var s = this.view.scale;
    +	var tr = this.view.translate;
    +	var off = (addOffset != false) ? this.gridSize / 2 : 0;
    +	
    +	p.x = this.snap(p.x / s - tr.x - off);
    +	p.y = this.snap(p.y / s - tr.y - off);
    +	
    +	return p;
    + };
    +
    +/**
    + * Function: getCells
    + * 
    + * Returns the children of the given parent that are contained in the given
    + * rectangle (x, y, width, height). The result is added to the optional
    + * result array, which is returned from the function. If no result array
    + * is specified then a new array is created and returned.
    + * 
    + * Parameters:
    + * 
    + * x - X-coordinate of the rectangle.
    + * y - Y-coordinate of the rectangle.
    + * width - Width of the rectangle.
    + * height - Height of the rectangle.
    + * parent - <mxCell> whose children should be checked. Default is
    + * <defaultParent>.
    + * result - Optional array to store the result in.
    + */
    +mxGraph.prototype.getCells = function(x, y, width, height, parent, result)
    +{
    +	result = (result != null) ? result : [];
    +	
    +	if (width > 0 || height > 0)
    +	{
    +		var right = x + width;
    +		var bottom = y + height;
    +		
    +		parent = parent || this.getDefaultParent();
    +		
    +		if (parent != null)
    +		{
    +			var childCount = this.model.getChildCount(parent);
    +			
    +			for (var i = 0; i < childCount; i++)
    +			{
    +				var cell = this.model.getChildAt(parent, i);
    +				var state = this.view.getState(cell);
    +				
    +				if (this.isCellVisible(cell) && state != null)
    +				{
    +					if (state.x >= x && state.y >= y &&
    +						state.x + state.width <= right &&
    +						state.y + state.height <= bottom)
    +					{
    +						result.push(cell);
    +					}
    +					else
    +					{
    +						this.getCells(x, y, width, height, cell, result);
    +					}
    +				}
    +			}
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getCellsBeyond
    + * 
    + * Returns the children of the given parent that are contained in the
    + * halfpane from the given point (x0, y0) rightwards and/or downwards
    + * depending on rightHalfpane and bottomHalfpane.
    + * 
    + * Parameters:
    + * 
    + * x0 - X-coordinate of the origin.
    + * y0 - Y-coordinate of the origin.
    + * parent - Optional <mxCell> whose children should be checked. Default is
    + * <defaultParent>.
    + * rightHalfpane - Boolean indicating if the cells in the right halfpane
    + * from the origin should be returned.
    + * bottomHalfpane - Boolean indicating if the cells in the bottom halfpane
    + * from the origin should be returned.
    + */
    +mxGraph.prototype.getCellsBeyond = function(x0, y0, parent, rightHalfpane, bottomHalfpane)
    +{
    +	var result = [];
    +	
    +	if (rightHalfpane || bottomHalfpane)
    +	{
    +		if (parent == null)
    +		{
    +			parent = this.getDefaultParent();
    +		}
    +		
    +		if (parent != null)
    +		{
    +			var childCount = this.model.getChildCount(parent);
    +			
    +			for (var i = 0; i < childCount; i++)
    +			{
    +				var child = this.model.getChildAt(parent, i);
    +				var state = this.view.getState(child);
    +				
    +				if (this.isCellVisible(child) && state != null)
    +				{
    +					if ((!rightHalfpane ||
    +						state.x >= x0) &&
    +						(!bottomHalfpane ||
    +						state.y >= y0))
    +					{
    +						result.push(child);
    +					}
    +				}
    +			}
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: findTreeRoots
    + * 
    + * Returns all children in the given parent which do not have incoming
    + * edges. If the result is empty then the with the greatest difference
    + * between incoming and outgoing edges is returned.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCell> whose children should be checked.
    + * isolate - Optional boolean that specifies if edges should be ignored if
    + * the opposite end is not a child of the given parent cell. Default is
    + * false.
    + * invert - Optional boolean that specifies if outgoing or incoming edges
    + * should be counted for a tree root. If false then outgoing edges will be
    + * counted. Default is false.
    + */
    +mxGraph.prototype.findTreeRoots = function(parent, isolate, invert)
    +{
    +	isolate = (isolate != null) ? isolate : false;
    +	invert = (invert != null) ? invert : false;
    +	var roots = [];
    +	
    +	if (parent != null)
    +	{
    +		var model = this.getModel();
    +		var childCount = model.getChildCount(parent);
    +		var best = null;
    +		var maxDiff = 0;
    +		
    +		for (var i=0; i<childCount; i++)
    +		{
    +			var cell = model.getChildAt(parent, i);
    +			
    +			if (this.model.isVertex(cell) && this.isCellVisible(cell))
    +			{
    +				var conns = this.getConnections(cell, (isolate) ? parent : null);
    +				var fanOut = 0;
    +				var fanIn = 0;
    +				
    +				for (var j = 0; j < conns.length; j++)
    +				{
    +					var src = this.view.getVisibleTerminal(conns[j], true);
    +
    +                    if (src == cell)
    +                    {
    +                        fanOut++;
    +                    }
    +                    else
    +                    {
    +                        fanIn++;
    +                    }
    +				}
    +				
    +				if ((invert && fanOut == 0 && fanIn > 0) ||
    +					(!invert && fanIn == 0 && fanOut > 0))
    +				{
    +					roots.push(cell);
    +				}
    +				
    +				var diff = (invert) ? fanIn - fanOut : fanOut - fanIn;
    +				
    +				if (diff > maxDiff)
    +				{
    +					maxDiff = diff;
    +					best = cell;
    +				}
    +			}
    +		}
    +		
    +		if (roots.length == 0 && best != null)
    +		{
    +			roots.push(best);
    +		}
    +	}
    +	
    +	return roots;
    +};
    +
    +/**
    + * Function: traverse
    + * 
    + * Traverses the (directed) graph invoking the given function for each
    + * visited vertex and edge. The function is invoked with the current vertex
    + * and the incoming edge as a parameter. This implementation makes sure
    + * each vertex is only visited once. The function may return false if the
    + * traversal should stop at the given vertex.
    + * 
    + * Example:
    + * 
    + * (code)
    + * mxLog.show();
    + * var cell = graph.getSelectionCell();
    + * graph.traverse(cell, false, function(vertex, edge)
    + * {
    + *   mxLog.debug(graph.getLabel(vertex));
    + * });
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * vertex - <mxCell> that represents the vertex where the traversal starts.
    + * directed - Optional boolean indicating if edges should only be traversed
    + * from source to target. Default is true.
    + * func - Visitor function that takes the current vertex and the incoming
    + * edge as arguments. The traversal stops if the function returns false.
    + * edge - Optional <mxCell> that represents the incoming edge. This is
    + * null for the first step of the traversal.
    + * visited - Optional array of cell paths for the visited cells.
    + */
    +mxGraph.prototype.traverse = function(vertex, directed, func, edge, visited)
    +{
    +	if (func != null && vertex != null)
    +	{
    +		directed = (directed != null) ? directed : true;
    +		visited = visited || [];
    +		var id = mxCellPath.create(vertex);
    +		
    +		if (visited[id] == null)
    +		{
    +			visited[id] = vertex;
    +			var result = func(vertex, edge);
    +			
    +			if (result == null || result)
    +			{
    +				var edgeCount = this.model.getEdgeCount(vertex);
    +				
    +				if (edgeCount > 0)
    +				{
    +					for (var i = 0; i < edgeCount; i++)
    +					{
    +						var e = this.model.getEdgeAt(vertex, i);
    +						var isSource = this.model.getTerminal(e, true) == vertex;
    +												
    +						if (!directed || isSource)
    +						{
    +							var next = this.model.getTerminal(e, !isSource);
    +							this.traverse(next, directed, func, e, visited);
    +						}
    +					}
    +				}
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Group: Selection
    + */
    +
    +/**
    + * Function: isCellSelected
    + * 
    + * Returns true if the given cell is selected.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the selection state should be returned.
    + */
    +mxGraph.prototype.isCellSelected = function(cell)
    +{
    +	return this.getSelectionModel().isSelected(cell);
    +};
    +
    +/**
    + * Function: isSelectionEmpty
    + * 
    + * Returns true if the selection is empty.
    + */
    +mxGraph.prototype.isSelectionEmpty = function()
    +{
    +	return this.getSelectionModel().isEmpty();
    +};
    +
    +/**
    + * Function: clearSelection
    + * 
    + * Clears the selection using <mxGraphSelectionModel.clear>.
    + */
    +mxGraph.prototype.clearSelection = function()
    +{
    +	return this.getSelectionModel().clear();
    +};
    +
    +/**
    + * Function: getSelectionCount
    + * 
    + * Returns the number of selected cells.
    + */
    +mxGraph.prototype.getSelectionCount = function()
    +{
    +	return this.getSelectionModel().cells.length;
    +};
    +	
    +/**
    + * Function: getSelectionCell
    + * 
    + * Returns the first cell from the array of selected <mxCells>.
    + */
    +mxGraph.prototype.getSelectionCell = function()
    +{
    +	return this.getSelectionModel().cells[0];
    +};
    +
    +/**
    + * Function: getSelectionCells
    + * 
    + * Returns the array of selected <mxCells>.
    + */
    +mxGraph.prototype.getSelectionCells = function()
    +{
    +	return this.getSelectionModel().cells.slice();
    +};
    +
    +/**
    + * Function: setSelectionCell
    + * 
    + * Sets the selection cell.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to be selected.
    + */
    +mxGraph.prototype.setSelectionCell = function(cell)
    +{
    +	this.getSelectionModel().setCell(cell);
    +};
    +
    +/**
    + * Function: setSelectionCells
    + * 
    + * Sets the selection cell.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be selected.
    + */
    +mxGraph.prototype.setSelectionCells = function(cells)
    +{
    +	this.getSelectionModel().setCells(cells);
    +};
    +
    +/**
    + * Function: addSelectionCell
    + * 
    + * Adds the given cell to the selection.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to be add to the selection.
    + */
    +mxGraph.prototype.addSelectionCell = function(cell)
    +{
    +	this.getSelectionModel().addCell(cell);
    +};
    +
    +/**
    + * Function: addSelectionCells
    + * 
    + * Adds the given cells to the selection.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be added to the selection.
    + */
    +mxGraph.prototype.addSelectionCells = function(cells)
    +{
    +	this.getSelectionModel().addCells(cells);
    +};
    +
    +/**
    + * Function: removeSelectionCell
    + * 
    + * Removes the given cell from the selection.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to be removed from the selection.
    + */
    +mxGraph.prototype.removeSelectionCell = function(cell)
    +{
    +	this.getSelectionModel().removeCell(cell);
    +};
    +
    +/**
    + * Function: removeSelectionCells
    + * 
    + * Removes the given cells from the selection.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be removed from the selection.
    + */
    +mxGraph.prototype.removeSelectionCells = function(cells)
    +{
    +	this.getSelectionModel().removeCells(cells);
    +};
    +
    +/**
    + * Function: selectRegion
    + * 
    + * Selects and returns the cells inside the given rectangle for the
    + * specified event.
    + * 
    + * Parameters:
    + * 
    + * rect - <mxRectangle> that represents the region to be selected.
    + * evt - Mouseevent that triggered the selection.
    + */
    +mxGraph.prototype.selectRegion = function(rect, evt)
    +{
    +	var cells = this.getCells(rect.x, rect.y, rect.width, rect.height);
    +	this.selectCellsForEvent(cells, evt);
    +	
    +	return cells;
    +};
    +
    +/**
    + * Function: selectNextCell
    + * 
    + * Selects the next cell.
    + */
    +mxGraph.prototype.selectNextCell = function()
    +{
    +	this.selectCell(true);
    +};
    +
    +/**
    + * Function: selectPreviousCell
    + * 
    + * Selects the previous cell.
    + */
    +mxGraph.prototype.selectPreviousCell = function()
    +{
    +	this.selectCell();
    +};
    +
    +/**
    + * Function: selectParentCell
    + * 
    + * Selects the parent cell.
    + */
    +mxGraph.prototype.selectParentCell = function()
    +{
    +	this.selectCell(false, true);
    +};
    +
    +/**
    + * Function: selectChildCell
    + * 
    + * Selects the first child cell.
    + */
    +mxGraph.prototype.selectChildCell = function()
    +{
    +	this.selectCell(false, false, true);
    +};
    +
    +/**
    + * Function: selectCell
    + * 
    + * Selects the next, parent, first child or previous cell, if all arguments
    + * are false.
    + * 
    + * Parameters:
    + * 
    + * isNext - Boolean indicating if the next cell should be selected.
    + * isParent - Boolean indicating if the parent cell should be selected.
    + * isChild - Boolean indicating if the first child cell should be selected.
    + */
    +mxGraph.prototype.selectCell = function(isNext, isParent, isChild)
    +{
    +	var sel = this.selectionModel;
    +	var cell = (sel.cells.length > 0) ? sel.cells[0] : null;
    +	
    +	if (sel.cells.length > 1)
    +	{
    +		sel.clear();
    +	}
    +	
    +	var parent = (cell != null) ?
    +		this.model.getParent(cell) :
    +		this.getDefaultParent();
    +	
    +	var childCount = this.model.getChildCount(parent);
    +	
    +	if (cell == null && childCount > 0)
    +	{
    +		var child = this.model.getChildAt(parent, 0);
    +		this.setSelectionCell(child);
    +	}
    +	else if ((cell == null || isParent) &&
    +		this.view.getState(parent) != null &&
    +		this.model.getGeometry(parent) != null)
    +	{
    +		if (this.getCurrentRoot() != parent)
    +		{
    +			this.setSelectionCell(parent);
    +		}
    +	}
    +	else if (cell != null && isChild)
    +	{
    +		var tmp = this.model.getChildCount(cell);
    +		
    +		if (tmp > 0)
    +		{
    +			var child = this.model.getChildAt(cell, 0);
    +			this.setSelectionCell(child);
    +		}
    +	}
    +	else if (childCount > 0)
    +	{
    +		var i = parent.getIndex(cell);
    +		
    +		if (isNext)
    +		{
    +			i++;
    +			var child = this.model.getChildAt(parent, i % childCount);
    +			this.setSelectionCell(child);
    +		}
    +		else
    +		{
    +			i--;
    +			var index =  (i < 0) ? childCount - 1 : i;
    +			var child = this.model.getChildAt(parent, index);
    +			this.setSelectionCell(child);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: selectAll
    + * 
    + * Selects all children of the given parent cell or the children of the
    + * default parent if no parent is specified. To select leaf vertices and/or
    + * edges use <selectCells>.
    + * 
    + * Parameters:
    + * 
    + * parent - Optional <mxCell> whose children should be selected.
    + * Default is <defaultParent>.
    + */
    +mxGraph.prototype.selectAll = function(parent)
    +{
    +	parent = parent || this.getDefaultParent();
    +	
    +	var children = this.model.getChildren(parent);
    +	
    +	if (children != null)
    +	{
    +		this.setSelectionCells(children);
    +	}
    +};
    +
    +/**
    + * Function: selectVertices
    + * 
    + * Select all vertices inside the given parent or the default parent.
    + */
    +mxGraph.prototype.selectVertices = function(parent)
    +{
    +	this.selectCells(true, false, parent);
    +};
    +
    +/**
    + * Function: selectVertices
    + * 
    + * Select all vertices inside the given parent or the default parent.
    + */
    +mxGraph.prototype.selectEdges = function(parent)
    +{
    +	this.selectCells(false, true, parent);
    +};
    +
    +/**
    + * Function: selectCells
    + * 
    + * Selects all vertices and/or edges depending on the given boolean
    + * arguments recursively, starting at the given parent or the default
    + * parent if no parent is specified. Use <selectAll> to select all cells.
    + * 
    + * Parameters:
    + * 
    + * vertices - Boolean indicating if vertices should be selected.
    + * edges - Boolean indicating if edges should be selected.
    + * parent - Optional <mxCell> that acts as the root of the recursion.
    + * Default is <defaultParent>.
    + */
    +mxGraph.prototype.selectCells = function(vertices, edges, parent)
    +{
    +	parent = parent || this.getDefaultParent();
    +	
    +	var filter = mxUtils.bind(this, function(cell)
    +	{
    +		return this.view.getState(cell) != null &&
    +			this.model.getChildCount(cell) == 0 &&
    +			((this.model.isVertex(cell) && vertices) ||
    +			(this.model.isEdge(cell) && edges));
    +	});
    +	
    +	var cells = this.model.filterDescendants(filter, parent);
    +	this.setSelectionCells(cells);
    +};
    +
    +/**
    + * Function: selectCellForEvent
    + * 
    + * Selects the given cell by either adding it to the selection or
    + * replacing the selection depending on whether the given mouse event is a
    + * toggle event.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to be selected.
    + * evt - Optional mouseevent that triggered the selection.
    + */
    +mxGraph.prototype.selectCellForEvent = function(cell, evt)
    +{
    +	var isSelected = this.isCellSelected(cell);
    +	
    +	if (this.isToggleEvent(evt))
    +	{
    +		if (isSelected)
    +		{
    +			this.removeSelectionCell(cell);
    +		}
    +		else
    +		{
    +			this.addSelectionCell(cell);
    +		}
    +	}
    +	else if (!isSelected || this.getSelectionCount() != 1)
    +	{
    +		this.setSelectionCell(cell);
    +	}
    +};
    +
    +/**
    + * Function: selectCellsForEvent
    + * 
    + * Selects the given cells by either adding them to the selection or
    + * replacing the selection depending on whether the given mouse event is a
    + * toggle event.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be selected.
    + * evt - Optional mouseevent that triggered the selection.
    + */
    +mxGraph.prototype.selectCellsForEvent = function(cells, evt)
    +{
    +	if (this.isToggleEvent(evt))
    +	{
    +		this.addSelectionCells(cells);
    +	}
    +	else
    +	{
    +		this.setSelectionCells(cells);
    +	}
    +};
    +
    +/**
    + * Group: Selection state
    + */
    +
    +/**
    + * Function: createHandler
    + * 
    + * Creates a new handler for the given cell state. This implementation
    + * returns a new <mxEdgeHandler> of the corresponding cell is an edge,
    + * otherwise it returns an <mxVertexHandler>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose handler should be created.
    + */
    +mxGraph.prototype.createHandler = function(state)
    +{
    +	var result = null;
    +	
    +	if (state != null)
    +	{
    +		if (this.model.isEdge(state.cell))
    +		{
    +			var style = this.view.getEdgeStyle(state);
    +			
    +			if (this.isLoop(state) ||
    +				style == mxEdgeStyle.ElbowConnector ||
    +				style == mxEdgeStyle.SideToSide ||
    +				style == mxEdgeStyle.TopToBottom)
    +			{
    +				result = new mxElbowEdgeHandler(state);
    +			}
    +			else if (style == mxEdgeStyle.SegmentConnector || 
    +					 style == mxEdgeStyle.OrthConnector)
    +			{
    +				result = new mxEdgeSegmentHandler(state);
    +			}
    +			else
    +			{
    +				result = new mxEdgeHandler(state);
    +			}
    +		}
    +		else
    +		{
    +			result = new mxVertexHandler(state);
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Group: Graph events
    + */
    +
    +/**
    + * Function: addMouseListener
    + * 
    + * Adds a listener to the graph event dispatch loop. The listener
    + * must implement the mouseDown, mouseMove and mouseUp methods
    + * as shown in the <mxMouseEvent> class.
    + * 
    + * Parameters:
    + * 
    + * listener - Listener to be added to the graph event listeners.
    + */
    +mxGraph.prototype.addMouseListener = function(listener)
    +{
    +	if (this.mouseListeners == null)
    +	{
    +		this.mouseListeners = [];
    +	}
    +	
    +	this.mouseListeners.push(listener);
    +};
    +
    +/**
    + * Function: removeMouseListener
    + * 
    + * Removes the specified graph listener.
    + * 
    + * Parameters:
    + * 
    + * listener - Listener to be removed from the graph event listeners.
    + */
    +mxGraph.prototype.removeMouseListener = function(listener)
    +{
    +	if (this.mouseListeners != null)
    +	{
    +		for (var i = 0; i < this.mouseListeners.length; i++)
    +		{
    +			if (this.mouseListeners[i] == listener)
    +			{
    +				this.mouseListeners.splice(i, 1);
    +				break;
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: updateMouseEvent
    + * 
    + * Sets the graphX and graphY properties if the given <mxMouseEvent> if
    + * required.
    + */
    +mxGraph.prototype.updateMouseEvent = function(me)
    +{
    +	if (me.graphX == null || me.graphY == null)
    +	{
    +		var pt = mxUtils.convertPoint(this.container, me.getX(), me.getY());
    +		
    +		me.graphX = pt.x - this.panDx;
    +		me.graphY = pt.y - this.panDy;
    +	}
    +};
    +
    +/**
    + * Function: fireMouseEvent
    + * 
    + * Dispatches the given event in the graph event dispatch loop. Possible
    + * event names are <mxEvent.MOUSE_DOWN>, <mxEvent.MOUSE_MOVE> and
    + * <mxEvent.MOUSE_UP>. All listeners are invoked for all events regardless
    + * of the consumed state of the event.
    + * 
    + * Parameters:
    + * 
    + * evtName - String that specifies the type of event to be dispatched.
    + * me - <mxMouseEvent> to be fired.
    + * sender - Optional sender argument. Default is this.
    + */
    +mxGraph.prototype.fireMouseEvent = function(evtName, me, sender)
    +{
    +	if (sender == null)
    +	{
    +		sender = this;
    +	}
    +	
    +	// Updates the graph coordinates in the event
    +	this.updateMouseEvent(me);
    +
    +	// Makes sure we have a uniform event-sequence across all
    +	// browsers for a double click. Since evt.detail == 2 is only
    +	// available on Firefox we use the fact that each mousedown
    +	// must be followed by a mouseup, all out-of-sync downs
    +	// will be dropped silently.
    +	if (evtName == mxEvent.MOUSE_DOWN)
    +	{
    +		this.isMouseDown = true;
    +	}
    +	
    +	// Detects and processes double taps for touch-based devices
    +	// which do not have native double click events
    +	if (mxClient.IS_TOUCH && this.doubleTapEnabled && evtName == mxEvent.MOUSE_DOWN)
    +	{
    +		var currentTime = new Date().getTime();
    +
    +		if (currentTime - this.lastTouchTime < this.doubleTapTimeout &&
    +			Math.abs(this.lastTouchX - me.getX()) < this.doubleTapTolerance &&
    +			Math.abs(this.lastTouchY - me.getY()) < this.doubleTapTolerance)
    +		{
    +			// FIXME: The actual editing should start on MOUSE_UP event but
    +			// the detection of the double click should use the mouse_down event
    +			// to make it consistent with behaviour in browser with mouse.
    +			this.lastTouchTime = 0;
    +			this.dblClick(me.getEvent(), me.getCell());
    +			
    +			// Stop bubbling but do not consume to make sure the device
    +			// can bring up the virtual keyboard for editing
    +			me.getEvent().cancelBubble = true;
    +		} 
    +		else
    +		{
    +			this.lastTouchX = me.getX();
    +			this.lastTouchY = me.getY();
    +			this.lastTouchTime = currentTime;
    +		}
    +	}
    +	
    +	// Workaround for IE9 standards mode ignoring tolerance for double clicks
    +	var noDoubleClick = me.getEvent().detail/*clickCount*/ != 2;
    +	
    +	if (mxClient.IS_IE && document.compatMode == 'CSS1Compat')
    +	{
    +		if ((this.lastMouseX != null && Math.abs(this.lastMouseX - me.getX()) > this.doubleTapTolerance) ||
    +			(this.lastMouseY != null && Math.abs(this.lastMouseY - me.getY()) > this.doubleTapTolerance))
    +		{
    +			noDoubleClick = true;
    +		}
    +		
    +		if (evtName == mxEvent.MOUSE_UP)
    +		{
    +			this.lastMouseX = me.getX();
    +			this.lastMouseY = me.getY();
    +		}
    +	}
    +
    +	// Filters too many mouse ups when the mouse is down
    +	if ((evtName != mxEvent.MOUSE_UP || this.isMouseDown) && noDoubleClick)
    +	{
    +		if (evtName == mxEvent.MOUSE_UP)
    +		{
    +			this.isMouseDown = false;
    +		}
    +
    +		if (!this.isEditing() && (mxClient.IS_OP || mxClient.IS_SF || mxClient.IS_GC ||
    +			(mxClient.IS_IE && mxClient.IS_SVG) || me.getEvent().target != this.container))
    +		{
    +			if (evtName == mxEvent.MOUSE_MOVE && this.isMouseDown && this.autoScroll)
    +			{
    +				this.scrollPointToVisible(me.getGraphX(), me.getGraphY(), this.autoExtend);
    +			}
    +			
    +			if (this.mouseListeners != null)
    +			{
    +				var args = [sender, me];
    +
    +				// Does not change returnValue in Opera
    +				me.getEvent().returnValue = true;
    +				
    +				for (var i = 0; i < this.mouseListeners.length; i++)
    +				{
    +					var l = this.mouseListeners[i];
    +					
    +					if (evtName == mxEvent.MOUSE_DOWN)
    +					{
    +						l.mouseDown.apply(l, args);
    +					}
    +					else if (evtName == mxEvent.MOUSE_MOVE)
    +					{
    +						l.mouseMove.apply(l, args);
    +					}
    +					else if (evtName == mxEvent.MOUSE_UP)
    +					{
    +						l.mouseUp.apply(l, args);
    +					}
    +				}
    +			}
    +			
    +			// Invokes the click handler
    +			if (evtName == mxEvent.MOUSE_UP)
    +			{
    +				this.click(me);
    +			}
    +		}
    +	}
    +	else if (evtName == mxEvent.MOUSE_UP)
    +	{
    +		this.isMouseDown = false;
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the graph and all its resources.
    + */
    +mxGraph.prototype.destroy = function()
    +{
    +	if (!this.destroyed)
    +	{
    +		this.destroyed = true;
    +		
    +		if (this.tooltipHandler != null)
    +		{
    +			this.tooltipHandler.destroy();
    +		}
    +		
    +		if (this.selectionCellsHandler != null)
    +		{
    +			this.selectionCellsHandler.destroy();
    +		}
    +
    +		if (this.panningHandler != null)
    +		{
    +			this.panningHandler.destroy();
    +		}
    +		
    +		if (this.connectionHandler != null)
    +		{
    +			this.connectionHandler.destroy();
    +		}
    +		
    +		if (this.graphHandler != null)
    +		{
    +			this.graphHandler.destroy();
    +		}
    +		
    +		if (this.cellEditor != null)
    +		{
    +			this.cellEditor.destroy();
    +		}
    +		
    +		if (this.view != null)
    +		{
    +			this.view.destroy();
    +		}
    +
    +		if (this.model != null && this.graphModelChangeListener != null)
    +		{
    +			this.model.removeListener(this.graphModelChangeListener);
    +			this.graphModelChangeListener = null;
    +		}
    +
    +		this.container = null;
    +	}
    +};
    diff --git a/javascript/src/js/view/mxGraphSelectionModel.js b/javascript/src/js/view/mxGraphSelectionModel.js
    new file mode 100644
    index 000000000..5cd16a873
    --- /dev/null
    +++ b/javascript/src/js/view/mxGraphSelectionModel.js
    @@ -0,0 +1,435 @@
    +/**
    + * $Id: mxGraphSelectionModel.js,v 1.14 2011-11-25 10:16:08 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraphSelectionModel
    + *
    + * Implements the selection model for a graph. Here is a listener that handles
    + * all removed selection cells.
    + * 
    + * (code)
    + * graph.getSelectionModel().addListener(mxEvent.CHANGE, function(sender, evt)
    + * {
    + *   var cells = evt.getProperty('added');
    + *   
    + *   for (var i = 0; i < cells.length; i++)
    + *   {
    + *     // Handle cells[i]...
    + *   }
    + * });
    + * (end)
    + * 
    + * Event: mxEvent.UNDO
    + * 
    + * Fires after the selection was changed in <changeSelection>. The
    + * <code>edit</code> property contains the <mxUndoableEdit> which contains the
    + * <mxSelectionChange>.
    + * 
    + * Event: mxEvent.CHANGE
    + * 
    + * Fires after the selection changes by executing an <mxSelectionChange>. The
    + * <code>added</code> and <code>removed</code> properties contain arrays of
    + * cells that have been added to or removed from the selection, respectively.
    + * 
    + * Constructor: mxGraphSelectionModel
    + *
    + * Constructs a new graph selection model for the given <mxGraph>.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + */
    +function mxGraphSelectionModel(graph)
    +{
    +	this.graph = graph;
    +	this.cells = [];
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxGraphSelectionModel.prototype = new mxEventSource();
    +mxGraphSelectionModel.prototype.constructor = mxGraphSelectionModel;
    +
    +/**
    + * Variable: doneResource
    + * 
    + * Specifies the resource key for the status message after a long operation.
    + * If the resource for this key does not exist then the value is used as
    + * the status message. Default is 'done'.
    + */
    +mxGraphSelectionModel.prototype.doneResource = (mxClient.language != 'none') ? 'done' : '';
    +
    +/**
    + * Variable: updatingSelectionResource
    + *
    + * Specifies the resource key for the status message while the selection is
    + * being updated. If the resource for this key does not exist then the
    + * value is used as the status message. Default is 'updatingSelection'.
    + */
    +mxGraphSelectionModel.prototype.updatingSelectionResource = (mxClient.language != 'none') ? 'updatingSelection' : '';
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxGraphSelectionModel.prototype.graph = null;
    +
    +/**
    + * Variable: singleSelection
    + *
    + * Specifies if only one selected item at a time is allowed.
    + * Default is false.
    + */
    +mxGraphSelectionModel.prototype.singleSelection = false;
    +
    +/**
    + * Function: isSingleSelection
    + *
    + * Returns <singleSelection> as a boolean.
    + */
    +mxGraphSelectionModel.prototype.isSingleSelection = function()
    +{
    +	return this.singleSelection;
    +};
    +
    +/**
    + * Function: setSingleSelection
    + *
    + * Sets the <singleSelection> flag.
    + * 
    + * Parameters:
    + * 
    + * singleSelection - Boolean that specifies the new value for
    + * <singleSelection>.
    + */
    +mxGraphSelectionModel.prototype.setSingleSelection = function(singleSelection)
    +{
    +	this.singleSelection = singleSelection;
    +};
    +
    +/**
    + * Function: isSelected
    + *
    + * Returns true if the given <mxCell> is selected.
    + */
    +mxGraphSelectionModel.prototype.isSelected = function(cell)
    +{
    +	if (cell != null)
    +	{
    +		return mxUtils.indexOf(this.cells, cell) >= 0;
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: isEmpty
    + *
    + * Returns true if no cells are currently selected.
    + */
    +mxGraphSelectionModel.prototype.isEmpty = function()
    +{
    +	return this.cells.length == 0;
    +};
    +
    +/**
    + * Function: clear
    + *
    + * Clears the selection and fires a <change> event if the selection was not
    + * empty.
    + */
    +mxGraphSelectionModel.prototype.clear = function()
    +{
    +	this.changeSelection(null, this.cells);
    +};
    +
    +/**
    + * Function: setCell
    + *
    + * Selects the specified <mxCell> using <setCells>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to be selected.
    + */
    +mxGraphSelectionModel.prototype.setCell = function(cell)
    +{
    +	if (cell != null)
    +	{
    +		this.setCells([cell]);
    +	}
    +};
    +
    +/**
    + * Function: setCells
    + *
    + * Selects the given array of <mxCells> and fires a <change> event.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to be selected.
    + */
    +mxGraphSelectionModel.prototype.setCells = function(cells)
    +{
    +	if (cells != null)
    +	{
    +		if (this.singleSelection)
    +		{
    +			cells = [this.getFirstSelectableCell(cells)];
    +		}
    +	
    +		var tmp = [];
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (this.graph.isCellSelectable(cells[i]))
    +			{
    +				tmp.push(cells[i]);
    +			}	
    +		}
    +
    +		this.changeSelection(tmp, this.cells);
    +	}
    +};
    +
    +/**
    + * Function: getFirstSelectableCell
    + *
    + * Returns the first selectable cell in the given array of cells.
    + */
    +mxGraphSelectionModel.prototype.getFirstSelectableCell = function(cells)
    +{
    +	if (cells != null)
    +	{
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (this.graph.isCellSelectable(cells[i]))
    +			{
    +				return cells[i];
    +			}
    +		}
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: addCell
    + * 
    + * Adds the given <mxCell> to the selection and fires a <select> event.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to add to the selection.
    + */
    +mxGraphSelectionModel.prototype.addCell = function(cell)
    +{
    +	if (cell != null)
    +	{
    +		this.addCells([cell]);
    +	}
    +};
    +
    +/**
    + * Function: addCells
    + * 
    + * Adds the given array of <mxCells> to the selection and fires a <select>
    + * event.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> to add to the selection.
    + */
    +mxGraphSelectionModel.prototype.addCells = function(cells)
    +{
    +	if (cells != null)
    +	{
    +		var remove = null;
    +		
    +		if (this.singleSelection)
    +		{
    +			remove = this.cells;
    +			cells = [this.getFirstSelectableCell(cells)];
    +		}
    +
    +		var tmp = [];
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (!this.isSelected(cells[i]) &&
    +				this.graph.isCellSelectable(cells[i]))
    +			{
    +				tmp.push(cells[i]);
    +			}	
    +		}
    +
    +		this.changeSelection(tmp, remove);
    +	}
    +};
    +
    +/**
    + * Function: removeCell
    + *
    + * Removes the specified <mxCell> from the selection and fires a <select>
    + * event for the remaining cells.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to remove from the selection.
    + */
    +mxGraphSelectionModel.prototype.removeCell = function(cell)
    +{
    +	if (cell != null)
    +	{
    +		this.removeCells([cell]);
    +	}
    +};
    +
    +/**
    + * Function: removeCells
    + */
    +mxGraphSelectionModel.prototype.removeCells = function(cells)
    +{
    +	if (cells != null)
    +	{
    +		var tmp = [];
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (this.isSelected(cells[i]))
    +			{
    +				tmp.push(cells[i]);
    +			}
    +		}
    +		
    +		this.changeSelection(null, tmp);	
    +	}
    +};
    +
    +/**
    + * Function: changeSelection
    + *
    + * Inner callback to add the specified <mxCell> to the selection. No event
    + * is fired in this implementation.
    + * 
    + * Paramters:
    + * 
    + * cell - <mxCell> to add to the selection.
    + */
    +mxGraphSelectionModel.prototype.changeSelection = function(added, removed)
    +{
    +	if ((added != null &&
    +		added.length > 0 &&
    +		added[0] != null) ||
    +		(removed != null &&
    +		removed.length > 0 &&
    +		removed[0] != null))
    +	{
    +		var change = new mxSelectionChange(this, added, removed);
    +		change.execute();
    +		var edit = new mxUndoableEdit(this, false);
    +		edit.add(change);
    +		this.fireEvent(new mxEventObject(mxEvent.UNDO, 'edit', edit));
    +	}
    +};
    +
    +/**
    + * Function: cellAdded
    + *
    + * Inner callback to add the specified <mxCell> to the selection. No event
    + * is fired in this implementation.
    + * 
    + * Paramters:
    + * 
    + * cell - <mxCell> to add to the selection.
    + */
    +mxGraphSelectionModel.prototype.cellAdded = function(cell)
    +{
    +	if (cell != null &&
    +		!this.isSelected(cell))
    +	{
    +		this.cells.push(cell);
    +	}
    +};
    +
    +/**
    + * Function: cellRemoved
    + *
    + * Inner callback to remove the specified <mxCell> from the selection. No
    + * event is fired in this implementation.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> to remove from the selection.
    + */
    +mxGraphSelectionModel.prototype.cellRemoved = function(cell)
    +{
    +	if (cell != null)
    +	{
    +		var index = mxUtils.indexOf(this.cells, cell);
    +		
    +		if (index >= 0)
    +		{
    +			this.cells.splice(index, 1);
    +		}
    +	}
    +};
    +
    +/**
    + * Class: mxSelectionChange
    + *
    + * Action to change the current root in a view.
    + *
    + * Constructor: mxCurrentRootChange
    + *
    + * Constructs a change of the current root in the given view.
    + */
    +function mxSelectionChange(selectionModel, added, removed)
    +{
    +	this.selectionModel = selectionModel;
    +	this.added = (added != null) ? added.slice() : null;
    +	this.removed = (removed != null) ? removed.slice() : null;
    +};
    +
    +/**
    + * Function: execute
    + *
    + * Changes the current root of the view.
    + */
    +mxSelectionChange.prototype.execute = function()
    +{
    +	var t0 = mxLog.enter('mxSelectionChange.execute');
    +	window.status = mxResources.get(
    +		this.selectionModel.updatingSelectionResource) ||
    +		this.selectionModel.updatingSelectionResource;
    +
    +	if (this.removed != null)
    +	{
    +		for (var i = 0; i < this.removed.length; i++)
    +		{
    +			this.selectionModel.cellRemoved(this.removed[i]);
    +		}
    +	}
    +
    +	if (this.added != null)
    +	{
    +		for (var i = 0; i < this.added.length; i++)
    +		{
    +			this.selectionModel.cellAdded(this.added[i]);
    +		}
    +	}
    +	
    +	var tmp = this.added;
    +	this.added = this.removed;
    +	this.removed = tmp;
    +
    +	window.status = mxResources.get(this.selectionModel.doneResource) ||
    +		this.selectionModel.doneResource;
    +	mxLog.leave('mxSelectionChange.execute', t0);
    +	
    +	this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,
    +			'added', this.added, 'removed', this.removed));
    +};
    diff --git a/javascript/src/js/view/mxGraphView.js b/javascript/src/js/view/mxGraphView.js
    new file mode 100644
    index 000000000..dc86c5500
    --- /dev/null
    +++ b/javascript/src/js/view/mxGraphView.js
    @@ -0,0 +1,2497 @@
    +/**
    + * $Id: mxGraphView.js,v 1.188 2012-05-10 17:28:47 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxGraphView
    + *
    + * Extends <mxEventSource> to implement a view for a graph. This class is in
    + * charge of computing the absolute coordinates for the relative child
    + * geometries, the points for perimeters and edge styles and keeping them
    + * cached in <mxCellStates> for faster retrieval. The states are updated
    + * whenever the model or the view state (translate, scale) changes. The scale
    + * and translate are honoured in the bounds.
    + * 
    + * Event: mxEvent.UNDO
    + * 
    + * Fires after the root was changed in <setCurrentRoot>. The <code>edit</code>
    + * property contains the <mxUndoableEdit> which contains the
    + * <mxCurrentRootChange>.
    + * 
    + * Event: mxEvent.SCALE_AND_TRANSLATE
    + * 
    + * Fires after the scale and translate have been changed in <scaleAndTranslate>.
    + * The <code>scale</code>, <code>previousScale</code>, <code>translate</code>
    + * and <code>previousTranslate</code> properties contain the new and previous
    + * scale and translate, respectively.
    + * 
    + * Event: mxEvent.SCALE
    + * 
    + * Fires after the scale was changed in <setScale>. The <code>scale</code> and
    + * <code>previousScale</code> properties contain the new and previous scale.
    + * 
    + * Event: mxEvent.TRANSLATE
    + * 
    + * Fires after the translate was changed in <setTranslate>. The
    + * <code>translate</code> and <code>previousTranslate</code> properties contain
    + * the new and previous value for translate.
    + * 
    + * Event: mxEvent.DOWN and mxEvent.UP
    + * 
    + * Fire if the current root is changed by executing an <mxCurrentRootChange>.
    + * The event name depends on the location of the root in the cell hierarchy
    + * with respect to the current root. The <code>root</code> and
    + * <code>previous</code> properties contain the new and previous root,
    + * respectively.
    + * 
    + * Constructor: mxGraphView
    + *
    + * Constructs a new view for the given <mxGraph>.
    + * 
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph>.
    + */
    +function mxGraphView(graph)
    +{
    +	this.graph = graph;
    +	this.translate = new mxPoint();
    +	this.graphBounds = new mxRectangle();
    +	this.states = new mxDictionary();
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxGraphView.prototype = new mxEventSource();
    +mxGraphView.prototype.constructor = mxGraphView;
    +
    +/**
    + *
    + */
    +mxGraphView.prototype.EMPTY_POINT = new mxPoint();
    +
    +/**
    + * Variable: doneResource
    + * 
    + * Specifies the resource key for the status message after a long operation.
    + * If the resource for this key does not exist then the value is used as
    + * the status message. Default is 'done'.
    + */
    +mxGraphView.prototype.doneResource = (mxClient.language != 'none') ? 'done' : '';
    +
    +/**
    + * Function: updatingDocumentResource
    + *
    + * Specifies the resource key for the status message while the document is
    + * being updated. If the resource for this key does not exist then the
    + * value is used as the status message. Default is 'updatingDocument'.
    + */
    +mxGraphView.prototype.updatingDocumentResource = (mxClient.language != 'none') ? 'updatingDocument' : '';
    +
    +/**
    + * Variable: allowEval
    + * 
    + * Specifies if string values in cell styles should be evaluated using
    + * <mxUtils.eval>. This will only be used if the string values can't be mapped
    + * to objects using <mxStyleRegistry>. Default is false. NOTE: Enabling this
    + * switch carries a possible security risk (see the section on security in
    + * the manual).
    + */
    +mxGraphView.prototype.allowEval = false;
    +
    +/**
    + * Variable: captureDocumentGesture
    + * 
    + * Specifies if a gesture should be captured when it goes outside of the
    + * graph container. Default is true.
    + */
    +mxGraphView.prototype.captureDocumentGesture = true;
    +
    +/**
    + * Variable: rendering
    + * 
    + * Specifies if shapes should be created, updated and destroyed using the
    + * methods of <mxCellRenderer> in <graph>. Default is true.
    + */
    +mxGraphView.prototype.rendering = true;
    +
    +/**
    + * Variable: graph
    + *
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxGraphView.prototype.graph = null;
    +
    +/**
    + * Variable: currentRoot
    + *
    + * <mxCell> that acts as the root of the displayed cell hierarchy.
    + */
    +mxGraphView.prototype.currentRoot = null;
    +
    +/**
    + * Variable: graphBounds
    + *
    + * <mxRectangle> that caches the scales, translated bounds of the current view.
    + */
    +mxGraphView.prototype.graphBounds = null;
    +
    +/**
    + * Variable: scale
    + * 
    + * Specifies the scale. Default is 1 (100%).
    + */
    +mxGraphView.prototype.scale = 1;
    +	
    +/**
    + * Variable: translate
    + *
    + * <mxPoint> that specifies the current translation. Default is a new
    + * empty <mxPoint>.
    + */
    +mxGraphView.prototype.translate = null;
    +
    +/**
    + * Variable: updateStyle
    + * 
    + * Specifies if the style should be updated in each validation step. If
    + * this is false then the style is only updated if the state is created.
    + * Default is false.
    + */
    +mxGraphView.prototype.updateStyle = false;
    +
    +/**
    + * Function: getGraphBounds
    + *
    + * Returns <graphBounds>.
    + */
    +mxGraphView.prototype.getGraphBounds = function()
    +{
    +	return this.graphBounds;
    +};
    +
    +/**
    + * Function: setGraphBounds
    + *
    + * Sets <graphBounds>.
    + */
    +mxGraphView.prototype.setGraphBounds = function(value)
    +{
    +	this.graphBounds = value;
    +};
    +
    +/**
    + * Function: getBounds
    + *
    + * Returns the bounds (on the screen) for the given array of <mxCells>.
    + *
    + * Parameters:
    + *
    + * cells - Array of <mxCells> to return the bounds for.
    + */
    +mxGraphView.prototype.getBounds = function(cells)
    +{
    +	var result = null;
    +	
    +	if (cells != null && cells.length > 0)
    +	{
    +		var model = this.graph.getModel();
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			if (model.isVertex(cells[i]) || model.isEdge(cells[i]))
    +			{
    +				var state = this.getState(cells[i]);
    +			
    +				if (state != null)
    +				{
    +					if (result == null)
    +					{
    +						result = new mxRectangle(state.x, state.y,
    +							state.width, state.height);
    +					}
    +					else
    +					{
    +						result.add(state);
    +					}
    +				}
    +			}
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: setCurrentRoot
    + *
    + * Sets and returns the current root and fires an <undo> event before
    + * calling <mxGraph.sizeDidChange>.
    + *
    + * Parameters:
    + *
    + * root - <mxCell> that specifies the root of the displayed cell hierarchy.
    + */
    +mxGraphView.prototype.setCurrentRoot = function(root)
    +{
    +	if (this.currentRoot != root)
    +	{
    +		var change = new mxCurrentRootChange(this, root);
    +		change.execute();
    +		var edit = new mxUndoableEdit(this, false);
    +		edit.add(change);
    +		this.fireEvent(new mxEventObject(mxEvent.UNDO, 'edit', edit));
    +		this.graph.sizeDidChange();
    +	}
    +	
    +	return root;
    +};
    +
    +/**
    + * Function: scaleAndTranslate
    + *
    + * Sets the scale and translation and fires a <scale> and <translate> event
    + * before calling <revalidate> followed by <mxGraph.sizeDidChange>.
    + *
    + * Parameters:
    + *
    + * scale - Decimal value that specifies the new scale (1 is 100%).
    + * dx - X-coordinate of the translation.
    + * dy - Y-coordinate of the translation.
    + */
    +mxGraphView.prototype.scaleAndTranslate = function(scale, dx, dy)
    +{
    +	var previousScale = this.scale;
    +	var previousTranslate = new mxPoint(this.translate.x, this.translate.y);
    +	
    +	if (this.scale != scale || this.translate.x != dx || this.translate.y != dy)
    +	{
    +		this.scale = scale;
    +		
    +		this.translate.x = dx;
    +		this.translate.y = dy;
    +
    +		if (this.isEventsEnabled())
    +		{
    +			this.revalidate();
    +			this.graph.sizeDidChange();
    +		}
    +	}
    +	
    +	this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,
    +		'scale', scale, 'previousScale', previousScale,
    +		'translate', this.translate, 'previousTranslate', previousTranslate));
    +};
    +
    +/**
    + * Function: getScale
    + * 
    + * Returns the <scale>.
    + */
    +mxGraphView.prototype.getScale = function()
    +{
    +	return this.scale;
    +};
    +
    +/**
    + * Function: setScale
    + *
    + * Sets the scale and fires a <scale> event before calling <revalidate> followed
    + * by <mxGraph.sizeDidChange>.
    + *
    + * Parameters:
    + *
    + * value - Decimal value that specifies the new scale (1 is 100%).
    + */
    +mxGraphView.prototype.setScale = function(value)
    +{
    +	var previousScale = this.scale;
    +	
    +	if (this.scale != value)
    +	{
    +		this.scale = value;
    +
    +		if (this.isEventsEnabled())
    +		{
    +			this.revalidate();
    +			this.graph.sizeDidChange();
    +		}
    +	}
    +	
    +	this.fireEvent(new mxEventObject(mxEvent.SCALE,
    +		'scale', value, 'previousScale', previousScale));
    +};
    +
    +/**
    + * Function: getTranslate
    + * 
    + * Returns the <translate>.
    + */
    +mxGraphView.prototype.getTranslate = function()
    +{
    +	return this.translate;
    +};
    +
    +/**
    + * Function: setTranslate
    + *
    + * Sets the translation and fires a <translate> event before calling
    + * <revalidate> followed by <mxGraph.sizeDidChange>. The translation is the
    + * negative of the origin.
    + *
    + * Parameters:
    + *
    + * dx - X-coordinate of the translation.
    + * dy - Y-coordinate of the translation.
    + */
    +mxGraphView.prototype.setTranslate = function(dx, dy)
    +{
    +	var previousTranslate = new mxPoint(this.translate.x, this.translate.y);
    +	
    +	if (this.translate.x != dx || this.translate.y != dy)
    +	{
    +		this.translate.x = dx;
    +		this.translate.y = dy;
    +
    +		if (this.isEventsEnabled())
    +		{
    +			this.revalidate();
    +			this.graph.sizeDidChange();
    +		}
    +	}
    +	
    +	this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,
    +		'translate', this.translate, 'previousTranslate', previousTranslate));
    +};
    +
    +/**
    + * Function: refresh
    + *
    + * Clears the view if <currentRoot> is not null and revalidates.
    + */
    +mxGraphView.prototype.refresh = function()
    +{
    +	if (this.currentRoot != null)
    +	{
    +		this.clear();
    +	}
    +	
    +	this.revalidate();
    +};
    +
    +/**
    + * Function: revalidate
    + *
    + * Revalidates the complete view with all cell states.
    + */
    +mxGraphView.prototype.revalidate = function()
    +{
    +	this.invalidate();
    +	this.validate();
    +};
    +
    +/**
    + * Function: clear
    + *
    + * Removes the state of the given cell and all descendants if the given
    + * cell is not the current root.
    + * 
    + * Parameters:
    + * 
    + * cell - Optional <mxCell> for which the state should be removed. Default
    + * is the root of the model.
    + * force - Boolean indicating if the current root should be ignored for
    + * recursion.
    + */
    +mxGraphView.prototype.clear = function(cell, force, recurse)
    +{
    +	var model = this.graph.getModel();
    +	cell = cell || model.getRoot();
    +	force = (force != null) ? force : false;
    +	recurse = (recurse != null) ? recurse : true;
    +	
    +	this.removeState(cell);
    +	
    +	if (recurse && (force || cell != this.currentRoot))
    +	{
    +		var childCount = model.getChildCount(cell);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			this.clear(model.getChildAt(cell, i), force);
    +		}
    +	}
    +	else
    +	{
    +		this.invalidate(cell);
    +	}
    +};
    +
    +/**
    + * Function: invalidate
    + * 
    + * Invalidates the state of the given cell, all its descendants and
    + * connected edges.
    + * 
    + * Parameters:
    + * 
    + * cell - Optional <mxCell> to be invalidated. Default is the root of the
    + * model.
    + */
    +mxGraphView.prototype.invalidate = function(cell, recurse, includeEdges, orderChanged)
    +{
    +	var model = this.graph.getModel();
    +	cell = cell || model.getRoot();
    +	recurse = (recurse != null) ? recurse : true;
    +	includeEdges = (includeEdges != null) ? includeEdges : true;
    +	orderChanged = (orderChanged != null) ? orderChanged : false;
    +	
    +	var state = this.getState(cell);
    +
    +	if (state != null)
    +	{
    +		state.invalid = true;
    +		
    +		if (orderChanged)
    +		{
    +			state.orderChanged = true;
    +		}
    +	}
    +	
    +	// Recursively invalidates all descendants
    +	if (recurse)
    +	{
    +		var childCount = model.getChildCount(cell);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var child = model.getChildAt(cell, i);
    +			this.invalidate(child, recurse, includeEdges, orderChanged);
    +		}
    +	}
    +	
    +	// Propagates invalidation to all connected edges
    +	if (includeEdges)
    +	{
    +		var edgeCount = model.getEdgeCount(cell);
    +		
    +		for (var i = 0; i < edgeCount; i++)
    +		{
    +			this.invalidate(model.getEdgeAt(cell, i), recurse, includeEdges);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: validate
    + *
    + * First validates all bounds and then validates all points recursively on
    + * all visible cells starting at the given cell. Finally the background
    + * is validated using <validateBackground>.
    + * 
    + * Parameters:
    + * 
    + * cell - Optional <mxCell> to be used as the root of the validation.
    + * Default is <currentRoot> or the root of the model.
    + */
    +mxGraphView.prototype.validate = function(cell)
    +{
    +	var t0 = mxLog.enter('mxGraphView.validate');
    +	window.status = mxResources.get(this.updatingDocumentResource) ||
    +		this.updatingDocumentResource;
    +	
    +	cell = cell || ((this.currentRoot != null) ?
    +			this.currentRoot :
    +				this.graph.getModel().getRoot());
    +	this.validateBounds(null, cell);
    +	var graphBounds = this.validatePoints(null, cell);
    +	
    +	if (graphBounds == null)
    +	{
    +		graphBounds = new mxRectangle();
    +	}
    +
    +	this.setGraphBounds(graphBounds);
    +	this.validateBackground();
    +	
    +	window.status = mxResources.get(this.doneResource) ||
    +		this.doneResource;
    +	mxLog.leave('mxGraphView.validate', t0);
    +};
    +
    +/**
    + * Function: createBackgroundPageShape
    + *
    + * Creates and returns the shape used as the background page.
    + * 
    + * Parameters:
    + * 
    + * bounds - <mxRectangle> that represents the bounds of the shape.
    + */
    +mxGraphView.prototype.createBackgroundPageShape = function(bounds)
    +{
    +	return new mxRectangleShape(bounds, 'white', 'black');
    +};
    +
    +/**
    + * Function: validateBackground
    + *
    + * Validates the background image.
    + */
    +mxGraphView.prototype.validateBackground = function()
    +{
    +	var bg = this.graph.getBackgroundImage();
    +	
    +	if (bg != null)
    +	{
    +		if (this.backgroundImage == null || this.backgroundImage.image != bg.src)
    +		{
    +			if (this.backgroundImage != null)
    +			{
    +				this.backgroundImage.destroy();
    +			}
    +			
    +			var bounds = new mxRectangle(0, 0, 1, 1);
    +			
    +			this.backgroundImage = new mxImageShape(bounds, bg.src);
    +			this.backgroundImage.dialect = this.graph.dialect;
    +			this.backgroundImage.init(this.backgroundPane);
    +			this.backgroundImage.redraw();
    +		}
    +		
    +		this.redrawBackgroundImage(this.backgroundImage, bg);
    +	}
    +	else if (this.backgroundImage != null)
    +	{
    +		this.backgroundImage.destroy();
    +		this.backgroundImage = null;
    +	}
    +	
    +	if (this.graph.pageVisible)
    +	{
    +		var bounds = this.getBackgroundPageBounds();
    +		
    +		if (this.backgroundPageShape == null)
    +		{
    +			this.backgroundPageShape = this.createBackgroundPageShape(bounds);
    +			this.backgroundPageShape.scale = this.scale;
    +			this.backgroundPageShape.isShadow = true;
    +			this.backgroundPageShape.dialect = this.graph.dialect;
    +			this.backgroundPageShape.init(this.backgroundPane);
    +			this.backgroundPageShape.redraw();
    +			
    +			// Adds listener for double click handling on background
    +			mxEvent.addListener(this.backgroundPageShape.node, 'dblclick',
    +				mxUtils.bind(this, function(evt)
    +				{
    +					this.graph.dblClick(evt);
    +				})
    +			);
    +			
    +			var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +			var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +			var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +
    +			// Adds basic listeners for graph event dispatching outside of the
    +			// container and finishing the handling of a single gesture
    +			mxEvent.addListener(this.backgroundPageShape.node, md,
    +				mxUtils.bind(this, function(evt)
    +				{
    +					this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(evt));
    +				})
    +			);
    +			mxEvent.addListener(this.backgroundPageShape.node, mm,
    +				mxUtils.bind(this, function(evt)
    +				{
    +					// Hides the tooltip if mouse is outside container
    +					if (this.graph.tooltipHandler != null &&
    +							this.graph.tooltipHandler.isHideOnHover())
    +					{
    +						this.graph.tooltipHandler.hide();
    +					}
    +					
    +					if (this.graph.isMouseDown &&
    +						!mxEvent.isConsumed(evt))
    +					{
    +						this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +							new mxMouseEvent(evt));
    +					}
    +				})
    +			);
    +			mxEvent.addListener(this.backgroundPageShape.node, mu,
    +				mxUtils.bind(this, function(evt)
    +				{
    +					this.graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +							new mxMouseEvent(evt));
    +				})
    +			);
    +		}
    +		else
    +		{
    +			this.backgroundPageShape.scale = this.scale;
    +			this.backgroundPageShape.bounds = bounds;
    +			this.backgroundPageShape.redraw();
    +		}
    +	}
    +	else if (this.backgroundPageShape != null)
    +	{
    +		this.backgroundPageShape.destroy();
    +		this.backgroundPageShape = null;
    +	}
    +};
    +
    +/**
    + * Function: getBackgroundPageBounds
    + * 
    + * Returns the bounds for the background page.
    + */
    +mxGraphView.prototype.getBackgroundPageBounds = function()
    +{
    +	var fmt = this.graph.pageFormat;
    +	var ps = this.scale * this.graph.pageScale;
    +	var bounds = new mxRectangle(this.scale * this.translate.x, this.scale * this.translate.y,
    +			fmt.width * ps, fmt.height * ps);
    +	
    +	return bounds;
    +};
    +
    +/**
    + * Function: redrawBackgroundImage
    + *
    + * Updates the bounds and redraws the background image.
    + * 
    + * Example:
    + * 
    + * If the background image should not be scaled, this can be replaced with
    + * the following.
    + * 
    + * (code)
    + * mxGraphView.prototype.redrawBackground = function(backgroundImage, bg)
    + * {
    + *   backgroundImage.bounds.x = this.translate.x;
    + *   backgroundImage.bounds.y = this.translate.y;
    + *   backgroundImage.bounds.width = bg.width;
    + *   backgroundImage.bounds.height = bg.height;
    + *
    + *   backgroundImage.redraw();
    + * };
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * backgroundImage - <mxImageShape> that represents the background image.
    + * bg - <mxImage> that specifies the image and its dimensions.
    + */
    +mxGraphView.prototype.redrawBackgroundImage = function(backgroundImage, bg)
    +{
    +	backgroundImage.scale = this.scale;
    +	backgroundImage.bounds.x = this.scale * this.translate.x;
    +	backgroundImage.bounds.y = this.scale * this.translate.y;
    +	backgroundImage.bounds.width = this.scale * bg.width;
    +	backgroundImage.bounds.height = this.scale * bg.height;
    +
    +	backgroundImage.redraw();
    +};
    +
    +/**
    + * Function: validateBounds
    + *
    + * Validates the bounds of the given parent's child using the given parent
    + * state as the origin for the child. The validation is carried out
    + * recursively for all non-collapsed descendants.
    + * 
    + * Parameters:
    + * 
    + * parentState - <mxCellState> for the given parent.
    + * cell - <mxCell> for which the bounds in the state should be updated.
    + */
    +mxGraphView.prototype.validateBounds = function(parentState, cell)
    +{
    +	var model = this.graph.getModel();
    +	var state = this.getState(cell, true);
    +
    +	if (state != null && state.invalid)
    +	{
    +		if (!this.graph.isCellVisible(cell))
    +		{
    +			this.removeState(cell);
    +		}
    +		
    +		// Updates the cell state's origin
    +		else if (cell != this.currentRoot && parentState != null)
    +		{
    +			state.absoluteOffset.x = 0;
    +			state.absoluteOffset.y = 0;
    +			state.origin.x = parentState.origin.x;
    +			state.origin.y = parentState.origin.y;
    +			var geo = this.graph.getCellGeometry(cell);				
    +
    +			if (geo != null)
    +			{
    +				if (!model.isEdge(cell))
    +				{
    +					var offset = geo.offset || this.EMPTY_POINT;
    +
    +					if (geo.relative)
    +					{
    +						state.origin.x += geo.x * parentState.width / 
    +							this.scale + offset.x;
    +						state.origin.y += geo.y * parentState.height /
    +							this.scale + offset.y;
    +					}
    +					else
    +					{
    +						state.absoluteOffset.x = this.scale * offset.x;
    +						state.absoluteOffset.y = this.scale * offset.y;
    +						state.origin.x += geo.x;
    +						state.origin.y += geo.y;
    +					}
    +				}
    +
    +				// Updates cell state's bounds
    +				state.x = this.scale * (this.translate.x + state.origin.x);
    +				state.y = this.scale * (this.translate.y + state.origin.y);
    +				state.width = this.scale * geo.width;
    +				state.height = this.scale * geo.height;
    +
    +				if (model.isVertex(cell))
    +				{
    +					this.updateVertexLabelOffset(state);
    +				}
    +			}
    +		}
    +						
    +		// Applies child offset to origin
    +		var offset = this.graph.getChildOffsetForCell(cell);
    +		
    +		if (offset != null)
    +		{
    +			state.origin.x += offset.x;
    +			state.origin.y += offset.y;
    +		}
    +	}
    +
    +	// Recursively validates the child bounds
    +	if (state != null && (!this.graph.isCellCollapsed(cell) ||
    +		cell == this.currentRoot))
    +	{
    +		var childCount = model.getChildCount(cell);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var child = model.getChildAt(cell, i);
    +			this.validateBounds(state, child);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: updateVertexLabelOffset
    + * 
    + * Updates the absoluteOffset of the given vertex cell state. This takes
    + * into account the label position styles.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose absolute offset should be updated.
    + */
    +mxGraphView.prototype.updateVertexLabelOffset = function(state)
    +{
    +	var horizontal = mxUtils.getValue(state.style,
    +			mxConstants.STYLE_LABEL_POSITION,
    +			mxConstants.ALIGN_CENTER);
    +	
    +	if (horizontal == mxConstants.ALIGN_LEFT)
    +	{
    +		state.absoluteOffset.x -= state.width;
    +	}
    +	else if (horizontal == mxConstants.ALIGN_RIGHT)
    +	{
    +		state.absoluteOffset.x += state.width;
    +	}
    +	
    +	var vertical = mxUtils.getValue(state.style,
    +			mxConstants.STYLE_VERTICAL_LABEL_POSITION,
    +			mxConstants.ALIGN_MIDDLE);
    +	
    +	if (vertical == mxConstants.ALIGN_TOP)
    +	{
    +		state.absoluteOffset.y -= state.height;
    +	}
    +	else if (vertical == mxConstants.ALIGN_BOTTOM)
    +	{
    +		state.absoluteOffset.y += state.height;
    +	}
    +};
    +
    +/**
    + * Function: validatePoints
    + * 
    + * Validates the points for the state of the given cell recursively if the
    + * cell is not collapsed and returns the bounding box of all visited states
    + * as an <mxRectangle>.
    + * 
    + * Parameters:
    + * 
    + * parentState - <mxCellState> for the parent cell.
    + * cell - <mxCell> whose points in the state should be updated.
    + */
    +mxGraphView.prototype.validatePoints = function(parentState, cell)
    +{
    +	var model = this.graph.getModel();
    +	var state = this.getState(cell);
    +	var bbox = null;
    +	
    +	if (state != null)
    +	{
    +		if (state.invalid)
    +		{
    +			var geo = this.graph.getCellGeometry(cell);
    +
    +			if (geo != null && model.isEdge(cell))
    +			{
    +				// Updates the points on the source terminal if its an edge
    +				var source = this.getState(this.getVisibleTerminal(cell, true));
    +				state.setVisibleTerminalState(source, true);
    +				
    +				if (source != null && model.isEdge(source.cell) &&
    +					!model.isAncestor(source.cell, cell))
    +				{
    +					var tmp = this.getState(model.getParent(source.cell));
    +					this.validatePoints(tmp, source.cell);
    +				}
    +				
    +				// Updates the points on the target terminal if its an edge
    +				var target = this.getState(this.getVisibleTerminal(cell, false));
    +				state.setVisibleTerminalState(target, false);
    +				
    +				if (target != null && model.isEdge(target.cell) &&
    +					!model.isAncestor(target.cell, cell))
    +				{
    +					var tmp = this.getState(model.getParent(target.cell));
    +					this.validatePoints(tmp, target.cell);
    +				}
    +
    +				this.updateFixedTerminalPoints(state, source, target);
    +				this.updatePoints(state, geo.points, source, target);
    +				this.updateFloatingTerminalPoints(state, source, target);
    +				this.updateEdgeBounds(state);
    +				this.updateEdgeLabelOffset(state);
    +			}
    +			else if (geo != null && geo.relative && parentState != null &&
    +				model.isEdge(parentState.cell))
    +			{
    +				var origin = this.getPoint(parentState, geo);
    +				
    +				if (origin != null)
    +				{
    +					state.x = origin.x;
    +					state.y = origin.y;
    +					
    +					origin.x = (origin.x / this.scale) - this.translate.x;
    +					origin.y = (origin.y / this.scale) - this.translate.y;
    +					state.origin = origin;
    +					
    +					this.childMoved(parentState, state);
    +				}
    +			}
    +			
    +			state.invalid = false;
    +			
    +			if (this.isRendering() && cell != this.currentRoot)
    +			{
    +				this.graph.cellRenderer.redraw(state);
    +			}
    +		}
    +		
    +		if (model.isEdge(cell) || model.isVertex(cell))
    +		{
    +			bbox = new mxRectangle(state.x, state.y, state.width, state.height);
    +			
    +			// Adds shadow
    +			if (mxUtils.getValue(state.style, mxConstants.STYLE_SHADOW, 0) == 1)
    +			{
    +				bbox.width += Math.ceil(mxConstants.SHADOW_OFFSET_X * this.scale);
    +				bbox.height += Math.ceil(mxConstants.SHADOW_OFFSET_Y * this.scale);
    +			}
    +			
    +			// Adds strokeWidth
    +			var sw = Math.ceil(mxUtils.getNumber(state.style, mxConstants.STYLE_STROKEWIDTH, 1) * this.scale);
    +			bbox.grow(Math.floor(sw / 2));
    +
    +			var box = (state.text != null && !this.graph.isLabelClipped(state.cell)) ? state.text.boundingBox : null;
    +
    +			// Adds label bounding box to graph bounds
    +			if (box != null)
    +			{
    +				bbox.add(box);
    +			}
    +		}
    +	}
    +	
    +	if (state != null && (!this.graph.isCellCollapsed(cell) ||
    +		cell == this.currentRoot))
    +	{
    +		var childCount = model.getChildCount(cell);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var child = model.getChildAt(cell, i);
    +			var bounds = this.validatePoints(state, child);
    +			
    +			if (bounds != null)
    +			{
    +				if (bbox == null)
    +				{
    +					bbox = bounds;
    +				}
    +				else
    +				{
    +					bbox.add(bounds);
    +				}
    +			}
    +		}
    +	}
    +	
    +	return bbox;
    +};
    +
    +/**
    + * Function: childMoved
    + *
    + * Invoked when a child state was moved as a result of late evaluation
    + * of its position. This is invoked for relative edge children whose
    + * position can only be determined after the points of the parent edge
    + * are updated in validatePoints, and validates the bounds of all
    + * descendants of the child using validateBounds.
    + * 
    + * Parameters:
    + * 
    + * parent - <mxCellState> that represents the parent state.
    + * child - <mxCellState> that represents the child state.
    + */
    +mxGraphView.prototype.childMoved = function(parent, child)
    +{
    +	var cell = child.cell;
    +	
    +	// Children of relative edge children need to validate
    +	// their bounds after their parent state was updated
    +	if (!this.graph.isCellCollapsed(cell) || cell == this.currentRoot)
    +	{
    +		var model = this.graph.getModel();
    +		var childCount = model.getChildCount(cell);
    +
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			this.validateBounds(child, model.getChildAt(cell, i));
    +		}
    +	}
    +};
    +
    +/**
    + * Function: updateFixedTerminalPoints
    + *
    + * Sets the initial absolute terminal points in the given state before the edge
    + * style is computed.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCellState> whose initial terminal points should be updated.
    + * source - <mxCellState> which represents the source terminal.
    + * target - <mxCellState> which represents the target terminal.
    + */
    +mxGraphView.prototype.updateFixedTerminalPoints = function(edge, source, target)
    +{
    +	this.updateFixedTerminalPoint(edge, source, true,
    +		this.graph.getConnectionConstraint(edge, source, true));
    +	this.updateFixedTerminalPoint(edge, target, false,
    +		this.graph.getConnectionConstraint(edge, target, false));
    +};
    +
    +/**
    + * Function: updateFixedTerminalPoint
    + *
    + * Sets the fixed source or target terminal point on the given edge.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCellState> whose terminal point should be updated.
    + * terminal - <mxCellState> which represents the actual terminal.
    + * source - Boolean that specifies if the terminal is the source.
    + * constraint - <mxConnectionConstraint> that specifies the connection.
    + */
    +mxGraphView.prototype.updateFixedTerminalPoint = function(edge, terminal, source, constraint)
    +{
    +	var pt = null;
    +	
    +	if (constraint != null)
    +	{
    +		pt = this.graph.getConnectionPoint(terminal, constraint);
    +	}
    +	
    +	if (pt == null && terminal == null)
    +	{
    +		var s = this.scale;
    +		var tr = this.translate;
    +		var orig = edge.origin;
    +		var geo = this.graph.getCellGeometry(edge.cell);
    +		pt = geo.getTerminalPoint(source);
    +		
    +		if (pt != null)
    +		{
    +			pt = new mxPoint(s * (tr.x + pt.x + orig.x),
    +							 s * (tr.y + pt.y + orig.y));
    +		}
    +	}
    +
    +	edge.setAbsoluteTerminalPoint(pt, source);
    +};
    +
    +/**
    + * Function: updatePoints
    + *
    + * Updates the absolute points in the given state using the specified array
    + * of <mxPoints> as the relative points.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCellState> whose absolute points should be updated.
    + * points - Array of <mxPoints> that constitute the relative points.
    + * source - <mxCellState> that represents the source terminal.
    + * target - <mxCellState> that represents the target terminal.
    + */
    +mxGraphView.prototype.updatePoints = function(edge, points, source, target)
    +{
    +	if (edge != null)
    +	{
    +		var pts = [];
    +		pts.push(edge.absolutePoints[0]);
    +		var edgeStyle = this.getEdgeStyle(edge, points, source, target);
    +		
    +		if (edgeStyle != null)
    +		{
    +			var src = this.getTerminalPort(edge, source, true);
    +			var trg = this.getTerminalPort(edge, target, false);
    +			
    +			edgeStyle(edge, src, trg, points, pts);
    +		}
    +		else if (points != null)
    +		{
    +			for (var i = 0; i < points.length; i++)
    +			{
    +				if (points[i] != null)
    +				{
    +					var pt = mxUtils.clone(points[i]);
    +					pts.push(this.transformControlPoint(edge, pt));
    +				}
    +			}
    +		}
    +		
    +		var tmp = edge.absolutePoints;
    +		pts.push(tmp[tmp.length-1]);
    +
    +		edge.absolutePoints = pts;
    +	}
    +};
    +
    +/**
    + * Function: transformControlPoint
    + *
    + * Transforms the given control point to an absolute point.
    + */
    +mxGraphView.prototype.transformControlPoint = function(state, pt)
    +{
    +	var orig = state.origin;
    +	
    +    return new mxPoint(this.scale * (pt.x + this.translate.x + orig.x),
    +    	this.scale * (pt.y + this.translate.y + orig.y));
    +};
    +
    +/**
    + * Function: getEdgeStyle
    + * 
    + * Returns the edge style function to be used to render the given edge
    + * state.
    + */
    +mxGraphView.prototype.getEdgeStyle = function(edge, points, source, target)
    +{
    +	var edgeStyle = (source != null && source == target) ?
    +			mxUtils.getValue(edge.style, mxConstants.STYLE_LOOP,
    +					this.graph.defaultLoopStyle) :
    +						(!mxUtils.getValue(edge.style,
    +								mxConstants.STYLE_NOEDGESTYLE, false) ?
    +										edge.style[mxConstants.STYLE_EDGE] :
    +											null);
    +
    +	// Converts string values to objects
    +	if (typeof(edgeStyle) == "string")
    +	{
    +		var tmp = mxStyleRegistry.getValue(edgeStyle);
    +		
    +		if (tmp == null && this.isAllowEval())
    +		{
    + 			tmp = mxUtils.eval(edgeStyle);
    +		}
    +		
    +		edgeStyle = tmp;
    +	}
    +	
    +	if (typeof(edgeStyle) == "function")
    +	{
    +		return edgeStyle;
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: updateFloatingTerminalPoints
    + *
    + * Updates the terminal points in the given state after the edge style was
    + * computed for the edge.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose terminal points should be updated.
    + * source - <mxCellState> that represents the source terminal.
    + * target - <mxCellState> that represents the target terminal.
    + */
    +mxGraphView.prototype.updateFloatingTerminalPoints = function(state, source, target)
    +{
    +	var pts = state.absolutePoints;
    +	var p0 = pts[0];
    +	var pe = pts[pts.length - 1];
    +
    +	if (pe == null && target != null)
    +	{
    +		this.updateFloatingTerminalPoint(state, target, source, false);
    +	}
    +	
    +	if (p0 == null && source != null)
    +	{
    +		this.updateFloatingTerminalPoint(state, source, target, true);
    +	}
    +};
    +
    +/**
    + * Function: updateFloatingTerminalPoint
    + *
    + * Updates the absolute terminal point in the given state for the given
    + * start and end state, where start is the source if source is true.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCellState> whose terminal point should be updated.
    + * start - <mxCellState> for the terminal on "this" side of the edge.
    + * end - <mxCellState> for the terminal on the other side of the edge.
    + * source - Boolean indicating if start is the source terminal state.
    + */
    +mxGraphView.prototype.updateFloatingTerminalPoint = function(edge, start, end, source)
    +{
    +	start = this.getTerminalPort(edge, start, source);
    +	var next = this.getNextPoint(edge, end, source);
    +	var border = parseFloat(edge.style[mxConstants.STYLE_PERIMETER_SPACING] || 0);
    +	border += parseFloat(edge.style[(source) ?
    +		mxConstants.STYLE_SOURCE_PERIMETER_SPACING :
    +		mxConstants.STYLE_TARGET_PERIMETER_SPACING] || 0);
    +	var pt = this.getPerimeterPoint(start, next, this.graph.isOrthogonal(edge), border);
    +	edge.setAbsoluteTerminalPoint(pt, source);
    +};
    +
    +/**
    + * Function: getTerminalPort
    + * 
    + * Returns an <mxCellState> that represents the source or target terminal or
    + * port for the given edge.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> that represents the state of the edge.
    + * terminal - <mxCellState> that represents the terminal.
    + * source - Boolean indicating if the given terminal is the source terminal.
    + */
    +mxGraphView.prototype.getTerminalPort = function(state, terminal, source)
    +{
    +	var key = (source) ? mxConstants.STYLE_SOURCE_PORT :
    +		mxConstants.STYLE_TARGET_PORT;
    +	var id = mxUtils.getValue(state.style, key);
    +	
    +	if (id != null)
    +	{
    +		var tmp = this.getState(this.graph.getModel().getCell(id));
    +		
    +		// Only uses ports where a cell state exists
    +		if (tmp != null)
    +		{
    +			terminal = tmp;
    +		}
    +	}
    +	
    +	return terminal;
    +};
    +
    +/**
    + * Function: getPerimeterPoint
    + *
    + * Returns an <mxPoint> that defines the location of the intersection point between
    + * the perimeter and the line between the center of the shape and the given point.
    + * 
    + * Parameters:
    + * 
    + * terminal - <mxCellState> for the source or target terminal.
    + * next - <mxPoint> that lies outside of the given terminal.
    + * orthogonal - Boolean that specifies if the orthogonal projection onto
    + * the perimeter should be returned. If this is false then the intersection
    + * of the perimeter and the line between the next and the center point is
    + * returned.
    + * border - Optional border between the perimeter and the shape.
    + */
    +mxGraphView.prototype.getPerimeterPoint = function(terminal, next, orthogonal, border)
    +{
    +	var point = null;
    +	
    +	if (terminal != null)
    +	{
    +		var perimeter = this.getPerimeterFunction(terminal);
    +		
    +		if (perimeter != null && next != null)
    +		{
    +			var bounds = this.getPerimeterBounds(terminal, border);
    +			
    +			if (bounds.width > 0 || bounds.height > 0)
    +			{
    +				point = perimeter(bounds, terminal, next, orthogonal);
    +			}
    +		}
    +		
    +		if (point == null)
    +		{
    +			point = this.getPoint(terminal);
    +		}
    +	}
    +	
    +	return point;
    +};
    +
    +/**
    + * Function: getRoutingCenterX
    + * 
    + * Returns the x-coordinate of the center point for automatic routing.
    + */
    +mxGraphView.prototype.getRoutingCenterX = function (state)
    +{
    +	var f = (state.style != null) ? parseFloat(state.style
    +		[mxConstants.STYLE_ROUTING_CENTER_X]) || 0 : 0;
    +
    +	return state.getCenterX() + f * state.width;
    +};
    +
    +/**
    + * Function: getRoutingCenterY
    + * 
    + * Returns the y-coordinate of the center point for automatic routing.
    + */
    +mxGraphView.prototype.getRoutingCenterY = function (state)
    +{
    +	var f = (state.style != null) ? parseFloat(state.style
    +		[mxConstants.STYLE_ROUTING_CENTER_Y]) || 0 : 0;
    +
    +	return state.getCenterY() + f * state.height;
    +};
    +
    +/**
    + * Function: getPerimeterBounds
    + *
    + * Returns the perimeter bounds for the given terminal, edge pair as an
    + * <mxRectangle>.
    + * 
    + * If you have a model where each terminal has a relative child that should
    + * act as the graphical endpoint for a connection from/to the terminal, then
    + * this method can be replaced as follows:
    + * 
    + * (code)
    + * var oldGetPerimeterBounds = mxGraphView.prototype.getPerimeterBounds;
    + * mxGraphView.prototype.getPerimeterBounds = function(terminal, edge, isSource)
    + * {
    + *   var model = this.graph.getModel();
    + *   var childCount = model.getChildCount(terminal.cell);
    + * 
    + *   if (childCount > 0)
    + *   {
    + *     var child = model.getChildAt(terminal.cell, 0);
    + *     var geo = model.getGeometry(child);
    + *
    + *     if (geo != null &&
    + *         geo.relative)
    + *     {
    + *       var state = this.getState(child);
    + *       
    + *       if (state != null)
    + *       {
    + *         terminal = state;
    + *       }
    + *     }
    + *   }
    + *   
    + *   return oldGetPerimeterBounds.apply(this, arguments);
    + * };
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * terminal - <mxCellState> that represents the terminal.
    + * border - Number that adds a border between the shape and the perimeter.
    + */
    +mxGraphView.prototype.getPerimeterBounds = function(terminal, border)
    +{
    +	border = (border != null) ? border : 0;
    +
    +	if (terminal != null)
    +	{
    +		border += parseFloat(terminal.style[mxConstants.STYLE_PERIMETER_SPACING] || 0);
    +	}
    +
    +	return terminal.getPerimeterBounds(border * this.scale);
    +};
    +
    +/**
    + * Function: getPerimeterFunction
    + *
    + * Returns the perimeter function for the given state.
    + */
    +mxGraphView.prototype.getPerimeterFunction = function(state)
    +{
    +	var perimeter = state.style[mxConstants.STYLE_PERIMETER];
    +
    +	// Converts string values to objects
    +	if (typeof(perimeter) == "string")
    +	{
    +		var tmp = mxStyleRegistry.getValue(perimeter);
    +		
    +		if (tmp == null && this.isAllowEval())
    +		{
    + 			tmp = mxUtils.eval(perimeter);
    +		}
    +
    +		perimeter = tmp;
    +	}
    +	
    +	if (typeof(perimeter) == "function")
    +	{
    +		return perimeter;
    +	}
    +	
    +	return null;
    +};
    +
    +/**
    + * Function: getNextPoint
    + *
    + * Returns the nearest point in the list of absolute points or the center
    + * of the opposite terminal.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCellState> that represents the edge.
    + * opposite - <mxCellState> that represents the opposite terminal.
    + * source - Boolean indicating if the next point for the source or target
    + * should be returned.
    + */
    +mxGraphView.prototype.getNextPoint = function(edge, opposite, source)
    +{
    +	var pts = edge.absolutePoints;
    +	var point = null;
    +	
    +	if (pts != null && (source || pts.length > 2 || opposite == null))
    +	{
    +		var count = pts.length;
    +		point = pts[(source) ? Math.min(1, count - 1) : Math.max(0, count - 2)];
    +	}
    +	
    +	if (point == null && opposite != null)
    +	{
    +		point = new mxPoint(opposite.getCenterX(), opposite.getCenterY());
    +	}
    +	
    +	return point;
    +};
    +
    +/**
    + * Function: getVisibleTerminal
    + *
    + * Returns the nearest ancestor terminal that is visible. The edge appears
    + * to be connected to this terminal on the display. The result of this method
    + * is cached in <mxCellState.getVisibleTerminalState>.
    + * 
    + * Parameters:
    + * 
    + * edge - <mxCell> whose visible terminal should be returned.
    + * source - Boolean that specifies if the source or target terminal
    + * should be returned.
    + */
    +mxGraphView.prototype.getVisibleTerminal = function(edge, source)
    +{
    +	var model = this.graph.getModel();
    +	var result = model.getTerminal(edge, source);
    +	var best = result;
    +	
    +	while (result != null && result != this.currentRoot)
    +	{
    +		if (!this.graph.isCellVisible(best) || this.graph.isCellCollapsed(result))
    +		{
    +			best = result;
    +		}
    +		
    +		result = model.getParent(result);
    +	}
    +
    +	// Checks if the result is not a layer
    +	if (model.getParent(best) == model.getRoot())
    +	{
    +		best = null;
    +	}
    +	
    +	return best;
    +};
    +
    +/**
    + * Function: updateEdgeBounds
    + *
    + * Updates the given state using the bounding box of the absolute points.
    + * Also updates <mxCellState.terminalDistance>, <mxCellState.length> and
    + * <mxCellState.segments>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose bounds should be updated.
    + */
    +mxGraphView.prototype.updateEdgeBounds = function(state)
    +{
    +	var points = state.absolutePoints;
    +	state.length = 0;
    +	
    +	if (points != null && points.length > 0)
    +	{
    +		var p0 = points[0];
    +		var pe = points[points.length - 1];
    +		
    +		if (p0 == null || pe == null)
    +		{
    +			// Drops the edge state
    +
    +			// Note: This condition normally occurs if a connected edge has a
    +			// null-terminal, ie. edge.source == null or edge.target == null,
    +			// and no corresponding terminal point defined, which happens for
    +			// example if the terminal-id was not resolved at cell decoding time.
    +			this.clear(state.cell, true);
    +		}
    +		else
    +		{
    +			if (p0.x != pe.x ||
    +				p0.y != pe.y)
    +			{
    +				var dx = pe.x - p0.x;
    +				var dy = pe.y - p0.y;
    +				state.terminalDistance = Math.sqrt(dx * dx + dy * dy);
    +			}
    +			else
    +			{
    +				state.terminalDistance = 0;
    +			}
    +			
    +			var length = 0;
    +			var segments = [];
    +			var pt = p0;
    +			
    +			if (pt != null)
    +			{
    +				var minX = pt.x;
    +				var minY = pt.y;
    +				var maxX = minX;
    +				var maxY = minY;
    +				
    +				for (var i = 1; i < points.length; i++)
    +				{
    +					var tmp = points[i];
    +					
    +					if (tmp != null)
    +					{
    +						var dx = pt.x - tmp.x;
    +						var dy = pt.y - tmp.y;
    +						
    +						var segment = Math.sqrt(dx * dx + dy * dy);
    +						segments.push(segment);
    +						length += segment;
    +						
    +						pt = tmp;
    +						
    +						minX = Math.min(pt.x, minX);
    +						minY = Math.min(pt.y, minY);
    +						maxX = Math.max(pt.x, maxX);
    +						maxY = Math.max(pt.y, maxY);
    +					}
    +				}
    +				
    +				state.length = length;
    +				state.segments = segments;
    +				
    +				var markerSize = 1; // TODO: include marker size
    +				
    +				state.x = minX;
    +				state.y = minY;
    +				state.width = Math.max(markerSize, maxX - minX);
    +				state.height = Math.max(markerSize, maxY - minY);
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getPoint
    + *
    + * Returns the absolute point on the edge for the given relative
    + * <mxGeometry> as an <mxPoint>. The edge is represented by the given
    + * <mxCellState>.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> that represents the state of the parent edge.
    + * geometry - <mxGeometry> that represents the relative location.
    + */
    +mxGraphView.prototype.getPoint = function(state, geometry)
    +{
    +	var x = state.getCenterX();
    +	var y = state.getCenterY();
    +	
    +	if (state.segments != null && (geometry == null || geometry.relative))
    +	{
    +		var gx = (geometry != null) ? geometry.x / 2 : 0;
    +		var pointCount = state.absolutePoints.length;
    +		var dist = (gx + 0.5) * state.length;
    +		var segment = state.segments[0];
    +		var length = 0;				
    +		var index = 1;
    +
    +		while (dist > length + segment && index < pointCount-1)
    +		{
    +			length += segment;
    +			segment = state.segments[index++];
    +		}
    +
    +		var factor = (segment == 0) ? 0 : (dist - length) / segment;
    +		var p0 = state.absolutePoints[index-1];
    +		var pe = state.absolutePoints[index];
    +
    +		if (p0 != null && pe != null)
    +		{
    +			var gy = 0;
    +			var offsetX = 0;
    +			var offsetY = 0;
    +
    +			if (geometry != null)
    +			{
    +				gy = geometry.y;
    +				var offset = geometry.offset;
    +				
    +				if (offset != null)
    +				{
    +					offsetX = offset.x;
    +					offsetY = offset.y;
    +				}
    +			}
    +
    +			var dx = pe.x - p0.x;
    +			var dy = pe.y - p0.y;
    +			var nx = (segment == 0) ? 0 : dy / segment;
    +			var ny = (segment == 0) ? 0 : dx / segment;
    +			
    +			x = p0.x + dx * factor + (nx * gy + offsetX) * this.scale;
    +			y = p0.y + dy * factor - (ny * gy - offsetY) * this.scale;
    +		}
    +	}
    +	else if (geometry != null)
    +	{
    +		var offset = geometry.offset;
    +		
    +		if (offset != null)
    +		{
    +			x += offset.x;
    +			y += offset.y;
    +		}
    +	}
    +	
    +	return new mxPoint(x, y);		
    +};
    +
    +/**
    + * Function: getRelativePoint
    + *
    + * Gets the relative point that describes the given, absolute label
    + * position for the given edge state.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> that represents the state of the parent edge.
    + * x - Specifies the x-coordinate of the absolute label location.
    + * y - Specifies the y-coordinate of the absolute label location.
    + */
    +mxGraphView.prototype.getRelativePoint = function(edgeState, x, y)
    +{
    +	var model = this.graph.getModel();
    +	var geometry = model.getGeometry(edgeState.cell);
    +	
    +	if (geometry != null)
    +	{
    +		var pointCount = edgeState.absolutePoints.length;
    +		
    +		if (geometry.relative && pointCount > 1)
    +		{
    +			var totalLength = edgeState.length;
    +			var segments = edgeState.segments;
    +
    +			// Works which line segment the point of the label is closest to
    +			var p0 = edgeState.absolutePoints[0];
    +			var pe = edgeState.absolutePoints[1];
    +			var minDist = mxUtils.ptSegDistSq(p0.x, p0.y, pe.x, pe.y, x, y);
    +
    +			var index = 0;
    +			var tmp = 0;
    +			var length = 0;
    +			
    +			for (var i = 2; i < pointCount; i++)
    +			{
    +				tmp += segments[i - 2];
    +				pe = edgeState.absolutePoints[i];
    +				var dist = mxUtils.ptSegDistSq(p0.x, p0.y, pe.x, pe.y, x, y);
    +
    +				if (dist <= minDist)
    +				{
    +					minDist = dist;
    +					index = i - 1;
    +					length = tmp;
    +				}
    +				
    +				p0 = pe;
    +			}
    +			
    +			var seg = segments[index];
    +			p0 = edgeState.absolutePoints[index];
    +			pe = edgeState.absolutePoints[index + 1];
    +			
    +			var x2 = p0.x;
    +			var y2 = p0.y;
    +			
    +			var x1 = pe.x;
    +			var y1 = pe.y;
    +			
    +			var px = x;
    +			var py = y;
    +			
    +			var xSegment = x2 - x1;
    +			var ySegment = y2 - y1;
    +			
    +			px -= x1;
    +			py -= y1;
    +			var projlenSq = 0;
    +			
    +			px = xSegment - px;
    +			py = ySegment - py;
    +			var dotprod = px * xSegment + py * ySegment;
    +
    +			if (dotprod <= 0.0)
    +			{
    +				projlenSq = 0;
    +			}
    +			else
    +			{
    +				projlenSq = dotprod * dotprod
    +						/ (xSegment * xSegment + ySegment * ySegment);
    +			}
    +
    +			var projlen = Math.sqrt(projlenSq);
    +
    +			if (projlen > seg)
    +			{
    +				projlen = seg;
    +			}
    +
    +			var yDistance = Math.sqrt(mxUtils.ptSegDistSq(p0.x, p0.y, pe
    +					.x, pe.y, x, y));
    +			var direction = mxUtils.relativeCcw(p0.x, p0.y, pe.x, pe.y, x, y);
    +
    +			if (direction == -1)
    +			{
    +				yDistance = -yDistance;
    +			}
    +
    +			// Constructs the relative point for the label
    +			return new mxPoint(((totalLength / 2 - length - projlen) / totalLength) * -2,
    +						yDistance / this.scale);
    +		}
    +	}
    +	
    +	return new mxPoint();
    +};
    +
    +/**
    + * Function: updateEdgeLabelOffset
    + *
    + * Updates <mxCellState.absoluteOffset> for the given state. The absolute
    + * offset is normally used for the position of the edge label. Is is
    + * calculated from the geometry as an absolute offset from the center
    + * between the two endpoints if the geometry is absolute, or as the
    + * relative distance between the center along the line and the absolute
    + * orthogonal distance if the geometry is relative.
    + * 
    + * Parameters:
    + * 
    + * state - <mxCellState> whose absolute offset should be updated.
    + */
    +mxGraphView.prototype.updateEdgeLabelOffset = function(state)
    +{
    +	var points = state.absolutePoints;
    +	
    +	state.absoluteOffset.x = state.getCenterX();
    +	state.absoluteOffset.y = state.getCenterY();
    +
    +	if (points != null && points.length > 0 && state.segments != null)
    +	{
    +		var geometry = this.graph.getCellGeometry(state.cell);
    +		
    +		if (geometry.relative)
    +		{
    +			var offset = this.getPoint(state, geometry);
    +			
    +			if (offset != null)
    +			{
    +				state.absoluteOffset = offset;
    +			}
    +		}
    +		else
    +		{
    +			var p0 = points[0];
    +			var pe = points[points.length - 1];
    +			
    +			if (p0 != null && pe != null)
    +			{
    +				var dx = pe.x - p0.x;
    +				var dy = pe.y - p0.y;
    +				var x0 = 0;
    +				var y0 = 0;
    +
    +				var off = geometry.offset;
    +				
    +				if (off != null)
    +				{
    +					x0 = off.x;
    +					y0 = off.y;
    +				}
    +				
    +				var x = p0.x + dx / 2 + x0 * this.scale;
    +				var y = p0.y + dy / 2 + y0 * this.scale;
    +				
    +				state.absoluteOffset.x = x;
    +				state.absoluteOffset.y = y;
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getState
    + *
    + * Returns the <mxCellState> for the given cell. If create is true, then
    + * the state is created if it does not yet exist.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the <mxCellState> should be returned.
    + * create - Optional boolean indicating if a new state should be created
    + * if it does not yet exist. Default is false.
    + */
    +mxGraphView.prototype.getState = function(cell, create)
    +{
    +	create = create || false;
    +	var state = null;
    +	
    +	if (cell != null)
    +	{
    +		state = this.states.get(cell);
    +		
    +		if (this.graph.isCellVisible(cell))
    +		{
    +			if (state == null && create && this.graph.isCellVisible(cell))
    +			{
    +				state = this.createState(cell);
    +				this.states.put(cell, state);
    +			}
    +			else if (create && state != null && this.updateStyle)
    +			{
    +				state.style = this.graph.getCellStyle(cell);
    +			}
    +		}
    +	}
    +
    +	return state;
    +};
    +
    +/**
    + * Function: isRendering
    + *
    + * Returns <rendering>.
    + */
    +mxGraphView.prototype.isRendering = function()
    +{
    +	return this.rendering;
    +};
    +
    +/**
    + * Function: setRendering
    + *
    + * Sets <rendering>.
    + */
    +mxGraphView.prototype.setRendering = function(value)
    +{
    +	this.rendering = value;
    +};
    +
    +/**
    + * Function: isAllowEval
    + *
    + * Returns <allowEval>.
    + */
    +mxGraphView.prototype.isAllowEval = function()
    +{
    +	return this.allowEval;
    +};
    +
    +/**
    + * Function: setAllowEval
    + *
    + * Sets <allowEval>.
    + */
    +mxGraphView.prototype.setAllowEval = function(value)
    +{
    +	this.allowEval = value;
    +};
    +
    +/**
    + * Function: getStates
    + *
    + * Returns <states>.
    + */
    +mxGraphView.prototype.getStates = function()
    +{
    +	return this.states;
    +};
    +
    +/**
    + * Function: setStates
    + *
    + * Sets <states>.
    + */
    +mxGraphView.prototype.setStates = function(value)
    +{
    +	this.states = value;
    +};
    +
    +/**
    + * Function: getCellStates
    + *
    + * Returns the <mxCellStates> for the given array of <mxCells>. The array
    + * contains all states that are not null, that is, the returned array may
    + * have less elements than the given array. If no argument is given, then
    + * this returns <states>.
    + */
    +mxGraphView.prototype.getCellStates = function(cells)
    +{
    +	if (cells == null)
    +	{
    +		return this.states;
    +	}
    +	else
    +	{
    +		var result = [];
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			var state = this.getState(cells[i]);
    +			
    +			if (state != null)
    +			{
    +				result.push(state);
    +			}
    +		}
    +		
    +		return result;
    +	}
    +};
    +
    +/**
    + * Function: removeState
    + *
    + * Removes and returns the <mxCellState> for the given cell.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which the <mxCellState> should be removed.
    + */
    +mxGraphView.prototype.removeState = function(cell)
    +{
    +	var state = null;
    +	
    +	if (cell != null)
    +	{
    +		state = this.states.remove(cell);
    +		
    +		if (state != null)
    +		{
    +			this.graph.cellRenderer.destroy(state);
    +			state.destroy();
    +		}
    +	}
    +	
    +	return state;
    +};
    +
    +/**
    + * Function: createState
    + *
    + * Creates and returns an <mxCellState> for the given cell and initializes
    + * it using <mxCellRenderer.initialize>.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> for which a new <mxCellState> should be created.
    + */
    +mxGraphView.prototype.createState = function(cell)
    +{
    +	var style = this.graph.getCellStyle(cell);
    +	var state = new mxCellState(this, cell, style);
    +	
    +	if (this.isRendering())
    +	{
    +		this.graph.cellRenderer.initialize(state);
    +	}
    +
    +	return state;
    +};
    +	
    +/**
    + * Function: getCanvas
    + *
    + * Returns the DOM node that contains the background-, draw- and
    + * overlaypane.
    + */
    +mxGraphView.prototype.getCanvas = function()
    +{
    +	return this.canvas;
    +};
    +
    +/**
    + * Function: getBackgroundPane
    + *
    + * Returns the DOM node that represents the background layer.
    + */
    +mxGraphView.prototype.getBackgroundPane = function()
    +{
    +	return this.backgroundPane;
    +};
    +
    +/**
    + * Function: getDrawPane
    + *
    + * Returns the DOM node that represents the main drawing layer.
    + */
    +mxGraphView.prototype.getDrawPane = function()
    +{
    +	return this.drawPane;
    +};
    +
    +/**
    + * Function: getOverlayPane
    + *
    + * Returns the DOM node that represents the topmost drawing layer.
    + */
    +mxGraphView.prototype.getOverlayPane = function()
    +{
    +	return this.overlayPane;
    +};
    +
    +/**
    + * Function: isContainerEvent
    + * 
    + * Returns true if the event origin is one of the drawing panes or
    + * containers of the view.
    + */
    +mxGraphView.prototype.isContainerEvent = function(evt)
    +{
    +	var source = mxEvent.getSource(evt);
    +
    +	return (source == this.graph.container ||
    +		source.parentNode == this.backgroundPane ||
    +		(source.parentNode != null &&
    +		source.parentNode.parentNode == this.backgroundPane) ||
    +		source == this.canvas.parentNode ||
    +		source == this.canvas ||
    +		source == this.backgroundPane ||
    +		source == this.drawPane ||
    +		source == this.overlayPane);
    +};
    +
    +/**
    + * Function: isScrollEvent
    + * 
    + * Returns true if the event origin is one of the scrollbars of the
    + * container in IE. Such events are ignored.
    + */
    + mxGraphView.prototype.isScrollEvent = function(evt)
    +{
    +	var offset = mxUtils.getOffset(this.graph.container);
    +	var pt = new mxPoint(evt.clientX - offset.x, evt.clientY - offset.y);
    +
    +	var outWidth = this.graph.container.offsetWidth;
    +	var inWidth = this.graph.container.clientWidth;
    +
    +	if (outWidth > inWidth && pt.x > inWidth + 2 && pt.x <= outWidth)
    +	{
    +		return true;
    +	}
    +
    +	var outHeight = this.graph.container.offsetHeight;
    +	var inHeight = this.graph.container.clientHeight;
    +	
    +	if (outHeight > inHeight && pt.y > inHeight + 2 && pt.y <= outHeight)
    +	{
    +		return true;
    +	}
    +	
    +	return false;
    +};
    +
    +/**
    + * Function: init
    + *
    + * Initializes the graph event dispatch loop for the specified container
    + * and invokes <create> to create the required DOM nodes for the display.
    + */
    +mxGraphView.prototype.init = function()
    +{
    +	this.installListeners();
    +	
    +	// Creates the DOM nodes for the respective display dialect
    +	var graph = this.graph;
    +	
    +	if (graph.dialect == mxConstants.DIALECT_SVG)
    +	{
    +		this.createSvg();
    +	}
    +	else if (graph.dialect == mxConstants.DIALECT_VML)
    +	{
    +		this.createVml();
    +	}
    +	else
    +	{
    +		this.createHtml();
    +	}
    +};
    +
    +/**
    + * Function: installListeners
    + *
    + * Installs the required listeners in the container.
    + */
    +mxGraphView.prototype.installListeners = function()
    +{
    +	var graph = this.graph;
    +	var container = graph.container;
    +	
    +	if (container != null)
    +	{
    +		var md = (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown';
    +		var mm = (mxClient.IS_TOUCH) ? 'touchmove' : 'mousemove';
    +		var mu = (mxClient.IS_TOUCH) ? 'touchend' : 'mouseup';
    +		
    +		// Adds basic listeners for graph event dispatching
    +		mxEvent.addListener(container, md,
    +			mxUtils.bind(this, function(evt)
    +			{
    +				// Workaround for touch-based device not transferring
    +				// the focus while editing with virtual keyboard
    +				if (mxClient.IS_TOUCH && graph.isEditing())
    +				{
    +					graph.stopEditing(!graph.isInvokesStopCellEditing());
    +				}
    +				
    +				// Condition to avoid scrollbar events starting a rubberband
    +				// selection
    +				if (this.isContainerEvent(evt) && ((!mxClient.IS_IE && 
    +					!mxClient.IS_GC && !mxClient.IS_OP && !mxClient.IS_SF) ||
    +					!this.isScrollEvent(evt)))
    +				{
    +					graph.fireMouseEvent(mxEvent.MOUSE_DOWN,
    +						new mxMouseEvent(evt));
    +				}
    +			})
    +		);
    +		mxEvent.addListener(container, mm,
    +			mxUtils.bind(this, function(evt)
    +			{
    +				if (this.isContainerEvent(evt))
    +				{
    +					graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +						new mxMouseEvent(evt));
    +				}
    +			})
    +		);
    +		mxEvent.addListener(container, mu,
    +			mxUtils.bind(this, function(evt)
    +			{
    +				if (this.isContainerEvent(evt))
    +				{
    +					graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +						new mxMouseEvent(evt));
    +				}
    +			})
    +		);
    +		
    +		// Adds listener for double click handling on background
    +		mxEvent.addListener(container, 'dblclick',
    +			mxUtils.bind(this, function(evt)
    +			{
    +				graph.dblClick(evt);
    +			})
    +		);
    +
    +		// Workaround for touch events which started on some DOM node
    +		// on top of the container, in which case the cells under the
    +		// mouse for the move and up events are not detected.
    +		var getState = function(evt)
    +		{
    +			var state = null;
    +			
    +			// Workaround for touch events which started on some DOM node
    +			// on top of the container, in which case the cells under the
    +			// mouse for the move and up events are not detected.
    +			if (mxClient.IS_TOUCH)
    +			{
    +				var x = mxEvent.getClientX(evt);
    +				var y = mxEvent.getClientY(evt);
    +				
    +				// Dispatches the drop event to the graph which
    +				// consumes and executes the source function
    +				var pt = mxUtils.convertPoint(container, x, y);
    +				state = graph.view.getState(graph.getCellAt(pt.x, pt.y));
    +			}
    +			
    +			return state;
    +		};	
    +					
    +		// Adds basic listeners for graph event dispatching outside of the
    +		// container and finishing the handling of a single gesture
    +		// Implemented via graph event dispatch loop to avoid duplicate events
    +		// in Firefox and Chrome
    +		graph.addMouseListener(
    +		{
    +			mouseDown: function(sender, me)
    +			{
    +				graph.panningHandler.hideMenu();
    +			},
    +			mouseMove: function() { },
    +			mouseUp: function() { }
    +		});
    +		mxEvent.addListener(document, mm,
    +			mxUtils.bind(this, function(evt)
    +			{
    +				// Hides the tooltip if mouse is outside container
    +				if (graph.tooltipHandler != null &&
    +					graph.tooltipHandler.isHideOnHover())
    +				{
    +					graph.tooltipHandler.hide();
    +				}
    +				
    +				if (this.captureDocumentGesture && graph.isMouseDown &&
    +					!mxEvent.isConsumed(evt))
    +				{
    +					graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
    +						new mxMouseEvent(evt, getState(evt)));
    +				}
    +			})
    +		);
    +		mxEvent.addListener(document, mu,
    +			mxUtils.bind(this, function(evt)
    +			{
    +				if (this.captureDocumentGesture)
    +				{
    +					graph.fireMouseEvent(mxEvent.MOUSE_UP,
    +						new mxMouseEvent(evt));
    +				}
    +			})
    +		);
    +	}
    +};
    +
    +/**
    + * Function: create
    + *
    + * Creates the DOM nodes for the HTML display.
    + */
    +mxGraphView.prototype.createHtml = function()
    +{
    +	var container = this.graph.container;
    +	
    +	if (container != null)
    +	{
    +		this.canvas = this.createHtmlPane();
    +	
    +		// Uses minimal size for stacked DIVs on Canvas. This is required
    +		// for correct event processing in IE. If we have an overlapping
    +		// DIV then the events on the cells are only fired when over a
    +		// text region.
    +		this.backgroundPane = this.createHtmlPane(1, 1);
    +		this.drawPane = this.createHtmlPane(1, 1);
    +		this.overlayPane = this.createHtmlPane(1, 1);
    +		
    +		this.canvas.appendChild(this.backgroundPane);
    +		this.canvas.appendChild(this.drawPane);
    +		this.canvas.appendChild(this.overlayPane);
    +
    +		container.appendChild(this.canvas);
    +	}
    +};
    +
    +/**
    + * Function: createHtmlPane
    + * 
    + * Creates and returns a drawing pane in HTML (DIV).
    + */
    +mxGraphView.prototype.createHtmlPane = function(width, height)
    +{
    +	var pane = document.createElement('DIV');
    +	
    +	if (width != null && height != null)
    +	{
    +		pane.style.position = 'absolute';
    +		pane.style.left = '0px';
    +		pane.style.top = '0px';
    +
    +		pane.style.width = width+'px';
    +		pane.style.height = height+'px';
    +	}
    +	else
    +	{
    +		pane.style.position = 'relative';
    +	}
    +	
    +	return pane;
    +};
    +
    +/**
    + * Function: create
    + *
    + * Creates the DOM nodes for the VML display.
    + */
    +mxGraphView.prototype.createVml = function()
    +{
    +	var container = this.graph.container;
    +
    +	if (container != null)
    +	{
    +		var width = container.offsetWidth;
    +		var height = container.offsetHeight;
    +		this.canvas = this.createVmlPane(width, height);
    +		
    +		this.backgroundPane = this.createVmlPane(width, height);
    +		this.drawPane = this.createVmlPane(width, height);
    +		this.overlayPane = this.createVmlPane(width, height);
    +		
    +		this.canvas.appendChild(this.backgroundPane);
    +		this.canvas.appendChild(this.drawPane);
    +		this.canvas.appendChild(this.overlayPane);
    +		
    +		container.appendChild(this.canvas);
    +	}
    +};
    +
    +/**
    + * Function: createVmlPane
    + * 
    + * Creates a drawing pane in VML (group).
    + */
    +mxGraphView.prototype.createVmlPane = function(width, height)
    +{
    +	var pane = document.createElement('v:group');
    +	
    +	// At this point the width and height are potentially
    +	// uninitialized. That's OK.
    +	pane.style.position = 'absolute';
    +	pane.style.left = '0px';
    +	pane.style.top = '0px';
    +
    +	pane.style.width = width+'px';
    +	pane.style.height = height+'px';
    +
    +	pane.setAttribute('coordsize', width+','+height);
    +	pane.setAttribute('coordorigin', '0,0');
    +	
    +	return pane;
    +};
    +
    +/**
    + * Function: create
    + *
    + * Creates and returns the DOM nodes for the SVG display.
    + */
    +mxGraphView.prototype.createSvg = function()
    +{
    +	var container = this.graph.container;
    +	this.canvas = document.createElementNS(mxConstants.NS_SVG, 'g');
    +	
    +	// For background image
    +	this.backgroundPane = document.createElementNS(mxConstants.NS_SVG, 'g');
    +	this.canvas.appendChild(this.backgroundPane);
    +
    +	// Adds two layers (background is early feature)
    +	this.drawPane = document.createElementNS(mxConstants.NS_SVG, 'g');
    +	this.canvas.appendChild(this.drawPane);
    +
    +	this.overlayPane = document.createElementNS(mxConstants.NS_SVG, 'g');
    +	this.canvas.appendChild(this.overlayPane);
    +	
    +	var root = document.createElementNS(mxConstants.NS_SVG, 'svg');
    +
    +	// Updates the clipping region of the svg element after
    +	// a resize. This is required in Firefox.
    +	var onResize = mxUtils.bind(this, function(evt)
    +	{
    +		if (this.graph.container != null)
    +		{
    +			var width = this.graph.container.offsetWidth;
    +			var height = this.graph.container.offsetHeight;
    +			var bounds = this.getGraphBounds();
    +
    +			root.setAttribute('width', Math.max(width, bounds.width));
    +			root.setAttribute('height', Math.max(height, bounds.height));
    +		}
    +	});
    +	
    +	mxEvent.addListener(window, 'resize', onResize);
    +	
    +	if (mxClient.IS_OP)
    +	{
    +		onResize();
    +	}
    +	
    +	root.appendChild(this.canvas);
    +	
    +	if (container != null)
    +	{
    +		container.appendChild(root);
    +		
    +		// Workaround for offset of container
    +		var style = mxUtils.getCurrentStyle(container);
    +		
    +		if (style.position == 'static')
    +		{
    +			container.style.position = 'relative';
    +		}
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroys the view and all its resources.
    + */
    +mxGraphView.prototype.destroy = function()
    +{
    +	var root = (this.canvas != null) ? this.canvas.ownerSVGElement : null;
    +	
    +	if (root == null)
    +	{
    +		root = this.canvas;
    +	}
    +	
    +	if (root != null && root.parentNode != null)
    +	{
    +		this.clear(this.currentRoot, true);
    +		mxEvent.removeAllListeners(document);
    +		mxEvent.release(this.graph.container);
    +		root.parentNode.removeChild(root);
    +		
    +		this.canvas = null;
    +		this.backgroundPane = null;
    +		this.drawPane = null;
    +		this.overlayPane = null;
    +	}
    +};
    +
    +/**
    + * Class: mxCurrentRootChange
    + *
    + * Action to change the current root in a view.
    + *
    + * Constructor: mxCurrentRootChange
    + *
    + * Constructs a change of the current root in the given view.
    + */
    +function mxCurrentRootChange(view, root)
    +{
    +	this.view = view;
    +	this.root = root;
    +	this.previous = root;
    +	this.isUp = root == null;
    +	
    +	if (!this.isUp)
    +	{
    +		var tmp = this.view.currentRoot;
    +		var model = this.view.graph.getModel();
    +		
    +		while (tmp != null)
    +		{
    +			if (tmp == root)
    +			{
    +				this.isUp = true;
    +				break;
    +			}
    +			
    +			tmp = model.getParent(tmp);
    +		}
    +	}
    +};
    +
    +/**
    + * Function: execute
    + *
    + * Changes the current root of the view.
    + */
    +mxCurrentRootChange.prototype.execute = function()
    +{
    +	var tmp = this.view.currentRoot;
    +	this.view.currentRoot = this.previous;
    +	this.previous = tmp;
    +
    +	var translate = this.view.graph.getTranslateForRoot(this.view.currentRoot);
    +	
    +	if (translate != null)
    +	{
    +		this.view.translate = new mxPoint(-translate.x, -translate.y);
    +	}
    +			
    +	var name = (this.isUp) ? mxEvent.UP : mxEvent.DOWN;
    +	this.view.fireEvent(new mxEventObject(name,
    +		'root', this.view.currentRoot, 'previous', this.previous));
    +	
    +	if (this.isUp)
    +	{
    +		this.view.clear(this.view.currentRoot, true);
    +		this.view.validate();
    +	}
    +	else
    +	{
    +		this.view.refresh();
    +	}
    +	
    +	this.isUp = !this.isUp;
    +};
    diff --git a/javascript/src/js/view/mxLayoutManager.js b/javascript/src/js/view/mxLayoutManager.js
    new file mode 100644
    index 000000000..ee8ec6539
    --- /dev/null
    +++ b/javascript/src/js/view/mxLayoutManager.js
    @@ -0,0 +1,375 @@
    +/**
    + * $Id: mxLayoutManager.js,v 1.21 2012-01-04 10:01:16 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxLayoutManager
    + * 
    + * Implements a layout manager that updates the layout for a given transaction.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var layoutMgr = new mxLayoutManager(graph);
    + * layoutMgr.getLayout = function(cell)
    + * {
    + *   return layout;
    + * };
    + * (end)
    + * 
    + * Event: mxEvent.LAYOUT_CELLS
    + * 
    + * Fires between begin- and endUpdate after all cells have been layouted in
    + * <layoutCells>. The <code>cells</code> property contains all cells that have
    + * been passed to <layoutCells>.
    + * 
    + * Constructor: mxLayoutManager
    + *
    + * Constructs a new automatic layout for the given graph.
    + *
    + * Arguments:
    + * 
    + * graph - Reference to the enclosing graph. 
    + */
    +function mxLayoutManager(graph)
    +{
    +	// Executes the layout before the changes are dispatched
    +	this.undoHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		if (this.isEnabled())
    +		{
    +			this.beforeUndo(evt.getProperty('edit'));
    +		}
    +	});
    +	
    +	// Notifies the layout of a move operation inside a parent
    +	this.moveHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		if (this.isEnabled())
    +		{
    +			this.cellsMoved(evt.getProperty('cells'), evt.getProperty('event'));
    +		}
    +	});
    +	
    +	this.setGraph(graph);
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxLayoutManager.prototype = new mxEventSource();
    +mxLayoutManager.prototype.constructor = mxLayoutManager;
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxLayoutManager.prototype.graph = null;
    +
    +/**
    + * Variable: bubbling
    + * 
    + * Specifies if the layout should bubble along
    + * the cell hierarchy. Default is true.
    + */
    +mxLayoutManager.prototype.bubbling = true;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if event handling is enabled. Default is true.
    + */
    +mxLayoutManager.prototype.enabled = true;
    +
    +/**
    + * Variable: updateHandler
    + * 
    + * Holds the function that handles the endUpdate event.
    + */
    +mxLayoutManager.prototype.updateHandler = null;
    +
    +/**
    + * Variable: moveHandler
    + * 
    + * Holds the function that handles the move event.
    + */
    +mxLayoutManager.prototype.moveHandler = null;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxLayoutManager.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxLayoutManager.prototype.setEnabled = function(enabled)
    +{
    +	this.enabled = enabled;
    +};
    +
    +/**
    + * Function: isBubbling
    + * 
    + * Returns true if a layout should bubble, that is, if the parent layout
    + * should be executed whenever a cell layout (layout of the children of
    + * a cell) has been executed. This implementation returns <bubbling>.
    + */
    +mxLayoutManager.prototype.isBubbling = function()
    +{
    +	return this.bubbling;
    +};
    +
    +/**
    + * Function: setBubbling
    + * 
    + * Sets <bubbling>.
    + */
    +mxLayoutManager.prototype.setBubbling = function(value)
    +{
    +	this.bubbling = value;
    +};
    +
    +/**
    + * Function: getGraph
    + * 
    + * Returns the graph that this layout operates on.
    + */
    +mxLayoutManager.prototype.getGraph = function()
    +{
    +	return this.graph;
    +};
    +
    +/**
    + * Function: setGraph
    + * 
    + * Sets the graph that the layouts operate on.
    + */
    +mxLayoutManager.prototype.setGraph = function(graph)
    +{
    +	if (this.graph != null)
    +	{
    +		var model = this.graph.getModel();		
    +		model.removeListener(this.undoHandler);
    +		this.graph.removeListener(this.moveHandler);
    +	}
    +	
    +	this.graph = graph;
    +	
    +	if (this.graph != null)
    +	{
    +		var model = this.graph.getModel();	
    +		model.addListener(mxEvent.BEFORE_UNDO, this.undoHandler);
    +		this.graph.addListener(mxEvent.MOVE_CELLS, this.moveHandler);
    +	}
    +};
    +
    +/**
    + * Function: getLayout
    + * 
    + * Returns the layout to be executed for the given graph and parent.
    + */
    +mxLayoutManager.prototype.getLayout = function(parent)
    +{
    +	return null;
    +};
    +
    +/**
    + * Function: beforeUndo
    + * 
    + * Called from the undoHandler.
    + *
    + * Parameters:
    + * 
    + * cell - Array of <mxCells> that have been moved.
    + * evt - Mouse event that represents the mousedown.
    + */
    +mxLayoutManager.prototype.beforeUndo = function(undoableEdit)
    +{
    +	var cells = this.getCellsForChanges(undoableEdit.changes);
    +	var model = this.getGraph().getModel();
    +	
    +	// Adds all parent ancestors
    +	if (this.isBubbling())
    +	{
    +		var tmp = model.getParents(cells);
    +		
    +		while (tmp.length > 0)
    +		{
    +			cells = cells.concat(tmp);
    +			tmp = model.getParents(tmp);
    +		}
    +	}
    +	
    +	this.layoutCells(mxUtils.sortCells(cells, false));
    +};
    +
    +/**
    + * Function: cellsMoved
    + * 
    + * Called from the moveHandler.
    + *
    + * Parameters:
    + * 
    + * cell - Array of <mxCells> that have been moved.
    + * evt - Mouse event that represents the mousedown.
    + */
    +mxLayoutManager.prototype.cellsMoved = function(cells, evt)
    +{
    +	if (cells != null &&
    +		evt != null)
    +	{
    +		var point = mxUtils.convertPoint(this.getGraph().container,
    +			mxEvent.getClientX(evt), mxEvent.getClientY(evt));
    +		var model = this.getGraph().getModel();
    +		
    +		// Checks if a layout exists to take care of the moving
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			var layout = this.getLayout(model.getParent(cells[i]));
    +
    +			if (layout != null)
    +			{
    +				layout.moveCell(cells[i], point.x, point.y);
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getCellsForEdit
    + * 
    + * Returns the cells to be layouted for the given sequence of changes.
    + */
    +mxLayoutManager.prototype.getCellsForChanges = function(changes)
    +{
    +	var result = [];
    +	var hash = new Object();
    +	
    +	for (var i = 0; i < changes.length; i++)
    +	{
    +		var change = changes[i];
    +		
    +		if (change instanceof mxRootChange)
    +		{
    +			return [];
    +		}
    +		else
    +		{
    +			var cells = this.getCellsForChange(change);
    +			
    +			for (var j = 0; j < cells.length; j++)
    +			{
    +				if (cells[j] != null)
    +				{
    +					var id = mxCellPath.create(cells[j]);
    +					
    +					if (hash[id] == null)
    +					{
    +						hash[id] = cells[j];
    +						result.push(cells[j]);
    +					}
    +				}
    +			}
    +		}
    +	}
    +	
    +	return result;
    +};
    +
    +/**
    + * Function: getCellsForChange
    + * 
    + * Executes all layouts which have been scheduled during the
    + * changes.
    + */
    +mxLayoutManager.prototype.getCellsForChange = function(change)
    +{
    +	var model = this.getGraph().getModel();
    +	
    +	if (change instanceof mxChildChange)
    +	{
    +		return [change.child, change.previous, model.getParent(change.child)];
    +	}
    +	else if (change instanceof mxTerminalChange ||
    +			change instanceof mxGeometryChange)
    +	{
    +		return [change.cell, model.getParent(change.cell)];
    +	}
    +	
    +	return [];
    +};
    +
    +/**
    + * Function: layoutCells
    + * 
    + * Executes all layouts which have been scheduled during the
    + * changes.
    + */
    +mxLayoutManager.prototype.layoutCells = function(cells)
    +{
    +	if (cells.length > 0)
    +	{
    +		// Invokes the layouts while removing duplicates
    +		var model = this.getGraph().getModel();
    +		
    +		model.beginUpdate();
    +		try 
    +		{
    +			var last = null;
    +			
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				if (cells[i] != model.getRoot() &&
    +					cells[i] != last)
    +				{
    +					last = cells[i];
    +					this.executeLayout(this.getLayout(last), last);
    +				}
    +			}
    +			
    +			this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS, 'cells', cells));
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: executeLayout
    + * 
    + * Executes the given layout on the given parent.
    + */
    +mxLayoutManager.prototype.executeLayout = function(layout, parent)
    +{
    +	if (layout != null && parent != null)
    +	{
    +		layout.execute(parent);
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Removes all handlers from the <graph> and deletes the reference to it.
    + */
    +mxLayoutManager.prototype.destroy = function()
    +{
    +	this.setGraph(null);
    +};
    diff --git a/javascript/src/js/view/mxMultiplicity.js b/javascript/src/js/view/mxMultiplicity.js
    new file mode 100644
    index 000000000..c927d3fa7
    --- /dev/null
    +++ b/javascript/src/js/view/mxMultiplicity.js
    @@ -0,0 +1,257 @@
    +/**
    + * $Id: mxMultiplicity.js,v 1.24 2010-11-03 14:52:40 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxMultiplicity
    + * 
    + * Defines invalid connections along with the error messages that they produce.
    + * To add or remove rules on a graph, you must add/remove instances of this
    + * class to <mxGraph.multiplicities>.
    + * 
    + * Example:
    + * 
    + * (code)
    + * graph.multiplicities.push(new mxMultiplicity(
    + *   true, 'rectangle', null, null, 0, 2, ['circle'],
    + *   'Only 2 targets allowed',
    + *   'Only circle targets allowed'));
    + * (end)
    + * 
    + * Defines a rule where each rectangle must be connected to no more than 2
    + * circles and no other types of targets are allowed.
    + * 
    + * Constructor: mxMultiplicity
    + * 
    + * Instantiate class mxMultiplicity in order to describe allowed
    + * connections in a graph. Not all constraints can be enforced while
    + * editing, some must be checked at validation time. The <countError> and
    + * <typeError> are treated as resource keys in <mxResources>.
    + * 
    + * Parameters:
    + * 
    + * source - Boolean indicating if this rule applies to the source or target
    + * terminal.
    + * type - Type of the source or target terminal that this rule applies to.
    + * See <type> for more information.
    + * attr - Optional attribute name to match the source or target terminal.
    + * value - Optional attribute value to match the source or target terminal.
    + * min - Minimum number of edges for this rule. Default is 1.
    + * max - Maximum number of edges for this rule. n means infinite. Default
    + * is n.
    + * validNeighbors - Array of types of the opposite terminal for which this
    + * rule applies.
    + * countError - Error to be displayed for invalid number of edges.
    + * typeError - Error to be displayed for invalid opposite terminals.
    + * validNeighborsAllowed - Optional boolean indicating if the array of
    + * opposite types should be valid or invalid.
    + */
    +function mxMultiplicity(source, type, attr, value, min, max,
    +	validNeighbors, countError, typeError, validNeighborsAllowed)
    +{
    +	this.source = source;
    +	this.type = type;
    +	this.attr = attr;
    +	this.value = value;
    +	this.min = (min != null) ? min : 0;
    +	this.max = (max != null) ? max : 'n';
    +	this.validNeighbors = validNeighbors;
    +	this.countError = mxResources.get(countError) || countError;
    +	this.typeError = mxResources.get(typeError) || typeError;
    +	this.validNeighborsAllowed = (validNeighborsAllowed != null) ?
    +		validNeighborsAllowed : true;
    +};
    +
    +/**
    + * Variable: type
    + * 
    + * Defines the type of the source or target terminal. The type is a string
    + * passed to <mxUtils.isNode> together with the source or target vertex
    + * value as the first argument.
    + */
    +mxMultiplicity.prototype.type = null;
    +
    +/**
    + * Variable: attr
    + * 
    + * Optional string that specifies the attributename to be passed to
    + * <mxUtils.isNode> to check if the rule applies to a cell.
    + */
    +mxMultiplicity.prototype.attr = null;
    +
    +/**
    + * Variable: value
    + * 
    + * Optional string that specifies the value of the attribute to be passed
    + * to <mxUtils.isNode> to check if the rule applies to a cell.
    + */
    +mxMultiplicity.prototype.value = null;
    +
    +/**
    + * Variable: source
    + * 
    + * Boolean that specifies if the rule is applied to the source or target
    + * terminal of an edge.
    + */
    +mxMultiplicity.prototype.source = null;
    +
    +/**
    + * Variable: min
    + * 
    + * Defines the minimum number of connections for which this rule applies.
    + * Default is 0.
    + */
    +mxMultiplicity.prototype.min = null;
    +
    +/**
    + * Variable: max
    + * 
    + * Defines the maximum number of connections for which this rule applies.
    + * A value of 'n' means unlimited times. Default is 'n'. 
    + */
    +mxMultiplicity.prototype.max = null;
    +
    +/**
    + * Variable: validNeighbors
    + * 
    + * Holds an array of strings that specify the type of neighbor for which
    + * this rule applies. The strings are used in <mxCell.is> on the opposite
    + * terminal to check if the rule applies to the connection.
    + */
    +mxMultiplicity.prototype.validNeighbors = null;
    +
    +/**
    + * Variable: validNeighborsAllowed
    + * 
    + * Boolean indicating if the list of validNeighbors are those that are allowed
    + * for this rule or those that are not allowed for this rule.
    + */
    +mxMultiplicity.prototype.validNeighborsAllowed = true;
    +
    +/**
    + * Variable: countError
    + * 
    + * Holds the localized error message to be displayed if the number of
    + * connections for which the rule applies is smaller than <min> or greater
    + * than <max>.
    + */
    +mxMultiplicity.prototype.countError = null;
    +
    +/**
    + * Variable: typeError
    + * 
    + * Holds the localized error message to be displayed if the type of the
    + * neighbor for a connection does not match the rule.
    + */
    +mxMultiplicity.prototype.typeError = null;
    +
    +/**
    + * Function: check
    + * 
    + * Checks the multiplicity for the given arguments and returns the error
    + * for the given connection or null if the multiplicity does not apply.
    + *  
    + * Parameters:
    + * 
    + * graph - Reference to the enclosing <mxGraph> instance.
    + * edge - <mxCell> that represents the edge to validate.
    + * source - <mxCell> that represents the source terminal.
    + * target - <mxCell> that represents the target terminal.
    + * sourceOut - Number of outgoing edges from the source terminal.
    + * targetIn - Number of incoming edges for the target terminal.
    + */
    +mxMultiplicity.prototype.check = function(graph, edge, source, target, sourceOut, targetIn)
    +{
    +	var error = '';
    +
    +	if ((this.source && this.checkTerminal(graph, source, edge)) ||
    +		(!this.source && this.checkTerminal(graph, target, edge)))
    +	{
    +		if (this.countError != null && 
    +			((this.source && (this.max == 0 || (sourceOut >= this.max))) ||
    +			(!this.source && (this.max == 0 || (targetIn >= this.max)))))
    +		{
    +			error += this.countError + '\n';
    +		}
    +
    +		if (this.validNeighbors != null && this.typeError != null && this.validNeighbors.length > 0)
    +		{
    +			var isValid = this.checkNeighbors(graph, edge, source, target);
    +
    +			if (!isValid)
    +			{
    +				error += this.typeError + '\n';
    +			}
    +		}
    +	}
    +	
    +	return (error.length > 0) ? error : null;
    +};
    +
    +/**
    + * Function: checkNeighbors
    + * 
    + * Checks if there are any valid neighbours in <validNeighbors>. This is only
    + * called if <validNeighbors> is a non-empty array.
    + */
    +mxMultiplicity.prototype.checkNeighbors = function(graph, edge, source, target)
    +{
    +	var sourceValue = graph.model.getValue(source);
    +	var targetValue = graph.model.getValue(target);
    +	var isValid = !this.validNeighborsAllowed;
    +	var valid = this.validNeighbors;
    +	
    +	for (var j = 0; j < valid.length; j++)
    +	{
    +		if (this.source &&
    +			this.checkType(graph, targetValue, valid[j]))
    +		{
    +			isValid = this.validNeighborsAllowed;
    +			break;
    +		}
    +		else if (!this.source && 
    +			this.checkType(graph, sourceValue, valid[j]))
    +		{
    +			isValid = this.validNeighborsAllowed;
    +			break;
    +		}
    +	}
    +	
    +	return isValid;
    +};
    +
    +/**
    + * Function: checkTerminal
    + * 
    + * Checks the given terminal cell and returns true if this rule applies. The
    + * given cell is the source or target of the given edge, depending on
    + * <source>. This implementation uses <checkType> on the terminal's value.
    + */
    +mxMultiplicity.prototype.checkTerminal = function(graph, terminal, edge)
    +{
    +	var value = graph.model.getValue(terminal);
    +	
    +	return this.checkType(graph, value, this.type, this.attr, this.value);
    +};
    +
    +/**
    + * Function: checkType
    + * 
    + * Checks the type of the given value.
    + */
    +mxMultiplicity.prototype.checkType = function(graph, value, type, attr, attrValue)
    +{
    +	if (value != null)
    +	{
    +		if (!isNaN(value.nodeType)) // Checks if value is a DOM node
    +		{
    +			return mxUtils.isNode(value, type, attr, attrValue);
    +		}
    +		else
    +		{
    +			return value == type;
    +		}
    +	}
    +	
    +	return false;
    +};
    diff --git a/javascript/src/js/view/mxOutline.js b/javascript/src/js/view/mxOutline.js
    new file mode 100644
    index 000000000..8ec7ce170
    --- /dev/null
    +++ b/javascript/src/js/view/mxOutline.js
    @@ -0,0 +1,599 @@
    +/**
    + * $Id: mxOutline.js,v 1.76 2012-05-10 15:27:43 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxOutline
    + *
    + * Implements an outline (aka overview) for a graph. Set <updateOnPan> to true
    + * to enable updates while the source graph is panning.
    + * 
    + * Example:
    + * 
    + * (code)
    + * var outline = new mxOutline(graph, div);
    + * (end)
    + * 
    + * If the selection border in the outline appears behind the contents of the
    + * graph, then you can use the following code. (This may happen when using a
    + * transparent container for the outline in IE.)
    + * 
    + * (code)
    + * mxOutline.prototype.graphRenderHint = mxConstants.RENDERING_HINT_EXACT;
    + * (end)
    + * 
    + * To move the graph to the top, left corner the following code can be used.
    + * 
    + * (code)
    + * var scale = graph.view.scale;
    + * var bounds = graph.getGraphBounds();
    + * graph.view.setTranslate(-bounds.x / scale, -bounds.y / scale);
    + * (end)
    + * 
    + * To toggle the suspended mode, the following can be used.
    + * 
    + * (code)
    + * outline.suspended = !outln.suspended;
    + * if (!outline.suspended)
    + * {
    + *   outline.update(true);
    + * }
    + * (end)
    + * 
    + * Constructor: mxOutline
    + *
    + * Constructs a new outline for the specified graph inside the given
    + * container.
    + * 
    + * Parameters:
    + * 
    + * source - <mxGraph> to create the outline for.
    + * container - DOM node that will contain the outline.
    + */
    +function mxOutline(source, container)
    +{
    +	this.source = source;
    +
    +	if (container != null)
    +	{
    +		this.init(container);
    +	}
    +};
    +
    +/**
    + * Function: source
    + * 
    + * Reference to the source <mxGraph>.
    + */
    +mxOutline.prototype.source = null;
    +
    +/**
    + * Function: outline
    + * 
    + * Reference to the outline <mxGraph>.
    + */
    +mxOutline.prototype.outline = null;
    +
    +/**
    + * Function: graphRenderHint
    + * 
    + * Renderhint to be used for the outline graph. Default is faster.
    + */
    +mxOutline.prototype.graphRenderHint = mxConstants.RENDERING_HINT_FASTER;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if events are handled. Default is true.
    + */
    +mxOutline.prototype.enabled = true;
    +
    +/**
    + * Variable: showViewport
    + * 
    + * Specifies a viewport rectangle should be shown. Default is true.
    + */
    +mxOutline.prototype.showViewport = true;
    +
    +/**
    + * Variable: border
    + * 
    + * Border to be added at the bottom and right. Default is 10.
    + */
    +mxOutline.prototype.border = 10;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies the size of the sizer handler. Default is 8.
    + */
    +mxOutline.prototype.sizerSize = 8;
    +
    +/**
    + * Variable: updateOnPan
    + * 
    + * Specifies if <update> should be called for <mxEvent.PAN> in the source
    + * graph. Default is false.
    + */
    +mxOutline.prototype.updateOnPan = false;
    +
    +/**
    + * Variable: sizerImage
    + * 
    + * Optional <mxImage> to be used for the sizer. Default is null.
    + */
    +mxOutline.prototype.sizerImage = null;
    +
    +/**
    + * Variable: suspended
    + * 
    + * Optional boolean flag to suspend updates. Default is false. This flag will
    + * also suspend repaints of the outline. To toggle this switch, use the
    + * following code.
    + * 
    + * (code)
    + * nav.suspended = !nav.suspended;
    + * 
    + * if (!nav.suspended)
    + * {
    + *   nav.update(true);
    + * }
    + * (end)
    + */
    +mxOutline.prototype.suspended = false;
    +
    +/**
    + * Function: init
    + * 
    + * Initializes the outline inside the given container.
    + */
    +mxOutline.prototype.init = function(container)
    +{
    +	this.outline = new mxGraph(container, this.source.getModel(), this.graphRenderHint, this.source.getStylesheet());
    +	this.outline.foldingEnabled = false;
    +	this.outline.autoScroll = false;
    +	
    +	// Do not repaint when suspended
    +	var outlineGraphModelChanged = this.outline.graphModelChanged;
    +	this.outline.graphModelChanged = mxUtils.bind(this, function(changes)
    +	{
    +		if (!this.suspended && this.outline != null)
    +		{
    +			outlineGraphModelChanged.apply(this.outline, arguments);
    +		}
    +	});
    +
    +	// Enables faster painting in SVG
    +	if (mxClient.IS_SVG)
    +	{
    +		var node = this.outline.getView().getCanvas().parentNode;
    +		node.setAttribute('shape-rendering', 'optimizeSpeed');
    +		node.setAttribute('image-rendering', 'optimizeSpeed');
    +	}
    +	
    +	// Hides cursors and labels
    +	this.outline.labelsVisible = false;
    +	this.outline.setEnabled(false);
    +	
    +	this.updateHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		if (!this.suspended && !this.active)
    +		{
    +			this.update();
    +		}
    +	});
    +	
    +	// Updates the scale of the outline after a change of the main graph
    +	this.source.getModel().addListener(mxEvent.CHANGE, this.updateHandler);
    +	this.outline.addMouseListener(this);
    +	
    +	// Adds listeners to keep the outline in sync with the source graph
    +	var view = this.source.getView();
    +	view.addListener(mxEvent.SCALE, this.updateHandler);
    +	view.addListener(mxEvent.TRANSLATE, this.updateHandler);
    +	view.addListener(mxEvent.SCALE_AND_TRANSLATE, this.updateHandler);
    +	view.addListener(mxEvent.DOWN, this.updateHandler);
    +	view.addListener(mxEvent.UP, this.updateHandler);
    +
    +	// Updates blue rectangle on scroll
    +	mxEvent.addListener(this.source.container, 'scroll', this.updateHandler);
    +	
    +	this.panHandler = mxUtils.bind(this, function(sender)
    +	{
    +		if (this.updateOnPan)
    +		{
    +			this.updateHandler.apply(this, arguments);
    +		}
    +	});
    +	this.source.addListener(mxEvent.PAN, this.panHandler);
    +	
    +	// Refreshes the graph in the outline after a refresh of the main graph
    +	this.refreshHandler = mxUtils.bind(this, function(sender)
    +	{
    +		this.outline.setStylesheet(this.source.getStylesheet());
    +		this.outline.refresh();
    +	});
    +	this.source.addListener(mxEvent.REFRESH, this.refreshHandler);
    +
    +	// Creates the blue rectangle for the viewport
    +	this.bounds = new mxRectangle(0, 0, 0, 0);
    +	this.selectionBorder = new mxRectangleShape(this.bounds, null,
    +		mxConstants.OUTLINE_COLOR, mxConstants.OUTLINE_STROKEWIDTH);
    +	this.selectionBorder.dialect =
    +		(this.outline.dialect != mxConstants.DIALECT_SVG) ?
    +		mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
    +	this.selectionBorder.crisp = true;
    +	this.selectionBorder.init(this.outline.getView().getOverlayPane());
    +	mxEvent.redirectMouseEvents(this.selectionBorder.node, this.outline);
    +	this.selectionBorder.node.style.background = '';
    +	
    +	// Creates a small blue rectangle for sizing (sizer handle)
    +	this.sizer = this.createSizer();
    +	this.sizer.init(this.outline.getView().getOverlayPane());
    +	
    +	if (this.enabled)
    +	{
    +		this.sizer.node.style.cursor = 'pointer';
    +	}
    +
    +	// Redirects all events from the sizerhandle to the outline
    +	mxEvent.addListener(this.sizer.node, (mxClient.IS_TOUCH) ? 'touchstart' : 'mousedown',
    +		mxUtils.bind(this, function(evt)
    +		{
    +			this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(evt));
    +		})
    +	);
    +	
    +	this.selectionBorder.node.style.display = (this.showViewport) ? '' : 'none';
    +	this.sizer.node.style.display = this.selectionBorder.node.style.display;
    +	this.selectionBorder.node.style.cursor = 'move';
    +
    +	this.update(false);
    +};
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxOutline.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean that specifies the new enabled state.
    + */
    +mxOutline.prototype.setEnabled = function(value)
    +{
    +	this.enabled = value;
    +};
    +
    +/**
    + * Function: setZoomEnabled
    + * 
    + * Enables or disables the zoom handling by showing or hiding the respective
    + * handle.
    + * 
    + * Parameters:
    + * 
    + * value - Boolean that specifies the new enabled state.
    + */
    +mxOutline.prototype.setZoomEnabled = function(value)
    +{
    +	this.sizer.node.style.visibility = (value) ? 'visible' : 'hidden';
    +};
    +
    +/**
    + * Function: refresh
    + * 
    + * Invokes <update> and revalidate the outline. This method is deprecated.
    + */
    +mxOutline.prototype.refresh = function()
    +{
    +	this.update(true);
    +};
    +
    +/**
    + * Function: createSizer
    + * 
    + * Creates the shape used as the sizer.
    + */
    +mxOutline.prototype.createSizer = function()
    +{
    +	if (this.sizerImage != null)
    +	{
    +		var sizer = new mxImageShape(new mxRectangle(0, 0, this.sizerImage.width, this.sizerImage.height), this.sizerImage.src);
    +		sizer.dialect = this.outline.dialect;
    +		
    +		return sizer;
    +	}
    +	else
    +	{
    +		var sizer = new mxRectangleShape(new mxRectangle(0, 0, this.sizerSize, this.sizerSize),
    +			mxConstants.OUTLINE_HANDLE_FILLCOLOR, mxConstants.OUTLINE_HANDLE_STROKECOLOR);
    +		sizer.dialect = this.outline.dialect;
    +		sizer.crisp = true;
    +	
    +		return sizer;
    +	}
    +};
    +
    +/**
    + * Function: update
    + * 
    + * Updates the outline.
    + */
    +mxOutline.prototype.update = function(revalidate)
    +{
    +	if (this.source != null)
    +	{
    +		var sourceScale = this.source.view.scale;
    +		var scaledGraphBounds = this.source.getGraphBounds();
    +		var unscaledGraphBounds = new mxRectangle(scaledGraphBounds.x / sourceScale + this.source.panDx,
    +				scaledGraphBounds.y / sourceScale + this.source.panDy, scaledGraphBounds.width / sourceScale,
    +				scaledGraphBounds.height / sourceScale);
    +	
    +		var unscaledFinderBounds = new mxRectangle(0, 0,
    +			this.source.container.clientWidth / sourceScale,
    +			this.source.container.clientHeight / sourceScale);
    +		
    +		var union = unscaledGraphBounds.clone();
    +		union.add(unscaledFinderBounds);
    +	
    +		// Zooms to the scrollable area if that is bigger than the graph
    +		var completeWidth = Math.max(this.source.container.scrollWidth / sourceScale, union.width);
    +		var completeHeight = Math.max(this.source.container.scrollHeight/ sourceScale, union.height);
    +	
    +		var availableWidth = Math.max(0, this.outline.container.clientWidth - this.border);
    +		var availableHeight = Math.max(0, this.outline.container.clientHeight - this.border);
    +		
    +		var outlineScale = Math.min(availableWidth / completeWidth, availableHeight / completeHeight);
    +		var scale = outlineScale;
    +		
    +		if (scale > 0)
    +		{
    +			if (this.outline.getView().scale != scale)
    +			{
    +				this.outline.getView().scale = scale;
    +				revalidate = true;
    +			}
    +		
    +			var navView = this.outline.getView();
    +			
    +			if (navView.currentRoot != this.source.getView().currentRoot)
    +			{
    +				navView.setCurrentRoot(this.source.getView().currentRoot);
    +			}
    +			
    +			var t = this.source.view.translate;
    +			var tx = t.x + this.source.panDx;
    +			var ty = t.y + this.source.panDy;
    +			
    +			if (unscaledGraphBounds.x < 0)
    +			{
    +				tx = tx - unscaledGraphBounds.x;
    +			}
    +			if (unscaledGraphBounds.y < 0)
    +			{
    +				ty = ty - unscaledGraphBounds.y;
    +			}
    +			
    +			if (navView.translate.x != tx || navView.translate.y != ty)
    +			{
    +				navView.translate.x = tx;
    +				navView.translate.y = ty;
    +				revalidate = true;
    +			}
    +		
    +			// Prepares local variables for computations
    +			var t2 = navView.translate;
    +			var scale = this.source.getView().scale;
    +			var scale2 = scale / navView.scale;
    +			var scale3 = 1.0 / navView.scale;
    +			var container = this.source.container;
    +			
    +			// Updates the bounds of the viewrect in the navigation
    +			this.bounds = new mxRectangle(
    +				(t2.x - t.x - this.source.panDx) / scale3,
    +				(t2.y - t.y - this.source.panDy) / scale3,
    +				(container.clientWidth / scale2),
    +				(container.clientHeight / scale2));
    +			
    +			// Adds the scrollbar offset to the finder
    +			this.bounds.x += this.source.container.scrollLeft * navView.scale / scale;
    +			this.bounds.y += this.source.container.scrollTop * navView.scale / scale;
    +			
    +			this.selectionBorder.bounds = this.bounds;
    +			this.selectionBorder.redraw();
    +		
    +			// Updates the bounds of the zoom handle at the bottom right
    +			var b = this.sizer.bounds;
    +			this.sizer.bounds = new mxRectangle(this.bounds.x + this.bounds.width - b.width / 2,
    +				this.bounds.y + this.bounds.height - b.height / 2, b.width, b.height);
    +			this.sizer.redraw();
    +			
    +			if (revalidate)
    +			{
    +				this.outline.view.revalidate();
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: mouseDown
    + * 
    + * Handles the event by starting a translation or zoom.
    + */
    +mxOutline.prototype.mouseDown = function(sender, me)
    +{
    +	if (this.enabled && this.showViewport)
    +	{
    +		this.zoom = me.isSource(this.sizer);
    +		this.startX = me.getX();
    +		this.startY = me.getY();
    +		this.active = true;
    +
    +		if (this.source.useScrollbarsForPanning &&
    +			mxUtils.hasScrollbars(this.source.container))
    +		{
    +			this.dx0 = this.source.container.scrollLeft;
    +			this.dy0 = this.source.container.scrollTop;
    +		}
    +		else
    +		{
    +			this.dx0 = 0;
    +			this.dy0 = 0;
    +		}
    +	}
    +
    +	me.consume();
    +};
    +
    +/**
    + * Function: mouseMove
    + * 
    + * Handles the event by previewing the viewrect in <graph> and updating the
    + * rectangle that represents the viewrect in the outline.
    + */
    +mxOutline.prototype.mouseMove = function(sender, me)
    +{
    +	if (this.active)
    +	{
    +		this.selectionBorder.node.style.display = (this.showViewport) ? '' : 'none';
    +		this.sizer.node.style.display = this.selectionBorder.node.style.display; 
    +
    +		var dx = me.getX() - this.startX;
    +		var dy = me.getY() - this.startY;
    +		var bounds = null;
    +		
    +		if (!this.zoom)
    +		{
    +			// Previews the panning on the source graph
    +			var scale = this.outline.getView().scale;
    +			bounds = new mxRectangle(this.bounds.x + dx,
    +				this.bounds.y + dy, this.bounds.width, this.bounds.height);
    +			this.selectionBorder.bounds = bounds;
    +			this.selectionBorder.redraw();
    +			dx /= scale;
    +			dx *= this.source.getView().scale;
    +			dy /= scale;
    +			dy *= this.source.getView().scale;
    +			this.source.panGraph(-dx - this.dx0, -dy - this.dy0);
    +		}
    +		else
    +		{
    +			// Does *not* preview zooming on the source graph
    +			var container = this.source.container;
    +			var viewRatio = container.clientWidth / container.clientHeight;
    +			dy = dx / viewRatio;
    +			bounds = new mxRectangle(this.bounds.x,
    +				this.bounds.y,
    +				Math.max(1, this.bounds.width + dx),
    +				Math.max(1, this.bounds.height + dy));
    +			this.selectionBorder.bounds = bounds;
    +			this.selectionBorder.redraw();
    +		}
    +		
    +		// Updates the zoom handle
    +		var b = this.sizer.bounds;
    +		this.sizer.bounds = new mxRectangle(
    +			bounds.x + bounds.width - b.width / 2,
    +			bounds.y + bounds.height - b.height / 2,
    +			b.width, b.height);
    +		this.sizer.redraw();
    +		me.consume();
    +	}
    +};
    +
    +/**
    + * Function: mouseUp
    + * 
    + * Handles the event by applying the translation or zoom to <graph>.
    + */
    +mxOutline.prototype.mouseUp = function(sender, me)
    +{
    +	if (this.active)
    +	{
    +		var dx = me.getX() - this.startX;
    +		var dy = me.getY() - this.startY;
    +		
    +		if (Math.abs(dx) > 0 || Math.abs(dy) > 0)
    +		{
    +			if (!this.zoom)
    +			{
    +				// Applies the new translation if the source
    +				// has no scrollbars
    +				if (!this.source.useScrollbarsForPanning ||
    +					!mxUtils.hasScrollbars(this.source.container))
    +				{
    +					this.source.panGraph(0, 0);
    +					dx /= this.outline.getView().scale;
    +					dy /= this.outline.getView().scale;
    +					var t = this.source.getView().translate;
    +					this.source.getView().setTranslate(t.x - dx, t.y - dy);
    +				}
    +			}
    +			else
    +			{
    +				// Applies the new zoom
    +				var w = this.selectionBorder.bounds.width;
    +				var scale = this.source.getView().scale;
    +				this.source.getView().setScale(scale - (dx * scale) / w);
    +			}
    +
    +			this.update();
    +			me.consume();
    +		}
    +			
    +		// Resets the state of the handler
    +		this.index = null;
    +		this.active = false;
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Destroy this outline and removes all listeners from <source>.
    + */
    +mxOutline.prototype.destroy = function()
    +{
    +	if (this.source != null)
    +	{
    +		this.source.removeListener(this.panHandler);
    +		this.source.removeListener(this.refreshHandler);
    +		this.source.getModel().removeListener(this.updateHandler);
    +		this.source.getView().removeListener(this.updateHandler);
    +		mxEvent.addListener(this.source.container, 'scroll', this.updateHandler);
    +		this.source = null;
    +	}
    +	
    +	if (this.outline != null)
    +	{
    +		this.outline.removeMouseListener(this);
    +		this.outline.destroy();
    +		this.outline = null;
    +	}
    +
    +	if (this.selectionBorder != null)
    +	{
    +		this.selectionBorder.destroy();
    +		this.selectionBorder = null;
    +	}
    +	
    +	if (this.sizer != null)
    +	{
    +		this.sizer.destroy();
    +		this.sizer = null;
    +	}
    +};
    diff --git a/javascript/src/js/view/mxPerimeter.js b/javascript/src/js/view/mxPerimeter.js
    new file mode 100644
    index 000000000..7aaa187cc
    --- /dev/null
    +++ b/javascript/src/js/view/mxPerimeter.js
    @@ -0,0 +1,484 @@
    +/**
    + * $Id: mxPerimeter.js,v 1.28 2012-01-11 09:06:56 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxPerimeter =
    +{
    +	/**
    +	 * Class: mxPerimeter
    +	 * 
    +	 * Provides various perimeter functions to be used in a style
    +	 * as the value of <mxConstants.STYLE_PERIMETER>. Perimeters for
    +	 * rectangle, circle, rhombus and triangle are available.
    +	 *
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * <add as="perimeter">mxPerimeter.RightAngleRectanglePerimeter</add>
    +	 * (end)
    +	 * 
    +	 * Or programmatically:
    +	 * 
    +	 * (code)
    +	 * style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +	 * (end)
    +	 * 
    +	 * When adding new perimeter functions, it is recommended to use the 
    +	 * mxPerimeter-namespace as follows:
    +	 * 
    +	 * (code)
    +	 * mxPerimeter.CustomPerimeter = function (bounds, vertex, next, orthogonal)
    +	 * {
    +	 *   var x = 0; // Calculate x-coordinate
    +	 *   var y = 0; // Calculate y-coordainte
    +	 *   
    +	 *   return new mxPoint(x, y);
    +	 * }
    +	 * (end)
    +	 * 
    +	 * The new perimeter should then be registered in the <mxStyleRegistry> as follows:
    +	 * (code)
    +	 * mxStyleRegistry.putValue('customPerimeter', mxPerimeter.CustomPerimeter);
    +	 * (end)
    +	 * 
    +	 * The custom perimeter above can now be used in a specific vertex as follows:
    +	 * 
    +	 * (code)
    +	 * model.setStyle(vertex, 'perimeter=customPerimeter');
    +	 * (end)
    +	 * 
    +	 * Note that the key of the <mxStyleRegistry> entry for the function should
    +	 * be used in string values, unless <mxGraphView.allowEval> is true, in
    +	 * which case you can also use mxPerimeter.CustomPerimeter for the value in
    +	 * the cell style above.
    +	 * 
    +	 * Or it can be used for all vertices in the graph as follows:
    +	 * 
    +	 * (code)
    +	 * var style = graph.getStylesheet().getDefaultVertexStyle();
    +	 * style[mxConstants.STYLE_PERIMETER] = mxPerimeter.CustomPerimeter;
    +	 * (end)
    +	 * 
    +	 * Note that the object can be used directly when programmatically setting
    +	 * the value, but the key in the <mxStyleRegistry> should be used when
    +	 * setting the value via a key, value pair in a cell style.
    +	 * 
    +	 * The parameters are explained in <RectanglePerimeter>.
    +	 * 
    +	 * Function: RectanglePerimeter
    +	 * 
    +	 * Describes a rectangular perimeter for the given bounds.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * bounds - <mxRectangle> that represents the absolute bounds of the
    +	 * vertex.
    +	 * vertex - <mxCellState> that represents the vertex.
    +	 * next - <mxPoint> that represents the nearest neighbour point on the
    +	 * given edge.
    +	 * orthogonal - Boolean that specifies if the orthogonal projection onto
    +	 * the perimeter should be returned. If this is false then the intersection
    +	 * of the perimeter and the line between the next and the center point is
    +	 * returned.
    +	 */
    +	RectanglePerimeter: function (bounds, vertex, next, orthogonal)
    +	{
    +		var cx = bounds.getCenterX();
    +		var cy = bounds.getCenterY();
    +		var dx = next.x - cx;
    +		var dy = next.y - cy;
    +		var alpha = Math.atan2(dy, dx);
    +		var p = new mxPoint(0, 0);
    +		var pi = Math.PI;
    +		var pi2 = Math.PI/2;
    +		var beta = pi2 - alpha;
    +		var t = Math.atan2(bounds.height, bounds.width);
    +		
    +		if (alpha < -pi + t || alpha > pi - t)
    +		{
    +			// Left edge
    +			p.x = bounds.x;
    +			p.y = cy - bounds.width * Math.tan(alpha) / 2;
    +		}
    +		else if (alpha < -t)
    +		{
    +			// Top Edge
    +			p.y = bounds.y;
    +			p.x = cx - bounds.height * Math.tan(beta) / 2;
    +		}
    +		else if (alpha < t)
    +		{
    +			// Right Edge
    +			p.x = bounds.x + bounds.width;
    +			p.y = cy + bounds.width * Math.tan(alpha) / 2;
    +		}
    +		else
    +		{
    +			// Bottom Edge
    +			p.y = bounds.y + bounds.height;
    +			p.x = cx + bounds.height * Math.tan(beta) / 2;
    +		}
    +		
    +		if (orthogonal)
    +		{
    +			if (next.x >= bounds.x &&
    +				next.x <= bounds.x + bounds.width)
    +			{
    +				p.x = next.x;
    +			}
    +			else if (next.y >= bounds.y &&
    +					   next.y <= bounds.y + bounds.height)
    +			{
    +				p.y = next.y;
    +			}
    +			if (next.x < bounds.x)
    +			{
    +				p.x = bounds.x;
    +			}
    +			else if (next.x > bounds.x + bounds.width)
    +			{
    +				p.x = bounds.x + bounds.width;
    +			}
    +			if (next.y < bounds.y)
    +			{
    +				p.y = bounds.y;
    +			}
    +			else if (next.y > bounds.y + bounds.height)
    +			{
    +				p.y = bounds.y + bounds.height;
    +			}
    +		}
    +		
    +		return p;
    +	},
    +
    +	/**
    +	 * Function: EllipsePerimeter
    +	 * 
    +	 * Describes an elliptic perimeter. See <RectanglePerimeter>
    +	 * for a description of the parameters.
    +	 */
    +	EllipsePerimeter: function (bounds, vertex, next, orthogonal)
    +	{
    +		var x = bounds.x;
    +		var y = bounds.y;
    +		var a = bounds.width / 2;
    +		var b = bounds.height / 2;
    +		var cx = x + a;
    +		var cy = y + b;
    +		var px = next.x;
    +		var py = next.y;
    +		
    +		// Calculates straight line equation through
    +		// point and ellipse center y = d * x + h
    +		var dx = parseInt(px - cx);
    +		var dy = parseInt(py - cy);
    +		
    +		if (dx == 0 && dy != 0)
    +		{
    +			return new mxPoint(cx, cy + b * dy / Math.abs(dy));
    +		}
    +		else if (dx == 0 && dy == 0)
    +		{
    +			return new mxPoint(px, py);
    +		}
    +
    +		if (orthogonal)
    +		{
    +			if (py >= y && py <= y + bounds.height)
    +			{
    +				var ty = py - cy;
    +				var tx = Math.sqrt(a*a*(1-(ty*ty)/(b*b))) || 0;
    +				
    +				if (px <= x)
    +				{
    +					tx = -tx;
    +				}
    +				
    +				return new mxPoint(cx+tx, py);
    +			}
    +			
    +			if (px >= x && px <= x + bounds.width)
    +			{
    +				var tx = px - cx;
    +				var ty = Math.sqrt(b*b*(1-(tx*tx)/(a*a))) || 0;
    +				
    +				if (py <= y)
    +				{
    +					ty = -ty;	
    +				}
    +				
    +				return new mxPoint(px, cy+ty);
    +			}
    +		}
    +		
    +		// Calculates intersection
    +		var d = dy / dx;
    +		var h = cy - d * cx;
    +		var e = a * a * d * d + b * b;
    +		var f = -2 * cx * e;
    +		var g = a * a * d * d * cx * cx +
    +				b * b * cx * cx -
    +				a * a * b * b;
    +		var det = Math.sqrt(f * f - 4 * e * g);
    +		
    +		// Two solutions (perimeter points)
    +		var xout1 = (-f + det) / (2 * e);
    +		var xout2 = (-f - det) / (2 * e);
    +		var yout1 = d * xout1 + h;
    +		var yout2 = d * xout2 + h;
    +		var dist1 = Math.sqrt(Math.pow((xout1 - px), 2)
    +					+ Math.pow((yout1 - py), 2));
    +		var dist2 = Math.sqrt(Math.pow((xout2 - px), 2)
    +					+ Math.pow((yout2 - py), 2));
    +					
    +		// Correct solution
    +		var xout = 0;
    +		var yout = 0;
    +		
    +		if (dist1 < dist2)
    +		{
    +			xout = xout1;
    +			yout = yout1;
    +		}
    +		else
    +		{
    +			xout = xout2;
    +			yout = yout2;
    +		}
    +		
    +		return new mxPoint(xout, yout);
    +	},
    +
    +	/**
    +	 * Function: RhombusPerimeter
    +	 * 
    +	 * Describes a rhombus (aka diamond) perimeter. See <RectanglePerimeter>
    +	 * for a description of the parameters.
    +	 */
    +	RhombusPerimeter: function (bounds, vertex, next, orthogonal)
    +	{
    +		var x = bounds.x;
    +		var y = bounds.y;
    +		var w = bounds.width;
    +		var h = bounds.height;
    +		
    +		var cx = x + w / 2;
    +		var cy = y + h / 2;
    +
    +		var px = next.x;
    +		var py = next.y;
    +
    +		// Special case for intersecting the diamond's corners
    +		if (cx == px)
    +		{
    +			if (cy > py)
    +			{
    +				return new mxPoint(cx, y); // top
    +			}
    +			else
    +			{
    +				return new mxPoint(cx, y + h); // bottom
    +			}
    +		}
    +		else if (cy == py)
    +		{
    +			if (cx > px)
    +			{
    +				return new mxPoint(x, cy); // left
    +			}
    +			else
    +			{
    +				return new mxPoint(x + w, cy); // right
    +			}
    +		}
    +		
    +		var tx = cx;
    +		var ty = cy;
    +		
    +		if (orthogonal)
    +		{
    +			if (px >= x && px <= x + w)
    +			{
    +				tx = px;
    +			}
    +			else if (py >= y && py <= y + h)
    +			{
    +				ty = py;
    +			}
    +		}
    +		
    +		// In which quadrant will the intersection be?
    +		// set the slope and offset of the border line accordingly
    +		if (px < cx)
    +		{
    +			if (py < cy)
    +			{
    +				return mxUtils.intersection(px, py, tx, ty, cx, y, x, cy);
    +			}
    +			else
    +			{
    +				return mxUtils.intersection(px, py, tx, ty, cx, y + h, x, cy);
    +			}
    +		}
    +		else if (py < cy)
    +		{
    +			return mxUtils.intersection(px, py, tx, ty, cx, y, x + w, cy);
    +		}
    +		else
    +		{
    +			return mxUtils.intersection(px, py, tx, ty, cx, y + h, x + w, cy);
    +		}
    +	},
    +	
    +	/**
    +	 * Function: TrianglePerimeter
    +	 * 
    +	 * Describes a triangle perimeter. See <RectanglePerimeter>
    +	 * for a description of the parameters.
    +	 */
    +	TrianglePerimeter: function (bounds, vertex, next, orthogonal)
    +	{
    +		var direction = (vertex != null) ?
    +			vertex.style[mxConstants.STYLE_DIRECTION] : null;
    +		var vertical = direction == mxConstants.DIRECTION_NORTH ||
    +			direction == mxConstants.DIRECTION_SOUTH;
    +
    +		var x = bounds.x;
    +		var y = bounds.y;
    +		var w = bounds.width;
    +		var h = bounds.height;
    +		
    +		var cx = x + w / 2;
    +		var cy = y + h / 2;
    +		
    +		var start = new mxPoint(x, y);
    +		var corner = new mxPoint(x + w, cy);
    +		var end = new mxPoint(x, y + h);
    +		
    +		if (direction == mxConstants.DIRECTION_NORTH)
    +		{
    +			start = end;
    +			corner = new mxPoint(cx, y);
    +			end = new mxPoint(x + w, y + h);
    +		}
    +		else if (direction == mxConstants.DIRECTION_SOUTH)
    +		{
    +			corner = new mxPoint(cx, y + h);
    +			end = new mxPoint(x + w, y);
    +		}
    +		else if (direction == mxConstants.DIRECTION_WEST)
    +		{
    +			start = new mxPoint(x + w, y);
    +			corner = new mxPoint(x, cy);
    +			end = new mxPoint(x + w, y + h);
    +		}
    +
    +		var dx = next.x - cx;
    +		var dy = next.y - cy;
    +
    +		var alpha = (vertical) ? Math.atan2(dx, dy) : Math.atan2(dy, dx);
    +		var t = (vertical) ? Math.atan2(w, h) : Math.atan2(h, w);
    +		
    +		var base = false;
    +		
    +		if (direction == mxConstants.DIRECTION_NORTH ||
    +			direction == mxConstants.DIRECTION_WEST)
    +		{
    +			base = alpha > -t && alpha < t;
    +		}
    +		else
    +		{
    +			base = alpha < -Math.PI + t || alpha > Math.PI - t;	
    +		}
    +
    +		var result = null;			
    +
    +		if (base)
    +		{
    +			if (orthogonal && ((vertical && next.x >= start.x && next.x <= end.x) ||
    +				(!vertical && next.y >= start.y && next.y <= end.y)))
    +			{
    +				if (vertical)
    +				{
    +					result = new mxPoint(next.x, start.y);
    +				}
    +				else
    +				{
    +					result = new mxPoint(start.x, next.y);
    +				}
    +			}
    +			else
    +			{
    +				if (direction == mxConstants.DIRECTION_NORTH)
    +				{
    +					result = new mxPoint(x + w / 2 + h * Math.tan(alpha) / 2,
    +						y + h);
    +				}
    +				else if (direction == mxConstants.DIRECTION_SOUTH)
    +				{
    +					result = new mxPoint(x + w / 2 - h * Math.tan(alpha) / 2,
    +						y);
    +				}
    +				else if (direction == mxConstants.DIRECTION_WEST)
    +				{
    +					result = new mxPoint(x + w, y + h / 2 +
    +						w * Math.tan(alpha) / 2);
    +				}
    +				else
    +				{
    +					result = new mxPoint(x, y + h / 2 -
    +						w * Math.tan(alpha) / 2);
    +				}
    +			}
    +		}
    +		else
    +		{
    +			if (orthogonal)
    +			{
    +				var pt = new mxPoint(cx, cy);
    +		
    +				if (next.y >= y && next.y <= y + h)
    +				{
    +					pt.x = (vertical) ? cx : (
    +						(direction == mxConstants.DIRECTION_WEST) ?
    +							x + w : x);
    +					pt.y = next.y;
    +				}
    +				else if (next.x >= x && next.x <= x + w)
    +				{
    +					pt.x = next.x;
    +					pt.y = (!vertical) ? cy : (
    +						(direction == mxConstants.DIRECTION_NORTH) ?
    +							y + h : y);
    +				}
    +				
    +				// Compute angle
    +				dx = next.x - pt.x;
    +				dy = next.y - pt.y;
    +				
    +				cx = pt.x;
    +				cy = pt.y;
    +			}
    +
    +			if ((vertical && next.x <= x + w / 2) ||
    +				(!vertical && next.y <= y + h / 2))
    +			{
    +				result = mxUtils.intersection(next.x, next.y, cx, cy,
    +					start.x, start.y, corner.x, corner.y);
    +			}
    +			else
    +			{
    +				result = mxUtils.intersection(next.x, next.y, cx, cy,
    +					corner.x, corner.y, end.x, end.y);
    +			}
    +		}
    +		
    +		if (result == null)
    +		{
    +			result = new mxPoint(cx, cy);
    +		}
    +		
    +		return result;
    +	}
    +};
    diff --git a/javascript/src/js/view/mxPrintPreview.js b/javascript/src/js/view/mxPrintPreview.js
    new file mode 100644
    index 000000000..24a65e6e3
    --- /dev/null
    +++ b/javascript/src/js/view/mxPrintPreview.js
    @@ -0,0 +1,801 @@
    +/**
    + * $Id: mxPrintPreview.js,v 1.61 2012-05-15 14:12:40 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxPrintPreview
    + * 
    + * Implements printing of a diagram across multiple pages. The following opens
    + * a print preview for an existing graph:
    + * 
    + * (code)
    + * var preview = new mxPrintPreview(graph);
    + * preview.open();
    + * (end)
    + * 
    + * Use <mxUtils.getScaleForPageCount> as follows in order to print the graph
    + * across a given number of pages:
    + * 
    + * (code)
    + * var pageCount = mxUtils.prompt('Enter page count', '1');
    + * 
    + * if (pageCount != null)
    + * {
    + *   var scale = mxUtils.getScaleForPageCount(pageCount, graph);
    + *   var preview = new mxPrintPreview(graph, scale);
    + *   preview.open();
    + * }
    + * (end)
    + * 
    + * Headers:
    + * 
    + * Apart from setting the title argument in the mxPrintPreview constructor you
    + * can override <renderPage> as follows to add a header to any page:
    + * 
    + * (code)
    + * var oldRenderPage = mxPrintPreview.prototype.renderPage;
    + * mxPrintPreview.prototype.renderPage = function(w, h, dx, dy, scale, pageNumber)
    + * {
    + *   var div = oldRenderPage.apply(this, arguments);
    + *   
    + *   var header = document.createElement('div');
    + *   header.style.position = 'absolute';
    + *   header.style.top = '0px';
    + *   header.style.width = '100%';
    + *   header.style.textAlign = 'right';
    + *   mxUtils.write(header, 'Your header here - Page ' + pageNumber + ' / ' + this.pageCount);
    + *   div.firstChild.appendChild(header);
    + *   
    + *   return div;
    + * };
    + * (end)
    + * 
    + * Page Format:
    + * 
    + * For landscape printing, use <mxConstants.PAGE_FORMAT_A4_LANDSCAPE> as
    + * the pageFormat in <mxUtils.getScaleForPageCount> and <mxPrintPreview>.
    + * Keep in mind that one can not set the defaults for the print dialog
    + * of the operating system from JavaScript so the user must manually choose
    + * a page format that matches this setting.
    + * 
    + * You can try passing the following CSS directive to <open> to set the
    + * page format in the print dialog to landscape. However, this CSS
    + * directive seems to be ignored in most major browsers, including IE.
    + * 
    + * (code)
    + * @page {
    + *   size: landscape;
    + * }
    + * (end)
    + * 
    + * Note that the print preview behaves differently in IE when used from the
    + * filesystem or via HTTP so printing should always be tested via HTTP.
    + * 
    + * If you are using a DOCTYPE in the source page you can override <getDoctype>
    + * and provide the same DOCTYPE for the print preview if required. Here is
    + * an example for IE8 standards mode.
    + * 
    + * (code)
    + * var preview = new mxPrintPreview(graph);
    + * preview.getDoctype = function()
    + * {
    + *   return '<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=8" ><![endif]-->';
    + * };
    + * preview.open();
    + * (end)
    + * 
    + * Constructor: mxPrintPreview
    + *
    + * Constructs a new print preview for the given parameters.
    + * 
    + * Parameters:
    + * 
    + * graph - <mxGraph> to be previewed.
    + * scale - Optional scale of the output. Default is 1 / <mxGraph.pageScale>.
    + * border - Border in pixels along each side of every page. Note that the
    + * actual print function in the browser will add another border for
    + * printing.
    + * pageFormat - <mxRectangle> that specifies the page format (in pixels).
    + * This should match the page format of the printer. Default uses the
    + * <mxGraph.pageFormat> of the given graph.
    + * x0 - Optional left offset of the output. Default is 0.
    + * y0 - Optional top offset of the output. Default is 0.
    + * borderColor - Optional color of the page border. Default is no border.
    + * Note that a border is sometimes useful to highlight the printed page
    + * border in the print preview of the browser.
    + * title - Optional string that is used for the window title. Default
    + * is 'Printer-friendly version'.
    + * pageSelector - Optional boolean that specifies if the page selector
    + * should appear in the window with the print preview. Default is true.
    + */
    +function mxPrintPreview(graph, scale, pageFormat, border, x0, y0, borderColor, title, pageSelector)
    +{
    +	this.graph = graph;
    +	this.scale = (scale != null) ? scale : 1 / graph.pageScale;
    +	this.border = (border != null) ? border : 0;
    +	this.pageFormat = (pageFormat != null) ? pageFormat : graph.pageFormat;
    +	this.title = (title != null) ? title : 'Printer-friendly version';
    +	this.x0 = (x0 != null) ? x0 : 0;
    +	this.y0 = (y0 != null) ? y0 : 0;
    +	this.borderColor = borderColor;
    +	this.pageSelector = (pageSelector != null) ? pageSelector : true;
    +};
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the <mxGraph> that should be previewed.
    + */
    +mxPrintPreview.prototype.graph = null;
    +
    +/**
    + * Variable: pageFormat
    + *
    + * Holds the <mxRectangle> that defines the page format.
    + */
    +mxPrintPreview.prototype.pageFormat = null;
    +
    +/**
    + * Variable: scale
    + * 
    + * Holds the scale of the print preview.
    + */
    +mxPrintPreview.prototype.scale = null;
    +
    +/**
    + * Variable: border
    + * 
    + * The border inset around each side of every page in the preview. This is set
    + * to 0 if autoOrigin is false.
    + */
    +mxPrintPreview.prototype.border = 0;
    +
    +/**
    +/**
    + * Variable: x0
    + * 
    + * Holds the horizontal offset of the output.
    + */
    +mxPrintPreview.prototype.x0 = 0;
    +
    +/**
    + * Variable: y0
    + *
    + * Holds the vertical offset of the output.
    + */
    +mxPrintPreview.prototype.y0 = 0;
    +
    +/**
    + * Variable: autoOrigin
    + * 
    + * Specifies if the origin should be automatically computed based on the top,
    + * left corner of the actual diagram contents. If this is set to false then the
    + * values for <x0> and <y0> will be overridden in <open>. Default is true.
    + */
    +mxPrintPreview.prototype.autoOrigin = true;
    +
    +/**
    + * Variable: printOverlays
    + * 
    + * Specifies if overlays should be printed. Default is false.
    + */
    +mxPrintPreview.prototype.printOverlays = false;
    +
    +/**
    + * Variable: borderColor
    + * 
    + * Holds the color value for the page border.
    + */
    +mxPrintPreview.prototype.borderColor = null;
    +
    +/**
    + * Variable: title
    + * 
    + * Holds the title of the preview window.
    + */
    +mxPrintPreview.prototype.title = null;
    +
    +/**
    + * Variable: pageSelector
    + * 
    + * Boolean that specifies if the page selector should be
    + * displayed. Default is true.
    + */
    +mxPrintPreview.prototype.pageSelector = null;
    +
    +/**
    + * Variable: wnd
    + * 
    + * Reference to the preview window.
    + */
    +mxPrintPreview.prototype.wnd = null;
    +
    +/**
    + * Variable: pageCount
    + * 
    + * Holds the actual number of pages in the preview.
    + */
    +mxPrintPreview.prototype.pageCount = 0;
    +
    +/**
    + * Function: getWindow
    + * 
    + * Returns <wnd>.
    + */
    +mxPrintPreview.prototype.getWindow = function()
    +{
    +	return this.wnd;
    +};
    +
    +/**
    + * Function: getDocType
    + * 
    + * Returns the string that should go before the HTML tag in the print preview
    + * page. This implementation returns an empty string.
    + */
    +mxPrintPreview.prototype.getDoctype = function()
    +{
    +	return '';
    +};
    +
    +/**
    + * Function: open
    + * 
    + * Shows the print preview window. The window is created here if it does
    + * not exist.
    + * 
    + * Parameters:
    + * 
    + * css - Optional CSS string to be used in the new page's head section.
    + */
    +mxPrintPreview.prototype.open = function(css)
    +{
    +	// Closing the window while the page is being rendered may cause an
    +	// exception in IE. This and any other exceptions are simply ignored.
    +	var previousInitializeOverlay = this.graph.cellRenderer.initializeOverlay;
    +	var div = null;
    +
    +	try
    +	{
    +		// Temporarily overrides the method to redirect rendering of overlays
    +		// to the draw pane so that they are visible in the printout
    +		if (this.printOverlays)
    +		{
    +			this.graph.cellRenderer.initializeOverlay = function(state, overlay)
    +			{
    +				overlay.init(state.view.getDrawPane());
    +			};
    +		}
    +		
    +		if (this.wnd == null)
    +		{
    +			this.wnd = window.open();
    +			var doc = this.wnd.document;
    +			var dt = this.getDoctype();
    +			
    +			if (dt != null && dt.length > 0)
    +			{
    +				doc.writeln(dt);
    +			}
    +			
    +			doc.writeln('<html>');
    +			doc.writeln('<head>');
    +			this.writeHead(doc, css);
    +			doc.writeln('</head>');
    +			doc.writeln('<body class="mxPage">');
    +	
    +			// Adds all required stylesheets and namespaces
    +			mxClient.link('stylesheet', mxClient.basePath + '/css/common.css', doc);
    +	
    +			if (mxClient.IS_IE && document.documentMode != 9)
    +			{
    +				doc.namespaces.add('v', 'urn:schemas-microsoft-com:vml');
    +				doc.namespaces.add('o', 'urn:schemas-microsoft-com:office:office');
    +		        var ss = doc.createStyleSheet();
    +		        ss.cssText = 'v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}';
    +		        mxClient.link('stylesheet', mxClient.basePath + '/css/explorer.css', doc);
    +			}
    +
    +			// Computes the horizontal and vertical page count
    +			var bounds = this.graph.getGraphBounds().clone();
    +			var currentScale = this.graph.getView().getScale();
    +			var sc = currentScale / this.scale;
    +			var tr = this.graph.getView().getTranslate();
    +			
    +			// Uses the absolute origin with no offset for all printing
    +			if (!this.autoOrigin)
    +			{
    +				this.x0 = -tr.x * this.scale;
    +				this.y0 = -tr.y * this.scale;
    +				bounds.width += bounds.x;
    +				bounds.height += bounds.y;
    +				bounds.x = 0;
    +				bounds.y = 0;
    +				this.border = 0;
    +			}
    +
    +			// Compute the unscaled, untranslated bounds to find
    +			// the number of vertical and horizontal pages
    +			bounds.width /= sc;
    +			bounds.height /= sc;
    +			
    +			// Store the available page area
    +			var availableWidth = this.pageFormat.width - (this.border * 2);
    +			var availableHeight = this.pageFormat.height - (this.border * 2);
    +		
    +			var hpages = Math.max(1, Math.ceil((bounds.width + this.x0) / availableWidth));
    +			var vpages = Math.max(1, Math.ceil((bounds.height + this.y0) / availableHeight));
    +			this.pageCount = hpages * vpages;
    +			
    +			var writePageSelector = mxUtils.bind(this, function()
    +			{
    +				if (this.pageSelector && (vpages > 1 || hpages > 1))
    +				{
    +					var table = this.createPageSelector(vpages, hpages);
    +					doc.body.appendChild(table);
    +					
    +					// Workaround for position: fixed which isn't working in IE
    +					if (mxClient.IS_IE)
    +					{
    +						table.style.position = 'absolute';
    +						
    +						var update = function()
    +						{
    +							table.style.top = (doc.body.scrollTop + 10) + 'px';
    +						};
    +						
    +						mxEvent.addListener(this.wnd, 'scroll', function(evt)
    +						{
    +							update();
    +						});
    +						
    +						mxEvent.addListener(this.wnd, 'resize', function(evt)
    +						{
    +							update();
    +						});
    +					}
    +				}
    +			});
    +			
    +			// Stores pages for later retrieval
    +			var pages = null;
    +
    +			// Workaround for aspect of image shapes updated asynchronously
    +			// in VML so we need to fetch the markup of the DIV containing
    +			// the image after the udpate of the style of the DOM node.
    +			// LATER: Allow document for display markup to be customized.
    +			if (mxClient.IS_IE && document.documentMode != 9)
    +			{
    +				pages = [];
    +	
    +				// Overrides asynchronous loading of images for fetching HTML markup
    +				var waitCounter = 0;
    +				var isDone = false;
    +
    +				var mxImageShapeScheduleUpdateAspect = mxImageShape.prototype.scheduleUpdateAspect;
    +				var mxImageShapeUpdateAspect = mxImageShape.prototype.updateAspect;
    +				
    +				var writePages = function()
    +				{
    +					if (isDone && waitCounter == 0)
    +					{
    +						// Restores previous implementations
    +						mxImageShape.prototype.scheduleUpdateAspect = mxImageShapeScheduleUpdateAspect;
    +						mxImageShape.prototype.updateAspect = mxImageShapeUpdateAspect;
    +						
    +						var markup = '';
    +						
    +						for (var i = 0; i < pages.length; i++)
    +						{
    +							markup += pages[i].outerHTML;
    +							pages[i].parentNode.removeChild(pages[i]);
    +							
    +							if (i < pages.length - 1)
    +							{
    +								markup += '<hr/>';
    +							}
    +						}
    +						
    +						doc.body.innerHTML = markup;
    +						writePageSelector();
    +					}
    +				};
    +				
    +				// Overrides functions to implement wait counter
    +				mxImageShape.prototype.scheduleUpdateAspect = function()
    +				{
    +					waitCounter++;
    +					mxImageShapeScheduleUpdateAspect.apply(this, arguments);
    +				};
    +				
    +				// Overrides functions to implement wait counter
    +				mxImageShape.prototype.updateAspect = function()
    +				{
    +					mxImageShapeUpdateAspect.apply(this, arguments);
    +					waitCounter--;
    +					writePages();
    +				};
    +			}
    +			
    +			// Appends each page to the page output for printing, making
    +			// sure there will be a page break after each page (ie. div)
    +			for (var i = 0; i < vpages; i++)
    +			{
    +				var dy = i * availableHeight / this.scale - this.y0 / this.scale +
    +						(bounds.y - tr.y * currentScale) / currentScale;
    +				
    +				for (var j = 0; j < hpages; j++)
    +				{
    +					if (this.wnd == null)
    +					{
    +						return null;
    +					}
    +					
    +					var dx = j * availableWidth / this.scale - this.x0 / this.scale +
    +							(bounds.x - tr.x * currentScale) / currentScale;
    +					var pageNum = i * hpages + j + 1;
    +					
    +					div = this.renderPage(this.pageFormat.width, this.pageFormat.height,
    +						-dx, -dy, this.scale, pageNum);
    +					
    +					// Gives the page a unique ID for later accessing the page
    +					div.setAttribute('id', 'mxPage-'+pageNum);
    +	
    +					// Border of the DIV (aka page) inside the document
    +					if (this.borderColor != null)
    +					{
    +						div.style.borderColor = this.borderColor;
    +						div.style.borderStyle = 'solid';
    +						div.style.borderWidth = '1px';
    +					}
    +					
    +					// Needs to be assigned directly because IE doesn't support
    +					// child selectors, eg. body > div { background: white; }
    +					div.style.background = 'white';
    +					
    +					if (i < vpages - 1 || j < hpages - 1)
    +					{
    +						div.style.pageBreakAfter = 'always';
    +					}
    +	
    +					// NOTE: We are dealing with cross-window DOM here, which
    +					// is a problem in IE, so we copy the HTML markup instead.
    +					// The underlying problem is that the graph display markup
    +					// creation (in mxShape, mxGraphView) is hardwired to using
    +					// document.createElement and hence we must use document
    +					// to create the complete page and then copy it over to the
    +					// new window.document. This can be fixed later by using the
    +					// ownerDocument of the container in mxShape and mxGraphView.
    +					if (mxClient.IS_IE)
    +					{
    +						// For some obscure reason, removing the DIV from the
    +						// parent before fetching its outerHTML has missing
    +						// fillcolor properties and fill children, so the div
    +						// must be removed afterwards to keep the fillcolors.
    +						// For delayed output we remote the DIV from the
    +						// original document when we write out all pages.
    +						doc.writeln(div.outerHTML);
    +						
    +						if (pages != null)
    +						{
    +							pages.push(div);
    +						}
    +						else
    +						{
    +							div.parentNode.removeChild(div);
    +						}
    +					}
    +					else
    +					{
    +						div.parentNode.removeChild(div);
    +						doc.body.appendChild(div);
    +					}
    +	
    +					if (i < vpages - 1 || j < hpages - 1)
    +					{
    +						var hr = doc.createElement('hr');
    +						hr.className = 'mxPageBreak';
    +						doc.body.appendChild(hr);
    +					}
    +				}
    +			}
    +
    +			doc.writeln('</body>');
    +			doc.writeln('</html>');
    +			doc.close();
    +			
    +			// Marks the printing complete for async handling
    +			if (pages != null)
    +			{
    +				isDone = true;
    +				writePages();
    +			}
    +			else
    +			{
    +				writePageSelector();
    +			}
    +			
    +			// Removes all event handlers in the print output
    +			mxEvent.release(doc.body);
    +		}
    +		
    +		this.wnd.focus();
    +	}
    +	catch (e)
    +	{
    +		// Removes the DIV from the document in case of an error
    +		if (div != null && div.parentNode != null)
    +		{
    +			div.parentNode.removeChild(div);
    +		}
    +	}
    +	finally
    +	{
    +		this.graph.cellRenderer.initializeOverlay = previousInitializeOverlay;
    +	}
    +
    +	return this.wnd;
    +};
    +
    +/**
    + * Function: writeHead
    + * 
    + * Writes the HEAD section into the given document, without the opening
    + * and closing HEAD tags.
    + */
    +mxPrintPreview.prototype.writeHead = function(doc, css)
    +{
    +	if (this.title != null)
    +	{
    +		doc.writeln('<title>' + this.title + '</title>');
    +	}
    +
    +	// Makes sure no horizontal rulers are printed
    +	doc.writeln('<style type="text/css">');
    +	doc.writeln('@media print {');
    +	doc.writeln('  table.mxPageSelector { display: none; }');
    +	doc.writeln('  hr.mxPageBreak { display: none; }');
    +	doc.writeln('}');
    +	doc.writeln('@media screen {');
    +	
    +	// NOTE: position: fixed is not supported in IE, so the page selector
    +	// position (absolute) needs to be updated in IE (see below)
    +	doc.writeln('  table.mxPageSelector { position: fixed; right: 10px; top: 10px;' +
    +			'font-family: Arial; font-size:10pt; border: solid 1px darkgray;' +
    +			'background: white; border-collapse:collapse; }');
    +	doc.writeln('  table.mxPageSelector td { border: solid 1px gray; padding:4px; }');
    +	doc.writeln('  body.mxPage { background: gray; }');
    +	doc.writeln('}');
    +	
    +	if (css != null)
    +	{
    +		doc.writeln(css);
    +	}
    +	
    +	doc.writeln('</style>');
    +};
    +
    +/**
    + * Function: createPageSelector
    + * 
    + * Creates the page selector table.
    + */
    +mxPrintPreview.prototype.createPageSelector = function(vpages, hpages)
    +{
    +	var doc = this.wnd.document;
    +	var table = doc.createElement('table');
    +	table.className = 'mxPageSelector';
    +	table.setAttribute('border', '0');
    +
    +	var tbody = doc.createElement('tbody');
    +	
    +	for (var i = 0; i < vpages; i++)
    +	{
    +		var row = doc.createElement('tr');
    +		
    +		for (var j = 0; j < hpages; j++)
    +		{
    +			var pageNum = i * hpages + j + 1;
    +			var cell = doc.createElement('td');
    +			
    +			// Needs anchor for all browers to work without JavaScript
    +			// LATER: Does not work in Firefox because the generated document
    +			// has the URL of the opening document, the anchor is appended
    +			// to that URL and the full URL is loaded on click.
    +			if (!mxClient.IS_NS || mxClient.IS_SF || mxClient.IS_GC)
    +			{
    +				var a = doc.createElement('a');
    +				a.setAttribute('href', '#mxPage-' + pageNum);
    +				mxUtils.write(a, pageNum, doc);
    +				cell.appendChild(a);
    +			}
    +			else
    +			{
    +				mxUtils.write(cell, pageNum, doc);
    +			}
    +
    +			row.appendChild(cell);
    +		}
    +		
    +		tbody.appendChild(row);
    +	}
    +	
    +	table.appendChild(tbody);
    +	
    +	return table;
    +};
    +
    +/**
    + * Function: renderPage
    + * 
    + * Creates a DIV that prints a single page of the given
    + * graph using the given scale and returns the DIV that
    + * represents the page.
    + * 
    + * Parameters:
    + * 
    + * w - Width of the page in pixels.
    + * h - Height of the page in pixels.
    + * dx - Horizontal translation for the diagram.
    + * dy - Vertical translation for the diagram.
    + * scale - Scale for the diagram.
    + * pageNumber - Number of the page to be rendered.
    + */
    +mxPrintPreview.prototype.renderPage = function(w, h, dx, dy, scale, pageNumber)
    +{
    +	var div = document.createElement('div');
    +	
    +	try
    +	{
    +		div.style.width = w + 'px';
    +		div.style.height = h + 'px';
    +		div.style.overflow = 'hidden';
    +		div.style.pageBreakInside = 'avoid';
    +		
    +		var innerDiv = document.createElement('div');
    +		innerDiv.style.top = this.border + 'px';
    +		innerDiv.style.left = this.border + 'px';
    +		innerDiv.style.width = (w - 2 * this.border) + 'px';
    +		innerDiv.style.height = (h - 2 * this.border) + 'px';
    +		innerDiv.style.overflow = 'hidden';
    +
    +		if (this.graph.dialect == mxConstants.DIALECT_VML)
    +		{
    +			innerDiv.style.position = 'absolute';
    +		}
    +		
    +		div.appendChild(innerDiv);
    +		document.body.appendChild(div);
    +		var view = this.graph.getView();
    +		
    +		var previousContainer = this.graph.container;
    +		this.graph.container = innerDiv;
    +		
    +		var canvas = view.getCanvas();
    +		var backgroundPane = view.getBackgroundPane();
    +		var drawPane = view.getDrawPane();
    +		var overlayPane = view.getOverlayPane();
    +	
    +		if (this.graph.dialect == mxConstants.DIALECT_SVG)
    +		{
    +			view.createSvg();
    +		}
    +		else if (this.graph.dialect == mxConstants.DIALECT_VML)
    +		{
    +			view.createVml();
    +		}
    +		else
    +		{
    +			view.createHtml();
    +		}
    +		
    +		// Disables events on the view
    +		var eventsEnabled = view.isEventsEnabled();
    +		view.setEventsEnabled(false);
    +		
    +		// Disables the graph to avoid cursors
    +		var graphEnabled = this.graph.isEnabled();
    +		this.graph.setEnabled(false);
    +	
    +		// Resets the translation
    +		var translate = view.getTranslate();
    +		view.translate = new mxPoint(dx, dy);
    +		
    +		var temp = null;
    +		
    +		try
    +		{
    +			// Creates the temporary cell states in the view and
    +			// draws them onto the temporary DOM nodes in the view
    +			var model = this.graph.getModel();
    +			var cells = [model.getRoot()];
    +			temp = new mxTemporaryCellStates(view, scale, cells);
    +		}
    +		finally
    +		{
    +			// Removes overlay pane with selection handles
    +			// controls and icons from the print output
    +			if (mxClient.IS_IE)
    +			{
    +				view.overlayPane.innerHTML = '';
    +			}
    +			else
    +			{
    +				// Removes everything but the SVG node
    +				var tmp = innerDiv.firstChild;
    +
    +				while (tmp != null)
    +				{
    +					var next = tmp.nextSibling;
    +					var name = tmp.nodeName.toLowerCase();
    +
    +					// Note: Width and heigh are required in FF 11
    +					if (name == 'svg')
    +					{
    +						tmp.setAttribute('width', parseInt(innerDiv.style.width));
    +						tmp.setAttribute('height', parseInt(innerDiv.style.height));
    +					}
    +					// Tries to fetch all text labels and only text labels
    +					else if (tmp.style.cursor != 'default' && name != 'table')
    +					{
    +						tmp.parentNode.removeChild(tmp);
    +					}
    +					
    +					tmp = next;
    +				}
    +			}
    +			
    +			// Completely removes the overlay pane to remove more handles
    +			view.overlayPane.parentNode.removeChild(view.overlayPane);
    +	
    +			// Restores the state of the view
    +			this.graph.setEnabled(graphEnabled);
    +			this.graph.container = previousContainer;
    +			view.canvas = canvas;
    +			view.backgroundPane = backgroundPane;
    +			view.drawPane = drawPane;
    +			view.overlayPane = overlayPane;
    +			view.translate = translate;
    +			temp.destroy();
    +			view.setEventsEnabled(eventsEnabled);
    +		}
    +	}
    +	catch (e)
    +	{
    +		div.parentNode.removeChild(div);
    +		div = null;
    +		
    +		throw e;
    +	}
    +	
    +	return div;
    +};
    +
    +/**
    + * Function: print
    + * 
    + * Opens the print preview and shows the print dialog.
    + */
    +mxPrintPreview.prototype.print = function()
    +{
    +	var wnd = this.open();
    +	
    +	if (wnd != null)
    +	{
    +		wnd.print();
    +	}
    +};
    +
    +/**
    + * Function: close
    + * 
    + * Closes the print preview window.
    + */
    +mxPrintPreview.prototype.close = function()
    +{
    +	if (this.wnd != null)
    +	{
    +		this.wnd.close();
    +		this.wnd = null;
    +	}
    +};
    diff --git a/javascript/src/js/view/mxSpaceManager.js b/javascript/src/js/view/mxSpaceManager.js
    new file mode 100644
    index 000000000..2a2dd1184
    --- /dev/null
    +++ b/javascript/src/js/view/mxSpaceManager.js
    @@ -0,0 +1,460 @@
    +/**
    + * $Id: mxSpaceManager.js,v 1.9 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxSpaceManager
    + * 
    + * In charge of moving cells after a resize.
    + * 
    + * Constructor: mxSpaceManager
    + *
    + * Constructs a new automatic layout for the given graph.
    + *
    + * Arguments:
    + * 
    + * graph - Reference to the enclosing graph. 
    + */
    +function mxSpaceManager(graph, shiftRightwards, shiftDownwards, extendParents)
    +{
    +	this.resizeHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		if (this.isEnabled())
    +		{
    +			this.cellsResized(evt.getProperty('cells'));
    +		}
    +	});
    +
    +	this.foldHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		if (this.isEnabled())
    +		{
    +			this.cellsResized(evt.getProperty('cells'));
    +		}
    +	});
    +	
    +	this.shiftRightwards = (shiftRightwards != null) ? shiftRightwards : true;
    +	this.shiftDownwards = (shiftDownwards != null) ? shiftDownwards : true;
    +	this.extendParents = (extendParents != null) ? extendParents : true;
    +	this.setGraph(graph);
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxSpaceManager.prototype = new mxEventSource();
    +mxSpaceManager.prototype.constructor = mxSpaceManager;
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxSpaceManager.prototype.graph = null;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if event handling is enabled. Default is true.
    + */
    +mxSpaceManager.prototype.enabled = true;
    +
    +/**
    + * Variable: shiftRightwards
    + * 
    + * Specifies if event handling is enabled. Default is true.
    + */
    +mxSpaceManager.prototype.shiftRightwards = true;
    +
    +/**
    + * Variable: shiftDownwards
    + * 
    + * Specifies if event handling is enabled. Default is true.
    + */
    +mxSpaceManager.prototype.shiftDownwards = true;
    +
    +/**
    + * Variable: extendParents
    + * 
    + * Specifies if event handling is enabled. Default is true.
    + */
    +mxSpaceManager.prototype.extendParents = true;
    +
    +/**
    + * Variable: resizeHandler
    + * 
    + * Holds the function that handles the move event.
    + */
    +mxSpaceManager.prototype.resizeHandler = null;
    +
    +/**
    + * Variable: foldHandler
    + * 
    + * Holds the function that handles the fold event.
    + */
    +mxSpaceManager.prototype.foldHandler = null;
    +
    +/**
    + * Function: isCellIgnored
    + * 
    + * Sets the graph that the layouts operate on.
    + */
    +mxSpaceManager.prototype.isCellIgnored = function(cell)
    +{
    +	return !this.getGraph().getModel().isVertex(cell);
    +};
    +
    +/**
    + * Function: isCellShiftable
    + * 
    + * Sets the graph that the layouts operate on.
    + */
    +mxSpaceManager.prototype.isCellShiftable = function(cell)
    +{
    +	return this.getGraph().getModel().isVertex(cell) &&
    +		this.getGraph().isCellMovable(cell);
    +};
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxSpaceManager.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxSpaceManager.prototype.setEnabled = function(value)
    +{
    +	this.enabled = value;
    +};
    +
    +/**
    + * Function: isShiftRightwards
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxSpaceManager.prototype.isShiftRightwards = function()
    +{
    +	return this.shiftRightwards;
    +};
    +
    +/**
    + * Function: setShiftRightwards
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxSpaceManager.prototype.setShiftRightwards = function(value)
    +{
    +	this.shiftRightwards = value;
    +};
    +
    +/**
    + * Function: isShiftDownwards
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxSpaceManager.prototype.isShiftDownwards = function()
    +{
    +	return this.shiftDownwards;
    +};
    +
    +/**
    + * Function: setShiftDownwards
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxSpaceManager.prototype.setShiftDownwards = function(value)
    +{
    +	this.shiftDownwards = value;
    +};
    +
    +/**
    + * Function: isExtendParents
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxSpaceManager.prototype.isExtendParents = function()
    +{
    +	return this.extendParents;
    +};
    +
    +/**
    + * Function: setShiftDownwards
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxSpaceManager.prototype.setExtendParents = function(value)
    +{
    +	this.extendParents = value;
    +};
    +
    +/**
    + * Function: getGraph
    + * 
    + * Returns the graph that this layout operates on.
    + */
    +mxSpaceManager.prototype.getGraph = function()
    +{
    +	return this.graph;
    +};
    +
    +/**
    + * Function: setGraph
    + * 
    + * Sets the graph that the layouts operate on.
    + */
    +mxSpaceManager.prototype.setGraph = function(graph)
    +{
    +	if (this.graph != null)
    +	{
    +		this.graph.removeListener(this.resizeHandler);
    +		this.graph.removeListener(this.foldHandler);
    +	}
    +	
    +	this.graph = graph;
    +	
    +	if (this.graph != null)
    +	{
    +		this.graph.addListener(mxEvent.RESIZE_CELLS, this.resizeHandler);
    +		this.graph.addListener(mxEvent.FOLD_CELLS, this.foldHandler);
    +	}
    +};
    +
    +/**
    + * Function: cellsResized
    + * 
    + * Called from <moveCellsIntoParent> to invoke the <move> hook in the
    + * automatic layout of each modified cell's parent. The event is used to
    + * define the x- and y-coordinates passed to the move function.
    + * 
    + * Parameters:
    + * 
    + * cell - Array of <mxCells> that have been resized.
    + */
    +mxSpaceManager.prototype.cellsResized = function(cells)
    +{
    +	if (cells != null)
    +	{
    +		var model = this.graph.getModel();
    +		
    +		// Raising the update level should not be required
    +		// since only one call is made below
    +		model.beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				if (!this.isCellIgnored(cells[i]))
    +				{
    +					this.cellResized(cells[i]);
    +					break;
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: cellResized
    + * 
    + * Called from <moveCellsIntoParent> to invoke the <move> hook in the
    + * automatic layout of each modified cell's parent. The event is used to
    + * define the x- and y-coordinates passed to the move function.
    + * 
    + * Parameters:
    + * 
    + * cell - <mxCell> that has been resized.
    + */
    +mxSpaceManager.prototype.cellResized = function(cell)
    +{
    +	var graph = this.getGraph();
    +	var view = graph.getView();
    +	var model = graph.getModel();
    +	
    +	var state = view.getState(cell);
    +	var pstate = view.getState(model.getParent(cell));
    +
    +	if (state != null &&
    +		pstate != null)
    +	{
    +		var cells = this.getCellsToShift(state);
    +		var geo = model.getGeometry(cell);
    +		
    +		if (cells != null &&
    +			geo != null)
    +		{
    +			var tr = view.translate;
    +			var scale = view.scale;
    +			
    +			var x0 = state.x - pstate.origin.x - tr.x * scale;
    +			var y0 = state.y - pstate.origin.y - tr.y * scale;
    +			var right = state.x + state.width;
    +			var bottom = state.y + state.height;
    +			
    +			var dx = state.width - geo.width * scale + x0 - geo.x * scale;
    +			var dy = state.height - geo.height * scale + y0 - geo.y * scale;
    +				
    +			var fx = 1 - geo.width * scale / state.width;
    +			var fy = 1 - geo.height * scale / state.height;
    +			
    +			model.beginUpdate();
    +			try
    +			{
    +				for (var i = 0; i < cells.length; i++)
    +				{
    +					if (cells[i] != cell &&
    +						this.isCellShiftable(cells[i]))
    +					{
    +						this.shiftCell(cells[i], dx, dy, x0, y0, right, bottom, fx, fy,
    +								this.isExtendParents() &&
    +								graph.isExtendParent(cells[i]));
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: shiftCell
    + * 
    + * Called from <moveCellsIntoParent> to invoke the <move> hook in the
    + * automatic layout of each modified cell's parent. The event is used to
    + * define the x- and y-coordinates passed to the move function.
    + * 
    + * Parameters:
    + * 
    + * cell - Array of <mxCells> that have been moved.
    + * evt - Mouse event that represents the mousedown.
    + */
    +mxSpaceManager.prototype.shiftCell = function(cell, dx, dy, Ox0, y0, right,
    +		bottom, fx, fy, extendParent)
    +{
    +	var graph = this.getGraph();
    +	var state = graph.getView().getState(cell);
    +	
    +	if (state != null)
    +	{
    +		var model = graph.getModel();
    +		var geo = model.getGeometry(cell);
    +		
    +		if (geo != null)
    +		{
    +			model.beginUpdate();
    +			try
    +			{
    +				if (this.isShiftRightwards())
    +				{
    +					if (state.x >= right)
    +					{
    +						geo = geo.clone();
    +						geo.translate(-dx, 0);
    +					}
    +					else
    +					{
    +						var tmpDx = Math.max(0, state.x - x0);
    +						geo = geo.clone();
    +						geo.translate(-fx * tmpDx, 0);
    +					}
    +				}
    +				
    +				if (this.isShiftDownwards())
    +				{
    +					if (state.y >= bottom)
    +					{
    +						geo = geo.clone();
    +						geo.translate(0, -dy);
    +					}
    +					else
    +					{
    +						var tmpDy = Math.max(0, state.y - y0);
    +						geo = geo.clone();
    +						geo.translate(0, -fy * tmpDy);
    +					}
    +				}
    +				
    +				if (geo != model.getGeometry(cell))
    +				{
    +					model.setGeometry(cell, geo);
    +					
    +					// Parent size might need to be updated if this
    +					// is seen as part of the resize
    +					if (extendParent)
    +					{
    +						graph.extendParent(cell);
    +					}
    +				}
    +			}
    +			finally
    +			{
    +				model.endUpdate();
    +			}
    +		}
    +	}
    +};
    +
    +/**
    + * Function: getCellsToShift
    + * 
    + * Returns the cells to shift after a resize of the
    + * specified <mxCellState>.
    + */
    +mxSpaceManager.prototype.getCellsToShift = function(state)
    +{
    +	var graph = this.getGraph();
    +	var parent = graph.getModel().getParent(state.cell);
    +	var down = this.isShiftDownwards();
    +	var right = this.isShiftRightwards();
    +	
    +	return graph.getCellsBeyond(state.x + ((down) ? 0 : state.width),
    +		state.y + ((down && right) ? 0 : state.height), parent, right, down);
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Removes all handlers from the <graph> and deletes the reference to it.
    + */
    +mxSpaceManager.prototype.destroy = function()
    +{
    +	this.setGraph(null);
    +};
    diff --git a/javascript/src/js/view/mxStyleRegistry.js b/javascript/src/js/view/mxStyleRegistry.js
    new file mode 100644
    index 000000000..6ad878d70
    --- /dev/null
    +++ b/javascript/src/js/view/mxStyleRegistry.js
    @@ -0,0 +1,70 @@
    +/**
    + * $Id: mxStyleRegistry.js,v 1.10 2011-04-27 10:15:39 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +var mxStyleRegistry =
    +{
    +	/**
    +	 * Class: mxStyleRegistry
    +	 *
    +	 * Singleton class that acts as a global converter from string to object values
    +	 * in a style. This is currently only used to perimeters and edge styles.
    +	 * 
    +	 * Variable: values
    +	 *
    +	 * Maps from strings to objects.
    +	 */
    +	values: [],
    +
    +	/**
    +	 * Function: putValue
    +	 *
    +	 * Puts the given object into the registry under the given name.
    +	 */
    +	putValue: function(name, obj)
    +	{
    +		mxStyleRegistry.values[name] = obj;
    +	},
    +
    +	/**
    +	 * Function: getValue
    +	 *
    +	 * Returns the value associated with the given name.
    +	 */
    +	getValue: function(name)
    +	{
    +		return mxStyleRegistry.values[name];
    +	},
    +	
    +	/**
    +	 * Function: getName
    +	 * 
    +	 * Returns the name for the given value.
    +	 */
    +	getName: function(value)
    +	{
    +		for (var key in mxStyleRegistry.values)
    +		{
    +			if (mxStyleRegistry.values[key] == value)
    +			{
    +				return key;
    +			}
    +		}
    +		
    +		return null;
    +	}
    +
    +};
    +
    +mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW, mxEdgeStyle.ElbowConnector);
    +mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION, mxEdgeStyle.EntityRelation);
    +mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP, mxEdgeStyle.Loop);
    +mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE, mxEdgeStyle.SideToSide);
    +mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM, mxEdgeStyle.TopToBottom);
    +mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL, mxEdgeStyle.OrthConnector);
    +mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT, mxEdgeStyle.SegmentConnector);
    +
    +mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE, mxPerimeter.EllipsePerimeter);
    +mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE, mxPerimeter.RectanglePerimeter);
    +mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS, mxPerimeter.RhombusPerimeter);
    +mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE, mxPerimeter.TrianglePerimeter);
    diff --git a/javascript/src/js/view/mxStylesheet.js b/javascript/src/js/view/mxStylesheet.js
    new file mode 100644
    index 000000000..82a520e52
    --- /dev/null
    +++ b/javascript/src/js/view/mxStylesheet.js
    @@ -0,0 +1,266 @@
    +/**
    + * $Id: mxStylesheet.js,v 1.35 2010-03-26 10:24:58 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxStylesheet
    + * 
    + * Defines the appearance of the cells in a graph. See <putCellStyle> for an
    + * example of creating a new cell style. It is recommended to use objects, not
    + * arrays for holding cell styles. Existing styles can be cloned using
    + * <mxUtils.clone> and turned into a string for debugging using
    + * <mxUtils.toString>.
    + *
    + * Default Styles:
    + * 
    + * The stylesheet contains two built-in styles, which are used if no style is
    + * defined for a cell:
    + *
    + *   defaultVertex - Default style for vertices
    + *   defaultEdge - Default style for edges
    + * 
    + * Example:
    + * 
    + * (code)
    + * var vertexStyle = stylesheet.getDefaultVertexStyle();
    + * vertexStyle[mxConstants.ROUNDED] = true;
    + * var edgeStyle = stylesheet.getDefaultEdgeStyle();
    + * edgeStyle[mxConstants.STYLE_EDGE] = mxEdgeStyle.EntityRelation;
    + * (end)
    + * 
    + * Modifies the built-in default styles.
    + * 
    + * To avoid the default style for a cell, add a leading semicolon
    + * to the style definition, eg.
    + * 
    + * (code)
    + * ;shadow=1
    + * (end)
    + * 
    + * Removing keys:
    + * 
    + * For removing a key in a cell style of the form [stylename;|key=value;] the
    + * special value none can be used, eg. highlight;fillColor=none
    + * 
    + * See also the helper methods in mxUtils to modify strings of this format,
    + * namely <mxUtils.setStyle>, <mxUtils.indexOfStylename>,
    + * <mxUtils.addStylename>, <mxUtils.removeStylename>,
    + * <mxUtils.removeAllStylenames> and <mxUtils.setStyleFlag>.
    + * 
    + * Constructor: mxStylesheet
    + * 
    + * Constructs a new stylesheet and assigns default styles.
    + */
    +function mxStylesheet()
    +{
    +	this.styles = new Object();
    +	
    +	this.putDefaultVertexStyle(this.createDefaultVertexStyle());
    +	this.putDefaultEdgeStyle(this.createDefaultEdgeStyle());
    +};
    +
    +/**
    + * Function: styles
    + * 
    + * Maps from names to cell styles. Each cell style is a map of key,
    + * value pairs.
    + */
    +mxStylesheet.prototype.styles;
    +
    +/**
    + * Function: createDefaultVertexStyle
    + * 
    + * Creates and returns the default vertex style.
    + */
    +mxStylesheet.prototype.createDefaultVertexStyle = function()
    +{
    +	var style = new Object();
    +	
    +	style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    +	style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    +	style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +	style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +	style[mxConstants.STYLE_FILLCOLOR] = '#C3D9FF';
    +	style[mxConstants.STYLE_STROKECOLOR] = '#6482B9';
    +	style[mxConstants.STYLE_FONTCOLOR] = '#774400';
    +	
    +	return style;
    +};
    +
    +/**
    + * Function: createDefaultEdgeStyle
    + * 
    + * Creates and returns the default edge style.
    + */
    +mxStylesheet.prototype.createDefaultEdgeStyle = function()
    +{
    +	var style = new Object();
    +	
    +	style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_CONNECTOR;
    +	style[mxConstants.STYLE_ENDARROW] = mxConstants.ARROW_CLASSIC;
    +	style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
    +	style[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
    +	style[mxConstants.STYLE_STROKECOLOR] = '#6482B9';
    +	style[mxConstants.STYLE_FONTCOLOR] = '#446299';
    +	
    +	return style;
    +};
    +
    +/**
    + * Function: putDefaultVertexStyle
    + * 
    + * Sets the default style for vertices using defaultVertex as the
    + * stylename.
    + * 
    + * Parameters:
    + * style - Key, value pairs that define the style.
    + */
    +mxStylesheet.prototype.putDefaultVertexStyle = function(style)
    +{
    +	this.putCellStyle('defaultVertex', style);
    +};
    +
    +/**
    + * Function: putDefaultEdgeStyle
    + * 
    + * Sets the default style for edges using defaultEdge as the stylename.
    + */
    +mxStylesheet.prototype.putDefaultEdgeStyle = function(style)
    +{
    +	this.putCellStyle('defaultEdge', style);
    +};
    +
    +/**
    + * Function: getDefaultVertexStyle
    + * 
    + * Returns the default style for vertices.
    + */
    +mxStylesheet.prototype.getDefaultVertexStyle = function()
    +{
    +	return this.styles['defaultVertex'];
    +};
    +
    +/**
    + * Function: getDefaultEdgeStyle
    + * 
    + * Sets the default style for edges.
    + */
    +mxStylesheet.prototype.getDefaultEdgeStyle = function()
    +{
    +	return this.styles['defaultEdge'];
    +};
    +
    +/**
    + * Function: putCellStyle
    + * 
    + * Stores the given map of key, value pairs under the given name in
    + * <styles>.
    + *
    + * Example:
    + * 
    + * The following example adds a new style called 'rounded' into an
    + * existing stylesheet:
    + * 
    + * (code)
    + * var style = new Object();
    + * style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    + * style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
    + * style[mxConstants.STYLE_ROUNDED] = true;
    + * graph.getStylesheet().putCellStyle('rounded', style);
    + * (end)
    + * 
    + * In the above example, the new style is an object. The possible keys of
    + * the object are all the constants in <mxConstants> that start with STYLE
    + * and the values are either JavaScript objects, such as
    + * <mxPerimeter.RightAngleRectanglePerimeter> (which is in fact a function)
    + * or expressions, such as true. Note that not all keys will be
    + * interpreted by all shapes (eg. the line shape ignores the fill color).
    + * The final call to this method associates the style with a name in the
    + * stylesheet. The style is used in a cell with the following code:
    + * 
    + * (code)
    + * model.setStyle(cell, 'rounded');
    + * (end)
    + * 
    + * Parameters:
    + * 
    + * name - Name for the style to be stored.
    + * style - Key, value pairs that define the style.
    + */
    +mxStylesheet.prototype.putCellStyle = function(name, style)
    +{
    +	this.styles[name] = style;
    +};
    +
    +/**
    + * Function: getCellStyle
    + * 
    + * Returns the cell style for the specified stylename or the given
    + * defaultStyle if no style can be found for the given stylename.
    + * 
    + * Parameters:
    + * 
    + * name - String of the form [(stylename|key=value);] that represents the
    + * style.
    + * defaultStyle - Default style to be returned if no style can be found.
    + */
    +mxStylesheet.prototype.getCellStyle = function(name, defaultStyle)
    +{
    +	var style = defaultStyle;
    +	
    +	if (name != null && name.length > 0)
    +	{
    +		var pairs = name.split(';');
    +
    +		if (style != null &&
    +			name.charAt(0) != ';')
    +		{
    +			style = mxUtils.clone(style);
    +		}
    +		else
    +		{
    +			style = new Object();
    +		}
    +
    +		// Parses each key, value pair into the existing style
    +	 	for (var i = 0; i < pairs.length; i++)
    +	 	{
    +	 		var tmp = pairs[i];
    +	 		var pos = tmp.indexOf('=');
    +	 		
    +	 		if (pos >= 0)
    +	 		{
    +		 		var key = tmp.substring(0, pos);
    +		 		var value = tmp.substring(pos + 1);
    +
    +		 		if (value == mxConstants.NONE)
    +		 		{
    +		 			delete style[key];
    +		 		}
    +		 		else if (mxUtils.isNumeric(value))
    +		 		{
    +		 			style[key] = parseFloat(value);
    +		 		}
    +		 		else
    +		 		{
    +			 		style[key] = value;
    +		 		}
    +			}
    +	 		else
    +	 		{
    +	 			// Merges the entries from a named style
    +				var tmpStyle = this.styles[tmp];
    +				
    +				if (tmpStyle != null)
    +				{
    +					for (var key in tmpStyle)
    +					{
    +						style[key] = tmpStyle[key];
    +					}
    +				}
    +	 		}
    +		}
    +	}
    +	
    +	return style;
    +};
    diff --git a/javascript/src/js/view/mxSwimlaneManager.js b/javascript/src/js/view/mxSwimlaneManager.js
    new file mode 100644
    index 000000000..fe406133c
    --- /dev/null
    +++ b/javascript/src/js/view/mxSwimlaneManager.js
    @@ -0,0 +1,449 @@
    +/**
    + * $Id: mxSwimlaneManager.js,v 1.17 2011-01-14 15:21:10 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxSwimlaneManager
    + * 
    + * Manager for swimlanes and nested swimlanes that sets the size of newly added
    + * swimlanes to that of their siblings, and propagates changes to the size of a
    + * swimlane to its siblings, if <siblings> is true, and its ancestors, if
    + * <bubbling> is true.
    + * 
    + * Constructor: mxSwimlaneManager
    + *
    + * Constructs a new swimlane manager for the given graph.
    + *
    + * Arguments:
    + * 
    + * graph - Reference to the enclosing graph. 
    + */
    +function mxSwimlaneManager(graph, horizontal, addEnabled, resizeEnabled)
    +{
    +	this.horizontal = (horizontal != null) ? horizontal : true;
    +	this.addEnabled = (addEnabled != null) ? addEnabled : true;
    +	this.resizeEnabled = (resizeEnabled != null) ? resizeEnabled : true;
    +
    +	this.addHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		if (this.isEnabled() && this.isAddEnabled())
    +		{
    +			this.cellsAdded(evt.getProperty('cells'));
    +		}
    +	});
    +	
    +	this.resizeHandler = mxUtils.bind(this, function(sender, evt)
    +	{
    +		if (this.isEnabled() && this.isResizeEnabled())
    +		{
    +			this.cellsResized(evt.getProperty('cells'));
    +		}
    +	});
    +	
    +	this.setGraph(graph);
    +};
    +
    +/**
    + * Extends mxEventSource.
    + */
    +mxSwimlaneManager.prototype = new mxEventSource();
    +mxSwimlaneManager.prototype.constructor = mxSwimlaneManager;
    +
    +/**
    + * Variable: graph
    + * 
    + * Reference to the enclosing <mxGraph>.
    + */
    +mxSwimlaneManager.prototype.graph = null;
    +
    +/**
    + * Variable: enabled
    + * 
    + * Specifies if event handling is enabled. Default is true.
    + */
    +mxSwimlaneManager.prototype.enabled = true;
    +
    +/**
    + * Variable: horizontal
    + * 
    + * Specifies the orientation of the swimlanes. Default is true.
    + */
    +mxSwimlaneManager.prototype.horizontal = true;
    +
    +/**
    + * Variable: addEnabled
    + * 
    + * Specifies if newly added cells should be resized to match the size of their
    + * existing siblings. Default is true.
    + */
    +mxSwimlaneManager.prototype.addEnabled = true;
    +
    +/**
    + * Variable: resizeEnabled
    + * 
    + * Specifies if resizing of swimlanes should be handled. Default is true.
    + */
    +mxSwimlaneManager.prototype.resizeEnabled = true;
    +
    +/**
    + * Variable: moveHandler
    + * 
    + * Holds the function that handles the move event.
    + */
    +mxSwimlaneManager.prototype.addHandler = null;
    +
    +/**
    + * Variable: moveHandler
    + * 
    + * Holds the function that handles the move event.
    + */
    +mxSwimlaneManager.prototype.resizeHandler = null;
    +
    +/**
    + * Function: isEnabled
    + * 
    + * Returns true if events are handled. This implementation
    + * returns <enabled>.
    + */
    +mxSwimlaneManager.prototype.isEnabled = function()
    +{
    +	return this.enabled;
    +};
    +
    +/**
    + * Function: setEnabled
    + * 
    + * Enables or disables event handling. This implementation
    + * updates <enabled>.
    + * 
    + * Parameters:
    + * 
    + * enabled - Boolean that specifies the new enabled state.
    + */
    +mxSwimlaneManager.prototype.setEnabled = function(value)
    +{
    +	this.enabled = value;
    +};
    +
    +/**
    + * Function: isHorizontal
    + * 
    + * Returns <horizontal>.
    + */
    +mxSwimlaneManager.prototype.isHorizontal = function()
    +{
    +	return this.horizontal;
    +};
    +
    +/**
    + * Function: setHorizontal
    + * 
    + * Sets <horizontal>.
    + */
    +mxSwimlaneManager.prototype.setHorizontal = function(value)
    +{
    +	this.horizontal = value;
    +};
    +
    +/**
    + * Function: isAddEnabled
    + * 
    + * Returns <addEnabled>.
    + */
    +mxSwimlaneManager.prototype.isAddEnabled = function()
    +{
    +	return this.addEnabled;
    +};
    +
    +/**
    + * Function: setAddEnabled
    + * 
    + * Sets <addEnabled>.
    + */
    +mxSwimlaneManager.prototype.setAddEnabled = function(value)
    +{
    +	this.addEnabled = value;
    +};
    +
    +/**
    + * Function: isResizeEnabled
    + * 
    + * Returns <resizeEnabled>.
    + */
    +mxSwimlaneManager.prototype.isResizeEnabled = function()
    +{
    +	return this.resizeEnabled;
    +};
    +
    +/**
    + * Function: setResizeEnabled
    + * 
    + * Sets <resizeEnabled>.
    + */
    +mxSwimlaneManager.prototype.setResizeEnabled = function(value)
    +{
    +	this.resizeEnabled = value;
    +};
    +
    +/**
    + * Function: getGraph
    + * 
    + * Returns the graph that this manager operates on.
    + */
    +mxSwimlaneManager.prototype.getGraph = function()
    +{
    +	return this.graph;
    +};
    +
    +/**
    + * Function: setGraph
    + * 
    + * Sets the graph that the manager operates on.
    + */
    +mxSwimlaneManager.prototype.setGraph = function(graph)
    +{
    +	if (this.graph != null)
    +	{
    +		this.graph.removeListener(this.addHandler);
    +		this.graph.removeListener(this.resizeHandler);
    +	}
    +	
    +	this.graph = graph;
    +	
    +	if (this.graph != null)
    +	{
    +		this.graph.addListener(mxEvent.ADD_CELLS, this.addHandler);
    +		this.graph.addListener(mxEvent.CELLS_RESIZED, this.resizeHandler);
    +	}
    +};
    +
    +/**
    + * Function: isSwimlaneIgnored
    + * 
    + * Returns true if the given swimlane should be ignored.
    + */
    +mxSwimlaneManager.prototype.isSwimlaneIgnored = function(swimlane)
    +{
    +	return !this.getGraph().isSwimlane(swimlane);
    +};
    +
    +/**
    + * Function: isCellHorizontal
    + * 
    + * Returns true if the given cell is horizontal. If the given cell is not a
    + * swimlane, then the global orientation is returned.
    + */
    +mxSwimlaneManager.prototype.isCellHorizontal = function(cell)
    +{
    +	if (this.graph.isSwimlane(cell))
    +	{
    +		var state = this.graph.view.getState(cell);
    +		var style = (state != null) ? state.style : this.graph.getCellStyle(cell);
    +		
    +		return mxUtils.getValue(style, mxConstants.STYLE_HORIZONTAL, 1) == 1;
    +	}
    +	
    +	return !this.isHorizontal();
    +};
    +
    +/**
    + * Function: cellsAdded
    + * 
    + * Called if any cells have been added.
    + * 
    + * Parameters:
    + * 
    + * cell - Array of <mxCells> that have been added.
    + */
    +mxSwimlaneManager.prototype.cellsAdded = function(cells)
    +{
    +	if (cells != null)
    +	{
    +		var model = this.getGraph().getModel();
    +
    +		model.beginUpdate();
    +		try
    +		{
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				if (!this.isSwimlaneIgnored(cells[i]))
    +				{
    +					this.swimlaneAdded(cells[i]);
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: swimlaneAdded
    + * 
    + * Updates the size of the given swimlane to match that of any existing
    + * siblings swimlanes.
    + * 
    + * Parameters:
    + * 
    + * swimlane - <mxCell> that represents the new swimlane.
    + */
    +mxSwimlaneManager.prototype.swimlaneAdded = function(swimlane)
    +{
    +	var model = this.getGraph().getModel();
    +	var parent = model.getParent(swimlane);
    +	var childCount = model.getChildCount(parent);
    +	var geo = null;
    +	
    +	// Finds the first valid sibling swimlane as reference
    +	for (var i = 0; i < childCount; i++)
    +	{
    +		var child = model.getChildAt(parent, i);
    +		
    +		if (child != swimlane && !this.isSwimlaneIgnored(child))
    +		{
    +			geo = model.getGeometry(child);
    +			
    +			if (geo != null)
    +			{	
    +				break;
    +			}
    +		}
    +	}
    +	
    +	// Applies the size of the refernece to the newly added swimlane
    +	if (geo != null)
    +	{
    +		this.resizeSwimlane(swimlane, geo.width, geo.height);
    +	}
    +};
    +
    +/**
    + * Function: cellsResized
    + * 
    + * Called if any cells have been resizes. Calls <swimlaneResized> for all
    + * swimlanes where <isSwimlaneIgnored> returns false.
    + * 
    + * Parameters:
    + * 
    + * cells - Array of <mxCells> whose size was changed.
    + */
    +mxSwimlaneManager.prototype.cellsResized = function(cells)
    +{
    +	if (cells != null)
    +	{
    +		var model = this.getGraph().getModel();
    +		
    +		model.beginUpdate();
    +		try
    +		{
    +			// Finds the top-level swimlanes and adds offsets
    +			for (var i = 0; i < cells.length; i++)
    +			{
    +				if (!this.isSwimlaneIgnored(cells[i]))
    +				{
    +					var geo = model.getGeometry(cells[i]);
    +					
    +					if (geo != null)
    +					{
    +						var size = new mxRectangle(0, 0, geo.width, geo.height);
    +						var top = cells[i];
    +						var current = top;
    +						
    +						while (current != null)
    +						{
    +							top = current;
    +							current = model.getParent(current);
    +							var tmp = (this.graph.isSwimlane(current)) ?
    +									this.graph.getStartSize(current) :
    +									new mxRectangle();
    +							size.width += tmp.width;
    +							size.height += tmp.height;
    +						}
    +						
    +						this.resizeSwimlane(top, size.width, size.height);
    +					}
    +				}
    +			}
    +		}
    +		finally
    +		{
    +			model.endUpdate();
    +		}
    +	}
    +};
    +
    +/**
    + * Function: resizeSwimlane
    + * 
    + * Called from <cellsResized> for all swimlanes that are not ignored to update
    + * the size of the siblings and the size of the parent swimlanes, recursively,
    + * if <bubbling> is true.
    + * 
    + * Parameters:
    + * 
    + * swimlane - <mxCell> whose size has changed.
    + */
    +mxSwimlaneManager.prototype.resizeSwimlane = function(swimlane, w, h)
    +{
    +	var model = this.getGraph().getModel();
    +	
    +	model.beginUpdate();
    +	try
    +	{	
    +		if (!this.isSwimlaneIgnored(swimlane))
    +		{
    +			var geo = model.getGeometry(swimlane);
    +			
    +			if (geo != null)
    +			{
    +				var horizontal = this.isCellHorizontal(swimlane);
    +				
    +				if ((horizontal && geo.height != h) || (!horizontal && geo.width != w))
    +				{
    +					geo = geo.clone();
    +					
    +					if (horizontal)
    +					{
    +						geo.height = h;
    +					}
    +					else
    +					{
    +						geo.width = w;
    +					}
    +					
    +					model.setGeometry(swimlane, geo);
    +				}
    +			}
    +		}
    +
    +		var tmp = (this.graph.isSwimlane(swimlane)) ?
    +				this.graph.getStartSize(swimlane) :
    +				new mxRectangle();
    +		w -= tmp.width;
    +		h -= tmp.height;
    +		
    +		var childCount = model.getChildCount(swimlane);
    +		
    +		for (var i = 0; i < childCount; i++)
    +		{
    +			var child = model.getChildAt(swimlane, i);
    +			this.resizeSwimlane(child, w, h);
    +		}
    +	}
    +	finally
    +	{
    +		model.endUpdate();
    +	}
    +};
    +
    +/**
    + * Function: destroy
    + * 
    + * Removes all handlers from the <graph> and deletes the reference to it.
    + */
    +mxSwimlaneManager.prototype.destroy = function()
    +{
    +	this.setGraph(null);
    +};
    diff --git a/javascript/src/js/view/mxTemporaryCellStates.js b/javascript/src/js/view/mxTemporaryCellStates.js
    new file mode 100644
    index 000000000..ce8232cc8
    --- /dev/null
    +++ b/javascript/src/js/view/mxTemporaryCellStates.js
    @@ -0,0 +1,105 @@
    +/**
    + * $Id: mxTemporaryCellStates.js,v 1.10 2010-04-20 14:43:12 gaudenz Exp $
    + * Copyright (c) 2006-2010, JGraph Ltd
    + */
    +/**
    + * Class: mxTemporaryCellStates
    + *
    + * Extends <mxPoint> to implement a 2-dimensional rectangle with double
    + * precision coordinates.
    + * 
    + * Constructor: mxRectangle
    + *
    + * Constructs a new rectangle for the optional parameters. If no parameters
    + * are given then the respective default values are used.
    + */
    +function mxTemporaryCellStates(view, scale, cells)
    +{
    +	this.view = view;
    +	scale = (scale != null) ? scale : 1;
    +	
    +	// Stores the previous state
    +	this.oldBounds = view.getGraphBounds();
    +	this.oldStates = view.getStates();
    +	this.oldScale = view.getScale();
    +	
    +	// Creates space for new states
    +	view.setStates(new mxDictionary());
    +	view.setScale(scale);
    +	
    +	if (cells != null)
    +	{
    +		// Creates virtual parent state for validation
    +		var state = view.createState(new mxCell());
    +
    +		// Validates the vertices and edges without adding them to
    +		// the model so that the original cells are not modified
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			view.validateBounds(state, cells[i]);
    +		}
    +		
    +		var bbox = null;
    +		
    +		for (var i = 0; i < cells.length; i++)
    +		{
    +			var bounds = view.validatePoints(state, cells[i]);
    +			
    +			if (bbox == null)
    +			{
    +				bbox = bounds;
    +			}
    +			else
    +			{
    +				bbox.add(bounds);
    +			}
    +		}
    +		
    +		if (bbox == null)
    +		{
    +			bbox = new mxRectangle();
    +		}
    +		
    +		view.setGraphBounds(bbox);
    +	}
    +};
    +
    +/**
    + * Variable: view
    + *
    + * Holds the width of the rectangle. Default is 0.
    + */
    +mxTemporaryCellStates.prototype.view = null;
    +
    +/**
    + * Variable: oldStates
    + *
    + * Holds the height of the rectangle. Default is 0.
    + */
    +mxTemporaryCellStates.prototype.oldStates = null;
    +
    +/**
    + * Variable: oldBounds
    + *
    + * Holds the height of the rectangle. Default is 0.
    + */
    +mxTemporaryCellStates.prototype.oldBounds = null;
    +
    +/**
    + * Variable: oldScale
    + *
    + * Holds the height of the rectangle. Default is 0.
    + */
    +mxTemporaryCellStates.prototype.oldScale = null;
    +
    +/**
    + * Function: destroy
    + * 
    + * Returns the top, left corner as a new <mxPoint>.
    + */
    +mxTemporaryCellStates.prototype.destroy = function()
    +{
    +	this.view.setScale(this.oldScale);
    +	this.view.setStates(this.oldStates);
    +	this.view.setGraphBounds(this.oldBounds);
    +};
    diff --git a/javascript/src/resources/editor.properties b/javascript/src/resources/editor.properties
    new file mode 100644
    index 000000000..23432a810
    --- /dev/null
    +++ b/javascript/src/resources/editor.properties
    @@ -0,0 +1,5 @@
    +askZoom=Enter zoom (%25)
    +properties=Properties
    +outline=Outline
    +tasks=Tasks
    +help=Help
    diff --git a/javascript/src/resources/editor_de.properties b/javascript/src/resources/editor_de.properties
    new file mode 100644
    index 000000000..237a44e22
    --- /dev/null
    +++ b/javascript/src/resources/editor_de.properties
    @@ -0,0 +1,5 @@
    +askZoom=Zoom eingeben (%25)
    +properties=Eigenschaften
    +outline=Uebersicht
    +tasks=Aufgaben
    +help=Hilfe
    diff --git a/javascript/src/resources/graph.properties b/javascript/src/resources/graph.properties
    new file mode 100644
    index 000000000..baf61f886
    --- /dev/null
    +++ b/javascript/src/resources/graph.properties
    @@ -0,0 +1,11 @@
    +alreadyConnected=Nodes already connected
    +containsValidationErrors=Contains validation errors
    +updatingDocument=Updating Document. Please wait...
    +updatingSelection=Updating Selection. Please wait...
    +collapse-expand=Collapse/Expand
    +doubleClickOrientation=Doubleclick to change orientation
    +close=Close
    +error=Error
    +done=Done
    +cancel=Cancel
    +ok=OK
    diff --git a/javascript/src/resources/graph_de.properties b/javascript/src/resources/graph_de.properties
    new file mode 100644
    index 000000000..eec8ff14c
    --- /dev/null
    +++ b/javascript/src/resources/graph_de.properties
    @@ -0,0 +1,11 @@
    +alreadyConnected=Knoten schon verbunden
    +containsValidationErrors=Enth%E4lt Validierungsfehler
    +updatingDocument=Aktualisiere Dokument. Bitte warten...
    +updatingSelection=Aktualisiere Markierung. Bitte warten...
    +collapse-expand=Einklappen/Ausklappen
    +doubleClickOrientation=Doppelklicken um Orientierung zu %E4ndern
    +close=Schliessen
    +error=Fehler
    +done=Fertig
    +cancel=Abbrechen
    +ok=OK
    diff --git a/license.txt b/license.txt
    new file mode 100644
    index 000000000..4c63c8039
    --- /dev/null
    +++ b/license.txt
    @@ -0,0 +1,59 @@
    +License
    +
    +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
    +
    +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
    +
    +1. Definitions
    +
    +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
    +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(g) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
    +"Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
    +"License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, Noncommercial, ShareAlike.
    +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
    +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
    +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
    +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
    +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
    +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
    +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
    +
    +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
    +
    +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
    +to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
    +to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
    +to Distribute and Publicly Perform Adaptations.
    +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights described in Section 4(e).
    +
    +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
    +
    +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(d), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(d), as requested.
    +You may Distribute or Publicly Perform an Adaptation only under: (i) the terms of this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-NonCommercial-ShareAlike 3.0 US) ("Applicable License"). You must include a copy of, or the URI, for Applicable License with every copy of each Adaptation You Distribute or Publicly Perform. You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License. You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License.
    +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in con-nection with the exchange of copyrighted works.
    +If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and, (iv) consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(d) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
    +For the avoidance of doubt:
    +
    +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
    +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and,
    +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c).
    +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
    +5. Representations, Warranties and Disclaimer
    +
    +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING AND TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THIS EXCLUSION MAY NOT APPLY TO YOU.
    +
    +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
    +
    +7. Termination
    +
    +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
    +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
    +8. Miscellaneous
    +
    +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
    +Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
    +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
    +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
    +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
    +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
    +The software must be used only for good, not evil.
    \ No newline at end of file
    diff --git a/mxgraph-dotnet.sln b/mxgraph-dotnet.sln
    new file mode 100644
    index 000000000..1ab2bdc8e
    --- /dev/null
    +++ b/mxgraph-dotnet.sln
    @@ -0,0 +1,32 @@
    +
    +Microsoft Visual Studio Solution File, Format Version 10.00
    +# Visual Web Developer Express 2008
    +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mxgraph-dotnet", "dotnet\mxgraph-dotnet.csproj", "{741CF907-C7CF-4965-94C9-59BAEC072101}"
    +EndProject
    +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "examples", "dotnet\examples\examples.csproj", "{C10B6142-CE9A-4391-A1B0-422B562D5C7D}"
    +EndProject
    +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aspnet", "dotnet\aspnet\aspnet.csproj", "{C89246D9-8B63-4255-9250-085712D7DCA6}"
    +EndProject
    +Global
    +	GlobalSection(SolutionConfigurationPlatforms) = preSolution
    +		Debug|Any CPU = Debug|Any CPU
    +		Release|Any CPU = Release|Any CPU
    +	EndGlobalSection
    +	GlobalSection(ProjectConfigurationPlatforms) = postSolution
    +		{741CF907-C7CF-4965-94C9-59BAEC072101}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    +		{741CF907-C7CF-4965-94C9-59BAEC072101}.Debug|Any CPU.Build.0 = Debug|Any CPU
    +		{741CF907-C7CF-4965-94C9-59BAEC072101}.Release|Any CPU.ActiveCfg = Release|Any CPU
    +		{741CF907-C7CF-4965-94C9-59BAEC072101}.Release|Any CPU.Build.0 = Release|Any CPU
    +		{C10B6142-CE9A-4391-A1B0-422B562D5C7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    +		{C10B6142-CE9A-4391-A1B0-422B562D5C7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
    +		{C10B6142-CE9A-4391-A1B0-422B562D5C7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
    +		{C10B6142-CE9A-4391-A1B0-422B562D5C7D}.Release|Any CPU.Build.0 = Release|Any CPU
    +		{C89246D9-8B63-4255-9250-085712D7DCA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    +		{C89246D9-8B63-4255-9250-085712D7DCA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
    +		{C89246D9-8B63-4255-9250-085712D7DCA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
    +		{C89246D9-8B63-4255-9250-085712D7DCA6}.Release|Any CPU.Build.0 = Release|Any CPU
    +	EndGlobalSection
    +	GlobalSection(SolutionProperties) = preSolution
    +		HideSolutionNode = FALSE
    +	EndGlobalSection
    +EndGlobal
    diff --git a/php/examples/deployment.php b/php/examples/deployment.php
    new file mode 100644
    index 000000000..60cb835cf
    --- /dev/null
    +++ b/php/examples/deployment.php
    @@ -0,0 +1,116 @@
    +<?php
    +/**
    + * $Id: deployment.php,v 1.12 2011-03-11 10:48:19 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +include_once("../src/mxServer.php");
    +
    +/**
    + * Function: main
    + * 
    + * Demonstrates the deployment of a graph which is created on the server side
    + * and then deployed with the client library in a single response. This is done
    + * by replacing the %graph% placeholder in the javascript/example/template.html
    + * file with the XML representation of the graph that was created on the server.
    + * 
    + * Point your browser to http://localhost/graph to fetch the HTML file. Make sure
    + * to deploy the mxgraph distribution directory to the webroot for this example
    + * to work, or replace the mxBasePath and URL for the mxClient.js in the
    + * template to match your environment.
    + *
    + * This example returns an HTML page when the client issues a get request. The
    + * readme in the php directory explains how to run this example.
    + * 
    + * The template.html file is used by this example. In main a graph is created
    + * and the XML of the graph obtained by:
    + * 
    + *   $enc = new mxCodec();
    + *   $xmlNode = $enc->encode($model);
    + *   $xml = $xmlNode->ownerDocument->saveXML($xmlNode);
    + * 
    + * The template.html is then loaded as a string and instances of %graph% are
    + * replaced with the XML of the graph. In the template.html the following line
    + * defines the page body:
    + * 
    + *   <body onload="main(document.getElementById('graphContainer'), '%graph%');">
    + * 
    + * So the XML string of the graph becomes the second parameter of the main
    + * function. When the template.html page is loaded in the browser, the main
    + * function is called and within that function these lines:
    + * 
    + *   var doc = mxUtils.parseXml(xml);
    + *   var codec = new mxCodec(doc);
    + *   codec.decode(doc.documentElement, graph.getModel());
    + * 
    + * insert the XML into the graph model and that graph will then display.
    + */
    +function main()
    +{
    +	// True-type fonts not needed in this example
    +	mxConstants::$TTF_ENABLED = false;
    +
    +	// Creates the graph on the server-side
    +	$graph = new mxGraph();
    +	$model = $graph->getModel();
    +	$parent = $graph->getDefaultParent();
    +
    +	$model->beginUpdate();
    +	try
    +	{	
    +		$v1 = $graph->insertVertex($parent, null, "Hello", 20, 20, 80, 30);
    +		$v2 = $graph->insertVertex($parent, null, "World", 200, 150, 80, 30);
    +		$graph->insertEdge($parent, null, "", $v1, $v2);
    +	}
    +	catch (Exception $e)
    +	{
    +		$model->endUpdate();
    +		throw($e);
    +	}
    +	$model->endUpdate();
    +
    +	// Turns the graph into XML data
    +	$enc = new mxCodec();
    +	$xmlNode = $enc->encode($model);
    +	$xml = addslashes(htmlentities(str_replace("\n", "&#xa;",
    +		$xmlNode->ownerDocument->saveXML($xmlNode))));
    +	
    +	// Loads the template into a single string
    +	$template = mxUtils::readFile("template.html");
    +
    +	// Replaces the placeholder in the template with the XML data
    +	// which is then parsed into the graph model. Note: In a production
    +	// environment you should use a template engine instead.
    +	$page = str_replace("%graph%", $xml, $template);
    +	
    +	// Makes sure there is no caching on the client side
    +	header("Pragma: no-cache"); // HTTP 1.0
    +	header("Cache-control: private, no-cache, no-store");
    +	header("Expires: 0");
    +
    +	echo $page;
    +}
    +
    +// Uses a local font so that all examples work on all platforms. This can be
    +// changed to vera on Mac or arial on Windows systems.
    +mxConstants::$DEFAULT_FONTFAMILY = "ttf/verah.ttf";
    +
    +// If you can't get the fonts to render try using one of the following:
    +//mxConstants::$DEFAULT_FONTFAMILY = "C:\WINDOWS\Fonts\arial.ttf";
    +//mxConstants::$DEFAULT_FONTFAMILY = "verah"; putenv("GDFONTPATH=".realpath("./ttf"));
    +//mxConstants::$TTF_ENABLED = false;
    +
    +// Handles save image request
    +if ($_SERVER["REQUEST_METHOD"] == "POST")
    +{
    +	$xml = urldecode($_POST["xml"]);
    +	
    +	// Creates a PNG representation of the file
    +	$image =  mxGraphViewImageReader::convert($xml, "#FFFFFF");
    +	header("Content-Type: image/png");
    +	echo mxUtils::encodeImage($image);
    +}
    +else
    +{
    +	main();
    +}
    +?>
    diff --git a/php/examples/diagrams/graphmodel.xml b/php/examples/diagrams/graphmodel.xml
    new file mode 100644
    index 000000000..9bf1f34e2
    --- /dev/null
    +++ b/php/examples/diagrams/graphmodel.xml
    @@ -0,0 +1,8 @@
    +<mxGraphModel>
    +	<root>
    +		<Workflow label="Swimlanes" id="0"></Workflow>
    +		<Layer label="Default Layer" id="1">
    +			<mxCell parent="0" />
    +		</Layer>
    +	</root>
    +</mxGraphModel>
    diff --git a/php/examples/diagrams/graphview.xml b/php/examples/diagrams/graphview.xml
    new file mode 100644
    index 000000000..e7754c34a
    --- /dev/null
    +++ b/php/examples/diagrams/graphview.xml
    @@ -0,0 +1,34 @@
    +<graph label="My Diagram" x="90" y="50" width="400" height="280">
    +	<layer label="Default Layer">
    +		<group label="Container" x="90" y="50" width="200" height="200"
    +			shape="swimlane" fontSize="11" align="center" verticalAlign="top"
    +			shadow="0" strokeColor="#EEEEEE" fillColor="#D4D4D4"
    +			gradientColor="white" startSize="23">
    +			<vertex label="Rounded" x="110" y="90" width="80"
    +				height="30" shape="rectangle" fontSize="11" align="center"
    +				verticalAlign="middle" shadow="1" strokeColor="#C3D9FF"
    +				fillColor="#C3D9FF" gradientColor="white" rounded="1" />
    +			<vertex label="Shape" x="130" y="160" width="60" height="50"
    +				shape="ellipse" fontSize="11" align="center" verticalAlign="middle"
    +				shadow="1" strokeColor="#CDEB8B" fillColor="#CDEB8B"
    +				gradientColor="white" />
    +			<edge label="" points="150,120 150,159" shape="connector"
    +				fontSize="10" rounded="1" strokeColor="#36393D" strokeWidth="1"
    +				endArrow="classic" />
    +		</group>
    +		<vertex label="Shape" x="380" y="170" width="60" height="50"
    +			shape="rhombus" fontSize="11" align="center" verticalAlign="middle"
    +			shadow="1" strokeColor="#FFCF8A" fillColor="#FFCF8A"
    +			gradientColor="white" />
    +		<edge label="" points="190,185 379,185" shape="connector"
    +			fontSize="10" rounded="1" strokeColor="#36393D" strokeWidth="1"
    +			endArrow="classic" />
    +		<vertex label="Shape" x="240" y="280" width="60" height="50"
    +			shape="cylinder" fontSize="11" align="center" verticalAlign="middle"
    +			shadow="1" strokeColor="#4096EE" fillColor="#4096EE"
    +			gradientColor="white" />
    +		<edge label="" points="440,195 490,195 490,305 301,305"
    +			shape="connector" fontSize="10" rounded="1" strokeColor="#36393D"
    +			strokeWidth="1" endArrow="classic" />
    +	</layer>
    +</graph>
    diff --git a/php/examples/embedimage.html b/php/examples/embedimage.html
    new file mode 100644
    index 000000000..ff4fe1a5d
    --- /dev/null
    +++ b/php/examples/embedimage.html
    @@ -0,0 +1,124 @@
    +<html>
    +<head>
    +	<title>Embedded images</title>
    +	<!--%mhtml%-->
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../../javascript/src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../../javascript/src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// True if data URIs are supported. IE8 has a size limit of 32KB for
    +		// data URIs, so this must be used as a global size limit. It's not
    +		// possible to work around this limitation by using MHTML because that
    +		// is not supported in IE8.
    +		var DATA_URL = %dataUrl%;
    +		var graph = new mxGraph();
    +		var bundle = new mxImageBundle(!DATA_URL);
    +
    +		function insert(name, data, fallback)
    +		{
    +			bundle.putImage(name, data, fallback);
    +			var parent = graph.getDefaultParent();
    +			graph.insertVertex(parent, null, '', 100, 20, 130, 80, 'shape=image;image=' + name);
    +		};
    +	
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main()
    +		{
    +			%bundle%
    +			graph.addImageBundle(bundle);
    +			graph.init(document.getElementById('graphContainer'));
    +			graph.setConnectable(true);
    +			
    +			// Enables rubberband selection
    +			new mxRubberband(graph);
    +			
    +			// Gets the default parent for inserting new cells. This
    +			// is normally the first child of the root (ie. layer 0).
    +			var parent = graph.getDefaultParent();
    +							
    +			// Adds cells to the model in a single step
    +			graph.getModel().beginUpdate();
    +			try
    +			{
    +				graph.insertVertex(parent, null, '', 20, 20, 30, 30, 'shape=image;image=myImage');
    +			}
    +			finally
    +			{
    +				// Updates the display
    +				graph.getModel().endUpdate();
    +			}
    +
    +			// Three scenarios for loading embedded images in IE6/7:
    +			// 1. At load-time: Embed in HTML page (see above and server-side)
    +			// 2. From URL at runtime: Use script to encode and cache response. This is also needed for
    +			//    browsers that support HTML5 canvas because it's not possible to base64 encode an image
    +			//    from another domain due to security restrictions.
    +			var url = 'http://www.jgraph.com/images/mxgraph.gif';
    +			mxUtils.get(window.location.href + '?url=' + encodeURIComponent(url), function(req)
    +			{
    +				var lines = req.getText().split('\n');
    +				var data = '';
    +				
    +				// Scans the response for base64 encoded image data
    +				for (var i = 6; i < lines.length; i++)
    +				{
    +					if (lines[i].length == 0)
    +					{
    +						data = lines[i + 1];
    +						break;
    +					}
    +				}
    +				
    +				data = data.substring(0, data.length - 1);
    +
    +				// The fallback can either be the URL or the MHTML URL which turns the image
    +				// into MHTML on the server-side. Both are cached so even if the image changes
    +				// while the diagram is open the image will remain visible. Note that the image
    +				// will be replaced with an embedded image the next time the diagram is opened.
    +				//url = 'mhtml:' + window.location.href + '?url=' + encodeURIComponent(url) + '!image';
    +				insert(url, 'data:image/gif,' + data, url);
    +			});
    +
    +			// 3. From local at runtime: Requires two roundtrips, one to get the base64 encoded
    +			//    string to put it into the bundle and another (in IE6/7) for the mhtml href.
    +			//    The response of the POST request contains JavaScript which calls the insert
    +			//    method above and removes the dynamically generated iframe with the form (below).
    +			var clickHandler = function()
    +			{
    +				if (document.getElementById('embedimageframe') == null)
    +				{
    +					var ifrm = document.createElement('iframe');
    +					ifrm.setAttribute('id', 'embedimageframe');
    +					document.body.appendChild(ifrm);
    +					ifrm = (ifrm.contentWindow) ? ifrm.contentWindow :
    +						(ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
    +		            ifrm.document.open();
    +		            ifrm.document.write('<form method="POST" enctype="multipart/form-data" '+
    +				    	'action="' + window.location.href + '">');
    +		            ifrm.document.write('File: <input type="file" name="upfile">');
    +		            ifrm.document.write('<input type="hidden" name="dataurl" value="' + DATA_URL + '">');
    +		            ifrm.document.write('<br><input type="submit" value="Insert">');
    +		            ifrm.document.write('</form>');
    +		            ifrm.document.close();
    +				}
    +			};
    +
    +			document.body.appendChild(mxUtils.button('Insert image', clickHandler));
    +			mxUtils.br(document.body);
    +		};
    +	</script>
    +</head>
    +<body onload="main()">
    +	<div id="graphContainer"
    +		style="overflow:hidden;width:320px;height:240px;border:solid black 1px;cursor:default;">
    +	</div>
    +</body>
    +</html>
    diff --git a/php/examples/embedimage.php b/php/examples/embedimage.php
    new file mode 100644
    index 000000000..1247de5eb
    --- /dev/null
    +++ b/php/examples/embedimage.php
    @@ -0,0 +1,147 @@
    +<?php
    +// Does not use cookies for sessions since the only session exists between
    +// two requests where the URL of the second request is defined below.
    +ini_set('session.use_cookies', '0');
    +$compress = strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false;
    +
    +function mhtml($name, $data)
    +{
    +	return "Content-Type: multipart/related; boundary=\"----\"\n".
    +		"\n".
    +		"------\n".
    +		"Content-Location:$name\n".
    +		"Content-Transfer-Encoding:base64\n".
    +		"\n".
    +		$data.
    +		"=\n".
    +		"------\n";
    +}
    +
    +// Uses wire-compression for response
    +if ($compress)
    +{
    +	ob_start();
    +	ob_start("ob_gzhandler");
    +}
    +
    +// Converts an uploaded file to a base64 MHTML response
    +// which is inserted via injected JavaScript on the client-side.
    +if ($_SERVER["REQUEST_METHOD"] == "POST")
    +{
    +	$tmpfile = $_FILES["upfile"]["tmp_name"];
    +	header("Content-Type: text/html");	
    +
    +	echo "<html>\n";
    +	echo "<head>\n";
    +	echo "</head>\n";
    +	echo "<body>\n";
    +	echo "<script type=\"text/javascript\">\n";
    +	
    +	// Shows an error message on the client-side if the file is larger than
    +	// 32 KB, which is the maximum size foe data URIs in IE8.
    +	if (filesize($tmpfile) > 32768)
    +	{
    +		echo "alert(\"File exceeds the maximum allowed size. File must be less than 32KB.\");\n";
    +	}
    +	else
    +	{
    +		$img = file_get_contents($tmpfile);
    +		$data = base64_encode($img);
    +		
    +		// Makes the name unique by adding a timestamp as a postfix
    +		$name = $_FILES["upfile"]["name"]."-".mktime();
    +
    +		// Stores the file in the session which only exists between this and the
    +		// next request. The subsequent request is handled in the else branch.
    +		// Note that the request destroys the session and its contents, however,
    +		// in IE the MHTML resource is only loaded once and kept in the browser.
    +		if ($_POST["dataurl"] == "false")
    +		{
    +			// In theory, up to 4K in 300 cookies can be used to transfer the data
    +			// directly in the GET request of the image to avoid a session state.
    +			// This can be done by splitting the base64 data into 4K cookies in the
    +			// insert method in the client and then forcing an image prefetch with
    +			// the respective MHTML URL for the image. On the server-side all we
    +			// we need to do is fetch the content location (get param) and data.
    +			// In practice most servers have a header size limit of 8-16K.
    +			session_start();
    +			$url = "'mhtml:'+window.location.href+'?PHPSESSID=".session_id()."&img=$name!$name'";
    +			$_SESSION["image"] = "<!--\n".mhtml($name, $data)."-->\n";
    +		}
    +		else
    +		{
    +			$url = "null";
    +		}
    +
    +		echo "window.parent.insert(\"$name\", \"data:image/png,".$data."\", $url);\n";
    +	}
    +
    +	// NOTE: Ignore "Failed to load resource" error in Chrome,
    +	// see http://code.google.com/p/chromium/issues/detail?id=29180
    +	echo "var iframe = window.parent.document.getElementById('embedimageframe');\n";
    +	echo "iframe.parentNode.removeChild(iframe);";
    +	echo "</script>\n";
    +	echo "</body>\n";
    +	echo "</html>\n";
    +}
    +// Fetches the given image and encodes it as a MHTM page.
    +// On the client-side the page is used as is and the
    +// base64 encoded data is extracted and put into an
    +// mxImageBundle for storage with the diagram.
    +else if (isset($_GET["url"]))
    +{
    +	$url = $_GET["url"];
    +	$img = file_get_contents($url);
    +
    +	// Enables caching of this response
    +	header("Content-Type: text/plain");
    +	header("Cache-Control: private");
    +	header("Expires: Thu, 15 Apr 2030 20:00:00 GMT");
    +	
    +	echo "<!--\n".mhtml("image", base64_encode($img))."-->\n";
    +}
    +// Returns the MHTML stored in the session.
    +else if (isset($_GET["PHPSESSID"]))
    +{
    +	header("Content-Type: text/plain");
    +
    +	// Gets the image from the session and destroys the session (since we do
    +	// not use session cookies there is no need to delete a cookie here).
    +	session_start();
    +	echo $_SESSION["image"];
    +	session_destroy();
    +}
    +else
    +{
    +	header("Content-Type: text/html");
    +	
    +	$userAgent = strtoupper(getenv("HTTP_USER_AGENT"));
    +	$dataUrl = strpos($userAgent, "MSIE 6") === false &&
    +			   strpos($userAgent, "MSIE 7") === false;
    +
    +	// In a real-world environment the following would be done for each entry
    +	// of the image bundle in an XML file for a diagram.
    +	$name = "myImage";
    +	$data = "R0lGODlhEAAQAMIGAAAAAICAAICAgP//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAAEAAQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hilaSSASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs";
    +	
    +	$mhtml = ($dataUrl) ? "" : "\n".mhtml($name, $data);
    +	$bundle = "bundle.putImage('myImage', 'data:image/png,$data=', 'mhtml:' + window.location.href + '!$name');";
    +
    +	// Replaces the placeholders in the template with the data from above.
    +	// Note: In a production environment you should use a template engine.
    +	$page = file_get_contents("embedimage.html");
    +	$page = str_replace("%mhtml%", $mhtml, $page);
    +	$page = str_replace("%dataUrl%", ($dataUrl) ? "true" : "false", $page);
    +	$page = str_replace("%bundle%", $bundle, $page);
    +	
    +	echo $page;
    +}
    +
    +// Flushes the compression buffers	
    +if ($compress)
    +{
    +	ob_end_flush();
    +	ob_end_flush();
    +}
    +?>
    +
    diff --git a/php/examples/fixedpoints.php b/php/examples/fixedpoints.php
    new file mode 100644
    index 000000000..e0ce4183c
    --- /dev/null
    +++ b/php/examples/fixedpoints.php
    @@ -0,0 +1,65 @@
    +<?php
    +/**
    + * $Id: fixedpoints.php,v 1.4 2011-02-23 10:28:19 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +include_once("../src/mxServer.php");
    +
    +/**
    + * Function: main
    + * 
    + * Creates a graph using the API and converts it into a PNG image.
    + */
    +function main()
    +{
    +	// Creates graph with model
    +	$model = new mxGraphModel();
    +	$graph = new mxGraph($model);
    +	$parent = $graph->getDefaultParent();
    +	
    +	// Adds cells into the model
    +	$model->beginUpdate();
    +	try
    +	{
    +		$v1 = $graph->insertVertex($parent, null, "Hello,", 20, 20, 80, 60,
    +			"shape=triangle;perimeter=trianglePerimeter");
    +		$v2 = $graph->insertVertex($parent, null, "World!", 200, 150, 80, 60,
    +			"shape=ellipse;perimeter=ellipsePerimeter");
    +		$v3 = $graph->insertVertex($parent, null, "Hello,", 200, 20, 80, 30);
    +		$e1 = $graph->insertEdge($parent, null, "", $v1, $v2,
    +			"edgeStyle=elbowEdgeStyle;elbow=horizontal;".
    +			"exitX=0.5;exitY=1;exitPerimeter=1;entryX=0;entryY=0;entryPerimeter=1;");
    +		$e2 = $graph->insertEdge($parent, null, "", $v3, $v2,
    +			"edgeStyle=elbowEdgeStyle;elbow=horizontal;orthogonal=0;".
    +			"entryX=0;entryY=0;entryPerimeter=1;");
    +	}
    +	catch (Exception $e)
    +	{
    +		$model->endUpdate();
    +		throw($e);
    +	}
    +	$model->endUpdate();
    +
    +	// Sends PNG image to client
    +	$image = $graph->createImage(null, "#FFFFFF");
    +	
    +	// Creates an interlaced image for better loading in the browser
    +	//imageInterlace($image, 1);
    +	// Marks background color as being transparent
    +	//imageColorTransparent($image, imageColorAllocate($image, 255, 255, 255));
    +
    +	header("Content-Type: image/png");	
    +	echo mxUtils::encodeImage($image);
    +}
    +
    +// Uses a local font so that all examples work on all platforms. This can be
    +// changed to vera on Mac or arial on Windows systems.
    +mxConstants::$DEFAULT_FONTFAMILY = "ttf/verah.ttf";
    +
    +// If you can't get the fonts to render try using one of the following:
    +//mxConstants::$DEFAULT_FONTFAMILY = "C:\WINDOWS\Fonts\arial.ttf";
    +//mxConstants::$DEFAULT_FONTFAMILY = "verah"; putenv("GDFONTPATH=".realpath("./ttf"));
    +//mxConstants::$TTF_ENABLED = false;
    +
    +main();
    +?>
    diff --git a/php/examples/graph.php b/php/examples/graph.php
    new file mode 100644
    index 000000000..a26a59c9d
    --- /dev/null
    +++ b/php/examples/graph.php
    @@ -0,0 +1,57 @@
    +<?php
    +/**
    + * $Id: graph.php,v 1.15 2011-02-23 10:28:19 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +include_once("../src/mxServer.php");
    +
    +/**
    + * Function: main
    + * 
    + * Creates a graph using the API and converts it into a PNG image.
    + */
    +function main()
    +{
    +	// Creates graph with model
    +	$model = new mxGraphModel();
    +	$graph = new mxGraph($model);
    +	$parent = $graph->getDefaultParent();
    +	
    +	// Adds cells into the model
    +	$model->beginUpdate();
    +	try
    +	{
    +	    $v1 = $graph->insertVertex($parent, null, "Hello,", 20, 20, 80, 30);
    +	    $v2 = $graph->insertVertex($parent, null, "World!", 200, 150, 80, 30);
    +	    $e1 = $graph->insertEdge($parent, null, "e1", $v1, $v2);
    +	}
    +	catch (Exception $e)
    +	{
    +		$model->endUpdate();
    +		throw($e);
    +	}
    +	$model->endUpdate();
    +
    +	// Sends PNG image to client
    +	$image = $graph->createImage(null, "#FFFFFF");
    +	
    +	// Creates an interlaced image for better loading in the browser
    +	//imageInterlace($image, 1);
    +	// Marks background color as being transparent
    +	//imageColorTransparent($image, imageColorAllocate($image, 255, 255, 255));
    +
    +	header("Content-Type: image/png");	
    +	echo mxUtils::encodeImage($image);
    +}
    +
    +// Uses a local font so that all examples work on all platforms. This can be
    +// changed to vera on Mac or arial on Windows systems.
    +mxConstants::$DEFAULT_FONTFAMILY = "ttf/verah.ttf";
    +
    +// If you can't get the fonts to render try using one of the following:
    +//mxConstants::$DEFAULT_FONTFAMILY = "C:\WINDOWS\Fonts\arial.ttf";
    +//mxConstants::$DEFAULT_FONTFAMILY = "verah"; putenv("GDFONTPATH=".realpath("./ttf"));
    +//mxConstants::$TTF_ENABLED = false;
    +
    +main();
    +?>
    diff --git a/php/examples/reader.php b/php/examples/reader.php
    new file mode 100644
    index 000000000..7853412e3
    --- /dev/null
    +++ b/php/examples/reader.php
    @@ -0,0 +1,50 @@
    +<?php
    +/**
    + * $Id: reader.php,v 1.14 2011-02-23 10:28:19 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +include_once("../src/mxServer.php");
    +
    +/**
    + * Function: main
    + * 
    + * Reads a graph view XML file and creates HTML on the fly,
    + * ie. without creating a graph and model for it.
    + */
    +function main()
    +{
    +	// Reads the XML representation of a graph_view_! If you need to
    +	// create an image for a graph_model_ then use the following code:
    +	//
    +	// $doc = mxUtils::parseXml($xml);
    +	// $dec = new mxCodec($doc);
    +	// $dec->decode($doc->documentElement, $graph->getModel());
    +	//
    +	// $image = $graph->createImage(null, "#FFFFFF");
    +
    +	$filename = "diagrams/graphview.xml";
    +	//echo mxGraphViewHtmlReader::convertFile($filename);
    +
    +	// Creates a PNG representation of the file
    +	$image =  mxGraphViewImageReader::convertFile($filename, "#FFFFFF");
    +
    +	// Creates an interlaced image for better loading in the browser
    +	//imageInterlace($image, 1);
    +	// Marks background color as being transparent
    +	//imageColorTransparent($image, imageColorAllocate($image, 255, 255, 255));
    +	
    +	header("Content-Type: image/png");
    +	echo mxUtils::encodeImage($image);
    +}
    +
    +// Uses a local font so that all examples work on all platforms. This can be
    +// changed to vera on Mac or arial on Windows systems.
    +mxConstants::$DEFAULT_FONTFAMILY = "ttf/verah.ttf";
    +
    +// If you can't get the fonts to render try using one of the following:
    +//mxConstants::$DEFAULT_FONTFAMILY = "C:\WINDOWS\Fonts\arial.ttf";
    +//mxConstants::$DEFAULT_FONTFAMILY = "verah"; putenv("GDFONTPATH=".realpath("./ttf"));
    +//mxConstants::$TTF_ENABLED = false;
    +
    +main();
    +?>
    diff --git a/php/examples/server.php b/php/examples/server.php
    new file mode 100644
    index 000000000..4b250564b
    --- /dev/null
    +++ b/php/examples/server.php
    @@ -0,0 +1,72 @@
    +<?php
    +/**
    + * $Id: server.php,v 1.10 2011-11-30 10:12:08 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + *
    + * This server handles two types of POST requests:
    + * 
    + *   - Save requests persist a graph model XML to a local file.
    + *     They have an xml and draft (GET) parameter. draft
    + *     is optional, the default value for draft is false.
    + *   - Show requests convert a display XML to an image
    + *     They have an xml and format (GET) paramter.
    + *     xml is the mxGraphView XML data, format
    + *     is one of html, png or jpg.
    + */
    +// Includes the mxGraph library
    +include_once("../src/mxServer.php");
    +
    +// Gets the format parameter from the URL
    +$format = $_GET["format"];
    +
    +// Gets the XML parameter from the POST request
    +$xml = stripslashes($_POST["xml"]);
    +
    +if (isset($xml))
    +{
    +	// Creates an image for the given format
    +	if (isset($format))
    +	{
    +		// Displays a saveAs dialog on the client
    +		header("Content-Disposition: attachment; filename=\"diagram.$format\"");
    +		header("Content-Type: image/$format");
    +		$image = mxGraphViewImageReader::convert($xml, "#FFFFFF");
    +		echo mxUtils::encodeImage($image, $format);
    +	}
    +	else
    +	{
    +		// Stores the xml in a local file
    +		$ext = "tmp";
    +
    +		if (!isset($HTTP_GET_VARS["draft"]))
    +		{
    +			$ext = "xml";
    +			unlink("diagram.tmp");
    +		}
    +		
    +		$filename = "diagram.$ext";
    +		$fh = fopen($filename, "w");
    +		fputs($fh, stripslashes($xml)); 
    +		fclose($fh);
    +		chmod($filename, 0777);
    +	}
    +}
    +else
    +{
    +	// Sends the diagram file to the client if
    +	// there is a draft (tmp-file).	
    +	$filename = "diagram.tmp";
    +
    +	if (file_exists($filename))
    +	{
    +		// Avoids cache in Firefox
    +		header("Content-type: text/xml");
    +		Header("Pragma: no-cache"); #HTTP 1.0
    +		Header("Cache-control: private, no-cache, no-store");
    +		Header("Expires: 0");
    +		$fh=fopen($filename, "r");
    +		fpassthru($fh); 
    +		fclose($fh);
    +	}
    +}
    +?>
    diff --git a/php/examples/session.php b/php/examples/session.php
    new file mode 100644
    index 000000000..8983dfdcd
    --- /dev/null
    +++ b/php/examples/session.php
    @@ -0,0 +1,230 @@
    +<?php
    +/**
    + * $Id: session.php,v 1.10 2010-09-20 10:29:31 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +include_once("../src/mxServer.php");
    +
    +// enables logging to a file
    +mxLog::addLogfile("session.log");
    +session_start();
    +mxLog::enter("main (session ".session_id().")");
    +
    +if (!is_dir("test"))
    +{
    +  mkdir("test");
    +  chmod("test", 0777);
    +}
    +
    +$document = $_SESSION['document'];
    +$sid = session_id();
    +$filename = $document."/".$sid;
    +$delta = $document."/delta.xml";
    +
    +if (!isset($document) || isset($_GET["init"]))
    +{
    +  $document = "test";
    +  $filename = $document."/".session_id();
    +  $delta = $document."/delta.xml";
    +
    +  $_SESSION["document"]  = $document;
    +  session_commit();
    +
    +  header("Pragma: public");
    +  header("Expires: 0");
    +  header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    +  header("Content-Type: application/xhtml+xml");
    +
    +  // Gives the client a unique namespace that
    +  // is used as a prefix for new cell ids.
    +  $ns = md5(uniqid(rand(), true));
    +  mxLog::debug("session $sid initialized: ns=$ns");
    +  echo "<message namespace=\"$ns\">";
    +  echo "<state>";
    +
    +  $fp = fopen("diagrams/graphmodel.xml", "r");
    +  fpassthru($fp);
    +  fclose($fp);
    +  
    +  echo "</state>";
    +  echo "<delta>";
    +  
    +  if (is_file($delta))
    +  {
    +    $fp = fopen($delta, "r+");
    +    fpassthru($fp);
    +    fclose($fp);
    +  }
    +  
    +  echo "</delta>";
    +  echo "</message>";
    +
    +  // Deletes existing buffer
    +  if (is_file($filename))
    +  {
    +    unlink($filename);
    +  }
    +  
    +  touch($filename);
    +  chmod($filename, 0777);
    +}
    +else
    +{
    +  // Gets the XML parameter from the POST request and converts all linefeeds
    +  // into a HTML entity. This is required for correct handling of the XML on
    +  // the client side.
    +  if (isset($_POST["xml"]))
    +  {
    +	  $xml = str_replace("\n", "&#xa;", stripslashes($_POST["xml"]));
    +	  
    +	  // TODO: Take only the edits from the XML
    +	  $edits = "";
    +	  $doc = mxUtils::parseXml($xml);
    +	  
    +	  $child = $doc->documentElement;
    +	  
    +	  if ($child->nodeName == "message")
    +	  {
    +	  	$child = $child->firstChild;
    +
    +	  	while ($child != null)
    +	  	{
    +		  	if ($child->nodeName == "delta")
    +		  	{
    +	  			$edit = $child->firstChild;
    +	  			
    +	  			while ($edit != null)
    +	  			{
    +	  				if ($edit->nodeName == "edit")
    +	  				{
    +	  					$edits .= $doc->saveXML($edit);
    +	  				}
    +	  				
    +	  				$edit = $edit->nextSibling;
    +	  			}
    +	  		}
    +	  		
    +	  		$child = $child->nextSibling;
    +	  	}
    +	  }
    +	  
    +	  // Appends the change to all connected sessions except the incoming
    +	  // session and the global delta file
    +	  if (strlen($edits) > 0)
    +	  {
    +	    mxLog::debug("received changes from ".session_id().
    +	    			": ".strlen($edits)." bytes");
    +	  
    +	    // Makes sure the global delta file exists so that the change is
    +	    // appended below
    +	    if (!is_file($delta))
    +	    {
    +	      touch($delta);
    +	      chmod($delta, 0777);
    +	    }
    +	        
    +	    // Clears out the delta file if this change contains a mxRootChange
    +	    // in which case the previous changes will no longer be visible and
    +	    // just waste bandwidth.
    +	    if (strpos($edits, "mxRootChange") > 0)
    +	    {
    +	      $fp = fopen($delta, "r+");
    +	      fpassthru($fp);
    +	      ftruncate($fp, 0);
    +	      fflush($fp);
    +	      fclose($fp);
    +	    }
    +
    +	    // Dispatches the XML to all sessions except the incoming session
    +	    // TODO: Remove dead sessions
    +	    $fp = opendir($document);
    +
    +	    while($filename = readdir($fp))
    +	    {
    +	      if ($filename!= "." &&
    +	        $filename != ".." &&
    +	        !is_dir("$document/$filename") &&
    +	        $filename != session_id())
    +	      {
    +	        mxLog::debug("dispatch changes to $filename");
    +	        $tmp = fopen("$document/$filename", "a");
    +	        fwrite($tmp, $edits);
    +	        fflush($tmp);
    +	        fclose($tmp);
    +	      }
    +	    }
    +	    
    +	    flush();
    +	  }
    +  }
    +  else
    +  {
    +    // Makes sure to cancel existing pending requests before they consume the
    +    // change data after a refresh, where the request must be served instead.
    +    $requestid = md5(uniqid(rand(), true));
    +    $_SESSION['requestid'] = $requestid;
    +    session_commit();
    +    mxLog::debug("request $requestid enters");
    +  
    +    if (!is_file($filename))
    +    {
    +      touch($filename);
    +      chmod($filename, 0777);
    +    }
    +    else
    +    {
    +      // Keeps the request for 10 secs and asks for changes each second
    +      $timeout = 10;
    +      $count = 0;
    +      while (is_file($filename) &&
    +           filesize($filename) == 0 &&
    +           $count < $timeout &&
    +           $_SESSION['requestid'] == $requestid)
    +       {
    +         sleep(1);
    +         clearstatcache();
    +         $count++;
    +                 
    +         // Sync the session state
    +         session_start();
    +         session_commit();
    +      }
    +      
    +      // Sync the session state
    +      session_start();
    +      session_commit();
    +
    +      if ($_SESSION['requestid'] != $requestid)
    +      {
    +        mxLog::debug("request $requestid has died");    
    +      }
    +      else if (filesize($filename) > 0)
    +      {
    +        mxLog::debug("request $requestid leaves: ".filesize($filename)." bytes");
    +        header("Pragma: public");
    +        header("Expires: 0");
    +        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    +        header("Content-Type: application/xhtml+xml");
    +        
    +        // Sends the changes to the client
    +        echo "<message>";
    +        echo "<delta>";
    +        $fp = fopen($filename, "r+");
    +        fpassthru($fp);
    +        ftruncate($fp, 0);
    +        fflush($fp);
    +        fclose($fp);
    +        echo "</delta>";
    +        echo "</message>";
    +      }
    +      else
    +      {
    +        touch($filename);
    +      }
    +    }
    +  }
    +}
    +
    +mxLog::leave();
    +mxLog::close();
    +?>
    diff --git a/php/examples/template.html b/php/examples/template.html
    new file mode 100644
    index 000000000..d05ad900d
    --- /dev/null
    +++ b/php/examples/template.html
    @@ -0,0 +1,68 @@
    +<!--
    +  $Id: template.html,v 1.6 2011-04-28 15:31:10 gaudenz Exp $
    +  Copyright (c) 2008, Gaudenz Alder
    +  
    +  Template example for mxGraph. This is used as a template HTML file by the
    +  backends to demonstrate the deployment of the client with a graph embedded
    +  in the page as XML data (see graph variable in the onload-handler).
    +  
    +  *** THIS FILE MUST BE DEPLOYED BY ONE OF THE BACKENDS! ***
    +-->
    +<html>
    +<head>
    +	<title>Hello, World! example for mxGraph</title>
    +
    +	<!-- Sets the basepath for the library if not in same directory -->
    +	<script type="text/javascript">
    +		mxBasePath = '../../javascript/src';
    +	</script>
    +
    +	<!-- Loads and initializes the library -->
    +	<script type="text/javascript" src="../../javascript/src/js/mxClient.js"></script>
    +
    +	<!-- Example code -->
    +	<script type="text/javascript">
    +		// Program starts here. Creates a sample graph in the
    +		// DOM node with the specified ID. This function is invoked
    +		// from the onLoad event handler of the document (see below).
    +		function main(container, xml)
    +		{
    +			// Checks if the browser is supported
    +			if (!mxClient.isBrowserSupported())
    +			{
    +				// Displays an error message if the browser is not supported.
    +				mxUtils.error('Browser is not supported!', 200, false);
    +			}
    +			else
    +			{
    +				// Creates the graph inside the given container
    +				var graph = new mxGraph(container);
    +				
    +				// Adds rubberband selection to the graph
    +				new mxRubberband(graph);
    +				
    +				var doc = mxUtils.parseXml(xml);
    +				var codec = new mxCodec(doc);
    +				codec.decode(doc.documentElement, graph.getModel());
    +			}
    +			
    +			// Adds button for saving image via PHP backend
    +			document.body.appendChild(mxUtils.button('Save Image', function()
    +			{
    +    			var node = mxUtils.getViewXml(graph, 1);
    +    			var xml = mxUtils.getXml(node);
    +
    +				new mxXmlRequest('deployment.php', 'xml=' + encodeURIComponent(xml)).simulate(document, '_blank');
    +			}));
    +		};
    +	</script>
    +</head>
    +
    +<!-- Page passes the container for the graph to the grogram -->
    +<body onload="main(document.getElementById('graphContainer'), '%graph%');">
    +
    +	<!-- Creates a container for the graph with a grid wallpaper -->
    +	<div id="graphContainer" style="overflow:hidden;width:321px;height:241px;background:url('../../javascript/examples/editors/images/grid.gif')">
    +	</div>
    +</body>
    +</html>
    diff --git a/php/examples/ttf/verah.ttf b/php/examples/ttf/verah.ttf
    new file mode 100644
    index 000000000..fd3e07692
    Binary files /dev/null and b/php/examples/ttf/verah.ttf differ
    diff --git a/php/index.html b/php/index.html
    new file mode 100644
    index 000000000..9843309bc
    --- /dev/null
    +++ b/php/index.html
    @@ -0,0 +1,88 @@
    +<html>
    +<head>
    +	<title>mxGraph PHP</title>
    +	<link rel="stylesheet" HREF="../docs/css/html.css" CHARSET="ISO-8859-1" TYPE="text/css">
    +</head>
    +<body>
    +<h1>mxGraph PHP</h1>
    +<h2>Installation</h2>
    +<p>
    +	The following assumes that an Apache server or another server capable of
    +	running PHP 5 is running on the default port (80) on localhost. The
    +	mxGraph top-level directory is assumed to be located at
    +	<a href="http://localhost/mxgraph">http://localhost/mxgraph</a>.
    +</p>
    +<h2>Examples</h2>
    +<h3>Graph</h3>
    +<p>
    +	In this example, a graph is programmatically created and turned into a PNG
    +	image. Point your browser to
    +	<a href="http://localhost/mxgraph/php/examples/graph.php">http://localhost/mxgraph/php/examples/graph.php</a>
    +	to run this example.
    +</p>
    +<h3>Reader</h3>
    +<p>
    +	Creates a HTML graphical representation for a GraphView which is stored in
    +	an XML file. Point your browser to 
    +	<a href="http://localhost/mxgraph/php/examples/reader.php">http://localhost/mxgraph/php/examples/reader.php</a>
    +	to run this example.
    +</p>
    +<h3>Server</h3>
    +<p>
    +	In order to be able to save files, the server.php file demonstrates how to
    +	accept a post request from a client, and put the data from the client
    +	request into a file on the disk.
    +</p>
    +<p>
    +	Before accessing the HTML files, you must modify the config file of the
    +	example you want to use. For example, when using the diagrameditor.html
    +	file, you should modify javascript/examples/editors/config/diagrameditor.xml.
    +	The only change to the config file is to add the urlPost attribute to the
    +	mxEditor node as follows:
    +</p>
    +<pre>
    +&lt;mxEditor urlPost="php/examples/server.php" ... &gt;
    +</pre>
    +<p>
    +	This enables the save function in the editor and will post the XML of the
    +	current diagram to the server.php on the server. The script will write the
    +	diagram to a local file called diagram.xml in the same directory as the
    +	script is located.
    +</p>
    +<p>
    +	Note that you will have to add the save action in the user interface. To
    +	add the save action to the dropdown list of actions, change the items in
    +	the diagrameditor.html file as follows:
    +</p>
    +<pre>
    +var items = ['redo', 'ungroup', 'cut', 'copy', 'paste', 'show', 'exportImage', 'save'];
    +</pre>
    +<p>
    +	To use the example, point your browser to
    +	<a href="http://localhost/mxgraph/javascript/examples/editors/diagrameditor.html">http://localhost/mxgraph/javascript/examples/editors/diagrameditor.html</a>
    +</p>
    +<h3>Session</h3>
    +<p>
    +	The session.php example demonstrates the sharing of diagrams across a
    +	number of clients. The program itself does not have an object
    +	representation of the graph in memory, it only serves as a dispatcher for
    +	the XML data among the clients.
    +</p>
    +<p>
    +	To use the example, the respective session URLs must be assigned in the
    +	mxEditor either programmatically or by use of the same config file as
    +	above. For diagram sharing, the following attributes must be assigned:
    +</p>
    +<pre>
    +&lt;mxEditor urlInit="/mxgraph/php/examples/session.php?init"
    +			 urlPoll="/mxgraph/php/examples/session.php"
    +			 urlNotify="/mxgraph/php/examples/session.php"&gt;
    +</pre>
    +<p>
    +	To use the example, point your browser to
    +	<a href="http://localhost/mxgraph/javascript/examples/editors/diagrameditor.html">http://localhost/mxgraph/javascript/examples/editors/diagrameditor.html</a>
    +</p>
    +<hr size="1">
    +&copy; 2006-2010 by JGraph Ltd.
    +</body>
    +</html>
    diff --git a/php/src/canvas/mxGdCanvas.php b/php/src/canvas/mxGdCanvas.php
    new file mode 100644
    index 000000000..b406ffbdc
    --- /dev/null
    +++ b/php/src/canvas/mxGdCanvas.php
    @@ -0,0 +1,1414 @@
    +<?php
    +/**
    + * $Id: mxGdCanvas.php,v 1.110 2011-11-14 13:42:14 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxGdCanvas
    +{
    +	/** 
    +	 * Variable: antialias
    +	 *
    +	 * Specifies if image aspect should be preserved in drawImage. Default is true.
    +	 */
    +	public static $PRESERVE_IMAGE_ASPECT = true;
    +	
    +	/**
    +	 * Class: mxGdCanvas
    +	 *
    +	 * Canvas for drawing graphs using the GD library. This class requires GD
    +	 * support (GDLib). Note that rounded corners, gradients and word wrapping
    +	 * are not supported by GD.
    +	 * 
    +	 * Variable: antialias
    +	 *
    +	 * Specifies if antialiasing should be enabled. Default is false. NOTE: GD
    +	 * has a known bug where strokeWidths are ignored if this is enabled.
    +	 */
    +	var $antialias = false;
    +
    +	/**
    +	 * Variable: enableTtf
    +	 *
    +	 * Specifies if truetype fonts are enabled if available. Default is <mxConstants.TTF_ENABLED>.
    +	 */
    +	var $enableTtf;
    +
    +	/**
    +	 * Variable: shadowColor
    +	 *
    +	 * Holds the color object for the shadow color defined in
    +	 * <mxConstants.W3C_SHADOWCOLOR>.
    +	 */
    +	var $shadowColor;
    +
    +	/**
    +	 * Defines the base path for images with relative paths. Trailing slash
    +	 * is required. Default is an empty string.
    +	 */
    +	var $imageBasePath;
    +
    +	/**
    +	 * Variable: imageCache
    +	 *
    +	 * Holds the image cache.
    +	 */
    +	var $imageCache = array();
    +	
    +	/**
    +	 * Variable: image
    +	 *
    +	 * Holds the image.
    +	 */
    +	var $image;
    +	
    +	/**
    +	 * Variable: height
    +	 *
    +	 * Holds the height.
    +	 */
    +	var $scale;
    +
    +	/**
    +	 * Constructor: mxGdCanvas
    +	 *
    +	 * Constructs a new GD canvas. Use a HTML color definition for
    +	 * the optional background parameter, eg. white or #FFFFFF.
    +	 * The buffered <image> is only created if the given
    +	 * width and height are greater than 0.
    +	 */
    +	function mxGdCanvas($width = 0, $height = 0, $scale = 1,
    +		$background = null, $imageBasePath = "")
    +	{
    +	 	$this->enableTtf = mxConstants::$TTF_ENABLED;
    +		$this->imageBasePath = $imageBasePath;
    +	 	$this->scale = $scale;
    +	 	
    +	 	if ($width > 0 && $height > 0)
    +	 	{
    +			$this->image = @imageCreateTrueColor($width, $height);
    +			
    +			if ($this->antialias &&
    +				function_exists("imageantialias"))
    +			{
    +				imageantialias($this->image, true);
    +	 		}
    +			
    +			if (isset($background))
    +			{
    +				$color = $this->getColor($background);
    +				imageFilledRectangle($this->image,
    +					0, 0, $width, $height, $color);
    +			}
    +			
    +			$this->shadowColor = $this->getColor(mxConstants::$W3C_SHADOWCOLOR);
    +		}
    +	}
    +
    +	/**
    +	 * Function: loadImage
    +	 * 
    +	 * Returns an image instance for the given URL. If the URL has
    +	 * been loaded before than an instance of the same instance is
    +	 * returned as in the previous call.
    +	 */
    +	function loadImage($image)
    +	{
    +		$img = (array_key_exists($image, $this->imageCache)) ? $this->imageCache[$image] : null;
    +		
    +		if (!isset($img))
    +		{
    +			$img = mxUtils::loadImage($image);
    +
    +			if (isset($img))
    +			{
    +				$this->imageCache[$image] = $img;
    +			}
    +		}
    +		
    +		return $img;
    +	}
    +
    +	/**
    +	 * Function: drawCell
    +	 * 
    +	 * Draws the given cell state.
    +	 */
    +	function drawCell($state)
    +	{
    +		$style = $state->style;
    +		
    +		if (sizeof($state->absolutePoints) > 1)
    +		{
    +			$dashed = mxUtils::getNumber($style, mxConstants::$STYLE_DASHED);
    +			$stroke = mxUtils::getValue($style, mxConstants::$STYLE_STROKECOLOR);
    +			$strokeWidth = mxUtils::getNumber($style, mxConstants::$STYLE_STROKEWIDTH, 1) * $this->scale;
    +
    +			if ($stroke == "none")
    +			{
    +				$stroke = null;
    +			}
    +						
    +			if (isset($this->image))
    +			{
    +				// KNOWN: Stroke widths are ignored by GD if antialias is on
    +				imagesetthickness($this->image, $strokeWidth);
    +			}
    +	
    +			// Draws the start marker
    +			$marker = mxUtils::getValue($style, mxConstants::$STYLE_STARTARROW);
    +	
    +			$pts = $state->absolutePoints;
    +			$p0 = $pts[0];
    +			$pt = $pts[1];
    +			$offset = null;
    +			
    +			if (isset($marker))
    +			{
    +				$size = mxUtils::getNumber($style, mxConstants::$STYLE_STARTSIZE,
    +					mxConstants::$DEFAULT_MARKERSIZE);
    +				$offset = $this->drawMarker($marker, $pt, $p0, $size, $stroke);
    +			}
    +			else
    +			{
    +				$dx = $pt->x - $p0->x;
    +				$dy = $pt->y - $p0->y;
    +	
    +				$dist = max(1, sqrt($dx * $dx + $dy * $dy));
    +				$nx = $dx * $strokeWidth / $dist;
    +				$ny = $dy * $strokeWidth / $dist;
    +				
    +				$offset = new mxPoint($nx / 2, $ny / 2);
    +			}
    +
    +			// Applies offset to the point
    +			if (isset($offset))
    +			{
    +				$p0 = $p0->copy();
    +				$p0->x += $offset->x;
    +				$p0->y += $offset->y;
    +				
    +				unset($offset);
    +			}
    +		
    +			// Draws the end marker
    +			$len = sizeof($pts);
    +			$marker = mxUtils::getValue($style, mxConstants::$STYLE_ENDARROW);
    +			
    +			$pe = $pts[$len - 1];
    +			$pt = $pts[$len - 2];
    +			$offset = null;
    +			
    +			if (isset($marker))
    +			{
    +				$size = mxUtils::getNumber($style, mxConstants::$STYLE_ENDSIZE,
    +					mxConstants::$DEFAULT_MARKERSIZE);
    +				$offset = $this->drawMarker($marker, $pt, $pe, $size, $stroke);
    +			}
    +			else
    +			{
    +				$dx = $pt->x - $p0->x;
    +				$dy = $pt->y - $p0->y;
    +	
    +				$dist = max(1, sqrt($dx * $dx + $dy * $dy));
    +				$nx = $dx * $strokeWidth / $dist;
    +				$ny = $dy * $strokeWidth / $dist;
    +				
    +				$offset = new mxPoint($nx / 2, $ny / 2);
    +			}
    +
    +			// Applies offset to the point			
    +			if (isset($offset))
    +			{
    +				$pe = $pe->copy();
    +				$pe->x += $offset->x;
    +				$pe->y += $offset->y;
    +				
    +				unset($offset);
    +			}
    +
    +			// Draws the line segments
    +			$pt = $p0;
    +			
    +		 	for ($i = 1; $i < $len - 1; $i++)
    +		 	{
    +		 		$tmp = $pts[$i];
    +		 		$this->drawLine($pt->x, $pt->y, $tmp->x, $tmp->y, $stroke, $dashed);
    +		 		$pt = $tmp;
    +			}
    +			
    +			$this->drawLine($pt->x, $pt->y, $pe->x, $pe->y, $stroke, $dashed);
    +			
    +			if (isset($this->image))
    +			{
    +				imagesetthickness($this->image, 1);
    +			}
    +		}
    +		else
    +		{
    +			$x = $state->x;
    +			$y = $state->y;
    +			$w = $state->width;
    +			$h = $state->height;
    +
    +			// Draws the vertex
    +			if (mxUtils::getValue($style, mxConstants::$STYLE_SHAPE, "") !=
    +            	mxConstants::$SHAPE_SWIMLANE)
    +			{
    +				$this->drawShape($x, $y, $w, $h, $style);
    +			}
    +			else
    +			{
    +				$start = mxUtils::getNumber($style, mxConstants::$STYLE_STARTSIZE,
    +					mxConstants::$DEFAULT_STARTSIZE) * $this->scale;
    +
    +                    // Removes some styles to draw the content area
    +				$cloned = array_slice($style, 0);
    +				unset($cloned[mxConstants::$STYLE_FILLCOLOR]);
    +				unset($cloned[mxConstants::$STYLE_ROUNDED]);
    +
    +				// TODO: Clone style, remove fill and rounded and take into account
    +				// the label orientation
    +				//if (mxUtils::getValue($style, mxConstants::$STYLE_HORIZONTAL, true))
    +				{
    +					$this->drawShape($x, $y, $w, min($h, $start), $style);
    +					$this->drawShape($x, $y, $w, $h, $cloned);
    +				}
    +			}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: drawLabel
    +	 * 
    +	 * Draws the given label.
    +	 */
    +	function drawLabel($text, $state, $html = false)
    +	{
    +		$bounds = $state->labelBounds;
    +		
    +		if (isset($bounds))
    +		{
    +			$x = $bounds->x;
    +			$y = $bounds->y;
    +			$w = $bounds->width;
    +			$h = $bounds->height;
    +			
    +			$this->drawText($text, $x, $y, $w, $h, $state->style);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: drawMarker
    +	 * 
    +	 * Draws the specified marker.
    +	 */
    +	function drawMarker($type, $p0, $pe, $size, $stroke)
    +	{
    +		$offset = null;
    +
    +		// Computes the norm and the inverse norm
    +		$dx = $pe->x - $p0->x;
    +		$dy = $pe->y - $p0->y;
    +
    +		$dist = max(1, sqrt($dx*$dx+$dy*$dy));
    +		$absSize = $size * $this->scale;
    +		$nx = $dx * $absSize / $dist;
    +		$ny = $dy * $absSize / $dist;
    +		
    +		$pe = $pe->copy();
    +		$pe->x -= $nx / (2 * $size);
    +		$pe->y -= $ny / (2 * $size);
    +
    +		if ($type == mxConstants::$ARROW_CLASSIC ||
    +			$type == mxConstants::$ARROW_BLOCK)
    +		{
    +			$poly = array($pe->x, $pe->y,
    +				$pe->x - $nx - $ny / 2,
    +				$pe->y - $ny + $nx / 2);
    +
    +			if ($type == mxConstants::$ARROW_CLASSIC)
    +			{
    +				array_push($poly, $pe->x - $nx * 3 / 4, $pe->y - $ny * 3 / 4);
    +			}
    +			
    +			array_push($poly, $pe->x + $ny / 2 - $nx, $pe->y - $ny - $nx / 2);
    +			$this->drawPolygon($poly, $stroke, $stroke, false);
    +			
    +			$offset = new mxPoint(-$nx * 3 / 4, -$ny * 3 / 4);
    +		}
    +		else if ($type == mxConstants::$ARROW_OPEN)
    +		{
    +			$nx *= 1.2;
    +			$ny *= 1.2;
    +			
    +			$this->drawLine($pe->x - $nx -  $ny / 2, $pe->y - $ny + $nx / 2,
    +				$pe->x - $nx / 6, $pe->y - $ny / 6, $stroke);
    +			$this->drawLine($pe->x - $nx / 6, $pe->y - $ny / 6,
    +				$pe->x + $ny / 2 - $nx, $pe->y - $ny - $nx / 2, $stroke);
    +
    +			$offset = new mxPoint(-$nx / 4, -$ny / 4);
    +		}
    +		else if ($type == mxConstants::$ARROW_OVAL)
    +		{
    +			$nx *= 1.2;
    +			$ny *= 1.2;
    +			$absSize *= 1.2;
    +			
    +			$tmp = $absSize / 2;
    +			$x = $pe->x - $nx / 2 - $tmp;
    +			$y = $pe->y - $ny / 2 - $tmp;
    +			
    +			$this->drawOval($x, $y, $absSize, $absSize, $stroke, $stroke, false);
    +			
    +			$offset = new mxPoint(-$nx / 2, -$ny / 2);
    +		}
    +		else if ($type == mxConstants::$ARROW_DIAMOND)
    +		{
    +			$nx *= 1.2;
    +			$ny *= 1.2;
    +			
    +			$poly = array($pe->x + $nx / 2, $pe->y + $ny / 2,
    +				$pe->x - $ny / 2, $pe->y + $nx / 2,
    +				$pe->x - $nx / 2, $pe->y - $ny / 2,
    +				$pe->x + $ny, $pe->y - $nx / 2);
    +			$this->drawPolygon($poly, $stroke, $stroke, false);
    +		}
    +		
    +		return $offset;
    +	}
    +
    +	/**
    +	 * Function: getImage
    +	 *
    +	 * Returns an image that represents this canvas.
    +	 */
    +	function getImage()
    +	{
    +		return $this->image;
    +	}
    +
    +	/**
    +	 * Function: setImage
    +	 *
    +	 * Sets the image that represents the canvas.
    +	 */
    +	function setImage($img)
    +	{
    +		$this->image = $img;
    +	}
    +
    +	/**
    +	 * Function: getImageForStyle
    +	 *
    +	 * Returns an image that represents this canvas.
    +	 */
    +	function getImageForStyle($style)
    +	{
    +		$filename = mxUtils::getValue($style, mxConstants::$STYLE_IMAGE, "");
    +
    +		if ($filename != null && strpos($filename, "/") > 0)
    +		{
    +			$filename = $this->imageBasePath.$filename;
    +		}
    +
    +		return $filename;
    +	}
    +	
    +	/**
    +	 * Function: drawLine
    +	 *
    +	 * Draws the given line.
    +	 */
    +	function drawLine($x0, $y0, $x1, $y1, $stroke = null, $dashed = false)
    +	{
    +		$stroke = $this->getColor($stroke, "black");
    +		
    +		if ($dashed)
    +		{
    +			// ImageDashedLine only works for vertical lines and
    +			// ImageSetStyle doesnt work with antialiasing.
    +			if ($this->antialias &&
    +				function_exists("imageantialias"))
    +			{
    +				imageantialias($this->image, false);
    +	 		}
    +	 		
    +			$st = array($stroke, $stroke, $stroke, $stroke,
    +				IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT,
    +				IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT);
    +			imageSetStyle($this->image, $st);
    +			imageLine($this->image, $x0, $y0, $x1, $y1, IMG_COLOR_STYLED);
    +
    +			if ($this->antialias &&
    +				function_exists("imageantialias"))
    +			{
    +				imageantialias($this->image, true);
    +	 		}
    +		}
    +		else
    +		{
    +			imageLine($this->image, $x0, $y0, $x1, $y1, $stroke);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: drawShape
    +	 *
    +	 * Draws the given shape.
    +	 */
    +	function drawShape($x, $y, $w, $h, $style)
    +	{
    +		// Draws the shape
    +		$shape = mxUtils::getValue($style, mxConstants::$STYLE_SHAPE);
    +		$image = $shape == mxConstants::$SHAPE_IMAGE;
    +		
    +		// Redirects background styles for image shapes
    +		$fillStyle = ($image) ? mxConstants::$STYLE_IMAGE_BACKGROUND : mxConstants::$STYLE_FILLCOLOR;
    +		$strokeStyle = ($image) ? mxConstants::$STYLE_IMAGE_BORDER : mxConstants::$STYLE_STROKECOLOR;
    +
    +        // Prepares the background and foreground
    +		$stroke = mxUtils::getValue($style, $strokeStyle);
    +		$fill = mxUtils::getValue($style, $fillStyle);
    +					
    +		if ($stroke == "none")
    +		{
    +			$stroke = null;
    +		}
    +		
    +		if ($fill == "none")
    +		{
    +			$fill = null;
    +		}
    +		
    +		if ($fill != null || $stroke != null || $image)
    +		{
    +			$shadow = mxUtils::getValue($style, mxConstants::$STYLE_SHADOW);
    +			$strokeWidth = mxUtils::getValue($style, mxConstants::$STYLE_STROKEWIDTH, 1) * $this->scale;
    +			
    +			if (isset($this->image))
    +			{
    +				imagesetthickness($this->image, $strokeWidth);
    +			}
    +
    +			if ($shape == mxConstants::$SHAPE_ELLIPSE)
    +	 		{
    +	 			$this->drawOval($x, $y, $w, $h, $fill, $stroke, $shadow);
    +	 		}
    +	 		else if ($shape == mxConstants::$SHAPE_LINE)
    +	 		{
    +				$direction = mxUtils::getValue($style, mxConstants::$STYLE_DIRECTION, mxConstants::$DIRECTION_EAST);
    +	 			
    +	            if ($direction == mxConstants::$DIRECTION_EAST || $direction == mxConstants::$DIRECTION_WEST)
    +	            {
    +	                $mid = $y + $h / 2;
    +	                $this->drawLine($x, $mid, $x + $w, $mid, $stroke);
    +	            }
    +	            else
    +	            {
    +	                $mid = $x + $w / 2;
    +	                $this->drawLine($mid, $y, $mid, $y + $h, $stroke);
    +	            }
    +	 			
    +	 		}
    +	 		else if ($shape == mxConstants::$SHAPE_DOUBLE_ELLIPSE)
    +	 		{
    +	 			$this->drawOval($x, $y, $w, $h, $fill, $stroke, $shadow);
    +	 			
    +	 			$inset = (3 + 1) * $this->scale;
    +	 			$x += $inset;
    +	 			$y += $inset;
    +	 			$w -= 2 * $inset;
    +	 			$h -= 2 * $inset;
    +	 			$this->drawOval($x, $y, $w, $h, null, $stroke, false);
    +	 		}
    +	 		else if ($shape == mxConstants::$SHAPE_RHOMBUS)
    +	 		{
    +				$this->drawRhombus($x, $y, $w, $h, $fill, $stroke, $shadow);
    +	 		}
    +	 		else if ($shape == mxConstants::$SHAPE_TRIANGLE)
    +	 		{
    +				$dir = mxUtils::getValue($style, mxConstants::$STYLE_DIRECTION);
    +				$this->drawTriangle($x, $y, $w, $h, $fill, $stroke, $shadow, $dir);
    +	 		}
    +	 		else if ($shape == mxConstants::$SHAPE_HEXAGON)
    +	 		{
    +				$dir = mxUtils::getValue($style, mxConstants::$STYLE_DIRECTION);
    +				$this->drawHexagon($x, $y, $w, $h, $fill, $stroke, $shadow, $dir);
    +	 		}
    +	 		else if ($shape == mxConstants::$SHAPE_CYLINDER)
    +	 		{
    +			 	$this->drawCylinder($x, $y, $w, $h, $fill, $stroke, $shadow);
    +	 		}
    +	 		else if ($shape == mxConstants::$SHAPE_CLOUD)
    +	 		{
    +			 	$this->drawCloud($x, $y, $w, $h, $fill, $stroke, $shadow);
    +	 		}
    +	 		else if ($shape == mxConstants::$SHAPE_ACTOR)
    +	 		{
    +			 	$this->drawActor($x, $y, $w, $h, $fill, $stroke, $shadow);
    +	 		}
    +	 		else
    +	 		{
    +				$rounded = mxUtils::getValue($style, mxConstants::$STYLE_ROUNDED);
    +				$dashed = mxUtils::getNumber($style, mxConstants::$STYLE_DASHED);
    +				$this->drawRect($x, $y, $w, $h, $fill, $stroke, $shadow, $rounded, $dashed);
    +	
    +				// Draws the image as a shape
    +		 		if ($image)
    +		 		{
    +					$img = $this->getImageForStyle($style);
    +					
    +					if ($img != null)
    +					{
    +						$aspect = mxGdCanvas::$PRESERVE_IMAGE_ASPECT;
    +						$flipH = mxUtils::getValue($style, mxConstants::$STYLE_IMAGE_FLIPH, 0);
    +						$flipV = mxUtils::getValue($style, mxConstants::$STYLE_IMAGE_FLIPV, 0);
    +						
    +						$this->drawImage($x, $y, $w, $h, $img, $aspect, $flipH, $flipV);
    +					}
    +				}
    +	 			
    +				// Draws the image of the label inside the label shape
    +	 			if ($shape == mxConstants::$SHAPE_LABEL)
    +	 			{
    +					$image = $this->getImageForStyle($style);
    +					
    +					if ($image != null)
    +					{
    +		 				$imgAlign = mxUtils::getValue($style, mxConstants::$STYLE_IMAGE_ALIGN);
    +		 				$imgValign = mxUtils::getValue($style, mxConstants::$STYLE_IMAGE_VERTICAL_ALIGN);
    +		 				$imgWidth = mxUtils::getNumber($style, mxConstants::$STYLE_IMAGE_WIDTH,
    +		 					mxConstants::$DEFAULT_IMAGESIZE) * $this->scale;
    +		 				$imgHeight = mxUtils::getNumber($style, mxConstants::$STYLE_IMAGE_HEIGHT,
    +		 					mxConstants::$DEFAULT_IMAGESIZE) * $this->scale;
    +		 				$spacing = mxUtils::getNumber($style, mxConstants::$STYLE_SPACING, 2) * $this->scale;
    +		 				
    +		 				$imgX = $x;
    +		 				
    +		 				if ($imgAlign == mxConstants::$ALIGN_LEFT)
    +		 				{
    +		 					$imgX += $spacing;
    +		 				}
    +		 				else if ($imgAlign == mxConstants::$ALIGN_RIGHT)
    +		 				{
    +		 					$imgX += $w - $imgWidth - $spacing;
    +		 				}
    +		 				else // CENTER
    +		 				{
    +		 					$imgX += ($w - $imgWidth) / 2;
    +		 				}
    +		 				
    +		 				$imgY = $y;
    +		 				
    +		 				if ($imgValign == mxConstants::$ALIGN_TOP)
    +		 				{
    +		 					$imgY += $spacing;
    +		 				}
    +		 				else if ($imgValign == mxConstants::$ALIGN_BOTTOM)
    +		 				{
    +		 					$imgY += $h - $imgHeight - $spacing;
    +		 				}
    +		 				else // MIDDLE
    +		 				{
    +		 					$imgY += ($h - $imgHeight) / 2;
    +		 				}
    +		
    +						$this->drawImage($imgX, $imgY, $imgWidth, $imgHeight, $image);
    +					} 				
    +	 			}
    +			}
    +			
    +			if (isset($this->image))
    +			{
    +				imagesetthickness($this->image, 1);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Function: drawPolygon
    +	 *
    +	 * Draws the given polygon.
    +	 */
    +	function drawPolygon($points, $fill = null, $stroke = null, $shadow = false)
    +	{
    +		if (isset($this->image))
    +		{
    +			$n = sizeof($points) / 2;
    +			
    +			if (isset($fill))
    +		 	{
    +				if ($shadow)
    +				{
    +					imageFilledPolygon($this->image, $this->offset($points),
    +						$n, $this->shadowColor);	
    +				}
    +				
    +			 	$fill = $this->getColor($fill);
    +				imageFilledPolygon($this->image, $points, $n, $fill);
    +			}
    +			
    +		 	if (isset($stroke))
    +		 	{
    +			 	$stroke = $this->getColor($stroke);
    +				imagePolygon($this->image, $points, $n, $stroke);
    +			}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: drawRect
    +	 *
    +	 * Draws then given rectangle. Rounded is currently ignored.
    +	 */
    +	function drawRect($x, $y, $w, $h, $fill = null, $stroke = null,
    +		$shadow = false, $rounded = false, $dashed = false)
    +	{
    +		// TODO: Rounded rectangles
    +	 	if (isset($fill))
    +	 	{
    +			if ($shadow)
    +			{
    +				imageFilledRectangle($this->image,
    +					$x + mxConstants::$SHADOW_OFFSETX ,
    +					$y + mxConstants::$SHADOW_OFFSETY,
    +					$x + mxConstants::$SHADOW_OFFSETX + $w,
    +					$y + mxConstants::$SHADOW_OFFSETX + $h,
    +					$this->shadowColor);
    +			}
    +			
    +		 	$fill = $this->getColor($fill);
    +			imageFilledRectangle($this->image, $x, $y, $x + $w, $y + $h, $fill);
    +		}
    +		
    +	 	if (isset($stroke))
    +	 	{
    +		 	if ($dashed)
    +		 	{
    +		 		$this->drawLine($x, $y, $x + $w, $y, $stroke, $dashed);
    +		 		$this->drawLine($x + $w, $y, $x + $w, $y + $h, $stroke, $dashed);
    +		 		$this->drawLine($x, $y + $h, $x + $w, $y + $h, $stroke, $dashed);
    +		 		$this->drawLine($x, $y + $h, $x, $y, $stroke, $dashed);
    +		 	}
    +		 	else
    +		 	{
    +		 		$stroke = $this->getColor($stroke);
    +		 		imageRectangle($this->image, $x, $y, $x + $w, $y + $h, $stroke);
    +		 	}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: drawOval
    +	 *
    +	 * Draws then given ellipse.
    +	 */
    +	function drawOval($x, $y, $w, $h, $fill = null, $stroke = null, $shadow = false)
    +	{
    +	 	if (isset($fill))
    +	 	{
    +			if ($shadow)
    +			{
    +				imageFilledEllipse($this->image,
    +					$x + $w / 2 + mxConstants::$SHADOW_OFFSETX,
    +					$y + $h / 2 + mxConstants::$SHADOW_OFFSETY,
    +					$w, $h, $this->shadowColor);	
    +			}
    +			
    +		 	$fill = $this->getColor($fill);
    +			imageFilledEllipse($this->image, $x + $w / 2, $y + $h / 2,
    +				$w, $h, $fill);
    +		}
    +		
    +	 	if (isset($stroke))
    +	 	{
    +		 	$stroke = $this->getColor($stroke);
    +			imageEllipse($this->image, $x + $w / 2, $y + $h / 2,
    +				$w, $h, $stroke);
    +		}
    +	}
    +
    +	/**
    +	 * Function: drawRhombus
    +	 *
    +	 * Draws then given rhombus.
    +	 */
    +	function drawRhombus($x, $y, $w, $h, $fill = null, $stroke = null, $shadow = false)
    +	{
    +		$halfWidth = $x + $w / 2;
    +		$halfHeight = $y + $h / 2;
    +
    +		$points = array($halfWidth, $y, $x + $w, $halfHeight,
    +			$halfWidth, $y + $h, $x, $halfHeight, $halfWidth, $y);
    +			
    +		$this->drawPolygon($points, $fill, $stroke, $shadow);
    +	}
    +	
    +	/**
    +	 * Function: drawTriangle
    +	 *
    +	 * Draws then given triangle.
    +	 */
    +	function drawTriangle($x, $y, $w, $h, $fill = null, $stroke = null,
    +		$shadow = false, $direction = null)
    +	{
    +		if ($direction == mxConstants::$DIRECTION_NORTH)
    +		{
    +			$points = array($x, $y + $h, $x + $w / 2, $y,
    +				$x + $w, $y + $h, $x, $y + $h);
    +		}
    +		else if ($direction == mxConstants::$DIRECTION_SOUTH)
    +		{
    +			$points = array($x, $y, $x + $w / 2, $y + $h,
    +				$x + $w, $y, $x, $y);
    +		}
    +		else if ($direction == mxConstants::$DIRECTION_WEST)
    +		{
    +			$points = array($x + $w, $y, $x, $y + $h / 2,
    +				$x + $w, $y + $h, $x + $w, $y);
    +		}
    +		else // east
    +		{
    +			$points = array($x, $y, $x + $w, $y + $h / 2,
    +				$x, $y + $h, $x, $y);
    +		}
    +		
    +		$this->drawPolygon($points, $fill, $stroke, $shadow);
    +	}
    +		
    +	/**
    +	 * Function: drawHexagon
    +	 *
    +	 * Draws then given haxagon.
    +	 */
    +	function drawHexagon($x, $y, $w, $h, $fill = null, $stroke = null,
    +		$shadow = false, $direction = null)
    +	{
    +		if ($direction == mxConstants::$DIRECTION_NORTH ||
    +			$direction == mxConstants::$DIRECTION_SOUTH)
    +		{
    +			$points = array($x + 0.5 * $w, $y, $x + $w, $y + 0.25 * $h,
    +				$x + $w, $y + 0.75 * $h, $x + 0.5 * $w, $y + $h,
    +				$x, $y + 0.75 * $h, $x, $y + 0.25 * $h);
    +		}
    +		else
    +		{
    +			$points = array($x + 0.25 * $w, $y, $x + 0.75 * $w, $y,
    +				$x + $w, $y + 0.5 * $h, $x + 0.75 * $w, $y + $h,
    +				$x + 0.25 * $w, $y + $h, $x, $y + 0.5 * $h);
    +		}
    +		
    +		$this->drawPolygon($points, $fill, $stroke, $shadow);
    +	}
    +	
    +	/**
    +	 * Function: drawCylinder
    +	 *
    +	 * Draws then given cylinder.
    +	 */
    +	function drawCylinder($x, $y, $w, $h, $fill = null, $stroke = null, $shadow = false)
    +	{
    +		$h4 = $h / 4;
    +	 	$h8 = $h4 / 2;
    +
    +	 	if (isset($fill))
    +	 	{
    +	 		$this->drawOval($x, $y, $w, $h4, $fill, null, $shadow);
    +	 		$this->drawRect($x, $y + $h8, $w, $h - $h4, $fill, null, $shadow);
    +	 		$this->drawOval($x, $y + $h - $h4, $w, $h4, $fill, null, $shadow);
    +		}
    +		
    +	 	if (isset($stroke))
    +	 	{
    +	 		$this->drawOval($x, $y, $w, $h4, null, $stroke, false);
    +	 		$this->drawLine($x, $y + $h8, $x, $y + $h - $h8, $stroke);
    +	 		$this->drawLine($x + $w, $y + $h8, $x + $w, $y + $h - $h8, $stroke);
    +	 		$this->drawOval($x, $y + $h - $h4, $w, $h4, null, $stroke, false);
    +		}
    +
    +		// Hides lower arc for filled cylinder
    +	 	if (isset($fill) && isset($stroke))
    +	 	{
    +	 		$this->drawRect($x + 1, $y + $h - $h4, $w - 2, $h8, $fill, null, false);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: drawCloud
    +	 *
    +	 * Draws then given cloud.
    +	 */
    +	function drawCloud($x, $y, $w, $h, $fill = null, $stroke = null, $shadow=false)
    +	{
    +		if (isset($fill))
    +	 	{
    +			if ($shadow)
    +			{
    +				$dx = mxConstants::$SHADOW_OFFSETX;
    +				$dy = mxConstants::$SHADOW_OFFSETY;
    +				
    +				imageFilledEllipse($this->image, $x + 0.2 * $w + $dx, $y + 0.42 * $h + $dy, 0.3 * $w, 0.29 * $h, $this->shadowColor);
    +				imageFilledEllipse($this->image, $x + 0.4 * $w + $dx, $y + 0.25 * $h + $dy, 0.4 * $w, 0.4 * $h, $this->shadowColor);
    +				imageFilledEllipse($this->image, $x + 0.75 * $w + $dx, $y + 0.35 * $h + $dy, 0.5 * $w, 0.4 * $h, $this->shadowColor);
    +				imageFilledEllipse($this->image, $x + 0.2 * $w + $dx, $y + 0.65 * $h + $dy, 0.3 * $w, 0.3 * $h, $this->shadowColor);
    +				imageFilledEllipse($this->image, $x + 0.55 * $w + $dx, $y + 0.62 * $h + $dy, 0.6 * $w, 0.6 * $h, $this->shadowColor);
    +				imageFilledEllipse($this->image, $x + 0.88 * $w + $dx, $y + 0.63 * $h + $dy, 0.3 * $w, 0.3 * $h, $this->shadowColor);
    +			}
    +
    +			$fill = $this->getColor($fill);
    +			imageFilledEllipse($this->image, $x + 0.2 * $w, $y + 0.42 * $h, 0.3 * $w, 0.29 * $h, $fill);
    +			imageFilledEllipse($this->image, $x + 0.4 * $w, $y + 0.25 * $h, 0.4 * $w, 0.4 * $h, $fill);
    +			imageFilledEllipse($this->image, $x + 0.75 * $w, $y + 0.35 * $h, 0.5 * $w, 0.4 * $h, $fill);
    +			imageFilledEllipse($this->image, $x + 0.2 * $w, $y + 0.65 * $h, 0.3 * $w, 0.3 * $h, $fill);
    +			imageFilledEllipse($this->image, $x + 0.55 * $w, $y + 0.62 * $h, 0.6 * $w, 0.6 * $h, $fill);
    +			imageFilledEllipse($this->image, $x + 0.88 * $w, $y + 0.63 * $h, 0.3 * $w, 0.3 * $h, $fill);
    +		}
    +
    +	 	if (isset($stroke))
    +	 	{
    +			$stroke = $this->getColor($stroke);
    +			imageArc($this->image, $x + 0.2 * $w, $y + 0.42 * $h, 0.3 * $w, 0.29 * $h, 125, 270, $stroke);
    +			imageArc($this->image, $x + 0.4 * $w, $y + 0.25 * $h, 0.4 * $w, 0.4 * $h, 170, 345, $stroke);
    +			imageArc($this->image, $x + 0.75 * $w, $y + 0.35 * $h, 0.5 * $w, 0.4 * $h, 230, 55, $stroke);
    +			imageArc($this->image, $x + 0.2 * $w, $y + 0.65 * $h, 0.3 * $w, 0.3 * $h, 50, 235, $stroke);
    +			imageArc($this->image, $x + 0.55 * $w, $y + 0.62 * $h, 0.6 * $w, 0.6 * $h, 33, 145, $stroke);
    +			imageArc($this->image, $x + 0.88 * $w, $y + 0.63 * $h, 0.3 * $w, 0.3 * $h, 290, 120, $stroke);
    +		}
    +	}
    +		
    +	/**
    +	 * Function: drawActor
    +	 *
    +	 * Draws then given cloud.
    +	 */
    +	function drawActor($x, $y, $w, $h, $fill = null, $stroke = null, $shadow=false)
    +	{
    +		if (isset($fill))
    +	 	{
    +			if ($shadow)
    +			{
    +				$dx = mxConstants::$SHADOW_OFFSETX;
    +				$dy = mxConstants::$SHADOW_OFFSETY;
    +					
    +				imageFilledEllipse($this->image, $x + 0.5 * $w + $dx, $y + 0.2 * $h + $dy, 0.4 * $w, 0.4 * $h, $this->shadowColor);
    +				imageFilledEllipse($this->image, $x + 0.2 * $w + $dx, $y + 0.6 * $h + $dy, 0.4 * $w, 0.4 * $h, $this->shadowColor);
    +				imageFilledEllipse($this->image, $x + 0.8 * $w + $dx, $y + 0.6 * $h + $dy, 0.4 * $w, 0.4 * $h, $this->shadowColor);
    +				imageFilledRectangle($this->image, $x + 0.2 * $w + $dx, $y + 0.4 * $h + $dy, $x + 0.8 * $w + $dx, $y + 0.6 * $h + $dy, $this->shadowColor);
    +				imageFilledRectangle($this->image, $x + $dx, $y + 0.6 * $h + $dy, $x + $w + $dx, $y + $h + $dy, $this->shadowColor);
    +			}
    +
    +			$fill = $this->getColor($fill);
    +			imageFilledEllipse($this->image, $x + 0.5 * $w, $y + 0.2 * $h, 0.4 * $w, 0.4 * $h, $fill);
    +			imageFilledEllipse($this->image, $x + 0.2 * $w, $y + 0.6 * $h, 0.4 * $w, 0.4 * $h, $fill);
    +			imageFilledEllipse($this->image, $x + 0.8 * $w, $y + 0.6 * $h, 0.4 * $w, 0.4 * $h, $fill);
    +			imageFilledRectangle($this->image, $x + 0.2 * $w, $y + 0.4 * $h, $x + 0.8 * $w, $y + 0.6 * $h, $fill);
    +			imageFilledRectangle($this->image, $x, $y + 0.6 * $h, $x + $w, $y + $h, $fill);
    +		}
    +
    +	 	if ($stroke != null)
    +	 	{
    +			$stroke = $this->getColor($stroke);
    +			imageEllipse($this->image, $x + 0.5 * $w, $y + 0.2 * $h, 0.4 * $w, 0.4 * $h, $stroke);
    +			imageLine($this->image, $x + 0.2 * $w, $y + 0.4 * $h, $x + 0.8 * $w, $y + 0.4 * $h, $stroke);
    +			imageArc($this->image, $x + 0.2 * $w, $y + 0.6 * $h, 0.4 * $w, 0.4 * $h, 180, 270, $stroke);
    +			imageArc($this->image, $x + 0.8 * $w, $y + 0.6 * $h, 0.4 * $w, 0.4 * $h, 270, 360, $stroke);
    +			imageLine($this->image, $x, $y + 0.6 * $h, $x, $y + $h, $stroke);
    +			imageLine($this->image, $x, $y + $h, $x + $w, $y + $h, $stroke);
    +			imageLine($this->image, $x + $w, $y + $h, $x + $w, $y + 0.6 * $h, $stroke);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: drawImage
    +	 *
    +	 * Draws a given image.
    +	 */
    +	function drawImage($x, $y, $w, $h, $image, $aspect = true, $flipH = false, $flipV = false)
    +	{
    +		$img = $this->loadImage($image);
    +
    +		if ($img != null)
    +		{
    +			$iw = imagesx($img);
    +			$ih = imagesy($img);
    +			
    +			// Horizontal and vertical image flipping
    +			if ($flipH || $flipV)
    +			{
    +				$img = mxUtils::flipImage($img, $flipH, $flipV);
    +			}
    +			
    +			// Preserved aspect ratio
    +			if ($aspect)
    +			{
    +				$s = min($w / $iw, $h / $ih);
    +				$x0 = ($w - $iw * $s) / 2;
    +				$y0 = ($h - $ih * $s) / 2;
    +
    +				imageCopyResized($this->image, $img, $x0 + $x, $y0 + $y,
    +					0, 0, $iw * $s, $ih * $s, $iw, $ih);
    +			}
    +			else
    +			{
    +				imageCopyResized($this->image, $img, $x, $y, 0, 0,
    +					$w, $h, $iw, $ih);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Function: drawText
    +	 */
    +	function drawText($string, $x, $y, $w, $h, $style)
    +	{
    +		if ($string != null && strlen($string) > 0)
    +		{
    +			// Draws the label background and border
    +			$bg = mxUtils::getValue($style, mxConstants::$STYLE_LABEL_BACKGROUNDCOLOR);
    +			$border = mxUtils::getValue($style, mxConstants::$STYLE_LABEL_BORDERCOLOR);
    +	
    +			if ($bg != null || $border != null)
    +			{			
    +				$bounds->width += 2;
    +				$bounds->x -= 2;
    +				$bounds->y -= 1;
    +	
    +				$this->drawRect($x, $y, $w, $h, $bg, $border, false);
    +			}
    +
    +			// Draws the label string			
    +			if ($this->enableTtf && function_exists("imagettftext"))
    +			{
    +				$this->drawTtfText($string, $x, $y, $w, $h, $style);
    +			}
    +			else
    +			{
    +				$this->drawFixedText($string, $x, $y, $w, $h, $style);
    +			}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: getTrueTypeFont
    +	 * 
    +	 * Returns the truetype font to be used to draw the text with the given style.
    +	 */
    +	 function getTrueTypeFont($style)
    +	 {
    +	 	return mxUtils::getTrueTypeFont($style);
    +	 }
    +	
    +	/**
    +	 * Function: getTrueTypeFontSize
    +	 * 
    +	 * Returns the truetype font size to be used to draw the text with the
    +	 * given style. This returns the fontSize in the style of the default
    +	 * fontsize multiplied with <ttfSizeFactor>.
    +	 */
    +	 function getTrueTypeFontSize($style)
    +	 {
    +	 	return mxUtils::getTrueTypeFontSize(
    +	 		mxUtils::getValue($style, mxConstants::$STYLE_FONTSIZE,
    +			mxConstants::$DEFAULT_FONTSIZE) * $this->scale);
    +	 }
    +
    +	/**
    +	 * Function: drawTtfText
    +	 */
    +	function drawTtfText($string, $x, $y, $w, $h, $style)
    +	{
    +		$lines = explode("\n", $string);
    +		$lineCount = sizeof($lines);
    +		
    +		if ($lineCount > 0)
    +		{
    +			// Gets the orientation and alignment
    +			$horizontal = mxUtils::getValue($style, mxConstants::$STYLE_HORIZONTAL, true);
    +			$align = mxUtils::getValue($style, mxConstants::$STYLE_ALIGN, mxConstants::$ALIGN_CENTER);
    +
    +			if ($align == mxConstants::$ALIGN_LEFT)
    +			{
    +				if ($horizontal)
    +				{
    +					$x += mxConstants::$LABEL_INSET;
    +				}
    +				else
    +				{
    +					$y -= mxConstants::$LABEL_INSET;
    +				}
    +			}
    +			else if ($align == mxConstants::$ALIGN_RIGHT)
    +			{
    +				if ($horizontal)
    +				{
    +					$x -= mxConstants::$LABEL_INSET;
    +				}
    +				else
    +				{
    +					$y += mxConstants::$LABEL_INSET;
    +				}
    +			}
    +
    +			// Gets the font
    +			$fontSize = $this->getTrueTypeFontSize($style);
    +			$font = $this->getTrueTypeFont($style);
    +
    +			// Gets the color
    +			$fontColor = mxUtils::getValue($style, mxConstants::$STYLE_FONTCOLOR);
    +	 		$color = $this->getColor($fontColor, "black");
    +	 		
    +	 		$dy = ((($horizontal) ? $h : $w) - 2 * mxConstants::$LABEL_INSET) / $lineCount;
    +
    +			if ($horizontal)
    +			{
    +	 			$y += 0.8 * $dy + mxConstants::$LABEL_INSET;				
    +			}
    +			else
    +			{
    +				$y += $h;
    +				$x += $dy;
    +			}
    +
    +			// Draws the text line by line
    +			for ($i = 0; $i < $lineCount; $i++)
    +			{
    +				$left = $x;
    +				$top = $y;
    +				$tmp = imagettfbbox($fontSize, 0, $font, $lines[$i]);
    +				$lineWidth = $tmp[2] - $tmp[0];
    +	
    +				if ($align == mxConstants::$ALIGN_CENTER)
    +				{
    +					if ($horizontal)
    +					{
    +						$left += ($w - $lineWidth) / 2;
    +					}
    +					else
    +					{
    +						$top -= ($h - $lineWidth) / 2;
    +					}
    +				}
    +				else if ($align == mxConstants::$ALIGN_RIGHT)
    +				{
    +					if ($horizontal)
    +					{
    +						$left += $w - $lineWidth;
    +					}
    +					else
    +					{
    +						$top -= $h - $lineWidth;
    +					}
    +				}
    +				
    +				$this->drawTtfTextLine($lines[$i], $left, $top, $w, $h,
    +					$color, $fontSize, $font, ($horizontal) ? 0 : 90);
    +					
    +				if ($horizontal)
    +				{
    +					$y += $dy;
    +				}
    +				else
    +				{
    +					$x += $dy;
    +				}
    +			}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: drawTtxTextLine
    +	 *
    +	 * Draws a single line of the given true type font text. The w and h are
    +	 * the width and height of the complete text box that contains this line.
    +	 */
    +	function drawTtfTextLine($line, $x, $y, $w, $h, $color, $fontSize, $font, $rot)
    +	{
    +		imagettftext($this->image, $fontSize, $rot, $x, $y, $color, $font, $line);
    +	}
    +	
    +	/**
    +	 * Function: getFixedFontSize
    +	 * 
    +	 * Returns the fixed font size for GD (1 t0 5) for the given font properties
    +	 */
    +	function getFixedFontSize($fontSize, $fontFamily, $fontStyle=null)
    +	{
    +		return mxUtils::getFixedFontSize($fontSize, $fontFamily);
    +	}
    +	
    +	/**
    +	 * Function: drawString
    +	 */
    +	function drawFixedText($string, $x, $y, $w, $h, $style)
    +	{
    +		$lines = explode("\n", $string);
    +		$lineCount = sizeof($lines);
    +		
    +		if ($lineCount > 0)
    +		{
    +			// Gets the orientation and alignment
    +			$horizontal = mxUtils::getValue($style, mxConstants::$STYLE_HORIZONTAL, true);
    +			$align = mxUtils::getValue($style, mxConstants::$STYLE_ALIGN, mxConstants::$ALIGN_CENTER);
    +
    +			if ($align == mxConstants::$ALIGN_LEFT)
    +			{
    +				if ($horizontal)
    +				{
    +					$x += mxConstants::$LABEL_INSET;
    +				}
    +				else
    +				{
    +					$y -= mxConstants::$LABEL_INSET;
    +				}
    +			}
    +			else if ($align == mxConstants::$ALIGN_RIGHT)
    +			{
    +				if ($horizontal)
    +				{
    +					$x -= mxConstants::$LABEL_INSET;
    +				}
    +				else
    +				{
    +					$y += mxConstants::$LABEL_INSET;
    +				}
    +			}
    +
    +			if ($horizontal)
    +			{
    +	 			$y += 2 * mxConstants::$LABEL_INSET;				
    +			}
    +			else
    +			{
    +				$y += $h;
    +				$x += 2 * mxConstants::$LABEL_INSET;
    +			}
    +
    +			// Gets the font
    +			$fontSize = mxUtils::getValue($style, mxConstants::$STYLE_FONTSIZE,
    +				mxConstants::$DEFAULT_FONTSIZE) * $this->scale;
    +			$fontFamily = mxUtils::getValue($style, mxConstants::$STYLE_FONTFAMILY,
    +				mxConstants::$DEFAULT_FONTFAMILY);
    +			$font = $this->getFixedFontSize($fontSize, $fontFamily);
    +
    +			// Gets the color
    +			$fontColor = mxUtils::getValue($style, mxConstants::$STYLE_FONTCOLOR);
    +	 		$color = $this->getColor($fontColor, "black");
    +	 		
    +	 		$dx = imageFontWidth($font);
    +	 		$dy = ((($horizontal) ? $h : $w) - 2 * mxConstants::$LABEL_INSET) / $lineCount;
    +
    +			// Draws the text line by line
    +			for ($i = 0; $i < $lineCount; $i++)
    +			{
    +				$left = $x;
    +				$top = $y;
    +				$lineWidth = strlen($lines[$i]) * $dx;
    +	
    +				if ($align == mxConstants::$ALIGN_CENTER)
    +				{
    +					if ($horizontal)
    +					{
    +						$left += ($w - $lineWidth) / 2;
    +					}
    +					else
    +					{
    +						$top -= ($h - $lineWidth) / 2;
    +					}
    +				}
    +				else if ($align == mxConstants::$ALIGN_RIGHT)
    +				{
    +					if ($horizontal)
    +					{
    +						$left += $w - $lineWidth;
    +					}
    +					else
    +					{
    +						$top -= $h - $lineWidth;
    +					}
    +				}
    +
    +				$this->drawFixedTextLine($lines[$i], $font,
    +						$left, $top, $color, $horizontal);
    +				
    +				if ($horizontal)
    +				{
    +					$y += $dy;
    +				}
    +				else
    +				{
    +					$x += $dy;
    +				}
    +			}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: drawFixedTextLine
    +	 *
    +	 * Draws the given fixed text line.
    +	 */
    +	function drawFixedTextLine($text, $font, $left, $top, $color, $horizontal = true)
    +	{
    +		if ($horizontal)
    +		{
    +			imageString($this->image, $font, $left, $top,
    +				$text, $color);
    +		}
    +		else
    +		{
    +			imageStringUp($this->image, $font, $left, $top,
    +				$text, $color);
    +		}
    +	}
    +
    +	/**
    +	 * Function: getColor
    +	 *
    +	 * Allocates the given color and returns a reference to it. Supported
    +	 * color names are black, red, green, blue, orange, yellow, pink,
    +	 * turqoise, white, gray and any hex codes between 000000 and FFFFFF.
    +	 */
    +	function getColor($hex, $default = null)
    +	{
    +		if (!isset($hex))
    +		{
    +			$hex = $default;
    +		}
    +		
    +		$result = null;
    +		$hex = strtolower($hex);
    +		
    +		if ($hex == "black")
    +		{
    +			$result = imageColorAllocate($this->image, 0, 0, 0);
    +		}
    +		else if ($hex == "red")
    +		{
    +			$result = imageColorAllocate($this->image, 255, 0, 0);
    +		}
    +		else if ($hex == "green")
    +		{
    +			$result = imageColorAllocate($this->image, 0, 255, 0);
    +		}
    +		else if ($hex == "blue")
    +		{
    +			$result = imageColorAllocate($this->image, 0, 0, 255);
    +		}
    +		else if ($hex == "orange")
    +		{
    +			$result = imageColorAllocate($this->image, 255, 128, 64);
    +		}
    +		else if ($hex == "yellow")
    +		{
    +			$result = imageColorAllocate($this->image, 255, 255, 0);
    +		}
    +		else if ($hex == "pink")
    +		{
    +			$result = imageColorAllocate($this->image, 255, 0, 255);
    +		}
    +		else if ($hex == "turqoise")
    +		{
    +			$result = imageColorAllocate($this->image, 0, 255, 255);
    +		}
    +		else if ($hex == "white")
    +		{
    +			$result = imageColorAllocate($this->image, 255, 255, 255);
    +		}
    +		else if ($hex == "gray")
    +		{
    +			$result = imageColorAllocate($this->image, 128, 128, 128);
    +		}
    +		else if ($hex == "none")
    +		{
    +			$result = null;
    +		}
    +		else
    +		{
    +	       	$rgb = array_map("hexdec", explode("|", wordwrap(substr($hex, 1), 2, "|", 1)));
    +	       	
    +	       	if (sizeof($rgb) > 2)
    +	       	{
    +				$result = imageColorAllocate($this->image, $rgb[0], $rgb[1], $rgb[2]);
    +	       	}
    +	       	else
    +	       	{
    +	       		$result = imageColorAllocate($this->image, 0, 0, 0);
    +	       	}
    +		}
    +		
    +	 	return $result;
    +	}
    +	
    +	/**
    +	 * Function: offset
    +	 *
    +	 * Creates a new array of x, y sequences where the each coordinate is
    +	 * translated by dx and dy, respectively.
    +	 */
    +	function offset($points, $dx = null, $dy = null)
    +	{
    +		$result = array();
    +		
    +		if ($points != null)
    +		{
    +			if (!isset($dx))
    +			{
    +				$dx = mxConstants::$SHADOW_OFFSETX;
    +			}
    +			
    +			if (!isset($dy))
    +			{
    +				$dy = mxConstants::$SHADOW_OFFSETY;
    +			}
    +			
    +			for ($i = 0; $i < sizeof($points) - 1; $i = $i + 2)
    +			{
    +				array_push($result, $points[$i] + $dx);
    +				array_push($result, $points[$i + 1] + $dy);
    +			}
    +		}
    +		
    +		return $result;
    +	}
    +	
    +	/**
    +	 * Destructor: destroy
    +	 *
    +	 * Destroys all allocated resources.
    +	 */
    +	function destroy()
    +	{
    +		imageDestroy($this->image);
    +	}
    +	
    +	/**
    +	 * Function: drawGraph
    +	 * 
    +	 * Draws the given graph using this canvas.
    +	 */
    +	public static function drawGraph($graph, $clip = null, $bg = null)
    +	{
    +	 	if (!isset($clip))
    +	 	{
    +	 		$clip = $graph->getGraphBounds();
    +	 	}
    +	 	
    +	 	// TODO: Support custom origin in mxGdCanvas
    +	 	// $x = round($clip->x);
    +	 	// $y = round($clip->y);
    +	 	// $width = round($clip->width - $x + $clip->x) + 1;
    +	 	// $height = round($clip->height - $y + $clip->y) + 1;
    +	 	$width = round($clip->width + $clip->x) + 1;
    +	 	$height = round($clip->width + $clip->x) + 1;
    +	 	
    +	 	$canvas = new mxGdCanvas($width, $height, $graph->view->scale, $bg);
    +	 	
    +	 	$graph->drawGraph($canvas);
    +	 	$image = $canvas->getImage();
    +	 	//TODO: $canvas->destroy();
    +	 	
    +	 	return $image;
    +	}
    +
    +}
    +?>
    diff --git a/php/src/canvas/mxHtmlCanvas.php b/php/src/canvas/mxHtmlCanvas.php
    new file mode 100644
    index 000000000..83a504c2f
    --- /dev/null
    +++ b/php/src/canvas/mxHtmlCanvas.php
    @@ -0,0 +1,189 @@
    +<?php
    +/**
    + * $Id: mxHtmlCanvas.php,v 1.19 2011-03-16 11:11:26 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxHtmlCanvas extends mxGdCanvas
    +{
    +
    +	/**
    +	 * Class: mxHtmlCanvas
    +	 *
    +	 * Canvas for drawing graphs using HTML.
    +	 * 
    +	 * Variable: html
    +	 *
    +	 * Holds the html markup.
    +	 */
    +	var $html;
    +
    +	/**
    +	 * Constructor: mxGdCanvas
    +	 *
    +	 * Constructs a new GD canvas. Use a HTML color definition for
    +	 * the optional background parameter, eg. white or #FFFFFF.
    +	 */
    +	function mxHtmlCanvas($scale=1, $basePath = "")
    +	{
    +		parent::mxGdCanvas(null, null, $scale, null, $basePath);
    +		$this->html = "";
    +	}
    +
    +	/**
    +	 * Function: getHtml
    +	 *
    +	 * Gets the HTML that represents the canvas.
    +	 */
    +	function getHtml()
    +	{
    +		return $this->html;
    +	}
    +
    +	/**
    +	 * Function: out
    +	 *
    +	 * Adds the specified string to the output.
    +	 */
    +	function out($string)
    +	{
    +		return $this->html .= "$string\n";
    +	}
    +
    +	/**
    +	 * Function: drawLine
    +	 *
    +	 * Draws the specified line.
    +	 */
    +	function drawLine($x0, $y0, $x1, $y1, $stroke = null, $dashed = false)
    +	{
    + 		$tmpX = min($x0, $x1);
    + 		$tmpY = min($y0, $y1);
    + 		$w = max($x0, $x1) - $tmpX;
    + 		$h = max($y0, $y1) - $tmpY;
    + 		$x0 = $tmpX;
    + 		$y0 = $tmpY;
    + 		
    + 		if ($w == 0 || $h == 0)
    + 		{
    +			$style = "position:absolute;".
    +				"overflow:hidden;".
    +				"left:".$x0."px;".
    +				"top:".$y0."px;".
    +				"width:".$w."px;".
    +				"height:".$h."px;".
    +				"border-color:$stroke;".
    +				"border-style:solid;".
    +				"border-width:1 1 0 0px";
    +	 		$this->out("<DIV STYLE='$style'></DIV>");
    +		}
    +		else
    +		{
    +			$x = $x0 + ($x1 - $x0) / 2;
    +			$this->drawLine($x0, $y0, $x, $y0);
    +			$this->drawLine($x, $y0, $x, $y1);
    +			$this->drawLine($x, $y1, $x1, $y1);
    +		}
    + 	}
    +	
    +	/**
    +	 * Function: drawShape
    +	 *
    +	 * Draws the specified shape.
    +	 */
    +	function drawShape($shape, $x, $y, $w, $h, $stroke=null, $fill=null)
    +	{
    +		$style = "position:absolute;".
    +			"left:".$x."px;".
    +			"top:".$y."px;".
    +			"width:".$w."px;".
    +			"height:".$h."px;".
    +			"border-style:solid;".
    +			"border-color:$stroke;".
    +			"border-width:1px;".
    +			"background-color:$fill;";
    + 		$this->out("<DIV STYLE='$style'></DIV>");
    +	}
    +
    +	/**
    +	 * Function: drawImage
    +	 *
    +	 * Draws the specified image.
    +	 */
    +	function drawImage($x, $y, $w, $h, $image, $aspect = true, $flipH = false, $flipV = false)
    +	{
    +		$style = "position:absolute;".
    +			"left:".$x."px;".
    +			"top:".$y."px;".
    +			"width:".$w."px;".
    +			"height:".$h."px;";
    + 		$this->out("<IMAGE SRC='$image' STYLE='$style'/>");
    +	}
    +
    +	/**
    +	 * Function: drawText
    +	 *
    +	 * Draws the specified text.
    +	 */
    +	function drawText($string, $x, $y, $w, $h, $style)
    +	{
    +		$horizontal = mxUtils::getValue($style, mxConstants::$STYLE_HORIZONTAL, 1);
    +	 	$font = mxUtils::getValue($style, mxConstants::$STYLE_FONTFAMILY,
    +			mxConstants::$W3C_DEFAULT_FONTFAMILY);
    +		$fontSize = mxUtils::getValue($style, mxConstants::$STYLE_FONTSIZE,
    +			mxConstants::$DEFAULT_FONTSIZE) * $this->scale;
    + 		$color = mxUtils::getValue($style, mxConstants::$STYLE_FONTCOLOR, "black");
    +		$align = mxUtils::getValue($style, mxConstants::$STYLE_ALIGN, "center");
    +		$valign = mxUtils::getValue($style, mxConstants::$STYLE_VERTICAL_ALIGN, "middle");
    +
    +		$style = "position:absolute;".
    +			"overflow:hidden;".
    +			"left:".($x-4)."px;".
    +			"width:".$w."px;".
    +			"height:".$h."px;".
    +			"font-family:$font;".
    +			"font-size:".$fontSize."px;".
    +			"color:$color;";
    +			
    +		if ($horizontal)
    +		{
    +			$style .= "top:".($y-5)."px;";
    +		}
    +		else
    +		{
    +			$style .= "top:".($y-$h)."px;";
    +		}
    +		
    +		$string = htmlentities($string);
    +		$string = str_replace("\n", "<br>", $string);
    + 		$this->out("<TABLE STYLE='$style'>".
    +			"<TR><TD ALIGN='$align' VALIGN='$valign'>".
    +			"$string</TD></TR></TABLE>");
    +	}
    +
    +	/**
    +	 * Destructor: destroy
    +	 *
    +	 * Destroy all allocated resources.
    +	 */
    +	function destroy()
    +	{
    +	 	$this->html = "";
    +	}
    +	
    +	/**
    +	 * Function: drawGraph
    +	 * 
    +	 * Draws the given graph using this canvas.
    +	 */
    +	public static function drawGraph($graph, $clip = null, $bg = null)
    +	{
    +	 	$graph->view->validate();
    +
    +	 	$canvas = new mxHtmlCanvas($graph->view->scale);
    +	 	$graph->drawGraph($canvas);
    +	 	
    +	 	return $canvas->getHtml();
    +	}
    +
    +}
    +?>
    diff --git a/php/src/index.txt b/php/src/index.txt
    new file mode 100644
    index 000000000..a8a89faa1
    --- /dev/null
    +++ b/php/src/index.txt
    @@ -0,0 +1,19 @@
    +Document: API Specification
    +
    +Overview:
    +
    +  This PHP library is divided into 4 packages. The top-level <mxServer>
    +  class dynamically includes everything else.
    +  
    +  The *view* and *model* packages implement the graph component, represented
    +  by <mxGraph>. It refers to a <mxGraphModel> which contains <mxCell>s and
    +  caches the state of the cells in a <mxGraphView>. The cells are painted
    +  using a <mxCanvas> based on the appearance defined in <mxStylesheet>.
    +
    +  The *io* package implements a generic <mxObjectCodec> for turning
    +  PHP objects into XML. The main class is <mxCodec>. <mxCodecRegistry>
    +  is the global registry for custom codecs.
    +
    +Requirements:
    +
    +  The I/O module requires libxml support. The <mxGdCanvas> requires GD support.
    diff --git a/php/src/io/mxCellCodec.php b/php/src/io/mxCellCodec.php
    new file mode 100644
    index 000000000..38d2eb97c
    --- /dev/null
    +++ b/php/src/io/mxCellCodec.php
    @@ -0,0 +1,211 @@
    +<?php
    +/**
    + * $Id: mxCellCodec.php,v 1.13 2010-06-30 11:03:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxCellCodec extends mxObjectCodec
    +{
    +
    +	/**
    +	 * Class: mxCellCodec
    +	 *
    +	 * Codec for <mxCell>s. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec>
    +	 * and the <mxCodecRegistry>.
    +	 *
    +	 * Transient Fields:
    +	 *
    +	 * - children
    +	 * - edges
    +	 * - states
    +	 * - overlay
    +	 * - mxTransient
    +	 *
    +	 * Reference Fields:
    +	 *
    +	 * - parent
    +	 * - source
    +	 * - target
    +	 * 
    +	 * Constructor: mxObjectCodec
    +	 *
    +	 * Constructs a new codec for the specified template object.
    +	 * The variables in the optional exclude array are ignored by
    +	 * the codec. Variables in the optional idrefs array are
    +	 * turned into references in the XML. The optional mapping
    +	 * may be used to map from variable names to XML attributes.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * template - Prototypical instance of the object to be
    +	 * encoded/decoded.
    +	 * exclude - Optional array of fieldnames to be ignored.
    +	 * idrefs - Optional array of fieldnames to be converted to/from
    +	 * references.
    +	 * mapping - Optional mapping from field- to attributenames.
    +	 */
    +	function mxCellCodec($template)
    +	{
    +		parent::mxObjectCodec($template, array("children", "edges", "states",
    +			"overlay", "mxTransient"), array("parent",
    +			"source", "target"));
    +	}
    +	
    +	/**
    +	 * Override <mxObjectCodec.isExcluded>.
    +	 */
    +	function isExcluded($obj, $attr, $value, $isWrite)
    +	{
    +		return parent::isExcluded($obj, $attr, $value, $isWrite) ||
    +				($isWrite && $attr == "value" && is_object($value) &&
    +			   get_class($value) == "DOMElement");
    +	}
    +
    +	/**
    +	 * Override <mxObjectCodec.afterEncode>.
    +	 */
    +	function afterEncode($enc, $obj, $node)
    +	{
    +		if (is_object($obj->value) && get_class($obj->value) == "DOMElement")
    +		{
    +			// Wraps the graphical annotation up in the
    +			// user object (inversion) by putting the
    +			// result of the default encoding into
    +			// a clone of the user object (node type 1)
    +			// and returning this cloned user object.
    +			$tmp = $node;
    +
    +			$node = $enc->document->importNode($obj->value, true);
    +			$node->appendChild($tmp);
    +						
    +			// Moves the id attribute to the outermost
    +			// XML node, namely the node which denotes
    +			// the object boundaries in the file.
    +			$id = $tmp->getAttribute("id");
    +			$node->setAttribute("id", $id);
    +			$tmp->removeAttribute("id");
    +		}
    +
    +		return $node;
    +	}
    +
    +	/**
    +	 * Override <mxObjectCodec.beforeDecode>.
    +	 */
    +	function beforeDecode($dec, $node, &$obj)
    +	{
    +		$inner = $node;
    +		$classname = $this->getName();
    +		
    +		if ($node->nodeName != $classname)
    +		{
    +			// Passes the inner graphical annotation node to the
    +			// object codec for further processing of the cell.
    +			$tmp = $node->getElementsByTagName($classname)->item(0);
    +			
    +			if (isset($tmp) && $tmp->parentNode == $node)
    +			{
    +				$inner = $tmp;
    +
    +				// Removes annotation and whitespace from node
    +				$tmp2 = $tmp->previousSibling;
    +
    +				while (isset($tmp2) && $tmp2->nodeType == XML_TEXT_NODE)
    +				{
    +					$tmp3 = $tmp2->previousSibling;
    +
    +					if (strlen(trim($tmp2->textContent)) == 0)
    +					{
    +						$tmp2->parentNode->removeChild($tmp2);
    +					}
    +					
    +					$tmp2 = $tmp3;
    +				}
    +				
    +				// Removes more whitespace
    +				$tmp2 = $tmp->nextSibling;
    +				
    +				while (isset($tmp2) && $tmp2->nodeType == XML_TEXT_NODE)
    +				{
    +					$tmp3 = $tmp2->previousSibling;
    +					
    +					if (strlen(trim($tmp2->textContent)) == 0)
    +					{
    +						$tmp2->parentNode->removeChild($tmp2);
    +					}
    +					
    +					$tmp2 = $tmp3;
    +				}
    +				
    +				$tmp->parentNode->removeChild($tmp);
    +			}
    +			else
    +			{
    +				$inner = null;
    +			}
    +			
    +			// Creates the user object out of the XML node
    +			$obj->value = $node->cloneNode(true);
    +			$id = $obj->value->getAttribute("id");
    +			
    +			if (strlen($id) > 0)
    +			{
    +				$obj->setId($id);
    +				$obj->value->removeAttribute("id");
    +			}
    +		}
    +		else
    +		{
    +			$obj->setId($node->getAttribute("id"));
    +		}
    +			
    +		// Preprocesses and removes all Id-references
    +		// in order to use the correct encoder (this)
    +		// for the known references to cells (all).
    +		if (isset($inner))
    +		{
    +			for ($i = 0; $i < sizeof($this->idrefs); $i++)
    +			{
    +				$attr = $this->idrefs[$i];
    +				$ref = $inner->getAttribute($attr);
    +				
    +				if (strlen($ref) > 0)
    +				{
    +					$inner->removeAttribute($attr);
    +					$object = (isset($dec->objects[$ref])) ? $dec->objects[$ref] : null;
    +					
    +					if (!isset($object))
    +					{
    +						$object = $dec->lookup($ref);
    +					}
    +					
    +					if (!isset($object))
    +					{
    +						// Needs to decode forward reference
    +						$element = $dec->getElementById($ref);
    +
    +						if (isset($element))
    +						{
    +							$decoder = mxCodecRegistry::$codecs[$element->nodeName];
    +	
    +							if (!isset($decoder))
    +							{
    +								$decoder = $this;
    +							}
    +
    +							$object = $decoder->decode($dec, $element);
    +						}
    +					}
    +											
    +					$obj->$attr = $object;
    +				}
    +			}
    +		}
    +		
    +		return $inner;
    +	}
    +
    +}
    +
    +mxCodecRegistry::register(new mxCellCodec(new mxCell()));
    +?>
    diff --git a/php/src/io/mxCodec.php b/php/src/io/mxCodec.php
    new file mode 100644
    index 000000000..eccb8ba0b
    --- /dev/null
    +++ b/php/src/io/mxCodec.php
    @@ -0,0 +1,445 @@
    +<?php
    +/**
    + * $Id: mxCodec.php,v 1.16 2010-09-13 15:45:28 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxCodec
    +{
    +	
    +	/**
    +	 * Class: mxCodec
    +	 *
    +	 * XML codec for PHP object graphs. In order to resolve forward references
    +	 * when reading files the XML document that contains the data must be passed
    +	 * to the constructor.
    +	 * 
    +	 * Variable: document
    +	 *
    +	 * The owner document of the codec.
    +	 */
    +	var $document;
    +	
    +	/**
    +	 * Variable: objects
    +	 *
    +	 * Maps from IDs to objects.
    +	 */
    +	var $objects = array();
    +	
    +	/**
    +	 * Variable: encodeDefaults
    +	 *
    +	 * Specifies if default values should be encoded.
    +	 * Default is false.
    +	 */
    +	var $encodeDefaults = false;
    +
    +	/**
    +	 * Constructor: mxGraphViewHtmlReader
    +	 *
    +	 * Constructs a new HTML graph view reader.
    +	 */
    +	function mxCodec($document=null)
    +	{
    +		if ($document == null)
    +		{
    +			$document = mxUtils::createXmlDocument();
    +		}
    +		
    +		$this->document = $document;
    +	}
    +
    +	/**
    +	 * Function: putObject
    +	 * 
    +	 * Assoiates the given object with the given ID.
    +	 * 
    +	 * Parameters
    +	 * 
    +	 * id - ID for the object to be associated with.
    +	 * obj - Object to be associated with the ID.
    +	 */
    +	function putObject($id, $object)
    +	{
    +		$this->objects[$id] = $object;
    +
    +		return $object;
    +	}
    +
    +	/**
    +	 * Function: getObject
    +	 *
    +	 * Returns the decoded object for the element with the specified ID in
    +	 * <document>. If the object is not known then <lookup> is used to find an
    +	 * object. If no object is found, then the element with the respective ID
    +	 * from the document is parsed using <decode>.
    +	 */
    +	function getObject($id)
    +	{		
    +		$obj = null;
    +		
    +		if (isset($id))
    +		{
    +			$obj = $this->objects[$id];
    +			
    +			if (!isset($obj))
    +			{
    +				$obj = $this->lookup($id);
    +				
    +				if (!isset($obj))
    +				{
    +					$node = $this->getElementById($id);
    +					
    +					if (isset($node))
    +					{
    +						$obj = $this->decode($node);
    +					}
    +				}
    +			}
    +		}
    +		
    +		return $obj;
    +	}
    +
    +	/**
    +	 * Function: lookup
    +	 *
    +	 * Hook for subclassers to implement a custom lookup
    +	 * mechanism for cell IDs. This implementation always
    +	 * returns null.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * id - ID of the object to be returned.
    +	 */
    +	function lookup($id)
    +	{		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: getElementById
    +	 *
    +	 * Returns the element with the given ID from
    +	 * <document>. The optional attr argument specifies
    +	 * the name of the ID attribute. Default is "id".
    +	 * The XPath expression used to find the element is
    +	 * //*[@attr='arg'] where attr is the name of the
    +	 * ID attribute and arg is the given id.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * id - String that contains the ID.
    +	 * attr - Optional string for the attributename.
    +	 * Default is "id".
    +	 */
    +	function getElementById($id, $attr="id")
    +	{		
    +		$expr = "//*[@$attr='$id']";
    +		
    +		return mxUtils::selectSingleNode($this->document, $expr);
    +	}
    +
    +	/**
    +	 * Function: getId
    +	 *
    +	 * Returns the ID of the specified object. This implementation
    +	 * calls <reference> first and if that returns null handles
    +	 * the object as an <mxCell> by returning their IDs using
    +	 * <mxCell.getId>. If no ID exists for the given cell, then
    +	 * an on-the-fly ID is generated using <mxCellPath.create>.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * obj - Object to return the ID for.
    +	 */
    +	function getId($obj)
    +	{
    +		$id = null;
    +		
    +		if (isset($obj))
    +		{
    +			$id = $this->reference($obj);
    +			
    +			if (!isset($id) && mxCodecRegistry::getName($obj) == "mxCell")
    +			{
    +				$id = $obj->getId();
    +
    +				if (!isset($id))
    +				{
    +					// Uses an on-the-fly Id
    +					$id = mxCellPath::create($obj);
    +					
    +					if (strlen($id) == 0)
    +					{
    +						$id = "root";
    +					}
    +				}
    +			}
    +		}
    +		
    +		return $id;
    +	}
    +
    +	/**
    +	 * Function: reference
    +	 *
    +	 * Hook for subclassers to implement a custom method
    +	 * for retrieving IDs from objects. This implementation
    +	 * always returns null.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * obj - Object whose ID should be returned.
    +	 */
    +	function reference($obj)
    +	{
    +		return null;
    +	}
    +	
    +	/**
    +	 * Function: encode
    +	 *
    +	 * Encodes the specified object and returns the resulting
    +	 * XML node.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * obj - Object to be encoded. 
    +	 */
    +	function encode($obj)
    +	{
    +		$node = null;
    +		
    +		if (is_object($obj) || is_array($obj))
    +		{
    +			if (is_array($obj))
    +			{
    +				$enc = new mxObjectCodec(array());
    +			}
    +			else
    +			{
    +				$enc = mxCodecRegistry::getCodec(
    +					mxCodecRegistry::getName($obj));
    +			}
    +			
    +			if (isset($enc))
    +			{
    +				$node = $enc->encode($this, $obj);
    +			}
    +			else
    +			{
    +				if (get_class($obj) == "DOMElement")
    +				{
    +					$node = $obj->cloneNode(true);
    +				}
    +				else
    +				{
    +		    		mxLog::warn("mxCodec.encode: No codec for ".
    +		    			mxCodecRegistry::getName($obj));
    +				}
    +			}
    +		}
    +		
    +		return $node;
    +	}
    +
    +	/**
    +	 * Function: decode
    +	 *
    +	 * Decodes the given XML node. The optional "into"
    +	 * argument specifies an existing object to be
    +	 * used. If no object is given, then a new instance
    +	 * is created using the constructor from the codec.
    +	 *
    +	 * The function returns the passed in object or
    +	 * the new instance if no object was given.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * node - XML node to be decoded.
    +	 * into - Optional object to be decodec into.
    +	 */
    +	function decode($node, $into = null)
    +	{
    +		$obj = null;
    +		
    +		if (isset($node) && $node->nodeType == XML_ELEMENT_NODE)
    +		{
    +			$dec = mxCodecRegistry::getCodec($node->nodeName);
    +			
    +			try
    +			{
    +				if (isset($dec))
    +				{
    +					$obj = $dec->decode($this, $node, $into);
    +				}
    +				else
    +				{
    +					$obj = $node->cloneNode(true);
    +					$obj->removeAttribute("as");
    +				}
    +			}
    +			catch (Exception $ex)
    +			{
    +				// ignore
    +				mxLog::debug("Cannot decode ".$node->nodeName.": $ex");
    +				throw $ex;
    +			}
    +		}
    +		
    +		return $obj;
    +	}
    +
    +	/**
    +	 * Function: encodeCell
    +	 *
    +	 * Encoding of cell hierarchies is built-into the core, but
    +	 * is a higher-level function that needs to be explicitely
    +	 * used by the respective object encoders (eg. <mxModelCodec>,
    +	 * <mxChildChangeCodec> and <mxRootChangeCodec>). This
    +	 * implementation writes the given cell and its children as a
    +	 * (flat) sequence into the given node. The children are not
    +	 * encoded if the optional includeChildren is false. The
    +	 * function is in charge of adding the result into the
    +	 * given node and has no return value.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * cell - <mxCell> to be encoded.
    +	 * node - Parent XML node to add the encoded cell into.
    +	 * includeChildren - Optional boolean indicating if the
    +	 * function should include all descendents. Default is true. 
    +	 */
    +	function encodeCell($cell, $node, $includeChildren=true)
    +	{
    +		$node->appendChild($this->encode($cell));
    +		
    +		if ($includeChildren)
    +		{
    +			$childCount = $cell->getChildCount();
    +			
    +			for ($i = 0; $i < $childCount; $i++)
    +			{
    +				$this->encodeCell($cell->getChildAt($i), $node);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Function: decodeCell
    +	 *
    +	 * Decodes cells that have been encoded using inversion, ie.
    +	 * where the user object is the enclosing node in the XML,
    +	 * and restores the group and graph structure in the cells.
    +	 * Returns a new <mxCell> instance that represents the
    +	 * given node.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * node - XML node that contains the cell data.
    +	 * restoreStructures - Optional boolean indicating whether
    +	 * the graph structure should be restored by calling insert
    +	 * and insertEdge on the parent and terminals, respectively.
    +	 * Default is true.
    +	 */
    +	function decodeCell($node, $restoreStructures = true)
    +	{
    +		$cell = null;
    +		
    +		if (isset($node) && $node->nodeType == XML_ELEMENT_NODE)
    +		{
    +			// Tries to find a codec for the given node name. If that does
    +			// not return a codec then the node is the user object (an XML node
    +			// that contains the mxCell, aka inversion).
    +			$decoder = mxCodecRegistry::getCodec($node->nodeName);
    +
    +			// Tries to find the codec for the cell inside the user object.
    +			// This assumes all node names inside the user object are either
    +			// not registered or they correspond to a class for cells.
    +			if (!isset($decoder))
    +			{
    +				$child = $node->firstChild;
    +				
    +				while (isset($child) && !($decoder instanceof mxCellCodec))
    +				{
    +					$decoder = mxCodecRegistry::getCodec($child->nodeName);
    +					$child = $child->nextSibling;
    +				}
    +			}
    +			
    +			if (!($decoder instanceof mxCellCodec))
    +			{
    +				$decoder = mxCodecRegistry::getCodec("mxCell");
    +			}
    +
    +			$cell = $decoder->decode($this, $node);
    +			
    +			if ($restoreStructures)
    +			{
    +				$this->insertIntoGraph($cell);
    +			}
    +		}
    +		
    +		return $cell;
    +	}
    +	
    +	/**
    +	 * Function: insertIntoGraph
    +	 *
    +	 * Inserts the given cell into its parent and terminal cells.
    +	 */
    +	function insertIntoGraph($cell)
    +	{
    +		$parent = $cell->getParent();
    +		$source = $cell->getTerminal(true);
    +		$target = $cell->getTerminal(false);
    +		
    +		// Fixes possible inconsistencies during insert into graph
    +		$cell->setTerminal(null, false);
    +		$cell->setTerminal(null, true);
    +		$cell->setParent(null);
    +		
    +		if (isset($parent))
    +		{
    +			$parent->insert($cell);
    +		}
    +
    +		if (isset($source))
    +		{
    +			$source->insertEdge($cell, true);
    +		}
    +
    +		if (isset($target))
    +		{
    +			$target->insertEdge($cell, false);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: setAttribute
    +	 *
    +	 * Sets the attribute on the specified node to value. This is a
    +	 * helper method that makes sure the attribute and value arguments
    +	 * are not null.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * node - XML node to set the attribute for.
    +	 * attributes - Attributename to be set.
    +	 * value - New value of the attribute.
    +	 */
    +	function setAttribute($node, $attribute, $value)
    +	{
    +		if (is_array($value))
    +		{
    +			error_log("cannot write array $attribute");
    +		}
    +		else if (isset($attribute) && isset($value))
    +		{
    +			$node->setAttribute($attribute, $value);
    +		}
    +	}
    +
    +}
    +?>
    diff --git a/php/src/io/mxCodecRegistry.php b/php/src/io/mxCodecRegistry.php
    new file mode 100644
    index 000000000..1bdd5fff8
    --- /dev/null
    +++ b/php/src/io/mxCodecRegistry.php
    @@ -0,0 +1,153 @@
    +<?php
    +/**
    + * $Id: mxCodecRegistry.php,v 1.6 2010-06-30 11:03:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxCodecRegistry
    +{
    +
    +	/**
    +	 * Class: mxCodecRegistry
    +	 *
    +	 * A class to register codecs for objects.
    +	 * 
    +	 * Variable: codecs
    +	 *
    +	 * Maps from constructor names to codecs.
    +	 */
    +	public static $codecs = array();
    +
    +	/**
    +	 * Variable: aliases
    +	 *
    +	 * Maps from classnames to codecnames.
    +	 */
    +	public static $aliases = array();
    +	
    +	/**
    +	 * Function: register
    +	 *
    +	 * Registers a new codec and associates the name of the template constructor
    +	 * in the codec with the codec object. Automatically creates an alias if the
    +	 * codename and the classname are not equal.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * codec - <mxObjectCodec> to be registered.
    +	 */
    +	static function register($codec)
    +	{
    +		if (isset($codec))
    +		{
    +			$name = $codec->getName();
    +			mxCodecRegistry::$codecs[$name] = $codec;
    +			
    +			$classname = mxCodecRegistry::getName($codec->template);
    +			
    +			if ($classname != $name)
    +			{
    +				mxCodecRegistry::addAlias($classname, $name);
    +			}
    +		}
    +		
    +		return $codec;
    +	}
    +
    +	/**
    +	 * Function: addAlias
    +	 *
    +	 * Adds an alias for mapping a classname to a codecname.
    +	 */
    +	static function addAlias($classname, $codecname)
    +	{
    +		mxCodecRegistry::$aliases[$classname] = $codecname;
    +	}
    +	/**
    +	 * Function: getCodec
    +	 *
    +	 * Returns a codec that handles objects that are constructed
    +	 * using the given ctor.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * ctor - JavaScript constructor function. 
    +	 */
    +	static function getCodec($name)
    +	{
    +		$codec = null;
    +		
    +		if (isset($name))
    +		{
    +			if (isset(mxCodecRegistry::$aliases[$name]))
    +			{
    +				$tmp = mxCodecRegistry::$aliases[$name];
    +				
    +				if (strlen($tmp) > 0)
    +				{
    +					$name = $tmp;
    +				}
    +			}
    +			
    +			$codec = (isset(mxCodecRegistry::$codecs[$name])) ?
    +				mxCodecRegistry::$codecs[$name] : null;
    +				
    +			// Registers a new default codec for the given constructor
    +			// if no codec has been previously defined.
    +			if (!isset($codec))
    +			{
    +				try
    +				{
    +					$obj = mxCodecRegistry::getInstanceForName($name);
    +					
    +					if (isset($obj))
    +					{
    +						$codec = new mxObjectCodec($obj);
    +						mxCodecRegistry::register($codec);
    +					}
    +				}
    +				catch (Exception $e)
    +				{
    +					// ignore
    +				}
    +			}
    +		}
    +		
    +		return $codec;
    +	}
    +
    +	/**
    +	 * Function: getInstanceForName
    +	 *
    +	 * Creates and returns a new instance for the given class name.
    +	 */
    +	static function getInstanceForName($name)
    +	{
    +		if (class_exists($name))
    +		{
    +			return new $name();
    +		}
    +		
    +		return null;
    +	}
    +	
    +	/**
    +	 * Function: getName
    +	 *
    +	 * Returns the codec name for the given object instance.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * obj - PHP object to return the codec name for. 
    +	 */
    +	static function getName($obj)
    +	{
    +		if (is_array($obj))
    +		{
    +			return "Array";
    +		}
    +
    +		return get_class($obj);
    +	}
    +
    +}
    +?>
    diff --git a/php/src/io/mxModelCodec.php b/php/src/io/mxModelCodec.php
    new file mode 100644
    index 000000000..fed7689d2
    --- /dev/null
    +++ b/php/src/io/mxModelCodec.php
    @@ -0,0 +1,93 @@
    +<?php
    +/**
    + * $Id: mxModelCodec.php,v 1.8 2010-11-23 08:46:40 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxModelCodec extends mxObjectCodec
    +{
    +
    +	/**
    +	 * Class: mxModelCodec
    +	 *
    +	 * Codec for <mxGraphModels>. This class is created and registered
    +	 * dynamically at load time and used implicitly via <mxCodec>
    +	 * and the <mxCodecRegistry>.
    +	 * 
    +	 * Constructor: mxObjectCodec
    +	 *
    +	 * Constructs a new codec for the specified template object.
    +	 * The variables in the optional exclude array are ignored by
    +	 * the codec. Variables in the optional idrefs array are
    +	 * turned into references in the XML. The optional mapping
    +	 * may be used to map from variable names to XML attributes.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * template - Prototypical instance of the object to be
    +	 * encoded/decoded.
    +	 * exclude - Optional array of fieldnames to be ignored.
    +	 * idrefs - Optional array of fieldnames to be converted to/from
    +	 * references.
    +	 * mapping - Optional mapping from field- to attributenames.
    +	 */
    +	function mxModelCodec($template)
    +	{
    +		parent::mxObjectCodec($template);
    +	}
    +	
    +	/**
    +	 * Overrides <mxObjectCodec.encodeObject>.
    +	 */
    +	function encodeObject($enc, $obj, $node)
    +	{
    +		$rootNode = $enc->document->createElement("root");
    +		$enc->encodeCell($obj->getRoot(), $rootNode);
    +		$node->appendChild($rootNode);
    +	}
    +
    +	/**
    +	 * Override <mxObjectCodec.decodeChild>.
    +	 */	
    +	function decodeChild($dec, $child, &$obj)
    +	{
    +		if ($child->nodeName == "root")
    +		{
    +			$this->decodeRoot($dec, $child, $obj);
    +		}
    +		else
    +		{
    +			parent::decodeChild($dec, $child, $obj);
    +		}
    +	}
    +		
    +	/**
    +	 * Override <mxObjectCodec.decodeRoot>.
    +	 */
    +	function decodeRoot($dec, $root, $model)
    +	{
    +		$rootCell = null;
    +		$tmp = $root->firstChild;
    +		
    +		while (isset($tmp))
    +		{
    +			$cell = $dec->decodeCell($tmp);
    +			
    +			if (isset($cell) && $cell->getParent() == null)
    +			{
    +				$rootCell = $cell;
    +			}
    +			
    +			$tmp = $tmp->nextSibling;
    +		}
    +
    +		// Sets the root on the model if one has been decoded
    +		if (isset($rootCell))
    +		{
    +			$model->setRoot($rootCell);
    +		}
    +	}
    +
    +}
    +
    +mxCodecRegistry::register(new mxModelCodec(new mxGraphModel()));
    +?>
    diff --git a/php/src/io/mxObjectCodec.php b/php/src/io/mxObjectCodec.php
    new file mode 100644
    index 000000000..b1ec0779c
    --- /dev/null
    +++ b/php/src/io/mxObjectCodec.php
    @@ -0,0 +1,827 @@
    +<?php
    +/**
    + * $Id: mxObjectCodec.php,v 1.20 2010-12-01 09:19:58 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxObjectCodec
    +{
    +	
    +	/**
    +	 * Class: mxObjectCodec
    +	 *
    +	 * XML codec for PHP object graphs.
    +	 * 
    +	 * Implementation note:
    +	 * 
    +	 * The passing of the argument by reference in <decode>, <decodeNode>,
    +	 * <decodeAttributes>, <decodeAttribute>, <decodeChildren>, <decodeChild>,
    +	 * <beforeDecode> and <afterDecode> is required since the object may be an
    +	 * array instance, which needs an explicit reference operator even in PHP 5
    +	 * to be changed in-place.
    +	 * 
    +	 * Variable: template
    +	 *
    +	 * Holds the template object associated with this codec.
    +	 */
    +	var $template;
    +	
    +	/**
    +	 * Variable: exclude
    +	 *
    +	 * Array containing the variable names that should be
    +	 * ignored by the codec.
    +	 */
    +	var $exclude;
    +	
    +	/**
    +	 * Variable: idrefs
    +	 *
    +	 * Array containing the variable names that should be
    +	 * turned into or converted from references. See
    +	 * <mxCodec.getId> and <mxCodec.getObject>.
    +	 */
    +	var $idrefs;
    +	
    +	/**
    +	 * Variable: mapping
    +	 *
    +	 * Maps from from fieldnames to XML attribute names.
    +	 */
    +	var $mapping;
    +	
    +	/**
    +	 * Variable: reverse
    +	 *
    +	 * Maps from from XML attribute names to fieldnames.
    +	 */
    +	var $reverse;
    +
    +	/**
    +	 * Constructor: mxObjectCodec
    +	 *
    +	 * Constructs a new codec for the specified template object.
    +	 * The variables in the optional exclude array are ignored by
    +	 * the codec. Variables in the optional idrefs array are
    +	 * turned into references in the XML. The optional mapping
    +	 * may be used to map from variable names to XML attributes.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * template - Prototypical instance of the object to be
    +	 * encoded/decoded.
    +	 * exclude - Optional array of fieldnames to be ignored.
    +	 * idrefs - Optional array of fieldnames to be converted to/from
    +	 * references.
    +	 * mapping - Optional mapping from field- to attributenames.
    +	 */
    +	function mxObjectCodec($template, $exclude = array(),
    +		$idrefs = array(), $mapping = array())
    +	{
    +		$this->template = $template;
    +		
    +		$this->exclude = $exclude;
    +		$this->idrefs = $idrefs;
    +		$this->mapping = $mapping;
    +		
    +		$this->reverse = array();
    +		
    +		foreach($mapping as $key => $value)
    +		{
    +			$this->reverse[$value] = $key;
    +		}
    +	}
    +	
    +	/**
    +	 * Function: getName
    +	 *
    +	 * Creates a new instance of the template for this codec.
    +	 */
    +	function getName()
    +	{
    +		return mxCodecRegistry::getName($this->template);
    +	}
    +	
    +	/**
    +	 * Function: cloneTemplate
    +	 *
    +	 * Creates a new instance of the template for this codec.
    +	 */
    +	function cloneTemplate()
    +	{
    +		if (is_array($this->template))
    +		{
    +			return array();
    +		}
    +		else
    +		{
    +			$tmp = get_class($this->template);
    +
    +			return new $tmp();
    +		}
    +	}
    +	
    +	/**
    +	 * Function: getFieldName
    +	 * 
    +	 * Returns the fieldname for the given attributename.
    +	 * Looks up the value in the <reverse> mapping or returns
    +	 * the input if there is no reverse mapping for the
    +	 * given name.
    +	 */
    +	function getFieldName($attributename)
    +	{
    +		if ($attributename != null)
    +		{
    +			$mapped = ((in_array($attributename, $this->reverse))) ?
    +				$this->reverse[$attributename] : null;
    +			
    +			if ($mapped != null)
    +			{
    +				$attributename = $mapped;
    +			}
    +		}
    +		
    +		return $attributename;
    +	}
    +
    +	/**
    +	 * Function: getAttributeName
    +	 * 
    +	 * Returns the attributename for the given fieldname.
    +	 * Looks up the value in the <mapping> or returns
    +	 * the input if there is no mapping for the
    +	 * given name.
    +	 */
    +	function getAttributeName($fieldname)
    +	{
    +		if (isset($fieldname) && isset($this->mapping[$fieldname]))
    +		{
    +			$fieldname = $this->mapping[$fieldname];
    +		}
    +		
    +		return $fieldname;
    +	}
    +
    +	/**
    +	 * Function: isExcluded
    +	 *
    +	 * Returns true if the given attribute is to be ignored by the codec. This
    +	 * implementation returns true if the given fieldname is in <exclude> or
    +	 * if the fieldname equals <mxObjectIdentity.FIELD_NAME>.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * obj - Object instance that contains the field.
    +	 * attr - Fieldname of the field.
    +	 * value - Value of the field.
    +	 * write - Boolean indicating if the field is being encoded or decoded.
    +	 * Write is true if the field is being encoded, else it is being decoded.
    +	 */
    +	function isExcluded($obj, $attr, $value, $write)
    +	{
    +		return mxUtils::indexOf($this->exclude, $attr) >= 0;
    +	}
    +	
    +	/**
    +	 * Function: isReference
    +	 *
    +	 * Returns true if the given fieldname is to be treated
    +	 * as a textual reference (ID). This implementation returns
    +	 * true if the given fieldname is in <idrefs>.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * obj - Object instance that contains the field.
    +	 * attr - Fieldname of the field.
    +	 * value - Value of the field. 
    +	 * write - Boolean indicating if the field is being encoded or decoded.
    +	 * Write is true if the field is being encoded, else it is being decoded.
    +	 */
    +	function isReference($obj, $attr, $value, $write)
    +	{
    +		return mxUtils::indexOf($this->idrefs, $attr) >= 0;
    +	}
    +
    +	/**
    +	 * Function: encode
    +	 *
    +	 * Encodes the specified object and returns a node
    +	 * representing then given object. Calls <beforeEncode>
    +	 * after creating the node and <afterEncode> with the 
    +	 * resulting node after processing.
    +	 *
    +	 * Enc is a reference to the calling encoder. It is used
    +	 * to encode complex objects and create references.
    +	 *
    +	 * This implementation encodes all variables of an
    +	 * object according to the following rules:
    +	 *
    +	 * - If the variable name is in <exclude> then it is ignored.
    +	 * - If the variable name is in <idrefs> then <mxCodec.getId>
    +	 * is used to replace the object with its ID.
    +	 * - The variable name is mapped using <mapping>.
    +	 * - If obj is an array and the variable name is numeric
    +	 * (ie. an index) then it is not encoded.
    +	 * - If the value is an object, then the codec is used to
    +	 * create a child node with the variable name encoded into
    +	 * the "as" attribute.
    +	 * - Else, if <encodeDefaults> is true or the value differs
    +	 * from the template value, then ...
    +	 * - ... if obj is not an array, then the value is mapped to
    +	 * an attribute.
    +	 * - ... else if obj is an array, the value is mapped to an
    +	 * add child with a value attribute or a text child node,
    +	 * if the value is a function.
    +	 *
    +	 * If no ID exists for a variable in <idrefs> or if an object
    +	 * cannot be encoded, a warning is issued using <mxLog.warn>.
    +	 *
    +	 * Returns the resulting XML node that represents the given
    +	 * object.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * enc - <mxCodec> that controls the encoding process.
    +	 * obj - Object to be encoded.
    +	 */
    +	function encode($enc, $obj)
    +	{
    +		$node = $enc->document->createElement($this->getName());
    +		
    +		$obj = $this->beforeEncode($enc, $obj, $node);
    +		$this->encodeObject($enc, $obj, $node);
    +		
    +		return $this->afterEncode($enc, $obj, $node);
    +	}
    +		
    +	/**
    +	 * Function: encodeObject
    +	 *
    +	 * Encodes the value of each member in then given obj
    +	 * into the given node using <encodeValue>.
    +	 * 
    +	 * Parameters:
    +	 *
    +	 * enc - <mxCodec> that controls the encoding process.
    +	 * obj - Object to be encoded.
    +	 * node - XML node that contains the encoded object.
    +	 */
    +	function encodeObject($enc, $obj, $node)
    +	{
    +		$enc->setAttribute($node, "id", $enc->getId($obj));
    +		
    +		if (is_array($obj))
    +		{
    +			$count = sizeof($obj);
    +
    +			for ($i = 0; $i < $count; $i++)
    +			{
    +				$this->encodeValue($enc, $obj, null, $obj[$i], $node);
    +			}
    +		}
    +		else
    +		{
    +			$vars = get_object_vars($obj);
    +			
    +		    foreach ($vars as $name => $value)
    +		    {
    +		    	if ($value != null &&
    +		    		!$this->isExcluded($obj, $name, $value, true))
    +		    	{
    +		    		if (is_numeric($name))
    +		    		{
    +		    			unset($name);
    +		    		}
    +		    		
    +		    		$this->encodeValue($enc, $obj, $name, $value, $node);
    +		    	}
    +		    }
    +		}
    +	}
    +	
    +	/**
    +	 * Function: encodeValue
    +	 * 
    +	 * Converts the given value according to the mappings
    +	 * and id-refs in this codec and uses <writeAttribute>
    +	 * to write the attribute into the given node.
    +	 * 
    +	 * Parameters:
    +	 *
    +	 * enc - <mxCodec> that controls the encoding process.
    +	 * obj - Object whose property is going to be encoded.
    +	 * name - XML node that contains the encoded object.
    +	 * value - Value of the property to be encoded.
    +	 * node - XML node that contains the encoded object.
    +	 */
    +	function encodeValue($enc, $obj, $name, $value, $node)
    +	{
    +		if ($value != null)
    +		{
    +			if ($this->isReference($obj, $name, $value, true))
    +			{
    +				$tmp = $enc->getId($value);
    +				
    +				if (!isset($tmp))
    +				{
    +			    	mxLog::warn("mxObjectCodec.encode: No ID for value of ".
    +			    		$this->getName().".$name of type ".get_class($value));
    +			    	return; // exit
    +			    }
    +			    
    +			    $value = $tmp;
    +			}
    +
    +			$defaults = (is_object($this->template)) ? get_object_vars($this->template) : null;
    +			$defaultValue = (isset($defaults[$name])) ? $defaults[$name] : null;
    +			
    +			// Checks if the value is a named default value
    +			if (!isset($name) || $enc->encodeDefaults || $defaultValue !== $value)
    +			{
    +				$name = $this->getAttributeName($name);
    +				$this->writeAttribute($enc, $obj, $name, $value, $node);	
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Function: writeAttribute
    +	 * 
    +	 * Writes the given value into node using <writePrimitiveAttribute>
    +	 * or <writeComplexAttribute> depending on the type of the value.
    +	 */
    +	function writeAttribute($enc, $obj, $attr, $value, $node)
    +	{
    +		if (!is_object($value) && !is_array($value) /* primitive type */)
    +		{
    +			$this->writePrimitiveAttribute($enc, $obj, $attr, $value, $node);
    +		}
    +		else /* complex type */
    +		{
    +			$this->writeComplexAttribute($enc, $obj, $attr, $value, $node);
    +    	}
    +    }
    +	
    +	/**
    +	 * Function: writePrimitiveAttribute
    +	 * 
    +	 * Writes the given value as an attribute of the given node.
    +	 */
    +	function writePrimitiveAttribute($enc, $obj, $attr, $value, $node)
    +	{
    +		$value = $this->convertValueToXml($value);
    +		
    +		if (!isset($attr))
    +		{
    +    		$child = $enc->document->createElement("add");
    +    		
    +    		// TODO: Handle "as" attribute for maps here
    +	    	$enc->setAttribute($child, "value", $value);
    +    		$node->appendChild($child);
    +    	}
    +    	else
    +    	{
    +        	$enc->setAttribute($node, $attr, $value);
    +    	}		
    +	}
    +		
    +	/**
    +	 * Function: writeComplexAttribute
    +	 * 
    +	 * Writes the given value as a child node of the given node.
    +	 */
    +	function writeComplexAttribute($enc, $obj, $attr, $value, $node)
    +	{
    +    	$child = $enc->encode($value);
    +    	
    +    	if (isset($child))
    +    	{
    +    		if (isset($attr))
    +    		{
    +	    		$child->setAttribute("as", $attr);
    +	    	}
    +	    	
    +	    	$node->appendChild($child);
    +    	}
    +    	else
    +    	{
    +    		mxLog::warn("mxObjectCodec.encode: No node for value of ".
    +    			$this->getName().".$attr");
    +    	}
    +	}
    +	
    +	/**
    +	 * Function: convertValueToXml
    +	 * 
    +	 * Returns the given value without applying a conversion.
    +	 */
    +	function convertValueToXml($value)
    +	{
    +		return $value;
    +	}
    +				
    +	/**
    +	 * Function: convertValueFromXml
    +	 * 
    +	 * Returns the given value. In PHP there is no need to convert the
    +	 * boolean strings "0" and "1" to their numeric / boolean values.
    +	 */
    +	function convertValueFromXml($value)
    +	{
    +		return $value;
    +	}
    +
    +	/**
    +	 * Function: beforeEncode
    +	 *
    +	 * Hook for subclassers to pre-process the object before
    +	 * encoding. This returns the input object. The return
    +	 * value of this function is used in <encode> to perform
    +	 * the default encoding into the given node.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * enc - <mxCodec> that controls the encoding process.
    +	 * obj - Object to be encoded.
    +	 * node - XML node to encode the object into.
    +	 */
    +	function beforeEncode($enc, $obj, $node)
    +	{
    +		return $obj;
    +	}
    +	
    +	/**
    +	 * Function: afterEncode
    +	 *
    +	 * Hook for subclassers to post-process the node
    +	 * for the given object after encoding and return the
    +	 * post-processed node. This implementation returns 
    +	 * the input node. The return value of this method
    +	 * is returned to the encoder from <encode>.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * enc - <mxCodec> that controls the encoding process.
    +	 * obj - Object to be encoded.
    +	 * node - XML node that represents the default encoding.
    +	 */
    +	function afterEncode($enc, $obj, $node)
    +	{
    +		return $node;
    +	}
    +
    +	/**
    +	 * Function: decode
    +	 *
    +	 * Parses the given node into the object or returns a new object
    +	 * representing the given node.
    +	 *
    +	 * Dec is a reference to the calling decoder. It is used to decode
    +	 * complex objects and resolve references.
    +	 *
    +	 * If a node has an id attribute then the object cache is checked for the
    +	 * object. If the object is not yet in the cache then it is constructed
    +	 * using the constructor of <template> and cached in <mxCodec.objects>.
    +	 *
    +	 * This implementation decodes all attributes and childs of a node
    +	 * according to the following rules:
    +	 *
    +	 * - If the variable name is in <exclude> or if the attribute name is "id"
    +	 * or "as" then it is ignored.
    +	 * - If the variable name is in <idrefs> then <mxCodec.getObject> is used
    +	 * to replace the reference with an object.
    +	 * - The variable name is mapped using a reverse <mapping>.
    +	 * - If the value has a child node, then the codec is used to create a
    +	 * child object with the variable name taken from the "as" attribute.
    +	 * - If the object is an array and the variable name is empty then the
    +	 * value or child object is appended to the array.
    +	 * - If an add child has no value or the object is not an array then
    +	 * the child text content is evaluated using <mxUtils.eval>.
    +	 *
    +	 * For add nodes where the object is not an array and the variable name
    +	 * is defined, the default mechanism is used, allowing to override/add
    +	 * methods as follows:
    +	 *
    +	 * (code)
    +	 * <Object>
    +	 *   <add as="hello"><![CDATA[
    +	 *     function(arg1) {
    +	 *       alert('Hello '+arg1);
    +	 *     }
    +	 *   ]]></add>
    +	 * </Object>
    +	 * (end) 
    +	 *
    +	 * If no object exists for an ID in <idrefs> a warning is issued
    +	 * using <mxLog.warn>.
    +	 *
    +	 * Returns the resulting object that represents the given XML node
    +	 * or the object given to the method as the into parameter.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * dec - <mxCodec> that controls the decoding process.
    +	 * node - XML node to be decoded.
    +	 * into - Optional objec to encode the node into.
    +	 */
    +	function decode($dec, $node, &$into = null)
    +	{
    +		$id = $node->getAttribute("id");
    +		$obj = null;
    +		
    +		if (array_key_exists($id, $dec->objects))
    +		{
    +			$obj = $dec->objects[$id];
    +		}
    +
    +		if (!isset($obj))
    +		{
    +			if (isset($into))
    +			{
    +				$obj = $into;
    +			}
    +			else
    +			{
    +				$obj = $this->cloneTemplate();
    +			}
    +			
    +			if (strlen($id) > 0)
    +			{
    +				$dec->putObject($id, $obj);
    +			}
    +		}
    +
    +		$node = $this->beforeDecode($dec, $node, $obj);
    +		$this->decodeNode($dec, $node, $obj);
    +
    +	    return $this->afterDecode($dec, $node, $obj);
    +	}		
    +	
    +	/**
    +	 * Function: decodeNode
    +	 * 
    +	 * Calls <decodeAttributes> and <decodeChildren> for the given node.
    +	 */	
    +	function decodeNode($dec, $node, &$obj)
    +	{
    +		if (isset($node))
    +		{
    +			$this->decodeAttributes($dec, $node, $obj);
    +			$this->decodeChildren($dec, $node, $obj);
    +		}
    +	}
    +
    +	/**
    +	 * Function: decodeAttributes
    +	 * 
    +	 * Decodes all attributes of the given node using <decodeAttribute>.
    +	 */	
    +	function decodeAttributes($dec, $node, &$obj)
    +	{
    +		$attrs = $node->attributes;
    +
    +		if ($attrs != null)
    +		{
    +			for ($i = 0; $i < $attrs->length; $i++)
    +			{
    +				$this->decodeAttribute($dec, $attrs->item($i), $obj);
    +			}
    +		}
    +	}	
    +
    +	/**
    +	 * Function: decodeAttribute
    +	 * 
    +	 * Reads the given attribute into the specified object.
    +	 */	
    +	function decodeAttribute($dec, $attr, &$obj)
    +	{
    +		$name = $attr->nodeName;
    +
    +		if ($name != "as" && $name != "id")
    +		{
    +			// Converts the string true and false to their boolean values.
    +			// This may require an additional check on the obj to see if
    +			// the existing field is a boolean value or uninitialized, in
    +			// which case we may want to convert true and false to a string.
    +			$value = $this->convertValueFromXml($attr->nodeValue);
    +			$fieldname = $this->getFieldName($name);
    +			
    +			if ($this->isReference($obj, $fieldname, $value, false))
    +			{
    +				$tmp = $dec->getObject($value);
    +				
    +				if (!isset($tmp))
    +				{
    +			    	mxLog::warn("mxObjectCodec.decode: No object for ".
    +			    		$this->getName().".$fieldname=$value");
    +			    	return; // exit
    +			    }
    +			    
    +			    $value = $tmp;
    +			}
    +
    +			if (!$this->isExcluded($obj, $fieldname, $value, false))
    +			{
    +				//mxLog.debug(mxCodecRegistry::getName($obj)."$name=$value");
    +				$obj->$fieldname = $value;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Function: decodeChildren
    +	 * 
    +	 * Decodec all children of the given node using <decodeChild>.
    +	 */	
    +	function decodeChildren($dec, $node, &$obj)
    +	{
    +		$child = $node->firstChild;
    +		
    +		while ($child != null)
    +		{
    +			$tmp = $child->nextSibling;
    +			
    +			if ($child->nodeType == XML_ELEMENT_NODE &&
    +				!$this->processInclude($dec, $child, $obj))
    +			{
    +				$this->decodeChild($dec, $child, $obj);
    +			}
    +			
    +			$child = $tmp;
    +		}
    +	}
    +
    +	/**
    +	 * Function: decodeChild
    +	 * 
    +	 * Reads the specified child into the given object.
    +	 */	
    +	function decodeChild($dec, $child, &$obj)
    +	{
    +		$fieldname = $this->getFieldName($child->getAttribute("as"));
    +		
    +		if (!isset($fieldname) ||
    +			!$this->isExcluded($obj, $fieldname, $child, false))
    +		{
    +			$template = $this->getFieldTemplate($obj, $fieldname, $child);
    +			$value = null;
    +			
    +			if ($child->nodeName == "add")
    +			{
    +				$value = $child->getAttribute("value");
    +				
    +				if (!isset($value))
    +				{
    +					// TODO: Evaluate text content
    +					//$value = eval($child->get_content());
    +					//mxLog.debug('Decoded '+fieldname+' '+mxUtils.getTextContent(child));
    +				}
    +			}
    +			else
    +			{
    +				
    +				$value = $dec->decode($child, $template);
    +			}
    +			
    +			$this->addObjectValue($obj, $fieldname, $value, $template);
    +		}
    +	}
    +		
    +	/**
    +	 * Function: getFieldTemplate
    +	 * 
    +	 * Returns the template instance for the given field. This returns the
    +	 * value of the field, null if the value is an array or an empty collection
    +	 * if the value is a collection. The value is then used to populate the
    +	 * field for a new instance. For strongly typed languages it may be
    +	 * required to override this to return the correct collection instance
    +	 * based on the encoded child.
    +	 */
    +	function getFieldTemplate(&$obj, $fieldname, $child)
    +	{
    +		$template = (is_object($obj)) ? $obj->$fieldname : null;
    +		
    +		// Non-empty arrays are replaced completely
    +		if (is_array($template) && count($template) > 0)
    +		{
    +			$template = null;
    +		}
    +		
    +		return $template;
    +	}
    +		
    +	/**
    +	 * Function: addObjectValue
    +	 * 
    +	 * Sets the decoded child node as a value of the given object. If the
    +	 * object is a map, then the value is added with the given fieldname as a
    +	 * key. If the fieldname is not empty, then setFieldValue is called or
    +	 * else, if the object is a collection, the value is added to the
    +	 * collection. For strongly typed languages it may be required to
    +	 * override this with the correct code to add an entry to an object.
    +	 */
    +	function addObjectValue(&$obj, $fieldname, $value, $template)
    +	{
    +		if ($value !== null && ($template == null || $value != $template))
    +		{	
    +			if (isset($fieldname) && strlen($fieldname) > 0)
    +			{
    +				$obj->$fieldname = $value;
    +			}
    +			else
    +			{
    +				array_push($obj, $value);
    +			}
    +			//mxLog.debug('Decoded '+mxUtils.getFunctionName(obj.constructor)+'.'+fieldname+': '+value);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: processInclude
    +	 *
    +	 * Returns true if the given node is an include directive and
    +	 * executes the include by decoding the XML document. Returns
    +	 * false if the given node is not an include directive.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * dec - <mxCodec> that controls the encoding/decoding process.
    +	 * node - XML node to be checked.
    +	 * into - Optional object to pass-thru to the codec.
    +	 */
    +	function processInclude($dec, $node, $into)
    +	{
    +		if ($node->nodeName == "include")
    +		{
    +			$name = $node->getAttribute("name");
    +			
    +			if (isset($name))
    +			{
    +				try
    +				{
    +					$xml = mxUtils::loadXmlDocument($name)->documentElement;
    +					
    +					if (isset($xml))
    +					{
    +						$dec->decode($xml, $into);
    +					}
    +				}
    +				catch (Exception $e)
    +				{
    +					// ignore
    +				}
    +			}
    +			
    +			return true;
    +		}
    +		
    +		return false;
    +	}
    +	
    +	/**
    +	 * Function: beforeDecode
    +	 *
    +	 * Hook for subclassers to pre-process the node for
    +	 * the specified object and return the node to be
    +	 * used for further processing by <decode>.
    +	 * The object is created based on the template in the 
    +	 * calling method and is never null. This implementation
    +	 * returns the input node. The return value of this
    +	 * function is used in <decode> to perform
    +	 * the default decoding into the given object.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * dec - <mxCodec> that controls the decoding process.
    +	 * node - XML node to be decoded.
    +	 * obj - Object to encode the node into.
    +	 */
    +	function beforeDecode($dec, $node, &$obj)
    +	{
    +		return $node;
    +	}
    +	
    +	/**
    +	 * Function: afterDecode
    +	 *
    +	 * Hook for subclassers to post-process the object after
    +	 * decoding. This implementation returns the given object
    +	 * without any changes. The return value of this method
    +	 * is returned to the decoder from <decode>.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * enc - <mxCodec> that controls the encoding process.
    +	 * node - XML node to be decoded.
    +	 * obj - Object that represents the default decoding.
    +	 */
    +	function afterDecode($dec, $node, &$obj)
    +	{
    +		return $obj;
    +	}
    +
    +}
    +
    +mxCodecRegistry::register(new mxObjectCodec(array()));
    +?>
    diff --git a/php/src/io/mxStylesheetCodec.php b/php/src/io/mxStylesheetCodec.php
    new file mode 100644
    index 000000000..cd83a09de
    --- /dev/null
    +++ b/php/src/io/mxStylesheetCodec.php
    @@ -0,0 +1,182 @@
    +<?php
    +/**
    + * $Id: mxStylesheetCodec.php,v 1.10 2011-06-13 08:18:42 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxStylesheetCodec extends mxObjectCodec
    +{
    +
    +	/**
    +	 * Class: mxStylesheetCodec
    +	 *
    +	 * Codec for <mxStylesheets>. This class is created and registered
    +	 * dynamically at load time and used implicitely via <mxCodec>
    +	 * and the <mxCodecRegistry>.
    +	 * 
    +	 * Constructor: mxObjectCodec
    +	 *
    +	 * Constructs a new codec for the specified template object.
    +	 * The variables in the optional exclude array are ignored by
    +	 * the codec. Variables in the optional idrefs array are
    +	 * turned into references in the XML. The optional mapping
    +	 * may be used to map from variable names to XML attributes.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * template - Prototypical instance of the object to be
    +	 * encoded/decoded.
    +	 * exclude - Optional array of fieldnames to be ignored.
    +	 * idrefs - Optional array of fieldnames to be converted to/from
    +	 * references.
    +	 * mapping - Optional mapping from field- to attributenames.
    +	 */
    +	function mxStylesheetCodec($template)
    +	{
    +		parent::mxObjectCodec($template);
    +	}
    +	
    +	/**
    +	 * Override <mxObjectCodec.encode>.
    +	 */
    +	function encode($enc, $obj)
    +	{
    +		$node = $enc->document->createElement($this->getName());
    +		
    +		foreach ($obj->styles as $i => $value)
    +		{
    +			$styleNode = $enc->document->createElement("add");
    +			
    +			if (isset($i))
    +			{
    +				$styleNode->setAttribute("as", $i);
    +				
    +				foreach ($style as $j => $value)
    +				{
    +					$value = $this->getStringValue($j, $value);
    +					
    +					if (isset($value))
    +					{
    +						$entry = $enc->document->createElement("add");
    +						$entry->setAttribute("value", $value);
    +						$entry->setAttribute("as", $j);
    +						$styleNode->appendChild($entry);
    +					}
    +				}
    +				
    +				if ($styleNode->getChildCount() > 0)
    +				{
    +					$node->appendChild($styleNode);
    +				}
    +			}
    +		}
    +		
    +	    return node;
    +	}
    +		
    +	/**
    +	 * Returns the string for encoding the given value.
    +	 */
    +	function getStringValue($key, $value)
    +	{
    +		return (!function_exists($value) && !is_object($value)) ? $value : null;
    +	}
    +	
    +	/**
    +	 * Override <mxObjectCodec.decode>.
    +	 */
    +	function decode($dec, $node, &$into = null)
    +	{
    +		$id = $node->getAttribute("id");
    +		$obj = (in_array($id, $dec->objects)) ? $dec->objects[$id] : null;
    +		
    +		if (!isset($obj))
    +		{
    +			if (isset($into))
    +			{
    +				$obj = $into;
    +			}
    +			else
    +			{
    +				$tmp = get_class($this->template);
    +				$obj = new $tmp();
    +			}
    +			
    +			if (isset($id))
    +			{
    +				$dec->putObject($id, $obj);
    +			}
    +		}
    +
    +		$node = $node->firstChild;
    +		
    +		while (isset($node))
    +		{
    +			if (!$this->processInclude($dec, $node, $obj) &&
    +				$node->nodeName == "add")
    +			{
    +				$as = $node->getAttribute("as");
    +				
    +				if (strlen($as) > 0)
    +				{
    +					$extend = $node->getAttribute("extend");
    +
    +					$style = (strlen($extend) > 0 &&
    +						isset($obj->styles[$extend])) ?
    +						array_slice($obj->styles[$extend], 0) :
    +						null;					
    +					
    +					if (!isset($style))
    +					{
    +						$style = array();
    +					}
    +					
    +					$entry = $node->firstChild;
    +					
    +					while (isset($entry))
    +					{
    +						if ($entry->nodeType == XML_ELEMENT_NODE)
    +						{
    +							$key = $entry->getAttribute("as");
    +						 	
    +						 	if ($entry->nodeName == "add")
    +						 	{
    +							 	$text = $entry->textContent;
    +							 	$value = null;
    +							 	
    +							 	if (isset($text) && strlen($text) > 0)
    +							 	{
    +							 		$value = mxUtils::evaluate($text);
    +							 	}
    +							 	else
    +							 	{
    +							 		$value = $entry->getAttribute("value");
    +								}
    +								
    +								if ($value != null)
    +								{
    +									$style[$key] = $value;
    +								}
    +						 	}
    +						 	else if ($entry->nodeName == "remove")
    +						 	{
    +						 		unset($style[$key]);
    +						 	}
    +						}
    +						
    +						$entry = $entry->nextSibling;
    +					}
    +				
    +					$obj->putCellStyle($as, $style);
    +				}
    +			}
    +			
    +			$node = $node->nextSibling;
    +		}
    +		
    +		return $obj;
    +	}
    +
    +}
    +
    +mxCodecRegistry::register(new mxStylesheetCodec(new mxStylesheet()));
    +?>
    diff --git a/php/src/model/mxCell.php b/php/src/model/mxCell.php
    new file mode 100644
    index 000000000..fe2352ae1
    --- /dev/null
    +++ b/php/src/model/mxCell.php
    @@ -0,0 +1,752 @@
    +<?php
    +/**
    + * $Id: mxCell.php,v 1.21 2010-08-31 12:33:02 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxCell
    +{
    +
    +	/**
    +	 * Class: mxCell
    +	 * 
    +	 * Cells are the elements of the graph model. They represent the state
    +	 * of the groups, vertices and edges in a graph.
    +	 * 
    +	 * Variable: id
    +	 *
    +	 * Holds the Id. Default is null.
    +	 */
    +	var $id = null;
    +
    +	/**
    +	 * Variable: value
    +	 *
    +	 * Holds the user object. Default is null.
    +	 */
    +	var $value = null;
    +
    +	/**
    +	 * Variable: geometry
    +	 *
    +	 * Holds the <mxGeometry>. Default is null.
    +	 */
    +	var $geometry = null;
    +
    +	/**
    +	 * Variable: style
    +	 *
    +	 * Holds the style as a string of the form [(stylename|key=value);].
    +	 * Default is null.
    +	 */
    +	var $style = null;
    +
    +	/**
    +	 * Variable: vertex
    +	 *
    +	 * Specifies whether the cell is a vertex. Default is false.
    +	 */
    +	var $vertex = false;
    +
    +	/**
    +	 * Variable: edge
    +	 *
    +	 * Specifies whether the cell is an edge. Default is false.
    +	 */
    +	var $edge = false;
    +
    +	/**
    +	 * Variable: connectable
    +	 *
    +	 * Specifies whether the cell is connectable. Default is true.
    +	 */
    +	var $connectable = true;
    +
    +	/**
    +	 * Variable: visible
    +	 *
    +	 * Specifies whether the cell is visible. Default is true.
    +	 */
    +	var $visible = true;
    +
    +	/**
    +	 * Variable: collapsed
    +	 *
    +	 * Specifies whether the cell is collapsed. Default is false.
    +	 */
    +	var $collapsed = false;
    +
    +	/**
    +	 * Variable: parent
    +	 *
    +	 * Reference to the parent cell.
    +	 */
    +	var $parent = null;
    +
    +	/**
    +	 * Variable: source
    +	 *
    +	 * Reference to the source terminal.
    +	 */
    +	var $source = null;
    +
    +	/**
    +	 * Variable: target
    +	 *
    +	 * Reference to the target terminal.
    +	 */
    +	var $target = null;
    +
    +	/**
    +	 * Variable: children
    +	 *
    +	 * Holds the child cells.
    +	 */
    +	var $children = null; // transient
    +
    +	/**
    +	 * Variable: edges
    +	 *
    +	 * Holds the edges.
    +	 */
    +	var $edges = null; // transient
    +
    +	/**
    +	 * Constructor: mxCell
    +	 *
    +	 * Constructs a new cell to be used in a graph model.
    +	 * This method invokes <onInit> upon completion.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * value - Optional object that represents the cell value.
    +	 * geometry - Optional <mxGeometry> that specifies the geometry.
    +	 * style - Optional formatted string that defines the style.
    +	 */
    +	function mxCell($value = null, $geometry = null, $style = null)
    +	{
    +		$this->setValue($value);
    +		$this->setGeometry($geometry);
    +		$this->setStyle($style);
    +	}
    +
    +	/**
    +	 * Function: getId
    +	 *
    +	 * Returns the Id of the cell as a string.
    +	 */
    +	function getId()
    +	{
    +		return $this->id;
    +	}
    +			
    +	/**
    +	 * Function: setId
    +	 *
    +	 * Sets the Id of the cell to the given string.
    +	 */
    +	 function setId($id)
    +	 {
    +		$this->id = $id;
    +	}
    +
    +	/**
    +	 * Function: getValue
    +	 *
    +	 * Returns the user object of the cell. The user
    +	 * object is stored in <value>.
    +	 */
    +	function getValue()
    +	{
    +		return $this->value;
    +	}
    +			
    +	/**
    +	 * Function: setValue
    +	 *
    +	 * Sets the user object of the cell. The user object
    +	 * is stored in <value>.
    +	 */
    +	 function setValue($value)
    +	 {
    +		$this->value = $value;
    +	}
    +
    +	/**
    +	 * Function: getGeometry
    +	 *
    +	 * Returns the <mxGeometry> that describes the <geometry>.
    +	 */
    +	function getGeometry()
    +	{
    +		return $this->geometry;
    +	}
    +			
    +	/**
    +	 * Function: setGeometry
    +	 *
    +	 * Sets the <mxGeometry> to be used as the <geometry>.
    +	 */
    +	 function setGeometry($geometry)
    +	 {
    +		$this->geometry = $geometry;
    +	}
    +
    +	/**
    +	 * Function: getStyle
    +	 *
    +	 * Returns a string that describes the <style>.
    +	 */
    +	function getStyle()
    +	{
    +		return $this->style;
    +	}
    +			
    +	/**
    +	 * Function: setStyle
    +	 *
    +	 * Sets the string to be used as the <style>.
    +	 */
    +	 function setStyle($style)
    +	 {
    +		$this->style = $style;
    +	 }
    +
    +	/**
    +	 * Function: isVertex
    +	 *
    +	 * Returns true if the cell is a vertex.
    +	 */
    +	function isVertex()
    +	{
    +		return $this->vertex;
    +	}
    +			
    +	/**
    +	 * Function: setVertex
    +	 *
    +	 * Specifies if the cell is a vertex. This should only be assigned at
    +	 * construction of the cell and not be changed during its lifecycle.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * vertex - Boolean that specifies if the cell is a vertex.
    +	 */
    +	 function setVertex($vertex)
    +	 {
    +		$this->vertex = $vertex;
    +	 }
    +	 
    +	/**
    +	 * Function: isEdge
    +	 *
    +	 * Returns true if the cell is an edge.
    +	 */
    +	function isEdge()
    +	{
    +		return $this->edge;
    +	}
    +			
    +	/**
    +	 * Function: setEdge
    +	 * 
    +	 * Specifies if the cell is an edge. This should only be assigned at
    +	 * construction of the cell and not be changed during its lifecycle.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - Boolean that specifies if the cell is an edge.
    +	 */
    +	 function setEdge($edge)
    +	 {
    +		$this->edge = $edge;
    +	 }
    +	
    +	/**
    +	 * Function: isConnectable
    +	 *
    +	 * Returns true if the cell is connectable.
    +	 */
    +	function isConnectable()
    +	{
    +		return $this->connectable;
    +	}
    +	
    +	/**
    +	 * Function: setConnectable
    +	 *
    +	 * Sets the connectable state.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * connectable - Boolean that specifies the new connectable state.
    +	 */
    +	function setConnectable($connectable)
    +	{
    +		$this->connectable = $connectable;
    +	}
    +
    +	/**
    +	 * Function: isVisible
    +	 *
    +	 * Returns true if the cell is visibile.
    +	 */
    +	function isVisible()
    +	{
    +		return $this->visible;
    +	}
    +	
    +	/**
    +	 * Function: setVisible
    +	 *
    +	 * Specifies if the cell is visible.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * visible - Boolean that specifies the new visible state.
    +	 */
    +	function setVisible($visible)
    +	{
    +		$this->visible = $visible;
    +	}
    +	
    +	/**
    +	 * Function: isCollapsed
    +	 *
    +	 * Returns true if the cell is collapsed.
    +	 */
    +	function isCollapsed()
    +	{
    +		return $this->collapsed;
    +	}
    +	
    +	/**
    +	 * Function: setCollapsed
    +	 *
    +	 * Sets the collapsed state.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * collapsed - Boolean that specifies the new collapsed state.
    + 	 */
    +	function setCollapsed($collapsed)
    +	{
    +		$this->collapsed = $collapsed;
    +	}
    +
    +	/**
    +	 * Function: getParent
    +	 *
    +	 * Returns the cell's parent.
    +	 */
    +	function getParent()
    +	{
    +		return $this->parent;
    +	}
    +			
    +	/**
    +	 * Function: setParent
    +	 *
    +	 * Sets the parent cell.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - <mxCell> that represents the new parent.
    +	 */
    +	 function setParent($parent)
    +	 {
    +		$this->parent = $parent;
    +	}
    +		
    +	/**
    +	 * Function: getTerminal
    +	 *
    +	 * Returns the source or target terminal.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * source - Boolean that specifies if the source terminal should be
    +	 * returned.
    +	 */
    +	function getTerminal($source)
    +	{
    +		if ($source)
    +		{
    +			return $this->source;
    +		}
    +		else
    +		{
    +			return $this->target;
    +		}
    +	}
    +			
    +	/**
    +	 * Function: setTerminal
    +	 *
    +	 * Sets the source or target terminal and returns the new terminal.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * terminal - <mxCell> that represents the new source or target terminal.
    +	 * source - Boolean that specifies if the source or target terminal
    +	 * should be set.
    +	 */
    +	 function setTerminal($terminal, $source)
    +	 {
    +	 	if ($source)
    +	 	{
    +	 		$this->source = $terminal;
    +	 	}
    +	 	else
    +	 	{
    +	 		$this->target = $terminal;
    +	 	}
    +	 	
    +	 	return $terminal;
    +	}
    +	
    +	/**
    +	 * Function: getChildCount
    +	 *
    +	 * Returns the number of child cells.
    +	 */
    +	function getChildCount()
    +	{
    +		return ($this->children == null) ? 0 : sizeof($this->children);
    +	}
    +
    +	/**
    +	 * Function: getIndex
    +	 *
    +	 * Returns the index of the specified child in the child array.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * child - Child whose index should be returned.
    +	 */
    +	function getIndex($child)
    +	{
    +		return mxUtils::indexOf($this->children, $child);
    +	}
    +
    +	/**
    +	 * Function: getChildAt
    +	 *
    +	 * Returns the child at the specified index.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * index - Integer that specifies the child to be returned.
    +	 */
    +	function getChildAt($index)
    +	{
    +		if ($this->children != null)
    +		{
    +			return $this->children[$index];
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: insert
    +	 *
    +	 * Inserts the specified child into the child array at the specified index
    +	 * and updates the parent reference of the child. If not childIndex is
    +	 * specified then the child is appended to the child array. Returns the
    +	 * inserted child.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * child - <mxCell> to be inserted or appended to the child array.
    +	 * index - Optional integer that specifies the index at which the child
    +	 * should be inserted into the child array.
    +	 */
    +	function insert($child, $index = null)
    +	{
    +		if (isset($child))
    +		{
    +			if (!isset($index))
    +			{
    +				$index = $this->getChildCount();
    +				
    +				if ($child->getParent() === $this)
    +				{
    +					$index--;
    +				}
    +			} 
    +
    +			$child->removeFromParent();
    +			$child->setParent($this);
    +			
    +			if ($this->children == null)
    +			{
    +				$this->children = array();
    +				array_push($this->children, $child);
    +			}
    +			else
    +			{
    +				array_splice($this->children, $index, 0, array($child));
    +			}
    +		}
    +		
    +		return $child;
    +	}
    +
    +	/**
    +	 * Function: remove
    +	 *
    +	 * Removes the child at the specified index from the child array and
    +	 * returns the child that was removed. Will remove the parent reference of
    +	 * the child.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * index - Integer that specifies the index of the child to be
    +	 * removed.
    +	 */
    +	function remove($index)
    +	{
    +		if ($this->children != null && $index >= 0)
    +		{
    +			$child = $this->getChildAt($index);
    +			
    +			if ($child != null)
    +			{
    +				array_splice($this->children, $index, 1);
    +				$child->setParent(null);
    +			}
    +			
    +			return $child;
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: removeFromParent
    +	 *
    +	 * Removes the cell from its parent.
    +	 */
    +	function removeFromParent()
    +	{
    +	 	if (isset($this->parent))
    +	 	{
    +	 		$index = $this->parent->getIndex($this);
    +	 		$this->parent->remove($index);
    +	 	}
    +	}
    +
    +	/**
    +	 * Function: getEdgeCount
    +	 *
    +	 * Returns the number of edges in the edge array.
    +	 */
    +	function getEdgeCount()
    +	{
    +		return ($this->edges == null) ? 0 : sizeof($this->edges);
    +	}
    +
    +	/**
    +	 * Function: getEdgeIndex
    +	 *
    +	 * Returns the index of the specified edge in <edges>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCell> whose index in <edges> should be returned.
    +	 */
    +	function getEdgeIndex($edge)
    +	{
    +		return mxUtils::indexOf($this->edges, $edge);
    +	}
    +	
    +	/**
    +	 * Function: getEdgeAt
    +	 *
    +	 * Returns the edge at the specified index in <edges>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * index - Integer that specifies the index of the edge to be returned.
    +	 */
    +	function getEdgeAt($index)
    +	{
    +		if ($this->edges != null)
    +		{
    +			return $this->edges[$index];
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: insertEdge
    +	 *
    +	 * Inserts the specified edge into the edge array and returns the edge.
    +	 * Will update the respective terminal reference of the edge.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCell> to be inserted into the edge array.
    +	 * outgoing - Boolean that specifies if the edge is outgoing.
    +	 */
    +	function insertEdge($edge, $outgoing)
    +	{
    +		if (isset($edge))
    +		{
    +			$edge->removeFromTerminal($outgoing);
    +			$edge->setTerminal($this, $outgoing);
    +
    +			if ($this->edges == null ||
    +				$edge->getTerminal(!$outgoing) !== $this ||
    +				mxUtils::indexOf($this->edges, $edge) < 0)
    +			{
    +				if ($this->edges == null)
    +				{
    +					$this->edges = array();
    +				}
    +				
    +				array_push($this->edges, $edge);
    +			}
    +		}
    +		
    +		return $edge;
    +	}
    +
    +	/**
    +	 * Function: removeEdge
    +	 *
    +	 * Removes the specified edge from the edge array and returns the edge.
    +	 * Will remove the respective terminal reference from the edge.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCell> to be removed from the edge array.
    +	 * outgoing - Boolean that specifies if the edge is outgoing.
    +	 */
    +	function removeEdge($edge, $outgoing)
    +	{
    +		if (isset($edge))
    +		{
    +			if ($edge->getTerminal(!$outgoing) !== $this &&
    +				$this->edges != null)
    +			{
    +				$index = $this->getEdgeIndex($edge);
    +				
    +				if ($index >= 0)
    +				{
    +					array_splice($this->edges, $index, 1);
    +				}
    +			}
    +			
    +			$edge->setTerminal(null, $outgoing);
    +		}
    +
    +		return $edge;
    +	}
    +
    +	/**
    +	 * Function: removeFromTerminal
    +	 *
    +	 * Removes the edge from its source or target terminal.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * source - Boolean that specifies if the edge should be removed from its
    +	 * source or target terminal.
    +	 */
    +	function removeFromTerminal($source)
    +	{
    +	 	$terminal = $this->getTerminal($source);
    +	 	
    +	 	if (isset($terminal))
    +	 	{
    +	 		$terminal->removeEdge($this, $source);
    +	 	}
    +	}
    +
    +	/**
    +	 * Function: getAttribute
    +	 *
    +	 * Returns the specified attribute from the user object if it is an XML
    +	 * node.
    +	 */
    +	function getAttribute($key, $defaultValue = null)
    +	{
    +		$userObject = $this->getValue();
    +		
    +		$value = (is_object($userObject) &&
    +			$userObject->nodeType == XML_ELEMENT_NODE) ?
    +			$userObject->getAttribute($key) : null;
    +			
    +		if (!isset($value))
    +		{
    +			$value = $defaultValue;
    +		}
    +		
    +		return $value;
    +	}
    +
    +	/**
    +	 * Function: setAttribute
    +	 *
    +	 * Sets the specified attribute on the user object if it is an XML node.
    +	 */
    +	function setAttribute($key, $value)
    +	{
    +		$userObject = $this->getValue();
    +		
    +		if (is_object($userObject) &&
    +			$userObject->nodeType == XML_ELEMENT_NODE)
    +		{
    +			$userObject->setAttribute($key, $value);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: copy
    +	 *
    +	 * Returns a clone of the cell. Uses <cloneValue> to clone
    +	 * the user object.
    +	 */
    +	function copy()
    +	{
    +	 	$clone = new mxCell($this->copyValue(), null, $this->style);
    +	 	$clone->vertex = $this->vertex;
    +	 	$clone->edge = $this->edge;
    +	 	$clone->connectable = $this->connectable;
    +	 	$clone->visible = $this->visible;
    +	 	$clone->collapsed = $this->collapsed;
    +		
    +		// Clones the geometry
    +		if (isset($this->geometry))
    +		{
    +			$clone->geometry = $this->geometry->copy();
    +		}
    +		
    +		return $clone;
    +	}
    +
    +	/**
    +	 * Function: copyValue
    +	 *
    +	 * Returns a clone of the cell's user object.
    +	 */
    +	function copyValue()
    +	{
    +		$value = $this->getValue();
    +		
    +		if (isset($value))
    +		{
    +			if (method_exists($value, "cloneNode"))
    +			{
    +				$value = $value->cloneNode(true);
    +			}
    +		}
    +		
    +		return $value;
    +	}
    +
    +}
    +
    +?>
    diff --git a/php/src/model/mxCellPath.php b/php/src/model/mxCellPath.php
    new file mode 100644
    index 000000000..c42853491
    --- /dev/null
    +++ b/php/src/model/mxCellPath.php
    @@ -0,0 +1,103 @@
    +<?php
    +/**
    + * $Id: mxCellPath.php,v 1.8 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxCellPath
    +{
    +
    +	/**
    +	 * Class: mxCellPath
    +	 * 
    +	 * Implements a mechanism for temporary cell Ids.
    +	 * 
    +	 * Variable: codecs
    +	 *
    +	 * Maps from constructor names to codecs.
    +	 */
    +	public static $PATH_SEPARATOR = ".";
    +
    +	/**
    +	 * Function: create
    +	 * 
    +	 * Creates the cell path for the given cell. The cell path is a
    +	 * concatenation of the indices of all ancestors on the (finite) path to
    +	 * the root, eg. "0.0.0.1".
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * cell - Cell whose path should be returned.
    +	 */
    +	static function create($cell)
    +	{
    +		$result = "";
    +		$parent = $cell->getParent();
    +
    +		while ($parent != null)
    +		{
    +			$index = $parent->getIndex($cell);
    +			$result = $index . mxCellPath::$PATH_SEPARATOR . $result;
    +			
    +			$cell = $parent;
    +			$parent = $cell->getParent();
    +		}
    +		
    +		return (strlen($result) > 1) ?
    +			substr($result, 0, strlen($result) - 1) : "";
    +	}
    +
    +	/**
    +	 * Function: getParentPath
    +	 * 
    +	 * Returns the cell for the specified cell path using the given root as the
    +	 * root of the path.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * path - Path whose parent path should be returned.
    +	 */
    +	static function getParentPath($path)
    +	{
    +		if ($path != null && strlen($path) > 0)
    +		{
    +			$index = strrpos($path, mxCellPath::$PATH_SEPARATOR);
    +			
    +			if ($index === false)
    +			{
    +				return "";
    +			}
    +			else
    +			{
    +				return substr($path, 0, $index);
    +			}
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: resolve
    +	 * 
    +	 * Returns the cell for the specified cell path using the given root as the
    +	 * root of the path.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * root - Root cell of the path to be resolved.
    +	 * path - String that defines the path.
    +	 */
    +	static function resolve($root, $path)
    +	{
    +		$parent = $root;
    +		$tokens = explode(mxCellPath::$PATH_SEPARATOR, $path);
    +		
    +		for ($i=0; $i<sizeof($tokens); $i++)
    +		{
    +			$parent = $parent->getChildAt($tokens[$i]);
    +		}
    +		
    +		return $parent;
    +	}
    +
    +}
    +?>
    diff --git a/php/src/model/mxGeometry.php b/php/src/model/mxGeometry.php
    new file mode 100644
    index 000000000..18e0b0d52
    --- /dev/null
    +++ b/php/src/model/mxGeometry.php
    @@ -0,0 +1,234 @@
    +<?php
    +/**
    + * $Id: mxGeometry.php,v 1.18 2010-06-29 12:05:42 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxGeometry extends mxRectangle
    +{
    +
    +	/**
    +	 * Class: mxGeometry
    +	 *
    +	 * Represents the geometry of a cell. For vertices, the geometry consists
    +	 * of the x- and y-location, as well as the width and height. For edges,
    +	 * the edge either defines the source- and target-terminal, or the geometry
    +	 * defines the respective terminal points.
    +	 * 
    +	 * Variable: TRANSLATE_CONTROL_POINTS
    +	 * 
    +	 * Global switch to translate the points in translate. Default is true.
    +	 */
    +	public static $TRANSLATE_CONTROL_POINTS = true;
    +
    +	/**
    +	 * Variable: alternateBounds
    +	 *
    +	 * Stores alternate values for x, y, width and height in a rectangle.
    +	 * Default is null.
    +	 */
    +	var $alternateBounds;
    +
    +	/**
    +	 * Variable: sourcePoint
    +	 *
    +	 * Defines the source point of the edge. This is used if the corresponding
    +	 * edge does not have a source vertex. Otherwise it is ignored. Default is
    +	 * null.
    +	 */
    +	var $sourcePoint;
    +	
    +	/**
    +	 * Variable: targetPoint
    +	 *
    +	 * Defines the target point of the edge. This is used if the corresponding
    +	 * edge does not have a target vertex. Otherwise it is ignored. Default is
    +	 * null.
    +	 */
    +	var $targetPoint;
    +		
    +	/**
    +	 * Variable: points
    +	 *
    +	 * Array of <mxPoints> which specifies the control points along the edge.
    +	 * These points are the intermediate points on the edge, for the endpoints
    +	 * use <targetPoint> and <sourcePoint> or set the terminals of the edge to
    +	 * a non-null value. Default is null.
    +	 */
    +	var $points;
    +	
    +	/**
    +	 * Variable: offset
    +	 *
    +	 * Holds the offset of the label for edges. This is the absolute vector
    +	 * between the center of the edge and the top, left point of the label.
    +	 * Default is null.
    +	 */
    +	var $offset;
    +
    +	/**
    +	 * Variable: relative
    +	 *
    +	 * Specifies if the coordinates in the geometry are to be interpreted as
    +	 * relative coordinates. Default is false. This is used to mark a geometry
    +	 * with an x- and y-coordinate that is used to describe an edge label
    +	 * position.
    +	 */
    +	var $relative = false;
    +
    +	/**
    +	 * Constructor: mxGeometry
    +	 *
    +	 * Constructs a new object to describe the size and location
    +	 * of a vertex or the control points of an edge.
    +	 */
    +	function mxGeometry($x=0, $y=0, $width=0, $height=0)
    +	{
    +		parent::mxRectangle($x, $y, $width, $height);
    +	}
    +
    +	/**
    +	 * Function: getTerminalPoint
    +	 * 
    +	 * Returns the <mxPoint> representing the source or target point of this
    +	 * edge. This is only used if the edge has no source or target vertex.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * isSource - Boolean that specifies if the source or target point
    +	 * should be returned.
    +	 */
    +	function getTerminalPoint($isSource)
    +	{
    +		return ($isSource) ? $this->sourcePoint : $this->targetPoint;
    +	}
    +	
    +	/**
    +	 * Function: setTerminalPoint
    +	 * 
    +	 * Sets the <sourcePoint> or <targetPoint> to the given <mxPoint> and
    +	 * returns the new point.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * point - Point to be used as the new source or target point.
    +	 * isSource - Boolean that specifies if the source or target point
    +	 * should be set.
    +	 */
    +	function setTerminalPoint($point, $isSource)
    +	{
    +		if ($isSource)
    +		{
    +			$this->sourcePoint = $point;
    +		}
    +		else
    +		{
    +			$this->targetPoint = $point;
    +		}
    +		
    +		return $point;
    +	}
    +	
    +	/**
    +	 * Function: translate
    +	 * 
    +	 * Translates the geometry by the specified amount. That is, <x> and <y>
    +	 * of the geometry, the <sourcePoint>, <targetPoint> and all elements of
    +	 * <points> are translated by the given amount. <x> and <y> are only
    +	 * translated if <relative> is false. If <TRANSLATE_CONTROL_POINTS> is
    +	 * false, then <points> are not modified by this function.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * dx - Integer that specifies the x-coordinate of the translation.
    +	 * dy - Integer that specifies the y-coordinate of the translation.
    +	 */
    +	function translate($dx, $dy)
    +	{
    +		// Translates the geometry
    +		if (!$this->relative)
    +		{
    +			$this->x += $dx;
    +			$this->y += $dy;
    +		}
    +		
    +		// Translates the source point
    +		if ($this->sourcePoint != null)
    +		{
    +			$this->sourcePoint->x += $dx;
    +			$this->sourcePoint->y += $dy;
    +		}
    +		
    +		// Translates the target point
    +		if ($this->targetPoint != null)
    +		{
    +			$this->targetPoint->x += $dx;
    +			$this->targetPoint->y += $dy;
    +		}
    +
    +		// Translate the control points
    +		if (mxGeometry::$TRANSLATE_CONTROL_POINTS &&
    +			$this->points != null)
    +		{
    +			$count = sizeof($this->points);
    +			
    +			for ($i = 0; $i < $count; $i++)
    +			{
    +				$pt = $this->points[i];
    +				
    +				$pt->x += $dx;
    +				$pt->y += $dy;
    +			}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: copy
    +	 *
    +	 * Returns a copy of this <mxGeometry>.
    +	 */
    +	function copy()
    +	{
    +	 	$clone = new mxGeometry($this->x, $this->y, $this->width, $this->height);
    +				
    +		// Clones the points
    +		if ($this->points != null)
    +		{
    +			$clone->points = array();
    +			
    +			for ($i = 0; $i < sizeof($this->points); $i++)
    +			{
    +				array_push($clone->points, $this->points[$i]->copy());
    +			}
    +		}
    +		
    +		// Clones the alternatebounds
    +		if ($this->alternateBounds != null)
    +		{
    +			$clone->alternateBounds = $this->alternateBounds->copy();
    +		}
    +		
    +		// Clones the offset
    +		if ($this->offset != null)
    +		{
    +			$clone->offset = $this->offset->copy();
    +		}
    +		
    +		// Clones the source and targetpoint
    +		if ($this->sourcePoint != null)
    +		{
    +			$clone->sourcePoint = $this->sourcePoint->copy();
    +		}
    +		
    +		if ($this->targetPoint != null)
    +		{
    +			$clone->targetPoint = $this->targetPoint->copy();
    +		}
    +
    +	 	$clone->relative = $this->relative;
    +
    +		return $clone;
    +	}
    +
    +}
    +
    +?>
    diff --git a/php/src/model/mxGraphModel.php b/php/src/model/mxGraphModel.php
    new file mode 100644
    index 000000000..a1a932397
    --- /dev/null
    +++ b/php/src/model/mxGraphModel.php
    @@ -0,0 +1,1332 @@
    +<?php
    +/**
    + * $Id: mxGraphModel.php,v 1.47 2011-03-21 16:52:13 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxGraphModel extends mxEventSource
    +{
    +	
    +	/**
    +	 * Class: mxGraphModel
    +	 * 
    +	 * Cells are the elements of the graph model. They represent the state
    +	 * of the groups, vertices and edges in a graph.
    +	 *
    +	 * Fires a graphModelChanged event after each group of changes.
    +	 * 
    +	 * Variable: root
    +	 * 
    +	 * Holds the root cell, which in turn contains the cells that represent the
    +	 * layers of the diagram as child cells. That is, the actual elements of the
    +	 * diagram are supposed to live in the third generation of cells and below.
    +	 */
    +	var $root;
    +		
    +	/**
    +	 * Variable: cells
    +	 * 
    +	 * Maps from Ids to cells.
    +	 */
    +	var $cells;
    +	
    +	/**
    +	 * Variable: maintainEdgeParent
    +	 * 
    +	 * Specifies if edges should automatically be moved into the nearest common
    +	 * ancestor of their terminals. Default is true.
    +	 */
    +	var $maintainEdgeParent = true;
    +
    +	/**
    +	 * Variable: createIds
    +	 * 
    +	 * Specifies if the model should automatically create Ids for new cells.
    +	 * Default is true.
    +	 */
    +	var $createIds = true;
    +	
    +	/**
    +	 * Variable: nextId
    +	 * 
    +	 * Specifies the next Id to be created. Default is 0.
    +	 */
    +	var $nextId = 0;
    +
    +	/**
    +	 * Variable: updateLevel
    +	 * 
    +	 * Counter for the depth of nested transactions. Each call to <beginUpdate>
    +	 * will increment this number and each call to <endUpdate> will decrement
    +	 * it. When the counter reaches 0, the transaction is closed and the
    +	 * respective events are fired. Initial value is 0.
    +	 */
    +	var $updateLevel = 0;
    +
    +	/**
    +	 * Constructor: mxGraphModel
    +	 *
    +	 * Constructs a new graph model using the specified root cell.
    +	 */
    +	function mxGraphModel($root = null)
    +	{
    +	 	if (isset($root))
    +	 	{
    +			$this->setRoot($root);
    +	 	}
    +	 	else
    +	 	{
    +	 		$this->clear();
    +	 	}
    +	}
    +		
    +	/**
    +	 * Function: clear
    +	 *
    +	 * Sets a new root using <createRoot>.
    +	 */
    +	function clear()
    +	{
    +		$this->setRoot($this->createRoot());
    +	}
    +
    +	/**
    +	 * Function: createRoot
    +	 *
    +	 * Creates a new root cell with a default layer (child 0).
    +	 */
    +	function createRoot()
    +	{
    +		$root = new mxCell();
    +		$root->insert(new mxCell());
    +			
    +		return $root;
    +	}
    +	
    +	/**
    +	 * Function: getCells
    +	 * 
    +	 * Returns the internal lookup table that is used to map from Ids to cells.
    +	 */
    +	function getCells()
    +	{
    +	 	return $this->cells;
    +	}
    +
    +	/**
    +	 * Function: setRoot
    +	 *
    +	 */
    +	function getCell($id)
    +	{
    +		$result = null;
    +
    +		if ($this->cells != null)
    +		{
    +			$result = mxUtils::getValue($this->cells, $id);
    +		}
    +
    +		return $result;
    +	}
    +	
    +	/**
    +	 * Function: getRoot
    +	 * 
    +	 * Returns the root of the model.
    +	 */
    +	function getRoot()
    +	{
    +	 	return $this->root;
    +	}
    +	
    +	/**
    +	 * Function: setRoot
    +	 * 
    +	 * Sets the <root> of the model using <mxRootChange> and adds the change to
    +	 * the current transaction. This resets all datastructures in the model and
    +	 * is the preferred way of clearing an existing model. Returns the new
    +	 * root.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * root - <mxCell> that specifies the new root.
    +	 */
    +	function setRoot($root)
    +	{
    +		$oldRoot = $this->root;
    +		
    +	 	$this->beginUpdate();
    +	 	try
    +	 	{
    +			$this->root = $root;
    +			$this->nextId = 0;
    +			$this->cells = null;
    +			
    +			$this->cellAdded($root);
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +		
    +		return $oldRoot;
    +	}
    +
    +	//
    +	// Cell Cloning
    +	//
    +
    +	/**
    +	 * Function: cloneCell
    +	 * 
    +	 * Returns a deep clone of the given <mxCell> (including
    +	 * the children) which is created using <cloneCells>.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> to be cloned.
    +	 */
    +	function cloneCell($cell)
    +	{
    +		$clones = $this->cloneCells(array($cell), true);
    +		
    +		return $clones[0];
    +	}
    +
    +	/**
    +	 * Function: cloneCells
    +	 * 
    +	 * Returns an array of clones for the given array of <mxCells>.
    +	 * Depending on the value of includeChildren, a deep clone is created for
    +	 * each cell. Connections are restored based if the corresponding
    +	 * cell is contained in the passed in array.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cells - Array of <mxCell> to be cloned.
    +	 * includeChildren - Boolean indicating if the cells should be cloned
    +	 * with all descendants.
    +	 */
    +	function cloneCells($cells, $includeChildren=true)
    +	{
    +		$mapping = array();
    +		$clones = array();
    +		
    +		for ($i=0; $i<sizeof($cells); $i++)
    +		{
    +			$cell = $cells[$i];
    +			$clne = $this->cloneCellImpl($cell, $mapping, $includeChildren);
    +			array_push($clones, $clne);
    +		}
    +		
    +		for ($i=0; $i<sizeof($clones); $i++)
    +		{
    +			$this->restoreClone($clones[$i], $cells[$i], $mapping);
    +		}
    +		
    +		return $clones;
    +	}
    +				
    +	/**
    +	 * Function: cloneCellImpl
    +	 * 
    +	 * Inner helper method for cloning cells recursively.
    +	 */
    +	function cloneCellImpl($cell, $mapping, $includeChildren)
    +	{
    +		$clne = $this->cellCloned($cell);
    +		
    +		// Stores the clone in the lookup under the
    +		// cell path for the original cell
    +		$mapping[mxCellPath::create($cell)] = $clne;
    +		
    +		if ($includeChildren)
    +		{
    +			$childCount = $this->getChildCount($cell);
    +
    +			for ($i = 0; $i < $childCount; $i++)
    +			{
    +				$child = $this->getChildAt($cell, $i);
    +				$cloneChild = $this->cloneCellImpl($child, $mapping, true);
    +				$clne->insert($cloneChild);
    +			}
    +		}
    +		
    +		return $clne;
    +	}
    +
    +	/**
    +	 * Function: cellCloned
    +	 * 
    +	 * Hook for cloning the cell. This returns cell->copy() or
    +	 * any possible exceptions.
    +	 */
    +	function cellCloned($cell)
    +	{
    +		return $cell->copy();
    +	}
    +	
    +	/**
    +	 * Function: restoreClone
    +	 * 
    +	 * Inner helper method for restoring the connections in
    +	 * a network of cloned cells.
    +	 */
    +	function restoreClone($clne, $cell, $mapping)
    +	{
    +		$source = $this->getTerminal($cell, true);
    +		
    +		if ($source != null)
    +		{
    +			$tmp = $mapping[mxCellPath::create($source)];
    +			
    +			if ($tmp != null)
    +			{
    +				$tmp->insertEdge($clne, true);
    +			}
    +		}
    +		
    +		$target = $this->getTerminal($cell, false);
    +		
    +		if ($target != null)
    +		{
    +			$tmp = $mapping[mxCellPath::create($target)];
    +			
    +			if ($tmp != null)
    +			{
    +				$tmp->insertEdge($clne, false);
    +			}
    +		}
    +		
    +		$childCount = $this->getChildCount($clne);
    +		
    +		for ($i = 0; $i < $childCount; $i++)
    +		{
    +			$this->restoreClone($this->getChildAt($clne, $i),
    +				$this->getChildAt($cell, $i), $mapping);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: isAncestor
    +	 * 
    +	 * Returns true if the given parent is an ancestor of the given child.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * parent - <mxCell> that specifies the parent.
    +	 * child - <mxCell> that specifies the child.
    +	 */
    +	function isAncestor($parent, $child)
    +	{
    +		while ($child != null && $child != $parent)
    +		{
    +			$child = $this->getParent($child);
    +		}
    +
    +		return $child === $parent;
    +	}
    +
    +	/**
    +	 * Function: contains
    +	 * 
    +	 * Returns true if the model contains the given <mxCell>.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that specifies the cell.
    +	 */
    +	function contains($cell)
    +	{
    +		return $this->isAncestor($this->root, $cell);
    +	}
    +	
    +	/**
    +	 * Function: getParent
    +	 * 
    +	 * Returns the parent of the given cell.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose parent should be returned.
    +	 */
    +	function getParent($cell)
    +	{
    +		if ($cell != null)
    +		{
    +			return $cell->getParent();
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: add
    +	 * 
    +	 * Adds the specified child to the parent at the given index using
    +	 * <mxChildChange> and adds the change to the current transaction. If no
    +	 * index is specified then the child is appended to the parent's array of
    +	 * children. Returns the inserted child.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - <mxCell> that specifies the parent to contain the child.
    +	 * child - <mxCell> that specifies the child to be inserted.
    +	 * index - Optional integer that specifies the index of the child.
    +	 */
    +	function add($parent, $child, $index = null)
    +	{
    +		if ($child !== $parent && $child != null && $parent != null)
    +		{
    +			$parentChanged = $parent !== $this->getParent($child);
    +			
    +		 	$this->beginUpdate();
    +		 	try
    +		 	{
    +				$parent->insert($child, $index);
    +				$this->cellAdded($child);
    +			}
    +			catch (Exception $e)
    +			{
    +				$this->endUpdate();
    +				throw($e);
    +			}
    +			$this->endUpdate();
    +			
    +			if ($parentChanged && $this->maintainEdgeParent)
    +			{
    +				$this->updateEdgeParents($child);
    +			}
    +		}
    +		
    +		return $child;
    +	}
    +
    +	/**
    +	 * Function: cellAdded
    +	 * 
    +	 * Inner callback to update <cells> when a cell has been added. This
    +	 * implementation resolves collisions by creating new Ids.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that specifies the cell that has been added.
    +	 */
    +	function cellAdded($cell)
    +	{
    +	 	if ($cell->getId() == null && $this->createIds)
    +	 	{
    +	 		$cell->setId($this->createId($cell));
    +	 	}
    +	 	
    +	 	if ($cell->getId() != null)
    +	 	{
    +	 		$collision = $this->getCell($cell->getId());
    +	 		
    +	 		if ($collision != $cell)
    +	 		{
    +	 			while ($collision != null)
    +	 			{
    +	 				$cell->setId($this->createId($cell));
    +	 				$collision = $this->getCell($cell->getId());
    +	 			}
    +	 			
    +	 			if ($this->cells == null)
    +	 			{
    +	 				$this->cells = array();
    +	 			}
    +	 			
    +	 			$this->cells[$cell->getId()] = $cell;
    +	 		}
    +	 	}
    +
    +		// Makes sure IDs of deleted cells are not reused
    +		if (is_numeric($cell->getId()))
    +		{
    +			$this->nextId = max($this->nextId, $cell->getId() + 1);
    +		}
    +		
    +		$childCount = $this->getChildCount($cell);
    +		
    +		for ($i = 0; $i < $childCount; $i++)
    +		{
    +			$this->cellAdded($this->getChildAt($cell, $i));
    +		}
    +	}
    +			
    +	/**
    +	 * Function: createId
    +	 * 
    +	 * Hook method to create an Id for the specified cell. This
    +	 * implementation increments <nextId>.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * cell - <mxCell> to create the Id for.
    +	 */
    +	function createId($cell)
    +	{
    +		$id = $this->nextId;
    +		$this->nextId++;
    +		
    +		return $id;
    +	}
    +
    +	/**
    +	 * Function: updateEdgeParents
    +	 * 
    +	 * Updates the parent for all edges that are connected to cell or one of
    +	 * its descendants using <updateEdgeParent>.
    +	 */
    +	function updateEdgeParents($cell, $root = null)
    +	{
    +		// Gets the topmost node of the hierarchy
    +		$root = $root || $this->getRoot();
    +		
    +		// Updates edges on children first
    +		$childCount = $this->getChildCount($cell);
    +		
    +		for ($i = 0; $i < $childCount; $i++)
    +		{
    +			$child = $this->getChildAt($cell, $i);
    +			$this->updateEdgeParents($child, $root);
    +		}
    +		
    +		// Updates the parents of all connected edges
    +		$edgeCount = $this->getEdgeCount($cell);
    +		$edges = array();
    +		
    +		for ($i = 0; $i < $edgeCount; $i++)
    +		{
    +			array_push($edges, $this->getEdgeAt($cell, $i));
    +		}
    +		
    +		foreach ($edges as $edge)
    +		{
    +			// Updates edge parent if edge and child have
    +			// a common root node (does not need to be the
    +			// model root node)
    +			if ($this->isAncestor($root, $edge))
    +			{
    +				$this->updateEdgeParent($edge, $root);
    +			}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: updateEdgeParent
    +	 *
    +	 * Inner callback to update the parent of the specified <mxCell> to the
    +	 * nearest-common-ancestor of its two terminals.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCell> that specifies the edge.
    +	 * root - <mxCell> that represents the current root of the model.
    +	 */
    +	function updateEdgeParent($edge, $root)
    +	{
    +		$source = $this->getTerminal($edge, true);
    +		$target = $this->getTerminal($edge, false);
    +		$cell = null;
    +		
    +		// Uses the first non-relative descendants of the source terminal
    +		while ($source != null && !$this->isEdge($source) &&
    +			$source->geometry != null && $source->geometry->relative)
    +		{
    +			$source = $this->getParent($source);
    +		}
    +		
    +		// Uses the first non-relative descendants of the target terminal
    +		while ($target != null && !$this->isEdge($target) &&
    +			$target->geometry != null && $target->geometry->relative)
    +		{
    +			$target = $this->getParent($target);
    +		}
    +		
    +		if ($this->isAncestor($root, $source) &&
    +			$this->isAncestor($root, $target))
    +		{
    +			if ($source === $target)
    +			{
    +				$cell = $this->getParent($source);
    +			}
    +			else
    +			{
    +				$cell = $this->getNearestCommonAncestor($source, $target);
    +			}
    +			
    +			if ($cell != null &&
    +				$this->getParent($cell) !== $this->root &&
    +				$this->getParent($edge) !== $cell)
    +			{
    +				$geo = $this->getGeometry($edge);
    +				
    +				if ($geo != null)
    +				{
    +					$origin1 = $this->getOrigin($this->getParent($edge));
    +					$origin2 = $this->getOrigin($cell);
    +					
    +					$dx = $origin2->x - $origin1->x;
    +					$dy = $origin2->y - $origin1->y;
    +					
    +					$geo = $geo->copy();
    +					$geo->translate(-$dx, -$dy);
    +					$this->setGeometry($edge, $geo);
    +				}
    +				
    +				$this->add($cell, $edge, $this->getChildCount($cell));
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Function: getOrigin
    +	 * 
    +	 * Returns the absolute, cummulated origin for the children inside the
    +	 * given parent as an <mxPoint>.
    +	 */
    +	function getOrigin($cell)
    +	{
    +		$result = null;
    +		
    +		if ($cell != null)
    +		{
    +			$result = $this->getOrigin($this->getParent($cell));
    +			
    +			if (!$this->isEdge($cell))
    +			{
    +				$geo = $this->getGeometry($cell);
    +				
    +				if ($geo != null)
    +				{
    +					$result->x += $geo->x;
    +					$result->y += $geo->y;
    +				}
    +			}
    +		}
    +		else
    +		{
    +			$result = new mxPoint();
    +		}
    +		
    +		return $result;
    +	}
    +	
    +	/**
    +	 * Function: getNearestCommonAncestor
    +	 * 
    +	 * Returns the nearest common ancestor for the specified cells.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell1 - <mxCell> that specifies the first cell in the tree.
    +	 * cell2 - <mxCell> that specifies the second cell in the tree.
    +	 */
    +	function getNearestCommonAncestor($cell1, $cell2)
    +	{
    +		if ($cell1 != null && $cell2 != null)
    +		{		
    +			// Creates the cell path for the second cell
    +			$path = mxCellPath::create($cell2);
    +			
    +			if (isset($path) && strlen($path) > 0)
    +			{
    +				// Bubbles through the ancestors of the target
    +				// cell to find the nearest common ancestor.
    +				$cell = $cell1;
    +				$current = mxCellPath::create($cell);
    +				
    +				while ($cell != null)
    +				{
    +					$parent = $this->getParent($cell);
    +
    +					// Checks if the cell path is equal to the beginning
    +					// of the given cell path
    +					if (strpos($path, $current.mxCellPath::$PATH_SEPARATOR) === 0 &&
    +						$parent != null)
    +					{
    +						return $cell;
    +					}
    +					
    +					$current = mxCellPath::getParentPath($current);
    +					$cell = $parent;
    +				}
    +			}
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: remove
    +	 * 
    +	 * Removes the specified cell from the model using <mxChildChange> and adds
    +	 * the change to the current transaction. This operation will remove the
    +	 * cell and all of its children from the model. Returns the removed cell.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that should be removed.
    +	 */
    +	function remove($cell)
    +	{
    +	 	$this->beginUpdate();
    +	 	try
    +	 	{
    +			if ($cell === $this->root)
    +			{
    +				$this->setRoot(null);
    +			}
    +			else
    +			{
    +				$cell->removeFromParent();
    +            }
    +            
    +            $this->cellRemoved($cell);
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +
    +		return $cell;
    +	}
    +
    +	/**
    +	 * Function: cellRemoved
    +	 * 
    +	 * Inner callback to update <cells> when a cell has been removed.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that specifies the cell that has been removed.
    +	 */
    +	function cellRemoved($cell)
    +	{
    +		if ($cell != null)
    +		{
    +			$childCount = $this->getChildCount($cell);
    +			
    +			for ($i = 0; $i < $childCount; $i++)
    +			{
    +				$this->cellRemoved($this->getChildAt($cell, $i));
    +			}
    +			
    +			$cell->removeFromTerminal(true);
    +			$cell->removeFromTerminal(false);
    +
    +			if ($this->cells != null && $cell->getId() != null)
    +			{
    +				$this->cells[$cell->getId()] = null;
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Function: getChildCount
    +	 *
    +	 * Returns the number of children in the given cell.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose number of children should be returned.
    +	 */
    +	function getChildCount($cell)
    +	{
    +	 	return ($cell != null) ? $cell->getChildCount() : 0;
    +	}
    +	
    +	/**
    +	 * Function: getChildAt
    +	 *
    +	 * Returns the child of the given <mxCell> at the given index.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that represents the parent.
    +	 * index - Integer that specifies the index of the child to be returned.
    +	 */
    +	function getChildAt($cell, $index)
    +	{
    +		if ($cell != null)
    +		{
    +			return $cell->getChildAt($index);
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: getTerminal
    +	 * 
    +	 * Returns the source or target <mxCell> of the given edge depending on the
    +	 * value of the boolean parameter.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCell> that specifies the edge.
    +	 * cource - Boolean indicating which end of the edge should be returned.
    +	 */
    +	function getTerminal($edge, $cource)
    +	{
    +		if ($edge != null)
    +		{
    +			return $edge->getTerminal($cource);
    +		}
    +		
    +	 	return null;
    +	}
    +	
    +	/**
    +	 * Function: setTerminal
    +	 * 
    +	 * Sets the source or target terminal of the given <mxCell> using
    +	 * <mxTerminalChange> and adds the change to the current transaction.
    +	 * This implementation updates the parent of the edge using <updateEdgeParent>
    +	 * if required.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCell> that specifies the edge.
    +	 * terminal - <mxCell> that specifies the new terminal.
    +	 * isSource - Boolean indicating if the terminal is the new source or
    +	 * target terminal of the edge.
    +	 */
    +	function setTerminal($edge, $terminal, $source)
    +	{
    +		$previous = $edge->getTerminal($source);
    +		
    +		$this->beginUpdate();
    +		try
    +		{
    +			if ($terminal != null)
    +			{
    +				$terminal->insertEdge($edge, $source);
    +			}
    +			else if ($previous != null)
    +			{
    +				$previous->removeEdge($edge, $source);
    +			}
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +
    +        if ($this->maintainEdgeParent)
    +        {
    +			$this->updateEdgeParent($edge, $this->getRoot());
    +        }
    +
    +		return $terminal;
    +	}
    +	
    +	/**
    +	 * Function: setTerminals
    +	 * 
    +	 * Sets the source and target <mxCell> of the given <mxCell> in a single
    +	 * transaction using <setTerminal> for each end of the edge.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCell> that specifies the edge.
    +	 * source - <mxCell> that specifies the new source terminal.
    +	 * target - <mxCell> that specifies the new target terminal.
    +	 */
    +	function setTerminals($edge, $source, $target)
    +	{
    +		$this->beginUpdate();
    +		try
    +		{
    +			$this->setTerminal($edge, $source, true);
    +			$this->setTerminal($edge, $target, false);
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +	}
    +	
    +	/**
    +	 * Function: getEdgeCount
    +	 * 
    +	 * Returns the number of distinct edges connected to the given cell.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that represents the vertex.
    +	 */
    +	function getEdgeCount($cell)
    +	{
    +	 	return ($cell != null) ? $cell->getEdgeCount() : 0;
    +	}
    +	
    +	/**
    +	 * Function: getEdgeAt
    +	 * 
    +	 * Returns the edge of cell at the given index.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that specifies the vertex.
    +	 * index - Integer that specifies the index of the edge
    +	 * to return.
    +	 */
    +	function getEdgeAt($cell, $index)
    +	{
    +	 	return ($cell != null) ? $cell->getEdgeAt($index) : null;
    +	}
    +
    +	/**
    +	 * Function: getEdges
    +	 * 
    +	 * Returns all distinct edges connected to this cell as an array of
    +	 * <mxCells>. The return value should be only be read.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that specifies the cell.
    +	 */
    +	function getEdges($cell)
    +	{
    +		return ($cell != null) ? $cell->edges : null;
    +	}
    +	
    +	/**
    +	 * Function: isVertex
    +	 * 
    +	 * Returns true if the given cell is a vertex.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that represents the possible vertex.
    +	 */
    +	function isVertex($cell)
    +	{
    +	 	return ($cell != null) ? $cell->isVertex() : null;
    +	}
    +
    +	/**
    +	 * Function: isEdge
    +	 * 
    +	 * Returns true if the given cell is an edge.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> that represents the possible edge.
    +	 */
    +	function isEdge($cell)
    +	{
    +	 	return ($cell != null) ? $cell->isEdge() : null;
    +	}
    +
    +	/**
    +	 * Function: isConnectable
    +	 * 
    +	 * Returns true if the given <mxCell> is connectable. If <edgesConnectable>
    +	 * is false, then this function returns false for all edges else it returns
    +	 * the return value of <mxCell.isConnectable>.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose connectable state should be returned.
    +	 */
    +	function isConnectable($cell)
    +	{
    +	 	return ($cell != null) ? $cell->isConnectable() : false;
    +	}
    +
    +	/**
    +	 * Function: getValue
    +	 * 
    +	 * Returns the user object of the given <mxCell> using <mxCell.getValue>.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose user object should be returned.
    +	 */
    +	function getValue($cell)
    +	{
    +	 	return ($cell != null) ? $cell->getValue() : null;
    +	}
    +	
    +	/**
    +	 * Function: setValue
    +	 * 
    +	 * Sets the user object of then given <mxCell> using <mxValueChange>
    +	 * and adds the change to the current transaction.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose user object should be changed.
    +	 * value - Object that defines the new user object.
    +	 */
    +	function setValue($cell, $value)
    +	{
    +	 	$this->beginUpdate();
    +	 	try
    +	 	{
    +		 	$cell->setValue($value);
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +	 	
    +	 	return $value;
    +	}
    +
    +	/**
    +	 * Function: getGeometry
    +	 * 
    +	 * Returns the <mxGeometry> of the given <mxCell>.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose geometry should be returned.
    +	 */
    +	function getGeometry($cell)
    +	{
    +		if ($cell != null)
    +		{
    +			return $cell->getGeometry();
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: setGeometry
    +	 * 
    +	 * Sets the <mxGeometry> of the given <mxCell>. The actual update
    +	 * of the cell is carried out in <geometryForCellChanged>. The
    +	 * <mxGeometryChange> action is used to encapsulate the change.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose geometry should be changed.
    +	 * geometry - <mxGeometry> that defines the new geometry.
    +	 */
    +	function setGeometry($cell, $geometry)
    +	{
    +		$this->beginUpdate();
    +		try
    +		{	
    +		 	$cell->setGeometry($geometry);
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +	 	
    +	 	return $geometry;
    +	}
    +
    +	/**
    +	 * Function: getStyle
    +	 * 
    +	 * Returns the style of the given <mxCell>.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose style should be returned.
    +	 */
    +	function getStyle($cell)
    +	{
    +	 	return ($cell != null) ? $cell->getStyle() : null;
    +	}
    +
    +	/**
    +	 * Function: setStyle
    +	 * 
    +	 * Sets the style of the given <mxCell> using <mxStyleChange> and
    +	 * adds the change to the current transaction.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose style should be changed.
    +	 * style - String of the form stylename[;key=value] to specify
    +	 * the new cell style.
    +	 */
    +	function setStyle($cell, $style)
    +	{
    + 		$this->beginUpdate();
    + 		try
    + 		{
    +		 	$cell->setStyle($style);
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +	 	
    +	 	return $style;
    +	}
    +	
    +	/**
    +	 * Function: isCollapsed
    +	 * 
    +	 * Returns true if the given <mxCell> is collapsed.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose collapsed state should be returned.
    +	 */
    +	function isCollapsed($cell)
    +	{
    +	 	return ($cell != null) ? $cell->isCollapsed() : false;
    +	}
    +	
    +	/**
    +	 * Function: setCollapsed
    +	 * 
    +	 * Sets the collapsed state of the given <mxCell> using <mxCollapseChange>
    +	 * and adds the change to the current transaction.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose collapsed state should be changed.
    +	 * collapsed - Boolean that specifies the new collpased state.
    +	 */
    +	function setCollapsed($cell, $isCollapsed)
    +	{
    +	 	$this->beginUpdate();
    +	 	try
    +	 	{
    +		 	$cell->setCollapsed($isCollapsed);
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +	 	
    +	 	return $isCollapsed;
    +	}
    +
    +	/**
    +	 * Function: isVisible
    +	 * 
    +	 * Returns true if the given <mxCell> is visible.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose visible state should be returned.
    +	 */
    +	function isVisible($cell)
    +	{
    +	 	return ($cell != null) ? $cell->isVisible() : false;
    +	}
    +
    +	/**
    +	 * Function: setVisible
    +	 * 
    +	 * Sets the visible state of the given <mxCell> using <mxVisibleChange> and
    +	 * adds the change to the current transaction.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose visible state should be changed.
    +	 * visible - Boolean that specifies the new visible state.
    +	 */
    +	function setVisible($cell, $visible)
    +	{
    +	 	$this->beginUpdate();
    +	 	try
    +	 	{
    +		 	$cell->setVisible($visible);
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +	 	
    +	 	return $isVisible;
    +	}
    +
    +	/**
    +	 * Function: mergeChildren
    +	 * 
    +	 * Merges the children of the given cell into the given target cell inside
    +	 * this model. All cells are cloned unless there is a corresponding cell in
    +	 * the model with the same id, in which case the source cell is ignored and
    +	 * all edges are connected to the corresponding cell in this model. Edges
    +	 * are considered to have no identity and are always cloned unless the
    +	 * cloneAllEdges flag is set to false, in which case edges with the same
    +	 * id in the target model are reconnected to reflect the terminals of the
    +	 * source edges.
    +	 */
    +	function mergeChildren($from, $to, $cloneAllEdges = true)
    +	{
    +		$this->beginUpdate();
    +		try
    +		{
    +			$mapping = array();
    +			$this->mergeChildrenImpl($from, $to, $cloneAllEdges, $mapping);
    +			
    +			// Post-processes all edges in the mapping and
    +			// reconnects the terminals to the corresponding
    +			// cells in the target model
    +			foreach ($mapping as $key => $cell)
    +			{
    +				$terminal = $this->getTerminal($cell, $true);
    +				
    +				if (isset($terminal))
    +				{
    +					$terminal = $mapping[mxCellPath::create($terminal)];
    +					$this->setTerminal($cell, $terminal, $true);
    +				}
    +				
    +				$terminal = $this->getTerminal(cell, false);
    +				
    +				if (isset($terminal))
    +				{
    +					$terminal = $mapping[mxCellPath::create($terminal)];
    +					$this->setTerminal($cell, $terminal, false);
    +				}
    +			}
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +	}
    +
    +	/**
    +	 * Function: mergeChildrenImpl
    +	 * 
    +	 * Clones the children of the source cell into the given target cell in
    +	 * this model and adds an entry to the mapping that maps from the source
    +	 * cell to the target cell with the same id or the clone of the source cell
    +	 * that was inserted into this model.
    +	 */
    +	function mergeChildrenImpl($from, $to, $cloneAllEdges, $mapping)
    +	{
    +		$this->beginUpdate();
    +		try
    +		{
    +			$childCount = $from->getChildCount();
    +			
    +			for ($i = 0; $i < $childCount; $i++)
    +			{
    +				$cell = $from->getChildAt($i);
    +				$id = $cell->getId();
    +				$target = (isset($d) && (!$this->isEdge($cell) || !$cloneAllEdges)) ?
    +						$this->getCell($id) : null;
    +				
    +				// Clones and adds the child if no cell exists for the id
    +				if (!isset($target))
    +				{
    +					$clone = $cell->clone();
    +					$clone->setId($id);
    +					
    +					// Sets the terminals from the original cell to the clone
    +					// because the lookup uses strings not cells in PHP
    +					$clone->setTerminal($cell->getTerminal(true), true);
    +					$clone->setTerminal($cell->getTerminal(false), false);
    +											
    +					// Do *NOT* use model.add as this will move the edge away
    +					// from the parent in updateEdgeParent if maintainEdgeParent
    +					// is enabled in the target model
    +					$target = $to->insert($clone);
    +					$this->cellAdded($target);
    +				}
    +				
    +				// Stores the mapping for later reconnecting edges
    +				$mapping[mxCellPath::create($cell)] = $target;
    +				
    +				// Recurses
    +				$this->mergeChildrenImpl($cell, $target, $cloneAllEdges, $mapping);
    +			}
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->endUpdate();
    +			throw($e);
    +		}
    +		$this->endUpdate();
    +	}
    +
    +	/**
    +	 * Function: beginUpdate
    +	 * 
    +	 * Increments the <updateLevel> by one. The event notification
    +	 * is queued until <updateLevel> reaches 0 by use of
    +	 * <endUpdate>.
    +	 */
    +	function beginUpdate()
    +	{
    +		$this->updateLevel++;
    +	}
    +
    +	/**
    +	 * Function: endUpdate
    +	 * 
    +	 * Decrements the <updateLevel> by one and fires a notification event if
    +	 * the <updateLevel> reaches 0. This function indirectly fires a
    +	 * notification.
    +	 */
    +	function endUpdate()
    +	{
    +		$this->updateLevel--;
    +
    +		if ($this->updateLevel == 0)
    +		{
    +			$this->fireEvent(new mxEventObject(mxEvent::$GRAPH_MODEL_CHANGED));
    +		}
    +	}
    +
    +	/**
    +	 * Function: getDirectedEdgeCount
    +	 * 
    +	 * Returns the number of incoming or outgoing edges, ignoring the given
    +	 * edge.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose edge count should be returned.
    +	 * outgoing - Boolean that specifies if the number of outgoing or
    +	 * incoming edges should be returned.
    +	 * ignoredEdge - <mxCell> that represents an edge to be ignored.
    +	 */
    +	function getDirectedEdgeCount($cell, $outgoing, $ignoredEdge = null)
    +	{
    +		$count = 0;
    +		$edgeCount = $this->getEdgeCount($cell);
    +
    +		for ($i = 0; $i < $edgeCount; $i++)
    +		{
    +			$edge = $this->getEdgeAt($cell, $i);
    +			
    +			if ($edge !== $ignoredEdge &&
    +				$this->getTerminal($edge, $outgoing) === $cell)
    +			{
    +				$count++;
    +			}
    +		}
    +		
    +		return $count;
    +	}
    +
    +}
    +
    +?>
    diff --git a/php/src/mxServer.php b/php/src/mxServer.php
    new file mode 100644
    index 000000000..9373b0f0d
    --- /dev/null
    +++ b/php/src/mxServer.php
    @@ -0,0 +1,49 @@
    +<?php
    +/**
    + * $Id: mxServer.php,v 1.16 2010-11-13 08:32:42 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + *
    + * Class: mxServer
    + *
    + * Bootstrapping for the PHP backend. This is version 1.10.0.5
    + * of mxGraph.
    + *
    + * Variable: MXGRAPH-VERSION
    + *
    + * Constant that holds the current mxGraph version. The current version
    + * is 1.10.0.5.
    + */
    +define("MXGRAPH-VERSION", "1.10.0.5");
    +
    +include_once("util/mxLog.php");
    +include_once("util/mxConstants.php");
    +include_once("util/mxUtils.php");
    +include_once("util/mxPoint.php");
    +include_once("util/mxRectangle.php");
    +include_once("util/mxEvent.php");
    +include_once("util/mxEventObject.php");
    +include_once("util/mxEventSource.php");
    +include_once("util/mxImageBundle.php");
    +include_once("model/mxCell.php");
    +include_once("model/mxCellPath.php");
    +include_once("model/mxGeometry.php");
    +include_once("model/mxGraphModel.php");
    +include_once("canvas/mxGdCanvas.php");
    +include_once("canvas/mxHtmlCanvas.php");
    +include_once("reader/mxGraphViewImageReader.php");
    +include_once("reader/mxGraphViewHtmlReader.php");
    +include_once("view/mxCellState.php");
    +include_once("view/mxConnectionConstraint.php");
    +include_once("view/mxStylesheet.php");
    +include_once("view/mxPerimeter.php");
    +include_once("view/mxEdgeStyle.php");
    +include_once("view/mxStyleRegistry.php");
    +include_once("view/mxGraphView.php");
    +include_once("view/mxGraph.php");
    +include_once("io/mxCodecRegistry.php");
    +include_once("io/mxCodec.php");
    +include_once("io/mxObjectCodec.php");
    +include_once("io/mxCellCodec.php");
    +include_once("io/mxModelCodec.php");
    +include_once("io/mxStylesheetCodec.php");
    +?>
    diff --git a/php/src/reader/mxGraphViewHtmlReader.php b/php/src/reader/mxGraphViewHtmlReader.php
    new file mode 100644
    index 000000000..b1cc2024c
    --- /dev/null
    +++ b/php/src/reader/mxGraphViewHtmlReader.php
    @@ -0,0 +1,69 @@
    +<?php
    +/**
    + * $Id: mxGraphViewHtmlReader.php,v 1.11 2010-06-29 12:05:42 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +
    +class mxGraphViewHtmlReader extends mxGraphViewImageReader
    +{
    +
    +	/**
    +	 * Class: mxGraphViewHtmlReader
    +	 *
    +	 * A display XML to HTML converter. This allows to create an image of a graph
    +	 * without having to parse and create the graph model using the XML file
    +	 * created for the mxGraphView object in the thin client.
    +	 * 
    +	 * Constructor: mxGraphViewHtmlReader
    +	 *
    +	 * Constructs a new HTML graph view reader.
    +	 */
    +	function mxGraphViewHtmlReader()
    +	{
    +		parent::mxGraphViewImageReader();
    +	}
    +
    +	/**
    +	 * Function: createCanvas
    +	 *
    +	 * Returns the canvas to be used for rendering.
    +	 */
    +	function createCanvas($attrs)
    +	{
    +		return new mxHtmlCanvas($this->scale);
    +	}
    +
    +	/**
    +	 * Function: convert
    +	 *
    +	 * Creates the HTML markup for the given display XML string.
    +	 */
    +	static function convert($string, $background = null)
    +	{
    +		$viewReader = new mxGraphViewHtmlReader();
    +		
    +		$viewReader->read($string);
    +		$html = $viewReader->canvas->getHtml();
    +		$viewReader->destroy();
    +		
    +		return $html;	
    +	}
    +
    +	/**
    +	 * Function: convertFile
    +	 *
    +	 * Creates the HTML markup for the given display XML file.
    +	 */
    +	static function convertFile($filename, $background = null)
    +	{
    +		$viewReader = new mxGraphViewHtmlReader();
    +		
    +		$viewReader->readFile($filename);
    +		$html = $viewReader->canvas->getHtml();
    +		$viewReader->destroy();
    +		
    +		return $html;		
    +	}
    +
    +}
    +?>
    diff --git a/php/src/reader/mxGraphViewImageReader.php b/php/src/reader/mxGraphViewImageReader.php
    new file mode 100644
    index 000000000..c60c5de84
    --- /dev/null
    +++ b/php/src/reader/mxGraphViewImageReader.php
    @@ -0,0 +1,294 @@
    +<?php
    +/**
    + * $Id: mxGraphViewImageReader.php,v 1.12 2010-12-23 09:25:09 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +
    +class mxGraphViewImageReader
    +{
    +
    +	/**
    +	 * Class: mxGraphViewImageReader
    +	 *
    +	 * A display XML to image converter. This allows to create an image of a graph
    +	 * without having to parse and create the graph model using the XML file
    +	 * created for the mxGraphView object in the thin client.
    +	 *
    +	 * To create the XML for the mxGraphView on the client:
    +	 *
    +	 * (code)
    +	 * var enc = new mxCodec(mxUtils.createXMLDocument());
    +	 * var node = enc.encode(editor.graph.view);
    +	 * var xml = mxUtils.getXML(node);
    +	 * (end)
    +	 * 
    +	 * Variable: canvas
    +	 *
    +	 * Holds the canvas.
    +	 */
    +	var $canvas;
    +	
    +	/**
    +	 * Variable: scale
    +	 * 
    +	 * Holds the global scale of the graph. This is set just before
    +	 * createCanvas is called.
    +	 */
    +	var $scale = 1;
    +	
    +	/**
    +	 * Variable: parser
    +	 *
    +	 * Holds the SAX parser.
    +	 */
    +	var $parser;
    +	
    +	/**
    +	 * Variable: background
    +	 *
    +	 * Holds the background color.
    +	 */
    +	var $background;
    +	
    +	/**
    +	 * Variable: border
    +	 *
    +	 * Holds the border size. Default is 0.
    +	 */
    +	var $border;
    +
    +	/**
    +	 * Constructor: mxGraphViewImageReader
    +	 *
    +	 * Constructs a new image graph view reader.
    +	 */
    +	function mxGraphViewImageReader($background = null, $border = 0)
    +	{
    +		$this->parser = xml_parser_create();
    +		
    +		xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0);
    +		xml_set_object($this->parser, $this);
    +		xml_set_element_handler($this->parser, "startElement", "endElement");
    +			
    +		$this->background = $background;
    +		$this->border = $border;
    +	}
    +
    +	/**
    +	 * Function: createCanvas
    +	 *
    +	 * Returns the canvas to be used for rendering.
    +	 */
    +	function createCanvas($attrs)
    +	{
    +		$width = $attrs["x"] + $attrs["width"] + $this->border + 1;
    +		$height = $attrs["y"] + $attrs["height"] + $this->border + 1;
    +
    +		return new mxGdCanvas($width, $height, $this->scale, $this->background);
    +	}
    +
    +	/**
    +	 * Function: read
    +	 *
    +	 * Reads the specified view XML string.
    +	 */
    +	function read($string)
    +	{
    +		xml_parse($this->parser, $string, true);
    +	}
    +	
    +	/**
    +	 * Function: readFile
    +	 *
    +	 * Reads the specified view XML file in blocks of 4096 bytes.
    +	 */
    +	function readFile($filename)
    +	{
    +		$fp = fopen($filename, "r");
    +		
    +		while ($data = fread($fp, 4096))
    +		{
    +			xml_parse($this->parser, $data, feof($fp)) or
    +			die (sprintf("XML Error: %s at line %d", 
    +				xml_error_string(xml_get_error_code($this->parser)),
    +				xml_get_current_line_number($this->parser)));
    +		}
    +		
    +		fclose($fp);
    +	}
    +
    +	/**
    +	 * Function: startElement
    +	 *
    +	 * Invoked by the SAX parser when an element starts.
    +	 */
    +	function startElement($parser, $name, $attrs)
    +	{
    +		if ($this->canvas == null && $name == "graph")
    +		{
    +			$this->scale = mxUtils::getValue($attrs, "scale", 1);
    +			$this->canvas = $this->createCanvas($attrs);
    +		}
    +		else if ($this->canvas != null)
    +		{
    +			$edge = $name == "edge";
    +			$group = $name == "group";
    +			$vertex = $name == "vertex";
    +			
    +			if (($edge && isset($attrs["points"])) ||
    +				(($vertex || $group) && isset($attrs["x"]) &&
    +				isset($attrs["y"]) && isset($attrs["width"]) &&
    +				isset($attrs["height"])))
    +			{
    +				$state = new mxCellState(null, null, $attrs);
    +
    +				$label = $this->parseState($state, $edge);
    +				$this->canvas->drawCell($state);
    +				$this->canvas->drawLabel($label, $state, false);
    +			}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: parseState
    +	 *
    +	 * Parses the bounds, absolute points and label information from the style
    +	 * of the state into its respective fields and returns the label of the
    +	 * cell.
    +	 */
    +	function parseState($state, $edge)
    +	{
    +		$style = $state->style;
    +
    +		// Parses the bounds
    +		$state->x = mxUtils::getNumber($style, "x");
    +		$state->y = mxUtils::getNumber($style, "y");
    +		$state->width = mxUtils::getNumber($style, "width");
    +		$state->height = mxUtils::getNumber($style, "height");
    +
    +		// Parses the absolute points list
    +		$tmp = mxUtils::getValue($style, "points");
    +		
    +		if (strlen($tmp) > 0)
    +		{
    +			$pts = $this->parsePoints($tmp);
    +			
    +			if (sizeof($pts) > 0)
    +			{
    +				$state->absolutePoints = $pts;
    +			}
    +		}
    +		
    +        // Parses the label and label bounds
    +		$label = mxUtils::getValue($style, "label");
    +		
    +		if ($label != null && strlen($label) > 0)
    +		{
    +			$offset = new mxPoint(mxUtils::getNumber($style, "dx"),
    +				mxUtils::getNumber($style, "dy"));
    +			$vertexBounds = (!$edge) ? $state : null;
    +			$state->labelBounds = mxUtils::getLabelPaintBounds($label, $style,
    +				mxUtils::getValue($style, "html", false), $offset,
    +				$vertexBounds, $this->scale);
    +		}
    +		
    +		return $label;
    +	}
    +
    +	/**
    +	 * Function: parsePoints
    +	 * 
    +	 * Parses a string that represents a list of points into an array of
    +	 * <mxPoints>.
    +	 */
    +	function parsePoints($str)
    +	{
    +		$pts = array();
    +		
    +		if (isset($str))
    +		{
    +		 	$len = strlen($str);
    +			$tmp = "";
    +			$x = "";
    +	
    +		 	for ($i = 0; $i < $len; $i++)
    +		 	{
    +		 		$c = $str[$i];
    +		 		
    +		 		if ($c == "," || $c == " ")
    +		 		{
    +		 			if (strlen($x) == 0)
    +		 			{
    +		 				$x = $tmp;
    +		 			}
    +		 			else
    +		 			{
    +		 				array_push($pts, new mxPoint($x, $tmp));
    +		 				$x = "";
    +		 			}
    +		 			
    +	 				$tmp = "";
    +		 		}
    +		 		else
    +		 		{
    +					$tmp .= $c;	 		
    +		 		}
    +		 	}
    +		 	
    +		 	array_push($pts, new mxPoint($x, $tmp));
    +		}
    +		
    +	 	return $pts;
    +	}
    +
    +	/**
    +	 * Function: endElement
    +	 *
    +	 * Invoked by the SAX parser when an element ends.
    +	 */
    +	function endElement($parser, $name)
    +	{
    +	 	// ignore
    +	}
    +
    +	/**
    +	 * Destructor: destroy
    +	 *
    +	 * Destroy all allocated resources for this reader.
    +	 */
    +	function destroy()
    +	{
    +	 	$this->canvas->destroy();
    +	 	xml_parser_free($this->parser);
    +	}
    +
    +	/**
    +	 * Function: convert
    +	 *
    +	 * Creates the image for the given display XML string.
    +	 */
    +	static function convert($string, $background = null)
    +	{
    +		$viewReader = new mxGraphViewImageReader($background);
    +		$viewReader->read($string);
    +		$image = $viewReader->canvas->getImage();
    +		
    +		return $image;	
    +	}
    +
    +	/**
    +	 * Function: convertFile
    +	 *
    +	 * Creates the image for the given display XML file.
    +	 */
    +	static function convertFile($filename, $background = null)
    +	{
    +		$viewReader = new mxGraphViewImageReader($background);
    +		$viewReader->readFile($filename);
    +		$image = $viewReader->canvas->getImage();
    +		
    +		return $image;		
    +	}
    +
    +}
    +?>
    diff --git a/php/src/util/mxConstants.php b/php/src/util/mxConstants.php
    new file mode 100644
    index 000000000..c1e83f886
    --- /dev/null
    +++ b/php/src/util/mxConstants.php
    @@ -0,0 +1,1153 @@
    +<?php
    +/**
    + * $Id: mxConstants.php,v 1.53 2012-02-05 12:09:54 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxConstants
    +{
    +
    +	/**
    +	 * Class: mxConstants
    +	 *
    +	 * Defines global constants.
    +	 * 
    +	 * Variable: RAD_PER_DEG
    +	 *
    +	 * Defines the number of radiants per degree.
    +	 */
    +	public static $RAD_PER_DEG = 0.0174532;
    +
    +	/**
    +	 * Variable: DEG_PER_RAD
    +	 *
    +	 * Defines the number of degrees per radiant.
    +	 */
    +	public static $DEG_PER_RAD = 57.2957795;
    +
    +	/**
    +	 * Variable: ACTIVE_REGION
    +	 *
    +	 * Defines the portion of the cell which is
    +	 * to be used as a connectable region.
    +	 */
    +	public static $ACTIVE_REGION = 0.3;
    +
    +	/**
    +	 * Variable: MIN_ACTIVE_REGION
    +	 *
    +	 * Defines the minimum size in pixels of the 
    +	 * portion of the cell cell which is to be 
    +	 * used as a connectable region.
    +	 */
    +	public static $MIN_ACTIVE_REGION = 8;
    +
    +	/**
    +	 * Variable: NS_SVG
    +	 *
    +	 * Defines the SVG namespace.
    +	 */
    +	public static $NS_SVG = "http://www.w3.org/2000/svg";
    +
    +	/**
    +	 * Variable: NS_XHTML
    +	 *
    +	 * Defines the XHTML namespace.
    +	 */
    +	public static $NS_XHTML = "http://www.w3.org/1999/xhtml";
    +
    +	/**
    +	 * Variable: NS_XLINK
    +	 *
    +	 * Defined the XLink namespace.
    +	 */
    +	public static $NS_XLINK = "http://www.w3.org/1999/xlink";
    +
    +	/**
    +	 * Variable: W3C_SHADOWCOLOR
    +	 *
    +	 * Defines the color to be used to draw
    +	 * shadows in DOM documents.
    +	 */
    +	public static $W3C_SHADOWCOLOR = "gray";
    +
    +	/**
    +	 * Variable: SHADOW_OFFSETX
    +	 *
    +	 * Defines the x-offset to be used for shadows. Default is 2.
    +	 */
    +	public static $SHADOW_OFFSETX = 2;
    +
    +	/**
    +	 * Variable: SHADOW_OFFSETY
    +	 *
    +	 * Defines the y-offset to be used for shadows. Default is 3.
    +	 */
    +	public static $SHADOW_OFFSETY = 3;
    +
    +	/**
    +	 * Variable: W3C_DEFAULT_FONTFAMILY
    +	 * 
    +	 * Defines the default family for HTML markup. Default is times, serif.
    +	 */
    +	public static $W3C_DEFAULT_FONTFAMILY = "times, serif";
    +
    +	/**
    +	 * Variable: TTF_ENABLED
    +	 * 
    +	 * Whether TrueType fonts should be enabled in the mxGdCanvas
    +	 * by default. Default is true.
    +	 */
    +	public static $TTF_ENABLED = true;
    +
    +	/**
    +	 * Variable: TTF_SIZEFACTOR
    +	 * 
    +	 * Defines the factor which wich the font sizes are to be
    +	 * multiplied when used in truetype fonts. Default is 0.66.
    +	 */
    +	public static $TTF_SIZEFACTOR = 0.66;
    +
    +	/**
    +	 * Variable: DEFAULT_FONTFAMILY
    +	 * 
    +	 * Defines the default family for all truetype fonts. Default is vera.
    +	 */
    +	public static $DEFAULT_FONTFAMILY = "vera";
    +
    +	/**
    +	 * Variable: DEFAULT_FONTSIZE
    +	 * 
    +	 * Defines the default size for all fonts in points. Default is 11.
    +	 */
    +	public static $DEFAULT_FONTSIZE = 11;
    +
    +	/**
    +	 * Variable: DEFAULT_STARTSIZE
    +	 * 
    +	 * Defines the default start size for swimlanes. Default is 40.
    +	 */
    +	public static $DEFAULT_STARTSIZE = 40;
    +	
    +	/**
    +	 * Variable: DEFAULT_LINESPACING
    +	 * 
    +	 * Defines the default linespacing. Default is 7.
    +	 */
    +	public static $DEFAULT_LINESPACING = 7;
    +
    +	/**
    +	 * Variable: LABEL_INSET
    +	 * 
    +	 * Defines the inset in absolute pixels between the label bounding box and
    +	 * the label text. Default is 3.
    +	 */
    +	public static $LABEL_INSET = 3;
    +
    +	/**
    +	 * Variable: DEFAULT_MARKERSIZE
    +	 * 
    +	 * Defines the default size for all markers. Default is 6.
    +	 */
    +	public static $DEFAULT_MARKERSIZE = 6;
    +
    +	/**
    +	 * Variable: DEFAULT_IMAGESIZE
    +	 * 
    +	 * Defines the default width and height for images used in the
    +	 * label shape. Default is 24.
    +	 */
    +	public static $DEFAULT_IMAGESIZE = 24;
    +
    +	/**
    +	 * Variable: ENTITY_SEGMENT
    +	 * 
    +	 * Defines the length of the horizontal segment of an Entity Relation.
    +	 * This can be overridden using <mxConstants.STYLE_SEGMENT> style.
    +	 * Default is 30.
    +	 */
    +	public static $ENTITY_SEGMENT = 30;
    +
    +	/**
    +	 * Variable: ARROW_SPACING
    +	 * 
    +	 * Defines the spacing between the arrow shape and its terminals. Default
    +	 * is 10.
    +	 */
    +	public static $ARROW_SPACING = 10;
    +
    +	/**
    +	 * Variable: ARROW_WIDTH
    +	 * 
    +	 * Defines the width of the arrow shape. Default is 30.
    +	 */
    +	public static $ARROW_WIDTH = 30;
    +
    +	/**
    +	 * Variable: ARROW_SIZE
    +	 * 
    +	 * Defines the size of the arrowhead in the arrow shape. Default is 30.
    +	 */
    +	public static $ARROW_SIZE = 30;
    +
    +	/**
    +	 * Variable: NONE
    +	 * 
    +	 * Defines the value for none. Default is "none".
    +	 */
    +	public static $NONE = "none";
    +
    +	/**
    +	 * Variable: STYLE_PERIMETER
    +	 *
    +	 * Defines the key for the perimeter style. This is a function that defines
    +	 * the perimeter around a particular shape. Possible values are the
    +	 * functions defined in <mxPerimeter>. Alternatively, the constants in this
    +	 * class that start with <code>PERIMETER_</code> may be used to access
    +	 * perimeter styles in <mxStyleRegistry>.
    +	 */
    +	public static $STYLE_PERIMETER = "perimeter";
    +	
    +	/**
    +	 * Defines the ID of the cell that should be used for computing the
    +	 * perimeter point of the source for an edge. This allows for graphically
    +	 * connecting to a cell while keeping the actual terminal of the edge.
    +	 */
    +	public static $STYLE_SOURCE_PORT = "sourcePort";
    +	
    +	/**
    +	 * Defines the ID of the cell that should be used for computing the
    +	 * perimeter point of the target for an edge. This allows for graphically
    +	 * connecting to a cell while keeping the actual terminal of the edge.
    +	 */
    +	public static $STYLE_TARGET_PORT = "targetPort";
    +	
    +	/**
    +	 * Variable: STYLE_OPACITY
    +	 *
    +	 * Defines the key for the opacity style. The type of the value is 
    +	 * numeric and the possible range is 0-100.
    +	 */
    +	public static $STYLE_OPACITY = "opacity";
    +
    +	/**
    +	 * Variable: STYLE_TEXT_OPACITY
    +	 *
    +	 * Defines the key for the text opacity style. The type of the value is 
    +	 * numeric and the possible range is 0-100.
    +	 */
    +	public static $STYLE_TEXT_OPACITY = "textOpacity";
    +
    +	/**
    +	 * Variable: STYLE_OVERFLOW
    +	 * 
    +	 * Defines the key for the overflow style. Possible values are "visible",
    +	 * "hidden" and "fill". The default value is "visible". This value
    +	 * specifies how overlapping vertex labels are handles. A value of
    +	 * "visible" will show the complete label. A value of "hidden" will clip
    +	 * the label so that it does not overlap the vertex bounds. A value of
    +	 * "fill" will use the vertex bounds for the label.
    +	 * 
    +	 * This style is ignored in PHP.
    +	 */
    +	public static $STYLE_OVERFLOW = "overflow";
    +
    +    /**
    +	 * Variable: STYLE_ORTHOGONAL
    +	 *
    +	 * Defines if the connection points on either end of the edge should be
    +	 * computed so that the edge is vertical or horizontal if possible and
    +	 * if the point is not at a fixed location. Default is false. This is
    +	 * used in <mxGraph.isOrthogonal>, which also returns true if the edgeStyle
    +	 * of the edge is an elbow or entity.
    +	 */
    +    public static $STYLE_ORTHOGONAL = "orthogonal";
    +
    +    /**
    +	 * Variable: STYLE_EXIT_X
    +	 *
    +	 * Defines the key for the horizontal relative coordinate connection point
    +	 * of an edge with its source terminal.
    +	 */
    +    public static $STYLE_EXIT_X = "exitX";
    +
    +    /**
    +	 * Variable: STYLE_EXIT_Y
    +	 *
    +	 * Defines the key for the vertical relative coordinate connection point
    +	 * of an edge with its source terminal.
    +	 */
    +    public static $STYLE_EXIT_Y = "exitY";
    +
    +    /**
    +	 * Variable: STYLE_EXIT_PERIMETER
    +	 *
    +	 * Defines if the perimeter should be used to find the exact entry point
    +	 * along the perimeter of the source. Possible values are 0 (false) and
    +	 * 1 (true). Default is 1 (true).
    +	 */
    +    public static $STYLE_EXIT_PERIMETER = "exitPerimeter";
    +
    +    /**
    +	 * Variable: STYLE_ENTRY_X
    +	 *
    +	 * Defines the key for the horizontal relative coordinate connection point
    +	 * of an edge with its target terminal.
    +	 */
    +    public static $STYLE_ENTRY_X = "entryX";
    +
    +    /**
    +	 * Variable: STYLE_ENTRY_Y
    +	 *
    +	 * Defines the key for the vertical relative coordinate connection point
    +	 * of an edge with its target terminal.
    +	 */
    +    public static $STYLE_ENTRY_Y = "entryY";
    +
    +    /**
    +	 * Variable: sSTYLE_ENTRY_PERIMETER
    +	 *
    +	 * Defines if the perimeter should be used to find the exact entry point
    +	 * along the perimeter of the target. Possible values are 0 (false) and
    +	 * 1 (true). Default is 1 (true).
    +	 */
    +    public static $STYLE_ENTRY_PERIMETER = "entryPerimeter";
    +	
    +	/**
    +	 * Variable: STYLE_WHITE_SPACE
    +	 * 
    +	 * Defines the key for the white-space style. Possible values are "nowrap"
    +	 * and "wrap". The default value is "nowrap". This value specifies how
    +	 * white-space inside a HTML vertex label should be handled. A value of
    +	 * "nowrap" means the text will never wrap to the next line until a
    +	 * linefeed is encountered. A value of "wrap" means text will wrap when
    +	 * necessary. This style is only used for HTML labels.
    +	 * 
    +	 * This style is ignored in PHP.
    +	 */
    +	public static $STYLE_WHITE_SPACE = "whiteSpace";
    +	
    +	/**
    +	 * Variable: STYLE_ROTATION
    +	 *
    +	 * Defines the key for the rotation style. The type of the value is 
    +	 * numeric and the possible range is 0-360.
    +	 */
    +	public static $STYLE_ROTATION = "rotation";
    +
    +	/**
    +	 * Variable: STYLE_FILLCOLOR
    +	 *
    +	 * Defines the key for the fill color. Possible values are all HTML color
    +	 * names or HEX codes, as well as special keywords such as 'swimlane,
    +	 * 'inherit' or 'indicated' to use the color code of a related cell or the
    +	 * indicator shape.
    +	 */
    +	public static $STYLE_FILLCOLOR = "fillColor";
    +
    +	/**
    +	 * Variable: STYLE_GRADIENTCOLOR
    +	 *
    +	 * Defines the key for the gradient color. Possible values are all HTML color
    +	 * names or HEX codes, as well as special keywords such as 'swimlane,
    +	 * 'inherit' or 'indicated' to use the color code of a related cell or the
    +	 * indicator shape. This is ignored if no fill color is defined.
    +	 */
    +	public static $STYLE_GRADIENTCOLOR = "gradientColor";
    +
    +	/**
    +	 * Variable: STYLE_GRADIENT_DIRECTION
    +	 * 
    +	 * Defines the key for the gradient direction. Possible values are
    +	 * <DIRECTION_EAST>, <DIRECTION_WEST>, <DIRECTION_NORTH> and
    +	 * <DIRECTION_SOUTH>. Default is <DIRECTION_SOUTH>. Generally, and by
    +	 * default in mxGraph, gradient painting is done from the value of
    +	 * <STYLE_FILLCOLOR> to the value of <STYLE_GRADIENTCOLOR>. Taking the
    +	 * example of <DIRECTION_NORTH>, this means <STYLE_FILLCOLOR> color at the 
    +	 * bottom of paint pattern and <STYLE_GRADIENTCOLOR> at top, with a
    +	 * gradient in-between.
    +	 */
    +	public static $STYLE_GRADIENT_DIRECTION = "gradientDirection";
    +	
    +	/**
    +	 * Variable: STYLE_STROKECOLOR
    +	 *
    +	 * Defines the key for the strokeColor style. Possible values are all HTML
    +	 * color names or HEX codes, as well as special keywords such as 'swimlane,
    +	 * 'inherit' or 'indicated' to use the color code of a related cell or the
    +	 * indicator shape.
    +	 */
    +	public static $STYLE_STROKECOLOR = "strokeColor";
    +
    +	/**
    +	 * Variable: STYLE_SEPARATORCOLOR
    +	 *
    +	 * Defines the key for the separatorColor style. Possible values are all
    +	 * HTML color names or HEX codes. This style is only used for
    +	 * <SHAPE_SWIMLANE> shapes.
    +	 */
    +	public static $STYLE_SEPARATORCOLOR = "separatorColor";
    +
    +	/**
    +	 * Variable: STYLE_STROKEWIDTH
    +	 *
    +	 * Defines the key for the strokeWidth style. The type of the value is 
    +	 * numeric and the possible range is any non-negative value. The value
    +	 * the stroke width in pixels.
    +	 */
    +	public static $STYLE_STROKEWIDTH = "strokeWidth";
    +
    +	/**
    +	 * Variable: STYLE_ALIGN
    +	 *
    +	 * Defines the key for the align style. Possible values are <ALIGN_LEFT>,
    +	 * <ALIGN_CENTER> and <ALIGN_RIGHT>. This value defines how the lines of
    +	 * the label are horizontally aligned. <ALIGN_LEFT> mean label text lines
    +	 * are aligned to left of the label bounds, <ALIGN_RIGHT> to the right of
    +	 * the label bounds and <ALIGN_CENTER> means the center of the text lines
    +	 * are aligned in the center of the label bounds. Note this value doesn't
    +	 * affect the positioning of the overall label bounds relative to the
    +	 * vertex, to move the label bounds horizontally, use
    +	 * <STYLE_LABEL_POSITION>.
    +	 */
    +	public static $STYLE_ALIGN = "align";
    +
    +	/**
    +	 * Variable: STYLE_VERTICAL_ALIGN
    +	 *
    +	 * Defines the key for the verticalAlign style. Possible values are
    +	 * <ALIGN_TOP>, <ALIGN_MIDDLE> and <ALIGN_BOTTOM>. This value defines how
    +	 * the lines of the label are vertically aligned. <ALIGN_TOP> means the
    +	 * topmost label text line is aligned against the top of the label bounds,
    +	 * <ALIGN_BOTTOM> means the bottom-most label text line is aligned against
    +	 * the bottom of the label bounds and <ALIGN_MIDDLE> means there is equal
    +	 * spacing between the topmost text label line and the top of the label
    +	 * bounds and the bottom-most text label line and the bottom of the label
    +	 * bounds. Note this value doesn't affect the positioning of the overall
    +	 * label bounds relative to the vertex, to move the label bounds
    +	 * vertically, use <STYLE_VERTICAL_LABEL_POSITION>.
    +	 */
    +	public static $STYLE_VERTICAL_ALIGN = "verticalAlign";
    +
    +	/**
    +	 * Variable: STYLE_LABEL_POSITION
    +	 * 
    +	 * Defines the key for the horizontal label position of vertices. Possible
    +	 * values are <ALIGN_LEFT>, <ALIGN_CENTER> and <ALIGN_RIGHT>. Default is
    +	 * <ALIGN_CENTER>. The label align defines the position of the label
    +	 * relative to the cell. <ALIGN_LEFT> means the entire label bounds is
    +	 * placed completely just to the left of the vertex, <ALIGN_RIGHT> means
    +	 * adjust to the right and <ALIGN_CENTER> means the label bounds are
    +	 * vertically aligned with the bounds of the vertex. Note this value
    +	 * doesn't affect the positioning of label within the label bounds, to move
    +	 * the label horizontally within the label bounds, use <STYLE_ALIGN>.
    +	 */
    +	public static $STYLE_LABEL_POSITION = "labelPosition";
    +
    +	/**
    +	 * Variable: STYLE_VERTICAL_LABEL_POSITION
    +	 * 
    +	 * Defines the key for the vertical label position of vertices. Possible
    +	 * values are <ALIGN_TOP>, <ALIGN_BOTTOM> and <ALIGN_MIDDLE>. Default is
    +	 * <ALIGN_MIDDLE>. The label align defines the position of the label
    +	 * relative to the cell. <ALIGN_TOP> means the entire label bounds is
    +	 * placed completely just on the top of the vertex, <ALIGN_BOTTOM> means
    +	 * adjust on the bottom and <ALIGN_MIDDLE> means the label bounds are
    +	 * horizontally aligned with the bounds of the vertex. Note this value
    +	 * doesn't affect the positioning of label within the label bounds, to move
    +	 * the label vertically within the label bounds, use
    +	 * <STYLE_VERTICAL_ALIGN>.
    +	 */
    +	public static $STYLE_VERTICAL_LABEL_POSITION = "verticalLabelPosition";
    +	
    +	/**
    +	 * Variable: STYLE_IMAGE_ALIGN
    +	 *
    +	 * Defines the key for the align style. Possible values are <ALIGN_LEFT>,
    +	 * <ALIGN_CENTER> and <ALIGN_RIGHT>. The value defines how any image in the
    +	 * vertex label is aligned horizontally within the label bounds of a
    +	 * <SHAPE_LABEL> shape.
    +	 */
    +	public static $STYLE_IMAGE_ALIGN = "imageAlign";
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_VERTICALALIGN
    +	 *
    +	 * Defines the key for the verticalAlign style. Possible values are
    +	 * <ALIGN_TOP>, <ALIGN_MIDDLE> and <ALIGN_BOTTOM>. The value defines how
    +	 * any image in the vertex label is aligned vertically within the label
    +	 * bounds of a <SHAPE_LABEL> shape.
    +	 */
    +	public static $STYLE_IMAGE_VERTICAL_ALIGN = "imageVerticalAlign";
    +
    +	/**
    +	 * Variable: STYLE_IMAGE
    +	 *
    +	 * Defines the key for the image style. Possible values are any image URL,
    +	 * registered key in <mxImageResources> or short data URI as defined
    +	 * in <mxImageBundle>.
    +	 * The type of the value is String. This is the path to the image to image
    +	 * that is to be displayed within the label of a vertex. Finally,
    +	 * <mxUtils.loadImage> is used for loading the image for a given value.
    +	 */
    +	public static $STYLE_IMAGE = "image";
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_WIDTH
    +	 *
    +	 * Defines the key for the imageWidth style. The type of this value is
    +	 * int, the value is the image width in pixels and must be greater than 0.
    +	 */
    +	public static $STYLE_IMAGE_WIDTH = "imageWidth";
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_HEIGHT
    +	 *
    +	 * Defines the key for the imageHeight style. The type of this value is
    +	 * int, the value is the image height in pixels and must be greater than 0.
    +	 */
    +	public static $STYLE_IMAGE_HEIGHT = "imageHeight";
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_BACKGROUND
    +	 * 
    +	 * Defines the key for the image background color. This style is only used
    +	 * in <mxImageShape>. Possible values are all HTML color names or HEX
    +	 * codes.
    +	 */
    +	public static $STYLE_IMAGE_BACKGROUND = "imageBackground";
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_BORDER
    +	 * 
    +	 * Defines the key for the image border color. This style is only used in
    +	 * <mxImageShape>. Possible values are all HTML color names or HEX codes.
    +	 */
    +	public static $STYLE_IMAGE_BORDER = "imageBorder";
    +	
    +	/**
    +	 * Variable: STYLE_IMAGE_FLIPH
    +	 * 
    +	 * Defines the key for the horizontal image flip. This style is only used
    +	 * for painting images. Possible values are 0 and 1. Default is 0.
    +	 */
    +	public static $STYLE_IMAGE_FLIPH = "imageFlipH";
    +
    +	/**
    +	 * Variable: STYLE_IMAGE_FLIPV
    +	 * 
    +	 * Defines the key for the vertical image flip. This style is only used
    +	 * for painting images. Possible values are 0 and 1. Default is 0.
    +	 */
    +	public static $STYLE_IMAGE_FLIPV = "imageFlipV";
    +	
    +	/**
    +	 * Variable: STYLE_NOLABEL
    +	 * 
    +	 * Defines the key for the noLabel style. If this is
    +	 * true then no label is visible for a given cell.
    +	 * Possible values are true or false (1 or 0).
    +	 * Default is false.
    +	 */
    +	public static $STYLE_NOLABEL = "noLabel";
    +
    +	/**
    +	 * Variable: STYLE_NOEDGESTYLE
    +	 * 
    +	 * Defines the key for the noEdgeStyle style. If this is
    +	 * true then no edge style is applied for a given edge.
    +	 * Possible values are true or false (1 or 0).
    +	 * Default is false.
    +	 */
    +	public static $STYLE_NOEDGESTYLE = "noEdgeStyle";
    +
    +	/**
    +	 * Variable: STYLE_LABEL_BACKGROUNDCOLOR
    +	 * 
    +	 * Defines the key for the label background color. Possible values are all
    +	 * HTML color names or HEX codes.
    +	 */
    +	public static $STYLE_LABEL_BACKGROUNDCOLOR = "labelBackgroundColor";
    +
    +	/**
    +	 * Variable: STYLE_LABEL_BORDERCOLOR
    +	 * 
    +	 * Defines the key for the label border color. Possible values are all
    +	 * HTML color names or HEX codes.
    +	 */
    +	public static $STYLE_LABEL_BORDERCOLOR = "labelBorderColor";
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_SHAPE
    +	 *
    +	 * Defines the key for the indicatorShape style.
    +	 * Possible values are any of the SHAPE_*
    +	 * constants.
    +	 */
    +	public static $STYLE_INDICATOR_SHAPE = "indicatorShape";
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_IMAGE
    +	 *
    +	 * Defines the key for the indicatorImage style.
    +	 * Possible values are any image URL.
    +	 */
    +	public static $STYLE_INDICATOR_IMAGE = "indicatorImage";
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_COLOR
    +	 *
    +	 * Defines the key for the indicatorColor style. Possible values are all
    +	 * HTML color names or HEX codes, as well as the special 'swimlane' keyword
    +	 * to refer to the color of the parent swimlane if one exists.
    +	 */
    +	public static $STYLE_INDICATOR_COLOR = "indicatorColor";
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_GRADIENTCOLOR
    +	 *
    +	 * Defines the key for the indicatorGradientColor style. Possible values
    +	 * are all HTML color names or HEX codes. This style is only supported in
    +	 * <SHAPE_LABEL> shapes.
    +	 */
    +	public static $STYLE_INDICATOR_GRADIENTCOLOR = "indicatorGradientColor";
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_SPACING
    +	 *
    +	 * Defines the key for the indicatorSpacing style (in px).
    +	 */
    +	public static $STYLE_INDICATOR_SPACING = "indicatorSpacing";
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_WIDTH
    +	 *
    +	 * Defines the key for the indicatorWidth style (in px).
    +	 */
    +	public static $STYLE_INDICATOR_WIDTH = "indicatorWidth";
    +
    +	/**
    +	 * Variable: STYLE_INDICATOR_HEIGHT
    +	 *
    +	 * Defines the key for the indicatorHeight style (in px).
    +	 */
    +	public static $STYLE_INDICATOR_HEIGHT = "indicatorHeight";
    +
    +	/**
    +	 * Variable: STYLE_SHADOW
    +	 *
    +	 * Defines the key for the shadow style. The type of the value is Boolean.
    +	 */
    +	public static $STYLE_SHADOW = "shadow";
    +	
    +	/**
    +	 * Variable: STYLE_SEGMENT
    +	 * 
    +	 * Defines the key for the segment style. The type of this value is
    +	 * float and the value represents the size of the horizontal
    +	 * segment of the entity relation style. Default is ENTITY_SEGMENT.
    +	 */
    +	public static $STYLE_SEGMENT = "segment";
    +	
    +	/**
    +	 * Variable: STYLE_ENDARROW
    +	 *
    +	 * Defines the key for the endArrow style.
    +	 * Possible values are all constants in this
    +	 * class that start with ARROW_.
    +	 * This style is supported in the
    +	 * <mxConnector> shape.
    +	 *
    +	 * Example:
    +	 * (code)
    +	 * style[mxConstants.public static $STYLE_ENDARROW] = mxConstants.ARROW_CLASSIC;
    +	 * (end)
    +	 */
    +	public static $STYLE_ENDARROW = "endArrow";
    +
    +	/**
    +	 * Variable: STYLE_STARTARROW
    +	 *
    +	 * Defines the key for the startArrow style.
    +	 * Possible values are all constants in this
    +	 * class that start with ARROW_.
    +	 * See <public static $STYLE_ENDARROW>.
    +	 * This style is supported in the
    +	 * <mxConnector> shape.
    +	 */
    +	public static $STYLE_STARTARROW = "startArrow";
    +
    +	/**
    +	 * Variable: STYLE_ENDSIZE
    +	 *
    +	 * Defines the key for the endSize style. The type of this value is numeric
    +	 * and the value represents the size of the end marker in pixels.
    +	 */
    +	public static $STYLE_ENDSIZE = "endSize";
    +
    +	/**
    +	 * Variable: STYLE_STARTSIZE
    +	 *
    +	 * Defines the key for the startSize style. The type of this value is
    +	 * numeric and the value represents the size of the start marker or the
    +	 * size of the swimlane title region depending on the shape it is used for.
    +	 */
    +	public static $STYLE_STARTSIZE = "startSize";
    +
    +	/**
    +	 * Variable: STYLE_DASHED
    +	 *
    +	 * Defines the key for the endSize style. The type of this value is numeric
    +	 * and the value represents the size of the end marker in pixels.
    +	 */
    +	public static $STYLE_DASHED = "dashed";
    +
    +	/**
    +	 * Variable: STYLE_ROUNDED
    +	 *
    +	 * Defines the key for the rounded style. The type of this value is
    +	 * Boolean. For edges this determines whether or not joins between edges
    +	 * segments are smoothed to a rounded finish. For vertices that have the
    +	 * rectangle shape, this determines whether or not the rectangle is
    +	 * rounded.
    +	 */
    +	public static $STYLE_ROUNDED = "rounded";
    +
    +	/**
    +	 * Variable: STYLE_SOURCE_PERIMETER_SPACING
    +	 *
    +	 * Defines the key for the source perimeter spacing. The type of this value
    +	 * is numeric. This is the distance between the source connection point of
    +	 * an edge and the perimeter of the source vertex in pixels. This style
    +	 * only applies to edges.
    +	 */
    +	public static $STYLE_SOURCE_PERIMETER_SPACING = "sourcePerimeterSpacing";
    +
    +	/**
    +	 * Variable: STYLE_TARGET_PERIMETER_SPACING
    +	 *
    +	 * Defines the key for the source perimeter spacing. The type of this value
    +	 * is numeric. This is the distance between the target connection point of
    +	 * an edge and the perimeter of the target vertex in pixels.
    +	 */
    +	public static $STYLE_TARGET_PERIMETER_SPACING = "targetPerimeterSpacing";
    +
    +	/**
    +	 * Variable: STYLE_PERIMETER_SPACING
    +	 *
    +	 * Defines the key for the perimeter spacing. This is the distance between
    +	 * the connection point and the perimeter in pixels. When used in a vertex
    +	 * style, this applies to all incoming edges to floating ports (edges that
    +	 * terminate on the perimeter of the vertex). When used in an edge style,
    +	 * this spacing applies to the source and target separately, if they
    +	 * terminate in floating ports (on the perimeter of the vertex).
    +	 */
    +	public static $STYLE_PERIMETER_SPACING = "perimeterSpacing";
    +	
    +	/**
    +	 * Variable: STYLE_SPACING
    +	 *
    +	 * Defines the key for the spacing. The value represents the spacing, in
    +	 * pixels, added to each side of a label in a vertex (style applies to
    +	 * vertices only).
    +	 */
    +	public static $STYLE_SPACING = "spacing";
    +	
    +	/**
    +	 * Variable: STYLE_SPACING_TOP
    +	 *
    +	 * Defines the key for the spacingTop style. The value represents the
    +	 * spacing, in pixels, added to the top side of a label in a vertex (style
    +	 * applies to vertices only).
    +	 */
    +	public static $STYLE_SPACING_TOP = "spacingTop";
    +
    +	/**
    +	 * Variable: STYLE_SPACING_LEFT
    +	 *
    +	 * Defines the key for the spacingLeft style. The value represents the
    +	 * spacing, in pixels, added to the left side of a label in a vertex (style
    +	 * applies to vertices only).
    +	 */
    +	public static $STYLE_SPACING_LEFT = "spacingLeft";
    +
    +	/**
    +	 * Variable: STYLE_SPACING_BOTTOM
    +	 *
    +	 * Defines the key for the spacingBottom style The value represents the
    +	 * spacing, in pixels, added to the bottom side of a label in a vertex
    +	 * (style applies to vertices only).
    +	 */
    +	public static $STYLE_SPACING_BOTTOM = "spacingBottom";
    +
    +	/**
    +	 * Variable: STYLE_SPACING_RIGHT
    +	 *
    +	 * Defines the key for the spacingRight style The value represents the
    +	 * spacing, in pixels, added to the right side of a label in a vertex (style
    +	 * applies to vertices only).
    +	 */
    +	public static $STYLE_SPACING_RIGHT = "spacingRight";
    +
    +	/**
    +	 * Variable: STYLE_HORIZONTAL
    +	 *
    +	 * Defines the key for the horizontal style. Possible values are
    +	 * true or false. This value only applies to vertices. If the <STYLE_SHAPE>
    +	 * is <code>SHAPE_SWIMLANE</code> a value of false indicates that the
    +	 * swimlane should be drawn vertically, true indicates to draw it
    +	 * horizontally. If the shape style does not indicate that this vertex is a
    +	 * swimlane, this value affects only whether the label is drawn
    +	 * horizontally or vertically.
    +	 */
    +	public static $STYLE_HORIZONTAL = "horizontal";
    +
    +	/**
    +	 * Variable: STYLE_DIRECTION
    +	 * 
    +	 * Defines the key for the direction style. The direction style is used
    +	 * to specify the direction of certain shapes (eg. <mxTriangle>).
    +	 * Possible values are <DIRECTION_EAST> (default), <DIRECTION_WEST>,
    +	 * <DIRECTION_NORTH> and <DIRECTION_SOUTH>.
    +	 */
    +	public static $STYLE_DIRECTION = "direction";
    +
    +	/**
    +	 * Variable: STYLE_ELBOW
    +	 *
    +	 * Defines the key for the elbow style. Possible values are
    +	 * <ELBOW_HORIZONTAL> and <ELBOW_VERTICAL>. Default is <ELBOW_HORIZONTAL>.
    +	 * This defines how the three segment orthogonal edge style leaves its
    +	 * terminal vertices. The vertical style leaves the terminal vertices at
    +	 * the top and bottom sides.
    +	 */
    +	public static $STYLE_ELBOW = "elbow";
    +
    +	/**
    +	 * Variable: STYLE_FONTCOLOR
    +	 *
    +	 * Defines the key for the fontColor style. Possible values are all HTML
    +	 * color names or HEX codes.
    +	 */
    +	public static $STYLE_FONTCOLOR = "fontColor";
    +
    +	/**
    +	 * Variable: STYLE_FONTFAMILY
    +	 *
    +	 * Defines the key for the fontFamily style. Possible values are names such
    +	 * as Arial; Dialog; Verdana; Times New Roman. The value is of type String.
    +	 */
    +	public static $STYLE_FONTFAMILY = "fontFamily";
    +
    +	/**
    +	 * Variable: STYLE_FONTSIZE
    +	 *
    +	 * Defines the key for the fontSize style (in points). The type of the value
    +	 * is int.
    +	 */
    +	public static $STYLE_FONTSIZE = "fontSize";
    +
    +	/**
    +	 * Variable: STYLE_FONTSTYLE
    +	 *
    +	 * Defines the key for the fontStyle style. Values may be any logical AND
    +	 * (sum) of <FONT_BOLD>, <FONT_ITALIC>, <FONT_UNDERLINE> and <FONT_SHADOW>.
    +	 * The type of the value is int.
    +	 */
    +	public static $STYLE_FONTSTYLE = "fontStyle";
    +
    +	/**
    +	 * Variable: STYLE_SHAPE
    +	 *
    +	 * Defines the key for the shape. Possible values are all constants
    +	 * with a SHAPE-prefix or any newly defined shape names.
    +	 */
    +	public static $STYLE_SHAPE = "shape";
    +
    +	/**
    +	 * Variable: STYLE_EDGE
    +	 *
    +	 * Defines the key for the edge style. Possible values are the functions
    +	 * defined in <mxEdgeStyle>.
    +	 */
    +	public static $STYLE_EDGE = "edgeStyle";
    +
    +	/**
    +	 * Variable: STYLE_LOOP
    +	 * 
    +	 * Defines the key for the loop style. Possible values are the functions
    +	 * defined in <mxEdgeStyle>.
    +	 */
    +	public static $STYLE_LOOP = "loopStyle";
    +
    +	/**
    +	 * Variable: STYLE_ROUTING_CENTER_X
    +	 * 
    +	 * Defines the key for the horizontal routing center. Possible values are
    +	 * between -0.5 and 0.5. This is the relative offset from the center used
    +	 * for connecting edges. The type of this value is numeric.
    +	 */
    +	public static $STYLE_ROUTING_CENTER_X = "routingCenterX";
    +
    +	/**
    +	 * Variable: STYLE_ROUTING_CENTER_Y
    +	 * 
    +	 * Defines the key for the vertical routing center. Possible values are
    +	 * between -0.5 and 0.5. This is the relative offset from the center used
    +	 * for connecting edges. The type of this value is numeric.
    +	 */
    +	public static $STYLE_ROUTING_CENTER_Y = "routingCenterY";
    +
    +	/**
    +	 * Variable: FONT_BOLD
    +	 */
    +	public static $FONT_BOLD = 1;
    +
    +	/**
    +	 * Variable: FONT_ITALIC
    +	 */
    +	public static $FONT_ITALIC = 2;
    +
    +	/**
    +	 * Variable: FONT_UNDERLINE
    +	 */
    +	public static $FONT_UNDERLINE = 4;
    +
    +	/**
    +	 * Variable: FONT_SHADOW
    +	 */
    +	public static $FONT_SHADOW = 8;
    +
    +	/**
    +	 * Variable: SHAPE_RECTANGLE
    +	 */
    +	public static $SHAPE_RECTANGLE = "rectangle";
    +
    +	/**
    +	 * Variable: SHAPE_ELLIPSE
    +	 */
    +	public static $SHAPE_ELLIPSE = "ellipse";
    +
    +	/**
    +	 * Variable: SHAPE_DOUBLE_ELLIPSE
    +	 */
    +	public static $SHAPE_DOUBLE_ELLIPSE = "doubleEllipse";
    +
    +	/**
    +	 * Variable: SHAPE_RHOMBUS
    +	 */
    +	public static $SHAPE_RHOMBUS = "rhombus";
    +
    +	/**
    +	 * Variable: SHAPE_LINE
    +	 */
    +	public static $SHAPE_LINE = "line";
    +
    +	/**
    +	 * Variable: SHAPE_IMAGE
    +	 */
    +	public static $SHAPE_IMAGE = "image";
    +	
    +	/**
    +	 * Variable: SHAPE_ARROW
    +	 */
    +	public static $SHAPE_ARROW = "arrow";
    +	
    +	/**
    +	 * Variable: SHAPE_LABEL
    +	 */
    +	public static $SHAPE_LABEL = "label";
    +	
    +	/**
    +	 * Variable: SHAPE_CYLINDER
    +	 */
    +	public static $SHAPE_CYLINDER = "cylinder";
    +	
    +	/**
    +	 * Variable: SHAPE_SWIMLANE
    +	 */
    +	public static $SHAPE_SWIMLANE = "swimlane";
    +		
    +	/**
    +	 * Variable: SHAPE_CONNECTOR
    +	 */
    +	public static $SHAPE_CONNECTOR = "connector";
    +		
    +	/**
    +	 * Variable: SHAPE_ACTOR
    +	 */
    +	public static $SHAPE_ACTOR = "actor";
    +		
    +	/**
    +	 * Variable: SHAPE_CLOUD
    +	 */
    +	public static $SHAPE_CLOUD = "cloud";
    +		
    +	/**
    +	 * Variable: SHAPE_TRIANGLE
    +	 */
    +	public static $SHAPE_TRIANGLE = "triangle";
    +		
    +	/**
    +	 * Variable: SHAPE_HEXAGON
    +	 */
    +	public static $SHAPE_HEXAGON = "hexagon";
    +
    +	/**
    +	 * Variable: ARROW_CLASSIC
    +	 */
    +	public static $ARROW_CLASSIC = "classic";
    +
    +	/**
    +	 * Variable: ARROW_BLOCK
    +	 */
    +	public static $ARROW_BLOCK = "block";
    +
    +	/**
    +	 * Variable: ARROW_OPEN
    +	 */
    +	public static $ARROW_OPEN = "open";
    +
    +	/**
    +	 * Variable: ARROW_OVAL
    +	 */
    +	public static $ARROW_OVAL = "oval";
    +
    +	/**
    +	 * Variable: ARROW_DIAMOND
    +	 */
    +	public static $ARROW_DIAMOND = "diamond";
    +
    +	/**
    +	 * Variable: ALIGN_LEFT
    +	 */
    +	public static $ALIGN_LEFT = "left";
    +
    +	/**
    +	 * Variable: ALIGN_CENTER
    +	 */
    +	public static $ALIGN_CENTER = "center";
    +
    +	/**
    +	 * Variable: ALIGN_RIGHT
    +	 */
    +	public static $ALIGN_RIGHT = "right";
    +
    +	/**
    +	 * Variable: ALIGN_TOP
    +	 */
    +	public static $ALIGN_TOP = "top";
    +
    +	/**
    +	 * Variable: ALIGN_MIDDLE
    +	 */
    +	public static $ALIGN_MIDDLE = "middle";
    +
    +	/**
    +	 * Variable: ALIGN_BOTTOM
    +	 */
    +	public static $ALIGN_BOTTOM = "bottom";
    +
    +	/**
    +	 * Variable: DIRECTION_NORTH
    +	 */
    +	public static $DIRECTION_NORTH = "north";
    +
    +	/**
    +	 * Variable: DIRECTION_SOUTH
    +	 */
    +	public static $DIRECTION_SOUTH = "south";
    +
    +	/**
    +	 * Variable: DIRECTION_EAST
    +	 */
    +	public static $DIRECTION_EAST = "east";
    +
    +	/**
    +	 * Variable: DIRECTION_WEST
    +	 */
    +	public static $DIRECTION_WEST = "west";
    +
    +	/**
    +	 * Variable: ELBOW_VERTICAL
    +	 */
    +	public static $ELBOW_VERTICAL = "vertical";
    +
    +	/**
    +	 * Variable: ELBOW_HORIZONTAL
    +	 */
    +	public static $ELBOW_HORIZONTAL = "horizontal";
    +
    +	/**
    +	 * Variable: 
    +	 *
    +	 * Name of the elbow edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static $EDGESTYLE_ELBOW = "elbowEdgeStyle";
    +
    +	/**
    +	 * Variable: EDGESTYLE_ENTITY_RELATION
    +	 *
    +	 * Name of the entity relation edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static $EDGESTYLE_ENTITY_RELATION = "entityRelationEdgeStyle";
    +
    +	/**
    +	 * Variable: EDGESTYLE_LOOP
    +	 *
    +	 * Name of the loop edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static $EDGESTYLE_LOOP = "loopEdgeStyle";
    +
    +	/**
    +	 * Variable: EDGESTYLE_SIDETOSIDE
    +	 *
    +	 * Name of the side to side edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static $EDGESTYLE_SIDETOSIDE = "sideToSideEdgeStyle";
    +
    +	/**
    +	 * Variable: EDGESTYLE_TOPTOBOTTOM
    +	 *
    +	 * Name of the top to bottom edge style. Can be used as a string value
    +	 * for the STYLE_EDGE style.
    +	 */
    +	public static $EDGESTYLE_TOPTOBOTTOM = "topToBottomEdgeStyle";
    +
    +	/**
    +	 * Variable: PERIMETER_ELLIPSE
    +	 *
    +	 * Name of the ellipse perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	public static $PERIMETER_ELLIPSE = "ellipsePerimeter";
    +
    +	/**
    +	 * Variable: PERIMETER_RECTANGLE
    +	 *
    +	 * Name of the rectangle perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	public static $PERIMETER_RECTANGLE = "rectanglePerimeter";
    +
    +	/**
    +	 * Variable: PERIMETER_RHOMBUS
    +	 *
    +	 * Name of the rhombus perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	public static $PERIMETER_RHOMBUS = "rhombusPerimeter";
    +
    +	/**
    +	 * Variable: PERIMETER_TRIANGLE
    +	 *
    +	 * Name of the triangle perimeter. Can be used as a string value
    +	 * for the STYLE_PERIMETER style.
    +	 */
    +	public static $PERIMETER_TRIANGLE = "trianglePerimeter";
    +
    +}
    +?>
    diff --git a/php/src/util/mxEvent.php b/php/src/util/mxEvent.php
    new file mode 100644
    index 000000000..65931abc1
    --- /dev/null
    +++ b/php/src/util/mxEvent.php
    @@ -0,0 +1,35 @@
    +<?php
    +/**
    + * $Id: mxEvent.php,v 1.3 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxEvent
    +{
    +
    +	/**
    +	 * Class: mxEvent
    +	 *
    +	 * Defines global constants.
    +	 * 
    +	 * Variable: GRAPH_MODEL_CHANGED
    +	 *
    +	 * Defines the name of the graphModelChanged event.
    +	 */
    +	public static $GRAPH_MODEL_CHANGED = "graphModelChanged";
    +
    +	/**
    +	 * Variable: SCALE
    +	 *
    +	 * Defines the name of the scale event.
    +	 */
    +	public static $SCALE = "scale";
    +
    +	/**
    +	 * Variable: TRANSLATE
    +	 *
    +	 * Defines the name of the translate event.
    +	 */
    +	public static $TRANSLATE = "translate";
    +
    +}
    +?>
    diff --git a/php/src/util/mxEventObject.php b/php/src/util/mxEventObject.php
    new file mode 100644
    index 000000000..15457781e
    --- /dev/null
    +++ b/php/src/util/mxEventObject.php
    @@ -0,0 +1,108 @@
    +<?php
    +/**
    + * $Id: mxEventObject.php,v 1.5 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxEventObject
    +{
    +
    +	/**
    +	 * Class: mxEventObject
    +	 *
    +	 * Base class for all events.
    +	 * 
    +	 * Variable: name
    +	 * 
    +	 * Holds the name of the event.
    +	 */
    +	var $name;
    +	
    +	/**
    +	 * Variable: properties
    +	 *
    +	 * Holds the event properties in an associative array that maps from string
    +	 * (key) to object (value).
    +	 */
    +	var $properties;
    +
    +	/**
    +	 * Variable: consumed
    +	 *
    +	 * Holds the consumed state of the event. Default is false.
    +	 */
    +	var $consumed = false;
    +
    +	/**
    +	 * Constructor: mxEventObject
    +	 *
    +	 * Constructs a new event for the given name and properties. The optional
    +	 * properties are specified using a sequence of keys and values, eg.
    +	 * new mxEventObject($name, $key1, $value1, $key2, $value2, .., $keyN, $valueN)
    +	 */
    +	function mxEventObject($name)
    +	{
    +		$this->name = $name;
    +		$this->properties = array();
    +		$args = func_get_args();
    +
    +		for ($i = 1; $i < sizeof($args); $i += 2)
    +		{
    +			if (isset($args[$i + 1]))
    +			{
    +				$this->properties[$args[$i]] = $args[$i + 1];
    +			}
    +		}			
    +	}
    +	
    +	/**
    +	 * Function: getName
    +	 * 
    +	 * Returns <name>.
    +	 */
    +	function getName()
    +	{
    +		return $this->name;
    +	}
    +
    +	/**
    +	 * Function: getProperties
    +	 * 
    +	 * Returns <properties>.
    +	 */
    +	function getProperties()
    +	{
    +		return $this->properties;
    +	}
    +
    +	/**
    +	 * Function: getProperty
    +	 * 
    +	 * Returns the property value for the given key.
    +	 */
    +	function getProperty($key)
    +	{
    +		return $this->properties[$key];
    +	}
    +
    +	/**
    +	 * Function: isConsumed
    +	 *
    +	 * Returns true if the event has been consumed.
    +	 */
    +	function isConsumed()
    +	{
    +		return $this->consumed;
    +	}
    +
    +	/**
    +	 * Function: consume
    +	 *
    +	 * Consumes the event.
    +	 */
    +	function consume()
    +	{
    +		$this->consumed = true;
    +	}
    +	
    +}
    +?>
    diff --git a/php/src/util/mxEventSource.php b/php/src/util/mxEventSource.php
    new file mode 100644
    index 000000000..4dffe88d7
    --- /dev/null
    +++ b/php/src/util/mxEventSource.php
    @@ -0,0 +1,62 @@
    +<?php
    +/**
    + * $Id: mxEventSource.php,v 1.8 2010-06-30 11:03:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxEventSource
    +{
    +
    +	/**
    +	 * Class: mxEventSource
    +	 *
    +	 * Base class for all event sources.
    +	 * 
    +	 * Variable: eventListeners
    +	 *
    +	 * Holds the registered listeners.
    +	 */
    +	var $eventListeners;
    +
    +	/**
    +	 * Function: addListener
    +	 *
    +	 * Adds a listener for the given event name. Note that the method of the
    +	 * listener object must have the same name as the event it's being added
    +	 * for. This is different from other language implementations of this
    +	 * class.
    +	 */
    +	function addListener($name, $listener)
    +	{
    +	 	if ($this->eventListeners == null)
    +	 	{
    +	 		$this->eventListeners = array();
    +	 	}
    +	 	
    +	 	array_push($this->eventListeners, $name);
    +	 	array_push($this->eventListeners, $listener);
    +	}
    +
    +	/**
    +	 * Function: fireEvent
    +	 *
    +	 * Fires the event for the specified name.
    +	 */
    +	function fireEvent($event)
    +	{
    +	 	if ($this->eventListeners != null)
    +	 	{
    +	 		$name = $event->getName();
    +	 		
    +	 		for ($i = 0; $i < sizeof($this->eventListeners); $i += 2)
    +	 		{
    +	 			if ($this->eventListeners[$i] == $name)
    +	 			{
    +		 			$this->eventListeners[$i+1]->$name($event);
    +	 			}
    +	 		}
    +	 	}
    +	}
    +
    +}
    +
    +?>
    diff --git a/php/src/util/mxImageBundle.php b/php/src/util/mxImageBundle.php
    new file mode 100644
    index 000000000..0e46d9864
    --- /dev/null
    +++ b/php/src/util/mxImageBundle.php
    @@ -0,0 +1,83 @@
    +<?php
    +/**
    + * $Id: mxImageBundle.php,v 1.3 2010-12-01 11:48:46 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxImageBundle
    +{
    +
    +	/**
    +	 * Class: mxImageBundle
    +	 *
    +	 * Maps from keys to base64 encoded images or file locations. All values must
    +	 * be URLs or use the format data:image/format followed by a comma and the base64
    +	 * encoded image data, eg. "data:image/gif,XYZ", where XYZ is the base64 encoded
    +	 * image data.
    +	 * 
    +	 * (code)
    +	 * $bundle = new mxImageBundle();
    +	 * $bundle->putImage("myImage", "data:image/gif,R0lGODlhEAAQAMIGAAAAAICAAICAgP".
    +	 *   "//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAAEA".
    +	 *   "AQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hilaSS".
    +	 *   "ASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs=");
    +	 * $graph->addImageBundle($bundle);
    +	 * (end);
    +	 * 
    +	 * The image can then be referenced in any cell style using image=myImage.
    +	 *
    +	 * To convert an image at a given URL to a base64 encoded String, the following
    +	 * code can be used:
    +	 * 
    +	 * (code)
    +	 * echo "base64=".base64_encode(file_get_contents($url));
    +	 * (end)
    +	 * 
    +	 * The value is decoded in <mxUtils.loadImage>. The keys for images are
    +	 * resolved and the short format above is converted to a data URI in
    +	 * <mxGraph.postProcessCellStyle>.
    +	 * 
    +	 * Variable: images
    +	 * 
    +	 * Maps from keys to images.
    +	 */
    +	var $images = array();
    +
    +	/**
    +	 * Constructor: mxImageBundle
    +	 *
    +	 * Constructs a new image bundle.
    +	 */
    +	function mxImageBundle() { }
    +	
    +	/**
    +	 * Function: getImages
    +	 * 
    +	 * Returns the <images>.
    +	 */
    +	function getImages()
    +	{
    +		return $this->images;
    +	}
    +
    +	/**
    +	 * Function: putImage
    +	 * 
    +	 * Adds the specified entry to the map.
    +	 */
    +	function putImage($key, $value)
    +	{
    +		$this->images[$key] = $value;
    +	}
    +
    +	/**
    +	 * Function: getImage
    +	 * 
    +	 * Returns the value for the given key.
    +	 */
    +	function getImage($key)
    +	{
    +		return (array_key_exists($key, $this->images)) ? $this->images[$key] : null;
    +	}
    +	
    +}
    +?>
    diff --git a/php/src/util/mxLog.php b/php/src/util/mxLog.php
    new file mode 100644
    index 000000000..800a1dc87
    --- /dev/null
    +++ b/php/src/util/mxLog.php
    @@ -0,0 +1,224 @@
    +<?php
    +/**
    + * $Id: mxLog.php,v 1.6 2010-07-11 10:02:32 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxLog
    +{
    +
    +	/**
    +	 * Class: mxLog
    +	 * 
    +	 * Logging facility.
    +	 * 
    +	 * Variable: level_fine
    +	 *
    +	 * Specifies the fine logging level.
    +	 */
    +	public static $level_fine = true;
    +	
    +	/**
    +	 * Variable: level_debug
    +	 *
    +	 * Specifies the debug logging level.
    +	 */
    +	public static $level_debug = true;
    +	
    +	/**
    +	 * Variable: level_info
    +	 *
    +	 * Specifies the info logging level.
    +	 */
    +	public static $level_info = true;
    +	
    +	/**
    +	 * Variable: level_warn
    +	 *
    +	 * Specifies the warn logging level.
    +	 */
    +	public static $level_warn = true;
    +	
    +	/**
    +	 * Variable: level_error
    +	 *
    +	 * Specifies the error logging level.
    +	 */
    +	public static $level_error = true;
    +	
    +	/**
    +	 * Variable: current
    +	 *
    +	 * Default is true.
    +	 */
    +	public static $current = array();
    +	
    +	/**
    +	 * Variable: tab
    +	 *
    +	 * Default is true.
    +	 */
    +	public static $tab = "";
    +	
    +	/**
    +	 * Variable: logfiles
    +	 *
    +	 * Holds the array of logfiles.
    +	 */
    +	public static $logfiles = array();
    +	
    +	/**
    +	 * Variable: printLog
    +	 *
    +	 * Specifies if the log should be printed out.
    +	 */
    +	public static $printLog = false;
    +	
    +	/**
    +	 * Function: addLogfile
    +	 *
    +	 * Adds a file for logging.
    +	 */
    +	static function addLogfile($filename)
    +	{
    +		$fh = fopen($filename, "a");
    +		array_push(mxLog::$logfiles, $fh);
    +	}
    +	
    +	/**
    +	 * Function: enter
    +	 *
    +	 * Logs a method entry.
    +	 */
    +	static function enter($method, $text="")
    +	{
    +		mxLog::writeln("$method: { $text");
    +		$t0 = microtime(true);
    +		array_push(mxLog::$current, $t0);
    +		mxLog::$tab .= "    ";
    +	}
    +
    +	/**
    +	 * Function: leave
    +	 *
    +	 * Logs a method exit.
    +	 */
    +	static function leave($text="")
    +	{
    +		$t0 = array_pop(mxLog::$current);
    +		$tab = mxLog::$tab;
    +		mxLog::$tab = substr($tab, 0, strlen($tab)-4);
    +		$dt = "(dt=".(microtime(true)-$t0).")";
    +		mxLog::writeln("} $dt $text");
    +	}
    +	
    +	/**
    +	 * Function: fine
    +	 *
    +	 * Logs a fine trace.
    +	 */
    +	static function fine($text)
    +	{
    +		if (mxLog::$level_fine)
    +		{
    +			mxLog::writeln($text);
    +		}
    +	}
    +
    +	/**
    +	 * Function: debug
    +	 *
    +	 * Logs a debug trace.
    +	 */
    +	static function debug($text)
    +	{
    +		if (mxLog::$level_debug)
    +		{
    +			mxLog::writeln($text);
    +		}
    +	}
    +
    +	/**
    +	 * Function: info
    +	 *
    +	 * Logs an info trace.
    +	 */
    +	static function info($text)
    +	{
    +		if (mxLog::$level_info)
    +		{
    +			mxLog::writeln($text);
    +		}
    +	}
    +
    +	/**
    +	 * Function: warn
    +	 *
    +	 * Logs a warn trace.
    +	 */
    +	static function warn($text)
    +	{
    +		if (mxLog::$level_warn)
    +		{
    +			mxLog::writeln($text);
    +			error_log($text);
    +		}
    +	}
    +
    +	/**
    +	 * Function: error
    +	 *
    +	 * Logs an error trace.
    +	 */
    +	static function error($text)
    +	{
    +		if (mxLog::$level_error)
    +		{
    +			mxLog::writeln($text);
    +			error_log($text);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: writeln
    +	 *
    +	 * Writes a line with a linefeed to the log.
    +	 */
    +	static function writeln($text)
    +	{
    +		mxLog::write("$text\n");
    +	}
    +
    +	/**
    +	 * Function: write
    +	 *
    +	 * Writes a line to the log.
    +	 */
    +	static function write($text)
    +	{
    +		$msg = date("Y-m-d H:i:s").": ".mxLog::$tab.$text;
    +		foreach (mxLog::$logfiles as $fh)
    +		{
    +			fputs($fh, $msg);
    +		}
    +		if (mxLog::$printLog)
    +		{
    +			$msg = str_replace(" ", "&nbsp;", $msg);
    +			print("$msg<br>");
    +		}
    +	}
    +
    +	/**
    +	 * Function: close
    +	 *
    +	 * Closes all open logfiles.
    +	 */
    +	static function close()
    +	{
    +		foreach (mxLog::$logfiles as $fh)
    +		{
    +			fclose($fh);
    +		}
    +	}
    +
    +}
    +?>
    diff --git a/php/src/util/mxPoint.php b/php/src/util/mxPoint.php
    new file mode 100644
    index 000000000..4c8271877
    --- /dev/null
    +++ b/php/src/util/mxPoint.php
    @@ -0,0 +1,66 @@
    +<?php
    +/**
    + * $Id: mxPoint.php,v 1.10 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxPoint
    +{
    +
    +	/**
    +	 * Class: mxPoint
    +	 *
    +	 * Implements a 2-dimensional point with double precision coordinates.
    +	 * 
    +	 * Variable: x
    +	 *
    +	 * Holds the x-coordinate of the point. Default is 0.
    +	 */
    +	var $x = 0;
    +
    +	/**
    +	 * Variable: y
    +	 *
    +	 * Holds the y-coordinate of the point. Default is 0.
    +	 */
    +	var $y = 0;
    +
    +	/**
    +	 * Constructor: mxPoint
    +	 *
    +	 * Constructs a new point for the optional x and y coordinates. If no
    +	 * coordinates are given, then the default values for <x> and <y> are used.
    +	 */
    +	function mxPoint($x = 0, $y = 0)
    +	{
    +	 	$this->x = $x;
    +		$this->y = $y;
    +	}
    +
    +	/**
    +	 * Function: equals
    +	 *
    +	 * Returns true if the given object equals this point.
    +	 */
    +	function equals($obj)
    +	{
    +        if ($obj instanceof mxPoint)
    +        {
    +            return $obj->x == $this->x &&
    +            	$obj->y == $this->y;
    +        }
    +
    +        return false;
    +	}
    +
    +	/**
    +	 * Function: copy
    +	 *
    +	 * Returns a copy of this <mxPoint>.
    +	 */
    +	function copy()
    +	{
    +	 	return new mxPoint($this->x, $this->y);
    +	}
    +
    +}
    +?>
    diff --git a/php/src/util/mxRectangle.php b/php/src/util/mxRectangle.php
    new file mode 100644
    index 000000000..51f64bf4f
    --- /dev/null
    +++ b/php/src/util/mxRectangle.php
    @@ -0,0 +1,137 @@
    +<?php
    +/**
    + * $Id: mxRectangle.php,v 1.18 2010-12-15 16:28:52 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxRectangle extends mxPoint
    +{
    +
    +	/**
    +	 * Class: mxRectangle
    +	 *
    +	 * Implements a 2-dimensional rectangle with double precision coordinates.
    +	 * 
    +	 * Variable: width
    +	 *
    +	 * Holds the width of the rectangle. Default is 0.
    +	 */
    +	var $width = 0;
    +
    +	/**
    +	 * Variable: height
    +	 *
    +	 * Holds the height of the rectangle. Default is 0.
    +	 */
    +	var $height = 0;
    +
    +	/**
    +	 * Constructor: mxRectangle
    +	 *
    +	 * Constructs a new rectangle for the optional parameters. If no parameters
    +	 * are given then the respective default values are used.
    +	 */
    +	function mxRectangle($x = 0, $y = 0, $width = 0, $height = 0)
    +	{
    +		parent::mxPoint($x, $y);
    +		
    +	 	$this->width = $width;
    +		$this->height = $height;
    +	}
    +
    +	/**
    +	 * Function: setRect
    +	 *
    +	 * Sets this rectangle to the specified values.
    +	 */
    +	function setRect($x, $y, $width, $height)
    +	{
    +	    $this->x = $x;
    +	    $this->y = $y;
    +	    $this->width = $w;
    +	    $this->height = $h;
    +	}
    +	
    +	/**
    +	 * Function: getCenterX
    +	 * 
    +	 * Returns the x-coordinate of the center point.
    +	 */
    +	function getCenterX()
    +	{
    +		return $this->x + $this->width / 2;
    +	}
    +	
    +	/**
    +	 * Function: getCenterY
    +	 * 
    +	 * Returns the y-coordinate of the center point.
    +	 */
    +	function getCenterY()
    +	{
    +		return $this->y + $this->height / 2;
    +	}
    +	
    +	/**
    +	 * Function: add
    +	 *
    +	 * Adds the given rectangle to this rectangle.
    +	 */
    +	function add($rect)
    +	{
    +		if ($rect != null)
    +		{
    +			$minX = min($this->x, $rect->x);
    +			$minY = min($this->y, $rect->y);
    +			$maxX = max($this->x + $this->width, $rect->x + $rect->width);
    +			$maxY = max($this->y + $this->height, $rect->y + $rect->height);
    +			
    +			$this->x = $minX;
    +			$this->y = $minY;
    +			$this->width = $maxX - $minX;
    +			$this->height = $maxY - $minY;
    +		}
    +	}
    +
    +	/**
    +	 * Function: grow
    +	 *
    +	 * Grows the rectangle by the given amount, that is, this method subtracts
    +	 * the given amount from the x- and y-coordinates and adds twice the amount
    +	 * to the width and height.
    +	 */
    +	function grow($amount)
    +	{
    +		$this->x -= $amount;
    +		$this->y -= $amount;
    +		$this->width += 2 * $amount;
    +		$this->height += 2 * $amount;
    +	}
    +
    +	/**
    +	 * Function: equals
    +	 *
    +	 * Returns true if the given object equals this rectangle.
    +	 */
    +	function equals($obj)
    +	{
    +        if ($obj instanceof mxRectangle)
    +        {
    +            return $obj->x == $this->x && $obj->y == $this->y &&
    +            	$obj->width == $this->width && $obj->height = $this->height;
    +        }
    +
    +        return false;
    +	}
    +
    +	/**
    +	 * Function: copy
    +	 *
    +	 * Returns a copy of this <mxRectangle>.
    +	 */
    +	function copy()
    +	{
    +	 	return new mxRectangle($this->x, $this->y, $this->width, $this->height);
    +	}
    +
    +}
    +?>
    diff --git a/php/src/util/mxUtils.php b/php/src/util/mxUtils.php
    new file mode 100644
    index 000000000..cda83c42a
    --- /dev/null
    +++ b/php/src/util/mxUtils.php
    @@ -0,0 +1,1182 @@
    +<?php
    +/**
    + * $Id: mxUtils.php,v 1.52 2011-11-17 08:22:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxUtils
    +{
    +	
    +	/**
    +	 * Class: mxUtils
    +	 *
    +	 * Helper methods.
    +	 * 
    +	 * Function: getLabelSize
    +	 * 
    +	 * Returns the size of the given label.
    +	 */
    +    static function getLabelSize($label, $style)
    +    {
    +        $fontSize = mxUtils::getValue($style, mxConstants::$STYLE_FONTSIZE,
    +            mxConstants::$DEFAULT_FONTSIZE);
    +        $fontFamily = mxUtils::getValue($style, mxConstants::$STYLE_FONTFAMILY,
    +        	mxConstants::$DEFAULT_FONTFAMILY);
    +		
    +        return mxUtils::getSizeForString($label, $fontSize, $fontFamily);
    +    }
    +        
    +    /**
    +	 * Function: getLabelPaintBounds
    +	 * 
    +	 * Returns the paint bounds for the given label.
    +     */
    +    static function getLabelPaintBounds($label, $style,
    +    	$isHtml, $offset, $vertexBounds, $scale)
    +    {
    +        $size = mxUtils::getLabelSize($label, $style);
    +
    +        $x = $offset->x;
    +        $y = $offset->y;
    +        $width = 0;
    +        $height = 0;
    +
    +        if (isset($vertexBounds))
    +        {
    +            $x += $vertexBounds->x;
    +            $y += $vertexBounds->y;
    +
    +            if (mxUtils::getValue($style, mxConstants::$STYLE_SHAPE, "") ==
    +            	mxConstants::$SHAPE_SWIMLANE)
    +            {
    +				// Limits the label to the swimlane title
    +	            $start = mxUtils::getNumber($style, mxConstants::$STYLE_STARTSIZE,
    +	            	mxConstants::$DEFAULT_STARTSIZE) * $scale;
    +            	
    +	            if (mxUtils::getValue($style, mxConstants::$STYLE_HORIZONTAL, true))
    +				{
    +					$width += $vertexBounds->width;
    +            		$height += $start;				
    +				}
    +				else
    +				{
    +					$width += $start;
    +            		$height += $vertexBounds->height;
    +				}
    +            }
    +            else
    +            {
    +            	$height += $vertexBounds->height;
    +            	$width += $vertexBounds->width;
    +        	}
    +        }
    +
    +        return mxUtils::getScaledLabelBounds($x, $y, $size, $width,
    +        		$height, $style, $scale);
    +    }
    + 
    +    /**
    +	 * Function: getScaledLabelBounds
    +	 * 
    +	 * Returns the bounds for a label for the given location and size, taking
    +	 * into account the alignment and spacing in the specified style, as well
    +	 * as the width and height of the rectangle that contains the label.
    +	 * (For edge labels this width and height is 0.) The scale is used to scale
    +	 * the given size and the spacings in the specified style.
    +     */
    +    static function getScaledLabelBounds($x, $y, $size, $outerWidth, $outerHeight, $style, $scale)
    +    {
    +		// Adds an inset of 3 pixels
    +		$inset = mxConstants::$LABEL_INSET * $scale;
    +
    +    	// Scales the size of the label
    +    	$width = $size->width * $scale + 2 * $inset;
    +    	$height = $size->height * $scale;
    +
    +		// Gets the global spacing and orientation
    +		$horizontal = mxUtils::getValue($style, mxConstants::$STYLE_HORIZONTAL, true);
    +        $spacing = mxUtils::getNumber($style, mxConstants::$STYLE_SPACING) * $scale;
    +
    +		// Gets the alignment settings
    +        $align = mxUtils::getValue($style, mxConstants::$STYLE_ALIGN,
    +        	mxConstants::$ALIGN_CENTER);
    +        $valign = mxUtils::getValue($style, mxConstants::$STYLE_VERTICAL_ALIGN,
    +        	mxConstants::$ALIGN_MIDDLE);
    +
    +		// Gets the vertical spacing
    +        $top = mxUtils::getNumber($style, mxConstants::$STYLE_SPACING_TOP) * $scale;
    +        $bottom = mxUtils::getNumber($style, mxConstants::$STYLE_SPACING_BOTTOM) * $scale;
    +
    +		// Gets the horizontal spacing
    +        $left = mxUtils::getNumber($style, mxConstants::$STYLE_SPACING_LEFT) * $scale;
    +        $right = mxUtils::getNumber($style, mxConstants::$STYLE_SPACING_RIGHT) * $scale;
    +
    +		// Applies the orientation to the spacings and dimension
    +		if (!$horizontal)
    +		{
    +			$tmp = $top;
    +			$top = $right;
    +			$right = $bottom;
    +			$bottom = $left;
    +			$left = $tmp;
    +			
    +			$tmp = $width;
    +			$width = $height;
    +			$height = $tmp;
    +		}
    +
    +		// Computes the position of the label for the horizontal alignment
    +        if (($horizontal && $align == mxConstants::$ALIGN_CENTER) ||
    +        	(!$horizontal && $valign == mxConstants::$ALIGN_MIDDLE))
    +        {
    +            $x += ($outerWidth - $width) / 2 + $left - $right;
    +        }
    +        else if (($horizontal && $align == mxConstants::$ALIGN_RIGHT) ||
    +        	(!$horizontal && $valign == mxConstants::$ALIGN_BOTTOM))
    +        {
    +            $x += $outerWidth - $width - $spacing - $right;
    +        }
    +        else
    +        {
    +            $x += $spacing + $left;
    +        }
    +
    +		// Computes the position of the label for the vertical alignment
    +        if ((!$horizontal && $align == mxConstants::$ALIGN_CENTER) ||
    +        	($horizontal && $valign == mxConstants::$ALIGN_MIDDLE))
    +        {
    +            $y += ($outerHeight - $height) / 2 + $top - $bottom;
    +        }
    +        else if ((!$horizontal && $align == mxConstants::$ALIGN_LEFT) ||
    +        	($horizontal && $valign == mxConstants::$ALIGN_BOTTOM))
    +        {
    +            $y += $outerHeight - $height - $spacing - $bottom;
    +        }
    +        else
    +        {
    +            $y += $spacing + $top;
    +        }
    +
    +        return new mxRectangle($x, $y, $width, $height);
    +    }
    +    
    +    /**
    +	 * Function: getSizeForString
    +	 * 
    +	 * Returns an <mxRectangle> with the size (width and height in pixels) of
    +	 * the given string. The string may contain HTML markup. Newlines should be
    +	 * converted to <br> before calling this method.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * text - String whose size should be returned.
    +	 * fontSize - Integer that specifies the font size in pixels. Default is
    +	 * <mxConstants.DEFAULT_FONTSIZE>.
    +	 * fontFamily - String that specifies the name of the font famil.y Default
    +	 * is <mxConstants.DEFAULT_FONTFAMILY>.
    +     * 
    +     */
    +    static function getSizeForString($text, $fontSize = 0, $fontFamily = null)
    +    {
    +    	if (is_string($text) && strlen($text) > 0)
    +    	{
    +	        if ($fontSize == 0)
    +	        {
    +	            $fontSize = mxConstants::$DEFAULT_FONTSIZE;
    +	        }
    +	
    +	        if ($fontFamily == null)
    +	        {
    +	            $fontFamily = mxConstants::$DEFAULT_FONTFAMILY;
    +	        }
    +	
    +			$lines = explode("\n", $text);
    +			$lineCount = sizeof($lines);
    +	        
    +	    	if (mxConstants::$TTF_ENABLED &&
    +	    		function_exists("imagettfbbox"))
    +			{
    +				$bbox = imagettfbbox($fontSize * mxConstants::$TTF_SIZEFACTOR, 0, $fontFamily, $text);
    +				$textWidth = $bbox[2] - $bbox[0];
    +				$textHeight = ($fontSize + mxConstants::$DEFAULT_LINESPACING) * $lineCount;
    +				
    +				return new mxRectangle(0, 0, $textWidth, $textHeight);
    +			}
    +			else if (function_exists("imageFontHeight") &&
    +				function_exists("imageFontWidth"))
    +			{
    +				$font = mxUtils::getFixedFontSize($fontSize, $fontFamily);
    +				$textHeight = (imageFontHeight($font) + mxConstants::$DEFAULT_LINESPACING) * $lineCount;
    +				$charWidth = imageFontWidth($font);
    +				$textWidth = 0;
    +				
    +				for ($i = 0; $i < sizeof($lines); $i++)
    +				{
    +					$textWidth = max($textWidth, $charWidth * strlen($lines[$i]));
    +				}
    +				
    +				return new mxRectangle(0, 0, $textWidth, $textHeight);
    +			}
    +		}
    +		
    +		return new mxRectangle();
    +    }
    +	
    +	/**
    +	 * Function: flipImage
    +	 * 
    +	 * Flips the given image horizontally and/or vertically and returns a new
    +	 * image instance.
    +	 */
    +	static function flipImage($img, $flipH, $flipV)
    +	{
    +		$w = imagesx($img);
    +		$h = imagesy($img);
    +		
    +		$sx = 0;
    +		$sy = 0;
    +		$sw = $w;
    +		$sh = $h;
    +				
    +		if ($flipH)
    +		{
    +			$sx = $w - 1;
    +			$sw = -$w;
    +		}
    +		
    +		if ($flipV)
    +		{
    +			$sy = $h - 1;
    +			$sh = -$h;
    +		}
    +
    +		$dst = imagecreatetruecolor($w, $h);
    +		
    +		// Fills the background with transparent white
    +		$bg = ImageColorAllocateAlpha($dst, 255, 255, 255, 127);
    +		ImageFill($dst, 0, 0 , $bg);
    +		
    +		if (imagecopyresampled($dst, $img, 0, 0, $sx, $sy, $w, $h, $sw, $sh))
    +	    {
    +	        return $dst;
    +	    }
    +	
    +	    return $img;
    +	}
    +    
    +	/**
    +	 * Function: toRadians
    +	 * 
    +	 * Converts the given degree to radians.
    +	 */
    +	static function toRadians($deg)
    +	{
    +		return pi() * $deg / 180;
    +	}
    +
    +	/**
    +	 * Function: getBoundingBox
    +	 * 
    +	 * Returns the bounding box for the rotated rectangle.
    +	 */
    +	static function getBoundingBox($rect, $rotation)
    +	{
    +        $result = null;
    +
    +        if ($rect != null && $rotation != null && $rotation != 0)
    +        {
    +            $rad = mxUtils::toRadians($rotation);
    +            $cos = cos($rad);
    +            $sin = sin($rad);
    +
    +            $cx = new mxPoint(
    +            	$rect->x + $rect->width / 2,
    +            	$rect->y  + $rect->height / 2);
    +
    +            $p1 = new mxPoint($rect->x, $rect->y);
    +            $p2 = new mxPoint($rect->x + $rect->width, $rect->y);
    +            $p3 = new mxPoint($p2->x, $rect->y + $rect->height);
    +            $p4 = new mxPoint($rect->x, $p3->y);
    +
    +            $p1 = mxUtils::getRotatedPoint($p1, $cos, $sin, $cx);
    +            $p2 = mxUtils::getRotatedPoint($p2, $cos, $sin, $cx);
    +            $p3 = mxUtils::getRotatedPoint($p3, $cos, $sin, $cx);
    +            $p4 = mxUtils::getRotatedPoint($p4, $cos, $sin, $cx);
    +
    +            $result = new mxRectangle($p1->x, $p1->y, 0, 0);
    +            $result.add(new mxRectangle($p2->x, $p2->y, 0, 0));
    +            $result.add(new mxRectangle($p3->x, $p3->y, 0, 0));
    +            $result.add(new mxRectangle($p4->x, $p4->y, 0, 0));
    +        }
    +
    +        return $result;
    +	}
    +
    +	/**
    +	 * Function: getRotatedPoint
    +	 * 
    +	 * Rotates the given point by the given cos and sin.
    +	 */
    +	static function getRotatedPoint($pt, $cos, $sin, $cx = null)
    +	{
    +		$cx = ($cx != null) ? $cx : new mxPoint();
    +		
    +		$x = $pt->x - $c->x;
    +		$y = $pt->y - $c->y;
    +
    +		$x1 = $x * $cos - $y * $sin;
    +		$y1 = $y * $cos + $x * $sin;
    +
    +		return new mxPoint($x1 + $c->x, $y1 + $c->y);
    +	}
    +
    +	/**
    +	 * Function: translatePoints
    +	 *
    +	 * Creates a new list of new points obtained by translating the points in
    +	 * the given list by the given vector. Elements that are not mxPoints are
    +	 * added to the result as-is.
    +	 */
    +	static function translatePoints($pts, $dx, $dy)
    +	{
    +		$result = null;
    +
    +		if ($pts != null)
    +		{
    +			$result = array();
    +			$pointCount = sizeof($pts);
    +			
    +			for ($i = 0; $i < $pointCount; $i++)
    +			{
    +				$obj = $pts[$i];
    +				
    +				if ($obj instanceof mxPoint)
    +				{
    +					$point = $obj->copy();
    +					
    +					$point->x += $dx;
    +					$point->y += $dy;
    +					
    +					array_push($result, $point);
    +				}
    +				else
    +				{
    +					array_push($result, $obj);
    +				}
    +			}
    +		}
    +
    +		return $result;
    +	}
    +
    +	/**
    +	 * Function: contains
    +	 * 
    +	 * Returns true if the specified point (x, y) is contained in the given rectangle.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * bounds - <mxRectangle> that represents the area.
    +	 * x - X-coordinate of the point.
    +	 * y - Y-coordinate of the point.
    +	 */
    +	static function contains($state, $x, $y)
    +	{
    +		return ($state->x <= $x && $state->x + $state->width >= $x &&
    +				$state->y <= $y && $state->y + $state->height >= $y);
    +	}
    +
    +	/**
    +	 * Function: intersection
    +	 * 
    +	 * Returns the intersection of two lines as an <mxPoint>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * x0 - X-coordinate of the first line's startpoint.
    +	 * y0 - X-coordinate of the first line's startpoint.
    +	 * x1 - X-coordinate of the first line's endpoint.
    +	 * y1 - Y-coordinate of the first line's endpoint.
    +	 * x2 - X-coordinate of the second line's startpoint.
    +	 * y2 - Y-coordinate of the second line's startpoint.
    +	 * x3 - X-coordinate of the second line's endpoint.
    +	 * y3 - Y-coordinate of the second line's endpoint.
    +	 */
    +	static function intersection($x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3)
    +	{
    +		$denom = (($y3 - $y2)*($x1 - $x0)) - (($x3 - $x2)*($y1 - $y0));
    +		$nume_a = (($x3 - $x2)*($y0 - $y2)) - (($y3 - $y2)*($x0 - $x2));
    +		$nume_b = (($x1 - $x0)*($y0 - $y2)) - (($y1 - $y0)*($x0 - $x2));
    +
    +		$ua = $nume_a / $denom;
    +		$ub = $nume_b / $denom;
    +		
    +		if($ua >= 0.0 && $ua <= 1.0 && $ub >= 0.0 && $ub <= 1.0)
    +		{
    +			// Get the intersection point
    +			$intersectionX = $x0 + $ua*($x1 - $x0);
    +			$intersectionY = $y0 + $ua*($y1 - $y0);
    +			
    +			return new mxPoint($intersectionX, $intersectionY);
    +		}
    +		
    +		// No intersection
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: encodeImage
    +	 *
    +	 * Encodes the given image using the GD image encoding routines.
    +	 * Supported formats are gif, jpg and png (default).
    +	 *
    +	 * Parameters:
    +	 *
    +	 * image - GD image to be encoded.
    +	 * format - String that defines the encoding format. Default is png.
    +	 */
    +	static function encodeImage($image, $format=null)
    +	{
    +		if ($format == "gif")
    +		{
    +			return imageGif($image);
    +		}
    +		else if ($format == "jpg")
    +		{
    +			return imageJpeg($image);
    +		}
    +		else
    +		{
    +			return imagePng($image);
    +		}
    +	}
    +
    +	/**
    +	 * Function: getStylename
    +	 * 
    +	 * Returns the stylename in a style of the form [stylename;|key=value;] or
    +	 * an empty string if the given style does not contain a stylename.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * style - String of the form [stylename;|key=value;].
    +	 */
    +	static function getStylename($style)
    +	{
    +		if (isset($style))
    +		{
    +			$pairs = explode(";", $style);
    +			$stylename = $pairs[0];
    +			
    +			if (strpos($stylename, "=") === false)
    +			{
    +				return $stylename;
    +			}
    +		}
    +				
    +		return "";
    +	}
    +
    +	/**
    +	 * Function: getStylenames
    +	 * 
    +	 * Returns the stylenames in a style of the form [stylename;|key=value;] or
    +	 * an empty array if the given style does not contain any stylenames.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * style - String of the form [stylename;|key=value;].
    +	 */
    +	static function getStylenames($style)
    +	{
    +		$result = array();
    +		
    +		if (isset($style))
    +		{
    +			$pairs = explode(";", $style);
    +			
    +			for ($i = 0; $i < sizeof($pairs); $i++)
    +			{
    +				if (strpos($pairs[$i], "=") === false)
    +				{
    +					array_push($result, $pairs[$i]);
    +				}
    +			}
    +		}
    +				
    +		return $result;
    +	}
    +
    +	/**
    +	 * Function: indexOfStylename
    +	 *
    +	 * Returns the index of the given stylename in the given style. This
    +	 * returns -1 if the given stylename does not occur (as a stylename) in the
    +	 * given style, otherwise it returns the index of the first character.
    +	 */
    +	static function indexOfStylename($style, $stylename)
    +	{
    +		if (isset($style) && isset($stylename))
    +		{
    +			$tokens = explode(";", $style);
    +			$tokenCount = sizeof($tokens);
    +			$pos = 0;
    +			
    +			for ($i = 0; $i < $tokenCount; $i++)
    +			{
    +				if ($tokens[$i] == $stylename)
    +				{
    +					return $pos;
    +				}
    +				
    +				$pos += strlen($tokens[$i]) + 1;
    +			}
    +		}
    +		
    +		return -1;
    +	}
    +
    +	/**
    +	 * Function: addStylename
    +	 *
    +	 * Adds the specified stylename to the given style if it does not already
    +	 * contain the stylename.
    +	 */
    +	static function addStylename($style, $stylename)
    +	{
    +		if (mxUtils::indexOfStylename($style, $stylename) < 0)
    +		{
    +			if (!isset($style))
    +			{
    +				$style = "";
    +			}
    +			else if (strlen($style) > 0 && $style[strlen($style) - 1] != ";")
    +			{
    +				$style .= ";";
    +			}
    +
    +			$style .= $stylename;
    +		}
    +
    +		return $style;
    +	}
    +
    +	/**
    +	 * Function: removeStylename
    +	 *
    +	 * Removes all occurrences of the specified stylename in the given style
    +	 * and returns the updated style. Trailing semicolons are preserved.
    +	 */
    +	static function removeStylename($style, $stylename)
    +	{
    +		$result = "";
    +
    +		if (isset($style))
    +		{
    +			$tokens = explode(";", $style);
    +			$tokenCount = sizeof($tokens);
    +
    +			for ($i = 0; $i < $tokenCount; $i++)
    +			{
    +				if ($tokens[$i] != $stylename)
    +				{
    +					$result .= $tokens[$i].";";
    +				}
    +			}
    +		}
    +		
    +		$len = strlen($result);
    +
    +		return ($len > 1) ? substr($result, 0, $len - 1) : $result;
    +	}
    +
    +	/**
    +	 * Function: removeAllStylenames
    +	 *
    +	 * Removes all stylenames from the given style and returns the updated
    +	 * style.
    +	 */
    +	static function removeAllStylenames($style)
    +	{
    +		$result = "";
    +
    +		if (isset($style))
    +		{
    +			$tokens = explode(";", $style);
    +			$tokenCount = sizeof($tokens);
    +
    +			for ($i = 0; $i < $tokenCount; $i++)
    +			{
    +				if (strpos($tokens[$i], "=") !== false)
    +				{
    +					$result .= $tokens[$i].";";
    +				}
    +			}
    +		}
    +		
    +		$len = strlen($result);
    +
    +		return ($len > 1) ? substr($result, 0, $len - 1) : $result;
    +	}
    +
    +	/**
    +	 * Function: setCellStyles
    +	 * 
    +	 * Assigns the value for the given key in the styles of the given cells, or
    +	 * removes the key from the styles if the value is null.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * model - <mxGraphModel> to execute the transaction in.
    +	 * cells - Array of <mxCells> to be updated.
    +	 * key - Key of the style to be changed.
    +	 * value - New value for the given key.
    +	 */
    +	static function setCellStyles($model, $cells, $key, $value)
    +	{
    +		if ($cells != null && sizeof($cells) > 0)
    +		{
    +			$model->beginUpdate();
    +			try
    +			{
    +				for ($i=0; $i < sizeof($cells); $i++)
    +				{
    +					if (isset($cells[$i]))
    +					{
    +						$style = mxUtils::setStyle(
    +							$model->getStyle($cells[$i]),
    +							$key, $value);
    +						$model->setStyle($cells[$i], $style);
    +					}
    +				}
    +			}
    +			catch (Exception $e)
    +			{
    +				$model->endUpdate();
    +				throw($e);
    +			}
    +			$model->endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * Function: setStyle
    +	 * 
    +	 * Adds or removes the given key, value pair to the style and returns the
    +	 * new style. If value is null or zero length then the key is removed from
    +	 * the style.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * style - String of the form stylename[;key=value]
    +	 * key - Key of the style to be changed.
    +	 * value - New value for the given key.
    +	 */
    +	static function setStyle($style, $key, $value)
    +	{
    +		$isValue = $value != null && (!is_string($value) ||
    +			strlen($value) > 0);
    +		
    +		if (strlen($style) == 0)
    +		{
    +			if ($isValue)
    +			{
    +				$style = "$key=$value";
    +			}
    +		}
    +		else
    +		{
    +			$index = strpos($style, "$key=");
    +
    +			if ($index === false)
    +			{
    +				if ($isValue)
    +				{
    +					$sep = ($style[strlen($style) - 1] == ";") ? "" : ";";
    +					$style = "{$style}$sep{$key}=$value";
    +				}
    +			}
    +			else
    +			{
    +				$tmp = ($isValue) ? "$key=$value" : "";
    +				$cont = strpos($style, ";", $index);
    +				
    +				if (!$isValue)
    +				{
    +					$cont++;
    +				}
    +				
    +				$style = substr($style, 0, $index).$tmp.
    +					(($cont > $index) ? substr($style, $cont) : "");
    +			}
    +		}
    +
    +		return $style;
    +	}
    +
    +	/**
    +	 * Function: setCellStyleFlags
    +	 * 
    +	 * Sets or toggles the flag bit for the given key in the cell's styles.
    +	 * If value is null then the flag is toggled.
    +	 * 
    +	 * Example:
    +	 * 
    +	 * (code)
    +	 * var cells = graph.getSelectionCells();
    +	 * mxUtils.setCellStyleFlags(graph.model,
    +	 * 			cells,
    +	 * 			mxConstants.STYLE_FONTSTYLE,
    +	 * 			mxConstants.FONT_BOLD);
    +	 * (end)
    +	 * 
    +	 * Toggles the bold font style.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * model - <mxGraphModel> that contains the cells.
    +	 * cells - Array of <mxCells> to change the style for.
    +	 * key - Key of the style to be changed.
    +	 * flag - Integer for the bit to be changed.
    +	 * value - Optional boolean value for the flag.
    +	 */
    +	static function setCellStyleFlags($model, $cells, $key, $flag, $value)
    +	{
    +		if ($cells != null && sizeof($cells) > 0)
    +		{
    +			$model->beginUpdate();
    +			try
    +			{
    +				for ($i=0; $i < sizeof($cells); $i++)
    +				{
    +					if (isset($cells[$i]))
    +					{
    +						$style = mxUtils::setStyleFlag(
    +							$model->getStyle($cells[$i]),
    +							$key, $flag, $value);
    +						$model->setStyle($cells[$i], $style);
    +					}
    +				}
    +			}
    +			catch (Exception $e)
    +			{
    +				$model->endUpdate();
    +				throw($e);
    +			}
    +			$model->endUpdate();
    +		}
    +	}
    +
    +	/**
    +	 * Function: setStyleFlag
    +	 * 
    +	 * Sets or removes the given key from the specified style and returns the
    +	 * new style. If value is null then the flag is toggled.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * style - String of the form stylename[;key=value].
    +	 * key - Key of the style to be changed.
    +	 * flag - Integer for the bit to be changed.
    +	 * value - Optional boolean value for the given flag.
    +	 */
    +	static function setStyleFlag($style, $key, $flag, $value)
    +	{
    +		if (strlen($style) == 0)
    +		{
    +			if ($value == null || $value === true)
    +			{
    +				$style = "$key=$flag";
    +			}
    +			else
    +			{
    +				$style = "$key=0";
    +			}
    +		}
    +		else
    +		{
    +			$index = strpos($style, "$key=");
    +
    +			if ($index === false)
    +			{
    +				$sep = ($style[strlen($style) - 1] == ";") ? "" : ";";
    +
    +				if ($value == null || $value === true)
    +				{
    +					$style = "{$style}$sep{$key}=$flag";
    +				}
    +				else
    +				{
    +					$style = "{$style}$sep{$key}=0";
    +				}
    +			}
    +			else
    +			{
    +				$cont = strpos($style, ";", $index);
    +				$tmp = "";
    +				
    +				if ($cont === false)
    +				{
    +					$tmp  = substr($style, $index+strlen($key)+1);
    +				}
    +				else
    +				{
    +					$tmp  = substr($style, $index+strlen($key)+1, $cont);
    +				}
    +				
    +				if ($value == null)
    +				{
    +					$tmp = $tmp ^ $flag;
    +				}
    +				else if ($value === true)
    +				{
    +					$tmp = $tmp | $flag;
    +				}
    +				else
    +				{
    +					$tmp = $tmp & ~$flag;
    +				}
    +
    +				$style = substr($style, 0, $index)."$key=$tmp".
    +					(($cont >= 0) ? substr($style, $cont) : "");
    +			}
    +		}
    +
    +		return $style;
    +	}
    +
    +	/**
    +	 * Function: getValue
    +	 *
    +	 * Returns the value for key in dictionary or the given default value if no
    +	 * value is defined for the key.
    +	 * 
    +	 * Parameters:
    +	 *
    +	 * dict - Dictionary that contains the key, value pairs.
    +	 * key - Key whose value should be returned.
    +	 * default - Default value to return if the key is undefined. Default is null.
    +	 */
    +	static function getValue($dict, $key, $default=null)
    +	{
    +		$value = null;
    +	
    +		if (isset($dict[$key]))
    +		{
    +			$value = $dict[$key];
    +		}
    +		else
    +		{
    +			$value = $default;
    +		}
    +		
    +		return $value;
    +	}
    +
    +	/**
    +	 * Function: getNumber
    +	 *
    +	 * Returns the value for key in dictionary or 0 if no value is defined for
    +	 * the key.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * dict - Dictionary that contains the key, value pairs.
    +	 * key - Key whose value should be returned.
    +	 * default - Optional default value to return if no value is defined for
    +	 * the given key. Default is 0.
    +	 */
    +	static function getNumber($dict, $key, $default=0)
    +	{
    +		return mxUtils::getValue($dict, $key, $default);
    +	}
    +
    +	/**
    +	 * Function: indexOf
    +	 * 
    +	 * Returns the index of obj in array or -1 if the array does not contains
    +	 * the given object.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * array - Array to check for the given obj.
    +	 * obj - Object to find in the given array.
    +	 */
    +	static function indexOf($array, $object)
    +	{
    +		if ($array != null)
    +		{
    +			$len = sizeof($array);
    +			
    +			for ($i = 0; $i < $len; $i++)
    +			{
    +				if ($array[$i] === $object)
    +				{
    +					return $i;
    +				}
    +			}
    +		}
    +
    +		return -1;
    +	}
    +
    +	/**
    +	 * Function: readFile
    +	 * 
    +	 * Reads the given filename into a string. Shortcut for file_get_contents.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * filename - The name of the file to read.
    +	 */
    +	static function readFile($filename)
    +	{
    +		return file_get_contents($filename);
    +	}
    +
    +	/**
    +	 * Function: isNode
    +	 * 
    +	 * Returns true if the given value is an XML node with the node name
    +	 * and if the optional attribute has the specified value.
    +	 * 
    +	 * This implementation assumes that the given value is a DOM node if the
    +	 * nodeName property is not null.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * value - Object that should be examined as a node.
    +	 * nodeName - String that specifies the node name.
    +	 * attributeName - Optional attribute name to check.
    +	 * attributeValue - Optional attribute value to check.
    +	 */
    +	static function isNode($value, $nodeName = null, $attributeName = null, $attributeValue = null)
    +	{
    +		if ($value != null && ($nodeName == null ||
    +			strcasecmp($value->nodeName, $nodeName) == 0))
    +		{
    +			return $attributeName == null ||
    +				$value->getAttribute($attributeName) == $attributeValue;
    +		}
    +		
    +		return false;
    +	}
    +	
    +	/**
    +	 * Function: loadImage
    +	 * 
    +	 * Loads an image from the local filesystem, a data URI or any other URL.
    +	 */
    +	static function loadImage($url)
    +	{
    +		$img = null;
    +		
    +		if (isset($url))
    +		{
    +			// Parses data URIs of the form data:image/format;base64,xxx
    +			if (strpos($url, "data:image/") === 0)
    +			{
    +				$comma = strpos($url, ",");
    +				$data = base64_decode(substr($url, $comma + 1));
    +				$img = imagecreatefromstring($data);
    +			}
    +			else if (preg_match("/.jpg/i", "$url"))
    +			{
    +				$img = imagecreatefromjpeg($url);
    +			}
    +			else if (preg_match("/.png/i", "$url"))
    +			{
    +				$img = imagecreatefrompng($url);
    +			}
    +			else if (preg_match("/.gif/i", "$url"))
    +			{
    +				$img = imagecreatefromgif($url);
    +			}
    +		}
    +		
    +		return $img;
    +	}
    +
    +	/**
    +	 * Function: createXmlDocument
    +	 * 
    +	 * Returns a new, empty XML document.
    +	 */
    +	static function createXmlDocument()
    +	{
    +		return new DOMDocument("1.0");
    +	}
    +
    +	/**
    +	 * Function: loadXmlDocument
    +	 * 
    +	 * Returns a new DOM document for the given URI.
    +	 */
    +	static function loadXmlDocument($uri)
    +	{
    +		$doc = mxUtils::createXmlDocument();
    +		$doc->load($uri);
    +		
    +		return $doc;
    +	}
    +
    +	/**
    +	 * Function: parseXml
    +	 * 
    +	 * Returns a new DOM document for the given XML string.
    +	 */
    +	static function parseXml($xml)
    +	{
    +		$doc = mxUtils::createXmlDocument();
    +		$doc->loadXML($xml);
    +		
    +		return $doc;
    +	}
    +	
    +	/**
    +	 * Function: evaluate
    +	 *
    +	 * Evaluates an expression to a class member. The range of supported
    +	 * expressions is limited to static class members with a dot-notation,
    +	 * such as mxEdgeStyle.ElbowConnector.
    +	 */
    +	static function evaluate($expression)
    +	{
    +		$pos = strpos($expression, ".");
    +		
    +		if ($pos !== false)
    +		{
    +			$class = substr($expression, 0, $pos);
    +			$field = substr($expression, $pos+1);
    +			$vars = get_class_vars($class);
    +			
    +			if (isset($vars[$field]))
    +			{
    +				return $vars[$field];
    +			}
    +		}
    +		
    +		return eval("return ".$expression.";");
    +	}
    +	
    +	/**
    +	 * Function: findNode
    +	 * 
    +	 * Returns the first node where attr equals value.
    +	 * This implementation does not use XPath.
    +	 */
    +	static function findNode($node, $attr, $value)
    +	{
    +		$tmp = $node->getAttribute($attr);
    +		
    +		if (isset($tmp) && $tmp == $value)
    +		{
    +			return $node;
    +		}
    +		
    +		$node = $node->firstChild;
    +		
    +		while (isset($node))
    +		{
    +			$result = mxUtils::findNode($node, $attr, $value);
    +			
    +			if (isset($result))
    +			{
    +				return $result;
    +			}
    +			
    +			$node = $node->nextSibling;
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: selectSingleNode
    +	 * 
    +	 * Evaluates the XPath expression and returns the first node of the result.
    +	 * 
    +	 * Will find the first node with a label attribute that equals Hello,
    +	 * World!
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * doc - XML document that contains all nodes.
    +	 * xpath - String that represents the XPath expression.
    +	 */
    +	static function selectSingleNode($doc, $expr)
    +	{
    + 		$xpath = new DOMXPath($doc);
    + 		$nodelist = $xpath->query($expr);
    + 		
    + 		return $nodelist->item(0);
    +	}
    +	
    +	/**
    +	 * Function: getTrueTypeFont
    +	 * 
    +	 * Returns the truetype font to be used to draw the text with the given style.
    +	 */
    +	 static function getTrueTypeFont($style)
    +	 {
    +	 	return mxUtils::getValue($style, mxConstants::$STYLE_FONTFAMILY,
    +			mxConstants::$DEFAULT_FONTFAMILY);
    +	 }
    +	
    +	/**
    +	 * Function: getTrueTypeFontSize
    +	 * 
    +	 * Returns the truetype font size to be used to draw the text with the
    +	 * given style. This returns the fontSize in the style of the default
    +	 * fontsize multiplied with <ttfSizeFactor>.
    +	 */
    +	 static function getTrueTypeFontSize($size)
    +	 {
    +	 	return $size * mxConstants::$TTF_SIZEFACTOR;
    +	 }
    +
    +	/**
    +	 * Function: getFixedFontSize
    +	 * 
    +	 * Returns the fixed font size for GD (1 t0 5) for the given font properties
    +	 */
    +	static function getFixedFontSize($fontSize, $fontFamily, $fontStyle=null)
    +	{
    +		$font = 5;
    +		
    +		if ($fontSize <= 12)
    +		{
    +			$font = 1;
    +		}
    +		else if ($fontSize <= 14)
    +		{
    +			$font = 2;
    +		}
    +		else if ($fontSize <= 16)
    +		{
    +			$font = 3;
    +		}
    +		else if ($fontSize <= 18)
    +		{
    +			$font = 4;
    +		}
    +		
    +		return $font;
    +	}
    +	
    +	/**
    +	 * Function: stackTrace
    +	 *
    +	 * Prints a simple stack trace in the error log.
    +	 */
    +	static function stackTrace()
    +	{
    +		$arr = debug_backtrace();
    +		
    +		foreach ($arr as $value)
    +		{
    +			error_log($value["class"].".".$value["function"]);
    +		}
    +	}
    +
    +}
    +?>
    diff --git a/php/src/view/mxCellState.php b/php/src/view/mxCellState.php
    new file mode 100644
    index 000000000..ee226649c
    --- /dev/null
    +++ b/php/src/view/mxCellState.php
    @@ -0,0 +1,198 @@
    +<?php
    +/**
    + * $Id: mxCellState.php,v 1.20 2010-06-30 11:03:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxCellState extends mxRectangle
    +{
    +	
    +	/**
    +	 * Class: mxCellState
    +	 * 
    +	 * Represents the current state of a cell in a given <mxGraphView>.
    +	 * 
    +	 * Variable: view
    +	 * 
    +	 * Reference to the enclosing <mxGraphView>.
    +	 */
    +	var $view;
    +	
    +	/**
    +	 * Variable: cell
    +	 *
    +	 * Reference to the <mxCell> that is represented by this state.
    +	 */
    +	var $cell;
    +	
    +	/**
    +	 * Variable: style
    +	 * 
    +	 * Contains an array of key, value pairs that represent the style of the
    +	 * cell.
    +	 */
    +	var $style;
    +
    +	/**
    +	 * Variable: invalid
    +	 * 
    +	 * Specifies if the state is invalid. Default is true.
    +	 */
    +	var $invalid = true;
    +
    +	/**
    +	 * Variable: origin
    +	 *
    +	 * <mxPoint> that holds the origin for all child cells. Default is a new
    +	 * empty <mxPoint>.
    +	 */
    +	var $origin;
    +	
    +	/**
    +	 * Variable: absolutePoints
    +	 * 
    +	 * Holds an array of <mxPoints> that represent the absolute points of an
    +	 * edge.
    +	 */
    +	var $absolutePoints;
    +
    +	/**
    +	 * Variable: absoluteOffset
    +	 *
    +	 * <mxPoint> that holds the absolute offset. For edges, this is the
    +	 * absolute coordinates of the label position. For vertices, this is the
    +	 * offset of the label relative to the top, left corner of the vertex. 
    +	 */
    +	var $absoluteOffset;
    +	
    +	/**
    +	 * Variable: terminalDistance
    +	 * 
    +	 * Caches the distance between the end points for an edge.
    +	 */
    +	var $terminalDistance;
    +	
    +	/**
    +	 * Variable: length
    +	 *
    +	 * Caches the length of an edge.
    +	 */
    +	var $length;
    +	
    +	/**
    +	 * Variable: segments
    +	 * 
    +	 * Array of numbers that represent the cached length of each segment of the
    +	 * edge.
    +	 */
    +	var $segments;
    +		
    +	/**
    +	 * Variable: labelBounds
    +	 * 
    +	 * Holds the rectangle which contains the label.
    +	 */
    +	var $labelBounds;
    +	
    +	/**
    +	 * Variable: boundingBox
    +	 * 
    +	 * Holds the largest rectangle which contains all rendering for this cell.
    +	 */
    +	var $boundingBox;
    +
    +	/**
    +	 * Constructor: mxCellState
    +	 * 
    +	 * Constructs a new object that represents the current state of the given
    +	 * cell in the specified view.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * view - <mxGraphView> that contains the state.
    +	 * cell - <mxCell> that this state represents.
    +	 * style - Array of key, value pairs that constitute the style.
    +	 */
    +	function mxCellState($view = null, $cell = null, $style = null)
    +	{
    +		$this->view = $view;
    +		$this->cell = $cell;
    +		$this->style = $style;
    +		
    +		$this->origin = new mxPoint();
    +		$this->absoluteOffset = new mxPoint();
    +	}
    +
    +	/**
    +	 * Function: getPerimeterBounds
    +	 * 
    +	 * Returns the <mxRectangle> that should be used as the perimeter of the
    +	 * cell.
    +	 */
    +	function getPerimeterBounds($border = 0)
    +	{
    +		$bounds = new mxRectangle($this->x, $this->y, $this->width, $this->height);
    +		
    +		if ($border != 0)
    +		{
    +			$bounds->grow($border);
    +		}
    +		
    +		return $bounds;
    +	}
    +	
    +	/**
    +	 * Function: copy
    +	 *
    +	 * Returns a copy of this state where all members are deeply cloned
    +	 * except the view and cell references, which are copied with no
    +	 * cloning to the new instance.
    +	 */
    +	function copy()
    +	{
    +	 	$clone = new mxCellState($this->view, $this->cell, $this->style);
    +
    +		// Clones the absolute points
    +		if ($this->absolutePoints != null)
    +		{
    +			$clone->absolutePoints = array();
    +			
    +			for ($i = 0; $i < sizeof($this->absolutePoints); $i++)
    +			{
    +				array_push($clone->absolutePoints, $this->absolutePoints[$i]->copy());
    +			}
    +		}
    +
    +		if ($this->origin != null)
    +		{
    +			$clone->origin = $this->origin->copy();
    +		}
    +
    +		if ($this->absoluteOffset != null)
    +		{
    +			$clone->absoluteOffset = $this->absoluteOffset->copy();
    +		}
    +	
    +		if ($this->labelBounds != null)
    +		{
    +			$clone->labelBounds = $this->labelBounds->copy();
    +		}
    +		
    +		if ($this->boundingBox != null)
    +		{
    +			$clone->boundingBox = $this->boundingBox->copy();
    +		}
    +
    +		$clone->terminalDistance = $this->terminalDistance;
    +		$clone->segments = $this->segments;
    +		$clone->length = $this->length;
    +		$clone->x = $this->x;
    +		$clone->y = $this->y;
    +		$clone->width = $this->width;
    +		$clone->height = $this->height;
    +		
    +		return $clone;
    +	}
    +
    +}
    +
    +?>
    diff --git a/php/src/view/mxConnectionConstraint.php b/php/src/view/mxConnectionConstraint.php
    new file mode 100644
    index 000000000..f60641e25
    --- /dev/null
    +++ b/php/src/view/mxConnectionConstraint.php
    @@ -0,0 +1,50 @@
    +<?php
    +/**
    + * $Id: mxConnectionConstraint.php,v 1.2 2010-04-30 12:58:23 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxConnectionConstraint
    +{
    +	
    +	/**
    +	 * Class: mxConnectionConstraint
    +	 * 
    +	 * Defines an object that contains the constraints about how to connect one
    + 	 * side of an edge to its terminal.
    +	 * 
    +	 * Variable: point
    +	 * 
    +	 * <mxPoint> that specifies the fixed location of the connection point.
    +	 */
    +	var $point;
    +	
    +	/**
    +	 * Variable: perimeter
    +	 *
    +	 * Boolean that specifies if the point should be projected onto the perimeter
    +	 * of the terminal.
    +	 */
    +	var $perimeter;
    +
    +	/**
    +	 * Constructor: mxConnectionConstraint
    +	 * 
    +	 * Constructs a new connection constraint for the given point and boolean
    +	 * arguments.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * point - Optional <mxPoint> that specifies the fixed location of the point
    +	 * in relative coordinates. Default is null.
    +	 * perimeter - Optional boolean that specifies if the fixed point should be
    +	 * projected onto the perimeter of the terminal. Default is true.
    +	 */
    +	function mxConnectionConstraint($point = null, $perimeter = true)
    +	{
    +		$this->point = $point;
    +		$this->perimeter = $perimeter;
    +	}
    +
    +}
    +
    +?>
    diff --git a/php/src/view/mxEdgeStyle.php b/php/src/view/mxEdgeStyle.php
    new file mode 100644
    index 000000000..e09122ae3
    --- /dev/null
    +++ b/php/src/view/mxEdgeStyle.php
    @@ -0,0 +1,565 @@
    +<?php
    +/**
    + * $Id: mxEdgeStyle.php,v 1.33 2011-02-23 11:58:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +interface mxEdgeStyleFunction
    +{
    +
    +	/**
    +	 * Interface: mxEdgeStyleFunction
    +	 * 
    +	 * Defines the requirements for an edge style function.
    +	 * 
    +	 * Function: apply
    +	 * 
    +	 * Implements an edge style function. At the time the function is called, the result
    +	 * array contains a placeholder (null) for the first absolute point,
    +	 * that is, the point where the edge and source terminal are connected.
    +	 * The implementation of the style then adds all intermediate waypoints
    +	 * except for the last point, that is, the connection point between the
    +	 * edge and the target terminal. The first ant the last point in the
    +	 * result array are then replaced with mxPoints that take into account
    +	 * the terminal's perimeter and next point on the edge.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * state - <mxCellState> that represents the edge to be updated.
    +	 * source - <mxCellState> that represents the source terminal.
    +	 * target - <mxCellState> that represents the target terminal.
    +	 * points - List of relative control points.
    +	 * result - Array of <mxPoints> that represent the actual points of the
    +	 * edge.
    +	 */
    +	public function apply($state, $source, $target, $points, &$result);
    +
    +}
    +
    +/**
    + * Class: mxEntityRelation
    + * 
    + * Implements an entity relation style for edges (as used in database
    + * schema diagrams).  At the time the function is called, the result
    + * array contains a placeholder (null) for the first absolute point,
    + * that is, the point where the edge and source terminal are connected.
    + * The implementation of the style then adds all intermediate waypoints
    + * except for the last point, that is, the connection point between the
    + * edge and the target terminal. The first ant the last point in the
    + * result array are then replaced with mxPoints that take into account
    + * the terminal's perimeter and next point on the edge.
    + */
    +class mxEntityRelation implements mxEdgeStyleFunction
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public function apply($state, $source, $target, $points, &$result)
    +	{
    +		$view = $state->view;
    +		$graph = $view->graph;
    +		$segment = mxUtils::getValue($state->style,
    +			mxConstants::$STYLE_SEGMENT,
    +			mxConstants::$ENTITY_SEGMENT) * $view->scale;
    +
    +		$pts = $state->absolutePoints;
    +		$p0 = $pts[0];
    +		$pe = $pts[sizeof($pts) - 1];
    +
    +	 	$isSourceLeft = false;
    +	 	
    +		if (isset($p0))
    +		{
    +			$source = new mxCellState();
    +			$source->x = $p0->x;
    +			$source->y = $p0->y;
    +		}
    +	 	else if (isset($source))
    +	 	{
    +		 	$sourceGeometry = $graph->getCellGeometry($source->cell);	 		
    +	 	
    +		 	if ($sourceGeometry->relative)
    +		 	{
    +		 		$isSourceLeft = $sourceGeometry->x <= 0.5;
    +		 	}
    +		 	else if ($target != null)
    +		 	{
    +		 		$isSourceLeft = $target->x + $target->width < $source->x;
    +		 	}
    +		}
    +	 	
    +	 	$isTargetLeft = true;
    +	 	
    +		if (isset($pe))
    +		{
    +			$target = new mxCellState();
    +			$target->x = $pe->x;
    +			$target->y = $pe->y;
    +		}
    +	 	else if (isset($target))
    +	 	{
    +		 	$targetGeometry = $graph->getCellGeometry($target->cell);	 		
    +	 	
    +		 	if ($targetGeometry->relative)
    +		 	{
    +		 		$isTargetLeft = $targetGeometry->x <= 0.5;
    +		 	}
    +		 	else if ($source != null)
    +		 	{
    +		 		$isTargetLeft = $source->x + $source->width < $target->x;
    +		 	}
    +		}
    +	 	
    +		if (isset($source) && isset($target))
    +		{
    +			$x0 = ($isSourceLeft) ? $source->x : $source->x + $source->width;
    +			$y0 = $view->getRoutingCenterY($source);
    +			
    +			$xe = ($isTargetLeft) ? $target->x : $target->x + $target->width;
    +			$ye = $view->getRoutingCenterY($target);
    +	
    +			$seg = $segment;
    +			
    +			$dx = ($isSourceLeft) ? -$seg : $seg;
    +			$dep = new mxPoint($x0+$dx, $y0);
    +			array_push($result, $dep);
    +					
    +			$dx = ($isTargetLeft) ? -$seg : $seg;
    +			$arr = new mxPoint($xe+$dx, $ye);
    +	
    +			// Adds intermediate points if both go out on same side
    +			if ($isSourceLeft == $isTargetLeft)
    +			{
    +				$x = ($isSourceLeft) ?
    +					min($x0, $xe)-$segment :
    +					max($x0, $xe)+$segment;
    +				array_push($result, new mxPoint($x, $y0));
    +				array_push($result, new mxPoint($x, $ye));
    +			}
    +			else if (($dep->x < $arr->x) == $isSourceLeft)
    +			{
    +				$midY = $y0 + ($ye - $y0) / 2;
    +				array_push($result, new mxPoint($dep->x, $midY));
    +				array_push($result, new mxPoint($arr->x, $midY));
    +			}
    +			
    +			array_push($result, $arr);
    +		}
    +	}
    +
    +}
    +
    +/**
    + * Class: mxLoop
    + * 
    + * Implements a self-reference, aka. loop.
    + */
    +class mxLoop implements mxEdgeStyleFunction
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public function apply($state, $source, $target, $points, &$result)
    +	{
    +		if ($source != null)
    +		{
    +			$view = $state->view;
    +			$graph = $view->graph;
    +			$pt = ($points != null && sizeof($points) > 0) ? $points[0] : null;
    +
    +			if ($pt != null)
    +			{
    +				$pt = $view->transformControlPoint($state, $pt);
    +					
    +				if (mxUtils::contains($source, $pt->x, $pt->y))
    +				{
    +					$pt = null;
    +				}
    +			}
    +		
    +			$x = 0;
    +			$dx = 0;
    +			$y = 0;
    +			$dy = 0;
    +			
    +			$seg = mxUtils::getValue($state->style,
    +				mxConstants::$STYLE_SEGMENT, $graph->gridSize)
    +				* $view->scale;
    +			$dir = mxUtils::getValue($state->style,
    +				mxConstants::$STYLE_DIRECTION,
    +				mxConstants::$DIRECTION_WEST);
    +
    +			if ($dir == mxConstants::$DIRECTION_NORTH ||
    +				$dir == mxConstants::$DIRECTION_SOUTH)
    +			{
    +				$x = $view->getRoutingCenterX($source);
    +				$dx = $seg;
    +			}
    +			else
    +			{
    +				$y = $view->getRoutingCenterY($source);
    +				$dy = $seg;
    +			}
    +			
    +			if ($pt == null ||
    +				$pt->x < $source->x ||
    +				$pt->x > $source->x + $source->width)
    +			{
    +				if ($pt != null)
    +				{
    +					$x = $pt->x;
    +					$dy = max(abs($y - $pt->y), $dy);
    +				}
    +				else
    +				{
    +					if ($dir == mxConstants::$DIRECTION_NORTH)
    +					{
    +						$y = $source->y - 2 * $dx;
    +					}
    +					else if ($dir == mxConstants::$DIRECTION_SOUTH)
    +					{
    +						$y = $source->y + $source->height + 2 * $dx;
    +					}
    +					else if ($dir == mxConstants::$DIRECTION_EAST)
    +					{
    +						$x = $source->x - 2 * $dy;
    +					}
    +					else
    +					{
    +						$x = $source->x + $source->width + 2 * $dy;
    +					}
    +				}
    +			}
    +			else if ($pt != null)
    +			{
    +				$x = $view->getRoutingCenterX($source);
    +				$dx = max(abs($x - $pt->x), $dy);
    +				$y = $pt->y;
    +				$dy = 0;
    +			}
    +			
    +			array_push($result, new mxPoint($x-$dx, $y-$dy));
    +			array_push($result, new mxPoint($x+$dx, $y+$dy));
    +		}
    +	}
    +	
    +}
    +
    +/**
    + * Class: mxElbowConnector
    + * 
    + * Uses either <SideToSide> or <TopToBottom> depending on the horizontal
    + * flag in the cell style. <SideToSide> is used if horizontal is true or
    + * unspecified. See <EntityRelation> for a description of the
    + * parameters.
    + */
    +class mxElbowConnector implements mxEdgeStyleFunction
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public function apply($state, $source, $target, $points, &$result)
    +	{
    +		$pt = ($points != null && sizeof($points) > 0) ? $points[0] : null;
    +
    +		$vertical = false;
    +		$horizontal = false;
    +		
    +		if ($source != null && $target != null)
    +		{
    +			if ($pt != null)
    +			{
    +				$left = min($source->x, $target->x);
    +				$right = max($source->x + $source->width,
    +					$target->x + $target->width);
    +	
    +				$top = min($source->y, $target->y);
    +				$bottom = max($source->y + $source->height,
    +					$target->y + $target->height);
    +
    +				$pt = $state->view->transformControlPoint($state, $pt);
    +				
    +				$vertical = $pt->y < $top || $pt->y > $bottom;
    +				$horizontal = $pt->x < $left || $pt->x > $right;
    +			}
    +			else
    +			{
    +				$left = max($source->x, $target->x);
    +				$right = min($source->x + $source->width,
    +					$target->x + $target->width);
    +					
    +				$vertical = $left == $right;
    +				
    +				if (!$vertical)
    +				{
    +					$top = max($source->y, $target->y);
    +					$bottom = min($source->y + $source->height,
    +						$target->y + $target->height);
    +						
    +					$horizontal = $top == $bottom;
    +				}
    +			}
    +		}
    +
    +		if (!$horizontal && ($vertical ||
    +			mxUtils::getValue($state->style, mxConstants::$STYLE_ELBOW) == mxConstants::$ELBOW_VERTICAL))
    +		{
    +			mxEdgeStyle::$TopToBottom->apply($state, $source, $target, $points, $result);
    +		}
    +		else
    +		{
    +			mxEdgeStyle::$SideToSide->apply($state, $source, $target, $points, $result);
    +		}
    +	}
    +
    +}
    +
    +/**
    + * Class: mxSideToSide
    + * 
    + * Implements a vertical elbow edge. See <EntityRelation> for a description
    + * of the parameters.
    + */
    +class mxSideToSide implements mxEdgeStyleFunction
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public function apply($state, $source, $target, $points, &$result)
    +	{
    +		$view = $state->view;
    +		$pt = ($points != null && sizeof($points) > 0) ? $points[0] : null;
    +		$pts = $state->absolutePoints;
    +		$p0 = $pts[0];
    +		$pe = $pts[sizeof($pts) - 1];
    +		
    +		if ($pt != null)
    +		{
    +			$pt = $view->transformControlPoint($state, $pt);
    +		}
    +
    +		if (isset($p0))
    +		{
    +			$source = new mxCellState();
    +			$source->x = $p0->x;
    +			$source->y = $p0->y;
    +		}
    +		
    +		if (isset($pe))
    +		{
    +			$target = new mxCellState();
    +			$target->x = $pe->x;
    +			$target->y = $pe->y;
    +		}
    +
    +		if (isset($source) && isset($target))
    +		{
    +			$l = max($source->x, $target->x);
    +			$r = min($source->x+$source->width, $target->x+$target->width);
    +	
    +			$x = ($pt != null) ? $pt->x : $r + ($l-$r)/2;
    +			
    +			$y1 = $view->getRoutingCenterY($source);
    +			$y2 = $view->getRoutingCenterY($target);
    +			
    +			if ($pt != null)
    +			{
    +				if ($pt->y >= $source->y &&
    +					$pt->y <= $source->y + $source->height)
    +				{
    +					$y1 = $pt->y;
    +				}
    +				
    +				if ($pt->y >= $target->y &&
    +					$pt->y <= $target->y + $target->height)
    +				{
    +					$y2 = $pt->y;
    +				}
    +			}
    +			
    +			if (!mxUtils::contains($target, $x, $y1) &&
    +				!mxUtils::contains($source, $x, $y1))
    +			{
    +				array_push($result, new mxPoint($x, $y1));
    +			}
    +			
    +			if (!mxUtils::contains($target, $x, $y2) &&
    +				!mxUtils::contains($source, $x, $y2))
    +			{
    +				array_push($result, new mxPoint($x, $y2));
    +			}
    +	
    +			if (sizeof($result) == 1)
    +			{
    +				if (isset($pt))
    +				{
    +					array_push($result, new mxPoint($x, $pt->y));
    +				}
    +				else
    +				{
    +					$t = max($source->y, $target->y);
    +					$b = min($source->y+$source->height, $target->y+$target->height);
    +					
    +					array_push($result, new mxPoint($x, $t + ($b - $t) / 2));
    +				}
    +			}
    +		}
    +	}
    +	
    +}
    +	
    +/**
    + * Class: mxTopToBottom
    + * 
    + * Implements a horizontal elbow edge. See <EntityRelation> for a
    + * description of the parameters.
    + */
    +class mxTopToBottom implements mxEdgeStyleFunction
    +{
    +
    +	/**
    +	 * 
    +	 */
    +	public function apply($state, $source, $target, $points, &$result)
    +	{
    +		$view = $state->view;
    +		$pt = ($points != null && sizeof($points) > 0) ? $points[0] : null;
    +		$pts = $state->absolutePoints;
    +		$p0 = $pts[0];
    +		$pe = $pts[sizeof($pts) - 1];
    +		
    +		if ($pt != null)
    +		{
    +			$pt = $view->transformControlPoint($state, $pt);
    +		}
    +
    +		if (isset($p0))
    +		{
    +			$source = new mxCellState();
    +			$source->x = $p0->x;
    +			$source->y = $p0->y;
    +		}
    +		
    +		if (isset($pe))
    +		{
    +			$target = new mxCellState();
    +			$target->x = $pe->x;
    +			$target->y = $pe->y;
    +		}
    +
    +		if (isset($source) && isset($target))
    +		{
    +			$t = max($source->y, $target->y);
    +			$b = min($source->y+$source->height, $target->y+$target->height);
    +	
    +			$x = $view->getRoutingCenterX($source);
    +			
    +			if ($pt != null && 
    +				$pt->x >= $source->x &&
    +				$pt->x <= $source->x + $source->width)
    +			{
    +				$x = $pt->x;
    +			}
    +			
    +			$y = ($pt != null) ? $pt->y : $b + ($t - $b) / 2;
    +			
    +			if (!mxUtils::contains($target, $x, $y) &&
    +				!mxUtils::contains($source, $x, $y))
    +			{
    +				array_push($result, new mxPoint($x, $y));
    +			}
    +			
    +			if ($pt != null &&
    +				$pt->x >= $target->x &&
    +				$pt->x <= $target->x + $target->width)
    +			{
    +				$x = $pt->x;
    +			}
    +			else
    +			{
    +				$x = $view->getRoutingCenterX($target);
    +			}
    +			
    +			if (!mxUtils::contains($target, $x, $y) &&
    +				!mxUtils::contains($source, $x, $y))
    +			{
    +				array_push($result, new mxPoint($x, $y));
    +			}
    +	
    +			if (sizeof($result) == 1)
    +			{
    +				if ($pt == null)
    +				{
    +					array_push($result, new mxPoint($x, $y));
    +				}
    +				else
    +				{
    +					$l = max($source->x, $target->x);
    +					$r = min($source->x + $source->width, $target->x + $target->width);
    +					
    +					array_push($result, new mxPoint($r + ($r - $l) / 2, $y));
    +				}
    +			}
    +		}
    +	}
    +	
    +}
    +
    +/**	
    + *
    + * Class: mxEdgeStyle
    + * 
    + * Provides various edge styles to be used as the values for
    + * <mxConstants.STYLE_EDGE> in a cell style.
    + */
    +class mxEdgeStyle
    +{
    +
    +	/**
    +	 * Variable: EntityRelation
    +	 *
    +	 * Provides an entity relation style for edges (as used in database
    +	 * schema diagrams).
    +	 */
    +	public static $EntityRelation;
    +
    +	/**
    +	 * Variable: Loop
    +	 *
    +	 * Provides a self-reference, aka. loop.
    +	 */
    +	public static $Loop;
    +
    +	/**
    +	 * Variable: ElbowConnector
    +	 *
    +	 * Provides an elbow connector.
    +	 */
    +	public static $ElbowConnector;
    +	
    +	/**
    +	 * Variable: SideToSide
    +	 *
    +	 * Provides a side to side connector.
    +	 */
    +	public static $SideToSide;
    +
    +	/**
    +	 * Variable: TopToBottom
    +	 *
    +	 * Provides a top to bottom connector.
    +	 */
    +	public static $TopToBottom;
    +
    +}
    +
    +// Instanciates the declared static members of the above class
    +mxEdgeStyle::$EntityRelation = new mxEntityRelation();
    +mxEdgeStyle::$Loop = new mxLoop();
    +mxEdgeStyle::$ElbowConnector = new mxElbowConnector();
    +mxEdgeStyle::$SideToSide = new mxSideToSide();
    +mxEdgeStyle::$TopToBottom = new mxTopToBottom();
    +?>
    diff --git a/php/src/view/mxGraph.php b/php/src/view/mxGraph.php
    new file mode 100644
    index 000000000..dc37bb21b
    --- /dev/null
    +++ b/php/src/view/mxGraph.php
    @@ -0,0 +1,904 @@
    +<?php
    +/**
    + * $Id: mxGraph.php,v 1.80 2012-01-08 09:35:57 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +
    +class mxGraph
    +{
    +	
    +	/**
    +	 * Class: mxGraph
    +	 *
    +	 * Implements a graph component.
    +	 * 
    +	 * Variable: model
    +	 *
    +	 * Holds the <mxGraphModel>.
    +	 */
    +	var $model;
    +		
    +	/**
    +	 * Variable: stylesheet
    +	 *
    +	 * Holds the <mxStylesheet>.
    +	 */
    +	var $stylesheet;
    +	
    +	/**
    +	 * Variable: view
    +	 *
    +	 * Holds the <mxGraphView>.
    +	 */
    +	var $view;
    +	
    +	/**
    +	 * Variable: gridSize
    +	 * 
    +	 * Specifies the grid size. Default is 10.
    +	 */
    +	var $gridSize = 10;
    +	
    +	/**
    +	 * Variable: labelsVisible
    +	 * 
    +	 * Specifies if labels should be visible. This is used in
    +	 * <getLabel>. Default is true.
    +	 */
    +	var $labelsVisible = true;
    +
    +	/**
    +	 * Variable: defaultLoopStyle
    +	 * 
    +	 * <mxEdgeStyle> to be used for loops. This is a fallback for
    +	 * loops if the <mxConstants.STYLE_LOOP> is undefined. Default is
    +	 * <mxEdgeStyle.Loop>.
    +	 */
    +	var $defaultLoopStyle = "mxEdgeStyle.Loop";
    +
    +	/**
    +	 * Variable: imageBundles
    +	 *
    +	 * Holds the list of image bundles.
    +	 */
    +	protected $imageBundles = array();
    +	
    +	/**
    +	 * Constructor: mxGraphModel
    +	 *
    +	 * Constructs a new graph model using the specified
    +	 * root cell.
    +	 */
    +	function mxGraph($model = null, $stylesheet = null)
    +	{
    +		$this->model = ($model != null) ? $model : new mxGraphModel();
    +		$this->stylesheet = ($stylesheet != null) ? $stylesheet : $this->createStylesheet();
    +		$this->view = $this->createGraphView();
    +		$this->view->revalidate();
    +		
    +		$this->model->addListener(mxEvent::$GRAPH_MODEL_CHANGED, $this);
    +	}
    +		
    +	/**
    +	 * Function: createStylesheet
    +	 * 
    +	 * Creates a new <mxStylesheet> to be used in this graph.
    +	 */
    +	function createStylesheet()
    +	{
    +		return new mxStylesheet();
    +	}
    +	
    +	/**
    +	 * Function: createGraphView
    +	 * 
    +	 * Creates a new <mxGraphView> to be used in this graph.
    +	 */
    +	function createGraphView()
    +	{
    +		return new mxGraphView($this);
    +	}
    +
    +	/**
    +	 * Function: getModel
    +	 * 
    +	 * Returns the <mxGraphModel> that contains the cells.
    +	 */
    +	function getModel()
    +	{
    +		return $this->model;
    +	}
    +	
    +	/**
    +	 * Function: getStylesheet
    +	 * 
    +	 * Returns the <mxStylesheet> that defines the style.
    +	 */
    +	function getStylesheet()
    +	{
    +		return $this->stylesheet;
    +	}
    +	
    +	/**
    +	 * Function: getView
    +	 * 
    +	 * Returns the <mxGraphView> that contains the <mxCellStates>.
    +	 */
    +	function getView()
    +	{
    +		return $this->view;
    +	}
    +
    +	/**
    +	 * Function: getDefaultParent
    +	 * 
    +	 * Returns the first child child of <mxGraphModel.root>. The value returned
    +	 * by this function should be used as the parent for new cells (aka default
    +	 * layer).
    +	 */
    +	function getDefaultParent()
    +	{
    +		$model = $this->model;
    +		
    +		return $model->getChildAt($model->getRoot(), 0);
    +	}
    +
    +	/**
    +	 * Function: convertValueToString
    +	 * 
    +	 * Returns the textual representation for the given cell. This
    +	 * implementation returns the nodename or string-representation of the user
    +	 * object.
    +	 */
    +	function convertValueToString($cell)
    +	{
    +		$result = $this->model->getValue($cell);
    +	 	
    + 		return ($result != null) ? $result : "";
    +	}
    +
    +	/**
    +	 * Function: getLabel
    +	 * 
    +	 * Returns a string or DOM node that represents the label for the given
    +	 * cell. This implementation uses <convertValueToString> if <labelsVisible>
    +	 * is true. Otherwise it returns an empty string.
    +	 */
    +	function getLabel($cell)
    +	{
    +		$result = "";
    +		
    +		if ($cell != null)
    +		{
    +			$state = $this->view->getState($cell);
    +			$style = ($state != null) ?
    +				$state->style : $this->getCellStyle($cell);
    +			
    +			if ($this->labelsVisible &&
    +				!mxUtils::getValue($style, mxConstants::$STYLE_NOLABEL, false))
    +			{
    +				$result = $this->convertValueToString($cell);
    +			}
    +		}
    +		
    +		return $result;
    +	}
    +
    +	/**
    +	 * Function: getChildOffsetForCell
    +	 * 
    +	 * Returns the offset to be used for the cells inside the given cell. The
    +	 * root and layer cells may be identified using <mxGraphModel.isRoot> and
    +	 * <mxGraphModel.isLayer>. For all other current roots, the
    +	 * <mxGraphView.currentRoot> field points to the respective cell, so that
    +	 * the following holds: cell == this.view.currentRoot. This implementation
    +	 * returns null.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * cell - <mxCell> whose offset should be returned.
    +	 */
    +	function getChildOffsetForCell($cell)
    +	{
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: isOrthogonal
    +	 * 
    +	 * Returns true if perimeter points should be computed such that the
    +	 * resulting edge has only horizontal or vertical segments.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCellState> that represents the edge.
    +	 */
    +	function isOrthogonal($edge)
    +	{
    +		if (isset($edge->style[mxConstants::$STYLE_ORTHOGONAL]))
    +		{
    +			return mxUtils::getValue($edge->style, mxConstants::$STYLE_ORTHOGONAL);
    +		}
    +
    +		$edgeStyle = $this->view->getEdgeStyle($edge, null, null, null);
    +
    +		return $edgeStyle === mxEdgeStyle::$ElbowConnector ||
    +			$edgeStyle === mxEdgeStyle::$SideToSide ||
    +			$edgeStyle === mxEdgeStyle::$TopToBottom ||
    +			$edgeStyle === mxEdgeStyle::$EntityRelation;
    +	}
    +	
    +	/**
    +	 * Function: isCellVisible
    +	 *
    +	 * Returns true if the given cell is visible.
    +	 */
    +	function isCellVisible($cell)
    +	{
    +		return $this->model->isVisible($cell);
    +	}
    +	
    +	/**
    +	 * Function: isCellCollapsed
    +	 *
    +	 * Returns true if the given cell is collapsed.
    +	 */
    +	function isCellCollapsed($cell)
    +	{
    +		return $this->model->isCollapsed($cell);
    +	}
    +	
    +	/**
    +	 * Function: isCellCollapsed
    +	 *
    +	 * Returns true if the given cell is connectable.
    +	 */
    +	function isCellConnectable($cell)
    +	{
    +		return $this->model->isConnectable($cell);
    +	}
    +
    +	/**
    +	 * Function: getCellGeometry
    +	 *
    +	 * Returns the <mxGeometry> for the given <mxCell>.
    +	 */
    +	function getCellGeometry($cell)
    +	{
    +		return $this->model->getGeometry($cell);
    +	}
    +	
    +	/**
    +	 * Function: getCellStyle
    +	 */
    +	function getCellStyle($cell)
    +	{
    +		$style = ($this->model->isVertex($cell)) ?
    +			$this->stylesheet->getDefaultVertexStyle() :
    +			$this->stylesheet->getDefaultEdgeStyle();
    +
    +		$name = $this->model->getStyle($cell);
    +		
    +		if ($name != null)
    +		{
    +			$style = $this->postProcessCellStyle($this->stylesheet->getCellStyle($name, $style));
    +		}
    +		
    +		if ($style == null)
    +		{
    +			$style = array();
    +		}
    +		
    +		return $style;
    +	}
    +	
    +	/**
    +	 * Function: postProcessCellStyle
    +	 * 
    +	 * Tries to resolve the value for the image style in the image bundles and
    +	 * turns short data URIs as defined in mxImageBundle to data URIs as
    +	 * defined in RFC 2397 of the IETF.
    +	 */
    +	function postProcessCellStyle($style)
    +	{
    +		if (isset($style) && array_key_exists(mxConstants::$STYLE_IMAGE, $style))
    +		{
    +			$key = $style[mxConstants::$STYLE_IMAGE];
    +			$image = $this->getImageFromBundles($key);
    +
    +			if (isset($image))
    +			{
    +				$style[mxConstants::$STYLE_IMAGE] = $image;
    +			}
    +			else
    +			{
    +				$image = $key;
    +			}
    +			
    +			// Converts short data uris to normal data uris
    +			if (isset($image) && substr($image, 0, 11) == "data:image/")
    +			{
    +				$comma = strpos($image, ",");
    +				
    +				if ($comma !== false)
    +				{
    +					$image = substr($image, 0, $comma).";base64,".
    +						substr($image, $comma + 1);
    +				}
    +				
    +				$style[mxConstants::$STYLE_IMAGE] = $image;
    +			}
    +		}
    +
    +		return $style;
    +	}
    +
    +	/**
    +	 * Function: setCellStyles
    +	 * 
    +	 * Sets the key to value in the styles of the given cells. This will modify
    +	 * the existing cell styles in-place and override any existing assignment
    +	 * for the given key. If no cells are specified, then the selection cells
    +	 * are changed. If no value is specified, then the respective key is
    +	 * removed from the styles.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * key - String representing the key to be assigned.
    +	 * value - String representing the new value for the key.
    +	 * cells - Array of <mxCells> to change the style for.
    +	 */
    +	function setCellStyles($key, $value, $cells)
    +	{
    +		mxUtils::setCellStyles($this->model, $cells, $key, $value);
    +	}
    +	/**
    +	 * Function: addBundle
    +	 * 
    +	 * Adds the specified <mxImageBundle>.
    +	 */
    +	function addImageBundle($bundle)
    +	{
    +		array_push($this->imageBundles, $bundle);
    +	}
    +	
    +	/**
    +	 * Function: removeImageBundle
    +	 * 
    +	 * Removes the specified <mxImageBundle>.
    +	 */
    +	function removeImageBundle($bundle)
    +	{
    +		$tmp = array();
    +		
    +		for ($i = 0; $i < sizeof($this->imageBundles); $i++)
    +		{
    +			if ($this->imageBundles[$i] !== $bundle)
    +			{
    +				array_push($tmp, $this->imageBundles[$i]);
    +			}
    +		}
    +		
    +		$this->imageBundles = $tmp;
    +	}
    +	
    +	/**
    +	 * Function: getImageFromBundles
    +	 * 
    +	 * Searches all <imageBundles> for the specified key and returns the value
    +	 * for the first match or null if the key is not found.
    +	 */
    +	function getImageFromBundles($key)
    +	{
    +		if (isset($key))
    +		{
    +			for ($i = 0; $i < sizeof($this->imageBundles); $i++)
    +			{
    +				$image = $this->imageBundles[$i]->getImage($key);
    +				
    +				if (isset($image))
    +				{
    +					return $image;
    +				}
    +			}
    +		}
    +		
    +		return null;
    +	}
    +		
    +	/**
    +	 * Function: getImageBundles
    +	 * 
    +	 * Returns the <imageBundles>.
    +	 */
    +	function getImageBundles()
    +	{
    +		return $this->imageBundles;
    +	}
    +	
    +	/**
    +	 * Function: setImageBundles
    +	 * 
    +	 * Sets the <imageBundles>.
    +	 */
    +	function setImageBundles($value)
    +	{
    +		$this->imageBundles = $value;
    +	}
    +	
    +	/**
    +	 * Function: insertVertex
    +	 * 
    +	 * Adds a new vertex into the given parent <mxCell> using value as the user
    +	 * object and the given coordinates as the <mxGeometry> of the new vertex.
    +	 * The id and style are used for the respective properties of the new
    +	 * <mxCell>, which is returned.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * parent - <mxCell> that specifies the parent of the new vertex.
    +	 * id - Optional string that defines the Id of the new vertex.
    +	 * value - Object to be used as the user object.
    +	 * x - Integer that defines the x coordinate of the vertex.
    +	 * y - Integer that defines the y coordinate of the vertex.
    +	 * width - Integer that defines the width of the vertex.
    +	 * height - Integer that defines the height of the vertex.
    +	 * style - Optional string that defines the cell style.
    +	 * relative - Optional boolean that specifies if the geometry is relative.
    +	 * Default is false.
    +	 */
    +	function insertVertex($parent, $id = null, $value = null, $x = 0, $y = 0,
    +		$width = 1, $height = 1, $style = null, $relative = false)
    +	{
    +		if ($parent == null)
    +		{
    +			$parent = $this->getDefaultParent();
    +		}
    +		
    +		$vertex = $this->createVertex($parent, $id, $value, $x, $y, $width, $height, $style, $relative);
    +		$index = $this->model->getChildCount($parent);
    +		
    +		return $this->model->add($parent, $vertex, $index);
    +	}
    +			
    +	/**
    +	 * Function: createVertex
    +	 * 
    +	 * Creates the vertex to be used in insertVertex.
    +	 */
    +	function createVertex($parent, $id = null, $value = null, $x = 0, $y = 0,
    +		$width = 1, $height = 1, $style = null, $relative = false)
    +	{
    +		$geometry = new mxGeometry($x, $y, $width, $height);
    +		$geometry->relative = $relative;
    +		
    +		$vertex = new mxCell($value, $geometry, $style);
    +		$vertex->setId($id);
    +		$vertex->setVertex(true);
    +		
    +		return $vertex;
    +	}
    +
    +	/**
    +	 * Function: insertEdge
    +	 * 
    +	 * Adds a new edge into the given parent <mxCell> using value as the user
    +	 * object and the given source and target as the terminals of the new edge.
    +	 * The id and style are used for the respective properties of the new
    +	 * <mxCell>, which is returned.
    +	 *
    +	 * Parameters:
    +	 * 
    +	 * parent - <mxCell> that specifies the parent of the new edge.
    +	 * id - Optional string that defines the Id of the new edge.
    +	 * value - JavaScript object to be used as the user object.
    +	 * source - <mxCell> that defines the source of the edge.
    +	 * target - <mxCell> that defines the target of the edge.
    +	 * style - Optional string that defines the cell style.
    +	 */
    +	function insertEdge($parent, $id = null, $value = null,
    +		$source = null, $target = null, $style = null)
    +	{
    +		if ($parent == null)
    +		{
    +			$parent = $this->getDefaultParent();
    +		}
    +
    +		$edge = $this->createEdge($parent, $id, $value, $source, $target, $style);
    +		
    +		// Appends the edge to the given parent and sets
    +		// the edge terminals in a single transaction
    +		$index = $this->model->getChildCount($parent);
    +	 	
    +	 	$this->model->beginUpdate();
    +	 	try
    +	 	{
    +		 	$edge = $this->model->add($parent, $edge, $index);
    +		 	
    +			$this->model->setTerminal($edge, $source, true);
    +			$this->model->setTerminal($edge, $target, false);
    +		}
    +		catch (Exception $e)
    +		{
    +			$this->model->endUpdate();
    +			throw($e);
    +		}
    +		$this->model->endUpdate();
    +
    +		return $edge;
    +	}
    +				
    +	/**
    +	 * Function: createEdge
    +	 * 
    +	 * Creates the edge to be used in <insertEdge>. This implementation does
    +	 * not set the source and target of the edge, these are set when the edge
    +	 * is added to the model.
    +	 */
    +	function createEdge($parent, $id = null, $value = null,
    +		$source = null, $target = null, $style = null)
    +	{
    +		$geometry = new mxGeometry();
    +		$edge = new mxCell($value, $geometry, $style);
    +		
    +		$edge->setId($id);
    +		$edge->setEdge(true);
    +		$edge->geometry->relative = true;
    +
    +		return $edge;
    +	}
    +	
    +	/**
    +  	 * Function: getGraphBounds
    +  	 * 
    +  	 * Returns the bounds of the visible graph. Shortcut to
    +  	 * <mxGraphView.getGraphBounds>.
    +  	 */
    +	function getGraphBounds()
    +	{
    +		return $this->getView()->getGraphBounds();
    +	}
    +
    +    /**
    +     * Function: getBoundingBox
    +     * 
    +     * Returns the bounding box of the given cell including all connected edges
    +     * if includeEdge is true.
    +     */
    +    function getBoundingBox($cell, $includeEdges = false, $includeDescendants = false)
    +    {
    +        return $this->getCellBounds($cell, $includeEdges, $includeDescendants, true);
    +    }
    +
    +    /**
    +     * Function: getPaintBounds
    +     * 
    +     * Returns the bounding box of the given cells and their descendants.
    +     */
    +    function getPaintBounds($cells)
    +    {
    +        return $this->getBoundsForCells($cells, false, true, true);
    +    }
    +
    +    /**
    +     * Function: getBoundsForCells
    +     * 
    +     * Returns the bounds for the given cells.
    +     */
    +    function getBoundsForCells($cells, $includeEdges = false, $includeDescendants = false, $boundingBox = false)
    +    {
    +    	$cellCount = sizeof($cells);
    +    	$result = null;
    +    	
    +        if ($cellCount > 0)
    +        {
    +			for ($i = 0; $i < $cellCount; $i++)
    +			{
    +            	$bounds = $this->getCellBounds($cells[$i], $includeEdges,
    +            		$includeDescendants, $boundingBox);
    +            	
    +            	if ($bounds != null)
    +            	{
    +	            	if ($result == null)
    +	            	{
    +	            		$result = new mxRectangle($bounds->x, $bounds->y,
    +	            			$bounds->width, $bounds->height);
    +	            	}
    +					else
    +	                {
    +	                	$result->add($bounds);
    +	                }
    +            	}
    +			}
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * Function: getCellBounds
    +     * 
    +     * Returns the bounds of the given cell including all connected edges
    +     * if includeEdge is true.
    +     */
    +    function getCellBounds($cell, $includeEdges = false, $includeDescendants = false, $boundingBox = false)
    +    {
    +		$cells = array($cell);
    +
    +		// Includes the connected edges
    +        if ($includeEdges)
    +        {
    +            $edgeCount = $this->model->getEdgeCount($cell);
    +
    +            for ($i = 0; $i < $edgeCount; $i++)
    +            {
    +            	array_push($cells, $this->model->getEdgeAt($cell, $i));
    +            }
    +        }
    +
    +        if ($boundingBox)
    +        {
    +            $result = $this->view->getBoundingBox($cells);
    +        }
    +        else
    +        {
    +            $result = $this->view->getBounds($cells);
    +        }
    +		
    +		// Recursively includes the bounds of the children
    +		if ($includeDescendants)
    +		{
    +			$childCount = $this->model->getChildCount($cell);
    +			
    +			for ($i = 0; $i < $childCount; $i++)
    +			{
    +				$tmp = $this->getCellBounds($this->model->getChildAt($cell, $i),
    +					$includeEdges, true, $boundingBox);
    +
    +				if ($result != null)
    +				{
    +					$result->add($tmp);
    +				}
    +				else
    +				{
    +					$result = $tmp;
    +				}
    +			}
    +		}
    +		
    +		return $result;
    +    }
    +
    +	/**
    +	 * Function: getConnectionConstraint
    +	 * 
    +	 * Returns an <mxConnectionConstraint> that describes the given connection
    +	 * point. This result can then be passed to <getConnectionPoint>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCellState> that represents the edge.
    +	 * terminal - <mxCellState> that represents the terminal.
    +	 * source - Boolean indicating if the terminal is the source or target.
    +	 */
    +   	function getConnectionConstraint($edge, $terminal, $source)
    +	{
    +		$point = null;
    +		$x = mxUtils::getValue($edge->style,
    +			($source) ? mxConstants::$STYLE_EXIT_X :
    +			mxConstants::$STYLE_ENTRY_X);
    +
    +		if (isset($x))
    +		{
    +			$y = mxUtils::getValue($edge->style,
    +				(($source) ? mxConstants::$STYLE_EXIT_Y :
    +				mxConstants::$STYLE_ENTRY_Y));
    +			
    +			if (isset($y))
    +			{
    +				$point = new mxPoint($x, $y);
    +			}
    +		}
    +		
    +		$perimeter = false;
    +		
    +		if (isset($point))
    +		{
    +			$perimeter = mxUtils::getValue($edge->style, ($source) ?
    +				mxConstants::$STYLE_EXIT_PERIMETER :
    +				mxConstants::$STYLE_ENTRY_PERIMETER, true);
    +		}
    +		
    +		return new mxConnectionConstraint($point, $perimeter);
    +	}
    +
    +	/**
    +	 * Function: getConnectionPoint
    +	 *
    +	 * Returns the nearest point in the list of absolute points or the center
    +	 * of the opposite terminal.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * vertex - <mxCellState> that represents the vertex.
    +	 * constraint - <mxConnectionConstraint> that represents the connection point
    +	 * constraint as returned by <getConnectionConstraint>.
    +	 */
    +	function getConnectionPoint($vertex, $constraint)
    +	{
    +		$point = null;
    +		
    +		if (isset($vertex) && isset($constraint->point))
    +		{
    +			$point = new mxPoint($vertex->x + $constraint->point->x * $vertex->width,
    +					$vertex->y + $constraint->point->y * $vertex->height);
    +		}
    +		
    +		if (isset($point) && $constraint->perimeter)
    +		{
    +			$point = $this->view->getPerimeterPoint($vertex, $point, false);
    +		}
    +		
    +		return $point;
    +	}
    +    
    +	/**
    +	 * Function: findTreeRoots
    +	 * 
    +	 * Returns all children in the given parent which do not have incoming
    +	 * edges. If the result is empty then the with the greatest difference
    +	 * between incoming and outgoing edges is returned.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - <mxCell> whose children should be checked.
    +	 * isolate - Optional boolean that specifies if edges should be ignored if
    +	 * the opposite end is not a child of the given parent cell. Default is
    +	 * false.
    +	 * invert - Optional boolean that specifies if outgoing or incoming edges
    +	 * should be counted for a tree root. If false then outgoing edges will be
    +	 * counted. Default is false.
    +	 */
    +	function findTreeRoots($parent, $isolate = false, $invert = false)
    +	{
    +		$roots = array();
    +		
    +		if ($parent != null)
    +		{
    +			$model = $this->getModel();
    +			$childCount = $model->getChildCount($parent);
    +			$maxDiff = 0;
    +			
    +			for ($i=0; $i<$childCount; $i++)
    +			{
    +				$cell = $model->getChildAt($parent, $i);
    +				
    +				if ($this->model->isVertex($cell) &&
    +					$this->isCellVisible($cell))
    +				{
    +					$edgeCount = $model->getEdgeCount($cell);
    +					$fanOut = 0;
    +					$fanIn = 0;
    +					
    +					for ($j = 0; $j < $edgeCount; $j++)
    +					{
    +						$edge = $model->getEdgeAt($cell, $j);
    +						
    +						if ($this->isCellVisible($edge))
    +						{
    +							$source = $this->view->getVisibleTerminal($edge, true);
    +							$target = $this->view->getVisibleTerminal($edge, false);
    +							
    +							if ($source !== $target)
    +							{
    +                                if ($source === $cell && (!$isolate ||
    +                                	$this->model->getParent(target) == $parent))
    +                                {
    +                                    $fanOut++;
    +                                }
    +                                else if (!$isolate ||
    +                                	$this->model->getParent(source) == $parent)
    +                                {
    +                                    $fanIn++;
    +                                }
    +							}
    +						}
    +					}
    +					
    +					if (($invert && $fanOut == 0 && $fanIn > 0) ||
    +						(!$invert && $fanIn == 0 && $fanOut > 0))
    +					{
    +						array_push($roots, $cell);
    +					}
    +					
    +					$diff = ($invert) ? $fanIn - $fanOut : $fanOut - $fanIn;
    +					
    +					if ($diff > $maxDiff)
    +					{
    +						$maxDiff = $diff;
    +						$best = $cell;
    +					}
    +				}
    +			}
    +			
    +			if (sizeof($roots) == 0 && $best != null)
    +			{
    +				array_push($roots, $best);
    +			}
    +		}
    +		
    +		return $roots;
    +	}
    +	
    +	/**
    +	 * Function: createImage
    +	 */
    +	function createImage($clip = null, $background = null)
    +	{
    +		return mxGdCanvas::drawGraph($this, $clip, $background);
    +	}
    +
    +	/**
    +	 * Function: drawGraph
    +	 * 
    +	 * Draws the given cell onto the specified canvas.
    +	 */
    +	function drawGraph($canvas)
    +	{
    +		$this->drawCell($canvas, $this->model->getRoot());
    +	}
    +	
    +	/**
    +	 * Function: paintCell
    +	 * 
    +	 * Draws the given cell onto the specified canvas.
    +	 */
    +	function drawCell($canvas, $cell)
    +	{
    +		$this->drawState($canvas, $this->view->getState($cell),
    +			$this->getLabel($cell));
    +		
    +		// Draws the children on top
    +		$childCount = $cell->getChildCount();
    +		
    +		for ($i = 0; $i < $childCount; $i++)
    +		{
    +			$child = $cell->getChildAt($i);
    +			$this->drawCell($canvas, $child);
    +		}
    +	}
    +	
    +	/**
    +	 * Function: paintState
    +	 * 
    +	 * Draws the given cell and label onto the specified canvas. No
    +	 * children or descendants are painted.
    +	 */
    +	function drawState($canvas, $state, $label)
    +	{
    +		$cell = (isset($state)) ? $state->cell : null;
    +
    +		if ($cell != null && $cell !== $this->model->getRoot() &&
    +			($this->model->isVertex($cell) || $this->model->isEdge($cell)))
    +		{
    +			$canvas->drawCell($state);
    +
    +			if ($label != null && $state->labelBounds != null)
    +			{
    +				$canvas->drawLabel($label, $state, false);
    +			}
    +		}
    +	}
    +	
    +	/**
    +	 * Function: graphModelChanged
    +	 * 
    +	 * Called when the graph model has changed.
    +	 */
    +	function graphModelChanged($event)
    +	{
    +	 	$this->view->revalidate();
    +	}
    +
    +}
    +?>
    diff --git a/php/src/view/mxGraphView.php b/php/src/view/mxGraphView.php
    new file mode 100644
    index 000000000..f70a0fd73
    --- /dev/null
    +++ b/php/src/view/mxGraphView.php
    @@ -0,0 +1,1371 @@
    +<?php
    +/**
    + * $Id: mxGraphView.php,v 1.108 2011-11-17 14:10:53 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxGraphView extends mxEventSource
    +{
    +
    +	/**
    +	 * Class: mxGraphView
    +	 *
    +	 * Implements a view for the graph. Fires scale and translate events
    +	 * if one of the values change.
    +	 * 
    +	 * This class fires the following events:
    +	 * 
    +	 * mxEvent.SCALE fires after the scale was changed in setScale. The
    +	 * <code>scale</code> and <code>previousScale</code> arguments contain the
    +	 * new and previous scale.
    +	 * 
    +	 * mxEvent.TRANSLATE fires after the translate was changed in setTranslate. The
    +	 * <code>translate</code> and <code>previousTranslate</code> arguments contain
    +	 * the new and previous value for translate.
    +	 * 
    +	 * Variable: EMPTY_POINT
    +	 * 
    +	 * An empty <mxPoint> instance.
    +	 */
    +	var $EMPTY_POINT;
    +
    +	/**
    +	 * Variable: graph
    +	 * 
    +	 * Holds the <mxGraph>.
    +	 */
    +	var $graph;
    +	
    +	/**
    +	 * Variable: graphBounds
    +	 * 
    +	 * Holds the bounds of the current view.
    +	 */
    +	var $graphBounds;
    +	
    +	/**
    +	 * Variable: scale
    +	 * 
    +	 * Holds the current scale.
    +	 */
    +	var $scale = 1;
    +	
    +	/**
    +	 * Variable: translate
    +	 * 
    +	 * Holds the current translate.
    +	 */
    +	var $translate;
    +	
    +	/**
    +	 * Variable: states
    +	 * 
    +	 * Maps from cells to states.
    +	 */
    +	var $states = array();
    +
    +	/**
    +	 * Constructor: mxGraphView
    +	 * 
    +	 * Constructs a new view for the specified <mxGraph>.
    +	 */
    +	function mxGraphView($graph)
    +	{
    +		$this->EMPTY_POINT = new mxPoint();
    +		$this->graph = $graph;
    +		$this->translate = new mxPoint();
    +		$this->graphBounds = new mxRectangle();
    +	}
    +
    +	/**
    +	 * Function: setScale
    +	 * 
    +	 * Sets the scale, revalidates the view and fires
    +	 * a scale event.
    +	 */
    +	function setScale($scale)
    +	{
    +		$previous = $this->scale;
    +		
    +		if ($this->scale != $scale)
    +		{
    +			$this->scale = $scale;
    +			$this->revalidate();
    +		}
    +			
    +		$this->fireEvent(new mxEventObject(mxEvent::$SCALE, "scale", $scale, "previousScale", $previous));
    +	}
    +
    +	/**
    +	 * Function: setTranslate
    +	 * 
    +	 * Sets the translation, revalidates the view and
    +	 * fires a translate event.
    +	 */
    +	function setTranslate($translate)
    +	{
    +		$previous = $this->translate;
    +		
    +		if ($this->translate->x != $translate->x ||
    +			$this->translate->y != $translate->y)
    +		{
    +			$this->translate = $translate;
    +			$this->revalidate();
    +		}
    +			
    +		$this->fireEvent(new mxEventObject(mxEvent::$TRANSLATE, "translate", $translate, "previousTranslate", $previous));
    +	}
    +
    +	/**
    +	 * Function: getGraphBounds
    +	 * 
    +	 * Returns <graphBounds>.
    +	 */
    +    function getGraphBounds()
    +    {
    +    	return $this->graphBounds;
    +    }
    +
    +	/**
    +	 * Function: setGraphBounds
    +	 * 
    +	 * Sets <graphBounds>.
    +	 */
    +    function setGraphBounds($value)
    +    {
    +    	$this->graphBounds = $value;
    +    }
    +
    +    /**
    +     * Function: getBoundingBox
    +     * 
    +     * Returns the bounding for for an array of cells or null, if no cells are
    +     * specified.
    +     */
    +    function getBoundingBox($cells)
    +    {
    +    	return $this->getBounds($cells, true);
    +    }
    +
    +	/**
    +	 * Function: getBounds
    +	 * 
    +	 * Returns the bounding for for an array of cells or null, if no cells are
    +	 * specified.
    +	 */
    +    function getBounds($cells, $boundingBox = false)
    +    {
    +    	$cellCount = sizeof($cells);
    +    	$result = null;
    +    	
    +        if ($cellCount > 0)
    +        {
    +        	$model = $this->graph->getModel();
    +        
    +			for ($i = 0; $i < $cellCount; $i++)
    +			{
    +				if ($model->isVertex($cells[$i]) || $model->isEdge($cells[$i]))
    +				{
    +	            	$state = $this->getState($cells[$i]);
    +	
    +		            if ($state != null)
    +		            {
    +		            	$bounds = ($boundingBox) ? $state->boundingBox : $state;
    +		            	
    +		            	if ($bounds != null)
    +		            	{
    +			            	if ($result == null)
    +			            	{
    +			            		$result = new mxRectangle($bounds->x, $bounds->y,
    +			            			$bounds->width, $bounds->height);
    +			            	}
    +							else
    +			                {
    +			                	$result->add($bounds);
    +			                }
    +		            	}
    +		            }
    +		    	}
    +			}
    +        }
    +
    +        return $result;
    +    }
    +
    +	/**
    +	 * Function: invalidate
    +	 */
    +	function revalidate()
    +	{
    +		$this->invalidate();
    +		$this->validate();
    +	}
    +
    +	/**
    +	 * Function: invalidate
    +	 * 
    +	 * Invalidates the cached cell states.
    +	 */
    +	function invalidate()
    +	{
    +		// LATER: Invalidate cell states recursively
    +		$this->states = array();
    +	}
    +
    +	/**
    +	 * Function: validate
    +	 * 
    +	 * Calls <validateBounds> followed by <validatePoints> on
    +	 * the root cell if the cache is invalid.
    +	 */
    +	function validate($cell = null)
    +	{
    +	 	if ($cell == null)
    +	 	{
    +	 		$cell = $this->graph->model->root;
    +	 	}
    +	 	
    +	 	// Checks if cache is invalid
    +	 	if ($cell != null && sizeof($this->states) == 0)
    +	 	{
    +		 	$this->validateBounds(null, $cell);
    +		 	$bounds = $this->validatePoints(null, $cell);
    +		 	
    +		 	if (!isset($bounds))
    +		 	{
    +		 		$bounds = new mxRectangle();
    +		 	}
    +		 	
    +		 	$this->setGraphBounds($bounds);
    +		}
    +	}
    +
    +	/**
    +	 * Function: validateBounds
    +	 * 
    +	 * Validates the bounds of the cell state for the specified cell
    +	 * recursively, for all children if the cell is not collapsed.
    +	 */
    +	function validateBounds($parentState, $cell)
    +	{
    +		$model = $this->graph->getModel();
    +	 	$state = $this->getState($cell, true);
    +	 	
    +	 	if ($state != null)
    +	 	{
    +	 		if (!$this->graph->isCellVisible($cell))
    +	 		{
    +	 			$this->removeState($cell);
    +	 		}
    +	 		else if ($parentState != null)
    +	 		{
    +				$state->absoluteOffset->x = 0;
    +				$state->absoluteOffset->y = 0;
    +	 			$state->origin->x = $parentState->origin->x;
    +	 			$state->origin->y = $parentState->origin->y;
    +	 			$geo = $this->graph->getCellGeometry($cell);
    +	 			
    +	 			if ($geo != null)
    +	 			{
    +		 			if (!$model->isEdge($cell))
    +		 			{
    +		 				$origin = $state->origin;
    +		 				$offset = $geo->offset;
    +		 				
    +		 				if ($offset == null)
    +		 				{
    +		 					$offset = $this->EMPTY_POINT;
    +		 				}
    +		 				
    +		 				if ($geo->relative)
    +		 				{
    +		 					$origin->x += $geo->x * $parentState->width /
    +		 						$this->scale+ $offset->x;
    +		 					$origin->y += $geo->y * $parentState->height /
    +		 						$this->scale + $offset->y;
    +		 				}
    +		 				else
    +		 				{
    +		 					$state->absoluteOffset = new mxPoint(
    +		 						$this->scale * $offset->x,
    +		 						$this->scale * $offset->y);
    +			 				$origin->x += $geo->x;
    +			 				$origin->y += $geo->y;
    +			 			}
    +		 			}
    +	
    +		            // Updates the cell state's bounds
    +			 		$trl = $this->translate;
    +			 		$state->x = $this->scale * ($trl->x + $state->origin->x);
    +			 		$state->y = $this->scale * ($trl->y + $state->origin->y);
    +			 		$state->width = $this->scale * $geo->width;
    +			 		$state->height = $this->scale * $geo->height;
    +			 		
    +			 		if ($model->isVertex($cell))
    +			 		{
    +			 			$this->updateVertexLabelOffset($state);
    +			 		}
    +		 		}
    +	 		}
    +
    + 			// Applies Offset
    + 			$offset = $this->graph->getChildOffsetForCell($cell);
    + 			
    + 			if ($offset != null)
    + 			{
    + 				$state->origin->x += $offset->x;
    + 				$state->origin->y += $offset->y;
    + 			}
    +	 	}
    +	 	
    +	 	if ($state != null && !$this->graph->isCellCollapsed($cell))
    +	 	{
    +	 		$childCount = $model->getChildCount($cell);
    +	 		
    +	 		for ($i = 0; $i < $childCount; $i++)
    +	 		{
    +	 			$this->validateBounds($state, $model->getChildAt($cell, $i));
    +	 		}
    +	 	}
    +	}
    +	
    +	/**
    +	 * Function: updateVertexLabelOffset
    +	 * 
    +	 * Updates the absoluteOffset of the given vertex cell state. This takes
    +	 * into account the label position styles.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * state - <mxCellState> whose absolute offset should be updated.
    +	 */
    +	function updateVertexLabelOffset($state)
    +	{
    +		$horizontal = mxUtils::getValue($state->style,
    +				mxConstants::$STYLE_LABEL_POSITION,
    +				mxConstants::$ALIGN_CENTER);
    +		
    +		if ($horizontal == mxConstants::$ALIGN_LEFT)
    +		{
    +			$state->absoluteOffset->x -= $state->width;
    +		}
    +		else if ($horizontal == mxConstants::$ALIGN_RIGHT)
    +		{
    +			$state->absoluteOffset->x += $state->width;
    +		}
    +		
    +		$vertical = mxUtils::getValue($state->style,
    +				mxConstants::$STYLE_VERTICAL_LABEL_POSITION,
    +				mxConstants::$ALIGN_MIDDLE);
    +		
    +		if ($vertical == mxConstants::$ALIGN_TOP)
    +		{
    +			$state->absoluteOffset->y -= $state->height;
    +		}
    +		else if ($vertical == mxConstants::$ALIGN_BOTTOM)
    +		{
    +			$state->absoluteOffset->y += $state->height;
    +		}
    +	}
    +
    +	/**
    +	 * Function: validatePoints
    +	 * 
    +	 * Validates the points of the cell state for the specified cell
    +	 * recursively, for all children if the cell is not collapsed.
    +	 */
    +	function validatePoints($parentState, $cell)
    +	{
    +	 	$model = $this->graph->model;
    +		$state = $this->getState($cell);
    +		$bbox = null;
    +	 	
    +	 	if (isset($state))
    +	 	{
    +			$geo = $this->graph->getCellGeometry($cell);
    +	 	
    +	 		if (isset($geo) && $model->isEdge($cell))
    +	 		{
    +				// Updates the points on the source terminal if its an edge
    +	 			$source = $this->getState($this->getVisibleTerminal($cell, true));
    +
    +	 			if (isset($source) && $model->isEdge($source->cell) &&
    +	 				!$model->isAncestor($source, $cell))
    +	 			{
    +					$tmp = $this->getState($model->getParent($source->cell));
    +					$this->validatePoints($tmp, $source->cell);
    +	 			}
    +
    +				// Updates the points on the target terminal if its an edge
    +	 			$target = $this->getState($this->getVisibleTerminal($cell, false));
    +	 			
    +	 			if (isset($target) && $model->isEdge($target->cell) &&
    +	 				!$model->isAncestor($target, $cell))
    +	 			{
    +					$tmp = $this->getState($model->getParent($target->cell));
    +					$this->validatePoints($tmp, $target->cell);
    +	 			}
    +
    +	 			$this->updateFixedTerminalPoints($state, $source, $target);
    +	 			$this->updatePoints($state, $geo->points, $source, $target);
    +	 			$this->updateFloatingTerminalPoints($state, $source, $target);
    +	 			$this->updateEdgeBounds($state);
    +	 			$state->absoluteOffset = $this->getPoint($state, $geo);
    +	 		}
    +	 		else if ($geo != null && $geo->relative && $parentState != null &&
    +	 			$model->isEdge($parentState->cell))
    +	 		{
    +	 			$origin = $this->getPoint($parentState, $geo);
    +	 			
    +	 			if (isset($origin))
    +	 			{
    +					$state->x = $origin->x;
    +	 				$state->y = $origin->y;
    +	 				
    +					$origin->x = ($origin->x / $this->scale) - $this->translate->x;
    +					$origin->y = ($origin->y / $this->scale) - $this->translate->y;
    +		 			$state->origin = $origin;
    +		 			
    +		 			$this->childMoved($parentState, $state);
    +				 }
    +	 		}
    +	 		
    +		 	if ($model->isEdge($cell) || $model->isVertex($cell))
    +		 	{
    +		 		$this->updateLabelBounds($state);
    +		 		$bbox = $this->updateBoundingBox($state)->copy();
    +		 	}
    +	 	}
    +	 	
    +	 	if (isset($state) && !$this->graph->isCellCollapsed($cell))
    +	 	{
    +	 		$childCount = $cell->getChildCount();
    +	 		
    +	 		for ($i = 0; $i < $childCount; $i++)
    +	 		{
    +	 			$child = $cell->getChildAt($i);
    +	 			$bounds = $this->validatePoints($state, $child);
    +	 			
    +				if (isset($bounds))
    +				{
    +					if (!isset($bbox))
    +					{
    +						$bbox = $bounds;
    +					}
    +					else
    +					{
    +						$bbox->add($bounds);
    +					}
    +				}
    +	 		}
    +		}
    +		
    +		return $bbox;
    +	}
    +
    +	/**
    +	 * Function: childMoved
    +	 *
    +	 * Invoked when a child state was moved as a result of late evaluation
    +	 * of its position. This is invoked for relative edge children whose
    +	 * position can only be determined after the points of the parent edge
    +	 * are updated in validatePoints, and validates the bounds of all
    +	 * descendants of the child using validateBounds.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * parent - <mxCellState> that represents the parent state.
    +	 * child - <mxCellState> that represents the child state.
    +	 */
    +    function childMoved($parent, $child)
    +    {
    +        $cell = $child->cell;
    +		
    +		// Children of relative edge children need to validate
    +		// their bounds after their parent state was updated
    +		if (!$this->graph->isCellCollapsed($cell))
    +		{
    +			$model = $this->graph->getModel();
    +			$childCount = $model->getChildCount($cell);
    +
    +			for ($i = 0; $i < $childCount; $i++)
    +			{
    +				$this->validateBounds($child, $model->getChildAt($cell, $i));
    +			}
    +		}
    +    }
    +
    +	/**
    +	 * Function: updateBoundingBox
    +	 * 
    +	 * Updates the label bounds in the given state.
    +	 */
    +    function updateLabelBounds($state)
    +    {
    +        $cell = $state->cell;
    +        $style = $state->style;
    +        
    +        if (mxUtils::getValue($style, mxConstants::$STYLE_OVERFLOW) == "fill")
    +		{
    +			$state->labelBounds = new mxRectangle($state->x, $state->y, $state->width, $state->height);
    +		}
    +		else
    +		{
    +	        $label = $this->graph->getLabel($cell);
    +    	    $vertexBounds = (!$this->graph->model->isEdge($cell)) ? $state : null;
    +        	$state->labelBounds = mxUtils::getLabelPaintBounds($label, $style,
    +        		false, $state->absoluteOffset, $vertexBounds, $this->scale);
    +		}
    +    }
    +
    +	/**
    +	 * Function: updateBoundingBox
    +	 * 
    +	 * Updates the bounding box in the given cell state.
    +	 */
    +	function updateBoundingBox($state)
    +	{
    +        // Gets the cell bounds and adds shadows and markers
    +        $rect = new mxRectangle($state->x, $state->y, $state->width, $state->height);
    +        $style = $state->style;
    +
    +        // Adds extra pixels for the marker and stroke assuming
    +        // that the border stroke is centered around the bounds
    +        // and the first pixel is drawn inside the bounds
    +        $strokeWidth = max(1, mxUtils::getNumber($style,
    +            mxConstants::$STYLE_STROKEWIDTH, 1) * $this->scale);
    +        $strokeWidth -= max(1, $strokeWidth / 2);
    +
    +        if ($this->graph->model->isEdge($state->cell))
    +        {
    +			$ms = 0;
    +
    +            if (isset($style[mxConstants::$STYLE_ENDARROW])
    +                    || isset($style[mxConstants::$STYLE_STARTARROW]))
    +            {
    +                $ms = round(mxConstants::$DEFAULT_MARKERSIZE * $this->scale);
    +            }
    +
    +            // Adds the strokewidth
    +           	$rect->grow($ms + $strokeWidth);
    +
    +            // Adds worst case border for an arrow shape
    +            if (mxUtils::getValue($style, mxConstants::$STYLE_SHAPE) ==
    +                    mxConstants::$SHAPE_ARROW)
    +            {
    +                $rect->grow(mxConstants::$ARROW_WIDTH / 2);
    +            }
    +        }
    +        else
    +        {
    +        	$rect->grow($strokeWidth);
    +        }
    +
    +        // Adds extra pixels for the shadow
    +        if (mxUtils::getValue($style, mxConstants::$STYLE_SHADOW, false) == true)
    +        {
    +            $rect->width += mxConstants::$SHADOW_OFFSETX;
    +            $rect->height += mxConstants::$SHADOW_OFFSETY;
    +        }
    +
    +        // Adds oversize images in labels
    +        if (mxUtils::getValue($style, mxConstants::$STYLE_SHAPE) ==
    +        	mxConstants::$SHAPE_LABEL)
    +        {
    +            if (mxUtils::getValue($style, mxConstants::$STYLE_IMAGE) != null)
    +            {
    +                $w = mxUtils::$getValue($style,
    +                        mxConstants::$STYLE_IMAGE_WIDTH,
    +                        mxConstants::$DEFAULT_IMAGESIZE) * $this->scale;
    +                $h = mxUtils::$getValue($style,
    +                        mxConstants::$STYLE_IMAGE_HEIGHT,
    +                        mxConstants::$DEFAULT_IMAGESIZE) * $this->scale;
    +
    +                $x = $state->x;
    +                $y = 0;
    +
    +                $imgAlign = mxUtils::getValue($style, mxConstants::$STYLE_IMAGE_ALIGN,
    +                                mxConstants::$ALIGN_CENTER);
    +                $imgValign = mxUtils::getValue(style,
    +                        mxConstants::$STYLE_IMAGE_VERTICAL_ALIGN,
    +                        mxConstants::$ALIGN_MIDDLE);
    +
    +                if ($imgAlign == mxConstants::$ALIGN_RIGHT)
    +                {
    +                    $x += $state->width - $w;
    +                }
    +                else if ($imgAlign == mxConstants::$ALIGN_CENTER)
    +                {
    +                    $x += ($state->width - $w) / 2;
    +                }
    +
    +                if ($imgValign == mxConstants::$ALIGN_TOP)
    +                {
    +                    $y = $state->y;
    +                }
    +                else if ($imgValign == mxConstants::$ALIGN_BOTTOM)
    +                {
    +                    $y = $state->y + $state->height - $h;
    +                }
    +                else
    +                {
    +                    $y = $state->y + ($state->height - $h) / 2;
    +                }
    +
    +                $rect->add(new mxRectangle($x, $y, $w, $h));
    +            }
    +        }
    +        
    +        // No need to add rotated rectangle bounds here because
    +        // GD does not support rotation
    +
    +        // Unifies the cell bounds and the label bounds
    +		$rect->add($state->labelBounds);
    +        $state->boundingBox = $rect;
    +
    +        return $rect;
    +    }
    +
    +	/**
    +	 * Function: updateFixedTerminalPoints
    +	 *
    +	 * Sets the initial absolute terminal points in the given state before the edge
    +	 * style is computed.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCellState> whose initial terminal points should be updated.
    +	 * source - <mxCellState> which represents the source terminal.
    +	 * target - <mxCellState> which represents the target terminal.
    +	 */
    +	function updateFixedTerminalPoints($edge, $source, $target)
    +	{
    +		$this->updateFixedTerminalPoint($edge, $source, true,
    +			$this->graph->getConnectionConstraint($edge, $source, true));
    +		$this->updateFixedTerminalPoint($edge, $target, false,
    +			$this->graph->getConnectionConstraint($edge, $target, false));
    +	}
    +
    +	/**
    +	 * Function: updateFixedTerminalPoint
    +	 *
    +	 * Sets the fixed source or target terminal point on the given edge.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCellState> whose terminal point should be updated.
    +	 * terminal - <mxCellState> which represents the actual terminal.
    +	 * source - Boolean that specifies if the terminal is the source.
    +	 * constraint - <mxConnectionConstraint> that specifies the connection.
    +	 */
    +	function updateFixedTerminalPoint($edge, $terminal, $source, $constraint)
    +	{
    +		$pt = null;
    +		
    +		if (isset($constraint))
    +		{
    +			$pt = $this->graph->getConnectionPoint($terminal, $constraint);
    +		}
    +		
    +		if (!isset($pt) && !isset($terminal))
    +		{
    +			$s = $this->scale;
    +			$tr = $this->translate;
    +			$orig = $edge->origin;
    +			$geo = $this->graph->getCellGeometry($edge->cell);
    +			$pt = $geo->getTerminalPoint($source);
    +			
    +			if (isset($pt))
    +			{
    +				$pt = new mxPoint($s * ($tr->x + $pt->x + $orig->x),
    +					$s * ($tr->y + $pt->y + $orig->y));
    +			}
    +		}
    +
    +		if (!is_array($edge->absolutePoints))
    +		{
    +			$edge->absolutePoints = array();
    +		}
    +
    +		$n = sizeof($edge->absolutePoints);
    +		
    +		if ($source)
    +		{
    +			if ($n > 0)
    +			{
    +				$state->absolutePoints[0] = $pt;
    +			}
    +			else
    +			{
    +				array_push($edge->absolutePoints, $pt);
    +			}
    +		}
    +		else
    +		{
    +			$n = sizeof($edge->absolutePoints);
    +			
    +			if ($n > 1)
    +			{
    +				$edge->absolutePoints[$n - 1] = $pt;
    +			}
    +			else
    +			{
    +				array_push($edge->absolutePoints, $pt);
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Function: updatePoints
    +	 *
    +	 * Updates the absolute points in the given state using the specified array
    +	 * of <mxPoints> as the relative points.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCellState> whose absolute points should be updated.
    +	 * points - Array of <mxPoints> that constitute the relative points.
    +	 * source - <mxCellState> that represents the source terminal.
    +	 * target - <mxCellState> that represents the target terminal.
    +	 */
    +	function updatePoints($edge, $points, $source, $target)
    +	{
    +		if (isset($edge))
    +		{
    +			$pts = array();
    +			array_push($pts, $edge->absolutePoints[0]);
    +			$edgeStyle = $this->getEdgeStyle($edge, $points, $source, $target);
    +
    +			if (isset($edgeStyle))
    +			{
    +				$src = $this->getTerminalPort($edge, $source, true);
    +				$trg = $this->getTerminalPort($edge, $target, false);
    +
    +				$edgeStyle->apply($edge, $src, $trg, $points, $pts);
    +			}
    +			else if (isset($points))
    +			{
    +				for ($i = 0; $i < sizeof($points); $i++)
    +				{
    +					if (isset($points[$i]))
    +					{
    +						$pt = $points[$i]->copy();
    +						array_push($pts, $this->transformControlPoint($edge, $pt));
    +					}
    +				}
    +			}
    +			
    +			$n = sizeof($edge->absolutePoints);
    +			array_push($pts, $edge->absolutePoints[$n-1]);
    +
    +			$edge->absolutePoints = $pts;
    +		}
    +	}
    +	
    +	/**
    +	 * Function: transformControlPoint
    +	 *
    +	 * Transforms the given control point to an absolute point.
    +	 */
    +    function transformControlPoint($state, $pt)
    +    {
    +    	$orig = $state->origin;
    +    
    +        return new mxPoint($this->scale * ($pt->x + $this->translate->x + $orig->x),
    +        	$this->scale * ($pt->y + $this->translate->y + $orig->y));
    +    }
    +    
    +	/**
    +	 * Function: getEdgeStyle
    +	 *
    +	 * Returns the edge style function to be used to render the given edge
    +	 * state.
    +	 */
    +	function getEdgeStyle($edge, $points, $source, $target)
    +	{
    +		$edgeStyle = null;
    +		
    +		if (isset($source) && $source === $target)
    +		{
    +			$edgeStyle = mxUtils::getValue($edge->style, mxConstants::$STYLE_LOOP);
    +			
    +			if (!isset($edgeStyle))
    +			{
    +				$edgeStyle = $this->graph->defaultLoopStyle;
    +			}
    +		}
    +		else if (!mxUtils::getValue($edge->style, mxConstants::$STYLE_NOEDGESTYLE, false))
    +		{
    +			$edgeStyle = mxUtils::getValue($edge->style, mxConstants::$STYLE_EDGE);
    +		}
    +		
    +		// Converts string values to objects
    +		if (is_string($edgeStyle))
    +		{
    +			$tmp = mxStyleRegistry::getValue($edgeStyle);
    +			
    +			if ($tmp == null && strpos($edgeStyle, ".") !== false)
    +			{
    +				$tmp = mxUtils::evaluate($edgeStyle);
    +			}
    +			
    +			$edgeStyle = $tmp;
    +		}
    +		
    +		if ($edgeStyle instanceof mxEdgeStyleFunction)
    +		{
    +			return $edgeStyle;
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: updateFloatingTerminalPoints
    +	 *
    +	 * Updates the terminal points in the given state after the edge style was
    +	 * computed for the edge.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * state - <mxCellState> whose terminal points should be updated.
    +	 * source - <mxCellState> that represents the source terminal.
    +	 * target - <mxCellState> that represents the target terminal.
    +	 */
    +	function updateFloatingTerminalPoints($state, $source, $target)
    +	{
    +		$pts = $state->absolutePoints;
    +		$p0 = $pts[0];
    +		$pe = $pts[sizeof($pts) - 1];
    +		
    +		if (!isset($pe) && isset($target))
    +		{
    +			$this->updateFloatingTerminalPoint($state, $target, $source, false);
    +		}
    +		
    +		if (!isset($p0) && isset($source))
    +		{
    +			$this->updateFloatingTerminalPoint($state, $source, $target, true);
    +		}
    +	}
    +
    +	/**
    +	 * Function: updateFloatingTerminalPoint
    +	 *
    +	 * Updates the absolute terminal point in the given state for the given
    +	 * start and end state, where start is the source if source is true.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCellState> whose terminal point should be updated.
    +	 * start - <mxCellState> for the terminal on "this" side of the edge.
    +	 * end - <mxCellState> for the terminal on the other side of the edge.
    +	 * source - Boolean indicating if start is the source terminal state.
    +	 */
    +	function updateFloatingTerminalPoint($edge, $start, $end, $source)
    +	{
    +		$start = $this->getTerminalPort($edge, $start, $source);
    +		$next = $this->getNextPoint($edge, $end, $source);
    +		$border = mxUtils::getNumber($edge->style, mxConstants::$STYLE_PERIMETER_SPACING);
    +		$border = mxUtils::getNumber($edge->style, ($source) ?
    +			mxConstants::$STYLE_SOURCE_PERIMETER_SPACING :
    +			mxConstants::$STYLE_TARGET_PERIMETER_SPACING);
    +		$pt = $this->getPerimeterPoint($start, $next, $this->graph->isOrthogonal($edge), $border);
    +	 	$index = ($source) ? 0 : sizeof($edge->absolutePoints) - 1;
    +	 	$edge->absolutePoints[$index] = $pt;
    +	}
    +
    +	/**
    +	 * Function: getTerminalPort
    +	 * 
    +	 * Returns an <mxCellState> that represents the source or target terminal or
    +	 * port for the given edge.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * state - <mxCellState> that represents the state of the edge.
    +	 * terminal - <mxCellState> that represents the terminal.
    +	 * source - Boolean indicating if the given terminal is the source terminal.
    +	 */
    +	function getTerminalPort($state, $terminal, $source)
    +	{
    +		$key = ($source) ? mxConstants::$STYLE_SOURCE_PORT
    +				: mxConstants::$STYLE_TARGET_PORT;
    +		$id = mxUtils::getValue($state->style, $key);
    +
    +		if ($id != null)
    +		{
    +			$tmp = $this->getState($this->graph->model->getCell($id));
    +
    +			// Only uses ports where a cell state exists
    +			if (isset($tmp))
    +			{
    +				$terminal = $tmp;
    +			}
    +		}
    +		
    +		return $terminal;
    +	}
    +	
    +	/**
    +	 * Function: getPerimeterPoint
    +	 *
    +	 * Returns an <mxPoint> that defines the location of the intersection point between
    +	 * the perimeter and the line between the center of the shape and the given point.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * terminal - <mxCellState> for the source or target terminal.
    +	 * next - <mxPoint> that lies outside of the given terminal.
    +	 * orthogonal - Boolean that specifies if the orthogonal projection onto
    +	 * the perimeter should be returned. If this is false then the intersection
    +	 * of the perimeter and the line between the next and the center point is
    +	 * returned.
    +	 * border - Optional border between the perimeter and the shape.
    +	 */
    +	function getPerimeterPoint($terminal, $next, $orthogonal, $border = null)
    +	{
    +		$point = null;
    +		
    +		if ($terminal != null)
    +		{
    +			$perimeter = $this->getPerimeterFunction($terminal);
    +			
    +			if (isset($perimeter) && isset($next))
    +			{
    +				$bounds = $this->getPerimeterBounds($terminal, $border);
    +				
    +				if ($bounds->width > 0 || $bounds->height > 0)
    +				{
    +					$point = $perimeter->apply($bounds,	$terminal, $next, $orthogonal);
    +				}
    +			}
    +			
    +			if (!isset($point))
    +			{
    +				$point = $this->getPoint($terminal);
    +			}
    +		}
    +
    +	 	return $point;
    +	}
    +		
    +	/**
    +	 * Function: getRoutingCenterX
    +	 * 
    +	 * Returns the x-coordinate of the center point for automatic routing.
    +	 */
    +	function getRoutingCenterX($state)
    +	{
    +		$f = ($state->style != null) ? mxUtils::getNumber($state->style,
    +			mxConstants::$STYLE_ROUTING_CENTER_X) : 0;
    +	
    +		return $state->getCenterX() + $f * $state->width;
    +	}
    +	
    +	/**
    +	 * Function: getRoutingCenterY
    +	 * 
    +	 * Returns the y-coordinate of the center point for automatic routing.
    +	 */
    +	function getRoutingCenterY($state)
    +	{
    +		$f = ($state->style != null) ? mxUtils::getNumber($state->style,
    +			mxConstants::$STYLE_ROUTING_CENTER_Y) : 0;
    +	
    +		return $state->getCenterY() + $f * $state->height;
    +	}
    +
    +	/**
    +	 * Function: getPerimeterBounds
    +	 *
    +	 * Returns the perimeter bounds for the given terminal, edge pair as an
    +	 * <mxRectangle>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * terminal - <mxCellState> that represents the terminal.
    +	 * border - Number that adds a border between the shape and the perimeter.
    +	 */
    +	function getPerimeterBounds($terminal, $border = 0)
    +	{
    +		if ($terminal != null)
    +		{
    +			$border += mxUtils::getNumber($terminal->style, mxConstants::$STYLE_PERIMETER_SPACING);
    +		}
    +
    +		return $terminal->getPerimeterBounds($border * $this->scale);
    +	}
    +
    +	/**
    +	 * Function: getPerimeterFunction
    +	 * 
    +	 * Returns the perimeter function for the given state.
    +	 */
    +	function getPerimeterFunction($state)
    +	{
    +		$perimeter = mxUtils::getValue($state->style, mxConstants::$STYLE_PERIMETER);
    +		
    +		// Converts string values to objects
    +		if (is_string($perimeter))
    +		{
    +			$tmp = mxStyleRegistry::getValue($perimeter);
    +			
    +			if ($tmp == null && strpos($perimeter, ".") !== false)
    +			{
    +				$tmp = mxUtils::evaluate($perimeter);
    +			}
    +			
    +			$perimeter = $tmp;
    +		}
    +		
    +		if ($perimeter instanceof mxPerimeterFunction)
    +		{
    +			return $perimeter;
    +		}
    +		
    +		return null;
    +	}
    +
    +	/**
    +	 * Function: getNextPoint
    +	 *
    +	 * Returns the nearest point in the list of absolute points or the center
    +	 * of the opposite terminal.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCellState> that represents the edge.
    +	 * opposite - <mxCellState> that represents the opposite terminal.
    +	 * source - Boolean indicating if the next point for the source or target
    +	 * should be returned.
    +	 */
    +	function getNextPoint($edge, $opposite, $source)
    +	{
    +		$pts = $edge->absolutePoints;
    +		$point = null;
    +		
    +		if ($pts != null && ($source || sizeof($pts) > 2 || !isset($opposite)))
    +		{
    +			$count = sizeof($pts);
    +			$index = ($source) ? min(1, $count - 1) : max(0, $count - 2);
    +			$point = $pts[$index];
    +		}
    +		
    +		if (!isset($point) && isset($opposite))
    +		{
    +			$point = new mxPoint($opposite->getCenterX(), $opposite->getCenterY());
    +		}
    +
    +	 	return $point;
    +	}
    +
    +	/**
    +	 * Function: getVisibleTerminal
    +	 *
    +	 * Returns the nearest ancestor terminal that is visible. The edge appears
    +	 * to be connected to this terminal on the display.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * edge - <mxCell> whose visible terminal should be returned.
    +	 * source - Boolean that specifies if the source or target terminal
    +	 * should be returned.
    +	 */
    +	function getVisibleTerminal($edge, $source)
    +	{
    +	 	$model = $this->graph->model;
    +	 	$result = $model->getTerminal($edge, $source);
    +	 	$best = $result;
    +	 	
    +	 	while ($result != null)
    +	 	{
    +	 		if (!$this->graph->isCellVisible($best)||
    +	 			$this->graph->isCellCollapsed($result))
    +	 		{
    +	 			$best = $result;
    +	 		}
    +	 		
    +	 		$result = $model->getParent($result);
    +	 	}
    +
    +		// Checks if the result is not a layer
    +		if ($model->getParent($best) === $model->getRoot())
    +		{
    +			$best = null;
    +		}
    +		
    +	 	return $best;
    +	}
    +
    +	/**
    +	 * Function: updateEdgeBounds
    +	 * 
    +	 * Updates the bounds of the specified state based on the
    +	 * absolute points in the state.
    +	 */
    +	function updateEdgeBounds($state)
    +	{
    +	 	$points = $state->absolutePoints;
    +
    +	 	if ($points != null && sizeof($points) > 0)
    +	 	{
    +	 		$p0 = $points[0];
    +	 		$n = sizeof($points);
    +	 		$pe = $points[$n-1];
    +	 		
    +	 		if ($p0 == null ||
    +	 			$pe == null)
    +	 		{
    +	 			$this->removeState($state->cell);
    +	 		}
    +	 		else
    +	 		{
    +		 		if ($p0->x != $pe->x ||
    +		 			$p0->y != $pe->y)
    +		 		{
    +		 			$dx = $pe->x - $p0->x;
    +		 			$dy = $pe->y - $p0->y;
    +		 			$state->terminalDistance = sqrt($dx*$dx+$dy*$dy);
    +		 		}
    +		 		else
    +		 		{
    +		 			$state->terminalDistance = 0;
    +		 		}
    +		 		
    +		 		$length = 0;
    +				$segments = array();
    +		 		$pt = $p0;
    +		 		
    +		 		if ($pt != null)
    +		 		{
    +		 			$minX = $pt->x;
    +		 			$minY = $pt->y;
    +		 			$maxX = $minX;
    +		 			$maxY = $minY;
    +		 			
    +		 			for ($i=1; $i<$n; $i++)
    +		 			{
    +		 				$tmp = $points[$i];
    +		 				if ($tmp != null)
    +		 				{
    +		 					$dx = $pt->x - $tmp->x;
    +		 					$dy = $pt->y - $tmp->y;
    +	
    +							$segment = sqrt($dx*$dx+$dy*$dy);
    +							array_push($segments, $segment);
    +		 					$length += $segment;
    +		 					$pt = $tmp;
    +	
    +		 					$minX = min($pt->x, $minX);
    +		 					$minY = min($pt->y, $minY);
    +		 					$maxX = max($pt->x, $maxX);
    +		 					$maxY = max($pt->y, $maxY);
    +		 				}
    +		 			}
    +		 			
    +		 			$state->length = $length;
    +		 			$state->segments = $segments;
    +		 			
    +		 			$state->x = $minX;
    +		 			$state->y = $minY;
    +		 			$state->width = $maxX - $minX;
    +		 			$state->height = $maxY - $minY;
    +		 		}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Function: getPoint
    +	 *
    +	 * Returns the absolute point on the edge for the given relative
    +	 * <mxGeometry> as an <mxPoint>. The edge is represented by the given
    +	 * <mxCellState>.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * state - <mxCellState> that represents the state of the parent edge.
    +	 * geometry - <mxGeometry> that represents the relative location.
    +	 */
    +	function getPoint($state, $geometry = null)
    +	{
    +        $x = $state->getCenterX();
    +        $y = $state->getCenterY();
    +
    +        if (isset($state->segments) && (!isset($geometry) || $geometry->relative))
    +        {
    +            $gx = (isset($geometry)) ? $geometry->x / 2 : 0;
    +            $pointCount = sizeof($state->absolutePoints);
    +            $dist = ($gx + 0.5) * $state->length;
    +            $segments = $state->segments;
    +            $segment = $segments[0];
    +            $length = 0;
    +            $index = 1;
    +
    +            while ($dist > $length + $segment && $index < $pointCount - 1)
    +            {
    +                $length += $segment;
    +                $segment = $segments[$index++];
    +            }
    +
    +			$factor = ($segment == 0) ? 0 : ($dist - $length) / $segment;
    +			$p0 = $state->absolutePoints[$index - 1];
    +			$pe = $state->absolutePoints[$index];
    +
    +			if ($p0 != null && $pe != null)
    +			{
    +				$gy = 0;
    +				$offsetX = 0;
    +				$offsetY = 0;
    +
    +				if (isset($geometry))
    +				{
    +					$gy = $geometry->y;
    +					$offset = $geometry->offset;
    +
    +					if (isset($offset))
    +					{
    +						$offsetX = $offset->x;
    +						$offsetY = $offset->y;
    +					}
    +				}
    +
    +				$dx = $pe->x - $p0->x;
    +				$dy = $pe->y - $p0->y;
    +				$nx = ($segment == 0) ? 0 : $dy / $segment;
    +				$ny = ($segment == 0) ? 0 : $dx / $segment;
    +
    +				$x = $p0->x + $dx * $factor + ($nx * $gy + $offsetX) * $this->scale;
    +				$y = $p0->y + $dy * $factor - ($ny * $gy - $offsetY) * $this->scale;
    +            }
    +        }
    +        else if (isset($geometry))
    +        {
    +            $offset = $geometry->offset;
    +
    +            if (isset($offset))
    +            {
    +                $x += $offset->x;
    +                $y += $offset->y;
    +            }
    +        }
    +
    +        return new mxPoint($x, $y);
    +	}
    +
    +	/**
    +	 * Function: getState
    +	 * 
    +	 * Returns the cell state for the specified cell. If
    +	 * create is true then the state is created and added
    +	 * to the cache if it does not yet exist.
    +	 */
    +	function getState($cell, $create = false)
    +	{
    +	 	$state = null;
    +	 	
    +	 	if ($cell != null)
    +	 	{
    +	 		$id = $this->getHashCode($cell);
    +		 	$state = (isset($this->states[$id])) ?
    +		 		$this->states[$id] : null;
    +		 	
    +		 	if ($state == null && $create &&
    +		 		$this->graph->isCellVisible($cell))
    +		 	{
    +				$state = $this->createState($cell);
    +				$this->states[$id] = $state;
    +		 	}
    +		}
    +
    +	 	return $state;
    +	}
    +	
    +	/**
    +	 * Function: getHashCode
    +	 *
    +	 * Returns a unique string that represents the given instance.
    +	 */
    +	function getHashCode($cell)
    +	{
    +	 	// PHP >= 5.2
    +		if (function_exists("spl_object_hash"))
    +		{
    +			return spl_object_hash($cell);
    +		}
    +		else
    +		{
    +			return (string) $cell;
    +		}
    +	}
    +				
    +	/**
    +	 * Function: getStates
    +	 *
    +	 * Returns the <mxCellStates> for the given array of <mxCells>. The array
    +	 * contains all states that are not null, that is, the returned array may
    +	 * have less elements than the given array.
    +	 */
    +	function getStates()
    +	{
    +		return $this->states;
    +	}
    +
    +	/**
    +	 * Function: getStates
    +	 *
    +	 * Returns the <mxCellStates> for the given array of <mxCells>. The array
    +	 * contains all states that are not null, that is, the returned array may
    +	 * have less elements than the given array.
    +	 */
    +	function getCellStates($cells)
    +	{
    +		$result = array();
    +		$count = sizeof($cells);
    +		
    +		for ($i = 0; $i <$count; $i++)
    +		{
    +			$state = $this->getState($cells[$i]);
    +			
    +			if ($state != null)
    +			{
    +				array_push($result, $state);
    +			}
    +		}
    +		
    +		return $result;
    +	}
    +
    +	/**
    +	 * Function: removeState
    +	 * 
    +	 * Removes and returns the mxCellState for the given cell.
    +	 */
    +	function removeState($cell)
    +	{
    +	 	$state = null;
    +	 	
    +	 	if ($cell != null)
    +	 	{
    +	 		$id = $this->getHashCode($cell);
    +		 	$state = $this->states[$id];
    +		 	unset($this->states[$id]);
    +		}
    +
    +	 	return $state;
    +	}
    +
    +	/**
    +	 * Function: createState
    +	 * 
    +	 * Creates the state for the specified cell.
    +	 */
    +	function createState($cell)
    +	{
    +	 	$style = $this->graph->getCellStyle($cell);
    +	 	
    +	 	return new mxCellState($this, $cell, $style);
    +	}
    +
    +}
    +?>
    diff --git a/php/src/view/mxPerimeter.php b/php/src/view/mxPerimeter.php
    new file mode 100644
    index 000000000..56ed5fa9f
    --- /dev/null
    +++ b/php/src/view/mxPerimeter.php
    @@ -0,0 +1,535 @@
    +<?php
    +/**
    + * $Id: mxPerimeter.php,v 1.20 2012-01-11 09:06:56 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +interface mxPerimeterFunction
    +{
    +
    +	/**
    +	 * Interface: mxPerimeterFunction
    +	 * 
    +	 * Defines the requirements for a perimeter function.
    +	 * 
    +	 * Function: apply
    +	 * 
    +	 * Implements a perimeter function.
    +	 *
    +	 * Parameters:
    +	 *
    +	 * bounds - <mxRectangle> that represents the absolute bounds of the
    +	 * vertex.
    +	 * vertex - <mxCellState> that represents the vertex.
    +	 * next - <mxPoint> that represents the nearest neighbour point on the
    +	 * given edge.
    +	 * orthogonal - Boolean that specifies if the orthogonal projection onto
    +	 * the perimeter should be returned. If this is false then the intersection
    +	 * of the perimeter and the line between the next and the center point is
    +	 * returned.
    +	 */
    +	public function apply($bounds, $vertex, $next, $orthogonal);
    +
    +}
    +
    +/**
    + * Class: mxRectanglePerimeter
    + *
    + * Implements a rectangular perimeter for the given bounds.
    + */
    +class mxRectanglePerimeter implements mxPerimeterFunction
    +{
    +
    +	/**
    +	 *
    +	 */
    +	public function apply($bounds, $vertex, $next, $orthogonal)
    +	{
    +		$cx = $bounds->x + $bounds->width / 2;
    +		$cy = $bounds->y + $bounds->height / 2;
    +		$dx = $next->x - $cx;
    +		$dy = $next->y - $cy;
    +		$alpha = atan2($dy, $dx);
    +		$p = new mxPoint(0, 0);
    +		$pi = pi();
    +		$pi2 = $pi / 2;
    +		$beta = $pi2 - $alpha;
    +		$t = atan2($bounds->height, $bounds->width);
    +		
    +		if ($alpha < - $pi + $t || $alpha > $pi - $t)
    +		{
    +			// Left side
    +			$p->x = $bounds->x;
    +			$p->y = $cy - $bounds->width * tan($alpha) / 2;
    +		}
    +		else if ($alpha < -$t)
    +		{
    +			// Top side
    +			$p->y = $bounds->y;
    +			$p->x = $cx - $bounds->height * tan($beta) / 2;
    +		}
    +		else if ($alpha < $t)
    +		{
    +			// Right side
    +			$p->x = $bounds->x + $bounds->width;
    +			$p->y = $cy + $bounds->width * tan($alpha) / 2;
    +		}
    +		else
    +		{
    +			// Bottom side
    +			$p->y = $bounds->y + $bounds->height;
    +			$p->x = $cx + $bounds->height * tan($beta) / 2;			
    +		}
    +
    +		if ($orthogonal)
    +		{
    +			if ($next->x >= $bounds->x &&
    +				$next->x <= $bounds->x + $bounds->width)
    +			{
    +				$p->x = $next->x;
    +			}
    +			else if ($next->y >= $bounds->y &&
    +			  	$next->y <= $bounds->y + $bounds->height)
    +			{
    +				$p->y = $next->y;
    +			}
    +			
    +			if ($next->x < $bounds->x)
    +			{
    +				$p->x = $bounds->x;
    +			}
    +			else if ($next->x > $bounds->x + $bounds->width)
    +			{
    +				$p->x = $bounds->x + $bounds->width + 1;
    +			}
    +			
    +			if ($next->y < $bounds->y)
    +			{
    +				$p->y = $bounds->y;
    +			}
    +			else if ($next->y > $bounds->y + $bounds->height)
    +			{
    +				$p->y = $bounds->y + $bounds->height + 1;
    +			}
    +		}
    +		
    +		return $p;
    +	}
    +
    +}
    +
    +/**
    + * Class: mxEllipsePerimeter
    + * 
    + * Implements an elliptic perimeter. See <RectanglePerimeter>
    + * for a description of the parameters.
    + */
    +class mxEllipsePerimeter implements mxPerimeterFunction
    +{
    +
    +	/**
    +	 *
    +	 */
    +	public function apply($bounds, $vertex, $next, $orthogonal)
    +	{
    +		$x = $bounds->x;
    +		$y = $bounds->y;
    +		$a = $bounds->width / 2;
    +		$b = $bounds->height / 2;
    +		$cx = $x + $a;
    +		$cy = $y + $b;
    +		$px = $next->x;
    +		$py = $next->y;
    +		
    +		// Calculates straight line equation through
    +		// point and ellipse center y = d * x + h
    +		$dx = (int) ($px - $cx);
    +		$dy = (int) ($py - $cy);
    +		
    +		if ($dx == 0 && $dy != 0)
    +		{
    +			return new mxPoint($cx, $cy + $b * $dy / abs($dy));
    +		}
    +		else if ($dx == 0 && $dy == 0)
    +		{
    +			return new mxPoint($px, $py);
    +		}
    +
    +		if ($orthogonal)
    +		{
    +			if ($py >= $y && $py <= $y + $bounds->height)
    +			{
    +				$ty = $py - $cy;
    +				$tx = sqrt($a*$a*(1-($ty*$ty)/($b*$b)));
    +				
    +				if (is_nan($tx))
    +				{
    +					$tx = 0;
    +				}
    +				
    +				if ($px <= $x)
    +				{
    +					$tx = -$tx;
    +				}
    +				
    +				return new mxPoint($cx+$tx, $py);
    +			}
    +			
    +			if ($px >= $x && $px <= $x + $bounds->width)
    +			{
    +				$tx = $px - $cx;
    +				$ty = sqrt($b*$b*(1-($tx*$tx)/($a*$a)));
    +				
    +				if (is_nan($ty))
    +				{
    +					$ty = 0;
    +				}
    +				
    +				if ($py <= $y)
    +				{
    +					$ty = -$ty;	
    +				}
    +				
    +				return new mxPoint($px, $cy + $ty);
    +			}
    +		}
    +		
    +		// Calculates intersection
    +		$d = $dy / $dx;
    +		$h = $cy - $d * $cx;
    +		$e = $a * $a * $d * $d + $b * $b;
    +		$f = -2 * $cx * $e;
    +		$g = $a * $a * $d * $d * $cx * $cx +
    +				$b * $b * $cx * $cx -
    +				$a * $a * $b * $b;
    +		$det = sqrt($f * $f - 4 * $e * $g);
    +		
    +		// Two solutions (perimeter points)
    +		$xout1 = (-$f + $det) / (2 * $e);
    +		$xout2 = (-$f - $det) / (2 * $e);
    +		$yout1 = $d * $xout1 + $h;
    +		$yout2 = $d * $xout2 + $h;
    +		$dist1 = sqrt(pow($xout1 - $px, 2)
    +					+ pow($yout1 - $py, 2));
    +		$dist2 = sqrt(pow($xout2 - $px, 2)
    +					+ pow($yout2 - $py, 2));
    +
    +		// Correct solution
    +		$xout = 0;
    +		$yout = 0;
    +		if ($dist1 < $dist2)
    +		{
    +			$xout = xout1;
    +			$yout = yout1;
    +		}
    +		else
    +		{
    +			$xout = $xout2;
    +			$yout = $yout2;
    +		}
    +		
    +		return new mxPoint($xout, $yout);
    +	}
    +
    +}
    +
    +/**
    + * Class: mxRhombusPerimeter
    + * 
    + * Implements a rhombus (aka diamond) perimeter. See <RectanglePerimeter>
    + * for a description of the parameters.
    + */
    +class mxRhombusPerimeter implements mxPerimeterFunction
    +{
    +
    +	/**
    +	 *
    +	 */
    +	public function apply($bounds, $vertex, $next, $orthogonal)
    +	{
    +		$x = $bounds->x;
    +		$y = $bounds->y;
    +		$w = $bounds->width;
    +		$h = $bounds->height;
    +		
    +		$cx = $x + $w / 2;
    +		$cy = $y + $h / 2;
    +		
    +		$px = $next->x;
    +		$py = $next->y;
    +		
    +		// Special case for intersecting the diamond's corners
    +		if ($cx == $px)
    +		{
    +			if ($cy > $py)
    +			{
    +				return new mxPoint($cx, $y); // top
    +			}
    +			else
    +			{
    +				return new mxPoint($cx, $y + $h); // bottom
    +			}
    +		}
    +		else if ($cy == $py)
    +		{
    +			if ($cx > $px)
    +			{
    +				return new mxPoint($x, $cy); // left
    +			}
    +			else
    +			{
    +				return new mxPoint($x + $w, $cy); // right
    +			}
    +		}
    +		
    +		$tx = $cx;
    +		$ty = $cy;
    +		
    +		if ($orthogonal)
    +		{
    +			if ($px >= $x && $px <= $x + $w)
    +			{
    +				$tx = $px;
    +			}
    +			else if ($py >= $y && $py <= $y + $h)
    +			{
    +				$ty = $py;
    +			}
    +		}
    +		
    +		// In which quadrant will the intersection be?
    +		// set the slope and offset of the border line accordingly
    +		if ($px < $cx)
    +		{
    +			if ($py < $cy)
    +			{
    +				return mxUtils::intersection($px, $py,
    +					$tx, $ty, $cx, $y, $x, $cy);
    +			}
    +			else
    +			{
    +				return mxUtils::intersection($px, $py,
    +					$tx, $ty, $cx, $y + $h, $x, $cy);
    +			}
    +		}
    +		else if ($py < $cy)
    +		{
    +			return mxUtils::intersection($px, $py,
    +				$tx, $ty, $cx, $y, $x + $w, $cy);
    +		}
    +		else
    +		{
    +			return mxUtils::intersection($px, $py,
    +				$tx, $ty, $cx, $y + $h, $x + $w, $cy);
    +		}
    +	}
    +
    +}
    +
    +/**
    + * Class: mxTrianglePerimeter
    + * 
    + * Implements a triangle perimeter. See <RectanglePerimeter> for a
    + * description of the parameters.
    + */
    +class mxTrianglePerimeter implements mxPerimeterFunction
    +{
    +
    +	/**
    +	 *
    +	 */
    +	public function apply($bounds, $vertex, $next, $orthogonal)
    +	{
    +		$direction = ($vertex != null) ?
    +			mxUtils::getValue($vertex->style, mxConstants::$STYLE_DIRECTION) : null;
    +		$vertical = $direction == mxConstants::$DIRECTION_NORTH ||
    +			$direction == mxConstants::$DIRECTION_SOUTH;
    +
    +		$x = $bounds->x;
    +		$y = $bounds->y;
    +		$w = $bounds->width;
    +		$h = $bounds->height;
    +		
    +		$cx = $x + $w / 2;
    +		$cy = $y + $h / 2;
    +		
    +		$start = new mxPoint($x, $y);
    +		$corner = new mxPoint($x + $w, $cy);
    +		$end = new mxPoint($x, $y + $h);
    +		
    +		if ($direction == mxConstants::$DIRECTION_NORTH)
    +		{
    +			$start = end;
    +			$corner = new mxPoint($cx, $y);
    +			$end = new mxPoint($x + $w, $y + $h);
    +		}
    +		else if ($direction == mxConstants::$DIRECTION_SOUTH)
    +		{
    +			$corner = new mxPoint($cx, $y + $h);
    +			$end = new mxPoint($x + $w, $y);
    +		}
    +		else if ($direction == mxConstants::$DIRECTION_WEST)
    +		{
    +			$start = new mxPoint($x + $w, $y);
    +			$corner = new mxPoint($x, $cy);
    +			$end = new mxPoint($x + $w, $y + $h);
    +		}
    +
    +		$dx = $next->x - $cx;
    +		$dy = $next->y - $cy;
    +
    +		$alpha = ($vertical) ? atan2($dx, $dy) : atan2($dy, $dx);
    +		$t = ($vertical) ? Matan2($w, $h) : atan2($h, $w);
    +		
    +		$base = false;
    +		
    +		if ($direction == mxConstants::$DIRECTION_NORTH ||
    +			$direction == mxConstants::$DIRECTION_WEST)
    +		{
    +			$base = $alpha > -$t && $alpha < $t;
    +		}
    +		else
    +		{
    +			$base = $alpha < -pi() + $t || $alpha > pi() - $t;	
    +		}
    +
    +		$result = null;			
    +
    +		if ($base)
    +		{
    +			if ($orthogonal && (($vertical && $next->x >= $start->x &&
    +				$next->x <= $end->x) || (!$vertical && $next->y >= $start->y &&
    +				$next->y <= $end->y)))
    +			{
    +				if ($vertical)
    +				{
    +					$result = new mxPoint($next->x, $start->y);
    +				}
    +				else
    +				{
    +					$result = new mxPoint($start->x, $next->y);
    +				}
    +			}
    +			else
    +			{
    +				if ($direction == mxConstants::$DIRECTION_NORTH)
    +				{
    +					$result = new mxPoint($x + $w / 2 + $h * tan($alpha) / 2,
    +						$y + $h);
    +				}
    +				else if ($direction == mxConstants::$DIRECTION_SOUTH)
    +				{
    +					$result = new mxPoint($x + $w / 2 - $h * tan($alpha) / 2,
    +						$y);
    +				}
    +				else if ($direction == mxConstants::$DIRECTION_WEST)
    +				{
    +					$result = new mxPoint($x + $w, $y + $h / 2 +
    +						$w * tan($alpha) / 2);
    +				}
    +				else
    +				{
    +					$result = new mxPoint($x, $y + $h / 2 -
    +						$w * tan($alpha) / 2);
    +				}
    +			}
    +		}
    +		else
    +		{
    +			if ($orthogonal)
    +			{
    +				$pt = new mxPoint($cx, $cy);
    +		
    +				if ($next->y >= $y && $next->y <= $y + $h)
    +				{
    +					$pt->x = ($vertical) ? $cx : (
    +						($direction == mxConstants::$DIRECTION_WEST) ?
    +							$x + $w : $x);
    +					$pt->y = $next->y;
    +				}
    +				else if ($next->x >= $x && $next->x <= $x + $w)
    +				{
    +					$pt->x = $next->x;
    +					$pt->y = (!$vertical) ? $cy : (
    +						($direction == mxConstants::$DIRECTION_NORTH) ?
    +							$y + $h : $y);
    +				}
    +				
    +				// Compute angle
    +				$dx = $next->x - $pt->x;
    +				$dy = $next->y - $pt->y;
    +				
    +				$cx = $pt->x;
    +				$cy = $pt->y;
    +			}
    +
    +			if (($vertical && $next->x <= $x + $w / 2) ||
    +				(!$vertical && $next->y <= $y + $h / 2))
    +			{
    +				$result = mxUtils::intersection($next->x, $next->y, $cx, $cy,
    +					$start->x, $start->y, $corner->x, $corner->y);
    +			}
    +			else
    +			{
    +				$result = mxUtils::intersection($next->x, $next->y, $cx, $cy,
    +					$corner->x, $corner->y, $end->x, $end->y);
    +			}
    +		}
    +		
    +		if ($result == null)
    +		{
    +			$result = new mxPoint($cx, $cy);
    +		}
    +		
    +		return $result;
    +	}
    +
    +}
    +
    +/**
    + * Class: mxPerimeter
    + * 
    + * Provides various perimeter functions to be used in a style
    + * as the value of <mxConstants.STYLE_PERIMETER>.
    + * 
    + * The parameters are explained in <RectanglePerimeter>.
    + */
    +class mxPerimeter
    +{
    +
    +	/**
    +	 * Variable: RectanglePerimeter
    +	 *
    +	 * Provides a rectangular perimeter.
    +	 */
    +	public static $RectanglePerimeter;
    +
    +	/**
    +	 * Variable: EllipsePerimeter
    +	 *
    +	 * Provides an elliptic perimeter.
    +	 */
    +	public static $EllipsePerimeter;
    +
    +	/**
    +	 * Variable: RhombusPerimeter
    +	 *
    +	 * Provides a rhombus (aka diamond) perimeter.
    +	 */
    +	public static $RhombusPerimeter;
    +
    +	/**
    +	 * Variable: TrianglePerimeter
    +	 *
    +	 * Provides a triangle perimeter. See <RectanglePerimeter> for a
    +	 * description of the parameters.
    +	 */
    +	public static $TrianglePerimeter;
    +
    +}
    +
    +// Instanciates the declared static members of the above class
    +mxPerimeter::$RectanglePerimeter = new mxRectanglePerimeter();
    +mxPerimeter::$EllipsePerimeter = new mxEllipsePerimeter();
    +mxPerimeter::$RhombusPerimeter = new mxRhombusPerimeter();
    +mxPerimeter::$TrianglePerimeter = new mxTrianglePerimeter();
    +?>
    diff --git a/php/src/view/mxStyleRegistry.php b/php/src/view/mxStyleRegistry.php
    new file mode 100644
    index 000000000..f46d96650
    --- /dev/null
    +++ b/php/src/view/mxStyleRegistry.php
    @@ -0,0 +1,71 @@
    +<?php
    +/**
    + * $Id: mxStyleRegistry.php,v 1.4 2010-01-02 09:45:15 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxStyleRegistry
    +{
    +
    +	/**
    +	 * Class: mxStyleRegistry
    +	 *
    +	 * Singleton class that acts as a global converter from string to object values
    +	 * in a style. This is currently only used to perimeters and edge styles.
    +	 * 
    +	 * Variable: values
    +	 *
    +	 * Maps from strings to objects.
    +	 */
    +	public static $values = array();
    +
    +	/**
    +	 * Function: putValue
    +	 *
    +	 * Puts the given object into the registry under the given name.
    +	 */
    +	static function putValue($name, $value)
    +	{
    +		mxStyleRegistry::$values[$name] = $value;
    +	}
    +
    +	/**
    +	 * Function: getValue
    +	 *
    +	 * Returns the value associated with the given name.
    +	 */
    +	static function getValue($name)
    +	{
    +		return (isset(mxStyleRegistry::$values[$name])) ? mxStyleRegistry::$values[$name] : null;
    +	}
    +
    +	/**
    +	 * Function: getName
    +	 * 
    +	 * Returns the name for the given value.
    +	 */
    +	static function getName($value)
    +	{
    +		foreach (mxStyleRegistry::$values as $key => $val)
    +		{
    +			if ($value === $val)
    +			{
    +				return $key;
    +			}
    +		}
    +		
    +		return null;
    +	}
    +
    +}
    +
    +mxStyleRegistry::putValue(mxConstants::$EDGESTYLE_ELBOW, mxEdgeStyle::$ElbowConnector);
    +mxStyleRegistry::putValue(mxConstants::$EDGESTYLE_ENTITY_RELATION, mxEdgeStyle::$EntityRelation);
    +mxStyleRegistry::putValue(mxConstants::$EDGESTYLE_LOOP, mxEdgeStyle::$Loop);
    +mxStyleRegistry::putValue(mxConstants::$EDGESTYLE_SIDETOSIDE, mxEdgeStyle::$SideToSide);
    +mxStyleRegistry::putValue(mxConstants::$EDGESTYLE_TOPTOBOTTOM, mxEdgeStyle::$TopToBottom);
    +
    +mxStyleRegistry::putValue(mxConstants::$PERIMETER_ELLIPSE, mxPerimeter::$EllipsePerimeter);
    +mxStyleRegistry::putValue(mxConstants::$PERIMETER_RECTANGLE, mxPerimeter::$RectanglePerimeter);
    +mxStyleRegistry::putValue(mxConstants::$PERIMETER_RHOMBUS, mxPerimeter::$RhombusPerimeter);
    +mxStyleRegistry::putValue(mxConstants::$PERIMETER_TRIANGLE, mxPerimeter::$TrianglePerimeter);
    +?>
    diff --git a/php/src/view/mxStylesheet.php b/php/src/view/mxStylesheet.php
    new file mode 100644
    index 000000000..2057462a4
    --- /dev/null
    +++ b/php/src/view/mxStylesheet.php
    @@ -0,0 +1,227 @@
    +<?php
    +/**
    + * $Id: mxStylesheet.php,v 1.25 2010-06-30 11:03:50 gaudenz Exp $
    + * Copyright (c) 2006-2010, Gaudenz Alder
    + */
    +class mxStylesheet
    +{
    +	
    +	/**
    +	 * Class: mxStylesheet
    +	 * 
    +	 * Defines the appearance of the cells in a graph. See
    +	 * <putCellStyle> for an example of creating a style.
    +	 *
    +	 * Default Styles:
    +	 * 
    +	 * The stylesheet contains two built-om styles, which are
    +	 * used if no style is defined for a cell:
    +	 *
    +	 *   defaultVertex - Default style for vertices
    +	 *   defaultEdge - Default style for edges
    +	 *   
    +	 * Function: styles
    +	 * 
    +	 * Maps from names to styles.
    +	 */
    +	var $styles = array();
    +
    +	/**
    +	 * Constructor: mxStylesheet
    +	 * 
    +	 * Constructs a new stylesheet and assigns default styles.
    +	 */
    +	function mxStylesheet()
    +	{
    +	 	$this->putDefaultVertexStyle($this->createDefaultVertexStyle());
    +	 	$this->putDefaultEdgeStyle($this->createDefaultEdgeStyle());
    +	}
    +
    +	/**
    +	 * Function: createDefaultVertexStyle
    +	 * 
    +	 * Creates and returns the default vertex style.
    +	 */
    +	function createDefaultVertexStyle()
    +	{
    +	 	$style = array();
    +	 	
    +	 	$style[mxConstants::$STYLE_SHAPE] = mxConstants::$SHAPE_RECTANGLE;
    +	 	$style[mxConstants::$STYLE_PERIMETER] = mxPerimeter::$RectanglePerimeter;
    +	 	$style[mxConstants::$STYLE_VERTICAL_ALIGN] = mxConstants::$ALIGN_MIDDLE;
    +	 	$style[mxConstants::$STYLE_ALIGN] = mxConstants::$ALIGN_CENTER;
    +	 	$style[mxConstants::$STYLE_FILLCOLOR] = "#C3D9FF";
    +	 	$style[mxConstants::$STYLE_STROKECOLOR] = "#6482B9";
    +	 	$style[mxConstants::$STYLE_FONTCOLOR] = "#774400";
    +	 	
    +	 	return $style;
    +	}
    +
    +	/**
    +	 * Function: createDefaultEdgeStyle
    +	 * 
    +	 * Creates and returns the default edge style.
    +	 */
    +	function createDefaultEdgeStyle()
    +	{
    +	 	$style = array();
    +	 	
    +		$style[mxConstants::$STYLE_SHAPE] = mxConstants::$SHAPE_CONNECTOR;
    +		$style[mxConstants::$STYLE_ENDARROW] = mxConstants::$ARROW_CLASSIC;
    +		$style[mxConstants::$STYLE_VERTICAL_ALIGN] = mxConstants::$ALIGN_MIDDLE;
    +		$style[mxConstants::$STYLE_ALIGN] = mxConstants::$ALIGN_CENTER;
    +		$style[mxConstants::$STYLE_STROKECOLOR] = "#6482B9";
    +		$style[mxConstants::$STYLE_FONTCOLOR] = "#446299";
    +	 	
    +	 	return $style;
    +	}
    +	
    +	/**
    +	 * Function: putDefaultVertexStyle
    +	 * 
    +	 * Sets the default style for vertices.
    +	 */
    +	function putDefaultVertexStyle($style)
    +	{
    +		$this->putCellStyle("defaultVertex", $style);
    +	}
    +
    +	/**
    +	 * Function: putDefaultEdgeStyle
    +	 * 
    +	 * Sets the default style for edges.
    +	 */
    +	function putDefaultEdgeStyle($style)
    +	{
    +		$this->putCellStyle("defaultEdge", $style);
    +	}
    +
    +	/**
    +	 * Function: getDefaultVertexStyle
    +	 * 
    +	 * Returns the default style for vertices.
    +	 */
    +	function getDefaultVertexStyle()
    +	{
    +		return $this->styles["defaultVertex"];
    +	}
    +
    +	/**
    +	 * Function: getDefaultEdgeStyle
    +	 * 
    +	 * Sets the default style for edges.
    +	 */
    +	function getDefaultEdgeStyle()
    +	{
    +		return $this->styles["defaultEdge"];
    +	}
    +	
    +	/**
    +	 * Function: putCellStyle
    +	 * 
    +	 * Stores the specified style under the given name.
    +	 *
    +	 * Example:
    +	 * 
    +	 * The following example adds a new style (called 'rounded') into an
    +	 * existing stylesheet:
    +	 * 
    +	 * (code)
    +	 * var style = new Array();
    +	 * style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
    +	 * style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RightAngleRectanglePerimeter;
    +	 * style[mxConstants.STYLE_ROUNDED] = 'true';
    +	 * graph.stylesheet.putCellStyle('rounded', style);
    +	 * (end)
    +	 * 
    +	 * In the above example, the new style is an array. The possible  keys of
    +	 * the array are all the constants in <mxConstants> that start with STYLE
    +	 * and the values are either JavaScript objects, such as
    +	 * <mxPerimeter.RightAngleRectanglePerimeter> (which is in fact a function)
    +	 * or expressions, such as 'true'. Note that not all keys will be
    +	 * interpreted by all shapes (eg. the line shape ignores the fill color).
    +	 * The final call to this method associates the style with a name in the
    +	 * stylesheet. The style is used in a cell with the following code:
    +	 * 
    +	 * (code)
    +	 * model.setStyle(cell, 'rounded');
    +	 * (end)
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * name - Name for the style to be stored.
    +	 * style - Key, value pairs that define the style.
    +	 */
    +	function putCellStyle($name, $style)
    +	{
    +		$this->styles[$name] = $style;
    +	}
    +	
    +	/**
    +	 * Function: getCellStyle
    +	 * 
    +	 * Returns the cell style for the specified cell or the given defaultStyle
    +	 * if no style can be found for the given stylename.
    +	 * 
    +	 * Parameters:
    +	 * 
    +	 * name - String of the form [(stylename|key=value);] that represents the
    +	 * style.
    +	 * defaultStyle - Default style to be returned if no style can be found.
    +	 */
    +	function getCellStyle($name, $defaultStyle = null)
    +	{
    +		$style = $defaultStyle;
    +		
    +		if ($name != null && strlen($name) > 0)
    +		{
    +			$pairs = explode(";", $name);
    +
    +			if (isset($pairs))
    +			{
    +				if (isset($style) && $name{0} != ';')
    +				{
    +					$style = array_slice($style, 0);
    +				}
    +				else
    +				{
    +					$style = array();
    +				}
    +				
    +				for ($i = 0; $i < sizeof($pairs); $i++)
    +				{
    +					$tmp = $pairs[$i];
    +					$pos = strpos($pairs[$i], "=");
    +					
    +					if ($pos !== false)
    +					{
    +						$key = substr($tmp, 0, $pos);
    +						$value = substr($tmp, $pos+1);
    +						
    +						if ($value == mxConstants::$NONE)
    +						{
    +							unset($style[$key]);
    +						}
    +						else
    +						{
    +							$style[$key] = $value;
    +						}
    +					}
    +					else if (isset($this->styles[$tmp]))
    +					{
    +						$tmpStyle = $this->styles[$tmp];
    +
    +						foreach ($tmpStyle as $key => $value)
    +						{
    +							$style[$key] = $value;
    +						}
    +					}
    +				}
    +			}
    +		}
    +
    +		return $style;
    +	}
    +
    +}
    +?>
    diff --git a/php/test/mxCodecTest.php b/php/test/mxCodecTest.php
    new file mode 100644
    index 000000000..c3ad0cf54
    --- /dev/null
    +++ b/php/test/mxCodecTest.php
    @@ -0,0 +1,76 @@
    +<?php
    +/**
    + * $Id: mxCodecTest.php,v 1.11 2010-09-13 15:45:28 gaudenz Exp $
    + * Copyright (c) 2006, Gaudenz Alder
    + */
    +include_once("../src/mxServer.php");
    +
    +/**
    + * Function: main
    + * 
    + * Creates a graph using the API and converts it into a PNG image.
    + */
    +function main()
    +{
    +	// Creates graph with model
    +	$model = new mxGraphModel();
    +	$graph = new mxGraph($model);
    +	$parent = $graph->getDefaultParent();
    +
    +	// Adds cells into the model
    +	$model->beginUpdate();
    +	try
    +	{
    +		$v1 = $graph->insertVertex($parent, null, "Hello", 20, 20, 80, 30);
    +		$v2 = $graph->insertVertex($parent, null, "World!", 200, 150, 80, 30);
    +		$e1 = $graph->insertEdge($parent, null, "e1", $v1, $v2);
    +		$e1->getGeometry()->points = array(new mxPoint(10, 10));
    +
    +		$v3 = $graph->insertVertex($e1, null, "v3", 0, 0, 40, 40, "shape=ellipse");
    +		$v3->getGeometry()->relative = true;
    +		$v3->getGeometry()->offset = new mxPoint(-20, -20);
    +		
    +		$model->add($parent, $e1, 0);
    +	}
    +	catch (Exception $e)
    +	{
    +		$model->endUpdate();
    +		throw($e);
    +	}
    +	$model->endUpdate();
    +
    +	$doc = mxUtils::createXmlDocument();
    +	$enc = new mxCodec($doc);
    +	$node = $enc->encode($model);
    +	$xml1 = $doc->saveXML($node);
    +
    +	$doc = mxUtils::parseXml($xml1);
    +	$dec = new mxCodec($doc);
    +	$dec->decode($doc->documentElement, $model);
    +
    +	$doc = mxUtils::createXmlDocument();
    +	$enc = new mxCodec($doc);
    +	$node = $enc->encode($model);
    +	$xml2 = $doc->saveXML($node);
    +
    +	if ($xml1 == $xml2)
    +	{
    +		echo "Test Passed: ".htmlentities($xml1);
    +	}
    +	else
    +	{
    +		echo "Test Failed: <br>xml1=".htmlentities($xml1)."<br>xml2=".htmlentities($xml2);
    +	}
    +}
    +
    +// Uses a local font so that all examples work on all platforms. This can be
    +// changed to vera on Mac or arial on Windows systems.
    +mxConstants::$DEFAULT_FONTFAMILY = "verah";
    +putenv("GDFONTPATH=".realpath("../examples/ttf"));
    +
    +// If you can't get the fonts to render try using one of the following:
    +//mxConstants::$DEFAULT_FONTFAMILY = "C:\WINDOWS\Fonts\arial.ttf";
    +//mxConstants::$TTF_ENABLED = false;
    +
    +main();
    +?>